HIFI日记:HQPlayer Dither设置详解(25.05.02)

一、HQPlayer Dithers 详细介绍

在数字音频处理中,当降低位深(例如从 24-bit 转换为 16-bit)时,会产生量化噪声。Dither(抖动)和 Noise Shaping(噪声整形)是处理这些量化噪声的两种主要技术。HQPlayer中,将这两个内容整合到Dither选项中。本介绍会伴随HQPlayer的发展,即时更新。HQPlayer系列教程请点我查阅

1、Noise Shaping (噪声整形): 利用反馈机制将量化噪声的能量推向人耳不敏感的频率区域(通常是超声波频率),从而在可听范围内降低噪声水平。阶数越高,在可听范围内的噪声抑制通常越好,但超声波区域的噪声峰值可能越高,且对 CPU 资源消耗越大。

2、Dither (抖动): 通过添加少量随机噪声来打散量化误差,使其不再与信号相关联,从而消除低电平信号的失真和量化噪声的调制效应。

另外既然是科普,那么BLOG主就展开聊聊。因为玩HQPlayer的朋友不可能降精度设置,相信大部分人HQPlayer设置应该都是16bit升32bit或者24bit升32bit。理论上来讲,向上取样精度是不会产生新的量化噪声的。当将 16-bit 音频提升到 32-bit 时,原始的 16-bit 数据会被放入 32-bit 的容器中,通常是将其值左移,并在低位填充零。这个过程不会丢失任何信息,也不会引入新的量化误差。打个比方,有一张分辨率较低的照片(比如 16 位色),将其保存为支持更高颜色深度(比如 32 位真彩色)的格式。这张照片并不会因此变得更清晰或颜色更多,它只是以一种能够容纳更多颜色的格式存储了原始的 16 色信息。没有丢失颜色信息,所以不需要处理因颜色减少而产生的“颜色噪声”。因此,从 16-bit 升到 32-bit 的过程本身不需要 Dither 或 Noise Shaping。原始 16-bit 音频中固有的量化噪声仍然存在,但提升位深的操作本身不会增加新的噪声。

但是,相信不少朋友都发现,即使是16bit升频到32bit,设置不同的dither选项,还是会有声音的变化。这根上面的理论是相违背的。这里面有几个可能:

1、HQPlayer 的内部处理精度远高于 32-bit:
HQPlayer 在进行升采样、滤波、音量调整等所有内部处理时,通常使用的是非常高的精度,例如 64-bit 浮点数。这是为了在复杂的计算过程中最大程度地减少误差累积。当 16-bit 音频输入 HQPlayer 时,它首先被转换为这个高精度的内部格式(例如 64-bit 浮点)。原始 16-bit 音频固有的量化噪声现在也以高精度表示在这个 64-bit 容器中。最终 HQPlayer 输出是内部的 64-bit 浮点精度转换到最终选择的输出位深(比如32bit)的过程。(无法证实,只是猜测,期待大佬补充。)

2、即使输出是 32-bit,Dither/Noise Shaping 仍然会影响噪声特性:
虽然 32-bit 的位深(无论是 32-bit 整数还是 32-bit 浮点)已经远远超过了原始 16-bit/24-bit 的分辨率,并且也超过了 64-bit 浮点数的大部分有效精度(64-bit 浮点大约有 24-bit 的有效精度),理论上从 64-bit 浮点转换到 32-bit 整型或浮点时,不应该产生新的、需要 Dither 来掩盖的截断失真。然而,Dither 和 Noise Shaping 的作用不仅仅是防止截断失真,它们还会影响最终输出信号的噪声特性

  • Noise Shaping: Noise Shaping 的核心是将噪声能量在频率上进行重新分布。即使输出到 32-bit,这个 Shaper 仍然会尝试将任何低电平的噪声(包括原始 16-bit 音频中的固有噪声、HQPlayer 内部处理过程中产生的微小计算噪声等)推向高频。不同的 Noise Shaper 会产生不同的噪声频谱曲线。虽然在 32-bit 输出下,您有足够的“空间”来表示这些低电平噪声而不会产生截断失真,但 Shaper 的作用会改变这些噪声在频率上的分布方式。这种噪声频谱的变化,即使噪声总量没有显著改变,也可能在听感上产生差异。例如,将噪声推到超声波区域可能会让可听范围内的背景显得更“黑”,或者超声波区域的噪声峰值可能会对后续设备的表现产生微妙影响。
  • Dither: Dither 是通过添加随机噪声来打散量化误差。即使在理论上不需要 Dither 来防止 64-bit 浮点到 32-bit 输出的截断失真,但如果仍然设置 Dither 选项(如 TPDF 或 Gauss1),HQPlayer 仍然会添加这种随机噪声到最终的 32-bit 输出中。添加的随机噪声会改变最终输出信号的噪声底,用随机噪声取代或叠加在原始的量化噪声和处理噪声上。不同的 Dither 类型添加的噪声特性也不同。这种噪声底的变化是直接可听的,即使它不是为了掩盖截断失真。一些人甚至认为,即使在高位深下,添加少量 Dither 也能让声音听起来更顺滑或更自然。

二、Noise Shapers (噪声整形器)

  1. NS1:
    • 特点: 这是最简单的一阶 (1st-order) 噪声整形器。它的噪声整形曲线非常基础,只能将少量噪声推向高频,效果不明显且不平滑,正如您所描述的,有点“撞墙”的感觉。
    • 适用场景: 不推荐用于任何正常的音频播放或输出场景。其性能远不如其他选项。主要用于技术测试或作为对比其他更高级 Shaper 的基准。
  2. NS4:
    • 特点: 这是一个四阶 (4th-order) 噪声整形器。它通过四级处理将量化噪声能量从低频区域转移到更高的频率。相比 NS1,它提供了更有效的噪声整形。
    • 适用场景: 这个 Shaper 的噪声整形曲线通常被优化用于中等高采样率,如 88.2 kHz 和 96 kHz。在这些频率下,它能在可听范围提供不错的噪声抑制,同时其超声波噪声特性也比较适合这些带宽。虽然理论上也可用于其他频率,但在 88.2/96 kHz 下通常表现最佳。
  3. NS5:
    • 特点: 这是一个五阶 (5th-order) 噪声整形器。它比 NS4 更激进,旨在将更多的量化噪声能量(可能达到 40dB 或更多相对于未整形噪声)从可听范围推到非常高的超声波频率。
    • 适用场景: 专为非常高的输出采样率设计,如 352.8 kHz、384 kHz 以及更高的 DXD 或 DSD 频率。在这些极高频率下,有足够的“空间”在可听范围之外容纳被推高的噪声峰值,并且这些频率通常与能够处理高带宽的硬件搭配使用。不适合用于标准或中等采样率,因为超声波噪声峰值可能过于接近可听范围或过于集中。
  4. NS9:
    • 特点: 这是一个九阶 (9th-order) 噪声整形器。它的阶数比 NS5 更高,意味着噪声整形曲线在可听范围末端上升得更陡峭,从而在可听范围内提供更好的噪声抑制。它通常被设计得比 NS5 在超声波区域的噪声峰值更平滑或更易于管理,尽管阶数更高。您描述的“更加圆滑”可能指的就是其超声波噪声特性。
    • 适用场景: 这个 Shaper 特别适用于中高采样率,如 176.4 kHz 和 192 kHz。它在这些频率下提供了比 NS4 更强的噪声整形效果,同时其特性也适合这些频率的带宽。
  5. LNS15:
    • 特点: 这是一个非常高阶的噪声整形器,通常是十五阶 (15th-order)。它是 HQPlayer 中提供的阶数最高的 Shaper 之一。高阶意味着它能够将绝大部分量化噪声能量从可听频率范围推到极高的超声波频率。在可听范围内,它的噪声抑制效果通常是所有 Shaper 中最强的。
    • 适用场景: 主要设计用于极高的输出采样率,例如 352.8 kHz, 384 kHz, 705.6 kHz, 768 kHz,以及 DSD 输出。在这些极高频率下,有足够的带宽来容纳超声波噪声峰值,并且这些频率通常与能够处理高带宽的硬件搭配使用。不适合用于标准或中等采样率(如 44.1/48/88.2/96/176.4/192 kHz),因为超声波噪声峰值可能离可听范围太近或过于集中,对硬件要求极高。
    • 特别注意: 极高阶的噪声整形器会在超声波区域产生非常高且集中的噪声峰值。这要求你的 DAC 和后续音频设备(如放大器)能够非常干净地处理这些超声波能量,而不会产生不良影响(例如,超声波可能导致 DAC 或放大器过载、产生互调失真或限制瞬态响应)。
  6. shaped:
    • 特点: shaped是一个相对通用的噪声整形选项。它通常代表一种经典或标准的噪声整形曲线,可能不是像 NS 系列那样针对特定高采样率优化的激进曲线,而更偏向于为标准 CD 分辨率(16-bit)和采样率(44.1/48 kHz)设计的噪声整形。它会将一部分噪声推向高频,但通常不如高阶 NS 选项那样激进。
    • 适用场景: 可以作为一种通用的噪声整形选项,适用于多种采样率,特别是当你不确定选择哪个 NS 选项时,或者偏好一种更传统、不那么激进的噪声整形方式时。它与 TPDF 或 Gauss1 搭配使用,是实现有噪声整形的 16-bit 输出的常用组合,尤其适合 44.1 kHz 和 48 kHz 输出。
  7. none:
    • 特点: 选择none作为Noise Shaper意味着不应用任何噪声整形,那么位深降低过程将是简单的截断 (Truncation),截断是直接丢弃最低位的数字信息。
    • 适用场景: 绝对不推荐用于任何正常的音频播放或输出场景。它仅用于技术测试,例如故意听截断失真是什么样的,或者在某些极特殊情况下,你明确知道后续设备会进行处理,但即便如此,通常也应该应用 Dither。
    • 特别注意: none不是某些老烧口中的不做处理就是最原始、最HIFI的输出,请尊重数字技术。

三、Dithers (抖动)

  1. RPDF (Rectangular Probability Density Function):
    • 特点: 这是最简单的 Dither 类型,添加的是均匀分布的随机噪声(想象掷一个均匀的骰子)。它能有效打散量化误差,但添加的噪声能量相对较高,听起来像白噪音。
    • 适用场景: 主要用于技术测试或作为最基础的选项。在高质量音频应用中基本不推荐,因为有更好的选择,它会增加可听范围内的噪声。
  2. TPDF (Triangular Probability Density Function):
    • 特点: 这是行业标准的 Dither 类型,添加的是三角分布的随机噪声(想象掷两个均匀的骰子并将结果相加)。TPDF 比 RPDF 添加的噪声能量更低,听起来更自然,并且能非常有效地打散量化误差。它的 CPU 消耗非常低。
    • 适用场景: 适用于任何场景和任何采样率。由于其低 CPU 消耗和良好的效果,它是 44.1 kHz 和 48 kHz 等标准采样率的优秀默认选项,也是许多专业音频软件中推荐的 Dither 类型。
  3. Gauss1 (Gaussian Probability Density Function):
    • 特点: 这是一种使用高斯(正态)分布随机噪声的 Dither。理论上,高斯 Dither 被认为比 TPDF 更优越,因为它产生的噪声与信号的相关性更低,可能带来更少的调制失真。但是,它需要消耗更多的 CPU 资源。
    • 适用场景: 适用于所有场景和采样率。它提供了理论上更好的性能,是追求极致效果时的选择。

留言

您的邮箱地址不会被公开。 必填项已用 * 标注