作者a85115230 (动感飞人)
看板DigitalMusic
标题[闲聊] 浅谈 32bit floating 与它的盲点、优缺点
时间Fri Nov 20 19:44:34 2015
图文好读版/
http://a85115230.pixnet.net/blog/post/377087863
当每次谈到 Dynamic range 就一定常提到 16bit 与 24bit 动态范围的差异,然而
在之前上一篇文章当中稍微提到了 32bit floating point,没想到就收到好多私讯的询
问有关 32bit floating 的问题,说哪套 DAW 也有这选择,这是什麽意思呢?这能不能
使用呢?这差异在哪呢?
今天特别写篇短短文章来聊一下,相较於上篇的内容这篇谈的较深些,原因是因为这
之间牵扯到计算机演算的概念,但是士昕还是试着用比较简单和白话的方式来讨论,希望
能够让大家了解。
为何是 -18dBFS?
如果你还没看前一篇录音介绍文章"录好、录满?如何设置数位系统中的录音音量
? ”,就请先拨点时间回头复习阅读一下吧!然而,许多阅读过後的读者询问,为什麽
是 -18dBFS?
在 VU 表头上接近 0VU 的数值对应到 EBU Digital 的数值正是 -18dBFS,这正是一
个不同表头与不同系统的数值对应表而以,因此当你提出为何不是接近 0 时,其实最先
需要解析的,是当下你工作所面对的系统类型与何样的表头是什麽。
zb-reflevel-analogdigital
图/Reference Levels - Analog and Digital system
虽然说在声音的领域里,并没有一个一定该怎麽做才能得到好声音的结果,只要最终
得取到的声音素材是好听好处理好後制的,即便录制在 -12dBFS 左右其实也不会被抓去
关的,只要後续处理声音素材的混音师能够处理的话…… 但在一般声音工程的认知当中
, -18dBFS 的确会是一个不错的开始录音方式。
附注阅读: 录好、录满?如何设置数位系统中的录音音量?
为何争论高 Bit 取样位元?
在早期或者是较初阶的录音器材使用上,其实还是都有着非常高的 Noise floor 声
音底噪,因此在那个环境下进行录音的下意识动作,往往会试图拉高录音的声音讯号,在
不破音的状况下会尝试想要盖掉声音底噪,这样的行为通常会连带影响後续处理时的
Headroom 的空间。在数位录音的世界里以 1bit 容许范围约 6dB 的理论值来计算,
16bit 为 96dB 容许范围, 24bit 为 144dB 容许范围,32bit Fixed point 就为 192dB
。这个我们已经听烂的公式让我们得知越大的 bit depth 不仅增加了声音的取样解析度
,同时也增加了声音动态的范围。因此开发高 Bit 数取样的争论是一直都存在的。
附注:在此先不谈及理论值的动态范围在实际上器材所能实现的数值为何。
Fixed point 定点数运算与 Floating point 浮点运算
在数位讯号的运算组合过程当中可以细分为两类,分别是 Fixed point 定点数运算
与 Floating point 浮点运算。
由以下图的 Fixed point 定点数运算来看,可以发现 24bit 的 ADC(Analog to
Digital Converter)所转换进来的声音讯号,在 32bit 的 Fixed point environment
里拥有着非常大的 Headroom 空间与极低的 Noise floor 声音底噪,因此以理论值来说
,32bit Fixed point 的确是可以供给声音一个更棒的空间。
32bit floating point-02
在 32bit Floating point 浮点运算的状况下,理论值的动态范围增广为一个无法置
信的 1680dB 这个夸张,一辈子都不太可能会接触到的动态。在 24bit 的入口後 32bit
与 24bit 之间的 8bit 差异值成为了一个浮动悬浮的盖子,这个盖子会随着声音讯号在
整个动态范围当中来向上或向下移动,最终再从 24bit 出口输出。
32bit floating point-03
目前以现今技术而言,声音工程当中较常见的方式来辨别两种技术为「软硬体之分」
一般来说,Fixed point 定点运算较常使用在声音讯号的转换器 AD/DA 核心架构运
算,而 Floating point 浮点运算较常被架构在各厂牌的 DAW 的选择运算基础上。
Floating point 在录上工程上的盲点与优缺点
优点:
一, Pro Tools 10 以上的软体在 Floating point 浮点运算的环境下,能够较有效
的避免使用 AudioSuite 即时运算效果器运算过程当中造成的破音与不必要的杂音。
二,在 32bit float 的运算环境里「理论」上,的确是能够在处理声讯阶段拥有
1680dB 这个夸张 headroom 的空间(注意,是处理而不是录制)
附注:这个理论值 ,大部份的人类一辈子都不太可能会接触到的声音极限......
缺点:
一,在运算上极度吃资源,容易造成电脑过度负担。
如果搭配的 Sampling 取样位元为 96kHz 或更高就需要极度考量电脑本身的效
能,否则将造成效能不足的窘态。
二,占据太大电脑的容量空间。
以容量的计算来看,一分钟的双声道 16bit / 44.1kHz 的 5 分钟 CD 音质曲目
而言约 50MB,而 24bit / 48kHz 的5 分钟录音室基本录音品质约为 82 MB,而 32bit
float / 48kHz 的 5 分钟为 109MB 左右。想像一下,整个 Pro Tools session 里的所
有声音档,将会储存在 Audio file 里,再加上现今的专案动不动就都是 50, 60 轨以上
,如果是开设在 32bit float 的环境下,专案档的大小随便计算就为就好几十 GB 起跳
,不仅对於电脑容量空间的占据,也容易造成拖垮电脑效能的原因之一。
盲点:
一,以目前全世界录音室主流的设备而言,即便在 32bit float 环境下工作,所有
声音的进与出都还是建立在 24bit 的运算架构上,换言之,在 32bit float 环境进行声
音工程工作「并不会改变或影响最原先录制的素材声音。」
再者,现今主流的录音工程硬体设备所支援的最高阶等级大部份还是为 24bit
/ 192kHz(过往是有音响厂商试着推出 32bit 的 ADC 机子,但是都是天价。)在硬体与
软体无法达到对等的状态下,使用 32bit floating 也是很难发挥最大功效,也是没有意
义的。(感谢 陈维翰老师 还特别提醒,在声音工程里,还需要考量类比电路理论值与实
际值之间的运算差异。)
二,Bit depth 的选取在 16bit 与 24bit 之间有着极为明显的差异,原因是在於彼
此之间的解析度与动态范围。
但是在 24bit 的环境下,其实动态的范围已经足够,若单纯焦点放置在 24bit
定点运算与 32bit 浮点运算上来谈,士昕其实可以直接的下一个定论,那就是「在
32bit float 环境下录音,其实并没有一个可以很直接明白听见与 24bit 极大差异的地
方。」
三,依据人类物理学,大家都知道人耳能接收的频率范围为 20Hz 至 20kHz,但比较
少被提及的部份为人类平均动态范围约为 130dB。
目前录音工程的实际硬体技术上,碍於类比技术的设计,要做到完全支援的机器
单价都非常昂贵,再加上目前全世界的主流 24bit AD/DA 以实用值而言,绝对足够应付
声音工程的需求。
附注:相关物理反应与人类声学的部份,要是有兴趣的读者可以去翻翻这本书,里面有蛮
详细的物理与声学关联性,但… 是英文only…… Physics and Music: The Science of
Musical Sound
physics-and-music-the-science-of-musical-sound-dover-books-on-physics_10809767
图/Physics and Music: The Science of Musical Sound
(本来真的只想打一小篇而以说...... )
大概解释了一下何谓 32bit floating point,大家也比较了解我们所熟悉的 16bit
与 24bit 之间的差异,对於一个熟练掌控 dynamic range 的资深录音师来说,在还未拥
有可匹配的硬体问世之前(还要够便宜!)在声音工程上使用 32bit floating point 并
不会改变太多工作习惯与最终结果的差异,在现阶段也是无必要的。
bit12
BAL2-02
延伸阅读:
录好、录满?如何设置数位系统中的录音音量?
录音工程的基础,了解声音讯号流程 Signal Flow!
爵士鼓收音 Lewitt Microphone 麦克风测试
浅谈数位混音工程
Dynamic control,了解你对於音讯在干麻,是一个得到好声音的钥匙。
部落格/
http://a85115230.pixnet.net/blog
粉丝团/
https://www.facebook.com/Balanced.audio.lab/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.60.103.82
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigitalMusic/M.1448019877.A.261.html
1F:推 NormalX: 推,但一般而言 floating system 设计上不是这样移动的呦 11/20 21:40
2F:→ NormalX: 正常浮点是在位元间以8 bits增点增加动态细节 11/20 21:41
3F:→ NormalX: 原po 好像是在讨论 virtual floating的设计 11/20 21:41
在"Floating system"运算,屋顶盖子是怎麽移动,这可能要查一下,但是在Floating
point processing environment里的8bit的确是这样拉扯24bit mantissa浮动的喔。
(而目前PT的32bit float,据我所知,应该的确是模拟的就是了。)
※ 编辑: a85115230 (1.165.112.233), 11/20/2015 22:09:22
4F:→ NormalX: 只是32 floating 的设计是在增加动态细节而不是所谓屋顶 11/21 04:19
5F:→ NormalX: 不是一昧地往上加盖动态范围,而是有几个位元中间会插入 11/21 04:19
6F:→ NormalX: 以增加位元记录间的细节,因为dBFS输出不会等於实际放大 11/21 04:20
7F:→ NormalX: 能量,我们以-0 dBFS为放大顶端的话,中间插入点就变为 11/21 04:21
8F:→ NormalX: 动态记录的细节,可以有效解决rounding error 和过多dith 11/21 04:21
9F:→ NormalX: dithering的问题,我不觉得是没意义的,一点浅见 11/21 04:21
10F:→ NormalX: 还是很推有写文章分享! 11/21 04:22
11F:→ a85115230: 哈哈,不会啊,我同意你的说法,动态细节的增加是最棒 11/21 06:39
12F:→ a85115230: 的优势;我其实真的蛮喜欢写这种比较争议性的topic(被 11/21 06:39
13F:→ a85115230: 虐吗XDD)喜欢看每个也是相同专业的人以各种不一样角 11/21 06:39
14F:→ a85115230: 度观看跟大家的意思,我自己也学到很多。 11/21 06:39