EE 552

Text Messaging Centre

Alan Mak, Ben Lee, Wing Yee Chan, Christina Kwok

Compression and Decompression

  Introduction   Compression Method   Handshaking
      Design  

 
Introduction
This document provides information on a compression method use against simpel character text data (keyboard). Also, it decribe how the manage the handshaking signal in VHDL code between differnt clock device ( keyboard & LCD Display )
Go to top

 
Compression Method
This compression method are called Pattern Matching Compression. The method can divide into two category, auto and pres-set. First is auto, this ocmpression method usually will convert hte inoput data into address of the memory for store format, and which the memory contain the data. The way to perform the compression is by accumulate a compression libraray which contain series of character, and express them by memory address. THis way, as the libray build up, the efficiency will also grow up since the series of character are still representd by one moemry address. Bot on the ohter hand, it require a huge library ( memory ), require a memroy that able to adjust the size of each cell

Second is preset, which chosen some patttern of data and respresented by other coded data ( small bit size ), since the size of the compressed are small than the origainal data, the reset of the input data are require to express into the longer form. Even though it may seen this compression suck. But it still have it place over a small type of input data.

Go to top

 
Compression Method

Handshaking
It is critical to use handhaking signal to operation, since the system will be using two sub-clock period, ms for keyboard, and ns for hte regular operation. On the input operation to store into ram, the master part would b eram since hte compression is an intermediate state, and the keyboard is running in ms clock cycle. THe precoess will be for ram component is signal a input ready signal to the comrpession engine, and the engine will begin feeedin data to the ram one at time depend on the putpur ready generate by the ram componet. ALso, since the keyboard is oeprating in ms, which mean it will generate a longer trigger pulse for the compression, as a result, the compression engine is deign to begin to opearate after the trigger is finish in order to avoid multiple input to the ram.

For the decompression part, the process will be operation in similar base, but when the decompression is output the LCD display, the trigger pulse will design to last long enough to suit for display which operating in ms. The length of the trigger pulse will last until for the display's input ready is low, which mena the display is retrieve the data already, and the decompression will be ready for the next data.

Go to top

registerN.vhd

compression.vhd

decompression.vhd

Design

Compression / Decompression

Functionality:

- Compress input data before data into the ram

- Decompress ram data and putput to the LCD display

- Controlpath of the system (read, and store messae, etc)

Aware:

- compression engine to design base against text base data ( lower case)

- hand-shake signal cotnrol are rquired to avoid lost or misinterpret of data.

- different clock frequency use over keyboard, LCD display (ms scale), and   internal chip frequnecy.

Compress/Decompress engine:

- It is design to encode keyboard represenation (8 bit) with Preset Pattern   Matching technique.

- Compressed data are consisted of 5 bit as a group, with teh MSB '1' for the   compressed data, and '0' for the non-compressed data.

- 16 pattern (8 bit) is chosen to become preset patterna nd represent bye 5  bit  data with begin bit of '1'. The reset input (8bit) are separate into two group of 5 bit data with first bit of '0' and store into the ram unit.

- Engine are constructed using state machine, and change of the state are contolled by   the handshake signal between the keyboard, and the ram unit.

Hand Shake Signal:

- The real "handshake" part are only ocnsist between compression engine and ram unit;   and the decompression engine.

Reson : It is because the keyboard and LCD are operating in ms frequency, and the   ram unit are operating in chip frequency.

Experiment:

- Actual compress ratio are tested using C++, the compression ratio at 70-90% depend on   the input content, with average approximate at 73%

Go to top

 

This page is maintained by Chris