40
40
/* base saturation of all colors except the grey tones */
41
#define VDC_SATURATION 150.0f
41
#define VDC_SATURATION (128.0f)
43
43
/* phase shift of all colors */
45
#define VDC_PHASE -4.5f
45
#define VDC_PHASE 0.0f
47
47
/* chroma angles in UV space */
49
#define ANGLE_RED 112.5f
50
#define ANGLE_GRN -135.0f
51
49
#define ANGLE_BLU 0.0f
52
#define ANGLE_ORN -45.0f /* negative orange (orange is at +135.0 degree) */
53
#define ANGLE_BRN 157.5f
50
#define ANGLE_RED 120.0f
51
#define ANGLE_GRN -120.0f
52
#define ANGLE_YEL ANGLE_BLU // neg
53
#define ANGLE_BRN 150.0f
54
#define ANGLE_CYN ANGLE_RED // neg
55
#define ANGLE_PUR ANGLE_GRN // neg
56
#define ANGLE_BLK 0.0f
56
#define VDC_LUMA_0 (128.0f*0.0f)
57
#define VDC_LUMA_1 (128.0f/3.0f)
58
#define VDC_LUMA_2 (128.0f/1.5f)
59
#define VDC_LUMA_3 (128.0f*1.0f)
59
#define LUMA(r,g,b) (0.2989f * (r) + 0.5866f * (g) + 0.1145f * (b))
61
#define VDC_LUMA_0 LUMA( 0.0f, 0.0f, 0.0f)
62
#define VDC_LUMA_1 LUMA( 85.0f, 85.0f, 85.0f)
63
#define VDC_LUMA_2 LUMA( 0.0f, 0.0f, 170.0f)
64
#define VDC_LUMA_3 LUMA( 85.0f, 85.0f, 255.0f)
65
#define VDC_LUMA_4 LUMA( 0.0f, 170.0f, 0.0f)
66
#define VDC_LUMA_5 LUMA( 85.0f, 255.0f, 85.0f)
67
#define VDC_LUMA_6 LUMA( 0.0f, 170.0f, 170.0f)
68
#define VDC_LUMA_7 LUMA( 85.0f, 255.0f, 255.0f)
69
#define VDC_LUMA_8 LUMA(170.0f, 0.0f, 0.0f)
70
#define VDC_LUMA_9 LUMA(255.0f, 85.0f, 85.0f)
71
#define VDC_LUMA_10 LUMA(170.0f, 0.0f, 170.0f)
72
#define VDC_LUMA_11 LUMA(255.0f, 85.0f, 255.0f)
73
#define VDC_LUMA_12 LUMA(170.0f, 85.0f, 0.0f)
74
#define VDC_LUMA_13 LUMA(255.0f, 255.0f, 85.0f)
75
#define VDC_LUMA_14 LUMA(170.0f, 170.0f, 170.0f)
76
#define VDC_LUMA_15 LUMA(255.0f, 255.0f, 255.0f)
61
78
/* the VDC palette converted to yuv space */
63
80
static video_cbm_color_t vdc_colors[VDC_NUM_COLORS]=
65
{ VDC_LUMA_0, ANGLE_BRN, -0, "Black" }, /* 000000 */
66
{ VDC_LUMA_1, ANGLE_BRN, 0, "Medium Gray" }, /* 555555 */
67
{ VDC_LUMA_2, ANGLE_BLU, 1, "Blue" }, /* 0000AA */
68
{ VDC_LUMA_3, ANGLE_BLU, 1, "Light Blue" }, /* 5555FF */
69
{ VDC_LUMA_2, ANGLE_GRN, 1, "Green" }, /* 00AA00 */
70
{ VDC_LUMA_3, ANGLE_GRN, 1, "Light Green" }, /* 55FF55 */
71
{ VDC_LUMA_2, ANGLE_RED, -1, "Cyan" }, /* 00AAAA */
72
{ VDC_LUMA_3, ANGLE_RED, -1, "Light Cyan" }, /* 55FFFF */
73
{ VDC_LUMA_2, ANGLE_RED, 1, "Red" }, /* AA0000 */
74
{ VDC_LUMA_3, ANGLE_RED, 1, "Light Red" }, /* FF5555 */
75
{ VDC_LUMA_2, ANGLE_GRN, -1, "Purple" }, /* AA00AA */
76
{ VDC_LUMA_3, ANGLE_GRN, -1, "Light Purple"}, /* FF55FF */
77
{ VDC_LUMA_2, ANGLE_BRN, 1, "Brown" }, /* AA5500 */
78
{ VDC_LUMA_3, ANGLE_BRN, 1, "Yellow" }, /* FFFF55 */
79
{ VDC_LUMA_2, ANGLE_BRN, -0, "Light Gray" }, /* AAAAAA */
80
{ VDC_LUMA_3, ANGLE_BRN, 0, "White" }, /* FFFFFF */
81
{ /* r g b y u v sat hue */
82
{ VDC_LUMA_0, ANGLE_BLK, -0, "Black" }, /* 000000 -> 0.0% 0.0% 0.0% 0.0% */
83
{ VDC_LUMA_1, ANGLE_BLK, 0, "Medium Gray" }, /* 555555 -> 33.3% 0.0% 0.0% 0.0% */
84
{ VDC_LUMA_2, ANGLE_BLU, 1, "Blue" }, /* 0000AA -> 7.6% 29.1% -6.7% 66.7% 240 */
85
{ VDC_LUMA_3, ANGLE_BLU, 1, "Light Blue" }, /* 5555FF -> 40.9% 29.1% -6.7% 66.7% */
86
{ VDC_LUMA_4, ANGLE_GRN, 1, "Green" }, /* 00AA00 -> 39.1% -19.3% -34.3% 66.7% 120 */
87
{ VDC_LUMA_5, ANGLE_GRN, 1, "Light Green" }, /* 55FF55 -> 72.5% -19.3% -34.3% 66.7% */
88
{ VDC_LUMA_6, ANGLE_CYN, -1, "Cyan" }, /* 00AAAA -> 46.7% 9.8% -41.0% 66.7% 180 */
89
{ VDC_LUMA_7, ANGLE_CYN, -1, "Light Cyan" }, /* 55FFFF -> 80.1% 9.8% -41.0% 66.7% */
90
{ VDC_LUMA_8, ANGLE_RED, 1, "Red" }, /* AA0000 -> 19.9% -9.8% 41.0% 66.7% 0 */
91
{ VDC_LUMA_9, ANGLE_RED, 1, "Light Red" }, /* FF5555 -> 53.3% -9.8% 41.0% 66.7% */
92
{ VDC_LUMA_10, ANGLE_PUR, -1, "Purple" }, /* AA00AA -> 27.5% 19.3% 34.3% 66.7% -60 */
93
{ VDC_LUMA_11, ANGLE_PUR, -1, "Light Purple"}, /* FF55FF -> 60.9% 19.3% 34.3% 66.7% */
94
{ VDC_LUMA_12, ANGLE_BRN, 1, "Brown" }, /* AA5500 -> 39.5% -19.4% 23.8% 66.7% 30 */
95
{ VDC_LUMA_13, ANGLE_YEL, -1, "Yellow" }, /* FFFF55 -> 92.4% -29.1% 6.7% 66.7% 60 */
96
{ VDC_LUMA_14, ANGLE_BLK, -0, "Light Gray" }, /* AAAAAA -> 66.7% 0.0% 0.0% 0.0% */
97
{ VDC_LUMA_15, ANGLE_BLK, 0, "White" }, /* FFFFFF -> 100.0% 0.0% 0.0% 0.0% */
83
100
static video_cbm_palette_t vdc_palette =