Skip to content

Commit 988af50

Browse files
committed
Release v2024.12.30
1 parent 6d5b800 commit 988af50

File tree

1 file changed

+41
-67
lines changed

1 file changed

+41
-67
lines changed

README.rst

Lines changed: 41 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ Image transformation, compression, and decompression codecs
66

77
Imagecodecs is a Python library that provides block-oriented, in-memory buffer
88
transformation, compression, and decompression functions for use in Tifffile,
9-
Czifile, Zarr, kerchunk, and other scientific image input/output packages.
9+
Czifile, Zarr 2, kerchunk, and other scientific image input/output packages.
1010

1111
Decode and/or encode functions are implemented for Zlib (DEFLATE), GZIP, LZMA,
1212
ZStandard (ZSTD), Blosc, Brotli, Snappy, BZ2, LZ4, LZ4F, LZ4HC, LZ4H5, LZW,
1313
LZO, LZF, LZFSE, LZHAM, PGLZ (PostgreSQL LZ), RCOMP (Rice), ZFP, SZ3, Pcodec,
1414
SPERR, AEC, SZIP, LERC, EER, NPY, BCn, DDS, BMP, PNG, APNG, GIF, TIFF, WebP,
15-
JPEG 8 and 12-bit, Lossless JPEG (LJPEG, LJ92, JPEGLL), JPEG 2000 (JP2, J2K),
15+
JPEG (2 to 16-bit), Lossless JPEG (LJPEG, LJ92, JPEGLL), JPEG 2000 (JP2, J2K),
1616
JPEG LS, JPEG XL, JPEG XS, JPEG XR (WDP, HD Photo), Ultra HDR (JPEG_R),
1717
MOZJPEG, AVIF, HEIF, QOI, RGBE (HDR), Jetraw, DICOMRLE, PackBits,
1818
Packed Integers, Delta, XOR Delta, Floating Point Predictor, Bitorder reversal,
@@ -24,7 +24,7 @@ Jenkins lookup3.
2424

2525
:Author: `Christoph Gohlke <https://www.cgohlke.com>`_
2626
:License: BSD 3-Clause
27-
:Version: 2024.9.22
27+
:Version: 2024.12.30
2828
:DOI: `10.5281/zenodo.6915978 <https://doi.org/10.5281/zenodo.6915978>`_
2929

3030
Quickstart
@@ -53,10 +53,10 @@ Requirements
5353
This revision was tested with the following requirements and dependencies
5454
(other versions may work):
5555

56-
- `CPython <https://www.python.org>`_ 3.10.11, 3.11.9, 3.12.6, 3.13.0rc2 64-bit
57-
- `Numpy <https://pypi.org/project/numpy>`_ 2.1.1
58-
- `numcodecs <https://pypi.org/project/numcodecs/>`_ 0.13.0
59-
(optional, for Zarr compatible codecs)
56+
- `CPython <https://www.python.org>`_ 3.10.11, 3.11.9, 3.12.8, 3.13.1 64-bit
57+
- `Numpy <https://pypi.org/project/numpy>`_ 2.1.3
58+
- `numcodecs <https://pypi.org/project/numcodecs/>`_ 0.14.1
59+
(optional, for Zarr 2 compatible codecs)
6060

6161
Build requirements:
6262

@@ -65,7 +65,7 @@ Build requirements:
6565
- `brunsli <https://github.com/google/brunsli>`_ 0.1
6666
- `bzip2 <https://gitlab.com/bzip2/bzip2>`_ 1.0.8
6767
- `c-blosc <https://github.com/Blosc/c-blosc>`_ 1.21.6
68-
- `c-blosc2 <https://github.com/Blosc/c-blosc2>`_ 2.15.1
68+
- `c-blosc2 <https://github.com/Blosc/c-blosc2>`_ 2.15.2
6969
- `charls <https://github.com/team-charls/charls>`_ 2.4.2
7070
- `giflib <https://sourceforge.net/projects/giflib/>`_ 5.2.2
7171
- `jetraw <https://github.com/Jetraw/Jetraw>`_ 23.03.16.4
@@ -74,34 +74,34 @@ Build requirements:
7474
- `lerc <https://github.com/Esri/lerc>`_ 4.0.4
7575
- `libaec <https://gitlab.dkrz.de/k202009/libaec>`_ 1.1.3
7676
- `libavif <https://github.com/AOMediaCodec/libavif>`_ 1.1.1
77-
(`aom <https://aomedia.googlesource.com/aom>`_ 3.10.0,
78-
`dav1d <https://github.com/videolan/dav1d>`_ 1.4.3,
77+
(`aom <https://aomedia.googlesource.com/aom>`_ 3.11.0,
78+
`dav1d <https://github.com/videolan/dav1d>`_ 1.5.0,
7979
`rav1e <https://github.com/xiph/rav1e>`_ 0.7.1,
80-
`svt-av1 <https://gitlab.com/AOMediaCodec/SVT-AV1>`_ 2.2.1
80+
`svt-av1 <https://gitlab.com/AOMediaCodec/SVT-AV1>`_ 2.3.0
8181
`libyuv <https://chromium.googlesource.com/libyuv/libyuv>`_ main)
82-
- `libdeflate <https://github.com/ebiggers/libdeflate>`_ 1.21
83-
- `libheif <https://github.com/strukturag/libheif>`_ 1.18.2
82+
- `libdeflate <https://github.com/ebiggers/libdeflate>`_ 1.23
83+
- `libheif <https://github.com/strukturag/libheif>`_ 1.19.5
8484
(`libde265 <https://github.com/strukturag/libde265>`_ 1.0.15,
8585
`x265 <https://bitbucket.org/multicoreware/x265_git/src/master/>`_ 3.6)
86-
- `libjpeg-turbo <https://github.com/libjpeg-turbo/libjpeg-turbo>`_ 3.0.4
87-
- `libjxl <https://github.com/libjxl/libjxl>`_ 0.11.0
86+
- `libjpeg-turbo <https://github.com/libjpeg-turbo/libjpeg-turbo>`_ 3.1.0
87+
- `libjxl <https://github.com/libjxl/libjxl>`_ 0.11.1
8888
- `libjxs <https://jpeg.org/jpegxs/software.html>`_ 2.0.2
89-
- `liblzma <https://github.com/tukaani-project/xz>`_ 5.6.2
89+
- `liblzma <https://github.com/tukaani-project/xz>`_ 5.6.3
9090
- `libpng <https://github.com/glennrp/libpng>`_ 1.6.44
9191
- `libpng-apng <https://sourceforge.net/projects/libpng-apng/>`_ 1.6.44
9292
- `libtiff <https://gitlab.com/libtiff/libtiff>`_ 4.7.0
93-
- `libultrahdr <https://github.com/google/libultrahdr>`_ 1.2.0
94-
- `libwebp <https://github.com/webmproject/libwebp>`_ 1.4.0
93+
- `libultrahdr <https://github.com/google/libultrahdr>`_ 1.3.0
94+
- `libwebp <https://github.com/webmproject/libwebp>`_ 1.5.0
9595
- `lz4 <https://github.com/lz4/lz4>`_ 1.10.0
9696
- `lzfse <https://github.com/lzfse/lzfse/>`_ 1.0
9797
- `lzham_codec <https://github.com/richgel999/lzham_codec/>`_ 1.0
9898
- `lzokay <https://github.com/AxioDL/lzokay>`_ db2df1f
9999
- `mozjpeg <https://github.com/mozilla/mozjpeg>`_ 4.1.5
100-
- `openjpeg <https://github.com/uclouvain/openjpeg>`_ 2.5.2
101-
- `pcodec <https://github.com/mwlon/pcodec>`_ 0.3.1
100+
- `openjpeg <https://github.com/uclouvain/openjpeg>`_ 2.5.3
101+
- `pcodec <https://github.com/mwlon/pcodec>`_ 0.3.1 (0.4.0 crashes)
102102
- `snappy <https://github.com/google/snappy>`_ 1.2.1
103103
- `sperr <https://github.com/NCAR/SPERR>`_ 0.8.2
104-
- `sz3 <https://github.com/szcompressor/SZ3>`_ 3.1.8 (3.2.0 crashes)
104+
- `sz3 <https://github.com/szcompressor/SZ3>`_ 3.1.8 (3.2.x crashes)
105105
- `zfp <https://github.com/LLNL/zfp>`_ 1.0.1
106106
- `zlib <https://github.com/madler/zlib>`_ 1.3.1
107107
- `zlib-ng <https://github.com/zlib-ng/zlib-ng>`_ 2.2.2
@@ -110,8 +110,8 @@ Build requirements:
110110

111111
Vendored requirements:
112112

113-
- `bcdec.h <https://github.com/iOrange/bcdec>`_ 3b29f8f
114-
- `bitshuffle <https://github.com/kiyo-masui/bitshuffle>`_ 0.5.1
113+
- `bcdec.h <https://github.com/iOrange/bcdec>`_ 963c5e5
114+
- `bitshuffle <https://github.com/kiyo-masui/bitshuffle>`_ 0.5.2
115115
- `cfitsio ricecomp.c <https://heasarc.gsfc.nasa.gov/fitsio/>`_ modified
116116
- `h5checksum.c <https://github.com/HDFGroup/hdf5/>`_ modified
117117
- `jpg_0XC3.cpp
@@ -129,9 +129,9 @@ Vendored requirements:
129129

130130
Test requirements:
131131

132-
- `tifffile <https://pypi.org/project/tifffile>`_ 2024.9.20
133-
- `czifile <https://pypi.org/project/czifile>`_ 2019.7.2
134-
- `zarr <https://github.com/zarr-developers/zarr-python>`_ 2.18.2
132+
- `tifffile <https://github.com/cgohlke/tifffile>`_ 2024.12.12
133+
- `czifile <https://github.com/cgohlke/czifile>`_ 2019.7.2
134+
- `zarr <https://github.com/zarr-developers/zarr-python>`_ 2.18.4
135135
- `python-blosc <https://github.com/Blosc/python-blosc>`_ 1.11.2
136136
- `python-blosc2 <https://github.com/Blosc/python-blosc2>`_ 2.7.1
137137
- `python-brotli <https://github.com/google/brotli/tree/master/python>`_ 1.0.9
@@ -145,9 +145,18 @@ Test requirements:
145145
Revisions
146146
---------
147147

148+
2024.12.30
149+
150+
- Pass 7655 tests.
151+
- Fix out parameter array not zeroed in some cases.
152+
- Fix ultrahdr_encode with linear rgbaf16 input (#108).
153+
- Fix jpegls_encode with level greater than 9 (#119).
154+
- Fix jpeg8_encode with bitspersample and lossless=False (#116).
155+
- Fix excessive buffer allocation in lz4h5_encode (#112).
156+
- Fix build error with libjpeg (#111).
157+
148158
2024.9.22
149159

150-
- Pass 7644 tests.
151160
- Use libjpeg-turbo for all Lossless JPEG bit-depths if possible (#105).
152161
- Fix PackBits encoder fails to skip short replication blocks (#107).
153162
- Fix JPEG2K encoder leaving trailing random bytes (#104).
@@ -181,41 +190,6 @@ Revisions
181190

182191
2023.9.18
183192

184-
- Rebuild with updated dependencies fixes CVE-2024-4863.
185-
186-
2023.9.4
187-
188-
- Map avif_encode level parameter to quality (breaking).
189-
- Support monochrome images in avif_encode.
190-
- Add numthreads parameter to avif_decode (fix imread of AVIF).
191-
- Add quantize filter (BitGroom, BitRound, GBR) via nc4var.c.
192-
- Add LZ4H5 codec.
193-
- Support more BCn compressed DDS fourcc types.
194-
- Require libavif 1.0.
195-
196-
2023.8.12
197-
198-
- Add EER (Electron Event Representation) decoder.
199-
- Add option to pass initial value to crc32 and adler32 checksum functions.
200-
- Add fletcher32 and lookup3 checksum functions via HDF5's h5checksum.c.
201-
- Add Checksum codec for numcodecs.
202-
203-
2023.7.10
204-
205-
- Rebuild with optimized compile flags.
206-
207-
2023.7.4
208-
209-
- Add BCn and DDS decoder via bcdec library.
210-
- Add functions to transcode JPEG XL to/from JPEG (#78).
211-
- Add option to decode select frames from animated WebP.
212-
- Use legacy JPEG8 codec when building without libjpeg-turbo 3 (#65).
213-
- Change blosc2_encode defaults to match blosc2-python (breaking).
214-
- Fix segfault writing JPEG2K with more than 4 samples.
215-
- Fix some codecs returning bytearray by default.
216-
- Fully vendor cfitsio's ricecomp.c.
217-
- Drop support for Python 3.8 and numpy < 1.21 (NEP29).
218-
219193
- …
220194

221195
Refer to the CHANGES file for older revisions.
@@ -353,11 +327,11 @@ Other projects providing imaging or compression codecs:
353327
<https://wr.informatik.uni-hamburg.de/research/projects/icomex/mafisc>`_,
354328
`B3D <https://github.com/balintbalazs/B3D>`_,
355329
`fo-dicom.Codecs <https://github.com/Efferent-Health/fo-dicom.Codecs>`_,
356-
`jpegli <https://github.com/google/jpegli>`_.
330+
`jpegli <https://github.com/google/jpegli>`_,
331+
`hdf5plugin <https://github.com/silx-kit/hdf5plugin>`_.
357332

358333
Examples
359334
--------
360-
361335
Import the JPEG2K codec:
362336

363337
.. code-block:: python
@@ -382,7 +356,7 @@ Print the version of the JPEG2K codec's underlying OpenJPEG library:
382356
.. code-block:: python
383357
384358
>>> jpeg2k_version()
385-
'openjpeg 2.5.2'
359+
'openjpeg 2.5.3'
386360
387361
Encode a numpy array in lossless JP2 format:
388362

@@ -442,7 +416,7 @@ Read the image from the JP2 file as numpy array:
442416
>>> numpy.array_equal(image, array)
443417
True
444418
445-
Create a JPEG 2000 compressed Zarr array:
419+
Create a JPEG 2000 compressed Zarr 2 array:
446420

447421
.. code-block:: python
448422
@@ -476,7 +450,7 @@ dask.array:
476450
...
477451
dask.array<from-zarr, shape=(1, 256, 256, 3)...chunksize=(1, 256, 256, 3)...
478452
479-
Write the Zarr store to a fsspec ReferenceFileSystem in JSON format
453+
Write the Zarr 2 store to a fsspec ReferenceFileSystem in JSON format
480454
and open it as a Zarr array:
481455

482456
.. code-block:: python

0 commit comments

Comments
 (0)