kaira.models.image.compressors.JPEG2000Compressor

Inheritance diagram of JPEG2000Compressor

Inheritance diagram for JPEG2000Compressor

class kaira.models.image.compressors.JPEG2000Compressor(max_bits_per_image: int | None = None, quality: int | None = None, irreversible: bool | None = None, progression_order: str = 'LRCP', num_resolutions: int = 6, collect_stats: bool = False, return_bits: bool = True, return_compressed_data: bool = False, *args: Any, **kwargs: Any)[source]

Bases: BaseImageCompressor

JPEG 2000 image compressor using JPEG 2000 via PIL/Pillow.

This class provides JPEG 2000 compression with configurable quality settings and advanced features. JPEG 2000 is a wavelet-based image compression standard that provides superior compression efficiency compared to traditional JPEG, especially at lower bit rates. It supports both lossy and lossless compression modes.

The quality parameter ranges from 1 (worst quality, highest compression) to 100 (best quality, lowest compression). JPEG 2000 also supports a special lossless mode when quality is set to 100.

Example

# Fixed quality compression compressor = JPEG2000Compressor(quality=85) compressed_images = compressor(image_batch)

# Bit-constrained compression compressor = JPEG2000Compressor(max_bits_per_image=4000) compressed_images, bits_used = compressor(image_batch)

# Lossless compression compressor = JPEG2000Compressor(quality=100) compressed_images = compressor(image_batch)

# With compression statistics compressor = JPEG2000Compressor(quality=90, collect_stats=True, return_bits=True) compressed_images, bits_per_image = compressor(image_batch) stats = compressor.get_stats()

Methods

__init__

Initialize the JPEG 2000 compressor.

compress

Compress a PIL Image to JPEG 2000 bytes.

decompress

Decompress JPEG 2000 bytes to PIL Image.

forward

Process a batch of images through compression.

from_config

Create model instance from configuration.

from_hydra_config

Create model from Hydra DictConfig.

from_pretrained_config

Create model from Hugging Face PretrainedConfig.

get_compression_ratio

Calculate compression ratio.

get_stats

Get compression statistics from the last forward pass.

Examples using kaira.models.image.compressors.JPEG2000Compressor

Image Compressors Comparison

Image Compressors Comparison
__init__(max_bits_per_image: int | None = None, quality: int | None = None, irreversible: bool | None = None, progression_order: str = 'LRCP', num_resolutions: int = 6, collect_stats: bool = False, return_bits: bool = True, return_compressed_data: bool = False, *args: Any, **kwargs: Any)[source]

Initialize the JPEG 2000 compressor.

Parameters:
  • max_bits_per_image – Maximum bits allowed per compressed image. If provided without quality, the compressor will find the highest quality that produces files smaller than this limit.

  • quality – JPEG 2000 quality level (1-100, higher = better quality, larger file size). If provided, this exact quality will be used regardless of resulting file size. Quality 100 enables lossless mode unless irreversible=True is explicitly set.

  • irreversible – Force irreversible (lossy) compression even at high quality. If None, automatically determined based on quality (>= 100 = reversible).

  • progression_order – Progression order for encoding (“LRCP”, “RLCP”, “RPCL”, “PCRL”, “CPRL”).

  • num_resolutions – Number of resolution levels (1-33). More levels = better scalability.

  • collect_stats – Whether to collect and return compression statistics

  • return_bits – Whether to return bits per image in forward pass

  • return_compressed_data – Whether to return the compressed binary data

  • *args – Variable positional arguments passed to the base class.

  • **kwargs – Variable keyword arguments passed to the base class.

compress(image: Image, quality: int | None = None) bytes[source]

Compress a PIL Image to JPEG 2000 bytes.

This is a convenience method for direct compression without the full forward pass.

Parameters:
  • image – PIL Image to compress

  • quality – JPEG 2000 quality level (uses instance quality if not provided)

Returns:

Compressed JPEG 2000 data as bytes

decompress(data: bytes) Image[source]

Decompress JPEG 2000 bytes to PIL Image.

This is a convenience method for direct decompression.

Parameters:

data – Compressed JPEG 2000 data as bytes

Returns:

Reconstructed PIL Image

forward(x: Tensor, *args: Any, **kwargs: Any) Tensor | Tuple[Tensor, List[int]] | Tuple[Tensor, List[bytes]] | Tuple[Tensor, List[int], List[bytes]]

Process a batch of images through compression.

Parameters:
  • x – Tensor of shape [batch_size, channels, height, width] with values in [0, 1]

  • *args – Additional positional arguments

  • **kwargs – Additional keyword arguments

Returns:

Just the reconstructed image tensor If return_bits=True: Tuple of (tensor, bits per image) If return_compressed_data=True: Tuple of (tensor, compressed binary data) If both are True: Tuple of (tensor, bits per image, compressed binary data)

Return type:

If no additional returns

classmethod from_config(config, **kwargs)

Create model instance from configuration.

Parameters:
  • config – Configuration object (PretrainedConfig, DictConfig, or dict)

  • **kwargs – Additional parameters to override config

Returns:

Model instance

classmethod from_hydra_config(config: DictConfig, **kwargs)

Create model from Hydra DictConfig.

Parameters:
  • config – Hydra configuration

  • **kwargs – Additional parameters

Returns:

Model instance

classmethod from_pretrained_config(config: PretrainedConfig, **kwargs)

Create model from Hugging Face PretrainedConfig.

Parameters:
  • config – PretrainedConfig instance

  • **kwargs – Additional parameters

Returns:

Model instance

get_compression_ratio(original_size: int, compressed_size: int) float

Calculate compression ratio.

Parameters:
  • original_size – Size of original data in bits

  • compressed_size – Size of compressed data in bits

Returns:

Compression ratio (original_size / compressed_size)

get_stats() Dict[str, Any]

Get compression statistics from the last forward pass.

Returns:

Dictionary containing compression statistics