编码器辅助式自适应视频帧内插的制作方法

文档序号:7949191阅读:297来源:国知局
专利名称:编码器辅助式自适应视频帧内插的制作方法
技术领域
本发明涉及数字视频编码和解码,且更特定来说,涉及用于为例如帧速率转换的应用内插跳过的帧的技术。
背景技术
已建立许多不同的视频编码标准来用于对数字视频序列进行编码。例如,运动图像专家组(Moving Picture Experts Group,MPEG)已开发出包括MPEG-1、MPEG-2和MPEG-4的许多标准。其它实例包括国际电信联盟(International TelecommunicationUnion,ITU)H.263标准,和新兴的ITU H.264标准。这些视频编码标准一般通过以压缩的方式对数据进行编码来支持视频序列的改进的传输效率。压缩减少了需传输的数据的总量,以用于有效地传输视频帧。
例如,MPEG-4、ITU H.263和ITU H.264标准支持利用连续视频帧之间的类似性(被称作时间或帧间相关性)来提供帧间压缩的视频编码技术。帧间压缩技术通过将视频帧的基于像素的表示形式转换为运动表示形式来利用帧上的数据冗余。使用帧间技术来编码的帧被称作P(“预测”)帧或B(“双向”)帧。使用非预测性的空间压缩来对称作I(“内部”)帧的某些帧进行编码。
为了满足低带宽要求,例如视频电话或视频流的某些视频应用通过使用跳帧以较低的帧速率对视频进行编码来降低位速率。有意跳过的帧可被称作“S”(“跳过的”)帧。遗憾的是,低帧速率视频可能会产生运动急动(jerkiness)形式的假象。因此,通常在解码器处使用帧内插(也称作帧速率上转换(FRUC))来内插有意跳过的帧的内容。
已开发出多种FRUC技术,且所述FRUC技术可分为两类。第一类FRUC包括帧重复(FR)和帧平均化(FA),其两者均使用视频帧的组合而不考虑运动。这些算法在没有运动的情况下提供可接受的结果。然而,当存在明显的帧间运动时,FR倾向于产生运动急动,而FA会产生模糊的物体。
第二类FRUC依赖使用运动的高级转换技术。在这类FRUC中,内插帧的质量取决于估计运动与真实物体运动之间的差值。在典型的FRUC应用中,解码器根据用于相邻帧的运动信息获得用于内插帧的运动信息。然而,从相邻帧的运动向量直接获得的S帧的运动向量并不足够准确,且可导致内插帧中有各种假象。同样,对于帧内编码块,不存在可用于内插S帧的运动信息,进而在解码器处一般需要额外的估计或处理额外开销以用于获得可靠的内插。

发明内容
本发明针对用于视频帧的解码器辅助式自适应内插的技术。根据所揭示的技术,编码器产生辅助解码器来内插跳过的视频帧(即S帧)的信息。所述信息允许解码器减少内插帧中的视觉假象,且进而实现改进的视觉质量。
所述信息可包括内插方程标号,其针对S帧中的个别视频块来识别将由解码器使用的内插方程,以实现更好的结果。所述信息还包括用于S帧的前向运动向量和差值信息。
视情况而定,为节省带宽,可仅针对符合用于编码器辅助式内插的差值标准的选定的视频块传输方程标号。可在解码器处根据默认内插技术来内插不具有方程标号的其它视频块。
在一个实施例中,本发明提供一种视频编码方法,其包含产生辅助视频解码器来内插跳过的视频帧的信息;和对视频帧中的信息进行编码以用于传输到视频解码器。
在另一实施例中,本发明提供一种视频解码方法,其包含接收辅助内插跳过的视频帧的信息,其中将所述信息编码在视频帧中;和应用所述信息以内插所述跳过的视频帧。
在又一实施例中,本发明提供一种视频编码器,其包含分析单元,其分析跳过的视频帧,且产生辅助视频解码器来内插所述跳过的视频帧的信息;和汇编单元,其将所述信息编码在视频帧中以用于传输到所述视频解码器。
在额外的实施例中,本发明提供一种视频解码器,其包含内插单元,其接收辅助内插跳过的视频帧的信息,其中将所述信息编码在视频帧中,且应用所述信息以内插所述跳过的视频帧。
本发明还涵盖计算机可读媒体,其包含促使形成视频编码器或解码器的一个或一个以上处理器执行本文所述的技术中的任一种技术的指令。
在附图和下文描述中陈述一个或一个以上实施例的细节。根据描述和图式,且根据权利要求书,将易于了解其它特征、目的和优势。


图1是说明视频编码和解码系统的方框图,其使用根据本发明的编码器辅助式自适应内插技术。
图2是使用所传输的运动向量在解码器处应用运动补偿FRUC技术的图。
图3是用于如图1中所示的视频编码器中的帧处理单元的方框图。
图4A-4C是说明产生方程旗标以及绝对差值和(SAD)旗标以辅助自适应内插的图。
图5是说明承载用于编码器辅助式自适应内插的嵌入的S帧信息的P帧的图。
图6是说明用于跳过的视频帧的内插方程标号图的图。
图7是说明用于如图1中所示的视频解码器中的辅助式内插解码器的方框图。
图8是说明用于产生辅助解码器内插跳过的帧的技术的流程图。
图9是说明应用编码器提供的信息来内插跳过的帧的流程图。
图10是说明用于产生辅助解码器内插跳过的帧的信息的带宽节省技术的流程图。
具体实施例方式
图1是说明经配置以使用编码器辅助式自适应内插技术的视频编码和解码系统10的方框图。如图1中所示,图10包括由传输通道15连接的视频编码器12和视频解码器14。传输通道15可以是有线的或无线的媒体。系统10可支持双向视频传输,以(例如)用于视频电话。因此,可在通道15的相对端上提供交互(reciprocal)编码、解码、多路复用(MUX)和解多路复用(DEMUX)组件。在某些实施例中,编码器系统12和解码器系统14可实施在预备用于视频流、视频电话或其两者的例如无线移动终端的视频通信装置中。
系统10可支持根据会话起始协议(SIP)、ITU H.323标准、ITU H.324标准或其它标准的视频电话。视频编码器12根据视频压缩标准(例如,MPEG-2、MPEG-4、ITU H.263或ITU H.264)产生经编码的视频数据。尽管图1中未展示,视频编码器12和视频解码器14可分别与音频编码器和解码器集成在一起,且包括适当的MUX-DEMUX单元来处理数据流的音频和视频部分。MUX-DEMUX单元可遵循ITU H.223多路复用器协议,或其它协议,例如用户数据报协议(UDP)。
编码器12编码P帧16和S帧信息18。P帧16是预测性帧,其包括足够的信息以允许视频解码器14解码并呈现视频信息帧。以良好的保真度对P帧进行编码。特定来说,针对P帧对运动向量和量化的预测误差两者进行编码。S帧是必须被解码器14内插以产生视频信息帧的跳过的帧。
根据本发明,编码器12实际上并不编码和传输S帧。作为替代,编码器12产生低额外开销的S帧信息18以辅助视频解码器14内插S帧,且将所述信息编码在视频帧中以供传输到视频解码器。S帧信息可包括在专用的帧中,或添加到所传输的P帧。S帧的内插可在视频解码器14处支持FRUC技术。
在图1的实例中,视频编码器12可包括帧处理单元20,其经配置以处理视频信息的引入帧F1、F2、F3,并决定是编码P帧16还是编码辅助内插S帧的信息。F2表示要跳过的帧,而帧F1和F3分别表示先前的和后续的P帧。
基于对帧F1、F2、F3的分析,帧处理单元20决定是对P帧进行编码还是对S帧信息18进行编码。在S帧的情况下,帧处理单元20产生辅助视频解码器14内插S帧的信息。所述信息允许解码器14减少所内插的S帧中的视觉假象,且进而实现改进的视觉质量。尽管S帧被跳过,即未传输到解码器14,但S帧信息支持对S帧的内容的内插。
为处理P帧和S帧两者,视频解码器14包括标准的解码器22和辅助式内插解码器24。标准的解码器22应用标准的解码技术来解码每一P帧16。然而,辅助式内插解码器24依赖来自视频编码器12的辅助来内插S帧。特定来说,辅助式内插解码器24接收S帧信息18,并应用S帧信息以内插跳过的视频帧。S帧信息可包括经选择以支持更准确的S帧内插的信息,以便可减少所内插的视频信息中的视觉假象。
S帧信息18可包括(例如)指定将由视频解码器14用来内插S帧的特定内插方程的信息,或指定将用于S帧中的选定的视频块(例如宏块(MB)或较小的块)的特定内插方程的信息。在获得两组运动向量,即用于S帧的后向(BW)运动向量mv12和用于下一P帧的前向(PW)运动向量mv23后,对一组内插技术进行测试以在编码器12处预测S帧。在某些实施例中,根据给定应用的复杂度和带宽要求,可计算并传输两组以上的运动向量。
随后,编码器12拾取对应于方程的标号,且发送用于个别视频块m(例如,S帧中的4×4、8×8或16×16像素块)的方程。指定的内插方程可以是可使用的若干不同内插方程中的一者。然而,视频编码器12的帧处理单元20选择特定的内插方程,所述内插方程期望产生满足S帧或S帧中的特定视频块的所需质量水平的内插结果。
对于特定的帧或视频块,特定类型的内插方程可能比其它类型的内插方程更有效。相反,某些帧或视频块可能会具有要求应用不同的内插方程以实现可接受的结果的特征。因此,帧处理单元20可针对给定的S帧中的不同的视频块指定不同的内插方程。S帧信息18向辅助式内插解码器24提供足够的信息来应用适当的内插方程内插S帧中的视频块。以这种方式,视频编码器12辅助解码器14内插S帧。
除了内插方程之外,S帧信息18可包括可用于改进视频解码器18的内插质量的其它信息。举例来说,S帧信息18可进一步包括运动向量和差值信息。运动向量表示跳过的帧、先前的帧与(可选的)后续帧之间的运动。差值信息指示跳过的帧、先前的帧与后续的帧,或跳过的帧、先前的帧与后续的帧中相应的视频块之间的差值。差值信息还可包括绝对差值和(SAD)旗标。
为减少由S帧信息18提出的带宽要求,帧处理单元20可经配置以仅发送用于S帧中选定的视频块的信息。特定来说,帧处理单元20可识别似乎要求特定内插方程以便提供可接受的视频质量的视频块。其它视频块无需特定的内插方程即可准确地内插。在某些实施例中,帧处理单元20可确定S视频帧中的视频块与先前的视频帧、后续的视频帧或其两者中相应的视频块之间的差值,并识别产生超过阈值的差值的视频块。帧处理单元20接着产生指定将由视频解码器14用来内插S帧中的所识别视频块的特定内插方程的信息。
可将S帧信息18编码在专用于S帧信息的视频帧中,并独立于P帧16而传输。或者,S帧信息18可嵌入在S帧之前或在S帧之后的P帧16中,以供传输到解码器14。在任一情况下,S帧信息18所需要的带宽均明显小于S帧的实际内容所需的带宽。因此,系统10能利用由跳帧提供的带宽节省,而且通过编码器辅助式内插提供改进的视频质量。
视频解码器14可经特别配置以辨识并利用S帧信息18。对于S帧来说,宏块(MB)模式被强制为帧间(Inter)。因为解码器14将具有用于S帧的宏块模式(帧间)决策,所以宏块决策单元可用于发送与内插方程和SAD旗标相关的S帧信息18。然而,如果视频解码器14不预备使用S帧信息18,那么可忽略所述信息,且可根据另外由视频解码器应用的默认内插技术进行内插。
图2是说明使用由编码器12提供作为S帧信息18的一部分的运动向量在解码器14处应用运动补偿FRUC技术的图。一般来说,视频解码器14应用由视频编码器12提供的S帧信息18来内插S帧并支持FRUC。在某些常规的解码器侧FRUC技术中,解码器12依赖在帧F1中的块30与帧F3中相应的块32之间延伸的向量V13。帧F1和F3分别是在需要内插的S帧F2=Ft之前(t-1)和之后(t+1)的帧。F1、F2和F3的命名法可概括为Ft-1、Ft和Ft+1而不会丧失专指性。向量V13一般被除以二(对于1∶2的帧速率转换来说),以产生运动向量V13/2和-V13/2,并识别S帧F2中相应的块34。对于1∶N转换来说,可相应地缩放运动向量。
然而,如图2中所示,所得的块34可能实质上不同于S帧F2中实际的相应块36。在没有实际的运动向量信息(即,V12、V23)的情况下,难以断定用于解码器侧FRUC实施的实际块36。因此,所内插帧的质量很大程度取决于估计的运动向量V13/2、-V13/2相对于实际的运动向量V12和V23的准确度。因此,如果仅使用前向运动补偿帧,那么解码器侧FRUC实施可能会引入例如中断等的不良的视觉假象,或如果使用前向和后向运动补偿帧时,会引入例如模糊等的不良的视觉假象。
相比而言,根据本发明,S帧信息18允许视频解码器14应用编码器辅助式内插技术。S帧信息18可包括在编码器侧确定的实际的运动向量和其它信息,以提供解码器14对S帧F2的改进的内插。编码器12通过发送通过编码器处理获得的的有效辅助信息(即S帧信息18)而允许在解码器14处实现改进的帧内插。以这种方式,视频解码器14减少原本会由于FRUC中不正确的运动估计而引入的各种假象。另外,通过S帧信息18,可在视频解码器14中免除FRUC运动估计通常所需的额外的处理,从而导致实施复杂度降低。
图3是说明用于如图1中所示的视频编码器12中的帧处理单元20的方框图。如图3中所示,帧处理单元20包括帧类型决策单元36、S帧分析单元38、差值阈值单元40和帧汇编单元42。S帧分析单元38进一步包括运动计算单元44、差值单元46和内插选择单元48。如将所述,S帧分析单元38产生S帧信息18以辅助解码器14以改进的准确度内插S帧。一般来说,S帧分析单元38分析S帧以产生运动向量、差值信息和内插方程选择以用于有效地内插S帧中的视频块。
帧类型决策单元36确定引入的视频信息是应被编码为P帧还是S帧。可部分地基于经设计以减少编码信息的总量以用于传输通道15(图1)上的带宽节省的统一或非统一跳帧功能来决定跳帧。举例来说,帧类型决策单元36可跳过每第n个帧,或基于动态跳过标准来跳帧。
在某些实例中,帧类型决策单元36可跳过偶数帧。在任一情况下,帧类型决策单元36均将帧决策传送到帧汇编单元42。跳帧决策还可基于峰值信噪比(PSNR)或其它客观视觉质量量度,例如与先前重新构造的帧的均方误差,以及与用于编码P帧的字节数相关的运动向量长度。
如图3中进一步所示,S帧分析单元38产生运动向量、绝对差值和(SAD)旗标和方程标号图,其每一者可形成由编码器12提供的用以辅助解码器14进行内插的S帧信息18的一部分。运动计算单元44产生表示跳过的(S)帧F2中的视频块与之前的帧F1和后续帧F3中的相应块之间的运动的运动向量。因此,跳过的帧中的每一视频块的特征在于一对运动向量,即后向(BW)运动向量和前向(FW)运动向量。这些运动向量辅助内插选择单元48为S帧中的视频块选择适当的内插方程。
差值单元46分析跳过的帧中的视频块与后续帧中的相应视频块之间的差值。尽管可在跳过的帧块与实质上类似的先前或后续的帧块之间确定运动向量,但所识别的块在内容上仍可展示出明显的差值。差值单元46可基于绝对差值和(SAD)量度来确定所述差值。可针对整个宏块、宏块的四边(例如2到3像素宽)和相邻宏块之间的边界来确定SAD量度。如果SAD量度值非常大,那么由于对象可能会出现在所内插的S帧中,所以可从未来帧而不是先前帧中取得参考。差值单元46将差值表达为差值旗标(例如SAD旗标),其辅助解码器14进行内插。
内插选择单元48将一组不同的内插方程应用于跳过的帧中的视频块,以识别在内插准确度方面最有效的内插方程。特定来说,内插选择单元48评估不同的内插方程用于视频帧中的特定的视频块的结果。基于所述结果,内插选择单元48指定将由视频解码器14用以内插跳过的视频帧中的选定视频块的特定内插方程。通过此过程,可为S帧中不同的视频块选择不同的内插方程。
在操作中,内插选择单元48从运动计算单元44接收用于S帧中的特定视频块的BW和FW运动向量。内插选择单元48还接收S帧F2中的实际的视频块。通过使用运动向量,内插选择单元48应用一系列不同的内插方程,并将所述结果与S帧F2中实际的视频块进行比较。以这种方式,在编码器12处测试一组不同的内插技术以预测S帧。
在选择了产生最佳结果的内插方程后,内插选择单元48产生用于可应用的视频块的方程标号。方程标号识别将由解码器14用于相关视频块的特定内插方程。内插选择单元48产生含有用于S帧中所有视频块的方程标号的方程标号图作为输出。所述图将方程标号配置在对应于S帧中的视频块的位置处,以有助于解码器14进行处理。
解码器14处的用于帧内插的一般方程可表达为F2(x,y)=α1F1(x+mv12x,y+mv12y)+α2F1(x+mv23x,y+mv23y)+α3F3(x-mv23x,y-mv23y)+α4F3(x-mv12x,y-mv12y) (1)在上述方程(1)中,以高保真度(即使用运动向量和预测误差两者)对奇数的P帧F1和F3进行编码,而仅为偶数的S帧发送运动向量和其它辅助信息。值x、y表示二维坐标轴,而α1、α2、α3和α4表示加权系数。
通过使用在之前的帧F1与S帧F2之间估计的FW运动向量(mv12),并使用在S帧F2与后续的帧F3之间估计的BW运动向量(mv23)来恢复跳过的S帧。加权系数(α)服从∑iαi=1以保持像素的强度值标准化。
如上所述,某些内插方程对于S帧中特定的视频块可更有效。因此,对于编码器辅助式自适应内插,内插选择单元48测试不同的方程来识别在解码器侧用于内插特定的S帧,或S帧中的视频块的最有效的方程。举例而言,可从一般方程(1)中得到以下方程,并由内插选择单元48进行评估以用于解码器14处的编码器辅助式自适应内插1.F2(x,y)=F1(x+mv12x,y+mv12y)2.F2(x,y)=F3(x-mv23x,y-mv23y)3.F2(x,y)=F1(x+mv12x,y+mv12y)+F3(x-mv23x,y-mv23y)4.F2(x,y)=F1(x+mv12x,y+mv12y)+Fi(x+mv23x,y+mv23y)+F3(x-mv23x,y-mv23y)5.F2(x,y)=F1(x+mvi2x,y+mvi2y)+F1(x+mv23x,y+mv23y)+F3(x-mv23x,y-mv23y)+F3(x-mv12x,y-mv12y)可用mvab′(即,经处理的运动向量)而不是mvab(即,所传输的运动向量)来应用上述方程。另外,基于所接收的决策旗标,可对帧、对宏块或基于更小的块(例如,8×8或4×4)应用方程。
尽管上文已描述从一般内插方程(1)得到的五个内插方程实例,但内插方程的数目可更多或更少。举例来说,可通过改变加权系数或通过使用上文提到的经处理的运动向量,根据一般内插方程(1)产生额外的方程。也可通过使用更多的参考或未来的帧(例如,在时间t-3或t+3处)来产生额外的方程。
可将由内插选择单元48产生的方程标号图的全部内容发送到解码器14。特定来说,帧汇编单元42可组合由运动计算单元44产生的运动向量、由差值单元46产生的SAD旗标和由内插选择单元48产生的整个方程标号图。在这种情况下,运动向量、SAD旗标和方程标号图形成由解码器14使用的S帧信息18。
如将描述,S帧信息18可被作为特殊类型的P帧发送,或作为字段嵌入P帧中。举例来说,每一S帧可被编码为没有误差剩余编码的特定类型P帧,或被编码为没有任何视频对象平面(VOP)标头的辅助信息。在任一情况下,方程标号图均可能会在必须被编码的信息的字节数方面要求大量的额外开销。出于此原因,可减小方程标号图的大小,如将进一步详细描述。
图4A-4C是说明产生方程旗标和绝对差值和(SAD)旗标以辅助自适应内插的图。特定来说,图4A说明内插方程旗标,图4B说明为S帧块量化差值的SAD旗标,且图4C说明识别具有最大差值的相邻块的SAD旗标。
在图4A中,旗标1、2、3等识别将由解码器14用以内插与所述旗标相关联的视频块的特定内插方程。在图4B中,旗标L、M、S指示用于给定视频块的SAD量度是较大、中等还是较小。在图4C中,旗标N、E、SE等指示指向SAD量度在其中导致较大的误差的相邻块的北、东和东南方向。图4B中的旗标对SAD量度进行分类,而图4C中的旗标用作指示相邻块中的相对SAD值的方向性旗标。解码器14可将图4A-4C中的旗标用作S帧信息18以辅助内插S帧。
S帧的不同组成部分所需的字节数在带宽方面可能是大量的。因此,可能需要努力减少经编码的信息的数量。下文的表1示范在S帧被编码为P帧的特殊情况(即没有发送误差剩余)时,对于标准的视频测试序列(以数字视频技术领域中的技术人员已知的四分之一通用中间格式(QCIF)大小)用在标头和宏块数据上的字节数。所述视频测试序列用名称进行识别,且对于视频编码技术领域中的技术人员是熟悉的。
在表1中,使用具有速率控制机制的基于MPEG-4的CODEC以每秒48千比特(kbps)对所有视频测试序列进行编码。总的帧速率是每秒10帧(fps),其中使用本发明所描述的方法对每秒中的帧的一半进行编码。为每一S帧发送方程标号图的额外开销并未包括在所消耗的总字节中,但稍后将在此说明内容中描述。
表1

如表1中所示,作为特殊P帧中的辅助信息发送的前向运动向量的总成本会增加3到25%的需要被传输的额外开销。在S帧信息之后,用后续的P帧来发送后向运动向量(即,-mv23)。在表1的最后一列中表示出组合的额外开销(即,运动向量、标头和宏块数据)。每一标准测试视频序列的额外开销增加如下Akiyo3.4%Salesman3.6%
Coastguard15%Carphone18.5%Foreman25%Stefan20.6%。
在例如Akiyo的低运动视频测试序列中,运动向量数据占据整个S帧包的小部分。与运动向量不同,没有必要发送例如量化参数(QP)、宏块类型等的其它数据。因此,在这种情况下,包括运动向量和方程标号图的S帧信息应被作为辅助信息附加到下一P帧,以避免来自宏块模式、宏块水平QP和帧水平QP的多余额外开销。
如上所述,将S帧作为个别的帧传输可导致消耗大量字节(包括S帧内插不必须的字节)。个别的S帧中一半以上的字节可能是多余的。举例来说,通过表1中的第二列与第三列中的值之间的差值来计算多余信息的量。因此,可能需要减少多余的S帧信息的数量。一种用于减少多余信息的数量的有用技术是如上所述将S帧信息嵌入P帧中,而不是发送专用的S帧。
作为发送不必要的信息的替代方法,可将需要内插并进而重新构造的S帧信息作为辅助信息附加在跟随S帧的P帧的末尾处。以这种方式可减少额外开销,因为S帧将一直使用帧间宏块模式,所以将不需要发送模式决策。另外,因为不需要发送预测误差,所以也不需要发送QP或任何额外的信息。因此,可将S帧信息作为下一P帧的嵌入的附件来发送。
图5是说明承载用于编码器辅助式自适应内插的嵌入的S帧信息18的P帧的图。S帧信息18可被编码为不具有任何VOP标头的辅助信息。或者,如图5中所示,S帧信息18可嵌入特殊的P帧50中。在图5的实例中,P帧50包括P帧标头52、P帧末尾54、P帧信息56,和S帧信息18,所述S帧信息18包括运动向量58、SAD旗标60和方程标号图62。S帧信息18跟随P帧信息56之后,且可被预备处理S帧信息的解码器14利用,或被未如此预备的解码器14丢弃。对S帧信息18进行编码可导致大量的额外开销节省。
除了与运动向量相关联的额外开销之外,S帧信息18中的方程标号图62也可呈现大量的额外开销。举例而言,对于标准的Carphone视频测试序列(以48kbps)中的S帧来说,如果仅执行运动补偿预测,即仅使用运动向量而没有预测误差剩余,那么将获得以下结果帧编号12
帧编码成本=127字节运动补偿的预测PSNR=30.103 dB运动向量大小=561位(70.125字节)VOP标头=54位宏块跳过模式=14位VOP末尾=3位其它旗标和QP=384位出于说明目的,假设仅为4×4的块发送运动向量和方程标号图,且方程标号图由1到3的数字组成,其确定为各个4×4块选择的用于S帧内插的特定方程的数目。
图6是说明用于上文所述的视频帧(即,Carphone视频帧12)的内插方程标号图。图6的方程标号图可与运动向量一起使用以执行S帧的运动补偿内插。在此实例中,具有三个不同的内插方程,由数字1到3如下识别1.标号1F2(x,y)=F1(x+mv12x,y+mv12y)2.标号2F2(x,y)=F3(x-mv23x,y-mv23y)3.标号3F2(x,y)=Fi(x+mv12x,y+mv12y)+F3(x-mv23x,y-mv23y)在图6的方程标号图中,指派有方程标号1的4×4参考块的总数为689,指派有方程标号2的块的总数为528,且指派有方程标号3的块的数目为367。可用“0”(1位)表示方程标号1,用“10”(2位)表示方程标号2,且用“11”(2位)表示方程标号3。
如果图6中所示的方程标号图按照原样发送而没有任何压缩或处理,那么所得的额外开销为689×1+528×2+367×2=2479~310字节对于没有对方程标号图执行最优化的情况,上文的额外开销数字是最差的情形。这个最差情况数字对于经受过分的带宽限制的某些实际应用来说可能是不可接受的。
然而,更仔细地检查方程图后,会容易发现在紧密相邻的4×4块中的某些块具有相同的方程标号。因此,可对共用相同的方程标号的块进行分组,且针对组合的(较大)块指派共同的方程标号。在图6中,由参考数字64、66、68识别可经分组的块的实例。如果图6的方程标号图中的4×4的块被分组为8×8和16×16的块,那么获得以下统计数字。
1.具有相同标号的16×16块的数目=10(5个块具有方程标号1,3个块具有方程标号2,2个块具有方程标号3)。
2.具有相同的标号图的8×8块的数目=175(仅135个块不同于16×16,且包括具有方程标号1的60个块、具有方程标号2的44个块和具有方程标号3的31个块)。
3.不能与相邻块分组的未分组的4×4块的数目=884(295个块具有方程标号1、246个块具有方程标号2,43个块具有方程标号3)。
在对共用共同的方程标号的块进行分组后,图6的用于方程图的字节的总数可近似计算为16×16块(5+3×2+2×2)8×8块(60×1+44×2+31×2)4×4块(295×1+246×2+43×2)总数137个字节如上文所示范,对共用方程标号的块进行分组可导致实质的额外开销节省(137个字节对310个字节)。虽然在S帧信息18中使用块分组是可行的,但需要一种机制向解码器14发送如下内容的信号某些块被分组为16×16,且某些块被分组为8×8。举例来说,可将旗标插入S帧信息18的方程标号图中,以发送如下内容的信号一组群组块的开始和群组的类型,即16×16或8×8。尽管这种方法可能是有用的,但所述分组旗标将向上述137个字节的额外开销添加其它额外开销。
为避免块分组和关联的信号发送的需要,另一种用于减少由方程标号图产生的额外开销的技术可能会涉及降低图的大小。特定来说,在某些实施例中,可仅针对满足差值标准的选定的块对方程标号进行编码。例如,参考图3,可提供差值阈值单元40来降低方程标号图的大小。以这种方式,可针对包含实质上少于跳过的视频帧中的所有视频块的选定视频块发送方程标号,从而减少发送到解码器14的经编码信息的数量。
差值阈值单元40利用前向与后向运动补偿预测之间的相关性来定位需要发送方程标号以用于有效内插的特定块。其结果为包括仅用于超过差值阈值的选定视频块的方程标号的差值阈值图。因此,可用不包括用于S帧中所有视频块而是用于视频块的子集的方程标号的图来代替图6的方程标号图。在编码器12和解码器14处都有前向和后向预测可用。因此,在发送差值图的过程中不涉及额外的成本。
在操作中,差值阈值单元40获得FW和BW运动向量,其用于参考帧的前向运动补偿和未来P帧的后向运动补偿。差值阈值单元40计算FW与BW运动补偿帧之间的差值,且获得差值图,Dmap=ABS(FW-BW),其中ABS代表绝对值。接着,差值阈值单元40对差值图应用阈值设定以产生其中差值超过可应用的阈值的区域。差值阈值区域可能是非相邻的。
作为一个实例,阈值在0到255的像素比例上可为值10。差值阈值单元40将此阈值应用到S帧中的视频块,以识别特别易于发生内插误差的视频块。可将阈值应用于由内插单元48针对S帧中的所有块而输出的整个方程标号图。或者,可预先应用差值阈值,使得内插选择单元48仅针对满足差值阈值的块产生方程标号图。在任一情况下,实际经编码以用于传输到解码器14的方程标号图的大小实质上被减小了。特定来说,仅选择产生大于阈值的差值的块以用于方程标号,从而节省了带宽。
一旦应用阈值来识别S帧中的视频块的子集,差值阈值单元40便缩小了经过阈值设定的差值图以获得更小的图。根据此实例,在较小的图中,每个像素值被原始差值图中的4×4相应的像素值的和取代。可执行此缩小步骤,使得差值图的大小与方程标号图的大小匹配。假设针对S帧中的4×4块发送方程标号,此实例中的缩放因数被选择为4。如果方程标号图的块大小发生改变,那么可相应地调节缩小因数。
对于经过缩小的经阈值设定的差值图中的每个点,差值阈值单元40选择适当的方程标号。特定来说,在缩小之前,差值阈值单元40选择由内插选择单元48针对可应用的视频块识别的方程标号。在某些实施例中,阈值设定的过程可为迭代过程。举例来说,可能有产生超过应用阈值的多余数目的视频块的帧。在这些情况下,阈值设定起初可能会导致不充分的带宽节省。为此原因,差值阈值单元40可经配置以在缩小的经阈值设定的差值图过大时调节阈值。
举例而言,差值阈值单元40可经配置以在差值阈值设定过程的第一次迭代之后计算在方程标号上花费的字节总数。如果字节总数超过预定的速率约束R,那么差值阈值单元40便增加第一次迭代中使用的阈值,且使用新计算出的阈值来重复阈值设定过程。
需要时,可在迭代的基础上继续进行阈值设定过程(这一过程会受到迭代限制),直到在方程标号上花费的字节总数小于或等于速率约束R为止。在完成阈值设定过程后,差值阈值单元40停止,并将方程标号图传递到帧汇编单元42。帧汇编单元42以光栅扫描次序将方程标号打包以用于包括在嵌入P帧50中的S帧信息18(图5)中。
通过将差值阈值技术应用于标准的Carphone视频序列中的第12个帧,可获得大小为81个字节的方程标号图包。举例来说,使用方程标号图在解码器侧获得的内插帧展示出31.72 dB的PSNR,这比300字节方程图的情况小0.2 dB,但看起来不会呈现出明显的视觉差异。
尽管使用标准的视频codec(即,没有跳帧)以10fps对整个Carphone序列进行编码会提供略高的PSNR(32.1 dB),但个别的帧仍倾向于显示出某些假象。在没有跳帧的情况下,在10fps下的Carphone序列中的第12个帧上花费的总字节为538字节。相比而言,在使用本文所述的编码器辅助式自适应内插的情况下,在相同的帧上花费的总字节为150字节,其包括用于运动向量的70个字节和用于经阈值设定的差值方程标号图的80个字节。
图7是说明用于图1中所示的视频解码器14中的辅助式内插解码器24的方框图。如图7中所示,辅助式内插解码器24包括经操作以产生经内插的S帧72的内插单元68和内插方程选择单元70。内插单元68接收运动向量和SAD旗标形式的S帧信息。内插选择单元70接收方程标号图形式的S帧信息。通过使用方程标号图,内插选择单元70识别将由内插单元68使用以用于内插帧或帧中的个别视频块的特定内插方程。
如上所述,方程标号图可能经过差值阈值设定。在这种情况下,内插选择单元70可仅针对帧中的视频块的子集识别内插方程。内插单元68应用运动向量、SAD旗标和由内插选择单元70识别的内插方程来产生经内插的视频块。对于未在方程标号图中识别的视频块,内插单元68应用标准的内插方程,而不是特别选定的内插方程。在任一情况下,结果均为经内插的S帧72。
图8是说明用于产生用于辅助解码器14内插跳过的帧的信息的技术的流程图。一般来说,由编码器12执行图8中说明的技术来产生S帧信息以用于通过解码器14对S帧进行编码器辅助式自适应内插。如图8中所示,如果将处理的下一帧不是S帧(74),那么编码器12对P帧进行编码(76)。然而,当将编码的下一帧是S帧时(74),编码器12产生S帧信息。特定来说,S帧分析单元38的运动计算单元44获得前一P帧(F1)与S帧(F2)中相应的视频块之间的前向(FW)运动向量mv12(78),且使用FW运动向量形成临时的S帧(79)。通过使用临时的S帧和下一P帧(F3),运动计算单元44产生后向(BW)运动向量m23(80)。通过BW运动向量m23并加上预测误差,预测下一P帧。接着,使用mv12内插S帧、使用mv23内插前一P帧F1,和后续的P帧F3。
内插选择单元48接着使用FW和BW运动向量为帧中的个别视频块测试多个不同的内插方程(81)。基于内插方程的结果,内插选择单元48选择最佳的内插方程(82),并将方程标号指派给各个视频块(84)。“最佳的”内插方程是在所测试的若干内插方程中产生最准确的内插结果的特定方程。方程标号用于识别应由解码器14用以内插关联的视频块的特定内插方程。
继续针对S帧中的所有块用迭代的方式执行所述过程(86、88),直到到达块的末尾为止。或者,在某些实施例中,可在方程测试之前应用差值阈值设定以将块的子集识别为用于编码器辅助式内插的候选者。
一旦已处理完所有块,内插选择单元48便传递方程标号图以对S帧进行编码(90),例如作为专用的S帧或作为与之前的或后续的P帧嵌入在一起的S帧信息。FW运动向量以及SAD旗标也包括在S帧信息中。然而,BW运动向量通常不包括在S帧信息中,因为可从跟随S帧之后的下一P帧在解码器侧获得BW运动向量。同样,方程标号图可由差值阈值单元40处理,以减小方程标号图所需的字节总数。在汇编完S帧信息后,过程进行到下一帧(92)。
图9是说明应用由编码器12提供的信息以用于在解码器14处内插跳过的帧的流程图。如图9中所示,如果将被解码的引入帧不是S帧(94),那么使用普通的解码过程将其解码为P帧(96)。然而,如果引入的帧是S帧(94),那么解码器14从经编码的视频信息中提供的S帧信息中获得FW运动向量(98),且使用下一P帧获得BW运动向量(99)。特定来说,根据对跟随S帧之后的P帧估计的运动向量来获得BW运动向量。尽管可通过改变参考帧来对S帧估计BW运动向量,但发送BW运动向量的成本较高。出于此原因,需要使用从下一P帧获得的BW运动向量mv23的负版本。
解码器14接着确定S帧信息是否包括用于每一视频块的方程标号(100)。如果没有用于视频块的方程标号(100),那么解码器14应用默认的内插方程(102)来内插视频块。然而,如果S帧信息包括用于视频帧的方程标号,那么解码器14便选择由方程标号识别的内插方程(104)。解码器14接着通过使用FW和BW运动向量和选定的内插方程来进行内插以产生块(106)。所示过程以迭代的方式继续下去(108、110),直到到达S帧中的块的末尾为止。基于经解码的块,解码器14产生经解码的S帧(112),且前进到下一帧(114)。
图10是说明用于如上文所述产生辅助解码器12内插跳过的帧的信息的带宽节省技术的流程图。如图10中所示,不同的阈值单元40接收用于S帧中的块的BW和FW运动向量。同样,BW运动向量用于针对跟随S帧之后的帧的后向运动补偿,而FW运动向量用于针对在S帧之前的帧的前向运动补偿。差值阈值单元40向BW与FW运动补偿帧之间的差值应用差值阈值(122),以产生经阈值设定的差值图,DMAP。在有些实施例中,经阈值设定的差值图DMAP可以视频块大小为因数来缩小(124),以产生缩小的图DMAP_DS。
一旦获得缩小的经阈值设定的差值图DMAP_DS,差值阈值单元40便起始迭代过程以将方程标号消耗的字节数减少到可接受的水平。如图10中所示,差值阈值单元40首先计算用于方程标号的字节总数(126)。如果字节总数小于速率限制R(128),那么指派方程标号(130),并将所得的方程标号图连同例如运动向量和SAD旗标等的其它S帧信息一起传递到帧汇编单元42。
然而,如果方程标号消耗的字节总数大于速率限制R(128),且迭代的数目尚未超过可应用的迭代限制(132),那么差值阈值单元40便增加差值阈值(134),且重复差值阈值设定过程。迭代继续下去,直到字节总数小于或等于速率限制R(128),或已超过所允许的迭代数目(132)为止。在任一情况下,差值阈值单元40接着将方程标号指派给选定的块,且将结果传递到帧汇编单元42以用于编码。
在本发明描述的技术中,针对S帧中的块执行运动估计,且基于内插结果的误差为每一块选择最佳的内插方程。根据此技术,不需要例如双向运动估计的更复杂的运动估计算法。另外,不需要发送多组运动向量或剩余误差。在差值阈值设定方面,所揭示的技术可允许低达2×2像素的较小的块大小,而不需要附加的额外开销,因为即使可针对16×16块执行运动估计,也可在需要时针对2×2块发送方程标号。
一般来说,本发明中描述的编码器辅助式自适应内插技术针对S帧提供例如方程标号图、运动向量和SAD旗标等的有效辅助信息,以辅助在解码器处的内插。在有些实施例中,所述技术允许以减少与方程信息相关联的额外开销成本的方式来设定方程标号图。为发送方程标号图,提出一种减少此附加信息的额外开销成本的方法。可以想象的是,本文描述的技术可支持用于新兴ITU H.264标准的B帧模式。此外,所述技术可不仅用于统一取样的跳帧,而且可用于非统一的跳帧。另外,所述技术不仅可用于帧速率上转换应用,而且可用于速率控制用的跳帧。
本文所描述的技术可以硬件、软件、固件或其任何组合来实施。如果是以软件实施,那么所述技术可部分地通过包含程序代码的计算机可读媒体来实现,所述程序代码含有在执行时执行上文所述的方法中的一种或一种以上方法的指令。在这种情况下,计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体等类似物。
可通过一个或一个以上处理器来执行所述程序代码,所述处理器例如为一个或一个以上数字信号处理器(DSP)、通用微处理器、特殊应用集成电路(ASIC)、场可编程逻辑阵列(FPGA)、或其它等效的集成或离散的逻辑电路。在有些实施例中,本文所述的功能性可提供在经配置以用于编码和解码的专用软件模块或硬件单元中,或合并在组合的视频编码器-解码器(CODEC)中。
已描述多种实施例。这些和其它实施例均在所附权利要求书的范畴内。
权利要求
1.一种视频编码方法,包含选择将为跳过的视频帧而不是经编码的视频帧的视频帧;产生辅助视频解码器内插所述跳过的视频帧的信息;和对所述信息进行编码以供传输到所述视频解码器。
2.根据权利要求1所述的方法,其中所述信息指定将由所述视频解码器用以内插所述跳过的视频帧的内插方程。
3.根据权利要求1所述的方法,其中所述信息指定将由所述视频解码器用以内插所述跳过的视频帧中的选定视频块的不同的内插方程。
4.根据权利要求3所述的方法,其中所述选定视频块包含实质上少于所述跳过的视频帧中的所有视频块的视频块,从而减少经编码信息的数量。
5.根据权利要求1所述的方法,其中所述信息包括方程标号图,所述方程标号图指定将由所述视频解码器用以内插所述跳过的视频帧中的选定视频块的不同的内插方程。
6.根据权利要求1所述的方法,其进一步包含评估不同内插方程用于所述视频帧中的视频块的结果,其中产生信息包括基于所述结果产生以下信息其指定将由所述视频解码器用以内插所述跳过的视频帧中的选定视频块的特定内插方程。
7.根据权利要求1所述的方法,其进一步包含确定所述跳过的视频帧中的视频块与后续的视频帧中的相应视频块之间的差值;和识别产生超过阈值的差值的视频块,其中产生信息包括产生以下信息其指定将由所述视频解码器用以内插所述跳过的视频帧中的经识别视频块的特定内插方程。
8.根据权利要求1所述的方法,其中所述信息包括表示所述跳过的帧与先前的帧之间的运动的运动向量。
9.根据权利要求1所述的方法,其中所述信息包括差值旗标,所述差值旗标指示所述跳过的帧、先前的帧以及后续的帧之间的差值。
10.根据权利要求9所述的方法,其中所述差值旗标包括绝对差值和(SAD)旗标以及指示相邻块中的相对SAD值的方向性旗标。
11.根据权利要求1所述的方法,其进一步包含将所述信息编码在未跳过的视频帧中。
12.一种视频解码方法,其包含接收辅助内插有意跳过的视频帧的信息,其中所述信息被编码在视频帧中;和应用所述信息来内插所述跳过的视频帧。
13.根据权利要求12所述的方法,其中所述信息指定将用以内插所述有意跳过的视频帧的内插方程,所述方法进一步包含应用所述指定的内插方程来内插所述有意跳过的视频帧。
14.根据权利要求12所述的方法,其中所述信息指定将用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程,所述方法进一步包含应用所述指定的内插方程来内插所述有意跳过的视频帧中的所述选定视频块。
15.根据权利要求14所述的方法,其中所述选定视频块包含实质上少于所述有意跳过的视频帧中的所有视频块的视频块,从而减少所述信息的数量。
16.根据权利要求12所述的方法,其中所述信息包括方程标号图,所述方程标号图指定将用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程,所述方法进一步包含应用所述指定的内插方程来内插所述有意跳过的视频帧中的所述选定视频块。
17.根据权利要求12所述的方法,其中所述信息指定将用以内插所述有意跳过的视频帧中的选定视频块的内插方程,且其中所述有意跳过的视频帧中的所述选定视频块与后续的视频帧中的相应视频块之间的差值超过阈值。
18.根据权利要求12所述的方法,其中所述信息包括表示所述有意跳过的视频帧、先前的帧与后续的帧之间的运动的运动向量,所述方法进一步包含应用所述运动向量来内插所述有意跳过的视频帧。
19.根据权利要求12所述的方法,其中所述信息包括指示所述有意跳过的视频帧、先前的帧与后续的帧之间的差值的差值旗标,所述方法进一步包含应用所述差值旗标来内插所述有意跳过的视频帧。
20.根据权利要求19所述的方法,其中所述差值旗标包括绝对差值和(SAD)旗标以及指示相邻块中的相对SAD值的方向性旗标。
21.一种视频编码器,其包含分析单元,其分析有意跳过的视频帧,并产生辅助视频解码器内插所述有意跳过的视频帧的信息;和汇编单元,其将所述信息编码在视频帧中以供传输到所述视频解码器。
22.根据权利要求21所述的视频编码器,其中所述信息指定将由所述视频解码器用以内插所述有意跳过的视频帧的内插方程。
23.根据权利要求21所述的视频编码器,其中所述信息指定将由所述视频解码器用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程。
24.根据权利要求23所述的视频编码器,其中所述选定视频块包含实质上少于所述有意跳过的视频帧中的所有视频块的视频块,从而减少所述经编码信息的数量。
25.根据权利要求21所述的视频编码器,其中所述信息包括方程标号图,所述方程标号图指定将由所述视频解码器用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程。
26.根据权利要求21所述的视频编码器,其中所述分析单元评估不同内插方程用于所述视频帧中的视频块的结果,且基于所述结果产生以下信息其指定将由所述视频解码器用以内插所述跳过的视频帧中的选定视频块的特定内插方程。
27.根据权利要求21所述的视频编码器,其中所述分析单元确定所述有意跳过的视频帧中的视频块与后续的视频帧中的相应视频块之间的差值。识别产生超过阈值的差值的视频块;和产生包括以下内容的信息指定将由所述视频解码器用以内插所述有意跳过的视频帧中的经识别的视频块的特定内插方程。
28.根据权利要求21所述的视频编码器,其中所述信息包括表示所述有意跳过的视频帧、先前的帧与后续的帧之间的运动的运动向量。
29.根据权利要求21所述的视频编码器,其中所述信息包括指示所述有意跳过的视频帧、先前的帧与后续的帧之间的差值的差值旗标。
30.根据权利要求29所述的视频编码器,其中所述差值旗标包括绝对差值和(SAD)旗标以及指示相邻块中的相对SAD值的方向性旗标。
31.一种包含内插单元的视频解码器,其接收辅助内插有意跳过的视频帧的信息,其中所述信息被编码在视频帧中,且应用所述信息以内插所述有意跳过的视频帧。
32.根据权利要求28所述的视频解码器,其中所述信息指定将用以内插所述有意跳过的视频帧的内插方程。
33.根据权利要求28所述的视频解码器,其中所述信息指定将用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程。
34.根据权利要求33所述的视频解码器,其中所述选定的视频块包含实质上少于所述有意跳过的视频帧中的所有视频块的视频块,从而减少所述信息的数量。
35.根据权利要求31所述的视频解码器,其中所述信息包括方程标号图,所述方程标号图指定将用以内插所述有意跳过的视频帧中的选定视频块的不同的内插方程。
36.根据权利要求31所述的视频解码器,其中所述信息指定将用以内插所述有意跳过的视频帧中的选定视频块的内插方程,且其中所述有意跳过的视频帧中的所述选定视频块与后续的视频帧中的相应视频块之间的差值超过阈值。
37.根据权利要求31所述的视频解码器,其中所述信息包括表示所述有意跳过的视频帧、先前的帧与后续的帧之间的运动的运动向量。
38.根据权利要求31所述的视频解码器,其中所述信息包括指示所述有意跳过的视频帧、先前的帧与后续的帧之间的差值的差值旗标。
39.根据权利要求38所述的视频解码器,其中所述差值旗标包括绝对差值和(SAD)旗标以及指示相邻块中的相对SAD值的方向性旗标。
全文摘要
本发明针对用于对视频帧进行编码器辅助式自适应内插的技术。根据所揭示的技术,编码器产生辅助解码器内插跳过的视频帧(即S帧)的信息。所述信息允许所述解码器减少内插帧中的视觉假象,且进而实现改进的视觉质量。所述信息可包括内插方程标号,所述内插方程标号针对个别视频块识别将由解码器使用的选定的内插方程。视情况而定,为节省带宽,可仅针对符合用于编码器辅助式内插的标准的选定视频块传输所述方程标号。可根据默认内插技术来内插不具有方程标号的其它视频块。
文档编号H04N7/46GK101044763SQ200580035535
公开日2007年9月26日 申请日期2005年8月18日 优先权日2004年8月18日
发明者格克切·戴恩, 哈立德·希勒米·厄勒-马列, 李彦辑 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1