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)[reply]