Commit Graph

267 Commits

Author SHA1 Message Date
Surma
45fe4d2917 Add node version for imagequant 2020-12-05 20:23:35 +00:00
Surma
ef31e5cbd1 Add node version to AVIF 2020-12-05 20:23:34 +00:00
Surma
d8bd12fc6a Merge remote-tracking branch 'origin/dev' into visdf 2020-12-05 17:26:02 +00:00
Ingvar Stepanyan
58a6abffbb Threads and threads+SIMD builds for JPEG-XL (#865) 2020-12-02 15:40:16 +00:00
Ingvar Stepanyan
869d3f7732 Update WebP & WebP2 to latest upstream
Includes renaming "speed" to "effort" in WebP2.
2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
618a4d777b Update WebP2 binding code 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
7266c94f52 Rebuild WebP 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
d15dba7d20 Make Docker runs interactive
Otherwise they're impossible to cancel via Ctrl+C and this is driving me mad.
2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
0ded493489 Switch to upstream libwebp2 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
990018f758 Switch to upstream libwebp
The patches were merged now.
2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
4f4eaf01b7 Add comment to thread_level in wp2 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
73499d4a27 Add SIMD origin trial for dev--squoosh.netlify.app 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
198ad0fb1b Add SIMD support to libwebp 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
f0d341aefa Update Emscripten for SIMD 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
69e62339e6 Fixup 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
195762f64f Point to custom fork for SIMD builds 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
a951096aaa Support threads and threads+SIMD in WebP2 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
24d241564e Simplify how BUILD_DIR is passed 2020-12-01 14:36:30 +00:00
Ingvar Stepanyan
3ae1cf86f5 Autoformat staged C++ and Rust 2020-11-21 03:56:30 +00:00
Luca Versari
a699a5c4dc Fix Lossless+Progressive JXL.
Also limit the workaround for memory usage to large images.
2020-11-20 22:27:49 +00:00
Ingvar Stepanyan
f450373e3f Fix nightly Rust pinning; rebuild Oxi 2020-11-20 22:21:21 +00:00
Ingvar Stepanyan
750872aca6 Delete old oxipng files 2020-11-20 22:21:21 +00:00
Jake Archibald
13631f1cfc Extra Wp2 Options (#853)
* wip

* wip

* Add extra options

* Even more options!

* Update src/features/encoders/wp2/client/index.tsx

Co-authored-by: Surma <surma@surma.dev>

Co-authored-by: Surma <surma@surma.dev>
2020-11-20 16:12:38 +00:00
Jake Archibald
6da590c7d0 Merge branch 'rollup-build' into dev
# Conflicts:
#	_headers.ejs
#	codecs/oxipng/pkg/squoosh_oxipng_bg.js
#	src/codecs/avif/encoder.ts
#	src/codecs/oxipng/encoder.ts
#	src/codecs/processor.ts
#	src/codecs/util.ts
#	src/components/intro/imgs/logo.svg
#	src/missing-types.d.ts
#	webpack.config.js
2020-11-19 11:12:29 +00:00
Jake Archibald
56e10b3aa2 Rollup build 2020-11-19 11:00:23 +00:00
Ingvar Stepanyan
fd87ae7d2a Force-rebuild codecs with -O3
Follow-up to https://github.com/GoogleChromeLabs/squoosh/pull/838.

I have no idea what the JS+Wasm diffs in the original PR even represented if they weren't proper rebuilds, but this time I just removed node_modules in all codecs to enforce a proper, clean rebuild for each C++ codec.

(Still think the speed-ups are worth it.)
2020-11-02 17:37:35 +00:00
Surma
af954bd9e0 Build preprocessor pipeline 2020-11-02 14:55:29 +00:00
Ingvar Stepanyan
5df7dd7590 Update helper.Makefile 2020-11-02 13:54:41 +00:00
Ingvar Stepanyan
013946b137 Pass CODEC_DIR and LIBAOM_DIR via export
Slightly simpler than passing them in HELPER_MAKEFLAGS.
2020-11-02 13:54:41 +00:00
Ingvar Stepanyan
81c183b0d6 Restructure the AVIF directories
Change the way AVIF finds AOM from default ([avif source]/ext/aom) to custom paths. This allows us to avoid unpacking same archives into duplicate folders, and instead make multiple builds from the same source.
2020-11-02 13:54:41 +00:00
Ingvar Stepanyan
f523db6403 Try out new flags for building only AVIF encoder/decoder
See the discussion in https://github.com/AOMediaCodec/libavif/issues/254 where this was implemented.

This allows us to avoid using ERROR_ON_UNDEFINED_SYMBOLS and build a truly separate encoder/decoder libs.
2020-11-02 13:54:41 +00:00
Ingvar Stepanyan
cc6ea9e11c Switch to -O3 for C++ codecs 2020-11-02 12:46:12 +00:00
Ingvar Stepanyan
a9d3bd71b5 Bump oxipng
Integrating some upstream fixes from my branch.
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
f583770696 Explicitly disable HDR only for encoder 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
bae243ccdb Add feature detection to OxiPNG 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
02c113a68f Point oxipng to a patched version
Some upstream changes required for parallel build to work.
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
600eead007 Disable parallel feature for non-parallel OxiPNG 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
05416768d5 Update oxipng build system 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
35d31f2324 Add some comments to explain Rust thread glue 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
82fadac70e Fixup import.meta in OxiPNG 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
47f9d22dd8 Switch to crossbeam-channel
Still not perfect due to usage of a static global, but this is much cleaner and more efficient thanks to proper blocking of Workers that wait for new messages instead of a manual spin-loop.
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
9420dba3bc Parallel OxiPNG improvements
- Refactor to work around Chromium's issue with postMessage queuing. https://bugs.chromium.org/p/chromium/issues/detail?id=1075645
 - Convert codec code to TypeScript.
 - Make separate parallel and non-parallel builds.
 - Switch to nightly Rust for OxiPNG to allow parallel builds (but also reuse it for regular builds to avoid installing two toolchains).
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
0747d2c419 Rework fallback for postMessage issue
Now initialise all workers with module+memory separately, and then instead of using postMessage to send thread pointers, push them into a crossbeam-deque on the Rust side.

Rayon already depends on crossbeam-dequeue, so we're not even adding another dependency, and this model allows us to push "tasks" (thread pointers) on the main thread and pop them on worker threads in arbitrary order without sacrificing correctness.
2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
4c658b79ef OxiPNG + threads PoC 2020-10-07 20:42:48 +01:00
Ingvar Stepanyan
685558847f Multithread AVIF PoC 2020-10-07 20:42:48 +01:00
Trevor Manz
63ac34a662 Promisify emscripten modules & fix webp examples (#817) 2020-09-30 00:05:59 +01:00
Surma
588d5ad44e Add OxiPNG 2020-09-21 18:14:42 +01:00
Surma
139b635eed Add PNG encoding support 2020-09-18 16:00:29 +01:00
Surma
516c0aa8e7 Update wasm-bindgen version 2020-09-17 14:49:58 +01:00
Surma
273b4211c9 Add support for PNG decoding (encoding still buggy) 2020-09-16 23:59:06 +01:00