这里提供了同步译码和立体视频画面序列的方法和装置。
图1是立体视频的编码器/译码器结构的框图。MPEG MVP标准和类似的系统包括两视频层,即低层和增强层的编码。对于这样的应用,低层分配给左视,而增强层分配给右视。在图1的编码器/译码器结构中,由临时的再多路器(remux)105接收低层和增强层视频序列。使用时分多路传输(TDMX),提供增强层视频给增强编码器110,而提供基层视频给低层编码器115。注意,可以提供低层视频数据给增强层编码器110以用于差异预测。
提供编码的增强层和基层到一般用122标出的传送传送流给译码器的系统多路传送器120。传送路径典型的是卫星连接到电缆系统的开始部分或通过卫星直接连到用户的家中。在译码器122中,传送流在系统分离器125内被分离。提供编码的增强层数据给增强层译码器130,而提供编码的低层数据给低层译码器器135。注意,在低层和增强层平行处理的配置中,译码最好同时完成。替换地,增强译码器130和低层译码器135可以共享处理硬件,在这种情况下,译码可以顺序地完成,一个时间一个画面。
译码的低层数据作为分离的数据流从低层译码器135中输出,和提供给临时再多路器140。在临时的再多路器140中,译码的基层数据和译码的增强层数据组合在一起以提供所示的增强层输出信号。增强和低层输出信号再提供给供显示的显示装置。
进而,低层和增强层的编码的位流在系统多路器120内必须被多路传输,使得译码器122能够依赖已经被译码的仅一帧或多场就能译码任何帧或场。然而,该问题由以下事实变得复杂化,对P和B画面的预测模式在低层和增强层内是不同的。进而,增强层画面总是以表示(即显示)顺序传送的,而对低层而言,并不经常是这种情况。因此,这经常需要在译码器内去存储和重新排序视频画面,使得译码和显示能以适当的顺序发生。
进而,困难出现在同步译码和低层和增强层数据的表示。如上所述,低层和增强层的视频位流作为两个基本视频流被传送,对于传送流而言,传送流小包的两个小包识别器(PIDS)在两层的传送流程序变换部分内被指定。进而,定时信息在低层的选取的小包的适配字段(即在PCR_PID)内完成以服务作为在译码器内定时比较的参考。特别是,27MHz时钟采样在程序_时钟_参考(PCR)字段被传送。更精确而言,采样是在程序_时钟_参考_基础和程序_时钟_参考_扩展字段内传输,这些均在1995,4,27的MPEG-2系统文件TIU-TRec.H.262,ISO/IEC 13818-1中描述过,一并在此作为参考。MPEG-2标准的进一步细节可在1994,3,25的标题为“信息技术—运动画面和相关的音频的一般编码”,推荐H.262的文件ISO/IECJICI/SC29/WG11 N0702内发现,一并在此作为参考。
PCR指出了在译码器内从位流中完成读取字段所期望的时间。在译码器中运行的局部时钟的相位和在瞬时获得PCR值的位流中的PCR值比较以确定是否视频,音频,和其它数据的译码被同步。进而,在译码器内的采样时钟被锁定到从PCR值导出的系统时钟。通过使用在ITU-TRec.H.262,ISO/IEC 13818-1内描述的等式计算PCR的值,该等式如下:
PCR(i)=PCR_tase(i)X300+PCR_ext(i),这里
PCR_tase(i)=((系统_时钟_频率Xt(i))DIV 300)%233和
PCR_ext(i)=((系统_时钟_频率Xt(i))DIV1)%300
这里“%”符号指出模操作。
以类似的方法,对于立体视频信号的程序流,定时信息作为在系统_时钟_参考(SCR)字段内的27MHz时钟的采样在小包头内完成的。使用在ITU-T Rec.H.262,ISO/IEc 13818-1内描述的等式计算SCR值,该等式如下:
SCR(i)=SCR_tbase(i)X300+SCR_ext(i),这里:
SCR_base(i)=((系统_时钟_频率Xt(i))DIV 300)%233,和
SCR_ext(i)=((系统_时钟_频率Xt(i))DIV1)%300
在低层和增强层内的视频小包内的识别在程序流变换中被指定作为两流的识别器。对于传送流和程序流两者而言,在小包化的基本流(PES)小包内提供了译码和立体视频的表示处理的同步。特别是,在PES头的任意字段内提供了表示时间章(PTS)和/或译码时间章(DTS)。
在传送或程序小包化之前,为每一个基本视频流构成了PES小包。如果需要去发送PTS和/或DTS到译码器,在PES流内提供新PES小包。因此,同步的关键是正确地计算PTS和DTS。在假想译码器模型的基础上由编码器确定PTS和DTS,即,传送流系统目标译码器(T-STD),或程序流系统目标译码器(P-STD),及它们两者均在ITU-TRec.H.262,ISO/TEC13818-1被描述。
系统时钟频率的周期的诸单元除以300指定了PTS和DTS两者,这就产生了90KHz诸单元。特别是在ITU-TRec.H.262,ISO/TEC13818-1中描述的:
PTS(K)=((系统_时钟_频率Xtpn(K))DIV 300)%233,这里tpn(K)是表示单元Pn(K)的表示时间。类似地,
DTS(j)=((系统_时钟_频率Xtdn(K))DIV300)%233,这里tdn(K)是存取单元An(j)的译码时间。当画面需要由STD译码时,视频DTS指示时间。当译码的画面要表示给视者(即在电视上显示)时视频PTS指示时间。进而,由PTS和DTS指示的时间依照当前的PCR或SCR值加以估算。
视频位流在理论上的STD模型里瞬时地加以译码。然而,如果B画面呈现在立体位流的低层内,位流将不以表示的(即显示)顺序到达译码器。在这种情况下,在被译码后直到适当的表示时间,一些I和/或P画面必需临时存储在STD的重排序缓冲器内。然而,随着增强层,所有图象以表示的顺序到达译码器,和结果是,PTS和DTS值应当是一致的或者仅偏置一个固定的间隔。
为了同步低层和增强层顺序,在低层和增强层相对应的画面必需具有相同的PTS。任何现存的为MPEG-2主轮廓计算DTS的方法能被使用计算低层内的DTS,即DTSL,这里“L”表示低层,后来的PTS和DTS值将参照相应的DTSL。特别是,让DTSLi和PTSLi分别为低层第i画面的DTS和PTS。同样,让DTSEi和PTSEi分别为增强层内第i画面的DTS和PTS。然后,连续画面的表示之间的时间间隔F能被定义为:
例如,在NTSC标准下,帧速率为29.97帧/秒,F=3,003。F是90KHz时钟周期的正常帧周期,和对应着真实用去时间3,003周期/90KHz=0.0336秒。在PAL标准下,当帧速率是25帧/秒时,F=3,600。
进而,同步低层和增强层序列是紧密地依赖于视频序列的传送和显示次序。一般地,非立体视频信号的MPEG2标准并不指定任何特定分布,I画面,P画面和B画面必需采用在基层的顺序,但允许不同的分布以提供不同的压缩和随机存取度。在一种可能的分布中,在基层的每一个画面均是I画面。在另一种可能的分布中,两个I和P画面被提供,或者是I,P,和B画面,这里提供的B画面不是连续的,或两者I,P,和B画面被提供,这里可以提供两个连续的B画面。一般而言,由于降低图象的质量,所以不提三个或者更多的连续的B画面。在增强层中,提供B,P画面,I画面可以任意地被提供。
图2示出了使用本发明系统的增强层画面序列和第一基层画面序列。这里低层仅包括I画面。增强层画面序列一般用200表示,而低层序列一般用250表示。序列200和250以显示顺序示出。每个画面均被标号以指示画面类型(即I,B或P),层的指定(例如“E”表示增强层,和“L”表示低层)和画面的序列位置,这里脚标“0”表示序列的第0个画面,脚标“1”表示序列内的第一个画面,等等。
增强层200包括画面IE0(202),BE1(204),BE2(206),PE3(208),BE4(210),BE5(212),PE6(214),BE7(216),BE8(218),PE9(220),BE10(222),BE11(224)和IE12(226)。然而特别增强层序列仅仅用于示意。在此讨论的任意增强层序列包括图2-5的那些序列,特别的增强层画面类型并不限定,这是因为增强层是按显示顺序传送的。这样,任何增强层画面均能被考虑为一般画面类型(即HEi),这里“H”表示画面类型。
在这实例的低层250仅包括I画面,即包括IL0(252),IL1(254),IL2(256),IL3(2 58),IL4(260),IL5(262),IL6(264),IL7(266),IL8(268),IL9(270),IL10(272),IL11(274)和IL12(276)。进而,每一序列的画面组(GOP)的开始被指出。GOP指示能够被译码而不参考其它GOP画面的一个或多个连续画面。一般而言,低层和增强层的诸GOP并不对准,而有不同的长度。例如,增强层200的第一GOP的开始处示出在画面IE0(202),而第二GOP的开始处是在画面IE0(226)。类似地,示出的在低层250的第一GOP的开始处是在画面IL2(256),而第二GOP的开始是在画面IL8(268)。
进而,在图2所示的诸箭头指示允许的预测模式,根据连到箭头尾部的画面可以预测由箭头头部指出的画面。例如,由画面IL1(254)可以预测画面BE1(204)。请回忆,I画面是不能预测编码的,但是自保持的。
使用图2的画面显示顺序,开始点在IL2的依照本发明的有优点的传送顺序是:IL2,BE1,IL3,BE2,IL4,BE3,IL5,IL6,BE5,IL7,PE6,IL8,BE7,IL9,BE8,IL10,PE9,IL11,BE10,IL12,BE11等等(序列1)。使用这个图象顺序,到达译码器的每一个预编码的画面在译码前并没有被重新排列顺序。这样,能够减少在译码器内的存储和处理要求,因此也就减少了译码器的成本。另一个适当的画面传送顺序是:IL2,BE2,IL3,PE3,IL4,BE4,IL5,BE5,IL6,PE6,IE6,BE7,IL8,BE8,IL9,PE9,IL10,BE10,IL11,BE11,IL12,IE12等等(序列2)。
随着这些图象的传送顺序,所有的画面以表示顺序到达译码器。进而,这就可能为每一画面确定适当的PTS和DTS。首先假定,第三低层画面的DTS,即DTSLi是已知的。
作为特定的实例,使用图2的第一画面传送顺序,即序列1,在下面的表1中描述了译码和表示的发生、假定为顺序译码。在表1中,第一列表示时间,使用DTSL2作为开始时间,使用增量是0.5F,第二列表示低层画面的译码时间,第三列表示增强层画面的译码时间,和第四列表示低层和增强层画面的表示时间。
这里,需要仅两个译码画面的存储。例如,在BE2被接收以前,IL2和IL3被译码和被存储。当接收时,BE2能同时被译码和输出,为实质上和IL2同时表示。
表1
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE1 |
IL1 |
BE1 |
F |
IL3 | | | |
1.5F | |
BE2 |
IL2 |
BE2 |
2F |
IL4 | | | |
2.5F | |
PE3 |
IL3 |
PE3 |
3F |
IL5 | | | |
3.5F | |
BE4 |
IL4 |
BE4 |
4F |
IL6 | | | |
4.5F | | BE5 | IL5 | BE5 |
5F |
IL7 | | | |
5.5F | |
PE6 |
IL6 |
PE6 |
6F |
IL8 | | | |
6.5F | |
BE7 |
IL7 |
BE7 |
7F |
IL9 | | | |
7.5F | |
BE8 |
IL8 |
BE8 |
8F |
IL10 | | | |
8.5F | |
PE9 |
IL9 |
PE9 |
9F |
IL11 | | | |
9.5F | |
BE10 |
IL10 |
BE10 |
10F |
IL12 | | | |
10.5F | |
BE11 |
IL11 |
BE11 |
进而,为在低层或增强层序列的第三个画面,DTS和PTS能由DTSL1确定如下:
PTSLi=DTSLi+1.5F;
DTSEi=DTSLi+1.5F;和
PTSEi=PTSLi
例如,图2中的PE3(208)的PTS等于IL3的DTS与1.5F之合。这样,PE3的译码和表示将跟随着1.5倍画面时间间隔的IL3的译码(即1.5F)。
使用图2的第二画面传送顺序,下面的表2描述译码和表示。
表2
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE2 |
IL2 |
BE2 |
F |
IL3 | | | |
1.5F | |
PE3 |
IL3 |
PE3 |
2F |
IL4 | | | |
2.5F | |
BE4 |
IL4 |
BE4 |
3F |
IL5 | | | |
3.5F | |
BE5 |
IL5 |
BE5 |
4F |
IL6 | | | |
4.5F | |
PE6 |
IL6 |
PE6 |
5F |
IL7 | | | |
5.5F | |
BE7 |
IL7 |
BE7 |
6F |
IL8 | | | |
6.5F | |
BE8 |
IL8 |
BE8 |
7F |
IL9 | | | |
7.5F | |
PE9 |
IL9 |
PE9 |
8F |
IL10 | | | |
8.5F | |
BE10 |
IL0 |
BE10 |
9F |
IL11 | | | |
9.5F | |
BE11 |
IL11 |
BE11 |
10F |
IL12 | | | |
10.5F | |
IE12 |
IL12 |
IE12 |
这里,仅需要一个译码画面的存储,例如,在BE2被接收前,对IL2译码和存储。当接收时,BE2能被瞬时译码和为用IL2同时表示而输出。
对于在低层或增强序列的第i个画面,DTS和PTS能从如下的为表2传送顺序的DTSLi中加以确定:
PTSLi=DTSLi+0.5F;
DTSEi=DTSLi+0.5F;和
PTSEi=PTSLi
图3是使用本发明系统的增强层画面序列和第二基层画面序列的图示。这里,低层包括了I和P画面两者。一样的数字成份对应着图2的成分。增强层200和先前讨论的相同。一般用300表示的低层包括画面序列PL0(302),PL1(304),IL2(306),PL3(308),PL4(310),PL5(312),PL6(314),IL8(316),PL9(318),PL10(320),PL11(322)和PL12(326)。在IL2(306)和IL8(318)处开始GOP。
这里预测方案稍微复杂一些。请回忆,在基层中,P画面是使用最接近的前先的I或P画面进行预测编码的。在增强层中,B画面是使用直至三个可能的不同的模式进行预测编码的。然而,当相应的低层画面是I画面时,只使用那个I画面。同样,在增强层中,使用最当前的增强层画面,按显示顺序的最当前低层画面或按显示顺序的下一个低层画面,进行P画面的预测编码的。再一次,当相应的低层画面是I画面时,仅仅使用那个I画面。注意,在一些情况下,所示的预测模式包括任选的路径。
这样,在低层序列300中,例如,使用PL3和PL5对PL4进行编码。在增强层200中,使用BE2或PL3对PE3进行编码。开始于IL2的依本发明的适当的画面传送顺序是:IL2,BE1,PL3,BE2,PL4,PE3,PL5,BE4,PL6,BE5,PL7,PE6,IL8,BE7,PL9,BE8,PL10,PE9,PL11,BE10,PL12,BE11等等(序列3)。对此序列而言,在下面的表3描述了译码和表示的发生。
表3
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE1 | | |
F |
PL3 | | | |
1.5F | |
BE2 |
IL2 |
BE2 |
2F |
PL4 | | | |
2.5F | |
PE3 |
PL3 |
PE3 |
3F |
PL5 | | | |
3.5F | |
BE4 |
PL4 |
BE5 |
4F |
PL6 | | | |
4.5F | |
BE5 |
PL5 |
BE5 |
5F |
PL7 | | | |
5.5F | |
PE6 |
PL6 |
PE6 |
6F |
IL8 | | | |
6.5F | |
BE7 |
PL7 |
BE7 |
7F |
PL9 | | | |
7.5F | |
BE8 |
IL8 |
BE8 |
8F |
PL10 | | | |
8.5F | |
PE9 |
PL9 |
PE9 |
9F |
PL11 | | | |
9.5F | |
BE10 |
PL10 |
BE10 |
10F |
PL12 | | | |
10.5F | |
BE11 |
PL11 |
BE11 |
这里,仅需要对两个译码画面的存储,例如,在BE2被接收前,对IL2和PL3进行译码和存储。当接收时,BE2然后能瞬时译码和为同时用IL2表示而输出。
对于在低层或增强层序列内的第三个画面而言,DTS和PTS可由如下的表3传送顺序的DTSLi加以确定:
PTSLi=DTSLi+1.5F;
DTSEi=DTSLi+1.5F;和
PTSEi=PTSLi。
替换地,作为图3实例的另一个适当的传送顺序是:IL2,BE2,PL3,PE3,PL4,BE4,PL5,BE5,PL6,PE6,PL7,BE7,IL8,BE8,PL9,PE9,PL10,BE10,PL11,BE11,PL12,IE12等等(序列4)。下面的表4描述译码和表示的发生。
表4
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE2 |
IL2 |
BE2 |
F |
PL3 | | | |
1.5F | |
PE3 |
PL3 |
PE3 |
2F |
PL4 | | | |
2.5F | |
BE4 |
PL4 |
BE4 |
3F |
PL5 | | | |
3.5F | |
BE5 |
PL5 |
BE5 |
4F |
PL6 | | | |
4.5F | |
PE6 |
PL6 |
PE6 |
5F |
PL7 | | | |
5.5F | |
BE7 |
PL7 |
BE7 |
6F |
IL8 | | | |
6.5F | |
BE8 |
IL8 |
BE8 |
7F |
PL9 | | | |
7.5F | |
PE9 |
PL9 |
PE9 |
8F |
PL10 | | | |
8.5F | |
BE10 |
PL10 |
PE10 |
9F |
PL11 | | | |
9.5F | |
BE1 |
PL11 |
BE11 |
10F |
PL12 | | | |
10.5F | |
IE12 |
PL12 |
IE12 |
这里,仅需要一个译码画面的存储。例如,在BE2被收到以前,IL2被译码和存储,在此时间BE2能被译码和直接输出以同时用IL2表示。
对在低层或增强层序列的第三个画面而言,DTS和PTS能从随后表4的传送顺序的DTSLi中加以确定:
PTSLi=DTSLi+0.5F;
DTSEi=DTSLi+0.5F;和
PTSEi=PTSLi
图4示出了使用本发明系统的增强层画面序列和第三基层画面序列。这里,低层包括了I、P和B画面,这里B画面不是连续的。一样的数部分对应着图2和3的成份。增强层200和先前讨论的相同。一般用400给出的低层包括画面序列PL0(402),BL1(404),IL2(406),BL3(408),PL4(410),BL5(412),PL6(414),BL7(416),IL8(418),BL9(420),PL10(422),BL11(424)和PL12(426)。在IL2(406)和IL8(418)处开始GOP。
这里预测方案如下,请回忆,在基层中,B画面是使用最接近先前的I或P画面,和最接近随后的I或P画面进行预测编码的。这样,在低层序列400中,例如,使用IL2和PL4对BL3进行编码。开始于IL2的依照本发明的适当的画面传送顺序是:IL2,PL4,BE2,PE3,PL6,BL5,BE5,IL8,BL7,PE6,BE7,PL10,BL9,BE8,PE9,PL12,BL11,BE10,BE11等等(序列5)。替换地,另一个适当的传送顺序是:IL2,BE2,PL4,BL3,PE3,BE4,PL6,BL5,BE5,PE6,IL8,BL7,BE7,BE8,PL10,BL9,PE9,BE10,PL12,BL11,BE11,IE12等等(序列6)。进一步的适当的传送顺序是:IL2,PL4,BE2,BL3,PE3,PL6,BE4,BL5,BE5,IL8,PE8,BL7,BE7,PL10,BE8,BL9,PE9,PL12,BE10,BL11,BE11等等(序列7)。
对于在低层或增强层序列内的第三个画面而言,DTS和PTS能从如下的DTSLi中确定。对于每一个画面而言,画面的表示被延迟了整数乘以跟随的画面的译码F的倍数。
例如,使用上面的第一传送顺序,即序列5,下面的表5描述了译码和表示的发生。
表5
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F |
PL4 | | | |
F |
BL3 | | | |
1.5F | |
BE2 |
IL2 |
BE2 |
2F | |
PE3 | | |
2.5F |
PL6 | |
BL3 |
PE3 |
3F |
BL5 | | | |
3.5F | |
BE4 |
PL4 |
BE4 |
4F | |
BE5 | | |
4.5F |
IL8 | |
BL5 |
BE5 |
5F |
BL7 | | | |
5.5F | |
PE6 |
PL6 |
PE6 |
6F | |
BE7 | | |
6.5F |
PL10 | |
BL7 |
BE7 |
7F |
BL9 | | | |
7.5F | |
BE8 |
IL8 |
BE8 |
8F | |
PE9 | | |
8.5F |
PL12 | |
BL9 |
PE9 |
9F |
BL11 | | | |
9.5F | |
BE10 |
PL10 |
BE10 |
10F | |
BE11 | | |
10.5F | | |
BL11 |
BE11 |
这里,仅需要三个译码画面的存储,例如,在BE2被接收前,译码和存储IL2,PL4和BL3,在此时间BE2能然后被译码和直接输出以用IL2同时表示。
对于在低层或增强层序列内的第i个画面而言,对于表5的传送顺序,DTS和PTS能从下面的DTSLi中加以确定如下:
PTSLi=DTSLi+(mod2(i+1)+1)1.5F,对于所有的i;
DTSEi=DTSLi+1.5F,对于i=2;
DTSEi=DTSLi+(1+mod2(i+1)F,对于i>2;和
PTSEi=PTSLi,对于所有的i;这里,mod2(i)是对整数(i)求模2,使得当i是偶数时mod2(i)=0,当i是奇数时mod2(i)=1。
使用序列6时,在下面的表6描述了译码和表示的发生。
表6
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE2 | | |
F |
PL4 | |
IL2 |
BE2 |
1.5F |
BL3 | | | |
2F | |
PE3 |
BL3 |
PE3 |
2.5F | |
BE4 | | |
3F |
PL6 | |
PL4 |
BE4 |
3.5F |
BL5 | | | |
4F | |
BE5 |
BL5 |
BE5 |
4.5F | |
PE6 | | |
5F |
IL8 | |
PL6 |
PE6 |
5.5F |
BL7 | | | |
6F | |
BE7 |
BL7 |
BE7 |
6.5F | |
BE8 | | |
7F |
PL10 | |
IL8 |
BE8 |
7.5F |
BL9 | | | |
8F | |
PE9 |
BL9 |
PE9 |
8.5F | |
BE10 | | |
9F |
PL12 | |
PL10 |
BE10 |
9.5F |
BL11 | | | |
10F | |
BE11 |
BL11 |
BE11 |
10.5F | |
IE12 | | |
11F | | |
PL12 |
IE12 |
这里,仅需要两个译码画面的存储。例如,在PE3被接收之前,译码和存储PL4和BL3,在这时PE3被译码和直接输出以同时用IL2表示。
对于低层或增强层序列的第三个画面而言,对于表6的传送顺序,DTS和PTS能从DTSLi加以确定如下:
PTSLi=DTSLi+F,对于i=2;
PTSLi=DTSLi+(3mod2(i+1)+1)0.5F,对于i>2;
DTSEi=DTSLi+0.5F,对于i=2;
DTSEi=DTSLi+(1+2mod(i+1))0.5F,对于i>2;和
PTSEi=PTSLi,对于所有的i。
使用序列7,下面的表7描述了译码和表示的发生。
表7
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F |
PL4 | | | |
F | |
BE2 |
IL2 |
BE2 |
1.5F |
BL3 | | | |
2F | |
PE3 |
BL3 |
PE3 |
2.5F |
PL6 | | | |
3F | |
BE4 |
PL4 |
BE4 |
3.5F |
BL5 | | | |
4F | |
BE5 |
BL5 |
BE5 |
4.5F |
IL8 | | | |
5F | |
PE6 |
PL6 |
PE6 |
5.5F |
BL7 | | | |
6F | |
BE7 |
BL7 |
BE7 |
6.5F |
PL10 | | | |
7F | |
BE8 |
IL8 |
BE8 |
7.5F |
BL9 | | | |
8F | |
PE9 |
BL9 |
PE9 |
8.5F |
PL12 | | | |
9F | |
B10 |
PL10 |
BE10 |
9.5F |
BL11 | | | |
10F | |
BE11 |
BL11 |
BE11 |
10.5F | | | | |
这里,仅需要存储两个译码的画面,例如,在BE2被接收前译码和存储IL2和PL4,在此期间BE2被译码和直接输出以同时用IL2表示。
对于在低层或增强层序列的第i个画面而言,对于表7的传送顺序,DTS和PTS能从DTSLi加以确定如下:
PTSLi=DTSLi+F,对于i=2;
PTSLi=DTSLi+(4mod2(i+1)+1)0.5F,对于i>2;
DTSEi=DTSLi+F,对于i=2;
DTSEi=DTSLi+(4mod2(i+1)+1)0.5F,对于i>2;和
PTSEi=PTSLi,对于所有的i。
图5示出了使用本发明系统的增强层画面序列和第四基层画面序列。这里,低层包括了I,P和B画面,具有两个连续的B画面。一样的数字部件对应着图2-4的部件。增强层200和先前讨论的相同。一般用500标出的低层包括图面序列BL0(502),BL1(504),IL2(506),BL3(508),BL4(510),PL5(512),BL6(514),BL7(516),IL8(518),BL9(520),BL10(522),PL11(524)和BL12(526)。在IL2(506)和IL8(518)处开始GOP。
在IL2开始的依照本发明的适当的画面传送顺序是:IL2,PL5,BL3,BE2,BL4,PE4,BE4,IL8,BL6,BE5,BL7,PE6,BE7,PL11,BL9,BE8,BL10,PE9,BE10等等(序列8)使用这个传送顺序,下面的表8描述了译码和表示的发生。
表8
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F |
PL5 | | | |
F |
BL3 | | | |
1.5F | |
BE2 |
IL2 |
BE2 |
2F |
BL4 | | | |
2.5F | |
PE3 |
BL3 |
PE3 |
3F | |
BE4 | | |
3.5F |
IL8 | |
BL4 |
BE4 |
4F |
BL6 | | | |
4.5F | |
BE5 |
PL5 |
BE5 |
5F |
BL7 | | | |
5.5F | |
PE6 |
BL6 |
PE6 |
6F | |
BE7 | | |
6.5F |
PL11 | |
BL7 |
BE7 |
7F |
BL9 | | | |
7.5F | |
BE8 |
IL8 |
BE8 |
8F |
BL10 | | | |
8.5F | |
PE9 |
BL9 |
PE9 |
9F | |
BE10 | | |
9.5F | | |
BL10 |
BE10 |
10F | | | | |
10.5F | | |
PL11 | |
这里,仅需要存储三个译码的画面。例如,在BE2被接收前,译码和存储IL2,PL5,和BL3,在这个时间BE2被译码和直接输出以同时用IL2加以表示。
对于在低层或增强层序列的第i个画面而言,对于表8的传送顺序,DTS和PTS能从DTSLi中确定如下:
PTSLi=DTSLi+1.5F,对于i=2;
PTSLi=DTSLi+(5mod2(mod3(i-1))+3)0.5F,对于i>2;
DTSEi=DTSLi+1.5F,对于i=2;
DTSEi=DTSLi+(3-mod2(mod3(i))+5mod2(mod3(i-1))0.5F,对于i>2;和
PTSEi=PTSLi,对于所有的i。这里mod3(i)是对整数i求模3,使得当i=0+3n时mod2(i)=0,当i=1+3n时,mod3(i)=1,和当i=2+3n,n=0,1,2,3等等时,mod3(i)=2。
替换地,另一个适当的传送顺序是:IL2,BE2,PL5,BL3,PE3,BL4,BE4,BE5,IL8,BL6,PE6,BL7,BE7,BE8,PL11,BL9,PE9,BL10,BE10,BE11等等(序列9)。使用这种传送顺序,下面的表9描述了译码和表示的发生。
表9
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F | |
BE2 | | |
F |
PL5 | |
IL2 |
BE2 |
1.5F |
BL3 | | | |
2F | |
PE3 |
BL3 |
PE3 |
2.5F |
BL4 | | | |
3F | |
BE4 |
BL4 |
BE4 |
3.5F | |
BE5 | | |
4F |
IL8 | |
PL5 |
BE5 |
4.5F |
BL6 | | | |
5F | |
PE6 |
BL6 |
PE6 |
5.5F |
BL7 | | | |
6F | |
BE7 |
BL7 |
BE7 |
6.5F | |
BE8 | | |
7F |
PL11 | |
IL8 |
BE8 |
7.5F |
BL9 | | | |
8F | |
PE9 |
BL9 |
PE9 |
8.5F |
BL10 | | | |
9F | |
BE10 |
BL10 |
BE10 |
9.5F | |
BE11 | | |
10F | | |
PL11 |
BE11 |
这里,仅需要存储两个译码的画面,例如,在PL5被接收以前,译码和存储IL2和BE2,在此时间输出BE2和IL2以同时表示。
对于在低层或增强层序列的第i个画面而言,对于传送顺序表9,DTS和PTS可以从DTSLi加以推导如下:
PTSLi=DTSLi+F,对于i=2;
PTSLi=DTSLi+(5mod2(mod3(i-1))+1)0.5F,对于i>2;
DTSEi=DTSLi+0.5F,对于i=2;
DTSEi=DTSLi+(5mod2(mod3(i-1))+1)0.5F,对于i>2;和
PTSEi=PTSLi,对于所有的i。
进一步适当的传送顺序是:IL2,PL5,BE2,BL3,PE3,BL4,BE4,IL8,BE5,BL6,PE6,BL7,BE7,PL11,BE5,BL9,PE9,BL10,BE10等等(序列10)。使用这样的序列,下面的表10描述了译码和表示的发生。
表10
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 | | | |
0.5F |
PL5 | | | |
F | |
BE2 |
IL2 |
BE2 |
1.5F |
BL3 | | | |
2F | |
PE3 |
BL3 |
PE3 |
2.5F |
BL4 | | | |
3F | |
BE4 |
BL4 |
BE4 |
3.5F |
IL8 | | | |
4F | |
BE5 |
PL5 |
BE5 |
4.5F |
BL6 | | | |
5F | |
PE6 |
BL6 |
PE6 |
5.5F |
BL7 | | | |
6F | |
BE7 |
BL7 |
BE7 |
6.5F |
PL11 | | | |
7F | |
BE8 |
IL8 |
BE8 |
7.5F |
BL9 | | | |
8F | |
PE9 |
BL9 |
PE9 |
8.5F |
BL10 | | | |
9F | |
BE10 |
B |
BE10 |
9.5F | | | | |
10F | | |
PL11 |
BE11 |
这里,只需要存储两个译码的画面,例如,在BE2被接收之前,译码和存储IL2和PL5,在此时间BE2被译码和直接输出以用IL2同时表示。
对于在低层或增强层序列的第i个画面而言,对于表10的传送顺序,DTS和PTS能由DTSLi加以表示如下:
PTSLi=DTSLi+F,对于i=2;
PTSLi=DTSLi+(6mod2(mod3(i-1))+1)0.5F,对于i>2;
DTSEi=DTSLi+F,对于i=2;
DTSEi=DTSLi+(6mod2(mod3(i-1))+1)0.5F,对于i>2;和
PTSEi=PTSLi,对于所有的i。
注意,在上述序列1-10的每一个情况下,假定顺序译码,当使用平行译码时,PTS和DTS之间的关系以更一般的方式为特征。特定情况下,当低层没有B画面时而仅有I和/或P画面时,在两层内的所有画面以表示的顺序到达译码器。这样,对在低层或增强层序列的第i个画面而言,DTS和PTS能DTSLi加以确定如下:
PTSLi=DTSLi+F;
DTSEi=DTSLi+F;和
PTSEi=PTSLi。
下面表11示出的实例给出了这种关系。DTSLi和DTSL(i-I)之间的差是F。
表11
Pic.No. |
Pic(画画)类型,低层 |
DTSL |
PTSL |
Pic(画面)类型增强层 |
DTSE |
PTSE |
0 |
I |
DTSL0 |
DTSL0+F |
I,P |
DTSL0+F |
DTSL0+F |
1 |
I,P |
DTSL1 |
DTSL1+F |
I,P,B |
DTSL1+F |
DTSL1+F |
2 |
I, P |
DTSL2 |
DTSL2+F |
I,P,B |
DTSL2+F |
DTSL2+F |
3 |
I, P |
DTSL3 |
DTSL3+F |
I,P,B |
DTSL3+F |
DTSL3+F |
例如,参看序列1并结合上面图2讨论,下面表12示出了译码和表示的发生。
表12
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL2 |
BE1 |
IL1 |
BE1 |
F |
IL3 |
BE2 |
IL2 |
BE2 |
2F |
IL4 |
PE3 |
IL3 |
PE3 |
3F |
IL5 |
BE4 |
IL4 |
BE4 |
4F |
IL6 |
BE5 |
IL5 |
BE5 |
5F |
IL7 |
PE6 |
IL6 |
PE6 |
6F |
IL8 |
BE7 |
IL7 |
BE7 |
7F |
IL9 |
BE8 |
IL8 |
BE8 |
8F |
IL10 |
PE9 |
IL9 |
PE9 |
9F |
IL11 |
BE10 |
IL10 |
BE10 |
10F |
IL12 |
BE11 |
IL11 |
BE11 |
这里,仅需要存储一个译码的画面。例如,在BE2被接收前,译码和存储IL2。当接收时,BE2立即被译码和被输出以用IL2实质上同时表示。
当低层不具有连续B画面时,DTS和PTS由DTSLi加以确定如下。如果低层的第i个画面是由带有“闭合GOP”指示器的I画面,或是由这样I画面跟随的P画面时,那么PTSLi=DTSLi+2F。如果低层内的第i个画面是P画面,或“打开GOP”的I画面,和第(i+1)画面不是带有“闭合GOP”的I画面,那末PTSLi=DTSLi+3F。如果低层的第I画面是B画面,那末PTSLi=DTSLi+F对于增强层而言,DTSEi=DTSLi+2F和PTSEi=DTSLi+2F。注意,在MPEG-2的视频协议书中,一组的画面头是包括在GOP的开始和由一位指示器加以设置,闭合gop(组)=0,而当闭合gop(组)=1时指示闭合的GOP,一打开GOP的I画面依照译码的顺序象P画面一样处理。下面表13实例示出了在低层内的非连续B画面的译码和表示。
表13
Pic.No. |
Pic(画面)的类型,低层 |
DTSL |
PTSL |
Pic(画面)类型,增强层 |
DTSE |
PTSE |
0 |
I(闭合的GOP) |
DTSL0 |
DTSL0+2F |
I,P |
DTSL0+2F或DTSL0+F |
DTSL0+2F |
1 |
P |
DTSL1 |
DTSL1+3F |
I,P |
DTSL1+2F |
DTSL1+2F |
2 |
B |
DTSL2 |
DTSL2+F |
I,P,B |
DTSL2+2F |
DTSL2+2F |
3 |
P |
DTSL3 |
DTSL3+3F |
I,P,B |
DTSL3+2F |
DTSL3+2F |
4 |
B |
DTSl4 |
DTSL4+F |
I,P,B |
DTSL4+2F |
DTSL4+2F |
5 |
I(打开的GOP) |
DTSL5 |
DTSL5+3F |
I,P,B |
DTSL5+2F |
DTSL5+2F |
6 |
B |
DTSL6 |
DTSL6+F |
I,P,B |
DTSL6+2F |
DTSL6+2F |
7 |
I(闭合的GOP) |
DTSL7 |
DTSL7+2F |
I,P,B |
DTSL7+2F |
DTSL7+2F |
在特定的例子中,按显示顺序的低层序列是IL0,BL1,PL2,BL3,PL4BL5,IL6,IL7等等。按显示和传送顺序的增强层序列是PE0,BE1,BE2,BE3,BE4,BE5,PE6,PE7等等。依照本发明的一个可能的传送顺序是IL0,PL2,BL1,PE0,PL4,BE1,BL3,BE2,IL6,BE3,BL5,BE4,IL7,BE5等等。所示的表14能够确定DTS和PTS。
表14
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL0 | | | |
F |
PL2 | | | |
2F |
BL1 |
PE0 |
IL0 |
PE0 |
3F |
PL4 |
BE1 |
BL1 |
BE2 |
4F |
BL3 |
BE2 |
PL2 |
BE2 |
5F |
IL6 |
BE3 |
BL3 |
BE3 |
6F |
BL5 |
BE4 |
PL4 |
BE4 |
7F |
IL7 |
BE5 |
BL5 |
BE5 |
8F | |
PE6 |
IL6 |
PE6 |
9F | |
PE7 |
IL7 |
PE7 |
当低层有两个连续的B画面时,用下面的规则计算DTS和PTS。如果低层的第i个画面是带有闭合GOP指示器的I画面,或由这样的I画面跟随在其后的P画面,那末PTSLi=DTSLi+2F。如果低层的第i个画面是P画面,或是打开GOP的I画面,和第(i+1)画面不是带有闭合GOP指示器的I画面,那末PTSLi=DTSLi+4F。如果低层的第三个画面是B画面,那末PTSLi=DTSLi+F。对于增强层,DTSEi=DTSLi+2F和PTSEi=DTSLi+2F。
低层的两个连续B画面的译码和表示由下面的表15作为实例给出。
表15
Pic.No. |
Pic(画面)的类型,低层 |
DTSL |
PTS L |
Pic(画面)类型,增强层 |
DTSE |
PTSE |
0 |
I(闭合的GOP) |
DTSL0 |
DTSL0+2F |
I,P |
DTSL0+2FDTSL0+F |
DTSL0+2F |
1 |
P |
DTSl3 |
DTSL1+4F |
I,P,B |
DTSL1+2F |
DTSL1+2F |
2 |
B |
DTSL2 |
DTSL2+F |
I,P,B |
DTSL2+2F |
DTSL2+2F |
3 |
B |
DTSL3 |
DTSL3+F |
I,P,B |
DTSL3+2F |
DTSL3+2F |
4 |
I(打开的GOP) |
DTSL4 |
DTSL4+4F |
I,P,B |
DTSL4+2F |
DTSL4+2F |
5 |
B |
DTSL5 |
DTSL5+F |
I,P,B |
DTSL5+2F |
DTSL5+2F |
6 |
B |
DTSL6 |
DTSL6+F |
I,P,B |
DTSL6+2F |
DTSL6+2F |
7 |
P |
DTSL7 |
DTSL7+2F |
I,P,B |
DTSL7+2F |
DTSL7+2F |
8 |
I(闭合的GOP) |
DTSL8 |
DTSL8+2F |
I,P,B |
DTSL8+2F |
DTSL8+2F |
在特定的实例中,按显示顺序的低层序列是IL0,BL1,BL2,PL3,BL4,BL5,IL6,IL7等等。按显示和传送顺序的增强层序列是PE0,BE1,BE2,BE3,BE4,BE5,PE6,PE7等等。依照本发明的一个可能的传送顺序是IL0,PL3,BL1,PE0,BL2,BE1,IL6,BE2,BL4,BE3,BL5,BE4,IL7,BE5等等。示出的表16可以确定DTS和PTS。
表16
时间,+DTSL2 |
译码 |
译码 |
表示 |
表示 |
0 |
IL0 | | | |
F |
PL3 | | | |
2F |
BL1 |
PE0 |
IL0 |
PE0 |
3F |
BL2 |
BE1 |
BL1 |
BE2 |
4F |
IL6 |
BE2 |
BL2 |
BE2 |
5F |
BL4 |
BE3 |
PL3 |
BE3 |
6F |
BL5 |
BE4 |
BL4 |
BE4 |
7F |
IL7 |
BE5 |
BL5 |
BE5 |
8F | |
PE6 |
IL6 |
PE6 |
9F | |
PE7 |
IL7 |
PE7 |
应用到帧模式视频的上述规则可以一般化到电影模式的相应情况。
图6是立体视频的增强层译码器结构的框图。一般用130示出的译码器包括输入端605以接收压缩的增强层数据,和传送水平的语法分析程序610以分析数据。分析的数据提供给可以包括中央处理单元的存储器管理器630。存储器管理器630和例如可以包括动态随机存取的存储器(ORAM)的存储器620通讯。存储器管理器630也和恢复/预测处理器640通讯,和通过端口650接收可以临时存储在存储器620内的译码的低层数据以在对差异预测的增强层画面译码时由处理器640连续地使用。
恢复/预测处理器640提供各种处理功能,例如错误检测和校正,运动矢量译码,逆量化,逆离散余弦变换,Huffman译码和预测计算。在由恢复/预测功能640处理之后,由存储器管理器输出译码的增强层数据。替换地,译码的数据通过未示出的装置直接从恢复/预测功能640输出。
对于低层也可以使用类似的结构。进而,增强层和低层译码器可以共享硬件。例如,可以共享存储器620和处理器640。然而,使用平行译码时,这是不可能的。提供共同的时钟信号(未示出),使得依照这里公开的传送顺序协调译码。特别是,在接收预测的画面数据之前,这将必须临时存储用来预测差异预测增强层画面而使用的低层画面,或其它低层画面。依照本发明,在译码前必需存储的画面数被最小化,因此允许减少存储器的尺寸。
如所见,本发明提供了立体视频画面顺序的有优点的画面传送方案。特别是,以这样的顺序传送画面,使得必需在表示前临时存储的画面数被最小化。然而,这里公开的传送顺序的实例和MPEG-2,MVP协议书,和提出的MPEG-4协议书相兼容。进而,可以确定每个画面的译码时间章(DTS)和表示时间章(PTS)以提供在译码器内的低层和增强层画面之间的同步。依照是否译码是顺序的或并联的,和是否低层没有B画面,或有非连续的B画面,或有两个连续的B画面而设置DTS和PTS。
虽然结合各种特定的实施例已经描述了发明,对此可以做出各种适用和修改而不脱离权利要求书中给出的本发明的精神和范围,这对本领域的普通技术人员而言是受欢迎的。例如,这里公开的方案可以采用不同于这里特别示出的其它的低层和增强层序列,这对该领域的普通技术人员而言是受欢迎的。