Jerome Jiang [Mon, 10 Dec 2018 01:44:43 +0000 (01:44 +0000)]
Merge "vp9 screen: Update motion search offset when set to NSTEP."
Jerome Jiang [Mon, 10 Dec 2018 01:44:20 +0000 (01:44 +0000)]
Merge "vp9 svc: add test for scaling partition on 1080p crash."
Sai Deng [Sat, 8 Dec 2018 18:43:55 +0000 (18:43 +0000)]
Merge "Add satd avx2 implementation"
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
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
James Zern [Sat, 8 Dec 2018 04:10:38 +0000 (04:10 +0000)]
Merge "test/*: 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
Yaowu Xu [Fri, 7 Dec 2018 22:53:43 +0000 (22:53 +0000)]
Merge "Optimize RDMult"
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()
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
Sai Deng [Fri, 7 Dec 2018 17:00:03 +0000 (17:00 +0000)]
Merge "Add high bit Hadamard 16x16 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
Jerome Jiang [Fri, 7 Dec 2018 02:51:24 +0000 (02:51 +0000)]
Merge "vp9 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
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
Angie Chiang [Thu, 6 Dec 2018 02:17:31 +0000 (18:17 -0800)]
Implement get_full_mv()
Change-Id: Icde1b01ea7f64e2c43dcd039cc37fd306e43030f
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
James Zern [Thu, 6 Dec 2018 22:34:14 +0000 (22:34 +0000)]
Merge "configure: test -std=c++11 before enabling unit tests"
Harish Mahendrakar [Thu, 6 Dec 2018 05:53:43 +0000 (05:53 +0000)]
Merge "Fix DoS in Error Streams"
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
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
Johann Koenig [Wed, 5 Dec 2018 23:40:57 +0000 (23:40 +0000)]
Merge "remove old visual studio support"
Jerome Jiang [Wed, 5 Dec 2018 18:48:15 +0000 (18:48 +0000)]
Merge "Refactor datarate svc test."
Johann Koenig [Wed, 5 Dec 2018 18:20:29 +0000 (18:20 +0000)]
Merge "quantize neon: fix hbd builds"
Johann [Tue, 4 Dec 2018 23:52:08 +0000 (15:52 -0800)]
remove old visual studio support
Change-Id: I86682ef1aac1991e1ef6965e7aa298f6619bee13
Sai Deng [Wed, 5 Dec 2018 17:55:58 +0000 (17:55 +0000)]
Merge "Fix overflow in calculating highbd SSIM"
Harish Mahendrakar [Wed, 5 Dec 2018 17:31:00 +0000 (17:31 +0000)]
Merge "Add Parse and Recon Split functions"
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
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
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
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
Johann Koenig [Tue, 4 Dec 2018 23:40:41 +0000 (23:40 +0000)]
Merge "Reland "third_party/googletest: update to v1.8.1""
Jerome Jiang [Tue, 4 Dec 2018 23:34:20 +0000 (23:34 +0000)]
Merge "vp9: 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
Jingning Han [Tue, 4 Dec 2018 17:33:42 +0000 (17:33 +0000)]
Merge "Clean up rc_pick_q_and_bounds_two_pass()"
Sai Deng [Tue, 4 Dec 2018 00:53:42 +0000 (00:53 +0000)]
Merge "Add high bit Hadamard 8x8 avx2 implementation"
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
Marco Paniconi [Mon, 3 Dec 2018 22:09:09 +0000 (22:09 +0000)]
Merge "vp9: Rename post_encode drop function."
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
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
Johann [Sat, 1 Dec 2018 00:27:33 +0000 (16:27 -0800)]
quantize neon: fix hbd builds
BUG=webm:1448
Change-Id: I2140fb9b6ce92716d2d9509f3031244088a62127
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
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
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
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
Jingning Han [Fri, 30 Nov 2018 21:12:51 +0000 (21:12 +0000)]
Merge "Simplify constant q mode qp selection"
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
Sai Deng [Fri, 30 Nov 2018 19:09:28 +0000 (19:09 +0000)]
Merge "Use 16 bit ints in Hadamard highbd col8 first pass"
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
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
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
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
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
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
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
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
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
Marco Paniconi [Thu, 29 Nov 2018 07:57:44 +0000 (07:57 +0000)]
Merge "vp9: 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
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
Jingning Han [Wed, 28 Nov 2018 18:35:35 +0000 (18:35 +0000)]
Merge "Remove ineffective condition from rc_pick_q_and_bounds"
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
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
Marco Paniconi [Wed, 28 Nov 2018 02:58:59 +0000 (02:58 +0000)]
Merge "vp9-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
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
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
Jingning Han [Tue, 27 Nov 2018 19:01:26 +0000 (19:01 +0000)]
Merge "Replace deprecated scoped_ptr with unique_ptr"
Johann Koenig [Tue, 27 Nov 2018 18:47:33 +0000 (18:47 +0000)]
Merge "rename quantize_x86.h"
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
Jingning Han [Tue, 27 Nov 2018 17:49:12 +0000 (09:49 -0800)]
Replace deprecated scoped_ptr with unique_ptr
Change-Id: I2793a1b65164946eb7d67d80ccba9e798db3d9af
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
Jingning Han [Tue, 27 Nov 2018 15:54:45 +0000 (15:54 +0000)]
Merge "Fix ARF rate allocation for cq mode"
Marco Paniconi [Tue, 27 Nov 2018 04:48:05 +0000 (04:48 +0000)]
Merge "VP9 SVC: fix crash on scaling partition."
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
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
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
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
Marco Paniconi [Thu, 22 Nov 2018 01:27:59 +0000 (01:27 +0000)]
Merge "vp9 screen-content: Keep lower step_param for quality layers."
Angie Chiang [Thu, 22 Nov 2018 01:20:18 +0000 (01:20 +0000)]
Merge "Fix scan_build warnings in user_priv_test.cc"
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
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
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
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
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
Angie Chiang [Wed, 21 Nov 2018 00:33:07 +0000 (16:33 -0800)]
Fix scan_build warnings in convolve_test.cc
Change-Id: I87e1c3f0492cde805b54b048385ea200652dfccc
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
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
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
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
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."
Yaowu Xu [Wed, 21 Nov 2018 01:33:50 +0000 (01:33 +0000)]
Merge "Replace int64_t with int for rdmult"
Angie Chiang [Tue, 20 Nov 2018 23:08:11 +0000 (15:08 -0800)]
Replace assert by ASSERT_TRUE
BUG=webm:1575
Change-Id: Id47930b48733159f5e967dc5fd1205e501b635b9
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
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
Marco Paniconi [Tue, 20 Nov 2018 22:06:33 +0000 (22:06 +0000)]
Merge "Disable partition scaling on 1080p and above."
Marco Paniconi [Tue, 20 Nov 2018 22:02:59 +0000 (22:02 +0000)]
Merge "vp9-svc: Reset temporal layers on scene change"
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
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
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