libavcodec/ivi_dsp.h File Reference

DSP functions (inverse transforms, motion compensations, wavelet recompostion) for Indeo Video Interactive codecs. More...

#include "avcodec.h"
#include "ivi_common.h"

Go to the source code of this file.

Functions

void ff_ivi_recompose53 (const IVIPlaneDesc *plane, uint8_t *dst, const int dst_pitch, const int num_bands)
 5/3 wavelet recomposition filter for Indeo5
void ff_ivi_inverse_slant_8x8 (const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags)
 two-dimensional inverse slant 8x8 transform
void ff_ivi_inverse_slant_4x4 (const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags)
 two-dimensional inverse slant 4x4 transform
void ff_ivi_dc_slant_2d (const int32_t *in, int16_t *out, uint32_t pitch, int blk_size)
 DC-only two-dimensional inverse slant transform.
void ff_ivi_row_slant8 (const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags)
 inverse 1D row slant transform
void ff_ivi_col_slant8 (const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags)
 inverse 1D column slant transform
void ff_ivi_dc_row_slant (const int32_t *in, int16_t *out, uint32_t pitch, int blk_size)
 DC-only inverse row slant transform.
void ff_ivi_dc_col_slant (const int32_t *in, int16_t *out, uint32_t pitch, int blk_size)
 DC-only inverse column slant transform.
void ff_ivi_put_pixels_8x8 (const int32_t *in, int16_t *out, uint32_t pitch, const uint8_t *flags)
 Copy the pixels into the frame buffer.
void ff_ivi_put_dc_pixel_8x8 (const int32_t *in, int16_t *out, uint32_t pitch, int blk_size)
 Copy the DC coefficient into the first pixel of the block and zero all others.
void ff_ivi_mc_8x8_delta (int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
 8x8 block motion compensation with adding delta
void ff_ivi_mc_4x4_delta (int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
 4x4 block motion compensation with adding delta
void ff_ivi_mc_8x8_no_delta (int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
 motion compensation without adding delta
void ff_ivi_mc_4x4_no_delta (int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
 4x4 block motion compensation without adding delta


Detailed Description

DSP functions (inverse transforms, motion compensations, wavelet recompostion) for Indeo Video Interactive codecs.

Definition in file ivi_dsp.h.


Function Documentation

void ff_ivi_col_slant8 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
const uint8_t *  flags 
)

inverse 1D column slant transform

Parameters:
[in] in pointer to the vector of transform coefficients
[out] out pointer to the output buffer (frame)
[in] pitch pitch to move to the next y line
[in] flags pointer to the array of column flags: != 0 - non_empty column, 0 - empty one (this array must be filled by caller)

Definition at line 362 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_dc_col_slant ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
int  blk_size 
)

DC-only inverse column slant transform.

Definition at line 389 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_dc_row_slant ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
int  blk_size 
)

DC-only inverse row slant transform.

Definition at line 344 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_dc_slant_2d ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
int  blk_size 
)

DC-only two-dimensional inverse slant transform.

Performing the inverse slant transform in this case is equivalent to spreading (DC_coeff + 1)/2 over the whole block. It works much faster than performing the slant transform on a vector of zeroes.

Parameters:
[in] in pointer to the dc coefficient
[out] out pointer to the output buffer (frame)
[in] pitch pitch to move to the next y line
[in] blk_size transform block size

Definition at line 311 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_inverse_slant_4x4 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
const uint8_t *  flags 
)

two-dimensional inverse slant 4x4 transform

Parameters:
[in] in pointer to the vector of transform coefficients
[out] out pointer to the output buffer (frame)
[in] pitch pitch to move to the next y line
[in] flags pointer to the array of column flags: != 0 - non_empty column, 0 - empty one (this array must be filled by caller)

Definition at line 271 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_inverse_slant_8x8 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
const uint8_t *  flags 
)

two-dimensional inverse slant 8x8 transform

Parameters:
[in] in pointer to the vector of transform coefficients
[out] out pointer to the output buffer (frame)
[in] pitch pitch to move to the next y line
[in] flags pointer to the array of column flags: != 0 - non_empty column, 0 - empty one (this array must be filled by caller)

Definition at line 231 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_mc_4x4_delta ( int16_t *  buf,
const int16_t *  ref_buf,
uint32_t  pitch,
int  mc_type 
)

4x4 block motion compensation with adding delta

Parameters:
[in,out] buf pointer to the block in the current frame buffer containing delta
[in] ref_buf pointer to the corresponding block in the reference frame
[in] pitch pitch for moving to the next y line
[in] mc_type interpolation type

Referenced by ff_ivi_decode_blocks().

void ff_ivi_mc_4x4_no_delta ( int16_t *  buf,
const int16_t *  ref_buf,
uint32_t  pitch,
int  mc_type 
)

4x4 block motion compensation without adding delta

Parameters:
[in,out] buf pointer to the block in the current frame receiving the result
[in] ref_buf pointer to the corresponding block in the reference frame
[in] pitch pitch for moving to the next y line
[in] mc_type interpolation type

Referenced by ff_ivi_decode_blocks(), and ff_ivi_process_empty_tile().

void ff_ivi_mc_8x8_delta ( int16_t *  buf,
const int16_t *  ref_buf,
uint32_t  pitch,
int  mc_type 
)

8x8 block motion compensation with adding delta

Parameters:
[in,out] buf pointer to the block in the current frame buffer containing delta
[in] ref_buf pointer to the corresponding block in the reference frame
[in] pitch pitch for moving to the next y line
[in] mc_type interpolation type

Referenced by ff_ivi_decode_blocks().

void ff_ivi_mc_8x8_no_delta ( int16_t *  buf,
const int16_t *  ref_buf,
uint32_t  pitch,
int  mc_type 
)

motion compensation without adding delta

Parameters:
[in,out] buf pointer to the block in the current frame receiving the result
[in] ref_buf pointer to the corresponding block in the reference frame
[in] pitch pitch for moving to the next y line
[in] mc_type interpolation type

Referenced by ff_ivi_decode_blocks(), and ff_ivi_process_empty_tile().

void ff_ivi_put_dc_pixel_8x8 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
int  blk_size 
)

Copy the DC coefficient into the first pixel of the block and zero all others.

Definition at line 413 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_put_pixels_8x8 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
const uint8_t *  flags 
)

Copy the pixels into the frame buffer.

Definition at line 403 of file ivi_dsp.c.

Referenced by decode_gop_header().

void ff_ivi_recompose53 ( const IVIPlaneDesc plane,
uint8_t *  dst,
const int  dst_pitch,
const int  num_bands 
)

5/3 wavelet recomposition filter for Indeo5

Parameters:
[in] plane pointer to the descriptor of the plane being processed
[out] dst pointer to the destination buffer
[in] dst_pitch pitch of the destination buffer
[in] num_bands number of wavelet bands to be processed

Definition at line 35 of file ivi_dsp.c.

Referenced by decode_frame().

void ff_ivi_row_slant8 ( const int32_t *  in,
int16_t *  out,
uint32_t  pitch,
const uint8_t *  flags 
)

inverse 1D row slant transform

Parameters:
[in] in pointer to the vector of transform coefficients
[out] out pointer to the output buffer (frame)
[in] pitch pitch to move to the next y line
[in] flags pointer to the array of column flags (unused here)

Definition at line 324 of file ivi_dsp.c.

Referenced by decode_gop_header().


Generated on Fri Oct 26 02:38:16 2012 for FFmpeg by  doxygen 1.5.8