一种用于数字电视接收机的显示数据填充方法

文档序号:7880936阅读:139来源:国知局
专利名称:一种用于数字电视接收机的显示数据填充方法
技术领域
本发明涉及一种显示数据填充方法,尤其是一种用于数字电视接收机的显示数据填充方法,属于数字视频技术领域。
背景技术
由于数字电视接收机(俗称机顶盒)的内存多数是4MBytes或2Mbytes容量非常有限。针对于数字电视接收机内存小、数据处理能力有限的特点,如何最有效的利用有限的内存尽可能的处理更多的数据成为了一个焦点。
数字电视接收机都要通过电视屏幕显示信息,显示的主要内容有电视台的名称、电视节目的名称、节目的说明等;如果通过数字电视进行增值业务,涉及到数据信息的显示情况更多,如数据广播业务就要求显示数千条信息,并提供对这些信息的浏览。基于实时操作系统的数字电视接收机在数据显示的过程中需要进行大量的数据填充操作,所有信息的显示都是数字电视接收机将接收到的相关数据填充到标准显示格式控件中完成的。
所谓控件就是一种标准的显示组件,控件的形式可以有列表、文本框、编辑框等不同的类型,以接收到的数据作为输入,将数据填充到选定的控件中,控件整体作为输出,实现信息的电视输出。不管是选择何种控件进行数据填充,在资源有限的数字电视接收机上首先需要解决的问题都是如何解决数据内存的空间分配的问题。
现有技术采用的是如图1所示的一次灌装的填充方式,即一次将全部数据填充到控件中。如果数据源接收的数据为500K,接收的数据占据500K的内存空间,再在内存中再开辟一个空间存放输出的显示数据,先写入100K的显示头结构,然后进行数据填充,将对应标号的数据,填充到显示数据中对应标号的位置;完成填充后,再释放数据源所占的内存空间。在整个过程中,内存使用量最高时达到了1100K。
数据填充采用一次灌装的方式会占用较多的内存,对数据接收的量会产生直接的影响。在当数据接收的数量较大时,显示所占用数据量会近似相等于接收的数据量或大于接收的数据量,会导致机顶盒内存使用溢出,无法处理。也就是说,尽管数据已经完全被接收下来,机顶盒也没有能力一次处理所有数据的显示。
如果能有一种高效数据填充的方式,将数据的显示内存大大降低而不影响显示效率,对于数字电视接收机来说,在同样内存可用的情况下,可以接收更多的数据,而不需要增加物理内存,将使成本大大降低。

发明内容
本发明所要解决的技术问题在于提供一种用于数字电视接收机的显示数据填充方法,使得在显示过程中占用的内存大大降低,同样内存可用的情况下,可以接收更多的数据而对于显示效率来说不会有很大的降低。
本发明所述的用于数字电视接收机的显示数据填充方法,包括如下步骤步骤一、对控件进行初始化,即写入显示头,并设定显示控件的数据起始指针位置,数据结束指针位置,需要显示的条目数和每个条目的长度;步骤二、从数据源读取一部分数据,并保存读取的数据在数据源中的位置,将读取数据填充到控件中;步骤三、如果需要显示的数据超出控件中数据的范围,则刷新显示,即清空现有控件中的所有数据,根据步骤二中保存的数据源位置重新从数据源中读取需要填充的数据,填充到控件中。
采用本发明的方式进行数据填充,提高了内存的利用率,保证了内存使用的安全性,当出现大数据量数据的接收和显示的时候,在保证正常接收的同时,保证了数据的正常显示。避免出现数据接收正常,而不能完整显示的问题。同时,高效的数据显示方式,在数据量增大的时候,只是接收的数据量增加,内存的使用量单倍增加。而一次灌装显示方式,由于同时在数据源和显示数据区都需要分配内存,内存的使用量会双倍增加。简单针对数据的接收和显示来说,当数据量增加到了100k以上的时候,一次灌装显示方式的内存使用量为200k以上,而高效数据显示方式的内存使用量不会超过102k.大约节约50%的内存使用量。


图1是现有技术的数据填充方法示意图;图2是本发明方法的数据填充方法示意图;图3是本发明刷新显示的流程图;图4是本发明刷新显示时计算应读取的数据源数据起始位置和结束位置的示意图。
具体实施例方式
数字电视接收机从数字电视网络中接收要显示的数据,将这些数据放入到内存空间中(可以高速的接收、更新和提供给用户应用),形成一个数据库,数据库保存每一数据的长度和内容。这个数据库就是数字电视进行数据填充的数据源。本发明需要显示的数据不再由显示模块直接控制,而是直接进行数据源的访问,获得要显示的数据。控件的作用是使相类似的显示行为成为一组标准流程,减少重复,增强风格的一致性,在数字电视接收机中广泛采用。
本发明所述的显示数据填充方法,包括如下步骤步骤一、对控件进行初始化,即写入显示头,并设定显示控件的数据起始指针位置,数据结束指针位置,需要显示的条目数和每个条目的长度;步骤二、从数据源读取一部分数据,并保存读取的数据在数据源中的位置,将读取数据填充到控件中;步骤三、如果需要显示的数据超出控件中数据的范围,则刷新显示,即清空现有控件中的所有数据,根据步骤二中保存的数据源位置重新从数据源中读取需要填充的数据,填充到控件中。
采用本发明的方法进行数据填充,由于一次填充到控件中的数据量有限,所以当用户的要求显示的数据超出控件中的数据范围时,就需要清空控件中现有的数据,从数据源读取所需数据重新进行填充显示。虽然本发明方法在进行刷新显示时,所需的时间要比一次填充的时间长,但是由于显示的数据量很小,整个从数据源读取再填充控件,需要的时间也很短,不会造成用户等待时间过长的问题,并且采用本发明的方法可以大量的节省内存资源,不会对其他进程(如数据接收)造成影响。
当通过电视屏幕进行数据显示时,首先要根据显示的内容选择合适的控件,并完成控件的初始化,即在内存中写入显示头,给出显示控件的数据起始指针位置Ps,数据结束指针位置Pe,需要显示的条目数M和每个条目的长度L。所述的显示头用来记录空间状态的一组状态值,如表格行数、当前行、表格列数、当前列、表格宽度、显示宽度、选中颜色、表格颜色、数据选入指针位置、数据结束指针位置。因此,需要一次填充的数据越少,所需的显示头的内容也越少,占用的存储空间越少。比如,图2中进行显示时,同样是数据源有500K的数据,但是由于每次显示的数据量很小,显示头和显示数据共同也只有2K,这样数据总占用的内存空间是502K,即使不考虑显示过程中的内存空间占用(1100K),本发明的多次填充的方法也要比图1所示的一次填充方法减少了98K的内存使用量。
为了最大限度的节约内存,控件显示的条目数M可以正好等于每一屏所要显示的数据的条数,也就是说,用户在选择查看的数据时,只能选择以翻页的方式来查看。用户每输入一个翻页的指令,数字电视接收机对应完成一次数据的填充显示。在一次性填充的数字电视接收机中为了方便进行用户控制,也大多数也是采用翻页的数据查看方式,并且翻页的显示时间很短,所以这种显示方法也不会造成用户的不便。
数据起始指针位置Ps用来存储控件中显示数据的起始位置,数据结束指针位置Pe用来存储控件中显示数据的结束位置,如果控件中需要填充的数据个数为M个,数据长度为Le、Le+1....Le+M-2、Le+M-1,则Ps=Le;Pe=Le+Le+1+....+Le+M-2+Le+M-1。Ps和Pe确定了控件中显示数据的范围,通过判断用户要求的数据是否超出Ps和Pe就可以判定是否需要进行刷新显示。
控件初始化完成后,就要进行数据的填充。图2给出了本发明的数据填充过程的示意图,填充过程可以包括如下步骤步骤2.1、获取当前需要填充的控件的参数,包括需要填充的数据的条数和每条数据的长度;步骤2.2、根据步骤2.1获取的参数,从数据源读取需要填充的数据,并保存读出的数据在数据源的起始位置和结束位置;步骤2.3、将步骤2.2获取的数据填充到控件中的对应位置,完成填充过程。
为了显示方便,在数据源中控件需要显示的数据是按显示的顺序存放的,所以一次从数据源中读取的数据是连续的存储空间中的数据,因此,步骤2.2中可以保存读出的数据在数据源的起始位置和结束位置,这也是可以快速进行读取操作的原因。
一般来说,初次填充哪些数据是由系统预先设定的,大多数情况下是数据源的起始部分数据;如果系统没有设定,将随机的将合适的数据先填充入控件,再由用户自己通过翻页选择需要的信息;另一种是具有记忆功能的方式,即将用户最后一次显示的数据在数据源中的位置保存起来,当用户再次查看该控件的数据时,自动读取保存的位置,将对应位置的数据填充入控件中。
读取的数据有时可能会出现读取的数据的长度大于控件中要求的数据的情况,这时需要将读出的数据截断,再进行填充,并且根据截断的结果修改保存读出的数据在数据源的起始位置和结束位置。
对于填充到控件中的数据,只是记录使用数据在数据源的起始位置和结束位置,而不改变数据源的数据。
填充过程就是完成对控件数据结构中元素的赋值过程,与一次填充时的填充方法相同。控件数据填充可以采用数据源指针和控件填充的数据指针相对应的方式进行,即可以通过直接将显示数据的指针对准数据源指针,根据表格控件的显示条数,选择需要显示的数据指针段,与显示指针一一对应,完成数据填充。
对于显示数据的操作越出空间填充数据的范围,即用户要求的数据超出控件数据的边界(Ps和Pe)时,需要进行数据的刷新显示。上述步骤2.2中保存了读出的数据在数据源的起始位置和结束位置,主要就是为了在步骤三(也称刷新显示过程)中,可以重新获取到读出的数据的位置,根据这个位置就可以计算出,需要在本次填充过程读出的数据,因此可以向上刷新显示数据或向下刷新显示数据,遍历整个数据源。数据刷新的时候,必须保证刷新之前显示数据区被完全清空,刷新数据结束后,刷新数据的地址被保存下来。
图3给出了刷新过程的流程图,本发明所述的刷新显示过程包括如下步骤步骤3.1、获取步骤二中保存的读出的数据在数据源的起始位置和结束位置;
步骤3.2、计算应读取的数据在数据源中的起始位置和结束位置;步骤3.3、清空控件中的数据,读出步骤3.2中计算的起始位置和结束位置之间的数据,填充到控件中,保存刷新后数据源新的起始位置和结束位置。
图3中,采用了数据指针保存起始位置和结束位置,即步骤二中保存的读出的数据在数据源的起始位置和结束位置可以采用双指针的方式保存,一个指针保存读出的数据在数据源的起始位置,另一个保存结束位置。
计算应读取的数据在数据源中的起始位置和结束位置的方法越简单越好,可以采用直接作差的方法,图4所示,向上刷新时,起始位置2=起始位置1-数据填充对应数据源宽度x;结束位置2=结束位置1-数据填充对应数据源宽度x;起始位置1和结束位置1为保存的上一次填充控件的数据源数据的起始位置和结束位置;起始位置2和结束位置2为向上刷新时,应当从数据源读取的数据的起始位置和结束位置,x为一次填充对应数据源宽度。
同样道理,向下刷新时,起始位置3=起始位置1+数据填充对应数据源宽度x;结束位置3=结束位置1+数据填充对应数据源宽度x;起始位置3和结束位置3为向下刷新时,应当从数据源读取的数据的起始位置和结束位置。
根据计算结果,读取数据,并保证刷新之后的数据源起始地址和结束地址被保存下来。读取的数据有时可能会出现读取的数据的长度大于控件中要求的数据的情况,这时需要将读出的数据截断,再进行填充,并且根据截断的结果修改保存读出的数据在数据源的起始位置和结束位置。
当填充数据地址的遍历数据源时,可能发生数据指针的上溢或者下溢,即根据步骤3.2计算的结果,超出了数据源的范围,向上或向下超出了数据源的边界。这时需要对数据地址进行边界处理保护,每次填充的时候进行边界检查。
所述的边界检查,就是将每次步骤3.2计算出的起始地址和结束地址与数据源的边界地址进行比较;或者在数据初次填充的时候,计算出数据源中数据的总量,设定一个变量初始化为0,向上刷新一次加1和向下刷新一次减1时,根据初次填充的数据,计算出可以向上和向下刷新的次数,作为该变量的取值范围,每次刷新数据时,判断该变量是否超出取值范围,如果超出则判定是要求的数据越界。边界检查时,如果发现已经超出了数据源的范围,则退出刷新程序,不进行数据填充,返回错误信息,提示用户。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种用于数字电视接收机的显示数据填充方法,其特征在于包括如下步骤步骤一、对控件进行初始化,即写入显示头,并设定显示控件的数据起始指针位置,数据结束指针位置,需要显示的条目数和每个条目的长度;步骤二、从数据源读取一部分数据,并保存读取的数据在数据源中的位置,将读取数据填充到控件中;步骤三、如果需要显示的数据超出控件中数据的范围,则刷新显示,即清空现有控件中的所有数据,根据步骤二中保存的数据源位置重新从数据源中读取需要填充的数据,填充到控件中。
2.根据权利要求1所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤一中控件显示的条目数可以等于整个屏幕一次所能显示数据的条目数。
3.根据权利要求1或2所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤一中,数据起始指针位置Ps用来存储控件中显示数据的起始位置,数据结束指针位置Pe用来存储控件中显示数据的结束位置,如果控件中需要填充的数据个数为M个,数据长度为Le、Le+1…Le+M-2、Le+M-1,则Ps=Le;Pe=Le+Le+1+…+Le+M-2+Le+M-1。
4.根据权利要求1所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤二,包括步骤2.1、获取当前需要填充的控件的参数,包括需要填充的数据的条数和每条数据的长度;步骤2.2、根据步骤2.1获取的参数,从数据源读取需要填充的数据,并保存读出的数据在数据源的起始位置和结束位置;步骤2.3、将步骤2.2获取的数据填充到控件中的对应位置,完成填充过程。
5.根据权利要求4所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤2.2中,可以用两个数据指针来保存读出的数据在数据源的起始位置和结束位置,即用一个指针保存读出的数据在数据源的起始位置,另一个保存结束位置。
6.根据权利要求4所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤2.2之后,步骤2.3之前,还包括如果读取的数据的长度大于控件中要求的数据长度,则将读出的数据截断,并且记录新读出数据在数据源的起始位置和结束位置。
7.根据权利要求4所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤2.3中,可以采用数据源指针和控件填充的数据指针相对应的方式进行控件数据填充。
8.根据权利要求1所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤三中,刷新显示包括步骤3.1、获取步骤二中保存的读出数据在数据源的起始位置和结束位置;步骤3.2、计算应读取的数据在数据源中的起始位置和结束位置;步骤3.3、清空控件中的数据,读出步骤3.2中计算的起始位置和结束位置之间的数据,填充到控件中,保存刷新后数据源新的起始位置和结束位置。
9.根据权利要求8所述的用于数字电视接收机的显示数据填充方法,其特征在于所述的步骤3.3之前,还包括判断步骤3.2计算的结果是否超出整个数据源的范围,如果超出,则结束步骤三,返回提示信息;否则,执行步骤3.3。
全文摘要
本发明公开了一种用于数字电视接收机的显示数据填充方法,包括对控件进行初始化,即写入显示头,并给出显示控件的数据起始指针位置,数据结束指针位置,需要显示的条目数和每个条目的长度;从数据源读取一部分数据,将数据填充到控件中,并保存数据在数据源中的位置;如果需要显示的数据超出控件中数据的范围,则刷新显示,即清空现有控件中的所有数据,根据步骤二中保存的数据源位置重新从数据源中读取需要填充的数据,填充到控件中。本发明提高了内存的利用率,保证了内存使用的安全性,当出现大数据量数据的接收和显示的时候,在保证正常接收的同时,保证了数据的正常显示。
文档编号H04N7/015GK1615012SQ20031010351
公开日2005年5月11日 申请日期2003年11月5日 优先权日2003年11月5日
发明者肖红权 申请人:北京中视联数字系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1