]> granicus.if.org Git - libvpx/log
libvpx
5 years agoRemove a special case
Yaowu Xu [Thu, 20 Dec 2018 00:49:08 +0000 (16:49 -0800)]
Remove a special case

The special case was put in to prevent a lossless test failure, the
issue has been dealt with by a recent fix of skip condition in
lossless mode.

Change-Id: Ia25d2bf6beead2208841b4f012171dffac15f411

5 years agoCorrect condition for skip
Yaowu Xu [Wed, 19 Dec 2018 18:48:37 +0000 (10:48 -0800)]
Correct condition for skip

Do not skip without check when lossless is requested.

Change-Id: Iceda428e7bf5ab19202b1dcb598e389fcaf6978d

5 years agoMerge "Refactor svc_*_test.cc"
Jerome Jiang [Tue, 11 Dec 2018 18:39:41 +0000 (18:39 +0000)]
Merge "Refactor svc_*_test.cc"

5 years agoMerge "Fix intra_count_low calculation in first pass"
Paul Wilkins [Tue, 11 Dec 2018 13:33:56 +0000 (13:33 +0000)]
Merge "Fix intra_count_low calculation in first pass"

5 years agoMerge "Clean up condition logics in rc_pick_q_and_bounds_two_pass()"
Jingning Han [Tue, 11 Dec 2018 06:42:18 +0000 (06:42 +0000)]
Merge "Clean up condition logics in rc_pick_q_and_bounds_two_pass()"

5 years agoClean up condition logics in rc_pick_q_and_bounds_two_pass()
Jingning Han [Mon, 10 Dec 2018 22:02:51 +0000 (14:02 -0800)]
Clean up condition logics in rc_pick_q_and_bounds_two_pass()

Factor out common conditions for better readability.

Change-Id: I2a2b576e7d3e5cf036e9e355fc7ce0509ecb3d7e

5 years agoMerge "Remove redundant code about motion vector test"
Hui Su [Tue, 11 Dec 2018 00:14:32 +0000 (00:14 +0000)]
Merge "Remove redundant code about motion vector test"

5 years agoRefactor svc_*_test.cc
Jerome Jiang [Mon, 10 Dec 2018 20:53:20 +0000 (12:53 -0800)]
Refactor svc_*_test.cc

Put test classes into svc_test namespace.
Make num_nonref_frames_ and mismatched_nframes private, as they're
computed by encoder/decoder hooks which shouldn't be modified outside
the class.
Add accessor to num_nonref_frames_.

Change-Id: I3836a45426796ba6a8c98dd31e21b5aec4b8abf4

5 years agoMerge "test/svc_*_test: fix SetConfig() signature"
James Zern [Mon, 10 Dec 2018 19:49:14 +0000 (19:49 +0000)]
Merge "test/svc_*_test: fix SetConfig() signature"

5 years agoRemove redundant code about motion vector test
Hui Su [Thu, 6 Dec 2018 23:03:12 +0000 (15:03 -0800)]
Remove redundant code about motion vector test

Only need to set find_fractional_mv_step once.

Change-Id: Ib59dd1e3bb8bc973f2e0f3fc436738bfaf2fad81

5 years agoMerge "Add enum definition for subpel search precision"
Hui Su [Mon, 10 Dec 2018 18:17:57 +0000 (18:17 +0000)]
Merge "Add enum definition for subpel search precision"

5 years agoMerge "apply -Wextra to third_party/"
Johann Koenig [Mon, 10 Dec 2018 16:47:03 +0000 (16:47 +0000)]
Merge "apply -Wextra to third_party/"

5 years agoMerge "vp9 screen: Update motion search offset when set to NSTEP."
Jerome Jiang [Mon, 10 Dec 2018 01:44:43 +0000 (01:44 +0000)]
Merge "vp9 screen: Update motion search offset when set to NSTEP."

5 years agoMerge "vp9 svc: add test for scaling partition on 1080p crash."
Jerome Jiang [Mon, 10 Dec 2018 01:44:20 +0000 (01:44 +0000)]
Merge "vp9 svc: add test for scaling partition on 1080p crash."

5 years agotest/svc_*_test: fix SetConfig() signature
James Zern [Sat, 8 Dec 2018 08:43:31 +0000 (00:43 -0800)]
test/svc_*_test: fix SetConfig() signature

make the parameter constant to match the base class and mark the
function virtual. virtual is used to match the rest of the code base,
but now that c++11 is required all such functions could be changed to
override.

Change-Id: I551a05bbd9d05a9eddb653f42eaad68880c88141

5 years agoMerge "Add satd avx2 implementation"
Sai Deng [Sat, 8 Dec 2018 18:43:55 +0000 (18:43 +0000)]
Merge "Add satd avx2 implementation"

5 years agovp9 svc: add test for scaling partition on 1080p crash.
Jerome Jiang [Fri, 7 Dec 2018 02:24:13 +0000 (18:24 -0800)]
vp9 svc: add test for scaling partition on 1080p crash.

BUG=webm:1578
Change-Id: Ie03ed454394933fa89f751edc6928651393f3f12

5 years agovp9 screen: Update motion search offset when set to NSTEP.
Jerome Jiang [Wed, 5 Dec 2018 02:37:02 +0000 (18:37 -0800)]
vp9 screen: Update motion search offset when set to NSTEP.

Search method and step parameter might be changed in speed settings.
In this case, we should update the search area offset due to the change
of search method.

Change-Id: I51dc584bbf35e998757da326355dd4b8a4d0093f

5 years agoMerge "test/*: use std::*tuple"
James Zern [Sat, 8 Dec 2018 04:10:38 +0000 (04:10 +0000)]
Merge "test/*: use std::*tuple"

5 years agotest/*: use std::*tuple
James Zern [Fri, 7 Dec 2018 07:58:37 +0000 (23:58 -0800)]
test/*: use std::*tuple

since:
77fa51003 Replace deprecated scoped_ptr with unique_ptr

c++11 has been required so <tuple> is safe to use

Change-Id: I873cb953104b361a8503b5839a3372ce2b99e73c

5 years agoAdd enum definition for subpel search precision
Hui Su [Fri, 7 Dec 2018 00:53:26 +0000 (16:53 -0800)]
Add enum definition for subpel search precision

To improve readability.

Change-Id: Idc08b2068c7d8ba9dadc0d559a3b4d61c2a88c94

5 years agoMerge "Optimize RDMult"
Yaowu Xu [Fri, 7 Dec 2018 22:53:43 +0000 (22:53 +0000)]
Merge "Optimize RDMult"

5 years agoMerge changes Id10f72b3,Icde1b01e,I391aa322
Angie Chiang [Fri, 7 Dec 2018 22:27:11 +0000 (22:27 +0000)]
Merge changes Id10f72b3,Icde1b01e,I391aa322

* changes:
  Implement find_prev_nb_full_mvs
  Implement get_full_mv()
  Pass mv_num into vp9_nb_mvs_inconsistency()

5 years agoapply -Wextra to third_party/
Johann [Fri, 7 Dec 2018 17:28:02 +0000 (09:28 -0800)]
apply -Wextra to third_party/

googletest builds cleanly with -Wextra

Remove comments about webm:1069. The vp8 issue is tracked in webm:1246.

Change-Id: I8bbb01d34503cc9c342f5c3aa78e9476f72b94c2

5 years agoAdd high bit Hadamard 32x32 avx2 implementation
sdeng [Wed, 7 Nov 2018 00:20:41 +0000 (16:20 -0800)]
Add high bit Hadamard 32x32 avx2 implementation

Speed test:
[ RUN      ] C/HadamardHighbdTest.DISABLED_Speed/2
Hadamard32x32[          10 runs]: 9 us
Hadamard32x32[       10000 runs]: 8914 us
Hadamard32x32[    10000000 runs]: 8991776 us

[ RUN      ] AVX2/HadamardHighbdTest.DISABLED_Speed/2
Hadamard32x32[          10 runs]: 5 us
Hadamard32x32[       10000 runs]: 4582 us
Hadamard32x32[    10000000 runs]: 4548203 us

Change-Id: Ied1b38b510bd033299f05869216d394e3b7f70f1

5 years agoMerge "Add high bit Hadamard 16x16 avx2 implementation"
Sai Deng [Fri, 7 Dec 2018 17:00:03 +0000 (17:00 +0000)]
Merge "Add high bit Hadamard 16x16 avx2 implementation"

5 years agoAdd satd avx2 implementation
sdeng [Tue, 30 Oct 2018 21:08:07 +0000 (14:08 -0700)]
Add satd avx2 implementation

Speed Test:
C/SatdHighbdTest
blocksize:   16 time:  138 us
blocksize:   64 time:  315 us
blocksize:  256 time: 1120 us
blocksize: 1024 time: 3955 us

AVX2/SatdHighbdTest
blocksize:   16 time:   89 us
blocksize:   64 time:  189 us
blocksize:  256 time:  590 us
blocksize: 1024 time: 1912 us

Change-Id: I6357174462fccd589a475b13d8114b853cab5383

5 years agoMerge "vp9 decoder: cleanup on exit if no available frame buffer."
Jerome Jiang [Fri, 7 Dec 2018 02:51:24 +0000 (02:51 +0000)]
Merge "vp9 decoder: cleanup on exit if no available frame buffer."

5 years agovp9 decoder: cleanup on exit if no available frame buffer.
Jerome Jiang [Wed, 31 Oct 2018 20:45:17 +0000 (13:45 -0700)]
vp9 decoder: cleanup on exit if no available frame buffer.

There was no setjmp on vpx_internal_error when there is no available
frame buffer, ready_for_new_data is not reset to 1.

BUG=webm:1571

Change-Id: I4f8efffb7d6fed3085b1f0229d0d1071a056b6c6

5 years agoImplement find_prev_nb_full_mvs
Angie Chiang [Thu, 6 Dec 2018 01:58:58 +0000 (17:58 -0800)]
Implement find_prev_nb_full_mvs

In single_motion_search, we use prev coded nb full mvs to compute
mv inconsistency.

lambda is set to block_area / 4.

This is a draft. Will to experiments to figure out the impact on
coding efficiency and visual quality.

Change-Id: Id10f72b3c7e6085bfbe1a6156b9fd6917843d001

5 years agoImplement get_full_mv()
Angie Chiang [Thu, 6 Dec 2018 02:17:31 +0000 (18:17 -0800)]
Implement get_full_mv()

Change-Id: Icde1b01ea7f64e2c43dcd039cc37fd306e43030f

5 years agoPass mv_num into vp9_nb_mvs_inconsistency()
Angie Chiang [Wed, 5 Dec 2018 23:19:00 +0000 (15:19 -0800)]
Pass mv_num into vp9_nb_mvs_inconsistency()

This allow av1_nb_mvs_inconsistency to cope with variant number of
motion vectors.

Change-Id: I391aa322d458cfefaf640e7b07d5ad5ce2d3375c

5 years agoMerge "configure: test -std=c++11 before enabling unit tests"
James Zern [Thu, 6 Dec 2018 22:34:14 +0000 (22:34 +0000)]
Merge "configure: test -std=c++11 before enabling unit tests"

5 years agoMerge "Fix DoS in Error Streams"
Harish Mahendrakar [Thu, 6 Dec 2018 05:53:43 +0000 (05:53 +0000)]
Merge "Fix DoS in Error Streams"

5 years agoOptimize RDMult
Yaowu Xu [Thu, 29 Nov 2018 17:44:16 +0000 (09:44 -0800)]
Optimize RDMult

This commit introduces the optimized RDMult values for both key
and non-key frames. For key frames, the commit gets values back
from commit#b13f6154df9c0834d74f7e3d41e41c4208f56d18. For impact
on key frame only encodings, see commit message for that commit.

For inter frames, the values get optimzied by running encoding tests
in Q mode with the following range using 150 frames:
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62

The impact of current set of RDMULT values:
           PSNR     SSIM     PSNR-HVS
lowres:  -0.325%   0.422%    -0.228%
midres:  -0.377%   0.158%    -0.376%
hdres:   -0.309%   0.522%    -0.322%

Test baseline is on commit#35617458

Overall, the values help PSNR based metrics, but hurt SSIM metric
slightly.

Change-Id: I7eba37a6524cb36b8498a1d104d2667781bc2089

5 years agoAdd high bit Hadamard 16x16 avx2 implementation
sdeng [Wed, 7 Nov 2018 00:20:41 +0000 (16:20 -0800)]
Add high bit Hadamard 16x16 avx2 implementation

Speed test:
[ RUN      ] C/HadamardHighbdTest.DISABLED_Speed/1
Hadamard16x16[          10 runs]: 2 us
Hadamard16x16[       10000 runs]: 1836 us
Hadamard16x16[    10000000 runs]: 1829451 us

[ RUN      ] AVX2/HadamardHighbdTest.DISABLED_Speed/1
Hadamard16x16[          10 runs]: 1 us
Hadamard16x16[       10000 runs]: 1009 us
Hadamard16x16[    10000000 runs]: 984856 us

Change-Id: I89b9cdbe19350815576d66e627df87e5025ed0a4

5 years agoMerge "remove old visual studio support"
Johann Koenig [Wed, 5 Dec 2018 23:40:57 +0000 (23:40 +0000)]
Merge "remove old visual studio support"

5 years agoMerge "Refactor datarate svc test."
Jerome Jiang [Wed, 5 Dec 2018 18:48:15 +0000 (18:48 +0000)]
Merge "Refactor datarate svc test."

5 years agoMerge "quantize neon: fix hbd builds"
Johann Koenig [Wed, 5 Dec 2018 18:20:29 +0000 (18:20 +0000)]
Merge "quantize neon: fix hbd builds"

5 years agoremove old visual studio support
Johann [Tue, 4 Dec 2018 23:52:08 +0000 (15:52 -0800)]
remove old visual studio support

Change-Id: I86682ef1aac1991e1ef6965e7aa298f6619bee13

5 years agoMerge "Fix overflow in calculating highbd SSIM"
Sai Deng [Wed, 5 Dec 2018 17:55:58 +0000 (17:55 +0000)]
Merge "Fix overflow in calculating highbd SSIM"

5 years agoMerge "Add Parse and Recon Split functions"
Harish Mahendrakar [Wed, 5 Dec 2018 17:31:00 +0000 (17:31 +0000)]
Merge "Add Parse and Recon Split functions"

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 agoFix overflow in calculating highbd SSIM
sdeng [Wed, 5 Dec 2018 00:35:34 +0000 (16:35 -0800)]
Fix overflow in calculating highbd SSIM

Example internal stats
Before the fix:
Bitrate AVGPsnr GLBPsnr AVPsnrP GLPsnrP VPXSSIM VPSSIMP FASTSIM PSNRHVS WstPsnr WstSsim WstFast WstHVS AVPsnrY APsnrCb APsnrCr   Block WstBlck Consist WstCons     Time RcErr AbsErr
 153.39  37.131  36.420  37.151  36.437 716.077 817.445  10.422  34.347  32.980   0.916   9.281  30.208  36.024  41.830  40.581   0.000   0.000 100.000 100.000    55006    2.26    2.26
No mismatch detected in recon buffers

After the fix:
Bitrate AVGPsnr GLBPsnr AVPsnrP GLPsnrP VPXSSIM VPSSIMP FASTSIM PSNRHVS WstPsnr WstSsim WstFast WstHVS AVPsnrY APsnrCb APsnrCr   Block WstBlck Consist WstCons     Time RcErr AbsErr
 153.39  37.131  36.420  37.151  36.437  69.808  70.023  10.422  34.347  32.980   0.910   9.281  30.208  36.024  41.830  40.581   0.000   0.000 100.000 100.000    55067    2.26    2.26
No mismatch detected in recon buffers

Change-Id: I820abc498c1543548f193874046582b50afd0238

5 years agoconfigure: test -std=c++11 before enabling unit tests
James Zern [Wed, 5 Dec 2018 00:38:08 +0000 (16:38 -0800)]
configure: test -std=c++11 before enabling unit tests

since:
77fa51003 Replace deprecated scoped_ptr with unique_ptr

the unit tests require a c++11 capable compiler; future versions of
googletest (1.9.x) will as well, so this change was inevitable if we
wanted to keep the snapshot up to date.

Change-Id: Id5c646bd10fae09e7b705b7d5fad1344f2216282

5 years agoFix the parameter of vp9_full_pixel_diamond_new
Angie Chiang [Tue, 4 Dec 2018 23:44:56 +0000 (15:44 -0800)]
Fix the parameter of vp9_full_pixel_diamond_new

Change-Id: I36b970953c960fde65d7b7705ccfa575c8741c43

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 agoFix intra_count_low calculation in first pass
Deepa K G [Mon, 3 Dec 2018 09:33:18 +0000 (15:03 +0530)]
Fix intra_count_low calculation in first pass

In first pass, scaled_low_intra_thresh should not be
compared with motion_error, as scaled_low_intra_thresh
accounts for bit-depth, whereas motion_error does not.
In addition, mv_cost is excluded for comparison.

Change-Id: Id2fa02d364c086876c71ffebb2dd763eaa647e4a

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 agoquantize neon: fix hbd builds
Johann [Sat, 1 Dec 2018 00:27:33 +0000 (16:27 -0800)]
quantize neon: fix hbd builds

BUG=webm:1448

Change-Id: I2140fb9b6ce92716d2d9509f3031244088a62127

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 agoFix DoS in Error Streams
Venkatarama NG. Avadhani [Wed, 24 Oct 2018 11:47:58 +0000 (17:17 +0530)]
Fix DoS in Error Streams

This fixes an issue where, in very rare error cases, one row of LPF
could be waiting infinitely for its previous row's LPF to complete.

With LPF optimization, the second row's LPF could be triggered before
the first row's LPF. In this case, the second row's LPF will wait for
LPF of n-sync number of SBs of the first row to finish. In error
streams, depending on when the error was detected, the LPF job of the
first row may then never be triggered. This puts the thread doing the
second row's LPF in an infinite wait.

The issue is reproduceable once in approximately 500 runs of the clip in
bug 1562.

BUG=webm:1562

Change-Id: I265d7df5ceeff0410334f5b9a4181f895bb54cab

5 years agoAdd Parse and Recon Split functions
Shubham Tandle [Fri, 30 Nov 2018 11:00:15 +0000 (16:30 +0530)]
Add Parse and Recon Split functions

Add functions that will do only parse or only recon. These are
duplicated and modified from decode_partition and decode_block.

Change-Id: I2201e235bf491e823ae63d27b2586bbb43b48929

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