色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ADSP—BF533硬件平臺上實現H.264實時解碼器的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-09-26 08:06 ? 次閱讀

引 言

H.264是ITU T的VCEG和ISO/IEC的MPEG聯合成立的聯合視頻組JVT(Joint Video Tearn)共同制定的新視頻編碼標準,定位于覆蓋整個視頻應用領域。H.264標準采用了基于可變大小宏塊的運動補償、多幀參考、整數變換、基于1/4像素精度的運動估計、去塊效應濾波器等新技術,因而獲得更好的壓縮性能,同時也導致了運算量的大幅度增加。

Blackfin處理器采用了ADI公司英特爾公司共同開發的微信號結構,在結構中加人專門的視頻處理指令,工作頻率高達756 MHz,能完成12OOM次/s乘加操作。與采用超標量結構或超長指令集的DSP(如TI的C6000系列)相比,Blackfin處理器在功耗、成本方面具有很大的優勢,非常適合嵌入式的視頻應用。

1 H.264視頻編碼標準

H.264視頻編解碼器的基本結構與早期的編碼標準(H.263、MPEG4等)相似,都是由運動補償、變換、量化、熵編碼、環路去塊效應濾波器等功能單元組成的。H.264標準的改進主要體現在各功能模塊內部。H_264的重大改進表現在以下幾個方面:

高精度的基于1/4像素精度的運動預測。

②多種宏塊劃分模式。每個宏塊(16×16像素)的亮度分量有7種分區方法:16×16、16×8、8×16、8×8、8×4、4×8、4×4。

③多幀預測。在幀間編碼時,可選5個不同的參考幀。

④整數變換。采用基于4×4像素塊的整數變換代替DCT變換。

⑤H_264/AVC支持兩種熵編碼方法,即CAVLC(基于上下文的自適應可變長編碼)和CABAC(基于上下文的自適應算術編碼)。CAVLC的抗差錯能力比較高,而編碼效率比CABAC低;CABAC編碼效率高,但需要的計算量和存儲容量更大。

⑥幀內預測編碼。H.264采用了多種設計合理的幀內預測模式,大大降低了I幀的編碼率。

網絡適配層NAL(Network Abstraction Layer)為視頻編碼層提供一個與網絡無關的統一接口,使視頻編碼數據能適應不同的網絡應用環境。

H.264分為7種不同的框架(profile)——Baselineprofile、Main profiIe、Extended profile、High profik、High10 profik、High4:2:2 profile和High 4;4:4,分別代表不同的技術限制和算法集合。其中baseline prome的使用是不收版權費的。

2 基于ADSP—BF533的軟硬件實現平臺

硬件平臺采用ADI公司的ADSP—BF533 EZ—kit Lite評估板。此評估板包括l塊ADSP—BF533處理器,32MB SDRAM,2 MB? Flash,ADVl836音頻編解碼器外接4輸入/6輸出音頻接口,ADV7183視頻解碼器和ADV7171視頻編碼器外接3輸入/3輸出視頻接口,1個UART接口,1個USB調試接口,1個JTAG調試接口。評估板系統結構框圖如圖1所示。

基于ADSP—BF533硬件平臺上實現H.264實時解碼器的設計

評估板上采用的ADSP—BF533處理器,工作頻率高達756 MHz。該處理器有以下特點:雙16位乘法累加器;雙40位算術邏輯單元(ALU);4個8位視頻ALU;1個40

位移位器;專用的視頻信號處理指令;148 KB的片內存儲器(16 KB可作為指令Cache,32 KB可作為數據Cache);動態電源管理功能等。Blackfin處理器還包括豐富的外設和接口:EBIU接口(4個128 MB SDRAM接口,4個l MB異步存儲器接口),3個定時/計數器,1個UART,1個SPI接口,2個同步串行接口,1路并行外設接口(支持ITU一656數據格式)等等。Blackfin處理器在結構上充分體現了對媒體應用(特別是視頻應用)算法的支持。

軟件驗證采用如下方式:首先,通過DSP仿真器將H.264編碼文件拷貝到評估板的存儲器里。然后,軟件從存儲器中讀取編碼文件的數據,進行解碼操作。最后,將解碼的數據通過PPI接口輸出到ADV7171芯片,ADV7171芯片將輸入的視頻數據編碼為PAL格式輸出到顯示器上二進行顯示。

Blackfin處理器的軟件開發平臺是VisualDSP++4.0。

3 H 264實時解碼器軟件設計

3.1軟件總體設計

為了實現實時解碼的要求,需要優化程序的設計。優化流程如下:

①在PC機上進行算法的驗證和評估、優化程序的流程設計和數據結構設計。

②將程序代碼移植到Blackfin處理器。在Visual—DSP++集成開發環境里進行編譯,刪除PC平臺相關的代碼,添加DSP平臺相關的代碼。

③進行基于DSP平臺的優化操作。設置速度優化的編譯參數,進行C語言級的優化,用匯編指令改寫最耗時的函數,通過使用專用的向量指令和并行指令減少函數的執行時間。

3.2 在PC機上實現并優化解碼器程序

解碼器程序參考了JM9.6,并在以下方面作了優化:

①由于只支持Baseline profile,刪除有關B幀、SI片、SP片和數據分割等不支持特性的冗余程序代碼;

②修正JM9.6,每次處理一個Slice時都要分配內存,讀取其中信息,再釋放內存,合理安排內存空間的分配和釋放;

③將I幀、P幀分別獨立解碼,宏塊解碼也按預測模式和預測方向分成不同的解碼模塊,以省去中間的重復判斷,提高解碼速度;

④優化CAVLC碼表的查詢方法。

3.3 程序移植

VisualDSP++是一款支持Blackfin處理器的集成開發、調試環境,包括VisuaIDSP++內核(VDK)、C/C++編譯器、高級圖形繪制工具、調試工具、器件模擬器等多種功能;能夠很好地支持在Blackfin處理器上用C/C++語言進行開發工作。

移植的第一步是除去所有的編譯環境不支持的函數(例如某些時間相關的函數),將文件操作修改為讀取文件數據緩存的操作,刪除SNR信息收集和信息打印輸出等DSP平臺實現不需要的代碼。第二步是添加與硬件相關的代碼。這些代碼包括系統初始化代碼、輸出模塊代碼、中斷服務程序和解碼速率控制程序等程序代碼。

移植完畢后,就實現了基于ADSP-BF533處理器的H_264解碼器;但速度達不到實時解碼的要求,還需要進行優化。

3.4 基于DSP平臺的優化

基于DSP平臺的優化分為系統級優化、C程序級優化和匯編級優化。

(1)系統級優化

打開編譯器中的優化開關,設置為速度最優化;打開自動內聯開關;打開“Interprocedural optimization”(過程間優化)開關;使用VisualDSP++編譯器的PGO(Profile—Guided Optimization)優化編譯技術。

(2)C程序級優化

C程序級的優化主要是針對BIackfin處理器的具體特點進行優化:

①編寫鏈接描述文件,將經常用的數據存儲在片內存儲器,例如CAVLC熵解碼的碼表;啟用指令Cache和數據Cache,設置好啟用Cache機制的指令地址和數據地址。

②將除法操作轉換為乘法操作或者采用查表法計算。

③減少對片外存儲器的訪問次數。對于經常訪問的片外存儲器區域,設置Cache使能,并可設置Cache鎖定,防止被緩存的數據被替換,減少Cache未命中的幾率。

④對于能夠用較短的數據類型表達的數據改用較短的數據類型表達,例如原定義為int類型的4×4逆整數變換的輸人數據,實際上可以定義為short類型。

(3)匯編級優化

匯編級優化通常遵循以下原則:

①使用寄存器代替局部變量。如果局部變量用來保存計算的中間結果,那么用寄存器

代替局部變量可以省掉很多訪問內存的時問。

②使用硬件循環代替軟件循環。.Blackfin處理器有專用的硬件支持兩級嵌套的零開銷

硬件循環。用硬件循環代替軟件循環可避免堵塞流水線,提高速度。

③使用并行指令和向量指令。使用并行指令和向量指令,可以充分利用Blackfin處理器的SIMD系統結構的優點和內部硬件資源的并行處理優點,減少指令執行次數和提高指令執行效率。使用1條并行指令同時執行2條或3條非并行指令。向量指令可以同時對多個數據流進行相同的加工操作。

④使用視頻處理指令。視頻處理應用可以使用Blackfin處理器專用的視頻處理指令,提高執行效率。

將最耗時的一些函數用匯編語言改寫,充分利用Blackfin處理器的S1MD結構的優點和硬件上的并行性,在一個指令周期內執行多個操作,減少函數執行需要的指令周期。最耗時的函數有宏塊解碼函數decode_one_macroblock、逆整數變換函數itrans、去塊效應濾波函數EdgeLoop、濾波門限計算函數Get_Strength等函數。

下面以4×4矩陣逆整數變換函數itrans和1/4像素插值濾波get_block(),說明用匯編指令優化帶來的性能提高。4×4矩陣的逆整數變換函數itrans采用的是2級蝶形運算,先對4×4矩陣的每一行分別做行逆變換,再對每一列做列逆變換。一維變換采用如圖2所示的蝶形算法。

基于ADSP—BF533硬件平臺上實現H.264實時解碼器的設計

Blackfin處理器的SIMD結構支持向量操作,最多可以在1個周期內完成4個16位的加法操作。它的并行指令能同時進行算術運算和兩個數據的裝載/存儲操作。例如上述的蝶形運算可以用如下指令實現(設寄存器IO中保存了輸人數據y的地址,I2中保存了系數數組cof={0x7fff,0x4000}的地址,Il中保存了臨時變量tmp的地址,R2和R1保存的是中問結果):

R7=[IO++];

Al=R6.I*R7.1,AO=R6.1*R7.1(IS)┃│I R5=

[10++]┃┃[││++]=R2;

R4.h =(A1一一R5.1*R6.1),R4.1=(AO+=R5.1*R6.1)(IS)││W[I1++]=R1.h;

R7.1=R6.1*R5.h(IS)1 W[11++]=R1.1;

R5=R7》》》1(v);

A1=R6.1*R5.h,AO—R6.1*R5.1(IS);

R3.h一(A1+一R6.1*R7.1), R3.1一(AO =R6.1*R7.h)(IS);

R2=R4+l+R3,R1=R4一│ 一R3:

完成一次一維逆變換只需8條指令,算上函數調用的開銷和其他一些輔助指令,完成一個4×4矩陣的逆整數變換時總共需要82條指令周期。表1是優化前、后的比較。

基于ADSP—BF533硬件平臺上實現H.264實時解碼器的設計

get_block函數對像素矩陣進行1/4像素插值操作。先用六階濾波器進行1/2像素插值,然后用線性內插法進行l/4像素插值。

l/2像素b計算方法為:b=round((E一5F+20G+20H一5I+j)/32)。示意圖如圖3所示。E、F、G、H、I、J是整數像素,b是G和H之問的1/2像素。

基于ADSP—BF533硬件平臺上實現H.264實時解碼器的設計

像素的亮度值為unsigned char類型,先利用并行指令可以在1個指令周期內將8個像素的亮度值讀到寄存器,然后利用視頻專用指令將4個字節解包到1個寄存器對(R1:O或R3:2)中去,利用向量指令在1個周期內進行2次乘加操作。通過視頻專用指令、向量指令和并行指令的使用,減少了函數指令的指令周期數。

4 實驗結果

在EZKit533開發板上測試了解碼器算法,對CIF格式(352×288)的foreman測試序列,可以達到45~50幀/s的解碼速度;對CIF格式的mobile測試序列,能夠達到40幀~44幀的解碼速度。如果增加解碼速率控制模塊,可以穩定地實現以30幀/s的速率播放CIF測試序列。實驗結果證明,在Blackiln處理器上實現H.264實時解碼器是可行的。ADI公司甚至聲稱可以在600 Mtz的BF533處理器上實現D1(720×576)格式的視頻實時解碼器。

BIackfin處理器有低功耗、低成本和高性能的特點。在Blackfin處理器上實現的H.264視頻解碼器很適合用于IP機頂盒、可視電話、PMP(便攜式媒體播放器)等嵌人式視頻應用中。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19399

    瀏覽量

    230725
  • dsp
    dsp
    +關注

    關注

    554

    文章

    8059

    瀏覽量

    349803
  • 解碼器
    +關注

    關注

    9

    文章

    1144

    瀏覽量

    40860
收藏 人收藏

    評論

    相關推薦

    如何去實現并優化H.264解碼器算法?

    網絡視頻開發平臺NVDK是什么?H.264主要有哪些新特點?H.264解碼器算法的DSP實現和優化
    發表于 06-02 06:25

    怎么實現基于ADSP-BF561的H.264編碼設計?

    在DSP平臺上進行視頻產品開發有什么優勢?怎么實現基于ADSP-BF561的H.264編碼設計?
    發表于 06-07 06:46

    H.264解碼器中CABAC硬件加速器怎么實現

    H.264解碼器中CABAC硬件加速器怎么實現
    發表于 06-07 06:48

    基于BF533H264的視頻服務實現

    本文完成了基于BF533的視頻服務硬件設計,針對如何充分發揮BF533硬件平臺的處理能力,提
    發表于 08-31 15:56 ?25次下載

    基于ADSP-BF533處理的去方塊濾波實現及優化

    基于ADSP-BF533 處理的去方塊濾波實現及優化關鍵詞:視頻編解碼,去方塊濾波,ADSP-BF
    發表于 01-26 17:58 ?19次下載

    基于ADSP-BF561的H.264視頻編碼實現

    基于ADSP-BF561的H.264視頻編碼實現 H.264/AVC是ITU-T VCEG和ISO/IECMPEG聯合制定的
    發表于 12-26 14:43 ?780次閱讀

    基于ADSP-BF533處理H.264解碼器

    摘要:H.264標準擁有比其他視頻編碼標準更好的壓縮性能,但計算復雜度高,限制了H.264標準的應用。Blackfin處理是ADI公司推出的低功耗、高性能的定點DSP芯片,有極高的性價比,是
    發表于 02-28 00:20 ?31次下載

    網絡視頻編解碼器H.264

    網絡視頻編解碼器H.264
    發表于 12-23 02:22 ?0次下載

    ADSP-BF561上實現與優化的H.264解析

    ,用一般的圖像處理芯片難以達到實時解碼的要求,它需要快速、穩定的處理作為硬件平臺ADSP-BF
    發表于 10-25 14:57 ?0次下載
    在<b class='flag-5'>ADSP-BF</b>561上<b class='flag-5'>實現</b>與優化的<b class='flag-5'>H.264</b>解析

    基于USB 2.0集成芯片的H.264解碼器芯片設計

    復雜度。由于僅用軟件已經無法實現實時解碼過程。所以必須利用硬件加速,這正是本解碼器設計的初衷。 雖然H.264相較同質量的
    發表于 10-31 16:37 ?905次閱讀

    ADSP-BF531/BF532/BF533 Blackfin?功耗估算(Rev 4, 12/2007)

    ADSP-BF531/BF532/BF533 Blackfin?功耗估算(Rev 4, 12/2007)
    發表于 03-19 05:43 ?6次下載
    <b class='flag-5'>ADSP-BF</b>531/<b class='flag-5'>BF</b>532/<b class='flag-5'>BF533</b> Blackfin?功耗估算(Rev 4, 12/2007)

    EE-203:通過異步端口將ADSP-BF535/ADSP-BF533 Blackfin?處理連接到NTSC/PAL視頻解碼器

    EE-203:通過異步端口將ADSP-BF535/ADSP-BF533 Blackfin?處理連接到NTSC/PAL視頻解碼器
    發表于 05-20 14:27 ?0次下載
    EE-203:通過異步端口將<b class='flag-5'>ADSP-BF</b>535/<b class='flag-5'>ADSP-BF533</b> Blackfin?處理<b class='flag-5'>器</b>連接到NTSC/PAL視頻<b class='flag-5'>解碼器</b>。

    ADSP-BF531/BF532/BF533黑球BSDL 169球PBGA包(02/2004)

    ADSP-BF531/BF532/BF533黑球BSDL 169球PBGA包(02/2004)
    發表于 05-20 21:27 ?2次下載
    <b class='flag-5'>ADSP-BF</b>531/<b class='flag-5'>BF</b>532/<b class='flag-5'>BF533</b>黑球BSDL 169球PBGA包(02/2004)

    ADSP-BF531/BF532/BF533黑丙烯BSDL 176-Pin LQFP包(02/2004)

    ADSP-BF531/BF532/BF533黑丙烯BSDL 176-Pin LQFP包(02/2004)
    發表于 05-21 21:20 ?5次下載
    <b class='flag-5'>ADSP-BF</b>531/<b class='flag-5'>BF</b>532/<b class='flag-5'>BF533</b>黑丙烯BSDL 176-Pin LQFP包(02/2004)

    EE-229: ADSP-BF531/BF532/BF533 Blackfin功耗估算

    電子發燒友網站提供《EE-229: ADSP-BF531/BF532/BF533 Blackfin功耗估算.pdf》資料免費下載
    發表于 01-06 15:22 ?0次下載
    EE-229: <b class='flag-5'>ADSP-BF</b>531/<b class='flag-5'>BF</b>532/<b class='flag-5'>BF533</b> Blackfin功耗估算
    主站蜘蛛池模板: 空姐厕所啪啪啪| 青柠电影高清在线观看| 日韩亚洲视频一区二区三区| 99久久精品免费看国产一区二区三区| 韩国黄电影| 亚洲qvod图片区电影| 国产精品一区二区制服丝袜| 色中色成人论坛| 国产传媒麻豆剧精品AV| 午夜一区二区三区| 好硬好湿好大再深一点动态图| 亚洲蜜桃AV永久无码精品放毛片 | 欧美国产日韩久久久| 中字幕久久久人妻熟女天美传媒 | bdsm中国精品调教ch| 欧美日韩一区不卡在线观看| 被肉日常np高h| 四虎国产一区| 好男人在线观看视频观看高清视频免费| 亚洲欧美中文字幕5发布| 快播电影网址| yellow日本动漫高清| 色翁荡息又大又硬又粗又爽电影| 国产精品久久久久a影院| 亚洲欧美高清在线| 老太婆性BBWBBW| 白嫩美女直冒白浆| 午夜天堂AV久久久噜噜噜| 黃色带三级a级| 91看片淫黄大片.在线天堂| 人与禽物videos另类| 国产美熟女乱又伦AV| 广播电台在线收听| 午夜精品久久久久久久爽牛战| 国模沟沟一区二区三区| 18未满不能进的福利社| 日日踫夜夜爽无码久久| 护士的下面又湿又紧10P | 中文字幕精品在线视频| 暖暖 免费 高清 日本 在线| 国产高潮久久精品AV无码|