Unit Jdct

Classes

Functions

Types

DCTELEM
DCTELEMPTR
DCTELEM_FIELD
DCTELEM_FIELD_PTR
FAST_FLOAT_FIELD
FAST_FLOAT_FIELD_PTR
FAST_FLOAT_PTR
float_DCT_method_ptr
FLOAT_MULT_TYPE
FLOAT_MULT_TYPE_FIELD
FLOAT_MULT_TYPE_FIELD_PTR
FLOAT_MULT_TYPE_PTR
forward_DCT_method_ptr
IFAST_MULT_TYPE
IFAST_MULT_TYPE_FIELD
IFAST_MULT_TYPE_FIELD_PTR
IFAST_MULT_TYPE_PTR
ISLOW_MULT_TYPE
ISLOW_MULT_TYPE_FIELD
ISLOW_MULT_TYPE_FIELD_PTR
ISLOW_MULT_TYPE_PTR
jTDctElem
jTFastFloat
jTFastType
jTFloatType
jTMultType

Constants

IFAST_SCALE_BITS
RANGE_MASK

Variables


Functions


Types


DCTELEM = INT32
must have 32 bits
DCTELEMPTR = ^DCTELEM

DCTELEM_FIELD = array[jTDctElem] of DCTELEM;

DCTELEM_FIELD_PTR = ^DCTELEM_FIELD

FAST_FLOAT_FIELD = array[jTFastFloat] of FAST_FLOAT;

FAST_FLOAT_FIELD_PTR = ^FAST_FLOAT_FIELD

FAST_FLOAT_PTR = ^FAST_FLOAT

float_DCT_method_ptr = procedure(var data : array of FAST_FLOAT)

FLOAT_MULT_TYPE = FAST_FLOAT
fractional bits in scale factors } {$endif
FLOAT_MULT_TYPE_FIELD = array[jTFloatType] of FLOAT_MULT_TYPE;

FLOAT_MULT_TYPE_FIELD_PTR = ^FLOAT_MULT_TYPE_FIELD

FLOAT_MULT_TYPE_PTR = ^FLOAT_MULT_TYPE

forward_DCT_method_ptr = procedure(var data : array of DCTELEM)

IFAST_MULT_TYPE = INT32
short or int, whichever is faster
IFAST_MULT_TYPE_FIELD = array[jTFastType] of IFAST_MULT_TYPE;

IFAST_MULT_TYPE_FIELD_PTR = ^IFAST_MULT_TYPE_FIELD

IFAST_MULT_TYPE_PTR = ^IFAST_MULT_TYPE

ISLOW_MULT_TYPE = MULTIPLIER
An inverse DCT routine is given a pointer to the input JBLOCK and a pointer to an output sample array. The routine must dequantize the input data as well as perform the IDCT; for dequantization, it uses the multiplier table pointed to by compptr->dct_table. The output data is to be placed into the sample array starting at a specified column. (Any row offset needed will be applied to the array pointer before it is passed to the IDCT code.) Note that the number of samples emitted by the IDCT routine is DCT_scaled_size * DCT_scaled_size. } { typedef inverse_DCT_method_ptr is declared in jpegint.h } { Each IDCT routine has its own ideas about the best dct_table element type.
ISLOW_MULT_TYPE_FIELD = array[jTMultType] of ISLOW_MULT_TYPE;

ISLOW_MULT_TYPE_FIELD_PTR = ^ISLOW_MULT_TYPE_FIELD

ISLOW_MULT_TYPE_PTR = ^ISLOW_MULT_TYPE

jTDctElem = 0..(MaxInt div SizeOf(DCTELEM))-1

jTFastFloat = 0..(MaxInt div SizeOf(FAST_FLOAT))-1

jTFastType = 0..(MaxInt div SizeOf(IFAST_MULT_TYPE))-1

jTFloatType = 0..(MaxInt div SizeOf(FLOAT_MULT_TYPE))-1

jTMultType = 0..(MaxInt div SizeOf(ISLOW_MULT_TYPE))-1
2 bits wider than legal samples

Constants

IFAST_SCALE_BITS = 13

need 32 bits for scaled quantizers

RANGE_MASK = (MAXJSAMPLE * 4 + 3)

preferred floating type

Variables