(57)【要約】 【課題】多値画像および少値画像の両方を十分な圧縮率で圧縮することができる画像処理装置および画像処理方法を提供する。【解決手段】本発明に係る画像処理装置は、符号化を行う符号化部２０４を有する。符号化部２０４は、符号化指定信号により多値画像の符号化が指定された場合は、予測誤差生成処理部３０１で算出された予測誤差値を用いた予測誤差方式で符号化を行う一方、符号化指定信号により少値画像の符号化が指定された場合は、予測誤差方式とは異なる符号化方式で符号化を行う。【選択図】図４
2012134659.tif 000002
【特許請求の範囲】
【請求項１】
階調数が所定数を上回る多値画像、または、階調数が前記所定数以下の少値画像を構成する複数の画素の各々の画素値が書き込まれる第１記憶手段と、
前記第１記憶手段から、符号化対象である注目画素の画素値を読み出す第１読み出し手段と、
前記注目画素の周辺の画素の画素値に基づいて、当該注目画素の画素値の予測値を算出する第１予測値算出手段と、
前記第１予測値算出手段で算出された前記予測値と、前記注目画素の画素値との差分である予測誤差値を算出する第１予測誤差値算出手段と、
前記多値画像の符号化を行う場合は、前記予測誤差算出手段で算出された前記予測誤差値を用いた予測誤差方式で符号化を行う一方、前記少値画像の符号化を行う場合は、前記予測誤差方式とは異なる符号化方式で符号化を行う符号化部と、を備える、
ことを特徴とする画像処理装置。
【請求項２】
前記多値画像の符号化を行う場合は、一方の端から、前記予測誤差算出手段で算出された前記予測誤差値が順次に入力され、その入力された前記予測誤差値を記憶するとともに、既に記憶された前記予測誤差値を他方の端側へ移動して記憶する第２記憶手段と、
前記多値画像の符号化を行う場合は、前記第２記憶手段の前記一方の端へ入力される前記予測誤差値を、当該第２記憶手段に既に記憶されている前記予測誤差値のそれぞれと比較する比較手段と、
前記多値画像の符号化を行う場合であって、かつ、前記比較手段による比較の結果、入力された前記予測誤差値が、前記第２記憶手段に既に記憶されている前記予測誤差値と一致していた場合は、順次に入力される前記予測誤差値からなる入力データ列と一致する、前記第２記憶手段に連続して記憶される前記予測誤差値からなるデータ列を探索する探索手段と、
前記探索手段で探索された前記データ列の長さを示すレングス情報を生成するレングス情報生成手段と、
前記探索手段で探索された前記データ列の開始データが記憶されていた前記第２記憶手段内の位置を示すアドレス情報を生成するアドレス情報生成手段と、をさらに備え、
前記符号化部は、
前記レングス情報生成手段で生成された前記レングス情報、および、前記アドレス情報生成手段で生成された前記アドレス情報を符号化して第１符号データを生成する第１符号データ生成手段と、
前記比較手段による比較の結果、入力された前記予測誤差値が、前記第２記憶手段に既に記憶されている前記予測誤差値のうちの何れとも一致していなかった場合は、当該入力された前記予測誤差値が求められた前記注目画素の画素値を符号化して第２符号データを生成する第２符号データ生成手段と、を有する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２記憶手段は、前記少値画像の符号化を行う場合は、一方の端から順次に入力される、前記読み出し手段で読み出された前記注目画素の画素値を記憶するとともに、既に記憶された前記画素値を他方の端側へ移動して記憶し、
前記比較手段は、前記少値画像の符号化を行う場合は、前記第２記憶手段の前記一方の端へ入力される前記画素値を、当該第２記憶手段に既に記憶されている前記画素値のそれぞれと比較し、
前記探索手段は、前記少値画像の符号化を行う場合であって、かつ、前記比較手段による比較の結果、入力された前記画素値が、前記第２記憶手段に既に記憶されている前記画素値と一致していた場合は、順次に入力される前記画素値からなる入力データ列と一致する、前記第２記憶手段に連続して記憶される前記画素値からなるデータ列を探索し、
前記第２符号データ生成手段は、前記少値画像の符号化を行う場合であって、かつ、前記比較手段による比較の結果、入力された前記画素値が、前記第２記憶手段に既に記憶されている前記画素値のうちの何れとも一致していなかった場合は、当該入力された前記画素値を符号化して前記第２符号データを生成する、
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第１符号データおよび前記第２符号データを記憶する第３記憶手段と、
前記第３記憶手段に記憶されたデータを読み出す第２読み出し手段と、
前記第２読み出し手段で読み出された前記データの種類を解析する解析手段と、
前記解析手段による解析の結果、前記データが前記第１符号データであった場合、当該第１符号データから前記レングス情報および前記アドレス情報を特定する第１特定手段と、
前記多値画像の復号を行う場合であって、かつ、前記解析手段による解析の結果、前記データが前記第１符号データであった場合は、前記第１特定手段で特定された前記レングス情報および前記アドレス情報を用いて、復号すべき前記画素の前記予測誤差値を特定する第２特定手段と、
既に復号化が終了した前記画素の画素値を記憶する第４記憶手段と、
前記多値画像の復号を行う場合であって、かつ、前記解析手段による解析の結果、前記データが前記第１符号データであった場合は、前記復号すべき前記画素の周辺の画素の画素値を前記第４記憶手段から読み出し、その読み出した周辺の画素の画素値に基づいて、当該復号すべき前記画素の画素値の予測値を算出する第２予測値算出手段と、
前記多値画像の復号を行う場合であって、かつ、前記解析手段による解析の結果、前記データが前記第１符号データであった場合は、前記第２特定手段で特定された前記予測誤差値と、前記第２予測値算出手段で算出された前記予測値とから、前記復号すべき前記画素の画素値を求めて復号する第１復号手段と、
前記解析手段による解析の結果、前記データが前記第２符号データであった場合は、当該第２符号データで特定される画素値を求めて復号する第２復号手段と、を備える、
ことを特徴とする請求項１から請求項３の何れか１つに記載の画像処理装置。
【請求項５】
前記少値画像の復号を行う場合であって、かつ、前記解析手段による解析の結果、前記データが前記第１符号データであった場合は、前記第１特定手段で特定された前記レングス情報および前記アドレス情報を用いて、復号すべき前記画素の画素値を求めて復号する第３復号手段をさらに備える、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
階調数が所定数以上の多値画像、または、階調数が前記所定数を下回る少値画像を構成する複数の画素の各々の画素値が書き込まれる第１記憶手段から、符号化対象である注目画素の画素値を読み出す第１ステップと、
前記注目画素の周辺の画素の画素値に基づいて、当該注目画素の画素値の予測値を算出する第２ステップと、
前記第２ステップで算出された前記予測値と、前記注目画素の画素値との差分である予測誤差値を算出する第３ステップと、
前記多値画像の符号化を行う場合は、第３ステップで算出された前記予測誤差値を用いた予測誤差方式で符号化を行う一方、前記少値画像の符号化を行う場合は、前記予測誤差方式とは異なる符号化方式で符号化を行う第４ステップと、を備える、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
プリンタなどの画像形成装置では、入力された画像データを一時的にメモリに記憶し、このメモリに記憶された画像データを所定のタイミングで読み出して、印刷動作を行う。この場合、画像データをそのままメモリに格納しようとすると、大容量のメモリが必要になりコストが上昇する。そのため、一般的には、入力された画像データを圧縮符号化してメモリに格納するようにしている。
【０００３】
例えば特許文献１には、階調数が１ビット（階調数「２」）の２値画像（少値画像）、および、階調数が１ビットを上回る多値画像のそれぞれの圧縮時に、符号化対象の画素（「注目画素」）の画素値と、当該注目画素の画素値の予測値との差分である予測誤差値を用いた予測誤差方式で符号化を行う技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の予測誤差方式は多値画像を圧縮符号化するのに適した方式であるものの、少値画像の圧縮符号化には適していないために、少値画像について十分な圧縮率を得るのは困難であるという問題がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、多値画像および少値画像の両方を十分な圧縮率で符号化することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、階調数が所定数を上回る多値画像、または、階調数が前記所定数以下の少値画像を構成する複数の画素の各々の画素値が書き込まれる第１記憶手段と、前記第１記憶手段から、符号化対象である注目画素の画素値を読み出す第１読み出し手段と、前記注目画素の周辺の画素の画素値に基づいて、当該注目画素の画素値の予測値を算出する第１予測値算出手段と、前記第１予測値算出手段で算出された前記予測値と、前記注目画素の画素値との差分である予測誤差値を算出する第１予測誤差値算出手段と、前記多値画像の符号化を行う場合は、前記予測誤差算出手段で算出された前記予測誤差値を用いた予測誤差方式で符号化を行う一方、前記少値画像の符号化を行う場合は、前記予測誤差方式とは異なる符号化方式で符号化を行う符号化部と、を備えることを特徴とする。
【０００７】
また、本発明は、階調数が所定数以上の多値画像、または、階調数が前記所定数を下回る少値画像を構成する複数の画素の各々の画素値が書き込まれる第１記憶手段から、符号化対象である注目画素の画素値を読み出す第１ステップと、前記注目画素の周辺の画素の画素値に基づいて、当該注目画素の画素値の予測値を算出する第２ステップと、前記第２ステップで算出された前記予測値と、前記注目画素の画素値との差分である予測誤差値を算出する第３ステップと、前記多値画像の符号化を行う場合は、第３ステップで算出された前記予測誤差値を用いた予測誤差方式で符号化を行う一方、前記少値画像の符号化を行う場合は、前記予測誤差方式とは異なる符号化方式で符号化を行う第４ステップと、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、多値画像の符号化を行う場合は、予測誤差方式で符号化を行う一方、少値画像の符号化を行う場合は、予測誤差方式とは異なる符号化方式で符号化を行うので、多値画像および少値画像の両方を予測誤差方式で符号化する構成に比べて、少値画像の圧縮率を高めることができるという有利な効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置の機構部の構成例を示す略線図である。
【図２】図２は、画像形成装置における電装・制御装置の構成の一例を示すブロック図である。
【図３】図３は、画像形成装置の全体的な動作の例を概略的に示すフローチャートである。
【図４】図４は、符号化部の構成の一例を示す図である。
【図５】図５は、予測誤差生成処理部の構成の一例を示す図である。
【図６】図６は、注目画素の周辺画素を説明するための図である。
【図７】図７は、予測処理の算出方法を説明するための図である。
【図８】図８は、符号フォーマットの例を示す図である。
【図９】図９は、本実施形態の符号化処理を説明するための図である。
【図１０−１】図１０−１は、スライド探索処理およびリスト探索処理におけるフラグ処理を説明するための図である。
【図１０−２】図１０−２は、スライド探索処理およびリスト探索処理におけるフラグ処理を説明するための図である。
【図１１−１】図１１−１は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−２】図１１−２は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−３】図１１−３は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−４】図１１−４は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−５】図１１−５は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−６】図１１−６は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−７】図１１−７は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１１−８】図１１−８は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。
【図１２】図１２は、本実施形態による符号化処理の全体的な流れの一例を示すフローチャートである。
【図１３】図１３は、スライド探索処理の詳細な内容の一例を示すフローチャートである。
【図１４】図１４は、リスト探索処理の詳細な内容の一例を示すフローチャートである。
【図１５】図１５は、スライド追加処理の詳細な内容の一例を示すフローチャートである。
【図１６】図１６は、符号生成処理の詳細な内容の一例を示すフローチャートである。
【図１７】図１７は、符号化部の詳細な構成の一例を示す図である。
【図１８】図１８は、スライド／リスト生成処理部のハードウェア構成の一例を示す図である。
【図１９】図１９は、復号部の構成の一例を示す図である。
【図２０】図２０は、予測処理部の詳細な構成の一例を示す図である。
【図２１】図２１は、復号処理の一例を示すフローチャートである。
【図２２】図２２は、Slide復号値計算処理の一例を示すフローチャートである。
【図２３】図２３は、ESC復号値計算処理の一例を示すフローチャートである。
【図２４】図２４は、復号部の詳細な構成の一例を示す図である。
【図２５】図２５は、スライド展開部のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら、本発明に係る画像処理装置の一実施形態を詳細に説明する。図１は、本実施形態に係る画像処理装置を適用可能な画像形成装置（カラープリンタとする）の機構部の構成例を示す。なお、本実施形態では、本発明に係る画像処理装置および画像処理方法をカラープリンタである画像形成装置に適用した例について説明するが、文字画像を含む画像に画像処理を施すものであれば、これに限定するものではない。例えば、本発明は、複写機、ファクシミリ、複合機などの画像処理装置にも適用することができる。
【００１１】
＜実施形態に適用可能なプリンタの例＞
図１に例示されるプリンタ装置２００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系１Ｙ、１Ｍ、１Ｃ、１Ｋで形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは、像担持体としての感光体、例えば小径のＯＰＣ（有機感光体）ドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを有し、このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを取り囲むように作像の上流側から帯電手段としての帯電ローラ３Ｙ、３Ｍ、３Ｃ、３Ｋと、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像をそれぞれ現像剤で現像してＹ、Ｍ、Ｃ、Ｋ各色のトナー像とする現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋと、クリーニング装置５Ｙ、５Ｍ、５Ｃ、５Ｋと、除電装置６Ｙ、６Ｍ、６Ｃ、６Ｋなどが配置されている。
【００１２】
各現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋの脇には、Ｙトナー、Ｍトナー、Ｃトナー、Ｋトナーをそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋへ補給するトナーボトルユニット７Ｙ、７Ｍ、７Ｃ、７Ｋが配置されている。また、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは各々独立な光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが配置され、この光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋはレーザ光源としてのレーザダイオード（ＬＤ）光源９Ｙ、９Ｍ、９Ｃ、９Ｋや、コリメートレンズ１０Ｙ、１０Ｍ、１０Ｃ、１０Ｋ、ｆθレンズ１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋ、といった光学部品、偏向走査手段としてのポリゴンミラー１２Ｙ、１２Ｍ、１２Ｃ、１２Ｋ、折り返しミラー１３Ｙ、１３Ｍ、１３Ｃ、１３Ｋ、１４Ｙ、１４Ｍ、１４Ｃ、１４Ｋなどを有する。
【００１３】
各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは垂直に配列され、その右側には転写ベルトユニット１５がＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに接する形で配置される。転写ベルトユニット１５は、転写ベルト１６がローラ１７〜２０に張架されて図示しない駆動源により回転駆動される。装置下側には転写材としての転写紙が収納された給紙トレイ２１が配置され、装置上部に定着装置２２、排紙ローラ２３及び排紙トレイ２４が配設される。 
【００１４】
作像時には、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋにおいて、それぞれ、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが図示しない駆動源により回転駆動され、帯電ローラ３Ｙ、３Ｍ、３Ｃ、３ＫによりＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが一様に帯電されて光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが各色の画像データに基づきＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに光書込みを行うことによって、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上に静電潜像が形成される。
【００１５】
このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像はそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋにより現像されてＹ、Ｍ、Ｃ、Ｋ各色のトナー像となり、一方、給紙トレイ２１から給紙ローラ２５により転写紙が水平方向に給紙されて搬送系により作像系１Ｙ、１Ｍ、１Ｃ、１Ｋ方向へ垂直に搬送される。この転写紙は、転写ベルト１６に静電的に吸着保持されて転写ベルト１６により搬送され、図示しない転写バイアス印加手段により転写バイアスが印加されてＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上のＹ、Ｍ、Ｃ、Ｋ各色のトナー像が順次に重ねて転写されることでフルカラー画像が形成される。このフルカラー画像が形成された転写紙は、定着装置２２によりフルカラー画像が定着されて排紙ローラ２３により排紙トレイ２４へ排出される。
【００１６】
図２は、図１のプリンタ装置２００の電装・制御系統の構成の一例を示すブロック図である。図２の例では、プリンタ装置２００は、制御部２３０と、メインメモリ２１０と、プリンタエンジン２１１とを備える。制御部２３０は、ＣＰＵ(Central Processing Unit)２１２と、ＣＰＵ  Ｉ／Ｆ２０１と、メインメモリアービタ２０２と、メインメモリコントローラ２０３と、符号化部２０４と、復号部２０５と、階調処理部２０６と、マルチプレックス（ＭＵＸ）２０７と、エンジンコントローラ２０８とを含む。
【００１７】
ＣＰＵ２１２は、メインメモリ２１０に格納されるプログラムに従い、このプリンタ装置２００の全体の動作を制御する。ＣＰＵ２１２は、ＣＰＵ  Ｉ／Ｆ２０１を介してメインメモリアービタ２０２に接続される。メインメモリアービタ２０２は、ＣＰＵ２１２、符号化部２０４、復号部２０５および通信コントローラ２０９の、メインメモリ２１０に対するアクセスを調停する。
【００１８】
メインメモリ２１０は、メインメモリコントローラ２０３を介してメインメモリアービタ２０２に接続される。メインメモリコントローラ２０３は、メインメモリ２１０に対するアクセスの制御を行う。
【００１９】
メインメモリ２１０は、プログラム領域２１０Ａ、ＰＤＬデータ格納領域２１０Ｂ、ＣＭＹＫバンド画像データ格納領域２１０Ｃ、ＣＭＹＫページ符号格納領域２１０Ｄおよびその他の領域２１０Ｅを有する。プログラム領域２１０Ａは、ＣＰＵ２１２が動作するためのプログラムが格納される。ＰＤＬデータ格納領域２１０Ｂは、例えばコンピュータ２２０から通信コントローラ２０９を介して供給されたＰＤＬデータが格納される。ＣＭＹＫバンド画像データ格納領域２１０Ｃは、ＣＭＹＫバンド画像データが格納される。ＣＭＹＫページ符号格納領域２１０Ｄは、バンド画像データが圧縮符号化された符号データが格納される。ＣＭＹＫページ符号格納領域２１０Ｄは、例えば１ページ分のＣＭＹＫバンド画像データが圧縮符号化された符号データが格納される。領域２１０Ｅは、上述した以外のデータが格納される。
【００２０】
符号化部２０４は、メインメモリ２１０に格納されるバンド画像データを符号化する。バンド画像データが符号化された符号データは、メインメモリアービタ２０２およびメモリコントローラ２０３を介してメインメモリ２１０に供給され、ＣＭＹＫページ符号格納領域２１０Ｄに書き込まれる。復号部２０５は、後述するプリンタエンジン２１１に同期して、メインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄから符号データを読み出して復号する。復号部２０５が、階調数が所定数を上回る多値画像の復号処理を実行した場合は、復号された画像データは、階調処理部２０６に供給され、階調処理が施されてマルチプレックス２０７に転送される。一方、復号部２０５が、階調数が所定数以下の少値画像の復号処理を実行した場合は、復号された画像データは、階調処理部２０６には供給されずに、マルチプレックス２０７に直接供給される。本実施形態では、階調数が２ビット（階調数「４」）以下の画像データを少値画像とし、階調数が２ビットを上回る画像データを多値画像とするが、少値画像と多値画像とを判別するための階調数の値は任意に設定可能であり、例えば階調数が１ビット以下の画像データを少値画像とし、階調数が１ビットを上回る画像データを多値画像とすることもできる。
【００２１】
マルチプレックス２０７は、復号部２０５が、多値画像の復号処理を実行した場合は、階調処理部２０６により階調処理が施された画像データ（復号された画像データ）をエンジンコントローラ２０８へ転送する。一方、マルチプレックス２０７は、復号部２０５が、少値画像の復号処理を実行した場合は、復号部２０５から直接渡された画像データ（復号された画像データ）をエンジンコントローラ２０８へ転送する。
【００２２】
エンジンコントローラ２０８は、プリンタエンジン２１１を制御する。図１では、プリンタエンジン２１１としてＣＭＹＫ各色の版のうち１の版のものだけが記載され、その他の版については煩雑さを避けるために省略されている。
【００２３】
通信コントローラ２０９は、ネットワークを介しての通信を制御する。例えば、コンピュータ２２０から出力されたＰＤＬ(Page DESCription Language)データは、ネットワークを介して通信コントローラ２０９により受信される。通信コントローラ２０９は、受信したＰＤＬデータを、メインメモリアービタ２０２およびメインメモリコントローラ２０３を介してメインメモリ２１０に転送する。
【００２４】
なお、ネットワークは、ＬＡＮ(Local Area Network)などの所定の範囲内で通信を行うものでもよいし、インターネットなどより広範囲に通信可能なものでもよい。また、ネットワークは、有線通信に限らず無線通信を用いたものでもよいし、ＵＳＢ(Universal Serial Bus)やＩＥＥＥ(Institute Electrical and Electronics Engineers)１３９４といったシリアル通信を行うものでもよい。
【００２５】
次に、図３を用いて、プリンタ装置２００の全体的な動作の例について説明する。図３は、プリンタ装置２００が、多値画像の符号化および復号を行う場合における全体動作の例を概略的に示すフローチャートである。
【００２６】
例えばコンピュータ２２０で生成されたＰＤＬデータがネットワークを介して通信コントローラ２０９に受信され、メインメモリ２１０のＰＤＬデータ格納領域２１０Ｂに記憶される（ステップＳ１）。ＣＰＵ２１２は、メインメモリ２１０のＰＤＬデータ格納領域２１０Ｂから経路Ａに従いＰＤＬデータを読み出し、ＰＤＬを解析して（ステップＳ２）、解析結果に基づき多値ＣＭＹＫのバンド画像を描画する（ステップＳ３）。描画された多値ＣＭＹＫのバンド画像によるＣＭＹＫバンド画像データは、メインメモリ２１０のＣＭＹＫバンド画像データ格納領域２１０Ｃに記憶される（ステップＳ４）。
【００２７】
符号化部２０４は、経路Ｂに従いＣＭＹＫバンド画像データ格納領域２１０ＣからＣＭＹＫバンド画像データを読み出して、本発明の各実施形態による符号化方法を用いて符号化する（ステップＳ５）。ＣＭＹＫバンド画像データが符号化された符号データは、経路Ｃに従いメインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄに記憶される（ステップＳ６）。
【００２８】
復号部２０５は、経路Ｄに従いＣＭＹＫページ符号格納領域２１０Ｄから符号データを読み出して画像データに復号し（ステップＳ７）、復号した画像データを階調処理部２０６に供給する。階調処理部２０６は、復号部２０５から供給された多値画像に対して階調処理を施して（ステップＳ８）、経路Ｅに従いプリンタエンジンコントローラ２０８に供給する。エンジンコントローラ２０８は、供給された画像データに基づきエンジン２１１を制御してプリントアウトを行う（ステップＳ９）。
【００２９】
なお、プリンタ装置２００が、少値画像の符号化および復号を行う場合の全体動作においては、上述のステップＳ８の階調処理部２０６による階調処理が省略されるが、それ以外の動作は、図３の内容とほぼ同様である。
【００３０】
＜符号化処理の概略＞
図４は、本実施形態に係る符号化部２０４の構成の一例を示す。符号化部２０４は、データ読み込み部３００と、予測誤差生成処理部３０１と、マルチプレックス３０２，３０３と、スライド／リスト生成処理部３０４と、符号フォーマット生成処理部３０５と、符号書き込み部３０６とを有する。本実施形態では、符号化部２０４は、多値画像の符号化を行う場合は、予測誤差生成処理部３０１により生成された予測誤差値を用いた予測誤差方式で符号化を行う一方、少値画像の符号化を行う場合は、予測誤差方式とは異なる符号化方式で符号化を行う。以下、具体的な内容を詳細に説明する。
【００３１】
データ読み込み部３００は、メインメモリ２１０のＣＭＹＫバンド画像データ格納領域２１０Ｃから、ＣＭＹＫ各版毎のＣＭＹＫバンド画像データを読み出す。このとき、ＣＭＹＫ各版毎のＣＭＹＫバンド画像データは、データ読み込み部３００によりスキャンライン毎に順次、画素単位でＣＭＹＫバンド画像データ格納領域２１０Ｃから読み出される。また、データ読み込み部３００には、多値画像の符号化または少値画像の符号化の何れかを指定する符号化指定信号が、ＣＰＵ２１２から送られる。符号化指定信号により多値画像の符号化が指定された場合は、データ読み込み部３００は、読み出した画素単位の画像データ（画素値）を後段の予測誤差生成処理部３０１へ供給する一方、符号化指定信号により少値画像の符号化が指定された場合は、データ読み込み部３００は、読み出した画素値をマルチプレックス３０２および３０３のそれぞれへ供給する。なお、本実施形態では、符号化指定信号により少値画像の符号化が指定された場合は、データ読み込み部３００は、読み出した画素値を予測誤差生成処理部３０１へ供給しないが、これに限らず、データ読み込み部３００は、少値画像の符号化が指定された場合であっても、読み出した画素値を、予測誤差生成処理部３０１とマルチプレックス３０２，３０３とに供給することもできる。
【００３２】
予測誤差生成処理部３０１は、データ読み込み部３００で読み出された、符号化対象の画素（「注目画素」と呼ぶ）の画素値を受け取り、注目画素の予測画素値を算出する。そして、その算出した予測画素値と、データ読み込み部３００から受け取った注目画素の画素値との差分である予測誤差値を算出する。以下、より具体的に説明する。
【００３３】
図５は、予測誤差生成処理部３０１のより詳細な構成の一例を示す図である。図５に示すように、予測誤差生成処理部３０１は、ラインメモリ制御部３０７と、ラインメモリ３０８と、予測処理部３０９と、予測誤差処理部３１０とを有する。ラインメモリ制御部３０７は、データ読み込み部３００により読み出された画素値を、ラインメモリ３０８に格納する。本実施形態では、ラインメモリ３０８は、２ライン分の画素値を格納可能であり、今回供給された画素値を格納すると共に、直前に格納した１ライン分の画素値を保持するように、ラインメモリ制御部３０７に制御される。
【００３４】
より具体的には、ラインメモリ３０８は、１ライン分の画素値を記憶可能であって、注目画素の画素値が順次に書き込まれる第１領域と、注目画素が属するラインの直前のラインであって、既に符号化が終了したラインの画素値が記憶される第２領域とを有する。
【００３５】
ラインメモリ制御部３０７の制御により、ラインメモリ３０８から、注目画素の画素値と、注目画素の周辺３画素の画素値が順次に読み出され、予測処理部３０９に渡される。ここでラインメモリ３０８から読み出される周辺３画素は、注目画素に近接する、既に符号化が終了した画素である。より具体的には、図６に例示されるように、注目画素のスキャン順で直前の画素ａと、当該注目画素が属する現ラインに対してスキャン順で直前の前ライン、すなわち当該注目画素が属するラインの直上のラインにおいて当該注目画素の直上に位置する画素ｂおよび画素ｂのスキャン順で直前の画素ｃである。なお、以下では、符号化対象である注目画素が属するラインを現ライン、現ラインに対してスキャン順で直前のラインを前ラインと呼ぶ。
【００３６】
予測処理部３０９は、ラインメモリ制御部３０７から渡された画素ａ、画素ｂおよび画素ｃに基づき注目画素の画素値を予測する。本実施形態では、予測処理部３０９は、平面予測方式を用いて注目画素の画素値を予測する。平面予測方式は、図７に例示されるように、現ラインにおける、注目画素の直前に符号化された画素ａと、前ラインにおいて注目画素および画素ａのそれぞれの真上に隣接する画素ｂおよび画素ｃとを用いて、下記の式（１）の計算を行い、注目画素の予測値を求める。
予測値＝ａ＋ｂ−ｃ      …（１）
【００３７】
なお、注目画素がラインのスキャン順で先頭画素である場合、ならびに、現ラインがスキャン順で先頭のラインである場合は、平面予測値が０であるものとする。
【００３８】
再び図５に戻って説明を続ける。予測誤差処理部３１０は、注目画素の画素値と、予測処理部３０９で求められた平面予測誤差値との差分である予測誤差値を算出し、算出した予測誤差値と注目画素の画素値とを後段のマルチプレックス３０２，３０３（図４参照）へ送る。
【００３９】
図４に戻って説明を続ける。マルチプレックス３０２および３０３のそれぞれには、前述の符号化指定信号がＣＰＵ２１２から送られる。また、マルチプレックス３０２の一方の入力端には、データ読み込み部３００により読み出された注目画素の画素値が供給され、他方の入力端には、予測誤差生成処理部３０１からの注目画素の画素値が供給される。マルチプレックス３０３の一方の入力端には、データ読み込み部３００により読み出された注目画素の画素値が供給され、他方の入力端には、予測誤差生成処理部３０１からの予測誤差値が供給される。
【００４０】
ここで、符号化指定信号により多値画像の符号化が指定された場合は、マルチプレックス３０２は、他方の入力端に供給された注目画素の画素値（予測誤差生成処理部３０１から供給された画素値）を、ESC符号化用データとして後段のスライド／リスト生成処理部３０４へ供給する。また、マルチプレックス３０３は、他方の入力端に供給された予測誤差値（予測誤差生成処理部３０１から供給された予測誤差値）を、Slide符号化用データとして後段のスライド／リスト生成処理部３０４へ供給する。
【００４１】
一方、符号化指定信号により少値画像の符号化が指定された場合は、マルチプレックス３０２は、一方の入力端に供給された注目画素の画素値（データ読み込み部３００から供給された画素値）を、ESC符号化用データとして後段のスライド／リスト生成処理部３０４へ供給する。また、マルチプレックス３０３は、一方の入力端に供給された注目画素の画素値（データ読み込み部３００から供給された画素値）を、Slide符号化用データとして後段のスライド／リスト生成処理部３０４へ供給する。
【００４２】
スライド／リスト生成処理部３０４は、マルチプレックス３０３から順次に入力されるSlide符号化用データを記憶するＦＩＦＯ（First In First Out）方式のスライド記憶部を有する。本実施形態では、符号化指定信号により多値画像の符号化が指定された場合は、マルチプレックス３０３からスライド／リスト生成処理部３０４へ送られるSlide符号化用データは予測誤差値である。この場合、スライド記憶部には、一方の端から、予測誤差が順次に入力される。スライド記憶部は、その入力された予測誤差値を記憶するとともに、既に記憶された予測誤差値を他方の端部へ移動して記憶する。一方、符号化指定信号により少値画像の符号化が指定された場合は、マルチプレックス３０３からスライド／リスト生成処理部３０４へ送られるSlide符号化用データは注目画素の画素値である。この場合、スライド記憶部には、一方の端から、注目画素の画素値が順次に入力される。スライド記憶部は、その入力された画素値を記憶するとともに、既に記憶された画素値を他方の端部へ移動して記憶するという具合である。
【００４３】
スライド／リスト生成処理部３０４は、供給されたSlide符号化用データとスライド記憶部に記憶された過去のSlide符号化用データのそれぞれとを比較する。符号化指定信号により多値画像の符号化が指定された場合は、供給された予測誤差値とスライド記憶部に記憶された過去の予測誤差値のそれぞれとを比較する一方、符号化指定信号により少値画像の符号化が指定された場合は、供給された画素値とスライド記憶部に記憶された過去の画素値のそれぞれとを比較するという具合である。
【００４４】
スライド／リスト生成処理部３０４は、供給されたSlide符号化用データと過去のSlide符号化用データとが一致した場合には、順次に入力されるSlide符号化用データからなる入力データ列と一致する、既にスライド記憶部に連続的に記憶されているSlide符号化用データからなるデータ列（「リスト」と呼ぶ）を探索するリスト探索処理を行う。符号化指定信号により多値画像の符号化が指定された場合であって、かつ、供給された予測誤差値と過去の予測誤差値とが一致した場合は、順次に入力される予測誤差値データからなる入力データ列と一致する、既にスライド記憶部に連続的に記憶されている予測誤差値からなるデータ列（「リスト」）を探索する。一方、符号化指定信号により少値画像の符号化が指定された場合であって、かつ、供給された画素値と過去の画素値とが一致した場合は、順次に入力される画素値からなる入力データ列と一致する、既にスライド記憶部に連続的に記憶されている画素値からなるデータ列（「リスト」）を探索するという具合である。
【００４５】
そして、スライド／リスト生成処理部３０４は、上述のリスト探索処理の結果から得られたリストの長さを示すレングス情報Lengthと、前述の比較が行われたときに、リスト探索処理の結果から得られたリストの開始データが記憶されていたスライド記憶部内の位置を示すアドレス情報Addressとを生成して、後段の符号フォーマット生成処理部３０５へ送る。
【００４６】
一方、供給されたSlide符号化用データが、スライド記憶部内の過去のSlide符号化用データのうちの何れとも一致していなかった場合は、スライド／リスト生成処理部３０４は、マルチプレックス３０２から供給されたESC符号化用データをESC値として後段の符号フォーマット生成処理部３０５へ出力する。また、スライド／リスト生成処理部３０４は、前述の比較結果を示す比較結果フラグSlideFLAGを、後段の符号フォーマット生成処理部３０５へ出力する。前述の比較結果が肯定の場合は、比較結果フラグSlideFLAGは「１」に設定される一方、前述の比較結果が否定の場合は、比較結果フラグSlideFLAGは「０」に設定されるという具合である。
【００４７】
符号フォーマット生成処理部３０５は、供給されたESC値、アドレス情報Address、レングス情報Length、比較結果フラグSlideFLAGから、図８に例示されるようなフォーマットで、ESC符号、Slide符号およびライン終端符号を生成する。
【００４８】
ESC符号は、ESC値を符号化したものである。図８に示すように、ESC符号は、データ長が１ビットで値が「０」のフラグSlidFLAGをヘッダとして、後に８ビットのデータ長を持つ画素値が接続されてなる。Slide符号は、データ長が１ビットで値が「１」の比較結果フラグSlideFLAGをヘッダとして、その後に、それぞれデータ長が８ビットのレングス情報Lengthおよびアドレス情報Addressが順次接続される。また、ライン終端符号は、ライン終端を示す符号であり、データ長が２ビットで値が「１１」のデータで構成される。なお、この図８に例示される符号フォーマットは、一例であって、これに限られるものではない。
【００４９】
符号フォーマット生成処理部３０５で生成されたESC符号、Slide符号およびライン終端符号のそれぞれは、符号書き込み部３０６に供給される。符号書き込み部３０６は、供給されたESC符号、Slide符号およびライン終端符号を、メインメモリアービタ２０２およびメインメモリコントローラ２０３を介して、メインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄに書き込む。
【００５０】
次に、本実施形態の符号化部２０４で行われる符号化処理の概要について説明する。符号化部２０４は、基本的には、スライド探索処理とリスト探索処理とを繰り返すことによって、データの符号化を行う。スライド探索処理は、１単位（例えば１バイト）の入力データ（Slide符号化用データ）と一致する、スライド記憶部に記憶される過去の入力データ（Slide符号化用データ）を探索する。スライド記憶部内の過去のデータに、入力データと一致するデータが探索されなかった場合には、入力データそのものをESC値として用いて符号化する。
【００５１】
スライド探索処理において、入力データに一致するスライド記憶部内の過去の入力データが探索された場合、その一致した過去のデータをルートとして、前述のリスト探索処理が行われる。そして、リスト探索処理にて探索されたリストのルートとなる過去のデータのスライド記憶部内での位置をアドレス情報Address、当該リストの長さをレングス情報Lengthとして出力し、これらの情報を符号化する。
【００５２】
図９を用いてより具体的に説明する。本実施形態では、スライド記憶部は、直列に接続された１２８個のレジスタを持ち、ＦＩＦＯ（First In First Out）として構成されるが、図９の例では、番号＃０〜＃１５の直列に接続された１６個のレジスタに着目して説明する。各レジスタは、それぞれ１単位（例えば１バイト）のデータを格納可能であるものとする。なお、以下では、このスライド記憶部が有するレジスタをスライドと呼ぶ。
【００５３】
処理＃１において、スライド記憶部の各スライドには、入力の新しい順、すなわち図９の右側から左側に向けて、「ａ，ｂ，ｃ，ａ，ａ，ｂ，ｃ，ａ，ｂ，ｃ，ｄ，ｂ，ｃ，ａ，ｃ，ａ」と、１６個の過去に入力されたデータが既に格納されているものとする。最初に、スライド／リスト生成処理部３０４に対して入力データ「ａ」が入力される。スライド探索処理により、この入力データ「ａ」と、各スライドに記憶された過去の入力データのそれぞれとを比較し、一致しているデータを探索する。図９の例では、番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドに格納されているデータが入力データと一致していることが分かる。したがって、これらの番号のスライドに格納されているデータが、リスト探索処理におけるルートとなる。
【００５４】
スライド探索処理によって、各スライドに記憶された過去のデータから、入力データ「ａ」と一致しているデータが探索されたので、処理＃２のリスト探索処理が行われる。
【００５５】
処理＃２では、各スライドに記憶される過去のデータを左に１だけシフトさせて、処理＃１で入力された入力データ「ａ」をスライド記憶部の番号＃０のスライドに追加する。それと共に、次の入力データ「ｃ」がスライド／リスト生成処理部３０４に対して入力される。リスト探索処理では、各スライドのうち、直前の処理＃１において入力データと一致するデータが格納されていたスライド（＃０、＃３、＃４、＃７、＃１３および＃１５）から、新たな入力データ「ｃ」と一致するデータを探索する。
【００５６】
図９の例では、処理＃１において入力データと一致した番号＃０および＃４のスライドに格納される過去のデータは、処理＃２において入力データと一致していない。一方、処理＃２において、番号＃３、＃７、＃１３および＃１５のスライドに格納された過去のデータは、データ「ｃ」であって、新たな入力データ「ｃ」と一致する。
【００５７】
処理＃２のリスト探索処理によって、直前の処理＃１において入力データが一致するデータが格納されたスライド（＃０、＃３、＃４、＃７、＃１３および＃１５）から、処理＃２における入力データ「ｃ」と一致するデータが探索されたので、次の処理はリスト探索処理となる。なお、処理＃２は、リスト探索処理の開始点であるので、リストの長さを示すレングスLengthは、値「０」とされる。
【００５８】
処理＃３では、上述の処理＃２と同様にして、各スライドに記憶される過去のデータを左に１だけシフトさせて、処理＃２で入力された入力データ「ｃ」をスライド記憶部の番号＃０のスライドに追加する。それと共に、次の入力データ「ｂ」がスライド／リスト生成処理部３０４に対して入力される。そして、各スライドのうち、処理＃１および直前の処理＃２において入力データと一致する過去のデータが格納されたスライド（＃３、＃７、＃１３および＃１５）から、新たな入力データ「ｂ」と一致するデータを探索する。
【００５９】
図９の例では、番号＃１５のスライドに格納される過去のデータは、処理＃３において入力データと一致していない。一方、処理＃３において、番号＃３、＃７および＃１３のスライドに格納される過去のデータは「ｂ」であって、新たな入力データ「ｂ」と一致する。次の処理＃４では、この番号＃３、＃７および＃１３のスライドに格納される過去のデータが、リスト探索の対象となる。すなわち、この処理＃３の段階では、番号＃３、＃７および＃１３に係るリストが残っている。処理＃３では、リストの長さが「１」となり、レングスLength情報の値が「１」とされる。
【００６０】
このような処理を繰り返していき、リストが最も長くなるデータ列を求める。図９の例では、処理＃５において、直前の処理＃４においてリスト探索された番号＃１３のスライドに格納される過去のデータ「ｃ」と、新たな入力データ「ｇ」とが一致しなくなり、リストが途切れる。そこで、処理＃５では、１つ前の処理＃４において残っているリストから１を選択し、リスト探索処理の直前におけるスライド探索処理（図９の例では処理＃１）において、そのリストの開始データが記憶されていたスライド記憶部内の位置をアドレス情報Addressとし、そのリストの長さをレングス情報LengthとしてSlide符号に符号化する。図９の例では、アドレス情報Addressの値が「１３」、レングス情報Lengthの値が「３」とされる。
【００６１】
さらに、処理＃５では、入力データ「ｇ」についてスライド探索処理を行う。この例では、各スライドに過去のデータとしてデータ「ｇ」が記憶されていないため、一致するデータがないとされる。この場合、処理は処理＃６に移行され、入力データ「ｇ」とともにスライド／リスト生成処理部３０４へ供給されたESC符号化用データがESC値として用いられてESC符号へ符号化される。
【００６２】
ESC符号への符号化が行われると、処理＃７で、各スライドに記憶される過去のデータが左に１だけシフトされると共に、直前のリスト探索処理（処理＃５）で入力された入力データ「ｇ」がスライド記憶部の番号＃０のスライドに追加される。そして、次の入力データ「b」に対してスライド探索処理が行われる。
【００６３】
ここで、スライド記憶部は、ＦＩＦＯ方式により各スライドに格納されたデータのシフトを行うことができるため、入力データとの一致を記憶したリストをそのままの状態で保持しながら、次の入力データの処理に移行することができる。
【００６４】
例えば、図９の例では、入力データが、処理＃１において番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドに格納される過去のデータと一致している。各スライドに格納されたデータを、新たなデータの入力に伴い順次シフトさせることで、例えば処理＃２の当該番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドに対して次のデータが格納されることになる。したがって、スライド記憶部において、スライド探索処理で一致が探索された番号のスライドに格納されるデータを、リスト探索処理毎に入力データと比較していくことで、入力データのデータ列と一致する、過去のデータのデータ列を探索することができる。
【００６５】
このように、スライド記憶部をＦＩＦＯ方式とすることで、リスト探索処理を簡易に行うことができる。
【００６６】
＜フラグ処理＞
上述したスライド探索処理およびリスト探索処理は、フラグによって制御される。このスライド探索処理およびリスト探索処理におけるフラグ処理について、図１０−１、図１０−２を用いて説明する。
【００６７】
図１０−１は、スライド探索処理の結果を示すＲフラグRFLGmを示す。図１０−１に例示されるように、スライド記憶部の各スライドに対して、図の右側から左側へ向けて「ａ，ｂ，ｃ，ａ，ａ，ｂ，ｃ，ａ，ｂ，ｃ，ｄ，ｂ，ｃ，ａ，ｃ，ａ」のように過去のデータが格納された状態で、入力データ「ａ」が入力された場合、番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドで、入力データと各スライドに記憶される過去のデータとが一致する。そこで、これらの番号のスライドに対応するＲフラグRFLG0、RFLG3、RFLG4、RFLG7、RFLG13およびRFLG15を、それぞれ一致したことを示す値「１」に設定する。
【００６８】
このように、入力データと、各スライドに記憶される過去のデータとが一致する場合は、符号化処理を行わずにリスト探索処理が行われる。このとき、ＲフラグRFLGmの各スライドに対する位置は、固定的である。入力データと一致する、各スライドに記憶される過去のデータが無い場合は、入力データであるSlide符号化用データと同時にスライド／リスト生成処理部３０４に供給されたESC符号化用データをESC値として用いてESC符号に符号化し、次の入力データに対してスライド探索処理を行う。
【００６９】
図１０−２は、リスト探索処理の結果を示すＷフラグWFLGmの例を示す。リスト探索処理では、新たに入力された入力データと一致するデータが、各スライドのうちＲフラグRFLGmが「１」とされたスライドに格納されるデータから探索される。若し、一致するデータが探索されたら、当該スライドに対するＷフラグWFLGmの値を、一致したことを示す値「１」に設定する。
【００７０】
図１０−２の例では、各スライドに記憶される過去のデータのうち、ＲフラグRFLGmが値「１」である番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドに格納されるデータに対してリスト探索処理が行われる。これらのうち、入力データ「ｃ」に対して、番号＃３、＃７、＃１３および＃１５のスライドに格納されるデータが一致するので、対応するＷフラグWFLG3、WFLG7、WFLG13およびWFLG15の値を、一致したことを示す値「１」に設定する。各スライドに記憶される過去の入力データのうち、このＷフラグWFLGmの値が「１」とされたスライドには、直前の入力データと一致する過去のデータと、現在の入力データと一致する過去の入力データとが連続して格納されることを示す。
【００７１】
次に、値が「１」のＷフラグWFLGmを探索する。この値「１」のＷフラグWFLGmが存在する場合は、各ＷフラグWFLGmを新たなＲフラグRFLGmとし、上述と同様にして次の入力データに対してリスト探索処理を行う。
【００７２】
一方、探索の結果、値が「１」のＷフラグWFLGmが存在しないとされた場合は、リストが途絶えたことを意味する。この場合は、値が「１」のＲフラグRFLGmを１つ選択し、選択したＲフラグRFLGmに対応するスライドのアドレス情報Addressと、そのときのレングス情報LengthとをSlide符号に符号化する。
【００７３】
次に、ＲフラグRFLGmおよびＷフラグWFLGmを用いた場合の、スライド探索処理およびリスト探索処理について、図１１−１〜図１１−８を用いて説明する。図１１−１〜図１１−８の例でも、上述した図９と同様に、番号＃０〜＃１５の直列に接続された１６個のレジスタに着目して説明する。各スライドには、新しい順すなわち番号の小さい順に、「ａ，ｂ，ｃ，ａ，ａ，ｂ，ｃ，ａ，ｂ，ｃ，ｄ，ｂ，ｃ，ａ，ｃ，ａ」と、過去に入力された１６個のデータ（Slide符号化用データ）が既に格納されているものとする。
【００７４】
本実施形態においては、符号化を、スライド探索処理とリスト探索処理とを繰り返すことで行う。先ず、入力データ「ａ」が入力され、スライド探索処理が行われる（図１１−１）。入力データ（Slide符号化用データ）「ａ」と一致するデータを、スライド記憶部の各スライドから探索する。各スライドから入力データに一致するデータが探索されなかった場合は、当該入力データと同時にスライド／リスト生成処理部３０４に供給されたESC符号化用データをESC値として用いて、ESC符号に符号化する。
【００７５】
入力データに一致するデータが格納されるスライドが探索されたら、そのスライドに対応するＲフラグRFLGmの値を「１」とし、他のＲフラグRFLGmの値を「０」とする。図１１−１の例では、番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライドに格納されるデータが入力データと一致している。このスライド探索処理において、入力データに一致したデータをルートとして、次からのリスト探索処理においてリストの生成が行われる。
【００７６】
次に、各スライドの記憶内容を左へ１つずつシフトし、直前に入力された入力データ「ａ」を、番号＃０のスライドに追加する。このように、スライド探索処理において入力データと一致するデータが格納されたスライドが探索されたら、符号化処理を行わずに、リスト探索処理（図１１−２）に移り、レングス情報Lengthを「０」とする。また、入力データと一致するデータが格納されたスライド（番号＃０、＃３、＃４、＃７、＃１３および＃１５のスライド）に対応するＲフラグRFLGm（ＲフラグRFLG0、RFLG3、RFLG4、RFLG7、RFLG13およびRFLG15）の値が「１」に設定され、他のＲフラグRFLGmの値が「０」に設定される。
【００７７】
次に、図１１−２に示すように、入力データ「ｃ」が入力される。リスト探索処理では、対応するＲフラグRFLGmの値が「１」のスライドのうち、入力データ「ｃ」と一致するデータが格納されるスライドが探索される。図１１−２の例では、ＲフラグRFLGmの値が「１」のスライドのうち番号＃３、＃７、＃１３および＃１５のスライドに格納されるデータが入力データと一致している。一方、番号＃０および＃４のスライドは、脱落している。したがって、図１１−２に示すように、入力データと一致するデータが格納されたスライドに対応するＷフラグWFLGm（ＷフラグWFLG3、WFLG7、WFLG13およびWFLG15）の値が「１」に設定され、他のＷフラグWFLGmの値が「０」に設定される。
【００７８】
次に、各スライドの記憶内容を左へ１つずつシフトし、直前に入力された入力データ「ｃ」を、番号＃０のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理（図１１−３）に移り、レングス情報Lengthを「１」とする。図１１−３に示すように、直前のＷフラグWFLGmの値（図１１−２のＷフラグWFLGmの値）をＲフラグRFLGmに設定して、ＲフラグRFLGmを更新する。
【００７９】
次に、図１１−３に示すように、入力データ「ｂ」が入力される。リスト探索処理では、対応するＲフラグRFLGの値が「１」のスライドのうち、入力データ「ｂ」と一致するデータが格納されるスライドが探索される。図１１−３の例では、ＲフラグRFLGmの値が「１」のスライドのうち番号＃３、＃７および＃１３のスライドに格納されるデータが入力データと一致している。一方、番号＃１５のスライドは、脱落している。したがって、図１１−３に示すように、入力データと一致するデータが格納されたスライドに対応するＷフラグWFLGm（ＷフラグWFLG3、WFLG7およびWFLG13）の値が「１」とされ、他のＷフラグWFLGmの値が「０」とされる。
【００８０】
次に、各スライドの記憶内容を左へ１つずつシフトし、直前に入力された入力データ「ｂ」を、番号＃０のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理（図１１−４）に移り、レングス情報Lengthを「２」とする。そして、図１１−４に示すように、直前のＷフラグWFLGmの値（図１１−３のＷフラグWFLGmの値）をＲフラグRFLGmに設定して、ＲフラグRFLGmを更新する。
【００８１】
次に、図１１−４に示すように、入力データ「ｄ」が入力される。リスト探索処理では、対応するＲフラグRFLGmの値が「１」のスライドのうち、入力データ「ｄ」と一致するデータが格納されるスライドが探索される。図１１−４の例では、番号＃１３のスライドに格納されるデータが入力データと一致している。一方、番号＃３および＃７のスライドは、脱落している。入力データと一致するデータが格納されたスライドに対応するＷフラグWFLG13の値が「１」に設定される。
【００８２】
次に、各スライドの記憶内容を左へ１つずつシフトし、直前に入力された入力データ「ｄ」を、番号＃０のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理（図１１−５）に移り、レングス情報Lengthを「３」とする。図１１−５に示すように、直前のＷフラグWFLGmの値（図１１−４のＷフラグWFLGmの値）をＲフラグRFLGmに設定して、ＲフラグRFLGmを更新する。
【００８３】
次に、図１１−５に示すように、入力データ「ａ」が入力される。リスト探索処理では、対応するＲフラグRFLGmの値が「１」のスライドのうち、入力データ「ａ」と一致するデータが格納されるスライドが探索される。図１１−５の例では、番号＃１３のスライドが脱落し、入力データ「ａ」と一致するデータが格納されるスライドが存在しない。すなわち、継続するリストが存在しなくなる。そのため、ＲフラグRFLGmの値が「１」であるスライドのスライド記憶部内での位置（図１１−５の例では番号＃１３の位置）をアドレス情報Addressとし、レングス情報Lengthが「３」とされて、これらを図８に示したようにSlide符号に符号化する。ＷフラグWFLGの値は、全て「０」とされ、処理はスライド探索処理に移る（図１１−６）。
【００８４】
リストが途切れた後のスライド探索処理は、直前のリスト探索処理における入力データ「ａ」に対して行われる（図１１−６）。入力データ「ａ」と一致するデータを、スライド記憶部の各スライドから探索する。各スライドから入力データに一致するデータが探索されなかった場合は、当該入力データ（Slide符号化用データ）と同時にスライド／リスト生成処理部３０４に供給されたESC符号化用データをESC値として用いて、ESC符号に符号化する。
【００８５】
入力データに一致するデータが格納されるスライドが探索されたら、そのスライドに対応するＲフラグRFLGmの値を「１」とする。図１１−６の例では、番号＃３、＃４、＃７、＃８および＃１１のスライドに格納されるデータが入力データと一致している。このスライド探索処理において、入力データに一致したデータをルートとして、次からのリスト探索処理においてリストの生成が行われる。
【００８６】
次に、各スライドの記憶内容を左へ１つずつシフトし、入力データ「ａ」を、番号＃０のスライドに追加する。このように、スライド探索処理において入力データと一致するデータが格納されたスライドが探索されたら、符号化処理を行わずに、リスト探索処理（図１１−７）に移り、レングス情報Lengthを「０」とする。また、入力データと一致するデータが格納されたスライド（番号＃３、＃４、＃７、＃８および＃１３のスライド）に対応するＲフラグRFLGm（ＲフラグRFLG3、RFLG4、RFLG7、RFLG8およびRFLG13）の値が「１」に設定され、他のＲフラグRFLGmの値が「０」に設定される。
【００８７】
次に、図１１−７に示すように、入力データ「ｆ」が入力される。リスト探索処理では、対応するＲフラグRFLGmの値が「１」のスライドのうち、入力データ「ｆ」と一致するデータが格納されるスライドが探索される。図１１−７の例では、入力データ「ｆ」と一致するデータが格納されるスライドが存在しないので、ＷフラグWFLGmの値が全て「０」とされ、処理はスライド探索処理に移る（図１１−８）。
【００８８】
ここでのスライド探索処理は、直前のリスト探索処理における入力データ「ｆ」に対して行われる（図１１−８）。入力データ「ｆ」と一致するデータを、スライド記憶部の各スライドから探索する。図１１−８の例では、各スライドから入力データに一致するデータが探索されないため、当該入力データ（Slide符号化用データ）と同時にスライド／リスト生成処理部３０４に供給されたESC符号化用データをESC値として用いて、ESC符号に符号化する。また、ＲフラグRFLGmの値が全て「０」に設定される。
【００８９】
そして、各スライドの記憶内容を左へ１つずつシフトし、入力データ「ｆ」を番号＃０のスライドに追加して次の入力データの符号化に進む。
【００９０】
＜符号化処理の詳細＞
次に、本実施形態による符号化処理について、より詳細に説明する。図１２は、本実施形態による符号化処理の全体的な流れを示すフローチャートの一例である。最初のステップＳ１０で、比較結果フラグSlideFLAGの値は、「０」に初期化される。ステップＳ１１で、スライド探索処理およびリスト探索処理のうち何れが有効であるかを示すフラグLISTFLGは、スライド探索処理を行っていることを示す値「０」に初期化される。
【００９１】
次に、ステップＳ１２で、データ読み込み部３００は、符号化対象の１画素（注目画素）の画素値を読み出す。次のステップＳ１３で、符号化指定信号により多値画像の符号化が指定されているか否かが判断され、多値画像の符号化が指定されていると判断された場合は、処理がステップＳ１４へ移行する。ステップＳ１４で、ラインメモリ制御部３０７は、データ読み込み部３００により読み出された注目画素の画素値をラインメモリ３０８の第１領域に書き込む。ここでは、ラインメモリ３０８の第２領域には、注目画素が属するラインの直前のラインであって、既に符号化が終了したラインの画素値が記憶されている。そして、ラインメモリ制御部３０７の制御により、ラインメモリ３０８から、注目画素の画素値と、注目画素の周辺３画素の画素値が読み出されて予測処理部３０９へ供給される。
【００９２】
次に、ステップＳ１５で、予測処理部３０９は、注目画素の周辺３画素（前述の画素ａ、画素ｂおよび画素ｃ）の画素値に基づいて、注目画素の画素値の予測値を算出し、算出した予測値と、注目画素の画素値とを予測誤差処理部３１０へ供給する。ステップＳ１６で、予測誤差処理部３１０は、注目画素の画素値と、予測処理部３０９で求められた予測値との差分である予測誤差値を算出し、算出した予測誤差値をマルチプレックス３０３へ供給するとともに、注目画素の画素値をマルチプレックス３０２へ供給する。
【００９３】
処理はステップＳ１７に移行され、マルチプレックス３０２は、予測誤差処理部３１０から供給された予測誤差値をSlide符号化用データとしてスライド／リスト生成処理部３０４へ送る。また、マルチプレックス３０３は、予測誤差処理部３１０から供給された注目画素の画素値をESC符号化用データとしてスライド／リスト生成処理部３０４へ供給する。そして、処理はステップＳ１９へ移行する。
【００９４】
また、上述のステップＳ１３で、多値画像の符号化が指定されていない、つまりは少値画像の符号化が指定されていると判断された場合は、処理がステップＳ１８へ移行する。ステップＳ１８で、マルチプレックス３０３は、データ読み込み部３００から供給された注目画素の画素値をSlide符号化用データとしてスライド／リスト生成処理部３０４へ供給する。また、マルチプレックス３０２は、データ読み込み部３００から供給された注目画素の画素値をESC符号化用データとしてスライド／リスト生成処理部３０４へ供給する。そして、処理はステップＳ１９へ移行する。
【００９５】
ステップＳ１９では、フラグLISTFLGの値は「１」であるか否かが判定される。若し、「１」ではないと判定されたら、現在スライド探索処理が有効であるとされ、処理はステップＳ２０に移行される。ステップＳ２０で、スライド／リスト生成処理部３０４はスライド探索処理を実行する。スライド探索処理の詳細な内容については後述する。
【００９６】
次のステップＳ２１で、スライド／リスト生成処理部３０４は、スライド記憶部に対してSlide符号化用データを追加するSlide追加処理を行う。Slide追加処理の詳細な内容については後述する。次のステップＳ２２では、１ライン分の画素全てに対する処理が終了したか否かが判定される。若し、終了していないと判定された場合は、処理は上述のステップＳ１２に戻される。一方、終了していると判定された場合は、処理はステップＳ２３に移行され、ステップＳ２３では、ライン終端符号が出力される。次のステップＳ２４では、第１領域に書き込まれた、符号化が終了した１ライン分の画素の画素値が、第２領域に上書きされる。そして、処理はステップＳ２５に移行され、全てのラインに対する処理が終了したか否かが判定される。若し、終了していると判定された場合は、一連の符号化処理は終了する。一方、終了していないと判定された場合は、処理は上述のステップＳ１０に戻される。
【００９７】
また、上述のステップＳ１９において、フラグLISTFLGの値が「１」であると判定された場合は、現在リスト探索処理が有効であるとされ、処理はステップＳ２６に移行される。ステップＳ２６で、スライド／リスト生成処理部３０４は、リスト探索処理を実行する。リスト探索処理の詳細な内容については後述する。ステップＳ２６でリスト探索処理が行われた後、処理は上述のステップＳ２１に移行される。
【００９８】
図１３は、図１２のステップＳ２０で実行されるスライド探索処理の詳細な内容を示すフローチャートである。なお、以下では、スライド記憶部における第x番目（０≦x≦１２７）のスライドをスライド[x]のように表記する。例えばスライド記憶部における先頭のスライドは、スライド[０]と表記される。
【００９９】
先ず、ステップＳ３０〜ステップＳ３２で、レングス情報Length、フラグSFIINDFLGおよび変数IWがそれぞれ値「０」に初期化される。処理はステップＳ３３に移行され、入力データとスライド[IW]に格納された過去の入力データとが一致するか否かが判定される。若し、一致すると判定されたら、処理はステップＳ３４に移行され、フラグSFINDFLGの値が「１」とされ、次のステップＳ３５で、ＲフラグRFLG[IW]の値が「１」とされる。
【０１００】
そして、処理はステップＳ３７に移行され、変数IWがスライドサイズ未満、すなわち、スライド記憶部が有するスライド数（ここでは「１２８」）未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップＳ３８で変数IWに「１」が加えられ、処理がステップＳ３３に戻される。一方、ステップＳ３７で、変数IWがスライドサイズ以上であると判定されたら、処理はステップＳ３９に移行される。
【０１０１】
一方、上述のステップＳ３３で入力データとスライド[IW]に格納された過去の入力データとが一致しないと判定されたら、処理はステップＳ３６に移行され、ＲフラグRFLG[IW]の値が「０」とされる。そして、処理がステップＳ３７に移行される。
【０１０２】
ステップＳ３９では、フラグSFINDFLGの値が「１」であるか否かが判定される。フラグSFINDFLGの値が「１」ではないと判定された場合は、スライド記憶部において入力データと一致する過去のデータが記憶されていないとされ、処理はステップＳ４０に移行される。ステップＳ４０では、比較結果フラグSlideFLAGが「０」に設定され、次のステップＳ４１で符号生成処理が行われる。符号生成処理の詳細な内容については後述する。
【０１０３】
一方、上述のステップＳ３９で、フラグSFINDFLGの値が「１」であると判定された場合は、スライド記憶部において入力データと一致する過去の入力データが記憶されているとされ、次のステップＳ４２で、フラグLISTFLGの値が「１」に設定される。つまり、リスト探索処理が有効とされる。
【０１０４】
図１４は、図１２のステップＳ２６で実行されるリスト探索処理の詳細な内容を示すフローチャートである。先ず、ステップＳ５０およびステップＳ５１で、フラグLFINDFLGおよび変数IWがそれぞれ値「０」に初期化される。
【０１０５】
ステップＳ５２で、入力データとスライド[IW]に格納された過去の入力データとが一致し、且つ、ＲフラグRFLG[IW]の値が「１」であるか否かが判定される。若し、それぞれの条件を満たすと判定されたら、処理はステップＳ５３に移行され、ＷフラグWFLG[IW]の値が「１」とされ、次のステップＳ５４で、フラグLFINDFLGの値が「１」とされる。そして、処理がステップＳ５６に移行される。
【０１０６】
一方、ステップＳ５２で、上述の条件を満たさない、すなわち、入力データとスライド[IW]に格納された過去の入力データとが一致しない、または、ＲフラグRFLG[IW]の値が「１」でないと判定されたら、処理はステップＳ５５に移行され、ＷフラグWFLG[IW]の値が「０」とされる。そして、処理がステップＳ５６に移行される。
【０１０７】
ステップＳ５６では、変数IWがスライドサイズ未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップＳ５７で変数IWに「１」が加えられ、処理がステップＳ５２に戻される。一方、変数IWがスライドサイズ以上であると判定されたら、処理がステップＳ５８に移行される。
【０１０８】
ステップＳ５８では、フラグLFINDFLGの値が「０」であるか否かが判定される。若し、値が「０」であると判定されたら、処理がステップＳ５９に移行されて変数IWが値「０」に初期化され、次のステップＳ６０でＲフラグRFLG[IW]の値が「１」であるか否かが判定される。若し、「１」であると判定されたら、処理はステップＳ６１に移行される。
【０１０９】
ステップＳ６１では、変数IWがアドレス情報Addressとされ、次のステップＳ６２で、スライドサイズを変数IWに代入する。そして、処理がステップＳ６３に移行される。ステップＳ６３では、変数IWがスライドサイズ未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップＳ６４で変数IWに「１」が加算されて処理がステップＳ６０に戻される。
【０１１０】
一方、ステップＳ６３で、変数IWがスライドサイズ以上であると判定されたら処理はステップＳ６５に移行され、比較結果フラグSlideFLAGが「１」に設定される。そして、処理は次のステップＳ６６に移行され、符号生成処理が行われて一連の処理が終了する。符号生成処理の詳細な内容については後述する。
【０１１１】
上述したステップＳ５８で、フラグLFINDFLGの値が「０」ではないと判定されたら、処理はステップＳ６７に移行され、変数IWが値「０」に初期化される。次のステップＳ６８で、ＷフラグWFLG[IW]の値が「０」であるか否かが判定される。若し、ＷフラグWFLG[IW]の値が「０」であると判定された場合は、ステップＳ６９でＲフラグRFLG[IW]の値は「０」に設定され、処理はステップＳ７０に移行される。一方、ＷフラグWFLG[IW]の値が「０」ではないと判定された場合は、ＲフラグRFLG[IW]の値はそのままの状態で、処理はステップＳ７０に移行される。
【０１１２】
そして、ステップＳ７０で、変数IWがスライドサイズ未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップＳ７１で変数IWに「１」が加算されて処理がステップＳ６８に戻される。一方、ステップＳ７０で変数IWがスライドサイズ以上であると判定されたら、処理はステップＳ７２に移行され、レングス情報Lengthに対して１が加算され、一連の処理が終了する。
【０１１３】
図１５は、図１２のステップＳ２１で実行されるSlide追加処理の詳細な内容の一例を示すフローチャートである。先ず、ステップＳ８０で、変数IWがスライド数から１を減じた値に設定される。次のステップＳ８１で、スライド[IW]に、スライド[IW−１]の値が格納され、ステップＳ８２で、変数IWが「０」を超えるか否かが判定される。若し、変数IWが「０」を超えると判定されたら、処理はステップＳ８３に移行され、変数IWから「１」が減じられる。そして、処理がステップＳ８１に戻される。一方、ステップＳ８２で、変数IWが「０」以下であると判定されたら、処理はステップＳ８４に移行され、スライド[0]に対してSlide符号化用データが追加される。符号化指定信号により多値画像の符号化が指定されていた場合は、スライド[0]に対して予測誤差値が追加される一方、符号化指定信号により少値画像の符号化が指定されていた場合は、スライド[0]に対して注目画素の画素値が追加されるという具合である。
【０１１４】
図１６は、図１３のステップＳ４１および図１４のステップＳ６６の各々で実行される符号生成処理の詳細な内容の一例を示すフローチャートである。先ず、ステップＳ９０で比較結果フラグSlideFLAGの値が「１」であるか否かが判定される。比較結果フラグSlideFLAGの値が「１」であると判定された場合は、処理はステップＳ９１に移行され、比較結果フラグSlideFLAG、アドレス情報Addressおよびレングス情報Lengthが、図８に例示されるSlide符号に符号化される。
【０１１５】
一方、比較結果フラグSlideFLAGの値が「０」であると判定された場合は、処理はステップＳ９２に移行され、比較結果フラグSlideFLAGおよびESC符号化用データ（注目画素の画素値）が、図８に例示されるESC符号に符号化される。
【０１１６】
図１７は、符号化部２０４の一例の構成をより詳細に示す。なお、図１７において、上述の図２と図４と図５と共通する部分には同一の符号を付し、詳細な説明を省略する。符号化部２０４は、データ読み込み部３００、ラインメモリ制御部３０７、ラインメモリ３０８、予測処理部３０９、予測誤差処理部３１０、マルチプレックス３０２，３０３、スライド／リスト生成処理部３０４、符号フォーマット生成処理部３０５、および、符号書き込み部３０６を有すると共に、メインメモリアービタＩ／Ｆ３１３と、データアドレス生成部３１４と、符号アドレス生成部３１５とを有する。なお、ここでは、ラインメモリ３０８のうち現ラインが記憶される領域（第１領域）を現ラインメモリ、前ラインが記憶される領域（第２領域）を前ラインメモリと呼ぶ。
【０１１７】
メインメモリアービタI／F３１３は、メインメモリアービタ２０２との接続を可能にするＩ／Ｆである。データアドレス生成部３１４は、メインメモリ２１０のＣＭＹＫバンド画像データ格納領域２１０Ｃからバンド画像データを読み出す際のメモリアドレスを生成する。データ読み込み部３００は、データアドレス生成部３１４で生成されたメモリアドレスで特定されるバンド画像データの読み出しを、メインメモリアービタI／F３１３を介してメインメモリアービタ２０２に対して要求する。この要求に応じて、メインメモリアービタ２０２によりメインメモリ２１０のＣＭＹＫバンド画像データ格納領域２１０Ｃから読み出されたバンド画像データが、メインメモリアービタ２０２から符号化部２０４に対して供給され、メインメモリアービタI／F３１３を介してデータ読み込み部３００に供給される。
【０１１８】
符号アドレス生成部３１５は、メインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄのうち、符号書き込み部３０６による書き込み先のメモリアドレスを生成する。そして、符号書き込み部３０６は、符号フォーマット生成処理部３０５で生成された符号を、符号アドレス生成部３１５で生成されたメモリアドレスに従ってメインメモリ２１０のＣＭＹＫ符号格納領域２１０Ｄに書き込むように、メインメモリアービタI／F３１３を解してメインメモリアービタ２０２に要求する。メインメモリアービタ２０２は、この要求に従い、供給された符号をメインメモリ２１０に書き込む。
【０１１９】
＜スライド／リスト生成処理部のハードウェア構成例＞
図１８は、上述したスライド／リスト生成処理部３０４のハードウェア構成の一例を示す。スライド／リスト生成処理部３０４は、スライド探索処理部３２０、スライド記憶部３２１、リスト探索処理部３２２およびコントローラ３２３を有する。
【０１２０】
コントローラ３２３は、例えばマイクロプロセッサからなり、スライド／リスト生成処理部３０４の動作を制御する。例えば、コントローラ３２３は、上述したスライド探索処理およびリスト探索処理のうち何れが有効かを示すフラグLISTFLGによる動作制御を行う。
【０１２１】
スライド／リスト生成処理部３０４に対して、例えば１クロック毎に１単位のSlide符号化用データ（予測誤差値または画素値）が入力され、スライド探索処理部３２０、スライド記憶部３２１およびリスト探索処理部３２２にそれぞれ供給される。また、ESC符号化用データ（注目画素の画素値）は、レジスタ３２４に格納される。レジスタ３２４に格納される画素値は、ESC符号の符号化の際のデータ値として用いられる。以下では、データの１単位を１バイトとする。
【０１２２】
スライド記憶部３２１は、各々がレジスタからなり、それぞれ１単位のデータが格納される１２８個のSlide０、Slide１、…、Slide１２７が直列に接続されて構成される。また、各Slide０、Slide１、…、Slide１２７の出力は、次段のスライドに供給されると共に、後述するスライド探索処理部３２０の対応する比較器３２５の一方の入力端と、リスト探索処理部３２２の対応する比較器３２６の一方の入力端にそれぞれ供給される。
【０１２３】
スライド記憶部３２１は、これら１２８個のSlide０、Slide１、…、Slide１２７によりＦＩＦＯが構成され、入力されたSlide符号化用データがSlide0からSlide1、Slide2、…と１クロック毎に順次送られていく。
【０１２４】
スライド探索処理部３２０は、１２８個の比較器３２５0、３２５1、…、３２５127と、１２８入力の論理和回路３２７とを有する。比較器３２５0、３２５1、…、３２５127のそれぞれは、一方および他方の入力端に入力されたデータを比較し、両者が一致していれば値「１」を出力し、一致していなければ値「０」を出力する。
【０１２５】
比較器３２５0、３２５1、…、３２５127の一方の入力端には、上述したように、スライド記憶部３２１が有するSlide０、Slide１、…、Slide１２７の出力がそれぞれ入力される。また、比較器３２５0、３２５1、…、３２５127のそれぞれの他方の入力端には、Slide符号化用データが入力される。
【０１２６】
比較器３２５0、３２５1、…、３２５127のそれぞれの出力は、１２８入力の論理和回路３２７に入力されると共に、後述するリスト探索処理部３２２のマルチプレックス（ＭＵＸ）３２８0、３２８1、…、３２８127の一方の入力端にそれぞれ入力される。論理和回路３２７の出力は、フラグSFINDFLGとしてコントローラ３２３に供給される。このフラグSFINDFLGは、Slide０、Slide１、…、Slide１２７のデータのうちの少なくとも１つが入力されたSlide符号化用データと一致しているか否かを示す。
【０１２７】
リスト探索処理部３２２は、それぞれ１２８個の比較器３２６0、３２６1、…、３２６127、マルチプレックス(ＭＵＸ)３２８1、３２８2、…、３２８n、ならびに、レジスタ３２９0、３２９1、…、３２９127と、アドレス情報生成部３３０と、１２８入力の論理和回路３３１とを有する。比較器３２６0、３２６1、…、３２６127のそれぞれは、一方および他方の入力端に入力されたデータを比較し、両者が一致していれば値「１」を出力し、一致していなければ値「０」を出力する。
【０１２８】
比較器３２６0、３２６1、…、３２６127の一方の入力端には、上述したように、スライド記憶部３２１が有するSlide０、Slide１、…、Slide１２７の出力がそれぞれ入力される。また、比較器３２６0、３２６1、…、３２６０127のそれぞれの他方の入力端には、Slide符号化用データが入力される。
【０１２９】
比較器３２６0、３２６1、…、３２６127の出力は、ＷフラグWFLGmであって、１２８入力の論理和回路３３１にそれぞれ入力されると共に、マルチプレックス３２８0、３２８1、…、３２８127の他方の入力端にそれぞれ入力される。論理和回路３３１の出力は、フラグLFINDFLGとしてコントローラ３２３に供給される。フラグLFINDFLGは、ＷフラグWFLG0、WFLG1、…、WFLG127のうち少なくとも１の値が「１」であることを示す。
【０１３０】
マルチプレックス３２８0、３２８1、…、３２８127の出力は、ＲフラグRFLGmとされて、それぞれレジスタ３２９0、３２９1、…、３２９127に格納される。マルチプレックス３２８0、３２８1、…、３２８127は、コントローラ３２３から図示しない経路を経て供給されるフラグListFLGにより、一方および他方の端子のうち何れを選択するかが制御される。
【０１３１】
若し、フラグListFLGの値が「０」であって、現在スライド探索処理が有効であることが示されていれば、マルチプレックス３２８0、３２８1、…、３２８127は、それぞれの一方の入力端に入力された、スライド探索処理部３２０における比較器３２５0、３２５1、…、３２５127の出力をレジスタ３２９0、３２９1、…、３２９127に供給するように制御される。
【０１３２】
一方、フラグListFLGの値が「１」であって、現在リスト探索処理が有効であることが示されていれば、マルチプレックス３２８0、３２８1、…、３２８127は、それぞれの他方の入力端に入力された、リスト探索処理部３２２における比較器３２６0、３２６1、…、３２６127を選択してレジスタ３２９0、３２９1、…、３２９127に供給するように制御される。
【０１３３】
レジスタ３２９0、３２９1、…、３２９127は、マルチプレックス３２８0、３２８1、…、３２８127からの出力が供給されると、格納されているＲフラグRFLG0、RFLG1、…、RFLG127を出力する。すなわち、レジスタ３２９0、３２９1、…、３２９127に格納されるＲフラグRFLG0、RFLG1、…、RFLG127は、マルチプレックス３２８0、３２８1、…、３２８127からの出力により更新される。
【０１３４】
レジスタ３２９0、３２９1、…、３２９127から出力されたＲフラグRFLG0、RFLG1、…、RFLG127は、比較器３２６0、３２６1、…、３２６127の動作を制御する制御信号として、比較器３２６0、３２６1、…、３２６127の制御端にそれぞれ供給される。例えば、比較器３２６m（０≦ｍ≦１２７）は、対応するレジスタ３２９mから供給された制御信号が値「１」を示していれば比較動作を行い、値「０」を示していれば比較動作を行わない。これは、３２６0、３２６1、…、３２６127それぞれの動作は、３２６0、３２６1、…、３２６127自身の出力により絞り込まれていくことを意味する。
【０１３５】
レジスタ３２９0、３２９1、…、３２９127から出力されたＲフラグRFLG0、RFLG1、…、RFLG127は、さらにアドレス情報生成部３３０にも供給される。アドレス情報生成部３３０は、図９の処理＃５で説明したように、リスト探索処理が終了した際に、レジスタ３２９0、３２９1、…、３２９127から出力されたＲフラグRFLG0、RFLG1、…、RFLG127のうち、値が「１」であるＲフラグRFLGmを選択し、選択されたＲフラグRFLGmの番号をアドレス情報Addressとして出力する。アドレス情報生成部３３０から出力されたアドレス情報Addressは、レジスタ３３２に格納されると共に、コントローラ３２３に供給される。
【０１３６】
ここで、アドレス情報生成部３３０は、値が「１」であるＲフラグRFLGmが複数存在する場合に、スライドの番号が小さい、すなわち、スライド記憶部３２１においてより入力側に近いSlideに基づくＲフラグRFLGmから優先的に選択する。これは、入力に近いSlideの方が、入力データと一致する可能性が高いからである。このとき、図８を用いて説明した符号フォーマットにおいて、アドレス情報Addressが小さい方が短い符号となるように構成すると、圧縮効率が高くなり、好ましい。
【０１３７】
コントローラ３２３は、スライド探索処理部３２０から供給されたフラグSFINDFLGと、リスト探索処理部３２２から供給されたフラグLFINDFLGと、アドレス情報生成部３３０から供給されたアドレス情報Addressとに基づき、レングス情報Lengthおよび比較結果フラグSlideFLAGを生成する。レングス情報Lengthはレジスタ３３３に格納され、比較結果フラグSlideFLAGはレジスタ３３４に格納される。
【０１３８】
なお、レジスタ３３２〜３３４にそれぞれ格納されたアドレス情報Address、レングス情報Length、比較結果フラグSlideFLAGは、それぞれ符号フォーマット生成処理部３０５により読み出され、図８に例示する符号フォーマットに従い符号化され符号データ（第１符号データ）が生成される。また、レジスタ３２４に格納された注目画素の画素値も、符号フォーマット生成処理部３０５により読み出され、図８に例示する符号フォーマットに従い符号化され符号データ（第２符号データ）が生成される。
【０１３９】
このような構成において、スライド探索処理は、以下のように行われる。すなわち、比較器３２５0、３２５1、…、３２５127による、入力データ（Slide符号化用データ）と、Slide０、Slide１、…、Slide１２７に格納された過去の入力データとの比較処理が行われる。比較結果がそれぞれ論理和回路３２７に供給され、フラグSFINDFLGが出力される。比較結果は、マルチプレックス３２８0、３２８1、…、３２８127にも供給され、スライド探索処理の間は、レジスタ３２９0、３２９1、…、３２９127に格納される。図１８の構成によれば、この一連の処理を１クロックで実行可能である。
【０１４０】
また、リスト探索処理は、以下のように行われる。すなわち、比較器３２６0、３２６1、…、３２６127による、入力データと、Slide０、Slide１、…、Slide１２７に格納された過去の入力データとの比較処理が行われる。このとき、レジスタ３２９0、３２９1、…、３２９127に格納されるＲフラグRFLG0、RFLG1、…、RFLG127の値に基づき、比較器３２６0、３２６1、…、３２６127の比較動作が制御される。例えば、ＲフラグRFLG0、RFLG1、…、RFLG127の値が全て「０」であれば、比較器３２６0、３２６1、…、３２６127全ての比較動作が行われないことになる。この状態を、リスト探索処理が行われていない状態とする。
【０１４１】
比較器３２６0、３２６1、…、３２６127による比較結果がそれぞれ論理和回路３３１に供給され、フラグLFINDFLGが出力される。また、各比較結果は、マルチプレックス３２８0、３２８1、…、３２８127に供給され、リスト探索処理の間は、レジスタ３２９0、３２９1、…、３２９127に格納される。また、レジスタ３２９0、３２９1、…、３２９127に格納されるＲフラグRFLG0、RFLG1、…、RFLG127は、アドレス情報生成部３３０にも保持される。
【０１４２】
アドレス情報生成部３３０は、レジスタ３２９0、３２９1、…、３２９127に格納される値が全て「０」であれば、保持しているＲフラグRFLG0、RFLG1、…、RFLG127のうち値が「１」のＲフラグRFLGmの位置を、アドレス情報Addressとしてコントローラ３２３に渡す。図１８の構成によれば、このリスト探索処理による一連の処理を１クロックで実行可能である。
【０１４３】
図１８の構成によれば、スライド探索処理部３２０と、リスト探索処理部３２２とがそれぞれ別個の構成とされると共に、スライド探索処理部３２０とリスト探索処理部３２２とでスライド記憶部３２１を共有する。そのため、スライド探索処理部３２０によるスライド探索処理と、リスト探索処理部３２２によるリスト探索処理とを並列的に実行することが可能である。したがって、符号化処理をより高速化できる。また、図１８の構成によれば、先読みバッファや大規模なマトリクスアレイなどの構成が不要なので、ハードウェア規模を小さくできる。
【０１４４】
＜復号部＞
図１９は、復号部２０５の構成の一例を示す。復号部２０５において、符号読み込み部４００により、上述した符号化部２０４で符号化された符号データがメインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄから読み込まれる。符号読み込み部４００に読み込まれた符号データは、符号フォーマット解析部４０１に供給される。符号フォーマット解析部４０１は、図８を用いて説明した符号フォーマットに従い、供給された符号データを解析して注目画素の画素値を示すESC値、アドレス情報Address、レングス情報Lengthおよび比較結果フラグSlideFLAGを取り出す。取り出されたこれらのデータは、スライド展開部４０２に供給される。
【０１４５】
スライド展開部４０２は、直列に接続された複数のレジスタがＦＩＦＯとして構成されるスライド記憶部を持つ。各レジスタは、スライドと呼ばれ、それぞれ１単位（例えば１バイト）のデータを格納可能とされる。多値画像を復号する場合は、スライド記憶部の各スライドには予測誤差値が記憶される一方、少値画像を復号する場合は、スライド記憶部の各スライドには画素値が記憶される。
【０１４６】
スライド展開部４０２は、符号フォーマット解析部４０１から供給された比較結果フラグSlideFLGが「１」であるときは、複数のレジスタのうち、アドレス情報Addressで特定されるレジスタに記憶されたデータを読み出してSlide復号値とする。多値画像を復号する場合は、アドレス情報Addressで特定されるレジスタに記憶された予測誤差値がSlide復号値として読み出される一方、少値画像を復号する場合は、アドレス情報Addressで特定されるレジスタに記憶された画素値がSlide復号値として読み出されるという具合である。
【０１４７】
一方、スライド展開部４０２は、符号フォーマット解析部４０１から渡された比較結果フラグSlideFLGが「０」であるときは、符号フォーマット解析部４０１から渡されたESC値をESC復号値とする。
【０１４８】
また、本実施形態では、スライド展開部４０２には、多値画像の復号または少値画像の復号の何れかを指定する復号指定信号が、ＣＰＵ２１２から送られる。復号指定信号により多値画像の復号が指定された場合は、スライド展開部４０２は、比較結果フラグSlideFLG、Slide復号値、ESC復号値を後段の予測処理部４０３へ供給する。一方、復号指定信号により少値画像の復号が指定された場合は、スライド展開部４０２は、比較結果フラグSlideFLG、Slide復号値、ESC復号値を後段のマルチプレックス４０４へ供給する。なお、本実施形態では、少値画像の復号を行う場合は、スライド展開部４０２は、比較結果フラグSlideFLG、Slide復号値、ESC復号値を予測処理部４０３へ供給しないが、これに限らず、少値画像の復号を行う場合であっても、スライド展開部４０２は、比較結果フラグSlideFLG、Slide復号値、ESC復号値を予測処理部４０３へ供給することもできる。
【０１４９】
図２０は、予測処理部４０３のより詳細な構成の一例を示す図である。予測処理部４０３は、スライド展開部４０２から、「１」に設定された比較結果フラグSlideFLAGとSlide復号値とを供給された場合は、ラインメモリ制御部４０７によりラインメモリ４０８から読み出された、復号対象の画素（注目画素）の周辺３画素の復号済みの画素ａ、ｂ、ｃ（図６参照）の画素値に基づき、注目画素の画素値の予測値を算出する。そして、その算出した予測値と、スライド展開部４０２から渡されたSlide復号値（ここでは予測画素値）とから、注目画素の画素値を算出し、算出した注目画素の画素値を、後段のマルチプレックス４０５（図１９参照）へ供給する。
【０１５０】
なお、ラインメモリ４０８は、復号を行っている復号ラインと、直前に復号が終了した復号済みのラインとの２ライン分の画素値を格納可能である。ここでは、ラインメモリ４０８のうち復号ラインが記憶される領域を現ラインメモリ、復号済みのラインが記憶される領域を前ラインメモリと呼ぶ。ラインメモリ制御部４０７は、ラインメモリ４０８に対する画素値の読み書きを制御する。
【０１５１】
一方、予測処理部４０３は、スライド展開部４０２から、「０」に設定された比較結果フラグSlideFLAGとESC復号値とを供給された場合は、その供給されたESC復号値を注目画素の画素値として、後段のマルチプレックス４０５（図１９参照）へ供給する。また、このとき予測処理部４０３は、上述した方法と同様にして、復号対象の画素（注目画素）の画素値の予測値を算出する。そして、その算出した予測値をスライド展開部４０２へ供給する。スライド展開部４０２は、予測処理部４０３から供給された予測値と、符号フォーマット解析部４０１から供給されたESC値（注目画素の画素値）との差分である予測誤差値を算出し、その算出した予測誤差値をスライドに追加する。
【０１５２】
再び、図１９に戻って説明を続ける。図１９に示すように、マルチプレックス４０４の一方の入力端には、スライド展開部４０２からのSlide復号値が供給され、他方の入力端には、スライド展開部４０２からのESC復号値が供給される。マルチプレックス４０４は、スライド展開部４０２から、「１」に設定された比較結果フラグSlideFLAGを供給された場合は、一方の入力端に供給されたSlide復号値で示される画素値を、マルチプレックス４０５へ供給する。一方、マルチプレックス４０４は、スライド展開部４０２から、「０」に設定された比較結果フラグSlideFLAGを供給された場合は、他方の入力端に供給されたESC復号値で示される画素値を、マルチプレックス４０５へ供給する。
【０１５３】
図１９に示すように、マルチプレックス４０５には、前述の復号指定信号がＣＰＵ２１２から供給される。また、マルチプレックス４０５の一方の入力端には、予測処理部４０３からの画素値が供給され、他方の入力端には、マルチプレックス４０４からの画素値が供給される。
【０１５４】
ここで、復号指定信号により多値画像の復号が指定された場合は、マルチプレックス４０５は、一方の入力端に供給された画素値を、画像書き込み部４０６へ供給する。一方、復号指定信号により少値画像の復号が指定された場合は、マルチプレックス４０５は、他方の入力端に供給された画素値を、画像書き込み部４０６へ供給する。画像書き込み部４０６は、マルチプレックス４０５から供給された画素値を、メインメモリ２１０のＣＭＹＫバンド画像データ格納領域２１０Ｃに書き込む。
【０１５５】
＜復号処理の詳細＞
図２１は、上述した本実施形態の符号化方法により符号化された符号データを、復号部２０５で復号する一例の処理を示すフローチャートである。なお、符号読み込み部４００により、メインメモリ２１０から予め符号データが読み込まれているものとする。先ず、ステップＳ１００で、符号フォーマット解析部４０１は、符号読み込み部４００により読み込まれた符号データのヘッダを読み込み、後続する符号がESC符号であるかを判定する（ステップＳ１０１）。
【０１５６】
読み込まれたヘッダからESC符号であると判定された場合は、処理がステップＳ１０２に移行される。ステップＳ１０２で、符号フォーマット解析部４０１は、ヘッダに続く所定長のビットを画素値として読み込む。読み込まれた画素値は、ESC復号値としてスライド展開部４０２へ出力される（ステップＳ１０３）。次のステップＳ１０４で、スライド展開部４０２は、Slide復号値を算出するSlide復号値計算処理を実行する。このSlide復号値計算処理の詳細な内容は後述する。次のステップＳ１０４で、スライド展開部４０２は、Slide復号値をスライド記憶部に追加するSlide復号値追加処理を行う（ステップＳ１０５）。Slide復号値追加処理は、図１５のフローチャートで説明したのと同様の手順により行われる。そして、処理がステップＳ１０６に移行される。ステップＳ１０６では、ESC復号値、つまりは注目画素の画素値が、ラインメモリ４０８の現ラインメモリに書き込まれる。
【０１５７】
上述のステップＳ１０１で、読み込まれたヘッダから、ESC符号ではないと判定された場合は、Slide符号であるか否かが判定される（ステップＳ１０７）。ステップＳ１０７で、Slide符号であると判定された場合は、処理はステップＳ１０８に移行される。ステップＳ１０８では、符号フォーマット解析部４０１が、ヘッダに続く所定長のビットをレングス情報Lengthおよびアドレス情報Addressとして読み込む。読み込まれたレングス情報Lengthおよびアドレス情報Addressは、比較結果フラグSlideFLAGとともにスライド展開部４０２に供給される。
【０１５８】
次のステップＳ１０９で、スライド展開部４０２は、スライド記憶部のスライドのうち、アドレス情報Addressで示されるスライドに格納されるデータ（Slide復号値）を読み込む。そして、スライド展開部４０２は、読み込んだSlied復号値をスライドに追加する（ステップＳ１１０）。そして、処理がステップＳ１１１に移行される。ステップＳ１１１で、スライド展開部４０２は、ESC復号値を算出するESC復号値計算処理を実行する。このESC復号値計算処理の詳細な内容は後述する。
【０１５９】
処理はステップＳ１１２に移行され、レングス情報Lengthが「０」より大きいか否かが判定される。若し、レングス情報Lengthが「０」以下であると判定されたら、処理はステップＳ１０６に移行し、ラインメモリ４０８の現ラインメモリにESC復号値が書き込まれる。一方、レングス情報Lengthが「０」より大きいと判定されたら、処理はステップＳ１１３に移行される。ステップＳ１１３で、現在のレングス情報Lengthから１を減じた値が新たなレングス情報Lengthとされ、処理はステップＳ１０９に戻される。
【０１６０】
上述のステップＳ１０７で、Slide符号ではないと判定された場合は、読み込まれた符号データは、ライン終端符号であると判定され、処理はステップＳ１１４に移行される。
ステップＳ１１４では、ラインメモリ制御部４０７は、現ラインメモリのデータを前ラインメモリに上書きする。そして、処理はステップＳ１１５に移行され、全ラインに対する復号処理が終了したか否かが判定される。全ラインに対する復号処理が終了していると判定された場合は、一連の処理が終了する。一方、全ラインに対する復号処理が終了していないと判定された場合は、処理はステップＳ１００に戻される。
【０１６１】
図２２は、図２１のステップＳ１０４で実行されるSlide復号値計算処理の詳細な内容の一例を示すフローチャートである。先ず、ステップＳ１２０で、スライド展開部４０２は、前述の復号指定信号により多値画像の復号が指定されているか否かを判定する。多値画像の復号が指定されていると判定された場合は、スライド展開部４０２は、符号フォーマット解析部４０１から供給されたESC復号値を注目画素の画素値とする（ステップＳ１２１）。次のステップＳ１２２で、スライド展開部４０２は、注目画素の画素値の予測値を算出する。次のステップＳ１２３で、スライド展開部４０２は、注目画素の画素値と、予測値との差分である予測誤差値を算出し、その算出した予測誤差値をSlide復号値とする（ステップＳ１２４）。
【０１６２】
一方、上述のステップＳ１２０で、多値画像の復号が指定されていない、つまりは少値画像の復号が指定されていると判定された場合は、スライド展開部４０２は、図２１のステップＳ１０２で特定したESC復号値をSlide復号値とする。
【０１６３】
図２３は、図２１のステップＳ１１１で実行されるESC復号値計算処理の詳細な内容の一例を示す図である。先ず、ステップＳ１３０で、スライド展開部４０２は、前述の復号指定信号により多値画像の復号が指定されているか否かを判定する。多値画像の復号が指定されていると判定された場合は、スライド展開部４０２は、符号フォーマット解析部４０１から供給された予測誤差値をSlide復号値とする（ステップＳ１３１）。次のステップＳ１３２で、スライド展開部４０２は、注目画素の画素値の予測値を算出する。次のステップＳ１３３で、スライド展開部４０２は、ステップＳ１３１で特定した予測誤差値と、ステップＳ１３２で特定した予測値とから、注目画素の画素値を算出する。そして、その算出した注目画素の画素値をESC復号値とする（ステップＳ１３４）。
【０１６４】
一方、上述のステップＳ１３０で、多値画像の復号が指定されていない、つまりは少値画像の復号が指定されていると判定された場合は、スライド展開部４０２は、図２１のステップＳ１０９で特定されたSlide復号値（この場合は注目画素の画素値）をESC復号値とする（ステップＳ１３５）。
【０１６５】
図２４は、復号部２０５の一例の構成をより詳細に示す。なお、図２４において、上述の図２および図１９と共通する部分には同一の符号を付し、詳細な説明を省略する。復号部２０５は、符号読み込み部４００と、符号フォーマット解析部４０１と、スライド展開部４０２と、予測処理部４０３と、ラインメモリ制御部４０７と、ラインメモリ４０８と、画像書き込み部４０６とを有すると共に、メインメモリアービタＩ／Ｆ４０９と、符号アドレス生成部４１０とを有する。
【０１６６】
メインメモリアービタＩ／Ｆ４０９は、メインメモリアービタ２０２との接続を可能にするＩ／Ｆである。メインメモリアービタＩ／Ｆ４０９は、メインメモリアービタ２０２に対して書き込み／読み出し要求（Ｒ／Ｗ信号）やメモリアドレスを送信することで、メインメモリ２１０へのデータの書き込み、メインメモリ２１０からのデータの読み出しなどを行う。
【０１６７】
符号アドレス生成部４１０は、メインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄから符号データを読み出す際のメモリアドレスを生成する。符号読み込み部４００は、符号アドレス生成部４１０で生成されたメモリアドレスで特定される符号データの読み出しを、メインメモリアービタＩ／Ｆ４０９を介してメインメモリアービタ２０２に対して要求する。この要求に応じて、メインメモリアービタ２０２によりメインメモリ２１０のＣＭＹＫページ符号格納領域２１０Ｄから読み出された符号データが、メインメモリアービタＩ／Ｆ４０９を介して符号読み込み部４００に供給される。
【０１６８】
＜スライド展開部のハードウェア構成＞
図２５は、スライド展開部４０２のハードウェア構成の一例を示す。スライド展開部４０２は、予測誤差生成部４８０と、マルチプレックス４９０と、スライド記憶部５００と、コントローラ５０１と、マルチプレックス５２０とを有する。
【０１６９】
コントローラ５０１は、例えばマイクロプロセッサからなり、アドレス情報Address、レングス情報Length、比較結果フラグSlideFLAGが供給され、供給されたこれらのデータに基づき、スライド展開部４０２の全体の動作を制御する。例えばコントローラ５０１は、スライド記憶部５００におけるデータ値のスライドに対する追加処理や、マルチプレックス５２０の動作などを制御する。
【０１７０】
スライド記憶部５００は、各々がレジスタからなり、それぞれ１単位のデータが格納される１２８個のスライド５１１0、５１１1、…、５１１127が直列に接続されて構成されたＦＩＦＯと、当該ＦＩＦＯの先頭に接続されるマルチプレックス５１０とを有する。各スライド５１１0、５１１1、…、５１１127の出力は、さらに、それぞれマルチプレックス５２０に供給される。
【０１７１】
予測誤差生成部４８０は、前述の予測処理部４０３から供給された注目画素の画素値の予測値と、前述の符号フォーマット解析部４１０から供給されたESC値とから、予測誤差値を生成する。予測誤差生成部４８０により生成された予測誤差値は、マルチプレックス４９０に供給される。
【０１７２】
マルチプレックス４９０の一方の入力端には、前述の符号フォーマット解析部４１０からのESC値が供給され、他方の入力端には、予測誤差生成部４８０からの予測誤差値が供給される。また、マルチプレックス４９０には、復号指定信号が供給される。マルチプレックス４９０は、復号指定信号により多値画像の復号が指定された場合は、他方の入力端に供給される予測誤差値を、後段のマルチプレックス５１０へ供給する。また、マルチプレックス４９０は、復号指定信号により少値画像の復号が指定された場合は、一方の入力端に供給されるESC値（画素値）を、後段のマルチプレックス５１０へ供給する。
【０１７３】
マルチプレックス５２０は、コントローラ５０１から供給されるアドレス情報Addressに従い、スライド記憶部５００の各スライド５１１0、５１１1、…、５１１127に格納されたデータ値からスライド５１１Addressに格納されたデータ値を選択し、選択したデータ値を、Slide復号値として出力する。
【０１７４】
マルチプレックス５１０の一方の入力端には、マルチプレックス５２０から出力されるSlide復号値が供給され、他方の入力端には、マルチプレックス４９０からの出力が供給される。マルチプレックス５１０には、比較結果フラグSlideFLAGが供給され、その比較結果フラグSlideFLAGの値に応じて、何れかの入力端に供給されるデータをスライドへ供給する。より具体的には、マルチプレックス５１０は、SlideFLAGの値が「１」の場合は、一方の入力端に供給されるマルチプレックス５２０からのSlide復号値をスライドへ供給し、SlideFLAGの値が「０」の場合は、他方の入力端に供給されるマルチプレックス４９０からの出力を、スライドへ供給するという具合である。
【０１７５】
＜作用・効果＞
以上に説明したように、本実施形態では、多値画像の符号化を行う場合は、注目画素の画素値と、当該注目画素の画素値の予測値との差分である予測誤差値を用いた予測誤差方式で符号化を行う一方、少値画像の符号化を行う場合は、予測誤差方式とは異なる符号化方式で符号化を行うので、多値画像および少値画像の両方を予測誤差方式で符号化する構成に比べて、少値画像の圧縮率を高めることができるという有利な効果を奏する。また、多値画像の符号化処理において、入力された予測誤差値が、スライド記憶部に既に記憶されている予測誤差値の何れとも一致していなかった場合は、当該入力された予測誤差値が求められた注目画素の画素値を符号化するので、当該入力された予測誤差値自体を符号化する構成に比べて、符号化に必要なビット数を少なくすることができる。これにより、圧縮率の向上が可能になるという有利な効果も奏する。
【０１７６】
なお、上述では、本発明がプリンタ装置に適用されるように説明したが、これは一例でありこの例に限定されない。すなわち、本発明は、データの可逆符号化をハードウェアを用いて行う他の装置にも適用することが可能である。
【符号の説明】
【０１７７】
２００  プリンタ装置
２０２  メインメモリアービタ
２０３  メインメモリコントローラ
２０４  符号化部
２０５  復号部
２０６  階調処理部
２０７  マルチプレックス
２０８  エンジンコントローラ
２０９  通信コントローラ
２１０Ｂ  データ格納領域
２１０Ｃ  ＣＭＹＫバンド画像データ格納領域
２１０Ａ  プログラム領域
２１０Ｄ  ＣＭＹＫページ符号格納領域
２１０  メインメモリ
３００  データ読み込み部
３０１  予測誤差生成処理部
３０２  マルチプレックス
３０３  マルチプレックス
３０４  スライド／リスト生成処理部
３０５  符号フォーマット生成処理部
３０６  符号書き込み部
３０７  ラインメモリ制御部
３０８  ラインメモリ
３０９  予測処理部
３１０  予測誤差処理部
４００  符号読み込み部
４０１  符号フォーマット解析部
４０２  スライド展開部
４０３  予測処理部
４０６  画像書き込み部
４０７  ラインメモリ制御部
４０８  ラインメモリ
【先行技術文献】
【特許文献】
【０１７８】
【特許文献１】特開２００２−３４４７５３号公報
【図１】
2012134659.tif 000003
【図２】
2012134659.tif 000004
【図３】
2012134659.tif 000005
【図４】
2012134659.tif 000006
【図５】
2012134659.tif 000007
【図６】
2012134659.tif 000008
【図７】
2012134659.tif 000009
【図８】
2012134659.tif 000010
【図９】
2012134659.tif 000011
【図１０−１】
2012134659.tif 000012
【図１０−２】
2012134659.tif 000013
【図１１−１】
2012134659.tif 000014
【図１１−２】
2012134659.tif 000015
【図１１−３】
2012134659.tif 000016
【図１１−４】
2012134659.tif 000017
【図１１−５】
2012134659.tif 000018
【図１１−６】
2012134659.tif 000019
【図１１−７】
2012134659.tif 000020
【図１１−８】
2012134659.tif 000021
【図１２】
2012134659.tif 000022
【図１３】
2012134659.tif 000023
【図１４】
2012134659.tif 000024
【図１５】
2012134659.tif 000025
【図１６】
2012134659.tif 000026
【図１７】
2012134659.tif 000027
【図１８】
2012134659.tif 000028
【図１９】
2012134659.tif 000029
【図２０】
2012134659.tif 000030
【図２１】
2012134659.tif 000031
【図２２】
2012134659.tif 000032
【図２３】
2012134659.tif 000033
【図２４】
2012134659.tif 000034
【図２５】
2012134659.tif 000035