|
Enhanced Content Specification
Join the ATVEF!
Status of This Document The Advanced Television Enhancement Forum (ATVEF) is a cross-industry group formed to specify a single public standard for delivering interactive television experiences that can be authored once using a variety of tools and deployed to a variety of television, set-top, and PC-based receivers. This document specifies the content formats and delivery mechanisms that provide the kind of enhanced television experience that will meet the needs of the industry. The Enhanced Content Specification is a foundation specification, defining fundamentals necessary to enable creation of HTML-enhanced television content so that it can be reliably broadcast across any network to any compliant receiver. The scope is narrowly defined as we strive to build agreement across the industries that are key to the success of enhanced television. For additional information, please visit the ATVEF Web site at http://www.atvef.com. Abstract The ATVEF specification for enhanced television programming uses existing Internet technologies. It delivers enhanced TV programming over both analog and digital video systems using terrestrial, cable, satellite and Internet networks. The specification can be used in both one-way broadcast and two way video systems, and is designed to be compatible with all international standards for both analog and digital video systems. The ATVEF specification consists of three parts:
Contents Overview Appendices A: Examples of Integrating TV with Web Pages The ATVEF Specification was designed by a consortium of broadcast and cable networks, consumer electronics companies, television transport operators and technology companies to define a common, worldwide specification for enhanced television programming. A central design point was to use existing standards wherever possible and to minimize the creation of new specifications. The content creators in the group determined that existing web standards, with only minimal extensions for television integration, provide a rich set of capabilities for building enhanced TV content in today's marketplace. The ATVEF specification references full existing specifications for HTML, ECMAScript, DOM, CSS and media types as the basis of the content specification. Section one of this document lists the minimal requirements for content support for compliant receivers. The specification is not a limit on what content can be sent, but rather provides a common set of capabilities so that content developers can author content once and play on the maximum number of players. Another key design goal was to provide a single solution that would work on a wide variety of networks. ATVEF is capable of running on both analog and digital video systems as well as networks with no video at all. The specification also supports transmission across terrestrial (over the air), cable, and satellite systems as well as over the Internet. In addition, it will also bridge between networks - for example data on an analog terrestrial broadcast must easily bridge to a digital cable system. This design goal was achieved through the definition of a transport-independent content format and the use of IP as the reference binding. Since IP bindings already exist for each of these video systems, ATVEF can take advantage of this work. Section two defines two transports - one for broadcast data and one for data pulled through a return path. While the ATVEF specification has the capability to run on any video network, a complete specification requires a specific binding to each video network standard in order to ensure true interoperability. Section three includes two bindingsthe reference binding to IP and the example NTSC binding. The IP binding is the reference binding both because it provides a complete example of ATVEF protocols and because most networks support the IP protocol. The NTSC binding is included as an example of an ATVEF binding to a specific video standard. It is not the role of the ATVEF group to define bindings for all video standards. The appropriate standards body should define the bindings for each video standard - PAL, SECAM, DVB, ATSC and others. There are many roles in the production and delivery of television enhancements. This document refers to three key roles: content creator, transport operator, and receiver. The content creator originates the content components of the enhancement including graphics, layout, interaction and triggers. The transport operator runs a video delivery infrastructure (terrestrial, cable, satellite or other) that includes a transport for ATVEF data. The receiver is a hardware and software implementation (television, set-top box, or personal computer) that decodes and plays ATVEF content. A particular group or company may participate as one, two or all three of these roles. The ATVEF content specification provides content creators with a reliable definition of mandatory content support on all compliant receivers. In addition, any other kind of data content can be sent over ATVEF transport including HTML, VRML, Java, or even private data files. When a content creator wants to broadcast an enhancement to play on the maximum number of receivers, the data should conform to the content specification. In the case where the content author knows the specific capabilities of the target receiver, data can be sent over ATVEF transport that is outside the content specification including DHTML, Java, or even private data files. In the ATVEF specification, there is one defined content specification: level 1.0. The foundation for ATVEF content is existing web standards. Mandatory support is required for the following standard specifications:
Note: Note: Receivers are required to supply 1KB for session cookies. Cookies support is not required to be persistent when a receiver is turned off. Because ATVEF supports one-way broadcast of data, content creators cannot customize the content for each receiver as they do today with two-way HTTP. ATVEF specifies the following base profile of supported MIME types that must be supported in each receiving implementation:
Support for the following widely used MIME types is currently recommended in all receiving implementations for compatibility with existing content. Support is not required and content creators should take into account that the types may not be supported.
Please see Appendix B for additional information on content type support. 1.1.3 Integrating TV with Web Pages Use the Examples of 1.1.4 The Trigger Receiver Object TV enhancement HTML pages that expect to have triggers sent to them via an ATVEF
trigger stream must use the HTML Sample instantiation:
Properties: Triggers are real-time events delivered for the enhanced TV program. Receiver implementations will set their own policy for allowing users to turn on or off enhanced TV content, and can use trigger arrival as a signal to notify users of enhanced content availability. Triggers always include an URL, and may optionally also include a human-readable name, an expiration date, and a script. Receiver implementors are free to decide how to turn on enhancements and how to enable the user to choose among enhancements. Triggers that include a "name" attribute may be used to initiate an enhancement either automatically, or with user confirmation. The initial top-level page for that enhancement is indicated by the URL in that trigger. Triggers that do not include a "name" attribute are not intended to initiate an enhancement, but should only be processed as events which affect (through the "script" attribute) enhancements that are currently active. If the URL matches the current top-level page, and the expiration has not been reached, the script is executed on that page through the trigger receiver object (see Trigger Receiver Object). When testing for a match, parameters and fragment identifiers (i.e. characters in the URL including and following the first "?" or "#" character) in an URL are ignored. Triggers are text based, and their syntax follows the basic format of the EIA-746A standard (7-bit ASCII, the high-order bit of the first byte must be "0"). Note: The triggers follow the syntax of EIA-746A, but may be transported in multicast IP packets or other transport rather than using the EIA-608 system. All triggers defined in this version of ATVEF are text-based and must begin with ASCII <. All other values for the first byte are reserved. These reserved values may be used in the future to signal additional non-text based messages. Receivers should ignore any trigger that does not begin with the < in the first byte. The general format for triggers (consistent with EIA-746A) is a required URL followed by zero or more attribute/value pairs and an optional checksum:
<url> [attr1: val1][attr2:val2]...[attrn:valn][checksum]
The following attribute/value pairs are defined:
Other attributes could be defined at a later date. However, all other single character attribute names are reserved. Receivers should ignore attributes they do not understand. Using the description above, all the following are valid trigger strings:
Note: If a trigger does not contain a 1.1.6 The Local Identifier URL Scheme ("lid:") Content delivered by a one-way broadcast is not necessarily available on-demand, as it is when delivered by HTTP or FTP. For such content, it is necessary to have a local name for each resource. To support cross-references within the content (for use in hyperlinks or to embed one piece of content in another), these local names must be location-independent. The The syntax of the
The While all compliant implementations of enhanced TV receivers support absolute URLs
within the UHTTP header and broadcast triggers, some implementations may not correctly
process absolute URLs using the Some examples:
The first example uses a RFC 822
message-id style unique id, the second one uses a domain name as a unique identifier, and
the third uses a text encoding of an UUID. Each is a valid mechanism for describing a Receivers must be able to support one megabyte (1 MB) of cached simultaneous content. Content creators who want to reach the maximum number of receivers should manage their content to require a high-water mark of simultaneous cached content of 1 MB or less. The specific cache size required for each enhancement must be specified in the announcement.
In the ATVEF spec, there is only one defined content
specification--level 1.0. The content level of the client is available via ECMAScript using the The display of enhanced TV content consists of two steps: delivery of data resources (e.g. HTML pages) and display of named resources synchronized by triggers. All forms of ATVEF transport involve data delivery and triggers. The capability of networks for one-way and/or two-way communication drives the definition of two models of transport. ATVEF defines two kinds of transport. Transport A is for delivery of triggers by the forward path and the pulling of data by a (required) return path. Transport B is for delivery of triggers and data by the forward path where the return path is optional. 2.1 Transport Type A: Return-path Data Most broadcast media define a way for data service text to be delivered with the video signal. In some systems, this is called closed captioning or text mode service; in other systems, this is called teletext or subtitling. For the sake of this discussion, triggers delivered over such mechanisms will be generically referred to as broadcast data triggers. Some existing broadcast data services provide a mechanism for trigger delivery, but not resource deliver, due to limited bandwidth. Content creators may encode broadcast data triggers using these. Broadcast data streams only contain broadcast data triggers so there is no announcement or broadcast content delivery mechanism. Because there are no announcements, the broadcast data service stream is considered to be implicitly announced as a permanent session. In addition to the other attributes used in triggers (see section
1.1.5), ATVEF transport type A triggers must contain an additional attribute, Television transport operators should use the standard mechanisms for broadcast data trigger transmission for the appropriate medium (EIA, ATSC, DVB, etc.). It is assumed that when the user tunes to a TV channel, the receiver locates and delivers broadcast data triggers associated with the TV broadcast. Tuning and decoding broadcast data triggers is implementation and delivery standard specific and is specified in the appropriate ATVEF binding. A mechanism must be defined for encoding broadcast data triggers for each delivery standard. For example in the NTSC binding, the broadcast data trigger syntax is encoded on the Text2 (T2) channel of line 21 using the EIA-746A system. Because there is no content delivery system, broadcast data triggers usually require two-way Internet connections to fetch content over HTTP. Note: Television transport operators and content creators need to plan to handle the scalability issues associated with large numbers of HTTP requests responding at roughly the same time to broadcast triggers. 2.2 Transport Type B: Broadcast Data Transport type B is for true broadcast of both the resource data and triggers. As such, transport type B can run on TV broadcast networks without Internet connections, unlike transport type A. An additional Internet connection allowing a return path can be added to provide two way capabilities like e-commerce or general Web browsing. Transport type B uses announcements to offer one or more enhancements of a TV channel. An announcement specifies the location of both the resource stream (the files that provide content) and the trigger stream for an enhancement. Multiple enhancements can be offered as choices that differ on characteristics like language or required cache size or bandwidth. In addition to locating the files and trigger streams, announcements must be able to provide the following information: language, start and stop times, bandwidth, peak storage size needed for incoming resources, ATVEF content level the resources represent, an optional UUID that identifies the content, an optional string that identifies the broadcast channel for systems that send ATVEF content separately from the audio/video TV broadcast. The receiver must be able to start receiving data from only the description broadcast in the announcement. Transport type B also requires a protocol that provides for delivery of resources. In
one way broadcast systems, this is a one way resource transfer protocol that allows for
broadcast delivery of resources. The resource delivered, no matter what the resource
transfer method, must include HTTP headers to package the file as described in Appendix C on the resource transfer protocol. All resources delivered
using resource transfer are named using URLs. These resources are then stored locally, and
retrieved from this local storage when referenced using this same URL. All receivers must
support local storage and retrieval of content using the Transport type B uses the same syntax for triggers as type A, described in section 1.1.5. The "ATVEF Reference Binding for IP Multicast" describes three protocols based on IP multicast transmission for each of the three data streams: 1) announcements; 2) triggers; and 3) one-way resource transfer. 2.3 Simultaneous Support of Transports A and B A single video program may contain both transport type B (e.g. IP) and transport type A (e.g. broadcast data triggers) simultaneously. This is advantageous in order to target both IP-based receivers as well as receivers that can only receive broadcast data triggers. Receivers may choose to support only IP based trigger streams and ignore broadcast data triggers, or receivers may support broadcast data triggers in the absence of IP based triggers, or receivers may support broadcast data triggers and IP based triggers simultaneously. For receivers that provide simultaneous support, ATVEF specifies the following behavior, which is identical to the treatment of IP based triggers on an active stream. When a broadcast data trigger is encountered, its URL is compared to the URL of the current page. If the URLs match and the trigger contains a script, the script should be executed. If the URLs match but there is no script, the trigger is considered a re-transmission of the current page and should be ignored. If the URLs do not match and the trigger contains a name, the trigger is considered a new enhancement and may be offered to the viewer. If the URLs do not match and there is no name, the trigger should be ignored. An ATVEF binding is a definition of how ATVEF runs on a given network. The binding may support either or both Transport types A and B. Having one standard ATVEF binding for each network is necessary so that receivers and broadcast tools can be developed independently. The measure of a sufficient ATVEF binding is that all the data needed to build a compliant, interoperable receiver for a given network should be contained in the ATVEF spec, the network spec and the ATVEF network binding, if needed. Put another way, the ATVEF binding provides the glue between the network spec and the ATVEF spec, in cases where the network specification doesn't contain all the necessary information. ATVEF defines the Binding to IP as the reference binding. This is because IP is available to run over virtually any kind of network in existence. That means that one approach to building an ATVEF binding for a particular network is to simply define how IP is run on that network associated with a particular video program. The IP Binding can also be used as a model for a complete, compliant and efficient ATVEF binding. This section also includes an example of a binding to a specific network standard--the ATVEF Binding to NTSC. This binding can be used as a model for how to build an ATVEF binding to a specific video standard. The example NTSC binding defines transport type A using an NTSC-specific method and defines transport type B using the IP reference binding. It is not the role of the ATVEF group to define bindings for all video standards. The appropriate standards body should define the bindings for each video standard--PAL, SECAM, DVB, ATSC and others. 3.1 ATVEF Binding to IP Multicast (Reference Binding) IP multicast is the mechanism for broadcast data delivery. Content creators should assume IP addresses may be changed downstream, and therefore should not use them in their content. The transport operator is only responsible for making sure that an IP address is valid on the physical network where they broadcast it (not for any re-broadcasting). When possible, content creators should use valid IP multicast addresses to minimize the chance of collisions. Some systems may have two-way Internet connections. Capabilities in those systems are outside the scope of this document and are described by the appropriate Internet standards. Transport operators should use the standard IP transmission system for the appropriate medium (IETF, ATSC, DVB, etc.). It is assumed that when the user tunes to a TV channel, the receiver automatically locates and delivers IP datagrams associated with the TV broadcast. The mechanism for tuning video and connecting to the appropriate data stream is implementation and delivery standard specific and is not specified in this framework. Announcements are used to announce currently available programming to the receiver. The IP multicast addresses and ports for resource transfer and for triggers are announced using SDP announcements (RFC 2327). The SDP Header is preceded by an 8-byte SAP header. SAP is still in Internet Draft form, but the non-optional first 8 bytes are stable (http://www.ietf.org/html.charters/mmusic-charter.html). Announcements are sent on a well-known address (224.0.1.113) and port (2670). This address and port have been registered with the IANA.
When there are multiple alternative enhancement streams for the same video program,
they must all be announced at the media level of the same SDP announcement. All
enhancement streams announced in the same SDP announcement are considered to be mutually
exclusive variants of the primary enhancement stream. The receiver can choose between them
based on media level attributes. For example, the Each media section for the tve-file media type begins the next enhancement definition. A longer form is available if the content creator or transport operator wants to use different IP addresses and ports for the data stream and trigger stream:
Announcement Example:
The trigger protocol carries a single trigger in a single UDP/IP multicast packet. Triggers are real-time events broadcast inside IP multicast packets delivered on the address and port defined in the SDP announcement for the enhanced TV program (see Announcements). The trigger protocol is thus very lightweight in order to provide quick synchronization. 3.1.3 Resource Transfer: UHTTP A one-way IP multicast based resource transfer protocol, the Unidirectional Hypertext Transfer Protocol (UHTTP) is defined in Appendix C. UHTTP is a simple, robust, one-way resource transfer protocol that is designed to efficiently deliver resource data in a one-way broadcast-only environment. This resource transfer protocol is appropriate for IP multicast over television vertical blanking interval (IPVBI), in IP multicast carried in MPEG-2, or in other unidirectional transport systems. Web pages and their related resources (such as images and scripts) are broadcast over UDP/IP multicast along with their related TV signal. An announcement broadcast by the TV station tells the receiver which IP multicast address and port to listen to for the data. The only data broadcast to this address and port are resources intended for display as Web content. While HTTP headers preceding resource content are optional in the UHTTP protocol, they are required when the protocol is used for ATVEF enhanced TV. Compliant receivers must support content encodings of "gzip" as specified by the "Content-Encoding" HTTP header field. In NTSC, ATVEF data is broadcast by encoding bytes in the vertical blanking interval of individual video fields. Two different techniques are used for broadcasting data using ATVEF transport A and ATVEF transport B. 3.2.1 Transport A: VBI Line 21 ATVEF triggers are transmitted on VBI Line 21 of the NTSC signal using the T-2 service as specified in EIA-608. This encoding is consistent with the EIA-746A specification which describes how to send URLs and related information on VBI line 21 of an NTSC channel, without interfering with other data (e.g., closed captions) also sent on that line. The checksum described in the ATVEF trigger definition is required in the Transport A ATVEF Binding to NTSC. Note that, as specified in the ATVEF trigger definition, triggers are encoded using ISO-8859-1 and not the EIA-608 character set. (While most characters are the same in both encodings, a few codes have different meanings.) ATVEF trigger length should be kept as short as possible. ATVEF trigger transmissions should be limited to 25% of the total field 1 bandwidth, even if more bandwidth is available after captioning, to allow for other downstream services. 3.2.2 Transport B: IP over VBI IP datagrams should be sent according to the specification drafted by the IP over VBI working group of the Internet Engineering Task Force (see http://www.ietf.org/html.charters/ipvbi-charter.html). Note that this specification is currently in late draft stage, but is expected to be completed and published as a standards-track document in the coming weeks. In NTSC, the NABTS (rather than WST) byte encoding should be used. ATVEF IP streams should be sent on the packet addresses 0x4b0 through 0x4bf. Other packet addresses may be used, but receivers are only required to handle IP datagrams arriving using packet addresses 0x4b0 through 0x4bf. Appendix A: Examples of Integrating TV with Web Pages The following examples describe how to achieve common design goals for integrating TV
and Web pages. This list is meant to be illustrative rather than exhaustive. The Examples are presented in both HTML 3.2 and HTML 4.0 since the HTML 4.0 specification recommends that tools supporting HTML 4.0 continue to support HTML 3.2. 1. How to place TV in a web page (using <OBJECT> and <IMG> tags) The OBJECT and IMG tags are used to place the TV picture in a web page, for example:
2. How to place TV in a web page that uses tables (using <TABLE> tags) The TD tag can be used to place the TV picture as the background of a table cell, for example:
3. How to overlay a web page over a TV background (using <BODY> tag) The BODY tag is used to specify TV as a full screen background of the web page, for example:
4. How to overlay a frame-based web page over a TV background (using <FRAMESET> tag) Many ATVEF web pages will be frame-based rather than body tag based. This will allow
the program to change the displayed web page while maintaining the same URL for a series
of triggers. Since an HTML document that contains a FRAMESET tag cannot contain a BODY
tag, it is necessary to specify
Each frame in the frameset that wants the full screen TV to show through must specify a transparent background color in the BODY tag of the frame's HTML document, for example:
5. How to transition from a web page back to full-screen TV (using <A> tag) Finally, the use of
Appendix B: Content Format Notes Content creators should use the content formats specified in section 2.1. This will guarantee that the content will play on the largest number of ATVEF receivers since support for this set of content types is mandated. Image content should be sent using PNG image format whenever possible. Currently, PNG does not support animation or high ratio (lossy) compression for natural images. When these features are available in PNG or another open standard, they will most likely be rolled into an ATVEF content level. In the meantime, many current web browsers support these features through GIF and JPEG. Content creators may wish to employ GIF for animated images and JPEG for high-compression images with some confidence that those image types will be supported on many platforms. With any image format, it is recommended that progressive rendering features be avoided (e.g. progressive PNG, progressive JPEG, interlaced GIF). Progressive rendering allows a client to display a low quality version of the image at first, improving quality as the image is downloaded. Progressive rendering may not be supported on some small footprint receivers. Audio content should be sent with the standard audio/basic format to reach the widest number of ATVEF receivers. The audio/basic format is a simple audio format of single channel audio encoded using 8 bit ISDN mu-law [PCM] at a sample rate of 8000 Hz. For higher-quality audio needs, content creators may wish to use other widely supported forms of the WAV and AIFF formats with some confidence that those audio types will be supported on many platforms. Appendix C: The Unidirectional Hypertext Transfer Protocol (UHTTP) Overview The Unidirectional Hypertext Transfer Protocol, or UHTTP, is a simple, robust, one-way data transfer protocol that is designed to efficiently deliver resource data in a one-way broadcast-only environment. This transfer protocol is appropriate for one-way IP multicast over television vertical blanking interval (IP/VBI) or other unidirectional transport systems. This section describes the format of the message packets that carry UHTTP data. It describes the information needed to create the messages using the protocol on the broadcast side and to turn those messages back into resources on the receiving side. Resources sent using the UHTTP protocol are divided into a set of packets, encapsulated in UDP. Typically, these packets may be delivered via multicast IP, but this is not required. Each packet contains enough header information to begin capturing the data at any time during the broadcast, even midway through the transfer. This header contains an identifier (in the form of an UUID) that uniquely identifies the transfer, and additional information that enables the receiver to place the data following the header in the appropriate location within the transfer. Additional information indicates to the receiver how long to continue listening for additional data. UHTTP includes the ability to gather segments over multiple retransmissions to correct for missing packets. It is also possible to group resources together for all-or-none delivery within a UHTTP transfer. The protocol also includes a forward error correcting mechanism which provides for the ability to restore missing data in the event of limited packet loss. Data Transfer Features Enabled by the UHTTP Protocol Robust Delivery: Gathering data over multiple transmissions Data can be resent via UHTTP using the same globally unique Meta-information in the form of HTTP-style headers The protocol provides for the inclusion of HTTP-style headers preceding the resource data. These headers may include information describing the content type of the resource and content location in the form of a URL. It may also be used to describe groups of resources as a multipart construction. Other meta-information, including date stamping and expiration dates, may be used to provide additional information about the resource content. UHTTP Header Details The UHTTP header is at the start of every UHTTP IP/UDP multicast payload. All values are network byte order. The fields are as follows:
The UDP packet data length for the enclosing UDP packet is used to determine the length
of the segment. It is permissible to send a packet that contains UHTTP header (and
optional extension headers), but without any data. If no data is included, then the UHTTP Extension Headers If the
If the HTTPHeaderMap Extension Header One The
When the UHTTP transfer consists of a single (i.e. non-multipart) resource, a single 12
bytes set of When a UHTTP transfer contains multiple resources (as specified by a multipart
content-type), multiple sets of When including Forward Error Correction Mechanism In addition to the ability to retransmit data and have missing segments filled in
during retransmissions, this transfer protocol can also include extra data packets that
can be used for simple missing packet error correction. When In blocks of To correct for a single missing packet in a block, the receiver should calculate the exclusive-or the data payload of the packets that arrived with the XOR data segment for that block. A key point is that segments can be sent in any order since each segment including the XOR segment indicate where in order they belong. By sending segments (including the XOR packets) out of order, there is protection against burst errors that lose successive packets. When re-transmitting a UHTTP transfer, a different order of segments can be used in each retransmission to avoid different types of burst errors. This protocol allows the headend (broadcast side) tools to decide how to order sending packets providing a great deal of flexibility. The receiving side does not need to know the transmission order (consistent with the fact that in general it cannot know the transmission order for IP multicast delivery). XOR data in the XOR packet is the exclusive-or of data segment contents only, including the HTTP-style header fields but not including the UHTTP header that is also in the packet. HTTP-style headers used in UHTTP The UHTTP transfer protocol can be used to deliver resources via a broadcast medium, which can simultaneously deliver resources, including web-related content, to large numbers of users simultaneously. HTTP-style headers are optional in UHTTP, but are required for resources intended to be interpreted as web content. HTTP-style headers (HTTP 1.1) are required to precede the resource contents just as HTTP does when resources are sent as a response to a HTTP GET or POST command. The HTTP-style headers may provide additional information to the browser like the expiration time for the resource. The HTTP-style headers precede the body of the resource data, and are treated as part of the content. The protocol header and its version imply the equivalent HTTP response line (e.g. "HTTP/1.1 200 OK"). The header fields that are required to be supported by all receiving clients are listed below and should be interpreted per the HTTP 1.1 specification. No assumption should be made for support of other header fields. Supported HTTP-style headers HTTP-style header Fields required for every resource: Content-Length: Content-Location: Recommended HTTP-style header fields: Content-Type: Optional HTTP-style header fields: Content-Base: Content-Encoding: Content-Language: Content-Style-Type: Date: Expires: Last-Modified: Receivers will decode the headers and data and store them in a local cache system. Different platforms will have different cache sizes for storing local resources, which may or may not correspond to traditional browser caches. The use of "Content-Location:" headers with "lid:" style URLs (see The Local Identifier URL Scheme ("lid:")) is intended to mirror resource delivery to a local cache without requiring that the data be available on the web. Receiving platforms should take into consideration that the same resources will likely be sent repeatedly to provide resources for users who tune in late. HTTP-style header fields can be examined to determine if the resource is already present, and so can be ignored. The "Date:", "Expires:", and "Last-Modified:" headers can be used to determine the lifetime of a resource in a given browsers cache. When the "http:" scheme is specified in the URL, the HTTP-style header will contain the same information as the get response plus the "Content-Location:". Packaging more than one resource The HTTP "Content-Type:" field can be multipart/related. When this type is used, the HTTP-style header is ended as usual and is followed by the usual boundary structure for "multipart/related" separating multiple related resources that each use the HTTP-style header formats. This is a mechanism to package multiple related resources together in a single all-or-nothing transfer. The HTTP-style headers for individual subparts describe only the subpart, but are interpreted as per the HTTP 1.1 specification. In this case, it may be convenient to specify a "Content-Base:" for the entire package and then specify relative URLs for each of the "Content-Location:" headers for subsequent subparts. The "multipart/related" content type should be used as per the IETF RFC 2387, with the following exceptions. The "start" and "start-info" attributes of the content-type header, which is optional in RFC 2387, are not supported. An example using HTTP scheme URLs: Content-Base: http://www.blahblah.com/ Content-Length: 3495 Content-Type: Multipart/Related; boundary=example98203804805 -�example98203804805 Content-Location: http://www.blahblah.com/resource1.html Content-Length: 495 Content-Type: text/html Resource data for resource1.html �<IMG src="image.jpg">� -�example98203804805 Content-Location: /image1.jpg Content-Length: 1495 Content-Type: image/jpeg Resource data for image1.jpg -�example98203804805 An identical example using "lid:" style URLs and relative URLs: Content-Base: lid://unique2345@blahblah.com/ Content-Length: 3495 Content-Type: Multipart/Related; boundary=example98203804805 -�example98203804805 Content-Location: resource1.html Content-Length: 495 Content-Type: text/html Resource data for resource1.html �<IMG src="image.jpg">� -�example98203804805 Content-Location: image.jpg Content-Length: 1495 Content-Type: image/jpeg Resource data for image1.jpg -�example98203804805 Related Specifications Hypertext Transfer Protocol 1.1 (IETF RFC2068): ftp://ftp.isi.edu/in-notes/RFC2068.txt MIME multipart/related (IETF work in progress draft, replaces RFC2387): http://info.internet.isi.edu/in-notes/rfc/files/rfc2387.txt UUIDs and GUIDs (IETF work in progress draft-leach-uuids-guids-01): The draft is no longer available. MPEG-2 CRC (ISO/IEC 13818-1, Annex A: CRC Decoder Model) Television enhancements are comprised of three related data sources: announcements (delivered via SAP), content (delivered via UHTTP), and triggers (delivered via the trigger protocol over UDP). Announcements are broadcast on a single well-known multicast address and have a time
period for which they are valid. This time period is expressed via the The announcement also contains information that the client can optionally use to help
decide whether to automatically start receiving trigger and content information.
This may include When the client sees a new enhancement, it knows that there will be data available on the given content and trigger addresses. The client may present the user with a choice to start receiving trigger and content information, or may do so automatically. The client implementation specifies what kind of user interface, if any, to present. After this confirmation (or automatic behavior) the client receives content and triggers, caching the content and parsing the triggers. When the client first receives a trigger (containing a URL pointing to some enhancement content) the client may notify the user that the content is available or, alternatively, navigate to that content automatically. Clients may choose not to notify the user if they believe that they cannot display the enhancement, generally because the content referred to by the specified URL is not available. When an enhancement has either been confirmed by the user, or has been started automatically, the enhancement is displayed. Only one enhancement may be displayed at a time. When new triggers associated with the current enhancement arrive, they are played or ignored depending on several conditions. If the URL of the trigger matches the URL of the current page and the trigger has a script attribute, the script is played; if there is no script, the trigger is ignored. If the URLs do not match and the trigger has a name attribute, the trigger is considered a new enhancement and is played, offered to the viewer, or ignored depending on other factors described below; if no name attribute, the trigger is ignored. If a new enhancement is announced while an existing enhancement is being displayed, the client may present the user with the option to begin receiving that announcement data (content and triggers) or do so automatically. Multiple enhancements may be received simultaneously, although only one may be displayed at a time. When the new enhancement is being received at the same time as an existing enhancement is being displayed, and the new enhancement delivers its first trigger, the client may have one of three behaviors:
It may be important for some triggers to be able to send scripts to the current
enhancement without presenting the user with the opportunity to navigate to that
enhancement. In this case, no Content creators are encouraged to "shut down" their enhancements at the end
of the related video content. This means that enhancements should navigate themselves (via
trigger scripts or some other scripting mechanism) to full screen television ( When the time period specified by the announcement is over, clients may automatically end the enhancement or allow the user to continue viewing the enhancement over potentially unrelated video. Additionally, a property, named Appendix E: ATVEF Example Broadcast The following is a simple example of an ATVEF television enhancement, delivered via transport type B (multicast IP). The example consists of three parts: the announcement (announced via SDP/SAP), the content (delivered via UHTTP), and the triggers (delivered in UDP packets). The experience consists of a screen with a 60% sized embedded live TV object, with some text below it. During the show, a trigger may arrive that will cause an image of the word "MURDER" to appear below the text. If the user chooses to click on the TV object, they will be returned to full screen video, and away from the enhanced experience. The following announcement packet is sent via UDP to the multicast IP address: 224.0.1.113, port: 2670. The announcement consists of an 8 byte SAP header followed by an SDP text payload. The values for the SAP header fields for the announcement::
Complete SAP header would be eight bytes: 0x20, 0x00, 0x34, 0x64, 0xd1, 0xf0, 0xc3, 0x06 The remaining bytes in the announcement packet would contain the following text payload:
These fields indicate the following:
The content data for the enhancement is delivered via UHTTP packets transmitted (as specified by the announcement) to multicast address 224.0.1.112, to port 52127. This content would consist of two original source files, an HTML document and a PNG image. The experience consists of a screen with a 60% sized embedded live TV object, with some text below it. During the show, a trigger may arrive that will cause an image of the word "MURDER" to appear below the text. If the user chooses to click on the TV object, they will be returned to full screen video, and away from the enhanced experience The first would be referred to by the URL
The second file consists of a PNG image, containing an image of the word
"MURDER" in big red letters. It's URL will be specified as These files are combined together into a single multipart MIME entity, which will make up the full payload of the UHTTP transmission.
This data multipart entity, (of total length, including headers of 2400 bytes) would be transmitted via UHTTP, in three packets. The first two packets would contain the original data (each containing 1200 bytes of original data as payload) and the third containing the exclusive-or of the first and second payloads as forward error correction data. The UHTTP headers for each of the three packets would be as follows:
In this example, the 28 UHTTP header bytes for the first packet would be:
Following the header in the first packet, would be the first 1200 bytes of the MIME-encoded payload. Following the header in the second packet would be the last 1175 bytes of the MIME-encoded payload. Following the UHTTP header in the third packet would be 1200 bytes, where each byte was the exclusive-or of the corresponding byte offsets in the first two packets. These packets would then be transmitted repeatedly during the session. The header values for each packet would remain the same, with the exception of the Retransmit Expiration field. The value of this field would decrease as the end of the transmission of the UHTTP packets drew near. The following trigger would be sent after the data was first transmitted to trigger the beginning of the enhanced television experience:
This trigger content would be encapsulated in a UDP packet and sent to multicast address: 224.0.1.112, port 52127+1 (as specified by the announcement) This trigger packet would also be transmitted periodically later on, to allow viewers who tune in late to join in the fun. Later on, during the program, the content creator might send the following trigger to the same multicast address and port to make the content change to reflect the fact that a murder scene has just begun in the program:
This trigger would cause the active enhancement page (if it matched the URL in the trigger) to execute the ECMAScript function 'scenechange("murder")', which would cause the murder.png image to be displayed within the page. If the specified URL was not currently being displayed, the trigger would be ignored because this trigger does not include a [name:] attribute, Near the end of their program, they might send the following trigger to tell their interactive application to shut down. This would allow them to more accurately synchronize with the end of the program, rather than relying on the session timing information in the announcement.
Document markup language HTML 4.0: http://www.w3.org/TR/REC-html40/ Document scripting language ECMAScript: http://www.ecma.ch/stand/ecma-262.htm Document Object Model DOM Level 0: http://www.w3.org/DOM UUIDs and GUIDs (IETF work in progress draft-leach-uuids-guids-01): The draft is no longer available. MPEG-2 CRC (ISO/IEC 13818-1, Annex A: CRC Decoder Model) TV URLs: This draft is not longer available. Hypertext Transfer Protocol (HTTP) 1.1 (RFC 2068): ftp://ftp.isi.edu/in-notes/rfc2068.txt Data Delivery via Analog Video VBI: (Working Group): http://www.ietf.org/html.charters/ipvbi-charter.html Aggregation & encoding of multiple resources into a single resource for delivery:
Content description SDP: ftp://ftp.isi.edu/in-notes/rfc2327.txt Session Announcement Protocol (SAP): http://www.ietf.org/html.charters/mmusic-charter.html Content encoding: ftp://ftp.isi.edu/in-notes/rfc1951.txt (deflate), and ftp://ftp.isi.edu/in-notes/rfc1952.txt (gzip) Datagram format IP: ftp://ftp.isi.edu/in-notes/rfc791.txt Multicast datagram format multicast IP: ftp://ftp.isi.edu/in-notes/rfc1112.txt Cascading Style Sheets: http://www.w3.org/pub/WWW/TR/REC-CSS1 text/css: ftp://ftp.isi.edu/in-notes/rfc2318.txt audio/basic: http://www.oac.uci.edu/indiv/ehood/MIME/2046/rfc2046.html message-id style unique id: ftp://ftp.isi.edu/in-notes/rfc822.txt Triggers:
UDP (User Datagram Protocol): ftp://ftp.isi.edu/in-notes/rfc768.txt Announcements: Announcements are used to announce currently available programming to the receiver. Binding: In the context of this document, an ATVEF binding is the definition of how the ATVEF transport specifications are encoded on a specific video network standard. (For an example, see the ATVEF Binding to NTSC.) Content creator: In the context of this document, an ATVEF content creator has the role of originating the content components of the television enhancement including graphics, layout, interaction, and triggers. CSS1 (Cascading Style Sheets, Level 1): CSS1 is a simple style sheet mechanism that allows content creators and readers to attach style (e.g. fonts, colors and spacing) to HTML documents. The CSS1 language is human readable and writable, and expresses style in common desktop publishing terminology. Datagram: a block of data that is "smart" enough (actually, which carries enough information) to travel from one Internet site to another without having to rely on earlier exchanges between the source and destination computer. DHTML (Dynamic HTML): a term used by some vendors to describe the combination of HTML, style sheets, and scripts that enable the animation of web pages. DOM (Document Object Model): the Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page. ECMAScript: A general purpose, cross-platform programming language. FEC (Forward Error Correction) FTP (File Transfer Protocol): A standard for finding and transferring files on the Internet. HTML (Hypertext Markup Language): a collection of tags typically used in the development of Web pages. HTTP (Hypertext Transfer Protocol): a set of instructions for communication between a server and a World Wide Web client. IANA (Internet Assigned Numbers Authority): the central registry for various Internet protocol parameters, such as port, protocol and enterprise numbers, and options, codes and types. The currently assigned values are listed in the Assigned Numbers document. IETF (Internet Engineering Task Force): the IETF is a large, open community of network designers, operators, vendors, and researchers whose purpose is to coordinate the operation, management and evolution of the Internet, and to resolve short-range and midrange protocol and architectural issues. It is a major source of proposals for protocol standards which are submitted to the IAB for final approval. The IETF meets three times a year and extensive minutes are included in the IETF Proceedings. IP (Internet Protocol): This protocol is one of the languages computers connected to the Internet use to communicate. IP multicast: A one-to-many transmission, in contrast to Unicast, Broadcast. An extension to the standard IP network-level protocol. RFC 1112, Host Extensions for IP multicasting, authored by Steve Deering in 1989, laid the groundwork for IP multicasting. The RFC describes IP multicasting as: "the transmission of an IP datagram to a host group, a set of zero or more hosts identified by a single IP destination address. A multicast datagram is delivered to all members of its destination host group with the same best-efforts reliability as regular unicast IP datagrams. The membership of a host group is dynamic; that is, hosts may join and leave groups at any time. There is no restriction on the location or number of members in a host group. A host may be a member of more than one group at a time." ISO (International Organization for Standardization): a voluntary, non treaty organization founded in 1946 which is responsible for creating international standards in many areas, including computers and communications. Its members are the national standards organizations of the 89 member countries, including ANSI for the U.S. MIME (multipart/signed, multipart/encrypted content-types) a protocol for allowing e-mail messages to contain various types of media (text, audio, video, images, etc.). NABTS (North American Basic Teletext Specification). Receiver: In the context of this document, an ATVEF receiver is a hardware and software implementation (television, set-top box, or personal computer) that decodes and presents ATVEF content. SAP (Session Announcement Protocol): the protocol used for session announcements. SDP (Session Description Protocol): SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. Transport operator: In the context of this document, the transport operator runs a video delivery infrastructure (terrestrial, cable, satellite, or other) that includes a transport for ATVEF data. Triggers: used to identify the URL and some human-readable string to use in the announcement to the user. In order to announce the availability of the interactive television experience to the user, (as opposed to announcing it to the client downloader mechanism). TV Enhancement: A collection of Web content displayed in conjunction with a TV broadcast as an enhanced or interactive program. UDP (User Datagram Protocol): an Internet Standard transport layer protocol defined in STD 6, RFC 768. It is a connection-less protocol which adds a level of reliability and multiplexing to IP. UHTTP (Unidirectional Hypertext Transfer Protocol ): UHTTP is a simple, robust, one-way resource transfer protocol that is designed to efficiently deliver resource data in a one-way broadcast-only environment. This resource transfer protocol is appropriate for IP multicast over television vertical blanking interval (IPVBI), in IP multicast carried in MPEG-2, or in other unidirectional transport systems. UUID (Universally Unique Identifier) Also known as GUID ( Globally Unique IDentifier) is an identifier that is unique across both space and time, with respect to the space of all UUIDs. W3C (World Wide Web Consortium): The W3C, an an international industry consortium, was founded in October 1994 to lead the World Wide Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability. |