opencodecs 0.1.7__tar.gz → 0.1.8__tar.gz
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.
- {opencodecs-0.1.7 → opencodecs-0.1.8}/CHANGES.rst +35 -0
- {opencodecs-0.1.7/src/opencodecs.egg-info → opencodecs-0.1.8}/PKG-INFO +1 -1
- {opencodecs-0.1.7 → opencodecs-0.1.8}/pyproject.toml +1 -1
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/__init__.py +1 -1
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_bcdec.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_bmp.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_eer.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_hcomp.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_plio.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_png.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_qoi.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_rcomp.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_rgbe.c +152 -152
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/uhdr.py +31 -6
- {opencodecs-0.1.7 → opencodecs-0.1.8/src/opencodecs.egg-info}/PKG-INFO +1 -1
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_uhdr.py +40 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/bcdec/bcdec.h +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/bitshuffle/bitshuffle_core.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/bitshuffle/iochain.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/cfitsio/fits_hdecompress.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/cfitsio/pliocomp.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/cfitsio/ricecomp.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/imcd_eer/eer.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/imcd_eer/eer.h +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/imcd_lzw/lzw.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/imcd_lzw/lzw.h +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/libspng/spng.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/oc_tifflzw/oc_tifflzw.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/oc_tifflzw/oc_tifflzw.h +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/3rdparty/rgbe/rgbe.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/MANIFEST.in +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/README.md +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/bench/build_libjxl.sh +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/patches/libjxl/README.md +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/setup.cfg +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/setup.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_aec_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_avif_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_b2nd_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_bcn_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_bitshuffle_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_blosc2_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_bmp_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_brotli_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_brunsli_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_byteshuffle_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_bz2_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_cms_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_czi_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_czi_reader.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_czi_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_deflate_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_dicomrle_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_dicomweb.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_eer_reader.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ets.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_fits.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_fits_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_fits_compressed.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_gif_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_gzip_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_hdf5_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_hdf5_http.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_heif_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_htj2k_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_jpeg2k_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_jpeg_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_jpegls_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_jxl_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_lerc_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_lif_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_lif_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_lz4_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_lzma_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_mozjpeg_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_nd2_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_nd2_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ndtiff.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ndtiff_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ndtiff_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_none_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_numpy_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_oib_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_oib_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_oir_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ole2.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ome_xml.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_omezarr.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_omezarr_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_packints_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_pcodec_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_png_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_predictor_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_pyramid_build.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_qoi_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_quantize_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_rcomp_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_rgbe.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_rgbe_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_snappy_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_sperr_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_sz3_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_tiff_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_tiff_http.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_tiff_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_tiff_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_ultrahdr_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_vsi_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_webp_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_zarr_codecs.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_zfp_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/_zstd_codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/__init__.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_bitshuffle.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_bytetools.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_deflate.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_lz4.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_ndtiff.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_registry.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_tiff.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/codecs/_zstd.c +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/__init__.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/_io_helpers.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/_optional_backend.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/codec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/color.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/errors.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/io.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/core/segment_compression.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/jxl.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/parallel.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/tiff_reader.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/tifffile_patch.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs/zarr.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs.egg-info/SOURCES.txt +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs.egg-info/dependency_links.txt +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs.egg-info/requires.txt +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/src/opencodecs.egg-info/top_level.txt +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_auto_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_bcdec.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_brunsli.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_charls.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_core_codec_api.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus_codec_decode.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus_other.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus_png.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus_tiff.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_corpus_vendors.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_coverage_final.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_coverage_finishing.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_coverage_last.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_coverage_more.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_coverage_push.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_czi_fixture.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_czi_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_czi_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_data_source.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_deflate.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_dicomweb.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_edge_cases.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_eer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_encode_comprehensive.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_error_handling.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_fits.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_gif.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_hdf5_http.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_hdf5_local.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_heif_avif_features.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_http_byte_savings.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_http_prefetch.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_http_unified.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_io_chunked.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_isal.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_jxl.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_lif_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_live_archives.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_mozjpeg.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_native_parity.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_nd2_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_ndtiff.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_oib_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_ome_xml.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_omezarr.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_omezarr_sharded_range.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_open_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_openjph.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_optional_backend.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_parallel_jxl.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_phase4_filters.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_phase5_icc.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_phase6_codecs.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_phase7_cms.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_rgbe.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_snappy.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tier1_scientific.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_codec_encode.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_http.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_native.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_pyramid.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_reader.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tiff_writer.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_tifffile_patch.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_unified_api.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_vsi_oir.py +0 -0
- {opencodecs-0.1.7 → opencodecs-0.1.8}/tests/test_zarr_adapters.py +0 -0
|
@@ -10,6 +10,41 @@ Versions follow the same ``YYYY.M.D`` cadence as upstream when we
|
|
|
10
10
|
publish; the entries below cluster work by date rather than by
|
|
11
11
|
release because most of it has shipped continuously to ``main``.
|
|
12
12
|
|
|
13
|
+
0.1.8 (2026-06-02)
|
|
14
|
+
------------------
|
|
15
|
+
|
|
16
|
+
**DCT-domain decode-time scale on JPEG + decode_native**
|
|
17
|
+
|
|
18
|
+
``opencodecs.codecs._jpeg.decode`` now exposes libjpeg-turbo's
|
|
19
|
+
``tj3SetScalingFactor`` knob via a new ``scale=`` kwarg (plus
|
|
20
|
+
explicit ``scale_num`` / ``scale_denom`` for advanced callers). The
|
|
21
|
+
decoder skips the inverse-DCT work for high-frequency coefficients
|
|
22
|
+
when the caller requests a downsampled output, so a 1/8 decode runs
|
|
23
|
+
~2× faster than a full decode and produces a 64× smaller raster.
|
|
24
|
+
|
|
25
|
+
Supported factors are libjpeg-turbo's full set of 16 ratios N/8 for
|
|
26
|
+
N ∈ {1, 2, …, 16} — i.e. anywhere between 1/8 and 2/1. The new
|
|
27
|
+
``opencodecs.codecs._jpeg.supported_scaling_factors()`` returns them
|
|
28
|
+
as ``(num, denom)`` pairs. ``scale=`` accepts:
|
|
29
|
+
|
|
30
|
+
* an integer N (interpreted as ``1/N``)
|
|
31
|
+
* a float (snapped to the closest supported ratio)
|
|
32
|
+
* a tuple ``(num, denom)`` verbatim
|
|
33
|
+
|
|
34
|
+
``opencodecs.uhdr.decode_native(..., scale=...)`` threads the same
|
|
35
|
+
knob through both the SDR base and the gain-map JPEG decodes. The
|
|
36
|
+
gain-application kernel runs on the smaller rasters, so the whole
|
|
37
|
+
pipeline scales — a 2k² Ultra-HDR decode at ``scale=8`` returns a
|
|
38
|
+
``(250, 250, 3)`` fp16 raster in ~25 ms vs ~53 ms for the full
|
|
39
|
+
decode. Useful for thumbnail / preview pipelines that want real
|
|
40
|
+
HDR pixels off cloud-stored Ultra-HDR without paying the megapixel
|
|
41
|
+
JPEG decode cost. Lossless source not required — the JPEG file is
|
|
42
|
+
unchanged on disk; the savings come from skipping IDCT work.
|
|
43
|
+
|
|
44
|
+
(libuhdr lossless support is unchanged: ISO 21496-1's SDR base layer
|
|
45
|
+
is required to be baseline DCT JPEG, so lossless-mode JPEG would
|
|
46
|
+
not be a conforming Ultra-HDR file.)
|
|
47
|
+
|
|
13
48
|
0.1.7 (2026-06-02)
|
|
14
49
|
------------------
|
|
15
50
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opencodecs"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.8"
|
|
8
8
|
description = "Streaming, network-aware image codecs for scientific imaging (prototype: JPEG XL)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|