DOI QR코드

DOI QR Code

A Programmable Multi-Format Video Decoder

프로그래머블 멀티 포맷 비디오 디코더

  • Kim, Jaehyun (Seoul National University of Science and Technology, Graduate School of NID Fusion Technology) ;
  • Park, Goo-man (Seoul National University of Science and Technology, Graduate School of NID Fusion Technology)
  • 김재현 (서울과학기술대학교 NID융합기술대학원) ;
  • 박구만 (서울과학기술대학교 NID융합기술대학원)
  • Received : 2015.10.13
  • Accepted : 2015.11.23
  • Published : 2015.11.30

Abstract

This paper introduces a programmable multi-format video decoder(MFD) to support HEVC(High Efficiency Video Coding) standard and for other video coding standards. The goal of the proposed MFD is the high-end FHD(Full High Definition) video decoder needed for a DTV(Digital Tele-Vision) SoC(System on Chip). The proposed platform consists of a hybrid architecture that is comprised of reconfigurable processors and flexible hardware accelerators to support the massive computational load and various kinds of video coding standards. The experimental results show that the proposed architecture is operating at a 300MHz clock that is capable of decoding HEVC bit-stream of FHD 30 frames per second.

본 논문에서는 최신 압축 표준인 HEVC(High Efficiency Video Coding)를 포함한 다양한 비디오 압축 표준을 처리할 수 있는 프로그래머블 멀티 포맷 복호기(Multi-Format video Decoder: MFD)를 제안한다. 제안한 MFD는 DTV(Digital Tele-Vision) SoC(System on Chip)에 필요한 고사양의 FHD(Full High Definition) 비디오 복호기를 목표로 하였다. 다양한 동영상 압축 표준과 방대한 연산 능력을 지원하기 위하여 제안된 플랫폼에서는 재구성형 프로세서(reconfigurable processor)와 하드웨어 가속기의 하이브리드 구조를 사용하였다. 실험결과 HEVC로 압축된 초당 30장의 FHD 영상을 300MHz에서 디코딩 가능함을 확인하였다.

Keywords

Ⅰ. 서 론

매체를 통한 동영상 데이터 전송량이 지속적으로 증가함에 따라 기존 압축 기술보다 효율이 높은 새로운 압축 기술들이 요구되고 있다. 기존 압축 방식인 H.264/AVC(Advanced Video Coding) 보다 2배 우수한 최신 압축표준인 HEVC가 2013년에 완성되어 여러 분야에서 많이 사용되고 있다. 구글의 유튜브(YouTube) 서비스의 경우도 기존 동영상 압축 기술인 VP8보다 우수한 VP9 기술을 2013년에 공개하여 사용하고 있다. 중국에서는 AVS(Audio Video System)라는 멀티미디어 응용기기를 위해 오디오/비디오 압축표준을 사용하고 있으며, 기존 AVS1을 대신할 AVS2를 2014년에 완성하였으며 향후 DTV를 포함한 멀티미디어 기기에서 AVS2 지원이 필요하게 되었다.

압축 표준들을 하드웨어로 따로 구현하여 SoC에 집적하는 방식으로는 비용 측면에서 손실이 크므로 공통되는 기능 및 메모리 자원을 최대한 공유하는 방식으로 멀티 포맷비디오 복호기(MFD)를 개발하고 있다[1] 이러한 하드웨어 솔루션의 경우 제품 응용에 따라 요구되는 압축 표준들의 종류가 바뀌게 되어 코덱들을 추가 또는 제거하거나 사양을 변경해야 하는 경우 쉽게 그리고 짧은 시간에 대응하기어렵다. 한편 소프트웨어 솔루션의 경우는 다양한 압축 표준에 빠른 대응이 쉽지만 상대적으로 소비전력 및 성능 측면에서 하드웨어 솔루션에 비해 불리하다. 이러한 단점을 극복하기 위하여 Y. Kikuchi[2]는 프로세서와 하드웨어 가속기를 함께 사용하는 방법을 제안하였지만 FHD급 영상을 디코딩할 수 있는 성능이 부족하고 제한된 압축 표준만을 지원하는 단점이 있다. 본 논문에서는 유연성(flexibility)과 성능(performance)간의 trade-off 관계를 고려하여 대규모 연산 병렬처리에 유리한 구조의 재구성형 프로세서(RP:Reconfigurable Processor), 비트스트림 전용 프로세서 및 프로세서와 SDRAM 간의 고속 데이터 처리를 위한 플렉서블한 하드웨어 가속기를 사용하여 다양한 압축 표준을 실시간 디코딩할 수 있는 프로그래머블 멀티 포맷 비디오 디코더를 제안한다. SoC 내부에 프로세서 기반의 동영상 압축 솔루션이 내장되면 새로운 압축 표준이 나올 때마다 SoC를 개발하지 않아도 되며 동영상 재생 외에 다른 기능으로도 활용 가능한 장점이 있다.

 

Ⅱ. 기존 연구 및 문제점

본 논문에서 사용한 재구성형 프로세서는 멀티미디어 응용의 병렬성을 최대로 이용하기 위해 다수 개의 FU(Function Unit)으로 구성된 CGRA(Coarse Grain Reconfigurable Array) 구조의 고성능 프로세서이다[3]. 본 논문에서 사용한 재구성형 프로세서는 VLIW(Very Long Instruction Word) 모드와 CGA(Coarse Grain Array) 모드 두 가지를 지원한다. VLIW 모드는 명령어 레벨 병렬화(instruction level parallelism)를 극대화 하는데 주로 사용하고 CGA 모드는 데이터 레벨 병렬화(data level parallelism)를 극대화 하는데 사용한다. 본 논문에서는 16개 FU로 구성된 재구성형 프로세서를 사용하였다. 프로세서 기반의 복호기로 압축된 동영상을 재생할 경우의 문제점들은 다음과 같다. CABAD(Context-based Adaptive Binary Arithmetic Decoder) 같은 엔트로피 디코딩 처리의 경우 연산들 사이에 상관관계가 매우 높아 재구성형 프로세서에서는 한 클럭에 많은 명령어를 수행하지 못하고 평균 1.5개의 명령어를 수행하게 되어 높은 비트레이트(bit rate)로 압축된 경우에 실시간 처리가 불가능하다. 두 번째로 복호화 시 움직임 보상(motion compensation)이나 디블록킹 필터(de-blocking filter) 등의 처리과정에서 영상 데이터를 읽고 쓰는 과정이 매우 많아 메모리 대역폭(memory bandwidth)을 저감하는 기술이 매우 중요하다. 마지막으로 비디오 디코딩 과정에서의 제어 연산이 전체 연산에서 40% 정도로 많이 차지하므로 제어 연산을 담당하는 VLIW 모드와 산술 연산을 담당하는 CGA 모드와의 병렬동작으로 전체 시스템의 성능을 높이는 것이 중요하다[4]. 이러한 문제점들을 해결하기 위하여 본 논문에서는 비트스트림 가속을 위한 전용 프로세서, 메모리 대역폭 저감을 위한 전용 메모리 컨트롤러, 움직임 보상을 위한 전용 하드웨어 가속기 및 프로세서와 가속기 간의 병렬처리를 사용하였다.

 

Ⅲ. 제안된 멀티 포맷 복호기 (MFD)

제안한 범용 비디오 디코더의 구조를 그림 1에 나타내었다. 제안된 시스템은 입력된 비트스트림을 분할하고 엔트로피 디코딩을 수행하는 비트스트림 처리부(BsPU: Bitstream Processing Unit), 비디오 디코딩 과정에서의 외부 SDRAM 과의 메모리 대역폭을 줄이기 위한 메모리 컨트롤러와 움직임 보상 연산의 가속을 위한 보조프로세서가 포함된 메모리 처리부(MemPU: Memory Processing Unit), 엔트로피 디코딩을 제외한 나머지 디코딩 모듈의 가속처리를 위한 두 개의 재구성형 프로세서로 구성되었다.

그림 1.MFD 블럭도 Fig. 1. Block diagram of MFD

비트스트림 처리부(BsPU)는 모든 압축 표준을 대응하고 높은 비트레이트를 처리하기 위해서 허프만(Huffman) 디코딩과 적응적 이진 산술부호화(CABAC) 디코딩을 가속하는 전용 엔진으로 구현되었다. 비트스트림 제어부는 비트스트림이 저장된 외부메모리와 엔트로피 디코딩 엔진 사이의 실시간 데이터 공급을 위하여 비트 획득(bit acquisition), 테이블 매핑(table mapping) 및 비트 위치 업데이트(bit position update)를 지원하는 가속기로 구성되어 있다. 비트 연산은 프로세서의 기본 명령어를 사용하면 24 클럭이 소요되므로 비트스트림 처리에 필요한 연산을 가속할 수 있는 전용 명령어를 사용하여 전체 throughput을 높였다.

메모리 처리부(MemPU)는 프로세서 내부에 있는 메모리와 외부 SDRAM간의 빠른 데이터 전송을 위한 메모리 컨트롤러 역할을 한다. 타일(tile) 형태의 SDRAM 접근으로 버스트 길이(burst length)를 최대화 하여 데이터 전송 효율을 높였고 다중 아웃스탠딩 전달(multiple outstanding transfer)을 사용하여 메모리 접근 대기시간(latency)을 줄였다. 8KB 크기의 픽셀 캐시(pixel cache)를 두어 데이터 전송의 횟수를 줄여 메모리 대역폭을 절감하였다. 또한 움직임 보상 연산의 가속을 위하여 MemPU 내부에는 화면의 경계영역 패딩(boundary padding)과 부화소 보간(sub-pixel interpolation)을 위한 가속기를 포함하고 있다.

그림 2는 비디오 디코딩 과정에서 병렬 처리를 위한 주요 함수들의 구성을 나타낸다. 비디오 디코딩 과정을 병렬 처리하기 위하여 BsPU에서 슬라이스 단위로 엔트로피 디코딩, 역 양자화 과정과 인트라 모드 디코딩도 함께 수행한다.

그림 2.병렬 처리를 위한 비디오 코덱에서의 주요 함수 구성도 Fig. 2. Key functions of video decoder for parallel processing

나머지 디코딩 과정은 픽셀 디코딩(Part 0), 복원된 픽셀의 후처리(Part 1) 및 MemPU에서의 움직임 보상을 위한 가속처리 과정으로 구성되며 병렬 처리를 통하여 성능을 향상시킨다. 그림 3은 매크로 블록(MB: Macro-Block) 또는 부호화 트리 단위(CTU: Coding Tree Unit)로 디코딩할 경우에서의 순차 처리, 병렬 처리 및 하드웨어 가속기를 사용한 파이프라인 병렬 처리 과정을 나타낸다.

그림 3.복호기에서의 파이프라인 병렬 처리 과정 Fig. 3. Pipelined-parallel processing in the video decoder

엔트로피 디코딩과 역양자화 과정을 거친 입력 데이터로 부터 복호화된 출력 영상을 만들기 위하여 모듈 단위의 파이프라인 병렬 처리가 수행된다. VLIW 모드와 CGA 모드에 병렬 파이프라인 기법을 적용하여 제안한 플랫폼의 자원 활용을 극대화하고 처리시간도 단축시킬 수 있으며 디코더의 성능을 더 높이기 위하여 움직임 예측을 위한 하드웨어 가속기도 함께 병렬 동작 시키는 구조다.

 

Ⅳ. 실험 및 결과

본 논문에서 제안한 MFD 성능을 평가하기 위하여 가장 복잡한 압축 표준인 HEVC를 사용하여 실험하였다. HEVC 디코더 소프트웨어를 제안한 시스템에 구동될 수 있도록 모듈 단위 재구성 작업과 동작 속도 향상을 위한 최적화 작업을 진행하였다. 실험에 사용한 영상은 HEVC 표준화를 위해 사용하였던 832x480 해상도인 Class C의 BasketBall drill, BQ Mall 시퀀스(sequence)와 1920x1080 해상도인 Class B의 시퀀스를 사용하였다. HEVC main profile 모드에서 서로 다른 비트레이트로 (6/8/10Mbps) 인코딩한 비트스트림을 사용하였다. 프로세서에서 사용한 메모리는 총 227KB이다 (Instruction Cache 96KB, Internal Memory 80KB, Configuration Memory 51KB). 제안한 프로그래머블 디코더의 전체 하드웨어 사이즈는 45nm 공정에서 6.32M Gate Count (로직 2.78M G/C, 메모리 3.54M G/C) 규모이다. Class C 영상에 대하여 DSP 기반의 기존 논문[5]과 제안한 MFD와의 성능 비교를 그림 4에 나타내었다.

그림 4.Class C 영상에서의 복호기 성능 비교 Fig. 4. Comparison of decoding performance for Class C sequences

기존 논문에서는 초당 9 프레임을 복호화 하는데 비하면 제안한 MFD에서는 150 프레임 이상을 복호화 하였다. 또한 움직임 보상을 위하여 하드웨어 가속기를 사용할 경우 소프트웨어만 사용하는 것에 비해 30% 더 성능이 향상되었다. 표 1은 FHD 해상도의 영상에서 서로 다른 부호량으로 압축된 비트스트림에 대한 동작 주파수를 나타낸다. 10Mbps로 압축되어도 300MHz 낮은 동작 주파수에서 FHD 영상을 재생할 수 있음을 알 수 있다.

표 1.Class B 에서 부호량에 따른 필요 주파수 Table 1. Required clock frequency according to bit-rate in Class B

 

Ⅴ. 결 론

본 논문에서는 재구성형 프로세서 기반의 멀티 포맷 비디오 복호기를 제안하였다. MPEG-2 압축표준부터 최신 압축 표준인 HEVC 그리고 중국 국가표준인 AVS2까지 다양한 압축 표준에 대한 디코딩이 가능한 복호기는 움직임 보상 처리를 위한 하드웨어 가속기를 포함한 하이브리드 구조를 통하여 복호화 성능을 기존보다 30% 이상 향상하였다. 제안된 시스템으로 HEVC 표준 10Mbps로 압축된 초당 30장 FHD급 영상의 비트스트림을 300MHz 이하에서 실시간 디코딩이 가능함을 확인하였다.

References

  1. Chih-Da Chien, et al., “A 252kgates/71mW Multi-Standard Multi-Channel Video Decoder for High Definition Video Application,” ISSCC Dig. Tech. Papers, pp. 282-283, Feb. 2007.
  2. Y. Kikuchi et al. “A 40nm 222mW H.264 Full-HD Decoding, 25 Power Domains, 14-Core Application Processor With x512b Stacked DRAM.” IEEE Trans. Journal of Solid-State Circuits, vol. 46. no. 1, pp. 32-41, Jan. 2011. https://doi.org/10.1109/JSSC.2010.2079370
  3. D. Suh, K. Kwon, S. Kim, S. Ryu, and J. Kim, “Design space exploration and implementation of a high performance and low area Coarse Grained Reconfigurable Processor,” in Proceedings of 11th International Conference on Field- Programmable Technology (ICFPT ’12). IEEE, pp. 67–70, 2012.
  4. S. Lee, J. Song, W. Lee, D. Kim, and J. Kim, "DSP based programmable FHD HEVC decoder," Design, Automation & Test in Europe Conference & Exhibition(DATE), pp. 972-973, 2015.
  5. F. Pescador et al., “A DSP HEVC decoder implementation based on OpenHEVC,” In Proc. IEEE Int. Conference on Consumer Electronics, pp61-62, Jan. 2014.