Advanced
Design of High Performance Multi-mode 2D Transform Block for HEVC
Design of High Performance Multi-mode 2D Transform Block for HEVC
Journal of the Korea Institute of Information and Communication Engineering. 2014. Feb, 18(2): 329-334
Copyright © 2014, The Korea Institute of Information and Commucation Engineering
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
  • Received : December 03, 2013
  • Accepted : January 23, 2014
  • Published : February 28, 2014
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
기현 김
광기 류
kkryoo@gmail.com

Abstract
본 논문에서는 4가지의 TU를 동일한 사이클에 처리하는 고성능 다중모드 2D 변환기의 하드웨어 구조를 제안한다. HEVC의 변환 기술은 고해상도, 고화소의 영상을 높은 효율로 압축하기 위해 4가지의 화소 단위 TU를 지원하여 각각의 변환 연산을 수행한 후 최적의 모드를 찾는다. 제안하는 변환기는 변환 행렬 계수들 간의 관계를 분석하여 공통 연산기를 사용한 구조로 설계하여 4가지의 TU 모드 행렬 연산을 처리하는 사이클 수가 동일하게 35cycle로 처리된다. TSMC 018nm CMOS 공정 라이브러리를 사용해 합성한 결과 4k(3840x2160)@30fps의 영상을 기준으로 최대 동작주파수는 400MHz이고 총 게이트 수는 214k가 소요되었으며, 10-Gpels/cycle의 처리량을 갖는다.
Keywords
Ⅰ. 서 론
최근 UHD(Ultra High Definition) TV와 디지털 영상 기술의 발전과 방송 기술의 발전과 함께 고화질, 고해 상도의 영상 서비스들이 TV가 아닌 모바일 기기까지 확대되고 있다. 또한 기존의 2D를 뛰어 넘은 3D 비디오 영상 보급도 확대됨에 따라 고해상도, 고화질의 영상에 대한 필요성이 대두되고 있다. 이를 배경으로 많은 데이터양을 갖는 영상을 전송하기 위하여 기존의 영상 분야에서 많이 쓰이고 있는 영상 압축 코덱인 H.264/AVC의 압축률보다 두 배 이상의 높은 압축률을 목표로 ISO/IEC MPEG과 ITU-T VCEG에서는 JCT-VC(Joint Collaborative Team on Video Coding)을 만들어 차세대 영상 압축 코덱인 HEVC(High Efficiency Video Coding)에 대하여 2010년 4월 회의를 시작으로 표준화 회의를 시작하였으며, 최근 표준을 제정하였다.
HEVC는 압축 효율을 높이기 위해 CU(Coding Unit), PU(Prediction Unit), TU(Transform Unit)와 같은 다양한 블록을 지원하며, 각 블록들 또한 다양한 사이즈를 지원하고 있다 [1] . H.264/AVC에 비해 2~4배 증가된 다양한 사이즈의 블록을 사용하기 때문에 내부 연산의 복잡도와 연산 수행 시간이 증가하였다 [2] .
본 논문에서는 4가지의 TU(4x4, 8x8, 16x16, 32x32)를 각 모드마다 변환 연산을 수행하여 최적의 모드를 찾는 HEVC의 변환기의 특성을 배경으로 행렬 계수들간의 관계를 분석하여 공통 연산기를 통해 병렬적인 구조로 변환 행렬 연산을 수행함으로써 4가지의 TU 변환 연산을 동일한 사이클로 처리가 가능한 구조의 HEVC고성능 다중모드 2D 변환기를 제안한다.
제안하는 고성능 다중모드 2D 변환기는 TSMC 180nm CMOS 공정 라이브러리를 사용해 합성한 결과 4k(3840x2160)@30fps 영상을 기준으로 최대 동작주파수는 400MHz이고 총 게이트 수는 214k가 소요되었다. 또한 처리량은 10-Gpels/cycle이다.
Ⅱ. 기존의 HEVC 변환기
HEVC는 기존의 국제 표준인 H.264/AVC의 구조와 비슷하다. 그림 1 은 HEVC의 부/복호기의 구조이다. 하지만 고해상도, 고화질의 영상을 상대로 높은 압축 효율을 얻기 위해 쿼드트리 기반 부호화 기술을 사용한다. 또한, DCT(Discrete Cosine Transform)로 인해 생기는 블록 경계의 왜곡을 제거하기 위하여 기존의 디블록킹 필터보다 연산 과정을 간략화한 기술인 디블록킹 필터를 사용한다 [3] . 부호화 과정을 통해 발생하는 원본 영상과 부호화 영상간의 왜곡을 화소 단위의 오프셋을 통해 보상하여 주관적 화질 및 부호화 효율을 향상시키는 기술인 SAO(Sample Adaptive Offset)을 적용시켰다 [4] .
PPT Slide
Lager Image
HEVC의 구조 Fig. 1 Structure of HEVC
HEVC의 쿼드트리 기반 부호화 기술은 그림 2 와 같다. 블록들은 CU(Coding Unit), TU(Transform Unit), PU(Prediction Unit)으로 분류된다 [5] . HEVC의 변환기는 원본 영상 데이터와 예측 영상 데이터 간의 공간적 영역의 오차 데이터인 다양한 PU를 입력 받아 주파수 영역의 데이터로 바꾸는 작업을 수행한다.
PPT Slide
Lager Image
HEVC의 쿼드 트리 구조 Fig. 2 Quad tree structure of HEVC
이로 인해 변환기는 4가지 TU 모드(4x4, 8x8, 16x16, 32x32)에 대한 변환 행렬 연산을 각각 수행하여 최적의 TU 모드를 찾는다.
차세대 영상 압축 코덱인 HEVC의 변환기는 Chen’s fast DCT 알고리즘을 기반으로 둔 기법을 사용하여 버터플라이 구조를 가진다 [6] . 그림 3 은 8x8 TU 모드의 변환 행렬을 Chen’s 고속 DCT 기법에 적용시켜 두 개의 4x4 변환 행렬로 재구성한 예이다.
PPT Slide
Lager Image
8x8 크기 변환 행렬의 재구성 Fig. 3 Decomposed of 8x8 transform matrix
8x8 TU 모드의 변환 행렬을 반으로 나누면 짝수 행은 y축 반전이 된 값과 같고, 홀수 행은 y축 반전과 부호를 반대로 한 값과 같다. 이러한 특성을 바탕으로 홀수와 짝수 변환 계수로 나뉜 두 개의 4x4 행렬로 재구성할 수 있다 [7] .
Ⅲ. 제안하는 HEVC 변환기
본 논문에서 제안하는 HEVC 변환기의 구조는 하나의 변환 행렬을 짝수와 홀수 행렬로 나누는 방식인 Chen’s 고속 DCT 알고리즘에 기반하여 설계되었다. 변환 행렬은 4x4~16x16 크기 TU 모드의 행렬 계수들이 32x32 크기 TU 모드의 행렬 계수의 부분 집합인 특징을 갖는다. 이를 기반으로 제안하는 변환 블록은 최적화된 공통 연산기를 사용하여 모든 행렬 계수에 대한 변환 행렬 연산을 수행할 수 있는 구조로 설계하였다. 표 1 은 공통 연산기를 구현하기 위하여 사용한 변환 행렬 계수들의 특징이다.
변환 행렬 계수 간의 관계Table. 1Relationship of between transform matrix coefficients
PPT Slide
Lager Image
변환 행렬 계수 간의 관계 Table. 1 Relationship of between transform matrix coefficients
구현된 공통 연산기는 <<6, <<5, <<4,<<3, <<2, <<1 총 6개의 쉬프트와 <<0, 1개의 덧셈기로 구성된다. 그림 4 는 변환 행렬 계수간의 관계를 분석하여 구성한 공통 연산기의 구조이다.
PPT Slide
Lager Image
공통 연산기의 구조 Fig. 4 Structure of common computation unit
구성한 공통 연산기는 TU 모드에 대한 제어 신호 및 입력 영상 데이터를 입력 받아 6개의 쉬프트에 대한 연산을 수행한 후 1 개의 덧셈기를 통해 변환 행렬 계수에 대한 행렬 연산을 수행한다.
그림 5 는 제안하는 HEVC 변환기의 전체 하드웨어 구조이다.
PPT Slide
Lager Image
제안하는 HEVC 변환기의 전체 구조 Fig. 5 Architecture of proposed HEVC transform
1D 변환기와 2D 변환기 역할을 하는 oned_trans, twod_trans와 변환기 메모리 역할을 하는 oned_reg로 구성된다. oned_trans와 twod_trans는 앞에서 언급한 것과 같이 공통 연산기를 사용한 구조이며, TU 모드에 대한 값과 병렬적으로 입력 영상 데이터들을 받아 TU 모드에 맞는 변환 행렬 연산을 수행하여 값을 출력하는 기능을 한다. oned_reg는 1D 변환기(oned_trans)에서 출력된 데이터를 입력받아 2D 변환기(twod_trans)로 보내주기 위해 저장된 데이터들을 하나씩 쉬프트해주는 기능을 한다.
제안하는 HEVC 변환기의 내부 구조는 그림 6 과 같다. pre_arith, shifter, toadder, round 모듈로 구성된다.
PPT Slide
Lager Image
제안하는 HEVC 변환기의 내부 구조 Fig. 6 Architecture of proposed HEVC transform
pre_arith 모듈은 행렬 연산 전에 수행하는 전처리를 담당하며, shifter 모듈은 행렬 연산의 곱셈 부분에 해당하고 곱셈기보다 연산 시간 및 하드웨어 면적이 적은 쉬프트로 구현되어있다. toadder 모듈은 행렬 연산 위치에 맞게 shifter 모듈의 출력 값을 선택하여 덧셈을 수행한다. round 모듈은 toadder 모듈의 출력 값을 반올림하여 데이터의 손실을 최소화하는 기능을 담당한다.
Ⅳ. 검증 및 결과
본 논문에서 제안하는 HEVC 변환 블록은 표준 참조 소프트웨어인 HM-10.0rc1을 이용하여 검증하였다 [8] . HM-10.0rc1의 변환 블록을 통과하기 전과 후의 영상 데이터를 추출하여 제안하는 변환 블록을 시뮬레이션한 결과를 파일로 생성하여 비교하였다. 또한 IDEC에서 제공하는 Synopsys사의 Design Compiler를 통해 TSMC 180nm CMOS 공정 라이브러리로 합성한 결과, 4k(3840x2160)@30fps 영상을 기준으로 최대 동작 주파수는 400MHz이고 총 게이트 수는 214k이다. 표 2 는 기존의 변환 블록의 구조와 제안하는 변환 블록의 구조를 비교한 것이다. 기존의 변환 블록 구조들은 대부분 역변환 블록에 대하여 다루어지기 때문에 제안하는 변환 블록의 구조를 기존의 역변환 블록들과 비교하였다. 비교한 결과로 총 게이트의 수는 기존의 연구보다 3~4배 정도 늘었지만 처리량은 10배 이상 좋아짐을 확인할 수 있다.
기존 구조와 제안한 구조와의 비교Table. 2Comparison of previous architecture and proposed architecture
PPT Slide
Lager Image
기존 구조와 제안한 구조와의 비교 Table. 2 Comparison of previous architecture and proposed architecture
표 3 은 기존 변환기가 1D 변환을 할 경우, 32x32 크기의 TU 모드에서 한 라인을 1사이클에 처리한다고 가정하였을 때 나머지 TU 모드를 처리하는데 걸리는 사이클 수를 나타낸 것이다.
TU 모드 별 1D 변환 연산 처리 사이클 수Table. 3Number of processing cycles to 1D transform operation each TU mode
PPT Slide
Lager Image
TU 모드 별 1D 변환 연산 처리 사이클 수 Table. 3 Number of processing cycles to 1D transform operation each TU mode
기존 변환기는 각 TU 모드 별 변환 행렬 연산을 처리하는데 걸리는 사이클 수가 다르며, 32x32 크기의 TU 모드에 대한 변환 행렬 연산을 처리하기 위해서 32사이클, 16x16크기의 TU 모드의 경우 128사이클, 8x8크기의 TU 모드의 경우 256사이클, 4x4모드의 경우 512사이클이 소요된다. 제안하는 변환기는 TU 모드에 영향을 받지 않고 모든 변환 행렬 연산을 처리하는데 동일하게 35사이클이 소요된다.
그림 7 은 제안하는 변환기를 TMSC 180nm CMOS 공정 라이브러리를 사용하여 Synopsys사의 IC Compiler를 통해 Layout한 화면이다. 칩 사이즈는 3mm× 3mm이다.
PPT Slide
Lager Image
IC Compiler 칩 레이아웃 화면 Fig. 7 Chip Layout of IC Compiler
Ⅴ. 결 론
본 논문에서 제안하는 HEVC 변환 블록은 4개의 TU 모드(4x4, 8x8, 16x16, 32x32)를 지원하며, 행렬 계수의 특징을 사용하여 공통 연산기를 통해 입력 영상 데이터에 대한 모든 행렬 계수 연산을 수행한다. 모든 TU 모드의 변환 행렬 연산을 처리하는데 걸리는 사이클은 35사이클로 동일하다. 제안하는 HEVC 변환 블록의 하드웨어 구조를 합성한 결과 총 게이트 수는 214k로 이전 연구에 비해 3~4배정도 늘었으나 처리량은 10-Gpels/cycle로 이전 연구에 비해 10배정도 증가하여 효율성을 높였다. 최대 동작주파수는 400MHz이다.
Acknowledgements
본 논문은 교육부와 한국연구재단의 지역혁신인력양성사업 및 지식경제부와 정보통신산업진흥원의 브레인스카우팅사업(과제번호 HB606-12-2001)의 연구결과입니다.
BIO
김기현(Ki-Hyun Kim)
2011년 한밭대학교 공과대학 정보통신공학과 공학사
2012년~현재 한밭대학교 정보통신전문대학원 정보통신공학과 석사과정
※관심분야 : SoC 플랫폼 설계 및 검증, 멀티미디어 코덱 설계
류광기(Kwang-Ki Ryoo)
1986년 한양대학교 공과대학 전자공학과 공학사
1988년 한양대학교 대학원 전자공학과 공학석사
2000년 한양대학교 대학원 전자공학과 공학박사
1991년~1994년 육군사관학교 교수부 전자공학과 전임강사
2000년~2002년 ETRI 시스템IC설계팀 선임연구원
2010년~2011년 Univ of Texas at Dallas 방문교수
2003년~현재 한밭대학교 공과대학 정보통신공학과 교수
※관심분야 : 공학교육, SoC 플랫폼 설계 및 검증, 멀티미디어 코덱 설계
References
Bross B. 2012 “High Efficiency Video Coding(HEVC) text specification draft 9,” JCTVC-K1003 Shanghai
Yoo S. E. , Ahn Y. J. , Sim D. G. 2012 “Fast HEVC Encoding based on CU-Depth First Decision,” Journal of the Institute of Electronics Engineers of Korea 49 (3) 40 - 50
Norkin A. , Bjontegaard G. , Fuldseth A. , Narroschke M. , Ikeda M. 2012 “HEVC deblocking filter,” IEEE Trans. Circuit Syst. Video Technol 22 (12) 1746 - 1754    DOI : 10.1109/TCSVT.2012.2223053
Fu C. , Alshina E. , Alshin A. , Huang Y. , Chen C. , Tsai C. , Hsu C. , Lei S. , Park J. , Han W. 2012 “Sample adaptive offset in the HEVC standard,” IEEE Trans. Circuit Syst. Video Technol. 22 (12) 1755 - 1764    DOI : 10.1109/TCSVT.2012.2221529
Yuan Y. , Kim I. , Zheng X. , Liu L. , Cao X. , Lee S. , Cheon M. , Lee T. , He Y. , Park J. 2012 “Quadtree based non-square block structure for inter frame coding in High Efficiency Video Coding,” IEEE Trans. Circuit Syst. Video Technol. 22 (12) 1707 - 1719    DOI : 10.1109/TCSVT.2012.2223037
Chen W. H. , Smith C. H. , Fralick S. 1997 A fast computational algorithm for the discrete cosine transform Communicaitons, IEEE Trans. Communications 25 (9) 1004 - 1009
Han G. H. , Ryoo K. K. 2013 “The Efficient 32x32 Inverse Transform Design for High Performace HEVC Decoder” Journal of KIICE 17 (4) 953 - 958
0000 “HM10: High Efficiency video coding HEVC test model 10” (https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware /tags/HM-10.1rc1/ )
Chen Y. H. , Chang T. Y. , Lu C. W. 2011 “A low-cost and high-throuput architecture for H.264/AVC integer transform by using four computation strams,” in Proc. IEEE Int. Symp. Integr. Circuits 380 - 383
Fan C. P. , Fang C. H. , Chang C. W. , Hsu S. J. 2011 “Fast multiple inverse transforms with low-cost hardware sharing design for multistandard video decoding,” IEEE Trans. Circuits Syst. II, Exp. Briefs 58 (8) 517 - 521    DOI : 10.1109/TCSII.2011.2158749