pcm音量计算

来源:互联网 发布:淘宝国际转运店铺 编辑:程序博客网 时间:2024/05/21 17:16

以下程序用在16Khz的单声道或者8Khz的双声道的pcm数据的音量计算. 
来源自搜索的各种资料加实际测试. 
参考源暂未统计出.

注意要求的对数函数是log10,不是log.

int pcm_db_count(const unsigned char* ptr, size_t size){    int ndb = 0;    short int value;    int i;    long v = 0;    for(i=0; i<size; i+=2)    {           memcpy((char*)&value, ptr+i, 1);         memcpy((char*)&value+1, ptr+i+1, 1);         v += abs(value);    }       v = v/(size/2);    if(v != 0) {        ndb = (int)(20.0*log10((double)v / 65535.0 ));     }       else {        ndb = -96;    }       return ndb;}



http://blog.csdn.net/freeze_z/article/details/44310245

0 0