FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions
vc1dsp_mmi.c File Reference
#include "libavutil/avassert.h"
#include "libavcodec/vc1dsp.h"
#include "constants.h"
#include "vc1dsp_mips.h"
#include "hpeldsp_mips.h"
#include "libavutil/mips/mmiutils.h"

Go to the source code of this file.

Macros

#define VC1_INV_TRANCS_8_STEP1_MMI(fp1,fp2,fp3,fp4,o1,o2,o3,o4,t1,t2,t3,t4,ff_p1, ff_p2, ff_p3, ff_p4)
 
#define VC1_INV_TRANCS_8_STEP2_MMI(fp1,fp2,fp3,fp4,fp5,fp6,fp7,fp8,o1,o2,o3,o4,ff_p1, ff_p2, ff_p3, ff_pw)
 
#define VC1_INV_TRANCS_4_STEP1_MMI(fp1,fp2,fp3,fp4,fp5,fp6,fp7,fp8,ff_p1, ff_p2, ff_p3, ff_pw)
 
#define VC1_INV_TRANCS_4_STEP2_MMI(fp1, fp2, fp3, fp4,fp5, fp6, fp7, fp8, zero)
 
#define OP_PUT(S, D)
 
#define OP_AVG(S, D)
 
#define NORMALIZE_MMI(SHIFT)
 Add rounder from $f14 to $f6 and pack result at destination. More...
 
#define TRANSFER_DO_PACK(OP)
 
#define TRANSFER_DONT_PACK(OP)
 
#define DO_UNPACK(reg)   "punpcklbh "reg", "reg", $f0 \n\t"
 
#define DONT_UNPACK(reg)
 
#define LOAD_ROUNDER_MMI(ROUND)
 Compute the rounder 32-r or 8-r and unpacks it to $f14. More...
 
#define SHIFT2_LINE(OFF, R0, R1, R2, R3)
 
#define VC1_HOR_16B_SHIFT2(OP, OPNAME)
 Data is already unpacked, so some operations can directly be made from memory. More...
 
#define VC1_SHIFT2(OP, OPNAME)
 Purely vertical or horizontal 1/2 shift interpolation. More...
 
#define MSPEL_FILTER13_CORE(UNPACK, LOAD, M, A1, A2, A3, A4)
 Core of the 1/4 and 3/4 shift bicubic interpolation. More...
 
#define MSPEL_FILTER13_VER_16B(NAME, A1, A2, A3, A4)
 Macro to build the vertical 16bits version of vc1_put_shift[13]. More...
 
#define MSPEL_FILTER13_HOR_16B(NAME, A1, A2, A3, A4, OP, OPNAME)
 Macro to build the horizontal 16bits version of vc1_put_shift[13]. More...
 
#define MSPEL_FILTER13_8B(NAME, A1, A2, A3, A4, OP, OPNAME)
 Macro to build the 8bits, any direction, version of vc1_put_shift[13]. More...
 
#define VC1_MSPEL_MC(OP)
 Interpolate fractional pel values by applying proper vertical then horizontal filter. More...
 
#define DECLARE_FUNCTION(a, b)
 Macro to ease bicubic filter interpolation functions declarations. More...
 
#define CHROMA_MC_8_MMI
 
#define CHROMA_MC_4_MMI
 

Typedefs

typedef void(* vc1_mspel_mc_filter_ver_16bits )(int16_t *dst, const uint8_t *src, mips_reg src_stride, int rnd, int64_t shift)
 1/4 shift bicubic interpolation More...
 
typedef void(* vc1_mspel_mc_filter_hor_16bits )(uint8_t *dst, mips_reg dst_stride, const int16_t *src, int rnd)
 
typedef void(* vc1_mspel_mc_filter_8bits )(uint8_t *dst, const uint8_t *src, mips_reg stride, int rnd, mips_reg offset)
 

Functions

void ff_vc1_inv_trans_8x8_dc_mmi (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_8x4_dc_mmi (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_4x8_dc_mmi (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_4x4_dc_mmi (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_inv_trans_4x4_mmi (uint8_t *dest, ptrdiff_t linesize, int16_t *block)
 
void ff_vc1_h_overlap_mmi (uint8_t *src, int stride)
 
void ff_vc1_h_s_overlap_mmi (int16_t *left, int16_t *right)
 
void ff_vc1_v_overlap_mmi (uint8_t *src, int stride)
 
void ff_vc1_v_s_overlap_mmi (int16_t *top, int16_t *bottom)
 
static av_always_inline int vc1_filter_line (uint8_t *src, int stride, int pq)
 VC-1 in-loop deblocking filter for one line. More...
 
static void vc1_loop_filter (uint8_t *src, int step, int stride, int len, int pq)
 VC-1 in-loop deblocking filter. More...
 
void ff_vc1_v_loop_filter4_mmi (uint8_t *src, int stride, int pq)
 
void ff_vc1_h_loop_filter4_mmi (uint8_t *src, int stride, int pq)
 
void ff_vc1_v_loop_filter8_mmi (uint8_t *src, int stride, int pq)
 
void ff_vc1_h_loop_filter8_mmi (uint8_t *src, int stride, int pq)
 
void ff_vc1_v_loop_filter16_mmi (uint8_t *src, int stride, int pq)
 
void ff_vc1_h_loop_filter16_mmi (uint8_t *src, int stride, int pq)
 
void ff_put_vc1_mspel_mc00_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
 
void ff_put_vc1_mspel_mc00_16_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
 
void ff_avg_vc1_mspel_mc00_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
 
void ff_avg_vc1_mspel_mc00_16_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
 
static void vc1_put_ver_16b_shift2_mmi (int16_t *dst, const uint8_t *src, mips_reg stride, int rnd, int64_t shift)
 Sacrificing $f12 makes it possible to pipeline loads from src. More...
 
void ff_put_no_rnd_vc1_chroma_mc8_mmi (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
 
void ff_put_no_rnd_vc1_chroma_mc4_mmi (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
 
void ff_avg_no_rnd_vc1_chroma_mc8_mmi (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
 
void ff_avg_no_rnd_vc1_chroma_mc4_mmi (uint8_t *dst, uint8_t *src, int stride, int h, int x, int y)
 

Macro Definition Documentation

#define VC1_INV_TRANCS_8_STEP1_MMI (   fp1,
  fp2,
  fp3,
  fp4,
  o1,
  o2,
  o3,
  o4,
  t1,
  t2,
  t3,
  t4,
  ff_p1,
  ff_p2,
  ff_p3,
  ff_p4 
)

Definition at line 31 of file vc1dsp_mmi.c.

#define VC1_INV_TRANCS_8_STEP2_MMI (   fp1,
  fp2,
  fp3,
  fp4,
  fp5,
  fp6,
  fp7,
  fp8,
  o1,
  o2,
  o3,
  o4,
  ff_p1,
  ff_p2,
  ff_p3,
  ff_pw 
)
Value:
"paddh "#fp5" , "#fp1" , "#fp2" \n\t" \
"psubh "#fp6" , "#fp1" , "#fp2" \n\t" \
"pmullh "#fp5" , "#fp5" , "#ff_p1" \n\t" \
"pmullh "#fp6" , "#fp6" , "#ff_p1" \n\t" \
"paddh "#fp5" , "#fp5" , "#ff_pw" \n\t" \
"paddh "#fp6" , "#fp6" , "#ff_pw" \n\t" \
\
"pmullh "#fp1" , "#fp3" , "#ff_p2" \n\t" \
"pmullh "#fp2" , "#fp4" , "#ff_p3" \n\t" \
"pmullh "#fp3" , "#fp3" , "#ff_p3" \n\t" \
"pmullh "#fp4" , "#fp4" , "#ff_p2" \n\t" \
"paddh "#fp7" , "#fp1" , "#fp2" \n\t" \
"psubh "#fp8" , "#fp3" , "#fp4" \n\t" \
\
"paddh "#fp1" , "#fp5" , "#fp7" \n\t" \
"paddh "#fp2" , "#fp6" , "#fp8" \n\t" \
"psubh "#fp3" , "#fp6" , "#fp8" \n\t" \
"psubh "#fp4" , "#fp5" , "#fp7" \n\t" \
\
"paddh "#fp5" , "#fp1" , "#o1" \n\t" \
"paddh "#fp6" , "#fp2" , "#o2" \n\t" \
"paddh "#fp7" , "#fp3" , "#o3" \n\t" \
"paddh "#fp8" , "#fp4" , "#o4" \n\t" \
\
"psubh "#fp4" , "#fp4" , "#o4" \n\t" \
"psubh "#fp3" , "#fp3" , "#o3" \n\t" \
"psubh "#fp2" , "#fp2" , "#o2" \n\t" \
"psubh "#fp1" , "#fp1" , "#o1" \n\t"

Definition at line 68 of file vc1dsp_mmi.c.

#define VC1_INV_TRANCS_4_STEP1_MMI (   fp1,
  fp2,
  fp3,
  fp4,
  fp5,
  fp6,
  fp7,
  fp8,
  ff_p1,
  ff_p2,
  ff_p3,
  ff_pw 
)
Value:
"paddh "#fp5" , "#fp1" , "#fp2" \n\t" \
"psubh "#fp6" , "#fp1" , "#fp2" \n\t" \
"pmullh "#fp5" , "#fp5" , "#ff_p1" \n\t" \
"pmullh "#fp6" , "#fp6" , "#ff_p1" \n\t" \
"paddh "#fp5" , "#fp5" , "#ff_pw" \n\t" \
"paddh "#fp6" , "#fp6" , "#ff_pw" \n\t" \
\
"pmullh "#fp1" , "#fp3" , "#ff_p2" \n\t" \
"pmullh "#fp2" , "#fp4" , "#ff_p3" \n\t" \
"pmullh "#fp3" , "#fp3" , "#ff_p3" \n\t" \
"pmullh "#fp4" , "#fp4" , "#ff_p2" \n\t" \
"paddh "#fp7" , "#fp1" , "#fp2" \n\t" \
"psubh "#fp8" , "#fp3" , "#fp4" \n\t" \
\
"paddh "#fp1" , "#fp5" , "#fp7" \n\t" \
"psubh "#fp2" , "#fp6" , "#fp8" \n\t" \
"paddh "#fp3" , "#fp6" , "#fp8" \n\t" \
"psubh "#fp4" , "#fp5" , "#fp7" \n\t"

Definition at line 102 of file vc1dsp_mmi.c.

Referenced by ff_vc1_inv_trans_4x4_mmi().

#define VC1_INV_TRANCS_4_STEP2_MMI (   fp1,
  fp2,
  fp3,
  fp4,
  fp5,
  fp6,
  fp7,
  fp8,
  zero 
)
Value:
"punpcklbh "#fp5" , "#fp5" , "#zero" \n\t" \
"punpcklbh "#fp6" , "#fp6" , "#zero" \n\t" \
"punpcklbh "#fp7" , "#fp7" , "#zero" \n\t" \
"punpcklbh "#fp8" , "#fp8" , "#zero" \n\t" \
\
"paddh "#fp1" , "#fp1" , "#fp5" \n\t" \
"paddh "#fp2" , "#fp2" , "#fp6" \n\t" \
"paddh "#fp3" , "#fp3" , "#fp7" \n\t" \
"paddh "#fp4" , "#fp4" , "#fp8" \n\t" \
\
"packushb "#fp1" , "#fp1" , "#zero" \n\t" \
"packushb "#fp2" , "#fp2" , "#zero" \n\t" \
"packushb "#fp3" , "#fp3" , "#zero" \n\t" \
"packushb "#fp4" , "#fp4" , "#zero" \n\t"
#define zero
Definition: regdef.h:64

Definition at line 125 of file vc1dsp_mmi.c.

Referenced by ff_vc1_inv_trans_4x4_mmi().

#define OP_PUT (   S,
  D 
)

Definition at line 1223 of file vc1dsp_mmi.c.

#define OP_AVG (   S,
  D 
)
Value:
"ldc1 $f16, "#S" \n\t" \
"pavgb "#D", "#D", $f16 \n\t"
#define S(s, c, i)
D(D(float, sse)
Definition: rematrix_init.c:28

Definition at line 1224 of file vc1dsp_mmi.c.

#define NORMALIZE_MMI (   SHIFT)
Value:
"paddh $f6, $f6, $f14 \n\t" /* +bias-r */ \
"paddh $f8, $f8, $f14 \n\t" /* +bias-r */ \
"psrah $f6, $f6, "SHIFT" \n\t" \
"psrah $f8, $f8, "SHIFT" \n\t"

Add rounder from $f14 to $f6 and pack result at destination.

Definition at line 1229 of file vc1dsp_mmi.c.

#define TRANSFER_DO_PACK (   OP)
Value:
"packushb $f6, $f6, $f8 \n\t" \
OP((%[dst]), $f6) \
"sdc1 $f6, 0x00(%[dst]) \n\t"
#define OP(LOAD, STORE)
Definition: hpeldsp_alpha.c:55

Definition at line 1235 of file vc1dsp_mmi.c.

#define TRANSFER_DONT_PACK (   OP)
Value:
OP(0(%[dst]), $f6) \
OP(8(%[dst]), $f8) \
"sdc1 $f6, 0x00(%[dst]) \n\t" \
"sdc1 $f8, 0x08(%[dst]) \n\t"
#define OP(LOAD, STORE)
Definition: hpeldsp_alpha.c:55

Definition at line 1240 of file vc1dsp_mmi.c.

#define DO_UNPACK (   reg)    "punpcklbh "reg", "reg", $f0 \n\t"
See Also
MSPEL_FILTER13_CORE for use as UNPACK macro

Definition at line 1247 of file vc1dsp_mmi.c.

#define DONT_UNPACK (   reg)

Definition at line 1249 of file vc1dsp_mmi.c.

#define LOAD_ROUNDER_MMI (   ROUND)
Value:
"lwc1 $f14, "ROUND" \n\t" \
"punpcklhw $f14, $f14, $f14 \n\t" \
"punpcklwd $f14, $f14, $f14 \n\t"

Compute the rounder 32-r or 8-r and unpacks it to $f14.

Definition at line 1252 of file vc1dsp_mmi.c.

Referenced by vc1_put_ver_16b_shift2_mmi().

#define SHIFT2_LINE (   OFF,
  R0,
  R1,
  R2,
  R3 
)
Value:
"paddh "#R1", "#R1", "#R2" \n\t" \
PTR_ADDU "$9, %[src], %[stride1] \n\t" \
MMI_ULWC1(R0, $9, 0x00) \
"pmullh "#R1", "#R1", $f6 \n\t" \
"punpcklbh "#R0", "#R0", $f0 \n\t" \
PTR_ADDU "$9, %[src], %[stride] \n\t" \
MMI_ULWC1(R3, $9, 0x00) \
"psubh "#R1", "#R1", "#R0" \n\t" \
"punpcklbh "#R3", "#R3", $f0 \n\t" \
"paddh "#R1", "#R1", $f14 \n\t" \
"psubh "#R1", "#R1", "#R3" \n\t" \
"psrah "#R1", "#R1", %[shift] \n\t" \
MMI_SDC1(R1, %[dst], OFF) \
PTR_ADDU "%[src], %[src], %[stride] \n\t"
#define R2
Definition: simple_idct.c:164
#define R0(v, w, x, y, z, i)
Definition: sha.c:56
#define R1
Definition: simple_idct.c:163
#define R3
Definition: simple_idct.c:165
#define PTR_ADDU
Definition: asmdefs.h:47

Definition at line 1258 of file vc1dsp_mmi.c.

Referenced by vc1_put_ver_16b_shift2_mmi().

#define VC1_HOR_16B_SHIFT2 (   OP,
  OPNAME 
)

Data is already unpacked, so some operations can directly be made from memory.

Definition at line 1319 of file vc1dsp_mmi.c.

#define VC1_SHIFT2 (   OP,
  OPNAME 
)

Purely vertical or horizontal 1/2 shift interpolation.

Sacrify $f12 for *9 factor.

Definition at line 1379 of file vc1dsp_mmi.c.

#define MSPEL_FILTER13_CORE (   UNPACK,
  LOAD,
  M,
  A1,
  A2,
  A3,
  A4 
)

Core of the 1/4 and 3/4 shift bicubic interpolation.

Parameters
UNPACKMacro unpacking arguments from 8 to 16bits (can be empty).
LOAD"MMI_ULWC1" or "MMI_ULDC1", if data read is already unpacked.
M"1" for MMI_ULWC1, "2" for MMI_ULDC1.
A1Stride address of 1st tap (beware of unpacked/packed).
A2Stride address of 2nd tap
A3Stride address of 3rd tap
A4Stride address of 4th tap

Definition at line 1458 of file vc1dsp_mmi.c.

#define MSPEL_FILTER13_VER_16B (   NAME,
  A1,
  A2,
  A3,
  A4 
)

Macro to build the vertical 16bits version of vc1_put_shift[13].

Here, offset=src_stride. Parameters passed A1 to A4 must use %3 (src_stride), %4 (2*src_stride) and %5 (3*src_stride).

Parameters
NAMEEither 1 or 3
See Also
MSPEL_FILTER13_CORE for information on A1->A4

Definition at line 1504 of file vc1dsp_mmi.c.

#define MSPEL_FILTER13_HOR_16B (   NAME,
  A1,
  A2,
  A3,
  A4,
  OP,
  OPNAME 
)

Macro to build the horizontal 16bits version of vc1_put_shift[13].

Here, offset=16bits, so parameters passed A1 to A4 should be simple.

Parameters
NAMEEither 1 or 3
See Also
MSPEL_FILTER13_CORE for information on A1->A4

Definition at line 1579 of file vc1dsp_mmi.c.

#define MSPEL_FILTER13_8B (   NAME,
  A1,
  A2,
  A3,
  A4,
  OP,
  OPNAME 
)

Macro to build the 8bits, any direction, version of vc1_put_shift[13].

Here, offset=src_stride. Parameters passed A1 to A4 must use %3 (offset), %4 (2*offset) and %5 (3*offset).

Parameters
NAMEEither 1 or 3
See Also
MSPEL_FILTER13_CORE for information on A1->A4

Definition at line 1629 of file vc1dsp_mmi.c.

#define VC1_MSPEL_MC (   OP)

Interpolate fractional pel values by applying proper vertical then horizontal filter.

Parameters
dstDestination buffer for interpolated pels.
srcSource buffer.
strideStride for both src and dst buffers.
hmodeHorizontal filter (expressed in quarter pixels shift).
hmodeVertical filter.
rndRounding bias.

Definition at line 1705 of file vc1dsp_mmi.c.

#define DECLARE_FUNCTION (   a,
  b 
)
Value:
void ff_put_vc1_mspel_mc ## a ## b ## _mmi(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, \
int rnd) \
{ \
put_vc1_mspel_mc(dst, src, stride, a, b, rnd); \
} \
void ff_avg_vc1_mspel_mc ## a ## b ## _mmi(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, \
int rnd) \
{ \
avg_vc1_mspel_mc(dst, src, stride, a, b, rnd); \
} \
void ff_put_vc1_mspel_mc ## a ## b ## _16_mmi(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, \
int rnd) \
{ \
put_vc1_mspel_mc_16(dst, src, stride, a, b, rnd); \
} \
void ff_avg_vc1_mspel_mc ## a ## b ## _16_mmi(uint8_t *dst, \
const uint8_t *src, \
ptrdiff_t stride, \
int rnd) \
{ \
avg_vc1_mspel_mc_16(dst, src, stride, a, b, rnd); \
}
const char * b
Definition: vf_curves.c:113
#define src
Definition: vp8dsp.c:254
uint8_t
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:105
#define rnd()
Definition: checkasm.h:74

Macro to ease bicubic filter interpolation functions declarations.

Definition at line 1758 of file vc1dsp_mmi.c.

#define CHROMA_MC_8_MMI
#define CHROMA_MC_4_MMI
Value:
"punpcklbh %[ftmp1], %[ftmp1], %[ftmp0] \n\t" \
"punpcklbh %[ftmp2], %[ftmp2], %[ftmp0] \n\t" \
"punpcklbh %[ftmp3], %[ftmp3], %[ftmp0] \n\t" \
"punpcklbh %[ftmp4], %[ftmp4], %[ftmp0] \n\t" \
\
"pmullh %[ftmp1], %[ftmp1], %[A] \n\t" \
"pmullh %[ftmp2], %[ftmp2], %[B] \n\t" \
"pmullh %[ftmp3], %[ftmp3], %[C] \n\t" \
"pmullh %[ftmp4], %[ftmp4], %[D] \n\t" \
\
"paddh %[ftmp1], %[ftmp1], %[ftmp2] \n\t" \
"paddh %[ftmp3], %[ftmp3], %[ftmp4] \n\t" \
"paddh %[ftmp1], %[ftmp1], %[ftmp3] \n\t" \
"paddh %[ftmp1], %[ftmp1], %[ff_pw_28] \n\t" \
\
"psrlh %[ftmp1], %[ftmp1], %[ftmp5] \n\t" \
"packushb %[ftmp1], %[ftmp1], %[ftmp0] \n\t"

Definition at line 1841 of file vc1dsp_mmi.c.

Referenced by ff_avg_no_rnd_vc1_chroma_mc4_mmi(), and ff_put_no_rnd_vc1_chroma_mc4_mmi().

Typedef Documentation

typedef void(* vc1_mspel_mc_filter_ver_16bits)(int16_t *dst, const uint8_t *src, mips_reg src_stride, int rnd, int64_t shift)

1/4 shift bicubic interpolation

3/4 shift bicubic interpolation

Definition at line 1686 of file vc1dsp_mmi.c.

typedef void(* vc1_mspel_mc_filter_hor_16bits)(uint8_t *dst, mips_reg dst_stride, const int16_t *src, int rnd)

Definition at line 1689 of file vc1dsp_mmi.c.

typedef void(* vc1_mspel_mc_filter_8bits)(uint8_t *dst, const uint8_t *src, mips_reg stride, int rnd, mips_reg offset)

Definition at line 1691 of file vc1dsp_mmi.c.

Function Documentation

void ff_vc1_inv_trans_8x8_dc_mmi ( uint8_t dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Definition at line 144 of file vc1dsp_mmi.c.

void ff_vc1_inv_trans_8x4_dc_mmi ( uint8_t dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Definition at line 371 of file vc1dsp_mmi.c.

void ff_vc1_inv_trans_4x8_dc_mmi ( uint8_t dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Definition at line 602 of file vc1dsp_mmi.c.

void ff_vc1_inv_trans_4x4_dc_mmi ( uint8_t dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Definition at line 841 of file vc1dsp_mmi.c.

void ff_vc1_inv_trans_4x4_mmi ( uint8_t dest,
ptrdiff_t  linesize,
int16_t *  block 
)

Definition at line 889 of file vc1dsp_mmi.c.

void ff_vc1_h_overlap_mmi ( uint8_t src,
int  stride 
)

Definition at line 999 of file vc1dsp_mmi.c.

void ff_vc1_h_s_overlap_mmi ( int16_t *  left,
int16_t *  right 
)

Definition at line 1022 of file vc1dsp_mmi.c.

void ff_vc1_v_overlap_mmi ( uint8_t src,
int  stride 
)

Definition at line 1049 of file vc1dsp_mmi.c.

void ff_vc1_v_s_overlap_mmi ( int16_t *  top,
int16_t *  bottom 
)

Definition at line 1072 of file vc1dsp_mmi.c.

static av_always_inline int vc1_filter_line ( uint8_t src,
int  stride,
int  pq 
)
static

VC-1 in-loop deblocking filter for one line.

Parameters
srcsource block type
strideblock stride
pqblock quantizer
Returns
whether other 3 pairs should be filtered or not
See Also
8.6

Definition at line 1106 of file vc1dsp_mmi.c.

Referenced by vc1_loop_filter().

static void vc1_loop_filter ( uint8_t src,
int  step,
int  stride,
int  len,
int  pq 
)
inlinestatic

VC-1 in-loop deblocking filter.

Parameters
srcsource block type
stepdistance between horizontally adjacent elements
stridedistance between vertically adjacent elements
lenedge length to filter (4 or 8 pixels)
pqblock quantizer
See Also
8.6

Definition at line 1155 of file vc1dsp_mmi.c.

Referenced by ff_vc1_h_loop_filter16_mmi(), ff_vc1_h_loop_filter4_mmi(), ff_vc1_h_loop_filter8_mmi(), ff_vc1_v_loop_filter16_mmi(), ff_vc1_v_loop_filter4_mmi(), and ff_vc1_v_loop_filter8_mmi().

void ff_vc1_v_loop_filter4_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1172 of file vc1dsp_mmi.c.

void ff_vc1_h_loop_filter4_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1177 of file vc1dsp_mmi.c.

void ff_vc1_v_loop_filter8_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1182 of file vc1dsp_mmi.c.

void ff_vc1_h_loop_filter8_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1187 of file vc1dsp_mmi.c.

void ff_vc1_v_loop_filter16_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1192 of file vc1dsp_mmi.c.

void ff_vc1_h_loop_filter16_mmi ( uint8_t src,
int  stride,
int  pq 
)

Definition at line 1197 of file vc1dsp_mmi.c.

void ff_put_vc1_mspel_mc00_mmi ( uint8_t dst,
const uint8_t src,
ptrdiff_t  stride,
int  rnd 
)

Definition at line 1202 of file vc1dsp_mmi.c.

void ff_put_vc1_mspel_mc00_16_mmi ( uint8_t dst,
const uint8_t src,
ptrdiff_t  stride,
int  rnd 
)

Definition at line 1207 of file vc1dsp_mmi.c.

void ff_avg_vc1_mspel_mc00_mmi ( uint8_t dst,
const uint8_t src,
ptrdiff_t  stride,
int  rnd 
)

Definition at line 1212 of file vc1dsp_mmi.c.

void ff_avg_vc1_mspel_mc00_16_mmi ( uint8_t dst,
const uint8_t src,
ptrdiff_t  stride,
int  rnd 
)

Definition at line 1217 of file vc1dsp_mmi.c.

static void vc1_put_ver_16b_shift2_mmi ( int16_t *  dst,
const uint8_t src,
mips_reg  stride,
int  rnd,
int64_t  shift 
)
static

Sacrificing $f12 makes it possible to pipeline loads from src.

Definition at line 1275 of file vc1dsp_mmi.c.

void ff_put_no_rnd_vc1_chroma_mc8_mmi ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
)

Definition at line 1861 of file vc1dsp_mmi.c.

void ff_put_no_rnd_vc1_chroma_mc4_mmi ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
)

Definition at line 1916 of file vc1dsp_mmi.c.

void ff_avg_no_rnd_vc1_chroma_mc8_mmi ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
)

Definition at line 1969 of file vc1dsp_mmi.c.

void ff_avg_no_rnd_vc1_chroma_mc4_mmi ( uint8_t dst,
uint8_t src,
int  stride,
int  h,
int  x,
int  y 
)

Definition at line 2027 of file vc1dsp_mmi.c.