[opendtv] ATSC AC-3 Transmission Requirements

  • From: John Willkie <johnwillkie@xxxxxxxxxxxxx>
  • To: opendtv@xxxxxxxxxxxxx
  • Date: Tue, 18 Apr 2006 06:01:45 +0000 (GMT+00:00)

Here's a virtually complete (omitting only the buffer size) compilation of all 
ATSC A/52, ATSC A/53 and A/65 mandatory requirements for transmitting AC-3 

Those of you on my [PSIP List] have saw this litany over a month ago. To 
to that (very high signal to oise ratio) list, one can send an email to 
mailto:JohnWillkie@xxxxxxxxxxxxx (when I include the easy registration URL, 
freelists burps on the message.)

I would note that I have yet to parse an ATSC transport stream with dynamic PSIP
that meets all of these requirements; I know of many test & measurement systems
that either don't discern these issues, or don't clearly label them.  However,  
of the transport streams I have seen, Tribune's KSWB-DT San Diego comes the 
to compliance -- their errors are with langcod, the ISO_639 language descriptor 
and the length of the AC-3 descriptor.

And, if folks are interested in a system that clearly indicates these and most 
ATSC transport stream issues in a form that anyone can discern from across the 
or across the world, I will be showing such a system -- EtherGuide Ferret ATSC--
to a select few at NAB next week, and to a wider audience starting the following
week.  EtherGuide Ferret is, I believe, a new product category: a real-time ATSC
transport stream monitor and validator that also coverts PSIP into PMCP (ATSC 

John Willkie
EtherGuide Systems

The below is copyright 2006, by John M. Willkie.  All Rights Reserved.  
granted to redistribute the list, as long as no changes are made, and the entire
list, including this message, is transmitted along with the list.

1.    fscod / sample_rate_code = 0 (for 48khz)
2.    frmsizecod / bit_rate_kbps <= 448 kbps
3.    frmsizecode / bit_rate_kbps <=128 kbps for single channel audio services
4.    frmsizecode / bit_rate_kbps <=192 kbps for two channel dialogue associated
5.    frmsizecode / bit_rate_kbps <= 576 kbps combined for main and associated
audio services intended to be decoded simultaneously.
6.    acmod >= 001 / num_channels >= 1,  <= 13
7.    stream_id must be equal to 189, signaling MPEG-2 private_stream_1
8.    each audio service gets it's own packet id
9.    each audio service is the sole user of it's packet id
10.    if a program contains one or more audio services, at least one shall be a
complete main (CM) service.
11.    for each audio service, an AC-3 registration descriptor (ATSC A/52, annex
A) must be in the ES_info loop of the PMT for that service.  This descriptor 
be located nowhere else.
12.  for each audio service, an AC-3 descriptor (ATSC A52, annex A) must be in 
ES_info loop of the PMT for that service.  For current events, this descriptor 
match the mandatory AC-3 descriptor in the Event Information Table for the 
13.  The AC-3 descriptor may terminate at only one of two places.  If there is 
associated service, the descriptor may be terminated after full_svc, otherwise, 
the descriptor  must be terminated immediately before textlen.
14.  In the AC-3 descriptor, langcod is a reserved field and must be set to 255.
15.  To signal the language of the stream, use the MPEG-2 ISO_639_descriptor.
16.    If an ISO_639_descriptor is present in the ES_info loop, audio_type must 
be equal to zero.
17.  The ISO_639_descriptor is mandatory if there are two or more elementary 
in the PMT with the same value of bsmod.
18.    the bsmod value in the descriptor must match bsmod in the corresponding 

You can UNSUBSCRIBE from the OpenDTV list in two ways:

- Using the UNSUBSCRIBE command in your user configuration settings at 

- By sending a message to: opendtv-request@xxxxxxxxxxxxx with the word 
unsubscribe in the subject line.

Other related posts:

  • » [opendtv] ATSC AC-3 Transmission Requirements