gpt4 book ai didi

从 u-law 到 PCM 的转换,16 位

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:16 25 4
gpt4 key购买 nike

我目前在我的 C 源代码中使用两个函数将 A-law 文件转换为 PCM 16 位,将 U-law 文件转换为 PCM 16 位。 U-law 文件到 PCM 16 位的转换不成功。生成的 PCM 16 位文件有很多噪音。

下面有两个函数:

short ALawToPcm16(char c)
{
int i;
short val;

i = (c & 0x00FF) ^ 0x0055;

if (i > 0x007F)
{
val = (short)(0x10000 - AIndexToPcm16Bit[i - 0x80]);
}
else
{
val = AIndexToPcm16Bit[i];
}

return(val);
}


short FctMuLawToPcm16(char c)
{
int i;
short val;

i = (c & 0x00FF);

if (i > 0x007F)
{
val = (short)(0x10000 - UIndexToPcm16Bit[i - 0x80]);
}
else
{
val = UIndexToPcm16Bit[i];
}

return(val);
}

谁能告诉我第二个函数有什么问题?谢谢

最佳答案

尝试将 i = (c & 0x00FF); 替换为 i = (c & 0x00FF) ^ 0x00FF; – 伊恩·阿博特

关于从 u-law 到 PCM 的转换,16 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com