public static IList <byte> Huffman(HuffmanResult huffmanResult) { var huf = new Huffman(); huf.BuildCodes(huffmanResult.BytesCounts); var hufResult = huf.Decode(huffmanResult.Bits); return(hufResult); }
public static HuffmanResult Huffman(IList <byte> bytes) { var huf = new Huffman(); huf.CountBytes(bytes); huf.BuildCodes(); var hufResult = huf.Encode(bytes); var result = new HuffmanResult( bytesCounts: huf.Counts, bits: hufResult); return(result); }
public byte[] Decode() { var compressedData = new CompressedData(this.Bytes.ToArray()); var huffmanResult = new HuffmanResult( bytesCounts: compressedData.HufBytesCounts, bits: compressedData.HufBits); var hufResult = Huffman(huffmanResult); var rleResult1 = RLE(hufResult); var mtfResult = MTF(rleResult1); var bwtResult = BWT(mtfResult, compressedData.BwtInitialStringIndex); var rleResult2 = RLE(bwtResult); return(rleResult2.ToArray()); }