新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA NiosII的MPEG-4視頻播放器設計

        基于FPGA NiosII的MPEG-4視頻播放器設計

        作者: 時間:2012-05-17 來源:網絡 收藏

        AC系數的反量化要用到兩個加權矩陣,分別用于內部子塊和非內部子塊。用戶也可以使用自定義的量化矩陣。如果用QDCT表示輸入已量化的AC系數,用DCT表示反量化后的AC系數,那么AC系數的IQ變換公式如下:

        式中,quantiser_scale為0~112之間的兩組數值,分別對應不同的比特流控制狀態。但是在本系統采用的XviDCodec版本中,比特流控制功能并沒有得到實現,所以這里quantiser_scale的取值固定。

        反量化得到的結果通過飽和化,使其限制在[-2048,+2047]之間。

        IQ在FPGA上按照圖3的框圖進行硬件實現。



        2.1.2 反離散余弦變換

        IDCT是DCT的逆過程,用于還原DCT系數矩陣。

        IDCT過程可由下面的公式描述:

        將8元的輸入向量[X0,X1,X2,X3,X4,X5,X6,X7]分成奇元素[X1,X3,X5,X7]和偶元素[Xo,X2,X4,X6],8×8矩陣則用2個4×4矩陣來代替,奇元素和偶元素分別與這2個矩陣v和u相乘,生成2個4×4向量p和q,通過加減向量p和q,可得到輸出向量x。

        算法可以表示成下面的公式:

        基于8×8矩陣的IDCT算法,在FPGA上按照圖4所示的結構加以硬件實現。

        2.1.3 運動補償

        運動補償是一種大量、單調的運算。為了能實現運動補償,采用了多級、多個運算單元并行流水運算的方式,如圖5所示。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阳原县| 稻城县| 化隆| 罗甸县| 松滋市| 当雄县| 苏尼特左旗| 尚义县| 白河县| 台东市| 黄大仙区| 哈密市| 韶山市| 锡林浩特市| 两当县| 夏津县| 陇川县| 通河县| 洪雅县| 大港区| 潜江市| 馆陶县| 丹阳市| 新乡市| 江北区| 崇信县| 平和县| 马山县| 海南省| 望城县| 泰和县| 清新县| 东安县| 仪陇县| 平原县| 安庆市| 宁夏| 海晏县| 巴青县| 太湖县| 昌江|