About Delta Compositor
Delta compositor will be a high-end video compositing system and
machine vision framework. Delta is intended to be the ideal
package for Standard-Def, High-Def and Film Visual Media
Postproduction. It is in very early stages of development
and design, and will be released as Open Source
What it's for
A compositing package processes and combines together video and
still images from multiple sources stored on disk to
produce an output video sequence. It can be used, for
example, to make real footage of an actor filmed in front
of a bluescreen appear in a Computer Generated world. To
achieve this convincingly, Delta allows the actor to be
removed from the bluescreen, the two videos (actor and CG
world) to be added together as well as the more complex
task of adjusting the colouring to make the shot appear
realistic. Simpler tasks can also be achieved very
efficiently, such as cropping or rotating a video.
Like other compositing packages, Delta is used by connecting
together nodes which take in video and process
it. The result is like a backwards flowing river delta,
where lots of streams all merge together to form a single
output. Nodes are controlled with parameters which can
change over time either with keyframes or by writing an
expression based on time (e.g. sin(time)). A key
advantage of this architecture is that it is non-destructive
- you may adjust parameters as often as you like without
degrading the quality of the video, and can adjust
parameters early in the chain of nodes while examining the
To the user, this architecture might not seem particularly
new. This is intentional, the interface is intentionally
only a little change (a small delta) away from what
professional movie compositors are used to. Under the
surface, there will be a few differences:
- High speed distributed processing - Delta can "farm out" processing
jobs to an array
of machines for fast processing. Delta will be able to use idle
machines, or arrays of computers built into render farms,
to speed up processing. Data is saved in a cache, to avoid computing the
same data multiple times. "pre-emptive" processing, where data is
computed before it is required, is planned. The final sequence does not
need to be "rendered" in the same way as many other packages - the data
is simply copied from the cache to the required location, since the
engine will already have processed the data.
- Multiple data-types - while most nodes take in video and output
processed video, multiple data-types are supported. Nodes handling
information such as 3D geometry, tracked point locations, colour
histograms, even text strings, are also supported.
- Simple API - Delta's programming API will be as simple as possible,
to allow for rapid prototyping of new effects plugins, for
project-and-shot-specific bespoke effects and postproduction processes.
For wider releases and speed-critical software, the node can be
speed-optimised with extra code to increase efficiency.
- Resolution-impartial - Delta handles frames of any resolution from 1 by 1 pixel upwards.
The limit is the size of your storage, not Delta! Delta is not limited to 24bits per pixel, either.
Floating point data formats (such as 16,32 and 64 bit floating point Tiffs or OpenEXR frames) work just as well.
The GUI switches proxy levels to keep rendering fast with high resolution images.
- Random-time-access - nodes need not process the video sequentially, one frame at once.
Nodes can request any frame from their "parents" in order to process the next video frame. This makes time-dependent effects such as temporal smoothing, averaging, change detection and tracking easy to use and easy to implement.