kaira.models.image.compressors.BaseImageCompressor

Inheritance diagram for BaseImageCompressor
- class kaira.models.image.compressors.BaseImageCompressor(max_bits_per_image: int | None = None, quality: int | float | None = None, collect_stats: bool = False, return_bits: bool = True, return_compressed_data: bool = False, *args: Any, **kwargs: Any)[source]
Bases:
BaseModelAbstract base class for image compression methods.
This class provides a consistent interface for all image compression implementations in Kaira, including traditional methods (JPEG, PNG), modern standards (BPG), and neural network-based approaches.
All compressors support both quality-based and bit-constrained compression modes, batch processing capabilities, and optional compression statistics collection.
Methods
Initialize the image compressor.
Process a batch of images through compression.
Create model instance from configuration.
Create model from Hydra DictConfig.
Create model from Hugging Face PretrainedConfig.
Calculate compression ratio.
Get compression statistics from the last forward pass.
Examples using
kaira.models.image.compressors.BaseImageCompressor
Original DeepJSCC Model (Bourtsoulatze 2019) with Training
Original DeepJSCC Model (Bourtsoulatze 2019) with Training- __init__(max_bits_per_image: int | None = None, quality: int | float | None = None, collect_stats: bool = False, return_bits: bool = True, return_compressed_data: bool = False, *args: Any, **kwargs: Any)[source]
Initialize the image 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 – Quality level for compression. Range and interpretation depend on the specific compressor implementation.
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.
- forward(x: Tensor, *args: Any, **kwargs: Any) Tensor | Tuple[Tensor, List[int]] | Tuple[Tensor, List[bytes]] | Tuple[Tensor, List[int], List[bytes]][source]
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
- get_compression_ratio(original_size: int, compressed_size: int) float[source]
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][source]
Get compression statistics from the last forward pass.
- Returns:
Dictionary containing compression statistics
- 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