FIX: decode_huff off-by-one bug
This commit is contained in:
parent
cd2b89bd73
commit
781cb3047f
@ -381,11 +381,14 @@ def decode_huff(huff_sec, huff_LUT):
|
|||||||
while b:
|
while b:
|
||||||
N += 1
|
N += 1
|
||||||
b = huff_sec[streamIndex + N]
|
b = huff_sec[streamIndex + N]
|
||||||
|
# Skip the N leading '1' bits AND the terminating '0' delimiter.
|
||||||
|
# The encoder writes: '1'*N + '0' + <N4 bits>
|
||||||
streamIndex += N +1
|
streamIndex += N +1
|
||||||
N4 = N + 4
|
N4 = N + 4
|
||||||
escape_word = huff_sec[streamIndex:streamIndex + N4]
|
escape_word = huff_sec[streamIndex:streamIndex + N4]
|
||||||
escape_value = 2 ** N4 + int("".join(map(str, escape_word)), 2)
|
escape_value = 2 ** N4 + int("".join(map(str, escape_word)), 2)
|
||||||
nTupleDec[idx] = escape_value
|
nTupleDec[idx] = escape_value
|
||||||
|
# We already consumed the delimiter above; now consume only N4 bits.
|
||||||
streamIndex += N4
|
streamIndex += N4
|
||||||
# Apply signs again
|
# Apply signs again
|
||||||
nTupleDec[escIndex] *= nTupleSign[escIndex]
|
nTupleDec[escIndex] *= nTupleSign[escIndex]
|
||||||
|
|||||||
@ -381,12 +381,15 @@ def decode_huff(huff_sec, huff_LUT):
|
|||||||
while b:
|
while b:
|
||||||
N += 1
|
N += 1
|
||||||
b = huff_sec[streamIndex + N]
|
b = huff_sec[streamIndex + N]
|
||||||
streamIndex += N
|
# Skip the N leading '1' bits AND the terminating '0' delimiter.
|
||||||
|
# The encoder writes: '1'*N + '0' + <N4 bits>
|
||||||
|
streamIndex += N +1
|
||||||
N4 = N + 4
|
N4 = N + 4
|
||||||
escape_word = huff_sec[streamIndex:streamIndex + N4]
|
escape_word = huff_sec[streamIndex:streamIndex + N4]
|
||||||
escape_value = 2 ** N4 + int("".join(map(str, escape_word)), 2)
|
escape_value = 2 ** N4 + int("".join(map(str, escape_word)), 2)
|
||||||
nTupleDec[idx] = escape_value
|
nTupleDec[idx] = escape_value
|
||||||
streamIndex += N4 + 1
|
# We already consumed the delimiter above; now consume only N4 bits.
|
||||||
|
streamIndex += N4
|
||||||
# Apply signs again
|
# Apply signs again
|
||||||
nTupleDec[escIndex] *= nTupleSign[escIndex]
|
nTupleDec[escIndex] *= nTupleSign[escIndex]
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user