《视频渲染解析》word版.doc_第1页
《视频渲染解析》word版.doc_第2页
《视频渲染解析》word版.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

KMPlayer: 渲染器 其实,一个视频文件要播放出来,至少要经过以下三个重要模块的处理:分离器,解码器,渲染器。 分离器的作用就是正确识别文件封装格式,将其中所含的视频编码,音频编码,以及可能包含的字幕等不同的信息流分离出来,交由不同的解码器来处理。而解码器就是将这些往往经过压缩的数据还原出来,必要的时候还要利用GPU的运算能力进行解压缩(即硬解)。 一个很容易混淆的概念就是文件封装格式和压缩编码格式。文件封装格式就是一般由文件后缀名体现的,视频音频数据的封装格式。它和实际视频音频如何压缩编码没有直接关系。例如AVI就是一个典型的封装格式,它可以封装mp3, wmv, wma以及DivX, Xvid等各种视频压缩格式。目前最流行的MKV即Matroska Video则是另外一种封装格式,因其比AVI能支持更多的压缩格式和更先进的功能而逐渐流行,未来有望成为事实上的封装标准。分离器需要做的,就是去识别这些格式。而压缩格式就是指mp3, DivX, Xvid, H.264, realmedia, quicktime等这些视频音频编码的具体方式,分别需要通过合适的解码器来处理。关于这些格式,Wikipedia上有详细的列表。 一般来说,KMPlayer自带的分离器已经能够处理市面上所有常见的封装格式,不需要特别设置。而解码器的问题,主要纠结在是否支持硬解的问题上。这个问题,上次已经讲过了,不再重复。 今天就来谈谈KMPlayer的渲染器。所谓的渲染器,就是将解码器还原出来的视频流,正确地“画”在屏幕上。选择不同的渲染器,能直接影响显示效果,速度和影像叠加(如字幕)等功能。在Windows平台上,因为包括屏幕等硬件层全部被抽象了,程序一般只能通过DirectX API来控制。选择渲染器,其实就是让程序选择不同的方式来控制屏幕显示(包括DirectShow, Direct3D,OpenGL,DirectDraw等)。 KMPlayer的参数设置菜单中,选择视频处理(Video Processing)渲染器(Renderer),就能看到渲染器的选择下拉菜单: Old Video Renderer: 这是Windows 9x/ME/2K时代所用的DirectX渲染器,基本不用试。 Overlay Mixer: 这是KMPlayer的默认渲染器,是最快的渲染器,能支持多重视频流图层叠加(从而加载字幕),但有几个问题:首先是不支持高级叠加模式,如字幕透明效果等(见图例),在Vista环境下和Aero不是很兼容,无法截取视频图像,其次是程序对渲染窗口控制能力弱,拖拽KMPlayer窗口时里面图像会跳跃,对多显示器,分辨率变化等事件的处理能力弱。因此在Windows XP环境下也不建议使用。 VMR-7/9: 这是微软从XP时代开始推的DirectShow视频渲染模式,全称是Video Mixing Render,全面支持各种透明效果,是替代原先Video Render和Overlay Mixer的新技术。VMR-9比VMR-7的功能更强些,具体可看MSDN的介绍。VMR Windowed和Renderless的根本区别就是Windowed模式下,视频全部由VMR渲染。而Renderless模式下,渲染由程序直接控制,从而使视频回放或者游戏等程序可以实现各种高级视频特效。对于KMPlayer用户来说,最直接的区别就是,Windowed模式下,放大的视频画面有锯齿现象,而Renderless模式下程序可以做反锯齿处理,使画面看起来更清晰柔和。但比起Overlay Mixer,两种模式均对窗口的控制更好,拖拽窗口时图像都能平滑移动。因此,在XP或者Vista环境下,首推的渲染器,就是VMR-9 Renderless (HQ Subtitle)。 Direct3D/DirectDraw/OpenGL: 除了OpenGL,这些模式都类似于Overlay Mixer,只是程序通过的接口不同,而OpenGL模式是使用不同于Direct3D的架构在Windows上“画图”了,不过效果都类似。 Enhanced Video Render (EVR): 是Vista开始有的下一代的DirectShow技术,和VMR最大区别就是支持DirectX Video Acceleration (DxVA) 2.0。不过目前看来没有太大实际区别。其中EVR (C/A) 模式支持字幕加载。 其他一些第三方渲染器一般用不到也不用试了。完美解码:视频覆盖:大概在1995年, 当mpeg1(vcd)回放在pc上开始流行的时候, pc的处理能力还么有强大到实时播放的地步. 显卡制造厂商适时的推出了video overlay(视频覆盖)的技术. 它就是种在显卡上用硬件完成同时显示几个视频的功能(拉伸,颜色空间变换,等等.)的技术, 这样就可以在pc上流畅的播放动画而不占用cpu.视频覆盖的画面质量事实上 取决于显卡硬件. 我发现市面上的绝大部分的显卡显示视频覆盖质量都很不行.在视频覆盖上用视频渲染技术的一个最大的关键就是在每个显卡上只有一个视频覆盖 unit(单元). 这样就迫切的需要多显示器系统了.Direct3D:Direct3D 是微软提供给程序员使用一个不断进化的功能集合的DirectX库的一部分. 在新发布的direct9 中, 微软给出了一套新的功能, 性能接近于覆盖 suface(接口), 但是没那么多限制.视频渲染技术基于direct3d比视频覆盖提供了更好的图像质量, 还没有视频覆盖单显示器的麻烦. 但是 不是所有的显卡都支持这个技术, 还有一些根本不支持, 很多不支持整套功能集.作为一个一般的参考, 我会推荐至少要NVIDIA GF4 ti4200 或者ATI Radeon 9xxx的卡(支持Pixel Shader(象素阴影)技术的卡).系统默认渲染器:当zoom 播放器用默认回放模式播放媒体文件的时候, 在低于windows xp的所有windows系统上或者windowsxp的vmr7, 用系统默认渲染器就意味着标准覆盖 .标准覆盖渲染器:这是最老的视频渲染技术了. 在可用的时候它用到视频覆盖, 当视频不可用的时候就退回到纯cpu控制视频. 纯cpu控制就是说cpu替代了视频覆盖来干这些事情, 这对回放是个沉重的打击(cpu更辛苦了).( 我翻译的不错吧<_>)这个渲染的缺点是它不支持固定屏幕高宽比控制, 硬件颜色控制(色调/饱和度/亮度/对比度/gamma(灰度)不可操作, 而且 抓图结果会很很奇怪.覆盖 混合渲染:同样是运用视频覆盖技术, 这个渲染器允许在那些支持颜色控制的硬件上进行颜色控制(色调/饱和度/亮度/对比度/gamma). 有些卡可能只支持颜色控制的一个子集(比如只有亮度). 这个渲染器也支持固定宽高比控制, 只要媒体文件支持(vcd/svcd/dvd/etc.).这个渲染器的缺点就是它回返回返回到纯cpu控制. 当视频覆盖不可操作时, 它就罢工了. zoom player在媒体模式 的这个情况时候, 就会回到标准覆盖渲染. 在dvd模式时, 会报错说视频解码器不能连接到覆盖 混合器.最后, 这个渲染技术还是 抓图的效果不够好.视频混合渲染器7(vmr7):这个渲染器是视频覆盖技术和direct3d技术的结合. 它只在windows xp上有效, 后来被vmr9取代了. windows media player 7-10使用这个技术.这个渲染技术默认使用视频覆盖. 然而, 如果它不可用了, 它可以有限的使用direct3d.它的缺点时不可进行颜色控制, 截屏还是不够好.视频混合渲染器9(vmr9):这是最新的视频渲染技术. 它完全建筑在direct3d上, 需要direct9和最新的硬件. 它可以提供最好的画质(取决于渲染模式和显卡). vmr9支持硬件颜色操作(如果卡支持), 但是没有gamma控制,因为ms没有提供. vmr9也有宽高比控制.vm9支持3种特别的渲染模式:vmr9: 窗口种是最基本的模式. 它向后兼容. 但不支持帧抓屏. 要提一点, 这个模式在windows sp1和directx9b下有bug, 在dvd菜单导航时只能用这个模式了. 在windowsxp sp2和direct9c下这个bug没了.wmr9:窗口无转换这个模式比窗口模式高级点, 用来截图是最好的.wmr9:渲染无转换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论