(57)【要約】【課題】描画データの圧縮符号化を予測符号化を用いて行う場合に、画素間の相関が低い画像を当該画像の解像度よりも高い解像度で印字する際に、所定以上の圧縮率を得ることを可能とする。【解決手段】解像度が６００ｄｐｉの自然画像を所定の拡大倍率で拡大して１２００ｄｐｉの解像度で印字する際に、拡大倍率が２倍以上であればニアレストネイバー法を用いて自然画像を拡大する。また、拡大倍率が２倍未満であれば、対象画像を拡大倍率で拡大した場合の拡大画像を１／２に縮小した縮小画像を生成し、この縮小画像をニアレストネイバー法を用いて２倍に拡大する。このように拡大した自然画像を、予測符号化と、予測誤差が０のランレングス値を計数するランレングス符号化とを用いて圧縮符号化する。【選択図】図８
2011040834.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データからなる画像を圧縮符号化する画像処理装置であって、
前記画像を、該画像の画素を拡大倍率に応じて複製した画素を用いて補間することで拡大する拡大手段と、
前記拡大手段で前記画像が拡大された画像の注目画素に対する予測値を、該注目画素の画素値と該注目画素の周辺画素の画素値とに基づき予測して求める予測手段と、
前記予測値の前記注目画素の画素値に対する誤差値を算出する予測誤差手段と、
前記注目画素の画素値または前記誤差値を符号化する符号生成手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
前記画像を前記拡大倍率に従い拡大した場合の画像を１／ｎ倍（ｎは２以上の整数）の倍率で縮小した縮小画像を生成する縮小手段をさらに有し、
前記拡大手段は、
前記縮小画像をｎ倍の倍率で拡大する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記拡大倍率が２倍未満である場合に、
前記縮小手段が前記縮小画像を生成し、前記拡大手段が該縮小画像を拡大する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記拡大手段は、
ニアレストネイバー法を用いて前記画像を拡大する
ことを特徴とする請求項２または請求項３に記載の画像処理装置。
【請求項５】
前記注目画素の画素値と前記予測手段により求めた前記予測値との一致が連続する数を表すランレングス値を生成するランレングス生成手段をさらに有し、
前記符号生成手段は、
前記注目画素の画素値または前記誤差値と前記ランレングス値とをそれぞれ符号化する
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の画像処理装置。
【請求項６】
前記符号生成手段は、
値が１の前記ランレングス値を符号長が１ビットの符号に符号化する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記符号生成手段は、
前記注目画素の画素値、前記誤差値および前記ランレングス値の符号化をハフマン符号化を用いて行う
ことを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項８】
前記符号生成手段は、
前記注目画素の画素値および前記誤差値と、前記ランレングス値とを互いに独立したハフマン木に基づきそれぞれハフマン符号化する
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記符号生成手段は、
前記誤差値の範囲に応じて前記誤差値をグループに分類し、該グループのうち該誤差値の絶対値が最大の範囲のグループでは前記符号化した符号として前記注目画素の画素値そのものを用いる
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記符号生成手段は、
前記グループを識別するための符号として、前記誤差値の絶対値が最大の範囲のグループに対して、他の前記グループよりも短い符号長の符号を割り当てる
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
多値画像データからなる画像を圧縮符号化する画像処理方法であって、
前記画像を、該画像の画素を拡大倍率に応じて複製した画素を用いて補間することで拡大する拡大ステップと、
前記拡大ステップで前記画像が拡大された画像の注目画素に対する予測値を、該注目画素の画素値と該注目画素の周辺画素の画素値とに基づき予測して求める予測ステップと、
前記予測値の前記注目画素の画素値に対する誤差値を算出する予測誤差ステップと、
前記注目画素の画素値または前記誤差値を符号化する符号生成ステップと
を有する
ことを特徴とする画像処理方法。
【請求項１２】
前記画像を前記拡大倍率に従い拡大した場合の画像を１／ｎ倍（ｎは２以上の整数）の倍率で縮小した縮小画像を生成する縮小ステップをさらに有し、
前記拡大ステップは、
前記縮小画像をｎ倍の倍率で拡大する
ことを特徴とする請求項１１に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮符号化する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
プリンタ装置などの画像形成装置では、入力された画像データを一時的にメモリに記憶し、このメモリに記憶された画像データを所定のタイミングで読み出して、印刷動作を行う。この場合、画像データをそのままメモリに格納しようとすると、大容量のメモリが必要になり装置のコストが嵩んでしまう。そのため、一般的には、入力された画像データを圧縮符号化してメモリに格納するようにしている。画像データの圧縮符号化には、一般的には、画像において隣接する画素同士の相関が高いという性質を利用して、注目画素の周辺画素の画素値から注目画素の画素値を予測する予測符号化方式が用いられる。
【０００３】
特許文献１には、複数の予測部および予測誤差算出部と、それらを選択する選択部と、選択部で選択された予測誤差や複数の予測部の識別番号を符号化する符号化部で構成される画像符号化装置が開示されている。特許文献１では、複数の予測部において予測が的中した長さをランレングスで符号化し、的中しない場合は、予測誤差算出部で求めた予測誤差を符号化するようにしている。
【０００４】
ここで、図３０を用いて、画像データの圧縮符号化を行う際の、プリンタ装置内部における一般的なデータフローについて概略的に説明する。図３０の例では、プリンタ装置は、電装・制御装置５００とプリンタエンジン５０４とからなり、電装・制御装置５００は、制御ユニット５０１、画像処理ユニット５０２およびメインメモリ５０３を有する。電装・制御装置５００において、制御ユニット５０１と画像処理ユニット５０２とがバス５０５で接続される。
【０００５】
制御ユニット５０１は、例えばコンピュータ（ＰＣ）５５０からネットワーク５５１および通信コントローラ５１６を介して供給されるＰＤＬ(Page Description Language)データに従い描画データを生成すると共に、生成された描画データのメインメモリ５０３および画像処理ユニット５０２との間でのやりとりを制御する。画像処理ユニット５０２は、描画データを圧縮符号化してメインメモリ５０３に格納すると共に、圧縮符号化された描画データを復号してプリンタエンジン５０４に送出する。
【０００６】
このような構成において、例えば、ＰＣ５５０から制御ユニット５０１に供給されたＰＤＬデータに基づきＣＰＵ(Central Processing Unit)５１０により描画が行われ、ＣＭＹＫ版それぞれの多値バンドデータが生成される。この多値バンドデータは、メモリアービタ（ＡＲＢ)５１２を介してメインメモリ５０３の多値ＣＭＹＫバンドデータ格納領域５２０に格納される（経路Ａ）。なお、ＣＰＵ  Ｉ／Ｆ５１１およびメモリコントローラ５１４は、メモリアービタ５１２とＣＰＵ５１０との間、ならびに、メモリアービタ５１２とメインメモリ５０３との間のデータ転送を制御する。また、ＤＭＡＣ(Direct Memory Access Controler)５１３は、メインメモリ５０３に対するアクセス制御を行う。
【０００７】
メインメモリ５０３のＣＭＹＫバンドデータ格納領域５２０に格納された例えばＣ版バンドデータは、画像処理ユニット５０２内の図示されないＤＭＡコントローラによりメインメモリ５０３から読み出され、バス５０５を介して符号化部５３２に供給される（経路Ｂ）。バス５０５上のデータ転送は、バスコントローラ５１５およびバスＩ／Ｆ５３１により制御される。
【０００８】
符号化部５３２は、供給されたＣ版バンドデータを予測符号化などを用いて圧縮符号化する。Ｃ版バンドデータ圧縮符号化されたＣ版バンド符号データは、バス５０５を介してメインメモリ５０３内の多値ＣＭＹＫページ符号格納領域５２１に順次格納される。この符号化部５３２によるバンドデータの符号化処理は、ＣＭＹＫ各版について、バンドデータ毎に順次、行われる。
【０００９】
１ページ分のデータが格納されると、多値ＣＭＹＫページ符号格納領域５２１から１ページ分のＣ版バンド符号データが順次読み出され、Ｃ版ページ符号データとして、バス５０５を介して画像処理ユニット５０２内の復号部５３３に供給される（経路Ｃ）。復号部５３３は、供給されたＣ版ページ符号データの圧縮符号を復号し、Ｃ版ページデータとして出力する。Ｃ版ページデータは、画像処理部５３４で所定に画像処理を施され、エンジンコントローラ５３５を介してプリンタエンジン５０４に供給される。プリンタエンジン５０４は、供給されたＣ版ページデータに従い、所定の速度で印刷を行う。
【００１０】
このバンド符号データの多値ＣＭＹＫページ符号格納領域５２１からの読み出し、復号部５３３での復号処理、ならびに、プリンタエンジン５０４による印字処理は、ＣＭＹＫ各版について、ページ毎に順次、プリンタエンジン５０４に同期して行われる。
【００１１】
特許文献２には、テキストデータおよびコンピュータグラフィクス（ＣＧ）データに対しては解像度重視の印刷処理を行い、写真や絵画などの自然画像などによるイメージデータに対しては階調性重視の印刷処理を行うようにした技術が記載されている。特許文献２によれば、データの種類に応じて処理を切り替えることで、処理するデータ量を削減し、印刷速度の向上と省メモリ化によるコスト削減を図っている。
【００１２】
すなわち、特許文献２においては、自然画像によるイメージデータを例えば３００ｄｐｉ(dot per inch)の低解像度およびビット深度が８ビットといった多値で描画し、多値で符号化してメモリに格納する。一方、テキストデータやＣＧデータを、例えば６００ｄｐｉの高解像度およびビット深度が２乃至４ビットといった少値で描画し、少値で符号化してメモリに格納する。そして、印字時に多値で符号化した符号と少値で符号化した符号とをメモリから読み込み、合成して印字することによりデータ量を削減し、印字速度を向上させている。
【００１３】
また、特許文献３には、印字する画像データを圧縮して共有バスを介して転送して伸張し、印字処理を行うことで、印字処理を所定の印字時間内に完了するようにした技術が記載されている。特許文献３では、これにより、コントローラ内部の共有バスの転送速度が処理速度のボトルネックになることを回避するようにしている。
【００１４】
さらに、特許文献４には、スキャナから入力される画像データを圧縮して圧縮画像データを生成してバス上に出力する際に、入力画像データの解像度を圧縮画像データの生成速度に応じて適応的に切り替えるようにした技術が記載されている。特許文献４によれば、圧縮画像データの生成速度が、圧縮画像データのバス上への出力速度を上回っているか否かを判定し、上回っていると判定された場合に、入力画像データの解像度を下げる。そして、この低解像度とされた入力画像データに対して、再度、圧縮処理とバス上への出力とを行うようにしている。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ところで、プリンタ装置などでは、図３０に経路Ｃで示されるように、描画データを圧縮符号化したＣＭＹＫ各版のページ符号データを、プリンタエンジン５０４に同期してメインメモリ５０３からバス５０５を介して読み出して復号部５３３で復号し、印字を行う。このとき、ページ符号データの圧縮率が想定よりも悪い場合、プリンタエンジン５０４に同期したページ符号データの転送レートがバス５０５の転送レートを超えてしまい、正常に印字が行えないおそれがあるという問題点があった。
【００１６】
特に、自然画像によるイメージデータは、画素間の相関が低いため、予測符号化による予測が的中しないことが考えられる。そのため、特に、１ページ内に自然画像によるイメージデータとテキストデータやＣＧデータとが混在するような場合に、圧縮率が想定よりも悪くなってしまうことが起こりうる。
【００１７】
上述した特許文献２では、テキストデータやＣＧデータと、自然画像によるイメージデータとを１ページに合成して印字する際に、少値で描画されたテキストデータやＣＧデータと、多値で描画されたイメージデータとの論理演算が困難であるという問題点があった。
【００１８】
上述した特許文献３では、描画データの圧縮符号化方式として、画像ピラミッドを作成して解像度の粗い画像から順次伝送することで画像の段階的伝送を可能としたＪＢＩＧ(Joint Bi-level Image Coding Expert Group)を用いている。そして、目標の転送レートを実現可能な圧縮率を得られない場合に、低解像度のレイヤのみ圧縮データとすることで対応している。しかしながら、この場合、印字を行うプリンタ画像全体の解像度を低下させることになり、特に高解像度が要求されるテキストデータやＣＧデータによる画像部分の画質までもが低下してしまうという問題点があった。この問題点は、上述の特許文献４においても同様である。
【００１９】
本発明は、上記に鑑みてなされたものであって、描画データの圧縮符号化を予測符号化を用いて行う場合に、画素間の相関が低い画像を当該画像の解像度よりも高い解像度で印字する際に、所定以上の圧縮率を得ることが可能な画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上述した課題を解決し、目的を達成するために、本発明は、多値画像データからなる画像を圧縮符号化する画像処理装置であって、画像を、画像の画素を拡大倍率に応じて複製した画素を用いて補間することで拡大する拡大手段と、拡大手段で画像が拡大された画像の注目画素に対する予測値を、注目画素の画素値と注目画素の周辺画素の画素値とに基づき予測して求める予測手段と、予測値の注目画素の画素値に対する誤差値を算出する予測誤差手段と、注目画素の画素値または誤差値を符号化する符号生成手段とを有することを特徴とする。
【００２１】
また、本発明は、多値画像データからなる画像を圧縮符号化する画像処理方法であって、画像を、画像の画素を拡大倍率に応じて複製した画素を用いて補間することで拡大する拡大ステップと、拡大ステップで画像が拡大された画像の注目画素に対する予測値を、注目画素の画素値と注目画素の周辺画素の画素値とに基づき予測して求める予測ステップと、予測値の注目画素の画素値に対する誤差値を算出する予測誤差ステップと、注目画素の画素値または誤差値を符号化する符号生成ステップとを有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、描画データの圧縮符号化を予測符号化を用いて行う場合に、画素間の相関が低い画像を当該画像の解像度よりも高い解像度で印字する際に、所定以上の圧縮率を得ることが可能であるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】図１は、本実施形態による画像処理装置を適用可能な画像形成装置の機構部の構成例を示す略線図である。
【図２】図２は、電装・制御装置の一例の構成を示すブロック図である。
【図３】図３は、メインメモリの一例のフォーマットを示す略線図である。
【図４】図４は、メインメモリにおける多値ＣＭＹＫバンドデータ格納領域の一例のフォーマットを示す略線図である。
【図５】図５は、本実施形態に適用可能なカラープリンタにおける画像処理を概略的に示す一例のフローチャートである。
【図６】図６は、本実施形態による描画処理を説明するための略線図である。
【図７】図７は、本実施形態による一例の描画処理をより詳細に示すフローチャートである。
【図８】図８は、本実施形態による自然画像の一例の描画処理をより詳細に示すフローチャートである。
【図９】図９は、本実施形態による２倍以上の拡大描画を行う場合の例をより具体的に示す略線図である。
【図１０−１】図１０−１は、本実施形態による方法を用いないでソース画像を２倍以下、１倍以上の拡大率で拡大する場合の例を示す略線図である。
【図１０−２】図１０−２は、本実施形態による方法でソース画像を２倍以下、１倍以上の拡大率で拡大する場合の例を示す略線図である。
【図１１−１】図１１−１は、本実施形態による方法を用いないでソース画像を１倍以下の拡大率で拡大する場合の例を示す略線図である。
【図１１−２】図１１−２は、本実施形態による方法でソース画像を１倍以下の拡大率で拡大する場合の例を示す略線図である。
【図１２】図１２は、描画用画像を多値ＣＭＹＫバンドデータ格納領域に対して書き込む際のアドレスしてについて説明するための略線図である。
【図１３】図１３は、本実施形態による描画処理機能を実行するための描画処理部の一例の構成を示す機能ブロック図である。
【図１４】図１４は、本実施形態による符号化部の一例の構成を示すブロック図である。
【図１５】図１５は、多値ＣＭＹＫバンドデータ格納領域からのＣＭＹＫバンドデータの読み出し順を説明するための略線図である。
【図１６】図１６は、予測処理で用いる画素を説明するための略線図である。
【図１７】図１７は、平面予測方式を説明するための略線図である。
【図１８】図１８は、ＬＯＣＯ−Ｉ方式による予測処理の例を示すフローチャートである。
【図１９】図１９は、Ｐａｅｔｈ方式による予測処理の例を示すフローチャートである。
【図２０−１】図２０−１は、平面予測方式による予測例を具体的な数値を用いて示す略線図である。
【図２０−２】図２０−２は、平面予測方式による予測例を具体的な数値を用いて示す略線図である。
【図２１−１】図２１−１は、ＬＯＣＯ−Ｉ方式による予測例を具体的な数値を用いて示す略線図である。
【図２１−２】図２１−２は、ＬＯＣＯ−Ｉ方式による予測例を具体的な数値を用いて示す略線図である。
【図２２−１】図２２−１は、Ｐａｅｔｈ方式による予測例を具体的な数値を用いて示す略線図である。
【図２２−２】図２２−２は、Ｐａｅｔｈ方式による予測例を具体的な数値を用いて示す略線図である。
【図２３−１】図２３−１は、本実施形態による符号の一例のフォーマットを示す略線図である。
【図２３−２】図２３−２は、本実施形態による符号の一例のフォーマットを示す略線図である。
【図２３−３】図２３−３は、本実施形態による符号の一例のフォーマットを示す略線図である。
【図２４】図２４は、本実施形態による符号の一例のフォーマットを示す略線図である。
【図２５】図２５は、本実施形態において符号化部で行われる一例の符号化処理を示すフローチャートである。
【図２６−１】図２６−１は、本実施形態によるグラフィクス画像の符号化処理についてより具体的に説明するための略線図である。
【図２６−２】図２６−２は、本実施形態によるグラフィクス画像の符号化処理についてより具体的に説明するための略線図である。
【図２７−１】図２７−１は、本実施形態による自然画像の符号化処理についてより具体的に説明するための略線図である。
【図２７−２】図２７−２は、本実施形態による自然画像の符号化処理についてより具体的に説明するための略線図である。
【図２７−３】図２７−３は、本実施形態による自然画像の符号化処理についてより具体的に説明するための略線図である。
【図２７−４】図２７−４は、本実施形態による自然画像の符号化処理についてより具体的に説明するための略線図である。
【図２８】図２８は、本実施形態による復号部の一例の構成を示すブロック図である。
【図２９】図２９は、復号部で行われる、本実施形態の符号化処理により符号化された符号化データに対する一例の復号処理を示すフローチャートである。
【図３０】図３０は、画像データの圧縮符号化を行う際のプリンタ装置内部における一般的なデータフローについて概略的に説明するための略線図である。
【発明を実施するための形態】
【００２４】
以下に添付図面を参照して、この発明に係る画像処理装置の一実施形態を詳細に説明する。図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置（カラープリンタとする）の機構部の構成例を示す。なお、本実施形態では、本発明に係る画像処理装置および画像処理方法をカラープリンタである画像形成装置に適用した例について説明するが、文字画像を含む画像に画像処理を施すものであれば、これに限定するものではない。例えば、本発明は、複写機、ファクシミリ、複合機などの画像処理装置にも適用することができる。
【００２５】
＜実施形態に適用可能なプリンタの例＞
図１に例示されるカラープリンタ１００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系１Ｙ、１Ｍ、１Ｃ、１Ｋで形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは、像担持体としての感光体、例えば小径のＯＰＣ（有機感光体）ドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを有し、このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを取り囲むように作像の上流側から帯電手段としての帯電ローラ３Ｙ、３Ｍ、３Ｃ、３Ｋと、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像をそれぞれ現像剤で現像してＹ、Ｍ、Ｃ、Ｋ各色のトナー像とする現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋと、クリーニング装置５Ｙ、５Ｍ、５Ｃ、５Ｋと、除電装置６Ｙ、６Ｍ、６Ｃ、６Ｋなどが配置されている。
【００２６】
各現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋの脇には、Ｙトナー、Ｍトナー、Ｃトナー、Ｋトナーをそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋへ補給するトナーボトルユニット７Ｙ、７Ｍ、７Ｃ、７Ｋ（が配置されている。また、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは各々独立な光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが配置され、この光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋはレーザ光源としてのレーザダイオード（ＬＤ）光源９Ｙ、９Ｍ、９Ｃ、９Ｋや、コリメートレンズ１０Ｙ、１０Ｍ、１０Ｃ、１０Ｋ、ｆθレンズ１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋ、といった光学部品、偏向走査手段としてのポリゴンミラー１２Ｙ、１２Ｍ、１２Ｃ、１２Ｋ、折り返しミラー１３Ｙ、１３Ｍ、１３Ｃ、１３Ｋ、１４Ｙ、１４Ｍ、１４Ｃ、１４Ｋなどを有する。
【００２７】
各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは垂直に配列され、その右側には転写ベルトユニット１５がＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに接する形で配置される。転写ベルトユニット１５は、転写ベルト１６がローラ１７〜２０に張架されて図示しない駆動源により回転駆動される。装置下側には転写材としての転写紙が収納された給紙トレイ２１が配置され、装置上部に定着装置２２、排紙ローラ２３及び排紙トレイ２４が配設される。
【００２８】
作像時には、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋにおいて、それぞれ、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが図示しない駆動源により回転駆動され、帯電ローラ３Ｙ、３Ｍ、３Ｃ、３ＫによりＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが一様に帯電されて光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが各色の画像データに基づきＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに光書込みを行うことによって、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上に静電潜像が形成される。
【００２９】
このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像はそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋにより現像されてＹ、Ｍ、Ｃ、Ｋ各色のトナー像となり、一方、給紙トレイ２１から給紙ローラ２５により転写紙が水平方向に給紙されて搬送系により作像系１Ｙ、１Ｍ、１Ｃ、１Ｋ方向へ垂直に搬送される。この転写紙は、転写ベルト１６に静電的に吸着保持されて転写ベルト１６により搬送され、図示しない転写バイアス印加手段により転写バイアスが印加されてＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上のＹ、Ｍ、Ｃ、Ｋ各色のトナー像が順次に重ねて転写されることでフルカラー画像が形成される。このフルカラー画像が形成された転写紙は、定着装置２２によりフルカラー画像が定着されて排紙ローラ２３により排紙トレイ２４へ排出される。
【００３０】
上述した、カラープリンタ１００における各部の制御は、電装・制御装置２６により行われる。
【００３１】
図２は、電装・制御装置２６の一例の構成を示す。電装・制御装置２６は、制御ユニット１０１、画像処理ユニット１０２およびメインメモリ１０３を有する。制御ユニット１０１と画像処理ユニット１０２とがバス２２０で接続される。制御ユニット１０１は、ＣＰＵ(Central Processing Unit)１１０、ＣＰＵ  Ｉ／Ｆ（インターフェイス）１１１、メモリアービタ（ＡＲＢ）１１２、ＤＭＡＣ(Direct Memory Access Controler)１１３、メモリコントローラ１１４、バスコントローラ１１５および通信コントローラ１１６を有する。
【００３２】
制御ユニット１０１において、メモリアービタ１１２に対して、ＣＰＵ１１０がＣＰＵ  Ｉ／Ｆ１１１を介して、また、メインメモリ１０３がメモリコントローラ１１４を介してそれぞれ接続される。メモリコントローラ１１４は、メインメモリ１０３に対するアクセスの制御を行う。さらに、メモリアービタ１１２に対して、ＤＭＡＣ１１３、通信コントローラ１１６およびＲＯＭ(Read Only Memory)１１７が接続される。メモリアービタ１１２は、ＣＰＵ１１０、ＤＭＡＣ１１３、通信コントローラ１１６およびバス２２０の、メインメモリ１０３に対するアクセスを調停する。さらにまた、メモリアービタ１１２に対して、バス２２０に対するアクセスの調停を行うバスコントローラ１１５が接続される。
【００３３】
ＣＰＵ１１０は、ＣＰＵ  Ｉ／Ｆ１１１およびメモリアービタ１１２を介してＲＯＭ１１７にアクセスし、ＲＯＭ１１７に予め記憶されたプログラムを読み出して実行し、このカラープリンタ１００の全体の動作を制御する。なお、ＲＯＭ１１７は、ＣＰＵ１１０に実行される各種のプログラムの他に、文字などのフォント情報が予め記憶される。
【００３４】
通信コントローラ１１６は、ネットワーク２１０を介して行われる通信を制御する。例えば、コンピュータ２００から出力されたＰＤＬ(Page Description Language)データは、ネットワーク２１０を介して通信コントローラ１１６により受信される。通信コントローラ１１６は、受信したＰＤＬデータを、メモリアービタ１１２およびメモリコントローラ１１４を介してメインメモリ１０３に転送する。
【００３５】
なお、ネットワーク２１０は、ＬＡＮ(Local Area Network)などの所定の範囲内で通信を行うものでもよいし、インターネットなどより広範囲に通信可能なものでもよい。また、ネットワーク２１０は、有線通信に限らず無線通信を用いたものでもよいし、ＵＳＢ(Universal Serial Bus)やＩＥＥＥ(Institute Electrical and Electronics Engineers)１３９４といったシリアル通信を行うものでもよい。
【００３６】
メインメモリ１０３は、多値ＣＭＹＫバンドデータ格納領域１２０と多値ＣＭＹＫページ符号格納領域１２１とを有する。多値ＣＭＹＫバンドデータ格納領域１２０は、ＣＭＹＫ各版の多値のバンドデータが格納される。また、多値ＣＭＹＫページ符号格納領域１２１は、ＣＭＹＫ各版それぞれの多値のバンドデータが画素単位で符号化されたページ符号が格納される。
【００３７】
また、後述するが、メインメモリ１０３は、例えばコンピュータ２００から供給されたＰＤＬ(Page Description Language)データを格納するＰＤＬデータ格納領域をさらに有する。
【００３８】
例えば、ＣＰＵ１１０は、コンピュータ２００から供給されたＰＤＬデータに基づき描画を行いＣＭＹＫ版それぞれの多値バンドデータを生成する。生成されたＣＭＹＫ版それぞれの多値バンドデータは、メモリアービタ１１２を介してメインメモリ１０３の多値ＣＭＹＫＡバンドデータ格納領域１２０に格納される。
【００３９】
画像処理ユニット１０２は、例えばＡＳＩＣ(Application Specific Integrated Circuit)からなり、ＣＭＹＫ各版のプリンタエンジンに印字させる画像の画像処理を行う。画像処理ユニット１０２は、バスＩ／Ｆ１３１、符号化部１３２、復号部１３３、画像処理部１３４およびエンジンコントローラ１３５を有する。バスＩ／Ｆ１３１は、符号化部１３２および復号部１３３が接続され、符号化部１３２および復号部１３３のバス２２０に対する通信を調停する。
【００４０】
符号化部１３２は、メインメモリ１０３の多値ＣＭＹＫバンドデータ格納領域１２０からバス２２０を介して転送された各版のバンドデータを予測符号化を用いて符号化して、各版毎に１本の符号列を生成する。符号化部１３２で生成されたこの符号列は、バスＩ／Ｆ１３１からバス２２０を介してメインメモリ１０３に供給され、多値ＣＭＹＫページ符号格納領域１２１に格納される。
【００４１】
多値ＣＭＹＫページ符号格納領域１２１に格納された１ページ分の符号列は、プリンタエンジン１０４の動作に同期して多値ＣＭＹＫページ符号格納領域１２１から読み出され、バス２２０を介して画像処理ユニット１０２に供給される。この符号列は、画像処理ユニット１０２内のバスＩ／Ｆ１３１から復号部１３３に供給される。復号部１３３は、供給された符号列を復号し、画像処理部１３４に供給する。画像処理部１３４は、供給された画像データに対して例えば階調処理などの画像処理を施してエンジンコントローラ１３５に供給する。エンジンコントローラ１３５は、画像処理部１３４から出力された画像データに基づきプリンタエンジン１０４を制御し、印字を行う。
【００４２】
＜メインメモリのフォーマット例＞
図３は、メインメモリ１０３の一例のフォーマットを示す。メインメモリ１０３は、上述した多値ＣＭＹＫバンドデータ格納領域１２０および多値ＣＭＹＫページ符号格納領域１２１の他に、プログラム格納領域１２２、ＰＤＬデータ格納領域１２３およびその他の領域１２４を有する。プログラム格納領域１２２は、ＣＰＵ１１０が動作するためのプログラムが格納される。ＰＤＬデータ格納領域１２３は、例えばコンピュータ２００から供給されたＰＤＬデータが格納される。その他の領域１２４は、上述した以外のデータが格納される。
【００４３】
図４は、図３における多値ＣＭＹＫバンドデータ格納領域１２０の一例のフォーマットを示す。このように、多値ＣＭＹＫバンドデータ格納領域１２０は、Ｃ版、Ｍ版、Ｙ版およびＫ版の各版毎のプレーン構成とされ、各画素に対してそれぞれ８ビットが割り当てられる。すなわち、ＣＭＹＫバンドデータは、各画素がそれぞれ８ビットのビット深度を持つ多値プレーン画像となっている。
【００４４】
＜プリンタにおける画像処理の概略＞
図５は、上述した構成を有するカラープリンタ１００における画像処理を概略的に示す一例のフローチャートである。この図５のフローチャートを用い、上述した図2を参照しながら、カラープリンタ１００の動作について概略的に説明する。
【００４５】
例えばコンピュータ２００で生成されたＰＤＬデータがネットワーク２１０を介して通信コントローラ１１６に受信され、メインメモリ１０３のＰＤＬデータ格納領域１２３に記憶される（ステップＳ１）。ＣＰＵ１１０は、メインメモリ１０３のＰＤＬデータ格納領域１２３からＰＤＬデータを読み出し、ＰＤＬを解析して（ステップＳ２）、解析結果に基づきＣＭＹＫのバンド画像を描画する（ステップＳ３）。
【００４６】
本実施形態においては、このステップＳ３のバンド画像の描画を、テキストデータやＣＧデータなどのグラフィクス画像といった高解像度が要求される画像と、写真画像や絵画の画像などの自然画像といった、解像度よりも階調を要求される画像とに対してそれぞれ別途に行う。
【００４７】
すなわち、ＣＰＵ１１０は、ステップＳ２のＰＤＬ解析処理によりグラフィクス画像の描画コマンドを受け取ると、高解像度でグラフィクス画像の描画を行う（ステップＳ３Ａ）。また、ＣＰＵ１１０は、ステップＳ２のＰＤＬ解析処理により自然画像の描画コマンドを受け取ると、当該自然画像のソース画像を後述するように変換して描画を行う（ステップＳ３Ｂ）。これらステップＳ３ＡおよびステップＳ３Ｂにおける描画処理の詳細は、後述する。
【００４８】
なお、以下では、グラフィクス画像の描画の解像度が１２００ｄｐｉ(dot per inch)の高解像度、自然画像のソース画像の描画の解像度が６００ｄｐｉの中解像度であるものとする。また、自然画像のソース画像は、例えばビット深度が８ビットの多値画像データとする。ここで、ソース画像は、描画コマンドによる描画を行う前のオリジナルの画像をいう。
【００４９】
ステップＳ３で描画されたＣＭＹＫのバンド画像によるＣＭＹＫバンドデータは、メインメモリ１０３の多値ＣＭＹＫバンドデータ格納領域１２０に格納される（ステップＳ４）。このＣＭＹＫバンドデータは、上述したように、各画素が８ビットのビット深度を持つ多値プレーン画像データである。
【００５０】
符号化部１３２は、多値ＣＭＹＫバンドデータ格納領域１２０からＣＭＹＫバンドデータを読み出して、平面予測方式、ＬＯＣＯ−Ｉ方式、Ｐａｅｔｈ方式といった予測符号化方式により符号化する（ステップＳ５）。これら平面予測方式、ＬＯＣＯ−Ｉ方式およびＰａｅｔｈ方式については、後述する。ＣＭＹＫバンドデータが符号化された符号データは、メインメモリ１０３の多値ＣＭＹＫページ符号格納領域１２１に格納される（ステップＳ６）。
【００５１】
復号部１３３は、多値ＣＭＹＫページ符号格納領域１２１からＣＭＹＫバンドデータが符号化された符号データを読み出して復号し、復号されたＣＭＹＫバンドデータを画像処理部１３４に供給する（ステップＳ７）。画像処理部１３４は、復号部１３３から供給されたＣＭＹＫバンドデータに対して階調処理などの画像処理を施す（ステップＳ８）。画像処理されたＣＭＹＫバンドデータは、エンジンコントローラ１３５を介してプリンタエンジン１０４に供給される。プリンタエンジン１０４は、供給されたＣＭＹＫバンドデータに基づきプリントアウトを行う（ステップＳ９）。
【００５２】
＜実施形態による描画処理の例＞
次に、上述したステップＳ３のＣＭＹＫ描画処理について、より詳細に説明する。例えば、図６に例示されるように、９４４０画素×１３５５２画素からなる多値ＣＭＹＫ画像を、１２００ｄｐｉの解像度で描画する場合を考える。この場合、１２００ｄｐｉの解像度を有するグラフィクス画像３０１は、そのまま描画できる（図５のステップＳ３Ａ）。一方、６００ｄｐｉの解像度を有する自然画像３０２（ソース画像）は、画像の画素を拡大倍率に応じて複製した画素を用いて補間することにより拡大して、１２００ｄｐｉの解像度で描画を行う（図５のステップＳ３Ｂ）。
【００５３】
このステップＳ３Ｂにおける自然画像の拡大に適用可能な拡大方法としては、ニアレストネイバー(Nearest Neighbor)法がある。ニアレストネイバー法は、例えば画像の拡大の場合には、拡大の際の補間を補間位置から最も近い位置にある画素と同一の画素値の画素を用いて行う補間方法である。
【００５４】
なお、以下では、ソース画像の解像度が描画のために変換された画像を、描画用画像と呼ぶ。
【００５５】
図７は、図５のフローチャートで説明したステップＳ３による一例の描画処理を、より詳細に示すフローチャートである。ＣＰＵ１１０は、図５のステップＳ２でＰＤＬデータを解析して得られた描画コマンドを読み込み（ステップＳ５０）、読み込んだ描画コマンドがグラフィクス画像を描画するグラフィクス描画コマンドであるか否かを判定する（ステップＳ５１）。若し、グラフィクス描画コマンドであると判定されたら、処理はステップＳ５２に移行され、高解像度（例えば１２００ｄｐｉ）でグラフィクス画像の描画処理を行う。
【００５６】
一方、ステップＳ５１で、グラフィクス描画コマンドではない、すなわち、自然画像を描画する自然画像描画コマンドであると判定された場合、処理はステップＳ５３に移行され、後述する処理により、自然画像の描画処理が行われる。
【００５７】
ステップＳ５２またはステップＳ５３での処理が終了したら、処理はステップＳ５４に移行され、１ページにおける全ての描画コマンドが処理されたか否かが判定される。若し、全ての描画コマンドが処理されていないと判定されたら、処理はステップＳ５０に移行され、次の描画コマンドが読み込まれ、この次の描画コマンドに対する処理が行われる。ステップＳ５４で全ての描画コマンドが処理されていると判定されたら、図５のステップＳ３の処理を抜け、処理が図５のステップＳ４に移行される。
【００５８】
図８は、図７におけるステップＳ５３による自然画像の一例の描画処理をより詳細に示すフローチャートである。図７のステップＳ５１で描画コマンドがグラフィクス描画コマンドではないと判定されたら、処理が図８のステップＳ６０に移行される。ステップＳ６０では、描画コマンドがソース画像に対して２倍以上の拡大描画を行うものであるか否かを判定する。
【００５９】
若し、ステップＳ６０で描画コマンドが２倍以上の拡大描画を行うものであると判定されたら、処理はステップＳ６１に移行され、描画コマンドの拡大率に従いソース画像をニアレストネイバー法で拡大描画する。すなわちこの場合、ニアレストネイバー法に従い、ソース画像を構成する各画素を拡大倍率に応じた数だけ複製して、元の画素の隣に挿入する。実際的な処理としては、例えば、ソース画像を構成する各画素の行および列を拡大倍率に応じた数だけ複製して、元の行および列の隣に順次挿入し、ソース画像の拡大を行うことが考えられる。
【００６０】
図９は、ステップＳ６１による２倍以上の拡大描画を行う場合の例をより具体的に示す。図９の例では、水平幅および垂直幅がそれぞれ１０画素のソース画像を２．３倍の拡大倍率で拡大し、水平幅および垂直幅がそれぞれ２３画素の描画用画像に変換している。この場合、１０画素×１０画素からなるソース画像の任意の３列および３行がそれぞれ２だけ複製されて、残りの７列および７行がそれぞれ１だけ複製されることで、ソース画像が２．３倍に拡大された２３画素×２３画素の描画用画像を得ることができる。この場合、描画用画像は、画素値が等しい連続する２列および２行が７組、画素値が等しい連続する３列および３行が３組からなる。この描画用画像が多値ＣＭＹＫバンドデータ格納領域１２０に書き込まれる。
【００６１】
一方、ステップＳ６０で描画コマンドが２倍以上の拡大描画を行うものではないと判定されたら、処理はステップＳ６２に移行される。ステップＳ６２以降では、ソース画像を、一旦、指定された拡大倍率に対してさらに１／２倍に縮小し、その後、ニアレストネイバー法により２倍に拡大して当該指定された拡大倍率の描画用画像を得る。
【００６２】
先ず、ステップＳ６２で、指定された拡大倍率に基づきソース画像を縮小する際の水平縮小率を算出する。式（１）により、縮小後のソース画像の水平幅ＨSを算出する。
ＨS＝描画用画像の水平幅×１／２    …（１）
【００６３】
求められた縮小後のソース画像の水平幅ＨSから、式（２）により水平縮小率を算出する。なお、式（２）において、縮小前のソース画像の水平幅をＨORGとする。
水平縮小率＝ＨS／ＨORG    …（２）
【００６４】
次のステップＳ６３で、ステップＳ６２で求めた水平縮小率でソース画像を縮小し、縮小後ソース画像を生成する。さらに次のステップＳ６４で、縮小御ソース画像をニアレストネイバー法により２倍に拡大して描画して、描画用画像を生成する。生成された描画用画像は、多値ＣＭＹＫバンドデータ格納領域１２０に格納される。
【００６５】
図１０および図１１を用いて、ステップＳ６２〜ステップＳ６４の処理をより具体的に説明する。図１０−１および図１０−２は、ソース画像を２倍未満、１倍以上の拡大率で拡大する場合の例であり、この例では１０画素×１０画素からなるソース画像を１．６倍の拡大倍率で拡大し、１６画素×１６画素の描画用画像を得ている。
【００６６】
図１０−１は、本実施形態の方法を用いない場合の例を示す。この場合、例えばソース画像３１０の１０列および１０行の画素のうち任意の６列および６行について１の複製を行い、残りの４列および４行については複製を行わないで単独で用いることで、１．６倍の拡大倍率で拡大された描画用画像３１１を得ることができる。この場合、ソース画像３１０が自然画像であれば、隣接する画素と画素値が一致しない画素が多数、存在する可能性がある。このような画素は、予測処理による予測が的中しない可能性が大きく、予測符号化による圧縮率を低下させるおそれがある。
【００６７】
図１０−２は、本実施形態の方法を用いた場合の例を示す。先ず、上述のステップＳ６２において、式（１）に従い縮小後のソース画像３２０の水平幅ＨSを求める。描画用画像、すなわちソース画像３２０を拡大後の画像のサイズが１６画素×１６画素なので、式（１）は、下記のようになる。
ＨS＝１６×１／２＝８（画素）
【００６８】
さらに、式（２）に従い、縮小後のソース画像３２１の水平幅ＨSから水平縮小率を算出する。ソース画像３２０の水平幅が１０画素なので、式（２）は、下記のようになる。
水平縮小率＝８／１０＝０．８
【００６９】
次に、上述のステップＳ６３に従い、求められた水平縮小率でソース画像３２０を縮小する。例えば、ソース画像３２０の画素を水平縮小率に応じて列および行のそれぞれで間引くことで、ソース画像の縮小を行い、縮小後のソース画像３２１を生成する。縮小後のソース画像３２１を、上述のステップＳ６４に従い、ニアレストネイバー法を用いて２倍に拡大して、１６画素×１６画素からなる描画用画像３２３を生成する。この場合、描画用画像３２３は、縮小後のソース画像３２１の全ての列および行が１ずつ複製され、元の列および行に対して連続して挿入された画像となる。この場合、ソース画像３２０が自然画像であっても、少なくとも隣接する２画素毎に画素値が互いに等しくなり、予測符号化により高い圧縮率を得ることができる。
【００７０】
図１１−１および図１１−２は、ソース画像を縮小、すなわち１倍以下の拡大倍率で拡大する場合の例であり、この例では１０画素×１０画素からなるソース画像を０．８倍に縮小し、８画素×８画素の描画用画像を得ている。
【００７１】
図１１−１は、本実施形態の方法を用いない場合の例を示す。この場合、例えばソース画像３３０の１０列および１０行の画素のうち任意の２列および２行を間引くことで、８画素×８画素の描画用画像３３１を得ることができる。この方法によれば、描画用画像３３１の列および行の画素値が全て異なる可能性があり、予測符号化による圧縮率を低下させるおそれが大きい。
【００７２】
図１１−２は、本実施形態の方法を用いた場合の例を示す。先ず、上述のステップＳ６２において、式（１）に従い縮小後のソース画像の水平幅ＨSを求める。描画用画像、すなわちソース画像３４０を拡大（縮小）後の画像のサイズが８画素×８画素なので、式（１）は、下記のようになる。
ＨS＝８×１／２＝４（画素）
【００７３】
さらに、式（２）に従い、縮小後のソース画像の水平幅ＨSから水平縮小率を算出する。ソース画像の水平幅が１０画素なので、式（２）は、下記のようになる。
水平縮小率＝４／１０＝０．４
【００７４】
次に、上述のステップＳ６３に従い、求められた水平縮小率でソース画像を縮小する。例えば、ソース画像の画素を水平縮小率に応じて列および行のそれぞれで間引くことで、ソース画像の縮小を行い、縮小後のソース画像３４１を生成する。縮小後のソース画像３４１を、上述のステップＳ６４に従い、ニアレストネイバー法を用いて２倍に拡大して、８画素×８画素からなる描画用画像３４２を生成する。この場合、描画用画像３４３は、縮小後のソース画像３４１の全ての列および行が１ずつ複製され、元の列および行に対して連続して挿入された画像となる。
【００７５】
この例でも、図１０−２を用いて説明した２倍以下、１倍以上の拡大倍率の場合と同様に、描画用画像３４２において少なくとも隣接する２画素毎に画素値が互いに等しくなり、予測符号化により高い圧縮率を得ることができる。
【００７６】
ここで、グラフィクス画像の描画の解像度が１２００ｄｐｉ、自然画像の描画の解像度が６００ｄｐｉと互いに異なるため、１の画像データに合成した際に、グラフィクス画像と自然画像との間に隙間が生じてしまうおそれがある。例えば解像度が、６００ｄｐｉで描画された自然画像のバッファにおける座標を、解像度が１２００ｄｐｉで描画されたグラフィクス画像のバッファにおける座標に対応させた場合について考える。この場合、自然画像の座標は、グラフィクス画像の座標に対して２画素単位の設定となり、画像の形状によっては、これらの画像の間に隙間が生じてしまう可能性がある。
【００７７】
そこで、本実施形態においては、ソース画像を本実施形態の方法により拡大または縮小して得られた描画用画像は、多値ＣＭＹＫバンドデータ格納領域１２０に対して、ソース画像よりも高解像度であるグラフィクス画像の解像度に従ったアドレスで書き込まれる。
【００７８】
一例として、図１２に例示されるように、例えば６００ｄｐｉの解像度を持つソース画像３５２をニアレストネイバー法により２倍以上の拡大倍率で拡大して描画用画像３５１を生成する場合を考える。この場合、生成された描画用画像３５１は、多値ＣＭＹＫバンドデータ格納領域１２０に対し、グラフィクス画像の描画解像度である１２００ｄｐｉで描画位置が指定されて書き込まれる。このように描画用画像の描画位置を指定することで、グラフィクス画像と自然画像とが隣接または重なる場合であっても、グラフィクス画像と自然画像との間に隙間が生じることがない。
【００７９】
上述したような本実施形態による描画処理は、例えば、ＣＰＵ１１０上で実現される機能の一つである描画処理機能により実行される。図１３は、この描画処理機能を実行するための描画処理部７００の一例の構成を示す機能ブロック図である。描画処理部７００は、縮小処理部７０１、拡大処理部７０２および描画部７０３を有する。これら描画処理部７００を構成する各部は、ＲＯＭ１１７や、メインメモリ１０３のプログラム格納領域１２２に格納されたプログラムがＣＰＵ１１０上で実行されることで実現される。
【００８０】
縮小処理部７０１は、上述したように、指定された拡大倍率に応じてソース画像を縮小し、縮小ソース画像を生成する。拡大処理部７０２は、上述したように、指定された拡大倍率に応じてソース画像または縮小ソース画像を拡大して描画用画像を生成する。描画部７０３は、生成された描画用画像を多値ＣＭＹＫバンドデータ格納領域１２０に対して描画する。
【００８１】
＜符号化処理の概略＞
次に、上述したステップＳ５の予測符号化処理について、より詳細に説明する。図１４は、本実施形態による符号化部１３２の一例の構成を示す。符号化部１３２において、メインメモリ１０３の多値ＣＭＹＫバンドデータ格納領域１２０から、画像読み込み部４００によりＣＭＹＫ各版毎の多値ＣＭＹＫバンドデータが読み出される。このとき、ＣＭＹＫ各版毎の多値ＣＭＹＫバンドデータは、図１５に例示されるように、画像読み込み部４００によりスキャンライン毎に順次、画素単位で多値ＣＭＹＫバンドデータ格納領域１２０から読み出される。
【００８２】
ラインメモリ制御部４０１は、画像読み込み部４００により画素単位で読み出された多値ＣＭＹＫバンドデータは、ラインメモリ制御部４０１によりラインメモリ４０２に格納される。ラインメモリ４０２は、少なくとも２ライン分の多値ＣＭＹＫバンドデータを格納可能とされており、今回供給されたデータを格納すると共に、直前に格納した１ライン分のデータを保持するように、ラインメモリ制御部４０１に制御される。
【００８３】
例えば、ラインメモリ４０２は、それぞれ１ライン分の画素を格納可能な第１および第２の領域を有し、１ライン分の画素データの符号化が終了すると、この符号化が終了した領域の画素データを保持し、他方の領域に次のラインの画素データを書き込むように制御される。
【００８４】
ラインメモリ制御部４０１の制御により、ラインメモリ４０２から、符号化対象の画素（以下、注目画素と呼ぶ）の画素データと、注目画素の周辺３画素の画素データが読み出され、予測処理部４０３に渡される。ここでラインメモリ４０２から読み出される周辺３画素は、注目画素に近接する、既に符号化が終了した画素である。より具体的には、図１６に例示されるように、注目画素のスキャン順で直前の画素ａと、当該注目画素が属する現ラインに対してスキャン順で直前の前ライン、すなわち当該注目画素が属するラインの直上のラインにおいて当該注目画素の直上に位置する画素ｂおよび画素ｂのスキャン順で直前の画素ｃである。
【００８５】
なお、以下では、符号化対象である注目画素が属するラインを現ライン、現ラインに対してスキャン順で直前のラインを前ラインと呼ぶ。
【００８６】
予測処理部４０３は、ラインメモリ制御部４０１から渡された画素ａ、画素ｂおよび画素ｃに基づき注目画素の画素値を予測する。本実施形態では、予測処理部４０３において、後述する平面予測方式、ＬＯＣＯ−Ｉ(LOw COmplexity LOssless COmpression for Images)方式またはＰａｅｔｈ方式を用いて注目画素の画素値を予測する。平面予測方式は、極めて簡易な方法により注目画素の画素値を予測することができる。一方、ＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式は、平面予測方式と比較して、より高い精度で予測値を求めることが可能である。注目画素の画素値と、予測処理部４０３で当該注目画素の画素値を予測した予測値とが予測誤差処理部４０４に渡される。
【００８７】
なお、注目画素がラインのスキャン順で先頭画素である場合、ならびに、現ラインがスキャン順で先頭のラインである場合は、平面予測値が０であるものとする。
【００８８】
予測誤差処理部４０４は、注目画素の画素値と、予測処理部４０３で求められた平面予測値との差分である予測誤差値を算出する。ランレングス処理部４０５は、予測誤差処理部４０４で算出された予測誤差値が「０」である場合に、ランレングス値を１だけ増加させる。一方、予測誤差値が「０」ではない場合は、予測誤差値とランレングス値と注目画素の画素値とを符号フォーマット生成処理部４０６に渡し、その後、ランレングス値をリセットする。
【００８９】
符号フォーマット生成処理部４０６は、ランレングス生成処理部４０５から渡されたランレングス値と、予測誤差値とをそれぞれ後述する符号フォーマットに従い符号化する。また、詳細を後述するように、予測誤差値が差分符号で表現可能な範囲外であれば、注目画素の画素値そのものを符号として用いる。符号フォーマット生成処理部４０６で生成された符号は、符号書き込み部４０７に渡され、メインメモリ１０３のページ符号格納領域１２１に書き込まれる。
【００９０】
＜予測処理の例＞
ここで、予測処理部４０３で用いられる予測方式について説明する。上述したように、本実施形態では、符号化済みの画素ａ、ｂおよびｃの画素値から注目画素の画素値を予測する予測処理に、平面予測方式、ＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式を用いる。
【００９１】
先ず、平面予測方式について説明する。平面予測方式は、図１７に例示されるように、現ラインにおける、注目画素の直前に符号化された画素ａと、前ラインにおいて注目画素および画素ａそれぞれの直上に隣接する画素ｂおよびｃとを用いて、下記の式（３）の計算を行い、注目画素に対する予測値を求める。
予測値＝ａ＋ｂ−ｃ    …（３）
【００９２】
次に、ＬＯＣＯ−Ｉ方式について説明する。ＬＯＣＯ−Ｉ方式は、画素ｃの画素値と画素ａおよび画素ｂの画素値とを比較した結果に応じて、予測値の算出方法を切り替える。図１８は、ＬＯＣＯ−Ｉ方式による予測処理の例を示すフローチャートである。最初のステップＳ３０で、画素ｃの画素値が画素ａの画素値以上であって、且つ、画素ｃの画素値が画素ｂの画素値以上であるか否かが判定される。若し、画素ｃの画素値がこの条件を満たしていると判定されたら、処理はステップＳ３１に移行され、画素ａの画素値と画素ｂの画素値とが比較され、値が小さい方の画素値が予測値とされる。
【００９３】
一方、ステップＳ３０で、画素ｃの画素値が上述の条件を満たしていない、すなわち、画素ｃの画素値が画素ａの画素値未満であるか、または、画素ｃの画素値が画素ｂの画素値未満であると判定されたら、処理はステップＳ３２に移行される。ステップＳ３２では、画素ｃの画素値が画素ａの画素値以下であって、且つ、画素ｃの画素値が画素ｂの画素値以下であるか否かが判定される。若し、画素ｃの画素値がこの条件を満たしていると判定されたら、処理はステップＳ３３に移行され、画素ａの画素値と画素ｂの画素値とが比較され、値が大きい方の画素値が予測値とされる。
【００９４】
一方、ステップＳ３２で、画素ｃの画素値が上述の条件を満たしていない、すなわち、画素ｃの画素値が画素ａの画素値を超えるか、または、画素ｃの画素値が画素ｂの画素値を超えると判定されたら、処理はステップＳ３４に移行される。これは、換言すれば、画素ａおよび画素ｂのうち何れか一方の画素値が画素ｃの画素値を超え、他方の画素値が画素ｃの画素値未満であることを意味する。ステップＳ３４では、画素ａ、ｂおよびｃの画素値について上述した式（３）の演算を行い、得られた値を予測値とする。
【００９５】
次に、Ｐａｅｔｈ方式について説明する。図１９は、Ｐａｅｔｈ方式による予測処理の例を示すフローチャートである。Ｐａｅｔｈ方式は、各画素ａ、ｂおよびｃの単純な線形関数を計算し、各画素ａ、ｂおよびｃのうち計算された値に最も近い値を予測値として選択する。より具体的には、上述の式（３）で値ｐを求め、求めた値ｐと、各画素ａ、ｂおよびｃそれぞれの画素値との差分絶対値ｐａ、ｐｂおよびｐｃを算出する。算出されたこれら差分絶対値ｐａ、ｐｂおよびｐｃの大小関係に基づき、各画素ａ、ｂおよびｃから予測値を選択する。
【００９６】
最初のステップＳ４０で、上述の式（３）により、画素ａ、ｂおよびｃの画素値から値ｐが計算される。そして、次のステップＳ４１、ステップＳ４２およびステップＳ４３で、値ｐと各画素画素ａ、ｂおよびｃそれぞれの画素値との差分絶対値ｐａ、ｐｂおよびｐｃが求められる。
【００９７】
なお、図１９において、演算子ａｂｓは、括弧内の値の絶対値を求めることを示す。また、以下では、煩雑さを避けるために、差分絶対値ｐａ、ｐｂおよびｐｃをそれぞれ値ｐａ、ｐｂおよびｐｃと呼ぶ。
【００９８】
ステップＳ４３までの処理により値ｐａ、ｐｂおよびｐｃが求められると、処理はステップＳ４４に移行される。ステップＳ４４では、値ｐａと値ｐｂおよび値ｐｃとが比較され、値ｐａが値ｐｂ以下であって、且つ、値ｐａが値ｐｃ以下であるか否かが判定される。若し、値ｐａがこの条件を満たしていると判定されたら、処理はステップＳ４５に移行され、画素ａの画素値が予測値とされる。
【００９９】
一方、ステップＳ４４で、値ｐａが値ｐｂ以下であって、且つ、値ｐａが値ｐｃ以下ではない、すなわち、値ｐａが値ｐｂを超えるか、または、値ｐａが値ｐｃを超えると判定されたら、処理はステップＳ４６に移行される。ステップＳ４６では、値ｐｂと値ｐａおよび値ｐｃとが比較され、値ｐｂが値ｐａ以下であって、且つ、値ｐｂが値ｐｃ以下であるか否かが判定される。若し、値ｐｂがこの条件を満たしていると判定されたら、処理はステップＳ４７に移行され、画素ｂの画素値が予測値とされる。
【０１００】
一方、ステップＳ４６で値ｐｂが値ｐａ以下であって、且つ、値ｐｂが値ｐｃ以下ではない、すなわち、値ｐｂが値ｐａを超えるか、または、値ｐｂが値ｐｃを超えると判定されたら、処理はステップＳ４８に移行され、画素ｃの画素値が予測値とされる。
【０１０１】
ここで、図２０〜図２２を用いて、上述した本実施形態に適用可能な予測方式の特性について考察する。図２０−１および図２０−２は、平面予測方式による予測例を具体的な数値を用いて示す。図２０−１は、水平方向に相関が高い画像の例を示す。図２０−１の例では、水平方向に並ぶ画素ｂおよび画素ｃの画素値がそれぞれ「１００」であり、画素ａおよび注目画素の画素値がそれぞれ「２０」となっている。平面予測方式によれば、上述した式(３)により、注目画素の画素値の予測値＝ａ＋ｂ−ｃ＝２０＋１００−１００＝２０となる。予測値が注目画素の画素値と一致し、注目画素の画素値に対する予測誤差が「０」となる。
【０１０２】
図２０−２は、垂直方向に相関が高い画像の例を示す。図２０−２の例では、垂直方向に並ぶ画素ａおよび画素ｃの画素値がそれぞれ「８０」であり、画素ｂおよび注目画素ＧDATAの画素値がそれぞれ「３０」となっている。平面予測方式によれば、上述した式(３)により、注目画素の予測値＝８０＋３０−８０＝３０となる。予測値が注目画素の画素値と一致し、この場合でも、注目画素の画素値に対する予測誤差が「０」となる。
【０１０３】
図２１−１および図２１−２は、ＬＯＣＯ−Ｉ方式による予測例を具体的な数値を用いて示す。画素ａ、ｂおよびｃ、ならびに、注目画素の画素値は、それぞれ、上述の図２０−１および図２０−２と同一としてある。図２１−１の水平方向に相関が高い例の場合、上述の図１８のフローチャートを参照し、画素値が画素ｃと画素ｂとで等しく、画素ｃと画素ａとでは画素ｃの画素値の方が大きいので、ステップＳ３０の判定により処理がステップＳ３１に移行される。画素ａと画素ｂとでは画素ａの方が画素値が小さいので、予測値が画素ａの画素値である「２０」とされる。注目画素の画素値は「２０」であるので、予測誤差が「０」となる。なお、図中、演算子ｍｉｎは、括弧内に併記される値のうち小さい方を選択することを示す。
【０１０４】
図２１−２の垂直方向に相関が高い画像の例の場合、上述の図１８のフローチャートを参照し、画素値が画素ａと画素ｃとで等しく、画素ｃと画素ｂとでは画素ｃの画素値の方が大きいので、ステップＳ３０の判定により処理がステップＳ３１に移行される。画素ａと画素ｂとでは画素ｂの画素値の方が小さいので、予測値が画素ｂの画素値である「３０」とされる。注目画素の画素値は「３０」であるので、予測誤差が「０」となる。
【０１０５】
図２２−１および図２２−２は、Ｐａｅｔｈ方式を用いて予測を行う例である。画素ａ、ｂおよびｃ、ならびに、注目画素の画素値は、それぞれ、上述の図２０−１および図２０−２と同一としてある。
【０１０６】
図２２−１の水平方向に相関が高い画像の例の場合、上述の図１９のフローチャートを参照し、画素ａの画素値が「２０」、画素ｃおよび画素ｂの画素値がそれぞれ「１００」となっているので、ステップＳ４０で画素ａ、ｂおよびｃの画素値から値ｐを算出すると、値ｐ＝２０＋１００−１００＝２０となる。この値ｐを用いてステップＳ４１〜ステップＳ４３で値ｐａ、ｐｂおよびｐｃを求めると、値ｐａ＝０、値ｐｂ＝８０、値ｐｃ＝８０となる。値ｐａは、値ｐｂおよび値ｐｃ以下であるので、ステップＳ４４の判定により値ａ＝２０が予測値とされる。注目画素の画素値は「２０」であるので、予測誤差が「０」となる。
【０１０７】
図２２−２の垂直方向に相関が高い画像の例の場合、上述の図１９のフローチャートを参照し、画素ａおよび画素ｃの画素値がそれぞれ「８０」、画素ｂの画素値が「３０」となっているので、ステップＳ４０で画素ａ、ｂおよびｃの画素値から値ｐを算出すると、値ｐ＝８０＋３０−８０＝３０となる。この値ｐを用いてステップＳ４１〜ステップＳ４３で値ｐａ、ｐｂおよびｐｃを求めると、値ｐａ＝５０、値ｐｂ＝０、値ｐｃ＝５０となる。値ｐａは、値ｐｂより大きいので、ステップＳ４４の判定により処理がステップＳ４６に移行される。値ｐｂは、値ｐａおよび値ｐｃより小さいので、ステップＳ４６の判定により値ｂ＝３０が予測値とされる。注目画素の画素値は「３０」であるので、予測誤差が「０」となる。
【０１０８】
このように、平面予測方式、ＬＯＣＯ−Ｉ方式およびＰａｅｔｈ方式は、何れも、画像中の縦方向または横方向の相関が高い場合に、予測誤差が「０」となることが分かる。
【０１０９】
＜符号フォーマット＞
次に、図２３および図２４を用いて、符号フォーマット生成処理部４０６で生成される符号の一例のフォーマットについて説明する。本実施形態においては、予測誤差値とランレングス値とをそれぞれ符号化する。そして、図２４に例示されるように、符号化された予測誤差値（予測誤差符号と呼ぶ）の後ろに符号化されたランレングス値（ランレングス符号と呼ぶ）を接続し、予測誤差符号およびランレングス符号の組を単位として符号列を生成する。
【０１１０】
図２３−１は、予測誤差符号の一例の符号フォーマットを示す。本実施形態では、予測誤差値は、値が大きいほど頻度が低くなるものとしてハフマン符号化される。このとき、予測誤差値を、段階的に設定された範囲に対してグループ分けし、グループ毎に異なる符号長が割り当てられるように符号化を行う。グループの識別は、生成されたハフマン符号の先頭から、グループ数に応じたビット数分の符号を用いて行う。本実施形態では、予測誤差値を、３ビットをグループの識別用に用いる４のグループと、グループ識別用として１ビットを用い、画素値をそのまま符号として用いる１のグループとの５グループに分類している。
【０１１１】
以下では、グループの識別に用いるビットをグループ識別ビットと呼び、このグループ識別ビットに付加されるビットを付加ビットと呼ぶ。３ビットを用いたグループ識別ビットと付加ビットとで、予測誤差値毎にユニークなハフマン符号が構成される。
【０１１２】
本実施形態では、予測誤差値Ｐｅに対して例えば次のように範囲を設定し、予測誤差値Ｐｅをグループ＃０〜グループ＃７の８グループに分類する。
グループ＃０（符号長４ビット）：Ｐｅ＝１，Ｐｅ＝−１
グループ＃１（符号長６ビット）：−５≦Ｐｅ≦−２，２≦Ｐｅ≦５
グループ＃２（符号長７ビット）：−１３≦Ｐｅ≦−６，６≦Ｐｅ≦１３
グループ＃３（符号長８ビット）：−２９≦Ｐｅ≦−１４，１４≦Ｐｅ≦２９
グループ＃４（符号長９ビット）：Ｐｅ≦−３０，３０≦Ｐｅ
【０１１３】
また、各グループのグループ識別ビットと、付加ビットのビット長とを、例えば下記のように設定する。
グループ＃０：グループ識別ビット＝「０００」，付加ビット長＝１ビット
グループ＃１：グループ識別ビット＝「００１」，付加ビット長＝３ビット
グループ＃２：グループ識別ビット＝「０１０」，付加ビット長＝４ビット
グループ＃３：グループ識別ビット＝「０１１」，付加ビット長＝５ビット
グループ＃４：グループ識別ビット＝「１」，付加ビット長＝８ビット
【０１１４】
以上により、各グループの符号長は、下記のようになる。
グループ＃０：符号長＝４ビット
グループ＃１：符号長＝６ビット
グループ＃２：符号長＝７ビット
グループ＃３：符号長＝８ビット
グループ＃４：符号長＝９ビット
【０１１５】
ここで、グループ＃４の、注目画素の予測誤差値が「−２９」より小さいか、若しくは、「２９」より大きい場合は、ハフマン符号を用いずに、当該注目画素の画素値をそのまま付加ビットとして用いる。これは、予測誤差値の符号長が８ビットよりも大きくなり圧縮率が低下してしまうことを防止するためである。このグループ＃４による、グループ識別ビットと画素値をそのまま用いた付加ビットとからなる符号を、ＰＡＳＳ符号と呼ぶ。ＰＡＳＳ符号は、予測誤差符号と同様に、ランレングス符号の前に接続される。
【０１１６】
図２３−２は、ランレングス符号の一例の符号フォーマットを示す。本実施形態では、ランレングス値は、値が小さいほど短い符号長が割り当てられるようにハフマン符号化され、ランレングス値が「１」の場合には、１ビットの符号長が割り当てられ、符号「０」に符号化される。ランレングス値が「２」の場合には、２ビットの符号長が割り当てられ、符号「１０」に符号化される。また、ランレングス値が「３」または「４」の場合は、４ビットの符号長が割り当てられ、それぞれ符号「１１００」または「１１０１」に符号化される。
【０１１７】
ランレングス値が「５」以上の場合、４ビットの符号長を持つ符号「１１１１」の後ろに所定符号長の数値部を接続した形式に符号化される。数値部は、図２３−２の下段に示されるように、例えば先頭に１ビットのヘッダを含む４ビットの符号長を有する、最大で４フレームからなる。すなわち、ランレングス値は、最大で１６ビットの符号長を有する。ランレングス値を示す符号が３ビット毎に区切られ、各フレームのヘッダを除く３ビットに対し、上述の符号「１１１１」側がＭＳＢとなるように詰め込まれる。図２３−２の例では、フレームの最大数が４個とされているので、ランレングス値が「５１６」まで表現可能とされている。ランレングス値が「５」の場合は、フレームを省略することができる。
【０１１８】
なお、ヘッダは、あるフレームに次のフレームが続くか否かを示す。例えば、ヘッダの値が「０」で次のフレームがあることを示し、ヘッダの値が「１」でそのフレームで終了することを示す。
【０１１９】
図２３−３は、ラインの先頭であることを示すラインヘッダ符号の例を示す。この例では、ラインヘッダ符号は、符号「１１１０」に固定的とされ、予測誤差符号の前に配置される。
【０１２０】
＜符号化処理の詳細＞
図２５は、本実施形態において符号化部１３２で行われる一例の符号化処理を示すフローチャートである。なお、この図２５のフローチャートの処理に先んじて、ランレングス値が予め「１」にリセットされているものとする。
【０１２１】
ステップＳ１００で、画像読み込み部４００は、メインメモリ１０３の多値ＣＭＹＫバンドデータ格納領域１２０から処理対象の１画素（注目画素ＧDATAとする）を読み出す。読み出された注目画素ＧDATAは、ラインメモリ制御部４０１の制御により、ラインメモリ４０２の現ラインを書き込む領域に書き込まれる（ステップＳ１０１）。なお、以下では、ラインメモリ４０２の現ラインを書き込む領域を現ライン領域、前ラインが書き込まれている領域を前ライン領域と呼ぶ。
【０１２２】
次のステップＳ１０２で、注目画素ＧDATAがラインの先頭の画素であるか否かが判定される。若し、ラインの先頭の画素であると判定されたら、処理はステップＳ１０３に移行されてラインヘッダ符号の符号化が行われラインヘッダ符号が出力される。そして、ステップＳ１０４で当該注目画素ＧDATAの画素値によりＰＡＳＳ符号の符号化が行われ、ＰＡＳＳ符号が出力される。ステップＳ１０４でＰＡＳＳ符号の符号化が行われると、処理がステップＳ１００に戻され次の画素が注目画素ＧDATAとされる。
【０１２３】
一方、ステップＳ１０２で注目画素ＧDATAがラインの先頭の画素ではないと判定されたら、処理はステップＳ１０５に移行される。ステップＳ１０５では、ラインメモリ４０２から注目画素ＧDATAの周辺３画素ａ、bおよびｃの画素データを読み出し、これら画素ａ、ｂおよびｃの画素値を用いて平面予測方式、ＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式などの予測方式により注目画素ＧDATAの画素値を予測する。そして、次のステップＳ１０６で、注目画素ＧDATAの画素値からステップＳ１０５で予測された予測値を減じて、注目画素ＧDATAに対する予測値の誤差(予測誤差値)を求める。
【０１２４】
ステップＳ１０６で予測誤差値が求められると、処理はステップＳ１０７に移行され、注目画素ＧDATAがラインの終端の画素であるか否かが判定される。若し、ラインの終端の画素ではないと判定されたら、処理はステップＳ１０８に移行される。ステップＳ１０８では、予測誤差値が「０」以外の値であるか、または、ランレングス値が図２３−２を用いて説明したランレングス符号の上限である値「５１６」を超えているか否かが判定される。
【０１２５】
ステップＳ１０８で、若し、ランレングス値が値「５１６」以下であり、且つ、予測誤差値が「０」であると判定されたら、処理はステップＳ１０９に移行され、ランレングス値に値「１」が加算される。そして、処理がステップＳ１００に戻され、次の画素が注目画素ＧDATAとされる。
【０１２６】
一方、ステップＳ１０８で、予測誤差値が「０」以外の値であるか、または、ランレングス値が値「５１６」を超えていると判定されたら、処理はステップＳ１１０に移行される。ステップＳ１１０では、ランレングス値が上述の図２３−２で示した符号化フォーマットに従い符号化されてランレングス符号が出力され、処理がステップＳ１１１に移行される。
【０１２７】
ステップＳ１１１では、予測誤差値の絶対値が「２９」を超えるか否かが判定される。若し、超えると判定されたら、処理がステップＳ１１２に移行され、上述の図２３−１で示した符号化フォーマットに従い注目画素ＧDATAの画素値をそのまま符号として用いるＰＡＳＳ符号の符号化を行い、ＰＡＳＳ符号を出力する。一方、ステップＳ１１１で予測誤差値の絶対値が「２９」以下であると判定されたら、処理はステップＳ１１３に移行され、上述の図２３−１で示した符号化フォーマットに従い注目画素ＧDATAに対する予測誤差値が符号化され、予測誤差符号が出力される。
【０１２８】
ステップＳ１１２またはステップＳ１１３での符号化処理が終了すると、処理はステップＳ１１４に移行され、ランレングス値が「０」にリセットされる。ランレングス値がリセットされると、処理はステップＳ１００に戻され、次の画素が注目画素ＧDATAとされる。
【０１２９】
上述のステップＳ１０７で、注目画素ＧDATAがラインの終端の画素であると判定されたら、処理はステップＳ１１５に移行される。ステップＳ１１５では、注目画素ＧDATAに対する予測誤差値が「０」以外の値であるか否かが判定される。
【０１３０】
若し、ステップＳ１１５で予測誤差値が「０」以外の値であると判定されたら、処理はステップＳ１１６に移行される。この場合、ステップＳ１１６においてランレングス値が符号化されランレングス符号が出力されると共に、次のステップＳ１１７で、注目画素ＧDATAの画素値がそのまま用いられてＰＡＳＳ符号の符号化が行われ、ＰＡＳＳ符号が出力される。さらに、次のステップＳ１１８でランレングス値が「１」にリセットされ、この値「１」のランレングス値がステップＳ１１９で符号化される。
【０１３１】
一方、ステップＳ１１５で予測誤差値が「０」であると判定されたら、処理はステップＳ１２０に移行される。ステップＳ１２０では、ランレングス値に「１」が加算される。そして、次のステップＳ１２１で、ランレングス値が上述の図２３−２で示した符号化フォーマットに従い符号化され、ランレングス符号が出力される。
【０１３２】
ステップＳ１１９またはステップＳ１２１でのランレングス値の符号化が終了したら、処理がステップＳ１２２に移行される。ステップＳ１２２では、ラインメモリ４０２における前ライン領域および現ライン領域が切り替えられる。すなわち、ラインメモリ制御部４０１は、ラインメモリ４０２における符号化済みのラインが格納されている前ライン領域を現ライン領域に切り替え、切り替えられた現ライン領域に対して次に符号化を行うラインの画素データが格納されるようにする。それと共に、ラインメモリ制御部４０１は、ラインメモリ４０２における現在の注目画素ＧDATAの属するラインが格納されている現ライン領域を、符号化済みの前ラインが格納される前ライン領域に切り替える。
【０１３３】
ステップＳ１２２でラインメモリ４０２の領域の切り替えが終了したら、処理はステップＳ１２３に移行され、画像の全画素に対する処理が終了したか否かが判定される。若し、全画素に対する処理が終了したと判定されたら、一連の符号化処理が終了される。
【０１３４】
一方、ステップＳ１２３で全画素に対する処理が終了していないと判定されたら、処理はステップＳ１１４に戻され、ランレングス値が「１」にリセットされて処理がステップＳ１００に戻され、次の画素を注目画素ＧDATAとして処理が行われる。
【０１３５】
＜符号化の具体例＞
次に、上述した図２５のフローに従いなされる符号化の例を、図２６および図２７を用いてより具体的に説明する。予測符号化方式としては、ＬＯＣＯ−Ｉ方式を用いるものとする。また、前ラインおよび現ラインにおいて、番号＃０の画素が先頭の画素、番号＃１５の画素が終端の画素であるものとする。また、図２６および図２７において、各升内の数値は画素値を示す。なお、以下では、「番号＃ｎの画素」を「画素＃ｎ」と呼ぶ。
【０１３６】
図２５のフローチャートおよび図２６を参照しながら、本実施形態によるグラフィクス画像の符号化処理について、より具体的に説明する。図２６−１は、グラフィクス画像を符号化した場合の各値の具体的な例を示す。なお、図２６−１において、予測値、画素値および予測誤差値は、画素に対応して示されている。また、画素符号（ＰＡＳＳ符号、予測誤差符号）およびランレングス符号は、出力順に並べられている。グラフィクス画像は、一般的には所定の規則に従い生成されるため、同一の画素値を有する画素が連続的に並ぶ場合が多いことが期待される。
【０１３７】
現ラインの先頭画素である番号＃０の画素が注目画素ＧDATAである場合、ステップＳ１０２の判定によりラインヘッダが符号化される（ステップＳ１０３）と共に、画素＃０の画素値がそのまま用いられてＰＡＳＳ符号化が行われ、ＰＡＳＳ符号が出力される（ステップＳ１０４）。そして、注目画素ＧDATAが現ラインにおける画素＃１に移る。
【０１３８】
現ラインの画素＃１は、図１８を用いて説明したＬＯＣＯ−Ｉ方式による予測で予測値が「３０」とされ、当該画素＃１の画素値と一致して予測誤差値が「０」となり、ステップＳ１０８の判定により、ステップＳ１０９でランレングス値が１だけ加算されて「２」となる。そして、注目画素ＧDATAが現ラインにおける画素＃２に移る。
【０１３９】
現ラインの画素＃２は、予測値が「３０」とされ、当該画素＃２の画素値に対する予測誤差値が「−５」となり、ステップＳ１０８の判定により、ステップＳ１１０でランレングス値「２」が符号化され、ランレングス符号が出力される。さらに、予測誤差値の絶対値が「２９」以下なので、ステップＳ１１１の判定により、ステップＳ１１３で予測誤差値が符号化され、予測誤差符号が出力される。その後、ステップＳ１１４でランレングス値が「１」にリセットされ、現ラインの画素＃３が注目画素ＧDATAとされる。
【０１４０】
現ラインの画素＃３は、予測値が「２５」とされ、当該画素＃３の画素値と一致して予測誤差値が「０」となり、ステップＳ１０８の判定により、ステップＳ１０９でランレングス値が１だけ加算されて「２」となる。そして、注目画素ＧDATAが現ラインにおける画素＃４に移る。
【０１４１】
現ラインにおける画素＃４から画素＃１２までの画素は、前ラインと現ラインとで垂直方向の相関が高い。したがって、図２１−２を用いて説明したように、ＬＯＣＯ−Ｉ方式による予測値と注目画素ＧDATAの画素値とが一致し、それぞれ予測誤差値が「０」となる。その結果、現ラインにおける画素＃４から画素＃１２までの各画素の処理においてランレングス値が「１」ずつ加算される。
【０１４２】
現ラインにおける画素＃１３は、予測値が「３０」とされ、当該画素＃１３の画素値「９０」に対する予測誤差値が「６０」となり、ステップＳ１０８の判定により、ステップＳ１１０でランレングス値が符号化され、ランレングス符号が出力される。この場合、現ラインにおける画素＃３から画素＃１２までの処理で順次加算されて得られたランレングス値「１０」が符号化され出力されることになる。
【０１４３】
さらに、現ラインにおける画素＃１３の予測誤差値は「６０」であるため、ステップＳ１１１で絶対値が「２９」を超えると判定され、画素＃１３の画素値がそのまま用いられてＰＡＳＳ符号化が行われ、ＰＡＳＳ符号が出力される（ステップＳ１１２）。そして、ランレングス値が「１」にリセットされて、注目画素ＧDATAが現ラインにおける画素＃１４に移る。
【０１４４】
現ラインの画素＃１４は、予測値が「９０」とされ、当該画素＃１４の画素値と一致して予測誤差値が「０」となり、ステップＳ１０８の判定により、ステップＳ１０９でランレングス値が１だけ加算されて「２」となる。そして、注目画素ＧDATAが現ラインにおける画素＃１５に移る。
【０１４５】
現ラインにおける画素＃１５は、現ラインの終端の画素であるため、ステップＳ１０７の判定により処理がステップＳ１１５に移行される。当該画素＃１５は、予測値が「９０」とされ、当該画素＃１５の画素値と一致して予測誤差値が「０」となる。そのため、ステップＳ１１５の判定によりステップＳ１２０でランレングス値に「１」が加算されて「３」となり、ステップＳ１２１でランレングス値「３」が符号化されてランレングス符号が出力され、次のラインに処理が移る。
【０１４６】
図２６−２は、上述の処理の結果で生成される符号列の例を示す。符号列は、ラインヘッダ、値「３０」を示すＰＡＳＳ符号、ランレングス値「２」を示すランレングス符号、値「−５」を示す予測誤差符号、ランレングス値「１０」を示すランレングス符号、値「９０」を示すＰＡＳＳ符号、ランレングス値「３」を示すランレングス符号が順に並べられて形成される。
【０１４７】
図２５のフローチャートおよび図２７を参照しながら、本実施形態による自然画像の符号化処理について、より具体的に説明する。自然画像は、グラフィクス画像のように所定の規則に従い生成されるものではないため、図２７−１に例示されるように、画素により区々な値を取る場合が多いと考えられる。隣接する画素同士での画素値の一致が全く無い場合には、予測処理による予測の的中が期待できないことになり、例えば全ての画素について予測誤差値が「０」以外の値となると共にランレングスが発生しなくなるおそれがある。この場合は、高い圧縮率が期待できない。さらに、上述した符号化フォーマットの場合、全ての画素値が値「３０」以上であると、全ての画素についてＰＡＳＳ符号を用いることになり、実質的に全く圧縮が行われないのと同等の結果になる場合も考えられる。
【０１４８】
上述したように、本実施形態では、自然画像によるソース画像から描画用画像を生成する際に、ニアレストネイバー法により、そのままの状態から２倍以上に、または、一旦所定の縮小率で縮小してから２倍に拡大している。これにより、生成された描画用画像は、垂直および水平方向に連続する２画素以上の画素値が一致する画素の組で構成されることになる。
【０１４９】
一例として、図２７−１に例示する画素構成の画像をニアレストネイバー法を用いて２倍に拡大すると、図２７−２に例示するように、拡大前の画像の全ての画素値に基づき２画素×２画素を単位として同一の画素値を持つ画像が生成される。図２０〜図２２を用いて説明したように、平面予測方式、ＬＯＣＯ−Ｉ方式およびＰａｅｔｈ方式においては、画素値の垂直方向または水平方向の相関が高い場合に、予測誤差値が「０」になる。したがって、図２７−２に例示する画素構成によれば、所定以上の圧縮率が保証される。
【０１５０】
図２７−２、図２７−３および図２７−４を用いてより具体的に説明する。なお、図２７−２に例示されるニアレストネイバー法を用いて拡大後の画像の、拡大の原点（この例では左上隅の画素）を含むラインをライン＃０とし、画像の下に向けてライン＃１、ライン＃２、…とライン番号を順次大きくする。また、図２７−３および図２７−４において、予測値、画素値および予測誤差値は、画素に対応して示されている。また、画素符号（ＰＡＳＳ符号、予測誤差符号）およびランレングス符号は、出力順に並べられている。
【０１５１】
図２７−３は、同一の画素値を持つ画素の単位を１対の前ラインと現ラインとが跨ぐ場合の例を示す。この例では、当該単位が２画素×２画素からなるので、前ラインが奇数番ライン、現ラインが偶数番ラインとなっている。この場合、それぞれの単位で水平方向の相関が高く、単位間で垂直方向の相関が低い。そのため、図２５のフローチャートにおけるステップＳ１０８の判定に基づき、注目画素ＧDATAが単位の先頭以外の画素であれば、予測誤差値が「０」となってランレングス値が「１」だけ増加される。
【０１５２】
また、注目画素ＧDATAが単位における現ラインの最初画素であれば、予測誤差値が「０」とならない。この場合、ステップＳ１１０〜ステップＳ１１３の処理に基づき、ランレングス値が符号化されランレングス符号が出力されると共に、ＰＡＳＳ符号化または予測誤差値の符号化が行われ、ＰＡＳＳ符号または予測誤差符号が出力される。すなわち、同一の画素値を持つ画素の単位が１対の前ラインと現ラインとを跨ぐ場合、当該単位それぞれにおける現ラインの最初の画素毎に予測誤差値が「０」とならず、予測誤差符号およびランレングス符号が出力される可能性がある。
【０１５３】
図２７−３の例では、現ラインの先頭画素＃０は図２５のフローチャートにおけるステップＳ１０２の判定によりＰＡＳＳ符号化されＰＡＳＳ符号が出力される。次の画素＃１は、ＬＯＣＯ−Ｉ方式による予測で予測値が「０」とされ、画素値が「０」であるので予測誤差値が「０」となり、ステップＳ１０８の判定によりランレングス値が「１」だけ増加され値「２」とされる。
【０１５４】
次の単位に属する画素＃２は、予測値が「０」とされ、画素値が「９０」であるので予測誤差値が「９０」となる。そのため、ステップＳ１１０でランレングス値が符号化されランレングス符号が出力されると共に、ステップＳ１１１の判定により画素＃２の画素値を用いてＰＡＳＳ符号化が行われＰＡＳＳ符号が出力される。次の画素＃３は、予測値が「９０」とされ、画素値が「９０」であるので予測誤差値が「０」となり、ステップＳ１０８の判定によりランレングス値が「１」だけ増加して値「２」とされる。以降、同一画素値を持つ画素による単位が切り替わる度に、ＰＡＳＳ符号または予測誤差符号の出力と、ランレングス符号の出力とが繰り返される。
【０１５５】
この場合、最も悪い条件においては、注目画素ＧDATAが単位の先頭画素である場合に発生する予測誤差値が全て値「３０」以上になり、ＰＡＳＳ符号とランレングス値「２」を示すランレングス符号とが繰り返し出力されることになる。したがって、この最も悪い条件における圧縮率は、略１／２となる。
【０１５６】
図２７−４は、同一の画素値を持つ画素の単位に１対の前ラインと現ラインとが含まれる場合の例を示す。この例では、前ラインが偶数番ライン、現ラインが奇数番ラインとなっている。この場合、それぞれの単位で水平および垂直方向の相関が共に高い。そのため、図２０〜図２２を用いて説明した各予測方式の特徴により、現ラインの先頭画素以外の全ての画素において予測誤差値が「０」となる。したがって、現ラインの先頭画素に対してＰＡＳＳ符号化を行いＰＡＳＳ符号を出力する（ステップＳ１０２〜ステップＳ１０４）。また、現ラインの終端画素において、１ライン分のランレングス値を符号化したランレングス符号が出力される（ステップＳ１０７、ステップＳ１１５、ステップＳ１２０およびステップＳ１２１）。発生する符号がラインヘッダ符号、１のＰＡＳＳ符号および１のランレングス符号のみとなるので、非常に高い圧縮率を得ることができる。
【０１５７】
ニアレストネイバー法を用いて２倍以上の拡大倍率で拡大された画像は、予測符号化において上述のような特徴を有し、同一の画素値を持つ画素の単位を１組の前ラインと現ラインとが跨ぐ場合に、少なくとも略１／２の圧縮率を得ることができる。一方、当該単位に１対の前ラインと現ラインとが含まれる場合には、非常に大きな圧縮率を得ることができる。したがって、対象画像全体においては、理想的には１／４の圧縮率を得ることができる。実際には、制御符号などが付加されるため、少なくとも１／３の圧縮率を得ることができる。
【０１５８】
このように、本実施形態では、最低圧縮率が保証されるので、自然画像が多く含まれる画像を印字する場合でも、バス２２０におけるデータ転送レートが所定値を超えることが無い。したがって、バス２２０の転送レートを必要以上に大きく取らなくても、プリンタエンジン１０４に同期したページ符号データの転送レートがバス２２０の転送レートを超えてしまうことが無い。
【０１５９】
また、最低圧縮率が保証されるために、メインメモリ１０３のデータ容量を小さくすることが可能である。さらに、１度の圧縮符号化処理のみで最低圧縮率が保証され、再度の圧縮符号化処理が不要なので、システムとして印字速度の低下が無い。
【０１６０】
なお、上述では、図８のステップＳ６２において、ソース画像を拡大倍率に従い拡大した後に１／２倍に縮小しているが、これはこの例に限定されない。すなわち、ｎを２以上の整数としたときに、ステップＳ６２において、ソース画像を１／ｎ倍で縮小してもよい。この場合には、ステップＳ６４において、縮小後ソース画像がニアレストネイバー法を用いてｎ倍に拡大されることになる。
【０１６１】
また、上述では、予測処理部４０３に適用される予測方式の例として、平面予測方式、ＬＯＣＯ−Ｉ方式およびＰａｅｔｈ方式を挙げたが、これはこの例に限定されない。すなわち、予測処理部４０３では、画像の垂直方向または水平方向に画素値が一致する場合に予測誤差値が「０」となる予測方式であれば、他の方式を適用することができる。
【０１６２】
さらに、上述では、拡大倍率が２倍未満の場合に図８におけるステップＳ６２〜ステップＳ６４の処理を行い、ソース画像を一旦縮小してからニアレストネイバー法により２倍に拡大しているが、これは、拡大倍率が２倍以上の場合にも適用可能である。但し、拡大倍率が２倍以上の場合には、ステップＳ６１の処理によりニアレストネイバー法による拡大処理がソース画像に対して直接的に行われるため、ソース画像を一旦縮小してからニアレストネイバー法により２倍に拡大する必然性が無い。
【０１６３】
さらにまた、上述では、注目画素の画素値と、注目画素の画素値に対する予測値とが一致する数を表すランレングス値を求め、このランレングス値を符号化するようにしているが、これはこの例に限られない。すなわち、ランレングス値を求めなくても、注目画素の画素値と、注目画素の画素値に対する予測値とが一致する場合に、少ないビット数でハフマン符号化を行うことにより、高い圧縮率を得ることが可能である。
【０１６４】
＜復号処理の概略＞
図２８は、本実施形態による復号部１３３の一例の構成を示す。符号読み込み部６００は、メインメモリ１０３の多値ＣＭＹＫページ符号格納領域１２１から符号データを読み出し、符号フォーマット解析部６０１に転送する。符号フォーマット解析部６０１は、転送された符号データをハフマン符号の規則に従い解釈して、ラインヘッダ符号、予測誤差符号またはＰＡＳＳ符号、ならびに、ランレングス符号を取り出す。
【０１６５】
符号フォーマット解析部６０１は、取り出したラインヘッダ符号に基づきライン先頭を判定する。また、符号フォーマット解析部６０１は、取り出した予測誤差符号に基づき予測誤差値を求め、ＰＡＳＳ符号に基づき画素値を求める。さらに、符号フォーマット解析部６０１は、取り出したランレングス符号に基づきランレングス値を求める。
【０１６６】
すなわち、符号フォーマット解析部６０１は、読み出した符号データが４ビットの「１１１０」であれば当該ビットがラインヘッダ符号であると判定する。ラインヘッダ符号に続くビットを順次読み込んで、予測誤差符号またはＰＡＳＳ符号の判定を行い、予測誤差値または画素値を求める。さらに、予測誤差符号またはＰＡＳＳ符号に続くビットを順次読み込んで、ランレングス符号の判定を行い、ランレングス値を求める。さらにまた、ランレングス符号に続くビットを順次読み込んで、予測誤差符号またはＰＡＳＳ符号を判定して予測誤差値または画素値を求める。この、予測誤差符号またはＰＡＳＳ符号、ならびに、ランレングス符号の判定および各値出力の処理を、次にラインヘッダ符号が読み込まれるまで繰り返し、ラインヘッダ符号が読み込まれると、次のラインに対して同様の処理を繰り返す。
【０１６７】
予測誤差処理部６０３において、予測処理部６２０は、ラインメモリ制御処理部６０４によりラインメモリ６０６から読み出された、復号対象の画素（注目画素）の周辺３画素の復号済みの画素ａ、ｂおよびｃ（図１６参照）の画素データに基づき、復号を行う注目画素の画素値を、符号化の際に用いた予測方式（本実施形態の例では平面予測方式、ＬＯＣＯ−Ｉ方式またはＰａｅｔｈ方式）により予測する。そして、予測誤差処理部６０３において、画素値生成処理部６２１は、符号フォーマット解析部６０１で求められた予測誤差値と、予測処理部６２０で予測された予測値とを加算して、注目画素の画素値を生成する。
【０１６８】
ランレングス処理部６０２において、予測処理部６１０は、ラインメモリ制御処理部６０４から供給される、注目画素の周辺３画素の復号済みの画素ａ、ｂおよびｃの画素値に基づき、上述の予測処理部６２０と同様にして注目画素の画素値を予測する。ランレングス処理制御部６１１の制御により、予測された画素値の画素が符号フォーマット解析部６０１で求められたランレングス値で示される数だけ出力される。
【０１６９】
なお、ラインメモリ６０６は、復号を行っているライン（現ラインと呼ぶ）と、直前に復号が終了した復号済みライン（前ラインと呼ぶ）との２ライン分の画素データを格納可能とされている。なお、以下では、ラインメモリ６０６の現ラインを書き込む領域を現ライン領域、前ラインを書き込む領域を前ライン領域と呼ぶ。ラインメモリ制御処理部６０４は、ラインメモリ６０６に対する画素の読み書きを制御する。例えば、ラインメモリ制御処理部６０４は、注目画素の周辺３画素ａ、ｂおよびｃをラインメモリ６０６から読み出して、上述の予測誤差処理部６０３およびランレングス処理部６０２にそれぞれ供給する。
【０１７０】
ランレングス処理部６０２および予測誤差処理部６０３で復号された画素は、ラインメモリ制御処理部６０４により画像出力部６０５に転送され、復号部１３３から出力される。復号部１３３の出力は、階調処理部１３４に転送される。
【０１７１】
＜復号処理の詳細＞
図２９は、復号部１３３で行われる、本実施形態の符号化処理により符号化された符号化データに対する一例の復号処理を示すフローチャートである。符号読み込み部６００によりメインメモリ１０３の多値ＣＭＹＫページ符号格納領域１２１から読み出された符号データが符号フォーマット解析部６０１に転送される。符号フォーマット解析部６０１は、転送された符号データがラインヘッダ符号であるか否かを判定する（ステップＳ２００）。若し、ラインヘッダ符号ではないと判定されたら、処理はステップＳ２０２に移行され、転送された符号データから予測誤差符号またはＰＡＳＳ符号を抽出して読み込み、次のステップＳ２０３で、当該予測誤差符号またはＰＡＳＳ符号に続けて配置されるランレングス符号を抽出する。
【０１７２】
一方、ステップＳ２００で、転送された符号データがラインヘッダ符号であると判定されたら、処理はステップＳ２０１に移行され、ラインメモリ６０６における前ライン領域および現ライン領域が切り替えられる。ラインメモリ６０６の切り替えが終了したら、処理は上述したステップＳ２０２に移行される。
【０１７３】
ステップＳ２０３でランレングス符号が抽出されたら、処理はステップＳ２０４に移行され、ステップＳ２０２で抽出された符号データがＰＡＳＳ符号であるか否かが判定される。若し、当該符号データの先頭の１ビットが「１」であれば、当該符号データがＰＡＳＳ符号であると判定される。この場合、ＰＡＳＳ符号から注目画素の画素値が取り出され、処理が後述するステップＳ２０７に移行される。
【０１７４】
一方、ステップＳ２０４で、ステップＳ２０２で抽出された符号データがＰＡＳＳ符号ではないと判定されたら、処理はステップＳ２０５に移行される。ステップＳ２０５では、注目画素の周辺３画素ａ、ｂおよびｃ（図１６参照）から、注目画素の画素値を予測する。例えば、予測誤差処理部６０３内の予測処理部６２０は、ラインメモリ制御処理部６０４を介してラインメモリ６０６から画素ａ、ｂおよびｃを読み出し、これら画素ａ、ｂおよびｃを用いて、符号化の際に用いた予測方式より注目画素の画素値を予測する。
【０１７５】
ステップＳ２０５で注目画素の画素値が予測されたら、処理はステップＳ２０６に移行される。この場合、上述したステップＳ２０４の判定により、ステップＳ２０２で読み込まれた符号データが予測誤差符号であることが分かる。ステップＳ２０６では、この予測誤差符号が予測誤差値に復号され、この予測誤差値とステップＳ２０５で予測された予測値とが加算されて、注目画素の画素値が生成される。
【０１７６】
次のステップＳ２０７では、注目画素の画素値がラインメモリ制御部６０４により、ラインメモリ６０６の現メモリ領域に書き込まれる。さらに、次のステップＳ２０８で、注目画素の画素値が画像出力部６０４に対して出力される。
【０１７７】
処理はステップＳ２０９に移行され、ステップＳ２０３で抽出されたランレングス符号がランレングス値に復号され、このランレングス値が「１」であるか否かが判定される。若し、ランレングス値が「１」であると判定されたら、処理は後述するステップＳ２１４に移行される。
【０１７８】
一方、ステップＳ２０９でランレングス値が「１」ではないと判定されたら、処理はステップＳ２１０に移行される。この場合、予測誤差値が「０」の画素、すなわち予測値が画素値と一致する画素がランレングス値に示される個数だけ連続的に並んでいることになる。ステップＳ２１０では、注目画素の周辺３画素ａ、ｂおよびｃ（図１６参照）から、符号化の際に用いた予測方式により注目画素の画素値を予測する。例えば、ランレングス処理部６０２内の予測処理部６１０は、ラインメモリ制御処理部６０４を介してラインメモリ６０６から画素ａ、ｂおよびｃを読み出し、これら画素ａ、ｂおよびｃを用いて平面予測により注目画素の画素値を予測する。
【０１７９】
ステップＳ２１０で注目画素の画素値が予測されると、処理はステップＳ２１１に移行され、予測された画素値を注目画素の画素値として、ラインメモリ制御処理部６０４によりラインメモリ６０６の現ライン領域に書き込む。ラインメモリ６０６に書き込まれたこの画素値は、次の予測処理時に画素ａの画素値として用いられることになる。さらに、次のステップＳ２１２で、注目画素の画素値が画像出力部６０５に対して出力される。
【０１８０】
次のステップＳ２１３で、ステップＳ２０９で求められたランレングス値が示す回数だけ、ステップＳ２１０〜ステップＳ２１２の処理が繰り返されたか否かが判定される。若し、ランレングス値が示す回数分の処理を未だ行っていないと判定されたら、処理はステップＳ２１０に戻され、予測値に基づく注目画素値の生成処理が行われる。
【０１８１】
一方、ステップＳ２１３で、ランレングス値が示す回数だけ処理が繰り返されたと判定されたら、処理はステップＳ２１４に移行され、画像内の全ての画素について処理が終了したか否かが判定される。若し、終了していないと判定されたら、処理はステップＳ２００に戻され、次の符号データが読み出される。一方、ステップＳ２１４で画像内の全ての画素について処理が終了したと判定されたら、一連の復号処理が終了される。
【０１８２】
上述では、グラフィクス画像の描画の解像度が１２００ｄｐｉ、自然画像のソース画像の描画の解像度が６００ｄｐｉであるとして説明したが、これはこの例に限定されない。例えば、グラフィクス画像を６００ｄｐｉ、自然画像を３００ｄｐｉで描画する場合や、グラフィクス画像を２４００ｄｐｉ、自然画像を１２００ｄｐｉで描画する場合であっても、本実施形態は適用可能である。また、上述では、ＣＭＹＫ描画とプレーン符号化方式を用いた例について説明したが、これはこの例に限定されず、例えばＲＧＢ描画とピクセル符号化方式を用いた場合であっても、本実施形態は適用可能である。
【０１８３】
＜他の実施形態＞
なお、上述では、本発明の実施形態による符号化部１３２や復号部１３３を構成する各部がハードウェア的に構成されるように説明したが、これはこの例に限定されない。すなわち、本発明に実施形態に適用な可能な画像処理装置における符号化部１３２や復号部１３３は、ＣＰＵ１１０や、画像処理装置に組み込まれた別のＣＰＵ（図示しない）上で動作するプログラムとして、それぞれ実現可能である。
【０１８４】
この場合、ＣＰＵ１１０または別のＣＰＵ上で符号化部１３２や復号部１３３として実行されるプログラムは、例えば図１４を用いて説明した符号化部１３２の場合、符号化部１３２の各機能部（画像読み込み部４００、ラインメモリ制御処理部４０１、予測処理部４０３、予測誤差処理部４０４、ランレングス生成処理部４０５、符号フォーマット生成処理部４０６および符号書き込み部４０７）を含むモジュール構成となっている。
【０１８５】
これらの符号化部１３２や復号部１３３を実現するためのプログラムや、ＣＰＵ１１０上で実行される描画処理部７００を実現するためのプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ(Compact Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。これに限らず、プログラムは、ＣＰＵ１１０に接続されるＲＯＭ１１７や、別のＣＰＵに接続されるＲＯＭ（図示しない）に予め記憶させておいてもよい。さらに、プログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【０１８６】
実際のハードウェアとしては、ＣＰＵ１１０または他のＣＰＵが、上述した記録媒体から、例えば描画処理部７００として機能するプログラム、あるいは、符号化部１３２や復号部１３３として機能するプログラムを読み出して実行することにより、上述した各部が主記憶装置（図示しない）上にロードされる。そして、例えば描画処理部７００として機能するプログラムの場合、描画処理部７００を構成する各部（縮小処理部７０１、拡大処理部７０２および描画部７０３）が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１８７】
１０１  制御ユニット
１０２  画像処理ユニット
１０３  メインメモリ
１１０  ＣＰＵ
１１２  メモリアービタ
１２０  多値ＣＭＹＫバンドデータ格納領域
１２１  多値ＣＭＹＫページ符号格納領域
１３２  符号化部
１３３  復号部
３０１  グラフィクス画像
３０２  自然画像
４０３  予測処理部
４０４  予測誤差処理部
４０５  ランレングス生成処理部
４０６  符号フォーマット生成処理部
６０１  符号フォーマット解析部
６０２  ランレングス処理部
６０３  予測誤差処理部
７００  描画処理部
７０１  縮小処理部
７０２  拡大処理部
７０３  描画部
【先行技術文献】
【特許文献】
【０１８８】
【特許文献１】特許第２８８１８６号公報
【特許文献２】特開平８−１７４９１９号公報
【特許文献３】特開２００１−１５７０６２号公報
【特許文献４】特開２００１−２４５１５９号公報
【図１】
2011040834.tif 000003
【図２】
2011040834.tif 000004
【図３】
2011040834.tif 000005
【図４】
2011040834.tif 000006
【図５】
2011040834.tif 000007
【図６】
2011040834.tif 000008
【図７】
2011040834.tif 000009
【図８】
2011040834.tif 000010
【図９】
2011040834.tif 000011
【図１０−１】
2011040834.tif 000012
【図１０−２】
2011040834.tif 000013
【図１１−１】
2011040834.tif 000014
【図１１−２】
2011040834.tif 000015
【図１２】
2011040834.tif 000016
【図１３】
2011040834.tif 000017
【図１４】
2011040834.tif 000018
【図１５】
2011040834.tif 000019
【図１６】
2011040834.tif 000020
【図１７】
2011040834.tif 000021
【図１８】
2011040834.tif 000022
【図１９】
2011040834.tif 000023
【図２０−１】
2011040834.tif 000024
【図２０−２】
2011040834.tif 000025
【図２１−１】
2011040834.tif 000026
【図２１−２】
2011040834.tif 000027
【図２２−１】
2011040834.tif 000028
【図２２−２】
2011040834.tif 000029
【図２３−１】
2011040834.tif 000030
【図２３−２】
2011040834.tif 000031
【図２３−３】
2011040834.tif 000032
【図２４】
2011040834.tif 000033
【図２５】
2011040834.tif 000034
【図２６−１】
2011040834.tif 000035
【図２６−２】
2011040834.tif 000036
【図２７−１】
2011040834.tif 000037
【図２７−２】
2011040834.tif 000038
【図２７−３】
2011040834.tif 000039
【図２７−４】
2011040834.tif 000040
【図２８】
2011040834.tif 000041
【図２９】
2011040834.tif 000042
【図３０】
2011040834.tif 000043