作者john0312 (Chen John L)
看板Headphone
标题Re: [讨论] 无意间爬知识+看到
时间Mon Jul 6 22:25:45 2009
> 但是取出来後之WAV与原先於CD上之音轨是否完全一样<---
> 这才是关键
确实, 在早期的光碟机上面, 这是一个问题, 但是在现代的硬体上面(五年以内就算现代吧, 我家还有200MB的SCSI硬碟...)这不是一个问题.
为什麽我这样说呢, 因为CD的结构上面, CD上面最基本的资料群是Frame, 一个Frame里面, 有三十三个位元组, 其中有二十四个是纪录音乐, 另外有八个纪录除错码(Error Correction Code), 这个八个码, 可以在一个Frame里面的资料出问题的时候, 运用进阶的数学运算, 从这八个除错码中, 取得原本正确的资料. 最後一个位元组, 叫做Subchannel data, 是用来储存歌名或是作者之类的, 这一个位元组不在我们的讨论范围内.
重点: 只要资料毁损的不严重, 系统能自动修复错误. 就好像没有错过一样.
在过去, 由於运算能力有限, 一般的光碟机, 为了能够以现时读取音乐资料, 他不做Error Correction的处理, 而且以前的电脑没有那麽进步, 例如说连接光碟机用的IDE BUS只有四十条线(现在每根之间加了一跟GND Shield => 80 pins), 会因为电磁干扰而导致音乐资料毁损(IDE也有CRC,不过还是会发生).
这些你所讲的软体(Exact Audio Copy, EAC), 他所做的, 就是当资料被读出来的时候, 他会用Error Correction Code来确认资料是否正确, 而且, 有的时候, 他会多读几遍来确认. 我用电脑到现在, 没有遇过一片光碟读两次内容不一样的, 有兴趣的朋友, 如果使用Linux, 可以尝试以下指令, 多做几遍看结果出来一不一样:
dd if=/dev/cdrom | md5sum
我自己会做几次, 然後晚一点我会Po结果上来.
> 是否能确实保证直接於光碟机播放CD时所读取之音轨 类比波形完全相同?
> (单纯讨论抓音轨部份之jitter 而非音效卡上之类比输出後因各项变因造成的波形改变)
如果Error Correction Code真的没有办法算出原本的资料, EAC或是任何有ECC的软体会告诉你说有错误. 如果他没说有错误, 那你可以确定说, 读出来的确确实实是无误的
类比波形跟数位资料的问题, 我下面再说.
> 有jitter因素
一般来说, 当我们讨论光碟跟Wave时, 我们指的jitter, 是上面所说的资料因各种原因毁坏, 而不是时间差. 所以说, 只要数位料读出无误, 就不会有所谓的jitter.
> 请参阅IEC 908的规范 :-o
It's IEC 60908
> 别忘了 某些lossless格式可以接受部分毁损依然可以播放的(容错度高) (如flac)
根据FLAC官方的FLAC格式定义(FLAC File Format Specification):
http://ppt.cc/SFvJ
FLAC内部有CRC侦错功能, 也就是说, 如果档案有问题的话, 程式可以检测的出来. 也就是说, 事实上, 他不容错, 只是你可以逼迫他不理那个错误, 继续播放.
> zero1289:我比较好奇的是CD上储存格式是数位还是类比的!?
> pipi5867:数位 类比的是LP,或是录音带
> pipi5867:通常毁损的话 就很明显会有爆音,断音等情况了 07/06 20:56
正解
> kuo123:有趣的是,CD虽然储存的是数位资料,纪录的概念却是类比的 07/06 21:32
> commutative:电脑科技本来就有限呀!用数位描述类比本来就无限可能 07/06 21:01
> commutative:取样44.1K如果真的够用,就不会有人死守LP了呀! 07/06 21:01
> commutative:在极高频通常只取两个点,却要电脑画一个漂亮的弦波 07/06 21:06
在资讯理论中, 有个叫做Nyquist-Shannon Sampling Theorem的定理, 他规定:
If a function x(t) contains no frequencies higher than B hertz, it is completely determined by giving its ordinates at a series of points spaced 1/(2B) seconds apart.
中文翻译:
假设一个函数x(t)没有超过B Hertz的频率, 那他可用一系列的点, 其间格1/(2B)秒, 来完整的描述这个函数.
也就是说, 任何不超过B Hertz的讯号, 如果我们用2B Hertz来采样, 那我们可以用数学来算出他中间的所有数值(有兴趣的可以看看Fourier Transform).
在这种情况下面, 只要数位讯号(那一系列的点)准确无误, 那就可以用数学的分法准确无误的画出那讯号.
另外, 对於那些对CD有问题的人, 我想他们应该是不喜欢DAC, 为什麽我这麽说呢, 来一张DAC输出的讯号在示波器上面的图吧.
这张不是我自己照的, 是网路上面找到的:
http://ppt.cc/kUwa 出处:
http://ppt.cc/P9NE
由此可见, DAC会有一格一格的, 这样不是原本的讯号, 分析之後, 他会有少数高频讯号(超过人类听力范围). 不过, 那照片是作者自己用R-2R Ladder的方法自己做的DAC, 所以会有这种问题. 早期的DAC也会有这种问题, 现在的设备上面, 基本上来说没有. 我自己也照了一张, 这个信号是由我的主机板内建音效卡输出(华硕 P5B), 频率是18kHz. 示波器是一台古董的GW Instek GOS-623B (类比的) 抱歉, 档案有一点大:
http://stashbox.org/561997/P7070001.JPG
基本上来说, 看不到什麽方格, 这是个很标准的正弦波. 顺便一题, 输出这个波的音讯档, 里面只有*两个*点来叙述一个周期. 请见输出用的档案:
http://stashbox.org/562000/Auda18K.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.76.65
※ 编辑: john0312 来自: 220.133.76.65 (07/06 22:26)
1F:推 padro:基本上你讲得没错 另外我个人认为的比较应是两台不同光碟机 07/06 22:28
2F:→ john0312:好的, 我家有将近十台电脑, 我纪录晚点Po 07/06 22:29
3F:→ padro:因为我手边目前无法比较 谢谢 :) 07/06 22:30
4F:→ kevin0125:padro兄你真的太小看科技和那些天才想出的演算法以及错 07/06 22:30
5F:→ kevin0125:误更正技术了XD 07/06 22:30
6F:推 kevin0125:专业文 刚刚CD 补推 07/06 22:39
7F:→ john0312:Sorry, 我记事本上面打的, 贴上来一堆斜线 OTL 07/06 22:43
8F:推 amurorei:好专业啊 07/06 22:46
9F:→ takase:也许「不好听」的原因在於数位滤波处理? 07/06 22:48
10F:→ takase:早期一些CD机在这方面的处理真的不好.... 07/06 22:48
11F:推 DemonRing:你的「不好听」也许是别人的「好听」啊... 07/06 22:53
12F:推 commutative:就是因为看过Nyquist-Shannon Sampling Theorem 07/06 23:21
13F:→ commutative:才会发现它的前提假设,以目前的科技并没有办法去满足 07/06 23:23
14F:→ commutative:如果可以被满足,那麽不会有超取样,也不会有192K取样 07/06 23:26
15F:→ commutative:就是因为做不到,所以取越多点越接近真实状态... 07/06 23:27
16F:推 Zenta:不太懂commutative大说的,目前科技无法满足什麽? 07/06 23:29
17F:→ commutative:可以去找教DSP的老师讨论,都已经暑假,不想再写报告了 07/06 23:50
18F:→ commutative:当做没看到就行了,反正CD目前还是都用44.1k录制 07/06 23:51
19F:→ commutative:讨论这个没什麽太大的意思,30年後再拿出来研究吧! 07/06 23:52
20F:→ weiliya:Nyquist-Shannon Sampling Theorem的需求是一个"理想"的 07/06 23:58
21F:→ weiliya:数位滤波器,理想的数位滤波器的傅立叶展开延伸到无限大 07/07 00:00
22F:推 padro:算是後话 称Red Book为IEC 908是个人习惯 XD 07/08 00:31