发烧论坛

注册

 

发新话题 回复该主题

计算芯片的发展将让普通CD战胜LP [复制链接]

查看: 51030|回复: 320
21#

(接原文)

可以说,凡是数码格式,不管取样多精确,始终都会有这个问题。不过对于声音的重播,我们所要做的努力就是尽量使得重播的声音与原来的信号吻合。因此幸运的是,对应于上述这种误差,现在已经有了对应的D/A解码算法,可以估计出究竟哪一个数据点是出现了上述这种误差,然后对其采取措施,把本来存在的误差进一步减少。算法比较复杂(我记不住了),印象中还要用到统计的知识,但是取得效果也是很值得赞赏的。

通俗来讲,上述这些“新式”(其实理论很早就有了)的算法,播放的时候跟原始信号比较的误差已经远远小于磁带、LP播放因为磨损所产生的误差了。这也是为什么尽管现在更高的SACD、DVDA格式,人耳听上去的感觉似乎比起CD没有太翻天覆地的不同(或者说,差别很小)——因为人耳绝对分辨不出小数点后20多位和40多位误差的不同(实验表明,经过专门训练的人,最多也只能分辨出1%的失真——注:不同的实验有不同的结果,不过数量级不会差太多)。

另外对于SACD和DVDA这两种格式,在某个方面我颇觉疑惑:SACD不是号称品相上限可以达到100kHz吗?这听上去从理论上来讲的确很美妙,但是实践起来大家会发现一个问题:怎么去混音呢?20kHz以下的信号好办,制版工程师聆听之后调整即可;但是对于20kHz以上的超高频怎么办?人耳听不见的,该怎么调?要知道,几乎所有的录音母带都是多声道的,20kHz以上的信号,混成双声道的时候肯定不能放任自流的。所以很可能现在的SACD、
DVDA混音的时候,都是默认这个规则(似乎也只能这样办了):我只要把人耳可听见的高中低频弄好了,那么就可以认为超高频也没问题了——这个会导致这样的危险:按照这样的逻辑,既然低、中、高、超高频都是声波,那么是否同理照推,我只要把中低频弄好了,高频、超高频也就好了呢?继续推下去,那是否我只要把低频弄好了,那么中频、高频、超高频都自动也好了呢?——这明显是不对的,所以SACD和DVDA自身的高格式又为自己带来了不可避免的技术上的麻烦,并且我也想不到他们有什么比较可靠的方法来解决。

(未完待续)
最后编辑felixcat
TOP
22#

堆堆 在 2004-11-16 16:13:43 发表的内容
估计楼主要这么玩大概别人很难对上话.
但就我所知,已经比CD先进的XRCD和SACD一样输给LP很多.


您先别着急,我在最后就会讲到为什么有些人的听觉,会感到听LP比CD要舒服。

可能在国内可以公开说“XX比XX要输很多”,但是比如说在美国,假如没有足够的证据,是绝对不能公开这样说的——这个可不是故弄玄虚的,广告法里明文规定的。所以我这边很多商品的包装,都没有明确印这件商品怎么怎么好——只是把技术参数列出来而已。大家请看看CD说明书里对于CD的简要的官方说明,里面的一词一句都是经过仔细斟酌过的。里面有一个词组“superior performance”,就明确地指出了CD和传统唱片的比较差别。可千万不要以为这只是随便写的一个句子——我曾经专门了解过当初制定CD包装规格的一些可以算是“内幕”,当初对于CD的这个评价可是经过仔细讨论,确定不会引起麻烦才这样写上去的,并且当初CD上市之后,一些仍然只生产LP的厂商,比如Lyrita,也对这一段评价无可奈何。
TOP
23#

hoho,楼上的弟兄,那以后我在坛子上,不写任何和科学相关的东西,我们来讨论一下《圣经》,甚至我来传传福音,如何?开个玩笑,请别介意。
TOP
24#

Wilmer威馬 在 2004-11-17 14:59:37 发表的内容
无论任何新旧数码技术,似乎仍只停留在如何完美重整单音调波形,但就似乎仍未有能力兼顾实时的谐波及泛音运算。

如果电脑动画模拟迫真度可以进步到完全取替真人演出,而硬体又可以平民化,就是数码天下真正来临的日子。


威马兄,在音频处理的时候,不管是模拟录音还是数码录音,它们面对的就是麦克风送来的声波信号,它就是无数不同频率的正弦余弦波的和了,什么基音、泛音、谐音等等的都含在里面了。任何的录音方式都是去记录这条信号,而不用管其中哪些是泛音谐音。反正只要把整条曲线描绘出来,就自然会是录音现场传到麦克风的声音——模拟录音、数码录音都是采用这种原理的;而至于电脑midi媒体音乐,则是采用另外一种方式合成音乐的。

电脑动画已经可以代替真人演出了,《指环王》里面凡是不是人类模样的那些怪异形象,都是采用大型计算机描绘计算出来的——据我所知他们所采用的计算机,其主服务器的计算速度大概已属于我们国家的“银河”超级计算机的那种级别——不过造价极其昂贵,非个人所能承受。但话又说回来,一般人也不必去买台超级计算机来自己设计电影吧,呵呵。
TOP
25#

爱乐苍狼 在 2004-11-17 11:16:43 发表的内容
支持。技术上(从数学上)是行的。我想问一下,音乐信号到底是怎样的,比如又有高音又有中音又有低音(同时),曲线不是一条曲线吧?取样是怎样取的


OK,大致可以这样来说:因为声波是机械波,所以是可以线性相加的。并且由于任何机械波都可以表示为一些三角函数的线性相加。比如说如下图,作个比喻,我假设大提琴的某个时间的声波就是很简单的正弦函数 y=sin x,图像如下:

[upload=jpg]Upload/2004111712273638704.jpg[/upload]

并且同一时候,小提琴的声波也是很简单的 y=sin 2x:

[upload=jpg]Upload/2004111712283718170.jpg[/upload]

那么小提琴和大提琴合奏出来的声波就是:y =sinx +sin 2x,图像如下:

[upload=jpg]Upload/2004111712293298925.jpg[/upload]

取样就取上面这条曲线即可。并且可以从上图看出相加之后的曲线,有疏有密(代表声波频率变来变去),有高有低(表示音量大小,也就是动态),这就两种乐器合奏的时候所形成的不同的“音色”了。

当然真实的乐器演奏的声波是很多很多个三角函数的线性相加的和,波形会很复杂。
TOP
26#

下面来看看多项式插值技术(通常和升频、再取样相关联)。上面我们就说过,对于一次多项式插值:

在某一点x的输出总误差 = 锯齿形折线与黑色直线段的误差(在点x) + 黑色直线段跟原始信号曲线的误差(在点x)

所以我们受到启发,能否这样办:

首先算出一条我们已知的插值光滑曲线,这条光滑曲线极度接近原始信号曲线(也就是误差很小),我们设这个步骤的误差,在点t处为A(t);然后由于我们已经把这条曲线掌握在手里了,然后再通过更高频率、用更高的bit数去取样(当然原先44.1k/16bit的那些数据点仍然包含在内,这就是所谓的Re-sampling),然后再以这些加密、加细的数据点,以像开头那种锯齿形波形作为输出信号,这时候锯齿形波形跟插值曲线的误差设为B(t)。

那么我们立刻就能从理论上推出,这种解码方法的总误差C(t) = A(t) + B(t)。

可能有的朋友又会觉得奇怪:为什么我们不干脆输出那条插值光滑曲线呢?那岂不更好?对,的确更好,不过似乎现在一般的电路不能输出任意的多项式曲线信号,所以这个有待电子学的发展去进一步探索(所以说CD格式的潜力是很大的)。我们现在在有限的成本下,一般只能用先前那种锯齿形的波形来作为输出曲线(它带来的误差是上述的B(t))。

但是请不要一听到“锯齿形”就害怕了。原因有三,第一,B(t) 和 A(t) 基本上是处于差不多的数量级的,我前面就已经推导过,比如说采用12 次Hermite插值多项式,其误差A(t) 的数量级就已经小到10的负27次方了,那现在就算我 B(t) 的误差值很大,大一亿倍(够大了吧?),那么总的误差也不过仅仅是10 的负19次方那样,何足挂齿?第二,电路元件的操作反应(Sorry,电子学里面有专门的词汇的)都不是“瞬时”(即0时间内)完成的,加上我这里的“锯齿”的宽度数量级由于实行了超高频率取样,实在是太小太小了,因此这个因素也进一步减弱了原则上存在误差;第三,人耳的听觉神经和视觉神经一样,由于都是采取放电的形式传达外界感受信息的,所以一样存在“听觉瞬间停留”现象(这一点是心理系的同学告诉我的,但愿她没错吧),我取样如此之高了,别说人耳了,连外星人耳恐怕都难以分辨了。

所以说,A(t) + B(t) 的值,比起一次多项式来讲,小很多很多。这都归功于因为我们的A(t) 算得绝,一下子就把误差给拉下来了,顺便也把B(t) 也大大减小了。

那么大家是否觉得这种方式岂不和DVDA很类似(据我所知SACD采取的是另外的解码方式)?呵呵这里我不太了解DVDA的具体原理,就不下绝对结论了。不过有一点肯定的是,DVDA的误差度肯定是更小的,因为它的高取样率是直接用于原始的信号曲线上,这样就避免了A(t) 这项误差,也就是说不用先去算出插值多项式这么麻烦。

这样上述的描述,应该能够把我所说的多项式插值技术解释得比较清楚了。里面假如有说得不对的地方,欢迎各位朋友指出。
TOP
27#

这位朋友,可能有一些地方你误解我的意思了,我所说的“滤掉”,意思就是不可能从44.1k/16bit的信号中运算结果里面存在超过22.05k的信号。

Nyquist原则,这么出名,不会不知道。我知道混叠的确对于图像信号有可察觉影响,但是对于音频信号,我所考虑的准则是:假如有高频的信号的振幅作用于波形里,那么我们是否应该也以某种程度把这种振幅的能量也算在最终的编码里呢?

比如说下图:

[upload=jpg]Upload/200411188134759803.jpg[/upload]

那条直黑线就是混叠的作用所产生的(画条黑线只是示意而已,不是最后输出的曲线),它的确表现出一个稍低频的震动,并且在该直线和那个正弦波的第二个交点往后,它所产生的误差比直接把这个频率的波滤掉之后再取样的误差要大一些(不过在这个点之前误差却会小一些)。但是我觉得这却同时保留或者反映了这个波形的一些振幅。

我不清楚这样的保留对于听觉还原上有好处还是有坏处,假如经过试验得出结论是有坏处,那么编码的时候先把它完全滤掉好了——不过Nyquist原则和D/A转换没直接关系吧?

说AES只是觉得很逗,觉得它很不够意思,交了钱也没什么太大的优惠——SIAM的优惠比它要大些。没其他别的意图。

不过说真的,我上面说的用插值多项式来先描绘出原始信号的路子,我觉得真是可行的,至少在算法上应该没问题吧?至于电路等方面,不是我力所能及了,也就讨论不了了。

恩,在网上来讨论比较学术的问题,可能不是一个好方法,至少网页上不支持公式编辑命令行。。。我觉得当面讨论才是比较好的沟通方式。在我们学校接触了不少大师,真的觉得他们能给我带来很大的鼓舞。

现在找工作不易,能在WVU当教员的机会看来也需要一番力气去争取,厉害!不过似乎它的EE排名比较靠后,这位老师能否介绍一下你们系的大致情况呢?我们学校的应用学科的交叉性很大,所以我们系、计算机、电子、概率几个系都经常合作着来做研究,这样大家的合力就效果很惊人了,我觉得这种模式很好。

论坛上有显示IP的功能的,您查IP就能知道大家所在的位置了。最后,我觉得这只是由于表达上面的不详细所造成的误解而已,假如我有令你不快的地方,请见谅。
最后编辑felixcat
TOP
28#

OK,下面我一个一个来跟您详细解释。

资深民工 在 2004-11-17 22:11:18 发表的内容

这个真是莫名其妙。什么叫做“假如我们用直线把这些取样点连在一起,作为CD输出的声音曲线”?天底下哪里有这样的事情?CD输出的声音曲线,是经过数模转换以后出来的。数模转换中间的一个关键步骤是低通滤波。这张图上的信号,就是个正弦波而已。这几个抽样点完全可以百分之一百不带半点误差的把这个信号恢复出来,根本不需要插值。实际上只要把这几个抽样点的数字信号经过低通滤波,出来的就是这个正弦信号。有哪一家公司,有哪一个工程师会傻到用直线连接抽样点作为“声音曲线”?这句话本身根本就不通,是楼主对数模转换毫无概念导致的误解。



首先我那张图画的不是正弦波,而是许多许多个不同频率的正弦和余弦波的线性组合。

其次,虽然你现在可能觉得“假如我们用直线把这些取样点连在一起,作为CD输出的声音曲线”很搞笑对吧?但是您知道吗,在80年代初期,那个时候的解码芯片的运算速度大概也只能使用类似这样的算法。这个我可不是信口开河的,我们认识一位教授,80年代的时候他在纽约州立Stony Brook大学(听说过这个学校吗?杨振宁就一直在那里任教,甚至他的家就在那里)干应用数学,那里有一个专门的声学研究中心,当年就弄过这样的算法。


回过来说CD和LP的比较。楼主居然不知道为什么CD的声音上限为什么是20K Hz?这是因为,为了防止抽样时信号的混叠,原始模拟信号经过了一个20K Hz的低通滤波器,然后才进行抽样。如果不加这个低通,高于22.05K Hz的信号会和低于22.05K Hz的信号混叠在一起。为什么不加22.05K Hz的低通?因为我们做不到截止得这样陡峭的滤波器。

所以,无论怎么样插值,高于22.05K Hz的信号在CD里面是根本没有的。而LP则不然,虽然某些LP可能的确从18K 开始频响就开始滚降,但是高频延伸比CD要高的多。这才是LP和CD的本质差别所在。虽然人耳不能听到高于20KHz的信号,这些信号并不是完全没有用处的,对于微妙的听感起着决定性的作用。这就是为什么新的音频格式要大大提高抽样频率的缘故。


唱片公司用什么器材怎么操作我不可能每个都知道。不过有一点很清楚,一个含有各种频率的信号,一经过44kHz的取样之后,所有高于220500Hz的信号就会自动滤掉(呵呵,知道为什么吗?)。滤波器——现在数模转换算法在理论上就已经证明给你看了:它能自动把那些220500以上的信号都滤掉——所以,假如您是工程师的话,你会多此一举地再加上一个作用重复的滤波器吗?——当然,假如为了电路的电气性能用其他元件,这里我不去讨论。

对呀70-80年代的LP,理论的高频延伸可以达到30kHz,但问题是,实验也表明,不论是什么唱针,刮上那么2-3次,不超过10次,这些高频的信号就都被磨掉了,剩下的就是比CD要窄的那些频宽。所以说,假如要买LP,那么最好就是,第一,不要买二手的;第二,买来之后不要播放。OK?


Wadia也好,Theta也好,各家公司采用不同的升频措施和插值计算是有的,但是其出发点和楼主这里说的根本不是一码事。事实上,对于CD播放来说,如果不升频,根本没有任何必要插值。


这一点可能由于我先前一直为了避免涉及电路这方面,所以没有详细说出来,以至于看了会产生误解。我下面的回帖给出了一种描述,您看合适否?


我不是想打击楼主,但是楼主的发言里面有很多基本的概念错误。声频信号处理是一件非常复杂的事情,即便是专门从事音频信号处理的专业人士,一样对很多东西没有共识,哪里是象楼主说的这么简单的。有空的时候请去Audio Engineering Society的网站上看看:
http://www.aes.org。


我再重提一下:我这篇文章里面写的内容,不是说某某厂家一定就采用这样的算法,完全有可能它用别的五花八门的方法。但是我这篇文章的主旨是说,我提到的这种算法,相当可行(或者已经被应用出来了)。

最后,我也觉得我对这方面的了解,尚待大力加深。不过我稍微自夸一下(呵呵,也是我努力的成果呀),我是SIAM(美国工业与应用数学)协会会员。

这里所说的解码思想,我是打算作为一篇小小的Report或者Review的形式在lunch talk里面讲一讲的,我之前已经跟电子学方面的人士讨论过,意见是,虽然不肯定是否有厂家这样做(其实现在除了那几间生产解码芯片的厂子之外,我这边真的没什么人再会去研究这方面内容的了,因为都是很成熟的技术了),不过我这里说的方法在理论和实践上都是比较简单,并且效果也满意。我下面的帖子比较详细描述了一下。
最后编辑felixcat
TOP
29#

我把我这个贴子的方案细化一下,希望这个陈述能够让各位更好理解我所说的插值多项式理论对于削减CD格式播放的误差的奇妙功效吧:

先看看最一般的D/A转换示意图:

[upload=jpg]Upload/200411183413481259.jpg[/upload]

实现这种功能的电路的原理简图是这样的(示意图而已,实际的电路要比这个复杂):

[upload=jpg]Upload/200411184434018331.jpg[/upload]

最开始的第一代的CD解码芯片就是用这种方式来直接得出输出信号的。大家看到模拟输出端输出的是锯齿形的信号。实际上,由于CD格式的44100Hz取样频率已经是足够密集,使得那段锯齿形已经足以近似看作是原来那段的光滑曲线。其实假如不是电路等其它硬件技术跟不上,使用这种方式解码的芯片,已经能够得到失真很低的信号的了——但是总会有人不满意的,所以后来出现了下面将要说的多项式插值技术。

首先我们说,实际上上述方式,其实也是一种多项式插值技术——不要奇怪,这是“一次多项式插值”,大家请看下图,我把各个数据点用直线连接起来(因为直线太短了,看上去像曲线):

[upload=jpg]Upload/200411183553547456.jpg[/upload]

我们从图中可以看到,那些数据点,除了可以看作是模拟原始曲线之外,也可以看作是模拟那一条条黑色的直线段,对吧?直线就是一次多项式。这个时候:

在某一点x的输出总误差 = 锯齿形折线与黑色直线段的误差(在点x) + 黑色直线段跟原始信号曲线的误差(在点x)

可能有朋友会问,为什么不直接用电路输出那条黑色的直线呢?那样岂不误差更小?这个的确可以直接输出的,并且误差也更小(所以千万不要笑话我头一帖开头所说的那种方法啊)。不过可能在播放运算的时候,可能还会采取把锯齿形波形“磨滑”的工序——这个我真的不清楚,请知道详情的朋友指教。不管怎样,我们看得出,不管是输出哪条曲线作为结果,它们的误差都是属于同一数量级的。
最后编辑felixcat
TOP
30#

monom 在 2004-11-18 17:02:33 发表的内容
小声地问一句:CD格式为什么不像电脑光盘那样加入校验码呢?


呵呵问得好。CD格式是带有校验码的。从得出数码信号开始说起,将进行如下几步操作(图片来自www.stor-age.com):

  第一步首先生成一个帧的原始数据,24字节,我们可以称之为初始帧(在相关标准中则叫Frame-1,简称F1)

  第二步就是加入CIRC编码,共8字节,称为校验帧(在相关标准中则叫Frame-2,简称F2),总字节数为32个。我们常说的,所谓的C1与C2纠错码就是在这一阶段加进去的,C1与C2的C就是CIRC编码的缩写。

第三步就是加入控制码,一字节,称为数据帧(在相关标准中则叫Frame-3,简称F3),此时帧的容量为33字节。

下图比较概括地标明了这几步的关系:

[upload=jpg]Upload/2004111817221527505.jpg[/upload]

对于电脑CD-Rom光盘,由于要求数据更加不能有错(否则严重的话会导致破坏电脑操作系统),所以在C1,C2的基础上,还会增加一种称为RSPC的编码(Reed-Solomon Product-like Code,理德-所罗门乘积编码)。通俗来讲CD编码起码有2层保障,而CD-Rom则起码有三层保障。
TOP
发新话题 回复该主题