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 {
 | 
			
		||||
                /* escape */
 | 
			
		||||
                run = SHOW_UBITS(re, &s->gb, 6) + 1;
 | 
			
		||||
                LAST_SKIP_BITS(re, &s->gb, 6);
 | 
			
		||||
                UPDATE_CACHE(re, &s->gb);
 | 
			
		||||
                SKIP_BITS(re, &s->gb, 6);
 | 
			
		||||
                level = SHOW_SBITS(re, &s->gb, 12);
 | 
			
		||||
                SKIP_BITS(re, &s->gb, 12);
 | 
			
		||||
                LAST_SKIP_BITS(re, &s->gb, 12);
 | 
			
		||||
                i += run;
 | 
			
		||||
                if (i > MAX_INDEX)
 | 
			
		||||
                    break;
 | 
			
		||||
@ -610,10 +609,9 @@ static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s,
 | 
			
		||||
            } else {
 | 
			
		||||
                /* escape */
 | 
			
		||||
                run = SHOW_UBITS(re, &s->gb, 6) + 1;
 | 
			
		||||
                LAST_SKIP_BITS(re, &s->gb, 6);
 | 
			
		||||
                UPDATE_CACHE(re, &s->gb);
 | 
			
		||||
                SKIP_BITS(re, &s->gb, 6);
 | 
			
		||||
                level = SHOW_SBITS(re, &s->gb, 12);
 | 
			
		||||
                SKIP_BITS(re, &s->gb, 12);
 | 
			
		||||
                LAST_SKIP_BITS(re, &s->gb, 12);
 | 
			
		||||
                i += run;
 | 
			
		||||
                j = scantable[i];
 | 
			
		||||
                if (level < 0) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user