Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
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