yuv2rgb.c File Reference

Include dependency graph for yuv2rgb.c:

Defines

#define DITHER1XBPP
#define CAN_COMPILE_X86_ASM
#define HAVE_MMX
#define ARCH_X86
#define RENAME(a)   a ## _MMX
#define HAVE_MMX
#define HAVE_MMX2
#define ARCH_X86
#define RENAME(a)   a ## _MMX2
#define RGB(i)
#define DST1(i)
#define DST2(i)
#define DST1RGB(i)
#define DST2RGB(i)
#define DST1BGR(i)
#define DST2BGR(i)
#define DST1bpp8(i, o)
#define DST2bpp8(i, o)
#define DST1_4(i)
#define DST2_4(i)
#define DST1bpp4(i, o)
#define DST2bpp4(i, o)
#define DST1bpp4b(i, o)
#define DST2bpp4b(i, o)
#define DST1bpp1(i, o)
#define DST2bpp1(i, o)

Functions

const uint8_t __attribute__ ((aligned(8)))
void * yuv2rgb_c_init (unsigned bpp, int mode, void *table_rV[256], void *table_gU[256], int table_gV[256], void *table_bU[256])
static void yuv2rgb_c (void *dst, uint8_t *py, uint8_t *pu, uint8_t *pv, unsigned h_size, unsigned v_size, unsigned rgb_stride, unsigned y_stride, unsigned uv_stride)
void yuv2rgb_init (unsigned bpp, int mode)
static void yuv2rgb_c_32 (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_24_rgb (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_24_bgr (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_16 (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_8 (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_8_ordered_dither (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_4 (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_4_ordered_dither (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_4b (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_4b_ordered_dither (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static void yuv2rgb_c_1_ordered_dither (uint8_t *py_1, uint8_t *py_2, uint8_t *pu, uint8_t *pv, void *_dst_1, void *_dst_2, int h_size, int v_pos)
static int div_round (int dividend, int divisor)

Variables

uint32_t matrix_coefficients = 6
const int32_t Inverse_Table_6_9 [8][4]
yuv2rgb_fun yuv2rgb = NULL
static void(*) yuv2rgb_c_internal (uint8_t *, uint8_t *, uint8_t *, uint8_t *, void *, void *, int, int)
void * table_rV [256]
void * table_gU [256]
int table_gV [256]
void * table_bU [256]


Define Documentation

#define ARCH_X86

#define ARCH_X86

#define CAN_COMPILE_X86_ASM

#define DITHER1XBPP

#define DST1 (  ) 

Value:

Y = py_1[2*i];                          \
        dst_1[2*i] = r[Y] + g[Y] + b[Y];        \
        Y = py_1[2*i+1];                        \
        dst_1[2*i+1] = r[Y] + g[Y] + b[Y];

#define DST1_4 (  ) 

Value:

Y = py_1[2*i];                          \
        acc = r[Y] + g[Y] + b[Y];       \
        Y = py_1[2*i+1];                        \
        acc |= (r[Y] + g[Y] + b[Y])<<4;\
        dst_1[i] = acc;

#define DST1BGR (  ) 

Value:

Y = py_1[2*i];                                                  \
        dst_1[6*i] = b[Y]; dst_1[6*i+1] = g[Y]; dst_1[6*i+2] = r[Y];    \
        Y = py_1[2*i+1];                                                \
        dst_1[6*i+3] = b[Y]; dst_1[6*i+4] = g[Y]; dst_1[6*i+5] = r[Y];

#define DST1bpp1 ( i,
 ) 

Value:

Y = py_1[2*i];                          \
        out_1+= out_1 + g[Y+d128[0+o]]; \
        Y = py_1[2*i+1];                        \
        out_1+= out_1 + g[Y+d128[1+o]];

#define DST1bpp4 ( i,
 ) 

Value:

Y = py_1[2*i];                          \
        acc = r[Y+d128[0+o]] + g[Y+d64[0+o]] + b[Y+d128[0+o]];  \
        Y = py_1[2*i+1];                        \
        acc |= (r[Y+d128[1+o]] + g[Y+d64[1+o]] + b[Y+d128[1+o]])<<4;\
        dst_1[i]= acc;

#define DST1bpp4b ( i,
 ) 

Value:

Y = py_1[2*i];                          \
        dst_1[2*i] = r[Y+d128[0+o]] + g[Y+d64[0+o]] + b[Y+d128[0+o]];   \
        Y = py_1[2*i+1];                        \
        dst_1[2*i+1] = r[Y+d128[1+o]] + g[Y+d64[1+o]] + b[Y+d128[1+o]];

#define DST1bpp8 ( i,
 ) 

Value:

Y = py_1[2*i];                          \
        dst_1[2*i] = r[Y+d32[0+o]] + g[Y+d32[0+o]] + b[Y+d64[0+o]];     \
        Y = py_1[2*i+1];                        \
        dst_1[2*i+1] = r[Y+d32[1+o]] + g[Y+d32[1+o]] + b[Y+d64[1+o]];

#define DST1RGB (  ) 

Value:

Y = py_1[2*i];                                                  \
        dst_1[6*i] = r[Y]; dst_1[6*i+1] = g[Y]; dst_1[6*i+2] = b[Y];    \
        Y = py_1[2*i+1];                                                \
        dst_1[6*i+3] = r[Y]; dst_1[6*i+4] = g[Y]; dst_1[6*i+5] = b[Y];

#define DST2 (  ) 

Value:

Y = py_2[2*i];                          \
        dst_2[2*i] = r[Y] + g[Y] + b[Y];        \
        Y = py_2[2*i+1];                        \
        dst_2[2*i+1] = r[Y] + g[Y] + b[Y];

#define DST2_4 (  ) 

Value:

Y = py_2[2*i];                          \
        acc = r[Y] + g[Y] + b[Y];       \
        Y = py_2[2*i+1];                        \
        acc |= (r[Y] + g[Y] + b[Y])<<4;\
        dst_2[i] = acc;

#define DST2BGR (  ) 

Value:

Y = py_2[2*i];                                                  \
        dst_2[6*i] = b[Y]; dst_2[6*i+1] = g[Y]; dst_2[6*i+2] = r[Y];    \
        Y = py_2[2*i+1];                                                \
        dst_2[6*i+3] = b[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = r[Y];

#define DST2bpp1 ( i,
 ) 

Value:

Y = py_2[2*i];                          \
        out_2+= out_2 + g[Y+d128[8+o]]; \
        Y = py_2[2*i+1];                        \
        out_2+= out_2 + g[Y+d128[9+o]];

#define DST2bpp4 ( i,
 ) 

Value:

Y = py_2[2*i];                          \
        acc =  r[Y+d128[8+o]] + g[Y+d64[8+o]] + b[Y+d128[8+o]]; \
        Y = py_2[2*i+1];                        \
        acc |=  (r[Y+d128[9+o]] + g[Y+d64[9+o]] + b[Y+d128[9+o]])<<4;\
        dst_2[i]= acc;

#define DST2bpp4b ( i,
 ) 

Value:

Y = py_2[2*i];                          \
        dst_2[2*i] =  r[Y+d128[8+o]] + g[Y+d64[8+o]] + b[Y+d128[8+o]];  \
        Y = py_2[2*i+1];                        \
        dst_2[2*i+1] =  r[Y+d128[9+o]] + g[Y+d64[9+o]] + b[Y+d128[9+o]];

#define DST2bpp8 ( i,
 ) 

Value:

Y = py_2[2*i];                          \
        dst_2[2*i] =  r[Y+d32[8+o]] + g[Y+d32[8+o]] + b[Y+d64[8+o]];    \
        Y = py_2[2*i+1];                        \
        dst_2[2*i+1] =  r[Y+d32[9+o]] + g[Y+d32[9+o]] + b[Y+d64[9+o]];

#define DST2RGB (  ) 

Value:

Y = py_2[2*i];                                                  \
        dst_2[6*i] = r[Y]; dst_2[6*i+1] = g[Y]; dst_2[6*i+2] = b[Y];    \
        Y = py_2[2*i+1];                                                \
        dst_2[6*i+3] = r[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = b[Y];

#define HAVE_MMX

#define HAVE_MMX

#define HAVE_MMX2

#define RENAME (  )     a ## _MMX2

#define RENAME (  )     a ## _MMX

#define RGB (  ) 

Value:

U = pu[i];                              \
        V = pv[i];                              \
        r = table_rV[V];                        \
        g = table_gU[U] + table_gV[V];          \
        b = table_bU[U];


Function Documentation

uint64_t __attribute__ ( (aligned(8))   ) 

static int div_round ( int  dividend,
int  divisor 
) [static]

static void yuv2rgb_c ( void *  dst,
uint8_t *  py,
uint8_t *  pu,
uint8_t *  pv,
unsigned  h_size,
unsigned  v_size,
unsigned  rgb_stride,
unsigned  y_stride,
unsigned  uv_stride 
) [static]

static void yuv2rgb_c_16 ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_1_ordered_dither ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_24_bgr ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_24_rgb ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_32 ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_4 ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_4_ordered_dither ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_4b ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_4b_ordered_dither ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_8 ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

static void yuv2rgb_c_8_ordered_dither ( uint8_t *  py_1,
uint8_t *  py_2,
uint8_t *  pu,
uint8_t *  pv,
void *  _dst_1,
void *  _dst_2,
int  h_size,
int  v_pos 
) [static]

void * yuv2rgb_c_init ( unsigned  bpp,
int  mode,
void *  table_rV[256],
void *  table_gU[256],
int  table_gV[256],
void *  table_bU[256] 
)

void yuv2rgb_init ( unsigned  bpp,
int  mode 
)


Variable Documentation

const int32_t Inverse_Table_6_9[8][4]

Initial value:

 {
    {117504, 138453, 13954, 34903}, 
    {117504, 138453, 13954, 34903}, 
    {104597, 132201, 25675, 53279}, 
    {104597, 132201, 25675, 53279}, 
    {104448, 132798, 24759, 53109}, 
    {104597, 132201, 25675, 53279}, 
    {104597, 132201, 25675, 53279}, 
    {117579, 136230, 16907, 35559}  
}

uint32_t matrix_coefficients = 6

void* table_bU[256]

void* table_gU[256]

int table_gV[256]

void* table_rV[256]

yuv2rgb_fun yuv2rgb = NULL

void(* ) yuv2rgb_c_internal(uint8_t *, uint8_t *, uint8_t *, uint8_t *, void *, void *, int, int) [static]


Generated on Thu Dec 13 18:13:55 2007 for SkyGI by  doxygen 1.5.1-p1