高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx

上传人:b****0 文档编号:12582944 上传时间:2023-04-20 格式:DOCX 页数:15 大小:2.31MB
下载 相关 举报
高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx_第1页
第1页 / 共15页
高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx_第2页
第2页 / 共15页
高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx_第3页
第3页 / 共15页
高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx_第4页
第4页 / 共15页
高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx

《高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx》由会员分享,可在线阅读,更多相关《高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx(15页珍藏版)》请在冰豆网上搜索。

高清视频相关知识和 KMPlayer 硬解码DXVA设置.docx

高清视频相关知识和KMPlayer硬解码DXVA设置

高清视频相关知识和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(GMA500)对DXVA的支持情况。

图上DXVA1/DXVA2是指支持的DXVA版本,“NV12”是指视频输出的色系(其它的颜色系还有YUV12、YUY等等,没有太大的意义),后面是能够支持的分辨率。

须要注意的是,对WMV9的支持当中,有一个级别是“PostProc(PostProcessing)”,中文意思是“显示后处理”,它是最低级的DXVA。

还有一个称为“FGT(FilmGrainTechnology)”的技术,即所谓胶片感,目的是在不牺牲压缩能力的同时保持视频源特有的颗粒信息。

  关于IntelGraphicsMediaAcceralator500:

  GMA500与其他GMA系列产品不同,该显卡核心来自英国ImaginationTechnologies公司的PowerVRSGX,该公司前身PowerVR公司曾经在显卡市场上出现的产品包括PowerVR,Kyro和KyroII。

其PowerVR2曾用于世嘉的DC游戏机中。

GMA500的技术参数的特性如下:

使用GMA500主要集成于以下几个系列的芯片组中:

UL11L、US15L、US15W。

其中UL11L核心频率为100MHz,其他两款的主频为200MHz。

支持VertexShader(顶点着色)4.1,PixelShader(像素着色)4.1,PixelPipelines(像素管线)2条,UnifiedshaderPocessors(统一渲染单元)4个,支持hardwarevertexshaders(硬件定点着色),峰值内存带宽UL15L为3.2GB/s,US15L、US15W为4.2GB/s,最大支持共享显存256MB,OpenGL2.0,DirectX10.1,支持的硬件解码有:

MPEG-2、VC-1、H264/AVC。

基本上,除了核心的频率较低外,硬件解码水平和最新的X4500MHD类似。

  4、nVIDIACUDA技术和AMD(ATI)Stream技术

  

(1)nVIDIACUDA:

CUDA的全称是ComputeUnifiedDeviceArchitecture(统一计算设备架构),它是nVIDIA近年来力推的一项技术。

随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。

在计算性能上已经超越了通用的CPU。

如此强大的芯片如果只是作为显卡就太浪费了,CUDA正是可以让显卡可以用于图像计算以外的技术。

CUDA技术最典型的应用这一就是进行高清解码。

著名的解码器CoreAVC,它并不支持DXVA,在过去它完全利用CPU进行解码运算,不过在新版本的CoreAVC解码器当中加入了对CUDA技术的支持,把解码运算的任务转移到GPU上来,大大地减轻了CPU的负担。

  

(2)AMD(ATI)Stream:

虽然与nVIDIA的CUDA技术的实现方式不一样,但是出发点和最终目的都是相同的,Stream流技术就是利用AMDGPU多核在浮点运算性能上的优势进行加速计算。

在高清解码的应用上,AMDStream比nVIDIACUDA支持更多的功能:

比如MPEG-2的转码、FullHD1080p的编码输出等,另外,AMDStream的软件是免费的(CUDA的软件价格30.00美元)。

四、KMPlayer播放高清视频的硬解码(DXVA)相关设置

  1、关于KMPlayer和PotPlayer

  KMPlayer简称KMP,早期名叫WaSaVi播放器。

作者是韩国的姜龙喜。

KMPlayer是一套将网络上所有能见得到的解码器(Codec)全部收集于一身的影音播放软件;此外,KMPlayer还能够播放DVD与VCD,汇入多种格式的外挂字幕档、使用普及率最高的WinAMP音效外挂与支援多种影片效果调整选项等。

PotPlayer是KMPlayer原作者姜龙喜进行Daun公司后用C++语言(KMPlayer是用Delphi语言写的)重写的新一代作品,目前正在全力开发中,功能尚不及KMPlayer。

  2、KMPlayer的具体设置

  虽然KMPlayer已经集成了解码器,但是它们是无法正常调用显卡的DXVA加速的。

而目前最好的DXVA解码器是Cyberlink集成在PowerDVD中的解码器。

如果电脑里没有安装PowerDVD,那么就需要自己搜索下载它的单独解码器。

(可以邮件向我索取。

)需要用到的PowerDVD的解码器主要有四个:

H264解码器Cl264dec.ax、MPEG-2解码器Clvsd.ax、VC-1解码器Clvc1dec.ax、音频解码器Claud.ax。

  

(1)在设置之前,最好将KMPlayer的设置恢复成初始的状态:

按“F2”键打开KMPlayer的设置,点击下方的“初始化所有设置”按钮。

对KMPlayer进行设置的目的是屏蔽KMPlayer内部的解码器,使KMPlayer可以调用外部的PowerDVD解码器进行视频解码。

  

(2)在KMPlayer的设置菜单里,依次找到“滤镜控制”—“解码器使用”—“内部视频解码器”,在右边的“常规”选项卡里解除“H.263+”、“H.264”、“AVC1”、“VC-1”的勾选,如下图所示:

  (3)然后再找到“滤镜控制”—“解码器使用”—“外部视频解码器”,点击右侧的“搜索外部解码器”,弹出“外部解码器/滤镜管理”对话框,再点击“添加外部解码器”按钮,依次添加上文所讲的四个PowerDVD解码器。

如下图所示。

  

  (4)添加后双击解码器弹出解码器设置对话框,勾选“USEDXVA”或者“UseHardwareAcceralator”。

  (5)点击确定后回到“外部视频解码器”设置窗口,“H.264视频”、“AVC1视频”、“VC-1视频”分别选择刚才添加的PowerDVD解码器。

  解码器的设置就到此结束了。

此外,有几要说明的问题。

  

(1)关于KMPlayer设置的保存:

在KMPlayer的“常规”设置中,有一个“保设置到KMPcfg.ini文件”的选项,本人认为可以勾选,全部设置完成后可以备份KMPlayer安装目录下的KMPcfg.ini文件,重新安装系统后可以快速地恢复原先的KMPlayer设置。

  

(2)关于KMPlayer的“超级速度模式”:

许多网友认为,必须勾选这个选项才能正常调用DXVA硬解,但是根据我的实际情况,这个选项不是必须勾选的。

当系统里安装了许多另外的解码器(比如PureCodec完美解码、FinalCodec终极解码、K-LiteCodecPack等等)时,开启这个选项可以滤掉多余的解码插件。

  (3)关于“源滤镜”:

在KMPlayer中有“源滤镜”的设置,这个“源滤镜”到底是何解释,本人尚不太清楚,暂且把它理解成优先级较高的滤镜。

  (4)关于“渲染器”:

一般来说,在WindowsXP系统下播放效果最好的渲染器是VMR9,而WindowsVista/Windows7系统下最好的渲染器是EVR。

但是有些系统会出现兼容性问题,出现播放过程中无画面(黑屏)有声音、无法播放甚至蓝屏死机的时候,可以尝试改变一下渲染器的设置。

本人的上网本(显卡是GMA500)就无法让KMPlayer在WindowsXP系统中使用VMR9渲染器,往后的测试都是使用VMR7渲染器。

五、几段高清视频的播放测试:

  硬件系统:

AcerAspireOne751h:

IntelAtomZ520(1.33G/512K/133MHz)、US15W、GMA500(Driver6.14.11.1018)、1366×768(11.6")

  软件系统:

WindowsXPServicesPack3(5.1.2600.5512)、DirectX9.0c、KMPlayer2.9.4.1436、PowerDVD8.0/9.0Codec

  测试片源:

(点击图片可以放大看原分辨率图片)

  

(1)大塚愛ユメクイ:

封装格式TS、视频编码MPEG-2、音频编码LPCM、分辨率1440×1080i

  

(2)江若琳你不在了:

封装格式MP4、视频编码AVC、音频编码AAC、分辨率1920×1080i

  (3)变形金刚预告:

封装格式MOV、视频编码AVC、音频编码AAC、分辨率1920×1080p

  (4)阿凡达预告:

封装格式MOV、视频编码AVC、音频编码AAC、分辨率1920×1080p、外挂字幕SRT

  根据播放器显示的OSD信息,视频输出显示是DXVA,说明已经成功地开启了硬件加速解码。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1