/***************************************************************************
 *
 * colour.h
 *
 ***************************************************************************
 *
 * colourspace conversion
 *
 ***************************************************************************/

#ifndef COLOUR_H_INCLUDED
#define COLOUR_H_INCLUDED

/*
 * includes
 */

/*
 * defines
 */

#define DITHER_RANDOM	1

#define MB_ORDER_Y00	0
#define MB_ORDER_Y10	1
#define MB_ORDER_Y01	2
#define MB_ORDER_Y11	3
#define MB_ORDER_U	4
#define MB_ORDER_V	5

/*
 * typedefs
 */

/*
 * structures
 */

/*
 * globals
 */

extern unsigned char	rBlock[256];
extern unsigned char	gBlock[256];
extern unsigned char	bBlock[256];
extern signed char	yBlock00[64];
extern signed char	yBlock10[64];
extern signed char	yBlock01[64];
extern signed char	yBlock11[64];
extern signed char	uBlock[64];
extern signed char	vBlock[64];

/*
 * function prototypes
 */

extern void YUVtoRGB(int y,int u,int v,int *r,int *g,int *b);
extern void RGBtoYUV(int r,int g,int b,int *y,int *u,int *v);
extern void CombineMacroBlock(void);
extern void SplitMacroBlock(void);

extern void CombineMacroBlock16(unsigned short *dest,int mod);
extern void CombineMacroBlock24(unsigned char *dest,int mod);

extern void SetDither(int mode);

#endif
