专利名称:数字电视的有包头的基本码流数据包检测方法
技术领域:
本发明有关数字电视的发明,特别是指检测TS流内PES的始末并显示的一种数字电视PES(Packetized Elementary Stream有包头的基本码流)数据包检测方法。
背景技术:
目前,适用MPEG2格式的很多数字广播作为传送数据的数据流格式,使用188字节传输(TS)数据包。
上述TS数据包由包括数据包信息的4字节固定标题(header)和相当于数据的有效载荷(payload)构成。
上述TS数据包的标题如[表1],是包括sync-字节,payload_unit_indicator和continuity_counter的4字节数据。
实际用于解码的数据有效载荷由PES数据包或PSI段(section),专用数据,或者充填(stuffing)字节中之一组成。
在大部分系统解码器中,从TS数据包取出除了标题部分以外的有效载荷部分传送到存储器或音频/视频解码器,使S/W(software软件)或音频/视频解码器对这些数据进行解码。
图1是表示普通TS流数据通道的示意图。
将参照图1说明,TS流是表示通过系统解码器1向A/V解码器2以及存储器3传送数据的通道。
以上述的向A/V解码器2传送的数据为例,A/V解码器2将其进行解码后,向各个演示个体的扬声器4和显示器5传送。
但以储存在存储器3的数据为例,大概由S/W通过CPU(中央处理器)读取这些数据,将进行解码。
因此,只有告知存储器3以一定单位储存数据的中断信号等信息,才能使S/W在适当时间段读取,并用于解码过程。
图2是表示普通PES(有包头的基本码流)数据储存结构的示意图。现有多种方法使用了确认被PES定义的PES长度,储存这一长度数据时,数据流经TS标题剖析器,通过中断信号告知S/W的方法。
这种PES确认需要为确认长度的H/W(hardware硬件)。在按顺序向不同存储器储存多个PES时,必须另外储存欲储存的相当于PES种类的长度,因此具有H/W(硬件)增加的缺点。
还有,长度没有定义的PES是无法确认这些,如果数据流中出现错误而continuity_counter跳过默认最大值16,那么仅以continuty_counter确认是无法查出错误状态。因此,这时如果确认长度,就存在可能陷入无法预测状态。
发明内容
如上所述,本发明的目的是为了解决上述现有技术问题而提出,旨在提供储存有包头的基本码流(PES)后,检测PES的始末端并通过中断信号告知软件的数字电视的有包头的基本码流数据包检测方法。
为了实现上述目的,本发明的一种数字电视的有包头的基本码流数据包检测方法,如播放在数字广播时,储存TS流内有包头的基本码流有效载荷,并告知结束一个单位有包头的基本码流的储存的过程所述,分以下几个步骤构成接收上述TS流,判断TS流内的有包头的基本码流数据包是否为上述一个单位第一字节数据包初始化模式的步骤;根据上述判断结果,如果是一个单位第一字节数据包的初始化模式,就对初始化模式进行复位,并储存一个单位第一字节有包头的基本码流数据包,如果不是初始化模式,就判断是否为紧接着第一字节数据包之后接收的连续性数据包的步骤;上述判断结果,既不是初始化模式,也不是连续性数据包,就判断为不是初始化模式,而是不连续性数据包与否的步骤;上述判断结果,既不是初始化模式,也不是不连续性数据包,就判断为以初始化模式和连续性数据包为一个单位的数据包储存的中断信号的步骤。
理所当然,上述信息如果不是初始化模式,而是连续性数据包,就储存接收的有包头的基本码流数据包。
还有,如果不是初始化模式,而是不连续性数据包,就放弃接收的有包头的基本码流数据包。
本发明的效果如上所述,本发明具有这样的效果,即如果将要储存的有包头的基本码流(PES)的种类为n个,就可以用2比特Xn个的F.F来,比计算将要储存的每个PES长度,并储存时所需的F.F的数、16比特X个,可以减少H/W。
为进一步说明本发明的上述目的、结构特点和效果,以下将结合附图对本发明进行详细的描述。
图1是表示普通TS流数据通道的示意图。
图2是表示普通PES数据储存结构的示意图。
图3是表示本发明的数字电视PES数据包检测方法的流程图。
具体实施例方式
下面将参照附图对本发明的数字电视的有包头的基本码流数据包(以下简称PES数据包)检测方法的一个实施例的构成及作用进行说明。
图3是表示本发明的数字电视PES数据包检测方法的流程图。
首先本发明储存PES有效载荷的同时,为了检测一定单位PES的始末端,不是计算PES长度,而确认TS数据包标题的payload_unit_start_indicator信息和continuity_counter值。
S11,首先,以初始化模式设定数字电视。
S12,进行上述设定后,接收TS数据包。
S13,判断所接收的TS数据包是否为初始化模式。
判断所接收的TS数据包是否为初始化模式,就是判断所接收TS数据包PES有效载荷的第一字节是否为起始字节或者是连接第一字节的后续字节的过程。
S14、S15、S17,上述S13中判断结果,如果PUSI(payload_unit_start_indicator)值为1(状态2),就复位初始化模式,并储存相应数据包的PES。
S16,另外,上述S13中判断结果,如果PUSI值不是1(状态1),就放弃相应数据包的PES。
S18,还有,上述S13判断结果,如果不是初始化模式,就意味PUSI值为1的PES曾有起始字节的数据包输入,并已储存PES起始字节,因此判断PUSI是否为‘0’和ccnt_err(continuity_count ererror)是否为‘0’。
如果上述ccnt_err为‘0’,就意味PES数据包紧接着第一个字节依次被输入,PUSI为‘0’,ccnt_err(continuity_counter error)为0(状态3),则,进入上述S17,储存输入的PES数据包。
S19,此外,如果上述PUSI为‘0’,ccnt_err(continuity_counter error)不是0时,判断PUSI是否为‘0’,ccnt_err(continuity_counter error)是否为‘1’。
S20,在上述S19中如果PUSI为‘0’,ccnt_err(continuity_countererror)为‘1’(状态4),就放弃输入的PES数据包,并回到S11。
S21,另外,上述S19判断结果,PUSI为‘0’,cnt_err(continuity_countererror)不是‘1’,就判断PUSI是否为‘1’,ccnt_err(continuity_countererror)是否为‘0’。
S22,上述S21判断结果,若PUSI为‘1’ccnt_err(continuity_counntererror)为‘0’(状态5),就显示表示已结束储存一个单位PES的中断信号信息,然后,进入上述S17;若PUSI为‘1’,ccnt_err(continuity_counter error)不是‘0’(状态6),就进入上述S17储存其它单位的第一字节PES数据包。
如上所述,本发明的H/W在初始化状态等待PUSI=‘1’的输入。
上述PUSI意味着PES有效载荷的第一字节已被传送,因此,检测PUSI=‘1’的TS数据包,以此可以从PES起始第一字节开始储存。
如果在初始化模式输入PUSI=‘1’的数据包,就对初始化模式进行复位,并储存相应数据包的PES。
初始化以后,PUSI=‘1’检测TS数据包的状态为图3的状态1、2。
之后,为了以中断信号显示一个单位PES已经结束储存,接着进行为检测与现在储存的PES起始字节连续的PES单位的末端的状态确认。如果不是在初始化模式的状态下,输入TS信息,就确认状态3、4、5、6。
若不是初始化模式,就意味着已经有PUSI=‘1’的TS数据包的输入,并且已经储存PES的起始字节。
状态3表示连接以前PES的PES被输入,状态4是在连续输入PES的过程中,出现中间一个单位的有效载荷错误,是判断为一个单位的PES中至少有一个PES没有被储存的状态。
因此,在上述情况下,忽略输入状况,并为了重新搜寻PUSI=‘1’的TS数据包,设定为初始化模式。
另外,状态5为引发中断信号的状态,把新PES的第一字节输入到现有数据包,在第一字节输入之后,之前输入的PES没有出现计算错误储存,因此判断为对以前输入储存的PES的一个单位已经结束,以中断信号显示这些。
虽然状态6与状态4相同,出现连续计算错误,但是现有数据包已经是PUSI=‘1’,因此无须设定初始化模式,只复位以前状态,并储存之后连续的TS数据包的PES输入。
还有,设定的初始化模式需要按照将要储存的PES类别以注册信息储存。与此同时,对是否输入PUSI=‘1’的数据包的状态也将以注册信息储存。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明权利要求书的范围内。
权利要求
1.一种数字电视的有包头的基本码流数据包检测方法,是播放数字广播时,储存TS流内的PES有效载荷,显示一个单位有包头的基本码流储存结束的过程,其特征在于所述的检测方法分以下几个步骤接收所述TS流,判断TS流内的有包头的基本码流数据包是否为所述一个单位的第一字节数据包的初始化模式的步骤;上述判断结果,如果是一个单位第一字节数据包的初始化模式,就复位初始化模式,储存一个单位第一字节有包头的基本码流数据包,如果不是初始化模式,就判断是否为紧接着第一字节数据包之后接收的连续性数据包的步骤;上述判断结果,如果不是初始化模式,也不是连续性的数据包,就判断为不是初始化模式,而是不连续性数据包与否的步骤;上述判断结果,如果不是初始化模式,也不是不连续的数据包,就判断为初始化模式和连续性数据包,显示表示一个单位的数据包储存结束的中断信号的步骤。
2.如权利要求1所述的数字电视的有包头的基本码流数据包检测方法,其特征在于所述判断TS流内的有包头的基本码流数据包是否为所述一个单位的第一字节数据包的初始化模式的步骤中,若判断结果不是初始化模式,而是连续性数据包,就储存所接收PES数据包。
3.如权利要求1所述的为特点的数字电视有包头的基本码流数据包检测方法,其特征在于所述判断TS流内的有包头的基本码流数据包是否为所述一个单位的第一字节数据包的初始化模式的步骤中,如果不是初始化模式,而是不连续数据包,就放弃所接收有包头的基本码流数据包。
全文摘要
一种数字电视的有包头的基本码流(PES)数据包检测方法,包括接收TS流,并判断TS流内的PES数据包是否为一个单位的第一字节数据包初始化模式;如是一个单位的第一字节数据包的初始化模式,对初始化模式进行复位,储存一个单位第一字节PES数据包,如不是初始化模式,就判断是否仅次于第一字节数据包后接收的连续性数据包;如不是初始化模式和连续性的数据包,就判断为不是初始化模式,而是不连续性数据包与否;既不是初始化模式,也不是不连续性数据包,就判断为初始化模式,并且是连续性的数据包,显示已经结束一个单位数据包储存的中断信号。本发明检测TS流内PES的始末,并告知的数字电视PES数据包检测方法。
文档编号H04N7/26GK1909659SQ20051002834
公开日2007年2月7日 申请日期2005年8月1日 优先权日2005年8月1日
发明者徐永山 申请人:上海乐金广电电子有限公司