您的位置:首页 > 其它

pcm音量计算

2015-10-21 09:09 225 查看
以下程序用在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: