Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
239f55bf
Commit
239f55bf
authored
Aug 14, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vp56data: Move all data tables to the .c file
parent
cb214707
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
206 additions
and
196 deletions
+206
-196
vp56.c
libavcodec/vp56.c
+11
-11
vp56data.c
libavcodec/vp56data.c
+186
-0
vp56data.h
libavcodec/vp56data.h
+9
-185
No files found.
libavcodec/vp56.c
View file @
239f55bf
...
...
@@ -34,8 +34,8 @@
void
ff_vp56_init_dequant
(
VP56Context
*
s
,
int
quantizer
)
{
s
->
quantizer
=
quantizer
;
s
->
dequant_dc
=
vp56_dc_dequant
[
quantizer
]
<<
2
;
s
->
dequant_ac
=
vp56_ac_dequant
[
quantizer
]
<<
2
;
s
->
dequant_dc
=
ff_
vp56_dc_dequant
[
quantizer
]
<<
2
;
s
->
dequant_ac
=
ff_
vp56_ac_dequant
[
quantizer
]
<<
2
;
}
static
int
vp56_get_vectors_predictors
(
VP56Context
*
s
,
int
row
,
int
col
,
...
...
@@ -47,14 +47,14 @@ static int vp56_get_vectors_predictors(VP56Context *s, int row, int col,
VP56mv
mvp
;
for
(
pos
=
0
;
pos
<
12
;
pos
++
)
{
mvp
.
x
=
col
+
vp56_candidate_predictor_pos
[
pos
][
0
];
mvp
.
y
=
row
+
vp56_candidate_predictor_pos
[
pos
][
1
];
mvp
.
x
=
col
+
ff_
vp56_candidate_predictor_pos
[
pos
][
0
];
mvp
.
y
=
row
+
ff_
vp56_candidate_predictor_pos
[
pos
][
1
];
if
(
mvp
.
x
<
0
||
mvp
.
x
>=
s
->
mb_width
||
mvp
.
y
<
0
||
mvp
.
y
>=
s
->
mb_height
)
continue
;
offset
=
mvp
.
x
+
s
->
mb_width
*
mvp
.
y
;
if
(
vp56_reference_frame
[
s
->
macroblocks
[
offset
].
type
]
!=
ref_frame
)
if
(
ff_
vp56_reference_frame
[
s
->
macroblocks
[
offset
].
type
]
!=
ref_frame
)
continue
;
if
((
s
->
macroblocks
[
offset
].
mv
.
x
==
vect
[
0
].
x
&&
s
->
macroblocks
[
offset
].
mv
.
y
==
vect
[
0
].
y
)
||
...
...
@@ -86,7 +86,7 @@ static void vp56_parse_mb_type_models(VP56Context *s)
if
(
vp56_rac_get_prob
(
c
,
174
))
{
int
idx
=
vp56_rac_gets
(
c
,
4
);
memcpy
(
model
->
mb_types_stats
[
ctx
],
vp56_pre_def_mb_type_stats
[
idx
][
ctx
],
ff_
vp56_pre_def_mb_type_stats
[
idx
][
ctx
],
sizeof
(
model
->
mb_types_stats
[
ctx
]));
}
if
(
vp56_rac_get_prob
(
c
,
254
))
{
...
...
@@ -95,8 +95,8 @@ static void vp56_parse_mb_type_models(VP56Context *s)
if
(
vp56_rac_get_prob
(
c
,
205
))
{
int
delta
,
sign
=
vp56_rac_get
(
c
);
delta
=
vp56_rac_get_tree
(
c
,
vp56_pmbtm_tree
,
vp56_mb_type_model_model
);
delta
=
vp56_rac_get_tree
(
c
,
ff_
vp56_pmbtm_tree
,
ff_
vp56_mb_type_model_model
);
if
(
!
delta
)
delta
=
4
*
vp56_rac_gets
(
c
,
7
);
model
->
mb_types_stats
[
ctx
][
type
][
i
]
+=
(
delta
^
-
sign
)
+
sign
;
...
...
@@ -156,7 +156,7 @@ static VP56mb vp56_parse_mb_type(VP56Context *s,
if
(
vp56_rac_get_prob
(
c
,
mb_type_model
[
0
]))
return
prev_type
;
else
return
vp56_rac_get_tree
(
c
,
vp56_pmbt_tree
,
mb_type_model
);
return
vp56_rac_get_tree
(
c
,
ff_
vp56_pmbt_tree
,
mb_type_model
);
}
static
void
vp56_decode_4mv
(
VP56Context
*
s
,
int
row
,
int
col
)
...
...
@@ -305,7 +305,7 @@ static void vp56_add_predictors_dc(VP56Context *s, VP56Frame ref_frame)
static
void
vp56_deblock_filter
(
VP56Context
*
s
,
uint8_t
*
yuv
,
int
stride
,
int
dx
,
int
dy
)
{
int
t
=
vp56_filter_threshold
[
s
->
quantizer
];
int
t
=
ff_
vp56_filter_threshold
[
s
->
quantizer
];
if
(
dx
)
s
->
vp56dsp
.
edge_filter_hor
(
yuv
+
10
-
dx
,
stride
,
t
);
if
(
dy
)
s
->
vp56dsp
.
edge_filter_ver
(
yuv
+
stride
*
(
10
-
dy
),
stride
,
t
);
}
...
...
@@ -391,7 +391,7 @@ static void vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha)
mb_type
=
VP56_MB_INTRA
;
else
mb_type
=
vp56_decode_mv
(
s
,
row
,
col
);
ref_frame
=
vp56_reference_frame
[
mb_type
];
ref_frame
=
ff_
vp56_reference_frame
[
mb_type
];
s
->
parse_coeff
(
s
);
...
...
libavcodec/vp56data.c
View file @
239f55bf
...
...
@@ -66,3 +66,189 @@ const VP56Tree ff_vp56_pc_tree[] = {
const
uint8_t
ff_vp56_coeff_bias
[]
=
{
0
,
1
,
2
,
3
,
4
,
5
,
7
,
11
,
19
,
35
,
67
};
const
uint8_t
ff_vp56_coeff_bit_length
[]
=
{
0
,
1
,
2
,
3
,
4
,
10
};
const
VP56Frame
ff_vp56_reference_frame
[]
=
{
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_NOVEC_PF */
VP56_FRAME_CURRENT
,
/* VP56_MB_INTRA */
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_DELTA_PF */
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_V1_PF */
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_V2_PF */
VP56_FRAME_GOLDEN
,
/* VP56_MB_INTER_NOVEC_GF */
VP56_FRAME_GOLDEN
,
/* VP56_MB_INTER_DELTA_GF */
VP56_FRAME_PREVIOUS
,
/* VP56_MB_INTER_4V */
VP56_FRAME_GOLDEN
,
/* VP56_MB_INTER_V1_GF */
VP56_FRAME_GOLDEN
,
/* VP56_MB_INTER_V2_GF */
};
const
uint8_t
ff_vp56_ac_dequant
[
64
]
=
{
94
,
92
,
90
,
88
,
86
,
82
,
78
,
74
,
70
,
66
,
62
,
58
,
54
,
53
,
52
,
51
,
50
,
49
,
48
,
47
,
46
,
45
,
44
,
43
,
42
,
40
,
39
,
37
,
36
,
35
,
34
,
33
,
32
,
31
,
30
,
29
,
28
,
27
,
26
,
25
,
24
,
23
,
22
,
21
,
20
,
19
,
18
,
17
,
16
,
15
,
14
,
13
,
12
,
11
,
10
,
9
,
8
,
7
,
6
,
5
,
4
,
3
,
2
,
1
,
};
const
uint8_t
ff_vp56_dc_dequant
[
64
]
=
{
47
,
47
,
47
,
47
,
45
,
43
,
43
,
43
,
43
,
43
,
42
,
41
,
41
,
40
,
40
,
40
,
40
,
35
,
35
,
35
,
35
,
33
,
33
,
33
,
33
,
32
,
32
,
32
,
27
,
27
,
26
,
26
,
25
,
25
,
24
,
24
,
23
,
23
,
19
,
19
,
19
,
19
,
18
,
18
,
17
,
16
,
16
,
16
,
16
,
16
,
15
,
11
,
11
,
11
,
10
,
10
,
9
,
8
,
7
,
5
,
3
,
3
,
2
,
2
,
};
const
uint8_t
ff_vp56_pre_def_mb_type_stats
[
16
][
3
][
10
][
2
]
=
{
{
{
{
9
,
15
},
{
32
,
25
},
{
7
,
19
},
{
9
,
21
},
{
1
,
12
},
{
14
,
12
},
{
3
,
18
},
{
14
,
23
},
{
3
,
10
},
{
0
,
4
},
},
{
{
41
,
22
},
{
1
,
0
},
{
1
,
31
},
{
0
,
0
},
{
0
,
0
},
{
0
,
1
},
{
1
,
7
},
{
0
,
1
},
{
98
,
25
},
{
4
,
10
},
},
{
{
2
,
3
},
{
2
,
3
},
{
0
,
2
},
{
0
,
2
},
{
0
,
0
},
{
11
,
4
},
{
1
,
4
},
{
0
,
2
},
{
3
,
2
},
{
0
,
4
},
},
},
{
{
{
48
,
39
},
{
1
,
2
},
{
11
,
27
},
{
29
,
44
},
{
7
,
27
},
{
1
,
4
},
{
0
,
3
},
{
1
,
6
},
{
1
,
2
},
{
0
,
0
},
},
{
{
123
,
37
},
{
6
,
4
},
{
1
,
27
},
{
0
,
0
},
{
0
,
0
},
{
5
,
8
},
{
1
,
7
},
{
0
,
1
},
{
12
,
10
},
{
0
,
2
},
},
{
{
49
,
46
},
{
3
,
4
},
{
7
,
31
},
{
42
,
41
},
{
0
,
0
},
{
2
,
6
},
{
1
,
7
},
{
1
,
4
},
{
2
,
4
},
{
0
,
1
},
},
},
{
{
{
21
,
32
},
{
1
,
2
},
{
4
,
10
},
{
32
,
43
},
{
6
,
23
},
{
2
,
3
},
{
1
,
19
},
{
1
,
6
},
{
12
,
21
},
{
0
,
7
},
},
{
{
26
,
14
},
{
14
,
12
},
{
0
,
24
},
{
0
,
0
},
{
0
,
0
},
{
55
,
17
},
{
1
,
9
},
{
0
,
36
},
{
5
,
7
},
{
1
,
3
},
},
{
{
26
,
25
},
{
1
,
1
},
{
2
,
10
},
{
67
,
39
},
{
0
,
0
},
{
1
,
1
},
{
0
,
14
},
{
0
,
2
},
{
31
,
26
},
{
1
,
6
},
},
},
{
{
{
69
,
83
},
{
0
,
0
},
{
0
,
2
},
{
10
,
29
},
{
3
,
12
},
{
0
,
1
},
{
0
,
3
},
{
0
,
3
},
{
2
,
2
},
{
0
,
0
},
},
{
{
209
,
5
},
{
0
,
0
},
{
0
,
27
},
{
0
,
0
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
0
},
},
{
{
103
,
46
},
{
1
,
2
},
{
2
,
10
},
{
33
,
42
},
{
0
,
0
},
{
1
,
4
},
{
0
,
3
},
{
0
,
1
},
{
1
,
3
},
{
0
,
0
},
},
},
{
{
{
11
,
20
},
{
1
,
4
},
{
18
,
36
},
{
43
,
48
},
{
13
,
35
},
{
0
,
2
},
{
0
,
5
},
{
3
,
12
},
{
1
,
2
},
{
0
,
0
},
},
{
{
2
,
5
},
{
4
,
5
},
{
0
,
121
},
{
0
,
0
},
{
0
,
0
},
{
0
,
3
},
{
2
,
4
},
{
1
,
4
},
{
2
,
2
},
{
0
,
1
},
},
{
{
14
,
31
},
{
9
,
13
},
{
14
,
54
},
{
22
,
29
},
{
0
,
0
},
{
2
,
6
},
{
4
,
18
},
{
6
,
13
},
{
1
,
5
},
{
0
,
1
},
},
},
{
{
{
70
,
44
},
{
0
,
1
},
{
2
,
10
},
{
37
,
46
},
{
8
,
26
},
{
0
,
2
},
{
0
,
2
},
{
0
,
2
},
{
0
,
1
},
{
0
,
0
},
},
{
{
175
,
5
},
{
0
,
1
},
{
0
,
48
},
{
0
,
0
},
{
0
,
0
},
{
0
,
2
},
{
0
,
1
},
{
0
,
2
},
{
0
,
1
},
{
0
,
0
},
},
{
{
85
,
39
},
{
0
,
0
},
{
1
,
9
},
{
69
,
40
},
{
0
,
0
},
{
0
,
1
},
{
0
,
3
},
{
0
,
1
},
{
2
,
3
},
{
0
,
0
},
},
},
{
{
{
8
,
15
},
{
0
,
1
},
{
8
,
21
},
{
74
,
53
},
{
22
,
42
},
{
0
,
1
},
{
0
,
2
},
{
0
,
3
},
{
1
,
2
},
{
0
,
0
},
},
{
{
83
,
5
},
{
2
,
3
},
{
0
,
102
},
{
0
,
0
},
{
0
,
0
},
{
1
,
3
},
{
0
,
2
},
{
0
,
1
},
{
0
,
0
},
{
0
,
0
},
},
{
{
31
,
28
},
{
0
,
0
},
{
3
,
14
},
{
130
,
34
},
{
0
,
0
},
{
0
,
1
},
{
0
,
3
},
{
0
,
1
},
{
3
,
3
},
{
0
,
1
},
},
},
{
{
{
141
,
42
},
{
0
,
0
},
{
1
,
4
},
{
11
,
24
},
{
1
,
11
},
{
0
,
1
},
{
0
,
1
},
{
0
,
2
},
{
0
,
0
},
{
0
,
0
},
},
{
{
233
,
6
},
{
0
,
0
},
{
0
,
8
},
{
0
,
0
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
1
},
{
0
,
0
},
},
{
{
171
,
25
},
{
0
,
0
},
{
1
,
5
},
{
25
,
21
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
},
},
{
{
{
8
,
19
},
{
4
,
10
},
{
24
,
45
},
{
21
,
37
},
{
9
,
29
},
{
0
,
3
},
{
1
,
7
},
{
11
,
25
},
{
0
,
2
},
{
0
,
1
},
},
{
{
34
,
16
},
{
112
,
21
},
{
1
,
28
},
{
0
,
0
},
{
0
,
0
},
{
6
,
8
},
{
1
,
7
},
{
0
,
3
},
{
2
,
5
},
{
0
,
2
},
},
{
{
17
,
21
},
{
68
,
29
},
{
6
,
15
},
{
13
,
22
},
{
0
,
0
},
{
6
,
12
},
{
3
,
14
},
{
4
,
10
},
{
1
,
7
},
{
0
,
3
},
},
},
{
{
{
46
,
42
},
{
0
,
1
},
{
2
,
10
},
{
54
,
51
},
{
10
,
30
},
{
0
,
2
},
{
0
,
2
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
},
{
{
159
,
35
},
{
2
,
2
},
{
0
,
25
},
{
0
,
0
},
{
0
,
0
},
{
3
,
6
},
{
0
,
5
},
{
0
,
1
},
{
4
,
4
},
{
0
,
1
},
},
{
{
51
,
39
},
{
0
,
1
},
{
2
,
12
},
{
91
,
44
},
{
0
,
0
},
{
0
,
2
},
{
0
,
3
},
{
0
,
1
},
{
2
,
3
},
{
0
,
1
},
},
},
{
{
{
28
,
32
},
{
0
,
0
},
{
3
,
10
},
{
75
,
51
},
{
14
,
33
},
{
0
,
1
},
{
0
,
2
},
{
0
,
1
},
{
1
,
2
},
{
0
,
0
},
},
{
{
75
,
39
},
{
5
,
7
},
{
2
,
48
},
{
0
,
0
},
{
0
,
0
},
{
3
,
11
},
{
2
,
16
},
{
1
,
4
},
{
7
,
10
},
{
0
,
2
},
},
{
{
81
,
25
},
{
0
,
0
},
{
2
,
9
},
{
106
,
26
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
1
,
1
},
{
0
,
0
},
},
},
{
{
{
100
,
46
},
{
0
,
1
},
{
3
,
9
},
{
21
,
37
},
{
5
,
20
},
{
0
,
1
},
{
0
,
2
},
{
1
,
2
},
{
0
,
1
},
{
0
,
0
},
},
{
{
212
,
21
},
{
0
,
1
},
{
0
,
9
},
{
0
,
0
},
{
0
,
0
},
{
1
,
2
},
{
0
,
2
},
{
0
,
0
},
{
2
,
2
},
{
0
,
0
},
},
{
{
140
,
37
},
{
0
,
1
},
{
1
,
8
},
{
24
,
33
},
{
0
,
0
},
{
1
,
2
},
{
0
,
2
},
{
0
,
1
},
{
1
,
2
},
{
0
,
0
},
},
},
{
{
{
27
,
29
},
{
0
,
1
},
{
9
,
25
},
{
53
,
51
},
{
12
,
34
},
{
0
,
1
},
{
0
,
3
},
{
1
,
5
},
{
0
,
2
},
{
0
,
0
},
},
{
{
4
,
2
},
{
0
,
0
},
{
0
,
172
},
{
0
,
0
},
{
0
,
0
},
{
0
,
1
},
{
0
,
2
},
{
0
,
0
},
{
2
,
0
},
{
0
,
0
},
},
{
{
14
,
23
},
{
1
,
3
},
{
11
,
53
},
{
90
,
31
},
{
0
,
0
},
{
0
,
3
},
{
1
,
5
},
{
2
,
6
},
{
1
,
2
},
{
0
,
0
},
},
},
{
{
{
80
,
38
},
{
0
,
0
},
{
1
,
4
},
{
69
,
33
},
{
5
,
16
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
1
},
{
0
,
0
},
},
{
{
187
,
22
},
{
1
,
1
},
{
0
,
17
},
{
0
,
0
},
{
0
,
0
},
{
3
,
6
},
{
0
,
4
},
{
0
,
1
},
{
4
,
4
},
{
0
,
1
},
},
{
{
123
,
29
},
{
0
,
0
},
{
1
,
7
},
{
57
,
30
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
},
},
{
{
{
16
,
20
},
{
0
,
0
},
{
2
,
8
},
{
104
,
49
},
{
15
,
33
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
1
,
1
},
{
0
,
0
},
},
{
{
133
,
6
},
{
1
,
2
},
{
1
,
70
},
{
0
,
0
},
{
0
,
0
},
{
0
,
2
},
{
0
,
4
},
{
0
,
3
},
{
1
,
1
},
{
0
,
0
},
},
{
{
13
,
14
},
{
0
,
0
},
{
4
,
20
},
{
175
,
20
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
1
,
1
},
{
0
,
0
},
},
},
{
{
{
194
,
16
},
{
0
,
0
},
{
1
,
1
},
{
1
,
9
},
{
1
,
3
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
0
},
},
{
{
251
,
1
},
{
0
,
0
},
{
0
,
2
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
},
{
{
202
,
23
},
{
0
,
0
},
{
1
,
3
},
{
2
,
9
},
{
0
,
0
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
0
},
{
0
,
0
},
},
},
};
const
uint8_t
ff_vp56_filter_threshold
[]
=
{
14
,
14
,
13
,
13
,
12
,
12
,
10
,
10
,
10
,
10
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
8
,
7
,
7
,
7
,
7
,
7
,
7
,
6
,
6
,
6
,
6
,
6
,
6
,
5
,
5
,
5
,
5
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
3
,
3
,
3
,
3
,
2
,
};
const
uint8_t
ff_vp56_mb_type_model_model
[]
=
{
171
,
83
,
199
,
140
,
125
,
104
,
};
const
VP56Tree
ff_vp56_pmbtm_tree
[]
=
{
{
4
,
0
},
{
2
,
1
},
{
-
8
},
{
-
4
},
{
8
,
2
},
{
6
,
3
},
{
4
,
4
},
{
2
,
5
},
{
-
24
},
{
-
20
},
{
-
16
},
{
-
12
},
{
-
0
},
};
const
VP56Tree
ff_vp56_pmbt_tree
[]
=
{
{
8
,
1
},
{
4
,
2
},
{
2
,
4
},
{
-
VP56_MB_INTER_NOVEC_PF
},
{
-
VP56_MB_INTER_DELTA_PF
},
{
2
,
5
},
{
-
VP56_MB_INTER_V1_PF
},
{
-
VP56_MB_INTER_V2_PF
},
{
4
,
3
},
{
2
,
6
},
{
-
VP56_MB_INTRA
},
{
-
VP56_MB_INTER_4V
},
{
4
,
7
},
{
2
,
8
},
{
-
VP56_MB_INTER_NOVEC_GF
},
{
-
VP56_MB_INTER_DELTA_GF
},
{
2
,
9
},
{
-
VP56_MB_INTER_V1_GF
},
{
-
VP56_MB_INTER_V2_GF
},
};
/* relative pos of surrounding blocks, from closest to farthest */
const
int8_t
ff_vp56_candidate_predictor_pos
[
12
][
2
]
=
{
{
0
,
-
1
},
{
-
1
,
0
},
{
-
1
,
-
1
},
{
1
,
-
1
},
{
0
,
-
2
},
{
-
2
,
0
},
{
-
2
,
-
1
},
{
-
1
,
-
2
},
{
1
,
-
2
},
{
2
,
-
1
},
{
-
2
,
-
2
},
{
2
,
-
2
},
};
libavcodec/vp56data.h
View file @
239f55bf
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment