On Tue, Jul 14, 2020 at 10:43:51PM +0200, Andreas Rheinhardt wrote: > Michael Niedermayer: > > On Tue, Jul 14, 2020 at 05:34:50PM +0200, Andreas Rheinhardt wrote: > >> get_ue_golomb_31() uses a LUT of 512 entries; therefore it can be used > >> to parse exp-golomb codes of length <= 9, i.e. those codes with at most > >> four leading bits that have five effective bits; this implies a range of > >> 0..30 and not 31. In particular, this function must not be used to parse > >> e.g. the H.264 SPS id. > > > > hmm, are you sure ? > > > > Yes. > > > 1 0 > > 01X 1-2 > > 001XX 3-6 > > 0001XXX 7-14 > > 00001XXXX 15-30 > > 000001..... 31 > > > > we need to read 9 bits for this, we do not need to read the bits marked with > > a "." because the code is already determined at this point. > > > The code is only determined at the point if one already presumes that it > can't be anything >31.
yes, that is the idea of get_ue_golomb_31() its only used when the biggest valid code is 31. > Without this assumption, one needs to look at all > the five "." in order to distinguish it from 32..62. By looking at only > 9 digits one can not rule out 32-34. > And if you take a look at ff_ue_golomb_vlc_code, you will see that it > does not even contain 31 at all. It returns the values 0-30 for the > codes with length <= 9 and returns 32 for the rest. const uint8_t ff_ue_golomb_vlc_code[512]={ 32,32,32,32,32,32,32,32,31,32,32,32,32,32,32,32,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, ^^ [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB During times of universal deceit, telling the truth becomes a revolutionary act. -- George Orwell
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".