CN101600112A - 分像素运动估计装置和方法 - Google Patents
分像素运动估计装置和方法 Download PDFInfo
- Publication number
- CN101600112A CN101600112A CN 200910100539 CN200910100539A CN101600112A CN 101600112 A CN101600112 A CN 101600112A CN 200910100539 CN200910100539 CN 200910100539 CN 200910100539 A CN200910100539 A CN 200910100539A CN 101600112 A CN101600112 A CN 101600112A
- Authority
- CN
- China
- Prior art keywords
- sad
- value
- pixel
- sad2
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了分像素运动估计装置和方法,所述装置包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、最优匹配判决单元以及模式判决单元,所述装置的另外一种形态包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、模式选择单元以及最优匹配判决单元。本发明平衡了运动估计的搜索范围和搜索精度,降低运算复杂度,缩短搜索时间,保证编码系统的实时性,整个运动估计运算执行周期小,可以在不损编码性能的情况下占用更少的资源,对编码器的压缩效率影响很小,可在编码器性能、功耗、面积之间进行权衡,同时具有很强的通用性和复用性。
Description
技术领域
本发明涉及数字视频编码中运动估计的实现,尤其是帧间预测中一种分像素运动估计的方法和装置。
背景技术
在数字化视频编码中,基于运动估计算法的帧间预测可以消减视频数据在时间上的冗余信息,该方法已广泛应用于MPEG-x和H.26x等视频编码标准系列中。通常来讲,帧间预测的运算量会占到整个编码系统负载的60%-80%,因此,以专用ASIC架构实现的运动估计硬加速模块被广泛应用于编码系统中。
目前存在的运动估计架构,大多数都是针对固定的宏块分割模式,常见的固定宏块分割模式有:水平方向和垂直方向上各有8个采样点的8x8结构和各有16个采样点的16x16结构。对细节丰富的视频源,采用更小的宏块分割模式,可以在帧间预测中获得较小的预测误差,从而节省编码比特数。
在场景未切换时,对于视频源中相邻两帧图像而言,运动物体的采样点坐标变化很小。当采样点坐标间距小于单位像素点间距时,若采用整像素参考帧搜索的运动估计,以先前帧图像作为参考帧不一定能够获得较小的预测误差,而采用小(分)像素参考帧搜索的运动估计,通过对单位像素点插值得到更小精度的分像素点则更接近物体的运动轨迹。
针对视频源特性,采用更小的宏块分割模式以及更小精度的分像素点获得参考帧,使运动估计获得较小的预测误差,从而节省编码比特数。新一代视频压缩标准,如:H.264,VC-1,AVS都把可变的宏块分割模式和更小精度预测作为标准单元部件。宏块分割模式如图1所示,包括16x16宏块分割模式、16x8宏块分割模式,8x16宏块分割模式,8x8宏块分割模式,8x4宏块分割模式,4x8宏块分割模式以及4x4宏块分割模式。在16x8宏块分割模式下,宏块被分割为上、下两个子块,分别记作16x8_t和16x8_b;在8x16宏块分割模式下,宏块被分割为左、右两个子块,分别记作8x16_l和8x16_r;在8x4宏块分割模式下,8x8块被分割为上、下两个子块,分别记作8x4_t和8x4_b;在4x8宏块分割模式下,宏块被分割为左、右两个子块,分别记作4x8_l和4x8_r。
然而,采用可变的宏块分割模式和更小精度的分像素点,运动估计在提升编码系统压缩率的同时,也导致运动估计的运算复杂度大幅增加,延长了整个搜索过程,如果将运动估计作为一级流水,它将是整个编码系统的瓶颈,而目前能充分利用新特性并保持编码系统实时性的硬加速模块还很少,特别地,对于多参考帧而言,这种高密度的运算将导致编码系统性能的下降,无法实现实时编码。
为了保证编码实时性,一些方案采用缩小搜索窗的范围,这样虽然能够较大程度降低运动估计的复杂度,减轻该级流水对系统的制约,然而搜索窗的范围从整像素搜索时就开始减小,降低了获得最佳匹配的概率,影响编码系统的压缩效率。
发明内容
本发明旨在解决现有技术的不足,提出了适用于宏块分割模式可变、分层级的分像素运动估计装置,该装置能够降低运动估计的运算复杂度,缩短搜索时间,平衡搜索范围和搜索精度,保证编码系统的实时性,提高编码系统的压缩效率。
本发明还提供了分像素运动估计方法。
一种分像素运动估计装置,包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、最优匹配判决单元以及模式判决单元:
所述待估计宏块存储单元存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元;
所述参考帧存储单元存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元;
所述分像素预测块产生单元产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元;
所述运算逻辑阵列单元分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个。同时SAD累加器还可以将运动矢量代价函数与SAD1值累加。
所述最优匹配判决单元包括数个最优比较器,各SAD累加器的输出连接一个最优比较器,所述最优比较器从SAD累加器逐行接收SAD2值,共接收M行,每行M个,所述最优比较器对MxM个SAD2值进行比较,各个最优比较器分别输出最小SAD2值,即为SAD2MIN,同时输出SAD2MIN在搜索点阵中对应的位置。
所述模式判决单元,对各种宏块分割模式下的SAD2_MIN值进行同级别比较,若宏块分割模式的比较级别未达到同一级别,则对各个宏块分割模式的SAD2_MIN值累加到同一级别,所谓同一级别是指8x8子块级别和16x16宏块级别。若宏块分割模式的比较级别达到子块级,选出最小SAD值作为子块级别的SAD_MIN值,确定子块级的分割模式。若宏块分割模式的比较级别达到宏块级,选出最小SAD值作为帧间预测的SAD_MIN值;根据帧间预测的SAD_MIN值确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量。
所述模式判决单元将最优匹配点位置反馈给分像素预测块产生单元,分像素预测块产生单元根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据。
所述分像素预测块产生单元将预测块数据反馈给参考帧存储单元或独立的存储单元。
另一种分像素运动估计装置,包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、模式选择单元以及最优匹配判决单元:
所述待估计宏块存储单元存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元;
所述参考帧存储单元存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元;
所述分像素预测块产生单元产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元;
所述运算逻辑阵列单元分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个。被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个。同时SAD累加器还可以将运动矢量代价函数与SAD1值累加。
所述模式选择单元,根据待估计宏块的已知分割模式,选择该分割模式下SAD累加器的SAD2值,逐行输出给最优匹配判决单元,共输出M行,每行M个SAD2值。
所述最优匹配判决单元包括一个最优匹配判决器,对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量。
所述最优匹配判决单元将最优匹配点位置反馈给分像素预测块产生单元,分像素预测块产生单元根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据。
所述分像素预测块产生单元将预测块数据反馈给参考帧存储单元或独立的存储单元。
一种分像素运动估计方法,包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块的位置,从参考帧存储单元调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值。继续步骤(3);
(3)对每一个当前块而言,有且仅有一个依据当前待判决的宏块分割模式而确定的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到在当前待判决的宏块分割模式下该SAD累加器所对应的所有子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);在该步中SAD累加器还可以将运动矢量代价函数与SAD1值累加;
(4)各SAD累加器的输出连接一个最优比较器,各最优比较器从SAD累加器逐行接收M个SAD2值,共接收M行,最优比较器对MxM个SAD2值进行比较,输出最小SAD2值,即为SAD2_MIN,同时输出SAD2_MIN在搜索点阵中对应的位置;继续步骤(5);
(5)若当前待选宏块分割模式包含子块级分割,则继续步骤(6),否则转到步骤(8);
(6)若宏块分割模式的比较级别未统一到子块级,则转到步骤(1);否则,继续步骤(7);
(7)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:子块级模式判决,选出最小SAD值作为该级别的SAD_MIN值,确定子块级的分割模式。继续步骤(8);
(8)若待选的宏块分割模式比较级别未统一到宏块级,则转到步骤(1);否则,继续步骤(9);
(9)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:宏块级模式判决,选出最小SAD值作为帧间预测的SAD_MIN值,确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量。继续步骤(10);
(10)判断分像素搜索是否达到最小运动估计精度,如果没有达到则返回步骤(1);否则,分像素运动估计结束。
如上所述的步骤(2)、(3)相对于步骤(1)可以根据实际需要进行适当的延迟。对多参考帧运动估计而言,上述流程针对每一个参考帧都需要执行一次。
另一种分像素运动估计方法,包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块中的位置调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值;继续步骤(3);
(3)根据已知宏块分割模式,选取该分割模式下的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的所有子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);在该步中SAD累加器还可以将运动矢量代价函数与SAD1值累加;
(4)最优匹配判决单元对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量;继续步骤(5);
(5)判断待估计宏块内所有NxN子块是否处理完毕,若已经处理完毕,则继续步骤(6),否则,跳转到步骤(1);
(6)确定已知宏块分割模式下的运动矢量和SAD_MIN值。继续步骤(7);
(7)判断分像素搜索是否未达到最小运动估计精度,如果没有达到则返回步骤(1),否则,分像素运动估计结束。
如上所述的步骤(2)、(3)相对于步骤(1)可以根据实际需要进行适当的延迟。对多参考帧运动估计而言,上述流程针对每一个参考帧都需要执行一次。
本发明的有益效果是:
(1)本发明将运动估计分级为整像素和分像素,且在分像素运动估计中按照分像素精度来再次进行运动估计分级,因此平衡了搜索范围和搜索精度,进而降低运动估计的运算复杂度,缩短搜索时间,保证编码系统的实时性。
(2)本发明采用全流水结构,整个运动估计运算执行周期小,可以在不损编码性能的情况下占用更少的资源对编码器的压缩效率影响很小,在编码器性能、功耗、面积之间进行权衡。
(3)由于本发明基于块模式编码,因此在多种视频标准实现都可以采用,具有很强的通用性。根据不同视频编码标准,只需要针对多种该标准中宏块分割大小调整SAD累加和模式判决模块或模式选择单元即可。
(4)无论是对整像素、1/2像素还是1/4像素精度,甚至是更细精度的运动搜索都可适用本发明的分像素运动估计装置,该装置具有较高的复用率。
附图说明
图1为宏块分割模式示意图
图2为宏块分割模式未知的分像素运动估计装置系统结构图
图3为图2所示运动估计装置的SAD累加单元、最优匹配判决单元及模式判决单元
图4为宏块分割模式已知的分像素运动估计装置系统结构图
图5为图4所示运动估计装置的SAD累加单元、模式选择单元及最优匹配判决单元结构图
图6为宏块分割模式未知的分像素运动估计方法流程图
图7为宏块分割模式已知的分像素运动估计方法流程图
具体实施方式
以下结合附图对本发明内容进一步说明。
一种分像素运动估计装置,如图2所示,包括待估计宏块存储单元(11)、参考帧存储单元(12)、分像素预测块产生单元(13)、运算逻辑阵列单元(14)、SAD累加单元(15)、最优匹配判决单元(16)以及模式判决单元(17):
所述待估计宏块存储单元(11)存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元(14);
所述参考帧存储单元(12)存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元(13);
所述分像素预测块产生单元(13)产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元(14);
所述运算逻辑阵列单元(14)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元(15)包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定,如图3所示。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个。同时SAD累加器还可以将运动矢量代价函数与SAD1值累加。
所述最优匹配判决单元(16)包括数个最优比较器,各SAD累加器的输出连接一个最优比较器,如图3所示,所述最优比较器从SAD累加器逐行接收SAD2值,共接收M行,每行M个,所述最优比较器对MxM个SAD2值进行比较,各个最优比较器分别输出最小SAD2值,即为SAD2_MIN,同时输出SAD2_MIN在搜索点阵中对应的位置。
如图3所示,所述模式判决单元(17),对各种宏块分割模式下的SAD2_MIN值进行同级别比较,若宏块分割模式的比较级别未达到同一级别,则对各个宏块分割模式的SAD2_MIN值累加到同一级别,所谓同一级别是指8x8子块级别和16x16宏块级别。若宏块分割模式的比较级别达到子块级,选出最小SAD值作为子块级别的SAD_MIN值,确定子块级的分割模式。若宏块分割模式的比较级别达到宏块级,选出最小SAD值作为帧间预测的SAD_MIN值;根据帧间预测的SAD_MIN值确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量。
所述模式判决单元(17)将最优匹配点位置反馈给分像素预测块产生单元,分像素预测块产生单元根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据,如图1所示。
所述分像素预测块产生单元(13)将预测块数据反馈给参考帧存储单元(12)或独立的存储单元,如图1所示。
另一种分像素运动估计装置,如图4所示,包括待估计宏块存储单元(21)、参考帧存储单元(22)、分像素预测块产生单元(23)、运算逻辑阵列单元(24)、SAD累加单元(25)、模式选择单元(26)以及最优匹配判决单元(27):
所述待估计宏块存储单元(21)存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元(24);
所述参考帧存储单元(22)存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元(23);
所述分像素预测块产生单元(23)产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元(24);
所述运算逻辑阵列单元分(24)别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元(25)包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定,如图5所示。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个。被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个。同时SAD累加器还可以将运动矢量代价函数与SAD1值累加。
如图5所示,所述模式选择单元(26),根据待估计宏块的已知分割模式,选择该分割模式下SAD累加器的SAD2值,逐行输出给最优匹配判决单元(27),共输出M行,每行M个SAD2值。
如图5所示,所述最优匹配判决单元(27)包括一个最优匹配判决器,对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量。
所述最优匹配判决单元(27)将最优匹配点位置反馈给分像素预测块产生单元(23),分像素预测块产生单元(23)根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据,如图4所示。
所述分像素预测块产生单元(23)将预测块数据反馈给参考帧存储单元(22)或独立的存储单元,,如图4所示。
一种分像素运动估计方法,如图6所示,包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块的位置,从参考帧存储单元调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值。继续步骤(3);
(3)对每一个当前块而言,有且仅有一个依据当前待判决的宏块分割模式而确定的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到在当前待判决的宏块分割模式下该SAD累加器所对应的所有子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);在该步中SAD累加器还可以将运动矢量代价函数与SAD1值累加;
(4)各SAD累加器的输出连接一个最优比较器,各最优比较器从SAD累加器逐行接收M个SAD2值,共接收M行,最优比较器对MxM个SAD2值进行比较,输出最小SAD2值,即为SAD2_MIN,同时输出SAD2_MIN在搜索点阵中对应的位置;继续步骤(5);
(5)若当前待选宏块分割模式包含子块级分割,则继续步骤(6),否则转到步骤(8);
(6)若宏块分割模式的比较级别未统一到子块级,则转到步骤(1);否则,继续步骤(7);
(7)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:子块级模式判决,选出最小SAD值作为该级别的SAD_MIN值,确定子块级的分割模式。继续步骤(8);
(8)若待选的宏块分割模式比较级别未统一到宏块级,则转到步骤(1);否则,继续步骤(9);
(9)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:宏块级模式判决,选出最小SAD值作为帧间预测的SAD_MIN值,确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量。继续步骤(10);
(10)判断分像素搜索是否达到最小运动估计精度,如果没有达到则返回步骤(1);否则,分像素运动估计结束。
如上所述的步骤(2)、(3)相对于步骤(1)可以根据实际需要进行适当的延迟。对多参考帧运动估计而言,上述流程针对每一个参考帧都需要执行一次。
另一种分像素运动估计方法,如图7所示,包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块中的位置调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值;继续步骤(3);
(3)根据已知宏块分割模式,选取该分割模式下的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的所有子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);在该步中SAD累加器还可以将运动矢量代价函数与SAD1值累加;
(4)最优匹配判决单元对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量;继续步骤(5);
(5)判断待估计宏块内所有NxN子块是否处理完毕,若已经处理完毕,则继续步骤(6),否则,跳转到步骤(1);
(6)确定已知宏块分割模式下的运动矢量和SAD_MIN值。继续步骤(7);
(7)判断分像素搜索是否未达到最小运动估计精度,如果没有达到则返回步骤(1),否则,分像素运动估计结束。
如上所述的步骤(2)、(3)相对于步骤(1)可以根据实际需要进行适当的延迟。对多参考帧运动估计而言,上述流程针对每一个参考帧都需要执行一次。
应该理解到的是,上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明保护范围之内。
Claims (12)
1.分像素运动估计装置,其特征在于:包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、最优匹配判决单元以及模式判决单元,所述待估计宏块存储单元连接分像素预测块产生单元,参考帧存储单元连接分像素预测块产生单元,分像素预测块产生单元连接运算逻辑阵列单元,运算逻辑阵列单元连接SAD累加单元,SAD累加单元连接最优匹配判决单元,最优匹配判决单元连接模式判决单元。
2.如权利要求1所述的分像素运动估计装置,其特征在于:
所述待估计宏块存储单元存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元;
所述参考帧存储单元存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元;
所述分像素预测块产生单元产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元;
所述运算逻辑阵列单元分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个。被选中的SAD累
加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;
所述最优匹配判决单元包括数个最优比较器,各SAD累加器的输出连接一个最优比较器,所述最优比较器从SAD累加器逐行接收SAD2值,共接收M行,每行M个,
所述最优比较器对MxM个SAD2值进行比较,各个最优比较器分别输出最小SAD2值,即为SAD2_MIN,同时输出SAD2_MIN在搜索点阵中对应的位置;
所述模式判决单元,对各种宏块分割模式下的SAD2_MIN值进行同级别比较,若宏块分割模式的比较级别未达到同一级别,则对各个宏块分割模式的SAD2_MIN值累加到同一级别,所谓同一级别是指8x8子块级别和16x16宏块级别。若宏块分割模式的比较级别达到子块级,选出最小SAD值作为子块级别的SAD_MIN值,确定子块级的分割模式。若宏块分割模式的比较级别达到宏块级,选出最小SAD值作为帧间预测的SAD_MIN值;根据帧间预测的SAD_MIN值确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量。
3.如权利要求2所述分像素运动估计装置,其特征在于:所述SAD累加器将运动矢量代价函数与SAD1值累加。
4.如权利要求2所述分像素运动估计装置,其特征在于:所述最优匹配判决单元将最优匹配点位置反馈给分像素预测块产生单元,分像素预测块产生单元根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据;所述分像素预测块产生单元将预测块数据反馈给参考帧存储单元或独立的存储单元。
5.分像素运动估计装置,其特征在于:包括待估计宏块存储单元、参考帧存储单元、分像素预测块产生单元、运算逻辑阵列单元、SAD累加单元、模式选择单元以及最优匹配判决单元,所述待估计宏块存储单元连接分像素预测块产生单元,参考帧存储单元连接分像素预测块产生单元,分像素预测块产生单元连接运算逻辑阵列单元,运算逻辑阵列单元连接SAD累加单元,SAD累加单元连接模式选择单元,模式选择单元连接最优匹配判决单元。
6.如权利要求5所述分像素运动估计装置,其特征在于:
所述待估计宏块存储单元存储待估计宏块,并从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,当前块逐个输入至运算逻辑阵列单元;
所述参考帧存储单元存储整像素或分像素的参考帧图像,根据当前块在待估计宏块的位置,整像素或分像素参考帧图像输出给分像素预测块产生单元;
所述分像素预测块产生单元产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像,所述搜索点阵输出至运算逻辑阵列单元;
所述运算逻辑阵列单元分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行,每行M个SAD1值;
所述SAD累加单元包括数个SAD累加器,所述SAD累加器的个数由宏块的分割模式决定。对每一个当前块而言有且只有一个SAD累加器被选中,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个。被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;
所述模式选择单元,根据待估计宏块的已知分割模式,选择该分割模式下SAD累加器的SAD2值,逐行输出给最优匹配判决单元,共输出M行,每行M个SAD2值;
所述最优匹配判决单元包括一个最优匹配判决器,对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量。
7.如权利要求6所述分像素运动估计装置,其特征在于:所述SAD累加器将运动矢量代价函数与SAD1值累加。
8.如权利要求6所述分像素运动估计装置,其特征在于:所述最优匹配判决单元将最优匹配点位置反馈给分像素预测块产生单元,分像素预测块产生单元根据最优匹配点位置为下一分像素级别的运动估计产生预测块数据;所述分像素预测块产生单元将预测块数据反馈给参考帧存储单元或独立的存储单元。
9.分像素运动估计方法,其特征在于包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块的位置调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值。继续步骤(3);
(3)对每一个当前块而言,有且仅有一个依据当前待判决的宏块分割模式而确定的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到在当前待判决的宏块分割模式下该SAD累加器所对应的所有NxN(4x4)子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);
(4)各SAD累加器的输出连接一个最优比较器,各最优比较器从SAD累加器逐行接收M个SAD2值,共接收M行,最优比较器对MxM个SAD2值进行比较,输出最小SAD2值,即为SAD2_MIN,同时输出SAD2_MIN在搜索点阵中对应的位置;继续步骤(5);
(5)若当前待选宏块分割模式包含子块级分割,则继续步骤(6),否则转到步骤(8);
(6)若宏块分割模式的比较级别未统一到子块级,则转到步骤(1);否则,继续步骤(7);
(7)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:子块级模式判决,选出最小SAD值作为该级别的SAD_MIN值,确定子块级的分割模式。继续步骤(8);
(8)若待选的宏块分割模式比较级别未统一到宏块级,则转到步骤(1);否则,继续步骤(9);
(9)对步骤(4)中各种宏块分割模式下的SAD2_MIN值进行同级别比较:宏块级模式判决,选出最小SAD值作为帧间预测的SAD_MIN值,确定最优的宏块分割模式,并将该模式下对应的SAD2_MIN值在搜索点阵中的位置作为最优匹配点位置,进而根据输入的运动矢量和最优匹配点位置得到分像素运动矢量;继续步骤(10);
(10)判断分像素搜索是否达到最小运动估计精度,如果没有达到则返回步骤(1);否则,分像素运动估计结束。
10.如权利要求9所述分像素运动估计装置,其特征在于:所述步骤(3)中,SAD累加器将运动矢量代价函数与SAD1值累加。
11.分像素运动估计方法,其特征在于包括如下步骤:
(1)从待估计宏块中持续调出尺寸为NxN(4x4)的像素子块作为当前块,逐个输出当前块;同时,根据当前块在待估计宏块中的位置调出整像素或分像素参考帧图像,产生搜索点阵,所述搜索点阵由MxM个(3x3)预测块构成,每个预测块尺寸为NxN(4x4)的整像素或分像素参考帧图像;继续步骤(2);
(2)分别将当前块与搜索点阵同一行的M个预测块进行SAD计算,输出一行M个SAD1值,直到完成当前块与搜索点阵中M行预测块的SAD计算,共输出M行SAD1值,每行M个SAD1值;继续步骤(3);
(3)根据已知宏块分割模式,选取该分割模式下的SAD累加器,被选中的SAD累加器从运算逻辑阵列单元逐行接收SAD1值,共接收M行,每行M个,被选中的SAD累加器将当前块对应的MxM个SAD1值按对应位置与该SAD累加器原来各位置点的数值累加,直到宏块分割模式下该SAD累加器所对应的所有子块处理完毕,输出累加得到的SAD2值,共有M行,每行M个;继续步骤(4);
(4)各SAD累加器的输出连接一个最优比较器,各最优匹配判决单元对输入的M×M个SAD2值进行比较,选择最小SAD2值作为SAD_MIN,将SAD_MIN值在搜索点阵中的对应位置作为最优匹配点位置,根据输入的运动矢量和最优匹配点位置获得分像素运动矢量;继续步骤(5);
(5)判断待估计宏块内所有NxN子块是否处理完毕,若已经处理完毕,则继续步骤(6),否则,跳转到步骤(1);
(6)确定已知宏块分割模式下的运动矢量和SAD_MIN值;继续步骤(7);
(7)判断分像素搜索是否未达到最小运动估计精度,如果没有达到则返回步骤(1),否则,分像素运动估计结束。
12.如权利要求11所述分像素运动估计装置,其特征在于:所述步骤(3)中,SAD累加器将运动矢量代价函数与SAD1值累加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910100539 CN101600112A (zh) | 2009-07-09 | 2009-07-09 | 分像素运动估计装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910100539 CN101600112A (zh) | 2009-07-09 | 2009-07-09 | 分像素运动估计装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101600112A true CN101600112A (zh) | 2009-12-09 |
Family
ID=41421318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910100539 Pending CN101600112A (zh) | 2009-07-09 | 2009-07-09 | 分像素运动估计装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101600112A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377998A (zh) * | 2010-08-10 | 2012-03-14 | 财团法人工业技术研究院 | 用于视频处理的移动估计的方法及装置 |
US8989268B2 (en) | 2010-07-21 | 2015-03-24 | Industrial Technology Research Institute | Method and apparatus for motion estimation for video processing |
CN105681807A (zh) * | 2016-01-06 | 2016-06-15 | 福州瑞芯微电子股份有限公司 | 一种基于h264协议的分像素运动矢量计算方法和装置 |
WO2017124298A1 (zh) * | 2016-01-19 | 2017-07-27 | 北京大学深圳研究生院 | 视频编码、解码方法及其帧间预测方法、装置和系统 |
CN107087168A (zh) * | 2017-03-31 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种对帧内预测模式的判断方法及装置 |
CN110223326A (zh) * | 2019-06-18 | 2019-09-10 | 无锡英斯特微电子有限公司 | 光电导航系统中亚像素区域确定方法及其系统 |
CN113489985A (zh) * | 2021-05-26 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 一种分像素运动估计方法及估计系统 |
CN115529459A (zh) * | 2022-10-10 | 2022-12-27 | 格兰菲智能科技有限公司 | 中心点搜索方法、装置、计算机设备、存储介质 |
-
2009
- 2009-07-09 CN CN 200910100539 patent/CN101600112A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8989268B2 (en) | 2010-07-21 | 2015-03-24 | Industrial Technology Research Institute | Method and apparatus for motion estimation for video processing |
CN102377998A (zh) * | 2010-08-10 | 2012-03-14 | 财团法人工业技术研究院 | 用于视频处理的移动估计的方法及装置 |
CN102377998B (zh) * | 2010-08-10 | 2014-08-20 | 财团法人工业技术研究院 | 用于视频处理的移动估计的方法及装置 |
CN105681807A (zh) * | 2016-01-06 | 2016-06-15 | 福州瑞芯微电子股份有限公司 | 一种基于h264协议的分像素运动矢量计算方法和装置 |
WO2017124298A1 (zh) * | 2016-01-19 | 2017-07-27 | 北京大学深圳研究生院 | 视频编码、解码方法及其帧间预测方法、装置和系统 |
CN107087168A (zh) * | 2017-03-31 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种对帧内预测模式的判断方法及装置 |
CN107087168B (zh) * | 2017-03-31 | 2020-07-31 | 武汉斗鱼网络科技有限公司 | 一种对帧内预测模式的判断方法及装置 |
CN110223326A (zh) * | 2019-06-18 | 2019-09-10 | 无锡英斯特微电子有限公司 | 光电导航系统中亚像素区域确定方法及其系统 |
CN113489985A (zh) * | 2021-05-26 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 一种分像素运动估计方法及估计系统 |
CN115529459A (zh) * | 2022-10-10 | 2022-12-27 | 格兰菲智能科技有限公司 | 中心点搜索方法、装置、计算机设备、存储介质 |
CN115529459B (zh) * | 2022-10-10 | 2024-02-02 | 格兰菲智能科技有限公司 | 中心点搜索方法、装置、计算机设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101600112A (zh) | 分像素运动估计装置和方法 | |
CN1157956C (zh) | 运动估计器 | |
CN101605262B (zh) | 可变块尺寸运动预测方法和装置 | |
CN101610413B (zh) | 一种视频的编码/解码方法及装置 | |
CN103997645B (zh) | 一种快速的hevc帧内编码单元和模式决策方法 | |
CN101931803A (zh) | 视频图像运动信息获取方法、装置及设备、模板构造方法 | |
CN102790884B (zh) | 一种基于分层运动估计的搜索方法及其实现系统 | |
CN101505427A (zh) | 视频压缩编码算法中的运动估计装置 | |
CN100534195C (zh) | 融合多参考帧选择和运动估计的快速帧间模式判决方法 | |
CN102291581B (zh) | 支持帧场自适应运动估计的实现方法 | |
CN102148990B (zh) | 一种运动矢量预测装置和方法 | |
CN108366256A (zh) | 一种hevc帧内预测模式快速选择系统及方法 | |
CN101860747B (zh) | 亚像素运动估计系统及方法 | |
CN100463524C (zh) | 一种用于运动估计的vlsi装置及运动估计的方法 | |
CN105681808A (zh) | 一种scc帧间编码单元模式的快速决策方法 | |
CN101170696B (zh) | 一种运动估计方法 | |
CN102164283A (zh) | 一种基于avs的亚像素运动估计方法 | |
CN101883275B (zh) | 视频编码方法 | |
CN101820547A (zh) | 帧间模式选择方法 | |
CN101895761B (zh) | 一种快速帧内预测算法 | |
CN113038125B (zh) | 帧内预测模式选择方法、装置、设备及存储介质 | |
CN201682589U (zh) | 分像素运动估计装置 | |
CN101867818B (zh) | 宏块模式的选择方法和装置 | |
CN100385957C (zh) | 一种运动矢量预测的方法 | |
CN110971896B (zh) | 一种h.265编码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091209 |