comparison golomb.h @ 2087:a4d3699c6636 libavcodec

1000l to the ffsvq3 author, our default bitstream reader is only guranteed to be able to read 25bit at a time
author michael
date Sat, 19 Jun 2004 01:14:13 +0000
parents 6d762acfff5d
children 2a767157935e
comparison
equal deleted inserted replaced
2086:13811ac6ddc7 2087:a4d3699c6636
78 LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]); 78 LAST_SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]);
79 CLOSE_READER(re, gb); 79 CLOSE_READER(re, gb);
80 80
81 return ff_interleaved_ue_golomb_vlc_code[buf]; 81 return ff_interleaved_ue_golomb_vlc_code[buf];
82 }else{ 82 }else{
83 buf|=1; 83 LAST_SKIP_BITS(re, gb, 8);
84 UPDATE_CACHE(re, gb);
85 buf |= 1 | (GET_CACHE(re, gb) >> 8);
86
84 if((buf & 0xAAAAAAAA) == 0) 87 if((buf & 0xAAAAAAAA) == 0)
85 return INVALID_VLC; 88 return INVALID_VLC;
86 89
87 for(log=31; (buf & 0x80000000) == 0; log--){ 90 for(log=31; (buf & 0x80000000) == 0; log--){
88 buf = (buf << 2) - ((buf << log) >> (log - 1)) + (buf >> 30); 91 buf = (buf << 2) - ((buf << log) >> (log - 1)) + (buf >> 30);
89 } 92 }
90 93
91 LAST_SKIP_BITS(re, gb, 63 - 2*log); 94 LAST_SKIP_BITS(re, gb, 63 - 2*log - 8);
92 CLOSE_READER(re, gb); 95 CLOSE_READER(re, gb);
93 96
94 return ((buf << log) >> log) - 1; 97 return ((buf << log) >> log) - 1;
95 } 98 }
96 } 99 }