FFmpeg
qpeldsp_init_mips.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com)
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 #include "qpeldsp_mips.h"
22 
23 #if HAVE_MSA
24 static av_cold void qpeldsp_init_msa(QpelDSPContext *c)
25 {
42 
59 
78  c->put_no_rnd_qpel_pixels_tab[0][11] =
80  c->put_no_rnd_qpel_pixels_tab[0][12] =
82  c->put_no_rnd_qpel_pixels_tab[0][13] =
84  c->put_no_rnd_qpel_pixels_tab[0][14] =
86  c->put_no_rnd_qpel_pixels_tab[0][15] =
88 
101  c->put_no_rnd_qpel_pixels_tab[1][7] =
104  c->put_no_rnd_qpel_pixels_tab[1][9] =
107  c->put_no_rnd_qpel_pixels_tab[1][11] =
109  c->put_no_rnd_qpel_pixels_tab[1][12] =
111  c->put_no_rnd_qpel_pixels_tab[1][13] =
113  c->put_no_rnd_qpel_pixels_tab[1][14] =
115  c->put_no_rnd_qpel_pixels_tab[1][15] =
117 
119  c->avg_qpel_pixels_tab[0][1] =
122  c->avg_qpel_pixels_tab[0][3] =
125  c->avg_qpel_pixels_tab[0][5] =
128  c->avg_qpel_pixels_tab[0][7] =
135  c->avg_qpel_pixels_tab[0][13] =
138  c->avg_qpel_pixels_tab[0][15] =
140 
142  c->avg_qpel_pixels_tab[1][1] =
145  c->avg_qpel_pixels_tab[1][3] =
159 }
160 #endif // #if HAVE_MSA
161 
163 {
164 #if HAVE_MSA
165  qpeldsp_init_msa(c);
166 #endif // #if HAVE_MSA
167 }
void ff_horiz_mc_qpel_avg_dst_aver_src0_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5954
void ff_hv_mc_qpel_aver_v_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6205
qpel_mc_func avg_qpel_pixels_tab[2][16]
Definition: qpeldsp.h:74
void ff_hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6465
void ff_hv_mc_qpel_avg_dst_aver_hv_src01_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6306
void ff_vert_mc_qpel_avg_dst_aver_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6104
void ff_hv_mc_qpel_aver_hv_src01_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6186
qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16]
Definition: qpeldsp.h:75
void ff_hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6259
void ff_hv_mc_qpel_avg_dst_aver_h_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6266
void ff_hv_mc_qpel_aver_hv_src00_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6119
void ff_vert_mc_qpel_no_rnd_aver_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6038
void ff_hv_mc_qpel_no_rnd_aver_v_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6444
void ff_hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6355
void ff_horiz_mc_qpel_aver_src1_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5897
void ff_hv_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6168
void ff_horiz_mc_qpel_avg_dst_aver_src1_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5980
void ff_vert_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6045
void ff_avg_width16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5949
void ff_hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6231
void ff_vert_mc_qpel_no_rnd_aver_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6031
void ff_hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6341
void ff_hv_mc_qpel_no_rnd_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6410
void ff_hv_mc_qpel_no_rnd_aver_hv_src10_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6376
void ff_hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6245
void ff_vert_mc_qpel_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6007
void ff_vert_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6085
void ff_hv_mc_qpel_aver_h_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6156
void ff_copy_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5854
void ff_qpeldsp_init_mips(QpelDSPContext *c)
void ff_hv_mc_qpel_aver_v_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6125
void ff_hv_mc_qpel_aver_h_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6180
void ff_horiz_mc_qpel_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5878
void ff_copy_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5859
#define av_cold
Definition: attributes.h:82
void ff_horiz_mc_qpel_avg_dst_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5974
void ff_hv_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6280
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
void ff_vert_mc_qpel_aver_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5995
void ff_hv_mc_qpel_avg_dst_aver_hv_src00_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6224
void ff_horiz_mc_qpel_no_rnd_aver_src1_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5937
void ff_hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6299
void ff_horiz_mc_qpel_no_rnd_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5918
void ff_vert_mc_qpel_avg_dst_aver_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6078
void ff_horiz_mc_qpel_aver_src1_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5890
void ff_hv_mc_qpel_aver_h_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6174
void ff_vert_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6051
void ff_horiz_mc_qpel_avg_dst_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5968
void ff_hv_mc_qpel_aver_hv_src11_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6218
void ff_vert_mc_qpel_aver_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6025
void ff_hv_mc_qpel_aver_v_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6199
void ff_hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6273
void ff_hv_mc_qpel_no_rnd_aver_h_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6390
void ff_hv_mc_qpel_avg_dst_aver_v_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6238
void ff_hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6437
void ff_horiz_mc_qpel_no_rnd_aver_src0_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5911
void ff_horiz_mc_qpel_avg_dst_aver_src0_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5961
void ff_hv_mc_qpel_no_rnd_aver_hv_src00_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6348
void ff_hv_mc_qpel_aver_hv_src10_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6137
qpel_mc_func put_qpel_pixels_tab[2][16]
Definition: qpeldsp.h:73
void ff_vert_mc_qpel_avg_dst_aver_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6071
void ff_hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6327
void ff_vert_mc_qpel_aver_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6019
void ff_hv_mc_qpel_aver_hv_src01_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6193
void ff_vert_mc_qpel_no_rnd_aver_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6064
void ff_hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6383
void ff_hv_mc_qpel_no_rnd_aver_hv_src11_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6458
void ff_hv_mc_qpel_avg_dst_aver_h_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6292
void ff_horiz_mc_qpel_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5884
void ff_horiz_mc_qpel_avg_dst_aver_src1_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5987
void ff_hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6369
void ff_hv_mc_qpel_no_rnd_aver_v_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6362
void ff_hv_mc_qpel_no_rnd_aver_h_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6397
void ff_hv_mc_qpel_aver_hv_src11_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6211
void ff_hv_mc_qpel_no_rnd_aver_h_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6416
void ff_hv_mc_qpel_aver_hv_src00_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6112
void ff_vert_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6013
void ff_horiz_mc_qpel_aver_src0_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5864
void ff_horiz_mc_qpel_aver_src0_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5871
void ff_vert_mc_qpel_aver_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6001
quarterpel DSP context
Definition: qpeldsp.h:72
void ff_hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6451
void ff_hv_mc_qpel_avg_dst_aver_hv_src11_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6334
void ff_hv_mc_qpel_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6162
void ff_hv_mc_qpel_avg_dst_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6286
void ff_hv_mc_qpel_aver_h_src0_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6150
void ff_avg_width8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5944
void ff_hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6313
void ff_vert_mc_qpel_no_rnd_aver_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6057
void ff_hv_mc_qpel_aver_hv_src10_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6144
void ff_hv_mc_qpel_avg_dst_aver_hv_src10_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6252
void ff_horiz_mc_qpel_no_rnd_aver_src0_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5904
void ff_vert_mc_qpel_avg_dst_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6091
void ff_hv_mc_qpel_avg_dst_aver_v_src1_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6320
void ff_hv_mc_qpel_no_rnd_aver_hv_src01_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6430
void ff_hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6423
void ff_vert_mc_qpel_avg_dst_aver_src1_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6097
void ff_hv_mc_qpel_no_rnd_16x16_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6404
void ff_horiz_mc_qpel_no_rnd_16width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5924
void ff_hv_mc_qpel_aver_v_src0_8x8_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:6131
void ff_horiz_mc_qpel_no_rnd_aver_src1_8width_msa(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
Definition: qpeldsp_msa.c:5930