JP3835416B2 - 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム - Google Patents
画像圧縮装置、画像圧縮方法及び画像圧縮プログラム Download PDFInfo
- Publication number
- JP3835416B2 JP3835416B2 JP2003057330A JP2003057330A JP3835416B2 JP 3835416 B2 JP3835416 B2 JP 3835416B2 JP 2003057330 A JP2003057330 A JP 2003057330A JP 2003057330 A JP2003057330 A JP 2003057330A JP 3835416 B2 JP3835416 B2 JP 3835416B2
- Authority
- JP
- Japan
- Prior art keywords
- slope
- value
- correction
- block
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、画像の圧縮を行う画像圧縮装置、画像圧縮方法及び画像圧縮プログラムに関する。
【0002】
【従来の技術】
画像データはデータ量が多く、圧縮せずに蓄積した場合、データ利用時の速度、データの蓄積効率のすべてにおいて性能が低下する。このため画像データを蓄積、利用する再には高効率の圧縮を行うことが必須となっている。このような画像圧縮を行う手法としてJPEG(Joint Photographic Expert Group /.ISO lEC 10918-1)が知られている。JPEGによる画像圧縮は、以下に示す手順で圧縮処理が行われる。
(1)画像を8×8画素のブロックに切り分ける。
(2)符号化にDCT変換(Discrete Cosine Transform:離散コサイン変換)を用いx方向、y方向各8要素づつ、合計64要素の周波数成分Qij、および、直流成分DCに変換する。
(3)量子化では本来実数であるQijに(乗算の結果が−128〜127の範囲におさまるように求めた)定数を乗算し、絶対値が小さくなるように切り捨てる等、一定の法則に基づいた正規化によって整数データに変換する。さらに、ジグザグにQij拾い上げてデータ列にする。(ただし、0を見つけたらそれ以降のデータを0とみなす。)
(4)Qijの系列DC成分についてエントロピー符号化の一種であるハフマン符号化を行い圧縮データとする。
(5)圧縮データやパラメータを所定の順番で多重化する。
【0003】
また、これ以外にもブロックを符号化する方法として特許文献1に記載されたBTC(Block Truncation Coding)法が知られている。この手法は、符号化対象となっているブロック内の各画素色がブロック平均値以上になるか、少ないかを示したパターン情報、さらに、ブロック平均値、そして、パターンによって変化する階調の大きさを示す(たとえば、ブロック中の画素値の分散値などの)値、の3種類のパラメータでブロックを表現する符号化方法である。
【0004】
ところで、JPEGのように離散コサイン変換でブロックのデータを符号化した場合には、ブロック内のエッジにそって歪(周波数成分を合成した場合特有のDCTノイズ)が発生することが良く知られている。一方、BTCはエッジを忠実に再現する符号化方法であり離散コサイン変換より高速に処理できる手法であるが、発色する色数を増やすと圧縮率が極端に落ちるため、高効率の圧縮を行う際には色数が限定されてしまい、グラデーションを再現する際に段々畑状になり色の境目が目立つことになる。さらに、離散コサイン変換、BTCの両者においても、ブロック内で圧縮しているため中心に多く発生している色合いがあれは、外縁部の微妙な色合いまで中心の色に近くなってしまい、ブロックとブロックの境目で色の違いが目立ってしまう。
【0005】
このような歪みが発生するという問題を解決するために、これらの手法についての改良方法などもいくつか提案されている。例えば、特許文献2に記載された離散コサイン変換とBTCを併用して画質を向上させる手法が提案されている。この手法は、以下に示す手順で処理される。
(1)画像をブロックに分ける。
(2)各ブロックごとにエッジ抽出を行う。
(3)エッジ部にはBTC符号化とBTC復号を行い、エッジを打ち消した画像を用意する。
(4)エッジを打ち消した画像に対し離散コサイン変換を行う。
この手法を用いれば、ブロック内に現れるグラディエーションに対してでもエッジに対してでも誤差が少ない符号化が可能となる。
【0006】
【特許文献1】
特開昭60−087596号公報
【特許文献2】
特開平3−192876号公報
【0007】
【発明が解決しようとする課題】
しかしながら、特許文献2に記載された手法にあっては、ブロックの境目のノイズについてはどちらの性質を持っても減少させることは難しい上に、ブロック内のエッジ抽出、DCTといった計算量が多い処理が用いられているとともに、複数の処理を実施しなければならないため処理時間が非常に長くなってしまうという問題がある。
【0008】
本発明は、このような事情に鑑みてなされたもので、短い計算処理時間で圧縮処理を実施することが可能で、画質を向上させることができる画像圧縮装置、画像圧縮方法及び画像圧縮プログラムを提供することを目的とする。
【0009】
【課題を解決するための手段】
請求項1に記載の発明は、画像全体をn×m画素(n,mは4以上の自然数)のブロックに切り分けるブロック分割手段と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出手段と、前記斜面と前記ブロック内の各画素値との差分を算出することでn×m個の補正値を算出する補正値算出手段と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化手段とを備えたことを特徴とする。
請求項2に記載の発明は、前記符号化手段は、前記n×m個の補正値の各々について正負を1ビットで表現する符号計算手段と、ブロック内の補正値を統計的に処理することで、前記ブロックの補正値の変動の大きさを示す値を求める統計的計算手段を含むことを特徴とする。
【0010】
請求項3に記載の発明は、前記斜面を特定するパラメータにおける斜面の傾きの大きさを示す値と、前記補正値の変動の大きさを示す値とを比較し、該補正値の変動の大きさが斜面の傾きに比べて所定の比率より大きくなった場合に、基準面を傾きのない平面として再近似し、斜面の傾きの大きさを示す値を削除することを特徴とする。
請求項4に記載の発明は、前記補正値の変動の大きさを示す値が所定の値より小さい場合に、前記補正値を削除することを特徴とする。
【0011】
請求項5に記載の発明は、外縁斜面算出手段は、前記ブロックの周囲から一定幅の領域内にある画素の値に対して統計処理を行うことにより、前記斜面の大きさを求めることを特徴とする。
請求項6に記載の発明は、画像データを非可逆圧縮する画像圧縮方法であって、画像全体をn×m画素(n,mは4以上の自然数)のブロックに切り分けるブロック分割過程と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出過程と、前記斜面と前記ブロック内の各画素値との差分を算出することでn×m個の補正値を算出する補正値算出過程と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化過程とを有することを特徴とする。
【0012】
請求項7に記載の発明は、前記符号化過程は、前記n×m個の補正値の各々について正負を1ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする。
請求項8に記載の発明は、前記斜面を特定するパラメータにおける斜面の傾きの大きさを示す値と、前記補正値の振幅値とを比較し、該補正値の振幅値が斜面の傾きの大きさの値に比べて所定の比率より大きくなった場合に、基準面を傾きのない平面として再近似し、斜面の傾きの大きさを示す値を削除することを特徴とする。
【0013】
請求項9に記載の発明は、前記補正値の振幅値が所定の値より小さい場合に、前記補正値を削除することを特徴とする。
請求項10に記載の発明は、外縁斜面算出過程は、前記ブロックの周囲から一定幅の領域内にある画素の値に対して統計処理を行うことにより、前記斜面の大きさを求めることを特徴とする。
【0014】
請求項11に記載の発明は、画像データを非可逆圧縮する画像圧縮プログラムであって、画像全体をn×m画素(n,mは4以上の自然数)のブロックに切り分けるブロック分割処理と、前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを求める外縁斜面算出処理と、前記斜面と前記ブロック内の各画素値との差分を算出することでn×m個の補正値を算出する補正値算出処理と、前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化処理とをコンピュータに行わせることを特徴とする。
請求項12に記載の発明は、前記符号化処理は、前記n×m個の補正値の各々について正負を1ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明の一実施形態による画像圧縮装置を図面を参照して説明する。図1は同実施形態の構成を示すブロック図である。この図において、符号1は、圧縮対象の画像データを入力する画像入力部であり、入力した画像データは内部に保持される。画像入力部1内に保持される画像データは、標本化・量子化されたデータである。以下の説明においては、各画素を8ビットの輝度値(以下、「画素の輝度値」を「画素値」と称する)で表現する画像データであるものとする。符号2は、画像入力部1に保持されている画像ブロックに分割するブロック分割部である。符号3は、分割されたブロックの外縁部分の画素値に基づいて、斜面を算出する外縁斜面算出部である。符号4は、外縁斜面算出部3で得られた斜面とブロック内の各画素値との差から補正値を算出する補正値算出部である。符号5は、外縁斜面算出部3で得られた斜面と、補正値算出部4で得られた補正値とを符号化する符号化部である。符号6は、各ブロックの符号化されたデータを多重化することにより圧縮画像データを出力する画像出力部である。
【0016】
次に、図2を参照して、図1に示す画像圧縮装置の動作を説明する。図2は、図1に示す画像圧縮装置の画像圧縮動作を示すフローチャートである。まず、画像入力部1は、画像データを入力し、内部に保持する(ステップS1)。画像入力部1内に保持される画像データは、ビデオ信号等を標本化し、量子化したデータなどであり、画素の位置(x,y)と輝度値(0〜255)で表現されている。
【0017】
次に、ブロック分割部2は、画像入力部1に画像データが保持されたことを受けて、入力画像をブロックに分割する(ステップS2)。ここでは、説明を簡単にするために、4×4画素のブロックに分割するものとして説明する。この分割処理によって、例えば32×32画素の入力画像であれば、64個のブロックに分割されることとなる。入力画像の分割結果は、ブロック分割部2内に保持される。なお、ブロックのX方向の画素数とY方向の画素数は同数である必要はなく、画像全体の画素数に基づいて決定すればよい。
【0018】
次に、外縁斜面算出部3は、ブロック分割部2において分割されたブロックのうち1つのブロック内の画素値を読み出す。そして、読み出したブロックの外縁部分の画素値から斜面を算出する(ステップS3)。ここでいう斜面とは、水平面を含む平面である。また、外縁部分とは、図3に示すように、ブロックの上端から縦方向の画素数の25%、ブロックの左端から横方向の画素数の25%、ブロックの下端から縦方向の画素数の25%、ブロックの右端から横方向の画素数の25%とし、縦横方向ともに、外縁部分と外縁部分に囲まれる中央部分の画素数が同じになるように設定する。例えば、コマ撮りを行う警備用ビデオのように計算能力が大きく更新レートが低いアプリケーションに用いる場合は、この値(画素数の25%)を適用する。一方、計算能力が大きいとはいえない携帯端末や、高い更新レートの画像を圧縮する高速度の計測装置など、装置の性能に比して処理量が多いアプリケーションについては画像の精度に比べ計算量を減らす能力に重点をおき、ブロックの大きさに関係なく上下、左右の端から全て1画素ずつを外縁部分とする。
【0019】
ここで、外縁斜面算出部3が斜面を算出する方法について説明する。例えば、4×4画素のブロック内の画素値を模式図で表現すると図4のようになる。そして、中心部分の4画素を除く外縁部分の画素値のみに注目し、これらの画素値から斜面を求めると、図5に示すような斜面を求められる。斜面は、斜面の中心値、X方向の傾き及びY方向の傾きで表す。X方向の傾きは図6(a)に示すように、ブロックの左端に沿った外縁部分(「+」が記入してある部分)の平均値から、ブロックの右端に沿った外縁部分(「−」が記入してある部分)の平均値を減算した値(小数点以下切り捨て)とする。また、Y方向の傾きも同様に図6(b)に示す「+」が記入してある外縁部分の平均値から、「−」が記入してある外縁部分の平均値を減算した値(小数点以下切り捨て)とする。また、傾斜の中心値は、外縁部分の画素値の平均値(小数点以下四捨五入)で求める。
【0020】
なお、図7に示すように、ブロック内の中心部(外縁部分でない部分)の平均値が外縁部分の画素値範囲(画素値の最小値から最大値の範囲)に比べて極端に大きい値、もしくは、小さい値をとっている場合には、凸面、凹面である可能性が高いため例外的に処理をする。この例外処理時には傾斜面のパラメータを斜面の傾き=0(X,Y共)、斜面の中心はブロック内すべての画素の平均値とする。
【0021】
次に、具体例を挙げて、斜面の中心値、X方向の傾き及びY方向の傾きを求める算出方法を説明する。図8に分割したブロックの一例を示す。図8に示す数値は、各画素の画素値である。まず左端の外縁部分の平均値を求めると、(24+19+16+9)/4=17となる。次に、右端の外縁部分の平均値を求めると、(54+49+46+39)/4=47となる。この2つの平均値からX方向の傾きを求めると、17−47=−30となる。同様に、上端、下端の平均値を求めると、それぞれ(24+40+44+54)/4=40.5、(9+21+27+39)=24となり、Y方向の傾きは40.5−24=16(小数点以下切り捨て)となる。一方、傾斜面の中心値 (24+40+44+54+19+49+16+46+9+21+27+39)/12=32(小数点以下四捨五入)となる。また、外縁部分の値の範囲が9〜54であるので外縁部分ではない画素の平均(39+40+40+42)/4=40.25が含まれているため、凹凸面時の例外処理は実施されない。
この結果、X方向傾き−30、Y方向傾き16、斜面の中心値32が斜面を示すパラメータとなる。
【0022】
続いて、先に求めたパラメータに基づく斜面をブロック内において表現した場合の各画素の値を求める。各画素値を計算する計算式を図9に示す。図9において、mは、斜面の中心値(この例では32)、dxは、X方向の傾き/ブロックのX方向の画素数(この例では−7.5)、dyは、Y方向の傾き/ブロックのY方向の画素数(この例では4)である。図9に示す計算式によって各画素値を求めた結果(小数点以下四捨五入)を図10に示す。この処理によって、外縁部分から斜面が求められたこととなる。
【0023】
なお、斜面を定義する方法として、図11に示すように、最も傾斜が大きくなる方向(図11に示す太い矢印の水平回転角度)を探し出し、その方向にそって傾斜を計算し、傾斜面の中心(平均値)mと傾斜方向rと傾斜量dを求める方法を用いてもよい。
【0024】
次に、外縁斜面算出部3が斜面を求めたのを受けて、補正値算出部4は、各画素の補正値を算出する(ステップS3)。ここでいう補正値とはブロック内の実際の画素値と先に求めた斜面との差を意味する値のことであり、図8に示す実際の画素値から図10に示す斜面の画素値を減算した結果の値である。すなわち、ブロック中の実際の値をB(x,y)、斜面に基づく値をS(x,y)、補正値をR(x,y)とすると、R(x,y)=B(x,y)−S(x,y)によって補正値を算出する。ここで、x、yはブロック内の画素位置であり1〜4の整数となる。この計算式によって求めた各補正値を図12に示す。この処理によってブロック内の各画素の補正値が求められたこととなる。
【0025】
次に、補正値算出部4が補正値を求めたのを受けて、符号化部5は、ブロック内の画素値を符号化する(ステップS5)。符号化は、まず、値が正の値か負の値かによって先に求めた補正値を2値化する。この2値化処理によって得られた結果を補正マップと呼ぶ。図13は図12に示す補正値を2値化して得られた補正マップの一例である。図13において、「1」は、補正値が正であることを示し、「0」は補正値が負であることを示す。そして、正の補正値の絶対値の平均と負の補正値の絶対値の平均を計算し、その2つの重み付け平均値を求め、補正値の値の大きさを示す振幅指標とする。図12に示す例においては、正の部分は7画素あり、平均の絶対値は|46/7|=6.6となる。また、負の部分は9画素あり、平均の絶対値は|−34/9|=3.3となる。これらの重み付け平均値を求めると、(6.6×7+3.3×9)/16=5となる。また、この補正値の大きさを指標化する方法として、絶対値の平均の代わりに2乗平均(√(1/(n・m)ΣR(x,y)2)を用いてもよい。
これにより各ブロックの補正値は、補正マップの16ビットと振幅指標の8ビットの合計24ビットで表現できることになる。
【0026】
なお、補正値が大きい場合には、データ削減処理をさらに施すようにする。例えば、X,Y方向の傾きより補正値が十分大きく、X,Y方向の内変化が大きい方向への1画素分の傾き1.5倍(誤差による揺らぎを吸収できる値)以上に大きい画素値の変化が振幅指標として補正の指示があった場合、視覚的に作用するのは起伏の補正値による部分が大きくなる。この場合には、傾き(X,Y方向)を0にしたデータを作成して、補正値の再計算および補正値の再符号化を実施する。これにより、もともと0に近い値が大きい確率で発生している傾きデータをさらに0での発生確率を増加させることで再現時の画像を視覚的にほとんど変化させずに後に行うエントロピー符号化した際のデータ量を減少させる。傾きを削除する条件は、X,Y方向の各傾きの最大値(Max(dx,dy))/ブロックの幅×1.5が、振幅指標より小さい場合である。
【0027】
また、振幅指標が小さい場合には、データ削減処理をさらに施すようにする。例えば、補正値が小さく、補正の効果が視覚的に見て意味がない場合がある。すなわち先に求めた振幅指標が一般的な画像中で視覚的に判別できない程度の変化より小さいの場合には、補正処理用のデータを生成しないことにより復元時の画像を視覚的にほとんど変化させずにデータを削減する。この削減の方法としては、削減時には補正量を0と表すとともに補正量が0の時には補正マップをデータに含めないものとする。これにより補正マップ分の2バイトの削減が可能である。復元時には補正量0を指標に補正マップを読み飛ばし、全ての補正値を0とすることで削減を再現する。ここで、視覚的に判別できない程度の変化とは、実験的に求めた結果であり、データの取りうる値の範囲(画素値が8ビットの場合は256)の60分の1(画素値が8ビットの場合は4)程度の変化のことをいう。この無視する値は必要に応じてパラメータとして値の範囲の20分の1(画像中の目を引く変化の最小値を実験で求めた値)まで変化させて、上記の設定の場合より目に付く画質の劣化と引き換えにデータの削減量を増やして、画質と圧縮率のバランスを変化させるようにしてもよい。
【0028】
この例では、振幅指標が5であり、振幅指標(5)<傾斜量の大きいほうの値(7.5)×1.5となり、前述した振幅指標が大きい場合に相当せず、また、振幅指標が5の場合は4(視覚的に判別できない程度の変化量)より小さくもないので、前述した補正値を削除する場合にも相当しない。したがって、補正値を符号化した値は以下の16ビットと8ビットの値としてと符号化される。
・補正マップ=1011 1011 0000 1011(2進数)
・振幅指標=5(10進数)
【0029】
次に、符号化部5は、先に求めた斜面の中心値、X方向の傾き、Y方向の傾き、振幅指標及び補正マップの5つの値をエントロピー符号化することによりデータ量をさらに減少させる。これらの5つの値はその値の発生頻度に偏りがあるためエントロピー符号化によってデータ量をさらに減少させることが可能となる。ここで用いることができる符号化方法にはハフマン符号化、算術符号化、レンジコーダ法などがある。
【0030】
次に、1つのブロックに対して符号化処理を全てのブロックに対して施す(ステップS6)ことにより、画像全体の符号化がされる。そして、画像出力部6は、各符号化データを多重化して出力する(ステップS6)。
なお、エントロピー符号化の前段階にデータを蓄積するバッファを設け一括でエントロピー符号化を行う方法やブロック符号化する方法、量子化によりデータが出力されるたびに逐次にエントロピー符号化を行いその結果を蓄積する方法等を用いてもよい。
【0031】
次に、前述した方法で符号化した画像データを復号化する動作を簡単に説明する。まず、エントロピー符号化したデータを復号する。これにより、斜面の中心値、X方向の傾き、Y方向の傾き、振幅指標及び補正マップの5つの値が復元される。そして、図9に示す計算式によって斜面をブロック内において表現した場合の各画素の値を求める。斜面の中心値、X方向の傾き及びY方向の傾きは、可逆のデータであるので、各画素の値は、図10に示す値となる。
【0032】
次に、復号した補正マップと振幅指標(ここでは5)に基づいて、各画素毎の加減算値を求める。補正マップの値が「1」であれば、1×振幅指標=5、補正マップの値が「0」であれば、−1×振幅指標=−5となる。この結果、図14に示すように各画素毎の加減算値が得られる。この加減算値と図10に示す斜面の画素値とを加算することにより、ブロック内の画像を復元する。この処理によって復元した画像の画素値を図15に示す。
【0033】
結果として得られた画像(図15に示す画素値)は、元画像(図8に示す画素値)と比べると誤差が含まれている。しかし、全体的な傾き具合(右上に向かって輝度が大きくなる)や、大きな変化がある(図15に示す太い実線の画素境界)部分といった視覚的特長が保存され、大きな画像の一部として見た場合には良く似た画像として認識される。また、4×4画素といった小さい範囲でこの例に示されたほど変化するデータは実際の画像ではまれであり、このような場合でも視覚的特長が保存されていることが分かる。
【0034】
次に、32×32画素の画像を対象にして、本発明による画像圧縮方法と従来技術による画像圧縮方法の比較結果について説明する。
<圧縮率の比較>
本発明の方法において、4×4画素のブロックを用いて画像圧縮を行った場合、64個のブロックに分割される。各ブロックについて、斜面の中心値(1バイト)、X方向の傾き(1バイト)、Y方向の傾き(1バイト)、振幅指標及び補正マップ(24ビット=3バイト)のデータを持つ必要があるので、1ブロック当たり、6バイトのデータ量となる。画像全体では、64ブロックであるので、6バイト×64ブロック=384バイトとなる。本画像は、1バイト×32画素×32画素=1024バイトであるため、最も圧縮率が悪い場合でも3 7.5%に圧縮される。さらに前述した補正値情報のデータ削減処理で384バイトからさらに最大128バイト(2バイト×64ブロック)のうち減少処理対象となったブロック比のデータ量を減少させたデータにすることも可能である。自然画におけるこの減少量ははほとんどが最大減少量の30〜90%となる。比較条件時にこの減少処理を適用した場合の減少量を調べた結果、40バイトとなっていた。
一方、DCT符号化を利用した圧縮手法としてJPEGが最も標準的手法となっている。このJPEG手法をモノクロ(グレースケール)限定、Quality=60(0:圧縮率優先〜100:画質優先、実質20〜90での利用が勧められている)で同じような画質に圧縮を行った結果、380バイトのデータとなった。
また、本発明はエントロピー符号化によればさらに高い圧縮率を得ることが可能になる。ただし、この画像サイズでは発生率など符号化に必要な補助情報と相殺となる、もしくは、動的エントロピー符号化を行っても効果が充分出るデータ量ではなく圧縮率の向上は限られているため、このままの圧縮率でエントロピー符号化済みのJPEGと比較し同程度の値と言える。
【0035】
<計算時間の比較>
本発明による方法において、発生する回数が多い計算は各画素毎に、傾きを決めるため外縁部分の平均(加算)、斜面計算(加算3回)、補正値算出(減算)、補正値の平均(加算)、補正値の符号化(ビット演算)が一回づつ発生する。つまり、各画素に対して加減算5回、ビット演算2回の計算が必要になり、さらに、傾きより起伏が大きく傾きを無視する場合には再計算となり補正値の計算が2回繰り返されるため、合計で加減算6回、ビット演算1回が行われる。したがって、加減算は、32画素×32画素×6回=約6千回、ビット演算は32画素×32画素×1回=約1千回となり、合計で約7千回の演算が発生する。
一方、DCTの計算を用いた場合にはDCTは座標軸ごとに分離可能なので2次元DCT中におけるX方向の1次元DCTの計算だけで考えると以下の回数となる。Internatilnal Conf.on Acoustic,Speech,and,Signal Process.pp988-991(1989.May)にC.Loeffler,A.Ligtenberg,G.S.Moschytzらが「Practical fast 1-D DCT algorithm with 11 multiplications」に提案した高速化したDCTでも8×1画素毎に11回の乗算と29回の加算が必要である。この場合には、全画面で4×32×11回の乗算と4×32×29回の加算を行う事になる。この計算はY方向の1次元DCTでも同じ回数だけ計算を行うため2次元DCTの計算量は高速化した場合でも、乗算が2.8千回、加算が7.2千回となる。DCTを用いた方法は本発明で提案する手法に比べ、乗算と加減算の計算時間が等しいとしても計算時間が約40%増し、乗算が(桁数が倍になるため)計算時間が倍になる場合には約80%増しの処理時間となっている。
このように、本発明が提案する手法を導入することにより、画質を劣化させることなく、処理時間を短縮させることができる。
【0036】
<画質の比較>
人間が画像を認識しようとする際に着目しやすい、エッジや線画、そして、グラデーションといった部分について、BTC法を用いた方法と比較した結果、本発明による方法は、エッジではやや色むらが発生する問題と引き換えに、グラデーション部を中心に画質が向上している。
【0037】
<補正値の非可逆符号化>
斜面からの差分として得られた補正値は、DCTなど、その他の符号化モデルで圧縮することも可能であるが、本発明では特に各画素毎の起伏の正負を表す信号を集めた値とその平均振幅量を表す数値の2つで表すものとし、以下に効果を説明する。説明は、傾きに比べて起伏か大きい場合とそれ以外でブロック内の人間の認識の仕方が変わるのでそれぞれについて説明する。
【0038】
(1)傾きに比べて起伏が大きくない場合
ブロック内といった小さな領域での部分画像を人間が認識する際にはその意識は一番特徴的なものに引きずられる。傾きに比べて起伏やエッジが大きくなけれはブロックの全体的な傾向かつ簡単な特徴である傾きに引きずられる。この様に画素値の傾きに注意を奪われている状態で、傾き以外に認識できる構造があるとしても傾きの表面が荒れる感じや、傾きの変化に模様が重なっている感じとして理解される。荒れている場合にはその荒れている色の変化量がまず認識され、一方、画素値が傾斜している背景に色が上乗されている模様として見る場合には模様の形状とその濃度が認識される。画素値の傾きと大まかな傾斜に付加する情報として認識を行っている場合には、周囲のブロックも含めて起伏の正負が不規則に並ぶことで荒れていることをまた、正負の分布で模様の形状の概形表現することで充分な形に閲する情報となる。さらに、荒れていると見える場合には画素間での変化量がその荒れ具合の強さとして認識される。一方、模様の場合にも模様の明るい部分と暗い部分に分けその濃度差を量として認識するだけである。これらの場合、細かい量的な分布の変化、つまり、濃度差が細かく変化する形では認識されない(図16の濃度差)。起伏の基準面からの各画素の変化量を正の方向への偏移、負の方向への偏移を加味した両方向のブレの大きさを表した値が模様や荒れの濃度であるが、これは補正値の絶対値を平均などの統計処理を行った結果を用いることで得られるものである。よって、本手法による補正値をさらに少ない情報量にする符号化を行っても、表面への荒れや、模様を乗せる形での再現か行え、人間の視覚の特性下において同様に認識されうる画像として再現することが可能となる。
【0039】
(2)傾きに比べ起伏が大きい場合
ブロック内といった小さな領域で部分画像を人間が認識する際には、その意識は一番特徴的なものに引きずられる。大きな起伏を含む場合には、その起伏の形状やエッジに注意を奪われそれ以外の構造を意識しない傾向がある。このように見落とされる部分としては、明るい部分の中ての微妙な輝度変化や暗い部分の中での微妙な変化がある(図17(A)部分に相当)。さらには、エッジの周囲では明るい部分の輝度、暗い部分の輝度についても、それぞれが元々の値から多少ずれたとしてもエッジで発生する輝度変化の大きさに意識を奪われるがために無視される傾向がある(図17(B)部分に相当)。このため、エッジを境とした両側の画素の変化量と各画素が明るい部分、暗い部分のどちらに属しているかを表現できることで人間の視覚的特性に合った符号化となる。よって、本手法用いることで補正値をさらに少ない情報量にする符号化を行ってもエッジの形状とその変化が再現され、人間の視覚の特性下において同様と認識されうる画像として再現が可能となる。
【0040】
一方、この補正値にDCTを適用しデータ量を少なくしたとき、傾きに比べて起伏が大きくない場合では問題が少ないが、傾きに比べ起伏が大きい場合の補正量の形状がなまる、もしくは、エッジ部分について高周波を削った影響の局所的で大きなノイズが乗る部分について人間の視覚特性下で同様に認識されにくくなる場合がある。このように、ただ単純に効率の良い符号化方法を用いれは良いというわけではない。ところが、本手法を用いると傾きに比べて起伏が大きくない場合、傾きに比べ起伏が大きい場合の両方に対して同じ手法で斜面からの補正値として必要な人間の視覚特性に合わせた特徴の部分を表現することが可能となる。
【0041】
このように、画像の圧縮率をDCTによる方法と同程度に圧縮した場合であっても、大幅に処理時間を短縮することが可能となる。また、BTCによる方法において発生しやすいグラデーション部の画質劣化を防止することができる。したがって、DCTとBTCを組み合わせた方法によって得られる画質の画像を短時間で得ることが可能となる。
【0042】
なお、前述した説明においては、各画素が輝度値のみを有している画像について説明したが、本発明による方法が扱うデータとしてRGBを独立したデータとして扱っても、RGBを組み合わせ3次元のベクトル値として一括処理しても、また、YUVを独立したデータとして扱っても、YUVを組み合わせ3次元ベクトル値として一括処理しても、さらには、Yを独立したデータ、UVを2次元ベクトル値として一括処理しても同様の効果を得ることが可能である。
【0043】
なお、図1における各処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより画像圧縮処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0044】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0045】
【発明の効果】
以上説明したように、この発明によれば、外縁部分を近似する傾斜面を基準にすることで、強い傾斜をもったブロックが連続してもブロックの維ぎ目で色が急激に変化することがないため、ブロック境界ノイズが発生しなくなり画質を向上させることができるという効果が得られる。
また、エッジを圧縮する再には傾斜で表現しきれない急激な変化については、エッジ特有の極端な起伏を各画素ごとに凹、凸を切り替えることで、元画像の細部まで再現するモデルとして補正値を近似し、その近似値を傾斜情報に付加することで、エッジ部分のなまり、エッジ部分に沿ったノイズの発生といった画質低下が発生しなくなり、画質を向上させることができるという効果も得られる。
また、符号化処理において、簡単な加減算のみで処理を行うことが可能となるため、DCTなどのようにブロック毎にブロックの面積の1.25乗回から1.5乗回(正確にはFFTでn×m×m+n×n×m回)のオーダの計算を行う手法に比べ計算量が少なくて済み、さらに、ブロック面積が大きくなったときの計算量増加も限定される。このため、高速に画像を処理することが可能になり、ブロックサイズの変化にも柔軟に対応できるため、最適なブロックサイズを選んでエンコードできるため、圧縮率を向上させることができるという効果も得られる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の構成を示すブロック図である。
【図2】 図1に示す装置の動作を示すフローチャートである。
【図3】 ブロックの外縁部分を示す説明図である。
【図4】 画素値を模式図で示した説明図である。
【図5】 求める斜面を示す説明図である。
【図6】 傾きの算出方法を示す説明図である。
【図7】 画素値が凸面を構成する場合の状態を示す説明図である。
【図8】 ブロックデータの一例を示す説明図である。
【図9】 画素毎の計算式を示す説明図である。
【図10】 斜面の各画素値を示す説明図である。
【図11】 斜面の他の定義方法を示す説明図である。
【図12】 補正値を示す説明図である。
【図13】 補正マップの一例を示す説明図である。
【図14】 加減算値の一例を示す説明図である。
【図15】 復元画像の画素値を示す説明図である。
【図16】 補正値の非可逆符号化の効果を示す説明図である。
【図17】 補正値の非可逆符号化の効果を示す説明図である。
【符号の説明】
1・・・画像入力部
2・・・ブロック分割部
3・・・外縁斜面算出部
4・・・補正値算出部
5・・・符号化部
6・・・画像出力部
Claims (12)
- 画像全体をn×m画素(n,mは4以上の自然数)からなる複数のブロックに切り分けるブロック分割手段と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを、前記ブロックの全てについて求める外縁斜面算出手段と、
前記斜面と、該斜面を求めたブロック内の各画素値との差分を算出することでn×m個の補正値を、全ての斜面について算出する補正値算出手段と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化手段と
を備えたことを特徴とする画像圧縮装置。 - 前記符号化手段は、前記n×m個の補正値の各々について正負を1ビットで表現する符号計算手段と、ブロック内の補正値を統計的に処理することで、前記ブロックの補正値の変動の大きさを示す値を求める統計的計算手段を含むことを特徴とする請求項1に記載の画像圧縮装置。
- 前記斜面を特定するパラメータにおける斜面の傾きの大きさを示す値と、前記補正値の変動の大きさを示す値とを比較し、該補正値の変動の大きさが斜面の傾きに比べて所定の比率より大きくなった場合に、基準面を傾きのない平面として再近似し、斜面の傾きの大きさを示す値を削除することを特徴とする請求項2に記載の画像圧縮装置。
- 前記補正値の変動の大きさを示す値が所定の値より小さい場合に、前記補正値を削除することを特徴とする請求項2または3に記載の画像圧縮装置。
- 外縁斜面算出手段は、前記ブロックの周囲から一定幅の領域内にある画素の値に対して統計処理を行うことにより、前記斜面の大きさを求めることを特徴とする請求項1から4のいずれかに記載の画像圧縮装置。
- 画像データを非可逆圧縮する画像圧縮方法であって、
画像全体をn×m画素(n,mは4以上の自然数)からなる複数のブロックに切り分けるブロック分割過程と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを、前記ブロックの全てについて求める外縁斜面算出過程と、
前記斜面と、該斜面を求めたブロック内の各画素値との差分を算出することでn×m個の補正値を、全ての斜面について算出する補正値算出過程と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化過程と
を有することを特徴とする画像圧縮方法。 - 前記符号化過程は、前記n×m個の補正値の各々について正負を1ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする請求項6に記載の画像圧縮方法。
- 前記斜面を特定するパラメータにおける斜面の傾きの大きさを示す値と、前記補正値の振幅値とを比較し、該補正値の振幅値が斜面の傾きの大きさの値に比べて所定の比率より大きくなった場合に、基準面を傾きのない平面として再近似し、斜面の傾きの大きさを示す値を削除することを特徴とする請求項7に記載の画像圧縮方法。
- 前記補正値の振幅値が所定の値より小さい場合に、前記補正値を削除することを特徴とする請求項7または8に記載の画像圧縮方法。
- 外縁斜面算出過程は、前記ブロックの周囲から一定幅の領域内にある画素の値に対して統計処理を行うことにより、前記斜面の大きさを求めることを特徴とする請求項6から9のいずれかに記載の画像圧縮方法。
- 画像データを非可逆圧縮する画像圧縮プログラムであって、
画像全体をn×m画素(n,mは4以上の自然数)からなる複数のブロックに切り分けるブロック分割処理と、
前記ブロックの外縁部分のみの画素値から、該外縁部分を近似する斜面を特定するパラメータを、前記ブロックの全てについて求める外縁斜面算出処理と、
前記斜面と、該斜面を求めたブロック内の各画素値との差分を算出することでn×m個の補正値を、全ての斜面について算出する補正値算出処理と、
前記補正値を非可逆符号化するとともに、該符号化補正値と前記斜面を特定するパラメータとを可逆符号化する符号化処理と
をコンピュータに行わせることを特徴とする画像圧縮プログラム。 - 前記符号化処理は、前記n×m個の補正値の各々について正負を1ビットで表現するとともに、各補正値の絶対値に対し統計処理を行い、補正の大きさを示す統計的指標を求め全ての補正値の振幅値とすることにより非可逆符号化することを特徴とする請求項11に記載の画像圧縮プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003057330A JP3835416B2 (ja) | 2003-03-04 | 2003-03-04 | 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム |
US10/545,873 US7536054B2 (en) | 2003-02-19 | 2004-02-17 | Image compression device, image compression method, image compression program, compression encoding method, compression encoding device, compression encoding program, decoding method, decoding device, and decoding program |
PCT/JP2004/001717 WO2004075556A1 (ja) | 2003-02-19 | 2004-02-17 | 画像圧縮装置、画像圧縮方法、画像圧縮プログラム、及び圧縮符号化方法、圧縮符号化装置、圧縮符号化プログラム、並びに復合化方法、復合化装置、復合化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003057330A JP3835416B2 (ja) | 2003-03-04 | 2003-03-04 | 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004266743A JP2004266743A (ja) | 2004-09-24 |
JP2004266743A5 JP2004266743A5 (ja) | 2005-06-02 |
JP3835416B2 true JP3835416B2 (ja) | 2006-10-18 |
Family
ID=33120787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003057330A Expired - Fee Related JP3835416B2 (ja) | 2003-02-19 | 2003-03-04 | 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3835416B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4151684B2 (ja) | 2005-01-26 | 2008-09-17 | ソニー株式会社 | 符号化装置、符号化方法および符号化プログラム、並びに撮像装置 |
CN117292003B (zh) * | 2023-11-27 | 2024-03-19 | 深圳对对科技有限公司 | 用于计算机网络的图片云数据存储方法 |
-
2003
- 2003-03-04 JP JP2003057330A patent/JP3835416B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004266743A (ja) | 2004-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2960386B2 (ja) | 信号適応フィルタリング方法及び信号適応フィルター | |
CA2403194C (en) | Enhanced compression of gray-level images | |
EP1762101B1 (en) | Methods and apparatus for image encoding/decoding, and extended image compression/expansion | |
JP4347625B2 (ja) | 限られたディスプレイ用にディジタル画像ファイルを発生する方法及びシステム | |
US6256415B1 (en) | Two row buffer image compression (TROBIC) | |
US6459816B2 (en) | Image processing system for compressing image data including binary image data and continuous tone image data by a sub-band transform method with a high-compression rate | |
US7536054B2 (en) | Image compression device, image compression method, image compression program, compression encoding method, compression encoding device, compression encoding program, decoding method, decoding device, and decoding program | |
US6985634B2 (en) | Image processing system for compressing image data including binary image data and continuous tone image data by a sub-band transform method with a high-compression rate | |
JP3814637B2 (ja) | 画像符号/復号方法及びそのプログラムを記録した記録媒体並びに装置 | |
JPH10327334A (ja) | リンギングノイズの減少のための信号適応フィルタリング方法及び信号適応フィルター | |
JP2002507354A (ja) | 効率的なルックアップテーブルに基づく視覚的に無損失の画像圧縮方式 | |
US6697529B2 (en) | Data compression method and recording medium with data compression program recorded therein | |
CN112801922B (zh) | 一种彩色图-灰度图-彩色图转换方法 | |
EP1324618A2 (en) | Encoding method and arrangement | |
JP3835416B2 (ja) | 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム | |
JP3700976B2 (ja) | 画像処理装置および画像処理方法 | |
JP4627670B2 (ja) | 画像形成装置、画像形成方法、その方法を実行させるプログラムが格納されたコンピュータ読み取り可能な記憶媒体 | |
JP3835411B2 (ja) | 画像圧縮装置、画像圧縮方法及び画像圧縮プログラム | |
EP4468706A1 (en) | Coefficient decoding method and apparatus, and image decoder and electronic device | |
Kulkarni et al. | Fractal Image Compression Using Discrete Cosine Transform with Domain Classification and Hexagonal Partitioning | |
JPH0746407A (ja) | 画像データ圧縮装置および画像データ復元装置 | |
JPS6386963A (ja) | 画像符号化方法 | |
JPS6386964A (ja) | 画像符号化装置 | |
JPH0193278A (ja) | 多階調画像符号化装置 | |
Masoudnia et al. | A BTC-based technique for improving image compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040810 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060608 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060717 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3835416 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090804 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130804 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |