KunSpace
返回博客

MS12 DRC:RF / LINE 模式下 PCM 与 Dolby 的电平怎么走

2026年7月13日
5 次阅读

读完了?别空手走啊 😏

读都读完了,不点个赞说不过去吧

写评论

赞同、吐槽、提问都行,评论区开放

这篇写什么?

TV / STB 开 MS12 做杜比解码 / 转码时,DRC(Dynamic Range Control) 决定「动态范围怎么压」和「对白响度对齐到哪」。常见选型:

  • RF:偏电视 / 广播链路,往往在 LINE 归一后再 +8 dBr(或地区相关的 +11 dBr
  • LINE(含 off 常按 LINE 处理):对白归一到约 -31 dBFS,平台少做出口补偿
  • Auto(公版 UI 默认):按产品策略在模式间自动选

同一条 -23 dBFS 标准片,走 None(PCM 出) 还是 Auto(Dolby 出),进 MS12 前后电平会完全不一样;而且 Android 11 / 12 / 14 对 PCM 源的处理并不相同。本文把概念、UI、地区标准、版本差异和四条路径写清楚。

测试前提

  • 认证 / 对比响度请用 杜比 SDK 指定的标准测试信号(见文末答疑)
  • 系统音量开到最大,避免被系统音量曲线再削一层

一句话:

Settings → Dolby DRC Mode
  → LINE:对白往 -31;RF:再抬到约 -23(DVB)或 -20
  → 看 Android 版本:PCM 进库前是否 -8、MS12 参数是否被强制 LINE
  → 再看 None / Auto:PCM 出谁补 +8,Dolby 出谁交给后级 TV
MS12 DRC Android 版本差异总览MS12 DRC Android 版本差异总览

〇、UI 在哪、怎么查当前模式

设置路径:

Settings → Device Preferences → Display & Sound → Sound → Dolby DRC Mode

公版默认常见为 Auto。改 UI 后,Android 12+ 往往经 OutputModeManager.setDoblyMode(...)(如 LINE_DRCMODE)去写节点。

节点与 Settings:

# 读当前 DRC 控制节点
cat /sys/class/audiodsp/ac3_drc_control

# 读 global
settings get global drc_mode

节点取值(平台约定,以你们分支为准):

节点值 含义
2 off(实现上常按 LINE
3 RF
6554402 LINE

手动打开 RF(调试用):

echo drcmode 3 > /sys/class/audiodsp/ac3_drc_control
echo drchighcutscale 0 > /sys/class/audiodsp/ac3_drc_control
echo drclowboostscale 0 > /sys/class/audiodsp/ac3_drc_control

手动打开 LINE / 关闭类行为(调试用):

echo drchighcutscale 0 > /sys/class/audiodsp/ac3_drc_control
echo drclowboostscale 0 > /sys/class/audiodsp/ac3_drc_control
echo drcmode 2 > /sys/class/audiodsp/ac3_drc_control
settings put global drc_mode 0

HAL 侧通过读节点决定当前模式;Android 12+ 在 dynamic_get_dolby_ms12_drc_parameters 一类接口里还有额外规则:若当前输入是 PCM,传给 MS12 的 DRC 参数常被强制为 LINE;若是 MS12 可编解码的 Dolby 格式,才用 UI 选中的 RF / LINE。


一、DRC 在干什么?(压缩 + 对白归一)

1.1 动态范围压缩(直觉)

DRC 把「最大声」和「最小声」的差距压到可控范围,避免爆炸突然过大、对白突然过小。示意(阈值举例 -20 dBFS,高于阈值的被压):

原始:     对话 -31 dB          爆炸  0 dB
              ↓ Apply RF DRC(压爆炸)
           对话 -31 dB          爆炸 -11 dB
              ↓ Add Gain(如 +11 dB)整体抬响度
           对话 -20 dB          爆炸  0 dB

1.2 对白响度归一(Line / RF 的电平锚点)

杜比节目里带有 实时对白响度元数据。在 LINE(line mode on/off 一类)下,解码后会把对白校准到标准 -31 dBFS
例如对白元数据为 -24 dBFS,则解码后会再施约 -7 dBr,落到 -31 dBFS。好处是不同节目、不同制作方,对白听感更一致。

切到 RF 时,会在 LINE 归一结果上再加增益,常见:

场景 额外增益 对白目标(量级)
DVB 等 +8 dBr -23 dBFS
其它部分标准 +11 dBr -20 dBFS

所以:LINE ≈ 锚在 -31;RF ≈ 再抬到地区要求的听感目标。

1.3 MPEG1L2 / 外部解码进 MS12

MS12 不含 MPEG1 Layer II 解码器,一般由 SoC 外部解码后再进 MS12 做 DAP 等处理。杜比侧要求:

无论 MS12 的 DRC 设为 LINE 还是 RF,外部解码后的 MPEG1L2(以及同类送入)应对白平均响度先到 -31 dBFS,再进 MS12

用 SDK 标准 MPEG1L2 片(尤其 DTV RF INPUT)时,解码输出对白平均响度一般在 -23 dBFS,因此常见做法是 先衰减 8 dBr → -31,再进 MS12:

  • MS12 RF:内部杜比解码或外部 PCM/MPEG/AAC 等,从 -31 再 +8 → -23 输出(PCM 出路径)
  • MS12 LINE不加增益,保持 -31 输出

AML 对 PCM 片源的 -8 dB:并不等于「标准写死必须减 8」。目的往往是让 -23 标准 PCM 片进 MS12 前也落到 -31,和杜比路径对齐,方便 loudness 联调。减多少取决于片源与地区目标,不是任意猜数。

1.4 地区响度标准 → mixgain

不同地区目标响度不同,Audio HAL 里常见按 TV 标准选衰减 / 抬升量,例如:

int get_ms12_syss_mixgain_target(void)
{
    int target = 0;
    switch (active_tv_standards) {
    case DVB:
        target = DRC_RF_MODE_ADD_LEVEL + DVB_LEVEL;
        break;
    case ATSC:
        target = DRC_RF_MODE_ADD_LEVEL + ATSC_LEVEL;
        break;
    case DTMB:
        target = DRC_RF_MODE_ADD_LEVEL + DTMB_LEVEL;
        break;
    case ISDB:
    case SBTVD:
    default:
        target = DRC_RF_MODE_ADD_LEVEL;
        break;
    }
    return target;
}

排「功放表头数值不对 / HDMI 接功放电平怪」时(如 SEI700SKY-98 一类),除了 RF/LINE,也要确认 当前 TV 标准枚举 有没有走错分支。

1.5 PCM 出 vs Dolby 出(MS12 能力边界)

输出 说明
PCM 可从 DAP 后处理出(喇叭,DAP 最高可到如 5.1.2),或从 PCM RENDERER 出经 DRC 的 5.1 / downmix 2ch(可不经 DAP);给喇叭、SPDIF、HDMI PCM
Dolby 再编码 DD+ / DD / Dolby MAT 等,需要下游支持杜比解码;流内常带 DRC metadata,后级 TV 可再执行

文中 None ≈ PCM 出,Auto ≈ Dolby 出(测试叫法)。


二、Android 11:RF / LINE 四条路径(经典 ±8)

下面两节对应公版早期、也是原文主体:Android 11 上用 -23 dBFS Dolby / MPEG(PCM)标准片测得的链路。

2.1 DRC = RF(A11)

MS12 DRC RF 模式电平流程

  1. PCM 源进 MS12 前:平台 -8 dB → 进库约 -31 dBFS
  2. Dolby 源:MS12 库内官方 -8 dB → 约 -31
  3. PCM 出口:统一 +8 → 回到 -23
  4. Dolby 出口+0,约 -31
  5. 后级 TV:对 MS12 出的 Dolby 再按 DRC / 元数据增益(常见再 +8
输入 输出 进 MS12 附近 MS12 出口 到后级 后级 TV
PCM None→PCM 进库前 -8 +8 -23 PCM 通路
PCM Auto→Dolby 进库前 -8 +0 -31 常再 +8
Dolby None→PCM 库内 -8 +8 -23 PCM 通路
Dolby Auto→Dolby 库内 -8 +0 -31 常再 +8

口诀:A11 RF = 先掉 8,PCM 出补回 8;Dolby 出不补,交给 TV。

2.2 DRC = LINE(A11)

MS12 DRC LINE 模式电平流程

  1. PCM 源:平台 不预衰减,进库仍 -23
  2. Dolby 源:库内仍 -8 → -31
  3. 出口一律 +0(PCM 出 / Dolby 出都一样)
  4. Dolby 再编码:流内带 DRC 曲线;LINE 下后级通常 不再做平台式 +8
  5. 纯 PCM 出:没有 DRC metadata;后级要按码流 DRC 处理,必须自己解杜比并读 metadata
输入 输出 进 MS12 出口 到后级
PCM None→PCM -23 +0 -23
PCM Auto→Dolby -23 +0 编码路径看流内 DRC
Dolby None→PCM -31 +0 -31
Dolby Auto→Dolby -31 +0 -31,靠流内 DRC

同一音量键下,LINE 里 Dolby 源常比 PCM 源轻约 8 dB——是路径设计结果。

口诀:A11 LINE = PCM 原样进;Dolby 仍 -8;出口不补。


三、Android 12:PCM 路径改了什么?

相对 A11,杜比源路径大体不变;变化集中在 PCM 源 + 传给 MS12 的 DRC 参数

UI 模式 MS12 输出 PCM 源进库前 传给 MS12 的 DRC 参数 结果(相对 -23 片)
RF PCM 不衰减 强制 LINE 进库后也不再按 RF 抬;整体不再走 A11 那套 PCM ±8
RF Dolby 仍 -8 仍用 RF MS12 对 Dolby 出 不加增益;TV 读流内 DRC 再 +8
LINE PCM 不衰减 LINE MS12 / TV 都不加增益
LINE Dolby 仍 -8 LINE MS12 / TV 都不加增益

要点:A12 在 RF + PCM 出 时,用「不预衰减 + 强制 LINE 参数」避免对 PCM 再做 RF 那套抬升,听感/电平策略和 A11 不同。排问题务必先确认 Android 大版本。


四、Android 14:在 A12 上再差一刀

主体与 Android 12 一致,AML 公版类逻辑里常见差异是:

UI 模式 MS12 输出 A12(PCM 源) A14 AML(PCM 源)
RF PCM 不 -8;参数强制 LINE 同左
RF Dolby 进库前 -8 同左
LINE PCM 不 -8 同左
LINE Dolby 进库前 -8 不 -8

SEI 公版(非 AML)补充: LINE 模式下,PCM 进 MS12 前仍 衰减 8 dB,目的是与 Dolby 片源响度对齐。同一 Android 14,产品分支不同,LINE + Dolby 出时 PCM 是否 -8 可能相反——工单里务必写清是 AML 还是 SEI 公版改动。


五、三版本对照(排音量时先看这张)

场景(PCM 源) A11 A12 A14 AML A14 SEI 公版(LINE)
RF + PCM 出,进库前 -8? (参数改 LINE) (同 A12 主体)
RF + Dolby 出,进库前 -8?
LINE + PCM 出,进库前 -8? (对齐 Dolby)
LINE + Dolby 出,进库前 -8? (按 SEI LINE 策略)
Dolby 源进库 库内 -8 同左 同左 同左

排查「同一片源 None / Auto 响度差一截」:

  1. 确认 Dolby DRC Mode(UI / 节点 / drc_mode
  2. 确认输出是 PCM 还是 Dolby(None / Auto)
  3. 确认 Android 大版本 + 是否 SEI 改动
  4. 用杜比 SDK 标准片 + 最大系统音量 复测
  5. 差是否整 8 dB(或地区相关的 11 dB)——对上表里的预衰减 / 补回 / TV 元数据

相关:系统音量见 Android 音量设置流程;切口后 DRC 从 LINE 变 RF 见 HDMI 切无信号再切回


六、杜比侧常见问答(摘要)

Q1:DRC 对片源有要求吗?一定要标准片吗?
认证只测杜比提供 / 指定的测试信号。有疑问用 SDK 标准信号复现后再问杜比,不要拿非指定片源扯认证结论。

Q2:MPEG1LII「标多少出多少」——先衰到 -31 后,RF/LINE 是否都直接出 -31?
外部解码标准 MPEG1LII 对白平均宜在 -23;进 MS12 前 -8 → -31。之后:

  • RF:从 -31 +8 → -23 输出(适用内部杜比与外部送入的 MPEG/AAC 等)
  • LINE:保持 -31,不再加增益

Q3:Dolby 出和 PCM 出有何不同?
PCM:喇叭 / SPDIF / HDMI PCM,可走 DAP 或 PCM RENDERER。
Dolby 再编码:需下游解杜比;可携带 DRC metadata,后级 TV 再执行。


七、小结

  • 概念:DRC = 压动态范围 + 对白归一;LINE ≈ -31RF ≈ 再抬到 -23/-20(看地区)。
  • 外部 PCM/MPEG 进 MS12:目标先进到 -31;A11 上常见平台 -8;A12+ 对「RF + PCM 出」改为不 -8 并强制 LINE 参数。
  • A11:RF 经典「先 -8,PCM 出 +8,Dolby 出交给 TV」;LINE 则 PCM 原样、Dolby 仍 -8、出口不补。
  • A12 / A14:以 PCM 路径差异为主;A14 AML 在 LINE + Dolby 出 上对 PCM 不再 -8,SEI 公版 LINE 仍可能 -8 对齐杜比。
  • 排障先钉死:UI 模式、节点值、输出格式、Android 版本、TV 标准(mixgain)、是否标准片

记住一句话:谁在 -8、谁在 +8、谁把 +8 交给 TV、当前是 A11 还是 A12/A14——MS12 的 DRC 音量问题就好拆了。


相关阅读

评论

还没有评论,来做第一个吧

赞同、吐槽、提问都行,评论区开放