## liboilfuncs-dct

liboilfuncs-dct

## Synopsis

    void                oil_dct36_f32                       (float *d_36,
                                                             int dstr,
                                                             const float *s_36,
                                                             int sstr);
    void                oil_fdct8_f64                       (double *d_8,
                                                             const double *s_8,
                                                             int dstr,
                                                             int sstr);
    void                oil_fdct8x8_f64                     (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);
    void                oil_fdct8x8s_s16                    (int16_t *d_8x8,
                                                             int ds,
                                                             const int16_t *s_8x8,
                                                             int ss);
    void                oil_idct8_f64                       (double *d_8,
                                                             int dstr,
                                                             const double *s_8,
                                                             int sstr);
    void                oil_idct8x8_f64                     (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);
    void                oil_idct8x8_s16                     (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);
    void                oil_imdct12_f64                     (double *d_12,
                                                             const double *s_6);
    void                oil_imdct32_f32                     (float *d_32,
                                                             const float *s_32);
    void                oil_imdct36_f64                     (double *d_36,
                                                             const double *s_18);
    void                oil_mdct12_f64                      (double *d_6,
                                                             const double *s_12);
    void                oil_mdct36_f64                      (double *d_18,
                                                             const double *s_36);
    void                oil_idct8theora_s16                 (int16_t *d_8,
                                                             int dstr,
                                                             const int16_t *s_8,
                                                             int sstr);
    void                oil_idct8x8lim10_f64                (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);
    void                oil_idct8x8lim10_s16                (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);
    void                oil_idct8x8theora_s16               (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);

## Description

## Details

### oil_dct36_f32 ()

    void                oil_dct36_f32                       (float *d_36,
                                                             int dstr,
                                                             const float *s_36,
                                                             int sstr);

FIXME: This function is broken.

`d_36` : |
`dstr` : |
`s_36` : |
`sstr` : |

### oil_fdct8_f64 ()

    void                oil_fdct8_f64                       (double *d_8,
                                                             const double *s_8,
                                                             int dstr,
                                                             int sstr);

Performs a Forward Discrete Cosine Transform on `s_8` and places the result in `d_8`.

`d_8` : |
`s_8` : |
`dstr` : |
`sstr` : |

### oil_fdct8x8_f64 ()

    void                oil_fdct8x8_f64                     (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);

Performs a 2-D Forward Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |

### oil_fdct8x8s_s16 ()

    void                oil_fdct8x8s_s16                    (int16_t *d_8x8,
                                                             int ds,
                                                             const int16_t *s_8x8,
                                                             int ss);

Performs a 2-D Forward Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`.

This function uses an alternate scaling used by RTjpeg.

`d_8x8` : |
`ds` : |
`s_8x8` : |
`ss` : |

### oil_idct8_f64 ()

    void                oil_idct8_f64                       (double *d_8,
                                                             int dstr,
                                                             const double *s_8,
                                                             int sstr);

Performs a Inverse Discrete Cosine Transform on `s_8` and places the result in `d_8`.

`d_8` : |
`dstr` : |
`s_8` : |
`sstr` : |

### oil_idct8x8_f64 ()

    void                oil_idct8x8_f64                     (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);

Performs a 2-D Inverse Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |

### oil_idct8x8_s16 ()

    void                oil_idct8x8_s16                     (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);

Performs a limited 2-D Inverse Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |

### oil_imdct12_f64 ()

    void                oil_imdct12_f64                     (double *d_12,
                                                             const double *s_6);

Performs a Inverse Modified Discrete Cosine Transform (IMDCT) on the source array `s_6` and places the result in `d_12`.

`d_12` : |
`s_6` : |

### oil_imdct32_f32 ()

    void                oil_imdct32_f32                     (float *d_32,
                                                             const float *s_32);

Performs a Inverse Modified Discrete Cosine Transform (IMDCT) on the source array `s_32` and places the result in `d_32`.

`d_32` : |
`s_32` : |

### oil_imdct36_f64 ()

    void                oil_imdct36_f64                     (double *d_36,
                                                             const double *s_18);

Performs a Inverse Modified Discrete Cosine Transform (IMDCT) on the source array `s_18` and places the result in `d_36`.

`d_36` : |
`s_18` : |

### oil_mdct12_f64 ()

    void                oil_mdct12_f64                      (double *d_6,
                                                             const double *s_12);

Performs a Modified Discrete Cosine Transform (MDCT) on the source array `s_12` and places the result in `d_6`.

`d_6` : |
`s_12` : |

### oil_mdct36_f64 ()

    void                oil_mdct36_f64                      (double *d_18,
                                                             const double *s_36);

Performs a Modified Discrete Cosine Transform (MDCT) on the source array `s_36` and places the result in `d_18`.

`d_18` : |
`s_36` : |

### oil_idct8theora_s16 ()

    void                oil_idct8theora_s16                 (int16_t *d_8,
                                                             int dstr,
                                                             const int16_t *s_8,
                                                             int sstr);

Performs a Inverse Discrete Cosine Transform on `s_8` and places the result in `d_8`, as defined by the Theora specification.

`d_8` : |
`dstr` : |
`s_8` : |
`sstr` : |

### oil_idct8x8lim10_f64 ()

    void                oil_idct8x8lim10_f64                (double *d_8x8,
                                                             int dstr,
                                                             const double *s_8x8,
                                                             int sstr);

Performs a 2-D Inverse Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |

### oil_idct8x8lim10_s16 ()

    void                oil_idct8x8lim10_s16                (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);

Performs a limited 2-D Inverse Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`. The source 8x8 block must be non-zero only in the 10 lowest-order components.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |

### oil_idct8x8theora_s16 ()

    void                oil_idct8x8theora_s16               (int16_t *d_8x8,
                                                             int dstr,
                                                             const int16_t *s_8x8,
                                                             int sstr);

Performs a Inverse Discrete Cosine Transform on `s_8x8` and places the result in `d_8x8`, as defined by the Theora specification.

`d_8x8` : |
`dstr` : |
`s_8x8` : |
`sstr` : |