12.12.2012 Views

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DIGITAL SIGNAL PROCESSING<br />

Implementing the H.264/AVC<br />

Video Coding Standard on FPGAs<br />

<strong>Xilinx</strong> Virtex FPGAs provide excellent co-, pre-, and post-processing hardware acceleration solutions.<br />

by Wilson C. Chung<br />

Senior Staff Video and Image Processing Engineer<br />

<strong>Xilinx</strong>, Inc.<br />

wilson.chung@xilinx.com<br />

H.264/AVC is the latest international<br />

video coding standard in a series of such<br />

standards: H.261, MPEG-1, MPEG-2,<br />

H.263, and MPEG-4 visual, or part 2. It<br />

was approved by the ITU-T (International<br />

Telecommunications Union Telecommunication<br />

Standardization Sector) as recommendation<br />

H.264 and by ISO/IEC as<br />

International Standard 14 496-10 (MPEG-<br />

4 part 10) Advanced Video Coding (AVC)<br />

in May 2003.<br />

Despite H.264/AVC’s promises of<br />

improved coding efficiency over existing<br />

video coding standards, it still presents<br />

tremendous engineering challenges to system<br />

architects, DSP engineers, and hardware<br />

designers. <strong>The</strong> H.264/AVC standard<br />

brought in the most significant changes<br />

and algorithmic discontinuities in the evolution<br />

of video coding standards since the<br />

introduction of H.261 in 1990.<br />

<strong>The</strong> algorithmic computational complexity,<br />

data locality, and algorithm and<br />

data parallelism required to implement the<br />

H.264/AVC coding standard often directly<br />

influences the overall architectural decision<br />

at the system level. In turn, this<br />

determines the ultimate cost of developing<br />

any commercially viable H.264/AVC system<br />

solution in the broadcasting, video<br />

editing, teleconferencing, and consumer<br />

electronics fields.<br />

Complexity Analysis<br />

To achieve a real-time H.264/AVC standard<br />

definition (SD) or high definition<br />

(HD) resolution encoding solution, system<br />

architects often employ multiple<br />

FPGAs and <strong>programmable</strong> DSPs. To illustrate<br />

the enormous computational complexity<br />

required, let’s explore the typical<br />

run-time cycle requirements of the<br />

H.264/AVC encoder based on the software<br />

model provided by the Joint Video Team<br />

(JVT), comprising experts from ITU-T’s<br />

Video Coding Experts Group (VCEG) and<br />

ISO/IEC’s Moving Picture Experts Group<br />

(MPEG).<br />

Using Intel VTune software running<br />

on an Intel Pentium III 1.0 GHz<br />

general-purpose CPU with 512 MB of<br />

memory, achieving H.264/AVC SD with a<br />

main profile encoding solution would<br />

require approximately 1,600 BOPS (billions<br />

of operations per second).<br />

Table 1 illustrates a typical profile of<br />

the H.264/AVC encoder complexity<br />

based on the Pentium III general-purpose<br />

processor architecture. Notice that in<br />

Table 1, motion estimation, macroblock/block<br />

processing (including<br />

mode decision), and motion compensation<br />

modules are the primary candidates<br />

<strong>for</strong> hardware acceleration.<br />

40 <strong>Xcell</strong> <strong>Journal</strong> Winter 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!