1. 程式人生 > >bmp和yuv格式

bmp和yuv格式

首先說說bmp格式的圖片吧,這是大家最熟悉不過的點陣圖了,展現在我們面前的是一張張生動的圖片,但是不知道你是否關注過,其實每一張bmp圖片的大小,也就是他所佔儲存空間的位元組數,完全是可知的,前提是你知道這一張圖片的解析度,也就是寬和高。說這麼多,難免有些空洞,舉個例子吧,通常我們所說的720p的圖片,其解析度為1280*720,那麼你不看他的裡邊具體是什麼內容的時候,你便可以知道他的大小,即(1280*720*3 + 54) bytes。一張bmp的圖片實際上剛開始有54個位元組是儲存該圖片的一些資訊的,包括影象的寬,高,格式之類的,問一下度娘就知道了,在此不囉嗦了。54個位元組就是影象的畫素資訊,每一個畫素用3個bytes來表示,分別表示我們常見的三原色b,g,r.。需要注意的是bmp圖片的每一個畫素的值是按bgr的順序儲存的。而且更值得注意的是儲存的資訊中是按照實際看到影象的坐下開始儲存的。即按從左到右,從上到下的順序儲存的。所以要讀取的時候要注意這個問題。

接下來在說說yuv圖片吧,yuv是h264編碼的輸入資料的格式,一般需要編碼的資料如果不是yuv格式的,需要通過轉換轉為yuv格式的,然後再次進行編碼。相比bmp圖片,yuv圖片的儲存資訊裡就沒有前邊的頭了,直接便是畫素資料。以yuv 420格式為例,720p的話,其空間大小的計算方式為1280*720*3 / 2, 其中y畫素的大小為1280*720, u畫素和v畫素的儲存的大小為1280*720/4,yuv, planar格式,yuv是連續儲存的,也就是說先是1280*720個y的值,然後是u, 在然後是v.