Notas de Aplicación

Service_ID en ISDB-T

¿Qué es el Service_ID?

El Service_ID o Identificador de Servicio es un número que el operador puede asignar a un contenido en un stream MPEG-2 TS para distinguirlo entre todo el contenido del stream. Este número es indicado en las Tablas PAT y PMT, permitiendo que el receptor pueda asociarlo al contenido.

Normalmente, el Service_ID (o Program Number según la definición de la norma MPEG-2) es un número de 16 bits, es decir que puede valer desde 0 hasta 65535. El valor 0 está reservado para identificar la Tabla NIT, así que las opciones elegibles por el usuario estarían restringidas entre 1 y 65535.

En todos los estándares de televisión digital este número se usa para identificar unívocamente cada servicio. Cada uno lo adaptó de distintas formas y en ISDB-T se lo complicó aún más ya que es necesario realizar un cálculo para obtener el valor deseado. A continuación se hará una breve introducción y luego se explicará el cálculo definido en el estándar para lograr obtener en el televisor el valor deseado.

Otros Identificadores

El transporte MPEG-2 TS tiene varios identificadores que lo definen. A continuación se detallan algunos de ellos, los que tendrán relevancia para entender lo definido por el estándar ISDB-T.

  • Network_ID:
    Número identificador de la Red. Es indicado en la tabla NIT.
  • Transport Stream ID:
    Identificador del transporte dentro de la Red. Es indicado en las tablas PAT, NIT, SDT y EIT.
  • Original Network ID:
    Identificador del origen del contenido. Se indica en las tablas NIT, SDT y EIT.
  • remote_control_key_id:

Es el número de identificación que el Broadcaster asigna para ser seleccionado con el control remoto del receptor. En el estándar Japonés, este campo se usa para poder acceder a un servicio con solo apretar un botón del control remoto, y el mismo estándar define cómo asignar estos números a los Broadcasters . En la versión Argentina de la norma se utiliza este campo para enviar lo que se conoce como Canal Virtual con el mismo fin de poder acceder al servicio principal de un transporte desde los números del control remoto.

Aplicación en ISDB-T

Al generar el estándar ISDB-T se heredaron la mayoría de las estructuras de lo definido para DVB. Es por eso que la estructura de la información es casi idéntica. Pero muchos campos quedaron en desuso o se les dio una nueva utilidad.

Uno de los cambios definidos por ISDB-T es que los campos Network_ID, Transport_Stream_ID y Origianl_Network_ID deben ser iguales para un mismo stream, y distintos de un TS a otro. Este número unificado debería ser único para cada proveedor de contenidos y ser entregado por la autoridad federal de cada país encargada de administrar las transmisiones y licencias de TV Digital[1].

En el estándar Brasileño se definió un formato para la asignación de códigos a las estaciones transmisoras y la forma de convertir esos códigos a números para generar estos campos en el flujo de datos[2]. Esta definición fue copiada textualmente al estándar Argentino (SATVD-T), pero el Consejo Asesor aún no ha comenzado a asignar estos números aunque ya ha entregado varias licencias provisorias.

Al asignar una licencia, la autoridad de control debería asignar un identificador similar a este: ZYB205. Las dos primeras letras son fijas “ZY” y no se utilizan para los identificadores. La tercera letra puede ser A, B, P, Q o T y se debería convertir a número según su orden (A=0; B=1;…; T=4). Además, los números pueden variar desde 000 a 999. Entonces el network_ID para esta estación sería: B205 = 1205 = 0x04B5.

Cálculo del Service_ID

Toda esta introducción apunta a tener un poco más claro los distintos identificadores con el objetivo de entender el cálculo necesario para definir el Service_ID.

Cuando un televidente observe un contenido de una señal ISDB-T lo va a poder identificar en su receptor por medio de dos números separados por un punto: ej: 33.1. Estos dos números son definidos por el broadcaster al configurar el remultiplexor.

El primero número (33 en el ejemplo) es directamente el remote_control_key_ID. Este identificador también es conocido como Virtual_Channel o Canal Virtual. Este número generalmente suele estar asociado al canal de RF que el Broadcaster utiliza para su transmisión. El estándar argentino establece que, si el Broadcaster ya poseía una licencia para TV analógica, el mismo deberá configurar este valor con el número de canal analógico que utilizaba .Por ejemplo, si se transmite en el canal 33 de UHF (587,142857 MHz), se suele configurar el remote_control_key_ID en 33, pero si ese emisor tenía previamente asignado el canal 13 de VHF deberá configurar este campo con el valor 13. En la práctica esto no siempre es así y directamente se configura este valor igual al canal de UHF.

El segundo número lo calcula el receptor a partir de una cuenta que realiza entre los campos service_ID, original_network_ID y tipo de contenido.

Para conformar el service_ID se deberá primero incluir, en los 11 bits más significativos del mismo, los 11 bits menos significativos del Original_Network_ID. Los dos bits siguientes del service_ID deben representar obligatoriamente los parámetros para el tipo de servicio definido en la siguiente tabla.

01_AN_1

Los tres bits restantes deben representar el número de servicio para cada uno de los tipos definidos en la tabla anterior. Esto quiere decir que sólo puede haber 8 servicios de cada tipo (del 000 al 111). El servicio identificado con 000 debe ser el servicio principal de la emisora. En la siguiente imagen se muestra la estructura final del Service_ID.

02_AN_1

Ejemplo:
Suponemos una emisora que tiene un Original_Network_ID asignado igual a 1850. El objetivo es poder definir el servicio principal para que sea visto en el receptor como primer servicio, y también definir el servicio One-Seg. Entonces:

Original_Network_ID = 1850 = 0x073A = 0111 0011 1010b

11 bits LSB de Original_Network_ID = 11100111010

Tipo de servicio para el contenido principal = 00

Identificador del servicio principal = 000

Service_ID servicio principal = 1110 0111 0100 0000 = 0xE740 = 59.200d

Para el caso del One-Seg:

Tipo de Servicio = 11

Identificador = 000

Service_ID servicio One-Seg = 1110 0111 0101 1000 = 0xE758 = 59.224d

Para simplificar el cálculo mental se puede usar la siguiente regla nemotécnica aplicable a cualquier caso en donde se tenga Original_Network_ID < 2048.

Service_ID Principal = Original_Network_ID x 32

Service_ID One-Seg = (Original_Network_ID x 32) + 24

En el caso de que el Original_Network_ID sea mayor o igual a 2048, habrá que hacer primero el recorte del mismo para llevarlo a 11 bits como se explicó anteriormente para poder hacer el cálculo del Service_ID con la regla mostrada.

Cabe aclarar que si el transporte tiene más de 1 servicio Full-Seg, se deberán asignar los números consecutivos sumando de a 1 a partir del servicio principal. Para el caso de este ejemplo, el segundo servicio del transporte debería tener el Service_ID = 59201, el siguiente 59202 y así sucesivamente.

[1] ARIB TR-B14v3_8-2p3 Vol. 4, ARIB TR-B14v3_8-3p3 Vol. 7 Chapter 9 y SATVD-T NT-003.01.02
[2] ABNT NBR 15603-2 2007 Annex H

Publicado originalmente en la pagina web de VideoSwitch SRL (Landing page Videoswitch) por el Ing. Marcelo J.  Indarramendi, el 4 de noviembre de 2015.

VS_AN101

Anuncios