Advanced
Low Area and High Performance Multi-mode 1D Transform Block Design for HEVC
Low Area and High Performance Multi-mode 1D Transform Block Design for HEVC
Journal of the Korea Institute of Information and Communication Engineering. 2014. Jan, 18(1): 78-83
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/li-censes/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 : December 30, 2013
  • Published : January 31, 2014
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
기현 김
광기 류
kkryoo@gmail.com

Abstract
본 논문에서는 연산 시간이 긴 곱셈기 패스를 낮은 주파수에서 동작하는 저면적의 HEVC(High Efficiency Video Coding)용 다중 모드 일차원 변환 블록을 구현하는 효율적인 방법을 제시하였다. 제시한 방법은 전체 면적을 줄이기 위하여 일반적인 변수와 변수를 입력으로 받는 곱셈기 대신 행렬의 계수 특성을 이용한 상수와 변수를 입력으로 받는 상수 곱셈기를 사용하였다. 상수 곱셈기 사용으로 인하여 전체적인 처리량을 증가시켰으며 늘어난 처리량으로 인해 남는 동작 사이클을 이용하여 연산시간이 많이 걸리는 곱셈기 부분에 멀티 사이클 패스를 구성하여 곱셈기의 동작 주파수를 낮게 하면서 전체 연산량은 유지시켰다. TSMC 0.18um CMOS 공정 라이브러리를 이용하여 실제 하드웨어를 구현한 결과 4k(3840x2160) 영상을 기준으로 최소 동작 주파수는 186MHz이고 최대 동작 주파수는 300MHz이다.
Keywords
I. 서 론
HEVC는 고화질, 고해상도의 영상을 위한 비디오 압축 코덱으로 압축 효율을 높이기 위해 CU(Coding Unit), PU(Prediction Unit), TU(Transform Unit)와 같은 다양한 블록을 지원하며 각각 블록에서도 다양한 사이즈를 지원하고 있다 [1] . H.264/AVC에 비해 2∼4배 증가된 여러 종류의 블록 크기를 사용하는 특징과 내부 연산의 복잡도 증가로 인하여 연산량이 급증하기 때문에 하드웨어로 구현할 시 전체 면적이 커지는 단점을 가진다.
본 논문에서는 HEVC 부호화기 블록 중 특히 처리하는 기본 블록의 크기에 영향을 받는 변환 블록의 최적화된 설계 방법을 제시한다. 또한 다양한 처리 블록의 크기를 모두 지원하는 변환 블록을 제안한 방법으로 구현하여 저면적을 소요하고 고성능의 처리율을 보이는 다양한 블록 크기를 지원하는 변환 블록의 효율성을 입증하였다.
II. HEVC 변환 블록
- 2.1. 일반적인 변환 연산
현재 쓰이고 있는 영상 압축 코덱인 H.264/AVC의 변환블록은 공간적 영역의 데이터를 주파수 영역으로 바꾼 후 중요도가 떨어지는 데이터를 제거하여 압축률을 높이는 방법을 공통적으로 사용하고 있다. DCT 연산은 기본적으로 행렬연산으로 구성되어 있으며 효과적인 하드웨어 구현을 위한 여러 가지 방법들이 제시되고 있다. 제시된 여러 가지 방법들 중 행렬을 재구성하여 축소된 복수의 행렬을 이용해 연산량을 줄인 방법인 Chen 알고리즘을 많이 사용한다. 수식 1은 Cosine의 주기 특성을 이용하여 중복 계산을 줄인 Chen 알고리즘 중 DCT 부분이다.
PPT Slide
Lager Image
Xe 는 짝수 항을 갖는 N/2 포인트 변환 계수 벡터이 고, X0 는 홀수 항을 갖는 N/2 포인트 변환 계수 벡터이 다. xf 는 x의 앞부분 반절을 갖는 N/2-포인트 DCT 행렬이고, xr 는 x의 뒷부분 반절(역방향)을 갖는 N/2-포인트 DCT 행렬이다. SN/2 는 N/2 x N/2 대칭 행렬이고, CN/2 는 N/2-포인트 DCT 행렬이다.
- 2.2. 블록 크기에 따른 연산량의 증가
변환 연산은 처리하는 블록의 크기에 따라 비례하여 전체 크기가 커지는 경향을 갖는다. 특히 현재 그 표준이 정해지는 단계에 있는 HEVC의 경우, 압축률을 높이기 위해 영상의 특성에 따라 처리하고자 하는 블록의 크기가 최소 4x4에서 최대 32x32까지 가변하게 되는데 이러한 블록 크기에 비례하여 사용되는 연산기의 수가 증가하기 때문에 효율적인 설계 방법이 더 중시된다. 그림 1 은 HEVC에서 사용하는 TU의 구조이다.
곱셈기는 그 크기가 다른 연산기들에 비해 크기 때문에 곱셈기의 크기를 줄이려는 많은 노력이 이루어져 왔다. 근래에는 변환 연산에 쓰이는 곱셈 연산이 일반적인 변수와 변수와의 곱셈이 아니라 고정된 상수와 곱셈과의 연산을 이용하여 시프트 연산과 덧셈기만을 이용하여 곱셈을 수행하는 방법을 많이 사용하고 있다 [2] .
PPT Slide
Lager Image
HEVC의 TU 구조 Fig. 1 TU structure of HEVC
III. 제안하는 방법
앞 장에서 살펴본 바와 같이, 변환 블록은 다양한 블록 크기를 지원하여 크기가 커질수록 연산기의 수가 늘어나는 특성으로 인하여 하드웨어로 구현할 시 전체 크기가 커지는 단점을 가진다 [3] .
이러한 단점을 해결하고자 근래에는 고정된 상수와 곱셈과의 연산을 이용한 방법을 많이 사용하고 있다. 제안하는 변환 연산은 이러한 방법을 이용하는 동시에 누산기와 멀티 사이클 구조의 곱셈기를 사용하였다.
- 3.1. 상수와 변수 곱셈기 사용
변환 블록에서 사용되는 행렬 연산은 블록 크기가 32x32일 때 그림 2 에서 볼 수 있듯이 16x16의 상수로 이루어진 행렬과 16x1의 입력 데이터의 곱이다. 한 클록 당 한 개의 데이터를 처리하기 위해 최소 한 개의 행에 해당하는 16개의 일반적인 변수와 변수의 연산을 처리하는 일반적인 곱셈기가 필요하게 된다. 본 논문에서는 변환 행렬의 곱이 정해져 있는 상수와 변수인 입력 데이터와의 곱임을 이용하여 면적이 작은 시프트 연산과 덧셈기만으로 구성되는 입력되는 변수와 상수와의 곱셈기를 구성하여 사용하였다.
PPT Slide
Lager Image
상수로 이루어진 행렬과 입력 데이터(변수)의 곱 연산 Fig. 2 Operation of product to constant matrix and variable data
그림 3 은 시프트와 덧셈기만으로 구성되는 변수와 상수와의 곱셈기 구조이다. 상수와 변수 곱셈기는 정해진 상수에 대하여 개별적으로 곱셈기를 사용하기 때문에 상수의 수만큼의 곱셈기가 필요하다.
PPT Slide
Lager Image
시프트와 덧셈기로 이루어진 변수와 상수와의 곱셈기 구조 Fig. 3 Structure of multiplication using shift and adder
표 1 은 재구성된 HEVC의 변환 행렬을 상수 곱셈기로 처리할 때 필요한 상수 곱셈기의 개수를 블록의 크기에 따라 정리한 표이다. 일반적으로 곱셈기를 사용할 때보다 두 배의 개수인 곱셈기가 필요하지만 일반적으로 상수 곱셈기의 크기가 일반 곱셈기보다 크기가 훨씬 작기 때문에 전체 크기는 줄어들 것으로 기대할 수 있다.
블록 크기에 따른 일반 곱셈기와 상수 곱셈기의 사용 개수 비교Table. 1 Comparison of using the number of constant multiplication and normal multiplication about block size
PPT Slide
Lager Image
블록 크기에 따른 일반 곱셈기와 상수 곱셈기의 사용 개수 비교 Table. 1 Comparison of using the number of constant multiplication and normal multiplication about block size
- 3.2. 누산기 사용
제안하는 변환 블록은 누산기를 사용하여 행렬 연산 값을 구한다. 최소의 클록 주기 안에 행렬 연산을 완료하기 위해서는 상수곱셈기의 활용을 최대로 하여야한다. 변환 연산의 계수 특성상 일반적인 행과 열의 곱을 수행하면 매 클록동안 모든 상수 곱셈기를 활용한 연산을 할 수 없다. 따라서 본 논문에서는 행과 열의 연산 대신 앞서 보았던 그림 3 에서 볼 수 있듯이 열과 열의 연산을 수행하도록 하였다. 이렇게 하면 변환 행렬의 계수 특성 상 매 클록마다 모든 상수 연산기를 활용할 수 있기 때문에 전체 행렬 연산에 필요한 클록 수를 최소화 할 수 있을 뿐만 아니라 상수 곱셈기의 수가 일반적인 곱셈기의 수보다 두 배가 되기 때문에 전체 연산처리량도 두 배가 되는 장점을 가진다.
- 3.3. 멀티 사이클 구조
증가한 상수 곱셈기의 수로 인해 단위 시간당 연산 처리량은 입력되는 데이터의 양보다 두 배가 된다. 이것을 이용하여 가장 시간이 많이 걸리는 데이터 패스인 곱셈기 부분을 멀티 사이클 구조로 구현하여 전체적인 동작 주파수를 높였다. 그림 4 는 단일 사이클 동작 모드에서의 변환 블록의 변환 연산 결과 값 시뮬레이션 파형과 멀티 사이클 패스를 적용한 변환 블록의 변환 연산 결과 값 시뮬레이션 파형을 비교한 것이다. 단일 사이클 패스의 경우 실시간 처리에서의 단위 시간당 데이터의 양은 일정하기 때문에 주어진 데이터를 처리하고도 여분의 시간이 남는다. 하지만 연산 시간이 많이 걸리는 곱셈기 부분에 멀티 사이클 패스를 적용시켜 동일한 양의 데이터를 처리할 경우 단일 사이클 패스에서의 처리하는 주파수와 비교했을 때 보다 연산량 처리율이 향상되고, 낮은 주파수에서 동작 시킬 수 있다.
PPT Slide
Lager Image
단일 사이클 패스와 멀티 사이클 패스 시뮬레이션 비교 Fig. 4 Comparison of single-cycle path and multi-cycle path simulation
제안하는 변환 블록의 구조는 그림 5 와 같다. 전처리된 데이터는 매 사이클마다 MUX를 통해 적절한 타이밍에 곱셈기로 입력된다. 곱셈기에서 연산된 값을 누산기에서 받아 앞서 기술한 제안하는 변환 연산을 이용하여 행렬 연산을 한다. 그 후 라운딩을 거쳐 출력 데이터를 내보낸다.
PPT Slide
Lager Image
제안하는 DCT-based 정수 변환 블록의 구조 Fig. 5 Suggested structure of DCT-based integer transform block
구현한 변환 블록은 HM 참조 소프트웨어의 변환 블록 연산 중 결과물을 추출하여 구현한 변환 블록 연산 중 결과물과 비교하여 검증하였다[4]. 그림 6 은 구현한 변환 블록의 검증을 위하여 추출한 HM-10.0rc1 참조 소프트웨어 변환 블록의 변환 연산 결과 데이터 값이다. 구현한 변환 블록의 연산 결과 값과 비교를 쉽게 하고자 10진수와 16진수의 결과 값을 추출하여 비교하였다.
PPT Slide
Lager Image
HM에서 추출한 변환 블록 연산 결과 Fig. 6 Result data of HM transform block
그림 7 은 구현한 HEVC 변환 블록에서의 변환 행렬 연산 결과에 대한 시뮬레이션이다. 그림 6 의 16진수 결과 값과 그림 7 의 16진수 결과 값을 비교했을 시 동일한 값이 나옴을 확인할 수 있다.
PPT Slide
Lager Image
설계한 변환 블록 결과 값 시뮬레이션 Fig. 7 Result of simulation of implemented transform block
IV. 구 현
제안하는 변환 블록은 Verilog HDL로 설계한 RTL 코드를 TSMC 0.18um CMOS 고정의 라이브러리와 함께 IDEC에서 지원하는 Synopsys 사의 Design Compiler를 통해 합성했다. 총 게이트 수는 49k이고, 4k(3840x2160)@30fps 영상을 동작 주파수 186MHz로 처리하였다. 표 2 는 기존에 제안되었던 1D 변환 블록들의 구조와 제안하는 1D 변환 블록을 비교한 것이다.
표에서 알 수 있듯이 총 게이트 수는 최근 제안된 구조와 비교하여 감소하였다. 제안한 구조는 4k@30fps 영상의 YCbCr값을 변환 블록에서 처리되는 1D 변환 블록의 사이클 수는 176이다. 따라서 2D 변환 블록을 구현하여 처리했을 시 제안된 구조에 비해 적은 사이클을 사용한다. 4k 영상을 처리하기 위한 최소 동작 주파수는 186MHz이고 최대 동작 주파수는 300MHz이다.
기존에 제안된 1D 변환 블록 구조들과 제안한 1D 변환 블록 구조와의 비교Table. 2 Comparison of previous 1D transform block and suggested 1D transform block
PPT Slide
Lager Image
기존에 제안된 1D 변환 블록 구조들과 제안한 1D 변환 블록 구조와의 비교 Table. 2 Comparison of previous 1D transform block and suggested 1D transform block
최근 제안된 구조 [5] 는 4k@30fps 영상 중 Y값만을 변환 블록에서 2D 변환 블록에서 처리되는 사이클 수가 481이고 최소 동작 주파수는 117MHz라는 점과 비교를 하였을 시 제안한 구조가 향상됨을 알 수 있다.
그림 8 은 TSMC 0.18um CMOS 공정 라이브러리로 구현한 제안하는 1D 변환 블록의 레이아웃이다.
PPT Slide
Lager Image
제안하는 1D 변환 블록 레이아웃 Fig. 8 Layout of proposed 1D transform block
V. 결 론
본 논문에서는 블록 크기를 최대 32x32 크기까지 지원하는 차세대 영상압축코덱인 HEVC 부호화기용 변환 블록을 효율적으로 구현하는 방법을 제시하였다. 기존에 제시된 변환 행렬의 계수 특성을 이용하여 전체 면적을 줄일 수 있는 상수 곱셈기를 사용하였고 기존의 변환 블록 하드웨어 구조와는 달리 계산 시간이 오래 걸리는 곱셈기 부분은 멀티 사이클 패스로 적용하여 보다 낮은 주파수에서 고화소 영상을 처리할 수 있고 용이하게 다중 블록 처리가 가능한 행렬 연산기를 구현하였다. 4k@30fps 영상을 처리하는 것을 기준으로 최근 제안된 구조와 비교했을 때 제안된 구조는 2D 변환 블록을 481 사이클 수를 사용한 반면 본 논문에서 제안한 구조는 1D만 구현하여 176 사이클이 걸렸다는 점이 최근 제안된 구조보다 적은 사이클로 동작하는 효율적인 구조임을 입증하였다.
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
Ahmed A. , Awais M. , Maurizio M. , Masera G. 2011 “VLSI implementation of 16-point DCT for H.265/HEVC using walsh hadamard transform and lifting scheme” IEEE Multitopic Conference, 14th 144 - 148
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
HEVC(High Efficiency Video Coding) Test Model, HM 10.0 https://hevc.hhi.fraunhofer.de/svn/syn_HEVCSoftware/tags/HM-10.0rc1/
Sung T. Y. , Shieh Y. S. , Yu C. W. , Hsin H. C. 2006 “High-Efficiency and Low Power Architectures for 2-D DCT and IDCT Based on CORDIC Rotation” Proceedings of International Conference on Parallel and Distributed Computing, Applications, and Technologies(PDCAT) 191 - 196
Chen J. W. , Hung K. , Wang J. S. , Guo J. I. 2006 “A Performance Aware IP Core Design for Multi-mode Transform Coding Using Scalable-DA Algorithm” Processing of International Symposium on Circuits and Systems(ISCAS) 21 - 24
Park J. S. , Nam W. J. , Han S. M. , Lee S. S. 2012 “2-D Large Inverse Transform(16x16, 32x32) for HEVC(High Efficiency Video Coding)” Journal of Semiconductor Technology and Science 12 (2) 203 - 211    DOI : 10.5573/JSTS.2012.12.2.203