URL: Background & Reqs (ASCII)

Philipp Hoschka asked me to resend my "URL: Background and
Requirements" message in ASCII format, so here it is.

This note attempts to provide some background information on
digital TV (DTV) environments, and then some requirements for URL
schemes for DTV. If you are very familiar with the DTV standards,
skip the background.


A DTV receiver may have no connection with the outside world
through any link other than a DTV broadcast signal coming from an
antenna, satellite, or cable feed. It may or may not have access
to the Internet. It may or may not have access to devices on a
home network (which may not be an IP network). For the moment I
wil ignore the home network issues.

The signal coming from an antenna, satellite, or cable feed will
typically have a number of RF bands on which DTV signals can be
received. When the receiver tunes to a particular RF band and
demodulates the signal there, it ends up with an MPEG-2 transport
stream. There are currently two competing standards for DTV, the
DVB standard developed in Europe, and the ATSC standard developed
in the United States. Among other things, they use different
methods for modulating the digital bit stream into the RF signal,
so in the near term at least most receivers will be able to
receive one or the other, but not both.

I am much more familiar with the ATSC standard than the DVB
standard, so the following explanations are oriented toward the
ATSC standards. Much of it, but not all, will be true for DVB as

Each MPEG-2 transport stream has a transport_stream_id. There is
currently no guarantee of uniqueness of these IDs in the ATSC
world. However, the National Assn of Broadcasters (NAB) is
advocating that the FCC assign transport stream IDs to
broadcasters, associated with their broadcast license, so that
they would be guaranteed to be unique. In the meantime, they may
well be unique in practice.

Each MPEG-2 transport stream may contain multiple "programs" or
virtual channels. (The ATSC DTV standards use the term "event" to
describe what would be called a TV program in normal usage, and
they use the term "program" to describe what would be called a TV
channel in normal usage.) For example, a single transport stream
may contain one high definition TV (HDTV) program, or several
standard definition TV (SDTV) programs, along with a potentially
large number of pure data programs. Each virtual channel has
associated with it a program_number, a major and minor channel
number, and a source_id. All of  these are guaranteed to be
unique within the transport stream, but not across transport
streams. Each of these may also have associated with it a short
channel name. The number of programs in a single transport stream
may be as few as one, or as many as dozens, depending on the
bandwidth required for the programs. The number may vary over

Each program may contain multiple elementary streams. For
example, a typical TV program would contain one video stream and
perhaps multiple audio streams in different languages. An
enhanced TV program might also contain multiple streams
containing data to support interactive applications to enhance
the viewing of the program -- for example, statistics on demand
during a baseball game, or biographical information on demand
during a talk show. There might be pure data programs which
contain only one or more elementary streams of data to support
some application, for example a stock ticker or news headline
ticker which runs across the bottom of the screen, independently
of what video program is being watched. Each elementary stream
has a packet_id and optionally an association_tag. These are
guaranteed to be unique within the program.

A question related to uniqueness is stability. If I tune to the
same RF frequency from the same broadcast station, will the
resulting transport stream always have the same ID? In terms of
guarantees, no, but in practice probably yes. If I look at
channel 17-2 (major-minor channel number) from the same station,
will it always have the same program_number and source_id? In
terms of guarantees, no in both cases. In practice, probably no
for the program_number and yes for the source_id. If I look at
the video for channel 17-2, will it always have the same
packet_id? Almost certainly not.

Another form of stability is what happens during the broadcasting
process. Typically the multiple programs which may appear in a
transport stream are assembled in the broadcast facility more or
less independently and are then multiplexed together into the
final transport stream. What happens to the various identifiers
during this multiplexing process? The program_number and
elementary stream packet_ids are likely to change. The others
will not.

Note also that the same network TV program, say from PBS, could
be broadcast by numerous local affiliate stations, and the RF
band, transport stream ID, major-minor channel number, and
channel name would be different for each affiliate. Thus,
receivers in different parts of the country would find the same
program (with exactly the same content) under different RF bands,
transport stream IDs, channel numbers, and channel names. It
might also be broadcast at different times -- not only different
local times, but different absolute times.

To complicate things further, when a program is picked up by a
cable or satellite operator and rebroadcast, nearly every single
one of the identifiers for the program may be changed -- RF
frequency, ts_id, program_number, major-minor channel number,
source_id, packet ids, possibly even association tags. Proably
the channel name will stay the same.

Each TV program (or "event") has an event_id. However, currently
these event_ids are only guaranteed to be unique within the set
of events in the same transport stream which appear in the same
3-hour interval (where each day is divided into eight standard
3-hour intervals, measured in GMT). A proposal has been submitted
to ATSC to make the event_ids unique within each source_id, but
this is being resisted by the broadcasters so far, due to certain
complexities it would introduce into their operations.

The ATSC Data Broadcast Specification (from T3/S13 subcommittee)
specifies a number of different protocols for including data in
an MPEG-2 broadcast stream:
    - DSM-CC bounded data carousels
    - DSM-CC unbounded data carousels
    - streaming data in PES packets
    - IP or other protocol datagrams encapsulated in PES or TS
    - piped data in TS packets

There is a strong probability that at some point in the future
either the T3/S13 (Data Broadcast) or T3/S16 (Interactive
Applications) subcommittee will specify the use of DSM-CC object
carousels as well, but that does not appear likely to happen
right away.

In most cases this data can be:
    - asynchronous: presentation timing more or less arbitrary
    - synchronized: presentation timing tied to other streams,
such as audio/video
    - synchronous: presentation timing internally constrained

Even data which is essentially stable will usually be broadcast
repeatedly at fairly short intervals, to accommodate viewers who
tune into the middle of an event, or receivers which have little
or no caching capability.

The ATSC Data Broadcast Specification also specifies a Service
Description Table which is used to describe the applications
which make up a data event, and specify the files the
applications need and where to find them. Thus, within a given
event, an application_name and so-called tag_id can be used to
identify a data resource (file).


A number of broadcasters will be broadcasting data enhancements
along with their video events, and even broadcasting pure data
events, of the sort described earlier in this note. In many cases
the data will be in the form of HTML pages, to be rendered onto
the TV screen by HTML engines in the receivers. Although we often
think of an HTML page as a single file, it usually requires a
number of files to render even a single page, just for the images
which appear in the page if nothing else. Moreover, an
application may often contain multiple inter-linked HTML pages.
All of these files will have to be included in the broadcast
stream, and the HTML engine will have to be able to find the
files from URLs which appear in the HTML pages.

To complicate things, the HTML pages for the application will
often be generated by some content creator far removed from the
eventual broadcast stations. It will then be sent to the network,
which will distribute it around to the different local affiliates
to include in their broadcast. Thus, all of the various
identifiers described in the background section of this note will
be unknown to the content creator.

The simplest case is that all of the inter-linked files appear in
the same elementary stream. The next simplest case is that they
all appear in the same program, but possibly in different
elementary streams.

Since a single transport stream may include four or so SDTV
programs, it is likely that at times there will be some
coordination of data applications across multiple virtual
channels within the same transport stream, so a URL which appears
in one program may reference data which appears in another

Moreover, in the cable world there may often be a single
broadcaster controlling multiple transport streams. In fact, with
the increasing concentration in the communications industry, this
may happen in the not too distant future for terrestrial
broadcasts as well. Thus, there may be coordinated data
applications across multiple transport streams, so a URL which
appears in one program may reference data which appears in other
transport streams.

Then, of course, some DTV sets will have Internet access (and
some PCs will have TV access).

Thus, an HTML page contained in a broadcast may reference files
in the Internet, to give TV viewers access to additional
information beyond what is included in the DTV broadcast, or to
give TV viewers the ability to interact with web servers to order
products, etc.

Also, broadcasters and others will have web sites, where they
will want to reference broadcast programs. In some cases they may
want to reference broadcast video eventss to watch. In other
cases they may want to reference broadcast data events, or
individual files which are included in a broadcast data event.
For example, a stockbroker who wants to advertise a live TV stock
ticker data service might well provide a reference to it on
his/her web site. In the case of a TV event which is only
available at certain times, the URL must include a time component
of some sort.

All this leads to the following requirements for URL schemes for
DTV environments:
    - URLs must actually be URLs, not just URIs. Given a URL, it
must be possible for a receiver to actually locate the resource,
or conclude that it is not reachable. (Note that locating the
resource may require intermediate steps, analogous to a DNS
lookup on the Internet. ATSC T3/S8 document 253, URL Mapping,
submitted 26 Feb, 1998, by General Instrument, is a step in this
direction, but does not quite solve the problem.)
    - It must be possible for the resource referenced by a URL to
be an entire program/event, or just a single component of a
    - It must be possible for a URL to contain an identification
of the date(s) and time(s) when the resource is available, either
through an explicit time designation, or through an event
    - The set of URL schemes for DTV should include audio/video
streams and all of the data broadcast protocols endorsed by the
ATSC Data Broadcast Specification.
    - A URL must be meaningful when interpreted from any of the
following locations relative to the resource being referenced:
        * From within the same elementary stream
        * From within the same program
        * From within the same transport stream
        * From within a different transport stream received by
the same receiver
        * From an arbitrary location in the Internet
The correct interpretation of this requirement is that a DTV
receiver should be able to obtain an HTML page from any of the
listed locations, and if the resource referenced by a DTV URL in
that page is available to that receiver in the broadcast streams
it can receive, it should be able to find the resource.

Gomer Thomas
40 Washington Road
Princeton Junction, NJ 08550
phone: 609-716-3513
fax: 609-716-3503

Received on Thursday, 29 October 1998 14:07:48 UTC