Synchronization of Periodic Clocks
Résumé
We propose a programming model dedicated to real-time videostreaming
applications for embedded media devices, including highdefinition
TVs. This model is built on the synchronous programming
model extended with domain-specific knowledge — periodic evolution
of streams — to allow correct-by-construction properties of the
application to be proven by the compiler. These properties include
buffer requirements and delays between input and output streams.
Such properties are tedious to analyze by hand, due to the combinatorics
of video filters, multiple data rates and formats. We show how
to extend a core synchronous data-flow language with a notion of periodic
clocks, and to design a relaxed clock calculus (a type system
for clocks) to allow non strictly synchronous processes to be composed.
This relaxation is associated with a subtyping rule in the clock
calculus. Delay, buffer insertion and control code for these buffers
are automatically inferred from the clock types through a systematic
program transformation.