用于以帧间或帧内模式编码视频图像的方法和设备的制作方法

文档序号:7952562阅读:278来源:国知局
专利名称:用于以帧间或帧内模式编码视频图像的方法和设备的制作方法
技术领域
本发明涉及一种使用图像块帧内或帧间编码模式对图像序列的视频图像进行编码的方法和设备。
更具体地说,这一领域是使用分别基于图像之间的运动补偿、空间补偿以及块变换的帧间和帧内编码算法的视频压缩领域。所覆盖的环境是MPEG-4AVC标准(也称作MPEG-4部分10或H.264)背景技术MPEG-4AVC视频编码标准引入了比在先的标准要复杂得多的帧内编码,因为其包括空间补偿编码的不是源宏块,而是该源宏块与源自已经编码了的相邻宏块的像素之间的差异。
可以对大小为16×16的单个块或者大小为4×4的16个独立块执行亮度的帧内差分编码。可能的预测数目是极其丰富的,因为对4×4的块定义了九个模式,并且对16×16的块定义了四个模式。
图1示意性地示出了对4×4块的亮度的各种帧内编码模式。图2示出了对16×16块的亮度的不同帧内编码模式。
文档ITU-T Rec.H.264(2002E)(也参考了ISO/IEC FCD14496-10)在题为“帧内预测”的8.5章中描述了这些不同的编码模式。附图使用该标准的英文术语,从而更易于引用。应该指出,不存在纯帧内编码模式;该标准的所有帧内模式都是差分模式。利用从对16×16帧内模式所定义的四种可能性中所选择的预测,对大小为8×8的单个块执行色度的帧内编码。
因此,帧内编码判决比在先的标准要复杂得多。除了计算复杂度之外,帧内编码的实施方式带来了因果性的问题,因为在预测中所使用的相邻像素是重构的像素,也就是说是先以帧间或帧内方式编码然后解码的。该标准的基准编码模式(这是通用模式)描述了一种没有考虑实时操作的约束的通用句法。计算复杂度以及帧内编码的因果链不是这种模式的主题。
当希望实时应用时,例如在标准电视格式中,由于要测试大量编码模式,所以出现处理时间的问题。根据电视扫描来执行对图像宏块的编码,只有在处理完前一宏块之后才能执行对当前宏块的帧内模式的测试。在硬件实施(顺序执行测试)时出现问题。

发明内容
本发明的目的之一是缓解前述缺点。本发明的主题是一种以帧间或帧内模式编码视频图像的方法,包括-将图像转换为图像宏块的步骤,-根据成本和/或质量因素标准,对当前宏块从帧间模式以及帧内模式中选择至少一种编码模式的步骤,其中帧间模式取决于对该宏块分为块的划分,并且使用一个或多个在先编码的图像中这些块的运动补偿,帧内模式取决于对该宏块分为块的划分,并且使用该图像中这些块的空间补偿,使用补偿来计算预测值以及要编码的相应残差,宏块的帧间或帧内编码模式对应于构成该宏块的块的帧间或帧内编码模式的组合,其特征在于-所述选择步骤分为两个顺序步骤用于从帧内编码模式中预先选择当前宏块的帧内模式的预选择帧内编码模式步骤,以及作为对当前宏块的有效编码的一部分、用于从帧间模式和预先选择的帧内模式中选择编码当前宏块的模式的编码判决步骤,以及在对前一宏块的编码判决步骤期间执行对当前宏块的预选择步骤。
根据具体实施例,前一宏块属于前一图像,而当前宏块属于当前图像,在对前一图像的宏块进行有效编码期间存储当前图像。
根据具体实施例,前一宏块属于当前图像的宏块中的前一行,而当前宏块属于宏块中的当前行,在对前一行的宏块进行有效编码期间存储宏块的当前行。
根据具体实施例,预选择步骤包括对图像的宏块进行一次或多次划分,分为不同大小的块,对它们执行空间补偿以计算残差,对宏块编码的成本是对构成该宏块的块进行编码的成本的总和。
根据具体实施例,帧内模式与以其值为基础来计算预测值的像素的选择相关。
根据具体实施例,块的帧内模式至少是H.264标准中定义的16×16以及4×4帧内模式。
根据具体实施例,宏块中块的帧内模式的成本和/或质量因素是如此获得的根据在为该宏块中的该块选择这一帧内编码模式时对块进行编码的有效方法,对该块执行编码。
根据具体实施例,宏块中块的帧内模式的成本和/或质量因素是如此获得的分别基于与根据该帧内模式编码的数据相关的流的句法、以及要编码的源块与根据该帧内模式预测的块之间的差来执行估计。
本发明还涉及一种用于根据成本和/或失真标准以多种帧间编码模式以及多种帧内编码模式中带有运动补偿的帧间模式或带有空间补偿的帧内模式来对视频图像进行编码的设备,其特征在于包括-第一遍帧内编码电路,其对图像或图像的一部分执行帧内编码,以从一组帧内编码模式中选择一种编码模式,-存储器,用于在第一遍期间存储图像或图像的一部分,-编码判决电路,用于对由所述存储器发送的存储图像或图像的一部分,在帧间类型的编码模式与由所述第一遍帧内编码电路发送的选中的帧内类型的编码模式之间做出判决。
所提出的解决方案包括在对所有图像进行帧内编码的环境中进行帧内编码判决,以及在对P和B图像进行编码的最终判决过程中重新使用该帧内判决。然后可以将该最终过程限制为从N个可能的帧间预测模式以及一个帧内预测模式中选择最佳预测模式,在第一遍编码期间进行选择。
由于实现了对图像的第一遍帧内编码,所以不再必须等待对宏块的处理结束来计算以各种帧内模式编码随后宏块的成本。


在下面作为非限制性示例给出的描述中,并且参考附图,本发明的其他具体特征以及优点将清楚起来,其中图1示出了根据现有技术的4×4帧内编码模式;图2示出了根据现有技术的16×16帧内编码模式;图3示出了编码电路的图;图4示出了第一遍帧内编码电路的图。
具体实施例方式
图3描述了用于实现根据本发明的方法的编码设备。
在所描述的示例中,第一遍帧内编码是逐个图像进行的,这生成了一个图像周期的延迟。所选择的帧内模式与图像的每个宏块相关联。类似地,对完整的图像进行运动估计,所生成的运动向量字段将运动向量关联到图像的每个宏块。
图像序列由该序列的预处理电路(图中未示出)来处理,除了其他功能之外,该预处理电路还执行构造为图像组或GOP、选择每个图像类型(I、P或B,即,帧内、预期或延期预测、或双向)以及重排图像。在重排之后,视频序列的每个源图像发送到图3所示的设备的输入端,该输入端连接到第一遍帧内编码电路(标号1)、延迟及转换为图像块电路(标号2)、以及运动估计电路(标号3)。
第一遍帧内编码电路1对接收到的视频图像的块以帧内模式进行编码,无论其是I、P或B类型。于是,对每个宏块测试前述各种16×16帧内以及4×4帧内模式,其中电路基于成本/质量因素函数(考虑编码的成本以及编码后宏块的失真),为宏块选择16×16帧内模式,或者为宏块的每个块选择4×4帧内模式。
运动估计电路3在第一输入端接收源图像,并且在第二输入端接收来自重构图像存储器11的重构图像。其与每个图像的宏块运动向量相关联,这对应于将源图像的宏块中的块与重构图像的块进行相关的计算。取决于要编码的图像类型,这可能是前一或下一图像或者是这两者的组合。相关联的运动向量对应于将宏块分为块的各种划分;例如,存在从组成宏块的大小为16×16、16×8、8×8等块的相关性中得到的向量。
将涉及在第一遍帧内编码期间所选择的帧内编码模式的信息发送到宏块级别的编码判决电路(标号4)。该电路的功能是对于类型P或B的不同图像的宏块在所选择的帧内编码模式与帧间类型编码模式之间做出选择。
延迟及转换为图像块电路(标号2)在第一遍帧内编码期间存储每个图像。如此延迟的图像也被划分为宏块和块。宏块发送到宏块等级的编码判决电路4。同样,要编码的宏块的每个4×4源块以传统方式发送到减法器5,减法器5在第二输入端接收相应的预测块。减法器输出端的4×4亮度块(称作预测误差块)发送到整数及量化离散余弦变换或DCT(标号6),以便然后将量化系数的块或残差的块提供给熵编码电路7,该电路对量化及串行化的值进行熵编码,并且提供给设备输出端处的缓冲存储器8。调整电路9(在量化器6的量化步骤中起作用)使用缓冲存储器8的填充速率来调整编码器的数据流的速度。
当宏块级别的编码判决电路4选择了帧间模式时,其确定开关17的位置,以便将运动补偿电路10的输出连接到减法器5。运动补偿电路基于针对该宏块的由宏块级别的编码判决电路发送的帧间编码模式以及运动估计电路发送的运动向量,从重构图像的存储器11中读取与这一或这些运动向量相对应的重构图像块或多个块,以计算要发送到减法器第二输入端的预测4×4块,这是与减法器第一输入端上出现的处理过的宏块的4×4块相对应的预测图像块。
当宏块级别的编码判决电路4选择了帧内模式时,其确定开关17的位置,以便将空间补偿电路16的输出连接到减法器5。然后将与减法器第一输入端上出现的处理过的宏块的4×4块相对应的预测图像块发送到减法器的第二输入端。空间补偿电路16从宏块行存储器15读取与由所选择的帧内编码模式(宏块级别的编码判决电路4发送的模式)定义的预测块相对应的像素的亮度值。
离散及量化余弦变换电路6输出端处的量化系数的块也发送到反量化和反离散余弦变换电路(标号12),以提供亮度块。利用加法器13将预测块加到该块中。如此重构的块发送到宏块行存储器15(存储宏块的最后一行)。其还发送到过滤器14,过滤器14衰减块效应。滤波后的块存储在重构图像存储器11中。
第一遍帧内编码电路1可以在这一遍帧内编码中基于不同模型来选择最佳的帧内模式,例如,基于实际编码(这是“后验”模型),或者基于成本/失真双重的估计(这是“先验”模型)。
在第一种情形中,第一遍帧内编码电路的帧内模式判决模块通过使用九个可能的4×4帧内模式以及四个16×16帧内模式,对每个4×4块执行完全编码。对于宏块中每个块的4×4帧内模式,计算编码成本,并计算失真(源块与重构块之间的差别的函数)。为宏块中的每个块选择与最佳的成本/失真折衷相对应的模式。然后将与所选择的4×4帧内模式的组合相对应的全局宏块等级的编码成本和编码失真与16×16帧内模式的成本和失真相比较。因此,该模块由一组功能是执行各种帧内编码操作的模块组成尤其是包括减法器、用于提供残差的DCT计算电路及量化器、反DCT及量化电路、用于重构块的加法器、存储器、用于计算预测块的运动补偿,稍后将参考图4对此进行描述。
在第二种情形(先验模型)中,帧内模式判决模块不计算重构块,而是基于预测误差来估计编码/失真成本。在AVC标准的基准模型中提出了这种解决方案。从源块而不是重构块提取预测值。例如,使用SATD(绝对变换差的和)函数。使用各种4×4以及16×16帧内编码模式,以通过从源亮度中减去与这些模式相对应的预测亮度,给出构成宏块的每个4×4块的预测误差。然后,对预测误差块的Hadamard变换提供以绝对值求和的系数或残差。还可以对预测误差的平方进行求和。所获得的和指示失真(作为第一近似)。成本的计算可以局限于这种句法(即,宏块的头部),而不考虑系数编码成本。该模块除了其他之外包括减法器以及变换计算电路。
至于第一遍帧内编码中的帧内编码模式的选择,宏块级别的编码判决电路4所执行的最佳帧间/帧内编码模式的选择可以基于实际编码或基于成本/失真对的估计。
在第一种情形(实际编码)中,该电路包括用来计算帧间及帧内编码成本并且由此计算宏块和残差的预测块的所有前述模块。除了其他之外,这包括减法器、DCT计算电路、量化器、反DCT及量化电路、用于重构块和宏块的加法器、用于计算预测块的运动补偿。更具体地说,关于帧内模式,如果需要精确计算,则预测块的计算实际上是必须的,因为这不同于在第一遍时对该块所计算的预测块以及选中的帧内模式。第一遍帧内模式执行纯帧内编码,也就是说图像的所有宏块都以帧内模式来编码。宏块级别的编码判决电路所选择的有效编码模式可以是帧间或帧内模式,因此从以帧间模式编码的宏块得到的以及因此从重构值得到的帧内模式的计算的预测值完全可能不同于第一遍时所计算的值。
在第二种情形(估计值)中,可以分别仅仅针对句法的成本以及源块与预测块之间的差来估计成本和失真。然而,在一种允许简化体系结构的变例中,可以通过使用源块而不是重构块的预测值,使用由第一遍帧内编码电路对所选中的帧内模式计算的成本/失真信息,来估计帧内模式的失真。
现在将参考图4描述根据“后验”模型的第一遍帧内编码电路1。
将源图像提供给该电路的输入端。图像块转换电路将4×4像素尺寸的块提供给提供离散余弦变换的减法器电路22及量化电路23。该电路连接到熵编码电路24以及反量化和反变换电路25。将预测块发送到减法器22的第二输入端。反量化和反离散余弦变换电路25执行电路23的反操作。加法器26在第一输入端接收源自电路25的先编码然后又解码了的块,并且在第二输入端接收预测块,以在其输出端提供重构帧内块。
该帧内图像块存储在宏块行存储器27中。空间补偿电路28根据从宏块级别的帧内编码判决电路(标号21)接收到的要测试的帧内编码模式,从存储器27读取要测试的块的预测值(在减法器电路22的第一输入端),以便计算在减法器22的第二输入端上出现的预测块。帧内编码判决电路21检查各种宏块级别的帧内编码模式。其从熵编码电路接收数据流,使得可以计算基于该句法进行编码的成本。
在第一遍帧内编码期间对完整的图像执行所述的运动估计。在宏块编码期间,以更传统的方式逐个宏块进行这种运动估计是可行的。
类似地,根据前面的描述逐个图像执行第一遍帧内编码。在宏块中逐行执行这种第一遍编码是可行的。如果所使用的标准允许将图像划分为宏块对,例如在文档ITU-T Rec.H.264(2002E)的题为“宏块地址的计算”的段落6.3中所描述的那样,则可以在宏块中两行两行地执行第一遍处理。那么,该过程(称作第一遍)引起的延迟不是对应于完整的图像,而是对应于宏块的一行或者两行。延迟电路2使得可以存储要编码的当前图像、在关于第一遍的处理或预分析期间要编码的宏块的行。因此,延迟对应于图像的持续时间,在这些示例中对应于宏块的一行或两行的持续时间。在存储图像(宏块的行)期间执行对前一图像(前面的行)的有效编码,这种编码包括宏块级别的编码判决步骤。
已经针对4×4像素尺寸的块的情形描述了将宏块划分为图像块。将宏块任意划分为帧内模式所定义的其他尺寸的块形成了本发明领域的一部分,本发明在宏块的可能帧内模式数目(至少等于构成宏块的块的帧内模式的可能组合的数目)增加时,其价值也增加。当然也可以考虑将宏块划分为彼此之间大小不同的块的模式。MPEG4-AVC标准提出了一种称作“高端类”的类(profile),这允许以与所述的九个4×4帧内预测模式相似的方式来编码8×8尺寸的块。
根据示例性实施例,将源图像划分为图像宏块(宏块由MPEG标准定义)。这当然包括示例,并且本发明同样适用于将图像划分为图像块的任意类型的划分,这样的话应该更一般地来考虑宏块,即,这是一组块,其中每个块可以是特定帧内编码模式的主题,这些块的组合定义宏块的帧内编码模式。
仍然测量由于使用该方法而引起的编码质量的损失。这使得可以并行进行判决过程,并且可以在合适的地方删除在宏块与其随从之间存在的约束因果链,以便计算帧内预测。
本发明的领域是基于使用运动补偿及空间补偿的编码方案。具体地说,其包括允许开发出对标准电视图像进行实时编码的产品的MPEG-4 AVC标准以及“硬件”体系结构。
所提出的方法不包括产品流的完整性,因为这影响选择编码模式的过程而不影响编码本身。具体地说,如果在帧间/帧内判决过程中最终选择了帧内编码模式,则将使用相邻的、在先编码并解码的像素来编码宏块或块,以便遵从该标准。
权利要求
1.以帧间或帧内模式编码视频图像的方法,包括-将图像转换为图像宏块的步骤(2),-根据成本和/或质量因素标准,对当前宏块从帧间模式以及帧内模式中选择至少一种编码模式的步骤(4),其中帧间模式取决于将宏块分为块的划分,并且使用一个或多个在先编码的图像中这些块的运动补偿(10),帧内模式取决于将宏块分为块的划分,并且使用图像中这些块的空间补偿(16),使用补偿来计算预测值以及要编码的相应残差,宏块的帧间或帧内编码模式对应于构成该宏块的块的帧间或帧内编码模式的组合,其特征在于-所述选择步骤(4)分为两个顺序步骤用于从帧内编码模式中预先选择当前宏块的帧内模式的预选择帧内编码模式步骤(1),以及作为对当前宏块的有效编码的一部分、用于从帧间模式和预先选择的帧内模式中选择编码当前宏块的模式的编码判决步骤(4),以及在对前一宏块的编码判决步骤(4)期间执行对当前宏块的预选择步骤(1)。
2.根据权利要求1所述的方法,其特征在于前一宏块属于前一图像,而当前宏块属于当前图像,在对前一图像的宏块进行有效编码期间存储当前图像(2)。
3.根据权利要求1所述的方法,其特征在于前一宏块属于当前图像的宏块中的前一行,而当前宏块属于宏块中的当前行,在对前一行的宏块进行有效编码期间存储宏块的当前行。
4.根据权利要求1所述的方法,其特征在于预选择步骤(1)包括对图像的宏块进行一次或多次划分,划分为不同大小的块,对它们执行空间补偿以计算残差,对宏块编码的成本是对构成宏块的块进行编码的成本的总和。
5.根据权利要求1所述的方法,其特征在于帧内模式与以其值为基础来计算预测值的像素的选择相关。
6.根据权利要求1所述的方法,其特征在于块的帧内模式至少是H.264标准中定义的16×16以及4×4帧内模式。
7.根据权利要求1所述的方法,其特征在于宏块中块的帧内模式的成本和/或质量因素是如此获得的根据在为宏块中的块选择这一帧内编码模式时对块进行编码的有效方法,对块执行编码。
8.根据权利要求1所述的方法,其特征在于宏块中块的帧内模式的成本和/或质量因素是如此获得的分别基于与根据该帧内模式编码的数据相关的流的句法、以及要编码的源块与根据该帧内模式预测的块之间的差来执行估计。
9.一种用于根据成本和/或失真标准、以多种帧间编码模式以及多种帧内编码模式中带有运动补偿的帧间模式或带有空间补偿的帧内模式来对视频图像进行编码的设备,其特征在于包括-第一遍帧内编码电路(1),对图像或图像的一部分执行帧内编码,以从一组帧内编码模式中选择一种编码模式,-存储器(2),用于在第一遍期间存储图像或图像的一部分,-编码判决电路(4),用于对由所述存储器发送的存储图像或图像的一部分,在帧间类型的编码模式与由所述第一遍帧内编码电路发送的选中的帧内类型的编码模式之间做出判决。
全文摘要
该方法的特征在于,用于从帧间模式和帧内模式中选择一种编码模式的步骤(4)分为两个顺序步骤用于从帧内编码模式中预先选择当前宏块的帧内模式的预选择帧内编码模式步骤(1),以及用于从帧间模式和预先选择的帧内模式中选择编码当前宏块的模式的、作为对当前宏块的有效编码的一部分的编码判决步骤(4),并且在对前一宏块的编码判决步骤期间执行对当前宏块的预选择步骤。
文档编号H04N7/32GK1819658SQ20061000694
公开日2006年8月16日 申请日期2006年1月26日 优先权日2005年2月10日
发明者格扎维埃·迪克卢, 扬妮克·奥利维耶, 阿内·洛雷特 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1