Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
04db5794
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,发现更多精彩内容 >>
提交
04db5794
编写于
5月 17, 2014
作者:
M
Mickaël Raulet
提交者:
Anton Khirnov
5月 19, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hevc: templatize pred_planar
Signed-off-by:
N
Anton Khirnov
<
anton@khirnov.net
>
上级
0ba5299a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
18 addition
and
42 deletion
+18
-42
libavcodec/hevcpred_template.c
libavcodec/hevcpred_template.c
+18
-42
未找到文件。
libavcodec/hevcpred_template.c
浏览文件 @
04db5794
...
...
@@ -349,58 +349,34 @@ static void FUNC(intra_pred)(HEVCContext *s, int x0, int y0, int log2_size, int
}
}
static
void
FUNC
(
pred_planar_0
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
ptrdiff_t
strid
e
)
static
av_always_inline
void
FUNC
(
pred_planar
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
ptrdiff_t
stride
,
int
trafo_siz
e
)
{
int
x
,
y
;
pixel
*
src
=
(
pixel
*
)
_src
;
const
pixel
*
top
=
(
const
pixel
*
)
_top
;
const
pixel
*
left
=
(
const
pixel
*
)
_left
;
for
(
y
=
0
;
y
<
4
;
y
++
)
for
(
x
=
0
;
x
<
4
;
x
++
)
POS
(
x
,
y
)
=
((
3
-
x
)
*
left
[
y
]
+
(
x
+
1
)
*
top
[
4
]
+
(
3
-
y
)
*
top
[
x
]
+
(
y
+
1
)
*
left
[
4
]
+
4
)
>>
3
;
int
size
=
1
<<
trafo_size
;
for
(
y
=
0
;
y
<
size
;
y
++
)
for
(
x
=
0
;
x
<
size
;
x
++
)
POS
(
x
,
y
)
=
((
size
-
1
-
x
)
*
left
[
y
]
+
(
x
+
1
)
*
top
[
size
]
+
(
size
-
1
-
y
)
*
top
[
x
]
+
(
y
+
1
)
*
left
[
size
]
+
size
)
>>
(
trafo_size
+
1
);
}
static
void
FUNC
(
pred_planar_1
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
ptrdiff_t
stride
)
{
int
x
,
y
;
pixel
*
src
=
(
pixel
*
)
_src
;
const
pixel
*
top
=
(
const
pixel
*
)
_top
;
const
pixel
*
left
=
(
const
pixel
*
)
_left
;
for
(
y
=
0
;
y
<
8
;
y
++
)
for
(
x
=
0
;
x
<
8
;
x
++
)
POS
(
x
,
y
)
=
((
7
-
x
)
*
left
[
y
]
+
(
x
+
1
)
*
top
[
8
]
+
(
7
-
y
)
*
top
[
x
]
+
(
y
+
1
)
*
left
[
8
]
+
8
)
>>
4
;
#define PRED_PLANAR(size)\
static void FUNC(pred_planar_ ## size)(uint8_t *src, const uint8_t *top, \
const uint8_t *left, ptrdiff_t stride) \
{ \
FUNC(pred_planar)(src, top, left, stride, size + 2); \
}
static
void
FUNC
(
pred_planar_2
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
ptrdiff_t
stride
)
{
int
x
,
y
;
pixel
*
src
=
(
pixel
*
)
_src
;
const
pixel
*
top
=
(
const
pixel
*
)
_top
;
const
pixel
*
left
=
(
const
pixel
*
)
_left
;
for
(
y
=
0
;
y
<
16
;
y
++
)
for
(
x
=
0
;
x
<
16
;
x
++
)
POS
(
x
,
y
)
=
((
15
-
x
)
*
left
[
y
]
+
(
x
+
1
)
*
top
[
16
]
+
(
15
-
y
)
*
top
[
x
]
+
(
y
+
1
)
*
left
[
16
]
+
16
)
>>
5
;
}
PRED_PLANAR
(
0
)
PRED_PLANAR
(
1
)
PRED_PLANAR
(
2
)
PRED_PLANAR
(
3
)
static
void
FUNC
(
pred_planar_3
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
ptrdiff_t
stride
)
{
int
x
,
y
;
pixel
*
src
=
(
pixel
*
)
_src
;
const
pixel
*
top
=
(
const
pixel
*
)
_top
;
const
pixel
*
left
=
(
const
pixel
*
)
_left
;
for
(
y
=
0
;
y
<
32
;
y
++
)
for
(
x
=
0
;
x
<
32
;
x
++
)
POS
(
x
,
y
)
=
((
31
-
x
)
*
left
[
y
]
+
(
x
+
1
)
*
top
[
32
]
+
(
31
-
y
)
*
top
[
x
]
+
(
y
+
1
)
*
left
[
32
]
+
32
)
>>
6
;
}
#undef PRED_PLANAR
static
void
FUNC
(
pred_dc
)(
uint8_t
*
_src
,
const
uint8_t
*
_top
,
const
uint8_t
*
_left
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录