CD-Textは、オーディオCDの仕様規格であるレッドブック・コンパクトディスク規格の拡張機能です。これにより、規格に準拠したオーディオCDに、アルバム名、曲名、アーティスト名などの追加情報を記録することができます。
CD-Text の仕様は、 1996 年 9 月にリリースされ、ソニーがサポートしたMulti-Media Commands Set 3 R01 (MMC-3) 規格に含まれていました。[ 1 ]また、Red Book の新しい改訂版にも追加されました。[ 2 ]実際のテキストは、IEC 61866 規格で定義されているInteractive Text Transmission System (ITTS)と互換性のある形式で保存されます。[ 3 ] ITTS 規格は、 MiniDiscフォーマット、デジタルオーディオ放送技術、デジタルコンパクトカセットにも適用されています。
CD-Text情報は、ディスク上のサブチャンネルRからW に格納されます。この情報は通常、ディスクのリードイン領域のサブチャンネルに格納され、そこには約5キロバイトの空き容量があります。また、ディスクのメインプログラム領域(オーディオトラックが格納されている領域)にも格納でき、そこには約31 メガバイトの容量があります。[ 1 ] RからWチャンネルはオーディオCDのレッドブック規格では使用されていないため、すべてのCDプレーヤーで読み取れるわけではなく、そのため一部の機器ではCD-Text情報を読み取ることができません。[ 1 ]
CDテキストデータは、MMC-3とソニーのドキュメント間で散在した形で定義されています。以下の情報は、GNU libcdioの説明を使用しています。[ 4 ]
最下層では、CDテキストは18バイトの「パック」ユニットに格納されます。この部分はMMC-3 Annex Jで定義されています。各パックは、4 バイトのヘッダー(タイプインジケータ、トラック番号参照、シーケンシャルカウンタ、ブロック番号および文字位置インジケータ(BNCPI))、12 バイトのペイロード、および2 バイトのCRCで構成されます。タイプインジケータの範囲は0x80から0x8Fで、定義されている13の値は次のとおりです。[ 5 ]
BNPCI は、1 つのパックに収まらない情報を定義するために使用されます。これは、テキストまたはバイナリ データです。BNCPI は、テキストが最上位ビットでシングル バイト データかダブル バイトデータかを示します。これにより、ヌル終端文字列がどのように定義されるか( 0x00 の 1 バイトまたは 2 バイト) が決まります。[ 4 ] DBCS モードは、ほとんど、あるいはまったく使用されません。コンピュータ DBCS コード ページは ASCII と「ハイブリッド」であり、ヌル動作で互換性があるため、特別なヌル処理は必要ありません。UTF -16 が意図された用途である可能性があります。
上記で「文字」(MMC-3による)としてリストされているブロックタイプの場合、ペイロードは単純なヌル終端文字列です。(MMC-3はここで紛らわしく書かれています。パックタイプの表ではエンコーディングを「ASCII」と説明していますが、後でBNCPIフラグによって動作が変更されると述べられています。)バイナリフィールドの説明は曖昧ですが、GNU libcdioの開発者は、それらをMMC-3のセクションに合わせるか、ソニーのサンプルに基づいて新しい説明を作成しました。[ 4 ]
エンコーディング仕様のもう1つのレイヤーは、このペイロードレベルのSIZE_INFOブロックにあります。ここでは、最初のバイトを使用して、エンコーディング(ASCII、Latin-1、または「MS-JIS」)を示すことができます。これは、オリジナルのソニーオーサリングツールでサポートされています。[ 4 ]