Mercurial > libavcodec.hg
comparison aac.c @ 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 | 798c62217427 |
comparison
equal
deleted
inserted
replaced
10876:03d8758218d2 | 10877:9ad6c1c4455c |
---|---|
506 } | 506 } |
507 | 507 |
508 avccontext->sample_fmt = SAMPLE_FMT_S16; | 508 avccontext->sample_fmt = SAMPLE_FMT_S16; |
509 avccontext->frame_size = 1024; | 509 avccontext->frame_size = 1024; |
510 | 510 |
511 AAC_INIT_VLC_STATIC( 0, 144); | 511 AAC_INIT_VLC_STATIC( 0, 304); |
512 AAC_INIT_VLC_STATIC( 1, 114); | 512 AAC_INIT_VLC_STATIC( 1, 270); |
513 AAC_INIT_VLC_STATIC( 2, 188); | 513 AAC_INIT_VLC_STATIC( 2, 550); |
514 AAC_INIT_VLC_STATIC( 3, 180); | 514 AAC_INIT_VLC_STATIC( 3, 300); |
515 AAC_INIT_VLC_STATIC( 4, 172); | 515 AAC_INIT_VLC_STATIC( 4, 328); |
516 AAC_INIT_VLC_STATIC( 5, 140); | 516 AAC_INIT_VLC_STATIC( 5, 294); |
517 AAC_INIT_VLC_STATIC( 6, 168); | 517 AAC_INIT_VLC_STATIC( 6, 306); |
518 AAC_INIT_VLC_STATIC( 7, 114); | 518 AAC_INIT_VLC_STATIC( 7, 268); |
519 AAC_INIT_VLC_STATIC( 8, 262); | 519 AAC_INIT_VLC_STATIC( 8, 510); |
520 AAC_INIT_VLC_STATIC( 9, 248); | 520 AAC_INIT_VLC_STATIC( 9, 366); |
521 AAC_INIT_VLC_STATIC(10, 384); | 521 AAC_INIT_VLC_STATIC(10, 462); |
522 | 522 |
523 dsputil_init(&ac->dsp, avccontext); | 523 dsputil_init(&ac->dsp, avccontext); |
524 | 524 |
525 ac->random_state = 0x1f2e3d4c; | 525 ac->random_state = 0x1f2e3d4c; |
526 | 526 |
987 for (group = 0; group < g_len; group++, cfo+=128) { | 987 for (group = 0; group < g_len; group++, cfo+=128) { |
988 float *cf = cfo; | 988 float *cf = cfo; |
989 int len = off_len; | 989 int len = off_len; |
990 | 990 |
991 do { | 991 do { |
992 const int index = get_vlc2(gb, vlc_tab, 6, 3); | 992 const int index = get_vlc2(gb, vlc_tab, 8, 2); |
993 unsigned cb_idx; | 993 unsigned cb_idx; |
994 | 994 |
995 if (index >= cb_size) { | 995 if (index >= cb_size) { |
996 err_idx = index; | 996 err_idx = index; |
997 goto err_cb_overflow; | 997 goto err_cb_overflow; |
1007 for (group = 0; group < g_len; group++, cfo+=128) { | 1007 for (group = 0; group < g_len; group++, cfo+=128) { |
1008 float *cf = cfo; | 1008 float *cf = cfo; |
1009 int len = off_len; | 1009 int len = off_len; |
1010 | 1010 |
1011 do { | 1011 do { |
1012 const int index = get_vlc2(gb, vlc_tab, 6, 3); | 1012 const int index = get_vlc2(gb, vlc_tab, 8, 2); |
1013 unsigned nnz; | 1013 unsigned nnz; |
1014 unsigned cb_idx; | 1014 unsigned cb_idx; |
1015 uint32_t bits; | 1015 uint32_t bits; |
1016 | 1016 |
1017 if (index >= cb_size) { | 1017 if (index >= cb_size) { |
1031 for (group = 0; group < g_len; group++, cfo+=128) { | 1031 for (group = 0; group < g_len; group++, cfo+=128) { |
1032 float *cf = cfo; | 1032 float *cf = cfo; |
1033 int len = off_len; | 1033 int len = off_len; |
1034 | 1034 |
1035 do { | 1035 do { |
1036 const int index = get_vlc2(gb, vlc_tab, 6, 3); | 1036 const int index = get_vlc2(gb, vlc_tab, 8, 2); |
1037 unsigned cb_idx; | 1037 unsigned cb_idx; |
1038 | 1038 |
1039 if (index >= cb_size) { | 1039 if (index >= cb_size) { |
1040 err_idx = index; | 1040 err_idx = index; |
1041 goto err_cb_overflow; | 1041 goto err_cb_overflow; |
1052 for (group = 0; group < g_len; group++, cfo+=128) { | 1052 for (group = 0; group < g_len; group++, cfo+=128) { |
1053 float *cf = cfo; | 1053 float *cf = cfo; |
1054 int len = off_len; | 1054 int len = off_len; |
1055 | 1055 |
1056 do { | 1056 do { |
1057 const int index = get_vlc2(gb, vlc_tab, 6, 3); | 1057 const int index = get_vlc2(gb, vlc_tab, 8, 2); |
1058 unsigned nnz; | 1058 unsigned nnz; |
1059 unsigned cb_idx; | 1059 unsigned cb_idx; |
1060 unsigned sign; | 1060 unsigned sign; |
1061 | 1061 |
1062 if (index >= cb_size) { | 1062 if (index >= cb_size) { |
1077 float *cf = cfo; | 1077 float *cf = cfo; |
1078 uint32_t *icf = (uint32_t *) cf; | 1078 uint32_t *icf = (uint32_t *) cf; |
1079 int len = off_len; | 1079 int len = off_len; |
1080 | 1080 |
1081 do { | 1081 do { |
1082 const int index = get_vlc2(gb, vlc_tab, 6, 3); | 1082 const int index = get_vlc2(gb, vlc_tab, 8, 2); |
1083 unsigned nzt, nnz; | 1083 unsigned nzt, nnz; |
1084 unsigned cb_idx; | 1084 unsigned cb_idx; |
1085 uint32_t bits; | 1085 uint32_t bits; |
1086 int j; | 1086 int j; |
1087 | 1087 |