上一篇讲到在Windows上面正确使用Dolby Access的方式,这次来讲一下正确播放Dolby Atmos的方式。
首先分两种情况,使用家庭影院的方案或者PC/手机上Dolby和OEM合作实现的方案。后面那种就很容易了,参考上一篇文章,就是直接把eac3-joc音频流直接给到系统的媒体实现,但是这种也有限制,一般情况下只能渲染输出到立体声PCM,给耳机或内置音响用,也无法处理TrueHD的atmos(目前我已经有将TrueHD Atmos转为eac3-joc的方法,以后会讲,只需要Windows PC)。
然后就是家庭影院的方案了。首先支持Dolby Atmos的AVR或者电视一般都会支持三种格式输入,eac3-joc,TrueHD的atmos,LPCM+MAT,三种都有不同的使用场景。
首先看到EDID CTA-861的Audio formats部分,这里写明了设备支持的音频格式。

看到E-AC-3的flags为3,一般认为是支持joc,具体Dolby没有公开的文档查询。TrueHD的flags为7,一般被认为支持MAT (MLP),具体也没有公开。看到这两项,基本可以认为你的接收设备是能处理以上3种Dolby Atmos格式。
首先讲LPCM+MAT,这种格式比较简单,由播放设备解码之后输出给avr,本质上就是多声道PCM音频加上Dolby Atmos的元数据,一般电视盒子如Apple TV和游戏等实时性强的空间音频就是用的这种输出方式。比较灵活,可以将系统音效和播放的杜比全景声内容混合在一起发送给avr,也不限制avr的输出声道数,没有天空声道也能正常渲染(或者说其实可以这样理解,LPCM+MAT无法像eac3-joc那样降级为eac3固定的声道格式处理,所以不管有没有天空声道都需要进行物件渲染)。
这可以说是一种兼容性比较高实时性强的格式,将原始的eac3-joc解码,或者输入原始空间音频数据,混合其他音效,包装为MAT帧,以固定的码率发送给avr。
然后是eac3-joc和truehd的atmos,首先这两种音频都是基于他们的前身eac3和truehd,设计上向后兼容而且传输方式相同。这些是可变码率的流,而HDMI是基于固定时钟的链路,必须是固定的码率,所以播放器会将这种音频流填充为固定大小,以IEC-61937的标准封装为固定码率的流,发送到HDMI链路,再由avr处理。这种杜比全景声格式要求avr输出必须要有物理天空声道或者启用虚拟扬声器,否则降级为DD+或TrueHD,不会处理音频物件(不知道为什么,反正avr就是这样处理的)。
接着辟个谣,在b站上看到过卖蓝光机的商家,宣称必须要蓝光机才能输出完美的杜比全景声,他们内置杜比授权的硬件MAT编码器,比其他设备上软件实现的要更好。首先正如我上面所讲,只有LPCM+MAT的杜比全景声实现才需要MAT编码器,一般蓝光盘都是truehd的atmos,不需要任何的重新编码就能输出给avr。在正常播放蓝光光盘的场景,都是将truehd atmos流直接输出给avr,不需要混入系统音效,那也就不需要这样的MAT编码,而且这样的MAT编码会引入额外的处理路径,会导致非常轻微的改变(不过处理精度足够高,一般人类察觉不到),更加违反了发烧佬的教义。
那杜比官方所说的:
The Dolby Metadata-enhanced Audio Transmission (Dolby MAT) encoder resides in a Blu-ray player to
pack the variable bit-rate Dolby TrueHD bitstreams for transmission over the fixed bit-rate HDMI
connections. A MAT decoder is subsequently employed in an AVR to unpack the Dolby TrueHD
bitstreams. With the introduction of Dolby Atmos, we have expanded this technology to support
encoding of Dolby Atmos content as lossless pulse-code modulation (PCM) audio.
这又是为什么。首先Dolby MAT编码器并不是只能把空间音频编码为LPCM+MAT输出,它还能将TrueHD/DD+音频帧包装进MAT帧,然后以IEC-61937规范,在HDMI链路上以固定码率的PCM形式传输给AVR,不会对音频流本身有任何的处理,在这种情况下MAT编码器只是一个包装器。参考一下ffmpeg的实现和kodi的实现,将24个TrueHD帧包装进1个MAT帧,最终输出格式符合IEC-61937规范,看到代码和注释,可以发现所谓的MAT编码器,没有对TrueHD帧有任何的重新编码处理。这部分的MAT编码器,第三方的实现和杜比官方的实现输出没有任何区别,AVR最终收到的都是同样的MAT帧,只要你听到的声音是流畅没有任何卡顿的,那就说明TrueHD帧被正确送到了AVR。Windows上其实有官方实现的有授权的MAT编码器,就是Media Foundation,即为Windows内置的媒体实现,效果和第三方播放器是一样的。
而上面说的LPCM+MAT,则是需要杜比官方的授权和实现,没有其他第三方开源的实现,这个MAT编码器不同于直通TrueHD的MAT编码器,这个是一个完整的音频编码器,将输出的原始空间音频编码为杜比专有的LPCM+MAT编码。这个编码器就没有硬件软件的区别,都是一个内嵌库,运行在操作系统内,硬件上授权给了nvidia等soc供应商,用于在soc内提供一个MAT编码器的授权,从而在电视盒子或者蓝光机上使用MAT编码。而游戏里面的杜比全景声,则是将授权通过Dolby Access软件分发给用户,用户可以在兼容杜比全景声的游戏里面使用杜比的编码器,这里是游戏通过Windows的空间音频API,将原始空间音频给杜比的MAT编码器。
这里是一些骂人的话,有点难听,可以跳过:
我tm都不想在这骂了,有些人,源码输出还能听出区别来,你们一个个开脑放开傻了吧,TrueHD帧完全没有任何修改,AVR收到的不管是你们蓝光机的“官方MAT编码器”编码出来的MAT帧,还是第三方实现的MAT编码器的MAT帧,里面装的都是原始的TrueHD帧,tm根本没区别。有些人还说查了很多资料,怎么连MAT编码是什么东西都搞不清楚,IEC-61937都不知道是什么标准,就知道在那里叫叫叫,看到个MAT编码就颅内高潮,看到杜比官方授权就两眼发光,杜比是你爹,蓝光机是你你妈,第三方的实现就是狗,拉出来的都是屎,你爹你妈拉出来的就比较香是吧。还一个个多少年老玩家,怪不得啊,天天就是玩,看群友买了什么新东西,自己也跟着买,别人说什么自己不加思考查证跟着说,一个个以讹传讹越传越离谱,不会自己去实验去查证。还固定时钟的HDMI传不了动态码率truehd,你每次拉屎答辩尺寸不一样就拉不出来了是吧,还要自己伸手进去捏一捏捏成刚刚好的形状?你tm有赛博洁癖就去用win内置播放器,那东西可纯了,杜比授权的,可好看了。
正确在家庭影院播放Dolby Atmos,只需要一个支持Dolby Atmos的avr,一台兼容的pc,一个支持直通的播放器,通过WASAPI独占输出IEC-61937封装的音频流,就可以完美输出。
發佈留言
很抱歉,必須登入網站才能發佈留言。