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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? plc.h

?? Asterisk-1.4.4最新內(nèi)核源代碼
?? H
字號(hào):
/*! \file * \brief SpanDSP - a series of DSP components for telephony * * plc.h * * \author Steve Underwood <steveu@coppice.org> * * Copyright (C) 2004 Steve Underwood * * All rights reserved. * * This program is 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; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * This version may be optionally licenced under the GNU LGPL licence. * * A license has been granted to Digium (via disclaimer) for the use of * this code. */#if !defined(_PLC_H_)#define _PLC_H_#ifdef SOLARIS#include <sys/int_types.h>#else#if defined(__OpenBSD__) || defined( __FreeBSD__)#include <inttypes.h>#else#include <stdint.h>#endif#endif/*! \page plc_page Packet loss concealment\section plc_page_sec_1 What does it do?The packet loss concealment module provides a suitable synthetic fill-in signal,to minimise the audible effect of lost packets in VoIP applications. It is nottied to any particular codec, and could be used with almost any codec which does notspecify its own procedure for packet loss concealment.Where a codec specific concealment procedure exists, the algorithm is usually builtaround knowledge of the characteristics of the particular codec. It will, therefore,generally give better results for that particular codec than this generic concealer will.\section plc_page_sec_2 How does it work?While good packets are being received, the plc_rx() routine keeps a record of the trailingsection of the known speech signal. If a packet is missed, plc_fillin() is called to producea synthetic replacement for the real speech signal. The average mean difference function(AMDF) is applied to the last known good signal, to determine its effective pitch.Based on this, the last pitch period of signal is saved. Essentially, this cycle of speechwill be repeated over and over until the real speech resumes. However, several refinementsare needed to obtain smooth pleasant sounding results.- The two ends of the stored cycle of speech will not always fit together smoothly. This can  cause roughness, or even clicks, at the joins between cycles. To soften this, the  1/4 pitch period of real speech preceeding the cycle to be repeated is blended with the last  1/4 pitch period of the cycle to be repeated, using an overlap-add (OLA) technique (i.e.  in total, the last 5/4 pitch periods of real speech are used).- The start of the synthetic speech will not always fit together smoothly with the tail of  real speech passed on before the erasure was identified. Ideally, we would like to modify  the last 1/4 pitch period of the real speech, to blend it into the synthetic speech. However,  it is too late for that. We could have delayed the real speech a little, but that would  require more buffer manipulation, and hurt the efficiency of the no-lost-packets case  (which we hope is the dominant case). Instead we use a degenerate form of OLA to modify  the start of the synthetic data. The last 1/4 pitch period of real speech is time reversed,  and OLA is used to blend it with the first 1/4 pitch period of synthetic speech. The result  seems quite acceptable.- As we progress into the erasure, the chances of the synthetic signal being anything like  correct steadily fall. Therefore, the volume of the synthesized signal is made to decay  linearly, such that after 50ms of missing audio it is reduced to silence.- When real speech resumes, an extra 1/4 pitch period of sythetic speech is blended with the  start of the real speech. If the erasure is small, this smoothes the transition. If the erasure  is long, and the synthetic signal has faded to zero, the blending softens the start up of the  real signal, avoiding a kind of "click" or "pop" effect that might occur with a sudden onset.\section plc_page_sec_3 How do I use it?Before audio is processed, call plc_init() to create an instance of the packet lossconcealer. For each received audio packet that is acceptable (i.e. not including those beingdropped for being too late) call plc_rx() to record the content of the packet. Note this maymodify the packet a little after a period of packet loss, to blend real synthetic data smoothly.When a real packet is not available in time, call plc_fillin() to create a sythetic substitute.That's it!*//*! Minimum allowed pitch (66 Hz) */#define PLC_PITCH_MIN           120/*! Maximum allowed pitch (200 Hz) */#define PLC_PITCH_MAX           40/*! Maximum pitch OLA window */#define PLC_PITCH_OVERLAP_MAX   (PLC_PITCH_MIN >> 2)/*! The length over which the AMDF function looks for similarity (20 ms) */#define CORRELATION_SPAN        160/*! History buffer length. The buffer much also be at leat 1.25 times    PLC_PITCH_MIN, but that is much smaller than the buffer needs to be for    the pitch assessment. */#define PLC_HISTORY_LEN         (CORRELATION_SPAN + PLC_PITCH_MIN)typedef struct{    /*! Consecutive erased samples */    int missing_samples;    /*! Current offset into pitch period */    int pitch_offset;    /*! Pitch estimate */    int pitch;    /*! Buffer for a cycle of speech */    float pitchbuf[PLC_PITCH_MIN];    /*! History buffer */    int16_t history[PLC_HISTORY_LEN];    /*! Current pointer into the history buffer */    int buf_ptr;} plc_state_t;#ifdef __cplusplusextern "C" {#endif/*! Process a block of received audio samples.    \brief Process a block of received audio samples.    \param s The packet loss concealer context.    \param amp The audio sample buffer.    \param len The number of samples in the buffer.    \return The number of samples in the buffer. */int plc_rx(plc_state_t *s, int16_t amp[], int len);/*! Fill-in a block of missing audio samples.    \brief Fill-in a block of missing audio samples.    \param s The packet loss concealer context.    \param amp The audio sample buffer.    \param len The number of samples to be synthesised.    \return The number of samples synthesized. */int plc_fillin(plc_state_t *s, int16_t amp[], int len);/*! Process a block of received V.29 modem audio samples.    \brief Process a block of received V.29 modem audio samples.    \param s The packet loss concealer context.    \return A pointer to the he packet loss concealer context. */plc_state_t *plc_init(plc_state_t *s);#ifdef __cplusplus}#endif#endif/*- End of file ------------------------------------------------------------*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区久久久| 欧美日韩一区二区三区在线| 日韩欧美国产综合在线一区二区三区| 亚洲国产一区二区在线播放| 欧美偷拍一区二区| 日韩激情中文字幕| 精品欧美一区二区在线观看 | 中文字幕在线一区免费| 成人激情开心网| 一区二区三区在线免费观看| 欧美日韩一卡二卡| 久久99精品久久久| 国产精品久久久久久久久免费樱桃 | 欧美午夜电影网| 久久久久久久综合| 亚洲美女屁股眼交3| 91官网在线观看| 免费观看成人av| 国产嫩草影院久久久久| 91丝袜国产在线播放| 亚洲bt欧美bt精品777| 日韩女同互慰一区二区| 国产激情一区二区三区四区| 亚洲久本草在线中文字幕| 6080午夜不卡| 成人免费视频一区| 香蕉久久夜色精品国产使用方法| 日韩一区二区三| 91在线视频播放| 视频一区二区不卡| 国产精品久久久久7777按摩| 7777精品伊人久久久大香线蕉的 | 欧美色电影在线| 国产精品一二二区| 欧美精品成人一区二区三区四区| 国产精品久久久一本精品| 自拍偷在线精品自拍偷无码专区 | 欧美一区二区三区免费在线看 | 国产91丝袜在线播放0| 亚洲第一av色| 中文字幕精品综合| 91麻豆精品国产自产在线观看一区| 国产电影精品久久禁18| 日韩精品免费专区| 亚洲日本丝袜连裤袜办公室| 久久亚洲精品国产精品紫薇 | 91精品国产麻豆| 波多野结衣中文字幕一区二区三区| 丝袜亚洲精品中文字幕一区| 成人免费一区二区三区视频| 精品成人免费观看| 91麻豆精品91久久久久久清纯| www.亚洲色图| 国产高清视频一区| 久色婷婷小香蕉久久| 亚洲国产精品视频| 亚洲视频一区在线观看| 国产日韩成人精品| 欧美第一区第二区| 5月丁香婷婷综合| 在线观看视频一区二区| 99v久久综合狠狠综合久久| 国产麻豆精品久久一二三| 男女激情视频一区| 人人爽香蕉精品| 日韩中文字幕91| 天天操天天干天天综合网| 亚洲精选视频免费看| 亚洲色图视频网| 国产精品国产三级国产aⅴ中文| 调教+趴+乳夹+国产+精品| 亚洲六月丁香色婷婷综合久久| 欧美国产精品中文字幕| 成人h精品动漫一区二区三区| 亚洲激情图片小说视频| 日韩精品欧美成人高清一区二区| 亚洲综合激情网| 亚洲一区二区中文在线| 亚洲人精品一区| 日韩伦理av电影| 自拍av一区二区三区| 人妖欧美一区二区| wwwwxxxxx欧美| 韩国在线一区二区| 国产精品丝袜91| 国产精品情趣视频| 国产精品理伦片| 欧美aa在线视频| 久久婷婷国产综合精品青草| 精品国产乱码久久久久久蜜臀| 精品国产免费一区二区三区香蕉| 精品国产一区二区三区久久久蜜月 | 欧美日免费三级在线| 欧美日韩一区二区三区在线| 欧美群妇大交群中文字幕| 日韩一级在线观看| 精品久久久久久无| 国产欧美日韩三级| 国产精品美女一区二区三区| 亚洲同性同志一二三专区| 亚洲一区二区视频在线| 日韩和欧美的一区| 国模少妇一区二区三区| 波多野结衣91| 欧美日产在线观看| 精品成人一区二区三区四区| 国产精品福利在线播放| 亚洲影院在线观看| 九一九一国产精品| bt欧美亚洲午夜电影天堂| 欧美日韩国产首页| 久久久久久久久久美女| 亚洲精品高清在线| 另类中文字幕网| 99国产精品一区| 91麻豆精品国产91久久久久久久久 | 日韩一级大片在线| 国产精品私房写真福利视频| 亚洲韩国一区二区三区| 国产专区欧美精品| 欧洲另类一二三四区| 欧美tickling网站挠脚心| 亚洲欧洲av色图| 久久99精品国产麻豆不卡| 91免费观看国产| 2014亚洲片线观看视频免费| 亚洲午夜精品一区二区三区他趣| 国产一区二区在线看| 欧美午夜精品理论片a级按摩| 久久伊99综合婷婷久久伊| 悠悠色在线精品| 粉嫩嫩av羞羞动漫久久久| 欧美日高清视频| 亚洲女子a中天字幕| 国产真实乱子伦精品视频| 欧美日韩国产另类不卡| 国产精品麻豆欧美日韩ww| 久久成人精品无人区| 欧美在线观看一二区| 中文字幕欧美三区| 国产一区久久久| 日韩一区二区视频| 亚洲自拍另类综合| av日韩在线网站| 欧美激情一区二区三区四区 | 久久精品久久精品| 欧美色图在线观看| 亚洲三级在线免费观看| 国产成人一区二区精品非洲| 日韩精品一区二区三区视频| 偷拍与自拍一区| www国产亚洲精品久久麻豆| 久久蜜桃av一区二区天堂| 亚洲精品国产一区二区三区四区在线 | 91在线云播放| 日本福利一区二区| 国产成人av电影在线| 欧美日韩在线播| 图片区小说区国产精品视频| 欧美一区二区美女| 国产精品18久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91丝袜美女网| 日本不卡一二三| 欧美高清在线一区二区| 97久久精品人人爽人人爽蜜臀| 亚洲一级二级三级在线免费观看| 911精品产国品一二三产区| 免费看欧美美女黄的网站| 国产欧美精品在线观看| 欧美影片第一页| 国产一区二三区| 亚洲黄色片在线观看| 日韩欧美一区在线| 不卡一区二区三区四区| 污片在线观看一区二区| 国产欧美一区二区精品性| 欧美日韩在线一区二区| 国产一区二区毛片| 亚洲一区二区三区免费视频| 精品国产三级a在线观看| av不卡在线播放| 日本女人一区二区三区| 国产精品高清亚洲| 欧美一区二区视频网站| 成人爱爱电影网址| 蜜桃在线一区二区三区| 1024国产精品| 91精品久久久久久蜜臀| 国产色一区二区| 日本不卡在线视频| 久久国产综合精品| 欧美日韩一区二区欧美激情| 美国毛片一区二区| 国产精品色呦呦| 欧美一区二区成人| 欧洲在线/亚洲| a在线播放不卡| 国产在线视频一区二区三区| 亚洲国产精品一区二区www|