Vector::IDCT Method

Overload List

#SignatureDescription
1TMtxVec *IDCT(TMtxVec *Vec, int VecIndex, int Index, int Len) const;The inverse discrete cosine transform (DCT).
2TVec *IDCT(TVec *Vec) const;The inverse discrete cosine transform (DCT).
3TVec *IDCT() const;Calculate the inverse DCT in-pllace.

Overload 1: TMtxVec *IDCT(TMtxVec *Vec, int VecIndex, int Index, int Len) const;

The inverse discrete cosine transform (DCT).

#NameTypeDescription
1VecTMtxVec *
2VecIndexint
3Indexint
4Lenint
Remarks:

Calculate the inverse discrete cosine transform (DCT) from Vec elements [VecIndex]..[VecIndex+Len-1] and store the results in the calling object elements [Index]..[Index+Len-1]. The Len parameter must be the power of two. Size and Vector::Complex properties of the calling vector must be set explicitly. An exception is raised if Vector::ConditionCheck is True and array borders are overrun.

Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 2: TVec *IDCT(TVec *Vec) const;

The inverse discrete cosine transform (DCT).

#NameTypeDescription
1VecTVec *
Remarks:

Calculates the inverse discrete cosine transform (DCT) of a Vec and writes the results in the calling vector. If Vec Vector::Length is a power of 2, the function uses an efficient algorithm that is significantly faster than the direct computation of DCT. For other values of Vec length, this function uses the direct formulas given below; however, the symmetry of cosine function is taken into account, which allows to perform about half of the multiplication operations in the formulas. In the following definition of inverse DCT, N=Vec.Length and V is the calling vector:

C(k)={1Nk=02Nk>0V[k]=C(k)Vec[k]n=0N1cos((2n+1)kπ2N)\begin{aligned} C(k) &= \begin{cases} \sqrt{\frac{1}{N}} & k=0 \\ \sqrt{\frac{2}{N}} & k > 0 \end{cases} \\ \text{V}[k] &= C(k)\cdot \text{Vec}[k]\sum _{n=0} ^{N-1} \cos \left( \frac{(2n+1)k\pi}{2N}\right) \end{aligned}
See Also: Vector::DCT
Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 3: TVec *IDCT() const;

Calculate the inverse DCT in-pllace.

Remarks:

The length of the calling vector is adjusted automatically.

Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler