c# - 如何将 YUV (444) 转换为 WPF 上的显示,更喜欢以某种方式使用 DirectX 进行硬件加速

标签 c# wpf image-processing directx yuv

我正在努力在屏幕上显示一部 Y4M 电影。解析我可以处理的文件,但是我目前有一个带有帧的 YUV 值的二维字节数组。是否有内置的硬件加速方式,或者我是否必须将其转换为 RGB 并创建位图?如果有人有 WPF 中 DirectX 教程的好网站,也将不胜感激。顺便说一句,这是在 C# 中。

最佳答案

YUV 表面可能是由特定硬件供应商 (IHV) FourCC 支持的特殊表面。您需要从 IHV 了解他们是否有您可以使用的 FourCC,并且您不能依赖它在其他平台上工作。

有一个用于 4:2:2 的标准 D3DFORMAT(D3DFMT_YUY2 或 D3DFMT_UYVY),但没有用于 4:4:4 的默认格式。我敢肯定大多数 IHV 确实为此类渲染提供了 FourCC。

值得记住的是,如果您知道传入数据的 FourCC,那么直接尝试使用该 FourCC 创建表面可能是值得的。如果可行,您就可以开始了 :) 如果不行,那么您也许可以找到一个可行的替代方案,或者您可能需要进行一些手动格式转换。

关于c# - 如何将 YUV (444) 转换为 WPF 上的显示,更喜欢以某种方式使用 DirectX 进行硬件加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4505736/

相关文章:

c# - 将数据从 View 传输到 JavaScript 的最佳方式

c# - 如何在 .NET MAUI 中运行时添加新的网格列和行?

c# - 使用 Visual studio 2010 检测内存泄漏?

wpf - 如何通过MVVM(WPF)应用程序中的存储库模式调用我的服务?

python - 如何找到图像中所有矩形瓷砖?

c# - 当我使用依赖注入(inject)读取我的 Azure 函数的应用程序设置时,配置为空

c# - 如何使用 <asp :scriptreference> in asp.net 4.5 包含最新的 Jquery?

wpf - 使用 MVVM 将焦点设置到 WPF 中的控件

.net - 如何在 webapi 中手动优化文件夹中的多个图像(减小文件大小)?

python - 简单的 "blurring"数组表示来自第一原理的 python 中的图像