FFmpeg  4.4
vc1dsp_mips.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
3  *
4  * This file is part of FFmpeg.
5  *
6  * FFmpeg is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * FFmpeg is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with FFmpeg; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #ifndef AVCODEC_MIPS_VC1DSP_MIPS_H
22 #define AVCODEC_MIPS_VC1DSP_MIPS_H
23 
24 #include "libavcodec/vc1dsp.h"
25 
27  ptrdiff_t stride, int rnd);
29  ptrdiff_t stride, int rnd);
31  ptrdiff_t stride, int rnd);
33  ptrdiff_t stride, int rnd);
35  ptrdiff_t stride, int rnd);
37  ptrdiff_t stride, int rnd);
39  ptrdiff_t stride, int rnd);
41  ptrdiff_t stride, int rnd);
43  ptrdiff_t stride, int rnd);
45  ptrdiff_t stride, int rnd);
47  ptrdiff_t stride, int rnd);
49  ptrdiff_t stride, int rnd);
51  ptrdiff_t stride, int rnd);
53  ptrdiff_t stride, int rnd);
55  ptrdiff_t stride, int rnd);
57  ptrdiff_t stride, int rnd);
58 
60  ptrdiff_t stride, int rnd);
62  ptrdiff_t stride, int rnd);
64  ptrdiff_t stride, int rnd);
66  ptrdiff_t stride, int rnd);
68  ptrdiff_t stride, int rnd);
70  ptrdiff_t stride, int rnd);
72  ptrdiff_t stride, int rnd);
74  ptrdiff_t stride, int rnd);
76  ptrdiff_t stride, int rnd);
78  ptrdiff_t stride, int rnd);
80  ptrdiff_t stride, int rnd);
82  ptrdiff_t stride, int rnd);
84  ptrdiff_t stride, int rnd);
86  ptrdiff_t stride, int rnd);
88  ptrdiff_t stride, int rnd);
90  ptrdiff_t stride, int rnd);
91 
92 
94  ptrdiff_t stride, int rnd);
96  ptrdiff_t stride, int rnd);
98  ptrdiff_t stride, int rnd);
100  ptrdiff_t stride, int rnd);
102  ptrdiff_t stride, int rnd);
104  ptrdiff_t stride, int rnd);
106  ptrdiff_t stride, int rnd);
108  ptrdiff_t stride, int rnd);
110  ptrdiff_t stride, int rnd);
112  ptrdiff_t stride, int rnd);
114  ptrdiff_t stride, int rnd);
116  ptrdiff_t stride, int rnd);
118  ptrdiff_t stride, int rnd);
120  ptrdiff_t stride, int rnd);
122  ptrdiff_t stride, int rnd);
124  ptrdiff_t stride, int rnd);
125 
127  ptrdiff_t stride, int rnd);
129  ptrdiff_t stride, int rnd);
131  ptrdiff_t stride, int rnd);
133  ptrdiff_t stride, int rnd);
135  ptrdiff_t stride, int rnd);
137  ptrdiff_t stride, int rnd);
139  ptrdiff_t stride, int rnd);
141  ptrdiff_t stride, int rnd);
143  ptrdiff_t stride, int rnd);
145  ptrdiff_t stride, int rnd);
147  ptrdiff_t stride, int rnd);
149  ptrdiff_t stride, int rnd);
151  ptrdiff_t stride, int rnd);
153  ptrdiff_t stride, int rnd);
155  ptrdiff_t stride, int rnd);
157  ptrdiff_t stride, int rnd);
158 
159 void ff_vc1_inv_trans_8x8_mmi(int16_t block[64]);
160 void ff_vc1_inv_trans_8x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
161 void ff_vc1_inv_trans_4x8_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
162 void ff_vc1_inv_trans_4x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
163 
164 void ff_vc1_inv_trans_4x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
165 void ff_vc1_inv_trans_4x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
166 void ff_vc1_inv_trans_8x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
167 void ff_vc1_inv_trans_8x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
168 
171 void ff_vc1_v_s_overlap_mmi(int16_t *top, int16_t *bottom);
172 void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags);
173 
174 void ff_vc1_v_loop_filter4_mmi(uint8_t *src, int stride, int pq);
175 void ff_vc1_h_loop_filter4_mmi(uint8_t *src, int stride, int pq);
176 void ff_vc1_v_loop_filter8_mmi(uint8_t *src, int stride, int pq);
177 void ff_vc1_h_loop_filter8_mmi(uint8_t *src, int stride, int pq);
178 void ff_vc1_v_loop_filter16_mmi(uint8_t *src, int stride, int pq);
179 void ff_vc1_h_loop_filter16_mmi(uint8_t *src, int stride, int pq);
180 
181 void ff_put_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst /* align 8 */,
182  uint8_t *src /* align 1 */,
183  ptrdiff_t stride, int h, int x, int y);
184 void ff_put_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst /* align 8 */,
185  uint8_t *src /* align 1 */,
186  ptrdiff_t stride, int h, int x, int y);
187 void ff_avg_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst /* align 8 */,
188  uint8_t *src /* align 1 */,
189  ptrdiff_t stride, int h, int x, int y);
190 void ff_avg_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst /* align 8 */,
191  uint8_t *src /* align 1 */,
192  ptrdiff_t stride, int h, int x, int y);
193 
194 void ff_vc1_inv_trans_8x8_msa(int16_t block[64]);
195 void ff_vc1_inv_trans_8x4_msa(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
196 void ff_vc1_inv_trans_4x8_msa(uint8_t *dest, ptrdiff_t linesize, int16_t *block);
197 
198 #define FF_PUT_VC1_MSPEL_MC_MSA(hmode, vmode) \
199 void ff_put_vc1_mspel_mc ## hmode ## vmode ## _msa(uint8_t *dst, \
200  const uint8_t *src, \
201  ptrdiff_t stride, int rnd); \
202 void ff_put_vc1_mspel_mc ## hmode ## vmode ## _16_msa(uint8_t *dst, \
203  const uint8_t *src, \
204  ptrdiff_t stride, int rnd);
205 
209 
213 
217 #endif /* AVCODEC_MIPS_VC1DSP_MIPS_H */
uint8_t
#define flags(name, subs,...)
Definition: cbs_av1.c:561
#define rnd()
Definition: checkasm.h:117
int stride
Definition: mace.c:144
#define src
Definition: vp8dsp.c:255
static int16_t block[64]
Definition: dct.c:116
VC-1 and WMV3 decoder.
void ff_avg_vc1_mspel_mc33_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_v_s_overlap_mmi(int16_t *top, int16_t *bottom)
Definition: vc1dsp_mmi.c:1456
void ff_vc1_h_loop_filter8_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1571
void ff_put_vc1_mspel_mc32_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc11_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_4x8_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
void ff_put_vc1_mspel_mc23_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc21_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc10_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc30_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_4x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_mmi.c:1174
void ff_avg_vc1_mspel_mc12_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc12_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc30_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc21_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
Definition: vc1dsp_mmi.c:2353
void ff_avg_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
Definition: vc1dsp_mmi.c:2411
void ff_avg_vc1_mspel_mc11_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc32_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc01_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc30_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_8x4_msa(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_msa.c:231
void ff_put_vc1_mspel_mc21_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc33_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_v_loop_filter16_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1576
void ff_put_vc1_mspel_mc03_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc03_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc02_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc23_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc10_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc02_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_no_rnd_vc1_chroma_mc8_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
Definition: vc1dsp_mmi.c:2245
void ff_avg_vc1_mspel_mc13_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc32_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc22_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc33_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_v_overlap_mmi(uint8_t *src, int stride)
Definition: vc1dsp_mmi.c:1433
void ff_put_vc1_mspel_mc22_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc31_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_v_loop_filter8_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1566
void ff_avg_vc1_mspel_mc02_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_8x8_mmi(int16_t block[64])
void ff_put_vc1_mspel_mc02_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_8x8_msa(int16_t block[64])
Definition: vc1dsp_msa.c:28
void ff_put_vc1_mspel_mc20_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc32_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_8x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_mmi.c:126
void ff_avg_vc1_mspel_mc03_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc20_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc31_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)
Definition: vc1dsp_mmi.c:1591
void ff_avg_vc1_mspel_mc01_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_h_s_overlap_mmi(int16_t *left, int16_t *right, int left_stride, int right_stride, int flags)
Definition: vc1dsp_mmi.c:1403
void ff_put_vc1_mspel_mc13_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc03_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_4x8_msa(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_msa.c:140
void ff_put_vc1_mspel_mc12_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc20_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc31_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc10_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
#define FF_PUT_VC1_MSPEL_MC_MSA(hmode, vmode)
Definition: vc1dsp_mips.h:198
void ff_vc1_h_overlap_mmi(uint8_t *src, int stride)
Definition: vc1dsp_mmi.c:1380
void ff_avg_vc1_mspel_mc22_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)
Definition: vc1dsp_mmi.c:1596
void ff_vc1_inv_trans_4x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_mmi.c:1126
void ff_avg_vc1_mspel_mc21_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_no_rnd_vc1_chroma_mc4_mmi(uint8_t *dst, uint8_t *src, ptrdiff_t stride, int h, int x, int y)
Definition: vc1dsp_mmi.c:2300
void ff_put_vc1_mspel_mc13_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc11_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)
Definition: vc1dsp_mmi.c:1601
void ff_vc1_inv_trans_4x8_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_mmi.c:870
void ff_put_vc1_mspel_mc31_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc01_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc22_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc20_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc12_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc00_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
Definition: vc1dsp_mmi.c:1586
void ff_avg_vc1_mspel_mc23_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_avg_vc1_mspel_mc11_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_inv_trans_8x4_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
void ff_put_vc1_mspel_mc01_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc23_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_h_loop_filter4_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1561
void ff_put_vc1_mspel_mc10_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc33_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_put_vc1_mspel_mc30_16_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)
void ff_vc1_v_loop_filter4_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1556
void ff_vc1_h_loop_filter16_mmi(uint8_t *src, int stride, int pq)
Definition: vc1dsp_mmi.c:1581
void ff_vc1_inv_trans_8x4_dc_mmi(uint8_t *dest, ptrdiff_t linesize, int16_t *block)
Definition: vc1dsp_mmi.c:419
void ff_avg_vc1_mspel_mc13_mmi(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int rnd)