ARIB STD-B24用iconv(gconv)モジュール

はじめに

ARIBコードへまたはARIBから各種の文字コードを変換するOSSの文字コード変換ツールは、今までいくつか存在していましたが、汎用性と機能が不十分でした。

しかしながら、LinuxTVにおいて、Linuxの各ディストリビューションの標準的パッケージとして含まれるiconvコマンドおよびglibc内の文字変換モジュールiconvに対応した、
ARIB 8単位コードに対応させる拡張モジュールがAkihiro TSUKADA氏により開発、公開されました。

http://www.linuxtv.org/

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/tree/contrib/gconv

https://patchwork.linuxtv.org/patch/30438/

このページでは、上記のコードを単独のgconvモジュールとしてRHELまたはCentOS用にインストールするためのRPMを公開しています。
これはLGPLに基づくものです。

iconvとは

iconvは最初にHP-UXで開発され、後にPOSIX規格として標準化されました。

GNUのCライブラリにはフリー版のiconvが含まれ、Linuxディストリビューションは、GNUのCライブラリを標準で利用しているため、通常、新たな設定なしでiconvが利用できます。
また、iconvは、コマンドラインユーティリティも存在し、nkfに代わり利用することができます。

iconvは変換に際して、各文字コードを内部コードに変換するgconv モジュール (動的にロードされる共有ライブラリ)を順次呼び出し、所定の文字コード間の変換を行います。
つまり、対象の文字コードの変換を行うgconvモジュールを追加することで、容易に変換対象の文字コードを拡張することができます。

LinuxTVコミュニティ

LinuxTVコミュニティは、Linuxベースのセットトップボックスや携帯電話などの組み込み機器に向けて、Linuxカーネルメディア・サブシステムやユーザ空間ライブラリ、アプリケーションを開発およびメンテナンスを行っています。

この中で、日本のデジタル放送およびヨーロッパのデジタル放送で使用する文エンコーディングをサポートするgconvモジュールが開発、公開されています。
これらのgconvモジュールをLinuxに組み込むことで以下の文字コードのサポートが追加されます

なお、LinuxTVコミュニティが開発した上記のgconvモジュールはLinuxのメインストリームへのマージが提案されましたが、却下されており、各Linuxディストリビューションに包含される予定はありません。

RPMパッケージ

RHELまたはCentOSにおいて、上記のgconvモジュールを単独でインストール、利用するために以下のRPMを用意しました。

OSRPM
RHEL5
CentOS5
i386gconv-digital-tv-1.0.0-3.EL5.i386.rpm&ref(): File not found: "gconv-digital-tv-1.0.0-3.EL5.i386.rpm" at page "ARIB STD-B24用iconv(gconv)モジュール";
x86_64gconv-digital-tv-1.0.0-3.EL5.x86_64.rpmfilegconv-digital-tv-1.0.0-3.EL5.x86_64.rpm
RHEL7
CentOS7
i686gconv-digital-tv-1.0.0-3.EL7.i686.rpmfilegconv-digital-tv-1.0.0-3.EL7.i686.rpm
x86_64gconv-digital-tv-1.0.0-3.EL7.x86_64.rpm&ref(): File not found: "gconv-digital-tv-1.0.0-3.EL7.x86_64.rpm" at page "ARIB STD-B24用iconv(gconv)モジュール";
armv7hl*1gconv-digital-tv-1.0.0-3.el7.centos.armv7hl.rpm&ref(): File not found: "gconv-digital-tv-1.0.0-3.el7.centos.armv7hl.rpm" at page "ARIB STD-B24用iconv(gconv)モジュール";
Source RPMgconv-digital-tv-1.0.0-3.src.rpmfilegconv-digital-tv-1.0.0-3.src.rpm

文字コード

文字コードとして下表の文字セットを使用します。ただし、モザイク集合はサポート対象外とします。また字幕のための制御コード は無視されます。

文字符号集合記事
漢字系集合ARIB STD-B24
JIS 互換漢字 1 面( 2 バイト符号)JIS X0213:2004
JIS 互換漢字 2 面( 2 バイト符号)JIS X0213:2004
英数( 1 バイト符号)ARIB STD-B24
平仮名( 1 バイト符号)ARIB STD-B24
片仮名( 1 バイト符号)ARIB STD-B24
JIS X0201 片仮名
外字符号集合ARIB STD-B24
マクロ符号集合ARIB STD-B24
追加記号( 2 バイト符号)ARIB STD-B24

符号化処理概要

符号化はARIB8単位文字符号に準じ符号化します。
下図に示す符号体系により符号化を実施します。
固定的に割り振られる制御コードと、GR/GLであらわされる割り当てがエスケープシーケンスにより変更されるコード(1バイトもしくは2バイト文字)により符号化されます。
また、GR/GLにマッピングされるコードは中間バッファ(G0~G3)に一旦マッピングされた後、再度GR/RLにマッピングされる仕組みを有します。


UCS(国際符号化文字集合:Universal multi-octet coded Character Set)コードとARIB8単位コードとの対応については、ARIB STD-B62の
  第1編 データ符号化方式
   第5章 文字符号化
    表5-2 追加する記号・文字
を参照ください。

table1.jpgtable2.jpg

初期値

操作符号面初期値
指示G0JIS互換漢字面
G1英数集合
G2平仮名集合
G3片仮名集合
呼び出しGLLS0(G0)
GRLS2R(G2)
文字サイズNSZ

符号の呼び出し

呼び出し制御呼び出し制御
符号化表現
制御の内容
符号集合呼び出し先呼び出し形態
LS00x01G0GLロッキングシフト
LS10x0EG1GLロッキングシフト
LS2ESC0x6EG2GLロッキングシフト
LS3ESC0x6FG3GLロッキングシフト
LS1RESC0x7EG1GRロッキングシフト
LS2RESC0x7DG2GRロッキングシフト
LS3RESC0x7CG3GRロッキングシフト
SS20x19G2GLシングルシフト
SS30x1DG3GLシングルシフト

符号の指示制御

指示制御の
符号化表現
制御の内容
文字集合の分類指示先
ESC0x28F1バイトGセットG0
ESC0x29FG1
ESC0x2AFG2
ESC0x2BFG3
ESC0x24F2バイトGセットG0
ESC0x240x29FG1
ESC0x240x2AFG2
ESC0x240x2BFG3
ESC0x280x20F1バイトDRCSG0
ESC0x290x20FG1
ESC0x2A0x20FG2
ESC0x2B0x20FG3
ESC0x240x280x20F2バイトDRCSG0
ESC0x240x290x20FG1
ESC0x240x2A0x20FG2
ESC0x240x2B0x20FG3
文字符号集合F(終端符号)文字コード
漢字0x422バイト符号
英数0x4A1バイト符号
平仮名0x301バイト符号
片仮名0x311バイト符号
プロポーショナル英数0x361バイト符号
プロポーショナル平仮名0x371バイト符号
プロポーショナル片仮名0x381バイト符号
JIS X0201 片仮名0x491バイト符号
JIS 互換漢字 1面0x392バイト符号
JIS 互換漢字 2面0x3A2バイト符号
追加記号0x3B2バイト符号
文字符号集合F(終端符号)文字コード
DRCS-00x402バイト符号
DRCS-10x411バイト符号
DRCS-20x421バイト符号
DRCS-30x431バイト符号
DRCS-40x441バイト符号
DRCS-50x451バイト符号
DRCS-60x461バイト符号
DRCS-70x471バイト符号
DRCS-80x481バイト符号
DRCS-90x491バイト符号
DRCS-100x4A1バイト符号
DRCS-110x4B1バイト符号
DRCS-120x4C1バイト符号
DRCS-130x4D1バイト符号
DRCS-140x4E1バイト符号
DRCS-150x4F1バイト符号
マクロ0x701バイト符号

文字符号集合

漢字集合

kanji-1.jpg kanji-2.jpg

kanji-8.jpg

英数集合・片仮名集合・平仮名集合

eisuu.jpg

katakana.jpg

hiragana.jpg

JIS X0201 片仮名集合

jis-katakana.jpg

追加記号

tsuika-1.jpg

tsuika-2.jpg

tsuika-3.jpg

tsuika-4.jpg

tsuika-5.jpg

tsuika-6.jpg

tsuika-7.jpg

tsuika-8.jpg

tsuika-9.jpg

tsuika-10.jpg

tsuika-11.jpg

tsuika-12.jpg

tsuika-13.jpg

tsuika-14.jpg

tsuika-15.jpg

tsuika-16.jpg

tsuika-17.jpg

tsuika-18.jpg

gconv-digital-tv固有の符号化

gconv-digital-tvでは、以下の固有の符号化を実施しています。

エンコード動作において、以下の動作を行います。

・GL符号領域は、G0/G1集合のみ指定します。
・GR符号領域は、G2/G3集合のみ指定します。
・G0集合は漢字系集合に固定指定します。
・G1集合はASCII(1バイトGセット)に固定指定します。
・G2集合は平仮名集合およびJIS 互換漢字1/2面に使用します。
・G3集合は片仮名集合、JIS X0201 片仮名集合および追加記号に使用します。
・G2集合にJIS 互換漢字1/2面を指示する場合およびG3集合に追加記号を指示する場合は、シングルシフトにより指示します。

Mapping.jpg

UTF-8(UCSコード)を入力とした場合の制限

Restricted領域

入力文字コードをUCSコード(UTF-8)として場合、UCSでは未定義の文字や、Restricted領域(外字等を含む限定使用領域)は正しく変換されません。
Restricted領域の文字はRestricted領域以外の文字に変換しておく必要があります。

UCS未定義文字

追加記号において、一部の文字(「氏」「副」「元」等のサイズの小さい文字や、楽器の記号等)については、類似の文字があり、
そのサイズを指定することで代替可能との理由でUCS符号には含まれていません。
そのため、あらかじめこれらの文字は類似文字に変換しておく必要があります。


*1 Raspberry Pie 3 B用

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS