ChipFind - документация

Электронный компонент: CS6510AC

Скачать:  PDF   ZIP

Document Outline

TM
Virtual Components for the Converging World
Amphion continues to expand its family of application-specific cores
1
See http://www.amphion.com for a current list of products
CS6510
JPEG2000 Encoder
The CS6510 JPEG2000 Encoder is a high performance application specific solution enabling leading edge image
compression and transmission applications. The core is fully compliant with the ISO/IEC 15444-1 JPEG2000
Image Coding System Standard and makes possible both lossless and lossy compression of image data at ratios
of up to 50:1. The CS6510 is capable of sustaining data rates of over 60
1
Msamples/sec enabling the compression
of full motion, full colour video images at sizes in excess of standard definition TV (720x480). Equally suited to
low-power, battery-operated consumer electronics as it is to high-end professional video equipment, the CS6510
delivers the optimum image compression performance that only an application specific accelerator core can
provide. The CS6510 is a powerful and flexible JPEG 2000 encoding solution.
Figure 1: Amphion CS6510 JPEG2000 Encoder Hardware Accelerator
Entropy
Encoder
2D DWT
Tile
RAM
Entropy
Encoder
Entropy
Encoder
Main Controller
Host
Interface
Output JPEG 2000
Data and Parameter
Interface
CS6510 HARDWARE ACCELERATOR
Quantizer
Input Sample
Data Interface
System
RAM
CPU
KEY FEATURES
Fully compliant with ISO/IEC 15444-1
JPEG 2000 Image Coding Standard: Part1
Profile 0
Includes both 9/7 and 5/3 forward wavelet
transforms with optimized line based memory
utilization
Very high data encoding rates, up to 60
1
Msamples/sec
Hardware accelerated rate control
Flexible Input Image Format with up to 12 bits
per image data sample
Fully synchronous, single clocked cycle
design
KEY METRICS
1
Logic:
172k gates
Memory:
50.5 KB
Die Area:
6mm2
Performance:
60 Msamples/sec
APPLICATIONS
Megapixel Digital Still cameras
Wireless PDA
3G and 4G mobile telephone imaging applica-
tions
SVGA-quality PC webcams
Digital CCTV for remote/security surveillance
Video-conferencing systems
Video and imaging distribution systems: both
wireless and networked
Broadcasting stations up to SDTV rates
Digital Cinema
Hard disk drive Digital Video Recording and
Editing
Satellite imaging applications
1. Performance is dependent on the silicon process and libraries selected. 180MHz operation is representative of 180nm silicon using standard cell libraries.
2
CS6510
JPEG2000 Encoder
FEATURES AND BENEFITS
The features and associated benefits of the CS6510 JPEG2000 encoder are shown in Table 1.
Table 1: Amphion CS6510 JPEG200 Encoder Features and Benefits
Features
Benefits
Fully compliant with ISO/IEC 15444-1 JPEG 2000 Image
Coding System
Maximum interchange between a wide range of image and video processing
applications
High data encoding rates:
60
a
Msamples/sec
b
a.
Performance is dependent on the silicon process and libraries selected. 180MHz operation is representative of 180nm silicon using standard cell libraries.
b. Typical rate for natural images. Entropy encoder options allow predictable performance, with possible image quality trade-off.
Enables compression time of 250ms for 5M Pixel digital still cameras
Motion sequences of full color SDTV (720x480) images in excess of 30 frames per
sec
Optimized Area:
172k gates+ 50.5KB RAM
Suitable for SoC implementations on both ASIC and FPGA
Compression ratios of up to 50:1
Superior low-bit rate performance (0.25 bpp for highly detailed grayscale images)
Includes both 9/7 and 5/3 forward wavelet transforms with
optimized memory utilization
Unified coding scheme enabling both lossy and lossless compression
Flexible Input Image Format:
Arbitrary image size up to 2
31
x 2
31
pixels
sub-sampling factors up to 4 for each image
component
up to 12 bits per sample
Enables a wide variety of grayscale and color imaging formats e.g. RGB, YUV,
YCrCb, CMYK.
Comprehensive entropy encoding options:
2 Termination Modes
option to include vertical strip causal context
option to include predictable termination
option to include segmentation symbols
Improved coding efficiency and the error resilience of the output JPEG2000
datastream.
Variable compression options:
Programmable tile size up to 128 x 128 samples
Programmable quantization tables
Enables a variety of customizable functionality to control output image quality and
compression ratio.
Flexible wavelet transform implementation:
Programmable levels of wavelet decomposition
Programmable number of wavelet guard bits
Variable levels of wavelet decomposition enables fine granularity in resolution and
quality scaling. Programmable number of guard bits enables configurable wavelet
accuracy (typically 60dB for 5 level wavelet decomposition).
Fully synchronous, single clocked cycle design
Easily integrated into complete image processing systems
Port mapped external host interface
Core can be quickly and easily tailored to match compression system parameters.
Target Rate Control
Enables precise control of compressed JPEG2000 image size.
Programmable for resolution and quality scalability
Allows reconstruction of images with different resolutions and pixel accuracy for
efficient display and delivery.
AMBA AHB bus compliant architecture
Standard system interface which enables direct access to a wide range of memory
and processor support.
Supplied with ANSI C control software
Eases integration into existing systems
3
TM
FUNCTIONAL DESCRIPTION
The Amphion JPEG2000 encoder is an optimized, high
performance hardware core which is fully compliant with the
ISO/IEC 15444-1 JPEG2000 standard. Designed for the
maximum levels of data throughput, the Amphion JPEG2000
solution addresses a wide variety of still and motion imaging
applications up to the challenging limits of frame-based video
compression for digital cinema applications and beyond. The
flexible solution can be tailored to compress a variety of
grayscale and color imaging formats producing superior low-
bit rate performance down to 0.25bpp for highly detailed
grayscale images. The solution also includes a variety of
customizable functionality to allow the reconstruction of
images with different resolutions and pixel accuracy for
efficient display and delivery.
The Amphion JPEG2000 encoder has been developed to
interface directly with the main system processor to provide a
practical and complete JPEG2000 solution. All interfaces are
AMBA compliant to facilitate integration into larger SOC
systems. The encoding of an image is achieved via a two stage
operation. The first stage of coding for each tile (Tier-1) is
accomplished with a dedicated hardware accelerator, the
CS6510. This accelerator is supplied with AHB bus DMA
controllers for reading data to and from the core. On
completion of Tier 1 coding the output bitstream (JP2 file) is
created by Tier 2 software running on the host processor.
To compress an image, the source data, in any color space
format, is read tile-by-tile into the CS6510 core. The forward
discrete wavelet transform analyses the input data and passes
it on to the quantizer where the first phase of data
compression is enabled. When sufficient data has been
quantized it is read, one codeblock at a time, and is passed to
one of a number of entropy encoders. The entropy coding
efficiently compresses the image data and the encoded
bitstream is output in parallel with distortion metrics for the
compressed data. These distortion metrics are examined by
the Tier-2 software running on the main system CPU and are
used to organize and truncate the compressed image data to
facilitate rate control. The software then re-orders the
bitstream into a user defined order, such as SNR progressive,
based upon the rate-distortion information. To complete the
encoding, the software builds the file header and file marker
information and places this in the code stream along with the
selected entropy coded data. The output is a complete
JPEG2000 bitstream.
Figure 2 outlines the in-system operation of the Amphion
JPEG2000 Encoder.
DISCRETE WAVELET TRANSFORM
The Amphion JPEG2000 encoder contains compact high
performance implementations of both the real irreversible 9-7
wavelet transform and the integer reversible 5-3 integer
wavelet transform. The user can specify which wavelet is
required via the host interface. The inclusion of both these
wavelet types facilitates lossy and lossless compression which
is fully compliant with the JPEG2000 standard. The CS6510
core can also be programmed with a configurable level of
wavelet decompositions levels, up to a maximum of 5 levels.
This facilitates high levels of granularity in the compressed
JPEG2000 stream and allows for the reconstruction of images
with different resolutions for efficient display and delivery.
This high number of wavelet decomposition levels also
enables a variety of different sized thumbnail images to be
produced.
Figure 2: JPEG2000 Encoder Functional Block Diagram
Input DMA
Controller
2D DWT
Quantizer
Tile
Memory
Codeblock
Memory 0
Codeblock
Memory 1
Codeblock
Memory 2
Entropy
coder 0
Entropy
coder 1
Entropy
coder 2
Output Data
Scheduler
Host Interface
Data FIFO 0
Metric FIFO 0
Data FIFO 1
Metric FIFO 1
Data FIFO 2
Metric FIFO 2
Output DMA
Controller
AMBA AHB Bus
OUTPUT DATA AND
PARAMETER
INTERFACE
CS6510
INPUT SAMPLE
DATA
INTERFACE
CPU
Tier-2 driver
software
System RAM
Input Image
JPEG2000
codestream
4
CS6510
JPEG2000 Encoder
The architecture employed for both the 9-7 and 5-3 wavelets is
row-based. The optimized design minimizes the internal
memory requirements of the core whilst maintaining the
highest levels of data throughput (one sample/clock cycle
processing for full-sized tile dimensions). The core accepts
input data up to 12 bits, presented in raster order within the
tile. The wavelet transform has also been developed to a high
level of computational accuracy and exhibits a peak signal to
noise ratio (PSNR) of greater than 60dB for up to and
including five levels of wavelet decomposition.
COEFFICIENT QUANTIZER
Following wavelet transformation, the wavelet coefficients are
quantized using a scalar quantization with deadzone
technique. Distinct quantization values are employed for the
coefficients of each sub-band; these are programmable by the
user, depending on the required level of data compression. A
maximum of 16 discrete quantization values are allowed for
each tile (suffice for up to 5 levels of wavelet decomposition).
For multi-component systems the quantization values are
reprogrammed on a per-component basis. The coefficient
quantizer quantizes one sample per clock cycle. For lossless
compression using the 5/3 integer wavelet quantizer step sizes
are always fixed at one effectively bypassing the quantization.
ENTROPY ENCODER
Within the JPEG2000 system the entropy encoders compress
the source data and manipulate it such that it is suitable for
the formation of layers and for progressive output. This
enables tremendous flexibility in the output bitstream
formation. To maintain the continuous high levels of data
throughput the Amphion JPEG2000 encoder contains three
entropy encoder blocks operating in parallel. Following
quantization, each sub-band of the transformed tile is divided
into rectangular code-blocks (32x32 or one complete
codeblock per subband). Each codeblock is then coded
independently in one of the three entropy encoders in a
round-robin scheduling scheme. The first stage of the
encoding is the segmentation of the image codeblock into
horizontal bitplanes. These individual bitplanes are then
coded using a 3 pass scanning system. The first plane to be
coded is that which contains a non-zero magnitude bit.
Processing then proceeds from the most significant to the least
significant bit plane for the block. Following entropy
encoding, the CS6510 core outputs 32-bit compressed image
data in parallel with distortion metrics which describe the
compressed data. These distortion metrics are examined by
the Tier-2 software running on the main system CPU and are
used to organize and truncate the compressed image data to
facilitate rate control.
TIER-2 ENCODING SOFTWARE
To complete the JPEG2000 encode operation, Tier-2 control
software is required to operate along with the CS6510
hardware component. This control software iterates through
the component data on a tile-per-tile basis, and forms the
output compressed JPEG2000 bitstream (JP2 file). The first
stage of the Tier-2 coding operation involves reading the
compressed image data and rate-distortion information from
the CS6510 hardware core, via the DMA output interface. The
rate-distortion data describes the contribution that each
individual coding pass makes to the overall compressed
image size. The software then calculates the distortion
reduction associated with each coding pass and elects
whether to include it in the final bitstream or not, based on the
user defined target compression ratio. Both the compressed
tile data and distortion metrics are stored in the system
memory until all the constituent code-blocks in the image tile
have been coded. The software then re-orders and truncates
the bitstream into the chosen order (e.g. component,
resolution-level progressive) based upon the rate-distortion
information. The software also build up the file header
information and place this in the code stream along with the
selected entropy coded data. This control software is supplied
for the Amphion JPEG2000 solution as standard C source code
and can be easily ported to the target processor platform as
required.
INPUT AND OUTPUT INTERFACES
The input and output data interfaces for the JPEG2000
encoder system are typically AMBA AHB (Advanced High-
Speed bus) master compliant DMA modules and are supplied
by Amphion in verilog source format. These deliverables act
as example application specific implementations for writing
and reading the input and output data sets from the CS6510
core to the system memory. As such the modules can be
directly configured to the required parameters of the users
system. The input interface DMA reads image data from the
image memory and provides it to CS6510 core on a tile-by-tile
basis. It is assumed that image data will be available in a linear
memory in a raster scan order. The input interface is AMBA
bus compatible with the image memory acting as an AMBA
slave and the read input from the input DMA controller acting
as an AMBA Master on the AMBA AHB. The output interface
DMA reads the compressed tile data and distortion metrics
directly from the individual entropy coders and stores the
data in FIFO-style buffers. The output DMA then schedules
the writing of the data to three distinct system memory
locations, one for each entropy encoder. An AMBA AHB slave
interface facilitates the programming of registers to define the
required memory locations.
5
TM
PORT DEFINITIONS
Table 2 describes the input and output ports (shown graphically in Figure 3) of the CS6510 JPEG2000 Encoder. Unless otherwise
stated, all signals are active high and bit(0) is the least significant bit.
Figure 3: CS6510 Symbol
CLR
RSTn
CLK
I_SampData[11:0]
I_SampValid
I_SampRdy
H_READY
H_WDATA[31:0]
H_RDATA[31:0]
H_SEL
H_ADDR[31:0]
H_Write
H_RESPONSE[1:0]
H_IRQ
H_TRANS[1:0]
O_CompData0[31:0]
O_CompDataValid0
O_CompDataStrb0
O_MetData0[31:0]
O_MetDataValid0
O_MetDataStrb0
12
32
32
32
32
32
2
O_CompData1[31:0]
O_CompDataValid1
O_CompDataStrb1
O_MetData1[31:0]
O_MetDataValid1
O_MetDataStrb1
O_CompData2[31:0]
O_CompDataValid2
O_CompDataStrb2
O_MetData2[31:0]
O_MetDataValid2
O_MetDataStrb2
O_TileComplete
32
32
32
32
2
Table 2: I/O Signal Descriptions
Signal
I/O
Description
Global Signals
CLK
I
Clock, rising edge active
RSTn
I
Asynchronous reset (power on reset) active low
CLR
I
Synchronous reset
Data Sample Input Interface
I_SampData[11:0]
I
Sample data input port
I_SampValid
I
Indicates a valid input sample
I_SampRdy
O
Indicates that the core is ready to accept data
JPEG2000 Stream Output Interface
O_CompData0[31:0]
O
JPEG 2000 entropy coded data
O_CompDataValid0
O
Indicates that valid data is available on O_CompData0
O_CompDataStrb0
I
Informs the core to place the next 32-bit word of output data onto O_CompData0.
The data is held if O_CompDataStrb0 is not asserted
O_MetData0[31:0]
O
Compressed data distortion metrics
O_MetDataValid0
O
Indicates that valid parameter data is available on O_MetData0
O_MetDataStrb0
I
Informs the core to place the next 32-bit word of parameter data onto O_MetData0.
The data is held if MetDataStrb0 is not asserted
O_CompData1[31:0]
O
JPEG 2000 entropy coded data
O_CompDataValid1
O
Indicates that valid data is available on O_CompData1
O_CompDataStrb1
I
Informs the core to place the next 32-bit word of output data onto O_CompData1.
The data is held if O_CompDataStrb1 is not asserted
O_MetData1[31:0]
O
Compressed data distortion metrics