Abstract
In this paper, CABAC H/W module is developed using co-design method. After entire H.264/AVC encoder was developed with C using reference SW(JM), CABAC H/W IP is developed as a block in H.264/AVC encoder. Context modeller of CABAC is included on the hardware to update the changed value during binary encoding, which enables the efficient usage of memory and the efficient design of I/O stream. Hardware IP is co-operated with the reference software JM of H.264/AVC, and executed on Virtex-4 FX60 FPGA on ML410 board. Functional simulation is done using Modelsim. Compared with existing H/W module of CABAC with register-level design, the development time is reduced greatly and software engineer can design H/W module more easily. As a result, the used amount of slice in CABAC is less than 1/3 of that of CAVLC module. The proposed co-design method is useful to provide hardware accelerator in need of speed-up of high efficient video encoder in embedded system.
본 논문에서는 CABAC (context adaptive binary arithmetic coding)를 하드웨어로 구현하기 위하여 병행설계 (co-design) 기법을 사용하였다. H.264/AVC의 부호기 전체를 C언어로 개발하고, CABAC만을 하드웨어 IP로 설계하고, H.264/AVC의 나머지 부분은 소프트웨어로 설계하였다. CABAC의 문맥모델러 부분을 하드웨어로 설계하여 연산값을 지속적으로 업데이트시킴으로써 메모리를 효율적으로 사용하고 스트림을 절감시키는 설계를 하였다. 설계된 IP는 Xilinx ML410 보드의 Virtex-4 FX60 FPGA에 다운로드하여 MicroBlaze CPU를 이용하여 H.264/AVC의 참조 소프트웨어인 JM과 연동하도록 설계하였다. 기능 시뮬레이션은 ModelSim을 이용하였다. 기존의 CABAC 하드웨어 모듈이 레지스터 레벨에서 설계하여 개발기간이 오래 걸리는데 비하여 본 논문의 설계 기법은 소프트웨어 엔지니어가 쉽게 하드웨어를 개발하는 것이 가능해지는 장점이 있으며 설계시간도 짧다. 또한, 동일한 방법으로 구현된 CAVLC 모듈과 Slice 사용량을 비교해볼 때, 1/3 이하로 감축됨을 보였다. 본 연구에서 제시한 개발 방법은 임베디드 환경에서 고성능 동영상 압축 부호화시 하드웨어 가속기가 필요한 부분을 설계할 때 유용할 것으로 보인다.