4、DP音频格式支持:LPCM音频传输、压缩音频格式(Dolby、DTS)、多声道音频映射
好,咱们接着聊DP接口的音频传输。前面几章我们把DP音频的底层机制、时钟同步这些基础打牢了,这一章我重点讲讲DP到底能传哪些音频格式。说白了,就是你的电脑通过DP线连到显示器或音响,到底能放出什么品质的声音。
我个人习惯把DP支持的音频格式分成三大类:LPCM无损音频、压缩音频格式(杜比、DTS这些),以及多声道音频映射。这三块搞明白了,你基本就能应付90%以上的音频调试场景。
4.1 LPCM音频传输:最纯粹的数字音频
LPCM,全称是线性脉冲编码调制。你想想看,CD、WAV文件用的就是这种格式。它不经过任何压缩,直接把模拟信号的采样值量化成数字信号。所以LPCM是音质最好的,也是DP接口最基础的音频传输方式。
DP协议规定,音频数据是嵌入在视频消隐期(Blanking Interval)里传输的。LPCM音频在DP链路上以I2S(Inter-IC Sound)总线的形式打包。每个音频样本被拆分成多个子包,塞进视频的空白行里。
核心参数:
- 采样率:32kHz、44.1kHz、48kHz、96kHz、192kHz(最高支持到192kHz)
- 位深:16bit、20bit、24bit(32bit浮点不支持,因为DP音频通道是整数格式)
- 声道数:最多8个声道(7.1环绕声)
我记得有一次调试一个4K投影仪,客户说声音断断续续。查了半天,发现是EDID里把LPCM的采样率上限写成了48kHz,但播放器输出的是96kHz。DP链路协商时,音频参数没匹配上,导致丢包。嗯,这里要注意:源端和接收端必须协商一致的采样率和位深,否则要么没声音,要么爆音。
4.2 压缩音频格式:Dolby与DTS
LPCM虽然音质好,但数据量太大。比如7.1声道、192kHz、24bit的LPCM,码率高达36Mbps。这在DP链路上虽然能传,但会挤占视频带宽。所以家庭影院场景下,大家更常用压缩音频格式。
DP接口支持以下压缩音频格式:
| 格式 | 编码方式 | 典型码率 | 最大声道数 | 备注 |
|---|---|---|---|---|
| Dolby Digital (AC-3) | 有损压缩 | 640kbps | 5.1 | DVD时代标准 |
| Dolby Digital Plus (E-AC-3) | 有损压缩 | 6Mbps | 7.1 | 流媒体常用 |
| Dolby TrueHD | 无损压缩 | 18Mbps | 7.1 | 蓝光原盘格式 |
| DTS-HD Master Audio | 无损压缩 | 24.5Mbps | 7.1 | 蓝光原盘格式 |
| DTS:X | 无损压缩+对象音频 | 可变 | 11.1 | 沉浸式音频 |
这里有个关键点:DP本身不负责解码这些压缩格式。DP只负责把压缩后的音频数据包(比如AC-3的比特流)原封不动地传输过去。解码工作由接收端(比如Soundbar、AV功放)完成。所以DP音频传输压缩格式,本质上就是个数据透传。
避坑指南:我曾经遇到一个项目,显示器内置音箱,但用户说播放Dolby TrueHD没声音。查了EDID才发现,显示器EDID里只声明支持LPCM,没声明支持Dolby TrueHD。源端(比如蓝光播放器)看到EDID不支持,就自动降级成LPCM输出了。但LPCM的声道数又不够,导致声音异常。解决方案:在EDID的Speaker Allocation Data Block里正确声明支持的压缩格式。
4.3 多声道音频映射:声道怎么对应到物理喇叭?
多声道音频映射,说白了就是解决一个问题:左声道、右声道、中置、低音炮……这些信号到底该从哪个喇叭出来?
DP协议里,音频数据包中的每个音频样本都带有一个声道位置标签(Channel Position)。这个标签遵循CTA-861标准,定义了16种标准声道位置。比如:
- FL(Front Left)—— 左前置
- FR(Front Right)—— 右前置
- FC(Front Center)—— 中置
- LFE(Low Frequency Effects)—— 低音炮
- BL(Back Left)—— 左后置
- BR(Back Right)—— 右后置
- ……等等
接收端(显示器或功放)根据这些标签,把音频数据路由到对应的物理喇叭。如果接收端只有2个喇叭(比如普通显示器),它会把多声道信号下混(Downmix)成立体声。下混算法由接收端自己决定,质量参差不齐。
注意:下混过程中,LFE(低音炮)声道通常会被丢弃或衰减,因为普通显示器的喇叭根本放不出低频。所以如果你用DP接显示器听5.1声道的电影,低音效果会大打折扣。这不是DP的问题,是物理喇叭的限制。
我个人的经验是,做多声道映射调试时,最好用音频测试文件(比如每个声道依次播放粉红噪声)。这样能快速验证每个声道是否映射到了正确的喇叭。我曾经在调试一款Soundbar时,发现左环绕和右环绕声道反了,就是因为EDID里的Speaker Allocation Data Block写错了声道顺序。
4.4 知识体系结构图
下面我用一张SVG图来总结DP音频格式支持的核心逻辑。这张图展示了从源端到接收端的音频数据流,以及格式协商的流程。
4.5 实战经验总结
最后,我分享几个实际项目中踩过的坑,希望能帮你少走弯路:
- EDID里的音频格式声明一定要准确。 我曾经见过一个显示器,EDID里写了支持Dolby TrueHD,但实际硬件根本没解码能力。结果源端输出TrueHD,显示器直接静音。这是EDID造假,坑了不少用户。
- 多声道下混的质量差异很大。 有些廉价显示器下混时直接把环绕声道丢弃,导致声音空洞。如果你对音质有要求,建议用外接功放或Soundbar,让显示器只做视频显示。
- DP音频的延迟比HDMI略高。 因为音频数据是插在视频消隐期里的,如果视频分辨率高、刷新率高,消隐期变短,音频数据包可能被延迟发送。我测过4K@120Hz下,DP音频延迟大约在15-25ms,比HDMI的5-10ms高一些。但对看电影来说,这点延迟基本感觉不到。
- 压缩音频格式的透传需要接收端支持。 如果接收端(比如显示器)不支持Dolby解码,它会把压缩数据包直接丢弃。所以用DP接显示器听Dolby音效,大概率是没声音的。解决方案:用DP接功放,功放解码后再输出到显示器。
一句话总结:DP音频格式支持的核心是EDID协商和声道映射。LPCM是基础,压缩格式是扩展,多声道映射是落地。搞懂这三块,DP音频调试基本手到擒来。
公众号:蓝海资料掘金营,微信deep3321