blob: 7bdd4d8faeb6b5b0231f17d3c6c51e6588f46f16 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/*
dither 8 bit depth yuv images
Copyright (C) 2000 Martin Vogt
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Library General Public License as published by
the Free Software Foundation.
For more information look at the file COPYRIGHT in this package
*/
#ifndef __DITHER_8BIT_H
#define __DITHER_8BIT_H
#include "colorTable8Bit.h"
#define DITH_SIZE 16
class Dither8Bit {
/* Structures used to implement hybrid ordered dither/floyd-steinberg
dither algorithm.
*/
unsigned char *l_darrays[DITH_SIZE];
unsigned char *cr_darrays[DITH_SIZE];
unsigned char *cb_darrays[DITH_SIZE];
// private colormap
unsigned char pixel[256];
ColorTable8Bit* colorTable8Bit;
// Arrays holding quantized value ranged for lum, cr, and cb.
// (used for 8 Bit)
int* lum_values;
int* cr_values;
int* cb_values;
public:
Dither8Bit(unsigned char pixel[256]);
~Dither8Bit();
void ditherImageOrdered (unsigned char* lum,
unsigned char* cr,
unsigned char* cb,
unsigned char* out,
int h,
int w);
private:
void initOrderedDither();
};
#endif
|