MPEG-PSI

MPEG-PSI (MPEG - Program Specific Information) es un multiplexor de transporte de MPEG-2 que 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:

  • Program Association Table (PAT), tabla de asociación de programas,
  • Program Map Table (PMT), tabla de mapa de programa,
  • Conditional Acces Table (CAT), tabla de acceso condicional, y
  • Network Information Table (NIT), tabla de información de red.

Cada tabla está formada por paquetes de datos que son reconocidos por un particular identificador de paquete (PID).

La 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 PID 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.

PAT

En la 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 multiplexor 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 (PMT). De manera que todos los programas del multiplexor en el transport stream (TS) son listados indicando que PMT transporta y sus PID, 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. 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 bits
Table IDEste campo identifica el contenido del TS, siempre a 0x0000 para PAT8
section syntax errorsiempre a 11
<<0>>1
reserved2
Section lengthInforma 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 IDIdentificación del tren en una red.16
reserved2
version numberIncrementado a 1 cada modificación de programa.5
current next indicatorCuando 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 numberNúmero de la sección en curso, primera será igual a 0.8
last section numberNúmero de la última sección (Ntot -1)8
program number 0Programa igual a 0 corresponde a la tabla de información de red (NIT).16
reserved3
network PIDPID de la tabla de información de red.13
Repetido N
veces dependiendo de
section length
Program numNúmero de programa (1 a 65535).16
reservedSiempre configurado a '111'3
program map PIDPID de la tabla de identificación de programa (PMT).13
CRC3232

PMT

Existe una tabla PMT (Program Map Table) por programa presente en el multiplexor. 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 proporciona información sobre cada programa presente en transport stream, incluida la program_number, y la lista de elementary streams que componen el 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 bits
table IDSiempre a 0x02 para PMT8
section syntax indicatorSiempre a 1.1
<<0>>1
reserved2
section lengthNúmero de programas listados abajo, los dos primeros bits siempre a 0, valor máximo 1021.12
program numberEspecifica el programa descrito a continuación.16
reserved2
version numberIncrementado por 1 cada modificación de PMT.5
current Next indicatorSi el valor es 1 la tabla es vigente, si el valor es 0 la siguiente tabla será válida.1
section numberSiempre 0x008
last Section numberSiempre 0x008
reserved3
PCR PIDPID de la Program Cock Reference (PCR).13
reserved4
program info lengthLongitud total de los datos útiles (bytes).12
stream type1Naturaleza del tren elemental n.º 1.8
reserved3
elementary PID1PID del tren elemental n.º 1.13
reserved4
ES info length1N1=nº de bytes de los descriptores siguientes.12
descriptors1 Ddatos complementariosN1 bytes
stream type2Naturaleza del tren elemental n.º 2.8
reserved3
elementary PID2PID del tren elemental n.º 2.13
reserved4
ES info length2N2=nº de bytes de los descriptores siguientes.12
descriptors2Datos complementarios.N2 bytes
..., etc.(ES nº.x)...
CRC32CRC sobre 32 bits.32

CAT

La tabla CAT (Conditional Access Table) 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 la 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 bits
table IDSiempre a 0x0001 para CAT8
section syntax indicatorSiempre a 11
<<0>>1
reserved2
section length2 bits de mayor peso a 0, valor máximo 1021.12
reserved16
reserved2
version numberIncrementado por 1 cada modificación de CAT.5
current next indicatorSi el valor es 1 la tabla es vigente, si el valor es 0 la siguiente tabla será válida1
section numberNúmero de la sección en curso (1ª==0).8
last section numberNúmero de la última sección (Ntot-1).8
descriptorsDatos de control de acceso.máximo 1012 bytes
CRC32CRC sobre 32 bits.32

NIT

La tabla NIT (Network Information Table) transmite la información relativa a la organización física del multiplexor 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 (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, etc.

Esta tabla, si está presente, constituye por definición el programa 0 del multiplexor y es considerada como datos privados.

Descripción NIT
Campo (privado) Comentario Número
de bits
table IDLibre (excepto de 00h a 3FH y FFH8
section syntax indicator0=formato libre después de lenght, 1=estándar.1
private indicatorMarcador (uso definido por el usuario).1
reserved2
private section length2 bits de mayor peso a 1, valor máximo 4093.12
private data byteDatos privados.Máximo 4093 bytes

Cómo funciona

En el Transport Stream, todos los paquetes pertenecientes a un Elementary Stream (ES) dado, tendrán el mismo identificador (PID). El demultiplexor podrá seleccionar fácilmente todos los datos para un ES 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 PAT y CAT. Estos paquetes deben ser incluidos de forma periódica en cada transport stream.

Cuando el transport stream es recibido, el demultiplexor debe buscar los PID 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 PID de la NIT y de cada PMT. Recuperando los paquetes que contienen los PMT, el demultiplexor podrá obtener los PID 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

Referencias

    Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.