|
Compression algorithm model | Compression algorithm type | Algorithm title | Advantages | Disadvantages |
|
Single-algorithm compression model | Statistical-based compression algorithms | Huffman | Fast calculation speed. The greater the frequency difference, the better the compression effect. | The decoding process is slow and easily influenced by file size. |
Arithmetic coding | Good compression effect. | Complex calculation process. |
RLE | The algorithm is simple and has a good compression effect when there are more repetitive characters. | When there are few repetitive characters, the compression effect is poor or has the opposite effect. |
Asymmetric digital systems (ANS) [22] | The compression rate is close to arithmetic coding. Compression speed is close to Huffman coding. | rANS requires shift decomposition and tANS requires form construction. |
Finite state (FSE) [23] | ANS-based algorithm with high compression performance | Need to build a table of finite state entropy |
Dictionary-based compression algorithm | LZ77 [24], LZSS [25], and LZO [26] | High compression efficiency and very fast decompression speed of LZO | Poor compression when repeated characters are far apart |
LZ78 [27] | No need for a search buffer and memory | Need to create dictionaries and manage them. Complex to compile |
LZW [8] | A simple method with a good compression effect and the second field of LZ78 encoding removed | The dictionary update process causes a reduction in compression ratio (CR) |
Hybrid algorithm compression model | Improved compression-based algorithm | MTF + single algorithm [28] | Ability to improve the alignment of its data, output its index of alignment, and create a high CR | Good for finite data only, not easy to handle when contains more data |
BWT + single algorithm [29] | BWT makes full use of its sequential arrangement and has a better compression effect | The algorithm process includes sorting, which takes up some memory and increases the time used for compression |
XOR incremental encoding + single algorithm [30] | Incremental encoding reduces the range of variation in the original data and reduces the number of binary bits represented | When the adjacent data vary very much, its compression becomes worse |
Hybrid compression of different single algorithms | RLE + Huffman [31] | With both data effects, it can get a higher CR and faster compression speed | However, it is limited by two compression methods on the dataset |
RLE + LZW [32] | Better data compression. No duplicate characters are encoded in the dictionary | Increased risk of error codes when coding |
|