FFmpeg
Loading...
Searching...
No Matches
vc1dsp_mmi.c File Reference

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.
 
#define TRANSFER_DO_PACK(OP)
 
#define TRANSFER_DONT_PACK(OP)
 
#define DO_UNPACK(reg)
 
#define DONT_UNPACK(reg)
 
#define LOAD_ROUNDER_MMI(ROUND)
 Compute the rounder 32-r or 8-r and unpacks it to $f14.
 
#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.
 
#define VC1_SHIFT2(OP, OPNAME)
 Purely vertical or horizontal 1/2 shift interpolation.
 
#define MSPEL_FILTER13_CORE(UNPACK, LOAD, M, A1, A2, A3, A4)
 Core of the 1/4 and 3/4 shift bicubic interpolation.
 
#define MSPEL_FILTER13_VER_16B(NAME, A1, A2, A3, A4)
 Macro to build the vertical 16bits version of vc1_put_shift[13].
 
#define MSPEL_FILTER13_HOR_16B(NAME, A1, A2, A3, A4, OP, OPNAME)
 Macro to build the horizontal 16bits version of vc1_put_shift[13].
 
#define MSPEL_FILTER13_8B(NAME, A1, A2, A3, A4, OP, OPNAME)
 Macro to build the 8bits, any direction, version of vc1_put_shift[13].
 
#define VC1_MSPEL_MC(OP)
 Interpolate fractional pel values by applying proper vertical then horizontal filter.
 
#define DECLARE_FUNCTION(a, b)
 Macro to ease bicubic filter interpolation functions declarations.
 
#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
 
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, ptrdiff_t stride, int pq)
 VC-1 in-loop deblocking filter for one line.
 
static void vc1_loop_filter (uint8_t *src, ptrdiff_t step, ptrdiff_t stride, int len, int pq)
 VC-1 in-loop deblocking filter.
 
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.
 
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"
#define D
Definition avdct.c:35
#define S(s, c, i)

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

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"
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition dsp.h:87

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"
#define OP(gb, pixel, count)

Definition at line 1622 of file vc1dsp_mmi.c.

◆ DO_UNPACK

#define DO_UNPACK ( reg)
Value:
"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"
#define ROUND

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

Definition at line 1634 of file vc1dsp_mmi.c.

Referenced by vc1_put_ver_16b_shift2_mmi().

◆ 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"
#define PTR_ADDU
Definition asmdefs.h:49
#define OFF(field)
Definition aacdec.c:2629
#define R0(v, w, x, y, z, i)
Definition sha.c:57
#define R3
#define R2
#define R1

Definition at line 1640 of file vc1dsp_mmi.c.

Referenced by vc1_put_ver_16b_shift2_mmi().

◆ 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); \
}
#define rnd
Definition checkasm.h:136
int a
#define b
Definition input.c:43
#define stride
#define src
Definition vp8dsp.c:248

Macro to ease bicubic filter interpolation functions declarations.

Definition at line 2136 of file vc1dsp_mmi.c.

◆ CHROMA_MC_8_MMI

#define CHROMA_MC_8_MMI

◆ 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 2219 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

◆ 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 2061 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 2064 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 2066 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,
ptrdiff_t 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,
ptrdiff_t step,
ptrdiff_t 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 2239 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 2295 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 2349 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 2408 of file vc1dsp_mmi.c.

Referenced by ff_vc1dsp_init_mips().