[心得] 簡談升頻

看板Headphone (耳機)作者 (退燒的駱駝)時間15小時前 (2026/01/21 06:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
駱駝來簡談升頻, 後面很技術,可以選擇性看。 談 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 pulse stream,類比端只要一個很溫和的低通濾波器 就能把音頻拉出來。這整套 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 串流機只是快遞 員,負責把算好的東西送進 DAC。 實際路徑應該是這樣: Roon → HQPlayer → Roon Ready 串流機(NAA 模式)→ DAC 不是 Roon 直接播到串流機,也不是串流機自己再做什麼升頻。 所以第一件事是 Roon 裡面全部 DSP 關掉。 不要開升頻,不要開 Headroom,不要 Volume leveling。Roon 在這裡只負責把原始 44.1k 或 48k 的檔案丟給 HQPlayer。你可以把 Roon 想成一個「只負責傳檔、不動內容 」的播放器。 接著是 HQPlayer,這裡才是真正重點。 很多人第一次用 HQPlayer 會犯一個直覺錯誤: 「我 DAC 支援 768k,那我就全部拉到 768k,這樣不是最好嗎?」 實際上不是這樣。 舉一個很實際的例子。 一首 CD 是 44.1kHz,如果你直接拉到 768kHz,這中間一定會經過「非整數倍率」的重 取樣。也就是 44.1 → 768 不是整數倍,HQPlayer 必須先在時間軸上重新對齊一次,才 能湊出這個頻率。這一步本身就已經在「改時間關係」了。 HQPlayer 最強的地方不是幫你亂換頻率,而是用超長 tap 的濾波器,把原本就對齊的時 間關係算得更細。所以最合理的做法是: 44.1k 的檔案,只升到 176.4 / 352.8 / 705.6 48k 的檔案,只升到 192 / 384 / 768 這樣每一步都是整數倍,時間軸是乾淨的。 再舉一個更貼近聽感的例子。 如果你用的是 R2R NOS DAC,本來 DAC 內部就沒有數位濾波,它看到什麼資料就老實吐 什麼階梯波形。這時候你用 HQPlayer 把 44.1k 升到 352.8k,等於是先在電腦裡用很精 細的方式把「取樣點之間應該發生的事情」補好,DAC 只是照單全收。 你再硬拉到 705.6k,聽起來差異可能已經很小,甚至開始變得偏薄,因為你只是把同一 件事算得更密,卻沒有新增資訊。 所以實務上很多人會發現: 352.8k / 384k 常常是甜蜜點,不是極限值。 接下來是濾波器,比倍率重要得多。 再用一個實例來說。 你如果覺得很多數位系統「瞬態有點假、鼓聲有點硬」,那通常不是頻響問題,而是 pre-ringing 讓瞬態前面多了一點不該有的能量。這時候你把 HQPlayer 的 filter 換 成 minimum-phase 類型,聲音會立刻變得比較自然,但代價是頻域不再那麼對稱。 反過來,如果你覺得系統聽起來很順,但少了一點定位和輪廓,那你可以用 poly-sinc-long 這類長 tap、線性相位的濾波器,把時間對齊做到極致。 重點在於: filter 在決定「聲音長相」,倍率只是在決定「畫得夠不夠細」。 最後講 Roon Ready 串流機。 在這套架構裡,串流機真的不是調音工具。 所有什麼內建升頻、reclock、DSP、音效,一律關掉。它只要能穩定跑 NAA,把 HQPlayer 算好的資料送進 DAC 就好。你可以把它想成一條高品質 USB 或網路線,而不 是一台 DAC。 整理成一句白話的用法是這樣: 不要把 HQPlayer 當成「升到最高就會最好聽」的神器。 把它當成一台超級強的數位濾波器工廠,專門負責時間域重建;升頻只用整數倍,用到「 夠細」就停;讓 DAC 不再自己猜「取樣點中間發生了什麼」。 這樣用,HQPlayer 的價值才會真正跑出來。 [A -- 沒貢獻的一群人 https://i.imgur.com/zXpW0is.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.135.56 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Headphone/M.1768948842.A.FD7.html
文章代碼(AID): #1fS0Hg_N (Headphone)
文章代碼(AID): #1fS0Hg_N (Headphone)