A New Lossless Image Compression Technique Based on Bose, Chandhuri and Hocquengham (BCH) Codes


A new binary (bit-level) lossless image compression method based on a well-known error correcting BCH codes has been introduced in this paper. The BCH encoder converts the message of k bits to a codeword of length n by adding 3 parity bits. In contrast the decoder eliminates these parity bits after verifying the received message; therefore, the proposed method utilizes this idea by dividing the image into blocks of size 7 bits. These blocks entered to the BCH decoder who eliminates the parity bits. This reduces the block size to 4 bits. The output will be in two folds first the compressed image file and the second a file contains the keys. Each block is tested to find if it is a valid block or not (valid / non-valid codeword). In order to distinguish between them during the decompression process, the proposed method adds 1 for the valid codeword and 0 for the invalid codeword and saved in another file to be the key that used in the decoding stage. We then implement the Huffman codes on the compressed file to increase the compression ratio. On the other hand, two different algorithms are implemented into the added bit file (keys) to reduce the file size. The RLE encoding algorithm is the first one, and the results were entered into the second compression round using the Huffman algorithm. The file is then attached to the header of the compressed image file. This proposed method reduces the entropy of the generated binary sequence so that it grants higher compression ratio. The experimental results show that the compression algorithm is efficient and gives a good compression ratio without losing data. The using of BCH code improves the results of Huffman in terms of increasing compression ratio.

7 Figures and Tables

Cite this paper

@inproceedings{AlHashemi2011ANL, title={A New Lossless Image Compression Technique Based on Bose, Chandhuri and Hocquengham (BCH) Codes}, author={Rafeeq Al-Hashemi and Israa Wahbi Kamal}, year={2011} }