# HG changeset patch # User mru # Date 1263401199 0 # Node ID 9ad6c1c4455cc4bda8a74623669ce968992cdea3 # Parent 03d8758218d219fb601e0e5e4b2abfb5f484149f AAC: Reduce depth of vlc_spectral tables to 2 Up to 6% faster overall on i7, no change on A8. diff -r 03d8758218d2 -r 9ad6c1c4455c aac.c --- 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; diff -r 03d8758218d2 -r 9ad6c1c4455c aac.h --- 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 #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);