Age | Commit message (Collapse) | Author |
|
The current libvpx encoder interface can potentially rollover an int64_t
value used to calculate the current timestamp. If the timebase was set
to microseconds and first timestamp was 0, then the rollover would
occur in about 10.675 days.
BUG=webm:701
Change-Id: I8d5aab46f8dcf250c1d4d43d5f3d27363c19cd54
|
|
|
|
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
|
|
Change-Id: Ia648a2221890dae5357ec8e64a8431fb0f77f2fc
|
|
|
|
|
|
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
|
|
|
|
Change-Id: I3d27286202e26ceecf4e551732b7d536d224d920
|
|
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
|
|
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
|
|
* 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()
|
|
|
|
with clang-7 this causes additional warnings in x86 intrinsics and
elsewhere. disabling for now to unblock new changes.
BUG=webm:1615
Change-Id: Ide9cacee5547ed432f980f6804e1414f32639121
|
|
|
|
|
|
added files that are affected by clang-format version 7.
BUG=b/120815481
Change-Id: I40662ce962e4f4b1fcdf183b700f85cc5c0f9f82
|
|
|
|
This reverts commit aa04b6f9a7475e9d9457dfc5bf441faf15efc466.
It caused big regression on webrtc VP8 tests.
Change-Id: I937e769d133abeca62ba063e59a58b5c461f5b5e
|
|
|
|
Stronger bias against variance below source than above.
Change-Id: Ied3992f4204e14433c6841d51c192118be954f0a
|
|
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
|
|
Adjust the extra bias applied for very low variance blocks to focus
mainly on DC_PRED.
Change-Id: I8f1c1a29932f319535807046846b604b5b8827c1
|
|
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
|
|
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
|
|
|
|
Change-Id: I49902a750758ba0ffe733be9b1efd0cdea44f936
|
|
Use the same thresholds as for 720p for now,
leads to better noise estimation on test clips.
Change-Id: I55e11346a747fe149f521315a38d75e28b3e774e
|
|
Disable part of a speed feature that blocks all intra modes
except DC_PRED when the source variance is low.
Change-Id: I2956951fd05933a39f7225d4dfe14e019410fee3
|
|
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
|
|
|
|
|
|
Change-Id: If146bbf24f446f71be9147402e6d30533eee99d1
|
|
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
|
|
BUG=webm:1609
Change-Id: I1aa18d58c20532f657059a2df3646fad1625e3ae
|
|
BUG=webm:1609
Change-Id: Ifc15d616e7cfb247b399def64ef7691589d90075
|
|
|
|
|
|
|
|
Change-Id: I84280de82053f9056bda9d813baa6165ca9bcd1e
|
|
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
|
|
Factor common mapping function from wiener variance to its log
form.
Change-Id: I25c955c8a3e25b9af1d65a0f0c3f695547c13453
|
|
|
|
Separate the k-means clustering stage and the segmentation parse
stage to save unnecessary steps in a common function.
Change-Id: I60083e1d970e744f9a64112f856892d450f86669
|
|
VP8 and VP9 have different padding on buffer stride.
VP8 microblock is 16x16 so the buffer stride needs to be divisible by
16. Thus UV buffer stride is divisible by 8.
VP9 microblock is 8x8 so the buffer stride is only extended to be
divisible by 8. Then UV buffer stride isn't divisible by 8.
Change-Id: I6fa953feb951f2fb2e48f72a623786b85e23822f
|
|
|
|
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
|
|
|
|
|
|
|