platform/upstream/libvpx.git
7 years agoReplace idct8x8_12_add_ssse3 assembly code with intrinsics
Yi Luo [Wed, 8 Feb 2017 00:40:10 +0000 (16:40 -0800)]
Replace idct8x8_12_add_ssse3 assembly code with intrinsics

- Performance achieves the same as assembly.
- Unit tests pass.

Change-Id: I6eacfbbd826b3946c724d78fbef7948af6406ccd

7 years agoMerge "Add vpx_idct16x16_38_add_c()"
Linfeng Zhang [Wed, 8 Feb 2017 17:20:19 +0000 (17:20 +0000)]
Merge "Add vpx_idct16x16_38_add_c()"

7 years agoMerge "block_error_fp highbd sse2: use tran_low_t for coeff"
Johann Koenig [Tue, 7 Feb 2017 23:26:09 +0000 (23:26 +0000)]
Merge "block_error_fp highbd sse2: use tran_low_t for coeff"

7 years agoMerge "vp9: Denoiser speed-up: increase partition and ac skip thresholds."
Marco Paniconi [Tue, 7 Feb 2017 22:24:59 +0000 (22:24 +0000)]
Merge "vp9: Denoiser speed-up: increase partition and ac skip thresholds."

7 years agoMerge "Row based multi-threading of ARNR filtering stage"
Yunqing Wang [Tue, 7 Feb 2017 19:55:40 +0000 (19:55 +0000)]
Merge "Row based multi-threading of ARNR filtering stage"

7 years agoMerge "vp9: Adjust rate_err threshold for setting active_worst factor."
Marco Paniconi [Tue, 7 Feb 2017 19:25:47 +0000 (19:25 +0000)]
Merge "vp9: Adjust rate_err threshold for setting active_worst factor."

7 years agovp9: Denoiser speed-up: increase partition and ac skip thresholds.
Marco [Tue, 7 Feb 2017 01:02:28 +0000 (17:02 -0800)]
vp9: Denoiser speed-up: increase partition and ac skip thresholds.

Add factor to increase varianace partition and ac skip thresholds,
under certain conditions (noise level and sum_diff), to increase
denoiser speed.

Change-Id: I7671140ef3598bf5f114a72623d68792bcd7b77b

7 years agoAdd vpx_idct16x16_38_add_c()
Linfeng Zhang [Wed, 11 Jan 2017 20:22:37 +0000 (12:22 -0800)]
Add vpx_idct16x16_38_add_c()

When eob is less than or equal to 38 for 16x16 idct, call this function.

Change-Id: Ief6f3fb16a49ace3c92cebf4e220bf5bf52a6087

7 years agovp9: Adjust rate_err threshold for setting active_worst factor.
Marco [Tue, 7 Feb 2017 17:35:56 +0000 (09:35 -0800)]
vp9: Adjust rate_err threshold for setting active_worst factor.

Only affects 1 pass vbr.
Small improvement on ytlive set.

Change-Id: I09a7456fe658fbea82ece1035cf683bd8bd8bd14

7 years agoMerge "Update 16x16 8-bit idct NEON intrinsics"
Linfeng Zhang [Tue, 7 Feb 2017 16:52:39 +0000 (16:52 +0000)]
Merge "Update 16x16 8-bit idct NEON intrinsics"

7 years agoblock_error_fp highbd sse2: use tran_low_t for coeff
Johann [Thu, 2 Feb 2017 23:28:16 +0000 (15:28 -0800)]
block_error_fp highbd sse2: use tran_low_t for coeff

BUG=webm:1365

Change-Id: Id2ed3ebaaaa6a4b68628c23e08b64ea5f1341761

7 years agoRow based multi-threading of ARNR filtering stage
Ranjit Kumar Tulabandu [Mon, 6 Feb 2017 13:44:16 +0000 (19:14 +0530)]
Row based multi-threading of ARNR filtering stage

Change-Id: Ic238d32c7e10b730342224ab56712a89a6026a8f

7 years agoMerge "highbd x86: consolidate tran_low_t conversions"
Johann Koenig [Tue, 7 Feb 2017 02:49:58 +0000 (02:49 +0000)]
Merge "highbd x86: consolidate tran_low_t conversions"

7 years agovp9: speed 8: Tune threshold of ac skip and partitioning.
Jerome Jiang [Fri, 3 Feb 2017 01:51:01 +0000 (17:51 -0800)]
vp9: speed 8: Tune threshold of ac skip and partitioning.

Threshold for partitioning only affects VGA and lower res.
0.07% quality regression is observed in borg tests on rtc_derf
and 0.2% regression on rtc.
5.6% speed up for low res and 6.8% for VGA on Nexus 6.

Change-Id: If85a2919b48c991de66059c90f32ed06980452be

7 years agohighbd x86: consolidate tran_low_t conversions
Johann [Thu, 2 Feb 2017 22:17:26 +0000 (14:17 -0800)]
highbd x86: consolidate tran_low_t conversions

Create new helper files specifically for converting tran_low_t types.

Change-Id: I7c4c458ef910f3b3d10a3cfbf9df4de7682fd905

7 years agoMerge "Changes to facilitate multi-threading of encoding stage"
Yunqing Wang [Sat, 4 Feb 2017 01:02:29 +0000 (01:02 +0000)]
Merge "Changes to facilitate multi-threading of encoding stage"

7 years agoFix visual studio build failure
Yunqing Wang [Fri, 3 Feb 2017 16:29:21 +0000 (08:29 -0800)]
Fix visual studio build failure

Fixed the following issue.
..\test\vp9_ethread_test.cc(69): warning C4805: '|=' : unsafe mix of type 'bool' and type 'int' in operation [C:\src\buildbot\test-libvpx\tests\dveCPjwhBE\.build-x86_64-win64-vs10\test_libvpx.vcxproj]
..\test\vp9_ethread_test.cc(69): warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) [C:\src\buildbot\test-libvpx\tests\dveCPjwhBE\.build-x86_64-win64-vs10\test_libvpx.vcxproj]

Change-Id: I37f897cf12a0b7500d2fcbac9e4615f08a83fdb4

7 years agoMerge "Add unit tests for vp9_block_error_fp."
Jerome Jiang [Thu, 2 Feb 2017 22:20:42 +0000 (22:20 +0000)]
Merge "Add unit tests for vp9_block_error_fp."

7 years agoMerge "Add SSSE3 intrinsic 8x8 inverse 2D-DCT"
Jingning Han [Thu, 2 Feb 2017 22:18:31 +0000 (22:18 +0000)]
Merge "Add SSSE3 intrinsic 8x8 inverse 2D-DCT"

7 years agoAdd unit tests for vp9_block_error_fp.
Jerome Jiang [Wed, 1 Feb 2017 04:21:55 +0000 (20:21 -0800)]
Add unit tests for vp9_block_error_fp.

BUG=webm:1365

Change-Id: I004e5cd7ca331d14b31b7fc3edeee45fce064026

7 years agoMerge "Update third_party/googletest to 1.8.0"
Johann Koenig [Thu, 2 Feb 2017 20:15:45 +0000 (20:15 +0000)]
Merge "Update third_party/googletest to 1.8.0"

7 years agoUpdate third_party/googletest to 1.8.0
Johann [Thu, 26 Jan 2017 22:34:45 +0000 (14:34 -0800)]
Update third_party/googletest to 1.8.0

Change-Id: If61137e28291f2a0911e9260eb58f234e0d8594c

7 years agoChanges to facilitate multi-threading of encoding stage
Ranjit Kumar Tulabandu [Thu, 2 Feb 2017 08:49:29 +0000 (14:19 +0530)]
Changes to facilitate multi-threading of encoding stage

Modified the encoding stage to have row level entry points with relevant
initializations and to access the token information at row level

Change-Id: Ife10e55a7c1a420ee906d711caf75002688d9e39

7 years agoMerge "Add mips msa sum_squares_2d_i16 function"
Kaustubh Raste [Thu, 2 Feb 2017 08:09:21 +0000 (08:09 +0000)]
Merge "Add mips msa sum_squares_2d_i16 function"

7 years agoMerge "Remove neon assembly for idct 16x16 and 8x8"
Johann Koenig [Thu, 2 Feb 2017 03:25:31 +0000 (03:25 +0000)]
Merge "Remove neon assembly for idct 16x16 and 8x8"

7 years agoMerge changes I43521ad3,I013659f6
Johann Koenig [Thu, 2 Feb 2017 03:03:58 +0000 (03:03 +0000)]
Merge changes I43521ad3,I013659f6

* changes:
  satd highbd neon: use tran_low_t for coeff
  satd highbd sse2: use tran_low_t for coeff

7 years agoUpdate 16x16 8-bit idct NEON intrinsics
Linfeng Zhang [Mon, 30 Jan 2017 20:25:58 +0000 (12:25 -0800)]
Update 16x16 8-bit idct NEON intrinsics

Remove redundant memory accesses.

Change-Id: I8049074bdba5f49eab7e735b2b377423a69cd4c8

7 years agoAdd SSSE3 intrinsic 8x8 inverse 2D-DCT
Jingning Han [Wed, 1 Feb 2017 20:19:01 +0000 (12:19 -0800)]
Add SSSE3 intrinsic 8x8 inverse 2D-DCT

The intrinsic version reduces the average cycles from 183 to 175.

Change-Id: I7c1bcdb0a830266e93d8347aed38120fb3be0e03

7 years agoMerge "Changes to facilitate row based multi-threading of ARNR filtering"
Yunqing Wang [Wed, 1 Feb 2017 22:04:14 +0000 (22:04 +0000)]
Merge "Changes to facilitate row based multi-threading of ARNR filtering"

7 years agoMerge changes I374dfc08,I7e15192e,Ica414007
Johann Koenig [Wed, 1 Feb 2017 21:56:35 +0000 (21:56 +0000)]
Merge changes I374dfc08,I7e15192e,Ica414007

* changes:
  hadamard highbd ssse3: use tran_low_t for coeff
  hadamard highbd neon: use tran_low_t for coeff
  hadamard highbd sse2: use tran_low_t for coeff

7 years agoChanges to facilitate row based multi-threading of ARNR filtering
Ranjit Kumar Tulabandu [Wed, 1 Feb 2017 11:04:49 +0000 (16:34 +0530)]
Changes to facilitate row based multi-threading of ARNR filtering

Change-Id: I2fd72af00afbbeb903e4fe364611abcc148f2fbb

7 years agoMerge "vp9_rdopt: declare 'c' closer to use"
Johann Koenig [Wed, 1 Feb 2017 20:55:11 +0000 (20:55 +0000)]
Merge "vp9_rdopt: declare 'c' closer to use"

7 years agovp9_rdopt: declare 'c' closer to use
Johann [Tue, 31 Jan 2017 23:35:20 +0000 (15:35 -0800)]
vp9_rdopt: declare 'c' closer to use

Clears up static clang analysis warning regarding a dead store. Only
declare 'c' when it will be used.

Change-Id: I1ac0fc7f94bc44da63938c63cd1efcd6b95e0eb3

7 years agoMerge "deblock: annotate postproc parameters"
Johann Koenig [Wed, 1 Feb 2017 19:57:29 +0000 (19:57 +0000)]
Merge "deblock: annotate postproc parameters"

7 years agosatd highbd neon: use tran_low_t for coeff
Johann [Tue, 31 Jan 2017 00:03:05 +0000 (16:03 -0800)]
satd highbd neon: use tran_low_t for coeff

BUG=webm:1365

Change-Id: I43521ad32b6c96737a8ef2b8c327f901fd7eaf84

7 years agosatd highbd sse2: use tran_low_t for coeff
Johann [Mon, 30 Jan 2017 19:39:02 +0000 (11:39 -0800)]
satd highbd sse2: use tran_low_t for coeff

BUG=webm:1365

Change-Id: I013659f6b9fbf9cc52ab840eae520fe0b5f883fb

7 years agohadamard highbd ssse3: use tran_low_t for coeff
Johann [Tue, 31 Jan 2017 16:16:19 +0000 (08:16 -0800)]
hadamard highbd ssse3: use tran_low_t for coeff

BUG=webm:1365

Change-Id: I374dfc08732932382043905f128e928b08cb4f57

7 years agohadamard highbd neon: use tran_low_t for coeff
Johann [Tue, 31 Jan 2017 00:16:27 +0000 (16:16 -0800)]
hadamard highbd neon: use tran_low_t for coeff

BUG=webm:1365

Change-Id: I7e15192ead3a3631755b386f102c979f06e26279

7 years agohadamard highbd sse2: use tran_low_t for coeff
Johann [Fri, 27 Jan 2017 21:37:36 +0000 (13:37 -0800)]
hadamard highbd sse2: use tran_low_t for coeff

BUG=webm:1365

Change-Id: Ica414007d8412ceebfffa9e58e8416226a3fe934

7 years agoMerge "quantize ssse3: remove unused pxor"
Johann Koenig [Wed, 1 Feb 2017 19:41:41 +0000 (19:41 +0000)]
Merge "quantize ssse3: remove unused pxor"

7 years agoMake satd unit test support all bit-depth settings
Jingning Han [Fri, 27 Jan 2017 18:46:53 +0000 (10:46 -0800)]
Make satd unit test support all bit-depth settings

Turn on satd unit test for c function in both regular and high
bit-depth settings.

Change-Id: I4b0c56addfb84964ede0da3ab760fe0ee640cfd0

7 years agoUnify the hadamard transform unit test for bit-depth settings
Jingning Han [Fri, 27 Jan 2017 18:38:58 +0000 (10:38 -0800)]
Unify the hadamard transform unit test for bit-depth settings

Unify the 8x8 and 16x16 Hadamard unit test system for both 8-bit
and high bit-depth settings.

Change-Id: I53373c1d43f3ced514ad1e53e03f0fb9b25d9ead

7 years agoFix real-time compression regression in hbd mode
Jingning Han [Thu, 26 Jan 2017 23:00:04 +0000 (15:00 -0800)]
Fix real-time compression regression in hbd mode

This commit resolves the compression performance regression in
real-time encoding setting when high bit-depth mode is enabled.

The current solution temporarily disables the SIMD implementations
of vpx_satd, hadamard8x8, and hadamard16x16 in high bit-depth mode.

The commit makes the coding results bit-wise identical between
regular coding pipeline and high bit-depth at profile 0.

BUG=webm:1365

Change-Id: Icfb900821733749685370460a1a5a7e07f76f4bf

7 years agodeblock: annotate postproc parameters
Johann [Tue, 31 Jan 2017 23:05:51 +0000 (15:05 -0800)]
deblock: annotate postproc parameters

Clears a clang static analyzer warning where 'cols' is assumed to be
less than 0, preventing the for loop from executing.

The assembly already requires that the size be 8 or 16 (U/V or Y plane)
and cols is a multiple of 8.

Change-Id: Ica4612690ead1638c94cfe56b306e87f8ce644f9

7 years agoMerge "Use Buffer class for post proc tests"
Johann Koenig [Tue, 31 Jan 2017 15:28:28 +0000 (15:28 +0000)]
Merge "Use Buffer class for post proc tests"

7 years agoAdd mips msa sum_squares_2d_i16 function
Kaustubh Raste [Tue, 31 Jan 2017 12:07:10 +0000 (17:37 +0530)]
Add mips msa sum_squares_2d_i16 function

average improvement ~4x-5x

Change-Id: I8d91b71d0677009be52b412e4f52b40b98573a53

7 years agoAdd mips msa vpx_minmax_8x8 function
Kaustubh Raste [Tue, 31 Jan 2017 04:30:43 +0000 (10:00 +0530)]
Add mips msa vpx_minmax_8x8 function

average improvement ~4x-5x

Change-Id: I83aee9977534fddb8a9b80d31af646c0b6b1a8c3

7 years agoMerge "Add mips msa vpx_vector_var function"
Kaustubh Raste [Tue, 31 Jan 2017 02:34:51 +0000 (02:34 +0000)]
Merge "Add mips msa vpx_vector_var function"

7 years agoquantize ssse3: remove unused pxor
Johann [Tue, 31 Jan 2017 01:02:57 +0000 (17:02 -0800)]
quantize ssse3: remove unused pxor

Change-Id: Ifa22d77fd530827de0b32ae71810dc2213ab2937

7 years agovp9: Modify bsize condition for using model_rd_large for speed 7.
Marco [Mon, 30 Jan 2017 19:12:49 +0000 (11:12 -0800)]
vp9: Modify bsize condition for using model_rd_large for speed 7.

In non-rd pickmode: Allow speed 7 to also use larger block size in
model_rd. Small change in behavior for speed 7.

Change-Id: I8c5523e424308e8f0bc71b3f6324dec42a464cc8

7 years agoMerge "Disable multi-threading in first pass for SVC encoding"
Yunqing Wang [Sat, 28 Jan 2017 19:29:01 +0000 (19:29 +0000)]
Merge "Disable multi-threading in first pass for SVC encoding"

7 years agoAdd mips msa vpx_vector_var function
Kaustubh Raste [Fri, 27 Jan 2017 09:22:51 +0000 (14:52 +0530)]
Add mips msa vpx_vector_var function

average improvement ~4x-5x

Change-Id: I2f63ef83d816052ca8dc42421e7e9d42f7a7af6b

7 years agoMerge "vp9: Fix to pick_filter_level for highbitdepth build."
Marco Paniconi [Fri, 27 Jan 2017 22:47:44 +0000 (22:47 +0000)]
Merge "vp9: Fix to pick_filter_level for highbitdepth build."

7 years agoMerge "Add macOS Sierra support in configure"
Jerome Jiang [Fri, 27 Jan 2017 21:15:52 +0000 (21:15 +0000)]
Merge "Add macOS Sierra support in configure"

7 years agovp9: Fix to pick_filter_level for highbitdepth build.
Marco [Fri, 27 Jan 2017 18:42:29 +0000 (10:42 -0800)]
vp9: Fix to pick_filter_level for highbitdepth build.

Change-Id: I53b3fa8bfc0a0717eb1b730c29f2b70060b1b1b7

7 years agoAdd macOS Sierra support in configure
Jerome Jiang [Fri, 27 Jan 2017 01:53:00 +0000 (17:53 -0800)]
Add macOS Sierra support in configure

BUG=webm:1367

Change-Id: I3000b6d9f93ec49ca86d08151348d33d86bf0034

7 years agoDisable multi-threading in first pass for SVC encoding
Ranjit Kumar Tulabandu [Fri, 27 Jan 2017 13:37:45 +0000 (19:07 +0530)]
Disable multi-threading in first pass for SVC encoding

BUG=webm:1366

Change-Id: I204ef8496884ba7c4debe64f23f50d298b4090c3

7 years agoMerge "vp9: Modify bsize condition for using model_rd_large."
Marco Paniconi [Fri, 27 Jan 2017 15:15:36 +0000 (15:15 +0000)]
Merge "vp9: Modify bsize condition for using model_rd_large."

7 years agoMerge "vp9: Fixes for usage of skin_map for high bit depth."
Marco Paniconi [Fri, 27 Jan 2017 15:15:15 +0000 (15:15 +0000)]
Merge "vp9: Fixes for usage of skin_map for high bit depth."

7 years agovp9: Modify bsize condition for using model_rd_large.
Marco [Fri, 27 Jan 2017 04:01:41 +0000 (20:01 -0800)]
vp9: Modify bsize condition for using model_rd_large.

In non-rd pickmode: small change in behavior for speed 6 and 7.
Remove condition on HIGHBITDEPTH flag.

Change-Id: I360a13fcc313d72612fe9b918162ef4bb278cdea

7 years agoAdd mips msa vpx Integer projection row/col functions
Kaustubh Raste [Fri, 27 Jan 2017 05:41:42 +0000 (11:11 +0530)]
Add mips msa vpx Integer projection row/col functions

average improvement ~4x-5x

Change-Id: I17c41383250282b39f5ecae0197ef1df7de20801

7 years agoMerge "Add mips msa vpx satd function"
Kaustubh Raste [Fri, 27 Jan 2017 04:08:51 +0000 (04:08 +0000)]
Merge "Add mips msa vpx satd function"

7 years agovp9: Fixes for usage of skin_map for high bit depth.
Marco [Thu, 26 Jan 2017 22:09:57 +0000 (14:09 -0800)]
vp9: Fixes for usage of skin_map for high bit depth.

Also avoid noise_estimation and source_sad if use_highbitdepth is set.

Change-Id: I5fea396b8f8380ea377045d99ba22a52b92daa46

7 years agoUse Buffer class for post proc tests
Johann [Sat, 10 Dec 2016 00:51:01 +0000 (16:51 -0800)]
Use Buffer class for post proc tests

Add Buffer features for:
Setting the buffer to the output of an ACMRandom function.
Copying a buffer.
Comparing two buffers.
Printing two buffers.

Change-Id: Ib53fb602451a3abdcee279ea2b65b51fbc02d3df

7 years agoMerge "vp9: Refactor copy partitioning to reduce duplication."
Jerome Jiang [Thu, 26 Jan 2017 17:46:10 +0000 (17:46 +0000)]
Merge "vp9: Refactor copy partitioning to reduce duplication."

7 years agovp9: Refactor copy partitioning to reduce duplication.
Jerome Jiang [Wed, 25 Jan 2017 19:31:05 +0000 (11:31 -0800)]
vp9: Refactor copy partitioning to reduce duplication.

Change-Id: Ia1b3c118adec5eccbd2900c8e4b9ea6b1e3e9b7c

7 years agoMerge "Remove marco MVC in mcomp.c"
Yunqing Wang [Thu, 26 Jan 2017 00:32:54 +0000 (00:32 +0000)]
Merge "Remove marco MVC in mcomp.c"

7 years agoMerge "Fix an overflow warning in optimize_b()"
Hui Su [Wed, 25 Jan 2017 22:49:29 +0000 (22:49 +0000)]
Merge "Fix an overflow warning in optimize_b()"

7 years agovp9-denoiser: Modify skip denoising condition for small blocks.
Marco [Wed, 25 Jan 2017 19:39:02 +0000 (11:39 -0800)]
vp9-denoiser: Modify skip denoising condition for small blocks.

Skip denoising for blocks < 16x16, and for block = 16x16
skip denoising for low noise levels and width > 480 for now.
Allow for some speed-up in denoiser.

Change-Id: Ib46cefe4741962d145fa08775defea3a9c928567

7 years agoFix an overflow warning in optimize_b()
hui su [Mon, 23 Jan 2017 19:25:31 +0000 (11:25 -0800)]
Fix an overflow warning in optimize_b()

BUG=webm:1361

Change-Id: Ib840bf3b39f7b3c8c017d3488a83434e9a0f45f5

7 years agoMerge "vp9: Adjust threshold for y sad used in copying partition."
Jerome Jiang [Wed, 25 Jan 2017 17:54:14 +0000 (17:54 +0000)]
Merge "vp9: Adjust threshold for y sad used in copying partition."

7 years agoMerge "Initialize errorperbit and sabperbit in ARNR filtering"
Yunqing Wang [Wed, 25 Jan 2017 16:43:02 +0000 (16:43 +0000)]
Merge "Initialize errorperbit and sabperbit in ARNR filtering"

7 years agoMerge "Multi-threading of first pass stats collection"
Yunqing Wang [Wed, 25 Jan 2017 16:40:32 +0000 (16:40 +0000)]
Merge "Multi-threading of first pass stats collection"

7 years agovp9: Adjust threshold for y sad used in copying partition.
Jerome Jiang [Wed, 25 Jan 2017 01:20:05 +0000 (17:20 -0800)]
vp9: Adjust threshold for y sad used in copying partition.

Visual quality improvement is observed for noisy clips. Little effects
on speed tests on Nexus 6.

Change-Id: Ib38e04002220708c34102de7b5c36e9940775d89

7 years agoMulti-threading of first pass stats collection
Ranjit Kumar Tulabandu [Tue, 27 Dec 2016 13:15:43 +0000 (18:45 +0530)]
Multi-threading of first pass stats collection

(yunqingwang)
1. Rebased the patch. Incorporated recent first pass changes.
2. Turned on the first pass unit test.

Change-Id: Ia2f7ba8152d0b6dd6bf8efb9dfaf505ba7d8edee

7 years agovp9: Adjust some parameters in aq-mode=3 mode.
Marco [Tue, 24 Jan 2017 17:58:05 +0000 (09:58 -0800)]
vp9: Adjust some parameters in aq-mode=3 mode.

Increase the qp-delta, mainly for low resolutions,
excluding case of very low bitrates.

avgPSNR/SSSIM gain of ~3-5% on rtc_derf set.
Small change on rtc set.

Change-Id: Ice03d04bd0340404d1957666ef154fd64fed0606

7 years agoMerge "vp9: Copy partition using avg_source_sad."
Jerome Jiang [Tue, 24 Jan 2017 20:58:09 +0000 (20:58 +0000)]
Merge "vp9: Copy partition using avg_source_sad."

7 years agovp9: Copy partition using avg_source_sad.
Jerome Jiang [Mon, 23 Jan 2017 20:10:01 +0000 (12:10 -0800)]
vp9: Copy partition using avg_source_sad.

Affecting only speed 8.
Speed tests on Nexus 6 show 4% faster for QVGA and 2.4% faster for VGA.
Little/negligible quality regression observed on both rtc and rtc_derf sets.

Change-Id: I337f301a2db49a568d18ba7623160f7678399ae1

7 years agoMerge "Add the multi-threaded first pass encoder unit test"
Yunqing Wang [Tue, 24 Jan 2017 17:14:07 +0000 (17:14 +0000)]
Merge "Add the multi-threaded first pass encoder unit test"

7 years agoInitialize errorperbit and sabperbit in ARNR filtering
Ranjit Kumar Tulabandu [Wed, 11 Jan 2017 13:29:11 +0000 (18:59 +0530)]
Initialize errorperbit and sabperbit in ARNR filtering

(Yunqing)
This patch added the missing initialization in temporal filter.
Borg test BDRate results:
PSNR: -0.019%(lowres); -0.013%(hdres);
SSIM: -0.001%(lowres); -0.010%(hdres).
Other q values gave comparable but no better results.

Change-Id: I7ad0c18b39e6f558342688e2fe1e12fdb133ce9b

7 years agoAdd mips msa vpx satd function
Kaustubh Raste [Tue, 24 Jan 2017 05:14:22 +0000 (10:44 +0530)]
Add mips msa vpx satd function

average improvement ~4x-5x

Change-Id: If8683d636fe2606d4ca1038e28185bca53bbe244

7 years agoMerge "vp9: Adjust the threshold to set avg_source_sad_sb flag."
Jerome Jiang [Tue, 24 Jan 2017 03:43:11 +0000 (03:43 +0000)]
Merge "vp9: Adjust the threshold to set avg_source_sad_sb flag."

7 years agoRemove marco MVC in mcomp.c
Yunqing Wang [Tue, 24 Jan 2017 00:57:34 +0000 (16:57 -0800)]
Remove marco MVC in mcomp.c

Removed MVC so that mv_err_cost() is always called while calculating
the mv cost.

Change-Id: I28123e05fbfc2352128e266c985d2ab093940071

7 years agovp9: Adjust the threshold to set avg_source_sad_sb flag.
Jerome Jiang [Mon, 23 Jan 2017 23:58:15 +0000 (15:58 -0800)]
vp9: Adjust the threshold to set avg_source_sad_sb flag.

Affect only speed 8. Small/Negligible regression on rtc set.

Change-Id: I67a6b6b4008a22ed798bd980336d95bb799f64b4

7 years agoPartialIDctTest: reduce number of RunQuantCheck iterations
Johann [Mon, 23 Jan 2017 21:30:37 +0000 (13:30 -0800)]
PartialIDctTest: reduce number of RunQuantCheck iterations

This currently runs 1000 * 1000 = one *million* times which is quite
unnecessary. It's one of the slowest items in Jenkins and takes over an
hour for each of the larger transforms.

Change-Id: I01653b5e610683e1a2d778ec60cf5065562ab8db

7 years agovp9: Non-rd pickmode: fix to add ARF mode entries to THR_MODES.
Marco [Mon, 23 Jan 2017 18:53:34 +0000 (10:53 -0800)]
vp9: Non-rd pickmode: fix to add ARF mode entries to THR_MODES.

BUG=webm:1359

Change-Id: Ie0c66efa2e19d1ec9c744d14e3fa8f1e6214cdd6

7 years agovp9: Small threshold adjustment to unittest BasicRateTargeting444
Marco [Sun, 22 Jan 2017 02:12:45 +0000 (18:12 -0800)]
vp9: Small threshold adjustment to unittest BasicRateTargeting444

Due to recent change to speed >=7 from commit:219cdab.

Change-Id: I366e7750ec91119881050ff6c05849504c7959e8

7 years agoMerge "Add mips msa vpx hadamard functions"
Kaustubh Raste [Sat, 21 Jan 2017 03:16:38 +0000 (03:16 +0000)]
Merge "Add mips msa vpx hadamard functions"

7 years agoMerge "vp9: Add feature to use block source_sad for realtime mode."
Jerome Jiang [Fri, 20 Jan 2017 20:35:07 +0000 (20:35 +0000)]
Merge "vp9: Add feature to use block source_sad for realtime mode."

7 years agovp9: Add feature to use block source_sad for realtime mode.
Marco [Tue, 17 Jan 2017 18:39:26 +0000 (10:39 -0800)]
vp9: Add feature to use block source_sad for realtime mode.

Only for speed >= 7, and affects skipping of intra modes.
Threshold is set low for now, needs to be tuned.
Small/no difference in metrics on rtc clips.

Change-Id: If9bdbd43f08d1f80407cdd2e9e5e96780dcd2424

7 years agoAdd the multi-threaded first pass encoder unit test
Yunqing Wang [Fri, 20 Jan 2017 17:15:15 +0000 (09:15 -0800)]
Add the multi-threaded first pass encoder unit test

Added the multi-threaded first pass encoder unit test in VP9. The test is
to check if the new multi-threaded first pass encoder(namely, new-mt = 1)
still generates matching stats. In the unit test, the new-mt mode will be
turned on once the multi-threaded first pass implementation is checked in.

Change-Id: Ic21bb1a55c454f024cfd2b397a4c148cfe638218

7 years agotools_common.h: add missing ';' in generic branch
James Zern [Thu, 19 Jan 2017 23:09:20 +0000 (15:09 -0800)]
tools_common.h: add missing ';' in generic branch

missed in:
380a26112 Fix compile warnings for target=armv7-android-gcc

Change-Id: I2820fff00858a19f7dcf6e0fff189d455b7d640f

7 years agoRemove neon assembly for idct 16x16 and 8x8
Johann [Thu, 19 Jan 2017 18:07:12 +0000 (10:07 -0800)]
Remove neon assembly for idct 16x16 and 8x8

Tested using test/partial_idct_test.cc:DISABLED_Speed

Both gcc 4.9 and clang 3.8 from the r13 Android NDK offer improvements
using the intrinsics:
<function>    <clang asm> <gcc asm> <clang intrin> <gcc intrin>
idct16x16_256  1720ms      1703ms    1546ms         1554ms
idct16x16_10   1320ms      1247ms     518ms          488ms
idct16x16_1     107ms       108ms      64ms           68ms
idct8x8_64      924ms       931ms     866ms          989ms
idct8x8_12      826ms       824ms     519ms          514ms
idct8x8_1       172ms       166ms     110ms          125ms

idct8x8_64 isn't quite perfect (slight regression with gcc intrinsics)
but as a counter example idct16x16_10 goes from ~1300ms to ~500ms

On a sample clip, clang improved from 48.5 to 49fps and gcc stayed roughly
stable.

BUG=webm:1303

Change-Id: I9d4fd2b41b46ea6174a887b40a82c8e6e4769ed4

7 years agovp9: Modify usage of force_skip under low temporal variance in non-rd pickmode.
Marco [Fri, 13 Jan 2017 23:13:36 +0000 (15:13 -0800)]
vp9: Modify usage of force_skip under low temporal variance in non-rd pickmode.

For short_circuit set to level 1, skip newmv for 64x64 blocks if the
low temporal variance flag is set. Also modify threshold for 64x64 split
in variance partitioning.

Overall speed-up on noisy clips of 2-4%.
Only affect speed >= 7.

Change-Id: I384b3772007e84de6f8707e480d2ddf1fe1f907d

7 years agoAdd mips msa vpx hadamard functions
Kaustubh Raste [Thu, 19 Jan 2017 09:14:03 +0000 (14:44 +0530)]
Add mips msa vpx hadamard functions

average improvement ~4x-5x

Change-Id: I167132d894c04fa85dda8dde7906ff9c61b3a65d

7 years agovp9: Stop copying partition every a fixed number of frames.
Jerome Jiang [Fri, 13 Jan 2017 22:20:59 +0000 (14:20 -0800)]
vp9: Stop copying partition every a fixed number of frames.

Avoid quality loss when copying partition of superblock with large motions.
Maximum consecutively copied frames can be set (currently 5).

Change-Id: I11c30575514f02194c0f001444cf4021609e5049

7 years agoMerge "Add CSV per-frame stats to vpxdec."
Peter Boström [Wed, 18 Jan 2017 16:32:34 +0000 (16:32 +0000)]
Merge "Add CSV per-frame stats to vpxdec."

7 years agoMerge "vp9_cx_iface,encoder_encode: check validate_img return"
James Zern [Wed, 18 Jan 2017 07:36:53 +0000 (07:36 +0000)]
Merge "vp9_cx_iface,encoder_encode: check validate_img return"

7 years agovp9: Disable partition copy when resizing is enabled.
Jerome Jiang [Wed, 18 Jan 2017 02:18:39 +0000 (18:18 -0800)]
vp9: Disable partition copy when resizing is enabled.

Change-Id: I4fa3262e0f1c4018604c954b020ec5d1e3d1465c

7 years agoMerge "vp9: Set low variance flag when partition is copied."
Jerome Jiang [Tue, 17 Jan 2017 21:02:52 +0000 (21:02 +0000)]
Merge "vp9: Set low variance flag when partition is copied."