YUV420 总结 (YU12、YV12、NV12 和 NV21)
YUV模型是根據一個亮度(Y分量)和兩個色度(UV分量)來定義顏色空間。最常見的格式為 YUV420分為兩種:YUV420P和YUV420SP。
YUV420P
YUV420P 為 plane平面模式,Y, U, V分量處于不同平面,即在 ffmpeg 中數據存放在 3 個數組中。
其可再細分為 YU12 和 YV12 。
YU12
該格式的數據分布如下圖所示,data[0] 中存放的是 Y 數據,data[1] 中存放的是 U 數據,data[2] 中存放的是 V 數據。
其中 Y、U、V 顏色相同的為一組數據,如 Y1、Y2、Y3 和 Y4 共用一組 U1 和 V1。
YV12
該格式的數據分布如下圖所示,data[0] 中存放的是 Y 數據,data[1] 中存放的是 V 數據,data[2] 中存放的是 U 數據。
YUV420SP
YUV420SP 為 semi-planar 模式,即Y和UV分為兩個plane,但是UV(CbCr)為交錯存儲,而不是分為三個平面。即在 ffmpeg 中數據存放在 2 個數組中。
其可再細分為 NV12 和 NV21。
NV12
該格式的數據分布如下圖所示,data[0] 中存放的是 Y 數據,data[1] 中存放的是 U 和 V 數據,兩者交錯放置,先是 U 分量,后是 V 分量。
NV21
該格式的數據分布如下圖所示,data[0] 中存放的是 Y 數據,data[1] 中存放的是 U 和 V 數據,兩者交錯放置,先是 V 分量,后是 U 分量。
真實數據存放
真實存放數據時,為了方便運算,往往將數據進行對齊,所以真實的數據存放如下圖。
以 YU12 為例子,其他格式類似。
參考文獻:
https://blog.csdn.net/byhook/article/details/84037338
https://blog.csdn.net/Evankaka/article/details/38176025
https://www.cnblogs.com/leisure_chn/p/10290575.html
總結
以上是生活随笔為你收集整理的YUV420 总结 (YU12、YV12、NV12 和 NV21)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql查询记录总数_MySQL记录总
- 下一篇: rgb、rgba转换成hex格式的方法