Newsletter

Video/Imaging DesignLine  >  Design Center

Encoding JPEG2000 video by combining DSP and FPGA

A JPEG2000 encoder within an embedded platform that includes both DSP and FPGA offers performance, cost and integration benefits, says BroadMotion, a codec supplier.



Page 1 of 4

Video Imaging DesignLine


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



Page 2: next page  

Page 1 | 2 | 3 | 4



Rate this article
WORSE | BETTER
1 2 3 4 5




EE Times TechCareers
Search Jobs

Enter Keyword(s):


Function:


State:
  

Post Your Resume
-----------------
Employers Area
Most Recent Posts More career-related news, resources and job postings for technology professionals
 Sponsor