用于转换数据流的方法和设备的制作方法

文档序号:7595979阅读:169来源:国知局
专利名称:用于转换数据流的方法和设备的制作方法
技术领域
本发明涉及用于将复用的数据流从一种复用格式转换成另一种复用格式(复用转换)的方法和装置。本发明找到了特定的应用,例如将视频和音频流从一个节目流格式复用转换成一个符合MPEG-2规范(ITU-T建议H.222.0|ISO/IEC 13818-1)的传输流格式。
上面提到的MPEG-2标准指定了用于多媒体复用、同步和时基恢复的一般方法。该规范提供了一个基于分组的多媒体复用,其中每一种基本比特流(视频、音频、其它数据)被分割成一个分组化的基本流(PES),之后各自的分组被复用成两种不同流类型中的任一种。节目流(PS)是可变长PES分组的复用,它被设计用于无差错的环境,例如在盘上录制。传输流(TS)包括188字节的固定长度的分组,具有复用多个节目的功能和复用一个节目内不同PES分组的功能,并且它被设计用于易出错的环境,例如广播。多媒体同步和时基恢复通过使用用于系统时钟和表达/解码的时间戳来获得。
因为每种流类型在不同环境下都有优点和缺点,所以MPEG-2规范认识到最好在两种格式之间进行转换。然而,由于这两种格式之间的差别,特别是定义诸如缓冲区大小、时延、数据速率等等约束条件的“目标解码器”模型之间的差别,不同基本流不能在一种格式下被安排成与在另一种格式下一样。所以当从一种流类型转换到另一种流类型时,需要解复用和重新复用该基本流数据。这也是TS广播中通常缺乏将一种结构置于PS数据内用于随机接入、编辑等的系统信息的原因。
EP-A-0 833 514(索尼)建议了一个记录器/播放器装置和表达(显示装置)的系统。该播放器,例如,从一个盘上读取PS格式数据并将它转换成TS格式来显示。另一方面,它的实施方案中出现的缓冲区大小看来并不能说明不同的约束条件,即要求重新调度不同的基本流以便从一个有效的PS格式转换成一个有效的TS格式。事实上,可以看到TS规范本身提出的约束条件就需要一个缓冲器用于至少一秒钟的视频信息,以及需要与从擦痕(scratch)构成流所需的一样的处理效果。
本发明的目的是当在例如MPEG节目流和传输流的格式之间转换数据流时,减少计算负荷和/或所需的存储空间。应理解本发明可应用于MPEG-2兼容流的严格的限制之外,因为当在任何两个格式之间转换复用的流时通常会产生类似的问题。
本发明人已认识到尽管从一种格式转换成另一种格式时重新调度是不可避免的,但是源格式中固有的约束条件能被利用以便减少缓冲的大小,和/或转换中所需的处理量。
本发明提供了一种将具有节目流(PS)格式的输入数据流转换成具有传输流(TS)格式的输出数据流的方法,该方法包括(a)从所述的输入数据流中读取连续的数据块,该输入数据流包括按照一个PS解码器模型来形成和复用的第一和第二基本数据流的数据;(b)在第一和第二队列结构中分别累积第一和第二基本流的数据;(c)建立一个TS目标解码器模型,该模型包括假设的第一和第二缓冲器分别用于第一和第二基本流;(d)参考所述的目标解码器模型,生成一连串传输分组以形成所述的输出数据流,用于以所述的TS格式传送该第一和第二数据流;以及(e)更新位于所述TS目标解码器内的假设的第一缓冲器和第二缓冲器的状态以响应每个生成的传输分组和预定的所述解码器模型的属性;其中,每个传输分组包括来自第一队列或第二队列,或者不属于这两个队列的数据,这要取决于输入数据流内所述基本流的调度和所述TS目标解码器模型内第一和第二缓冲器的状态,其中,该方法包括当在目标解码器模型内缺少空位给所述的第二基本流的数据的情况下,所述输入数据流的时钟参考超过所述输出数据流的时钟参考一个预定的等待门限值时,禁止从该流中读取另外的数据块。
本发明还提供一种方法,其中在PS格式下,至少所述第一和第二基本流数据已被编码、分割成带分组头的基本流分组,且分组被整体交织,而在TS格式下,这样的基本流分组被进一步细分成多个更小的传输分组,且第一和第二基本流的传输分组彼此交织并和携带不是来自这两个流的数据的传输分组相交织。
在这里所描述的本发明的实施方案中,在输入和输出流中同样地将每个基本流细分成基本流分组。
在本发明的实施方案中,TS格式的数据流可以有恒定的数据速率,所述的传输分组有统一大小和周期。
在本发明的实施方案中,输入流能够以块为单位来读取,每个块包括至少一个完整基本流分组,且只能包含来自一个基本流的分组。
在本发明的实施方案中,每个块可以包含一个PS传送时间码,一个TS传输时间码最初与PS传送时间码同步并提前于每一传输分组的生成。
在本发明的一个实施方案中,PS和TS格式定义的约束条件为(i)在具有一个公共表达时间的第一和第二基本流内各个表达单元的传送时间之间的最大时间差(“偏差”);以及以下至少其中之一(ii)用于在传送和解码之间缓冲每个基本流数据的容量;以及(iii)按一个存取单元的等级从传输流传送每个基本流数据到缓冲器用于解码的速率。
在一个特定的实施方案中,对第二基本流来说,在TS格式下所述缓冲器的约束条件(ii)比在PS格式下所述缓冲器的约束条件(ii)要严格,所述的等待门限值足够容纳一些额外数据,该数据对应于PS目标解码器中缓冲器内所能容纳的数据和TS目标解码器中所能容纳的数据之差。
在另一个实施方案中,对第二基本流来说,在TS格式下所述的最小速率约束条件(iii)比在PS格式下所述的最小速率约束条件(iii)要严格,所述的等待门限值足够允许额外的时间用于传输第二基本流内的一个存取单元,该额外的时间对应于用于传送PS格式约束条件内的这样一个存取单元的最短可能时间和用于传送TS格式约束条件内的相同存取单元的最长可能时间之差。
PS和TS格式可以允许在所述的第二基本流内实现不同的编码参数以便改变被传送数据的数量和每个存取单元的表达周期或两者之一,而所述的等待门限值依照允许的编码参数中所需的最大额外时间是固定的。
在这里所描述的本发明的特定实施方案中,等待门限值可以小于节目流中允许偏差的五分之一。
在一个特定的实施方案中,存取单元包括一个压缩了的音频帧。
本发明还提供一种方法,该方法用于重新复用第一和第二基本流数据以便生成一个符合第二预定的目标解码器模型的传输分组的连续流,所述的第一和第二流的数据先前已经依照一个不同的、第一预定的目标解码器模型被复用,其中假设所述的读取被判别超前于重新复用第二基本流的进程足够远以补偿第一和第二目标解码器模型之间的差别,则所述的数据按要求从一个输入信道中被读取并且该数据的读取通过参考重新复用第二基本流的进程被限制,而与第二目标解码器模型中给第一个流的数据的空位无关。
在本发明的一个实施方案中,第一和第二目标解码器模型中的每一个都为每一基本流定义了一个有限大小的相应缓冲器用于要解码的数据,其中至少对第二基本流来说,TS目标解码器内的缓冲器小于PS目标解码器内的缓冲器。
在本发明的一个实施方案中,第一基本流的平均数据速率基本上大于第二基本流的平均数据速率。
在此处描述的特定的实施方案中,第一基本流的数据包括已编码的视频图像而第二基本流的数据包括已编码的音频帧。
本发明还提供将一个具有节目流(PS)格式的输入数据流转换成一个具有传输流(TS)格式的输出数据流的方法,其中TS格式符合MPEG-2传输流规范,而所述的PS格式符合MPEG-2节目流规范,两者都在ITU-T建议H.222.0和150/IEC13818-1中被定义。
本发明提供一种方法,该方法再生一个录制的音视频节目,其中一个PS格式的数据流从一个数据信道中被读取,并通过上面描述的方法转换成TS格式,经另一个信道送入一个TS兼容的解码器。
在本发明的一个实施方案中,该信道包括在一个录制载体上所述的输入数据流的录制。
本发明还提供设备,该设备包括特别适合于实现上述的根据本发明的任一种方法的装置。这种设备例如可以形成一个独立的解码器设备(机顶盒),一个表达设备(例如一台电视机)或一个录制和再生设备(数字VCR)中的一部分。
除上面标识出的那些特征和优点外,本发明的其它特征和优点以及本发明的许多变体和修改对有技术的读者而言通过思考下面特定实施方案的描述将会很清楚。
附图
简述现在仅通过例子并参考附图来描述本发明的实施方案,其中图-1举例说明了一个应用本发明实施方案的数字视频娱乐系统的例子;图-2举例说明了传输流(TS)格式中的数据格式;图-3举例说明了节目流格式中的数据格式;图-4示出按照本发明的一个实施方案,将一个PS格式信号转换成TS格式的关键数据路径和功能块;图-5举例说明了一个不使用输入流约束条件知识的假设的调度进程;图-6举例说明了按照本发明的一个实施方案的一种调度方法。
实施方案详述示例系统图-1举例说明了一个家用数字视频娱乐系统的例子,该系统包括一个数字电视调谐器100、一个“机顶盒”102用于解码数字视频信号并控制接入到付费信道等等、一个数字视频回放和录制设备104,例如一个已知的光盘视频系统或未来的DVR录像机、以及存储媒体本身(盘106)。在此例中,一台传统的模拟电视机108用于该配置中以显示来自卫星、有线或地面广播的图像,或来自盘106上记录的图像。在数字调谐器100和机顶盒102之间,MPEG兼容的传输流(TS)格式信号携带多个数字电视频道,其中一些频道可被加扰以便用特定条件接入(付费电视)的设备来解码。标准的数字广播格式,例如DVB、ATSC和ARIB是MPEG-2传输流格式的特定应用。
机顶盒102也从传输流TS内解码一个想要的节目,以提供模拟的音视频信号给电视机108。这些模拟信号当然能被一台传统的录像机(VCR)录制。另一方面,为了获得最佳质量和功能,直接的数字到数字录像机例如已知的光盘视频系统或DVR录像机104是优选的。这要经一个数字接口例如IEEE1394(“火线”)与机顶盒相连。它携带“部分TS”,其中选定的节目与更大的TS复用相分离,且仍以TS格式来表达。另一方面,为了利用增强的目录结构和随机接入的特征,播放器/录制器104被安排将TS格式转换成PS格式以便录制在盘106上,并将录制在盘106上的PS格式流转换成部分的TS格式以便经数字接口和机顶盒102在电视机108上进行回放。
本说明主要涉及从节目流(PS)格式转换成传输流(TS)格式的过程,而另一方向上的转换是当前共同未决的另一申请的主题,该申请的标题为“Method and Apparatus for Converting DataStreams(用于转换数据流的方法和装置)”,且其要求于1999年12月30日提交的英国第9930788.6号专利申请的优先权(PHB34446)。在详细研究应用于这两种格式之间有效转换的技术之前,将参考图-2和图-3详细描述这两种格式。
传输流(TS)格式图-2举例说明了MPEG-2传输流(TS)格式的关键特征和结构。在图中,传输流TS是一个以T-PKT为标记的传输分组的连续流,每一T-PKT包括188字节的数据,并具有示于图顶部的格式。MPEG-2传输流的全部细节,包括语法、语义和适用的约束条件可以在ITU-T建议H.262|ISO/IEC13818-12中找到。关于MPEG-2系统的信息可在网上http//www.mpeg.org处获得。简要来说,每个传输分组包括一个头标部分和一个净荷部分,该净荷在图中用字节DAT-0到DAT-N来指示。头标起始于一个特殊的同步字节SYNC,后面跟着各种标志和控制字段,包括一个传输错误指示器TEI、一个净荷单元起始指示器USI、一个传输优先级指示器TPI、一个分组标识PID、传输加扰控制字段TSC、适配字段控制AFC和连续计数器CC。根据字段AFC的内容,可以存在一个适配字段AF,占据否则将分配给净荷数据的一些空间。
在DVB数字广播格式的例子中,TS流的数据速率大约为40(Mbits/s),而一个音视频节目的典型的数据速率要小于10Mbits/s。因此,如示于图-2中的TS,各个节目PROG1、PROG3可被多路复用进单个传输流。每个传输分组的PID字段指示该分组涉及的一个基本流,这些以传输分组为单位的分组与其它多个流交织。一个节目可以包括例如一个视频流(在例中PID=‘005’),一个音频流(PID=‘006’)和图文电视数据流(PID=‘007’)。PID值和节目间的对应关系以及与各个PID一起被携带的数据类型以节目特定信息(PSI)表的形式来保存。在传输流内一个节目联系表PAT被周期性地携带在一个PID=0的特定的传输分组流内。PAT进而又向PROG1,PROG3等等指示,哪个流携带一个节目映射表PMT,该表列举了涉及单个节目的全部不同的PID值,并描述了每个节目(视频、音频、可选的语言音频等等)的内容。这些表和用于控制目的的其它数据在此称为系统信息。
为了从传输流中再生或录制一个给定的节目(PROG1),具有那个PID的连续的传输分组的净荷DAT-0到DAT-N连接成一个流,并且这个流携带分组化的基本流分组PES-PKT,它们在MPEG-2规范中进一步被定义。每个PES分组起始于一个特殊的分组起始码前缀PSCP。在PES分组头中,接下来是一个流标识符SID用来标识基本流的类型(例如视频、音频、填充流或专有流)。PES分组没有一个固定长度,除非在一个特定的应用中指定,一个PES分组长度字段LEN指定在PES分组中的字节数。然后接下来是不同的控制和标志字段C&F,包括例如一个数据对准指示器DAI和一个头标长度字段HLEN。接着根据C&F字段内相关标志的值,在头标HDAT内存在各种可选择的字段,例如可存在一个表达时间戳PTS用于通过参考一个系统时钟来指定在当前PES分组内开始的一个“表达单元”(图像、音频帧等等)何时到期应被呈现。在某种情况下,表达单元以一种不同于它们表达次序的顺序来解码,在这种情况下,解码时间戳DTS也应存在。
具有相同SID的连续PES分组的净荷PY-O到PY-N形成一个示意性地示于图-2中ES的数据的连续基本流。在一个视频基本流ES-VIDEO的情况下,存在剪辑的多个图像序列SEQ,每个SEQ都在它的起始包括一个序列头SEQH。解码器的不同参数包括量化矩阵、缓冲器大小等都在序列头中指定。因此,视频流的正确的回放只能通过在序列头的位置处启动解码器来获得。每个序列的数据内是视频数据的一个或多个“存取单元”,每一单元对应一幅图像(取决于应用可以是场或帧)。每幅图像的前面是一个图像起始码PSC。一组图像GOP的前面是一个组起始码GSC,后面都跟着一个特定的序列头SEQH。
众所周知,MPEG-2和其它现代数字格式的图像都通过彼此参考来被编码以便减少时间冗余。运动补偿从一个相邻图像或图像组的已解码的图像内容来提供一个图像内容的估计。所以一组图像GOP可包括一个帧内编码“I”帧,它不参考其它图像的编码;“P”(预测)编码图像,它利用基于前面一个I帧的运动矢量来编码;和双向预测“B”图像,它通过从序列中其前和其后的I和/或P帧进行预测编码。一幅B图像所需的数据量少于一幅P图像所需的数据量,后者进而又少于一幅I图像所需的数据量。另一方面,因为P和B图像只通过参考其它图像来编码,所以只有I图像提供一个给定序列的起动回放实际进入点。还有,应注意到GOP数据,在对应的B图像编码之前对I和P图像进行编码,解码之后重新排序以便获得正确的表达顺序。因此,B和P图像就是表达时间戳PTS和解码时间戳DTS不同的例子。
最后,在图-2中,示出一个音频基本流ES-AUDIO的表达。它包括简化的带有帧起始码的数据FRM帧。允许有不同的音频格式,在抽样速率(32kHz,48kHz等等)还有数据速率(例如每秒32kbit,或可变值)方面改变。视音频流的这些或其它属性被编码进节目特定信息PSI和PES分组头中。
具有相同表达时间戳PTS的音频帧和视频图像是那些将在解码器的输出中被同时给出的帧和图像。另一方面,对来自不同基本流的数据分组的调度有更大的自由度,这样具有相同PTS值的音频和视频存取单元能够在传输流TS中最多相隔一秒到达。
节目流(PS)格式图-3举例说明了指定给MPEG信号的另一主要格式类型,节目流(PS)。在图的顶部示出,PS传送与图-2举例说明的传输流相同的基本流ES-视频和ES-音频,并且还是以PES分组PES-PKT的格式。节目流不是正好如TS地分隔和分组化,并且通常只携带单个表达所需的流。整个PES分组PES-PKT被打包在一个或多个组中形成节目流包PACK,该节目流包带有一个基本头,包括一个特殊的包起始码PSC、一个系统时钟参考时间戳SCR和一个节目_复用_速率指示PMR,该速率是节目流PS打算传向一个解码器时的比特率。一个典型的节目_复用_速率,例如在已知的光盘视频系统规范中,是10.08Mbits/s。可选地,一个节目流包包括填充的STF和一个系统头标SYSH。正如图-3顶部举例说明的,在任何视频包V或音频流包A1、A2等等被发送之前,节目流起始于一个大的系统头标,该头标指定编码和解码器的各个参数、序列头目录和它们的位置,例如在携带节目流的一张盘上或其它存储媒体,以便解码器被正常设置来解码一个特定节目。由于没有带PID码的传输分组结构,所以在节目流的PES分组中的流标识符SID来指定携带在给定PES分组内的基本流类型,并且如有必要,还指定携带的是此类型的几个流中的哪一个流(音频1、音频2等等),以便找到正确的那一个流并传到解码器。在系统头标SYSH中的系统信息提供进一步的描述。
如已知的光盘视频系统的应用指定节目流中的每个包只携带一个节目流的PES分组,并且实际上典型地是每个包携带单个PES分组。在一张光盘或类似的录制媒体上进行存储的情况下,每个PES包一般对应一个检索单元或盘文件结构的“扇区”。通常,MPEG-2标准允许不同类型和数量的PES分组混合在各个包内,且包的大小允许在其它应用中改变。
系统目标解码器为了确保一个真正解码器的缓冲和其它方面能够在不中断被传送的音视频节目的情况下来解码每种类型的流,MPEG-2标准指定了一个传输流“系统目标解码器”(T-STD)模型和一个节目流系统目标解码器(P-STD)模型。广义地讲,每个系统目标解码器是一个假定的真正解码器的模型,该解码器包含用于解复用TS或PS格式的不同基本流的装置、包含用于音频、视频和系统控制类型数据中各种数据的解码器、以及包含输入流和解码器之间的缓冲器以便在从数据信道到达的时间与解码和表达的实际时间之间保存每个能量流的数据。
T-STD和P-STD在一般形式上是类似的,正如在MPEG-2规范中更充分解释的那样。然而,T-STD和P-STD之间的差别意味着,大体上,一个传输流不经过至少在PES分组级上的重新调度,就不能被直接映射成一个节目流,同样从PS到TS格式的转换也是这样。举个例子,TS格式的音频解码器内的缓冲器比P-STD内的缓冲器要小。另一个例子是,在T-STD内的每个主缓冲器之前是一个传输缓冲器,其作用是平滑传输流自身中有些“突发的”数据。而一个给定流的数据可能以40Mbits/s峰值速率的几个传输分组突发到达,当考虑到整个传输流的复用时,这样一个流的平均速率低得很。假定有数据要传进主缓冲器时,给传输缓冲器定义一个“漏出速率”以便将输入的数据调节到2Mbits/s的速率。
从节目流到传输流的转换图-4举例说明了用于将已知的光盘视频系统回放的节目流复用转换成图-1所举应用中的数字电视解码器102所需的DVB标准传输流的基本方法。已知的光盘视频系统节目流被分成适合2048字节扇区(PS包)的PES分组。每一扇区起始于一个包头标,携带该包的SCR。每一包携带单种数据类型的一个PES分组和可选地一个填充分组。(一个已知的携带MPEG-2音频的光盘视频系统流是一个例外——基本和扩展分组可在一个包内交织。)分析已知的光盘视频系统PES分组非常简单。已知的光盘视频系统PES分组结构可在整个复用转换过程中保持,因为已知的光盘视频系统对PES分组结构的约束条件比DVB加在要生成的传输流上的约束条件(类似ATSC等等)严得多。另—方面,应理解此处提出的技术一般能够经合适的适配被应用于MPEG-2兼容的流,以及以其它具有相似属性的格式携带的数据的分组化基本流。
总之,输入的已知光盘视频系统流PS(来自图-1例子中的盘106)在402处被分析并被分成每种数据类型流-标识符SID(视频流404、音频流406)的PES分组的并行流。包括在已知的光盘视频系统复用中的图形流在此不专门考虑,因为它们或者被变换码型成MPEG视频或者被“深印于”主要的同一视频流中的图像数据中,以便在解码的图像中显示。然而,原则上,图形的更多的流和/或其它的信息类型也可存在,并以与所举例的音频和视频流类似的方式被处理。每一个并行的A/V PES流都分别进入一个队列(缓冲器)408、410。在一个调度器412的控制下,排队的数据流接着在414被分成188字节的传输分组(T-PKT)并交织形成传输流TS,之后TS被调度并发送到播放器输出接口。
尽管复用转换器的关键功能组成部分和过程以分离的块被示出和描述,但是应理解此处描述的各个缓冲器和过程可在一个通用处理器和一个共享存储器中实现,也可用于播放器104或其它装置的其它目的。同样地,按照正常的设计考虑,特定的数字信号处理器和/或专用的硬件可在适当的位置使用。
现在将详细描述调度器412。一个初始的想法是保持与在节目流中使用的相同的数据调度,该调度被假定为符合PS要求。在这种情况下,基本数据在传输流中被传输的时间将与在节目流中被传输的时间尽可能相同。这样做的优点是减少了对完全重新复用的需要,在该过程中MPEG STD(系统目标解码器)模型必须始终保持,且必须提供大缓冲器。不幸地是,在MPEG-2中至少有两个约束条件使得从PS到TS不可能仅应用同样的调度,而同时保持符合TS格式·TS音频缓冲器大小为3584字节。在已知的光盘视频系统节目流中,它是4096字节,这意味着用于音频数据的机顶解码器缓冲器可能会不时地溢出,而音频抽样会丢失。
·TS音频STD模型具有由传输缓冲器的“漏出速率”定义的最大瞬时速率2Mbits/s。这可以超出512字节。已知的光盘视频系统PS允许一个10.08Mbits/s(由“节目_复用_速率”定义)的最大音频比特率持续4098字节(两个分组)的时长。因此,已知的光盘视频系统复用可能以比MPEG-2传输流(TS)所能传送的更高的速率传送更长的数据脉冲串。
这两个限制条件提出必须分离并重新复用基本流,并按照加在输出流上的不同的约束条件重新调度数据。因此,再次参考图-4,调度器412保持指定用于TS格式的每个基本流的系统目标解码器(T-STD)模型416和418。应理解这些模型实际上并不存储或解码流数据。然而,通过建立不同的计数器和列表并按照在MPEG-2系统标准中指定的行为不时地更新它们,模型可跟踪数据的假设的运动,特别是确保在一个兼容的真正解码器中的流缓冲器不会上溢出或下溢出,使得数据不会丢失并总是能及时且以正确的顺序获得,以便解码并表达给用户。为此,一个TS系统时钟是重新复用功能的关键时基,它同步于持续生成的传输流。输入的节目流携带它自己的系统时钟参考(SCR),两者都以27MHz时钟为单位来表达。每一TS分组周期就生成TS分组。原则上它们能在刚好需要时被生成,或可送入一个短FIFO缓冲器中以放松对分组的实际调度和生成的定时约束条件。用于下面描述目的的系统时钟的当前值就是当前TS分组被生成的时间,与任一后续的缓冲延迟无关。
为了给基本流维持STD模型416、418,调度器也知道每一存取单元的大小,以及视频的一些参数(帧速率、重复第一字段标志、图像类型等等)以便为没有明确在PES分组头中编码的存取单元计算PTS/DTS。应注意已知的光盘视频系统,例如只需要在每一个GOP的第一个I图像时对PES头标内的PTS/DTS进行明确的编码。为每一个图像编码PTS/DTS是非强迫性的并且也不普遍。同样,具有音频流参数(抽样速率、帧大小等等)是有利的。
所以,尽管PES分组的内容没被打乱(除了例如将SID/PID重新映射成一个方便的节目结构),仍需要在向下到图像头标/扩展/帧头标的级别上分析全部活动流内的基本数据。应注意这些能被包含在PES分组内的任意字节位置处,所以起始码甚至可以在PES分组之间被分开。音频可以是可变比特率。同样地,尽管视频流中的不同的起始码在MPEG-兼容的比特流中是唯一的,但是音频同步码可在较小概率下在音频净荷数据内模拟。所以分析音频流需要一个状态机方法来确认几个帧上的同步,而不是简单地扫描一个唯一的比特组合。
调度器412方法1现在描述第一个示例过程(“方法1”)用于确定何时发送TS分组,以及来自哪一个基本流。这个过程能应用在节目流从例如盘上以比实时更快地速度被读取时。它也能应用在PS必须被实时处理时,例如当它经一个接口被传送时,但是在这种情况下重新复用器插进多达1秒的时延。方法1优于方法2(图-6,见下)之处是简单,但却使用更多的存储器用于中间队列并且如果PS被实时传送则需要更多的时延。
图-5以一个流程图的形式示出了调度器的过程。这个流程图的一个主循环为每个TS分组周期至少执行一次,并且实际上该主循环或在它里面的子过程在每个TS周期可以被重复执行几次。该转换过程起始于步骤500并在其后的步骤中继续。
502从节目流中读取一个扇区(PS包)。它被解析以识别SID和PES长度。如果SID指示不要它,该数据即被丢弃。应注意到通常MPEG-2允许每个包内有多个PES分组,甚至允许每个包内有多个SID。该(或每个)PES分组被完整地发送到合适的队列(图-4中的408、410)。连接符B引导至步骤502,用于无论何时从PS读取一个新的扇区。
504自然,当不再有PS包被读取时,该过程结束(这可通过盘上的目录结构提前被指示出来)。
506从流,即PES分组中的头标和可选的系统字段,可确定系统信息(已知的光盘视频系统中的SI,MPEG-2中的术语PSI)是否需要插进TS以便正确地控制解码器。如果这样,在508处,SI数据被加进一个SI队列中(未在图-4中示出)。在510处,按照STD的当前状态,检查在假设的解码器的一个SI缓冲器中是否有空间给SI数据。如果是,则在512处生成一个传输分组。如果不是,则SI数据仍在队列中,过程继续。
520现在进入主循环,它被不断执行以生成传输分组,第一队列被检查以确定在相关的队列中有数据ES在等待。在本例中,尽管所有流按次序被检查,但优选地先检查音频流。
522假定有等待被发送的第一个ES数据,系统目标解码器被检查以查看是否这个流的缓冲器能再接收一个传输分组。如果是,在524处,一个传输分组被加进输出流。连接符A再引导至主循环的开始。
526如果第一队列中没有分组被生成(因为队列为空,或相关的STD缓冲器416/418是满的),则类似于步骤502-524的步骤对每个基本流重复执行,检查各自的队列中的数据,检查STD模型中相应缓冲器的满度,如果可能,就发送一个传输分组。一旦一个分组已被生成,控制经连接符A返回到主循环的顶部。最后一个流的步骤示于528-532。
534如果没有流能够调度一个传输分组,就要检查看以查是否任一队列都是空的。如果有一个空流,则连接B就跟着从输入流中取出一个新的扇区的数据。
536如果没有队列为空,则结论是STD的所有的缓冲区都是满的,并且通过把一个填充(空)分组写进传输流来影响“等待”动作。应记住TS格式包括固定速率的分组,是否有给它们的数据以及填充分组出现以“填充”想要的数据都是非常有规律的。因为这个目的,填充分组在MPEG-2的规范内被定义,并且一旦被解码器接收到就被丢弃。出于同样的原因,填充分组对解码器模型STD内的缓冲器的满度没有影响。接着控制传向步骤520,过程重复,必要时等待和填充直到其中一个缓冲器有空间给一个新的传输分组。
注意在图-5所示的方案中,第一个流(在实施方案中为音频)接收到一种优先级。那就是说,只要第一队列有数据并且STD内的第一个缓冲器有空间,那么从那个流中来的传输分组就优于其它流中的传输分组被发送。在本例中,发明人已选择实施这样的一个优先级,因为流的数量有限且音频流中的调度肯定有最少的自由度。精确的算法不重要,但是,可设想有其他的选项以适合不同的环境。例如,要把具有类似特征的不同流中的数据进行交织最大化,只需将连接改变成从步骤524引导至步骤526,而不是返回到A,以此类推直到最后一个流。那样,只有当全部流都试过了,且其中可能发送了一个分组,循环才到步骤520,再从第一个流开始试。同样的考虑应用于下面被描述的方法2。
方法1分析以上的调度算法在无论何时其中一个基本流队列为空时,都去取出另一个PS分组。这意味着TS调度器412总是有对基本数据的不受限的选择以便找到一个符合TS复用约束条件的分组。这样PS分组的调度对TS复用的调度没有影响。
由于输入流的调度和输出流的调度之间没有依赖性,并且我们知道一个TS复用器总能找到一个有效的调度,所以很明显这个算法没有死锁条件。然而,这种简单性的代价就是需要缓冲,在PS不能比实时更快速地被读取时,会有大约1秒的码型转换的时延。队列占有率和缓冲时延的“最坏的情况”是在基本流之间有最大偏差的时候。
考虑例如一个音频流和一个视频流。假定PS(就在解码时间TDS之前)发送某一个音频帧N很晚,而同一个流的前一个音频帧(N-1)早就被发送了。TS调度器将在N-1帧到达码型转换器后的某个时间将它插进传输流TS。之后就不再调度任何分组,不管是音频还是视频,直到音频帧N被从PS中读取出来。
然而,在其间的所有视频帧都将被取出,并且它们必须在复用转换器中排队。
最坏情况下的队列长度和时延可通过使用MPEG的“一秒规则”来获得。这个规则讲的是任一存取单元(例如帧N-1)的最大解码时延为1秒。这样1秒就是在帧N-1和帧N的传输之间的最大可能时间(可以获得极限上更严格的约束)。所以1秒是延迟的上限,可被用于计算队列长度。这样需要大约230千字节的缓冲器用于1秒的视频流,实际上接近300千字节。
调度器412方法2图-6示出一个修改过的过程用于调度传输流,而只需较小的缓冲器。步骤600-634的过程与图-5(方法1)中的步骤500-534一样。然而,修改过的方法有效地使用了输入流是一个带有合法PS复用调度的节目流的知识以便在两个调度间引进一种依赖性从而减少时延。
新步骤在638处,将系统时钟参考(SCR)值(包含在最近取出的PS包中)与系统时钟TSC相比较。记住TSC指示传输流生成的进程,而SCR指示取出输入流PS的进程。然在方法1中,只要有任一个队列被发现是空的,新数据就被从输入流中取出,而在附加的638/640步骤中,允许只要SCR超前TSC小于一个预定的门限值MIN时就取出新数据。换句话说,即使有一个空队列缓冲器,只要输入流已被超过一个足够的量先读取,新数据就不被取出。注意TSC总是居先,甚至在填充分组生成时,而SCR只在新数据被从输入流PS(盘)中取出时才居先。如果在步骤638中的时间差MIN能被设置成基本上小于MPEG-2允许的1秒最大时延,那么我们能立刻发现队列所需的缓冲将成比例地减小。它有效地意味着在上面所举的例子中,在我们等待下一个音频帧时,能发送多个视频分组。
在将一个已知的光盘视频系统兼容的MPEG-2节目流转换成一个传输流的例子中,重新调度分组有两个原因,正如上面已经提到的。一个是在一个传输流中对音频传输缓冲器的漏出速率的2Mbits/s的限制。另一个是传输流和节目流(3584对4096字节)间主音频缓冲器大小的差别。如果我们检查这两种情况,我们就会发现假定输入是一个符合条件的节目流,TS分组调度器需要多少自由度以便找到一个符合条件的调度。
假如音频是有一个24ms帧时长的48kHz MPEG。只要知道帧大小,有技术的读者就容易发现怎样归纳相对其它假设的结论,例如不同的抽样速率、或AC3编码。已知的光盘视频系统允许MPEG音频比特率位于32kbits/s和448kbits/s之间。在32kbits/s上一存取单元大小(一个压缩帧的大小)是0.024×32000/8=96字节。在448kbits/s上一存取单元大小(一个压缩帧的大小)是0.024×448000/8=1344字节。
已知的光盘视频系统的节目_复用_速率(在输入流中单个帧被传送的速率)是10.08Mbits/s。TS音频TB缓冲器漏出速率是2 Mbits/s(Rleak)。在最坏的情况下它表达了可由TS复用传输的最大音频帧速率。分别考虑这两种情况中的每种情况2 Mbits/s TB限制考虑在最近可能的时间-刚好在解码时间之前-DTSn由PS发送的最大尺寸Bn(1344字节)的音频帧N。帧N的第一个字节将在PS内被传送,当Tps<=DTSn-Bn/(Rmux)在最坏的情况下,需至少△Tts=(Bn/Rleak)来发送传输流内的这个帧。所以,帧的第一字节必须在以下时刻被发送Tts=DTSn-△Tts节目流必须要在复用转换器中被缓冲至少(Tts-Tps)秒以便给予调度器解决这个问题所需的自由度。
考虑上面提到的已知的光盘视频系统值,Bn/Rleak=1344/(2×106/8)=5.376msBn/Rmux=1344/(10.08×106/8)=1.067ms因此,所需的根据这个约束条件给出调度自由度的最小复用转换时延是4.31ms。
缓冲器尺寸差别考虑一个带有一个分组调度的节目流,刚好在某个时间填满PS音频缓冲器。因为TS音频缓冲器较小,所以不可能立刻发送这些音频帧中的一些。它们必须要被延迟直到TS音频缓冲器被清空到一定程度以允许它们被调度。要保持A/V同步以及避免在其它流中的下溢出,全部流必须要延迟相同的时间。
缓冲器大小之差是4096-3584字节=512字节。这代表数据速率最低时的最坏的情况(最长的时间)。当数据速率是32Kbits/s时,帧大小为96字节。512/96=5.33帧,约等于六帧,因为按照MPEG模型在帧的解码时间,整个帧必须存在于缓冲器中。六个帧代表144ms。
这样要给予TS调度器克服这个约束条件的自由度,我们需加入一个六音频帧的时延(144ms),这也超过漏出速率限制所建议的约束条件4.31ms。因此,大致说来,方法2允许从PS到TS格式用单独考虑TS格式的约束条件所希望时延的大约六分之一来重新调度PES分组。如果输入流可以以小于实时的速度被读取到复用转换器中,则144ms的时延可被减少一些。
注意在这种情况下,给予音频流(流程图中的第一个流,但在介绍和权利要求中,对应为“第二个流”)的优先级对确保当需要满足标识的约束条件时使用144ms的时延是重要的。另一方面,不同的算法可用于提供所需的优先级,而当其它流本身的进程变得更重要时,允许它们获得优先。一个方案用于给其STD缓冲器有最低的百分比满度的流分配优先级,它是同样有效的。一个不太严格的优先级方案可与等待门限值的上定标一起被应用以提供可测量的额外的自由度。
权利要求
1.一种将具有节目流(PS)格式的输入数据流转换成具有传输流(TS)格式的输出数据流的方法,该方法包括(a)从所述的输入数据流中读取连续的数据块,该输入数据流包括按照一个PS解码器模型来形成和复用的至少第一和第二基本数据流的数据;(b)在第一和第二队列结构中分别累积第一和第二基本流的数据;(c)建立一个TS目标解码器模型,该模型包括假设的第一和第二缓冲器分别用于第一和第二基本流;(d)参考所述的目标解码器模型,生成一连串传输分组以形成所述的输出数据流,用于以所述的TS格式传送该第一和第二数据流;以及(e)更新位于所述TS目标解码器内假设的第一缓冲器和第二缓冲器的状态以响应每个生成的传输分组和预定的所述解码器模型的属性;其中,每个传输分组包括来自第一队列或第二队列,或者不属于两个队列的数据,这要取决于输入数据流内所述基本流的调度和所述TS目标解码器模型内第一和第二缓冲器的状态,其中,该方法包括当目标解码器模型内缺少空位给所述的第二基本流的数据的情况下,所述输入数据流的时钟参考超过所述输出数据流的时钟参考一个预定的等待门限值时,禁止从该流中读取另外的数据块。
2.如权利要求1中要求的方法,其中在PS格式下,至少所述第一和第二基本流数据已被编码、分割成带分组头的基本流分组,且分组被整体交织,而在TS格式下,这样的基本流分组被进一步细分成多个更小的传输分组,且第一和第二基本流的传输分组彼此交织并和携带不是来自这两个流的数据的传输分组相交织。
3.如权利要求2中要求的方法,其中在输入和输出流中同样地将每个基本流细分成基本流分组。
4.如权利要求1、2或3中要求的方法,其中TS格式的数据流有恒定的数据速率或分段固定的数据速率,所述的传输分组有统一大小和周期。
5.如上述权利要求中的任一个要求的方法,其中输入流以块为单位来读取,每个块包括至少一个完整的基本流分组,和只能包含来自一个基本流的分组。
6.如上述权利要求中的任一个要求的方法,其中每个块包含一个PS传送时间码,并且其中一个TS传输时间码最初与PS传送时间码同步并提前于每一传输分组的生成。
7.如上述权利要求中的任一个要求的方法,其中PS和TS格式中每一个都定义约束条件为(i)在具有一个公共表达时间的第一和第二基本流内各个表达单元的传送时间之间的最大时间差(“偏差”)的一个上限;以及以下至少其中之一(ii)用于在传送和解码之间缓冲每个基本流数据的容量;以及(iii)按一个存取单元的等级从传输流传送每个基本流数据到缓冲器用于解码的速率。
8.如权利要求7中要求的方法,其中对第二基本流来说,在TS格式下所述缓冲器的约束条件(ii)比在PS格式下所述缓冲器的约束条件(ii)要严格,并且其中所述的等待门限值足够容纳一些额外数据,该数据对应于PS目标解码器中缓冲器内所能容纳的数据和TS目标解码器中缓冲器内所能容纳的数据之差。
9.如权利要求7或8中要求的方法,其中对第二基本流来说,在TS格式下所述的最小速率约束条件(iii)比在PS格式下所述的最小速率约束条件(iii)要严格,并且所述的等待门限值足够允许额外的时间用于传输第二基本流内的一个存取单元,该额外的时间对应于用于传送PS格式约束条件内的这样一个存取单元的最短可能时间和用于传送TS格式约束条件内的相同存取单元的最长可能时间之差。
10.如权利要求9中要求的方法,其中所述的PS和TS格式允许在所述的第二基本流内实现不同的编码参数以便改变被传送数据的数量和每个存取单元的表达周期或两者之一,而所述的等待门限值依照允许的编码参数中所需的最大额外时间是固定的。
11.如权利要求7到10中的任一个要求的方法,其中所述的等待门限值小于节目流中允许偏差的五分之一。
12.如权利要求7到10中的任一个要求的方法,其中所述的存取单元包括一个压缩了的音频帧。
13.一种用于重新复用第一和第二基本流数据以便生成一个符合第二预定目标解码器模型的传输分组的连续流的方法,所述的第一和第二流的数据先前已经依照一个不同的、第一预定的目标解码器模型被复用,其中,假设所述的读取被判别超前于重新复用第二基本流的进程足够远以补偿第一和第二目标解码器模型之间的差别,则所述的数据按要求从一个输入信道中被读取并且该数据的读取通过参考重新复用第二基本流的进程被限制,而与第二目标解码器模型中给第一个流的数据的空位无关。
14.如权利要求13中要求的方法,其中第一和第二目标解码器模型中的每一个都为每一基本流定义了一个有限大小的相应缓冲器用于要解码的数据,并且其中至少对第二基本流来说,TS目标解码器内的缓冲器小于PS目标解码器内的缓冲器。
15.如上述权利要求中的任一个要求的方法,其中第一基本流的平均数据速率基本上大于第二基本流的平均数据速率。
16.如上述权利要求中的任一个要求的方法,其中第一基本流的数据包括已编码的视频图像而第二基本流的数据包括已编码的音频帧。
17.如上述权利要求中的任一个要求的方法,其中所述的TS格式符合MPEG-2传输流规范,而所述的PS格式符合MPEG-2节目流规范,两者都在ITU-T建议H.222.0和150/IEC13818-1中被定义。
18.一种再生一个录制的音视频节目的方法,其中一个PS格式的数据流从一个数据信道中被读取,通过如上述权利要求中任一个要求的方法转换成TS格式,并经另一个信道送入一个TS兼容的解码器。
19.如权利要求18中要求的方法,其中所述的数据信道包括一个录制载体上所述的输入数据流的录制。
20.一种设备,该设备包括用于接收一个第一种格式的输入数据流的装置,其中至少数据的两个基本流被复用,和用于将该数据转换成第二种格式从而生成一个输出流的装置,所述的转换装置包括特别适合于实现前述权利要求中的任一个要求的方法的装置。
21.如权利要求20中要求的设备,该设备包括以下中的一个一个用于数字视频节目的独立的解码器设备,一个具有用于视频节目的显示器的表达设备,和一个用于播放以及可选地还用于录制数字视频节目的再生设备。
全文摘要
一个数字视频录像机或类似设备实现了一种方法,该方法用于将具有一个MPEG-2节目流(PS)格式的输入数据流转换成一个具有MPEG-2传输流(TS)格式的输出数据流。所述的输入数据流(PS)包括依照一个PS解码器模型被形成和复用的至少第一和第二基本数据流(404、406)的数据。该设备内的一个调度器(412)在一个目标解码器模型(418)内缺少空位给一个音频基本流的数据的情况下,所述输入数据流的时钟参考(SCR)超过所述输出数据流的时钟参考一个预定的等待门限值时,禁止从输入流中读取另外的数据块。
文档编号H04N5/00GK1349715SQ00806989
公开日2002年5月15日 申请日期2000年12月4日 优先权日1999年12月30日
发明者O·J·莫里斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1