[FFmpeg-cvslog] r16041 - trunk/libavcodec/aac.c

superdump subversion
Tue Dec 9 18:14:43 CET 2008


Author: superdump
Date: Tue Dec  9 18:14:42 2008
New Revision: 16041

Log:
AAC: Use a sign LUT rather than 1-2*get_bits1()

Patch by Alex Converse (alex converse gmail com)


Modified:
   trunk/libavcodec/aac.c

Modified: trunk/libavcodec/aac.c
==============================================================================
--- trunk/libavcodec/aac.c	(original)
+++ trunk/libavcodec/aac.c	Tue Dec  9 18:14:42 2008
@@ -741,6 +741,7 @@ static int decode_spectrum_and_dequant(A
     const int c = 1024/ics->num_windows;
     const uint16_t * offsets = ics->swb_offset;
     float *coef_base = coef;
+    static const float sign_lookup[] = { 1.0f, -1.0f };
 
     for (g = 0; g < ics->num_windows; g++)
         memset(coef + g * 128 + offsets[ics->max_sfb], 0, sizeof(float)*(c - offsets[ics->max_sfb]));
@@ -784,11 +785,11 @@ static int decode_spectrum_and_dequant(A
                         }
                         vq_ptr = &ff_aac_codebook_vectors[cur_band_type - 1][index * dim];
                         if (is_cb_unsigned) {
-                            if (vq_ptr[0]) coef[coef_tmp_idx    ] = 1 - 2*(int)get_bits1(gb);
-                            if (vq_ptr[1]) coef[coef_tmp_idx + 1] = 1 - 2*(int)get_bits1(gb);
+                            if (vq_ptr[0]) coef[coef_tmp_idx    ] = sign_lookup[get_bits1(gb)];
+                            if (vq_ptr[1]) coef[coef_tmp_idx + 1] = sign_lookup[get_bits1(gb)];
                             if (dim == 4) {
-                                if (vq_ptr[2]) coef[coef_tmp_idx + 2] = 1 - 2*(int)get_bits1(gb);
-                                if (vq_ptr[3]) coef[coef_tmp_idx + 3] = 1 - 2*(int)get_bits1(gb);
+                                if (vq_ptr[2]) coef[coef_tmp_idx + 2] = sign_lookup[get_bits1(gb)];
+                                if (vq_ptr[3]) coef[coef_tmp_idx + 3] = sign_lookup[get_bits1(gb)];
                             }
                         }else {
                             coef[coef_tmp_idx    ] = 1.0f;




More information about the ffmpeg-cvslog mailing list