机顶盒数据快速获取的方法

文档序号:6452823阅读:618来源:国知局
专利名称:机顶盒数据快速获取的方法
机顶盒数据快速获取的方法
技术领域
本发明涉及一种机顶盒数据快速获取的方法。背景技术
随着数字电视技术的飞速发展,数字电视机顶盒作为越来越多的进入到百姓家 中,除了收看电视节目以外,运营商提供了越来越多的新功能,其中很多功能都需要向机顶 盒传送大量的数据。如何快速的接收这些数据成为各大机顶盒研究的主题。由于运营商的数据在传送时是使用轮播机制,即采用从头到尾播放一遍,然后又 重新播放,不断循环的方式。因此传统数字电视机顶盒需要接收运营商提供的功能文档时 需按照顺序进行逐个接收,或进行数据全部的接收。如果按照逐个接收,当收到一个数据后 需要进行相应的处理,然后接着接收下一个数据,由于数据需要处理时间的缘故,会造成需 要接收的数据对应的节目已经播放,只能等待下一轮播放时才能在接收;而如果是数据全 部的接收,由于需要对接收的数据进行分析,排列等操作,会导致接收到大量相同的数据, 造成整个接收过程比较缓慢。由于运营商提供的功能中大部分的大数据一般使用控制块加数据块的方式进行 传送,控制块描述了传送数据的大小、分块等情况。本发明根据这一特点,提供一种机顶盒 数据快速获取的方法。

发明内容本发明要解决的技术问题,在于提供一种机顶盒数据快速获取的方法,采用瀑布 接收原理来对数据接收,然后对还未接收的数据进行多个并行接收的方式,已提高整体的 接收速度。本发明是这样实现的一种机顶盒数据快速获取的方法,其包括下述步骤步骤10、机顶盒程序首先启动机顶盒的解复用模块接收数据的控制块,所述控制 块是描述大数据(指数据量较大的数据)的大小和分块情况;步骤20、机顶盒程序按照控制块信息分析出来的需要接受的数据的大小,从系统 中动态分配出数据大小1. 5-2. 5倍的内存,把分配出来的内存配置为将要接受数据的解复 用模块的接收缓冲区;步骤30、在离动态分配得到的内存末端一段距离的地方写入一个若干字节的数据 作为缓冲区标记;步骤40、设置解复用模块接收所有分块数据,接收模式为不间断接收模式,且在解 复用模块停止之前,把接收到的数据直接送入模块相应的缓冲区中;步骤50、机顶盒程序实时监视缓冲区标记,如果发现缓冲区标记被改写,则认为接 收到的数据已经超过需要接收的范围,则通过机顶盒程序停止解复用模块的数据接收;步骤60、这时机顶盒程序调用动态分配函数以分配到和要接收数据大小相应的 内存,用来存储最终的数据;同时分析缓冲区中的数据,对每个section数据进行分析后,
3把数据放在最终存储数据的内存的相应位置上;当把所有接收缓冲区中的section数据都 分析完后,统计一下还有哪些段没有被接收,或者数据是损坏的,把这些section号进行记 录,建立一需要接收的section段表;步骤70、释放接收缓冲区的内存,同时设置每个解复用模块的接收缓冲器的大小 为一个section的大小,配置为接收一个section数据就自动停止接收,并调用回调函数进 行分析,按照需要接收的section段表,并行启动多个解复用模块;步骤80、等待数据的接收;当收到数据时,分析后把它填入最终存储数据的内存 的相应位置上,同时释放它所占用的解复用模块,设置解复用模块启动对下一个section 段表中描述的section的获取,直到所有的数据都接收完毕,填充到最终存储数据的内存 的相应位置上,这时最终存储数据的内存中的数据就是所需要的某个功能的提供的大数 据。其中,所述步骤30中,用于写入缓冲区标记的地方是在大于所接收数据大小的1 倍以上且小于除去1倍空间以外的剩余空间的70%的地方,防止缓冲区标记所在位置过前 造成接收的数据不全,缓冲区标记所在位置过后,由于检测标记被破坏而关闭解复用模块 之间的时间延时,造成接收的数据溢出整个缓冲区而造成对机顶盒程序的破坏。本发明具有如下优点这种方式利用了 DVB(数字视频广播)数据传输中数据使 用轮播方式播放,同种同类数据一般连续播放的特点,使用了瀑布接收的原理来接收绝大 多数的数据。在极限条件时且接收的数据的过程中信号不会受到干扰,这时可以实现接收 数据超过缓冲区标记时,接收的就是全部的数据,只需要分析,填充即可得到所要的最终 数据。在一般情况下,传送的过程信号有可能受到干扰,造成当接收数据超过缓冲区标记 时,有些数据没有收到,或者数据损坏的情况,本发明中设置的缓冲区一般为实际数据的 1. 5-2. 5倍,就是让接收数据有重复性,保障能够尽量减少瞬间信号干扰而造成的数据没有 收到,或者数据损坏的情况。而且即使最终还有数据没有收到或顺坏,再按照没有收到的数 据或损坏的数据使用并行的方式进行专门的接收,已达到完整接收数据的目的。
具体实施方式由于运营商提供的功能中大部分的大数据(指数据量较大的数据)一般使用控制 块加数据块的方式进行传送,其中控制块描述了传送数据的大小、分块等情况。本发明根据 这一特点,提供一种机顶盒数据快速获取的方法,该方法包括下述步骤步骤10、机顶盒程序首先启动机顶盒的解复用模块接收数据的控制块;步骤20、机顶盒程序按照控制块信息分析出来的需要接受的数据的大小,从系统 中动态分配出数据大小1. 5-2. 5倍的内存(具体的倍数依据系统可用内存的大小决定),把 分配出来的内存配置为将要接受数据的解复用模块的接收缓冲区;步骤30、在离动态分配得到的内存末端一段距离的地方写入一个若干字节的数据 作为缓冲区标记;其中,用于写入缓冲区标记的地方是在大于所接收数据大小的1倍以上 且小于除去1倍空间以外的剩余空间的70%的地方,防止缓冲区标记所在位置过前造成接 收的数据不全,缓冲区标记所在位置过后,由于检测标记被破坏而关闭解复用模块之间的 时间延时,造成接收的数据溢出整个缓冲区而造成对机顶盒程序的破坏。步骤40、设置解复用模块接收所有分块数据,接收模式为不间断接收模式,且在解复用模块停止之前,把接收到的数据直接送入模块相应的缓冲区中,而不是象现有技术中 的在接收到一个section数据时,就调用回调函数处理数据;步骤50、机顶盒程序实时监视缓冲区标记,如果发现缓冲区标记被改写,则认为接 收到的数据已经超过需要接收的范围,则通过机顶盒程序停止解复用模块的数据接收;步骤60、这时机顶盒程序调用动态分配函数以分配到和要接收数据大小相应的 内存,用来存储最终的数据;同时分析缓冲区中的数据,对每个section数据进行分析后, 把数据放在最终存储数据的内存的相应位置上;当把所有接收缓冲区中的section数据都 分析完后,统计一下还有哪些段没有被接收,或者数据是损坏的,把这些section号进行记 录,建立一需要接收的section段表;步骤70、释放接收缓冲区的内存,同时设置每个解复用模块的接收缓冲器的大小 为一个section的大小,配置为接收一个section数据就自动停止接收,并调用回调函数进 行分析,按照所述需要接收的section段表,并行启动多个解复用模块(启用解复用模块的 个数由系统可分配的资源决定);步骤80、等待数据的接收;当收到数据时,分析后把它填入最终存储数据的内存 的相应位置上,同时释放它所占用的解复用模块,设置解复用模块启动对下一个section 段表中描述的section的获取,直到所有的数据都接收完毕,填充到最终存储数据的内存 的相应位置上,这时最终存储数据的内存中的数据就是所需要的某个功能的提供的大数 据。综上所述,本发明方法利用了 DVB数据传输中数据使用轮播方式播放,同种同类 数据一般连续播放的特点,使用了瀑布接收的原理来接收绝大多数的数据。在极限条件时 且接收的数据的过程中信号不会受到干扰,这时可以实现接收数据超过缓冲区标记时,接 收的就是全部的数据,只需要分析,填充即可得到所要的最终数据。在一般情况下,传送的 过程信号有可能受到干扰,造成当接收数据超过缓冲区标记时,有些数据没有收到,或者数 据损坏的情况,本发明中设置的缓冲区一般为实际数据的1. 5-2. 5倍,就是让接收数据有 重复性,保障能够尽量减少瞬间信号干扰而造成的数据没有收到,或者数据损坏的情况。而 且即使最终还有数据没有收到或顺坏,再按照没有收到的数据或损坏的数据使用并行的方 式进行专门的接收,已达到完整接收数据的目的。
权利要求
一种机顶盒数据快速获取的方法,其特征在于包括下述步骤步骤10、机顶盒程序首先启动机顶盒的解复用模块接收数据的控制块;步骤20、机顶盒程序按照控制块信息分析出来的需要接受的数据的大小,从系统中动态分配出数据大小1.5 2.5倍的内存,把分配出来的内存配置为将要接受数据的解复用模块的接收缓冲区;步骤30、在离动态分配得到的内存末端一段距离的地方写入一个若干字节的数据作为缓冲区标记;步骤40、设置解复用模块接收所有分块数据,接收模式为不间断接收模式,且在解复用模块停止之前,把接收到的数据直接送入模块相应的缓冲区中;步骤50、机顶盒程序实时监视缓冲区标记,如果发现缓冲区标记被改写,则认为接收到的数据已经超过需要接收的范围,则通过机顶盒程序停止解复用模块的数据接收;步骤60、这时机顶盒程序调用动态分配函数以分配到和要接收数据大小相应的内存,用来存储最终的数据;同时分析缓冲区中的数据,对每个section数据进行分析后,把数据放在最终存储数据的内存的相应位置上;当把所有接收缓冲区中的section数据都分析完后,统计一下还有哪些段没有被接收,或者数据是损坏的,把这些section号进行记录,建立一需要接收的section段表;步骤70、释放接收缓冲区的内存,同时设置每个解复用模块的接收缓冲器的大小为一个section的大小,配置为接收一个section数据就自动停止接收,并调用回调函数进行分析,按照需要接收的section段表,并行启动多个解复用模块;步骤80、等待数据的接收;当收到数据时,分析后把它填入最终存储数据的内存的相应位置上,同时释放它所占用的解复用模块,设置解复用模块启动对下一个section段表中描述的section的获取,直到所有的数据都接收完毕,填充到最终存储数据的内存的相应位置上,这时最终存储数据的内存中的数据就是所需要的某个功能的提供的大数据。
2.根据权利要求1所述的机顶盒数据快速获取的方法,其特征在于所述步骤30中,用于写入缓冲区标记的地方是在大于所接收数据大小的1倍以上且小 于除去1倍空间以外的剩余空间的70%的地方。
全文摘要
本发明提供一种机顶盒数据快速获取的方法,包括启动机顶盒的解复用模块接收数据的控制块;从系统中动态分配出数据大小1.5-2.5倍的内存,把分配出来的内存配置为将要接受数据的解复用模块的接收缓冲区;在离动态分配得到的内存末端一段距离的地方写入一个若干字节的数据作为缓冲区标记;设置解复用模块接收所有分块数据,接收模式为不间断接收模式,且在解复用模块停止之前,把接收到的数据直接送入模块相应的缓冲区中等步骤,本发明采用瀑布接收原理来对数据接收,然后对还未接收的数据进行多个并行接收的方式,已提高整体的接收速度。
文档编号G06F9/44GK101924865SQ20101024899
公开日2010年12月22日 申请日期2010年8月10日 优先权日2010年8月10日
发明者方立 申请人:福建新大陆通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1