录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

[转贴] 软件的内部处理精度(个人感觉挺好的)

( 41 )
 
[收藏]
-  第 1 页  -

13856
#1 10-2-11 23:18

软件的内部处理精度(个人感觉挺好的)

音频教学网 磊磊原创

每一个从事声音制作的人,都非常重视声音从录制到混音再到成品的每一个过程。都会尽可能的使用更加高级昂贵的设备。以充分保证声音的品质。

    那么,我们能够改善的环节都有哪些呢?好的话筒,好的话放,好的效果器,好的ad/da转换器,好的监听音箱,等等……既然我们讨论的是软件,那么在这所有的过程当中,我们忽略了什么呢?那就是软件。软件对于我们,早已经不仅仅是起到一个多轨录音机的作用了。而在更大的程度上代替了传统的调音台的作用。

    业界几乎有一个惯例,就是用数字工作站(软件)录音,然后分轨输出到模拟调音台上面混音。但是这样做是不是真的有意义呢?去年,曾经有过一次讨论,就是到底软件能不能代替传统的模拟调音台。大家的意见似乎是偏向于软件还不能代替调音台。归根结底,原因就是因为音质问题。大家总是觉得,经过软件mix出来的声音,总是不如硬件调音台出来的好。到底是不是真的这样呢?我将会在这篇文章里面给大家一个答案。

    首先,我们要考虑的就是,到底软件在混音的时候,对声音都干了些什么。有没有哪些过程是我们所无法知道的呢?答案是肯定的。作为用户的我们,无法知道软件的处理核心以及原理到底是什么。

    人们在评价硬件设备的时候,一个很关键的参考就是主观听感。现在几乎任何一款专业声卡,都可以做到近乎完美的平直频响曲线,但是,为什么还有那么多的优秀的ad/da转换器在生产并且销售呢?答案就是主观听感!声音制作的关键就是要好听。而不是什么频响曲线的限制。所以,很多著名的ad/da转换器的频响曲线并不平直。但是声音很好听。所以主观听感成为了评判设备的一个重要依据。

    在国外,曾经有人做过类似的主观听觉测试。集中了一批著名的制作人和录音师(Digidesign在发布了Pro Tools HD之后就曾经做过这样的测试),让他们分辨从工作站里面出来的声音和从顶级模拟调音台出来的声音。结果发现,没有人能够准确地分辨出来。从这个角度来说,软件录音的音质是完全没有问题的。但是,如果用软件混音,问题就会出现了。大家很早就发现了,用软件混音出来的声音层次感以及细节的重现,远远不如用模拟调音台。这是为什么呢?这就涉及到软件的处理精度了。

    在这个讨论当中,我们首先假定你的一切外部硬件设备都是无可挑剔的,令人满意的。接下来,我们就要去探索软件在混音的过程当中,到底对声音作了些什么。

    目前主流的混音软件的处理精度有24bit,32bit,48bit等等。Cubase SX 2。02以后支持32bit处理精度(之前是24bit);Samplitude 10自从我所知道的4.7版本就已经支持了32bit;Sonar在4.01版本的时候开始支持了32bit(之前是24bit);Logic Audio使用32bit处理;Pro Tools Mix以及Pro Tools LE使用32bit处理;Pro Tools HD采用48bit处理。那么不同的处理精度会带来什么样不同的结果呢?

    我们首先来看一下一个具有24bit处理精度的数字工作站所能够具有的性能。一个24bit精度的数字工作站能够传送高达146db动态范围的声音信号。这样的动态范围已经超越了当今市场上所能买到的最好的ad/da转换器的动态范围。

    为了简要地说明bit数目与信噪比(动态范围)的关系,我给大家说明一下计算公式:在没有使用抖晃处理(dither)的系统当中,信噪比=bit数目X 6.02 +1.76db。举例来说,24bit无抖晃处理的数字录音系统,能够记录146db的动态范围。我们通常会简化为:1bit=6db。

    在电平逐渐降低的时候,声音的失真就会变得明显。在电平非常低的时候,声音的失真会变得很明显。为了减少这种失真,我们使用一种叫做抖晃处理(dither)的工具。这种处理为声音信号加入少量的噪声,使得低电平信号变得更加活跃,这样就可以记录下更多的声音细节信息。

    在使用TPDF(triangular probability distribution function)抖晃处理的系统当中,信噪比=bit数目X 6.02 - 3db。一个24bit的,使用TPDF抖晃处理的数字录音系统可以最多记录141.5db的动态范围。比不使用dither减少了4.5db。但是如果不使用抖晃处理又会如何呢?大家知道,在数字音频的电平降低的时候,会导致失真度的增加,电平越低,失真越严重!我们都喜欢透明的清晰的声音,但是这样的声音是以丰富的声音细节作为基础的,而数字声音电平降低所导致的失真却丢失了大量的声音细节。使得声音不再透明,不再清晰。早期的CD产品就曾经因此饱受贬抑。并且是数字声音得到了“冰冷”的评价。尤其是那个时候的CD唱片的平均电平远远小于现在的CD唱片。而如果正确地使用了dither处理,那么这种数字失真可以完全被剔出。而且我们依然能得到140db的声音动态。所以,由于使用抖晃处理所损失的那4.5db是完全值得的。

    那么24bit的处理精度够不够用呢?那要看你干什么了。如果你仅仅是用来录制和回放单轨的声音,并且这个声音的动态范围不超过140db,那肯定是够用了。那么如果你要使用24bit的数字系统进行多轨混音呢?并且不能让总电平超过0db。还够不够呢?

    这里,就要说到现在我们在使用的调音台的布局原理了。现在我们所使用的调音台都是使用加法运算的。也就是说,如果你将多轨完全不相同的信号以相同电平混合在一起,轨数枚增加一倍(1轨增加到两轨,2轨增加到4轨,4轨增加到8轨……),总电平将会提升3db。如果你将多轨完全相同的信号以相同电平混合在一起,轨数枚增加一倍,总电平将会提升6db。那些使用多个话筒录音得到的信号,比如鼓组,钢琴等等,轨数加倍,电平的提升会不固定在3到6db之间。

    我们假设,将64轨完全不相同的0db电平的信号混合在一起,总电平将会是+18db。为了不让声音过载,我们必须把每一轨的推子拉下来18db。那么我们已经知道了,1bit=6db。那么每一轨的推子拉下来18db将会使所有本来24bit的声音变成了21bit的声音。

    那么21bit的声音是不是就无法接受呢?那也要看你想干什么了。目前绝大部分的ad/da转换器只能达到120db的信噪比,而没有经过抖晃处理的21bit的声音能够达到127.76db的动态范围,听起来好像也还可以。但是,事情不是这么简单的。因为丢失了bit数,不仅仅损失了动态范围,而且还损失了非常珍贵的声音细节。而且,当你把这64轨的声音混合到一起的时候,这64轨声音由于丢失细节所产生的失真也会被加到一起。这样看来,情况好像就不是很乐观了。

    于是,产生了32bit的处理精度。为什么是32bit呢?我们可以设想,一个128轨的调音台(目前超过64轨的分轨比比皆是),将128轨完全不相同的0db电平的信号混合在一起,为了不让总电平过载,我们需要最少7bit的空间,来承受超出的那部分电平。而且,几乎所有的调音台推子的最高电平都不会是0db,大部分都是+6db。于是,我们需要再增加1bit,于是,就成为了32bit处理。这样,我们就不用担心声音会破掉了。内部处理是不会破的。如果总推子上的电平超过了0db,只要把总推子拉下来就可以了。

    这样看来,好像32bit处理已经足够了。到底是不是这样呢?我来问大家一个问题,答案就昭然若揭了!谁在混音当中能够让所有的推子都保持在0db或者更高?也就是说,在一个最高电平是+6db的调音台上,每一轨之间的音量差异最多也就能有6db。这肯定不行!所以,我们还要在必要的时候把推子往下拉,那么往下拉推子,就又会丢失bit数,并且损失声音细节!看来32bit还是不太够。

    那么,到底多高的处理精度才够呢?这样看来,我们不但要在0db以上增加bit数,还要在0db以下增加bit数,用来保证即使把推子拉下来,也不会损失声音的细节!那么,我们需要在0db以下增加多少bit数呢?通常,当我们在混音当中把推子拉到-30db以下的时候,声音就几乎听不到了。那么,也就是说,我们最少还要增加5bit处理精度,达到37bit。那么把推子拉到-30db以下,声音真的完全听不到了吗?不会的。那么到底多少才够用呢?

    当当当当!Pro Tools HD采用了48bit处理精度,在0db以下加上了16bit,也就是说,当你把推子拉到-96db的时候,你的声音依然是24bit的。这样,就彻底解决了以往数字调音台在降低电平的时候损失声音细节的问题了!当这个问题被解决以后,模拟调音台还有什么优势呢?当然,有人觉得模拟调音台在主观听觉上要好听一些,没关系,那你可以混音完毕以后,在顶级模拟调音台上过一遍,加上你认为好听的声染,就可以了。

    而且,现在超过48khz采样频率的声音,更加完美地记录了声音的复杂的相位信息。使得模拟调音台混音看来没有太多的必要了。当然,如果你迷恋模拟调音台的声音,也没关系,买一条顶级模拟调音台的channel,也不过几万块,混好的声音从上面过一下,就可以了,总好过买整整一台顶级模拟调音台吧?

    据我目前所掌握的消息,除了Pro Tools HD以外,还有一部分声卡的硬件dsp处理超过了32bit精度。比如Apogee的声卡,同样是48bit内部处理。只不过没有那么多轨就是了。还有rme的全部声卡,都采用40bit内部处理,可以让你把推子拉到-48db而不损失声音细节!

    最后说一句,大家别打我,我不是给Digidesign做广告,只是借助这个产品为大家讲述不同的内部处理精度到底能起到什么样的作用!还有一些软件,播放声音的时候明显靓丽许多,比如Logic Audio,能够明显感觉到高频部分比原来的声音更加亮丽!就是因为它采用这样的方式来弥补32bit处理所带来的不足。通过增加高频带来声音更多的细节感。

    关于Pro Tools HD是如何在dsp运算当中做到48bit处理的,以后有机会再给大家讲解!


音频教学网 磊磊原创


=====================================================================================================================


感觉上面的文章很不错,个人再提一些疑问:
上问说到,1bit=6db,那对于处理一个以0.25db的步进,软件是否会造成失真呢?例如一个24bit的音频推子拉下3db,用25bit来表达,是否会造成失真?
如果要做到真正0.25db无损,每6db内要用几个bit来表达呢?

7212
#2 10-2-11 23:59
有了抖动处理~为什么还要加大BIT呢?

抖动处理解决不了问题??

我觉得,这个文章对录音还是混音概念有点模糊~~有时候不知道他说的是录的时候还是混的时候~~~


~~~~~

[ 本帖最后由 小野成志 于 10-2-12 00:01 编辑 ]

239
#3 10-2-12 00:02
学习了!O(∩_∩)O哈!

7212
#4 10-2-12 00:07
    我们假设,将64轨完全不相同的0db电平的信号混合在一起,总电平将会是+18db。为了不让声音过载,我们必须把每一轨的推子拉下来18db。


这句话怎么理解?????吧每一轨都下拉18DB?

7212
#5 10-2-12 00:10
而且,现在超过48khz采样频率的声音,更加完美地记录了声音的复杂的相位信息。使得模拟调音台混音看来没有太多的必要了。当然,如果你迷恋模拟调音台的声音,也没关系,买一条顶级模拟调音台的channel,也不过几万块,混好的声音从上面过一下,就可以了,总好过买整整一台顶级模拟调音台吧?


这里为什么忽然又提到了48KHZ?????

97
#6 10-2-12 00:19
你玩过模拟吗你听过那仲声音吗胡说

13856
#7 10-2-12 00:24

回复 小野成志 在 #4 的 pid=2518007 的贴子

2轨+3,4轨道+6,8轨道+9,16轨+12,32轨道+15,64轨+18db

339
#8 10-2-12 00:26
学习了,但还是不太明白。

7212
#9 10-2-12 00:34

回复 小野成志 在 #4 的 pid=2518007 的贴子

那位什么要吧每一轨都下拉18DB?????

13667
#10 10-2-12 01:08
SAW 內部精度在10多年前已是 64BIT了....

這些數字遊戲知道一下便算, 不用太著迷

..

[ 本帖最后由 himhui 于 10-2-12 01:10 编辑 ]

5395
#11 10-2-12 01:20
这篇文章对32bit和48bit的对比有严重的误导,目前很多DAW使用的都是32bit浮点型,
动态范围比48bit大10多倍,32bit干不过48bit的真正原因并不因为32<48,而是在于浮点型的数值越大精度越差!
,而且由于使用浮点型的DAW最大可以拥有1000多db的动态,很多人疯狂地加单轨电平,毫不顾忌声音在效果器
里,插件里,mixer里是不是已经红了。虽然浮点型夸张的动态可以保证不劈(其实在非HD的DAW里很明显,明明效果
器或者音源的输出已经红了,可声音却没有劈),但要记得数值越大精度越低,单轨音量巨大而总推子放很小的最终结果就是
一片浑浊。因为你总输出不可能是32bit的,只能是24或者16的。

浮点型的优势在于易于计算和设计程序,你要设计个牛逼的定点100bit效果器?好,首先你在C++里就找不到
100bit的整形,好,你用struct设计一个100bit,那么在发明效果器之前你得定义你这个struct的加减乘除这些最基础的数学运算,定义的好还行,定义不好会大大降低运算效率。不定义也行,您去汇编环境下数01去吧。。好不容易编完了,好!问题又出现了,VST,AU和RTAS的SDK的输入输出借口全部是浮点型的,你怎么把你这个定点性转成浮点型?
效率够不够?是不是得不偿失?这问题解决了,好,算法呢?100bit内你的每个数据应该占多少bit?这不能想当然,一个2000个点的FFT就瞬间让你可怜的100bit数据溢出(fft的每一段相当于把2000个采样点的数值乘以一个系数然后相加)。好,这问题也搞定了,太好了!大功告成了?早着呢!程序界面你做不做?做界面得用个Juce吧(水果,马头,UAD等等公司都用这玩意做界面),好!Juce里的推子,旋钮类的数值统统是浮点型,你发现你再次崩溃。。。。更崩溃的是每家和每家的定点性规则都不同,HD里是这样,在硬件处理器里又是另一样,而浮点都是一样的。


另外文章对抖动的解释也不准确,抖动处理添加的噪音不是为了让声音变得“细节”,
而是用我们假设用10进制来模拟一下高bit转低bit时音频发生的事情,假设我们的数据是5.7,8.9,4.4和3.4,那么
假设我降低了bit,只能记录整数位,我得到的数据就是:5,8,4和3,你会注意到,所有的小数位都被丢弃了,这相当于
计算机在原始信号上叠加了一个:-0.7,-0.9,-0.4,-0.4这一组数据,而所谓量化噪音就是这一组很小的,被丢弃的量
引起的,抖动处理的真正意义在于对这个量化噪音添加一组反向的量化噪音,当然我们不可能知道我们到底丢了什么(如果知道,直接加上就完了),但我们可以设计一个抖动算法让噪音减小,抖动算法很复杂咱们不妨说个最简单的:对原始信号添加一个:1,1,1,1的信号,这样信号会变成:6,9,5,4,这样量化噪音就编程了:-0.3,-0.1,-0.6,-0.6怎么样?噪音比原来小吧?





解答楼主的提问:
1.bit数值所代表的dB值并不是直接对应的。bit值取log*20才是dB值。学过log的都知道线性地*法等于log上的+法,
比如10的dB=log10*20=20,而20的dB=log10*20+log2*20,这个log2*20大概得6,所以,实际上所谓+6dB,意味着
bit值大了一倍,值原来是1.6,那加了6dB则值变为3.2。所以,所谓“1bit=6dB”,并不是说在-10dB和-16dB就不能存在-11dB,-12dB,而是一种计算动态范围的方法,在音频算法的设计里都是不按dB考虑问题的,也就是说
都是把dB转成数再处理的,而不是先把数转成dB再计算。
转成dB计算再转回来播放计算量巨大,当采样率为44100时,等于你让电脑在1秒钟内做44100次取log运算,44100次平方运算。
这只是一条单声道……

举个例子,在32bit浮点型中1是0dB,那么我加0.1db就意味着我要把0.1dB先变为线性值=
1.0011519.....再用1*1.0011519=1.0011519。只要线性精度够,dB的精度也够,换算一下,
分贝变化精度的最小值是:log(realmin+1)*20。其中“realmin”代表着在当前bit率下的非0最小正实数。
定点形较大,浮点型的话……保证够你用。。

[ 本帖最后由 门子 于 10-2-12 01:36 编辑 ]
观众反应
:精辟 虽然不能全懂 但是受益匪浅啊

8024
#12 10-2-12 01:52
门子兄对于bit和电平的关系解释的很清楚了。
楼主引用文章中还有一问题是对电平dB的少许错误认识。我们可以很简单的理解,内部处理精度是决定内部Summing总线的动态范围,数值越大,所能记录的有效信息越多。

浮点算法的精度和算法有关,但在summing功能上,天生就不如定点算法精确以及快速。但在其他处理算法中(比如滤波),定点算法远不如浮点算法更精确。
观众反应
:两位高手出招了!

13856
#13 10-2-12 02:08
谢谢楼上的回复~!看来我还是要仔细研究一下数学才行.....门子的意思是不是浮点的动态范围比较大但是误差也大,定点动态小但比较准确?
另外我想问问,如果我要summing n个24bit的音频(不留+6db的余量,不做level处理,纯summing),那是不是我用24+int(log2*n)个bit就能无损的summing?
例如8轨道就是27bit,128轨道就需要31bit(+6db head的话刚好32bit)?
再问问那导致音质损失的关键是不是在于level的处理(不算FFT运算量大的情况下),浮点不准确,定点需要高bit?

4216
#14 10-2-12 06:37
楼主转的这篇文章好像是那个传说中的李王手写的。

6370
#15 10-2-12 22:00
这篇文章怎么就变成了音频教学网的原创了?

这明明是音频应用论坛早在2005年的一个帖子,而且有相当大的篇幅争论。

可以看这里,从回帖可以了解一些东西:
http://www.audiobar.net/viewthre ... ghlight=%2Bkinghand
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索