Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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