Talk:EIA-608

This article is hard to follow, even for me, and I already (roughly) know how line 21 subtitles work!

Part of the difficulty is that there are subtle errors in the article, and part of it is that the presentation is chaotic and doesn't start with a broad overview.

And it is so simple at its core. Line 21 of the vertical blanking interval contains a black line with a series of grey pulses like this: | detect & sync signature          | char 1. | P | char 2. | P | _  _   _   _   _   _   _       ___                 ___     _______     ___         ___     ___     So two characters, or one 14-bit control code, can be transmitted per line, in this case 0000101 (= P) and 0100101 (= R). The bits are transmitted from least significant to most and P is set so the parity is odd (an odd number of ones).

Every new frame two more characters can be sent. Here's an actual example:
 * ... 0000000 0000000 0010100-0000010(×2) 0010100-0100101(×2) PROVIDED YOU COULD 0010100-0100111(×2) BL ...

The codes marked with ×2 are sent twice because they're control codes and their corruption would have more severe effects than the corruption of a character.

The 0000000 codes are empty padding padding characters and are continuously sent when there's no subtitle data to be sent.

0010100-0000010 is a control code (..1.100 ....010) with data: field=0 extended=false channel=0 / control=0000 (= resume caption loading)

0010100-0100101 is a row preamble (....100 ....1.1) with data: row=001 (= 14/15) channel=0 / underline=false indent=100 (= 4) nextrow=false (so: 14).

0010100-0100111 is also a row preamble with data: row=001 (= 14/15) channel=0 / underline=false indent=100 (= 4) nextrow=true (so: 15).

Control codes follow the pattern aaac(hannel)100-xxxxbbb as in the following table: bbb  \   aaa:     000      100      010      110      001      101      011      111 010              MR bg   MR style  xchar    xchar    ctl f0   ctl f1  text n/p   xctl 110              schar     ---     xchar    xchar     ---      ---   text ne/c/e --- 001 RP style row=  11        1        3       12       14        5        7        9 101 RP cursor  "   11        1        3       12       14        5        7        9 011  RP style   "  (12)       2        4       13       15        6        8       10 111 RP cursor  "  (12)       2        4       13       15        6        8       10 And codes with the pattern xxxx000-xxxxxxx are for XDS.

This isn't as difficult as the article pretends it is by a far stretch. (Why'd they have to mix up the rows though?) — Preceding unsigned comment added by 80.114.146.117 (talk) 13:45, 29 December 2016 (UTC)

Needs a photo
The waveform image is a poor way of illustrating this article. Could we get some kind of unencumbered screen capture that would better illustrate what a human bein sees when watching closed caption TV ? --Wtshymanski (talk) 22:27, 29 April 2019 (UTC)

Characters per second
I think I'm misunderstanding something. "480 bit/s per line 21 field for a maximum of 32 characters per line per caption (maximum four captions) for a 30 frame broadcast." I can't make the math work out here. 480bps only gives 32 characters when you have 15 bits per character, which doesn't make sense. If it's split between odd/even frames, it's 7.5 bits per character, which isn't even possible. Then there's the 'per caption (maximum four captions). What exactly does this mean? What am I not getting here? Unless I'm missing something obvious (which I will not at all contest once its shown to me), I think this needs a lot of clarification for the average reader. Dstar3k (talk) 00:57, 12 March 2021 (UTC)