본 논문에서는 AMBA 기반으로 사용될 수 있는 H.264용 Encoder Hardware 모듈 (Intra Prediction, Deblocking Filter, Context-Based AdaptiveVariable Length Coding, Motion Estimation)을 Integration하여 설계하였다. 설계된 모듈은 한 매크로 블록당 최대 440 cycle내에 동작한다. 제안된 인코더 구조를 검증하기 위하여 JM 9.4부터 reference C를 개발하였으며, reference C로부터 test vector를 추출하여 설계 된 회로를 검증하였다. 제안된 회로는 최대 166MHz clock에서 동작하며, 합성결과 Charterd 0.18 um 공정에 램 포함 약 173만 gate 크기이다. MPW제작시 chip size $6{\times}6mm$의 크기와 208 pin의 Package 형태로 제작 하였다.
본 논문에서는 AMBA 기반으로 사용될 수 있는 H.264용 Encoder Hardware 모듈 (Intra Prediction, Deblocking Filter, Context-Based Adaptive Variable Length Coding, Motion Estimation)을 Integration하여 설계하였다. 설계된 모듈은 한 매크로 블록당 최대 440 cycle내에 동작한다. 제안된 인코더 구조를 검증하기 위하여 JM 9.4부터 reference C를 개발하였으며, reference C로부터 test vector를 추출하여 설계 된 회로를 검증하였다. 제안된 회로는 최대 166MHz clock에서 동작하며, 합성결과 Charterd 0.18 um 공정에 램 포함 약 173만 gate 크기이다. MPW제작시 chip size $6{\times}6mm$의 크기와 208 pin의 Package 형태로 제작 하였다.
In this paper, we propose H.264 Encoder integrating Intra Prediction, Deblocking Filter, Context-Based Adaptive Variable Length Coding, and Motion Estimation encoder module. This designed module can be operated in 440 cycle for one-macroblock. To verify the Encoder architecture, we developed the ref...
In this paper, we propose H.264 Encoder integrating Intra Prediction, Deblocking Filter, Context-Based Adaptive Variable Length Coding, and Motion Estimation encoder module. This designed module can be operated in 440 cycle for one-macroblock. To verify the Encoder architecture, we developed the reference C from JM 9.4 and verified the our developed hardware using test vector generated by reference C. The designed circuit can be operated in 166MHz clock system, and has 1800K gate counts using Charterd 0.18 um process including SRAM memory. Manufactured chip has the size of $6{\times}6mm$ and 208 pins package.
In this paper, we propose H.264 Encoder integrating Intra Prediction, Deblocking Filter, Context-Based Adaptive Variable Length Coding, and Motion Estimation encoder module. This designed module can be operated in 440 cycle for one-macroblock. To verify the Encoder architecture, we developed the reference C from JM 9.4 and verified the our developed hardware using test vector generated by reference C. The designed circuit can be operated in 166MHz clock system, and has 1800K gate counts using Charterd 0.18 um process including SRAM memory. Manufactured chip has the size of $6{\times}6mm$ and 208 pins package.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 H.264/AVC 용 인코더를 칩으로 제작하고, 그 과정 및 결과를 제시하였다. 제작된 H.
설계된 H.264 인코더의 구조를 설명하기에 앞서 H.264 인코더의 각각 모듈에 대한 설명을 하고자 한다. 그림 2.
제안 방법
처음 데이터를 외부 버퍼에서 모듈내 메모리에 저장 되는 사이클 194사이클과 레지스터를 셋팅하는 3사이클, 1화소 단위의 탐색, 반화소 단위의 탐색과 이를 위한 인터폴레이션 작업 사이클 366사이클로 총 소요되는 사이클은 652 사이클 이다. HD급의 영상을 처리하기 위해서 1매크로블록이 처리 되는 시간은 440사이클 이내로 해야 된다는 점을 감안하여, 외부 버퍼에서 내부 메모리로 저장되는 사이클과 SAD값을 계산하는 사이클을 2단 파이프라인을 통하여 최대 366사이클로 처리가 가능하게 설계 하였다.
제작 시 Synopsys사의 Design Compiler로 합성하고, Astro 툴로 Layout 하였으며, Mentor Graphics사의 칼리버(Calibre)를 통하여 DRC (design rule check), LVS(Layout Versus Schematic)테스트를 하여 검증 하였다. 구현된 하드웨어의 동작 주파수는 최대 DMA 166MHz, Encoder TOP 100MHz, VIM 24MHz 클럭에서 동작하도록 설계 하였다. 합성결과 Charterd 0.
이러한 여러 조건이 잘 맞아서 각 모듈에게 원활한 데이터 입력이 이루어진다면 문제가 발생 되지 않지만 그렇지 않은 경우도 있다. 그래서 외부 버퍼에 데이터가 입력이 되지 못해서 각각의 모듈에 데이터를 입력 받지 못하는 경우가 일어날 경우 현재 처리 되고 있는 매크로블록까지만 처리 하게 되고, 각각 모듈에게 대기 상태에 있도록 제어하여 원활한 데이터 입력을 받도록 설계하였다.
기본 모듈과 달라진 점은SRAM1, SRAM2, SRAM3를 더블 버퍼링하므로, REC 데이타 받는 시간을 단축시키고, DMA를 이용하여 SDRAM에 저장하는 작업을 DB동작과 동시에 함으로써 SDRAM에 저장하는 시간을 단축하였다.
그리고 구현할 때에 설계상의 유연성도 고려되었다. 또 다른 목표로서 다양한 시스템에 적용될 수 있도록 하였고, 다양한 종류의 네트워크와 시스템에서 작동하도록 하였다. [1]
움직임 예측기는 인터예측에서 사용되며 복원된 영상과 다음에 입력되는 영상의 중복을 비교한 후 움직임벡터를 출력 한다. 압축효율의 향상을 위하여 이전프레임이나 미래 프레임의 영상데이터를 이용하여 현재블록의 영상데이터를 예측한다. 이를 화면외 예측이라고 한다.
264 인코더의 구조는 크게 Intra Prediction 모듈, Deblocking Filter 모듈, Context-Based Adaptive Variable Length Coding 모듈, Motion Estimation 모듈의 4개로 구성되어 있다. 원활한 데이터 입력과 처리를 위하여 Sram Buffer와 5단계의 pipeline을 통한 처리를 사용하여 설계 하였다. 설계된 인코더는 JM9.
움직임 벡터를 구하고자 하는 현재 영상내의 기준블록 데이터와 재생된 이전영상내의 대응되는 탐색영역 데이터가 기준블록 및 탐색영역 데이터 메모리에 저장된다. 이 때 더욱 정확한 움직임 예측을 하기 위하여 프레임의 경계부분에서 번지지정 방법으로 채워넣기(Padding)와 2:1로 샘플링 하도록 하여 하드웨어의 크기를 감소시켰다.
이후 1-화소 단위의 1차 미세 움직임 탐색 결과를 토대로 반화소 단위의 2차 미세 움직임 탐색을 수행한다. 이때 탐색영역의 데이터는 휘도성분과 색도성분을 따로 인터폴레이션하여 구해진 데이터를 사용하게 된다.
그림 18은 설계된 칩 내부의 모습이다. 제작 시 Synopsys사의 Design Compiler로 합성하고, Astro 툴로 Layout 하였으며, Mentor Graphics사의 칼리버(Calibre)를 통하여 DRC (design rule check), LVS(Layout Versus Schematic)테스트를 하여 검증 하였다. 구현된 하드웨어의 동작 주파수는 최대 DMA 166MHz, Encoder TOP 100MHz, VIM 24MHz 클럭에서 동작하도록 설계 하였다.
264/AVC 용 인코더를 칩으로 제작하고, 그 과정 및 결과를 제시하였다. 제작된 H.264/AVC 인코더는 모듈(Intra Prediction, Deblocking Filter, Context-Based Adaptive Variable Length Coding, DMA, Motion Estimation(MEC, MEF) 6개를 H.264/AVC의 베이스라인 프로파일 레벨3 규격에 맞추어 최적의 게이트수와 처리속도로 설계하고, I 프레임과 P 프레임을 처리할 수 있도록 6개 모듈을 인티그레이션(Integration) 하여 제작하였다.
탐색방법은 그림 9처럼 meander-like 탐색방법으로 탐색영역의 좌표가 움직일 때 마다 SAD값을 계산하는 PE에서 상·하·우측 방향으로 탐색영역의 픽셀을 전달 시켜서 중복되어 사용되는 데이터를 메모리에서 다시 읽어오지 않도록 설계하였다.
대상 데이터
18㎛ 공정으로, 램 포함 약 173만 게이트 크기로 되었다. MPW 제작 시 칩 사이즈는 6x6mm2의 크기와 208 핀의 패키지형태로 제작 하였다. 그림 19은 인코더 칩이 제작 완료된 모습이다.
본 논문에서는 설계된 베이스 프로파일 레벨 3규격의 H.264 인코더의 구조는 크게 Intra Prediction 모듈, Deblocking Filter 모듈, Context-Based Adaptive Variable Length Coding 모듈, Motion Estimation 모듈의 4개로 구성되어 있다. 원활한 데이터 입력과 처리를 위하여 Sram Buffer와 5단계의 pipeline을 통한 처리를 사용하여 설계 하였다.
원활한 데이터 입력과 처리를 위하여 Sram Buffer와 5단계의 pipeline을 통한 처리를 사용하여 설계 하였다. 설계된 인코더는 JM9.4[2]로부터 개발한 reference C 코드와 비교하여 결과의 정확성을 판단하였으며, 그림 1은 설계된 H.264 인코더의 전체 구조를 보인다.
데이터처리
16x16픽셀의 매크로블록을한 사이클안에오차 에너지 값인 SAD(Sum of Absolute Differences)값을 계산하려면 많은 하드웨어구조가 필요로 하게 된다. 이런 문제점을 보안하기 위하여 그림 6의 계층적(Hierarchical) 구조를 사용하여 수직 수평 방향으로 2:1로 샘플링된 데이터 값을 사용하여 계산하게 하였다. 설계된 MEC모듈은 그림 6.
질의응답
핵심어
질문
논문에서 추출한 답변
H.264이란 무엇인가?
H.264는 매우 높은 데이터 압축률을 가지는 디지털 비디오 코덱 표준으로 MPEG-4 part 10 또는 AVC (Advanced Video Coding)라 부르기도 한다. 이 표준은 ITU-T의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 ISO/IEC의 동화상전문가 그룹(Moving Picture Experts Group, MPEG)이 공동으로 JVT (Joint Video Team)을 구성하고 표준화를 진행한 결과물로 나온 것이다.
H.264는 어떻게 등장하게 되었나?
264는 매우 높은 데이터 압축률을 가지는 디지털 비디오 코덱 표준으로 MPEG-4 part 10 또는 AVC (Advanced Video Coding)라 부르기도 한다. 이 표준은 ITU-T의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 ISO/IEC의 동화상전문가 그룹(Moving Picture Experts Group, MPEG)이 공동으로 JVT (Joint Video Team)을 구성하고 표준화를 진행한 결과물로 나온 것이다.
H.264/AVC가 개발된 목적은 무엇인가?
H.264/AVC는 기존의 표준(MPEG-2, H.263, MPEG-4 Part 2)과 비교했을 때, 낮은 bit-rate에서 비슷하거나 더 좋은 화질을 얻을 수 있도록 개발되었다. 그리고 구현할 때에 설계상의 유연성도 고려되었다.
참고문헌 (7)
ITU-T Rec. H.264/ISO/IEC 11496-10, 'Advanced Video Coding', Final Committee Draft, Document JVT-F100, October 2004
Joint Video Team(JVT) software JM9.4
Ki-Bum Suh, Seong-Mo Park and Han-jin Cho 'An Efficient Hardware Architecture of TQ/IQITmodule for H.264 Encoder' ETRI Journal, 2005. October
정일섭, 서기범, 'H.264의 효과적인 Debloking Filter', 한국해양정보통신학회 동계종합학술대회, Jan 2006
'A Fast Multi-Resolution Block Matching Algorithm and its LSI Architecture for Low Bit-Rate Video Coding' Jae Hun Lee, Kyoung Won Lim, Byung Cheol Song, and Jong Beom Ra, Dec. 2001
정일섭, 서기범(2008), 'H.264 Direct Memory Access (DMA)', 한국해양정보통신학회동계종합학술대회, Oct 2008
Yu-Kun Lin, De-Wei Li, Chia-Chun Lin, Tzu-Yun Kuo, Sian-Jin Wu, Wei-Chen Tai, Wei Cheng Chang, and Tian-Shuen Chang, 'A 240mW, 10 $mm^{2}$ 1080p H.264/ AVC high profile encoder Chip', DAC2008. pp78-83, June, 2008
※ AI-Helper는 부적절한 답변을 할 수 있습니다.