Digital Signal Processing Reference
In-Depth Information
Discrete changes due to events are alternated with stable periods of streaming.
Conceptually, a discrete change occurs at a well defined point within the stream.
Because of pipelining implementation of the stream processing however, there is
not necessarily a point in time where the change can be applied instantaneously to
the whole network. A video decoder for instance may be processing video frame
by video frame in a pipelined fashion. A discrete change occurs between two
frames such that the new frames are decoded according to new parameter settings.
However, when the first new frame enters into the pipeline, there are still old frames
synchronized model of streaming, allows a mechanism of delivering asynchronous
messages (events) to processes in accordance with the “information wavefront”, i.e.,
in a pipelined fashion. In general, an important aspect of dealing with streaming
computation and events is to coordinate their execution to implement a smooth
transition.
There is a trade-off between predictability and synchronization overhead. Pre-
dictability of processing (non-deterministic) events is improved by added control
over the moment when and the way how the event is processed relative to the
streaming activities. Increased predictability requires more synchronization between
processes and hence additional overhead. Such overhead is undesirable, especially
if events occur only sporadically.
8.2.2
Semantic Model
Denotational semantics is often preferred to capture the intended functionality of a
process network or to define the functional semantics of a system or programming
language implementing process networks, without specifying unnecessary imple-
mentation details. The operational semantics on the other hand allows reasoning
possible, but hides the parallelism of the model. The detailed operational semantics
8.2.3
Communicating Events
Processes or actors in data-flow graphs communicate via FIFO channels. We want
to add communication of events and we have to decide what communication
mechanism is used for events. It is often the case that what is perceived by a
lower level process as an event, is considered to be part of streaming by higher
level processes. For instance, a video decoder is decoding a stream of video frames
and header information for every frame is an integral part of the data stream. For
the lower level frame decoder processes, the frame header information is seen as
an event that initializes the component to deal with the specific parameters of the