可变块尺寸运动预测方法和装置转让专利

申请号 : CN200910100536.X

文献号 : CN101605262B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡红旗陈剑军

申请人 : 杭州士兰微电子股份有限公司

摘要 :

本发明提供了可变块尺寸运动预测方法:持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素及其对应的参考宏块像素,分别存储在当前宏块像素存储器和搜索窗像素存储器,直到遍历搜索窗中的所有候选运动矢量;取出当前宏块像素进行降采样和像素截位处理;同时取出参考宏块像素进行降采样和像素截位处理;将处理后的候选运动矢量对应的参考宏块在各种宏块分割模式下的SAD值;选取各种宏块分割模式下最小SAD值和对应的运动矢量。本发明采用全流水结构,整个运动估计运算执行周期短,可以实时处理,实现在编码器性能、功耗、面积之间进行权衡,具有很强的通用性。

权利要求 :

1.可变块尺寸运动预测方法,其特征在于包括如下步骤:

(1)从外部存储器中持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素及其对应的参考宏块像素,分别存储在当前宏块像素存储器和搜索窗像素存储器,直到遍历搜索窗中的所有候选运动矢量;

(2)从当前宏块像素存储器取出一个候选运动矢量的当前宏块像素,并对当前宏块像素进行降采样和像素截位处理,将处理的结果缓存在当前宏块像素寄存器阵列;

(3)进行步骤(2)的同时,从搜索窗像素存储器取出一个候选运动矢量的参考宏块像素,并对取出的参考宏块像素进行降采样和像素截位处理,将处理的结果缓存在参考像素寄存器阵列;

(4)将步骤(2)和步骤(3)处理后的当前宏块像素和参考宏块像素在同一周期内分别由当前宏块像素寄存器阵列和参考宏块像素寄存器阵列送出到SAD计算单元进行运算,计算该候选运动矢量对应的参考宏块在各种宏块分割模式下的SAD值;

(5)各种宏块分割模式下的SAD值与前一个候选运动矢量运算得到的各种宏块分割模式下的SAD值进行比较,选取各种宏块分割模式下最小SAD值和对应的运动矢量。

2.如权利要求1所述可变块尺寸运动预测方法,其特征在于所述参考像素寄存器阵列为在一个计算周期内在垂直方向向上移动若干行像素、在垂直方向向下移动若干行像素或在水平方向上向左移动若干列像素。

3.可变块尺寸运动预测装置,其特征在于包括:当前宏块像素存储器,搜索窗像素存储器,宏块像素降采样处理单元一、宏块像素降采样处理单元二,像素截位处理单元一、像素截位处理单元二,当前宏块像素寄存器阵列,参考宏块像素寄存器阵列,SAD计算单元,SAD比较单元,运动预测流程控制单元,其中:所述当前宏块像素存储器从外部存储器中持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素;

所述搜索窗像素存储器从外部存储器中持续取出当前宏块像素对应的参考宏块像素;

宏块像素降采样处理单元一、宏块像素降采样处理单元二分别独立地从当前宏块像素存储器和搜索窗像素存储器取出当前宏块像素和参考宏块像素进行降采样处理;

像素截位处理单元一、像素截位处理单元二分别独立地对所述降采样处理后的当前宏块像素和参考宏块像素进行像素截位处理;

当前宏块像素寄存器阵列暂存经所述宏块像素降采样和截位处理后的当前宏块像素,参考宏块像素寄存器阵列暂存经所述宏块像素降采样和像素截位处理后的参考宏块像素,在运动预测控制单元的控制下当前宏块像素寄存器阵列和参考宏块像素寄存器阵列分别将整个宏块的像素在同一周期内提供给所述SAD计算单元;

SAD计算单元计算当前宏块像素与候选运动矢量对应的参考像素宏块之间的相似度,将所述宏块像素降采样和截位处理后的当前宏块像素与参考宏块像素对应位置上的差值的绝对值的累加;

SAD比较单元选取各种宏块分割模式下的最小SAD值所对应的块模式及运动矢量作为当前宏块位置的预测模式和运动矢量;

运动预测流程控制单元控制当前宏块像素存储器、搜索窗像素存储器、两个宏块像素降采样处理单元、两个像素截位处理单元、当前宏块像素寄存器阵列单元、参考宏块像素寄存器阵列单元、宏块SAD计算单元、SAD比较单元的启动。

4.如权利要求3所述可变块尺寸运动预测装置,其特征在于所述的参考宏块像素寄存器阵列在一个计算周期内可在垂直方向向上移动若干行像素、在垂直方向向下移动若干行像素或在水平方向向左移动若干列像素。

说明书 :

可变块尺寸运动预测方法和装置

技术领域

[0001] 本发明涉及信号处理中的图像和视频编码技术领域,特别涉及在编码过程中可变块尺寸运动预测技术。

背景技术

[0002] 在视频压缩中,为了更好的去除视频信息的冗余,达到在保持视频质量的同时尽可能提高压缩比的目的,广泛采用预测编码和变换编码结合的基于块的混合编码方法,通过变换编码将空域图像映射到频域系数,有效地去除像素间的空间相关性,而基于运动估计和运动补偿的预测编码则充分利用了相邻帧间的时间相关性,从而获得较好的压缩性能。
[0003] 由于块匹配具有较低的硬件复杂度,对于实际运动来说被认为是最通用的方法之一,因此在VLSI中广泛采用,几乎所有的H.261/H.263和MPEG1,2/4的编解码电路的物理组合都把块匹配用于运动估计。
[0004] 为了得到最小的预测误差,在H.264/AVC中进行帧间预测时不再采用固定块尺寸模式,而是采用可变块尺寸模式对每个划分的子块进行运动估计和运动补偿,以得到最佳的匹配块,从而提高压缩效率。H.264/AVC的多模式运动估计中,一个16×16的宏块(Macroblock,MB)可以进一步划分成若干个子块进行补偿。如图1所示宏块分割模式包括16×16,16×8,8×16,8×8;对于8×8子块,可以进一步划分成8×4,4×8,4×4块模式,具体应用如图2所示,图2的当前宏块在参考帧的搜索区域内搜索出的最优预测模式为左上方的8×8子块最优模式为两个8×4子块,对应得运动矢量为Mv0和Mv1,其余三个8×8子块的最优预测模式是8×8块,对应得运动矢量分别是Mv2、Mv3和Mv4。宏块分割模式大大提高了各宏块之间及宏块内部子块的关联性。H.264/AVC对编码的宏块进行运动预测时要遍历所有的预测模式,即对每一种尺寸的子块都要执行一次搜索动作,因此帧间预测就能针对图像中不同大小物体的各种移动,利用最适合的子块尺寸进行组合,以提高搜索的正确性,而不会因为用固定尺寸的块去搜索不同大小的物体而导致在移动时产生的误差。图
3所示为H.264/AVC中的可变块尺寸块匹配运动搜索示例,在该示例中,经过多模式运动估计,当前宏块分割成五个子块,各子块对应不同方向的运动矢量。
[0005] 确定宏块分割模式(块的尺寸)后,需要对每一个子块编码,计算每一个待编码的子块对应的运动矢量,然后编码传输每个运动矢量和宏块分割模式。因此当选定一个比较大的块尺寸时,则需要较少的码字对分块信息和运动矢量进行编码传送,但是难于达到精确的匹配,也就是说在图像的残差部分可能包含着比较多的信息;而选定一个较小的块尺寸,可以显著降低残差部分的信息,但是产生比较高的码率来表示运动矢量和对应的分块策略。因此在不同的条件下需要选择合适块分块策略,块划分策略的好坏直接影响着编码系统的效率和压缩效果。
[0006] 目前有两种普遍的运动预测的方法,一种方法是对各种宏块分割模式逐一进行固定块尺寸的运动预测,这种方法由于对每一中宏块分割模式都需要遍历搜索窗区域,所需的存储器操作带宽巨大,同时所需的计算时间长,无法实现实时处理。另外一种方法基于具有最小的宏块分割尺寸的子块进行处理,计算出这些最小子块的SAD残差值后,通过若干最小子块的组合得到较大子块的SAD残差值,这种方法需存储较多的中间计算结果,所需的暂存资源较多。

发明内容

[0007] 本发明的目的是为了克服已有技术的不足,提出了一种实时处理H.264/AVC中可变块尺寸运动预测方法,该方法可以降低硬件开销,所需存储器操作带宽小,计算时间短,所需暂存资源少。
[0008] 本发明同时提出了一种可变块尺寸运动预测装置。
[0009] 可变块尺寸运动预测方法,包括如下步骤:
[0010] (1)从外部存储器中持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素及其对应的参考宏块像素,分别存储在当前宏块像素存储器和搜索窗像素存储器,直到遍历搜索窗中的所有候选运动矢量;
[0011] (2)从当前宏块像素存储器取出一个候选运动矢量的当前宏块像素,并对当前宏块像素进行降采样和像素截位处理,将处理的结果缓存在当前宏块像素寄存器阵列;
[0012] (3)进行步骤(2)的同时,从搜索窗像素存储器取出一个候选运动矢量的参考宏块像素,并对取出的参考宏块像素进行降采样和像素截位处理,将处理的结果缓存在参考宏块像素寄存器阵列;
[0013] (4)将步骤(2)和步骤(3)处理后的当前宏块像素和参考宏块像素在同一周期内分别由当前宏块像素寄存器阵列和参考宏块像素寄存器阵列送到SAD计算单元进行运算,计算该候选运动矢量对应的参考宏块在各种宏块分割模式下的SAD值;
[0014] (5)各种宏块分割模式下的SAD值与前一个候选运动矢量运算得到的各种宏块分割模式下的SAD值进行比较,选取各种宏块分割模式下最小SAD值和对应的运动矢量。
[0015] 为了便于水平和垂直方向相邻的两个侯选运动矢量之间预测处理的连续性,所述参考宏块像素寄存器阵列在一个计算周期内在垂直方向向上或向下移动若干行像素,或在水平方向向左移动若干列像素。
[0016] 可变块尺寸运动预测装置,包括:当前宏块像素存储器,搜索窗像素存储器,宏块像素降采样处理单元一、宏块像素降采样处理单元二,像素截位处理单元一、像素截位处理单元二,当前宏块像素寄存器阵列,参考宏块像素寄存器阵列,SAD计算单元,SAD比较单元,运动预测流程控制单元,其中:
[0017] 所述当前宏块像素存储器从外部存储器中持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素;
[0018] 所述搜索窗像素存储器从外部存储器中持续取出当前宏块像素对应的参考宏块像素。
[0019] 宏块像素降采样处理单元一、宏块像素降采样处理单元二分别独立地从当前宏块像素存储器和搜索窗像素存储器取出当前宏块像素和参考宏块像素进行降采样处理,其在不影响所述SAD计算精度的前提下减少当前宏块像素寄存器阵列和参考宏块像素寄存器阵列的大小,同时降低SAD计算单元的硬件资源消耗;
[0020] 像素截位处理单元一、像素截位处理单元二分别独立地对所述降采样处理后的当前宏块像素和参考宏块像素进行像素截位处理,其在不影响所述SAD计算精度的前提下降低SAD计算单元的硬件资源消耗;
[0021] 当前宏块像素寄存器阵列暂存经所述宏块像素降采样和截位处理后的当前宏块像素,寄存器阵列将整个宏块的像素在同一周期内提供给所述SAD计算单元;
[0022] 参考宏块像素寄存器阵列暂存经所述宏块像素降采样和像素截位处理后的参考宏块像素,寄存器阵列将整个宏块的像素在同一周期内提供给所述SAD计算单元;
[0023] 为了便于水平和垂直方向相邻的两个侯选运动矢量之间的预测处理的连续性,参考宏块像素寄存器阵列在一个计算周期内可在垂直方向向上或向下移位移行像素,或在水平方向向左移动若干列像素的结构;
[0024] SAD计算单元计算当前宏块像素与候选运动矢量对应的参考像素宏块之间的相似度,将所述宏块像素降采样和截位处理后的当前宏块像素与参考宏块像素对应位置上的差值的绝对值的累加;
[0025] SAD比较单元选取各种宏块分割模式下的最小SAD值所对应的块模式及运动矢量作为当前宏块位置的预测模式和运动矢量;
[0026] 运动预测流程控制单元控制当前宏块像素存储器、搜索窗像素存储器、两个宏块像素降采样处理单元、两个像素截位处理单元、当前宏块像素寄存器阵列单元、参考宏块像素寄存器阵列单元、宏块SAD计算单元、SAD比较单元的启动。
[0027] 本发明的有益效果主要体现在:一方面本方法采用全流水结构,整个运动估计运算执行周期短,所需存储器操作带宽小,所需暂存资源少,可以实现在编码器性能、功耗、面积之间进行权衡,采用降采样和截位处理可以在不损编码性能的情况下占用更少的硬件资源,对编码器的压缩效率影响很小;另一方面由于本方法基于块模式编码,因此在多种视频标准实现都可以采用,具有很强的通用性。根据不同视频编码标准,只需要针对多种该标准中宏块分割大小调整SAD累加和模式判决单元或模式选择单元即可。

附图说明

[0028] 图1为运动估计中使用的各种宏块分割模式
[0029] 图2为运动估计中使用的各种宏块分割模式的应用示例
[0030] 图3为H.264/AVC中的可变块尺寸块匹配运动搜索示例
[0031] 图4为搜索窗区域与搜索范围的关系示例。
[0032] 图5为本发明采用的1/2降采样模板。
[0033] 图6为本发明8x8宏块分割的SAD计算和组合的过程
[0034] 图7为本发明可变块尺寸运动预测方法流程图和可变块尺寸运动预测装置结构图
[0035] 图8为本发明实施例所实现的不同位数像素截位处理结果同JM8.4参考代码的比较图
[0036] 图9为本发明实施例所实现的H.264/AVC编码器RD曲线同JM8.4参考代码的比较图

具体实施方式

[0037] 以下结合附图对本发明内容进一步说明。
[0038] 可变块尺寸运动预测方法,包括如下步骤,如图7所示:
[0039] (1)从外部存储器中持续取出待预测帧中用于预测某一候选运动矢量的当前宏块像素及其对应的参考宏块像素,分别存储在当前宏块像素存储器和搜索窗像素存储器,直到遍历搜索窗中的所有候选运动矢量;
[0040] (2)从当前宏块像素存储器取出一个候选运动矢量的当前宏块像素,并对当前宏块像素进行降采样和像素截位处理,将处理的结果缓存在当前宏块像素寄存器阵列;
[0041] (3)进行步骤(2)的同时,从搜索窗像素存储器取出一个候选运动矢量的参考宏块像素,并对取出的参考宏块像素进行降采样和像素截位处理,将处理的结果缓存在参考宏块像素寄存器阵列;
[0042] (4)将步骤(2)和步骤(3)处理后的当前宏块像素和参考宏块像素在同一周期内分别由当前宏块像素寄存器阵列和参考宏块像素寄存器阵列送到SAD计算单元进行运算,计算该候选运动矢量对应的参考宏块在各种宏块分割模式下的SAD值;
[0043] (5)各种宏块分割模式下的SAD值与前一个候选运动矢量运算得到的各种宏块分割模式下的SAD值进行比较,选取各种宏块分割模式下最小SAD值和对应的运动矢量。
[0044] 为了便于水平和垂直方向相邻的两个侯选运动矢量之间预测处理的连续性,所述参考宏块像素寄存器阵列在一个计算周期内在垂直方向向上移动若干行像素、在垂直方向向下移动若干行像素,或在水平方向向左移动若干列像素。
[0045] 可变块尺寸运动预测装置,如图7所示,包括:当前宏块像素存储器(1),搜索窗像素存储器(2),宏块像素降采样处理单元一(3)、宏块像素降采样处理单元二(4)、像素截位处理单元一(5)、像素截位处理单元二(6),当前宏块像素寄存器阵列(7),参考宏块像素寄存器阵列(8),SAD计算单元(9),SAD比较单元(10),运动预测流程控制单元(11),其中:
[0046] 所述当前宏块像素存储器(1)从外部存储器中持续取出待预测帧中预测某一候选运动矢量的当前宏块像素;
[0047] 所述搜索窗像素存储器(2)从外部存储器中持续取出当前宏块像素对应的参考宏块像素,搜索窗内所存储的参考像素宏块的个数取决于所采用的搜索范围,例如,对于水平方向[-16,15],垂直方向[-16,15]的搜索范围,所需装载的参考像素宏块个数为3x3=9个;对于水平方向[-32,31],垂直方向[-32,31]的搜索范围,所需装载的参考像素宏块个数为5x5=25个,图4所示为搜索窗中宏块的个数与搜索范围关系;
[0048] 宏块像素降采样处理单元一(3)、宏块像素降采样处理单元二(4)分别独立地从当前宏块像素存储器和搜索窗像素存储器取出当前宏块像素和参考宏块像素进行降采样处理,其在不影响所述SAD计算精度的前提下减少当前宏块像素寄存器阵列和参考宏块像素寄存器阵列的大小,同时降低SAD计算单元的硬件资源消耗,图5所示为一种降采样模式的示例;
[0049] 像素截位处理单元一(5)、像素截位处理单元二(6)分别独立地对所述降采样处理后的当前宏块像素和参考宏块像素进行像素截位处理,其在不影响所述SAD计算精度的前提下降低SAD计算单元的硬件资源消耗。
[0050] 像素截位处理的具体实现是对像素进行右移的处理,保留移位后的高位数据,如对8位像素进行保留5位的截位处理,只需右移3位即可。如图8所示本发明实现的不同位数像素截位处理的结果比较,比较的基准是JM8.4参考代码,像素截位处理从高到低分别取保留7位数据、保留6位数据、保留5位数据和保留4位数据四种情况。结果表明,像素数据保留5位时,编码器的整体性能有略微的下降,信噪比降低0.1dB左右;而像素数据保留4位时,编码器的整体性能下降较多,信噪比降低0.3dB左右。
[0051] 当前宏块像素寄存器阵列(7)暂存经所述宏块像素降采样和截位处理后的当前宏块像素,寄存器阵列将整个宏块的像素在同一周期内提供给所述SAD计算单元。
[0052] 参考宏块像素寄存器阵列(8)暂存经所述宏块像素降采样和像素截位处理后的参考宏块像素,寄存器阵列将整个宏块的像素在同一周期内提供给所述SAD计算单元。
[0053] 为了便于水平和垂直方向相邻的两个侯选运动矢量之间的预测处理的连续性,参考宏块像素寄存器阵列(8)为在一个计算周期内可在垂直方向向上移动若干行像素、在垂直方向向下移位一行像素,或在水平方向向左移动若干列像素的结构。
[0054] SAD计算单元(9)计算当前宏块像素与候选运动矢量对应的参考像素宏块之间的相似度,将所述宏块像素降采样和截位处理后的当前宏块像素与参考宏块像素对应位置上的差值的绝对值的累加。一种由最小宏块分割的SAD得到较大宏块分割的SAD的计算和组合的过程如图6所示,该图所示为一个8x8宏块分割的SAD计算和组合的过程,其他宏块分割的SAD计算与组合过程与此类似。
[0055] SAD比较单元(10)包括SAD比较单元一和SAD比较单元二,
[0056] 其中,SAD比较单元一,选定某一宏块分割模式,比较不同的候选运动矢量在该宏块分割下的SAD值,从而选择一个具有最小SAD值的运动矢量。
[0057] 其中,SAD比较单元二,在SAD比较单元一提供的结果中,比较各种宏块分割所对应的最小的SAD值,选其中最小者所对应的宏块分割模式及运动矢量作为当前宏块位置的预测模式和运动矢量。
[0058] SAD比较单元的另外一种实现是包括SAD比较单元三和SAD比较单元四,[0059] 其中,SAD比较单元三,比较同一候选运动矢量在各种宏块分割下的SAD值,从而选择一个具有最小SAD值的子块模式。
[0060] 其中,SAD比较单元四,在SAD比较单元三提供的结果中,比较各个候选运动矢量对应的最小的SAD值,选其中最小者所对应的块模式及运动矢量作为当前宏块位置的预测模式和运动矢量。
[0061] 运动预测流程控制单元(11)控制当前宏块像素存储器、搜索窗像素存储器、两个宏块像素降采样处理单元、两个像素截位处理单元、当前宏块像素寄存器阵列单元、参考宏块像素寄存器阵列单元、宏块SAD计算单元、SAD比较单元的启动。
[0062] 如图9所示为本发明实现的H.264/AVC编码器RD曲线比较,比较基准是JM8.4参考代码。结果表明,本发明所实现的H.264/AVC编码器在相同的码率下,相比于JM8.4参考代码,信噪比降低0.1dB左右。
[0063] 应该理解到的是,上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明保护范围之内。