不使用 DirectShow 作为 Windows CUDA 视频处理管道的基础是不是很愚蠢?
当构建专门在 Windows 上运行的面向 CUDA 的视频处理管道时,有两种方法。
您要么使用 DirectShow,要么不使用。
不使用 directshow 的决定也是自己对管道的每个部分进行编码的决定。
这包括流的读取、解析、处理和渲染或重传。但是
,使用 DirectShow,您可以访问相当大的现有组件,这些组件非常有能力完成管道工作的某些部分。
这意味着您可以将开发过程的重点放在编写一个或多个 DirectShow 源、过滤器或渲染器上,这些源、过滤器或渲染器使用 CUDA 来封装任何新颖的或其他不可用的处理。
由于采用了基于组件的架构,您可以很好地开发替代实现,即 OpenCL。无需接触管道的其他部分。
DirectShow 参与是否有任何责任需要额外的工作来开发和维护非 CUDA 特定的部分?
When building a CUDA oriented video processing pipeline to run exclusively on windows,there are two approaches.
You either use DirectShow or you don't.
The decision not to use directshow is also the decision to code every portion of the pipeline yourself.
This includes reading, parsing, processing and rendering or retransmission of the stream. if if
With DirectShow, however, you gain access to a fairly large body of existing components that are quite capable of doing some portion of the pipeline's work.
This means you may focus your dev process on coding one or more DirectShow sources, filters, or renderers which use CUDA to encapsulate any novel or otherwise unavailable processing.
And as a result of adopting a component based architecture, you are in a good position to develop alternate implementations i.e. OpenCL. without having to touch the other parts of the pipeline.
Are there any liabilities to DirectShow participation that warrant the extra work involved to develop and maintain the pieces that are not CUDA specific?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您还没有看过,查看 NVidia GPU SDK (CUDA SDK) 中的“cudaDecodeD3D9”演示可能会很有用。它无需 DirectShow(使用 CUDA 和 DirectX9)即可解码和渲染视频。同样,如果您愿意,还有一个“cudaDecodeOpenGL”演示。
If you haven't already, it might be useful to have a look at the "cudaDecodeD3D9" demo in the NVidia GPU SDK (CUDA SDK). It decodes and renders a video without DirectShow (using CUDA and DirectX9). Similarly, there's a "cudaDecodeOpenGL" demo if you prefer.