您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 高清视频相关知识和 KMPlayer 硬解码(DXVA)设置
“高清”,就是高清晰度,是相对于“标清”(即标准清晰度)而言的,主要是指高清晰度的视频媒体,高清技术的发展,越来越多的人接触到高清,现在网络上是铺天盖地的高清视频资源,高清电视、高清电影、高清MTV等等。高源媒体的解码过程是怎么样的?如何才能在电脑上正确地播放高清媒体?什么是硬解,硬解有什么要求?如何设置才能调用硬解?以下文字将用最简单的语言,和较少的转业术语作出说明。一、常见的高清视频的编码及封装格式对于高清视频来说,主流的编码技术目前主要有MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB和WMV-HD等等。其中,H264/AVC、VC-1、MPEG-2是蓝光(Blu-rayDisc)所选择的编码格式,也是目前最流行的高清视频编码格式。另外就是高清视频的封装格式,封装格式和编码格式是互相区别的,许多人会把它们混淆。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(MovingPictureExpertsGroup)工作组发布的视频与音频压缩国际标准。MPEG-2编码于1994年发布,常用于广播信号(卫星电视、有线电视)的视频和音频编码,经过后期不断修改,不仅成为DVD的核心技术,还应用于HDTV高清电视传输。3、VC-1编码格式WMV(WindowsMediaVideo)作为经久不衰的一种视频编码,一直在不断改进,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多见于AppleQuickTime网站上的电影预告片。MOV类似于RMVB,过于封闭自守,民间制作组没有人会用这个不方便的形式。(2)AVI格式:AVI封装是微软在上世纪90年代初创立的封装标准,是当时为对抗QuickTime的MOV格式而推出的,因为当时还没有流式播放需要,AVI的将索引布置在打包文件的尾部,这就使得AVI封装不能做到流式播放(流媒体)。AVI封装只能支持有限的几种视频音频编码形式,且AVI不能支持音频的VBR动态比特率编码。(3)TS格式:TS(TransportStream)是一种比较先进的封装形式,蓝光原盘中,就采用了TS封装。TS封装支持几乎所有编码的高清视频和音轨文件。PS(ProgramStream)封装的技术基本和TS相同,但PS封装和AVI一样,都不是流媒体,不能够支持流式播放,PS封装使用在原先的HDDVD中。在高清标准下,MPEG-2编码的视频文件主要采用TS封装格式。(4)MKV格式:MKV(Matroska)是一种新兴的多媒体封装格式,可以将各类视频编码、16条或以上不同格式的音频和语言不同的字幕封装在一个文件内,它具有开放源代码、音视频编码丰富、网络亲和性好等优势,已经得到众多视频压制组和玩家的支持,正逐渐成为高清视频的主流视频格式。H264编码与X264编码目前大多采用MKV封装格式。二、高清视频的播放组件及调用流程视频文件的解码过程如下依次需要用到的组件有“分离器”、“解码器”、“渲染器”,它们统称为“滤镜”。1、分离器(Splitter)要正确地播放多媒体文件(不管是否高清媒体文件),播放器首先要正确地调用分离器,把视频流和(或)音频流正确地分离出来,然后交给解码器进行解码,这就是分离器的使命。上文中说到有不少的封装格式,每一种封装格式都必须有相对应一种分离器,才能正确的把视频和音频分离出来以供解码器解码。常用的分离器有:GabestMPEGSplitter(MediaPlayerClassic作者编写的分离器)、KMPSplitter(KMPlayer原配的分离器)、HailiMediaSplitter等等,这三种分离器能够支持较多的封装格式,其它的分离器还有Moonlight-ElecardMPEG2Demultiplexer(月光分离器)、nVIDIATransportDemux(nVIDIA公司的分离器,配合PureVideo使用)、CyberLinkDemux(PowerDVD软件中的分离器)等等。2、解码器(Decoder)解码器在整个视频的播放中占据了最主要的位置,它的作用是对由分离器分离出来的音频流和视频流分别进行解码。解码器又分为视频解码器和音频解码器。常见的视频解码器有:(1)MPEG-2视频解码器:InterVideoVideoDecoder(WinDVD的解码器)、CyberLinkDTVVideo/SPFilter和CyberLinkVideo/SPFilter(PowerDVD的解码器)、Moonlight-ElecardMPEG2VideoDecoder、nVIDIAVideoDecoder(nVIDIAPureVideo的解码器)、SonicCinemasterVideo、GabestVideoDecoder等等。(2)H264/X264/AVC视频解码器:CyberLinkH.264/AVCDecoder(PowerDVD的解码器)、CoreAVCDirectShowVideoDecoder、MoonlightH264VideoDecoder、ffdshowMPEG-4VideoDecoder等等。(3)VC-1视频解码器:CyberLinkVC-1Deocder(PowerDVD的解码器)、MediaPlayerClassicVideoDecoder、WMVideoDecoderDMO(微软的解码器)等等。常见的音频解码器有:CyberLinkAudioDecoder(PowerDVD的解码器)、AC3Filter、InterVideoAudioDecoder、nVIDIAAudioDecoder等等。3、渲染器(Renderer)渲染器与解码器一样,分为视频渲染器和音频渲染器,解码后的视频数据经过视频渲染器的渲染后呈现到显示设备上,解码后的音频经过音频渲染器的渲染后从声卡输出。渲染在视频播放的过程中是很重要的,因为它会影响到视频最终的效果,不同的渲染器有不同的技术特性,对电脑的配置(主要是CPU和显卡)的要求也不一样。视频渲染器主要有以下几种:(1)旧式视频渲染器(VideoRenderer):这种是最原始的渲染器,它接收到来自解码器解码后的数据流,在显示设备上显示。这种渲染器基本上不能调用到显卡硬件特性,全靠CPU来完成渲染任务。(2)覆盖合成器(OverlayMixer):覆盖合成器能够将若干路视频流合并输出到显示设备上,并且它能够很好地调用显卡硬件的拉伸,颜色空间变换等硬件功能,以减少对CPU资源的占用率。视频覆盖的画面质量事实上取决于显卡硬件。通常在使用覆盖合成器的时候无法直接对正在播放的视频截图。(3)VMR渲染器(VideoMixingRenderer):VMR对覆盖合成器进行了改进,它是基于DirectX的视频渲染器,能够支持16路的视频流混合。VMR根据DirectX版本的不同,可以分为VMR7和VMR9,其中VMR7基于DirectDraw7(2D),而VMR9基于Direct3D9(3D),VMR9可以支持视频特效(VideoEffects)和视频变换(VideoTransitions)。VMR根据渲染模式的不同又分为“窗口化”(Windowed)、“无窗口”(Windowless)、“未渲染”(Renderless)模式。(4)EVR增强型视频渲染器(EnhancedVideoRenderer):微软在WindowsVista系统就开始引入的新视频渲染器,当然也包含在新的操作系统Windows7中。它与VMR最大的区别就是能够支持DXVA2.0。三、硬件解码加速DXVA接口规范和确解码级别、新兴的CUDA和Stream技术DXVA的全称是DirectXVideoAcceleration,中文意思是DirectX视频加速。DXVA不仅包括了视频数据的解码运算,还有各种后期处理运算,比如图像缩放、色彩空间转换、反交错等等。DXVA其实就是大家常说的“硬解”。显卡是否支持DXVA,是直接关系到在视频播放的过程中CPU资源的利用率。1、DXVA接口规范的版本DXVA接口规范目前有两个版本,分别是DXVA1.0和DXVA2.0。DXVA1.0的规范里最早定义了MPEG-2和WMV的硬件解码加速能力,而DXVA2.0比1.0版本增加了对H264、VC-1硬件解码加速能力的定义。也就是说,要“硬解”MPEG-2的视频,只需要显卡能够支持DXVA1.0标准就可以了,而要“硬解”H264/AVC的视频,就要求显卡支持DXVA2.0的标准。2、DXVA硬件解码加速能力的级别视频硬件解码的加速能力的级别基本上分为三个,从高到底分别为:VLD(VariableLengthDecoding/变字长解码)、IDCT(InverseDiscreteCosineTransform/逆离散余弦变换)、MoComp(MotionCompensatiom/运动补尝)。VLD加速用于处理视频比特流(BitStream),IDCT用于处理帧内压缩(Intraframecompression),MC用于处理帧间压缩(InterframeCompression)。显卡能够支持越高级的加速能力,就能更大幅度地减轻对CPU资源的占用。如何才能快速地知道自己显卡是否支持DXVA?利用一个叫做DXVAChecker的软件,目前最新的版本是2.2.0.1。DXVAChecker在WindowsXP系统下运行时需要一个dxva2.dll文件,如果没有它,那么将无法正确探测出显卡对DXVA的支持情况。如果实在找不到这个文件,可以下载安装微软的.NETFramework3.0或者.NETFramework3.5。运行DXVAChecker后,它便在DecoderDevice标签页列出了显示设备对DXVA的支持情况。在上图中,可以看到用于上网本Atom平台的IntelGraphicsMediaAccelerator500(GMA50
本文标题:高清视频相关知识和 KMPlayer 硬解码(DXVA)设置
链接地址:https://www.777doc.com/doc-11672 .html