Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Guillaume Martres
aom-rav1e
Commits
f80a346e
Commit
f80a346e
authored
Jun 12, 2014
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Jun 12, 2014
Browse files
Merge "Replacing txfm_size with tx_size."
parents
d5ae4331
4345d12d
Changes
3
Hide whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_block.h
View file @
f80a346e
...
...
@@ -49,7 +49,7 @@ struct macroblock {
MACROBLOCKD
e_mbd
;
int
skip_block
;
int
select_tx
fm
_size
;
int
select_tx_size
;
int
skip_recode
;
int
skip_optimize
;
int
q_index
;
...
...
vp9/encoder/vp9_encodeframe.c
View file @
f80a346e
...
...
@@ -2397,15 +2397,15 @@ static int check_dual_ref_flags(VP9_COMP *cpi) {
}
}
static
void
reset_skip_tx
fm
_size
(
VP9_COMMON
*
cm
,
TX_SIZE
txfm_max
)
{
static
void
reset_skip_tx_size
(
VP9_COMMON
*
cm
,
TX_SIZE
max_tx_size
)
{
int
mi_row
,
mi_col
;
const
int
mis
=
cm
->
mi_stride
;
MODE_INFO
**
mi_ptr
=
cm
->
mi_grid_visible
;
for
(
mi_row
=
0
;
mi_row
<
cm
->
mi_rows
;
++
mi_row
,
mi_ptr
+=
mis
)
{
for
(
mi_col
=
0
;
mi_col
<
cm
->
mi_cols
;
++
mi_col
)
{
if
(
mi_ptr
[
mi_col
]
->
mbmi
.
tx_size
>
txfm_max
)
mi_ptr
[
mi_col
]
->
mbmi
.
tx_size
=
txfm_max
;
if
(
mi_ptr
[
mi_col
]
->
mbmi
.
tx_size
>
max_tx_size
)
mi_ptr
[
mi_col
]
->
mbmi
.
tx_size
=
max_tx_size
;
}
}
}
...
...
@@ -3255,16 +3255,16 @@ void vp9_encode_frame(VP9_COMP *cpi) {
if
(
count4x4
==
0
&&
count16x16_lp
==
0
&&
count16x16_16x16p
==
0
&&
count32x32
==
0
)
{
cm
->
tx_mode
=
ALLOW_8X8
;
reset_skip_tx
fm
_size
(
cm
,
TX_8X8
);
reset_skip_tx_size
(
cm
,
TX_8X8
);
}
else
if
(
count8x8_8x8p
==
0
&&
count16x16_16x16p
==
0
&&
count8x8_lp
==
0
&&
count16x16_lp
==
0
&&
count32x32
==
0
)
{
cm
->
tx_mode
=
ONLY_4X4
;
reset_skip_tx
fm
_size
(
cm
,
TX_4X4
);
reset_skip_tx_size
(
cm
,
TX_4X4
);
}
else
if
(
count8x8_lp
==
0
&&
count16x16_lp
==
0
&&
count4x4
==
0
)
{
cm
->
tx_mode
=
ALLOW_32X32
;
}
else
if
(
count32x32
==
0
&&
count8x8_lp
==
0
&&
count4x4
==
0
)
{
cm
->
tx_mode
=
ALLOW_16X16
;
reset_skip_tx
fm
_size
(
cm
,
TX_16X16
);
reset_skip_tx_size
(
cm
,
TX_16X16
);
}
}
}
else
{
...
...
@@ -3325,7 +3325,7 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
const
int
mi_width
=
num_8x8_blocks_wide_lookup
[
bsize
];
const
int
mi_height
=
num_8x8_blocks_high_lookup
[
bsize
];
x
->
skip_recode
=
!
x
->
select_tx
fm
_size
&&
mbmi
->
sb_type
>=
BLOCK_8X8
&&
x
->
skip_recode
=
!
x
->
select_tx_size
&&
mbmi
->
sb_type
>=
BLOCK_8X8
&&
cpi
->
oxcf
.
aq_mode
!=
COMPLEXITY_AQ
&&
cpi
->
oxcf
.
aq_mode
!=
CYCLIC_REFRESH_AQ
&&
cpi
->
sf
.
allow_skip_recode
;
...
...
vp9/encoder/vp9_rdopt.c
View file @
f80a346e
...
...
@@ -311,8 +311,8 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) {
x
->
errorperbit
=
rd
->
RDMULT
/
RD_MULT_EPB_RATIO
;
x
->
errorperbit
+=
(
x
->
errorperbit
==
0
);
x
->
select_tx
fm
_size
=
(
cpi
->
sf
.
tx_size_search_method
==
USE_LARGESTALL
&&
cm
->
frame_type
!=
KEY_FRAME
)
?
0
:
1
;
x
->
select_tx_size
=
(
cpi
->
sf
.
tx_size_search_method
==
USE_LARGESTALL
&&
cm
->
frame_type
!=
KEY_FRAME
)
?
0
:
1
;
set_block_thresholds
(
cm
,
rd
);
...
...
@@ -796,11 +796,11 @@ static void txfm_rd_in_plane(MACROBLOCK *x,
}
}
static
void
choose_largest_tx
fm
_size
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
*
rate
,
int64_t
*
distortion
,
int
*
skip
,
int64_t
*
sse
,
int64_t
ref_best_rd
,
BLOCK_SIZE
bs
)
{
static
void
choose_largest_tx_size
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
*
rate
,
int64_t
*
distortion
,
int
*
skip
,
int64_t
*
sse
,
int64_t
ref_best_rd
,
BLOCK_SIZE
bs
)
{
const
TX_SIZE
max_tx_size
=
max_txsize_lookup
[
bs
];
VP9_COMMON
*
const
cm
=
&
cpi
->
common
;
const
TX_SIZE
largest_tx_size
=
tx_mode_to_biggest_tx_size
[
cm
->
tx_mode
];
...
...
@@ -815,12 +815,12 @@ static void choose_largest_txfm_size(VP9_COMP *cpi, MACROBLOCK *x,
cpi
->
tx_stepdown_count
[
0
]
++
;
}
static
void
choose_tx
fm
_size_from_rd
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
(
*
r
)[
2
],
int
*
rate
,
int64_t
*
d
,
int64_t
*
distortion
,
int
*
s
,
int
*
skip
,
int64_t
tx_cache
[
TX_MODES
],
BLOCK_SIZE
bs
)
{
static
void
choose_tx_size_from_rd
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
(
*
r
)[
2
],
int
*
rate
,
int64_t
*
d
,
int64_t
*
distortion
,
int
*
s
,
int
*
skip
,
int64_t
tx_cache
[
TX_MODES
],
BLOCK_SIZE
bs
)
{
const
TX_SIZE
max_tx_size
=
max_txsize_lookup
[
bs
];
VP9_COMMON
*
const
cm
=
&
cpi
->
common
;
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
...
...
@@ -898,12 +898,12 @@ static int64_t scaled_rd_cost(int rdmult, int rddiv,
return
(
int64_t
)
(
RDCOST
(
rdmult
,
rddiv
,
rate
,
dist
)
*
scale
);
}
static
void
choose_tx
fm
_size_from_modelrd
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
(
*
r
)[
2
],
int
*
rate
,
int64_t
*
d
,
int64_t
*
distortion
,
int
*
s
,
int
*
skip
,
int64_t
*
sse
,
int64_t
ref_best_rd
,
BLOCK_SIZE
bs
)
{
static
void
choose_tx_size_from_modelrd
(
VP9_COMP
*
cpi
,
MACROBLOCK
*
x
,
int
(
*
r
)[
2
],
int
*
rate
,
int64_t
*
d
,
int64_t
*
distortion
,
int
*
s
,
int
*
skip
,
int64_t
*
sse
,
int64_t
ref_best_rd
,
BLOCK_SIZE
bs
)
{
const
TX_SIZE
max_tx_size
=
max_txsize_lookup
[
bs
];
VP9_COMMON
*
const
cm
=
&
cpi
->
common
;
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
...
...
@@ -987,8 +987,8 @@ static void inter_super_block_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate,
if
(
cpi
->
sf
.
tx_size_search_method
==
USE_LARGESTALL
||
xd
->
lossless
)
{
vpx_memset
(
txfm_cache
,
0
,
TX_MODES
*
sizeof
(
int64_t
));
choose_largest_tx
fm
_size
(
cpi
,
x
,
rate
,
distortion
,
skip
,
sse
,
ref_best_rd
,
bs
);
choose_largest_tx_size
(
cpi
,
x
,
rate
,
distortion
,
skip
,
sse
,
ref_best_rd
,
bs
);
if
(
psse
)
*
psse
=
sse
[
mbmi
->
tx_size
];
return
;
...
...
@@ -998,8 +998,8 @@ static void inter_super_block_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate,
txfm_rd_in_plane
(
x
,
&
r
[
tx_size
][
0
],
&
d
[
tx_size
],
&
s
[
tx_size
],
&
sse
[
tx_size
],
ref_best_rd
,
0
,
bs
,
tx_size
,
cpi
->
sf
.
use_fast_coef_costing
);
choose_tx
fm
_size_from_rd
(
cpi
,
x
,
r
,
rate
,
d
,
distortion
,
s
,
skip
,
txfm_cache
,
bs
);
choose_tx_size_from_rd
(
cpi
,
x
,
r
,
rate
,
d
,
distortion
,
s
,
skip
,
txfm_cache
,
bs
);
if
(
psse
)
*
psse
=
sse
[
mbmi
->
tx_size
];
...
...
@@ -1017,8 +1017,8 @@ static void intra_super_block_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate,
assert
(
bs
==
mbmi
->
sb_type
);
if
(
cpi
->
sf
.
tx_size_search_method
!=
USE_FULL_RD
||
xd
->
lossless
)
{
vpx_memset
(
txfm_cache
,
0
,
TX_MODES
*
sizeof
(
int64_t
));
choose_largest_tx
fm
_size
(
cpi
,
x
,
rate
,
distortion
,
skip
,
sse
,
ref_best_rd
,
bs
);
choose_largest_tx_size
(
cpi
,
x
,
rate
,
distortion
,
skip
,
sse
,
ref_best_rd
,
bs
);
}
else
{
int
r
[
TX_SIZES
][
2
],
s
[
TX_SIZES
];
int64_t
d
[
TX_SIZES
];
...
...
@@ -1028,8 +1028,8 @@ static void intra_super_block_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate,
&
s
[
tx_size
],
&
sse
[
tx_size
],
ref_best_rd
,
0
,
bs
,
tx_size
,
cpi
->
sf
.
use_fast_coef_costing
);
choose_tx
fm
_size_from_rd
(
cpi
,
x
,
r
,
rate
,
d
,
distortion
,
s
,
skip
,
txfm_cache
,
bs
);
choose_tx_size_from_rd
(
cpi
,
x
,
r
,
rate
,
d
,
distortion
,
s
,
skip
,
txfm_cache
,
bs
);
}
if
(
psse
)
*
psse
=
sse
[
mbmi
->
tx_size
];
...
...
@@ -1330,7 +1330,7 @@ static void super_block_uvrd(const VP9_COMP *cpi, MACROBLOCK *x,
int64_t
ref_best_rd
)
{
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
MB_MODE_INFO
*
const
mbmi
=
&
xd
->
mi
[
0
]
->
mbmi
;
TX_SIZE
uv_tx
fm
_size
=
get_uv_tx_size
(
mbmi
);
const
TX_SIZE
uv_tx_size
=
get_uv_tx_size
(
mbmi
);
int
plane
;
int
pnrate
=
0
,
pnskip
=
1
;
int64_t
pndist
=
0
,
pnsse
=
0
;
...
...
@@ -1351,7 +1351,7 @@ static void super_block_uvrd(const VP9_COMP *cpi, MACROBLOCK *x,
for
(
plane
=
1
;
plane
<
MAX_MB_PLANE
;
++
plane
)
{
txfm_rd_in_plane
(
x
,
&
pnrate
,
&
pndist
,
&
pnskip
,
&
pnsse
,
ref_best_rd
,
plane
,
bsize
,
uv_tx
fm
_size
,
ref_best_rd
,
plane
,
bsize
,
uv_tx_size
,
cpi
->
sf
.
use_fast_coef_costing
);
if
(
pnrate
==
INT_MAX
)
goto
term
;
...
...
@@ -1403,7 +1403,7 @@ static int64_t rd_pick_intra_sbuv_mode(VP9_COMP *cpi, MACROBLOCK *x,
*
rate_tokenonly
=
this_rate_tokenonly
;
*
distortion
=
this_distortion
;
*
skippable
=
s
;
if
(
!
x
->
select_tx
fm
_size
)
if
(
!
x
->
select_tx_size
)
swap_block_ptr
(
x
,
ctx
,
2
,
0
,
1
,
MAX_MB_PLANE
);
}
}
...
...
@@ -3441,7 +3441,7 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
best_rd
=
this_rd
;
best_mbmode
=
*
mbmi
;
best_skip2
=
this_skip2
;
if
(
!
x
->
select_tx
fm
_size
)
if
(
!
x
->
select_tx_size
)
swap_block_ptr
(
x
,
ctx
,
1
,
0
,
0
,
max_plane
);
vpx_memcpy
(
ctx
->
zcoeff_blk
,
x
->
zcoeff_blk
[
mbmi
->
tx_size
],
sizeof
(
uint8_t
)
*
ctx
->
num_4x4_blk
);
...
...
@@ -4071,7 +4071,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
RDCOST
(
x
->
rdmult
,
x
->
rddiv
,
rate_uv
,
distortion_uv
);
best_mbmode
=
*
mbmi
;
best_skip2
=
this_skip2
;
if
(
!
x
->
select_tx
fm
_size
)
if
(
!
x
->
select_tx_size
)
swap_block_ptr
(
x
,
ctx
,
1
,
0
,
0
,
max_plane
);
vpx_memcpy
(
ctx
->
zcoeff_blk
,
x
->
zcoeff_blk
[
TX_4X4
],
sizeof
(
uint8_t
)
*
ctx
->
num_4x4_blk
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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