platform/upstream/libvpx.git
7 years agoRevert "Revert "vp9: Avoid encoder loopfilter for non-reference frames.""
Marco Paniconi [Mon, 17 Apr 2017 18:00:09 +0000 (18:00 +0000)]
Revert "Revert "vp9: Avoid encoder loopfilter for non-reference frames.""

This reverts commit e9b7f98c56b3b9c99a60eb41b83bf8346b3ad25f.

Reason for revert:
Commit d578bdad fixes the issue (encoder/decoder mismatch
in 3TL datarate test) that causes the original revert.

Original change's description:
> Revert "vp9: Avoid encoder loopfilter for non-reference frames."
>
> This reverts commit 863f860bfcf3bdc26eeecb299aa481d0f63d11ac.
>
> This causes encoder / decoder mismatches in various
> VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayers tests
>
> BUG=webm:1408
>
> Change-Id: Ic200c39d7ed9c0b0247ef562f5d6f7b2625f7e14
>

TBR=jzern@google.com,marpan@google.com,builds@webmproject.org,jianj@google.com
BUG=webm:1408

Change-Id: Ifeb81460856d1d56482d4e0477a70ee98f8bfaa6

7 years agovp9: Datarate test: modify frame flags for 3 TL.
Marco [Mon, 17 Apr 2017 16:19:03 +0000 (09:19 -0700)]
vp9: Datarate test: modify frame flags for 3 TL.

Modify the frame flags to update the ARF on top layer,
for the tests:
VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayers
VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayersFrameDropping

This is needed to fix the encode/decoder mismatches caused by 863f860,
and removed in the revert e9b7f98.

Change-Id: I6b9fecfdd17315fc0179e29949338c77636026c0

7 years agoMerge "AvgPred test: use aligned buffers"
Johann Koenig [Mon, 17 Apr 2017 15:36:41 +0000 (15:36 +0000)]
Merge "AvgPred test: use aligned buffers"

7 years agosad avg: align intermediate buffer
Johann [Fri, 14 Apr 2017 21:37:58 +0000 (14:37 -0700)]
sad avg: align intermediate buffer

comp_avg_pred has started declaring a requirement for aligned buffers.

BUG=webm:1390

Change-Id: Idaf6667498ea343e8d49b32bc9d8b9d0aa43ef5c

7 years agoMerge "Add AVX2 optimization to copy/avg functions"
James Zern [Sat, 15 Apr 2017 00:26:08 +0000 (00:26 +0000)]
Merge "Add AVX2 optimization to copy/avg functions"

7 years agoAdd AVX2 optimization to copy/avg functions
Yi Luo [Tue, 28 Mar 2017 22:30:07 +0000 (15:30 -0700)]
Add AVX2 optimization to copy/avg functions

Change-Id: Ibcef70e4fead74e2c2909330a7044a29381a8074

7 years agoMerge "Disable vpx_comp_avg_pred_sse2"
Johann Koenig [Fri, 14 Apr 2017 22:01:38 +0000 (22:01 +0000)]
Merge "Disable vpx_comp_avg_pred_sse2"

7 years agoAvgPred test: use aligned buffers
Johann [Fri, 14 Apr 2017 19:44:06 +0000 (12:44 -0700)]
AvgPred test: use aligned buffers

BUG=webm:1390

Change-Id: Idb6d1ce119a09c5e7c9f3c58bbbae3de63463d1d

7 years agoRevert "vp9: Avoid encoder loopfilter for non-reference frames."
James Zern [Fri, 14 Apr 2017 18:28:25 +0000 (11:28 -0700)]
Revert "vp9: Avoid encoder loopfilter for non-reference frames."

This reverts commit 863f860bfcf3bdc26eeecb299aa481d0f63d11ac.

This causes encoder / decoder mismatches in various
VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayers tests

BUG=webm:1408

Change-Id: Ic200c39d7ed9c0b0247ef562f5d6f7b2625f7e14

7 years agoMerge "vp9: SVC: fix to allow use_base_mv to be used for 3 layers."
Marco Paniconi [Fri, 14 Apr 2017 17:12:58 +0000 (17:12 +0000)]
Merge "vp9: SVC: fix to allow use_base_mv to be used for 3 layers."

7 years agoDisable vpx_comp_avg_pred_sse2
Johann [Fri, 14 Apr 2017 15:24:59 +0000 (08:24 -0700)]
Disable vpx_comp_avg_pred_sse2

Failures on windows:
unknown file: error: SEH exception with code 0xc0000005 thrown in the
test body.

Alignment check errors on linux:
test_libvpx: ../libvpx/vpx_dsp/variance.c:230: void
vpx_comp_avg_pred_c(uint8_t *, const uint8_t *, int, int, const uint8_t
*, int): Assertion `((intptr_t)comp_pred & 0xf) == 0' failed.

BUG=webm:1390

Change-Id: I5eed5381c0f1a8fe594a128eb415e77232f544ea

7 years agoMerge "vpx_comp_avg_pred: sse2 optimization"
Johann Koenig [Fri, 14 Apr 2017 04:10:55 +0000 (04:10 +0000)]
Merge "vpx_comp_avg_pred: sse2 optimization"

7 years agovp9: SVC: fix to allow use_base_mv to be used for 3 layers.
Marco [Fri, 14 Apr 2017 00:45:55 +0000 (17:45 -0700)]
vp9: SVC: fix to allow use_base_mv to be used for 3 layers.

Allow use_base_mv to be used for 3 spatial layers where
base is 4x4 scale from the top layer.

Change-Id: If6641baf8b8e4d0fd5dc67619d873c6d75065f43

7 years agoMerge "vp9: Avoid encoder loopfilter for non-reference frames."
Marco Paniconi [Fri, 14 Apr 2017 00:45:41 +0000 (00:45 +0000)]
Merge "vp9: Avoid encoder loopfilter for non-reference frames."

7 years agovp9: 1 pass VBR: Fix to rate control at low min-q.
Marco [Thu, 13 Apr 2017 00:06:03 +0000 (17:06 -0700)]
vp9: 1 pass VBR: Fix to rate control at low min-q.

Fix to avoid getting stuck at very low Q even
though content is changing, which can happen for --min-q=0.

Fix is to more aggressively increase active_worst_quality
when detecting significant rate_deviation at very low Q.

Change will only affect 1 pass VBR for --min-q < 4, so no
change in ytlive metrics for --min-q >= 4.

Change-Id: I4dd77dd7c08a30a4390da0ff2c8bda6fccfa76d7

7 years agovp9: Avoid encoder loopfilter for non-reference frames.
Marco [Tue, 11 Apr 2017 23:17:18 +0000 (16:17 -0700)]
vp9: Avoid encoder loopfilter for non-reference frames.

Useful for SVC, where the top layer enhancement frames may
not update any reference buffers, as is the case for the
patterns in the 1 pass CBR SVC when #temporal_layers > 1.

~3% encoder speedup for SVC patterns with temporal layers
in 1 pass CBR mode.

Updated the SVC datarate tests for the mismatch frames.
Set the frame-dropper off in some tests with #temporal_layers > 1
so we can correctly set #mismatch frames. Adjusted rate target
threshold for tests where frame-dropper was turned off.

Change-Id: Ia0c142f02100be0fed61cd2049691be9c59d6793

7 years agovpx_comp_avg_pred: sse2 optimization
Johann [Thu, 23 Mar 2017 21:54:48 +0000 (14:54 -0700)]
vpx_comp_avg_pred: sse2 optimization

Provides over 15x speedup for width > 8.

Due to smaller loads and shifting for width == 8 it gets about 8x
speedup.

For width == 4 it's only about 4x speedup because there is a lot of
shuffling and shifting to get the data properly situated.

BUG=webm:1390

Change-Id: Ice0b3dbbf007be3d9509786a61e7f35e94bdffa8

7 years agoFix an integer overflow in vp9_mcomp.c
Yunqing Wang [Mon, 10 Apr 2017 17:57:41 +0000 (10:57 -0700)]
Fix an integer overflow in vp9_mcomp.c

The MV unit test revealed an integer overflow issue in vp9_mcomp.c.
This was caused if the MV was very large. In mv_err_cost(), when
mv->row = 8184, mv->col = 8184 and ref_mv is 0, mv_cost = 34363
and error_per_bit = 132412, causing the overflow.

BUG=webm:1406

Change-Id: I35f8299f22f9bee39cd9153d7b00d0993838845e

7 years agoMerge "vp9: speed >= 8: Adjust speed settings on ARM."
Jerome Jiang [Tue, 11 Apr 2017 00:45:20 +0000 (00:45 +0000)]
Merge "vp9: speed >= 8: Adjust speed settings on ARM."

7 years agovp9: speed >= 8: Adjust speed settings on ARM.
Jerome Jiang [Mon, 10 Apr 2017 20:55:35 +0000 (13:55 -0700)]
vp9: speed >= 8: Adjust speed settings on ARM.

Set adaptive_rd_thresh to 2 when simple block yrd is not used.

Fix regression caused by computing y sad without
int_pro_motion_estimation on low res motion clips.

Overall 0.07% quality loss on rtc_derf.

Change only affects low res on speed 8.

Change-Id: Ic6a188a56529f1034d6431005fb4b0e24e8a7e27

7 years agovp9: 1 pass CBR: avoid nonrd_pick_partition on segment.
Marco [Mon, 10 Apr 2017 21:56:46 +0000 (14:56 -0700)]
vp9: 1 pass CBR: avoid nonrd_pick_partition on segment.

For speed 5, 1 pass CBR: Don't use the nonrd_pick_partition
on the segment, rather use choose_partitioning followed by
nonrd_select_partition (as is done on base segment).

Little/no quality loss on RTC and RTC_derf (< 0.3%),
speedup of at least 5%.

Change-Id: I5273d5f950e60adf5e437b4ca8c4f63964641e83

7 years agoMerge "vp9: Fix to noise estimation for temporal denoising."
Marco Paniconi [Fri, 7 Apr 2017 17:13:21 +0000 (17:13 +0000)]
Merge "vp9: Fix to noise estimation for temporal denoising."

7 years agoMerge "VP9 motion vector unit test"
Yunqing Wang [Fri, 7 Apr 2017 16:46:22 +0000 (16:46 +0000)]
Merge "VP9 motion vector unit test"

7 years agovp9: Fix to noise estimation for temporal denoising.
Marco [Thu, 6 Apr 2017 23:35:01 +0000 (16:35 -0700)]
vp9: Fix to noise estimation for temporal denoising.

If the noise estimation is avoided due to large motion,
the last_source for denoising should still be updated.

Change-Id: I67155ea7dbe9ac2785978e64a27bdafd7d57aac0

7 years agovp9: Adjust consec_zeromv threshold for aq-mode=3.
Marco [Fri, 7 Apr 2017 15:52:54 +0000 (08:52 -0700)]
vp9: Adjust consec_zeromv threshold for aq-mode=3.

To reduce refresh on partial super-blocks on boundary,
for noisy input. Reduces some artifacts on noisy input.

Change-Id: I10b5808a296874e08c7f378b3df58466591d8dbe
Edit

7 years agoMerge changes from topic 'Wshorten'
James Zern [Fri, 7 Apr 2017 07:32:14 +0000 (07:32 +0000)]
Merge changes from topic 'Wshorten'

* changes:
  configure: enable -Wshorten-64-to-32 for hbd
  vp9_encodeframe: resolve -Wshorten-64-to-32 in hbd
  Resolve -Wshorten-64-to-32 in highbd variance.

7 years agoMerge "Fix compile warnings with enable-internal-stats flag."
Jerome Jiang [Fri, 7 Apr 2017 03:34:54 +0000 (03:34 +0000)]
Merge "Fix compile warnings with enable-internal-stats flag."

7 years agoFix compile warnings with enable-internal-stats flag.
Jerome Jiang [Thu, 6 Apr 2017 20:07:53 +0000 (13:07 -0700)]
Fix compile warnings with enable-internal-stats flag.

BUG=webm:1402

Change-Id: Ibe9ecb1b559a4b989f6ccedbd097e369f6edde1e

7 years agovp9; Move the denoising condition for speed 5.
Marco [Thu, 6 Apr 2017 17:25:55 +0000 (10:25 -0700)]
vp9; Move the denoising condition for speed 5.

Move the condition for effectively disabling the denoising
for speed 5 into the vp9_denoiser_denoise().

This is cleaner, and also moving the condition into vp9_denoiser_denoise
will keep the denoiser buffer updated with the current source.
This allows for more consistent behavior if speed is changed midstream.

Change-Id: Ia001f591c56e454bf724c3ae73c024badb183ef8

7 years agoMerge "vp9: speed 8: Compute y sad without int_pro_motion_estimation."
Jerome Jiang [Thu, 6 Apr 2017 02:57:16 +0000 (02:57 +0000)]
Merge "vp9: speed 8: Compute y sad without int_pro_motion_estimation."

7 years agoMerge "Refactor: Clean memory allocation for copy partition."
Jerome Jiang [Thu, 6 Apr 2017 02:57:07 +0000 (02:57 +0000)]
Merge "Refactor: Clean memory allocation for copy partition."

7 years agoVP9 motion vector unit test
Yunqing Wang [Fri, 31 Mar 2017 17:39:57 +0000 (10:39 -0700)]
VP9 motion vector unit test

To prevent the motion vector out of range bug, added a motion vector unit
test in VP9. In the 4k video encoding, always forced to use extreme motion
vectors and also encouraged to use INTER modes. In the decoding, checked if
the motion vector was valid, and also checked the encoder/decoder mismatch.

The tests showed that this unit test could reveal the issue we saw before.

Change-Id: I0a880bd847dad8a13f7fd2012faf6868b02fa3b4

7 years agoconfigure: enable -Wshorten-64-to-32 for hbd
James Zern [Wed, 5 Apr 2017 04:08:51 +0000 (21:08 -0700)]
configure: enable -Wshorten-64-to-32 for hbd

Change-Id: I4041f3fc4aabc7a2251c44c75a477b659284c3cf

7 years agovp9_encodeframe: resolve -Wshorten-64-to-32 in hbd
James Zern [Wed, 5 Apr 2017 04:04:18 +0000 (21:04 -0700)]
vp9_encodeframe: resolve -Wshorten-64-to-32 in hbd

vp9_high_get_sby_perpixel_variance the variance operated on in is
already in 32-bits

Change-Id: I97006eb9c08dbd0f88ee35e1a1ca205737508296

7 years agoResolve -Wshorten-64-to-32 in highbd variance.
James Zern [Wed, 5 Apr 2017 03:37:17 +0000 (20:37 -0700)]
Resolve -Wshorten-64-to-32 in highbd variance.

For 8-bit the subtrahend is small enough to fit into uint32_t.

This is the same that was done for:
c0241664a Resolve -Wshorten-64-to-32 in variance.

For 10/12-bit apply:
63a37d16f Prevent negative variance

Change-Id: Iab35e3f3f269035e17c711bd6cc01272c3137e1d

7 years agovp9: speed 8: Compute y sad without int_pro_motion_estimation.
Jerome Jiang [Wed, 5 Apr 2017 00:47:03 +0000 (17:47 -0700)]
vp9: speed 8: Compute y sad without int_pro_motion_estimation.

Little change in overall PSNR in rtc. 2-4% speedup on VGA on ARM.

Change-Id: I3395806d7afd456deacd4077c330adca13ab0645

7 years agoMerge "vp9: Temporal denoising: avoid denoising for speed <= 5."
Marco Paniconi [Thu, 6 Apr 2017 00:25:44 +0000 (00:25 +0000)]
Merge "vp9: Temporal denoising: avoid denoising for speed <= 5."

7 years agovp9: Temporal denoising: avoid denoising for speed <= 5.
Marco [Wed, 5 Apr 2017 23:38:33 +0000 (16:38 -0700)]
vp9: Temporal denoising: avoid denoising for speed <= 5.

Temporal denoiser runs in non-rd pickmode, so it is only used
for speed >= 5. Regression exists for speed 5, due to use of
reference_partition (which use non-rd pickmode for partitioning).
Avoid denoising for now at speed 5.

Change-Id: I74a74d2e1404d7cfd33dcf4ec06dd2e503256cf0

7 years agoRefactor: Clean memory allocation for copy partition.
Jerome Jiang [Fri, 31 Mar 2017 21:24:03 +0000 (14:24 -0700)]
Refactor: Clean memory allocation for copy partition.

Move the memory allocation from setting speed features.

Change-Id: I2e89dfaeb46daee63effe5a5df62feed732aa990

7 years agoUpdate 32x32 high bitdepth idct NEON optimization
Linfeng Zhang [Wed, 5 Apr 2017 21:41:35 +0000 (14:41 -0700)]
Update 32x32 high bitdepth idct NEON optimization

Preparation of CONVERT_TO_BYTEPTR/SHORTPTR clean up.

BUG=webm:1388

Change-Id: I928d30a5698023bb90888d783cf81c51ec183760

7 years agovp9: Remove legacy comments for avg_source_sad.
Jerome Jiang [Tue, 4 Apr 2017 23:28:27 +0000 (16:28 -0700)]
vp9: Remove legacy comments for avg_source_sad.

Change-Id: Ia6e8614535a097f17f37fc382cef8e22e03b70f6

7 years agovp9: Adjust condition of golden update with cyclic refresh.
Marco [Tue, 4 Apr 2017 16:53:13 +0000 (09:53 -0700)]
vp9: Adjust condition of golden update with cyclic refresh.

Base the low_content_frame metric on the motion vectors,
and adjust the logic for preventing golden update.

Small change in behavior: small positive gain (~0.2-1%) on clips
with high activity.

Change-Id: I0b861c8e9666cd82b45cde5ee57ee8a1e5ab453c

7 years agovp9: 1 pass CBR: cleanup to cyclic refresh.
Marco [Wed, 29 Mar 2017 23:57:53 +0000 (16:57 -0700)]
vp9: 1 pass CBR: cleanup to cyclic refresh.

Code cleanup: merged two functions that were doing postencode
update for cylic refresh, remove some unused code and fix comments.

No change in behavior.

Change-Id: I9be0d7e346d34dec29bf4e5bb380a7bf81c8480a

7 years agoMerge "Fix for out of range motion vector bug in sub-pel motion estimation"
Yunqing Wang [Mon, 3 Apr 2017 18:27:56 +0000 (18:27 +0000)]
Merge "Fix for out of range motion vector bug in sub-pel motion estimation"

7 years agoMerge "vp9: SVC: Fix issue with artifact for svc-denoising."
Marco Paniconi [Mon, 3 Apr 2017 16:23:25 +0000 (16:23 +0000)]
Merge "vp9: SVC: Fix issue with artifact for svc-denoising."

7 years agoFix for out of range motion vector bug in sub-pel motion estimation
Ranjit Kumar Tulabandu [Wed, 22 Mar 2017 14:08:59 +0000 (19:38 +0530)]
Fix for out of range motion vector bug in sub-pel motion estimation

BUG=webm:1397

(yunqingwang)
To verify that this patch wouldn't cause much performance change,
the Borg tests were run. Here was the result:
       avg_psnr   overall_psnr  ssim
hdres: -0.002     0.006         0.013
midres:   0         0             0
lowres:   0         0             0

Change-Id: Iae395ae7b741e0513cf5bab9dcace110b792a67d

7 years agoMerge "Enhance the row mt sync read to accept the sync_range greater than 1"
Yunqing Wang [Mon, 3 Apr 2017 15:59:50 +0000 (15:59 +0000)]
Merge "Enhance the row mt sync read to accept the sync_range greater than 1"

7 years agoEnhance the row mt sync read to accept the sync_range greater than 1
Yunqing Wang [Tue, 28 Mar 2017 18:27:31 +0000 (11:27 -0700)]
Enhance the row mt sync read to accept the sync_range greater than 1

The row mt sync read uses sync_range = 1, and wouldn't work if we want
to use a sync_range that is greater than 1. To make it work, this sync
read code is modified. Pass in col instead of col - 1 to make it
consistent with other row mt code in VP9, and then add 1 in "while"
codition.

Change-Id: I4a0e487190ac5d47b8216368da12d80fec779c1a

7 years agovp9: SVC: Fix issue with artifact for svc-denoising.
Marco [Fri, 31 Mar 2017 00:08:44 +0000 (17:08 -0700)]
vp9: SVC: Fix issue with artifact for svc-denoising.

Issue/bug happens for denoising with spatial layers, where
the golden (spatial) reference is used in pickmode, but
denoising is only done wrt to last (temporal).

Fix is to make sure set_ref_ptrs is set before build predictors
in denoiser.

Change-Id: I793cf441341edf7c4a88b8ab1e1b22b3cb0eb508

7 years agoMerge changes from topic 'rm-dec-frame-parallel'
James Zern [Thu, 30 Mar 2017 19:07:43 +0000 (19:07 +0000)]
Merge changes from topic 'rm-dec-frame-parallel'

* changes:
  vpxdec: silently ignore -frame-parallel
  vp9: make VPX_CODEC_USE_FRAME_THREADING a no-op

7 years agovpxdec: silently ignore -frame-parallel
James Zern [Thu, 30 Mar 2017 06:31:53 +0000 (23:31 -0700)]
vpxdec: silently ignore -frame-parallel

BUG=webm:1395

Change-Id: Ibf47cc931e51b71e49067c6d7b7a39ab57c11c96

7 years agovp9: make VPX_CODEC_USE_FRAME_THREADING a no-op
James Zern [Thu, 30 Mar 2017 06:30:11 +0000 (23:30 -0700)]
vp9: make VPX_CODEC_USE_FRAME_THREADING a no-op

this is unmaintained and due to be removed

BUG=webm:1395

Change-Id: Iaffa6aa057c820fd1a182b93ebb45d4286e1306e

7 years agortcd,unit tests: fix ppc64 build
James Zern [Thu, 30 Mar 2017 05:51:22 +0000 (22:51 -0700)]
rtcd,unit tests: fix ppc64 build

match ppc* in rtcd to ensure vsx is included

Change-Id: I331a5d35e7160eeb69ebd14b98ba03ec5be6c600

7 years agovp9: SVC: fix to allow output of denoised result.
Marco [Wed, 29 Mar 2017 21:01:57 +0000 (14:01 -0700)]
vp9: SVC: fix to allow output of denoised result.

Change-Id: Iaf55cfb5e9621d074eb33d6a32f184e4777968f8

7 years agovp9: 1 pass SVC: Modify condition for intra-mode search.
Marco [Wed, 29 Mar 2017 16:13:56 +0000 (09:13 -0700)]
vp9: 1 pass SVC: Modify condition for intra-mode search.

Temporary override to condition for disallowing intra-search in SVC,
since golden (spatial) reference is currently suppressed due to
artifact issue.

Change-Id: I28ed7fdddc9fcdbcc0a4175a247a3ecc94c11767

7 years agoMerge "rate_hist: add parameter validation"
James Zern [Wed, 29 Mar 2017 02:41:07 +0000 (02:41 +0000)]
Merge "rate_hist: add parameter validation"

7 years agoMerge changes from topic 'sync-highbd-intrapred'
James Zern [Wed, 29 Mar 2017 02:39:21 +0000 (02:39 +0000)]
Merge changes from topic 'sync-highbd-intrapred'

* changes:
  intrapred: sync highbd_d135_predictor w/d135_
  intrapred: specialize highbd 4x4 predictors
  intrapred: rename d63f to d63e
  remove CONFIG_MISC_FIXES

7 years agoMerge ".mailmap: add an additional entry for Yaowu Xu"
James Zern [Wed, 29 Mar 2017 01:56:57 +0000 (01:56 +0000)]
Merge ".mailmap: add an additional entry for Yaowu Xu"

7 years agoMerge "vpx_comp_avg_pred: add test"
Johann Koenig [Tue, 28 Mar 2017 21:50:00 +0000 (21:50 +0000)]
Merge "vpx_comp_avg_pred: add test"

7 years agovpx_comp_avg_pred: add test
Johann [Thu, 23 Mar 2017 20:04:28 +0000 (13:04 -0700)]
vpx_comp_avg_pred: add test

BUG=webm:1389

Change-Id: I23cd65f1939db026958ccb5d70b8c5cc9aa5bc51

7 years agovp9: Speed >= 8: avoid chrome check under some condition.
Marco [Fri, 24 Mar 2017 18:31:19 +0000 (11:31 -0700)]
vp9: Speed >= 8: avoid chrome check under some condition.

For non-rd variance partition, avoid the chrome check
unless y_sad is below some threshold.

Small decrease in avgPSNR (~0.3) on RTC set.
Small/negligible decrease on RTC_derf.

Change-Id: I7af44235af514058ccf9a4f10bb737da9d720866

7 years agovp9: 1 pass: Move source sad computation into encodeframe loop.
Marco [Thu, 23 Mar 2017 21:37:47 +0000 (14:37 -0700)]
vp9: 1 pass: Move source sad computation into encodeframe loop.

Refactor to split the 1 passs source sad computation into scene
detection (currently used for VBR and screen-content mode), and
superblock based source sad computation (used in non-rd CBR mode).

This allows the source sad computation for CBR mode to be
multi-threaded.

No change in compression.

Change-Id: I112f2918613ccbd37c1771d852606d3af18c1388

7 years agointrapred: sync highbd_d135_predictor w/d135_
James Zern [Tue, 21 Mar 2017 03:24:30 +0000 (20:24 -0700)]
intrapred: sync highbd_d135_predictor w/d135_

previously:
05437805f intrapred/d135: flatten border results before storing

BUG=webm:1316

Change-Id: I3b8bd89117ad7f2f4560b57f7c148da781e86f85

7 years agointrapred: specialize highbd 4x4 predictors
James Zern [Sat, 25 Mar 2017 02:24:39 +0000 (19:24 -0700)]
intrapred: specialize highbd 4x4 predictors

d207/d63/d45/d117/d135/d153

~9-45% better depending on the predictor on 32-bit ARM, similar range on
x86-64

this matches the non-highbitdepth implementation

BUG=webm:1316

Change-Id: Iddebdf7c58c6f31c47cae04da95c6e5318200e4c

7 years agointrapred: rename d63f to d63e
James Zern [Sat, 25 Mar 2017 02:22:41 +0000 (19:22 -0700)]
intrapred: rename d63f to d63e

this is consistent with he/ve/d45e

Change-Id: I75641ae5667430b0ecd370db86fff6e666cb577d

7 years agoremove CONFIG_MISC_FIXES
James Zern [Sat, 25 Mar 2017 01:56:15 +0000 (18:56 -0700)]
remove CONFIG_MISC_FIXES

this belonged to vp10 with the changes now migrated to av1.

Change-Id: Ie30ead3e7b71f465bc14136e1b6f156ea978c43f

7 years agovp9: Fix to condition on using source_sad for 1 pass real-time.
Marco [Thu, 23 Mar 2017 21:32:43 +0000 (14:32 -0700)]
vp9: Fix to condition on using source_sad for 1 pass real-time.

Make the source_sad feature work properly for cases of VBR or
screen_content with SVC.

Added unittest for SVC with screen-content on.

Change-Id: Iba5254fd8833fb11da521e00cc1317ec81d3f89b

7 years agorate_hist: add parameter validation
James Zern [Thu, 23 Mar 2017 21:47:07 +0000 (14:47 -0700)]
rate_hist: add parameter validation

tolerate a NULL hist being passed as a result of invalid parameters
passed to init_rate_histogram(). this fixes a divide by zero in
init_rate_histogram() with an invalid fps.

BUG=webm:1383

Change-Id: Id203e0f3b18d67a4a09aaf206abcce4708f966ec

7 years agoMerge "vp9 temporal filter: additional test"
Johann Koenig [Thu, 23 Mar 2017 18:38:35 +0000 (18:38 +0000)]
Merge "vp9 temporal filter: additional test"

7 years agoMerge changes Ie989e60c,Ifc110b12
Alex Converse [Thu, 23 Mar 2017 18:05:13 +0000 (18:05 +0000)]
Merge changes Ie989e60c,Ifc110b12

* changes:
  Backport "Optimize the use case of token_cost table" to VP9
  Drop vp9_get_token_extracost

7 years agoMerge "vp9: Non-rd partition: avoid unneeded call to chrome_check"
Marco Paniconi [Thu, 23 Mar 2017 14:17:48 +0000 (14:17 +0000)]
Merge "vp9: Non-rd partition: avoid unneeded call to chrome_check"

7 years agoMerge "Fix mips msa fwd xform mismatch"
Kaustubh Raste [Thu, 23 Mar 2017 07:44:16 +0000 (07:44 +0000)]
Merge "Fix mips msa fwd xform mismatch"

7 years agovp9: Non-rd partition: avoid unneeded call to chrome_check
Marco [Thu, 23 Mar 2017 05:36:19 +0000 (22:36 -0700)]
vp9: Non-rd partition: avoid unneeded call to chrome_check

Since y_sad is not computed yet (on the early exit due to source_sad),
no need to check for setting color_sensitiviy.

Only affects speed >=8. No change in behavior.

Change-Id: I3a6f2d20fed38d8b8ec51b75bcacf9a21f2db916

7 years agoMerge "vp9_rdopt: correct size to vpx_sum_squares_2d_i16"
James Zern [Thu, 23 Mar 2017 00:53:21 +0000 (00:53 +0000)]
Merge "vp9_rdopt: correct size to vpx_sum_squares_2d_i16"

7 years agoMerge "vp9: Adjust some speed settings for speed 8."
Marco Paniconi [Wed, 22 Mar 2017 22:56:17 +0000 (22:56 +0000)]
Merge "vp9: Adjust some speed settings for speed 8."

7 years agovp9: Adjust some speed settings for speed 8.
Marco [Wed, 22 Mar 2017 19:15:06 +0000 (12:15 -0700)]
vp9: Adjust some speed settings for speed 8.

Allow for simple_block_rd for VGA resoln, and reduce
adaptive_rd_thresh to 1.

On average no loss on RTC set, ~4% speedup on mac.

Change-Id: Ib549c4061c853776062b5e34040f839d470fbebc

7 years agoMerge "vp9: Enable adaptive_rd_threshold for row mt for realtime speed 8."
Jerome Jiang [Wed, 22 Mar 2017 22:02:24 +0000 (22:02 +0000)]
Merge "vp9: Enable adaptive_rd_threshold for row mt for realtime speed 8."

7 years agovp9 temporal filter: additional test
Johann [Wed, 22 Mar 2017 18:04:20 +0000 (11:04 -0700)]
vp9 temporal filter: additional test

Change tests to reflect use. Input sizes will be 8 or 16 (but not
necessarily square).

filter_weight is capped at 2 and filter_strength at 6

Speed test, disabled by default.

Change-Id: Idfde9d6c4b7d93aaf0e641b0f4862c15e2a2af7a

7 years agoMerge "vp9 temporal filter: add const to function prototype"
Johann Koenig [Wed, 22 Mar 2017 19:36:40 +0000 (19:36 +0000)]
Merge "vp9 temporal filter: add const to function prototype"

7 years agoMerge "idct_neon: prefix non-static functions w/'vpx_'"
James Zern [Wed, 22 Mar 2017 19:30:11 +0000 (19:30 +0000)]
Merge "idct_neon: prefix non-static functions w/'vpx_'"

7 years agovp9_rdopt: correct size to vpx_sum_squares_2d_i16
James Zern [Wed, 22 Mar 2017 06:29:12 +0000 (23:29 -0700)]
vp9_rdopt: correct size to vpx_sum_squares_2d_i16

the current implementations expect pixel size, not the block type

BUG=webm:1392

Change-Id: Ib91e9f30a1f56e13566b1fb76f089dae9bb50cdc

7 years agoidct_neon: prefix non-static functions w/'vpx_'
James Zern [Tue, 21 Mar 2017 05:46:53 +0000 (22:46 -0700)]
idct_neon: prefix non-static functions w/'vpx_'

Change-Id: I94fcdeae18468e6ef0cb7119b8142d982a048031

7 years agovp9 temporal filter: add const to function prototype
Johann [Wed, 22 Mar 2017 17:15:22 +0000 (10:15 -0700)]
vp9 temporal filter: add const to function prototype

The input frames are not modified.

Change-Id: Ideb810e3c5afeb4dbdc4c7d54024c43a8129ad39

7 years agoFix mips msa fwd xform mismatch
Kaustubh Raste [Wed, 22 Mar 2017 08:31:03 +0000 (14:01 +0530)]
Fix mips msa fwd xform mismatch

Change-Id: I32a6df11463144aa1a562256ee7d57a41fd678d6

7 years agovp9: Enable adaptive_rd_threshold for row mt for realtime speed 8.
Jerome Jiang [Tue, 14 Mar 2017 20:45:20 +0000 (13:45 -0700)]
vp9: Enable adaptive_rd_threshold for row mt for realtime speed 8.

Change it to row based array to avoid the slow down cause by sync.
row-mt on, speed 8, 2 threads: ~4% speedup for VGA on ARM benefited
from adaptive_rd_threshold.

Change-Id: I887e65a53af20a6c4f48d293daaee09dab3512cf

7 years agoMerge "vp9: Modify datarate tests to cover denoising with multi-threading."
Marco Paniconi [Tue, 21 Mar 2017 23:44:05 +0000 (23:44 +0000)]
Merge "vp9: Modify datarate tests to cover denoising with multi-threading."

7 years agoMerge "Fix the data race caused by vp9 denoiser."
Jerome Jiang [Tue, 21 Mar 2017 23:27:48 +0000 (23:27 +0000)]
Merge "Fix the data race caused by vp9 denoiser."

7 years agovp9: Modify datarate tests to cover denoising with multi-threading.
Marco [Tue, 21 Mar 2017 05:15:13 +0000 (22:15 -0700)]
vp9: Modify datarate tests to cover denoising with multi-threading.

Change-Id: I6ed48a630edf9923c25a05deaca50e0afec43918

7 years agoFix the data race caused by vp9 denoiser.
Jerome Jiang [Tue, 21 Mar 2017 22:33:42 +0000 (15:33 -0700)]
Fix the data race caused by vp9 denoiser.

BUG=webm:1391

Change-Id: I9669ae62fe9c695d4c6f9973094cb0f39bed51c7

7 years agoMerge "Make butterfly_self() signature consistent with butterfly()"
Yi Luo [Tue, 21 Mar 2017 22:32:20 +0000 (22:32 +0000)]
Merge "Make butterfly_self() signature consistent with butterfly()"

7 years agoCode refactoring in the partition search
Yunqing Wang [Tue, 21 Mar 2017 16:47:55 +0000 (09:47 -0700)]
Code refactoring in the partition search

Computed the partition search early termination score in a separate
function.

Change-Id: I1894b517ff179a38b1c05e054d373ac4b7f4cbb4

7 years agoMake butterfly_self() signature consistent with butterfly()
Yi Luo [Tue, 21 Mar 2017 00:18:10 +0000 (17:18 -0700)]
Make butterfly_self() signature consistent with butterfly()

- Refer to patch: 48fca113d inv_txfm_ssse3,butterfly: fix win32 abi
  compatibility.
- Change four butterfly() calls to butterfly_self(), to simplify the
  operations.

Change-Id: Ib2a8cfe6cddcaf0a59e6e6270d8380055ea42ef3

7 years ago.mailmap: add an additional entry for Yaowu Xu
James Zern [Tue, 21 Mar 2017 05:39:40 +0000 (22:39 -0700)]
.mailmap: add an additional entry for Yaowu Xu

Change-Id: I26b928848a7e72ff5ca25001ed6991c95f5992a5

7 years agoMerge "Add vpx_highbd_idct32x32_1024_add_neon()"
James Zern [Tue, 21 Mar 2017 03:27:35 +0000 (03:27 +0000)]
Merge "Add vpx_highbd_idct32x32_1024_add_neon()"

7 years agoMerge "Add vpx_highbd_idct32x32_34_add_neon()"
James Zern [Tue, 21 Mar 2017 03:02:50 +0000 (03:02 +0000)]
Merge "Add vpx_highbd_idct32x32_34_add_neon()"

7 years agoMerge "vp9: Nonrd variance partition: improve split to 16x16."
Marco Paniconi [Tue, 21 Mar 2017 00:17:35 +0000 (00:17 +0000)]
Merge "vp9: Nonrd variance partition: improve split to 16x16."

7 years agoMerge "Record the sum of tx block eobs in the partition block"
Yunqing Wang [Mon, 20 Mar 2017 23:20:12 +0000 (23:20 +0000)]
Merge "Record the sum of tx block eobs in the partition block"

7 years agovp9: Nonrd variance partition: improve split to 16x16.
Marco [Mon, 20 Mar 2017 16:16:23 +0000 (09:16 -0700)]
vp9: Nonrd variance partition: improve split to 16x16.

Add additional condition to split to 16x16, for resolutions <= 360p,
reduces dragging artifact near moving boundary.

Small/no change on RTC metrics.

Change-Id: I314694f2166435d918f74e7ab42f002b07f40dae

7 years agoMerge "vp9: Use sb content measure to bias against golden."
Marco Paniconi [Mon, 20 Mar 2017 21:35:11 +0000 (21:35 +0000)]
Merge "vp9: Use sb content measure to bias against golden."

7 years agovp9: Use sb content measure to bias against golden.
Marco [Thu, 16 Mar 2017 22:55:33 +0000 (15:55 -0700)]
vp9: Use sb content measure to bias against golden.

For each superblock, keep track of how far from current frame
was the last significant content change, and use that (along
with GF distance), to turnoff GF search in non-rd pickmode.

Only enabled for speed >= 8.

avgPNSR on RTC/RTC_derf down by ~0.9/1.2.
Speedup on mac: ~3-5%.
Speedup on arm: 3.6% for VGA and 4.4% for HD.

Change-Id: Ic3f3d6a2af650aca6ba0064d2b1db8d48c035ac7