“高清”,就是高清晰度,是相对于“标清”(即标准清晰度)而言的,主要是指高清晰度的视频媒体,高清技术的发展,越来越多的人接触到高清,现在网络上是铺天盖地的高清视频资源,高清电视、高清电影、高清MTV 等等。
高源媒体的解码过程是怎么样的?如何才能在电脑上正确地播放高清媒体?什么是硬解,硬解有什么要求?如何设置才能调用硬解?以下文字将用最简单的语言,和较少的转业术语作出说明。
一、常见的高清视频的编码及封装格式对于高清视频来说,主流的编码技术目前主要有MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB 和WMV-HD 等等。
其中,H264/AVC、VC-1、MPEG-2是蓝光(Blu-ray Disc)所选择的编码格式,也是目前最流行的高清视频编码格式。
另外就是高清视频的封装格式,封装格式和编码格式是互相区别的,许多人会把它们混淆。
1、H264/X264/AVC 编码格式绝大多数视听玩家对于H264 编码都不会感到陌生,H264 编码的身世显赫,是ITU-T(国际电信联盟视频编码专家组)与ISO/IEC(国际标准化组织动态图像专家组)合作组成的JVT(联合视频组)推动的新一代数字视频编码标准,也称为MPEG-4/AVC 编码。
H264 编码依托雄厚的背景,在技术上独树一帜,大幅领先于其它编码算法。
X264 编码,是H264 编码的一个开源分支,它符合H264 标准,其功能在于编码,而不作为解码器使用,X264 编码最大的特点在于注重实用,它在不明显降低编码性能的前提下,努力降低编码的计算复杂度,X264 对于H264 编码中的一些复杂编码特性做了折衷处理,其压缩视频体积小于XVID(MPEG-4)编码视频,以小体积、高画质的特点得到了广泛认可。
2、MPEG-2 编码格式MPEG-2 编码标准是由MPEG(Moving Picture Experts Group)工作组发布的视频与音频压缩国际标准。
MPEG-2 编码于1994 年发布,常用于广播信号(卫星电视、有线电视)的视频和音频编码,经过后期不断修改,不仅成为DVD 的核心技术,还应用于HDTV 高清电视传输。
3、VC-1 编码格式WMV(Windows Media Video)作为经久不衰的一种视频编码,一直在不断改进,2003 年,微软基于WMV 第九版(WMV9)编码技术,正式提出了VC-1 编码标准,并于2006 年正式成为国际标准。
VC-1 编码作为较晚推出的高清编码算法,自然吸收了MPEG-2 与H264 编码的优点,其压缩比介于MPEG2 和H264 之间,编解码复杂性仅有H264 的一半,即压缩时间更短、解码计算更小,在微软的大力推动下,VC-1 编码已经得到了BD 蓝光光盘、电影及电视学会(SMPTE)的支持。
近几年来,为了更好的推广WMV9/VC-1 编码标准,微软不遗余力的建立了WMV-HD 高清资源站点,大量发布采用VC-1 编码压制的720P、1080P 宣传片及演示片(WMV-HD 视频格式),试图营造声势,吸引用户关注。
不过,中庸的技术(与H264 相比无明显编码优势)、封闭的平台(限于Windows 系统)、后发的劣势(2006 年通过成为国际标准)仍然给微软VC-1 编码的应用前景带来了较大的不确定性。
4、高清视频的封装格式封装格式其实是一个“容器”,它不同于编码格式,封装就相当于捆绑打包,将已经编码好的视频文件和音轨文件打包在一起,并按照一定规则建立排序和索引,便于播放器或播放软件来索引播放。
常见的封装格式有MKV、AVI、MOV、TS、PS 等等,高清媒体文件的后缀名(扩展文件名)一般都是媒体的封装格式。
(1)MOV 格式:MOV 多见于Apple QuickTime 网站上的电影预告片。
MOV 类似于RMVB,过于封闭自守,民间制作组没有人会用这个不方便的形式。
(2)AVI 格式:AVI 封装是微软在上世纪90 年代初创立的封装标准,是当时为对抗QuickTime 的MOV 格式而推出的,因为当时还没有流式播放需要,AVI 的将索引布置在打包文件的尾部,这就使得AVI 封装不能做到流式播放(流媒体)。
AVI 封装只能支持有限的几种视频音频编码形式,且AVI 不能支持音频的VBR 动态比特率编码。
(3)TS 格式:TS(Transport Stream)是一种比较先进的封装形式,蓝光原盘中,就采用了TS 封装。
TS 封装支持几乎所有编码的高清视频和音轨文件。
PS(Program Stream)封装的技术基本和TS 相同,但PS 封装和AVI 一样,都不是流媒体,不能够支持流式播放,PS 封装使用在原先的HDDVD 中。
在高清标准下,MPEG-2 编码的视频文件主要采用TS 封装格式。
(4)MKV 格式:MKV(Matroska)是一种新兴的多媒体封装格式,可以将各类视频编码、16 条或以上不同格式的音频和语言不同的字幕封装在一个文件内,它具有开放源代码、音视频编码丰富、网络亲和性好等优势,已经得到众多视频压制组和玩家的支持,正逐渐成为高清视频的主流视频格式。
H264 编码与X264 编码目前大多采用MKV 封装格式。
二、高清视频的播放组件及调用流程视频文件的解码过程如下依次需要用到的组件有“分离器”、“解码器”、“渲染器”,它们统称为“滤镜”。
1、分离器(Splitter)要正确地播放多媒体文件(不管是否高清媒体文件),播放器首先要正确地调用分离器,把视频流和(或)音频流正确地分离出来,然后交给解码器进行解码,这就是分离器的使命。
上文中说到有不少的封装格式,每一种封装格式都必须有相对应一种分离器,才能正确的把视频和音频分离出来以供解码器解码。
常用的分离器有:Gabest MPEG Splitter(Media Player Classic 作者编写的分离器)、KMP Splitter(KMPlayer 原配的分离器)、Haili Media Splitter 等等,这三种分离器能够支持较多的封装格式,其它的分离器还有Moonlight-Elecard MPEG2 Demultiplexer(月光分离器)、nVIDIA Transport Demux(nVIDIA 公司的分离器,配合PureVideo 使用)、CyberLink Demux(PowerDVD 软件中的分离器)等等。
2、解码器(Decoder)解码器在整个视频的播放中占据了最主要的位置,它的作用是对由分离器分离出来的音频流和视频流分别进行解码。
解码器又分为视频解码器和音频解码器。
常见的视频解码器有:(1)MPEG-2 视频解码器:InterVideo Video Decoder(WinDVD 的解码器)、CyberLink DTV Video/SP Filter 和CyberLink Video/SP Filter (PowerDVD 的解码器)、Moonlight-Elecard MPEG2 Video Decoder、nVIDIA Video Decoder(nVIDIA PureVideo 的解码器)、Sonic CinemasterVideo、Gabest Video Decoder 等等。
(2)H264/X264/AVC 视频解码器:CyberLink H.264/AVC Decoder (PowerDVD 的解码器)、CoreAVC DirectShow Video Decoder、Moonlight H264 Video Decoder、ffdshow MPEG-4 Video Decoder 等等。
(3)VC-1 视频解码器:CyberLink VC-1 Deocder(PowerDVD 的解码器)、Media Player Classic Video Decoder、WMVideo Decoder DMO(微软的解码器)等等。
常见的音频解码器有:CyberLink Audio Decoder(PowerDVD 的解码器)、AC3 Filter、InterVideo Audio Decoder、nVIDIA Audio Decoder 等等。
3、渲染器(Renderer)渲染器与解码器一样,分为视频渲染器和音频渲染器,解码后的视频数据经过视频渲染器的渲染后呈现到显示设备上,解码后的音频经过音频渲染器的渲染后从声卡输出。
渲染在视频播放的过程中是很重要的,因为它会影响到视频最终的效果,不同的渲染器有不同的技术特性,对电脑的配置(主要是CPU 和显卡)的要求也不一样。
视频渲染器主要有以下几种:(1)旧式视频渲染器(Video Renderer):这种是最原始的渲染器,它接收到来自解码器解码后的数据流,在显示设备上显示。
这种渲染器基本上不能调用到显卡硬件特性,全靠CPU 来完成渲染任务。
(2)覆盖合成器(Overlay Mixer):覆盖合成器能够将若干路视频流合并输出到显示设备上,并且它能够很好地调用显卡硬件的拉伸,颜色空间变换等硬件功能,以减少对CPU 资源的占用率。
视频覆盖的画面质量事实上取决于显卡硬件。
通常在使用覆盖合成器的时候无法直接对正在播放的视频截图。
(3)VMR 渲染器(Video Mixing Renderer):VMR 对覆盖合成器进行了改进,它是基于DirectX 的视频渲染器,能够支持16 路的视频流混合。
VMR 根据DirectX 版本的不同,可以分为VMR7 和VMR9,其中VMR7 基于DirectDraw7(2D),而VMR9 基于Direct3D9(3D),VMR9 可以支持视频特效(Video Effects)和视频变换(Video Transitions)。
VMR 根据渲染模式的不同又分为“窗口化”(Windowed)、“无窗口”(Windowless)、“未渲染”(Renderless)模式。
(4)EVR 增强型视频渲染器(Enhanced Video Renderer):微软在Windows Vista 系统就开始引入的新视频渲染器,当然也包含在新的操作系统Windows 7 中。
它与VMR 最大的区别就是能够支持DXVA 2.0。
三、硬件解码加速DXVA 接口规范和确解码级别、新兴的CUDA 和Stream 技术DXVA 的全称是DirectX Video Acceleration,中文意思是DirectX 视频加速。
DXVA 不仅包括了视频数据的解码运算,还有各种后期处理运算,比如图像缩放、色彩空间转换、反交错等等。
DXVA 其实就是大家常说的“硬解”。
显卡是否支持DXVA,是直接关系到在视频播放的过程中CPU 资源的利用率。