Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
61e65862
Commit
61e65862
authored
Jun 05, 2013
by
Jingning Han
Committed by
Gerrit Code Review
Jun 05, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Fix UV intra coding rd loop" into experimental
parents
30226a65
f04b1548
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
4 deletions
+8
-4
vp9/common/vp9_blockd.h
vp9/common/vp9_blockd.h
+1
-0
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_rdopt.c
+7
-4
No files found.
vp9/common/vp9_blockd.h
View file @
61e65862
...
@@ -622,6 +622,7 @@ typedef void (*foreach_transformed_block_visitor)(int plane, int block,
...
@@ -622,6 +622,7 @@ typedef void (*foreach_transformed_block_visitor)(int plane, int block,
BLOCK_SIZE_TYPE
bsize
,
BLOCK_SIZE_TYPE
bsize
,
int
ss_txfrm_size
,
int
ss_txfrm_size
,
void
*
arg
);
void
*
arg
);
static
INLINE
void
foreach_transformed_block_in_plane
(
static
INLINE
void
foreach_transformed_block_in_plane
(
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE_TYPE
bsize
,
int
plane
,
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE_TYPE
bsize
,
int
plane
,
foreach_transformed_block_visitor
visit
,
void
*
arg
)
{
foreach_transformed_block_visitor
visit
,
void
*
arg
)
{
...
...
vp9/encoder/vp9_rdopt.c
View file @
61e65862
...
@@ -871,7 +871,10 @@ static void super_block_uvrd_for_txfm(VP9_COMMON *const cm, MACROBLOCK *x,
...
@@ -871,7 +871,10 @@ static void super_block_uvrd_for_txfm(VP9_COMMON *const cm, MACROBLOCK *x,
int
*
skippable
,
BLOCK_SIZE_TYPE
bsize
,
int
*
skippable
,
BLOCK_SIZE_TYPE
bsize
,
TX_SIZE
uv_tx_size
)
{
TX_SIZE
uv_tx_size
)
{
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
vp9_xform_quant_sbuv
(
cm
,
x
,
bsize
);
if
(
xd
->
mode_info_context
->
mbmi
.
ref_frame
==
INTRA_FRAME
)
vp9_encode_intra_block_uv
(
cm
,
x
,
bsize
);
else
vp9_xform_quant_sbuv
(
cm
,
x
,
bsize
);
*
distortion
=
block_error_sbuv
(
x
,
bsize
,
uv_tx_size
==
TX_32X32
?
0
:
2
);
*
distortion
=
block_error_sbuv
(
x
,
bsize
,
uv_tx_size
==
TX_32X32
?
0
:
2
);
*
rate
=
rdcost_uv
(
cm
,
x
,
bsize
,
uv_tx_size
);
*
rate
=
rdcost_uv
(
cm
,
x
,
bsize
,
uv_tx_size
);
...
@@ -884,7 +887,8 @@ static void super_block_uvrd(VP9_COMMON *const cm, MACROBLOCK *x,
...
@@ -884,7 +887,8 @@ static void super_block_uvrd(VP9_COMMON *const cm, MACROBLOCK *x,
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
MB_MODE_INFO
*
const
mbmi
=
&
xd
->
mode_info_context
->
mbmi
;
MB_MODE_INFO
*
const
mbmi
=
&
xd
->
mode_info_context
->
mbmi
;
vp9_subtract_sbuv
(
x
,
bsize
);
if
(
mbmi
->
ref_frame
>
INTRA_FRAME
)
vp9_subtract_sbuv
(
x
,
bsize
);
if
(
mbmi
->
txfm_size
>=
TX_32X32
&&
bsize
>=
BLOCK_SIZE_SB64X64
)
{
if
(
mbmi
->
txfm_size
>=
TX_32X32
&&
bsize
>=
BLOCK_SIZE_SB64X64
)
{
super_block_uvrd_for_txfm
(
cm
,
x
,
rate
,
distortion
,
skippable
,
bsize
,
super_block_uvrd_for_txfm
(
cm
,
x
,
rate
,
distortion
,
skippable
,
bsize
,
...
@@ -913,8 +917,6 @@ static int64_t rd_pick_intra_sbuv_mode(VP9_COMP *cpi, MACROBLOCK *x,
...
@@ -913,8 +917,6 @@ static int64_t rd_pick_intra_sbuv_mode(VP9_COMP *cpi, MACROBLOCK *x,
for
(
mode
=
DC_PRED
;
mode
<=
TM_PRED
;
mode
++
)
{
for
(
mode
=
DC_PRED
;
mode
<=
TM_PRED
;
mode
++
)
{
x
->
e_mbd
.
mode_info_context
->
mbmi
.
uv_mode
=
mode
;
x
->
e_mbd
.
mode_info_context
->
mbmi
.
uv_mode
=
mode
;
vp9_build_intra_predictors_sbuv_s
(
&
x
->
e_mbd
,
bsize
);
super_block_uvrd
(
&
cpi
->
common
,
x
,
&
this_rate_tokenonly
,
super_block_uvrd
(
&
cpi
->
common
,
x
,
&
this_rate_tokenonly
,
&
this_distortion
,
&
s
,
bsize
);
&
this_distortion
,
&
s
,
bsize
);
this_rate
=
this_rate_tokenonly
+
this_rate
=
this_rate_tokenonly
+
...
@@ -2565,6 +2567,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
...
@@ -2565,6 +2567,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
if
(
cpi
->
speed
==
0
if
(
cpi
->
speed
==
0
||
(
cpi
->
speed
>
0
&&
(
ref_frame_mask
&
(
1
<<
INTRA_FRAME
))))
{
||
(
cpi
->
speed
>
0
&&
(
ref_frame_mask
&
(
1
<<
INTRA_FRAME
))))
{
mbmi
->
mode
=
DC_PRED
;
mbmi
->
mode
=
DC_PRED
;
mbmi
->
ref_frame
=
INTRA_FRAME
;
for
(
i
=
0
;
i
<=
(
bsize
<
BLOCK_SIZE_MB16X16
?
TX_4X4
:
for
(
i
=
0
;
i
<=
(
bsize
<
BLOCK_SIZE_MB16X16
?
TX_4X4
:
(
bsize
<
BLOCK_SIZE_SB32X32
?
TX_8X8
:
(
bsize
<
BLOCK_SIZE_SB32X32
?
TX_8X8
:
(
bsize
<
BLOCK_SIZE_SB64X64
?
TX_16X16
:
TX_32X32
)));
(
bsize
<
BLOCK_SIZE_SB64X64
?
TX_16X16
:
TX_32X32
)));
...
...
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