【问题标题】:GPU deinterlacingGPU 去隔行扫描
【发布时间】:2012-04-01 07:05:27
【问题描述】:

我有一个使用 OpenGL 进行视频处理(例如颜色变换、缩放和平移)的应用程序。我主要使用 BGRA (1xGL_BGRA) 或 YUVA (4xGL_R) 视频,即包括 alpha。

现在我还想做一些高质量的去隔行。我注意到 Nvidia 通过其“PureVideo”功能支持高质量的硬件加速去隔行扫描。基本上我想要做的是发送一个带有 x 个颜色通道的交错 OpenGL 纹理,并得到两个渐进纹理。

我的问题是如何最简单、最有效地访问此功能(可能与 OpenGL 互操作)?

我一直在研究 DXVA 和 OpenMax,但两者似乎都更侧重于播放(不是去隔行处理,即需要设置帧速率等非相关选项等)和无 alpha 格式。 ..

【问题讨论】:

  • 什么定义了“高质量”去隔行扫描?如果您只想拍摄一张图像并通过交替的像素行将其拆分为两个,您可以在着色器中轻松完成此操作,但我不是视频专家,我不确定这是否是您的意思。
  • 我的意思是类似于时空去隔行。你的建议是可怕的质量。
  • 您可以在这里查看guru.multimedia.cx/deinterlacing-filters,了解“高”和“低”质量去隔行之间的区别。
  • 只是出于兴趣,像 deinterlace 之类的东西在 gStreamer 中是微不足道的。也许您应该考虑使用 3rd 方库来处理这类事情,而不是自己动手?
  • 我一直使用 ffmpeg 进行去隔行扫描,但它不是 gpu 加速的。

标签: c++ windows opengl openmax dxva


【解决方案1】:

gStreamer libraries have good de-interlacing modules. 您可以使用directshow 模块在窗口中显示结果,或者通过挂钩各种事件自行处理帧。我们目前在工作中使用它来满足我们所有的视频处理需求。

【讨论】:

  • 似乎不是 gpu 加速的。
  • 使用 gStreamer 取决于您链接到管道的模块。例如,有一个 GPU 加速的“gldeinterlace”模块。事实上,您可以链接大约 10 个不同种类的 GL 模块。
  • 我一直在使用 ffmpeg yadif deinterlace,它的质量似乎比 gStreamer 提供的更好。
  • gldeinterlace (gst-plugins-gl0.10.sourcearchive.com/documentation/0.10.1/…) 看起来很有趣,虽然它不使用 PureVideo,而且似乎是一个“中低”质量的过滤器。
【解决方案2】:

根据您明确的要求,VDPAU 似乎是您想要的最接近的匹配项。复杂性:它适用于基于 Unix 的操作系统,而不是 Windows。

如果您被锁定到 Windows,DXVA 是您的最佳选择。如果您在跨平台环境中操作,OpenMAX 是您的最佳选择。如果您愿意接受超出您在问题中已经给出的建议,the rest of these 值得追求。

【讨论】:

  • 这只是再次确认我可能需要使用 DXVA 或 OpenMax,我在我的问题中已经说过了。虽然这些似乎都没有一种简单的方法来做我想做的事,也不支持任何带有 alpha 的格式。
  • @ronag 实际上,确实如此。请注意,我能做的最好的事情是最接近的匹配,因为您的查询对于Windows & Alpha & Hardware Support 的交集是不可满足的。这些限制中最容易在开发环境中放松的Windows 为您提供了一个以前没有被带到讨论中的工具。 Nvidia 和appears to have alpha support 支持 VDPAU。如果不推出您自​​己的解决方案或扩展现有解决方案,我不相信您的查询是可以满足的。
  • 不幸的是,windows 是必需的。虽然有趣的是 VDPAU 支持 alpha。
  • @ronag 出于好奇,Nvidia 支持是否也是一项要求? ATI 和英特尔有相互竞争的解决方案。
  • @MrGomesz:不幸的是,大多数最终用户都有 Nvidia 卡。
【解决方案3】:

第 1 点:如果您想获得高质量的硬件加速去隔行扫描,则必须通过 DirectX。

第 2 点:除了其他人命名的选项(DXVA 和 OpenMAX)之外,至少还有用于 Quicksync 加速去隔行的英特尔媒体 SDK,尚未命名,它通过其 VPP 视频预处理过滤器提供每帧去隔行.

第 3 点:在 NVidia 上从 DirectX 转到 OpenGL:http://developer.download.nvidia.com/opengl/specs/WGL_NV_DX_interop.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多