# Program Stream

MPEG-2 Program Stream (PS o MPEG-PS) és un format contenidor per multiplexació orientat a paquets d'un o diversos fluxos de PES (Packetized Elementary Stream) creats a partir d'un o diversos ES (Elementary Stream) que comparteixen i van ser codificats pel mateix rellotge de referència, STC (System Time Clock). Pot albergar fluxos de vídeo, àudio i dades auxiliars, a més integra informació de rellotge per a la correcta descodificació i sincronització de la resta de fluxos, això assegura una presentació simultània. Habitualment, agrupa un flux de vídeo i diversos d'àudio i dades.
La seva taxa de bits pot ser fixa o variable. En cada cas, els ES que ho constitueixen també poden ser de taxa fixa o variable. La taxa de bits d'un PS principalment ve definida pels valors i localització del SCR (System Clock Reference). Els paquets d'un PS poden ser de longitud variable i són relativament grans (2048 bytes/paquet PS).
Aquest format contenidor de fluxos de bits dissenyat per MPEG està definit formalment en MPEG-2/System i estandarditzat per ISO/IEC 13818-1 i ITU-T Rec. H.222.0. El seu disseny està orientat cap a l'emmagatzematge d'un únic programa codificat (servei audiovisual) o altres dades com per a la comunicació sobre un canal de dades en entorns gairebé lliures d'errors (QEF: Quasi-Error Free) en els quals la taxa de BER és menor a $10^{-10}$, majors taxes provoquen defectes notoris. Principalment és aquesta la diferència amb el format MPEG-2 Transport Stream, dissenyat per a canals en els quals una major taxa d'error és probable. El format PS també és adequat per a aplicacions que puguin implicar processament per programari com a aplicacions interactives multimèdia. A més s'utilitza en els estàndards de Televisió digital de DVB.

## Història

L'estructura tipus PS s'especifica per primera vegada el 1993 en MPEG-1 Part1: Systems estandarditzat en ISO/IEC 11172-1. Més tard el 1996 va ser encunyat el terme Program Stream en MPEG-2 Part1: Systems estandarditzat en ISO/IEC 13818-1. MPEG-2 Program Stream és anàleg i similar a la capa de Sistemes de MPEG-1.

## Estructura de trama

L'estructura de trama de PS es compon de diversos PES que s'estructuren en nous paquets (pack) de nivell superior.
Un paquet es compon de:
* Capçalera de paquet (pack header): Aquesta conté una paraula identificativa de l'inici de capçalera, la taxa de multiplexació i una referència del rellotge de sistema (SCR), que s'especifiquen com a nombres binaris de 42bits que s'expressen en unitats de 27 MHz. També conté informació sobre els paquets de farcit (tuffing packets) encara que no solen utilitzar.
* Capçalera de sistema (system header): És una capçalera opcional. Proporciona informació general sobre el nombre i tipus de seqüències PES (àudio, vídeo i dades) que componen el paquet, a més de dades com la velocitat binària màxima o informació complementària per a la correcta descodificació.
* Paquets PES: (PES packet): Nombre indeterminat de paquets PES presos dels És que componen el Servei Audiovisual, en qualsevol ordre.
* Fi de paquet (End Code): La finalització del paquet s'indica amb un codi específic.
No existeix cap especificació sobre la longitud que ha de tenir un paquet, únicament s'indica que almenys ha d'aparèixer un “pack-header” cada 0.7s per a un correcte sincronisme.

## Formats compatibles

MPEG-2 Program Stream pot contenir en el seu format diferents tipus de vídeo i àudio comprimits. Alguns d'ells es mostren a continuació:
* Vídeo: MPEG-1 Part2, MPEG-2 Part2 i MPEG-4 Part2 and Part10 (ITU-T H.264), no estandarditzat internacionalment VC-1.
* Àudio: MPEG-1 Part3 (MP3, MP2 i MP1), MPEG-2 Part3 and Part7 (Advanced Audio Coding) i MPEG-4 Part3 (Advanced Audio Coding), no estandarditzat internacionalment Dolby Digital AC-3.
ISO va autoritzar a SMPTE Registration Authority, LLC, com l'autoritat de registre per als identificadors de formats MPEG-2, quan aquests formats no són necessàriament estandarditzats internacionalment.