Commit Graph

3659 Commits

Author SHA1 Message Date
James Zern
0d7614fddf README.wasm: add instructions for enabling mulhi
Change-Id: I1e9dd737f06ad76f73824352291a6e129ca5ded1
2017-11-02 11:20:09 -07:00
James Zern
88692490a5 WebPMemToUint32: remove ptr cast to int
this can result in an alignment hint on arm causing a SIGBUS. casting
the input ptr to anything aside from its type is unnecessary for memcpy
and is contrary to the intent of this function.

Change-Id: I9a4d3f4be90f80cd8c3e96ccbe557e51e34cf7a5
(cherry picked from commit 04b029d236)
2017-10-31 18:24:54 -07:00
James Zern
0af22e17d6 dec_wasm,NEON mulhi: use local vector types in cast
fixes the compile with ENABLE_NEON_BUILTIN_MULHI_INT16X8 without relying
on arm_neon.h when using __builtin_neon_vqdmulhq_v; the typedefs are
assumed to resolve to the same underlying type.

Change-Id: I8840e90d894b5045e0742030cff5e800d7d56efc
2017-10-30 20:40:48 -07:00
James Zern
08af967025 add LOCAL_CLANG_PREREQ and avoid WORK_AROUND_GCC w/3.8+
this results in a 15-20% speedup for lossy decoding on a N5/S6/CM1

BUG=webp:339

Change-Id: Icdeb84c3e0b8908147ac276b4d8f76c3d565b735
(cherry picked from commit f78da3dea6)
2017-10-28 11:49:18 -07:00
James Zern
a26996116f define WEBP_USE_INTRINSICS w/gcc-4.9+
32-bit builds are neutral to slightly faster using ndk r15c on a
N5/S6/CM1

BUG=webp:339

Change-Id: I94b9442e0ceaf2f5edb2b4026bc8b99cd77c918b
(cherry picked from commit 01c426f1e7)
2017-10-28 11:49:18 -07:00
James Zern
5505a5b107 Android.mk,mips: fix clang build with r15
-integrated-as is now required, the opposite of r14

Change-Id: Ic478b2b3b933e66e7d159030eac29f58743eecda
(cherry picked from commit 4fbdc9fb12)
2017-10-28 11:49:18 -07:00
Scott LaVarnway
8ed24a564c wasm: replace _mulhi_int16x8() with neon builtin
BUG=webp:352

Change-Id: I5c21ee4c631fb7eccff36c7d3cd47a72badf1a89
2017-08-23 12:10:37 -07:00
James Zern
0e8c3004be fix Android standalone toolchain build
add a check for cpu-features.h and rework some of the ifdef's around
android + neon. for android builds with cpu-features enabled the
*_neon.c files will still need to be flagged correctly (with e.g.,
.c.neon in Android.mk) to properly build them.

BUG=webp:353

Change-Id: I905ce305af0a204e560b915d8665093a3edaceb9
(cherry picked from commit c6d1db4b36)
2017-08-22 12:23:25 -07:00
Scott LaVarnway
6fcc3a720d wasm: Add simple loopfilter
BUG=webp:352

Change-Id: If51454b8f54fb14ced91fa703e86e057457f454f
2017-07-28 09:04:30 -07:00
Scott LaVarnway
2371724d79 Merge "wasm: replace _mulhi_int16x8() with x86 builtin" into portable-intrinsics 2017-07-28 11:43:05 +00:00
Scott LaVarnway
9d1e151bf5 wasm: replace _mulhi_int16x8() with x86 builtin
BUG=webp:352

Change-Id: Ie51a8bb68211d7778610a818bba02e7455e47e23
2017-07-27 15:03:52 -07:00
James Zern
a1ab868427 README.wasm: add android build instructions
Change-Id: I819dc373b20b2d0255bf396de5e9b467166bb9c2
2017-07-19 12:48:29 -07:00
Scott LaVarnway
0b8ecc8cfa wasm: Rename _pack_sw_2_sb to _pack_epi16_to_epi8
BUG=webp:352

Change-Id: I67beb9297d3a37f3691779e0ad6f557f06195219
2017-07-18 13:34:21 -07:00
James Zern
c646241391 README.wasm: normalize cmake command lines
+ enable NEON for armv7

Change-Id: If914f3973391271a1817e7ff16541f3272b2ad88
2017-07-18 11:09:07 -07:00
James Zern
cfaebe3e95 dec_wasm,armv7: set ENABLE_NEON_BUILTIN_ADDSUB_SAT
this path works with -march=armv7a -mfpu=neon with clang

Change-Id: I0c04ab9a195c353aa2bfaf3ba2ca8a21e68ee5e1
2017-07-17 22:15:38 -07:00
James Zern
c0eb3ff7d4 dec_wasm,x86: define ENABLE_X86_BUILTIN_ADDSUB_SAT
this matches the behavior for aarch64

Change-Id: I243ca6cc5ffec107065a7e0dc442ee69322936ae
2017-07-15 11:54:25 -07:00
Scott LaVarnway
415b98ffad wasm: Enable neon add,sub with sat builtins
For performance testing

BUG=webp:352

Change-Id: I3fab48ee610437ac07dd603208972edf17c6f50b
2017-07-14 15:11:57 -07:00
James Zern
09bcd9a397 Merge "wasm: Replace 5 __builtin_shufflevector()" into portable-intrinsics 2017-07-11 22:57:32 +00:00
Scott LaVarnway
e83df9d208 wasm: replace #if with #ifdef
BUG=webp:352

Change-Id: Ib173e8cdb9077b385141c0e3a2f7ceb1a183b89e
2017-07-11 13:18:15 -07:00
Scott LaVarnway
3387fb6fa6 wasm: Replace 5 __builtin_shufflevector()
with _unpack*()

BUG=webp:352

Change-Id: Iea17286260afe7d242c91b02d888c5af59ab0cb7
2017-07-11 13:06:24 -07:00
Scott LaVarnway
599bddb658 Merge "wasm: cleanup _pack_sw_2_sb(), SignedShift8b()" into portable-intrinsics 2017-07-11 19:27:57 +00:00
Scott LaVarnway
28fbe808b9 Merge "wasm: Add VFilter8i and HFilter8i" into portable-intrinsics 2017-07-11 18:53:51 +00:00
Scott LaVarnway
c396e6701b wasm: cleanup _pack_sw_2_sb(), SignedShift8b()
BUG=webp:352

Change-Id: I35a36e1841f71f286fa7e032866a878b52ba56ba
2017-07-11 08:48:49 -07:00
Scott LaVarnway
96ef09107c Merge "wasm: Generic add,sub saturate" into portable-intrinsics 2017-07-10 22:52:40 +00:00
James Zern
bc01db116f Merge "add README.wasm" into portable-intrinsics 2017-07-10 22:15:16 +00:00
James Zern
d2adc08095 add README.wasm
describes how to build dwebp using portable intrinsics

BUG=webp:352

Change-Id: Ibd39dd156d6b64b52f9ade871b969a070bc9ab61
2017-07-10 22:15:00 +00:00
Scott LaVarnway
d6f90a3d83 wasm: Add VFilter8i and HFilter8i
BUG=webp:352

Change-Id: I76bac76d55ba2ac62bac479ee60291acacfc491c
2017-07-10 13:19:58 -07:00
Scott LaVarnway
cd01fc3944 wasm: Add VFilter8 and HFilter8
BUG=webp:352

Change-Id: Ic43eb5edd7e2508d2975c8f4f72cdba60c4b70f7
2017-07-10 11:54:39 -07:00
Scott LaVarnway
9a1a3aa827 wasm: Generic add,sub saturate
BUG=webp:352

Change-Id: I2640df736ea852ca5adcb5048550e26475c777ef
2017-07-10 11:46:53 -07:00
Scott LaVarnway
9eceff25c0 wasm: Add VFilter16i and HFilter16i
BUG=webp:352

Change-Id: If2cf5737d7aeab9e2d7205adfd334e3041a83c9f
2017-07-10 06:31:00 -07:00
Scott LaVarnway
fe6184d706 wasm: Add HFilter16
BUG=webp:352

Change-Id: I8f1124b36bb5769790b0e7b193acb775e8f463b1
2017-07-07 10:52:48 -07:00
James Zern
cb6c3a2a36 cosmetics,dec_wasm: constify function params
Change-Id: I10f2f612b553dc2c8282f4a7d4176f645aba97c9
2017-07-06 23:23:58 -07:00
James Zern
ec666c7526 cmake: split gif detection from IMG deps
gifdec isn't part of imageio lib, it's only used by gif2webp.

Change-Id: I70bff378a32f8fb2ebb8a5a7701049ffff7f7992
(cherry picked from commit dcbc1c881a)
2017-07-07 04:11:49 +00:00
Scott LaVarnway
bafa90ccd8 wasm: Add VFilter16
BUG=webp:352

Change-Id: I97f38aee5de063957c1512f6bd429c0e84c02087
2017-07-06 11:21:53 -07:00
Scott LaVarnway
e6e3ec335c wasm: Add Truemotion
BUG=webp:352

Change-Id: Ie65e155ac2d8253a5706ee85e830ec220a12ab4b
2017-07-05 15:56:01 -07:00
Scott LaVarnway
168a3a9e28 Merge "wasm: Add Transform" into portable-intrinsics 2017-07-05 19:50:31 +00:00
Scott LaVarnway
ad4ca27449 wasm: Add Transform
BUG=webp:352

Change-Id: Ib119b4121c6fd1a5165088dd132b4ab2aca627a5
2017-07-05 12:16:05 -07:00
Scott LaVarnway
3a5528713b wasm: Add VR4, LD4, and VL4
BUG=webp:352

Change-Id: I28ec852da8aef65b7f3c372c08be5c6bf68256be
2017-07-03 05:36:24 -07:00
Scott LaVarnway
b4cefba731 wasm: Add VE4 and RD4
BUG=webp:352

Change-Id: I24286685d7c002ec55534a98bcb88ecd82562f79
2017-06-30 11:08:43 -07:00
Scott LaVarnway
440945ca57 wasm: Add DC8uv*, VE8uv, and HE8uv functions
BUG=webp:352

Change-Id: Ia0b2b0d5007c12fff201ac94673312420da42a53
2017-06-30 02:14:12 +00:00
Scott LaVarnway
a37a7b00d5 wasm: Add DC16*, VE16, and HE16 functions
BUG=webp:352

Change-Id: Ia003257d00c2c2ea16a6e6344671237e78c0eac6
2017-06-29 21:48:14 +00:00
James Zern
a604ab5600 cpu.cmake: skip simd disable flag check w/wasm
this workarounds an ICE with clang. WASM overrides the native simd so
apart from binary size building it isn't an issue.

BUG=webp:350

Change-Id: Ib0195049249e6cb86d3225ce5db7247ac22cdbd6
2017-06-28 19:34:24 -07:00
James Zern
b005d916f8 dsp/cpu: correct wasmCPUInfo placement
WASM needs to precede platform specific architecture checks as the
defines will still be present when building this target.

Change-Id: I823f4922829561ea298c6837068b79bf9f1aee1b
2017-06-26 16:05:51 -07:00
James Zern
586eda373d Revert "dsp/cpu: correct wasmCPUInfo placement"
This reverts commit 4026e34e3f.

fails to build; not all x86 paths were protected

Change-Id: I27bcc83e74440205bfd99c31c6da319c205ef145
2017-06-26 15:49:20 -07:00
James Zern
4026e34e3f dsp/cpu: correct wasmCPUInfo placement
WASM needs to precede platform specific architecture checks as the
defines will still be present when building this target.

Change-Id: If25467ea286e582b928e26e716e41aff72898c50
2017-06-26 12:12:46 -07:00
James Zern
4b21971337 add dec_wasm.c
stub + basic cmake support for targeting native code generation using
portable intrinsics / wasm (WebAssembly). integrating this into the
webp_js path will be left until the implementation is more complete.

Change-Id: I3e751b511f6d671da5ba8afc88ca412f31f097b0
2017-06-22 23:21:31 -07:00
James Zern
3b62347b0f README: correct cmake invocation note
the default invocation given generates makefiles, not a configure script

Change-Id: Ia65b120289b497c2f2981fec330456682d11162a
2017-06-21 16:36:09 -07:00
Vincent Rabaud
7ca0df1363 Have the SSE2 version of PackARGB use common code.
The common code actually got sped-up by 25% by using the code
from PackARGB.

Change-Id: I94be6ccff2bfe02fff13c8e2698669e6a0d8fc74
2017-06-20 17:41:14 +02:00
Pascal Massimino
7b250459d6 Merge "Re-use the transformed image when trying several LZ77 in lossless." 2017-06-20 11:53:01 +00:00
Vincent Rabaud
e132072f0b Re-use the transformed image when trying several LZ77 in lossless.
Change-Id: If879b960131ba26859f8e4719a4c74cec1e0aaa8
2017-06-19 17:30:01 +02:00