HIFI日记:HQPlayer Filter设置详解

这是跟HQPlayer Dither设置详解对应的另一篇教程,针对HQPlayer的设置介绍的最终篇。由于内容较多,要核实和具体聆听的内容也较多,所以这篇文章要更一段时间了。

一、什么是Filter(滤波)

首先介绍HQPlayer的核心功能,高质量的采样率转换 (Sample Rate Conversion, SRC)。它将输入的音频采样率(例如 44.1kHz, 48kHz)转换为更高的采样率(例如 192kHz, 384kHz, 768kHz, 或 DSD 128, DSD 256, DSD 512 等),然后发送给 DAC。这个过程中的滤波器选择对最终的音质有非常显著的影响。不同滤波器实际上作用于以下几个特性:

1、频率响应的精度 (Precision of Frequency Response): 指的是滤波器实现理想的低通滤波(在重采样中用于去除原始信号中的高频成分,防止混叠)的精度。越精确的滤波器通常能提供更“干净”或“透明”的声音。

2、时域特性 (Time Domain Characteristics): 滤波器如何处理信号的瞬态(声音的起始和结束)。这与滤波器的相位特性脉冲响应长度密切相关。

2.1、线性相位 (Linear Phase): 不同频率的声音成分通过滤波器时,它们的相对时序关系保持不变。这有助于保留原始录音的空间感和瞬态的“形状”。但线性相位 FIR 滤波器会在主脉冲之前引入一个对称的“预振铃 (pre-ringing)”。

2.2、最小相位 (Minimum Phase): 滤波器引入的延迟是所有具有相同幅度响应的滤波器中最小的。它会改变不同频率成分的相对时序(引入非线性相位失真),但不会有预振铃,只有主脉冲之后的“后振铃 (post-ringing)”。BLOG主个人更喜欢Minimum Phase的声音,听起来衔接更为流畅自然一些,这部分的设置是在DAC硬件进行设置的,并非HQPlayer上的选项。但各位需要理解HQPlayer上的Filter是跟DAC的相位设置互为补充的,因此在这里作科普。

2.3、脉冲响应长度 (Impulse Response Length): 滤波器的“长度”决定了它在时域上对信号的影响范围。长滤波器通常能实现更陡峭、更精确的频率响应,并将振铃(无论是预振铃还是后振铃)推到离主脉冲更远、能量更低、更不容易被听到的地方。但长滤波器需要更多的计算资源,并引入更高的延迟。短滤波器则相反,计算量小、延迟低,但频率响应精度可能稍差,振铃可能更靠近主脉冲且能量相对更高。

二、HQPlayer的Filter介绍

I. 通用选项

  1. none:
    • 解释: 不应用任何处理。
    • 用途: 不进行任何滤波或者重采样(SRC)操作,有些烧友就好这一口。仅不升频的时候可以考虑选择该项目(但其实也不推荐)。
  2. IIR/IIR2:
    • 解释: Infinite Impulse Response (无限脉冲响应) 滤波器。
    • 特点: IIR滤波器通常计算效率较高,可以实现陡峭的频率响应,但它们通常会引入非线性相位失真。由于非线性相位,可能会改变声音的瞬态和空间感,听起来可能不如线性相位 FIR 自然或准确。
    • 用途: IIR一般针对计算要求比较低的场合,也可能用于需要加入DSP调节的场合。(但跟HQPlayer应该没关系。)
  3. FIR:
    • 解释: Finite Impulse Response (有限脉冲响应) 滤波器。
    • 特点: 有限脉冲响应滤波器。可以实现线性相位,但计算量通常比IIR大。是HQPlayer中高质量poly-sinc系列滤波器的基础。
    • 用途: 线性相位FIR倾向于提供准确的空间感和瞬态,但由于该滤波规格较老,后来衍生的poly-sinc系列更值得选择。HQPlayer中提供这个应该是仅用于补全选项作用。
  4. asymFIR:
    • 解析: Asymmetric FIR (非对称 FIR) 滤波器。
    • 特点: 标准的线性相位 FIR 滤波器具有对称的脉冲响应。非对称 FIR 滤波器则没有这个限制。它们可以用于实现最小相位滤波器或其他非线性相位的响应。
    • 用途: 很特殊的一个滤波,BLOG主一下子没想到有什么用途。
  5. minphaseFIR:
    • 解析: Minimum Phase FIR (最小相位 FIR) 滤波器。
    • 特点: 一种特殊的 FIR 滤波器,其设计目标是具有最小的相位延迟。它牺牲了线性相位,以换取更低的延迟。
    • 用途: 对延迟要求非常高的场合,或者希望使用最小相位的烧友准备的。
  6. FFT:
    • 解析: Fast Fourier Transform (快速傅里叶变换)。
    • 特点: FFT 是一种算法,用于将信号从时域转换到频域(或相反)。它本身不是一个滤波器类型,但可以用于实现滤波器(例如,通过频域乘法实现卷积)或进行其他频域处理。
    • 用途: 一般用于测量、校准之类的场合,跟听歌是没什么关系的。
  7. ASRC:
    • 解析: Asynchronous Sample Rate Converter (异步采样率转换器)。
    • 特点: ASRC不依赖于输入输出采样率之间固定的精确比率,而是内部通常有独立的时钟生成目标采样率,并动态调整转换过程。
    • 用途: 处理来自不同步时钟源的音频流(比如数播、解码之间的各自拥有精度不同的时钟无法同步时,这个滤波可能会带来更小的的抖动和失真)。
  8. polynomial:
    • 解析: 基于多项式插值算法的重采样滤波器。多项式插值使用一个数学多项式函数来估计原始采样点之间的新采样点的值。
    • 特点: CPU占用低,但是精度也低,在频率响应的平坦度、过渡带的陡峭度和阻带衰减方面通常较差。
    • 用途: 这个系列感觉也是凑数,一般可能用于兼容性或者一些奇怪的测试吧。
  9. minringFIR:
    • 解析: "minring" 指的是 "Minimum Ringing"(最小振铃)。这个滤波的核心就是最大限度地减少时域中的振铃现象(包括预振铃和后振铃)。使用特殊算法创建线性相位滤波器,可在最大限度减少振铃的同时,提供比多项式插值器更好的频率响应和阻尼。
    • 特点: 说到减少振铃,那肯定优势就是瞬态响应了,大多数时候对器乐的表现,特别是打击乐或者钢琴等有较好的表现。仅限于整数倍升频时使用,比如44.1/88.2/176.4或者48/96/192/等。
    • 用途: 虽然挺适合器乐的,但也同时适合电子音乐等声音较为尖锐的音频。

II. Poly-Sinc 系列

Poly-Sinc系列滤波是HQPlayer的核心SRC滤波器,他们基于Sinc滤波器,且使用了 “Polyphase (多相)” 这种特定的高效实现结构。可以认为是当前HQPlayer中最常用,音质效果最好的滤波结构。Poly-Sinc数量多,一个一个介绍比较麻烦也不实际,因此BLOG主重点介绍如何理解、区分这些滤波器,相信对大家最终做选择一定有所助益。在了解之前,我们先要学会如何看Poly-Sinc系列的命名规则。

举例:poly-sinc-xtr-short-mp,这个滤波名字由4部分组成:poly-sinc(系列名称)、xtr(特殊特性)、short(长度特性)、mp(相位特性)。其中“系列名称”、“长度特性”、“相位特性”的位置是固定的,且一定会标记的(“长度特性”如果为正常则会留空),而特殊特性则可能有也可能没有。

特殊特性一共包含以下几个系列:Poly-Sinc Halfband (-hb) 系列、Poly-Sinc Extended (-ext) 系列、Poly-Sinc MQA/MP3 系列、Poly-Sinc XTR 系列、Poly-Sinc Gaussian (-gauss) 系列。

1、相位特性

  • -lp (Linear Phase):
    • 解析: 线性相位
    • 特点: 通常被认为是“中性”、“准确”、“透明”的选择。能很好地保留录音的空间信息和声场深度。瞬态感觉自然,但理论上存在预振铃。
    • 用途: 一般追求更高的解析、素质会选择的特性,但可能会不耐听或因为振铃问题导致失真。
  • -mp (Minimum Phase): 
    • 解析: 最小相位
    • 特点: 听起来通常更“直接”、“有活力”、“有冲击力”。瞬态感觉更锐利、更突出。没有预振铃,但有后振铃。一些人觉得它听起来更像模拟设备。
    • 用途: 一般追求更为流畅、自然会选择的特性,但可能素质较低。
  • -ip (Intermediate phase): 
    • 解析: 中间相位
    • 特点: 听感介于线性相位(lp)和最小相位(mp)之间,或具有独特的瞬态特性。
    • 用途: 声音介于上述两者之间,BLOG主个人最喜欢的相位。

2、长度特性

  • xs(Extra Short): 超短滤波器。
    • 解析: 脉冲响应极短。计算量极小,延迟非常低。频率响应过渡带较宽,振铃相对靠近主脉冲。
    • 特点: 效率最高,对 CPU 资源要求最低。音质牺牲较大,细节和空间感可能不足。
    • 用途: 感觉毫无用处的东西,应该是为了补完所有滤波才放进来的。
  • short / s: 短滤波器。
    • 解析: 脉冲响应短。计算量小,延迟低。频率响应过渡带较宽,振铃相对靠近主脉冲。
    • 特点: 听起来可能不如长滤波器“干净”或“解析”,高频延伸和空间感可能稍逊。但瞬态可能感觉更“快”,且CPU占用更少。
    • 用途: 一般是给CPU较差的机型(树莓派?)或者认为long特性过于顺滑,缺少颗粒感(模拟味)的烧友准备的。
  • (m / 无后缀): 标准长度。
    • 解析: 介于 short 和 long 之间,是最标准的版本。
    • 特点: 没什么特点,性能开销也很低。
    • 用途: 如果对长度特性没有什么追求,选择这个可能是会最好的。
  • long / l: 长滤波器。
    • 解析: 脉冲响应长。计算量大,延迟高。频率响应过渡带陡峭,振铃被推到远离主脉冲且能量极低的地方。
    • 特点: 通常提供更“干净”、“透明”、“有细节”、“有空间感”的声音。高频更自然延伸,背景更“黑”。
    • 用途: CPU压力大(也大不到哪去),素质也会更高。
  • xl / xla (Extra Long/Apodizing extra long): 超长滤波器。
    • 解析: 比 long 更长。计算量和延迟更高。
    • 特点: 在 long 的基础上进一步提升精度,理论上能提供更极致的透明度和细节,但对系统要求更高。
    • 用途: 跟long比不一定听得出来区别,对CPU的压榨会比较大,硬件不好的话,哪怕能流畅播放,但音质可能反而会下降。

3、特殊系列

所有的这些特殊系列的滤波,都是Apodizing (切趾) 滤波器,在数字信号处理中,尤其是在数字滤波器和重采样中,它能够修正或减轻原始录音中由于早期或设计不良的模数转换器 (ADC) 或母带处理中的数字滤波器所引入的缺陷。更准确的说,是能够对录音中的预振铃 (Pre-ringing)带内混叠 (In-band aliasing)进行修正。通过在接近原始信号奈奎斯特频率(例如CD是22.05kHz)的地方开始更早、更平缓地滚降其频率响应来实现其修正效果。对于烧友来说,只需要知道这种特殊滤波对与老录音(80/90年代)的效果会更好就行了。

  • Poly-Sinc Halfband (-hb) 系列 (半带滤波器)
    • 解析: 半带滤波器是一种特殊的FIR滤波器,其设计目标是高效地进行精确的2倍升频或1/2倍降频。它们的特点是大约一半的系数为零,并且具有对称性,这使得它们的计算效率非常高。其截止频率精确地位于新采样率的1/4处(或原始采样率的1/4,如果是降频)。
    • 特点: 在进行2倍或1/2倍采样率转换时,CPU占用率远低于通用滤波器,音质水平跟普通的Poly-Sinc差不多。
    • 用途: CPU性能有限,但又希望进行高倍数升频时可以优先采用。
  • Poly-Sinc Extended (-ext) 系列 (如 poly-sinc-ext, ext2, ext3)
    • 解析: 这一系列代表了HQPlayer中极长抽头 (very long tap) 的FIR滤波器。抽头数可以达到数百万甚至更多。它们通常是线性相位并且是强切趾 (strongly apodizing) 的。
    • 特点: 极高的CPU占用,应该是所有系列中透明度、解析力最好的滤波,拥有最强大的切趾效果,对老录音的修复能力特别强大。
    • 用途: 这个系列中,BLOG主认为ext2的声音最好,一般切趾越狠,模拟味越浓。根据个人喜好,确实可以作为常驻的滤波使用,但是需要考虑CPU能不能负担的起了。
  • Poly-Sinc MQA/MP3 系列
    • 解析: 这个系列是专门为处理有损压缩格式 (MP3) 或经过特殊编码(MQA) 而设计的滤波器。对于MP3,滤波器可能试图补偿或掩盖由于压缩算法(如心理声学模型、子带编码)引入的特定失真,如预回声 (pre-echo)、高频截断、量化噪声等。对于MQA,滤波器可能针对其“折叠”(folding)和“展开”(unfolding)过程中的特性进行优化,例如处理MQA解码后可能存在的超声波段噪声或混叠。(太复杂,没搞懂)
    • 特点: 一个针对性非常强的滤波器,感觉使用的人也很少,HQPlayer好像也少会碰到这种格式的文件。由于MQA一直都是非主流的格式,因此感觉用的机会也很少。
    • 用途: 可能是在定制硬件/软件的层面上,会使用到这个滤波器,比如跟ROON联合使用,然后推流流媒体音源提供的MQA音频时,可能会有效果。(但是BLOG主无法测试)
  • Poly-Sinc XTR 系列 (如 poly-sinc-xtr-lp, xtr-mp, xtr-short-lp/mp)
    • 解析: 这个系列跟EXT系列都是极长抽头的FIR滤波器,也都是强切趾 (strongly apodizing) 的滤波。
    • 特点: 跟EXT系列基本类似,BLOG主也找不出具体的区别。
    • 用途: 跟EXT系列听感上会有很细微的区别,但是基本上都是追求素质的滤波器,个人感觉跟ESS或者AK系列的会比较搭一些,跟R2R不是特别适配(泉系列解码除外)
  • Poly-Sinc Gaussian (-gauss) 系列
    • 解析: 这个系列的核心特点是使用了高斯窗函数 (Gaussian window) 来对理想的Sinc函数脉冲响应进行加窗处理。高斯窗以其在时域和频域都具有高斯形状而闻名,这意味着它振铃 (ringing) 极小,具有非常平滑的过渡特性。
    • 特点: 自然平滑、相对于EXT或者XTR系列,解析力低一些,高频没那么锐利,但是模拟味更浓郁一些,耐听度也会更高一些。另外这个滤波对CPU的压力也不低。
    • 用途: BLOG主个人感觉Gauss系列太糊了一点,这个能否接受可能因人而异。对很多人声来说其实还可以,但是作为常驻滤波感觉又差点意思。

III. closed-form 系列

  • closed-form
    • 解析: 具有大量抽头的闭式解插值,其系数通过直接的数学公式(闭式解)推导出来。“大量抽头”表明其试图在2倍升频场景下实现一个相当不错的频率响应。
    • 特点: 其“滤波器质量”(陡峭度、衰减度)将是中等水平。作为一个基本的闭式解方案,它在“空间感、音色、瞬态”方面的精细程度可能不如更复杂、经过优化的设计。它是对非常简单插值器的一种改进。
    • 用途: CPU占用低,仅适用于2倍升频场景。
  • closed-form-fast
    • 解析: CPU负载较低但精度也较低的闭式解插值,输出精度调整为大约24位PCM水平,仅用于2倍升频。
    • 特点: CPU负载低是主要优点。“较低的精度”意味着其“滤波器质量”将不如标准的 closed-form 或更高级的滤波器理想。
    • 用途: 当输出到24位PCM且需要一个非常快速、低开销的2倍升频器,并且可以接受在最终音质纯净度上有所妥协时使用。
  • closed-form-M
    • 解析:具有一百万抽头抽头的闭式解插值。这是比标准版计算量更大、更极端的版本。
    • 特点: 与基本的 closed-form 相比,这个版本应该能提供明显更好的“滤波器质量”。增加的抽头数量应能为2倍升频带来更干净的声音、更好的分离度以及更精确的“空间感”和“音色”。
    • 用途: 毫无疑问CPU占用将会非常高,如果需要仅需要2倍升频,且CPU算力足够,且就喜欢听闭式解系列滤波,这应该就是最好的选择。

IV. Sinc 系列

Sinc 系列是 poly-sinc 系列基础,大多数情况下,烧友直接选择 poly-sinc 滤波器就可以,而Sinc 系列滤波器主要是起到完善和补充的作用。

1、SICE-X 系列

  • sinc-S
    • 解析:具有自适应抽头数量的Sinc滤波器。抽头数量为 4096 x 转换比。非常陡峭的截止和高衰减。这是一种基于Sinc的滤波器,其滤波器长度(抽头数量)随升频比率缩放(1x时4096个抽头,2x时8192个,以此类推)。这种自适应长度有助于在不同的整数比率下保持滤波器性能。
    • 特点:自适应抽头数量旨在实现一致的陡峭度和衰减度,仅适合整数倍升频使用。
    • 用途:CPU占用适中,万金油类型的滤波,但仅从技术角度来看,不是最好的。
  • sinc-Ls
    • 解析:sinc-S的“平均衰减”版本
    • 特点:平均衰减特性不太适合动态大的音乐,大编制下可能会觉得背景不够黑。
    • 用途:没啥用
  • sinc-Lm
    • 解析:可以看做是sinc-Ls的更高抽数的版本,具有自适应抽头数量 (16384 x 转换比,同样是平均衰减。
    • 特点:特点跟sinc-Ls一样,没什么区别。
    • 用途:感觉还是没啥用。
  • sinc-LI
    • 解析:sinc-Lm更高抽数的版本,具有自适应抽头数量 (65536 x 转换比,同样是平均衰减。
    • 特点:同上。
    • 用途:该系列滤波一定要用就用这个吧。
  • sinc-M
    • 解析:具有一百万固定抽头的Sinc滤波器,随着转换比的增加,其陡峭度(滤波器滚降特性)会降低,因为相同数量的抽头分布在更宽的频率过渡区。拥有非常陡峭的截止和高衰减。
    • 特点:此滤波器将非常陡峭并提供出色的性能。随着比率的增加,其相对陡峭度会减小。
    • 用途:适合2倍或4倍的整数倍升频,再多一百万抽头的优势就会被稀释了。因为其特性,比较适合古典音乐。
  • sinc-Mx
    • 解析:sinc-M的恒定时间版本。滤波器长度在时间上是恒定的,在16倍PCM输出速率下具有数百万抽头。无论转换比如何,sinc-Mx都保持相同的陡峭度。由于脉冲响应保持恒定的时间长度,这意味着抽头数量会随着输出采样率的增加而增加,以在不同的转换比率下保持一致的滤波器形状(陡峭度)。
    • 特点:在不同的整数升频比率下具有一致的滤波器性能(陡峭度、衰减度)。这带来了更可预测和稳定的声音特性。作为切趾和基于Sinc的滤波器,它应能提供出色的空间呈现、自然的音色并清理录音。在较高倍率下的“数百万抽头”确保了高“滤波器质量”。
    • 用途:适合更高倍数的整数倍升频,对CPU的压力指数级增加。但对非人声的一切音乐种类理论上都有更好的兼容性。
  • sinc-MG
    • 解析:高斯恒定时间滤波器,在16倍PCM输出速率下具有一百万抽头。极高的衰减。可以看做是使用了高斯窗 (Gaussian window) 的sinc-Mx。高斯窗以其非常低的振铃和平滑的滚降而闻名。
    • 特点:高斯窗将带来非常平滑、自然的声音,振铃极小,从而实现出色的瞬态处理(更少的拖尾,更自然的起音/衰减)。音色应该非常有机,空间提示也能很好地保留。“极高的衰减”确保了非常干净的背景。这与之前讨论的高斯滤波器的优点一致。
    • 用途:喜欢更线条、音色更纯正的烧友可以试试这个滤波,只不过同样的问题是poly-sinc系列技术更强。
  • sinc-MGa
    • 解析:切趾高斯恒定时间滤波器,在16倍PCM输出速率下具有一百万抽头。极高的衰减。类似于 poly-sinc-gauss-xla。这是Sinc-M的最高阶版本了,它结合了高斯窗、恒定时间设计、数百万的抽头以及切趾特性。
    • 特点:这应能提供最精致和自然的滤波之一。高斯窗(平滑度、低振铃)、恒定时间(一致性能)、切趾(去除源录音的失真)和高抽头数量(精度、衰减)的结合旨在达到声音的极致。
    • 用途:BLOG主也懵了,从结构来看,跟poly-sinc-gauss-xla基本上好像是一样的,sinc-MGa 可能采用了非Polyphase (多相)技术,来完成了滤波的构筑,理论上来讲,会比poly-sinc占用CPU更高(因为效率更低)。
  • sinc-L
    • 解析:具有自适应抽头数量的Sinc滤波器。抽头数量为 131070 x 转换比。极陡峭的截止和平均衰减。作为长Sinc滤波器,其自适应抽头数量随转换比,相较Sinc-M显著增加(1x时131,070个抽头,2x时超过25万个,以此类推)。
    • 特点:非常陡峭的截止确保了出色的频率精度,这可以带来非常细腻和解析的声音。然而,“平均衰减”的特性,导致带外噪声或混叠的抑制效果不如其他特化滤波理想。
    • 用途:细节出色的滤波,对CPU的压榨高于Sinc-M系列,升频倍数越高越明显。但对人声的适应性可能不如对古典音乐适应性高。

2、DSD 系列

外网找到的描述,sinc-short, sinc-medium, sinc-long这三个滤波属于DSD系列,对PCM升频DSD进行了优化。并且没有整数倍升频的硬性需求。

  • sinc-short
    • 解析:一种较短的Sinc滤波器,具有自适应抽头,设计灵活并专门针对DSD (SDM) 输出进行了优化,可能使用两阶段处理,在进行sigma-delta调制之前有一个较高的中间PCM速率(会先升频到16x)。
    • 特点:这个系列最低负载的滤波,但是衰减速度中等,所以结合较短的长度,可能背景不会很干净,素质会受到影响。
    • 用途:PCM升频DSD,但是CPU又不是很好的时候,你也不得不选。
  • sinc-medium
    • 解析:中等长度的Sinc滤波器,具有自适应抽头数量。同样有一个16x的中间PCM速率。中等速度的衰减。
    • 特点:从长度来看,是明显比short好的。另外,可能对人声来说,这个会比long要好。
    • 用途:简单来说就是就short好,比long差,这个系列的滤波如何选择基本上只看CPU了吧。
  • sinc-long
    • 解析:长Sinc滤波器,具有自适应抽头数量。同样的16x中间PCM速率。需要说明的是,这个系列的滤波都是“中等速度衰减”。
    • 特点:在这三个DSD优化的Sinc滤波器中提供最佳音质,由于其长度更长,具有更佳的细节、更好的空间清晰度和更干净的呈现。但“中等衰减”仍然是一个制约音质的因素。
    • 用途:大编制肯定是这三个中最适合的。

V. 总结

在现代 HQPlayer 版本中,“Poly-Sinc” 系列是主流和推荐的高性能滤波器系列,例如 poly-sinc-ext2, poly-sinc-gauss-xla, poly-sinc-long-ip 等。它们结合了 Sinc 函数的理想特性和多相结构的高效实现。而列表中那些直接以 “Sinc-” 开头的滤波器,很多可能是早期版本或者是为了提供不同声音风格或者CPU负载而提供的选项。由于这部分内容过于黑箱,BLOG主爬了很多文,但是也有很多内容并未完全搞清楚,如果有大佬愿意不吝赐教请留言。

另外也希望各位可以留言,自己最终选择的滤波、DAC和CPU配置,用以给大家留下参考信息。

2条评论

回复 huoyanyan 取消回复

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