第三章,解码
上面说了特定的编码用特定的解码器就能播放。那么上面为什么不说数字转模拟呢?但是也有人说解码器是硬件,比如支持DTS解码的功放,AV用户多讲。也有人说不不是DTS什么的解码,就只是数字转模拟,声卡或者独立DAC,HIFI用户多讲。也有人说解码是软件,只要硬件支持就行,到底哪个才对呢?我感觉很多人不明白,至少问了上百人,没有一个人接近答案。这里就单独开一章来讲。
所谓解码器(decoder),就是把当前数字信号转为模拟信号过程的设备。
1, 解码概述
以多数电脑为例,不管什么格式什么编码,在音箱出声之前,会自动转WAV PCM编码信号在通过声卡输出。哪怕DTS HDMA 5.1声道,如果你只有2声道音箱声卡,那么输出的也是2声道的WAV。WAV是格式,PCM是编码。你的音箱能发出声音,完全就是模拟信号的作用。而能出声本身,就是音箱接收到被转成模拟信号了。
那这样,岂不是我的集成声卡也有解码器了?当然!只要是声卡一定有解码器,你的声卡一定能把PCM数字信号转成模拟信号输出给音箱。这种方式声卡就算PCM解码器。
这种不依赖特定硬件解码的通常也叫做软件解码器。实际上还是硬件发挥作用。
2, 不是硬件作用么?软件解码器是啥子
刚刚说了,所有解码实际上还是硬件发挥作用。但是,你的数字信号无法输出为模拟信号,而解码器一定有数字转模拟的过程。
后端(比如集成声卡)一定有支持通用的解码器比如PCM编码。也就是说,只要是PCM就一定能模拟输出。这就是上面所说的,为什么一定输出前要转换成WAV的PCM,因为一定能把PCM模拟输出。
所以说,只要能把数字信号转成WAV PCM编码的,没有其他硬件参与的数字转模拟过程,就算软件解码器。这么讲只是区别于外部的其他硬件解码器。当然我今天主要说解码是什么。
总之一句话,有特定硬件负责的就叫硬件解码,由通用硬件负责的就叫软解。比如视频里面硬解H265的硬解就是GPU做特定计算,软解就是CPU在做通用计算。
3, 如果不是WAV呢?SACD和DTS解码器也是这样了?
没错!刚才说了,就是数字转模拟。多数情况输出都是模拟信号。而SACD和DTS解码器就是能把这些音频编码转成模拟信号。
只是这些DTS解码器不能像通用的那样,收到被转成WAV的PCM音频,必须是数字格式的DTS源码。所以有一个概念叫数字直通,就是数字DTS信号直接发出给后面的解码器。
归根结底,这种解码器的根本就是,是接收DTS数字信号后,直接输出模拟信号而没有转WAV再转模拟这个步骤,发烧友管这个叫源码输出。
在foobar播放SACD-R镜像的时候,会选择输出类型。是WAV的PCM编码还是SACD的DSD编码。如果设定DSD编码,那么后端必须要有支持这种DSD信号转成模拟信号的设备才行。这个就叫做DSD解码器,也叫SACD解码器。各种DTS全景声同理,只要能把原始信号输出,让下一级解码器去数字转模拟给音箱就行。
4, 硬件解码素质更佳吗
这个不是绝对的。因为只要是能听到,一定有数字转模拟的过程。只不过通常外部解码独立购买,独立声卡比集成声卡好我就不解释了吧。
还有一个就是如果可以硬件层面直接解码,对比先编码转换WAV,再用能力很差的前端设备解码比如集成声卡,那素质就是千差万别了。
5, 解码优化
首先看是否硬件支持,如果支持则尽量硬件解码。我们说的硬件解码只是特定的硬件解码。不仅效率更高,而且质量通常能更佳。
注意,我说的是通常更佳。在2010年之前,尤其硬件解码还是一件苛刻的事情。而且硬件解码素质只是体现在更重要体现在效能上,而不在质量上。最起码2016年之前,硬件解码的作品都没有软件解码质量好。至少我和很多人认为是这样。
还有一众朋友问我视频方面的硬解OpenGL、DXVA2、D3D11和苹果的CVPBR也和音频一样么?其实单纯编解码是啥和播放来说基本和同理,今天就说音频部分的数字转模拟。
如果要说视频编码和播放,几十种编码的方式规格等等都不一样。别说搞清楚,就只是H265里头,只是一个能看懂的参数叫级别(LEVEL),光LEVEL的参数说一下我就得上万字,这只是几十个编码里头的一个参数里面再下面的参数。而且tier和profiles就很难懂,没有很强的基础再加上VLC和GOP简直难度不是一般的大。就算从业视频行业内的朋友,绝大多数面对相对基础的CU,PU,TU就像听天书,甚至都没听过,相信我。而且很复杂的我也不懂的。真想听改天开一篇针对主流的易懂的。毕竟这里不是搞视频的。
本帖最后由 DreameRing 于 21-12-27 06:42 编辑