(57)【要約】【課題】画像データの圧縮符号化をより効率的に行う。【解決手段】注目画素の画素値を予測した予測値の、注目画素の画素値に対する誤差を算出すると共に、算出された誤差に応じて誤差が０である長さを示すランレングスを生成し、算出された誤差が０以外のときに、誤差とランレングスとをそれぞれ符号化して符号データを生成する。ランレングスは、算出された誤差が０のときに値を１ずつ増加させて生成すると共に、ランレングスと誤差とをそれぞれ符号化した後に、値を０として生成する。【選択図】図１２
2010219777.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データを圧縮符号化する画像処理装置であって、
注目画素の画素値を予測する予測手段と、
前記予測手段で前記注目画素の画素値を予測した予測値の、該注目画素の画素値に対する誤差を算出する予測誤差算出手段と、
前記予測誤差算出手段で算出された前記誤差に応じてランレングスを生成するランレングス生成手段と、
前記予測誤差算出手段で算出された前記誤差が０以外のときに、前記誤差と前記ランレングス生成手段で生成された前記ランレングスとをそれぞれ符号化して符号データを生成する符号化手段と
を有し、
前記ランレングス生成手段は、
前記予測誤差算出手段で算出された前記誤差が０のときに値を１ずつ増加させて前記ランレングスを生成し、
前記符号化手段で前記ランレングスと前記誤差とをそれぞれ符号化した後に、値が０の前記ランレングスを生成する
ことを特徴とする画像処理装置。
【請求項２】
前記符号化手段は、
前記値が０のランレングスを符号長が１ビットの符号に符号化する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記符号化手段は、
前記ランレングスおよび前記誤差の符号化をハフマン符号化を用いて行う
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記符号化手段は、
前記ランレングスおよび前記誤差を互いに独立したハフマン木に基づきそれぞれハフマン符号化する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記符号化手段は、
前記誤差に対応するハフマン符号の符号長が前記注目画素による画像データのビット長以上の長さになる場合に、前記符号化した符号として該注目画素による画像データそのものを用いる
ことを特徴とする請求項３または請求項４に記載の画像処理装置。
【請求項６】
前記符号化手段は、
前記符号化した前記ランレングスと、前記符号化した前記誤差とによる組を単位として前記符号データを形成する
ことを特徴とする請求項１乃至請求項５の何れか１項に記載の画像処理装置。
【請求項７】
多値画像データを圧縮符号化する画像処理方法であって、
注目画素の画素値を予測する予測ステップと、
前記予測ステップにより前記注目画素の画素値を予測した予測値の、該注目画素の画素値に対する誤差を算出する予測誤差算出ステップと、
前記予測誤差算出ステップにより算出された前記誤差に応じてランレングスを生成するランレングス生成ステップと、
前記予測誤差算出ステップにより算出された前記誤差が０以外のときに、前記誤差と前記ランレングス生成ステップにより生成された前記ランレングスとをそれぞれ符号化して符号データを生成する符号化ステップと
を有し、
前記ランレングス生成ステップは、
前記予測誤差算出ステップにより算出された前記誤差が０のときに値を１ずつ増加させて前記ランレングスを生成し、
前記符号化ステップにより前記ランレングスと前記誤差とをそれぞれ符号化した後に、値が０の前記ランレングスを生成する
ことを特徴とする画像処理方法。
【請求項８】
コンピュータを請求項１乃至請求項６の何れか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項９】
注目画素の画素値を符号化済みの画素の画素値に基づき予測した予測値の該注目画素の画素値に対する誤差と、該誤差に応じて生成された、該誤差が０である長さを示すランレングスとをそれぞれ符号化した組を単位とする符号データを画素データに復号して出力する画像処理装置であって、
復号済みの画素データを蓄積的に記憶する記憶手段と、
前記記憶手段に記憶された前記復号済みの画素データに基づき復号対象の画素の画素値を予測する予測手段と、
前記符号データを解析して、該符号データから前記誤差と前記ランレングスとをそれぞれ求める符号解析手段と、
前記符号解析手段で求めた前記誤差および前記ランレングスと、前記予測手段で予測した予測値とに基づき画素データを復号して出力すると共に、出力を行った該画素データを前記記憶手段に記憶させる復号手段と
を有し、
前記復号手段は、
前記符号解析手段で求めた前記ランレングスの値が０であれば、前記符号解析手段で求めた前記誤差と、前記予測手段で予測した予測値とに基づき画素値を生成して該画素値による画素データを出力し、
前記符号解析手段で求めた前記ランレングスの値が０以外であれば、前記予測手段で予測した予測値を画素値とした画素データを、該ランレングスが示す長さだけ出力する
ことを特徴とする画像処理装置。
【請求項１０】
前記符号データは、前記誤差と前記ランレングスとが、互いに独立したハフマン木に基づいたハフマン符号化を用いてそれぞれ符号化されてなり、
前記符号解析手段は、
前記符号データのハフマン符号を解析して該符号データから前記誤差とランレングスとをそれぞれ求める
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
注目画素の画素値を符号化済みの画素の画素値に基づき予測した予測値の該注目画素の画素値に対する誤差と、該誤差に応じて生成された、該誤差が０である長さを示すランレングスとをそれぞれ符号化した組を単位とする符号データを画素データに復号して出力する画像処理方法であって、
記憶手段に蓄積的に記憶された復号済みの画素データに基づき復号対象の画素の画素値を予測する予測ステップと、
前記符号データを解析して、該符号データから前記誤差と前記ランレングスとをそれぞれ求める符号解析ステップと、
前記符号解析ステップにより求めた前記誤差および前記ランレングスと、前記予測ステップにより予測した予測値とに基づき画素データを復号して出力すると共に、出力を行った該画素データを前記記憶手段に記憶させる復号ステップと
を有し、
前記復号ステップは、
前記符号解析ステップにより求めた前記ランレングスの値が０であれば、前記符号解析ステップにより求めた前記誤差と、前記予測ステップにより予測した予測値とに基づき画素値を生成して該画素値による画素データを出力し、
前記符号解析ステップにより求めた前記ランレングスの値が０以外であれば、前記予測により予測した予測値を画素値とした画素データを、該ランレングスが示す長さだけ出力する
ことを特徴とする画像処理方法。
【請求項１２】
コンピュータを請求項９または請求項１０に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮符号化し、また、当該圧縮符号化された画像データを復号する画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
プリンタ装置などの画像形成装置では、入力された画像データを一時的にメモリに記憶し、このメモリに記憶された画像データを所定のタイミングで読み出して、印刷動作を行う。この場合、画像データをそのままメモリに格納しようとすると、大容量のメモリが必要になり装置のコストが嵩んでしまう。そのため、一般的には、入力された画像データを、圧縮符号化してメモリに格納するようにしている。
【０００３】
この、プリンタ装置などでは、予測符号化を用いた圧縮符号化が一般的に用いられる。予測符号化は、画像において、隣接する画素同士の相関が高いという性質を利用し、符号化済みの画素の画素値から符号化対象である注目画素の画素値を予測し、予測値と注目画素の実際の画素値との差分を符号化する。
【０００４】
この予測符号化に従来から用いられる方法の一つとして、平面予測と呼ばれる予測方式がある。平面予測は、符号化対象である注目画素の周辺３画素の画素値に基づき、注目画素の画素値を予測する。例えば、ＪＰＥＧ(Joint Photographic Experts Group)の可逆符号化モードにおいて、この平面予測が用いられている。ＪＰＥＧの可逆符号化モードによれば、平面予測により注目画素に対する予測値と実際の画素値との差分を求め、この差分を、ハフマン符号化や算術符号化などのエントロピー符号化を用いて符号化している。
【０００５】
特許文献１には、注目画素を周辺画素から予測した予測誤差をハフマン符号化する際に、予測誤差の値を、その値の範囲で複数のグループに分類して分類内部の順位を示す数値である付加ビットへ変換し、グループ値と付加ビット値とをハフマン符号化する技術が開示されている。
【０００６】
また、特許文献２には、複数の予測部および予測誤差算出部と、それらを選択する選択部と、選択部で選択された予測誤差や複数の予測部の識別番号を符号化する符号化部で構成される画像符号化装置が開示されている。特許文献２では、複数の予測部において予測が的中した長さをランレングスで符号化し、的中しない場合は、予測誤差算出部で求めた予測誤差を符号化するようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、多値画像の可逆圧縮方式として知られているＪＰＥＧの可逆符号化モードは、７つの予測式で予測誤差の統計を作成し、最も良い結果が得られた予測式を１つ選択し、選択された予測式を用いて画像データの符号化を行う。しかしながら、ＪＰＥＧの可逆符号化モードでは、予測式が１つの画像に対して１種類に固定的とされているため、符号化を適応的に行うことが困難であり、あまり高い圧縮率が望めないという問題点があった。
【０００８】
また、ＪＰＥＧの可逆符号化モードでは、１つの画像に対して７つの予測式のそれぞれで予測誤差の統計を作成するために、多値画像を２回処理する２パス方式となり、処理時間が多くかかるという問題点があった。
【０００９】
一方、上述した特許文献２によれば、複数の予測部を、予測が的中した回数を統計処理した結果に基づき切り替えていくため、符号化を適応的に行うことが可能である。ここで、文字やグラフィクス画像のエッジ部のような、画素値が画素単位で急激に変化する領域では、予測部の切り替えを画素単位に動的に行う必要がある。ところが、この特許文献２の方法によれば、統計処理を行うためにある程度の数の画素を処理する必要があり、その後、予測部の切り替えが可能となるため、画素値が画素単位で急激に変化する領域では、良好な圧縮率を得ることが困難であるという問題点があった。
【００１０】
また、予測部が切り替わると、どの予測部を使用したかを示す情報を、符号化部が切り替わる度に例えばヘッダ情報として符号化データに対して挿入する必要がある。そのため、符号化部の切り替えが頻繁に行われる場合、予測部を示すヘッダ情報のために符号化データが増大し、圧縮率が低下してしまうという問題点があった。
【００１１】
また、符号化データに対して挿入される、このような、用いた予測部を示すヘッダ情報は、ハードウエアやソフトウエアを複雑化させる原因となるおそれがある。例えばハードウエアにおいては、ゲート規模の増加と処理速度の低下、消費電流の増加を招くおそれがある。ソフトウエアにおいては、処理の煩雑化や処理速度の低下の原因になるおそれがある。
【００１２】
一方、上述した特許文献１では、入力画像の画素単位に予測誤差を求めてハフマン符号化を行っている。この方法は、写真画像などの、画素値が画素単位に変動する可能性が高い入力画像の場合に良好な効率が得られる。ところが、プリンタ装置で多く用いられる文字を中心とした画像は、下地の部分において同じ画素値”０”（白色）が変化無く続くことが多い。同様に、例えばプログラムにより生成したグラフィクス画像では、同色の画素が続く場合が多い。この場合、１画素毎に予測が一致した旨を示す符号化を行うことになるため、効率的に符号化を行うことが困難となるという問題点があった。
【００１３】
上述の特許文献２においては、予測値が一致するランレングスを符号化することでこの特許文献１による問題点を解決し、グラフィクス画像や文字中心の画像の下地の部分などにおいて、効率よく符号化することができる。
【００１４】
しかしながら、特許文献２においては、入力画像での写真画像の部分において、予測値が一致するランレングスを符号化する点が欠点となる。すなわち、特許文献１の方法では、基本的に予測誤差のみを用いて符号化を行っているのに対し、特許文献２の方法では、少なくとも予測誤差とランレングス符号とを用いて符号化を行う。そのため、符号化データ中の符号が予測誤差による符号であるのか、ランレングス符号化による符号であるのかを示すヘッダ情報を、符号化データ中に埋め込むことが必要となる。
【００１５】
この場合、例えばノイズが多く、画素値が画素単位に変化する写真画像のような画像による画像データを符号化した場合、予測誤差による符号であることを示すヘッダ情報と予測誤差符号とが符号化データ中に画素毎に繰り返されることになる。この場合、予測誤差による符号であることを示すヘッダ情報は、不要であると考えられ、このヘッダ情報が圧縮率を低下させていることになる。
【００１６】
また、ノイズの多い写真画像に限らず、他の画像においても、予測誤差符号であることを示すヘッダ情報と、ランレングス符号であることを示すヘッダ情報は、圧縮率を低下させる原因となると共に、ハードウエアやソフトウエアを複雑化させる原因となるおそれがある。例えばハードウエアにおいては、ゲート規模の増加とスピードの低下、消費電流の増加を招くおそれがある。ソフトウエアにおいては、処理スピードの低下の原因になるおそれがある。
【００１７】
本発明は、上記に鑑みてなされたものであって、画像データの圧縮符号化をより効率的に行うことが可能な画像処理装置、画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上述した課題を解決し、目的を達成するために、第１の発明は、多値画像データを圧縮符号化する画像処理装置であって、注目画素の画素値を予測する予測手段と、予測手段で注目画素の画素値を予測した予測値の、注目画素の画素値に対する誤差を算出する予測誤差算出手段と、予測誤差算出手段で算出された誤差に応じてランレングスを生成するランレングス生成手段と、予測誤差算出手段で算出された誤差が０以外のときに、誤差とランレングス生成手段で生成されたランレングスとをそれぞれ符号化して符号データを生成する符号化手段とを有し、ランレングス生成手段は、予測誤差算出手段で算出された誤差が０のときに値を１ずつ増加させてランレングスを生成し、符号化手段でランレングスと誤差とをそれぞれ符号化した後に、値が０のランレングスを生成することを特徴とする。
【００１９】
また、第２の発明は、多値画像データを圧縮符号化する画像処理方法であって、注目画素の画素値を予測する予測ステップと、予測ステップにより注目画素の画素値を予測した予測値の、注目画素の画素値に対する誤差を算出する予測誤差算出ステップと、予測誤差算出ステップにより算出された誤差に応じてランレングスを生成するランレングス生成ステップと、予測誤差算出ステップにより算出された誤差が０以外のときに、誤差とランレングス生成ステップにより生成されたランレングスとをそれぞれ符号化して符号データを生成する符号化ステップとを有し、ランレングス生成ステップは、予測誤差算出ステップにより算出された誤差が０のときに値を１ずつ増加させてランレングスを生成し、符号化ステップによりランレングスと誤差とをそれぞれ符号化した後に、値が０のランレングスを生成することを特徴とする。
【００２０】
また、第３の発明は、注目画素の画素値を符号化済みの画素の画素値に基づき予測した予測値の注目画素の画素値に対する誤差と、誤差に応じて生成された、誤差が０である長さを示すランレングスとをそれぞれ符号化した組を単位とする符号データを画素データに復号して出力する画像処理装置であって、復号済みの画素データを蓄積的に記憶する記憶手段と、記憶手段に記憶された復号済みの画素データに基づき復号対象の画素の画素値を予測する予測手段と、符号データを解析して、符号データから誤差とランレングスとをそれぞれ求める符号解析手段と、符号解析手段で求めた誤差およびランレングスと、予測手段で予測した予測値とに基づき画素データを復号して出力すると共に、出力を行った画素データを記憶手段に記憶させる復号手段とを有し、復号手段は、符号解析手段で求めたランレングスの値が０であれば、符号解析手段で求めた誤差と、予測手段で予測した予測値とに基づき画素値を生成して画素値による画素データを出力し、符号解析手段で求めたランレングスの値が０以外であれば、予測手段で予測した予測値を画素値とした画素データを、ランレングスが示す長さだけ出力することを特徴とする。
【００２１】
また、第４の発明は、注目画素の画素値を符号化済みの画素の画素値に基づき予測した予測値の注目画素の画素値に対する誤差と、誤差に応じて生成された、誤差が０である長さを示すランレングスとをそれぞれ符号化した組を単位とする符号データを画素データに復号して出力する画像処理方法であって、記憶手段に蓄積的に記憶された復号済みの画素データに基づき復号対象の画素の画素値を予測する予測ステップと、符号データを解析して、符号データから誤差とランレングスとをそれぞれ求める符号解析ステップと、符号解析ステップにより求めた誤差およびランレングスと、予測ステップにより予測した予測値とに基づき画素データを復号して出力すると共に、出力を行った画素データを記憶手段に記憶させる復号ステップとを有し、復号ステップは、符号解析ステップにより求めたランレングスの値が０であれば、符号解析ステップにより求めた誤差と、予測ステップにより予測した予測値とに基づき画素値を生成して画素値による画素データを出力し、符号解析ステップにより求めたランレングスの値が０以外であれば、予測により予測した予測値を画素値とした画素データを、ランレングスが示す長さだけ出力することを特徴とする。
【発明の効果】
【００２２】
第１および第２の発明によれば、注目画素の画素値を予測した予測値の、注目画素の画素値に対する誤差を算出すると共に、算出された誤差に応じてランレングスを生成し、算出された誤差が０以外のときに、誤差とランレングスとをそれぞれ符号化して符号データを生成するようにされ、ランレングスを、算出された誤差が０のときに値を１ずつ増加させて生成し、ランレングスと誤差とをそれぞれ符号化した後に、値を０として生成するようにしているため、画像データの圧縮符号化をより効率的に行うことが可能となる。
【００２３】
また、第３および第４の発明によれば符号データを解析して求めた誤差およびランレングスと、記憶手段に蓄積的に記憶された復号済みの画素データに基づき復号対象の画素の画素値を予測した予測値とに基づき画素データを復号して出力すると共に、出力を行った画素データを記憶手段に記憶するようにされ、ランレングスの値が０であれば、誤差と予測値とに基づき画素値を生成して画素値による画素データを出力し、ランレングスの値が０以外であれば、予測値を画素値とした画素データを、ランレングスが示す回数だけ出力するようにしているため、注目画素の画素値を符号化済みの画素の画素値に基づき予測した予測値の注目画素の画素値に対する誤差と、誤差に応じて生成された、誤差が０である長さを示すランレングスとをそれぞれ符号化した組を単位とする符号データを復号して画素データを出力することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置の機構部の構成例を示す略線図である。
【図２】図２は  画像形成装置における電装・制御装置の一例の構成を示すブロック図である。
【図３】図３は、メインメモリの一例のフォーマットを示す略線図である。
【図４】図４は、メインメモリおけるＣＭＹＫバンドデータ格納領域の一例のフォーマットを示す略線図である。
【図５】図５は、この発明の実施形態による画像処理装置を適用可能なカラープリンタにおける画像処理を概略的に示す一例のフローチャートである。
【図６】図６は、この発明の実施形態による画像処理装置を適用可能なカラープリンタの構成を機能的に示す一例の機能ブロック図である。
【図７】図７は、本発明の実施形態による符号化部の動作を説明するための一例の機能ブロック図である。
【図８】図８は、ＣＭＹＫバンドデータ格納領域からのＣＭＹＫバンドデータの読み出し順を説明するための略線図である。
【図９】図９は、平面予測で用いる画素を説明するための略線図である。
【図１０−１】図１０−１は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１０−２】図１０−２は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１１】図１１は、本発明の実施形態による符号の一例のフォーマットを示す略線図である。
【図１２】図１２は、本実施形態による符号化処理を示す一例のフローチャートである。
【図１３】図１３は、本実施形態による符号化処理に従い符号化を行った場合の各値のより具体的な例を、時系列順に示す略線図である。
【図１４】図１４は、本実施形態による符号化処理に従い符号化を行った場合の別の例を示す略線図である。
【図１５】図１５は、本実施形態による符号化装置の一例の構成をより具体的に示すブロック図である。
【図１６】図１６は、本発明の実施形態による復号部の動作を説明するための一例の機能ブロック図である。
【図１７】図１７は、本実施形態の符号化処理により符号化された符号化データに対する復号処理を示す一例のフローチャートである。
【図１８】図１８は、本実施形態による復号装置の一例の構成をより具体的に示すブロック図である。
【発明を実施するための形態】
【００２５】
以下に添付図面を参照して、この発明に係る画像処理装置の最良な実施の形態を詳細に説明する。図１は、この発明の実施形態による画像処理装置を適用可能な画像形成装置（カラープリンタとする）の機構部の構成例を示す。なお、本実施形態では、本発明に係る画像処理装置および画像処理方法をカラープリンタである画像形成装置に適用した例について説明するが、文字画像を含む画像に画像処理を施すものであれば、これに限定するものではない。例えば、本発明は、複写機、ファクシミリ、複合機などの画像処理装置にも適用することができる。
【００２６】
図１に例示されるカラープリンタ１００は、４色（Ｙ、Ｍ、Ｃ、Ｋ）の画像をそれぞれ独立の作像系１Ｙ、１Ｍ、１Ｃ、１Ｋで形成し、この４色の画像を合成する４ドラムタンデムエンジンタイプの画像形成装置である。各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは、像担持体としての感光体、例えば小径のＯＰＣ（有機感光体）ドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを有し、このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋを取り囲むように作像の上流側から帯電手段としての帯電ローラ３Ｙ、３Ｍ、３Ｃ、３Ｋと、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像をそれぞれ現像剤で現像してＹ、Ｍ、Ｃ、Ｋ各色のトナー像とする現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋと、クリーニング装置５Ｙ、５Ｍ、５Ｃ、５Ｋと、除電装置６Ｙ、６Ｍ、６Ｃ、６Ｋなどが配置されている。
【００２７】
各現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋの脇には、Ｙトナー、Ｍトナー、Ｃトナー、Ｋトナーをそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋへ補給するトナーボトルユニット７Ｙ、７Ｍ、７Ｃ、７Ｋ（が配置されている。また、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは各々独立な光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが配置され、この光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋはレーザ光源としてのレーザダイオード（ＬＤ）光源９Ｙ、９Ｍ、９Ｃ、９Ｋや、コリメートレンズ１０Ｙ、１０Ｍ、１０Ｃ、１０Ｋ、ｆθレンズ１１Ｙ、１１Ｍ、１１Ｃ、１１Ｋ、といった光学部品、偏向走査手段としてのポリゴンミラー１２Ｙ、１２Ｍ、１２Ｃ、１２Ｋ、折り返しミラー１３Ｙ、１３Ｍ、１３Ｃ、１３Ｋ、１４Ｙ、１４Ｍ、１４Ｃ、１４Ｋなどを有する。
【００２８】
各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋは垂直に配列され、その右側には転写ベルトユニット１５がＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに接する形で配置される。転写ベルトユニット１５は、転写ベルト１６がローラ１７〜２０に張架されて図示しない駆動源により回転駆動される。装置下側には転写材としての転写紙が収納された給紙トレイ２１が配置され、装置上部に定着装置２２、排紙ローラ２３及び排紙トレイ２４が配設される。
【００２９】
作像時には、各作像系１Ｙ、１Ｍ、１Ｃ、１Ｋにおいて、それぞれ、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが図示しない駆動源により回転駆動され、帯電ローラ３Ｙ、３Ｍ、３Ｃ、３ＫによりＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋが一様に帯電されて光書き込み装置８Ｙ、８Ｍ、８Ｃ、８Ｋが各色の画像データに基づきＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋに光書込みを行うことによって、ＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上に静電潜像が形成される。
【００３０】
このＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上の静電潜像はそれぞれ現像装置４Ｙ、４Ｍ、４Ｃ、４Ｋにより現像されてＹ、Ｍ、Ｃ、Ｋ各色のトナー像となり、一方、給紙トレイ２１から給紙ローラ２５により転写紙が水平方向に給紙されて搬送系により作像系１Ｙ、１Ｍ、１Ｃ、１Ｋ方向へ垂直に搬送される。この転写紙は、転写ベルト１６に静電的に吸着保持されて転写ベルト１６により搬送され、図示しない転写バイアス印加手段により転写バイアスが印加されてＯＰＣドラム２Ｙ、２Ｍ、２Ｃ、２Ｋ上のＹ、Ｍ、Ｃ、Ｋ各色のトナー像が順次に重ねて転写されることでフルカラー画像が形成される。このフルカラー画像が形成された転写紙は、定着装置２２によりフルカラー画像が定着されて排紙ローラ２３により排紙トレイ２４へ排出される。
【００３１】
上述した、カラープリンタ１００における各部の制御は、電装・制御装置２６により行われる。
【００３２】
図２は  図１の電装・制御装置２６の一例の構成を示すブロック図である。図２の例では、電装・制御装置２６は、ＣＰＵ(Central Processing Unit)２００、プリンタ用ＡＳＩＣ(Application Specific Integrated Circuit)２３０およびメインメモリ２１０を備える。プリンタ用ＡＳＩＣ２３０は、ＣＰＵ  Ｉ／Ｆ２０１、メインメモリアービタ（ＡＲＢ）２０２、メモリコントローラ２０３、符号化部２０４、復号部２０５、階調処理部２０６およびエンジンコントローラ２０７を含む。
【００３３】
ＣＰＵ２００は、メインメモリ２１０に格納されるプログラムに従い、このカラープリンタ１００の全体の動作を制御する。ＣＰＵ２００は、ＣＰＵ  Ｉ／Ｆ２０１を介してメインメモリアービタ２０２に接続される。メインメモリアービタ２０２は、ＣＰＵ２００、符号化部２０４、復号部２０５および通信コントローラ２０８の、メインメモリ２１０に対するアクセスを調停する。
【００３４】
メインメモリ２１０は、メモリコントローラ２０３を介してメインメモリアービタ２０２に接続される。メモリコントローラ２０３は、メインメモリ２１０に対するアクセスの制御を行う。メインメモリ２１０は、上述した、ＣＰＵ２００が動作するためのプログラムや、ＣＰＵ２００から出力される描画コマンドが格納される。メインメモリ２１０は、さらに、バンドデータや、ページの圧縮データなどの各種データを格納する。
【００３５】
符号化部２０４は、メインメモリ２１０に格納されるバンドデータを符号化する。符号化されたバンドデータは、メインメモリアービタ２０２およびメモリコントローラ２０３を介してメインメモリ２１０に供給され、ページ符号格納領域に書き込まれる。復号部２０５は、後述するプリンタエンジン２１１に同期して、符号化部２０４で符号化されメインメモリ２１０に書き込まれた符号化バンドデータをメインメモリ２１０から読み出して復号する。復号されたバンドデータは、階調処理部２０６に供給される。階調処理部２０６は、復号部２０５から供給されたバンドデータに対して階調処理を施してエンジンコントローラ２０７に転送する。
【００３６】
エンジンコントローラ２０７は、プリンタエンジン２１１を制御する。図２では、プリンタエンジン２１１としてＣ版のものだけが記載され、Ｍ版、Ｙ版、Ｋ版については煩雑さを避けるために省略されている。
【００３７】
通信コントローラ２０８は、ネットワーク２２１を介しての通信を制御する。例えば、コンピュータ２２０から出力されたＰＤＬ(Page Description Language)データは、ネットワーク２２１を介して通信コントローラ２０８により受信される。通信コントローラ２０８は、受信したＰＤＬデータを、メインメモリアービタ２０２およびメインメモリコントローラ２０３を介してメインメモリ２１０に転送する。
【００３８】
なお、ネットワーク２２１は、ＬＡＮ(Local Area Network)などの所定の範囲内で通信を行うものでもよいし、インターネットなどより広範囲に通信可能なものでもよい。また、ネットワーク２２１は、有線通信に限らず無線通信を用いたものでもよいし、ＵＳＢ(Universal Serial Bus)やＩＥＥＥ(Institute Electrical and Electronics Engineers)１３９４といったシリアル通信を行うものでもよい。
【００３９】
図３は、メインメモリ２１０の一例のフォーマットを示す。プログラム格納領域３００は、ＣＰＵ２００が動作するためのプログラムが格納される。ＰＤＬデータ格納領域３０１は、例えばコンピュータ２２０から供給されたＰＤＬデータが格納される。ＣＭＹＫバンドデータ格納領域３０２は、ＣＭＹＫバンドデータが格納される。ページ符号格納領域３０３は、バンドデータが圧縮符号化された符号データが格納される。ページ符号格納領域３０３は、複数ページ分の符号データを格納可能とされている。領域３０４は、上述した以外のデータが格納される。
【００４０】
図４は、図３におけるＣＭＹＫバンドデータ格納領域３０２の一例のフォーマットを示す。このように、ＣＭＹＫバンドデータ格納領域３０２は、Ｃ版、Ｍ版、Ｙ版およびＫ版の各版毎のプレーン構成とされ、各画素に対してそれぞれ８ビットが割り当てられる。すなわち、ＣＭＹＫバンドデータは、各画素がそれぞれ８ビットのビット深度を持つ多値プレーン画像となっている。
【００４１】
図５は、上述した構成を有するカラープリンタ１００における画像処理を概略的に示す一例のフローチャートである。また、図６は、カラープリンタ１００の構成を機能的に示す一例の機能ブロック図である。これら図５のフローチャートおよび図６の機能ブロック図を用いて、カラープリンタ１００の動作について、概略的に説明する。
【００４２】
例えばコンピュータ２２０で生成されたＰＤＬデータがネットワーク２２１を介して通信コントローラ２０８に受信され、メインメモリ２１０のＰＤＬデータ格納領域３０１に記憶される（ステップＳ１）。ＣＰＵ２００は、メインメモリ２１０のＰＤＬデータ格納領域３０１からＰＤＬデータを読み出し、ＰＤＬを解析して（ステップＳ２）、解析結果に基づきＣＭＹＫのバンド画像を描画する（ステップＳ３）。描画されたＣＭＹＫのバンド画像によるＣＭＹＫバンドデータは、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２に格納される（ステップＳ４）。このＣＭＹＫバンドデータは、上述したように、各画素が８ビットのビット深度を持つ多値プレーン画像データである。
【００４３】
符号化部２０４は、ＣＭＹＫバンドデータ格納領域３０２からＣＭＹＫバンドデータを読み出して、本発明による符号化方法に従い符号化する（ステップＳ５）。ＣＭＹＫバンドデータが符号化された符号データは、メインメモリ２１０のページ符号格納領域３０３に格納される（ステップＳ６）。
【００４４】
復号部２０５は、ページ符号格納領域３０３からＣＭＹＫバンドデータが符号化された符号データを読み出して復号し、復号されたＣＭＹＫバンドデータを階調処理部２０６に供給する（ステップＳ７）。階調処理部２０６は、復号部２０５から供給されたＣＭＹＫバンドデータに対して階調処理を施す（ステップＳ８）。階調処理されたＣＭＹＫバンドデータは、プリンタエンジンコントローラ２０７を介してプリンタエンジン２１１に供給される（ステップＳ９）。プリンタエンジン２１１は、供給されたＣＭＹＫバンドデータに基づきプリントアウトを行う。
【００４５】
＜符号化処理の概略＞
図７は、本発明の実施形態による符号化部２０４の動作を説明するための一例の機能ブロック図である。符号化部２０４において、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から、画像読み込み部４００によりＣＭＹＫ各版毎のＣＭＹＫバンドデータが読み出される。このとき、ＣＭＹＫ各版毎のＣＭＹＫバンドデータは、図８に例示されるように、画像読み込み部４００によりスキャンライン毎に順次、画素単位でＣＭＹＫバンドデータ格納領域３０２から読み出される。
【００４６】
ラインメモリ制御部４０１は、画像読み込み部４００により画素単位で読み出されたＣＭＹＫバンドデータは、ラインメモリ制御部４０１によりラインメモリ４０２に格納される。ラインメモリ４０２は、少なくとも２ライン分のＣＭＹＫバンドデータを格納可能とされており、今回供給されたデータを格納すると共に、直前に格納した１ライン分のデータを保持するように、ラインメモリ制御部４０１に制御される。
【００４７】
例えば、ラインメモリ４０２は、それぞれ１ライン分の画素を格納可能な第１および第２の領域を有し、１ライン分の画素データの符号化が終了すると、この符号化が終了した領域の画素データを保持し、他方の領域に次のラインの画素データを書き込むように制御される。
【００４８】
ラインメモリ制御部４０１の制御により、ラインメモリ４０２から、符号化対象の画素（以下、注目画素と呼ぶ）の画素データと、注目画素の周辺３画素の画素データが読み出され、予測処理部４０３に渡される。ここでラインメモリ４０２から読み出される周辺３画素は、注目画素に近接する、既に符号化が終了した画素である。より具体的には、図９に例示されるように、注目画素のスキャン順で直前の画素ａと、当該注目画素が属する現ラインに対してスキャン順で直前の前ライン、すなわち当該注目画素が属するラインの直上のラインにおいて当該注目画素の直上に位置する画素ｂおよび画素ｂのスキャン順で直前の画素ｃである。
【００４９】
なお、以下では、符号化対象である注目画素が属するラインを符号化ライン、符号化ラインに対してスキャン順で直前のラインを参照ラインと呼ぶ。
【００５０】
予測処理部４０３は、ラインメモリ制御部４０１から渡された画素ａ、画素ｂおよび画素ｃを用いて、下記の式（１）に示される平面予測演算により平面予測値を求め、注目画素の画素値を予測する。注目画素の画素値と、求められた平面予測値とが予測誤差処理部４０４に渡される。
平面予測値＝ａ＋ｂ−ｃ    …（１）
【００５１】
なお、注目画素がラインのスキャン順で先頭画素である場合、ならびに、符号化ラインがスキャン順で先頭のラインである場合は、平面予測値が０であるものとする。
【００５２】
注目画素の画素値と、予測処理部４０３で求められた平面予測値との差分である予測誤差値が、予測誤差処理部４０４で算出される。ランレングス処理部４０５は、予測誤差処理部４０４で算出された予測誤差値が「０」である場合に、ランレングス値を１だけ増加させる。一方、予測誤差値が「０」ではない場合は、予測誤差値とランレングス値と注目画素の画素値とを符号フォーマット生成処理部４０６に渡し、その後、ランレングス値をリセットする。
【００５３】
符号フォーマット生成処理部４０６は、ランレングス生成処理部４０５から渡されたランレングス値と、予測誤差値とをそれぞれ後述する符号フォーマットに従い符号化する。また、詳細を後述するように、予測誤差値が差分符号で表現可能な範囲外であれば、注目画素の画素値そのものを符号として用いる。符号フォーマット生成処理部４０６で生成された符号は、符号書き込み部４０７に渡され、メインメモリ２１０のページ符号格納領域３０３に書き込まれる。
【００５４】
＜符号フォーマット＞
図１０は、符号フォーマット生成処理部４０６で生成される符号の一例のフォーマットを示す。本実施形態においては、予測誤差値とランレングス値とをそれぞれ符号化する。そして、図１１に例示されるように、符号化されたランレングス値（符号化ランレングス値と呼ぶ）の後ろに符号化された予測誤差値（符号化予測誤差値と呼ぶ）を接続し、符号化ランレングス値および符号化予測誤差値の組を単位として符号列を生成する。
【００５５】
図１０−１は、符号化予測誤差値の一例の符号フォーマットを示す。本実施形態では、予測誤差値は、値が大きいほど頻度が低くなるものとしてハフマン符号化される。このとき、予測誤差値を、段階的に設定された範囲に対してグループ分けし、グループ毎に異なる符号長が割り当てられるように符号化を行う。グループの識別は、生成されたハフマン符号の先頭から、グループ数に応じたビット数分の符号を用いて行う。本実施形態では、予測誤差値を８のグループに分類し、３ビットをグループの識別用に用いている。
【００５６】
以下では、グループの識別に用いるビットをグループ識別ビットと呼び、このグループ識別ビットに付加されるビットを付加ビットと呼ぶ。グループ識別ビットと付加ビットとで、予測誤差値毎にユニークなハフマン符号が構成される。
【００５７】
本実施形態では、予測誤差値Ｐｅに対して例えば次のように範囲を設定し、予測誤差値Ｐｅをグループ＃０〜グループ＃７の８グループに分類する。
グループ＃０：Ｐｅ＝１，Ｐｅ＝−１
グループ＃１：Ｐｅ＝−３，Ｐｅ＝−２，Ｐｅ＝２，Ｐｅ＝３
グループ＃２：−７≦Ｐｅ≦−４，４≦Ｐｅ≦７
グループ＃３：−１５≦Ｐｅ≦−８，８≦Ｐｅ≦１５
グループ＃４：−３１≦Ｐｅ≦−１６，１６≦Ｐｅ≦３１
グループ＃５：−６３≦Ｐｅ≦−３２，３２≦Ｐｅ≦６３
グループ＃６：−１２７≦Ｐｅ≦−６４，６４≦Ｐｅ≦１２７
グループ＃７：Ｐｅ≦−１２８，１２８≦Ｐｅ
【００５８】
また、各グループのグループ識別ビットと、付加ビットのビット長とを、例えば次のように設定する。
グループ＃０：グループ識別ビット＝「０００」，付加ビット長＝１ビット
グループ＃１：グループ識別ビット＝「００１」，付加ビット長＝２ビット
グループ＃２：グループ識別ビット＝「０１０」，付加ビット長＝３ビット
グループ＃３：グループ識別ビット＝「０１１」，付加ビット長＝４ビット
グループ＃４：グループ識別ビット＝「１００」，付加ビット長＝５ビット
グループ＃５：グループ識別ビット＝「１０１」，付加ビット長＝６ビット
グループ＃６：グループ識別ビット＝「１１０」，付加ビット長＝７ビット
グループ＃７：グループ識別ビット＝「１１１」，付加ビット長＝８ビット
【００５９】
ここで、グループ＃７の、注目画素の予測誤差値が−１２７より小さいか、若しくは、１２７より大きい場合は、ハフマン符号を用いずに、当該注目画素の画素値をそのまま付加ビットとして用いる。これは、予測誤差値が−２５５より小さいか、若しくは、２５５よりも大きくなった場合に、符号長が８ビットよりも大きくなり圧縮率が低下してしまうことを防止するためである。
【００６０】
図１０−２は、符号化ランレングス値の一例の符号フォーマットを示す。本実施形態では、ランレングス値は、値が小さいほど短い符号長が割り当てられるようにハフマン符号化され、ランレングス値が０で１ビットの符号長が割り当てられ、符号「０」に符号化される。
【００６１】
以下、図１０−２に例示されるように、ランレングス値が１の場合には、２ビットの符号長が割り当てられ、符号「１０」に符号化される。また、ランレングス値が２〜４の場合は、４ビットの符号長が割り当てられ、それぞれ符号「１１００」、「１１０１」および「１１１０」に符号化される。
【００６２】
ランレングス値が５以上の場合、４ビットの符号長を持つ符号「１１１１」の後ろに所定符号長の数値部を接続した形式に符号化される。数値部は、図１０−２の下段に示されるように、例えば先頭に１ビットのヘッダを含む４ビットの符号長を有する、１または複数のフレームからなる。ランレングス値を示す符号が３ビット毎に区切られ、各フレームのヘッダを除く３ビットに対し、上述の符号「１１１１」側がＭＳＢとなるように詰め込まれる。図１０−２の例では、フレームは、最大数が７個に制限され、ランレングス値が１０４８５７６まで表現可能とされている。ランレングス値が５の場合は、フレームを省略することができる。
【００６３】
なお、ヘッダは、あるフレームに次のフレームが続くか否かを示す。例えば、ヘッダの値が「０」で次のフレームがあることを示し、ヘッダの値が「１」でそのフレームで終了することを示す。
【００６４】
＜符号化処理の詳細＞
図１２は、符号化部２０４で行われる、本実施形態による符号化処理を示す一例のフローチャートである。なお、この図１２のフローチャートの処理に先んじて、ランレングス値が予め０にリセットされているものとする。
【００６５】
ステップＳ１０で、画像読み込み部４００は、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から処理対象の１画素（注目画素Ｇ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として処理がなされる。
【００８５】
本実施形態では、上述の図１３の例における番号＃４〜番号＃１２の画素のように、注目画素と予測値とが一致する（予測誤差値が０）場合、予測値が一致している間は画素の数をランレングス値としてカウントして符号の出力を行わない。そして、注目画素と予測値とが不一致となった場合に、ランレングス値を符号化して出力する。また、１画素で予測値が不一致となった場合には、ランレングス値として「０」を生成する。これは、予測値が一致するランレングスが０であることを意味する。
【００８６】
このように符号化を行うことで、必ず符号化ランレングス値の次に符号化予測誤差値が配置され、これら符号化ランレングス値および符号化予測誤差値の組を単位とする符号列を生成することができる。そのため、各符号間に符号を識別するためのヘッダを配置する必要が無い。
【００８７】
図１４は、上述した図１２のフローチャートに従い符号化を行った場合の別の例を示す。この図１４に示される例は、隣接する画素同士の相関が低く、効率的な符号化が困難な場合の例である。すなわち、図１４の例では、隣接する画素同士の相関が低いため注目画素と注目画素に対する予測値とが一致せず、予測値が一致するランレングスが０であることを示す符号が画素毎に生成されてしまっている。しかしながら、本実施形態では、この予測値が一致するランレングスが０であることを示すために、ランレングス値を示す符号のうち最も符号長が短い１ビットの符号を割り当てているため、圧縮率の低下が抑制されている。
【００８８】
さらに、本実施形態においては、図１０−１を用いて説明したように、予測誤差値が１２７より大きいか、若しくは、−１２７より小さい場合に、ビット深度が８ビットの画素の画素値を、予測誤差値を示す付加ビットとしてそのまま用いている。したがって、図１４の例のように、予測誤差値が１２７より大きいか、若しくは、−１２７より小さい場合に、符号長が大きくなるハフマン符号を避けて画素値そのものを付加ビットとして用いるようにしているため、圧縮率の低下が抑制される。
【００８９】
＜符号化装置＞
図１５は、本実施形態による符号化装置２０４の一例の構成をより具体的に示すブロック図である。メモリアービタＩ／Ｆ５００は、メインメモリアービタ２０２に対するインターフェイスである。メモリアービタＩ／Ｆ５００は、メインメモリアービタ２０２に対して書き込み／読み出し要求やメモリアドレスを送信することで、メインメモリ２１０へのデータの書き込み、メインメモリ２１０からのデータの読み出しなどを行う。
【００９０】
バンド画像読み込み部５０１は、バンドデータアドレス生成部５０２で生成されたアドレス情報に基づきメモリアービタＩ／Ｆ５００に対してメモリアドレスを送信する。メモリアービタＩ／Ｆ５００は、バンド画像読み込み部５０１から送信されたメモリアドレスに基づき、図８を用いて説明したようにして、メインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から、バンドデータをスキャンライン毎に、画素単位で読み出すように、メインメモリアービタ２０２に対して要求する。この要求に応じてメインメモリ２１０のＣＭＹＫバンドデータ格納領域３０２から読み出された画素データが、メモリアービタＩ／Ｆ５００に受信され、バンド画像読み込み部５０１に供給される。バンド画像読み込み部５０１は、供給された画素データを、ラインメモリ制御部５０３に転送する。
【００９１】
ラインメモリ制御部５０３に対して、第１のラインメモリ５０４および第２のラインメモリ５０５が接続される。これら第１のラインメモリ５０４および第２のラインメモリ５０５は、同一のメモリの異なる領域であってもよい。ラインメモリ制御部５０３は、第１のラインメモリ５０４および第２のラインメモリ５０５の何れか一方を符号化ラインを格納するメモリとして割り当て、他方を参照ラインを格納するメモリとして割り当てる。そして、符号化ラインの符号化が終了したら、メモリの割り当てを切り替える。
【００９２】
ラインメモリ制御部５０３は、バンド画像読み込み部５０１から供給された画素データを、第１のラインメモリ５０４および第２のラインメモリ５０５のうち、符号化ラインを格納するメモリとして割り当てられた方（第１のラインメモリ５０４とする）に書き込む。それと共に、この画素データは、ラインメモリ制御部５０３により注目画素の画素データとして予測処理部５０６に転送される。また、ラインメモリ制御部５０３は、第１のラインメモリ５０４および第２のラインメモリ５０５から、当該注目画素の周辺３画素ａ、ｂおよびｃの画素データを読み出し、予測処理部５０６に転送する。
【００９３】
予測処理部５０６は、ラインメモリ制御部５０３から転送された画素ａ、ｂおよびｃの画素データを用いて、平面予測により注目画素の画素値を予測する。注目画素の平面予測値は、注目画素の画素データと共に、予測誤差処理部５０７に転送される。予測誤差処理部５０７は、予測処理部５０６から転送された平面予測値と注目画素の画素データによる画素値との差分を求め、予測誤差値として、注目画素の画素データと共にランレングス生成処理部５０８に転送する。
【００９４】
ランレングス生成処理部５０８は、予測誤差処理部５０７から渡された予測誤差値が「０」である場合に、ランレングス値を１だけ増加させる。一方、予測誤差値が「０」ではない場合は、予測誤差値とランレングス値と注目画素の画素値とを符号フォーマット生成処理部５０９に渡し、その後、ランレングス値をリセットする。
【００９５】
符号フォーマット生成部５０９は、ランレングス生成処理部５０８から転送されたランレングス値と予測誤差値とを、図１０−１および図１０−２を用いて説明した符号フォーマットに従い符号化する。また、予測誤差値が差分符号で表現可能な範囲外の値であれば、注目画素の画素データによる画素値そのものを予測誤差値を示す符号として用いる。符号フォーマット生成部５０９で生成された符号データは、ページ符号書き込み部５１０に転送される。
【００９６】
ページ符号書き込み部５１０は、ページ符号アドレス生成部５１１で生成されたアドレス情報に基づき、符号フォーマット生成部５０９から転送された符号データをメインメモリ２１０のページ符号格納領域３０３に書き込むためのアドレスを生成する。生成されたこのアドレスは、符号フォーマット生成部５０９から転送された符号データと共に、ページ符号書き込み部５１０からメモリアービタＩ／Ｆ５００に転送される。メモリアービタＩ／Ｆ５００は、ページ符号書き込み部５１０から転送されたアドレスに基づき、符号データをメインメモリ２１０のページ符号格納領域３０３に書き込むように、メインメモリアービタ２０２に要求する。
【００９７】
＜復号処理の概略＞
図１６は、本発明の実施形態による復号部２０５の動作を説明するための一例の機能ブロック図である。復号部２０５において、符号読み込み部６００は、メインメモリ２１０のページ符号格納領域３０３から符号データを読み出し、符号フォーマット解析部６０１に転送する。符号フォーマット解析部６０１は、転送された符号データをハフマン符号の規則に従い解釈して、符号化ランレングス値および符号化予測誤差値を取り出す。符号フォーマット解析部６０１は、これら符号化ランレングス値および符号化予測誤差値に基づき、ランレングス値（注目画素と予測値との差分が「０」の長さ）および予測誤差値をそれぞれ求める。
【００９８】
すなわち、符号フォーマット解析部６０１は、読み出した符号データの先頭の１ビットが「０」であれば、当該ビットがランレングス値「０」を示す、符号長が１ビットの符号であると判定する。一方、先頭の１ビットが「１」の場合、次の１ビットが「０」であれば、先頭ビットと２ビット目とがランレングス値「１」を示す、符号長が２ビットの符号であると判定する。また、先頭の１ビットが「１」であって、次の１ビットが「１」であれば、さらに次の２ビットを用いてランレングス値を求める。先頭から４ビット目までが全て「１」であれば、さらに数値部が続くため、ヘッダの１ビットが「１」であるフレームを最終フレームとして、ランレングス値を求める。
【００９９】
符号化ランレングス値の次には、符号化予測誤差値が配置されるため、符号化予測誤差値の先頭の３ビットでグループを判定し、グループに対応する付加ビットの符号長に基づき付加ビットを解釈して予測誤差値を求める。符号化予測誤差値に続けて、次の符号化ランレングス値および符号化予測誤差値の組が配置されているので、以下同様にしてランレングス値および予測誤差値を順次求める。
【０１００】
予測誤差処理部６０３において、予測処理部６２０は、ラインメモリ制御処理部６０４によりラインメモリ６０６から読み出された、復号対象の画素（注目画素）の周辺３画素の復号済みの画素ａ、ｂおよびｃ（図９参照）の画素データに基づき、復号を行う注目画素の画素値を、符号化の際に用いた予測方式（本実施形態の例では平面予測）により予測する。そして、予測誤差処理部６０３において、画素値生成処理部６２１は、符号フォーマット解析部６０１で求められた予測誤差値と、予測処理部６２０で予測された予測値とを加算して、注目画素の画素値を生成する。
【０１０１】
ランレングス処理部６０２において、予測処理部６１０は、ラインメモリ制御処理部６０４から供給される、注目画素の周辺３画素の復号済みの画素ａ、ｂおよびｃの画素データに基づき、上述の予測処理部６２０と同様にして注目画素の画素値を予測する。予測された画素値の画素データは、ランレングス処理制御部６１１の制御により、符号フォーマット解析部６０１で求められたランレングス値で示される数だけ出力される。
【０１０２】
なお、ラインメモリ６０６は、復号を行っている復号ラインと、直前に復号が終了した復号済みラインとの２ライン分の画素データを格納可能とされている。ラインメモリ制御処理部６０４は、ラインメモリ６０６に対する画素データの読み書きを制御する。例えば、ラインメモリ制御処理部６０４は、注目画素の周辺３画素ａ、ｂおよびｃをラインメモリ６０６から読み出して、上述の予測誤差処理部６０３およびランレングス処理部６０２にそれぞれ供給する。
【０１０３】
ランレングス処理部６０２および予測誤差処理部６０３で復号された画素データは、ラインメモリ制御処理部６０４により画像出力部６０５に転送され、復号部２０５から出力される。復号部２０５から出力された注目画素データは、階調処理部２０６に転送される。
【０１０４】
＜復号処理の詳細＞
図１７は、復号部２０５で行われる、本実施形態の符号化処理により符号化された符号化データに対する復号処理を示す一例のフローチャートである。符号読み込み部６００によりメインメモリ２１０のページ符号格納領域３０３から読み出された符号データが符号フォーマット解析部６０１に転送される。符号フォーマット解析部６０１は、転送された符号データから符号化ランレングス値を抽出し（ステップＳ３０）、次に、抽出された符号化ランレングス値に続けて配置される符号化予測誤差値を抽出する（ステップＳ３１）。
【０１０５】
次のステップＳ３２で、符号フォーマット解析部６０１は、符号化予測誤差値の先頭の３ビットの値に基づき、当該符号化予測誤差値に含まれる予測誤差値のグループが上述したグループ＃７であるか否か、すなわち、付加ビットとして画素データそのものを用いているか否かを判定する。
【０１０６】
若し、予測誤差値のグループがグループ＃７であると判定されたら、処理はステップＳ３６に移行され、当該符号化予測誤差値の先頭３ビットに続く８ビットの符号を、注目画素の画素値とする。そして、処理が後述するステップＳ３７に移行される。
【０１０７】
一方、ステップＳ３２で、予測誤差値のグループがグループ＃７以外のグループであると判定されたら、処理はステップＳ３３に移行される。ステップＳ３３で、符号フォーマット解析部６０１は、符号フォーマットに基づき符号化予測誤差値を解析して、予測誤差値を求める。すなわち、図１０−１を用いて説明した符号フォーマットに従い、符号化予測誤差値の先頭３ビットでグループを判定し、判定されたグループに基づき当該３ビットに続く付加ビットを解析して予測誤差値を求める。求められた予測誤差値は、予測誤差処理部６０３に転送され画素値生成処理部６２１に供給される。
【０１０８】
次のステップＳ３４では、ステップＳ３３で求められた予測誤差値に対応する画素（注目画素）の周辺３画素ａ、ｂおよびｃ（図９参照）から、注目画素の画素値を予測する。例えば、予測誤差処理部６０３内の予測処理部６２０は、ラインメモリ制御処理部６０４を介してラインメモリ６０６から画素ａ、ｂおよびｃを読み出し、これら画素ａ、ｂおよびｃを用いて平面予測により注目画素の画素値を予測する。
【０１０９】
次のステップＳ３５では、画素値生成処理部６２１により、ステップＳ３３で求められた予測誤差値と、ステップＳ３４で求められた注目画素の予測値とが加算され、注目画素の画素値が生成される。
【０１１０】
ステップＳ３５で注目画素の画素値が生成されると、処理がステップＳ３７に移行される。ステップＳ３７では、上述したステップＳ３０で抽出された符号化ランレングス値が符号フォーマット解析部６０１により図１０−２で説明した符号フォーマットに基づき解析されて、ランレングス値が求められる。そして、次のステップＳ３８で、このランレングス値が０であるか否かが判定される。
【０１１１】
若し、ランレングス値が「０」であると判定されたら、処理はステップＳ４３に移行され、上述したステップＳ３５またはステップＳ３６で得られた画素値の画素データを注目画素の画素データとして、ラインメモリ制御処理部６０４によりラインメモリ６０６に書き込む。ラインメモリ６０６に書き込まれたこの画素データは、次の予測処理時に画素ａの画素データとして用いられることになる。さらに、次のステップＳ４４で、注目画素の画素データが画像出力部６０５から復号処理部２０５の外部に出力される。
【０１１２】
一方、ステップＳ３８でランレングス値が０ではないと判定されたら、処理はステップＳ３９に移行される。この場合、予測値が画素値と一致する画素がランレングス値に示される個数だけ連続的に並んでいることになる。ステップＳ３９では、注目画素の周辺３画素ａ、ｂおよびｃ（図９参照）から、注目画素の画素値を予測する。例えば、ランレングス処理部６０２内の予測処理部６１０は、ラインメモリ制御処理部６０４を介してラインメモリ６０６から画素ａ、ｂおよびｃを読み出し、これら画素ａ、ｂおよびｃを用いて平面予測により注目画素の画素値を予測する。
【０１１３】
ステップＳ３９で注目画素の画素値が予測されると、処理はステップＳ４０に移行され、予測された画素値の画素データを注目画素の画素データとして、ラインメモリ制御処理部６０４によりラインメモリ６０６に書き込む。ラインメモリ６０６に書き込まれたこの画素データは、次の予測処理時に画素ａの画素データとして用いられることになる。さらに、次のステップＳ４１で、注目画素の画素データが画像出力部６０５から復号処理部２０５の外部に出力される。
【０１１４】
次のステップＳ４２で、ステップＳ３７で求められたランレングス値が示す回数だけ、ステップＳ３９〜ステップＳ４１の処理が繰り返されたか否かが判定される。若し、ランレングス値が示す回数分の処理を未だ行っていないと判定されたら、処理はステップＳ３９に戻され、予測値に基づく注目画素データの生成処理が行われる。
【０１１５】
一方、ステップＳ４２で、ステップＳ３７で求められたランレングス値が示す回数だけ処理が行われたと判定されたら、処理はステップＳ４５に移行され、直前に復号を行った画素がラインの最終画素であるか否かが判定される。若し、直前に復号を行った画素がラインの最終画素ではないと判定されたら、処理はステップＳ４７に移行される。
【０１１６】
また、ステップＳ４５で直前に復号を行った画素がラインの最終画素であると判定されたら、処理はステップＳ４６に移行され、当該画素の属するラインを復号済みのラインとしてラインメモリ６０６の一方の領域にそのまま保持し、ラインメモリ６０６の他方の領域を、次に復号を行う復号ラインの画素が格納される領域とする。そして、処理はステップＳ４７に移行される。
【０１１７】
ステップＳ４７では、全ての画素について処理が終了したか否かが判定される。若し、終了したと判定されたら、一連の復号処理が終了される。一方、ステップＳ４７で、全ての画素について処理が終了していないと判定されたら、処理はステップＳ３０に戻され、次の符号化ランレングス値および符号化予測誤差値の組に対して上述の処理がなされる。
【０１１８】
＜復号装置＞
図１８は、本実施形態による復号装置２０５の一例の構成をより具体的に示すブロック図である。メモリアービタＩ／Ｆ７００は、メインメモリアービタ２０２に対するインターフェイスである。メモリアービタＩ／Ｆ７００は、メインメモリアービタ２０２に対して書き込み／読み出し要求やメモリアドレスを送信することで、メインメモリ２１０へのデータの書き込み、メインメモリ２１０からのデータの読み出しなどを行う。
【０１１９】
ページ符号読み込み部７０１は、ページ符号アドレス生成部７０２で生成されたアドレス情報に基づきメモリアービタＩ／Ｆ７００に対してメモリアドレスを送信する。メモリアービタＩ／Ｆ７００は、ページ符号読み込み部７０１から送信されたメモリアドレスに基づき、メインメモリ２１０のページ符号格納領域３０３から符号データを読み出すように、メインメモリアービタ２０２に対して要求する。この要求に応じてメインメモリ２１０のページ符号格納領域３０３から読み出された符号データが、メモリアービタＩ／Ｆ７００に受信され、ページ符号読み込み部７０１に供給される。ページ符号読み込み部７０１は、受信した符号データを、例えばビット列として符号フォーマット解析部７０３に転送する。
【０１２０】
符号フォーマット解析部７０３は、符号読み込み部７０１から転送された符号データをハフマン符号の規則に従って解釈して、符号データから符号化ランレングス値および符号化予測誤差値をそれぞれ取り出し、ランレングス値および予測誤差値を求める。
【０１２１】
すなわち、符号フォーマット解析部７０３は、符号読み込み部７０１から転送された符号データをハフマン符号の規則に従い１ビットずつ解釈していき、ランレングス値を求める。また、符号化ランレングス値に続けて転送される符号データの、当該符号ランレングス値の直後から３ビット分のビット列に基づき予測誤差値のグループを判定し、判定結果に応じて付加ビットを解釈して予測誤差値を求める。このとき、予測誤差値のグループがグループ＃７であると判定されたら、付加ビットそのものを注目画素の画素データとして扱う。
【０１２２】
符号フォーマット解析部７０３で求められた予測誤差値や画素データは、予測誤差処理部７０５に転送され、画素値生成処理部７２１に供給される。また、予測誤差処理部７０５において、予測処理部７２０は、後述するラインメモリ制御部７０６から供給される、復号済みの、注目画素の周辺３画素の画素ａ、ｂおよびｃによる画素データを用いて、復号を行う注目画素の画素値を、符号化の際に用いた予測方式により予測する。画素値生成処理部７２１は、符号フォーマット解析部７０３から供給された予測誤差値と、予測処理部７２０で予測された予測値とを加算して、注目画素の画素値を生成する。生成された画素値による画素データは、ラインメモリ制御部７０６に転送される。
【０１２３】
ランレングス処理部７０４において、予測処理部７１０は、後述するラインメモリ制御部７０６から供給される、復号済みの、注目画素の周辺３画素の画素ａ、ｂおよびｃによる画素データを用いて、注目画素の画素値を、符号化の際に用いた予測方式により予測する。また、ランレングス処理部７０４に転送されたランレングス値は、ランレングス処理制御部７１１に供給される。ランレングス処理制御部７１１は、予測処理部７１０で予測された予測値を画素値として、この画素値の画素データをランレングス値で示される数だけ出力するように、ランレングス処理部７０４を制御する。この画素値による画素データは、ラインメモリ制御部７０６に転送される。
【０１２４】
ラインメモリ制御部７０６に対して、第１のラインメモリ７０７および第２のラインメモリ７０８が接続される。これら第１のラインメモリ７０７および第２のラインメモリ７０８は、同一のメモリの異なる領域であってもよい。ラインメモリ制御部７０６は、第１のラインメモリ７０７および第２のラインメモリ７０８の何れか一方を復号ラインを格納するメモリとして割り当て、他方を参照ライン（復号済みのライン）を格納するメモリとして割り当てる。そして、復号ラインの復号が終了したら、メモリの割り当てを切り替える。
【０１２５】
ラインメモリ制御部７０６は、ランレングス処理部７０４および予測誤差処理部７０５から供給された画素データを、第１のラインメモリ７０７および第２のラインメモリ７０８のうち、復号ラインを格納するメモリに割り当てられた方（第１のラインメモリ７０７とする）に書き込む。それと共に、ランレングス処理部７０４および予測誤差処理部７０５から供給された画素データは、出力画素データとして画像出力部７０９を介してこの復号部２０５から出力され、例えば階調処理部２０６に供給される。
【０１２６】
以上説明したように、本発明によれば、注目画素の画素値の予測を１種類の予測処理を用いて行うため、符号化部および復号部の構成を簡易なものとすることができる。また、予測誤差値が０、すなわち、予測値と注目画素の画素値とが一致しない状態を、符号長が１ビットのランレングス値で示すように符号フォーマットを構成すると共に、符号を、ランレングス値および予測誤差値の組を単位として構成するようにしているため、符号化処理および復号処理を簡易とすることができる。また、符号をこのように構成することで、ランレングス値および予測誤差値を示すヘッダや、符号化時に用いた予測処理を示すヘッダを符号中に含める必要が無くなり、より効率的に圧縮符号化を行うことができる。
【０１２７】
＜他の実施形態＞
なお、上述では、本発明の実施形態による符号化部２０４および復号部２０５を構成する各部がハードウェア的に構成されるように説明したが、これはこの例に限定されない。すなわち、本発明に実施形態に適用な可能な画像処理装置１００における符号化部２０４や復号部２０５は、画像処理装置１００に組み込まれたＣＰＵ（図示しない）上で動作するプログラムとして、それぞれ実現可能である。
【０１２８】
この場合、ＣＰＵ上で符号化部２０４として実行されるプログラムは、例えば図７を用いて説明した符号化部２０４の各機能部（画像読み込み部４００、ラインメモリ制御処理部４０１、予測処理部４０３、予測誤差処理部４０４、ランレングス生成処理部４０５、符号フォーマット生成処理部４０６および符号書き込み部４０７）を含むモジュール構成となっている。同様に、ＣＰＵ上で復号部２０５として実行されるプログラムは、図１６を用いて説明した復号部２０５の各機能部（符号読み込み部６００、符号フォーマット解析部６０１、ランレングス処理部６０２、予測誤差処理部６０３、ラインメモリ制御処理部６０４および画像出力部６０５）を含むモジュール構成となっている。
【０１２９】
これらのプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ(Compact Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。これに限らず、プログラムは、ＣＰＵに接続されるＲＯＭ（図示しない）に予め記憶させておいてもよい。さらに、プログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【０１３０】
実際のハードウェアとしては、ＣＰＵが、例えば上述した記録媒体から符号化部２０４や復号部２０５として機能するプログラムを読み出して実行することにより、上述した各部が主記憶装置（図示しない）上にロードされる。そして、例えば符号化部２０４を実行するプログラムの場合、画像読み込み部４００、ラインメモリ制御処理部４０１、予測処理部４０３、予測誤差処理部４０４、ランレングス生成処理部４０５、符号フォーマット生成処理部４０６および符号書き込み部４０７が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１３１】
２００  ＣＰＵ
２０２  メインメモリアービタ
２０４  符号化部
２０５  復号部
２１０  メインメモリ
３０２  ＣＭＹＫバンドデータ格納領域
３０３  ページ符号格納領域
４０１  ラインメモリ制御部
４０２  ラインメモリ
４０３  予測処理部
４０４  予測誤差処理部
４０５  ランレングス生成処理部
４０６  符号フォーマット生成処理部
６０１  符号フォーマット解析部
６０２  ランレングス処理部
６０３  予測誤差処理部
６０４  ラインメモリ制御処理部
６０６  ラインメモリ
６１０  予測処理部
６１１  ランレングス処理制御部
６２０  予測処理部
６２１  画素値生成処理部
【先行技術文献】
【特許文献】
【０１３２】
【特許文献１】特開２００２−３４４３２３号公報
【特許文献２】特許第２８８８１８６号公報
【図１】
2010219777.tif 000003
【図２】
2010219777.tif 000004
【図３】
2010219777.tif 000005
【図４】
2010219777.tif 000006
【図５】
2010219777.tif 000007
【図６】
2010219777.tif 000008
【図７】
2010219777.tif 000009
【図８】
2010219777.tif 000010
【図９】
2010219777.tif 000011
【図１０−１】
2010219777.tif 000012
【図１０−２】
2010219777.tif 000013
【図１１】
2010219777.tif 000014
【図１２】
2010219777.tif 000015
【図１３】
2010219777.tif 000016
【図１４】
2010219777.tif 000017
【図１５】
2010219777.tif 000018
【図１６】
2010219777.tif 000019
【図１７】
2010219777.tif 000020
【図１８】
2010219777.tif 000021