背景技术
当今的标准化视频编码方法是基于混合编码的。混合编码提供了时域编码步骤和空间域编码步骤。首先,通过在待编码的图像块和来自已经发送的图像的参考块之间使用由运动矢量确定的基于块的运动补偿预测,减小了视频信号的时间冗余度。残余预测误差样本以多个块排列,并被变换到频域中,从而产生由系数构成的块。根据固定的众所周知的之字形扫描方案从代表DC值的系数开始对这些系数进行量化和扫描。根据典型的表示,此系数被置于块的左上角的低频系数之中。之字形扫描产生系数的一维数组,该数组中的系数由下一编码器进行熵编码。该编码器针对具有递减能量的系数数组进行优化。由于块内的系数顺序是预定的且固定的,如果各预测误差样本相关,则之字形扫描产生递减能量的系数数组。然后,可针对这种情况优化下一编码步骤。为此,最近的标准H.264/AVC提出了基于上下文的自适应二进制算术编码(CABAC)或上下文自适应可变长度编码(CAVLC)。但是,仅当各预测误差样本相关时,该变换的编码效率才是高的。对于在空间域中仅低程度地相关的样本,该变换是较为低效的。
通过对产生的预测误差按块进行变换编码,可减小空间冗余度。为了变换编码的目的,H.264/AVC施加整数变换来对16×16像素的宏块进行编码,该整数变换类似于离散余弦变换。变换的大小可对于8×8或4×4像素之间的每个宏块而改变,这由边信息(side information)用信号告知。在第一种情形下,对宏块施加4个8×8变换,在第二种情形下,对宏块施加16个4×4变换。取决于所施加的变换的大小,执行不同的量化过程。K.-P.Lim,G.Sullivan,T.Wiegand的“Text description of Joint ModelReference Encoding Methods and Decoding Concealment Methods”,Joint Video Team(JVT),doc.JVT-K049,Munich,Germany,March 2004中描述了大部分的应用于官方参考软件中的编码策略。
在8×8变换的情形下,在官方参考软件中进行如下量化。对于宏块的四个8×8预测误差块Bj(j=0,...,3)中的每一个执行变换,从而产生由8×8个系数ck,j(k=0,...,63)构成的块。如图1所示,每个系数由标量量化器量化。通过众所周知的之字形扫描从DC系数开始对量化系数c’k,j(k=0,...,63,j=0,...,3)进行扫描,从而产生64个量化系数c’k,j的一维数组。
在这些编码步骤之后,为了防止8×8块中的不等于零的个别量化系数被编码,执行第二量化步骤。这些不等于零的个别量化系数的编码可能需要高数据速率,但只是低程度地减小失真。为此,表征量化系数的重要性的值Ik,j与64个量化系数中的每一个相关联。三种情形得以区分。如果量化系数的绝对值为1,则值Ik,j取决于前面的零系数的数目Nk,j。下面的表1示出了Ik,j和Nk,j之间的依赖关系:
Nk,j |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Ik,j |
3 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
Nk,j |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
Ik,j |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
表1
因而,如果量化系数具有绝对值1且前面有3个或更少的零系数,则表征相应量化系数的重要性的值设定为3。如果前面有24个或更多的零系数,则表征相应系数的重要性的值设定为0。
对于64个量化系数c’k,j中的每一个,其绝对值大于1,则Ik,j设定为很大的值,比如999999。对于64个量化系数c’k,j中的每一个,其值为零,则Ik,j设定为零。所有64个值Ik,j相加,从而得到总和 在总和Ij小于阈值5的情形下,8×8块的所有量化系数设定为零,从而Ij也设定为零。
在确定了4个8×8预测误差块B1、B2、B3和B4的值I1,、I2、I3和I4之后,将这四个值相加,从而得到对于整个宏块而言的总和IMB。在IMB小于阈值6的情形下,宏块的所有256个量化系数设定为零。
在4×4变换的情形下,进行如下量化。宏块的每个8×8预测误差块Bj(j=0,...,3)划分成4个4×4块Pj,i(j=0,...,3,i=0,...,3)。对于四个4×4块中的每一个执行变换,从而得到由4×4个系数ck,j,i(k=0,...,15,j=0,...,3,i=0,...,3)构成的块。如图1所示,每个系数由标量量化器量化。从DC系数开始对四个4×4块中的每一个的量化系数c’k,j,i进行之字形扫描,从而得到16个量化系数c’k,j,i的一维数组。
在这些编码步骤之后,为了防止8×8块中的不等于零的个别量化系数被编码,执行第二量化步骤。在此第二量化步骤中,考虑8×8块的四个4×4块的所有64个量化系数。为了量化的目的,值Ik,j,i与64个量化系数中的每一个相关联。三种情形得以区分。如果量化系数绝对值为1,则值Ik,j,i取决于前面的零系数的数目Nk,j,i。下面的表2示出了Ik,j,i和Nk,j,i之间的依赖关系。
N k ,j,i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
I
k
,j,i
|
3 |
2 |
2 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
表2
对于64个量化系数c’k,j,i中的每一个,其绝对值大于1,则Ik,j,i设定为很大的值,比如999999。对于64个量化系数c’k,j,i中的每一个,其值为零,则Ik,j设定为零。对于每个8×8预测误差块Bj,将所有64个值Ik,j,i相加,从而得到总和 在总和Ij小于阈值5的情形下,8×8块的所有量化系数设定为零,从而Ij也设定为零。
在确定了4个8×8预测误差块B1、B2、B3和B4的值I1,、I2、I3和I4之后,将这四个值相加,从而得到对于整个宏块而言的总和IMB。在IMB小于阈值6的情形下,宏块的所有256个量化系数设定为零。
因而,在8×8变换和4×4变换的情形下,对预测误差块的系数进行量化,为了防止8×8块中的不等于零的个别量化系数被编码,执行又一个量化步骤。因此,为了显著减小数据速率同时使失真只是低程度地增大,给出将被认为相关性很小的一些系数设定为零的规则。
发明内容
因此,本发明的一个目的是提供混合视频编码的一种增强的量化。
根据本发明的一个方面,提供了一种采用混合编码对视频信号进行编 码的方法,包括:通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度;对预测误差信号或对预测误差信号向频域中变换而产生的系数进行量化以获得量化值,量化值分别代表量化样本或量化系数;计算量化值的量化效率;计算当量化值被设定为零时量化的零效率;选择较高的效率;并取决于所选择的效率而保持量化值或将量化值设定为零以便进行进一步的操作。
因而,为了减小时间冗余度,通过基于块的运动补偿预测来建立预测误差信号。为了进行编码,基于此预测误差信号实行量化以获得量化值。此量化可直接对预测误差信号进行,从而产生空间域中的第一量化样本。根据又一种可能性,将预测误差信号首先变换到频域中,从而产生系数。随后,对这些系数进行量化,从而得到量化系数。在下一步中,应该增强此量化的结果。亦即,应该将一些值(样本或系数)在编码前设定为零。这对于分别需要高数据速率但可能只是低程度地减小失真的样本或系数是有用的。由此,计算量化的量化效率。亦即,考虑到保持量化值的努力和益处而进行计算。将此量化效率与零效率作比较。零效率是针对量化值(分别是样本或系数)被设定为零的情形而计算的。亦即,与零效率的比较考虑到了对样本或系数编码所需的努力可能是小的,但另一方面,也带来了关于编码信号质量的缺点。
随后,将量化效率与零效率相互比较。因而,如果保持量化的量化值的效率优于将所有量化值设定为零的效率,则使量化值保持不变。另一方面,如果将第一量化值设定为零的效率较好,则将相应量化值设定为零。
因而,为了正确地决定要将所有量化值(样本或系数)设定为零还是要将它们保持不变,针对两种可能性都计算效率。因而,本发明提供了一种分别对样本或系数的量化的优化,其对于计算出的效率总是选择两种方案中的最佳方案。本方法将两种可能性都加以考虑,由此避免了选择这样的选择:其被断定是好的选择,即使另一个选择证明是更好的。
根据本发明的一个方面,误差信号包括宏块。一次对于一个宏块执行本编码方法。每个宏块被细分成多个子块。例如,宏块包括16×16个像素,并且被细分成4个8×8子块。然后,对这些子块中的每一个进行第一量化。如果涉及向频域中的变换,则在量化之前对子块进行此变换。
随后,对于每个子块,计算第一量化的量化效率和当所有量化值(样本或系数)被设定为零时量化的零效率。对于每个子块比较这些效率,以决定保持相应子块的量化值还是将其设定为零。随后,计算宏块的所有子 块的量化的总体量化效率和当宏块的所有值(样本或系数)被设定为零时总体量化的总体零效率。比较宏块的这些总体效率,从而确定供进一步操作的量化值。亦即,如果总体量化效率优于总体零效率,则使量化值保持不变,否则将所有量化值(样本或系数)设定为零。
根据本发明的一个方面,基于代价函数来计算效率。这样的代价函数考虑到值的相应量化或设定为零的正面和负面效果。
根据一个方面,代价函数是基于速率失真代价的,其中速率失真代价一方面是依据所需速率另一方面是依据所产生的失真而计算的。编码所需速率是对相应块的值进行编码所需的所有比特的总和,其可包括用于边信息的一些比特。
本发明的又一个方面规定了额定失真代价是基于所需速率与额定失真之和的。因此,通过将所需速率与失真相加来获得每个效率的值,其中失真被加权。失真的权重可取决于一个或多个参数,比如量化器步长。当然,还可设定额定的所需速率,或者可设定额定的所需速率而不设定额定失真。
根据本发明的一个方面,利用等式Cj=Dj+L*Rj来计算速率失真代价Cj,其中Dj代表量化产生的失真,Rj代表对量化值进行编码所需的速率,L是拉格朗日参数,索引j表示相应子块。失真可被计算为平方后的量化误差的总和或平均绝对量化误差。当然,还存在评价失真的其他可能性。
根据本发明的一个方面,本方法规定了决定要将预测误差信号变换到频域中还是要将预测误差信号保持在空间域中。另外,本方法规定了检查第三种可能性,即,将预测误差信号的值(样本或系数)设定为零。因而,根据此方面的本发明规定了在这三种可能性中选择。对于每个块(比如针对其产生了预测误差信号的宏块)进行此选择。
如果选择将预测误差信号的(即,当前块的)值(样本或系数)设定为零,则可将结果处理为空间域中的预测误差信号或频域中的经变换的预测误差信号。
根据本发明的一个方面,提供了一种采用混合编码对视频信号进行编码的编码器,该编码器包括:用于通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度的装置;用于对预测误差信号进行量化以建立量化样本或量化系数的量化装置;适于计算并比较量化效率和零效率以选择导致较高效率的量化并取决于所选择的量化而分别保持量化样本或量 化系数或将它们设定为零的控制装置。
根据本发明的一个方面,提供了一种基于混合编码的对视频信号进行编码的方法。该方法包括以下步骤:通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度;并决定要将预测误差信号变换到频域中还是要将预测误差信号保持在空间域中。
根据本发明的一个对应方面,提供了一种适于对视频信号应用混合编码的编码器。该编码器包括:用于通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度的装置;以及用于决定要将预测误差信号变换到频域中还是要将预测误差信号保持在空间域中的装置。根据本发明的此方面,提供了概念和相应的设备、信号和语义以自适应地决定要在频域中还是在空间域中处理预测误差信号。如果各预测误差样本只有小的相关性,那么,与对频域中的系数进行编码相比,后续的对样本进行编码的步骤可能效率更高,并且将导致减小的数据速率。因此,本发明实现了用以作出决定的自适应决定步骤和自适应控制装置。因而,鉴于预测误差信号,决定要采用频域变换还是要将预测误差信号保持在空间域中。后续的编码机制可与用于频域的编码机制相同,或者可被专门修改以适合于空间域中的样本的需要。
根据本发明的另一个方面,对视频信号进行编码的方法、尤其是决定步骤是基于代价函数的。通常,要采用频域中的系数还是空间域中的样本的决定可基于各种决定机制。该决定可针对视频信号的特定部分内的所有样本同时地、或例如甚至针对特定数目的块、宏块或片段而作出。该决定可基于代价函数,例如拉格朗日函数。针对频域中的编码和空间域中的编码而计算代价。另外,针对将值设定为零而计算代价。针对具有较低代价的编码作出决定。
根据本发明的另一个方面,代价函数包括空间域编码和频域编码的速率失真代价。根据本发明的再一个方面,速率失真代价可通过所需速率以及由拉格朗日参数加权而得到的失真来计算。此外,失真量度可以是均方量化误差或平均绝对量化误差。
根据本发明的一个方面,空间域中的样本可通过与用于频域中的系数的方法基本上相同的方法进行编码。这些方法可包括CABAC或CAVLC编码方法。CABAC代表基于上下文的自适应二进制算术编码,而CAVLC代表上下文自适应可变长度编码。最近的标准H.264/AVC中提供了这些种类的编码。因而,如果自适应控制装置决定在频域和空间域之间切换, 则只需要很少地修改编码机制或完全不需要修改编码机制。然而,也可规定对于这两个域中的系数采用不同的编码方案。
根据本发明的另一个方面,提供了一种基于混合编码的对视频信号进行编码的方法。根据本发明的此方面,通过基于块的运动补偿预测来减小时间冗余度,并且在空间域中的预测误差块中提供预测误差信号的样本。为了提供呈特定顺序的样本数组,从预测误差块中扫描样本。根据本发明的此方面,规定了扫描方案是从预测误差图像或预测图像得出的。根据本发明的此方面的扫描方案考虑了如下效应:根据现有技术用于频域的之字形扫描可能不是对于空间域而言最高效的扫描顺序。因此,提供了一种自适应扫描方案,它考虑了空间域中样本的分布和样本的幅度。扫描方案可优选地基于预测误差图像或预测图像。本发明的此方面考虑了具有最高幅度的样本和最有可能为零的样本的最有可能的位置。由于频域编码增益主要基于低频分量具有较大幅度且大部分高频系数为零这一现象,所以可应用非常有效的可变码长度的编码方案,如CABAC或CAVLC。然而,在空间域中,具有最高幅度的样本可位于块内的任何位置。然而,由于预测误差通常在运动物体的边缘处最高,所以可利用预测图像或预测误差图像来建立最高效的扫描顺序。
根据本发明的一个方面,可利用预测图像的梯度来识别具有大幅度的样本。扫描顺序沿着预测图像内的梯度(按其幅度顺序)。然后,将相同的扫描顺序应用于预测误差图像,即,空间域中的预测误差图像中的样本。
此外,根据本发明的再一个方面,扫描方案可基于结合了参考块的预测误差图像的运动矢量。扫描按降序沿着预测误差的幅度。
根据本发明的一个方面,扫描方案是从结合了运动矢量的参考块的预测误差图像和预测图像的梯度的线性组合得出的。
根据本发明的另一个方面,编码机制(例如CABAC等)所特有的码是基于为频域中的系数或空间域中的样本分别确定的概率而使用的。因而,为了提供对于空间域而言最高效的编码机制,可至少稍微地修改众所周知的现有技术的编码机制。因而,可进一步修改为了在空间域中或在频域中编码而被自适应地控制的切换机制,以切换随后的用于空间域中的样本或频域中的系数的编码步骤。
根据本发明的一个方面,提供了一种对视频信号进行编码的方法,该方法包括由量化器量化空间域中的预测误差样本的步骤,该量化器具有主 观加权量化误差优化或均方量化误差优化。根据本发明的此方面,可修改用于量化空间域中的样本的量化器,以考虑图片的主观最佳视觉印象。然后,可基于预测误差信号的相应主观或统计特性而修改量化器的典型水平和决定阈值。
此外,本发明还涉及根据上面阐述的多个方面的解码方法和解码设备。根据本发明的一个方面,提供了一种解码器,其包括用于自适应地判定编码视频信号的输入流代表该编码视频信号在空间域中还是在频域中的预测误差信号的自适应控制装置。因而,根据本发明的此方面的解码器适于对输入数据流作出判定,即,判定预测误差信号是在频域中还是在空间域中编码的。此外,解码器为空间域或频域这两个域分别提供相应的解码装置。
此外,根据本发明的再一个方面,解码器包括基于预测信号或预测误差信号而提供扫描顺序的扫描控制单元。根据本发明的此方面的扫描控制单元适于检索关于扫描顺序的必要信息,在对视频信号进行编码的过程中以此扫描顺序扫描了块的输入样本。此外,解码器可包括用以对频域中的系数进行逆量化和逆变换或者对空间域中的样本进行逆量化的所有手段。解码器还可包括提供运动补偿和解码的机制。从根本上说,解码器可被配置成提供用以实施与上述编码步骤对应的方法步骤的所有手段。
根据本发明的再一个方面,提供了代表编码视频信号的数据信号,其中数据信号中的预测误差信号的编码信息部分地在空间域中编码,部分地在频域中编码。本发明的此方面涉及编码视频信号,如上所述,它是编码机制的结果。
此外,根据本发明的再一个方面,数据信号可包括表明片段、宏块或块在其中编码的域的边信息,具体而言是片段、宏块或块是在空间域中还是在频域中编码的信息。由于根据本发明的自适应控制规定了预测误差信号在空间域中或在频域中编码,所以有必要将相应信息包含在编码视频信号中。因此,本发明还提供了表明诸如片段、宏块或块这样的特定部分在其中编码的域的特定信息。此外,本发明的此方面还考虑了整个宏块或整个片段只可在这两个域之一中编码的可能性。因此,如果例如整个宏块在空间域中编码,则这可由单个标记等表示。此外,甚至整个片段只可在频域中或在空间域中编码,可为该整个片段将相应标记包含在数据流中。这导致减小的数据速率和对于边信息而言更高效的编码机制。
具体实施方式
根据图2,从输入信号1中减去预测信号4以提供预测误差信号5。预测误差信号5由变换块6变换成频域中的信号8。信号8在块7中被量化。量化信号20被输入到熵编码器13进行编码,熵编码器13输出编码信号16以供发送、存储等。量化信号20亦在块10中被逆量化,并被传给块11以逆变换回到空间域中。随后,块11的信号输出被进一步用于提供下一预测信号4。帧存储器22、运动补偿预测块3、运动估计块2以及用于对运动信息进行编码的块17等价于图4中的块122、103、102和117。
根据本发明,量化块7执行增强量化。下面详细描述两个一般实施例。但是,本发明不限于这些实施例。
在两种情形下均提供预测误差信号5,其包括具有16×16个像素的宏块。16×16宏块根据一个实施例细分成四个8×8块,或根据另一个实施例细分成16个4×4块。在第一步中,借助于变换块6将每个8×8块或每个4×4块分别变换到频域中。因而,信号8分别包含经变换的8×8块或4×4块。随后,在量化块7中进行这些8×8块或4×4块的第一量化,量化块7进一步进行增强量化。
在8×8变换的情形下,根据本发明的一个实施例的方法如下工作。
对于宏块的四个8×8预测误差块Bj(j=0,...,3)中的每一个,以与现有技术中描述的方式相同的方式执行变换和量化的第一步骤。在本发明中,增强了下一量化步骤。
为此,对于每个8×8块计算速率失真代价Cj=Dj+L·Rj。Rj是所需速率,Dj是产生的失真,L是拉格朗日参数。平方后的量化误差的总和被用作失真量度,但是其它量度也是可以的,例如平均绝对量化误差。常用于H.264/AVC的编码器控制的拉格朗日参数被用作拉格朗日参数L:L=0.85·2(QP-12)/3。QP是控制量化器步长Δ的量化参数。还可以用其它方法来确定速率失真代价。这些代价与当8×8预测误差块的所有量化系数被设定为零时导致的代价Cj相比较。选择导致较低代价的量化。
在确定了宏块的4个8×8块的代价C1、C2、C3和C4之后,计算四个代价的总和CMB。此总和与当宏块的所有量化系数被设定为零时导致的代价相比较。再次选择具有较低代价的量化。
在4×4变换的情形下,根据本发明的一个实施例的方法如下工作。
对于宏块的十六个4×4预测误差块Bj(j=0,...,15)中的每一个,以与现有技术中描述的方法相同的方法执行变换和量化的第一步骤。在本发明中,增强了后续的第二量化步骤。
为此,对于每个4×4块计算速率失真代价Cj=Dj+L·Rj。Rj是所需速率,Dj是产生的失真,L是拉格朗日参数。平方后的量化误差的总和被用作失真量度,但是其它量度也是可以的,例如平均绝对量化误差。常用于H.264/AVC的编码器控制的拉格朗日参数被用作拉格朗日参数L:L=0.85·2(QP-12)/3。QP是控制量化器步长Δ的量化参数。还可以用其它方法来确定速率失真代价。这些代价与当4×4预测误差块的所有量化系数被设定为零时导致的代价Cj相比较。选择导致较低代价的量化。
在确定了宏块的十六个4×4块的代价C1至C16之后,计算十六个代价和总和CMB。此总和与当该宏块的所有量化系数被设定为零时导致的代价相比较。再次选择具有较低代价的量化。
根据这些实施例,对于每个8×8块或对于每个4×4块分别计算速率代价失真,并将其与当相应块的所有系数被设定为零的情形相比较。根据每一个比较,相应块的系数被保持或被设定为零。此外,保留每个块的相应速率失真代价以供进一步计算。亦即,对于每个块,如果作为比较的结果而保持系数,则保留与保持系数对应的速率失真代价以供进一步考虑, 而舍弃将系数设定为零的速率失真代价。另一方面,如果决定是将系数设定为零,则也保留与将系数设定为零的选择对应的速率失真代价以供进一步考虑。
在考虑了所有四个8×8块或所有16个4×4块并如上所述那样作出了决定时,对所有四个8×8块或所有16个4×4块分别进行最终检查。因此,将被保留以供进一步考虑的失真代价相加,得到一个值。这个值与将当前宏块的所有系数设定为零的速率失真代价相比较。
图3示出了根据本发明的一个方面的量化方法。所示出的方法从提供预测误差信号的样本的步骤302开始。这些信号以宏块给出,宏块在步骤304中细分成多个子块。宏块可具有16×16像素的大小并且可细分成8×8大小的四个子块或者细分成4×4大小的16个子块。
从根本上说,图3所示的方法可在空间域中或在频域中执行。为了在频域中进行计算,将每个子块变换到频域中,从而产生多个系数。通常,这些系数亦以与相应子块大小相同的矩阵给出。亦即,将空间域中的8×8子块或4×4子块变换到频域中,从而得到由8×8个系数或4×4个系数构成的块。
在步骤308中,如果在空间域中进行计算则对样本进行第一量化,或者如果在频率域中进行计算则对系数进行第一量化。
步骤308中的计算得到第一量化值。如果在空间域中进行量化,则这些第一量化值代表第一量化样本。如果在频域中进行量化,则第一量化值代表第一量化系数。以下量化步骤对于第一量化样本和第一量化系数是类似的。因而,术语“量化值”代表两种情况。
根据步骤310,对于当前子块的第一量化值计算量化效率。在步骤310中,还计算当当前子块的所有值被设定为零时当前子块的零效率。
在步骤312中,将量化效率与零效率相比较。如果量化效率不高于零效率,则在步骤314中将当前子块的所有量化值设定为零。否则,量化值保持不变。
在步骤316中,检查是否已经对所有子块进行根据步骤310至314的第一优化。因而,如果还未对包括最后一个子块在内的所有子块执行步骤310至312,则过程出现分支而回到步骤310中计算效率。如果已到达最后一个子块,则完成了第一优化。随后,根据步骤318对于宏块的所有子块计算总体效率。由此,基于步骤312中的效率比较的结果对于所有子 块计算总体效率。亦即,在步骤318中,对于每个子块,将根据步骤312中的比较的最佳效率与宏块的其它子块的最佳效率相加。此外,在步骤318中还计算宏块的总体零效率,其中宏块的所有值都被设定为零。
在步骤320中,比较总体量化效率与总体零效率。如果总体量化效率不高于总体零效率,则在步骤320中将宏块的所有量化值都设定为零。否则,所有量化值保持不变。
因而,通过接收根据图3所示的步骤320的比较的这些量化值,完成了当前宏块的量化的优化。由此接收到的量化值可被发送至编码器(例如熵编码器)以进行编码。
图4示出了根据本发明的编码器的简化框图。于是,输入信号101经历运动估计,基于该运动估计执行运动补偿预测以提供预测信号104,从输入信号101中减去预测信号104。得到的预测误差信号105被变换到频域106中并由用于频率相关系数的优化量化器107量化。量化器107的输出信号120被传给熵编码器113,熵编码器113提供输出信号116以供发送、存储等。借助于逆量化块110和逆变换块111,量化预测误差信号120被进一步用于运动补偿预测块103中的下一预测步骤。经逆量化和逆DCT变换的预测误差信号与预测信号相加,并被传给为运动补偿预测块103和运动估计块102存储先前的图像的帧存储器122。一般来说,本发明提出除了现有技术以外还采用自适应控制机制115以在频域和空间域之间切换以便变换预测误差信号105。自适应控制装置115产生信号和参数以控制频域和空间域之间的自适应改变。因而,向在位置A和B之间切换的两个开关声明自适应控制信息信号121。如果在频域中进行变换,则两个开关处于位置A。如果采用空间域,则开关被切换到位置B。此外,边信息信号121(即,哪个域已被用于图像的编码过程)也被传给熵编码器113。因而,装置的适当信息被包含在数据流中。预测误差信号105与频率变换并行地、经由可替选路径被传给量化器109。此量化块109在空间域中提供对预测误差信号105的优化量化。空间域中的量化预测误差信号124可被传给第二逆量化块112,并被进一步传给返回到运动补偿预测块103的连接。此外,存在扫描控制块114,其接收运动矢量123和逆量化预测误差信号118,或者经由连接119接收预测信号104。块117用于对运动信息进行编码。
自适应控制块115决定要在频域中还是在空间域中对块进行编码,并产生相应的边信息以表明此域。由自适应控制装置所作的决定是基于空间 域编码的速率失真代价和频域编码的速率失真代价的。选择具有较低速率失真代价的域来进行编码。例如,速率失真代价C通过所需速率R和由拉格朗日参数L加权而得到的失真D来计算:C=L*R+D。均方量化误差可被用作失真量度,但是也可应用其它量度,例如平均绝对量化误差。常用于H.264/AVC的编码器控制的拉格朗日参数可被用作拉格朗日参数L:L=0.85·2(QP-12)/3。还可以用其它方法来确定速率失真代价。
除了决定要在频域中还是在空间域中对块进行编码,还决定是否将相应块的值(样本或系数)全部设定为零。此决定也是基于速率失真代价的,但是此速率失真代价是针对相应块的所有值被设定为零时的情形而计算的。因而,至少计算三个速率失真代价。亦即,对于空间域编码而言的速率失真代价,对于频域编码而言的速率失真代价以及对于所有值被设定为零的情形而言的速率失真代价。比较所得到的三个计算出的代价并选择导致最低速率失真代价的编码。对于代价相同的情形,将所有值设定为零、然后在空间域中进行编码是优选的。
速率失真代价的计算可理解为量化的一部分,因而,根据一种可能性,对于空间域编码而言的速率失真代价的计算可在块109中进行,对于频域编码而言的速率失真代价的计算可在块107中进行,而对于将值设定为零的情形而言的计算可在块107或块109中进行。
根据本发明的一个方面,尤其是当期待好的预测信号104时,只能执行空间域编码,将根据图3采用编码器,而开关固定在位置B,且块106、107、110和111将完全不用于此可替选方案。但是,在块109中进行的量化将通过取决于上述速率失真代价而决定是否将误差预测信号块的值设定为零而增强。
自适应控制115可以可替选地控制编码方法。这可以在已被发送的帧的运动补偿位置处例如基于预测信号、基于预测误差中的相关性或基于预测误差在其中编码的域来完成。
图5示出了根据本发明的多个方面的解码器的架构的简化框图。于是,编码视频信号被输入到两个熵解码块201和202。熵解码块202对运动补偿信息如运动矢量等进行解码。熵解码块201应用编码器中所用的编码机制的逆,例如根据CABAC或CAVLC的解码。如果编码器对于系数或空间域中的样本采用了不同的编码机制,则要在相应熵解码块中采用相应的解码机制。因而,熵解码块201产生适当的信号以在位置A和B之间切换,以便使用对于空间域而言适当的逆量化路径(即逆量化操作块 206)或根据开关位置A的适当块(即逆量化块203和逆变换块204)。如果预测误差表现在频域中,则逆量化块203和逆变换块204施加对应的逆操作。由于空间域中的样本根据本发明的多个方面的扫描机制已按特定顺序排列,扫描控制单元205为熵解码块201提供正确的样本顺序。如果编码是在空间域中进行的,则逆变换块204和逆量化块203被块206中的逆量化操作所代替。在频域和空间域(即,开关的位置A和B)之间切换的切换机制是由在比特流中发送并由熵解码块201解码的边信息控制的。此外,空间域中的经逆量化的信号或频域中的经逆量化和逆变换的信号与运动补偿预测图像相加以提供解码视频信号210。运动补偿是在块209中基于先前解码的视频信号数据(先前的图像)和运动矢量执行的。扫描控制单元205利用预测图像208或利用结合了运动矢量212的预测误差信号207来确定系数的正确扫描次序。扫描机制亦可基于两个图像,即预测误差图像和预测图像。如参照图4的编码机制所解释的那样,编码期间的扫描次序可基于预测误差信息207与运动补偿矢量的组合。因而,运动补偿矢量可经由路径212传给扫描控制单元205。此外,对应于图4,存在存储必要的先前解码的图像的帧存储器211。
图6示出了说明根据现有技术的之字形扫描顺序的简图。于是,作为向频域变换(例如DCT)的结果的系数以如图6所示的预定顺序排列为4×4的块。这些系数以特定顺序读出以使得代表低频部分的系数位于一维数组的最左侧位置。越在该数组的右下部,系数的相应频率就越高。由于要编码的块常常包含相当多的低频系数,高频系数或至少大部分高频系数为零。通过例如用关于零的数目的单个信息来代替由零构成的长的序列,此情况可有效地用来减少要发送的数据。
图7示出了根据本发明的一个方面的扫描机制的一个简化说明性例子。图7(a)示出了一个块的预测图像中的梯度的幅度。该块的每个位置中的值代表当前块的预测图像的梯度。梯度本身是由代表水平和竖直方向上的梯度的两个分量组成的矢量。每个分量可由两个相邻样本的差异确定,或者可由众所周知的考虑到了六个相邻样本的Sobel算子确定。梯度的幅度是矢量幅度。如果两个值具有相同的幅度,则可应用固定的或预定的扫描顺序。扫描顺序沿着该块中的梯度值的幅度,如虚线所示。在建立了梯度预测图像内的扫描顺序后,将相同的扫描顺序应用于量化预测误差样本,其在图7(b)中示出。如果图7(b)所示的块的空间域中的量化样本根据基于预测图像中的梯度的幅度而建立的扫描顺序排列成如图7(b)的左侧所示的一维数组,具有高的值的样本通常首先排列在数组中, 即,排列在左侧位置。如图7(b)所示,右侧位置用零填充。
代替由梯度控制的扫描,也可应用其他扫描,例如预定扫描、由结合了运动矢量的已被发送的帧的量化预测误差控制的扫描、或它们的组合(扫描控制涉及参照图4和图5解释的块114或205)。在由结合了运动矢量的预测误差信号控制的扫描的情形下,扫描按降序沿着当前块的运动矢量所指向的块的量化预测误差样本的幅度。
如果运动矢量指向分数样本位置,则可利用插值技术来确定所需量化预测误差样本。这可以是与用于参考图像的插值以产生预测样本的插值技术相同的插值技术。
在由结合了运动矢量的预测误差图像与预测图像的组合控制扫描的情形下,计算当前块的运动矢量所指向的块的量化预测误差样本的幅度与梯度的幅度的线性组合。扫描沿着这些线性组合的值。此外,对于序列中的段,例如对于每个帧、每个片段或由块构成的组,可用信号告知用于扫描确定的方法。根据典型的标准处理,已经考虑了运动补偿矢量,同时确定了预测图像。
根据本发明的另一个方面,扫描顺序也可基于结合了运动矢量的预测误差图像。此外,可考虑上述梯度原则与预测误差图像的组合。
图8示出了用于说明根据本发明的多个方面的优化量化器的定义的简图。于是,三个参数a、b和c是用于修改量化器的参数。根据标准H.264/AVC,应用具有两个不同失真量度的针对系数的速率失真优化量化器。第一个量度是均方量化误差,第二个量度是主观加权量化误差。根据H.264/AVC标准,为预测误差样本开发了两个量化器。由于预测误差的分布接近于拉普拉斯分布,所以在均方量化误差优化的情形下采用标量死区加均匀阈值(scalar dead-zone plus uniform threshold)量化器。图5示出了量化和逆量化的参数a、b和c。
表3示出了可有利地用于H.264/AVC编码机制中常用的QP(量化参数)的参数a、b和c。参数a、b和c分别是用于均方量化误差优化的优化参数。但是,这只是一个例子,对于不同的应用可使用不同的或额外的参数。
表3
对于主观加权量化误差优化,提出了一种非均匀量化器,其具有典型水平ri、-ri和在相邻ri中间的决定阈值(也在表3中示出)。如果边缘处出现大的预测误差,则可利用视觉掩蔽。因而,在边缘处可允许大的量化误差,如果图像信号是平坦的,则可允许小的量化误差。如表3中所示,H.264/AVC可采用4个以上的QP。于是必须扩展表3。H.264/AVC可采用52个不同的QP。下面参照图9说明确定适当典型值ri、-ri的基本思想。
图9示出了在频域中(图9(a))和空间域中(图9(b))的主观加权量化的情形下像素的测得的平均绝对重构误差的简化表示。频域中的主观加权量化的测得的平均绝对重构误差被示出为预测误差的绝对值的函数。对于空间域中的主观加权量化的绝对重构误差,典型水平ri被调整为使得对于空间域中的各量化间隔,平均绝对重构误差对于频域中的量化和空间域中的量化是相同的。只是作为一个例子,表3中所示的QP=26时的值r1、r2、r3和r4也出现在图9(b)中。根据经验,如果值QP增加6,则典型水平ri近似加倍。量化器设计亦可利用视觉***的其它特征。此外,量化器可用于产生具有与H.264/AVC量化器的特性不同的特性的量化误差。
空间域中的量化样本的熵编码
根据本发明的一个方面,空间域中的熵编码可基于与用于频域中的量化系数的方法相同的方法。对于H.264/AVC标准,两种优选的熵编码方法是CABAC和CAVLC。但是,根据本发明的此方面,用上面提到的方法对空间域中的量化样本而不是频域中的量化系数进行编码。如上所述,可改变扫描顺序以提供与频域相同的数据减少。如上所述,空间域中的扫描可由相同空间位置处的预测图像信号的梯度的幅度来控制。根据此原则,如已参照图7(a)和图7(b)说明的那样,要编码的样本以梯度递减的顺序排列。如上所述,也可应用其它扫描机制。此外,根据本发明的多个方面,在CABAC的情形下意味着单独概率模型的单独码可用于空间域。该码和在CABAC情形下的概率模型的初始化可从量化样本的统计中 得出。空间域中的上下文建模可以以与频域中的上下文建模的方式相同的方式来完成。
边信息的编码
参照图4说明的自适应控制装置产生与块要在其中编码的域有关的信息。根据变换的大小,块大小可以是4×4或8×8个像素。但是,根据本发明的不同方面,也可应用独立于变换大小的其它块大小。根据本发明的一个方面,边信息包括表明编码机制在编码期间是否已自适应地改变的特定标记。例如,如果片段的所有块在频域中编码,则这可由编码视频数据信号中的特定比特表示。本发明的此方面亦可涉及宏块的各块,它们可全部在两个域中的每一个中编码或者只在一个域中编码。此外,根据本发明的本方面的概念可应用于宏块,并且可以在数据流中包含表明宏块的至少一个块是否在空间域中编码的信息。因而,标记Slice_FD_SD_coding_flag可用于表明当前片段的所有块是否在频域中编码,或者至少一个块是否在空间域中编码。此标记可由单个比特编码。如果片段的至少一个块在空间域中编码,则对于当前片段的每个单独宏块,这可由标记MB_FD_SD_coding_flag表示(如果当前宏块的所有块在频域中编码,或如果至少一个块在空间域中编码)。此标记可取决于已被编码的左相邻和上相邻的块的标记而进行编码。如果宏块的最后一个在空间域中编码,则对于要编码的宏块的每个块,这可由标记FD_or_SD_Flag表示(如果当前块在频域中或空间域中编码)。此标记可取决于已被编码的左相邻和上相邻的块的标记而进行编码。或者,边信息也可取决于结合了运动矢量的预测误差信号或预测信号而进行编码。
语法和语义
根据本发明的此方面,提出了一种允许将本发明的各个方面合并到H.264/AVC编码机制中的示范语法和语义。因而,如表4所示,可将标记Slice_FD_SD_coding_flag引入slice_header中。如表5中所示,标记MB_FD_SD_coding_flag可在每个macroblock_layer中发送。在residual_block_cabac中,如果为当前块提供频域编码或空间域编码,其可由标记FD_or_SD_flag用信号告知,这在下面的表6中示出。类似的方案可应用在用于预测误差编码的其它视频编码算法中。
. . |
|
|
Slice_FD_SD_coding_flag
|
2 |
u(1) |
. . .
|
|
|
表4
Macroblock_layer(){
|
C |
描述符 |
. . .
|
|
|
If(Slice_FD_SD_coding_flag==1){ |
|
|
MB_FD_SD_coding_flag
|
2 |
u(1),ae(v) |
{ |
|
|
. . .
|
|
|
表5
residual_block_cabac{
|
C |
描述符 |
. . .
|
|
|
If(Slice_FD_SD_coding_flag==1&& MB_FD_SD_coding_flag==1){ |
|
|
FD_or_SD_flag
|
3/4 |
u(1),ae(v) |
If(FD_or_SD_flag==1)} |
|
|
Code_Predition_error_in_spatial_domain
|
|
|
} |
|
|
else{ |
|
|
Code_Predition_error_in_frequency_domain
|
|
|
} |
|
|
} |
|
|
. . .
|
|
|
表6
本发明的进一步的实施例如下:
1.一种采用混合编码对视频信号进行编码的方法,包括:
通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度,以便选择以下步骤之一进行进一步的编码:
-将所述预测误差信号变换到频域中;
-将所述预测误差信号保持在空间域中;或者
-将所述预测误差信号的值设定为零。
2.根据实施例1所述的方法,其中所述选择步骤是基于代价函数的。
3.根据实施例1所述的方法,其中所述代价函数包括对于空间域编码而言的速率失真代价、对于频域编码而言的速率失真代价以及对于将所述预测误差信号的值设定为零而言的速率失真代价。
4.根据实施例3所述的方法,其中所述速率失真代价是基于所述失真与加权的所需速率之和的。
5.根据实施例4所述的方法,其中所述速率失真代价Cj利用等式Cj=Dj+L*Rj计算,其中Dj代表所述量化产生的失真,Rj代表量化所需的速率,L是拉格朗日参数,索引j表示相应子块。
6.根据实施例5所述的方法,其中所述失真是平方后的量化误差的总和或平均绝对量化误差。
7.根据实施例1所述的方法,其中空间域中的样本与频域中的系数用相同的方法来进行编码。
8.根据实施例7所述的方法,其中对所述系数的编码是根据CABAC或CAVLC进行的。
9.根据实施例1所述的方法,其中对于空间域有单独概率地使用CABAC所特有的码。
10.根据实施例1所述的方法,其中对于空间域使用CAVLC所特有的码。
11.根据实施例1所述的方法,包括由具有主观加权量化误差优化或均方误差优化的量化器在空间域中进一步量化预测误差样本。
12.根据实施例1所述的方法,其中在将所述预测误差信号保持在空间域中的情形下,还包括:
扫描在预测误差块中提供的样本以提供呈特定顺序的样本数组,其中扫描方案是从预测误差图像或预测图像得出的。
13.根据实施例12所述的方法,其中所述扫描方案是从所述预测图像的梯度得出的。
14.根据实施例12所述的方法,其中所述扫描方案是基于结合了参考块的预测误差图像的运动矢量的。
15.根据实施例12所述的方法,其中所述扫描方案是从结合了运动矢量的参考块的预测误差图像和预测图像的梯度的线性组合得出的。
16.一种代表编码视频信号的数据信号,包括部分地在空间域中编码且部分地在频域中编码的预测误差信号的编码信息。
17.根据实施例16所述的数据信号,包括与片段、宏块或宏块的块在其中编码的域有关的信息,具体而言是片段、宏块或块是在空间域中还是在频域中编码的信息。
18.根据实施例17所述的数据信号,包括与分别用于片段,宏块或块的编码有关的slice_fd_sd_coding_flag、mb_fd_sd_coding_flag和/或fd_sd_flag信息。
19.一种采用混合编码对视频信号进行编码的编码器,包括:
-用于通过基于块的运动补偿预测以建立预测误差信号来减小时间冗余度的装置;
-用于对所述预测误差信号进行量化以建立量化样本或量化系数的量化装置;
-适于计算并比较量化效率和零效率以选择较高的效率、并取决于所选择的效率而分别保持所述量化样本或量化系数或将它们设定为零的控制装置。