Как декодировать текстовую строку, закодированную в транспортных потоках ISDB (ARIB)? - PullRequest
1 голос
/ 04 декабря 2009

Как декодировать текстовую строку, закодированную в транспортных потоках ISDB (ARIB)? Некоторая техника кодирования указана в главе 7 части 2 (кодирование монофонического носителя) спецификации ARIB STD-B24 версии 5.2 (том 1). Но я не уверен, отличается ли эта кодировка от других стандартных японских технологий кодирования символов, таких как EUC-JP, ISO-2022-JP, JIS X208 и т. Д. Каково это стандартное название кодирования?

Если я знаю имя кодировки (кодовую страницу), используемое в потоках ISDB, я могу использовать сторонние библиотеки, такие как ICU, следующим образом.

UConverter * ucnv_open (const char * converterName, UErrorCode * err) conv = ucnv_open ("shift_jis", & status); len = ucnv_toUChars (conv, target, 100, source, strlen (source), & status); ucnv_close (ко);

Я также пытался самостоятельно декодировать строку ARIB, взятую из транспортного потока ISDB, но мне это не удалось, поскольку я столкнулся с несколькими проблемами, которые мне не ясны.

Есть 4 графических набора G0, G1, G2 и G3. Я понял, что начальные значения наборов G0: набор системы кандзи G1: буквенно-цифровой набор G2: набор хирагана G3: набор макросов

Можно ли время от времени изменять значения G0, G1, G2 и G3 или они остаются фиксированными? Что это за набор макросов?

Во время декодирования существует две концепции: «Вызов элементов кода» и «Обозначение графических наборов». Как использовать это из escape-кодов? Например, я попытался декодировать следующую строку, взятую из потока:

1b 7c c1 e3 f3 cd eb 26 41 1b 7d fe 4e 78 30 26 37 6b 3a 27 ce 4b 21 42 27 0e 28 1b 7c eb f9 eb 29 0f 21 21 0e 23 30 38 1b 24 3b 0f 7a 6a 7a 56 7а 59

Как получить значения GL и GR, скажем, для приведенной выше строки и использовать ли 2 байта или 1 байт на символ? Будет очень полезно, если кто-нибудь сможет дать подсказку для декодирования вышеуказанной строки.

1 Ответ

1 голос
/ 06 сентября 2013

декодирование

6-STD-B24v5_2-1p3-E1.pdf

Часть 2, Глава 7

Наборы по умолчанию Часть 3, Глава 8

Обозначение

G0 = Kanji (2 Byte) JIS X 0213:2004 8-bit code vs Unicode mapping table
G1 = AlphaNumeric (1 Byte)
G2 = Hiragana (1 Byte)
G3 = Macro code set (not decoded by the example below!!)

1012 * Воззвание *

GL <= G0
GR <= G2

Декодирование:

1b 7c // Invocation GR <= G3
c1    // Right Table, Makro, Symbol..
e3    // ... sorry no ..
f3    // ... idea ..
cd    // ...
eb    // ...
26 41 // Left table, 2 bytes 0x2641 U+03B1  # GREEK SMALL LETTER ALPHA
1b 7d // Invocation GR <= G2
fe    // right table hiragana WideChar($7E + $3020);
4e 78 // Left table 0x4E78  U+604B  # <cjk>
30 26 //           0x3026   U+611B  # <cjk>
37 6b //           0x376B   U+7D50  # <cjk>
3a 27 //           0x3A27   U+5A5A  # <cjk> 
ce    // right table hiragana WideChar($4E + $3020);
4b 21 // left table 0x4B21  U+6CD5  # <cjk>
42 27 // 0x4227 U+5247  # <cjk>
0e    // Invocation GL <= G1
28    // left table "(" 
1b 7c // Invocation GR <= G3
eb    // right table, makro, symbols
f9    // ... no idea
eb    // ... no idea
29    // left table ")" 
0f    // Invocation GL <= G0
21 21 // left table 0x2121  U+3000  # IDEOGRAPHIC SPACE
0e    // Invocation GL <= G1
23    // left table "#"
30    // left table "0"
38    // left table "8"
1b 24 3b // Designation G0 <= Additional Symbols
0f    // Invocation GL <= G0
7a 6a // Left Table, addional symbols 2 Byte code, cell 74 row 90 (rebroadcast)
7a 56 // cell 54 row 90 (closed-captioned broadcast)
7a 59 // cell 57 row 90 (stereo broadcasting service)

α ゞ 恋愛 結婚 の 法則 () # 08

Полный α ゞ любовный закон о браке () # 08

...