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