platform/upstream/libvpx.git
7 years agoMerge "vp8,frame_buffers: remove unused use_frame_threads"
James Zern [Sat, 1 Oct 2016 01:35:55 +0000 (01:35 +0000)]
Merge "vp8,frame_buffers: remove unused use_frame_threads"

7 years agoMerge "Refactor vpx lpf NEON files (step 2/2)"
Linfeng Zhang [Sat, 1 Oct 2016 00:07:50 +0000 (00:07 +0000)]
Merge "Refactor vpx lpf NEON files (step 2/2)"

7 years agoMerge "Refactor vpx lpf NEON files (step 1/2)"
Linfeng Zhang [Sat, 1 Oct 2016 00:07:30 +0000 (00:07 +0000)]
Merge "Refactor vpx lpf NEON files (step 1/2)"

7 years agoMerge "vp9: On change_config() only call update_frame_size if needed."
Marco Paniconi [Fri, 30 Sep 2016 21:43:33 +0000 (21:43 +0000)]
Merge "vp9: On change_config() only call update_frame_size if needed."

7 years agoMerge "vp9 real-time mode: Change loopfilter speed feature at speed 8."
Marco Paniconi [Fri, 30 Sep 2016 21:42:04 +0000 (21:42 +0000)]
Merge "vp9 real-time mode: Change loopfilter speed feature at speed 8."

7 years agoMerge changes from topic '8bit-hbd-idct'
James Zern [Fri, 30 Sep 2016 19:36:08 +0000 (19:36 +0000)]
Merge changes from topic '8bit-hbd-idct'

* changes:
  *idct*_neon.c: add missing rtcd include
  idct,msa/neon: exclude idct files from hbd build
  *rtcd_defs.pl: remove empty specialize calls

7 years ago*idct*_neon.c: add missing rtcd include
James Zern [Fri, 30 Sep 2016 06:28:08 +0000 (23:28 -0700)]
*idct*_neon.c: add missing rtcd include

+ correct declarations as necessary

BUG=webm:1294

Change-Id: I719602df9a56e79188a78e7f8b31257c6d3cc11d

7 years agoidct,msa/neon: exclude idct files from hbd build
James Zern [Fri, 30 Sep 2016 07:43:49 +0000 (00:43 -0700)]
idct,msa/neon: exclude idct files from hbd build

these functions are incompatible currently and unreferenced in rtcd,
exclude them from the build.

BUG=webm:1294

Change-Id: I7790c195a91e1b142f56c04d2a5e305d9133b896

7 years agoRefactor vpx lpf NEON files (step 2/2)
Linfeng Zhang [Fri, 30 Sep 2016 16:56:28 +0000 (09:56 -0700)]
Refactor vpx lpf NEON files (step 2/2)

Change-Id: I0744407cd3361ff752bd7f6e654b70ab6b41a58f

7 years agoRefactor vpx lpf NEON files (step 1/2)
Linfeng Zhang [Fri, 30 Sep 2016 16:48:54 +0000 (09:48 -0700)]
Refactor vpx lpf NEON files (step 1/2)

Change-Id: I4016d096d46ca691f3b17199b259b7231e983cfb

7 years agoMerge "Unify loopfilter function names"
Linfeng Zhang [Fri, 30 Sep 2016 15:58:08 +0000 (15:58 +0000)]
Merge "Unify loopfilter function names"

7 years agoMerge "Refine vpx convolve8 NEON intrinsics optimization"
Linfeng Zhang [Fri, 30 Sep 2016 15:56:30 +0000 (15:56 +0000)]
Merge "Refine vpx convolve8 NEON intrinsics optimization"

7 years agoMerge "Refine vpx_convolve_copy_neon() and vpx_convolve_avg_neon()"
Linfeng Zhang [Fri, 30 Sep 2016 15:54:02 +0000 (15:54 +0000)]
Merge "Refine vpx_convolve_copy_neon() and vpx_convolve_avg_neon()"

7 years ago*rtcd_defs.pl: remove empty specialize calls
James Zern [Fri, 30 Sep 2016 03:38:26 +0000 (20:38 -0700)]
*rtcd_defs.pl: remove empty specialize calls

add_proto adds a 'c' specialization

Change-Id: I0ed0c2240d45264b0e0056ce7c8f63f4a00780bc

7 years agovp8,frame_buffers: remove unused use_frame_threads
James Zern [Fri, 30 Sep 2016 03:24:15 +0000 (20:24 -0700)]
vp8,frame_buffers: remove unused use_frame_threads

this was never fully implemented

Change-Id: I4640cf84c40ea2cc9c6c12acf116d39df4b04578

7 years agoMerge "configure: test for -Wshorten-64-to-32 in non hbd builds"
James Zern [Fri, 30 Sep 2016 03:01:55 +0000 (03:01 +0000)]
Merge "configure: test for -Wshorten-64-to-32 in non hbd builds"

7 years agoMerge changes I158f631a,I0555f639
Johann Koenig [Fri, 30 Sep 2016 01:47:40 +0000 (01:47 +0000)]
Merge changes I158f631a,I0555f639

* changes:
  vp8: remove mmx functions
  Rename _xmm functions to _sse2

7 years agoMerge "Fix an issue in vp9_first_pass for non-mulitple of 16 resolutions"
Yunqing Wang [Fri, 30 Sep 2016 00:49:06 +0000 (00:49 +0000)]
Merge "Fix an issue in vp9_first_pass for non-mulitple of 16 resolutions"

7 years agoUnify loopfilter function names
Linfeng Zhang [Wed, 28 Sep 2016 22:20:01 +0000 (15:20 -0700)]
Unify loopfilter function names

Rename vpx_lpf_horizontal_edge_8() to vpx_lpf_horizontal_16().
Rename vpx_lpf_horizontal_edge_16() to vpx_lpf_horizontal_16_dual().

Change-Id: I798ca8fbbd657d06d3db2bfb0fb3321168f49e52

7 years agoRefine vpx_convolve_copy_neon() and vpx_convolve_avg_neon()
Linfeng Zhang [Thu, 29 Sep 2016 19:38:37 +0000 (12:38 -0700)]
Refine vpx_convolve_copy_neon() and vpx_convolve_avg_neon()

BUG=webm:1290

Change-Id: Ia27e58521eba5a4852b50381c56746fa5767f6d6

7 years agoFix an issue in vp9_first_pass for non-mulitple of 16 resolutions
Deepa K G [Thu, 29 Sep 2016 03:38:34 +0000 (20:38 -0700)]
Fix an issue in vp9_first_pass for non-mulitple of 16 resolutions

This patch sets the 16x16 src_diff to zero and ensures correct calculation
of this_error for block sizes smaller than 16x16.

Change-Id: I7b7c02d267433c9f22c8ac9b8d5df2f499175172

7 years agoMerge changes Ia3e9122f,Id33eb6c8,I956bd8ce
Johann Koenig [Thu, 29 Sep 2016 23:16:44 +0000 (23:16 +0000)]
Merge changes Ia3e9122f,Id33eb6c8,I956bd8ce

* changes:
  Remove vp8_clear_system_state
  vpx_dsp: clean up rtcd
  vp8: clean up rtcd

7 years agoMerge "vp9_detokenize,decode_coefs: fix signed int overflow"
James Zern [Thu, 29 Sep 2016 22:36:12 +0000 (22:36 +0000)]
Merge "vp9_detokenize,decode_coefs: fix signed int overflow"

7 years agovp8: remove mmx functions
Johann [Thu, 29 Sep 2016 22:21:26 +0000 (15:21 -0700)]
vp8: remove mmx functions

When they have sse2 equivalents.

Change-Id: I158f631a3bcecba57b36093ac10114b1904767a7

7 years agoRename _xmm functions to _sse2
Johann [Thu, 29 Sep 2016 22:21:09 +0000 (15:21 -0700)]
Rename _xmm functions to _sse2

Avoid the extra level of indirection/confusion.

Change-Id: I0555f639d67835df9fb7dac0c75085e9954805f1

7 years agoRemove vp8_clear_system_state
Johann [Thu, 29 Sep 2016 19:21:44 +0000 (12:21 -0700)]
Remove vp8_clear_system_state

Use vpx_clear_system_state instead.

Change-Id: Ia3e9122f69a2c690ddd7c7bc54f92ccb9ec18b3e

7 years agovp9: On change_config() only call update_frame_size if needed.
Marco [Thu, 29 Sep 2016 18:15:26 +0000 (11:15 -0700)]
vp9: On change_config() only call update_frame_size if needed.

change_config() may be called often in real-time application,
to update bitrate/framerate or qp-max/min.
No need to do update_frame_size() unless frame size has changed.

Change-Id: I23a51deade1e03adc91c468f9ffde3235298770c

7 years agovp9 real-time mode: Change loopfilter speed feature at speed 8.
Marco [Mon, 26 Sep 2016 23:52:26 +0000 (16:52 -0700)]
vp9 real-time mode: Change loopfilter speed feature at speed 8.

For real-time mode at speed 8: turn off MINIMAL_LF at speed 8,
for non-screen content mode.

Visually better, avgPSNR/SSIM on rtc set go up by ~4-5%.
Speed decrease of about ~3%.

Change-Id: I8eb69330f02e0ceece1507d43cfc8a049a1d8291

7 years agoRefine vpx convolve8 NEON intrinsics optimization
Linfeng Zhang [Thu, 29 Sep 2016 19:48:59 +0000 (12:48 -0700)]
Refine vpx convolve8 NEON intrinsics optimization

BUG=webm:1290

Change-Id: I5d7fce62270f9d76ef9ce98b3d188ad11fb21873

7 years agoMerge changes I11786887,Ia91823ad
James Zern [Thu, 29 Sep 2016 19:11:35 +0000 (19:11 +0000)]
Merge changes I11786887,Ia91823ad

* changes:
  vpx_dsp/get_prob: relocate den == 0 test
  vpx_dsp/get_prob: make clip_prob branchless

7 years agovpx_dsp: clean up rtcd
Johann [Thu, 29 Sep 2016 19:06:37 +0000 (12:06 -0700)]
vpx_dsp: clean up rtcd

Remove avx2+ssse3 specialization. Disabling ssse3 now automatically
disables avx2.

Change-Id: Id33eb6c85d1c4ee57128ebe45c995eb15cfcc765

7 years agovp8: clean up rtcd
Johann [Thu, 29 Sep 2016 19:05:09 +0000 (12:05 -0700)]
vp8: clean up rtcd

Remove lines which specify the same name for a function.

Change-Id: I956bd8ce2b81a2a8feab5621d28bd2499c2b4c2d

7 years agovp9_detokenize,decode_coefs: fix signed int overflow
James Zern [Thu, 29 Sep 2016 03:37:18 +0000 (20:37 -0700)]
vp9_detokenize,decode_coefs: fix signed int overflow

when decoding an invalid bitstream with --enable-vp9-highbitdepth

BUG=webm:1297

Change-Id: I401d87033b4293f2ca595bc51678aad9951ecf15

7 years agovpx_dsp/get_prob: relocate den == 0 test
James Zern [Thu, 29 Sep 2016 00:39:05 +0000 (17:39 -0700)]
vpx_dsp/get_prob: relocate den == 0 test

to get_binary_prob(). the only other caller mode_mv_merge_probs() does
its own test on 0.

BUG=chromium:639712

Change-Id: I1178688706baeca2883f7aadbc254abb219a44ce

7 years agoMerge "vp9: fix compilation for g++ 6.2.x"
James Zern [Wed, 28 Sep 2016 23:36:23 +0000 (23:36 +0000)]
Merge "vp9: fix compilation for g++ 6.2.x"

7 years agoMerge "Hook up vp8_diamond_search_sad_sse3"
Johann Koenig [Wed, 28 Sep 2016 20:54:24 +0000 (20:54 +0000)]
Merge "Hook up vp8_diamond_search_sad_sse3"

7 years agoMerge "vpxdec: avoid memory leaks under most conditions"
James Zern [Wed, 28 Sep 2016 19:35:16 +0000 (19:35 +0000)]
Merge "vpxdec: avoid memory leaks under most conditions"

7 years agovpx_dsp/get_prob: make clip_prob branchless
James Zern [Wed, 28 Sep 2016 02:43:03 +0000 (19:43 -0700)]
vpx_dsp/get_prob: make clip_prob branchless

+ inline the function directly as there was only one consumer
(get_prob())

this is an attempt to reduce the amount of branches to workaround an amd
bug. this change is mildly faster or neutral across x86-64, arm.

http://support.amd.com/TechDocs/44739_12h_Rev_Gd.pdf
665 Integer Divide Instruction May Cause Unpredictable Behavior

BUG=chromium:639712

Suggested-by: Pascal Massimino <pascal.massimino@gmail.com>
Change-Id: Ia91823aded79aab469dd68095d44300e8df04ed2

7 years agovp9: fix compilation for g++ 6.2.x
Tristan Matthews [Thu, 22 Sep 2016 22:49:27 +0000 (18:49 -0400)]
vp9: fix compilation for g++ 6.2.x

Inline function called from test/dct16x16_test.cc wouldn't build due to:
  invalid operands of types ‘__gnu_cxx::__enable_if<true, double>::__type
  {aka double}’ and ‘int’ to binary ‘operator>>’
  return (abs(ref->row) >> 3) < COMPANDED_MVREF_THRESH &&

this converts the test to abs() < COMPANDED_MVREF_THRESH << 3 which
hides the promotion issue.

Regression from commit de993a847f8080d3128420c8ef8495642013bdb1

BUG=webm:1291

Change-Id: I73b5943d07d5b61b709d299114216a2371a8fd62

7 years agoMerge "Clean convolve_test.cc"
Linfeng Zhang [Wed, 28 Sep 2016 00:20:27 +0000 (00:20 +0000)]
Merge "Clean convolve_test.cc"

7 years agoMerge "Fix for compile error with range checking"
Debargha Mukherjee [Wed, 28 Sep 2016 00:05:37 +0000 (00:05 +0000)]
Merge "Fix for compile error with range checking"

7 years agoconfigure: test for -Wshorten-64-to-32 in non hbd builds
James Zern [Thu, 7 Apr 2016 07:07:45 +0000 (00:07 -0700)]
configure: test for -Wshorten-64-to-32 in non hbd builds

provides msvc-like warnings for implicit conversions from 64-bit to
32-bit types

--enable-vp9-highbitdepth still requires some work

this also skips CXXFLAGS for now as some work would be needed to cleanup
third_party/*.cc or split it from test/*.cc where it comes to flags.

Change-Id: Ic9a095b73286eba5ed39bfc27ff69593748cbbf4

7 years agoCast strto[u]l down
Johann [Tue, 27 Sep 2016 22:37:10 +0000 (15:37 -0700)]
Cast strto[u]l down

Change-Id: I945b2f8754cf484a08e5ba511cfd2d4a44181b08

7 years agoHook up vp8_diamond_search_sad_sse3
Johann [Mon, 26 Sep 2016 23:20:32 +0000 (16:20 -0700)]
Hook up vp8_diamond_search_sad_sse3

The original commit never set any 'specialize' line:
61311e61039c300ae872ccba22304e9e60dc0205

It appears the sadx4 version of function uses sdx4df calls to speed up
the search. There are no sse3 versions of the sdx4df functions, but
there are sse2 and msa versions.

There is a neon version of vpx_sad16x16x4d but not any of the smaller
versions. Perhaps if they existed this function could be expanded to use
them.

Change-Id: I936d7d6b1a3ff6dcd5a4d2322272708c47cdec13

7 years agovpxdec: avoid memory leaks under most conditions
James Zern [Tue, 27 Sep 2016 21:29:18 +0000 (14:29 -0700)]
vpxdec: avoid memory leaks under most conditions

avoids false positives when fuzzing with ASan+LSan.

Change-Id: I0d23b530ae80e5692b6951fe6e3690ea44159a5a

7 years agoMerge changes from topic 'wextra'
Johann Koenig [Tue, 27 Sep 2016 21:13:50 +0000 (21:13 +0000)]
Merge changes from topic 'wextra'

* changes:
  Expand -Wextra to more of the library
  mips: clean up wextra warnings
  Add compiler flag -Wsign-compare
  Add compiler warning flag -Wextra and fix related warnings.

7 years agoClean convolve_test.cc
Linfeng Zhang [Tue, 20 Sep 2016 21:23:15 +0000 (14:23 -0700)]
Clean convolve_test.cc

Combine test MatchesReferenceSubpixelFilter and
MatchesReferenceAveragingSubpixelFilter.

Change-Id: I75f96befbbb118cdc6b8c6001b4cdda8d88fbbd3

7 years agoExpand -Wextra to more of the library
Johann [Tue, 13 Sep 2016 21:01:38 +0000 (14:01 -0700)]
Expand -Wextra to more of the library

Suppress warnings in third_party/.

vp8 -Wclobbered issue is tracked here:
BUG=webm:1246

BUG=webm:1069

Change-Id: I9b94bf546d7b690c26a59ae67967facdce8ec45b

7 years agomips: clean up wextra warnings
Johann [Tue, 27 Sep 2016 20:17:51 +0000 (13:17 -0700)]
mips: clean up wextra warnings

Remove unused zbin variable:
warning: unused parameter ‘zbin’

Use int for loop variables to avoid unsigned conversion:
warning: comparison between signed and unsigned integer expressions

Change-Id: Icea74b870c0ee68a8bf687e796a69392af25a8ad

7 years agoAdd compiler flag -Wsign-compare
Urvang Joshi [Fri, 8 Jul 2016 23:09:36 +0000 (16:09 -0700)]
Add compiler flag -Wsign-compare

Also, fix the warnings generated by this flag.

(cherry picked from commit ebeb1155d4fa6d28e2f40c92265245f8df097fcb)

From AOM. Don't actually add -Wsign-compare. It will be covered by
-Wextra.

Switch to vpx_integer.h from df9c9d6d4c43f02c58d4e776c53323788e013cbc

BUG=webm:1069

Change-Id: I1dc6e61caa5d56af4a55b6692ab620bb3144652a

7 years agoAdd compiler warning flag -Wextra and fix related warnings.
Urvang Joshi [Thu, 14 Jul 2016 19:33:48 +0000 (12:33 -0700)]
Add compiler warning flag -Wextra and fix related warnings.

Note: some of these warnings are enabled by a combination of -Wunused
(added earlier) and -Wextra.

Cherry-picked from AOM 4790a69faaec8f03d65f64ff070f6ab4307dbb16

Expands use of (void)x; on unused variables. AOM only supports one codec
in codec_factory.h

Does not include changes to HandleDecodeResult. AOM removed
invalid_file_test.cc which does use the video parameter.

Does not enable -Wextra yet. There are more issues to fix.

BUG=webm:1069

Change-Id: I322a1366bd4fd6c0dec9e758c2d5e88e003b1cbf

7 years agoMerge "Limit max arf boost and scale motion breakout for image size."
Paul Wilkins [Tue, 27 Sep 2016 14:08:28 +0000 (14:08 +0000)]
Merge "Limit max arf boost and scale motion breakout for image size."

7 years agoFix for compile error with range checking
Peter de Rivaz [Tue, 27 Sep 2016 08:10:06 +0000 (09:10 +0100)]
Fix for compile error with range checking

Current version does not build with options:
  --enable-vp9-highbitdepth --enable-coefficient-range-checking

Change-Id: Ic3285f1a3e0d6be88da7f2cd8fa5a631368dd03b

7 years agoMerge "vp9: Reduce frame loopfilter-level for 1 pass cbr."
Marco Paniconi [Mon, 26 Sep 2016 22:05:43 +0000 (22:05 +0000)]
Merge "vp9: Reduce frame loopfilter-level for 1 pass cbr."

7 years agoMerge "Un-Revert "Restore vp8_sixtap_predict4x4_neon""
Johann Koenig [Mon, 26 Sep 2016 19:11:00 +0000 (19:11 +0000)]
Merge "Un-Revert "Restore vp8_sixtap_predict4x4_neon""

7 years agoMerge "Use shifted value for sinpi8sqrt2"
Johann Koenig [Mon, 26 Sep 2016 19:10:57 +0000 (19:10 +0000)]
Merge "Use shifted value for sinpi8sqrt2"

7 years agovp9: Reduce frame loopfilter-level for 1 pass cbr.
Marco [Mon, 26 Sep 2016 16:57:49 +0000 (09:57 -0700)]
vp9: Reduce frame loopfilter-level for 1 pass cbr.

Reduce the filt_guess for 1 pass cbr on inter-frames.
This reduces visual artifact seen in rtc clip (jimred.vga),
and improves metrics on rtc set.

Metrics on rtc set for cbr mode overall positive, most clips are up:
Speed 7 rtc: avgPSNR/SSIM up by: ~2.6/3.9%
Speed 8 rtc: avgPSNR/SSIM up by: ~1.3/2.5%

Change-Id: Ia4eccea1c19d65b583516df28823cd756c49464f

7 years agoMerge "Refactor lpf (size 4 and 8) NEON intrinsics optimization"
Linfeng Zhang [Mon, 26 Sep 2016 16:11:11 +0000 (16:11 +0000)]
Merge "Refactor lpf (size 4 and 8) NEON intrinsics optimization"

7 years agoLimit max arf boost and scale motion breakout for image size.
paulwilkins [Mon, 26 Sep 2016 14:35:23 +0000 (15:35 +0100)]
Limit max arf boost and scale motion breakout for image size.

Added a cap on the maximum boost for an arf based on interval length.
Fixed bug where by the image size was not accounted for in determining
two of the motion breakout thresholds.

Overall small gains of 0.2-0.4% psnr but on large image format clips with
slow zooms the gain may be as much as 20% or more (e.g. in_to_tree
at 1080P)

Change-Id: Id0a47391203026742daa9c97afac5705fd8c4dfb

7 years agoMerge "VP9: token decoder expansion"
Scott LaVarnway [Mon, 26 Sep 2016 12:06:50 +0000 (12:06 +0000)]
Merge "VP9: token decoder expansion"

7 years agoMerge "vp9_idct: delete dead TODOs"
James Zern [Sat, 24 Sep 2016 01:47:00 +0000 (01:47 +0000)]
Merge "vp9_idct: delete dead TODOs"

7 years agoUse shifted value for sinpi8sqrt2
Johann [Tue, 2 Aug 2016 22:59:35 +0000 (15:59 -0700)]
Use shifted value for sinpi8sqrt2

The value 35468 changes sign when stored in int16_t:
implicit conversion from 'int' to 'int16_t' (aka 'short')
changes value from 35468 to -30068

This negation requires adding back the original value to compensate.
Shifting the value keeps the value positive and saves a post-vqdmulh
shift.

This technique is used in webp and idct_dequant_full_2x_neon

BUG=b/28027557

Change-Id: I0c5ce09bea170fe08061856c2af6f841a557e0c3

7 years agoUn-Revert "Restore vp8_sixtap_predict4x4_neon"
Johann [Thu, 22 Sep 2016 21:48:58 +0000 (14:48 -0700)]
Un-Revert "Restore vp8_sixtap_predict4x4_neon"

This restores d9dce2f48eed1368a44c368fa87a506bd89ffec5

Switched to using signed shift-and-narrow. Instead of saturating
negative results to 0, it was saturating them to 255.

BUG=webm:817
BUG=webm:1273

Change-Id: I571095336aa4182e3288b17924fcaaece42b0a49

7 years agoVP9: token decoder expansion
Scott LaVarnway [Fri, 23 Sep 2016 12:03:52 +0000 (05:03 -0700)]
VP9: token decoder expansion

This version is based on Change 267683, but does not
use the macros.

Change-Id: I0619fa618decf8bdeef250584d75d70318b5d9a7

7 years agoMerge "VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader."
Scott LaVarnway [Fri, 23 Sep 2016 11:59:15 +0000 (11:59 +0000)]
Merge "VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader."

7 years agoMerge "vpx_idct32x32_34_add_sse2: rm unneeded transposes"
James Zern [Fri, 23 Sep 2016 02:49:26 +0000 (02:49 +0000)]
Merge "vpx_idct32x32_34_add_sse2: rm unneeded transposes"

7 years agoMerge "variance_neon: sync variance*() w/c,sse2"
James Zern [Fri, 23 Sep 2016 02:18:49 +0000 (02:18 +0000)]
Merge "variance_neon: sync variance*() w/c,sse2"

7 years agoVP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.
Scott LaVarnway [Thu, 22 Sep 2016 20:18:36 +0000 (13:18 -0700)]
VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.

Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d

7 years agovpx_idct32x32_34_add_sse2: rm unneeded transposes
James Zern [Wed, 21 Sep 2016 03:22:08 +0000 (20:22 -0700)]
vpx_idct32x32_34_add_sse2: rm unneeded transposes

this change is neutral to mildly positive across various x86-64
platforms

Change-Id: I28fb5ae598fc1317b7a42c9a846ac5d57d104784

7 years agoMerge "Detect invalid highbd iht input"
Angie Chiang [Thu, 22 Sep 2016 01:06:37 +0000 (01:06 +0000)]
Merge "Detect invalid highbd iht input"

7 years agovariance_neon: sync variance*() w/c,sse2
James Zern [Thu, 22 Sep 2016 01:04:45 +0000 (18:04 -0700)]
variance_neon: sync variance*() w/c,sse2

removes some unnecessary casts and adds a few explicit uint32 ones for
larger sizes to quiet -Wshorten-64-to-32 warnings

Change-Id: I63c5fce8e62c426d5cf5c10a66a113c119a43518

7 years agoMerge "vp8: remove VP8_SET_DBG* control support"
James Zern [Thu, 22 Sep 2016 00:43:35 +0000 (00:43 +0000)]
Merge "vp8: remove VP8_SET_DBG* control support"

7 years agoDetect invalid highbd iht input
Angie Chiang [Tue, 20 Sep 2016 18:59:23 +0000 (11:59 -0700)]
Detect invalid highbd iht input

Do nothing in vp9_highbd_iht#x#_##_add_c when input magnitude is beyond
20 bits. Note that, sign bit is not included here.

In the 20 bits, we use 12 bits for input signal, 7 bits for forward
transform amplification, and 1 bit for contingency in rounding and
quantizing

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1286

Change-Id: I332c6f68df4614fc2e7d2dc4c5bb0d0cff8a245c

7 years agoKeep vp8 sixtap read within bounds
Johann [Wed, 21 Sep 2016 22:55:45 +0000 (15:55 -0700)]
Keep vp8 sixtap read within bounds

When filtering it needs 6 pixels: 2 prior to the source, the source, and
3 after the source.

When filtering 16 wide, that means 21. To accomplish this the SSE2 reads
[-2] to [5], [6] to [13], and [14] to [21], a total of 24 bytes (reading
in groups of 8 is easy)

The filter then shifts this last set to the top half of the register and
uses 'or' to combine it with the previous set.

Valgrind detected an issue reading pixels [19], [20] and [21]:
Address 0x7f581c2 is 434 bytes inside a block of size 441 alloc'd

Note: we only need pixels [16], [17], and [18] as context for [15].

To fix this, it now reads 8 bytes starting at [11], which re-loads [11]
through [13], but stops at [18] and does not over-read any values.

This is shifted by 5 and 'or'd with xmm1. Although the lower bits are
not cleared, they overlap directly with [11] through [13], so 'or'
produces the correct results.

Change-Id: I0c89c03afa660fc9b0108ac055d7bd403e493320

7 years agopredict_test: align dst buffer to 16
Johann [Wed, 21 Sep 2016 20:31:59 +0000 (13:31 -0700)]
predict_test: align dst buffer to 16

On 32 bit machines 'new' does not always appear to allocate sufficiently
aligned buffers, causing intermittent test failures.

Change-Id: I0db4fc73782012e4eef71dc0fb540e74fdbfcebe

7 years agovp8: remove VP8_SET_DBG* control support
James Zern [Wed, 7 Sep 2016 23:17:50 +0000 (16:17 -0700)]
vp8: remove VP8_SET_DBG* control support

the --enable-postproc-visualizer configure option remains as a no-op as
do the control names and values for compatibility
+ remove the corresponding debug flags from vpxdec: --pp-*

Change-Id: I4a001cd9962b59560d7d6bda6272d4ff32b8d37c

7 years agovp9_idct: delete dead TODOs
James Zern [Tue, 20 Sep 2016 03:34:22 +0000 (20:34 -0700)]
vp9_idct: delete dead TODOs

Change-Id: Icdd5494f557d83026dc078bce37997a76aa288fb

7 years agoMerge changes from topic 'Wshorten'
James Zern [Tue, 20 Sep 2016 23:17:20 +0000 (23:17 +0000)]
Merge changes from topic 'Wshorten'

* changes:
  vp8: convert some uses of unsigned long to size_t
  vp8/encoder: quiet some -Wshorten-64-to-32 warnings

7 years agoMerge "variance_avx2: sync variance functions with c-code"
James Zern [Tue, 20 Sep 2016 22:33:38 +0000 (22:33 +0000)]
Merge "variance_avx2: sync variance functions with c-code"

7 years agoMerge "examples: quiet -Wshorten-64-to-32 warnings"
James Zern [Tue, 20 Sep 2016 22:32:58 +0000 (22:32 +0000)]
Merge "examples: quiet -Wshorten-64-to-32 warnings"

7 years agoMerge "vp9_rtcd: remove non-existent highbd convolve fns"
James Zern [Tue, 20 Sep 2016 22:07:09 +0000 (22:07 +0000)]
Merge "vp9_rtcd: remove non-existent highbd convolve fns"

7 years agoMerge "Enable ssse3 bilinear tests"
Johann Koenig [Tue, 20 Sep 2016 21:46:50 +0000 (21:46 +0000)]
Merge "Enable ssse3 bilinear tests"

7 years agoMerge "Add vp8_bilinear_filter test"
Johann Koenig [Tue, 20 Sep 2016 20:30:48 +0000 (20:30 +0000)]
Merge "Add vp8_bilinear_filter test"

7 years agoMerge "Code class0 using vpx_read() / vpx_write()."
Alex Converse [Tue, 20 Sep 2016 19:19:28 +0000 (19:19 +0000)]
Merge "Code class0 using vpx_read() / vpx_write()."

7 years agovp9_rtcd: remove non-existent highbd convolve fns
James Zern [Tue, 20 Sep 2016 03:01:23 +0000 (20:01 -0700)]
vp9_rtcd: remove non-existent highbd convolve fns

these were moved to vpx_dsp

Change-Id: I307b07ae05e2333277d4b7011cba36dcf8409959

7 years agoexamples: quiet -Wshorten-64-to-32 warnings
James Zern [Tue, 20 Sep 2016 02:01:21 +0000 (19:01 -0700)]
examples: quiet -Wshorten-64-to-32 warnings

all around usage of strtol/strtoul

Change-Id: If907c89f107a068987aa71ddd93cee9a7389e4cd

7 years agovp8: convert some uses of unsigned long to size_t
James Zern [Tue, 20 Sep 2016 01:33:10 +0000 (18:33 -0700)]
vp8: convert some uses of unsigned long to size_t

similar to changes that were done in vp9 for encoded frame size
reporting. has the side-effect of quieting a -Wshorten-64-to-32 warning.

Change-Id: I89f74cb617fc29334ee351dc8dfaa3b8cfd4e5af

7 years agovp8/encoder: quiet some -Wshorten-64-to-32 warnings
James Zern [Tue, 20 Sep 2016 01:32:12 +0000 (18:32 -0700)]
vp8/encoder: quiet some -Wshorten-64-to-32 warnings

this code is similar to other existing uses and/or vp9

Change-Id: I56e646931379759d9f7332ea6d746060007c75ee

7 years agoRefactor lpf (size 4 and 8) NEON intrinsics optimization
Linfeng Zhang [Mon, 19 Sep 2016 18:37:16 +0000 (11:37 -0700)]
Refactor lpf (size 4 and 8) NEON intrinsics optimization

Also check in 8x8 8-bit transpose NEON intrinsics optimization
transpose_u8_8x8()

Change-Id: I32d321cf97ea21eab158ac4896990fc9a51681c4

7 years agovariance_avx2: sync variance functions with c-code
James Zern [Mon, 19 Sep 2016 23:17:24 +0000 (16:17 -0700)]
variance_avx2: sync variance functions with c-code

add missing int64 -> uint32 cast; quiets -Wshorten-64-to-32 warnings

Change-Id: I4850b36e18dc8b399108342be4bfe0b684aefb78

7 years agoMerge "Remove -fno-strict-aliasing flag"
Johann Koenig [Mon, 19 Sep 2016 22:49:22 +0000 (22:49 +0000)]
Merge "Remove -fno-strict-aliasing flag"

7 years agoRemove -fno-strict-aliasing flag
Johann [Sat, 27 Aug 2016 01:13:07 +0000 (18:13 -0700)]
Remove -fno-strict-aliasing flag

The referenced bug was fixed by saving neon registers. That this had any
effect was coincidental.

Both chromium and Android build with clang and neither uses this flag.

Change-Id: I470247d6fd9226fc207b42a187105581a94badc3

7 years agoCode class0 using vpx_read() / vpx_write().
Nathan E. Egge [Thu, 8 Sep 2016 21:25:49 +0000 (17:25 -0400)]
Code class0 using vpx_read() / vpx_write().

The vp9_mv_class0_tree is a balanced tree with two leafs and can
simply be coded as a boolean with probability class0[0].

Change-Id: If294dac825a5f945371092c74aa8e3f84cd962b6
(cherry picked from commit be8a8ab62ebdd111c6f2e9a33b15630570671eba)

7 years agoZero the whole rd_counts struct rather than the each member
Alex Converse [Mon, 19 Sep 2016 17:04:47 +0000 (10:04 -0700)]
Zero the whole rd_counts struct rather than the each member

Change-Id: I495aa9cec2b2b8f1ae69bdab8b3feeca76358472

7 years agoloopfilter_mb_neon: remove unused load_8x8()
James Zern [Sat, 17 Sep 2016 18:00:31 +0000 (11:00 -0700)]
loopfilter_mb_neon: remove unused load_8x8()

quiets a -Wunused-function warning for arm targets

Change-Id: I293a7e3d3d7d61d6af2fbedad5e8c25126c418b6

7 years agoMerge "Refactor lpf (size 16) NEON intrinsics optimization"
Linfeng Zhang [Sat, 17 Sep 2016 00:33:30 +0000 (00:33 +0000)]
Merge "Refactor lpf (size 16) NEON intrinsics optimization"

7 years agoMerge "vpx_codec_control: return incapable for unmatched control"
James Zern [Fri, 16 Sep 2016 17:30:44 +0000 (17:30 +0000)]
Merge "vpx_codec_control: return incapable for unmatched control"

7 years agoRefactor lpf (size 16) NEON intrinsics optimization
Linfeng Zhang [Thu, 15 Sep 2016 23:49:47 +0000 (16:49 -0700)]
Refactor lpf (size 16) NEON intrinsics optimization

Extract shared code so later lpf size 4 and 8 functions can reuse.

Change-Id: Ibb43ef1fd8651bd2e32fcc4c56cf6fa7ca237401

7 years agovpx_subpixel_8t_intrin_avx2: tolerate unversioned clang
James Zern [Fri, 16 Sep 2016 03:40:21 +0000 (20:40 -0700)]
vpx_subpixel_8t_intrin_avx2: tolerate unversioned clang

assume __clang_major__==0 has the latest version of
_mm256_broadcastsi128_si256. fixes builds with custom clang toolchains.

BUG=b/30970831

Change-Id: I90becd56278e4716bd46e2ba9d910af977e8dfa6

7 years agoMerge changes from topic 'clang-format'
James Zern [Fri, 16 Sep 2016 07:11:33 +0000 (07:11 +0000)]
Merge changes from topic 'clang-format'

* changes:
  apply clang-format
  .clang-format: update to 3.8.1