Age | Commit message (Collapse) | Author |
|
Fix to avoid color artifacts observed for speed >= 8.
In model_rd_large in non_rd pickmode: always do the
transform skipping test for UV plane.
BUG=b/136198713
Change-Id: Idd91322fb898fe731846d8581b21010096f87680
(cherry picked from commit c33c7ca85fa7b28658f3b086d579a7fbbcf41dea)
|
|
The functions are
diamond_search_sad_new()
vp9_full_pixel_diamond_new()
vp9_refining_search_sad_new()
Change-Id: Ied6fe98b8a1401c95f0488faf781c5cd5e8e0db6
|
|
The percentage of encoding time spent on diamond_search_sad_new
reduces from 8% to 6%
Change-Id: I1be55b957475d780974cc2e721f8c2d4d266e916
|
|
Change-Id: I2c7cd7363a1b61b7aa7c35fd9f4e6b926b67418f
|
|
Change-Id: Ia87ed60f46384e7bb7c5f55e9e28c406562a6f19
|
|
Change-Id: I925156ed45e13a06c449c2fbff8a3c26baf8d835
|
|
Change-Id: I8fdf1ad4790201b1624c8408d92983aeb0b08302
|
|
Change-Id: If645bf6a90f4bfb5a51ca0a78b88d1eb5bedbec2
|
|
|
|
|
|
Change-Id: I435d247ab4d1d160f12f5a3710e6cafb5cfd6610
|
|
This reduce non_greedy_mv encoding time by 8.9%
Use linear approximation for value >= 1024
BDRate increases slightly on hdres
lowres: -0.002
midres: 0.007
hdres: 0.057
Change-Id: I55fd5e0bf0ab2206a286e11974f701cc48084be8
|
|
|
|
|
|
This speed up non_greedy_mv by 8.7%
Change-Id: Ia46e3e7c4d32ec364091fad26cc953c62963e526
|
|
- Save the initial user-specified timestamp and rebase all further
timestamps by this value. This makes libvpx internal timestamps to
always start from zero, regardless of the user's timestamps.
- Calculate reduced timestamp conversion ratio and use it to convert
user's timestamps to libvpx internal timestamps and back. The effect
of this is that integer overflow due to multiplication doesn't
happen for a much longer time.
BUG=webm:701
Change-Id: Ic6f5eacd9a7c21b95707d31ee2da77dc8ac7dccf
|
|
|
|
This patch uses ARF itself as the GOLDEN frame for the
next gf group instead of replacing it with the overlay
frame. By doing so, bits consumed by the overlay frame
will be reduced.
Change-Id: I909ceaa6d501c267d315614075913d45ad426c15
|
|
I made a mistake (used the outdated baseline) in the CL I
submitted earlier this week:
https://chromium-review.googlesource.com/c/webm/libvpx/+/1638854
The corrected results are following:
The additional gains/loss on top of the tune=ssim are:
Data Set Overall PSNR SSIM MS-SSIM
Lowres 3.490 -3.164 -2.267
Midres 2.245 -2.270 -2.287
HDres 2.562 -1.804 -1.681
Lowres_10bd 3.477 -2.399 -2.689
Midres_10bd 3.467 -1.534 -1.636
The overall gains/loss comparing to tune=psnr are:
Data Set Overall PSNR SSIM MS-SSIM
Lowres 6.127 -5.818 -4.783
Midres 4.574 -5.383 -6.242
HDres 4.908 -6.218 -7.106
Lowres_10bd 6.115 -6.212 -7.790
Midres_10bd 6.238 -6.064 -7.249
Change-Id: Iae72482f7b30f200e5021a98c920eed841d0972a
|
|
This CL fixed a bug that sometimes we calculate the best rd cost using
uninitialized rd_div. This CL also includes a small refactoring of
rd_pick_partition().
Speed change: (the smaller the better)
Performance counter stats for './vpxenc park_joy_480p.y4m --limit=50
-o output.webm':
with this CL: 297,086,181,136 instructions:u
without this CL: 299,285,835,104 instructions:u
Quality change: (negative is better)
avg_psnr ovr_psnr ssim
(low_res) 0.007 0.005 -0.002
(mid_res) 0.022 0.028 0.007
(hd_res) -0.008 -0.003 -0.014
Change-Id: I8924d8426364304212bcef3aba13346783e6f1a8
|
|
|
|
Use different lagrangian multiplier scaling factor for different block
size. The blocks whose sizes are less than 16x16 share the same multiplier
of their parent block.
The additional gains/loss on top of the tune=ssim are:
Data Set Overall PSNR SSIM MS-SSIM
Lowres 2.918 -3.691 -2.596
Midres 1.708 -2.656 -2.624
HDres 1.619 -2.496 -2.391
Midres_10bd 1.518 -3.263 -3.561
The overall gains/loss comparing to tune=psnr are:
Data Set Overall PSNR SSIM MS-SSIM
Lowres 5.583 -6.208 -4.978
Midres 4.024 -5.610 -6.411
HDres 4.102 -6.614 -7.457
Midres_10bd 4.647 -7.181 -8.614
Change-Id: I0e6c5008488734e979b2dacde9fc2a17f3aa620f
|
|
|
|
Change-Id: I503e147e20e5b69b910c425d169e59821874f627
|
|
* changes:
Update rdcost using the rd_mult in current block
Use distortion and rate of best_rd as the params
Use distortion and rate recursively in rd_pick_partition()
|
|
This CL is a preparation for implementing hierarchical SSIM rdmult scaling.
There is very little impact on metrics and speed:
avg_psnr ovr_psnr ssim
midres 0.009 0.009 0.015
perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,722,808,461
before: 317,700,108,619
Change-Id: I7b1d1482ac69f7bc87065a93223a0274bcbe8ce3
|
|
Also added rd calculation for negative rates and distortions.
This CL is a preparation for implementing hierarchical SSIM rdmult scaling.
Little impact on quality and speed:
avg_psnr ovr_psnr ssim
(mid_res) -0.015 -0.009 -0.018
perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,700,108,619
before: 317,669,279,763
Change-Id: I01588758b7be2aab32236440ec0e57d7af56e920
|
|
|
|
This reduces vp9 only binary size by ~5.7%.
Change-Id: I57e46baf591d68b0a0cecbc9319a1190df8b0457
|
|
This CL is a preparation for implementing hierarchical SSIM rdmult scaling,
There is very little impact on metrics and speed:
avg_psnr ovr_psnr ssim
midres -0.04 0.005 0.012
perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,669,279,763
before: 317,717,562,045
Change-Id: I6f17864e7b17aad06a04ae4f470f75e975549db9
|
|
|
|
|
|
|
|
|
|
Keep the overshoot_detection_cbr_rt to the fast mode
(FAST_DETECTION_MAXQ), except for low-resoln at speed 5,
for non-screen content.
The increase in encode time (from using the more accurate
RE_ENCODE_MAXQ) is acceptable for speed 5 at low resoln.
Change-Id: I3089d1505553154ef046056465bc18130f7bd55a
|
|
- Fix the number of frames considered in calculation of
twopass active worst quality. For GF only group, frames
considered should be one less than baseline gf interval
accounting for the golden frame.
- Fix in calculation of normal_frames. As baseline gf
interval includes the golden frame, the number of
normal frames should be one less than baseline gf
interval.
Change-Id: Ic752f7d13d23772687e2fa407698766b3fdf5c67
|
|
|
|
This reverts commit c87ff4a09ddf50152918c127eebf11e3a6ef7b1e.
Reason for revert: causes division by zero
Original change's description:
> Fix calculations in GF only group case
>
> - Fix the number of frames considered in calculation of
> twopass active worst quality. For GF only group, frames
> considered should be one less than baseline gf interval
> accounting for the golden frame.
> - Fix in calculation of normal_frames. As baseline gf
> interval includes the golden frame, the number of
> normal frames should be one less than baseline gf
> interval.
>
> Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08
Change-Id: I522da652587ae7ca4177f6d4bb9f72abcff35637
|
|
|
|
|
|
Apply the minimum frame size clamp for all applicable frames. This
avoids bit-rate undershooting issue as reported in
BUG=b/133260125
Change-Id: I59ec028eee999ad5238602adf96465af7c4f4514
|
|
Based on the spatial complexity, increase the
bits allocated to key frame.
Change-Id: I4f96990a13bcc3bdb7a22d50e67e2bd622f1ff7b
|
|
For video mode (non-screen) in CBR real-time mode:
increase the qp thresh to trigger setting to active_worst
on scene changes. Avoid big overshoots in content with
scene changes.
Change-Id: I74721b07b0d7b742cbef468ece70cca7da0f89eb
|
|
The ARF frames in last few gf intervals, would be
used as a reference by fewer ARF frames in the same
kf interval. Also, the ARF frames in the last GF
group would not be used as a reference in future.
Hence the active best quality for these ARF frames
is increased based on their temporal distance from
the next key frame.
Change-Id: Ice7eaa8a25384104b1d9cc021eec588c03053fc2
|
|
- Fix the number of frames considered in calculation of
twopass active worst quality. For GF only group, frames
considered should be one less than baseline gf interval
accounting for the golden frame.
- Fix in calculation of normal_frames. As baseline gf
interval includes the golden frame, the number of
normal frames should be one less than baseline gf
interval.
Change-Id: I6c0cd0a39db23586fc390a6fba5d7aebc0dfce08
|
|
The section intra rating used for the frames in the
first ARF interval was based on entire key frame
interval. However, for subsequent ARF intervals it was
based on that ARF interval. This discrepancy is fixed.
Change-Id: I3df358861d720e536c9c6f15da1cbd78f2dfffbc
|
|
|
|
Disable in high bitdepth build.
This reverts commit 152358da777d45613b386be3a116719b8b16bd6d.
Change-Id: I9996d0963915ed4db0fde80c6290d91b3ce63719
|
|
|
|
|