Comments (12)
from aces-dev.
Adding @JGoldstone to the party! :)
from aces-dev.
Something like that fixes all the current ACEStransformID
on my end and gives an idea of all the problems:
def patch_invalid_id(id_):
if not id_.startswith(ACES_URN):
id_ = f'{ACES_URN}:{id_}'
if id_.endswith('a1.v1'):
id_ = id_.replace('a1.v1', 'a1.1.0')
if id_.endswith('a1.v2'):
id_ = id_.replace('a1.v2', 'a1.2.0')
if 'Academy.P3D65_108nits_7.2nits_ST2084' in id_:
return id_.replace('7.2', '7')
elif 'ACEScsc' in id_ and not 'ACEScsc.Academy' in id_:
return id_.replace('ACEScsc', 'ACEScsc.Academy')
elif 'ACESlib' in id_ and not 'ACESlib.Academy' in id_:
return id_.replace('ACESlib', 'ACESlib.Academy')
elif 'ACESutil' in id_ and not 'ACESutil.Academy' in id_:
return id_.replace('ACESutil', 'ACESutil.Academy')
else:
return id_
from aces-dev.
urn:ampas:aces:transformId:v1.5:IDT.ARRI.Alexa-v2-logC-EI160-CCT3900.a1.v1
urn:ampas:aces:transformId:v1.5:IDT.Sony.SLog1_SGamut_10i.a1.v1
These are correct according to 4.6.1
4.6.1 Input Transforms (IDTs)
URN:IDT.Namespace.DeviceName.aACESmajorVersionNumber.vIDTversionNumber
urn:ampas:aces:transformId:v1.5:ACESutil.Lin_to_DolbyPQ.a1.0.3 (No Academy namespace)
Also correct according to 4.5.3. (whether or not the way 4.5.3 is written makes sense is a separate issue)
4.5.3 ACES Core Libraries and Utilities
Academy-supplied core libraries and utilities’ major version number shall match the ACES System Version Major Version number. Core library and utilities Transform Identifiers shall use the following versioning convention:
URN:ACESlib.Name.aACESmajorVersionNumber.ACESlibMinorVersionNumber.ACESlib PatchVersionNumber
URN:ACESutil.Name.aACESmajorVersionNumber.ACESutilMinorVersionNumber.ACES utilPatchVersionNumber
from aces-dev.
Thanks @scottdyer! I did not read further that section 4.1 because I was naive in assuming that the specification was consistent which it is not!
A few things then:
- I reckon that a note should be added in Section 4.1 that the convention is not consistent across transforms, i.e. where applicable is not enough.
ACESutil.HLG_to_DolbyPQ_1000nits.a1.1.0
is missing the URNurn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7.2nits_ST2084.a1.1.0
is invalid because the name is split in two with the dot in7.2nits
.
I will update my code tonight and see what is left!
from aces-dev.
Yeah, it's extremely confusing. There are almost certainly transforms that were missed when the transform IDs were last updated to add the urn prefix. I used a multi-file find & replace and so if there were any deviations from the match pattern I used then I probably missed one or two. We can fix them all once we think we've found them all.
from aces-dev.
Some of the ACEScsc are not correct:
// ACEScsc.CLog2_CGamut_to_ACES.a1.v1
No URN, no namespace and no patch version number!
from aces-dev.
Kind of validates the point that there should only be a single naming convention, the first one described in the spec :)
from aces-dev.
Here is the current list of ugly ducklings if we are sticking to the current spec:
Missing URN
- ACESutil.HLG_to_DolbyPQ_1000nits.a1.1.0
- ACEScsc.ACES_to_CLog3_CGamut.a1.v1
- ACEScsc.CLog3_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_CLog2_CGamut.a1.v1
- ACEScsc.CLog2_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_Log3G10_RWG.a1.v1
- ACEScsc.Log3G10_RWG_to_ACES.a1.v1
- ACEScsc.ACES_to_LogC_EI800_AWG.a1.v1
- ACEScsc.LogC_EI800_AWG_to_ACES.a1.v1
- ACEScsc.ACES_to_VLog_VGamut.a1.v1
- ACEScsc.VLog_VGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3Cine.a1.v1
- ACEScsc.SLog3_SGamut3Cine_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3.a1.v1
- ACEScsc.SLog3_SGamut3_to_ACES.a1.v1
Invalid Separator
- urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7.2nits_ST2084.a1.1.0
- urn:ampas:aces:transformId:v1.5:InvRRTODT.Academy.P3D65_108nits_7.2nits_ST2084.a1.1.0
Missing Namespace
- ACEScsc.ACES_to_CLog3_CGamut.a1.v1
- ACEScsc.CLog3_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_CLog2_CGamut.a1.v1
- ACEScsc.CLog2_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_Log3G10_RWG.a1.v1
- ACEScsc.Log3G10_RWG_to_ACES.a1.v1
- ACEScsc.ACES_to_LogC_EI800_AWG.a1.v1
- ACEScsc.LogC_EI800_AWG_to_ACES.a1.v1
- ACEScsc.ACES_to_VLog_VGamut.a1.v1
- ACEScsc.VLog_VGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3Cine.a1.v1
- ACEScsc.SLog3_SGamut3Cine_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3.a1.v1
- ACEScsc.SLog3_SGamut3_to_ACES.a1.v1
Invalid Versioning
- ACEScsc.ACES_to_CLog3_CGamut.a1.v1
- ACEScsc.CLog3_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_CLog2_CGamut.a1.v1
- ACEScsc.CLog2_CGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_Log3G10_RWG.a1.v1
- ACEScsc.Log3G10_RWG_to_ACES.a1.v1
- ACEScsc.ACES_to_LogC_EI800_AWG.a1.v1
- ACEScsc.LogC_EI800_AWG_to_ACES.a1.v1
- ACEScsc.ACES_to_VLog_VGamut.a1.v1
- ACEScsc.VLog_VGamut_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3Cine.a1.v1
- ACEScsc.SLog3_SGamut3Cine_to_ACES.a1.v1
- ACEScsc.ACES_to_SLog3_SGamut3.a1.v1
- ACEScsc.SLog3_SGamut3_to_ACES.a1.v1
from aces-dev.
Can we get this cleaned up by then?
I hope so!
@scottdyer, @aforsythe : Here is another one whose ACESTransformID is incorrect:
s/Rec2020_100nits/Rec2020_P3D65limited_100nits_dim
from aces-dev.
I just found out two other problematic ones that are fine from a specification standpoint but are not consistent:
odt/p3/ODT.Academy.P3D65_Rec709limited_48nits.ctl
// <ACEStransformID>urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_709limit_48nits.a1.1.0</ACEStransformID>
709limit
where all the other ones will consistently use Rec
and limited
:
ODT.Academy.Rec2020_Rec709limited_100nits.a1.1.0
InvODT.Academy.DCDM_P3D65limited.a1.1.0
ODT.Academy.Rec2020_Rec709limited_100nits.a1.1.0
from aces-dev.
This one should be fine to close now!
from aces-dev.
Related Issues (20)
- Column title appears to be incorrectly copied from previous table HOT 1
- Output Transforms 1.1 - White Point Sim HOT 3
- HLG EOTF from ITU-R BT.2100-1 is used not ITU-R BT.2100-2 HOT 2
- Order of operations for limiting to primaries and CAT causes unwanted clipping HOT 2
- Broken link in AMF README
- D65 to D60 CAT is missing from InvODT.Academy.P3DCI_D65sim_48nits.ctl
- ACES to ADX transform HOT 1
- ACEScct to ACES spec vs code discrepancy HOT 2
- ACES in Blender causes errors during .obj file import
- Categorise the "outputTransforms" by display types. HOT 1
- Clamp in ACEScsc.ACES-to-ACEScg.ctl HOT 2
- Some CTL transform files are missing descriptions. HOT 1
- Direction comment should be removed HOT 1
- Usage comment inapplicable to inverse LMT HOT 1
- broken link on https://github.com/ampas/aces-dev/tree/dev/transforms/ctl/idt/vendorSupplied/panasonic HOT 1
- IDT "Blackmagic Film Wide Gamut (Gen 5)" does not work (wrong matrix variable) HOT 1
- Inconsistent and possibly incorrect `ACEStransformID` for ARRI LogC4 HOT 6
- Typo in DRAFT P-2013-001
- Code duplication in "ACESlib.Tonescales.ctl". HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aces-dev.