@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.
Files changed (68) hide show
  1. package/README.md +68 -50
  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 +242 -258
  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 -0
  31. package/dist/vvic-dec.wasm +0 -0
  32. package/dist/vvic-enc.d.ts +20 -0
  33. package/dist/vvic-enc.js +343 -0
  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 -9
  52. package/lib/index.js +1 -0
  53. package/lib/jpeg.d.ts +4 -2
  54. package/lib/jpeg.js +4 -0
  55. package/lib/jxl.d.ts +3 -3
  56. package/lib/node.d.ts +16 -0
  57. package/lib/node.js +31 -37
  58. package/lib/png.d.ts +3 -3
  59. package/lib/qoi.d.ts +4 -3
  60. package/lib/qoi.js +2 -1
  61. package/lib/vvic.d.ts +25 -0
  62. package/lib/vvic.js +30 -0
  63. package/lib/webp.d.ts +5 -4
  64. package/lib/wp2.d.ts +4 -3
  65. package/lib/wp2.js +1 -0
  66. package/package.json +15 -8
  67. package/types/wasm_type.d.ts +57 -0
  68. 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 | time.SD |
246
- |----:|-------:|------:|------------:|---------:|
247
- | 0 | icodec | avif | 2.30 ms | 19.02 us |
248
- | 1 | 2d | avif | 1.46 ms | 6.34 us |
249
- | 2 | WebGL | avif | 2.78 ms | 12.80 us |
250
- | 3 | icodec | heic | 2.55 ms | 9.82 us |
251
- | 4 | icodec | jpeg | 719.84 us | 3.00 us |
252
- | 5 | 2d | jpeg | 584.23 us | 2.52 us |
253
- | 6 | WebGL | jpeg | 1,674.88 us | 5.84 us |
254
- | 7 | icodec | jxl | 3.51 ms | 30.08 us |
255
- | 8 | icodec | png | 336.74 us | 1.21 us |
256
- | 9 | 2d | png | 561.65 us | 2.14 us |
257
- | 10 | WebGL | png | 1,654.59 us | 18.81 us |
258
- | 11 | icodec | qoi | 432.43 us | 1.44 us |
259
- | 12 | icodec | webp | 779.77 us | 2.38 us |
260
- | 13 | 2d | webp | 799.01 us | 1.48 us |
261
- | 14 | WebGL | webp | 1,952.10 us | 2.55 us |
262
- | 15 | icodec | wp2 | 2.55 ms | 12.66 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 | 2.01 ms | 3.24 us |
269
- | 1 | Sharp | avif | 2.54 ms | 10.39 us |
270
- | 2 | icodec | heic | 2.28 ms | 4.41 us |
271
- | 3 | icodec | jpeg | 470.25 us | 2.96 us |
272
- | 4 | Sharp | jpeg | 836.00 us | 1.24 us |
273
- | 5 | icodec | jxl | 3.22 ms | 290.77 us |
274
- | 6 | icodec | png | 109.22 us | 883.82 ns |
275
- | 7 | Sharp | png | 637.05 us | 1,947.88 ns |
276
- | 8 | icodec | qoi | 191.46 us | 1.18 us |
277
- | 9 | icodec | webp | 548.78 us | 600.09 ns |
278
- | 10 | Sharp | webp | 1,700.14 us | 7,637.86 ns |
279
- | 11 | icodec | wp2 | 2.28 ms | 2.86 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 |
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 | time.SD |
284
- |----:|-------:|------:|------------:|----------:|
285
- | 0 | icodec | avif | 47.47 ms | 78.77 us |
286
- | 1 | Sharp | avif | 52.77 ms | 78.89 us |
287
- | 2 | icodec | jpeg | 7,664.33 us | 3.62 us |
288
- | 3 | Sharp | jpeg | 802.02 us | 2.95 us |
289
- | 4 | icodec | jxl | 32.05 ms | 37.34 us |
290
- | 5 | icodec | png | 70.11 ms | 132.71 us |
291
- | 6 | Sharp | png | 10.88 ms | 69.48 us |
292
- | 7 | icodec | qoi | 371.47 us | 666.00 ns |
293
- | 8 | icodec | webp | 4.42 ms | 3.17 us |
294
- | 9 | Sharp | webp | 4.04 ms | 13.09 us |
295
- | 10 | icodec | wp2 | 90.14 ms | 295.49 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 |
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>;