Function decodeBit [src]

Prototype

pub inline fn decodeBit(self: *RangeDecoder, reader: anytype, prob: *u16, update: bool) !bool

Parameters

self: *RangeDecoderprob: *u16update: bool

Source

pub inline fn decodeBit(self: *RangeDecoder, reader: anytype, prob: *u16, update: bool) !bool { const bound = (self.range >> 11) * prob.*; if (self.code < bound) { if (update) prob.* += (0x800 - prob.*) >> 5; self.range = bound; try self.normalize(reader); return false; } else { if (update) prob.* -= prob.* >> 5; self.code -= bound; self.range -= bound; try self.normalize(reader); return true; } }