comparison vorbis.c @ 2741:d5ac91dafaa8 libavcodec

maxdepth is supposed to be a constant, its faster if its too large then if its non constant
author michael
date Mon, 30 May 2005 19:14:50 +0000
parents 977209c4cc54
children 9f469a5d3a33
comparison
equal deleted inserted replaced
2740:977209c4cc54 2741:d5ac91dafaa8
896 896
897 AV_DEBUG("Cbits %d \n", cbits); 897 AV_DEBUG("Cbits %d \n", cbits);
898 898
899 if (cbits) { // this reads all subclasses for this partition's class 899 if (cbits) { // this reads all subclasses for this partition's class
900 cval=get_vlc2(gb, vc->codebooks[vf->class_masterbook[class_]].vlc.table, 900 cval=get_vlc2(gb, vc->codebooks[vf->class_masterbook[class_]].vlc.table,
901 V_NB_BITS, vc->codebooks[vf->class_masterbook[class_]].maxdepth); 901 V_NB_BITS, 3);
902 } 902 }
903 903
904 for(j=0;j<cdim;++j) { 904 for(j=0;j<cdim;++j) {
905 book=vf->subclass_books[class_][cval & csub]; 905 book=vf->subclass_books[class_][cval & csub];
906 906
907 AV_DEBUG("book %d Cbits %d cval %d bits:%d \n", book, cbits, cval, get_bits_count(gb)); 907 AV_DEBUG("book %d Cbits %d cval %d bits:%d \n", book, cbits, cval, get_bits_count(gb));
908 908
909 cval=cval>>cbits; 909 cval=cval>>cbits;
910 if (book>0) { 910 if (book>0) {
911 floor1_Y[offset+j]=get_vlc2(gb, vc->codebooks[book].vlc.table, 911 floor1_Y[offset+j]=get_vlc2(gb, vc->codebooks[book].vlc.table,
912 V_NB_BITS, vc->codebooks[book].maxdepth); 912 V_NB_BITS, 3);
913 } else { 913 } else {
914 floor1_Y[offset+j]=0; 914 floor1_Y[offset+j]=0;
915 } 915 }
916 916
917 AV_DEBUG(" floor(%d) = %d \n", vf->x_list[offset+j], floor1_Y[offset+j]); 917 AV_DEBUG(" floor(%d) = %d \n", vf->x_list[offset+j], floor1_Y[offset+j]);
1093 for(partition_count=0;partition_count<ptns_to_read;) { // SPEC error 1093 for(partition_count=0;partition_count<ptns_to_read;) { // SPEC error
1094 if (!pass) { 1094 if (!pass) {
1095 for(j_times_ptns_to_read=0, j=0;j<ch_used;++j) { 1095 for(j_times_ptns_to_read=0, j=0;j<ch_used;++j) {
1096 if (!do_not_decode[j]) { 1096 if (!do_not_decode[j]) {
1097 uint_fast32_t temp=get_vlc2(gb, vc->codebooks[vr->classbook].vlc.table, 1097 uint_fast32_t temp=get_vlc2(gb, vc->codebooks[vr->classbook].vlc.table,
1098 V_NB_BITS, vc->codebooks[vr->classbook].maxdepth); 1098 V_NB_BITS, 3);
1099 1099
1100 AV_DEBUG("Classword: %d \n", temp); 1100 AV_DEBUG("Classword: %d \n", temp);
1101 1101
1102 for(i=0;i<c_p_c;++i) { 1102 for(i=0;i<c_p_c;++i) {
1103 uint_fast32_t temp2; 1103 uint_fast32_t temp2;
1125 uint_fast16_t step=vr->partition_size/vc->codebooks[vqbook].dimensions; 1125 uint_fast16_t step=vr->partition_size/vc->codebooks[vqbook].dimensions;
1126 1126
1127 voffs=voffset+j*vlen; 1127 voffs=voffset+j*vlen;
1128 for(k=0;k<step;++k) { 1128 for(k=0;k<step;++k) {
1129 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table, 1129 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table,
1130 V_NB_BITS, vc->codebooks[vr->classbook].maxdepth) * vc->codebooks[vqbook].dimensions; 1130 V_NB_BITS, 3) * vc->codebooks[vqbook].dimensions;
1131 for(l=0;l<vc->codebooks[vqbook].dimensions;++l) { 1131 for(l=0;l<vc->codebooks[vqbook].dimensions;++l) {
1132 vec[voffs+k+l*step]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH 1132 vec[voffs+k+l*step]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH
1133 } 1133 }
1134 } 1134 }
1135 } 1135 }
1136 else if (vr->type==1) { 1136 else if (vr->type==1) {
1137 voffs=voffset+j*vlen; 1137 voffs=voffset+j*vlen;
1138 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) { 1138 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) {
1139 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table, 1139 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table,
1140 V_NB_BITS, vc->codebooks[vr->classbook].maxdepth) * vc->codebooks[vqbook].dimensions; 1140 V_NB_BITS, 3) * vc->codebooks[vqbook].dimensions;
1141 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) { 1141 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) {
1142 vec[voffs]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH 1142 vec[voffs]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH
1143 1143
1144 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d \n", pass, voffs, vec[voffs], vc->codebooks[vqbook].codevectors[coffs+l], coffs); 1144 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d \n", pass, voffs, vec[voffs], vc->codebooks[vqbook].codevectors[coffs+l], coffs);
1145 } 1145 }
1148 else if (vr->type==2 && ch==2) { // most frequent case optimized 1148 else if (vr->type==2 && ch==2) { // most frequent case optimized
1149 voffs=voffset; 1149 voffs=voffset;
1150 1150
1151 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) { 1151 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) {
1152 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table, 1152 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table,
1153 V_NB_BITS, vc->codebooks[vr->classbook].maxdepth) * vc->codebooks[vqbook].dimensions; 1153 V_NB_BITS, 3) * vc->codebooks[vqbook].dimensions;
1154 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) { 1154 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) {
1155 vec[(voffs>>1)+((voffs&1) ? vlen : 0)]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH 1155 vec[(voffs>>1)+((voffs&1) ? vlen : 0)]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH
1156 1156
1157 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d+%d \n", pass, voffset/ch+(voffs%ch)*vlen, vec[voffset/ch+(voffs%ch)*vlen], vc->codebooks[vqbook].codevectors[coffs+l], coffs, l); 1157 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d+%d \n", pass, voffset/ch+(voffs%ch)*vlen, vec[voffset/ch+(voffs%ch)*vlen], vc->codebooks[vqbook].codevectors[coffs+l], coffs, l);
1158 } 1158 }
1162 else if (vr->type==2) { 1162 else if (vr->type==2) {
1163 voffs=voffset; 1163 voffs=voffset;
1164 1164
1165 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) { 1165 for(k=0;k<vr->partition_size/vc->codebooks[vqbook].dimensions;++k) {
1166 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table, 1166 coffs=get_vlc2(gb, vc->codebooks[vqbook].vlc.table,
1167 V_NB_BITS, vc->codebooks[vr->classbook].maxdepth) * vc->codebooks[vqbook].dimensions; 1167 V_NB_BITS, 3) * vc->codebooks[vqbook].dimensions;
1168 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) { 1168 for(l=0;l<vc->codebooks[vqbook].dimensions;++l, ++voffs) {
1169 vec[voffs/ch+(voffs%ch)*vlen]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH FIXME use if and counter instead of / and % 1169 vec[voffs/ch+(voffs%ch)*vlen]+=vc->codebooks[vqbook].codevectors[coffs+l]; // FPMATH FIXME use if and counter instead of / and %
1170 1170
1171 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d+%d \n", pass, voffset/ch+(voffs%ch)*vlen, vec[voffset/ch+(voffs%ch)*vlen], vc->codebooks[vqbook].codevectors[coffs+l], coffs, l); 1171 AV_DEBUG(" pass %d offs: %d curr: %f change: %f cv offs.: %d+%d \n", pass, voffset/ch+(voffs%ch)*vlen, vec[voffset/ch+(voffs%ch)*vlen], vc->codebooks[vqbook].codevectors[coffs+l], coffs, l);
1172 } 1172 }