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

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

?? vbr.cpp

?? KphoneSI (kpsi) is a SIP (Session Initiation Protocol) user agent for Linux, with which you can in
?? CPP
字號:
/* Copyright (C) 2002 Jean-Marc Valin    File: vbr.c   VBR-related routines   Redistribution and use in source and binary forms, with or without   modification, are permitted provided that the following conditions   are met:      - Redistributions of source code must retain the above copyright   notice, this list of conditions and the following disclaimer.      - Redistributions in binary form must reproduce the above copyright   notice, this list of conditions and the following disclaimer in the   documentation and/or other materials provided with the distribution.      - Neither the name of the Xiph.org Foundation nor the names of its   contributors may be used to endorse or promote products derived from   this software without specific prior written permission.      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/#include "vbr.h"#include <math.h>#define sqr(x) ((x)*(x))#define MIN_ENERGY 6000#define NOISE_POW .3 float vbr_nb_thresh[9][11]={   {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}, /*   CNG   */   { 3.5,  2.5,  2.0,  1.2,  0.5,  0.0, -0.5, -0.7, -0.8, -0.9, -1.0}, /*  2 kbps */   {10.0,  6.5,  5.2,  4.5,  3.9,  3.5,  3.0,  2.5,  2.3,  1.8,  1.0}, /*  6 kbps */   {11.0,  8.8,  7.5,  6.5,  5.0,  3.9,  3.9,  3.9,  3.5,  3.0,  1.0}, /*  8 kbps */   {11.0, 11.0,  9.9,  9.0,  8.0,  7.0,  6.5,  6.0,  5.0,  4.0,  2.0}, /* 11 kbps */   {11.0, 11.0, 11.0, 11.0,  9.5,  9.0,  8.0,  7.0,  6.5,  5.0,  3.0}, /* 15 kbps */   {11.0, 11.0, 11.0, 11.0, 11.0, 11.0,  9.5,  8.5,  8.0,  6.5,  4.0}, /* 18 kbps */   {11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0,  9.8,  7.5,  5.5}, /* 24 kbps */    { 8.0,  5.0,  3.7,  3.0,  2.5,  2.0,  1.8,  1.5,  1.0,  0.0,  0.0}  /*  4 kbps */};float vbr_hb_thresh[5][11]={   {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}, /* silence */   {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}, /*  2 kbps */   {11.0, 11.0,  9.5,  8.5,  7.5,  6.0,  5.0,  3.9,  3.0,  2.0,  1.0}, /*  6 kbps */   {11.0, 11.0, 11.0, 11.0, 11.0,  9.5,  8.7,  7.8,  7.0,  6.5,  4.0}, /* 10 kbps */   {11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0,  9.8,  7.5,  5.5}  /* 18 kbps */ };float vbr_uhb_thresh[2][11]={   {-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}, /* silence */   { 3.9,  2.5,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0, -1.0}  /*  2 kbps */};void vbr_init(VBRState *vbr){   int i;   vbr->average_energy=0;   vbr->last_energy=1;   vbr->accum_sum=0;   vbr->energy_alpha=.1;   vbr->soft_pitch=0;   vbr->last_pitch_coef=0;   vbr->last_quality=0;   vbr->noise_accum = .05*pow((float)MIN_ENERGY, (float)NOISE_POW);   vbr->noise_accum_count=.05;   vbr->noise_level=vbr->noise_accum/vbr->noise_accum_count;   vbr->consec_noise=0;   for (i=0;i<VBR_MEMORY_SIZE;i++)      vbr->last_log_energy[i] = log((float)MIN_ENERGY);}/*  This function should analyse the signal and decide how critical the  coding error will be perceptually. The following factors should be  taken into account:  -Attacks (positive energy derivative) should be coded with more bits  -Stationary voiced segments should receive more bits  -Segments with (very) low absolute energy should receive less bits (maybe  only shaped noise?)  -DTX for near-zero energy?  -Stationary fricative segments should have less bits  -Temporal masking: when energy slope is decreasing, decrease the bit-rate  -Decrease bit-rate for males (low pitch)?  -(wideband only) less bits in the high-band when signal is very   non-stationary (harder to notice high-frequency noise)???*/float vbr_analysis(VBRState *vbr, float *sig, int len, int pitch, float pitch_coef){   int i;   float ener=0, ener1=0, ener2=0;   float qual=7;   int va;   float log_energy;   float non_st=0;   float voicing;   float pow_ener;   for (i=0;i<len>>1;i++)      ener1 += sig[i]*sig[i];   for (i=len>>1;i<len;i++)      ener2 += sig[i]*sig[i];   ener=ener1+ener2;   log_energy = log(ener+MIN_ENERGY);   for (i=0;i<VBR_MEMORY_SIZE;i++)      non_st += sqr(log_energy-vbr->last_log_energy[i]);   non_st =  non_st/(30*VBR_MEMORY_SIZE);   if (non_st>1)      non_st=1;   voicing = 3*(pitch_coef-.4)*fabs(pitch_coef-.4);   vbr->average_energy = (1-vbr->energy_alpha)*vbr->average_energy + vbr->energy_alpha*ener;   vbr->noise_level=vbr->noise_accum/vbr->noise_accum_count;   pow_ener = pow(ener,(float)NOISE_POW);   if (vbr->noise_accum_count<.06 && ener>MIN_ENERGY)      vbr->noise_accum = .05*pow_ener;   if ((voicing<.3 && non_st < .2 && pow_ener < 1.2*vbr->noise_level)       || (voicing<.3 && non_st < .05 && pow_ener < 1.5*vbr->noise_level)       || (voicing<.4 && non_st < .05 && pow_ener < 1.2*vbr->noise_level)       || (voicing<0 && non_st < .05))   {      float tmp;      va = 0;      vbr->consec_noise++;      if (pow_ener > 3*vbr->noise_level)         tmp = 3*vbr->noise_level;      else          tmp = pow_ener;      if (vbr->consec_noise>=4)      {         vbr->noise_accum = .95*vbr->noise_accum + .05*tmp;         vbr->noise_accum_count = .95*vbr->noise_accum_count + .05;      }   } else {      va = 1;      vbr->consec_noise=0;   }   if (pow_ener < vbr->noise_level && ener>MIN_ENERGY)   {      vbr->noise_accum = .95*vbr->noise_accum + .05*pow_ener;      vbr->noise_accum_count = .95*vbr->noise_accum_count + .05;         }   /* Checking for very low absolute energy */   if (ener < 30000)   {      qual -= .7;      if (ener < 10000)         qual-=.7;      if (ener < 3000)         qual-=.7;   } else {      float short_diff, long_diff;      short_diff = log((ener+1)/(1+vbr->last_energy));      long_diff = log((ener+1)/(1+vbr->average_energy));      /*fprintf (stderr, "%f %f\n", short_diff, long_diff);*/      if (long_diff<-5)         long_diff=-5;      if (long_diff>2)         long_diff=2;      if (long_diff>0)         qual += .6*long_diff;      if (long_diff<0)         qual += .5*long_diff;      if (short_diff>0)      {         if (short_diff>5)            short_diff=5;         qual += .5*short_diff;      }      /* Checking for energy increases */      if (ener2 > 1.6*ener1)         qual += .5;   }   vbr->last_energy = ener;   vbr->soft_pitch = .6*vbr->soft_pitch + .4*pitch_coef;   qual += 2.2*((pitch_coef-.4) + (vbr->soft_pitch-.4));   if (qual < vbr->last_quality)      qual = .5*qual + .5*vbr->last_quality;   if (qual<4)      qual=4;   if (qual>10)      qual=10;      /*   if (vbr->consec_noise>=2)      qual-=1.3;   if (vbr->consec_noise>=5)      qual-=1.3;   if (vbr->consec_noise>=12)      qual-=1.3;   */   if (vbr->consec_noise>=3)      qual=4;   if (vbr->consec_noise)      qual -= 1.0 * (log(3.0 + vbr->consec_noise)-log((float)3));   if (qual<0)      qual=0;      if (ener<60000)   {      if (vbr->consec_noise>2)         qual-=0.5*(log(3.0 + vbr->consec_noise)-log((float)3));      if (ener<10000&&vbr->consec_noise>2)         qual-=0.5*(log(3.0 + vbr->consec_noise)-log((float)3));      if (qual<0)         qual=0;      qual += .3*log(ener/60000.0);   }   if (qual<-1)      qual=-1;   /*printf ("%f %f %f %f %d\n", qual, voicing, non_st, pow_ener/(.01+vbr->noise_level), va);*/   vbr->last_pitch_coef = pitch_coef;   vbr->last_quality = qual;   for (i=VBR_MEMORY_SIZE-1;i>0;i--)      vbr->last_log_energy[i] = vbr->last_log_energy[i-1];   vbr->last_log_energy[0] = log_energy;   /*printf ("VBR: %f %f %f %d %f\n", (float)(log_energy-log(vbr->average_energy+MIN_ENERGY)), non_st, voicing, va, vbr->noise_level);*/   return qual;}void vbr_destroy(VBRState *vbr){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频1区2区3区| 国产99久久精品| 久久久国产精品麻豆| 不卡视频在线看| 亚洲国产aⅴ成人精品无吗| 日韩一级片在线播放| 国产在线一区二区综合免费视频| 国产精品久久久久一区二区三区| 欧美午夜电影网| 国产美女精品在线| 一区二区高清在线| 久久精品综合网| 欧美日韩视频在线一区二区| 久久66热偷产精品| 一区二区在线观看av| 精品国产电影一区二区| 色94色欧美sute亚洲线路一久| 91首页免费视频| 蜜桃久久av一区| 国产亚洲短视频| 88在线观看91蜜桃国自产| 成人美女视频在线看| 蜜桃一区二区三区在线观看| 亚洲人吸女人奶水| 久久综合九色综合97_久久久| 色猫猫国产区一区二在线视频| 极品少妇xxxx偷拍精品少妇| 亚洲一区二区三区免费视频| 国产日韩欧美高清| 日韩视频免费观看高清完整版 | 夜夜嗨av一区二区三区四季av| 欧美一区二区三区四区高清| 91麻豆福利精品推荐| 国产自产2019最新不卡| 日韩有码一区二区三区| 国产精品国产三级国产aⅴ无密码| 精品国产一区二区精华| 在线不卡中文字幕播放| 91视频一区二区三区| 成人网男人的天堂| 国产成人av在线影院| 蜜桃av一区二区| 丝袜亚洲另类丝袜在线| 亚洲一区二区三区不卡国产欧美| 中文字幕亚洲电影| 国产精品久久久久永久免费观看| 久久精品视频一区| 日韩免费电影网站| 欧美日韩国产一级| 中文字幕亚洲不卡| 久久精品视频免费观看| 久久久久久久久蜜桃| 欧美成人精品福利| 8x8x8国产精品| 3atv一区二区三区| 4438成人网| 欧美一区二区三区在线| 777午夜精品免费视频| 欧美乱妇20p| 7777精品久久久大香线蕉| 欧美日韩精品是欧美日韩精品| 91福利资源站| 一道本成人在线| 色就色 综合激情| 欧美午夜宅男影院| 欧美日韩国产精品成人| 欧美日韩一级二级| 欧美日精品一区视频| 欧美三级在线播放| 欧美一区二区精美| 久久一区二区三区四区| 欧美国产一区在线| 亚洲欧美综合网| 亚洲精品国产a| 亚洲aaa精品| 久久超碰97中文字幕| 国产精品一区久久久久| 国产精品系列在线播放| 成人性生交大片免费看中文| 成人app在线观看| 91片黄在线观看| 日本伦理一区二区| 91精品国产综合久久久久久久| 日韩女优制服丝袜电影| 国产亚洲欧洲一区高清在线观看| 国产精品理论在线观看| 亚洲精品v日韩精品| 丝袜美腿亚洲一区| 国产毛片精品视频| 一本高清dvd不卡在线观看| 欧美视频完全免费看| 色呦呦国产精品| 精品视频999| 国产精品美女久久久久久久| 最好看的中文字幕久久| 亚洲成人777| 国产在线一区观看| 色综合久久综合网| 欧美一区二区三区性视频| 一区二区国产盗摄色噜噜| 蜜乳av一区二区| 成人一二三区视频| 日韩欧美国产综合| 亚洲在线观看免费| 成人福利电影精品一区二区在线观看 | 国产精品 欧美精品| 欧美三级视频在线| 最近日韩中文字幕| 高清视频一区二区| 日韩美女一区二区三区| 亚洲一区二区美女| 波多野结衣精品在线| 精品999在线播放| 天堂va蜜桃一区二区三区漫画版| 99久久国产综合精品女不卡| 久久丝袜美腿综合| 久久精品二区亚洲w码| 777色狠狠一区二区三区| 一区二区三区四区在线免费观看| 高清在线成人网| 久久先锋影音av| 精品在线一区二区三区| 欧美日韩免费一区二区三区视频| 亚洲精品国产第一综合99久久 | 欧美日韩免费观看一区三区| 亚洲三级电影网站| 99re这里都是精品| 亚洲视频一区在线| aaa亚洲精品| 一区二区中文视频| 99久久综合99久久综合网站| 精品免费一区二区三区| 欧美日韩一区精品| 色综合久久中文综合久久97| 国产精品久久久久aaaa| 成人综合在线观看| 国产精品欧美久久久久一区二区| 日韩一二在线观看| 天堂久久一区二区三区| 欧美日韩亚洲丝袜制服| 亚洲一区二区三区在线看| 日本乱人伦aⅴ精品| 亚洲一区二区四区蜜桃| 欧美日韩亚洲综合在线 | 精品亚洲免费视频| 久久久久一区二区三区四区| 国产精品资源在线观看| 亚洲国产精品成人综合| 成人高清在线视频| 亚洲精品国久久99热| 欧美日韩一区二区在线观看| 免费视频一区二区| 久久久久国产精品麻豆ai换脸 | 国内成人自拍视频| 欧美国产一区视频在线观看| 91麻豆精品秘密| 亚洲成人资源网| 欧美成人aa大片| 国产成人激情av| 亚洲久本草在线中文字幕| 欧美日韩在线三级| 久久97超碰色| 亚洲欧洲一区二区三区| 欧美日韩电影在线播放| 看电视剧不卡顿的网站| 中文字幕精品综合| 日本一区二区三区高清不卡| 91丨九色丨蝌蚪丨老版| 视频在线观看一区| 国产欧美va欧美不卡在线| 在线免费观看日韩欧美| 开心九九激情九九欧美日韩精美视频电影 | 一区二区激情视频| 国产精品五月天| 91丨porny丨最新| 日本aⅴ精品一区二区三区| 国产清纯在线一区二区www| 欧洲国内综合视频| 国产一区91精品张津瑜| 亚洲精品伦理在线| 26uuu成人网一区二区三区| 色噜噜狠狠成人中文综合| 美女国产一区二区三区| 国产精品免费视频网站| 宅男噜噜噜66一区二区66| 国产成+人+日韩+欧美+亚洲| 亚洲r级在线视频| 国产网站一区二区| 欧美人xxxx| eeuss鲁片一区二区三区在线观看| 午夜国产精品一区| 国产精品国产三级国产专播品爱网 | 欧美经典一区二区三区| 欧美人牲a欧美精品| 成人性生交大片免费看在线播放| 日韩国产欧美在线观看| 亚洲三级久久久| 久久久久国产精品麻豆| 欧美一区欧美二区| 色偷偷久久人人79超碰人人澡|