Blosc2的Grok (JPEG2000编解码器) 插件。
项目描述
Blosc2 grok
优秀的grok库的Blosc2插件。grok是JPEG2000编解码器,使用此插件,您可以将其用作Blosc2应用程序中的另一个编解码器。查看使用示例: https://github.com/Blosc/blosc2_grok/blob/main/examples/params.py
安装
要使用blosc2_grok
,您首先必须安装其wheel
pip install blosc2-grok -U
用法
import blosc2
import numpy as np
import blosc2_grok
from PIL import Image
# Set the params for the grok codec
kwargs = {}
kwargs['cod_format'] = blosc2_grok.GrkFileFmt.GRK_FMT_JP2
kwargs['quality_mode'] = "dB"
kwargs['quality_layers'] = np.array([5], dtype=np.float64)
blosc2_grok.set_params_defaults(**kwargs)
# Define the compression and decompression parameters for Blosc2.
# Disable the filters and do not split blocks (these won't work with grok).
cparams = {
'codec': blosc2.Codec.GROK,
'filters': [],
'splitmode': blosc2.SplitMode.NEVER_SPLIT,
}
# Read the image
im = Image.open("examples/kodim23.png")
# Convert the image to a numpy array
np_array = np.asarray(im)
# Transform the numpy array to a blosc2 array. This is where compression happens, and
# the HTJ2K codec is called.
bl_array = blosc2.asarray(
np_array,
chunks=np_array.shape,
blocks=np_array.shape,
cparams=cparams,
urlpath="examples/kodim23.b2nd",
mode="w",
)
# Print information about the array, see the compression ratio (cratio)
print(bl_array.info)
压缩参数
以下参数可用于grok的压缩,默认值如下。其中大部分与Pillow库中的参数同名,含义相同。不在Pillow中的参数用*
标记,您可以在grok文档中或通过提供的链接获取更多信息。对于标记为**
的,您可以在grok.h头文件中获取更多信息。
'tile_size': (0, 0),
'tile_offset': (0, 0),
'quality_mode': None,
'quality_layers': np.zeros(0, dtype=np.float64),
'progression': "LRCP",
'num_resolutions': 6,
'codeblock_size': (64, 64),
'irreversible': False,
'precinct_size': (0, 0),
'offset': (0, 0),
'mct': 0,
* 'numgbits': 2, # Equivalent to -N, -guard_bits
* 'roi_compno': -1, # Together with 'roi_shift' it is equivalent to -R, -ROI
* 'roi_shift': 0,
* 'decod_format': GrkFileFmt.GRK_FMT_UNK,
* 'cod_format': GrkFileFmt.GRK_FMT_UNK,
* 'rsiz': GrkProfile.GRK_PROFILE_NONE, # Equivalent to -Z, -rsiz
* 'framerate': 0,
* 'apply_icc_': False, # Equivalent to -f, -apply_icc
* 'rateControlAlgorithm': GrkRateControl.BISECT,
* 'num_threads': 0,
* 'deviceId': 0, # Equivalent to -G, -device_id
* 'duration': 0, # Equivalent to -J, -duration
* 'repeats': 1, # Equivalent to -e, -repetitions
* 'mode': GrkMode.DEFAULT, # Equivalent to -M, -mode
* 'verbose': False, # Equivalent to -v, -verbose
** 'enableTilePartGeneration': False, # See header of grok.h above
** 'max_cs_size': 0, # See header of grok.h above
** 'max_comp_size': 0, # See header of grok.h above
codec_meta作为比率、质量、模式
作为一种更简单的激活码率质量模式的方法,如果您将 cparams
中的 codec_meta
设置为非0的整数,则码率质量模式将以 codec_meta
/ 10 的码率值被激活。如果未指定 cod_format
,则将使用默认值。在此情况下,codec_meta
参数优先于通过 blosc2_grok.set_params_defaults()
设置的 rates
参数。
import blosc2
cparams = {
'codec': blosc2.Codec.GROK,
'codec_meta': 5 * 10, # cratio will be 5
'filters': [],
'splitmode': blosc2.SplitMode.NEVER_SPLIT,
}
更多示例
有关更多示例,请参阅 示例目录。
感谢
感谢 Marta Iborra,来自 Blosc 开发团队,为使此插件成为可能所做的大部分工作,以及 J. David Ibáñez 和 Francesc Alted 对初始贡献。还要感谢 Aaron Boxer,grok 库 的原始作者,在解决使这种交互成为可能的问题方面提供的帮助。
这就完了!
Blosc 开发团队
项目详情
关闭
哈希值 for blosc2_grok-0.3.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d10b70396fb08ba0b573bfbbc16e6f1096f12681c21952e26b014c9cde31e22 |
|
MD5 | 6e3ff4d0294e84a1e1c50b3dc0b6fd5a |
|
BLAKE2b-256 | 6522a4b85a0c78e60e1e67f4bc4e89dfce9d9fc54885f405c0817e0805c60aa9 |
关闭
哈希值 for blosc2_grok-0.3.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cb2a3f77d53cfbedac744293350ea56accf279a298bc3f0d8bc6b0317a2a5422 |
|
MD5 | 19fde23bd0657fa06fe060fc5b588c26 |
|
BLAKE2b-256 | 45c37daf6c64a80a2d882ccf3352607322f1de7f55f5a67b87ee11dc4582283d |
关闭
哈希值 for blosc2_grok-0.3.3-py3-none-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9da834d835d60163e532bbe6cb6a0fc38111aa2a4bfb9113de7eaffc162dc74c |
|
MD5 | b1c0faf939309d32376b8a856c4b9db5 |
|
BLAKE2b-256 | a06c2c5437b49b2cf441e870ef5114568d79746422de18a04d3f8088926beff8 |
关闭
哈希值 for blosc2_grok-0.3.3-py3-none-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 58c7de1184d78adf85a48dd79364480a7594f9fb5e509fab5ed6d1919847eb96 |
|
MD5 | 448863ab4e8d5622974cec72b8df902e |
|
BLAKE2b-256 | e4c794339f1297bb8ecc4a9ed68242d13a3afd37c8148f1feed899285643783b |