FFmpeg
vp8dsp_mips.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Manojkumar Bhosale (Manojkumar.Bhosale@imgtec.com)
3  * Copyright (c) 2016 Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVCODEC_MIPS_VP8DSP_MIPS_H
23 #define AVCODEC_MIPS_VP8DSP_MIPS_H
24 
25 #include "libavutil/mem.h"
26 #include "libavcodec/vp8dsp.h"
27 #include "libavcodec/mathops.h"
28 #include "constants.h"
29 
30 void ff_put_vp8_pixels4_msa(uint8_t *dst, ptrdiff_t dststride,
31  const uint8_t *src, ptrdiff_t srcstride,
32  int h, int x, int y);
33 void ff_put_vp8_pixels8_msa(uint8_t *dst, ptrdiff_t dststride,
34  const uint8_t *src, ptrdiff_t srcstride,
35  int h, int x, int y);
36 void ff_put_vp8_pixels16_msa(uint8_t *dst, ptrdiff_t dststride,
37  const uint8_t *src, ptrdiff_t srcstride,
38  int h, int x, int y);
39 
40 void ff_put_vp8_epel16_h4_msa(uint8_t *dst, ptrdiff_t dststride,
41  const uint8_t *src, ptrdiff_t srcstride,
42  int h, int mx, int my);
43 void ff_put_vp8_epel16_h6_msa(uint8_t *dst, ptrdiff_t dststride,
44  const uint8_t *src, ptrdiff_t srcstride,
45  int h, int mx, int my);
46 void ff_put_vp8_epel16_v4_msa(uint8_t *dst, ptrdiff_t dststride,
47  const uint8_t *src, ptrdiff_t srcstride,
48  int h, int mx, int my);
49 void ff_put_vp8_epel16_v6_msa(uint8_t *dst, ptrdiff_t dststride,
50  const uint8_t *src, ptrdiff_t srcstride,
51  int h, int mx, int my);
52 void ff_put_vp8_epel16_h4v4_msa(uint8_t *dst, ptrdiff_t dststride,
53  const uint8_t *src, ptrdiff_t srcstride,
54  int h, int mx, int my);
55 void ff_put_vp8_epel16_h6v4_msa(uint8_t *dst, ptrdiff_t dststride,
56  const uint8_t *src, ptrdiff_t srcstride,
57  int h, int mx, int my);
58 void ff_put_vp8_epel16_h4v6_msa(uint8_t *dst, ptrdiff_t dststride,
59  const uint8_t *src, ptrdiff_t srcstride,
60  int h, int mx, int my);
61 void ff_put_vp8_epel16_h6v6_msa(uint8_t *dst, ptrdiff_t dststride,
62  const uint8_t *src, ptrdiff_t srcstride,
63  int h, int mx, int my);
64 
65 void ff_put_vp8_epel8_h4_msa(uint8_t *dst, ptrdiff_t dststride,
66  const uint8_t *src, ptrdiff_t srcstride,
67  int h, int mx, int my);
68 void ff_put_vp8_epel8_h6_msa(uint8_t *dst, ptrdiff_t dststride,
69  const uint8_t *src, ptrdiff_t srcstride,
70  int h, int mx, int my);
71 void ff_put_vp8_epel8_v4_msa(uint8_t *dst, ptrdiff_t dststride,
72  const uint8_t *src, ptrdiff_t srcstride,
73  int h, int mx, int my);
74 void ff_put_vp8_epel8_v6_msa(uint8_t *dst, ptrdiff_t dststride,
75  const uint8_t *src, ptrdiff_t srcstride,
76  int h, int mx, int my);
77 void ff_put_vp8_epel8_h4v4_msa(uint8_t *dst, ptrdiff_t dststride,
78  const uint8_t *src, ptrdiff_t srcstride,
79  int h, int mx, int my);
80 void ff_put_vp8_epel8_h6v4_msa(uint8_t *dst, ptrdiff_t dststride,
81  const uint8_t *src, ptrdiff_t srcstride,
82  int h, int mx, int my);
83 void ff_put_vp8_epel8_h4v6_msa(uint8_t *dst, ptrdiff_t dststride,
84  const uint8_t *src, ptrdiff_t srcstride,
85  int h, int mx, int my);
86 void ff_put_vp8_epel8_h6v6_msa(uint8_t *dst, ptrdiff_t dststride,
87  const uint8_t *src, ptrdiff_t srcstride,
88  int h, int mx, int my);
89 
90 void ff_put_vp8_epel4_h4_msa(uint8_t *dst, ptrdiff_t dststride,
91  const uint8_t *src, ptrdiff_t srcstride,
92  int h, int mx, int my);
93 void ff_put_vp8_epel4_h6_msa(uint8_t *dst, ptrdiff_t dststride,
94  const uint8_t *src, ptrdiff_t srcstride,
95  int h, int mx, int my);
96 void ff_put_vp8_epel4_v4_msa(uint8_t *dst, ptrdiff_t dststride,
97  const uint8_t *src, ptrdiff_t srcstride,
98  int h, int mx, int my);
99 void ff_put_vp8_epel4_v6_msa(uint8_t *dst, ptrdiff_t dststride,
100  const uint8_t *src, ptrdiff_t srcstride,
101  int h, int mx, int my);
102 void ff_put_vp8_epel4_h4v4_msa(uint8_t *dst, ptrdiff_t dststride,
103  const uint8_t *src, ptrdiff_t srcstride,
104  int h, int mx, int my);
105 void ff_put_vp8_epel4_h6v4_msa(uint8_t *dst, ptrdiff_t dststride,
106  const uint8_t *src, ptrdiff_t srcstride,
107  int h, int mx, int my);
108 void ff_put_vp8_epel4_h4v6_msa(uint8_t *dst, ptrdiff_t dststride,
109  const uint8_t *src, ptrdiff_t srcstride,
110  int h, int mx, int my);
111 void ff_put_vp8_epel4_h6v6_msa(uint8_t *dst, ptrdiff_t dststride,
112  const uint8_t *src, ptrdiff_t srcstride,
113  int h, int mx, int my);
114 
115 void ff_put_vp8_bilinear16_h_msa(uint8_t *dst, ptrdiff_t dststride,
116  const uint8_t *src, ptrdiff_t srcstride,
117  int h, int mx, int my);
118 void ff_put_vp8_bilinear16_v_msa(uint8_t *dst, ptrdiff_t dststride,
119  const uint8_t *src, ptrdiff_t srcstride,
120  int h, int mx, int my);
121 void ff_put_vp8_bilinear16_hv_msa(uint8_t *dst, ptrdiff_t dststride,
122  const uint8_t *src, ptrdiff_t srcstride,
123  int h, int mx, int my);
124 
125 void ff_put_vp8_bilinear8_h_msa(uint8_t *dst, ptrdiff_t dststride,
126  const uint8_t *src, ptrdiff_t srcstride,
127  int h, int mx, int my);
128 void ff_put_vp8_bilinear8_v_msa(uint8_t *dst, ptrdiff_t dststride,
129  const uint8_t *src, ptrdiff_t srcstride,
130  int h, int mx, int my);
131 void ff_put_vp8_bilinear8_hv_msa(uint8_t *dst, ptrdiff_t dststride,
132  const uint8_t *src, ptrdiff_t srcstride,
133  int h, int mx, int my);
134 
135 void ff_put_vp8_bilinear4_h_msa(uint8_t *dst, ptrdiff_t dststride,
136  const uint8_t *src, ptrdiff_t srcstride,
137  int h, int mx, int my);
138 void ff_put_vp8_bilinear4_v_msa(uint8_t *dst, ptrdiff_t dststride,
139  const uint8_t *src, ptrdiff_t srcstride,
140  int h, int mx, int my);
141 void ff_put_vp8_bilinear4_hv_msa(uint8_t *dst, ptrdiff_t dststride,
142  const uint8_t *src, ptrdiff_t srcstride,
143  int h, int mx, int my);
144 
145 /* loop filter */
146 void ff_vp8_h_loop_filter16_inner_msa(uint8_t *dst, ptrdiff_t stride,
147  int32_t e, int32_t i, int32_t h);
148 void ff_vp8_v_loop_filter16_inner_msa(uint8_t *dst, ptrdiff_t stride,
149  int32_t e, int32_t i, int32_t h);
150 void ff_vp8_h_loop_filter8uv_inner_msa(uint8_t *dst_u, uint8_t *dst_v,
151  ptrdiff_t stride,
152  int flim_e, int flim_i, int hev_thresh);
153 void ff_vp8_v_loop_filter8uv_inner_msa(uint8_t *dst_u, uint8_t *dst_v,
154  ptrdiff_t stride,
155  int flim_e, int flim_i, int hev_thresh);
156 void ff_vp8_h_loop_filter16_msa(uint8_t *dst, ptrdiff_t stride,
157  int flim_e, int flim_i, int hev_thresh);
158 void ff_vp8_v_loop_filter16_msa(uint8_t *dst, ptrdiff_t stride,
159  int flim_e, int flim_i, int hev_thresh);
160 void ff_vp8_h_loop_filter8uv_msa(uint8_t *dst_u, uint8_t *dst_v,
161  ptrdiff_t stride,
162  int flim_e, int flim_i, int hev_thresh);
163 void ff_vp8_v_loop_filter8uv_msa(uint8_t *dst_u, uint8_t *dst_v,
164  ptrdiff_t stride,
165  int flim_e, int flim_i, int hev_thresh);
166 void ff_vp8_h_loop_filter_simple_msa(uint8_t *dst, ptrdiff_t stride, int flim);
167 void ff_vp8_v_loop_filter_simple_msa(uint8_t *dst, ptrdiff_t stride, int flim);
168 
169 /* Idct functions */
170 void ff_vp8_luma_dc_wht_msa(int16_t block[4][4][16], int16_t dc[16]);
171 void ff_vp8_idct_add_msa(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
172 void ff_vp8_idct_dc_add_msa(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
173 void ff_vp8_idct_dc_add4uv_msa(uint8_t *dst, int16_t block[4][16],
174  ptrdiff_t stride);
175 void ff_vp8_idct_dc_add4y_msa(uint8_t *dst, int16_t block[4][16],
176  ptrdiff_t stride);
177 
178 void ff_vp8_luma_dc_wht_mmi(int16_t block[4][4][16], int16_t dc[16]);
179 void ff_vp8_luma_dc_wht_dc_mmi(int16_t block[4][4][16], int16_t dc[16]);
180 void ff_vp8_idct_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
181 void ff_vp8_idct_dc_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
182 void ff_vp8_idct_dc_add4y_mmi(uint8_t *dst, int16_t block[4][16],
183  ptrdiff_t stride);
184 void ff_vp8_idct_dc_add4uv_mmi(uint8_t *dst, int16_t block[4][16],
185  ptrdiff_t stride);
186 
187 void ff_put_vp8_pixels4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
188  ptrdiff_t srcstride, int h, int x, int y);
189 void ff_put_vp8_pixels8_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
190  ptrdiff_t srcstride, int h, int x, int y);
191 void ff_put_vp8_pixels16_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
192  ptrdiff_t srcstride, int h, int x, int y);
193 
194 void ff_put_vp8_epel16_h4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
195  ptrdiff_t srcstride, int h, int mx, int my);
196 void ff_put_vp8_epel16_h6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
197  ptrdiff_t srcstride, int h, int mx, int my);
198 void ff_put_vp8_epel16_v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
199  ptrdiff_t srcstride, int h, int mx, int my);
200 void ff_put_vp8_epel16_v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src,
201  ptrdiff_t srcstride, int h, int mx, int my);
202 void ff_put_vp8_epel16_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride,
203  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
204 void ff_put_vp8_epel16_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride,
205  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
206 void ff_put_vp8_epel16_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride,
207  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
208 void ff_put_vp8_epel16_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride,
209  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
210 
211 void ff_put_vp8_epel8_h4_mmi(uint8_t *dst, ptrdiff_t dststride,
212  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
213 void ff_put_vp8_epel8_h6_mmi(uint8_t *dst, ptrdiff_t dststride,
214  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
215 void ff_put_vp8_epel8_v4_mmi(uint8_t *dst, ptrdiff_t dststride,
216  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
217 void ff_put_vp8_epel8_v6_mmi(uint8_t *dst, ptrdiff_t dststride,
218  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
219 void ff_put_vp8_epel8_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride,
220  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
221 void ff_put_vp8_epel8_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride,
222  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
223 void ff_put_vp8_epel8_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride,
224  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
225 void ff_put_vp8_epel8_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride,
226  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
227 
228 void ff_put_vp8_epel4_h4_mmi(uint8_t *dst, ptrdiff_t dststride,
229  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
230 void ff_put_vp8_epel4_h6_mmi(uint8_t *dst, ptrdiff_t dststride,
231  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
232 void ff_put_vp8_epel4_v4_mmi(uint8_t *dst, ptrdiff_t dststride,
233  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
234 void ff_put_vp8_epel4_v6_mmi(uint8_t *dst, ptrdiff_t dststride,
235  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
236 void ff_put_vp8_epel4_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride,
237  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
238 void ff_put_vp8_epel4_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride,
239  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
240 void ff_put_vp8_epel4_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride,
241  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
242 void ff_put_vp8_epel4_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride,
243  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
244 
245 void ff_put_vp8_bilinear16_h_mmi(uint8_t *dst, ptrdiff_t dststride,
246  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
247 void ff_put_vp8_bilinear16_v_mmi(uint8_t *dst, ptrdiff_t dststride,
248  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
249 void ff_put_vp8_bilinear16_hv_mmi(uint8_t *dst, ptrdiff_t dststride,
250  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
251 
252 void ff_put_vp8_bilinear8_h_mmi(uint8_t *dst, ptrdiff_t dststride,
253  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
254 void ff_put_vp8_bilinear8_v_mmi(uint8_t *dst, ptrdiff_t dststride,
255  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
256 void ff_put_vp8_bilinear8_hv_mmi(uint8_t *dst, ptrdiff_t dststride,
257  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
258 
259 void ff_put_vp8_bilinear4_h_mmi(uint8_t *dst, ptrdiff_t dststride,
260  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
261 void ff_put_vp8_bilinear4_v_mmi(uint8_t *dst, ptrdiff_t dststride,
262  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
263 void ff_put_vp8_bilinear4_hv_mmi(uint8_t *dst, ptrdiff_t dststride,
264  const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my);
265 
266 // loop filter applied to edges between macroblocks
267 void ff_vp8_v_loop_filter16_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E,
268  int flim_I, int hev_thresh);
269 void ff_vp8_h_loop_filter16_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E,
270  int flim_I, int hev_thresh);
271 void ff_vp8_v_loop_filter8uv_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride,
272  int flim_E, int flim_I, int hev_thresh);
273 void ff_vp8_h_loop_filter8uv_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride,
274  int flim_E, int flim_I, int hev_thresh);
275 
276 // loop filter applied to inner macroblock edges
277 void ff_vp8_v_loop_filter16_inner_mmi(uint8_t *dst, ptrdiff_t stride,
278  int flim_E, int flim_I, int hev_thresh);
279 void ff_vp8_h_loop_filter16_inner_mmi(uint8_t *dst, ptrdiff_t stride,
280  int flim_E, int flim_I, int hev_thresh);
281 void ff_vp8_v_loop_filter8uv_inner_mmi(uint8_t *dstU, uint8_t *dstV,
282  ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh);
283 void ff_vp8_h_loop_filter8uv_inner_mmi(uint8_t *dstU, uint8_t *dstV,
284  ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh);
285 
286 void ff_vp8_v_loop_filter_simple_mmi(uint8_t *dst, ptrdiff_t stride, int flim);
287 void ff_vp8_h_loop_filter_simple_mmi(uint8_t *dst, ptrdiff_t stride, int flim);
288 
289 #endif // #ifndef AVCODEC_MIPS_VP8DSP_MIPS_H
ff_put_vp8_epel16_h4v4_mmi
void ff_put_vp8_epel16_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_h4v6_mmi
void ff_put_vp8_epel8_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_h4v4_mmi
void ff_put_vp8_epel4_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_h4v6_msa
void ff_put_vp8_epel4_h4v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1338
ff_put_vp8_epel16_h6v6_mmi
void ff_put_vp8_epel16_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_v6_msa
void ff_put_vp8_epel4_v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:332
ff_put_vp8_bilinear16_v_msa
void ff_put_vp8_bilinear16_v_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1881
ff_put_vp8_bilinear4_v_msa
void ff_put_vp8_bilinear4_v_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1785
ff_vp8_idct_add_mmi
void ff_vp8_idct_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
Definition: vp8dsp_mmi.c:1104
ff_vp8_v_loop_filter8uv_msa
void ff_vp8_v_loop_filter8uv_msa(uint8_t *dst_u, uint8_t *dst_v, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:320
ff_vp8_h_loop_filter16_msa
void ff_vp8_h_loop_filter16_msa(uint8_t *dst, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:374
ff_put_vp8_epel16_h4_msa
void ff_put_vp8_epel16_h4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:842
ff_vp8_v_loop_filter8uv_mmi
void ff_vp8_v_loop_filter8uv_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1365
ff_vp8_idct_dc_add4uv_mmi
void ff_vp8_idct_dc_add4uv_mmi(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
Definition: vp8dsp_mmi.c:1340
ff_put_vp8_epel16_v4_mmi
void ff_put_vp8_epel16_v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_bilinear16_v_mmi
void ff_put_vp8_bilinear16_v_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_h6_mmi
void ff_put_vp8_epel8_h6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_h4v6_msa
void ff_put_vp8_epel8_h4v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1402
ff_vp8_luma_dc_wht_msa
void ff_vp8_luma_dc_wht_msa(int16_t block[4][4][16], int16_t dc[16])
Definition: vp8_idct_msa.c:104
ff_put_vp8_epel4_v4_msa
void ff_put_vp8_epel4_v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:891
ff_put_vp8_epel16_v6_mmi
void ff_put_vp8_epel16_v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_h_loop_filter8uv_inner_mmi
void ff_vp8_h_loop_filter8uv_inner_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1417
ff_put_vp8_pixels8_msa
void ff_put_vp8_pixels8_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
Definition: vp8_mc_msa.c:2243
ff_put_vp8_bilinear8_v_mmi
void ff_put_vp8_bilinear8_v_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_bilinear8_v_msa
void ff_put_vp8_bilinear8_v_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1867
ff_put_vp8_pixels16_msa
void ff_put_vp8_pixels16_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
Definition: vp8_mc_msa.c:2313
ff_put_vp8_epel4_h4v4_msa
void ff_put_vp8_epel4_h4v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1043
ff_put_vp8_epel8_h4v4_mmi
void ff_put_vp8_epel8_h4v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
constants.h
ff_vp8_v_loop_filter16_mmi
void ff_vp8_v_loop_filter16_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1350
ff_vp8_idct_dc_add_mmi
void ff_vp8_idct_dc_add_mmi(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
Definition: vp8dsp_mmi.c:1273
ff_put_vp8_bilinear4_h_mmi
void ff_put_vp8_bilinear4_h_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_pixels4_msa
void ff_put_vp8_pixels4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
ff_vp8_idct_add_msa
void ff_vp8_idct_add_msa(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
Definition: vp8_idct_msa.c:48
vp8dsp.h
ff_vp8_luma_dc_wht_dc_mmi
void ff_vp8_luma_dc_wht_dc_mmi(int16_t block[4][4][16], int16_t dc[16])
Definition: vp8dsp_mmi.c:1080
ff_put_vp8_epel4_v6_mmi
void ff_put_vp8_epel4_v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_bilinear4_hv_mmi
void ff_put_vp8_bilinear4_hv_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel16_h6_mmi
void ff_put_vp8_epel16_h6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel16_h4_mmi
void ff_put_vp8_epel16_h4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_bilinear8_h_mmi
void ff_put_vp8_bilinear8_h_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_h_loop_filter16_inner_mmi
void ff_vp8_h_loop_filter16_inner_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1395
ff_put_vp8_bilinear16_hv_msa
void ff_put_vp8_bilinear16_hv_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:2172
ff_put_vp8_epel4_h6v6_mmi
void ff_put_vp8_epel4_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_v_loop_filter_simple_mmi
void ff_vp8_v_loop_filter_simple_mmi(uint8_t *dst, ptrdiff_t stride, int flim)
Definition: vp8dsp_mmi.c:1424
ff_vp8_v_loop_filter_simple_msa
void ff_vp8_v_loop_filter_simple_msa(uint8_t *dst, ptrdiff_t stride, int flim)
Definition: vp8_lpf_msa.c:505
mathops.h
ff_put_vp8_epel4_h6_msa
void ff_put_vp8_epel4_h6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:222
ff_vp8_v_loop_filter8uv_inner_msa
void ff_vp8_v_loop_filter8uv_inner_msa(uint8_t *dst_u, uint8_t *dst_v, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:547
ff_put_vp8_pixels16_mmi
void ff_put_vp8_pixels16_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
ff_put_vp8_epel8_v6_msa
void ff_put_vp8_epel8_v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:379
ff_put_vp8_epel8_h4_msa
void ff_put_vp8_epel8_h4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:807
ff_put_vp8_bilinear8_hv_mmi
void ff_put_vp8_bilinear8_hv_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_h4v4_msa
void ff_put_vp8_epel8_h4v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1102
ff_put_vp8_bilinear16_h_mmi
void ff_put_vp8_bilinear16_h_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_h4_mmi
void ff_put_vp8_epel4_h4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel16_h6_msa
void ff_put_vp8_epel16_h6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:283
ff_vp8_idct_dc_add_msa
void ff_vp8_idct_dc_add_msa(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
Definition: vp8_idct_msa.c:82
ff_vp8_v_loop_filter16_inner_mmi
void ff_vp8_v_loop_filter16_inner_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1380
ff_put_vp8_epel4_h6v4_mmi
void ff_put_vp8_epel4_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_h6v4_mmi
void ff_put_vp8_epel8_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
dc
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2] ... the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so ...,+,-,+,-,+,+,-,+,-,+,... hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32 - hcoeff[1] - hcoeff[2] - ... a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2} an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||......... intra?||||:Block01 :yes no||||:Block02 :....... ..........||||:Block03 ::y DC ::ref index:||||:Block04 ::cb DC ::motion x :||||......... :cr DC ::motion y :||||....... ..........|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------ ------------ ------------|||Y subbands||Cb subbands||Cr subbands||||--- ---||--- ---||--- ---|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||--- ---||--- ---||--- ---||||--- ---||--- ---||--- ---|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||--- ---||--- ---||--- ---||||--- ---||--- ---||--- ---|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||--- ---||--- ---||--- ---||||--- ---||--- ---||--- ---|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------ ------------ ------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction ------------|\ Dequantization ------------------- \||Reference frames|\ IDWT|------- -------|Motion \|||Frame 0||Frame 1||Compensation . OBMC v -------|------- -------|--------------. \------> Frame n output Frame Frame<----------------------------------/|...|------------------- Range Coder:============Binary Range Coder:------------------- The implemented range coder is an adapted version based upon "Range encoding: an algorithm for removing redundancy from a digitised message." by G. N. N. Martin. The symbols encoded by the Snow range coder are bits(0|1). The associated probabilities are not fix but change depending on the symbol mix seen so far. bit seen|new state ---------+----------------------------------------------- 0|256 - state_transition_table[256 - old_state];1|state_transition_table[old_state];state_transition_table={ 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:------------------------- FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1. the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled top and top right vectors is used as motion vector prediction the used motion vector is the sum of the predictor and(mvx_diff, mvy_diff) *mv_scale Intra DC Prediction block[y][x] dc[1]
Definition: snow.txt:400
ff_put_vp8_epel16_h4v6_msa
void ff_put_vp8_epel16_h4v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1477
ff_put_vp8_epel16_h6v6_msa
void ff_put_vp8_epel16_h6v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:665
ff_put_vp8_epel16_h6v4_mmi
void ff_put_vp8_epel16_h6v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_h6v6_msa
void ff_put_vp8_epel4_h6v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:503
ff_put_vp8_bilinear16_h_msa
void ff_put_vp8_bilinear16_h_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1658
ff_put_vp8_bilinear16_hv_mmi
void ff_put_vp8_bilinear16_hv_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_h_loop_filter_simple_mmi
void ff_vp8_h_loop_filter_simple_mmi(uint8_t *dst, ptrdiff_t stride, int flim)
Definition: vp8dsp_mmi.c:1433
ff_vp8_idct_dc_add4y_mmi
void ff_vp8_idct_dc_add4y_mmi(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
Definition: vp8dsp_mmi.c:1331
ff_vp8_luma_dc_wht_mmi
void ff_vp8_luma_dc_wht_mmi(int16_t block[4][4][16], int16_t dc[16])
Definition: vp8dsp_mmi.c:946
ff_put_vp8_bilinear4_hv_msa
void ff_put_vp8_bilinear4_hv_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:2016
ff_put_vp8_epel16_h6v4_msa
void ff_put_vp8_epel16_h6v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1323
ff_put_vp8_bilinear8_hv_msa
void ff_put_vp8_bilinear8_hv_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:2156
i
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:269
ff_put_vp8_epel8_v4_msa
void ff_put_vp8_epel8_v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:938
ff_put_vp8_epel16_h4v6_mmi
void ff_put_vp8_epel16_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_v4_mmi
void ff_put_vp8_epel4_v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
stride
#define stride
Definition: h264pred_template.c:537
ff_put_vp8_epel8_h6v6_mmi
void ff_put_vp8_epel8_h6v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel4_h6v4_msa
void ff_put_vp8_epel4_h6v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1184
ff_vp8_v_loop_filter16_inner_msa
void ff_vp8_v_loop_filter16_inner_msa(uint8_t *dst, ptrdiff_t stride, int32_t e, int32_t i, int32_t h)
Definition: vp8_lpf_msa.c:623
ff_put_vp8_epel8_h6v4_msa
void ff_put_vp8_epel8_h6v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1250
ff_vp8_v_loop_filter8uv_inner_mmi
void ff_vp8_v_loop_filter8uv_inner_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1410
ff_put_vp8_epel16_h4v4_msa
void ff_put_vp8_epel16_h4v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1169
ff_vp8_h_loop_filter_simple_msa
void ff_vp8_h_loop_filter_simple_msa(uint8_t *dst, ptrdiff_t stride, int flim)
Definition: vp8_lpf_msa.c:519
ff_vp8_h_loop_filter16_mmi
void ff_vp8_h_loop_filter16_mmi(uint8_t *dst, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1357
ff_put_vp8_epel16_v6_msa
void ff_put_vp8_epel16_v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:429
ff_put_vp8_pixels8_mmi
void ff_put_vp8_pixels8_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
ff_vp8_idct_dc_add4uv_msa
void ff_vp8_idct_dc_add4uv_msa(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
Definition: vp8_idct_msa.c:152
ff_put_vp8_epel8_h4_mmi
void ff_put_vp8_epel8_h4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_h_loop_filter8uv_inner_msa
void ff_vp8_h_loop_filter8uv_inner_msa(uint8_t *dst_u, uint8_t *dst_v, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:589
ff_put_vp8_epel8_h6_msa
void ff_put_vp8_epel8_h6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:235
mem.h
ff_put_vp8_bilinear8_h_msa
void ff_put_vp8_bilinear8_h_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1644
ff_vp8_h_loop_filter8uv_mmi
void ff_vp8_h_loop_filter8uv_mmi(uint8_t *dstU, uint8_t *dstV, ptrdiff_t stride, int flim_E, int flim_I, int hev_thresh)
Definition: vp8dsp_mmi.c:1372
ff_put_vp8_epel8_v6_mmi
void ff_put_vp8_epel8_v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_epel8_v4_mmi
void ff_put_vp8_epel8_v4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418
ff_vp8_h_loop_filter8uv_msa
void ff_vp8_h_loop_filter8uv_msa(uint8_t *dst_u, uint8_t *dst_v, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:439
ff_put_vp8_epel8_h6v6_msa
void ff_put_vp8_epel8_h6v6_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:578
int32_t
int32_t
Definition: audioconvert.c:56
ff_put_vp8_epel16_v4_msa
void ff_put_vp8_epel16_v4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:984
block
The exact code depends on how similar the blocks are and how related they are to the block
Definition: filter_design.txt:207
ff_vp8_h_loop_filter16_inner_msa
void ff_vp8_h_loop_filter16_inner_msa(uint8_t *dst, ptrdiff_t stride, int32_t e, int32_t i, int32_t h)
Definition: vp8_lpf_msa.c:643
h
h
Definition: vp9dsp_template.c:2038
ff_put_vp8_epel4_h6_mmi
void ff_put_vp8_epel4_h6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_put_vp8_bilinear4_h_msa
void ff_put_vp8_bilinear4_h_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:1544
ff_put_vp8_epel4_h4_msa
void ff_put_vp8_epel4_h4_msa(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
Definition: vp8_mc_msa.c:792
ff_put_vp8_bilinear4_v_mmi
void ff_put_vp8_bilinear4_v_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)
ff_vp8_idct_dc_add4y_msa
void ff_vp8_idct_dc_add4y_msa(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)
Definition: vp8_idct_msa.c:143
ff_put_vp8_pixels4_mmi
void ff_put_vp8_pixels4_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int x, int y)
ff_vp8_v_loop_filter16_msa
void ff_vp8_v_loop_filter16_msa(uint8_t *dst, ptrdiff_t stride, int flim_e, int flim_i, int hev_thresh)
Definition: vp8_lpf_msa.c:297
ff_put_vp8_epel4_h4v6_mmi
void ff_put_vp8_epel4_h4v6_mmi(uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, int h, int mx, int my)