(57)【要約】【課題】短い計算処理時間で圧縮処理を実施することが可能で、画質を向上させることができる画像圧縮装置を提供する。【解決手段】画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割手段と、ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出手段と、斜面とブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出手段と、補正値を非可逆符号化するとともに、該符号化補正値と斜面を特定するパラメータとを可逆符号化する符号化手段とを備える。【選択図】    図１
2004266743.tif 000002
【特許請求の範囲】
【請求項１】
画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割手段と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出手段と、
前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出手段と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化手段とを備えたことを特徴とする画像圧縮装置。
【請求項２】
前記符号化手段は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現する符号計算手段と、ブロック内の補正値を統計的に処理することで、前記ブロックの補正値の変動の大きさを示す値を求める統計的計算手段を含むことを特徴とする請求項１に記載の画像圧縮装置。
【請求項３】
画像データを非可逆圧縮する画像圧縮方法であって、
画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割過程と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出過程と、
前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出過程と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化過程とを有することを特徴とする画像圧縮方法。
【請求項４】
前記符号化過程は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする請求項３に記載の画像圧縮方法。
【請求項５】
画像データを非可逆圧縮する画像圧縮プログラムであって、画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割処理と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出処理と、
前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出処理と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化処理とをコンピュータに行わせることを特徴とする画像圧縮プログラム。
【請求項６】
前記符号化処理は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする請求項５に記載の画像圧縮プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像の圧縮を行う画像圧縮装置、画像圧縮方法及び画像圧縮プログラムに関する。
【０００２】
【従来の技術】
画像データはデータ量が多く、圧縮せずに蓄積した場合、データ利用時の速度、データの蓄積効率のすべてにおいて性能が低下する。このため画像データを蓄積、利用する再には高効率の圧縮を行うことが必須となっている。このような画像圧縮を行う手法としてＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ  ／．ＩＳＯ  ｌＥＣ  １０９１８−１）が知られている。ＪＰＥＧによる画像圧縮は、以下に示す手順で圧縮処理が行われる。
（１）画像を８×８画素のブロックに切り分ける。
（２）符号化にＤＣＴ変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：離散コサイン変換）を用いｘ方向、ｙ方向各８要素づつ、合計６４要素の周波数成分Ｑｉｊ、および、直流成分ＤＣに変換する。
（３）量子化では本来実数であるＱｉｊに（乗算の結果が−１２８〜１２７の範囲におさまるように求めた）定数を乗算し、絶対値が小さくなるように切り捨てる等、一定の法則に基づいた正規化によって整数データに変換する。さらに、ジグザグにＱｉｊ拾い上げてデータ列にする。（ただし、０を見つけたらそれ以降のデータを０とみなす。）
（４）Ｑｉｊの系列ＤＣ成分についてエントロピー符号化の一種であるハフマン符号化を行い圧縮データとする。
（５）圧縮データやパラメータを所定の順番で多重化する。
【０００３】
また、これ以外にもブロックを符号化する方法として特許文献１に記載されたＢＴＣ（Ｂｌｏｃｋ  Ｔｒｕｎｃａｔｉｏｎ  Ｃｏｄｉｎｇ）法が知られている。この手法は、符号化対象となっているブロック内の各画素色がブロック平均値以上になるか、少ないかを示したパターン情報、さらに、ブロック平均値、そして、パターンによって変化する階調の大きさを示す（たとえば、ブロック中の画素値の分散値などの）値、の３種類のパラメータでブロックを表現する符号化方法である。
【０００４】
ところで、ＪＰＥＧのように離散コサイン変換でブロックのデータを符号化した場合には、ブロック内のエッジにそって歪（周波数成分を合成した場合特有のＤＣＴノイズ）が発生することが良く知られている。一方、ＢＴＣはエッジを忠実に再現する符号化方法であり離散コサイン変換より高速に処理できる手法であるが、発色する色数を増やすと圧縮率が極端に落ちるため、高効率の圧縮を行う際には色数が限定されてしまい、グラデーションを再現する際に段々畑状になり色の境目が目立つことになる。さらに、離散コサイン変換、ＢＴＣの両者においても、ブロック内で圧縮しているため中心に多く発生している色合いがあれは、外縁部の微妙な色合いまで中心の色に近くなってしまい、ブロックとブロックの境目で色の違いが目立ってしまう。
【０００５】
このような歪みが発生するという問題を解決するために、これらの手法についての改良方法などもいくつか提案されている。例えば、特許文献２に記載された離散コサイン変換とＢＴＣを併用して画質を向上させる手法が提案されている。この手法は、以下に示す手順で処理される。
（１）画像をブロックに分ける。
（２）各ブロックごとにエッジ抽出を行う。
（３）エッジ部にはＢＴＣ符号化とＢＴＣ復号を行い、エッジを打ち消した画像を用意する。
（４）エッジを打ち消した画像に対し離散コサイン変換を行う。
この手法を用いれば、ブロック内に現れるグラディエーションに対してでもエッジに対してでも誤差が少ない符号化が可能となる。
【０００６】
【特許文献１】
特開昭６０−０８７５９６号公報
【特許文献２】
特開平３−１９２８７６号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、特許文献２に記載された手法にあっては、ブロックの境目のノイズについてはどちらの性質を持っても減少させることは難しい上に、ブロック内のエッジ抽出、ＤＣＴといった計算量が多い処理が用いられているとともに、複数の処理を実施しなければならないため処理時間が非常に長くなってしまうという問題がある。
【０００８】
本発明は、このような事情に鑑みてなされたもので、短い計算処理時間で圧縮処理を実施することが可能で、画質を向上させることができる画像圧縮装置、画像圧縮方法及び画像圧縮プログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明は、画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割手段と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出手段と、前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出手段と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化手段とを備えたことを特徴とする。
【００１０】
請求項２に記載の発明は、前記符号化手段は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現する符号計算手段と、ブロック内の補正値を統計的に処理することで、前記ブロックの補正値の変動の大きさを示す値を求める統計的計算手段を含むことを特徴とする。
【００１１】
請求項３に記載の発明は、画像データを非可逆圧縮する画像圧縮方法であって、画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割過程と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出過程と、前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出過程と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化過程とを有することを特徴とする。
【００１２】
請求項４に記載の発明は、前記符号化過程は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする。
【００１３】
請求項５に記載の発明は、画像データを非可逆圧縮する画像圧縮プログラムであって、画像全体をｎ×ｍ画素（ｎ，ｍは４以上の自然数）のブロックに切り分けるブロック分割処理と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出処理と、前記斜面と前記ブロック内の各画素値との差分を算出することでｎ×ｍ個の補正値を算出する補正値算出処理と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化処理とをコンピュータに行わせることを特徴とする。
【００１４】
請求項６に記載の発明は、前記符号化処理は、前記ｎ×ｍ個の補正値の各々について正負を１ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明の一実施形態による画像圧縮装置を図面を参照して説明する。図１は同実施形態の構成を示すブロック図である。この図において、符号１は、圧縮対象の画像データを入力する画像入力部であり、入力した画像データは内部に保持される。画像入力部１内に保持される画像データは、標本化・量子化されたデータである。以下の説明においては、各画素を８ビットの輝度値（以下、「画素の輝度値」を「画素値」と称する）で表現する画像データであるものとする。
符号２は、画像入力部１に保持されている画像ブロックに分割するブロック分割部である。符号３は、分割されたブロックの外縁部分の画素値に基づいて、斜面を算出する外縁斜面算出部である。符号４は、外縁斜面算出部３で得られた斜面とブロック内の各画素値との差から補正値を算出する補正値算出部である。符号５は、外縁斜面算出部３で得られた斜面と、補正値算出部４で得られた補正値とを符号化する符号化部である。符号６は、各ブロックの符号化されたデータを多重化することにより圧縮画像データを出力する画像出力部である。
【００１６】
次に、図２を参照して、図１に示す画像圧縮装置の動作を説明する。図２は、図１に示す画像圧縮装置の画像圧縮動作を示すフローチャートである。まず、画像入力部１は、画像データを入力し、内部に保持する（ステップＳ１）。画像入力部１内に保持される画像データは、ビデオ信号等を標本化し、量子化したデータなどであり、画素の位置（ｘ，ｙ）と輝度値（０〜２５５）で表現されている。
【００１７】
次に、ブロック分割部２は、画像入力部１に画像データが保持されたことを受けて、入力画像をブロックに分割する（ステップＳ２）。ここでは、説明を簡単にするために、４×４画素のブロックに分割するものとして説明する。この分割処理によって、例えば３２×３２画素の入力画像であれば、６４個のブロックに分割されることとなる。入力画像の分割結果は、ブロック分割部２内に保持される。なお、ブロックのＸ方向の画素数とＹ方向の画素数は同数である必要はなく、画像全体の画素数に基づいて決定すればよい。
【００１８】
次に、外縁斜面算出部３は、ブロック分割部２において分割されたブロックのうち１つのブロック内の画素値を読み出す。そして、読み出したブロックの外縁部分の画素値から斜面を算出する（ステップＳ３）。ここでいう斜面とは、水平面を含む平面である。また、外縁部分とは、図３に示すように、ブロックの上端から縦方向の画素数の２５％、ブロックの左端から横方向の画素数の２５％、ブロックの下端から縦方向の画素数の２５％、ブロックの右端から横方向の画素数の２５％とし、縦横方向ともに、外縁部分と外縁部分に囲まれる中央部分の画素数が同じになるように設定する。例えば、コマ撮りを行う警備用ビデオのように計算能力が大きく更新レートが低いアプリケーションに用いる場合は、この値（画素数の２５％）を適用する。一方、計算能力が大きいとはいえない携帯端末や、高い更新レートの画像を圧縮する高速度の計測装置など、装置の性能に比して処理量が多いアプリケーションについては画像の精度に比べ計算量を減らす能力に重点をおき、ブロックの大きさに関係なく上下、左右の端から全て１画素ずつを外縁部分とする。
【００１９】
ここで、外縁斜面算出部３が斜面を算出する方法について説明する。例えば、４×４画素のブロック内の画素値を模式図で表現すると図４のようになる。そして、中心部分の４画素を除く外縁部分の画素値のみに注目し、これらの画素値から斜面を求めると、図５に示すような斜面を求められる。斜面は、斜面の中心値、Ｘ方向の傾き及びＹ方向の傾きで表す。Ｘ方向の傾きは図６（ａ）に示すように、ブロックの左端に沿った外縁部分（「＋」が記入してある部分）の平均値から、ブロックの右端に沿った外縁部分（「−」が記入してある部分）の平均値を減算した値（小数点以下切り捨て）とする。また、Ｙ方向の傾きも同様に図６（ｂ）に示す「＋」が記入してある外縁部分の平均値から、「−」が記入してある外縁部分の平均値を減算した値（小数点以下切り捨て）とする。また、傾斜の中心値は、外縁部分の画素値の平均値（小数点以下四捨五入）で求める。
【００２０】
なお、図７に示すように、ブロック内の中心部（外縁部分でない部分）の平均値が外縁部分の画素値範囲（画素値の最小値から最大値の範囲）に比べて極端に大きい値、もしくは、小さい値をとっている場合には、凸面、凹面である可能性が高いため例外的に処理をする。この例外処理時には傾斜面のパラメータを斜面の傾き＝０（Ｘ，Ｙ共）、斜面の中心はブロック内すべての画素の平均値とする。
【００２１】
次に、具体例を挙げて、斜面の中心値、Ｘ方向の傾き及びＹ方向の傾きを求める算出方法を説明する。図８に分割したブロックの一例を示す。図８に示す数値は、各画素の画素値である。まず左端の外縁部分の平均値を求めると、（２４＋１９＋１６＋９）／４＝１７となる。次に、右端の外縁部分の平均値を求めると、（５４＋４９＋４６＋３９）／４＝４７となる。この２つの平均値からＸ方向の傾きを求めると、１７−４７＝−３０となる。同様に、上端、下端の平均値を求めると、それぞれ（２４＋４０＋４４＋５４）／４＝４０．５、（９＋２１＋２７＋３９）＝２４となり、Ｙ方向の傾きは４０．５−２４＝１６（小数点以下切り捨て）となる。一方、傾斜面の中心値  （２４＋４０＋４４＋５４＋１９＋４９＋１６＋４６＋９＋２１＋２７＋３９）／１２＝３２（小数点以下四捨五入）となる。また、外縁部分の値の範囲が９〜５４であるので外縁部分ではない画素の平均（３９＋４０＋４０＋４２）／４＝４０．２５が含まれているため、凹凸面時の例外処理は実施されない。
この結果、Ｘ方向傾き−３０、Ｙ方向傾き１６、斜面の中心値３２が斜面を示すパラメータとなる。
【００２２】
続いて、先に求めたパラメータに基づく斜面をブロック内において表現した場合の各画素の値を求める。各画素値を計算する計算式を図９に示す。図９において、ｍは、斜面の中心値（この例では３２）、ｄｘは、Ｘ方向の傾き／ブロックのＸ方向の画素数（この例では−７．５）、ｄｙは、Ｙ方向の傾き／ブロックのＹ方向の画素数（この例では４）である。図９に示す計算式によって各画素値を求めた結果（小数点以下四捨五入）を図１０に示す。この処理によって、外縁部分から斜面が求められたこととなる。
【００２３】
なお、斜面を定義する方法として、図１１に示すように、最も傾斜が大きくなる方向（図１１に示す太い矢印の水平回転角度）を探し出し、その方向にそって傾斜を計算し、傾斜面の中心（平均値）ｍと傾斜方向ｒと傾斜量ｄを求める方法を用いてもよい。
【００２４】
次に、外縁斜面算出部３が斜面を求めたのを受けて、補正値算出部４は、各画素の補正値を算出する（ステップＳ３）。ここでいう補正値とはブロック内の実際の画素値と先に求めた斜面との差を意味する値のことであり、図８に示す実際の画素値から図１０に示す斜面の画素値を減算した結果の値である。すなわち、ブロック中の実際の値をＢ（ｘ，ｙ）、斜面に基づく値をＳ（ｘ，ｙ）、補正値をＲ（ｘ，ｙ）とすると、Ｒ（ｘ，ｙ）＝Ｂ（ｘ，ｙ）−Ｓ（ｘ，ｙ）によって補正値を算出する。ここで、ｘ、ｙはブロック内の画素位置であり１〜４の整数となる。この計算式によって求めた各補正値を図１２に示す。この処理によってブロック内の各画素の補正値が求められたこととなる。
【００２５】
次に、補正値算出部４が補正値を求めたのを受けて、符号化部５は、ブロック内の画素値を符号化する（ステップＳ５）。符号化は、まず、値が正の値か負の値かによって先に求めた補正値を２値化する。この２値化処理によって得られた結果を補正マップと呼ぶ。図１３は図１２に示す補正値を２値化して得られた補正マップの一例である。図１３において、「１」は、補正値が正であることを示し、「０」は補正値が負であることを示す。そして、正の補正値の絶対値の平均と負の補正値の絶対値の平均を計算し、その２つの重み付け平均値を求め、補正値の値の大きさを示す振幅指標とする。図１２に示す例においては、正の部分は７画素あり、平均の絶対値は｜４６／７｜＝６．６となる。また、負の部分は９画素あり、平均の絶対値は｜−３４／９｜＝３．３となる。これらの重み付け平均値を求めると、（６．６×７＋３．３×９）／１６＝５となる。また、この補正値の大きさを指標化する方法として、絶対値の平均の代わりに２乗平均（√（１／（ｎ・ｍ）ΣＲ（ｘ，ｙ）２）を用いてもよい。
これにより各ブロックの補正値は、補正マップの１６ビットと振幅指標の８ビットの合計２４ビットで表現できることになる。
【００２６】
なお、補正値が大きい場合には、データ削減処理をさらに施すようにする。例えば、Ｘ，Ｙ方向の傾きより補正値が十分大きく、Ｘ，Ｙ方向の内変化が大きい方向への１画素分の傾き１．５倍（誤差による揺らぎを吸収できる値）以上に大きい画素値の変化が振幅指標として補正の指示があった場合、視覚的に作用するのは起伏の補正値による部分が大きくなる。この場合には、傾き（Ｘ，Ｙ方向）を０にしたデータを作成して、補正値の再計算および補正値の再符号化を実施する。これにより、もともと０に近い値が大きい確率で発生している傾きデータをさらに０での発生確率を増加させることで再現時の画像を視覚的にほとんど変化させずに後に行うエントロピー符号化した際のデータ量を減少させる。傾きを削除する条件は、Ｘ，Ｙ方向の各傾きの最大値（Ｍａｘ（ｄｘ，ｄｙ））／ブロックの幅×１．５が、振幅指標より小さい場合である。
【００２７】
また、振幅指標が小さい場合には、データ削減処理をさらに施すようにする。
例えば、補正値が小さく、補正の効果が視覚的に見て意味がない場合がある。すなわち先に求めた振幅指標が一般的な画像中で視覚的に判別できない程度の変化より小さいの場合には、補正処理用のデータを生成しないことにより復元時の画像を視覚的にほとんど変化させずにデータを削減する。この削減の方法としては、削減時には補正量を０と表すとともに補正量が０の時には補正マップをデータに含めないものとする。これにより補正マップ分の２バイトの削減が可能である。復元時には補正量０を指標に補正マップを読み飛ばし、全ての補正値を０とすることで削減を再現する。ここで、視覚的に判別できない程度の変化とは、実験的に求めた結果であり、データの取りうる値の範囲（画素値が８ビットの場合は２５６）の６０分の１（画素値が８ビットの場合は４）程度の変化のことをいう。この無視する値は必要に応じてパラメータとして値の範囲の２０分の１（画像中の目を引く変化の最小値を実験で求めた値）まで変化させて、上記の設定の場合より目に付く画質の劣化と引き換えにデータの削減量を増やして、画質と圧縮率のバランスを変化させるようにしてもよい。
【００２８】
この例では、振幅指標が５であり、振幅指標（５）＜傾斜量の大きいほうの値（７．５）×１．５となり、前述した振幅指標が大きい場合に相当せず、また、振幅指標が５の場合は４（視覚的に判別できない程度の変化量）より小さくもないので、前述した補正値を削除する場合にも相当しない。したがって、補正値を符号化した値は以下の１６ビットと８ビットの値としてと符号化される。
・補正マップ＝１０１１  １０１１  ００００  １０１１（２進数）
・振幅指標＝５（１０進数）
【００２９】
次に、符号化部５は、先に求めた斜面の中心値、Ｘ方向の傾き、Ｙ方向の傾き、振幅指標及び補正マップの５つの値をエントロピー符号化することによりデータ量をさらに減少させる。これらの５つの値はその値の発生頻度に偏りがあるためエントロピー符号化によってデータ量をさらに減少させることが可能となる。
ここで用いることができる符号化方法にはハフマン符号化、算術符号化、レンジコーダ法などがある。
【００３０】
次に、１つのブロックに対して符号化処理を全てのブロックに対して施す（ステップＳ６）ことにより、画像全体の符号化がされる。そして、画像出力部６は、各符号化データを多重化して出力する（ステップＳ６）。
なお、エントロピー符号化の前段階にデータを蓄積するバッファを設け一括でエントロピー符号化を行う方法やブロック符号化する方法、量子化によりデータが出力されるたびに逐次にエントロピー符号化を行いその結果を蓄積する方法等を用いてもよい。
【００３１】
次に、前述した方法で符号化した画像データを復号化する動作を簡単に説明する。まず、エントロピー符号化したデータを復号する。これにより、斜面の中心値、Ｘ方向の傾き、Ｙ方向の傾き、振幅指標及び補正マップの５つの値が復元される。そして、図９に示す計算式によって斜面をブロック内において表現した場合の各画素の値を求める。斜面の中心値、Ｘ方向の傾き及びＹ方向の傾きは、可逆のデータであるので、各画素の値は、図１０に示す値となる。
【００３２】
次に、復号した補正マップと振幅指標（ここでは５）に基づいて、各画素毎の加減算値を求める。補正マップの値が「１」であれば、１×振幅指標＝５、補正マップの値が「０」であれば、−１×振幅指標＝−５となる。この結果、図１４に示すように各画素毎の加減算値が得られる。この加減算値と図１０に示す斜面の画素値とを加算することにより、ブロック内の画像を復元する。この処理によって復元した画像の画素値を図１５に示す。
【００３３】
結果として得られた画像（図１５に示す画素値）は、元画像（図８に示す画素値）と比べると誤差が含まれている。しかし、全体的な傾き具合（右上に向かって輝度が大きくなる）や、大きな変化がある（図１５に示す太い実線の画素境界）部分といった視覚的特長が保存され、大きな画像の一部として見た場合には良く似た画像として認識される。また、４×４画素といった小さい範囲でこの例に示されたほど変化するデータは実際の画像ではまれであり、このような場合でも視覚的特長が保存されていることが分かる。
【００３４】
次に、３２×３２画素の画像を対象にして、本発明による画像圧縮方法と従来技術による画像圧縮方法の比較結果について説明する。
＜圧縮率の比較＞
本発明の方法において、４×４画素のブロックを用いて画像圧縮を行った場合、６４個のブロックに分割される。各ブロックについて、斜面の中心値（１バイト）、Ｘ方向の傾き（１バイト）、Ｙ方向の傾き（１バイト）、振幅指標及び補正マップ（２４ビット＝３バイト）のデータを持つ必要があるので、１ブロック当たり、６バイトのデータ量となる。画像全体では、６４ブロックであるので、６バイト×６４ブロック＝３８４バイトとなる。本画像は、１バイト×３２画素×３２画素＝１０２４バイトであるため、最も圧縮率が悪い場合でも３  ７．５％に圧縮される。さらに前述した補正値情報のデータ削減処理で３８４バイトからさらに最大１２８バイト（２バイト×６４ブロック）のうち減少処理対象となったブロック比のデータ量を減少させたデータにすることも可能である。自然画におけるこの減少量ははほとんどが最大減少量の３０〜９０％となる。比較条件時にこの減少処理を適用した場合の減少量を調べた結果、４０バイトとなっていた。
一方、ＤＣＴ符号化を利用した圧縮手法としてＪＰＥＧが最も標準的手法となっている。このＪＰＥＧ手法をモノクロ（グレースケール）限定、Ｑｕａｌｉｔｙ＝６０（０：圧縮率優先〜１００：画質優先、実質２０〜９０での利用が勧められている）で同じような画質に圧縮を行った結果、３８０バイトのデータとなった。
また、本発明はエントロピー符号化によればさらに高い圧縮率を得ることが可能になる。ただし、この画像サイズでは発生率など符号化に必要な補助情報と相殺となる、もしくは、動的エントロピー符号化を行っても効果が充分出るデータ量ではなく圧縮率の向上は限られているため、このままの圧縮率でエントロピー符号化済みのＪＰＥＧと比較し同程度の値と言える。
【００３５】
＜計算時間の比較＞
本発明による方法において、発生する回数が多い計算は各画素毎に、傾きを決めるため外縁部分の平均（加算）、斜面計算（加算３回）、補正値算出（減算）、補正値の平均（加算）、補正値の符号化（ビット演算）が一回づつ発生する。
つまり、各画素に対して加減算５回、ビット演算２回の計算が必要になり、さらに、傾きより起伏が大きく傾きを無視する場合には再計算となり補正値の計算が２回繰り返されるため、合計で加減算６回、ビット演算１回が行われる。したがって、加減算は、３２画素×３２画素×６回＝約６千回、ビット演算は３２画素×３２画素×１回＝約１千回となり、合計で約７千回の演算が発生する。
一方、ＤＣＴの計算を用いた場合にはＤＣＴは座標軸ごとに分離可能なので
２次元ＤＣＴ中におけるＸ方向の１次元ＤＣＴの計算だけで考えると以下の回数となる。Ｉｎｔｅｒｎａｔｉｌｎａｌ  Ｃｏｎｆ．ｏｎ  Ａｃｏｕｓｔｉｃ，Ｓｐｅｅｃｈ，ａｎｄ，Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓ．ｐｐ９８８−９９１（１９８９．Ｍａｙ）にＣ．Ｌｏｅｆｆｌｅｒ，Ａ．Ｌｉｇｔｅｎｂｅｒｇ，Ｇ．Ｓ．Ｍｏｓｃｈｙｔｚらが「Ｐｒａｃｔｉｃａｌ  ｆａｓｔ  １−Ｄ  ＤＣＴ  ａｌｇｏｒｉｔｈｍ  ｗｉｔｈ  １１  ｍｕｌｔｉｐｌｉｃａｔｉｏｎｓ」に提案した高速化したＤＣＴでも８×１画素毎に１１回の乗算と２９回の加算が必要である。この場合には、全画面で４×３２×１１回の乗算と４×３２×２９回の加算を行う事になる。この計算はＹ方向の１次元ＤＣＴでも同じ回数だけ計算を行うため２次元ＤＣＴの計算量は高速化した場合でも、乗算が２．８千回、加算が７．２千回となる。ＤＣＴを用いた方法は本発明で提案する手法に比べ、乗算と加減算の計算時間が等しいとしても計算時間が約４０％増し、乗算が（桁数が倍になるため）計算時間が倍になる場合には約８０％増しの処理時間となっている。
このように、本発明が提案する手法を導入することにより、画質を劣化させることなく、処理時間を短縮させることができる。
【００３６】
＜画質の比較＞
人間が画像を認識しようとする際に着目しやすい、エッジや線画、そして、グラデーションといった部分について、ＢＴＣ法を用いた方法と比較した結果、本発明による方法は、エッジではやや色むらが発生する問題と引き換えに、グラデーション部を中心に画質が向上している。
【００３７】
＜補正値の非可逆符号化＞
斜面からの差分として得られた補正値は、ＤＣＴなど、その他の符号化モデルで圧縮することも可能であるが、本発明では特に各画素毎の起伏の正負を表す信号を集めた値とその平均振幅量を表す数値の２つで表すものとし、以下に効果を説明する。説明は、傾きに比べて起伏か大きい場合とそれ以外でブロック内の人間の認識の仕方が変わるのでそれぞれについて説明する。
【００３８】
（１）傾きに比べて起伏が大きくない場合
ブロック内といった小さな領域での部分画像を人間が認識する際にはその意識は一番特徴的なものに引きずられる。傾きに比べて起伏やエッジが大きくなけれはブロックの全体的な傾向かつ簡単な特徴である傾きに引きずられる。この様に画素値の傾きに注意を奪われている状態で、傾き以外に認識できる構造があるとしても傾きの表面が荒れる感じや、傾きの変化に模様が重なっている感じとして理解される。荒れている場合にはその荒れている色の変化量がまず認識され、一方、画素値が傾斜している背景に色が上乗されている模様として見る場合には模様の形状とその濃度が認識される。画素値の傾きと大まかな傾斜に付加する情報として認識を行っている場合には、周囲のブロックも含めて起伏の正負が不規則に並ぶことで荒れていることをまた、正負の分布で模様の形状の概形表現することで充分な形に閲する情報となる。さらに、荒れていると見える場合には画素間での変化量がその荒れ具合の強さとして認識される。一方、模様の場合にも模様の明るい部分と暗い部分に分けその濃度差を量として認識するだけである。これらの場合、細かい量的な分布の変化、つまり、濃度差が細かく変化する形では認識されない（図１６の濃度差）。起伏の基準面からの各画素の変化量を正の方向への偏移、負の方向への偏移を加味した両方向のブレの大きさを表した値が模様や荒れの濃度であるが、これは補正値の絶対値を平均などの統計処理を行った結果を用いることで得られるものである。よって、本手法による補正値をさらに少ない情報量にする符号化を行っても、表面への荒れや、模様を乗せる形での再現か行え、人間の視覚の特性下において同様に認識されうる画像として再現することが可能となる。
【００３９】
（２）傾きに比べ起伏が大きい場合
ブロック内といった小さな領域で部分画像を人間が認識する際には、その意識は一番特徴的なものに引きずられる。大きな起伏を含む場合には、その起伏の形状やエッジに注意を奪われそれ以外の構造を意識しない傾向がある。このように見落とされる部分としては、明るい部分の中ての微妙な輝度変化や暗い部分の中での微妙な変化がある（図１７（Ａ）部分に相当）。さらには、エッジの周囲では明るい部分の輝度、暗い部分の輝度についても、それぞれが元々の値から多少ずれたとしてもエッジで発生する輝度変化の大きさに意識を奪われるがために無視される傾向がある（図１７（Ｂ）部分に相当）。このため、エッジを境とした両側の画素の変化量と各画素が明るい部分、暗い部分のどちらに属しているかを表現できることで人間の視覚的特性に合った符号化となる。よって、本手法用いることで補正値をさらに少ない情報量にする符号化を行ってもエッジの形状とその変化が再現され、人間の視覚の特性下において同様と認識されうる画像として再現が可能となる。
【００４０】
一方、この補正値にＤＣＴを適用しデータ量を少なくしたとき、傾きに比べて起伏が大きくない場合では問題が少ないが、傾きに比べ起伏が大きい場合の補正量の形状がなまる、もしくは、エッジ部分について高周波を削った影響の局所的で大きなノイズが乗る部分について人間の視覚特性下で同様に認識されにくくなる場合がある。このように、ただ単純に効率の良い符号化方法を用いれは良いというわけではない。ところが、本手法を用いると傾きに比べて起伏が大きくない場合、傾きに比べ起伏が大きい場合の両方に対して同じ手法で斜面からの補正値として必要な人間の視覚特性に合わせた特徴の部分を表現することが可能となる。
【００４１】
このように、画像の圧縮率をＤＣＴによる方法と同程度に圧縮した場合であっても、大幅に処理時間を短縮することが可能となる。また、ＢＴＣによる方法において発生しやすいグラデーション部の画質劣化を防止することができる。したがって、ＤＣＴとＢＴＣを組み合わせた方法によって得られる画質の画像を短時間で得ることが可能となる。
【００４２】
なお、前述した説明においては、各画素が輝度値のみを有している画像について説明したが、本発明による方法が扱うデータとしてＲＧＢを独立したデータとして扱っても、ＲＧＢを組み合わせ３次元のベクトル値として一括処理しても、また、ＹＵＶを独立したデータとして扱っても、ＹＵＶを組み合わせ３次元ベクトル値として一括処理しても、さらには、Ｙを独立したデータ、ＵＶを２次元ベクトル値として一括処理しても同様の効果を得ることが可能である。
【００４３】
なお、図１における各処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより画像圧縮処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００４５】
【発明の効果】
以上説明したように、この発明によれば、外縁部分を近似する傾斜面を基準にすることで、強い傾斜をもったブロックが連続してもブロックの維ぎ目で色が急激に変化することがないため、ブロック境界ノイズが発生しなくなり画質を向上させることができるという効果が得られる。
また、エッジを圧縮する再には傾斜で表現しきれない急激な変化については、エッジ特有の極端な起伏を各画素ごとに凹、凸を切り替えることで、元画像の細部まで再現するモデルとして補正値を近似し、その近似値を傾斜情報に付加することで、エッジ部分のなまり、エッジ部分に沿ったノイズの発生といった画質低下が発生しなくなり、画質を向上させることができるという効果も得られる。
また、符号化処理において、簡単な加減算のみで処理を行うことが可能となるため、ＤＣＴなどのようにブロック毎にブロックの面積の１．２５乗回から１．５乗回（正確にはＦＦＴでｎ×ｍ×ｍ＋ｎ×ｎ×ｍ回）のオーダの計算を行う手法に比べ計算量が少なくて済み、さらに、ブロック面積が大きくなったときの計算量増加も限定される。このため、高速に画像を処理することが可能になり、ブロックサイズの変化にも柔軟に対応できるため、最適なブロックサイズを選んでエンコードできるため、圧縮率を向上させることができるという効果も得られる。
【図面の簡単な説明】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す装置の動作を示すフローチャートである。
【図３】ブロックの外縁部分を示す説明図である。
【図４】画素値を模式図で示した説明図である。
【図５】求める斜面を示す説明図である。
【図６】傾きの算出方法を示す説明図である。
【図７】画素値が凸面を構成する場合の状態を示す説明図である。
【図８】ブロックデータの一例を示す説明図である。
【図９】画素毎の計算式を示す説明図である。
【図１０】斜面の各画素値を示す説明図である。
【図１１】斜面の他の定義方法を示す説明図である。
【図１２】補正値を示す説明図である。
【図１３】補正マップの一例を示す説明図である。
【図１４】加減算値の一例を示す説明図である。
【図１５】復元画像の画素値を示す説明図である。
【図１６】補正値の非可逆符号化の効果を示す説明図である。
【図１７】補正値の非可逆符号化の効果を示す説明図である。
【符号の説明】
１・・・画像入力部
２・・・ブロック分割部
３・・・外縁斜面算出部
４・・・補正値算出部
５・・・符号化部
６・・・画像出力部
【図１】
2004266743.tif 000003
【図２】
2004266743.tif 000004
【図３】
2004266743.tif 000005
【図４】
2004266743.tif 000006
【図５】
2004266743.tif 000007
【図６】
2004266743.tif 000008
【図７】
2004266743.tif 000009
【図８】
2004266743.tif 000010
【図９】
2004266743.tif 000011
【図１０】
2004266743.tif 000012
【図１１】
2004266743.tif 000013
【図１２】
2004266743.tif 000014
【図１３】
2004266743.tif 000015
【図１４】
2004266743.tif 000016
【図１５】
2004266743.tif 000017
【図１６】
2004266743.tif 000018
【図１７】
2004266743.tif 000019