當前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]針對H.264編碼運算量大的特點,采用快速模式選擇、快速運動搜索、匯編優(yōu)化等方法,在保證圖像質(zhì)量的前提下,在Blackfin533上實現(xiàn)了H.264的CIF圖像的準實時編碼。實驗表明對于高、中、低各種運動復(fù)雜度的圖像,均實現(xiàn)了較高的壓縮比。

         隨著計算機網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展,數(shù)字視頻的應(yīng)用越來越廣泛,如DVD、網(wǎng)絡(luò)會議服務(wù)、數(shù)字電視等。在這些視頻處理與通信中,有效的視頻編碼是其關(guān)鍵技術(shù)。

  H.264/AVC是ITU-T視頻編碼專家組和ISO/IEC運動圖像專家組聯(lián)合提出的最新一代的視頻編碼標準。H.264具有許多優(yōu)良的性能[1]:壓縮比更高,與現(xiàn)有編碼標準(H.263、MPEG-4 Simple Profile)相比,在相同視頻質(zhì)量下,能節(jié)省大約50%的碼流,圖像質(zhì)量更好,適應(yīng)性更廣,能較好地滿足實時(視頻會議)及非實時(存儲、廣播等)等各種應(yīng)用。在DSP上實現(xiàn)H.264的實時編碼具有較大的工程意義及經(jīng)濟價值。

       1 H.264標準簡介及DSP平臺

       1.1 H.264標準簡介


  H.264是ITU-T和ISO/IEC聯(lián)合制定的最新的視頻編碼標準,于1997年由ITU-T提出,2003年3月形成最終標準草案。它包含了視頻壓縮領(lǐng)域的許多最新研究成果,主要采用了下面的技術(shù)[1]:

  (1) 將編碼分為編碼層VCL(Video Coding Layer)和傳輸層NAL(Network Abstraction Layer)。將編碼層和傳輸層分離,有利于H.264的擴展。

  (2) H.264采用了空域內(nèi)的幀內(nèi)預(yù)測,共兩種預(yù)測模式:intra16×16和intra4×4。其中intra16×16有四種預(yù)測方式,intra4×4有九種預(yù)測方式。

  (3) 對于幀間預(yù)測,增加預(yù)測模式,共七種預(yù)測模式。預(yù)測塊從16×16可以最小細分為4×4。

  (4) 增加了參考幀的數(shù)目,使預(yù)測更為準確。

  (5) 將去塊效應(yīng)濾波放在編碼環(huán)內(nèi),提高圖像的主觀質(zhì)量。

  (6) B幀可以作為參考幀,同時將圖像的解碼順序與顯示順序分離。

  (7) 采用整系數(shù)變換,提高變換速度。

  (8) 采用CAVLC、CABAC等新的熵編碼方法以提高編碼效果。

  (9) 提高了碼流的抗誤碼能力,如對編碼數(shù)據(jù)進行分割,一幀圖像可以靈活地分為幾個slice等。

       1.2 基于Blackfin533的DSP平臺

  Blackfin533是ADI公司Blackfin系列中的一款高性能視頻處理芯片。其主頻最高能達600MHz,每秒可處理1200M次乘加運算。具有大量針對視頻的專用指令,可以并行處理多條指令。

  從總體上看,Blackfin533分為內(nèi)核和系統(tǒng)接口兩大部分。內(nèi)核指處理器、L1存儲器、事件控制器、內(nèi)核定時器等;系統(tǒng)接口指SPORT接口、PPI接口、SPI接口、外部存儲控制器、DMA控制器及與它們接口的外部資源等。

  Blackfin533開發(fā)平臺原理圖如圖1所示。攝像頭輸出的模擬視頻信號經(jīng)7113視頻芯片轉(zhuǎn)化為數(shù)字信號,此信號從Blackfin533的PPI接口進入Blackfin533,壓縮后的碼流由PCI橋傳給PC機。此系統(tǒng)通過Flash啟動,編碼過程中的原始圖像、參考幀及其他變量存儲在SDRAM中。

  圖2為H.264編碼系統(tǒng)的視頻輸入模塊。7113芯片從視頻端子讀入攝像頭輸出的模擬信號,通過并口將數(shù)字信號輸出給Blackfin533。Blackfin533通過I2C總線對7113進行配置,使其輸出YUV模式、ITU656模式及增強ITU656模式等。

      
                                        圖1 Blackfin533平臺總體框架圖

 


                                                           圖2 視頻輸入模塊

 


             
                                         圖3 H.264編碼模塊圖

       2 H.264編碼器的優(yōu)化

       2.1 總體優(yōu)化

   總體優(yōu)化主要包括兩部分內(nèi)容:程序模塊化的設(shè)計及數(shù)據(jù)結(jié)構(gòu)的設(shè)計。

  程序模塊化設(shè)計時,既要考慮模塊的獨立性,又要考慮模塊的完整性。筆者的H.264的模塊關(guān)系圖如圖3所示。視頻輸入模塊負責圖像序列的讀取,從PPI口進入的圖像首先保存到外部存儲器,再進行編碼。讀入的圖像經(jīng)幀間模式選擇和幀內(nèi)模式選擇模塊,得到每個宏塊的預(yù)測模式。整系數(shù)變換、量化模塊對預(yù)測后的殘差進行整系數(shù)變換及量化處理。量化后的系數(shù)經(jīng)過掃描后,在編碼模塊中進行UVLC編碼。最后由寫碼流模塊輸出。其中,去塊效應(yīng)濾波模塊對反量化、整系數(shù)逆變換后的重建圖像進行濾波;圖像緩存管理模塊負責管理對參考圖像的存取。從圖3中可以看出,整系數(shù)變換與量化結(jié)合在一起作為一個模塊。主要因為:一方面H.264中,量化和整系數(shù)變換本身就部分結(jié)合在一起;另一方面這樣可以在寄存器中一起完成變換、量化,有助于減少數(shù)據(jù)的存儲次數(shù)和讀取時間。對于反量化、整系數(shù)逆變換,采用相似的設(shè)計思路。 [!--empirenews.page--]

  數(shù)據(jù)結(jié)構(gòu)的設(shè)計是H.264編碼的重要組成部分。合理的數(shù)據(jù)結(jié)構(gòu)既有利于提高數(shù)據(jù)訪問的速度又有利于程序的不同平臺的移植。主要有以下原則:盡可能連續(xù)存放數(shù)據(jù),這樣有利于用DMA方式對數(shù)據(jù)進行讀取;每種數(shù)據(jù)結(jié)構(gòu)完成相對簡單的功能,這樣便于對不同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)進行管理。如表示幀間模式的InterMode、幀內(nèi)模式的IntraMode需要放在片內(nèi)存儲器中以加快讀取速度,而參考幀的數(shù)據(jù)ImgData由于數(shù)據(jù)太大則需要放在片外存儲器中;盡可能使用短的數(shù)據(jù)類型,節(jié)省DSP的存儲空間。

       2.2 各程序模塊的優(yōu)化

  各程序模塊的優(yōu)化主要指各模塊的C代碼優(yōu)化及部分代碼的匯編優(yōu)化。

  C代碼的優(yōu)化對H.264編碼器有著重要意義,它既有利于提高編碼的速度,又有利于編碼器的跨平臺移植。C代碼優(yōu)化有下面的原則:

  (1) 使編碼器代碼線性化,這樣有利于DSP的流水線滿負荷運行,更充分地發(fā)揮DSP的數(shù)據(jù)處理能力。

  (2) 取消循環(huán)中的數(shù)據(jù)依賴。數(shù)據(jù)依賴是指后面指令的輸入數(shù)據(jù)依賴于前面指令的輸出數(shù)據(jù)。許多DSP芯片都提供了硬件循環(huán)指令,Blackfin533有兩個硬件循環(huán)器,可提供兩層的硬件循環(huán)。硬件循環(huán)實現(xiàn)了零開銷的循環(huán)判斷,能大大提高循環(huán)指令的執(zhí)行速度,然而數(shù)據(jù)依賴的存在會阻止硬件循環(huán)的使用。所以要盡可能消除循環(huán)中的數(shù)據(jù)依賴。

  (3) 將除法轉(zhuǎn)化為乘法或查表方式。Blackfin533提供了硬件乘法器,但沒有硬件除法器。執(zhí)行除法指令會花費幾十或上百個指令周期。將除法轉(zhuǎn)化為乘法或查表,能大大減少這種開銷。

  (4) 減少對片外存儲器的訪問次數(shù)。片外存儲器相對于片內(nèi)存儲器是低速設(shè)備,片外存儲器的讀取時間是片內(nèi)存儲器的幾倍至十幾倍。對于片外存儲器的數(shù)據(jù)要做到一次讀取,完成多次計算。

  Blackfin芯片的開發(fā)環(huán)境VisualDSP本身已經(jīng)帶有匯編器,但由于種種原因,對于某些運算量大、調(diào)用頻繁的函數(shù)仍需要進行手動匯編優(yōu)化。進行匯編優(yōu)化時,應(yīng)注意以下幾點:

  (1) 節(jié)省寄存器資源。Blackfin533提供了8個32位數(shù)據(jù)寄存器以及一系列的地址寄存器。對于這些寄存器,應(yīng)盡可能做到一個寄存器多次使用;同時在能用較短的數(shù)據(jù)類型的情況下用短的數(shù)據(jù)類型,如能用short則不用int,這樣每個32位寄存器可以作為兩個16位寄存器使用,相當于增加了寄存器的數(shù)量。

  (2) 使用專用指令。Blackfin533提供了求最大值、最小值、絕對值、CLIP及大量視頻專用指令,通過使用這些指令,能大大提高代碼的執(zhí)行速度。

 (3) 使用并行指令。對于大多數(shù)指令都存在相對應(yīng)的并行指令,如一條運算指令可以并行兩條數(shù)據(jù)讀取指令。并行指令的使用能成倍提高代碼的執(zhí)行速度。

  (4) 將內(nèi)層循環(huán)展開等。

  對于不同的圖像幀(I、P),各模塊所占的比例各不相同。對于I幀,幀內(nèi)模式選擇和去塊效應(yīng)濾波占較大的比例;對于P幀,幀間模式選擇則占較大的比例??傊?模式選擇及去塊效應(yīng)濾波是H.264編碼的瓶頸,需要對這兩部分進行優(yōu)化。

  進行模式選擇時會調(diào)用絕對差值求和函數(shù)(SAD)及hadamard變換后再絕對值求和函數(shù)(SATD)。這兩個函數(shù)雖然較簡單,但調(diào)用較頻繁,對這兩個函數(shù)進行匯編優(yōu)化,能較大提高模式選擇的速度。對于絕對差值求和函數(shù)(SAD),通過使用Blackfin的專用視頻指令SAA,可以大大提高運算速度,具體見匯編優(yōu)化統(tǒng)計表1和表2。 
              
                                              
              
  
                

  去塊效應(yīng)濾波在編碼中占有較大的比重。主要包括:計算濾波強度和行列濾波兩部分,需要針對這兩個子模塊進行優(yōu)化。去塊效應(yīng)濾波中有較多的判斷語句,判斷語句會打斷DSP的流水線,使DSP不能充分發(fā)揮其性能,優(yōu)化時應(yīng)盡可能將判斷轉(zhuǎn)移到循環(huán)外面去,以提高執(zhí)行效率。同時去塊效應(yīng)濾波需要頻繁地訪問待濾波數(shù)據(jù),減少對這些數(shù)據(jù)的訪問次數(shù)也能較大地提高去塊效應(yīng)濾波的速度。

  SAD()的函數(shù)原型及其匯編代碼[2]:

  for(i=0;i<16*16;i++)
   result +=abs( *pSrc++ - *pRef++);
   LSETUP(row_start,row_end) LC0=P1;  //利用Blackfin的硬件循環(huán)實現(xiàn)SAD的循環(huán)
   row_start:
   R3 = [I1++]; //讀取數(shù)據(jù)
   SAA(R1:0,R3:2) R1= [I0++] R2= [I1++]; //計算R1:0和R3:2的SAD
   SAA(R1:0,R3:2)(R) R0= [I0++] R3= [I1++]; //執(zhí)行SAA的同時,讀取數(shù)據(jù)
   SAA(R1:0,R3:2) R1= [I0++] R2= [I1++];
   row_end:SAA(R1:0,R3:2)(R) R0=[I0++] R2= [I1++];

       3 實驗結(jié)果

  筆者使用600MHz時鐘的Blackfin533,對于低、中運動復(fù)雜度的圖像序列,能夠?qū)崿F(xiàn)25幀/秒的實時編碼;對于高運動復(fù)雜度的圖像序列,能實現(xiàn)20幀/秒左右的準實時編碼。其各模塊所占時間比例見表2。

  編碼器的性能指標如下:1個參考幀;幀間模式采用16×16、16×8、8×16、8×8模式;幀內(nèi)模式對16×16采用4種預(yù)測模式,對于4×4采用9種預(yù)測模式;1/4像素的運動估計;熵編碼采用CAVLC編碼方式。

  表3為不同圖像序列壓縮效果的比較。每種序列壓縮100幀圖像,采用IPPPP....的編碼模式。綜上所述,在Blkfin533平臺上實現(xiàn)了H.264的CIF圖像的準實時編碼。該系統(tǒng)具有碼流低、延時小、圖像質(zhì)量高等優(yōu)點。

       參考文獻

 Draft ITU-T recommendation and final draft international stan- dard of joint
  video specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC. in Joint Video Team (JVT)
  of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2003
2 AD Inc. Blackfin processor instruction set reference.Rev 3.0,June 2004:417~421,487~492
 

本站聲明: 本文章由作者或相關(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ù)中斷的風(fēng)險,如企業(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ù)學(xué)會聯(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)閉