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
73bb8f61
Commit
73bb8f61
authored
Jul 12, 2014
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hevcdsp: remove an unneeded variable in the loop filter
beta0 and beta1 will always be the same
parent
56f98e34
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
21 deletions
+19
-21
hevc_filter.c
libavcodec/hevc_filter.c
+10
-13
hevcdsp.h
libavcodec/hevcdsp.h
+4
-4
hevcdsp_template.c
libavcodec/hevcdsp_template.c
+5
-4
No files found.
libavcodec/hevc_filter.c
View file @
73bb8f61
...
@@ -339,7 +339,7 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
...
@@ -339,7 +339,7 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
{
{
uint8_t
*
src
;
uint8_t
*
src
;
int
x
,
y
,
x_end
,
y_end
,
chroma
;
int
x
,
y
,
x_end
,
y_end
,
chroma
;
int
c_tc
[
2
],
beta
[
2
],
tc
[
2
]
;
int
c_tc
[
2
],
tc
[
2
],
beta
;
uint8_t
no_p
[
2
]
=
{
0
};
uint8_t
no_p
[
2
]
=
{
0
};
uint8_t
no_q
[
2
]
=
{
0
};
uint8_t
no_q
[
2
]
=
{
0
};
...
@@ -375,13 +375,12 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
...
@@ -375,13 +375,12 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
const
int
bs0
=
s
->
vertical_bs
[(
x
>>
3
)
+
(
y
>>
2
)
*
s
->
bs_width
];
const
int
bs0
=
s
->
vertical_bs
[(
x
>>
3
)
+
(
y
>>
2
)
*
s
->
bs_width
];
const
int
bs1
=
s
->
vertical_bs
[(
x
>>
3
)
+
((
y
+
4
)
>>
2
)
*
s
->
bs_width
];
const
int
bs1
=
s
->
vertical_bs
[(
x
>>
3
)
+
((
y
+
4
)
>>
2
)
*
s
->
bs_width
];
if
(
bs0
||
bs1
)
{
if
(
bs0
||
bs1
)
{
const
int
qp0
=
(
get_qPy
(
s
,
x
-
1
,
y
)
+
get_qPy
(
s
,
x
,
y
)
+
1
)
>>
1
;
const
int
qp
=
(
get_qPy
(
s
,
x
-
1
,
y
)
+
get_qPy
(
s
,
x
,
y
)
+
1
)
>>
1
;
const
int
qp1
=
(
get_qPy
(
s
,
x
-
1
,
y
+
4
)
+
get_qPy
(
s
,
x
,
y
+
4
)
+
1
)
>>
1
;
beta
[
0
]
=
betatable
[
av_clip
(
qp0
+
beta_offset
,
0
,
MAX_QP
)];
beta
=
betatable
[
av_clip
(
qp
+
beta_offset
,
0
,
MAX_QP
)];
beta
[
1
]
=
betatable
[
av_clip
(
qp1
+
beta_offset
,
0
,
MAX_QP
)];
tc
[
0
]
=
bs0
?
TC_CALC
(
qp
0
,
bs0
)
:
0
;
tc
[
0
]
=
bs0
?
TC_CALC
(
qp
,
bs0
)
:
0
;
tc
[
1
]
=
bs1
?
TC_CALC
(
qp
1
,
bs1
)
:
0
;
tc
[
1
]
=
bs1
?
TC_CALC
(
qp
,
bs1
)
:
0
;
src
=
&
s
->
frame
->
data
[
LUMA
][
y
*
s
->
frame
->
linesize
[
LUMA
]
+
(
x
<<
s
->
sps
->
pixel_shift
)];
src
=
&
s
->
frame
->
data
[
LUMA
][
y
*
s
->
frame
->
linesize
[
LUMA
]
+
(
x
<<
s
->
sps
->
pixel_shift
)];
if
(
pcmf
)
{
if
(
pcmf
)
{
no_p
[
0
]
=
get_pcm
(
s
,
x
-
1
,
y
);
no_p
[
0
]
=
get_pcm
(
s
,
x
-
1
,
y
);
...
@@ -437,16 +436,14 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
...
@@ -437,16 +436,14 @@ static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0)
const
int
bs0
=
s
->
horizontal_bs
[(
x
+
y
*
s
->
bs_width
)
>>
2
];
const
int
bs0
=
s
->
horizontal_bs
[(
x
+
y
*
s
->
bs_width
)
>>
2
];
const
int
bs1
=
s
->
horizontal_bs
[(
x
+
4
+
y
*
s
->
bs_width
)
>>
2
];
const
int
bs1
=
s
->
horizontal_bs
[(
x
+
4
+
y
*
s
->
bs_width
)
>>
2
];
if
(
bs0
||
bs1
)
{
if
(
bs0
||
bs1
)
{
const
int
qp0
=
(
get_qPy
(
s
,
x
,
y
-
1
)
+
get_qPy
(
s
,
x
,
y
)
+
1
)
>>
1
;
const
int
qp
=
(
get_qPy
(
s
,
x
,
y
-
1
)
+
get_qPy
(
s
,
x
,
y
)
+
1
)
>>
1
;
const
int
qp1
=
(
get_qPy
(
s
,
x
+
4
,
y
-
1
)
+
get_qPy
(
s
,
x
+
4
,
y
)
+
1
)
>>
1
;
tc_offset
=
x
>=
x0
?
cur_tc_offset
:
left_tc_offset
;
tc_offset
=
x
>=
x0
?
cur_tc_offset
:
left_tc_offset
;
beta_offset
=
x
>=
x0
?
cur_beta_offset
:
left_beta_offset
;
beta_offset
=
x
>=
x0
?
cur_beta_offset
:
left_beta_offset
;
beta
[
0
]
=
betatable
[
av_clip
(
qp0
+
beta_offset
,
0
,
MAX_QP
)];
beta
=
betatable
[
av_clip
(
qp
+
beta_offset
,
0
,
MAX_QP
)];
beta
[
1
]
=
betatable
[
av_clip
(
qp1
+
beta_offset
,
0
,
MAX_QP
)];
tc
[
0
]
=
bs0
?
TC_CALC
(
qp
,
bs0
)
:
0
;
tc
[
0
]
=
bs0
?
TC_CALC
(
qp0
,
bs0
)
:
0
;
tc
[
1
]
=
bs1
?
TC_CALC
(
qp
,
bs1
)
:
0
;
tc
[
1
]
=
bs1
?
TC_CALC
(
qp1
,
bs1
)
:
0
;
src
=
&
s
->
frame
->
data
[
LUMA
][
y
*
s
->
frame
->
linesize
[
LUMA
]
+
(
x
<<
s
->
sps
->
pixel_shift
)];
src
=
&
s
->
frame
->
data
[
LUMA
][
y
*
s
->
frame
->
linesize
[
LUMA
]
+
(
x
<<
s
->
sps
->
pixel_shift
)];
if
(
pcmf
)
{
if
(
pcmf
)
{
no_p
[
0
]
=
get_pcm
(
s
,
x
,
y
-
1
);
no_p
[
0
]
=
get_pcm
(
s
,
x
,
y
-
1
);
...
...
libavcodec/hevcdsp.h
View file @
73bb8f61
...
@@ -79,20 +79,20 @@ typedef struct HEVCDSPContext {
...
@@ -79,20 +79,20 @@ typedef struct HEVCDSPContext {
ptrdiff_t
srcstride
,
int
width
,
int
height
);
ptrdiff_t
srcstride
,
int
width
,
int
height
);
void
(
*
hevc_h_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_h_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_v_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_v_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_h_loop_filter_chroma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_h_loop_filter_chroma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_v_loop_filter_chroma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_v_loop_filter_chroma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_h_loop_filter_luma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_h_loop_filter_luma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_v_loop_filter_luma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_v_loop_filter_luma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
);
uint8_t
*
no_p
,
uint8_t
*
no_q
);
void
(
*
hevc_h_loop_filter_chroma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
void
(
*
hevc_h_loop_filter_chroma_c
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
tc
,
uint8_t
*
no_p
,
int
*
tc
,
uint8_t
*
no_p
,
...
...
libavcodec/hevcdsp_template.c
View file @
73bb8f61
...
@@ -1164,7 +1164,7 @@ static void FUNC(weighted_pred_avg)(uint8_t denom,
...
@@ -1164,7 +1164,7 @@ static void FUNC(weighted_pred_avg)(uint8_t denom,
static
void
FUNC
(
hevc_loop_filter_luma
)(
uint8_t
*
_pix
,
static
void
FUNC
(
hevc_loop_filter_luma
)(
uint8_t
*
_pix
,
ptrdiff_t
_xstride
,
ptrdiff_t
_ystride
,
ptrdiff_t
_xstride
,
ptrdiff_t
_ystride
,
int
*
_
beta
,
int
*
_tc
,
int
beta
,
int
*
_tc
,
uint8_t
*
_no_p
,
uint8_t
*
_no_q
)
uint8_t
*
_no_p
,
uint8_t
*
_no_q
)
{
{
int
d
,
j
;
int
d
,
j
;
...
@@ -1172,6 +1172,8 @@ static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
...
@@ -1172,6 +1172,8 @@ static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
ptrdiff_t
xstride
=
_xstride
/
sizeof
(
pixel
);
ptrdiff_t
xstride
=
_xstride
/
sizeof
(
pixel
);
ptrdiff_t
ystride
=
_ystride
/
sizeof
(
pixel
);
ptrdiff_t
ystride
=
_ystride
/
sizeof
(
pixel
);
beta
<<=
BIT_DEPTH
-
8
;
for
(
j
=
0
;
j
<
2
;
j
++
)
{
for
(
j
=
0
;
j
<
2
;
j
++
)
{
const
int
dp0
=
abs
(
P2
-
2
*
P1
+
P0
);
const
int
dp0
=
abs
(
P2
-
2
*
P1
+
P0
);
const
int
dq0
=
abs
(
Q2
-
2
*
Q1
+
Q0
);
const
int
dq0
=
abs
(
Q2
-
2
*
Q1
+
Q0
);
...
@@ -1179,7 +1181,6 @@ static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
...
@@ -1179,7 +1181,6 @@ static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
const
int
dq3
=
abs
(
TQ2
-
2
*
TQ1
+
TQ0
);
const
int
dq3
=
abs
(
TQ2
-
2
*
TQ1
+
TQ0
);
const
int
d0
=
dp0
+
dq0
;
const
int
d0
=
dp0
+
dq0
;
const
int
d3
=
dp3
+
dq3
;
const
int
d3
=
dp3
+
dq3
;
const
int
beta
=
_beta
[
j
]
<<
(
BIT_DEPTH
-
8
);
const
int
tc
=
_tc
[
j
]
<<
(
BIT_DEPTH
-
8
);
const
int
tc
=
_tc
[
j
]
<<
(
BIT_DEPTH
-
8
);
const
int
no_p
=
_no_p
[
j
];
const
int
no_p
=
_no_p
[
j
];
const
int
no_q
=
_no_q
[
j
];
const
int
no_q
=
_no_q
[
j
];
...
@@ -1306,7 +1307,7 @@ static void FUNC(hevc_v_loop_filter_chroma)(uint8_t *pix, ptrdiff_t stride,
...
@@ -1306,7 +1307,7 @@ static void FUNC(hevc_v_loop_filter_chroma)(uint8_t *pix, ptrdiff_t stride,
}
}
static
void
FUNC
(
hevc_h_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
static
void
FUNC
(
hevc_h_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
uint8_t
*
no_p
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
)
uint8_t
*
no_q
)
{
{
FUNC
(
hevc_loop_filter_luma
)(
pix
,
stride
,
sizeof
(
pixel
),
FUNC
(
hevc_loop_filter_luma
)(
pix
,
stride
,
sizeof
(
pixel
),
...
@@ -1314,7 +1315,7 @@ static void FUNC(hevc_h_loop_filter_luma)(uint8_t *pix, ptrdiff_t stride,
...
@@ -1314,7 +1315,7 @@ static void FUNC(hevc_h_loop_filter_luma)(uint8_t *pix, ptrdiff_t stride,
}
}
static
void
FUNC
(
hevc_v_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
static
void
FUNC
(
hevc_v_loop_filter_luma
)(
uint8_t
*
pix
,
ptrdiff_t
stride
,
int
*
beta
,
int
*
tc
,
uint8_t
*
no_p
,
int
beta
,
int
*
tc
,
uint8_t
*
no_p
,
uint8_t
*
no_q
)
uint8_t
*
no_q
)
{
{
FUNC
(
hevc_loop_filter_luma
)(
pix
,
sizeof
(
pixel
),
stride
,
FUNC
(
hevc_loop_filter_luma
)(
pix
,
sizeof
(
pixel
),
stride
,
...
...
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