论文部分内容阅读
[摘要]H.264是目前最新的视频编解码标准,研究运动估计基本原理和研究状况的基础上,对X264编码器的三种运动估计算法进行分析和比较,实验结果表明可以在保证图像质量的情况下,提高编码速度,有效压缩视频。
[关键词]H.264 视频编码 运动估计 X264
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220108-01
一、运动估计基本原理和研究现状
运动估计算法非常多样,大体上可以分为四类:递归估计算法[3],光流法[4],贝叶斯估计算法[5],块匹配算法[6]。其中块匹配运动估计算法因具有算法简单、便于VLSI实现等优点得到广泛应用。
二、X264中运动估计算法
X264利用相邻块的运动信息选择初始搜索点。由于编码过程中宏块按扫描顺序编码,同一帧图像中与当前块相邻的已编码块共有上、左、左上、右上4个块。在参考帧中,以这四个相邻已编码块的最佳匹配位置,以及当前块的相同位置(运动矢量为(0,0)的位置)为候选点,选择其中最匹配的位置作为运动估计的初始搜索点。
然后以初始搜索点为中心,进行整像素搜索,1/2像素精度搜索以及1/4像素精度搜索,具体过程如图1。以大写英文字母标注整像素位置,以小写英文字母标注1/2像素位置,以阿拉伯数字标注1/4像素位置。首先,在整像素运动估计中,假设点E为最佳匹配点,则编码器在其周围的八个1/2像素位置(a-h)行搜索,设b为这一阶段的最佳匹配点,则在b周围的8个1/4像素位置(1~8)中进行搜索,直至找出最佳的1/4像素精度的匹配位置。
X264中提供了三种可选的整像素的运动估计算法:X264_ME_ESA,X264_ME_HEX和X264_ME_DIA。X264进行整像素搜索的时候,首先是进行一个粗略的搜索,找到一个初步匹配的点,然后以此点为搜索中心,从上述三种搜索算法中选择一种进行搜索,最终得到最匹配的整像素匹配点。
1.X264_ME_ESA是一种全搜索算法,它对搜索区域的内的点进行全搜索,SAD最小的点就是全局的最优搜索点。
2.X264_ME_DIA是一种小菱形搜索算法,它的搜索过程如图2(b):
(1)对搜索区域内的点以小菱形模板(如图2(a))进行搜索,即对菱形顶点和中心点在内的5个黑点进行搜索,如果SAD最小的点在菱形的中心,则这个点就是整个搜索域内的最优匹配点,搜索结束,否则转入(2);
(2)以上述菱形顶点上SAD最小的点为中心,重复(1)。
(3)X264_ME_HEX是一种基于六边形的格点搜索算法,有大小两种模板,它的搜索过程可以分为两步:
①首先对搜索区域内的点以模板进行一个六边形的搜索,如图3(a)所示,即对圆形的黑点进行搜索。如果这7个点的最匹配点位于六边形的中心,则转入②,否则以六边形边上SAD最小的点为中心,重复①。注意,除了第一步外,其余步都不需要对中心点周围的六个点都进行搜索,如图中第二步,由于中心点周围点中有三个点在第一步已经被检索过,所以这一步只需要计算其他三个点的SAD值。
②对以①中搜索到的匹配点为中心的正方形区域(模板如图3(b))的点进行搜索,即对8个正方形的黑点进行搜索,则这9个点(正方形中域中的8个点和中心的一个点)中SAD最小的点就是整个搜索域的最匹配点。
三、X264三种运动估计算法性能比较与分析
我们分别对foreman.qcif,carphone.qcif和claire.qcif三个序列进行了测试,测试环境为Pentium(R)4的CPU,1.8GHz,256MB内存,测试结果如表1:
从测试结果看,总体上来说,X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX的峰值信噪比次之,X264_ME_DIA算法的峰值信噪比最低,这是由于他们三者的搜索准确度递降的缘故。而这三种算法的计算量也由X264_ME_ESA到X264_ME_HEX至X264_ME_DIA成依次减少的趋势,X264_ME_HEX和X264_ME_DIA较X264_ME_ESA,速度上有明显的优势。
参考文献:
[1]ITU Telecom.Standardization Sector of ITU,Advanced video coding for generic audiovisual services.ITU-T Recommendation H.264,2005(3).
[2]http://www.videolan.org/developers/x264.html.
[3]Looijenga L Biemond J,Boekee D E et al,A pelrecursive wiener-baed displacement estimation algorithm,Sign Proc,pp,13:399~412,1987.
[4]Nandhakumar N Aggarawal J K,On the computation of motion from sequences of images,Proc IEEE,pp,76:917~935,1988.
[5]Heitz F.Bouthemy P,Motion estimation and segmentation using a global Bayesian approach, Proc Int Conf ASSP Albuquerque NM,pp,2305~2308,1990.
[6]Bierling M,Displacement estimation by hirarchical blockmatching,Proc Visual Comm and Image Proc SPIE,pp,1001:942~951,1988.
[关键词]H.264 视频编码 运动估计 X264
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220108-01
一、运动估计基本原理和研究现状
运动估计算法非常多样,大体上可以分为四类:递归估计算法[3],光流法[4],贝叶斯估计算法[5],块匹配算法[6]。其中块匹配运动估计算法因具有算法简单、便于VLSI实现等优点得到广泛应用。
二、X264中运动估计算法
X264利用相邻块的运动信息选择初始搜索点。由于编码过程中宏块按扫描顺序编码,同一帧图像中与当前块相邻的已编码块共有上、左、左上、右上4个块。在参考帧中,以这四个相邻已编码块的最佳匹配位置,以及当前块的相同位置(运动矢量为(0,0)的位置)为候选点,选择其中最匹配的位置作为运动估计的初始搜索点。
然后以初始搜索点为中心,进行整像素搜索,1/2像素精度搜索以及1/4像素精度搜索,具体过程如图1。以大写英文字母标注整像素位置,以小写英文字母标注1/2像素位置,以阿拉伯数字标注1/4像素位置。首先,在整像素运动估计中,假设点E为最佳匹配点,则编码器在其周围的八个1/2像素位置(a-h)行搜索,设b为这一阶段的最佳匹配点,则在b周围的8个1/4像素位置(1~8)中进行搜索,直至找出最佳的1/4像素精度的匹配位置。
X264中提供了三种可选的整像素的运动估计算法:X264_ME_ESA,X264_ME_HEX和X264_ME_DIA。X264进行整像素搜索的时候,首先是进行一个粗略的搜索,找到一个初步匹配的点,然后以此点为搜索中心,从上述三种搜索算法中选择一种进行搜索,最终得到最匹配的整像素匹配点。
1.X264_ME_ESA是一种全搜索算法,它对搜索区域的内的点进行全搜索,SAD最小的点就是全局的最优搜索点。
2.X264_ME_DIA是一种小菱形搜索算法,它的搜索过程如图2(b):
(1)对搜索区域内的点以小菱形模板(如图2(a))进行搜索,即对菱形顶点和中心点在内的5个黑点进行搜索,如果SAD最小的点在菱形的中心,则这个点就是整个搜索域内的最优匹配点,搜索结束,否则转入(2);
(2)以上述菱形顶点上SAD最小的点为中心,重复(1)。
(3)X264_ME_HEX是一种基于六边形的格点搜索算法,有大小两种模板,它的搜索过程可以分为两步:
①首先对搜索区域内的点以模板进行一个六边形的搜索,如图3(a)所示,即对圆形的黑点进行搜索。如果这7个点的最匹配点位于六边形的中心,则转入②,否则以六边形边上SAD最小的点为中心,重复①。注意,除了第一步外,其余步都不需要对中心点周围的六个点都进行搜索,如图中第二步,由于中心点周围点中有三个点在第一步已经被检索过,所以这一步只需要计算其他三个点的SAD值。
②对以①中搜索到的匹配点为中心的正方形区域(模板如图3(b))的点进行搜索,即对8个正方形的黑点进行搜索,则这9个点(正方形中域中的8个点和中心的一个点)中SAD最小的点就是整个搜索域的最匹配点。
三、X264三种运动估计算法性能比较与分析
我们分别对foreman.qcif,carphone.qcif和claire.qcif三个序列进行了测试,测试环境为Pentium(R)4的CPU,1.8GHz,256MB内存,测试结果如表1:
从测试结果看,总体上来说,X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX的峰值信噪比次之,X264_ME_DIA算法的峰值信噪比最低,这是由于他们三者的搜索准确度递降的缘故。而这三种算法的计算量也由X264_ME_ESA到X264_ME_HEX至X264_ME_DIA成依次减少的趋势,X264_ME_HEX和X264_ME_DIA较X264_ME_ESA,速度上有明显的优势。
参考文献:
[1]ITU Telecom.Standardization Sector of ITU,Advanced video coding for generic audiovisual services.ITU-T Recommendation H.264,2005(3).
[2]http://www.videolan.org/developers/x264.html.
[3]Looijenga L Biemond J,Boekee D E et al,A pelrecursive wiener-baed displacement estimation algorithm,Sign Proc,pp,13:399~412,1987.
[4]Nandhakumar N Aggarawal J K,On the computation of motion from sequences of images,Proc IEEE,pp,76:917~935,1988.
[5]Heitz F.Bouthemy P,Motion estimation and segmentation using a global Bayesian approach, Proc Int Conf ASSP Albuquerque NM,pp,2305~2308,1990.
[6]Bierling M,Displacement estimation by hirarchical blockmatching,Proc Visual Comm and Image Proc SPIE,pp,1001:942~951,1988.