C++ String Compression: PPMD, Deflate, BZip2, LZW
This C++ example demonstrates string compression using four different compression algorithms: PPMD, Deflate, BZip2, and LZW.
void TestCompression(const char *algorithm) { CkCompression comp; comp.put_Algorithm(algorithm); printf ("algorithm: %s\n",algorithm); CkByteData compressedData; comp.CompressString("abc abc abc abc abc abc abc abc abc abc abc 123 123 abc 123",compressedData); // Get the compressed data: const unsigned char *pCompressedData = compressedData.getBytes(); unsigned long numBytes = compressedData.getSize(); printf("numBytes = %d\n",numBytes); // Imagine you've sent the compressed data over a socket connection to some receiver... // Decompress: CkByteData compressedData2; compressedData2.append(pCompressedData,numBytes); printf("%s\n",comp.decompressString(compressedData2)); printf("----\n"); } void CompressionExample(void) { CkCompression comp; comp.UnlockComponent("30-day trial"); TestCompression("deflate"); TestCompression("ppmd"); TestCompression("bzip2"); TestCompression("lzw"); }
The output is as follows:
algorithm: deflate numBytes = 15 abc abc abc abc abc abc abc abc abc abc abc 123 123 abc 123 ---- algorithm: ppmd numBytes = 18 abc abc abc abc abc abc abc abc abc abc abc 123 123 abc 123 ---- algorithm: bzip2 numBytes = 54 abc abc abc abc abc abc abc abc abc abc abc 123 123 abc 123 ---- algorithm: lzw numBytes = 30 abc abc abc abc abc abc abc abc abc abc abc 123 123 abc 123 ----
admin
0
Tags :