15.119—Closed caption decoder requirements for analog television receivers.
(a)
Effective July 1, 1993, all TV broadcast receivers with picture screens 33 cm (13 in) or larger in diameter shipped in interstate commerce, manufactured, assembled, or imported from any foreign country into the United States shall comply with the provisions of this section.
Code of Federal Regulations
(b) Transmission format.
Closed-caption information is transmitted on line 21 of field 1 of the vertical blanking interval of television signals, in accordance with § 73.682(a)(22) of this chapter.
(c) Operating modes.
The television receiver will employ customer-selectable modes of operation for TV and Caption. A third mode of operation, Text, may be included on an optional basis. The Caption and Text Modes may contain data in either of two operating channels, referred to in this document as C1 and C2. The television receiver must decode both C1 and C2 captioning, and must display the captioning for whichever channel the user selects. The TV Mode of operation allows the video to be viewed in its original form. The Caption and Text Modes define one or more areas (called “boxes”) on the screen within which caption or text characters are displayed.
Code of Federal Regulations
(d) Screen format.
The display area for captioning and text shall fall approximately within the safe caption area as defined in paragraph (n)(12) of this section. This display area will be further divided into 15 character rows of equal height and 32 columns of equal width, to provide accurate placement of text on the screen. Vertically, the display area begins on line 43 and is 195 lines high, ending on line 237 on an interlaced display. All captioning and text shall fall within these established columns and rows. The characters must be displayed clearly separated from the video over which they are placed. In addition, the user must have the capability to select a black background over which the captioned letters are displaced.
(1) Caption mode.
In the Caption Mode, text can appear on up to 4 rows simultaneously anywhere on the screen within the defined display area. In addition, a solid space equal to one column width may be placed before the first character and after the last character of each row to enhance legibility. The caption area will be transparent anywhere that either:
(i)
No standard space character or other character has been addressed and no accompanying solid space is needed; or,
(ii)
An accompanying solid space is used and a “transparent space” special character has been addressed which does not immediately precede or follow a displayed character.
(e) Presentation format.
In analyzing the presentation of characters, it is convenient to think in terms of a non-visible cursor which marks the screen position at which the next event in a given mode and data channel will occur. The receiver remembers the cursor position for each mode even when data are received for a different address in an alternate mode or data channel.
(1) Screen addressing.
Two kinds of control codes are used to move the cursor to specific screen locations. In Caption Mode, these addressing codes will affect both row and column positioning. In Text Mode, the codes affect only column positioning. In both modes, the addressing codes are optional. Default positions are defined for each mode and style when no addressing code is provided.
(i)
The first type of addressing code is the Preamble Address Code (PAC). It assigns a row number and one of eight “indent” figures. Each successive indent moves the cursor four columns to the right (starting from the left margin). Thus, an indent of 0 places the cursor at Column 1, an indent of 4 sets it at Column 5, etc. The PAC indent is non-destructive to displayable characters. It will not affect the display to the left of the new cursor position on the indicated row. Note that Preamble Address Codes also set initial attributes for the displayable characters which follow. See paragraph (h) of this section and the Preamble Address Code table.
(ii)
The second type of addressing code is the Tab Offset, which is one of three Miscellaneous Control Codes. Tab Offset will move the cursor one, two, or three columns to the right. The character cells skipped over will be unaffected; displayable characters in these cells, if any, will remain intact while empty cells will remain empty, in the same manner that a PAC indent is non-destructive.
(f) Caption Mode.
There are three styles of presenting text in Caption Mode: roll-up, pop-on, and paint-on. Character display varies significantly with the style used, but certain rules of character erasure are common to all styles. A character can be erased by addressing another character to the same screen location or by backspacing over the character from a subsequent location on the same row. The entire displayed memory will be erased instantly by receipt of an Erase Displayed Memory command. Both displayed memory and non-displayed memory will be entirely erased simultaneously by either: The user switching receiver channels or data channels (C1/C2) or fields (F1/F2) in decoders so equipped; the loss of valid data (see paragraph (j) of this section); or selecting non-captioning receiver functions which use the display memory of the decoder. Receipt of an End of Caption command will cause a displayed caption to become non-displayed (and vice versa) without being erased from memory. Changing the receiver to a non-captioning mode which does not require use of the decoder's display memory will leave that memory intact, and the decoder will continue to process data as if the caption display were selected.
(1) Roll-up.
Roll-up style captioning is initiated by receipt of one of three Miscellaneous Control Codes that determine the maximum number of rows displayed simultaneously, either 2, 3 or 4 contiguous rows. These are the three Roll-Up Caption commands.
(i)
The bottom row of the display is known as the “base row”. The cursor always remains on the base row. Rows of text roll upwards into the contiguous rows immediately above the base row to create a “window” 2 to 4 rows high.
(ii)
The Roll-Up command, in normal practice, will be followed (not necessarily immediately) by a Preamble Address Code indicating the base row and the horizontal indent position. If no Preamble Address Code is received, the base row will default to Row 15 or, if a roll-up caption is currently displayed, to the same base row last received, and the cursor will be placed at Column 1. If the Preamble Address Code received contains a different base row than that of a currently displayed caption, the entire window will move intact (and without erasing) to the new base row immediately.
(iii)
Each time a Carriage Return is received, the text in the top row of the window is erased from memory and from the display or scrolled off the top of the window. The remaining rows of text are each rolled up into the next highest row in the window, leaving the base row blank and ready to accept new text. This roll-up must appear smooth to the user, and must take no more than 0.433 second to complete. The cursor is automatically placed at Column 1 (pending receipt of a Preamble Address Code).
(iv)
Increasing or decreasing the number of roll-up rows instantly changes the size of the active display window, appropriately turning on or off the display of the top one or two rows. A row which is turned off should also be erased from memory.
(v)
Characters are always displayed immediately when received by the receiver. Once the cursor reaches the 32nd column position on any row, all subsequent characters received prior to a Carriage Return, Preamble Address Code, or Backspace will be displayed in that column replacing any previous character occupying that address.
(vi)
The cursor moves automatically one column to the right after each character or Mid-Row Code received. A Backspace will move the cursor one column to the left, erasing the character or Mid-Row Code occupying that location. (A Backspace received when the cursor is in Column 1 will be ignored.)
(vii)
The Delete to End of Row command will erase from memory any characters or control codes starting at the current cursor location and in all columns to its right on the same row. If no displayable characters remain on the row after the Delete to End of Row is acted upon, the solid space (if any) for that row should also be erased to conform with the following provisions.
(viii)
If a solid space is used for legibility, it should appear when the first displayable character (not a transparent space) or Mid-Row Code is received on a row, not when the Preamble Address Code, if any, is given. A row on which there are no displayable characters or Mid-Row Codes will not display a solid space, even when rolled up between two rows which do display a solid space.
(ix)
If the reception of data for a row is interrupted by data for the alternate data channel or for Text Mode, the display of caption text will resume from the same cursor position if a Roll-Up Caption command is received and no Preamble Address Code is given which would move the cursor.
(x)
A roll-up caption remains displayed until one of the standard caption erasure techniques is applied. Receipt of a Resume Caption Loading command (for pop-on style) or a Resume Direct Captioning command (for paint-on style) will not affect a roll-up display. Receipt of a Roll-Up Caption command will cause any pop-on or paint-on caption to be erased from displayed memory and non-displayed memory.
(2) Pop-on.
Pop-on style captioning is initiated by receipt of a Resume Caption Loading command. Subsequent data are loaded into a non-displayed memory and held there until an End of Caption command is received, at which point the non-displayed memory becomes the displayed memory and vice versa. (This process is often referred to as “flipping memories” and does not automatically erase memory.) An End of Caption command forces the receiver into pop-on style if no Resume Caption Loading command has been received which would do so. The display will be capable of 4 full rows, not necessarily contiguous, simultaneous anywhere on the screen.
(i)
Preamble Address Codes can be used to move the cursor around the screen in random order to place captions on Rows 1 to 15. Carriage Returns have no effect on cursor location during caption loading.
(ii)
The cursor moves automatically one column to the right after each character or Mid-Row Code received. Receipt of a Backspace will move the cursor one column to the left, erasing the character or Mid-Row Code occupying that location. (A Backspace received when the cursor is in Column 1 will be ignored.) Once the cursor reaches the 32nd column position on any row, all subsequent characters received prior to a Backspace, an End of Caption, or a Preamble Address Code, will replace any previous character at that location.
(iii)
The Delete to End of Row command will erase from memory any characters or control codes starting at the current cursor location and in all columns to its right on the same row. If no displayable characters remain on a row after the Delete to End of Row is acted upon, the solid space (if any) for that element should also be erased.
(iv)
If data reception is interrupted during caption loading by data for the alternate caption channel or for Text Mode, caption loading will resume at the same cursor position if a Resume Caption Loading command is received and no Preamble Address Code is given that would move the cursor.
(v)
Characters remain in non-displayed memory until an End of Caption command flips memories. The caption will be erased without being displayed upon receipt of an Erase Non-Displayed Memory command, a Roll-Up Caption command, or if the user switches receiver channels, data channels or fields, or upon the loss of valid data (see paragraph (j) of this section).
(vi)
A pop-on caption, once displayed, remains displayed until one of the standard caption erasure techniques is applied or until a Roll-Up Caption command is received. Characters within a displayed pop-on caption will be replaced by receipt of the Resume Direct Captioning command and paint-on style techniques (see below).
(3) Paint-on.
Paint-on style captioning is initiated by receipt of a Resume Direct Captioning command. Subsequent data are addressed immediately to displayed memory without need for an End of Caption command.
(i)
Preamble Address Codes can be used to move the cursor around the screen in random order to display captions on Rows 1 to 15. Carriage Returns have no affect on cursor location during direct captioning. The cursor moves automatically one column to the right after each character or Mid-Row Code is received. Receipt of a Backspace will move the cursor one column to the left, erasing the character or Mid-Row Code occupying that location. (A Backspace received when the cursor is in Column 1 will be ignored.) Once the cursor reaches the 32nd column position on any row, all subsequent characters received prior to a Preamble Address Code or Backspace will be displayed in that column replacing any previous character occupying that location.
(ii)
The Delete to End of Row command will erase from memory any characters or control codes starting at the current cursor location and in all columns to its right on the same row. If no displayable characters remain on the row after the Delete to End of Row is acted upon, the solid space (if any) for that element should also be erased.
(iii)
If the reception of data is interrupted during the direct captioning by data for the alternate caption channel or for Text Mode, the display of caption text will resume at the same cursor position if a Resume Direct Captioning command is received and no Preamble Address Code is given which would move the cursor.
(iv)
Characters remain displayed until one of the standard caption erasure techniques is applied or until a Roll-Up Caption command is received. An End of Caption command leaves a paint-on caption fully intact in non-displayed memory. In other words, a paint-on style caption behaves precisely like a pop-on style caption which has been displayed.
(g) Character format.
Characters are to be displayed on the screen within a character “cell” which is the height and width of a single row and column. The following codes define the displayable character set. Television receivers manufactured prior to January 1, 1996 and having a character resolution of 5×7 dots, or less, may display the allowable alternate characters in the character table. A statement must be in a prominent location on the box or other package in which the receiver is to be marketed, and information must be in the owner's manual, indicating the receiver displays closed captioning in upper case only.
Character Set Table
Special Characters
These require two bytes for each symbol. Each hex code as shown will be preceded by a 11h for data channel 1 or by a 19h for data channel 2. For example: 19h 37h will place a musical note in data channel 2.
HEX | Example | Alternate | Description |
---|---|---|---|
30 | ® | See note 1 | Registered mark symbol |
31 | ° | Degree sign | |
32 | 1/2 | 1/2 | |
33 | ¿ | Inverse query | |
34 | TM | See note 1 | Trademark symbol |
35 | ¢ | Cents sign | |
36 | £ | Pounds Sterling sign | |
37 | ♪ | Music note | |
38 | à | A | Lower-case a with grave accent |
39 | Transparent space | ||
3A | è | E | Lower-case e with grave accent |
3B | â | A | Lower-case a with circumflex |
3C | ê | E | Lower-case e with circumflex |
3D | î | I | Lower-case i with circumflex |
3E | ô | O | Lower-case o with circumflex |
3F | û | U | Lower-case u with circumflex |
1 Note: The registered and trademark symbols are used to satisfy certain legal requirements. There are various legal ways in which these symbols may be drawn or displayed. For example, the trademark symbol may be drawn with the “T” next to the “M” or over the “M”. It is preferred that the trademark symbol be superscripted, i.e., XYZ TM. It is left to each individual manufacturer to interpret these symbols in any way that meets the legal needs of the user. |
HEX | Example | Alternate | Description |
---|---|---|---|
20 | Standard space | ||
21 | ! | Exclamation mark | |
22 | “ | Quotation mark | |
23 | # | Pounds (number) sign | |
24 | $ | Dollar sign | |
25 | % | Percentage sign | |
26 | & | Ampersand | |
27 | ' | Apostrophe | |
28 | ( | Open parentheses | |
29 | ) | Close parentheses | |
2A | á | A | Lower-case a with acute accent |
2B | Plus sign | ||
2C | , | Comma | |
2D | − | Minus (hyphen) sign | |
2E | . | Period | |
2F | / | Slash | |
30 | 0 | Zero | |
31 | 1 | One | |
32 | 2 | Two | |
33 | 3 | Three | |
34 | 4 | Four | |
35 | 5 | Five | |
36 | 6 | Six | |
37 | 7 | Seven | |
38 | 8 | Eight | |
39 | 9 | Nine | |
3A | : | Colon | |
3B | ; | Semi-colon | |
3C | < | Less than sign | |
3D | = | Equal sign | |
3E | > | Greater than sign | |
3F | ? | Question mark | |
40 | @ | At sign | |
41 | A | Upper-case A | |
42 | B | Upper-case B | |
43 | C | Upper-case C | |
44 | D | Upper-case D | |
45 | E | Upper-case E | |
46 | F | Upper-case F | |
47 | G | Upper-case G | |
48 | H | Upper-case H | |
49 | I | Upper-case I | |
4A | J | Upper-case J | |
4B | K | Upper-case K | |
4C | L | Upper-case L | |
4D | M | Upper-case M | |
4E | N | Upper-case N | |
4F | O | Upper-case O | |
50 | P | Upper-case P | |
51 | Q | Upper-case Q | |
52 | R | Upper-case R | |
53 | S | Upper-case S | |
54 | T | Upper-case T | |
55 | U | Upper-case U | |
56 | V | Upper-case V | |
57 | W | Upper-case W | |
58 | X | Upper-case X | |
59 | Y | Upper-case Y | |
5A | Z | Upper-case Z | |
5B | [ | Open bracket | |
5C | é | E | Lower-case e with acute accent |
5D | ] | Close bracket | |
5E | í | I | Lower-case i with acute accent |
5F | ó | O | Lower-case o with acute accent |
60 | ú | U | Lower-case u with acute accent |
61 | a | A | Lower-case a |
62 | b | B | Lower-case b |
63 | c | C | Lower-case c |
64 | d | D | Lower-case d |
65 | e | E | Lower-case e |
66 | f | F | Lower-case f |
67 | g | G | Lower-case g |
68 | h | H | Lower-case h |
69 | i | I | Lower-case i |
6A | j | J | Lower-case j |
6B | k | K | Lower-case k |
6C | l | L | Lower-case l |
6D | m | M | Lower-case m |
6E | n | N | Lower-case n |
6F | o | O | Lower-case o |
70 | p | P | Lower-case p |
71 | q | Q | Lower-case q |
72 | r | R | Lower-case r |
73 | s | S | Lower-case s |
74 | t | T | Lower-case t |
75 | u | U | Lower-case u |
76 | v | V | Lower-case v |
77 | w | W | Lower-case w |
78 | x | X | Lower-case x |
79 | y | Y | Lower-case y |
7A | z | Z | Lower-case z |
7B | ç | C | Lower-case c with cedilla |
7C | ÷ | Division sign | |
7D | Ñ | Upper-case N with tilde | |
7E | ñ | Ñ | Lower-case n with tilde |
7F | ▪ | Solid block |
(h) Character Attributes—
(1) Transmission of Attributes.
A character may be transmitted with any or all of four attributes: Color, italics, underline, and flash. All of these attributes are set by control codes included in the received data. An attribute will remain in effect until changed by another control code or until the end of the row is reached. Each row begins with a control code which sets the color and underline attributes. (White non-underlined is the default display attribute if no Preamble Address Code is received before the first character on an empty row.) Attributes are not affected by transparent spaces within a row.
(i)
All Mid-Row Codes and the Flash On command are spacing attributes which appear in the display just as if a standard space (20h) had been received. Preamble Address Codes are non-spacing and will not alter any attributes when used to position the cursor in the midst of a row of characters.
(ii)
The color attribute has the highest priority and can only be changed by the Mid-Row Code of another color. Italics has the next highest priority. If characters with both color and italics are desired, the italics Mid-Row Code must follow the color assignment. Any color Mid-Row Code will turn off italics. If the least significant bit of a Preamble Address Code or of a color or italics Mid-Row Code is a 1 (high), underlining is turned on. If that bit is a 0 (low), underlining is off.
(iii)
The flash attribute is transmitted as a Miscellaneous Control Code. The Flash On command will not alter the status of the color, italics, or underline attributes. However, any color or italics Mid-Row Code will turn off flash.
(iv)
Thus, for example, if a red, italicized, underlined, flashing character is desired, the attributes must be received in the following order: a red Mid-Row or Preamble Address Code, an italics Mid-Row Code with underline bit, and the Flash On command. The character will then be preceded by three spaces (two if red was assigned via a Preamble Address Code).
(2) Display of attributes.
The underline attribute will be displayed by drawing a line beneath the character in the same color as the character. The flash attribute will be displayed by causing the character to blink from the display at least once per second. The italic attribute must be capable of being displayed by either a special italic font, or by the modification of the standard font by slanting. The user may be given the option to select other methods of italic display as well. The support of the color attributes is optional. If the color attributes are supported, they will be displayed in the color they have been assigned. If color attributes are not supported, the display may be in color, but all color changes will be ignored.
(i) Control codes.
There are three different types of control codes used to identify the format, location, attributes, and display of characters: Preamble Address Codes, Mid-Row Codes, and Miscellaneous Control Codes.
(1)
Each control code consists of a pair of bytes which are always transmitted together in a single field of line 21 and which are normally transmitted twice in succession to help insure correct reception of the control instructions. The first of the control code bytes is a non-printing character in the range 10h to 1Fh. The second byte is always a printing character in the range 20h to 7Fh. Any such control code pair received which has not been assigned a function is ignored. If the non-printing character in the pair is in the range 00h to 0Fh, that character alone will be ignored and the second character will be treated normally.
(2)
If the second byte of a control code pair does not contain odd parity (see paragraph (j) of this section), then the pair is ignored. The redundant transmission of the pair will be the instruction upon which the receiver acts.
(3)
If the first byte of the first transmission of a control code pair fails the parity check, then that byte is inserted into the currently active memory as a solid block character (7Fh) followed by whatever the second byte is. Again, the redundant transmission of the pair will be the controlling instruction.
(4)
If the first transmission of a control code pair passes parity, it is acted upon within one video frame. If the next frame contains a perfect repeat of the same pair, the redundant code is ignored. If, however, the next frame contains a different but also valid control code pair, this pair, too, will be acted upon (and the receiver will expect a repeat of this second pair in the next frame). If the first byte of the expected redundant control code pair fails the parity check and the second byte is identical to the second byte in the immediately preceding pair, then the expected redundant code is ignored. If there are printing characters in place of the redundant code, they will be processed normally.
(5)
There is provision for decoding a second data channel. The second data channel is encoded with the same control codes and procedures already described. The first byte of every control code pair indicates the data channel (C1/C2) to which the command applies. Control codes which do not match the data channel selected by the user, and all subsequent data related to that control code, are ignored by the receiver.
Data channel 1 | Data channel 2 | Attribute description |
---|---|---|
1120 | 1920 | White. |
1121 | 1921 | White Underline. |
1122 | 1922 | Green. |
1123 | 1923 | Green Underline. |
1124 | 1924 | Blue. |
1125 | 1925 | Blue Underline. |
1126 | 1926 | Cyan. |
1127 | 1927 | Cyan Underline. |
1128 | 1928 | Red. |
1129 | 1929 | Red Underline. |
112A | 192A | Yellow. |
112B | 192B | Yellow Underline. |
112C | 192C | Magenta. |
112D | 192D | Magenta Underline. |
112E | 192E | Italics. |
112F | 192F | Italics Underline. |
Data channel 1 | Data channel 2 | Mne-monic | Command description |
---|---|---|---|
1420 | 1C20 | RCL | Resume caption loading. |
1421 | 1C21 | BS | Backspace. |
1422 | 1C22 | AOF | Reserved (formerly Alarm Off). |
1423 | 1C23 | AON | Reserved (formerly Alarm On). |
1424 | 1C24 | DER | Delete to End of Row. |
1425 | 1C25 | RU2 | Roll-Up Captions-2 Rows. |
1426 | 1C26 | RU3 | Roll-Up Captions-3 Rows. |
1427 | 1C27 | RU4 | Roll-Up Captions-4 Rows. |
1428 | 1C28 | FON | Flash On. |
1429 | 1C29 | RDC | Resume Direct Captioning. |
142A | 1C2A | TR | Text Restart. |
142B | 1C2B | RTD | Resume Text Display. |
142C | 1C2C | EDM | Erase Displayed Memory. |
142D | 1C2D | CR | Carriage Return. |
142E | 1C2E | ENM | Erase Non-Displayed Memory. |
142F | 1C2F | EOC | End of Caption (Flip Memories). |
1721 | 1F21 | TO1 | Tab Offset 1 Column. |
1722 | 1F22 | TO2 | Tab Offset 2 Columns. |
1723 | 1F23 | TO3 | Tab Offset 3 Columns. |
Row 1 | Row 2 | Row 3 | Row 4 | Row 5 | Row 6 | Row 7 | Row 8 | Row 9 | Row 10 | Row 11 | Row 12 | Row 13 | Row 14 | Row 15 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
First byte of code pair: | |||||||||||||||
Data Channel 1 | 11 | 11 | 12 | 12 | 15 | 15 | 16 | 16 | 17 | 17 | 10 | 13 | 13 | 14 | 14 |
Data Channel 2 | 19 | 19 |