]> granicus.if.org Git - libvpx/log
libvpx
5 years agoMerge "vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t."
James Zern [Thu, 19 Jul 2018 05:47:27 +0000 (05:47 +0000)]
Merge "vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t."

5 years agoMerge "shell tests: Drop incorrect uses of readonly."
Tom Finegan [Thu, 19 Jul 2018 00:07:21 +0000 (00:07 +0000)]
Merge "shell tests: Drop incorrect uses of readonly."

5 years agovp9: Screen-content after slide-change: increase refresh rate
Marco Paniconi [Wed, 18 Jul 2018 21:36:17 +0000 (14:36 -0700)]
vp9: Screen-content after slide-change: increase refresh rate

For screen-content real-time CBR mode: on a detected slide change
that is encoded at max Q (to prevent excessive overshoot), increase
the perc_refresh in the cyclic refresh following the slide change.
Use counter to increase refresh up to some #frames from slide change.

This is attempt to increase quality ramp-up after slide change without
causing too much excess overshoot.

Change-Id: Ie4ec4361082803a522f4a8794b3bb0178c9cf307

5 years agoReland "Enable tpl model for speed 0"
Jingning Han [Thu, 12 Jul 2018 16:02:01 +0000 (09:02 -0700)]
Reland "Enable tpl model for speed 0"

This is a reland of 9c2c234a0b8f9c08719ac1fa286988a0a3626fd0

Threaded mismatch has been addressed.

Original change's description:
> Enable tpl model for speed 0
>
> Enable adaptive Lagrangian multiplier for arf in speed 0, AQ mode 0,
> and low bit-depth settings. This improves the peak compression
> performance:
>
>           avg PSNR       overall PSNR       SSIM
> low       -0.462%         -0.535%          -0.358%
> mid       -0.780%         -0.857%          -0.868%
> hd        -0.914%         -1.017%          -0.471%
> 720p      -0.624%         -0.671%          -1.553%
> nflx2k    -0.764%         -0.784%          -0.908%
>
> The encoding time at speed 0 is slightly changed to be faster or
> slower:
>
> city_cif 1000 kbps
> 78.2 seconds -> 78.1 seconds
>
> bus_cif 1000 kbps
> 98.6 seconds -> 98.8 seconds.
>
> Change-Id: I18e7337bb61d985cbd3cf29e56439a6cdf675389

BUG=webm:1547

Change-Id: I025a21683ceed23d5f7147e200555b58b791315c

5 years agoMerge "Fix 32-bit build for tpl model"
Jingning Han [Tue, 17 Jul 2018 18:10:28 +0000 (18:10 +0000)]
Merge "Fix 32-bit build for tpl model"

5 years agoFix 32-bit build for tpl model
Jingning Han [Tue, 17 Jul 2018 03:44:16 +0000 (20:44 -0700)]
Fix 32-bit build for tpl model

Clear system state to avoid encoding failure in 32-bit build.

BUG=webm:1547

Change-Id: Ia74c789d1993da09bc400baf24e971e19752e3c3

5 years agoMerge "vp9: Force hybrid_intra on scene change"
Marco Paniconi [Tue, 17 Jul 2018 04:04:08 +0000 (04:04 +0000)]
Merge "vp9: Force hybrid_intra on scene change"

5 years agovpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
Raphael Kubo da Costa [Fri, 13 Jul 2018 12:29:09 +0000 (14:29 +0200)]
vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.

This fixes the build with at least GCC 7.3, where it was previously failing
with:

sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
sum_squares_neon.c: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
     s2 = vpaddl_u32(s1);
     ^~
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vpaddl_u32(s1);
        ^
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
        ^
sum_squares_neon.c: incompatible type for argument 1 of 'vget_lane_u64'
   return vget_lane_u64(s2, 0);
                        ^~

The generated assembly was verified to remain identical with both GCC and
LLVM.

Bug: chromium:819249
Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac

5 years agoMerge changes Iee11abf6,I8acbc718,Ia9a84311
Jingning Han [Tue, 17 Jul 2018 03:49:47 +0000 (03:49 +0000)]
Merge changes Iee11abf6,I8acbc718,Ia9a84311

* changes:
  Account for quantization effect in the tpl model
  Assign estimate qp for overlay frame
  Use the estimate qp to set motion search control

5 years agovp9: Force hybrid_intra on scene change
Marco Paniconi [Thu, 12 Jul 2018 02:38:44 +0000 (19:38 -0700)]
vp9: Force hybrid_intra on scene change

For real-time screen content mode: when scene/slide change
is detected and re-encode is decided, force hybrid_intra
mode search if slide change is big and alot of Intra modes
were used. hybrid_intra mode will use rd-based intra mode
search for small blocks.

Overall better PSNR on clip with slide changes, with similar
encoded frame size. Encode time lightly higher on average with
this change.

Change-Id: I503835253b777b9f98d74e75a52a8000b76c310c

5 years agoAccount for quantization effect in the tpl model
Jingning Han [Sun, 15 Jul 2018 21:20:47 +0000 (14:20 -0700)]
Account for quantization effect in the tpl model

Account for the likely quantization effect in the temporal
dependency model.

Change-Id: Iee11abf651353098494e57cccf0ac26ce7535924

5 years agoAssign estimate qp for overlay frame
Jingning Han [Mon, 16 Jul 2018 21:31:51 +0000 (14:31 -0700)]
Assign estimate qp for overlay frame

Assign the estimated qp for the overlay frame too. Cap the minimum
quantization parameter to be 1 to avoid lossless coding in the
temporal dependency model setup.

Change-Id: I8acbc7182045dbf3017b6712a119b18407b76ab0

5 years agoRevert "Enable tpl model for speed 0"
Johann [Mon, 16 Jul 2018 19:25:15 +0000 (12:25 -0700)]
Revert "Enable tpl model for speed 0"

This reverts commit 9c2c234a0b8f9c08719ac1fa286988a0a3626fd0.

Causes multithreading test failures in 32 bit configurations.

BUG=webm:1547

Change-Id: Idb480b206a87b7cd6affbafffde8d8e1b6aee621

5 years agoMerge "Delete invalid assert."
Paul Wilkins [Mon, 16 Jul 2018 16:49:20 +0000 (16:49 +0000)]
Merge "Delete invalid assert."

5 years agoUse the estimate qp to set motion search control
Jingning Han [Fri, 13 Jul 2018 23:24:12 +0000 (16:24 -0700)]
Use the estimate qp to set motion search control

Set the multiplier for motion estimation using the estimate frame
quantization paramter in the temporal dependency model.

Change-Id: Ia9a843111c1504d7ae8b12113374831ee79c85b8

5 years agoSet the estimate frame qp in tpl_frame
Jingning Han [Fri, 13 Jul 2018 23:05:16 +0000 (16:05 -0700)]
Set the estimate frame qp in tpl_frame

Assign the estimate frame quantization parameter in the tpl_frame
data structure.

Change-Id: I6149bdb1e15dbdae348f06ff61bf814004462232

5 years agoEstimate the frame qp in a gop
Jingning Han [Fri, 13 Jul 2018 21:08:45 +0000 (14:08 -0700)]
Estimate the frame qp in a gop

Gather the availabel statistics to estimate the frame level
quantization parameter set in a group of pictures. This will be
called in the tpl model construction. No visible coding stats
change would occur.

Change-Id: Ic412e4afd9a60f1317a5f8eab6a4f6d5e48c4c07

5 years agoMerge "Enable tpl model for speed 0"
Jingning Han [Fri, 13 Jul 2018 18:59:25 +0000 (18:59 +0000)]
Merge "Enable tpl model for speed 0"

5 years agoMerge "Refactor rc_pick_q_and_bounds_two_pass parameters"
Jingning Han [Fri, 13 Jul 2018 16:10:12 +0000 (16:10 +0000)]
Merge "Refactor rc_pick_q_and_bounds_two_pass parameters"

5 years agovp9: Enforce intra search on scene_change
Marco Paniconi [Thu, 12 Jul 2018 22:28:36 +0000 (15:28 -0700)]
vp9: Enforce intra search on scene_change

For real-time non-rd pickmode: force check of
intra modes on INTER frames for scene changes.
Reduces artifacts on scene changes.

Change-Id: I5ae80869072db156791ace554c0a470f3785e9c6

5 years agoRefactor rc_pick_q_and_bounds_two_pass parameters
Jingning Han [Fri, 13 Jul 2018 04:40:40 +0000 (21:40 -0700)]
Refactor rc_pick_q_and_bounds_two_pass parameters

Send the gf_group index as argument into the function. This
prepares later re-use of this function in the tpl model.

Change-Id: Id6203105629e687172c651a013d38c207b60ace7

5 years agoMerge "Backport libaom bug fixes."
Wan-Teh Chang [Fri, 13 Jul 2018 01:40:35 +0000 (01:40 +0000)]
Merge "Backport libaom bug fixes."

5 years agoBackport libaom bug fixes.
Wan-Teh Chang [Thu, 12 Jul 2018 01:52:03 +0000 (18:52 -0700)]
Backport libaom bug fixes.

libaom commit 80a5b09337a80093e1e7ae5eb540020a22949805:
dec_free_mi: Reset cm->mi_alloc_size.

libaom commit fb0dd0bb80fc95ef016f1421b105a52fffa32816:
Clear cm->width and cm->height on alloc failure.

libaom commit ccb27264089a8cfa1334391ebbcb6a11b8dff442:
Misc. resize fixes along with the resize test
Note: only the change to enc_free_mi in av1/encoder/encoder.c
is merged.

Change-Id: I602813230d40125e59608fa013085dca3e160c33

5 years agoMerge "Use regular filter type for tpl model motion compensation"
Jingning Han [Thu, 12 Jul 2018 17:30:05 +0000 (17:30 +0000)]
Merge "Use regular filter type for tpl model motion compensation"

5 years agoMerge "Clean up mc_flow_dispenser()"
Jingning Han [Thu, 12 Jul 2018 17:29:54 +0000 (17:29 +0000)]
Merge "Clean up mc_flow_dispenser()"

5 years agoMerge "Add 32x32 Hadamard transform"
Jingning Han [Thu, 12 Jul 2018 17:29:43 +0000 (17:29 +0000)]
Merge "Add 32x32 Hadamard transform"

5 years agoMerge "Relax multiplier adjustment limit"
Jingning Han [Thu, 12 Jul 2018 17:00:23 +0000 (17:00 +0000)]
Merge "Relax multiplier adjustment limit"

5 years agoMerge "Change the tpl model operating block size to 32x32"
Jingning Han [Thu, 12 Jul 2018 17:00:07 +0000 (17:00 +0000)]
Merge "Change the tpl model operating block size to 32x32"

5 years agoEnable tpl model for speed 0
Jingning Han [Thu, 12 Jul 2018 16:02:01 +0000 (09:02 -0700)]
Enable tpl model for speed 0

Enable adaptive Lagrangian multiplier for arf in speed 0, AQ mode 0,
and low bit-depth settings. This improves the peak compression
performance:

          avg PSNR       overall PSNR       SSIM
low       -0.462%         -0.535%          -0.358%
mid       -0.780%         -0.857%          -0.868%
hd        -0.914%         -1.017%          -0.471%
720p      -0.624%         -0.671%          -1.553%
nflx2k    -0.764%         -0.784%          -0.908%

The encoding time at speed 0 is slightly changed to be faster or
slower:

city_cif 1000 kbps
78.2 seconds -> 78.1 seconds

bus_cif 1000 kbps
98.6 seconds -> 98.8 seconds.

Change-Id: I18e7337bb61d985cbd3cf29e56439a6cdf675389

5 years agoUse regular filter type for tpl model motion compensation
Jingning Han [Thu, 12 Jul 2018 15:50:31 +0000 (08:50 -0700)]
Use regular filter type for tpl model motion compensation

This slightly improves the compression performance by 0.05%.

Change-Id: Ice0b1f5e1f24a77008b093f7830e51fcd6cbfa8e

5 years agoMerge changes Ibcc2f6fa,Id54818a8
James Zern [Wed, 11 Jul 2018 22:24:46 +0000 (22:24 +0000)]
Merge changes Ibcc2f6fa,Id54818a8

* changes:
  test-data.sha1: update crbug-1539.rawfile
  test-data.mk: add missing crbug-1539.rawfile entry

5 years agoMerge "vp9 svc: Add test for intra-only for 1 SL."
Jerome Jiang [Wed, 11 Jul 2018 19:54:03 +0000 (19:54 +0000)]
Merge "vp9 svc: Add test for intra-only for 1 SL."

5 years agoMerge "decode_test_driver: break decompress loop on error"
James Zern [Wed, 11 Jul 2018 19:53:52 +0000 (19:53 +0000)]
Merge "decode_test_driver: break decompress loop on error"

5 years agotest-data.sha1: update crbug-1539.rawfile
James Zern [Wed, 11 Jul 2018 19:44:27 +0000 (12:44 -0700)]
test-data.sha1: update crbug-1539.rawfile

Use a valid frame rather than the one from the bug to avoid dealing with
trailing data. The decode would fail on x86 due to read size differences
in the entropy decoder.
The updated file was created from the first frame in:
vp90-2-02-size-08x08.webm

BUG=webm:1539

Change-Id: Ibcc2f6fa435bcf360a40fc9a202a8baba42b24da

5 years agotest-data.mk: add missing crbug-1539.rawfile entry
James Zern [Wed, 11 Jul 2018 18:07:49 +0000 (11:07 -0700)]
test-data.mk: add missing crbug-1539.rawfile entry

missed in:
d95d82b15 vpxdec,raw_read_frame: fix eof return

BUG=webm:1539

Change-Id: Id54818a838c0215457c3eb82f83bd4f3a791199b

5 years agovp9 svc: Add test for intra-only for 1 SL.
Jerome Jiang [Mon, 9 Jul 2018 20:46:36 +0000 (13:46 -0700)]
vp9 svc: Add test for intra-only for 1 SL.

In this case, verify that a key frame is inserted.

Change-Id: I70aa1974de956e657e413a34fd8bbcddf5d20c2c

5 years agoshell tests: Drop incorrect uses of readonly.
Tom Finegan [Tue, 10 Jul 2018 18:38:15 +0000 (11:38 -0700)]
shell tests: Drop incorrect uses of readonly.

Change-Id: I0a01e1a7c04bbc026a1db0ba90d516548a1eaaed

5 years agoClean up mc_flow_dispenser()
Jingning Han [Wed, 11 Jul 2018 16:35:27 +0000 (09:35 -0700)]
Clean up mc_flow_dispenser()

Remove unneeded statements.

Change-Id: Ic7a3079eb36e1ec6988390958565e13d5965b30d

5 years agoAdd 32x32 Hadamard transform
Jingning Han [Mon, 9 Jul 2018 18:07:52 +0000 (11:07 -0700)]
Add 32x32 Hadamard transform

Add 32x32 Hadamard transform in C implementation. Replace the
forward 32x32 2D-DCT in tpl model with Hadamard transform. This
would reduce the overhead encoding time due to running tpl model
by ~3x.

Change-Id: I1c743dab786b818d89f14928cc3998d056830aa9

5 years agoRelax multiplier adjustment limit
Jingning Han [Tue, 10 Jul 2018 22:29:28 +0000 (15:29 -0700)]
Relax multiplier adjustment limit

Relax the Lagrangian multiplier adjustment limit from 1/4 to 1/2
fluctuation. This allows the temporal dependency model takes more
effect on changing the rate allocation across blocks.

Change-Id: Ida59ad628d35f196a1299d96e21bb684c20b0143

5 years agoChange the tpl model operating block size to 32x32
Jingning Han [Fri, 6 Jul 2018 21:51:32 +0000 (14:51 -0700)]
Change the tpl model operating block size to 32x32

Increase the temporal dependency model operating block size from
8x8 to 32x32.

Change-Id: I26b13493fe957d67c8646575370e651584b56ea5

5 years agodecode_test_driver: break decompress loop on error
James Zern [Wed, 11 Jul 2018 03:52:22 +0000 (20:52 -0700)]
decode_test_driver: break decompress loop on error

avoids duplicate errors should DecompressedFrameHook fail and a
potential end-less loop should dec_iter fail to advance.

Change-Id: Ifb2673d02188a8aad75cda8bb960bb56fe70d218

5 years agoFix the denominator in tpl model
Jingning Han [Tue, 10 Jul 2018 21:40:56 +0000 (14:40 -0700)]
Fix the denominator in tpl model

The factor mc_dep_cost includes intra_cost additiona already. Hence
no need to add it again in the denominator.

Change-Id: I750ae86e1d3019b4a3aebd03dec8db362589619e

5 years agoEnable tpl model only for ARFs
Jingning Han [Tue, 10 Jul 2018 21:36:02 +0000 (14:36 -0700)]
Enable tpl model only for ARFs

Currently only enable the temporal model for ARFs.

Change-Id: I6e7fd7bba54c3e0cf56147f049fc3ead85542d04

5 years agoProperly set the is_valid flag in tpl_frame
Jingning Han [Tue, 10 Jul 2018 21:25:03 +0000 (14:25 -0700)]
Properly set the is_valid flag in tpl_frame

Use this flag to indicate the temporal dependency model for the
given frame is properly set up.

Use the pointer address to decide if the tpl_stats_ptr array needs
to be released.

Change-Id: I541fe098f51981010011ae0af2535d8a5762d254

5 years agoMerge "vp9_encoder: only alloc tpl stats if enabled"
James Zern [Tue, 10 Jul 2018 21:49:02 +0000 (21:49 +0000)]
Merge "vp9_encoder: only alloc tpl stats if enabled"

5 years agoMerge "vp9: Initialize source variance in nonrd-pickmode."
Marco Paniconi [Tue, 10 Jul 2018 18:12:46 +0000 (18:12 +0000)]
Merge "vp9: Initialize source variance in nonrd-pickmode."

5 years agoMerge "vpxdec,raw_read_frame: fix eof return"
James Zern [Tue, 10 Jul 2018 17:56:32 +0000 (17:56 +0000)]
Merge "vpxdec,raw_read_frame: fix eof return"

5 years agovp9: Initialize source variance in nonrd-pickmode.
Marco Paniconi [Tue, 10 Jul 2018 17:02:21 +0000 (10:02 -0700)]
vp9: Initialize source variance in nonrd-pickmode.

It is already initialized at superblock level, but since
it is computed per coding block, based on some speed features,
better to initialize it in pick_inter.

No change in behavior, as currently the speed features
that enable use of source_variance in pick_inter are fixed
at the frame-level.

Change-Id: Ic787ac2f389ba1bced98716096e7b5cffba856a7

6 years agovp9_encoder: only alloc tpl stats if enabled
James Zern [Tue, 10 Jul 2018 05:56:54 +0000 (22:56 -0700)]
vp9_encoder: only alloc tpl stats if enabled

defer the allocation to post speed feature setup

Change-Id: I20713a2b1856fd5479c883d50772a2b54bcbb3bc

6 years agovpxdec,raw_read_frame: fix eof return
James Zern [Sat, 23 Jun 2018 19:29:31 +0000 (12:29 -0700)]
vpxdec,raw_read_frame: fix eof return

fixes an endless loop caused by successful read return on eof.

since:
00a35aab7 vpx[dec|enc]: Extract IVF support from the apps.

BUG=webm:1539

Change-Id: I64dbb94189ea6a745d53a4bacc033f5f58eafb37

6 years agoMerge "[VSX] Add support to Power9-only vec_absd"
Luca Barbato [Mon, 9 Jul 2018 20:13:44 +0000 (20:13 +0000)]
Merge "[VSX] Add support to Power9-only vec_absd"

6 years agovp9-svc: Intra-only frame for spatial layers.
Marco Paniconi [Wed, 11 Apr 2018 17:59:34 +0000 (10:59 -0700)]
vp9-svc: Intra-only frame for spatial layers.

Use case is for layered (SVC) coding to allow higher
resolution layers to continue decoding with temporal references,
while base spatial layer is intra-only frame.

Made encoder changes to real-time path for encoding intra-only
frame. The intra-only frame will be followed by the overlay/copy
frame (with both packed in the same superframe).

Use existing control to enable intra_only frame.
Intra only is only applied to base spatial layer, and only
allowed under fixed/non-flexible SVC mode, and only for
1 < number_spatial_layers < 4.

Added svc datarate unittest for inserting intra_only frame
as sync frame. Added svc end to end tests to check mismatch.

Change-Id: I2f4f0106b2c4f51ce77aa2c1c6823ba83ff2f7a0
Signed-off-by: Marco Paniconi <marpan@google.com>
6 years agoDelete invalid assert.
Paul Wilkins [Fri, 6 Jul 2018 16:02:26 +0000 (17:02 +0100)]
Delete invalid assert.

Delete assert that is not valid in all cases.

This can occur if the last group in a clip is a GF only
group. Here the frame count reflects the nominal
positioning of the "next" GF (were it to exist) one
frame beyond the of the end of the clip.

Change-Id: I0d36b83de0ab478dab032599ee7df7fff4a35cd5

6 years ago[VSX] Add support to Power9-only vec_absd
Luca Barbato [Sun, 8 Jul 2018 14:03:41 +0000 (16:03 +0200)]
[VSX] Add support to Power9-only vec_absd

~5% gain for SAD.

Change-Id: Ief7d7691f837474f5b6b582129628276fdcce319

6 years agoMerge "Add hierarchical structure based ref frame update"
Zoe Liu [Fri, 6 Jul 2018 21:47:28 +0000 (21:47 +0000)]
Merge "Add hierarchical structure based ref frame update"

6 years agovp9-svc: add more command line options to test app.
Sergey Silkin [Thu, 28 Jun 2018 09:00:00 +0000 (11:00 +0200)]
vp9-svc: add more command line options to test app.

This adds the following command line options to
vp9_spatial_svc_encoder test app:
--drop-frame=<arg>        Temporal resampling threshold (buf %)
--tune-content=<arg>      Tune content type default, screen, film
--inter-layer-pred=<arg>  0 - 3: On, Off, Key-frames, Constrained

Change-Id: I653d1924fb6e525edb2d1e84739be0b88e773e1c

6 years agoMerge "vp9-svc: fix strings concatenation in test app."
Sergey Silkin [Wed, 4 Jul 2018 08:02:05 +0000 (08:02 +0000)]
Merge "vp9-svc: fix strings concatenation in test app."

6 years agoMerge "Add enable-tpl-model guard"
Jingning Han [Mon, 2 Jul 2018 23:57:25 +0000 (23:57 +0000)]
Merge "Add enable-tpl-model guard"

6 years agoAdd hierarchical structure based ref frame update
Zoe Liu [Sat, 23 Jun 2018 02:33:38 +0000 (19:33 -0700)]
Add hierarchical structure based ref frame update

Change-Id: I23559110bae8fa2328fe9bdb6672c7b1da84e17f

6 years agovp9: Adjust segment weight for cyclic refresh.
Marco Paniconi [Mon, 2 Jul 2018 19:55:29 +0000 (12:55 -0700)]
vp9: Adjust segment weight for cyclic refresh.

For screen-content: use the previous actual number of seg
blocks for the segment weight, used in the rate control
for setting frame-level Q.

Small overall increase in psnr on several screen-content clips.

Change-Id: Id414fb7f1b0ba578d464437d7f9c1783a0cad310

6 years agoAdd enable-tpl-model guard
Jingning Han [Mon, 2 Jul 2018 19:34:21 +0000 (12:34 -0700)]
Add enable-tpl-model guard

Skip operations that exercise the tpl model values if the model
is turned off.

Change-Id: I9ab3b56950f6b5a40ae4670a570885aaaadf8382

6 years agoMerge "Exploit the spatial variance in temporal dependency model"
Jingning Han [Mon, 2 Jul 2018 17:01:45 +0000 (17:01 +0000)]
Merge "Exploit the spatial variance in temporal dependency model"

6 years agovp9: Fix to screen content artifact for real-time.
Marco Paniconi [Mon, 2 Jul 2018 00:26:38 +0000 (17:26 -0700)]
vp9: Fix to screen content artifact for real-time.

Reset segment to base (segment#0) on spatially flat
stationary blocks (source_variance = 0). Also increase
dc_skip threshold for these blocks.

Reduces artifacts on flat areas in screen content mode.

Change-Id: I7ee0c80d37536db7896fa74a83f75799f1dcf73d

6 years agoMerge "vp9: copy source on sync frame in denoiser."
Jerome Jiang [Sat, 30 Jun 2018 02:09:29 +0000 (02:09 +0000)]
Merge "vp9: copy source on sync frame in denoiser."

6 years agoMerge "vp9: Reset params for cyclic refresh on slide change"
Marco Paniconi [Sat, 30 Jun 2018 02:02:35 +0000 (02:02 +0000)]
Merge "vp9: Reset params for cyclic refresh on slide change"

6 years agoMerge "vp9: Reduce quality artifact for real-time scene-content."
Marco Paniconi [Sat, 30 Jun 2018 00:04:39 +0000 (00:04 +0000)]
Merge "vp9: Reduce quality artifact for real-time scene-content."

6 years agovp9: Reset params for cyclic refresh on slide change
Marco Paniconi [Fri, 29 Jun 2018 22:34:54 +0000 (15:34 -0700)]
vp9: Reset params for cyclic refresh on slide change

Reset the last_coded_q_map and the sb->index in the cyclic_refresh
on a re-encode for slide change, so the refresh can start again
right after slide change.

Change-Id: I10cbc8354de8f7c2863b4212e6793b58a048b330

6 years agoMerge "Add partition breakout models for 720p resolution"
Hui Su [Fri, 29 Jun 2018 22:59:51 +0000 (22:59 +0000)]
Merge "Add partition breakout models for 720p resolution"

6 years agovp9: copy source on sync frame in denoiser.
Jerome Jiang [Fri, 29 Jun 2018 01:43:37 +0000 (18:43 -0700)]
vp9: copy source on sync frame in denoiser.

Refresh all denoiser buffers on sync frame.

Add sync frame test with denoiser enabled.
Change-Id: I562a5ef5614b92a97565e6181a79eda51d9aeb99

6 years agovp9: Reduce quality artifact for real-time scene-content.
Marco Paniconi [Fri, 29 Jun 2018 18:15:00 +0000 (11:15 -0700)]
vp9: Reduce quality artifact for real-time scene-content.

Add scene detection flag to choose_partitioning to force split
of 64x64 block partition. This reduces artifacts on slide changes.

Bug:b/110978869

Change-Id: I9cc79a7c03f3aa2edeb28656b09a2177b72d59a8

6 years agoAdd partition breakout models for 720p resolution
Hui Su [Mon, 25 Jun 2018 00:00:54 +0000 (17:00 -0700)]
Add partition breakout models for 720p resolution

Add partition search breakout models for 720p resolution,
currently enabled only for speed 0.

Compression performance change is neutral.
Tested encoding speed over 20 720p clips:

Speed gain(%) QP=55 QP=45 QP=35
  max      22.1 20.3 29.8
average         10.3  9.1 11.4

Change-Id: I07499728bbc5b80035fc66fad882ea556c8d07f2

6 years agoExploit the spatial variance in temporal dependency model
Jingning Han [Wed, 20 Jun 2018 20:15:10 +0000 (13:15 -0700)]
Exploit the spatial variance in temporal dependency model

Adapt the Lagrangian multipler based on the spatial variance in
the temporal dependency model. The functionality is disabled by
default. To turn on, set enable_tpl_model to 1.

Change-Id: I1b50606d9e2c8eb9c790c49eacc12c00d3d7c211

6 years agoRefactor to use unified multiplier for partition search
Jingning Han [Thu, 28 Jun 2018 22:11:35 +0000 (15:11 -0700)]
Refactor to use unified multiplier for partition search

Change-Id: I26ced25ff2e20ec414d5ecaa7d26f4a69175896c

6 years agoMerge "Enhanced partition experiment."
Paul Wilkins [Fri, 29 Jun 2018 14:16:52 +0000 (14:16 +0000)]
Merge "Enhanced partition experiment."

6 years agovp9-svc: fix strings concatenation in test app.
Sergey Silkin [Tue, 26 Jun 2018 14:27:19 +0000 (16:27 +0200)]
vp9-svc: fix strings concatenation in test app.

Change-Id: I292a1a5c19fd4f23b332e346d0ccac1a9c8455fc

6 years agoMerge "Skip temporal dependency build when the speed feature is off"
Jingning Han [Fri, 29 Jun 2018 05:02:40 +0000 (05:02 +0000)]
Merge "Skip temporal dependency build when the speed feature is off"

6 years agoMerge "Avoid operation on INT64_MAX value"
Jingning Han [Fri, 29 Jun 2018 04:18:08 +0000 (04:18 +0000)]
Merge "Avoid operation on INT64_MAX value"

6 years agoMerge "libyuv: disable AVX512 in clang"
James Zern [Fri, 29 Jun 2018 04:03:20 +0000 (04:03 +0000)]
Merge "libyuv: disable AVX512 in clang"

6 years agovp9-svc: Adjust threshold for early exit on golden
Marco Paniconi [Thu, 28 Jun 2018 23:08:55 +0000 (16:08 -0700)]
vp9-svc: Adjust threshold for early exit on golden

Use the avg_frame_low_motion to reduce/turnoff this
early exit for higher motion content. Get some quality
back for higher motion clips and keep the same exit
thresh for low motion clips.

Change-Id: I95daf754dc0048b3e935d1a753f7f1101e6ffb77

6 years agoSkip temporal dependency build when the speed feature is off
Jingning Han [Thu, 28 Jun 2018 22:26:27 +0000 (15:26 -0700)]
Skip temporal dependency build when the speed feature is off

Change-Id: I888761193882cc92720e0efaea5229a04a6ed67f

6 years agolibyuv: disable AVX512 in clang
Johann [Thu, 28 Jun 2018 13:08:03 +0000 (06:08 -0700)]
libyuv: disable AVX512 in clang

ARGBToRGB24Row_AVX512VBMI fails to compile on Mac:
row_gcc.cc: instruction requires: AVX-512 VBMI ISA AVX-512 VL ISA

BUG=libyuv:789

Change-Id: Ibd584e8c82e3ce86ec5460b4243f84f5dbdf4c81

6 years agoAvoid operation on INT64_MAX value
Jingning Han [Thu, 28 Jun 2018 19:06:12 +0000 (12:06 -0700)]
Avoid operation on INT64_MAX value

If the rate cost returns as INT_MAX, directly set the rdcost as
INT64_MAX.

Change-Id: I3ea1963aff10040dd9cef805beed9aebeedb93bc

6 years agoEnhanced partition experiment.
Paul Wilkins [Tue, 26 Jun 2018 14:57:51 +0000 (15:57 +0100)]
Enhanced partition experiment.

This patch relates to motion artifacts as described in Issue 73484098

The aim of this patch is to promote the use of smaller partition
sizes in places where some of the sub blocks have very low
spatial complexity and some have much higher complexity.
The patch can have a small impact on encode speed, but much
less than alternative approaches such as lowering the rd thresholds
that limit the partition search when distortion is low.

The patch also applies a similar sub block strategy for AQ1.

Metrics results for our standard sets over typical YT rates.
(Overall PSNR, SSIM, PSNR HVS) % -ve better.

Low Res -0.274, -0.303, -0.330
Mid Res 0.001, - 0.128, -0.100
Hd Res -0.236, -0.371, -0.349
N 2K -0.663, -0.798, -0.708
N 4K -0.488, -0.588, -0.517

Change-Id: Ice1fc977c1d29fd5e401f9c7c8e8ff7a5f410717

6 years agoMerge "vp9-svc: Fix to early golden exit nonrd-pickmode"
Marco Paniconi [Thu, 28 Jun 2018 05:33:59 +0000 (05:33 +0000)]
Merge "vp9-svc: Fix to early golden exit nonrd-pickmode"

6 years agoMerge "vp9-svc: Set avg_frame_low_motion for lower layers."
Marco Paniconi [Thu, 28 Jun 2018 05:33:50 +0000 (05:33 +0000)]
Merge "vp9-svc: Set avg_frame_low_motion for lower layers."

6 years agoMerge "Support Power8/Power9 tuning"
Luca Barbato [Wed, 27 Jun 2018 22:27:11 +0000 (22:27 +0000)]
Merge "Support Power8/Power9 tuning"

6 years agovp9-svc: Set avg_frame_low_motion for lower layers.
Marco Paniconi [Wed, 27 Jun 2018 20:04:18 +0000 (13:04 -0700)]
vp9-svc: Set avg_frame_low_motion for lower layers.

The avg_frame_low_motion metric is only computed on the
top spatial layer, and since its part of the layer context
struct, it needs to written to all lower spatial layers for
consistency.

Small/minor change in metrics.
Change-Id: I92a001c37aeb332e613212288b13a2ed9745af88

6 years agovp9-svc: Fix to early golden exit nonrd-pickmode
Marco Paniconi [Wed, 27 Jun 2018 19:26:09 +0000 (12:26 -0700)]
vp9-svc: Fix to early golden exit nonrd-pickmode

For SVC: apply the sse_zeromv early exit also to
the case where golden is second temporal reference.
Set the thresh_svc_golden threshold for this case.

This is reduce the encode time for case where golden
is second temporal reference for SVC.
Change-Id: I8c0c87dd746579d3c4f5e983c7f9dd0a1e1476e0

6 years agoAdd Speed Tests to Trans32x32Test
Luc Trudeau [Thu, 21 Jun 2018 01:42:19 +0000 (21:42 -0400)]
Add Speed Tests to Trans32x32Test

Speed tests are disabled by default.

Change-Id: I49f8da3d3e1e4d9c72b17fc47c098284e7d84236

6 years agoSupport Power8/Power9 tuning
Luca Barbato [Wed, 27 Jun 2018 19:12:39 +0000 (21:12 +0200)]
Support Power8/Power9 tuning

Change-Id: I50b32f37f77224ebf0470545152c83ae2ed3cfa3

6 years agoMerge "[VSX] Drop the clang-4 workaround for vec_xxpermdi"
Luca Barbato [Wed, 27 Jun 2018 19:04:49 +0000 (19:04 +0000)]
Merge "[VSX] Drop the clang-4 workaround for vec_xxpermdi"

6 years agoMerge "Add reference frame update flags for hierarchical"
Zoe Liu [Wed, 27 Jun 2018 17:09:32 +0000 (17:09 +0000)]
Merge "Add reference frame update flags for hierarchical"

6 years agoMerge changes Ic2183e8b,If906ec9b
Luc Trudeau [Wed, 27 Jun 2018 16:09:48 +0000 (16:09 +0000)]
Merge changes Ic2183e8b,If906ec9b

* changes:
  [VSX] Replace vec_pack and vec_perm with single vec_perm
  VSX Version of fdct32x32_rd

6 years agoMerge "Turn on ML partition search breakout on speed 0"
Hui Su [Wed, 27 Jun 2018 15:38:45 +0000 (15:38 +0000)]
Merge "Turn on ML partition search breakout on speed 0"

6 years ago[VSX] Replace vec_pack and vec_perm with single vec_perm
Luc Trudeau [Tue, 26 Jun 2018 21:06:52 +0000 (17:06 -0400)]
[VSX] Replace vec_pack and vec_perm with single vec_perm

vpx_quantize_b:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 8.1 ms, new VSX time = 7.9 ms

vp9_quantize_fp:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 6.5 ms, new VSX time = 6.2 ms

Change-Id: Ic2183e8bd721bb69eaeb4865b542b656255a0870

6 years agoVSX Version of fdct32x32_rd
Luc Trudeau [Thu, 21 Jun 2018 01:55:49 +0000 (21:55 -0400)]
VSX Version of fdct32x32_rd

Low bit depth version only. Passes the Trans32x32Test test suite.

Trans32x32Test Speed Test (POWER9 Model 2.2)
32x32 C time = 212.7 ms (±0.1 ms), VSX time = 82.3 ms (±0.0 ms) [2.6x]

Change-Id: If906ec9b56ce3818cae0cc462c7277284ab29859

6 years agoMerge "third_party/libyuv: update to a37e7bfe"
Johann Koenig [Wed, 27 Jun 2018 13:10:19 +0000 (13:10 +0000)]
Merge "third_party/libyuv: update to a37e7bfe"

6 years agoMerge "BUG FIX: Initialize AverageTestBase members"
James Zern [Wed, 27 Jun 2018 01:06:17 +0000 (01:06 +0000)]
Merge "BUG FIX: Initialize AverageTestBase members"

6 years agoBUG FIX: Initialize AverageTestBase members
Scott LaVarnway [Wed, 27 Jun 2018 00:06:42 +0000 (17:06 -0700)]
BUG FIX: Initialize AverageTestBase members

bit_depth_ was not initialized (used in FillRandom)
and caused valgrind errors.

BUG=webm:1542

Change-Id: I09a9acd54de0dfa4f9006304f45eb20883c9908c