资源简介
通过V4L2 MJPEG模式采集JPEG数据,再将JPEG数据装换为YUV格式数据。详细见博客http://blog.csdn.net/li_wen01/article/details/53765624
代码片段和文件信息
/****************************************************************************
# GspcaGui: Gspca/Spca5xx Grabber #
# Copyright (C) 2004 2005 2006 Michel Xhaard #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not write to the Free Software #
# Foundation Inc. 59 Temple Place Suite 330 Boston MA 02111-1307 USA #
# #
****************************************************************************/
#include
#include
#include
#include “color.h“
static int *LutYr = NULL;
static int *LutYg = NULL;;
static int *LutYb = NULL;;
static int *LutVr = NULL;;
static int *LutVrY = NULL;;
static int *LutUb = NULL;;
static int *LutUbY = NULL;;
static int *LutRv = NULL;
static int *LutGu = NULL;
static int *LutGv = NULL;
static int *LutBu = NULL;
#if 0
#define RGB24_TO_Y(rgb) LutYr[(r)] + LutYg[(g)] + LutYb[(b)]
#define YR_TO_V(ry) LutVr[(r)] + LutVrY[(y)]
#define YB_TO_U(by) LutUb[(b)] + LutUbY[(y)]
#define R_FROMYV(yv) CLIP((y) + LutRv[(v)])
#define G_FROMYUV(yuv) CLIP((y) + LutGu[(u)] + LutGv[(v)])
#define B_FROMYU(yu) CLIP((y) + LutBu[(u)])
#endif
unsigned char
RGB24_TO_Y(unsigned char r unsigned char g unsigned char b)
{
return (LutYr[(r)] + LutYg[(g)] + LutYb[(b)]);
}
unsigned char
YR_TO_V(unsigned char r unsigned char y)
{
return (LutVr[(r)] + LutVrY[(y)]);
}
unsigned char
YB_TO_U(unsigned char b unsigned char y)
{
return (LutUb[(b)] + LutUbY[(y)]);
}
unsigned char
R_FROMYV(unsigned char y unsigned char v)
{
return CLIP((y) + LutRv[(v)]);
}
unsigned char
G_FROMYUV(unsigned char y unsigned char u unsigned char v)
{
return CLIP((y) + LutGu[(u)] + LutGv[(v)]);
}
unsigned char
B_FROMYU(unsigned char y unsigned char u)
{
return CLIP((y) + LutBu[(u)]);
}
void initLut(void)
{
int i;
#define Rcoef 299
#define Gcoef 587
#define Bcoef 114
#define Vrcoef 711 //656 //877
#define Ubcoef 560 //500 //493 564
#define CoefRv 1402
#define CoefGu 714 // 344
#define Co
评论
共有 条评论