mpeg1中的音频信号是按mp2标准编码的。
要从mpeg文件里还原音频信号,需要作mp2解码的工作。
mp2解码过程中需要用到浮点数运算。之前因为遇到sprintf( "%f" ,3.1415 )无法正常输出,
无法调试,只好断念。
后来想到用变通的办法,也可以解决浮点数的输出问题,即如果要输出浮点数3.1415,
先乘10000。 再分离出整数部分3和小数部分1415,中间加一个“.”,就能输出完整的浮点数。
%f问题解决后,发现在一定的条件下,其实现在的编译工具还是支持浮点数的四则运算的。
下图,是在桌面显示500Hz的mp2音频信号解码后的波形。看起来,虽说mp2是有损压缩,但
解码后的正弦波还是相当还原的。
用90分钟的16bit,Stereo的语音mp2,与wav相比,压缩比大约10:1。通过铁娃娃系统的mp2解码,
经过声卡播放,与直接播放wav效果一样(听不出差异)。
mpeg1解码,mp2解码和声卡技术问题解决后,下一步的目标是“铁娃娃”播放完整的有声电影。
要从mpeg文件里还原音频信号,需要作mp2解码的工作。
mp2解码过程中需要用到浮点数运算。之前因为遇到sprintf( "%f" ,3.1415 )无法正常输出,
无法调试,只好断念。
后来想到用变通的办法,也可以解决浮点数的输出问题,即如果要输出浮点数3.1415,
先乘10000。 再分离出整数部分3和小数部分1415,中间加一个“.”,就能输出完整的浮点数。
%f问题解决后,发现在一定的条件下,其实现在的编译工具还是支持浮点数的四则运算的。
下图,是在桌面显示500Hz的mp2音频信号解码后的波形。看起来,虽说mp2是有损压缩,但
解码后的正弦波还是相当还原的。
用90分钟的16bit,Stereo的语音mp2,与wav相比,压缩比大约10:1。通过铁娃娃系统的mp2解码,
经过声卡播放,与直接播放wav效果一样(听不出差异)。
mpeg1解码,mp2解码和声卡技术问题解决后,下一步的目标是“铁娃娃”播放完整的有声电影。