Skip to main content

ACES color management for pixtreme (OCIO ACES 1.2 compliant)

Project description

pixtreme-aces

ACES Color Management for pixtreme (OCIO ACES 1.2 Compliant)

Overview

pixtreme-aces provides professional ACES color management functionality for VFX and color grading workflows. It implements the Academy Color Encoding System (ACES) 1.2 standard with full GPU acceleration.

Features

  • ACES 1.2 Compliance: Matrix values match OpenColorIO-Config-ACES standard
  • Industry Standard Workflow: Compatible with Nuke, Houdini, Maya color pipelines
  • GPU Accelerated: All operations run on CUDA-enabled GPUs via CuPy
  • Type Preservation: Seamlessly works with both NumPy and CuPy arrays

Installation

Requirements:

  • Python >= 3.12
  • CUDA Toolkit 12.x
  • NVIDIA GPU with compute capability >= 6.0
pip install pixtreme-aces

Requires pixtreme-core and CUDA Toolkit 12.x.

Quick Start

import pixtreme_aces as aces
import pixtreme_core as px

# Read display-referred image (Rec.709/sRGB)
img = px.imread("input.jpg")

# Convert to ACES2065-1 (scene-referred, linear AP0)
aces_img = aces.rec709_to_aces2065_1(img)

# Work in ACES color space
# ... color grading, compositing, etc.

# Convert back to Rec.709 for display
output = aces.aces2065_1_to_rec709(aces_img)

px.imwrite("output.jpg", output)

Color Space Conversions

ACES Working Spaces

  • ACES2065-1: Archive format (linear AP0, wide gamut)
  • ACEScg: CG/VFX working space (linear AP1)
  • ACEScct: Grading space (log-encoded AP1)
# ACES2065-1 ↔ ACEScg
acescg = aces.aces2065_1_to_acescg(aces_img)
aces_img = aces.acescg_to_aces2065_1(acescg)

# ACES2065-1 ↔ ACEScct
acescct = aces.aces2065_1_to_acescct(aces_img)
aces_img = aces.acescct_to_aces2065_1(acescct)

Transfer Functions

The IEC 61966-2-1 sRGB and ITU-R BT.1886 transfer functions are available as independent building blocks. BT.1886 supports configurable display white and black luminance through L_w and L_b.

# sRGB signal ↔ linear light
linear = aces.srgb_eotf(img)
encoded = aces.srgb_inverse_eotf(linear)

# BT.1886 signal ↔ normalized display luminance
linear = aces.bt1886_eotf(img, L_w=100.0, L_b=0.1)
encoded = aces.bt1886_inverse_eotf(linear, L_w=100.0, L_b=0.1)

ACES AP0 and CIE XYZ

Low-level matrix transforms convert between ACES2065-1 AP0 and CIE XYZ with a D60 white point.

xyz_d60 = aces.ap0_to_xyz_d60(aces_img)
aces_img = aces.xyz_d60_to_ap0(xyz_d60)

All conversions above accept NumPy and CuPy arrays, preserve the input array kind and shape, and normalize computation to float32 without clipping scene-referred values.

References

License

MIT License - see LICENSE file for details.

ACES® is a trademark of the Academy of Motion Picture Arts and Sciences (A.M.P.A.S.). This software is not endorsed by A.M.P.A.S.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pixtreme_aces-0.9.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pixtreme_aces-0.9.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file pixtreme_aces-0.9.0.tar.gz.

File metadata

  • Download URL: pixtreme_aces-0.9.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for pixtreme_aces-0.9.0.tar.gz
Algorithm Hash digest
SHA256 ab06a62362d500df84d7e4003c366b08a9743cbb56bf8a221b7682bb14864f4e
MD5 97a5a390a97e5c1952fd858682e82c36
BLAKE2b-256 c564e450b401a7fa7037cdb8581669182b0b2a09ae6d65abbc9da2edaa48ed2a

See more details on using hashes here.

File details

Details for the file pixtreme_aces-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pixtreme_aces-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab1934cd9daac6fe6d137a43021fccb06de1def701f351a39ff0dafa10bf81b3
MD5 62901c3d8622940f011f9e4161835764
BLAKE2b-256 f0270ddbd98184360cd88e46157a917fe79b2a285057055987f15468a000ddde

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page