0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于H.264解碼芯片的FPGA原型驗(yàn)證平臺(tái)實(shí)現(xiàn)視頻控制模塊的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)應(yīng)用 ? 作者:易志中,林濤,焦孟 ? 2021-03-17 10:10 ? 次閱讀

H.264是ITU-T VCEG組織和ISO/IEC MPEG組織共同研究的新型視頻壓縮標(biāo)準(zhǔn),相比其他視頻壓縮算法,具有壓縮比高、算法復(fù)雜的特點(diǎn)。由于編碼算法的復(fù)雜性,系統(tǒng)對(duì)圖像解碼速度和功耗要求非常嚴(yán)格,因此,在設(shè)計(jì)解碼器時(shí)采用了H.264解碼專用芯片的設(shè)計(jì)方案。對(duì)一個(gè)大的設(shè)計(jì)項(xiàng)目,一般采用由頂向下(TOP-DOWM)的設(shè)計(jì)方法,把各功能模塊劃分為子模塊。視頻控制器模塊是芯片與顯示平臺(tái)的數(shù)據(jù)接口,對(duì)檢驗(yàn)芯片設(shè)計(jì)是否成功起著重要的作用,有必要把它單獨(dú)劃分為一個(gè)子模塊。為了提高設(shè)計(jì)的成功率,在設(shè)計(jì)初期采用了基于FPGA的原型驗(yàn)證。整個(gè)系統(tǒng)的FPGA原型驗(yàn)證平臺(tái)如圖1所示,平臺(tái)分為2個(gè)部分,硬件設(shè)計(jì)和基于RISC CPU的軟件解碼,兩部分協(xié)同工作,既可以驗(yàn)證軟件和硬件的解碼結(jié)果,又可以加速整個(gè)解碼過程。

圖1 H.264解碼芯片的FPGA原型驗(yàn)證平臺(tái)

圖2 輸出視頻控制模塊結(jié)構(gòu)框圖

視頻控制模塊的設(shè)計(jì)與實(shí)現(xiàn)

視頻控制模塊原理框圖及功能分析

輸出視頻控制模塊的結(jié)構(gòu)框圖如圖2所示,本模塊有2個(gè)時(shí)鐘域:系統(tǒng)時(shí)鐘域和顯示時(shí)鐘域。系統(tǒng)時(shí)鐘頻率根據(jù)所選用的SDRAM類型而采用固定的166MHz;對(duì)于分辨率為1280×720的高清電視來說,顯示時(shí)鐘域可以選用70 MHz 左右的頻率。

系統(tǒng)時(shí)鐘域含有2個(gè)對(duì)外接口:系統(tǒng)接口,主要包含上層系統(tǒng)發(fā)出的指令以及輸出控制模塊的反饋信息DRAM接口,包含數(shù)據(jù)專用總線為輸出控制模塊提供的信號(hào),用來于向DRAM請(qǐng)求顯示的圖像數(shù)據(jù)。

系統(tǒng)時(shí)鐘域中的顯示輸入控制子模塊(Disp In Ctrl)首先用于接收系統(tǒng)傳來的StartDisp和EndDisp信號(hào),來啟動(dòng)或關(guān)閉視頻數(shù)據(jù)的輸出顯示功能,同時(shí)發(fā)出幀圖像顯示完畢信號(hào)(FrameDone),通知系統(tǒng)更換下一副圖像的地址信息(ImageAddress);其次,它用于向DRAM發(fā)出請(qǐng)求,通過專用數(shù)據(jù)通道讀取需要顯示的圖像數(shù)據(jù);它還要控制輸入多路選擇模塊(Input MUX),從而完成向片內(nèi)SRAM寫數(shù)據(jù)的任務(wù);最后,該模塊要與顯示時(shí)鐘域的信息交互,向時(shí)鐘域同步模塊(Clk Domain Sync)發(fā)送顯示使能信號(hào)(DispEn Sys),控制圖像顯示的開啟和關(guān)閉。系統(tǒng)時(shí)鐘域的另一個(gè)子模塊——輸入多路選擇模塊會(huì)按照一定的規(guī)律選擇片內(nèi)雙口SRAM,控制存儲(chǔ)器地址,完成向存儲(chǔ)器寫入顯示圖像數(shù)據(jù)的任務(wù)。

顯示時(shí)鐘域含有一個(gè)對(duì)外顯示設(shè)備接口,主要包含用于顯示的控制信號(hào)和已完成轉(zhuǎn)換的數(shù)據(jù)信息。顯示時(shí)鐘域包含2個(gè)子模塊,一個(gè)是輸出多路選擇子模塊(Output MUX),用于實(shí)現(xiàn)對(duì)雙口SRAM的選擇和地址控制,按照一定的規(guī)律讀取要顯示的圖像數(shù)據(jù);還要進(jìn)行數(shù)據(jù)的打包。另外一個(gè)子模塊是顯示輸出控制模塊(Disp Out Ctrl),用于實(shí)現(xiàn)對(duì)TV編碼器的控制、YUV信號(hào)向RGB信號(hào)的轉(zhuǎn)換以及對(duì)數(shù)字圖像的縮放,信號(hào)包括顯示時(shí)鐘、行同步、幀同步以及RGB圖像數(shù)據(jù)等;它還要控制輸出多路選擇模塊以讀取顯示數(shù)據(jù);最后,它要與系統(tǒng)時(shí)鐘域進(jìn)行交互, 配合數(shù)據(jù)在兩個(gè)時(shí)鐘域之間的傳遞。

視頻控制模塊采用的特殊技術(shù)

時(shí)鐘域同步模塊是輸出控制模塊設(shè)計(jì)的重點(diǎn),它主要負(fù)責(zé)兩個(gè)時(shí)鐘域之間的控制信號(hào)傳遞??鐣r(shí)鐘域的信號(hào)傳遞設(shè)計(jì)較為麻煩, 所以設(shè)計(jì)中將傳遞的信號(hào)分為兩類:數(shù)據(jù)信號(hào)和控制信號(hào),其中控制信號(hào)就是通過時(shí)鐘域同步模塊傳遞。對(duì)需要跨時(shí)鐘域傳遞的信號(hào)數(shù)進(jìn)行精簡,在最后方案中只需要2個(gè)信號(hào):WrDone信號(hào)由系統(tǒng)時(shí)鐘域發(fā)出,通知顯示時(shí)鐘域某塊雙口SRAM中的數(shù)據(jù)已經(jīng)更新完畢,可以讀取并進(jìn)行顯示輸出;RdDone信號(hào)由顯示時(shí)鐘域發(fā)出,通知系統(tǒng)時(shí)鐘域某塊雙口SRAM中的數(shù)據(jù)已經(jīng)顯示完畢,可以更新其內(nèi)部的數(shù)據(jù)。信號(hào)在不同的時(shí)鐘域之間傳遞需要采取消除亞穩(wěn)態(tài)(Metastability)的處理措施,可使信號(hào)通過兩級(jí)寄存器鎖存輸出,如圖3所示。

圖3 跨時(shí)鐘域信號(hào)亞穩(wěn)態(tài)消除電路

圖4 視頻輸出子模塊的硬件實(shí)現(xiàn)框圖

設(shè)計(jì)中有兩點(diǎn)值得注意,首先,時(shí)鐘域同步電路應(yīng)放在一個(gè)獨(dú)立的模塊中,保證綜合工具的優(yōu)化、時(shí)序分析的正確,并方便電路的分析和調(diào)試;同時(shí),為了能夠使信號(hào)的目標(biāo)時(shí)鐘域采集到信號(hào)變化,設(shè)計(jì)中傳遞的控制信號(hào)都采用電平信號(hào)表征。

時(shí)鐘域之間要傳遞的另一種信號(hào)是數(shù)據(jù)信號(hào),由于數(shù)據(jù)信號(hào)數(shù)目較多、變化也較快,所以它們的傳遞通過雙口DPRAM實(shí)現(xiàn)。雙口DPRAM要求讀寫端口對(duì)同一存儲(chǔ)地址的操作要滿足一定的時(shí)間間隔,否則會(huì)出現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤,甚至?xí)茐挠布娐贰R虼藶榱吮苊釪PRAM的讀寫沖突,設(shè)計(jì)中采用了“乒乓”緩沖的方法,兩塊DPRAM交替存取解碼后用于顯示的亮度或色差數(shù)據(jù):當(dāng)顯示部分讀取一塊DPRAM中的數(shù)據(jù)時(shí),系統(tǒng)向另一塊DPRAM中寫接下來要顯示的數(shù)據(jù),數(shù)據(jù)讀取完畢時(shí),兩塊DPRAM就進(jìn)行交換。這部分共用4塊DPRAM來實(shí)現(xiàn),2塊傳遞亮度信號(hào),2塊傳遞色差信號(hào)。

下面分析在視頻控制器顯示輸出子模塊中運(yùn)用到的格式轉(zhuǎn)換算法、圖像縮放處理算法以及它們的硬件實(shí)現(xiàn)。

顯示數(shù)據(jù)格式轉(zhuǎn)換分析

根據(jù)Sil 164 DVI信號(hào)編碼芯片資料,同時(shí)參考H.264視頻編碼標(biāo)準(zhǔn)中給出的YUV → RGB轉(zhuǎn)換格式,故在設(shè)計(jì)中采用的固定轉(zhuǎn)換算法如下式所示:

上式經(jīng)過定點(diǎn)化處理,使用移位和相加的方法實(shí)現(xiàn)了轉(zhuǎn)換,如下式所示:

在硬件設(shè)計(jì)中的YUV、RGB信號(hào)都是用8位無符號(hào)數(shù)表示,中間變量采用12位保證精度。最后要在0“255的范圍內(nèi)對(duì)計(jì)算出的RGB結(jié)果進(jìn)行剪裁處理,式中的冪指數(shù)和除法運(yùn)算都通過移位來實(shí)現(xiàn)。

數(shù)字圖像縮放的算法分析

對(duì)于一幅分辨率為M×N的原始圖像,其所有采樣點(diǎn)的YUV值可以用M×N階矩陣表示為:

像素點(diǎn)用f(m,n)表示,其中0≤m≤M,0≤n。對(duì)一幅數(shù)字圖像進(jìn)行縮放,其實(shí)質(zhì)就是對(duì)一幅數(shù)字圖像進(jìn)行重采樣,假定對(duì)原始數(shù)字圖像高和寬進(jìn)行縮放的縮放倍數(shù)分別為S1和S2,那么根據(jù)奈奎斯特采樣定律,應(yīng)該用新的水平與垂直采樣周期740)this.width=740” border=“undefined”> 對(duì)原數(shù)字圖像進(jìn)行重采樣。得到經(jīng)過縮放的數(shù)字圖像f′(m′,n′):

由上式可知,經(jīng)過縮放的數(shù)字圖像中的每一個(gè)重構(gòu)像素f′(m′,n′)就是原來數(shù)字圖像各個(gè)像素的加權(quán)和。若采用該式直接進(jìn)行硬件設(shè)計(jì),計(jì)算量會(huì)非常大。為了簡化設(shè)計(jì)難度,節(jié)省芯片成本,可以在對(duì)圖像品質(zhì)影響不大的基礎(chǔ)上對(duì)上式進(jìn)行簡化。重構(gòu)后的圖像像素值主要取決于兩個(gè)抽樣函數(shù)乘積的值。在實(shí)際中只采用

的值等于1的點(diǎn),即滿足的點(diǎn)。進(jìn)一步簡化,可以取,表示對(duì)數(shù)按四舍五入取整,得到簡化表達(dá)式:f′(m′,n′)=f(m,n)。

數(shù)字圖像格式轉(zhuǎn)換與縮放的硬件實(shí)現(xiàn)

設(shè)計(jì)本項(xiàng)目的時(shí)候,顯示設(shè)備采用分辨率為1280×720的高清晰度電視機(jī),輸出到高清晰度電視機(jī)顯示時(shí)采用圖像中心對(duì)齊的方式。當(dāng)把解碼好的數(shù)字圖像數(shù)據(jù)送到高清晰度電視顯示時(shí),如果不經(jīng)過圖像縮放處理,那么顯示屏幕中間放解碼好的數(shù)字圖像,其他的地方用黑色填充。在進(jìn)行縮放處理時(shí),遵循上面的規(guī)律。先把視頻控制器輸出模塊前端按照逐行掃描排列好送來的數(shù)據(jù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,再把RGB不為零(即不為黑色)的像素?cái)?shù)據(jù)按每幀和逐行掃描規(guī)律輪流放到兩塊同樣大小的片內(nèi)緩存RAM中,如圖4所示。

其工作方式與前面的DPRAM相同,讀取RAM1或RAM2中數(shù)據(jù)的地址后,可以通過地址譯碼器得到該點(diǎn)像素值的行列地址,即得到m、n的值。把m、n值送到圖像縮放處理單元,通過縮放處理得到新的圖像數(shù)據(jù)和新的圖像數(shù)據(jù)地址,再通過寫地址譯碼器得到在輸出RAM3中按照逐行掃描格式輸出的地址,該地址用來存放格式轉(zhuǎn)換后的數(shù)據(jù)。最后,從存儲(chǔ)轉(zhuǎn)換數(shù)據(jù)的RAM3中可以直接輸出顯示所需要的RGB數(shù)據(jù)。

結(jié)語

設(shè)計(jì)完成后,此視頻控制器模塊經(jīng)綜合工具Synplify 7.6綜合,可以得到80.3MHz的工作頻率。與前端的解碼模塊一起下載到Xilinx公司的Virtex-II 6000型FPGA中,并將其集成入H.264視頻解碼驗(yàn)證平臺(tái)上,工作頻率可達(dá)34MHz,在高清晰度電視上播放圖像時(shí)效果較好。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598877
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49631

    瀏覽量

    417107
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15879

    瀏覽量

    175338
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [求助]imx27開發(fā)平臺(tái)H.264硬件編解碼,在視頻傳輸方面有什么特別之處詳

    的產(chǎn)品,體驗(yàn)到真正的設(shè)計(jì)自由。在多媒體處理能力方面,i.MX27芯片內(nèi)部集成了一個(gè)增強(qiáng)型低功耗多媒體的H.264硬件編解碼模塊。設(shè)計(jì)工程師可以利用H
    發(fā)表于 04-02 17:23

    [推薦]imx27開發(fā)平臺(tái)H.264硬件編解碼,高清視頻首選

    的i.mx27開發(fā)板開發(fā)有針對(duì)性的產(chǎn)品,體驗(yàn)到真正的設(shè)計(jì)自由。在多媒體處理能力方面,i.MX27芯片內(nèi)部集成了一個(gè)增強(qiáng)型低功耗多媒體的H.264硬件編解碼模塊。設(shè)計(jì)工程師可以利用
    發(fā)表于 04-07 14:02

    [推薦]imx27開發(fā)平臺(tái),H.264硬件編解碼,高清視頻首選

    的i.mx27開發(fā)板開發(fā)有針對(duì)性的產(chǎn)品,體驗(yàn)到真正的設(shè)計(jì)自由。在多媒體處理能力方面,i.MX27芯片內(nèi)部集成了一個(gè)增強(qiáng)型低功耗多媒體的H.264硬件編解碼模塊。設(shè)計(jì)工程師可以利用
    發(fā)表于 04-07 14:11

    FPGAh.264視頻解碼實(shí)現(xiàn)

    想在DE2-115的開發(fā)板上完成h.264視頻解碼,自己的想法是在已有的tpad_camer代碼上加一軟核,但一直失敗,希望有相關(guān)經(jīng)驗(yàn)的高手指點(diǎn)下?
    發(fā)表于 03-05 16:24

    101-高清JPEG解碼、H.264圖像解碼的字符疊加設(shè)備

    DVI輸出接口程序實(shí)現(xiàn)DVI的圖像輸出數(shù)據(jù)LVDS控制實(shí)現(xiàn)數(shù)據(jù)收發(fā),解析并傳送給DSP  數(shù)據(jù)流程序:     (1)JPEG圖片流解碼疊加    ?。?)
    發(fā)表于 06-27 14:58

    H.264視頻解碼FPGA解決方案

    的,以IP核的形式,在FPGA器件上運(yùn)行,基于FPGA的解決方案使用FPGA為核心器件,實(shí)現(xiàn)H.264
    發(fā)表于 05-07 17:14

    如何去實(shí)現(xiàn)并優(yōu)化H.264解碼器算法?

    網(wǎng)絡(luò)視頻開發(fā)平臺(tái)NVDK是什么?H.264主要有哪些新特點(diǎn)?H.264解碼器算法的DSP實(shí)現(xiàn)和優(yōu)
    發(fā)表于 06-02 06:25

    基于H.264算法的視頻傳輸系統(tǒng)實(shí)現(xiàn)

    本文介紹了基于H.264 算法的視頻傳輸系統(tǒng)的實(shí)現(xiàn)方案。該方案采用目前最新的視頻壓縮標(biāo)準(zhǔn)——H.264 作為
    發(fā)表于 01-22 15:33 ?52次下載

    H.264視頻解碼芯片濾波存儲(chǔ)器設(shè)計(jì)方案

    本文對(duì)H.264 解碼芯片中的濾波、存儲(chǔ)模塊作了深入的分析。并根據(jù)各個(gè)時(shí)間數(shù)據(jù)的特點(diǎn)作相應(yīng)的存儲(chǔ)器的設(shè)計(jì), 這種設(shè)計(jì)方法經(jīng)過驗(yàn)證能很好地處理
    發(fā)表于 04-06 11:46 ?1489次閱讀
    <b class='flag-5'>H.264</b><b class='flag-5'>視頻</b><b class='flag-5'>解碼</b><b class='flag-5'>芯片</b>濾波存儲(chǔ)器設(shè)計(jì)方案

    網(wǎng)視云通針對(duì)H.264高清視頻發(fā)布Net Display評(píng)估套件

    網(wǎng)視云通針對(duì)H.264高清視頻發(fā)布一套完整的評(píng)估套件Net Display,包括編碼解碼模塊NDM2000和各種接口電路模塊,
    發(fā)表于 08-03 11:18 ?2181次閱讀

    網(wǎng)絡(luò)視頻解碼H.264

    網(wǎng)絡(luò)視頻解碼H.264
    發(fā)表于 12-23 02:22 ?0次下載

    視頻技術(shù)之超高清(UHD)H.264視頻解碼IP設(shè)計(jì)

    ,能夠實(shí)現(xiàn)UHD 4K@60fps視頻流的操作,如下圖所示: Artia Logic公司開發(fā)的H.264解碼IP設(shè)計(jì)模塊圖 Artia L
    發(fā)表于 11-16 13:35 ?7576次閱讀
    <b class='flag-5'>視頻</b>技術(shù)之超高清(UHD)<b class='flag-5'>H.264</b><b class='flag-5'>視頻</b>編<b class='flag-5'>解碼</b>IP設(shè)計(jì)

    FFMPEG視頻解碼流程 H.264硬件編解碼實(shí)現(xiàn)

    本文闡述了基于FFMpeg的 H.264視頻 硬件編解碼在 S3C6410 處理器上的實(shí)現(xiàn)方法,為數(shù)字娛樂、視頻監(jiān)控和
    發(fā)表于 04-03 11:28 ?1.9w次閱讀
    FFMPEG<b class='flag-5'>視頻</b>編<b class='flag-5'>解碼</b>流程 <b class='flag-5'>H.264</b>硬件編<b class='flag-5'>解碼</b><b class='flag-5'>實(shí)現(xiàn)</b>

    H.264視頻解碼芯片中視頻控制器的設(shè)計(jì)

    的復(fù)雜性,系統(tǒng)對(duì)圖像解碼速度和功耗要求非常嚴(yán)格,因此,在設(shè)計(jì)解碼器時(shí)采用了H.264解碼專用芯片的設(shè)計(jì)方案。對(duì)一個(gè)大的設(shè)計(jì)項(xiàng)目,一般采用由頂
    發(fā)表于 01-20 15:57 ?511次閱讀

    H.264H.265視頻解碼器的區(qū)別

    H.264解碼H.265編解碼都是視頻編碼的格式。相比H.264,
    的頭像 發(fā)表于 01-16 17:30 ?1.4w次閱讀