Mercurial > hg > wm
diff Meerwald-dir/dct.h @ 24:9f20bce6184e v0.7
move directories, support netpbm 11
author | Peter Meerwald-Stadler <pmeerw@pmeerw.net> |
---|---|
date | Fri, 20 Dec 2024 13:08:59 +0100 |
parents | Meerwald/dct.h@acb6967ee76d |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Meerwald-dir/dct.h Fri Dec 20 13:08:59 2024 +0100 @@ -0,0 +1,38 @@ +#ifndef DCT_H +#define DCT_H + +#include "wm.h" +#include "coeff.h" +#include "netpbm/pgm.h" + +extern int N; +extern int M; + +void init_dct_NxM(int width, int height); +void fdct_NxM(gray **pixels, double **dcts); +void idct_NxM(double **dcts, gray **pixels); + +void init_dct_NxN(int width, int height); +void fdct_NxN(gray **pixels, double **dcts); +void idct_NxN(double **dcts, gray **pixels); +void fdct_inplace_NxN(double **coeffs); +void idct_inplace_NxN(double **coeffs); + +/* + * 'NJPEG' defines the JPEG's DCT block size (8x8) + */ +#define NJPEG 8 + +void init_quantum_8x8(int quality); +void init_quantum_JPEG_lumin(int quality); +void init_quantum_JPEG_chromin(int quality); +void quantize_8x8(double **transform); +void dequantize_8x8(double **transform); +void init_dct_8x8(); +void fdct_8x8(gray **input, double **output); +void fdct_block_8x8(gray **input, int col, int row, double **output); +void idct_8x8(double **input, gray **output); +void idct_block_8x8(double **input, gray **output, int col, int row); +int is_middle_frequency_coeff_8x8(int coeff); + +#endif