aacenc_tns: simplify encoding function
It's simpler and has 2 less levels than the previous which was practically lifted from the decoder with put_bits() instead of get_bits().
This commit is contained in:
		
							parent
							
								
									f3ad901a32
								
							
						
					
					
						commit
						bf39beca87
					
				@ -59,31 +59,31 @@ static inline int compress_coeffs(int *coef, int order, int c_bits)
 | 
			
		||||
 */
 | 
			
		||||
void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce)
 | 
			
		||||
{
 | 
			
		||||
    int i, w, filt, coef_len, coef_compress = 0;
 | 
			
		||||
    const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
 | 
			
		||||
    int i, w, filt, coef_compress = 0, coef_len;
 | 
			
		||||
    TemporalNoiseShaping *tns = &sce->tns;
 | 
			
		||||
    const int c_bits = is8 ? TNS_Q_BITS_SHORT == 4 : TNS_Q_BITS == 4;
 | 
			
		||||
    const int is8 = sce->ics.window_sequence[0] == EIGHT_SHORT_SEQUENCE;
 | 
			
		||||
    const int c_bits = is8 ? TNS_Q_BITS_IS8 == 4 : TNS_Q_BITS == 4;
 | 
			
		||||
 | 
			
		||||
    if (!sce->tns.present)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < sce->ics.num_windows; i++) {
 | 
			
		||||
        put_bits(&s->pb, 2 - is8, sce->tns.n_filt[i]);
 | 
			
		||||
        if (tns->n_filt[i]) {
 | 
			
		||||
            put_bits(&s->pb, 1, c_bits);
 | 
			
		||||
            for (filt = 0; filt < tns->n_filt[i]; filt++) {
 | 
			
		||||
                put_bits(&s->pb, 6 - 2 * is8, tns->length[i][filt]);
 | 
			
		||||
                put_bits(&s->pb, 5 - 2 * is8, tns->order[i][filt]);
 | 
			
		||||
                if (tns->order[i][filt]) {
 | 
			
		||||
                    coef_compress = compress_coeffs(tns->coef_idx[i][filt],
 | 
			
		||||
                                                    tns->order[i][filt], c_bits);
 | 
			
		||||
                    put_bits(&s->pb, 1, !!tns->direction[i][filt]);
 | 
			
		||||
                    put_bits(&s->pb, 1, !!coef_compress);
 | 
			
		||||
                    coef_len = c_bits + 3 - coef_compress;
 | 
			
		||||
                    for (w = 0; w < tns->order[i][filt]; w++)
 | 
			
		||||
                        put_bits(&s->pb, coef_len, tns->coef_idx[i][filt][w]);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        if (!tns->n_filt[i])
 | 
			
		||||
            continue;
 | 
			
		||||
        put_bits(&s->pb, 1, c_bits);
 | 
			
		||||
        for (filt = 0; filt < tns->n_filt[i]; filt++) {
 | 
			
		||||
            put_bits(&s->pb, 6 - 2 * is8, tns->length[i][filt]);
 | 
			
		||||
            put_bits(&s->pb, 5 - 2 * is8, tns->order[i][filt]);
 | 
			
		||||
            if (!tns->order[i][filt])
 | 
			
		||||
                continue;
 | 
			
		||||
            put_bits(&s->pb, 1, tns->direction[i][filt]);
 | 
			
		||||
            coef_compress = compress_coeffs(tns->coef_idx[i][filt],
 | 
			
		||||
                                            tns->order[i][filt], c_bits);
 | 
			
		||||
            put_bits(&s->pb, 1, coef_compress);
 | 
			
		||||
            coef_len = c_bits + 3 - coef_compress;
 | 
			
		||||
            for (w = 0; w < tns->order[i][filt]; w++)
 | 
			
		||||
                put_bits(&s->pb, coef_len, tns->coef_idx[i][filt][w]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user