Design of Hardwired Variable Length Decoder for H.264/AVC

하드웨어 구조의 H.264/AVC 가변길이 복호기 설계

  • Yu, Yong-Hoon (Dept. of Electronic Engr., Soongsil University) ;
  • Lee, Chan-Ho (School of Electronic Engr., Soongsil University)
  • 유용훈 (숭실대학교 전자공학과) ;
  • 이찬호 (숭실대학교 정보통신전자공학부)
  • Published : 2008.11.25

Abstract

H.264(or MPEG-4/AVC pt.10) is a high performance video coding standard, and is widely used. Variable length code (VLC) of the H.264 standard compresses data using the statistical distribution of values. A decoder parses the compressed bit stream and searches decoded values in lookup tables, and the decoding process is not easy to implement by hardware. We propose an architecture of variable length decoder(VLD) for the H.264 baseline profile(BP) L4. The CAVLD decodes syntax elements using the combination of arithmetic units and lookup tables for the optimized hardware architecture. A barral shifter and a first 1's detector parse NAL bit stream, and are shared by Exp-Golomb decoder and CAVLD. A FIFO memory between CAVLD and the reorder unit and a buffer at the output of the reorder unit eliminate the bottleneck of data stream. The proposed VLD is designed using Verilog-HDL and is implemented using an FPGA. The synthesis result using a 0.18um standard CMOS technology shows that the gate count is 22,604 and the decoder can process HD($1920{\times}1080$) video at 120MHz.

H.264(또는 MPEG-4/AVC pt.10) 압축 표준은 고성능 영상 압축 알고리즘으로 그 적용 범위를 넓혀 가고 있다. H.264 압축 표준의 가변길이 코드(Variable Length Code)는 데이터의 통계적 중복성의 특성을 이용하여 압축을 한다. 이러한 압축된 비트 스트림은 복호기에서 연속된 비트 스트림을 잘라내는 작업과 테이블에서 비트 스트림과 비교하는 작업을 진행하는데 순수 하드웨어 구현이 까다로운 연산부이다. 본 논문에서는 HD 영상을 실시간으로 복호 가능한 가변길이 복호기 구조를 제안한다. Exp-Golomb 복호기는 연산기로 구성되어 있으며, CAVLD는 테이블과 연산기를 혼합하여 최적화된 하드웨어로 설계하였다. 비트 스트림의 분할(parsing) 작업은 배럴 쉬프터(Barrel shifter)와 1값 감지기(First 1's detector)에서 진행되며, 이 두 유닛은 Exp-Golomb 복호기와 CAVLD가 공유하는 구조로 설계하여 불필요한 하드웨어를 제거하였다. CAVLD와 재정렬(Reorder) 유닛간의 병목현상으로 가변길이 복호기 뿐만 아니라 H.264 디코더 전체의 성능 저하가 나타나는 단점을 제거하기 위해서 CAVLD와 재정렬 유닛간 FIFO와 재정렬 유닛의 최종 출력에 메모리를 두어 병목현상을 제거하였다. 제안된 가변길이 복호기는 Verilog-HDL을 이용하여 설계하고 FPGA를 통해 검증하였다. 0.18um 표준 CMOS 공정을 사용한 합성 결과는 22,604 게이트 수이며, 동작 주파수 120MHz에서 HD 영상이 복호됨을 확인하였다.

Keywords

References

  1. T.-C. Chen, Y.-W. Huang, C.-Y. Tsai, B.-Y. Hsieh, and L.-G. Chen "Architecture Design of Context-Based Adaptive Variable-Length Coding for H.264/AVC," IEEE Trans. on Circuits and Systems, Vol. 53, no. 9, pp. 832-836, Sep 2006 https://doi.org/10.1109/TCSII.2006.880014
  2. Joint Video Team, "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
  3. Y.-H. Moon, G.-Y. Kim and J.-H. Kim "An Efficient Decoding of CAVLC in H.264/AVC Video Coding Standard," IEEE Trans. on Consumer Electronics, Vol. 51, pp. 933-938, Aug 2005 https://doi.org/10.1109/TCE.2005.1510506
  4. K. Xu, C.-S. Choy, C.-F. Chan and K.-P. Pun "Power-efficient VLSI Implementation of BitStream Parsing in H.264/AVC Decoder," IEEE ISCAS 2006, pp. 21-24, May 2006
  5. 문전학, 이성수, "효율적인 h.264/AVC 엔트로피 복호기 설계" 전자공학회 논문지, 제44권 SD편, 제12호, pp. 1147-1152, 2007년 12월
  6. H.264/AVC Reference Software JM 9.0, ITU-T, JVT, Nov 2005