最近参考了雷神的d3d surface渲染YUV的代码,下面对几种YUV格式做总结,只有正确区分才能
正常渲染图像。
在建立离屏表面的时候需要指定图像格式D3DFormat,这个指定后后面的拷贝数据给surface息息相关,
搞错了不会渲染正常。
YUV主要有packet和Planar两种存储方式。
I420(YUV420P) YYYYYYYYUUVV
YV12(YUV420P) YYYYYYYYVVUU
NV12(YUV420SP) YYYYYYYYUVUV
NV21(YUV420SP) YYYYYYYYVUVU
YUV420P 三plain存储;YUV420SP两plain存储,uv交叉。
其中I420,NV12用的相对多些。
这里有很详细的YUV介绍:https://zh.wikipedia.org/wiki/YUV