(57)【要約】【解決手段】ディザマトリックスの主走査方向の閾値数をＡ、符号化処理単位ビット数をＢ、上記Ａ及びＢの最大公約数をＣと置き、Ａ≧ＢのときＢ＝Ｃが成立する上記Ａを選択し、Ａ＜ＢのときＢの約数となる上記Ａを選択する。【効果】ディザマトリックスの主走査方向の閾値数と符号化処理単位ビット数との関係を適切に選択することによって学習時間を短縮し、結果的には符号化の圧縮効率を向上させることができる。【選択図】　　　　図１
2004104208.tif 000002
【特許請求の範囲】
【請求項１】
多値の画像データをディザマトリックスを用いて２値化し、所定のビット数単位で符号化して画像伝送する情報符号化方法であって、
前記ディザマトリックスの主走査方向の閾値数をＡ、前記所定のビット数をＢ、前記Ａ及びＢの最大公約数をＣと置き、
Ａ≧ＢのときＢ＝Ｃが成立する前記Ａを選択し、
Ａ＜ＢのときＢの約数となる前記Ａを選択することを特徴とする情報符号化方法。
【請求項２】
多値の画像データをディザマトリックスを用いて２値化された符号化処理単位数のビット列からなる入力データと、この入力データの１ライン前に位置する前記ビット列からなる参照データとを受け入れて、該参照データの示すデータ値が過去の経過で１ライン後に変化する筈であるデータ値を予測データとして示す所定の予測テーブルから前記予測データを参照し、この予測データと前記入力データとを比較して予測の一致及び不一致を判定し、前記不一致であるとき前記予測データを前記入力データで更新する予測部を含む情報符号化装置であって、
前記１ラインは、複数個の前記ビット列からなり、
前記予測テーブルは、複数個の前記ビット列にそれぞれ対応するサブインデックスビットが付加された複数個のサブテーブルからなり、
前記予測部は、
前記参照データの前記１ライン中における位置から前記サブインデックスビットを算出するサブインデックスビット算出手段と、
該サブインデックスビットの指定する前記所定のサブテーブルから前記予測データを算出する予測データ算出手段とを備え、
前記不一致であるとき前記算出されたサブインデックスビットの指定するサブテーブルのみ前記予測データを前記入力データで更新することを特徴とする情報符号化装置。
【請求項３】
請求項２に記載の情報符号化装置において、
前記サブインデックスビットは、
複数個のビットからなることを特徴とする情報符号化装置。
【請求項４】
多値の画像データをディザマトリックスを用いて２値化された符号化処理単位数のビット列からなる入力データと、この入力データの１ライン前に位置する前記符号化処理単位数のビット列からなる参照データとを受け入れて、該参照データに基づいて、該参照データの示すデータ値が過去の経過で１ライン後に変化する筈であるデータ値を予測データとして示す所定の予測テーブルから予測データを参照し、この予測データと前記入力データとを比較して予測の一致及び不一致を判定して符号化し、該不一致であるとき前記予測データを前記入力データで更新する予測部を含む情報符号化装置であって、
前記１ラインは、複数個の前記符号化処理単位数のビット列からなり、
前記予測テーブルは前記符号化処理単位数のビット列よりも長いビット列からなり、
前記予測テーブル内に先頭ビットの位置を変えて読み取り領域が指定される複数個の前記符号化処理単位数のビット列にそれぞれ対応する複数個のサブテーブルを備え、
前記予測部は、
前記参照データから前記読み取り領域を指定する読み取り領域決定手段と、
該読み取り領域決定手段の指定する前記サブテーブルから前記予測データを読み出す予測データ読み出し手段と
前記不一致であるとき前記決定された読み取り領域の指定するビット範囲のみ前記予測データを前記入力データで更新する予測テーブル更新手段とを備えることを特徴とする情報符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、組織的ディザ法によって２値化された静止画像の情報符号化方法及び装置に関する。
【０００２】
【従来の技術】
近年、高精細度の静止画像通信が要求されている。この要求を満たすために通信回線の高速化が積極的に進められている。しかし通信回線の高速化には限界がある。そこで、通信回線の高速化に並行して情報符号化の技術開発が進められている。一例として、多値の画像データを組織的ディザ法を用いて２値の画素データに変換し、更に符号化して伝送ビット数の低減を図る方法が実用化されている。
【０００３】
組織的ディザ法を用いて多値の画像データを２値の画素データに変換する場合には、画像の性質に基づいてディザマトリックスの大きさを決定する。即ち、写真画像などのように明暗差が微妙に変化する画像を変換する場合にはディザマトリックスをできる限り大きくし、解像度を低下させても階調数を大きくする。一方、文字画像などの場合にはディザマトリックスを小さくして階調度を小さくして解像度を上げる。
【０００４】
又、ディザ処理は通常１バイト単位で符号化処理され、主走査方向に並ぶディザマトリックスの閾値を左から順番に隙間無く繰り返して配列する。この閾値の上に１バイト単位の画像データを左から順番に隙間無く配列する。その閾値でスライスし、閾値よりも大きい場合に１、小さい場合に０として２値化する。この場合には、１バイト単位のデータの先頭値がディザマトリックスの所定の閾値の上に配列され、次に、データの先頭値がこの所定の閾値の上に配列されるまでの間のデータを１ラインとする。
【０００５】
数値例を挙げて説明する。例えばディザマトリックスの主走査方向の閾値の数量を９とする。この場合に１バイト単位でディザ処理すると１バイト目は１番目の閾値から８番目までの閾値によって処理される。２バイト目は９番目の閾値及び１番目から７番目までの閾値によって処理される。３バイト目は８番目の閾値から９番目の閾値及び１番目から６番目の閾値によって処理される。以下同様にして９バイト目は２番目の閾値から９番目の閾値によって処理され、１０バイト目は１番目の閾値から処理が開始される。即ち、この場合には、１バイトから９バイトを１ラインとする。
【０００６】
又、符号化して伝送ビット数の低減を図る方法では、画素データそのものを伝送する方法をとらない。その代わりに、１ライン前に伝送した直上の画素データ（以後参照データと記す）から所定の方法によって、伝送しようとしている画素データ（以後入力データと記す）のデータ値を予測する。もし予測が一致した場合には、既に参照データを伝送済みなので、入力データを大幅に圧縮して伝送することができる。このデータ予測方法には種々の方法がある。その一例を以下に記す。この方法では２種類の予測モードが併用される。以下に２種類の予測モード（予測モード１及び予測モード２）の概要について説明する。
【０００７】
予測モード１
通常入力データを８ビット単位で符号化（圧縮）する。この８ビットを上位４ビットと下位４ビットに分ける。この上位４ビットと下位４ビットを２個の１６進数で表して４ビット（４画素）一括して処理する。例えば、入力データの上位４ビットを符号化するときに、まず最初に参照データの上位４ビットのデータ値Ｘを読み出す。次に、予め備えられている１６アドレス×４ビットの予測テーブルからアドレスＸを検索する。
【０００８】
予測テーブルのアドレスＸには、過去の経過の中でデータ値Ｘが次のラインでＹに変化した場合に、そのデータ値Ｙが記載されている。従って、参照データの上位４ビットのデータ値がＸである場合には、予測テーブルのアドレスＸを検索すると、入力データの上位４ビットのデータ値はＹになる筈であると予測できる。
【０００９】
この予測データ値Ｙと入力データに実際に記載されているデータ値Ｚとを対比する。このデータ値Ｙとデータ値Ｚとが等しい場合には、予測一致と判定して予測一致と符号化して伝送する。又データ値Ｙとデータ値Ｚとが異なる場合には、予測不一致と判定して予測不一致の符号とデータ値Ｚとを伝送する。
【００１０】
又、予測テーブルは、一例として以下のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。参照データの上位４ビットのデータ値（上記データ値Ｘに相当する）を１６個のアドレスとする。その各々のアドレスには予測データが格納される。即ち、データ値Ｘが次のライン（入力データ）でデータ値Ｙに変化した最新の経過がある場合に、そのデータ値Ｙ（予測データ）が記載されている。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。
【００１１】
このデータ値Ｙ（予測データ）がデータ値Ｚ（入力データに実際に記載されているデータ値）と一致した場合には、データ値Ｙはそのまま保持される。データ値Ｙとデータ値Ｚとが異なる場合には、データ値Ｙはデータ値Ｚで更新される。その結果、予測テーブルには常に最新の経過が格納されていることになる。参照データの下位４ビットについても同様に処理されて、下位４ビットの画素データの予測値が格納される。
【００１２】
予測モード２
このモードでは、入力データの上位４ビットを符号化（圧縮）する場合に、この上位４ビットに対応する参照データのデータ値と直接対比する。例えば、入力データの上位４ビットを予測するとき、参照データのデータ値Ｘと入力データのデータ値Ｚとを直接対比する。このデータ値Ｘとデータ値Ｚとが等しい場合には、予測一致と判定して予測一致の符号を伝送する。又データ値Ｘとデータ値Ｚとが異なる場合には、予測不一致と判定して予測不一致の符号とデータ値Ｚとを伝送する。
【００１３】
上記予測モード１と予測モード２の差異は以下の通りである。即ち、予測モード１では各画素は、ライン毎に変化することを前提にしている。従って、１ライン前にデータ値Ｘであった画素は次のラインではデータ値Ｙに変化する筈であるとして、このデータ値Ｙを予測データにしている。そのために予測テーブルを備えて絶えず最新の予測データに更新して保持している。
【００１４】
一方、予測モード２では各画素は、ライン毎に変化しないことを前提としている１ライン前にデータ値Ｘであった画素は次のラインでもデータ値Ｘである筈としている。このデータ値Ｘを予測データにしている。通常、上記２種類の予測モードが所定の規則に基づいて併用される。いずれの予測モードを用いても、上記のように予測一致の画素が多ければ多いほど伝送するビット数は圧縮されることになる。
【００１５】
【発明が解決しようとする課題】
上記従来の技術には以下に記す未解決の問題が残されていた。
（１）ディザマトリックスを決定する場合に上記のように解像度と階調数との関係のみによって大きさを決定していたため、ディザマトリックスの主走査方向の大きさと符号化処理単位（通常１バイト）との整合が悪い場合に圧縮率が低下することがあった。
【００１６】
（２）上記予測モード１においては、予測データの更新は、入力データの１ライン前の参照データが示す上記アドレスＹについてのみ上記Ｚに更新されるべきである。即ち、入力データがあるライン上の一番先頭の位置であった場合には、参照データも１ライン前のライン上の一番先頭の位置でなければならない。しかし、同一ライン内の他の位置の参照データが上記Ｙであった場合にも更新されてしまう。
【００１７】
１ラインのビット数が長くなればなるほど、かかる状態の発生する確率が大きくなる。ここでは、その位置での入力データのデータ値によって更新される。このデータ値が上記Ｚとは限らない。この予測テーブルは最早、後に続くライン上の一番先頭の位置での予測データの役目を果たさない。以上の問題を解決して効率の高い符号化を促進することが本発明の目的である。
【００１８】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
多値の画像データをディザマトリックスを用いて２値化し、所定のビット数単位で符号化して画像伝送する情報符号化方法であって、上記ディザマトリックスの主走査方向の閾値数をＡ、上記所定のビット数をＢ、上記Ａ及びＢの最大公約数をＣと置き、Ａ≧ＢのときＢ＝Ｃが成立する上記Ａを選択し、Ａ＜ＢのときＢの約数となる上記Ａを選択することを特徴とする情報符号化方法。
【００１９】
〈構成２〉
多値の画像データをディザマトリックスを用いて２値化された符号化処理単位数のビット列からなる入力データと、この入力データの１ライン前に位置する上記ビット列からなる参照データとを受け入れて、該参照データの示すデータ値が過去の経過で１ライン後に変化する筈であるデータ値を予測データとして示す所定の予測テーブルから上記予測データを参照し、この予測データと上記入力データとを比較して予測の一致及び不一致を判定し、上記不一致であるとき上記予測データを上記入力データで更新する予測部を含む情報符号化装置であって、上記１ラインは、複数個の上記ビット列からなり、上記予測テーブルは、複数個の上記ビット列にそれぞれ対応するサブインデックスビットが付加された複数個のサブテーブルからなり、上記予測部は、上記参照データの上記１ライン中における位置から上記サブインデックスビットを算出するサブインデックスビット算出手段と、該サブインデックスビットの指定する上記所定のサブテーブルから上記予測データを算出する予測データ算出手段とを備え、上記不一致であるとき上記算出されたサブインデックスビットの指定するサブテーブルのみ上記予測データを上記入力データで更新することを特徴とする情報符号化装置。
【００２０】
〈構成３〉
構成２に記載の情報符号化装置において、上記サブインデックスビットは、複数個のビットからなることを特徴とする情報符号化装置。
【００２１】
〈構成４〉
多値の画像データをディザマトリックスを用いて２値化された符号化処理単位数のビット列からなる入力データと、この入力データの１ライン前に位置する上記符号化処理単位数のビット列からなる参照データとを受け入れて、該参照データに基づいて、該参照データの示すデータ値が過去の経過で１ライン後に変化する筈であるデータ値を予測データとして示す所定の予測テーブルから予測データを参照し、この予測データと上記入力データとを比較して予測の一致及び不一致を判定して符号化し、該不一致であるとき上記予測データを上記入力データで更新する予測部を含む情報符号化装置であって、上記１ラインは、複数個の上記符号化処理単位数のビット列からなり、上記予測テーブルは上記符号化処理単位数のビット列よりも長いビット列からなり、上記予測テーブル内に先頭ビットの位置を変えて読み取り領域が指定される複数個の上記符号化処理単位数のビット列にそれぞれ対応する複数個のサブテーブルを備え、上記予測部は、上記参照データから上記読み取り領域を指定する読み取り領域決定手段と、該読み取り領域決定手段の指定する上記サブテーブルから上記予測データを読み出す予測データ読み出し手段と上記不一致であるとき上記決定された読み取り領域の指定するビット範囲のみ上記予測データを上記入力データで更新する予測テーブル更新手段とを備えることを特徴とする情報符号化装置。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
従来技術の項で説明したように本発明が採用される符号化方法では、符号化処理に際して入力データの１ライン前の参照データが不可欠である。この参照データが１ライン分情報符号化装置内に取得されるまでの間（以後学習時間と記す）符号化方法は、効果を発揮し得ない。この学習時間を最低時間にするためには、符号化処理単位のビット数（通常８ビット）とディザマトリックスの主走査方向の閾値数との関係が適切に選択されることが必要になってくる。具体例１は、この方法に関する。
【００２３】
図１は、学習時間説明図（その１）である。
（１）は、ディザマトリックスの閾値が主走査方向に１２個、画素データの符号化処理単位数８ビットの場合であり、（２）は、ディザマトリックスの閾値が主走査方向に１６個、画素データの符号化処理単位数８ビットの場合である。学習時間の説明をする前に説明に最低限度必要な、情報符号化装置の構成について図を用いて説明する。
【００２４】
図２は、具体例１の構成のブロック図である。
図２より、具体例１の情報符号化装置は入力処理部１、バッファ管理部２、予測部３、予測テーブル（上位４ビット）４、予測テーブル（下位４ビット）５、符号作成部６、ラインバッファ７とを備える。
【００２５】
入力処理部１は、入力データを受け入れて予測部３と後記バッファ管理部２を介してラインバッファ７へ送る部分である。
バッファ管理部２は、後記予測部３の要求に応じて、後記ラインバッファ７から１ライン前のデータを読み出し又は書き込みする部分である。
【００２６】
予測部３は、入力処理部１から入力データを受け入れたとき、上記バッファ管理部２を介して後記ラインバッファ７から１ライン前のデータ（以後参照データと記す）を受け入れる。この参照データと後記予測テーブル（上位４ビット）４、及び後記予測テーブル（下位４ビット）５を用いて予測データを算出する部分である。
【００２７】
又、予測結果（予測一致又は予測不一致）を後記符号作成部６へ送る部分である。更に、予測モード１の場合には、予測不一致のときに予測テーブルのデータ値を入力データに記載されているデータ値で更新する部分である。
【００２８】
予測テーブル（上位４ビット）４は、１６アドレス４ビットのテーブルであって下記のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。参照データの上位４ビットのデータ値を１６個のアドレスとする。その各々のアドレスには予測データが格納される。例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、アドレスＸにデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。
【００２９】
予測テーブル（下位４ビット）５も、上記予測テーブル（上位４ビット）４と同様に４ビット１６アドレスのテーブルであって、下記のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。参照データの下位４ビットのデータ値を１６個のアドレスとする。その各々のアドレスには予測データが格納される。例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、アドレスＸにデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。
【００３０】
符号作成部６は、予測部３から受け入れた予測結果を符号化する部分である。ラインバッファ７は、バッファ管理部２の制御に基づいて１ライン前のデータを格納しておく部分である。
以上で情報符号化装置の構成に関する説明を終了して、図１に戻って学習時間について説明する。
【００３１】
ステップＳ（１）１
図１の（１）において、ビット列〔１〕を予測部３（図２）が入力処理部１（図２）を介して受け入れると、予測部３（図２）はバッファ管理部２（図２）に参照データの受け入れを要求する。ラインバッファ７（図２）にはまだデータが格納されていないので予測結果は不一致となる。その結果、予測テーブル（上位４ビット）４（図２）はビット列〔１〕の上位４ビットに書き込まれているデータ値で更新される。同様に、予測テーブル（下位４ビット）５（図２）はビット列〔１〕の下位４ビットに書き込まれているデータ値で更新される。ここでビット列〔１〕は、ディザマトリックスの１番目の閾値から８番目までの閾値でスライスされた符号化処理単位（通常８ビット）の画素データである。
【００３２】
ステップＳ（１）２
図１の（１）において、ビット列〔２〕を予測部３（図２）が入力処理部１（図２）を介して受け入れると、予測部３（図２）はバッファ管理部２（図２）に参照データの受け入れを要求する。しかしラインバッファ７（図２）にはまだデータが格納されていないので予測結果は不一致となる。その結果、予測テーブル（上位４ビット）４（図２）はビット列〔２〕の上位４ビットに書き込まれているデータ値で更新される。同様に予測テーブル（下位４ビット）５（図２）はビット列〔２〕の下位４ビットに書き込まれているデータ値で更新される。ここでビット列〔２〕は、ディザマトリックスの９番目の閾値から１２番目を経て４番目までの閾値でスライスされた符号化処理単位の画素データである。
【００３３】
ステップＳ（１）３
図１の（１）において、ビット列〔３〕を予測部３（図２）が入力処理部１（図２）を介して受け入れると、予測部３（図２）はバッファ管理部２（図２）に参照データの受け入れを要求する。しかしラインバッファ７（図２）にはまだデータが格納されていないので予測結果は不一致となる。その結果、予測テーブル（上位４ビット）４（図２）はビット列〔３〕の上位４ビットに書き込まれているデータ値で更新される。同様に予測テーブル（下位４ビット）５（図２）はビット列〔３〕の下位４ビットに書き込まれているデータ値で更新される。ここでビット列〔３〕は、ディザマトリックスの５番目の閾値から１２番目までの閾値でスライスされた符号化処理単位の画素データである。
【００３４】
ステップＳ（１）４
図１の（１）において、ビット列〔４〕を予測部３（図２）が入力処理部１（図２）を介して受け入れると、予測部３（図２）はバッファ管理部２（図２）に参照データの受け入れを要求する。ラインバッファ７（図２）にステップＳ（１）１で格納されたデータは、ディザマトリックスの１番目の閾値から８番目までの閾値でスライスされた符号化処理単位の画素データである。ここで、ビット列〔４〕とビット列〔１〕とは、同一の閾値でスライスされた画素データであり、参照データとなりうる。従って、このステップＳ（１）４以降、予測部は正規の動作することが可能になる。
【００３５】
以後、ステップＳ（１）５ではビット列〔２〕が、ステップＳ（１）６ではビット列〔３〕が、………それぞれ参照データとなる。即ち、ビット列〔１〕からビット列〔３〕が、１ラインとなる。同様にビット列〔４〕からビット列〔６〕、ビット列〔７〕からビット列〔９〕、……も１ラインとなる。ここでビット列〔１〕からビット列〔３〕まで最初のラインの処理時間が学習時間となる。この学習時間の間は入力データの予測一致はあり得ない。即ち学習時間が長ければ長いほど符号化の圧縮効率を低下させる。具体例１の目的は、この学習時間の短縮にある。
【００３６】
学習時間は最初の１ラインを処理する時間であり、学習時間を短縮するためには１ラインをできる限り短くすることが必要である。そのためにはビット列の長さ（符号化処理単位のビット数）とディザマトリックスの主走査方向の閾値数との関係を適切に選択することが求められる。
【００３７】
図１（１）より、学習時間はビット列〔１〕からビット列〔３〕までの２４ビットを処理する時間である。この２４ビットはビット列（符号化処理単位ビット数（ここでは８））とディザマトリックスの主走査方向の閾値数（ここでは１２）との最小公倍数である。即ち学習時間を短縮するためには、この最小公倍数が最低になるように主走査方向の閾値数と符号化処理単位ビット数との関係を選択することが必要である。この関係を満足するためには下記の選択方法を提唱する。
【００３８】
ディザマトリックスの主走査方向の閾値数をＡ、画素データの符号化処理単位のビット数をＢ、Ａ及びＢの最大公約数をＣと置き、Ａ≧ＢのときＢ＝Ｃが成立するＡを選択し、Ａ＜ＢのときＢの約数となるＡを選択する。
【００３９】
実際に数値例を挙げて説明する。図１（１）は、Ａ＝１２、Ｂ＝８なのでＣ＝４となる。Ａ≧Ｂに相当しＢ＝Ｃが成立しなければならない。しかしＢ＝８、Ｃ＝４となり条件を満足しない。即ち、図１（１）は、不適切な選択になる。一方、図１（２）は、Ａ＝１６、Ｂ＝８なのでＣ＝８となる。Ａ≧Ｂに相当しＢ＝Ｃが成立しなければならない。Ｂ＝８、Ｃ＝８なので条件を満足する。即ち、図１（１）は、適切な選択になる。
【００４０】
ここで留意すべき点は以下の通りである。図１（２）の方が図１（１）よりも大きなディザマトリックスを用いているが、適切な選択がなされているために学習時間が短くなっている。即ち、図２（２）はビット列〔１〕とビット列〔２〕で１ラインを構成している。結果として符号化の圧縮効率が良くなることである。次にＡ＜Ｂの場合について実際に数値例を挙げて説明する。
【００４１】
図３は、学習時間説明図（その２）である。
（３）は、ディザマトリックスの閾値が主走査方向に６個、画素データの符号化処理単位８ビットの場合であり（４）は、ディザマトリックスの閾値が主走査方向に４個、画素データの符号化処理単位８ビットの場合であり（５）は、ディザマトリックスの閾値が主走査方向に２個、画素データの符号化処理単位８ビットの場合である。
【００４２】
図３（３）は、Ａ＝６、Ｂ＝８なのでＣ＝２となる。Ａ＜Ｂに相当しＡ＝Ｃが成立しなければならない。しかしＡ＝６、Ｃ＝２となり条件を満足しない。即ち、図３（３）は、不適切な選択になる。一方、図３（４）は、Ａ＝４、Ｂ＝８なのでＣ＝４となる。Ａ＜Ｂに相当しＡ＝Ｃが成立しなければならない。Ａ＝４、Ｃ＝４なので条件を満足する。即ち、図３（４）は、適切な選択になる。又図３（５）は、Ａ＝２、Ｂ＝８なのでＣ＝２となる。Ａ＜Ｂに相当しＡ＝Ｃが成立しなければならない。Ａ＝２、Ｃ＝２なので条件を満足する。即ち、図３（５）は、適切な選択になる。
【００４３】
以上の説明は、符号化処理単位数を８ビットのみの場合についてのみ説明したが、８ビット以外の場合であっても上記条件を満足すれば適切な選択になることは言うまでもない。
【００４４】
〈具体例１の効果〉
以上説明したように、ディザマトリックスの主走査方向の閾値数と符号化処理単位ビット数との関係を適切に選択することによって学習時間を短縮し、結果的には符号化の圧縮効率を向上させることができる。
【００４５】
〈具体例２の構成〉
上記、発明が解決しようとする課題の（２）で説明したように、予測モード１において予測データの更新は、１ライン前の参照データについてのみ、なされるべきである。しかし同一ライン中の他の参照データもデータ値Ｙがあった場合には、このデータ値Ｙによっても予測テーブルが更新されてしまう。これでは正しい予測結果を期待することはできない。かかる問題を解決して効率の高い符号化を促進することが具体例２の目的である。
【００４６】
図４は、具体例２の構成のブロック図である。
図４より、具体例２の情報符号化装置は入力処理部１、バッファ管理部２２、予測部２３、予測テーブル（上位４ビット）２４、予測テーブル（下位４ビット）２５、符号作成部６、ラインバッファ７とを備える。以下に具体例１との差異のみについて説明する。
【００４７】
バッファ管理部２２は、後記予測部２３の要求に応じて、後記ラインバッファ７に１ライン前のデータを読み出し又は書き込みする部分である。更に、現在処理中のビットが１ラインの中で何番目のビットであるかを認識して予測部２３に知らせる部分でもある。この認識によって、予測部２３は、現在処理中のビットがディザマトリックスの何番目の閾値によってスライスされたかを認識できることになる。
【００４８】
予測部２３は、入力処理部１から入力データを受け入れたとき、上記バッファ管理部２２を介してラインバッファ７から参照データを受け入れる。この参照データと予測テーブル（上位４ビット）２４、及び予測テーブル（下位４ビット）２５を用いて予測データを算出する部分である。又、予測結果（予測一致又は予測不一致）を符号作成部６へ送る部分である。更に、予測モード１の場合には、予測不一致のときに予測テーブルのデータ値を入力データに記載されているデータ値で更新する部分である。尚、参照データを受け入れたとき参照データからサブインデックスビット（後記）を算出するサブインデックスビット算出手段と、このサブインデックスの指定する後記所定のサブテーブルから予測データを算出する予測データ算出手段とを備える部分でもある。
【００４９】
予測テーブル（上位４ビット）２４は、４ビット１６アドレスに一例としてサブインデックス３ビットが付加された複数のサブテーブルの集合である。サブテーブルは、次のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。参照データの上位４ビットのデータ値を１６個のアドレスとする。その各々のアドレスには予測データが格納される。例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、そのデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。更に、このサブテーブルは、１ライン上に並ぶ複数個の参照データのそれぞれの位置に対応させて複数個設けられる。その複数個のサブテーブルを特定するためにサブインデックス３ビットが付加される。
【００５０】
予測テーブル（下位４ビット）２５も、予測テーブル（上位４ビット）２４と同様に４ビット１６アドレスに一例としてサブインデックス３ビットが付加された複数のサブテーブルの集合である。サブテーブルは、次のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。参照データの下位４ビットのデータ値を１６個のアドレスとする。その各々のアドレスには予測データが格納される。例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、そのデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。更に、このサブテーブルは、１ライン上に並ぶ複数個の参照データのそれぞれの位置に対応させて複数個設けられる。その複数個のサブテーブルを特定するためにサブインデックス３ビットが付加される。
【００５１】
他の構成部分は具体例１と同様なので説明を割愛する。
次に上記サブインデックスの算出原理について図を用いて説明する。
図５は、マトリックス９のサブインデックス説明図である。
（１）は、主走査方向の閾値数９のディザマトリックスの第一行を表し、その先頭値を星印で表している。
（２）は、ディザマトリックスの第一行を主走査方向に隙間なく並べその上に符号化処理単位８ビットを重ねた図である。
（３）は、サブインデックスとサブテーブルの特定を説明する図である。
【００５２】
（２）から分かるように、主走査方向の閾値数９のディザマトリックスを用いて符号化処理単位数８ビットで処理するビット列〔１〕からビット列〔９〕までが１ラインになる。具体例２ではビット列〔１〕からビット列〔９〕までのそれぞれの位置に対応する９個のサブテーブルを備える。従って、ビット列〔１〕に対応するサブテーブルはビット列〔１〕に該当する入力データ以外のデータでは更新されなくなる。
【００５３】
（３）はサブテーブルとサブインデックスとの関係を表している。図上一番左から順番に、ビット列〔１〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝０、ビット列〔２〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝１、ビット列〔３〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝２、ビット列〔４〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝３、ビット列〔５〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝４、ビット列〔６〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝５、ビット列〔７〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝６、ビット列〔８〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝７、ビット列〔９〕に対応するサブテーブルのサブインデックスとしてｕ・ｉｎｄｅｘ＝７を、それぞれ付加する。
【００５４】
図５（３）から分かるように、上位４ビットと下位４ビットに分解されている。又ｕ・ｉｎｄｅｘ＝０のサブテーブルではディザマトリックスの先頭値（星印）が１番左に配置されている。ｕ・ｉｎｄｅｘ＝１のサブテーブルではディザマトリックスの先頭値（星印）が２番目に配置されている。同様にしてｕ・ｉｎｄｅｘ＝２のサブテーブルでは３番目に、ｕ・ｉｎｄｅｘ＝３のサブテーブルでは４番目に、ｕ・ｉｎｄｅｘ＝４のサブテーブルでは５番目に、ｕ・ｉｎｄｅｘ＝４のサブテーブルでは５番目に、ｕ・ｉｎｄｅｘ＝５のサブテーブルでは６番目に、ｕ・ｉｎｄｅｘ＝６のサブテーブルでは７番目に、ｕ・ｉｎｄｅｘ＝７のサブテーブルでは８番目にそれぞれ配置されている。
【００５５】
又ディザマトリックスの先頭値（星印）が含まれていない場合には１つ前とずれが同じであると判断して、１つ前のサブインデックスを付加する。図上のビット列〔９〕に対応するサブテーブルが相当する。このディザマトリックスの先頭値（星印）の位置や現在処理中のビットがディザマトリックスの何番目の閾値によってスライスされたデータであるかは、バッファ管理部２２によって認識されている。従って、符号化処理単位の最初の位置の閾値を認識すること、又は、星印の位置が符号化処理単位のどの位置に配置されているかを認識することによって参照データから対応するサブインデックス（ｕ・ｉｎｄｅｘ）を容易に検出することができる。
【００５６】
〈具体例２の動作〉
図６は、具体例２の動作のフローチャートである。
具体例２の情報符号化装置の動作について、図上のステップＳ（２）１からステップＳ（２）１３に従って説明する。
【００５７】
ステップＳ（２）１
装置内の全ての部分が初期化され動作を開始する。
ステップＳ（２）２
入力処理部１（図４）を介して予測部２３（図４）はデータの受け入れを開始する。入力データを最初の１ライン分受け入れると参照データがラインバッファ７（図４）に格納される。以後情報符号化装置は正規の符号化を開始する。予測部２３（図４）は入力処理部１（図４）を介して入力データを受け入れる。又バッファ管理部２（図４）を介してラインバッファ７（図４）から参照データを受け入れる。ここで、図６上の入力データ〔Ｘ〕〔Ｙ〕及び参照データ〔Ｘ〕〔Ｙ〕の〔Ｘ〕〔Ｙ〕はＸ−Ｙ平面上でのデータの位置を示している。
【００５８】
ステップＳ（２）３
予測部２３（図４）のサブインデックスビット算出手段は、参照データのデータ値からｕ・ｉｎｄｅｘを算出する。この動作については後に他の図を用いて再度説明する。
ステップＳ（２）４
現在の処理がモード１に該当するか否かを判断し、モード１に該当する場合にはステップＳ（２）５へ進み、該当しない場合にはステップＳ（２）６へ進む。
【００５９】
ステップＳ（２）５
予測部２３（図４）の予測データ算出手段は、上記サブインデックスビット算出手段が算出したｕ・ｉｎｄｅｘに基づいて、予測テーブル（上位４ビット）２４（図４）及び予測テーブル（下位４ビット）２５（図４）から所定のサブテーブルを選択する。このサブテーブルを検索して予測データを算出する。この動作については後に他の図を用いて再度説明する。
ステップＳ（２）６
予測モード２（従来技術で説明済み）に相当するので参照データのデータ値をそのまま予測データとする。
【００６０】
ステップＳ（２）７
予測部２３（図４）は、入力データと予測データが一致しているか不一致であるかを判断して、一致している場合にはステップＳ（２）８へ進み、一致していない場合にはステップＳ（２）９へ進む。
ステップＳ（２）８
予測部２３（図４）が、符号作成部６（図４）に一致を知らせると、符号作成部６（図４）は短い符号を割り当てて符号データを送出する。
【００６１】
ステップＳ（２）９
予測部２３（図４）が、符号作成部６（図４）に不一致を知らせると、符号作成部６（図４）は不一致の符号に入力データを付加して符号データを送出する。同時に予測モード１の場合に予測部２３（図４）は、予測テーブル（上位４ビット）２４（図４）及び予測テーブル（下位４ビット）２５のデータ値を入力データのデータ値で更新する。
【００６２】
ステップＳ（２）１０
バッファ管理部２２（図４）は、ラインバッファ７（図４）を制御して参照データを入力データで更新する。
ステップＳ（２）１１からステップＳ（２）１４及びステップＳ（２）２への戻りループによって伝送されるべき画像情報がＸ−Ｙ全面にわたって処理されフローが終了する。
【００６３】
次に他の図を用いてステップＳ（２）３を再度説明する。
サブインデックスの検出の原理については既に、符号化処理単位の最初の位置の閾値を認識すること、又は、星印の位置が符号化処理単位のどの位置に配置されているかを認識することによって参照データから対応するサブインデックス（ｕ・ｉｎｄｅｘ）を容易に検出できることを図５で説明済みである。
【００６４】
ここでは上記ステップＳ（２）３を予測部２３（図４）が算出するフローの一例を挙げて、実際に図５の数値を当てはめて説明する。
図７は、サブインデックスビット算出手段のフローチャートである。
このフローチャート中、ｂｃｏｕｎｔは処理中のビットがディザマトリックスのどの閾値でスライスされたかをカウントするカウンタである。ただし、図５では閾値は１から９で表してあるが演算処理の都合から０から８で表すこととする。
【００６５】
一例として予測部２３（図４）が図５のビット列〔１０〕を受け入れたと仮定する。図に示すようにビット列〔１０〕の最初のデータはディザマトリックスの閾値１でスライスされている。従ってｂｃｏｕｎｔ＝０である。以下にステップＳ（２）１５〜ステップＳ（２）２０に従ってビット列〔１０〕のｕ・ｉｎｄｅｘを算出する。
【００６６】
ステップＳ（２）１５
ｂｃｏｕｎｔに８を加算する。従ってｂｃｏｕｎｔ＝８となる。
ステップＳ（２）１６
ｂｃｏｕｎｔ＝８とマトリックス長を比較する。ここではｂｃｏｕｎｔ＝８がマトリックス長９よりも小さいのでステップＳ（２）１７へ進む。
【００６７】
ステップＳ（２）１７
ｂｃｏｕｎｔが０かどうかを判断する。ここではｂｃｏｕｎｔ＝８なのでステップＳ（２）１９へ進む。
ステップＳ（２）１９
ｂｃｏｕｎｔが８よりも大きいか否かを判断する。ここではｂｃｏｕｎｔ＝８なのでステップＳ（２）２０へ進む。
【００６８】
ステップＳ（２）２０
８−ｂｃｏｕｎｔ＝ｕ・ｉｎｄｅｘとしてｕ・ｉｎｄｅｘを求める。ここではｂｃｏｕｎｔ＝８なのでｕ・ｉｎｄｅｘ＝０と求まりフローを終了する。
【００６９】
図５（３）において、最初のデータがディザマトリックスの閾値１でスライスされている上位４ビットの予測テーブルのｕ・ｉｎｄｅｘは０であり、上記計算結果と一致する。
次に他の図を用いてステップＳ（２）５を再度説明する。
【００７０】
図８は、予測データ算出手段のフローチャートである。
予測部２３（図４）の予測データ算出手段はステップＳ（２）２１〜ステップＳ（２）２４に従って予測データを算出する。
ここで図上、Ｅｓｔ・Ｉｎｄｅｘ１とは予測テーブル（上位４ビット）２４のアドレスを示すインデックスであり、Ｅｓｔ・Ｉｎｄｅｘ２とは予測テーブル（下位４ビット）２５のアドレスを示すインデックスである。又Ｒｅｆｆｅｒとは参照データを表している。
【００７１】
ステップＳ（２）２１
ｕ・ｉｎｄｅｘの３ビットを左シフトし、参照データを４ビット右シフトしてＯＲをとると予測テーブル（上位４ビット）２４のアドレスが求まる。
ステップＳ（２）２２
ｕ・ｉｎｄｅｘの３ビットを左シフトし、参照データの上位４ビットをマスクしてＯＲをとると予測テーブル（下位４ビット）２５のアドレスが求まる。
【００７２】
ステップＳ（２）２３
上記ステップＳ（２）２１とステップＳ（２）２２に求めたアドレスからテーブルを検索する。
ステップＳ（２）２４
上記ステップＳ（２）２３で検索した値を予測データとしてフローを終了する。
【００７３】
以上の説明では予測テーブルにサブインデックスを３ビット付加する場合に限定して説明した。しかし本発明は、この例に限定されるものではない。即ち１ラインが長くなった場合にはサブインデックスを３ビット付加するだけでは不十分な場合も発生する。その場合には更にビット数を増加しても良い。
【００７４】
又、図７にサブインデックスビット算出手段のフローチャートを挙げて説明したが、本発明のサブインデックスビット算出手段は、この例に限定されるものではない。即ち、参照データから符号化処理単位の最初の位置の閾値を認識すること、又は、星印の位置が符号化処理単位のどの位置に配置されているかを認識することによって算出するのと類似した方法であれば他のアルゴリズムを用いて算出しても良い。
【００７５】
〈具体例２の効果〉
以上説明したように、異なるサブインデックスを付加した複数個のサブテーブルを備えることによって予測テーブルの上書き（更新）を回避することができ、予測的中率を向上させることができる。
【００７６】
〈具体例３〉
具体例２では予測テーブルの上書きを回避するためにサブインデックスを付加して複数個のサブテーブルを設けている。この場合には、メモリ数が大幅に増加した。例えば図４ではサブテーブルを８個備えるためにサブインデックスを３ビット付加し、予測テーブルは１２８アドレスまで増加している。具体例３では、複数個のサブテーブルを備えてもアドレスを増加させないことを目的とする。
【００７７】
図９は、具体例３の構成のブロック図である。
図９より、具体例３の情報符号化装置は入力処理部１、バッファ管理部２２、予測部３３、予測テーブル（上位４ビット）３４、予測テーブル（下位４ビット）３５、符号作成部６、ラインバッファ７とを備える。以下に具体例１又は具体例２との差異ある部分のみについて説明する。
【００７８】
予測部３３は、入力処理部１から入力データを受け入れたとき、上記バッファ管理部２２を介してラインバッファ７から参照データを受け入れる。この参照データと後記予測テーブル（上位４ビット）３４、及び予測テーブル（下位４ビット）３５を用いて予測データを算出する部分である。又、予測結果（予測一致又は予測不一致）を符号作成部６へ送る部分である。更に、予測モード１の場合には、予測不一致のときに予測テーブルのデータ値を入力データに記載されているデータ値で更新する部分である。尚、参照データを受け入れたとき参照データから後記読み取り領域を決定する読み取り領域決定手段と、この読み取り領域を後記所定のサブテーブルとして予測データを読み出す予測データ読み出し手段と、予測不一致の場合に予測テーブルを更新する予測テーブル更新手段とを備える部分でもある。
【００７９】
予測テーブル（上位４ビット）３４は、一例として１１ビット１６アドレスのテーブルである。この１１ビットに予測データが格納されている。この１１ビットの中で所定のビット位置から連続する４ビットで構成される複数個のサブテーブルを備える。即ち、１個のアドレスで指定される１１ビットの中に複数個のサブテーブルが含まれている。このサブテーブルを特定するために必要な所定のビット位置は、上記予測部３３の読み取り領域決定手段によって決定される。上記アドレスは、下記のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。この上位４ビットのデータ値１６個を上記アドレスとする。同一アドレス内の複数個のサブテーブルには、例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、そのデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。更に、このサブテーブルは、１ライン上に並ぶ複数個の参照データのそれぞれに対応させて複数個設けられる。
【００８０】
予測テーブル（下位４ビット）３５は、一例として１１ビット１６アドレスのテーブルである。この１１ビットに予測データが格納されている。この１１ビットの中で所定のビット位置から連続する４ビットで構成される複数個のサブテーブルを備える。即ち、１個のアドレスで指定される１１ビットの中に複数個のサブテーブルが含まれている。このサブテーブルを特定するために必要な所定のビット位置は、上記予測部３３の読み取り領域決定手段によって決定される。上記アドレスは、下記のように構成される。参照データ１バイトを上位４ビット、下位４ビットに分解する。この下位４ビットのデータ値１６個を上記アドレスとする。同一アドレス内の複数個のサブテーブルには、例えば、データ値Ｘが次のラインでデータ値Ｙに変化した最新の経過がある場合に、そのデータ値Ｙが記載される。ただし、最初の１ライン目では過去の経過がないので全て０が記載されている（この０は２ライン目以降で更新される）。更に、このサブテーブルは、１ライン上に並ぶ複数個の参照データのそれぞれに対応させて複数個設けられる。
【００８１】
他の構成部分は具体例１又は具体例２と同様なので説明を割愛する。次に上記読み取り領域決定手段の基本原理について図を用いて説明する。
図１０は、マトリックス９の読み取り領域説明図である。
（１）は、主走査方向の閾値数９のディザマトリックスの第一行を表し、その先頭値を星印で表している。
（２）は、ディザマトリックスの第一行を主走査方向に隙間なく並べ、その上に符号化処理単位８ビットを重ねた図である。
（３）は、読み取り領域とサブテーブルの特定を説明する図である。
【００８２】
（２）から分かるように、主走査方向の閾値数９のディザマトリックスを用いて符号化処理単位数８ビットで処理するビット列〔１〕からビット列〔９〕までが１ラインになる。具体例３ではビット列〔１〕からビット列〔９〕までのそれぞれに対応する９個のサブテーブルを備える。この９個のサブテーブルは（３）の上から下まで９段のビット列にそれぞれ該当する。従ってビット列〔１〕に対応するサブテーブルは、ビット列〔１〕に該当する入力データ以外のデータでは更新されなくなる。
【００８３】
（３）はサブテーブルと読み取り領域との関係及びサブテーブルを特定するためのサブインデックスを表している。図の上から順番に、ビット列〔１〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝０と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔１〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置８番目から配置されている。更にディザマトリックスの最初の閾値が最初の位置にある。
【００８４】
ビット列〔２〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝１と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔２〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置７番目から配置されている。更にディザマトリックスの最初の閾値が２番目の位置にある。
【００８５】
ビット列〔３〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝２と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔３〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置６番目から配置されている。更にディザマトリックスの最初の閾値が３番目の位置にある。
【００８６】
ビット列〔４〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝３と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔４〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置５番目から配置されている。更にディザマトリックスの最初の閾値が４番目の位置にある。
【００８７】
ビット列〔５〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝４と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔５〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置４番目から配置されている。更にディザマトリックスの最初の閾値が５番目の位置にある。
【００８８】
ビット列〔６〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝５と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔６〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置３番目から配置されている。更にディザマトリックスの最初の閾値が６番目の位置にある。
【００８９】
ビット列〔７〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝６と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔７〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置２番目から配置されている。更にディザマトリックスの最初の閾値が７番目の位置にある。
【００９０】
ビット列〔８〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝７と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔８〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置１番目から配置されている。更にディザマトリックスの最初の閾値が８番目の位置にある。
【００９１】
ビット列〔９〕に対応するサブテーブルのサブインデックスとしてｖ・ｉｎｄｅｘ＝７と定める。ここでは上位４ビットと下位４ビットに分解されている。又、ビット列〔９〕は、上位４ビット及び下位４ビットとも予測テーブルのビット位置１番目から配置されている。更にディザマトリックスの最初の閾値は含まれていない。
【００９２】
ここで留意すべきは以下の点にある。最終段に記載されているビット列〔９〕を除く全てのビット列において、テーブルの縦方向は全てディザマトリックスの閾値が同一である。このことは同一アドレス１１ビットの中に読み出し領域の異なる９個のサブテーブルを含ませることができることを意味している。従って、上記サブインデックスに基づいて読み出し領域を移動させれば容易に所望のサブテーブルのデータを読み出すことが可能になる。又ビット列〔９〕についても、ビット列〔８〕からのデータのずれが他のビット列と同様なのでビット列〔８〕との間で上書きされることは無くなるため同一に扱うことが可能になる。
【００９３】
〈具体例３の動作〉
図１１は、具体例３の動作のフローチャートである。
具体例３の情報符号化装置の動作について図に従って説明する。
ただし、具体例２の動作と異なる点はステップＳ（３）１のｖ・ｉｎｄｅｘ算出、ステップＳ（３）２の予測データ読み出し、ステップＳ（３）３の予測不一致処理の３工程のみである。他の工程は全て具体例２と同様なので、上記３工程のみについて他の図を用いて詳細に説明し、他の工程については説明を割愛する。
【００９４】
図１２は、読み取り領域決定手段のフローチャートである。上記ステップＳ（３）１のｖ・ｉｎｄｅｘ算出に該当するフローである。
図上Ｅｓｔ・ｉｎｄｅｘ１は、上位４ビットの予測データのインデックス（アドレス）であり、Ｅｓｔ・ｉｎｄｅｘ２は、下位４ビットの予測データのインデックス（アドレス）である。又ｂｍａｓｃは読み取り領域の位置を示す情報である。
【００９５】
ステップＳ（３）１−１
予測部３３（図９）は参照データを上位４ビット、下位４ビットに分解して上位４ビットをＥｓｔ・ｉｎｄｅｘ１に下位４ビットをＥｓｔ・ｉｎｄｅｘ２に格納する。
【００９６】
ステップＳ（３）１−２
予測部３３（図９）は参照データからディザマトリックスの最初の閾値がビット列の何番目にあるかを認識してサブインデックス（ｖ・ｉｎｄｅｘ）を決定する。このｖ・ｉｎｄｅｘの値をｂｍａｓｃに格納してフローを終了する。このステップで参照データから所定のサブテーブルを検索するための読み取り領域が決定される。
【００９７】
図１３は、予測データ読み出し手段のフローチャートである。上記ステップＳ（３）２の予測データ読み出しに該当するフローである。図上、ｔｅｍｐ１及びｔｅｍｐ２は、データを一時保持する部分である。
ステップＳ（３）２−１
予測部３３（図９）は、上記ステップＳ（３）１−２（図１２）で求めた読み取り領域（ｂｍａｓｃ）を用いてＥｓｔ・ｉｎｄｅｘ１の指定する１１ビットの中から４ビットのデータを読み取ってｔｅｍｐ１に一時格納する。同様にＥｓｔ・ｉｎｄｅｘ２の指定する１１ビットの中から４ビットのデータを読み取ってｔｅｍｐ２に一時格納する。
【００９８】
ステップＳ（３）２−２
予測部３３（図９）は、ｔｅｍｐ１に一時格納されているデータをｖ・ｉｎｄｅｘの数値（０から１０）だけ右へシフトさせる。同様にｔｅｍｐ２に一時格納されているデータをｖ・ｉｎｄｅｘの数値（０から１０）だけ右へシフトさせる。
【００９９】
ステップＳ（３）２−３
ｔｅｍｐ１のデータを４ビット左シフトし、ｔｅｍｐ２のデータをそのまま保存する。
ステップＳ（３）２−４
ｔｅｍｐ１のデータを上位４ビットの予測データとし、ｔｅｍｐ２のデータを下位４ビットの予測データとしてフローを終了する。
【０１００】
図１４は、予測テーブル更新手段のフローチャートである。上記ステップＳ（３）３の予測不一致処理に該当するフローである。図上、ｃｕｒｒｅｎｔは入力データを意味する。
ステップＳ（３）３−１
予測部３３（図９）は、上記ステップＳ（３）１−２（図１２）で求めた読み取り領域（ｂｍａｓｃ）を用いてＥｓｔ・ｉｎｄｅｘ１の指定する１１ビットの中から４ビットのデータを読み取ってｔｅｍｐ１に一時格納する。同様にＥｓｔ・ｉｎｄｅｘ２の指定する１１ビットの中から４ビットのデータを読み取ってｔｅｍｐ２に一時格納する。
【０１０１】
ステップＳ（３）３−２
予測部３３（図９）は、入力データの上位４ビットを右シフトして読み出す。このデータをｖ・ｉｎｄｅｘ分左シフトする。このデータとステップＳ（３）３−１でｔｅｍｐ１に格納したデータとの論理和をとり再度ｔｅｍｐ１に格納する。同様に入力データの下位４ビットをとり、このデータをｖ・ｉｎｄｅｘ分左シフトする。このデータとステップＳ（３）３−１でｔｅｍｐ２に格納したデータとの論理和をとり再度ｔｅｍｐ２に格納する。
【０１０２】
ステップＳ（３）３−３
予測部３３（図９）は、ｔｅｍｐ１に格納されているデータを上記ステップＳ（３）３−１で読み取った元の位置に上書きして上位４ビットの更新を終わる。同様にｔｅｍｐ２に格納されているデータを上記ステップＳ（３）３−１で読み取った元の位置に上書きして下位４ビットの更新を終わる。
【０１０３】
以上の説明は、主走査方向のディザマトリックスの閾値の数量が９個で符号化処理単位が８ビットの場合に限定して説明した。しかし、本発明は、この例に限定されるものではない。ディザマトリックスの閾値の数量や符号化処理単位のビット数が異なっても全く同様の原理で処理することが可能である。
【０１０４】
〈具体例３の効果〉
以上説明したように、同一アドレスの１１ビット（一例）の中に複数個のサブテーブルを含ませることによってメモリの大きさを増加させることなく具体例２の効果を得ることができる。
【図面の簡単な説明】
【図１】学習時間説明図（その１）である。
【図２】具体例１の構成のブロック図である。
【図３】学習時間説明図（その２）である。
【図４】具体例２の構成のブロック図である。
【図５】マトリックス９のサブインデックス説明図である。
【図６】具体例２の動作のフローチャートである。
【図７】サブインデックスビット算出手段のフローチャートである。
【図８】予測データ算出手段のフローチャートである。
【図９】具体例３の構成のブロック図である。
【図１０】マトリックス９の読み取り領域説明図である。
【図１１】具体例３の動作のフローチャートである。
【図１２】読み取り領域決定手段のフローチャートである。
【図１３】予測データ読み出し手段のフローチャートである。
【図１４】予測テーブル更新手段のフローチャートである。
【符号の説明】
１〜１６　ディザマトリックスの閾値
Ｓ（１）１〜Ｓ（１）１０　ステップ
〔１〕〜〔１０〕　ビット列（符号化処理単位）
【図１】
2004104208.tif 000003
【図２】
2004104208.tif 000004
【図３】
2004104208.tif 000005
【図４】
2004104208.tif 000006
【図５】
2004104208.tif 000007
【図６】
2004104208.tif 000008
【図７】
2004104208.tif 000009
【図８】
2004104208.tif 000010
【図９】
2004104208.tif 000011
【図１０】
2004104208.tif 000012
【図１１】
2004104208.tif 000013
【図１２】
2004104208.tif 000014
【図１３】
2004104208.tif 000015
【図１４】
2004104208.tif 000016