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
37460727
Commit
37460727
authored
Feb 10, 2012
by
Alex Converse
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dv: Split dvdata.h into dvdata.h and dvquant.h
parent
0ab36879
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
125 deletions
+158
-125
dv.c
libavcodec/dv.c
+1
-0
dvdata.h
libavcodec/dvdata.h
+0
-125
dvquant.h
libavcodec/dvquant.h
+157
-0
No files found.
libavcodec/dv.c
View file @
37460727
...
...
@@ -45,6 +45,7 @@
#include "put_bits.h"
#include "simple_idct.h"
#include "dvdata.h"
#include "dvquant.h"
#include "dv_tablegen.h"
//#undef NDEBUG
...
...
libavcodec/dvdata.h
View file @
37460727
...
...
@@ -65,131 +65,6 @@ typedef struct DVprofile {
const
uint8_t
(
*
audio_shuffle
)[
9
];
/* PCM shuffling table */
}
DVprofile
;
/* unquant tables (not used directly) */
static
const
uint8_t
dv_quant_shifts
[
22
][
4
]
=
{
{
3
,
3
,
4
,
4
},
{
3
,
3
,
4
,
4
},
{
2
,
3
,
3
,
4
},
{
2
,
3
,
3
,
4
},
{
2
,
2
,
3
,
3
},
{
2
,
2
,
3
,
3
},
{
1
,
2
,
2
,
3
},
{
1
,
2
,
2
,
3
},
{
1
,
1
,
2
,
2
},
{
1
,
1
,
2
,
2
},
{
0
,
1
,
1
,
2
},
{
0
,
1
,
1
,
2
},
{
0
,
0
,
1
,
1
},
{
0
,
0
,
1
,
1
},
{
0
,
0
,
0
,
1
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
};
static
const
uint8_t
dv_quant_offset
[
4
]
=
{
6
,
3
,
0
,
1
};
static
const
uint8_t
dv_quant_areas
[
4
]
=
{
6
,
21
,
43
,
64
};
/* quantization quanta by QNO for DV100 */
static
const
uint8_t
dv100_qstep
[
16
]
=
{
1
,
/* QNO = 0 and 1 both have no quantization */
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
16
,
18
,
20
,
22
,
24
,
28
,
52
};
/* DV25/50 DCT coefficient weights and inverse weights */
/* created by dvtables.py */
static
const
int
dv_weight_bits
=
18
;
static
const
int
dv_weight_88
[
64
]
=
{
131072
,
257107
,
257107
,
242189
,
252167
,
242189
,
235923
,
237536
,
237536
,
235923
,
229376
,
231390
,
223754
,
231390
,
229376
,
222935
,
224969
,
217965
,
217965
,
224969
,
222935
,
200636
,
218652
,
211916
,
212325
,
211916
,
218652
,
200636
,
188995
,
196781
,
205965
,
206433
,
206433
,
205965
,
196781
,
188995
,
185364
,
185364
,
200636
,
200704
,
200636
,
185364
,
185364
,
174609
,
180568
,
195068
,
195068
,
180568
,
174609
,
170091
,
175557
,
189591
,
175557
,
170091
,
165371
,
170627
,
170627
,
165371
,
160727
,
153560
,
160727
,
144651
,
144651
,
136258
,
};
static
const
int
dv_weight_248
[
64
]
=
{
131072
,
242189
,
257107
,
237536
,
229376
,
200636
,
242189
,
223754
,
224969
,
196781
,
262144
,
242189
,
229376
,
200636
,
257107
,
237536
,
211916
,
185364
,
235923
,
217965
,
229376
,
211916
,
206433
,
180568
,
242189
,
223754
,
224969
,
196781
,
211916
,
185364
,
235923
,
217965
,
200704
,
175557
,
222935
,
205965
,
200636
,
185364
,
195068
,
170627
,
229376
,
211916
,
206433
,
180568
,
200704
,
175557
,
222935
,
205965
,
175557
,
153560
,
188995
,
174609
,
165371
,
144651
,
200636
,
185364
,
195068
,
170627
,
175557
,
153560
,
188995
,
174609
,
165371
,
144651
,
};
static
const
int
dv_iweight_bits
=
14
;
static
const
int
dv_iweight_88
[
64
]
=
{
32768
,
16710
,
16710
,
17735
,
17015
,
17735
,
18197
,
18079
,
18079
,
18197
,
18725
,
18559
,
19196
,
18559
,
18725
,
19284
,
19108
,
19692
,
19692
,
19108
,
19284
,
21400
,
19645
,
20262
,
20214
,
20262
,
19645
,
21400
,
22733
,
21845
,
20867
,
20815
,
20815
,
20867
,
21845
,
22733
,
23173
,
23173
,
21400
,
21400
,
21400
,
23173
,
23173
,
24600
,
23764
,
22017
,
22017
,
23764
,
24600
,
25267
,
24457
,
22672
,
24457
,
25267
,
25971
,
25191
,
25191
,
25971
,
26715
,
27962
,
26715
,
29642
,
29642
,
31536
,
};
static
const
int
dv_iweight_248
[
64
]
=
{
32768
,
17735
,
16710
,
18079
,
18725
,
21400
,
17735
,
19196
,
19108
,
21845
,
16384
,
17735
,
18725
,
21400
,
16710
,
18079
,
20262
,
23173
,
18197
,
19692
,
18725
,
20262
,
20815
,
23764
,
17735
,
19196
,
19108
,
21845
,
20262
,
23173
,
18197
,
19692
,
21400
,
24457
,
19284
,
20867
,
21400
,
23173
,
22017
,
25191
,
18725
,
20262
,
20815
,
23764
,
21400
,
24457
,
19284
,
20867
,
24457
,
27962
,
22733
,
24600
,
25971
,
29642
,
21400
,
23173
,
22017
,
25191
,
24457
,
27962
,
22733
,
24600
,
25971
,
29642
,
};
/**
* The "inverse" DV100 weights are actually just the spec weights (zig-zagged).
*/
static
const
int
dv_iweight_1080_y
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
18
,
18
,
18
,
18
,
18
,
18
,
19
,
18
,
18
,
19
,
19
,
19
,
19
,
19
,
19
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
45
,
45
,
42
,
42
,
42
,
45
,
45
,
48
,
46
,
43
,
43
,
46
,
48
,
49
,
48
,
44
,
48
,
49
,
101
,
98
,
98
,
101
,
104
,
109
,
104
,
116
,
116
,
123
,
};
static
const
int
dv_iweight_1080_c
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
25
,
25
,
25
,
25
,
26
,
25
,
26
,
25
,
26
,
26
,
26
,
27
,
27
,
26
,
26
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
91
,
91
,
84
,
84
,
84
,
91
,
91
,
96
,
93
,
86
,
86
,
93
,
96
,
197
,
191
,
177
,
191
,
197
,
203
,
197
,
197
,
203
,
209
,
219
,
209
,
232
,
232
,
246
,
};
static
const
int
dv_iweight_720_y
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
18
,
18
,
18
,
18
,
18
,
18
,
19
,
18
,
18
,
19
,
19
,
19
,
19
,
19
,
19
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
68
,
68
,
63
,
63
,
63
,
68
,
68
,
96
,
92
,
86
,
86
,
92
,
96
,
98
,
96
,
88
,
96
,
98
,
202
,
196
,
196
,
202
,
208
,
218
,
208
,
232
,
232
,
246
,
};
static
const
int
dv_iweight_720_c
[
64
]
=
{
128
,
24
,
24
,
26
,
26
,
26
,
36
,
36
,
36
,
36
,
36
,
36
,
38
,
36
,
36
,
38
,
38
,
38
,
38
,
38
,
38
,
84
,
76
,
80
,
80
,
80
,
76
,
84
,
88
,
86
,
82
,
82
,
82
,
82
,
86
,
88
,
182
,
182
,
168
,
168
,
168
,
182
,
182
,
192
,
186
,
192
,
172
,
186
,
192
,
394
,
382
,
354
,
382
,
394
,
406
,
394
,
394
,
406
,
418
,
438
,
418
,
464
,
464
,
492
,
};
static
const
uint8_t
dv_audio_shuffle525
[
10
][
9
]
=
{
{
0
,
30
,
60
,
20
,
50
,
80
,
10
,
40
,
70
},
/* 1st channel */
{
6
,
36
,
66
,
26
,
56
,
86
,
16
,
46
,
76
},
...
...
libavcodec/dvquant.h
0 → 100644
View file @
37460727
/*
* Quant and Weight for DV codec
* Copyright (c) 2002 Fabrice Bellard
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* Constants for DV codec.
*/
#ifndef AVCODEC_DVQUANT_H
#define AVCODEC_DVQUANT_H
#include <stdint.h>
/* unquant tables (not used directly) */
static
const
uint8_t
dv_quant_shifts
[
22
][
4
]
=
{
{
3
,
3
,
4
,
4
},
{
3
,
3
,
4
,
4
},
{
2
,
3
,
3
,
4
},
{
2
,
3
,
3
,
4
},
{
2
,
2
,
3
,
3
},
{
2
,
2
,
3
,
3
},
{
1
,
2
,
2
,
3
},
{
1
,
2
,
2
,
3
},
{
1
,
1
,
2
,
2
},
{
1
,
1
,
2
,
2
},
{
0
,
1
,
1
,
2
},
{
0
,
1
,
1
,
2
},
{
0
,
0
,
1
,
1
},
{
0
,
0
,
1
,
1
},
{
0
,
0
,
0
,
1
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
},
};
static
const
uint8_t
dv_quant_offset
[
4
]
=
{
6
,
3
,
0
,
1
};
static
const
uint8_t
dv_quant_areas
[
4
]
=
{
6
,
21
,
43
,
64
};
/* quantization quanta by QNO for DV100 */
static
const
uint8_t
dv100_qstep
[
16
]
=
{
1
,
/* QNO = 0 and 1 both have no quantization */
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
16
,
18
,
20
,
22
,
24
,
28
,
52
};
/* DV25/50 DCT coefficient weights and inverse weights */
/* created by dvtables.py */
static
const
int
dv_weight_bits
=
18
;
static
const
int
dv_weight_88
[
64
]
=
{
131072
,
257107
,
257107
,
242189
,
252167
,
242189
,
235923
,
237536
,
237536
,
235923
,
229376
,
231390
,
223754
,
231390
,
229376
,
222935
,
224969
,
217965
,
217965
,
224969
,
222935
,
200636
,
218652
,
211916
,
212325
,
211916
,
218652
,
200636
,
188995
,
196781
,
205965
,
206433
,
206433
,
205965
,
196781
,
188995
,
185364
,
185364
,
200636
,
200704
,
200636
,
185364
,
185364
,
174609
,
180568
,
195068
,
195068
,
180568
,
174609
,
170091
,
175557
,
189591
,
175557
,
170091
,
165371
,
170627
,
170627
,
165371
,
160727
,
153560
,
160727
,
144651
,
144651
,
136258
,
};
static
const
int
dv_weight_248
[
64
]
=
{
131072
,
242189
,
257107
,
237536
,
229376
,
200636
,
242189
,
223754
,
224969
,
196781
,
262144
,
242189
,
229376
,
200636
,
257107
,
237536
,
211916
,
185364
,
235923
,
217965
,
229376
,
211916
,
206433
,
180568
,
242189
,
223754
,
224969
,
196781
,
211916
,
185364
,
235923
,
217965
,
200704
,
175557
,
222935
,
205965
,
200636
,
185364
,
195068
,
170627
,
229376
,
211916
,
206433
,
180568
,
200704
,
175557
,
222935
,
205965
,
175557
,
153560
,
188995
,
174609
,
165371
,
144651
,
200636
,
185364
,
195068
,
170627
,
175557
,
153560
,
188995
,
174609
,
165371
,
144651
,
};
static
const
int
dv_iweight_bits
=
14
;
static
const
int
dv_iweight_88
[
64
]
=
{
32768
,
16710
,
16710
,
17735
,
17015
,
17735
,
18197
,
18079
,
18079
,
18197
,
18725
,
18559
,
19196
,
18559
,
18725
,
19284
,
19108
,
19692
,
19692
,
19108
,
19284
,
21400
,
19645
,
20262
,
20214
,
20262
,
19645
,
21400
,
22733
,
21845
,
20867
,
20815
,
20815
,
20867
,
21845
,
22733
,
23173
,
23173
,
21400
,
21400
,
21400
,
23173
,
23173
,
24600
,
23764
,
22017
,
22017
,
23764
,
24600
,
25267
,
24457
,
22672
,
24457
,
25267
,
25971
,
25191
,
25191
,
25971
,
26715
,
27962
,
26715
,
29642
,
29642
,
31536
,
};
static
const
int
dv_iweight_248
[
64
]
=
{
32768
,
17735
,
16710
,
18079
,
18725
,
21400
,
17735
,
19196
,
19108
,
21845
,
16384
,
17735
,
18725
,
21400
,
16710
,
18079
,
20262
,
23173
,
18197
,
19692
,
18725
,
20262
,
20815
,
23764
,
17735
,
19196
,
19108
,
21845
,
20262
,
23173
,
18197
,
19692
,
21400
,
24457
,
19284
,
20867
,
21400
,
23173
,
22017
,
25191
,
18725
,
20262
,
20815
,
23764
,
21400
,
24457
,
19284
,
20867
,
24457
,
27962
,
22733
,
24600
,
25971
,
29642
,
21400
,
23173
,
22017
,
25191
,
24457
,
27962
,
22733
,
24600
,
25971
,
29642
,
};
/**
* The "inverse" DV100 weights are actually just the spec weights (zig-zagged).
*/
static
const
int
dv_iweight_1080_y
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
18
,
18
,
18
,
18
,
18
,
18
,
19
,
18
,
18
,
19
,
19
,
19
,
19
,
19
,
19
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
45
,
45
,
42
,
42
,
42
,
45
,
45
,
48
,
46
,
43
,
43
,
46
,
48
,
49
,
48
,
44
,
48
,
49
,
101
,
98
,
98
,
101
,
104
,
109
,
104
,
116
,
116
,
123
,
};
static
const
int
dv_iweight_1080_c
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
25
,
25
,
25
,
25
,
26
,
25
,
26
,
25
,
26
,
26
,
26
,
27
,
27
,
26
,
26
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
91
,
91
,
84
,
84
,
84
,
91
,
91
,
96
,
93
,
86
,
86
,
93
,
96
,
197
,
191
,
177
,
191
,
197
,
203
,
197
,
197
,
203
,
209
,
219
,
209
,
232
,
232
,
246
,
};
static
const
int
dv_iweight_720_y
[
64
]
=
{
128
,
16
,
16
,
17
,
17
,
17
,
18
,
18
,
18
,
18
,
18
,
18
,
19
,
18
,
18
,
19
,
19
,
19
,
19
,
19
,
19
,
42
,
38
,
40
,
40
,
40
,
38
,
42
,
44
,
43
,
41
,
41
,
41
,
41
,
43
,
44
,
68
,
68
,
63
,
63
,
63
,
68
,
68
,
96
,
92
,
86
,
86
,
92
,
96
,
98
,
96
,
88
,
96
,
98
,
202
,
196
,
196
,
202
,
208
,
218
,
208
,
232
,
232
,
246
,
};
static
const
int
dv_iweight_720_c
[
64
]
=
{
128
,
24
,
24
,
26
,
26
,
26
,
36
,
36
,
36
,
36
,
36
,
36
,
38
,
36
,
36
,
38
,
38
,
38
,
38
,
38
,
38
,
84
,
76
,
80
,
80
,
80
,
76
,
84
,
88
,
86
,
82
,
82
,
82
,
82
,
86
,
88
,
182
,
182
,
168
,
168
,
168
,
182
,
182
,
192
,
186
,
192
,
172
,
186
,
192
,
394
,
382
,
354
,
382
,
394
,
406
,
394
,
394
,
406
,
418
,
438
,
418
,
464
,
464
,
492
,
};
#endif
/* AVCODEC_DVQUANT_H */
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