platform/upstream/libvpx.git
7 years agofdct8x8_test: add vpx_idct8x8_64_add_neon in hbd
James Zern [Wed, 9 Nov 2016 02:02:24 +0000 (18:02 -0800)]
fdct8x8_test: add vpx_idct8x8_64_add_neon in hbd

this was enabled in:
3ae2597 idct,NEON: add a tran_low_t->s16 load adapter

+ enable it for all NEON configs, both intrisincs and assembly versions
exist

BUG=webm:1294

Change-Id: I339088b2a398200f95658d040034fb9b2a7c8ce0

7 years agofdct4x4_test: add vpx_idct4x4_16_add_neon in hbd
James Zern [Wed, 9 Nov 2016 01:50:43 +0000 (17:50 -0800)]
fdct4x4_test: add vpx_idct4x4_16_add_neon in hbd

this was enabled in:
3ae2597 idct,NEON: add a tran_low_t->s16 load adapter

+ enable it for all NEON configs, both intrisincs and assembly versions
exist

BUG=webm:1294

Change-Id: Iaade219e9d1de7b69423670d3ea6271b0965e068

7 years agopartial_idct_test,NEON: add missing idct variants
James Zern [Wed, 9 Nov 2016 01:22:32 +0000 (17:22 -0800)]
partial_idct_test,NEON: add missing idct variants

idct4x4 and idct8x8 were universally enabled for high-bitdepth builds
in:
3ae2597 idct,NEON: add a tran_low_t->s16 load adapter

BUG=webm:1294

Change-Id: If142afb169c48728cc4b222e7c41aa4a63f95f0f

7 years agoenable vpx_idct32x32_34_add_neon in hbd builds
James Zern [Tue, 8 Nov 2016 04:22:22 +0000 (20:22 -0800)]
enable vpx_idct32x32_34_add_neon in hbd builds

replace load_and_transpose_s16_8x8() in idct32_6_neon() with a separate
load_tran_low_to_s16() and transpose_s16_8x8(). the combined function is
used in idct32_8_neon() where the input is the correctly sized output
from the earlier stage.

BUG=webm:1294

Change-Id: I4257c4b3a421b2cf5d13651f966eee0680ef98a9

7 years agoOptimize idct32x32_135_add for NEON
Johann [Tue, 1 Nov 2016 18:02:09 +0000 (11:02 -0700)]
Optimize idct32x32_135_add for NEON

BUG=webm:1295

Change-Id: I7f80ef4d29813fcb401fc6075babf19e3c195462

7 years agoMerge "Add high bitdepth intra prediction NEON optimization (mode dc)"
Linfeng Zhang [Tue, 8 Nov 2016 16:53:41 +0000 (16:53 +0000)]
Merge "Add high bitdepth intra prediction NEON optimization (mode dc)"

7 years agoMerge "partial_idct_test: set MinSupportedCoeff for NEON"
James Zern [Tue, 8 Nov 2016 01:05:16 +0000 (01:05 +0000)]
Merge "partial_idct_test: set MinSupportedCoeff for NEON"

7 years agoMerge "ads2gas: remove RN stanza"
Johann Koenig [Tue, 8 Nov 2016 00:44:16 +0000 (00:44 +0000)]
Merge "ads2gas: remove RN stanza"

7 years agoads2gas: remove RN stanza
Johann [Tue, 8 Nov 2016 00:19:15 +0000 (16:19 -0800)]
ads2gas: remove RN stanza

The matching on ads2gas_apple.pl is too liberal and catches
CONFIG_EXTERNAL_BUILD and CONFIG_INTERNAL_STATS because they have RN in
the names.

The RN renaming feature is not used in any existing assembly files. It
was used in some armv6 files but they were removed.

Change-Id: Ib65abf1947d3e89f0d1584e2a5de399d24008f95

7 years agopartial_idct_test: set MinSupportedCoeff for NEON
James Zern [Mon, 7 Nov 2016 23:27:02 +0000 (15:27 -0800)]
partial_idct_test: set MinSupportedCoeff for NEON

vpx_idct4x4_16_add_neon fails with INT16_MIN, +1 is all right

BUG=webm:1335

Change-Id: I25830c8ab0782822fc3c9db6cc669c2e65f2700e

7 years agoRename vpx_highbd_idct8x8_10{*}() to vpx_highbd_idct8x8_12{*}()
Linfeng Zhang [Fri, 4 Nov 2016 16:44:22 +0000 (09:44 -0700)]
Rename vpx_highbd_idct8x8_10{*}() to vpx_highbd_idct8x8_12{*}()

Also update its trigger threshold from 10 to 12.

Change-Id: Ib8dddd87a5a22a12ca66e7084d342fbb027b0a2f

7 years agoMerge "Replace highbd_dct_const_round_shift with dct_const_round_shift"
Linfeng Zhang [Mon, 7 Nov 2016 16:55:00 +0000 (16:55 +0000)]
Merge "Replace highbd_dct_const_round_shift with dct_const_round_shift"

7 years agoMerge "idct test: use coeff consistently"
Johann Koenig [Sun, 6 Nov 2016 00:13:05 +0000 (00:13 +0000)]
Merge "idct test: use coeff consistently"

7 years agoMerge "partial_idct_test: Add large coefficient test"
Johann Koenig [Sun, 6 Nov 2016 00:12:59 +0000 (00:12 +0000)]
Merge "partial_idct_test: Add large coefficient test"

7 years agoMerge "Update vp9_fdct8x8_quant_ssse3 for highbitdepth"
Johann Koenig [Sun, 6 Nov 2016 00:12:12 +0000 (00:12 +0000)]
Merge "Update vp9_fdct8x8_quant_ssse3 for highbitdepth"

7 years agoMerge "vp9-svc: Add unittest for svc-decoding."
James Zern [Sat, 5 Nov 2016 02:47:11 +0000 (02:47 +0000)]
Merge "vp9-svc: Add unittest for svc-decoding."

7 years agoidct test: use coeff consistently
Johann [Sat, 5 Nov 2016 01:41:56 +0000 (18:41 -0700)]
idct test: use coeff consistently

Change-Id: I913a13066993a3315a0ff8310b3cad1572d4cdd7

7 years agopartial_idct_test: Add large coefficient test
Johann [Tue, 1 Nov 2016 19:09:46 +0000 (12:09 -0700)]
partial_idct_test: Add large coefficient test

Two functions do not pass this test:
vpx_idct8x8_64_add_ssse3
vpx_idct8x8_12_add_ssse3

The test has been modified to avoid triggering an issue with those
functions but they still must be investigated.

BUG=webm:1332

Change-Id: I52569a81e8e6e0b33c4a4d060d0b69c3fc4f578e

7 years agovp9-svc: Add unittest for svc-decoding.
Marco [Thu, 3 Nov 2016 19:50:44 +0000 (12:50 -0700)]
vp9-svc: Add unittest for svc-decoding.

To test the VP9_DECODE_SVC_SPATIAL_LAYER decoder control
introduced in 86b0042.

Change-Id: I3d164a41d7bbab14c0aee80fd890870704a18f6e

7 years agoUpdate vp9_fdct8x8_quant_ssse3 for highbitdepth
Johann [Thu, 3 Nov 2016 17:47:06 +0000 (10:47 -0700)]
Update vp9_fdct8x8_quant_ssse3 for highbitdepth

Borrow transition functions from fdct.h nee vpx_quantize_b_sse2

BUG=webm:1304

Change-Id: I9c88c3eec3ff8bb461411d98c26c3c236ea28ef1

7 years agoReplace highbd_dct_const_round_shift with dct_const_round_shift
Linfeng Zhang [Wed, 2 Nov 2016 22:20:30 +0000 (15:20 -0700)]
Replace highbd_dct_const_round_shift with dct_const_round_shift

They are identical.

Change-Id: I1ccaf03c81c3cbf88e82d77ffeb8204f5b063c61

7 years agoMerge "Cosmetics of inv_txfm.c"
Linfeng Zhang [Fri, 4 Nov 2016 22:40:03 +0000 (22:40 +0000)]
Merge "Cosmetics of inv_txfm.c"

7 years agoMerge "Extract high bit depth helper functions"
Johann Koenig [Fri, 4 Nov 2016 21:03:17 +0000 (21:03 +0000)]
Merge "Extract high bit depth helper functions"

7 years agoCosmetics of inv_txfm.c
Linfeng Zhang [Wed, 2 Nov 2016 21:22:00 +0000 (14:22 -0700)]
Cosmetics of inv_txfm.c

Unify code of 8-bit and high bitdepth.

Change-Id: I3fe441577af0249030ca3a1ef769eb9030711434

7 years agoExtract high bit depth helper functions
Johann [Thu, 3 Nov 2016 22:21:32 +0000 (15:21 -0700)]
Extract high bit depth helper functions

These can be used in the vp9 fdct as well.

Change-Id: I4f3875e0cba1b8cad209c3a0581e121deba7675e

7 years agoMerge "configure: disable tools for armv7-win32-vs1[24]"
James Zern [Fri, 4 Nov 2016 17:48:24 +0000 (17:48 +0000)]
Merge "configure: disable tools for armv7-win32-vs1[24]"

7 years agoAdd a missing END directive in idct_neon.asm
Martin Storsjo [Fri, 4 Nov 2016 10:20:07 +0000 (12:20 +0200)]
Add a missing END directive in idct_neon.asm

This fixes building with MS armasm.

Change-Id: I2629eeed859b775ca667a65ba109f8d1bf7b0e03

7 years agoFix producing vcxproj files with *.S arm assembly files
Martin Storsjo [Fri, 4 Nov 2016 10:18:42 +0000 (12:18 +0200)]
Fix producing vcxproj files with *.S arm assembly files

These cases were leftover in
1ddb4c03622a654452a5e76b5a0e4db715dc350d.

Change-Id: Ie058fb6c78580e60205c47a1d314bd66e794cde4

7 years agoconfigure: disable tools for armv7-win32-vs1[24]
James Zern [Fri, 4 Nov 2016 05:54:35 +0000 (22:54 -0700)]
configure: disable tools for armv7-win32-vs1[24]

this shares the same prohibition as the examples

Change-Id: I17d65e4f26847af8cbb1d1a3c4a114ed021a8b9f

7 years agoMerge "vp9: Non-rd pickmode: fix logic in reference masking."
Marco Paniconi [Thu, 3 Nov 2016 23:12:05 +0000 (23:12 +0000)]
Merge "vp9: Non-rd pickmode: fix logic in reference masking."

7 years agovp9-svc: Add decoder control to decode up to x spatial layers.
Marco [Fri, 28 Oct 2016 23:26:30 +0000 (16:26 -0700)]
vp9-svc: Add decoder control to decode up to x spatial layers.

Change-Id: I85536473b8722424785c84c5b5520960b4e5744a

7 years agovp9: Non-rd pickmode: fix logic in reference masking.
Marco [Thu, 3 Nov 2016 17:21:12 +0000 (10:21 -0700)]
vp9: Non-rd pickmode: fix logic in reference masking.

Add condition that usable_ref_frame > LAST.
This is to avoid potentially skipping all last-nonzero mv modes,
if golden is used as a reference but skipped completely for the
current block.

This has no effect currenty, as we always consider testing golden
mode for each block.

Change-Id: I3182cf44664081935a90ed43aa7b32e710e60e22

7 years agoMerge "Speed-up recode loop for extreme bitrate diffs"
Debargha Mukherjee [Thu, 3 Nov 2016 17:04:17 +0000 (17:04 +0000)]
Merge "Speed-up recode loop for extreme bitrate diffs"

7 years agoMerge "pp_filter_test.cc,cosmetics:adjust name convention"
Jerome Jiang [Thu, 3 Nov 2016 04:31:35 +0000 (04:31 +0000)]
Merge "pp_filter_test.cc,cosmetics:adjust name convention"

7 years agopp_filter_test.cc,cosmetics:adjust name convention
Jerome Jiang [Wed, 2 Nov 2016 16:28:58 +0000 (09:28 -0700)]
pp_filter_test.cc,cosmetics:adjust name convention

Change-Id: I81b6fc9b83f0febbb12975aef92768bbd273fd61

7 years agoMerge "arm idct: move to-be-shared code to header"
Johann Koenig [Wed, 2 Nov 2016 18:09:45 +0000 (18:09 +0000)]
Merge "arm idct: move to-be-shared code to header"

7 years agoMerge "Fixed bug in formatting of debug stats."
Paul Wilkins [Wed, 2 Nov 2016 17:10:07 +0000 (17:10 +0000)]
Merge "Fixed bug in formatting of debug stats."

7 years agoFixed bug in formatting of debug stats.
paulwilkins [Wed, 2 Nov 2016 09:38:18 +0000 (09:38 +0000)]
Fixed bug in formatting of debug stats.

Fixed formatting bug introduced by the fix to BUG=webm:1322
( Iedc4477aef1746aa0a4f84d88a1156296fd3ba87)

Change-Id: I715ee446c0e8584967ab87ba4e355759dd394187

7 years agovp9,tile_worker_hook: correctly set jmp target
James Zern [Wed, 2 Nov 2016 01:45:50 +0000 (18:45 -0700)]
vp9,tile_worker_hook: correctly set jmp target

vp9_init_macroblockd() resets the error_info to cm's global copy; this
needs to be set to the thread-level target to avoid jumping to the
incorrect stack, resulting in hang or crash.
broken since:
1f4a6c8 vp9/tile_worker_hook: add multiple tile decoding
includes v1.5.0, v1.6.0

BUG=629481

Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5

7 years agoAdd high bitdepth intra prediction NEON optimization (mode dc)
Linfeng Zhang [Tue, 25 Oct 2016 21:48:32 +0000 (14:48 -0700)]
Add high bitdepth intra prediction NEON optimization (mode dc)

BUG=webm:1316

Change-Id: I984d6004ea2445e86f213fb6fa4d794a9955af8f

7 years agoarm idct: move to-be-shared code to header
Johann [Tue, 1 Nov 2016 18:01:40 +0000 (11:01 -0700)]
arm idct: move to-be-shared code to header

Change-Id: I67458cd358b4dc4434bbdbfcdd571769561b619e

7 years agoMerge "idct32x32_1_add_neon: clear a couple conv warnings"
James Zern [Tue, 1 Nov 2016 22:34:59 +0000 (22:34 +0000)]
Merge "idct32x32_1_add_neon: clear a couple conv warnings"

7 years agoMerge changes I08af3a54,If5959a25,I6763e62e
James Zern [Tue, 1 Nov 2016 21:43:13 +0000 (21:43 +0000)]
Merge changes I08af3a54,If5959a25,I6763e62e

* changes:
  build/make/Android.mk: s/armv8/arm64/
  build/make/Android.mk: fix armeabi-v7a build
  use .S suffix rather than .s for NEON asm

7 years agoAdd high bitdepth intra prediction optimization speed test
Linfeng Zhang [Tue, 25 Oct 2016 21:24:16 +0000 (14:24 -0700)]
Add high bitdepth intra prediction optimization speed test

BUG=webm:1316

Change-Id: I99feec867d5b8ea06b43cdd3fcd7c90238f5efdb

7 years agoMerge "Refine 8-bit intra prediction NEON optimization (mode tm)"
Linfeng Zhang [Tue, 1 Nov 2016 19:38:06 +0000 (19:38 +0000)]
Merge "Refine 8-bit intra prediction NEON optimization (mode tm)"

7 years agoRefine 8-bit intra prediction NEON optimization (mode tm)
Linfeng Zhang [Fri, 21 Oct 2016 19:38:49 +0000 (12:38 -0700)]
Refine 8-bit intra prediction NEON optimization (mode tm)

Change-Id: I98b9577ec51367df5e5d564bedf7c3ea0606de4c

7 years agoMerge "Change to KF boost calculation."
Paul Wilkins [Tue, 1 Nov 2016 09:29:30 +0000 (09:29 +0000)]
Merge "Change to KF boost calculation."

7 years agoidct32x32_1_add_neon: clear a couple conv warnings
James Zern [Tue, 1 Nov 2016 01:56:34 +0000 (18:56 -0700)]
idct32x32_1_add_neon: clear a couple conv warnings

int16_t -> uint8_t

Change-Id: I3c5e0985bc3584dce289c35b5973de24cdc73b76

7 years agobuild/make/Android.mk: s/armv8/arm64/
James Zern [Tue, 1 Nov 2016 01:35:23 +0000 (18:35 -0700)]
build/make/Android.mk: s/armv8/arm64/

the configure target is arm64-android-gcc which generates .mk files of
the same form

Change-Id: I08af3a54ef203b1496d185a0f8c8fe702881a173

7 years agobuild/make/Android.mk: fix armeabi-v7a build
James Zern [Tue, 1 Nov 2016 01:34:16 +0000 (18:34 -0700)]
build/make/Android.mk: fix armeabi-v7a build

vpx_config.asm and idct_neon.asm.S are required since:
3ae2597 idct,NEON: add a tran_low_t->s16 load adapter

Change-Id: If5959a25edb370dd7dcdca71c96e9a5aad0840ce

7 years agouse .S suffix rather than .s for NEON asm
James Zern [Mon, 31 Oct 2016 23:18:51 +0000 (16:18 -0700)]
use .S suffix rather than .s for NEON asm

for compatibility with other build systems

Change-Id: I6763e62e3126850ad4f8ad29e388b8dad0bbc4c3

7 years agoMerge "vp9-svc: Fix some stats in vp9_spatial_svc_encoder."
Marco Paniconi [Mon, 31 Oct 2016 23:16:35 +0000 (23:16 +0000)]
Merge "vp9-svc: Fix some stats in vp9_spatial_svc_encoder."

7 years agovp9-svc: Fix some stats in vp9_spatial_svc_encoder.
Marco [Mon, 31 Oct 2016 22:23:23 +0000 (15:23 -0700)]
vp9-svc: Fix some stats in vp9_spatial_svc_encoder.

Correction to rate control stats output under -rcstat.

Change-Id: I46fa5d2a66ed657121ee3d685608a148bb9a7bb3

7 years agoMerge "idct,NEON: add a tran_low_t->s16 load adapter"
James Zern [Mon, 31 Oct 2016 21:59:11 +0000 (21:59 +0000)]
Merge "idct,NEON: add a tran_low_t->s16 load adapter"

7 years agoMerge "Add vp9_spatial_svc_encoder to .gitignore."
Peter Boström [Mon, 31 Oct 2016 20:01:11 +0000 (20:01 +0000)]
Merge "Add vp9_spatial_svc_encoder to .gitignore."

7 years agoMerge "Refine 8-bit intra prediction NEON optimization (mode h and v)"
Linfeng Zhang [Mon, 31 Oct 2016 19:57:22 +0000 (19:57 +0000)]
Merge "Refine 8-bit intra prediction NEON optimization (mode h and v)"

7 years agoAdd vp9_spatial_svc_encoder to .gitignore.
Peter Boström [Mon, 31 Oct 2016 18:27:02 +0000 (14:27 -0400)]
Add vp9_spatial_svc_encoder to .gitignore.

Change-Id: I3c90d657cca533264dd62bb7749c53a862d0352a

7 years agoMerge "vp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder."
Marco Paniconi [Mon, 31 Oct 2016 18:23:13 +0000 (18:23 +0000)]
Merge "vp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder."

7 years agoidct,NEON: add a tran_low_t->s16 load adapter
James Zern [Tue, 18 Oct 2016 19:30:43 +0000 (12:30 -0700)]
idct,NEON: add a tran_low_t->s16 load adapter

enable idct4x4* and idct8x8* which are compatible for 8-bit decodes in
high-bitdepth mode. the adapter narrows 32-bit input to 16, whether the
expansion can be avoided at all in this case remains a TODO. roughly
matches sse2.

BUG=webm:1294

Change-Id: I3ea94e5a2070dfd509b5de0c555aab4e1f4da036

7 years agoRefine 8-bit intra prediction NEON optimization (mode h and v)
Linfeng Zhang [Fri, 21 Oct 2016 18:44:49 +0000 (11:44 -0700)]
Refine 8-bit intra prediction NEON optimization (mode h and v)

Change-Id: I45e1454c3a85e081bfa14386e0248f57e2a91854

7 years agovp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder.
Marco [Mon, 31 Oct 2016 05:20:04 +0000 (22:20 -0700)]
vp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder.

Add some checks to the layer bitrates passed in through the command line.

Change-Id: I16f270035a6034d63313fe3019aa90dca9a3eefb

7 years agoMerge "vpxdec.c : don't double count corrupted frames"
James Bankoski [Mon, 31 Oct 2016 13:58:14 +0000 (13:58 +0000)]
Merge "vpxdec.c : don't double count corrupted frames"

7 years agovpxdec.c : don't double count corrupted frames
Jim Bankoski [Fri, 28 Oct 2016 12:53:26 +0000 (05:53 -0700)]
vpxdec.c : don't double count corrupted frames

A past patch made it so that every frame that had a decode error
caused a corrupted frame to be counted.  Unfortunately it was possible
to get both a decode error and a corrupt frame for the same frame
and thus double count an error. This code makes that impossible.

Change-Id: Iea973727422a3bf093ffda72fa358a285736048b

7 years agotiny_ssim: fix visual studio build
James Zern [Sat, 29 Oct 2016 20:02:50 +0000 (13:02 -0700)]
tiny_ssim: fix visual studio build

s/inttypes.h/vpx_integer.h/
clear a uint64_t -> double conversion warning

Change-Id: I58d108b083787a754152eb79ef6df61c2c5f95b1

7 years agoMerge "Add temporal-layer support to tiny_ssim."
Peter Boström [Sat, 29 Oct 2016 01:25:01 +0000 (01:25 +0000)]
Merge "Add temporal-layer support to tiny_ssim."

7 years agoMerge "partial_idct_test: add _add_ test"
Johann Koenig [Sat, 29 Oct 2016 00:34:16 +0000 (00:34 +0000)]
Merge "partial_idct_test: add _add_ test"

7 years agoAdd temporal-layer support to tiny_ssim.
Peter Boström [Fri, 28 Oct 2016 18:50:20 +0000 (14:50 -0400)]
Add temporal-layer support to tiny_ssim.

Permits skipping 0, 1/2 or 3/4 of the frames, corresponding to
temporal layers 2, 1 and 0 of a 3-temporal-layer encoding. 1/2
corresponds to TL0 in a 2-layer encoding.

Change-Id: I7f6d131f63707e5262fc67d111bfb3a751ede90d

7 years agoMerge "vp9: Updates to SVC sample encoder."
Marco Paniconi [Fri, 28 Oct 2016 18:32:40 +0000 (18:32 +0000)]
Merge "vp9: Updates to SVC sample encoder."

7 years agovp9: Updates to SVC sample encoder.
Marco [Thu, 27 Oct 2016 22:38:02 +0000 (15:38 -0700)]
vp9: Updates to SVC sample encoder.

Allow for passing in the layer bitrates at command line.
Fix to allow passing in bitrate for each spatial-temporal layer.

Change to some default values for 1 pass cbr mode:
spatial scale and qp-max/min.

Small fixes to some build warnings.

Change-Id: I3f9a776262712480a6570bb863a835b2fc49935a

7 years agoMerge "Add tools/tiny_ssim for generating SSIM/PSNR."
Yaowu Xu [Fri, 28 Oct 2016 17:21:47 +0000 (17:21 +0000)]
Merge "Add tools/tiny_ssim for generating SSIM/PSNR."

7 years agoAdd tools/tiny_ssim for generating SSIM/PSNR.
Peter Boström [Thu, 27 Oct 2016 23:07:44 +0000 (19:07 -0400)]
Add tools/tiny_ssim for generating SSIM/PSNR.

Change-Id: Icc3e5aaa6636ffe17dc9da5f7a80afaccbde509a

7 years agoMerge "Refine 8-bit intra prediction NEON optimization (mode d45 and d135)"
Linfeng Zhang [Fri, 28 Oct 2016 15:57:55 +0000 (15:57 +0000)]
Merge "Refine 8-bit intra prediction NEON optimization (mode d45 and d135)"

7 years agoChange to KF boost calculation.
Paul Wilkins [Wed, 12 Oct 2016 19:50:08 +0000 (20:50 +0100)]
Change to KF boost calculation.

This  change is a step in a larger change to the way boost and interval are
determined for ARF and Key frames.

This patch contains some pluming for the general case but focuses on the
key frame boost calculation. This now relies more heavily on the rate at
which the error score increases between the primary and secondary reference
frame. This seems to be less fragile when dealing with different frame sizes.
For example larger image formats tend in the first pass to see a higher
% of intra coded blocks and the use of this number in calculating the frame
decay factor was leading to much lower boost numbers for 4K, for example,
than the same clip coded at 2K.

This change does give overall gains but they are MUCH larger for the 4K Netflix
set. For the 4K Netflix set the average gain is around 3% with some clips > 20%
whereas for the same set at 2K the average gain is 0.5-1%.

In general for small image formats the boost is most often reduced a little whereas
4K clips the boost is increased. There are some -ve cases such as Akiyo at 352x288
where the reduced boost hurts the metrics, especially for SSIM, even while
the set as a whole improves. This is most notable at very low Q and may be the
subject of a future patch.

Some common code for KF and ARF was separated in this patch for the purposes of
tuning but may later be re-merged if appropriate.

Change-Id: Iaa15ac5a58d2be89181100d95cef6a8dc4b12d0d

7 years agoMerge "Force recode if framesize exceeds max allowed size"
Debargha Mukherjee [Fri, 28 Oct 2016 04:21:43 +0000 (04:21 +0000)]
Merge "Force recode if framesize exceeds max allowed size"

7 years agoRefine 8-bit intra prediction NEON optimization (mode d45 and d135)
Linfeng Zhang [Fri, 21 Oct 2016 17:44:22 +0000 (10:44 -0700)]
Refine 8-bit intra prediction NEON optimization (mode d45 and d135)

dst += stride behaving better with gcc/clang.
Unroll loops.

Change-Id: I83f85df2bc9f17c6159542f57680b509395db2b1

7 years agoSpeed-up recode loop for extreme bitrate diffs
Debargha Mukherjee [Thu, 27 Oct 2016 16:55:36 +0000 (09:55 -0700)]
Speed-up recode loop for extreme bitrate diffs

Adjusts the q adjustement step depending on how far the
projected and target rates differ.

Change-Id: I498d03523ca233a270512ca3972c372daa4ca2a8

7 years agoForce recode if framesize exceeds max allowed size
Debargha Mukherjee [Thu, 27 Oct 2016 05:40:59 +0000 (22:40 -0700)]
Force recode if framesize exceeds max allowed size

Fixes a case where recode is not triggered based on the value
of maxq passed into the recode loop test function.

BUG=b/32375284

Change-Id: I15ad985d0525c68e0443cfaf842440d2754b2266

7 years agoMerge "partial_idct_test: consolidate block size"
Johann Koenig [Thu, 27 Oct 2016 15:41:43 +0000 (15:41 +0000)]
Merge "partial_idct_test: consolidate block size"

7 years agoMerge "Changes to KF boost calculation."
Paul Wilkins [Thu, 27 Oct 2016 10:21:23 +0000 (10:21 +0000)]
Merge "Changes to KF boost calculation."

7 years agoMerge "Removal of a couple of two pass adjustments."
Paul Wilkins [Thu, 27 Oct 2016 10:21:05 +0000 (10:21 +0000)]
Merge "Removal of a couple of two pass adjustments."

7 years agopartial_idct_test: add _add_ test
Johann [Thu, 27 Oct 2016 04:24:46 +0000 (21:24 -0700)]
partial_idct_test: add _add_ test

The result of the transform is added to the destination buffers. In the
existing tests the destination buffer is always empty so that portion of
the code was never exercised.

Change-Id: I1858c4fed2274f1b9faf834d2ba4186a4510492a

7 years agopartial_idct_test: consolidate block size
Johann [Thu, 27 Oct 2016 04:19:36 +0000 (21:19 -0700)]
partial_idct_test: consolidate block size

Use *input_block_ for sizeof() calculation like the other test

Change-Id: I1e4bd227131662056405af78c5052ad6ef769e9f

7 years agoRefactor partial idct test
Johann [Fri, 21 Oct 2016 22:09:53 +0000 (15:09 -0700)]
Refactor partial idct test

Switch to using correctly sized inputs and outputs. This simplifies
adding tests with varying strides.

Change-Id: I716a0d8173dcf6a86d56656ac9d3101b7ec27642

7 years agoChanges to KF boost calculation.
Paul Wilkins [Wed, 12 Oct 2016 18:49:19 +0000 (19:49 +0100)]
Changes to KF boost calculation.

Remove double counting of decay. Limit maximum KF boost.

Change-Id: I0fb2344d0f78b5e95bb899dfad12b0ca84034b2c

7 years agoRemoval of a couple of two pass adjustments.
paulwilkins [Fri, 30 Sep 2016 13:51:39 +0000 (14:51 +0100)]
Removal of a couple of two pass adjustments.

Removed a couple of adjustments that no longer move the needle
much but complicate the process of tuning.

Change-Id: Ie320f5cf155e6aac14a4757ea9ada2cd59f27590

7 years agoMerge "Refine 8-bit intra prediction NEON optimization (mode dc)"
Linfeng Zhang [Wed, 26 Oct 2016 16:51:44 +0000 (16:51 +0000)]
Merge "Refine 8-bit intra prediction NEON optimization (mode dc)"

7 years agoOptimize idct32x32_34_add for NEON
Johann [Wed, 12 Oct 2016 22:27:47 +0000 (15:27 -0700)]
Optimize idct32x32_34_add for NEON

Approximately 3 times faster than the 1024 version which was used
previously.

BUG=webm:1295

Change-Id: Id15fb3d096029ec38ef01c53e5f6eb08254347c9

7 years agoMerge "Update vp9_intrapred_test.cc to support 8-bit"
James Zern [Tue, 25 Oct 2016 21:59:29 +0000 (21:59 +0000)]
Merge "Update vp9_intrapred_test.cc to support 8-bit"

7 years agoMerge "Modify the encoder multi-thread unit test"
Yunqing Wang [Tue, 25 Oct 2016 20:54:25 +0000 (20:54 +0000)]
Merge "Modify the encoder multi-thread unit test"

7 years agoModify the encoder multi-thread unit test
Yunqing Wang [Tue, 25 Oct 2016 17:47:21 +0000 (10:47 -0700)]
Modify the encoder multi-thread unit test

Modified the encoder multi-thread test so that it included cpu-used=0 and
frame-parallel=0.

frame_parallel_decoding_mode is 1 by default, which disables probability
updating and gives lower encoding quality. Current VP9 multi-threading
encoder and decoder support probability updating. To test this part, we
should turn on it in the unit test, namely, setting frame-parallel to 0.

Change-Id: Ia1f86e01f0de628f50d819ae31509de3e1b6c755

7 years agoMerge "vpxdec: return fail if frame fails to decode."
James Bankoski [Tue, 25 Oct 2016 18:34:06 +0000 (18:34 +0000)]
Merge "vpxdec: return fail if frame fails to decode."

7 years agoChange 2 motion search counts to be tile data
Yunqing Wang [Tue, 25 Oct 2016 16:00:58 +0000 (09:00 -0700)]
Change 2 motion search counts to be tile data

This patch modified the motion search counts used in:
https://chromium-review.googlesource.com/#/c/305640/

These 2 counts were originally added as thread data, and used to
make decisions in motion search. The tile encoding order can be
inconsistent while using different number of threads, which can
cause bitstream mismatch. Here moved them to tile data to solve
the issue.

BUG=webm:1322

Change-Id: Iedc4477aef1746aa0a4f84d88a1156296fd3ba87

7 years agoRefine 8-bit intra prediction NEON optimization (mode dc)
Linfeng Zhang [Wed, 19 Oct 2016 20:37:26 +0000 (13:37 -0700)]
Refine 8-bit intra prediction NEON optimization (mode dc)

dst += stride behaving better with gcc/clang
Expanding inline function dc_SIZExSIZE() save intructions for
vpx_dc_predictor_SIZExSIZE_neon().

Change-Id: Id0ccbd58b6a31df539141fd33bdf28633339150d

7 years agoUpdate vp9_intrapred_test.cc to support 8-bit
Linfeng Zhang [Wed, 19 Oct 2016 19:58:05 +0000 (12:58 -0700)]
Update vp9_intrapred_test.cc to support 8-bit

BUG=webm:1316

Change-Id: Ic9309bbeeef52e9d07fb4a4c95c12efa813cbf8c

7 years agovpxdec: return fail if frame fails to decode.
Jim Bankoski [Mon, 24 Oct 2016 19:05:59 +0000 (12:05 -0700)]
vpxdec: return fail if frame fails to decode.

A failure to decode is most likely equivalent to a corrupt
frame for the purpose of returning a failure.

Change-Id: Ie53db2b8130b40b725841f5f7a299d63aa56913d

7 years agoMerge "remove idct32x32*_add_neon.asm"
James Zern [Sat, 22 Oct 2016 02:29:55 +0000 (02:29 +0000)]
Merge "remove idct32x32*_add_neon.asm"

7 years agoMerge "vpx_highbd_convolve_copy_neon: use multi reg loads"
James Zern [Sat, 22 Oct 2016 02:28:15 +0000 (02:28 +0000)]
Merge "vpx_highbd_convolve_copy_neon: use multi reg loads"

7 years agoMerge "vp9_bitstream: Encode tiles in parallel"
Vignesh Venkatasubramanian [Sat, 22 Oct 2016 02:23:05 +0000 (02:23 +0000)]
Merge "vp9_bitstream: Encode tiles in parallel"

7 years agovp9_bitstream: Encode tiles in parallel
Vignesh Venkatasubramanian [Wed, 19 Oct 2016 18:07:41 +0000 (11:07 -0700)]
vp9_bitstream: Encode tiles in parallel

Re-use the tile worker threads to pack the bitstream in parallel
on a per-tile basis.  Restricting this to real-time only for now
(further testing is needed to ensure this does not make 2-pass
worse in any case).

BUG=webm:1309

Change-Id: I8a80da7c5089b837d0df79a5c49d5e3022dfc8ec

7 years agovp9: Nonrd variance partition: increase threshold for using 4x4 avg.
Marco [Fri, 21 Oct 2016 18:11:34 +0000 (11:11 -0700)]
vp9: Nonrd variance partition: increase threshold for using 4x4 avg.

In variance partition low resolutions may use varianace based on
4x4 average for better partitioning.
Increase the threshold for doing this at speed = 8.

Improves speed by ~5%, with little loss, < 1%, on RTC_derf set.

Change-Id: Ib5ec420832ccff887a06cb5e1d2c73199b093941