各位前辈,一直对利用CUDA进行H.264硬编/硬解码十分感兴趣,不知从何入手,希望多多指教。
首先,CUDA实现应该算作是软件编码/解码,而不是硬件编码/解码。支持CUDA的GPU是通用处理器而非专用处理器。
其次,如何具体实现,有待您的同行解答,隔行隔山,本人无法回答。只能建议先找相关的资料查阅。
新的(3.x)卡,集成了一部分专用电路,可以实现H.264的6x realtime的1080p@30fps的编码。如果楼主需要查询相关信息,可以考虑谷歌:nvenc.
注意!此专用电路在老的fermi卡上不存在。
NVENC是比amd的gcn卡里集成的VCE引擎更为强大,后者只能实现2x realtime (1080p@30fps)。
我不懂更多的信息。但此硬件引擎的描述是对ICE的2楼的CUDA编码实现的补充说明,如果您使用的是新卡。不妨考虑下。(或者考虑CUDA+硬件编码?)
希望对您有用。
非常感谢两位,我先查一下资料。不知道nv国内的是否有相关的技术人员在负责这一块,能帮忙解决一些技术问题。
我建议你咨询PengWang来决定如何实现CUDA编码/解码以及同时咨询NVENC如何调用来实现编码解码。
或者,如果你勤奋,也可以自己看资料。但我不知道你该看那些资料。因为我不懂。
的确,不知从何下手,连查资料都不知道怎么查。。。不过刚才发现Intel的Quick Sync好像也有硬编码和解码,据说比NV的和AMD的效果要好,真是这样吗?
Quick Sync是专门来编码的专用硬件,和CUDA和OPENCL的编码实现,不能直接相比,因为后两者是通用用途的,正如不能和CPU软件实现直接相比一样。Quick Sync的全部是硬件编码,但硬件编码不是CUDA和OPENCL的全部。
也许NV的NVENC单元和AMD的VCE单元可以用来和intel的Qucik Sync相比较。
此外,如何利用Quick Sync单元,intel有自己的SDK和文档等,建议参考。
[
请勿在技术区灌水,口头警告一次。
祥赐升经同志如需灌水,可以轻解罗裳,移动贵步到此:
http://cudazone.nvidia.cn/forum/forum.php?mod=forumdisplay&fid=99
cuda 5 的 samples 目录下有 h264 codec
encoder : \CUDA Samples\v5.0\3_Imaging\cudaEncode
decoder : \CUDA Samples\v5.0\3_Imaging\cudaDecodeGL
和 \CUDA Samples\v5.0\3_Imaging\cudaDecodeD3D9
我用GTX 560SE 的卡在 CUDA 5上试了 1280x720 的 H264 encode 的 performance
发现每个 frame 只需 0.5 ms ,速度惊人
感谢pklite的回复和数据。
善哉!!
楼主有空参考下哈。
期待pklite的再次莅临。
CUDA有一个H.264的库,具体的库名我记不清楚了,你查一上安装目录下doc目录里面的CUDA_VideoDecoder_Library.pdf文件