AUDIO_FORMAT_PCM_32_BIT和AUDIO_FORMAT_PCM_8_24_BIT是安卓棒棒糖中的两种高清音频格式。
它们似乎都是32位深度的。
谁知道它们之间的确切区别呢?
发布于 2015-01-22 16:18:15
您可以在audio.h中找到该信息
/* Audio format consists of a main format field (upper 8 bits) and a sub
format field (lower 24 bits).AUDIO_FORMAT_PCM_32_BIT和AUDIO_FORMAT_PCM_8_24_BIT的定义如下:
AUDIO_FORMAT_PCM_32_BIT = (AUDIO_FORMAT_PCM |
AUDIO_FORMAT_PCM_SUB_32_BIT),
AUDIO_FORMAT_PCM_8_24_BIT = (AUDIO_FORMAT_PCM |
AUDIO_FORMAT_PCM_SUB_8_24_BIT),如果我们看一下AUDIO_FORMAT_PCM_SUB_32_BIT和AUDIO_FORMAT_PCM_8_24_BIT的定义,我们会发现一些有用的注释:
AUDIO_FORMAT_PCM_SUB_32_BIT = 0x3, /* PCM signed .31 fixed point */
AUDIO_FORMAT_PCM_SUB_8_24_BIT = 0x4, /* PCM signed 7.24 fixed point */发布于 2021-01-27 01:31:42
signed .31表示符号为1位,整个部分为0位,小数部分为31位。signed 7.24表示符号为1位,整个部分为7位,小数部分为24位。如果你想了解更多关于定点算术的用法,请阅读定点算术。
AUDIO_FORMAT_PCM_8_24_BIT很可能指的是填充了8位的0,因为7.24固定点对PCM数据没有意义。这是因为PCM数据的范围是1.0 ..-1.0。(从技术上讲,它应该是8.23,否则7.24 == 25位!)所以使用“整型”数字部分是没有意义的。
AUDIO_FORMAT_PCM_8_24_BIT的单个样本将包含4个字节,其中只有3个字节将保存任何有意义的数据,其余的单个字节将全为零。
另一种方法是AUDIO_FORMAT_PCM_24_BIT_PACKED,每个样本只包含3个字节,没有填充。24位音频有一种奇怪的格式,它不适合数字音频的2次方。处理24位样本通常更容易,就像它是32位样本一样。
https://stackoverflow.com/questions/28082952
复制相似问题