亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-11-10 02:15:59蔡成都張正炳長江大學(xué)電子信息學(xué)院湖北荊州434023
        關(guān)鍵詞:編解碼解碼器解碼

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

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

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

        基于ARM9嵌入式開發(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]) 開發(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ù)測、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)過H.264壓縮的視頻數(shù)據(jù),在通過網(wǎng)絡(luò)傳輸?shù)倪^程中需要的帶寬更低,傳輸起來十分便利。然而,這些優(yōu)點(diǎn)是以成倍增加編解碼計(jì)算復(fù)雜度為代價(jià)的,其編碼的計(jì)算復(fù)雜度大約相當(dāng)于H.263的3倍以上, 解碼復(fù)雜度大約相當(dāng)于H.263的2~3倍[4]。

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

        1 軟硬件開發(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)境,然后通過交叉編譯分別將引導(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開發(fā)板上的話則添加——host=arm-linux選項(xiàng)

        #make

        #make install

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

        在進(jìn)行ffmpeg和ffplay的編譯移植之前需進(jìn)行SDL庫的移植,編譯之前鍵入./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)庫和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不被支持,這樣便無法生成所需要的ffplay,查看configure后發(fā)現(xiàn)在檢測SDL(SDL check)時(shí)未定義SDL目錄,筆者定義的SDL的目錄為/opt/FriendlyArm/SDL/bin,所以將未定義目錄的地方改為:SDL_CONFIG=“/opt/FriendlyArm/SDL/bin/sdl-config”即可編譯通過并同時(shí)產(chǎn)生可以在目標(biāo)平臺(tái)上運(yùn)行的ffmpeg和ffplay這2個(gè)所需的文件。將整個(gè)編譯過程中生成的庫文件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)算將其改寫為a+d+(3b-c)?2+5[(e-f)?2],則變成了5個(gè)加法,2個(gè)乘法和2個(gè)移位運(yùn)算,這樣就大大的降低了運(yùn)算量。

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

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

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

        4 測試分析

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

        表1 測試結(jié)果

        注:qp值表示量化步長,共有52個(gè)值,當(dāng)qp取最大值51時(shí),表示最粗糙的量化;當(dāng)qp取0時(shí),表示最精細(xì)的量化,筆者統(tǒng)一選取qp=26;選取的測試序列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é) 語

        基于ARM9架構(gòu)的處理器,對(duì)H.264軟解碼算法做了一定優(yōu)化,對(duì)qcif格式的視頻序列基本達(dá)到實(shí)時(shí)解碼,但對(duì)于格式較大的cif序列效果不太顯著,后期希望能通過對(duì)算法其他方面的優(yōu)化以及采用支持多媒體擴(kuò)展MMX指令的處理器來實(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)開發(fā)原理與實(shí)踐[M].北京:清華大學(xué)出版社,2005.

        [6]沈騫,婁淑琴,宿金華.基于VW2010芯片的網(wǎng)絡(luò)視頻壓縮編解碼器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,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)主要從事視頻通信方面的研究工作。

        猜你喜歡
        編解碼解碼器解碼
        《解碼萬噸站》
        科學(xué)解碼器(一)
        科學(xué)解碼器(二)
        科學(xué)解碼器(三)
        1553B總線控制器編解碼設(shè)計(jì)
        線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        大型民機(jī)試飛遙測視頻編解碼方法研究
        NAD C368解碼/放大器一體機(jī)
        Quad(國都)Vena解碼/放大器一體機(jī)
        亚洲精品精品日本日本| 亚洲中文字幕无码久久| 国产成人亚洲精品91专区手机| 99久久国语露脸国产精品| 久久99精品综合国产女同| 国产精品h片在线播放| 色爱区综合五月激情| 亚洲欧美日韩国产综合专区| 亚洲精品中文字幕91| 亚洲精品无码专区| 国产一区二区三区av在线无码观看| 亚洲综合网站精品一区二区| 日韩av中文字幕波多野九色| 亚洲人精品午夜射精日韩| 五月天激情婷婷婷久久| 亚洲电影一区二区| 99精品人妻少妇一区二区三区| 少妇被爽到高潮喷水久久欧美精品| 久久无码av三级| 亚洲人成网站18男男| 中文字幕34一区二区| 国产精品v片在线观看不卡| 国产午夜视频在永久在线观看| 亚洲免费视频一区二区三区| 老熟女老女人国产老太| 男女爽爽无遮挡午夜视频| 久久久久久国产精品免费网站 | 亚洲一区二区av天堂| 女人高潮内射99精品| 亚洲日本va中文字幕久久| 国产精品国产三级国av在线观看 | 欲香欲色天天综合和网| 亚洲另类自拍丝袜第五页| 一区二区三区四区亚洲综合| 少妇一区二区三区久久| 国产精品亚洲一区二区三区在线| 久久久国产精品免费无卡顿| 黄色潮片三级三级三级免费| 国产三级av在线播放| 在线免费毛片| 一区二区三区四区免费国产视频|