DCT4 Q31

RISCV_DSP_ATTRIBUTE riscv_status riscv_dct4_init_q31 (riscv_dct4_instance_q31 *S, riscv_rfft_instance_q31 *S_RFFT, riscv_cfft_radix4_instance_q31 *S_CFFT, uint16_t N, uint16_t Nby2, q31_t normalize)
RISCV_DSP_ATTRIBUTE void riscv_dct4_q31 (const riscv_dct4_instance_q31 *S, q31_t *pState, q31_t *pInlineBuffer)
group DCT4Q31

Functions

RISCV_DSP_ATTRIBUTE riscv_status riscv_dct4_init_q31 (riscv_dct4_instance_q31 *S, riscv_rfft_instance_q31 *S_RFFT, riscv_cfft_radix4_instance_q31 *S_CFFT, uint16_t N, uint16_t Nby2, q31_t normalize)

Initialization function for the Q31 DCT4/IDCT4.

Deprecated:

Do not use this function. It will be removed in future versions.

DCT Size

Normalizing factor value (hexadecimal)

2048

0x4000000

512

0x8000000

128

0x10000000

Normalizing factor:

The normalizing factor is sqrt(2/N), which depends on the size of transform N. Normalizing factors in 1.31 format are mentioned in the table below for different DCT sizes:

Parameters
  • S[inout] points to an instance of Q31 DCT4/IDCT4 structure.

  • S_RFFT[in] points to an instance of Q31 RFFT/RIFFT structure

  • S_CFFT[in] points to an instance of Q31 CFFT/CIFFT structure

  • N[in] length of the DCT4.

  • Nby2[in] half of the length of the DCT4.

  • normalize[in] normalizing factor.

Returns

execution status

  • RISCV_MATH_SUCCESS : Operation successful

  • RISCV_MATH_ARGUMENT_ERROR : N is not a supported transform length

RISCV_DSP_ATTRIBUTE void riscv_dct4_q31 (const riscv_dct4_instance_q31 *S, q31_t *pState, q31_t *pInlineBuffer)

Processing function for the Q31 DCT4/IDCT4.

Deprecated:

Do not use this function. It will be removed in future versions.

DCT Size

Input format

Output format

Number of bits to upscale

2048

2.30

12.20

11

512

2.30

10.22

9

128

2.30

8.24

7

Input an output formats

Input samples need to be downscaled by 1 bit to avoid saturations in the Q31 DCT process, as the conversion from DCT2 to DCT4 involves one subtraction. Internally inputs are downscaled in the RFFT process function to avoid overflows. Number of bits downscaled, depends on the size of the transform. The input and output formats for different DCT sizes and number of bits to upscale are mentioned in the table below:

Parameters
  • S[in] points to an instance of the Q31 DCT4 structure.

  • pState[in] points to state buffer.

  • pInlineBuffer[inout] points to the in-place input and output buffer.