This file is raw output from pdftotext and may not be ideal for distribution. If you are a maintainer for Hackipedia, please sit down when you have time and clean this text version up. Source PDF: /mnt/fw-js/docs/ATSC/A-93 Synchronized-Asynchronous Trigger.pdf Like all conversions the text below should be fully readable as UTF-8 unicode text. --------------------------------------------------------------- Doc. A/93 1 April 2002 ATSC Standard: Synchronized/Asynchronous Trigger Advanced Television Systems Committee 1750 K Street, N.W. Suite 1200 Washington, D.C. 20006 ATSC Synchronized/Asynchronous Trigger 1 April 2002 The Advanced Television Systems Committee, Inc., (ATSC) is an international, non-profit membership organization developing voluntary standards for the entire spectrum of advanced television systems. Specifically, ATSC is working to coordinate television standards among different communications media focusing on digital television, interactive systems, and broadband multimedia communications. ATSC is also developing digital television implementation strategies and presenting educational seminars on the ATSC standards. ATSC was formed in 1982 by the member organizations of the Joint Committee on InterSociety Coordination (JCIC): the Electronic Industries Association (EIA), the Institute of Electrical and Electronic Engineers (IEEE), the National Association of Broadcasters (NAB), the National Cable Television Association (NCTA), and the Society of Motion Picture and Television Engineers (SMPTE). Currently, there are approximately 180 members representing the broadcast, broadcast equipment, motion picture, consumer electronics, computer, cable, satellite, and semiconductor industries. ATSC Digital TV Standards include digital high definition television (HDTV), standard definition television (SDTV), data broadcasting, multichannel surround-sound audio, and satellite direct-to-home broadcasting. 2 ATSC Synchronized/Asynchronous Trigger 1 April 2002 Table of Contents 1. SCOPE ....................................................................................................................................................... 5 1.1 Organization 5 2. REFERENCES ........................................................................................................................................... 5 2.1 Normative References 5 2.2 Informative References 6 3. DEFINITIONS AND STRUCTURES........................................................................................................... 6 3.1 Compliance Notation 6 3.2 Acronyms and Abbreviations 6 3.3 Global Terms 7 3.4 Section and Data Structure Syntax Notation 9 3.5 Reserved Fields 9 4. BACKGROUND ....................................................................................................................................... 10 4.1 Requirements 10 4.2 Temporal concepts used in this standard 11 5. THE FRAMEWORK ................................................................................................................................. 12 5.1 Triggers 12 5.1.1 Identification 12 5.1.2 Encapsulation 12 5.1.3 Equivalence 12 5.2 Targets 12 5.2.1 Target Encapsulation 12 5.2.2 Target Acquisition Time 12 5.2.3 Target Acquisition 12 5.2.4 Target Reference 13 5.2.5 Target Availability 13 5.3 Events 13 6. PAYLOAD SYNTAX AND SEMANTICS.................................................................................................. 13 6.1 Event Information Structure 14 6.2 Semantic Definition of Fields in Event Information Structure 15 6.3 Collision Avoidance 16 7. SYNCHRONIZED TRIGGERS ................................................................................................................. 16 7.1 Buffer Model 16 7.2 PTS Uniqueness 16 7.3 Program Map Table (PMT) and Service Location Descriptor (SLD) 17 7.4 System Time Clock and Activation 17 3 ATSC Synchronized/Asynchronous Trigger 1 April 2002 7.5 Protocol Encapsulation 17 7.6 Message Encapsulation Constraints 18 7.6.1 MPEG-2 Transport Stream Packet Constraints 18 7.7 Insertion and Delivery 18 7.7.1 Timeline Discontinuities 18 7.7.2 Value of the Presentation Time Stamp Field 18 8. ASYNCHRONOUS TRIGGERS ............................................................................................................... 18 8.1 Program Map Table (PMT) 18 8.2 Protocol Encapsulation 19 8.3 Buffer Model 19 8.4 Activation 19 8.5 Message Encapsulation Constraints 19 9. SIGNALING.............................................................................................................................................. 19 9.1 Trigger Taps 19 9.1.1 Content Type Descriptor 19 9.1.2 Signaling of triggers in the DST 20 9.2 Acquisition Descriptor 20 Annex A: Triggers (Informative) 1. OVERVIEW .............................................................................................................................................. 22 1.1 Activation 23 1.2 Content Creation Ramifications 23 1.3 Timing examples 24 List of Figures and Tables Figure 4.1 Trigger time line. 11 Figure A.1 Overall trigger structure. 22 Figure A.2 Simplified ATSC trigger timing diagram. 23 Table 6.1 Event Information Structure Syntax 14 Table 6.2 Definition of Event Type 15 Table 6.3 Definition of the Target Type Field 15 Table 9.1 Content Type Descriptor 20 Table 9.2 Acquisition Descriptor 21 4 ATSC Synchronized/Asynchronous Trigger 1 April 2002 ATSC Standard: Synchronized/Asynchronous Trigger 1. SCOPE This document defines a Standard for the transmission of synchronized data elements, and synchronized and asynchronous events, building on the synchronized delivery mechanisms of ATSC Standard A/90. This Standard specifically enables the synchronized delivery of data modules through the decoupling of the timing from the delivery of the data element. It also enables the delivery of events to receivers, including application-defined events. This standard was prepared by the Advanced Television Systems Committee (ATSC) Technology Group on Distribution (T3). The document was approved by the members of the ATSC on April 1, 2002. 1.1 Organization This document is organized as follows: Section 1 — This general introduction. Section 2 — References and relevant documents. Section 3 —Definition of terms, acronyms and abbreviations used in this document. Section 4 — An informative introduction to triggers and background information. Section 5 — The core trigger framework, normative definitions, and constraints. Section 6 — The syntax and semantics of the trigger message. Section 7 — The specific requirements for synchronized triggers. Section 8 — The specific requirements for asynchronous triggers. Section 9 — Normative descriptor signaling. Annex A — An informative discussion of trigger properties. 2. REFERENCES 2.1 Normative References The following documents are normative for this Standard. These references form a part of this standard as explicitly constrained and supplemented herein. In the event of conflict among the below references, this ATSC Standard takes precedence and Ref [1] takes precedence over the other normative references below. 1) ATSC Standard A/90 (2000): ATSC Data Broadcast Standard, Advanced Television Systems Committee, Washington, D.C. 2000. 2) ATSC Standard A/65A (2000): Program and System Information Protocol for Terrestrial Broadcast and Cable, Advanced Television Systems Committee, Washington, D.C., 2000. 3) ATSC Standard A/53 (1995): ATSC Digital Television Standard, Advanced Television Systems Committee, Washington, D.C. 1995. 4) ITU-T Rec. H.222.0 | ISO/IEC 13818-1:1996, Information Technology — Generic coding of moving pictures and associated audio — Part 1: Systems. 5 ATSC Synchronized/Asynchronous Trigger 1 April 2002 5) ISO/IEC 13818-6:1998, Information Technology — Generic coding of moving pictures and associated audio — Part 6: Extensions for Digital Storage Media command & Control, Chapter 2, 4, 5, 6, 7, 9 and 11. 6) ISO/IEC 13818-6, 2000, Amendment 2: Additions to support synchronized download services, opportunistic data services, and resource announcement in broadcast and interactive services. 7) SMPTE 343M, Declarative Data Essence - Local Identifier (lid:) URI Scheme, Society of Motion Picture and Television Engineers, White Plains, N.Y. 8) IETF RFC 2045, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, Section 5. 9) IETF RFC 2616, Hypertext Transfer Protocol — HTTP/1.1. 10) IETF RFC 2396, Uniform Resource Identifiers: Generic Syntax 2.2 Informative References The following documents are informative for this Standard: 11) ATSC Recommended Practice A/91 (2001): ATSC Data Broadcast Standard Implementation Guidelines, Advanced Television Systems Committee, Washington, D.C., 2001. 12) ATSC Informative Document IS-151 (1999): Implementation of Data Broadcasting in a DTV Station, Implementation Subcommittee, Advanced Television Systems Committee, Washington, D.C., 1999. 13) ATSC Technology Group Report T3-548r1 (2001): ATSC Usage of the MPEG-2 Registration Descriptor, Technology Group on Distribution, Advanced Television Systems Committee, Washington, D.C., 2001. 14) ATSC Technology Group Report T3-549 (2001): Collision Avoidance for Private Fields and Ranges, Technology Group on Distribution, Advanced Television Systems Committee, Washington, D.C., 2001. 3. DEFINITIONS AND STRUCTURES 3.1 Compliance Notation As used in this document, shall denotes a mandatory provision of the standard. Should denotes a provision that is recommended but not mandatory. May denotes a feature whose presence does not preclude compliance, that may or may not be present at the option of the implementer. 3.2 Acronyms and Abbreviations The following acronyms and abbreviations are used within this specification: bslbf bit serial, leftmost bit first CRC cyclic redundancy check DAU data access unit DEB data elementary stream buffer DES data elementary stream 6 ATSC Synchronized/Asynchronous Trigger 1 April 2002 DET data event table DSM-CC digital storage media command and control DST data service table EIT event information table ES elementary stream MPEG Moving Picture Experts Group MRD MPEG-2 registration descriptor PES packetized elementary stream PID packet identifier PMT program map table PSIP Program and System Information Protocol TS transport stream uimsbf unsigned integer, most significant bit first VCT virtual channel table 3.3 Global Terms The following terms are used throughout this document. action A trigger semantic that implies some behavior on the receiver without any associated data item. activation The process of enabling the target referenced by a trigger which may cause rendering. For a trigger referring to graphic data, activation might cause the rendering of a graphical object on the screen. For a trigger referring to audio data, activation might cause the emission of the appropriate sounds. activation time The System Time Clock instant at which the target of a trigger is activated. application identifier A globally unique identifier of an application that is used for binding triggers to applications. asynchronous trigger A structure transmitted within an MPEG-2 transport stream containing a reference to a target and some opaque user data bytes which may also include a reference to an application that is intended to process it. ATSC Advanced Television Systems Committee, the committee responsible for the coordination and development of voluntary technical standards for advanced television systems. CRC The cyclic redundancy check used to verify the correctness of the data. data access unit (DAU) The contiguous portion of a synchronized or synchronous data MPEG-2 Program Element associated with a particular MPEG-2 Presentation Time Stamp. data module The fundamental data entity resulting from the in-order re-assembly of the payload of the DSM-CC downloadDataBlock messages pertaining to the same downloadId, moduleId, and moduleVersion field values. decoder An embodiment of a decoding process. decoding (process) The process defined in the ATSC Digital Television Standard [3] that reads an input coded bit stream and outputs decoded pictures, audio samples, or data objects. 7 ATSC Synchronized/Asynchronous Trigger 1 April 2002 earliest target acquisition time The target acquisition time of the first instance of a target transmitted by means of one of the asynchronous delivery protocols specified in [1]. earliest activation time The earliest activation time is the earliest System Time Clock instant at which a specific target is activated using all emitted triggers (both asynchronous and synchronized). elementary stream (ES) A generic term for one of the coded video, coded audio, or other coded bit streams. One elementary stream is carried in a sequence of PES packets with one and only one stream_id. event A trigger that contains user-defined payload which has meaning to the receiver. latest target acquisition time The target acquisition time of the last instance of a target transmitted by means of one of the asynchronous delivery protocols specified in [1]. latest activation time The latest activation time is the latest System Time Clock instant at which a specific target is activated using all emitted triggers (both asynchronous and synchronized). maximum target acquisition period The period between the earliest target acquisition time and the latest activation time for a specific target using all emitted triggers. minimum target acquisition period The time period between the latest possible target acquisition time and the earliest possible activation time for a specific target. MPEG Refers to standards developed by the ISO/IEC JTC1/SC29 WG11, Moving Picture Experts Group. MPEG may also refer to the Group. MPEG-2 Refers to the collection of ISO/IEC standards 13818-1 through 13818-6. object Any arbitrary data item available to a receiver. packet A packet is a set of contiguous bytes consisting of a header followed by its payload. packet identifier (PID) A unique integer value used to associate MPEG-2 Transport Stream packets of an MPEG-2 Program Element in a single or multi-program transport stream. payload Payload refers to the bytes following the header byte in a packet. pre-load data DAU’s or objects accessible to the receiver delivered in advance of their activation by subsequent triggers. program clock reference (PCR) A time stamp in the transport stream from which decoder timing is derived. PCR discontinuity a time point at which the PCR changes by more than one unit. program A collection of program elements. Program elements may be elementary streams. Program elements need not have any defined time base; those that do have a common time base and are intended for synchronized presentation. The term program is also used in the context of a “television program” such as a daily-scheduled news broadcast. In this specification the term “EIT event” is used for the latter to avoid ambiguity. program element A generic term for one of the elementary streams or other data streams that may be included in an ISO/IEC 13818-1 (MPEG-2) Program. The MPEG-2 Transport Stream packets conveying a Program Element are referenced by a unique PID value in the MPEG-2 Program. PTS Presentation time stamp used to indicate when a referenced target is activated. 8 ATSC Synchronized/Asynchronous Trigger 1 April 2002 reserved This term, when used in clauses defining the coded bit stream, indicates that the field may be used in the future for Digital Television Standard extensions. All reserved bits shall be set to “1”. service location descriptor (SLD) A descriptor specifying the stream type, PID, and language code for some of the MPEG-2 Program Elements comprising a virtual channel [2]. synchronized trigger A structure transmitted within an MPEG-2 transport stream containing a the same information as an asynchronous trigger but with the addition of a PTS. system time clock (STC) The clock in the receiver derived from the arriving PCR values that matches the clock in the emission system. target Pre-load data that refers to a DAU or a data object available to a receiver. target acquisition time The time instant at which the last byte of a target leaves the Transport System Target Decoder for the asynchronous MPEG-2 Program Element conveying the target. transport stream Refers to the MPEG-2 transport stream syntax for the packetization and multiplexing of video, audio, and data signals for digital broadcast systems [4]. transport system target decoder (T-STD) A hypothetical reference model defined in [1] of a decoding process used to describe the semantics of the Digital Television Standard multiplexed bit stream. transport stream packet header The leading fields in a transport stream packet up to and including the continuity_counter field. trigger A collective name referring to either asynchronous or synchronized trigger. virtual channel A virtual channel is the designation, usually a number, that is recognized by the user as the single entity that will provide access to an analog TV program or a set of one or more digital MPEG-2 Program Elements. It is called “virtual” because its identification (name and number) may be defined independently from its physical location. 3.4 Section and Data Structure Syntax Notation Tables defined in this standard conform to the generic private section syntax defined in [4] and the DSM-CC section format defined in [5]. This document contains symbolic references to syntactic elements. The notation used is distinctive to aid the reader in recognizing elements that are the same as they are in referenced standards. These references are typographically distinguished by the use of a different font (e.g., restricted), may contain the underscore character (e.g., sequence_end_code), and may consist of character strings that are not English words (e.g., dynrng). When syntactic elements from [5] are used the form used therein is retained (e.g. thisIsString). When elements from [1], [2], or other existing ATSC Standards are used the notation form “sequence_end_code” is used. Where an element has a difference from a similar term in a reference, a variation in the form—which may be a combination of the two styles—is used. New elements have an entirely new name. 3.5 Reserved Fields — Fields in this Standard marked “reserved” shall not be assigned by the user, but shall reserved be available for future use. Decoders are expected to disregard reserved fields for which no 9 ATSC Synchronized/Asynchronous Trigger 1 April 2002 definition exists that is known to the decoder. Each bit in the fields marked “reserved” shall be set to one until such time as they are defined and supported. user_private — Indicates that the field is not defined within the scope of this Standard. The owner of the field, and hence the entity defining its meaning, is derived via its context within a message. zero — Indicates that the bit or bit field shall have the value zero. 4. BACKGROUND This standard addresses the need to synchronize data with video and to deliver events to receivers. This standard could serve as the transport-layer infrastructure for applications such as the display of a data advertisement (e.g., a web-page that allows purchasing) at specific time points within the video. The key technical issue addressed by the ATSC trigger design is to remedy the lack of a guarantee for a continuous system time clock for the accurate frame/field synchronization of data requiring long decoding times. This standard allows an arbitrary complex data access unit (DAU) to be activated by an arbitrary simplified receiver to achieve tight synchronization in the context of a discontinuous time line. The ATSC Data Broadcast Standard [1] specifies that non-streaming, synchronized data access units are encapsulated with the synchronized download protocol. This encapsulation carries a Presentation Time Stamp (PTS) with each DAU, which indicates the time of DAU activation. The model standardized in [1] is not guaranteed to achieve the desired synchronization. For example, a problem occurs when DAUs carrying complex data objects having long decoding times are combined with timeline (PCR) discontinuities. In this circumstance, there can be ambiguity in the meaning of the PTS value in the encapsulation. The synchronized trigger is designed to address this situation, as well as other complications. Additional informative statements relative to the generation, the transmission, and the acquisition of triggers are provided in Annex A of this document. 4.1 Requirements The intention of this standard was to enable frame-level (“tight”) synchronization of arbitrary Data Access Units (DAUs) as defined in [1] on the ATSC transport. To achieve this goal, the design of the synchronized trigger standard was guided by the following requirements: 1) The overall trigger design should not preclude long term delays (days or months) between transport of the target and the trigger. 2) Triggers should be compatible with, and not adversely impact, synchronization of DAUs conveyed in synchronized MPEG-2 Program Elements. 3) Triggers shall be implemented in such a way as to not be subjected to any problems with MPEG-2 PCR discontinuities. 4) Triggers may reference objects and actions in addition to related DAUs (all targets). 5) Triggers shall have a mechanism to allow them to be hidden from unauthorized applications (for example, commercial detection). 10 ATSC Synchronized/Asynchronous Trigger 1 April 2002 6) The design should be transport independent provided it does not negatively impact ATSC transport functionality. 7) Targets shall be signaled with a unique invariant identifier. 8) The objects and related DAUs shall be stored according to some application buffer model(s) until the trigger is received and processed. 9) A trigger shall reference one and only one target. 10) A goal is for decoding time associated with trigger to be minimal. 11) Triggers have no time sequence restrictions with respect to objects and actions. 12) The trigger structure shall permit maintenance of the proper time relationships between the trigger and the target by re-multiplexors. 13) Related DAU’s shall precede triggers in time. 14) Triggers shall fit in a single MPEG-2 Transport Stream packet. 15) The delivery and processing of triggers shall be such that there is the capability of it being within N (where N is small) frames of any PCR timeline discontinuity. 4.2 Temporal concepts used in this standard Figure 4.1 illustrates the various temporal concepts introduced by this standard. The pre-load data, referred to as target, is considered to be acquired, and the trigger is regarded as received, only after it leaves the smoothing buffer of the Transport System Target Decoder (T-STD) associated with the MPEG-2 Program Element that carries it. A synchronized trigger and its target are considered activated when the PTS value matches for the first time, the 90 kHz portion of the receiver System Time Clock. The acquisition period, during which the receiver is expected to acquire and decode the target, is the period between the time the target leaves its associated T-STD and the time of activation. Unpredictable behavior may occur in case the target is not fully decoded and ready at the time of activation. Start Trigger End Trigger Transmission Transmission Start Target End Target Target Leaves Trigger Leaves 1st Time Transmission Transmission T-STD smoothing buffer STC=PTS Time Time Target Trigger Activation Acquisition Reception Time Time Time Acquisition Period Figure 4.1 Trigger time line. 11 ATSC Synchronized/Asynchronous Trigger 1 April 2002 5. THE FRAMEWORK This standard supports both synchronized and asynchronous trigger types. The particulars of synchronized trigger types are normatively defined in Section 7, and the particulars of asynchronous trigger types are defined in Section 8. This section contains normative definitions and constraints common to both types of triggers. Constraints applicable to a single trigger type can be found in Sections 7 and 8. 5.1 Triggers 5.1.1 Identification Triggers shall have a unique triplet of downloadId, moduleId, moduleVersion within the program element. 5.1.2 Encapsulation Triggers are conveyed as data modules in the download protocol as defined in [1]. This means that triggers shall be carried in the blockDataByte field(s) of the downloadDataBlock (DDB) message as further defined in Sections 7 and 8 of this standard. A data module shall contain exactly one trigger. Trigger payloads shall be structured as specified in Section 6 of this standard. Triggers shall only be conveyed by means of a one-layer control Download protocol. 5.1.3 Equivalence Triggers carrying a given moduleId value, downloadId value, and moduleVersion value shall be considered equivalent for purposes of activation.1 This constraint may be useful when multiple instances of the same triggers are emitted in response to the need by receivers to acquire one of these triggers upon random access tuning. 5.2 Targets A target is the pre-load data that refers to a DAU available to a receiver. 5.2.1 Target Encapsulation Targets may be carried as data modules in the non-flow-controlled download protocol or in the data carousel protocol [1]. For this situation, this means that the target bytes are encapsulated in the blockDataByte fields of asynchronous downloadDataBlock (DDB) messages as defined in Chapter 7 of [1]. 5.2.2 Target Acquisition Time The target acquisition time shall be earlier than the earliest trigger reception time. The target shall be signaled for purposes of acquisition as specified in Section 9 of this standard. 5.2.3 Target Acquisition Receivers should not purge the target at anytime during the maximum target acquisition period, where the maximum target acquisition period is the period between the earliest target acquisition 1 As stated in Section 7.2 for synchronized triggers, all triggers transmitted on the same PID shall have distinct PTS values. This means that the concept of equivalence of triggers is primarily useful for asynchronous triggers. 12 ATSC Synchronized/Asynchronous Trigger 1 April 2002 time and the latest activation time among all emitted triggers for that target. The maximum target acquisition period shall be signaled using the acquisition directive specified in Section 9 of this standard. 5.2.4 Target Reference A trigger shall reference at most one target. The reference to a target shall not be modified during the maximum target acquisition period. The content of the target, however, may be updated subject to target acquisition time constraints specified in this standard and as specified in [1]. 5.2.5 Target Availability The target should be decoded and available by the activation time. Unpredictable behavior may occur in the event that the target is not available by the activation time. 5.3 Events When there is no explicit target, a trigger may be used to deliver an event to a receiver. An event is a trigger that contains user-defined payload which has meaning to the receiver. An event implements an action. 6. PAYLOAD SYNTAX AND SEMANTICS The event_info structure of a trigger shall represent the payload of a data module as defined in chapter 7 of [1]. 13 ATSC Synchronized/Asynchronous Trigger 1 April 2002 6.1 Event Information Structure Table 6.1 Event Information Structure Syntax Syntax No. of Bits Format event_info() { event_type 8 uimsbf app_id_byte_length 16 uimsbf if(app_id_byte_length > 1) { app_id_description 16 uimsbf for(i=0;i< app_id_byte_length-2;i++) { app_id_byte 8 bslbf } } target_type 8 uimsbf target_length 16 uimsbf if (target_type == 0x01) { downloadId 16 uimsbf groupId 16 uimsbf moduleId 16 uimsbf } else if (target_type == 0x02) { tap_id 16 uimsbf } else if (target_type == 0x03) { for(i=0; i