同步双向帧的产生及其使用转让专利

申请号 : CN201010114057.6

文献号 : CN101883268B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈锐霖伏长虹萧允治许伟林郑嘉雯刘雨火焰

申请人 : 香港应用科技研究院有限公司

摘要 :

本发明涉及同步双向帧的产生及其使用,包括一种可实施在一个装置上的数字视频处理方法,包括通过处理器在一个重建数字视频帧上执行变换110、量化121、去量化122和逆变换123以将一个具有分层B帧结构的数字视频比特流转换成一个具有修改的分层B帧结构的数字视频比特流。双向帧通过同步独立帧被用来作为接入点,以使在多视点编码视频里进行单视点访问和随机访问帧的应用成为可能。本发明也披露了改进的比特流切换方法。

权利要求 :

1.一种数字视频处理方法,包括:

依照运动补偿预测产生一个重建数字视频双向B帧;

在重建的数字视频帧上加入额外的变换、量化、去量化和逆变换来处理以产生包含主同步双向PSB帧的数字视频比特流;

在产生具有一个或多个主同步双向PSB帧的数字视频比特流的过程里建立重建图像的一个量化变换域信号,量化变换域信号被用来编码相应的同步独立SI帧或相应的辅同步双向SSB帧。

2.根据权利要求1所述的数字视频处理方法,其中:数字视频比特流是一个多视点视频或单视点视频。

3.根据权利要求2所述的数字视频处理方法,还包括:合并一个同步独立SI帧到该多视点视频或单视点视频内。

4.根据权利要求3所述的数字视频处理方法,还包括:通过同步独立SI帧在多视点视频里获得一个对应的主同步双向PSB帧,在多视点视频内提取一个单视点视频比特流,或通过同步独立SI帧在单视点视频里获得一个对应的主同步双向PSB帧,在单视点视频内提取一个单视点视频比特流。

5.根据权利要求4所述的数字视频处理方法,其中:多视点视频是MVC格式。

6.根据权利要求4所述的数字视频处理方法,其中:单视点视频比特流是H.264/AVC格式。

7.根据权利要求4所述的数字视频处理方法,还包括:将一个多视点视频标准的语法修改成一个单视点视频标准的语法。

8.根据权利要求7所述的数字视频处理方法,其中:一个单视点视频标准的语法是一个H.264/AVC的语法。

9.根据权利要求7所述的数字视频处理方法,其中:一个多视点视频标准的语法是一个MVC的语法。

10.根据权利要求1所述的数字视频处理方法,还包括:提供一个同步独立SI帧以通过一个相应主同步双向PSB帧访问数字视频内的一个帧。

11.根据权利要求1所述的数字视频处理方法,还包括:通过使用一个主同步双向PSB帧和一个辅同步双向SSB帧在两个或多个数字视频比特流之间进行切换。

12.一个数字视频处理装置,包括:至少一个处理器;和

至少一个存储器,其包括计算机程序代码;

该至少一个处理器和至少一个存储器和计算机程序代码被设置使得数字视频处理装置能够至少执行以下的步骤:依照运动补偿预测产生一个重建数字视频双向B帧;

在重建的数字视频帧上加入额外的变换、量化、去量化和逆变换来处理以产生包含主同步双向PSB帧的数字视频比特流;

在产生具有一个或多个主同步双向PSB帧的数字视频比特流的过程里建立重建图像的一个量化变换域信号,量化变换域信号被用来编码相应的同步独立SI帧或相应的辅同步双向SSB帧。

13.根据权利要求12所述的数字视频处理装置,其中:数字视频处理装置还产生一个同步独立SI帧,并合并此同步独立SI帧到数字视频比特流内。

14.根据权利要求13的数字视频处理装置的装置,其中:数字视频比特流是一个多视点视频或单视点视频。

15.根据权利要求14所述的数字视频处理装置,其中:数字视频处理装置通过同步独立SI帧在多视点视频内获得一个对应的主同步双向PSB帧,还在多视点视频内提取一个单视点视频比特流,或通过SI帧在单视点视频里获得一个对应的主同步双向PSB帧,在单视点视频内提取一个单视点视频比特流。

16.根据权利要求15所述的数字视频处理装置,其中:多视点视频是MVC格式。

17.根据权利要求15所述的数字视频处理装置,其中:单视点视频比特流是H.264/AVC格式。

18.根据权利要求15所述的数字视频处理装置,其中:数字视频处理装置还将一个多视点视频标准的语法修改成一个单视点视频标准的语法。

19.根据权利要求12所述的数字视频处理装置,其中:数字视频处理装置还通过同步独立SI帧和一个主同步双向PSB帧访问数字视频比特流内的一个帧。

20.根据权利要求12所述的数字视频处理装置,其中:数字视频处理装置还通过使用一个主同步双向PSB帧和一个辅同步双向SSB帧在两个或多个数字视频比特流之间进行切换。

说明书 :

同步双向帧的产生及其使用

技术领域

[0001] 本发明通常涉及视频处理,特别涉及视频编码和解码的方法和装置。更特别地,本发明涉及数字视频里一个新的帧类型,其使用双向帧。发明概述
[0002] 目前,视频通信变得越来越流行。人们无论身处何时何地通过何种网络都能够在所有类型的设备上欣赏到视频。因此,人们对视频通信的性能有更高的期望,如视频质量、分辨率、平滑度,但是网络或设备的限制如带宽却带来了挑战。视频编码的效率越高,越容易满足这些期望。Yun Q.Shi和Huifang Sun在“Image and video compression for multimediaengineering”:fundamentals,algorithms,and standards,(CRC Press,BocaRaton),c.2008;L.Hanzo等 在“Video compression and communications:frombasics to H.261,H.263,H.264,MPEG2,MPEG4 for DVB and HSDPA-styleadaptive turbo-transceivers”,(IEEE Press:J.Wiley & Sons,NJ),c.2007;以及Ahmet Kondoz在“Visual media coding and transmission”,(Wiley,UK),c.2009里描述了视频编码和视频压缩,在此其披露通过引用被结合到本发明。
[0003] 为了使运动矢量不仅能够参考过去帧而且参考将来帧,视频编码结合双向帧(B帧)。双向帧通过一个由前几个参考帧得来的预测算法(前向预测)或由后几个参考帧得来的预测算法(后向预测)进行压缩。每个双向帧采用至少两个参考帧,过去帧或将来帧,使用帧之间的任何相关性(即使过去帧没有相关性,但是仍有可能将来帧有相关性),并获得更好的编码效率。正常而言,双向帧不会充当其他帧的参考帧。换言之,其他帧不会依赖于双向帧。结果,B帧不会用于诸如随机访问和比特流切换的应用。
[0004] 最近,由H.264标准定义的编码方案,其使用一个分层双向帧结构,由于其编码效率和灵活性已经引起越来越多的注意。视频编码标准H.264在T.Wiegand,G.Sullivan,A.Luthra,“Draft ITU-T Recommendationand Final Draft International Standard of Joint Video Specification(ITU-T Rec.H.264|ISO/IEC 14496-10 AVC)”,document JVT-G050rl,8th meeting:Geneva,Switzerland,23-27 May 2003里有描述,在此其披露通过引用被结合到本发明。此编码标准里的方案提出一个编码结构,其使用双向帧作为参考帧。例如,当前的多视点视频编码标准已经采用分层双向帧结构作为其预测结构。如在此使用的“帧结构”可能是指不同类型的帧的序列作为编码器的输出,或一个包括这种帧的比特流。一个PSB帧结构是一个包括至少一个PSB帧的帧序列。多视点视频编码标准在A.Vetro,Y.Su,H.Kimata 和 A.Smolic,“Joint Draft 1.0 on Multiview Video Coding,”Doc.JVT-U209,Joint Video Team,Hangzhou,China,Oct.2006和A.Vetro,P.Pandit,H.Kimata和A.Smolic,“Joint draft 9.0 on multi-view video coding,”Doc.JVT-AB204,Joint Video Team,Hannover,Germany,July 2008里有描述,在此其披露通过引用被结合到本发明。一些多视点编码的软件验证模型也在A.Vetro,P.Pandit,H.Kimata和A.Smolic,“Joint Multiview Video Model(JMVM)6.0,”Doc.JVT-Y207,Joint Video Team,Shenzhen,China,Oct.2007和P.Pandit,A.Vetro和Y.Chen,“JMVM 8 software,”Doc.JVT-AA208,JointVideo Team,Geneva,CH,April.2008里有描述,在此其披露通过引用被结合到本发明。
[0005] 本发明利用这些广泛使用的双向帧作为各种应用的接入点,如多视点编码里单视点访问,将多视点视频编码(MVC)译码成高级视频编码(H.264/AVC比特流),比特流里的随机访问,比特流切换和容错。一个多视点视频比特流包含多个比特流,其中每个比特流表示一个视点。例如,这些多视点可能是在不同角度上摄取的一个画面的视频。
[0006] 多视点编码技术和结构在Y.-S.Ho和K.-J.Oh,″Overview ofMulti-view Video Coding,″in Systems,Signals and Image Processing 2007 and6th EURASIP Conference focused on Speed and Image Processing,Multimedia Communications and Services,14th International Workshop on,2007,pp.5-12,以及Merkle P.,Smolic A.,Muller K.和Weigand T.,“EfficientPrediction Structures for Multi-View Video Coding”,IEEE TRANSACTIONSON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,vol.17,issue11,pp 1461-1473,Nov.2007里有描述,在此其披露通过引用被结合到本发明。
[0007] 本发明提供一个新的帧类型,使能够在多视点视频内进行单视点访问。在此,新的帧类型被称为主同步双向帧(PSB)。主同步双向帧可以通过修改H.264/AVC标准的初始B帧类型而生成。修改初始B帧可以由一个改进的B帧编码器进行,例如,其中转换、量化、去量化和逆变换处理功能可以增加到标准的B帧编码器。从而,PSB帧类型可以由一个进来的原始数字视频信号而产生。PSB帧类型适用于对多视点视频内的锚定帧(anchor frame)进行编码,以实现快速视点访问和MVC到AVC译码。PSB帧类型也适用于替换分层B结构的H.264比特流内的更高等级的一些或所有B帧,以提供更加快速的帧访问。如在此使用的“等级”是指在解码顺序上的帧位置。更高等级的帧依靠较少的帧进行解码。
[0008] 本发明可以提供一个同步独立(SI)帧。每个SI帧不需要依赖其它帧而被编码和解码。优选地,每个PSB帧有一个对应的SI帧用于单视点访问。通过产生PSB帧,可以建立SI帧。在PSB帧编码器里的重建效率可以被使用作为对SI帧进行编码的输入。SI帧可以满足H.264/AVC标准的扩展档次的规范,并可以被设计成与比特流里的SP帧一起使用。SI帧可以被用来重建一个帧,与重建SP帧一样。优选地,SI帧是按照以下步骤进行编码:
首先,通过变换和量化SP帧或PSB帧的重建信号参数产生一个输出;第二,通过帧内预测对该输出进行编码。当SI帧被解码时,优选地,SI帧的图像质量等于对应SP帧的质量或对应PSB帧的质量,因为SI帧的编码重新使用了对应SP帧或PSB帧的重建信号参数。
[0009] 将SP和SI帧类型引入比特流在M.Karczewicz和R.Kurceren,“A Proposal for SP-frames”,document VCEG-L27,12th meeting,Eibsee,Germany,9-12 January,2001里有描述,在此其披露通过引用被结合到本发明。SP帧和SI帧的设计及其在不同比特率的比特流之间的预测帧上进行无缝切换的使用在M.Karczewicz和R.Kurceren,″The SP-and SI-FramesDesign for H.264/AVC,″IEEE TRANSACTIONS ON CIRCUITS ANDSYSTEMS FOR VIDEO TECHNOLOGY,vol.13,pp.637-644,July 2003里有描述,在此其披露通过引用被结合到本发明。提高SP帧编码效率在X.Sun,S.Li,F.Wu,J.Shen和W.Gao,″The improved SP frame coding techniquefor the JVT standard,″in International Conference on Image Processing 2003,pp.297-300 vol.2里有描述,在此其披露通过引用被结合到本发明。SP帧应用于无漂移切换在X.Sun,F.Wu,S.Li,G.Shen和W.Gao,″Drift-FreeSwitching of Compressed Video Bitstreams at Predictive Frames,″IEEETRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEOTECHNOLOGY,vol.16,pp.565-576,May 2006一文里有描述,在此其披露通过引用被结合到本发明。
[0010] 本发明还可以提供一个PSB帧和一个对应的SI帧用于多视点编码。从而使得能够进行MVC到AVC译码用于多视点视频。在多视点视频重播里的一个共同问题是漂移。一个具有PSB帧和对应SI帧的比特流能够减少漂移。此外,越少比特被传输和解码,使得处理时间减少,也就需要更低复杂性的解码器。
[0011] 本发明可以提供一个PSB帧以及一个对应的SI帧用于随机帧访问。随机访问的问题是成本高昂。例如,当分层B帧使用在一个H.264比特流里时,为了访问一个帧,当图像组(GOP)等于16的情况下,平均起来5个帧要求被解码。通过对一个有PSB帧的比特流进行编码,随机访问的成本会降低。例如,当分层B结构GOP等于16,在随机访问一个有PSB帧的H.264比特流时,将被处理的帧数目平均起来大约会节省40%。从而意味着,如果每个帧类型的解码时间相同,可以节省大约40%的解码时间。在常规的重播期间,PSB帧被解码,而SI帧被存储用于随机访问。
[0012] 本发明还提供一个次同步双向帧(SSB)。SSB帧从一个比特流产生,以与另一个比特流里的主同步双向帧(PSB)的图像质量匹配。图像质量的匹配可以用PSNR(峰值信噪比)表示。通过将SSB帧和PSB帧结合到一个比特流内,可以实现无漂移的比特流切换,尽管PSB帧和SSB帧是从两个不同参考帧而编码的。例如,一个移动设备可能正在以一个高比特率接收一个视频比特流。但是,随着移动设备外部的网络条件的变化,移动设备可以继续接收同一视频比特流,但是以一个低比特率。比特率的不匹配将导致视像质量漂移和降级。漂移的出现是因为视频比特流内的一些帧是基于前几个帧进行解码,如果出现不匹配,解码易出现错误,当错误逐渐累积的时候,这会变得更加恶化。提供PSB帧和SSB帧能够避免这种不匹配。
[0013] 本发明还提供几个PSB帧代替分层B帧结构的H.264比特流内的高等级B帧,以提供良好的容错性(error resilience)给差错恢复方法。如果PSB帧受差错影响,可以从其对应的SI帧恢复。这是因为每个PSB帧及其SI帧有完全相同的质量,一旦确定帧受到差错影响,通过提供SI帧用于进行解码,恢复相应的PSB帧是可能的。PSB帧的解码需要参考帧,但SI帧的解码不需要参考帧。SI帧通过解码器可被解码成PSB帧,而不需要参考其它帧。
[0014] 本发明可以提供装置来生成每个或任何上述帧类型,或生成一个数据结构,如一个合并了一个或多个上述帧类型的比特流。生成可以通过编码进行。本发明也可以提供装置来解码比特流。本发明可以通过电路来实施。在此使用的“电路”是指不限于硬件实施,不限于硬件和软件的组合,以及不限于以软件运行的电路,而不管该软件的物理呈现。软件包括固件。硬件包括单数和复数的处理器和存储器,不管是否合并在一个集成电路内。本发明可以实施为一个解码器芯片、一个编码器芯片或集成了这些芯片的装置。
[0015] 本发明可以是一个计算机程序产品,例如,在一个计算机可读媒质上的程序,利用计算机指令来执行在此披露的全部或部分方法。
[0016] 本发明可以是一个有编码和解码装置的系统,用于对在此披露的一个或多个帧类型进行编码和解码。
[0017] 本发明可以提供一个数据结构,如一个合并了一个或多个上述帧类型的比特流。比特流可以存储在一个物理数据存储媒质上,或作为一个信号进行传递。

附图说明

[0018] 参照以下附图,将详细描述本发明的方面和实施例,其中:
[0019] 图1A显示一个数字视频处理方法的流程图以提供一个具有PSB帧结构的视频比特流用于各种应用;
[0020] 图1B描述在多点图视频内的单视点访问;
[0021] 图2A描述在多视点视频内进行MVC到AVC译码;
[0022] 图2B描述在分层B帧结构内的随机访问;
[0023] 图3显示一个PSB帧编码器的模块图;
[0024] 图4显示一个PSB帧解码器的模块图;
[0025] 图5显示一个SSB帧编码器的模块图;
[0026] 图6显示一个SSB帧解码器的模块图;
[0027] 图7显示一个SI帧编码器的模块图;
[0028] 图8显示一个SI帧解码器的模块图;
[0029] 图9显示一个PSB帧编码器的变化形式的实施例;
[0030] 图10显示一个PSB帧解码器的变化形式的实施例。发明详述
[0031] 图1A显示一个数字视频处理方法的流程图,提供一个有PSB帧结构的视频比特流用于各种应用。图1A也显示了一个可选的最终步骤130:合并SI帧或SSB帧。该数字视频处理方法适用于在编码器上对一个数字视频进行编码,以及在解码器上对一个数字视频进行解码。在编码器上(如图3的例子所示),根据一个或多个之前重建的数字视频帧的输入,数字视频内的当前数字视频帧将通过一个处理器进行处理。例如,重建帧表示至少两个参考帧,一个来自之前帧,另一个来自将来帧。之前重建的数字视频帧包括前向预测和后向预测的帧。之前重建的数字视频帧存储在一个或多个缓冲器内。运动补偿是在之前重建的数字视频帧上执行,然后比较一个表示之前重建的数字视频帧的信号和当前数字视频帧,以获得两者之间的差异。该差异通过处理器被变换、量化、去量化和逆变换以提供一个逆变换输出。该逆变换输出被加入到一个表示之前重建的数字视频帧的信号里,以输出一个刚刚重建的数字视频帧。因此,一个重建的数字视频帧是通过一个运动补偿估计而获得。接着,处理器在重建的数字视频帧上执行变换110、量化121、去量化122和逆变换123,以将一个数字视频比特流转换成一个有PSB帧结构的数字视频比特流。变换110、量化121、和逆过程(122,123)是在重建的信号上执行以在产生具有一个或多个PSB帧的比特流的过程里建立重建图像的一个量化变换域信号(图3内的RDqs)。量化变换域信号(RDqs)被用来编码相应的SI帧或相应的SSB帧,其有与PSB帧相同的质量。只要使用相同的量化模块用于有PSB帧和相应SI帧或相应SSB帧的比特流,PSB帧和对应的SI帧,或者对应的SSB帧之间的重建质量将是相同的
[0032] 在解码器上,输入数据比特流是通过可变长度解码进行解码。解码结果被执行去量化和逆变换以提供一个逆变换输出。逆变换输出被加入到之前重建的数字视频帧,其被执行运动补偿以输出一个重建的数字视频帧。处理器在重建的数字视频帧上执行变换110、量化121、去量化122和逆变换123,将一个数字视频比特流转换成一个具有PSB帧结构的数字视频比特流。
[0033] 当该数字视频处理方法应用到一个多视点视频时,通过将一个SI帧合并到多视点视频比特流内,在解码器上通过处理器可以获取一个单视点视频比特流。多视点视频是MVC(多视点视频编码)格式。单视点视频是H.264/AVC(高级视频编码)格式。为了能够将一个多视点标准转换成一个H.264/AVC标准,多视点标准的语法被处理器修改成一个单视点标准。例如,MVC标准的语法通过处理器被修改成H.264/AVC标准的语法,使得一个H.264/AVC视频的解码器能够解码由本发明数字视频处理方法获取的单视点视频比特流。此外,在进行MVC到AVC的译码时,锚帧依照I-P-P-PSB的次序进行解码,从解码PSB帧获得的信号被用于解码相应的SI帧。AVC兼容的比特流是由SI帧和来自MVC比特流的初始非锚B帧组成。接入点比特流是指包含SI帧的比特流。在视点访问或随机访问的应用里,SI帧需要被编码,并被存储为一个额外的接入点比特流,即一个具有所有SI帧的比特流。通过将锚帧译码成I帧,一个将单视点MVC比特流译码成一个独立H.264比特流的方法,在Y.Chen,Y.-K.Wang和M.M.Hannuksela,″Support of lightweight MVC to AVC transcoding,″in JointVideo Team(JVT)of ISO/IEC MPEG & ITU-T VCEG(JVT-AA036)Geneva,CH,2008里有描述,在此其披露通过引用被结合到本发明。
[0034] 当该数字视频处理方法应用到一个具有分层B帧结构的数字视频比特流时,例如,一个H.264数字视频比特流,PSB帧和SI帧的使用允许随机访问在具有分层B帧结构的数字视频比特流内的帧。另外,当数字视频比特流有差错时,通过使用PSB帧和SI帧,很容易获取期望的帧。从而,数字视频比特流的容错性得以增强,因为能够独立于数字视频比特流内的错误帧而获得目标帧。SI帧不需要参考帧,而参考帧也可能出现错误。
[0035] 此外,该数字视频处理方法可用于比特流切换,例如将数字比特流切换为另一个有更低码率的数字视频比特流。在比特流切换期间,一个PSB帧与另一个视频比特流的解码器使用的SSB帧一起使用,以获得无差错的重建帧,从而获得无漂移的比特流切换。
[0036] PSB帧的嵌入取决于实际应用。在一个所述实施例里,PSB帧用于多视点视频内的锚帧,如图1B所示,以便进行视点访问和MVC到AVC的译码。多视点编码对8个视点进行编码,显示了T0和T8上的锚帧之间的时间增量T1,T2,T3...上的帧类型。显示有I,B,SI和PSB帧类型,b帧是一个B帧类型。为了方便描述,没有显示一个比特流里的所有帧,其中序列与一个之前帧相同。帧类型之间的箭头表示帧之间的参照关系。在此实施例里,在101里视点0的I帧是独立可获取的。通过使用视点0里的I帧和视点2内的PSB帧作为参考帧,可获取视点1内的PSB帧。通过使用视点0的I帧作为参考帧,可获取视点2的P帧。通过使用视点2里的P帧和视点4内的P帧作为参考帧,可获取视点3的PSB帧。通过使用视点2里的P帧作为参考帧,可获取视点4内的P帧。通过使用视点4里的P帧和视点6内的P帧作为参考帧,可获取视点5内的PSB帧,或通过使用SI帧111,可获取视点
5内的PSB帧。通过使用视点4内的P帧作为参考帧,可获取视点6内的P帧。通过使用视点6内的P帧作为参考帧,可获取视点7内的P帧。为了访问一个单视点如视点5106,视点
5106以提供一个PSB帧113的方式进行编码。与视点0 101、视点1 102、视点2 103、视点
3 104、视点4 105、视点6 107、视点7 108内的其它帧一起,PSB帧113成为锚比特流116的一部分。使用一个SI帧111(其对应PSB帧113),提供一个接入点访问视点5106。
[0037] 图2A描述了在多视点视频里进行MVC到AVC译码。在图2A的a部分,显示一个多视点视频比特流有I帧、B帧、b帧、P帧、PSB帧和I帧的帧类型。比特流201提供视点0的比特流。比特流202提供视点1的比特流。比特流203提供视点3的比特流。比特流
204提供视点4的比特流。比特流205提供视点5的比特流。比特流206提供视点6的比特流。比特流207提供视点7的比特流。但是,由于不同视点比特流的锚帧之间的依赖性(如箭头所示:远离帧的箭头表示该帧是箭头指向的其它帧的参考帧,如图1A所示),仅有视点0的比特流201可以被独立解码。即当期望有比特流从202到208时,其他比特流201到208的帧也会被需求。当在客户平台上仅有H.264/AVC解码器可用时(图中未显示),多视点视频比特流被译码成一个期望视点的独立的H.264比特流。例如,当客户平台使用H.264解码器对视点5 206进行解码时,在MVC里采用PSB帧和SI帧能够提供从MVC到AVC的有效译码。此外,SI帧211与视点5 206的B帧一起,用于新的比特流。通过一个视频译码的过程进一步修改MVC和AVC比特流语法之间的差异,可以产生一个独立的H.264/AVC比特流220,如图2A的b部分所示。视频译码在Al Bovik,Handbook of image andvideo processing,(Elsevier/Academic Press,Massachusetts),c.2005 andAshraf M.A.Ahmad,et al,Multimedia Transcoding in Mobile and WirelessNetworks,(Idea Group Inc(IGI),PA),c.2008里有描述,在此其披露通过引用结合到本发明。
[0038] 在嵌入PSB帧的另一个实施例里(未显示),PSB帧被放入到更高等级的分层B结构内。考虑到H.264比特流的编码效率,将通常由B帧占用的位置替换成PSB帧。在另一个实施例里(图中未显示),产生的PSB帧代替所有的B帧,但编码效率将会更低。如果不是所有的B帧都被PSB帧替换,编码效率得以优化,例如,PSB帧被嵌入在第一和第二等级的分层B结构内,以在提供随机访问和编码效率之间取得一个良好的平衡。
[0039] 图2B比较说明有PSB帧的分层B帧结构和没有PSB帧的分层B帧结构的随机访问,以及随机访问一个视点内一个帧的帧解码次序。一个常规分层B结构如图2B(a)所示,其中有几个等级的B帧。等级越高,就越少帧需要访问来解码帧。第一等级是T8(图2B内的最高等级),其参考T0和T16。第二等级是T4和T12。第三等级是T2,T6,T10和T14。通过在T8,T4和T12使用PSB帧代替常规分层B结构里的B帧,提议的解码结构有所改善,如图2B(b)所示。
[0040] 如图2B的a部分所示,在分层B帧结构的常规H.264比特流里,随机访问在比特流内的一个帧需要许多参考帧传送和解码。为了访问在时间T1 231上的帧,参考帧包括在时间T0上的I帧230、在时间T16上的B帧236、在时间T8上的B帧235、在时间T4上的B帧234、和在时间T2上的B帧232,以及在时间T1上的B帧231本身,它们将被传送和解码。通过将更高等级的分层B帧结构上的一些B帧替换成PSB帧,如图2B(b)部分所示,能够降低随机访问的成本。例如,与常规分层B帧结构比特流上的6个帧相比,在有PSB帧的分层B帧结构上,访问T1上的参考帧242需要解码4个帧,包括时间T0上的I帧241、时间T4上的PSB帧244(SI帧)、时间T2上的B帧243和时间T1上的B帧242。由于B帧是参照其它帧进行编码,为了解码一个B帧,需要首先获得那个B帧的参考帧。
[0041] 如图2B(b)所示,例如,访问T1上的帧242需要首先解码两个参考帧,包括:在时间T0上的I帧241和在时间T2上的B帧243。
[0042] 为了解码时间T2上的B帧243,需要解码B帧的两个参考帧,包括:在时间T0上的I帧241和在时间T4上的帧244(SI帧)。如果在T4使用PSB帧,我们能够解码对应的SI帧,而不是PSB帧。因此,总体而言,在时间T0,T4,T2和T1上的帧被解码用于访问T1上的帧242。
[0043] 相反,如图2B(a)所示,在T4使用B帧234。结果,我们首先需要解码它的参考帧:在T0和T8上的帧。而且,由于在时间T8上的帧是一个B帧,我们需要首先解码在时间T0和T16上的帧。在此情况下,在时间T0,T16,T8,T4,T2和T1上的帧依照解码次序进行解码。
[0044] 图3显示一个PSB帧编码器的模块图。PSB帧编码器对一个嵌有PSB帧的视频300进行编码。其包括一个前向帧缓冲器331以保留前向预测帧,以及一个后向帧缓冲器333以保留后向预测帧。在一个典型实施例里,PSB帧编码器由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行PSB帧编码器的功能。至少有一个存储器用来存储数据,并充当缓冲器。前向帧缓冲器331和后向帧缓冲器333的数字视频信号输出用于运动估计器(在附图里简称为ME)337里的运动估计和运动补偿器(在附图里简称为MC)335里的运动补偿。视频300被提供给运动估计器337以执行运动估计。运动估计器337的数字视频信号输出被提供给运动补偿器335以进行运动补偿。内插器341使用运动补偿器335的数字视频信号输出以进行插补,并提供一个内插的数字视频信号输出。
[0045] 前向帧缓冲器331和后向帧缓冲器333是特别用于产生B帧的。所以,当与P帧比较时,B帧有多个帧进行参考,因为有多个运动估计方向,如前向、后向和双向。
[0046] 内插数字视频信号输出和运动补偿器335的数字视频信号输出是一个预测数字视频信号PI。预测数字视频信号PI与视频300进行比较,视频300是一个原始数字视频信号OI。从原始数字视频信号OI减去预测数字视频信号,产生一个数字视频信号的误差EI。
[0047] EI=OI-PI
[0048] 接着,数字视频信号误差EI通过第一变换器311进行变换(在附图里为T),并通过第一量化器313以步长qp进行量化(在附图里为QP)。因此,比较是在像素域而不是频域进行。
[0049] 第一量化器313的数字视频信号输出记作EDqp。数字视频信号输出EDqp用于一个可变长度编码器(在附图里为VLC)350进行可变长度编码。连同多个参数如运动矢量(在附图里为fmv,bmv,统称为mv)和由运动估计器337得出的运动估计而计算出的模式,可变长度编码器350对第一量化器313的量化数字视频信号输出进行编码。可变长度编码器335的数字视频信号输出作为一个比特流在一个通道上传送。
[0050] 第一量化器313的量化数字视频信号输出也被提供到一个去量化器315,以步长qp进行去量化。在去量化之后,第一去量化器315的数字视频信号输出通过第一逆变换器317进行逆变换。逆过程在附图里通过上标-1表示。在逆变换之后,第一逆变换器317输出一个剩余数字视频信号EIdp。剩余数字视频信号EIdp是在像素域上,然后再与预测数字视频信号PI结合,以相同方式在解码器上产生一个重建帧RI(图4)。重建帧RI通过第二变换器321进行变换以输出一个数字视频信号RD。数字视频信号RD通过第二量化器323以步长qs进行量化而输出一个数字视频信号RDqs。数字视频信号RDqs通过第二去量化器
325以步长qs进行去量化而输出一个数字视频信号RDds。数字视频信号RDds通过第二逆变换器327进行逆变换而输出一个数字视频信号RIds。
[0051] 通过第二变换器321、第二量化器323、第二去量化器325和第二逆变换器327进行的第二组338的变换、量化和相应逆过程,用来准备PSB帧。如果仅准备B帧,不需要使用第二组的变换、量化和相应逆过程。产生PSB帧和B帧之间的差异就在于第二组338。有了第二组338,帧被编码作为PSB帧,而不是图2B所示初始结构的B帧,换言之,PSB帧取代B帧在比特流内。确定哪一个B帧被PSB帧代替则取决于实际应用。例如,在随机访问的应用里,只有较高等级的分层B帧,如图2B(b)内所示,被PSB帧代替。在其他实施例里,则有其它模式的替换。
[0052] 来自第二组338的变换、量化和相应逆过程的数字视频信号RIds输出被分别用作为前向帧缓冲器331和后向帧缓冲器333的输入。通常,当产生B帧时,这些缓冲器的输入是重建帧RI。
[0053] 图4显示了一个PSB帧解码器的模块图。它包括一个前向帧缓冲器431来保留用于前向预测的帧,以及一个后向帧缓冲器433来保留用于后向预测的帧。前向帧缓冲器431和后向帧缓冲器433的数字视频信号输出用于运动补偿器435进行运动补偿。比特流400被提供给运动估计器337,以进行运动估计。在一个典型实施例里,PSB帧解码器是由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行PSB帧解码器的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0054] 比特流400由一个可变长度解码器401进行解码。在通过可变长度解码器401进行可变长度解码之后,来自可变长度解码器401的参数,如运动矢量和模式,被提供给运动补偿器435,而被解码的数字视频信号EDqp被提供给第一去量化器411。第一去量化器411对被解码的数字视频信号EDqp执行步长为qp的去量化。去量化器411的数字视频信号输出由第一逆变换器413进行逆变换。逆变换器413在执行逆变换之后提供一个数字视频信号输出EIdp。
[0055] 运动补偿器435的数字视频信号输出是一个预测数字视频信号PI。预测数字视频信号PI在像素域被添加到第一逆变换器413的数字视频信号输出EIdp以产生一个剩余数字视频信号RI:
[0056] RI=PI+EIdp
[0057] 剩余信号RI被输出到显示器,一个副本通过第二变换器421进行变换而输出一个数字视频信号RD。第二变换器421的数字视频信号RD通过第二量化器423进行步长为qs的量化而输出一个数字视频信号RDqs。来自第二量化器423的数字视频信号RDqs通过第二去量化器425进行步长为qs的去量化而输出一个数字视频信号RDds。数字视频信号RDds通过第二逆变换器427进行逆变换以输出一个数字视频信号RIds。
[0058] 从组428的变换、量化和相应逆过程输出的数字视频信号RIds被分别用作为前向帧缓冲器431和后向帧缓冲器433的输入。
[0059] 通过组428的第二变换器421、第二量化器423、第二去量化器425和第二逆变换器427进行的变换、量化和相应逆过程,提供了一个具有PSB帧的比特流。但是对于仅解码具有B帧的比特流,就不会有组428的变换、量化和相应逆过程。相反,缓冲器的输入是剩余信号RI。
[0060] 图5显示一个SSB帧编码器520的模块图。SSB编码器520的输入是由一个B帧编码器530提供,其也能够提供P帧,是一个P帧编码器。由B帧编码器530运动补偿的数字视频信号是一个预测数字视频信号PI1。预测数字视频信号PI1是到SSB编码器520的输入。预测数字视频信号PI1可以是插补的或不插补的。SSB编码器520使用一个变换器521以变换B帧编码器530的预测数字视频信号PI1,从而产生一个变换的数字视频信号。
该变换的数字视频信号通过量化器523进行步长为qs的量化,提供一个量化的数字视频信号PDqs1。在一个典型实施例里,SSB帧编码器520由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行SSB帧编码器520的功能。有至少一个存储器来存储数据,并充当缓冲器。
[0061] 由PSB帧编码器510产生的重建帧RI2,通过第二变换器513被变换成一个数字视频信号RD2,参照上述图3所示。数字视频信号RD2通过第二量化器515进行步长为qs的量化而输出一个数字视频信号RDqs2。数字视频信号RDqs2与量化的数字视频信号PDqs1比较以提供一个差值数字视频信号EDqs:
[0062] EDqs=RDqs2-PDqs1
[0063] 差值数字视频信号EDqs,与参数如运动矢量和帧间预测模式一起,被提供到SSB帧编码器的一个可变长度编码器525,以产生一个切换比特流。使用切换比特流,通过在解码器端解码切换比特流来实现无漂移切换。
[0064] 如图5所示,SSB帧是通过从RDqs2减去PDqs1而构建的,RDqs2和PDqs1都是在量化变换域内,如图5所示。在如图5所示的SSB帧编码器520里,EDqs=RDqs2-PDqs1,其提供SSB帧。
[0065] 图6显示一个SSB帧解码器的模块图。切换比特流600由一个可变长度解码器610进行处理。可变长度解码器610使用切换比特流600以提供运动矢量和模式到一个运动补偿器625。在进行可变长度解码之后,可变长度解码器610输出一个误差数字视频信号EDqs。
[0066] 利用运动矢量和模式信息,运动补偿器625使用来自前向帧缓冲器621和后向帧缓冲器623的数据执行运动补偿。运动补偿器625的数字视频信号输出通过变换器631进行变换,以提供一个预测数字视频信号PD。数字视频信号PD通过量化器633进行步长为qs的量化以提供一个数字视频信号输出PDqs1。
[0067] 量化器633的数字视频信号输出PDqs1被添加到来自可变长度解码器610的误差数字视频信号ED以提供一个合并的数字视频信号RDqs2:
[0068] RDqs2=EDqs+PDqs1
[0069] 合并的数字视频信号RDqs2通过去量化器611进行步长为qs的去量化,并随后通过一个逆变换器613进行逆变换。逆变换器613的数字视频信号输出被用作为一个PSB帧比特流内的一个PSB帧,用于切换到那个PSB帧比特流。由逆变换器613输出的数字视频信号RDqs2也被提供到前向帧缓冲器621和后向帧缓冲器623。从而确保在比特流切换时帧缓冲器内没有不匹配。
[0070] 如图6所述,PDqs1是由PD帧重建的,而PD帧与图5所示的SSB帧编码器520里使用的PD帧相同。在由RDqs2=EDqs+PDqs1获得RDqs2之后,通过去量化和逆变换RIds2-1 -1=T (Q (RDqs2))而获得RIds2。获得的RIds2基本上与从图5所示的SSB帧编码器520获得的RIds2相同。
[0071] 在一个典型实施例里,SSB帧解码器由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行SSB帧解码器的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0072] 图7显示一个SI帧编码器720的模块图。SI帧编码器720包括一个可变长度编码器722。可变长度编码器722有两个输入。一个输入是由PSB帧编码器710提供。PSB帧编码器通过第二变换器对其重建的视频进行变换,然后通过第二量化器在变换域内对重建的视频进行步长为qs的量化。该变换和量化的重建视频RDqs,与帧内预测模式的另一个输入一起,被输入到可变长度编码器722以产生一个接入点比特流。
[0073] 在一个典型实施例里,SI帧编码器720由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行SI帧编码器720的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0074] 图8显示一个SI帧解码器的模块图。可变长度解码器810在接入点比特流800上执行可变长度解码。可变长度解码器810的数字视频信号输出由去量化器821进行步长为qs的去量化,随后由逆变换器813进行逆变换以提供一个视频输出到显示器。该视频输出也被分别提供给前向帧缓冲器821和后向帧缓冲器823。
[0075] 在图7内的PSB帧编码器711基本上与图3所示的PSB帧编码器相同。如图4及其相应描述所示,在对图3编码的PSB帧进行解码之后,PSB帧的解码信号等于RIds=-1 -1 -1 -1T [Q (RDqs)],其中Q 和T 分别表示去量化和逆变换。同样,如图8及其相应描述所示,-1 -1
通过对图7内编码的SI帧进行解码,SI帧的解码信号也等于RIds=T [Q (RDqs)]。这样能够确切地保证PSB帧和相应SI帧之间的相同质量。
[0076] 在一个典型实施例里,SI帧解码器是由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行SI帧解码器的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0077] 图9显示一个由SI编码器提供访问的PSB帧编码器的变化形式的实施例。在此实施例里,SP帧编码器被改建为一个PSB帧编码器。视频900代表一个源数字视频信号OI。源数字视频信号OI通过第一变换器910进行变换。第一变换器910提供一个数字视频信号输出OD。通过在运动补偿器945的各个数字视频信号输出之间进行切换而产生一个预测数字视频信号PI2。运动补偿器945的各个数字视频信号输出包括有插补的数字视频信号和没有插补的数字视频信号。对于前向预测,帧是从前向帧缓冲器941获得。对于后向预测,帧是从后向帧缓冲器943获得。运动估计器946通过从前向帧缓冲器941或后向帧缓冲器943获得帧,而执行运动估计。运动估计器946从源数字视频信号OI获得一个前向运动矢量和一个后向运动矢量。使用来自运动估计器的数字视频信号输出,运动补偿器945对来自前向帧缓冲器941或后向帧缓冲器943的帧执行运动补偿。运动补偿器945的数字视频信号输出被提供作为有或没有插补的预测数字视频信号PI2。预测数字视频信号PI2通过第二变换器923进行变换而提供一个数字视频信号PD2。数字视频信号PD2通过第一量化器920进行步长为qs的量化而提供一个数字视频信号PDqs2。数字视频信号PDqs2通过去量化器921进行步长为qs的去量化而提供一个数字视频信号PDds2。在数字视频信号PDds2和数字视频信号PD2之间有一个切换。当切换到数字视频信号PDds2时,从第一变换器910的数字视频信号输出OD减去数字视频信号PDds2以提供一个数字视频信号ED2:
[0078] ED2=OD-PDds2
[0079] 当切换到数字视频信号PD2时,从第一变换器910的数字视频信号OD减去数字视频信号PD2,从而数字视频信号ED2变成:
[0080] ED2=OD-PD2
[0081] 数字视频信号ED2通过第二量化器913进行步长为qp的量化而提供一个数字视频信号EDqp2。和运动矢量MV和模式一起,数字视频信号EDqp2被可变长度编码器917编码而提供一个数字视频信号输出比特流。数字视频信号EDqp2通过去量化器915进行步长为qp的去量化而提供一个数字视频信号EDdp2。数字视频信号EDdp2被添加到数字视频信号PD2以提供一个重建数字视频信号RD2:
[0082] RD2=PD2+EDdp2
[0083] 重建数字视频信号RD2通过第三量化器931进行步长为qs的量化而提供一个数字视频信号RDqs2。数字视频信号RDqs2通过第三去量化器933进行步长为qs的去量化而提供一个数字视频信号RDds2。数字视频信号RDds2通过第一逆变换器935进行逆变换而提供一个数字视频信号RIds2。数字视频信号RIds2被提供给前向帧缓冲器941或后向帧缓冲器943。前向帧缓冲器941或后向帧缓冲器943的缓冲器配置是在编码之前进行。例如,如图2B(b)所示,在时间T8上的PSB 帧被解码之后,被解码的PSB帧存储在一个可解码的图像缓冲器内,其包含存储一个或多个帧的存储器空间。当在时间T4上的帧正在被解码时,在可解码的图像缓冲器内的时间T8上的被解码的PSB帧将移位到后向帧缓冲器943。当在T12上的帧正在被编码时,在可解码的图像缓冲器内的时间T8上的被解码的PSB帧将移位到前向帧缓冲器941。视频的缓冲器配置也在Jack,Keith,Videodemystified:a handbook for the digital engineer,(Newnes/Elsevier,Boston),c.2007里有描述,在此其披露通过引用结合到本发明。
[0084] 一个SI帧编码器被用来产生一个访问比特流,并与帧内预测模式一起作为输入,在来自第三量化器931的数字视频信号RDqs2上执行可变长度编码。可变长度编码是通过可变长度编码器950完成。
[0085] 在一个变化形式的实施例里,图9所示的PSB帧编码器和SI帧编码器是由至少一个处理器和至少一个包括计算机程序代码的存储器进行实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行PSB帧编码器和SI帧编码器的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0086] 图10显示一个PSB帧解码器的变化形式的实施例。在此实施例里,SP帧解码器被改建为一个PSB帧解码器。PSB帧的编码数字视频比特流是通过可变长度解码器1001进行解码。可变长度解码器1001输出一个数字视频信号EDqp2。数字视频信号EDqp2通过去量化器1010进行步长为qp的去量化以输出一个数字视频信号EDdp2。可变长度解码器1001也提供运动矢量和模式到一个运动补偿器1021用于执行运动补偿。运动补偿器计算一个预测数字视频信号PI2。预测数字视频信号PI2通过变换器1023进行数字视频信号变换。在数字视频信号变换之后,变换器1023输出一个数字视频信号PD2。数字视频信号PD2被添加到去量化器1010的数字视频信号EDdp2以提供一个数字视频信号RD2:
[0087] RD2=EDdp2+PD2
[0088] 第一逆变换器1040在数字视频信号RD2上执行逆变换,并输出一个重建帧RI2作为一个视频到显示器。数字视频信号RD2通过量化器1035执行步长为qs的量化以输出一个数字视频信号RDqs2。数字视频信号RDqs2通过去量化器1033执行步长为qs的去量化以输出一个数字视频信号RDds2。数字视频信号RDds2通过第二逆变换器1031执行逆变换以输出一个数字视频信号RIds2。数字视频信号RIds2被提供到合适的缓冲器,切换到前向帧缓冲器1041或后向帧缓冲器1043。从前向帧缓冲器1041和后向帧缓冲器1043输出的数字视频信号被提供给运动补偿器1021。
[0089] 在一个变化形式的实施例里,图10所示的PSB帧解码器由至少一个处理器和至少一个包括计算机程序代码的存储器实施;该至少一个处理器和至少一个存储器和计算机程序代码被设置使得装置能够执行PSB+帧解码器的功能。有至少一个存储器用来存储数据,并充当缓冲器。
[0090] 上述一个或多个处理器能够从任何装置接收视频信号输入,例如,任何无线和有线通信信道或任何存储器设备,如磁驱动器、光碟、固态装置等。每个处理器处理本发明各个非限制性实施例所述的数据。每个处理都是利用存储在上述一个或多个存储器内的预设参数或使用程序自动执行,以控制和输入所涉及的参数,从而程序发送控制信号或数据到处理器。而且每个处理器也使用存储器来保留任何中间数据或输出,如各种类型的视频帧。此外,任何输出可以由存储在存储器内的程序进行访问,以防处理器需要进行进一步的处理,并也可能通过任何装置如通信信道或存储器设备发送输出到其它设备或处理器。
[0091] 本发明优选实施例的描述并不是穷尽性的,本领域技术人员可以对其作出显而易见的任何更新或修改,所以请参照所附的权利要求来确定本发明的范围。尽管某些特征可以参照一个特别实施例的描述,这些特征也可以与相同或其它实施例的特征结合在一起,除非另作阐述。工业应用
[0092] 本发明可以用于视频通信,特别是用于编码和解码视频。对视频通信,在通过信道被传输到最终用户之前,需要对视频进行编码。本发明特别适合用于现代视频编码标准如H.264和多视点编码。本发明能够以软件或设备方式进行实施,提供更广泛的应用,如从多视点编码访问一个视点、将MVC比特流转译成AVC比特流、随机访问、比特流切换,容错性。