`
xpp02
  • 浏览: 1006974 次
社区版块
存档分类
最新评论

AVS 分像素运动估计优化算法

 
阅读更多
—249—
AVS 分像素运动估计优化算法
杨涵悦 1,张兆杨1,滕国伟2
(1. 上海大学通信学院,上海 200072;2. 上海广电(集团)有限公司中央研究院,上海 200233)
摘要:针对AVS 分像素运动估计的问题,提出一种优化的估计方法。包括分像素自适应提前中止算法和改进的分像素内插方法。该方
法能降低分像素运动搜索的内插复杂度和搜索次数,适用于DSP、FPGA 等嵌入式平台的实现。实验结果表明,在保证图像质量的前提下,
该算法的总体运算复杂度降低了70%以上。
关键词:分像素;嵌入式;运动估计
Optimization Algorithm of AVS Sub-pixel Motion Estimation
YANG Han-yue1, ZHANG Zhao-yang1, TENG Guo-wei2
(1. School of Communication, Shanghai University, Shanghai 200072; 2. Central Research Academy, SVA(Group) Co. Ltd., Shanghai 200233)
【Abstract】An optimization method of AVS sub-pixel motion estimation is proposed. The method is devided into two parts, one is adaptive
sub-pixel early termination algorithm and the other is an improved way of sub-pixel interpolation. The proposed method can highly reduce the
interpolation complexity and search points for sub-pixel motion estimation, which is appropriate to be used on embedded system. The computational
complexity can be reduced above 70% with the new method without losing the quality of the video.
【Key words】sub-pixel; embedded; motion estimation
计 算 机 工 程
Computer Engineering
第36 卷第 14 期
Vol.36 No.14
2010 年7 月
July 2010
·开发研究与设计技术· 文章编号:1000—3428(2010)14—0249—02 文献标识码:A 中图分类号:TP311.12
1 概述
AVS(Audio Video coding Standard)是我国具备自主知识
产权的第二代信源编码标准,具有先进、自主、开放的特点。
并且,在AVS 工作组第26 次会议中首次完成了针对视频监
控的视频编码标准,这是全球范围内首个针对视频监控需求
制定的视频编码标准。目前,AVS 已被广泛应用于各种嵌入
式平台如DSP、FPGA 等。对于嵌入式平台的视频编码应用,
一般以实时编码为目的,需要对AVS 编码算法经过一系列优
化后(算法和平台优化),方可实现实时,而其瓶颈就在于分
像素运动搜索。因为AVS 的分像素运动搜索的运算复杂度较
大,被调用的频率也相对较高,会占用相当大的系统资源。
本文提出了一种分像素搜索的自适应终止算法和改进的插值
方法,在保证编码性能的前题下可大幅降低运算复杂度和运
行时间。在TI 的DM6446 平台上测试,已可以实现监控视频
的D1 实时编码。
2 AVS 分像素运动估计算法
2.1 分像素运动搜索
在 AVS 视频编码中当前模式的最佳匹配块是由预测块
与当前块之间代价值C 来决定的,即:
C = SAD +MV _COST (1)
式中,SAD 表示预测块与当前块之间的残差绝对值和(Sum of
Absolute Difference, SAD); MV _COST 表示预测块的运动矢
量代价值。
最佳匹配块的搜索过程是指对参考帧中的像素点 I 所对
应的块与当前块通过式(1)所得到的代价值Cp ,其中代价值
最小的点所对应的块即为最佳匹配块。AVS 的整像素和分像
素运动搜索都用到这一方法。
AVS 的分像素运动搜索分为3 步:
(1)由整像素运动搜索得到最优整像素点,由式(1)计算出
其代价值i C ,并分别计算其周围8 个1/2 像素点的代价值
Ch ,h∈[1,8]。比较Ci 和Ch ,如果最优点仍为整像素点,转(2),
否则转到(3)。
(2)搜索整像素点周围的8 个1/4 像素点,得到它们的
Cq ,q∈[1,8],找出Cq 最小的像素点,退出搜索。
(3)搜索1/2 像素点周围的8 个1/4 像素点,得到它们的
Cq ,q∈[1,8],找出Cq 最小的像素点,退出搜索。
2.2 分像素亮度内插
AVS 中亮度分像素的点实际并不存在,是通过整像素内
插得到,如图1 所示,其中大写字母表示整像素,小写字母
a~i 表示1/2 像素,其余为1/4 像素。
A B
C D E F
G H I J
K L
a
b
d e f
h
c
i
g
j k
l m n o
p
r s t
qu
图1 整像素和分像素样本位置
其中,1/2 像素点通过一个四抽头滤波器获得,滤波系数为-1,
5, 5, -1。a, b, h, i 通过水平方向的整像素点内插得到,c, d, f, g
作者简介:杨涵悦(1985-),男,硕士研究生,主研方向:嵌入式系
统,数字图像处理,视频压缩;张兆杨,教授;滕国伟,博士后
收稿日期:2010-01-20 E-mail:yhy856@hotmail.com
—250—
通过垂直方向整像素点内插得到。e 可由a, b, h, i 或c, d, f, g
内插得到;1/4 像素点通过四抽头滤波器和双线性虑波器获
得。四抽头滤波器的系数为1, 7, 7, 1,双线性滤波器的系数
为1、1。其中j, k, p, q 由水平方向的整像素和1/2 像素点内
插得到,l, n, r, t 由垂直方向的整像素和1/2 像素点内插得到,
均使用四抽头滤波器。m, o, s, u 通过双线性滤波器得到。计
算1/4 像素点时使用的整像素和1/2 像素均为中间值。
3 AVS 分像素运动估计优化算法
3.1 改进的分像素亮度内插方法
AVS 的分像素亮度插值由于使用了四抽头滤波器,插值
一个点需要用到多个数据和多次乘加运算,这样不利于嵌入
式系统的实现。近年来,许多研究都致力在硬件上实现分像
素插值[1-2],文献[1]考虑到DSP 的特点,提出了一种双线性
插值方法,可以有效得降低运算复杂度。但是使用该方法编
码后峰值信噪比(PSNR)下降偏大,而且在对1/4 像素插值时
仍然需要先得出1/2 像素点的数据。这里提出一种改进的分
像素亮度内插方法,用于替换参考代码中分像素搜索时的插
值方法,可以兼顾到运算复杂度和PSNR。具体过程如下:
(1)1/2 像素插值过程
图 1 中b, d, e 3 点表示3 种不同位置的1/2 像素点,
b = (-C+5×D+5×E-F+4)/8 , d = (D+H+1)/2 , e=(D+E+H+I+2)/4。
其中,C, D, E, F, H, I 均为整像素点。
(2)1/4 像素插值过程
在图 1 中,j, k, l, m, n, o, p, q, r, s, t, u 分别表示12 种不
同位置的1/4 像素点, j = (3×D+E+2)/4 , k = (D+3×E+2)/4 ,
l = (3×D+H+2)/4 , m= (3×D+I+2)/4 , n = (5×E+3×H+4)/8 ,
o = (3×E+H+2)/4 , p = (5×D+3×I+4)/8 , q = (3×D+5×I+4)/8 ,
r = (D+3×H+2)/4 , s = (E+3×H+2)/4 , t = (3×E + 5×H + 4)/8 ,
u = (D+3×I+2)/4。其中,D, E, H, I 均为整像素点。
上述方法中得到的分像素位置插值点 x 都需经过溢出修
正,修正公式为x = max(0, min(255, x)) 。该插值方法仅用到
整像素点,其运算复杂度大大降低,适合嵌入式平台的应用。
3.2 分像素搜索自适应提前中止算法
对于分像素搜索的改进,目前主要的方法都集中在搜索
方法上[3-5],这些方法都在一定程度上提高了搜索速度。本文
从另一个角度对分像素搜索进行优化,表1 为hall_cif 序列
在不同量化参数QP 下运动估计搜索结果,为整像素和分像
素的宏块数(8×8)。
表 1 hall 序列在不同QP 下的运动估计搜索结果
QP 20 24 28 32 36 40
整像素宏块数/帧837 853 881 1 115 1 350 1 454
分像素宏块数/帧747 731 703 469 234 130
由表1 可以看出,宏块运动搜索的结果不一定都为分像
素点的宏块,其中整像素的宏块还是占居一定比例的,并且
分像素点的宏块数随着QP 的上升逐渐下降。因此,本文提
出一种分像素搜索自适应提前中止算法。所谓提前中止即在
分像素搜索之前决定是否要进行分像素搜索。具体步骤如下:
(1)对当前宏块进行整像素运动搜索,得到整像素最佳模
式下代价值Ci 并保存。对于每个宏块的整像素代价值都进行
保存,保留一行的宏块代价值。
(2)计算当前宏块所要用到的阈值TH ,公式如下:
TH = (upleft + 2×left + 2×up + upright) >> 3 (2)
其中,upleft 表示当前宏块左上宏块的代价值;left 表示左边
宏块;up 表示上边宏块;upright 表示右上宏块。
(3)将Ci 与TH 比较,若Ci ≥TH 则进行分像素搜索,若
Ci < TH 则不进行分像素搜索。
4 实验结果和分析
4.1 编码性能分析
本实验采用 AVS 标准提供的参考软件rm52j,参数配置
如下:1 个参考帧,整像素使用六边形搜索法并已进行模式
判决的优化,搜索窗范围为[-16, 16],启用Hadamard 变换,
关闭码率控制和率失真优化。图像序列格式为IPPPP⋯⋯,
每15 帧有一帧I 帧,I 帧和P 帧的量化参数(QP)相同,QP
分别取20, 24, 28, 32。采用的测试序列为hall, silent, news 和
container 4 个序列,序列分辨率为CIF,编码300 帧。
实验结果如表 2 和表3 所示。其中,PSNR 栏表示在rm52j
编码器中加入分像素提前中止算法和改进的分像素亮度插值
方法编码后重建序列的亮度峰值信噪比(重建图像的分像数
插值仍使用参考代码中的插值方法),括号里为相对于参考代
码的PSNR 变化。BR 栏表示编码后的比特率,括号里为相对
参考代码的变化百分比。搜索次数栏为平均每帧需要搜索的
分像数宏块(8x8)次数,括号里为相对参考代码的变化百
分比。
表2 QP 为20 和24 的实验结果
QP=20 QP=24
序列
PSNR/dB BR/(kb·s-1) 搜索次数PSNR/dB BR/(kb·s-1) 搜索次数
hall 43.31
(-0.03)
2 976
(+1.1%)
11 682
(-66.5%)
41.21
(-0.1)
1 734
(+3.1%)
7 834
(-79.1%)
silent 43.36
(-0.05)
1 683
(+3.1%)
8 440
(-74.2%)
40.82
(-0.04)
1 120
(+3.4%)
6 497
(-74.2%)
news 44.54
(-0.09)
1 225
(+4.7%)
5 135
(-77.1%)
42.52
(-0.08)
834
(+5.4%)
4 008
(-79.6%)
container 43.46
(-0.06)
1 747
(+1.9%)
6 213
(-81.8%)
41.10
(-0.06)
1 166
(+3.8%)
5 339
(-83.5%)
表3 QP 为28 和32 的实验结果
QP=28 QP=32
序列
PSNR/dB BR/(kb·s-1) 搜索次数PSNR/dB BR/(kb·s-1) 搜索次数
hall 39.42
(-0.14)
960
(+3.0%)
7 866
(-78.7%)
37.83
(-0.08)
535
(+2.8%)
5 161
(-81.8%)
silent 38.44
(-0.05)
744
(+3.5%)
5 152
(-72.2%)
36.29
(-0.05)
503
(+3.4%)
3 958
(-75.3%)
news 40.48
(-0.1)
586
(+5.5%)
3 305
(-78.3%)
38.40
(-0.1)
422
(+5.5%)
2 574
(-79.5%)
container 38.80
(-0.08)
779
(+5.5%)
4 969
(-83.2%)
36.73
(-0.08)
514
(+6.8%)
3 332
(-85.2%)
从表2、表3 的结果可以看出,本文提出的算法对图像
质量的影响较小,PSNR 的下降控制在0.15 dB 之内,而码率
的增加也在7%以下。相对的,分像素宏块的搜索次数大幅下
降,平均下降百分比接近80%,即改进的算法得速度要比
rm52j 算法快近5 倍。
4.2 内插方法复杂度分析
表 4 列出了AVS 参考代码(rm52j)中的内插方法和改进的
内插方法所需的加法和移位的运算次数,其中双线性插值法
为文献[1]的方法。其中像素点的位置如图1 所示,数据均以
一个8×8 宏块为例,平均到每个像素点所需要的加法和移位
的次数,原方法中的乘法均用加法和移位来替换。
可以看出本文的方法和参考代码的方法相比加法和移位
的运算量分别减少了69.4%和50.3%,和双线性插值法的复
杂度相当。而双线性插值法相比参考代码的算法平均码长增
长了5%~7%,PSNR 下降了0.2 dB~0.4 dB,平均搜索次数减
少了40%~50%[1]。由3.1 节可知,本文的方法在码率的增加
和PSNR 的损失上均小于双线性插值法,而编码速度相对于
双线性插值法有大幅提高。 (下转第253 页)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics