的标志。
DXVA_ModeH264_A H264_A DXVA_ModeH264_B H264_B DXVA_ModeH264_C H264_C DXVA_ModeH264_D H264_D DXVA_ModeH264_E H264_E DXVA_ModeH264_F H264_F DXVA_ModeVC1_A VC1_A DXVA_ModeVC1_B VC1_B DXVA_ModeVC1_C VC1_C DXVA_ModeVC1_D VC1_D
不过需要注意的是,DXVA是一个具有“分级”特性的标准。简单的理解就是硬件支持DXVA的级别,而不仅仅只有“支持”与“不支持”两个档次。从上面的表中我们可以看出,DXVA对H.264视频硬件加速有6种级别,而对于VC-1视频有四种级别。
DXVA不仅仅对显卡的支持度进行了分级,而且对解码器的支持度也进行了分级,也就是说解码器即使支持DXVA,也不一定能够实现DXVA中所有的功能。而由于目前视频封装格式非常混乱,就极容易出现一些不可预知的问题。如果对DXVA这个标准进行评价的话,既有好评也有坏评,好评是微软直接提供了硬件加速与解码器之间的桥梁,而坏评就是其要求十分严格,导致我们前面所说的一些问题。
前面我们说到,DXVA是导致使用GPU硬解码出现问题的根本原因,如果要解决这个问题,最好的办法是脱离DXVA,比如CPU解码就不会出现什么问题,而且画质也非常好,这就是因为CPU软解码不需要DXVA(DXVA是硬件加速标准)。那么,有没有办法利用显卡模拟CPU进行解码呢?——CUDA做到了这一点。
对于CUDA这个名词相信各位都不会陌生,简单的说就是NVIDIA显卡的通用计算技术,CUDA可以直接使用GPU来进行CPU很难完成的复杂运算,理论上来说可以运行任意CPU运算的程序。而且由于CUDA编程语言和C语言基本没有区别,所以CUDA很快就被全世界各个行业所接受。
在视频领域,我们之前经常都说到了利用CUDA进行视频编码,比如我们之前测试过的Cyberlink MediaShow,VREVEal MotionDSP,ArcSoft TotalMedia Theatre以及MediaCoder等。但是视频解码一直由于GPU内有专门的运算模块,导致这一领域几乎无人问津。而日前,CoreAVC推出了1.9.x版本的解码器,正式加入了CUDA视频解码的功能。
CoreAVC官方网站上1.9.5版本的广告已经赫然出现了CUDA标志
CoreAVC是非常流行的H.264解码器之一,几乎所有集多种解码器于一身的播放器都带有CoreAVC解码器。今年2月份,CoreAVC率先发布了1.9.0版本的解码器,首次支持CUDA解码H.264视频,不过由于当时存在一些播放色块的问题,很快CoreAVC就推出了1.9.5版本的解码器,从此H.264高清视频解码正式迈入CUDA时代。
我们知道,CUDA是一个完整的NVIDIA GPGPU解决方案,它直接提供了硬件的访问接口,而不必通过图形API来实现GPU硬件的访问。也就是说,CUDA从某种意义上模拟了CPU的计算。而使用CUDA进行高清视频解码的原理也就不难理解了!实际上,使用CUDA进行高清视频解码,就是通过调用GPU中庞大的流处理器资源,进行视频解码运算,并不是调用GP9
7
3
1
2
3
4
5
6
4
8
:
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com |
关注天下网吧微信,了解网吧网咖经营管理,安装维护 / 下载天下网吧APP,交流讨论