Website Pages:

Welcome to Pipeline Design Patterns
Vocabulary
A Theory of Pipeline
Pipeline Design Patterns
Cache
Bake / Baking
Conform
Case Studies

Sections in this Page:

Conform
Example: the Edit Decision List
Conforming Using Assets

Definitions:

A Vocabulary for Diagrams
Glossary

Conform

A Conform step changes the underlying representations on an aggregation, while preserving the specialization attributes on the aggregation.

conform
Click on diagram to Zoom/Unzoom.

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.

conform_refs
Click on diagram to Zoom/Unzoom.

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:

conform_asset
Click on diagram to Zoom/Unzoom.

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.

conform_not_needed
Click on diagram to Zoom/Unzoom.

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.

aggregation_bake
Click on diagram to Zoom/Unzoom.