對(duì) H.264 壓縮技術(shù)的特點(diǎn)進(jìn)行介紹,對(duì) H.264 編碼器硬件的設(shè)計(jì)進(jìn)行研究,并對(duì)圖像壓縮算法進(jìn)行優(yōu)化。研究表明,壓縮率有了較大幅度的提升,基本在 10 倍左右,PSNR 變化幅度不大,壓縮比達(dá)到 100 倍。由此說(shuō)明優(yōu)化之后圖像的壓縮效果較好,優(yōu)化前后圖像的質(zhì)量沒(méi)有明顯得下降。
隨著我國(guó)的綜合科技實(shí)力也不斷上升,無(wú)人機(jī)技術(shù)是最近幾年快速發(fā)展的技術(shù),無(wú)人機(jī)技術(shù)廣泛地應(yīng)用在電力、電影、軍事等產(chǎn)業(yè)之中,在高溫、高寒、危險(xiǎn)等環(huán)境下,采用無(wú)人機(jī)技術(shù)可以輔助人們工作。無(wú)人機(jī)的眾多應(yīng)用領(lǐng)域中,大多需要攝像頭輔助工作,因此數(shù)據(jù)傳輸在無(wú)人機(jī)系統(tǒng)中顯得十分重要。隨著軍事領(lǐng)域無(wú)人機(jī)的不斷應(yīng)用,數(shù)據(jù)傳輸距離變長(zhǎng),對(duì)于視頻數(shù)據(jù)的壓縮技術(shù)提出了更高的要求[1-5]。
2 H.264 壓縮技術(shù)的研究
2.1 基本概念
(1)視頻幀結(jié)構(gòu)。H.264 算法采用 I 或 P 幀作為前向預(yù)測(cè)幀,將每幀的圖像劃分為一片或多片宏塊,每片宏塊由采樣點(diǎn)組成,每塊宏塊可以進(jìn)一步分割成多個(gè)子塊。
(2)H.264 檔次級(jí)別。檔次是對(duì)編碼器和算法進(jìn)行整合的規(guī)定,實(shí)現(xiàn)編碼器的功能和適用范圍?;緳n次的主要適用于視頻通信領(lǐng)域,可以實(shí)現(xiàn)多樣的快速編碼,同時(shí)可以滿足隨機(jī)片順序編碼。主要檔主要應(yīng)用在數(shù)字電視、廣播等領(lǐng)域,主要檔次除了支持 I、P、B 三種類型的功能特性之外,還支持 CAVLC、CABAC 兩種功能特性。擴(kuò)展檔次主要用于網(wǎng)絡(luò)傳輸,其抗干擾能力較強(qiáng),包含基本檔次的所有功能,還可以實(shí)現(xiàn)加權(quán)預(yù)測(cè)等功能。
2.2 編碼關(guān)鍵技術(shù)
(1)幀內(nèi)預(yù)測(cè)編碼。針對(duì)亮度宏塊,此種此種編碼方法采用了像素和像素模式。通過(guò)當(dāng)前宏塊和已經(jīng)編碼的宏塊預(yù)測(cè)當(dāng)前宏塊,可以取得較好的壓縮性能。
(2)幀間預(yù)測(cè)編碼。視頻圖像序列相鄰幀圖像時(shí)間的相關(guān)性,這種相關(guān)性導(dǎo)致圖像在存儲(chǔ)時(shí)具有較高的冗余性,主要包括時(shí)間和空間兩個(gè)維度。這種預(yù)測(cè)編碼技術(shù)就是利用相似性去除試件冗余,進(jìn)行視頻壓縮。H.264 技術(shù)在相對(duì)于以前的編碼標(biāo)準(zhǔn),引入了可變塊和運(yùn)動(dòng)估計(jì)技術(shù)??勺儔K大小技術(shù),將每個(gè)宏塊分割成 7 種方式。宏塊大小對(duì)視頻圖像的壓縮性能具有較大的影響,大宏塊可以應(yīng)用在運(yùn)動(dòng)信息量較小的部分,小宏塊可以應(yīng)用在運(yùn)動(dòng)量大的部分。
3 H.264 編碼器硬件設(shè)計(jì)
3.1 整體硬件設(shè)計(jì)
(1)硬件設(shè)計(jì)目標(biāo)。無(wú)人機(jī)的圖像偵查能力是無(wú)人機(jī)的主要功能之一,無(wú)人機(jī)整體硬件設(shè)計(jì)的關(guān)鍵內(nèi)容就是數(shù)字圖像傳輸系統(tǒng)的設(shè)計(jì)。很多情況下無(wú)人機(jī)圖像運(yùn)動(dòng)系統(tǒng)的傳輸必須是實(shí)時(shí)的,因此巨大的數(shù)據(jù)量必須占用巨大的帶寬,如此大的數(shù)據(jù)導(dǎo)致圖像的傳輸和抗干擾能力出現(xiàn)一定的困難,因此針對(duì)目前無(wú)人機(jī)的需求需要高效壓縮、實(shí)時(shí)傳輸?shù)臒o(wú)線傳輸系統(tǒng)。
(2)硬件設(shè)計(jì)方案。根據(jù)無(wú)人機(jī)設(shè)計(jì)目標(biāo)的要求,無(wú)人機(jī)視頻壓縮設(shè)計(jì)方法應(yīng)該具有以下幾個(gè)特點(diǎn):首先,高壓縮比,采用數(shù)字圖像壓縮算法,實(shí)現(xiàn)數(shù)字圖像的高效壓縮;其次,實(shí)時(shí)性,通過(guò)視頻壓縮節(jié)約寬帶,進(jìn)行實(shí)時(shí)傳輸;最后,抗干擾性能強(qiáng)、輕便攜帶。
(3)系統(tǒng)整體結(jié)構(gòu)。設(shè)計(jì)需要在完成設(shè)計(jì)目標(biāo)的同時(shí),完成應(yīng)用性的要求。系統(tǒng)整體結(jié)構(gòu)分為兩個(gè)部分的內(nèi)容:首先是無(wú)人機(jī)上無(wú)線發(fā)射部分,通過(guò)圖像壓縮,實(shí)時(shí)傳回地面;另外是地面接收部分,硬件平臺(tái)采用德州儀器的雙核視頻處理模塊。
3.2 集成開發(fā)環(huán)境
采用 CCS 軟件集成開發(fā)環(huán)境,利用 CCS 函數(shù)庫(kù),基于 Windows 操作系統(tǒng)操作系統(tǒng),集成多種調(diào)試方法,完成 TMS320 系列指令的仿真和直觀數(shù)據(jù)結(jié)果分析。CCS 軟件集成開發(fā)環(huán)境,具有較強(qiáng)的擴(kuò)展性。
CCS 軟件集成環(huán)境主要包含程序規(guī)劃和設(shè)計(jì)、代碼編寫生成、代碼調(diào)試跟蹤和分析。CCS 軟件開發(fā)平臺(tái)集成了編譯器、匯編器、鏈接器等工具實(shí)現(xiàn) DSP 源代碼的生成。
(1)C/C++ 編譯器。主要功能是實(shí)現(xiàn)C/C++ 源程序到匯編語(yǔ)言的編譯和轉(zhuǎn)換,該編譯器由三部分組成,外殼程序、優(yōu)化程序和內(nèi)部工具,外殼程序主要完成語(yǔ)言的匯編等內(nèi)容,優(yōu)化程序?qū)ν鈿こ绦蚓幾g的語(yǔ)言進(jìn)行優(yōu)化,提高代碼的執(zhí)行速度和執(zhí)行效率。內(nèi)部工具實(shí)現(xiàn) C/C++ 代碼轉(zhuǎn)換成 DSP 匯編代碼。
(2)匯編器。匯編器的主要作用是將匯編語(yǔ)言轉(zhuǎn)換成機(jī)器目標(biāo)文件,主要內(nèi)容有偽指令、指令等,主要用來(lái)控制匯編語(yǔ)言的內(nèi)容、數(shù)據(jù)格式等。
(3)鏈接器。鏈接器的主要內(nèi)容為,將 COFF 格式文件生成可執(zhí)行代碼的過(guò)程,輸入可以重定位的目標(biāo)文件和目標(biāo)庫(kù)。
(4)軟件流水。通過(guò)匯編器的軟件流水技術(shù)可以很好地運(yùn)行循環(huán)指令,優(yōu)化循環(huán)指令并行運(yùn)行,提高軟件的運(yùn)行速度,采用軟件流水技術(shù)可以優(yōu)化循環(huán)代碼。用戶在對(duì)編譯器進(jìn)行賦予信息時(shí),要明確編譯器的循環(huán)次數(shù)、冗余循環(huán)等信息,提高軟件流水的效率,提高代碼的運(yùn)行速度。
4 編碼器的移植和優(yōu)化
4.1 運(yùn)動(dòng)估計(jì)算法的優(yōu)化
(1)匹配準(zhǔn)則。運(yùn)動(dòng)估計(jì)搜索算法采用率失真最優(yōu)化準(zhǔn)則,優(yōu)化和 SAD 公式如式(1)所示。
(2)搜索算法。目前常用的搜索算法為鉆石搜索算法、六邊形搜索算法。① 鉆石搜算算法以半徑為 1 的小菱形內(nèi)進(jìn)行搜索,通過(guò)計(jì)算匹配誤差,得到 MBD 點(diǎn)。之后進(jìn)行比較,如果 MBD 點(diǎn)在另行區(qū)域內(nèi),則搜索到的 MBD 點(diǎn)就是最優(yōu)點(diǎn),若不是,則以 MBD 為中心再次進(jìn)行搜索。② 六邊形搜索算法分為三部分。首先以搜索起點(diǎn)為中心點(diǎn)以六邊形模板為基礎(chǔ)進(jìn)行搜索,對(duì)比中心點(diǎn)與周圍六個(gè)點(diǎn)的匹配誤差,隨后對(duì)比杜比 MBD 與中心點(diǎn)的匹配誤差;第二步采用上一步 MBD 點(diǎn),按照六邊形模板進(jìn)行搜索,計(jì)算 MBD 點(diǎn)的匹配誤差,如果 MBD 點(diǎn)與中心點(diǎn)無(wú)誤差下一步計(jì)算,若不重合重復(fù)第二步計(jì)算;最后采用小正方形模板進(jìn)行搜索,MBD 點(diǎn)就是最優(yōu)點(diǎn)。
(3)搜索算法優(yōu)化。以上搜索算法在搜索過(guò)程中會(huì)發(fā)生搜索點(diǎn)的重復(fù),導(dǎo)致效率降低。采用無(wú)重復(fù)的搜索算法,可以解決重復(fù)搜索的問(wèn)題。采用 SAD 代碼,在程序中增添 判斷模塊即可,若滿足終止條件自行終止。
4.2 結(jié)果分析
(1)進(jìn)一步優(yōu)化。在搜索算法優(yōu)化的基礎(chǔ)上,進(jìn)行內(nèi)聯(lián)函數(shù)優(yōu)化和循環(huán)優(yōu)化處理,使用內(nèi)聯(lián)函數(shù) _mem4()、_subabs() 等進(jìn)行優(yōu)化,極大地提高了計(jì)算效率;采用偽指令 #pragma MUST_ITERATE(min, max, multiple) 可以較為明確地對(duì)最小循環(huán)次數(shù)進(jìn)行運(yùn)算。
(2)結(jié)果分析。分析優(yōu)化前后的數(shù)據(jù),可以看出,優(yōu)化之后幀率有了較大幅度的提升,基本在 10 倍左右,PSNR 變化幅度不大,壓縮比達(dá)到 100 倍,由此說(shuō)明優(yōu)化之后圖像的壓縮效果較好,優(yōu)化前后圖像質(zhì)量差距不大。
5 結(jié)語(yǔ)
本文對(duì) H.264 壓縮技術(shù)的特點(diǎn)進(jìn)行介紹,對(duì) H.264 編碼器硬件的設(shè)計(jì)進(jìn)行研究,并對(duì)圖像壓縮算法進(jìn)行優(yōu)化。采用 SAD 代碼,在程序中增添 if(isum ≥ bcost) 判斷模塊;在搜索算法優(yōu)化的基礎(chǔ)上,進(jìn)行內(nèi)聯(lián)函數(shù)優(yōu)化和循環(huán)優(yōu)化處理;優(yōu)化之后幀率有了較大幅度的提升,基本在 10 倍左右,PSNR 變化幅度不大,壓縮比達(dá)到 100 倍,由此說(shuō)明有話之后圖像的壓縮效果較好,優(yōu)化前后圖像的質(zhì)量沒(méi)有明顯得下降。
-
算法
+關(guān)注
關(guān)注
23文章
4607瀏覽量
92829 -
壓縮
+關(guān)注
關(guān)注
2文章
102瀏覽量
19373 -
無(wú)人機(jī)
+關(guān)注
關(guān)注
229文章
10420瀏覽量
180120
原文標(biāo)題:基于壓縮算法的無(wú)人機(jī)視頻壓縮的研究
文章出處:【微信號(hào):appic-cn,微信公眾號(hào):集成電路應(yīng)用雜志】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論