发明内容
将被本发明解决的一个问题是提供平滑反向视频模式,由此减少需要的帧缓冲器数量并且实现近似实时速度播放。此问题由权利要求1、4和7中公开的方法解决。利用这些方法的相应设备在权利要求2、5和8中公开。
对于不同的GOP结构,本发明促进全部类型的MPEG图像序列如MPEG-1(ISO/IEC 11172-2)、MPEG-2(ISO/IEC 13818-2)、和MPEG-4(ISO/IEC 14496)视频的平滑反向视频重放,通过在帧解码序列中的特技(trick)改变,由此使用较少的帧缓冲器并且在一些实施例中一些I和/或P图像被不只一次解码。本发明还允许如对MPEG-4-AVC(ISO/IEC14496-10先进视频编码)的先进视频编解码器限定的GOP结构的反向解码,其中通过使用作为锚帧的被称作B存储图像“B”(参数nal_ref_idc不等于0)的双向预测图像,GOP结构可包括进一步的锚帧体系。当使用作为锚帧的B图像时,其将被存储到帧缓冲器中并且在帧缓冲器中被保持,并且不能仅为了显示而被直接解码(即,飞速处理(on-the-fly),不用临时图像存储)。否则,B图像不能被用于进一步的帧间编码图像的预测。MPEG-4中的B存储的图像是仅帧内编码或非直接预测的帧间编码图像(I和P图像)被用作锚帧的MPEG-2的延伸。
对于不同的GOP结构,本发明公开了考虑了存储器容量限制来产生平滑反向模式的一般应用方式。如果大GOP大小将被处理,则这是特别的优点。
原理上,本发明的方法适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,
由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述方法包括以下步骤:
—仅在专用图像缓冲器中初始存储一组第一GOP的最近解码的锚图像,并且使用所述初始存储的解码锚图像和相应的散布的非锚图像开始对所述当前GOP的播放或显示,其中,这种专用图像缓冲器的总数小于每一GOP的锚图像的总数;
—使用在所述专用图像缓冲器中在中间处理过程中存储的剩余的一些解码锚图像并使用相应的散布的非锚图像连续对所述当前GOP的剩余图像播放或显示,直到到达所述当前GOP的开端,
因此对所述当前GOP的至少N个所述解码锚图像的播放或显示至少重复一次,以便获得可用的解码处理时间来对不属于所述当前GOP的所述的最近解码的锚图像组的所述当前GOP的锚图像重复解码,并且以便避免对所述解码锚图像之一的播放或显示重复N次,
其中,N是大于1的整数,
并且其中,所述当前GOP的播放或显示被执行,从而当其结束时,用于将被播放或显示的随后的GOP的相应解码锚图像被再次存储在所述专用图像缓冲器中,
或适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,
由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述方法包括以下步骤:
—仅在专用图像缓冲器中初始存储一组第一GOP的最近解码锚图像,并且使用所述初始存储的解码锚图像和相应的散布的非锚图像开始对所述当前GOP的播放或显示,其中,这种专用图像缓冲器的总数小于每一GOP的锚图像的总数,并且其中,所述当前GOP的所述解码锚图像中特定的一个被存储在专用图像缓冲器中间,所述特定锚图像位于GOP显示时间中的一个位置,该位置是当前GOP的开始和所述最近解码锚图像组之间的时间段的一半或大约一半,并且所述特定锚图像促进从该位置而不是从该GOP最开始GOP的锚图像重新开始解码;
—使用在所述专用图像缓冲器中在中间处理过程中存储的剩余的一些解码锚图像并使用相应的散布的非锚图像连续对所述当前GOP的剩余图像播放或显示,直到到达所述当前GOP的开端,
因此对所述当前GOP的至少两个所述解码锚图像的播放或显示至少重复一次,以便获得可用的解码处理时间来对不属于所述当前图像组的所述组的最近解码的锚图像的所述当前GOP的那些锚图像重复解码,
并且其中,所述当前GOP的播放或显示被执行,从而当其结束时,用于将被播放或显示的随后的GOP的相应解码锚图像被再次存储在所述专用图像缓冲器中,
或适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,并且其中,所述GOP是并非以锚图像开始而是以至少一个非锚图像开始的MPEG断开链接GOP,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述方法包括以下步骤:
—在专用图像缓冲器中初始存储第一GOP的解码锚图像;
—使用所述存储的解码锚图像和相应的散布的非锚图像对当前GOP进行播放或显示,
其中,执行对所述当前GOP的所述播放或显示,从而在结束对当前GOP的锚图像的播放或显示之前,将被处理的随后的GOP的锚图像已被解码并存储在所述专用图像缓冲器之一中,从随后的GOP的第一锚图像开始并且以随后的GOP的最后锚图像结束。
原理上,本发明的设备适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,
由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述设备包括一些装置,适用于:
—仅在专用图像缓冲器中初始存储一组第一GOP的最近解码的锚图像,并且使用所述初始存储的解码锚图像和相应的散布的非锚图像开始对所述当前GOP的播放或显示,其中,这种专用图像缓冲器的总数小于每一GOP的锚图像的总数;
—使用在所述专用图像缓冲器中在中间处理过程中存储的剩余的一些解码锚图像并使用相应的散布的非锚图像连续对所述当前GOP的剩余图像播放或显示,直到到达所述当前GOP的开端,
因此对所述当前GOP的至少N个所述解码锚图像的播放或显示至少重复一次,以便获得可用的解码处理时间来对不属于所述当前GOP的所述的最近解码的锚图像组的所述当前GOP的锚图像重复解码,并且以便避免对所述解码的锚图像之一的播放或显示重复N次,
其中,N是大于1的整数,
并且其中,所述当前GOP的播放或显示被执行,从而当其结束时,用于将被播放或显示的随后的GOP的相应解码的锚图像被再次存储在所述专用图像缓冲器中,
或适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,
由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述设备包括一些装置,适用于:
—仅在专用图像缓冲器中初始存储一组第一GOP的最近解码的锚图像,并且使用所述初始存储的解码锚图像和相应的散布的非锚图像开始对所述当前GOP的播放或显示,其中,这种专用图像缓冲器的总数小于每一GOP的锚图像的总数,并且其中,所述当前GOP的所述解码锚图像中特定的一个被存储在专用图像缓冲器中间,在所述特定锚图像位于GOP显示时间中的一个位置,该位置是当前GOP的开始和所述最近解码锚图像组之间的时间段的一半或大约一半,并且所述特定锚图像促进从该位置而不是从该GOP最开始GOP的锚图像重新开始解码;
—使用在所述专用图像缓冲器中在中间处理过程中存储的剩余的一些解码锚图像并使用相应的散布的非锚图像连续对所述当前GOP的剩余图像播放或显示,直到到达所述当前GOP的开端,
因此对所述当前GOP的至少两个所述解码锚图像的播放或显示至少重复一次,以便获得可用的解码处理时间来对不属于所述当前图像组的所述最近解码锚图像组的所述当前GOP的那些锚图像重复解码,
并且其中,所述当前GOP的播放或显示被执行,从而当其结束时,用于将被播放或显示的随后的GOP的相应解码锚图像被再次存储在所述专用图像缓冲器中,
或适用于:
对表示视频序列的GOP的编码图像组进行解码,并且临时反向播放或显示所述视频序列和所述GOP,
其中,每一GOP包括用于其它图像的预测的锚图像和不用于其它图像的预测的散布的非锚图像,并且其中,所述GOP是并非以锚图像开始而是以至少一个非锚图像开始的MPEG断开链接GOP,
并且其中,对所述GOP中当前一个的解码以从其开端对所述当前GOP的锚图像解码开始,但是对所述当前GOP的全部图像的播放或显示以从其结尾对所述当前GOP的图像进行播放或显示开始并且继续直到其开端,由此,使用相应的相邻的一些所述存储的解码锚图像飞速地从比特缓冲器解码非锚图像,所述设备包括一些装置,适用于:
—在专用图像缓冲器中初始存储第一GOP的解码锚图像;
—使用所述存储的解码锚图像和相应的散布的非锚图像对当前GOP进行播放或显示,
其中,执行对所述当前GOP的所述播放或显示,从而在结束对当前GOP的锚图像的播放或显示之前,将被处理的随后的GOP的锚图像已被解码并存储在所述专用图像缓冲器之一中,从随后的GOP的第一锚图像开始并且以随后的GOP的最后锚图像结束。
本发明的有益的其它实施例公开在各个有关权利要求中。
具体实施方式
图1显示标准MPEG-2GOP结构。当将图1与图2比较时,其如所显示的那样为闭合GOP。闭合GOP可自行解码,而不使用来自外部锚帧的数据。该GOP结构可改变,但是必须包括至少一个I图像或I帧以便以时间轴的方向开始解码。I图像是帧内编码图像,可不使用来自其它图像的数据将其解码。P图像或P帧是帧间编码,这意味着从先前解码锚帧对它们进行运动补偿(临时地)预测。在MPEG-2中锚帧总是I或P图像。B图像被从过去的和将来的锚帧双向地运动补偿(临时地)预测。所述GOP包含N=13幅图像,其中锚帧间距是M=3。
图2显示了MPEG-2GOP结构,其中将被解码的第一I图像在两个B图像之前。这种GOP结构被称作“断开链接GOP”,因为需要对来自另一GOP的两个在前B图像数据进行解码,更精确地说:先前GOP的最后的锚帧必须已被提前解码。断开链接GOP的一个缺点是反向解码变得更加困难。所述GOP包含N=12幅图像,其中锚帧间距是M=3。
图3显示包括B存储的图像BS的MPEG-4AVC GOP结构。相对于正常的B图像,B存储的图像可被用于对其它图像进一步的预测,即,B存储的图像可为锚帧。术语“存储的”指出这样的事实:锚帧必须被保持在存储器中以允许运动补偿预测和其它图像的重构的执行,而B帧仅仅被解码用于直接显示,并且其解码数据在显示时被丢弃。在MPEG中,这种B帧飞速解码已被开发以节省帧存储器。在结合图10至12描述的实施例中,B存储的图像被仅用于B图像预测,并不用于P图像预测。
在图4中的框图中显示了MPEG解码器的主要部件,它们被用于实现本发明。输入比特流IBS被存储在比特流缓冲器BSBUF中。对其来说解码处理已经结束的缓冲器BSBUF中的比特流的那些部分已经被从缓冲器BSBUF中去除。从解码器DEC和从解析器PRS访问比特流缓冲器BSBUF。解析器解析比特流并且产生相应的指数,这些指数被存储在比特流指数缓冲器BSINDB中,比特流指数缓冲器BSINDB输出请求的比特流指数信息项BSII。“解析比特流”意味着分析当前图像类型数据(例如,Bs-图像)和在比特流缓冲器BSBUF中的它们的当前位置(图像开始和结束字节位置)。在操作中,解析器PRS已经访问预先存储在BINDB中的比特流指数信息项BSII。解码器DEC从缓冲器BSINDB取得比特流指数信息项BSII以执行对比特流缓冲器BSBUF之外的比特流的解码。表示锚帧的解码的或重构的图像数据被存储在相应的帧缓冲器FRBUF中,在适当的时间段中帧缓冲器将输出相应的视频显示数据VDD,即,将被显示的解码图像。不表示锚帧的比特流缓冲器存储的图像数据(尤其是B帧数据)被飞速解码或重构,并且被直接地或经帧缓冲器输出为相应的视频显示数据VDD。作为替换,如果可用的话,解码的B图像数据可被临时存储在帧缓冲器中,但是该存储在显示之前被预先执行例如半帧。
如果必要的话,解码器DEC还从帧缓冲器FRBUF中接收相应的锚帧数据来执行运动补偿预测。在B图像解码的情况下,这可以被飞速执行,即,仅用于图像的一部分数据,例如一个MPEG片断,被缓冲并且作为视频显示数据输出到显示装置(未描述)。飞速解码图像数据在被显示之后被丢弃。全部处理由控制器CTRL控制,其中解码或显示参数可由用户接口UI设置或改变。来自缓冲器BSINDB的所需比特流指数信息项BSII(图像开始和结束字节位置,图像类型数据)或者被经由解码器DEC解析到比特流缓冲器BSBUF,或者被控制器CTRL接收并被传递到比特流缓冲器BSBUF。
粗体的连接线表示比特流数据解码流。具有粗体箭头的普通连接线表示中间数据的产生。具有普通箭头的普通连接线表示中间数据的读取。具有粗体箭头的虚连接线表示控制路径。
图5至12涉及图像序列的反向解码。对于图5至12,以下通用标记有效。在这些图的顶部,所研究的GOP结构被以正向显示顺序时间方向TF和比特流顺序每一个来描述。以下,描述使用的帧缓冲器和代码缓冲器,缓冲器号码被分配给它们每一个,这也被显示在各个图的其它部分。缓冲器中显示的图像类型和帧数量表示仅当解码开始时的快照,并且它们可在进一步的处理中改变。帧缓冲器(由图4中的FRBUF表示)的每一个存储解码图像,而代码缓冲器每一个存储编码图像数据,由此这些代码缓冲器可由比特流缓冲器BSBUF中的各个(例如,动态改变的)存储区域形成。
在图5至12的底部,三个或六个名为“显示”、“解码”、和“解析”的列被以反向解码时间方向TB描述。这些列表示上述GOP图像序列的哪个图像号码和哪个相关帧或代码缓冲器被用于显示帧缓冲器之外的图像,将图像解码到帧缓冲器,并且解析比特流缓冲器中的一幅图像或一些图像。列“显示”和“解码”中的缓冲器号码指的是相应的帧缓冲器号码,而列“解析”中的缓冲器号码指的是相应的代码缓冲器号码。具有xx-1或xxx-1格式的图像号码指的是相邻的先前GOP结构,而不是当前GOP结构。
如上所述,解码和显示B图像可被近似同时地执行。“解码”列因此将被认为上移了处在一些图像行和一帧之间的一个时间段,例如,上移了半幅图像。
尽管针对I和P图像执行了解析,但是其未在“解析”列中描述。由于这样的事实:两个图像类型已经由很大量的数据以编码格式表示,所以当它们在被解码器块解码时被从比特流缓冲器中去除。如图所示,仅解码的I和P图像被存储在所示的帧缓冲器中,并且B或Bs图像被以编码格式优选地存储在比特流缓冲器中以节省存储器。全部常规B帧被飞速解码,或者可选的是,在显示之前被临时存储在可用帧缓冲器中。
“显示”列中的“暂停”表示在该暂停之前最后显示的图像对观众重复,而不是任何空白出现。
如果全部图像被显示,则全部这些图显示反向解码的特技模式。然而,这些原理还能够通过跳过B帧解码而被部分地用于锚帧解码,仅解码全部锚帧(I、P、[Bs])并将它们逆序显示。
在根据图5的已有技术的MPEG-2闭合GOP结构的反向解码和逆向重放处理中,使用完整的一组用于I和P图像的帧缓冲器。对于当前GOP结构,“完整的”意味着解码器具有每一锚帧自己的帧缓冲器加上用于背景解码的备用帧缓冲器。
对GOP的解码以解码当前GOP的锚图像I1、P4、P7、P10和P13并且将它们分别初始地存储在帧缓冲器1至5(FRBUF)中开始。这些解码步骤未在列“解码”中描述,但是将在相应的GOP时间瞬间排列在列“解码”之前(即,在图中为之上),其中,在描述的列“解码”中,各个图像I1-1、P4-1、P7-1、P10-1、和P13-1被排列。GOP的B图像被初始地存储并解析,以在相应的代码缓冲器#1至#4中,即,在比特流缓冲器BSBUF的可识别区域中产生比特流指数信息项BSII。
其后,来自先前GOP(即,反向中下一GOP)的图像I1-1的数据被从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取,并且使用BSII而被解码并在处理过程中间存储在备用帧缓冲器6。当解码图像I1-1时,从帧缓冲器5读取并显示先前解码图像P13。其后,使用相应的比特流指数信息项BSII从代码缓冲器#4解码图像B12和B11,并将它们飞速显示。接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P4-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器5中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B2-1和B3-1的数据并将它们分配给或存储在图像B12和B11正好被提前从其读取的代码缓冲器,即代码缓冲器#4中时,图像P10被从帧缓冲器4读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#3解码图像B9和B8,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P7-1的数据并将使用BSII其解码、并在处理过程中将其存储在帧缓冲器4中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B5-1和B6-1的数据并将它们分配给或存储在图像B9和B8正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,图像P7被从帧缓冲器3读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#2解码图像B6和B5,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P10-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B8-1和B9-1的数据并将它们分配给或存储在图像B6和B5正好被提前从其读取的代码缓冲器,即代码缓冲器#2中时,图像P4被从帧缓冲器2读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#1解码图像B3和B2,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B11-1和B12-1的数据并将它们分配给或存储在图像B3和B2正好被提前从其读取的代码缓冲器,即代码缓冲器#1中时,图像I1被从帧缓冲器1读取并显示。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码/帧缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序,即,在列“显示”中从“2”到“6”运行,并且在列“解码”中从“1”到“5”运行等。相应地,使用的代码缓冲器号码被重新排序。
使用一完整的帧缓冲器组允许以正常速度反向解码。然而,这种处理是不灵活的,并且在帧缓冲器方面花费高昂。
根据本发明,所需的帧缓冲器数量可从6减少到4,并且所需的代码缓冲器数量可从4减少到3,而不会对产生的总共具有例如13幅图像的MPEG-2闭合GOP结构的反向模式显示质量造成显著的和主观的恶化。需要至少一个显示帧缓冲器和两个额外的帧缓冲器来进行背景解码。图6中描述的方案显示了不可能以正常速度进行反向解码,然而,以仅比正常速度低近似15%的速度进行反向解码是可能的。从正常速度的偏移是由以下原因导致:在对于先前GOP的解码以其开始之前,根据GOP大小,在解码处理期间锚帧将被重构若干次。结果是显示处理中而非解码处理中的暂停(其中,例如,相同的暂停图像被重复显示,优选地是最后显示的锚帧),和因此而来的不平稳显像。
在根据图6中的右侧3列的方案中,通过在显示处理中引入相应数量的手动暂停将在GOP显示队列末尾正常出现的暂停分为若干部分,因此降低了整体不平稳度并且提供了较平滑的图像内容运动流,因此带来更舒适的观看。为了将暂停分开,需要总量为至少GOP中锚帧数量一半的整数个帧缓冲器(不包括备用帧缓冲器)。
在根据图6中的左侧3列的方案中,对GOP的解码以对当前GOP的锚图像I1、P4、P7、P10和P13的解码和将锚图像P7、P10和P13分别初始存储在帧缓冲器1至3(FRBUF)中开始。这些解码步骤未在列“解码”中描述,但是将在相应的GOP时间瞬间排列在列“解码”之前(即,在图中为之上)。GOP的B图像B5至B12被初始地存储和解析,从而在相应的代码缓冲器#1至#3中,即比特流缓冲器BSBUF的可识别区域中产生比特流指数信息项BSII。
其后,从产生(或使用,因为对于属于相同GOP的I1、P4、B2和B3,可从先前GOP解析中使用BSII)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取用于图像I1的数据并使用BSII将其解码,并且在处理过程中存储在备用帧缓冲器4中。在对图像I1解码时,从帧缓冲器3中读取先前解码图像P13并且将其显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#3中解码图像B12和B11,并且将其飞速显示。
接下来,当从产生或使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P4的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中时,并且当在产生或使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B2和B3的数据并将它们分配给或存储在图像B12和B11正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,图像P10被从帧缓冲器2读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#2解码图像B9和B8,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向中下一GOP)的图像I1-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中时,图像P7被从帧缓冲器1读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#1解码图像B6和B5,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P4-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器1中时,图像P4被从帧缓冲器3读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#3解码图像B3和B2,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P7-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器1中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B5-1和B6-1的数据并将它们分配给或存储在图像B5和B6已被提前从其读取的代码缓冲器,即代码缓冲器#1中时,图像I1被从帧缓冲器4读取并显示。
接下来,当图像I1被再次从帧缓冲器4读取并显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B8-1和B9-1的数据并将它们分配给或存储在图像B8和B9已被提前从其读取的代码缓冲器,即代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P10-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中。
接下来,当图像I1被再次从帧缓冲器4读取并显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B11-1和B12-1的数据并将它们分配给或存储在代码缓冲器#3中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码/帧缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序。
在图6的右侧3列中描述的处理方案如同在在图6的左侧3列中的那样开始,直到对图像P4-1的解码和显示图像P4。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P7-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B5-1和B6-1的数据并将它们分配给或存储在图像B3和B2已被提前从其读取的代码缓冲器,即代码缓冲器#1中时,图像P4被再次从帧缓冲器3读取并显示。其后,使用相应的比特流指数信息项BSII从代码缓冲器#2解码图像B9和B8,并将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P10-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器1中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B8-1和B9-1的数据并将它们分配给或存储在图像B8和B9已被提前从其读取的代码缓冲器,即代码缓冲器#2中时,图像I1被从帧缓冲器4读取并显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P13-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B11-1和B12-1的数据并将它们分配给或存储在代码缓冲器#3中时,图像I1被再次从帧缓冲器4读取并显示。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码/帧缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序。
一般来说,直到到达当前GOP的开始,才使用在处理过程中存储在所述的图像缓冲器中的解码锚图像I、P中剩下的一些并使用相应散布的非锚图像B连续对当前GOP的剩余图像的播放或显示,因此至少重复一次对当前GOP中的至少N幅解码锚图像的播放或显示,以便获得可用的解码处理时间来重复解码不属于当前GOP的最后解码的锚图像组的当前GOP的锚图像,并且以便避免重复N次对解码锚图像之一的播放或显示,其中,执行对当前GOP的播放或显示,以便当结束该播放或显示时,将被播放或显示的随后的GOP的相应的解码锚图像被再次存储在专用的图像缓冲器FRBUF中。
在图7中描述了具有88帧的长MPEG-2GOP。“长GOP”意味着具有大约0.5秒以上的显示周期的GOP,即,在50Hz系统中包括12或13帧以上并且在60Hz系统中包括15帧以上的GOP。根据图5中的已有技术的反向解码处理方案,所需的帧缓冲器的数量将显著增加。然而,这种高数量的图像缓冲器由于成本原因不能被用于特技模式重放。
根据本发明,大约位于GOP的中间的解码锚帧(在此例中为P43)被预先存储在额外的或快捷(short cut)帧缓冲器5中。通过选择灵活的或方便的锚帧来存储在快捷帧缓冲器中,可缩短在GOP的逆向重放期间必需但令人不快的一个暂停或多个暂停,同时可缩短对与初始缓冲区域相邻的缓冲区域(B65至P76)的所需锚帧(P46至P76)进行再次解码的时间。此额外的帧缓冲器促进了便捷,因为其允许从该位置而不是从GOP的最开始重新开始对GOP的锚帧进行解码。以位于在GOP显示时间中的一个位置的GOP的解码图像填充快捷帧缓冲器是有利的,该位置是GOP开始和其它缓冲的解码锚帧之间的时间段的一半或大约一半。在通过GOP进行初始或第一锚帧解码期间初始地填充快捷帧缓冲器。当在反向显示处理期间已经估计了快捷图像(P43)自身时,可再次产生可用的帧缓冲器之外的另一快捷帧缓冲器,为了快捷而选择这种位于或大约位于从GOP开始到可用的缓冲锚帧的显示时间的一半的锚帧,不包括已被显示的GOP的图像。
在帧缓冲器1至4(FRBUF)中分别预先存储或初始存储来自于初始缓冲区域(B77至B88)的锚帧。
对GOP的解码以对当前GOP的锚图像(在此例中为P79、P82、P85和P88)解码和将位于当前GOP的末尾的初始缓冲区域(B77至B88)的这些锚图像P79、P82、P85和P88分别初始存储在帧缓冲器1至4(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。这种通过GOP进行的第一或初始解码优选地包括针对存储在缓冲器BSINDB中的整个GOP产生相应的比特流指数信息项BSII。
如上所述,因此将位于GOP的中间或大约中间的解码锚帧(在此例中为P43)初始存储在额外或快捷帧缓冲器5中。通过使这种锚帧可用,可缩短在对与初始缓冲区域相邻的缓冲区域(在此例中为B65至P76)的所需锚帧(P46至P76)进行再次解码时出现的不可避免但令人不快的一个暂停或多个暂停。以位于在GOP显示时间中的一个位置的GOP的解码图像填充快捷帧缓冲器是有利的,该位置是从GOP开始至其它缓冲锚帧的时间的一半或大约一半。在通过GOP进行第一锚帧解码期间初始地填充快捷帧缓冲器。当在反向显示处理期间已经估计了快捷图像(P43)自身时,可再次产生可用的帧缓冲器之外的另一快捷帧缓冲器,为了快捷而选择这种位于或大约位于从GOP开始到可用的缓冲锚帧的显示时间的一半的锚帧,不包括已被显示的GOP的图像。
其后,从帧缓冲器4读取解码图像P88并将其显示。使用图像P88和P85从代码缓冲器#4解码图像B87和B86,并且使用相应的比特流指数信息项BSII将它们飞速显示。当从帧缓冲器3读取解码图像P85并将其显示时,从使用(或产生)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P46的数据并(分别使用BSII)将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像P85和P82从代码缓冲器#3解码图像B84和B83,并且使用相应的比特流指数信息项BSII将它们飞速显示。
其后,当从帧缓冲器2读取解码图像P82并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P49的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像P82和P79从代码缓冲器#2解码图像B81和B80,并且使用相应的比特流指数信息项BSII将它们飞速显示。
其后,当从帧缓冲器1读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P52的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。
在已经在第一时间显示当前缓冲区域的最低指数锚帧P79之后,在解码对于访问下一GOP必需的锚图像时可将其重复显示为暂停图像。
当从帧缓冲器1再次读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P55的数据并将其解码,并在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P58的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。当从帧缓冲器1再次读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P61的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P64的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。当从帧缓冲器1再次读取解码图像P79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P67的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取解码图像P79并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B68和B69的数据并将它们分配给或存储在图像B86/B87已被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P70的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。当从帧缓冲器1再次读取解码图像P79并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B71和B72的数据并将它们分配给或存储在编码图像B83/B84已被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P73的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取图像P79并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B74和B75的数据并将它们分配给或存储在编码图像B80/B81已被提前从其读取的代码缓冲器,即代码缓冲器#2中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P76的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。
接下来,使用图像P79和P76从代码缓冲器#1解码图像B78和B77,并且将它们飞速显示。其后,当从帧缓冲器2读取解码图像P76并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P46的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
接下来,使用图像P76和P73从代码缓冲器#2解码图像B75和B74,并且使用相应的比特流指数信息项BSII将它们飞速显示。其后,当从帧缓冲器3读取解码图像P73并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P49的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像P73和P70从代码缓冲器#3解码图像B72和B71,并且使用相应的比特流指数信息项BSII将它们飞速显示。
其后,当从帧缓冲器4读取解码图像P70并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P52的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
在已经在第一时间显示当前缓冲区域的最低指数锚帧P70之后,在解码对于访问下一GOP必需的锚图像时可将其重复显示为暂停图像。
当从帧缓冲器4再次读取图像P70并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P55的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。当从帧缓冲器4再次读取图像P70并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P58的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。当从帧缓冲器4再次读取图像P70并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B59和B60的数据并将它们分配给或存储在编码图像B71/B72已被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P61的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。当从帧缓冲器4再次读取图像P70并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B62和B63的数据并将它们分配给或存储在编码图像B74/B75已被提前从其读取的代码缓冲器,即代码缓冲器#2中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P64的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
当从帧缓冲器4再次读取图像P70并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B65和B66的数据并将它们分配给或存储在编码图像B77/B78已被提前从其读取的代码缓冲器,即代码缓冲器#1中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P67的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。
接下来,使用图像P70和P67从代码缓冲器#4解码图像B69和B68,并且将它们飞速显示。其后,当从帧缓冲器3读取解码图像P67并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P46的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。
相应地以反向对下一缓冲区域重复这种处理。然而,因为锚图像号码、帧缓冲器号码和代码缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序。
针对图8中的MPEG-2GOP断开链接结构的反向解码和逆向重放处理,可使用完整的一组用于I和P图像的帧缓冲器。断开链接GOP意味着GOP不是以I图像开始而是以B图像开始,针对其的预测需要从相邻GOP访问锚图像,即,GOP是开放的GOP。在当前GOP中的最后锚图像之后,随后的GOP(反向)以该随后GOP的第一B图像开始。再次说明,对于当前GOP结构,“完整的”意味着解码器具有每一锚帧自己的帧缓冲器加上用于背景解码的备用帧缓冲器,允许正常速度逆向重放。根据本发明,针对这种断开链接GOP的反向解码,不需要更多额外的帧缓冲器。然而,与图5的处理相比需要附加的比特流缓冲器。否则,B图像的背景解析将覆写解码处理仍然需要的信息。对于解码图像B2和B1需要代码缓冲器#1,并且需要分离的比特流缓冲器以包括图像B10-1和B11-1。
对GOP的解码以对当前GOP的锚图像I3、P6、P9和P12解码和将它们分别初始存储在帧缓冲器1至4(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。将该GOP的B图像初始地存储在相应的代码缓冲器#1至#4中,即,比特流缓冲器BSBUF的可识别区域中。
其后,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向的下一GOP)的图像I3-1的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器5中。当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B1-1和B2-1的数据并将它们分配给或存储在代码缓冲器#5中时,预先解码的图像P12被从帧缓冲器4读取并显示。其后,从代码缓冲器#4解码图像B11和B10,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P6-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器4中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B4-1和B5-1的数据并将它们分配给或存储在图像B11和B10正好被提前从其读取的代码缓冲器,即代码缓冲器#4中时,图像P9被从帧缓冲器3读取并显示。其后,从代码缓冲器#3解码图像B8和B7,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P9-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B7-1和B8-1的数据并将它们分配给或存储在图像B8和B7正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,图像P6被从帧缓冲器2读取并显示。其后,从代码缓冲器#2解码图像B5和B4,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自于先前GOP的图像P12-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B10-1和B11-1的数据并将它们分配给或存储在图像B5和B4正好被提前从其读取的代码缓冲器,即代码缓冲器#2中时,图像I3被从帧缓冲器1读取并显示。其后,从代码缓冲器#1解码图像B2和B1,并使用相应的比特流指数信息项BSII将它们飞速显示。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码、帧缓冲器号码和代码缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码和列“解析”中示出的代码缓冲器号码被相应地重新排序,即,在列“显示”中从“2”到“5”运行,并且在列“解码”中从“1”到“4”运行等。相应地,使用的代码缓冲器号码被重新排序。
一般来说,直到到达当前GOP的开始,才使用在处理过程中存储在所述专用的图像缓冲器中的解码锚图像中剩下的一些并使用相应散布的非锚图像连续对当前GOP的剩余图像的播放或显示,因此至少重复一次对当前GOP中的至少两幅解码锚图像的播放或显示,以便获得可用的解码处理时间来重复解码不属于当前图像组的最后解码的锚图像组的当前GOP的锚图像,其中,执行对当前GOP的播放或显示,以便当结束该播放或显示时,将被播放或显示的随后的GOP的相应的解码锚图像被再次存储在所述的专用图像缓冲器FRBUF中。
针对图9中的MPEG-2GOP断开链接结构的反向解码和逆向重放处理,相对于在图8的实施例中所需的缓冲器数量,可使用减少的数量的用于I和P图像的帧缓冲器和减少的数量的用于B图像的代码缓冲器,允许近似正常速度的逆向重放。图9的实施例使图6的实施例适于断开链接GOP结构。如图6中那样,还可将每一GOP不可避免的暂停分为两部分(未描述)。
对GOP的解码以对当前GOP的锚图像I3、P6、P9和P12解码和将P6、P9和P12分别初始存储在帧缓冲器1至3(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。将该GOP的B图像B7至B11初始地存储在相应的代码缓冲器#1和#2中,即,比特流缓冲器BSBUF的可识别区域中,并将它们解析以产生比特流指数信息项BSII。
其后,从产生(或使用,因为对于属于相同GOP的B1、B2、I3、B4、B5和B6,可从先前GOP解析中使用BSII)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像I3的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器4中。当解码图像I3时,预先解码的图像P12被从帧缓冲器3读取并显示,并且在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析图像B1和B2的数据,并将它们分配给或存储在代码缓冲器#3中。其后,从代码缓冲器#2解码图像B11和B10,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生或使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P6的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器3中时,并且当在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B4和B5的数据并将它们分配给或存储在图像B11和B10正好被提前从其读取的代码缓冲器,即代码缓冲器#2中时,图像P9被从帧缓冲器2读取并显示。其后,从代码缓冲器#1解码图像B8和B7,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向的下一GOP)的图像I3-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器2中时,图像P6被从帧缓冲器1读取并显示。其后,从代码缓冲器#2解码图像B5和B4,并使用相应的比特流指数信息项BSII将它们飞速显示。
接下来,当从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P6-1的数据并使用BSII将其解码、并在处理过程中将其存储在帧缓冲器1中时,图像I3被从帧缓冲器4读取并显示。
其后,当从帧缓冲器4再次读取图像I3并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B7-1和B8-1的数据并将它们分配给或存储在图像B5和B4已被提前从其读取的代码缓冲器,即代码缓冲器#1中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P9-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。
接下来,当从帧缓冲器4再次读取图像I3并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像B10-1和B11-1的数据并将它们分配给或存储在代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P12-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。其后,从代码缓冲器#3解码图像B2和B1,并使用相应的比特流指数信息项BSII将它们飞速显示。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码/帧缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序。
图10中描述的MPEG-4-AVC GOP结构还包括B存储的图像Bs作为锚帧。当使用B图像作为锚帧时,其被存储到并保持在帧缓冲器中,并且不能被直接解码(即,飞速)以用于显示。有利的是,尽管需要用于Bs图像的帧缓冲器,但是“完整的”(即,存储GOP的全部I和P图像)帧缓冲器组加上备用缓冲器能够进行正常速度的逆向重放。除了该备用帧缓冲器之外不需要更多的帧缓冲器。对GOP的解码以对当前GOP的锚图像I1、P5、P9、P13、P17、P21和P25解码和将它们分别初始存储在帧缓冲器1至7(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。仅将备用的或额外的缓冲器8用于在中间处理过程中存储Bs图像。将GOP的Bs和B图像初始地存储在相应的代码缓冲器#1至#6中,即,比特流缓冲器BSBUF的可识别区域中,并将它们解析以产生比特流指数信息项BSII。
其后,当从帧缓冲器7读取解码图像P25并将其显示时,从代码缓冲器#6提取图像Bs23并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P25和Bs23从代码缓冲器#6解码图像B24,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs23并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(反向的下一GOP)图像I1-1的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器7中。接下来,使用图像Bs23和P21从代码缓冲器#6解码图像B22,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器6读取解码图像P21并将其显示时,从代码缓冲器#5提取图像Bs19并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P21和Bs19从代码缓冲器#5解码图像B20,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs19并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs3-1、B2-1和B4-1的数据并将它们分配给或存储在图像Bs23、B22和B24正好被提前从其读取的代码缓冲器,即代码缓冲器#6中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P5-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器6中。接下来,使用图像Bs19和P17从代码缓冲器#5解码图像B18,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器5读取解码图像P17并将其显示时,从代码缓冲器#4提取图像Bs15并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P17和Bs15从代码缓冲器#4解码图像B16,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs15并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs7-1、B6-1和B8-1的数据并将它们分配给或存储在图像Bs19、B18和B20正好被提前从其读取的代码缓冲器,即代码缓冲器#5中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P9-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器5中。接下来,使用图像Bs15和P13从代码缓冲器#4解码图像B14,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器4读取解码图像P13并将其显示时,从代码缓冲器#3提取图像Bs11并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P13和Bs11从代码缓冲器#3解码图像B12,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs11并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs11-1、B10-1和B12-1的数据并将它们分配给或存储在图像Bs15、B14和B16正好被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器4中。接下来,使用图像Bs11和P9从代码缓冲器#3解码图像B10,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P9并将其显示时,从代码缓冲器#2提取图像Bs7并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P9和Bs7从代码缓冲器#2解码图像B8,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs7并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs15-1、B14-1和B16-1的数据并将它们分配给或存储在图像Bs11、B10和B12正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P17-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs7和P5从代码缓冲器#2解码图像B6,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P5并将其显示时,从代码缓冲器#1提取图像Bs3并将其解码,并且将其存储在备用帧缓冲器8中。接下来,使用图像P5和Bs3从代码缓冲器#1解码图像B4,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器8读取解码图像Bs3并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs19-1、B18-1和B20-1的数据并将它们分配给或存储在图像Bs7、B6和B8正好被提前从其读取的代码缓冲器,即代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P21-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs3和I1从代码缓冲器#1解码图像B2,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器1读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs23-1、B22-1和B24-1的数据并将它们分配给或存储在图像Bs3、B2和B4正好被提前从其读取的代码缓冲器,即代码缓冲器#1中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P25-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在Bs帧缓冲器8中。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码、帧缓冲器号码和代码缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码和列“解析”中示出的代码缓冲器号码被相应地重新排序。
在图11a和11b中描述的MPEG-4-AVC GOP结构与图10中所示相同。然而,不是使用“完整的”一组帧缓冲器加上一个备用缓冲器来执行解码,而是仅使用减少的一组帧缓冲器(在此例中为4个),并且在根据图11a的实施例中加上一个备用缓冲器和一个Bs帧缓冲器,或在根据图11b的实施例中仅加上一个Bs帧缓冲器。
该处理的原理与根据图6和图9的实施例的处理相类似,但是由于Bs图像的使用,所以将考虑特殊的特点。可通过再次使用GOP锚帧总数的一半的整数值那么多的帧缓冲器来实现在根据图11a在右侧列中将不可避免的暂停分为若干部分的优点。有利的是,如果根据图11a在右侧列的实施例中提供更多的比特流缓冲器(代码缓冲器#5),则可以与等距光栅相同的方式来实现将暂停分开。在根据图11的实施例中,可实现近似的实时逆向重放。
在图11a的左侧列中,对当前GOP的解码以对当前GOP的锚图像I1、P5、P9、P13、P17、P21和P25解码和将锚图像P13、P17、P21和P25分别初始存储在帧缓冲器1至4(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。仅将Bs图像缓冲器6用于在中间处理过程中存储Bs图像。将GOP的Bs图像Bs11至Bs23和B图像B10至B24初始地存储在相应的代码缓冲器#1至#4中,即,比特流缓冲器BSBUF的可识别区域中,并将它们解析以产生比特流指数信息项BSII。
其后,当从帧缓冲器4读取解码图像P25并将其显示时,从代码缓冲器#4提取图像Bs23并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P25和Bs23从代码缓冲器#4解码图像B24,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs23并将其显示时,从产生(或使用,因为对于属于相同GOP的I1、B2、Bs3、B4、P5、B6、Bs7、B8和P9,可从先前GOP解析中使用BSII)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像I1的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在备用帧缓冲器5中。接下来,使用图像Bs23和P21从代码缓冲器#4解码图像B22,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P21并将其显示时,从代码缓冲器#3提取图像Bs19并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P21和Bs19从代码缓冲器#3解码图像B20,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs19并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs3、B2和B4的数据并将它们分配给或存储在图像Bs23、B22和B24正好被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P5的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs19和P17从代码缓冲器#3解码图像B18,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P17并将其显示时,从代码缓冲器#2提取图像Bs15并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P17和Bs15从代码缓冲器#2解码图像B16,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs15并将其显示时,并且当在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs7、B6和B8的数据并将它们分配给或存储在图像Bs19、B18和B20正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P9的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs15和P13从代码缓冲器#2解码图像B14,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器1读取解码图像P13并将其显示时,从代码缓冲器#1提取图像Bs11并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P13和Bs11从代码缓冲器#1解码图像B12,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs11并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向的下一GOP)的图像I1-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs11和P9从代码缓冲器#1解码图像B10,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P9并将其显示时,从代码缓冲器#3提取图像Bs7并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P9和Bs7从代码缓冲器#3解码图像B8,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs7并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P5-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,使用图像Bs7和P5从代码缓冲器#3解码图像B6,并且将其飞速显示。
其后,当从帧缓冲器4读取解码图像P5并将其显示时,从代码缓冲器#4提取图像Bs3并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P5和Bs3从代码缓冲器#4解码图像B4,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs3并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P9-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs3和I1从代码缓冲器#4解码图像B2,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从备用帧缓冲器5读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs11-1、B10-1和B12-1的数据并将它们分配给或存储在代码缓冲器#1中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
其后,当再次从备用帧缓冲器5读取图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs15-1、B14-1和B16-1的数据并将它们分配给或存储在代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P17-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。
接下来,当再次从备用帧缓冲器5读取图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs19-1、B18-1和B20-1的数据并将它们分配给或存储在代码缓冲器#3中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P21-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。
其后,当再次从备用帧缓冲器5读取图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs23-1、B22-1和B24-1的数据并将它们分配给或存储在代码缓冲器#4中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P25-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。
在图11a的右侧3列中描述的处理方案如同在在图11a的左侧3列中的那样开始,直到对图像P5的解码和显示图像Bs19。然而,将用于图像Bs3、B2和B4的数据分配给或存储在额外代码缓冲器#5中。
接下来,当从产生(或使用,因为对于属于相同GOP的B6、Bs7、B8和P9,可从先前GOP解析中使用BSII)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P9的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中时,并且当在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs7、B6和B8的数据并将它们分配给或存储在图像Bs23、B22和B24已经被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从Bs帧缓冲器6再次读取图像Bs19并将其显示。接下来,使用图像Bs19和P17从代码缓冲器#3解码图像B18,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P17并将其显示时,从代码缓冲器#2提取图像Bs15并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P17和Bs15从代码缓冲器#2解码图像B16,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs15并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像I1-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs15和P13从代码缓冲器#2解码图像B14,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器1读取解码图像P13并将其显示时,从代码缓冲器#1提取图像Bs11并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P13和Bs11从代码缓冲器#1解码图像B12,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs11并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向的下一GOP)的图像P5-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,当从Bs帧缓冲器6再次读取解码图像Bs11并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P9-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器中。接下来,使用图像Bs11和P9从代码缓冲器#1解码图像B10,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P9并将其显示时,从代码缓冲器#4提取图像Bs7并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P9和Bs7从代码缓冲器#4解码图像B8,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs7并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs11-1、B10-1和B12-1的数据并将它们分配给或存储在代码缓冲器#1中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,使用图像Bs7和P5从代码缓冲器#4解码图像B6,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器4读取解码图像P5并将其显示时,从代码缓冲器#5提取图像Bs3并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P5和Bs3从代码缓冲器#5解码图像B4,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs3并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs15-1、B14-1和B16-1的数据并将它们分配给或存储在代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P17-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,当从Bs帧缓冲器6再次读取图像Bs3并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs19-1、B18-1和B20-1的数据并将它们分配给或存储在代码缓冲器#3中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P21-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs3和I1从代码缓冲器#5解码图像B2,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从备用帧缓冲器5读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs23-1、B22-1和B24-1的数据并将它们分配给或存储在代码缓冲器#4中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P25-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。
在根据图11b的实施例中,没有使用备用帧缓冲器。对GOP的解码以对当前GOP的锚图像I1、P5、P9、P13、P17、P21和P25解码和将锚图像P13、P17、P21和P25分别初始存储在帧缓冲器1至4(FRBUF)中来开始。这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。仅将Bs图像缓冲器5用于在中间处理过程中存储Bs图像。将GOP的Bs图像Bs11至Bs23和B图像B 10至B24初始地存储在相应的代码缓冲器#1至#4中,即,比特流缓冲器BSBUF的可识别区域中,并将它们解析以产生比特流指数信息项BSII。
其后,当从帧缓冲器4读取解码图像P25并将其显示时,从代码缓冲器#4提取图像Bs23并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P25和Bs23从代码缓冲器#4解码图像B24,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs23并将其显示时,从产生(或使用,因为对于属于相同GOP的I1、B2、Bs3、B4、P5、B6、Bs7、B8和P9,可从先前GOP解析中使用BSII)相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像I1的数据并且使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs23和P21从代码缓冲器#4解码图像B22,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P21并将其显示时,从代码缓冲器#3提取图像Bs19并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P21和Bs19从代码缓冲器#3解码图像B20,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs19并将其显示时,并且当在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs3、B2和B4的数据并将它们分配给或存储在图像Bs23、B22和B24正好被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P5的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs19和P17从代码缓冲器#3解码图像B18,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P17并将其显示时,从代码缓冲器#2提取图像Bs15并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P17和Bs15从代码缓冲器#2解码图像B16,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs15并将其显示时,并且当在使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs7、B6和B8的数据并将它们分配给或存储在图像Bs19、B18和B20正好被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用或产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P9的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs15和P13从代码缓冲器#2解码图像B14,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器1读取解码图像P13并将其显示时,从代码缓冲器#1提取图像Bs11并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P13和Bs11从代码缓冲器#1解码图像B12,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs11并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP(即,反向的下一GOP)的图像I1-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,使用图像Bs11和P9从代码缓冲器#1解码图像B10,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P9并将其显示时,从代码缓冲器#3提取图像Bs7并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P9和Bs7从代码缓冲器#3解码图像B8,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs7并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P5-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs7和P5从代码缓冲器#3解码图像B6,并且将其飞速显示。
其后,当从帧缓冲器3读取解码图像P5并将其显示时,从代码缓冲器#4提取图像Bs3并将其解码,并且将其存储在Bs帧缓冲器5中。接下来,使用图像P5和Bs3从代码缓冲器#4解码图像B4,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器5读取解码图像Bs3并将其显示时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P9-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs3和I1从代码缓冲器#4解码图像B2,并且将其飞速显示。
其后,当从帧缓冲器4读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs11-1、B10-1和B12-1的数据并将它们分配给或存储在代码缓冲器#1中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P13-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
其后,当再次从帧缓冲器4读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs15-1、B14-1和B16-1的数据并将它们分配给或存储在代码缓冲器#2中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P17-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。
接下来,当再次从帧缓冲器4读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs19-1、B18-1和B20-1的数据并将它们分配给或存储在代码缓冲器#3中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P21-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。
其后,当再次从帧缓冲器4读取解码图像I1并将其显示时,并且当在产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs23-1、B22-1和B24-1的数据并将它们分配给或存储在代码缓冲器#4中时,从产生相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取来自先前GOP的图像P25-1的数据并使用BSII将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。
以反向(即,相对于正向的先前GOP)对下一GOP重复这种处理。然而,因为锚图像号码/帧缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码被相应地重新排序。
在图12中描述了具有88帧的长MPEG-4-AVC B存储的GOP。如同图7中那样使用快捷帧缓冲器。通过选择灵活的或方便的锚帧来存储在快捷缓冲器中,可缩短在GOP的逆向重放期间必需但令人不快的一个暂停或多个暂停。
对GOP的解码以对当前GOP的锚图像解码和将位于当前GOP的末尾的初始缓冲区域(B74至B89)的锚图像P77、P81、P85和P89分别初始存储在帧缓冲器1至4(FRBUF)中来开始。这种通过GOP进行的第一或初始解码优选地包括针对存储在缓冲器BSINDB中的整个GOP产生相应的比特流指数信息项BSII。
根据本发明,因此将位于GOP的大约中间的解码锚帧(在此例中为P37)初始存储在额外或快捷帧缓冲器5中。通过使这种锚帧可用,可缩短在对与初始缓冲区域相邻的缓冲区域(在此例中为B58至P73)的所需锚帧(P41至P73)进行再次解码时出现的不可避免但令人不快的一个暂停或多个暂停。此额外的帧缓冲器促进了快捷,因为其允许从该位置而不是从GOP的最开始对该GOP的锚帧重新开始解码。以位于在GOP显示时间中的一个位置的GOP的解码图像填充快捷帧缓冲器是有利的,该位置是GOP开始和其它缓冲解码锚帧间的时间段的一半或大约一半。在通过GOP进行初始的或第一锚帧解码期间初始地填充快捷帧缓冲器。当在反向显示处理期间已经估计了快捷图像(P37)自身时,可再次产生可用的帧缓冲器之外的另一快捷帧缓冲器,为了快捷而选择这种位于或大约位于从GOP开始到可用的缓冲锚帧的显示时间的一半的锚帧,不包括已被显示的GOP的图像。
这些解码步骤未在列“解码”中描述,但是将排列在列“解码”之前(即,在图中为之上)。仅将Bs图像缓冲器6用于在中间处理过程中存储Bs图像。将GOP的Bs图像Bs75至Bs87和B图像B74至B88初始地存储在相应的代码缓冲器#1至#4中,即,比特流缓冲器BSBUF的可识别区域中。
其后,当从帧缓冲器4读取解码图像P89并将其显示时,从代码缓冲器#4提取图像Bs87并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P89和Bs87从代码缓冲器#4解码图像B88,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs87并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P41的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs87和P85从代码缓冲器#4解码图像B86,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P45并将其显示时,从代码缓冲器#3提取图像Bs83并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P85和Bs83从代码缓冲器#3解码图像B84,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs83并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P45的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs83和P81从代码缓冲器#3解码图像B82,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P81并将其显示时,从代码缓冲器#2提取图像Bs79并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P81和Bs79从代码缓冲器#2解码图像B80,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs79并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P49的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs79和P77从代码缓冲器#2解码图像B78,并且使用相应的比特流指数信息项BSII将其飞速显示。其后,当从帧缓冲器1读取解码图像P77并将其显示时,从代码缓冲器#1提取图像Bs75并将其解码,并且将其存储在Bs帧缓冲器6中。
在第一时间已经显示当前缓冲区域的最低指数锚帧P77之后,在解码对于访问下一GOP必需的锚图像时可将其重复显示为暂停图像。
当从帧缓冲器1再次读取图像P77并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P53的数据并将其解码,并在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取图像P77并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P57的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。当从帧缓冲器1再次读取图像P77并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P61的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取图像P77并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs63、B62和B64的数据并将它们分配给或存储在图像Bs87、B86和B88已被提前从其读取的代码缓冲器,即代码缓冲器#4中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P65的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。当从帧缓冲器1再次读取图像P77并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs67、B66和B68的数据并将它们分配给或存储在图像Bs83、B82和B84已被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P69的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。当从帧缓冲器1再次读取图像P77并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs71、B70和B72的数据并将它们分配给或存储在图像Bs79、B78和B80已被提前从其读取的代码缓冲器,即代码缓冲器#2中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P73的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像P77和Bs75从代码缓冲器#1解码图像B76,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像P75并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P41的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,使用图像Bs75和P73从代码缓冲器#1解码图像B74,并且使用相应的比特流指数信息项BSII将其飞速显示。其后,当从帧缓冲器2读取解码图像P73并将其显示时,从代码缓冲器#2提取图像Bs71并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P73和Bs71从代码缓冲器#2解码图像B72,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs71并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P45的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。接下来,使用图像Bs71和P69从代码缓冲器#2解码图像B70,并且使用相应的比特流指数信息项BSII将其飞速显示。其后,当从帧缓冲器3读取解码图像P69并将其显示时,从代码缓冲器#3提取图像Bs67并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P69和Bs67从代码缓冲器#3解码图像B68,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs67并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P49的数据并将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。接下来,使用图像Bs67和P65从代码缓冲器#3解码图像B66,并且使用相应的比特流指数信息项BSII将其飞速显示。其后,当从帧缓冲器4读取图像P65并将其显示时,从代码缓冲器#4提取图像Bs63并将其解码,并且将其存储在Bs帧缓冲器6中。
接下来,当从帧缓冲器4再次读取图像P65并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs51、B50和B52的数据并将它们分配给或存储在图像Bs67、B66和B68已被提前从其读取的代码缓冲器,即代码缓冲器#3中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P53的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器2中。
其后,当从帧缓冲器4再次读取图像P65并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs55、B54和B56的数据并将它们分配给或存储在代码缓冲器#3中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P57的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器1中。
接下来,当从帧缓冲器4再次读取图像P65并将其显示时,并且当在使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF中解析用于图像Bs59、B58和B60的数据并将它们分配给或存储在代码缓冲器#1中时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P61的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。于是,使用图像P65和Bs63从代码缓冲器#4解码图像B64,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像P63并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P41的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs63和P61从代码缓冲器#1解码图像B62,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器3读取解码图像P61并将其显示时,从代码缓冲器#1提取图像Bs59并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P61和Bs59从代码缓冲器#1解码图像B60,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs59并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P45的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器3中。接下来,使用图像Bs59和P57从代码缓冲器#1解码图像B58,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器1读取解码图像P57并将其显示时,从代码缓冲器#2提取图像Bs55并将其解码,并且将其存储在Bs帧缓冲器6中。接下来,使用图像P57和Bs55从代码缓冲器#2解码图像B56,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从Bs帧缓冲器6读取解码图像Bs55并将其显示时,从使用相应的比特流指数信息项BSII的比特流缓冲器BSBUF解析/读取图像P49的数据并且将其解码,并且在中间处理过程中将其存储在帧缓冲器4中。接下来,使用图像Bs55和P53从代码缓冲器#2解码图像B54,并且使用相应的比特流指数信息项BSII将其飞速显示。
其后,当从帧缓冲器2读取解码图像P53并将其显示时,从代码缓冲器#3提取图像Bs51并将其解码,并且将其存储在Bs帧缓冲器6中。
相应地以反向对随后的缓冲区域重复这种处理。然而,因为锚图像号码、帧缓冲器号码和代码缓冲器号码已经改变,所以列“显示”和“解码”中示出的帧缓冲器号码和列“解析”中示出的代码缓冲器号码被相应地重新排序。
根据存储在其中或从它们中读取数据的类型给出帧缓冲器、备用帧缓冲器、Bs帧缓冲器和代码缓冲器号码是例子,并且能够根据需要而重新编号。
本发明可被用于在与MPEG视频结构相类似的任一GOP结构中排列的数字视频数据的逆向重放,例如,用于存储在蓝光ROM或RAM盘上或DVD盘上存储的视频序列。