CEA -708 es el estándar para subtítulos para transmisiones de televisión digital (DTV) ATSC en los Estados Unidos y Canadá . Fue desarrollado por Electronic Industries Alliance.
A diferencia de los subtítulos RLE DVB y DVD, los subtítulos CEA-708 tienen un ancho de banda bajo y son textuales, como los subtítulos tradicionales EIA-608 y los subtítulos de teletexto EBU . Sin embargo, a diferencia de los pares de bytes EIA-608, los subtítulos CEA-708 no se pueden modular en la salida compuesta NTSC VBI de la línea 21 de un receptor ATSC y el receptor debe reproducirlos previamente con los cuadros de video digital, también incluyen más de los Conjunto de caracteres Latin-1 e incluye códigos auxiliares para admitir subtítulos UTF-32 completos y fuentes descargables. Los flujos de subtítulos CEA-708 también pueden encapsular opcionalmente pares de bytes EIA-608 internamente, un uso bastante común. [1]
Los subtítulos CEA-708 se inyectan en flujos de video MPEG-2 en los datos de usuario de la imagen . Los paquetes están en el orden de las imágenes y deben reorganizarse al igual que los marcos de las imágenes. Esto se conoce como el flujo de transporte DTVCC. Es un canal de ancho de banda fijo que tiene 960 bit / s asignados típicamente para subtítulos de Línea 21 "encapsulados" compatibles con versiones anteriores, y 8640 bit / s asignados para subtítulos CEA-708, para un total de 9600 bit / s. [2] El estándar ATSC A / 53 contiene los detalles de codificación. La forma principal de señalización es a través de un descriptor de subtítulos PSIP que indica el idioma de cada subtítulo y si está formateado para "lectura fácil" (nivel de tercer grado para estudiantes de idiomas) en el EIT de PSIP por evento y opcionalmente en el H.222 PMT solo si el video siempre envía datos de subtítulos.
Los decodificadores de subtítulos CEA-708 son requeridos en los EE. UU. Por la regulación de la FCC en todos los televisores digitales de 13 "(33 cm) de diagonal o más grandes. Además, las regulaciones de la FCC requieren que algunas emisoras incluyan subtítulos en un porcentaje de sus transmisiones.
Paquetes en CEA-708
Los flujos de subtítulos se transmiten con muchos envoltorios de paquetes a su alrededor. Estos son los datos del usuario de imágenes, que contienen los datos de subtítulos, que contienen cc_data, que contienen los paquetes del Canal de subtítulos, que contienen el Bloque de servicio, que contiene los flujos de subtítulos. Estos paquetes se describen en detalle en esta sección. Pero los propios flujos se describen en las siguientes secciones.
Esta capa se basa en el modelo de referencia del protocolo OSI :
Capas OSI | Capas DTVCC | Comentarios |
---|---|---|
Solicitud | Interpretación | Emitir comandos y agregar texto a las ventanas |
Presentación | Codificación | Rompiendo comandos y personajes individuales |
Sesión | Servicio | Paquetes de bloques de servicios |
- | Paquete | Ensamblaje de paquetes DTVCC a partir de paquetes cc_data |
Transporte | Inyección | cc_data Paquetes extraídos de fotogramas de video |
La red | no usado | enlace conectado directamente |
Enlace | SMPTE 259M o H.222 o MXF | fotogramas de video divididos del formato de enlace |
Físico | SDI o 8VSB | formato de enlace demodulado de transmisión |
Esta sección describirá los diversos paquetes, la capa de codificación y las capas de presentación se describen en el resto de este documento.
Datos de usuario de imagen
Estos se insertan antes de un paquete de video o fotograma de video activo SMPTE 259M . Los paquetes de video comunes son un encabezado de imagen, un conjunto de parámetros de imagen y una esencia de formato de intercambio de material .
Largo | Nombre | Tipo | Valor |
---|---|---|---|
32 bits | user_data_start_code | bslbf estampado | 0x000001B2 [3] |
32 bits | identificador_usuario | ASCII bslbf | GA94 [4] |
8 bits | user_data_type_code | uimsbf | 3 |
X * 8 bits | user_data_type_structure | binario | forma libre |
bslbf: cadena de bits, el bit izquierdo primero; uimsbf: entero sin signo, el bit más significativo primero
Largo | Nombre | Tipo | Valor |
---|---|---|---|
8-16 bits | nal_unit | bslbf estampado | 6 en 8 bits para H.264 39 en 16 bits para H.265 |
8 bits | payloadType | uimsbf | 4 |
8 bits | payloadSize | uimsbf | variable |
8 bits | itu_t_t35_country_code | uimsbf | 181 |
16 bits | itu_t_t35_provider_code | uimsbf | 49 o 47 |
32 bits | ATSC_user_identifier (solo si el proveedor es 49) | ASCII bslbf | GA94 |
8 bits | ATSC1_data_user_data_type_code (solo si el proveedor es 47 o 49) | uimsbf | 3 |
8 bits | DIRECTV_user_data_length (solo si el proveedor tiene 47 años) | uimsbf | variable |
X * 8 bits | user_data_type_structure | binario | forma libre |
bslbf: cadena de bits, el bit izquierdo primero; uimsbf: entero sin signo, el bit más significativo primero
NOTA : el SEI dependiendo del codificador puede contener más cargas útiles que solo los subtítulos, por lo que sería necesario navegar por todos los tipos de carga útil que contiene.
Cuando itu_t_t35_country_code se establece en 181, itu_t_t35_provider_code define los fabricantes mantenidos en EE. UU.
El itu_t_t35_provider_code para los fabricantes mantenidos en EE. UU., Cuando se establece en 47 define datos de usuario de DirecTV y se establece en 49 define datos de usuario de ATSC .
El código ATSC_user_identifier para ATSC1_data es "GA94" y para EBU AFD_data es "DTG1".
Si ATSC1_user_data_type_code no es 3 para DTV CC, o 4 para SCTE EIA-608, o 5 para muestras de luma moduladas por amplitud de pulso SCTE, o 6 para datos de barras EBU, entonces el paquete terminará con los bytes 0x0, 0x0, 0x1 .
Largo | Nombre | Tipo | Defecto |
---|---|---|---|
16 o 128 bits | ancillary_flag o ancillary_header | bslbf estampado o 7 uimsbf | 0xFFFF o varía |
8 bits | data_id | uimsbf | 97 (0x61) |
8 bits | secundario_data_id | uimsbf | 1 |
8 bits | cuenta_datos | uimsbf | 78 (0x4E) |
16 bits | cdp_id | uimsbf | 0x9669 |
8 bits | cdp_data_count | uimsbf | 78 (0x4E) |
4 bits | cdp_framing_rate (30000/1001 = 4) | uimsbf | 4 |
4 bits | cdp_reserved | uimsbf | 15 (0xF) |
1 bit | cdp_timecode_added | bandera | 0 |
1 bit | cdp_data_block_added | bandera | 1 |
1 bit | cdp_service_info_added | bandera | 0 |
1 bit | cdp_service_info_start | bandera | 0 |
1 bit | cdp_service_info_changed | bandera | 0 |
1 bit | cdp_service_info_end | bandera | 0 |
1 bit | cdp_contains_captions | bandera | 1 |
1 bit | cdp_reserved | bandera | 1 |
16 bits | cdp_counter | uimsbf | varía |
8 bits | cdp_data_section | uimsbf | 0x72 |
X * 8 bits | user_data_type_structure | binario | forma libre |
8 bits | cdp_footer_section | uimsbf | 0x74 |
16 bits | cdp_counter | uimsbf | varía |
8 bits | cdp_checksum | uimsbf | varía |
bslbf: cadena de bits, el bit izquierdo primero; uimsbf: entero sin signo, el bit más significativo primero
Esta estructura fue diseñada para cualquier audio digital o metadatos que se sincronizarán con un cuadro de video. SDI transporta cada ocho bits en un paquete alineado de 10 bits, a diferencia de MXF que está alineado por bytes y los bytes de la bandera auxiliar se reemplazan por un encabezado de 128 bits. Si cdp_timecode_added es verdadero, entonces se inserta una sección de código de tiempo SMPTE de cinco bytes antes de cdp_data_section. Si cdp_service_info_added es verdadero, entonces se inserta un encabezado de dos bytes y siete bytes por lista de servicios de subtítulos después de cdp_data_section. El cdp_framing_rate se puede establecer en las siguientes enumeraciones: 1 para 24000/1001, 2 para 24, 3 para 25, 4 para 30000/1001, 5 para 30, 6 para 50, 7 para 60000/1001 y 8 para 60 fotogramas por segundo .
El cdp_timecode se usa cuando el flujo de datos cdp es discontinuo (es decir, no está relleno) y cdp_service_info se usa para agregar detalles adicionales a los metadatos de transmisión de PSIP , como el código de idioma, el lector fácil y el uso de pantalla ancha.
Cdp_checksum es el valor necesario para hacer que la suma aritmética del paquete completo (el primer byte de cdp_id a cdp_checksum, inclusive) módulo 256 sea igual a cero.
Largo | Nombre | Tipo | Defecto |
---|---|---|---|
1 bit (b7) | process_em_data_flag | bandera | 1 |
1 bit (b6) | process_cc_data_flag | bandera | 1 |
1 bit (b5) | bandera_de_datos_adicionales | bandera | 0 |
5 bits (b0-b4) | cc_count | uimsbf | variable |
8 bits | em_data (no en los datos de CDP) | uimsbf | 255 |
cc_count * 24 bits | cc_data_pkt's | bslbf | forma libre |
8 bits | marker_bits (no en los datos de CDP) | bslbf estampado | 255 |
24+ bits | ATSC_reserved_user_data (no en los datos de CDP) | bslbf | forma libre |
Los bits de marcador y los bits reservados deben configurarse de forma predeterminada. Si se establece additional_data_flag, ATSC_reserved_user_data estará al final del paquete, terminado por los bytes 0x0,0x0,0x1. Si se establece process_cc_data_flag, los cc_data_pkt deben analizarse de la siguiente manera:
En algún momento futuro, process_em_data_flag indicará si se procesa la cadena de bits em_data. Dado que el significado aún no estaba definido en la norma ATSC a / 53.
Paquete de datos de subtítulos ocultos (cc_data_pkt)
3 bytes en total:
Largo | Nombre | Tipo | Defecto |
---|---|---|---|
5 bits (b7-b3) | marcadores_bits (todos los 1) | bslbf estampado | 31 |
1 bit (b2) | cc_valid | bandera | 1 |
2 bits (b1-b0) | cc_type | bslbf | 0 |
8 bits | cc_data_1 | bslbf | Forma libre DTVCC / EIA-608 byte 1 |
8 bits | cc_data_2 | bslbf | Forma libre DTVCC / EIA-608 byte 2 |
Si cc_valid no está configurado, los cc_data_pkt se deben considerar como relleno y descartados. Si está configurado, cc_type será uno de los cuatro valores NTSC_CC_FIELD_1 = 0, NTSC_CC_FIELD_2 = 1, DTVCC_PACKET_DATA = 2, DTVCC_PACKET_START_START = 3. , los campos cc_data deben interpretarse como subtítulos EIA-608 (permitiendo 4 subtítulos en total, como lo hace EIA-608). Si cc_type es 3, entonces un decodificador debe comenzar a ensamblar un paquete de canal de subtítulos con cc_data como se describe a continuación, y si cc_type es 2, debe agregar cc_data a cualquier paquete de canal de subtítulos que se esté ensamblando. Si ya se está ensamblando un paquete DTVCC y cc_valid está configurado y cc_type es 3 o cc_valid es claro y cc_type es 2 o 3, entonces el paquete debe considerarse completo.
NOTA: En un decodificador de subtítulos, los paquetes cc_data deben volver a ensamblarse en el orden correcto para crear los paquetes DTVCC. El estándar no es claro en esto, pero parece que debe estar en el orden de visualización de los fotogramas, no en el orden de los fotogramas codificados. Esto significa que en el codificador DTVCC, los paquetes probablemente deberían dividirse e insertarse en los datos de usuario de la imagen como paquetes cc_data en el orden de visualización también.
NOTA: Para evitar este error en el estándar CEA-708, algunos codificadores codifican subtítulos solo en un tipo de cuadro, como solo cuadros P, o solo cuadros I, ya que si solo se usa un tipo de cuadro, la visualización del cuadro y el orden de codificación del cuadro son lo mismo.
Paquete DTVCC (cc_data_1 / cc_data_2)
Largo | Nombre | Tipo | Defecto |
---|---|---|---|
2 bits | secuencia de números | uimsbf | 0 |
6 bits | tamaño_paquete (si es 0, tamaño_paquete es 64) | uimsbf | variable |
(tamaño_paquete * 2-1) * 8 bits | de paquetes de datos | binario | forma libre |
Dentro de packet_data, solo hay un tipo de paquete. Esto se conoce como Bloque de servicios. Esto subdivide además el tren de transporte DTVCC en 63 subflujos, cada uno de los cuales describe un servicio de subtítulos discretos. El servicio 1 está designado como servicio de subtítulos principal, mientras que el servicio 2 es el servicio de idioma secundario. El descriptor de subtítulos describe cualquier otro servicio ofrecido. packet_size define el número de bloques de dos bytes que siguen con bloques impares rellenados con un byte NULL.
Paquete de bloque de servicio (packet_data)
Largo | Nombre | Tipo | Defecto |
---|---|---|---|
3 bits | número de servicio | uimsbf | 1 |
5 bits | tamaño de bloque | uimsbf | variable |
2 bits | null_fill (solo si service_number es 7) | alineación de bytes | 0 |
6 bits | Extended_service_number (solo si service_number es 7) | uimsbf | variable |
block_size * 8 bits | block_data (cuando block_size> 0) | uimsbf | forma libre |
Si service_number es 7, se agrega y se usa el extended_service_number en lugar del service_number. Si block_size es 0, service_number también debe ser cero sin block_data presente. Esto se conoce como encabezado de bloque de servicio nulo, que se utiliza para rellenar el paquete, cuando no se envían subtítulos.
Nota: Los bloques de servicio no pueden cruzar los límites de los paquetes del canal de subtítulos. Esto significa que cada paquete de canal de subtítulos se puede analizar sin mantener ningún estado para los bloques de servicio.
Codificación de secuencias de subtítulos (block_data)
Los 63 subflujos del servicio de subtítulos contienen un comando mixto y un flujo de texto, muy parecido a Telnet . Hay cuatro subgrupos de códigos lógicos: CL, GL, CR y GR. Cada uno tiene conjuntos de códigos de uno o varios caracteres.
Grupo CL: C0 | 0x00-0x1F | Subconjunto de códigos de control ASCII |
Grupo CR: C1 | 0x80-0x9F | Códigos de control de subtítulos |
Grupo CL: C2 | 0x1000-0x101F | Códigos de control misceláneos extendidos |
Grupo CR: C3 | 0x1080-0x109F | Conjunto de códigos de control extendido 2 |
Grupo GL: G0 | 0x20-0x7F | Versión modificada del conjunto de caracteres imprimibles ANSI X3.4 (ASCII) |
Grupo GR: G1 | 0xA0-0xFF | Caracteres ISO 8859-1 Latin 1 |
Grupo GL: G2 | 0x1020-0x107F | Conjunto de códigos de control extendido 1 |
Grupo GR: G3 | 0x10A0-0x10FF | Personajes e íconos futuros |
Siempre que se vea un carácter de comando, cualquier texto acumulado en el analizador debe eliminarse. Dado que es posible que sea necesario eliminar el texto cuando no hay ningún comando pendiente, existe un comando nulo conocido como comando ETX en el conjunto de comandos C0. También hay dos comandos especiales, Reset y DelayCancel. Estos deben analizarse con anticipación. Un comando Delay emitido anteriormente puede cancelarse en cualquier momento con un comando DelayCancel, por lo que una vez que se ve un DelayCancel, un decodificador debe buscar un DelayCancel y solo buscar un DelayCancel. Por otro lado, se envía un comando de reinicio para salir de un estado de decodificador desconocido y todos los datos antes de que se deban ignorar.
Grupos de personajes
Mesa C0
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | |
0x00 | NUL | ETX | BS | FF | CR | HCR | ||||||||||
0x10 | EXT1 | P16 |
NUL, BS, FF y CR se interpretan como están en los códigos de control ASCII. HCR mueve la ubicación del lápiz al principio de la línea actual y elimina su contenido. FF borra la pantalla y mueve la ubicación del lápiz a (0,0). ETX es el comando NULL mencionado anteriormente, que se usa para vaciar el texto a la ventana actual cuando no hay ningún otro comando pendiente. EXT1 se usa para escapar a las tablas 'C2', 'C3', 'G2' y 'G3' para el siguiente byte. Por último, P16 se puede utilizar para escapar de los dos bytes siguientes para mapas de caracteres chinos y otros mapas de gran tamaño.
Todos los caracteres en el rango 0x10-0x17, que actualmente incluye EXT1, van seguidos de un byte que debe interpretarse de manera diferente. Y, todos los caracteres en el rango 0x18-x1f, que actualmente incluye P16, van seguidos de dos bytes que deben interpretarse de manera diferente. Si un decodificador encuentra uno de estos y no sabe qué hacer, aún debe omitir el siguiente byte o dos, según corresponda, antes de continuar.
Tabla C1
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | |
0x80 | CW0 | CW1 | CW2 | CW3 | CW4 | CW5 | CW6 | CW7 | CLW | DSW | HDW | TGW | DLW | DLY | DLC | RST |
0x90 | SPA | SPC | SPL | SWA | DF0 | DF1 | DF2 | DF3 | DF4 | DF5 | DF6 | DF7 |
La Tabla C1 contiene todos los comandos de subtítulos definidos actualmente. Estos se describirán en detalle en la siguiente sección.
Mesa C2
La tabla C2 no contiene comandos a partir de la revisión A de CEA-708. Sin embargo, si se ve un comando en estos conjuntos de códigos, el decodificador debe omitir un número apropiado de los siguientes bytes.
0x00-0x07 | +0 bytes |
0x08-0x0f | +1 byte |
0x10-0x17 | +2 bytes |
0x18-0x1f | +3 bytes |
Mesa C3
La tabla C3 no contiene comandos a partir de la revisión A de CEA-708. Sin embargo, si se ve un comando en estos conjuntos de códigos, un decodificador debe omitir un número apropiado de los siguientes bytes.
0x80-0x87 | +4 bytes |
0x88-0x8f | +5 bytes |
Tabla G0
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | |
0x20 | SP | ! | " | # | PS | % | Y | ' | ( | ) | * | + | , | - | . | / |
0x30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
0x40 | @ | A | B | C | D | mi | F | GRAMO | H | I | J | K | L | METRO | norte | O |
0x50 | PAG | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
0x60 | ' | a | B | C | D | mi | F | gramo | h | I | j | k | l | metro | norte | o |
0x70 | pag | q | r | s | t | tu | v | w | X | y | z | { | | | } | ~ | Minnesota |
La tabla G0 consta en su mayor parte de caracteres ASCII. SP aquí es la abreviatura de Space. MN es una nota musical, que reemplaza el código de comando Delete en ASCII, y puede ser cualquiera de "♩", "♪", "♫" o "♬", según el fabricante del receptor.
Tabla G1
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | |
0xa0 | Oficina nacional de normas | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ | - | ® |  ̄ |
0xb0 | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
0xc0 | A | A | A | A | A | A | Æ | C | MI | MI | MI | MI | I | I | I | I |
0xd0 | D | NORTE | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
0xe0 | a | a | a | a | a | a | æ | C | mi | mi | mi | mi | I | I | I | I |
0xf0 | D | norte | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
La tabla G1 es básicamente el conjunto de caracteres ISO 8859-1 Latin-1. El carácter de nota 0xa0 es el espacio que no se separa, que se utilizará para evitar que el ajuste de palabras separe dos palabras en líneas separadas.
Tabla G2
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | |
0x20 | TSP | NBTSP | ... | S | Œ | |||||||||||
0x30 | BLK | ' | ' | " | " | • | ™ | s | œ | ℠ | Ÿ | |||||
0x40 | ||||||||||||||||
0x50 | ||||||||||||||||
0x60 | ||||||||||||||||
0x70 | ⅛ | ⅜ | ⅝ | ⅞ | │ | ┐ | └ | ─ | ┘ | ┌ |
TSP y NBTSP son el espacio transparente y el espacio transparente que no se rompe, respectivamente. La tabla G2 contiene varios caracteres que pueden no aparecer en todos los navegadores. BLK indica un bloque sólido que llena todo el bloque de caracteres con un color de primer plano sólido.
Tabla G3
La tabla G3 contiene solo un carácter, el icono [CC], con esquinas cuadradas. Este carácter está en 0xa0.
Comandos de subtítulos
bits | Nombre del comando | Parámetros | |
---|---|---|---|
ETX 0x03 | 8 | EndOfText | |
CW0 – CW7 0x80–0x87 | 8 | SetCurrentWindow0–7 | |
CLW 0x88 | dieciséis | ClearWindows | mapa de bits de la ventana |
DSW 0x89 | dieciséis | PantallaWindows | mapa de bits de la ventana |
HDW 0x8A | dieciséis | OcultarWindows | mapa de bits de la ventana |
TGW 0x8B | dieciséis | Alternar Windows | mapa de bits de la ventana |
DLW 0x8C | dieciséis | DeleteWindows | mapa de bits de la ventana |
DLY 0x8D | dieciséis | Demora | décimas de segundo |
DLC 0x8E | 8 | DelayCancel | |
RST 0x8F | 8 | Reiniciar | |
SPA 0x90 | 24 | SetPenAttributes | tamaño del bolígrafo, fuente, escritura, cursiva, subrayado |
SPC 0x91 | 32 | SetPenColor | color de primer plano, opacidad de primer plano, color de fondo, opacidad de fondo, color de borde, tipo de borde |
SPL 0x92 | 24 | SetPenLocation | fila columna |
SWA 0x97 | 40 | SetWindowAttributes | justificar, dirección de impresión, dirección de desplazamiento, ajuste de palabras, efecto de visualización, dirección del efecto, tasa de efecto. color de relleno, color del borde, tipo de borde, opacidad |
DF0 – DF7 0x98–0x9F | 56 | DefineWindow0–7 | prioridad, número de ancla, ancla vertical, ancla horizontal, recuento de filas, recuento de columnas, bloqueado, visible, centrado, ID de estilo |
EndOfText (0x03)
El comando EndOfText es un comando nulo que se puede usar para vaciar cualquier texto almacenado en búfer en la ventana actual. Todos los comandos fuerzan el vaciado de cualquier texto almacenado en búfer en la ventana actual, por lo que este comando solo es necesario cuando no hay ningún otro comando pendiente.
SetCurrentWindow0-7 (0x80-0x87)
SetCurrentWindow le dice al decodificador de subtítulos qué ventana describen los siguientes comandos: SetWindowAttributes, SetPenAttributes, SetPenColor, SetPenLocation. Si la ventana especificada aún no se ha creado con un comando DefineWindow, entonces SetCurrentWindow y los comandos de propiedades de la ventana se pueden ignorar de forma segura.
ClearWindows (0x88 + 1 byte)
ClearWindows borra todas las ventanas especificadas en el mapa de bits de la ventana de 8 bits.
DisplayWindows (0x89 + 1 byte)
DisplayWindows muestra todas las ventanas especificadas en el mapa de bits de la ventana de 8 bits.
HideWindows (0x8A + 1 byte)
HideWindows oculta todas las ventanas especificadas en el mapa de bits de la ventana de 8 bits.
ToggleWindows (0x8B + 1 byte)
ToggleWindows oculta todas las ventanas mostradas y muestra todas las ventanas ocultas especificadas en el mapa de bits de la ventana de 8 bits.
Eliminar Windows (0x8C + 1 byte)
DeleteWindows elimina todas las ventanas especificadas en el mapa de bits de la ventana de 8 bits. Si la ventana actual, según lo especificado por el último comando SetCurrentWindow, se elimina, la ventana actual se vuelve indefinida y los comandos de atributos de ventana no deberían tener efecto hasta después del siguiente comando SetCurrentWindow o DefineWindow.
Retraso (0x8D + 1 byte)
Delay suspende todo el procesamiento del servicio actual, excepto el escaneo DelayCancel y Reset. El período de suspensión se establece mediante el parámetro de un byte. El parámetro especifica la demora en décimas de segundo, por lo que la demora mínima es de 0.1 segundos y la demora máxima es de 25.5 segundos. Un retardo de cero segundos puede ignorarse con seguridad en un decodificador, pero no debe emitirse desde un codificador. Un retraso debe cancelarse si el búfer de entrada del decodificador de subtítulos se llena, se recibe un DelayCancel o Reset, o transcurre el tiempo de retraso especificado.
DelayCancel (0x8E)
DelayCancel finaliza cualquier retraso activo y reanuda el procesamiento normal de comandos. DelayCancel se debe escanear durante un retraso.
Restablecer (0x8F)
Reset borra todas las ventanas, cancela cualquier retraso activo y borra el búfer antes del comando Reset. Se debe escanear el reinicio durante una demora.
SetPenAttributes (0x90 + 2 bytes)
El comando SetPenAttributes especifica cómo se mostrarán ciertos atributos de los caracteres subsiguientes en la ventana actual, hasta el siguiente comando SetPenAttributes. Este comando tiene los siguientes parámetros:
+ - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | TXT_TAG | OFS | PSZ | | I | U | EDTYP | FNTAG | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 15 8 7 0 OFS = desplazamiento; PSZ = tamaño de la pluma I = alternar cursiva; U = alternar subrayado EDTYP = tipo de borde; FNTAG = etiqueta de fuente
- tamaño de lápiz, 2 bits, {PEQUEÑO = 0, ESTÁNDAR = 1, GRANDE = 2, VALOR_INLEGAL = 3}
- desplazamiento, 2 bits, {SUBSCRIPT = 0, NORMAL = 1, SUPERSCRIPT = 2, ILLEGAL_VAL = 3}
- etiqueta de texto, 4 bits, {dialog = 0, source_or_speaker_id = 1, electronically_reproduced_voice = 2, dialog_in_other_language = 3, voiceover = 4, audible_translation = 5, subtitle_translation = 6, voice_quality_description = 7, song_lyrics = 8, sound_effect_description = 10score_description , juramento = 11, indefinido_0 = 12, indefinido_1 = 13, indefinido_2 = 14, invisible = 15}
- etiqueta de fuente, 3 bits, {predeterminado = 0, monoespaciado_serif = 1, proporcional_serif = 2, monoespaciado_sanserif = 3, proporcional_sanserif = 4, casual = 5, cursiva = 6, smallcaps = 7}
- tipo de borde, 3 bits, {NONE = 0, RAISED = 1, DEPRESSED = 2, UNIFORM = 3, LEFT_DROP_SHADOW = 4, RIGHT_DROP_SHADOW = 5, ILLEGAL_VAL0 = 6, ILLEGAL_VAL1 = 7}
- subrayado, 1 bit, {NO = 0, YES = 1}
- cursiva, 1 bit, {NO = 0, SÍ = 1}
SetPenColor (0x91 + 3 bytes)
SetPenColor establece el color de primer plano, fondo y borde para los caracteres siguientes. El color se especifica con 6 bits, 2 para cada uno de los colores azul, verde y rojo. Los bits de orden más bajo son para el azul, los dos siguientes para el verde y los bits de orden más alto representan el rojo. La opacidad está representada por dos bits, representan SÓLIDO = 0, DESTELLO = 1, TRANSLÚCIDO = 2 y TRANSPARENTE = 3. El color del borde es el color de los bordes delineados del texto, pero el contorno comparte su opacidad con el primer plano, por lo que los bits de orden más alto del tercer byte de parámetro deben borrarse. Los parámetros son los siguientes:
+ - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | FOP | F_R | F_G | F_B | | BOP | B_R | B_G | B_B | | 0 | 0 | E_R | E_G | E_B | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 23 16 15 8 7 0 FOP = opacidad de primer plano; BOP = opacidad de fondo F_? = componente de color de primer plano; B_? = componente de color de fondo MI_? = componente de color del borde
- color de primer plano, 6 bits
- opacidad de primer plano, 2 bits
- color de fondo, 6 bits
- opacidad de fondo, 2 bits
- color del borde, 6 bits
SetPenLocation (0x92 + 2 bytes)
SetPenLocation establece la ubicación del siguiente fragmento de texto adjunto en la ventana actual. Tiene dos parámetros, fila y columna. Si una ventana no está bloqueada (consulte Definir ventana) y la fuente PEQUEÑA está en efecto, la ubicación puede estar fuera de las direcciones válidas.
+ - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | 0 | 0 | 0 | 0 | FILA | | 0 | 0 | COLUMNA | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 15 8 7 0
- fila, 4 bits, normalmente 0-14
- relleno nulo, 4 bits
- columna, 6 bits, normalmente 0-31 para formatos 4: 3 y 0-41 para formatos 16: 9
- relleno nulo, 2 bits
SetWindowAttributes (0x97 + 4 bytes)
SetWindowAttributes Establece los atributos de ventana de la ventana actual. El color de relleno se especifica con 6 bits, 2 para cada uno de los colores azul, verde y rojo. Los bits de orden más bajo son para el azul, los dos siguientes para el verde y los bits de orden más alto representan el rojo. La opacidad de relleno está representada por dos bits, representan SÓLIDO = 0, DESTELLO = 1, TRANSLÚCIDO = 2 y TRANSPARENTE = 3. El color del borde de la ventana se especifica de la misma manera. Sin embargo, el Tipo de borde se divide en dos campos. Deben combinarse, con el tipo de borde 01 representando los bits de orden inferior y el tipo de borde 2 el bit de orden superior. Una vez combinado, el tipo de borde tiene 6 valores válidos: NINGUNO = 0, RAISED = 1, DEPRESSED = 2, UNIFORM = 3, SHADOW_LEFT = 4 y SHADOW_RIGHT = 5.
+ - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | FOP | F_R | F_G | F_B | | BTP | B_R | B_G | B_B | | W | B | PRD | SCD | JST | | EFT_SPD | EFD | DEF | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 31 24 23 16 15 8 7 0 FOP = opacidad de relleno; BTP = bits inferiores del tipo de borde; B = bit superior del tipo de borde F_? = componente de color de relleno; B_? = componente de color del borde W = cambio de ajuste de palabra; PRD = dirección de impresión; SCD = dirección de desplazamiento JST = justificación; EFT_SPD = velocidad del efecto; EFD = dirección del efecto; DEF = efecto de visualización
- color de relleno, 6 bits. Color del interior de la ventana.
- relleno de opacidad, 2 bits. {SÓLIDO = 0, DESTELLO = 1, TRANSLÚCIDO = 2 y TRANSPARENTE = 3}
- color del borde, 6 bits. Color del borde de la ventana.
- tipo de borde 01, 2 bits. Consulte la discusión anterior.
- justificar, 2 bits. Para las direcciones de impresión de izquierda a derecha y de derecha a izquierda, los valores son: {IZQUIERDA = 0, DERECHA = 1, CENTRO = 2, COMPLETO = 3}, para las direcciones de impresión de arriba hacia abajo y de abajo hacia arriba los valores son: SUPERIOR = 0, INFERIOR = 1, CENTRO = 2, COMPLETO = 3
Para la justificación a la izquierda , los decodificadores deben mostrar cualquier parte de una fila de texto recibida cuando se recibe. Para justificación central , derecha y completa , los decodificadores pueden mostrar cualquier parte de una fila de texto recibida cuando se recibe, o pueden retrasar la visualización de una fila de texto recibida hasta la recepción de un indicador de finalización de fila. Un indicador de finalización de fila se define como la recepción de un CR , ETX o cualquier otro comando, excepto SetPenColor , SetPenAttributes o SetPenLocation donde la reubicación de la pluma está dentro de la misma fila.
La recepción de un carácter para una fila mostrada que ya contiene texto con justificación central , derecha o completa hará que la fila se borre antes de que se muestre el carácter recién recibido y cualquier carácter subsiguiente. La recepción de un comando de justificación que cambia la última justificación recibida para una ventana determinada hará que la ventana se borre.
- dirección de desplazamiento, 2 bits. Esto especifica en qué dirección se desplazará el texto cuando se llegue al final de una "línea" de título. Tiene uno de cuatro valores: LEFT_TO_RIGHT = 0, RIGHT_TO_LEFT = 1, TOP_TO_BOTTOM = 2 y BOTTOM_TO_TOP = 3.
- dirección de impresión, 2 bits. Esto especifica cómo se agrega el texto del pedido a una ventana. Tiene uno de cuatro valores: LEFT_TO_RIGHT = 0, RIGHT_TO_LEFT = 1, TOP_TO_BOTTOM = 2 y BOTTOM_TO_TOP = 3.
- ajuste de palabras, 1 bit. Si está habilitado el ajuste de palabras, de lo contrario, no se debe emplear el ajuste de palabras.
- tipo de borde 2, 1 bits. Consulte la discusión anterior.
- efecto de visualización, 2 bits. Esto especifica un efecto que se utilizará para mostrar u ocultar una ventana. Tiene uno de tres valores válidos: SNAP = 0, FADE = 1 y WIPE = 2. SNAP significa que la ventana debe asumir la opacidad total de inmediato. FADE significa que la ventana debe aparecer o desaparecer gradualmente a la velocidad del efecto . Finalmente, WIPE significa que la ventana debe volar dentro o fuera de la pantalla desde el borde del borde de la pantalla especificado en la dirección del efecto a la velocidad especificada en la velocidad del efecto.
- dirección del efecto, 2 bits. Esto especifica de dónde proviene un efecto de barrido en la visualización de la ventana. Tiene uno de cuatro valores: LEFT_TO_RIGHT = 0, RIGHT_TO_LEFT = 1, TOP_TO_BOTTOM = 2 y BOTTOM_TO_TOP = 3. Cuando la ventana se borra de la pantalla, debe limpiarse en la dirección opuesta a como se limpió en la pantalla.
- velocidad de efecto, 4 bits. Esto especifica en medio segundo cuánto tiempo debe tomar la visualización de un título o un efecto de ocultación, como FADE y WIPE. El tiempo máximo es de 7,5 segundos y el valor mínimo distinto de cero es de 0,5 segundos.
Los colores, la pintura de texto, los efectos y los tipos de bordes se pueden personalizar con los comandos SetWindowAttributes y SetPenAttributes . Sin embargo, es posible que el proveedor de subtítulos desee utilizar estilos de ventana estándar predefinidos. Un conjunto de estilos predefinidos se almacenará en los receptores. Este conjunto anticipará los tipos de ventanas de subtítulos más utilizados para conservar el ancho de banda del canal de subtítulos al eliminar la necesidad de transmitir comandos superfluos SetWindowAttributes y SetPenAttributes .
Los estilos de ventana y lápiz predefinidos se pueden especificar mediante el estilo de ventana y los parámetros de ID de estilo de lápiz en el comando Definir ventana .
DefineWindow07 (0x98-0x9F, + 6 bytes)
DefineWindow0-7 crea una de las ocho ventanas utilizadas por un decodificador de subtítulos. Este comando debe ser enviado periódicamente por un codificador de subtítulos incluso para ventanas preexistentes para que un decodificador de subtítulos recién sintonizado pueda comenzar a mostrar subtítulos. Cuando se emite en una ventana preexistente, el estilo de la pluma y el estilo de la ventana se pueden dejar nulos, esto le dice al decodificador que no cambie los estilos actuales si existen, e inicialice ambos al estilo 1 si la ventana no existe en su contexto.
+ - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | 0 | 0 | V | R | C | ANTERIOR | | P | VERT_ANCHOR | | HOR_ANCHOR | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 47 40 39 32 31 24 V = visible; R = palanca de bloqueo de fila; C = palanca de bloqueo de columna PRIOR = prioridad; P = alternancia relativa + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + | ANC_ID | ROW_CNT | | 0 | 0 | COL_COUNT | | 0 | 0 | WNSTY | PNSTY | + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + 23 16 15 8 7 0 WNSTY = estilo de ventana; PNSTY = estilo bolígrafo
Los parámetros son los siguientes:
- prioridad, 3 bits, 0-7. Solo se requiere un decodificador para mostrar hasta cuatro ventanas. Si se solicitan más de cuatro ventanas mostradas, el decodificador debe mostrar las cuatro ventanas de mayor prioridad.
- bloqueo de columna, 1 bit. Si se establece, el bloqueo de columna fija el número absoluto de columnas que se mostrarán. Si no se establece, un decodificador de subtítulos puede mostrar más columnas de texto cuando el tamaño de fuente lo permite, y un comando SetPenLocation puede ir a una ubicación fuera del tamaño de ventana definido.
- bloqueo de fila, 1 bit. Si se establece, el bloqueo de fila fija el número absoluto de filas que se mostrarán. Si no se establece, un decodificador de subtítulos puede mostrar más filas de texto cuando el tamaño de fuente lo permite, y un comando SetPenLocation puede ir a una ubicación fuera del tamaño de ventana definido.
- visible, 1 bit. Si se establece, esta bandera hace que la ventana se muestre al crearse, si no se establece, la ventana se oculta inicialmente.
- nulo, 2 bits. Relleno nulo.
- anclaje vertical, 7 bits. Posición vertical del punto de anclaje de la ventana. El rango es normalmente de 0 a 74. Cuando el posicionamiento relativo bit se establece sin embargo, el rango es de 0-99.
- posicionamiento relativo, 1 bit. Si se establece, el ancla horizontal y el ancla vertical representan coordenadas relativas, porcentajes, en lugar de coordenadas regulares.
- anclaje horizontal, 8 bits. Posición horizontal del punto de anclaje de la ventana. El rango es normalmente 0-209 cuando la relación de aspecto de la transmisión es 16: 9 y 0-159 cuando la relación de aspecto de la transmisión es 4: 3. Cuando el posicionamiento relativo bit se establece sin embargo, el rango es de 0-99.
- recuento de filas, 4 bits. Este es el número de filas de texto, asumiendo el tamaño de fuente ESTÁNDAR, la ventana se mantendrá. El rango es 0-15. NOTA: En la práctica, un decodificador debe agregar uno al número para obtener el efecto deseado. es decir, 0 -> 1, 1 -> 2, etc.
- ID de anclaje, 4 bits. Valores válidos: {UPPER_LEFT = 0, UPPER_CENTER = 1, UPPER_RIGHT = 2, MIDDLE_LEFT = 3, MIDDLE_CENTER = 4, MIDDLE_RIGHT = 5, LOWER_LEFT = 6, LOWER_CENTER = 7, LOWER_RIGHT = 8}
- recuento de columnas, 6 bits. Este es el número de columnas de texto, asumiendo el tamaño de fuente ESTÁNDAR, la ventana se mantendrá. El rango es 0-31 para transmisiones 4: 3 y 0-41 para transmisiones 16: 9. NOTA: En la práctica, un decodificador debe agregar uno al número para obtener el efecto deseado. es decir, 0 -> 1, 1 -> 2, etc.
- nulo, 2 bits. Relleno nulo.
- estilo bolígrafo, 3 bits. Si el valor es cero y esta es una nueva ventana, se debe usar el estilo de lápiz uno para los caracteres futuros. Si el valor es cero y se trata de una ventana existente, se debe seguir utilizando el estilo de lápiz anterior. Para valores distintos de cero, el estilo de lápiz debe establecerse como si se llamara a SetPenStyle con los parámetros de la tabla de estilos de lápiz , a continuación.
- estilo de ventana, 3 bits. Si el valor es cero y se trata de una nueva ventana, se debe utilizar el estilo de ventana uno para los caracteres futuros. Si el valor es cero y se trata de una ventana existente, se debe seguir utilizando el estilo de ventana anterior. Para valores distintos de cero, el estilo de la ventana debe establecerse como si se llamara a SetWindowStyle con los parámetros de la tabla de estilos de ventana a continuación.
- nulo, 2 bits. Relleno nulo.
Estilo de lápiz predefinido
A menos que se indique que el tamaño de fuente predefinido es estándar, el desplazamiento es normal, las cursivas y el subrayado no están configurados, el tipo de borde es ninguno, el color de primer plano es blanco, la opacidad de primer plano es sólida, el color de fondo es negro, la opacidad de fondo es sólida y el color de borde es negro .
- Defecto
- Serif monoespaciado
- Serif proporcional
- Sans Serif monoespaciado
- Sans Serif proporcional
- Sans Serif monoespaciado: la opacidad del fondo es transparente
- Sans Serif proporcional: la opacidad del fondo es transparente
Estilo de ventana predefinido
A menos que se indique que la justificación predefinida es izquierda, la dirección de impresión es de izquierda a derecha, la dirección de desplazamiento es de abajo hacia arriba, el ajuste de palabras está desactivado, el efecto de visualización es rápido, la dirección y velocidad del efecto no están configuradas, el color de relleno es negro, relleno la opacidad es sólida y el tipo de borde es ninguno.
- Ventana emergente de estilo CEA-608
- Ventana emergente con fondo transparente: la opacidad de relleno es transparente
- CEA-608 Style PopUp Centrado: la justificación es el centro
- Resumen de estilo CEA-608: ajuste de texto activado
- RollUp con fondo transparente: ajuste de palabras activado; la opacidad de relleno es transparente
- RollUp centrado en el estilo CEA-608: ajuste de texto activado; la justificación es el centro
- Cinta de teletipo: la dirección de impresión es de arriba a abajo; la dirección de desplazamiento es de derecha a izquierda
Texto / comandos
Ajuste de línea
A veces se puede desear que el ajuste de palabras se realice en un decodificador de subtítulos. Esto puede suceder porque el usuario final del decodificador de subtítulos especifica una fuente diferente a la que solicita el codificador, o el usuario final desea ver más texto del subtítulo de lo que normalmente es posible. Tenga en cuenta que SetWindowAttributes establece un indicador de ajuste de palabras, cuando se establece, esto indica que los subtítulos se escriben teniendo en cuenta el ajuste de palabras, y esto puede usarse como una pista para el decodificador de que el ajuste de palabras es seguro. El ajuste de palabras se puede realizar en caracteres de retorno de carro, espacios y guiones, sin embargo, tanto el espacio no divisible (0xA0 en la tabla G1) como el espacio transparente no divisible (0x21 en la tabla G2) no deben considerarse caracteres seguros. para reescribir.
ID de ancla
Hay nueve ID de ancla válidos, que se muestran a continuación:
Se utilizan para indicarle al decodificador de subtítulos cómo expandir el cuadro de texto a medida que se agrega texto a una ventana de subtítulos. A una ventana se le asigna un punto de anclaje o una ubicación y un ID de anclaje. Si el punto de anclaje es 0,0, y el ID de anclaje es 0, entonces la ventana se expandirá hacia abajo y hacia la derecha desde la esquina superior izquierda del área de subtítulos. Si el punto de anclaje es 50%, 50% y el ID de anclaje es 4, la ventana se expandirá igualmente en todas las direcciones desde el centro del área de subtítulos.
Fuentes
CEA-708 admite ocho etiquetas de fuente: indefinido, serif monoespaciado, serif proporcional, sans serif monoespaciado, sans serif proporcional, casual, cursiva, mayúsculas pequeñas. El primero no está definido y probablemente debería evitarse. Independientemente de cómo se implementen estas fuentes, debería ser posible subrayarlas y ponerlas en cursiva. No se necesitan versiones en negrita, pero debería ser posible dibujar el contorno de cada letra en un color y opacidad diferentes al del relleno. Finalmente, estas fuentes deben permitir superíndices, subíndices y ser capaces de admitir Latin-1 más los símbolos adicionales en CEA-708, como el símbolo [CC] y la docena de caracteres Unicode en este estándar. A continuación se muestran algunos ejemplos de fuentes; para obtener más información, consulte el artículo sobre fuentes de Wikipedia .
Serif proporcional | |
---|---|
Sans Serif proporcional | |
Ventanas
El área direccionable de la ventana debe estar siempre dentro del área de título seguro, de modo que todas las ubicaciones direccionables estén dentro de la ventana de visualización si el monitor sobreexplora la imagen en una pantalla no rectangular. Si el flujo de video tiene una relación de aspecto de 16: 9, las direcciones deben estar en el rango 0..74 para las direcciones verticales y 0..209 para las direcciones horizontales. Si el flujo de video tiene una relación de aspecto de 4: 3, las direcciones deben estar en el rango 0..74 para las direcciones verticales y 0..159 para las direcciones horizontales. Para otras relaciones de aspecto, se debe usar el direccionamiento relativo y tanto las direcciones verticales como las horizontales deben estar en el rango 0..99%.
El tamaño de la ventana se debe escalar en función del tamaño de la fuente. Teniendo esto en cuenta, se desaconsejan las filas de más de 32 caracteres incluso en la pantalla de proporción 16: 9 para que el usuario pueda seleccionar fuentes más grandes que las especificadas.
Bloqueo de filas y columnas
Las funciones de bloqueo de filas y columnas son compatibles con el estándar CEA-708-B, pero en la versión posterior CEA-708-C se ha asumido que tanto las filas como las columnas están bloqueadas. La funcionalidad básica es la siguiente:
En total, se proporcionan cuatro combinaciones 1) Fila bloqueada y columna bloqueada 2) Fila desbloqueada y columna bloqueada 3) Fila bloqueada y columna desbloqueada 4) Fila desbloqueada y columna desbloqueada
1. Fila bloqueada y columna bloqueada: si tanto las filas como las columnas están bloqueadas, el tamaño de la ventana en términos de columnas y filas no se puede ampliar.
Para una ventana, si el número de filas y columnas se define como, digamos 3 y 10, entonces el texto 'FILAS Y COLUMNAS NO ESTÁN BLOQUEADAS PARA SIEMPRE Y NUNCA' que viene en la fila 0 se ve como a continuación (suponga que el ajuste de palabras está desactivado)
1. FILAS Y C2.3.
Dado que ambos están bloqueados, el texto no se puede extender más allá de las 10 columnas y tampoco la fila no se puede extender más allá de la fila 0.
2. Fila desbloqueada y Columna bloqueada: En este caso, la ventana se puede extender hasta la fila máxima dada en el comando de definición de ventana. El mismo texto de arriba se verá como abajo
1. FILAS Y C2. LOS OLUMNOS SON3. NO BLOQUEADO
La fila está desbloqueada para que el texto se pueda extender hasta el máximo de filas de un comando de definición de ventana.
3. Fila bloqueada y columna desbloqueada: en este caso, la ventana se puede ampliar hasta el número máximo de columnas. Según el estándar CEA-708, el número máximo de columnas para cualquier ventana es 32. El mismo texto de arriba se ve a continuación
1. LAS FILAS Y COLUMNAS NO ESTÁN BLOQUEADAS2.3.
La columna está desbloqueada para que el texto se pueda extender hasta un máximo de columnas.
4. Fila desbloqueada y Columna desbloqueada: en este caso, la ventana puede extenderse en términos de filas y columnas. El mismo texto de arriba se ve como abajo
1. LAS FILAS Y COLUMNAS NO ESTÁN BLOQUEADAS2. PARA SIEMPRE Y SIEMPRE Y SIEMPRE
Dado que ambos están desbloqueados, el texto puede extenderse hasta 32 columnas y también filas totales.
Notas de implementación
- El tamaño mínimo de búfer para cada uno de los 63 servicios posibles (búfer de entrada de servicio) es de 128 bytes.
- En un decodificador de subtítulos, los comandos DelayCancel y Reset deben interpretarse fuera del mecanismo de almacenamiento en búfer. Debería ser seguro escanear solo los códigos 0x8E y 0x8F.
- En un codificador de subtítulos, es posible que los valores 0x8E y 0x8F deban codificarse en un parámetro para otro comando. Los comandos se pueden dividir en varios subcomandos para evitar este problema.
- El icono de subtítulos en el conjunto de códigos G3 no debe presentarse con esquinas redondeadas en un país de la OMC, debido a problemas de licencias de marcas comerciales.
Referencias
- ^ https://www.adobe.com/content/dam/acom/en/devnet/video/pdfs/introduction_to_closed_captions.pdf (2015) "La mayoría del contenido premium producido para los Estados Unidos todavía contiene 608 subtítulos incrustados en 608 sobre 708 formato digital ".
- ^ https://ecfsapi.fcc.gov/file/6008646915.pdf "Los subtítulos NTSC ... siempre deben colocarse en el flujo de datos del usuario antes de cualquier dato de subtítulos DTVCC" y "En promedio, los subtítulos NTSC tienen asignados 960 bps , y los subtítulos de DTVCC (EIA-708-A) se asignan 8640 bps "4 subtítulos son posibles como en EIA 608
- ^ Tabla A7 Sintaxis de datos de usuario de imagen6 para 5F485C53d01
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 20 de noviembre de 2010 . Consultado el 25 de mayo de 2012 .CS1 maint: copia archivada como título ( enlace )
enlaces externos
- Crítica de las fuentes de subtítulos CEA-708
- el estándar ANSI / CTA-708 R-2018 (sin cargo)