ATSC A/85 中的 DialNorm 和 DRC

客戶又有新的 audio 專家來開會了, 只好考前猜題準備一下相關背景知識.

首先是整體音量的方面, 這裡有一篇中文的介紹非常棒 [3]. 看了以後對 audio normalization 會有基本的了解. 計算音量的方式有 A-weight (acoustic) 和 K-weight (單純對頻域 weighting), 把整片每個聲道掃完就會得到平均音量 [6]. ITU-R BS.1770 的公式 (2) 給了一個測量 loudness 方法 [6], 它的另外一個主題是測 True Peak.

接下來專注討論人聲的部分, 在 objective audio 的時代, 據說聲音該大聲就大聲, 該小聲就小聲, 但人聲必須是正常而且受到規範的 (CALM) [7]. CALM 言明要規範的是 perceived loudness, 然後又說 “Perceived loudness compliance is based on Dialog
Normalization – dialnorm. Dialnorm is defined in ATSC A/85″, 所以 DialNorm = Perceived loudness. 

DialNorm 是一個 metadata. 它的值介於 0~31, 也就是 -30~0dB 的音量 [1], 其中 0 是 reserved. DialNorm = 1 => 0dB, DialNorm = 31 => -30dB.  DialNorm = 12 表示很大聲, DialNom = 27 表示溫和 (soft). [2]

ATSC A/85 對 DialNorm 的規範是 -24 LKFS (想成 dB 就好) [4], 並且允許大約 ± 2dB 的量測誤差. 在 AC3 的碼流中會帶著這個 metadata, 而這裡的 0dB 是片源允許的最大音量. 我們可以透過調整電視音量, 讓電視的輸出的人聲落在 DialNorm 的上下區間 (comfort zone) [5].

根據 A/85.  電視節目製作人應該要保證他們的輸出都有適當的 DialNorm 控制, 包括所有片源都固定一個 DialNorm (fixed), 或者對每部片子預設一個值 (preset), 或者是可以從外部動態取得 (agile). 至於插片或是廣告的音量, 當然也要受到管制, 這也是 A/85 的目的. (This ATSC Recommended Practice (RP) provides guidance…to effectively control program-to-interstitial loudness.) 但 program-to-interstitial 的音量變化經常都是亂源. 

A/85 還講到 DRC (Dynamic Range Control) 有開關是為了要達到 reversible, 不然動態範圍壓下去就無法復原了. 在 P.26 提到: The AC-3 DRC system should not be relied upon to control program-to-interstitial loudness variations. 表示 DRC 也管不了廣告. 在 9.1.3 (P.29) 提到, DialNorm 是反映整部片子音量的準則, 所謂太大聲大小聲要拉起來壓下去, 都是依據 DialNorm 做判斷標準.

然後 9.1.4 解釋了 Dolby MS12 (密) 文件中沒有解釋的 profile, 幸好在公開的文件中就有講. AC3 定義了五種 profile, MS12 多一種 null profile. 但 9.1.5 有講到 DRC = “none", 也就是沒有 DRC 開關的選項.

• Music Light
• Music Standard
• Film Light
• Film Standard
• Speech

基本上這五種 profile 都跟 DialNorm 有關, 因為 Music 沒有對白, Speech 全部都是對白, 所以不同 profile 就代表不同的 DRC 調整. Light 跟不 light 的區別在於, light 版有比較多的 null area, 所以調的地方比較少. 

(The “Light” versions of the profiles have a much wider null area. Thus, gain reduction or expansion begins farther away from average program audio, resulting in less gain reduction or expansion than with the “Standard” version of the profile.) 

這也解釋了 [3] 裡面提到, Youtube 大約是 -13 LUFS, 而 Spotify 是 -14 LUFS (LHFS = LKFA). Youtube 基本上是 movie, Spotify 基本是 music. 如果對 Speech profile 開 DRC, 理論上會造成失真. 因為它已經全部都是人聲了, 壓了應該會破壞朗誦效果, 哈!

DRC 又可以分為有 metadata 和沒有 metadata. 有 metadata 就是前面講的這些, 沒有 metadata 的就像是 AGC (automatic gain control). 因為沒有 metadata, 所以是 irreversible.

[REF]

  1. https://en.wikipedia.org/wiki/Dialnorm
  2. https://www.atsc.org/wp-content/uploads/2015/03/Techniques-for-establishing-and-maintaining-audio-loudness-1.pdf
  3. 有關Audio normalization兩三事
  4. loudness, K-weighted, relative to full scale, measured with equipment that implements
    the algorithm specified by BS.1770. A unit of LKFS is equivalent to a decibel.
  5. Comfort Zone – the Comfort Zone is a range ( +2.4dB, -5.4dB) of the change to audio loudness that was found to be acceptable to a sample of listeners. The 0 dB point on the Comfort Zone scale is the average Target Loudness value or dialnorm of the channel.
  6. https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf
  7. https://www.ensembledesigns.com/file_download/640/Ensemble_CALM_wp.pdf

TrueHD 的小筆記

TrueHD 無損壓縮是 Dolby 公司的另類產品之一, 杜 (Do) 老爺把原來的 MLP 壓縮方法略加擴充之後, 就讓 MLP 改了姓名. 所謂河海不擇細流故能成其深, 當今最厲害的有損壓縮演算法 HE-AAC 也這樣進了杜家的門, 並改名為 Dolby Pulse.

雖然 TrueHD 並非杜家嫡傳, Dolby 還是很別緻地把它的 pass through 方式變成一個產品.  如果不 license MAT 格式, 就無法傳送或接收 TrueHD 的 bit stream. 從學理上看, lossless 壓縮可能導致 bit rate 有極大的變化, 一個週期的正弦波只需要一點點 bit 就可以表示, 若是不把它包成 CBR (constant bit rate), 其實也很難在 HDMI 這樣的介面上傳輸.

TrueHD 的 DRC (dynamic range control) mode 可以用來調整音量, 如果 DRC = on, 那麼 DRC 就會永遠開, DRC = off 就是原樣的 lossless 輸出. 而 DRC = follow 就是根據 bit stream 裡面的描述來決定 DRC 開或是關. 

以 PS3 的舊版 FW 來說, 因為它的 DRC mode = off, 所以 PS3 解出的 PCM 硬是比擴大機的輸出小了 4dB. 由於客戶的抱怨, 新版 (> 2.41 版) 的 PS3 就把 TrueHD 的 DRC 給開了. 但是開 DRC 需要增加不少計算量, Sony 應該是調校過 FW, 才推出這個新版吧!?