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

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

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

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-08-01 08:04 ? 次閱讀

引 言

H.264高效的編碼效率是以其高復(fù)雜性為代價(jià)的,因此制約了它在高分辨率、實(shí)時(shí)處理等方面的應(yīng)用。而FPGA器件采用流水控制策略和并行處理方式,可為H.264復(fù)雜的編碼模塊提供硬件加速引擎。變換量化模塊在H.264編碼算法中被頻繁調(diào)用。因此研究在盡量合理控制其資源消耗的前提下,提高變換量化模塊的工作頻率及處理數(shù)據(jù)的吞吐量,并完成變換量化一系列完整功能的變換量化結(jié)構(gòu)具有重要的實(shí)際意義,也成為當(dāng)前研究的首要問(wèn)題。H.264.變換是基于DCT的,其全部采用整數(shù)DCT變換,這樣就避免了正變換和反變換的失配問(wèn)題,既不丟失解碼精度,也適合于FPGA硬件實(shí)現(xiàn)。

1 算法原理及分析

1.1 變換算法及分析

H.264變換是整數(shù)DCT變換,該算法實(shí)現(xiàn)了編碼端和解碼端反變換之間的零匹配,從而減少了解碼精度的丟失。通常H.264變換編碼以4×4塊為單位,核心變換矩陣如下:

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

當(dāng)核心變換矩陣中a=1時(shí),為DCT正向變換矩陣Cf,;若將DCT正向變換矩陣Cf,中所有的2變?yōu)?,并保持所有符號(hào)不變,則變成Hadamard變換矩陣Hi;若將以上矩陣中所有的2變?yōu)?,并使a=1/2,保持所有符號(hào)不變,則為DCT反向變換矩陣CTi。

1.2 量化算法及分析

H.264的分級(jí)標(biāo)量量化器支持多達(dá)52個(gè)量化步長(zhǎng)Qstep,用量化參數(shù)QP進(jìn)行索引。范圍廣闊的量化步長(zhǎng)能夠靈活準(zhǔn)確地控制比特速率和質(zhì)量之間的平衡。

在整數(shù)算法中,量化過(guò)程可以用以下運(yùn)算來(lái)實(shí)現(xiàn):

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

式中:W為殘差系數(shù);》》表示二進(jìn)制右移;幀內(nèi)塊和幀間塊f分別為2qbits/3,2qbits/6;MF為乘法因子,其值可根據(jù)W(i,j)在矩陣中不同的位置和量化參數(shù)QP的不同,查乘法因子表得到。

系數(shù)z的反量化方式如下:

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

式中:尺度因子V可根據(jù)Z(i,j)在矩陣中不同的位置和量化參數(shù)QP的不同,查尺度因子表得到。

2 FPGA硬件設(shè)計(jì)及實(shí)現(xiàn)

2.1 變換量化硬件整體結(jié)構(gòu)

在H.264編碼器中經(jīng)過(guò)預(yù)測(cè)后得到的殘差數(shù)據(jù)經(jīng)過(guò)變換T、量化Q后的數(shù)據(jù)分為兩路:一路經(jīng)過(guò)重排序Recoder后用于熵編碼;另一路為重建通路,經(jīng)過(guò)反量化Q-1、反變換T-1后與預(yù)測(cè)值P相加得到重建值,用于后面的宏塊的預(yù)測(cè)編碼。

H.264編碼標(biāo)準(zhǔn)中,在幀內(nèi)預(yù)測(cè)方式下,首先對(duì)16×16宏塊(亮度分量)的16個(gè)4×4塊進(jìn)行DCT變換,然后提取出DC系數(shù)組成一個(gè)4×4 DC塊;對(duì)于這個(gè)4×4 Dc塊要先進(jìn)行Hadamard變換,然后量化。在重建通路中需要注意:對(duì)于4×4 DC塊,要先進(jìn)行反Hadamard變換,再進(jìn)行反量化,目的是使反變換的動(dòng)態(tài)范圍最大;再依據(jù)這個(gè)4×4 DC塊中16個(gè)數(shù)值對(duì)反量化后的16×16宏塊進(jìn)行反DCT變換。對(duì)于色度分量的DC系數(shù)也是一樣需要經(jīng)過(guò)進(jìn)一步變換。H.264變換量化整體結(jié)構(gòu)主要分為4大模塊,其框圖如圖1所示。

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

結(jié)構(gòu)框圖中DC_reg是一組用于存儲(chǔ)所有的DC系數(shù)值的寄存器,使用兩個(gè)同步FIFO存儲(chǔ)反量化后的AC系數(shù),等待DC系數(shù)反變換反量化完畢以后,再一起送人最后的反DCT變換模塊中進(jìn)行處理。兩個(gè)同步FIFO在時(shí)鐘控制下先后進(jìn)行寫(xiě)操作,其中一個(gè)存儲(chǔ)4×4塊反量化輸出的其中兩行數(shù)據(jù),另一個(gè)在下一時(shí)鐘存儲(chǔ)這個(gè)4×4塊反量化輸出的另兩行數(shù)據(jù)。讀取時(shí),則同時(shí)對(duì)兩個(gè)FIFO進(jìn)行讀操作,即一個(gè)時(shí)鐘內(nèi)這個(gè)4×4塊的反量化后的全部16個(gè)數(shù)值同時(shí)出現(xiàn)在反變換模塊的輸入端。

2.2 變換模塊(DCT/Hadamard變換)及反變換模塊

iDCT/iHadamard反變換)設(shè)計(jì)由DCT變換矩陣可以推導(dǎo)得出:

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

同樣:Y01~Y03以及Y20~Y23也可將式(5)展開(kāi)得到。同理可得:

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

由前述的變換算法分析可知,Hadamard變換和DCT變換的核心變換矩陣只存在是否乘以2的差別,因此將式(5)和(7)中的cr換成Hi,且2變?yōu)?,由此可得到Hadamard變換。

在實(shí)際的硬件電路中,乘以2和除以2的操作都可以通過(guò)移位來(lái)實(shí)現(xiàn)。此外,DCT正向變換與Hadamard變換在整個(gè)變換過(guò)程中不是同時(shí)進(jìn)行操作,因此將 DCT正向變換與Hadamard變換結(jié)合到一起,并分時(shí)復(fù)用,以是否乘2來(lái)區(qū)分當(dāng)前是哪種變換。同時(shí)采用16個(gè)殘差數(shù)據(jù)同時(shí)輸入,輸出8位變換數(shù)據(jù),每 2個(gè)時(shí)鐘輸出一個(gè)4×4塊的變換結(jié)果。這樣既充分利用了硬件資源,又能一次性處理一個(gè)4×4殘差塊的全部16個(gè)數(shù)據(jù),確保了效率。DCT變換和 Hadamard變換的核心變換均可用快速蝶形算法實(shí)現(xiàn),如圖2所示。

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

對(duì)iDCT反向變換和iHadamard反變換的核心變換進(jìn)行分析,原理與上述相似。

2.3 量化及反量化模塊設(shè)計(jì)

整個(gè)量化及反量化模塊全部采用乘法器、加法器和移位操作來(lái)實(shí)現(xiàn),并采用FPGA內(nèi)部的兩個(gè)ROM來(lái)分別存放正反量化的乘法因子MF和尺度因子V。

由于變換模塊輸出是8位,因此量化模塊采用8數(shù)據(jù)輸入,每2個(gè)時(shí)鐘輸出一個(gè)4×4塊的量化結(jié)果。反量化模塊也是采用8數(shù)據(jù)輸入,且每2個(gè)時(shí)鐘輸出一個(gè)4×4塊的反量化結(jié)果。

3 時(shí)序分析及硬件調(diào)試驗(yàn)證

該結(jié)構(gòu)設(shè)計(jì)全部采用VHDL編寫(xiě)程序,使用ISE環(huán)境下的XST進(jìn)行綜合,綜合頻率達(dá)到112 MHz。該設(shè)計(jì)采用的FPGA是Xilinx公司生產(chǎn)的XC2V1500,并使用在線邏輯分析儀Chipscope來(lái)觀察量化輸出數(shù)據(jù) (quant_out_i)和反變換后的殘差輸出數(shù)據(jù)(inv_dct_i);圖3所示為反變換后的殘差輸出數(shù)據(jù)(inv_dct_i)。輸入數(shù)據(jù)采用數(shù)值相同的4×4塊,因此輸出數(shù)據(jù)也完全相同。波形顯示:每次輸出8個(gè)數(shù)據(jù);對(duì)于一個(gè)宏塊的16個(gè)亮度4×4塊進(jìn)行處理時(shí),可在45個(gè)時(shí)鐘內(nèi)完成變換量化 (包括AC/DC)用于編碼,在91個(gè)時(shí)鐘內(nèi)完成變換量化反變換反量化一系列操作得到用于重建的殘差,在236個(gè)時(shí)鐘內(nèi)完成對(duì)一個(gè)宏塊的殘差數(shù)據(jù)從輸入到反變換輸出重建值的完整過(guò)程。

基于FPGA硬件實(shí)現(xiàn)H.264變換量化整體結(jié)構(gòu)的設(shè)計(jì)方案

4 結(jié) 語(yǔ)

提出的這種H.264變換量化結(jié)構(gòu)完全基于FPGA實(shí)現(xiàn),每一個(gè)時(shí)鐘輸出8個(gè)數(shù)據(jù),每2個(gè)時(shí)鐘得出對(duì)一個(gè)4×4塊處理的最終結(jié)果。一方面采用流水線操作,對(duì)16個(gè)數(shù)據(jù)并行處理提高了數(shù)據(jù)的處理速度,另一方面分時(shí)復(fù)用技術(shù)又在一定程度上節(jié)省了硬件資源。相比文獻(xiàn)中只實(shí)現(xiàn)了部分功能,本文實(shí)現(xiàn)了從殘差輸入經(jīng)變換量化、反變換反量化得到用于重建的殘差值這一系列完整的操作,并保證了在一定的數(shù)據(jù)處理速度下對(duì)資源的優(yōu)化處理,適合用于H.264.編碼器硬件加速。


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

    關(guān)注

    1640

    文章

    21899

    瀏覽量

    611402
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    819

    瀏覽量

    129307
  • 效率
    +關(guān)注

    關(guān)注

    0

    文章

    151

    瀏覽量

    20312
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    H.264碼流結(jié)構(gòu)pdf

    H.264碼流結(jié)構(gòu)pdfH.263的碼流結(jié)構(gòu)H.263定義的碼流結(jié)構(gòu)是分級(jí)結(jié)構(gòu),共四層。自上而下
    發(fā)表于 06-25 10:26

    針對(duì)硬件實(shí)現(xiàn)h.264視頻編碼算法改進(jìn)

    針對(duì)硬件實(shí)現(xiàn)h.264視頻編碼算法改進(jìn)針對(duì)硬件實(shí)現(xiàn)的視頻編碼算法改進(jìn)上海交通大學(xué)圖像通信與信息處理研究所 周怡吳昊方向忠摘要’ 從
    發(fā)表于 06-25 11:35

    基于Blackfin533的H.264編碼

    在一起;另一方面這樣可以在寄存器中一起完成變換、量化,有助于減少數(shù)據(jù)的存儲(chǔ)次數(shù)和讀取時(shí)間。對(duì)于反量化、整系數(shù)逆變換,采用相似的設(shè)計(jì)思路。   數(shù)據(jù)結(jié)
    發(fā)表于 07-13 17:12

    如何利用PLB總線和FPGA技術(shù)對(duì)H.264整數(shù)變換量化軟核實(shí)現(xiàn)優(yōu)化設(shè)計(jì)?

    求一款基于PLB總線的H.264整數(shù)變換量化軟核的設(shè)計(jì)方案?
    發(fā)表于 04-08 06:46

    請(qǐng)問(wèn)怎樣實(shí)現(xiàn)H.264量化?

    量化的功能有哪些?量化的算法是什么?怎樣用Verilog語(yǔ)言實(shí)現(xiàn)H.264量化?如何運(yùn)用Modelsim對(duì)
    發(fā)表于 04-28 06:12

    分享一款不錯(cuò)的一種基于FPGA高性能H.264變換量化結(jié)構(gòu)設(shè)計(jì)

    分享一款不錯(cuò)的一種基于FPGA高性能H.264變換量化結(jié)構(gòu)設(shè)計(jì)
    發(fā)表于 05-08 07:56

    分享一款不錯(cuò)的基于H.264的高清數(shù)字視頻整體解決方案

    如何走出傳統(tǒng)監(jiān)控的困境?基于H.264的高清數(shù)字視頻整體解決方案
    發(fā)表于 06-03 06:10

    基于H.264量化IP的硬件實(shí)現(xiàn)

    本文提出了基于H.264的逆量化IP的優(yōu)化結(jié)構(gòu)及其硬件實(shí)現(xiàn)。它能夠按照標(biāo)準(zhǔn)處理各種4×4塊的逆量化
    發(fā)表于 02-24 11:51 ?10次下載

    針對(duì)硬件實(shí)現(xiàn)H.264視頻編碼算法改進(jìn)

    摘要:從硬件實(shí)現(xiàn)的角度分析了H.264算法,重點(diǎn)研究了占用最多運(yùn)算時(shí)間的預(yù)測(cè)部分的優(yōu)化,給出了對(duì)幀內(nèi)預(yù)測(cè)、哈達(dá)馬變換以及運(yùn)動(dòng)估計(jì)算法的改進(jìn),通過(guò)簡(jiǎn)化運(yùn)算復(fù)雜、
    發(fā)表于 03-24 13:29 ?753次閱讀
    針對(duì)<b class='flag-5'>硬件</b><b class='flag-5'>實(shí)現(xiàn)</b>的<b class='flag-5'>H.264</b>視頻編碼算法改進(jìn)

    H.264/AVC中量化的Verilog方法介紹及實(shí)現(xiàn)

    H.264/AVC中量化的Verilog方法介紹及實(shí)現(xiàn) 0  引  言   H.264作為新一代的視頻壓縮標(biāo)準(zhǔn),是由ITU-T的視頻編碼專(zhuān)家組和ISO/IEC
    發(fā)表于 11-12 10:08 ?1153次閱讀
    <b class='flag-5'>H.264</b>/AVC中<b class='flag-5'>量化</b>的Verilog方法介紹及<b class='flag-5'>實(shí)現(xiàn)</b>

    H.264_AVC視頻編碼變換量化實(shí)現(xiàn)

    本文主要研究H.264/AVC編碼模塊中的4×4整數(shù)變換量化核,提出硬件實(shí)現(xiàn)的優(yōu)化方法。
    發(fā)表于 02-08 11:07 ?1844次閱讀
    <b class='flag-5'>H.264</b>_AVC視頻編碼<b class='flag-5'>變換</b><b class='flag-5'>量化</b>核<b class='flag-5'>實(shí)現(xiàn)</b>

    基于FPGAH.264 DCT算法的硬件實(shí)現(xiàn)

    二維離散余弦(DCT)在H.264視頻編碼中承擔(dān)者信號(hào)從時(shí)域到頻域變換的作用。在現(xiàn)場(chǎng)可編程邏輯門(mén)陣列(FPGA)上設(shè)計(jì)了高效的采用流水線結(jié)構(gòu)H.2
    發(fā)表于 07-31 15:26 ?6137次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>H.264</b> DCT算法的<b class='flag-5'>硬件</b><b class='flag-5'>實(shí)現(xiàn)</b>

    針對(duì)DSP、ASIC與FPGA三種產(chǎn)品平臺(tái)的H.264編碼器方案

    目前的視頻監(jiān)控行業(yè),基于DSP的H.264編碼器解決方案占有絕對(duì)優(yōu)勢(shì)的市場(chǎng)份額,這是由DSP方案開(kāi)發(fā)周期相對(duì)較短的特性決定的。在ASIC或FPGA
    的頭像 發(fā)表于 10-29 08:21 ?1.3w次閱讀

    利用PLB總線和FPGA技術(shù)對(duì)H.264整數(shù)變換量化軟核實(shí)現(xiàn)優(yōu)化設(shè)計(jì)

    H.264以其高復(fù)雜度為代價(jià)獲得了優(yōu)異的編碼效率, 其中除部分控制流程的復(fù)雜模塊外,H.264中的很多模塊適合用硬件實(shí)現(xiàn)。應(yīng)用中通常使用CPU+FP
    的頭像 發(fā)表于 09-24 07:58 ?2778次閱讀

    基于FPGA等的H.264碼流實(shí)時(shí)傳輸方案

    基于FPGA等的H.264碼流實(shí)時(shí)傳輸方案
    發(fā)表于 06-19 15:07 ?22次下載