논문 2015-52-12-19
고해상도 비디오 인코더 IP 설계에 대한 연구
( A Study on the Full-HD HEVC Encoder IP Design )
이 석 호*, 조 승 현*, 김 현 미*, 이 제 현***
( Sukho Lee
ⓒ, Seunghyun Cho, Hyunmi Kim, and Jehyun Lee )
요 약
본 논문에서는 고해상도(Full-HD)급의 비디오를 처리할 수 있는 고효율 비디오 코딩(HEVC) 표준을 따르는 인코더 IP 설계 에 대하여 기술한다. 설계된 IP는 HEVC 메인 프로파일 4.1급에 해당되며, 프레임 레이트는 60 fps 로 실시간 인코딩 가능하 다. 하드웨어 및 소프트웨어 IP 설계 전에 C 언어로 전체 참조 모델을 개발하였으며 고속처리를 위한 병렬처리구조와 저 전 력을 위한 스킵모드를 제안하였다. 또한 IP 관련 펌웨어 및 드라이버 프로그램을 작성하였다. IP 검증을 위한 플랫폼을 개발하 였고 설계된 통합 IP를 FPGA 보드로 구현하여 다양한 영상에 대하여 여러 인코딩 조건에서 기능 및 성능을 검증하였다.
HM-13.0대비 동일 PSNR에서 약 35% 정도의 비트율 감소와 저전력 모드에서 약 25% 정도의 전력 소모 감소 효과가 있었다.
Abstract
This paper presents a study on the Full-HD HEVC(High Efficiency Video Coding) encoder IP(Intellectual Property) design. The designed IP is for HEVC main profile 4.1, and performs encoding with a speed of 60 fps of full high definition. Before hardware and software design, overall reference model was developed with C language, and we proposed a parallel processing architecture for low-power consumption. And also we coded firmware and driver programs relating IP. The platform for verification of developed IP was developed, and we verified function and performance for various pictures under several encoding conditions by implementing designed IP to FPGA board. Compared to HM-13.0, about 35%
decrease in bit-rate under same PSNR was achieved, and about 25% decrease in power consumption under low-power mode was performed.
Keywords: Full-HD, HEVC, IP, CODEC, Encoder, Decoder
* 정회원, 한국전자통신연구원 시스템반도체연구부 (SoC Research Department, Electronics and Telecommunications Research Institute )
** 정회원, 동양미래대학교 전기전자통신공학부
(School of Electrical and Communication Engineering, Dongyang Mirae University)
ⓒ Corresponding Author(E-mail: [email protected])
※ 본 연구는 산업통상자원부 및 한국산업기술평가관 리원의 산업융합 원천기술개발사업(정보통신)의 일 환으로 수행하였음. [10039214,초고해상도 비디오 코덱 SoC]
Received ; September 16, 2015 Revised ; October 14, 2015 Accepted ; November 18, 2015
Ⅰ. 서 론
자연 그대로의 움직이는 모습을 사람이 보는 것과 똑 같은 느낌으로 디스플레이 장치에서 보고자 하는 욕구 는 동영상 압축 및 통신 기술의 놀라운 발전과 더불어 점차 현실이 되고 있다.
동영상 압축 표준은 ITU-T SG16/WP3의 VCEG (Video Coding Expert Group)과 ISO/IEC JTC1/
SC29/WG11의 MPEG(Moving Picture Expert Group) 에 의해 주로 개발되어져 왔다. 1990년 VCEG은 화상
서비스를 위한 H.261을 제정하였고[1], 1993년에 MPEG 은 비디오 CD의 저장 목적으로 MPEG-1을 제정하였 다. 이후 두그룹은 공동으로 표준화를 진행하여 MPEG-2/H.262를 제정하였으며 이 후 또다시 각자 표 준을 발표하던 두 그룹이 다시 협력 단체인 JVC(Joint Video Team)을 결성하여, 2003년 H.264/AVC를 발표하 였다.[2] HEVC는 2010년 독일의 드레스덴 모임을 2013 년 1월까지 초안 마련을 목표로 시작되었으며[3], HEVC는 H.264/AVC와 부호화/복호화는 유사하지만 압 축 성능은 H.264 하이프로파일과 비교하여 평균 두 배 의 압축효율 우위에 있으며 고속 병렬 처리가 가능하도 록 표준화한 것이다.
본 논문에서는 이 HEVC 표준에 따라 Full-HD급 비 디오를 인코딩하는 기능을 가지는 IP를 설계통합하고 그의 성능을 검증하는 연구에 대해 기술한다.
Ⅱ. 참조소프트웨어개발 및 비트율제어 최적화
1. FHD HEVC 인코더 참조모델
HEVC 하드웨어 인코더 IP 개발을 위해 HEVC 표준 화 기구인 JCT-VC에서 제공한 HM-13.0을 참조하여 참조 소프트웨어 모델을 설계하였으며 하드웨어 수준에 서 구현 가능한 기술들을 테스트할 수 있도록 구성하였 다. HM(HEVC reference model)은 초기 기술 및 추가 되는 기술에 대한 평가 및 검증을 위하여 개발되는 소 프트웨어이다.[4] 참조모델은 Window와 Linux 운영 체
그림 1. HPNC 플로우 챠트 Fig. 1. HPNC Flow Chart.
제에서 동작하도록 구현하였으며 컴파일을 위해 Visual studio나 Linux gcc를 사용하였다.
LCU (Large coding unit)단위로 병렬 처리되는 Intra prediction, FME (Fine motion estimation), TQ/ITQ, RDO (Rate distortion optimization) 및 Mode decision 을 포함하는 PMR 파이프라인 단계를 하드웨어 구성과 동기화 하였으며, 인코딩된 비트스트림을 MD5 검증 기 반 디코딩 시스템을 통해 검증함으로써 인코더 참조 모 델의 표준 호환성을 검증하였다.[5]개발된 참조모델의 전 체 흐름도는 그림 1과 같다.
2. 비트율제어 최적화
비트율제어(Rate control) 기능은 embedded software 형태로 구현되므로 이를 참조 소프트웨어상에서 C언어 의 함수 모델로 제공한다. 알고리즘은 세 가지 레벨 (Sequential, GOP and Frame level)을 반영한 네 가지 함수로 제공되며 HEVC 표준에서 추천된 R-lambda 모 델 기반 알고리즘을 참조하였으며[6], 복잡한 floating point 연산과 multi-pass I picture rate control 알고리 즘은 하드웨어 구성을 위해 복잡도가 낮은 연산으로 대 체되었다. 제안한 알고리즘은 integer 연산과 single-pass 알고리즘으로 구성되어 embedded software 형태로 제공되었고 개발한 소프트웨어를 사용
그림 2. 비트율제어 최적화 흐름도와 C함수 Fig. 2. Rate Control Optimization Flow Chart, C
Functions.
하여 검증하였다. 그림 2는 비트율제어 최적화 흐름도 와 관련된 C함수를 보였다.
Ⅲ. Full-HD HEVC 인코더 IP 개발
1. Full-HD HEVC 인코더 IP 구조
HEVC 인코더 IP는 300MHz 동작주파수에서 Full-HD 60fps의 입력영상을 처리할 수 있으며, 향후 4K-UHD 영상처리를 위해 멀티코어로 확장이 가능한 구조로 설계되었다. 그림 3은 싱글코어 인코더의 파이 프라인 구조를 나타냈다. 제안한 인코더는 32x32 크기 의 LCU 단위로 구분되는 5단계 파이프라인 구조를 갖 는다. 각 stage의 기능은 대략 다음과 같다.
그림 3. 인코더 전체 파이프라인 구조 Fig. 3. Encoder Pipeline Architecture.
y IL stage: 압축 할 original picture 및 Inter prediction을 위한 reference picture를 외부 메모 리로부터 read (Image Load) 하여 내부버퍼에 저 장한다.
y IME stage: integer-pel motion estimation을 수행 한다.
y PMR stage
- FME: IME stage에서 결정된 각 PU에 대해 fine motion estimation을 수행한다.
- MERGE SKIP: IME stage에서 결정된 각 CU에 대해 2Nx2N merge skip 예측을 수행한다.
- IPRED: 8x8,16x16 CU 사이즈에 대해 Intra prediction을 수행한다.
- MDEC: FME, MERGE, IPRED 예측결과를 바탕 으로 각 CU의 Inter-Intra 모드 결정을 수행한다.
- REC: reconstruction을 수행한다.
y ILF stage: current CTU에 대한 in-loop filtering,
즉 de-blocking filtering 및 SAO filtering을 수행 한다.
y EC stage: PMR 및 ILF stage로 부터 전달된 syntax element를 바탕으로 entropy coding을 수 행한다.
2. 정수배 움직임 탐색 (IME)
정수배 움직임 탐색 (Integer motion estimation) 은 현재 픽셀 (Original data) 정보와 참조픽셀(Reference data)을 읽어와 정수배 위치의 연산을 통해 최적화된 모션벡터(MV)를 얻는다.[7] IME는 주변 PMV (Predicated motion vector)를 기준으로 가로 +/-24, 세 로 +/-16의 범위 내에서 최소 정수배 MV를 찾는다. 참 조 메모리는 그림과 같이 160x96의 크기이며, 점선의 위치가 search의 기준인 PMV가 되고, PMV를 중심으 로 주변 영역을 래스터스캔 (Raster scan) 순서로 읽어 들여 4x4 SAD (Sum of absolute differences) 어레이에 입력 후 발생한 결과를 사용하여 동작을 진행한다. 제 안한 IME는 탐색범위의 가장 왼쪽 그리고 가장 위쪽 위치에서 시작하여 래스터스캔 방향으로 전역탐색 하도 록 되어있다. IME 의 탐색수는 48x32 = 1,536개가 존재 하게 된다. 각 IME search point에서 IME cost는 다음 식 (1)과 같이 계산한다.
JIME = SAD + LIME * BIME
(1)
여기서 SAD는 계산하고자 하는 PU (Prediction unit) 영역에 포함된 모든 4x4 SAD PE (Processing element)의 출력 값의 합이며, LIME는 QP (Quantization parameter)값에 따라 결정되는 값이다. 식에서 BIME는 현재 LCU로부터 PMV 만큼 떨어진 곳에 위치한 LCU 로부터 현재 탐색점으로 향하는 벡터의 크기를 나타내 기 위한 비트 수로 그림 4의 알고리즘으로 계산한다.BIME=0;
if (MVDIME<0)BIME+=1;
absMVDIME=|MVDIME|;
do { BIME+=1;
absMVDIME=absMVDIME>>1;
} while (absMVDIME=!0);
그림 4. BIME 계산 알고리즘 Fig. 4 BIME Calculation Algorithm.
그림 5. IME search range와 4x4 SAD 계산을 위한 luma 샘플 위치
Fig. 5. Luma sample position for IME search range and 4x4 SAD calculation.
정수배 탐색과 4x4 SAD 계산을 위한 luma 샘플의 위치를 그림 5에 나타냈다.
3. 소수배 움직임 탐색 (FME)
Prediction/Mode decision/Reconstruction Stage의 주 요 블록인 소수배 탐색부(FME)는 정수배 움직임벡터 를 중심으로 현재 픽셀과 참조 픽셀 정보를 읽어와 인 터폴레이션 (Interpolation) 연산을 통해 픽셀을 생성하
그림 6. FME를 수행하는 샘플 및 순서
Fig. 6. Samples and Sequences of FME execution.
고 최적화된 소수배의 모션벡터를 구한다. IME에서 결 정된 PU의 크기가 16x16보다 크면 32x32 Merge MV 위치, 8x8보다 크고 16x16보다 작거나 같으면 16x16 Merge MV 위치의 코스트를 먼저 계산하며 Merge Candidate의 개수는 두개이다. 이 후 IME의 결과 위치 주변의 49개의 소수배 픽셀 위치의 코스트를 계산한다.
소수배 위치 중 가장 작은 코스트, SATD (Sum of absolute transformed differences)를 갖는 MV의 위치 한개와 두개의 Merge candidate 중 작은 cost를 갖는 하나를 FME에서 결정한다. 어떤 결과를 최종 출력으로 내 보낼 것인지는 PMR에서 결정하게 된다. IME에서 결정된 각 PU에 대해, 그림 6에 나타낸 것처럼 half-pel
→ quarter-pel의 순서로 est integer-pel 및 best half-pel 위치 및 주변 소수샘플들을 포함하는 9개 위치 에 대해 각각 FME를 수행하여 수식 (2)에 기술한 SATD 기반의 RD-cost값이 최소인 지점을 찾아낸다.
JFME = SATD + LFME * BFME
(2)
4. 저 전력 모드
제안된 인코더는 일반적인 인코딩 모드 외에 저 전력 동작모드를 지원한다. 이 모드는 전체 인코더 중 가장 큰 면적을 차지하는 PMR stage의 DCT/IDCT transform 블록을 부분적으로 스킵함으로써 전력소모를 감소시키는데 이 때 동작방식 변경에 따른 화질열화를 최소화하기 위해 Merge Skip 모듈의 결과에 대한 RD-cost가 계산되기 전과 후에 각각 조건부 판단(스킵 1, 스킵 2)을 하게 된다.
스킵 1 또는 스킵 2 모드로 판단될 경우에는 해당 CU는 2Nx2N merge skip으로 판정되어 PMR stage의 나머지 동작을 생략하게 된다. 추가적으로 저전력 모드 동작 시에는 SAO (Sample adaptive offset) 필터를 수 행하지 않음으로써 전력소모를 더욱 억제시킨다. 소비 전력 예측을 위하여 65nm 공정라이브러리를 이용하여 시높시스사의 파워컴파일러를 이용하여 게이트 수준 평 균 소비전력 예측하였다. 정상모드에서는 평균 298mW 로 저전력 스킵모드시 평균 227mW 로 일반모드 대비 최대 25% 가량의 전력소모가 감소되었다. 이에 따른 화질열화는 참조소프트웨어에서 저전력 모드 사용시 그 렇지 않을 경우와 비교하여 동일화질에서 비트레이트 증가율은 약 10% 가량이다.
그림 7. 저전력 모드 동작에 따른 skip 블록 선택의 변 화
Fig. 7 Change of skip block selections in low-power mode.
그림 7에 저전력 모드 동작에 따른 스킵블록 선택의 변화를 나타냈다. 흑색으로 보이는 부분이 merge skip 으로 코딩된 블록이며 블록 인코딩시 저전력 모드로 동 작하는 구간이다. 좌측에 나타낸 일반모드에 비해 우측 나타낸 저전력 모드의 흑색 스킵 분포의 CTU 개수가 측정시 약 30%가량 많은 것을 볼 수 있으며 이는 전체 프레임에서 저전력 모드로의 진입이 더 커짐을 알 수 있다.
Ⅳ. 인코더 IP 통합 및 성능 검증
HEVC 인코더의 동작 및 성능을 검증하기 위해 IP 통합 후 RTL 시뮬레이션과 FPGA 보드 테스트를 실시 하였다. RTL 시뮬레이션에서 각 모듈의 입출력은 참 조모델에서 추출한 입출력과 동일한지 여부를 확인하였 고, 최종적으로 프레임메모리에 저장되는 복원영상 (REC)과 CABAC 인코더 모듈에서 출력되는 비트스트 림이 참조소프트웨어와 일치하는지 확인하였다. FPGA 보드 테스트에서는 RTL 시뮬레이션보다 다양한 시퀀 스, 다양한 QP, 많은 프레임 수에 대한 검증이 수행되 었다. 그림 8에 FPGA 보드 기반의 인코더 검증 및 시
그림 8. 제안한 HEVC 인코더 FPGA 검증 플랫폼 Fig. 8 HEVC FPGA Verification Platform.
연 시스템의 구성을 나타냈다.
FPGA 기반 테스트에서 하드웨어 인코더 출력 비트 스트림과 복원 영상을 소프트웨어모델의 결과와 매 프 레임 비교함으로써 각 IP의 동작을 검증하였다. 인코더 의 압축 성능은 동일한 원본영상에 대하여 참조소프트 웨어 압축결과와 HM 및 JM 소프트웨어의 압축결과를 비교함으로써 압축효율을 검증할 수 있다. 그림 9는 제 안한 인코더와 HM-13.0 및 H.264 압축효율을 비교한 RD (Rate distortion) 커브이다. H.264/AVC 와의 성능 분석은 JM-18.4의 참조소프트웨어와 비교 하였다.
테스트 시퀀스에 따라 차이는 있지만 동일 비트율에서 측정한 HM-13.0 참조소프트웨어 대비 구현된 인코더의 PNSR 저하는 평균 1.5dB 이다. 그림 10은 Full-HD 영상인 Kimono 테스트 시퀀스에 대한 제안한 인코더와 H.264 JM모델의 압축성능을 비교하는 RD 커브이다.
각 테스트에서 Y-PSNR 기준 38dB에서 측정한 비트
그림 9. HM-13.0과 HPNC의 압축성능 비교
Fig. 9 Compression Performance Comparisons between HM-13.0 vs HPNC
그림 10. H.264 기반 제품과의 압축성능 비교
Fig. 10 Compression Performance Comparision between H.264-based product vs HPNC
율 개선은 약 52%로 나타났다. 이는 38dB의 화질을 표 현하기 위해 제안한 인코더 IP가 H.264 와 비교하여 두배의 압축효율을 가지고 있음을 나타낸다.
Ⅴ. 결 론
본 논문에서는 고해상도(Full-HD)급의 비디오를 처 리할 수 있는 고효율 비디오 코딩(HEVC) 표준을 따르 는 인코더 IP를 설계하였다. 설계된 IP는 HEVC 메인 프로파일 4.1급에 해당되며 프레임 레이트는 60 fps로 실시간 인코딩한다. 하드웨어 및 소프트웨어 IP 설계 전에 C 언어로 전체 참조 모델을 개발하였으며 병렬처 리 구조와 저 전력을 모드를 제안하였으며 IP 관련 펌 웨어 및 드라이버 프로그램을 개발하였다. 개발된 IP의 검증을 위하여 설계된 IP를 FPGA 보드로 구현하여 다 양한 영상에 대하여 여러 인코딩 조건에서 기능 및 성 능을 검증하였다. HM-13.0 기반의 참조소프트웨어 실 험 결과 테스트 시퀀스별 기존 대비 동일 PSNR에서 약 35% 정도의 비트율 감소와 저전력 모드에서 약 25% 정도의 전력 소모 감소 효과가 있었음을 확인할 수 있었다. 현재 제안한 인코더 IP와 개발된 디코더 IP 를 Full-HD에서 초고해상도(UHD)급으로 재설계하여 통합 코덱 IP를 개발하고 이를 SoC로 구현하는 연구를 진행하고 있다.
REFERENCES
[1] G.Morrison "Video coding standards for multimedia : JPEG,H.261,MPEG," IEE Colloq.
on Technol, Support of Multimedia, pp. 2/1-2/4,
Apr. 1992[2] A.Tamhankar, and K.R.Rao, “An overview of H.263/MPEG-4 Part 10,” IEEE 4th
EURASIP Conf. focused on Video/Image Process, and Multimedia Commun., pp. 1-51, 2003
[3] Gray J. Sullivan, Jens-Rainer Ohm, and W.Han,
“Overview of high efficiency video coding (HEVC) standard,” IEEE Trans. on Circuits
Syst. Video Technol., vol. 22, no. 12, pp.
1649-1668, Dec. 2012
[4] Joint
Collaborative Team on Video Coding(JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, “HM-10.0
reference software,”https://hevc.hhi.fraunhofer.de/svn/svn_HEVC Software/tags/HM-10.0
[5] Yongjo Ahn, Taejin Hwang, Sungeun Yoo, Woo-Jin Han, and Donggyu Sim, “Statistical Characteristics and Complexity Analysis of HEVC Encoder Software”, vol.17, no.6, pp.
1091-1105, Nov.2012
[6] Seunghyun Cho, Hyunmi Kim, and Sukho Lee,
“Implementation of Inter Prediction for 124-Mpixels/s Hardware HEVC Encoders”, Nov.
2014.
[7] G. Sullivan and T. Wiegand, “Rate-distortion optimization for video compression,”
IEEE Signal Processing Magazine, Vol. 15, pp. 74-99,
Nov. 1998[8] Iain E. G. Richardson, “Motion estimation and
compensation in Video codec design", Aberdeen,
UK, Wiley, pp. 932-1241, 2002저 자 소 개 이 석 호(정회원)
2010년 충남대학교 정보통신 공학과 박사
1999년~2015년 현재 한국전자 통신연구원 시스템반도체 연구부 책임연구원
<주관심분야 : 영상처리, 영상압축, 멀티미디어 SoC 설계>
조 승 현(정회원)
2003년 경북대학교 전자전기 공학부 학사
2006년 KAIST 전자공학과 석사 2015년 KAIST 전자공학과 박사 2006년~2015년 현재 한국전자
통신연구원 시스템반도체 연구부 선임연구원
<주관심분야 : SoC 설계, 영상압축, 신호처리>
김 현 미(정회원)
2004년 인하대학교 전자공학 학사 2006년 인하대학교 전자공학 석사 2010년~2015년 현재 UST컴퓨터 소프트웨어 공학 박사과정 중
2012년~2015년 현재 한국전자 통신연구원 시스템반도체 연구부 선임연구원
<주관심분야 : 멀티미디어, 영상신호처리, 반도체 설계>
이 제 현(정회원)
1983년 아주대학교 전자공학과 학사
1985년 KAIST 전기및전자공학과 석사
1985년~1990년 한국전자통신 연구원 자동설계부 1990년~1993년 STM Korea Design Center 1993년~1996년 전자부품연구원 ASIC Center 1996년~1999년 KAIST 반도체설계교육센터 1999년~2015년 현재 동양미래대학교 전기전자
통신공학부 부교수
<주관심분야 : ASIC, FPGA, VHDL, 디지털시스 템설계>