Commit d46c1f23 authored by Debargha Mukherjee's avatar Debargha Mukherjee
Browse files

Explicitly set tx_type for sub8x8 blocks

Fixes an issue where the tx_type was not set correctly for
sub8x8 inter and intra blocks. In the current syntax, for
sub8x8 blocks, there is still a single tx_type that is
transmitted. Ideally, this should be searched for the best
rd performance, albeit at the expense of encode speed.
For now, we just set it to DCT_DCT. Previously it was left
incorrectly as what was used for the previous non sub8x8
block.

derflr: BDRATE -0.277%

Change-Id: If76ba903bfbfd4d374cf1ac7d1daee50e92f0edd
parent afd73539
...@@ -1702,6 +1702,10 @@ static int64_t rd_pick_intra_sub_8x8_y_mode(VP10_COMP *cpi, MACROBLOCK *mb, ...@@ -1702,6 +1702,10 @@ static int64_t rd_pick_intra_sub_8x8_y_mode(VP10_COMP *cpi, MACROBLOCK *mb,
mic->mbmi.intra_filter = INTRA_FILTER_LINEAR; mic->mbmi.intra_filter = INTRA_FILTER_LINEAR;
#endif // CONFIG_EXT_INTRA #endif // CONFIG_EXT_INTRA
// TODO(any): Add search of the tx_type to improve rd performance at the
// expense of speed.
mic->mbmi.tx_type = DCT_DCT;
// Pick modes for each sub-block (of size 4x4, 4x8, or 8x4) in an 8x8 block. // Pick modes for each sub-block (of size 4x4, 4x8, or 8x4) in an 8x8 block.
for (idy = 0; idy < 2; idy += num_4x4_blocks_high) { for (idy = 0; idy < 2; idy += num_4x4_blocks_high) {
for (idx = 0; idx < 2; idx += num_4x4_blocks_wide) { for (idx = 0; idx < 2; idx += num_4x4_blocks_wide) {
...@@ -7365,6 +7369,10 @@ void vp10_rd_pick_inter_mode_sub8x8(struct VP10_COMP *cpi, ...@@ -7365,6 +7369,10 @@ void vp10_rd_pick_inter_mode_sub8x8(struct VP10_COMP *cpi,
for (i = 0; i < SWITCHABLE_FILTER_CONTEXTS; ++i) for (i = 0; i < SWITCHABLE_FILTER_CONTEXTS; ++i)
filter_cache[i] = INT64_MAX; filter_cache[i] = INT64_MAX;
// TODO(any): Add search of the tx_type to improve rd performance at the
// expense of speed.
mbmi->tx_type = DCT_DCT;
if (cm->interp_filter != BILINEAR) { if (cm->interp_filter != BILINEAR) {
tmp_best_filter = EIGHTTAP; tmp_best_filter = EIGHTTAP;
if (x->source_variance < sf->disable_filter_search_var_thresh) { if (x->source_variance < sf->disable_filter_search_var_thresh) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment