Packetized Elementary Stream ( PES ) es una especificación en MPEG-2 Parte 1 (Sistemas) (ISO/IEC 13818-1) e ITU-T H.222.0 [1] [2] que define el transporte de flujos elementales (generalmente la salida de un codificador de audio o video) en paquetes dentro de flujos de programa MPEG y flujos de transporte MPEG . [3] El flujo elemental se empaqueta encapsulando bytes de datos secuenciales del flujo elemental dentro de encabezados de paquetes PES.
Un método típico para transmitir datos de flujo elemental desde un codificador de video o audio es crear primero paquetes PES a partir de los datos de flujo elemental y luego encapsular estos paquetes PES dentro de paquetes de flujo de transporte (TS) o paquetes de flujo de programa (PS). Los paquetes TS pueden luego multiplexarse y transmitirse utilizando técnicas de transmisión, como las que se utilizan en ATSC y DVB .
Los flujos de transporte y los flujos de programa se construyen lógicamente a partir de paquetes PES. Los paquetes PES se deben utilizar para realizar conversiones entre flujos de transporte y flujos de programa. En algunos casos, no es necesario modificar los paquetes PES al realizar dichas conversiones. Los paquetes PES pueden ser mucho más grandes que el tamaño de un paquete de flujo de transporte. [3]
Si bien las banderas anteriores indican que los valores se agregan a campos opcionales de longitud variable, no se escriben simplemente. Por ejemplo, PTS (y DTS) se expande de 33 bits a 5 bytes (40 bits). Si solo está presente PTS, esto se hace mediante la concatenación de 0010b, los 3 bits más significativos de PTS, 1, los siguientes 15 bits, 1, los 15 bits restantes y 1. Si están presentes tanto PTS como DTS, se hace lo mismo, pero los primeros 4 bits antes del inicio de los bits PTS son 0011b (y no 0010b) y los primeros 4 bits antes del inicio de los bits DTS son 0001b. Otros bytes agregados tienen una codificación similar pero diferente.