精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

基于FPGA硬件實現H.264變換量化整體結構的設計方案

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-08-01 08:04 ? 次閱讀

引 言

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

1 算法原理及分析

1.1 變換算法及分析

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

基于FPGA硬件實現H.264變換量化整體結構的設計方案

當核心變換矩陣中a=1時,為DCT正向變換矩陣Cf,;若將DCT正向變換矩陣Cf,中所有的2變為1,并保持所有符號不變,則變成Hadamard變換矩陣Hi;若將以上矩陣中所有的2變為1,并使a=1/2,保持所有符號不變,則為DCT反向變換矩陣CTi

1.2 量化算法及分析

H.264的分級標量量化器支持多達52個量化步長Qstep,用量化參數QP進行索引。范圍廣闊的量化步長能夠靈活準確地控制比特速率和質量之間的平衡。

在整數算法中,量化過程可以用以下運算來實現:

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

系數z的反量化方式如下:

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

2 FPGA硬件設計及實現

2.1 變換量化硬件整體結構

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

H.264編碼標準中,在幀內預測方式下,首先對16×16宏塊(亮度分量)的16個4×4塊進行DCT變換,然后提取出DC系數組成一個4×4 DC塊;對于這個4×4 Dc塊要先進行Hadamard變換,然后量化。在重建通路中需要注意:對于4×4 DC塊,要先進行反Hadamard變換,再進行反量化,目的是使反變換的動態范圍最大;再依據這個4×4 DC塊中16個數值對反量化后的16×16宏塊進行反DCT變換。對于色度分量的DC系數也是一樣需要經過進一步變換。H.264變換量化整體結構主要分為4大模塊,其框圖如圖1所示。

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

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

iDCT/iHadamard反變換)設計由DCT變換矩陣可以推導得出:

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

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

基于FPGA硬件實現H.264變換量化整體結構的設計方案

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

2.3 量化及反量化模塊設計

整個量化及反量化模塊全部采用乘法器、加法器和移位操作來實現,并采用FPGA內部的兩個ROM來分別存放正反量化的乘法因子MF和尺度因子V。

由于變換模塊輸出是8位,因此量化模塊采用8數據輸入,每2個時鐘輸出一個4×4塊的量化結果。反量化模塊也是采用8數據輸入,且每2個時鐘輸出一個4×4塊的反量化結果。

3 時序分析及硬件調試驗證

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

基于FPGA硬件實現H.264變換量化整體結構的設計方案

4 結 語

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


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

    關注

    1626

    文章

    21678

    瀏覽量

    602037
  • vhdl
    +關注

    關注

    30

    文章

    816

    瀏覽量

    128082
  • 效率
    +關注

    關注

    0

    文章

    148

    瀏覽量

    20041
收藏 人收藏

    評論

    相關推薦

    H.264碼流結構pdf

    H.264碼流結構pdfH.263的碼流結構H.263定義的碼流結構是分級結構,共四層。自上而下
    發表于 06-25 10:26

    針對硬件實現h.264視頻編碼算法改進

    針對硬件實現h.264視頻編碼算法改進針對硬件實現的視頻編碼算法改進上海交通大學圖像通信與信息處理研究所 周怡吳昊方向忠摘要’ 從
    發表于 06-25 11:35

    基于Blackfin533的H.264編碼

    在一起;另一方面這樣可以在寄存器中一起完成變換量化,有助于減少數據的存儲次數和讀取時間。對于反量化、整系數逆變換,采用相似的設計思路。   數據
    發表于 07-13 17:12

    如何利用PLB總線和FPGA技術對H.264整數變換量化軟核實現優化設計?

    求一款基于PLB總線的H.264整數變換量化軟核的設計方案
    發表于 04-08 06:46

    請問怎樣實現H.264量化

    量化的功能有哪些?量化的算法是什么?怎樣用Verilog語言實現H.264量化?如何運用Modelsim對
    發表于 04-28 06:12

    分享一款不錯的一種基于FPGA高性能H.264變換量化結構設計

    分享一款不錯的一種基于FPGA高性能H.264變換量化結構設計
    發表于 05-08 07:56

    h.264碼流結構/H.263的碼流結構

    H.264的碼流結構H.264的碼流結構H.263的有很大的區別,它采用的不再是嚴格的分級結構
    發表于 08-19 13:46 ?59次下載
    <b class='flag-5'>h.264</b>碼流<b class='flag-5'>結構</b>/<b class='flag-5'>H</b>.263的碼流<b class='flag-5'>結構</b>

    基于H.264量化IP的硬件實現

    本文提出了基于H.264的逆量化IP的優化結構及其硬件實現。它能夠按照標準處理各種4×4塊的逆量化
    發表于 02-24 11:51 ?10次下載

    針對硬件實現H.264視頻編碼算法改進

    摘要:從硬件實現的角度分析了H.264算法,重點研究了占用最多運算時間的預測部分的優化,給出了對幀內預測、哈達馬變換以及運動估計算法的改進,通過簡化運算復雜、
    發表于 03-24 13:29 ?703次閱讀
    針對<b class='flag-5'>硬件</b><b class='flag-5'>實現</b>的<b class='flag-5'>H.264</b>視頻編碼算法改進

    H.264/AVC中量化的Verilog方法介紹及實現

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

    H.264_AVC視頻編碼變換量化實現

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

    基于FPGAH.264 DCT算法的硬件實現

    二維離散余弦(DCT)在H.264視頻編碼中承擔者信號從時域到頻域變換的作用。在現場可編程邏輯門陣列(FPGA)上設計了高效的采用流水線結構H.2
    發表于 07-31 15:26 ?5834次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>H.264</b> DCT算法的<b class='flag-5'>硬件</b><b class='flag-5'>實現</b>

    針對DSP、ASIC與FPGA三種產品平臺的H.264編碼器方案

    目前的視頻監控行業,基于DSP的H.264編碼器解決方案占有絕對優勢的市場份額,這是由DSP方案開發周期相對較短的特性決定的。在ASIC或FPGA
    的頭像 發表于 10-29 08:21 ?1.3w次閱讀

    利用PLB總線和FPGA技術對H.264整數變換量化軟核實現優化設計

    H.264以其高復雜度為代價獲得了優異的編碼效率, 其中除部分控制流程的復雜模塊外,H.264中的很多模塊適合用硬件實現。應用中通常使用CPU+FP
    的頭像 發表于 09-24 07:58 ?2518次閱讀

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

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