圖像幀的大小和圖像的格式

圖像幀的大小和圖像的格式 

 

      首先要明確一點, RGB 和 YUV 只是兩種很籠統的劃分方法,還需要知道具體的封裝方式,纔有辦法計算出視頻幀數據的實際大小。

     對於YUV而言, YUV 格式通常有兩大類:打包( packed )格式和平面( planar )格式。前者將 YUV 分量存放在同一個數組中,通常是幾個相鄰的像素組成一個宏像素(macro-pixel );而後者使用三個數組分開存放 YUV 三個分量,就像是一個三維平面一樣。

      以h.263爲例, H.263 編碼算法要求圖象被編碼爲一個亮度信號和兩個色差成分( Y , Cb 和 Cr ),可以記爲 YCbCr , 亮度的取樣結構都是 dx 個 象素每行, dy 行每幅圖象。 兩個色差成分的取樣都是 dx/2 個象素每行, dy /2 行每幅 圖象。如下圖。

                                                                               

     H.263編碼算法 要求的這種圖象格式對應到 v4l2 裏面,就是V4L2_PIX_FMT_YUV420 , (YUV 是 YCbCr , YVU 是 YCrCb ) 。

     V4L2_PIX_FMT_YUV420是一種平坦存儲格式,也就是說,在內存中,先存儲所有的 Y 值,然後是所有的 Cb 值,最後纔是 Cr 值。

     假設有一個 V4L2_PIX_FMT_ Y UV 420 格式的圖像,分辨率是 4 × 4 像素,那麼該圖像幀在內存中存儲形式就是

 

 

       根據前面的描述,可以看出一個公式,當使用 V4L2_PIX_FMT_YUV420 格式採集圖像的時候,如果圖像的寬度爲 width ,高度爲 height ,那麼圖像佔用的內存的大小就是 imagesize = width * height* 3 / 2。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章