DXVA是视频硬件加速的统称,不仅仅是视频数据解码(包括H261,MPEG1,MPEG2,H263,MPEG4), 还有Alpha blending, Picture resampling等。但对于播放时CPU利用率影响最大的,则是视频解码,尤其是HDTV的解码。
硬件加速播放的工作原理4
CPU把压缩视频数据(读文件->分离器)通过总线送到显卡里的显存video data buffer。这部分显存是不显示在屏幕的。CPU要求GPU去执行解码,然后GPU就会运用自己的 MC,IDCT电路开始解码,得到原始(未压缩)视频数据。由于视频数据压缩算法用到了很多帧间压缩技术,如I,B,P帧,因此显存里需要保留若干份原始数据,DXVA文档里提到至少需要4份,5个以上更好。未压缩视频数据的格式可以为YUY2。UYVY, YV12, IYUV, NV12, NV21, IMC1~IMC4等。
这是摘自GPU视频处理的一幅图片,介绍的是NV4X的流程,但应该具有普遍意义。
绿色的部分是由GPU完成的(当然是指硬件加速时候)
关于DXVA情况的一些介绍,susanstone网友提供。
不好意思,我没有时间翻译。大致是讲DxVA是微软和硬解压的接口。GF3好像不行。要到GF4MX420,440。然后GF4Ti又不行,要到FX系列。
What is DxVA?
DVD or HDTV uses video compression technique called MPEG2.
It requires lots of computing power to decode MPEG2 streams to uncompressed video.
Even current fastest CPU does not have enough power to decode full resolution HDTV.
Graphics chips manufacturers integrated some function of the MPEG2 decoding algorithm in their graphics chip to aid decoding of the MPEG2 streams.
But it was proprietary architecture and it was hard to use the function for the developers of outside of the chip company.
So Microsoft Corp. made a common API that MPEG2 decoding programs can make use of the Graphics chips capability of MPEG2 decoding regardless of the graphics chips used. This driver is called DxVA(DirectX Video Acceleration).
Unfortunately not all graphics chips and/or driver combination support DxVA.
At the time of this writing ATI Radeon series and drivers are the graphics chips that support DxVA well.
Using DxVA full resolution (1920x1080) HDTV stream can be decoded 30fps/sec using less than 50% of CPU on P4 1.8GHz.
Graphics : ATI Raden7000, 7200,7500 with DDR video memory or
ATI Radeon 8500,9000,9500,9700,9800
nVidia MX420, 440, FX series
DXVA Support: the good news here is that ATI was heavily involved with Microsoft when it formed the DXVA standards for MPEG2 acceleration. The original Radeon supported the full feature set of what would become DxVA even before the standard was finalized. On the NVIDIA side, NVIDIA added a new video processor to their GeForce 4 MX series that is fully DXVA compliant. The GeForce 4 Ti was focoused on 3D gaming and so the silicon went to 3D piplines rather than the video processor the GF4MX had. By the GeForce FX series technology has progressed enough for NVIDIA to put the GeForce 4 MX's video processor into every one of the FX line.
(转载自思路)
网友评论