| |   | Program Association Table (PAT) 
    [MPEG Syntax] | 
 A Program Association table (PAT) has two simple function: it lists the program_number and packet id (location) of Program Map Table sections in a transport stream and 
    (secondly and optionally) the packet id where the Network Information Table (NIT) can be found.  However, NITs are not used in the ATSC world. ATSC maximums
| ms per section | sections per instance
 | bytes per section | instances | max bps |  | 100 (ATSC) | 256 | 1024 | current next
 | 80,000 |    A PAT is required to be present in every MPEG-2 transport stream that contains one or more program services.  The PAT must be transmitted on packet id 
    (pid) of 0 (hexadecimal 0x0000), and no other use can be made of this pid.   MPEG-2 does not specify how frequently a PAT must be transmitted, but ATSC A/53 requires a PAT to be transmitted at least once every 100 milliseconds.  However, if the PAT is comprised of so many large sections that pid 0 might exceed the maximum of 80,000 bits per second permited for pids carrying MPEG-2 PSI sections,  the repetition rate can be extended to no more than 140 milliseconds.  
    As explained below, it is unlikely that this extended repetition rate will ever 
    be needed.   The repetition rate -- even the higher limit of 140 ms -- makes the Program 
        Association Table the most common table instance in most transport streams, 
        which is ironic as the PAT is usually the least dynamic table in a transport stream and 
        contains the least amount of information.  Each entry in a PAT -- whether 
        identifying the network_pid or the pid for a PMT section -- is eaactly 32 bits 
        (four bytes) in length.  One PAT section can contain up to 253 entries.  
        Few transport streams will offer more than a fraction of this number of program 
        services.   The only time that a PAT must change is is when an active virtual channel (or 
        program service) is added or removed from the transport stream, or when the pid 
        for a PMT section or the pid for the Network Information Table changes.  As 
        there is no context for the NIT in ATSC transport streams, PAT changes are 
        somewhat rare.   The reason for the short PAT repetition cycle is to minimize service acquisition time 
        when a transport stream is first demultiplexed, with the argument that no 
        Program Map Table can be found in the transport stream until the PAT has been 
        processed and its contents have been acted upon.  While this might have 
        been true at the time of publication of the original edition of the MPEG-2 
        standard and within the MPEG-2 context, MPEG users such as ATSC and SCTE have 
        imposed constraints on the transport stream and Program Map Table such that a demultiplexer can 
        easily find and process PMT sections without first finding and processing the 
        PAT.  In these cases, the PAT enables the demultiplexer to determine if all 
        the intended PMTs have been found and processed.   If a new PAT is to be more than one table section, it may be useful to send a "next" table so that when 
        change between "next" and current occurs, the change can be effected immediately.   This page was last modified on August 21, 2009. |