Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
53c20f17
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
53c20f17
编写于
3月 28, 2014
作者:
V
Vittorio Giovara
提交者:
Diego Biurrun
3月 29, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
vp8: K&R formatting cosmetics
Signed-off-by:
N
Diego Biurrun
<
diego@biurrun.de
>
上级
6adf3bc4
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
934 addition
and
807 deletion
+934
-807
libavcodec/vp8.c
libavcodec/vp8.c
+516
-433
libavcodec/vp8.h
libavcodec/vp8.h
+10
-9
libavcodec/vp8_parser.c
libavcodec/vp8_parser.c
+8
-7
libavcodec/vp8data.h
libavcodec/vp8data.h
+96
-92
libavcodec/vp8dsp.c
libavcodec/vp8dsp.c
+302
-264
libavcodec/vp8dsp.h
libavcodec/vp8dsp.h
+2
-2
未找到文件。
libavcodec/vp8.c
浏览文件 @
53c20f17
此差异已折叠。
点击以展开。
libavcodec/vp8.h
浏览文件 @
53c20f17
...
...
@@ -28,14 +28,15 @@
#include "libavutil/buffer.h"
#include "vp56.h"
#include "vp8dsp.h"
#include "h264pred.h"
#include "thread.h"
#include "vp56.h"
#include "vp8dsp.h"
#if HAVE_PTHREADS
#include <pthread.h>
#
include <pthread.h>
#elif HAVE_W32THREADS
#include "compat/w32pthreads.h"
#
include "compat/w32pthreads.h"
#endif
#define VP8_MAX_QUANT 127
...
...
@@ -82,7 +83,7 @@ typedef struct VP8FilterStrength {
typedef
struct
VP8Macroblock
{
uint8_t
skip
;
//
todo
: make it possible to check for at least (i4x4 or split_mv)
//
TODO
: make it possible to check for at least (i4x4 or split_mv)
// in one op. are others needed?
uint8_t
mode
;
uint8_t
ref_frame
;
...
...
@@ -116,7 +117,7 @@ typedef struct VP8ThreadData {
int
thread_nr
;
#if HAVE_THREADS
pthread_mutex_t
lock
;
pthread_cond_t
cond
;
pthread_cond_t
cond
;
#endif
int
thread_mb_pos
;
// (mb_y << 16) | (mb_x & 0xFFFF)
int
wait_mb_pos
;
// What the current thread is waiting on.
...
...
@@ -203,7 +204,7 @@ typedef struct VP8Context {
* [7] - split mv
* i16x16 modes never have any adjustment
*/
int8_t
mode
[
VP8_MVMODE_SPLIT
+
1
];
int8_t
mode
[
VP8_MVMODE_SPLIT
+
1
];
/**
* filter strength adjustment for macroblocks that reference:
...
...
@@ -215,7 +216,7 @@ typedef struct VP8Context {
int8_t
ref
[
4
];
}
lf_delta
;
uint8_t
(
*
top_border
)[
16
+
8
+
8
];
uint8_t
(
*
top_border
)[
16
+
8
+
8
];
uint8_t
(
*
top_nnz
)[
9
];
VP56RangeCoder
c
;
///< header context, includes mb modes and motion vectors
...
...
@@ -234,7 +235,7 @@ typedef struct VP8Context {
uint8_t
golden
;
uint8_t
pred16x16
[
4
];
uint8_t
pred8x8c
[
3
];
uint8_t
token
[
4
][
16
][
3
][
NUM_DCT_TOKENS
-
1
];
uint8_t
token
[
4
][
16
][
3
][
NUM_DCT_TOKENS
-
1
];
uint8_t
mvc
[
2
][
19
];
}
prob
[
2
];
...
...
libavcodec/vp8_parser.c
浏览文件 @
53c20f17
...
...
@@ -21,18 +21,19 @@
#include "parser.h"
static
int
parse
(
AVCodecParserContext
*
s
,
AVCodecContext
*
avctx
,
const
uint8_t
**
poutbuf
,
int
*
poutbuf_size
,
const
uint8_t
*
buf
,
int
buf_size
)
AVCodecContext
*
avctx
,
const
uint8_t
**
poutbuf
,
int
*
poutbuf_size
,
const
uint8_t
*
buf
,
int
buf_size
)
{
s
->
pict_type
=
(
buf
[
0
]
&
0x01
)
?
AV_PICTURE_TYPE_P
:
AV_PICTURE_TYPE_I
;
s
->
pict_type
=
(
buf
[
0
]
&
0x01
)
?
AV_PICTURE_TYPE_P
:
AV_PICTURE_TYPE_I
;
*
poutbuf
=
buf
;
*
poutbuf
=
buf
;
*
poutbuf_size
=
buf_size
;
return
buf_size
;
}
AVCodecParser
ff_vp8_parser
=
{
.
codec_ids
=
{
AV_CODEC_ID_VP8
},
.
parser_parse
=
parse
,
.
codec_ids
=
{
AV_CODEC_ID_VP8
},
.
parser_parse
=
parse
,
};
libavcodec/vp8data.h
浏览文件 @
53c20f17
...
...
@@ -30,28 +30,25 @@
#include "vp8.h"
#include "h264pred.h"
static
const
uint8_t
vp8_pred4x4_mode
[]
=
{
static
const
uint8_t
vp8_pred4x4_mode
[]
=
{
[
DC_PRED8x8
]
=
DC_PRED
,
[
VERT_PRED8x8
]
=
VERT_PRED
,
[
HOR_PRED8x8
]
=
HOR_PRED
,
[
PLANE_PRED8x8
]
=
TM_VP8_PRED
,
};
static
const
int8_t
vp8_pred16x16_tree_intra
[
4
][
2
]
=
{
{
-
MODE_I4x4
,
1
},
// '0'
{
2
,
3
},
{
-
DC_PRED8x8
,
-
VERT_PRED8x8
},
// '100', '101'
{
-
HOR_PRED8x8
,
-
PLANE_PRED8x8
},
// '110', '111'
static
const
int8_t
vp8_pred16x16_tree_intra
[
4
][
2
]
=
{
{
-
MODE_I4x4
,
1
},
// '0'
{
2
,
3
},
{
-
DC_PRED8x8
,
-
VERT_PRED8x8
},
// '100', '101'
{
-
HOR_PRED8x8
,
-
PLANE_PRED8x8
},
// '110', '111'
};
static
const
int8_t
vp8_pred16x16_tree_inter
[
4
][
2
]
=
{
{
-
DC_PRED8x8
,
1
},
// '0'
{
2
,
3
},
{
-
VERT_PRED8x8
,
-
HOR_PRED8x8
},
// '100', '101'
{
-
PLANE_PRED8x8
,
-
MODE_I4x4
},
// '110', '111'
static
const
int8_t
vp8_pred16x16_tree_inter
[
4
][
2
]
=
{
{
-
DC_PRED8x8
,
1
},
// '0'
{
2
,
3
},
{
-
VERT_PRED8x8
,
-
HOR_PRED8x8
},
// '100', '101'
{
-
PLANE_PRED8x8
,
-
MODE_I4x4
},
// '110', '111'
};
static
const
int
vp8_mode_contexts
[
6
][
4
]
=
{
...
...
@@ -64,26 +61,26 @@ static const int vp8_mode_contexts[6][4] = {
};
static
const
uint8_t
vp8_mbsplits
[
5
][
16
]
=
{
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
},
{
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
2
,
2
,
3
,
3
,
2
,
2
,
3
,
3
},
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
},
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
},
{
0
,
0
,
1
,
1
,
0
,
0
,
1
,
1
,
2
,
2
,
3
,
3
,
2
,
2
,
3
,
3
},
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
},
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
}
};
static
const
uint8_t
vp8_mbfirstidx
[
4
][
16
]
=
{
{
0
,
8
},
{
0
,
2
},
{
0
,
2
,
8
,
10
},
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
}
{
0
,
8
},
{
0
,
2
},
{
0
,
2
,
8
,
10
},
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
}
};
static
const
uint8_t
vp8_mbsplit_count
[
4
]
=
{
2
,
2
,
4
,
16
};
static
const
uint8_t
vp8_mbsplit_prob
[
3
]
=
{
110
,
111
,
150
};
static
const
uint8_t
vp8_mbsplit_count
[
4
]
=
{
2
,
2
,
4
,
16
};
static
const
uint8_t
vp8_mbsplit_prob
[
3
]
=
{
110
,
111
,
150
};
static
const
uint8_t
vp8_submv_prob
[
5
][
3
]
=
{
{
147
,
136
,
18
},
...
...
@@ -93,39 +90,42 @@ static const uint8_t vp8_submv_prob[5][3] = {
{
208
,
1
,
1
}
};
static
const
uint8_t
vp8_pred16x16_prob_intra
[
4
]
=
{
145
,
156
,
163
,
128
};
static
const
uint8_t
vp8_pred16x16_prob_inter
[
4
]
=
{
112
,
86
,
140
,
37
};
static
const
int8_t
vp8_pred4x4_tree
[
9
][
2
]
=
{
{
-
DC_PRED
,
1
},
// '0'
{
-
TM_VP8_PRED
,
2
},
// '10'
{
-
VERT_PRED
,
3
},
// '110'
{
4
,
6
},
{
-
HOR_PRED
,
5
},
// '11100'
{
-
DIAG_DOWN_RIGHT_PRED
,
-
VERT_RIGHT_PRED
},
// '111010', '111011'
{
-
DIAG_DOWN_LEFT_PRED
,
7
},
// '11110'
{
-
VERT_LEFT_PRED
,
8
},
// '111110'
{
-
HOR_DOWN_PRED
,
-
HOR_UP_PRED
},
// '1111110', '1111111'
static
const
uint8_t
vp8_pred16x16_prob_intra
[
4
]
=
{
145
,
156
,
163
,
128
};
static
const
uint8_t
vp8_pred16x16_prob_inter
[
4
]
=
{
112
,
86
,
140
,
37
};
static
const
int8_t
vp8_pred8x8c_tree
[
3
][
2
]
=
{
{
-
DC_PRED8x8
,
1
},
// '0'
{
-
VERT_PRED8x8
,
2
},
// '10
{
-
HOR_PRED8x8
,
-
PLANE_PRED8x8
},
// '110', '111'
static
const
int8_t
vp8_pred4x4_tree
[
9
][
2
]
=
{
{
-
DC_PRED
,
1
},
// '0'
{
-
TM_VP8_PRED
,
2
},
// '10'
{
-
VERT_PRED
,
3
},
// '110'
{
4
,
6
},
{
-
HOR_PRED
,
5
},
// '11100'
{
-
DIAG_DOWN_RIGHT_PRED
,
-
VERT_RIGHT_PRED
},
// '111010', '111011'
{
-
DIAG_DOWN_LEFT_PRED
,
7
},
// '11110'
{
-
VERT_LEFT_PRED
,
8
},
// '111110'
{
-
HOR_DOWN_PRED
,
-
HOR_UP_PRED
},
// '1111110', '1111111'
};
static
const
uint8_t
vp8_pred8x8c_prob_intra
[
3
]
=
{
142
,
114
,
183
};
static
const
uint8_t
vp8_pred8x8c_prob_inter
[
3
]
=
{
162
,
101
,
204
};
static
const
int8_t
vp8_pred8x8c_tree
[
3
][
2
]
=
{
{
-
DC_PRED8x8
,
1
},
// '0'
{
-
VERT_PRED8x8
,
2
},
// '10
{
-
HOR_PRED8x8
,
-
PLANE_PRED8x8
},
// '110', '111'
};
static
const
uint8_t
vp8_pred4x4_prob_inter
[
9
]
=
{
static
const
uint8_t
vp8_pred8x8c_prob_intra
[
3
]
=
{
142
,
114
,
183
};
static
const
uint8_t
vp8_pred8x8c_prob_inter
[
3
]
=
{
162
,
101
,
204
};
static
const
uint8_t
vp8_pred4x4_prob_inter
[
9
]
=
{
120
,
90
,
79
,
133
,
87
,
85
,
80
,
111
,
151
};
static
const
uint8_t
vp8_pred4x4_prob_intra
[
10
][
10
][
9
]
=
{
static
const
uint8_t
vp8_pred4x4_prob_intra
[
10
][
10
][
9
]
=
{
{
{
39
,
53
,
200
,
87
,
26
,
21
,
43
,
232
,
171
},
{
56
,
34
,
51
,
104
,
114
,
102
,
29
,
93
,
77
},
...
...
@@ -248,50 +248,57 @@ static const uint8_t vp8_pred4x4_prob_intra[10][10][9] =
},
};
static
const
int8_t
vp8_segmentid_tree
[][
2
]
=
{
{
1
,
2
},
{
-
0
,
-
1
},
// '00', '01'
{
-
2
,
-
3
},
// '10', '11'
static
const
int8_t
vp8_segmentid_tree
[][
2
]
=
{
{
1
,
2
},
{
-
0
,
-
1
},
// '00', '01'
{
-
2
,
-
3
},
// '10', '11'
};
static
const
uint8_t
vp8_coeff_band
[
16
]
=
{
static
const
uint8_t
vp8_coeff_band
[
16
]
=
{
0
,
1
,
2
,
3
,
6
,
4
,
5
,
6
,
6
,
6
,
6
,
6
,
6
,
6
,
6
,
7
};
/* Inverse of vp8_coeff_band: mappings of bands to coefficient indexes.
* Each list is -1-terminated. */
static
const
int8_t
vp8_coeff_band_indexes
[
8
][
10
]
=
{
{
0
,
-
1
},
{
1
,
-
1
},
{
2
,
-
1
},
{
3
,
-
1
},
{
5
,
-
1
},
{
6
,
-
1
},
{
4
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
-
1
},
{
15
,
-
1
}
static
const
int8_t
vp8_coeff_band_indexes
[
8
][
10
]
=
{
{
0
,
-
1
},
{
1
,
-
1
},
{
2
,
-
1
},
{
3
,
-
1
},
{
5
,
-
1
},
{
6
,
-
1
},
{
4
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
-
1
},
{
15
,
-
1
}
};
static
const
uint8_t
vp8_dct_cat1_prob
[]
=
{
159
,
0
};
static
const
uint8_t
vp8_dct_cat2_prob
[]
=
{
165
,
145
,
0
};
static
const
uint8_t
vp8_dct_cat3_prob
[]
=
{
173
,
148
,
140
,
0
};
static
const
uint8_t
vp8_dct_cat4_prob
[]
=
{
176
,
155
,
140
,
135
,
0
};
static
const
uint8_t
vp8_dct_cat5_prob
[]
=
{
180
,
157
,
141
,
134
,
130
,
0
};
static
const
uint8_t
vp8_dct_cat6_prob
[]
=
{
254
,
254
,
243
,
230
,
196
,
177
,
153
,
140
,
133
,
130
,
129
,
0
};
static
const
uint8_t
vp8_dct_cat1_prob
[]
=
{
159
,
0
};
static
const
uint8_t
vp8_dct_cat2_prob
[]
=
{
165
,
145
,
0
};
static
const
uint8_t
vp8_dct_cat3_prob
[]
=
{
173
,
148
,
140
,
0
};
static
const
uint8_t
vp8_dct_cat4_prob
[]
=
{
176
,
155
,
140
,
135
,
0
};
static
const
uint8_t
vp8_dct_cat5_prob
[]
=
{
180
,
157
,
141
,
134
,
130
,
0
};
static
const
uint8_t
vp8_dct_cat6_prob
[]
=
{
254
,
254
,
243
,
230
,
196
,
177
,
153
,
140
,
133
,
130
,
129
,
0
};
// only used for cat3 and above; cat 1 and 2 are referenced directly
const
uint8_t
*
const
ff_vp8_dct_cat_prob
[]
=
{
const
uint8_t
*
const
ff_vp8_dct_cat_prob
[]
=
{
vp8_dct_cat3_prob
,
vp8_dct_cat4_prob
,
vp8_dct_cat5_prob
,
vp8_dct_cat6_prob
,
};
static
const
uint8_t
vp8_token_default_probs
[
4
][
8
][
3
][
NUM_DCT_TOKENS
-
1
]
=
{
static
const
uint8_t
vp8_token_default_probs
[
4
][
8
][
3
][
NUM_DCT_TOKENS
-
1
]
=
{
{
{
{
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
},
...
...
@@ -462,8 +469,7 @@ static const uint8_t vp8_token_default_probs[4][8][3][NUM_DCT_TOKENS-1] =
},
};
static
const
uint8_t
vp8_token_update_probs
[
4
][
8
][
3
][
NUM_DCT_TOKENS
-
1
]
=
{
static
const
uint8_t
vp8_token_update_probs
[
4
][
8
][
3
][
NUM_DCT_TOKENS
-
1
]
=
{
{
{
{
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
},
...
...
@@ -635,15 +641,14 @@ static const uint8_t vp8_token_update_probs[4][8][3][NUM_DCT_TOKENS-1] =
};
// fixme: copied from h264data.h
static
const
uint8_t
zigzag_scan
[
16
]
=
{
0
+
0
*
4
,
1
+
0
*
4
,
0
+
1
*
4
,
0
+
2
*
4
,
1
+
1
*
4
,
2
+
0
*
4
,
3
+
0
*
4
,
2
+
1
*
4
,
1
+
2
*
4
,
0
+
3
*
4
,
1
+
3
*
4
,
2
+
2
*
4
,
3
+
1
*
4
,
3
+
2
*
4
,
2
+
3
*
4
,
3
+
3
*
4
,
static
const
uint8_t
zigzag_scan
[
16
]
=
{
0
+
0
*
4
,
1
+
0
*
4
,
0
+
1
*
4
,
0
+
2
*
4
,
1
+
1
*
4
,
2
+
0
*
4
,
3
+
0
*
4
,
2
+
1
*
4
,
1
+
2
*
4
,
0
+
3
*
4
,
1
+
3
*
4
,
2
+
2
*
4
,
3
+
1
*
4
,
3
+
2
*
4
,
2
+
3
*
4
,
3
+
3
*
4
,
};
static
const
uint8_t
vp8_dc_qlookup
[
VP8_MAX_QUANT
+
1
]
=
{
static
const
uint8_t
vp8_dc_qlookup
[
VP8_MAX_QUANT
+
1
]
=
{
4
,
5
,
6
,
7
,
8
,
9
,
10
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
17
,
18
,
19
,
20
,
20
,
21
,
21
,
22
,
22
,
23
,
23
,
24
,
25
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
...
...
@@ -654,8 +659,7 @@ static const uint8_t vp8_dc_qlookup[VP8_MAX_QUANT+1] =
122
,
124
,
126
,
128
,
130
,
132
,
134
,
136
,
138
,
140
,
143
,
145
,
148
,
151
,
154
,
157
,
};
static
const
uint16_t
vp8_ac_qlookup
[
VP8_MAX_QUANT
+
1
]
=
{
static
const
uint16_t
vp8_ac_qlookup
[
VP8_MAX_QUANT
+
1
]
=
{
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
...
...
libavcodec/vp8dsp.c
浏览文件 @
53c20f17
此差异已折叠。
点击以展开。
libavcodec/vp8dsp.h
浏览文件 @
53c20f17
...
...
@@ -30,8 +30,8 @@
#include <stddef.h>
#include <stdint.h>
typedef
void
(
*
vp8_mc_func
)(
uint8_t
*
dst
/*align 8
*/
,
ptrdiff_t
dstStride
,
uint8_t
*
src
/*align 1
*/
,
ptrdiff_t
srcStride
,
typedef
void
(
*
vp8_mc_func
)(
uint8_t
*
dst
/* align 8
*/
,
ptrdiff_t
dstStride
,
uint8_t
*
src
/* align 1
*/
,
ptrdiff_t
srcStride
,
int
h
,
int
x
,
int
y
);
typedef
struct
VP8DSPContext
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录