【发布时间】: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