summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2019-04-09Adjust the probs in get_mv_mode_costAngie Chiang
midres's performance is improved by 0.08% hdres's performance is improved by 0.04% Change-Id: Id48f2b654d8ae1909fcb6d21eda8bfb69087a18a
2019-04-09Add build_inter_mode_cost()Angie Chiang
Change-Id: I4e5ed327e39cef1dd8c1a8f55fcbe90a5181814d
2019-04-09vp9-rtc: Fix to active_best for non-SVCMarco Paniconi
For 1 pass CBR non-SVC encoding, on golden refresh: condition lower/boosted active_best_quality setting only if gf_cbr_boost_pct is set. Reduces overshoot for hard clips. Neutral change on rtc metrics. Change-Id: I10f7e27767a3f80d63958a7e137155f7bc20504b
2019-04-09Merge "Film Mode: Bias based on sub block energy."Paul Wilkins
2019-04-09Merge "Film mode: Raise threshold for intra modes"Paul Wilkins
2019-04-08Film Mode: Bias based on sub block energy.Paul Wilkins
Apply a bias for film mode against intra coding (especially DC_PRED) and compound modes if the sub blocks of the current block have significantly different variance in the source. Change-Id: Iac1fc0510141be5c472a0ec57567bab3d2fc4164
2019-04-06Merge "Allow macroblock_plane to have its own rounding buffer"Jingning Han
2019-04-06Merge "vp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/"James Zern
2019-04-04Merge "vp9 svc: point ref to last when not used in KSVC."Jerome Jiang
2019-04-03Bypass skip check in tune for sharpness modeJingning Han
The sharpness mode is enabled for hvc visual quality. Bypass the skip block check that could potentially force all zero block in sharpness mode. This resolves the patchy blockiness issue raised in the 4K SDR HVC encode. Change-Id: I0538a1b774b80c6b0899c921e80edecd4a440d5c
2019-04-03vp8cx.h: s/VP8E_(SET_MAX_INTER_BITRATE_PCT)/VP9E_$1/James Zern
this was renamed in: 268f10669 Provide information on codec controls but the corresponding type checked control call was missed. Change-Id: I151cb42516b10e551b31273327de4ec1bac3c81b
2019-04-03vp9 svc: point ref to last when not used in KSVC.Jerome Jiang
Change-Id: Ia648a2221890dae5357ec8e64a8431fb0f77f2fc
2019-04-03Merge "Histogram-based noise estimation algorithm"Michael Horowitz
2019-04-03Merge "use 64bit integer for memory offset."Jerome Jiang
2019-04-03Histogram-based noise estimation algorithmMichael Horowitz
Histogram-based noise estimation algorithm leveraged that low-noise sequences tend to populate lower-valued histogram bins and high-noise sequences tend to populate higher-valued histogram bins in a predictable/repeatable manner. The algorithm compensates for histogram flattening and skewing toward zero as the scene darkens. Change-Id: Ia5acb611f0cc6d726280bd5ea5f45d42ff0dc2dd
2019-04-02Merge "vp9-rtc: Move noise estimation to after scene change detection"Marco Paniconi
2019-04-02use 64bit integer for memory offset.Jerome Jiang
Change-Id: I3d27286202e26ceecf4e551732b7d536d224d920
2019-04-02vp9-rtc: Move noise estimation to after scene change detectionMarco Paniconi
This allows to use result from scene chage detection to exclude the current frame from noise estimation analysis if the frame has scene/ big content change (i.e., high_source_sad flag is set). The behavior change for noise estimation may be small in practice, since in the current code, a scene change would have blocks excluded due to thresh_sum_diff, and the subsequent frames would also be mostly excluded due to (past) non-zero motion vectors (until the consec_zeromv > thresh_consec_zeromv is satisfied again). But its better to completely exclude current frame if its a scene change. Change-Id: Icd08bab7a8e1b994c7accced89697e0b2d7f50c5
2019-04-02vp9-rtc: Speed feature changes for speed 9.Marco Paniconi
Add threshold multipler for variance partitioning as speed feature, and increase it by 2x for speed >= 9 for resoln >= VGA. Also only allow simple_interpol filter when avg_low_motion is below threshold. Better tradeoff of speed/quality comparing to speed 8. Change-Id: I6bd29ad3cced470b32d04f60771120531112a5d9
2019-04-02Film mode: Raise threshold for intra modesPaul Wilkins
Substantially increase the threshold for applying variance adjustment in rd_variance_adjustment() for intra modes only, especially for DC_PRED. Change-Id: Idb3f0c5aca5ab58c9b79c3e993247719054d79c9
2019-04-02Merge changes Ied3992f4,I83ca669b,I8f1c1a29Paul Wilkins
* changes: Further Adjustments to film mode bias. Add GF group noise weighting in rd_variance_adjustment() Adjustment to low variance block bias in rd_variance_adjustment()
2019-04-02Merge "Change to thresholding in rd_variance_adjustment()"Paul Wilkins
2019-04-01Allow macroblock_plane to have its own rounding bufferJingning Han
Add 8 bytes buffer to macroblock_plane to support rounding factor. Change-Id: I3751689e4449c0caea28d3acf6cd17d7f39508ed
2019-04-01Merge "Use reconstructed variance in rd_variance_adjustment"Paul Wilkins
2019-03-29Merge "update .clang-format for version clang-7.0.1 update."James Zern
2019-03-29update .clang-format for version clang-7.0.1 update.Hien Ho
added files that are affected by clang-format version 7. BUG=b/120815481 Change-Id: I40662ce962e4f4b1fcdf183b700f85cc5c0f9f82
2019-03-28Merge "Revert "Wrap macro definition in do-while(0)""Jerome Jiang
2019-03-28Revert "Wrap macro definition in do-while(0)"Jerome Jiang
This reverts commit aa04b6f9a7475e9d9457dfc5bf441faf15efc466. It caused big regression on webrtc VP8 tests. Change-Id: I937e769d133abeca62ba063e59a58b5c461f5b5e
2019-03-28Further Adjustments to film mode bias.Paul Wilkins
Stronger bias against variance below source than above. Change-Id: Ied3992f4204e14433c6841d51c192118be954f0a
2019-03-28Add GF group noise weighting in rd_variance_adjustment()Paul Wilkins
For film mode add a weighting to the thresholds used in rd_variance_adjustment() based on noise measured in the first pass. Change-Id: I83ca669bb55aa52f1d34f03a2268b79fba890770
2019-03-28Adjustment to low variance block bias in rd_variance_adjustment()Paul Wilkins
Adjust the extra bias applied for very low variance blocks to focus mainly on DC_PRED. Change-Id: I8f1c1a29932f319535807046846b604b5b8827c1
2019-03-28Change to thresholding in rd_variance_adjustment()Paul Wilkins
Always test thresholds using a scaled block variance value. Source pixel variance no longer used so delete it as a parameter to the function Change-Id: I9e251edac6ebb15da98e40dcfa43333fe8b6ba55
2019-03-28Use reconstructed variance in rd_variance_adjustmentsdeng
to replace the variance from .dst which is the prediction buffer in inter mode. Only enable it in tune-content-film mode at the moment. Change-Id: I647b4a524a0849fda42541887ebc34091f152073
2019-03-28Merge "Allow more Intra choices in film mode."Paul Wilkins
2019-03-27vp9-rtc: Fix noise estimation thresh for 1080pMarco Paniconi
Use the same thresholds as for 720p for now, leads to better noise estimation on test clips. Change-Id: I55e11346a747fe149f521315a38d75e28b3e774e
2019-03-27Allow more Intra choices in film mode.Paul Wilkins
Disable part of a speed feature that blocks all intra modes except DC_PRED when the source variance is low. Change-Id: I2956951fd05933a39f7225d4dfe14e019410fee3
2019-03-26vp9-rtc: Disable cyclic refresh under some conditionsMarco Paniconi
cyclic refresh does not work for speeds <= 4, so disable it for this case. And dynamically disable it when average_qp is close to MAXQ (only for non-svc), to improve quality/rate control at very low bitrates. Change-Id: I447be43aef0fbb80f4a30d81e11658b58744eae5
2019-03-25Merge "Remove deprecated code for vp9_fdct8x8_quant()"Jingning Han
2019-03-25Merge "Unify the transform and quantization process"Jingning Han
2019-03-25Remove deprecated code for vp9_fdct8x8_quant()Jingning Han
Change-Id: If146bbf24f446f71be9147402e6d30533eee99d1
2019-03-25Unify the transform and quantization processJingning Han
Unify the transform and quantization process for 4x4 - 16x16 transform block sizes. This doesn't affect the encoding speed visibly. Remove it to reduce the maintenance load. Change-Id: Ifbf20bf8554ecf7970a6279a2b783b1c58fac6e4
2019-03-24Use high bd path to substract blocks in hbd build.Jerome Jiang
BUG=webm:1609 Change-Id: Ifc15d616e7cfb247b399def64ef7691589d90075
2019-03-22Merge "Use most common segment index for 64x64 level decision"Jingning Han
2019-03-22Merge "Add wiener variance log function"Jingning Han
2019-03-22Merge "Refactor Wiener variance based segmentation"Jingning Han
2019-03-21Use most common segment index for 64x64 level decisionJingning Han
Find the most common segment index among all 16x16 blocks in a 64x64 block and use that as the 64x64 block level decision. Change-Id: I67e85869d9fee0fc05450928f1eeaebe511cab6a
2019-03-21Add wiener variance log functionJingning Han
Factor common mapping function from wiener variance to its log form. Change-Id: I25c955c8a3e25b9af1d65a0f0c3f695547c13453
2019-03-21Refactor Wiener variance based segmentationJingning Han
Separate the k-means clustering stage and the segmentation parse stage to save unnecessary steps in a common function. Change-Id: I60083e1d970e744f9a64112f856892d450f86669
2019-03-21Merge "vp9: remove condition on high bitdepth using simple block yrd."Jerome Jiang
2019-03-21vp9-screen: Adjust speed features at speed 8Marco Paniconi
Keep loopfilter on, and use half-pel instead of full. This reduces big quality gap between the speed 8 and 7, but still keeps speed 8 about 30-40% faster than speed 7. Tested on screenshare clips with scroll and slide changes. Change-Id: Id63b44f59655f3e3dc1b49d89291d97e7323081a