背景技术
为传送数字数据例如数字电视数据已经出现了各种标准。这些标准的实例包括被称为MPEG-2和DigiCipher II标准的运动图象专家组标准,这些标准的专利权属于本发明的受让人,美国伊利诺斯州芝加哥的通用仪器公司。该DigiCipher II标准类似于和包括了MPEG-2标准的各个方面,它被广泛地公知和承认为国际标准组织(ISO)在ISO 13818文件内批准的视频和音频压缩标准,除了视频和音频压缩特性以外,MPEG-2规范也包括系统“层”,它提供了独立编码技术的传送介质以形成包括1个或多个MPEG程序的位流,MPEG编码技术对于要被传送的位流的结构使用形式文法(句法)和1组语义的规则,句法和语义规则包括对多路,时钟恢复,同步和错误恢复的规定。为公开的目的,及编码类似MPEG-2类型传送流的编码的任何数据流被称为“MPEG-2类型传送流”以此为例,但绝不意味着仅仅这样MPEG-2类型传送流是依DigiCipher II标准提供的数据流。其它这样的标准也期待着在将来被传播。
MPEG-2传送流被指定为能产生数据错误的情况下传输。MPEG传送小包的每一个具有188个字节固定的长度,每1个具有不同内容的许多程序可以组合在传输流中,能被提供的使用MPEG格式的服务的实例是通过陆地的电缆电视和卫星网络的电视服务广播和交互电话服务。在标准化的国际组织当中的标题为运动图象和相关的音频一般编码的1994年11月13的国际标准ISO/IEC13818-1:标题为运动图象和相关音频的一般编码的国际标准的系统推荐H、222.0,和ISO/IEC13818-2:和两者结合在一起作为参考的视频推荐H.262中定义了MPEG-2传送流的句法和语义。
通过将未处理的初始流例如编码的视频和音频打包为小包化的初始(基本)流(PES)小包,它们然后被插入到传送小包中,这样来完成依照MPEG-2标准的多路通信,如上所提示的,每1个MPEG传送小包固定在188字节的长度,第1个字节为同步字节,它具有唯一的8位模式,即,01000111。该同步字节指示每1个传送小包的开始。
随后的1同步字节是3字节的前缀,它包括1位传送小包错误指示器,1位有效负荷单元开始指示器,1位传输特性指示器,13位小包识别器(PID),2位传输量化控制,2位匹配字段控制,和4位连续计数器。同步字节和3字节前缀的使用留下了总共184个字节的有效负荷,它们运载要被通信的数据。任选匹配字段可以跟随在前缀的后面,用于运载与在给定传送小包内的给出的传输流或基本流相关的MPEG和私用信息。时钟恢复的规定,例如程序时钟基准(MPEG)和链接控制是在匹配字节中运载的典型信息,通过放置这样的信息到匹配的字段内,它变成被以其相关的数据密封,有利于再分多路复用和网络路径选择操作,当匹配字段使用时,有效负载相应地比较短。
PCR是计数,它反映了系统时钟(STC)的值,对于以时间相关的程序而言PCR值被插入到传送流。解码器使用PCR去同步解码器时钟和解码器系统时钟。42位PCR的低9位提供模数-300计数器,它随着27MHz时钟比率(系统时钟比率)增加。在每1次模数-300的翻转时,上33位计数被增加,这样上位表示的计数发生在90KHz的比率。这就能表示时间标记(PTS)和解码时间标记(DTS)可以使用90KHz值加以比较,由于由数据流运载的每1个程序或服务有它自己的PCR,程序和服务能被非同步地多路通信。
使用时间标记的方式可以完成音频,视频和程序内数据的同步,表示的时间标记和解码时间标记被插入到分别的视频和音频小包的传送流内,解码器使用PTS和DTS信息去确定什么时间去解码和显示图象和什么时间去放声音片段,如上所示,PTS和DTS值都联系到由PCR建立的相同的时钟,并均受MPEG-2标准限制到时间分辨率为11.1微秒,该分辨率受到由PCR的上33位提供的90KHz时钟的PTS分辨率的限制。该限制阻碍了产生的“高速率”数据的传输,它们增加了定时错误,都在标准MPEG-2类型传送流中提供视频和音频信息所使用方法,数据速率不能取整到相关的90Kbps。
MPEG-2数据,例如压缩的视频和音频数据必须从PES小包中持续地被格式化为小包化的基本流(PES)。每1个PES小包包括包标题,随后为有效负荷,PES小包然后被分为连续的固定长度传送小包的有效负荷。
PES小包一般是变化的和具有相对长的长度,各种任意的字段,例如表示的时间标记和解码的时间标记可以跟随至PES标题的后面,当传送小包从PES中形成时,PES标题和传送小包标题对准,1个单独的PES小包可以跨过许多传送小包和该PES小包的细目必须呈现在具有相同PID值的连续传送小包内。然而,应该理解的是,这些传送小包可以自由地和具有不同PID和从不同基本流中运载数据的其它传送小包交织。
通过放置编码的MPEG视频流到PES小包内,这些PES小包然后被划分为插入到传送流的传送小包内,完成了视频服务。每1个视频PES小包包含了参考为“视频表示单元”的编码的视频图象的全部或部分,PTS和DTS数据被放置到PES小包标题,它密封了相关的表示单元。该DTS表示什么时间解码器应当解码表示单元,PTS被使用去激励解码器去表示(即,“显示”)相关的表示单元。
依照使用PES小包层的相同规范的MPEG标准可以提供音频服务。PTS数据附到包括音频帧边界的一些小包上。这样的诸边界由音频同步(sync)字所定义。一音频帧被定义为在两个连续音频同步字之间的数据。
为了从在MPEG-2类型(即MPEG-2或DigiCipherII)传送流运载的视频和音频信息中重构电视信号,需要解码器处理视频小包以输出到视频解压处理器(VDP)和处理音频小包以输出到音频解压处理器(ADP),这样也就可能在这样的传送流中传输其它类型的数据。例如,提供这样服务的私用数据例如电视电文,股票摘录和其它信息能被载送作为从单独小包化基本流分转出来的单独传送的小包,非同步数据管道也能被支持;例如这样的管道可以表示从解码器输出的RS-232并等同输入到编码器,这样信息服务传送小包在通过卫星式电缆的最后多路通信中能带有MPEG视频和音频小包进行多路通信。
运载使用MPEG-2类型格式的“同谐”数据是有优点的。同谐数据是在规则时钟边缘提供的高速率数据并和随不规则时钟到达的“同步”数据相区别。这样,同谐数据运载着不稳定性规格和时钟能用简单的锁相环(PLL)加以恢复。一般而言,同谐数据成分是随着伴随时钟的数据位被表示为实质上规则速率的一个。从规则(同谐)速率的任何偏移能由不稳定性规范加以定义。这样数据能被用于任何数目的大范围的“数据管道”应用,一个例子是传送T1数字(即,电话数据线)数据流的内容,这样的数据流在1.554Mbps下操作。另一个应用包括,但不局限于商务网络数据,一般的高速数据通信,和实际上任何需要恒定延迟数据传输速率的其它数据服务,它们远超出使用非同步通信技术可获得的一般服务或者该服务对于可变化的延迟并不适当。这些应用的特征在于“位偏移”(bit slips)的不能容忍,这就是,错误是允许的,但是涉及位流净偏移的再同步对最终的数据同步造成了大的中断。
在MPEG-2标准中,表示的时间标记仅能够指示带有分辨率11.1微秒的表示单元实例(即,表示解码器的8-位字节的数据),该限制是由用来产生表示时间标记的PCR计数的高位建立的90KHz速率产生的。在用高速同谐数据时,这就需要解决具有较高的分辨率的表示单元时间,特别是用于错误恢复的目的。特别是,这就需要表示的表示单元在时间上清楚地支持连续可变速率。因此,最好在标准MPEG-2执行时提供的周期内提高表示时间标记的时间分辨率。例如,最好是提供增加PTS时间的分辨率的方案,以在提高90Mbps速率或更高的情况下允许可靠地传送同谐数据或类似数据。
进一步的优点是提供简化数据接收器的方案,以根据系统时钟频率提供适当的时钟速率,以从数据流中恢复数据。特别是,优点是提供一方案,其中在从19.2Kbps至9Mbps的范围内的任何所希望信息数据数率范围内接收器均能够提供时钟,为通过直接的数字合成(DDS)来输出同谐信息数据。
进一步更有优点是提供管理不可避免错误的方法和装置,该错误发生在通过小包化传送流传输同谐数据。特别是,值得希望的是维持输入同谐数据的同步,尽管错误发生了和在错误的恢复开始进行的时间。更进一步,同谐数据将典型地通过解码器的缓冲器流动,该解码器从转输流中恢复同谐数据。在错误恢复期间最好维持缓冲器充满,以避免由于缓冲器上溢或下溢而在数据恢复过程中的错误。
在由于错误,数据丢失以后,最好有一个机构检测和恢复定时,在该定时中,成功地被恢复的同谐数据被表示并作为同谐数据解码器的输出,和吸收由于丢失数据而形成的定时错误,检测丢失数据的发生的改进的方法将是所期望的。确保在正确输出时间数据表示的恢复的附加规定将是有优点的。在任何解码应当已经被完成之后诸小包中包含编码的数据的情况下,克服数据小包的内容的不可靠性的方案被提供是有优点的。
本发明提供了在处理解码器内的同谐数据的情况下检测和恢复错误的方法和装置,该方法和装置享有上述的和其它的优点。
具体实施方式
图1的示意图示出了不同的数字服务成份怎样能被多路复用为传输小包的流,通过小包化未加工的基本流例如编码视频,音频和进入PES小包的数据和然后密封这些数据为传送小包完成了多路复用。该图仅仅是示意性的,由于PES小包(例如示出的小包12)可以转变为比示意出的七个传送小包22a-22g或多或少。
在图1的示例中,整体指定为10的基本流包括串连的数据位流,例如示出的同谐数据,应该理解的是,其它类型的数据在基本流中能够被提供作为本发明的传送。类似地,基本流将提供按MPEG-2传送标准的压缩的视频和音频数据。
形成传送小包流的第一步是密封基本流,使每一类型数据进入对应的从连续PES小包例如图示小包12形成的小包化基本流(PES)。每一个PES小包包含PES标题14,随后是包含整数表示单元(PU)18的PES有效负荷。有效负荷包括希望在传输侧被传送并在接收侧被恢复的最终信息。PES标题14包括在处理有效负荷数据例如在MPEG-2系统规范中的表示时间标记(PTS)有用的信息。
依照本发明,同谐数据标题(ISO标题)16作为PES小包有效负荷的部分跟随PES标题14。有效负荷的表示单元18跟随在ISO标题16的后面,ISO标题在下也更详细地被描述。
从每一个PES小包来的标题和有效负荷数据被分为单独的固定长度传送小包22(22a-22g)、24(24a-24f)、26(26a-26f),每一个包含传送标题30和有效负荷数据36。每一个传送小包的有效负荷数据将包含对应PES小包12的有效负荷部分(即表示单元18)和可以也包含PES标题14和ISO标题16,如图22a所示。在传送小包多路复用当中传送小包22d是另一类同谐数据传送小包,该传送小包包括传送标题30和有效负荷36。该有效负荷并不包括PES标题或ISO标题,因为这类传送小包是从随在PES小包内的PES标题和ISO标题的后面的有效负荷数据导出的,换言之,由于在每一个PES小包中这里存在一个PES标题和一个ISO标题,仅仅第一个从PES小包导出的传送小包将包含PES标题和ISO标题,从PES小包中导出的维持传送小包的有效负荷段将仅仅包含要被传送的实际信息数据部分。
依照MPEG-2系统规范,传送小包标题30将包含程序识别器(PIO),它用于从其它小包流中区分每一个传送小包流,例如同谐数据小包流、视频小包流、或音频小包流。在图1中,仅仅示出了同谐数据传送小包22(22a-22g),为了导出视频小包24(24a-24f)和音频小包26(26a-26f),提供相对应的基本流(没示出),这些相对应的基本流依照同谐数据小包22的形成、以与图1所示的基本相同的方式被密封在PES小包和传送小包中,除了本发明的同谐数据标题16没有被提供在视频或音频传送小包中之外。
每一个MPEG传送小包包括188字节的数据,形成传送标题30至少4个字节,有效负荷数据36字节,但它能到184个字节,依照MPEG-2系统规范,即8字节的匹配字段可以在传送头30和有效负荷36之间被提供,可变长度匹配字段可以包括,例如用于和解码器系统时钟同步使用的程序时钟基准(PCR)。
多个同谐数据小包22a,22b,22c,…22g…,和其它小包24a-f…和26a-f…被多路复用,如在图1中所示,以形成传送数据流20,它通过通信信道从编码器传送到解码器。解码器的目的是根据各自小包的PID从传送流中恢复不同类型的传送小包,和然后有选择地处理每一个同谐数据、音频和视频分量,以用来重构电视信号和恢复由同谐数据表示的数据流。
图2更详细地示出了PES标题14和ISO标题16,依照MPEG-2系统规范该PES标题14包括了各种长度和结构信息50。任选的PTS字段52在长度和结构信息50的后面。在PTS事件被提供的情况,在ISO标题16中提供相对的PTS扩展。如图2所示,PTS扩展54最好在ISO标题16的开始被提供,使得它立即跟随在PES标题的PTS52的后面。然而,本发明并不局限于在ISO标题的开始提供PTS扩展。PTS扩展可以被提供在ISO标题内的其它地方,只要它能在解码器中被检测,用于将它附加到PTS,以便扩展在解码器的输出端的同谐数据的时间分辨率。通过提供附加的8位,例如,在PTS扩展被加到在MPEG系统规范指定的在PTS中提供的33位,标准的MPEG-2的11.1微秒的分辨率能被扩展到74毫微秒,用于清楚地确定扩展同谐数据PTS参考的正确的表示单元开始时间。
ISO标题也包括了各种速率、长度和增量信息56。更具体而言,速率、长度和增量信息将包括数据速率标志,同谐数据标题长度字段,和指定对系统时钟频率的信息数据速率(即,同谐数据比率)的比率的增量字段,该时钟增量值启动在解码器的直接数字合成时钟,以在信息数据速率下提供时钟信号,供以本发明的数据传送流在运载输出信息数据时使用。
在本发明的优选的实施例中,每一个同谐数据表示单元18(图1)在长度上是16位,即,两个8位字节的一个字,同谐数据和PES句法对准,在该句法中同谐数据标题的第一个字节立即跟随在PES标题的最后一个字节的后面。同理,同谐数据表示单元和PES句法对准,其中在给定PES小包内的第一个表示单元的第一个字节立即跟随在同谐数据标题的最后一个字节。同谐数据表示单元和传送小包有效负荷对准,使得同谐数据传送小包的第一个有效负荷字节是同谐数据表示单元的第一个字节(随后是任何匹配,PES标题和同谐数据标题字段)、同谐数据传送小包的最后一个字节是同谐数据表示单元的最后一个字节。
使用由MPEG-2系统规范所利用的正规语法对本发明的同谐数据的句法作如下的描述,MPEG语法是类似C语言的句法,是描述位的连续的和可变化速率顺序的方法,而不象计算机C语言指定过程程序和功能,句法的第一行包括句法成份,第二行给出了按位的句法成份的长度和第三行识别句法类型,类型是bslbf(位顺序最左位优先)和uimsbf(无符号的整数最高位优先)。符号“同谐数据_标题”(){…}指示在括弧内的句法成份被命名为集和通过简单的指定“同谐_数据标题()”可以调用到句法的任何地方,位结构的条件发生可以用“如果”测试加以指示。习惯的相关的操作符在C语言中是公知的,在此也可以应用,环结构是可能的和使用标准的C环结构句法,用一组语义伴随着句法表,对先前未定义的句法字段提供了定义和对它们的使用进行了限制。下述的同谐数据位流句法和位流语义表示了本发明优选的实施例。
同谐数据顺序
句法: No. Mncmonic:
of
Bits:
同谐_数据_顺序
同谐_数据_标题(){
for(i=0;i<N;i++)}
同谐_数据_表示_单元 16 bslbf
同谐数据标题
为限制每一个同谐数据顺序内偶数字节,在同谐数据标题内的最后一个保留的字段被规定为偶数字节,同谐数据标题的句法是:
句法
No. Mncmonic:
of
Bits:
同谐数据标题
pts_cxt8 8 bslbf
数据_率_标志 1 bslbf
保留字 3 bslbf
同谐_数据_标题_长度 4 uimsbf
假如(数据_速率_标志)
保留字 4 bslbf
增量 28 uimsbf
}
保留字 n bslbf
同谐数据位流语义
同谐数据顺序:
同谐_数据_表示_单元——A16位同谐数据表示单元,那里在第二位等之前第一(左边)位被表示。
同谐数据标题:
PTS_ext8——在该PES的PES标题内传送的8位字段扩展PTS。该字段是在MPEG-2系统规范内定义的9位PCR的8个最高位,和依照本发明被用来扩展同谐数据PTS的分辨率,从MPEG-2系统规定的11.1微秒(90KHz)的分辨率到74毫微秒(13.5MHz)的分辨率,以清楚地确定由同谐数据PTS参考的正确的表示单元开始时间。
数据_速率_标志——一位标志,当设置为“1”时表示,增量字段出现在同谐数据标题。
同谐_数据_标题_长度——4位字段表示跟在包括保留字的这个字段后面的同谐数据标题的字(16位)数,(16位单元强制使与同谐数据表示单元相耦连的同谐数据标题是偶数字节,匹配字段和PES标题也是偶数字节,这就允许同步数据传送小包被产生而无需填充字节和允许较高的效率)。
增量——28位字段,它指出了同谐数据时钟增量值和使用该值,它描述了同谐数据速率对锁相参考时钟即MPEG-2 27MHz基准的精确的比率。在优选的实施例中,增量是:
增量=NINT(同谐数据速率536,868,000/标准_系统_时钟_频率);
由MPEG指定的标准_系统_时钟_频率是27MHz和“NINT”是指“最接近的整数”。如上所述,MPEG允许从标准系统时钟频率偏离30PPM可变化性。
保留字——解码器假定没有特定值的保留字的n位字段。
图3的框图示出了实施本发明的可能编码器。同谐数据(即从图1的基本数据流10)通过端口60被输入到标题插入级62,它插入所需的数据去装配ISO标题16。该数据例如从系统微机(未示出)处获得。带有插入ISO标题的同谐数据被PES打包器级66所接收,该级插入通过从端口68输入的PES标题数据已经被装配的PES标题14。和ISO标题数据一样,PES标题数据也能从系统微处理器或在现有技术公知的其它数据源中获得。
通过端口65,同谐数据时钟信号被输入到图3的编码器的锁相环(PLL)67,PLL可以包括例如27MHz的振荡器和DDS电路使用如上计算的最接近的增量值去锁住输入的时钟信号,PCR值然后由PCR产生器69所产生,该PCR值作为传送匹配数据被输入到传送小包打包器70,这在下面将更详细地叙述。
一旦ISO标题和PES标题已经被插入到同谐数据基本流,通过端口60输入的顺序有效负荷数据以固定长度表示单元18的形式分段以跟随诸标题。其结果是,从PES打包器66输出的PES小包12连续进入到传送小包打包器级70。在这一点上,需要装配传送标题的数据以通常的方式通过端口72被接收和被装配成传送标题,相应的有效负荷数据附在传送标题的后面。有效负荷数据包括从当前PES小包来的其余的数据部份(例如PES标题数据,ISO标题数据和/或表示单元)。打包器70的输出是一串同谐数据传送小包22,它们每一个将包括传送标题和有效负荷,可以或不可以包括PES标题和同谐数据标题信息作为有效负荷部分。
从打包器70来的同谐数据传送小包和通过端口76和78分别输入到多路器的压缩的音频和视频小包进行多路复用,依照MPEG-2系统规范也就是现有技术提供音频和视频小包。多路器74装配诸传送小包为传送小包流20(如图1所示),传送小包流在通常的调制器80内加以调制和使用通常的发射器82通过卫星,电缆或其它的公知的通信信道加以发射。
图4示出了接收器(“解码器”)用以接收从图3的编码器输出的传输多路复用,传输多路通过端口90被输入到接收器92,并在通常的解调器94中解调,信号分离器96从解调的传送小包流中恢复音频小包,视频小包和同谐数据小包,同谐数据小包被输入到标题处理器98,它能包括编程的通常的微处理器,以从同谐数据小包流中恢复PES标题和ISO标题。在PTS提取级102中PTS从PES标题中取出。通过PTS扩展提取级104PTS扩展部分从ISO标题中提取出。PTS和PTS扩展在组合器106内被组合以提供同谐数据PTS,它能使高速率同谐数据在时间上能被精确地表示。PTS解码器108从由组合器106输出的扩展的同谐数据PTS中提取定时信息,该定时信息被输入到同谐数据提取器110,它也从信号分离器96中接收同谐数据包,从标题处理器98来的定时信息能使提取级102,104,PTS解码器108和同谐数据提取器适当地定位和处理呈现在每一级的数据。为了在适当的时间呈现单独的同谐数据表示单元(恢复的“同谐数据”),同谐数据提取器110响应从PTS解码器108来的PTS、呈现的同谐数据从同谐数据提取器110中被输出,以在基于在数据中包括的信息提供必要的服务中使用。
图4的解码器也包括DDS时钟100,它被使用提供由标题处理器和/或解码器的其它部件使用的大量参考时钟速率,从标题处理器98来的系统定时输出是基于由DDS时钟提供的一个或者多个参考时钟速率,这些参考时钟速率是基于系统时钟频率,例如,在MPEG-2系统规范中设置的27MHz系统时钟频率。为了处理PCR以产生系统时钟频率供DDS使用,解码器包括PCR分析程序97,它从同谐数据传送小包中提取PCR值,提取的PCR值被用来锁住锁相环99,它用来产生系统时钟(即27MHz)。该系统时钟被输入到DDS时钟100,以供产生如上所述的参考时钟时使用。
为了简化解码器,在同谐数据标题内提供时钟“增量”以指定同谐数据速率对系统时钟的比率。该增量由标题处理器98恢复和被输入到DDS时钟100,它使用增量在同谐数据速率下提供时钟信号,以表示同谐数据时使用。
在同谐数据标题内的时钟增量的规定排除了解码器不得不自己计算这个增量的需要。在使用直接数字合成时钟的通常的系统中,解码器接收所需的时钟频率指示器和要被恢复的数据,时钟频率指示器指定了要被DDS时钟合成真实时钟频率,由于DDS时钟标度了为产生各种时钟频率的现有的系统时钟,通常的解码器必须首先确定所期望的时钟频率对系统时钟频率的比率,从该比率中导出所希望的时钟需要执行该功能的处理硬件增加了成本和解码器的复杂性。
在数字电视解码器中,成本必须被保持到最小,因为在场地内的潜在的数百万台电视中的每一个都需要一个单独的解码器。通过提供解码器能被DDS时钟直接使用的增量以产生所期望的频率,接收机的复杂性和成本降低了。在本发明的系统中,需要提供所期望的频率的增量的计算在编码器中集中地解决了,该编码器为在场地内的几百万个解码器服务,解码器因此不需要执行该计算。
图5更详细地示出了图4的组合器106,PTS解码器108,和同谐数据提取器110。由在进入的数据流内的它们的PID检测的同谐数据小包通过端口112被输入到标题处理器98和标题分解器150。标题分解器150是同谐数据提取器110的一部分,和从接收的诸小包中分解传送PES和同谐数据标题,使得恰恰表示单元(PUS)被提供作为先入先出寄存器(FIFO)152的输出,FIFO 152依照本发明对PUS进行缓冲,使得能够完成适当的同步和错误恢复,FIFO可以使用FIFO系列例如Pre DRAM FIFO,DRAM FIFO和Post-DRAM FIFO加以完成、在这样的完成中,从同谐数据中读出的基准可以参考为最后使用的FIFO,即POST DRAM FIFO,读指针154和写指针156被提供以控制写数据和读数据到/从FIFO 152,写指针156通过端口182与FIFO时钟同步,缓冲器操作的详细的描述将结合图6进行。
从FIFO 152来的表示单元作为输出被提供到表示单元同步电路158、该电路使表示单元数据与系统时钟(STC)162同步,在同谐数据最终被输出的固定的速率运行的数据时钟160耦连到表示单元同步电路158和到表示单元计数器164。这样的安排以确保,从FIFO来的同谐数据表示在表示单元的第一位开始,从FIFO呈现的数据被输入到填充位多路转换器(MUX)166,它在需要恢复发生在输入数据流中的错误时被使用以提供填充位,多路转换器166的填充位输出包括恢复的同谐数据,它可以包括填充位以取代出毛病的或丢的数据。
表示单元同步电路158也接收必要的指针数值和从PTS解码器108来的正确的表示时间、在图5中,PTS解码器108的诸功能和组合器106的诸功能一块被分组,如结合图4所提到的,组合器106提供了同谐数据PTS,它们能使高速率的同谐数据表示为精确的时间。
电路106和108包括PES长度计数器170和PES长度比较电路以确定是否每一个接收的PES小包的长度对应于在相应PES标题内为那个小包分配的长度,从PES标题提取的PES长度值由标题处理器98提供给PES长度比较电路172。PES长度计数器170通过端口184接收FIFO时钟,和通过对在这获得的字节的计数,确定每一个接收PES的长度,每一个FIFO时钟周期一个字节,PES长度计数器170从标题处理器98处接收到指定每一个新PES小包开始的信息,和通过线175提供为每一个PES小包计数的长度到PES长度比较电路172。在计数长度不与在PES标题指示的PES长度匹配的情况下,产生PES长度错误标志。由标题处理器98产生的其它错误标志包括编码小包出错标志和不连续性标志。同谐数据微处理器(未示出)接收各种各样的出错标志和提供控制信号,以响应出错情况,这些出错标志在下面更详细地讨论。
PTS指针管理器174提供组合PTS和PTS扩展的功能。PTS和PTS扩展在由标题处理器98检测特定的同谐数据标题内被运载,该标题处理器98传送这些数据到指针管理器,指针管理器分别在新和旧指针寄存器176,178内存储PTS和PTS扩展值、组合的最旧的值被输出给表示时间计算器180,以在计算被同谐数据提取器110表示的同谐数据表示单元将开始的时间时使用。写指针156保持通知指针管理器最当前的写的FIFO地址,使得指针管理器能提供每一个PTS指针的FIFO地址值。
通过端口186将PTS偏置值提供给表示时间计算器180。该偏置值提供了需要吸收可恢复传送定时错误的任何时延,更具体而言,偏置值能使FIFO收集足够的数据以输出连续的数据流而不管MPEG规范允许的STC错误和解码器的STC跟踪环的瞬时举止,和允许FIFO累加需要拯救小包损失所必需的数据量而没有下溢出。
现在看图6的状态图,当系统被重置时,在步骤120开始同谐数据处理,同谐数据输出模式是三态,在重置时将同谐数据PID设为无效。然后,开始启动序列,其中在设置同谐数据PID为有效之前,同谐数据PID被编程为同谐数据服务分量的PID。当同谐数据PID被写入时,同谐数据FIFO152将被齐平和PTS指针176和178被清零,通过简单设置读和写指针154,156到相同的地址和清除任一个前和后FIFO使FIFO能被齐平。通过简单重置它的内使用标志可以使PTS指针被清零。当同谐数据PIF被置为有效时,同谐数据输出模式将被置为无声_时钟_和_数据和捕获将开始,在同谐数据PID返回到无效状态的情况下,同谐数据输出模式将被设置为无声_时钟_和_数据(如果它不是已经在该状态下)和开始启动序列将重新开始。如果同谐数据输出模式是被设置在无声数据,同谐数据的处理和正常情况一样将继续,开始启动状态将不需要被返回,通过在同谐数据PID上接收同谐数据传送小包和等待小包和它的有效负荷_单元_开始_指示器组时(指示PES开始于小包有效负荷的第一字节),捕获状态在124开始。同谐数据标题将被分析,以发现被设置的数据_速率_标志和发现和记录数据时钟增量值,如果出现的话。如果数据_速率_标志被设置,增量值将被存储到寄存器和系统微处理器将被中断以指示增量值在同谐数据PID上已经被接收,在每一个同谐数据标题内检索增量值的过程将继续直至增量值被接收。
处理将继续到设置等待状态126,在这一点,一旦增量值是在寄存器内,处理将等待直到寄存器标志被设置,以指示同谐数据捕获将被进行,在微处理器已经检验PCR已经被收到(即在同谐数据PCR PID上),并且已经编程任何需要的数据模式和增量寄存器,和已经编程数据_PTS_偏置寄存器之后,捕获将继续。然后进入PTS的获得状态128。
在PTS获得状态中,同谐数据输出模式被设置为无声_时钟_和数据。同谐数据传送小包的接收重新开始,包含PTS的PES标题的检索开始了。当在这个状态时,没有同谐数据表示单元写入到FIFO。
为了辅助错误检测,在同谐数据PID上接收的有效负载字节被计数用于比较在每一个PES标题指示的PES长度。这样,当每一个PES开始被收到时,PES长度被存储到PES计数器170、当每一个PES字节被分析时,该计数器被减1。当PTS被收到时,PTS值被存储到两个PTS指针寄存器176、178中的一个。同谐数据标题(它必须存在于该同一个小包内)的分析然后继续和PTS_ext8被恢复并且和在前一步中写入到PTS指针寄存器内的PTS一起被存储。通过写在该小包内的所有表示单元到FIFO152和存储第一个表示单元被存储的FIFO地址使处理然后继续。该FIFO地址将如在上述诸步中写入到PTS指针寄存器中的PTS和PTS_ext8一起被存储,和然后特定的PTS指针寄存器将被标记为“在一使用”。
一旦PTS和相应同谐数据表示单元被接收到,表示单元同步器158将开始等待PTS同步,如在130所示,这将保持同谐数据输出模式在无声_时钟_和_数据,直到STC162等于由表示时间计算器180提供的PTS+PTS_est8+数据_PTS_偏置值、当这瞬时发生时,表示单元计数器164(它是由同谐数据时钟160增量的4位计数器)被设置值为810(10002)。当表示单元计数器达到O10(00002)时这将准备表示单元同步器去开始输出表示单元的第一位。当捕获状态已经被进入时,因为PTS_同步状态是最后进入的,仅执行设置表示单元计数器为810的过程。一旦表示单元计数器达到O10,同谐数据输出模式被设置为非无声和从FIFO152来的同谐数据表示在FIFO的标题部开始表示单元的第一位。在每一个同谐数据时钟,表示续继FIFO输出一同谐数据位。
如果在任何时间,当等待PTS同步时,STC大于PTS+PTS_est8+数据_PTS_偏置,处理将被中断,FIFO将被齐平,PTS指针将被清零,和捕获状态将被重新开始。当等待PTS同步时(STC=PTS+PTS_est8+数据_PTS_偏置)接收和处理小包将继续。每个小包的表示单元将被放置进入FIFO,但同谐数据标题将不放入。同样,在这个状态下,当PTS被收到时,PTS值和与它相关的PTS_est8和FIFO地址将存进第二PTS指针寄存器。当PTS如果被收到和如果两PTS指针寄存器被占用了,新的PTS指针将重写最新被写入的PTS指针(最新的PTS指针)。
一旦同谐数据输出开始了,如132所示的跟踪开始了。在这个状态下,数据以同谐时钟数据160的速率将连续地从FIFO152中呈现。同样,同谐数据传送小包将连续地被处理,写每一个表示单元进入FIFO,和存储PTS诸指针,当表示单元需要被存储而同谐数据FIFO被发现满的情况下(FIFO上溢出),处理将被中断,FIFO齐平,PTS计数器被清零,和在设置同谐数据输出模式为无声_数据之后PTS获得状态128将被返回。当表示单元需要被输出而同谐数据FIFO被发现是空的情况下(FIFO下溢出),处理将被中断,FIFO被齐平,PTS指针被清零,在设置同谐数据输出模式为无声_数据后,PTS获得状态128将被返回。
包括在每一同谐数据传送小包内的一段是包含两个传送_编码控制位的段,它指示是否在传送小包的数据被编码了。当收到带有设置对不是编码的任何事物的它的传送_编码_控制位的同谐数据传送小包时,这种情况将一致地被处理为接收到了具有它传送_错误_指示器组的同谐数据传送小包。
传送小包也可以包括连续计数器。当收到带有它的连续_计数器值不等于收到的最后小包连续计数器值加模数16时的同谐数据传送小包时(小包不连续性错误),将采取下述的步骤:
1.如果不连续指示冗余的小包已经被收到,冗余的小包将被丢弃。
2.如果不连续性指示两个或多个小包被丢弃了,PTS指针将被清零,同谐数据输出模式将被设置为无声数据,PTS获得状态128将被返回。
3.如果不连续性指示一个小包被丢失了,那末:
A.如果PES计数器指示184,或更多的字节保持着为当前的PES所接收,PES计数器将被减少184和FIFO写指针将增加184字节地址(92个字),以有效地插入184字节进入FIFO,以补偿丢失小包的有效负荷。应当注意,当丢失小包而失去的字节数少于插入到FIFO的字节数时,这就有可能FIFO将上溢出。
B.如果PES计数器精确地指示,留下零字节作为接收当前的PES,该PES计数器将被设置为先前PES_小包_长度,PES计数器将被减少178和FIFO写指针将增加164字节地址,当随着丢失小包而失去的字节数小于插入到FIFO的字节数时,FIFO将上溢出是可能的。
C.如果PES计数器指示N(在1和183之间)字节唯一留下来作为接收当前的PES,PES计数器将减少N和FIFO写指针将增加N字节地址,以有效地插入N字节进入FIFO,以补偿丢失的小包的有效负荷。当随着丢失小包而丢失的字节数小于插入到FIFO字节数时,FIFO将上溢出是可能的。
当PES数据被分析时,PES计数器的数值将被监视。当PES计数器是零(在对计数器进行减量以计算当前的PES字节之前)如果PES字节被分析和该字节不是新PES的第一个字节,由于一个或多个先前传送小包的丢失过多的字节被写入FIFO。当这个情况发生时,该处理将停止写同谐数据表示单元到开始当前字节的FIFO和在齐平FIFO和对PTS指针清零以后将返回到PTS获得状态。
在每一个表示单元从FIFO移出以后,处理检测何时FIFO读指针等于最早的PTS指针的DRAM偏置地址。当这种情况发生时,定时将以如下方式检验:
如果STC小于对应PTS指针的PTS+PTS_ext8+数据_PTS_偏置,这将是同谐数据丢失的情况,填充位(即零)将输出给同谐数据直至STC=PTS+PTS_ext8+数据_PTS_偏置。在这时,填充位将续继输出给同谐数据直到表示单元计数器等于O10(00002)。当这种情况发生时,将FIFO来的同谐数据表示的单元读出将重新开始和该数据将被表示为同谐数据。如果STC是大于或等于相应的PTS指针的PTS+PTS_ext8+数据_PTS_偏置,正常的同谐数据处理将继续。
当同谐数据处理时,定时将以如下的方法被监视:
如果,在STC=PTS指针的PTS+PTS_ext8+数据_PTS_偏置之后而表示单元计数器最初为零的时间间隔,FIFO读指针并不等于相应PTS指针的FIFO地址,处理将被中断(FIFO后输出错误)和进入获得状态124将再次进入。
在上述处理的最佳执行过程中,下述的规范将被使用:
数据_PTS_偏置——表示PTS时钟数的13位值,该时钟被加到每一PTS值和PTS-ext8值以控制应用到同谐数据的时延,该值具有11.1微秒和允许同谐数据被延迟到90.9微秒。
PTS指针——每一个PTS指针将包括如下的段,允许指出在FIFO内的特殊表示单元和允许它被表示的时间用74毫微秒的分辨率加以存储。
·PTS——带有11.1微秒单元的16位段,它存储相应表示单元的PTS的最低有效16位,16位允许在FIFO内保留同谐数据727.4微秒那样长。
·PTS_Ext8——带有74毫微秒单位的8位段它存储9位PCR_扩展中的高8位,它是国际标准组织的运动图象和相关的音频一般编码中的ISO/IEC 13818-1,系统国际标准,94年11月,的MPEG指定了的9位PCR-扩展。该段对应着表示单元的时间标记和扩展了由MPEG指定11.1微秒的标准同谐数据时间标记的时间分辨率到74毫微秒。
·DRAM偏置地址——相对于同谐基本地址的12位DRAM字偏置地址,该同谐数据基本地址指出了FIFO的DRAM字和在该基本地址相应的表示单元被存储。12位允许FIFO有4096字那么大。
·内—使用标志——允许PTS指针状态被确定的一位标志。当设置时,该标志指示PTS指针是内部使用,其中它包含有效的设置值,在重置同谐数据处理之后,每一个指针将清除该标志。
PTS指针的维护
两个PTS指针寄存器176,178以如下的方式被维护:
I在重置后,所有的PTS指针寄存器内使用标志被重置(被置到不使用)。
II当PTS值被收到时,在PES标题内的PTS值被存储在旧PTS指针寄存器的PTS字段内。
III从同谐数据标题来的PTS_ext8字段然后被分析和存储在旧PTS指针寄存器的PTS_est8字段内。
IV在新PTS值被存储到PTS指针寄存器后,同谐数据处理继续。如果下一个表示单元被收到和正确地写入到FIFO,对应着持有表示单元第一字节的FIFO地址的DRAM偏置地址存储在指针DRAM偏置地址字段内。当在接收PTS值和接收同一PES_小包的第一表示单元之间没有任何理由丢失数据时,下一个表示单元被接收和被正确地写入到FIFO。当这个完成时,PTS指针是有效的和通过在同一个PTS指针寄存器设置内使用标志而被标志内部使用和将被认为是在继续处理的最新PTS指针。
V当PTS指针被记录和没有PTS指针寄存器被内使用时,该指针被记录到旧PTS指针寄存器。
VI当旧PTS指针寄存器在使用和当新的指针已经被记录时,该新指针将被记录到新PTS指针寄存器。
VII当两个PTS指针寄存器在使用时,通过重写新PTS指针来记录新的指针。
VIII在前述的跟踪状态132中被指定时使用PTS指针。
IX一旦在跟踪状态被指定为使用,新PTS指针将被传送到旧PTS指针和通过清除它的内使用标志而新PTS指针将被标志为未被使用,使得新指针寄存器被用来存储下一个PTS指针。
X当传送小包从带有它的匹配字段组的不连续指示器位的同谐数据的PID上收到时,所有PTS指针寄存器将被清零和没有PTS指针将被存储直至下一个PCR值被收到(例如在同谐数据PCR PID上)。
为了帮助错误检测,每一个接收的在同谐数据PID上的有效负荷字节被计数以比较由MPEG定义的在每一个PES标题指出的PES_小包_长度。这样,当每一PES_小包开始被收到时,PES_小包_长度将被存储到PES长度计数器170。当每一个PES字节被分析时,该计数器将被减一。进而,当跟踪状态132被指定时,该计数器将被使用和维持。
除了PES长度计数器,优选的系统维持前述表示单元计数器164。表示单元计数器是4位计数器,它随着同谐数据输出时钟而增加。如PTS同步状态130所描述的,依照从FIFO来的第一同谐数据表示单元的输出,该计数器被设置为810(10002)。随后进入PTS同步状态,因为最后进入PTS同步状态,不设置或不重设置该计数器,除非获得状态124已经被重新进入。
4个同谐数据输出模式按如下完成:
1三状态,在这个模式中,两个同谐数据时钟和诸数据输出为三状态;
2无声_时钟_和_数据,在这个模式中,两个同谐数据时钟和数据输出将是低的(例如为零);
3无声_数据,在这个模式中,仅同谐数据输出是低的,而同谐数据时钟是有源的;
4在非无声的,在这个模式中,不是同谐数据或是时钟输出是无声的(非有源)。
设置用于每一个错误情况的唯一的错误标志,在标志被读出以后它将被重置。每一个中断同谐数据处理的错误情况是可屏蔽的,表1列出了与同谐数据处理的各种错误情况和系统对错误的响应,下述定义了表的内容:
名称—分配给每个错误状况的名称,在本书中作为参考。
定义—条件(状况)的定义,这条件指示相应的错误已经发生了。
Int
yes-指示当该错误发生时同谐数据处理要被中断。
no-指示当该错误发生时该同谐数据处理不被中断。
Check state and Next state
>″state″-指示当当前同谐数据处理状态高于″state″时,该错误将被检测。下述表定义了同谐数据处理状态的级别:
1重置 最低
2开始启动
3捕获
4设置_等待
5PTS_获得
6PTS_同步
7跟踪 最高
≥″state″指示当同谐数据处理状态是等于或大于″state″时,该错误将被检测。
开始启动,捕获,设置_等待,PTS_获得,PTS_同步或跟踪-指示在相关行动被完成后,该错误在这个状态下将被检测或同谐数据处理将转到该状态。
same-指示在相关行动被完成后同谐数据处理将停留在相同的状态。
all-指示当该错误发生在任何处理状态下时,该错误将被检测。
FIFO作用
flush-指示通过设置FIFO读和写指针等于FIFO的DRAM基地址把FIFO齐平。
none-表示正常的FIFO管理无变化发生。
指针作用
clear-表示PTS指针将返回到指定的状态仿佛处理已经被重置。
none-表示正常指针管理无变化发生。
see other action-表示其它作用,可指示指针去设置或被重置和其它处理为none。
输出模式—陈述了处理将变换的输出模式。
其它作用—陈述了任何附加的错误的结果所要求的作用。
表1:错误、例外、和作用的小结
| | |
Check |
Next |
FIFO |
Pointer |
Output |
Other |
Name |
Definition |
Int |
State |
State |
Action |
Action |
Mode |
Actions |
| | | | | | | | |
iso_reset |
Processor is reset via the internalregister bit |
no |
all |
reset |
flush |
clear |
tristated |
reset all pts pointer in-use flags |
force_startup |
isodata PID is set to invalid via theinternal register bit |
no |
all |
starlup |
flush |
clear |
muted clockand data |
none |
mule |
Processor conunanded to muce viainternal register bit |
no |
all |
same |
none |
none |
muted data |
none |
setup_request |
Processor receives an incrementvalue and stores this in the internalregister |
yes |
acquisition |
setup wait |
none′ |
none′ |
muted clockand data |
none |
procced_cmd |
Processor is conunanded to proceedin isodata processing via the internalregister bit |
no |
setup wait |
pts acquice |
none |
none |
mnted clockand data |
none |
pts_err |
ste>pts+pts_ext8+data_pts_offset |
yes |
pts sync |
acquisition |
none′ |
none′ |
muted clockand data |
nione |
overflow |
fifo write pointer equals fifo readpointer when data must be storedinto the fifo |
yes |
pts sync |
pts acquice |
f1ush |
clear |
muted clockand data |
none |
最佳实施例齐平FIFO和对指针进行清零
overflow |
fifo write pointer equals fifo readpointer when data must be storedinto the fifo |
yes |
track |
pts aquire |
flush |
clear |
muted data |
none |
underflow |
fifo read pointer equals fifo writepointer when data must be cemovedfrom the fifo |
yes |
track |
pts aquire |
flush |
clear |
muted data |
none |
enc_err |
Processor receives a transport packeton the isodata PID whosetransport_scunbling_controlindicntes it is encrypted |
yes |
>startup |
same oracquisition:see otheractions |
none |
none |
same |
other error conditions may applyin this ease |
redundant |
Processor receives a transport packeton the isodata PID whosecontinuity_counter indicates it is aredundant packet |
no |
>startup |
same |
none |
none |
same |
discard packet |
packet_err_a |
Processor receives a transport packeton the isodata PID whosecontinuity_counter indicates one ormore isodata packets bave been lost |
no |
acquisitionand ptsacquice |
same |
none |
none |
same |
return to waiting for a packet withthe paytoad_unit_start_indicatorset |
packet_err_b |
processor receives a transport packeton the isdata PID whosecontinuity_counter indicates one ormore isodata packets have been lost |
no |
pts syne |
pts acquire |
flush |
clear |
same |
none |
packet_err_c2 |
Processor receives a transport packeton the isodata PID whosecontinuity_counter indicates two ormore isodala packets have been lost |
no |
track |
pts acquire |
fiush |
clear |
same |
none |
packet_err_c1 |
Processor receives a transport packeton the isodata PID whosecontinuity_counter indicates oneisodata packet has been lost |
no |
track |
same or ptsacquire;seeother actions |
seeotheractions |
see otheractions |
same |
If PES counter indicates≥184bytes remain in the PES、decrement PES counter by 184bytes and advance FIFO writepointer by 184 bytes.If PEScounter indicates zeros bytesremain in the PES,set PEScounter to PES_packet_length ofprevious PES.deerement PES |
| | | | | | | |
counter by 184 bytes and advanceFIFO write pointer by 184 bytes.If PES counter indieates N(1-183)bytes remain in the PES.decrenment PES counter by Nbytes and advance FIFO writepointer by N bytes. |
pes_count_err |
PES counter is zero when a PES byteis parsed which is not the first byteof a PFS |
no |
track |
pts acquice |
flush |
clear |
same |
none |
late_read |
fifo read pointer is not eqnal to ptspointer dram address whenpresentation unit counter is first zeroafter stc=pts+pts_ext3+data_pts_offset of thesame pts pointer |
yes |
track |
acquisition |
flush |
clear |
muledclock anddata |
none |
acquite |
processor is conunanded to enter theacquisition stat by writing to thelsodata PID register white the PIDValid flag is set |
no |
≥startup |
acquisition |
flush |
clear |
mutedclock anddata |
none |
per_dis_1 |
a transport packet on the isodataPCR PID is received with thediscontinuity_indicator bit of itsadaptation field set |
no |
pts_acquiceor track |
same |
none |
clear |
same |
processor shall stop storing PTSvalues in the PTS pointers untilafter reception of the next PCRvalue on the isodata PCR PID. |
pcr_dis_2 |
a transport packet on the isodataPCR PID is received with thediscontinuity_indicator bit of itsadaptation field set |
no |
pts_sync |
pts_acquire |
flush |
clear |
same |
processor shall stop storing PTSvalues in the PTS pointers untilafter reception of the next PCRvalue on the isodata PCR PID. |
维持一组寄存器,以控制和保持跟踪同谐数据处理的状态。在表2中指定了该寄存器的设置。
表2:同谐数据寄存器
Register Name |
#.Bits |
Typc |
Definition |
increment |
32 |
read |
value of increment field from most recently receivedisodata beader |
PID |
13 |
read/write |
PID value to use in filtering transport packets for isodataprocessing |
PID reset flag |
1 |
read/write |
processor shall move from the startup state to theacquisition state when this flag is rest.shall enter thestartup state when this flas is cleared |
PID valid flag |
1 |
read/write |
processor shall move to the acquisition state when set |
mute |
1 |
read/write |
Isodata output mode shali be muted data when set.shall bedetermined by state when cleared |
interrupt stacus |
6 |
read |
setup requestpts erroverflowunderflowlate read |
sync state |
3 |
read |
reset,startup.acquisition.setup wait.pts acquite.ptssync.or track |
data_ts_offset |
13 |
read/write |
number of 11.1μsecond ticks to add to PTS to determineproper time to begin output of the associated presentationunit |
FIFO DRAM baseaddress |
11 |
read/write |
base word address in DRAM at whicb isodata FIFO shallreside |
interrupt mask |
6 |
read/write |
shall provide indivdual interrupt mask for each interruptstatus bit defined above |
proceed |
1 |
read/write |
clear processor when setup wait state is entered.isodataprocessor shall enter the pts acquire state when this is set |
值得欢迎的是,本发明提供了检测和恢复通讯信息数据例如在MPEG-2型传送流内的同谐数据的错误的方法和仪器。该同谐数据跟随着小包化基本流的有效负荷部分内的PES标题PES有效负荷由同谐数据标题开始,而同谐数据表示单元跟在其后面、同谐数据传送小包被监示,以定位同谐数据表示时间章(PTS),从缓冲器来的同谐数据表示与使用从PTS导出的定时信息的系统时钟同步。在同谐数据小包之间的不连续性被识别和可能的话,缓冲器的写指针被增加适当的位数以补偿不连续性,在错误恢复过程中,根据STC的表示的同步被维持。表示单元计数和PES计数被维持以检测丢失的数据。使用PTS扩展和PTS偏置检验输出定时。一对PTS指针被用于检测校正的数据输出定时。附加的错误检验和恢复技术也公开了。
虽然本发明是结合优选的实施例加以描述的,值得欢迎的是,在不脱离在权利要求书设立的发明的精神和范围内可以有各种变化和修改。