@pbk20191/icodec 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -55
- package/dist/avif-dec.d.ts +14 -0
- package/dist/avif-dec.js +296 -2
- package/dist/avif-dec.wasm +0 -0
- package/dist/avif-enc.d.ts +30 -0
- package/dist/avif-enc.js +298 -2
- package/dist/avif-enc.wasm +0 -0
- package/dist/heic-dec.d.ts +14 -0
- package/dist/heic-dec.js +317 -2
- package/dist/heic-dec.wasm +0 -0
- package/dist/heic-enc.d.ts +26 -0
- package/dist/heic-enc.js +364 -2
- package/dist/heic-enc.wasm +0 -0
- package/dist/jxl-dec.d.ts +14 -0
- package/dist/jxl-dec.js +296 -2
- package/dist/jxl-dec.wasm +0 -0
- package/dist/jxl-enc.d.ts +37 -0
- package/dist/jxl-enc.js +298 -2
- package/dist/jxl-enc.wasm +0 -0
- package/dist/mozjpeg.d.ts +34 -0
- package/dist/mozjpeg.js +298 -2
- package/dist/mozjpeg.wasm +0 -0
- package/dist/pngquant.d.ts +48 -0
- package/dist/pngquant.js +2 -0
- package/dist/pngquant_bg.wasm +0 -0
- package/dist/qoi.d.ts +15 -0
- package/dist/qoi.js +296 -2
- package/dist/qoi.wasm +0 -0
- package/dist/vvic-dec.d.ts +14 -0
- package/dist/vvic-dec.js +327 -2
- package/dist/vvic-dec.wasm +0 -0
- package/dist/vvic-enc.d.ts +20 -0
- package/dist/vvic-enc.js +343 -2
- package/dist/vvic-enc.wasm +0 -0
- package/dist/webp-dec.d.ts +14 -0
- package/dist/webp-dec.js +296 -2
- package/dist/webp-dec.wasm +0 -0
- package/dist/webp-enc.d.ts +50 -0
- package/dist/webp-enc.js +301 -2
- package/dist/webp-enc.wasm +0 -0
- package/dist/wp2-dec.d.ts +14 -0
- package/dist/wp2-dec.js +296 -2
- package/dist/wp2-dec.wasm +0 -0
- package/dist/wp2-enc.d.ts +27 -0
- package/dist/wp2-enc.js +298 -2
- package/dist/wp2-enc.wasm +0 -0
- package/lib/avif.d.ts +5 -3
- package/lib/common.d.ts +4 -1
- package/lib/common.js +10 -3
- package/lib/heic.d.ts +3 -3
- package/lib/index.d.ts +10 -10
- package/lib/jpeg.d.ts +4 -2
- package/lib/jpeg.js +4 -0
- package/lib/jxl.d.ts +3 -3
- package/lib/node.d.ts +16 -0
- package/lib/node.js +29 -32
- package/lib/png.d.ts +3 -3
- package/lib/qoi.d.ts +4 -3
- package/lib/qoi.js +2 -1
- package/lib/vvic.d.ts +3 -3
- package/lib/webp.d.ts +5 -4
- package/lib/wp2.d.ts +4 -3
- package/lib/wp2.js +1 -0
- package/package.json +15 -8
- package/types/wasm_type.d.ts +57 -0
package/README.md
CHANGED
|
@@ -81,6 +81,20 @@ Image encoders & decoders built with WebAssembly, support high-depth.
|
|
|
81
81
|
<a href='https://chromium.googlesource.com/codecs/libwebp2'>libwebp2</a>
|
|
82
82
|
</td>
|
|
83
83
|
<td>8</td>
|
|
84
|
+
</tr>S
|
|
85
|
+
<tr>
|
|
86
|
+
<td>vvic</td>
|
|
87
|
+
<td>
|
|
88
|
+
<a href='https://github.com/strukturag/libheif'>libheif</a>
|
|
89
|
+
+
|
|
90
|
+
<a href='https://github.com/fraunhoferhhi/vvenc'>vvenc</a>
|
|
91
|
+
</td>
|
|
92
|
+
<td>
|
|
93
|
+
<a href='https://github.com/strukturag/libheif'>libheif</a>
|
|
94
|
+
+
|
|
95
|
+
<a href='https://github.com/fraunhoferhhi/vvdec'>vvdec</a>
|
|
96
|
+
</td>
|
|
97
|
+
<td>8</td>
|
|
84
98
|
</tr>
|
|
85
99
|
</tbody>
|
|
86
100
|
</table>
|
|
@@ -242,62 +256,65 @@ This benchmark ignores extra code size introduced by icodec, which in practice n
|
|
|
242
256
|
|
|
243
257
|
Decode on Edge browser.
|
|
244
258
|
|
|
245
|
-
| No. | Name | codec | time |
|
|
246
|
-
| --: | -----: | ----: | ----------: |
|
|
247
|
-
| 0 | icodec | avif | 1,
|
|
248
|
-
| 1 | 2d | avif | 493.
|
|
249
|
-
| 2 | WebGL | avif |
|
|
250
|
-
| 3 | icodec | heic | 1.
|
|
251
|
-
| 4 | icodec | jpeg |
|
|
252
|
-
| 5 | 2d | jpeg |
|
|
253
|
-
| 6 | WebGL | jpeg |
|
|
254
|
-
| 7 | icodec | jxl |
|
|
255
|
-
| 8 | icodec | png |
|
|
256
|
-
| 9 | 2d | png |
|
|
257
|
-
| 10 | WebGL | png |
|
|
258
|
-
| 11 | icodec | qoi |
|
|
259
|
-
| 12 | icodec |
|
|
260
|
-
| 13 |
|
|
261
|
-
| 14 |
|
|
262
|
-
| 15 |
|
|
259
|
+
| No. | Name | codec | time | time.SD |
|
|
260
|
+
| --: | -----: | ----: | ----------: | --------: |
|
|
261
|
+
| 0 | icodec | avif | 1,710.60 us | 21.93 us |
|
|
262
|
+
| 1 | 2d | avif | 493.69 us | 1.65 us |
|
|
263
|
+
| 2 | WebGL | avif | 894.87 us | 10.13 us |
|
|
264
|
+
| 3 | icodec | heic | 1.17 ms | 14.51 us |
|
|
265
|
+
| 4 | icodec | jpeg | 2.05 ms | 628.38 us |
|
|
266
|
+
| 5 | 2d | jpeg | 1.56 ms | 110.55 us |
|
|
267
|
+
| 6 | WebGL | jpeg | 2.63 ms | 707.70 us |
|
|
268
|
+
| 7 | icodec | jxl | 13.09 ms | 955.22 us |
|
|
269
|
+
| 8 | icodec | png | 821.78 us | 66.81 us |
|
|
270
|
+
| 9 | 2d | png | 1,199.33 us | 44.77 us |
|
|
271
|
+
| 10 | WebGL | png | 1,946.85 us | 442.79 us |
|
|
272
|
+
| 11 | icodec | qoi | 892.97 us | 31.51 us |
|
|
273
|
+
| 12 | icodec | vvic | 11.16 ms | 292.62 us |
|
|
274
|
+
| 13 | icodec | webp | 2.55 ms | 164.52 us |
|
|
275
|
+
| 14 | 2d | webp | 2.20 ms | 176.67 us |
|
|
276
|
+
| 15 | WebGL | webp | 2.51 ms | 451.14 us |
|
|
277
|
+
| 16 | icodec | wp2 | 8.72 ms | 174.01 us |
|
|
263
278
|
|
|
264
279
|
Decode on Node, vs [Sharp](https://github.com/lovell/sharp).
|
|
265
280
|
|
|
266
|
-
| No. | Name | codec | time |
|
|
267
|
-
| --: | -----: | ----: | --------: |
|
|
268
|
-
| 0 | icodec | avif | 1.
|
|
269
|
-
| 1 | Sharp | avif | 1.
|
|
270
|
-
| 2 | icodec | heic | 1.
|
|
271
|
-
| 3 | Sharp | heic |
|
|
272
|
-
| 4 | icodec | jpeg |
|
|
273
|
-
| 5 | Sharp | jpeg |
|
|
274
|
-
| 6 | icodec | jxl | 2.
|
|
275
|
-
| 7 | Sharp | jxl | 3.
|
|
276
|
-
| 8 | icodec | png |
|
|
277
|
-
| 9 | Sharp | png |
|
|
278
|
-
| 10 | icodec | qoi |
|
|
279
|
-
| 11 | icodec |
|
|
280
|
-
| 12 |
|
|
281
|
-
| 13 |
|
|
281
|
+
| No. | Name | codec | time | time.SD |
|
|
282
|
+
| --: | -----: | ----: | --------: | -------: |
|
|
283
|
+
| 0 | icodec | avif | 1.68 ms | 20.70 us |
|
|
284
|
+
| 1 | Sharp | avif | 1.16 ms | 33.35 us |
|
|
285
|
+
| 2 | icodec | heic | 1.16 ms | 18.64 us |
|
|
286
|
+
| 3 | Sharp | heic | 1.90 ms | 26.32 us |
|
|
287
|
+
| 4 | icodec | jpeg | 435.98 us | 8.20 us |
|
|
288
|
+
| 5 | Sharp | jpeg | 472.40 us | 9.68 us |
|
|
289
|
+
| 6 | icodec | jxl | 2.07 ms | 21.80 us |
|
|
290
|
+
| 7 | Sharp | jxl | 3.84 ms | 64.29 us |
|
|
291
|
+
| 8 | icodec | png | 154.72 us | 1.60 us |
|
|
292
|
+
| 9 | Sharp | png | 419.32 us | 2.15 us |
|
|
293
|
+
| 10 | icodec | qoi | 181.06 us | 4.86 us |
|
|
294
|
+
| 11 | icodec | vvic | 1.53 ms | 17.61 us |
|
|
295
|
+
| 12 | icodec | webp | 361.30 us | 6.68 us |
|
|
296
|
+
| 13 | Sharp | webp | 940.68 us | 7.43 us |
|
|
297
|
+
| 14 | icodec | wp2 | 1.46 ms | 13.45 us |
|
|
282
298
|
|
|
283
299
|
Encode on Node, vs [Sharp](https://github.com/lovell/sharp). Note that icodec and Sharp do not use the same code, so the output images are not exactly equal.
|
|
284
300
|
|
|
285
|
-
| No. | Name | codec | time |
|
|
286
|
-
|
|
287
|
-
| 0 | icodec | avif |
|
|
288
|
-
| 1 | Sharp | avif |
|
|
289
|
-
| 2 | icodec | heic |
|
|
290
|
-
| 3 | Sharp | heic |
|
|
291
|
-
| 4 | icodec | jpeg | 7,
|
|
292
|
-
| 5 | Sharp | jpeg |
|
|
293
|
-
| 6 | icodec | jxl |
|
|
294
|
-
| 7 | Sharp | jxl |
|
|
295
|
-
| 8 | icodec | png |
|
|
296
|
-
| 9 | Sharp | png | 2.
|
|
297
|
-
| 10 | icodec | qoi |
|
|
298
|
-
| 11 | icodec |
|
|
299
|
-
| 12 |
|
|
300
|
-
| 13 |
|
|
301
|
+
| No. | Name | codec | time | time.SD |
|
|
302
|
+
| --: | -----: | ----: | ----------: | ----------: |
|
|
303
|
+
| 0 | icodec | avif | 33.97 ms | 552.34 us |
|
|
304
|
+
| 1 | Sharp | avif | 41.82 ms | 1,494.94 us |
|
|
305
|
+
| 2 | icodec | heic | 92.53 ms | 2.80 ms |
|
|
306
|
+
| 3 | Sharp | heic | 40.57 ms | 1.06 ms |
|
|
307
|
+
| 4 | icodec | jpeg | 7,742.53 us | 861.64 us |
|
|
308
|
+
| 5 | Sharp | jpeg | 572.19 us | 15.27 us |
|
|
309
|
+
| 6 | icodec | jxl | 26.89 ms | 400.82 us |
|
|
310
|
+
| 7 | Sharp | jxl | 28.50 ms | 268.92 us |
|
|
311
|
+
| 8 | icodec | png | 47.40 ms | 284.28 us |
|
|
312
|
+
| 9 | Sharp | png | 2.25 ms | 16.63 us |
|
|
313
|
+
| 10 | icodec | qoi | 92.90 us | 1.71 us |
|
|
314
|
+
| 11 | icodec | vvic | 1.24 s | 46.07 ms |
|
|
315
|
+
| 12 | icodec | webp | 3.87 ms | 212.54 us |
|
|
316
|
+
| 13 | Sharp | webp | 2.69 ms | 44.19 us |
|
|
317
|
+
| 14 | icodec | wp2 | 54.05 ms | 845.42 us |
|
|
301
318
|
|
|
302
319
|
# Contribute
|
|
303
320
|
|
|
@@ -327,8 +344,4 @@ Start web demo:
|
|
|
327
344
|
|
|
328
345
|
```shell
|
|
329
346
|
node scripts/start-demo.js
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
TODOs:
|
|
333
|
-
|
|
334
|
-
* Cannot specify vvenc & vvdec paths for libheif build.
|
|
347
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
|
|
2
|
+
declare namespace RuntimeExports {
|
|
3
|
+
let HEAP8: Int8Array;
|
|
4
|
+
}
|
|
5
|
+
interface WasmModule {
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
type EmbindString = ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|string;
|
|
9
|
+
interface EmbindModule {
|
|
10
|
+
decode(_0: EmbindString): any;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type MainModule = WasmModule & typeof RuntimeExports & EmbindModule;
|
|
14
|
+
export default function MainModuleFactory (options?: unknown): Promise<MainModule>;
|