A Conform step changes the underlying representations on an aggregation,
while preserving the specialization attributes on the aggregation.
In this example, we have
-
Two processes which generate high and low resolution content.
These could be film/video res images, or LOD levels of a model, or etc.
-
And downstream, an aggregation of the low resolution data.
Conceptually, in pseudocode, the low res aggregation might look like:
# low res aggregation
data0 = get_from_reference(low_res_data, index=0)
data0.param1 = 14
data0.param2 = 'Hello'
data1 = get_from_reference(low_res_data, index=1)
data1.param1 = 37
data1.param2 = 'Bonjour'
The conformed high resolution data would look like:
# high res aggregation
data0 = get_from_reference(high_res_data, index=0)
data0.param1 = 14
data0.param2 = 'Hello'
data1 = get_from_reference(high_res_data, index=1)
data1.param1 = 37
data1.param2 = 'Bonjour'
Note the references have changed, but the surrounding context and specialization parameters have not.
Example: the Edit Decision List
A concrete example is an EDL or Edit Decision List.
Each line in the file is a pointer to a media loop (sequence of image frames),
with an annotation of where the loop begins and ends in the playlist.
# movie: Space Blasters 14
# sequence: Intro
# low res EDL
# in out media
12 100 intro.video.shot_1
1 54 intro.video.shot_2
11 97 cutin.special
...
The conformed high resolution data would look like:
# movie: Space Blasters 14
# sequence: Intro
# high res EDL
# in out media
12 100 intro.film.shot_1
1 54 intro.film.shot_2
11 97 cutin.special_high
...
In this case, conformation requires more than simply replacing video with film.
For example, cutin.special is replaced with cutin.special_high.
Mapping
In general a conform process needs an additional input, namely the raw mapping between
high and low resolution, independent of the specialization parameters.
This mapping can take on many forms.
It could be a list of paired references, as indicated, or a procedure with rewriting rules, etc.
Conforming Using Assets
If the high and low resolution content is part of a structure like an asset,
then the mapping is intrinsic:
Of course, we can aggregate references to the asset rather than its components.
Then the asset reference brings in both components and the
conformation step is not needed.
When Conform is Not Needed
It's often necessary to conform data that is not intrinsically linked.
But whenever the data is intrinsically linked, i.e. the high and low resolution data
is part of the same asset schema, then conform is not needed.
There are two ways forward:
-
The downstream consumers which expect aggregations of high or low
can be rewritten to consume references to assets, or
-
the asset aggregation can be Reference Baked into the appropriate needed format.
Click on diagram to Zoom/Unzoom.