summaryrefslogtreecommitdiff
path: root/vp8/encoder/mbgraph.c
AgeCommit message (Collapse)Author
2012-02-03Reference frame prediction:Paul Wilkins
Extended prediction and coding of reference frame where a subset of options are flagged as available at the segment level. Updated copyright notices. Switch to SAD in mbgraph code as SATD problematic for the foreground and background separation as it can ignore large DC shifts. Change-Id: I661dbbb2f94f3ec0f96bb928c1655e5e415a7de1
2012-01-26Adds support for enhanced interpolation for subpel motionDeb Mukherjee
using an 8-tap filter. The results with 3 different 8-tap filters on the derf set are in: http://www.corp.google.com/~debargha/vp8_results/enhinterp.html The one that gives the most gain achieves an overall gain of about 0.6%. The results for a set of 12 hd (720p) videos are in: http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd.html with max gain of 0.55% with the same filter. The best filter apparently achieves the best trade-off between pass band ripple and stop band attenuation. Change-Id: I919e28ae245c0493147fa0864f8c9d048a9dd530
2012-01-18Possible divide by 0 error.Paul Wilkins
Put traps to prevent two possible divide by 0 errors. Change-Id: Ia415b945244253dcdd12f54f1f157f9ca8c94d6b
2012-01-17Rate control on static scenes plus Y2dc delta Q fix.Paul Wilkins
A problem can arise on static clips with force key frames where attempts to avoid popping lead to a progressive reduction in key frame Q that ultimately may lead to unexpected overspend against the rate target. The changes in this patch help to insure that in such clips the quality of the key frames across the clip is more uniform (rather than starting bad and getting better - especially at low target rates). This patch also includes a fix that removes a delta on the Y2DC when the baseline q index < 4 as this is no longer needed. There is also a fix to try and prevent repeat single step Q adjustment in the recode loop leading to lots of recodes, especially where the use of forced skips as part of segmentation has made the impact of Q on the number of bits generated much smaller. Patch 2: Amend "last_boosted_qindex" calculation for arf overlay frames. Change-Id: Ia1feeb79ed8ed014e4239994fcf5e58e68fd9459
2011-12-22Fix more warnings.Christian Duvivier
Change-Id: Ifadf65026a11bdb5d39840748613880bcfb364bb
2011-12-09Fix out of bounds read in update_mbgraph_frame_statsAdrian Grange
update_mbgraph_frame_stats used xd->mode_info_context before it had been setup, resulting in potentially random accesses of uninitialized memory. This fix allocates a local MODE_INFO structure to hold the data generated in the function. Change-Id: Ic9e75610008ce0e2d690e8e583c21582fee6fc45
2011-11-28mbgraph: fix invalid memory access if motion vectors are too big.Ronald S. Bultje
2011-10-24Segmentation Features;Paul Wilkins
Only encode sign bit for feature data that can have a sign. Tweaks to the test segmentation rules so that it now actually gives a net benefit on the derf set of about 0.4% though much higher on some clips at the low end. Change-Id: I8e61f1aebf41c9037db7e67e2f8975aa18a0c986
2011-10-24Further segment feature extensions.Paul Wilkins
This quite large check in includes the following: Merge in some code from Ronald (mbgraph.c) that scans a Gf/arf group. This is used as a basis for a simple segmentation for the normal frames in a gf/arf group. This code also uses satd functions from Yaowu. Adds functionality for coding the latest possible position of an EOB for blocks in the segment. (Currently 0-15 only, hence just for 4x4 dct). Where the EOB position is 0 this acts like "skip" and the normal coding of skip at the per mb level is disabled. Added functions (seg_common.c) for setting and reading segment feature elements. These may want to be optimized away at some point but while the mecahnism is in a state of flux they provide a single location for making changes and keep things a bit cleaner. This is still proof of concept code. Currently the tested feature set:- Quantizer, Loop Filter level, Reference frame, Prediction Mode, EOB end stop. TBD:- Add functions for setting and reading the feature data with range and validity checking. Handling of signed and unsigned feature data. At the moment all is assumed to be signed and a sign bit is coded but many cannot be negative. Correct handling of EOB feature with intra coded blocks. Testing/trapping of legal/illegal ref frame and mode combinations. Transform size switch plus merge and test with 8c8 DCT work Merge and test with Sumans Segmenation coding optimizations Change-Id: Iee12e83661c7abbd1e0ce6810915eb4ec35e2d8e