FFmpeg
Macros | Typedefs | Functions
vc1dsp_mmi.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/mem_internal.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_TYPE1(o1, o2, r1, r2, r3, r4, c0)
 
#define VC1_INV_TRANCS_8_TYPE2(o1, o2, r1, r2, r3, r4, c0, c1)
 
#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, ptrdiff_t stride)
 
void ff_vc1_h_s_overlap_mmi (int16_t *left, int16_t *right, ptrdiff_t left_stride, ptrdiff_t right_stride, int flags)
 
void ff_vc1_v_overlap_mmi (uint8_t *src, ptrdiff_t 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, ptrdiff_t stride, int pq)
 
void ff_vc1_h_loop_filter4_mmi (uint8_t *src, ptrdiff_t stride, int pq)
 
void ff_vc1_v_loop_filter8_mmi (uint8_t *src, ptrdiff_t stride, int pq)
 
void ff_vc1_h_loop_filter8_mmi (uint8_t *src, ptrdiff_t stride, int pq)
 
void ff_vc1_v_loop_filter16_mmi (uint8_t *src, ptrdiff_t stride, int pq)
 
void ff_vc1_h_loop_filter16_mmi (uint8_t *src, ptrdiff_t 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, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_put_no_rnd_vc1_chroma_mc4_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_avg_no_rnd_vc1_chroma_mc8_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 
void ff_avg_no_rnd_vc1_chroma_mc4_mmi (uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h, int x, int y)
 

Macro Definition Documentation

◆ VC1_INV_TRANCS_8_TYPE1

#define VC1_INV_TRANCS_8_TYPE1 (   o1,
  o2,
  r1,
  r2,
  r3,
  r4,
  c0 
)

Definition at line 33 of file vc1dsp_mmi.c.

◆ VC1_INV_TRANCS_8_TYPE2

#define VC1_INV_TRANCS_8_TYPE2 (   o1,
  o2,
  r1,
  r2,
  r3,
  r4,
  c0,
  c1 
)

Definition at line 77 of file vc1dsp_mmi.c.

◆ OP_PUT

#define OP_PUT (   S,
  D 
)

Definition at line 1605 of file vc1dsp_mmi.c.

◆ OP_AVG

#define OP_AVG (   S,
  D 
)
Value:
"ldc1 $f16, "#S" \n\t" \
"pavgb "#D", "#D", $f16 \n\t"

Definition at line 1606 of file vc1dsp_mmi.c.

◆ NORMALIZE_MMI

#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 1611 of file vc1dsp_mmi.c.

◆ TRANSFER_DO_PACK

#define TRANSFER_DO_PACK (   OP)
Value:
"packushb $f6, $f6, $f8 \n\t" \
OP((%[dst]), $f6) \
"sdc1 $f6, 0x00(%[dst]) \n\t"

Definition at line 1617 of file vc1dsp_mmi.c.

◆ TRANSFER_DONT_PACK

#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"

Definition at line 1622 of file vc1dsp_mmi.c.

◆ DO_UNPACK

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

Definition at line 1629 of file vc1dsp_mmi.c.

◆ DONT_UNPACK

#define DONT_UNPACK (   reg)

Definition at line 1631 of file vc1dsp_mmi.c.

◆ LOAD_ROUNDER_MMI

#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 1634 of file vc1dsp_mmi.c.

◆ SHIFT2_LINE

#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"

Definition at line 1640 of file vc1dsp_mmi.c.

◆ VC1_HOR_16B_SHIFT2

#define VC1_HOR_16B_SHIFT2 (   OP,
  OPNAME 
)

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

Definition at line 1702 of file vc1dsp_mmi.c.

◆ VC1_SHIFT2

#define VC1_SHIFT2 (   OP,
  OPNAME 
)

Purely vertical or horizontal 1/2 shift interpolation.

Sacrify $f12 for *9 factor.

Definition at line 1760 of file vc1dsp_mmi.c.

◆ MSPEL_FILTER13_CORE

#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 1838 of file vc1dsp_mmi.c.

◆ MSPEL_FILTER13_VER_16B

#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 1884 of file vc1dsp_mmi.c.

◆ MSPEL_FILTER13_HOR_16B

#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 1959 of file vc1dsp_mmi.c.

◆ MSPEL_FILTER13_8B

#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 2007 of file vc1dsp_mmi.c.

◆ VC1_MSPEL_MC

#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 2081 of file vc1dsp_mmi.c.

◆ DECLARE_FUNCTION

#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); \
}

Macro to ease bicubic filter interpolation functions declarations.

Definition at line 2134 of file vc1dsp_mmi.c.

◆ CHROMA_MC_8_MMI

#define CHROMA_MC_8_MMI

Definition at line 2183 of file vc1dsp_mmi.c.

◆ CHROMA_MC_4_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 2217 of file vc1dsp_mmi.c.

Typedef Documentation

◆ vc1_mspel_mc_filter_ver_16bits

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 2062 of file vc1dsp_mmi.c.

◆ vc1_mspel_mc_filter_hor_16bits

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

Definition at line 2065 of file vc1dsp_mmi.c.

◆ vc1_mspel_mc_filter_8bits

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 2067 of file vc1dsp_mmi.c.

Function Documentation

◆ ff_vc1_inv_trans_8x8_dc_mmi()

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

Definition at line 126 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_inv_trans_8x4_dc_mmi()

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

Definition at line 418 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_inv_trans_4x8_dc_mmi()

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

Definition at line 869 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_inv_trans_4x4_dc_mmi()

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

Definition at line 1124 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_inv_trans_4x4_mmi()

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

Definition at line 1174 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_h_overlap_mmi()

void ff_vc1_h_overlap_mmi ( uint8_t *  src,
ptrdiff_t  stride 
)

Definition at line 1378 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_h_s_overlap_mmi()

void ff_vc1_h_s_overlap_mmi ( int16_t *  left,
int16_t *  right,
ptrdiff_t  left_stride,
ptrdiff_t  right_stride,
int  flags 
)

Definition at line 1401 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_v_overlap_mmi()

void ff_vc1_v_overlap_mmi ( uint8_t *  src,
ptrdiff_t  stride 
)

Definition at line 1431 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_v_s_overlap_mmi()

void ff_vc1_v_s_overlap_mmi ( int16_t *  top,
int16_t *  bottom 
)

Definition at line 1454 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ vc1_filter_line()

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 1488 of file vc1dsp_mmi.c.

Referenced by vc1_loop_filter().

◆ 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 1537 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().

◆ ff_vc1_v_loop_filter4_mmi()

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

Definition at line 1554 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_h_loop_filter4_mmi()

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

Definition at line 1559 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_v_loop_filter8_mmi()

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

Definition at line 1564 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_h_loop_filter8_mmi()

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

Definition at line 1569 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_v_loop_filter16_mmi()

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

Definition at line 1574 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_vc1_h_loop_filter16_mmi()

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

Definition at line 1579 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_put_vc1_mspel_mc00_mmi()

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

Definition at line 1584 of file vc1dsp_mmi.c.

◆ ff_put_vc1_mspel_mc00_16_mmi()

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

Definition at line 1589 of file vc1dsp_mmi.c.

◆ ff_avg_vc1_mspel_mc00_mmi()

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

Definition at line 1594 of file vc1dsp_mmi.c.

◆ ff_avg_vc1_mspel_mc00_16_mmi()

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

Definition at line 1599 of file vc1dsp_mmi.c.

◆ vc1_put_ver_16b_shift2_mmi()

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 1657 of file vc1dsp_mmi.c.

◆ ff_put_no_rnd_vc1_chroma_mc8_mmi()

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

Definition at line 2237 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_put_no_rnd_vc1_chroma_mc4_mmi()

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

Definition at line 2293 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_avg_no_rnd_vc1_chroma_mc8_mmi()

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

Definition at line 2347 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

◆ ff_avg_no_rnd_vc1_chroma_mc4_mmi()

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

Definition at line 2406 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().

R3
#define R3
Definition: simple_idct.c:173
R0
#define R0(v, w, x, y, z, i)
Definition: sha.c:57
b
#define b
Definition: input.c:41
SHIFT
#define SHIFT
Definition: median_template.c:41
R1
#define R1
Definition: simple_idct.c:171
D
D(D(float, sse)
Definition: rematrix_init.c:29
S
#define S(s, c, i)
Definition: flacdsp_template.c:46
OP
#define OP(LOAD, STORE)
Definition: hpeldsp_alpha.c:55
rnd
#define rnd()
Definition: checkasm.h:122
R2
#define R2
Definition: simple_idct.c:172
OFF
@ OFF
Definition: vf_guided.c:37
a
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
Definition: undefined.txt:41
ROUND
#define ROUND
Definition: colorchannelmixer_template.c:38
stride
#define stride
Definition: h264pred_template.c:537
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418