debugscalefac.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1.      {
  2. /*******************************************************************
  3. DEBUG INFORMATION 
  4. criticalbands (scalefactor bands)
  5. partition bands
  6. FFT bands
  7. MDCT bands 
  8. *******************************************************************/
  9. #include "tables.h"
  10.  int *scalefac_band_long; 
  11.  int *scalefac_band_short;
  12.  FLOAT fstart,fstop;
  13.  FLOAT mstart,mstop;
  14.  
  15.  scalefac_band_long  = &sfBandIndex[info->sampling_frequency + (info->version * 3)].l[0];
  16.  scalefac_band_short = &sfBandIndex[info->sampling_frequency + (info->version * 3)].s[0];
  17.  printf("nn long block partiton  bands n");
  18.  for (b = 0; b<CBANDS; b++) {
  19.    /* look for FFT partition band bu_l[b]*/
  20.    for (i=0;i<HBLKSIZE;i++, fstart=i) {
  21.      if (partition_l[i]==b) break;
  22.    }
  23.    fstop=0;
  24.    for (i=HBLKSIZE-1;i>=0;i--, fstart=i) {
  25.      if (partition_l[i]==b) break;
  26.    }
  27.    if(fstart>0) fstart -= .5;
  28.    fstop += .5;
  29.    printf("pb=%2i  FFT=(%4.1f,%4.1f)  numlines=%i  norm=%f  n",
  30.          b,fstart,fstop,numlines_l[b],norm_l[b]);
  31.  }
  32.  
  33.  printf("nn long block critial bands n");
  34.  printf("crit band,part_band, part_band range  FFT range MDCT range n");
  35.  for ( b = 0;b < SBPSY_l; b++ ) {
  36.    /* look for FFT partition band bu_l[b]*/
  37.    for (i=0;i<HBLKSIZE;i++, fstart=i) {
  38.      if (partition_l[i]==bu_l[b]) break;
  39.    }
  40.    for (i=HBLKSIZE-1;i>=0;i--, fstop=i) {
  41.      if (partition_l[i]==bo_l[b]) break;
  42.    }
  43.    /* numlines_l[pb] = number of FFT lines in partition band pb */
  44.    /* w1 = 1, then all FFT lines belong to this partition band */
  45.    fstart += ( (1-w1_l[b])*numlines_l[ bu_l[b] ] ) ;
  46.    /* w2 = 1, then all FFT lines belong to this partition band */
  47.    fstop -= ( (1-w2_l[b])*numlines_l[ bo_l[b] ] ) ;
  48.    if (fstart>0) fstart -= .5;  /* contribution extends to center of freq band */
  49.    fstop += .5;
  50.    mstart = scalefac_band_long[b];
  51.    mstop  = scalefac_band_long[b+1]-1;
  52.    if (mstart>0) mstart -= .5;
  53.    mstop += .5;
  54.    printf("cb=%2i(%2i)(%2i,%2i)(%3.2f,%3.2f)  FFT:(%4.1f,%4.1f)(%5.0f,%5.0f)Hz   MDCT:(%5.1f,%5.1f)(%5.0f,%5.0f)Hz n",
  55.            b,npart_l_orig,bu_l[b],bo_l[b],w1_l[b],w2_l[b],
  56.   fstart,fstop,sfreq*fstart/BLKSIZE,sfreq*fstop/BLKSIZE,
  57.   mstart,mstop,mstart*.5*sfreq/576,mstop*.5*sfreq/576
  58.            );
  59.  }
  60.  printf("nn short block partition bands n");
  61.  for (b = 0; b<CBANDS; b++) {
  62.    /* look for FFT partition band bu_s[b]*/
  63.    for (i=0;i<HBLKSIZE_s;i++,fstart=i) {
  64.      if (partition_s[i]==b) break;
  65.    }
  66.    for (i=HBLKSIZE_s-1; i>=0; i--,fstop=i) {
  67.      if (partition_s[i]==b) break;
  68.    }
  69.    if(fstart>0) fstart -= .5;
  70.    fstop += .5;
  71.    printf("pb=%2i  FFT=(%4.1f,%4.1f)  numlines=%i norm=%f n",
  72.   b,fstart,fstop,numlines_s[b],norm_s[b]);
  73.  }
  74.  
  75.  printf("nn short block critial bands n");
  76.  printf("crit band,part_band, part_band range  FFT range MDCT range n");
  77.  for ( b = 0;b < SBPSY_s; b++ ) {
  78.    /* look for FFT partition band bu_s[b]*/
  79.    for (i=0;i<HBLKSIZE_s;i++)  
  80.      if (partition_s[i]==bu_s[b]) {fstart=i;break;}
  81.    for (i=HBLKSIZE_s-1;i>=0;i--) 
  82.      if (partition_s[i]==bo_s[b]) {fstop=i; break;}
  83.    /* numlines_s[pb] = number of FFT lines in partition band pb */
  84.    /* w1 = 1, then all FFT lines belong to this partition band */
  85.    fstart += ( (1-w1_s[b])*numlines_s[ bu_s[b] ] ) ;
  86.    /* w2 = 1, then all FFT lines belong to this partition band */
  87.    fstop -= ( (1-w2_s[b])*numlines_s[ bo_s[b] ] ) ;
  88.    if (fstart>0) fstart -= .5;  /* contribution extends to center of freq band */
  89.    fstop += .5;
  90.    mstart = scalefac_band_short[b];
  91.    mstop  = scalefac_band_short[b+1]-1;
  92.    if (mstart>0) mstart -= .5;
  93.    mstop += .5;
  94.    printf("cb=%2i(%2i)(%2i,%2i)(%3.2f,%3.2f)  FFT:(%4.1f,%4.1f)(%5.0f,%5.0f)Hz   MDCT:(%5.1f,%5.1f)(%5.0f,%5.0f)Hz n",
  95.            b,npart_s_orig,bu_s[b],bo_s[b],w1_s[b],w2_s[b],
  96.   fstart,fstop,sfreq*fstart/BLKSIZE_s,sfreq*fstop/BLKSIZE_s,
  97.   mstart,mstop,mstart*.5*sfreq/192,mstop*.5*sfreq/192
  98.            );
  99.  }
  100. /*******************************************************************
  101. END DEBUG INFORMATION 
  102. *******************************************************************/
  103.      }