@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.
Files changed (65) hide show
  1. package/README.md +68 -55
  2. package/dist/avif-dec.d.ts +14 -0
  3. package/dist/avif-dec.js +296 -2
  4. package/dist/avif-dec.wasm +0 -0
  5. package/dist/avif-enc.d.ts +30 -0
  6. package/dist/avif-enc.js +298 -2
  7. package/dist/avif-enc.wasm +0 -0
  8. package/dist/heic-dec.d.ts +14 -0
  9. package/dist/heic-dec.js +317 -2
  10. package/dist/heic-dec.wasm +0 -0
  11. package/dist/heic-enc.d.ts +26 -0
  12. package/dist/heic-enc.js +364 -2
  13. package/dist/heic-enc.wasm +0 -0
  14. package/dist/jxl-dec.d.ts +14 -0
  15. package/dist/jxl-dec.js +296 -2
  16. package/dist/jxl-dec.wasm +0 -0
  17. package/dist/jxl-enc.d.ts +37 -0
  18. package/dist/jxl-enc.js +298 -2
  19. package/dist/jxl-enc.wasm +0 -0
  20. package/dist/mozjpeg.d.ts +34 -0
  21. package/dist/mozjpeg.js +298 -2
  22. package/dist/mozjpeg.wasm +0 -0
  23. package/dist/pngquant.d.ts +48 -0
  24. package/dist/pngquant.js +2 -0
  25. package/dist/pngquant_bg.wasm +0 -0
  26. package/dist/qoi.d.ts +15 -0
  27. package/dist/qoi.js +296 -2
  28. package/dist/qoi.wasm +0 -0
  29. package/dist/vvic-dec.d.ts +14 -0
  30. package/dist/vvic-dec.js +327 -2
  31. package/dist/vvic-dec.wasm +0 -0
  32. package/dist/vvic-enc.d.ts +20 -0
  33. package/dist/vvic-enc.js +343 -2
  34. package/dist/vvic-enc.wasm +0 -0
  35. package/dist/webp-dec.d.ts +14 -0
  36. package/dist/webp-dec.js +296 -2
  37. package/dist/webp-dec.wasm +0 -0
  38. package/dist/webp-enc.d.ts +50 -0
  39. package/dist/webp-enc.js +301 -2
  40. package/dist/webp-enc.wasm +0 -0
  41. package/dist/wp2-dec.d.ts +14 -0
  42. package/dist/wp2-dec.js +296 -2
  43. package/dist/wp2-dec.wasm +0 -0
  44. package/dist/wp2-enc.d.ts +27 -0
  45. package/dist/wp2-enc.js +298 -2
  46. package/dist/wp2-enc.wasm +0 -0
  47. package/lib/avif.d.ts +5 -3
  48. package/lib/common.d.ts +4 -1
  49. package/lib/common.js +10 -3
  50. package/lib/heic.d.ts +3 -3
  51. package/lib/index.d.ts +10 -10
  52. package/lib/jpeg.d.ts +4 -2
  53. package/lib/jpeg.js +4 -0
  54. package/lib/jxl.d.ts +3 -3
  55. package/lib/node.d.ts +16 -0
  56. package/lib/node.js +29 -32
  57. package/lib/png.d.ts +3 -3
  58. package/lib/qoi.d.ts +4 -3
  59. package/lib/qoi.js +2 -1
  60. package/lib/vvic.d.ts +3 -3
  61. package/lib/webp.d.ts +5 -4
  62. package/lib/wp2.d.ts +4 -3
  63. package/lib/wp2.js +1 -0
  64. package/package.json +15 -8
  65. 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 | time.SD |
246
- | --: | -----: | ----: | ----------: | ----------: |
247
- | 0 | icodec | avif | 1,727.54 us | 15.12 us |
248
- | 1 | 2d | avif | 493.56 us | 2.58 us |
249
- | 2 | WebGL | avif | 876.40 us | 9.62 us |
250
- | 3 | icodec | heic | 1.20 ms | 7.51 us |
251
- | 4 | icodec | jpeg | 434.98 us | 1.51 us |
252
- | 5 | 2d | jpeg | 209.49 us | 2.66 us |
253
- | 6 | WebGL | jpeg | 605.33 us | 1.87 us |
254
- | 7 | icodec | jxl | 2.15 ms | 5.53 us |
255
- | 8 | icodec | png | 174.09 us | 324.80 ns |
256
- | 9 | 2d | png | 170.82 us | 1,087.79 ns |
257
- | 10 | WebGL | png | 549.13 us | 2,708.95 ns |
258
- | 11 | icodec | qoi | 194.77 us | 955.73 ns |
259
- | 12 | icodec | webp | 390.09 us | 3.69 us |
260
- | 13 | 2d | webp | 361.30 us | 4.71 us |
261
- | 14 | WebGL | webp | 744.59 us | 4.92 us |
262
- | 15 | icodec | wp2 | 1.57 ms | 14.71 us |
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 | time.SD |
267
- | --: | -----: | ----: | --------: | ----------: |
268
- | 0 | icodec | avif | 1.73 ms | 2.54 us |
269
- | 1 | Sharp | avif | 1.15 ms | 4.00 us |
270
- | 2 | icodec | heic | 1.31 ms | 46.66 us |
271
- | 3 | Sharp | heic | 2.13 ms | 69.81 us |
272
- | 4 | icodec | jpeg | 440.56 us | 4.11 us |
273
- | 5 | Sharp | jpeg | 486.12 us | 1.39 us |
274
- | 6 | icodec | jxl | 2.11 ms | 3.01 us |
275
- | 7 | Sharp | jxl | 3.78 ms | 14.06 us |
276
- | 8 | icodec | png | 156.59 us | 51.68 ns |
277
- | 9 | Sharp | png | 420.68 us | 810.94 ns |
278
- | 10 | icodec | qoi | 177.98 us | 222.92 ns |
279
- | 11 | icodec | webp | 368.54 us | 1,409.96 ns |
280
- | 12 | Sharp | webp | 936.37 us | 726.44 ns |
281
- | 13 | icodec | wp2 | 1.51 ms | 13.38 us |
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 | time.SD |
286
- |----:|-------:|------:|------------:|----------:|
287
- | 0 | icodec | avif | 35.65 ms | 109.92 us |
288
- | 1 | Sharp | avif | 42.73 ms | 99.32 us |
289
- | 2 | icodec | heic | 94.91 ms | 108.29 us |
290
- | 3 | Sharp | heic | 41.59 ms | 120.28 us |
291
- | 4 | icodec | jpeg | 7,038.84 us | 34.34 us |
292
- | 5 | Sharp | jpeg | 553.21 us | 6.24 us |
293
- | 6 | icodec | jxl | 28.65 ms | 87.20 us |
294
- | 7 | Sharp | jxl | 30.08 ms | 191.50 us |
295
- | 8 | icodec | png | 50.99 ms | 295.76 us |
296
- | 9 | Sharp | png | 2.37 ms | 41.31 us |
297
- | 10 | icodec | qoi | 99.50 us | 824.39 ns |
298
- | 11 | icodec | webp | 3.82 ms | 39.77 us |
299
- | 12 | Sharp | webp | 2.81 ms | 52.25 us |
300
- | 13 | icodec | wp2 | 56.29 ms | 378.50 us |
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>;