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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454423.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機系統結構sw指令集,自考02325計算機系統結構復習資料六

自考生網為考生收集整理了“自考02325計算機系統結構復習資料六“以供考生們在考試前用復習資料鞏固所學到的知識&#xff0c;得到更好地復習效果。注&#xff1a;由于各省教材每年都有更新、變動&#xff0c;自考復習資料并不一定出于同一自考教材版本&#xff0c;但考生們仍可…

Django REST framework 源碼中提供的默認配置

DEFAULTS 是默認配置&#xff0c;IMPORT_STRINGS 是要相對應導入的類 鍵 大寫大寫大寫 ########################### settings.py ########################## DEFAULTS {# Base API policiesDEFAULT_RENDERER_CLASSES: (rest_framework.renderers.JSONRenderer,rest_framew…

python 去掉空格_如何從Python DataFrame中去除空格在這個例子中

使用applymap到數據幀&#xff0c;applymap施加一拉每個單元格上的mbda函數。在lambda函數中拆分字符串&#xff08;白色空格在其中被忽略&#xff09;然后加入它。如果有一個int&#xff0c;那么你可以在lambda函數中使用if else。 from pandas import Series, DataFrame impo…

Mware HA實戰攻略之五VMwareHA測試驗收

【IT168 專稿】在上一篇"VMware HA實戰攻略之四VMwareHA安裝及配置"中&#xff08;點擊&#xff09;&#xff0c;講述了VMwareHA的概念及創建過程&#xff0c;還講述了創建過程中要注意的一些事項。在本篇中&#xff0c;將要講述如何在群集節點之一的ESX主機上安裝虛…

AVS解碼器在DSP平臺上的優化

AVS( Audio Video Coding STandard)是由我國數字 音視頻標準工作組制定的具有自主知識產權的第二代音視頻壓縮準。AVS實行1 元專利費用的原則&#xff0c;相比其它音視頻編解碼標準具有編碼效率高、專利費用低、授權模式簡單等優勢。AVS 解碼器的結構復雜、運算量較大&#xff…

如何重做計算機系統軟件,電腦卡如何一鍵重做Win7旗艦版

電腦卡如何一鍵重做Win7旗艦版&#xff1f;小伙伴們在使用電腦的過程中系統會越來越卡&#xff0c;對于新手小白來說怎么重裝系統是一個比較煩惱的問題&#xff0c;不知道如何下手&#xff0c;從哪里開始&#xff0c;那么接下來就以云騎士裝機大師為例給小伙伴們講解一下電腦卡…

Django Rest framework Request

[Django Rest framework文檔翻譯]-Request REST framework的Request類擴展自標準的HttpRequest&#xff0c;增加了REST framework靈活的請求解析和請求驗證支持。 請求解析 REST framework的Request對象提供了靈活的請求解析&#xff0c;讓你可以像一般處理普通form數據一樣…

python去停用詞用nltk_【NLTK】安裝和使用NLTK分詞和去停詞

黃聰&#xff1a;PythonNLTK自然語言處理學習&#xff08;一&#xff09;&#xff1a;環境搭建 http://www.cnblogs.com/huangcong/archive/2011/08/29/2157437.html 安裝NLTK可能出現的問題&#xff1a; 1. pip install ntlk 2. 如果遇到缺少stopwords報錯如下&#xff1a;&am…

JavaScript知識概要

JavaScript 1.簡介 JavaScript簡介&#xff1a; JS是運行在瀏覽器端的一門腳本語言&#xff0c;一開始主要用來做瀏覽器驗證&#xff0c;但現在功能已經不止于此。 所謂腳本語言就是指&#xff0c;代碼不需要編譯&#xff0c;直接運行&#xff0c;并且讀入…

計算機文檔xsl,XSL-FO 文檔

XSL-FO 文檔XSL-FO 文檔XSL-FO 文檔是帶有輸出信息的 XML 文件。XSL-FO 文檔存儲在以 .fo 或 .fob 為文件擴展名的文件中。您也可以把 XSL-FO 文檔存儲為以 .xml 為擴展名的文件&#xff0c;這樣做的話可以使 XSL-FO 文檔更易被 XML 編輯器存取。XSL-FO 文檔結構XSL-FO 的文檔結…

vue項目cordova打包的android應用

準備工作nodejs、cordova、AndroidStudio這些在上一篇文章中已經說過了&#xff0c;這里就不重復說明。以此文記錄vue項目用cordova打包移動app的方法。 1.創建一個cordova項目&#xff0c;如創建一個名為testapp的工程&#xff1a;cordova create testapp 2.添加安卓平臺 cord…

H.264視頻開發---代碼移植

基于DSP系統開發的視頻編解碼系統&#xff0c;國內幾乎都是走的移植&#xff0c;優化的路線&#xff0c;并且移植的代碼&#xff0c;都是開源的。畢竟花費大量的人力&#xff0c;物力去開發一套自己的代碼&#xff0c;并不見得比一些成熟的開源代碼效率更高&#xff0c;健壯性更…

Django REST framework 源碼解析

先放圖&#xff0c;放圖說話&#xff0c;可能有點長 主流程 這個顏色 從setting導入默認數據流程是 這個顏色 主流程大概流程寫一下&#xff1a;as_view 實際返回view&#xff0c;并把參數{"get":"list","post":"create"}傳遞給view…

-9 逆序輸出一個整數的各位數字_leetcode兩數相加(大整數相加)

題目來源于leetcode第二題兩數相加。題目描述給出兩個非空的鏈表用來表示兩個非負的整數。其中&#xff0c;它們各自的位數是按照逆序的方式存儲的&#xff0c;并且它們的每個節點只能存儲一位數字。如果&#xff0c;我們將這兩個數相加起來&#xff0c;則會返回一個新的鏈表來…

計算機如何添加管理員權限,電腦使用代碼如何添加管理員權限

我們在使用電腦運行某些軟件的時候&#xff0c;可能需要用到管理員權限才能運行&#xff0c;通常來說直接點擊右鍵就會有管理員權限&#xff0c;但最近有用戶向小編反饋&#xff0c;在需要管理員權限的軟件上點擊右鍵沒有看到管理員取得所有權&#xff0c;那么究竟該如何才能獲…

mysql選擇數據庫創建數據庫

MySQL 選擇數據庫 在你連接到 MySQL 數據庫后&#xff0c;可能有多個可以操作的數據庫&#xff0c;所以你需要選擇你要操作的數據庫。 從命令提示窗口中選擇MySQL數據庫 在 mysql> 提示窗口中可以很簡單的選擇特定的數據庫。你可以使用SQL命令來選擇指定的數據庫。 實例 以下…

英語面試技巧以及準備工作

如果你提前知道了電話面試的時間&#xff0c;則可以在面試時把簡歷、coverletter放在你旁邊的桌子上&#xff0c;直接運用里面的句子回答問題。一些基本的問題&#xff0c;你可以事先準備好答案。通常&#xff0c;在電話英語面試的時候會提道&#xff1a;  please tell me som…

sql注入問題

${}拼接sql&#xff0c;會引起sql注入&#xff0c;sql注入例如&#xff1a; select * from user where name like ‘%’ or 11 or ‘%’&#xff1b; 這種情況下&#xff0c;論name為什么都可以執行 轉載于:https://www.cnblogs.com/mengyinianhua/p/7649325.html

Python 面向對象之雙下方法,內置函數

isinstance和issubclass isinstance(obj,cls) # 檢查是否obj是否是類 cls 的對象 class Foo(object):passobj Foo()isinstance(obj, Foo) # ture issubclass(sub, super) # 檢查sub類是否是 super 類的派生類 class Foo(object):passclass Bar(Foo):passissubclass…

teechart繪制實時曲線_快速學會CAD繪制傳輸線路圖紙

一工具CAD工程設計軟件二方法和步驟萬事開頭難&#xff0c;遇到不懂的知識剛開始都有畏難的情緒&#xff0c;只要有決心學習&#xff0c;誠心想學會一項技能&#xff0c;那學會學好它就只是時間問題了。我們常常面臨時間緊、需要快速入門甚至熟練地解決工作中實際情況的問題&am…