恢复MPEG-2传输流中节目时基 并实现音频/视频同步的鲁棒方法 【技术领域】
本发明总体上针对同步对来自广播流的数字音频/视频数据包的解码,更具体而言,针对处理用于安排这种音频/视频数据包内容解码和显示的参考信号中的时基序列不连续。
背景技术
运动图象专家组第2版(MPEG-2)标准是一种在很多种音频/视频分配系统,包括例如数字卫星系统(DSS)广播,中使用的数字音频/视频(A/V)压缩标准。MPEG-2传输标准,ISO13818-1,要求广播电台在多路音频和视频包流中按周期性的时间间隔发送节目时钟参考(PCR)时间戳。这种在DSS节目流中称为系统时钟参考(SCR)的节目时钟参考时间戳与产生广播流的MPEG-2编码器中的系统时钟(STC)有严格关系,因此可以用于复制编码器的系统时钟。此外,多路传输到MPEG-2广播流的每个音频和视频包都包含用来确定相对于节目时钟参考在该时刻包必须分别被解码和用于显示的时间地解码时间戳(DTS)和显示时间戳(PTS)。
从MPEG-2广播流中各个包解码的音频和视频内容的显示是利用相关包中的解码和显示时间戳来同步的。因此,MPEG-2解码器必须恢复并维持基于广播流中节目时钟参考时间戳的编码器系统时钟的一个内部拷贝,并通过调节该内部系统时钟来跟踪编码器系统时钟中的长期频率变化。目前,这种编码器系统时钟的恢复和跟踪典型地是利用将频率和值锁定到恢复的节目时钟参考时间戳的内部硬件时钟来实现的,其中锁定是利用音频和视频解码器中的锁相回路(PLL)。
由于例如插入广告或用户改变节目(频道),在用于呈现给解码器的MPEG-2传输流的节目时钟参考序列中可能会发生时基不连续。因此,MPEG-2解码器还应当是鲁棒的,可以预防时基的不连续和丢失的不连续指示器,还应当在节目改变后尽可能快地锁定到新节目的频率/时基。
MPEG-2广播流中节目时钟参考时间戳的不连续将导致,例如,解码器内部系统时钟相应的跳跃,典型地会导致解码器内部系统时钟时间与用于解码器管道(它与“旧”节目时钟参考序列值有关)中的包的解码和显示时间戳之间有很大差别。如果一检测到这种大偏移,解码器就简单地丢弃解码和显象时间戳与内部系统时钟时间之间有大偏差的任何包,则音频/视频显示中可能出现无规律的跳跃或中断。因此,鲁棒的MPEG-2解码器必须具有内置的启发式算法来处理节目时钟参考序列的不连续。
由这种节目时钟参考序列不连续引起的问题在基于软件的MPEG-2解码器中加剧了,在这种解码器中,由于处理器必须顺序为分离来自广播流的音频和视频包的多路分解器及音频和视频解码器提供服务,而这又是重复循环进行的,因此解码器管道中的延迟是随机的。所以,即使在没有不连续的情况下,音频和视频解码器也不能保证在数据到达解码器输入后以固定的时间间隔接收内容数据。
因此,本领域就需要一种同步显示从MPEG-2广播流中解码的音频和视频内容的系统,该系统容许节目时钟参考时间戳值序列中的不连续,而不需要启发式算法来处理音频/视频显示中的这种不连续、插入中断或暂停。
【发明内容】
为了解决上面讨论的现有技术的缺陷,本发明的一个主要目的是提供一种用于MPEG-2解码器的将频率和,可选地,相位同步到所接收MPEG-2传输流中节目时钟参考时间戳的内部系统时钟,但值不同步。在将包转发到音频和视频解码器之前,分离来自传输流的音频和视频包的多路分解器将这些包中的解码和显示时间戳至少改变节目时钟参考时间戳值与内部系统时钟时间之间的一个偏移。节目时钟参考时间戳序列中的不连续自动导致该偏移的变化,从而内部系统时钟持续单调增加,而包中的解码和显示时间戳不会突然变得无效。
前面非常广泛地概括了本发明的特点和技术优点,从而本领域技术人员可以更好地理解随后本发明的详细描述。本发明另外的特点和优点将在构成本发明权利要求主题的下文中描述。本领域技术人员应当理解,他们很容易利用所公开的概念和特定实施方案作为修改或设计其它结构以实现本发明相同目的的基础。本领域技术人员还应当认识到这些等效结构不背离本发明最广泛形式的主旨和范围。
在开始下面的本发明详速之前,阐明贯穿本专利文件所使用的特定单词或短语的定义是有好处的:术语“包括”和“包含”及其衍生词的意思是没有限制的包括;术语“或”是包括性的,意思是和/或;短语“与…关联”和“与其关联”及其衍生词的意思可以是包括、包括在…内、与…互连、包含、包含在…内、连接到…或与…连接、耦合到…或与…耦合、可以与…通信、与…合作、使交织、使并列、接近…、与…关联、具有、具有…属性等;而术语“控制器”的意思是能够控制至少一种操作的任何设备、系统或其一部分,不管这种设备是以硬件、固件、软件还是以至少其中两种的某种组合来实现的。应当指出,与任何特定控制器关联的功能性都可以在本地或远程集中或分布。提供了对贯穿本专利文件特定单词和短语的定义,而且本领域普通技术人员都应当理解这些定义可以应用在这些定义单词和短语的很多,如果不是最多,现有实例及未来应用中。
【附图说明】
为了更完整地理解本发明及其优点,现在联系附图参考以下描述,其中相同的标号表示相同的对象,其中:
图1描述了使用根据本发明一种实施方案的鲁棒MPEG-2解码器的视频系统;
图2更加详细地描述了根据本发明一种实施方案的鲁棒MPEG-2解码器;
图3A是说明根据本发明一种实施方案的鲁棒MPEG-2解码器中节目时钟参考信号、内部系统时钟及修改过的显示时间戳之间关系的图表;及
图3B是说明由根据本发明一种实施方案的鲁棒MPEG-2解码器中节目时钟参考时间戳反映的内部系统时钟频率轨迹的图表。
【具体实施方式】
下面讨论的图1至图3A-3B及用于描述本专利文件中发明原理的各种实施方案都只是为了说明而不是要以任何方式限制本发明的范围。本领域技术人员应当理解本发明原理可以在任何适当布置的设备中实现。
图1描述了使用根据本发明一种实施方案的鲁棒MPEG-2解码器的视频系统。在该示意性实施方案中,视频系统100是在具有用于接收MPEG-2广播流的输入102的视频接收器101中实现的,其中根据已知技术,MPEG-2广播流包括节目时钟参考信号及每个当中都具有解码和显示时间戳的多路音频和视频包。
视频接收器101可以是数字电视(DTV)或高清晰度电视(HDTV)接收器,用于连接到电视的卫星、地面或电缆广播接收器单元,用于访问互联网的机顶盒,数字视频录像机,数字化视频光盘(DVD)播放器等,而且还可以包括各种实现这些设备某种组合的功能元件。视频接收器101可以包括视频显示器(未示出)和音频扬声器(也未示出),或者可以可选地包括一个或多个用于将解码的音频和视频信号发射到另一设备的输出连接103。
在该示意性实施方案中,接收器101是用于数字电视接收器或机顶盒的数字视频平台(DVP)集成电路。因此,接收器101优选地能够进行广播流多路信号分离、包括MPEG-2传输流的数字音频和视频解码及所有18种高级电视制式委员会(ATSC)数字电视格式和数字卫星系统(DSS)广播的解调。
本领域技术人员应当理解,图1没有明确地描述视频接收器系统中的每一个元件。这里只显示和描述了本发明这种系统中特有的和/或理解本发明结构与操作必须的那些部分。
接收器101包括一个或多个MPEG-2解码器,该示意性实施方案包括两个解码器104-105,一个用于连接到电视接收器,而另一个用于连接到录像机(VCR)或数字视频录像机。接收器101中至少一个,优选地全部,解码器使用音频和视频包解码的鲁棒同步,如下面进一步详细描述的,该同步容许来自广播流的节目时钟参考时间戳序列中的时基不连续。
图2更加详细地描述了根据本发明一种实施方案的鲁棒MPEG-2解码器。在解码器内部系统时钟将频率和时间值都锁定到来自广播流的节目时钟参考时间戳的现有技术解码器中,如上所述,节目时钟参考时间戳序列中的时基不连续可能会由于很多种原因,如节目(频道)改变,而发生。
由于解码器的内部“恢复”系统时钟突然有了新的时基,因此解码器管道中包含参考前面时基的解码和显示时间戳的音频和视频包可能会在节目时钟参考时间戳(因此,还有内部系统时钟时间)与解码和显示时间戳之间显示大的偏移,该解码和显示时间戳包括过去曾经是关于当前内部系统时钟时间的解码和显示时间戳。此外,依赖于所使用的缓冲量,短时间内节目时钟参考时间戳序列中的几次时基不连续可能会在解码器系统中产生多个不同的时基。
有很多种可选方案来处理由于节目时钟参考时间戳序列中的不连续而导致的时基差异。一种新的软件时钟可以引入解码器系统,其中每个不连续都可以维持新时钟信号和相关节目时钟参考时间戳序列之间的一致关联。但是,在时钟是元件实例属性而不是显示时间戳形式的包属性的软件解码器中,这种解决方案不容易实现。此外,处理多个时钟比每个要进行解码的广播流一个时钟要复杂得多。
另一种可选方案涉及只有在所有参考“旧”节目时钟参考时基的包都被解码和显示以后,才将解码器的内部系统时钟切换到新时基。但是,这需要精确确定消耗完所有具有参考“旧”时基的解码和显示时间戳的包的时间,而且还需要一种特殊机制(例如,一个特殊的包)来表示流通路内“旧的”和“新的”时间之间的界线。尽管这可能不难实现,但解码器中每个元件都需要修改以便在所有输出播送这种信息。此外,还可能存在同时需要新旧时钟值的情况,如在具有参考旧时基的显示时间戳的包提交的同时,又有具有参考新时基的解码时间戳的包上行解码。
还有一种可选方案是一旦检测到节目时钟参考不连续,就切换到一个自由运作的内部系统时钟,直到所有具有参考现有时基的解码和显示时间戳的包都在自由运作模式下以帧频显示帧的方式消耗完。就上述跟踪包消耗和时基边界而言,这种方案有相同的问题,而且至少在缓冲的显示数据被解码器接收之前会造成不连续。
在本发明中,解码器200(用于图1一个或两个解码器104-105的设计)中的内部系统时钟201将频率同步到所接收的节目时钟参考时间戳,但值不同步。即,尽管以与所接收节目时钟参考时间戳相同的速率增加,但内部系统时钟201不锁定到所接收节目时钟参考时间戳的值,因而可以显示不同的时间。
为了同步解码的音频和视频内容,从所接收广播流分离音频和视频包及节目时钟参考信号的多路分解器202在将这些包转发到音频和视频解码器203-204之前要修改所接收音频和视频包中的解码和显示时间戳。所接收音频和视频包中的解码和显示时间戳由一个至少等于节目时钟参考值与内部系统时钟时间之间差值的偏移量来代替。
图3A是说明根据本发明一种实施方案的鲁棒MPEG-2解码器中节目时钟参考信号、内部系统时钟及修改过的显示时间戳之间关系的图表。尽管为了清晰只描述了显示时间戳,但本领域技术人员应当理解相同的关系也适用于音频和视频包中所接收和修改过的解码时间戳,只是有不同的偏移值。
图3A说明了示为时间(横轴)函数的各时钟参考和时间戳的值或时间(纵轴)的变化。如图所示,内部系统时钟时间300以与编码器系统时钟时间301,如从广播流中节目时钟参考时间戳得到的,相同的速率增加,但有独立的值。因此,当时基不连续302在节目时钟参考时间戳序列301中发生时,内部系统时钟时间300继续以与节目时钟参考时间戳301相同的频率变化,但感受不到值(时间)中相同的不连续,而是持续单调增加。
所接收音频和视频包中偏移编码器系统时钟的显示时间戳303将反映发生在节目时钟参考时间戳序列301中的时基不连续302。为了避免由于显示时间戳序列303中的跳跃导致音频和视频包变得无效,在将这些包转发到音频和视频解码器管道之前,音频和视频包中的显示时间戳由经过修改的显示时间戳来代替。接收到的显示时间戳303由一个至少等于节目时钟参考值301与内部系统时钟时间300之间差值的偏移量来代替。
不管节目时钟参考值301与内部系统时钟时间300之间存在什么样的初始偏移值v,只要在节目时钟参考值301与内部系统时钟时间300之间继续保持该偏移v,该v就可以用作修改过的显示时间戳值304。当时基不连续302在节目时钟参考时间戳序列301中发生时,节目时钟参考值301与内部系统时钟时间300之间产生不同的偏移值z,顺序接收到的音频和视频包中所接收的显示时间戳303简单地由新偏移z代替。从而,修改过的显示时间戳序列304感受不到在所接收显示时间戳序列303中看到的时基不连续302,而是与内部系统时钟时间300一起持续单调增加。
应当指出,尽管图3描述了负值的偏移量v和z,但可选地也可以使用正的或零偏移值。此外,该偏移应当至少是节目时钟参考时间戳与当前系统时钟时间之间的差值;该偏移可选地可以包括对用于发送(缓冲)和处理包的随机延迟的附加调整。
回过头来参考图2,在图2示意性实施方案中解码器200的一种特定实现中,只有多路分解器202(和其中的计数器205)是以硬件实现的,而解码器200的剩余部分都是以软件实现的。多路分解器202在初始化过程中为内部系统时钟201设置初始时间值并启动它。内部系统时钟201产生27MHz的时钟信号,在本发明中,尽管该时钟的时间值在数字音频/视频流的重播过程中没有修改,但该时钟的时间和频率可以在时钟运行时修改。
当广播流中包含节目时钟参考时间戳的包在时刻t到达多路分解器202时,对计数器205,一个13.5MHz的通用输入/输出(GPIO)计数器,带节目时钟参考时间戳PCRt的当前值ct进行采样并存储,以便在某个非恒定的软件延迟dt之后允许频率控制单元206进行可靠的比较。
在比较时,表示节目时钟参考当前值应该是多少的一个投影的“当前”节目时钟参考时间戳PCR’可以由频率控制单元206通过下式从存储的节目时钟参考时间戳PCRt、存储的计数器值ct和计数器205当前值ct+dt得到:
PCR=PCRt+dt=PCRt+r*2*(ct+dt-ct),
其中r是恢复的编码器系统时钟频率与用于内部系统时钟201的27MHz基频之间的比率,对于该示意性实施方案r可以设置成1,而不会引入任何显著的误差。
频率控制单元206还可以对来自内部系统时钟201的时间STC进行采样,在对计算频率结果序列进行平均滤波并丢弃错误值以后,利用顺序采样和对应的计算节目时钟参考时间戳通过下式计算用于内部系统时钟201的频率f:
f=27MHz*(PCRn-PCRn-1)/(STCn-STCn-1)。
用于音频和视频显示的时钟信号是利用输出与接收自相位控制单元207a-207b的控制信号成比例的频率的直接数字合成器(DDS)206a-206b产生的,而且还是基于来自内部系统时钟201的时间及接收自音频和视频解码器203-204的显示时间戳产生的。频率控制单元206接收误差测量值,显示时间戳与系统时钟时间之间的差值(PTSn-STCn),作为输入并将该误差驱动至零。
图3B是说明由根据本发明一种实施方案的鲁棒MPEG-2解码器中节目时钟参考时间戳反映的内部系统时钟频率轨迹的图表。尽管本领域技术人员应当认识到解码时间戳将显示相似的行为,只是有不同的偏移值,但为了清晰还是只描述了显示时间戳。
图3B说明了示为时间(横轴)函数的各时钟参考和时间戳的值或时间(纵轴)的变化。如图所示,编码器系统时钟可以经历频率变化,如由广播流中节目时钟参考时间戳301所反映的。如果节目时钟参考时间戳序列301(及接收到的显示时间戳序列303)反映时刻t的频率变化,则尽管不会突然改变,但内部系统时钟信号300的频率将改变。通过将显示时间误差测量值驱动至零,尽管内部系统时钟时间300与节目时钟参考时间戳301之间的偏移可能改变,但频率控制回路(包括图2中的频率控制单元206)将确保内部系统时钟300的频率与在时刻t+x某一点的频率匹配。修改过的显示时间戳304的频率也将以新的偏移改变,但是会持续单调增加。
回过头来再参考图2,修改音频/视频包中解码和显示时间戳的一个缺点是该修改必须在整个接收器系统中一致,这意味着为了进行有效的比较,接收该解码和显示时间戳的另一节目原始流(PES)解码器需要计算正确的时钟值。因此,多路分解器202公布了代替计算正确时钟值所需的解码和显示时间戳的偏移。
根据本发明,对解码和显示时间戳的修改允许将对时基不连续的管理集中在提取所有解码和显示时间戳的多路分解器202和检测不连续的锁相回路中。不需要音频或视频解码器203-204或提交器来处理这种特殊情况。彼此靠近发生的几次连续的时基不连续也可以正确地处理。只要存储了代替解码和显示时间戳的偏移,平台应用编程接口(API)就可以暴露,以便允许应用或中间件访问真正的广播系统时钟值。
在本发明中,音频和视频解码器察觉不到解码和显示时间戳的修改,而只是通过比较修改过的解码和显示时间戳与当前内部系统时钟时间采样值来显示音频和视频帧。因此,由于不需要启发式算法来处理不连续,所以音频和视频解码器算法的实现很简单。即使当多路分解器遇到时基不连续时,多路分解器与音频和视频解码器输出之间解码器管道中的数据和关联的时间戳也保持有效。换句话说,解码保持快速、无缝和不中断地通过节目(频道)和其它时基改变。因为得自“旧”时基的时间戳参考持续增加的系统时钟,所以不会迫使解码器跳过或重复帧。
在本发明中,多路分解器还可以通过简单地向解码和显示时间加一附加偏移,以对音频和视频解码器透明的方式来调整沿音频和视频通路处理与缓冲中的随机延迟。视频和音频缓冲可以由一个通过控制偏移来防止下溢和上溢的中央多路分解器来改变大小并管理,从而使多路分解器适应于解码器延迟。
尽管在全功能接收器和MPEG-2解码器的情况下描述了本发明,但本领域技术人员应当理解,至少本发明的部分机制能够以包含多种形式指令的机器可用介质的形式分布,而且不管使用什么特定类型的信号承载介质,本发明都可以同等地用于真正实现该分布,指出这点很重要。机器可用介质的实例包括:永久性硬编码类型介质,如只读存储器(ROM)或电可擦除只读存储器(EEPROM),可记录类型介质,如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字化视频光盘(DVD),及发射类型介质,如数字和模拟通信链路。
尽管已经详细地对本发明进行了描述,但本领域技术人员应当理解,在不背离本发明最广泛形式的主旨和范围的情况下,可以对在此所公开的发明进行各种改变、替换、变化、增强、细微差别、分级、更小形式、改造、修正、改进和复制。