《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > AVS編碼器中變換量化和掃描的FPGA設計
AVS編碼器中變換量化和掃描的FPGA設計
2014年電子技術應用第3期
楊洪敏,王祖強,徐 輝
(山東大學 信息科學與工程學院,山東 濟南250100)
摘要: 提出了一種適用于AVS高清視頻編碼的變換、量化和掃描的優化設計方案。通過對整數DCT變換算法的優化和對傳統Zig-Zag掃描方法的改進,節約了硬件資源和編碼時間。根據各模塊的運算關系合理地安排流水線結構,采用并行流水處理和復用技術,實現了高清視頻編碼變換、量化和掃描模塊的設計。在FPGA上進行驗證的結果表明,該設計滿足高清視頻實時編碼要求。
中圖分類號: TN919.8
文獻標識碼: A
文章編號: 0258-7998(2014)03-0041-04
中文引用格式:楊洪敏,王祖強,徐輝.AVS編碼器中變換量化和掃描的FPGA設計[J].電子技術應用,2014,40(03):41-44.
The design and implementation of transform quantization and scan for AVS encoder on FPGA
Yang Hongmin,Wang Zuqiang,Xu Hui
School of Information Science and Engineering, Shandong University, Jinan 250100,China
Abstract: Optimized hardware architecture of transform, quantization and scan for AVS HD video encoding is proposed. Hardware resources are saved by optimizing the algorithm of integer DCT transform module.The improvement of the traditional Zig-Zag scan algorithm saves the time of scanning. According to the arithmetic relationship of each module, pipeline structure is reasonably arranged and parallel pipeline process is used to achieve the design of transform, quantization and scan module in HD video encoding. The validated results on FPGA show that the design meets the requirement of real-time encoding of HD video sequence.
Key words : AVS HD video encoding;transform;quantization;Zig-Zag scan;FPGA

  AVS(Audio Video coding Standard)標準是由我國獨立制定的具有自主知識產權的視頻編碼標準[1],采用了與H.264類似的技術框架[2],但其編碼效率比國際標準MPEG-2高2~3倍,與H.264相當,但存儲要求和算法復雜度比H.264低,更便于硬件實現[3]。

  變換、量化和掃描在AVS視頻編碼過程中占有很重要的地位,它是AVS編碼中數據處理的中間部分,即將殘差數據經過變換、量化和掃描后傳到熵編碼部分,所以算法的優劣和實現架構對AVS視頻編碼器的性能有很大的影響。本文為了提高AVS視頻編碼器的處理速度,結合了國內外學者的設計思想提出了一種變換、量化與掃描模塊結構,在消耗邏輯資源允許的情況下提高了處理速度,達到了速度和面積的平衡。

  本文以實現1 080i、30 f/s格式視頻實時高清編碼為目標,結合AVS標準中變換、量化和掃描的特點,設計了一種高速并行流水線結構。通過對整數變換模塊內部結構的優化和一維整數變換模塊的復用,節省了硬件資源。量化和一維變換模塊內部均采用3級流水線處理。掃描模塊采用從首尾兩端同時開始掃描的方法,完成一個8×8塊的掃描僅需要33個時鐘周期,節約了掃描的時間。

1 整數變換和掃描算法分析

  1.1 整數變換

  早期的視頻編碼標準往往采用浮點DCT來去除視頻圖像的空間冗余,而浮點變換不適合在數字硬件環境中實現。在實際中,常采用整數近似的DCT代替浮點DCT來編碼視頻圖像,不僅可以保持浮點變換的編碼性能,而且能夠大大減少計算復雜度。但是整數DCT近似有可能出現編解碼器采用不同的DCT和IDCT的情況,這種情況會導致解碼圖像的誤差漂移[1]。為了避免這個問題,AVS采用8×8的二維整數變換,變換公式如下[1]:

  Y=T8 X T8T(1)

  其中,X為殘差系數矩陣,T8為8×8變換矩陣,有:

  J0YIIDXJ{(Y)LPB}Y5F_~~8.png

  可見,變換矩陣T8具有奇數行奇對稱和偶數行偶對稱的特性,這為后文整數變換模塊的優化提供了條件。

  1.2 掃描

  1976年,Tescher在他的自適應變換編碼方案中首次提出DCT系數的高效組織方式——Zig-Zag掃描。此掃描方式成為DCT系數高效熵編碼前所常用的預處理技術,并一直沿用至今。通常把掃描中遇到的非零系數記為level,一個非零系數前的連續零系數游程記為run[1]。掃描后的系數被組織成(run,level)對。傳統的Zig-Zag掃描從低頻系數開始逐個掃描,掃描一次需要64個時鐘周期,如圖1所示。

Image 001.jpg

  2 硬件結構

  系統工作頻率為100 MHz時,實現AVS高清1 920×1 088、30 f/s格式視頻的實時編碼,一個宏塊的處理時間為4 085 ns,即不超過408個時鐘周期,否則就不滿足高清編碼的要求。

Image 002.jpg

  本文提出了一種高效簡潔的變換、量化和掃描系統結構,硬件結構及數據流如圖2所示??刂颇K依據緩存寄存器組的狀態產生輸入殘差數據命令,每個周期讀入一列殘差數據。殘差數據經過變換后送入量化模塊進行量化。量化數據保存到緩存寄存器組,由掃描模塊控制并進行掃描,掃描模塊輸出(run,level)對。變換和量化模塊內部都采用流水線結構。

  2.1 變換模塊


Image 003.jpg

  變換模塊是將當前塊的殘差系數矩陣轉換為變換系數矩陣的一個過程,其結構框圖如圖3所示。此設計采用一維變換和轉置矩陣實現二維變換,與參考文獻[4]中的設計相比節約了硬件資源。參考文獻[5]中轉置操作由RAM實現,本文中轉置操作由8×8的寄存器組實現,避免了訪問RAM造成的延時,便于后續的并行流水線處理。參考文獻[6]中整數變換采用了蝶形算法,其缺點是需要對變換后的結果進行重排序。參考文獻[7]提出了一種快速有效的變換方法,但是資源消耗大。本文對整數變換的方法進行了優化,節約了不必要的硬件資源和時鐘。

  下面主要介紹一維整數變換過程。

  設AVS的一維整數變換的輸入、輸出變量分別為:

  X=[X0,X1,X2,X3,X4,X5,X6,X7](3)

  Y=[Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7](4)

  根據Y=T8×X,把8個輸出元素展開成以下組合,其中T8為8×8的變換矩陣:

  R0=X0+X7;R1=X1+X6;R2=X2+X5;R3=X3+X4;

  R4=X0-X7;R5=X1-X6;R6=X2-X5;R7=X3-X4。

  再定義12個中間變量M0~M11:

  M0=R0+R3;M1=R1+R2;M2=R0-R3;

  M3=R1-R2;M4=4R4+4R6;M5=9R5+2R7;

  M6=9R4-10R6;M7=2R5+6R7;M8=6R4+2R6;

  M9=9R7-10R5;M10=2R4+9R6;M11=4R5+4R7。

  其中所有的乘法均可化為移位操作,重新整理后得到輸出:

  Y0=8M0+8M1;Y1=M4+M5+M8;Y2=10M2+4M3;

  Y3=M6-M7;Y4=8M0-8M1;Y5=M8+M9;

  Y6=4M2-10M3;Y7=M10-M11-M7。

  由以上算法可以看出,一維變換模塊只需要移位和加法操作,既方便硬件實現,還節省了硬件資源。經計算,此一維變化模塊共需要40個加法器,比參考文獻[7]中的一維變換節省了加法器和移位器。

  設計中對變換采用流水線的處理方法[7],先進行列變換,然后進行行變換,單步變換為3級流水線結構。變換模塊中,第1時鐘周期進行并行讀取數據,第2、3個時鐘周期進行一維反變換,第4個時鐘周期開始向轉置矩陣中存入一維反變換后的數據,第12個時鐘周期開始讀取轉置矩陣中的數據,第14個時鐘周期開始輸出數據,第21個時鐘周期結果輸出完畢。

  2.2 量化

  量化模塊采用并行流水線進行設計,每個周期處理一行數據。該模塊采用了3級流水線,第一級流水線通過查表得到伸縮參數scalm和量化參數qp_tab;第二級流水線計算Y=(transcoeffscalm+218)>>19,其中,transcoeff為變換系數;第三級流水線計算quantcoeff=(Yqp_tab+214)>>15,其中,quantcoeff為量化系數。該模塊的結構框圖如圖4所示。

Image 004.jpg

  2.3 掃描

  經過整數變換和量化后,需要對變換后的系數進行Zig-Zag掃描。傳統掃描是將64個系數從首端開始逐個進行掃描,因此傳統掃描方法會占用大量的時鐘周期,降低了編碼的速度,不利于高清實時編碼。

Image 005.jpg

  本文改進了傳統的Zig-Zag掃描方法,對變換后的系數從首尾兩端同時開始掃描,節約了掃描的時間。其實現方法示意圖如圖5所示。首先,在量化后的系數矩陣的中間插入一個非零常數,然后從該系數矩陣的首尾兩端同時開始掃描,一共掃描33個周期。掃描路徑1統計非零系數前零的個數run0和非零系數值level0,掃描路徑2統計非零系數后零的個數run1和非零系數的值level1,并逐個輸(run0,level0)和(run1,level1)。最后,將第33個掃描周期輸出的run0和run1相加,并將結果賦給run1,即得到插入常數后面的第一個非零系數前零的個數,而插入常數后面的第一個非零系數的值為第33個掃描周期輸出的level1。至此掃描完成。

Image 006.jpg

  改進的掃描方法完成掃描過程只需要33個時鐘周期,比傳統的掃描方法節省31個時鐘周期。掃描模塊的結構框圖如圖6所示。與傳統的掃描方法相比,只增加了一個選擇器和加法器,卻節約了將近一半的掃描時間。

3 仿真綜合結果及分析


Image 007.jpg

  根據上述思想,采用Verilog HDL語言完成硬件的編寫,選用Altera公司的軟件Quartus II 11.0和ModelSim 6.6d進行了實現和仿真。部分仿真結果如圖7所示。從仿真圖中可以看出,本設計中第1~21個周期完成一個塊的變換,第17~24個周期完成量化,第25~26個周期進行掃描數據的準備,第27~59個周期完成數據的掃描并輸出掃描的結果,整個掃描過程只用了33個周期,各個模塊輸出結果正確,達到了預期的設計要求。本設計完成一個塊的變換、量化和掃描需要59個時鐘周期,因此,處理一個宏塊的時間為236個時鐘,滿足編碼要求。

Image 008.jpg

  本設計采用的FPGA為Altera公司的EP2C35F672C6。綜合占用的資源如圖8所示。由圖8可見,使用LE的總數為4 157個。綜合布局布線后的結果表明,該結構的最高頻率為120 MHz,滿足設計的要求。

  參考文獻

  [1] 高文,趙德斌,馬思偉.數字視頻編碼技術原理[M].北京:科學出版社,2010.

  [2] 李文軍,王祖強,徐輝,等.基于FPGA的AVS幀內預測電路設計[J].電子技術應用,2013,39(8):50-53.

  [3] AVS工作組.信息技術先進音視頻編碼:視頻[M].北京:中國標準出版社,2006.

  [4] 劉海鷹,張兆楊,沈禮權.基于FPGA的H.264變換量化的高性能的硬件實現[J].中國圖象圖形學報,2006,11(11):1636-1639.

  [5] 黃學超,張衛寧.AVS編碼變換量化和掃描硬件設計與實現[J].電氣電子教學學報,2011,33(2):34-37.

  [6] 白玉婷.AVS編碼器關鍵模塊的硬件設計[D].太原:太原理工大學,2012.

  [7] Wang Leirui,Zhang Zhaoyang,Teng Guowei,et al.Hardwareimplementation of transform and quantization for AVS encoder[C].ICALP 2008,2008:843-847.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
激情综合视频| 亚洲国产国产亚洲一二三| 久久久91精品国产| 亚洲午夜精品国产| 日韩亚洲视频| 亚洲成色精品| 午夜精品一区二区三区在线视| 日韩视频中文字幕| 亚洲国产视频一区二区| 尤物在线观看一区| 尤物精品在线| 国产在线观看91精品一区| 国产精品永久免费在线| 国产精品成人观看视频国产奇米| 欧美精品一区二区三区在线看午夜 | 亚洲国产一区二区视频 | 伊人狠狠色丁香综合尤物| 国产婷婷色一区二区三区四区| 国产精品卡一卡二| 国产精品乱子乱xxxx| 国产精品v欧美精品v日韩精品| 欧美日韩精品不卡| 欧美日韩美女| 欧美午夜理伦三级在线观看| 欧美三级午夜理伦三级中文幕 | 中国日韩欧美久久久久久久久| 99re热精品| 亚洲午夜电影网| 亚洲欧美成人一区二区三区| 亚洲欧美怡红院| 欧美一区二区精美| 久久精品一区二区三区四区| 久久久久久久久久久一区 | 国产精品久久久对白| 国产精品久久久久久久久久久久久久 | 欧美在线视频免费观看| 亚洲高清影视| 一区二区毛片| 亚洲欧美变态国产另类| 久久成人精品一区二区三区| 久久久久国产精品一区三寸| 久久综合国产精品| 欧美成人自拍| 欧美日韩在线直播| 国产精品久久一卡二卡| 国产亚洲观看| 1769国内精品视频在线播放| 亚洲精品偷拍| 亚洲在线免费观看| 亚洲国产精品嫩草影院| 一本久久a久久精品亚洲| 亚洲综合国产精品| 久久精品国产亚洲a| 免费不卡亚洲欧美| 欧美午夜无遮挡| 国产色综合久久| 亚洲黄色免费| 亚洲欧美日韩综合一区| 亚洲国产你懂的| 中文日韩在线| 久久精品动漫| 欧美大胆a视频| 欧美三级日本三级少妇99| 国产亚洲欧美日韩在线一区| 亚洲国产日韩一区| 亚洲综合色婷婷| 亚洲激情一区| 午夜一区二区三区在线观看| 六月婷婷久久| 欧美涩涩网站| 国产一区二区丝袜高跟鞋图片| 亚洲精品免费在线观看| 亚洲欧美另类在线观看| 亚洲国产精品国自产拍av秋霞| 亚洲视频在线观看三级| 久久嫩草精品久久久精品一| 欧美三级日韩三级国产三级| 激情综合网址| 亚洲欧美日韩国产综合在线| 亚洲免费观看高清在线观看 | 国产精品女主播一区二区三区| 伊人久久大香线蕉av超碰演员| 亚洲桃花岛网站| 亚洲精品日韩久久| 久久国产精品网站| 欧美日韩色一区| 精品动漫3d一区二区三区免费版 | 久久超碰97人人做人人爱| 欧美日韩不卡合集视频| 国语对白精品一区二区| 亚洲特级毛片| 99精品国产高清一区二区 | 欧美偷拍另类| 亚洲国产成人高清精品| 欧美一区二区三区在线视频| 亚洲夜晚福利在线观看| 欧美韩国一区| 国模精品一区二区三区| 亚洲午夜一区| 一区二区三区高清视频在线观看| 久久中文精品| 国产一区二区成人| 亚洲欧美日韩精品久久久久| 亚洲午夜视频在线| 欧美国产一区在线| 在线日韩电影| 久久精品一区二区三区四区 | 亚洲黄页视频免费观看| 久久精品国产一区二区三区| 欧美在线1区| 国产精品女人毛片| 在线视频中文亚洲| 夜夜嗨av色综合久久久综合网| 免播放器亚洲一区| 影音先锋国产精品| 亚洲国产成人在线播放| 久久久噜噜噜久久中文字幕色伊伊| 国产精品美女久久久久久2018| 99国产精品久久| 一卡二卡3卡四卡高清精品视频| 欧美成人激情在线| 亚洲国产成人av好男人在线观看| 亚洲国产精品久久久久| 久久影音先锋| 亚洲第一在线综合在线| 亚洲黄色大片| 奶水喷射视频一区| 亚洲国产日韩欧美一区二区三区| 亚洲精品小视频在线观看| 欧美成人官网二区| 亚洲激情婷婷| 欧美午夜久久| 99天天综合性| 中文精品99久久国产香蕉| 欧美日韩综合网| 一区二区国产精品| 亚洲欧美日韩第一区| 国产精品久久久久国产a级| 亚洲视频在线观看三级| 亚洲欧美日韩中文视频| 国产精品永久免费视频| 欧美一区二区免费视频| 久久久久久一区二区三区| 韩国一区二区三区在线观看| 久久精品国产99| 蜜桃视频一区| 亚洲精品社区| 亚洲欧美日韩国产| 国产专区一区| 亚洲欧洲日产国产网站| 欧美日韩123| 亚洲在线视频观看| 久久久国产精品亚洲一区 | 国内自拍视频一区二区三区| 亚洲国产视频一区| 欧美精品999| 在线一区二区日韩| 欧美一区二区三区在| 精品9999| 夜夜嗨av一区二区三区网页 | 国产精品日韩欧美| 欧美一区二区三区在线| 男女av一区三区二区色多| 亚洲九九精品| 午夜精品美女久久久久av福利| 国产色产综合色产在线视频| 亚洲人成亚洲人成在线观看图片| 欧美日韩国产色综合一二三四| 国产精品99久久久久久久女警| 欧美在线黄色| 亚洲高清自拍| 亚洲欧洲av一区二区| 国内偷自视频区视频综合| 一本大道久久精品懂色aⅴ| 国产女主播一区二区| 亚洲三级免费电影| 国产精品大片免费观看| 久久精品国产v日韩v亚洲 | 91久久在线播放| 午夜精品久久久久影视 | 午夜精品久久久久99热蜜桃导演| 激情91久久| 亚洲一区二区三区成人在线视频精品| 国产亚洲欧美另类中文| 一区二区毛片| 国产一区二区三区四区五区美女| 日韩视频精品| 国产亚洲午夜高清国产拍精品| 一区二区电影免费观看| 国产一区二区成人| 亚洲图中文字幕| 极品少妇一区二区| 午夜国产欧美理论在线播放| 亚洲成人在线网站| 欧美一区二区三区喷汁尤物| 亚洲国产视频直播| 久久久亚洲一区| 亚洲午夜电影在线观看| 欧美成人免费一级人片100| 午夜精品亚洲|