X-Git-Url: https://git.sesse.net/?p=fjl;a=blobdiff_plain;f=idct.h;h=4a16ea004fd8b440965de598cea2493126dcecaf;hp=ec419939aee055462ecad271cdba3533a3cca818;hb=13b48c4e2de5ceb4922ee47db32dd1a18edfffe4;hpb=039d3c953460ec41fa8b1f9d26e9cf62a344c8ef diff --git a/idct.h b/idct.h index ec41993..4a16ea0 100644 --- a/idct.h +++ b/idct.h @@ -6,9 +6,26 @@ #define DCTSIZE 8 #define DCTSIZE2 64 -typedef void (idct_func_t)(const int16_t*, const uint32_t*, uint8_t*); +// void* idct_example_alloc(const uint32_t* quant_table); +typedef void* (idct_alloc_t)(const uint32_t*); + +// void idct_example_free(const void* userdata); +// userdata is the same as returned by the alloc function. +typedef void (idct_free_t)(void*); + +// void idct_example(const int16_t* input, const void* userdata, uint8_t* output); +// userdata is the same as returned by the alloc function. +typedef void (idct_func_t)(const int16_t*, const void*, uint8_t*); // Non-factorized reference version (section A.3.3 of the JPEG standard). -void idct_reference(const int16_t* input, const uint32_t* quant_table, uint8_t* output); +void* idct_reference_alloc(const uint32_t* quant_table); +void idct_reference_free(void* userdata); +void idct_reference(const int16_t* input, const void* userdata, uint8_t* output); + +// Floating-point IDCT due to Arai, Agui and Nakajima (also known as AA&N). +// See idct.c for more details. +void* idct_float_alloc(const uint32_t* quant_table); +void idct_float_free(void* userdata); +void idct_float(const int16_t* input, const void* userdata, uint8_t* output); #endif /* !defined(_IDCT_H) */