Skip to content

Commit 9984608

Browse files
committed
Release v2023.7.4
1 parent 497cc4d commit 9984608

File tree

1 file changed

+71
-41
lines changed

1 file changed

+71
-41
lines changed

README.rst

+71-41
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ Czifile, Zarr, kerchunk, and other scientific image input/output packages.
88
Decode and/or encode functions are implemented for Zlib (DEFLATE), GZIP,
99
ZStandard (ZSTD), Blosc, Brotli, Snappy, LZMA, BZ2, LZ4, LZ4F, LZ4HC, LZW,
1010
LZF, LZFSE, LZHAM, PGLZ (PostgreSQL LZ), RCOMP (Rice), ZFP, AEC, SZIP, LERC,
11-
NPY, PNG, APNG, GIF, TIFF, WebP, QOI, JPEG 8-bit, JPEG 12-bit, Lossless JPEG
12-
(LJPEG, LJ92, JPEGLL), JPEG 2000 (JP2, J2K), JPEG LS, JPEG XL,
11+
NPY, BCn, DDS, PNG, APNG, GIF, TIFF, WebP, QOI, JPEG 8-bit, JPEG 12-bit,
12+
Lossless JPEG (LJPEG, LJ92, JPEGLL), JPEG 2000 (JP2, J2K), JPEG LS, JPEG XL,
1313
JPEG XR (WDP, HD Photo), MOZJPEG, AVIF, HEIF, RGBE (HDR), Jetraw, PackBits,
1414
Packed Integers, Delta, XOR Delta, Floating Point Predictor, Bitorder reversal,
1515
Byteshuffle, Bitshuffle, CMS (color space transformations), and Float24
1616
(24-bit floating point).
1717

1818
:Author: `Christoph Gohlke <https://www.cgohlke.com>`_
1919
:License: BSD 3-Clause
20-
:Version: 2023.3.16
20+
:Version: 2023.7.4
2121
:DOI: `10.5281/zenodo.6915978 <https://doi.org/10.5281/zenodo.6915978>`_
2222

2323
Quickstart
@@ -46,91 +46,103 @@ Requirements
4646
This revision was tested with the following requirements and dependencies
4747
(other versions may work):
4848

49-
- `CPython <https://www.python.org>`_ 3.8.10, 3.9.13, 3.10.10, 3.11.2, 64-bit
50-
- `Numpy <https://pypi.org/project/numpy>`_ 1.23.5
49+
- `CPython <https://www.python.org>`_ 3.9.13, 3.10.11, 3.11.4, 3.12.0b3, 64-bit
50+
- `Numpy <https://pypi.org/project/numpy>`_ 1.25.0
51+
- `numcodecs <https://pypi.org/project/numcodecs/>`_ 0.11.0
52+
(optional, for Zarr compatible codecs)
5153

5254
Build requirements:
5355

54-
- `Cython <https://github.com/cython/cython>`_ 0.29.33
56+
- `Cython <https://github.com/cython/cython>`_ 0.29.36
5557
- `brotli <https://github.com/google/brotli>`_ 1.0.9
5658
- `brunsli <https://github.com/google/brunsli>`_ 0.1
5759
- `bzip2 <https://gitlab.com/bzip2/bzip2>`_ 1.0.8
58-
- `c-blosc <https://github.com/Blosc/c-blosc>`_ 1.21.3
59-
- `c-blosc2 <https://github.com/Blosc/c-blosc2>`_ 2.7.1
60-
- `cfitsio <https://heasarc.gsfc.nasa.gov/fitsio/>`_ 3.49
61-
- `charls <https://github.com/team-charls/charls>`_ 2.4.1
60+
- `c-blosc <https://github.com/Blosc/c-blosc>`_ 1.21.4
61+
- `c-blosc2 <https://github.com/Blosc/c-blosc2>`_ 2.10.0
62+
- `charls <https://github.com/team-charls/charls>`_ 2.4.2
6263
- `giflib <https://sourceforge.net/projects/giflib/>`_ 5.2.1
6364
- `jetraw <https://github.com/Jetraw/Jetraw>`_ 22.02.16.1
64-
- `jxrlib <https://salsa.debian.org/debian-phototools-team/jxrlib>`_ 1.1
65+
- `jxrlib <https://github.com/cgohlke/jxrlib>`_ 1.2
6566
- `lcms <https://github.com/mm2/Little-CMS>`_ 2.15
6667
- `lerc <https://github.com/Esri/lerc>`_ 4.0.0
6768
- `libaec <https://gitlab.dkrz.de/k202009/libaec>`_ 1.0.6
6869
- `libavif <https://github.com/AOMediaCodec/libavif>`_ 0.11.1
69-
(`aom <https://aomedia.googlesource.com/aom>`_ 3.6.0,
70-
`dav1d <https://github.com/videolan/dav1d>`_ 1.1.0,
71-
`rav1e <https://github.com/xiph/rav1e>`_ 0.6.3,
72-
`svt-av1 <https://gitlab.com/AOMediaCodec/SVT-AV1>`_ 1.4.1)
73-
- `libdeflate <https://github.com/ebiggers/libdeflate>`_ 1.17
74-
- `libheif <https://github.com/strukturag/libheif>`_ 1.15.1
75-
(`libde265 <https://github.com/strukturag/libde265>`_ 1.0.11,
70+
(`aom <https://aomedia.googlesource.com/aom>`_ 3.6.1,
71+
`dav1d <https://github.com/videolan/dav1d>`_ 1.2.1,
72+
`rav1e <https://github.com/xiph/rav1e>`_ 0.6.6,
73+
`svt-av1 <https://gitlab.com/AOMediaCodec/SVT-AV1>`_ 1.6.0)
74+
- `libdeflate <https://github.com/ebiggers/libdeflate>`_ 1.18
75+
- `libheif <https://github.com/strukturag/libheif>`_ 1.16.2
76+
(`libde265 <https://github.com/strukturag/libde265>`_ 1.0.12,
7677
`x265 <https://bitbucket.org/multicoreware/x265_git/src/master/>`_ 3.5)
77-
- `libjpeg-turbo <https://github.com/libjpeg-turbo/libjpeg-turbo>`_ 2.1.91
78-
- `libjxl <https://github.com/libjxl/libjxl>`_ 0.8.1
78+
- `libjpeg-turbo <https://github.com/libjpeg-turbo/libjpeg-turbo>`_ 3.0.0
79+
- `libjxl <https://github.com/libjxl/libjxl>`_ 0.8.2
80+
- `liblzma <https://git.tukaani.org/?p=xz.git>`_ 5.4.3
7981
- `libpng <https://github.com/glennrp/libpng>`_ 1.6.39
8082
- `libpng-apng <https://sourceforge.net/projects/libpng-apng/>`_ 1.6.39
81-
- `libtiff <https://gitlab.com/libtiff/libtiff>`_ 4.5.0
82-
- `libwebp <https://github.com/webmproject/libwebp>`_ 1.3.0
83+
- `libtiff <https://gitlab.com/libtiff/libtiff>`_ 4.5.1
84+
- `libwebp <https://github.com/webmproject/libwebp>`_ 1.3.1
8385
- `lz4 <https://github.com/lz4/lz4>`_ 1.9.4
8486
- `lzfse <https://github.com/lzfse/lzfse/>`_ 1.0
8587
- `lzham_codec <https://github.com/richgel999/lzham_codec/>`_ 1.0
8688
- `mozjpeg <https://github.com/mozilla/mozjpeg>`_ 4.1.1
8789
- `openjpeg <https://github.com/uclouvain/openjpeg>`_ 2.5.0
8890
- `snappy <https://github.com/google/snappy>`_ 1.1.10
89-
- `xz <https://git.tukaani.org/?p=xz.git>`_ 5.4.1
9091
- `zfp <https://github.com/LLNL/zfp>`_ 1.0.0
9192
- `zlib <https://github.com/madler/zlib>`_ 1.2.13
92-
- `zlib-ng <https://github.com/zlib-ng/zlib-ng>`_ 2.0.6
93+
- `zlib-ng <https://github.com/zlib-ng/zlib-ng>`_ 2.1.3
9394
- `zopfli <https://github.com/google/zopfli>`_ 1.0.3
94-
- `zstd <https://github.com/facebook/zstd>`_ 1.5.4
95+
- `zstd <https://github.com/facebook/zstd>`_ 1.5.5
9596

9697
Vendored requirements:
9798

99+
- `bcdec.h <https://github.com/iOrange/bcdec>`_ 026acf9
98100
- `bitshuffle <https://github.com/kiyo-masui/bitshuffle>`_ 0.5.1
101+
- `cfitsio ricecomp.c <https://heasarc.gsfc.nasa.gov/fitsio/>`_ modified
99102
- `jpg_0XC3.cpp
100103
<https://github.com/rordenlab/dcm2niix/blob/master/console/jpg_0XC3.cpp>`_
101104
modified
102105
- `liblj92
103106
<https://bitbucket.org/baldand/mlrawviewer/src/master/liblj92/>`_ modified
104107
- `liblzf <http://oldhome.schmorp.de/marc/liblzf.html>`_ 3.6
105-
- `libspng <https://github.com/randy408/libspng>`_ 0.7.3
106-
- `pg_lzcompress.c <https://github.com/postgres/postgres/tree/
107-
master/src/common/pg_lzcompress.c>`_ modified
108-
- `qoi.h <https://github.com/phoboslab/qoi/>`_ c3dcfe7
108+
- `libspng <https://github.com/randy408/libspng>`_ 0.7.4
109+
- `pg_lzcompress.c <https://github.com/postgres/postgres>`_ modified
110+
- `qoi.h <https://github.com/phoboslab/qoi/>`_ 36190eb
109111
- `rgbe.c <https://www.graphics.cornell.edu/~bjw/rgbe/rgbe.c>`_ modified
110112

111113
Test requirements:
112114

113-
- `tifffile <https://pypi.org/project/tifffile>`_ 2023.3.15
115+
- `tifffile <https://pypi.org/project/tifffile>`_ 2023.7.4
114116
- `czifile <https://pypi.org/project/czifile>`_ 2019.7.2
115-
- `zarr <https://github.com/zarr-developers/zarr-python>`_ 2.14.2
116-
- `numcodecs <https://github.com/zarr-developers/numcodecs>`_ 0.11.0
117-
- `bitshuffle <https://github.com/kiyo-masui/bitshuffle>`_ 0.5.1
117+
- `zarr <https://github.com/zarr-developers/zarr-python>`_ 2.15.0
118118
- `python-blosc <https://github.com/Blosc/python-blosc>`_ 1.11.1
119-
- `python-blosc2 <https://github.com/Blosc/python-blosc2>`_ 2.1.1
119+
- `python-blosc2 <https://github.com/Blosc/python-blosc2>`_ 2.2.5
120120
- `python-brotli <https://github.com/google/brotli/tree/master/python>`_ 1.0.9
121121
- `python-lz4 <https://github.com/python-lz4/python-lz4>`_ 4.3.2
122122
- `python-lzf <https://github.com/teepark/python-lzf>`_ 0.2.4
123123
- `python-snappy <https://github.com/andrix/python-snappy>`_ 0.6.1
124-
- `python-zstd <https://github.com/sergey-dryabzhinsky/python-zstd>`_ 1.5.4.0
124+
- `python-zstd <https://github.com/sergey-dryabzhinsky/python-zstd>`_ 1.5.5.1
125125
- `pyliblzfse <https://github.com/ydkhatri/pyliblzfse>`_ 0.4.1
126126
- `zopflipy <https://github.com/hattya/zopflipy>`_ 1.8
127127

128128
Revisions
129129
---------
130130

131+
2023.7.4
132+
133+
- Pass 6900 tests.
134+
- Add BCn and DDS decoder via bcdec library.
135+
- Add functions to transcode JPEG XL to/from JPEG (#78).
136+
- Add option to decode select frames from animated WebP.
137+
- Use legacy JPEG8 codec when building without libjpeg-turbo 3 (#65).
138+
- Change blosc2_encode defaults to match blosc2-python (breaking).
139+
- Fix segfault writing JPEG2K with more than 4 samples.
140+
- Fix some codecs returning bytearray by default.
141+
- Fully vendor cfitsio's ricecomp.c.
142+
- Drop support for Python 3.8 and numpy < 1.21 (NEP29).
143+
131144
2023.3.16
132145

133-
- Pass 6884 tests.
134146
- Require libjpeg-turbo 2.1.91 (3.0 beta) and c-blosc2 2.7.1.
135147
- Add experimental type hints.
136148
- Add SZIP codec via libaec library.
@@ -211,7 +223,7 @@ Revisions
211223

212224
2022.2.22
213225

214-
- ...
226+
-
215227

216228
Refer to the CHANGES file for older revisions.
217229

@@ -249,13 +261,14 @@ This library is largely a work in progress.
249261

250262
The API is not stable yet and might change between revisions.
251263

252-
Python <= 3.7 is no longer supported. 32-bit versions are deprecated.
264+
Python <= 3.8 is no longer supported. 32-bit versions are deprecated.
253265

254266
Works on little-endian platforms only.
255267

256268
Only ``win_amd64`` wheels include all features.
257269

258-
The ``tiff``, ``packints``, and ``jpegsof3`` codecs are currently decode-only.
270+
The ``tiff``, ``bcn``, ``dds``, ``packints``, and ``jpegsof3`` codecs
271+
are currently decode-only.
259272

260273
The ``heif`` and ``jetraw`` codecs are distributed as source code only due to
261274
license and possible patent usage issues.
@@ -287,11 +300,11 @@ latest Ubuntu Linux distributions:
287300
libwebp-dev libbz2-dev libopenjp2-7-dev libjpeg-dev libjxr-dev
288301
liblcms2-dev libcharls-dev libaec-dev libbrotli-dev libsnappy-dev
289302
libzopfli-dev libgif-dev libtiff-dev libdeflate-dev libavif-dev
290-
libheif-dev libcfitsio-dev``
303+
libheif-dev``
291304

292305
Use the ``--lite`` build option to only build extensions without 3rd-party
293306
dependencies. Use the ``--skip-extension`` build options to skip building
294-
specific extensions, e.g.:
307+
specific extensions, for example:
295308

296309
``python -m pip install imagecodecs --global-option="build_ext"
297310
--global-option="--skip-bitshuffle"``
@@ -312,6 +325,8 @@ Other Python packages and C libraries providing imaging or compression codecs:
312325
`python-lzo <https://bitbucket.org/james_taylor/python-lzo-static>`_,
313326
`python-lzw <https://github.com/joeatwork/python-lzw>`_,
314327
`python-lerc <https://pypi.org/project/lerc/>`_,
328+
`wavpack-numcodecs
329+
<https://github.com/AllenNeuralDynamics/wavpack-numcodecs>`_,
315330
`packbits <https://github.com/psd-tools/packbits>`_,
316331
`isa-l.igzip <https://github.com/intel/isa-l>`_,
317332
`fpzip <https://github.com/seung-lab/fpzip>`_,
@@ -344,6 +359,8 @@ Other Python packages and C libraries providing imaging or compression codecs:
344359
`Compressonator <https://github.com/GPUOpen-Tools/Compressonator>`_,
345360
`Wuffs <https://github.com/google/wuffs>`_,
346361
`TinyDNG <https://github.com/syoyo/tinydng>`_,
362+
`OpenJPH <https://github.com/aous72/OpenJPH>`_,
363+
`SPERR <https://github.com/NCAR/SPERR>`_ (GPL),
347364
`MAFISC
348365
<https://wr.informatik.uni-hamburg.de/research/projects/icomex/mafisc>`_.
349366

@@ -438,6 +455,19 @@ dask.array:
438455
... dask.array.from_zarr(store)
439456
dask.array<from-zarr, shape=(1, 256, 256, 3)...chunksize=(1, 256, 256, 3)...
440457

458+
Write the Zarr store to a fsspec ReferenceFileSystem in JSON format
459+
and open it as a Zarr array:
460+
461+
>>> store.write_fsspec(
462+
... 'temp.json', url='file://', codec_id='imagecodecs_jpeg2k'
463+
... )
464+
>>> import fsspec
465+
>>> mapper = fsspec.get_mapper(
466+
... 'reference://', fo='temp.json', target_protocol='file'
467+
... )
468+
>>> zarr.open(mapper, mode='r')
469+
<zarr.core.Array (1, 256, 256, 3) uint8 read-only>
470+
441471
View the image in the JP2 file from the command line::
442472

443473
$ python -m imagecodecs _test.jp2

0 commit comments

Comments
 (0)