簡易檢索 / 詳目顯示

研究生: 江昇達
Jiang, Shengta-Ta
論文名稱: H.264內容適應性可變動長度解碼器之設計與驗證
Design and Verification of H.264 Context Adaptive Variable Length Decoder
指導教授: 李國君
Lee, Gwo Giun
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 電機工程學系
Department of Electrical Engineering
論文出版年: 2005
畢業學年度: 93
語文別: 英文
論文頁數: 79
中文關鍵詞: 亂度編碼內容適應性可變動長度解碼器
外文關鍵詞: Context Adaptive Variable Length Decoder, entropy coding
相關次數: 點閱:72下載:2
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  •   亂度編碼 (Entropy coding)是一熱門的無失真壓縮技術。目前最新的壓縮標準H.264提出了內容適應性變動長度碼(Context-Adaptive Variable Length Code)為其亂度編碼。內容適應性變動長度碼不同於傳統的變動長度碼,其運用了影像中空間上的相關性來增加亂度編碼之壓縮率。然而同時也增加了內容適應性變動長度解碼器之複雜度。
      
      在此我們利用硬體來實現內容適應性變動長度解碼器,其可支援標準解析度。內容適應性變動長度解碼器以一個4X4區塊為一解碼單元,透過一個解碼流程來完成一個4X4區塊之解碼。在內容適應性變動長度解碼中定義了五種參數,這些參數會在解碼流程中一一被解碼。我們的設計著重在實現一個快速之內容適應性變動長度解碼器,因此我們試著去減化最長路徑以加快內容適應性變動長度解碼器之速度,同時非最長路徑之電路我們試圖在一個週期中解二個參數來增加解碼量。利用UMC 0.18 µm CMOS 製成合成之內容適應性變動長度解碼器可達到120MHz.其輸入資料率為32bits/cycle,輸出之資料率為0.4pixel/cycle。所提出之內容適應性變動長度解碼器可達到即時解壓縮H.264 Baseline Profile Level 3.1。
      
      另一個設計內容適應性變動長度解碼器的重點為驗證電路,在解碼流程中有太多可能的組合會發生,若我們僅用幾個影像序列來驗証,我們無法很有信心的確定我們的電路是正確的,因此我們設計一個驗證計畫來提高我們對電路的信心。此驗證計畫包括:compliance 驗證、corner case 驗證、random 驗證及real code 驗證。最後我們在一個軟體硬體共同模擬的平台去驗證我們的電路能在一個AMBA的系統中正常運作。

     Entropy coding is one of the most popular lossless compress techniques. Recently, the newest compression standard, H.264, was proposed a context-adaptive variable length coding (CAVLC) for entropy coding. The CAVLC is different from conventional variable length coding. It uses the spatial correlation of images to increase the ompression performance of entropy coding. But it also increases the complexity of the Context-Adaptive Variable Length Decoder (CAVLD).

     Here we tried to implement the CAVLD by hardware, and it can support the real-time decompression for standard definition. The CAVLD’s decoding unit is a 4x4 block, and it has a specific decoding flow. There are five types of symbols defined in CAVLD decoding flow and these symbols have data dependency. Our aim is to design a faster CAVLD, so we tried to reduce the critical path of CAVLD to raise its speed, and let those steps which are not on the critical path to decode two symbols per cycle to increase the throughput. The implement result showed that the proposed CAVLD can operate at 120 MHz based on the UMC 0.18 µm CMOS technology. Its input data rata is 32bits/cycle, and output data rata is 0.4pixel/cycle. The proposed CAVLD can support the H.264/MPEG-4 AVC decoding in baseline profile level 3.1.

     The other major point of design CAVLD is verification. In the decoding flow, there are too many different combinations. While only several sequences were used for testing it, the confidence of the proposed CAVLD was not enough. So a verification plan was designed to test the CAVLD to get higher confidence. This plan included compliance testing, corner case testing, random testing and real code testing. Finally, we did the verification on a software-hardware co-simulation platform to ensure it can work correctly on an AMBA system.

    ABSTRACT                       III 1 INTRODUCTION                     1   1.1 VIDEO COMPRESSION STANDARDS         1     1.1.1 Temporal redundancy           2     1.1.2 Spatial redundancy           2     1.1.3 Frequency redundancy          2     1.1.4 Statistical redundancy         2   1.2 ENTROPY DECODING               4   1.3 SCOPE OF THE THESIS             5 2 RELATED RESEARCHES OF ENTROPY CODING       6   2.1 PRINCIPLE OF ENTROPY CODING           6     2.1.1 Huffman coding              7   2.2 ENTROPY DECODER AND DIFFICULTIES FOR DESIGNING IT 9   2.3 EXISTING ARCHITECTURES OF VARIABLE LENGTH DECODER 9     2.3.1 Tree-Based Variable Length Decoder   9     2.3.2 ParallelVLD                12     2.3.3 Low Power VLD               15 3 ENTROPY CODING OF H.264              18   3.1 EXP-GOLOMB CODE                21     3.1.1 Unsigned Exp-Golomb code        22     3.1.2 Signed Exp-Golomb codes         23     3.1.3 Mapped Exp-Golomb codes         23     3.1.4 Truncated Exp-Golomb Code        24   3.2 CONTEXT-BASED ADAPTIVE VARIABLE LENGTH CODING 25     3.2.1 Context-based adaptive          25     3.2.2 Encoding flow of CAVLC         26        3.2.2.1 Coeff_token            27        3.2.2.2 Trailing_ones_sign_flag      27        3.2.2.3 level               27        3.2.2.4 total_zeros            29        3.2.2.5 run of zeros          29 4 PROPOSED DESIGN OF CONTEXT-ADAPTIVE VARIABLE LENGTH DECODER   32   4.1 SYSTEM OVERVIEW                32   4.2 DESIGN OF EVERY SUB-BLOCK          33     4.2.1 Input_ctl                33     4.2.2 Coeff_Token               34     4.2.3 TrailingOnes               38     4.2.4 Level                   40     4.2.5 Total_zeros                42     4.2.6 Run_before                44     4.2.7 Controller                45 5 CHIP IMPLEMENT AND VERIFICATION          49   5.1 DESIGN FLOW                  50   5.2 VERIFICATION                  52     5.2.1 Compliance testing            53        5.2.1.1 Sub-Block Verification      53        5.2.1.2 Integrated Macro Verification  54     5.2.3 CornerCase testing            59     5.2.4 Real Code testing            59     5.2.5 Random testing              60     5.2.6 Software-Hardware Co-Verification    61   5.3 IMPLEMENTATION RESULTS             66   5.4 COMPARISON                   67     5.4.1 Comparison of Performance        67     5.4.2 Comparison of Verification       69 6 CONCLUSION                      71   6.1 CONCLUSION                   71   6.2 FUTURE WORK                  72     6.2.1 Low Power Context-Adaptive Variable Length Decoder          72 7 BIBLIOGRAPHY                     74

    [1] Joint Video Time, Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification, ITU-T Rec. H.264 and ISO-IEC 14496-10 AVC, May 2003.
    [2] T. Wiegand, G. J. Sullivan, G. Bjontegaard and A. Luthra, “Overview of the H.264/AVC video coding standard,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, pp. 560-576, July 2003.
    [3] A. Mukhejee, N. Ranganathan and M. Bassiouni, “Efficient VLSI designs for data transformations of tree-based codes,” IEEE Transactions on Circuits & Systems, vol.38, pp. 306-314, Mar.1991.
    [4] Y. Ooi, A. Taniguchi and S. Demura, “A 162 Mbit/s Variable Length Decoding Circuit using an Adaptive Tree Search Technique,” in IEEE Custom Integrated Circuits Conference, May 1994, pp. 107-110 .
    [5] B. J. Shieh, Y. S. Lee and C. Y. Lee, “A High-Throughput Memory-Based VLC Decoder with Codeword Boundary Prediction,” IEEE Transactions on Circuits & Systems for Video Technology, vol.10, pp. 1514-1521, Dec. 2000.
    [6] Y. S. Lee, B. J. Shieh and C. Y. Lee, “Generalized prediction method for modified memory-based high throughput VLC decoder design,” IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 43, pp 742-754, June 1999
    [7] G. R. Higgie and A.C.M. Fong, “Efficient encoding and decoding algorithms for variable-length entropy codes,” IEE Proceedings: Communications, vol. 150, pp. 305-311, Oct. 2003.
    [8] A. Mukhejee, N. Ranganathan, J. W. Flieder and T. Acharya, “Marvle: A VLSI chip for data compression using tree-based codes,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 1, pp. 203-214, June 1993.
    [9] S. M. Lei and M. T. Sun, “An entropy coding system for digital HDTV applications,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 1, pp. 147-155, Mar. 1991.
    [10] B. J. Shie, Y. S. Lee, and C. Y. Lee, “A new approach of group-based VLC codec system with full table programmability,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 11, pp. 210-221, Feb. 2001.
    [11] S. B. Choi and M. H. Lee, “High speed pattern matching for a fast Huffman decoder,” IEEE Transactions on Consumer Electronics, vol. 41, pp. 97–103, Feb. 1995.
    [12] S. F. Chang and D. G. Messerschmitt, “Designing high-throughput VLC decoder: Part I—Concurrent VLSI architectures,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 2, pp. 187–196, June 1992.
    [13] M. Rudberg, L. Wanhammar, “New Approaches to High Speed Huffman Decoding,” in IEEE International Symposium on Circuits and Systems, May 1996, pp. 149- 152.
    [14] R. Hhashemian, “Design and hardware construction of a high speed and memory efficient Huffman decoding,” in IEEE International Conference on Consumer Electronic, June 1994, pp. 74-75.
    [15] H.D. Lin and D. Messerschmitt, “Designing High-Throughput VLC Decoder Part II Parallel Decoding Methods,” IEEE Transactions on Circuits and Systems for Video Technology, Vol. 2, pp. 197-206, June 1992.
    [16]
    [17] L. Y. Liu, J. F. Wang, R. J. Wang and J. Y. Lee, “CAM-based VLSI architectures for dynamic Huffman coding,” in IEEE International Conference on Consumer Electronics, June 1994, pp. 204-205.
    [18] Y. Fukuzawa, K Hasegawa, H Hanaaki, E Iwata and T Yamazaki, “A Programmable VLC core architecture for video compression DSP,” in IEEE Workshop on Signal Processing Systems: Design and Implementation, Nov. 1997, pp. 469-478.
    [19] R. Hashemian, “Condensed Table of Huffman Coding, a New Approach to Efficient Decoding,” IEEE Transactions on Communications, vol. 52, pp. 6-8, Jan 2004.
    [20] S. H. Cho, T. Xanthopoulos, and A. P. Chandrakasan, “Design of low power variable length decoder using fine grain nonuniform table partitioning,” in Proceedings of IEEE International Symposium on Circuits and Systems, June 1997, pp. 2156–2159.
    [21] S. H. Cho, T. Xanthopoulos, and A. P. Chandrakasan, “An ultra low power variable length decoder for MPEG-2 exploiting codeword distribution,” in Proceedings of the Custom Integrated Circuits Conference, May 1998, pp. 177–180.
    [22] S. H. Cho, T. Xanthopoulos, and A. P. Chandrakasan, “A low power variable length decoder for mpeg-2 based on nonuniform fine-grain table partitioning,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 7, pp. 249–257, June 1999.
    [23]T. H. Tsai, C. N. Liu and W. C. Chen, “A low power VLSI implementation for variable length decoder in MPEG-1 layer III,” in Proceedings of SPIE - The International Society for Optical Engineering, v 5309, Embedded Processors for Multimedia and Communications, Jan 2004, pp. 30-39
    [24] M. Stephen and J. Rajeev, “Low Power VLSI Architectures for Variable-Length Encoding and Decoding,” in Proceedings of Midwest Symposium on Circuits and Systems, v 2, Aug. 1997, pp. 997-1000.
    [25] C. H. Liu, Bai-Jue Shieh, and Chen-Yi Lee, “A low power group-based VLD design,” in IEEE International Symposium on Circuits and Systems , pp. II337-II340, May 2004.
    [26] C. H. Lin and C. W. Jen, “Low power parallel Huffman decoding,” Electronics Letters, v 34, pp. 240-241, Feb 1998.
    [27] S. W. Lee, and I. C. Park, “A Low-Power Variable Length Decoder for MPEG-2 Based on Successive Decoding of Short Codewords,” IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol.50, pp. 73-82, Feb. 2003.
    [28] L. S. Won and P. I. Cheol, “Low-power variable length decoder considering successive codewords,” Electronics Letters, vol. 36, pp. 440-442, Mar. 2000.
    [29] D. Wu, W. Gao, M. Hu and Z. Ji, “A VLSI Architecture Design of CAVLC Decoder,” in Proceeding of International Conference ASIC, Oct. 2003 , pp. 962–965.
    [30] J. Nikara, S. Vassiliadis, J. Takala, M. Sima and P. Liuha, “Parallel multiple-symbol variable-length decoding,” in Proceeding of IEEE International Conference on Computer Design: VLSI in Computers and Processors, Sept. 2002, pp. 126-131.
    [31] J. H. Jeon, Y. S. Park and H. W. Park, “A Fast Variable-Length Decoder Using Plane Separation,” IEEE Transactions on Circuits and Systems for Video Technology, vol.10 pp. 806-812, Aug 2000.
    [32] H. C. Chang, C. C. Lin and J. I. Guo, “A Novel Low-Cost High-Performance VLSI Architecture for MPEG-4 AVC/H.264 CAVLC Decoding,” in Proceeding of International Symposium on Circuits and Systems, May 2005, pp. 6110-6113.

    下載圖示 校內:2006-08-31公開
    校外:2006-08-31公開
    QR CODE