當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式平臺的視頻編碼器的實現(xiàn)

引言

  H.264是由ISO(國際標準化組織)/IEC(國際電工協(xié)會)和ITU(國際電信標準化部門)合作制定的新一代視頻編碼標準,目前正處于應(yīng)用開發(fā)階段。與以往的視頻編碼標準相比,h.264具有更高的壓縮效率和更好的網(wǎng)絡(luò)適應(yīng)能力,在相同的圖像質(zhì)量下,h.264所需碼率約為MPEG.2的36%、H.263的5l%、MPEG-4的61%u-31。這些優(yōu)勢將使h.264在實時視頻通信、廣播電視、視頻存儲播放等領(lǐng)域中得到應(yīng)用M。伴隨著效率的提高,算法的復(fù)雜度也提高很多,因此需要研究h.264的壓縮算法和它的嵌入式應(yīng)用。

  1  視頻編碼器的硬件設(shè)計

  1.1 pxa255處理器的特點

  Intel Xscale PXA255蜘是基于Intel XScale微體系結(jié)構(gòu)的Intel PCA處理器,內(nèi)部采用XScale內(nèi)核構(gòu)架,頻率高達400MHz,內(nèi)核擴充許多DSP指令極大提高了多媒體處理能力,同時了提供LCD(液晶顯示器)控制器、無線局域網(wǎng)(802.1Ib)、藍牙、高速紅外、USB等多種功能模塊。PXA255處理器還使用了BranchTargetBuffer技術(shù),可以提高指令執(zhí)行(流水線)的效率。作為便攜移動設(shè)備的首選嵌入式處理器,PXA255內(nèi)核具有Intel最先進的動態(tài)電源管理技術(shù),可以根據(jù)處理器所執(zhí)行的任務(wù)情況動態(tài)調(diào)整工作頻率和多種節(jié)電模式,適合嵌入式視頻采集系統(tǒng)的應(yīng)用。

  1.2 系統(tǒng)的硬件結(jié)構(gòu)

  視頻編碼器的硬件結(jié)構(gòu)如圖1所示。從攝像頭輸出的原始視頻流通過USB接口進入PXA255芯片進行h.264壓縮,壓縮后的碼流由網(wǎng)口(ETHERNET)傳到主機進行顯示,F(xiàn)lash中燒寫了嵌入式Linux系統(tǒng)和應(yīng)用程序,SDRAM用于存儲編碼過程中的一些臨時數(shù)據(jù)。

  2  視頻采集的實現(xiàn)

  Linux操作系統(tǒng)中使用vide041inux內(nèi)核模塊來進行視頻操作的,它針對視頻設(shè)備提供了一系列的API函數(shù)。本文就是利用videAlinux提供的API函數(shù)來實現(xiàn)視頻采集功能的。視頻采集流程如圖2所示。

      具體視頻采集的實現(xiàn)介紹如下:

  先調(diào)用函數(shù)fd=open(“dcv/video",O 來打開攝像頭RDWR)設(shè)備,成功后返回攝像頭的文件描述符fd。然后通過調(diào)用vi.[!--empirenews.page--]

  dco_get capability0和video_get pictureO兩個函數(shù)來獲得攝像頭和圖像的基本信息。利用ictol(fd,VIDIOCGPICT,&grab pic.ture)函數(shù)設(shè)定圖像的亮度、對比度、色度等信息。接著調(diào)用函數(shù)ictol(fd,V1DIoCMCAPTRUE,&grab 開始抓取一幀圖像,。bur)再調(diào)用函數(shù)ictol(fd,VIDIOSYNC,&grab buf)判斷這一幀圖像抓取是否結(jié)束。這樣連續(xù)的抓取多幀圖。像就完成了原始視頻信息的采集。圖3就是抓取的一幀原始圖像。

  3  h.264編碼算法

  h.264編碼標準是目前提出的最新的視頻壓縮標準。與以前的壓縮標準相比,h.264通過對幀內(nèi)預(yù)測、幀問預(yù)測、變換編碼和熵編碼等算法的改進來進一步提高編碼效率和圖像質(zhì)量。

這些改進包括:

 

 

 

 ?。?)運動估計時,可以靈活地選擇宏塊(MB)的大小。在宏塊劃分上,h,264采用了16x6,16x8,8x16,8x8這4種模式;當劃分為8x8模式時,又可進一步采用8x4,4x8,4x4這3種子宏塊劃分模式(如圖4所示)進一步劃分,這樣做既可以使運動物體的劃分更加精確,減小運動物體邊緣的銜接誤差,又可以減小變換過程中的計算量。

[!--empirenews.page--]

 ?。?)1/4像素精度的運動估值。在h.264中通過6階FIR濾波器的內(nèi)插獲得l/2像素位置的預(yù)測值。當l/2像素值獲得后,通過取整數(shù)像素位置和l/2像素位置像素值均值的方式獲得l/4像素位置的值,這樣迸一步減小幀間預(yù)測誤差,減少了經(jīng)變換和量化后的非零比特數(shù),提高了編碼效率。

 ?。?)多參考幀運動估值。以往的編碼技術(shù)在對P幀(場)圖像進行幀間預(yù)測時,只允許以前一個I幀(場)圖像或P幀(場)圖像為參考幀。對B圖像進行預(yù)測時只允許以前后兩個I幀(場)圖像或P幀(場)圖像為參考圖像。h.264則允許在ReferenceBuffer中的多個圖像中選取一個(P預(yù)測方式)或兩個(B預(yù)測方式,圖像作為參考圖像。參考圖像甚至可以是采用雙向預(yù)測編碼方式的圖像。

 ?。?)參考圖像的選取與其編碼方式無關(guān)。允許選取與當前圖像更加匹配的圖像為參考圖像進行預(yù)測,減小了預(yù)測誤差,提高編碼效率。

  (5)更精確的幀內(nèi)預(yù)測。在h.264中,每個4*4塊中的每個像素都可用17個最接近先前已編碼的像素的不同加權(quán)和來進行幀內(nèi)預(yù)測。

 ?。?)環(huán)路去方塊濾波器。h.264/AVC把去方塊濾波引入運動估計預(yù)測環(huán)路中,既可去除方塊效應(yīng),又能保護圖像細節(jié)邊緣,同時亦改善了圖像的主、客觀評定質(zhì)量。而且經(jīng)過濾波后的圖像根據(jù)需要放在緩存中用于幀間預(yù)測,進一步提高預(yù)測精度。

  (7)h.264使用統(tǒng)一的可交長度編碼國Ⅵz)碼表。以往標準的熵編碼通常采用變長度的哈夫曼編碼,其碼表不統(tǒng)一,不能適應(yīng)變化多端的視頻內(nèi)容,從而影響編碼效率的提高。在此,即對h.263不同系數(shù)采用不同碼表進行VLC作了改進,采用了一個統(tǒng)一碼表的IrvIC,同時,又對h.26L中的VCL方法進行了改進,使量化后的DCT變換系數(shù)使用基于內(nèi)容的自適應(yīng)可變長度編碼(CAⅥC),此外還定義了一種基于上下文內(nèi)容的自適應(yīng)二進制算術(shù)編碼(CABAC),其性能比CAVLC更好。從而,借助UVLC,CAVLC及CABAC較好地提高了壓縮編碼效率。

  4  PXA255上的h.264編碼算法的實現(xiàn)

  ITU-T(國際電信標準化部門)提供了h.264的核心算法,本文使用的是開源編碼軟件x264。將其通過交叉編譯后移植到PXA255嵌入式開發(fā)平臺上。由于h.264編碼算法復(fù)雜度高、運算量大等特點導(dǎo)致h.264編碼效率不高,經(jīng)初步測試編碼速率為QCIF格式圖像10幀/秒,不能達到實時視頻編碼的要求。

  因此需要對編碼程序進行相應(yīng)的優(yōu)化。

  4.1 C語言優(yōu)化

  編碼軟件包含了解碼和傳輸部分的程序,而本文只對視頻進行編碼,并不需要解碼和傳輸。所以對代碼進行調(diào)整,刪除解碼和傳輸部分的代碼,再重新改寫makefile文件。這樣可以縮小程序的空間大小,減少程序的運行時間,提高編碼效率。

  使用盡量小的數(shù)據(jù)類型。能夠使用字符型(char)定義的變量,就不要使用整型(int)變量來定義;能夠使用整型變量定義的變量就不要用長整型(10ng in0,能不使用浮點型(float)變量就不要使用雙精度浮點型(doubles)變量。

  程序中被多次調(diào)用的、函數(shù)體代碼不是很大的函數(shù)使用內(nèi)聯(lián)函數(shù)。使用內(nèi)聯(lián)函數(shù)可以避免由于保護現(xiàn)場和記憶執(zhí)行的地址所帶來的時間和空間方面的開銷,以提高程序的執(zhí)行效率。

  4.2 Itrm匯編優(yōu)化

  用C語言編程結(jié)構(gòu)化程度高,易于編寫,但執(zhí)行速度相對較慢:與之相反,匯編程序速度快,但很難有較好的結(jié)構(gòu),而且編寫起來耗時,不易調(diào)試。C和匯編混合編程結(jié)合了各自的優(yōu)勢,往往能構(gòu)造出結(jié)構(gòu)好且執(zhí)行速度快的程序。利用匯編語言優(yōu)化C語言代碼,優(yōu)化后的匯編程序可以被C語言程序調(diào)用,并且在匯編程序中也可以調(diào)用C語言程序。[!--empirenews.page--]

  將編碼程序中的較復(fù)雜的部分程序段使用arm匯編進行改寫,這樣可以很大程度的提高代碼的運行速度。例如下面就是宏塊預(yù)測predict.c中的一段匯編優(yōu)化的代碼,C代碼如下:

  4.3 基于PXA255結(jié)構(gòu)的優(yōu)化

  結(jié)合PXA255硬件結(jié)構(gòu)特點,從以下幾個方面對h.264編碼程序進行優(yōu)化處理:

 ?。?)合理分配變量的存儲位置。根據(jù)片內(nèi)存儲器容量小而存取速度快,片外存儲器容量大但存取速度慢的特點,在分配存儲器的時候?qū)τ谀切┙?jīng)常使用的變量放在片內(nèi),如VLC表、運動矢量、反量化、反DCT的系數(shù)以及其它中間變量等,而對于那些執(zhí)行次數(shù)比較少或者比較大的變量如參考幀則放在片外。此外由于編譯和分配空間是以文件為單位的,所以把頻繁使用的函數(shù)放在同一文件中,再將這個文件放入片內(nèi)存儲器以高效地利用有限的片內(nèi)資源。

 ?。?)PXA255處理器中集成了大量的DSP多媒體操作指令,使用這些指令可以極大的提高程序的運行效率。

 ?。?)指令并行執(zhí)行是提高程序執(zhí)行效率的很好的方法,PXA255處理器中引入了Branch Target Buffer技術(shù),以實現(xiàn)指令執(zhí)行的流水線。

  5  實驗結(jié)果

  為了驗證程序優(yōu)化的效果,改變每次采集的幀數(shù)進行實驗結(jié)果分析。結(jié)果如表1所示。由表l中的實驗結(jié)果可知,經(jīng)過優(yōu)化的h.264編碼器每秒能處理20幀左右的QCIF圖像,而圖像的質(zhì)量沒有什么影響。因此,優(yōu)化后,h.264壓縮算法能夠?qū)Σ杉降膱D像進行實時壓縮,具有很好的實用性。圖5為采集的視頻經(jīng)過h.264壓縮后的視頻流。

  6  結(jié)束語

  本文描述了在嵌入式平臺PXA255上實現(xiàn)新一代視頻壓縮標準h.264編碼算法,并結(jié)合硬件芯片特點和專有匯編指令對原程序進行相應(yīng)優(yōu)化,實現(xiàn)了編碼器實時編碼的要求。研究基于嵌入式平臺的h.264視頻編碼算法有很大的實用價值,它的優(yōu)異的壓縮性能也將在嵌入式數(shù)字電視廣播以及視頻實時通信等各個方面發(fā)揮作用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉