diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2015-09-25 20:32:14 -0400 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2015-09-25 20:32:14 -0400 |
commit | 8979e9e387f0308c7cf23929e510f147db652a43 (patch) | |
tree | 1461d5b2e8ddeff34e22c79dcfdf2b6e2a83a430 /vp10/encoder | |
parent | 034c28b0a415e6289f66157766a022f056bca2f1 (diff) | |
download | libvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar libvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar.gz libvpx-8979e9e387f0308c7cf23929e510f147db652a43.tar.bz2 libvpx-8979e9e387f0308c7cf23929e510f147db652a43.zip |
vp10: code reference_mode in uncompressed header.
See issue 1041 point 2.
Change-Id: I6fc6427b1a0edff828e39d43428e3271491f8ac5
Diffstat (limited to 'vp10/encoder')
-rw-r--r-- | vp10/encoder/bitstream.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/vp10/encoder/bitstream.c b/vp10/encoder/bitstream.c index da515990f..31ff9f7ab 100644 --- a/vp10/encoder/bitstream.c +++ b/vp10/encoder/bitstream.c @@ -1169,6 +1169,14 @@ static void write_uncompressed_header(VP10_COMP *cpi, cm->tx_mode = TX_4X4; else write_txfm_mode(cm->tx_mode, wb); + if (cpi->allow_comp_inter_inter) { + const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT; + const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE; + + vpx_wb_write_bit(wb, use_hybrid_pred); + if (!use_hybrid_pred) + vpx_wb_write_bit(wb, use_compound_pred); + } #endif write_tile_info(cm, wb); @@ -1208,8 +1216,9 @@ static size_t write_compressed_header(VP10_COMP *cpi, uint8_t *data) { counts->intra_inter[i]); if (cpi->allow_comp_inter_inter) { - const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE; const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT; +#if !CONFIG_MISC_FIXES + const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE; vpx_write_bit(&header_bc, use_compound_pred); if (use_compound_pred) { @@ -1219,6 +1228,12 @@ static size_t write_compressed_header(VP10_COMP *cpi, uint8_t *data) { vp10_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i], counts->comp_inter[i]); } +#else + if (use_hybrid_pred) + for (i = 0; i < COMP_INTER_CONTEXTS; i++) + vp10_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i], + counts->comp_inter[i]); +#endif } if (cm->reference_mode != COMPOUND_REFERENCE) { |