- 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/
Deepa K G [Mon, 27 May 2019 12:32:00 +0000 (18:02 +0530)]
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.
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
Marco Paniconi [Tue, 14 May 2019 22:47:23 +0000 (15:47 -0700)]
vp8: Disallow copy flag behavior under forced refresh
Don't allow the setting of copy_buffer_to_arf when the
application/user sets the refresh/update flags. Add new flag
(ext_refresh_frame_flags_pending) to indicate user sets the flags.
Marco Paniconi [Fri, 17 May 2019 17:50:42 +0000 (10:50 -0700)]
vp9-rtc: Increase qp thresh for overshoot detection
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.
Ravi Chaudhary [Mon, 22 Apr 2019 13:25:12 +0000 (18:55 +0530)]
Increase active best quality linearly
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.
Deepa K G [Fri, 26 Apr 2019 10:09:13 +0000 (15:39 +0530)]
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.
Deepa K G [Tue, 14 May 2019 08:40:21 +0000 (14:10 +0530)]
Fix section intra rating for first ARF interval
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.