unienv_data.transformations.image_compress¶
JPEG_QUALITY_COMPRESSION_MAP
module-attribute
¶
JPEG_QUALITY_COMPRESSION_MAP = {'quality': array([55, 60, 65, 70, 75, 80, 85, 90, 95, 100], dtype=int), 'compression_ratio': array([43.27, 36.9, 34.24, 31.5, 26.0, 25.06, 19.08, 14.3, 9.88, 5.27], dtype=float), 'conservative_ratio': 0.6}
CONSERVATIVE_COMPRESSION_RATIOS
module-attribute
¶
CONSERVATIVE_COMPRESSION_RATIOS = {'JPEG': get_jpeg_compression_ratio}
ImageCompressTransformation
¶
ImageCompressTransformation(init_quality: int = 70, max_size_bytes: Optional[int] = None, compression_ratio: Optional[float] = None, mode: Optional[str] = None, format: str = 'JPEG', last_channel: bool = True)
Bases: DataTransformation
Initialize JPEG compression transformation. Args: init_quality: Initial JPEG quality setting (1-100). max_size_bytes: Maximum allowed size of compressed JPEG in bytes. mode: Optional mode for PIL Image (e.g., "RGB", "L"). If None, inferred from input. format: Image format to use for compression (default "JPEG"). See https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html for options.
compression_ratio
instance-attribute
¶
compression_ratio = compression_ratio if compression_ratio is not None else get(format, None)(init_quality) if max_size_bytes is None else None
validate_source_space
¶
validate_source_space(source_space: Space[Any, BDeviceType, BDtypeType, BRNGType]) -> None
get_uint8_dtype
staticmethod
¶
get_uint8_dtype(backend: ComputeBackend[BArrayType, BDeviceType, BDtypeType, BRNGType]) -> BDtypeType
encode_to_size
¶
encode_to_size(img_array, max_bytes, min_quality=20, mode=None)
Encode an image (H, W, 3) or (H, W, 1) as JPEG bytes, reducing quality until <= max_bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
img_array
|
np.ndarray, uint8, shape (H, W, 3) RGB or (H, W, 1) grayscale |
required | |
max_bytes
|
maximum allowed size of JPEG file |
required | |
min_quality
|
minimum JPEG quality before giving up |
20
|
Returns:
| Type | Description |
|---|---|
|
jpeg_bytes (bytes), final_quality (int) |
serialize
¶
serialize(source_space: Optional[Space[Any, BDeviceType, BDtypeType, BRNGType]] = None) -> Dict[str, Any]
deserialize_from
classmethod
¶
deserialize_from(json_data: Dict[str, Any], source_space: Optional[Space[Any, BDeviceType, BDtypeType, BRNGType]] = None)
ImageDecompressTransformation
¶
ImageDecompressTransformation(target_height: int, target_width: int, target_channels: Optional[int] = 3, mode: Optional[str] = None, format: Optional[str] = None)
Bases: DataTransformation
Initialize JPEG decompression transformation. Args: target_height: Height of the decompressed image. target_width: Width of the decompressed image. mode: Optional mode for PIL Image (e.g., "RGB", "L"). If None, inferred from input. format: Image format to use for decompression (default None, which will try everything). See https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html for options.
validate_source_space
staticmethod
¶
validate_source_space(source_space: Space[Any, BDeviceType, BDtypeType, BRNGType]) -> None
decode_bytes
¶
decode_bytes(jpeg_bytes: bytes, mode=None)
Decode JPEG bytes to an image array (H, W, 3).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
jpeg_bytes
|
bytes
|
bytes of JPEG image |
required |
Returns:
| Name | Type | Description |
|---|---|---|
img_array |
np.ndarray, uint8, shape (H, W, 3) |
serialize
¶
serialize(source_space: Optional[Space[Any, BDeviceType, BDtypeType, BRNGType]] = None) -> Dict[str, Any]
deserialize_from
classmethod
¶
deserialize_from(json_data: Dict[str, Any], source_space: Optional[Space[Any, BDeviceType, BDtypeType, BRNGType]] = None)