Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Huffman coding is a lossless data compression algorithm. The idea is to assign variable- length codes to input characters; lengths of the assigned codes are

Huffman coding is a lossless data compression algorithm. The idea is to assign variable- length codes to input characters; lengths of the assigned codes are based on the frequencies of corresponding characters. The most frequent character gets the smallest code and the least frequent character gets the largest code.

The variable-length codes assigned to input characters are Prefix Codes, means the codes (bit sequences) are assigned in such a way that the code assigned to one character is not prefix of code assigned to any other character. This is how Huffman Coding makes sure that there is no ambiguity when decoding the generated bit stream.

In this project, you will be using a priority queue and a binary tree of your design to implement a file compression/uncompression algorithm called "Huffman Coding".
Your program will read a text file and compress it using your implementation of the Huffman coding algorithm found in the explanation. The compressed text will be written to a file. That compressed file will be then be read back by your program and uncompressed. The uncompressed text will then be written to a third file. The uncompressed text file should of course match the original text file.

Summary of Processing

  • Read the specified file and count the frequency of all characters in the file.

  • Create the Huffman coding tree based on the frequencies.

  • Create the table of encodings for each character from the Huffman coding tree.

  • Encode the file and output the encoded/compressed file.

  • Read the encoded/compressed file you just created, decode it and output the

    decoded file.

 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Building Java Programs A Back To Basics Approach

Authors: Stuart Reges, Marty Stepp

5th Edition

013547194X, 978-0135471944

More Books

Students also viewed these Algorithms questions