VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Huffman Compression Algorithm (like WinZIP)

by James Vincent Carnicelli (21 Submissions)
Category: Encryption
Compatability: Visual Basic 3.0
Difficulty: Intermediate
Date Added: Wed 3rd February 2021
Rating: (21 Votes)

PKZIP, ARJ, ARC, JPEG, and a host of other programs and compressed file formats all use the Huffman coding algorithm (or similar redundancy-minimization methods) for compressing strings.

With this small VB module, you can do your own compression in code -- compressing strings down to as small as 13%. Here's how easy it is:


        Compressed = HuffmanEncode(Text1)

        Text2 = HuffmanDecode(Compressed)


This simple code can be used to compress big text fields in databases, keep your data files small, or speed up transfers of data across the Internet. It can also be used as a form of encryption.

The HuffmanCoding.bas module has plenty of extra information and some in-code documentation (in case you're wondering out how it works.)

Please comment on this code and vote for my hard work if you like this code.

_____________________________________

Updates:

1 August 2000:

  • Rebuilt from scratch
  • Compression takes 28% of the time it did before
  • Decompression takes 19% of the time it did before
  • There's only one file, now (no extra class)
  • Much better error checking and reporting
  • Uses a stored checksum upon decompression to check for corruption
  • The code is only 455 lines, including comments!
  • Thanks to optimization, the code is even more convoluted :-)

    Rate Huffman Compression Algorithm (like WinZIP)

    Download Huffman Compression Algorithm (like WinZIP)

    Download Huffman Compression Algorithm (like WinZIP) (5 KB)

  • Huffman Compression Algorithm (like WinZIP) Comments

    No comments have been posted about Huffman Compression Algorithm (like WinZIP). Why not be the first to post a comment about Huffman Compression Algorithm (like WinZIP).

    Post your comment

    Subject:
    Message:
    0/1000 characters