@pbk20191/icodec 0.7.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 -50
- 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 +242 -258
- 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 -0
- package/dist/vvic-dec.wasm +0 -0
- package/dist/vvic-enc.d.ts +20 -0
- package/dist/vvic-enc.js +343 -0
- 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 -9
- package/lib/index.js +1 -0
- 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 +31 -37
- 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 +25 -0
- package/lib/vvic.js +30 -0
- 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/versions.json +1 -1
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,57 +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 |
|
|
248
|
-
| 1 | 2d | avif |
|
|
249
|
-
| 2 | WebGL | avif |
|
|
250
|
-
| 3 | icodec | heic |
|
|
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 | 1,
|
|
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 |
|
|
267
|
-
|
|
268
|
-
| 0 | icodec | avif |
|
|
269
|
-
| 1 | Sharp | avif |
|
|
270
|
-
| 2 | icodec | heic |
|
|
271
|
-
| 3 |
|
|
272
|
-
| 4 |
|
|
273
|
-
| 5 |
|
|
274
|
-
| 6 | icodec |
|
|
275
|
-
| 7 | Sharp |
|
|
276
|
-
| 8 | icodec |
|
|
277
|
-
| 9 |
|
|
278
|
-
| 10 |
|
|
279
|
-
| 11 | icodec |
|
|
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 |
|
|
280
298
|
|
|
281
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.
|
|
282
300
|
|
|
283
|
-
| No. | Name | codec | time |
|
|
284
|
-
|
|
285
|
-
| 0 | icodec | avif |
|
|
286
|
-
| 1 | Sharp | avif |
|
|
287
|
-
| 2 | icodec |
|
|
288
|
-
| 3 | Sharp |
|
|
289
|
-
| 4 | icodec |
|
|
290
|
-
| 5 |
|
|
291
|
-
| 6 |
|
|
292
|
-
| 7 |
|
|
293
|
-
| 8 | icodec |
|
|
294
|
-
| 9 | Sharp |
|
|
295
|
-
| 10 | icodec |
|
|
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 |
|
|
296
318
|
|
|
297
319
|
# Contribute
|
|
298
320
|
|
|
@@ -322,8 +344,4 @@ Start web demo:
|
|
|
322
344
|
|
|
323
345
|
```shell
|
|
324
346
|
node scripts/start-demo.js
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
TODOs:
|
|
328
|
-
|
|
329
|
-
* 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>;
|