YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
2013-10-29 20:04
387 查看
static void cvt_420p_to_rgb565(int width, int height, const unsigned char *src, unsigned short *dst)
{
int line, col, linewidth;
int y, u, v, yy, vr, ug, vg, ub;
int r, g, b;
const unsigned char *py, *pu, *pv;
linewidth = width >> 1;
py = src;
pu = py + (width * height);
pv = pu + (width * height) / 4;
y = *py++;
yy = y << 8;
u = *pu - 128;
ug = 88 * u;
ub = 454 * u;
v = *pv - 128;
vg = 183 * v;
vr = 359 * v;
for (line = 0; line < height; line++) {
for (col = 0; col < width; col++) {
r = (yy + vr) >> 8;
g = (yy - ug - vg) >> 8;
b = (yy + ub ) >> 8;
if (r < 0) r = 0;
if (r > 255) r = 255;
if (g < 0) g = 0;
if (g > 255) g = 255;
if (b < 0) b = 0;
if (b > 255) b = 255;
*dst++ = (((unsigned short)r>>3)<<11) | (((unsigned short)g>>2)<<5) | (((unsigned short)b>>3)<<0);
y = *py++;
yy = y << 8;
if (col & 1) {
pu++;
pv++;
u = *pu - 128;
ug = 88 * u;
ub = 454 * u;
v = *pv - 128;
vg = 183 * v;
vr = 359 * v;
}
}
if ((line & 1) == 0) {
pu -= linewidth;
pv -= linewidth;
}
}
}
转载于:http://blog.csdn.net/dotphoenix/article/details/6431351
相关文章推荐
- YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
- 【转】YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
- 【转】YUV420SP的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P) .
- YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
- Android 把YUV420P格式的数据转换为RGB565格式
- 利用ov511的webeye v2000摄像头实现YUV420P格式转RGB24格式来抓取一张图片
- ffmpeg获取摄像头数据保存成YUV420P格式
- 【Android】YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别
- android开发:日期格式大全以及把毫秒转换成日期格式
- 关于YUV420P、YUYV、RGB 图像格式的转换总结
- YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24
- 视频格式转换方法之264、avi、YUV420P
- Android代码编码格式的转换
- 利用ov511的webeye v2000摄像头实现YUV420P格式转RGB24格式来抓取一张图片
- Android实现OCR文字识别并且转换为Excel、PDF格式输出
- 【Android】YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别
- Android直播必备之YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别
- YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24(转载)
- 实现将YUV 格式数据转换成 RGBA 格式数据的Native层代码
- RGB和YUV、YCbCr 以及格式的转换总结