研究生: |
陳建文 Chen, Jian-Wen |
---|---|
論文名稱: |
一個針對全文自適應二進位算術編碼解碼器的高效能全硬體化設計研究 A High-Performance Fully Hardwired Architecture Design for Context-Based Adaptive Binary Arithmetic Codec |
指導教授: |
林永隆
Lin, Youn-Long |
口試委員: |
林永隆
張添烜 蔣迪豪 林嘉文 王家祥 |
學位類別: |
博士 Doctor |
系所名稱: |
電機資訊學院 - 資訊工程學系 Computer Science |
論文出版年: | 2011 |
畢業學年度: | 99 |
語文別: | 英文 |
論文頁數: | 82 |
中文關鍵詞: | 影像壓縮 、全文自適應二進位算術編碼 、硬體架構設計 、超高解析度影像 、管線化二進位算術編碼器 、二位元子二進位算術解碼器 |
外文關鍵詞: | H.264/AVC, CABAC, Hardware architecture design, ultra high resolution video, pipelined binary arithmetic encoder, Two-Bin binary arithmetic encoder |
相關次數: | 點閱:4 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
H.264/AVC 的主規格中使用全文自適應二進位算術編碼(CABAC)以獲取較高的壓縮比,但和傳統的可變長度編碼來比,需要較多的計算運算量,而且受限於位元運算間的高度相依性,因此為了能處理超高解析度的影像例如QFHD(3840x2160),只對部分的運算作硬體化的加速是沒辦法達到及時運算的要求,因此需要對CABAC做全硬體化的實現。
在對要處理的影像資料單元(syntax element)和影像資料單元內的位元子(bin)作分佈的分析後,我們發現係數方塊(coefficient block)內的影像資料單元(syntax element)及移動向量差(MVD)的影像資料單元佔最多位元子(bin),因此在我們所實現的CABAC架構必須能有效率的處理這些影像資料單元(syntax element),之後我們又分析CABAC演算法中資料的相依性,我們結論出在二進位算術編碼器(BAE)適合用管線(pipeline) 架構,二進位算術解碼器(BAD)則不適用。
在全文自適應二進位算術編碼器中,我們設計了六級管線化(pipeline)架構的二進位算術編碼器(BAE),此二進位算術編碼器(BAE)最多每個週期可處理八個位元子(bin),為了跟的上二進位算術編碼器(BAE)的處理能力,我們提出了許多加速處理能力的方法來加速產生位元子(bin)和位元子(bin)相對應的全文模型值(context index),此外我們又提出一個新奇的架構來縮短再正規化變數值(renormalization)和產出位元串時電路的最長路徑,經過實驗分析後,我們的設計每個週期可對1.33個位元子(bin)作編碼,因此每秒可處理295百萬位元子(bin),當跑在222 MHz的工作頻率時我們設計的效能可以及時處理每秒30張QFHD(3840x2160)的影像,故而我們的設計可支援到H.264/AVC主規格的程級5.1,我們現在也順利地將所設計的CABAC編碼器整合到我們的H.264/AVC編碼系統之中。
在全文自適應二進位算術解碼器中,我們提出了一個高效能的二進位算術解碼器(BAD),針對較常出現的影像資料單元(syntax element)此解碼器每個週期可處理兩個位元子(bin),為了增加此解碼器(BAD)的使用率,我們又提出一個有效的預測方法來預測第二個位元子(bin)的型態,此外透過重新安排全文模型記憶體(context memory)的資料編排方式來減短解碼器(BAD)電路的最長路徑,經過實驗分析後,我們的設計每個週期可對1.25個位元子(bin)作解碼,當跑在238 MHz的工作頻率時他的效能足以及時處理每秒30張QFHD(3840x2160)的影像,故而我們的設計可支援到H.264/AVC主規格的程級5.1,我們現在也順利地將所設計的CABAC解碼器整合到我們的H.264/AVC解碼系統之中。
Context-based Adaptive Binary Arithmetic Coding (CABAC) adopted by H.264/AVC main profile achieves high compression ratio in comparison with a traditional variable-length coding. However, it incurs high computational complexity and its throughput is limited by bit-level data dependency. Moreover, for ultra high resolution applications, e.g. QFHD (3840×2160), a partially hardwired architecture cannot meet the real-time requirement. Therefore, it is necessary to implement the CABAC function in a fully hardwired architecture.
After analyzing the syntax elements (SE) distribution and the bin distribution of different types of SEs, we found that bins of coefficient block SEs and motion vector difference (MVD) SEs account for most of the bins. Therefore, we realized that our design must process these SEs efficiently. Furthermore, by analyzing the data dependency of CABAC algorithm, we concluded that a pipelined architecture is suitable for the binary arithmetic encoder (BAE), but not for the binary arithmetic decoder (BAD).
For the CABAC encoder, we designed a six-stage pipelined BAE which can encode up to eight bins per cycle. In order to keep up with the BAE throughput, we propose several acceleration methods to speed up the generation of bins and context indices. We further propose a novel architecture that shortens the critical path of renormalization and bit-stream generation. Simulation results show that our design can encode 1.33 bins per cycle, and it achieves a throughput of 295 Mbin/sec. It can real-time encode QFHD (3840×2160) video at 30fps for H.264/AVC main profile, level 5.1 when running at 222 MHz. We have successfully integrated the proposed CABAC encoder into an H.264/AVC encoder system.
For the CABAC decoder, we propose a Two-Bin BAD engine to generate two bins in one cycle for the frequent SEs. In order to boost the BAD utilization, we propose a prediction method to enhance the prediction accuracy of the second bin. Furthermore, we reallocate the context memory to shorten the critical path delay of the Two-Bin BAD circuit. Experimental results show that our CABAC decoder can generate 1.25 bins per cycle. Its throughput is capable of real-time decoding QFHD video for H.264/AVC main profile, level 5.1 when running at 238 MHz. We have successfully integrated the proposed CABAC decoder into an H.264/AVC decoder system.
[1] Joint Video Team of ISO/IDC MPEG and ITU-T VCEG. “Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC)”
[2] JM H.264/AVC Reference Software version 11.0 [Online] Available
http://iphome.hhi.de/suehring/tml
[3] JM H.264/AVC Reference Software version 8.3 [Online] Available
http://iphome.hhi.de/suehring/tml
[4] D. Marpe, H. Schwarz, and T. Wiegand, “Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard,” in IEEE Transactions on Circuits and Systems for Video Technology, pp. 620-636, July. 2003.
[5] K. Sayood, Introduction to Data Compression. San Francisco: Morgan-Kaufmann, 2006.
[6] H. Shojania, and S. Sudharsanan, “A High Performance CABAC Encoder”, IEEE International Northeast Workshop on Circuits and Systems, pp. 315-318, June 2005.
[7] C. C. Lo, Y. J. Zeng, and M. D. Shieh, “Design and Test of a High Throughput CABAC Encoder,” IEEE International Technical Conference of IEEE Region 10, pp. 1-4, October 2007.
[8] Y. J. Chen, C. H. Tsai, and L. G. Chen, “Architecture Design of Area-efficient SRAM-based Multi-bin Arithmetic Encoder in H.264/AVC,” IEEE International Symposium on Circuits and Systems, pp. 2621-2624, May 2006.
[9] J. L. Chen, Y. K Lin, and T. S. Chang, “A Low Cost Context Adaptive Arithmetic Coder for H.264/MPEG-4 AVC Video Coding,” IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 105-108, April 2007..
[10] P. S. Liu, J. W. Chen, and Y. L. Lin, “A Hardwired Context-based Adaptive Binary Arithmetic Encoder for H.264 Advanced Video Coding,” IEEE International Symposium on VLSI Design, Automation, and Test, pp. 1-4, April 2007.
[11] R. R. Osorio and J. D. Bruguera, “High-throughput Architecture for H.264/AVC CABAC Compression System,” IEEE Transactions on Circuits and Systems for Video Technology, pp. 1376-1384, November 2006
[12] X. H. Tian, T. M. Le, B. L. Ho, Y. Lian, “A CABAC encoder design of H.264/AVC with RDO support” IEEE/IFIP International Workshop on Rapid System Prototyping, pp. 167-173, May 2007.
[13] X. H. Tian, T. M. Le, X. Jiang, Y. Lian, “A HW CABAC Encoder with Efficient Context Access Scheme for H.264/AVC,” IEEE International Symposium on Circuits and Systems, pp37-40, May 2008.
[14] M. Li, and W. C. Wu, “A High Throughput Binary Arithmetic Coding Engine for H.264/AVC” International Conference on Solid-State and Integrated Circuit Technology, pp.33-36, April 2006.
[15] L. Li, Y. Song, T. Ikenaga, and S. Goto, “A CABAC Encoding Core with Dynamic Pipeline for H.264/AVC Main Profile,” IEEE Asia Pacific Conference on Circuits and System, pp. 760-763, July 2006.
[16] Y. J. Chen, C. H. Tsai, and L. G. Chen, “Analysis and Architecture Design for Multi-bin Arithmetic Encoder in H.264/AVC,” VLSI Design/CAD Symposium, pp.13-16, August 2005.
[17] Y. J. Chen, C. H. Tsai, and L. G. Chen, “Novel Configurable Architecture of ML-decomposed Binary Arithmetic Encoder for Multimedia Applications,” IEEE International Symposium on VLSI Design, Automation, and Test, pp. 1-4, April 2007.
[18] V. H. HA, W. S. Shim, and J. W. Kim, “Real-time MPEG-4 AVC/H.264 CABAC Entropy Coder,” IEEE International Conference on Consumer Electronics, pp. 255–256, January 2005.
[19] W. Zheng, D. X. Li, B. Shi, H. S. Le, and M. Zhang, “Efficient Pipelined CABAC Encoding Architecture,” IEEE Transactions on Consumer Electronics, pp. 681-686, October 2008.
[20] M. Keating, P. Bricaud, Reuse Methodology Manual. The Netherlands: Kluwer Academic Publishers, 2002.
[21] J. W. Chen, C. R. Chang and Y. L. Lin, “A Hardware Accelerator for Context-based Adaptive Binary Arithmetic Decoding in H.264/AVC,” IEEE International Symposium on Circuits and Systems, pp. 4525-4528, May 2005.
[22] W. Yu and Y. He, “A High Performance CABAC Decoding Architecture,” IEEE Transactions on Consumer Electronics, pp. 1352-1359, November 2005.
[23] Y. C. Yang, and J. I. Guo, “High Throughput H.264/AVC High profile CABAC Decoder for HDTV Applications,” IEEE Transactions on Circuits and Systems for Video Technology, pp. 1395-1399, September 2009.
[24] Y. Yi and I. C. Park, “High-speed H.264/AVC CABAC Decoding,” IEEE Transactions on Circuits and Systems for Video Technology, pp. 490-494, April 2007.
[25] Z. Peng, G. Wen, X. Don and D. Wu, “High-performance CABAC Engine for H.264/AVC High Definition Real-time Decoding,” IEEE International Conference on Consumer Electronics, pp. 1-2, January 2007.
[26] C. H. Kim and I. C. Park, “Parallel Decoding of Context-based Adaptive Binary Arithmetic Codes Based on Most Probable Symbol Prediction,” IEICE transactions on information and system, pp. 609-612, February 2007.
[27] M. H. Xu, Y. l. Cheng, F. Ran and Z. J. Chen, “Optimizing Design and FPGA Implementation for CABAC Decoder,” IEEE International Symposium on High Density packaging and Microsystem Integration, pp. 1-5, June 2007.
[28] W. Son and I. C Park, “Prediction-based Real-time CABAC Decoder for High Definition H.264/AVC,” IEEE International Symposium on Circuits and Systems, pp. 33-36, May 2008.
[29] J. W. Chen and Y. L. Lin, “A High-performance Hardwired CABAC Decoder,” IEEE International Conference on Acoustics, Speech and Signal Processing, pp. II-37-II-40, April 2007.
[30] Y. Zheng, S. Zheng, Z. Huang, and Z. Zhao, “A Time and Storage Optimized Hardware Design for Context-based Adaptive Binary Arithmetic Decoding in H.264/AVC,” IEEE International Conference on Multimedia and Expo, pp. 1567-1570, July 2007.
[31] B. Shi, W. Zheng, H. S. Lee, D. X. Li, and M. Zhang “Pipelined Architecture Design of H.264/AVC CABAC Real-time Decoding,” IEEE International Symposium on Circuits and Systems for Communications, pp. 492-496, May 2008.
[32] R. R. Osorio, and J. D. Bruguera, “An FPGA Architecture for CABAC Decoding in Manycore Systems,” IEEE International Symposium on Application-Specific Systems, Architectures and Processors, pp. 293-298, July 2008.
[33] P. C. Lin, T. D. Chuang, and L. G. Chen, “A Branch Selection Multi-symbol High Throughput CABAC Decoder Architecture for H.264/AVC,” IEEE International Symposium on Circuits and Systems, pp. 365-368, May 2009.
[34] Y. H. Liao, G. L. Li, and T. S. Chang, “A High Throughput VLSI Design with Hybrid Memory Architecture for H.264/AVC CABAC Decoder,” IEEE International Symposium on Circuits and Systems, pp. 2007-2010, June 2010.