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

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

?? feat_calc.cpp

?? Intel開發的IPP庫的應用實例
?? CPP
字號:
/*
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 1999-2006 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives Gaussian Mixture Sample for Windows*
//
//  By downloading and installing this sample, you hereby agree that the
//  accompanying Materials are being provided to you under the terms and
//  conditions of the End User License Agreement for the Intel(R) Integrated
//  Performance Primitives product previously accepted by you. Please refer
//  to the file ippEULA.rtf located in the root directory of your Intel(R) IPP
//  product installation for more information.
//
//
//
//     Feature Calculation Class
//
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ipps.h>
#include <ippsr.h>

#include "feat_calc.h"

Feat_Calc::Feat_Calc(int F, int L) {
   space_dim     = F;
   max_delay     = L;
   frame_number  = 0;
   space_dim4    = 0;
   raw_dim       = 0;
   delta_delay   = 0;
   rem           = 0;
   deltas        = 0;
   feat_type     = -1;
   ready         = -2;
   raw           = NULL;
   mean          = NULL;
   oldraw        = NULL;
   curraw        = NULL;
   pindx         = NULL;
   ready         = -2;
}

int Feat_Calc::Init_Feat(int N) {

   if (ready!=-2)               return -10;

   if (space_dim<=0)            return -1;
   frame_number = N;
   if (frame_number<=1)         return -1;
   rem=frame_number;
   if (space_dim<=0)            return -1;
   space_dim4=(space_dim+3)&(~3);
   if (max_delay<=0)            max_delay=IPP_MAX_32S;

   deltas      = 0;
   delta_delay = 0;
   feat_type   = 0;

   ready       = 0;
   return 0;
}

static FILE* create_feat_file(char *file, int frame_number, int len, int type, int period) {
   Feat_Header header;
   FILE *fptr=NULL;
   float* tmp_raw;
   int tmp_raw_dim;
   int i;

   if (!(fptr=fopen(file, "wb")))  return fptr;
   header.frames=frame_number;
   header.period=period;
   header.len=len;
   header.type=type;

   tmp_raw_dim=header.len>>2;

   if (fwrite((void*)(&header), sizeof(Feat_Header), 1, fptr)<1) {
      fclose(fptr); return fptr;
   }
   tmp_raw =(float*)calloc(sizeof(float),frame_number*tmp_raw_dim);
   if(!tmp_raw){
      fclose(fptr); return fptr;
   }

   for (i=0; i<(frame_number*tmp_raw_dim); i++) {
       tmp_raw[i]=-30.0f+((float)(rand())*60.0f/(float)RAND_MAX); // -30.0 ... 30.0
   }

   if (fwrite((void*)(tmp_raw), sizeof(float), frame_number*tmp_raw_dim, fptr)<1) {
      fclose(fptr); return fptr;
   }
   free(tmp_raw);

   fclose(fptr);
   fptr=fopen(file, "rb");
   return fptr;
}

int Feat_Calc::Init_Feat(char *file) {

   FILE  *fptr;
   bool cut_energy=false;
   int i;

   if (space_dim<=0)                                          return -1;
   if (!(fptr=fopen(file, "rb")))
        if (!(fptr=create_feat_file(file,517,52,70,100000))) return -3;
   if (fread(&header, sizeof (Feat_Header), 1, fptr)<1)       return -3;

   frame_number = header.frames;
   if (frame_number<=0)                                       return -1;
   rem=frame_number;
   if (space_dim<=0)                                          return -1;
   space_dim4=(space_dim+3)&(~3);
   if (max_delay<=0)          max_delay=IPP_MAX_32S;
   if (header.len&3!=0)                                       return -1;
   raw_dim=header.len>>2;

   if (!(pindx = ippsMalloc_32s(space_dim)))                  return -2;
   for (i=0; i<space_dim; i++) pindx[i]=i;
   if (space_dim%raw_dim==0) {    // use energy, process all phrase, do CMS and VN
      cut_energy=false;
      deltas=space_dim/raw_dim-1;
   } else if((space_dim%(raw_dim-1)==0)) {
      cut_energy=true;
      deltas=space_dim/(raw_dim-1)-1;
   } else {
                                                              return -1;
   }

   if (deltas==2) {
      delta_delay=(deltas+1)*WIN_SIZE;
   } else if (deltas==1) {
      delta_delay=(deltas+1)*WIN_SIZE;
   } else if (deltas==0) {
      delta_delay=0;
   } else {
                                                              return -1;
   }

   if (!(raw  = ippsMalloc_32f(frame_number*raw_dim)))        return -2;
   curraw = raw;
   for (i=0; i<frame_number; i++) {
      if ((int)fread(curraw,sizeof(float),raw_dim,fptr)<raw_dim) {
         fclose(fptr); return -3;
      }
      curraw+=raw_dim-cut_energy;
   }
   raw_dim-=cut_energy;
   fclose(fptr);

   if (!cut_energy) {
      oldraw=raw;
      raw=NULL;
      if (!(raw  = ippsMalloc_32f(frame_number*space_dim4)))  return -2;
      if (deltas==2) {
         ippsDeltaDelta_Win2_32f_D2(oldraw,raw_dim,raw,space_dim4,frame_number,0.1f,0.1f,
                                 IPP_DELTA_BEGIN|IPP_DELTA_END);
      } else if (deltas==1) {
         ippsDelta_Win2_32f_D2(oldraw,raw_dim,raw,space_dim4,frame_number,0.1f,
                                 IPP_DELTA_BEGIN|IPP_DELTA_END);
      } else {
         ippsCopyColumn_Indirect_32f_D2(oldraw,raw_dim,raw_dim,raw,pindx,raw_dim,
                                     space_dim4,frame_number);
      }
      ippsFree(oldraw);
      oldraw=NULL;

// cepstral mean subtraction and variance normalization for all phrase
      if (!(mean  = ippsMalloc_32f(2*space_dim4)))            return -2;
      float *var = mean+space_dim4;
      ippsMeanVarColumn_32f_D2(raw,frame_number,space_dim4,mean,var,space_dim);
      ippsRecSqrt_32f(var,space_dim,1.0e-8f);
      ippsNormalizeColumn_32f_D2(raw,space_dim4,frame_number,mean,var,space_dim);

      deltas=0;
      delta_delay=0;
      raw_dim=space_dim4;
   }

   curraw    = raw;
   feat_type = 1;

   ready     = 0;
   return 0;
}

int  Feat_Calc::Write_LogHeader(FILE *flog) {

   if (ready!=0)                return -10;

   header.len = space_dim*sizeof(float);
   if (flog)
      fwrite((void*)&header, sizeof(Feat_Header), 1, flog);

   return 0;

}

Feat_Calc::~Feat_Calc(void) {
   frame_number  = 0;
   max_delay     = 0;
   space_dim     = 0;
   space_dim4    = 0;
   raw_dim       = 0;
   delta_delay   = 0;
   rem           = 0;
   deltas        = 0;
   feat_type     = -1;
   if (raw)      ippsFree(raw);
   if (mean)     ippsFree(mean);
   if (oldraw)   ippsFree(oldraw);
   if (pindx)    ippsFree(pindx);
   raw           = NULL;
   mean          = NULL;
   oldraw        = NULL;
   curraw        = NULL;
   pindx         = NULL;
   ready         = -2;
}

int Feat_Calc::Get_Feature(float *dst, int len, bool* end) {

   if (len>max_delay)
      len=max_delay;

   int arglen=len,outlen=len;

   if ((rem<=0)||(len<=0)||(ready<0)) {
      outlen=0;
   }

   if (feat_type==0) {

      if (len>=rem) {
         arglen=outlen=rem;
         rem=0;
      } else {
         rem-=outlen;
      }
      ippsZero_32f(dst,arglen*space_dim4);

   } else if (feat_type==1) {

      int delta_mode;       // mode for delta calculation
      if (rem==frame_number) {
         if (len>=rem) {
            arglen=outlen=rem;
            rem=0;
            delta_mode=IPP_DELTA_BEGIN|IPP_DELTA_END;
         } else {
            outlen-=delta_delay;
            rem-=outlen;
            delta_mode=IPP_DELTA_BEGIN;
         }
      } else {
         if (len>=rem) {
            arglen=outlen=rem;
            arglen-=delta_delay;
            rem=0;
            delta_mode=IPP_DELTA_END;
         } else {
            arglen-=delta_delay;
            outlen-=delta_delay;
            rem-=outlen;
            delta_mode=0;
         }
      }

      if (deltas==2) {
         ippsDeltaDelta_Win2_32f_D2(curraw,raw_dim,dst,space_dim4,arglen,0.1f,0.1f,
                                 delta_mode);
      } else if (deltas==1) {
         ippsDelta_Win2_32f_D2(curraw,raw_dim,dst,space_dim4,arglen,0.1f,delta_mode);
      } else if (raw_dim==space_dim4) {
         ippsCopy_32f(curraw,dst,raw_dim*outlen);
      } else {
         ippsCopyColumn_Indirect_32f_D2(curraw,raw_dim,raw_dim,dst,pindx,raw_dim,
                                     space_dim4,outlen);
      }
      curraw+=raw_dim*arglen;

   } else {
      rem=0;
      outlen=0;
   }

   end[0]=(rem<=0);
   return outlen;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲在线成人精品| 开心九九激情九九欧美日韩精美视频电影| 亚洲一区二区在线观看视频| 国产成人午夜精品影院观看视频| 欧美日韩高清在线| 亚洲日本在线a| aaa欧美色吧激情视频| 欧美一区二区三区视频| 午夜精品久久久久久久| 欧美日韩精品一区二区三区蜜桃| 亚洲综合在线电影| 欧美无砖专区一中文字| 国产精品久久99| 色综合久久88色综合天天| 国产欧美一区二区在线| 成人国产一区二区三区精品| 中日韩免费视频中文字幕| 国产99一区视频免费| 成人免费在线观看入口| 色综合久久中文综合久久牛| 中文字幕一区二区三区不卡在线 | 欧美理论片在线| 国产一区二区毛片| 一级日本不卡的影视| 精品国内二区三区| 91精品久久久久久久99蜜桃| 国产精选一区二区三区| 天堂在线一区二区| 1024精品合集| 亚洲精品一区二区三区精华液| 色88888久久久久久影院野外| 久久超碰97中文字幕| 一个色综合网站| 国产精品成人免费精品自在线观看| 在线电影院国产精品| 在线亚洲欧美专区二区| www.激情成人| 国产成人免费视| 国产精品资源在线看| 国内不卡的二区三区中文字幕| 日韩精品电影一区亚洲| 亚洲第一主播视频| 亚洲成人你懂的| 日韩在线观看一区二区| 无码av中文一区二区三区桃花岛| 一区二区三区在线免费观看| 日韩一区在线看| 亚洲乱码中文字幕| 国产精品午夜电影| 亚洲色大成网站www久久九九| 中文字幕在线不卡一区二区三区| 亚洲国产高清在线观看视频| 国产欧美日韩一区二区三区在线观看| 精品免费日韩av| 欧美精品一区二区高清在线观看 | 中文字幕佐山爱一区二区免费| 亚洲视频免费在线| 首页欧美精品中文字幕| 九九热在线视频观看这里只有精品| 美女网站一区二区| 国产高清成人在线| 91麻豆自制传媒国产之光| 日韩视频在线观看一区二区| 欧美国产丝袜视频| 亚洲国产精品尤物yw在线观看| 日韩国产欧美一区二区三区| 美国毛片一区二区| 成人国产精品免费观看| 日韩一区二区三区四区| ...中文天堂在线一区| 日韩av中文字幕一区二区三区| 成人sese在线| 精品99久久久久久| 一区二区三区久久| 粉嫩久久99精品久久久久久夜| 在线一区二区三区| 欧美日韩精品福利| 日韩一区在线免费观看| 久草这里只有精品视频| 精品视频全国免费看| 国产精品高清亚洲| 国产精品18久久久久久久久| 欧美精品在线观看一区二区| 国产精品日产欧美久久久久| 国产成人aaa| 视频一区二区国产| 91在线视频官网| 国产精品美女视频| 国产91富婆露脸刺激对白| 精品免费国产二区三区| 蓝色福利精品导航| 精品免费视频.| 精品在线一区二区三区| 欧美大片一区二区三区| 欧美a级理论片| 日韩精品中文字幕在线不卡尤物| 日韩精品欧美精品| 精品国一区二区三区| 黑人巨大精品欧美一区| 久久精品视频网| 91小宝寻花一区二区三区| 亚洲色图另类专区| 欧美久久高跟鞋激| 国内外成人在线| 国产精品久久看| 日本高清不卡在线观看| 三级不卡在线观看| 久久伊人蜜桃av一区二区| 亚洲成人av福利| 精品国内二区三区| 色综合天天综合网国产成人综合天 | 成人黄色国产精品网站大全在线免费观看 | 美腿丝袜亚洲一区| 国产欧美精品一区| 欧美亚洲愉拍一区二区| 国产伦精品一区二区三区免费 | 亚洲免费观看高清完整版在线观看 | 久久av老司机精品网站导航| 亚洲美女屁股眼交3| 精品国产三级电影在线观看| 色88888久久久久久影院按摩| 久久99久久99精品免视看婷婷 | 爽爽淫人综合网网站| 1区2区3区欧美| 久久久精品一品道一区| 欧美精品aⅴ在线视频| 成人黄色在线看| 美女爽到高潮91| 中文字幕乱码日本亚洲一区二区| 欧美精品xxxxbbbb| 欧美唯美清纯偷拍| 一本大道av一区二区在线播放| 成人午夜伦理影院| www.欧美日韩| av不卡免费在线观看| caoporn国产一区二区| 久久精品国产99国产| 日韩精品欧美精品| 日韩经典中文字幕一区| 亚洲一区视频在线| 亚洲a一区二区| 婷婷丁香激情综合| 日日夜夜免费精品视频| 偷拍自拍另类欧美| 美女在线观看视频一区二区| 精品一区二区三区欧美| 久久成人麻豆午夜电影| 国产在线不卡一卡二卡三卡四卡| 韩国精品一区二区| 国产精品自拍一区| proumb性欧美在线观看| 91日韩一区二区三区| 日本韩国欧美一区| 91麻豆精品久久久久蜜臀| 欧美一区二区成人6969| 国产欧美一区二区三区网站 | 亚洲国产三级在线| 美女性感视频久久| 91丨九色丨尤物| 精品国产一区二区三区不卡 | 中文字幕一区二区三| 午夜激情久久久| 波多野结衣欧美| 欧美一区二区三区四区高清| 国产精品五月天| 日韩电影一二三区| 不卡一区在线观看| 精品国内二区三区| 亚洲一区在线播放| 成人动漫一区二区在线| 欧美男人的天堂一二区| 中文字幕欧美日韩一区| 青青草91视频| 欧美日韩不卡一区| 亚洲精品美腿丝袜| 99精品久久99久久久久| 精品国产一区二区三区av性色| 亚洲精品免费在线观看| 国产精品69久久久久水密桃| 欧美午夜视频网站| 亚洲欧美激情小说另类| 国产91精品免费| 欧美国产激情二区三区 | 国产一区二区0| 精品国产第一区二区三区观看体验| 亚洲一卡二卡三卡四卡五卡| 成人av在线资源网| 国产精品免费人成网站| 波多野结衣的一区二区三区| 国产精品毛片大码女人 | 午夜精品久久久久影视| 日本国产一区二区| 性欧美大战久久久久久久久| 91国产成人在线| 日日夜夜精品视频天天综合网| 欧美日韩电影在线| 久草这里只有精品视频| 欧美国产日韩一二三区| av一区二区三区四区| 欧美日韩小视频|