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