FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
loongarch
hevcdsp_lasx.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2023 Loongson Technology Corporation Limited
3
* Contributed by jinbo <jinbo@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_LOONGARCH_HEVCDSP_LASX_H
23
#define AVCODEC_LOONGARCH_HEVCDSP_LASX_H
24
25
#include "
libavcodec/hevc/dsp.h
"
26
27
#define PEL_UNI_W(PEL, DIR, WIDTH) \
28
void ff_hevc_put_hevc_##PEL##_uni_w_##DIR##WIDTH##_8_lasx(uint8_t *dst, \
29
ptrdiff_t \
30
dst_stride, \
31
const uint8_t *src, \
32
ptrdiff_t \
33
src_stride, \
34
int height, \
35
int denom, \
36
int wx, \
37
int ox, \
38
intptr_t mx, \
39
intptr_t my, \
40
int width)
41
42
PEL_UNI_W
(pel, pixels, 6);
43
PEL_UNI_W
(pel, pixels, 8);
44
PEL_UNI_W
(pel, pixels, 12);
45
PEL_UNI_W
(pel, pixels, 16);
46
PEL_UNI_W
(pel, pixels, 24);
47
PEL_UNI_W
(pel, pixels, 32);
48
PEL_UNI_W
(pel, pixels, 48);
49
PEL_UNI_W
(pel, pixels, 64);
50
51
PEL_UNI_W
(qpel, v, 8);
52
PEL_UNI_W
(qpel, v, 12);
53
PEL_UNI_W
(qpel, v, 16);
54
PEL_UNI_W
(qpel, v, 24);
55
PEL_UNI_W
(qpel, v, 32);
56
PEL_UNI_W
(qpel, v, 48);
57
PEL_UNI_W
(qpel, v, 64);
58
59
PEL_UNI_W
(qpel,
h
, 4);
60
PEL_UNI_W
(qpel,
h
, 6);
61
PEL_UNI_W
(qpel,
h
, 8);
62
PEL_UNI_W
(qpel,
h
, 12);
63
PEL_UNI_W
(qpel,
h
, 16);
64
PEL_UNI_W
(qpel,
h
, 24);
65
PEL_UNI_W
(qpel,
h
, 32);
66
PEL_UNI_W
(qpel,
h
, 48);
67
PEL_UNI_W
(qpel,
h
, 64);
68
69
PEL_UNI_W
(epel, hv, 6);
70
PEL_UNI_W
(epel, hv, 8);
71
PEL_UNI_W
(epel, hv, 12);
72
PEL_UNI_W
(epel, hv, 16);
73
PEL_UNI_W
(epel, hv, 24);
74
PEL_UNI_W
(epel, hv, 32);
75
PEL_UNI_W
(epel, hv, 48);
76
PEL_UNI_W
(epel, hv, 64);
77
78
PEL_UNI_W
(epel, v, 6);
79
PEL_UNI_W
(epel, v, 8);
80
PEL_UNI_W
(epel, v, 12);
81
PEL_UNI_W
(epel, v, 16);
82
PEL_UNI_W
(epel, v, 24);
83
PEL_UNI_W
(epel, v, 32);
84
PEL_UNI_W
(epel, v, 48);
85
PEL_UNI_W
(epel, v, 64);
86
87
PEL_UNI_W
(epel,
h
, 6);
88
PEL_UNI_W
(epel,
h
, 8);
89
PEL_UNI_W
(epel,
h
, 12);
90
PEL_UNI_W
(epel,
h
, 16);
91
PEL_UNI_W
(epel,
h
, 24);
92
PEL_UNI_W
(epel,
h
, 32);
93
PEL_UNI_W
(epel,
h
, 48);
94
PEL_UNI_W
(epel,
h
, 64);
95
96
#undef PEL_UNI_W
97
98
#define UNI_MC(PEL, DIR, WIDTH) \
99
void ff_hevc_put_hevc_uni_##PEL##_##DIR##WIDTH##_8_lasx(uint8_t *dst, \
100
ptrdiff_t dst_stride, \
101
const uint8_t *src, \
102
ptrdiff_t src_stride, \
103
int height, \
104
intptr_t mx, \
105
intptr_t my, \
106
int width)
107
UNI_MC
(qpel,
h
, 12);
108
UNI_MC
(qpel,
h
, 16);
109
UNI_MC
(qpel,
h
, 24);
110
UNI_MC
(qpel,
h
, 32);
111
UNI_MC
(qpel,
h
, 48);
112
UNI_MC
(qpel,
h
, 64);
113
114
#undef UNI_MC
115
116
#define BI_MC(PEL, DIR, WIDTH) \
117
void ff_hevc_put_hevc_bi_##PEL##_##DIR##WIDTH##_8_lasx(uint8_t *dst, \
118
ptrdiff_t dst_stride, \
119
const uint8_t *src, \
120
ptrdiff_t src_stride, \
121
const int16_t *src_16bit, \
122
int height, \
123
intptr_t mx, \
124
intptr_t my, \
125
int width)
126
BI_MC
(epel,
h
, 12);
127
BI_MC
(epel,
h
, 16);
128
BI_MC
(epel,
h
, 32);
129
BI_MC
(epel,
h
, 48);
130
BI_MC
(epel,
h
, 64);
131
132
#undef BI_MC
133
134
void
ff_hevc_idct_32x32_lasx
(int16_t *coeffs,
int
col_limit);
135
136
#endif // #ifndef AVCODEC_LOONGARCH_HEVCDSP_LASX_H
BI_MC
#define BI_MC(PEL, DIR, WIDTH)
Definition:
hevcdsp_lasx.h:116
dsp.h
ff_hevc_idct_32x32_lasx
void ff_hevc_idct_32x32_lasx(int16_t *coeffs, int col_limit)
h
h
Definition:
vp9dsp_template.c:2070
PEL_UNI_W
#define PEL_UNI_W(PEL, DIR, WIDTH)
Definition:
hevcdsp_lasx.h:27
UNI_MC
#define UNI_MC(PEL, DIR, WIDTH)
Definition:
hevcdsp_lasx.h:98
Generated on Thu Mar 13 2025 19:21:51 for FFmpeg by
1.8.17