9 private readonly
short[]
_left;
43 byte[]
array =
new byte[288];
44 for (
int i = 0; i <= 143; i++)
48 for (
int j = 144; j <= 255; j++)
52 for (
int k = 256; k <= 279; k++)
56 for (
int l = 280; l <= 287; l++)
65 byte[]
array =
new byte[32];
66 for (
int i = 0; i < 32; i++)
88 uint[]
array =
new uint[17];
90 foreach (
int num
in codeLengthArray)
95 uint[] array2 =
new uint[17];
97 for (
int j = 1; j <= 16; j++)
99 num2 = (array2[j] = num2 +
array[j - 1] << 1);
101 uint[] array3 =
new uint[288];
125 int num3 = (int)
array[i];
128 int num4 = 1 << num2;
134 for (
int j = 0; j < num5; j++)
147 short num9 = array2[num8];
150 array2[num8] = (
short)(-num);
151 num9 = (
short)(-num);
164 array2[num8] = (
short)i;
170 uint num =
input.TryLoad16Bits();
171 if (
input.AvailableBits == 0)
182 num2 = (((num & num3) != 0) ?
_right[num2] :
_left[num2]);
192 if (num4 >
input.AvailableBits)
196 input.SkipBits(num4);
int GetNextSymbol(InputBuffer input)
uint[] CalculateHuffmanCode()
static byte[] GetStaticDistanceTreeLength()
static byte[] GetStaticLiteralTreeLength()
HuffmanTree(byte[] codeLengths)
readonly byte[] _codeLengthArray
static uint BitReverse(uint code, int length)
static HuffmanTree StaticDistanceTree
static HuffmanTree StaticLiteralLengthTree
static string InvalidHuffmanData