H.264: improve qp_thresh check
Eliminate redundant check in filter_mb_fast, consider bit depth in calculating qp_thresh.
This commit is contained in:
		
							parent
							
								
									99b6d2c065
								
							
						
					
					
						commit
						6a2176aac0
					
				@ -2931,7 +2931,9 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    h->qp_thresh= 15 + 52 - FFMIN(h->slice_alpha_c0_offset, h->slice_beta_offset) - FFMAX3(0, h->pps.chroma_qp_index_offset[0], h->pps.chroma_qp_index_offset[1]);
 | 
			
		||||
    h->qp_thresh = 15 + 52 - FFMIN(h->slice_alpha_c0_offset, h->slice_beta_offset)
 | 
			
		||||
                 - FFMAX3(0, h->pps.chroma_qp_index_offset[0], h->pps.chroma_qp_index_offset[1])
 | 
			
		||||
                 + 6 * (h->sps.bit_depth_luma - 8);
 | 
			
		||||
 | 
			
		||||
#if 0 //FMO
 | 
			
		||||
    if( h->pps.num_slice_groups > 1  && h->pps.mb_slice_group_map_type >= 3 && h->pps.mb_slice_group_map_type <= 5)
 | 
			
		||||
 | 
			
		||||
@ -216,7 +216,7 @@ void ff_h264_filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y,
 | 
			
		||||
    MpegEncContext * const s = &h->s;
 | 
			
		||||
    int mb_xy;
 | 
			
		||||
    int mb_type, left_type, top_type;
 | 
			
		||||
    int qp, qp0, qp1, qpc, qpc0, qpc1, qp_thresh;
 | 
			
		||||
    int qp, qp0, qp1, qpc, qpc0, qpc1;
 | 
			
		||||
    int chroma = !(CONFIG_GRAY && (s->flags&CODEC_FLAG_GRAY));
 | 
			
		||||
    int chroma444 = CHROMA444;
 | 
			
		||||
 | 
			
		||||
@ -241,10 +241,6 @@ void ff_h264_filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y,
 | 
			
		||||
    qp1 = (qp + qp1 + 1) >> 1;
 | 
			
		||||
    qpc0 = (qpc + qpc0 + 1) >> 1;
 | 
			
		||||
    qpc1 = (qpc + qpc1 + 1) >> 1;
 | 
			
		||||
    qp_thresh = 15+52 - h->slice_alpha_c0_offset;
 | 
			
		||||
    if(qp <= qp_thresh && qp0 <= qp_thresh && qp1 <= qp_thresh &&
 | 
			
		||||
       qpc <= qp_thresh && qpc0 <= qp_thresh && qpc1 <= qp_thresh)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    if( IS_INTRA(mb_type) ) {
 | 
			
		||||
        static const int16_t bS4[4] = {4,4,4,4};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user