diff options
Diffstat (limited to '7zip/Compress/Huffman/HuffmanEncoder.cpp')
-rwxr-xr-x | 7zip/Compress/Huffman/HuffmanEncoder.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/7zip/Compress/Huffman/HuffmanEncoder.cpp b/7zip/Compress/Huffman/HuffmanEncoder.cpp index 5876bae8..2badc58e 100755 --- a/7zip/Compress/Huffman/HuffmanEncoder.cpp +++ b/7zip/Compress/Huffman/HuffmanEncoder.cpp @@ -315,4 +315,17 @@ void CEncoder::BuildTree(Byte *levels) levels[n] = Byte(m_Items[n].Len); } +void CEncoder::ReverseBits() +{ + for (UInt32 symbol = 0; symbol < m_NumSymbols; symbol++) + { + CItem &item = m_Items[symbol]; + UInt32 value = item.Code; + UInt32 reverseValue = 0; + for(UInt32 i = item.Len; i != 0; i--, value >>= 1) + reverseValue = (reverseValue << 1) | (value & 1); + item.Code = reverseValue; + } +} + }} |