diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2021-05-12 18:29:34 +0200 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2021-05-12 18:29:34 +0200 |
commit | 14833a644657637b06a511e4bf6db0ec9ba0ad12 (patch) | |
tree | a62839e4cf9a24f50c5983cbb499d3411ca784f7 | |
parent | 757ee9164bd2ab7e1690ae2ea4e5a03f7b37f1b5 (diff) | |
download | nihav-14833a644657637b06a511e4bf6db0ec9ba0ad12.tar.gz |
h264: use 6-bit state_idx in CABAC decoder (this eliminates boundary check)
-rw-r--r-- | nihav-itu/src/codecs/h264/cabac_coder.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/nihav-itu/src/codecs/h264/cabac_coder.rs b/nihav-itu/src/codecs/h264/cabac_coder.rs index 0e14809..baa8caf 100644 --- a/nihav-itu/src/codecs/h264/cabac_coder.rs +++ b/nihav-itu/src/codecs/h264/cabac_coder.rs @@ -131,7 +131,7 @@ impl<'a> CABAC<'a> { } pub fn decode_bit(&mut self, idx: usize) -> bool { let mut val_mps = (self.states[idx] & 0x80) != 0; - let state_idx = (self.states[idx] & 0x7F) as usize; + let state_idx = (self.states[idx] & 0x3F) as usize; let range_idx = ((self.cod_range >> 6) & 3) as usize; let range_lps = u16::from(RANGE_TBL_LPS[range_idx + state_idx * 4]); self.cod_range -= range_lps; |