CUDA如何应用在视频解码 ?
NVIDA现在提出的视频解码加速 ,是不是利用的CUDA的软解码 ,而非之前的硬件解码 。
这里有个问题, 个人理解 ,视频解码抽象的话,可以理解为1个数据转换的的过程。
假设数据转换的过程理解为两个部分: 1,Bit流解码 ;2 ,数据转化为可视数据(简单的讲,如DCT转换,将1中解码出的数据通过频域与色域之间的计算转换,转换为最终输出的数据) 。
我们知道,GPU的主要设计目标是以大量线程实现面向吞吐量的数据并行计算,适合于处理计算密度高,逻辑分支简单的大规模数据并行任务。
从CUDA的并行计算局限性可知,它对于逻辑处理较为复杂的部分应该用处不大,所以个人理解Bit流解码部分,应该是仍交由CPU进行串行处理。
并行计算应该主要用在数据转换为可视数据部分(如DCT转换等) 。因为此时的数据之间没有相关性,并行计算才有可能实施。
但从数据量来,Bit流解码部分交给CPU进行,会导致内存与显存之间的数据交换量很大。这里会形成I/O瓶颈。难道CUDA 部分可以实现Bit流解码功能?如果是这样,如何实现?
没有相关的资料可以查阅 ,望相关领域的人士能够解惑 。