我有一个应用程序,可以使用OpenGL进行颜色转换、缩放和转换等视频处理。我主要使用的是BGRA (1xGL_BGRA)或YUVA (4xGL_R)视频,也就是包括alpha。
现在我也想做一些高质量的去隔行扫描。我注意到,Nvidia通过其"PureVideo“功能支持高质量的硬件加速去隔行扫描。基本上,我想要做的是发送一个具有x个颜色通道的交错OpenGL纹理,并得到两个渐进式纹理。
我的问题是,如何才能最容易、最有效地访问此功能(可能是在与OpenGL的互操作中)?
我一直在研究DXVA和OpenMax,但两者似乎都相当专注于回放(而不是去隔行扫描处理,即需要设置帧速率等无关选项)。和无字母格式...
发布于 2012-03-21 01:08:13
gStreamer libraries have good de-interlacing modules.您可以使用directshow模块在窗口中显示结果,或者通过连接到各种事件来自己处理帧。我们目前在工作中使用它来满足我们所有的视频处理需求。
发布于 2012-03-23 15:41:19
根据您明确的需求,看起来VDPAU最符合您的需求。复杂性:它适用于基于Unix的操作系统,而不是Windows。
如果你被锁定在Windows上,DXVA是个不错的选择。如果你是在一个跨平台的环境中操作,OpenMAX是最好的选择。如果你对问题中已经提出的建议持开放态度,那么the rest of these是值得一试的。
发布于 2012-05-11 21:23:52
要点1:如果你想获得高质量的硬件加速去隔行扫描,你必须通过DirectX。
要点2:除了其他人已命名的选项(DXVA和OpenMAX)外,至少还有用于Quicksync加速去隔行扫描的英特尔媒体开发工具包,它尚未命名,并通过其VPP视频预处理过滤器提供每帧去隔行扫描。
要点3:在NVidia上从DirectX转到OpenGL:http://developer.download.nvidia.com/opengl/specs/WGL_NV_DX_interop.txt
https://stackoverflow.com/questions/9725396
复制相似问题