이 본문에서는 제안한 H.264/AVC 인코더의 서브 블록인 Inter prediction 블록, Intra prediction 블록, 디블로킹 필터블록, Transform & Quantization 블록에 대한 저전력 구조를 FPGA로 구현하였다. Inter/Intra prediction블록에서는 분산연산방식을 통해 가산기의 수륵 줄여 60.2%의 면적감소효과를 나타내었으며, 디블로킹 필터블록에서는 하드웨어 공유를 위한 MUX를 사용하여 덧셈연산의 수를 44.3%감소시켰다. 또한, Transform & Quantization 블록에 사용되는 곱셈연산을 CSD와 CSS방식으로 수행하여 면적을 그게 차지하는 곱셈기를 사용하지 않았다. 제안된 저전력 IP들을 사용하여 FPGA(Field Programmable Gate Array)와 ARM 프로세서 기반의 H.264/AVC 인코더를 구현하였다. Baseline Profile을 사용하였고 FPGA와 ARM프로세서가 연동하는 Platform으로 구현하였다. Platform을 사용한 H.264/AVC 인코더 구현을 통하여 제안된 각각의 저전력 IP들이 효율적으로 H.264/AVC 인코더 SoC에서 사용될 수 있음을 확인하였다.
이 본문에서는 제안한 H.264/AVC 인코더의 서브 블록인 Inter prediction 블록, Intra prediction 블록, 디블로킹 필터블록, Transform & Quantization 블록에 대한 저전력 구조를 FPGA로 구현하였다. Inter/Intra prediction블록에서는 분산연산방식을 통해 가산기의 수륵 줄여 60.2%의 면적감소효과를 나타내었으며, 디블로킹 필터블록에서는 하드웨어 공유를 위한 MUX를 사용하여 덧셈연산의 수를 44.3%감소시켰다. 또한, Transform & Quantization 블록에 사용되는 곱셈연산을 CSD와 CSS방식으로 수행하여 면적을 그게 차지하는 곱셈기를 사용하지 않았다. 제안된 저전력 IP들을 사용하여 FPGA(Field Programmable Gate Array)와 ARM 프로세서 기반의 H.264/AVC 인코더를 구현하였다. Baseline Profile을 사용하였고 FPGA와 ARM프로세서가 연동하는 Platform으로 구현하였다. Platform을 사용한 H.264/AVC 인코더 구현을 통하여 제안된 각각의 저전력 IP들이 효율적으로 H.264/AVC 인코더 SoC에서 사용될 수 있음을 확인하였다.
In this paper, we are implemented low-power structure for Inter prediction, Intra prediction, Deblocking filter, Transform and Quantization blocks in H.264/AVC Encoder. The proposed Inter/Intra prediction blocks are shown 60.2% cell area reduction by adder reduction through Distributed Arithmetic, 4...
In this paper, we are implemented low-power structure for Inter prediction, Intra prediction, Deblocking filter, Transform and Quantization blocks in H.264/AVC Encoder. The proposed Inter/Intra prediction blocks are shown 60.2% cell area reduction by adder reduction through Distributed Arithmetic, 44.3% add operation reduction using MUX for hardware share in Deblocking filter block. Furthermore we applied CSD and CSS process to reduce the cell area instead of multipliers that take a lot of area. The FPGA(Field Programmable Gate Array) and ARM Process based H.264/AVC encoder is implemented using proposed low power IPs. The proposed structure Platforms are implemented to interlock with FPGA and ARM processors. H.264/AVC Encoder implementation using Platforms shows that proposed low-power IPs can use H.264/AVC Encoder SoC effectively.
In this paper, we are implemented low-power structure for Inter prediction, Intra prediction, Deblocking filter, Transform and Quantization blocks in H.264/AVC Encoder. The proposed Inter/Intra prediction blocks are shown 60.2% cell area reduction by adder reduction through Distributed Arithmetic, 44.3% add operation reduction using MUX for hardware share in Deblocking filter block. Furthermore we applied CSD and CSS process to reduce the cell area instead of multipliers that take a lot of area. The FPGA(Field Programmable Gate Array) and ARM Process based H.264/AVC encoder is implemented using proposed low power IPs. The proposed structure Platforms are implemented to interlock with FPGA and ARM processors. H.264/AVC Encoder implementation using Platforms shows that proposed low-power IPs can use H.264/AVC Encoder SoC effectively.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
W AVC 인코더의 전체 구성을 살펴보면 Inter & Intra pr«1iction 블록, Deblocking 필터블록, Transform & Quantization 블록 등이 있으며 각 블록에 대한 효율적인 설계 및 구현 기술이 필요하다. 이 논문에서는 효율적인 구조를 지닌 Inter & Intra mlediction 블록®과 Debloking 필터블록电을 포함한 H.264 인코더를 FPGA 와 ARM 프로세서를 사용하여 구현한 결과를 보이고자 한다. II장부터 IV장에서는 H.
제안 방법
화면 간 예측 블록의 구현에서는 16x16 블록만을 사용하여 추정하고 보상하도록 구현하였으며 Interpolation 필터는 사용하지 않았다. FPGA내의 만들어진 DPRAMe 입력영상과 출력 영상 및 Inter Prediction, Intra Prediction등의 블록에서 발생하는 연산 내용의 저장 공간으로도 활용하였다. FPGA 내의 데이터 흐름은 [그림 12]와 같이 설계하였다.
최종 구현 방법을 기술한다. H.264/AVC Baseline Profile 인코더를 SoC MasterDI의 FPGA 와 ARM 프로세서를 사용하여 구현하였다. 각 블록들에 대한 구현은 다음 [그림 8]과 같이 FPGA와 ARM 프로세서로 역할을 구분하여 구현 하였다.
Virtex-xc4vlxl00t 622 Mb/s~10 Gb/s의 처리능력을 가지고 있으며 본 구현에서는 FPGA 내부 클락으로 25Mhz< 사용하였다. H.264/AVC 인코더 IP와 DPRAMe 직접 설계하여 사용하였고 AMBA AHB 2.0 은 SoCbasel.O을 사용하였다.
0 Protocol을 사용하였다. H.264/AVC 인코더를 구현하기 위해서는 많은 Memory가 사용되는데 FPGA Device내에 DPRAM 형태의 Memory를 설계하였고 또한 외부에 SDRAM을 사용하였다. 이 두 종류의 메모리를 공유함으로써 FPGA와 ARM을 연동시켰다.
H.264/AVC 인코더에서 Inter Prediction과 Intra Predictione 전체 인코더 구현에서 가장 많은 연산을 요구하므로 하드웨어 구현 시, 구현면적에 가장 큰 영향을 준다(2) 우리는 이 두 블록의 구현에 같은 저전력구현 방식을 적용하였다. H.
[그림 10]에서 보듯이 H.264/AVC 인코더 IP, TFT- LCD ControUer, ARM926-EJS를 MASTER로 설정하였고 SDRAM과 DPRAMe SLAVE로 설정하였다. Debug 할 때에는 Multi-ICE 포트를 사용하였고 Debug Tool로는 AXD를 사용하였다.
[그림 4]의 16x16 SAE 계산블록과 4x4 SAE 계산 블록의 구현에 지난 절에서 제안한 저전력 SAD 방식을 적용하였다. 즉, SAE(Sum of Absolute Erroi)는 SAD오+ 같은 개념이므로 SAD 블록의 저전력 구현에 사용한 방식을 여기에도 사용할 수 있다.
264/AVC Baseline Profile 인코더를 SoC MasterDI의 FPGA 와 ARM 프로세서를 사용하여 구현하였다. 각 블록들에 대한 구현은 다음 [그림 8]과 같이 FPGA와 ARM 프로세서로 역할을 구분하여 구현 하였다. 구현에 사용된 ARM 프로세서는 [그림 9]의 ARM926-EJS을 사용하였다.
그리고 실제로 사용되는 필터는 bS=l, 2, 3, 4가 있다. 경계면 강도가 가장 센 bS=4가 가장 강력한 필터링을 요구하며 입력 03, P2, P1, PO 는 다음의 조건을 만족하는지 검사한다.
사용된다. 그 결과 값의 MSB를 검사하여 0이면, 즉 양수이면 MUX의 sei이 0이 되어 값을 그대로 통과시키게 설계하였다. 그리고 MSB가 1이면, 즉 결과 값이 음수이면 절대값을 계산하기위하여 인버터 회로와 +1 회로를 거치도록 설계하였다.
그 결과 값의 MSB를 검사하여 0이면, 즉 양수이면 MUX의 sei이 0이 되어 값을 그대로 통과시키게 설계하였다. 그리고 MSB가 1이면, 즉 결과 값이 음수이면 절대값을 계산하기위하여 인버터 회로와 +1 회로를 거치도록 설계하였다. 이 동작이 직렬로 동작하므로 A2의 +1회로는 반가산기 1개로 구성할 수 있다.
3%의 면적감소효과를 확인하였다. 그리고 해상도가 QCIF(176xl44) 인 5 프레임의 Carphone 영상을 입력하여 제안된 구조를 수행한 결과를 TFT- LCD화면으로 확인을 하였다. 이러한 제안구조의 검증을 통하여 제안된 저전력 서브 IP 구조들은 제한된 전력을 필요로 하는 단일 칩 H264/AVC 인코더에 충분히 사용될 수 있음을 보였다.
.기존의 SAD 방식 계산기 구조와 비교하여 우리는 16개의 연산수를 LSB부터 더하는 방식을 제안한다. 즉, 16개의 AD 값들을 병렬로 받아서 LSB의 1비트부터 계산하는 방식이다.
4x4 SAD 계산기는 절대 값을 계산하는 AD 연산기와 SAD를 계산하는 하드웨어로 구성된다. 먼저 현재 프레임과 참조 프레임의 탐색영역내의 비교 블록의 각 픽셀들의 뺄셈의 절대 값인 AD (absolute deferenceX [그림 2]와 같이 계산하도록 설계한다.
® 또한 Common sub-expression sharing(CSS) 방식을 사용하여 덧셈의 수를 더욱 감소시킬 수 있다. 우리는 이 논문에서 CSD와 CSS 방식을 MF 계수를 곱하는데 사용하여 저전력 구조를 제안하였다.
264/AVC 인코더를 구현하기 위해서는 많은 Memory가 사용되는데 FPGA Device내에 DPRAM 형태의 Memory를 설계하였고 또한 외부에 SDRAM을 사용하였다. 이 두 종류의 메모리를 공유함으로써 FPGA와 ARM을 연동시켰다. [그림 11]은 사용한 FPGA Device와 Memory이다.
필터링을 수행할 수 있다. 이와 같은 덧셈 연산의 수를 감소시키기 위하여 다음과 같이 MUX를 사용하여 구현 하드웨어를 공유하는 방식을 제안한다.的 즉, 덧셈연산의 수를 줄이기 위해 이제 를 다음과 같이 나타낼 수 있다.
저전력 구조이다. 즉, 4x4 SAD 계산을 위한 저전력 구조를 제안하며, 이를 16개 사용하여 4x4 SAD 계산기 구조를 설계하였다.図 제안된 [그림 1]의 SAD 프로세서 구조의 첫 번째 블록인 4x4 SAD 계산기에서는 16개의 4x4 SAD를 계산한다.
해상도는 QCIF(176xl44)로 하였고 luminance 데이터만을 사용하였다. 화면 간 예측 블록의 구현에서는 16x16 블록만을 사용하여 추정하고 보상하도록 구현하였으며 Interpolation 필터는 사용하지 않았다. FPGA내의 만들어진 DPRAMe 입력영상과 출력 영상 및 Inter Prediction, Intra Prediction등의 블록에서 발생하는 연산 내용의 저장 공간으로도 활용하였다.
대상 데이터
[그림 11]은 사용한 FPGA Device와 Memory이다. FPGA Device는 X血x사의 Vihtex-xc4vlxl00을 사용하였다. Virtex-xc4vlxl00t 622 Mb/s~10 Gb/s의 처리능력을 가지고 있으며 본 구현에서는 FPGA 내부 클락으로 25Mhz< 사용하였다.
구현 검증하기 위한 영상은 5 프레임의 Carphone 영상을 사용하였다. 해상도는 QCIF(176xl44)로 하였고 luminance 데이터만을 사용하였다.
각 블록들에 대한 구현은 다음 [그림 8]과 같이 FPGA와 ARM 프로세서로 역할을 구분하여 구현 하였다. 구현에 사용된 ARM 프로세서는 [그림 9]의 ARM926-EJS을 사용하였다.
264코덱이 사용되는 휴대용 멀티미디어의 수요가 증가하면서 제한된 전력으로 복잡한 복호화를 효율적으로 수행하기 위한 저전력 설계연구의 필요성이 커지고 있다. 이 논문에서는 H.264/AVC 인코더의 각 서브 블록에 대한 저전력 구조를 제안하였으며 제안된 구조의 구현 및 검증을 위하여 Verilog-HI无을 사용하였고, SoCMASTER3의 FPGA(Vir血x4Txl00) 디바이스를 타겟으로 합성을 수행하였으며 ARM926-EJS를 사용하였다. 하드웨어의 효율성을 높이기 위해 각 서브IP의 저전력구조를 고안하는데 중점을 두었으며, 그 결과 각각의 IP블록에서 이용되던 기존구조와 비교하였을 때, Inter/Intra prediction 블록에서는 60.
제안하는 핵심 하드웨어는 첫 번째 블록인 4x4 SAD 계산기의 저전력 구조이다. 즉, 4x4 SAD 계산을 위한 저전력 구조를 제안하며, 이를 16개 사용하여 4x4 SAD 계산기 구조를 설계하였다.
사용하였다. 해상도는 QCIF(176xl44)로 하였고 luminance 데이터만을 사용하였다. 화면 간 예측 블록의 구현에서는 16x16 블록만을 사용하여 추정하고 보상하도록 구현하였으며 Interpolation 필터는 사용하지 않았다.
이론/모형
264/AVC 인코더 IP, TFT- LCD ControUer, ARM926-EJS를 MASTER로 설정하였고 SDRAM과 DPRAMe SLAVE로 설정하였다. Debug 할 때에는 Multi-ICE 포트를 사용하였고 Debug Tool로는 AXD를 사용하였다.
성능/효과
264/AVC의 표준방식이 널리 사용되고 있다.(1) H.264/AVC의 기본적인 개념 자체는 MPEG-4와 유사하나, 세부적인 내부 구현에 있어 상당 부분 변경된 방식을 채택하고 있다. H.
수평 Deblocking 필터의 경우에 수직경계면의 각각 4개의 픽셀들이 입력신호로 사용되며 수직경계면 양쪽의 각각 3개의 픽셀들이 새로 필터링되어 출력된다. 이 경우에 수직경계면의 좌측 4개의 신호들을 경계면에서 먼 신호부터 ?3, 轮, 跖, 饱로 명명하며, 수직 경계면의 우측 4개의 신호들은 경계면에서 가까운 신호부터 我, 幻, 如, 如로 명명한다. 이와 같은 명명은 수평 경계에서도 똑같이 적용된다.
지금까지 제안한 식 (8)~(11)을 덧셈기, 쉬프트, MR以와 DEMUX를 사용하여 구현한 구조는 [그림 5]와 같다. [그■림 5]에서 보듯이 제안된 bS=4의 필터구조를 사용한 결과, 第개의 덧셈연산을 18개로 줄일 수 있었다.
[표 1]에서 보듯이 기존 구조와 비교하여 전가산기의 수가 3기개에서 138개로 감소되었으며, 반가산기의 수는 47개에서 48개로 1개가 증가하였다. 위의 표에서 상대 면적의 계산은 반가산기 1개의 면적을 1로 정의하고 전가산기의 상대면적은 반가산기의 3배로 정의하였다.
WAVC 개발자들은 복잡한 처리 기법을 적용해 높은 효율로 영상 데이터를 코딩할 수 있는 다양한 방법을 적용시켰다. 그 결과 기존의 MPEG-4에 비해 월등한 압축 효율을 보여주는 향상된 압축 성능의 코덱을 만들어냈다. 성능은 향상 되었지만 인코더의 구현 복잡도가 증가하였고 전력소모가 크게 증가 하였다.
그 결과 총상대면적은 기존구조가 1160이고 제안구조가 462로 예상된다. 따라서 제안 구조의 4x4 SAD 연산기와 기존 구조를 비교하였을 때 60.2%의 면적 감소가 예상된다.
그 결과 기존의 MPEG-4에 비해 월등한 압축 효율을 보여주는 향상된 압축 성능의 코덱을 만들어냈다. 성능은 향상 되었지만 인코더의 구현 복잡도가 증가하였고 전력소모가 크게 증가 하였다. H.
그리고 해상도가 QCIF(176xl44) 인 5 프레임의 Carphone 영상을 입력하여 제안된 구조를 수행한 결과를 TFT- LCD화면으로 확인을 하였다. 이러한 제안구조의 검증을 통하여 제안된 저전력 서브 IP 구조들은 제한된 전력을 필요로 하는 단일 칩 H264/AVC 인코더에 충분히 사용될 수 있음을 보였다.
덧셈연산을 11개로 줄일 수 있었다. 지금까지 제안된 bS=4와 bS=W3 필터 구조를 통하여 총 52개의 덧셈 연산을 29개로 감소시킬 수 있었다.
최종적으로 구현된 FPGA의 면적은 AMBA AHB 2.0이 175, 646gate를 차지하였고 H.264/AVC 인코더 IP가 435, 540gate를 차지하였다.
264/AVC 인코더의 각 서브 블록에 대한 저전력 구조를 제안하였으며 제안된 구조의 구현 및 검증을 위하여 Verilog-HI无을 사용하였고, SoCMASTER3의 FPGA(Vir血x4Txl00) 디바이스를 타겟으로 합성을 수행하였으며 ARM926-EJS를 사용하였다. 하드웨어의 효율성을 높이기 위해 각 서브IP의 저전력구조를 고안하는데 중점을 두었으며, 그 결과 각각의 IP블록에서 이용되던 기존구조와 비교하였을 때, Inter/Intra prediction 블록에서는 60.2%, Deblocking 필터 블록에서는 44.3%의 면적감소효과를 확인하였다. 그리고 해상도가 QCIF(176xl44) 인 5 프레임의 Carphone 영상을 입력하여 제안된 구조를 수행한 결과를 TFT- LCD화면으로 확인을 하였다.
참고문헌 (8)
Draft ITU-T recommendation and Final Draft International Standard Of Joint Video Specification(ITU-T Rec. H.264/ISO/IEC 14496- 10 AVC), Mar. 2003
S. Y. Yap and J. V. McCanny, "A VLSI Architecture for Variable Block Size Video Motion Estimation", IEEE Trans. on Circuits and Systems II: Express Briefs, Vol. 51, issue 7, pp. 384-389, July 2004
P. List, A. Joch, J. Lainema, G. Bjontegaard, and M. Karczewicz, "Adaptive deblocking filter", IEEE Trans. Circuits and Systems for Video Technology, Vol. 13, no. 7, pp. 614-619, July 2003
R.I Hartley, "subexpression sharing in filters using canonic signed digit multipliers', IEEE Trans. Circuits and Systems II: Analog and Digital Signal Processing, vol. 43 No. 10, pp677-688, Oct. 1996
※ AI-Helper는 부적절한 답변을 할 수 있습니다.