999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM9的H.264編解碼器實(shí)現(xiàn)

2012-11-10 02:15:59蔡成都張正炳長(zhǎng)江大學(xué)電子信息學(xué)院湖北荊州434023
關(guān)鍵詞:嵌入式優(yōu)化

蔡成都,張正炳 (長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)

基于ARM9的H.264編解碼器實(shí)現(xiàn)

蔡成都,張正炳 (長(zhǎng)江大學(xué)電子信息學(xué)院,湖北 荊州 434023)

基于ARM9嵌入式開(kāi)發(fā)平臺(tái)和嵌入式Linux操作系統(tǒng),實(shí)現(xiàn)了基于H.264標(biāo)準(zhǔn)的編解碼器x264以及ffmpeg的移植,并提出優(yōu)化方案。結(jié)果表明,該編解碼器能滿足qcif格式文件實(shí)時(shí)解碼的要求。

H.264;ARM9;嵌入式系統(tǒng);編解碼

H.264/AVC 是由ITU-T 和ISO/IEC 聯(lián)合視頻小組(JVT[1]) 開(kāi)發(fā)的新一代視頻壓縮標(biāo)準(zhǔn), 該標(biāo)準(zhǔn)引進(jìn)了許多新技術(shù), 包括可變塊大小運(yùn)動(dòng)補(bǔ)償、1/4 像素運(yùn)動(dòng)估計(jì)、幀內(nèi)預(yù)測(cè)、4×4整數(shù)變換和去塊效應(yīng)濾波等[2]。與之前的H.263以及MPEG-4等標(biāo)準(zhǔn)相比,在同等圖像質(zhì)量上,H.264平均碼流低40%左右,壓縮比更高[3];同樣的,在同等壓縮比的基礎(chǔ)上,H.264重建圖像更加精細(xì),質(zhì)量更好。H.264具有壓縮率高,碼流低的特點(diǎn),使得經(jīng)過(guò)H.264壓縮的視頻數(shù)據(jù),在通過(guò)網(wǎng)絡(luò)傳輸?shù)倪^(guò)程中需要的帶寬更低,傳輸起來(lái)十分便利。然而,這些優(yōu)點(diǎn)是以成倍增加編解碼計(jì)算復(fù)雜度為代價(jià)的,其編碼的計(jì)算復(fù)雜度大約相當(dāng)于H.263的3倍以上, 解碼復(fù)雜度大約相當(dāng)于H.263的2~3倍[4]。

雖然H.264帶來(lái)了編解碼效率和質(zhì)量的提升,但是其較高的編解碼復(fù)雜度使得在實(shí)際應(yīng)用時(shí)必須進(jìn)行優(yōu)化,否則很難實(shí)現(xiàn)實(shí)時(shí)編解碼和傳輸。隨著嵌入式技術(shù)以及視頻壓縮編碼技術(shù)的發(fā)展,基于嵌入式系統(tǒng)的視頻編解碼軟件的開(kāi)發(fā)使得人們能在嵌入式系統(tǒng)上實(shí)現(xiàn)軟解碼并達(dá)到比較理想的效果。下面,筆者基于ARM9處理器,對(duì)H.264解碼器在嵌入式平臺(tái)上的應(yīng)用提出優(yōu)化方案。

1 軟硬件開(kāi)發(fā)平臺(tái)

采用友善之臂的mini2440作為硬件平臺(tái),處理器主頻為400MHZ,并且擁有64M片上SDRAM(Synchronous DRAM,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器),足夠運(yùn)行一般軟件的內(nèi)存需要,256M的NAND FLASH可用于存儲(chǔ)文件。以功能強(qiáng)大、免費(fèi)并且可靠性高的LINUX系統(tǒng)作為嵌入式操作系統(tǒng)。

首先在PC機(jī)上建立交叉編譯環(huán)境,然后通過(guò)交叉編譯分別將引導(dǎo)程序和嵌入式系統(tǒng)移植到目標(biāo)板。構(gòu)建嵌入式系統(tǒng)主要包含2方面:①針對(duì)目標(biāo)板的硬件狀況對(duì)操作系統(tǒng)內(nèi)核進(jìn)行裁剪和配置;②構(gòu)建根文件系統(tǒng)[5]。

2 H.264編解碼器的移植

筆者采用的軟件包為ffmpeg_x264_src_20071007.rar,解壓之后包含一個(gè)ffmpeg的文件夾和一個(gè)x264的文件夾。其中,x264作為編碼器輸出H.264碼流,ffmpeg則作為解碼器進(jìn)行解碼播放。

在編譯X264之前首先要編譯yasm以支持MMX或者SSE優(yōu)化,使得編碼性能得到提升。筆者采用的是yasm1.1.0版本,解壓軟件包后進(jìn)行配置:

#./configure——prefix=usr/local/bin/yasm

#make

#make install

完成yasm編譯之后即可編譯x264:

#cd x264

#./configure——prefix=/static //如果要移植到arm開(kāi)發(fā)板上的話則添加——host=arm-linux選項(xiàng)

#make

#make install

完成之后即可在x264的目錄下生成x264文件以及一些必須的庫(kù)文件。

在進(jìn)行ffmpeg和ffplay的編譯移植之前需進(jìn)行SDL庫(kù)的移植,編譯之前鍵入./configure-help查看幫助,選好需要設(shè)置的參數(shù)即可進(jìn)行編譯。鍵入以下命令進(jìn)行編譯:

#./configure——prefix=/FriendlyArm/SDL——disable-video-qtopia——disable-video-dummy——disable-video-fbcon——disable-video-dga——disable-arts——disable-esd——disable-alsa——disable-cdrom——disable-video-x11——disable-nasm——target=arm-linux——host=arm-linux——enable-video-fbcon

#make

#make install

編譯完成之后會(huì)在選定目錄下生成所需的動(dòng)態(tài)庫(kù)和include頭文件。在交叉編譯ffmpeg時(shí)必須將x264的相關(guān)選項(xiàng)——enable-libx264加上,另外要添加額外的include/link路徑:

——extra-cflags=-I/usr/local/include

——extra-ldflags=-L/usr/local/lib

——extra-libs=-L/usr/local/lib

直接configure后會(huì)發(fā)現(xiàn)SDL不被支持,這樣便無(wú)法生成所需要的ffplay,查看configure后發(fā)現(xiàn)在檢測(cè)SDL(SDL check)時(shí)未定義SDL目錄,筆者定義的SDL的目錄為/opt/FriendlyArm/SDL/bin,所以將未定義目錄的地方改為:SDL_CONFIG=“/opt/FriendlyArm/SDL/bin/sdl-config”即可編譯通過(guò)并同時(shí)產(chǎn)生可以在目標(biāo)平臺(tái)上運(yùn)行的ffmpeg和ffplay這2個(gè)所需的文件。將整個(gè)編譯過(guò)程中生成的庫(kù)文件libSDL-1.2.so.0、libx264.so.56以及ffmpeg和ffplay移植到目標(biāo)板對(duì)應(yīng)目錄下即可。

3 解碼器優(yōu)化方案

1)算法優(yōu)化 H.264標(biāo)準(zhǔn)雖然在性能上有很大的提升,但是算法卻極為復(fù)雜。所以,針對(duì)ARM處理器,對(duì)于CPU占用較大的乘除運(yùn)算改用移位運(yùn)算。如a+12b-4c+d+20e-20f,其中包含5個(gè)加法和4個(gè)乘法。利用移位運(yùn)算將其改寫(xiě)為a+d+(3b-c)?2+5[(e-f)?2],則變成了5個(gè)加法,2個(gè)乘法和2個(gè)移位運(yùn)算,這樣就大大的降低了運(yùn)算量。

另外,將CAVLC碼表轉(zhuǎn)化為二叉樹(shù)碼表的形式;對(duì)調(diào)用頻率高但代碼量小的函數(shù)使用關(guān)鍵字_inline等方法都可以起到優(yōu)化代碼的作用[6]。

2)基于ARM指令集的優(yōu)化 在ARM處理器上條件分支語(yǔ)句需要3個(gè)時(shí)鐘周期,而普通操作只需要1個(gè)時(shí)鐘周期,所以,可通過(guò)將循環(huán)語(yǔ)句展開(kāi),降低開(kāi)銷(xiāo),從而達(dá)到提高效率的目的。

此外,將一些變換函數(shù)(如DCT變換和IDCT變換)采用更加適合ARM處理器的匯編代碼改寫(xiě),同時(shí)在編譯器優(yōu)化選項(xiàng)上使用O3選項(xiàng),可以降低程序的時(shí)間復(fù)雜度。同時(shí)在編解碼的時(shí)候可加入一些優(yōu)化參數(shù),也可以得到更理想的效果。

4 測(cè)試分析

試驗(yàn)所用的處理器為S3C2440,主頻400MHz,操作系統(tǒng)為linux系統(tǒng)2.6版本內(nèi)核,交叉編譯器版本為4.3.2的版本。使用移植好的x264和ffmpeg以及ffplay對(duì)標(biāo)準(zhǔn)序列做測(cè)試,測(cè)試結(jié)果如表1所示。

表1 測(cè)試結(jié)果

注:qp值表示量化步長(zhǎng),共有52個(gè)值,當(dāng)qp取最大值51時(shí),表示最粗糙的量化;當(dāng)qp取0時(shí),表示最精細(xì)的量化,筆者統(tǒng)一選取qp=26;選取的測(cè)試序列akiyo_qcif、coastguard_qcif以及coastguard_cif出自http://trace.eas.asu.edu/yuv/;PSNR一欄中所示的分別是亮度信號(hào)(Y分量,即灰度值)、色度信號(hào)(U、V分量,描述影像色彩及飽和度)、均值(Avg)以及全局(Global)峰值信噪比。

圖1 視頻序列播放效果

從表1可以看出筆者采用的S3C2440處理器在編碼時(shí)速度比較慢,特別是對(duì)于格式更大的cif序列,編碼速度比同樣內(nèi)容的qcif格式的序列慢4倍。但是在解碼的時(shí)候qcif序列能達(dá)到15fps左右的幀率,基本達(dá)到了實(shí)時(shí)解碼。目標(biāo)板上播放標(biāo)準(zhǔn)qcif序列akiyo_qcif.yuv效果如圖1所示,基本可以滿足安防監(jiān)控的需求。若采用更好的處理器或者更優(yōu)化的算法,可以達(dá)到更好的幀率,滿足更高的需求。

5 結(jié) 語(yǔ)

基于ARM9架構(gòu)的處理器,對(duì)H.264軟解碼算法做了一定優(yōu)化,對(duì)qcif格式的視頻序列基本達(dá)到實(shí)時(shí)解碼,但對(duì)于格式較大的cif序列效果不太顯著,后期希望能通過(guò)對(duì)算法其他方面的優(yōu)化以及采用支持多媒體擴(kuò)展MMX指令的處理器來(lái)實(shí)現(xiàn)更大格式序列的實(shí)時(shí)解碼。

[1]郭存鎖.基于H.264 的數(shù)字視頻解碼器設(shè)計(jì)[D].北京:北方工業(yè)大學(xué),2011.

[2]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)——H.264/AVC[M].北京:人民郵電出版社,2005.

[3]張春田,蘇育挺,張靜.數(shù)字圖像壓縮編碼[M].北京:清華大學(xué)出版社,2006.

[4]Tsai C Y,Chen T C,Chen L G.Low power entropy coding hardware design for H.264/AVC baseline profile encoder[A].IEEE International Conference on Multimedia and Expo[C].2006:1941-1944.

[5]陳文智.嵌入式系統(tǒng)開(kāi)發(fā)原理與實(shí)踐[M].北京:清華大學(xué)出版社,2005.

[6]沈騫,婁淑琴,宿金華.基于VW2010芯片的網(wǎng)絡(luò)視頻壓縮編解碼器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(12):1814-1816.

[7]沙亮,王貴錦,趙安邦,等.H.264編碼下基于DCT系數(shù)量化值的PSNR估計(jì)方法[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2008, 48(4):510-513.

[編輯] 洪云飛

10.3969/j.issn.1673-1409(N).2012.04.042

TN919.8

A

1673-1409(2012)04-N121-03

2012-02-13

蔡成都(1987-),男, 2009年大學(xué)畢業(yè),碩士生,現(xiàn)主要從事視頻通信方面的研究工作。

猜你喜歡
嵌入式優(yōu)化
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
基于低碳物流的公路運(yùn)輸優(yōu)化
主站蜘蛛池模板: 午夜成人在线视频| 亚洲一区色| 特黄日韩免费一区二区三区| 欧美日韩激情在线| 71pao成人国产永久免费视频| 国产91在线免费视频| 亚洲国产综合精品一区| 日韩av无码精品专区| 国产免费观看av大片的网站| 99精品国产自在现线观看| 毛片久久久| 高清久久精品亚洲日韩Av| 久久久久国色AV免费观看性色| 午夜天堂视频| 性色一区| 久久精品国产精品一区二区| 午夜国产理论| 三级毛片在线播放| 澳门av无码| 色哟哟国产成人精品| 欧美亚洲欧美| 麻豆国产在线观看一区二区| 日韩资源站| 夜夜操天天摸| 国产欧美日韩视频怡春院| 在线色国产| 久久国产精品娇妻素人| 国产一区二区三区免费观看| 91九色最新地址| 亚洲开心婷婷中文字幕| 91在线高清视频| 国产在线视频二区| 免费在线国产一区二区三区精品 | 国产精品99在线观看| 亚洲天堂视频在线观看免费| 久久婷婷国产综合尤物精品| 国产99视频在线| 久久国产黑丝袜视频| 99ri国产在线| 亚洲无码高清视频在线观看| 全部免费毛片免费播放| 91小视频在线| 91青草视频| 日韩精品亚洲一区中文字幕| 国产成人精品一区二区秒拍1o| 中文字幕首页系列人妻| 欧洲欧美人成免费全部视频| 亚洲国产精品一区二区高清无码久久| 精品丝袜美腿国产一区| 成人亚洲视频| 2021精品国产自在现线看| 91免费在线看| 国产人前露出系列视频| 四虎国产成人免费观看| 国国产a国产片免费麻豆| 国产欧美自拍视频| 国产成人精品视频一区二区电影 | 国产亚洲高清视频| 久久人搡人人玩人妻精品一| 欧美另类第一页| 国产97公开成人免费视频| 成人国产小视频| 婷婷午夜天| www.91在线播放| 激情无码字幕综合| 日韩欧美高清视频| 久久96热在精品国产高清| 少妇极品熟妇人妻专区视频| 国产成人高清亚洲一区久久| 亚洲乱码精品久久久久..| 天天躁夜夜躁狠狠躁躁88| 欧美五月婷婷| 五月天久久综合国产一区二区| 夜色爽爽影院18禁妓女影院| 亚洲精品免费网站| 2048国产精品原创综合在线| 伊人久久大香线蕉影院| 精品国产网| 亚洲一级毛片免费观看| 人妻中文字幕无码久久一区| 人妻一本久道久久综合久久鬼色| 久久久黄色片|