EIA-608 explained

EIA-608, also known as "line 21 captions" and "CEA-608",[1] was once the standard for closed captioning for NTSC TV broadcasts in the United States, Canada and Mexico. It was developed by the Electronic Industries Alliance and required by law to be implemented in most television receivers made in the United States.

It specifies an "Extended Data Service", which is a means for including a VCR control service with an electronic program guide for NTSC transmissions that operates on the even line 21 field, similar to the TeleText based VPS that operates on line 16 which is used in PAL countries.

EIA-608 captions are transmitted on either the odd or even fields of line 21 with an odd parity bit in the non-visible active video data area in NTSC broadcasts, and are also sometimes present in the picture user data in ATSC transmissions. It uses a fixed bandwidth of 480 bit/s per line 21 field for a maximum of 32 characters per line per caption (maximum four lines) for a 30 frame broadcast.[2] The odd field captions relate to the audio track and the even field captions related to the SAP or secondary audio track which is generally a second language translation of the primary audio, such as a French or Spanish translation of an English-speaking TV show.

Raw EIA-608 caption byte pairs are becoming less prevalent as digital television replaces analog. ATSC broadcasts instead use the EIA-708 caption protocol to encapsulate both the EIA-608 caption pairs as well as add a native EIA-708 stream. EIA-608 has had revisions with the addition of extended character sets to fully support the representation of the Spanish, French, German languages, and cross section of other Western European languages. EIA-608 was also extended to support two byte characters for the Korean and Japanese markets. The full version of EIA-708 has support for more character sets and better caption positioning options; however, because of existing EIA-608 hardware and revisions to the format, there has been little or no real world use of the format besides simple 608 to 708 inline conversions.

Channels

EIA-608 defines four channels of caption information, so that a program could, for example, have captions in four different languages. There are two channels, called 1 and 2 by the standard, in each of the two fields of a frame. The channels are often presented to users numbered simply as CC1-2 for the odd field and CC3-4 for the even field. Due to bandwidth limitations on either field, CC1 and CC3 are the only ones used, meaning that there has been little use for the second channel. Early Spanish SAP captioned broadcasts first used the second channel CC2 because the original caption decoders only read the first odd field, but later switched to using CC3 for bandwidth reasons. Due to the same bandwidth reasons XDS was never used by Spanish-speaking stations.

Within each channel, there are two streams of information which might be considered sub-channels: one carries "captions" and the other "text". The latter is not in common use due to the lack of hardware support and bandwidth available. Text is signaled by the use of text commands and can be used for a formatted URL string with a 16-bit checksum that designates a web site that the captions relate to or a local station communication channel.

This layering is based on the OSI Protocol Reference Model:

CC LayersOSI LayersDVB/MXF LayersComments
ApplicationInterpretationIssuing commands and appending text to rows
PresentationCodingBreaking up individual commands and characters
SessionChannelChannel Byte Stream
--SelectionCC channel assembly from CC byte pairs
InjectionTransportSynchronizationCC byte pairs extracted/synchronized with/from video frames
Networkunuseddirectly connected link
Linkvideo frames or VBI data split from link format
TVSDI or DVDPhysicallink format demodulated/retrieved from transmission/source

DVD GOP user data insertion

The user data structure that follows a H.262 GOP header is as follows (the same would apply after an ISO/IEC 14496-2 GOP header):

Length Name Type Default
32 bits user_data_start_code patterned bslbf 0x000001B2
16 bits user_identifier ASCII bslbf CC
8 bits user_data_type_code uimsbf 1
8 bits caption_block_size inverted uimsbf 0xf8
1 bit caption_odd_field_first flag 1
1 bit caption_filler alignment 0
5 bits caption_block_count uimsbf 15
1 bit caption_extra_field_added flag 0
X*24 bits caption_block binary free form

bslbf: bit string, left bit first ; uimsbf: unsigned integer, most significant bit first

Caption blocks are inserted after the sequence and GOP headers, so each block is for one second of video which would end up being one or two long lines or three to four short lines of text. Also that means if the caption_block_count is greater than 30 then the block contains both interleaved caption fields and one could devise the framing rate from the caption_block_count. However since the data is grouped together the framing rate will almost always be 30/1.001, unlike the ATSC method that inserts one byte pair for each field after the picture header making framing rates of 24/1.001 possible for HD content. Since when a decoder does a 3:2 pull-down for NTSC output the captions will remain in sync.

DVD Caption Block
Length Name Type Default
7 bits caption_filler alignment 0x7f
1 bit caption_odd_field uimsbf 1 or 0
8 bits caption_first_byte odd parity uimsbf 0x80
8 bits caption_second_byte odd parity uimsbf 0x80

DVB transport insertion

The packet-ed structure that is inserted before the H.222 video packet is as follows for a frame of associated video:

Length Name Type Default
32 bits private_stream_1_start_code patterned bslbf 0x000001BD
16 bits PES_packet_length uimsbf 176
2 bits PES_version uimsbf 2
1 bit PES_priority flag 0
2 bits PES_scrambling_control uimsbf 0
1 bit data_alignment_indicator flag 1
2 bits copyright
original
uimsbf 0
2 bits PTS_DTS_flag uimsbf 2
6 bits various_PES_flags uimsbf 0
8 bits PES_header_data_length uimsbf 36
40 bits PTS uimsbf varies
248 bits stuffing_bytes uimsbf 255
8 bits data_identifier uimsbf 153
8 bits data_unit_id uimsbf 197
8 bits data_unit_length uimsbf 3
2 bits reserved_future_use uimsbf 3
1 bit field_parity (CC1/2) flag 0
5 bits line_offset uimsbf 21
16 bits closed_captioning_data_block uimsbf 608 caption
8 bits data_unit_id uimsbf 197
8 bits data_unit_length uimsbf 3
2 bits reserved_future_use uimsbf 3
1 bit field_parity (CC3/4/XDS) flag 1
5 bits line_offset uimsbf 21
16 bits closed_captioning_data_block uimsbf 608 caption
8 bits data_unit_id uimsbf 255
8 bits data_unit_length uimsbf 124
124*8 bits stuffing_bytes uimsbf 255

bslbf: bit string, left bit first ; uimsbf: unsigned integer, most significant bit first

This structure was designed for any digital VBI data and was optimized to carry three or more 43-byte Teletext packets. e.g. a page header and two associated lines. For Teletext subtitles, the data_unit_id is set to 3. In this form, captions have to be separated into byte pairs spread over frames in one second of video rather than grouped into one block as with the DVD structure. The same is true for Teletext subtitles with more than one line of text.

SDI/MXF SMPTE 291M insertion

The packet-ed structure that is inserted before the SMPTE 259M active video frame or MXF essence video packet is coded as follows for a frame of associated video:

Length Name Type Default
16 or 128 bits ancillary_flag or
ancillary_header
patterned bslbf or
7 uimsbf
0xFFFF or
varies
8 bits data_id uimsbf 97
8 bits secondary_data_id uimsbf 2
8 bits data_count uimsbf varies
X*24 bits caption_data_block binary free form

bslbf: bit string, left bit first ; uimsbf: unsigned integer, most significant bit first

This structure was designed for any digital audio or metadata that is to be synchronized with a video frame. SDI transports every eight bits in a 10 bit aligned packet, unlike MXF which is byte aligned and the ancillary flag bytes are replaced by 128 bit header.

SDI/MXF Caption Block
Length Name Type Default
1 bit caption_odd_field
(CC1/2 = 1; CC3/4 = 0)
flag 1
2 bits caption_reserved uimsbf 0
5 bits caption_line_offset uimsbf 15
8 bits caption_first_byte odd parity uimsbf 0x80
8 bits caption_second_byte odd parity uimsbf 0x80

Extended Data Service

See main article: Extended Data Services. The EIA-608 data stream format includes Extended Data Service (XDS), a variety of information about the transmission. It is all optional,:

Characters

There are three sets of characters that the EIA-608 stream can direct the receiver to display: basic characters, special characters, and extended characters. A single two-byte EIA-608 command (represented by a single VBI line) can specify two basic characters, one special character, or one extended character.

Extended characters are a later addition to the standard and their decoding is optional.

EIA-608 provides controls for the color of the foreground and background of the text, underlining, blinking, and italics. The default color scheme is white characters on a black background, all opaque.

The Transparent Space special character implies a transparent background even in the absence of any background control commands. As the foreground of this character is a blank space, it really means a gap in the close caption text.

In these examples

  P = odd parity bit

Non-caption data

This is used to either pad out the field line when no captions are sent or for the eXtended Data Service.

          +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+              +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 null pad |P|0|0|0|0|0|0|0| |P|0|0|0|0|0|0|0| XDS metadata |P|0|0|0| CLASS | |P|0|0|0|  TYPE | 
          +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+              +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
          15             8   7             0               15             8   7             0

Basic North American character set

A command with bits 13 or 14 on directs the receiver to display two basic characters at the current cursor position for the current mode (closed caption or text). Each character is a code point (identifies the character to display), as follows.

                       +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
  modified 7-bit ASCII |P|  CHARACTER1 | |P|  CHARACTER2 |
                       +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
                       15             8   7             0

The code is almost identical to ASCII; the exceptions are shown in red.

BinaryDecimalHexGlyph
0010 00003220(SP)
0010 00013321!
0010 00103422"
0010 00113523
0010 01003624$
0010 01013725%
0010 01103826&
0010 01113927
0010 10004028(
0010 10014129)
0010 1010422Aá
0010 1011432B+
0010 1100442C,
0010 1101452D-
0010 1110462E.
0010 1111472F/
0011 000048300
0011 000149311
0011 001050322
0011 001151333
0011 010052344
0011 010153355
0011 011054366
0011 011155377
0011 100056388
0011 100157399
0011 1010583A
0011 1011593B
0011 1100603C<
0011 1101613D=
0011 1110623E>
0011 1111633F?
 
BinaryDecimalHexGlyph
0100 00006440@
0100 00016541A
0100 00106642B
0100 00116743C
0100 01006844D
0100 01016945E
0100 01107046F
0100 01117147G
0100 10007248H
0100 10017349I
0100 1010744AJ
0100 1011754BK
0100 1100764CL
0100 1101774DM
0100 1110784EN
0100 1111794FO
0101 00008050P
0101 00018151Q
0101 00108252R
0101 00118353S
0101 01008454T
0101 01018555U
0101 01108656V
0101 01118757W
0101 10008858X
0101 10018959Y
0101 1010905AZ
0101 1011915B[|-|0101 1100|align="center"|92|align="center"|5C|align="center"|é|-|0101 1101|align="center"|93|align="center"|5D|align="center"|]|-|0101 1110|align="center"|94|align="center"|5E|align="center"|í|-|0101 1111|align="center"|95|align="center"|5F|align="center"|ó|}
 
BinaryDecimalHexGlyph
0110 00009660ú
0110 00019761a
0110 00109862b
0110 00119963c
0110 010010064d
0110 010110165e
0110 011010266f
0110 011110367g
0110 100010468h
0110 100110569i
0110 10101066Aj
0110 10111076Bk
0110 11001086Cl
0110 11011096Dm
0110 11101106En
0110 11111116Fo
0111 000011270p
0111 000111371q
0111 001011472r
0111 001111573s
0111 010011674t
0111 010111775u
0111 011011876v
0111 011111977w
0111 100012078x
0111 100112179y
0111 10101227Az
0111 10111237Bç
0111 11001247C÷
0111 11011257DÑ
0111 11101267Eñ
0111 11111277FSB

In the table, SB represents a solid block. The apostrophe (code 27), which may originally have been intended to be a neutral apostrophe as in ASCII, is recommended to be rendered as a right single quotation mark (Unicode U+2019). For a neutral single quote/apostrophe, the plain single quote from the extended character set should be used.[3]

Special North American character set

The only typical use in North America of this set is the use of the eighth note character to denote changes from spoken dialogue to singing or musical only scenes.

It is an acceptable broadcast engineering practice when translating EIA-608 to Teletext for PAL compatible countries to substitute this character for a number sign because of its similarity to a sharp.

A command to display a special character has a first byte of 0x11 or 0x19 (depending upon channel). The second byte is a code point in the range 0x30–0x3F as follows.

 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 |P|0|0|1|C|0|0|1| |P|0|1|1|  CHAR |
 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 15             8   7             0
 P = odd parity ; C = second channel toggle
BinaryDecimalHexGlyph
0011 00004830
0011 00014931°
0011 00105032
0011 00115133¿
0011 01005234
0011 01015335¢
0011 01105436£
0011 01115537
0011 10005638à
0011 10015739TS
0011 1010583Aè
0011 1011593Bâ
0011 1100603Cê
0011 1101613Dî
0011 1110623Eô
0011 1111633Fû
TM is short for unregistered trademark and should be represented in superscript (like the Unicode character). TS in the table above represents a "transparent space" or non-breaking space. Finally, the Eighth note (♪) is used to denote singing or background music in captions.

Extended Western European character set

 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 |P|0|0|1|C|0|1|S| |P|0|1|CHARACTER|
 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 15             8   7             0
 P = odd parity ; C = second channel toggle ; S = char set toggle

These extended character sets are rarely used due to most European countries using the BBC Ceefax based Teletext system.

The Ceefax system is more prone to character errors due to the greater number of data bits (337 versus 16) encoded per VBI field, these errors occur either on noise prone analog transmissions or connections.

The second byte is a code point in the range 0x20-0x3F is as follows

+ Extended Spanish/MiscellaneousBinaryDecimalHexGlyph
0010 00003220Á
0010 00013321É
0010 00103422Ó
0010 00113523Ú
0010 01003624Ü
0010 01013725ü
0010 01103826
0010 01113927¡
0010 10004028
0010 10014129'
0010 1010422A
0010 1011432B
0010 1100442C
0010 1101452D·
0010 1110462E
0010 1111472F
 
+ Extended FrenchBinaryDecimalHexGlyph
0011 00004830À
0011 00014931Â
0011 00105032Ç
0011 00115133È
0011 01005234Ê
0011 01015335Ë
0011 01105436ë
0011 01115537Î
0011 10005638Ï
0011 10015739ï
0011 1010583AÔ
0011 1011593BÙ
0011 1100603Cù
0011 1101613DÛ
0011 1110623E«
0011 1111633F»
 
+ PortugueseBinaryDecimalHexGlyph
0010 00003220Ã
0010 00013321ã
0010 00103422Í
0010 00113523Ì
0010 01003624ì
0010 01013725Ò
0010 01103826ò
0010 01113927Õ
0010 10004028õ
0010 10014129
0010 1011432B\
0010 1100442C^
0010 1101452D_
0010 1110462E
0010 1111472F~
 
+ German/DanishBinaryDecimalHexGlyph
0011 00004830Ä
0011 00014931ä
0011 00105032Ö
0011 00115133ö
0011 01005234ß
0011 01015335¥
0011 01105436¤
0011 01115537
0011 10005638Å
0011 10015739å
0011 1010583AØ
0011 1011593Bø
0011 1100603C
0011 1101613D
0011 1110623E
0011 1111633F

SM is short for service mark and should be represented in superscript (like Unicode character). The single quote mark is a curly left and double quote marks are curly left and right. The plus signs refer to top left, top right, lower left and lower right corners for box drawing.

Non-Western Norpak character sets

When used all standard and extended character sets are unused in favor of the following predefined sets, care must be taken to not emulate any control commands. This is an extension submitted to the CEC by Norpak who made a similar extension to the Teletext format for the Chinese market. The main use has been to provide double byte code point captioning to the Japanese, Taiwanese and South Korean markets. A command to switch character sets has a first byte of 0x17 or 0x1F (depending upon channel). The second byte is a character set reference in the range 0x24-0x2A as follows

 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 |P|0|0|1|C|1|1|1| |P|0|1|0|CHARSET|
 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 15             8   7             0
BinaryDecimalHexSet in Use
0010 01003624Standard
0010 01013725Standard Double Height
0010 01103826Decoder Specific 1
0010 01113927Decoder Specific 2
0010 10004028China's GB 2312 (1980)
0010 10014129Korea's KS C 5601 (1987)
0010 1010422ALoadable

Control commands

Bits 15 and 7 are always odd parity bits. Bit 11 is always the channel bit.

Preamble address code with masking bit 15,11 and 7 as already defined abovecan be interpreted from following table

bits interpretation
14-13 always 0
12 always 1
10-8 row position indicator
6 always 1
5 row position indicator
4-1 text attribute indicator
0 underline indicator
Row Preamble Standard Address and Style
(Default Row 11 = 0,top rows 1-4 = 1-2,bottom rows 12-13 = 3)
                +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+                  +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 preamble style |P|0|0|1|C|0|ROW| |P|1|N|0|STYLE|U| preamble address |P|0|0|1|C|0|ROW| |P|1|N|1|CURSR|U|
                +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+                  +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
                15             8   7             0                   15             8   7             0
Row Preamble Extended Address and Style
(Bottom Rows 14-15 = 0,middle rows = 5-10 = 1-3)
                +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+                  +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 preamble style |P|0|0|1|C|1|ROW| |P|1|N|0|STYLE|U| preamble address |P|0|0|1|C|1|ROW| |P|1|N|1|CURSR|U|
                +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+                  +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
                15             8   7             0                   15             8   7             0
 P = odd parity ; C = second channel toggle
 U = underline toggle ; N = next row down toggle
 (if style or cursor position not set,
  defaults are regular white text with black background
  at cursor = 0, cursor - multiple of 4)
 text style enumerations:
  {white=0,green,blue,cyan,red,yellow,magenta,italic white}

The row bits specify which of the fifteen screen rows should contain the caption text: row 11 (0000), 1 (0010), 2 (0011), 3, 4, 12, 13, 14, 15, 5, 6, 7, 8, 9, or 10 (1111).

The attributes bits allow 16 possibilities, which are: white (0000), green, blue, cyan, red, yellow, magenta, italics, indent 0, indent 4, indent 8, indent 12, indent 16, indent 20, indent 24, indent 28 (1111).

For a midrow code these are as follows: Bits 14, 13, 10, 9, 6 and 4 are always 0, bits 12, 8 and 5 are always 1. Bits 3, 2 and 1 form the color attribute 0001X10X(see the listing of attributes). Bit 0 indicates underline.

Mid Row Style Change
(style remains in effect until either next change or end of row signaled by a control or preamble)
           +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+              +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
  bg color |P|0|0|1|C|0|0|0| |P|0|1|0|COLOR|T| midrow style |P|0|0|1|C|0|0|1| |P|0|1|0|STYLE|U|
           +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+              +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
           15             8   7             0               15             8   7             0
       +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+            +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
 no bg |P|0|0|1|C|1|1|1| |P|0|1|0|1|1|0|1| black text |P|0|0|1|C|1|1|1| |P|0|1|0|1|1|1|U|
       +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+            +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
       15             8   7             0             15             8   7             0
 P = odd parity ; C = second channel toggle
 T = partially transparent ; U = underline toggle
 bg color enumerations:
 {white=0,green,blue,cyan,red,yellow,magenta,black}

For other control codes these are as follows: Bits 14, 13, 9, 6 and 4 are always 0, bits 12, 10 and 5 are always 1. Bit 8 chooses between line 21 and 284. Bits 3, 2, 1 and 0 identify the particular action.

The command bits allow 16 possibilities, which are: resume caption loading (0000), backspace (0001), delete to end of row (0100), roll-up captions 2-rows, roll-up captions 3 rows, roll-up captions 4-rows, flash on (0.25 seconds once per second), resume direct captioning, text restart, resume text display, erase displayed memory, carriage return, erase nondisplayed memory, end of caption (1111).

For tabs these are as follows: Bits 14, 13, 6, 4, 3, 2 are always 0, bits 12, 10, 9, 8, 5 are always 1. Bits 1 and 0 determine the number of tab offsets.

Considering parity bit already ignored hex value have of 2 byte data is following command:

cc_data 0 (hex) cc_data 0 (binary) cc_data 1 (hex) cc_data 1 (binary) Command
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x20 00100000 resume caption loading
(start buffered caption text)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x21 00100001 backspace
(overwrite last char)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x22 00100010 alarm off
(unused)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x23 00100011 alarm on
(unused)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x24 00100100 delete to end of row
(clear line)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x25 00100101 roll up 2
(scroll size)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x26 00100110 roll up 3
(scroll size)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x27 00100111 roll up 4
(scroll size)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x28 00101000 flashes captions on
(0.25 seconds once per second)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x29 00101001 resume direct captioning
(start caption text)
0x14 (TXT1) or 0x1c (TXT2) or
0x15 (TXT3) or 0x1D (TXT4)
0001C10F 0x2A 00101010 text restart
(start non-caption text)
0x14 (TXT1) or 0x1c (TXT2) or
0x15 (TXT3) or 0x1D (TXT4)
0001C10F 0x2B 00101011 resume text display
(resume non-caption text)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x2C 00101100 erase display memory
(clear screen)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x2D 00101101 carriage return
(scroll lines up)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x2E 00101110 erase non displayed memory
(clear buffer)
0x14 (CC1) or 0x1c (CC2) or
0x15 (CC3) or 0x1D (CC4)
0001C10F 0x2F 00101111 end of caption
(display buffer)
0x17 (CC1/3) or 0x1F (CC2/4) 0001C111 0x21 00100001 tab offset 1
(add spacing)
0x17 (CC1/3) or 0x1F (CC2/4) 0001C111 0x22 00100010 tab offset 2
(add spacing)
0x17 (CC1/3) or 0x1F (CC2/4) 0001C111 0x23 00100011 tab offset 3
(add spacing)

External links

Notes and References

  1. S CTE 21 2012 - STANDARD FOR CARRIAGE OF VBI DATA IN CABLE DIGITAL TRANSPORT STREAMS. Society of Cable Telecommunications Engineers. 2012. SCTE 21. 13. 4 October 2012.
  2. Web site: Archived copy . 2020-04-07 . 2019-06-09 . https://web.archive.org/web/20190609213644/https://evertz.com/resources/eia_608_708_cc.pdf . dead .
  3. CEA-608-E R-2014 standard