• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            SPEEX重采樣分析(一)

            轉載自:http://blog.csdn.net/ahyswang/article/details/7675390

            簡介

            • 算法速度快
            • SIMD(SSE)指令支持
            • 低內存
            • 高質量

            該算法是基于最原始的重采樣算法:

               Smith, Julius O. Digital Audio ResamplingHome Page
               Center for Computer Research in Music and Acoustics (CCRMA), 
               Stanford University, 2007.
               Web published at http://www-ccrma.stanford.edu/~jos/resample/.

             

            這里使用cubic   interpolation代替linear interpolation。減少CPU時間,能更好使用SIDM算法。

             

            接口

            speex_resampler_init

            功能

            創(chuàng)建實例

            函數(shù)

            SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels,                                           spx_uint32_t in_rate,

            spx_uint32_t out_rate,                                             int quality,                                          

            int *err);

            參數(shù)

            nb_channels [in] 通道數(shù)

            in_rate     [in] 輸入音頻的采樣率

            out_rate    [in] 輸出音頻的采樣率

            quality     [in] 重采樣質量

            err         [out] 錯誤碼

            返回值

            成功返回實例句柄,失敗返回NULL

            簡介

             

             

             

             

            speex_resampler_init_frac

            功能

            根據(jù)input/output比例來創(chuàng)建實例

            函數(shù)

            SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels,                                                spx_uint32_t ratio_num,    

            spx_uint32_t ratio_den,                                                 spx_uint32_t in_rate,                                                      spx_uint32_t out_rate,                                                  int quality,

            int *err);

            參數(shù)

            nb_channels    [in]通道數(shù)

            ratio_num      [in]比例分子                  

            ratio_den      [in]比例分母       

            in_rate        [in]輸入的采樣率 

            out_rate       [in]輸出的采樣率

            quality        [in]重采樣質量

            err            [out]錯誤碼

            返回值

            成功返回實例句柄,失敗返回NULL

            簡介

             

             

             

            speex_resampler_destroy

            功能

            銷毀實例

            函數(shù)

            void speex_resampler_destroy(SpeexResamplerState *st);

            參數(shù)

            St [in] 實例句柄

            返回值

            void

            簡介

            釋放資源

             

             

             

            speex_resampler_process_float

            功能

            重采樣浮點序列

            函數(shù)

            int speex_resampler_process_float(SpeexResamplerState *st,                                  

            spx_uint32_t channel_index,                                   const float *in,                                              spx_uint32_t *in_len,

            float *out,                                                   spx_uint32_t *out_len);    

            參數(shù)

            St                [in]句柄

            channel_index     [in]通道號

            in                [in]輸入緩存

            in_len           [in]輸入長度(返回處理的采樣數(shù))

            out               [in]輸出緩存

            out_len           [in]輸出長度(返回寫入的采樣數(shù))

            返回值

            錯誤碼

            簡介

            輸入和輸出緩存不能重疊,外部準備緩存

             

             

             

            speex_resampler_process_interleaved_float

            功能

            重采樣交叉的多通道浮點數(shù)據(jù)(例如:雙通道PCM)

            函數(shù)

            int speex_resampler_process_interleaved_float(SpeexResamplerState *st,                                                 

            const float *in,

            spx_uint32_t *in_len,

            float *out,

            spx_uint32_t *out_len);

            參數(shù)

            St                [in]句柄

            in                [in]輸入緩存

            in_len           [in]輸入長度(返回處理的采樣數(shù))

            out               [in]輸出緩存

            out_len           [in]輸出長度(返回寫入的采樣數(shù))

            返回值

            錯誤碼

            簡介

             

             

             

             

            注:以上是主要的接口函數(shù)

             

            示例

            下面把16K的音頻轉換為8k的音頻

                st = speex_resampler_init(1, 16000, 8000, 10, &err);

             

                do{

                   readlen = fread(in, sizeof(short), 1024, fin);

                   if (readlen > 0)

                   {

                       inlen = readlen;

                       outlen = 1024;

                       ret = speex_resampler_process_int(st, 0, in, &inlen, out, &outlen);

                       if (ret == RESAMPLER_ERR_SUCCESS)

                       {

                          fwrite(out, sizeof(short), outlen, fout);

                       }

                   }

                  

                }while(readlen == 1024);

               

                speex_resampler_destroy(st);

             

            posted on 2013-02-05 12:06 楊粼波 閱讀(5336) 評論(0)  編輯 收藏 引用

            亚洲国产精品无码久久久不卡 | 香蕉久久夜色精品国产尤物| 午夜精品久久影院蜜桃| 久久这里有精品| 99久久成人国产精品免费| 久久久噜噜噜久久| 一本久久a久久精品vr综合| 国产AV影片久久久久久| 久久精品国产99国产精品亚洲 | 婷婷久久五月天| www.久久精品| 亚洲午夜久久久久久噜噜噜| 91久久精品电影| 久久丫精品国产亚洲av不卡 | 国产福利电影一区二区三区久久久久成人精品综合 | 久久ww精品w免费人成| 久久久久亚洲AV综合波多野结衣 | 久久国产精品99精品国产987| 久久这里都是精品| 国产亚州精品女人久久久久久 | 色综合久久88色综合天天 | 久久99中文字幕久久| 久久久无码人妻精品无码| 伊人伊成久久人综合网777| 国产精品99久久不卡| av午夜福利一片免费看久久| 久久久国产打桩机| 久久久久久久91精品免费观看| 久久综合综合久久狠狠狠97色88| 亚洲色欲久久久综合网| 久久青青色综合| 亚洲精品无码专区久久同性男| 免费观看成人久久网免费观看| 国内精品九九久久久精品| 一本久久知道综合久久| 亚洲精品国产字幕久久不卡 | 久久综合九色综合欧美狠狠| 久久er热视频在这里精品| 人人狠狠综合久久亚洲婷婷| 久久777国产线看观看精品| 国产午夜精品理论片久久影视|