Ir al contenido

Multiplexación DVB-C

Recablear un hotel, una planta de hospital o una residencia es lo más caro que alguien puede proponer en una reunión de reforma. Supone levantar suelos, abrir rozas, cerrar habitaciones y perder ingresos mientras duren las obras. Muy a menudo se propone no porque la infraestructura existente sea insuficiente, sino porque el sistema nuevo no sabe comunicarse con ella.

La red coaxial ya está ahí, en casi todos los edificios de este tipo, y ya llega a todas las habitaciones. Todos los televisores fabricados aproximadamente en los últimos quince años llevan integrado un sintonizador DVB-C. Poner los canales en el coaxial significa que la instalación funciona tal como está: ningún dispositivo por habitación que comprar, alimentar, montar, actualizar o sustituir cuando un huésped se lo lleva, y ninguna dependencia de la red inalámbrica de la que esos mismos huéspedes ya se quejan.

La contrapartida es que una portadora de difusión es un canal compartido de capacidad fija. Todo lo demás de esta página se deriva de ello.

Una tarjeta moduladora DVB-C compatible en una ranura PCIe del equipo. La tarjeta realiza la modulación; Castmux genera el transport stream multiplexado y configura la portadora.

Esto se ha desarrollado y medido con tarjetas TBS, y el hardware de referencia es la TBS 5862. La programación de la tarjeta se realiza mediante la herramienta del fabricante y los nodos de dispositivo que esta espera, así que una tarjeta de otro fabricante no es un simple cambio de configuración: consúltenos antes de comprarla.

ParámetroRango
FrecuenciaAproximadamente 47–1002 MHz, lo que cubre las bandas de cable VHF y UHF.
ConstelaciónQAM 16, 32, 64, 128 o 256.
Tasa de símbolosAproximadamente 1.0–7.14 MS/s.

Varias tarjetas, o varias salidas, significan varios múltiplex. Un dispositivo modulador controla un múltiplex; consulte Limitaciones.

Una portadora DVB-C tiene un bitrate neto fijo que depende exclusivamente de la tasa de símbolos y de la constelación:

Terminal window
# Net transport-stream bitrate of a DVB-C carrier
net = symbol_rate × log2(QAM) × 188/204

El término 188/204 corresponde al código externo Reed–Solomon: cada paquete de transporte de 188 bytes se transmite como 204 bytes en el cable, de modo que aproximadamente el 7.8% de la capacidad bruta es corrección de errores y no está disponible para vídeo.

Bitrate neto en Mbps para las combinaciones que probablemente usará:

Tasa de símbolosQAM 16QAM 64QAM 128QAM 256
5.000 MS/s18.427.632.336.9
6.111 MS/s22.533.839.445.1
6.875 MS/s25.338.044.350.7
6.900 MS/s25.438.144.550.9
6.952 MS/s25.638.444.851.3

Los dos puntos de trabajo habituales son 6.9 MS/s en QAM64, que da unos 38 Mbps, y 6.9 MS/s en QAM256, que da unos 50.9 Mbps. Una constelación más alta aporta capacidad a costa del margen de ruido: QAM256 necesita una red más limpia que QAM64, y en un coaxial antiguo con conectores corroídos y repartidores pasivos puede que ese margen no exista. Si los televisores del final de un tramo muestran bloques intermitentes, baje la constelación antes de culpar a la fuente.

El cálculo anterior da un techo teórico. Planificar hasta él producirá un múltiplex que se pixela justo en los momentos en que más importa.

Castmux no transcodifica, así que cada servicio ocupa el bitrate que esté produciendo su fuente, y las fuentes de este tipo son de bitrate variable. Un canal descrito como «HD de 7 Mbps» indica una media. En un plano fijo de estudio puede quedarse en 3 Mbps; en una panorámica de público, confeti, un campo de fútbol o una escena de acción puede superar los 10 en los picos. Que varios canales alcancen un pico a la vez no es improbable: a las 8 de la tarde está prácticamente garantizado.

Cuando la suma de los servicios supera la capacidad de la portadora, el multiplexor no tiene dónde colocar el exceso y se descartan paquetes. El daño no se limita al canal que se ha excedido: lo que se descarta sale del flujo compuesto, así que un único servicio voraz degrada la imagen de todos los servicios del múltiplex a la vez.

Un múltiplex se define por una frecuencia y los parámetros de su portadora. Cree uno y rellene:

CampoNotas
FrequencyElija entre los valores preestablecidos de canales UHF y VHF, o introduzca una frecuencia directamente. Los valores preestablecidos existen porque la mayoría de las instalaciones colocan las portadoras en las posiciones estándar de la canalización de cable, y la búsqueda automática de un televisor las encuentra antes.
ConstellationQAM 16, 32, 64, 128 o 256. Consulte capacidad.
Symbol rateDentro del rango de la tarjeta, aproximadamente 1.0–7.14 MS/s.
Modulator deviceSe detecta automáticamente. Los dispositivos ya asignados a otro múltiplex se excluyen de la lista, porque un dispositivo solo puede transportar uno.
Network nameSe transmite en la NIT y algunos televisores lo muestran durante la búsqueda. El nombre del establecimiento es una opción razonable.
Network IDIdentifica la red en su conjunto. Manténgalo igual en todos los múltiplex de un mismo edificio.
Transport stream IDIdentifica este múltiplex dentro de la red. Debe ser distinto en cada múltiplex.

Los canales que existen en Castmux aparecen en un conjunto de canales disponibles. Arrastre uno a la tarjeta de un múltiplex para añadirlo, y arrástrelo dentro de la tarjeta para reordenarlo.

El orden no es estético. La posición de un canal en el múltiplex es su slot, y el slot determina tanto el bloque de PID que recibe el servicio como su service ID.

Cada flujo elemental de un transport stream necesita un identificador de paquete único, y dos servicios que usen el mismo PID producen un múltiplex roto.

Castmux no presupone lo que contiene un canal. Antes de construir el múltiplex, sondea la propia salida multicast del canal y lee qué flujos elementales transporta realmente: vídeo, cada pista de audio, flujos de subtítulos, teletexto. Suponer una estructura fija sería más sencillo y sería un error constante: las fuentes difieren en cuántas pistas de audio llevan, en si hay subtítulos y en si el escalón seleccionado por un perfil de resolución lleva los mismos flujos que la maestra.

A continuación, cada slot recibe un bloque de 16 PID. Se eligen dieciséis para cubrir un peor caso realista —vídeo, varios idiomas de audio, varias pistas de subtítulos y teletexto—, con los bloques sin solaparse para que un cambio en un servicio nunca pueda colisionar con el siguiente.

De ello se derivan dos consecuencias, y ambas son deliberadas:

  • En un servicio con más de 16 flujos elementales, se descartan los sobrantes. La alternativa sería invadir el bloque del slot siguiente, lo que corrompe un canal completamente distinto. Perder el decimoséptimo flujo de un servicio es un fallo menor que estropear el de al lado, y es un fallo que queda confinado donde se originó.
  • Un canal que no se puede sondear queda fuera del múltiplex. No se añade con PID supuestos. Una suposición errónea produce un servicio cuya PMT apunta a flujos que no existen, y los televisores lo muestran como un canal que se sintoniza y luego no muestra nada: una avería que parece un televisor estropeado y no un sondeo fallido. Un canal omitido se ve de inmediato.

Un receptor DVB necesita información de servicio para interpretar una portadora. Castmux genera:

TablaFinalidadEstado
PATProgram Association Table. Enumera los servicios del múltiplex y dónde encontrar la PMT de cada uno.se genera
PMTProgram Map Table, una por servicio. Enumera los flujos elementales que componen el servicio y sus PID.se genera
SDT-ActualService Description Table de este múltiplex. Contiene el nombre que muestra cada servicio en el televisor.se genera
NIT-ActualNetwork Information Table de este múltiplex. Declara la red y los parámetros de sintonía de esta portadora.se genera
EITEvent Information Table: la guía de programación en pantalla. Se transmite para cada canal asociado a una guía XMLTV en un canal con motor pass-through; sin ella, al pulsar el botón de guía aparece una cuadrícula vacía. Consulte Guía de programación (EPG).si hay una guía configurada

Se indica explícitamente, porque cada uno de estos elementos es algo que un instalador puede esperar razonablemente y que, de lo contrario, descubriría durante la puesta en marcha:

FunciónPor qué importaEstado
LCNLos números lógicos de canal ponen el canal 5 en el botón 5 de todos los televisores del edificio, en lugar del orden en que cada televisor los haya encontrado.previsto
Enlace cruzado en la NITUn televisor que encuentra un múltiplex averigua por su NIT dónde están los demás, en lugar de barrer toda la banda para encontrarlos.previsto
TDT / TOTLa Time and Date Table y la Time Offset Table ajustan el reloj de todos los televisores de los huéspedes a partir de la señal de difusión, para que nadie tenga que ponerlos en hora a mano.previsto

Un único slot puede redirigirse a otra fuente sin interrumpir la portadora. El múltiplex sigue funcionando, los demás servicios no se ven afectados y solo el servicio sustituido cambia lo que muestra.

Existe porque la alternativa es inaceptable en los entornos a los que sirve este producto. Cambiar una fuente reconstruyendo el múltiplex dejaría en blanco todos los televisores del edificio mientras dura, y en el peor de los casos obligaría a hacer una nueva búsqueda en los televisores por un cambio que afectaba a un solo canal. La sustitución in situ mantiene intacta la identidad del servicio, de modo que los televisores ven el mismo servicio continuar con otro contenido, que es exactamente lo que es un cambio de canal.

Un slot individual puede suspenderse y reanudarse sin tocar el resto del múltiplex. Resulta útil para un canal cuya fuente está en mantenimiento, o para uno que solo se quiere a determinadas horas.

Un cambio en la parrilla —añadir un canal, quitar uno, reordenar— reinicia todo el múltiplex. Es una medida tosca y es deliberada.

El motivo es que las tablas de información de servicio y los flujos elementales tienen que coincidir. Un múltiplex que sigue anunciando una PAT y una SDT que describen la parrilla anterior mientras transporta la nueva es peor que un múltiplex que desaparece brevemente: los televisores sintonizados muestran un servicio que existe en las tablas y no tiene paquetes, o mantienen sin avisar un nombre obsoleto sobre un contenido nuevo, y ninguna de las dos situaciones se resuelve sin una nueva búsqueda. Una interrupción breve y limpia deja después todos los receptores en un estado correcto.

Un múltiplex que se reinicia repetidamente en poco tiempo se da por vencido en lugar de entrar en un bucle. Un bucle de reinicios en una portadora de difusión es peor que una portadora caída: cada ciclo obliga a todos los televisores del edificio a volver a enganchar la señal, y un múltiplex detenido es al menos una avería inequívoca que se investiga. Revise en la vista de registro qué provocó los reinicios antes de reanudarlo.

Cada múltiplex asigna un service ID a partir del slot que ocupa el canal. Un canal colocado en dos múltiplex necesitaría dos identidades de servicio a la vez, y las tablas generadas para cada portadora describirían el mismo contenido de forma distinta. La interfaz de usuario impide la asignación en lugar de resolverla de forma arbitraria.

Si el mismo contenido tiene que aparecer realmente en dos portadoras, defínalo como dos canales con destinos distintos. Tenga en cuenta el coste en capacidad: son dos copias completas del bitrate, no una compartida.

Nuevas búsquedas y por qué importa la identidad del servicio

Section titled “Nuevas búsquedas y por qué importa la identidad del servicio”

Este es el problema operativo que condiciona varias de las decisiones anteriores, así que merece un apartado propio.

Un televisor almacena los servicios que encontró en su última búsqueda, indexados por su identidad. Cuando cambia la identidad de un servicio, la entrada almacenada deja de coincidir: el televisor puede mostrar el nombre equivocado sobre el contenido, mostrar un servicio que ya no tiene paquetes o simplemente perder el canal. La única solución fiable es una nueva búsqueda en cada televisor afectado.

En un hotel de doscientas habitaciones, una nueva búsqueda significa que alguien entre en doscientas habitaciones con un mando a distancia, o una ventana de mantenimiento que moleste a los huéspedes. Se mide en días de trabajo y es, con diferencia, la consecuencia más cara de cualquier cambio de los descritos en esta página.

Como actualmente los service ID se derivan del orden de los slots, cualquier reordenación provoca exactamente esto. La mitigación práctica hoy es planificar la parrilla antes de sintonizar el edificio, dejar huecos para los canales que prevea añadir y usar la sustitución en caliente en lugar de reordenar cuando cambie una fuente.

La identidad de servicio fija —un service ID ligado al canal y no a su posición, y protegido frente a cambios accidentales— está prevista, y es la solución adecuada.