I'm Hsuan, the project is my graduate work. This project was originally written in Python (original project here), but given the use of OCIO and some image processing features, I had to migrate the whole project to C++. I just learned C++ not long ago and I don't use it very well, so please pardon me if some of the code is not very efficient. Thanks to Liao Chuang, I got a lot of help from him during the coding.
ACES Metadata Format Analysis tool GUI. A tool for color artist who use .amf file. It can import or batch import ACES Metadata Files, parse the text and color pipeline information in a more readable way, and display LUT information in a graphical way. It converts the information you read into various formats LUTs, OCIO Config, or Word,EXCEL, or individual CDL files...
Related Projects:
amf-util
amf-implementation
aces-dev
(Need build & setting)
Color Transformation Language
OpenColroIO
(Need build & setting)
QT6
ACES is a global standard for interchanging digital image files, managing color workflows and creating masters for delivery and archiving.
It is a combination of SMPTE standards, best practices, and sophisticated color science developed by hundreds of professional filmmakers and color scientists under the auspices of the Science and Technology Council of the Academy of Motion Picture Arts and Sciences.
ACES can be used on any type of production from features to television, commercials, AR/VR and more.
ACES does not specify ACES‘s configuration points directly or associate them with actual imagesor shots during production, and this is the very reason why AMF exists.
AMF is the configuration file that allows a precise setup for an ACES engine. Besides this basicgoal, AMF is also the tool of choice to transmit and exchange configuration parameters in orderto ensure consistency within a workflow and across the entire ecosystem of tools that are usedwithin that workflow.
AMF is an XML specification that describes the configuration of an ACES color pipeline together with the various input transforms, look transforms and output transforms.AMF is a "sidecar' element that accompanies some visual material such as a video file or a sequence of frames or a whole composition (i.e timeline). In the case of a composition, more than one AMF file can be used if the composition requires different configurations of the ACES pipeline. It is also worth mentioning that several AMF files can reference the same visual material.
If you are an artist, you can download AMF Handbook.
If you are a developer, you can download S-2019-001.
for more infomation.
ACES Metadata Format Analyst is an open source project designed for color artists. We want to create a simple AMF analysis and processing GUI tool, with lightweight, and run on Mac and Win systems.
It has the following functions under development:
-
Analyze the content of the AMF file and display in a tabular, highly readable manner.
-
Batch import and process AMF files.
-
Input an AMF file and render a result in the way of ACES color pipeline.
-
Display LMT information in the form of Cube and Cruve.
-
Output AMF file literal information in various forms(i.e EXCEL, WORD , etc).
-
Output transforms in AMF individually or in bundles, in multiple LUT formats. (And also individually display them in the form of Cube and Cruve form).
My ability is limited, I welcome developers to see here to improve this software with me. My best regards.
- I am currently using the CTLrender command line, which results in an inefficient ACES pipeline.
- There are elements that may occur multiple times and the software does not read them well. For example,
aces:author
is allowed to appear more than once, but the software currently only read the first one. - The
archivedPipeline
element is not currently used very well. I think it is a very useful module, but none of the software vendors seem to use it very well at this moment. - The module of
scatter.cpp
for displaying 3D LUT uses the QT toolQ3DScatter
module, but it canot display colored 3D points. My current idea is to instantiate each point and give each its own color (this might make the software less efficient). - CTLrender is not yet able to handle LMT, so this problem exists in this software as well.
- The image rendering pipeline uses the amf-util project of ptrpfn, which requires a mix of C++ and python, and modifies a bit the original ptrpfn source code by removing the “click" header part. I also did a parse way for rendering pipeline, but that parse way may not be very reliable, as you can see in the source code
std::string usingctlrender(ParseAMF);
which is my own rendering pipeline. - Considering that
amf-util
is not stable, so I wrote a parsing method by myself. so when importing a file of .amf, it actually did two renderings (4 times in total) which improves the stability in disguise, i.e. if one pipeline is does not working, there has another one, if you want to close one of them, you can searchparseamf.cpp
to delateRenderPic_Whenconstruct(Path);
or searchamfanalyst.cpp
to delatec1->usingctlrender(amf_file1);
. amfutil(python) uses thesystem()
way So when it runs, the system needs to wait. My pipeline uses QT to run in the background without waiting, which can be used as a remedy.