|
简单聊一下升频,
后面技术含量偏高,自己选择性看。 先说一个最容易被混用、但其实必须分清的点:
Oversampling 和 Upsampling,真正该分的不是倍率,而是这件事发生在 DAC 里面,还是发生在 DAC 外面。 Oversampling 是 DAC 架构本身的一部分,目的是让后端转换器在物理上能正常工作;
Upsampling 只是送进 DAC 之前的数据前处理,本质上是重新取样。 Upsampling 会改变数据的采样率和时间密度,但不会动 DAC 内部的转换逻辑;
Oversampling 则是直接参与“数值怎么变成电压”这件事。 两者可以同时存在,但角色完全不同。
在工程语境里,把软件升频直接叫 Oversampling,本身就是概念混用。 在 Delta-Sigma DAC 里,Oversampling 不是加分项,而是存在前提。原始 PCM 会先被拉到非常高的采样率,常见是几十倍、上百倍 fs,然后送进 Delta-Sigma Modulator 做噪声整形(Noise Shaping)。
这个模块的目的不是提升解析度,而是把量化误差往可听频段外推。 采样率越高,每个采样点分摊到的误差能量越小,Noise Shaping 才成立。
最后输出的是高速 1-bit 或低 bit-depth 的脉冲流,模拟端只需要一个非常温和的低通滤波器就能把音频拉出来。 这整套 Oversampling 的意义,是简化模拟滤波,而不是为了时间精度;
实际上,在这个架构里,时间精度是被拿去交换频域条件的。 Chord DAVE 走的是完全不同的路线。它既不是 Delta-Sigma,也不是传统 R2R,而是以时间域重建为核心的 Pulse Array 架构。
整个流程可以清楚拆成两个性质完全不同的 Oversampling 阶段。 第一段是把输入提升到 16fs,进入 WTA(Watts Transient Aligned)Filter。
这个阶段关心的不是频响有多平,而是瞬态在时间轴上的位置能不能对齐,也就是采样点之间“原本应该发生什么”。 为了做到这一点,WTA 用的是极长 tap,DAVE 等级是十万级,这在一般 DAC 里几乎看不到。 时间域重建完成后,信号再被推到 2048fs。
这一步已经不是数学重建,而是为了后端 Pulse Array 的工作需求。 Pulse Array 不是 1-bit,而是多位元高速脉冲加权输出,用大量极短、极准的 pulse 去逼近每一个瞬间的电压值。
2048fs 的意义,在于把一个大的阶跃拆成很多细小、可控的时间片。 这一阶段的 Oversampling 完全是为转换器本身服务,和前面的 WTA 在角色上是刻意分离的。 不同软件升频器之间的差异,更多反映的是设计取向,而不只是“好不好听”。Windows SRC 的目标非常明确:低负载、稳定、不出问题。
滤波器设计保守,时间域和频域都不追求极限。 SoX 提供高度可调的 sinc 和多项式滤波,在高质量或离线设置下频域表现很好,但 tap 长度仍然受限于通用 CPU 的算力。 Roon、Audirvana 属于整合型播放器,升频品质取决于内建 SRC 的开放程度,整体取向偏安全、稳定,而不是算法激进。 HQPlayer 是完全另一套思路。 它基本假设算力不是问题,提供超长 tap 的 sinc、poly-sinc、closed-form 滤波,甚至刻意模拟模拟滤波行为。
它的升频不是为了“配合 DAC”,而是试图在 DAC 之前,就把时间轴的信息推到接近连续波形。 这也是为什么 HQPlayer 经常被拿来搭配 NOS 或极简 DAC。 HQPlayer + R2R NOS 的核心逻辑,其实是责任切割。NOS DAC 不做任何数字滤波,阶梯波形和镜像频谱完全摊在桌面上,但它保留了采样点最原始的时间关系。
当你在 DAC 前端用 HQPlayer 做高倍率、长 tap、以时间对齐为优先的升频,相当于把“数字滤波与重建”交给一个几乎不受算力限制的系统。 DAC 只负责一件事:忠实把数值变成电压。
前提只有一个:外部升频的重建质量,必须真的优于 DAC 内建滤波,否则只是把问题放大。 所有数字处理都会产生 Ringing。这不是实现瑕疵,而是理想低通滤波的数学必然,来自 sinc 函数本身。 Pre-ringing 对人耳特别刺耳,因为能量出现在瞬态之前,违反直觉的因果感。 Delta-Sigma 系统通常用高频噪声把它掩盖掉;
NOS 完全不处理,让镜像频谱自然存在;
Chord 用极长 tap 把 Ringing 拉得很远,让时间密度低到不再干扰瞬态;
HQPlayer 则通过 minimum-phase 或混合相位滤波,直接用频域对称性换掉 Pre-ringing。 回到本质Oversampling 从来不是音质保证,而是架构选择;
Upsampling 也不是魔法,而是把责任前移。 真正拉开差距的,不是倍率数字,而是:
在什么阶段、为了什么目的、对时间轴做了什么处理。 这个脉络看清楚,很多听感差异其实都有迹可循。 实际用法结论(HQPlayer + Roon + Roon Ready)在 Roon + HQPlayer + Roon Ready 串流机 这个架构里,
HQPlayer 必须是唯一做升频和滤波的角色,其它全部当数据通道。 升频只用整数倍,不要无脑拉到最高。 可以把这套系统理解成三个人分工:
Roon 管库和点歌;
HQPlayer 负责“算声音”;
Roon Ready 串流机只是快递员。 正确路径是:
Roon → HQPlayer → Roon Ready(NAA 模式)→ DAC 不是 Roon 直接播串流机,也不是串流机自己再升频。 第一步:Roon 里所有 DSP 全关。
不升频、不 Headroom、不 Volume Leveling。
Roon 只负责把原始 44.1k / 48k 数据交给 HQPlayer。 重点在 HQPlayer。 很多人第一次用会犯一个直觉错误:
“DAC 支持 768k,那就全部拉到 768k。” 这是错的。 举个实际例子:
CD 是 44.1k,如果直接拉到 768k,这是非整数倍重采样。
44.1 → 768 不是整数关系,时间轴已经被重算过一次。 HQPlayer 最强的地方不是乱换频率,而是用超长 tap 把原本就对齐的时间关系算得更细。 合理做法是:
44.1k → 176.4 / 352.8 / 705.6
48k → 192 / 384 / 768 全部是整数倍,时间轴干净。 如果你用的是 R2R NOS DAC,本身不做数字滤波,
那你在电脑里用 HQPlayer 把 44.1k 升到 352.8k,相当于先把“采样点之间该发生的事”算好,DAC 只是照单全收。 继续拉到 705.6k,变化往往已经很小,甚至开始偏薄,因为只是算得更密,没有新增信息。 所以很多人会发现:
352.8k / 384k 常常是甜蜜点,而不是极限值。 再说滤波器,比倍率重要得多。如果你觉得系统瞬态假、鼓声硬,
问题往往不在频响,而是 pre-ringing。 这时换成 minimum-phase,声音会立刻自然,但频域不再对称。 如果你觉得系统顺,但定位和轮廓不够,
可以用 poly-sinc-long 这类长 tap、线性相位滤波,把时间对齐推到极致。 结论只有一句:
滤波器决定声音长相,倍率只决定画得够不够细。 最后说 Roon Ready 串流机。在这套架构里,它不是调音工具。
所有内建升频、reclock、DSP、音效,全部关掉。 它只要稳定跑 NAA,把 HQPlayer 算好的数据送进 DAC。 把它当成一条高质量 USB / 网线,而不是一台 DAC。 一句白话总结:不要把 HQPlayer 当成“拉到最高就最好听”的神器。
把它当成一台超强的数字滤波工厂,专门负责时间域重建。
升频只用整数倍,用到“够细”就停。
让 DAC 不再自己猜“采样点中间发生了什么”。 这样用,HQPlayer 的价值才会真正体现出来。
|