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
a7a17e3f
Commit
a7a17e3f
authored
Jul 27, 2014
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hevc_filter: move some conditions out of loops
parent
70211539
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
18 deletions
+23
-18
hevc_filter.c
libavcodec/hevc_filter.c
+23
-18
No files found.
libavcodec/hevc_filter.c
View file @
a7a17e3f
...
@@ -594,9 +594,20 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
...
@@ -594,9 +594,20 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
int
min_tu_width
=
s
->
sps
->
min_tb_width
;
int
min_tu_width
=
s
->
sps
->
min_tb_width
;
int
is_intra
=
tab_mvf
[(
y0
>>
log2_min_pu_size
)
*
min_pu_width
+
int
is_intra
=
tab_mvf
[(
y0
>>
log2_min_pu_size
)
*
min_pu_width
+
(
x0
>>
log2_min_pu_size
)].
is_intra
;
(
x0
>>
log2_min_pu_size
)].
is_intra
;
int
boundary_upper
,
boundary_left
;
int
i
,
j
,
bs
;
int
i
,
j
,
bs
;
if
(
y0
>
0
&&
(
y0
&
7
)
==
0
)
{
boundary_upper
=
y0
>
0
&&
!
(
y0
&
7
);
if
(
boundary_upper
&&
((
!
s
->
sh
.
slice_loop_filter_across_slices_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_UPPER_SLICE
&&
(
y0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
||
(
!
s
->
pps
->
loop_filter_across_tiles_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_UPPER_TILE
&&
(
y0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)))
boundary_upper
=
0
;
if
(
boundary_upper
)
{
int
yp_pu
=
(
y0
-
1
)
>>
log2_min_pu_size
;
int
yp_pu
=
(
y0
-
1
)
>>
log2_min_pu_size
;
int
yq_pu
=
y0
>>
log2_min_pu_size
;
int
yq_pu
=
y0
>>
log2_min_pu_size
;
int
yp_tu
=
(
y0
-
1
)
>>
log2_min_tu_size
;
int
yp_tu
=
(
y0
-
1
)
>>
log2_min_tu_size
;
...
@@ -614,14 +625,6 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
...
@@ -614,14 +625,6 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
bs
=
boundary_strength
(
s
,
curr
,
curr_cbf_luma
,
bs
=
boundary_strength
(
s
,
curr
,
curr_cbf_luma
,
top
,
top_cbf_luma
,
top_refPicList
,
1
);
top
,
top_cbf_luma
,
top_refPicList
,
1
);
if
(
!
s
->
sh
.
slice_loop_filter_across_slices_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_UPPER_SLICE
&&
(
y0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
bs
=
0
;
else
if
(
!
s
->
pps
->
loop_filter_across_tiles_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_UPPER_TILE
&&
(
y0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
bs
=
0
;
if
(
bs
)
if
(
bs
)
s
->
horizontal_bs
[((
x0
+
i
)
+
y0
*
s
->
bs_width
)
>>
2
]
=
bs
;
s
->
horizontal_bs
[((
x0
+
i
)
+
y0
*
s
->
bs_width
)
>>
2
]
=
bs
;
}
}
...
@@ -654,7 +657,17 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
...
@@ -654,7 +657,17 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
}
}
// bs for vertical TU boundaries
// bs for vertical TU boundaries
if
(
x0
>
0
&&
(
x0
&
7
)
==
0
)
{
boundary_left
=
x0
>
0
&&
!
(
x0
&
7
);
if
(
boundary_left
&&
((
!
s
->
sh
.
slice_loop_filter_across_slices_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_LEFT_SLICE
&&
(
x0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
||
(
!
s
->
pps
->
loop_filter_across_tiles_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_LEFT_TILE
&&
(
x0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)))
boundary_left
=
0
;
if
(
boundary_left
)
{
int
xp_pu
=
(
x0
-
1
)
>>
log2_min_pu_size
;
int
xp_pu
=
(
x0
-
1
)
>>
log2_min_pu_size
;
int
xq_pu
=
x0
>>
log2_min_pu_size
;
int
xq_pu
=
x0
>>
log2_min_pu_size
;
int
xp_tu
=
(
x0
-
1
)
>>
log2_min_tu_size
;
int
xp_tu
=
(
x0
-
1
)
>>
log2_min_tu_size
;
...
@@ -673,14 +686,6 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
...
@@ -673,14 +686,6 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0,
bs
=
boundary_strength
(
s
,
curr
,
curr_cbf_luma
,
bs
=
boundary_strength
(
s
,
curr
,
curr_cbf_luma
,
left
,
left_cbf_luma
,
left_refPicList
,
1
);
left
,
left_cbf_luma
,
left_refPicList
,
1
);
if
(
!
s
->
sh
.
slice_loop_filter_across_slices_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_LEFT_SLICE
&&
(
x0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
bs
=
0
;
else
if
(
!
s
->
pps
->
loop_filter_across_tiles_enabled_flag
&&
lc
->
boundary_flags
&
BOUNDARY_LEFT_TILE
&&
(
x0
%
(
1
<<
s
->
sps
->
log2_ctb_size
))
==
0
)
bs
=
0
;
if
(
bs
)
if
(
bs
)
s
->
vertical_bs
[(
x0
>>
3
)
+
((
y0
+
i
)
>>
2
)
*
s
->
bs_width
]
=
bs
;
s
->
vertical_bs
[(
x0
>>
3
)
+
((
y0
+
i
)
>>
2
)
*
s
->
bs_width
]
=
bs
;
}
}
...
...
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