- MPEG-PSI
-
MPEG-PSI (Program Specific Information) un múltiplex de transporte de MPEG-2 puede transportar varios programas, cada uno compuesto por uno o varios trenes elementales de paquetes (PES) de manera que para guiar y simplificar los procesos de desmultiplexación y presentación de los programas en el decodificador, MPEG-2 define cuatro tipo de tablas que juntas constituyen la información específica de los programas (PSI).
Estas tablas son la de Program Association Table (PAT), la de Progran Map Table (PMT), la de Conditional Acces Table (CAT) y la de Network Information Table (NIT). Cada tabla esta formada por paquetes de datos que son reconocidos por un particular PID (identificador de paquete). El PMT define los PID que identifican los flujos de datos individuales paquetizados que constituyen un programa. Estas corrientes individuales se denominan corrientes elementales en el estándar MPEG. Estas corrientes elementales pueden incluir corrientes de datos como video, audio para diferentes lenguas y títulos de flujos de datos. PAT asocia el número de un programa con los PIDs que permiten la identificación y ensamblaje de los paquetes que comprenden el PMT. NIT es una tabla opcional pero puede ser estructurada y usada para definir parámetros de la red física como por ejemplo las frecuencias de los canales en transmisión por satélite o los canales de transponder. CAT contiene la información condicional de acceso como los códigos de cifrado que dependen de los derechos de usuario.
Contenido
PAT (Program Association Table)
En el Transport Stream (corriente de programa) los paquetes identificados con el número 0 (PID=0x0000), son los que hacen referencia a la tabla PAT los cuales son de presencia obligatoria, además son los más importantes en la jerarquía de la información específica de programas.
Su función es la de indicar para cada programa transportado por el múltiplex de transporte,la relación entre el número de programa (de 0 a 65535) y el PID de los paquetes que transportan una tabla que indica los datos que identifican el programa (Program Map Table, PMT). De manera que todos los programas del múltiplex en el transport stream son listados indicando que PMT transporta y sus PIDs, cada entrada en la PAT apunta a una PMT. La primera entrada, programa 0, es reservado para datos de red y contiene el PID de los paquetes de la NIT (Network Information Table). La PAT siempre se transmite de forma clara, aunque todos los programas estén cifrados.
A continuación se hace una descripción de un paquete de datos conteniendo una tabla PAT.
Descripción PAT Cuando existe Campo PAT Comentario Número
de bitsTable ID este campo identifica el contenido del TS, siempre a 0x0000 para Program Association Table 8 section syntax error siempre a 1 1 <<0>> 1 reserved 2 Section length informa del número de programas que se enumeran a continuación, especificando el número de bytes de esta sección, comenzando inmediatamente después de este campo e incluyendo el CRC. Los dos primeros bits deben ser cero, valor máximo 1021 12 transport stream ID identificación del tren en una red 16 reserved 2 version number incrementado a 1 cada modificación de programa 5 current next indicator Cuando es "1" indica que la PAT que se envió es aplicable. Cuando el bit es "0", indica que la tabla enviada aún no es aplicable y será aplicable la siguiente. 1 section number número de la sección en curso,primera será igual a 0 8 last section number número de la última sección(Ntot -1) 8 program number 0 Programa igual a 0 corresponde a la tabla de información de red(NIT) 16 reserved 3 network PID PID de la tabla de información de red 13 Repetido N
veces dependiendo de
section lengthProgram num Número de programa(1 a 65.535) 16 reserved siempre configurado a'111' 3 program map PID PID de la tabla de identificación de programa(PMT) 13 CRC32 32 PMT (Program Map Table)
Existe una por programa presente en el múltiplex. Principalmente indica (sin cifrar) los PID de los trenes elementales que constituyen el programa y, opcionalmente,otra información privada relativa al programa, que eventualmente puede ser cifrada (por ejemplo, ECM para el control de acceso). El PMT proporcionar información sobre cada programa presente en transport stream, incluida la program_number, y la lista de elementary sreams que componen programa. Cada corriente primaria se etiqueta con un valor stream_type (video,audio,datos...) PMT también incluye campos de longitud variable llamados descriptores que pueden incluir datos opcionales que describen el programa completo o corrientes individuales en el servicio del programa.
A continuación se hace una descripción de un paquete de datos conteniendo una tabla PMT.
Descripción PMT Campo(PMT) Comentario Número
de bitstable ID siempre a 0x02 para Program Map Table 8 section syntax indicator siempre a 1 1 <<0>> 1 reserved 2 section length número de programas listados abajo, los dos primeros bits siempre a 0, valor máximo 1021 12 program number especifica el programa descrito a continuación 16 reserved 2 version number incrementado por 1 cada modificación de PMT 5 current Next indicator Si el valor es 1 la tabla es vigente, si el valor es 0 la siguiente tabla será válida 1 section number siempre 0x00 8 last Section number siempre 0x00 8 reserved 3 PCR PID PID de la Program Cock Reference(PCR) 13 reserved 4 program info length longitud total de los datos útiles (bytes) 12 stream type1 naturaleza del tren elemental nº1 8 reserved 3 elementary PID1 PID del tren elemental nº1 13 reserved 4 ES info length1 N1=nº de bytes de los descriptores siguientes 12 descriptors1 datos complementarios N1 bytes stream type2 naturaleza del tren elemental nº2 8 reserved 3 elementary PID2 PID del tren elemental nº2 13 reserved 4 ES info length2 N2=nº de bytes de los descriptores siguientes 12 descriptors2 datos complementarios N2 bytes ...,etc.(ES nº.x) ... CRC32 CRC sobre 32 bits 32 CAT (Conditional Access Table)
Esta tabla debe estar presente a partir del momento en que al menos un programa sea de acceso condicional. Se transporta por los paquetes de PID=0x0001 e indica los PID de los paquetes que transportan los EMM por uno a varios sistemas de control de acceso (una de las informaciones necesarias para el descifrado de los programas de acceso condicional).
La norma MPEG-2 prevé la posibilidad de añadir informaciones complementarias opcionales que permiten que el receptor se configure automáticamente, al tiempo que ofrece al usuario ls posibilidad de <<navegar>> entre los numerosos servicios que se ofertan.
A continuación se hace una descripción de un paquete de datos conteniendo una tabla CAT.
Descripción CAT Campo(CAT) Comentario Número
de bitstable ID siempre a 0x0001 para Control Access Table 8 section syntax indicator siempre a 1 1 <<0>> 1 reserved 2 section length 2 bits de mayor peso a 0, valor máximo 1021 12 reserved 16 reserved 2 version number incrementado por 1 cada modificación de CAT 5 current next indicator Si el valor es 1 la tabla es vigente, si el valor es 0 la siguiente tabla será válida 1 section number número de la sección en curso (1ª==0) 8 last section number número de la última sección (Ntot-1) 8 descriptors datos de control de acceso máximo 1012 bytes CRC32 CRC sobre 32 bits 32 NIT (Network Information Table)
La tabla NIT transmite la información relativa a la organización física del multiplex y características de la propia red. Esta tabla de información de red, transporta informaciones específicas relativas a una red formada por varios canales físicos (por tanto varios trenes de transporte independientes)tales como (como mínimo)las frecuencias y/o los números de los canales de red utilizados en la configuración del receptor. Esta tabla además contiene el flujo de datos privados de información como teletexto,subtítulos...
Esta tabla, si está presente, constituye por definición el programa 0 del múltiplex y es considerada como datos privados.
Descripción NIT Campo(privado) Comentario Número
de bitstable ID libre (excepto de 00h a 3FH y FFH 8 section syntax indicator 0=formato libre después de lenght, 1=estándar 1 private indicator marcador (uso definido por el usuario) 1 reserved 2 private section length 2 bits de mayor peso a 1,valor máximo 4093 12 private data byte datos privados máximo 4093 bytes Como funciona
En el Transport Stream, todos los paquetes pertenecientes a un Elementary Stream dado tendran el mismo identificador(PID). El demultiplexador podrá seleccionar facilmente todos los datos para un elementary stream dado (video,audio o datos) simplemente aceptando los paquetes con el PID correcto.
La información específica de programa(PSI) es transportada en paquetes con único e inconfundible PID, algunos son estandarizados y otros son especificados por la program association table (PAT) y conditional acces table(CAT). Estos paquetes deben ser incluidos de forma periodica en cada transport stream.
Cuando el transport stream es recibido, el demultiplexor debe buscar PIDs 0 y 1 en las cabeceras de los paquetes. Todos los paquetes con PID 0 contienen la PAT y todos con PID 1 contienen la CAT. A partir de la PAT el demultiplexor puede encontrar los PIDs de la NIT y de cada program map table(PMT). Recuperando los paquetes que contienen los PMTs el demultiplexor podrá obtener los PIDs de cada elementary stream que componen el programa deseado. De manera que si es requerido la decodificación de un programa particular, todo lo que necesitaremos para encontrar todos los elementary streams conformando un programa será la PAT y entonces la PMT del programa a presentar. Si el programa está cifrado, el acceso a la CAT será necesario.Véase también
Categorías:- Códecs de vídeo
- Normas MPEG
Wikimedia foundation. 2010.