Overview
Data compression is the process of encoding information using fewer bits than an
unencoded representation would use through the use of specific encoding schemes.
Some schemes are completely reversible so that the original data can be accurately
reconstructed (lossless data compression), while others accept some loss of data in
order to achieve higher compression (lossy data compression). The latter category
includes schemes used for audio and video compression (eg. MP3 and MPEG), but
here we consider applications where compression must be lossless.
Lossless compression is useful where data needs to be transmitted or stored and
where reducing the amount of data being handled has positive benefits. In terms
of storage, compression techniques can be used to increase the quantity of data
which may be stored on media which otherwise might be too restricted in capacity.
Similarly, network speed may be apparently increased using compression to reduce
the quantity of data being transferred. Requirements such as these however require
the compression and subsequent expansion of the data to occur at high data rates.
Where previously data compression was generally handled in software, today's
requirements mean that high performance hardware acceleration of the compression
processing is becoming a basic requirement.
Data compression and encryption are often closely related within a system.
It is worth noting that data which has been encrypted will not compress effectively
due to the way in which encryption naturally removes any repeats or patterns from
the plain data. This means that when these two operations co-exist, the order in
which they are applied is very important, as is a full understanding of the relative
data throughputs through the compression function. Significant care must be taken
in the design of such a system to ensure the most effective use of the hardware.
The Lempel-Ziv (LZ) compression methods are among the most popular algorithms for
lossless compression. LZ methods use a table based compression model where table
entries are substituted for repeated strings of data. For most LZ methods, this
table is generated dynamically from the data coming into the encoder.
One particular LZ-type algorithm is called LZRW3. This is a well known algorithm
developed by Ross Williams in the 1990s which offers a useful combination of
high throughput and good compression performance. It is supplied as part of the
Linux operating system as an optional compression technique, so is well proven
and as far as we know not subject to any patent claims.
Helion Data Compression Solutions
Helion currently offer a very high performance implementation in hardware
for the LZRW3 lossless compression algorithm. A choice of separate compression
and expansion engines, or a combined compressor / decompressor is available,
each capable of processing at gigabit rates in typical ASIC or FPGA targets.
These high performance cores are available in versions for use in ASIC, Altera
and Xilinx FPGA, and in common with all Helion IP cores they
have been designed with each technology firmly in mind to yield the very
best and most efficient results.
Measured Area and Performance
Example figures for combined Compressor/Expander (functions also available separately)
| TARGET |
TYPICAL THROUGHPUT |
AREA |
ASIC (0.13um CMOS) |
>1.5 Gbps* |
<10k gates plus RAM** |
Xilinx FPGA (Spartan 3 -5) |
>600 Mbps* |
1015 slices 4 to 20 BlockRAMs*** |
Xilinx FPGA (Virtex 4 -11) |
>1.1 Gbps* |
1033 slices 4 to 20 BlockRAMs*** |
Xilinx FPGA (Virtex 5 -3) |
>1.3 Gbps* |
226 slices 2 to 10 BlockRAMs*** |
* Typical throughput figures above are data dependant.
** ASIC RAM figures depend on RAM cells available plus chosen compression blocksize.
*** RAM figures above will vary with chosen compression blocksize.
Datasheets
For full details of the Helion LZRW3 cores, please download the datasheet appropriate
to your target technology.
Click here for the Xilinx FPGA core data sheet (PDF format)
Please contact Helion for ASIC, Actel and Altera datasheets.
Contact
For more detailed information on these or any of our other products and services,
please feel free to email us at
helioncores@heliontech.com and we will be pleased to discuss how we can assist
with your individual requirements.
|