Skip to content

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.

has_inverse class-attribute instance-attribute

has_inverse = True

init_quality instance-attribute

init_quality = init_quality

max_size_bytes instance-attribute

max_size_bytes = max_size_bytes

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

mode instance-attribute

mode = mode

format instance-attribute

format = format

last_channel instance-attribute

last_channel = last_channel

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

get_target_space_from_source

get_target_space_from_source(source_space)

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)

transform

transform(source_space, data)

direction_inverse

direction_inverse(source_space=None)

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.

has_inverse class-attribute instance-attribute

has_inverse = True

target_height instance-attribute

target_height = target_height

target_width instance-attribute

target_width = target_width

target_channels instance-attribute

target_channels = target_channels

mode instance-attribute

mode = mode

format instance-attribute

format = format

validate_source_space staticmethod

validate_source_space(source_space: Space[Any, BDeviceType, BDtypeType, BRNGType]) -> None

get_uint8_dtype staticmethod

get_uint8_dtype(backend)

get_target_space_from_source

get_target_space_from_source(source_space)

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)

transform

transform(source_space, data)

direction_inverse

direction_inverse(source_space=None)

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)

get_jpeg_compression_ratio

get_jpeg_compression_ratio(init_quality: int) -> int