Commit Graph

3645 Commits

Author SHA1 Message Date
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
Vincent Rabaud
5d7a50efee Get code to compile in C++.
Change-Id: I2f56e6b71e33ffecdba9e4fa9ef8f891c88f850f
2017-06-19 17:12:29 +02:00
James Zern
7b012987a2 configure: test for -Wparentheses-equality
Change-Id: Id91d581781f77e6cc92cc33dfd3c8ea37e130164
2017-06-15 16:07:07 -07:00
Vincent Rabaud
f0569adb93 Fix man pages for multi-threading.
BUG=webp:336

Change-Id: I70d3dfb8a532c1f2b80bd08cc62e833962cb4b34
2017-06-15 08:49:04 +00:00
Pascal Massimino
f1d5a397db multithread cruncher: only copy stats when picture->stats != NULL
BUG=webp:336

Change-Id: I6dfbbdcf61a6cb455f6cbf3dcd7f4c46578f42aa
2017-06-14 21:49:13 +02:00
Vincent Rabaud
f8c2ac15af Multi-thread the lossless cruncher.
BUG=webp:336

Change-Id: I8e861d6a61d51a5cdc4bbd00cd4f17d4ff006d2f
2017-06-14 16:50:36 +02:00
Vincent Rabaud
a88c6522f6 Merge "Integrate a new LZ77 looking for matches in the neighborhood of a pixel only." 2017-06-13 13:15:48 +00:00
Vincent Rabaud
8f6df1d0b9 Unroll Predictors 10, 11 and 12.
We see the following speed-ups:
10 -> 13%
11 -> 13%
12 -> 13%

Change-Id: I4734fd388d0f4e508884d0b123976bf2cbe69d2f
2017-06-08 20:37:47 +02:00
Vincent Rabaud
355c3d1bc7 Integrate a new LZ77 looking for matches in the neighborhood of a pixel only.
Change-Id: Ie2bbfee0a8d154b58f4a3068f3f634b7dad4c12d
2017-06-08 15:19:40 +02:00
Vincent Rabaud
a1779a017b Refactor LZ77 handling in preparation for a new method.
Change-Id: If305c328c8f508bd778d1af108e4eb979fbd2eca
2017-06-07 16:43:04 +02:00
James Zern
67de68b5d9 Android.mk/build.gradle: fix mips build with clang from r14b
fixes unknown instruction errors for e.g.,
usw    $15, 0($8)

BUG=webp:343

Change-Id: I71d00527fecd2370a40f6bd12f4e361fb525477f
2017-06-03 13:06:54 -07:00
Vincent Rabaud
f209a5481e Use the plane code and not the distance when computing statistics.
As backward references use the plane code when checking the cost
of a distance, statistics used to compute the cost should use it too.
This provides a small compression improvement at no speed cost.

Change-Id: Icade150929ee39ef6dc0d8b1fc85973086ecf41d
2017-06-01 17:08:43 +02:00
Vincent Rabaud
b903b80c30 Split cost-based backward references in its own file.
Change-Id: I4d8281e69b0e41f7c90337e5be70a6c65b044086
2017-06-01 16:22:31 +02:00
Vincent Rabaud
498cad34be Cosmetic changes in backward reference.
Change-Id: Ieb3dd65a647c034f67cf029e7b03f843b4650b0f
2017-06-01 14:20:16 +02:00
Vincent Rabaud
e4eb458741 lossless, VP8LTransformColor_C: make sure no overflow happens with colors.
Change-Id: Iec0d07cf1188ba96391cdb1b62131fc1469dfac6
2017-05-24 11:34:40 +02:00