Function parseReverseBitTree [src]
Prototype
pub fn parseReverseBitTree( self: *RangeDecoder, reader: *Reader, num_bits: u5, probs: []u16, offset: usize, n_read: *u64, ) !u32 Parameters
self: *RangeDecoderreader: *Readernum_bits: u5probs: []u16offset: usizen_read: *u64 Source
pub fn parseReverseBitTree(
self: *RangeDecoder,
reader: *Reader,
num_bits: u5,
probs: []u16,
offset: usize,
n_read: *u64,
) !u32 {
var result: u32 = 0;
var tmp: usize = 1;
var i: @TypeOf(num_bits) = 0;
while (i < num_bits) : (i += 1) {
const bit = @intFromBool(try self.decodeBit(reader, &probs[offset + tmp], n_read));
tmp = (tmp << 1) ^ bit;
result ^= @as(u32, bit) << i;
}
return result;
}