YUV420SP和YUV420SP32M的區別

2021-07-06 06:28:14 字數 1384 閱讀 7299

在高通8916和8974平台上使用camera錄影的時候,錄影的格式是camera_yuv_420_nv12。此格式對應的yuv格式是yuv420sp32m。

yuv32sp對應的大小:w * h * 3 / 2

yuv420sp32m這樣的儲存方式對應的檔案儲存格式以及大小計算方式如下:

#ifndef __media_info_h__

#define __media_info_h__

#ifndef msm_media_align

#define msm_media_align(__sz, __align) (((__sz) + (__align-1)) & (~(__align-1)))

#endif

enum color_fmts ;

static

inline

unsigned

int venus_y_stride(int color_fmt, int width)

invalid_input:

return stride;

}static

inline

unsigned

int venus_uv_stride(int color_fmt, int width)

invalid_input:

return stride;

}static

inline

unsigned

int venus_y_scanlines(int color_fmt, int height)

invalid_input:

return sclines;

}static

inline

unsigned

int venus_uv_scanlines(int color_fmt, int height)

invalid_input:

return sclines;

}static

inline

unsigned

int venus_buffer_size(

int color_fmt, int width, int height)

invalid_input:

return size;

}#endif

分析

define msm_media_align(__sz, __align) (((__sz) + (__align-1)) & (~(__align-1)))

假設align = 32,二進位制為0010 0000,那麼align - 1 = 31,二進位制為0001 1111。

~操作符表示按位取反,即為 1110 0000,可以看出,將低於32的所有位置0。從而獲取到臨近的大的32的倍數

yuv420和yuv420p的區別

yv12和i420的區別 在採集到rgb24資料後,需要對這個格式的資料進行第一次壓縮。即將影象的顏色空間由rgb2yuv。因為,x264在進行編碼的時候需要標準的yuv 4 2 0 但是這裡需要注意的是,雖然yv12也是 4 2 0 但是yv12和i420的卻是不同的,在儲存空間上面有些區別。如下...

yuv420 轉bmp的方法

yuv420 轉bmp的方法 我找到了乙個c寫的exe 但是c的水平我實在是不敢去修改那個原始碼,所以我乾脆就呼叫這個dll,在c 裡建立了下面這個類,然後呼叫 y2b.exe 來轉換,而且不會顯示出來那個黑屏.要知道怎麼回事,就看 吧 呵呵.using system using system.co...

YUV420資料轉為IplImage格式

iplimage yuv420 to iplimage opencv unsigned char pyuv420,int width,int height iplimage yuvimage,rgbimg,yimg,uimg,vimg,uuimg,vvimg int nwidth width int...