lusson 发表于 2014-6-13 14:15:54

使用LIBMAD软解MP3,如何使用24bit数据?


按PDF上一步一步移植,最后都OK。
看说明libmad是24bit输出,但网上都是转成16bit输出给DAC。
对算法不了解,我现在想使用24bit的话该怎么用?

我直接把解码生成的数据右移8位送给DAC,能正常输出声音,但总感觉不太对劲。
有谁知道的。
看README也看得稀里糊涂的

binaimei2007 发表于 2014-6-13 15:33:06

static inline signed int scale(mad_fixed_t sample)
{
        /* round */
        sample += (1L << (MAD_F_FRACBITS - 16));
        /* clip */
        if (sample >= MAD_F_ONE)
                sample = MAD_F_ONE - 1;
        else if (sample < -MAD_F_ONE)
                sample = -MAD_F_ONE;/* quantize */
        return sample >> (MAD_F_FRACBITS + 1 - 16);
}
这是我现在用的函数,转为16位的。

lusson 发表于 2014-6-13 15:39:15

binaimei2007 发表于 2014-6-13 15:33
这是我现在用的函数,转为16位的。

谢谢。

不过我现在是想不转16bit,直接使用24bit输出给DAC。我不知道该如何处理。

dudududu 发表于 2014-6-17 08:56:53

兄台动作好快啊,我的都停下了!!
话说怎么附加不能下载呢??最近登录论坛总是异常,估计我们公司网管有在大搞了

lusson 发表于 2014-6-17 08:59:30

dudududu 发表于 2014-6-17 08:56
兄台动作好快啊,我的都停下了!!
话说怎么附加不能下载呢??最近登录论坛总是异常,估计我们公司网管有 ...

去我另外那个帖,我把MP3解码部分代码放上去了。
我也就是偶尔弄弄,觉得目前量最大的还是MP3,所以就想着把MP3解码弄上去
现在还没测试CPU占用率。

dudududu 发表于 2014-6-17 09:08:45

lusson 发表于 2014-6-17 08:59
去我另外那个帖,我把MP3解码部分代码放上去了。
我也就是偶尔弄弄,觉得目前量最大的还是MP3,所以就想 ...

使用频率最高的,肯定是MP3,就一般的设备上,MP3和无损的播放效果,区别还不是很明显,并且要是在户外,随身听得话,由于环境噪声的关系,区别就更小了,MP3体积小,资源多,也不用在意什么正版、翻版、真真假假的问题,能够支持是最好的了。
话又说,对于MP3,24bit和16bit有区别么,对于MCU解码,采样率的提高,比如从44.1k变成96k,CPU增加的负担还不算大,但是同样的采样率下,数据从16bit变成24bit貌似负担会大好多。

dudududu 发表于 2014-6-17 09:09:02

另一个帖子链接,方便么

lusson 发表于 2014-6-17 09:18:29

dudududu 发表于 2014-6-17 09:09
另一个帖子链接,方便么

http://www.amobbs.com/thread-5563990-1-1.html

MP3解出来就是24位,所以使用16位和24位区别不大,我是打算后期由CPLD来处理这个位数的区别。
当然24bit CPU负荷肯定会高一点的。

太阳哥 发表于 2014-6-17 09:50:53

标记一下

dudududu 发表于 2014-6-17 11:05:37

哦,这个帖子啊,看过看过,我还以为你又新开了帖子呢!!
话说,24bit还是有好处的,比如数字音量调节的损失就会小一些
页: [1]
查看完整版本: 使用LIBMAD软解MP3,如何使用24bit数据?