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