Timme 在 2005-12-5 18:15:29 发表的内容 谈理论大家都纠缠不清,那就做实验吧,毕竟“实践是检验真理的唯一标准”。只要我们能还原出制作CD用的“母盘”的全部数据,那就可以认定CD这种传播介质是“无损”的。
用RMAA软件生成一个测试用WAV文件【Test signal (44 kHz 16-bit).wav】,用刻录机把它刻到CD-R里,换到另一台光驱上,再用抓音轨软件(EAC)用“安全模式”把CD-R里的音乐信号读取为WAV文件【Track01.wav】。然后比较这两个文件的异同。
首先RMAA软件本身可以测试音质。可以看到,两个文件的失真情况完全相同(受限于16bit信号,THD失真最小就是0.0003%,等等。如果是32bit的话极限情况就好很多,如最右边那个)。说实话,进行这一步时,我的内心是不大安稳的,因为我事先也不知道结果。。。 [upload=gif]Upload/20051251871312978.gif[/upload]
更精确的,我又逐个Byte比较两文件的异同,这时可使用32位编辑软件UltraEdit。删除了音轨的空白偏移量后(这个东西可参考EAC的Help文件),我发现这两个文件只有最开头和最末尾处有不同。当然这已和音质无关了。 [upload=gif]Upload/20051251873216092.gif[/upload]
和CD数据格式的C1C2两级纠错不同,CD音频格式只带有一级纠错。但此实验验证了,这一级纠错已经足够达到“无损”。因此对于转盘来说,机械部分是不影响音质的,影响音质的是其机械部分后面的数字信号处理部分。因为音频信号读取出来之后是“数据流”Stream格式,它在传送过程中不一定能100%无损(这个我就没实验过了)。当然,要是机械部分出现了读不出碟之类的故障,那不在此文讨论范围内。至于盗版CD为何音质差,那是因为有些盗版盘是用网上找来的劣质MP3刻成CD,而有些则在对正版CD抓轨时使用了“暴发模式”而非“安全模式”,这种抓轨法为了最大速度读取音轨,跳过了一级纠错,自然造成音质损失。 |
Timme兄其实还有一处漏洞,我来帮你补充.[rar]Upload/2005121614364631076.rar[/rar]
UltraEdit 来比较二进制文件是不可靠的!他只是把二进制文件当成文本来比较,只对能显示字符进行比较,对于0000 和0101就会认为是一样的.
不信你做一个小测试,写00 00 00 00 共4个字节到1.dat
然后写 00 01 00 01 共4个字节到2.dat, 然后用UE 来比较,你会发现他们是一样的.
所以建议用我上传得小工具来比较,这个虽然比较土,命令行,但是很可靠.
缺点就是如果两边文件头长度不一致的话,你要先算出offset,然后在命令行里加offset.
我的小工具用法:
> bincomp 1.dat 2.dat (这是从头比较,比到其中一个文件到末尾,没有大小限制)
>bincomp 1.dat 2.dat 1024 1024 (这是1.dat从头和2.dat的1024字节以后比,总共比1024个字节
>bincomp 1.dat 2.dat 1024 1000000000
比的字节写一个很大的数字,这里是10亿,可比到大约1GB的数据,对CD够用了,比到文件尾结束.
windows自带的comp 命令可以比较二进制,很可靠,缺点是不能加offset比较.
UNIX带的diff 命令可以比二进制,很可靠,缺点是在windows上用药装Cygwin.