GPU视频处理详析(去除马赛克的诀窍)
既然MPEG2 Decoder就能很好的回放MPEG2视频,那另外两个部件是干什么的呢?
答案来自其他视频:WMV,MPEG4(AVI等)以及H.264。这些视频解压的时候也有大量IDCT运算和MC运算,这个时候Motion Estimator和Video Precessor就起到作用了。
本文来自织梦
上图就是MPEG4编码的流程,比MPEG2多了猜测部分和马赛克处理部分,其余的操作都比较类似,只不过IDCT和MC的时候算法或者参数不同,MPEG2 Decoder无法完成罢了。于是Motion Estamitor就担负起MC相关的运算,Video Processor担负起IDCT运算。
织梦内容管理系统
上图就是Video Processor的结构,比较复杂,视频处理单元晶体管的很大部分被其占据,主要分为地址单元,标量运算单元,矢量运算单元和分支单元,另外还有8KB 的数据缓存和4KB的指令缓存。这个处理器支持动态分支猜测,矢量处理单元是16路的SIMD 矢量单元,用于IDCT这类8*8矩阵运算很合适,运算能力强劲,同时也适合实现复杂的视频编码算法。 本文来自织梦
对于WMV9,主要的运算和MPEG4类型差不多,参数不同。
H.264 编码效率比较高,相比H263 与MPEG-4标准在保证相同的图象质量下,编码后的码率能减少50%;相比MPEG-2的复杂度,解码器复杂度增加了3 倍,编码器增加了4倍。Video Prosessor也被设计用来实现这样的复杂解码。同时H.264编码的运动补偿部分也比其他编码复杂,运算量大了不少,对Motion Estimator也是个考验。
二.插值补偿
以上视频加速部分都是针对视频解压,出来的视频是原始大小,比如DVD视频就是720 X 480(NTSC),VCD视频甚至只有352 X 288,只有720p的视频和1080i,1080p的视频一般不需要缩放,原始大小即可。所以一般PC上的视频播放都是在1024 X 768或者1280 X 1024下全屏播放,这就涉及到视频缩放了。
视频缩放的时候最轻易出现的就是马赛克,最简单的例子,打开张图片,用ACDsee打开,放大了看,倍数越高,马赛克越明显。在视频编码里的去马赛克是针对编码中的损失的修正,不是缩放的修正;在缩放的时候就得靠软件或者硬件来对马赛克进行插值补偿了,方法有不少,一般是用类似模糊,柔化的方法。不同的
显示芯片
,插值的方法和效果大相径庭。
说到插值就得说说Overlay Mixer和Video Mixing Renderer (VMR)了。前者被称为“视频覆盖”或者重叠,是通过相关硬件进行视频缩放,色域转换(RGB和YUV的互相转换),亮度,Gamma,色彩饱和度的调节等等,老显卡的视频都是通过Overlay“显示”出来的,Overlay的对于视频放大所产生马赛克通过过滤器进行插值补偿,达到消除马赛克的效果。过滤器通常有水平5级和垂直3级之类的规格,比较厉害的比如Voodoo Banshee/Voodoo3/4/5是10级过滤,在消除马赛克的功夫上是老显卡中的佼佼者。NVIDIA在吞并了3dfx后在GeForce FX显卡中把3dfx的10级过滤学到手了,弥补了以前的不足,脱掉了“格子神化”的帽子。幻日的10级带锐化的过滤器是目前最强大的,V卡的过滤器经常被人描述成“太模糊,有朦胧感,有Photoshop中模糊用过分了的感觉”,幻日的过滤器很好的解决了这个问题。由于Overlay是硬件播放和缩放,对于配置比较低的机器而言,用Overlay Mixer是首选。
文章评论
共有位Admini5网友发表了评论 查看完整内容