X 6134 : 1997 (ISO/IEC 12042 : 1993)
(1)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
まえがき
この規格は,工業標準化法に基づいて,日本工業標準調査会の審議を経て,通商産業大臣が制定した日
本工業規格である。
この規格の一部が,技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,又は出願公開後の
実用新案登録出願に抵触する可能性があることに注意を喚起する。主務大臣及び日本工業標準調査会は,
このような技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,又は出願公開後の実用新案登
録出願にかかわる確認について,責任はもたない。
JIS X 6134には,次に示す附属書がある。
附属書A(参考) 2進算術符号化アルゴリズムの例
X 6134 : 1997X 6134 : 1997 (ISO/IEC 12042 : 1993)
(1)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
目次
ページ
1. 適用範囲 ························································································································ 1
2. 引用規格 ························································································································ 1
3. 適合性 ··························································································································· 1
4. 表記法 ··························································································································· 1
5. アルゴリズムの識別子 ······································································································ 1
6. 用語の定義 ····················································································································· 1
6.1 ブロック ······················································································································ 2
6.2 符号化ブロック ············································································································· 2
6.3 符号列 ························································································································· 2
6.4 符号化 ························································································································· 2
6.5 入力事象 ······················································································································ 2
6.6 論理データレコード ······································································································· 2
6.7 トレーラ ······················································································································ 2
6.8 固有テーブルペア ·········································································································· 2
7. 略号 ······························································································································ 2
8. 圧縮アルゴリズム ············································································································ 2
8.1 概要 ···························································································································· 2
8.2 符号生成器 ··················································································································· 2
8.3 符号化ブロックの構成····································································································· 2
8.4 符号列 ························································································································· 3
8.5 テーブルペア ················································································································ 3
8.6 符号化 ························································································································· 3
8.6.1 ノーマルモード ··········································································································· 3
8.6.2 ランモード ················································································································· 5
8.7 ブロックの符号化の完了·································································································· 5
附属書A(参考) 2進算術符号化アルゴリズムの例 ·································································· 9
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本工業規格 JIS
X 6134 : 1997
(ISO/IEC 12042 : 1993)
情報交換用データ圧縮
2進算術符号化アルゴリズム
Information technology−Data compression for
information interchange−Binary arithmetic
coding algorithm
序文 この規格は,1993年初版として発行されたISO/IEC 12042 (Information technology−Data compression
for information interchange−Binary arithmetic coding algorithm) を翻訳し,技術的内容及び規格票の様式を変
更することなく作成した日本工業規格である。
1. 適用範囲 この規格は,情報を表現するビット数を削減するデータ圧縮の2進算術符号化アルゴリズ
ムについて規定する。このアルゴリズムは,ロスレス圧縮の情報交換で使用する。
2. 引用規格 次の規格は,この規格がよりどころとしている規格を含んでいる。出版時に明示された版
号が有効であるが,すべての規格は改正されるので,この規格の関係者は,次の最新のものを調査し適用
するよう推奨する。
ISO/IEC 11576 : 1994 Information technology−Procedure for the registration of algorithms for the loseless
compression of data
データのロスレス圧縮アルゴリズムは,ISO/IEC 11576に従って登録する。
3. 適合性 圧縮アルゴリズムは,この規格のすべての要求を満たすとき,この規格に適合する。
4. 表記法 表記法は,特に指定がない限り,次による。
− 各フィールドのバイトは,バイト1を最上位として最初に配列する。各バイトのビットは,ビット1
を最上位として最初に,ビット8を最下位として最後に配列する。
− 16進数は,丸括弧内に数字及び文字A〜Fで表す。
− ビットは,“0”又は“1”で表す。
− 2進数表記の数字及びビットの組合せは,“0”及び“1”の列で表す。
− 2進数表記の数字及びビットの組合せは,最上位ビットを左とする。
5. アルゴリズムの識別子 ここで規定するアルゴリズムの識別子は,“16”とする。
6. 用語の定義 この規格で用いる用語の定義は,次による。
2
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
6.1
ブロック (block) 通常512バイト長(8.2参照)をもつ論理データレコード (LDR) の一部。
6.2
符号化ブロック (Code Block) 圧縮後トレーラを付加したブロック。
6.3
符号列 (Code String) 符号化済みの論理データレコード。
6.4
符号化 (encoding) ブロック符号から符号化ブロックを生成する方法。
6.5
入力事象 (input event) 検索中の符号生成器への入力。ランモードではバイト単位,ノーマルモー
ドではビット単位とする。
6.6
論理データレコード (Logical Data Record) データ圧縮器への入力データ。
6.7
トレーラ (trailer) 圧縮及びパッドビットを付加後のブロックへの追加データ。
6.8
固有テーブルペア (Unique Table Pair) ランモードだけに使用する256個のテーブルペアの最後。
7. 略号
CV
現在値 (Current Value)
EV
予測値 (Estimated Value)
LDR
論理データレコード (Logical Data Record)
TP
テーブルペア (Table Pair)
8. 圧縮アルゴリズム
8.1
概要 LDRをロスレスデータ圧縮によって1パスで符号列に変換する。適切な復元方法を用いて符
号列から元のLDRに復元する。
8.2
符号生成器 LDRは,最後のブロックを除き512バイトのブロックに分割し,最後のブロックは,
512バイト以下とする。ブロックは,0から7の番号をもつ8個の符号生成器に符号生成器0から順番に入
力する。LDRが4096バイト以上の場合,符号生成器0に戻り,圧縮操作を繰り返す(図2参照)。
8.3
符号化ブロックの構成 各符号生成器の出力は,1個の符号化ブロックからなる(図1参照)。
圧縮ブロック
パッドビット
(最終データの
場合)
トレーラ
バイト1
トレーラ
バイト2
パッドバイト
(00)
(バイトカウント
が奇数のとき)
図1 符号化ブロック
符号生成器での圧縮度は,LDRのビットパターン及び同一バイトの出現頻度に依存しており,圧縮後の
ブロックの長さは,予測できない。パッドビットは,8ビットバイトの整数倍とするために,最後に付加
し,0を設定する。符号化ブロックは,トレーラを付加し完成する。トレーラは,2個のトレーラバイトと
それに続くパッドバイトで構成する。
トレーラバイト1 (FF) を設定する。
トレーラバイト2
ビット1〜4 LDRの最後のブロックから生成した符号化ブロックの場合,“1100”を設定する。
他のすべての符号化ブロックの場合,“1001”を設定する。
ビット5
符号化のバイト数が偶数の場合,“0”を設定する。
符号化のバイト数が奇数の場合,“1”を設定する。
ビット6〜8 バイトの整数倍とするために追加したパッドビット数を設定する。
パッドビットを加えた圧縮ブロックの中のバイト数が奇数の場合,バイト数を偶数にするため (00) の
3
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
パッドバイトをトレーラバイト2の後に付加する。
8.4
符号列 符号列は,符号生成器の出力からなり,符号列の1番目は符号生成器0の出力,符号列の2
番目は符号生成器1の出力と,この順番で生成する(図2参照)。
8.5
テーブルペア テーブルペアは,各符号生成器の1から256までの番号を付けた256個の対のテー
ブルとする。各テーブルペア (TP) の最初の数字は,符号化する入力事象のEVを示し,“1”又は“0”の
値とする。次の数字Kは,EVと等しい入力事象の出現確率を示し,表1に示す1,2,3,4の値とする。
表1 Kの確率の数値
K
確率
1
1〜 2
2
2〜 4
3
4〜 8
4
8〜16
確率は,入力事象の値がEVと等しいことを示す(例えば,K=2の場合,入力事象がEVと等しい確率
は,EVと等しくない確率の2〜4倍である。)。
LDRの符号化開始時,すべてのEVを“0”に設定し,すべてのKの値を“1”に設定する。
8.6
符号化 最初にデータは,バイト単位で検索しなければならない。バイトは,ブロックの最初のバ
イトから順番に取り出し,前のバイトと比較する。ブロックの最初のバイトは, (40) と比較する。
ランモード(8.6.2参照)は,最初のバイトを取り出すと停止する。
検索したバイトが前のバイトと相違し,モードがランモードでない場合,そのバイトをノーマルモード
でビットごとに符号化する(8.6.1参照)。
検索したバイトが前のバイトと相違し,モードがランモードの場合,そのバイトの符号化は,8.6.2.2に
よる。
二つのバイトが等しく,モードがランモードでない場合,ランモードを作動し,そのバイトは,ノーマ
ルモードでビットごとに符号化する。
二つのバイトが等しく,モードがランモードの場合,そのバイトの符号化は,8.6.2.1による。
8.6.1
ノーマルモード バイトの最初(最上位)のビットを最初のTPのEVと比較し,その結果から8.6.1.1
の二つの動作の一つを実行する。残りのビットに対してどのTPを使用するかは,そのバイトの先に符号
化したビットの内容によって決める。
各バイトの最初のビットは,常に最初のTPを使用する。
2ビット目は,最初のビットが“0”か“1”かによって,2番目又は3番目のTPを使用する。
3ビット目は,最初の2ビットの情報によって4個のTPの1個を使用する。最初の2ビットが“00”の
場合4番目のTPを使用し,その他の場合は別のTPを使用する(図3参照)。
1バイトに255個のTPを用い,残り一つを固有TPとし,ランモードだけに使用する(8.6.2参照)。
符号化は,次の2段階で行う。
− ビットは,8.6.1.1によって符号化する。
− KとEVの値は,8.6.1.2によって更新する。
8.6.1.1
ビットの符号化 2進数表示の二つの小数4けたの数値は,圧縮処理中のビット比較部で生成す
る。一つ目の数値は,現在値 (CV) と呼ぶ数値で,出力(符号化ブロック)の生成に使用する。
二つ目の数値は,区間幅と呼ぶ数値で,“0.0000”から“1.1111”の範囲とする。
各ブロックでは,CVを“0.0000”に,区間幅を“1.0000”に初期化する。
4
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
入力事象は,次の規則に従って二つの数値を生成する。
i)
入力事象がEVと等しい場合,
CVは,2−Kごとに増加する。
区間幅は,2−Kごとに減少する。
ここでKは,入力事象の出現確率とする(8.5参照)。
符号化ブロックが空文字 (NUL) でない場合,CVの小数点以上のビットは,符号化ブロックに付加
する最後のビットに論理和し,CVを“0”とする。論理和によって,最も新しい符号化ブロックが完
全なバイトの (FF) になった場合,このバイトからのけた上がりを防ぐため符号化ブロックのバイト
の最後に (0) を付加する。符号化ブロックがNULの場合,CVの小数点以上のビットは,“0”になる。
区間幅は,“1.0000”と比較する。
区間幅が“1.0000”以上の場合,TPを更新し(8.6.1.2参照),次のビットを符号化する。
区間幅が“1.0000”未満の場合,区間幅のビットを左へ1けたシフトする。最左端のビット“0”は,
落とし,最右端に“0”を詰める。CVの小数点以下の最初のけたのビットは,符号化ブロックの一部
として符号生成器の出力に付加する。CVの小数点以下の残りのビットは,左へ1けたシフトし,最
右端のけたに,“0”を詰める。
最後の完全なバイトからのけた上がりを防ぐために,符号化ブロックの各バイトは完成したものと
して検索する。このバイトが (FF) の場合,符号化ブロックに (0) を付加する。
ii) 入力事象がEVと等しくない場合,
区間幅は,“1.0000”にリセットする。
CVの小数点以下のKビットは,けた送りし,最左端のビットから符号化ブロックに付加する。
各ビットの符号化ブロックへの付加によってバイト境界に達した場合,バイトを検査しなければな
らない。このバイトが (FF) の場合,符号化ブロックに (0) を付加する。
CVの最右端のKビットのけたは,“0”に設定する。
8.6.1.2
K及びEVの更新(図4参照) 各入力事象をEVと比較し,TPのK及びEVの値を更新する。
4段の2進カウンタ(Mcカウンタ)は,各ブロックの最初で“0000”に設定し,その増加は,次による。
i)
入力事象がEVと等しい場合
Kは,表2のとおり増加し,表中のXで示すビットは,無視する。
表2 Kの増加の規則
Kの現行値
カウンタの状態
Kの新しい値
1
XX11
2
2
X111
3
3
1111
4
4
XXXX
4
カウンタが表中以外の状態では,Kは,変えてはならない。
カウンタは,一つずつ増加する。カウンタの値が“1111”で一つ増加するとき,カウンタの値は,
“0000”とする。
EVは,変えてはならない。
ii) 入力事象がEVと等しくない場合
Kが1を超える場合: Kの値は,一つずつ減少する。
カウンタは,増加してはならない。
5
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
EVは,変えてはならない。
Kが1の場合:
Kの値は,変えてはならない。
カウンタは,増加してはならない。
EVは,反転する。
8.6.2
ランモード ランモードは,符号化した最後の二つのバイトが等しい場合,動作を開始する。
8.6.2.1
現在のバイトが,最後の二つのバイトと等しい場合,固有TPを使用し,EVを“1”と比較する。
区間幅,CV,K及びEVの値は,8.6.1.1及び8.6.1.2によって更新し,拡張した符号化ブロックとしてもよ
い。
8.6.2.2
現在のバイトが,最後の二つのバイトと相違している場合,固有TPを使用し,EVを“0”と比
較する。区間幅,CV,K及びEVの値は,8.6.1.1及び8.6.1.2によって更新し,拡張した符号化ブロックと
してもよい。
バイトはノーマルモードで符号化し,区間幅,CV,K及びEVの値は,8.6.1.1及び8.6.1.2によって更新
し,拡張した符号化ブロックとしてもよい。ランモードは無効とする。
8.7
ブロックの符号化の完了 ランモードでブロックの最後のバイトを符号化したとき,ノーマルモー
ドで符号化するバイトが残っている場合,動作は,8.6.2.2による。
この動作中のとき又はランモードでないとき符号生成器は,次の手順でクリアする。
CVの小数点以下の4ビットは,最左端のビットから符号化ブロックに付加する。各ビットの符号化ブ
ロックへの付加によってバイト境界に達した場合,完成したバイトを検査しなければならない。このバイ
トが (FF) の場合,符号化ブロックに (0) を付加する。CVの残りのビットは,符号化ブロックへ付加す
る。パッドビット及びトレーラは,8.3によって符号化ブロックに付加する。
6
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図2 符号化の順序
7
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図3 テーブルペアの選択
8
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図4 Kの決定
9
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書A(参考) 2進算術符号化アルゴリズムの例
A.1 序 この附属書Aは,2進算術符号化アルゴリズムについて記述する。この記述は,構造化英語の表
現であり,疑似符号としても知られている。アルゴリズムについての全般的な理解を意図し,この規格の
特定の表現方法を正確に説明するものではない。
データレコードの圧縮は,数段階の連続した処理を必要とする。この例では,9個に分割された処理を
規定し,相互にコールで連結している。特定な処理が別処理の動作の完了を必要とする場合,コール処理
で呼び出す。コールは,英大文字で書き表したコール処理によって示す。
疑似符号は,IF,THEN,ELSE SET,SET,DO WHILEなどの基本演算子を使用する。CASE文は,例
外でIF,THEN及びELSE文を置き換えるために使用する。字下げは,演算子を関係づけることに使用す
る。例えば,IF操作が与えられたIF,THEN及びELSE演算子は,同じ間隔ですべて字下げする。
A.2 処理の概要
A.2.1 コンパクト コンパクトは,LDRを512バイト以下のブロックに分割し,8個の符号生成器に順番
に入力する。ブロックは,符号化し符号列と呼ばれる出力を形成するために連結する。
A.2.2 ブロックの符号化 この処理は,個々のブロックを実際に符号化し,符号化に必要な区間幅及びCV
を生成する。CVは,符号化出力の生成に使用し,区間幅は,圧縮の達成水準を制御する。圧縮は,バイ
ト内の次のビットの出現確率を,LDRの前の内容をもとに予測することによって達成する。この予測が正
しく,かつ,予測の確率が高いとき,区間幅はほとんど変化しない。符号化ブロックへの加算は,1ビッ
ト又は一つもない。予測が正しくない場合,符号化ブロックへの加算は,1から4ビットとする。
データに反復性があるとき,予測と実際のデータとが一致することが多くなり,圧縮率は高くなる。
他の操作も同じ動作になる。現在のバイトが前の二つのバイトと等しいとき,すべてのバイトをランモ
ードで一度に処理する。固有TPを使用し,予測は,“1”と比較する。区間幅及びCVは,個々のビット
圧縮のために同じ方法で更新する。
A.2.3 演算 演算は,検索するビットが予測値と一致するとき,区間幅及びCVの変化量を決定する。
A.2.4 ビットの符号化 個々のビット処理手順を記述する。
A.2.5 検索 検索処理は,CVから符号化ブロックへのデータを移動するために用いる。この方法は,2種
類あり,一つは,CVの小数点以上の値を符号化ブロックに論理和する方法である。けた上がりを引き起
こす可能性があるので,符号化ブロックがけた上がりで変化しないよう工夫する。最近に完成した符号化
ブロックのバイトを検索する。そのバイトが (FF) の場合,このバイトの後に4個のビット“0”を付加す
る。CVの小数点以上に数値を論理和することによって生じたけた上がりは, (0) にすることによって他
への波及を防ぐ。
二つ目は,CVの小数点以下から符号化ブロックへ一つ以上のビットを付加し,データを移動する方法
である。加算するビット数は,処理するビットが予測と一致するか,又は一致しないかの確率によって決
まる。符号化ブロックにビットを加算するので,符号化ブロックのバイトが (FF) になると, (0) を付加
し,けた上がりによる符号化ブロックへの波及を防ぐ。
10
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
A.2.6 テーブルペアの更新 予測及び確率の更新について規定する。CASE文は,IF文の連続として読み
取ることができる。条件部の条件が一致するまで,又はCASE文の終わりまで検索する。条件が一致する
場合,確率は,条件部の条件内容を設定する。
A.2.7 次のテーブルペア バイト中の次のビットにどのTPを使用するかを決める。最初のTPは,常に各
バイトの最初のビットに用いる。2番目又は3番目のTPは,2番目のビットに用い,どちらのTPを使用
するかは最初のビットが“0”か“1”による。同じように,バイトのすべての前に処理されたビットの内
容に基づき,各ビットに適切なTPを使用する。
A.2.8 符号生成器のクリア 完全にブロック処理を終えたとき,符号化が終了する。ランモードが動作中
の場合,固有TPの予測は,ランモードを収束するために使用する。
ランモードが非動作,又はランモードが収束している場合,CVの小数点以下の4ビットを符号化ブロ
ックに加算する。再度符号化ブロックのバイトが (FF) かを検査し,バイト境界に到達するまで符号化ブ
ロックに (0) を付加する。
A.2.9 トレーラ 最終処理として (FF) と情報トレーラバイトとで構成したトレーラを付加する。完全な符
号化ブロック中のバイトの合計数を偶数にするため,パッドバイト (0) を付加する場合もある。
A.3 疑似符号の処理の概要
A.3.1 コンパクト コンパクトは,LDRのブロック化,及び各ブロックを適切な符号器で符号化する処理
を記述する。
PROCESS = COMPACT
RECEIVE
Logical̲Data̲Record
RESET
Code̲String
SET
Encoder̲Number=0
SET
256 Table̲Pairs (1 : 256) to {0, 1} in each of 8 Tables (0 : 7)
IF
logical̲Data̲Record>512 bytes
THEN
ROUTE
first 512 byte block from the Logical̲Data̲Record to Encoder 0 and
BLOCK̲ENCODE(A.3.2参照)using Table 0. The Code̲Block (output of Encoder)
is the first portion of the Code̲String (compressor output) .
DO WHILE
remainder of Logical̲Data̲Record is>512bytes
SET
Encoder̲Number=Encoder̲Number+1
IF
Encoder̲Number is≦7
THEN ROUTE next 512-byte block to Encoder (Encoder Number) and
BLOCK̲ENCODE using Table (Encoder̲Number) .
ELSE
SET
Encoder̲Number=0
ROUTE
next
512-byte
block
to
Encoder
0
and
BLOCK̲ENCODE using Table 0.
APPEND
Code̲Block to Code̲String
END DO
SET
Encoder̲Number=Encoder̲Number+1
IF
Encoder̲Number is≦7
11
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
THEN
ROUTE
remainder of Logical̲Data̲Record to Encoder (Encoder̲Number) and
BLOCK̲ ENCODE using Table (Encoder̲Number) .
ELSE
SET
Encoder̲Number=0
ROUTE remainder of Logical̲Data̲Record to Encoder 0 and BLOCK̲
ENCODE using Table 0.
APPEND
Code̲Block to Code̲String
ELSE
ROUTE
Logical̲Data̲Record to Encoder 0 and BLOCK̲ENCODE using Table 0.
Code̲Block (output of Encoder) is the Code̲String (compressor output) .
END PROCESS=COMPACT
A.3.2 ブロックの符号化 この処理は,512バイト以下のブロックを符号化ブロックへ変換する。符号化ブ
ロックは,トレーラで終了する。
PROCESS
=BLOCK̲ENCODE
SET
Width=1,0000
SET
Current̲Value (CV)=0,0000
SET
Previous̲Byte=(40)
SET
Run̲Mode=0
SET
Mc̲Count=0000
SET
Block̲Bytes̲Remaining=number of bytes in block
SET
Byte̲Number=1
DO WHILE Block̲Bytes̲Remaining>0
SET
Current̲Byte=byte (Byte̲Number) of block
SET
Byte̲Number=Byte̲Number+1
SET
Block̲Bytes̲Remaining=Block̲Bytes̲Remaining−1
IF
Current̲Byte=Previous̲Byte
THEN IF
Run̲Mode=1
THEN IF
first value of Unique̲Table̲Pair=1
THEN COMPUTE(A.3.3参照)
ELSE SET
Width=1,0000
SET
Compare=false
SET
Shift̲Left=second value in Unique̲Table̲Pair
CHECK
TABLE̲PAIRS̲UPDATE
ELSE BIT̲ENCODE(A.3.4参照)
SET
Run̲Mode=1
ELSE
SET
Previous̲Byte=Current̲Byte
IF
Run̲Mode=1
THEN IF first value of Unique̲Table̲Pair=0
THEN
COMPUTE
12
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ELSE
SET Width=1,0000
SET Compare=false
SET Shift̲Left=second value of Unique̲Table̲Pair
CHECK
TABLE̲PAIRS̲UPDATE
SET
Run̲Mode=0
ELSE
continue
BIT̲ENCODE
END DO
CLEAR̲ENCODER(A.3.8参照)
END PROCESS=BLOCK̲ENCODE
A.3.3 演算 CVに加算する補正値と,区間幅から減算する値を演算し,CVの符号化ブロックへのけた送
り量を決定する。
PROCESS=COMPUTE
SET
Width=Width−(2 raised to negative power of second value in Table̲Pair (Number))
SET
CV=CV+ (2 raised to negative power of second value in Table̲Pair(number))
SET
Compare=true
IF
Width<1,0000
THEN
SHIFT
Width left one place
APPEND zero to rightmost end of Width
SET
Shift̲Left=1
ELSE
SET
Shift̲Left=0
CHECK(A.3.5参照)
TABLE̲PAIRS̲UPDATE(A.3.6参照)
END PHOCESS=COMPUTE
A.3.4 ビットの符号化 符号生成器がランモードでない場合,ブロックバイトをビット単位で符号化する。
PROCESS=BIT̲ENCODE
SET Number=1
SET Bit̲Count=1
DO WHILE
Bit̲Count<9
IF
bit (Bit̲Count) of Current̲Byte=first value in Table̲Pair (Number)
THEN
COMPUTE
NEXT̲TABLE̲PAIR(A.3.7参照)
ELSE
SET
Width=1,0000
SET
Shift̲Left=second value in Table̲Pair (Number)
SET
Compare=false
13
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
CHECK
TABLE̲PAIRS̲UPDATE
NEXT̲TABLE̲PAIR
SET
Bit̲Count=Bit̲ Count+1
END DO
END PROCESS=BIT̲ENCODE
A.3.5 検索 CVを検査し,適切なデータを符号化ブロックに付加する。
PROCESS=CHECK
IF
Code̲Block=null
THEN continue
ELSE
SET
Count=0
ADD
bit (Count) of CV to rightmost end of Code̲Block
SET
bit (Count) of CV to 0
IF
Rightmost integral 8 bits of Code̲Bloek=(FF)
THEN INSERT (0) after last integral 8 bits Code̲Block
ELSE
continue
SET
Count=Count+1
DO WHILE Shift̲Left>0
APPEND
bit (Count) of CV to rightmost end of Code̲Block
SET
bit (Count) of CV to 0
SHIFT
CV left one palce
APPEND
ZERO to rightmost end of CV
SET
Shift̲Left=Shift̲Left−1
IF
Code̲Block=integral multiple of 8 bits
THEN
IF
rightmost integral 8 bits of Code̲Block=(FF)
THEN
APPEND 0000 to Code̲Block
ELSE
continue
ELSE
continue
END DO
END PROCESS=CHECK
A.3.6 テーブルペア更新 テーブルペアを正しい値に更新する。Mcカウンタは,カウンタ値が,“1111”
のとき,1を加算すると“0000”になる。
PROCESS=TABLE̲PAIRS̲UPDATE
IF
Compare=true
THEN
CASE second value of Table̲Pair (Number) AND Mc̲Count
[second value of Table̲Pair (Number)=1 AND Mc̲Count (3 : 4)=11]
14
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
second value of Table̲Pair (Number)=2
[second value of Table̲Pair (Number)=2 AND Mc̲Count (2 : 4)=111]
second value of Table̲Pair (Number)=3
[second value of Table̲Pair (Number)=3 AND Mc̲Count (1 : 4)=1111]
second value of Table̲Pair (Number)=4
END CASE
SET
Mc̲Count=Mc̲Count+1
ELSE
IF
second value of Table̲Pair (Number)>1
THEN second value of Table̲Pair (Number)=second value of Table̲Pair (Number)−1
ELSE invert first value of Table Pair (Number)
END PROCESS=TABLE̲PAIRS̲UPDATE
A.3.7 次のテーブルペア 符号化処理に使用する次のテーブルペアを決める。
PROCESS=NEXT̲TABLE̲PAIR
IF
Bit̲Count<8
THEN
IF
bit (Bit̲Count) of Current̲Byte=1
THEN
Number=Twice Number+1
ELSE
Number=Twice Number
ELSE
SET
Number=1
END PROCESS=NEXT̲TABLE̲PAIR
A.3.8 符号生成器のクリア 符号生成器をブロックの符号化終了ごとにクリアする。
PROCESS=CLEAR̲ENCODER
SET
Zero̲Count=(00)
IF
Run̲Mode=1
THEN IF
first value of Unique̲Table̲Pair=0
THEN
COMPUTE
ELSE
SET
Width=1,0000
SET
Compare=false
SET
Shift̲Left=second value in Table̲Pair (Number)
CHECK
TABLE̲PAIRS̲UPDATE
ELSE continue
SET
Shift̲Left=4
CHECK
IF
Code̲Block=integral multiple of 8 bits
THEN TRAILER(A.3.9参照)
ELSE DO WHILE
Code̲Block ≠ integral multiple of 8 bits
15
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
APPEND
0 to Code̲Block
SET
Zero̲Count=Zero̲Count+1
END DO
TRAILER
END PROCESS=CLEAR̲ENCODER
A.3.9 トレーラ 復元時に使用するためトレーラは,各符号化ブロックに付加する。
PROCESS=TRAILER
SET
Trailer̲Byte=(00)
IF
Number of bytes in Code̲Block is odd
THEN
SET
Trailer̲Byte, bit 5=1
ELSE
SET
Trailer̲Byte, bit 5=0
APPEND
(FF) Code̲Block
SET
Trailer̲Byte, bits 6 : 8 to Zero̲Count
IF
Block is last block in Logical̲Data̲Record
THEN
SET
Trailer̲byte, bits 1 : 4 to 1100
ELSE
SET
Trailer̲byte, bits 1 : 4 to 1001
APPEND
Trailer̲Byte to Code̲Block
IF
Trailer̲Byte, bit 5=1
THEN
APPEND (00) to Code̲Block
ELSE
Continue
END PROCESS=TRAILER
16
X 6134 : 1997 (ISO/IEC 12042 : 1993)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
JIS磁気テープ原案作成委員会 構成表
(敬称略,順不同)
氏名
所属
(委員長)
大 石 完 一
パルステック工業株式会社
(幹事)
富 田 正 典
日本システムインテグレーション株式会社
(幹事)
徳 永 賢 次
住友スリーエム株式会社
金 子 悟
富士通株式会社
竹 内 正
株式会社トリム・アソシエイツ
平 川 卓
富士写真フイルム株式会社
新 井 清
日本システムハウス株式会社
今 井 伸 二
日本電気株式会社
安 藤 晴 夫
日本マクセル株式会社
樋 口 重 光
株式会社日立製作所
堀 川 憲 一
ソニー株式会社
荒 木 学
日本ユニシス株式会社
岸 野 忠 信
財団法人日本規格協会
永 松 荘 一
通商産業省機械情報産業局
藤 井 隆 宏
通商産業省工業技術院
兼 谷 明 男
通商産業省工業技術院
(関係者)
佐々木 修 二
財団法人日本電子部品信頼性センター
(事務局)
東 條 喜 義
社団法人日本電子工業振興協会
内 山 誠 作
社団法人日本電子工業振興協会