You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.2 KiB
64 lines
1.2 KiB
15 years ago
|
/*
|
||
|
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
|
||
|
|