YUV420數據存儲

轉自 http://blog.163.com/sxs_solo/blog/static/2633338200872202459390/

YUV格式有兩大類:planar和packed。
對於planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨後是所有像素點的V。
對於packed的YUV格式,每個像素點的Y,U,V是連續交*存儲的。
以dm642的H263loopback例子程序爲例,
發送線程中,視頻捕獲後我們得到YUV422 planar數據,
然後轉化成YUV420 planar數據,再進行編碼。
以720×488大小圖象YUV420 planar爲例,其存儲格式是:
共大小爲(720×480×3>>1)字節,分爲三個部分:Y,U和V
Y分量:    (720×480)個字節  
U(Cb)分量:(720×480>>2)個字節
V(Cr)分量:(720×480>>2)個字節
三個部分內部均是行優先存儲,三個部分之間是Y,U,V 順序存儲。
即YUV數據的0--720×480字節是Y分量值,
           720×480--720×480×5/4字節是U分量
           720×480×5/4 --720×480×3/2字節是V分量。

4 :2: 2 和4:2:0 轉換:

最簡單的方式:
YUV4:2:2 ---> YUV4:2:0  Y不變,將U和V信號值在行(垂直方向)在進行一次隔行抽樣。
YUV4:2:0 ---> YUV4:2:2  Y不變,將U和V信號值的每一行分別拷貝一份形成連續兩行數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章