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

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

?? mp_stft.c

?? LastWave
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*..........................................................................*//*                                                                          *//*      L a s t W a v e    P a c k a g e 'mp' 2.1                           *//*                                                                          *//*      Copyright (C) 2002 Remi Gribonval.                                  *//*      email  : remi.gribonval@inria.fr                                    *//*      email  : lastwave@cmap.polytechnique.fr                             *//*                                                                          *//*..........................................................................*//*                                                                          *//*      This program is a free software, you can redistribute it and/or     *//*      modify it under the terms of the GNU General Public License as      *//*      published by the Free Software Foundation; either version 2 of the  *//*      License, or (at your option) any later version                      *//*                                                                          *//*      This program is distributed in the hope that it will be useful,     *//*      but WITHOUT ANY WARRANTY; without even the implied warranty of      *//*      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       *//*      GNU General Public License for more details.                        *//*                                                                          *//*      You should have received a copy of the GNU General Public License   *//*      along with this program (in a file named COPYRIGHT);                *//*      if not, write to the Free Software Foundation, Inc.,                *//*      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA             *//*                                                                          *//*..........................................................................*/#include "lastwave.h"#include "mp_book.h"extern SUBDICT NewSubDict();extern SUBDICT PrivateAddSubDict(DICT dict,SUBDICT subDict);/************************************************************************//* *    This part is specific to STFT sub-dictionaries * TODO : help on these functions *//************************************************************************//* * Setting/Getting a STFT sub-dictionary */// Get a sub-dictionary that contains a stft with given {type,windowShape,windowSize}// If none exists, return NULL.// TODO : add a listv parameter that will contain Harmo/HighRes additional parametersSUBDICT GetStftSubDict(DICT dict,unsigned char channel,char type,char windowShape,unsigned long windowSize,LISTV options) {  unsigned short i;  SUBDICT subDict;  STFT stft;  // Basic checking  if(options!=NULL && type!=HarmoStft && type!=HighResStft)     Errorf("GetStftSubDict : non NULL options for '%s' &stft",StftType2Name(type));  /* Does such a subDict exist ? */  for(i = 0; i < dict->size; i++) {    subDict = dict->subDicts[i];    if(subDict->channel!=channel) continue;    if(GetTypeValue(subDict->dataContainer)!=stftType) continue;    stft = (STFT)(subDict->dataContainer);    if(stft->type != type) continue;    if(stft->windowShape != windowShape) continue;    if(stft->windowSize != windowSize) continue;    // TODO : treat case where there are additional options    if(options != NULL) {      switch(type) {      case HarmoStft :      case HighResStft :	Errorf("GetStftSubDict : options not treated for '%s' sub-dictionaries yet",StftType2Name(type));      }    }    return(subDict);  }  return(NULL);}// Add a stft sub-dictionary (does NOT check whether it already exists)SUBDICT PrivateAddStftSubDict(DICT dict,unsigned char channel,char flagMain,			      char type,char windowShape,unsigned long windowSize,LISTV harmoOptions) {  STFT stft;  SUBDICT subDict;  unsigned short i;  unsigned char n;  // Some default values for the moment  char borderType = BorderPad0;  char depthHighRes = 0;  unsigned short timeRedund=STFT_DEFAULT_TIMEREDUND ,freqRedund = STFT_DEFAULT_FREQREDUND;  char flagHarmonic = NO;  LWFLOAT freq0Min = 0,freq0Max = 0;  LWFLOAT freq0IdMin = 0,freq0IdMax = 0;  unsigned short dim = STFTHARMO_DEFAULT_DIMHARMO;  unsigned char iFMO = STFTHARMO_DEFAULT_IFMO;  // Some basic checking  // Basic checking   if(channel>dict->nChannels)  Errorf("PrivateAddStftSubDict : channel is too big");  if(harmoOptions==NULL&&type==HarmoStft) Errorf("PrivateAddStftSubDict : NULL harmoOptions for 'harmo' &stft");  if(harmoOptions!=NULL) {    if(type!=HarmoStft) Errorf("PrivateAddStftSubDict : non NULL harmoOptions for '%s' &stft",StftType2Name(type));    if(GetTypeValue(harmoOptions)!=listvType || harmoOptions->length<2)      Errorf("PrivateAddStftSubDict : bad harmoOptions",StftType2Name(type));  }  // Do we need some auxiliary sub-dicts first ?   // It is better to put them first in the list if they do not exist already !  switch(type) {  case ComplexStft :     if(channel==dict->nChannels)        Errorf("PrivateAddStftSubDict : multichannel ComplexStft do not exist!");    break;      case PhaseStft :    if(channel==dict->nChannels)        Errorf("PrivateAddStftSubDict : multichannel PhaseStft do not exist!");    if(GetStftSubDict(dict,channel,ComplexStft,windowShape,windowSize,NULL)==NULL)      PrivateAddStftSubDict(dict,channel,NO,ComplexStft,windowShape,windowSize,NULL);     break;  case RealStft :     // Case of a monochannel RealStft    if(channel<dict->nChannels) {      if(GetStftSubDict(dict,channel,ComplexStft,windowShape,windowSize,NULL)==NULL)	PrivateAddStftSubDict(dict,channel,NO,ComplexStft,windowShape,windowSize,NULL);     } else {      // Case of multichannel RealStft (the sum of monochannel ones)      for(n = 0; n < dict->nChannels; n++) {	if(GetStftSubDict(dict,n,RealStft,windowShape,windowSize,NULL)==NULL)	  PrivateAddStftSubDict(dict,n,NO,RealStft,windowShape,windowSize,NULL);       }    }    break;  case HarmoStft :    if(dict->nChannels>1 && channel!=dict->nChannels)       Errorf("PrivateAddStftSubDict (Weired) : monochannel HarmoStft do not exist in multichannel dictionaries!");    if(GetStftSubDict(dict,channel,RealStft,windowShape,windowSize,NULL)==NULL)       // When we add a harmonic sub-dictionary as a main dictionary, a plain Gabor      // sub-dictionary with the same window should also be included as a main sub-dictionary      PrivateAddStftSubDict(dict,channel,flagMain,RealStft,windowShape,windowSize,NULL);     break;  case HighResStft :    Errorf("PrivateAddStftSubDict : highres not implemented (depthHighRes not parameter...");    if(channel<dict->nChannels) {      if(GetStftSubDict(dict,channel,RealStft,windowShape,windowSize/2,NULL)==NULL)	PrivateAddStftSubDict(dict,channel,NO,RealStft,windowShape,windowSize/2,NULL);       if(GetStftSubDict(dict,channel,RealStft,windowShape,windowSize,NULL)==NULL)	PrivateAddStftSubDict(dict,channel,NO,RealStft,windowShape,windowSize,NULL);       if(GetStftSubDict(dict,channel,PhaseStft,windowShape,windowSize/2,NULL)==NULL)	PrivateAddStftSubDict(dict,channel,NO,PhaseStft,windowShape,windowSize/2,NULL);       if(GetStftSubDict(dict,channel,PhaseStft,windowShape,windowSize,NULL)==NULL)	PrivateAddStftSubDict(dict,channel,NO,PhaseStft,windowShape,windowSize,NULL);     }    // TODO : decide what should be done about multichannel HighRes ?    break;  default :     Errorf("Stft of type '%s' cannot be added to a &dict",StftType2Name(type));  }  // Now it is time to add the stft we asked for  stft = NewStft();  CopyFieldsTFContent(dict,stft);  switch(type) {  case ComplexStft :  case RealStft:  case PhaseStft:    SizeStft(stft,windowShape,windowSize,timeRedund,freqRedund,borderType,type,0,0,0,0);    break;  case HarmoStft:    // First we should parse the harmonic options TODO: parse dim and iFMO too if given!    if(harmoOptions->length!=2) Errorf("PrivateAddStftSubDict : bad harmo options");    freq0Min = GetListvNthFloat(harmoOptions,0);    freq0Max = GetListvNthFloat(harmoOptions,1);    freq0IdMin = Freq2FreqId(stft,freq0Min);    freq0IdMax = Freq2FreqId(stft,freq0Max);    SizeStft(stft,windowShape,windowSize,timeRedund,freqRedund,borderType,type,freq0IdMin,freq0IdMax,iFMO,dim);    // There are cases where, due to the orthogonality condition between partials of harmonic atoms, the     // 'harmo' stft is empty. Then we don't add it!    // TODO : clean that ?    if(stft->real==NULL) {#ifdef DEBUG_HARMO      Warningf("AddStftSubDict : deleting empty 'harmo' stft");#endif // DEBUG_HARMO      stft = DeleteStft(stft);      return(NULL);    }    break;  case HighResStft:    SizeStft(stft,windowShape,windowSize,timeRedund,freqRedund,borderType,type,0,0,0,0);    break;  }  // Now we can create a new sub-dictionary with 'stft' as data content  subDict = NewSubDict();  subDict->methods = &StftMethods;  subDict->flagMain = flagMain;  subDict->channel = channel;  subDict->dataContainer = (VALUE)stft;  // In the next update of the dictionary, the newly added STFT sub-dictionary  // will have to be updated, so we need to to reset [updateTimeIdMin updateTimeIdMax]  dict->updateTimeIdMin = 0;  dict->updateTimeIdMax = dict->signalSize-1;  return(PrivateAddSubDict(dict,subDict));}void UpdateStftSubDict(SUBDICT subDict){  STFT stft = (STFT)(subDict->dataContainer);  DICT dict = subDict->dict;  SUBDICT subDictAux;  STFT stftAux = NULL,stftAux1 = NULL,stftAux2 = NULL,stftAux3 = NULL;  unsigned char n;  short scaleFactorHighRes = 2;  // Some checking  if(GetTypeValue(stft)!=stftType)    Errorf("UpdateStftSubDict (Weired) : data is not of type '%s'!",stftType);    // If already up to date, do nothing  if(subDict->flagUpToDate) return;    // If we have something to do, it depends on the type of the stft  switch(stft->type) {  case ComplexStft ://    Printf("[C]");    UpdateStftComplex(stft,GetChannel(dict,subDict->channel),dict->updateTimeIdMin,dict->updateTimeIdMax);//    XXTerminalCursorGoBackward(3);    break;  case PhaseStft:    // Update the auxiliary sub-dictionaries first    if((subDictAux = GetStftSubDict(dict,subDict->channel,ComplexStft,stft->windowShape,stft->windowSize,NULL))==NULL)      Errorf("UpdateStftSubDict (Weired) : missing auxiliary sub-dictionary ComplexStft for PhaseStft");     UpdateSubDict(subDictAux);    stftAux = (STFT)subDictAux->dataContainer;    // Update the asked sub-dictionary now//    Printf("[R]");    UpdateStftRealOrPhase(stft,stftAux,dict->updateTimeIdMin,dict->updateTimeIdMax);//     XXTerminalCursorGoBackward(3);    break;  case RealStft:    // Case of monochannel RealStft    if(subDict->channel<dict->nChannels) {      // Update the auxiliary sub-dictionaries first      if((subDictAux = GetStftSubDict(dict,subDict->channel,ComplexStft,stft->windowShape,stft->windowSize,NULL))==NULL)	Errorf("UpdateStftSubDict (Weired) : missing auxiliary sub-dictionary ComplexStft for RealStft");       UpdateSubDict(subDictAux);      stftAux = (STFT)subDictAux->dataContainer;      // Update the asked sub-dictionary now//      Printf("[R]");      UpdateStftRealOrPhase(stft,stftAux,dict->updateTimeIdMin,dict->updateTimeIdMax);//       XXTerminalCursorGoBackward(3);    } else {      // Case of multichannel RealStft      ZeroStft(stft,dict->updateTimeIdMin,dict->updateTimeIdMax);      for(n = 0; n < dict->nChannels; n++) {	// Update the auxiliary sub-dictionaries first	if((subDictAux = GetStftSubDict(dict,n,RealStft,stft->windowShape,stft->windowSize,NULL))==NULL)	  Errorf("UpdateStftSubDict (Weired) : missing auxiliary sub-dictionary RealStft[%d] for Multichannel RealStft",n); 	UpdateSubDict(subDictAux);	stftAux = (STFT)subDictAux->dataContainer;	// Update the asked sub-dictionary now//	Printf("[MR]");	AddStft(stft,stftAux,dict->updateTimeIdMin,dict->updateTimeIdMax);//	 XXTerminalCursorGoBackward(3);      }    }    break;  case HarmoStft :    if(dict->nChannels>1 && subDict->channel!=dict->nChannels)       Errorf("UpdateStftSubDict (Weired) : monochannel HarmoStft should not exist in multichannel dictionaries!");    // Update the auxiliary sub-dictionaries first    if((subDictAux = GetStftSubDict(dict,subDict->channel,RealStft,stft->windowShape,stft->windowSize,NULL))==NULL)      Errorf("UpdateStftSubDict (Weired) : missing auxiliary sub-dictionary RealStft for HarmoStft"); 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色8888| 91麻豆免费在线观看| 欧美日韩中字一区| 久久机这里只有精品| 26uuu精品一区二区在线观看| 国产一区二区不卡在线| 国产精品久久免费看| 欧美日韩dvd在线观看| 精品一区二区久久久| 亚洲素人一区二区| 日韩欧美精品在线视频| 91麻豆国产福利在线观看| 视频一区中文字幕| 亚洲男女毛片无遮挡| 精品欧美久久久| 欧美伦理电影网| 97久久超碰国产精品| 蜜臀a∨国产成人精品| 中文字幕av不卡| 久久午夜免费电影| 日韩一区二区三区四区五区六区| 成人黄色大片在线观看| 精品一区二区免费| 精品写真视频在线观看| 日本成人超碰在线观看| 一区二区三区高清| 亚洲精品v日韩精品| 一区二区中文视频| 中文字幕亚洲区| 中文字幕av一区二区三区免费看| 日韩免费在线观看| 日韩免费在线观看| 久久免费精品国产久精品久久久久 | 欧美日韩一区成人| 欧美日韩一级视频| 欧美大片在线观看| 国产日韩欧美一区二区三区乱码| 久久久久亚洲蜜桃| 中文字幕va一区二区三区| 国产精品网站在线播放| 亚洲品质自拍视频| 午夜影院久久久| 狠狠狠色丁香婷婷综合久久五月| 国产成人免费视频网站高清观看视频 | 成人在线视频首页| 欧美色网站导航| 欧美精品一区二区久久久| 国产婷婷色一区二区三区| 一区二区高清在线| 男人的j进女人的j一区| 国产精品一区专区| 欧美视频自拍偷拍| 国产精品欧美经典| 三级久久三级久久久| 波多野结衣视频一区| 制服丝袜日韩国产| 亚洲国产综合色| 99精品久久久久久| 久久久777精品电影网影网 | 国产欧美日韩精品a在线观看| 亚洲一区二区影院| 99久久综合色| 国产欧美精品一区二区三区四区 | 亚洲精品一二三| 国产成人午夜高潮毛片| 精品欧美乱码久久久久久1区2区| 亚洲欧美日韩国产中文在线| 国内久久精品视频| 欧美一区二区三区色| 午夜精品福利一区二区三区av| 99精品视频在线观看免费| 国产日本亚洲高清| 国产成人在线影院 | 日本丶国产丶欧美色综合| 亚洲色图清纯唯美| 99国产欧美另类久久久精品| 综合激情成人伊人| 99久久99久久精品免费观看 | 亚洲欧美综合在线精品| 色呦呦国产精品| 亚洲综合另类小说| 欧美一级日韩不卡播放免费| 久久99久久精品| 国产精品无人区| 欧美日韩一区二区在线观看 | 日本一区二区免费在线观看视频 | 午夜视频久久久久久| 精品久久久久久久久久久院品网| 国内外成人在线| 夜夜爽夜夜爽精品视频| 欧美精品在欧美一区二区少妇| 日韩高清一区二区| 亚洲视频一区二区免费在线观看| 欧美性大战久久| 成人精品在线视频观看| 亚洲成人综合在线| 国产午夜精品在线观看| 日韩午夜三级在线| 欧美日高清视频| 一本一道波多野结衣一区二区| 免费成人在线播放| 亚洲一区二区三区爽爽爽爽爽| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国模娜娜一区二区三区| 亚洲成人av中文| 国产精品日产欧美久久久久| 久久久综合视频| 亚洲精品在线观看网站| 欧美日韩国产小视频在线观看| 91香蕉视频在线| jiyouzz国产精品久久| 99久久99久久精品国产片果冻| 国产一区二区三区久久久| 日产欧产美韩系列久久99| 美女视频一区在线观看| 国内精品国产成人国产三级粉色| 韩国女主播成人在线| 黄页网站大全一区二区| 国产91在线看| 色天使色偷偷av一区二区| 色婷婷国产精品| 日韩一区二区免费视频| 久久久天堂av| 中文字幕亚洲在| 日韩av在线播放中文字幕| 激情文学综合网| 欧洲视频一区二区| 欧美一区二区三区免费| 国产精品乱码久久久久久| 亚洲最新视频在线观看| 精品一区二区三区在线播放视频| 国产成人av电影| 在线电影欧美成精品| 国产精品的网站| 毛片av一区二区| 99精品国产91久久久久久 | 欧美精品久久久久久久多人混战| 精品国产在天天线2019| 亚洲美女精品一区| 国产精品 欧美精品| 7777精品伊人久久久大香线蕉完整版 | 成人黄色a**站在线观看| 日韩一卡二卡三卡国产欧美| 亚洲区小说区图片区qvod| 国产麻豆精品在线| 精品va天堂亚洲国产| 天天色天天操综合| 欧美精品乱人伦久久久久久| 亚洲色图20p| www.av亚洲| 亚洲视频 欧洲视频| 99国内精品久久| 国产精品传媒入口麻豆| 国产 欧美在线| 国产精品三级av在线播放| 99久久婷婷国产| 亚洲国产精品一区二区久久| 99国产精品99久久久久久| 国产精品色在线| 色哟哟精品一区| 亚洲国产毛片aaaaa无费看| 一本到不卡精品视频在线观看| 亚洲女同一区二区| 欧美日韩国产首页| 精品无人码麻豆乱码1区2区| 精品久久久久久久久久久院品网 | 国产综合色视频| 国产精品久久看| 欧美欧美午夜aⅴ在线观看| 欧美aa在线视频| 自拍偷拍国产亚洲| 日韩一级二级三级| 成人app网站| 蜜桃av噜噜一区| 亚洲欧美日韩成人高清在线一区| 日韩一级片在线观看| 国产91丝袜在线播放九色| 亚洲一区二区三区中文字幕 | 日本视频在线一区| 中文字幕一区二区三区不卡在线| 欧美精品久久久久久久久老牛影院| 国产福利一区二区三区| 久久国产精品免费| 奇米色一区二区三区四区| 国产精品理伦片| 久久久久成人黄色影片| 日韩一卡二卡三卡国产欧美| 色婷婷av一区二区三区软件| 国产99久久久久| 精品一区二区综合| 亚洲成av人片观看| 一区二区在线观看免费| 国产精品拍天天在线| 久久综合一区二区| 久久伊人中文字幕| 精品国产麻豆免费人成网站| 91精品国产欧美一区二区| 欧美色综合网站| 欧美成人一区二区三区片免费 | 欧美日韩成人在线|