changeset 10877:9ad6c1c4455c libavcodec

AAC: Reduce depth of vlc_spectral tables to 2 Up to 6% faster overall on i7, no change on A8.
author mru
date Wed, 13 Jan 2010 16:46:39 +0000
parents 03d8758218d2
children a8620b001ed3
files aac.c aac.h
diffstat 2 files changed, 17 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/aac.c	Wed Jan 13 16:46:35 2010 +0000
+++ b/aac.c	Wed Jan 13 16:46:39 2010 +0000
@@ -508,17 +508,17 @@
     avccontext->sample_fmt = SAMPLE_FMT_S16;
     avccontext->frame_size = 1024;
 
-    AAC_INIT_VLC_STATIC( 0, 144);
-    AAC_INIT_VLC_STATIC( 1, 114);
-    AAC_INIT_VLC_STATIC( 2, 188);
-    AAC_INIT_VLC_STATIC( 3, 180);
-    AAC_INIT_VLC_STATIC( 4, 172);
-    AAC_INIT_VLC_STATIC( 5, 140);
-    AAC_INIT_VLC_STATIC( 6, 168);
-    AAC_INIT_VLC_STATIC( 7, 114);
-    AAC_INIT_VLC_STATIC( 8, 262);
-    AAC_INIT_VLC_STATIC( 9, 248);
-    AAC_INIT_VLC_STATIC(10, 384);
+    AAC_INIT_VLC_STATIC( 0, 304);
+    AAC_INIT_VLC_STATIC( 1, 270);
+    AAC_INIT_VLC_STATIC( 2, 550);
+    AAC_INIT_VLC_STATIC( 3, 300);
+    AAC_INIT_VLC_STATIC( 4, 328);
+    AAC_INIT_VLC_STATIC( 5, 294);
+    AAC_INIT_VLC_STATIC( 6, 306);
+    AAC_INIT_VLC_STATIC( 7, 268);
+    AAC_INIT_VLC_STATIC( 8, 510);
+    AAC_INIT_VLC_STATIC( 9, 366);
+    AAC_INIT_VLC_STATIC(10, 462);
 
     dsputil_init(&ac->dsp, avccontext);
 
@@ -989,7 +989,7 @@
                         int len = off_len;
 
                         do {
-                            const int index = get_vlc2(gb, vlc_tab, 6, 3);
+                            const int index = get_vlc2(gb, vlc_tab, 8, 2);
                             unsigned cb_idx;
 
                             if (index >= cb_size) {
@@ -1009,7 +1009,7 @@
                         int len = off_len;
 
                         do {
-                            const int index = get_vlc2(gb, vlc_tab, 6, 3);
+                            const int index = get_vlc2(gb, vlc_tab, 8, 2);
                             unsigned nnz;
                             unsigned cb_idx;
                             uint32_t bits;
@@ -1033,7 +1033,7 @@
                         int len = off_len;
 
                         do {
-                            const int index = get_vlc2(gb, vlc_tab, 6, 3);
+                            const int index = get_vlc2(gb, vlc_tab, 8, 2);
                             unsigned cb_idx;
 
                             if (index >= cb_size) {
@@ -1054,7 +1054,7 @@
                         int len = off_len;
 
                         do {
-                            const int index = get_vlc2(gb, vlc_tab, 6, 3);
+                            const int index = get_vlc2(gb, vlc_tab, 8, 2);
                             unsigned nnz;
                             unsigned cb_idx;
                             unsigned sign;
@@ -1079,7 +1079,7 @@
                         int len = off_len;
 
                         do {
-                            const int index = get_vlc2(gb, vlc_tab, 6, 3);
+                            const int index = get_vlc2(gb, vlc_tab, 8, 2);
                             unsigned nzt, nnz;
                             unsigned cb_idx;
                             uint32_t bits;
--- a/aac.h	Wed Jan 13 16:46:35 2010 +0000
+++ b/aac.h	Wed Jan 13 16:46:39 2010 +0000
@@ -37,7 +37,7 @@
 #include <stdint.h>
 
 #define AAC_INIT_VLC_STATIC(num, size) \
-    INIT_VLC_STATIC(&vlc_spectral[num], 6, ff_aac_spectral_sizes[num], \
+    INIT_VLC_STATIC(&vlc_spectral[num], 8, ff_aac_spectral_sizes[num], \
          ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeof( ff_aac_spectral_bits[num][0]), \
         ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeof(ff_aac_spectral_codes[num][0]), \
         size);