説明

画像符号化方法、画像符号化装置およびプログラム

【課題】ブロック分けした画像を、フィルタ処理を併用しつつ適切な代表値で符号化することのできる画像符号化方法等を提供する
【解決手段】画像を分割して複数の第1の画像ブロックを生成するステップと、第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するステップと、第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるステップと、第2の画像ブロック内の画素に与えたラベル情報の各値に対する代表値を、その値のラベル情報を有する第2の画像ブロック内の画素に対応する第1の画像ブロック内の画素の信号値に基づいて求めるステップと、第1の画像ブロックの符号データを、この第1の画像ブロックに対応する第2の画像ブロック内の各画素に与えたラベル情報と該ラベル情報の各値に対する代表値とを用いて生成するステップを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を複数のブロックに分割して、ブロック毎の符号データを生成する画像符号化方法、画像符号化装置およびプログラムに関する。
【背景技術】
【0002】
画像情報を符号化する方法として、符号化対象の画像を複数のブロックに分割し、ブロック毎に符号化するBTC(Block Truncation Coding)がある。一般に、BTCでは、画像情報をn×m画素(たとえば、4×4画素)の矩形のブロックに分割し、各ブロックを、そのブロック内の各画素の信号値に従って複数のグループに分類する。そして、各画素にその画素がどのグループに属する画素であるかを示すラベル情報を付与(ラベリング)すると共に、グループ毎にそのグループに属する画素の信号値を代表する代表値を決定し、各ブロックを、グループ毎の代表値と画素毎のラベル情報とで表した符号データに符号化する。
【0003】
ここで、各画素は、その画素の信号値に従って、どのグループに属するかが決定されてラベリングされる。このため、画素毎に信号値が大きく変化する市松模様のような微細構造の上に、エッジやライン等の視覚的に視認し易いマクロ的なパターンが重畳しているようなブロックでは、画素毎の微細構造がラベリングに反映され、マクロ的なパターンの形状が消失することがある。
【0004】
図14は、その一例として、視覚的に視認し易いエッジが、ラベリングによって消えてしまう場合を例示している。同図(a)に示すように、元画像100には、視認される明瞭なエッジが存在し、このエッジを境界として色の濃い第1領域101と色の淡い第2領域102に分かれている。エッジの存在するブロック103を拡大すると、全体として1画素毎の市松模様の微細構造があり、色の濃い第1領域101では黒画素と白画素の市松模様に、色の淡い第2領域102はグレーの画素と白画素の市松模様になっている。
【0005】
一般的なBTCのアルゴリズムでは、たとえば、画像を8画素×8画素の単位ブロックに区切り、単位ブロック内の画素をL*a*b*色空間上の信号値に従って2色に分割する。また、2色に分割する閾値は、ブロック内画素群を主成分分析し、第一主成分に対し各画素についてスコア情報を算出し、スコア情報に基づいて決定する。各画素の信号値と閾値との関係は、同図(b)に示すようになる。なお同図(b)(c)では簡単のために信号値を1次元で表している。ここでは、ブロックの最上段の第1行の部分画素の信号値を示している。
【0006】
閾値によってラベリングすると、第1領域101の黒の画素も第2領域102のグレーの画素も共にラベル1となり、第1領域101、第2領域102ともに白画素はラベル0になる。ラベル1に対応する代表値Dは、ラベル1を与えた画素の信号値の平均値に決定され、ラベル0に対応する代表値Dは、ラベル0を与えた画素の信号値の平均値に決定されて符号化される。
【0007】
これを復号すると、このブロックの各画素の信号値は同図(c)のようになり、復号後のブロック104は同図(d)に示すような画像になる。すなわち、元画像の微細構造(市松模様)は再現されるが、元画像では視認されていた第1領域101と第2領域102との間のエッジは消失している。同図(e)に示す復号後の画像105では、元画像100で明瞭であったエッジがぼやけてしまっている。このように、画素毎の信号値に従って単純にラベリングすると、微細で見え難いパターンが残り、視認し易い境界線などが消失するといった現象が生じてしまう。
【0008】
図15は、上記の問題が生じた復号画像107とその元画像106とを対比して例示している。図中の破線で囲った部分で顕著に現われているように、復号画像107では、元画像106にあったエッジはぼやけてしまい、ブロック単位の濃淡となって、ブロックノイズが現れている。
【0009】
この問題を解決する従来の方法として、画像に、平滑化フィルタで高周波成分を除去する等の、画像の空間的特徴を抽出する処理を施し、その処理後の画像に基づいてラベルリングと各ラベルに対応する代表値の算出を行う方法がある。この方法では、ブロック内に、視認しにくい微細なパターンがあった場合はそれを平滑化によってぼかし、エッジやライン等の視認し易いパターンを残すことができる。
【0010】
たとえば、図14(a)と同じ元画像100に対して平滑化処理を施すと、ブロック103の部分の各画素の信号値は、図16(b)に示すようになる。すなわち、平滑化処理前の元画像のブロック103の信号値では、図16(a)に示すように、第1領域101も第2領域102も共に、ラベル0とラベル1とが交互に出現するようにラベリングされるが、平滑化すると、同図(b)に示すように、第1領域101の全画素がラベル1に、第2領域102の全画素がラベル0にラベリングされる。
【0011】
これを復号すると、このブロックの各画素の信号値は図16(c)のようになり、同図(d)に示す復号後のブロック104Bおよび同図(e)に示す復号画像105Bでは、元画像のブロック103に存在していた視認し難い微細構造(市松模様)は消失し、元画像100(図14(a)参照)で視認されていたエッジが再現されるようになる。
【0012】
このほか、BTCで符号化復号化した場合の画質の改善方法として、以下のようなものが提案されている。(1)文字領域と写真領域を判別し、写真領域は高周波成分を除去して圧縮率を高め、文字領域では高周波成分を除去せずにエッジの再現性を高める(下記特許文献1参照)。(2)画素毎のラベル情報のビット数を1ビットとするBTC圧縮と2ビットとするBTC圧縮とを行い、これらをそれぞれ復元し、元画像と復元画像との差に応じて、どちらのBTC圧縮を採用するかを切り替える(下記特許文献2参照)。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開平5−75875号公報
【特許文献2】特開2000−253260号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
前述したように、符号化に先立って画像に平滑化フィルタなどのフィルタ処理を施すことが有用となるケースは様々にある。しかしながら、フィルタ処理を施してからBTC符号化する従来の方法では、フィルタ処理後の画像に対してラベリングおよび代表値の算出を行っており、算出した代表値が元画像からすれば不適切な値になることがあった。
【0015】
たとえば、図17に示すように、元画像のブロック110が、明瞭な境界で白の第1領域111と黒の第2領域112とに分かれた画像の場合、元画像のブロック110の信号値は同図(b)に示すように第1領域111と第2領域112の境界で白の信号値(0)から黒の信号値(255)へと一気に変化し、第1領域111の画素はラベル0に、第2領域112の画素はラベル1にラベリングされる。
【0016】
一方、平滑化すると、このブロックの平滑化後の画像113は白に近いグレーから黒に近いグレーへと緩やかなグラデーションで変化する画像になり、その信号値は同図(c)に示すものになる。そのため、適宜の閾値によって、元画像と同じように第1領域111の画素をラベル0に、第2領域112の画素をラベル1にラベリングできたとしても、ラベル0に対応する代表値を、平滑化後の画像113におけるラベル0の画素(平滑化後の第1領域111にある画素)の信号値を使用し、その平均値として算出すると、算出した代表値が元画像の第1領域111の画素に対する適切な代表値(この例では0)とは異なる値になってしまう。ラベル1についても同様である。
【0017】
このため、復号した信号値は同図(d)に示すようになり、このブロックの復号画像114の第1領域111は薄いグレーに第2領域112は濃いグレーになり、第1領域111が白、第2領域112が黒であった元画像110とは異なる画像になってしまう。
【0018】
なお、上記のような問題は、平滑化処理に限らず、他の種類のフィルタ処理を施した場合にも生じ得る。
【0019】
本発明は、上記の問題を解決しようとするものであり、ブロック分けした画像を、フィルタ処理を併用しつつ適切な代表値で符号化することのできる画像符号化方法、画像符号化装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0020】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【0021】
[1]画像を分割して複数の第1の画像ブロックを生成するステップと、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するステップと、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるステップと、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求めるステップと、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成するステップと、
を有する
ことを特徴とする画像符号化方法。
【0022】
上記発明では、第1の画像ブロックに対してフィルタ処理を施した第2の画像ブロックの画像に基づいて領域分けを行ってラベリングする。一方、各ラベルに対応する代表値は、フィルタ処理前の第1の画像ブロックの画像から求める。これにより、微細な構造などを無視して、視認可能な画像に対応した領域分けを行ってラベリングできると共に、各ラベルの値に対する代表値をフィルタ処理前の元画像に対応した値にすることができる。
【0023】
[2]前記フィルタ処理は、平滑化処理を含む
ことを特徴とする[1]に記載の画像符号化方法。
【0024】
上記発明では、元画像に含まれる高周波成分を除去した第2の画像ブロックに基づいてラベリングする。
【0025】
[3]前記フィルタ処理は、エッジ検出処理を含み、
検出されたエッジを境界として、前記第2の画像ブロック内の画素をグループに分類する
ことを特徴とする[1]に記載の画像符号化方法。
【0026】
上記発明では、画像ブロック内のエッジを検出し、そのエッジを境界としてその画像ブロックを領域分けしてラベリングする。
【0027】
[4]前記フィルタ処理は、ライン抽出処理を含み、
前記第2の画像ブロック内の画素を、ラインの部分とライン以外の部分とにグループ分けする
ことを特徴とする[1]に記載の画像符号化方法。
【0028】
上記発明では、画像ブロック内のライン(特に細線)を検出し、画像ブロックをラインの部分とライン以外の部分に領域分けしてラベリングする。
【0029】
[5]前記第2の画像ブロックとして、前記第1の画像ブロックに第1のフィルタ処理を施した第1種の第2の画像ブロックと、前記第2の画像ブロックに第2のフィルタ処理を施した第2種の第2の画像ブロックを生成し、
前記グループ分けを、前記第1種の第2の画像ブロックと前記第2種の第2の画像ブロックのうち、施したフィルタ処理の効果が強く現われている方を用いて行う
ことを特徴とする[1]乃至[4]のいずれか1つに記載の画像符号化方法。
【0030】
上記発明では、第1の画像ブロックに対して、複数種類のフィルタ処理を個別に施して複数種類の第2の画像ブロックを生成し、フィルタの効果が最も強く現われた第2の画像ブロックに基づいて領域分けを行ってラベリングする。たとえば、縦ラインの抽出フィルタ、横ラインの抽出フィルタを個別に施すことで、縦ラインと横ラインのいずれも検出でき、いずれかのラインが検出された画像ブロックはその検出されたラインに基づいて領域分けしてラベリングする。
【0031】
[6]前記第2の画像ブロックは、分割前の画像に前記フィルタ処理を施し、該フィルタ処理後の画像のうちの前記第1の画像ブロックに対応する部分として生成する
ことを特徴とする[1]乃至[5]のいずれか1つに記載の画像符号化方法。
【0032】
上記発明では、分割前の元画像にフィルタ処理を施し、フィルタ処理後の画像のうち第1の画像ブロックに対応する箇所を、該第1の画像ブロックに対してフィルタ処理を施した第2の画像ブロックとして扱う。
【0033】
[7]画像を分割して複数の第1の画像ブロックを生成する画像分割部と、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するフィルタ処理部と、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるラベリング処理部と、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求める代表値決定部と、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成する符号データ出力部と
を有する
ことを特徴とする画像符号化装置。
【0034】
[8]コンピュータに、
画像を分割して複数の第1の画像ブロックを生成するステップと、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するステップと、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるステップと、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求めるステップと、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成するステップと、
を実行させるためのプログラム。
【0035】
上記[7][8]に係る発明では、[1]の発明と同様の効果が得られる。
【発明の効果】
【0036】
本発明に係る画像符号化方法、画像符号化装置、プログラムによれば、ブロック分けした画像を、フィルタ処理を併用しつつ適切な代表値で符号化することができ、符号化復号化に伴う画質の劣化を防ぐことができる。
【図面の簡単な説明】
【0037】
【図1】本発明に係る画像符号化方法によって画像データを符号化する画像符号化装置の概略構成を示すブロック図である。
【図2】元画像を、画像ブロックBLに分割して符号化する順序を例示した説明図である。
【図3】第1の画像ブロックの端部の画素を周囲に拡張する方法を例示した説明図である。
【図4】本発明の実施の形態に係る画像符号化装置が分割後の1つの第1の画像ブロックを符号化する処理を模式的に示した説明図である。
【図5】フィルタ処理部で平滑化処理を施す場合における画像符号化装置の符号化処理を示す流れ図である。
【図6】本発明の実施の形態に係る画像符号化装置が平滑化フィルタ処理を使用して1つの第1の画像ブロックを符号化する場合の画像および信号値の状態を例示した説明図である。
【図7】平滑化フィルタの一例を示す説明図である。
【図8】エッジのある画像に対して、フィルタ処理部でエッジ抽出処理を施す場合における画像符号化装置の符号化処理を示す流れ図である。
【図9】本発明の実施の形態に係る画像符号化装置がエッジ抽出処理を使用してエッジのある第1の画像ブロックを符号化する場合の画像および信号値の状態を例示した説明図である。
【図10】エッジ抽出フィルタの一例を示す説明図である。
【図11】ラインのある画像に対して、フィルタ処理部でライン抽出処理を施す場合における画像符号化装置の符号化処理を示す流れ図である。
【図12】本発明の実施の形態に係る画像符号化装置がライン抽出処理を使用してラインのある第1の画像ブロックを符号化する場合の画像および信号値の状態を例示した説明図である。
【図13】ライン抽出フィルタの一例を示す説明図である。
【図14】従来のBTC符号化において、市松模様などの微細構造に視覚的に視認し易いエッジが重畳されている画像を符号化したとき、そのエッジがラベリングによって復号画像から消する場合の例を示す説明図である。
【図15】図14の問題が生じた復号画像とその元画像とを対比して例示した説明図である。
【図16】従来の方法で画像に平滑化処理を行った後に符号化した場合に、市松模様などの微細構造が消失して視認可能なエッジが再現される例を示した説明図である。
【図17】従来の方法で、平滑化処理後の画像を符号化した場合に、復号画像の信号値が元画像と異なる値になる問題点が生じることを示す説明図である。
【発明を実施するための形態】
【0038】
以下、図面に基づき本発明の実施の形態を説明する。
【0039】
図1は、本発明の実施の形態に係る画像符号化方法によって画像データを符号化する画像符号化装置10の概略構成を示している。画像符号化装置10は、画像入力部11と、ブロック分割部12と、フィルタ処理部13と、ラベリング処理部14と、代表値算出部15と、符号データ出力部16とを備えている。
【0040】
画像符号化装置10は、たとえば、図2に示すように、A4サイズで解像度600dpi等の1枚の元画像Mを、その左上を基点として、8画素×8画素等の画像ブロックBLに分割し、各画像ブロックBLを順次、符号化する。たとえば、図2の破線矢印で示すように、元画像Mの左上端から右方向へ画像ブロック単位に順に符号化し、右端に到達すると1画像ブロック分下方に移動して、再び左端から右端へ順次符号化することを繰り返し行って、1枚の元画像全体を符号化する。
【0041】
図1に戻って説明を続ける。画像入力部11は、符号化対象の画像(元画像)の画像データである元画像データを入力する。ブロック分割部12は、画像入力部11によって入力した元画像データを複数の画像ブロック(これを第1の画像ブロックと呼ぶ。)に分割する。
【0042】
フィルタ処理部13は、ブロック分割部12で分割して得た第1の画像ブロックに対して所定のフィルタ処理を施す。フィルタ処理部13は第1の画像ブロック単位にフィルタ処理を施すため、第1の画像ブロックの端部の画素を注目画素とする場合には、周囲の画素が必要になる。そこで、端部の処理は、ブロック内の画素値(画素の信号値)を周囲に広げてフィルタをかける。周囲に広げる方法には以下の2通りがある。
(A)端部の画素値をそのまま周囲に広げる
(B)ブロック内の画素値を、端部で折り返して周囲に広げる
【0043】
たとえば、図3(a)のような第1の画像ブロック21に、破線で示す3×3画素のフィルタ22をかける場合、注目画素Pは画像ブロック左上端の黒画素になる。上記(A)の方法では、同図(b)に示すように、端部の画素(ここでは注目画素Pである黒画素)をそのまま周囲に広げてフィルタをかける。
【0044】
上記(B)の方法では、同図(c)に示すように、画像ブロックの枠を境に、画像ブロック内の画素値を折り返して周囲の画素とする。その際、たとえば、同図(d)の矢印で示すように、足りない画素を、注目画素Pを中心とした点対称で補う。すなわち、図中の画素1は、画素5(=注目画素P)を中心にして画素9の点対称で補っており、画素2は画素8の点対称、画素4は画素6の点対称で補っている。点対称で補えない時は、注目画素をそのまま周囲に広げる。同図(d)の例では、画素3、画素7は点対称で補えないので、画素3および画素7の画素値を画素5の画素値にして、注目画素P(画素5)をそのまま周囲に広げる。
【0045】
図1に戻って説明を続ける。ラベリング処理部14は、フィルタ処理部13で第1の画像ブロックにフィルタ処理を施して得た画像ブロック(これを、第2の画像ブロックとする)を1または複数の画素グループに分類し、それぞれの画素に、その画素が属する画素グループを示す識別情報としてラベルデータ(ラベル情報)を割り当てる。たとえば、2つのグループに分類し、一方のグループに属する画素にラベル0を、他方のグループに属する画素にラベル1を割り当てる。
【0046】
代表値算出部15は、ブロック分割部12で分割して得た第1の画像ブロックと該第1の画像ブロックに対応する第2の画像ブロックの各画素に対してラベリング処理部14で割り当てたラベルデータとを入力し、各ラベルデータの値に対する代表値を、第1の画像ブロック内の画素の信号値に基づいて決定する。すなわち、第2の画像ブロック内のラベルNを割り当てた画素に対応する位置にある第1の画像ブロック内の画素の信号値からラベルNの代表値を決定する。たとえば、第2の画像ブロック内のラベルNを割り当てた画素に対応する位置にある第1の画像ブロック内のすべての画素の信号値の平均値をラベル0に対応する代表値として算出する。
【0047】
符号データ出力部16は、ラベリング処理部14で割り当てたラベルデータと代表値算出部15で求めた代表値とを入力し、これらを用いた符号データを作成して出力する。たとえば、各第1の画像ブロックの符号データは、その第1の画像ブロックに属する各画素のラベルデータと、それらのラベルデータの値に対応する代表値とから構成される。符号データのデータ形式はこれに限定されるものではなく、これらのラベルデータと代表値からさらなる圧縮処理などを施すなどしてもよく、上記のラベルデータと代表値に基づいて生成される任意の形式の符号データを含む。
【0048】
なお、ここでは、従来のBTCアルゴリズムと同様に、ラベリングは、L*a*b*色空間の信号値に基づいて行う。また閾値などの算出は、第1の画像ブロック内画素群を主成分分析し、第一主成分に対し各画素についてスコア情報を算出し、このスコア情報に基づいて決定する。
【0049】
画像符号化装置10は、マイクロプログラムを内蔵したシーケンサや論理回路などのハードウェア回路で構成されてもよいし、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを備えたコンピュータで所定のプログラムを実行することによってその機能が実現されてもよい。本発明に係る画像符号化方法は、いかなる装置、システムで実現されてもよい。
【0050】
図4は、画像符号化装置10が分割後の1つの第1の画像ブロックを符号化する処理を模式的に示している。まず、第1の画像ブロック31にフィルタ処理を施して第2の画像ブロック32を生成する。この第2の画像ブロック32の各画素の信号値に基づいて第2の画像ブロック32の各画素を1または複数の画素グループに分類する。そして、各画素グループに属する画素にそのグループを示すラベル情報を付与する。たとえば、2つの画素グループに分類するならば、一方のグループに属する画素にラベル0を、他方のグループに属する画素にラベル1を割り当てて、ラベルデータ33を生成する。
【0051】
次に、第2の画像ブロック32をラベリングして得たラベルデータ33内のラベルN(ここではNは0または1)の画素に対応する位置にある第1の画像ブロック31内の画素の信号値からラベルNに対応する代表値を決定する。図4の例では、ラベル0の画素は左端の第1列から第4列の画素なので、第1の画像ブロック31の第1列から第4列の画素の信号値の平均値をラベル0の代表値Dとして算出する。また、ラベル1の画素は第5列から右端の第8列までの画素なので、第1の画像ブロック31の第5列から第8列の画素の信号値の平均値をラベル1の代表値Dとして算出する。そして、ラベルデータ33と代表値D、Dとを第1の画像ブロック31の符号データとして出力する。
【0052】
図5は、フィルタ処理部13で平滑化処理を施す場合の画像符号化装置10の符号化処理の流れを示している。元画像を複数に分割して第1の画像ブロックを生成する(ステップS101)。次に、図2の矢印で示すような順序で、第1の画像ブロック単位に符号化処理を行う。すなわち、上記の順序で処理対象の第1の画像ブロックを1つ選択し、該第1の画像ブロックの画像に平滑化フィルタ処理を施して第2の画像ブロックを生成する(ステップS102)。次に、第2の画像ブロック内の画素の信号値から閾値を算出する(ステップS103)。この閾値に基づいて、第2の画像ブロック内の画素を2つの画素グループに分類し(ステップS104)、同じ画素グループに属する画素に同じラベル情報を割り付けてラベルデータを生成する(ステップS105)。
【0053】
次に、ラベルデータ(ラベル情報)の値毎に代表値を算出する(ステップS106)。詳細には、ラベル情報の値毎に、その値のラベル情報が割り付けられた第2の画像ブロック内の画素に対応する位置にある第1の画像ブロック内の画素の信号値の平均値を、そのラベル情報の値に対する代表値として算出する(ステップS106)。そして、ラベルデータと代表値のデータとを当該第1の画像ブロックに対応する符号データとして出力する(ステップS107)。ステップS102〜S107の処理を、分割したすべての第1の画像ブロックについて終了するまで繰り返し行い(ステップS108;No)、全てについて符号化が終了したら(ステップS108;Yes)、本処理を終了する。
【0054】
図6は、平滑化フィルタ処理を使用した画像符号化装置10が第1の画像ブロックを符号化する場合の画像例および信号値の例を示している。この例は、図17で説明した問題点が、本発明の画像符号化装置10による符号化では解決されていることを示すものである。なお、図6および以後に示す図9、図12では簡単のために信号値を1次元で表している。
【0055】
第1の画像ブロック40は、図17の画像ブロック110と同一の画像である。第1の画像ブロック40は、明瞭な境界で白の第1領域41と黒の第2領域42とに分かれている。第1の画像ブロック40の信号値は図6(b)に示すように第1領域41と第2領域42の境界で白の信号値(0)から黒の信号値(255)へと一気に変化している。第1の画像ブロック40に対してフィルタ処理部13で平滑化処理を施した後の第2の画像ブロック43は、白に近いグレーから黒に近いグレーへと緩やかなグラデーションで変化する画像になり、その信号値は同図(c)に示すものになる。
【0056】
ラベリング処理部14が、第2の画像ブロック43を、該画像ブロックに含まれる各画素の信号値の平均値を閾値として2つのグループに分類してラベリングすると、第1領域41の画素はラベル0に、第2領域42の画素はラベル1にラベル付けされる。
【0057】
代表値算出部15は、第2の画像ブロック43においてラベル0が割り当てられた画素に対応する位置にある第1の画像ブロック40内の画素の信号値からラベル0に対応する代表値Dを算出する。すなわち、この例では、第1の画像ブロック40内の第1領域41にある全画素の信号値の平均値を代表値Dとして算出する。また代表値算出部15は、第2の画像ブロック43においてラベル1が割り当てられた画素に対応する位置にある第1の画像ブロック40内の画素の信号値からラベル1に対応する代表値Dを算出する。この例では、第1の画像ブロック40内の第2領域42にある全画素の信号値の平均値を代表値Dとして算出する。
【0058】
このように、ラベリングは平滑化処理後の第2の画像ブロック43に基づいて行い、各ラベルデータの値に対する代表値は、平滑化処理前の第1の画像ブロック40内の対応する画素の信号値に基づいて算出するので、復号した信号値は同図(d)に示すようになり、復号画像44の第1領域41は白に、第2領域42は黒になり、第1の画像ブロック40と同じ信号値の復号画像44を得ることができる。また、平滑化フィルタ処理を施すことで、市松模様のように視認され難い微細構造の特徴は消え、視認されやすい、より大きな画像の特徴が復号画像44で再現される。
【0059】
第1の画像ブロックが8×8画素の場合、たとえば、図7に示すような、5×5の平滑化フィルタを使用すればよい。
【0060】
次に、フィルタ処理部13でエッジ抽出処理を施す場合について説明する。
【0061】
図8は、エッジのある画像に対して、フィルタ処理部13でエッジ抽出処理を施す場合の画像符号化装置10の符号化処理の流れを示している。元画像を画像ブロックに分割して第1の画像ブロックを生成する(ステップS201)。次に、図2の矢印で示すような順序で、画像ブロック単位に符号化処理を行う。すなわち、上記の順序で処理対象の第1の画像ブロックを1つ選択し、該第1の画像ブロックの画像をエッジ抽出フィルタでフィルタ処理して第2の画像ブロックを生成する(ステップS202)。次に、フィルタ処理の結果に基づいて、第2の画像ブロック内の画素を2つの画素グループに分類する(ステップS203)。すなわち、エッジ抽出処理によってエッジが抽出された場合は、その抽出されたエッジを境界として、第2の画像ブロック内の画素を2つの画素グループに分類する。
【0062】
次に、同じ画素グループに属する画素に同じラベル情報を割り付けてラベルデータを生成する(ステップS204)。そして、ラベルデータ(ラベル情報)の値毎に代表値を算出する(ステップS205)。詳細には、ラベル情報の値毎に、その値のラベル情報が割り付けられた第2の画像ブロック内の画素に対応する位置にある第1の画像ブロック内の画素の信号値の平均値を、そのラベル情報の値に対する代表値として算出する(ステップS205)。そして、ラベルデータと代表値のデータとを当該第1の画像ブロックに対応する符号データとして出力する(ステップS206)。ステップS202〜S206の処理を、分割したすべての第1の画像ブロックについて終了するまで繰り返し(ステップS207;No)、全てについて符号化が終了したら(ステップS207;Yes)、本処理を終了する。
【0063】
図9は、エッジ抽出処理を使用した画像符号化装置10がエッジのある第1の画像ブロックを符号化する場合の画像例および信号値の例を示している。図9(a)に示すエッジのある第1の画像ブロック40は、図6の画像ブロック40と同一であり、明瞭な境界(エッジ)で白の第1領域41と黒の第2領域42とに分かれている。第1の画像ブロック40の信号値は図9(b)に示すように第1領域41と第2領域42の境界で白の信号値(0)から黒の信号値(255)へと一気に変化している。第2の画像ブロック53は、フィルタ処理部13でエッジ抽出フィルタを施した後の画像であり、その信号値は同図(c)に示すものになる。
【0064】
ラベリング処理部14は、抽出されたエッジ(この例の場合、黒部分の中心)を領域の境界55として、第2の画像ブロック内の画素を0と1のラベルで塗りつぶしてラベリングする。画素の塗りつぶしには、公知の塗りつぶしアルゴリズムを使用すればよい。
【0065】
代表値算出部15は、第2の画像ブロック53においてラベル0が割り当てられた画素に対応する位置にある第1の画像ブロック40内の画素の信号値からラベル0に対応する代表値Dを算出する。すなわち、この例では、第1の画像ブロック40内の第1領域41にある全画素の信号値の平均値を代表値Dとして算出する。また代表値算出部15は、第2の画像ブロック53においてラベル1が割り当てられた画素に対応する位置にある第1の画像ブロック40内の画素の信号値からラベル1に対応する代表値Dを算出する。この例では、第1の画像ブロック40内の第2領域42にある全画素の信号値の平均値を代表値Dとして算出する。
【0066】
このように、エッジ抽出処理後の第2の画像ブロック53に基づいてエッジを検出し、このエッジを境界として第2の画像ブロックを2つの画素グループ(領域)に分けてラベリングを行い、各ラベルデータの値に対する代表値は、エッジ抽出処理前の第1の画像ブロック40内の対応する画素の信号値に基づいて算出するので、復号した信号値は同図(d)に示すようになり、復号画像54の第1領域41は白に、第2領域42は黒になり、第1の画像ブロック40と同じ信号値の復号画像54を得ることができる。また、エッジ抽出フィルタを施す場合、市松模様のように視認され難い微細構造は消え、視認されやすい、より大きな構造のエッジが復号画像54で再現される。
【0067】
第1の画像ブロックが8×8画素の場合、たとえば、図10に示すような、5×5のエッジ抽出フィルタを使用すればよい。
【0068】
次に、フィルタ処理部13でライン抽出処理を施す場合について説明する。
【0069】
図11は、ラインのある画像に対して、フィルタ処理部13でライン抽出処理を施す場合の画像符号化装置10の符号化処理の流れを示している。元画像を画像ブロックに分割して第1の画像ブロックを生成する(ステップS301)。次に、図2の矢印で示すような順序で、画像ブロック単位に符号化処理を行う。すなわち、上記の順序で処理対象の第1の画像ブロックを1つ選択し、該第1の画像ブロックの画像をライン抽出フィルタで処理して第2の画像ブロックを生成する(ステップS302)。次に、フィルタ処理の結果に基づいて、第2の画像ブロック内の画素を2つの画素グループに分類する(ステップS303)。すなわち、ライン抽出処理によってラインの場所を検出し、ラインの部分の画素グループとライン以外の部分の画素グループとに領域分けする。
【0070】
次に、同じ画素グループに属する画素に同じラベル情報を割り付けてラベルデータを生成する(ステップS304)。そして、ラベルデータ(ラベル情報)の値毎に代表値を算出する(ステップS305)。詳細には、ラベル情報の値毎に、その値のラベル情報が割り付けられた第2の画像ブロック内の画素に対応する位置にある第1の画像ブロック内の画素の信号値の平均値を、そのラベル情報の値に対する代表値として算出する(ステップS305)。そして、ラベルデータと代表値のデータとを当該第1の画像ブロックに対応する符号データとして出力する(ステップS306)。ステップS302〜S306の処理を、分割したすべての第1の画像ブロックについて終了するまで繰り返し(ステップS307;No)、全てについて符号化が終了したら(ステップS307;Yes)、本処理を終了する。
【0071】
図12は、ライン抽出処理を使用した画像符号化装置10がラインを含む第1の画像ブロックを符号化する場合の画像例および信号値の例を示している。元画像には細いラインが存在しており、そのラインを中央に含む第1の画像ブロック60を処理対象とする。
【0072】
第1の画像ブロック60は、中央に2画素幅の黒のライン61が存在し、ライン以外の部分62は白画素の領域となっている。第1の画像ブロック60の信号値は図12(b)に示すようになっている。第2の画像ブロック63は、フィルタ処理部13でライン抽出フィルタを施した後の画像であり、その信号値は同図(c)に示すものになる。
【0073】
ラベリング処理部14は、ライン抽出によって検出されたラインの部分とそれ以外の部分のうちの一方に属する画素をラベル0に、他方に属する画素をラベル1に塗りつぶしてラベリングする。画素の塗りつぶしには、公知の塗りつぶしアルゴリズムを使用すればよい。
【0074】
代表値算出部15は、第2の画像ブロック63においてラベル0が割り当てられた画素に対応する位置にある第1の画像ブロック60内の画素の信号値からラベル0に対応する代表値Dを算出する。すなわち、この例では、第1の画像ブロック60内のライン以外の部分62にある全画素の信号値の平均値を代表値Dとして算出する。また代表値算出部15は、第2の画像ブロック63においてラベル1が割り当てられた画素に対応する位置にある第1の画像ブロック60内の画素の信号値からラベル1に対応する代表値Dを算出する。この例では、第1の画像ブロック60内のライン61の部分にある全画素の信号値の平均値を代表値Dとして算出する。
【0075】
このように、ライン抽出処理後の第2の画像ブロック63に基づいて、第2の画像ブロックをラインの部分とライン以外の部分の画素グループ(領域)に分類してラベリングし、各ラベルデータの値に対する代表値は、ライン抽出処理前の第1の画像ブロック60内の対応する画素の信号値に基づいて算出するので、復号した信号値は同図(d)に示すようになり、復号画像64のライン61は黒に、ライン以外の部分62は白になり、第1の画像ブロック60と同じ信号値の復号画像64を得ることができる。また、ライン抽出フィルタを施す場合、1画素幅や2画素幅などの細いラインを的確に(線幅が太ることなく)復号画像で再現することができる。また、市松模様のように、視認され難い微細構造を消すこともできる。
【0076】
第1の画像ブロックが8×8画素の場合、たとえば、図13に示すような、5×5のライン抽出フィルタを使用すればよい。同図(a)は、縦ラインを抽出する縦ライン抽出フィルタ71を、同図(b)は横ラインを抽出する横ライン抽出フィルタ72を、同図(c)は斜めラインを抽出する斜めライン抽出フィルタ73を例示している。斜めライン抽出フィルタ73は右上がりの斜めラインを検出するものであり、左上がりの斜めラインの場合はフィルタ係数「4」の並びを左上の画素と右下の画素を結ぶ斜めの対角線上に配置したものにすればよい。
【0077】
どの抽出フィルタを施すかは、元画像に含まれるラインの向きに応じて定めればよい。また、縦、横、斜めのいずれのラインも抽出して処理したい場合には、第1の画像ブロックに対して、縦、横、斜めの各ライン抽出フィルタを個別に適用し、縦ライン抽出フィルタを施した第2の画像ブロックと、横ライン抽出フィルタを施した第2の画像ブロックと、斜めライン抽出フィルタを施した第2の画像ブロックとを作成する。そして、フィルタの効果が最も強く現われた第2の画像ブロックに基づいてライン部分の画素グループとライン以外の部分の画素グループとに領域分けを行ってラベリングする。どのライン抽出フィルタを併用するかは検出したいラインの種類に応じて定めればよい。
【0078】
同様にして、エッジ抽出フィルタとライン抽出フィルタなど複数種類の異なるフィルタを併用し、フィルタ効果が最も強く現われた第2の画像ブロックに基づいて領域(画素グループ)分けを行うようにしてもよい。すなわち、各フィルタは、そのフィルタが検出対象としている特徴が存在する画像ブロックでのみ反応する(効果が出る)ので、複数種類のフィルタを適用的に使用すればよい。
【0079】
たとえば、平滑化フィルタと、エッジ抽出フィルタやライン抽出フィルタとを併用し、平滑化フィルタを施した第2の画像ブロックでラベリングすることを基本としつつ、エッジ抽出フィルタやライン抽出フィルタが強く反応した画像ブロックについては、その強く反応したフィルタの施された第2の画像ブロックでラベリングする、というようにするとよい。
【0080】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【0081】
実施の形態では、分割後の第1の画像ブロックを単位にフィルタ処理を施すようにしたが、分割前の元画像全体にフィルタ処理を施した画像(フィルタ処理済み画像)を生成し、フィルタ処理済み画像のうち、注目する第1の画像ブロックに対応する部分の画像をこの第1の画像ブロックに対応する第2の画像ブロックとして扱って画素グループへの分類およびラベリングを行うようにしてもよい。
【0082】
ラベリングにおける、信号値のL*a*b*色空間への変換や、主成分分析は必須ではない。これらを行うことが好ましいが、他の色空間へ変換してもよいし、モノクロ画像などでは主成分分析は不要である。
【0083】
フィルタのサイズや係数は、実施の形態で例示したものに限定されず、適宜に設定すればよい。
【符号の説明】
【0084】
10…画像符号化装置
11…画像入力部
12…ブロック分割部
13…フィルタ処理部
14…ラベリング処理部
15…代表値算出部
16…符号データ出力部
21…第1の画像ブロック
22…フィルタ
31…第1の画像ブロック
32…第2の画像ブロック
33…ラベルデータ
40…視認可能な構造(エッジ)を有する第1の画像ブロック
41…白画素からなる第1領域
42…黒画素からなる第2領域
43…平滑化フィルタ処理後の第2の画像ブロック
44…復号画像
53…エッジ抽出処理後の第2の画像ブロック
54…復号画像
55…エッジ抽出処理で検出された境界
60…ラインを含む第1の画像ブロック
61…ライン
62…ライン以外の部分
63…ライン抽出処理後の第2の画像ブロック
64…復号画像
71…縦ライン抽出フィルタ
72…横ライン抽出フィルタ
73…斜めライン抽出フィルタ
BL…画像ブロック
M…元画像
P…注目画素

【特許請求の範囲】
【請求項1】
画像を分割して複数の第1の画像ブロックを生成するステップと、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するステップと、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるステップと、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求めるステップと、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成するステップと、
を有する
ことを特徴とする画像符号化方法。
【請求項2】
前記フィルタ処理は、平滑化処理を含む
ことを特徴とする請求項1に記載の画像符号化方法。
【請求項3】
前記フィルタ処理は、エッジ検出処理を含み、
検出されたエッジを境界として、前記第2の画像ブロック内の画素をグループに分類する
ことを特徴とする請求項1に記載の画像符号化方法。
【請求項4】
前記フィルタ処理は、ライン抽出処理を含み、
前記第2の画像ブロック内の画素を、ラインの部分とライン以外の部分とにグループ分けする
ことを特徴とする請求項1に記載の画像符号化方法。
【請求項5】
前記第2の画像ブロックとして、前記第1の画像ブロックに第1のフィルタ処理を施した第1種の第2の画像ブロックと、前記第2の画像ブロックに第2のフィルタ処理を施した第2種の第2の画像ブロックを生成し、
前記グループ分けを、前記第1種の第2の画像ブロックと前記第2種の第2の画像ブロックのうち、施したフィルタ処理の効果が強く現われている方を用いて行う
ことを特徴とする請求項1乃至4のいずれか1つに記載の画像符号化方法。
【請求項6】
前記第2の画像ブロックは、分割前の画像に前記フィルタ処理を施し、該フィルタ処理後の画像のうちの前記第1の画像ブロックに対応する部分として生成する
ことを特徴とする請求項1乃至5のいずれか1つに記載の画像符号化方法。
【請求項7】
画像を分割して複数の第1の画像ブロックを生成する画像分割部と、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するフィルタ処理部と、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるラベリング処理部と、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求める代表値決定部と、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成する符号データ出力部と
を有する
ことを特徴とする画像符号化装置。
【請求項8】
コンピュータに、
画像を分割して複数の第1の画像ブロックを生成するステップと、
前記第1の画像ブロックに所定のフィルタ処理を施した第2の画像ブロックを生成するステップと、
前記第2の画像ブロック内の画素を複数のグループに分類すると共に、各画素にその画素が属するグループを示すラベル情報を与えるステップと、
前記第2の画像ブロック内の画素に与えた前記ラベル情報の各値に対する代表値を、その値のラベル情報を有する前記第2の画像ブロック内の画素に対応する前記第1の画像ブロック内の画素の信号値に基づいて求めるステップと、
前記第1の画像ブロックの符号データを、この第1の画像ブロックに対応する前記第2の画像ブロック内の各画素に与えた前記ラベル情報と該ラベル情報の各値に対して求めた前記代表値とを用いて生成するステップと、
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図10】
image rotate

【図11】
image rotate

【図13】
image rotate

【図4】
image rotate

【図6】
image rotate

【図9】
image rotate

【図12】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−250117(P2011−250117A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−120857(P2010−120857)
【出願日】平成22年5月26日(2010.5.26)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】