(山東師范大學(xué) 山東 濟(jì)南 250300)
視頻在人們的日常生活中扮演著越來越重要的娛樂角色。同時人們對視頻清晰度的要求也越來越高,那么視頻的存儲容量也變的越來越大。如今,移動設(shè)備的廣泛使用,視頻的實時性傳輸?shù)囊笠苍谔岣?,現(xiàn)有的傳輸技術(shù)還滿足不了大容量視頻實時性傳輸?shù)囊?。于是對視頻的壓縮變得尤為重要。
H.264視頻編碼標(biāo)準(zhǔn)比以前的標(biāo)準(zhǔn)提出了更多的技術(shù),編碼效率大為提升。提出宏塊的劃分概念,使得在運(yùn)動估計搜索之后能夠的到更精確的運(yùn)動矢量,提高幀間預(yù)測的精度。雖然這種方法能夠更加精確的預(yù)測運(yùn)動矢量,但相應(yīng)的每個子塊的計算復(fù)雜度也大為增加,如果我們利用串行的方法解決這個問題將耗費(fèi)很長的時間,尤其對清晰度比較高的視頻。即使在現(xiàn)有的CPU的技術(shù)之上,計算所耗費(fèi)的時間仍然是巨大的不能夠滿足視頻實時性壓縮編碼的要求。GPU(Graphics Processing Unit)圖形處理器,最初的目的是用來處理CPU送來的圖形元素,正確顯示在圖形輸出設(shè)備上。主要承擔(dān)輸出顯示圖形的任務(wù),且對于從事專業(yè)圖形設(shè)計以及處理的人員來說性能好、效率高的顯卡就顯得尤為重要。近年來,在實際應(yīng)用中程序的并行性帶來的便利及高效受到大家的追捧、青睞。而且隨著GPU的發(fā)展GPU強(qiáng)大的通用計算計算能力越來越受到人們的注意。尤其,英偉達(dá)公司開發(fā)的計算統(tǒng)一設(shè)備架構(gòu)(CUDA)在GPU上的使用,充分利用了并行計算的思想,不僅在圖像處理方面展現(xiàn)了強(qiáng)大的性能,在通用計算方面也取得了很大進(jìn)展。如果利用GPU去實現(xiàn)運(yùn)動估計將會帶來顯著的效益,而且很多學(xué)者也把精力放在了這一方面而且也都在此方面做出了進(jìn)一步的創(chuàng)新。
(一)搜索算法和運(yùn)動估計準(zhǔn)則的分類
為了提高視頻編碼效率大多數(shù)學(xué)者在搜索算法方面做的工作是比較多的。根據(jù)搜索點(diǎn)數(shù)可以將其分為兩大類,一類是全搜索,另一類是快速搜索。全搜索又分為無遺漏法(Exhaustive Search Algorithm)、繼承排除法(SEA)、多層繼承排除法(MSEA)等,快速搜索又分為鉆石搜索、三步搜索、新三步搜索、四步搜索、新四步搜索、矢量場自適應(yīng)法(MVFAST)、非對稱十字型多層次六邊形格點(diǎn)法(UMHexagonS)等等。根據(jù)搜索方式又可分為逐行掃描和隔行掃描,光柵搜索,螺旋搜索,兩點(diǎn)搜索等。全搜索是要搜索所有的像素點(diǎn)因而工作量非常大,通常只是把它作為一種比較。在的運(yùn)動估計的研究中,更多的學(xué)者更喜歡快速搜索,不僅可以提高壓縮性能而且可以實際應(yīng)用。
運(yùn)動估計提取圖像信息運(yùn)動過程的方式有三種:基于像素、基于像素區(qū)域、基于像素塊?;谙袼貕K的運(yùn)動表示方法同時考慮了運(yùn)動估計的精度和復(fù)雜度,它是基于像素的運(yùn)動表示和基于區(qū)域的運(yùn)動表示的一個折中,所以基于塊的運(yùn)動表示法是目前最常采用的方法。
(二)運(yùn)動估計的研究現(xiàn)狀
運(yùn)動估計在整個視頻壓縮過程中的耗時是最長的一部分,因此成為視頻壓縮中最重要的一部分,對運(yùn)動估計的優(yōu)化也顯得格外的重要。大量的研究者已經(jīng)對此部分從不同的方面做出了非常大的貢獻(xiàn)。
1.從硬件方面的創(chuàng)新
也有一部分工作者致力于硬件方面的改進(jìn)使其達(dá)到更高的并行性以期望達(dá)到更高的視頻壓縮碼率。比如,Huong Ho等人提出了多幀分級運(yùn)動估計(MFHME)電路的架構(gòu)設(shè)計和FPGA實現(xiàn),為了實現(xiàn)低計算復(fù)雜度,基于分層結(jié)構(gòu)設(shè)計電路并且使用預(yù)先計算的查找表來提供平方像素差異。實現(xiàn)結(jié)果表明,該電路能夠在55MHz的時鐘頻率下支持從30幀/秒到60幀/秒的高清視頻(1080P格式)的幀速率上變換。Abdulkadir Akin等人提出了降低塊匹配(BM)ME硬件功耗的比較預(yù)測(CP)技術(shù)。CP技術(shù)降低了BM ME硬件執(zhí)行的絕對差分操作的功耗。CP技術(shù)可以很容易地在所有BM ME硬件中使用。在XC2VP30-7 FPGA上,該硬件的平均動態(tài)功耗降低了2.2%,峰值信噪比(PSNR)降低了9.3%,PSNR損失降低了0.04%。
2.CPU和GPU的協(xié)同并行
合理的在GPU和CPU上合理地分配并行任務(wù),使用快速搜索算法加快視頻編碼速度。王等人提出了基于多核CPU和多核GPU平臺的HEVC編碼器并行加速可變塊尺寸運(yùn)動估計的策略,將運(yùn)動估計任務(wù)合理的分配到CPU和GPU上又采用了跨波陣面用于CPU上的線程和GPU上的線程之間的有效同步。雖然壓縮性能有所下降,但是視頻編碼效率大為提升。蕭等人也提出了CPU和GPU共同加速編碼的思想。他們首先在GPU上實現(xiàn)一個快速算法,此算法可以避免由于缺少運(yùn)動矢量預(yù)測器而導(dǎo)致的編碼效率損失。其次,在CPU上提出一種快速算法充分利用GPU結(jié)果而沒有任何編碼效率損失。
3.基于自適應(yīng)搜索范圍的快速運(yùn)動估計算法
沈燕飛等人提出了一種自適應(yīng)的快速全搜索運(yùn)動估計算法。算法是在連續(xù)消除算法和多階連續(xù)消除算法的基礎(chǔ)上實現(xiàn)的。王泉等人提出了一種使用具有方向偏向性搜索模板和基于預(yù)測模式自適應(yīng)選擇運(yùn)動估計方案的EPZS(enhanced predictive zonal search)改進(jìn)算法。其中利用了H.264編碼標(biāo)準(zhǔn)中的多參考幀、多預(yù)測模式屬性。Sangmin Kim等人也提出了自適應(yīng)搜索范圍決策加速運(yùn)動估計的思想,其中又結(jié)合了Lee等人的所采用的分層絕對差異和方法,使得在GPU中的并行運(yùn)動估計計算量減少,加快了運(yùn)動估計。
4.減少并行計算量
Lee等人提出了一種高度并行可變塊大小的全局搜索運(yùn)動估計算法,通過根據(jù)數(shù)據(jù)量和數(shù)據(jù)依賴性的同時采用并行減少的方法增加線程的利用率來加快運(yùn)動估計。Sangmin Kim等人在自適應(yīng)搜索方法的基礎(chǔ)上也采用了對GPU中的并行運(yùn)動估計計算量減少的方法,提高視頻編碼效率。
此外還有的研究者在數(shù)據(jù)的重用、整數(shù)像素搜索和分?jǐn)?shù)像素搜索、優(yōu)化內(nèi)存以及對寄存器的合理使用、和對某一搜索算法改進(jìn)等多方面做出了大量的工作。
以上各種方法的結(jié)果是沒有可比較性的。而我們主要比較的是實現(xiàn)環(huán)境,方法的簡單、復(fù)雜及優(yōu)劣,研究方法是適應(yīng)于學(xué)術(shù)的研究還是適應(yīng)生活實際中的應(yīng)用。雖然對于每一種運(yùn)動估計方法都不一樣,但每一種方法的實現(xiàn)又不是孤立存在的,每種方法里也都包含著其他方法所使用的一些技術(shù)或者某種方法。這對我們研究的啟發(fā)就是在以后的研究當(dāng)中可以在別人的研究結(jié)果基礎(chǔ)上做出進(jìn)一步的優(yōu)化。
通過對以前研究者在運(yùn)動估計的優(yōu)化研究方面所使用的方法的簡單歸類和整理,可以看出他們使用的方法不同,即使方法一樣但不同的角度去優(yōu)化得出的結(jié)果也不同。給我們的啟示就是在對運(yùn)動估計的研究中有多種方法可以使用,每種方法都有自己的特點(diǎn),要合理的選擇適合自己的某種方法進(jìn)行研究。本篇文章的目的就是為了方便自己學(xué)習(xí),同時也希望能夠幫助那些剛接觸運(yùn)動估計的研究者。最后自己給自己的建議就是要理解運(yùn)動估計搜索算法,掌握CDDA的使用。為下一步的學(xué)習(xí)做好基礎(chǔ)。
[1]沈燕飛,黃晁,李錦濤,嚴(yán)權(quán)鋒.“一種自適應(yīng)的快速全搜索運(yùn)動估計算法”.中國圖象圖形學(xué)報,V01.8(A),spec.2003.
[2]王泉,程嘉利.“一種面向H.264/AVC的運(yùn)動估計算法”中國圖象圖形學(xué)報,V01.13,No.6 2008.