我正在尝试使用 Direct2D 和 WIC 位图制作一个简单的视频播放器,例如程序。
它需要对 YUV 像素格式帧数据进行快速且 CPU 经济的绘图(带拉伸)。
我已经用 GDI 进行了测试。我希望切换到 Direct2D 可以带来至少 10 倍的性能提升(更小的 CPU 开销)。
我要做的基本上如下:
- 创建一个空的 WIC 位图 A(用于绘图画布)
- 用 YUV 帧数据创建另一个 WIC 位图 B(格式转换)
- 将位图 B 绘制到 A 上,然后将 A 绘制到 D2D 渲染目标
对于 1、2 步,我必须选择像素格式。
WIC 原生像素格式
有一个 MSDN 页面推荐WICPixelFormat32bppPBGRA
。
http://msdn.microsoft.com/en-us/library/windows/desktop/hh780393(v=vs.85).aspx
WICPixelFormat32bppPBGRA
和有什么区别WICPixelFormat32bppBGRA
?(前者有附加P)
如果WICPixelFormat32bppPBGRA
是要走的路,总是这样吗?无论硬件和/或配置?
实际上,WIC 位图处理最有效的像素格式是什么?