亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scal_dec_frame.c

?? C寫的MPEG4音頻源代碼(G.723/G.729)
?? C
?? 第 1 頁 / 共 5 頁
字號:
/**********************************************************************MPEG-4 Audio VMBit stream moduleThis software module was originally developed byBodo Teichmann (FhG)and edited byBernhard Grill (University of Erlangen)Takashi koike (Sony Corporation)in the course of development of the MPEG-2 NBC/MPEG-4 Audio standardISO/IEC 13818-7, 14496-1,2 and 3. This software module is animplementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio toolsas specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC givesusers of the MPEG-2 NBC/MPEG-4 Audio standards free license to thissoftware module or modifications thereof for use in hardware orsoftware products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audiostandards. Those intending to use this software module in hardware orsoftware products are advised that this use may infringe existingpatents. The original developer of this software module and his/hercompany, the subsequent editors and their companies, and ISO/IEC haveno liability for use of this software module or modifications thereofin an implementation. Copyright is not released for non MPEG-2NBC/MPEG-4 Audio conforming products. The original developer retainsfull right to use the code for his/her own purpose, assign or donatethe code to a third party and to inhibit third party from using thecode for non MPEG-2 NBC/MPEG-4 Audio conforming products. Thiscopyright notice must be included in all copies or derivative works.Copyright (c) 1997.*/#include <memory.h>#include <math.h>#include <stdio.h>#include <string.h>#include <assert.h>#include "block.h"               /* handler, defines, enums */#include "buffersHandle.h"       /* handler, defines, enums */#include "concealmentHandle.h"   /* handler, defines, enums */#include "mod_bufHandle.h"       /* handler, defines, enums */#include "monopredHandle.h"      /* handler, defines, enums */#include "reorderspecHandle.h"   /* handler, defines, enums */#include "resilienceHandle.h"    /* handler, defines, enums */#include "tf_mainHandle.h"       /* handler, defines, enums */#include "all.h"                 /* structs */#include "bitstreamStruct.h"     /* structs */#include "monopredStruct.h"      /* structs */#include "nok_ltp_common.h"      /* structs */#include "nok_prediction.h"      /* structs */#include "obj_descr.h"           /* structs */#include "tf_mainStruct.h"       /* structs */#include "tns.h"                 /* structs */#include "dec_lpc.h"#include "mod_buf.h"#include "port.h"#include "flex_mux.h"#include "lpc_common.h"#include "dec_tf.h"#include "bitstream.h"#include "common_m4a.h"/* ---  AAC --- */#include "aac.h"#include "huffdec2.h"#include "nok_lt_prediction.h"#include "scal_dec.h"#include "plotmtv.h"#include "util.h"#include "flex_mux.h"#include "ntt_conf.h"#include "ntt_scale_conf.h"#include "plotmtv.h"#include "interface.h"#include "buffers.h"#include "mp4_tf.h"/* ***************************************************************************//* scalable decoding : bitstream has 3 subframes (called granules) per frame */static void vcopy( double src[], double dest[], int inc_src, int inc_dest, int vlen ){  int i;  for( i=0; i<vlen-1; i++ ) {    *dest = *src;    dest += inc_dest;    src  += inc_src;  }  if (vlen) /* just for bounds-checkers sake */    *dest = *src;}/* compute scalar product of two vectors */static double scalprod( double src1[], double src2[],                         int inc_src1, int inc_src2, int vlen){  int i;  double sum=0.0;  for (i=0;i<vlen; i++) {    sum += (*src1)*(*src2);    src1 += inc_src1;    src2 += inc_src2;  }  return (sum);}static void vmult( double src1[], double src2[], double dest[],                    int inc_src1, int inc_src2, int inc_dest, int vlen ){  int i;  for( i=0; i<vlen-1; i++ ) {    *dest = *src1 * *src2;    dest += inc_dest;    src1 += inc_src1;    src2 += inc_src2;  }  if (i<vlen)    *dest = *src1 * *src2;}static void vadd( double src1[], double src2[], double dest[],                   int inc_src1, int inc_src2, int inc_dest, int vlen ){  int i;  for( i=0; i<vlen; i++ ) {    *dest = *src1 + *src2;    dest += inc_dest;    src1 += inc_src1;    src2 += inc_src2;  }}static void vsub( double src1[], double src2[], double dest[],                   int inc_src1, int inc_src2, int inc_dest, int vlen ){  int i;  for( i=0; i<vlen; i++ ) {    *dest = *src1 - *src2;    dest += inc_dest;    src1 += inc_src1;    src2 += inc_src2;  }}static void dec_lowpass(double spectrum[], int lopLong,                        int lopShort, int maxLine, int iblen,                         int windowSequence, int nr_of_sbk){  int bl, block_len, lop, i;  float slope;  double zero = 0.0;  if (windowSequence != EIGHT_SHORT_SEQUENCE) {    lop = lopLong;  }  else {    lop = lopShort;  }      block_len = iblen /nr_of_sbk;  if (lop > maxLine) {    lop = maxLine;  }  slope = (1.0F /(float)lop);  for (bl=0;bl<nr_of_sbk;bl++){    vcopy( &zero, &spectrum[bl*block_len+maxLine], 0, 1, block_len - maxLine);    for (i=1; i<lop; i++) {      spectrum[bl*block_len+maxLine-i] *= (i*slope);    }  }}/* get_tns_vm does exactly the same as get_tns in huffdec2.c. Just the   VM bitstream handling functions replace the AAC-type functions */static void doInverseMsMatrix(                       Info       *p_sb_info,                       double *p_l_spec,                       double *p_r_spec,                       int msMask[8][60]                       ){  int sb, win;  int sfbw;   double  tmp_buffer[1024];  for( win=0; win<p_sb_info->nsbk; win++ ) {    int sboffs   = win*p_sb_info->bins_per_sbk[win];    for( sb=0; sb<p_sb_info->sfb_per_sbk[win]; sb++ ) {      if (p_sb_info->islong==0){        sfbw = p_sb_info->sfb_width_short[sb];      }else {        if (sb==0)          sfbw = p_sb_info->bk_sfb_top[sb];        else           sfbw = p_sb_info->bk_sfb_top[sb]-p_sb_info->bk_sfb_top[sb-1];              }      if(msMask[win][sb] != 0  ) {        vadd( &p_l_spec[sboffs], &p_r_spec[sboffs], &tmp_buffer[sboffs],        1, 1, 1, sfbw );  /* -> L */        vsub( &p_l_spec[sboffs], &p_r_spec[sboffs], &p_r_spec[sboffs], 1, 1, 1, sfbw );  /* -> R */        vcopy(&tmp_buffer[sboffs], &p_l_spec[sboffs], 1, 1, sfbw );      }      sboffs += sfbw;    }  }}void doMsMatrix(Info *p_sb_info, double *p_l_spec, double *p_r_spec, int msMask[8][60]){  int sb, win, i;  int sfbw;  double sum[1024];  double diff[1024];  for( win=0; win<p_sb_info->nsbk; win++ ) {    int sboffs   = win*p_sb_info->bins_per_sbk[win];        for( sb=0; sb<p_sb_info->sfb_per_sbk[win]; sb++ ) {      if (p_sb_info->islong==0){        sfbw = p_sb_info->sfb_width_short[sb];      }else {        if (sb==0)          sfbw = p_sb_info->bk_sfb_top[sb];        else           sfbw = p_sb_info->bk_sfb_top[sb]-p_sb_info->bk_sfb_top[sb-1];              }      if(msMask[win][sb] != 0  ) {	vadd(&p_l_spec[sboffs], &p_r_spec[sboffs], &sum[sboffs], 1, 1, 1, sfbw);	for(i = 0; i < sfbw; i++)	  p_l_spec[sboffs + i] = 0.5 * sum[sboffs + i];                vsub(&p_l_spec[sboffs], &p_r_spec[sboffs], &diff[sboffs], 1, 1, 1, sfbw);	for(i = 0; i < sfbw; i++)	  p_r_spec[sboffs + i] = 0.5 * diff[sboffs + i];      }            sboffs += sfbw;    }  }  }static void  multCoreSpecMsFac(                        Info       *p_sb_info,                        int msMask[8][60],                        double *core_spec,                        double *out_spec                        ){  int sb, win;  int sfbw;  double ms_fac=2;  for( win=0; win<p_sb_info->nsbk; win++ ) {    int sboffs   = win*p_sb_info->bins_per_sbk[win];    for( sb=0; sb<p_sb_info->sfb_per_sbk[win]; sb++ ) {      if (p_sb_info->islong==0){        sfbw = p_sb_info->sfb_width_short[sb];      }else {        if (sb==0)          sfbw = p_sb_info->bk_sfb_top[sb];        else           sfbw = p_sb_info->bk_sfb_top[sb]-p_sb_info->bk_sfb_top[sb-1];              }      if( msMask[win][sb] == 0  ) {        vmult( &core_spec[sboffs], &ms_fac,&out_spec[sboffs] ,1, 0, 1, sfbw );  /* if no ms core = core * fac */      }else{        vcopy( &core_spec[sboffs],&out_spec[sboffs] ,1, 1, sfbw );  /* if ms core = core */      }      sboffs += sfbw;    }  }}static int get_tns_vm( BsBitStream *fixed_stream, Info *info, TNS_frame_info *tns_frame_info,int* decoded_bits ){  int                       f, t, top, res, res2, compress;  int                       short_flag, s;  short                     *sp, tmp, s_mask, n_mask;  TNSfilt                   *tns_filt;  TNSinfo                   *tns_info;  static short              sgn_mask[] = {     0x2, 0x4, 0x8     };  static short              neg_mask[] = {     (short) 0xfffc, (short)0xfff8, (short)0xfff0     };  unsigned long ultmp, numBits;  short_flag = (!info->islong);  tns_frame_info->n_subblocks = info->nsbk;  for (s=0; s<tns_frame_info->n_subblocks; s++) {    tns_info = &tns_frame_info->info[s];    numBits = (short_flag ? 1 : 2);    BsGetBit( fixed_stream, &ultmp,numBits   );    *decoded_bits += numBits;     if (!(tns_info->n_filt = ultmp) )      continue;         BsGetBit( fixed_stream, &ultmp, 1 );    *decoded_bits += 1;     tns_info -> coef_res = res = ultmp + 3;    top = info->sfb_per_sbk[s];    tns_filt = &tns_info->filt[ 0 ];    for (f=tns_info->n_filt; f>0; f--)  {      tns_filt->stop_band = top;      numBits = ( short_flag ? 4 : 6);      BsGetBit( fixed_stream, &ultmp,numBits );      *decoded_bits += numBits;       top = tns_filt->start_band = top - ultmp;      numBits = ( short_flag ? 3 : 5);      BsGetBit( fixed_stream, &ultmp, numBits );      *decoded_bits += numBits;       tns_filt->order = ultmp;      if (tns_filt->order)  {        BsGetBit( fixed_stream, &ultmp, 1 );        *decoded_bits += 1;         tns_filt->direction = ultmp;        BsGetBit( fixed_stream, &ultmp, 1 );        *decoded_bits += 1;         compress = ultmp;        res2 = res - compress;        s_mask = sgn_mask[ res2 - 2 ];        n_mask = neg_mask[ res2 - 2 ];        sp = tns_filt -> coef;        for (t=tns_filt->order; t>0; t--)  {          BsGetBit( fixed_stream, &ultmp, res2 );          *decoded_bits += res2;           tmp = ultmp;          *sp++ = (tmp & s_mask) ? (tmp | n_mask) : tmp;        }      }      tns_filt++;    }  }   /* subblock loop */  return 1;}static BsBitBuffer *dynBitBuf;static int         gran;static BsBitStream *dyn_stream_read;int testDebug=0;void aacScaleableDecodeInit( void ){   dynBitBuf  = BsAllocBuffer( 64000 );     /* just some large number. For AAC: required ca. 6000 */  gran = 0;  dyn_stream_read = BsOpenBufferRead( dynBitBuf );}  static void FSSwitch(              double  p_core[],              double  p_rest[],               double  p_out[], 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品写真福利| 亚洲成a人片在线不卡一二三区| 日一区二区三区| 欧美日韩免费电影| 日韩电影一区二区三区四区| 精品国精品国产| 懂色一区二区三区免费观看| 亚洲三级在线看| 欧美精品高清视频| 国产乱理伦片在线观看夜一区| 国产精品无码永久免费888| 91麻豆自制传媒国产之光| 亚洲成人动漫在线免费观看| 日韩视频在线永久播放| 粉嫩一区二区三区在线看| 日韩毛片一二三区| 欧美一区2区视频在线观看| 国产一区二区三区久久悠悠色av| 成人欧美一区二区三区白人| 欧美乱妇15p| 国产91精品一区二区麻豆亚洲| 亚洲欧美日本在线| 欧美成人女星排行榜| 99麻豆久久久国产精品免费优播| 亚洲成a人片综合在线| 久久久亚洲高清| 在线观看中文字幕不卡| 国产中文字幕精品| 亚洲一区自拍偷拍| 国产日产欧美一区二区三区| 欧美性色aⅴ视频一区日韩精品| 美女网站色91| 夜夜嗨av一区二区三区网页| 精品成人在线观看| 欧美在线播放高清精品| 国产99久久精品| 日韩成人免费看| 亚洲欧美国产高清| 久久蜜桃av一区二区天堂 | 色综合天天综合给合国产| 五月激情综合婷婷| 亚洲色图丝袜美腿| 久久综合九色综合97婷婷女人| 欧美性大战久久久久久久| 国产河南妇女毛片精品久久久| 91网站在线播放| 精品一区二区三区蜜桃| 亚洲午夜电影在线观看| 国产精品久久久久aaaa| 久久一留热品黄| 91精品国产综合久久久久久漫画| 色一情一乱一乱一91av| 丰满放荡岳乱妇91ww| 麻豆91小视频| 日本最新不卡在线| 亚洲一区二区欧美激情| 亚洲欧洲成人精品av97| 久久精品一区二区三区不卡牛牛| 3d成人h动漫网站入口| 色av一区二区| 日本久久一区二区| 99久久久无码国产精品| 成人黄色在线视频| 丰满亚洲少妇av| 国产91露脸合集magnet| 国产mv日韩mv欧美| 国产精品一品二品| 丁香婷婷综合色啪| 成人免费观看av| 成人97人人超碰人人99| 不卡影院免费观看| 成a人片亚洲日本久久| 波多野结衣中文字幕一区| 成人一级黄色片| 高清shemale亚洲人妖| 国产精品小仙女| 国产精品一级二级三级| 国产一区二区剧情av在线| 国产在线视频一区二区三区| 国产一区二区中文字幕| 国产精品一区二区三区99| 国产精品99久久久久久有的能看| 国内精品久久久久影院一蜜桃| 狠狠久久亚洲欧美| 国产精品一二一区| 99久久婷婷国产综合精品电影| 色综合视频在线观看| 在线精品观看国产| 91麻豆精品国产91久久久久久久久 | 亚洲欧美一区二区三区久本道91 | 欧美韩日一区二区三区四区| 国产精品久久三| 成人av资源站| 色婷婷av一区| 欧美日本不卡视频| 久久蜜桃av一区精品变态类天堂 | 成人深夜福利app| 91美女在线观看| 欧美日韩国产高清一区二区三区 | 精品国产免费人成电影在线观看四季| 日韩免费电影一区| 国产日韩欧美亚洲| 一区二区三区四区精品在线视频| 日韩精品久久久久久| 黄色日韩三级电影| 99视频一区二区三区| 欧美久久久久久久久中文字幕| 日韩欧美国产一区二区三区 | 精品视频1区2区3区| 日韩亚洲欧美成人一区| 欧美激情一区二区三区全黄| 亚洲国产婷婷综合在线精品| 黄一区二区三区| 色综合天天综合网天天狠天天 | 成人黄色国产精品网站大全在线免费观看| 91在线视频网址| 日韩三级中文字幕| 亚洲三级理论片| 玖玖九九国产精品| 色综合夜色一区| 26uuuu精品一区二区| 亚洲一区二区av在线| 国产成人高清视频| 91精品国模一区二区三区| 亚洲图片欧美激情| 国产一区二区三区精品欧美日韩一区二区三区 | 老司机一区二区| 色综合久久久久综合| 精品sm捆绑视频| 午夜精品影院在线观看| 成人黄色综合网站| 精品区一区二区| 亚洲不卡在线观看| 91麻豆6部合集magnet| 久久精品欧美一区二区三区不卡| 性做久久久久久免费观看| 成人性生交大片免费看中文网站| 日韩欧美一区在线观看| 亚洲自拍偷拍图区| av一本久道久久综合久久鬼色| 精品国产三级a在线观看| 五月天国产精品| 欧美三级韩国三级日本一级| 国产精品毛片久久久久久| 黄页视频在线91| 日韩欧美国产三级电影视频| 香蕉久久夜色精品国产使用方法| 色系网站成人免费| 国产精品网站在线播放| 国产成人高清视频| 337p粉嫩大胆色噜噜噜噜亚洲| 天堂av在线一区| 欧美色倩网站大全免费| 亚洲影院久久精品| 色狠狠色狠狠综合| 亚洲精品美腿丝袜| 色综合一区二区| 亚洲狼人国产精品| 色婷婷国产精品综合在线观看| 亚洲欧美在线观看| 99久久精品国产一区| 中文字幕日韩欧美一区二区三区| 国产福利91精品一区二区三区| 日韩高清电影一区| 日韩欧美资源站| 另类小说一区二区三区| 精品国产亚洲在线| 国产伦精品一区二区三区免费| 久久午夜色播影院免费高清| 国产精品123区| 国产精品国产三级国产普通话99| 99在线视频精品| 一二三区精品福利视频| 欧美高清性hdvideosex| 视频一区二区三区入口| 欧美videos中文字幕| 国产经典欧美精品| 国产精品久久久久婷婷 | 91免费版在线看| 亚洲国产精品久久一线不卡| 欧美日韩高清影院| 麻豆精品视频在线| 国产欧美日韩精品a在线观看| 99精品视频在线观看| 一区二区三区 在线观看视频| 欧美精品第一页| 国产激情一区二区三区桃花岛亚洲| 国产精品美女久久久久久| 91老司机福利 在线| 日韩和的一区二区| 久久综合色一综合色88| 91在线观看高清| 日本成人超碰在线观看| 欧美激情在线一区二区| 欧美在线综合视频| 久久精品99国产精品| 中文字幕五月欧美| 日韩色视频在线观看| fc2成人免费人成在线观看播放| 亚洲国产一二三|