winzip icon

Huffman Compression Algorithm (like WinZIP)

Email
Submitted on: 1/8/2015 3:33:00 AM
By: James Vincent Carnicelli (from psc cd)  
Level: Intermediate
User Rating: By 21 Users
Compatibility: VB 4.0 (16-bit), VB 4.0 (32-bit), VB 5.0, VB 6.0
Views: 4257
 
     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 :-)
  •  
    winzip iconDownload code

    Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
    1. Re-scan downloaded files using your personal virus checker before using it.
    2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
    3. Scan the source code with Minnow's Project Scanner

    If you don't have a virus scanner, you can get one at many places on the net including:McAfee.com


    Other 20 submission(s) by this author

     


    Report Bad Submission
    Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
    This submission should be removed because:

    Your Vote

    What do you think of this code (in the Intermediate category)?
    (The code with your highest vote will win this month's coding contest!)
    Excellent  Good  Average  Below Average  Poor (See voting log ...)
     

    Other User Comments


     There are no comments on this submission.
     

    Add Your Feedback
    Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
     

    To post feedback, first please login.