Design Article

IMG1

Encoding JPEG2000 video by combining DSP and FPGA

Rick Wang
CTO, BroadMotion

8/18/2006 1:05 AM EDT


An overview of the JPEG2000 encoding process is illustrated in Figure 1.


View full size
Figure 1: JPEG2000 Encoding Process

A JPEG2000 encoder needs to perform the following operations:

  • Within the Pre-Processing module, each color component of the source image passes through a multiple component transformation and is decomposed into non-overlapping rectangular tiles (tile components) of equal size in order to be read by the encoder. The JPEG2000 standard supports two different component transformations. Irreversible component transformation is used only for lossy coding while reversible component transformation can be used for both lossless and lossy coding.


  • The Wavelet Transform can be configured to be lossy or lossless. This module is used to analyze the tile components and process them into different decomposition levels. It stores its results into an off-chip tile buffer to undergo quantization and code block decomposition. The JPEG2000 standard supports two different types of wavelet transformations. Irreversible transform is implemented using a 9/7 filter while a reversible transform is implemented using a 5/3 filter.


  • After transformation, all coefficients are then quantized. The quantization step can be configured such that each sub-band can be weighted differently from another. For lossless coding, quantization can be bypassed altogether.


  • The Entropy Encoding process divides the quantized sub-bands into rectangular code blocks. The Bit-Plane Coder categorizes each bit in the code block coefficient into 3 coding passes, each bit belonging to only one coding pass. It then parses the code block bit plane from most significant bit (msb) to least significant bit (lsb) and arranges the bits in a zigzag order for each bit plane. The Entropy Encoding process also computes the context information needed by the MQ Coder as well as the distortion metrics that will be used by the rate allocation unit of the Tier-2 Coding process. The bits and contexts output from the Bit-Plane Coder are then processed by the MQ Coder that generates the compressed bitstream.


  • Rate Allocation is used for post-compression rate-distortion optimization and to target a defined bit-rate or an arbitrary set of specified bit-rates.


  • Based on the defined compression ratio, progression order and other configurable switches in the JPEG2000 standard, the Packetizer generates packets and places them into the final bitstream.

A co-processing solution
Because of its advanced functionality, JPEG2000 requires more computational resources to achieve similar encoding and decoding speeds as that of standard JPEG or MPEG encoding. Maximizing JPEG2000 performance within a cost-effective embedded platform presents a significant challenge.

BroadMotion's approach to this scenario is to implement a relatively low cost DSP/FPGA combination and off-load computationally intensive tasks to the FPGA co-processor as illustrated in Figure 2. This enables the JPEG2000 encoding process to be accelerated by executing the Tier-1 Entropy Coding completely on the FPGA.


Figure 2: Co-Processing Architecture

Next: Cost effective co-processing, How it works

1  2  3  4 

print

email

rss

Bookmark and Share

Joinpost comment



Comments


TonyGeorge

8/18/2008 3:19 AM EDT

H.264 Video Codec on FPGA

Hardware video encoders & decoders are efficient way of implementing performance oriented, low power Video Codecs. The hardware have high computational and memory bandwidth capabilities that are essential to real-time image/video processing systems, when compared with DSP processors. The products like Digital video recorders, Video wireless devices, Video surveillance systems, Hand held HDTV video cameras, requires low power high performance implementation. The important step towards this realization is to prototype the Codec in FPGA.

http://drtonygeorge.com/Video/h264/h264_rtl.htm

Sign in to Reply


Please sign in to post comment

Navigate to related information

Product Parts Search

Enter part number or keyword
PartsSearch

FeedbackForm