cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_VideoIDCT8x8_S16_S16_B12( mlib_s16 block, const mlib_s16 coeffs);
mlib_status mlib_VideoIDCT8x8_S16_S16( mlib_s16 block, const mlib_s16 coeffs);
The mlib_VideoIDCT8x8_S16_S16_B12() function computes the inverse DCT (called IDCT) for the output IDCT block of data type mlib_s16 and input DCT coefficients of data type mlib_s16. This function is not guaranteed to be IEEE-1180-compliant. The output of the IDCT routine should be within the range of [-2048, 2047] if coeffs is obtained from the corresponding forward DCT function mlib_VideoDCT8x8_S16_S16_B12().
The source and destination buffer addresses must be 8-byte aligned.
This function can be used in JPEG with 12-bit precision.
For MPEG, the output, which is really the difference between the current block and the reference block, can occupy nine bits and is represented as a 16-bit datum. The output must be added to the motion-compensated reference block in order to reconstruct the current block.
Since mediaLib 2.5, mlib_VideoIDCT8x8_S16_S16() has been renamed to mlib_VideoIDCT8x8_S16_S16_B12(). Now mlib_VideoIDCT8x8_S16_S16() is an alias of mlib_VideoIDCT8x8_S16_S16_B12().
The function takes the following arguments:
Pointer to an 8x8 block in the current frame or motion-compensated reference block. block must be 8-byte aligned.
Pointer to the source DCT coefficients. coeffs must be 8-byte aligned.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
mlib_VideoIDCT_IEEE_S16_S16(3MLIB), mlib_VideoIDCT8x8_S16_S16_B12_NA(3MLIB), mlib_VideoIDCT8x8_S16_S16_DC(3MLIB), mlib_VideoIDCT8x8_S16_S16_Q1(3MLIB), mlib_VideoIDCT8x8_S16_S16_Q1_Mismatch(3MLIB), mlib_VideoIDCT8x8_U8_S16(3MLIB), mlib_VideoIDCT8x8_U8_S16_DC(3MLIB), mlib_VideoIDCT8x8_U8_S16_NA(3MLIB), mlib_VideoIDCT8x8_U8_S16_Q1(3MLIB), attributes(5)