platform/upstream/libvpx.git
5 years agoRefactor datarate svc test.
Jerome Jiang [Wed, 5 Dec 2018 00:16:43 +0000 (16:16 -0800)]
Refactor datarate svc test.

Bring some repeated test set up into a function.

Change-Id: I6acc545a349dc16581a23baf848c91ec36a2e83f

5 years agoMerge "Reland "third_party/googletest: update to v1.8.1""
Johann Koenig [Tue, 4 Dec 2018 23:40:41 +0000 (23:40 +0000)]
Merge "Reland "third_party/googletest: update to v1.8.1""

5 years agoMerge "vp9: force refresh of long term ref when denoiser reset."
Jerome Jiang [Tue, 4 Dec 2018 23:34:20 +0000 (23:34 +0000)]
Merge "vp9: force refresh of long term ref when denoiser reset."

5 years agovp9: force refresh of long term ref when denoiser reset.
Jerome Jiang [Thu, 29 Nov 2018 23:53:41 +0000 (15:53 -0800)]
vp9: force refresh of long term ref when denoiser reset.

This will allocate extra frame buffer if long term temporal reference is
used and denoiser is enabled on non-key frame.

Add test.

Change-Id: I0e8d1fdb9a2d697a8eed7fe6206bcb362e69f1c8

5 years agoMerge "Clean up rc_pick_q_and_bounds_two_pass()"
Jingning Han [Tue, 4 Dec 2018 17:33:42 +0000 (17:33 +0000)]
Merge "Clean up rc_pick_q_and_bounds_two_pass()"

5 years agoMerge "Add high bit Hadamard 8x8 avx2 implementation"
Sai Deng [Tue, 4 Dec 2018 00:53:42 +0000 (00:53 +0000)]
Merge "Add high bit Hadamard 8x8 avx2 implementation"

5 years agovp9-svc: Fix to postencode drop for layers.
Marco Paniconi [Mon, 3 Dec 2018 22:21:04 +0000 (14:21 -0800)]
vp9-svc: Fix to postencode drop for layers.

Postencode drop is only checked on base spatial
layers, and if set, whole superframe is dropped and
and next superframe is encoded at max-q.

Fix here is to make sure all layers are encoded at
max-q on a postencode dropped frame.

Change-Id: I2313d83ee29a382465bcec1085d8c73c37ce26d6

5 years agoMerge "vp9: Rename post_encode drop function."
Marco Paniconi [Mon, 3 Dec 2018 22:09:09 +0000 (22:09 +0000)]
Merge "vp9: Rename post_encode drop function."

5 years agovp9: Overshoot detection for skipped base layer.
Marco Paniconi [Mon, 3 Dec 2018 18:49:41 +0000 (10:49 -0800)]
vp9: Overshoot detection for skipped base layer.

If scene/slide change is detected on current
superframe and max-q set because of high overshoot:
then if the lower/base spatial layer are skipped on
the current superframe, max-q is forced on the
next encoded base/lower spatial layers.

Change-Id: Id61efda86ee545395012e19476d19845e3932678

5 years agovp9: Rename post_encode drop function.
Marco Paniconi [Mon, 3 Dec 2018 18:32:06 +0000 (10:32 -0800)]
vp9: Rename post_encode drop function.

Feature works also for non-screen content mode,
so rename it.

Change-Id: I665362d50cf9a4017f114973586ad0eead066ddd

5 years agoAdd high bit Hadamard 8x8 avx2 implementation
sdeng [Tue, 6 Nov 2018 23:58:16 +0000 (15:58 -0800)]
Add high bit Hadamard 8x8 avx2 implementation

Speed tests:
[ RUN      ] C/HadamardHighbdTest.DISABLED_Speed/0
Hadamard8x8[          10 runs]: 0 us
Hadamard8x8[       10000 runs]: 316 us
Hadamard8x8[    10000000 runs]: 311749 us
[       OK ] C/HadamardHighbdTest.DISABLED_Speed/0 (371 ms)

[ RUN      ] AVX2/HadamardHighbdTest.DISABLED_Speed/0
Hadamard8x8[          10 runs]: 0 us
Hadamard8x8[       10000 runs]: 161 us
Hadamard8x8[    10000000 runs]: 156910 us
[       OK ] AVX2/HadamardHighbdTest.DISABLED_Speed/0 (160 ms)

Change-Id: I94f7324be20405ff55f8a02ad4651c4ab4c10202

5 years agoquantize 32x32: saturate dqcoeff on x86
Johann [Fri, 30 Nov 2018 23:42:57 +0000 (15:42 -0800)]
quantize 32x32: saturate dqcoeff on x86

This slows down low bitdepth builds but is necessary to obtain correct
values.

BUG=webm:1448

Change-Id: I4ca9145f576089bb8496fcfeedeb556dc8fe6574

5 years agoMerge "Simplify constant q mode qp selection"
Jingning Han [Fri, 30 Nov 2018 21:12:51 +0000 (21:12 +0000)]
Merge "Simplify constant q mode qp selection"

5 years agoClean up rc_pick_q_and_bounds_two_pass()
Jingning Han [Fri, 30 Nov 2018 19:01:14 +0000 (11:01 -0800)]
Clean up rc_pick_q_and_bounds_two_pass()

Remove unneeded VPX_Q condition check.

Change-Id: I46b09ae522caa47fa7ea4441b6a6ac2840315d1c

5 years agoMerge "Use 16 bit ints in Hadamard highbd col8 first pass"
Sai Deng [Fri, 30 Nov 2018 19:09:28 +0000 (19:09 +0000)]
Merge "Use 16 bit ints in Hadamard highbd col8 first pass"

5 years agoMerge changes Ic80def57,I61a2f8bf
Johann Koenig [Fri, 30 Nov 2018 18:58:25 +0000 (18:58 +0000)]
Merge changes Ic80def57,I61a2f8bf

* changes:
  quantize 32x32: fix dqcoeff
  quantize: fix x86 hbd builds

5 years agoMerge changes I18680413,Iebe38092
Angie Chiang [Fri, 30 Nov 2018 18:25:50 +0000 (18:25 +0000)]
Merge changes I18680413,Iebe38092

* changes:
  Consider mv inconsistency in single_motion_search
  Change the interface of vp9_full_pixel_diamond_new

5 years agoSimplify constant q mode qp selection
Jingning Han [Fri, 30 Nov 2018 18:23:33 +0000 (10:23 -0800)]
Simplify constant q mode qp selection

Decouple the constant q mode qp selection from vbr/cbr/cq modes.
Skip vp9_frame_type_qdelta() adjustment for non-ARF inter frames,
instead keep using the cq-level. It improves the compresson
performance:

         avg PSNR       overall PSNR     SSIM
lowres   -0.17%         -0.20%           -0.1%
midres   -0.21%         -0.24%           -0.08%
hdres    -0.15%         -0.19%           -0.04%

Change-Id: I52fd5f8edbd3fdcbeda31ee3a6d6eb016091a7e3

5 years agoFactor key frame qp selection from two-pass qp and bound decision
Jingning Han [Thu, 29 Nov 2018 19:37:00 +0000 (11:37 -0800)]
Factor key frame qp selection from two-pass qp and bound decision

Factor out this common code needed all rate control modes.

Change-Id: If17850fbebcdce7ff24afb211aa2e6054486b814

5 years agoConsider mv inconsistency in single_motion_search
Angie Chiang [Fri, 30 Nov 2018 01:36:57 +0000 (17:36 -0800)]
Consider mv inconsistency in single_motion_search

This is still a work-in-process.
nb_full_mvs and lambda are set to zero for now, which means
mv inconsistency penalty is zero while doing the mv search.

Change-Id: I18680413d748fbdb9a33621f92f83e021036a3ab

5 years agoChange the interface of vp9_full_pixel_diamond_new
Angie Chiang [Thu, 29 Nov 2018 22:54:17 +0000 (14:54 -0800)]
Change the interface of vp9_full_pixel_diamond_new

Avoid passing in tpl_stats because this function will be called in
motion search, where tpl_stats should be fixed at the point.

Let further_steps becomes internal variable in the function.

Change-Id: Iebe380925eb1891c19e0b78163dab8e6bfafccdb

5 years agoUse 16 bit ints in Hadamard highbd col8 first pass
sdeng [Thu, 29 Nov 2018 23:20:35 +0000 (15:20 -0800)]
Use 16 bit ints in Hadamard highbd col8 first pass

Change-Id: I2f04937d8a4e171d42b25ee6c6555ccad29eb192

5 years agoRevert "Optimize RDMULT values for key frames"
Jingning Han [Thu, 29 Nov 2018 17:24:13 +0000 (17:24 +0000)]
Revert "Optimize RDMULT values for key frames"

This reverts commit b13f6154df9c0834d74f7e3d41e41c4208f56d18.

Temporarily revert this change due to interactions with rate control at very low target bit-rate.

Original change's description:
> Optimize RDMULT values for key frames
>
> Encoding of 5 frames of each sequence using key frames only, the new
> values help the metrics by:
>
>          PSNR     SSIM       PSNR-HVS
> lowres:  -0.870%  -0.140%    -0.892%
> midres:  -0.899%  -0.146%    -1.052%
> hdres:   -0.944%  -0.115%    -1.028%
>
> Tested q range:
> 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62
>
> Change-Id: I5b0dda366d589f52987c5bad11a1f95c4e6dc1a5

TBR=yaowu@google.com,paulwilkins@google.com,jingning@google.com,builds@webmproject.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ie1e4cf21308d69699a65a393a83884882682ea8e

5 years agovp9-svc: Add num_encoded_top layer counter
Marco Paniconi [Thu, 29 Nov 2018 17:27:52 +0000 (09:27 -0800)]
vp9-svc: Add num_encoded_top layer counter

Useful for noise estimation when top layer
is skipped encoded.

Change-Id: I18cbe6119bac6c21514941b1e3b530a05a42df14

5 years agoMerge "vp9: Fix condition for disabling noise estimation"
Marco Paniconi [Thu, 29 Nov 2018 07:57:44 +0000 (07:57 +0000)]
Merge "vp9: Fix condition for disabling noise estimation"

5 years agovp9: Fix condition for disabling noise estimation
Marco Paniconi [Thu, 29 Nov 2018 06:08:08 +0000 (22:08 -0800)]
vp9: Fix condition for disabling noise estimation

Fix condition for turning off denoiser due to high
motion: use proper superframe counter and
frames_since_key counter so this condition won't
take effect on key (super)frame.

Change-Id: Ic502bf5ebfa32a921f611a78e8e963eb62b5bc79

5 years agovp9 denoiser: force copy block when last not a reference.
Jerome Jiang [Thu, 29 Nov 2018 01:26:18 +0000 (17:26 -0800)]
vp9 denoiser: force copy block when last not a reference.

Last reference doesn't always exist when SVC layers changed dynamically.

When last is not a reference for current layer, copy block directly on
denoiser.

Change-Id: I9d98c4d6fdcfa25ba707db3333712761b5cf9ab8

5 years agoMerge "Remove ineffective condition from rc_pick_q_and_bounds"
Jingning Han [Wed, 28 Nov 2018 18:35:35 +0000 (18:35 +0000)]
Merge "Remove ineffective condition from rc_pick_q_and_bounds"

5 years agoquantize 32x32: fix dqcoeff
Johann [Wed, 21 Nov 2018 18:30:45 +0000 (13:30 -0500)]
quantize 32x32: fix dqcoeff

Calculate the high bits of dqcoeff and store them appropriately in high
bit depth builds.

Low bit depth builds still do not pass. C truncates the results after
division. X86 only supports packing with saturation at this step.

BUG=webm:1448

Change-Id: Ic80def575136c7ca37edf18d21e26925b475da98

5 years agoquantize: fix x86 hbd builds
Johann [Wed, 21 Nov 2018 18:30:45 +0000 (13:30 -0500)]
quantize: fix x86 hbd builds

Calculate the high bits of dqcoeff in high bit depth builds and store
them appropriately.

BUG=webm:1448

Change-Id: I61a2f8bfcf2e30765f10a94073c4d58321d2fa24

5 years agoMerge "vp9-svc: Add check/reset for long term reference."
Marco Paniconi [Wed, 28 Nov 2018 02:58:59 +0000 (02:58 +0000)]
Merge "vp9-svc: Add check/reset for long term reference."

5 years agovp9-svc: Add check/reset for long term reference.
Marco Paniconi [Wed, 28 Nov 2018 00:16:04 +0000 (16:16 -0800)]
vp9-svc: Add check/reset for long term reference.

Add check and reset (turn off) usage of long term
reference if some conditons (layer id of reference vs
current frame) are not met.

Change-Id: Ie3a84e3618f4fc4d5f8da4e67316cfbefb8bae78

5 years agovp9 svc: copy block if ref buffer in denoiser is NULL.
Jerome Jiang [Tue, 27 Nov 2018 20:29:47 +0000 (12:29 -0800)]
vp9 svc: copy block if ref buffer in denoiser is NULL.

BUG=b/119097707

Change-Id: I6569306e897da46a44f9d8f2fb28a2a355dd4c2c

5 years agoReland "third_party/googletest: update to v1.8.1"
Johann [Mon, 17 Sep 2018 20:57:30 +0000 (13:57 -0700)]
Reland "third_party/googletest: update to v1.8.1"

This is a reland of 7d777ce6136d7325a102524b6d80c19bd420e4b6

Previous attempt was reverted due to build issues with older
versions of Visual Studio. We no longer support VS <= 13.

Original change's description:
> third_party/googletest: update to v1.8.1
>
> BUG=webm:1559
>
> Change-Id: I7a0b16c7bf3f97db2d8650a190b93aae7e12a948

Bug: webm:1559
Change-Id: I9cb39988286cc56125879222ef0bd952d61b7c1d

5 years agoMerge "Replace deprecated scoped_ptr with unique_ptr"
Jingning Han [Tue, 27 Nov 2018 19:01:26 +0000 (19:01 +0000)]
Merge "Replace deprecated scoped_ptr with unique_ptr"

5 years agoMerge "rename quantize_x86.h"
Johann Koenig [Tue, 27 Nov 2018 18:47:33 +0000 (18:47 +0000)]
Merge "rename quantize_x86.h"

5 years agoRemove ineffective condition from rc_pick_q_and_bounds
Jingning Han [Tue, 27 Nov 2018 18:33:43 +0000 (10:33 -0800)]
Remove ineffective condition from rc_pick_q_and_bounds

Change-Id: I67b92182ee80ec5548c5a97345b6252e49033c4a

5 years agoReplace deprecated scoped_ptr with unique_ptr
Jingning Han [Tue, 27 Nov 2018 17:49:12 +0000 (09:49 -0800)]
Replace deprecated scoped_ptr with unique_ptr

Change-Id: I2793a1b65164946eb7d67d80ccba9e798db3d9af

5 years agorename quantize_x86.h
Johann [Mon, 26 Nov 2018 20:43:43 +0000 (15:43 -0500)]
rename quantize_x86.h

Pave the way for new quantize_OPT.h helper files.

Change-Id: Ice7225612983f5587a9660af3320c7d0c8bb1c2f

5 years agoMerge "Fix ARF rate allocation for cq mode"
Jingning Han [Tue, 27 Nov 2018 15:54:45 +0000 (15:54 +0000)]
Merge "Fix ARF rate allocation for cq mode"

5 years agoMerge "VP9 SVC: fix crash on scaling partition."
Marco Paniconi [Tue, 27 Nov 2018 04:48:05 +0000 (04:48 +0000)]
Merge "VP9 SVC: fix crash on scaling partition."

5 years agovp9-svc: Put check on usage of long term temporal ref.
Marco Paniconi [Mon, 26 Nov 2018 23:52:21 +0000 (15:52 -0800)]
vp9-svc: Put check on usage of long term temporal ref.

If the scale factor of the golden long term reference
is different from the last reference then disable usage
of long term reference.

This should not happen, but add this as a check against
some possibly incorrect update of the svc configuration.

Change-Id: Ic1062d4384e005007d8c922813fa8ad188d8fa98

5 years agoVP9 SVC: fix crash on scaling partition.
Jerome Jiang [Tue, 27 Nov 2018 01:10:37 +0000 (17:10 -0800)]
VP9 SVC: fix crash on scaling partition.

When scaling up partition from lower resolution layer L, mi_row and
mi_col from L must be smaller than mi_rows and mi_cols from L.

Before this change, the condition was based on mi_rows from top layer
divided by 2, which is not necessarily equal to the mi_rows from lower
resolution layer.

Added variable in SVC structure to keep track of mi_rows and mi_cols
from each spatial layer.

Re-enable partition scaling for 1080p.

BUG=webm:1578

Change-Id: Icc1c701b095cfe0a92bfecca1ed39dbe21da12b6

5 years agovp9-svc: Fix to skip enhancement layer setting
Marco Paniconi [Mon, 26 Nov 2018 21:58:28 +0000 (13:58 -0800)]
vp9-svc: Fix to skip enhancement layer setting

If in constrained layer drop mode, avoid setting
skip flag if base layer is dropped, as whole superframe
will be dropped in this case. This avoids an assert trigger
in the svc superframe packing.

Change-Id: I51c953c7fee979790c65c798bac9bd3d805dc66f

5 years agoFix ARF rate allocation for cq mode
Jingning Han [Mon, 26 Nov 2018 17:43:07 +0000 (09:43 -0800)]
Fix ARF rate allocation for cq mode

In the limited test set, it improves the cq mode compression
performance by 1.9% in PSNR and 6% in SSIM as compared to use
same quantization parameter for all ARFs.

Change-Id: I35c4d7097b5838ab0b92d7f9937520721e3bb84b

5 years agoMerge "vp9 screen-content: Keep lower step_param for quality layers."
Marco Paniconi [Thu, 22 Nov 2018 01:27:59 +0000 (01:27 +0000)]
Merge "vp9 screen-content: Keep lower step_param for quality layers."

5 years agoMerge "Fix scan_build warnings in user_priv_test.cc"
Angie Chiang [Thu, 22 Nov 2018 01:20:18 +0000 (01:20 +0000)]
Merge "Fix scan_build warnings in user_priv_test.cc"

5 years agovp9 screen-content: Keep lower step_param for quality layers.
Marco Paniconi [Wed, 21 Nov 2018 23:01:04 +0000 (15:01 -0800)]
vp9 screen-content: Keep lower step_param for quality layers.

Issue with step_param = 2 seems specific to lower layers
with different resolution.

Change-Id: I26405488ac7691b3e471e98e794d4b1d8098a91d

5 years agoFix scan_build warnings in user_priv_test.cc
Angie Chiang [Wed, 21 Nov 2018 19:20:36 +0000 (11:20 -0800)]
Fix scan_build warnings in user_priv_test.cc

BUG=webm:1575

Change-Id: I4e38f11162e0de82a730f16b387aeafd2d00e777

5 years agoMerge changes I02279405,I87e1c3f0,Id70235c8,I62602aa4,I5722d262
Angie Chiang [Wed, 21 Nov 2018 22:55:51 +0000 (22:55 +0000)]
Merge changes I02279405,I87e1c3f0,Id70235c8,I62602aa4,I5722d262

* changes:
  Fix scan_build warnings in tiny_ssim.c
  Fix scan_build warnings in convolve_test.cc
  Fix scan_build warnings in vp9_loopfilter.c
  Fix scan_build warnings in variance_test.cc
  Fix scan_build warnings in vp9_resize.c

5 years agovp9 screen-content: Adjust seach step param
Marco Paniconi [Wed, 21 Nov 2018 19:12:28 +0000 (11:12 -0800)]
vp9 screen-content: Adjust seach step param

Increase to 4 (from 2) on slide/scroll changes,
as there is an issue/failure with the current setting
with offline encode for high resolns.

Change-Id: I8f06c6bdcd59013ab000d75bd75770c667bf70d2

5 years agoFix scan_build warnings in tiny_ssim.c
Angie Chiang [Wed, 21 Nov 2018 00:39:53 +0000 (16:39 -0800)]
Fix scan_build warnings in tiny_ssim.c

BUG=webm:1575

Change-Id: I022794054b494512903d912bdbf3e85461f31665

5 years agoFix scan_build warnings in convolve_test.cc
Angie Chiang [Wed, 21 Nov 2018 00:33:07 +0000 (16:33 -0800)]
Fix scan_build warnings in convolve_test.cc

Change-Id: I87e1c3f0492cde805b54b048385ea200652dfccc

5 years agoFix scan_build warnings in vp9_loopfilter.c
Angie Chiang [Wed, 21 Nov 2018 00:29:26 +0000 (16:29 -0800)]
Fix scan_build warnings in vp9_loopfilter.c

BUG=webm:1575

Change-Id: Id70235c801d253d47267c6d34760484f82d5c881

5 years agoFix scan_build warnings in variance_test.cc
Angie Chiang [Tue, 20 Nov 2018 23:43:04 +0000 (15:43 -0800)]
Fix scan_build warnings in variance_test.cc

BUG=webm:1575

Change-Id: I62602aa47f07d525ba95fe7b2618bf62ae23fe6f

5 years agoFix scan_build warnings in vp9_resize.c
Angie Chiang [Tue, 20 Nov 2018 23:30:43 +0000 (15:30 -0800)]
Fix scan_build warnings in vp9_resize.c

BUG=webm:1575

Change-Id: I5722d2626b9043b83581a700e58c2b7204113a16

5 years agoMerge changes Id47930b4,I4f423630,I277c159b
Angie Chiang [Wed, 21 Nov 2018 18:06:17 +0000 (18:06 +0000)]
Merge changes Id47930b4,I4f423630,I277c159b

* changes:
  Replace assert by ASSERT_TRUE
  Fix scan_build warnings in temporal_filter_test.cc
  Fix scan_build warnings in dct_test.cc

5 years agoMerge "Declare buffer_alloc_sz and frame_size as size_t."
Wan-Teh Chang [Wed, 21 Nov 2018 17:15:59 +0000 (17:15 +0000)]
Merge "Declare buffer_alloc_sz and frame_size as size_t."

5 years agoMerge "Replace int64_t with int for rdmult"
Yaowu Xu [Wed, 21 Nov 2018 01:33:50 +0000 (01:33 +0000)]
Merge "Replace int64_t with int for rdmult"

5 years agoReplace assert by ASSERT_TRUE
Angie Chiang [Tue, 20 Nov 2018 23:08:11 +0000 (15:08 -0800)]
Replace assert by ASSERT_TRUE

BUG=webm:1575

Change-Id: Id47930b48733159f5e967dc5fd1205e501b635b9

5 years agoFix scan_build warnings in temporal_filter_test.cc
Angie Chiang [Mon, 19 Nov 2018 22:32:54 +0000 (14:32 -0800)]
Fix scan_build warnings in temporal_filter_test.cc

BUG=webm:1575

Change-Id: I4f4236305ebd932515451b1306211154b34678de

5 years agoFix scan_build warnings in dct_test.cc
Angie Chiang [Mon, 19 Nov 2018 22:27:53 +0000 (14:27 -0800)]
Fix scan_build warnings in dct_test.cc

BUG=webm:1575

Change-Id: I277c159bafa2ef7c3cfa27c86f60e3df0c3b79b3

5 years agoMerge "Disable partition scaling on 1080p and above."
Marco Paniconi [Tue, 20 Nov 2018 22:06:33 +0000 (22:06 +0000)]
Merge "Disable partition scaling on 1080p and above."

5 years agoMerge "vp9-svc: Reset temporal layers on scene change"
Marco Paniconi [Tue, 20 Nov 2018 22:02:59 +0000 (22:02 +0000)]
Merge "vp9-svc: Reset temporal layers on scene change"

5 years agoDisable partition scaling on 1080p and above.
Jerome Jiang [Tue, 20 Nov 2018 19:52:09 +0000 (11:52 -0800)]
Disable partition scaling on 1080p and above.

BUG=webm:1578
Change-Id: I7c8014b7ab96d372d486433bce24d058a60fdc85

5 years agoDeclare buffer_alloc_sz and frame_size as size_t.
Wan-Teh Chang [Tue, 20 Nov 2018 17:38:21 +0000 (09:38 -0800)]
Declare buffer_alloc_sz and frame_size as size_t.

Change-Id: Id632ddcbfb0bd3a4258aebdfb98f9dc2e4d04438

5 years agovp9-svc: Reset temporal layers on scene change
Marco Paniconi [Mon, 19 Nov 2018 22:13:48 +0000 (14:13 -0800)]
vp9-svc: Reset temporal layers on scene change

Reuse existing function for resetting temporal
layer pattern.

And fix to use first spatial layer to encode, and
some refactoring in encode_without_recode_loop().

Change-Id: Ifb22bb9de793ecb8e73f410e125c7c12383da1d2

5 years agoMerge "Validate the |border| parameter earlier."
Wan-Teh Chang [Tue, 20 Nov 2018 18:47:19 +0000 (18:47 +0000)]
Merge "Validate the |border| parameter earlier."

5 years agoMerge changes I9b5f8b08,Ic90b09e5,Ib2380aaf,I3ad3af49,Ib5d1a411
Angie Chiang [Tue, 20 Nov 2018 18:02:46 +0000 (18:02 +0000)]
Merge changes I9b5f8b08,Ic90b09e5,Ib2380aaf,I3ad3af49,Ib5d1a411

* changes:
  Fix scan_build_warnings in comp_avg_pred_test.cc
  Fix scan_build warnings in convolve_test.cc
  Fix scan_build warnings in idct_test.cc
  Fix scan_build warnings in tiny_ssim.c
  Fix scan_build warning in dct_partial_test.cc

5 years agoReplace int64_t with int for rdmult
Yaowu Xu [Tue, 20 Nov 2018 01:19:18 +0000 (17:19 -0800)]
Replace int64_t with int for rdmult

No need for the upgrade to int64_t

Change-Id: I8331839c00718a0a987257772357be72b40e19be

5 years agoValidate the |border| parameter earlier.
Wan-Teh Chang [Tue, 20 Nov 2018 17:30:54 +0000 (09:30 -0800)]
Validate the |border| parameter earlier.

vpx_realloc_frame_buffer() should validate the |border| parameter
earlier, before it allocates the buffer and preferrably before it uses
|border|.

This backports libaom commit 2860b3ae8b764bdfa2b8c7a06df2673e907b993f:
https://aomedia-review.googlesource.com/c/aom/+/74324

Change-Id: Ib9d59d74e27430ccb1e83c6ad5424aff9672c989

5 years agoFix scan_build_warnings in comp_avg_pred_test.cc
Angie Chiang [Mon, 19 Nov 2018 19:31:25 +0000 (11:31 -0800)]
Fix scan_build_warnings in comp_avg_pred_test.cc

BUG=webm:1575

Change-Id: I9b5f8b08d23fd62ff6400605023f33e3890b0f2d

5 years agoFix scan_build warnings in convolve_test.cc
Angie Chiang [Mon, 19 Nov 2018 19:28:19 +0000 (11:28 -0800)]
Fix scan_build warnings in convolve_test.cc

BUG=webm:1575

Change-Id: Ic90b09e596fa68bc516237d31b7f4540831becfd

5 years agoFix scan_build warnings in idct_test.cc
Angie Chiang [Mon, 19 Nov 2018 18:35:41 +0000 (10:35 -0800)]
Fix scan_build warnings in idct_test.cc

BUG=webm:1575

Change-Id: Ib2380aaf8c9f9bc7db87f36701a2792781beb44b

5 years agoFix scan_build warnings in tiny_ssim.c
Angie Chiang [Mon, 19 Nov 2018 18:25:35 +0000 (10:25 -0800)]
Fix scan_build warnings in tiny_ssim.c

BUG=webm:1575

Change-Id: I3ad3af49d778f102e9152dcb1eb9d5c048756cdf

5 years agoFix scan_build warning in dct_partial_test.cc
Angie Chiang [Mon, 19 Nov 2018 18:23:02 +0000 (10:23 -0800)]
Fix scan_build warning in dct_partial_test.cc

BUG=webm:1575

Change-Id: Ib5d1a411a223a93d1795ebe1af12e67d64fadabe

5 years agoMinor simplifications
Yaowu Xu [Tue, 20 Nov 2018 00:57:02 +0000 (16:57 -0800)]
Minor simplifications

Change-Id: I231e863f838f449335236c174b74bd33dfdd8b19

5 years agoMerge "Fix oob in vpx_setup_noise"
Jerome Jiang [Tue, 20 Nov 2018 00:11:21 +0000 (00:11 +0000)]
Merge "Fix oob in vpx_setup_noise"

5 years agovp9: Fix to the svc buffer update
Marco Paniconi [Mon, 19 Nov 2018 20:24:52 +0000 (12:24 -0800)]
vp9: Fix to the svc buffer update

Condition the pre-encode buffer update based on
TS diff on temporal layers = 1 for now, as some
fix is needed for the case where #temporal_layers > 1.

Change-Id: I58163b956db415217e4687a31f8ba110545b09f5

5 years agoMerge "Optimize RDMULT values for key frames"
Yaowu Xu [Mon, 19 Nov 2018 18:47:21 +0000 (18:47 +0000)]
Merge "Optimize RDMULT values for key frames"

5 years agoFix oob in vpx_setup_noise
Jerome Jiang [Wed, 7 Nov 2018 00:12:11 +0000 (16:12 -0800)]
Fix oob in vpx_setup_noise

Array index wasn't checked on boundary.

BUG=webm:1572

Change-Id: I55a93c024af77a4fd904b0e992d5587a142d66a4

5 years agoWork around ARM64 Windows SDK arm_neon.h quirk
Jon Kunkee [Thu, 15 Nov 2018 09:27:42 +0000 (01:27 -0800)]
Work around ARM64 Windows SDK arm_neon.h quirk

Since the Windows SDK has an ARM32-only arm_neon.h, files including it
during ARM64 Windows builds need to be redirected to arm64_neon.h.

Instead of editing many files to include ARM64-Windows-specific ifdef
logic, this commit introduces an ARM64-Windows-specific version of
arm_neon.h that performs the needed redirection and lands earlier in
the header search path than the ARM32-only arm_neon.h.

Change-Id: Idc63947a238ca1bd0c479d8f4ad68950487947c6

5 years agoMerge "Add ARM64 support to VS project generation"
Jon Kunkee [Fri, 16 Nov 2018 22:26:15 +0000 (22:26 +0000)]
Merge "Add ARM64 support to VS project generation"

5 years agoOptimize RDMULT values for key frames
Yaowu Xu [Fri, 9 Nov 2018 20:46:07 +0000 (12:46 -0800)]
Optimize RDMULT values for key frames

Encoding of 5 frames of each sequence using key frames only, the new
values help the metrics by:

         PSNR     SSIM       PSNR-HVS
lowres:  -0.870%  -0.140%    -0.892%
midres:  -0.899%  -0.146%    -1.052%
hdres:   -0.944%  -0.115%    -1.028%

Tested q range:
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62

Change-Id: I5b0dda366d589f52987c5bad11a1f95c4e6dc1a5

5 years agovp9: Reorganize the buffer level for cbr mode
Marco Paniconi [Mon, 12 Nov 2018 06:09:31 +0000 (22:09 -0800)]
vp9: Reorganize the buffer level for cbr mode

Refactor the code with some changes.

Split update into two parts: move the fillup
(with per-frame-bandwidth) before the encoding, and
keep the leaking part (with encoded_frame_size) after
the encoding (postencode).

For SVC with ref_frame_config usage: allow usage of timestamp
delta for the fillup part of buffer, instead of the (average)
framerate passed in via the duration.

Moving the buffer fillup (+per-frame-bandwidth) part to the
pre-encode causes some difference in performance
(since buffer level affects active_worst/QPand frame-dropping),
but the change is observed to be small.
Made small adjustment to active_worst_quality to compensate.

Adjust some thresholds in datarate tests.

Change-Id: I81a5562367034f318cffd451304bc4a34bf02a1d

5 years agoMerge "quantize: use aarch64 vmaxv"
Johann Koenig [Fri, 16 Nov 2018 14:57:30 +0000 (14:57 +0000)]
Merge "quantize: use aarch64 vmaxv"

5 years agoMerge "Fix arf boost factor calculation for intermediate ARFs"
Jingning Han [Fri, 16 Nov 2018 00:07:22 +0000 (00:07 +0000)]
Merge "Fix arf boost factor calculation for intermediate ARFs"

5 years agoMerge changes Ib9d16a4b,I6061f38c
Angie Chiang [Thu, 15 Nov 2018 23:40:59 +0000 (23:40 +0000)]
Merge changes Ib9d16a4b,I6061f38c

* changes:
  Refactor av1_nb_mvs_inconsistency()
  Recompute mv inconsistency after mv search is done

5 years agoAdd ARM64 support to VS project generation
Jon Kunkee [Thu, 15 Nov 2018 21:01:04 +0000 (13:01 -0800)]
Add ARM64 support to VS project generation

Windows builds can use msbuild.exe to build libvpx through a set of
generated Visual Studio project files. This commit adds awareness of
ARM64 Windows to this process by adding ARM64 configurations and
setting msbuild properties to consume the right SDK version.

Change-Id: I1bbc01cbe7be3d53c4e1af6cd96c6e4170aa4915

5 years agoAdd ARM64 Windows to configure scripts
Jon Kunkee [Mon, 12 Nov 2018 21:40:56 +0000 (13:40 -0800)]
Add ARM64 Windows to configure scripts

In order to correctly configure for Windows 10 on ARM, this change adds
a --target value arm64-win64-vs15 to ./configure and adds feature
enable/disable logic for the new platform.

This is merely sufficient for Chromium targeting ARM64 Windows.

Bug: 893460
Change-Id: I46194286f63104bdf6ac57d719fdf1e5d5fa72c8

5 years agoFix arf boost factor calculation for intermediate ARFs
Jingning Han [Thu, 15 Nov 2018 05:02:03 +0000 (21:02 -0800)]
Fix arf boost factor calculation for intermediate ARFs

Need to offset the forward range by 1 to include the stats for
the current frame itself.

Change-Id: I3b5171b7edef51ec4e97e4e0542ca58af5ce1416

5 years agoMerge "Disable tpl model in GF-only GOP structure"
Jingning Han [Thu, 15 Nov 2018 05:01:04 +0000 (05:01 +0000)]
Merge "Disable tpl model in GF-only GOP structure"

5 years agoMerge "Fix GF-only frame type allocation"
Jingning Han [Thu, 15 Nov 2018 05:00:55 +0000 (05:00 +0000)]
Merge "Fix GF-only frame type allocation"

5 years agoRefactor av1_nb_mvs_inconsistency()
Angie Chiang [Thu, 18 Oct 2018 17:40:06 +0000 (10:40 -0700)]
Refactor av1_nb_mvs_inconsistency()

Change-Id: Ib9d16a4bc3ce1d28493e34f24dc18a6b511738f0

5 years agoRecompute mv inconsistency after mv search is done
Angie Chiang [Wed, 17 Oct 2018 22:54:25 +0000 (15:54 -0700)]
Recompute mv inconsistency after mv search is done

Change-Id: I6061f38cb42eea2b4c8996ad372c829dc1051c8d

5 years agoDisable tpl model in GF-only GOP structure
Jingning Han [Wed, 14 Nov 2018 22:58:56 +0000 (14:58 -0800)]
Disable tpl model in GF-only GOP structure

The tpl model assumes a relative short stats buffer length. Hence
it is not ready to support GF-only GOP structure where the max
length can go up to 250. Disable tpl model in such setting to avoid
a rare encode failure in GF-only setting.

Change-Id: I3409dbb829a8105478876684ec21a2bd405c33c8

5 years agoMerge "vpx_dec_fuzzer: Unify single and multi-thread tests"
Harish Mahendrakar [Wed, 14 Nov 2018 21:55:16 +0000 (21:55 +0000)]
Merge "vpx_dec_fuzzer: Unify single and multi-thread tests"

5 years agovpx_dec_fuzzer: Unify single and multi-thread tests
Harish Mahendrakar [Wed, 14 Nov 2018 20:00:01 +0000 (12:00 -0800)]
vpx_dec_fuzzer: Unify single and multi-thread tests

As thread count is now randomized, serial and threaded modes can be
combined to a single binary.
With this change, threads takes values between 1 to 64 and tests both
single thread and multi-thread variants of the decoders

Change-Id: I6dd2a3aa03bff9c0e2c126843b543d46892be696

5 years agoMerge "Added libFuzzer plugin to test decoders"
Harish Mahendrakar [Wed, 14 Nov 2018 21:02:45 +0000 (21:02 +0000)]
Merge "Added libFuzzer plugin to test decoders"

5 years agoFix GF-only frame type allocation
Jingning Han [Wed, 14 Nov 2018 07:20:03 +0000 (23:20 -0800)]
Fix GF-only frame type allocation

Rework the recursive ARF allocation to avoid missing one frame's
type assignment issue in GF only GOP structure. This fixes a rare
encoder failure issue in GF only setting.

Change-Id: I3e41fe36d3cb954de25ffc058a42b2b8be0fcd7a