<< Click to Display Table of Contents >> Navigation: »No topics above this level« Marking Time |
DeltaServer synchronises frame display with the refresh clock of the server’s output GPU(s). The first pixel is presented at the very start of the first line, every time. But when we have a number of servers, or multiple GPUs in each, many display devices, audio, and other parts of the system, show controllers and so on, how do we keep everything perfectly in sync?
Time, and Displaying Frames (Refresh)
Multiple graphical displays shared across several servers on the same display system will not be synchronous unless the graphical processing units (GPUs) in all servers themselves are fully synchronised. Display hardware must synchronise the screen refresh across all display devices, by using a common, repeating timing pulse to trigger the VSync signal in every display and synchronise the HSync. Absolute or elapsed time does not matter: but each new frame will be displayed simultaneously across all devices. A genlock input per server, and a simple house-sync pulse generator is all that is required for display synchronisation.
Matching Frame Delivery and Display
When frames are passed from DeltaServer to a graphics processor (GPU), the frame will be held until the VSync signal is ready. When in ‘Auto’ or ‘Hardware Timed’ mode, DeltaServer is locked to the GPU refresh clock, whether this is internal to the GPU, or drawn from an external sync reference. Frames must therefore be completely loaded before the VSync, otherwise a frame may be dropped. Delta pre-caches a configurable number of frames from disk to ensure this does not happen. Presenting frames from disk through to display requires adequate disk performance, graphics performance and processing capacity, so the higher the media resolution, and the more blending, warping or effects being applied, the more will be demanded from the server.
Movie Time
Sequential movies are always in frames, so the framerate is defined in its format. Delta allows the application of framerate compensation, so that media of different framerates can be played on the same timeline. This can be smoothed by choosing interpolation.
Audio Time
LTC audio tracks carry embedded SMPTE timecode, which enables multiple servers to synchronise their playheads to an external LTC timecode. This code is essentially time reference meta data. If the server is not genlocked to the LTC source, this can cause drift between audio and video, showing up easily in lip-synced media, although not obvious with ambient or soundtrack audio.
Matching Movie and Audio Tracks
For ‘pure playback’ on DeltaServer systems, playback rates must be coordinated properly from top to bottom. From production to media render to Delta timeline settings, to desktop/EDID settings or SDI format settings and house sync, to signal transmission path, display – everything should be designed and purposed to work in the same refresh (or multiple of the same refresh). However, DeltaServer copes with a degree of tolerance even when not everything is perfect.
By placing audio and movie resources on a timeline, we lock them together in time. In limited scenarios, a movie frame rate can be compensated for by giving it more or less real time in display, using the Playspeed adjustment. If an audio track is frame-adjusted it may discernibly change pitch and go out of tune in relation to other tracks or sound sources, depending on the amount of adjustment, though DeltaServer can compensate for this with its own pitch correction. The best solution is to design the media playback to a consistent framerate.
We can sync timelines between servers, and even better, genlocked to an external timing source. But what happens when media do not all start at a frame reference of zero? Or when loudspeakers at a large outdoor projection are a significant distance from viewers? Any individual resource can be repositioned on a timeline to provide positive or negative time adjustment, and additionally all audio on a server can be offset in DeltaServer Configuration Defaults by a given number of frames (plus or minus).
Delta Time
Delta time is based on movie time: i.e. the smallest unit of time is the frame, according to frame rate.
In smaller systems, and for shorter show lengths, Delta servers can simply be placed in the same Timing Group, so that their timelines are internally synced. A Leader Delta server will broadcast its timeline position as a series of binary timing packet to Follower servers in the group, so that the playheads of every timeline in every server are synchronised. However, without a common genlock source, servers may drift between each other over a longer continuous play time. We may want all devices to refer to a central clock and a central timecode instead.
Communications Integrity
Delta Leader-Follower communication is carried out over the network. For analogue timing sync connections, long runs of unshielded or unbalanced cable can cause signal loss and noise in timing signals, so RCA/phono, BNC or mini-XLR connectors and coax or balanced cable should be used.
Page edited [d/m/y]: 14/09/2021