Skip to content

Identity and Timing Model

Model Summary

Building on the JT-NM Reference Architecture, the model uses Sources and Flows.

A Source (identified by a Source ID) is an easy and convenient way to refer to a specific piece of time-based content (some specific information with a specific relationship to time) in a manner that is agnostic to:

  • the means used to express / communicate it (for example, multiple different video codecs might be used for one Source).
  • the exact quality / accuracy of the expression.
  • the exact placement of data at points in time (for example, multiple different video frame rates might be represented by a single Source).

A Flow (identified by a Flow ID) provides a way to refer to a specific expression of a Source. Each Flow:

  • contains data of a specific data type. That is, the data is encoded (and must be interpreted) in a specific way (for example, a Flow might use a specific video codec with a specific configuration).
  • places the data at a specific set of points in time.

  • achieves a specific quality / accuracy of expression of the Source.

In summary, a Flow defines a timed-data interface to be used when handling the data. This interface might be implemented in different ways: for example, using different containers or transports for the interchange of the data. These different implementations are called Flow Representations.

The diagram below illustrates an example of the progression from Source to Flow Representation in terms of an increasingly specific representation of some content:

Summary diagram

The diagrams below illustrate examples of the progression from Source to Flow Representation in terms of the hierarchy of representation:

Instance diagram

Instance diagram

Model Definitions

The main entities of the model and their relationships are summarised by the following UML class diagram:

UML

Timing (including Time Values)

Time in the model is assumed to be linear.

A Time Value is a precise (zero duration) instant in time. A Time Value is measured in seconds relative to a zero-point (note: this does not need to be an integer number of seconds).

A Time Context establishes a common zero-point: within a specified Time Context all events at a given Time Value are considered to be synchronised.

Further explanation is provided about timing

Flow (including Data Objects and Entrys)

A Flow:

  • has an ID.
  • consists of zero or more Entrys. Each Entry associates a Time Value with a Data Object.

Additionally:

  • All of the Data Objects in a Flow have the same data type. That is, for all of the Data Objects in a Flow the same means of encoding (and also interpreting) the data is used.
  • All of the Time Values are in the same Time Context.

Further explanation is provided about Flows

Notes on the relationship between Grains and Entrys

Flow Representation

  • A Flow Representation is a concrete implementation of exactly one Flow. It is a practical communication of the Data Objects and Time Values defined by this Flow.
  • For a Flow, any differences in the data communicated by its Flow Representations must be considered negligible for the intended purpose.

Further explanation is provided about Flow Representations

Source

  • A Source has an ID.
  • Each Flow is an expression of exactly one Source.
  • All the Flows that are expressions of a Source:
  • "appear the same" when rendered / decoded (other than differences in quality / accuracy).
  • use the same Time Context.

Further explanation is provided about Sources