FFmpeg  4.3
Macros | Functions
ivi_dsp.c File Reference
#include "avcodec.h"
#include "ivi.h"
#include "ivi_dsp.h"

Go to the source code of this file.

Macros

#define IVI_HAAR_BFLY(s1, s2, o1, o2, t)
 butterfly operation for the inverse Haar transform More...
 
#define INV_HAAR8(s1, s5, s3, s7, s2, s4, s6, s8, d1, d2, d3, d4, d5, d6, d7, d8, t0, t1, t2, t3, t4, t5, t6, t7, t8)
 inverse 8-point Haar transform More...
 
#define INV_HAAR4(s1, s3, s5, s7, d1, d2, d3, d4, t0, t1, t2, t3, t4)
 inverse 4-point Haar transform More...
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (x)
 
#define IVI_SLANT_BFLY(s1, s2, o1, o2, t)
 butterfly operation for the inverse slant transform More...
 
#define IVI_IREFLECT(s1, s2, o1, o2, t)
 This is a reflection a,b = 1/2, 5/4 for the inverse slant transform. More...
 
#define IVI_SLANT_PART4(s1, s2, o1, o2, t)
 This is a reflection a,b = 1/2, 7/8 for the inverse slant transform. More...
 
#define IVI_INV_SLANT8(s1, s4, s8, s5, s2, s6, s3, s7, d1, d2, d3, d4, d5, d6, d7, d8, t0, t1, t2, t3, t4, t5, t6, t7, t8)
 inverse slant8 transform More...
 
#define IVI_INV_SLANT4(s1, s4, s2, s3, d1, d2, d3, d4, t0, t1, t2, t3, t4)
 inverse slant4 transform More...
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define COMPENSATE(x)   (x)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define COMPENSATE(x)   (((x) + 1)>>1)
 
#define IVI_MC_TEMPLATE(size, suffix, OP)
 
#define IVI_MC_AVG_TEMPLATE(size, suffix, OP)
 
#define OP_PUT(a, b)   (a) = (b)
 
#define OP_ADD(a, b)   (a) += (b)
 

Functions

void ff_ivi_recompose53 (const IVIPlaneDesc *plane, uint8_t *dst, const ptrdiff_t dst_pitch)
 5/3 wavelet recomposition filter for Indeo5 More...
 
void ff_ivi_recompose_haar (const IVIPlaneDesc *plane, uint8_t *dst, const ptrdiff_t dst_pitch)
 Haar wavelet recomposition filter for Indeo 4. More...
 
void ff_ivi_inverse_haar_8x8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 two-dimensional inverse Haar 8x8 transform for Indeo 4 More...
 
void ff_ivi_row_haar8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 one-dimensional inverse 8-point Haar transform on rows for Indeo 4 More...
 
void ff_ivi_col_haar8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 one-dimensional inverse 8-point Haar transform on columns for Indeo 4 More...
 
void ff_ivi_inverse_haar_4x4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 two-dimensional inverse Haar 4x4 transform for Indeo 4 More...
 
void ff_ivi_row_haar4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 one-dimensional inverse 4-point Haar transform on rows for Indeo 4 More...
 
void ff_ivi_col_haar4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 one-dimensional inverse 4-point Haar transform on columns for Indeo 4 More...
 
void ff_ivi_dc_haar_2d (const int32_t *in, int16_t *out, ptrdiff_t pitch, int blk_size)
 DC-only two-dimensional inverse Haar transform for Indeo 4. More...
 
void ff_ivi_inverse_slant_8x8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 two-dimensional inverse slant 8x8 transform More...
 
void ff_ivi_inverse_slant_4x4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 two-dimensional inverse slant 4x4 transform More...
 
void ff_ivi_dc_slant_2d (const int32_t *in, int16_t *out, ptrdiff_t pitch, int blk_size)
 DC-only two-dimensional inverse slant transform. More...
 
void ff_ivi_row_slant8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 inverse 1D row slant transform More...
 
void ff_ivi_dc_row_slant (const int32_t *in, int16_t *out, ptrdiff_t pitch, int blk_size)
 DC-only inverse row slant transform. More...
 
void ff_ivi_col_slant8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 inverse 1D column slant transform More...
 
void ff_ivi_dc_col_slant (const int32_t *in, int16_t *out, ptrdiff_t pitch, int blk_size)
 DC-only inverse column slant transform. More...
 
void ff_ivi_row_slant4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 inverse 1D row slant transform More...
 
void ff_ivi_col_slant4 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 inverse 1D column slant transform More...
 
void ff_ivi_put_pixels_8x8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, const uint8_t *flags)
 Copy the pixels into the frame buffer. More...
 
void ff_ivi_put_dc_pixel_8x8 (const int32_t *in, int16_t *out, ptrdiff_t pitch, int blk_size)
 Copy the DC coefficient into the first pixel of the block and zero all others. More...
 

Detailed Description

DSP functions (inverse transforms, motion compensation, wavelet recompositions) for Indeo Video Interactive codecs.

Definition in file ivi_dsp.c.

Macro Definition Documentation

◆ IVI_HAAR_BFLY

#define IVI_HAAR_BFLY (   s1,
  s2,
  o1,
  o2,
 
)
Value:
t = ((s1) - (s2)) >> 1;\
o1 = ((s1) + (s2)) >> 1;\
o2 = (t);\

butterfly operation for the inverse Haar transform

Definition at line 237 of file ivi_dsp.c.

◆ INV_HAAR8

#define INV_HAAR8 (   s1,
  s5,
  s3,
  s7,
  s2,
  s4,
  s6,
  s8,
  d1,
  d2,
  d3,
  d4,
  d5,
  d6,
  d7,
  d8,
  t0,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8 
)
Value:
{\
t1 = (s1) * 2; t5 = (s5) * 2;\
IVI_HAAR_BFLY(t1, t5, t1, t5, t0); IVI_HAAR_BFLY(t1, s3, t1, t3, t0);\
IVI_HAAR_BFLY(t5, s7, t5, t7, t0); IVI_HAAR_BFLY(t1, s2, t1, t2, t0);\
IVI_HAAR_BFLY(t3, s4, t3, t4, t0); IVI_HAAR_BFLY(t5, s6, t5, t6, t0);\
IVI_HAAR_BFLY(t7, s8, t7, t8, t0);\
d1 = COMPENSATE(t1);\
d2 = COMPENSATE(t2);\
d3 = COMPENSATE(t3);\
d4 = COMPENSATE(t4);\
d5 = COMPENSATE(t5);\
d6 = COMPENSATE(t6);\
d7 = COMPENSATE(t7);\
d8 = COMPENSATE(t8); }

inverse 8-point Haar transform

Definition at line 243 of file ivi_dsp.c.

◆ INV_HAAR4

#define INV_HAAR4 (   s1,
  s3,
  s5,
  s7,
  d1,
  d2,
  d3,
  d4,
  t0,
  t1,
  t2,
  t3,
  t4 
)
Value:
{\
IVI_HAAR_BFLY(s1, s3, t0, t1, t4);\
IVI_HAAR_BFLY(t0, s5, t2, t3, t4);\
d1 = COMPENSATE(t2);\
d2 = COMPENSATE(t3);\
IVI_HAAR_BFLY(t1, s7, t2, t3, t4);\
d3 = COMPENSATE(t2);\
d4 = COMPENSATE(t3); }

inverse 4-point Haar transform

Definition at line 261 of file ivi_dsp.c.

◆ COMPENSATE [1/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [2/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [3/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [4/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [5/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [6/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [7/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [8/16]

#define COMPENSATE (   x)    (x)

◆ IVI_SLANT_BFLY

#define IVI_SLANT_BFLY (   s1,
  s2,
  o1,
  o2,
 
)
Value:
t = (s1) - (s2);\
o1 = (s1) + (s2);\
o2 = (t);\

butterfly operation for the inverse slant transform

Definition at line 487 of file ivi_dsp.c.

◆ IVI_IREFLECT

#define IVI_IREFLECT (   s1,
  s2,
  o1,
  o2,
 
)
Value:
t = (((s1) + (s2)*2 + 2) >> 2) + (s1);\
o2 = (((s1)*2 - (s2) + 2) >> 2) - (s2);\
o1 = (t);\

This is a reflection a,b = 1/2, 5/4 for the inverse slant transform.

Definition at line 493 of file ivi_dsp.c.

◆ IVI_SLANT_PART4

#define IVI_SLANT_PART4 (   s1,
  s2,
  o1,
  o2,
 
)
Value:
t = (s2) + (((s1)*4 - (s2) + 4) >> 3);\
o2 = (s1) + ((-(s1) - (s2)*4 + 4) >> 3);\
o1 = (t);\

This is a reflection a,b = 1/2, 7/8 for the inverse slant transform.

Definition at line 499 of file ivi_dsp.c.

◆ IVI_INV_SLANT8

#define IVI_INV_SLANT8 (   s1,
  s4,
  s8,
  s5,
  s2,
  s6,
  s3,
  s7,
  d1,
  d2,
  d3,
  d4,
  d5,
  d6,
  d7,
  d8,
  t0,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8 
)
Value:
{\
IVI_SLANT_PART4(s4, s5, t4, t5, t0);\
IVI_SLANT_BFLY(s7, s3, t7, t3, t0); IVI_SLANT_BFLY(t4, s8, t4, t8, t0);\
IVI_SLANT_BFLY(t5, t6, t5, t6, t0); IVI_IREFLECT (t8, t7, t8, t7, t0);\
IVI_SLANT_BFLY(t1, t4, t1, t4, t0); IVI_SLANT_BFLY(t2, t3, t2, t3, t0);\
IVI_SLANT_BFLY(t5, t8, t5, t8, t0); IVI_SLANT_BFLY(t6, t7, t6, t7, t0);\
d1 = COMPENSATE(t1);\
d2 = COMPENSATE(t2);\
d3 = COMPENSATE(t3);\
d4 = COMPENSATE(t4);\
d5 = COMPENSATE(t5);\
d6 = COMPENSATE(t6);\
d7 = COMPENSATE(t7);\
d8 = COMPENSATE(t8);}

inverse slant8 transform

Definition at line 505 of file ivi_dsp.c.

◆ IVI_INV_SLANT4

#define IVI_INV_SLANT4 (   s1,
  s4,
  s2,
  s3,
  d1,
  d2,
  d3,
  d4,
  t0,
  t1,
  t2,
  t3,
  t4 
)
Value:
{\
IVI_SLANT_BFLY(s1, s2, t1, t2, t0); IVI_IREFLECT (s4, s3, t4, t3, t0);\
d1 = COMPENSATE(t1);\
d2 = COMPENSATE(t2);\
d3 = COMPENSATE(t3);\
d4 = COMPENSATE(t4);}

inverse slant4 transform

Definition at line 527 of file ivi_dsp.c.

◆ COMPENSATE [9/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [10/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ COMPENSATE [11/16]

#define COMPENSATE (   x)    (x)

◆ COMPENSATE [12/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ COMPENSATE [13/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ COMPENSATE [14/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ COMPENSATE [15/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ COMPENSATE [16/16]

#define COMPENSATE (   x)    (((x) + 1)>>1)

◆ IVI_MC_TEMPLATE

#define IVI_MC_TEMPLATE (   size,
  suffix,
  OP 
)

Definition at line 774 of file ivi_dsp.c.

◆ IVI_MC_AVG_TEMPLATE

#define IVI_MC_AVG_TEMPLATE (   size,
  suffix,
  OP 
)
Value:
void ff_ivi_mc_avg_ ## size ##x## size ## suffix(int16_t *buf, \
const int16_t *ref_buf, \
const int16_t *ref_buf2, \
ptrdiff_t pitch, \
int mc_type, int mc_type2) \
{ \
int16_t tmp[size * size]; \
int i, j; \
\
ivi_mc_ ## size ##x## size ## _no_delta(tmp, size, ref_buf, pitch, mc_type); \
ivi_mc_ ## size ##x## size ## _delta(tmp, size, ref_buf2, pitch, mc_type2); \
for (i = 0; i < size; i++, buf += pitch) { \
for (j = 0; j < size; j++) {\
OP(buf[j], tmp[i * size + j] >> 1); \
} \
} \
} \

Definition at line 817 of file ivi_dsp.c.

◆ OP_PUT

#define OP_PUT (   a,
  b 
)    (a) = (b)

Definition at line 836 of file ivi_dsp.c.

◆ OP_ADD

#define OP_ADD (   a,
  b 
)    (a) += (b)

Definition at line 837 of file ivi_dsp.c.

Function Documentation

◆ ff_ivi_recompose53()

void ff_ivi_recompose53 ( const IVIPlaneDesc plane,
uint8_t dst,
const ptrdiff_t  dst_pitch 
)

5/3 wavelet recomposition filter for Indeo5

Parameters
[in]planepointer to the descriptor of the plane being processed
[out]dstpointer to the destination buffer
[in]dst_pitchpitch of the destination buffer

Definition at line 33 of file ivi_dsp.c.

Referenced by ff_ivi_decode_frame().

◆ ff_ivi_recompose_haar()

void ff_ivi_recompose_haar ( const IVIPlaneDesc plane,
uint8_t dst,
const ptrdiff_t  dst_pitch 
)

Haar wavelet recomposition filter for Indeo 4.

Parameters
[in]planepointer to the descriptor of the plane being processed
[out]dstpointer to the destination buffer
[in]dst_pitchpitch of the destination buffer

Definition at line 190 of file ivi_dsp.c.

Referenced by ff_ivi_decode_frame().

◆ ff_ivi_inverse_haar_8x8()

void ff_ivi_inverse_haar_8x8 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

two-dimensional inverse Haar 8x8 transform for Indeo 4

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

Definition at line 270 of file ivi_dsp.c.

◆ ff_ivi_row_haar8()

void ff_ivi_row_haar8 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

one-dimensional inverse 8-point Haar transform on rows for Indeo 4

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

Definition at line 325 of file ivi_dsp.c.

◆ ff_ivi_col_haar8()

void ff_ivi_col_haar8 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

one-dimensional inverse 8-point Haar transform on columns for Indeo 4

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

Definition at line 350 of file ivi_dsp.c.

◆ ff_ivi_inverse_haar_4x4()

void ff_ivi_inverse_haar_4x4 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

two-dimensional inverse Haar 4x4 transform for Indeo 4

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

Definition at line 379 of file ivi_dsp.c.

◆ ff_ivi_row_haar4()

void ff_ivi_row_haar4 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

one-dimensional inverse 4-point Haar transform on rows for Indeo 4

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

Definition at line 426 of file ivi_dsp.c.

◆ ff_ivi_col_haar4()

void ff_ivi_col_haar4 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

one-dimensional inverse 4-point Haar transform on columns for Indeo 4

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

Definition at line 448 of file ivi_dsp.c.

◆ ff_ivi_dc_haar_2d()

void ff_ivi_dc_haar_2d ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
int  blk_size 
)

DC-only two-dimensional inverse Haar transform for Indeo 4.

Performing the inverse transform in this case is equivalent to spreading DC_coeff >> 3 over the whole block.

Parameters
[in]inpointer to the dc coefficient
[out]outpointer to the output buffer (frame)
[in]pitchpitch to move to the next y line
[in]blk_sizetransform block size

Definition at line 472 of file ivi_dsp.c.

◆ ff_ivi_inverse_slant_8x8()

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

two-dimensional inverse slant 8x8 transform

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

Definition at line 536 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_inverse_slant_4x4()

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

two-dimensional inverse slant 4x4 transform

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

Definition at line 576 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_dc_slant_2d()

void ff_ivi_dc_slant_2d ( const int32_t in,
int16_t *  out,
ptrdiff_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]inpointer to the dc coefficient
[out]outpointer to the output buffer (frame)
[in]pitchpitch to move to the next y line
[in]blk_sizetransform block size

Definition at line 616 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_row_slant8()

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

inverse 1D row slant transform

Parameters
[in]inpointer to the vector of transform coefficients
[out]outpointer to the output buffer (frame)
[in]pitchpitch to move to the next y line
[in]flagspointer to the array of column flags (unused here)

Definition at line 629 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_dc_row_slant()

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

DC-only inverse row slant transform.

Definition at line 649 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_col_slant8()

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

inverse 1D column slant transform

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

Definition at line 667 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_dc_col_slant()

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

DC-only inverse column slant transform.

Definition at line 694 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_row_slant4()

void ff_ivi_row_slant4 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

inverse 1D row slant transform

Parameters
[in]inpointer to the vector of transform coefficients
[out]outpointer to the output buffer (frame)
[in]pitchpitch to move to the next y line
[in]flagspointer to the array of column flags (unused here)

Definition at line 708 of file ivi_dsp.c.

◆ ff_ivi_col_slant4()

void ff_ivi_col_slant4 ( const int32_t in,
int16_t *  out,
ptrdiff_t  pitch,
const uint8_t flags 
)

inverse 1D column slant transform

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

Definition at line 728 of file ivi_dsp.c.

◆ ff_ivi_put_pixels_8x8()

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

Copy the pixels into the frame buffer.

Definition at line 751 of file ivi_dsp.c.

Referenced by decode_gop_header().

◆ ff_ivi_put_dc_pixel_8x8()

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

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

Definition at line 761 of file ivi_dsp.c.

Referenced by decode_gop_header().

s5
#define s5
Definition: regdef.h:42
tmp
static uint8_t tmp[11]
Definition: aes_ctr.c:26
t0
#define t0
Definition: regdef.h:28
t1
#define t1
Definition: regdef.h:29
s3
#define s3
Definition: regdef.h:40
x
FFmpeg Automated Testing Environment ************************************Introduction Using FATE from your FFmpeg source directory Submitting the results to the FFmpeg result aggregation server Uploading new samples to the fate suite FATE makefile targets and variables Makefile targets Makefile variables Examples Introduction **************FATE is an extended regression suite on the client side and a means for results aggregation and presentation on the server side The first part of this document explains how you can use FATE from your FFmpeg source directory to test your ffmpeg binary The second part describes how you can run FATE to submit the results to FFmpeg’s FATE server In any way you can have a look at the publicly viewable FATE results by visiting this as it can be seen if some test on some platform broke with their recent contribution This usually happens on the platforms the developers could not test on The second part of this document describes how you can run FATE to submit your results to FFmpeg’s FATE server If you want to submit your results be sure to check that your combination of OS and compiler is not already listed on the above mentioned website In the third part you can find a comprehensive listing of FATE makefile targets and variables Using FATE from your FFmpeg source directory **********************************************If you want to run FATE on your machine you need to have the samples in place You can get the samples via the build target fate rsync Use this command from the top level source this will cause FATE to fail NOTE To use a custom wrapper to run the pass ‘ target exec’ to ‘configure’ or set the TARGET_EXEC Make variable Submitting the results to the FFmpeg result aggregation server ****************************************************************To submit your results to the server you should run fate through the shell script ‘tests fate sh’ from the FFmpeg sources This script needs to be invoked with a configuration file as its first argument tests fate sh path to fate_config A configuration file template with comments describing the individual configuration variables can be found at ‘doc fate_config sh template’ Create a configuration that suits your based on the configuration template The ‘slot’ configuration variable can be any string that is not yet but it is suggested that you name it adhering to the following pattern ‘ARCH OS COMPILER COMPILER VERSION’ The configuration file itself will be sourced in a shell therefore all shell features may be used This enables you to setup the environment as you need it for your build For your first test runs the ‘fate_recv’ variable should be empty or commented out This will run everything as normal except that it will omit the submission of the results to the server The following files should be present in $workdir as specified in the configuration it may help to try out the ‘ssh’ command with one or more ‘ v’ options You should get detailed output concerning your SSH configuration and the authentication process The only thing left is to automate the execution of the fate sh script and the synchronisation of the samples directory Uploading new samples to the fate suite *****************************************If you need a sample uploaded send a mail to samples request This is for developers who have an account on the fate suite server If you upload new please make sure they are as small as space on each network bandwidth and so on benefit from smaller test cases Also keep in mind older checkouts use existing sample that means in practice generally do not remove or overwrite files as it likely would break older checkouts or releases Also all needed samples for a commit should be ideally before the push If you need an account for frequently uploading samples or you wish to help others by doing that send a mail to ffmpeg devel rsync vauL Duo x
Definition: fate.txt:150
IVI_HAAR_BFLY
#define IVI_HAAR_BFLY(s1, s2, o1, o2, t)
butterfly operation for the inverse Haar transform
Definition: ivi_dsp.c:237
s1
#define s1
Definition: regdef.h:38
t7
#define t7
Definition: regdef.h:35
COMPENSATE
#define COMPENSATE(x)
t5
#define t5
Definition: regdef.h:33
s6
#define s6
Definition: regdef.h:43
t6
#define t6
Definition: regdef.h:34
IVI_SLANT_BFLY
#define IVI_SLANT_BFLY(s1, s2, o1, o2, t)
butterfly operation for the inverse slant transform
Definition: ivi_dsp.c:487
s2
#define s2
Definition: regdef.h:39
size
int size
Definition: twinvq_data.h:11134
t8
#define t8
Definition: regdef.h:53
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:269
t4
#define t4
Definition: regdef.h:32
t3
#define t3
Definition: regdef.h:31
s4
#define s4
Definition: regdef.h:41
suffix
const char * suffix
Definition: checkasm.c:198
t2
#define t2
Definition: regdef.h:30
IVI_IREFLECT
#define IVI_IREFLECT(s1, s2, o1, o2, t)
This is a reflection a,b = 1/2, 5/4 for the inverse slant transform.
Definition: ivi_dsp.c:493