서지주요정보
(A) Low Cost CABAC Decoding Architecture with Pre-calculation of Context Index = 문맥인덱스 선계산을 이용한 저 전력 CABAC 디코딩 아키텍쳐
서명 / 저자 (A) Low Cost CABAC Decoding Architecture with Pre-calculation of Context Index = 문맥인덱스 선계산을 이용한 저 전력 CABAC 디코딩 아키텍쳐 / Ah-Chan Kim.
저자명 Kim, Ah-Chan ; 김아찬
발행사항 [대전 : 한국과학기술원, 2009].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8020030

소장위치/청구기호

학술문화관(문화관) 보존서고

MEE 09009

휴대폰 전송

도서상태

이용가능

대출가능

반납예정일

초록정보

CABAC (Context-based Adaptive Binary Arithmetic Coding) is an important entropy coding method for H.264/AVC. CABAC achieves significant compression enhancement while bringing greater computational complexity. The decoding of CABAC imposes a heavy performance requirement on H.264/AVC decoding system. CABAC decoder should at least reach 100Mbps throughput to decode HD1080i@60Hz video format in real-time. To achieve this requirement, many other works exploit effective pipeline architectures although CABAC decoding process is highly sequential and has strong data dependencies which make it difficult to implement the parallel process scheme. However, power dissipation is greatly increased and many H/W resources are needed to solve these data dependency problems in CABAC decoding. Most of other works use large size of memory or many internal registers, and they spend large amount of power for memory operation. In this paper, we analyze the data dependency of CABAC decoding process and propose a new hardware architecture for CABAC decoding. Since the power is mostly consumed for memory operation in CABAC, effective context access scheme is surely necessary. The proposed decoder needs an operation of 1 byte memory read and write in each cycle, and uses only 459 byte context memory. Experimental results show that the proposed CABAC decoder synthesized using 0.18um standard cell library achieves 1 bit/cycle throughput and can operate in 141MHz frequency which meets the real-time decoding requirement of HD1080i@60Hz video format. Our decoder also minimizes gate count, context memory size and power consumption for memory access to achieve this throughput.

CABAC (Context-based Adaptive Binary Arithmetic Coding) 은 H.264/AVC에서 Entropy Coding의 방법의 하나로 사용되는 압축방식으로 Arithmetic Coding을 기본 원리로 하여 이론적인 압축률의 한계에 가까운 압축률을 얻을 수 있으며 역시 H.264/AVC baseline profile 에서 사용되고 있는 CAVLC에 비해서도 10 - 15 퍼센트 정도 좋은 압축률을 제공한다. 따라서 CABAC은 높은 압축률이 필요한 Main profile 과 High profile에서 주로 쓰인다. 하지만 CABAC은 그 부호화, 복호화 과정이 대단히 복잡하다. CABAC에서는 매 bit를 처리할 때마다 Context를 메모리로부터 읽어오고 또 그 값을 Update하여 다시 메모리에 write하는 작업을 수행하기 때문에 메모리 Access로 인한 Power가 매우 커지게 되며 이는 로직의 동작에 소모되는 power보다 훨씬 더 큰 비중을 차지하게 된다. 또한 CABAC의 동작은 매우 Sequential 한 연산으로 그 Data Dependency가 높아서 효과적인 Pipeline을 구성하기가 어렵다. 이를 해결하고 높은 throughput을 달성하기 위한 연구가 그 동안 진행되어져 왔으나 대부분 이 dependency를 해소하기 위해서 큰 크기의 메모리를 사용하고 또한 한 번에 여러 개의 Context를 읽어오는 방식을 사용함으로써 메모리 access에 소모되는 전력이 크게 증가하였다. 이를 해결하고 저 전력으로 높은 throughput을 달성하기 위해서 본 논문에서는 Data dependency를 고려하여 CABAC 디코딩을 효과적으로 수행할 수 있는 새로운 architecture를 제안하였다. CABAC 디코딩에서는 n번째 bit의 디코딩에 사용될 Context Index를 알기 위해서는 (n-1)번째 bit의 디코딩된 값이 필요하게 되며 이것이 Pipeline hazard를 일으키는 중요한 원인이 된다. 제안된 architecture는 (n-1)번째 bit를 처리할 때 (n)번째 bit의 처리에 사용될 Context Index를 계산하게 되며 (n-1)번째 bit를 처리할 때 수행해야할 Renormalization을 n번째 bit를 처리할 때 수행함으로써 그 Data dependency를 해결하였다. n번째 bit의 처리에 사용될 Context를 읽는 동안 (n-1)번째 bit에서 수행했어야 할 Renormalization을 동시에 수행할 수 있으며 이들은 Data의 의존성 없이 Parallel하게 수행이 가능한 부분이다. 이렇게 함으로써 합성의 constraint를 완화하여 좀 더 적은 수의 gate로 구현이 가능하게 되었다. 위와 같은 새로운 Architecture로 CABAC의 디코딩 과정을 매 cycle마다 1bit씩 처리가 가능하게 되었다. 이와 같은 구조를 사용할 경우 Context 를 읽기 전에 어떤 Context 가 사용될지 정확하게 알 수 있으므로 매 cycle 마다 1개의 context 만을 읽고 쓰면 된다. 이는 타 논문들에서 보여 지는 SE switching 때마다 8개 혹은 15개씩의 context들을 읽어오는 메모리 access 방법보다 power 면에서 훨씬 더 효과적이다. 메모리를 읽고 쓰는 데 소모되는 전력이 로직의 동작에 소모되는 전력보다 훨씬 더 큰 비중을 가지는 것을 생각했을 때 제안된 구조는 타 논문들에 비해서 많은 양의 전력을 줄일 수 있었다. 또한 타 논문들이 병렬처리를 위해서 여러 개의 코딩유닛을 사용함으로써 그 Area가 증가한 데 비해서 제안된 디코더는 CABAC 디코딩의 가장 기본적인 블록만으로 작업을 수행하므로 하드웨어 자원을 최소화 할 수 있었다. 본 논문에서는 제안된 새로운 Architecture를 적용하여 Verilog HDL 을 통해서 H/W를 구현하였다. 이를 검증하기 위해서 H.264 Reference S/W인 JM 14.0 코드를 통해서 여러 시퀀스에서 CABAC 디코더의 입력으로 들어오는 Bitstream을 구현된 H/W의 입력으로 사용하였으며 역시 JM 14.0 코드에서 CABAC decoder를 거친 Bitstream과 구현된 H/W의 출력을 비교하여 제안된 CABAC 디코더를 검증하였다. 제안된 Architecture는 Synopsys 의 Design Compiler를 이용하여 합성을 수행하였으며 합성에는 Samsung 0.18um 공정의 표준 라이브러리를 사용하였다. 합성된 CABAC 디코더는 비슷한 속도를 가지는 타 논문에 비해서 30% - 60% 정도의 전력을 줄일 수 있었으며 메모리의 크기까지 고려하였을 때 20% - 30% 정도의 면적을 줄일 수 있었다. 또한 1 bit/cycle의 Throughput을 달성하였으며 이를 약 141MHz의 일정한 속도로 처리할 수 있어서 141Mbps의 처리 속도를 보여주었다. 이는 HD1080i@60Hz 의 시퀀스를 실시간으로 디코딩하기에 충분한 속도이며 이 속도를 달성하기 위한 하드웨어 자원과 파워를 최소화하였으므로 실제로 H.264/AVC 디코딩 시스템에서 동작하기에는 가장 적절한 구조가 될 것으로 기대된다.

서지기타정보

서지기타정보
청구기호 {MEE 09009
형태사항 vi, 42 p. : 삽도 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 김아찬
지도교수의 영문표기 : Chong-Min Kyung
지도교수의 한글표기 : 경종민
학위논문 학위논문(석사) - 한국과학기술원 : 전기및전자공학전공,
서지주기 References : p. 41-42
주제 CABAC;Context;Low power;;
카박;문맥인덱스;저전력;;
QR CODE qr code