Problem 185. Data decompression
A chunk of data is to be 'decompressed'.
Input:
- compressed: a row vector of uint8 values. This is the compressed data.
- table: a cell-array of strings. Each string contains only '1's and '0's and represents a binary code.
- alphabet: a string containing all possible symbols that may occur in the decompressed data. The symbol at alphabet(x) is encoded with the code at table{x}.
Output:
- decompressed: a string with the decoded message.
Example:
compressed=[93,85,127] table={'1','010'} alphabet='al' ==> decompressed = 'laaalalalaaaaaaa'
because:
[93,85,127] = '01011101 01010101 01111111' in binary decoded from left to right: '010 1 1 1 010 1 010 1 010 1 1 1 1 1 1 1' = l a a a l a l a l a a a a a a a
Remarks: The message is such that always exactly all bits of compressed are used. The solution is unique (see prefix-free code).
Solution Stats
Problem Comments
-
2 Comments
Tomasz
on 1 Feb 2012
Update: two randomized tests added to the suite.
Nikolaos Nikolaou
on 28 Oct 2020
i donnot understand the uint8 twist :/
Solution Comments
Show commentsProblem Recent Solvers82
Suggested Problems
-
449 Solvers
-
Sum of first n terms of a harmonic progression
419 Solvers
-
Compute a dot product of two vectors x and y
989 Solvers
-
485 Solvers
-
807 Solvers
More from this Author7
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!