mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avcodec/mpeg12dec: Optimize reading mpeg2 intra escape codes
Said escape code is only six bits long, so that one has at least 25 - 6 bits in the bitstream reader's cache after reading it; therefore the whole following 18 bits (containing the actual code) are already in the bitstream reader's cache, making it unnecessary to reload the cache. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
a11cc04786
commit
fe9bc1cc45
@ -526,10 +526,9 @@ static inline int mpeg2_decode_block_intra(MpegEncContext *s,
|
|||||||
} else {
|
} else {
|
||||||
/* escape */
|
/* escape */
|
||||||
run = SHOW_UBITS(re, &s->gb, 6) + 1;
|
run = SHOW_UBITS(re, &s->gb, 6) + 1;
|
||||||
LAST_SKIP_BITS(re, &s->gb, 6);
|
SKIP_BITS(re, &s->gb, 6);
|
||||||
UPDATE_CACHE(re, &s->gb);
|
|
||||||
level = SHOW_SBITS(re, &s->gb, 12);
|
level = SHOW_SBITS(re, &s->gb, 12);
|
||||||
SKIP_BITS(re, &s->gb, 12);
|
LAST_SKIP_BITS(re, &s->gb, 12);
|
||||||
i += run;
|
i += run;
|
||||||
if (i > MAX_INDEX)
|
if (i > MAX_INDEX)
|
||||||
break;
|
break;
|
||||||
@ -610,10 +609,9 @@ static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s,
|
|||||||
} else {
|
} else {
|
||||||
/* escape */
|
/* escape */
|
||||||
run = SHOW_UBITS(re, &s->gb, 6) + 1;
|
run = SHOW_UBITS(re, &s->gb, 6) + 1;
|
||||||
LAST_SKIP_BITS(re, &s->gb, 6);
|
SKIP_BITS(re, &s->gb, 6);
|
||||||
UPDATE_CACHE(re, &s->gb);
|
|
||||||
level = SHOW_SBITS(re, &s->gb, 12);
|
level = SHOW_SBITS(re, &s->gb, 12);
|
||||||
SKIP_BITS(re, &s->gb, 12);
|
LAST_SKIP_BITS(re, &s->gb, 12);
|
||||||
i += run;
|
i += run;
|
||||||
j = scantable[i];
|
j = scantable[i];
|
||||||
if (level < 0) {
|
if (level < 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user