(57)【要約】【課題】画像の圧縮符号化処理をより高速に行うことを可能とする。【解決手段】簡易予測処理部４１０では、注目画素と、注目画素の周辺画素ａ、ｂおよびｃとについて、縦方向および横方向のうち少なくとも一方の並びのそれぞれで画素値が一致するか否かを判定する。若し、縦方向または横方向で並び毎に画素値が一致すると判定されたら、注目画素に対する予測誤差が０であるとして、ランレングス生成処理部４０５でランレングスが生成される。一方、縦方向で画素値が一致しない並びが存在し、且つ、横方向で画素値が一致しない並びが存在すると判定されたら、予測処理部４０３でＬＯＣＯ−Ｉ方式やＰａｅｔｈ方式を用いて注目画素の画素値が予測され、予測誤差処理部４０４で予測誤差が求められ、この予測誤差に基づきランレングス生成処理部４０５でランレングスが生成される。【選択図】図６
2011019095.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データを圧縮符号化する画像処理装置であって、
注目画素と該注目画素の周辺画素との、画像の縦方向および横方向のうち少なくとも一方の相関に基づき、該注目画素の画素値と該注目画素の画素値に対する予測値との差分である予測誤差値が０であるか否かの判定を行う第１の予測手段と、
前記第１の予測手段により前記予測誤差値が０ではないと判定された場合に、前記注目画素の画素値に対する予測値を、該注目画素の画素値と該注目画素の周辺画素の画素値とに基づく予測により求め、該予測により求められた該予測値の該注目画素の画素値に対する予測誤差値を算出する第２の予測手段と、
前記第１の予測手段および前記第２の予測手段で得られた前記予測誤差値の符号化を行う符号化手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
前記第１の予測手段は、
前記注目画素および該注目画素の周辺画素について、前記縦方向および前記横方向のうち少なくとも一方のそれぞれの並びで同一の画素値を持つ場合に、前記予測誤差値が０であると判定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の予測手段は、ＬＯＣＯ−Ｉ方式を用いて前記予測値を求める
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第２の予測手段は、Ｐａｅｔｈ方式を用いて前記予測値を求める
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項５】
前記第１の予測手段および前記第２の予測手段で求められた前記予測誤差値が０の長さを示すランレングスを生成するランレングス生成手段をさらに有し、
前記符号化手段は、
前記第１の予測手段および前記第２の予測手段で求められた前記予測誤差値と前記ランレングス生成手段で生成された前記ランレングスとをそれぞれ符号化する
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の画像処理装置。
【請求項６】
前記符号化手段は、
前記ランレングスおよび前記予測誤差値の符号化をハフマン符号を用いて行う
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記符号化手段は、
前記ランレングスおよび前記予測誤差値の符号化を互いに独立したハフマン木に基づきそれぞれ行う
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記符号化手段は、
前記予測誤差値に対応するハフマン符号の符号長が前記注目画素による画像データのビット長以上の長さになる場合に、前記符号化を行った符号として該注目画素による画像データそのものを用いる
ことを特徴とする請求項６または請求項７に記載の画像処理装置。
【請求項９】
前記符号化手段は、
前記符号化を行った前記ランレングスと、前記符号化を行った前記予測誤差値とによる組を単位として符号データを形成する
ことを特徴とする請求項５乃至請求項８の何れか１項に記載の画像処理装置。
【請求項１０】
多値画像データを圧縮符号化する画像処理方法であって、
注目画素と該注目画素の周辺画素との、画像の縦方向および横方向のうち少なくとも一方の相関に基づき、該注目画素の画素値と該注目画素の画素値に対する予測値との差分である予測誤差値が０であるか否かの判定を行う第１の予測ステップと、
前記第１の予測ステップにより前記予測誤差値が０ではないと判定された場合に、前記注目画素の画素値に対する予測値を、該注目画素の画素値と該注目画素の周辺画素の画素値とに基づく予測により求め、該予測により求められた該予測値の該注目画素の画素値に対する予測誤差値を算出する第２の予測ステップと、
前記第１の予測ステップおよび前記第２の予測ステップで得られた前記予測誤差値の符号化を行う符号化ステップと
を有する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮符号化する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
プリンタ装置などの画像形成装置では、入力された画像データを一時的にメモリに記憶し、このメモリに記憶された画像データを所定のタイミングで読み出して、印刷動作を行う。この場合、画像データをそのままメモリに格納しようとすると、大容量のメモリが必要になり装置のコストが嵩んでしまう。そのため、一般的には、入力された画像データを、圧縮符号化してメモリに格納するようにしている。
【０００３】
この、プリンタ装置などでは、予測符号化を用いた圧縮符号化が一般的に用いられる。予測符号化は、画像において、隣接する画素同士の相関が高いという性質を利用し、符号化済みの画素の画素値から符号化対象である注目画素の画素値を予測し、予測値と注目画素の実際の画素値との差分を、エントロピー符号化により符号化する。
【０００４】
この予測符号化に従来から用いられる方法として、平面予測方式やＰａｅｔｈ方式、ＬＯＣＯ−Ｉ(LOw COmplexity LOssless COmpression for Images)方式などが知られている。平面予測方式は、ＪＰＥＧ(Joint Photographic Experts Group)の可逆符号化モードに採用されている。Ｐａｅｔｈ方式は、Ａｌａｎ  Ｗ．Ｐａｅｔｈ氏が考案した予測方式であり、国際標準化された可逆圧縮方式であるＰＮＧ(Portable Network Graphics)に採用されている。Ｐａｅｔｈ方式については、「Paeth, A.W.,"Image File Compression Made Easy", in Graphics Gems II, James Arvo, editor. Academic Press, San Diego, 1991」に記載がある。また、ＬＯＣＯ−Ｉ方式は、国際標準化された圧縮方式であるＪＰＥＧ−ＬＳ(Joint Photographic Experts Group-LS)に採用されている。ＬＯＣＯ−Ｉ方式については、「M.J.Weinberger," LOCO-I: A Low Complexity, Context-Based, Lossless Image Compression Algorithm" Proc. IEEE Data Compression conference(DCC),snowbird,Utah」に記載がある。
【０００５】
これらの予測方式のうち、ＬＯＣＯ−Ｉ方式およびＰａｅｔｈ方式は、平面予測と比較して、画素毎の処理量が多い一方で、予測値の注目画素の画素値に対する予測誤差が小さく、より高精度な予測が可能なことが知られている。
【０００６】
特許文献１には、注目画素を周辺画素から予測した予測誤差をハフマン符号化する際に、予測誤差の値を、その値の範囲で複数のグループに分類して分類内部の順位を示す数値である付加ビットへ変換し、グループ値と付加ビット値とをハフマン符号化する技術が開示されている。
【０００７】
また、特許文献２には、複数の予測部および予測誤差算出部と、それらを選択する選択部と、選択部で選択された予測誤差や複数の予測部の識別番号を符号化する符号化部で構成される画像符号化装置が開示されている。特許文献２では、複数の予測部において予測が的中した長さをランレングスで符号化し、的中しない場合は、予測誤差算出部で求めた予測誤差を符号化するようにしている。
【０００８】
さらに、特許文献３には、第１および第２の予測方法を用いて注目画素の画素値を予測する技術が記載されている。すなわち、特許文献３では、先ず第１の予測方法を用いて注目画素の画素値を予測し、予測値が注目画素の画素値と一致する場合には、この第１の予測方法を示すＩＤを符号に付加し、一致しない場合は、第２の予測方法で注目画素の画素値を予測する。第２の予測方法による予測値が注目画素の画素値と一致する場合には、この第２の予測方法を示すＩＤを符号に付加する。そして、第１および第２の予測方法により予測された予測値が何れも注目画素の画素値に一致しない場合は、予測誤差が小さい方の予測方法に対して不一致を示すＩＤを符号に付加し、その予測誤差を符号化するようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、プリンタ装置などでは、印字のための画像処理を、プリントエンジンの印字速度に応じて行う必要がある。印字速度の高速化に対応するためには、画像の圧縮率を高めると共に、画像の圧縮符号化に要する処理速度の高速化が必要となる。すなわち、プリントエンジンの印字速度よりも画像の圧縮符号化の処理速度の方が遅くなると、良好な印字品質が得られなくなる。そのため、より高速な画像の圧縮符号化方法が求められている。
【００１０】
多値画像の可逆圧縮方式として知られているＪＰＥＧの可逆符号化モードは、７つの予測式で予測誤差の統計を作成し、最も良い結果が得られた予測式を１つ選択し、選択された予測式を用いて画像データの符号化を行う。しかしながら、このＪＰＥＧの可逆符号化モードでは、１つの画像に対して７つの予測式のそれぞれで予測誤差の統計を作成するために、多値画像を２回処理する２パス方式となり、処理時間が多くかかるという問題点があった。
【００１１】
また、上述した特許文献２によれば、複数の予測部により複数の予測処理を行い予測誤差を求めているため、多くの処理を必要とし、この場合においても処理時間が多くかかってしまうという問題点があった。
【００１２】
さらに、上述した特許文献３によれば、少なくとも２の予測方法を試行してから予測誤差を求めるようにしているため、多くの処理が必要となり、処理時間が多くかかってしまうという問題点があった。
【００１３】
さらにまた、上述した特許文献１では、入力画像の画素単位に画素毎に予測誤差を求めてハフマン符号化を行っている。すなわち、特許文献１によれば、上述した平面予測方式、Ｐａｅｔｈ方式、ＬＯＣＯ−Ｉ方式などを用いて、画素毎に予測処理を行う必要がある。そのため、処理速度の高速化が困難であるという問題点があった。
【００１４】
本発明は、上記に鑑みてなされたものであって、画像の圧縮符号化処理をより高速に行うことが可能な画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するために、本発明は、多値画像データを圧縮符号化する画像処理装置であって、注目画素と注目画素の周辺画素との、画像の縦方向および横方向のうち少なくとも一方の相関に基づき、注目画素の画素値と注目画素の画素値に対する予測値との差分である予測誤差値が０であるか否かの判定を行う第１の予測手段と、第１の予測手段により予測誤差値が０ではないと判定された場合に、注目画素の画素値に対する予測値を、注目画素の画素値と注目画素の周辺画素の画素値とに基づく予測により求め、予測により求められた予測値の注目画素の画素値に対する予測誤差値を算出する第２の予測手段と、第１の予測手段および第２の予測手段で得られた予測誤差値の符号化を行う符号化手段とを有することを特徴とする。
【００１６】
また、本発明は、多値画像データを圧縮符号化する画像処理方法であって、注目画素と注目画素の周辺画素との、画像の縦方向および横方向のうち少なくとも一方の相関に基づき、注目画素の画素値と注目画素の画素値に対する予測値との差分である予測誤差値が０であるか否かの判定を行う第１の予測ステップと、第１の予測ステップにより予測誤差値が０ではないと判定された場合に、注目画素の画素値に対する予測値を、注目画素の画素値と注目画素の周辺画素の画素値とに基づく予測により求め、予測により求められた予測値の注目画素の画素値に対する予測誤差値を算出する第２の予測ステップと、第１の予測ステップおよび第２の予測ステップで得られた予測誤差値の符号化を行う符号化ステップとを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、画像の圧縮符号化処理をより高速に行うことが可能となるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置の機構部の構成例を示す略線図である。
【図２】図２は  この発明の実施形態による画像処理装置を適用可能な画像形成装置における電装・制御装置の一例の構成を示すブロック図である。
【図３】図３は、メインメモリ２１０の一例のフォーマットを示す略線図である。
【図４】図４は、メインメモリおけるＣＭＹＫバンドデータ格納領域の一例のフォーマットを示す略線図である。
【図５】図５は、この発明の実施形態による画像処理装置を適用可能なカラープリンタにおける画像処理を概略的に示す一例のフローチャートである。
【図６】図６は、本発明の実施形態による符号化部の一例の構成を示すブロック図である。
【図７】図７は、ＣＭＹＫバンドデータ格納領域からのＣＭＹＫバンドデータの読み出し順を説明するための略線図である。
【図８】図８は、予測処理で用いる画素を説明するための略線図である。
【図９】図９は、ＬＯＣＯ−Ｉ方式による予測処理の例を示すフローチャートである。
【図１０】図１０は、Ｐａｅｔｈ方式による予測処理の例を示すフローチャートである。
【図１１−１】図１１−１は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１１−２】図１１−２は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１２】図１２は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１３】図１３は、本発明の実施形態による符号化処理を示す一例のフローチャートである。
【図１４】図１４は、本発明の実施形態による簡易的な予測処理における一例の判定処理を示すフローチャートである。
【図１５−１】図１５−１は、実際のプリンタ画像の一例を示す略線図である。
【図１５−２】図１５−２は、実際のプリンタ画像の一例を示す略線図である。
【図１６−１】図１６−１は、本発明の実施形態による簡易的な予測処理について検証するために用いる略線図である。
【図１６−２】図１６−２は、本発明の実施形態による簡易的な予測処理について検証するために用いる略線図である。
【図１７−１】図１７−１は、本発明の実施形態による簡易的な予測処理について検証するために用いる略線図である。
【図１７−２】図１７−２は、本発明の実施形態による簡易的な予測処理について検証するために用いる略線図である。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照して、この発明に係る画像処理装置の最良な実施形態を詳細に説明する。図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置（カラープリンタとする）の機構部の構成例を示す。なお、本実施形態では、本発明に係る画像処理装置および画像処理方法をカラープリンタである画像形成装置に適用した例について説明するが、文字画像を含む画像に画像処理を施すものであれば、これに限定するものではない。例えば、本発明は、複写機、ファクシミリ、複合機などの画像処理装置にも適用することができる。
【００２０】
図１に例示されるカラープリンタ１００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系１Ｙ、１Ｍ、１Ｃ、１Ｋで形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは、像担持体としての感光体、例えば小径のＯＰＣ（有機感光体）ドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを有し、このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを取り囲むように作像の上流側から帯電手段としての帯電ローラ３Ｙ、３Ｍ、３Ｃ、３Ｋと、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像をそれぞれ現像剤で現像してＹ、Ｍ、Ｃ、Ｋ各色のトナー像とする現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋと、クリーニング装置５Ｙ、５Ｍ、５Ｃ、５Ｋと、除電装置６Ｙ、６Ｍ、６Ｃ、６Ｋなどが配置されている。
【００２１】
各現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋの脇には、Ｙトナー、Ｍトナー、Ｃトナー、Ｋトナーをそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋへ補給するトナーボトルユニット７Ｙ、７Ｍ、７Ｃ、７Ｋが配置されている。また、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは各々独立な光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが配置され、この光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋはレーザ光源としてのレーザダイオード（ＬＤ）光源９Ｙ、９Ｍ、９Ｃ、９Ｋや、コリメートレンズ１０Ｙ、１０Ｍ、１０Ｃ、１０Ｋ、ｆθレンズ１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋ、といった光学部品、偏向走査手段としてのポリゴンミラー１２Ｙ、１２Ｍ、１２Ｃ、１２Ｋ、折り返しミラー１３Ｙ、１３Ｍ、１３Ｃ、１３Ｋ、１４Ｙ、１４Ｍ、１４Ｃ、１４Ｋなどを有する。
【００２２】
各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは垂直に配列され、その右側には転写ベルトユニット１５がＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに接する形で配置される。転写ベルトユニット１５は、転写ベルト１６がローラ１７〜２０に張架されて図示しない駆動源により回転駆動される。装置下側には転写材としての転写紙が収納された給紙トレイ２１が配置され、装置上部に定着装置２２、排紙ローラ２３及び排紙トレイ２４が配設される。
【００２３】
作像時には、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋにおいて、それぞれ、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが図示しない駆動源により回転駆動され、帯電ローラ３Ｙ、３Ｍ、３Ｃ、３ＫによりＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが一様に帯電されて光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが各色の画像データに基づきＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに光書込みを行うことによって、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上に静電潜像が形成される。
【００２４】
このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像はそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋにより現像されてＹ、Ｍ、Ｃ、Ｋ各色のトナー像となり、一方、給紙トレイ２１から給紙ローラ２５により転写紙が水平方向に給紙されて搬送系により作像系１Ｙ、１Ｍ、１Ｃ、１Ｋ方向へ垂直に搬送される。この転写紙は、転写ベルト１６に静電的に吸着保持されて転写ベルト１６により搬送され、図示しない転写バイアス印加手段により転写バイアスが印加されてＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上のＹ、Ｍ、Ｃ、Ｋ各色のトナー像が順次に重ねて転写されることでフルカラー画像が形成される。このフルカラー画像が形成された転写紙は、定着装置２２によりフルカラー画像が定着されて排紙ローラ２３により排紙トレイ２４へ排出される。
【００２５】
上述した、カラープリンタ１００における各部の制御は、電装・制御装置２６により行われる。
【００２６】
図２は  図１の電装・制御装置２６の一例の構成を示すブロック図である。図２の例では、電装・制御装置２６は、ＣＰＵ(Central Processing Unit)２００、プリンタ用ＡＳＩＣ(Application Specific Integrated Circuit)２３０およびメインメモリ２１０を備える。プリンタ用ＡＳＩＣ２３０は、ＣＰＵ  Ｉ／Ｆ２０１、メインメモリアービタ（ＡＲＢ）２０２、メインメモリコントローラ２０３、符号化部２０４、復号部２０５、階調処理部２０６およびエンジンコントローラ２０７を含む。
【００２７】
ＣＰＵ２００は、メインメモリ２１０に格納されるプログラムに従い、このカラープリンタ１００の全体の動作を制御する。ＣＰＵ２００は、ＣＰＵ  Ｉ／Ｆ２０１を介してメインメモリアービタ２０２に接続される。メインメモリアービタ２０２は、ＣＰＵ２００、符号化部２０４、復号部２０５および通信コントローラ２０８の、メインメモリ２１０に対するアクセスを調停する。
【００２８】
メインメモリ２１０は、メインメモリコントローラ２０３を介してメインメモリアービタ２０２に接続される。メインメモリコントローラ２０３は、メインメモリ２１０に対するアクセスの制御を行う。メインメモリ２１０は、上述した、ＣＰＵ２００が動作するためのプログラムや、ＣＰＵ２００から出力される描画コマンドが格納される。メインメモリ２１０は、さらに、バンドデータや、ページの圧縮データなどの各種データを格納する。
【００２９】
符号化部２０４は、メインメモリ２１０に格納されるバンドデータを符号化する。符号化されたバンドデータは、メインメモリアービタ２０２およびメインメモリコントローラ２０３を介してメインメモリ２１０に供給され、ページ符号格納領域に書き込まれる。復号部２０５は、後述するプリンタエンジン２１１に同期して、符号化部２０４で符号化されメインメモリ２１０に書き込まれた符号化バンドデータをメインメモリ２１０から読み出して復号する。復号されたバンドデータは、階調処理部２０６に供給される。階調処理部２０６は、復号部２０５から供給されたバンドデータに対して階調処理を施してエンジンコントローラ２０７に転送する。
【００３０】
エンジンコントローラ２０７は、プリンタエンジン２１１を制御する。図２では、プリンタエンジン２１１としてＣ版のものだけが記載され、Ｍ版、Ｙ版、Ｋ版については煩雑さを避けるために省略されている。
【００３１】
通信コントローラ２０８は、ネットワーク２２１を介しての通信を制御する。例えば、コンピュータ２２０から出力されたＰＤＬ(Page Description Language)データは、ネットワーク２２１を介して通信コントローラ２０８により受信される。通信コントローラ２０８は、受信したＰＤＬデータを、メインメモリアービタ２０２およびメインメモリコントローラ２０３を介してメインメモリ２１０に転送する。
【００３２】
なお、ネットワーク２２１は、ＬＡＮ(Local Area Network)などの所定の範囲内で通信を行うものでもよいし、インターネットなどより広範囲に通信可能なものでもよい。また、ネットワーク２２１は、有線通信に限らず無線通信を用いたものでもよいし、ＵＳＢ(Universal Serial Bus)やＩＥＥＥ(Institute Electrical and Electronics Engineers)１３９４といったシリアル通信を行うものでもよい。
【００３３】
図３は、メインメモリ２１０の一例のフォーマットを示す。プログラム格納領域３００は、ＣＰＵ２００が動作するためのプログラムが格納される。ＰＤＬデータ格納領域３０１は、例えばコンピュータ２２０から供給されたＰＤＬデータが格納される。ＣＭＹＫバンドデータ格納領域３０２は、ＣＭＹＫバンドデータが格納される。ページ符号格納領域３０３は、バンドデータが圧縮符号化された符号データが格納される。ページ符号格納領域３０３は、複数ページ分の符号データを格納可能とされている。領域３０４は、上述した以外のデータが格納される。
【００３４】
図４は、図３におけるＣＭＹＫバンドデータ格納領域３０２の一例のフォーマットを示す。このように、ＣＭＹＫバンドデータ格納領域３０２は、Ｃ版、Ｍ版、Ｙ版およびＫ版の各版毎のプレーン構成とされ、各画素に対してそれぞれ８ビットが割り当てられる。すなわち、ＣＭＹＫバンドデータは、各画素がそれぞれ８ビットのビット深度を持つ多値プレーン画像となっている。
【００３５】
図５は、上述した構成を有するカラープリンタ１００における画像処理を概略的に示す一例のフローチャートである。この図５のフローチャートを用い、上述した図2を参照しながら、カラープリンタ１００の動作について概略的に説明する。
【００３６】
例えばコンピュータ２２０で生成されたＰＤＬデータがネットワーク２２１を介して通信コントローラ２０８に受信され、メインメモリ２１０のＰＤＬデータ格納領域３０１に記憶される（ステップＳ１）。ＣＰＵ２００は、メインメモリ２１０のＰＤＬデータ格納領域３０１からＰＤＬデータを読み出し、ＰＤＬを解析して（ステップＳ２）、解析結果に基づきＣＭＹＫのバンド画像を描画する（ステップＳ３）。描画されたＣＭＹＫのバンド画像によるＣＭＹＫバンドデータは、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２に格納される（ステップＳ４）。このＣＭＹＫバンドデータは、上述したように、各画素が８ビットのビット深度を持つ多値プレーン画像データである。
【００３７】
符号化部２０４は、ＣＭＹＫバンドデータ格納領域３０２からＣＭＹＫバンドデータを読み出して、本発明の実施形態による予測符号化方法に従い符号化する（ステップＳ５）。ＣＭＹＫバンドデータが符号化された符号データは、メインメモリ２１０のページ符号格納領域３０３に格納される（ステップＳ６）。
【００３８】
復号部２０５は、ページ符号格納領域３０３からＣＭＹＫバンドデータが符号化された符号データを読み出して復号し、復号されたＣＭＹＫバンドデータを階調処理部２０６に供給する（ステップＳ７）。階調処理部２０６は、復号部２０５から供給されたＣＭＹＫバンドデータに対して階調処理を施す（ステップＳ８）。階調処理されたＣＭＹＫバンドデータは、プリンタエンジンコントローラ２０７を介してプリンタエンジン２１１に供給される（ステップＳ９）。プリンタエンジン２１１は、供給されたＣＭＹＫバンドデータに基づきプリントアウトを行う。
【００３９】
＜符号化処理の概略＞
図６は、本発明の実施形態による符号化部２０４の一例の構成を示す。符号化部２０４において、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から、画像読み込み部４００によりＣＭＹＫ各版毎のＣＭＹＫバンドデータが読み出される。このとき、ＣＭＹＫ各版毎のＣＭＹＫバンドデータは、図７に例示されるように、画像読み込み部４００によりスキャンライン毎に順次、画素単位でＣＭＹＫバンドデータ格納領域３０２から読み出される。
【００４０】
画像読み込み部４００により画素単位で読み出されたＣＭＹＫバンドデータは、ラインメモリ制御処理部４０１によりラインメモリ４０２に格納される。ラインメモリ４０２は、少なくとも２ライン分のＣＭＹＫバンドデータを格納可能とされており、今回供給されたデータを格納すると共に、直前に格納した１ライン分のデータを保持するように、ラインメモリ制御処理部４０１に制御される。
【００４１】
例えば、ラインメモリ４０２は、それぞれ１ライン分の画素を格納可能な第１および第２の領域を有し、１ライン分の画素データの符号化が終了すると、この符号化が終了した領域の画素データを保持し、他方の領域に次のラインの画素データを書き込むように制御される。
【００４２】
ラインメモリ制御処理部４０１の制御により、ラインメモリ４０２から、符号化対象の画素（以下、注目画素と呼ぶ）の画素データと、注目画素の周辺３画素の画素データが読み出され、簡易予測処理部４１０に渡される。ここでラインメモリ４０２から読み出される周辺３画素は、注目画素に近接する、既に符号化が終了した画素である。より具体的には、図８に例示されるように、注目画素のスキャン順で直前の画素ａと、当該注目画素が属する現ラインに対してスキャン順で直前の前ライン、すなわち当該注目画素が属するラインの直上のラインにおいて当該注目画素の直上に位置する画素ｂおよび画素ｂのスキャン順で直前の画素ｃである。
【００４３】
なお、以下では、符号化対象である注目画素が属するラインを符号化ライン、符号化ラインに対してスキャン順で直前のラインを参照ラインと呼ぶ。
【００４４】
簡易予測処理部４１０は、ラインメモリ制御処理部４０１から渡された画素ａ、画素ｂおよび画素ｃの画素値と、注目画素の画素値とを用いて、注目画素の画素値に対する予測値を簡易的に求める（以下、簡易的な予測処理と呼ぶ）。この簡易的な予測処理では、簡易予測処理部４１０において、画素ａ、ｂおよびｃと、注目画素との４画素について、縦方向または横方向に隣接する２画素の画素値が、当該縦方向または横方向それぞれの並び、すなわち、縦方向の各列または横方向の各行でそれぞれ一致するか否かが判定される。
【００４５】
若し、一致しないと判定されたら、予測処理部４０３により、画素ａ、ｂおよびｃの画素値に基づき注目画素の画素値を予測する。本実施形態では、予測処理部４０３において、後述するＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式を用いて注目画素の画素値を予測する。これらＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式は、画素ａ、ｂおよびｃと、注目画素との４画素からなる平面の、画素ａおよび画素ｂを軸とした傾きを求める平面予測方式と比較して、より高い精度で予測値を求めることが可能である。
【００４６】
予測処理部４０３で求められた予測値は、注目画素の画素値と共に予測誤差処理部４０４に供給される。予測誤差処理部４０４は、注目画素の画素値と、予測処理部４０３で求められた予測値との差分を予測誤差値として算出する。この予測誤差値は、ランレングス生成処理部４０５に供給される。
【００４７】
一方、簡易予測処理部４１０において、画素ａ、ｂおよびｃと、注目画素との４画素について、縦方向または横方向に隣接する２画素の画素値が各列または各行でそれぞれで一致すると判定されたら、予測誤差値を「０」としてランレングス生成処理部４０５に供給する。この場合、上述した予測処理部４０３および予測誤差処理部４０４による処理は行われない。
【００４８】
なお、注目画素がラインのスキャン順で先頭画素である場合、ならびに、符号化ラインがスキャン順で先頭のラインである場合は、予測値が「０」であるものとして、予測処理部４０３および予測誤差処理部４０４の処理を行う。
【００４９】
ランレングス生成処理部４０５は、簡易予測処理部４１０または予測誤差処理部４０４から供給された予測誤差値が「０」である場合に、ランレングス値を「１」だけ増加させる。簡易予測処理部４１０からランレングス生成処理部４０５に対して直接的に予測誤差値が供給される場合は、当該予測誤差値が必ず「０」であるので、ランレングス値が「１」、増加される。一方、予測誤差値が「０」ではない場合は、ランレングス生成処理部４０５は、予測誤差値とランレングス値と注目画素の画素値とを符号フォーマット生成処理部４０６に渡し、その後、ランレングス値をリセットする。
【００５０】
符号フォーマット生成処理部４０６は、ランレングス生成処理部４０５から渡されたランレングス値と、予測誤差値とをそれぞれ後述する符号フォーマットに従い符号化する。また、詳細を後述するように、予測誤差値が差分符号で表現可能な範囲外であれば、注目画素の画素値そのものを符号として用いる。符号フォーマット生成処理部４０６で生成された符号は、符号書き込み部４０７に渡され、メインメモリ２１０のページ符号格納領域３０３に書き込まれる。
【００５１】
＜予測処理の例＞
ここで、予測処理部４０３で用いられる予測方式について説明する。上述したように、本実施形態では、符号化済みの画素ａ、ｂおよびｃの画素値から注目画素の画素値を予測する予測処理に、高精度の予測が可能なＬＯＣＯ−Ｉ(LOw COmplexity LOssless COmpression for Images)方式またはＰａｅｔｈ方式を用いる。
【００５２】
以下では、図８を用いて説明したように、符号化を画素単位では画像の左から右へ向けて行い、ライン単位では画像の上から下に向けて行う場合において、注目画素の左に隣接する画素を画素ａ、注目画素の上に隣接する画素を画素ｂ、注目画素の左上に接する画素を画素ｃとして説明する。
【００５３】
先ず、ＬＯＣＯ−Ｉ方式について説明する。ＬＯＣＯ−Ｉ方式は、画素ｃの画素値と画素ａおよび画素ｂの画素値とを比較した結果に応じて、予測値の算出方法を切り替える。図９は、ＬＯＣＯ−Ｉ方式による予測処理の例を示すフローチャートである。最初のステップＳ３０で、画素ｃの画素値が画素ａの画素値以上であって、且つ、画素ｃの画素値が画素ｂの画素値以上であるか否かが判定される。若し、画素ｃの画素値がこの条件を満たしていると判定されたら、処理はステップＳ３１に移行され、画素ａの画素値と画素ｂの画素値とが比較され、値が小さい方の画素値が予測値とされる。
【００５４】
一方、ステップＳ３０で、画素ｃの画素値が上述の条件を満たしていない、すなわち、画素ｃの画素値が画素ａの画素値未満であるか、または、画素ｃの画素値が画素ｂの画素値未満であると判定されたら、処理はステップＳ３２に移行される。ステップＳ３２では、画素ｃの画素値が画素ａの画素値以下であって、且つ、画素ｃの画素値が画素ｂの画素値以下であるか否かが判定される。若し、画素ｃの画素値がこの条件を満たしていると判定されたら、処理はステップＳ３３に移行され、画素ａの画素値と画素ｂの画素値とが比較され、値が大きい方の画素値が予測値とされる。
【００５５】
一方、ステップＳ３２で、画素ｃの画素値が上述の条件を満たしていない、すなわち、画素ｃの画素値が画素ａの画素値以上であるか、または、画素ｃの画素値が画素ｂの画素値以上であると判定されたら、処理はステップＳ３４に移行される。これは、換言すれば、画素ａおよび画素ｂのうち何れか一方の画素値が画素ｃの画素値以上であり、他方の画素値が画素ｃの画素値未満であることを意味する。ステップＳ３４では、画素ａ、ｂおよびｃの画素値について次式（１）の演算を行い、得られた値ｐを予測値とする。
ｐ＝ａ＋ｂ−ｃ    …（１）
【００５６】
次に、Ｐａｅｔｈ方式について説明する。図１０は、Ｐａｅｔｈ方式による予測処理の例を示すフローチャートである。Ｐａｅｔｈ方式は、各画素ａ、ｂおよびｃの単純な線形関数を計算し、各画素ａ、ｂおよびｃのうち計算された値に最も近い値を予測値として選択する。より具体的には、上述の式（１）で値ｐを求め、求めた値ｐと、各画素ａ、ｂおよびｃそれぞれの画素値との差分絶対値ｐａ、ｐｂおよびｐｃを算出する。算出されたこれら差分絶対値ｐａ、ｐｂおよびｐｃの大小関係に基づき、各画素ａ、ｂおよびｃから予測値を選択する。
【００５７】
最初のステップＳ４０で、上述の式（１）により、画素ａ、ｂおよびｃの画素値から値ｐが計算される。そして、次のステップＳ４１、ステップＳ４２およびステップＳ４３で、値ｐと各画素ａ、ｂおよびｃそれぞれの画素値との差分絶対値ｐａ、ｐｂおよびｐｃが求められる。
【００５８】
なお、図１０において、演算子ａｂｓは、括弧内の値の絶対値を求めることを示す。また、以下では、煩雑さを避けるために、差分絶対値ｐａ、ｐｂおよびｐｃをそれぞれ値ｐａ、ｐｂおよびｐｃと呼ぶ。
【００５９】
ステップＳ４３までの処理により値ｐａ、ｐｂおよびｐｃが求められると、処理はステップＳ４４に移行される。ステップＳ４４では、値ｐａと値ｐｂおよび値ｐｃとが比較され、値ｐａが値ｐｂ以下であって、且つ、値ｐａが値ｐｃ以下であるか否かが判定される。若し、値ｐａがこの条件を満たしていると判定されたら、処理はステップＳ４５に移行され、画素ａの画素値が予測値とされる。
【００６０】
一方、ステップＳ４４で、値ｐａが値ｐｂ以下であって、且つ、値ｐａが値ｐｃ以下ではない、すなわち、値ｐａが値ｐｂを超えるか、または、値ｐａが値ｐｃを超えると判定されたら、処理はステップＳ４６に移行される。ステップＳ４６では、値ｐｂと値ｐａおよび値ｐｃとが比較され、値ｐｂが値ｐａ以下であって、且つ、値ｐｂが値ｐｃ以下であるか否かが判定される。若し、値ｐｂがこの条件を満たしていると判定されたら、処理はステップＳ４７に移行され、画素ｂの画素値が予測値とされる。
【００６１】
一方、ステップＳ４６で値ｐｂが値ｐａ以下であって、且つ、値ｐｂが値ｐｃ以下ではない、すなわち、値ｐｂが値ｐａを超えるか、または、値ｐｂが値ｐｃを超えると判定されたら、処理はステップＳ４８に移行され、画素ｃの画素値が予測値とされる。
【００６２】
＜符号フォーマット＞
次に、図１１−１および図１１−２を用いて、符号フォーマット生成処理部４０６で生成される符号の一例のフォーマットについて説明する。本実施形態においては、予測誤差値とランレングス値とをそれぞれ符号化する。そして、図１２に例示されるように、符号化されたランレングス値（符号化ランレングス値と呼ぶ）の後ろに符号化された予測誤差値（符号化予測誤差値と呼ぶ）を接続し、符号化ランレングス値および符号化予測誤差値の組を単位として符号列を生成する。
【００６３】
図１１−１は、符号化予測誤差値の一例の符号フォーマットを示す。本実施形態では、予測誤差値は、値が大きいほど頻度が低くなるものとしてハフマン符号化される。このとき、予測誤差値を、段階的に設定された範囲に対してグループ分けし、グループ毎に異なる符号長が割り当てられるように符号化を行う。グループの識別は、生成されたハフマン符号の先頭から、グループ数に応じたビット数分の符号を用いて行う。本実施形態では、予測誤差値を８のグループに分類し、３ビットをグループの識別用に用いている。
【００６４】
以下では、グループの識別に用いるビットをグループ識別ビットと呼び、このグループ識別ビットに付加されるビットを付加ビットと呼ぶ。グループ識別ビットと付加ビットとで、予測誤差値毎にユニークなハフマン符号が構成される。
【００６５】
本実施形態では、予測誤差値Ｐｅに対して例えば次のように範囲を設定し、予測誤差値Ｐｅをグループ＃０〜グループ＃７の８グループに分類する。
グループ＃０：Ｐｅ＝１，Ｐｅ＝−１
グループ＃１：Ｐｅ＝−３，Ｐｅ＝−２，Ｐｅ＝２，Ｐｅ＝３
グループ＃２：−７≦Ｐｅ≦−４，４≦Ｐｅ≦７
グループ＃３：−１５≦Ｐｅ≦−８，８≦Ｐｅ≦１５
グループ＃４：−３１≦Ｐｅ≦−１６，１６≦Ｐｅ≦３１
グループ＃５：−６３≦Ｐｅ≦−３２，３２≦Ｐｅ≦６３
グループ＃６：−１２７≦Ｐｅ≦−６４，６４≦Ｐｅ≦１２７
グループ＃７：Ｐｅ≦−１２８，１２８≦Ｐｅ
【００６６】
また、各グループのグループ識別ビットと、付加ビットのビット長とを、例えば次のように設定する。
グループ＃０：グループ識別ビット＝「０００」，付加ビット長＝１ビット
グループ＃１：グループ識別ビット＝「００１」，付加ビット長＝２ビット
グループ＃２：グループ識別ビット＝「０１０」，付加ビット長＝３ビット
グループ＃３：グループ識別ビット＝「０１１」，付加ビット長＝４ビット
グループ＃４：グループ識別ビット＝「１００」，付加ビット長＝５ビット
グループ＃５：グループ識別ビット＝「１０１」，付加ビット長＝６ビット
グループ＃６：グループ識別ビット＝「１１０」，付加ビット長＝７ビット
グループ＃７：グループ識別ビット＝「１１１」，付加ビット長＝８ビット
【００６７】
ここで、グループ＃７の、注目画素の予測誤差値が−１２７より小さいか、若しくは、１２７より大きい場合は、ハフマン符号を用いずに、当該注目画素の画素値をそのまま付加ビットとして用いる。これは、予測誤差値が−２５５より小さいか、若しくは、２５５よりも大きくなった場合に、符号長が８ビットよりも大きくなり圧縮率が低下してしまうことを防止するためである。
【００６８】
図１１−２は、符号化ランレングス値の一例の符号フォーマットを示す。本実施形態では、ランレングス値は、値が小さいほど短い符号長が割り当てられるようにハフマン符号化され、ランレングス値が「０」で１ビットの符号長が割り当てられ、符号「０」に符号化される。
【００６９】
以下、図１１−２に例示されるように、ランレングス値が「１」の場合には、２ビットの符号長が割り当てられ、符号「１０」に符号化される。また、ランレングス値が「２」〜「４」の場合は、４ビットの符号長が割り当てられ、それぞれ符号「１１００」、「１１０１」および「１１１０」に符号化される。
【００７０】
ランレングス値が「５」以上の場合、４ビットの符号長を持つ符号「１１１１」の後ろに所定符号長の数値部を接続した形式に符号化される。数値部は、図１１−２の下段に示されるように、例えば先頭に１ビットのヘッダを含む４ビットの符号長を有する、１または複数のフレームからなる。ランレングス値を示す符号が３ビット毎に区切られ、各フレームのヘッダを除く３ビットに対し、上述の符号「１１１１」側がＭＳＢとなるように詰め込まれる。図１１−２の例では、フレームは、最大数が７個に制限され、ランレングス値が「１０４８５７６」まで表現可能とされている。ランレングス値が「５」の場合は、フレームを省略することができる。
【００７１】
なお、ヘッダは、あるフレームに次のフレームが続くか否かを示す。例えば、ヘッダの値が「０」で次のフレームがあることを示し、ヘッダの値が「１」でそのフレームで終了することを示す。
【００７２】
＜予測符号化処理の詳細＞
次に、符号化部２０４で行われる、本実施形態による予測符号化処理の例について、図１３のフローチャートを用いてより詳細に説明する。なお、この図１３のフローチャートの処理に先んじて、ランレングス値が予め０にリセットされているものとする。
【００７３】
ステップＳ１０で、画像読み込み部４００は、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から処理対象の１画素（注目画素ＧDATA）を読み出す。読み出された注目画素ＧDATAは、ラインメモリ制御処理部４０１の制御により、ラインメモリ４０２の、符号化ラインの画素データが格納される領域に書き込まれる（ステップＳ１１）。
【００７４】
次のステップＳ２３で、簡易予測処理部４１０は、ラインメモリ制御処理部４０１の制御によりラインメモリ４０２から注目画素ＧDATAの周辺３画素ａ、ｂおよびｃ（図８参照）の画素データを読み出し、これら画素ａ、ｂおよびｃの画素値と、注目画素ＧDATAの画素値とを用いて、上述した簡易的な予測処理を行う。
【００７５】
ステップＳ２３における判定は、次のようになされる。縦方向に並ぶ画素について、画素ａと画素ｃとで画素値が等しく、且つ、画素ｂと注目画素ＧDATAとで画素値が等しいことを第１の条件とする。また、横方向に並ぶ画素について、画素ｂと画素ｃとで画素値が等しく、且つ、画素ａと注目画素ＧDATAとで画素値が等しいことを第２の条件とする。簡易予測処理部４１０は、これら第１の条件および第２の条件のうち少なくとも一方が満足されるか否かを判定する。
【００７６】
ステップＳ２３による簡易的な予測により、画素ａ、ｂおよびｃと、注目画素ＧDATAとの４画素について、縦方向または横方向に隣接する２画素の画素値が各列または各行でそれぞれ一致すると判定された場合、注目画素ＧDATAの画素値に対する予測誤差が「０」となる。すなわち、この場合は、簡易的な予測処理により注目画素ＧDATAの画素値を予測できたということができる。この場合、処理がステップＳ２４に移行され、ランレングス値が「１」だけ増加される。そして、処理はステップＳ１０に戻され、スキャン順で次の画素を新たな注目画素ＧDATAとして、処理が繰り返される。
【００７７】
一方、ステップＳ２３で、縦方向に隣接する２画素の画素値が各列の少なくとも一方で一致せず、且つ、横方向に隣接する２画素の画素値が各行の少なくとも一方で一致しないと判定された場合は、処理がステップＳ１２に移行され、画素ａ、ｂおよびｃの画素値に基づき予測処理が行われる。この場合は、簡易的な予測処理では注目画素ＧDATAの画素値を予測できなかったことになる。
【００７８】
図１４は、ステップＳ２３で行われる、本実施形態による簡易的な予測処理における一例の判定処理を示すフローチャートである。この例では、先ずステップＳ５０およびステップＳ５１で縦方向の一致（第１の条件）を判定し、次にステップＳ５２およびステップＳ５３で横方向の一致（第２の条件）を判定している。
【００７９】
すなわち、ステップＳ５０で画素ａと画素ｃとで画素値が等しいか否かが判定される。ステップＳ５０で等しいと判定されたら、処理はステップＳ５１に移行され、画素ｂと注目画素ＧDATAとで画素値が等しいか否かが判定される。ステップＳ５１で等しいと判定されたら、簡易的な予測で注目画素ＧDATAの画素値が予測できたとされ、処理がステップＳ２４に移行される。
【００８０】
一方、上述のステップＳ５０で画素ａと画素ｃとで画素値が異なると判定された場合、あるいは、ステップＳ５１で画素ｂと注目画素ＧDATAとで画素値が異なると判定された場合、処理はステップＳ５２に移行される。ステップＳ５２では、画素ｂと画素ｃとで画素値が等しいか否かが判定される。ステップＳ５２で等しいと判定されたら、処理はステップＳ５３に移行され、画素ａと注目画素ＧDATAとで画素値が等しいか否かが判定される。ステップＳ５３で等しいと判定されたら、簡易的な予測で注目画素ＧDATAの画素値が予測できたとされ、処理がステップＳ２４に移行される。
【００８１】
一方、上述のステップＳ５２で画素ｂと画素ｃとで画素値が異なると判定された場合、あるいは、ステップＳ５３で画素ａと注目画素ＧDATAとで画素値が異なると判定された場合、簡易的な予測では注目画素ＧDATAの画素値を予測できなかったとされ、処理はステップＳ１２に移行される。
【００８２】
なお、ここでは第１の条件すなわち縦方向に並ぶ画素について先に処理を行ったが、これはこの例に限らず、第２の条件すなわち横方向に並ぶ画素についての処理を先に行ってもよい。
【００８３】
ステップＳ１２では、予測処理部４０３により、画素ａ、ｂおよびｃの画素値を用いて注目画素ＧDATAの画素値を予測する。本実施形態では、上述したように、高精度な予測が可能なＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式を用いて予測処理を行う。そして、次のステップＳ１３で、予測誤差処理部４０４により、注目画素ＧDATAの画素値から、ステップＳ１２で予測された予測値を減じて、注目画素ＧDATAに対する予測値の誤差（予測誤差値）を求める。
【００８４】
ステップＳ１３で注目画素ＧDATAに対する予測誤差値が求められると、処理はステップＳ１４に移行される。ステップＳ１４では、ランレングス生成処理部４０５で、ステップＳ１３で求められた予測誤差値が「０」以外の値であるか、若しくは、注目画素ＧDATAがラインの最終画素であるか否かが判定される。
【００８５】
若し、求めた予測誤差値が「０」であって、且つ、注目画素ＧDATAがラインの最終画素ではないと判定されたら、処理はステップＳ１５に移行され、ランレングス値を「１」だけ増加させる。そして、処理はステップＳ１０に戻され、スキャン順で次の画素を新たな注目画素ＧDATAとして、処理が繰り返される。
【００８６】
一方、ステップＳ１４で、予測差分値が「０」以外の値であるか、若しくは、注目画素ＧDATAがラインの最終画素であると判定されたら、処理はステップＳ１６に移行される。ステップＳ１６では、図１１−２を用いて説明した符号化フォーマットに従い、ランレングス値を符号化して符号化ランレングス値を生成する。このとき、上述したように、ランレングス値が「０」であってもランレングス値の符号化を行い、１ビットの符号長で符号「０」を生成する。
【００８７】
次のステップＳ１７およびステップＳ１８では、符号フォーマット生成処理部４０６により、図１１−１を用いて説明した符号化フォーマットに従い、予測誤差値を符号化して符号化予測誤差値を生成する。すなわち、ステップＳ１７で、予測誤差値に基づき当該予測誤差値が属するグループを求め、グループを示す値の符号化を行う。次のステップＳ１８で、予測誤差値とステップＳ１７で求めたグループとに基づき、付加ビットの符号化を行う。そして、符号化されたグループと付加ビットとを接続して、符号化予測誤差値を生成する。
【００８８】
符号書き込み部４０７は、ステップＳ１６で求められた符号化ランレングス値に対してステップＳ１８で求められた符号化予測誤差値を接続して、メインメモリ２１０のページ符号格納領域３０３に書き込む。
【００８９】
処理はステップＳ１９に移行され、注目画素ＧDATAがラインの最終画素であるか否かが判定される。若し、注目画素ＧDATAがラインの最終画素ではないと判定されたら、処理はステップＳ２０に移行され、ランレングス値が「０」にリセットされる。そして、処理はステップＳ１０に戻され、スキャン順で次の画素を新たな注目画素ＧDATAとして、処理が繰り返される。
【００９０】
一方、ステップＳ１９で注目画素ＧDATAがラインの最終画素であると判定されたら、処理はステップＳ２１に移行される。ステップＳ２１では、当該注目画素ＧDATAの属するラインを符号化済みの参照ラインとしてラインメモリ４０２の一方の領域にそのまま保持し、ラインメモリ４０２の他方の領域を、次に符号化を行う符号化ラインの画素データが格納される領域とする。そして、処理はステップＳ２２に移行され、全てのラインについて処理が終了したか否かが判定される。若し、終了したと判定されたら、一連の符号化処理が終了される。
【００９１】
一方、ステップＳ２２で全てのラインについて処理が終了していないと判定されたら、処理はステップＳ１０に戻され、次のラインの先頭画素を注目画素ＧDATAとして、処理が繰り返される。
【００９２】
ここで、上述したステップＳ２３における簡易的な予測処理の妥当性について説明する。図１５−１および図１５−２は、実際のプリンタ画像の例を示す。図１５−１は、一般的なビジネス文書などで多用される、白地に対して文字やＣＧ(Computer Graphics)による画像が配置されている例である。また、図１５−２は、画像の縦方向にグラデーション処理が施された地に対して文字やＣＧによる画像が配置されている例であり、このような形式も、一般的なビジネス文書などで多用される。
【００９３】
このような、ＣＧやテキストを中心に構成されたプリンタ画像は、一定の規則性を以て画素が配列され、画像の横方向や縦方向に画素単位で高い相関を持つことが期待される。ここで、横方向の相関が高い場合とは、上述の図８を参照して、画素ｂと画素ｃとで画素値が等しく、且つ、画素ａと注目画素ＧDATAとで画素値が等しい場合である。また、縦方向の相関が高い場合とは、画素ａと画素ｃとで画素値が等しく、且つ、画素ｂと注目画素ＧDATAとで画素値が等しい場合である。したがって、このように横方向や縦方向に相関が高い画像の場合には、上述したような、縦方向または横方向に隣接する２画素の画素値が各列または各行でそれぞれ一致するか否かを判定する簡易予測処理で予測が的中し、注目画素ＧDATAの画素値に対する予測誤差が「０」となる。
【００９４】
図１６および図１７を用いて、本実施形態による簡易的な予測処理について検証する。図１６−１および図１６−２は、ＬＯＣＯ−Ｉ方式を用いて予測を行い、簡易的な予測処理を検証する。図１６−１は、横方向に相関が高い画像の例を示す。図１６−１の例では、横方向に並ぶ画素ｂおよび画素ｃの画素値がそれぞれ「１００」であり、画素ａおよび注目画素ＧDATAの画素値がそれぞれ「２０」となっている。本実施形態の簡易的な予測処理によれば、画素ｂおよび画素ｃとで画素値が等しく、且つ、画素ａおよび注目画素ＧDATAとで画素値が等しいので、ステップＳ２３で説明した判定に従い、注目画素ＧDATAの画素値に対する予測誤差が「０」になる。
【００９５】
この例の場合、上述の図９のフローチャートを参照し、画素値が画素ｃと画素ｂとで等しく、画素ｃと画素ａとでは画素ｃの画素値の方が大きいので、ステップＳ３０の判定により処理がステップＳ３１に移行される。画素ａと画素ｂとでは画素ａの方が画素値が小さいので、予測値が画素ａの画素値である「２０」とされる。注目画素の画素値は「２０」であるので予測が的中し、予測誤差が「０」となる。これは、本実施形態による簡易的な予測処理による結果と一致する。なお、図中、演算子ｍｉｎは、括弧内に併記される値のうち小さい方を選択することを示す。
【００９６】
図１６−２は、縦方向に相関が高い画像の例を示す。図１６−２の例では、縦方向に並ぶ画素ａおよび画素ｃの画素値がそれぞれ「８０」であり、画素ｂおよび注目画素ＧDATAの画素値がそれぞれ「３０」となっている。本実施形態の簡易的な予測処理によれば、画素ａおよび画素ｃとで画素値が等しく、且つ、画素ｂと注目画素ＧDATAとで画素値が等しいので、ステップＳ２３で説明した判定に従い、注目画素ＧDATAの画素値に対する予測誤差が「０」になる。
【００９７】
この例の場合、上述の図９のフローチャートを参照し、画素値が画素ａと画素ｃとで等しく、画素ｃと画素ｂとでは画素ｃの画素値の方が大きいので、ステップＳ３０の判定により処理がステップＳ３１に移行される。画素ａと画素ｂとでは画素ｂの画素値の方が小さいので、予測値が画素ｂの画素値である「３０」とされる。注目画素の画素値は「３０」であるので予測が的中し、予測誤差は、「０」となる。これは、本実施形態による簡易的な予測処理による結果と一致する。
【００９８】
図１７−１および図１７−２は、Ｐａｅｔｈ方式を用いて予測を行う例である。画素ａ、ｂおよびｃ、ならびに、注目画素の画素値は、それぞれ、上述の図１６−１および図１６−２と同一としてある。したがって、本実施形態による簡易的な予測処理による予測誤差は、上述と同様に、図１７−１および図１７−２でそれぞれ「０」となる。
【００９９】
図１７−１の例の場合、図１０のフローチャートを参照し、画素ａの画素値が「２０」、画素ｃおよび画素ｂの画素値がそれぞれ「１００」となっているので、ステップＳ４０で画素ａ、ｂおよびｃの画素値から値ｐを算出すると、値ｐ＝２０＋１００−１００＝２０となる。この値ｐを用いてステップＳ４１〜ステップＳ４３で値ｐａ、ｐｂおよびｐｃを求めると、値ｐａ＝０、値ｐｂ＝８０、値ｐｃ＝８０となる。値ｐａは、値ｐｂおよび値ｐｃ以下であるので、ステップＳ４４の判定により値ａ＝２０が予測値とされる。注目画素ＧDATAの画素値は「２０」であるので、予測誤差が「０」となり、本実施形態による簡易的な予測処理による結果と一致する。
【０１００】
図１７−２の例の場合、図１０のフローチャートを参照し、画素ａおよび画素ｃの画素値がそれぞれ「８０」、画素ｂの画素値が「３０」となっているので、ステップＳ４０で画素ａ、ｂおよびｃの画素値から値ｐを算出すると、値ｐ＝８０＋３０−８０＝３０となる。この値ｐを用いてステップＳ４１〜ステップＳ４３で値ｐａ、ｐｂおよびｐｃを求めると、値ｐａ＝５０、値ｐｂ＝０、値ｐｃ＝５０となる。値ｐａは、値ｐｂより大きいので、ステップＳ４４の判定により処理がステップＳ４６に移行される。値ｐｂは、値ｐａおよび値ｐｃより小さいので、ステップＳ４６の判定により値ｂ＝３０が予測値とされる。注目画素ＧDATAの画素値は「３０」であるので、予測誤差が「０」となり、本実施形態による簡易的な予測処理による結果と一致する。
【０１０１】
このように、本実施形態の簡易的な予測処理によれば、画像中の縦方向または横方向の相関がある部分では、ＬＯＣＯ−Ｉ方式やＰａｅｔｈ方式による予測と同一の結果を、ＬＯＣＯ−Ｉ方式やＰａｅｔｈ方式と比較して遙かに少ない手順で得ることができる。したがって、本実施形態によれば、画像の予測符号化を、ＬＯＣＯ−Ｉ方式やＰａｅｔｈ方式による高精度の予測を維持しつつ、より高速に行うことができる。
【０１０２】
本実施形態では、予測誤差値が「０」であることを符号長が１ビットのランレングス値で示すように符号フォーマットを構成すると共に、符号を、ランレングス値および予測誤差値の組を単位として構成している。そのため、符号化処理および復号処理を簡易にできる。また、符号をこのように構成することで、ランレングス値および予測誤差値を示すヘッダや、符号化時に用いた予測処理を示すヘッダを符号中に含める必要が無くなり、より効率的に圧縮符号化を行うことができる。
【０１０３】
＜他の実施形態＞
なお、上述では、本発明の実施形態による符号化部２０４を構成する各部がハードウェア的に構成されるように説明したが、これはこの例に限定されない。すなわち、本発明に実施形態に適用な可能なカラープリンタ１００における符号化部２０４は、カラープリンタ１００に組み込まれたＣＰＵ（図示しない）上で動作するプログラムとして、それぞれ実現可能である。
【０１０４】
この場合、ＣＰＵ上で符号化部２０４として実行されるプログラムは、例えば図６を用いて説明した符号化部２０４の各機能部（画像読み込み部４００、ラインメモリ制御処理部４０１、簡易予測処理部４１０、予測処理部４０３、予測誤差処理部４０４、ランレングス生成処理部４０５、符号フォーマット生成処理部４０６および符号書き込み部４０７）を含むモジュール構成となっている。
【０１０５】
このプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ(Compact Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。これに限らず、プログラムは、ＣＰＵに接続されるＲＯＭ（図示しない）に予め記憶させておいてもよい。さらに、プログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【０１０６】
実際のハードウェアとしては、ＣＰＵが、例えば上述した記録媒体から符号化部２０４として機能するプログラムを読み出して実行することにより、上述した各部が主記憶装置（図示しない）上にロードされる。そして、画像読み込み部４００、ラインメモリ制御処理部４０１、簡易予測処理部４１０、予測処理部４０３、予測誤差処理部４０４、ランレングス生成処理部４０５、符号フォーマット生成処理部４０６および符号書き込み部４０７が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１０７】
２０４  符号化部
２０５  復号部
２１０  メインメモリ
３０２  ＣＭＹＫバンドデータ格納領域
３０３  ページ符号格納領域
４０１  ラインメモリ制御部
４０２  ラインメモリ
４０３  予測処理部
４０４  予測誤差処理部
４０５  ランレングス生成処理部
４０６  符号フォーマット生成処理部
４１０  簡易予測処理部
【先行技術文献】
【特許文献】
【０１０８】
【特許文献１】特開２００２−３４４３２３号公報
【特許文献２】特許第２８８８１８６号公報
【特許文献３】特開平１１−２３４６８３号公報
【図１】
2011019095.tif 000003
【図２】
2011019095.tif 000004
【図３】
2011019095.tif 000005
【図４】
2011019095.tif 000006
【図５】
2011019095.tif 000007
【図６】
2011019095.tif 000008
【図７】
2011019095.tif 000009
【図８】
2011019095.tif 000010
【図９】
2011019095.tif 000011
【図１０】
2011019095.tif 000012
【図１１−１】
2011019095.tif 000013
【図１１−２】
2011019095.tif 000014
【図１２】
2011019095.tif 000015
【図１３】
2011019095.tif 000016
【図１４】
2011019095.tif 000017
【図１６−１】
2011019095.tif 000018
【図１６−２】
2011019095.tif 000019
【図１７−１】
2011019095.tif 000020
【図１７−２】
2011019095.tif 000021
【図１５−１】
2011019095.tif 000022
【図１５−２】
2011019095.tif 000023