—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 頁)
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 頁)