* changes:
Use sdx8f in exhaustive_mesh_search_single_step
Sync the behavior of exhaustive_mesh_search
Refactor exhaustive_mesh_search_new
Simplify code in exhaustive_mesh_search_new
Reason for revert: Quality regression
(VP9/EndToEndTestLarge.EndtoEndPSNRTest/195 failed)
BUG=webm:1635
Original change's description:
> Set up frame contexts based on frame type
>
> In single layer ARF case, use different frame
> contexts for KF, ARF/GF, LF, OVERLAY update types.
>
> Change-Id: Iebb7f9bb430e483dea1e75fc122b9b67645ce804
Ravi Chaudhary [Fri, 24 May 2019 05:57:06 +0000 (11:27 +0530)]
Adjust the quality of boosted frames
As the boosted frames, early in key frame interval,
are used as reference by many subsequent boosted frames,
boosted frames that are closer to the reference key frame
should be allocated with more target bits than the rest.
Similarly, the active best quality should be lower for
boosted frames early in the key interval and vice versa.
Hence, the bits allocation and active best quality are varied
based on their temporal position in the key frame interval.
- 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.
fmemopen is not preferred during fuzzing.
Removed all file operations.
Removed need for allocating a different input buffer.
data buffer is appropriately incremented and passed directly to decoder
This will also test input being sent in an unaligned buffer to the library.
Removed read_frame function and did the required parsing inline.
Deepa K G [Tue, 9 Apr 2019 12:25:36 +0000 (17:55 +0530)]
Use previous ARF as GOLDEN frame for the next GOP
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.
81de00c Check there is only one settings per ContentCompression 5623013 Fixes a double free in ContentEncoding 93b2ba0 mkvparser: quiet static analysis warnings
sdeng [Thu, 6 Jun 2019 03:40:16 +0000 (20:40 -0700)]
Update performance test results for tune=SSIM
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
sdeng [Tue, 4 Jun 2019 20:54:18 +0000 (13:54 -0700)]
Fix a bug in best RD cost updating
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
Marco Paniconi [Tue, 4 Jun 2019 17:07:11 +0000 (10:07 -0700)]
vp9-rtc: Use speed 5 for postencode drop tests.
Test was running at speed 4, which is not used for real-time.
With this change all Datarate tests are now running at
(speed >= 5, 1 pass, real-time mode), which is what they
were intended for.
sdeng [Sat, 1 Jun 2019 00:25:09 +0000 (17:25 -0700)]
Hierarchical rdmult scaling when tune=ssim
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
Sai Deng [Mon, 3 Jun 2019 16:19:06 +0000 (16:19 +0000)]
Merge changes I7b1d1482,I01588758,I6f17864e
* 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()
sdeng [Fri, 31 May 2019 22:11:53 +0000 (15:11 -0700)]
Update rdcost using the rd_mult in current block
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
sdeng [Fri, 31 May 2019 20:10:08 +0000 (13:10 -0700)]
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.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
Johann [Tue, 21 May 2019 21:15:18 +0000 (14:15 -0700)]
remove unused svc exports
The spatial svc implementation has moved outside the library:
commit ed8f189cccda9168fd400d1ba6661b1bc14a3afa
Refactor: move svc example files to from vpx/ to examples/