画像符号化装置及びその制御方法
【課題】 縮小画像の有効利用もでき、縮小画像からオリジナル画像を高精度に復元できる補間データを生成する。
【解決手段】 画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する装置であって、2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力し、縮小画像を生成する手段と、着目ブロックの縮小画像である1画素の画素値と、着目ブロックにおける画素Xとの差分値を生成する手段と、画素Xa、Xb、Xcを復元するための補間データを生成する手段とを備え、上記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含む。
【解決手段】 画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する装置であって、2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力し、縮小画像を生成する手段と、着目ブロックの縮小画像である1画素の画素値と、着目ブロックにおける画素Xとの差分値を生成する手段と、画素Xa、Xb、Xcを復元するための補間データを生成する手段とを備え、上記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを符号化する技術に関するものである。
【背景技術】
【0002】
高解像度で色域が広い画像を表すデータは、そのデータ容量が膨大になり、メモリコストも膨大になる。また、画像処理やデータ転送などで時間がかかってしまう。これに対応するための画像符号化方法として、例えば特許文献1が知られている。この文献では、 また、オリジナル画像から縮小画像を生成し、その情報を保持しておく。そして、オリジナル解像度の画像を復元したい場合には、着目している縮小画像の画素とその周辺画素から、復元対象となる画像(画素)を予測して復元する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−173913号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
縮小画像からオリジナル解像度の画像を高精度に復元するには、その復元に必要な補間データも合わせて保持しておくことが重要である。また、オリジナル画像が高解像度であるならば、その縮小画像も、オリジナル画像と同様に十分に利用できるデータ表現になっていることが望ましい。
【0005】
本発明は、上記課題に鑑みてなされたものであり、縮小画像のみの有効利用もできるようにしつつ、縮小画像からオリジナル画像を高精度に復元できる補間データを生成する効果的な一手法を提供するものである。
【課題を解決するための手段】
【0006】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置であって、前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換手段と、前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成手段と、前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成手段とを備え、前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数の画素の平均値によって縮小画像を作成するため、縮小画像のみの有効利用ができ、また、縮小画像からオリジナル画像を高精度に復元できる。
【図面の簡単な説明】
【0008】
【図1】補間データの生成処理を示すフローチャート
【図2】画像符号化装置のブロック構成図
【図3】画像データと2×2画素のブロックデータとの関係を示す図
【図4】着目ブロック内の2×2画素の配列を示す図
【図5】付加情報のビット列を示す図
【図6】処理対象画像の例を示す図
【図7】補間データのデータ構造を示す図
【図8】画像処理装置のブロック構成図
【図9】付加情報統合部の処理手順を示すフローチャート
【図10】付加情報統合部の処理例を示す図
【図11】コンピュータのブロック構成図
【図12】画像処理装置のブロック構成図
【図13】画像処理装置のブロック構成図
【発明を実施するための形態】
【0009】
以下、図面に従って本発明の実施形態を詳細に説明する。
【0010】
[第1の実施形態]
図2は、本実施形態に適用可能な画像処理装置のブロック図である。この画像処理装置は、大きく分けて2つの処理部からなる。1つは、画像を入力してから圧縮符号化を行うまでの符号化部であり、もう1つは、符号化データの一部または全部を利用して画像出力までの処理を行う復号部である。これら処理部は、一体型の装置に含まれていても良いし、それぞれが別体であっても構わない。その場合には、後述する格納部204は、それぞれの処理部に分かれて存在し、同一の符号化データを保持することになるであろう。
【0011】
図2において、画像処理装置は、符号化対象となる画像データを外部から入力し、解像度変換を行うことにより縮小画像を得る。そして、この縮小画像からオリジナル解像度の画像を復元するための付加情報も生成する。なお、画像データの入力源は、画像データをファイルとして格納している記憶媒体とするが、イメージスキャナ等であっても良く、その種類は問わない。また、実施形態における符号化対象の画像データは輝度成分のみのモノクロ多値画像データとし、輝度成分は8ビット(0乃至255の256階調)として説明する。ただし、これは実施形態の説明を簡単なものとするためであって、上記画像データは複数成分(例えば、RGBやCMYK)でも構わない。また、1成分のビット数も8ビットに限らず、8ビットを超えるビット数でも構わない。更に、符号化対象の画像は水平方向に2×W画素、垂直方向2×H画素(共に偶数)により構成されるとして説明する。なお、実際の画像の水平、垂直方向のサイズは2の整数倍となるとは限らないが、もし整数倍でない場合には、仮想的な固定値を有する画素が水平、垂直の末尾に存在するものとして処理すれば良い。
【0012】
以下、図2における画像処理装置(符号化部)における符号化処理を説明する。まず、画像入力部201から符号化対象となる画像データが順に入力される。本実施形態で処理対象とする画像データは、PDLレンダリング画像を対象とする。また、画素データの入力順序はラスタースキャン順とする。本実施形態の場合、1画素=1コンポーネントであり、そのコンポーネントは8ビットであるものしているので、画素値の取り得る範囲は0乃至255の範囲の非負の整数値である。
【0013】
解像度変換部202は、入力画像の2×2個の画素データで構成されるブロックデータ内から1画素を生成する処理を行う。ここでは、2×2画素の画素値の平均を、縮小画像の1画素の画素値として算出する。即ち、この縮小処理では、4画素から1画素の値を生成する。以上においては、解像度変換部202は、解像度変換手段として機能する。
【0014】
図3はオリジナル画像とその中の或るブロックBnに含まれる2×2画素を示している。ここでは、着目ブロックBnの中の画素を、左上からラスター順に、Bn(0,0)、Bn(0,1)、Bn(1,0)、Bn(1,1)と表す。また、着目ブロックBnの1つ前のブロックをBn−1、着目ブロックBnの次のブロックをBn+1と表現することとする。本実施形態では、着目ブロックBnのうち、Bn(0,0)、Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値の平均値を、ブロックBnに対応する縮小画像(1画素)とする。同様に、画像中の全てのブロックB0〜BW*H−1について、縮小画像の生成を行い、水平方向2W、垂直方向2H画素で構成されるオリジナル画像から、水平方向W、垂直方向Hの縮小画像を生成する。ここで生成された縮小画像は、格納部204へ出力され、格納される。補間データ生成部203は、縮小画像からオリジナル画像を復元するために必要な情報を生成する。
【0015】
まず、補間データ生成部203は、上記縮小処理によって算出したブロックBnの平均値と、縮小前の画像の左上画素Bn(0,0)との画素値の差分値を生成し、格納部204に出力する。この差分値は、縮小画像から、左上画素Bn(0,0)を復元するために必要な情報であり、縮小画像と上記差分値さえあれば、Bn(0,0)の値を正確に復元できる。以上においては、補間データ生成部203は、差分値生成手段として機能する。
【0016】
次に、補間データ生成部203は、「縮小画像から、残りの3画素Bn(0,1)、Bn(1,0)、Bn(1,1)を復元する方法」を示す補間データも出力する。以上においては、補間データ生成部203は、補間データ生成手段として機能する。上記補間データは、ブロック単位に生成され、そのブロック内の上記3画素がどのような値を持つのか、または、どのようにすれば復元できるのかを示す。この補間データの詳細は後述する。
【0017】
図4は1つのブロックに含まれる4つの画素を示している。ここで、図示の画素Xは、上述したBn(0,0)に相当し、着目画素とも呼ぶ。この着目画素Xは、上述したように「差分値を用いて復元可能な画素」である。また、画素Xa,Xb,Xcは、上述したBn(0、1),Bn(1,0),Bn(1,1)に相当し、「補間データを用いて復元される対象の画素」である。また、画素X、Xa,Xb,Xcの2×2画素の縮小画象は1画素であり、その1画素の画素値は、上記4画素の画素値の平均となる。なお、着目ブロックBnの平均値、即ちブロックBnの縮小画像である1画素の画素値を、Xmと表記するものとする。
【0018】
図1は、本実施形態における補間データ生成部203において、上記補間データを生成する処理の流れを示したフローチャートである。ここでは、上記差分値は、別途生成しているものとする。ステップS101において、補間データ生成部203は、着目ブロックBnに含まれる2×2個の画素と、着目ブロックBnに隣接する3つのブロックからそれぞれ代表1画素を入力する。ここで、着目ブロックに隣接する3つのブロックとは、ブロックBnの右隣に位置するブロックBn+1、直下に位置するブロックBn+W、斜め右下のブロックBn+W+1である。これらブロックの位置関係は図3に示される通りである。また、上記3つのブロックの代表1画素とは、それぞれ、ブロックBn+1におけるBn+1(0、0)と、ブロックBn+WにおけるBn+W(0、0)と、ブロックBn+W+1におけるBn+W+1(0,0)である。
【0019】
念のために説明しておくと、これら3つの画素は、隣接ブロックBn+1、ブロックBn+W、ブロックBn+W+1が縮小された後の1画素ではなく、これらブロックが縮小される前の元の画素値である。
【0020】
また、これら3つの画素は各ブロックの代表1画素であるから、上述した代表1画素Bn(0,0)と同様に、それぞれのブロックBn+1、Bn+W、Bn+W+1の縮小画像と対応する差分値を用いて、正確に復元できる画素である。
【0021】
ステップS102では、パラメータnを“0”で初期化する。このパラメータnは、着目ブロックを特定するためのものである。次に、ステップS103では、着目ブロックBn内の4つの画素が互いに等しいか否かを判定する。すなわち、次式(1)を満足するか否かを判定する。
Bn(0,0)=Bn(0,1)=Bn(1,0)=Bn(1,1) …(1)
【0022】
着目ブロックBnが、式(1)の成立するブロックである場合(YES)には、縮小画像中の画素Xの値Xmは、復元対象の画素Xa、Xb、Xcの値でもあるということになる。そこで、この場合には、処理をステップS105に進める。一方、着目ブロックBnについて式(1)が成り立たないと判定した場合(ステップS103でNOの場合)、すなわち、着目ブロック中の画素Xから残りの3画素Xa,Xb,Xcを復元できないと判定した場合は、ステップS104に移動する。ステップS104では、3つの代表画素Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)と、着目ブロックBn内の画素Bn(0,1),画素Bn(1,0),画素Bn(1,1)とを比較する。即ち、次式(2)を満たすか否か判定する。
Bn(0,1)=Bn+1(0,0)
且つ
Bn(1,0)=Bn+W(0,0)
且つ
Bn(1,1)=Bn+W+1(0,0) …(2)
【0023】
上記式(2)に示すように、ペア{Bn(0,1)、Bn+1(0,0)}、{Bn(1,0)、Bn+W(0,0)}、及び、{Bn(1,1)とBn+W+1(0,0)}との一致/不一致を判定する理由は、例えば、以下の通りである。一般に、上記ペアとなっている画素は、互いに隣接関係にあるため、画素値としても相関度は高い。即ち、ブロックBnの3つの画素(Bn(0,1)、Bn(1,0)、Bn(1,1))の画素値は、上記隣接ブロックの各画素と一致している可能性が高い。したがって、上記3つのペアが一致していることさえ判れば、「上記ペアが一致している」という情報を補間データとするだけで、ブロックBnの3つの画素は復元できることになる。そして、もし、先に示した式(2)が満たされる場合(3つのペアが互いに等しい場合)、上記一致を示す短い符号語を割り当てることで情報量も削減できる。
【0024】
ステップS104にて、式(2)が成立すると判定した場合には、着目ブロックBn内の画素Xa、Xb、Xcは、縮小画像の画素を復元した画素値からそのまま再現できることになる。例えば、画素Xaを復元するときには、隣接ブロックBn+1の縮小画像(1画素)とそのブロックBn+1におけるBn+1(0,0)を復元するための差分値を取り出す。そして、それら縮小画像と差分値からBn+1(0,0)の画素値を復元する。そして、その復元された画素値を画素Xaとしても利用すれば良い。同じく、画素Xbおよび画素Xcも同様にして復元できることになる。なお、着目ブロックBnが画像の右端に位置するとき、画素Bn(0、1)、Bn(1、1)と比較する対象画素は存在しない。また、着目ブロックBnが画像の下端に位置するとき、画素Bn(1、0)、Bn(1、1)と比較する対象画素は存在しない。また、着目ブロックBnが画像の右下隅に位置する場合には、画素Bn(0、1)、Bn(1、0)、Bn(1、1)と比較する対象画素が存在しない。このように、存在しない画素の値は、適当な値、例えば“255”であるものと予め決めて比較すれば良い。
【0025】
以上のように、式(2)の判定を行った結果、条件が成立する場合(YES)には、ステップS106へ処理を進める。
【0026】
もし、着目ブロックBnについて2つの式の何れも満たさない場合、着目ブロックBnの3画素(Xa=Bn(0、1),Xb=Bn(1,0),Xc=Bn(1,1))は、各ブロックの代表画素から復元できない。即ち、上述した縮小画像と差分値からBn(0、0)、Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)を復元しても、それらの画素を参考にして、3つの画素を正確に復元することができない。よって、この場合には、処理をステップS107へ進める。
【0027】
ステップS105では、着目ブロックBnに対して、第1の付加情報を符号化データの1つとして出力する。ここで、第1の付加情報とは、着目ブロックBnが式(1)の条件を満たしていることを示す情報である。言い換えれば、「画素Bn(0,1)、Bn(1,0)、Bn(1,1)は、画素Bn(0,0)から復元すること」を示す補間データである。この第1の付加情報は、図5に示すように、1ビットの“1”として出力される。なお、着目ブロックBnの符号化データには、上記第1の付加情報以外にも、解像度変換部202で生成された縮小画像と、補間データ生成部203で別途生成される上述した差分値が含まれる。以上の説明で、上記画素Bn(0,0)の復元方法は容易に理解できると思うが、念のため、復元方法を簡単に説明する。例えば、着目ブロックBnの縮小画像である1画素の画素値をP(x,y)と表し、その着目ブロックBnの差分値をPd(x,y)と表すことと定義する。以上において、着目ブロックBnの縮小画像から、元の解像度の画像(2×2倍)に復元するための式は、以下の通りである。
Bn(0,0)=P(x,y)+Pd(x,y)
Bn(0,1)=Bn(0,0)=P(x,y)+Pd(x,y)
Bn(1,0)=Bn(0,0)=P(x,y)+Pd(x,y)
Bn(1,1)=Bn(0,0)=P(x,y)+Pd(x,y) …(3)
【0028】
ステップS106では、着目ブロックBnに対して、第2の付加情報を符号化データの1つとして出力する。ここで、第2の付加情報とは、着目ブロックBnが式(2)の条件を満たしていることを示す情報である。言い換えれば、「画素Bn(0,1)、Bn(1,0)、Bn(1,1)は、それぞれ、画素Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)から復元すること」を示す補間データである。この第2の付加情報は、図5に示すように、2ビットの“01”として出力される。以上の説明で、上記3画素の復元方法は容易に理解できると思うが、念のため、復元方法を簡単に説明する。上述したように、P(x,y)とPd(x,y)を定義する。同じく、ブロックBn+1の縮小画像である1画素の画素値をP(x+1,y)と表し、ブロックBn+Wの縮小画像である1画素の画素値をP(x,y+1)と表し、ブロックBn+W+1の縮小画像である1画素の画素値をP(x+1,y+1)と表す。以上において、着目ブロックBnの縮小画像から、元の解像度の画像(2×2倍)に復元するための式は、以下の通りである。
Bn(0,0)=P(x,y)+Pd(x,y)
Bn(0,1)=P(x+1,y)
Bn(1,0)=P(x,y+1)
Bn(1,1)=P(x+1,y+1) …(4)
【0029】
ステップS107では、着目ブロックBnに対して、第3の付加情報を符号化データの1つとして出力する。ここで、第3の付加情報とは、上記Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値そのものを示す各画素8ビット(合計24ビット)の画素データである。これが上記第1の付加情報や第2の付加情報と同様に、補間データとして出力される。この第3の付加情報は、図5に示すように、上記第1、第2の付加情報と区別できるように、先頭の2ビットとして“00”を出力し、この2ビットに後続してBn(0,1)、Bn(1,0)、Bn(1,1)の画素値を表す24ビットを出力する。この第3の付加情報によれば、Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値は、Bn(0,0)やBn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)の値に関らず、正確に復元できる。
【0030】
なお、本実施形態では、第1〜第3の付加情報として、図5に示す表現方法を例示したが、それぞれの付加情報の違いが識別できるのであれば、他の表現でも良い。例えば、第1の付加情報と第2の付加情報のビット表現が逆であっても構わない。
【0031】
以上の処理により、着目ブロックBnの補間データとして、第1〜第3の付加情報のいずれかが出力される。
【0032】
ステップS108では、着目ブロックBnが、符号化対象画像を構成するブロックの最終ブロック(画像の右下隅のブロック)であったか否かを判断する。もし、最終ブロックではない場合(NOの場合)にはステップS109にて変数nを“1”だけ更新し、ステップS103に処理を戻す。もし、最終ブロックを処理していた場合には、図1の一連の処理を終了する。
【0033】
以上の処理により、縮小画像を表すデータと、差分値のデータと、補間データを出力することができ、これらデータを用いて、元の解像度のオリジナル画像を復元することが可能となる。
【0034】
図6(a)は、上記式(1)を満たすようなブロックで構成されている画像の一例である。この図においては、2×2画素の各ブロックごとに色が一定となっている。図6(b)は、上記式(2)を満たすようなブロックを一部に含む画像の一例である。この図においては、ブロックB0が、上記式(2)を満たしている。符号化対象となる高解像度の画像においては、ここで示したような図6(a)や図6(b)のような画像が局所的に散在している。したがって、ブロック単位に上記第1〜第3の付加情報の何れを符号化データの一部として出力するべきか、判断する必要がある。
【0035】
格納部204は、各ブロックについて、上述した縮小画像を表す画像データと、差分値のデータと、補間データを格納する。それらを格納する際のデータ配列としては、例えば、縮小画像を表す画像データを、符号化対象となる1画面分、配列する。続いて、差分値のデータを1画面分、配列する。続いて、補間データを1画面分、配列する。図7は、上記データ配列のうち、補間データの一部を示すものである。ビットの配列方法は上述した図5に従っているので、図7のデータ配列は、4ブロック分の補間データが配列されていることとなる。
【0036】
画像展開部205は、格納部204に格納されている、縮小画像と差分値と補間データとを用いて、元の解像度のオリジナル画像の復元を行う。この復元については上述した通りであるので、説明を省略する。
【0037】
画像出力部206は、画像展開部205で復元された元の解像度のオリジナル画像を、他の装置へデータとして出力するか、或いは可視画像として出力するものであり、例えばデータ送信器あるいは、プリンタやディスプレイに相当する。
【0038】
画像処理部207は、オリジナル画像を復元するのではなく、縮小画像を用いて種々のデータ処理を行うものである。画像処理部207は、例えば、縮小画像をそのまま後段の画像出力部206に出力しても良い。また例えば、画像出力部206で可視化される状況に合わせて色変換処理などが行われても良い。また例えば、画像出力部206の更に後段においてオリジナル画像または縮小画像が検索されるために、その縮小画像から特徴量を検出する処理であっても良い。画像処理部208で処理された画像データは、画像出力部206へ出力される。
【0039】
以上のように、本実施形態によれば、高解像度のオリジナル画像から、上述した方法で縮小画像を表す画像データと、差分値のデータと、補間データとを生成する。これにより、高解像度の画像を効率良く符号化できると共に、必要に応じて縮小画像も利用できる。特に、上記符号化技術は可逆符号化に相当し、符号化データである縮小画像、差分値、補間データからオリジナル画像を、画質の劣化を伴わずに復元できる。
【0040】
ところで、本実施形態ではオリジナル画像から、水平、垂直方向とも1/2の縮小画像を生成する場合について説明したが、変形例として、上記縮小画像から更に、水平、垂直方向とも1/2の縮小画像を生成するような場合にも適用できる。
【0041】
この場合には、符号化データは「第2段階の縮小画像を表す画像データと、第2段階の差分値のデータと、第2段階の補間データと、第1段階の差分値のデータと、第1段階の補間データ」となる。これは、上記「第2段階の縮小画像を表す画像データと、第2段階の差分値のデータと、第2段階の補間データ」の3つのデータから「第1段階の縮小画像を表す画像データ」を復元できることからも容易に理解できるであろう。
【0042】
なお、ここで、オリジナル画像の縮小画像を「第1段階の縮小画像」と呼ぶ。また「第1段階の縮小画像」の縮小画像を、「第2段階の縮小画像」と呼ぶ。また、オリジナル画像の縮小画像を「第1段階の縮小画像」から復元するために必要な差分値を「第1段階の差分値のデータ」と呼ぶ。また、「第1段階の縮小画像」を「第2段階の縮小画像」から復元するために必要な差分値を「第2段階の差分値のデータ」と呼ぶ。また、オリジナル画像の縮小画像を「第1段階の縮小画像」から復元するために必要な補間データを「第1段階の補間のデータ」と呼ぶ。また、「第1段階の縮小画像」を「第2段階の縮小画像」から復元するために必要な補間データを「第2段階の補間のデータ」と呼ぶ。
【0043】
第2段階の差分値および第2段階の補間データについては、上記実施形態にて説明したオリジナル画像を「第1段階の縮小画像」とみなし、上記実施形態にて説明した縮小画像を「第2段階の縮小画像」とみなすことで、容易に理解できよう。
【0044】
[第1の実施形態の変形例]
上記第1の実施形態と同等の処理を、コンピュータプログラムによって実現する例を第1の実施形態の変形例として以下に説明する。図11は、本変形例における情報処理装置(例えばパーソナルコンピュータ)のブロック構成図である。図中、1401はCPUで、RAM1402やROM1403に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。1402はRAMで、外部記憶装置1407や記憶媒体ドライブ1408、若しくはI/F1409を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、RAM1402は、CPU1401が各種の処理を実行する際に使用するワークエリアも備える。1403はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。1404、1405は夫々キーボード、マウスで、CPU1401に対して各種の指示を入力することができる。1406は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。1407はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置1407には、OS(オペレーティングシステム)や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、CPU1401は、これらのプログラムやデータをRAM1402上の所定のエリアにロードし、実行することになる。1408は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1402や外部記憶装置1407に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ1408は、CPU1401による制御によって、これらのプログラムやデータをRAM1402上の所定のエリアにロードする。1409はI/Fで、このI/F1409によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のRAM1402や外部記憶装置1407、あるいは記憶媒体ドライブ1408に入力することもできる。1410は上述の各部を繋ぐバスである。上記構成において、本装置の電源がONになると、CPU1401はROM1403のブートプログラムに従って、外部記憶装置1407からOSをRAM1402にロードする。この結果、キーボード1404、マウス1405の入力が可能となり、表示装置1406にGUIを表示することが可能になる。ユーザが、キーボード1404やマウス1405を操作し、外部記憶装置1407に格納された画像符号化処理用アプリケーションプログラムの起動の指示を行なうと、CPU1401はそのプログラムをRAM1402にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。この場合の符号化アプリケーションは、指定された画像データから先に説明したブロック単位に1画素の縮小画像を生成する処理と、差分値を生成する処理と、補間データを生成する処理(図1のフローチャート)に示した処理を行なう。そして、その結果である符号化データを1つのファイルとして、格納部204と同等の記憶装置に格納したり、外部装置もしくはネットワーク上に転送される。
【0045】
[第2の実施形態]
上記第1の実施形態では、補間データの最小符号量は、3画素に対して1ビットであった。第2の実施形態では、この符号化効率を考慮した変形例を説明する。本第2の実施形態における「ブロック」とは、第1の実施形態と同様に2×2画素を表わす。そして、「タイル」とは、水平方向にM個、垂直方向にN個(ともに2以上の整数)のブロックからなる画像とする。ここでは、説明を簡単なものとするため、1タイルを8×8個のブロックで構成されるものとする。すなわち、1タイルは16×16画素からなる。また、説明を簡単にするため、符号化対象の画像データの水平方向の画素数を16W、垂直方向の画素数を16H、つまり、共に16の整数倍であるものとして説明する。
【0046】
図8は、本実施形態における画像符号化装置のブロック図である。図2と異なる点は、補間データ生成部203の前にタイル分割部801を設けた点と、補間データ生成部203の後に、付加情報統合部802を設けた点である。これ以外は第1の実施形態と同じであるので、説明を省略する。
【0047】
タイル分割部801は、画像入力部201から入力した画像データを16×16画素のタイルに分割し、そのタイルの画像データを補間データ生成部203に出力する。なお、補間データ生成部203は、タイル内の補間データを生成する際に、タイルの外側画素データを参照するので、タイル分割部801は、タイルの右側に1列分、タイルの下端に1ライン分だけ多い画素データを補間データ生成部203に出力する。そして、この1列、1ラインにおける画素データは、タイル分割部801がタイル単位の出力にてオーバーラップする部分でもある。補間データ生成部203は、2×2画素を単位に入力し、第1実施形態で説明した手順で、補間データの生成の生成処理を行なう。付加情報統合部802は、補間データ生成部203からの符号化データ入力部として機能するものである。そのため、付加情報統合部802は内部にバッファメモリを有する。そして、付加情報統合部802は、補間データ生成部203で生成された符号化データ(補間データ)を入力し、その内部バッファに一時的に格納し、1タイル分、すなわち、8×8個の補間データを解析し、補間データの統合処理を行なう。以下、この付加情報統合部802の処理内容を詳しく説明する。まず、付加情報統合部802は、入力された着目タイルに内包される8×8個の付加情報を解析する。そして、その解析結果に基づき、以下に示す第1統合処理、第2統合処理を実行する。
【0048】
<第1の統合処理>
この処理は、着目タイル内の8×8個の付加情報が互いに等しい場合の処理である。付加情報の種類は、第1の実施形態で説明したように、第1,第2、第3の付加情報の3種類である。そこで、8×8個の付加情報が互いに等しい場合、それらを統合する。例えば、着目タイル内の8×8個の付加情報が同じである場合には、先頭に互いに等しいことを示す1ビットの識別ビット“1”を出力する。そして、それに後続して付加情報を出力し、着目タイルの統合処理を終える。従って、この識別ビットは統合できたか否かを示すフラグ情報ということもできる。従って、もし着目タイル内の8×8個のブロックの付加情報が第1の実施形態における第1の付加情報である“1”であった場合には、着目タイルの統合結果は2ビットの“11”となる。また、着目タイル内の8×8個のブロックの付加情報が第1の実施形態における第2の付加情報である“01”であった場合には、着目タイルの統合結果は3ビットの“101”となる。そして、着目タイル内の全ブロックが第3の付加情報である場合には、着目タイルの統合結果は3ビットの“100”となる。
【0049】
ここで、着目タイル内の全ブロックの付加情報が第3の付加情報であった場合、統合結果を示す3ビット“100”に後続して、各ブロック内の画素値を出力する(各ブロックの付加情報は不要である)。本実施形態では、1タイル=8×8個のブロックとしており、各ブロックの復元対象の画素は3つであるので(図4参照)、8×8×3画素(バイト)が後続する。上記の如く、着目タイル内の8×8個のブロックの付加情報が全て等しい場合には、上記の処理で、着目タイルの付加情報の統合処理を終える(以降に説明する第2統合処理は行なわない)。一方、着目タイル内の8×8個の付加情報中、1つでも異なるものがあった場合には、その旨を示す識別ビット“0”を出力し、次に説明する第2統合処理を行なう。
【0050】
<第2の統合処理>
この第2統合処理は、タイル内の全付加情報中に、少なくとも1つの付加情報が他と異なる場合の処理である。換言すれば、上記タイルのサイズより小さければ、その小さい領域にて付加情報を統合できる可能性があることになる。そこで、本第2の実施形態では、1つのタイルには8×8個の付加情報が含まれることに着目し、これを水平方向に並ぶ8つの付加情報を単位に統合処理を行なうようにした。以下、この水平方向に並ぶ8つの付加情報をライン付加情報という。本第2の統合処理では、着目ライン付加情報に含まれる8つの付加情報が互いに等しいか否かを判定する。そして、互いに等しい場合には、それを識別する1ビットの識別ビット“1”を出力し、その後に等しいと判定された付加情報を1つ出力する。一方、着目ライン付加情報に含まれる8つの付加情報中、1つでも異なるものが存在した場合、1ビットの識別ビット“0”を出力し、それに後続して8つの付加情報を出力する。着目タイルは、8つのライン付加情報で構成されるものであるので、上記処理を最上段から最下段に向かって8回行なえばよい。以上、本実施形態における付加情報統合部802の処理を説明した。
【0051】
図9は、本実施形態における付加情報統合部802の統合処手順を示すフローチャートである。以下、図9に従って、本実施形態の付加情報統合部801の処理を説明する。まず、補間データ生成部203で生成された着目タイルに包含される8×8個の付加情報を入力する(ステップS901)。次いで、入力された付加情報を解析し、8×8個の全付加情報(全符号化データ)が同じ種類(1種類)であるか否かを判定する(ステップS902)。判定の結果、全て同じ種類の付加情報である場合(YES)は、ステップS903へ処理を遷移させる。ステップS903は、着目タイルの付加情報を1つに統合したことを示す1ビットのフラグ”1”を出力する。そして、ステップS904にて、そのフラグに後続して、1つの付加情報を出力する。なお、全て同じと判断された付加情報が第3の付加情報である場合には、第3の付加情報に後続して、8×8×3個の画素データを出力する。一方、ステップS902にて、NOと判定された場合、すなわち、着目タイルに包含される8×8個の付加情報中に、少なくとも2種類の付加情報が存在する場合、処理はステップS905に進む。このステップS905では、着目タイルの付加情報の非統合を示す1ビットのフラグ“0”を出力する。そして、ステップS906乃至S911にて、着目タイルよりも更に小さいサイズを単位とする統合処理を行なう。実際では、このサイズを水平方向に並ぶ8個の付加情報で構成されるブロックラインについてのブロックライン統合処理である。先ず、ステップS906では、着目ライン付加情報(初期段階では着目タイルの最上位のラインの付加情報)に含まれる8つの付加情報が全て同じであるか否かを判断する。同じであった場合には、そのラインの付加情報を統合できるので、ステップS907にて統合されたことを示す1ビットのフラグ“1”を出力し、ステップS908にて、同じであると判定した付加情報を1つ出力する。なお、同じであると判定された付加情報が第3の付加情報である場合には、その付加情報に後続して8×3画素分の画素データを出力する。また、ステップS906にて、着目ライン(初期段階では着目タイルの最上位のライン)の全付加情報中に、1つでも他と異なる付加情報が存在したと判断した場合は、ステップS909に進む。このステップS909では、そのラインの付加情報を統合できなかったことを示す1ビットのフラグ“0”を出力する。そして、ステップS910にて、8つの付加情報を出力する(第3の付加情報が存在する場合には、その第3の付加情報に後続して3個の画素データが並ぶ)。ステップS911では、着目タイルの最終ラインまで統合処理を終えたか否かを判断し否の場合には、次のラインの統合処理を行なうため、ステップS906に処理を戻す。上記のようにして着目タイルについての統合処理を終えると、ステップS912にて、全タイルについての統合処理を終えたか否かを判断し、否の場合には、ステップS1に戻りつぎのタイルの付加情報についての統合処理を行なう。
【0052】
ここで1つのタイルの付加情報の統合処理の例を図10に従って説明する。図10(a)は、1つのタイルの画像データを示している。破線で囲まれた1つの格子が1画素を示している。この図では、第1ラインから第9ラインまでの領域が同じ値の白画素で構成されている。また、第10、第11ラインの領域が同じ値の黒画素で構成され、第12ラインから第16ラインまでの領域は同じ値の白画素で構成されている。図10の例は、文字や線画の画像の場合に多く見られるパターンである。この図10(a)のタイルの画像データを入力したときに、補間データ生成部203が生成する各ブロックの付加情報の値を示すのが図10(b)である。図10(b)の通り、このタイル内の全付加情報は同じではない。従って、図10(c)に示すように、タイル統合が不可であったことを示すフラグ“0”を出力する(図9のステップS905)。次に、最初のライン付加情報を見ると、8個の付加情報は“1”である。従ってライン統合が可能であるので、フラグ“1”を出力し、その後に付加情報“1”を出力する。以下、これを繰り返すことになる。図10(a)のタイル画像の場合、結局、このタイルに対する付加情報統合部801が出力する付加情報の統合結果は、図10(c)に示す通りとなり、次に示すビット配列となる。「0;11;11;11;11;101;101;11;11」。図10(a)のタイルには8×8個のブロックが含まれ、各ブロックには復元すべき3画素が存在することになるので、1タイル内に含まれる復元すべき画素数は8×8×3画素存在する。すなわち、1タイルにおける復元すべき画素の総ビット数は8×8×3×8ビット=1536ビットである。図10(b)の付加情報の場合、1ビットの付加情報が全部で48個、2ビットの付加情報が全部で16であるので、1タイルの付加情報の総ビット数は48+16×2ビット=80ビットである(第1の実施形態に相当する)。そして、図10(c)の場合、すなわち、第2の実施形態における1タイルの付加情報の統合後の総ビット数はフラグビットを含めて、19ビットとなり、大幅に補間データのデータ量を削減可能であることがわかる。
【0053】
以上説明したように本実施形態によれば、付加情報が連続していれば、連続している付加情報を統合することで、補間データのデータ量を大幅に削減することが可能である。また、付加情報が連続していなければ、更に小さい単位毎に連続性を判定し、同様に統合処理を行なう。また、付加情報の連続性を調査するだけなので、統合処理のために、画像を再度スキャンする必要はなく、補間データ生成の処理時間も低下しない。
【0054】
なお、本第2の実施形態と同等の処理をコンピュータプログラムによって実現できることは、先に説明した第1の実施形態の変形例から明らかであるので、その説明については省略する。また、コンピュータプログラムは、コンピュータの読取り装置(CD−ROMドライブなど)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇に入る。
【0055】
[第3の実施形態]
上記第1、第2の実施形態では、1つのブロック(2×2画素)に対し、縮小画像の生成として2x2画素の平均値を用いる方法を説明した。本実施形態では、1つのブロック(2×2画素)に対し、縮小画像の生成方法を選択できるようにした場合を説明する。
【0056】
図12に、本実施形態に係る画像符号化装置のブロック構成図を示す。第1の実施形態で説明した図2と共通するブロックについては同じ番号を付し、その説明については省略する。ジョブ制御信号入力部2201は、画像入力部201に入力する画像の用途を示すジョブ制御信号を入力する。例えば、この信号は、「印刷のみ(印刷モードと呼ぶ)」か、「符号化データを保存(保存モードと呼び、画像処理部207を介して縮小画像を出力する可能性が在る)」か等を示す。この入力は、主に不図示の操作部などからユーザによって指示入力されたものである。このジョブ制御信号は、ジョブ制御信号入力部2201から解像度変換部202にも入力される。解像度変換部202では、このジョブ制御信号を、2×2画素の画像データ(ブロック)から縮小画像を生成する生成方法の選択する信号として利用する。解像度変換部202は、入力されたジョブ制御信号に応じて、縮小画像の生成方法を決定する。例えば、ジョブ制御信号が印刷モードを示す信号であった場合には、縮小画像は2×2画素の画像データから所定の1画素をサブサンプリングする方法を選択する。即ち、上記各実施形態で説明したような2×2画素の平均値を縮小画素とはしない。理由は縮小画像だけがプレビューされることが無いからである。この場合には、サブサンプルされる1画素は、各ブロックのBn(0,0)であるとする。即ち、縮小画像の1画素=Bn(0,0)ということになる。従って、本実施形態における印刷モードでは、第1の実施形態で説明した「Bn(0,0)を生成する差分値」が不要になり、符号化データの削減に繋がる。
【0057】
一方、ジョブ制御信号が保存モードを示す信号であった場合には、第1の実施形態と同様に縮小画像を生成する。即ち、符号化データも第1実施形態と同様になる。保存モードにおいては、縮小画像を用いてプレビューする可能性が在るため、縮小画像がプレビューに耐えられるような画質でなければならない。従って、このモードの場合には、第1の実施形態と同じように処理をすることが好ましい。
【0058】
なお、符号化対象の画像に対する縮小方法が変わることから、画像展開部205や画像処理部207で、上記モードを識別しなければ正確に復元できない。よって、解像度変換部は、符号化対象画像の符号化データの先頭に、ジョブ制御信号に相当する識別フラグを付加するものとする。これにより、符号化データのデータ構造(「Bn(0,0)を生成する差分値」を含むかどうか)などを復号化側で識別でき、復号方法を誤ることが無い。
【0059】
なお、本第3の実施形態においても、上述した実施形態と同様に、コンピュータプログラムによっても実現できる。そして、そのコンピュータプログラムを記憶したコンピュータ可読記憶媒体も本発明の範疇に入る。
【0060】
[第4の実施形態]
上記各実施形態では、縮小画像の生成方法は、符号化対象となる1画面分の画像に対して、同じ方法であることとした。本実施形態では、1画面の画像において、縮小画像の生成方法を切り替える場合を説明する。
【0061】
図13は、本実施形態における画像符号化装置のブロック構成図である。前述の図面と共通するブロックについては同じ番号を付し、その説明については省略する。画像入力部201は、符号化対象となる画像を表す画像データとともに、画素の属性情報を入力する。ここで、画素の属性情報とは、その画素が文字属性の画素なのか、写真属性の画素なのか、グラフィックス属性の画素なのか等を示すものである。よって、ある縮小対象となる2×2画素のブロックについては、それに対応する属性情報は4つ(4画素分)存在することになる。解像度変換部202では、上記属性情報に基づいて、各ブロックの縮小画像の生成方法を切り替える。解像度変換部202は、上記属性情報に基づいて、2×2画素のブロックの一部に写真属性の画素が含まれているか否かを判断する。もし、ブロックの一部に写真属性の画素が含まれている場合には、解像度変換部202は、第1実施形態で説明したような2×2画素の平均値を算出する方法で、縮小画像を生成する。もし、ブロックの一部に写真属性の画素が含まれていない場合には、解像度変換部202は、第3の実施形態で説明したように2×2画素の1つ(Bn(0,0))をサンプリングする方法で縮小画像の生成処理を行う。これにより、写真属性の画像については、縮小画像が2×2画素の平均値で構成されるため、縮小画像をプレビューなどに利用した場合に、画質劣化が目立たないという効果がある。なお、解像度変換部202は、上述した各実施形態などで説明した符号化データに加えて、更に、「どちらの縮小方法でブロックを縮小したか」を示す識別情報を1ブロックにつき1つずつ付加することとする。
【0062】
なお、本第4の実施形態においても、上述した実施形態と同様に、コンピュータプログラムによっても実現できる。そして、そのコンピュータプログラムを記憶したコンピュータ可読記憶媒体も本発明の範疇に入る。
【0063】
[変形例]
上記各実施形態では、左上の画素(Bn(0,0))をブロック内の代表1画素Xとし、他の右上、左下、右下の3画素(Xa=Bn(0,1)、Xb=Bn(1,0)、Xc=Bn(1,1))を復元するための補間データを生成する場合を説明した。しかしながら、本発明はこの場合に限定されない。もし、画素Xを代表1画素(差分値を用いて復元される画素)と定義するならば、代表1画素をXが、Bn(0,1)やBn(1,0)やBn(1,1)に変更されても良い。そして、もしそのような変更をする場合には、式(2)などの隣接ブロックの考え方(隣接する方向)を変更すれば良いであろう。
【0064】
例えば、Bn(0,1)を代表1画素Xとするように変形した場合には、全ての左右の方向を逆転して考えれば良い。この場合、補間データで補間される3画素は、画素Bn(0,0)とBn(1,0)とBn(1,1)に変更される。そして、式(2)の代わりに下記の判定を行うことになる。
Bn(0,0)=Bn−1(0,0)
且つ
Bn(1,0)=Bn+W−1(0,0)
且つ
Bn(1,1)=Bn+W(0,0) …(5)
【0065】
また、もし、Bn(1,0)を代表1画素Xとするように変形した場合には、全ての上下の方向を逆転して考えれば良いであろう。また、もし、Bn(1,1)を代表1画素とするように変形した場合には、全ての左右の方向、および上下の方向を逆転して考えれば良い。
【技術分野】
【0001】
本発明は、画像データを符号化する技術に関するものである。
【背景技術】
【0002】
高解像度で色域が広い画像を表すデータは、そのデータ容量が膨大になり、メモリコストも膨大になる。また、画像処理やデータ転送などで時間がかかってしまう。これに対応するための画像符号化方法として、例えば特許文献1が知られている。この文献では、 また、オリジナル画像から縮小画像を生成し、その情報を保持しておく。そして、オリジナル解像度の画像を復元したい場合には、着目している縮小画像の画素とその周辺画素から、復元対象となる画像(画素)を予測して復元する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−173913号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
縮小画像からオリジナル解像度の画像を高精度に復元するには、その復元に必要な補間データも合わせて保持しておくことが重要である。また、オリジナル画像が高解像度であるならば、その縮小画像も、オリジナル画像と同様に十分に利用できるデータ表現になっていることが望ましい。
【0005】
本発明は、上記課題に鑑みてなされたものであり、縮小画像のみの有効利用もできるようにしつつ、縮小画像からオリジナル画像を高精度に復元できる補間データを生成する効果的な一手法を提供するものである。
【課題を解決するための手段】
【0006】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置であって、前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換手段と、前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成手段と、前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成手段とを備え、前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数の画素の平均値によって縮小画像を作成するため、縮小画像のみの有効利用ができ、また、縮小画像からオリジナル画像を高精度に復元できる。
【図面の簡単な説明】
【0008】
【図1】補間データの生成処理を示すフローチャート
【図2】画像符号化装置のブロック構成図
【図3】画像データと2×2画素のブロックデータとの関係を示す図
【図4】着目ブロック内の2×2画素の配列を示す図
【図5】付加情報のビット列を示す図
【図6】処理対象画像の例を示す図
【図7】補間データのデータ構造を示す図
【図8】画像処理装置のブロック構成図
【図9】付加情報統合部の処理手順を示すフローチャート
【図10】付加情報統合部の処理例を示す図
【図11】コンピュータのブロック構成図
【図12】画像処理装置のブロック構成図
【図13】画像処理装置のブロック構成図
【発明を実施するための形態】
【0009】
以下、図面に従って本発明の実施形態を詳細に説明する。
【0010】
[第1の実施形態]
図2は、本実施形態に適用可能な画像処理装置のブロック図である。この画像処理装置は、大きく分けて2つの処理部からなる。1つは、画像を入力してから圧縮符号化を行うまでの符号化部であり、もう1つは、符号化データの一部または全部を利用して画像出力までの処理を行う復号部である。これら処理部は、一体型の装置に含まれていても良いし、それぞれが別体であっても構わない。その場合には、後述する格納部204は、それぞれの処理部に分かれて存在し、同一の符号化データを保持することになるであろう。
【0011】
図2において、画像処理装置は、符号化対象となる画像データを外部から入力し、解像度変換を行うことにより縮小画像を得る。そして、この縮小画像からオリジナル解像度の画像を復元するための付加情報も生成する。なお、画像データの入力源は、画像データをファイルとして格納している記憶媒体とするが、イメージスキャナ等であっても良く、その種類は問わない。また、実施形態における符号化対象の画像データは輝度成分のみのモノクロ多値画像データとし、輝度成分は8ビット(0乃至255の256階調)として説明する。ただし、これは実施形態の説明を簡単なものとするためであって、上記画像データは複数成分(例えば、RGBやCMYK)でも構わない。また、1成分のビット数も8ビットに限らず、8ビットを超えるビット数でも構わない。更に、符号化対象の画像は水平方向に2×W画素、垂直方向2×H画素(共に偶数)により構成されるとして説明する。なお、実際の画像の水平、垂直方向のサイズは2の整数倍となるとは限らないが、もし整数倍でない場合には、仮想的な固定値を有する画素が水平、垂直の末尾に存在するものとして処理すれば良い。
【0012】
以下、図2における画像処理装置(符号化部)における符号化処理を説明する。まず、画像入力部201から符号化対象となる画像データが順に入力される。本実施形態で処理対象とする画像データは、PDLレンダリング画像を対象とする。また、画素データの入力順序はラスタースキャン順とする。本実施形態の場合、1画素=1コンポーネントであり、そのコンポーネントは8ビットであるものしているので、画素値の取り得る範囲は0乃至255の範囲の非負の整数値である。
【0013】
解像度変換部202は、入力画像の2×2個の画素データで構成されるブロックデータ内から1画素を生成する処理を行う。ここでは、2×2画素の画素値の平均を、縮小画像の1画素の画素値として算出する。即ち、この縮小処理では、4画素から1画素の値を生成する。以上においては、解像度変換部202は、解像度変換手段として機能する。
【0014】
図3はオリジナル画像とその中の或るブロックBnに含まれる2×2画素を示している。ここでは、着目ブロックBnの中の画素を、左上からラスター順に、Bn(0,0)、Bn(0,1)、Bn(1,0)、Bn(1,1)と表す。また、着目ブロックBnの1つ前のブロックをBn−1、着目ブロックBnの次のブロックをBn+1と表現することとする。本実施形態では、着目ブロックBnのうち、Bn(0,0)、Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値の平均値を、ブロックBnに対応する縮小画像(1画素)とする。同様に、画像中の全てのブロックB0〜BW*H−1について、縮小画像の生成を行い、水平方向2W、垂直方向2H画素で構成されるオリジナル画像から、水平方向W、垂直方向Hの縮小画像を生成する。ここで生成された縮小画像は、格納部204へ出力され、格納される。補間データ生成部203は、縮小画像からオリジナル画像を復元するために必要な情報を生成する。
【0015】
まず、補間データ生成部203は、上記縮小処理によって算出したブロックBnの平均値と、縮小前の画像の左上画素Bn(0,0)との画素値の差分値を生成し、格納部204に出力する。この差分値は、縮小画像から、左上画素Bn(0,0)を復元するために必要な情報であり、縮小画像と上記差分値さえあれば、Bn(0,0)の値を正確に復元できる。以上においては、補間データ生成部203は、差分値生成手段として機能する。
【0016】
次に、補間データ生成部203は、「縮小画像から、残りの3画素Bn(0,1)、Bn(1,0)、Bn(1,1)を復元する方法」を示す補間データも出力する。以上においては、補間データ生成部203は、補間データ生成手段として機能する。上記補間データは、ブロック単位に生成され、そのブロック内の上記3画素がどのような値を持つのか、または、どのようにすれば復元できるのかを示す。この補間データの詳細は後述する。
【0017】
図4は1つのブロックに含まれる4つの画素を示している。ここで、図示の画素Xは、上述したBn(0,0)に相当し、着目画素とも呼ぶ。この着目画素Xは、上述したように「差分値を用いて復元可能な画素」である。また、画素Xa,Xb,Xcは、上述したBn(0、1),Bn(1,0),Bn(1,1)に相当し、「補間データを用いて復元される対象の画素」である。また、画素X、Xa,Xb,Xcの2×2画素の縮小画象は1画素であり、その1画素の画素値は、上記4画素の画素値の平均となる。なお、着目ブロックBnの平均値、即ちブロックBnの縮小画像である1画素の画素値を、Xmと表記するものとする。
【0018】
図1は、本実施形態における補間データ生成部203において、上記補間データを生成する処理の流れを示したフローチャートである。ここでは、上記差分値は、別途生成しているものとする。ステップS101において、補間データ生成部203は、着目ブロックBnに含まれる2×2個の画素と、着目ブロックBnに隣接する3つのブロックからそれぞれ代表1画素を入力する。ここで、着目ブロックに隣接する3つのブロックとは、ブロックBnの右隣に位置するブロックBn+1、直下に位置するブロックBn+W、斜め右下のブロックBn+W+1である。これらブロックの位置関係は図3に示される通りである。また、上記3つのブロックの代表1画素とは、それぞれ、ブロックBn+1におけるBn+1(0、0)と、ブロックBn+WにおけるBn+W(0、0)と、ブロックBn+W+1におけるBn+W+1(0,0)である。
【0019】
念のために説明しておくと、これら3つの画素は、隣接ブロックBn+1、ブロックBn+W、ブロックBn+W+1が縮小された後の1画素ではなく、これらブロックが縮小される前の元の画素値である。
【0020】
また、これら3つの画素は各ブロックの代表1画素であるから、上述した代表1画素Bn(0,0)と同様に、それぞれのブロックBn+1、Bn+W、Bn+W+1の縮小画像と対応する差分値を用いて、正確に復元できる画素である。
【0021】
ステップS102では、パラメータnを“0”で初期化する。このパラメータnは、着目ブロックを特定するためのものである。次に、ステップS103では、着目ブロックBn内の4つの画素が互いに等しいか否かを判定する。すなわち、次式(1)を満足するか否かを判定する。
Bn(0,0)=Bn(0,1)=Bn(1,0)=Bn(1,1) …(1)
【0022】
着目ブロックBnが、式(1)の成立するブロックである場合(YES)には、縮小画像中の画素Xの値Xmは、復元対象の画素Xa、Xb、Xcの値でもあるということになる。そこで、この場合には、処理をステップS105に進める。一方、着目ブロックBnについて式(1)が成り立たないと判定した場合(ステップS103でNOの場合)、すなわち、着目ブロック中の画素Xから残りの3画素Xa,Xb,Xcを復元できないと判定した場合は、ステップS104に移動する。ステップS104では、3つの代表画素Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)と、着目ブロックBn内の画素Bn(0,1),画素Bn(1,0),画素Bn(1,1)とを比較する。即ち、次式(2)を満たすか否か判定する。
Bn(0,1)=Bn+1(0,0)
且つ
Bn(1,0)=Bn+W(0,0)
且つ
Bn(1,1)=Bn+W+1(0,0) …(2)
【0023】
上記式(2)に示すように、ペア{Bn(0,1)、Bn+1(0,0)}、{Bn(1,0)、Bn+W(0,0)}、及び、{Bn(1,1)とBn+W+1(0,0)}との一致/不一致を判定する理由は、例えば、以下の通りである。一般に、上記ペアとなっている画素は、互いに隣接関係にあるため、画素値としても相関度は高い。即ち、ブロックBnの3つの画素(Bn(0,1)、Bn(1,0)、Bn(1,1))の画素値は、上記隣接ブロックの各画素と一致している可能性が高い。したがって、上記3つのペアが一致していることさえ判れば、「上記ペアが一致している」という情報を補間データとするだけで、ブロックBnの3つの画素は復元できることになる。そして、もし、先に示した式(2)が満たされる場合(3つのペアが互いに等しい場合)、上記一致を示す短い符号語を割り当てることで情報量も削減できる。
【0024】
ステップS104にて、式(2)が成立すると判定した場合には、着目ブロックBn内の画素Xa、Xb、Xcは、縮小画像の画素を復元した画素値からそのまま再現できることになる。例えば、画素Xaを復元するときには、隣接ブロックBn+1の縮小画像(1画素)とそのブロックBn+1におけるBn+1(0,0)を復元するための差分値を取り出す。そして、それら縮小画像と差分値からBn+1(0,0)の画素値を復元する。そして、その復元された画素値を画素Xaとしても利用すれば良い。同じく、画素Xbおよび画素Xcも同様にして復元できることになる。なお、着目ブロックBnが画像の右端に位置するとき、画素Bn(0、1)、Bn(1、1)と比較する対象画素は存在しない。また、着目ブロックBnが画像の下端に位置するとき、画素Bn(1、0)、Bn(1、1)と比較する対象画素は存在しない。また、着目ブロックBnが画像の右下隅に位置する場合には、画素Bn(0、1)、Bn(1、0)、Bn(1、1)と比較する対象画素が存在しない。このように、存在しない画素の値は、適当な値、例えば“255”であるものと予め決めて比較すれば良い。
【0025】
以上のように、式(2)の判定を行った結果、条件が成立する場合(YES)には、ステップS106へ処理を進める。
【0026】
もし、着目ブロックBnについて2つの式の何れも満たさない場合、着目ブロックBnの3画素(Xa=Bn(0、1),Xb=Bn(1,0),Xc=Bn(1,1))は、各ブロックの代表画素から復元できない。即ち、上述した縮小画像と差分値からBn(0、0)、Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)を復元しても、それらの画素を参考にして、3つの画素を正確に復元することができない。よって、この場合には、処理をステップS107へ進める。
【0027】
ステップS105では、着目ブロックBnに対して、第1の付加情報を符号化データの1つとして出力する。ここで、第1の付加情報とは、着目ブロックBnが式(1)の条件を満たしていることを示す情報である。言い換えれば、「画素Bn(0,1)、Bn(1,0)、Bn(1,1)は、画素Bn(0,0)から復元すること」を示す補間データである。この第1の付加情報は、図5に示すように、1ビットの“1”として出力される。なお、着目ブロックBnの符号化データには、上記第1の付加情報以外にも、解像度変換部202で生成された縮小画像と、補間データ生成部203で別途生成される上述した差分値が含まれる。以上の説明で、上記画素Bn(0,0)の復元方法は容易に理解できると思うが、念のため、復元方法を簡単に説明する。例えば、着目ブロックBnの縮小画像である1画素の画素値をP(x,y)と表し、その着目ブロックBnの差分値をPd(x,y)と表すことと定義する。以上において、着目ブロックBnの縮小画像から、元の解像度の画像(2×2倍)に復元するための式は、以下の通りである。
Bn(0,0)=P(x,y)+Pd(x,y)
Bn(0,1)=Bn(0,0)=P(x,y)+Pd(x,y)
Bn(1,0)=Bn(0,0)=P(x,y)+Pd(x,y)
Bn(1,1)=Bn(0,0)=P(x,y)+Pd(x,y) …(3)
【0028】
ステップS106では、着目ブロックBnに対して、第2の付加情報を符号化データの1つとして出力する。ここで、第2の付加情報とは、着目ブロックBnが式(2)の条件を満たしていることを示す情報である。言い換えれば、「画素Bn(0,1)、Bn(1,0)、Bn(1,1)は、それぞれ、画素Bn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)から復元すること」を示す補間データである。この第2の付加情報は、図5に示すように、2ビットの“01”として出力される。以上の説明で、上記3画素の復元方法は容易に理解できると思うが、念のため、復元方法を簡単に説明する。上述したように、P(x,y)とPd(x,y)を定義する。同じく、ブロックBn+1の縮小画像である1画素の画素値をP(x+1,y)と表し、ブロックBn+Wの縮小画像である1画素の画素値をP(x,y+1)と表し、ブロックBn+W+1の縮小画像である1画素の画素値をP(x+1,y+1)と表す。以上において、着目ブロックBnの縮小画像から、元の解像度の画像(2×2倍)に復元するための式は、以下の通りである。
Bn(0,0)=P(x,y)+Pd(x,y)
Bn(0,1)=P(x+1,y)
Bn(1,0)=P(x,y+1)
Bn(1,1)=P(x+1,y+1) …(4)
【0029】
ステップS107では、着目ブロックBnに対して、第3の付加情報を符号化データの1つとして出力する。ここで、第3の付加情報とは、上記Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値そのものを示す各画素8ビット(合計24ビット)の画素データである。これが上記第1の付加情報や第2の付加情報と同様に、補間データとして出力される。この第3の付加情報は、図5に示すように、上記第1、第2の付加情報と区別できるように、先頭の2ビットとして“00”を出力し、この2ビットに後続してBn(0,1)、Bn(1,0)、Bn(1,1)の画素値を表す24ビットを出力する。この第3の付加情報によれば、Bn(0,1)、Bn(1,0)、Bn(1,1)の画素値は、Bn(0,0)やBn+1(0,0)、Bn+W(0,0)、Bn+W+1(0,0)の値に関らず、正確に復元できる。
【0030】
なお、本実施形態では、第1〜第3の付加情報として、図5に示す表現方法を例示したが、それぞれの付加情報の違いが識別できるのであれば、他の表現でも良い。例えば、第1の付加情報と第2の付加情報のビット表現が逆であっても構わない。
【0031】
以上の処理により、着目ブロックBnの補間データとして、第1〜第3の付加情報のいずれかが出力される。
【0032】
ステップS108では、着目ブロックBnが、符号化対象画像を構成するブロックの最終ブロック(画像の右下隅のブロック)であったか否かを判断する。もし、最終ブロックではない場合(NOの場合)にはステップS109にて変数nを“1”だけ更新し、ステップS103に処理を戻す。もし、最終ブロックを処理していた場合には、図1の一連の処理を終了する。
【0033】
以上の処理により、縮小画像を表すデータと、差分値のデータと、補間データを出力することができ、これらデータを用いて、元の解像度のオリジナル画像を復元することが可能となる。
【0034】
図6(a)は、上記式(1)を満たすようなブロックで構成されている画像の一例である。この図においては、2×2画素の各ブロックごとに色が一定となっている。図6(b)は、上記式(2)を満たすようなブロックを一部に含む画像の一例である。この図においては、ブロックB0が、上記式(2)を満たしている。符号化対象となる高解像度の画像においては、ここで示したような図6(a)や図6(b)のような画像が局所的に散在している。したがって、ブロック単位に上記第1〜第3の付加情報の何れを符号化データの一部として出力するべきか、判断する必要がある。
【0035】
格納部204は、各ブロックについて、上述した縮小画像を表す画像データと、差分値のデータと、補間データを格納する。それらを格納する際のデータ配列としては、例えば、縮小画像を表す画像データを、符号化対象となる1画面分、配列する。続いて、差分値のデータを1画面分、配列する。続いて、補間データを1画面分、配列する。図7は、上記データ配列のうち、補間データの一部を示すものである。ビットの配列方法は上述した図5に従っているので、図7のデータ配列は、4ブロック分の補間データが配列されていることとなる。
【0036】
画像展開部205は、格納部204に格納されている、縮小画像と差分値と補間データとを用いて、元の解像度のオリジナル画像の復元を行う。この復元については上述した通りであるので、説明を省略する。
【0037】
画像出力部206は、画像展開部205で復元された元の解像度のオリジナル画像を、他の装置へデータとして出力するか、或いは可視画像として出力するものであり、例えばデータ送信器あるいは、プリンタやディスプレイに相当する。
【0038】
画像処理部207は、オリジナル画像を復元するのではなく、縮小画像を用いて種々のデータ処理を行うものである。画像処理部207は、例えば、縮小画像をそのまま後段の画像出力部206に出力しても良い。また例えば、画像出力部206で可視化される状況に合わせて色変換処理などが行われても良い。また例えば、画像出力部206の更に後段においてオリジナル画像または縮小画像が検索されるために、その縮小画像から特徴量を検出する処理であっても良い。画像処理部208で処理された画像データは、画像出力部206へ出力される。
【0039】
以上のように、本実施形態によれば、高解像度のオリジナル画像から、上述した方法で縮小画像を表す画像データと、差分値のデータと、補間データとを生成する。これにより、高解像度の画像を効率良く符号化できると共に、必要に応じて縮小画像も利用できる。特に、上記符号化技術は可逆符号化に相当し、符号化データである縮小画像、差分値、補間データからオリジナル画像を、画質の劣化を伴わずに復元できる。
【0040】
ところで、本実施形態ではオリジナル画像から、水平、垂直方向とも1/2の縮小画像を生成する場合について説明したが、変形例として、上記縮小画像から更に、水平、垂直方向とも1/2の縮小画像を生成するような場合にも適用できる。
【0041】
この場合には、符号化データは「第2段階の縮小画像を表す画像データと、第2段階の差分値のデータと、第2段階の補間データと、第1段階の差分値のデータと、第1段階の補間データ」となる。これは、上記「第2段階の縮小画像を表す画像データと、第2段階の差分値のデータと、第2段階の補間データ」の3つのデータから「第1段階の縮小画像を表す画像データ」を復元できることからも容易に理解できるであろう。
【0042】
なお、ここで、オリジナル画像の縮小画像を「第1段階の縮小画像」と呼ぶ。また「第1段階の縮小画像」の縮小画像を、「第2段階の縮小画像」と呼ぶ。また、オリジナル画像の縮小画像を「第1段階の縮小画像」から復元するために必要な差分値を「第1段階の差分値のデータ」と呼ぶ。また、「第1段階の縮小画像」を「第2段階の縮小画像」から復元するために必要な差分値を「第2段階の差分値のデータ」と呼ぶ。また、オリジナル画像の縮小画像を「第1段階の縮小画像」から復元するために必要な補間データを「第1段階の補間のデータ」と呼ぶ。また、「第1段階の縮小画像」を「第2段階の縮小画像」から復元するために必要な補間データを「第2段階の補間のデータ」と呼ぶ。
【0043】
第2段階の差分値および第2段階の補間データについては、上記実施形態にて説明したオリジナル画像を「第1段階の縮小画像」とみなし、上記実施形態にて説明した縮小画像を「第2段階の縮小画像」とみなすことで、容易に理解できよう。
【0044】
[第1の実施形態の変形例]
上記第1の実施形態と同等の処理を、コンピュータプログラムによって実現する例を第1の実施形態の変形例として以下に説明する。図11は、本変形例における情報処理装置(例えばパーソナルコンピュータ)のブロック構成図である。図中、1401はCPUで、RAM1402やROM1403に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。1402はRAMで、外部記憶装置1407や記憶媒体ドライブ1408、若しくはI/F1409を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、RAM1402は、CPU1401が各種の処理を実行する際に使用するワークエリアも備える。1403はROMで、ブートプログラムや本装置の設定プログラムやデータを格納する。1404、1405は夫々キーボード、マウスで、CPU1401に対して各種の指示を入力することができる。1406は表示装置で、CRTや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。1407はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置1407には、OS(オペレーティングシステム)や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、CPU1401は、これらのプログラムやデータをRAM1402上の所定のエリアにロードし、実行することになる。1408は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記録されたプログラムやデータを読み出してRAM1402や外部記憶装置1407に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ1408は、CPU1401による制御によって、これらのプログラムやデータをRAM1402上の所定のエリアにロードする。1409はI/Fで、このI/F1409によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のRAM1402や外部記憶装置1407、あるいは記憶媒体ドライブ1408に入力することもできる。1410は上述の各部を繋ぐバスである。上記構成において、本装置の電源がONになると、CPU1401はROM1403のブートプログラムに従って、外部記憶装置1407からOSをRAM1402にロードする。この結果、キーボード1404、マウス1405の入力が可能となり、表示装置1406にGUIを表示することが可能になる。ユーザが、キーボード1404やマウス1405を操作し、外部記憶装置1407に格納された画像符号化処理用アプリケーションプログラムの起動の指示を行なうと、CPU1401はそのプログラムをRAM1402にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。この場合の符号化アプリケーションは、指定された画像データから先に説明したブロック単位に1画素の縮小画像を生成する処理と、差分値を生成する処理と、補間データを生成する処理(図1のフローチャート)に示した処理を行なう。そして、その結果である符号化データを1つのファイルとして、格納部204と同等の記憶装置に格納したり、外部装置もしくはネットワーク上に転送される。
【0045】
[第2の実施形態]
上記第1の実施形態では、補間データの最小符号量は、3画素に対して1ビットであった。第2の実施形態では、この符号化効率を考慮した変形例を説明する。本第2の実施形態における「ブロック」とは、第1の実施形態と同様に2×2画素を表わす。そして、「タイル」とは、水平方向にM個、垂直方向にN個(ともに2以上の整数)のブロックからなる画像とする。ここでは、説明を簡単なものとするため、1タイルを8×8個のブロックで構成されるものとする。すなわち、1タイルは16×16画素からなる。また、説明を簡単にするため、符号化対象の画像データの水平方向の画素数を16W、垂直方向の画素数を16H、つまり、共に16の整数倍であるものとして説明する。
【0046】
図8は、本実施形態における画像符号化装置のブロック図である。図2と異なる点は、補間データ生成部203の前にタイル分割部801を設けた点と、補間データ生成部203の後に、付加情報統合部802を設けた点である。これ以外は第1の実施形態と同じであるので、説明を省略する。
【0047】
タイル分割部801は、画像入力部201から入力した画像データを16×16画素のタイルに分割し、そのタイルの画像データを補間データ生成部203に出力する。なお、補間データ生成部203は、タイル内の補間データを生成する際に、タイルの外側画素データを参照するので、タイル分割部801は、タイルの右側に1列分、タイルの下端に1ライン分だけ多い画素データを補間データ生成部203に出力する。そして、この1列、1ラインにおける画素データは、タイル分割部801がタイル単位の出力にてオーバーラップする部分でもある。補間データ生成部203は、2×2画素を単位に入力し、第1実施形態で説明した手順で、補間データの生成の生成処理を行なう。付加情報統合部802は、補間データ生成部203からの符号化データ入力部として機能するものである。そのため、付加情報統合部802は内部にバッファメモリを有する。そして、付加情報統合部802は、補間データ生成部203で生成された符号化データ(補間データ)を入力し、その内部バッファに一時的に格納し、1タイル分、すなわち、8×8個の補間データを解析し、補間データの統合処理を行なう。以下、この付加情報統合部802の処理内容を詳しく説明する。まず、付加情報統合部802は、入力された着目タイルに内包される8×8個の付加情報を解析する。そして、その解析結果に基づき、以下に示す第1統合処理、第2統合処理を実行する。
【0048】
<第1の統合処理>
この処理は、着目タイル内の8×8個の付加情報が互いに等しい場合の処理である。付加情報の種類は、第1の実施形態で説明したように、第1,第2、第3の付加情報の3種類である。そこで、8×8個の付加情報が互いに等しい場合、それらを統合する。例えば、着目タイル内の8×8個の付加情報が同じである場合には、先頭に互いに等しいことを示す1ビットの識別ビット“1”を出力する。そして、それに後続して付加情報を出力し、着目タイルの統合処理を終える。従って、この識別ビットは統合できたか否かを示すフラグ情報ということもできる。従って、もし着目タイル内の8×8個のブロックの付加情報が第1の実施形態における第1の付加情報である“1”であった場合には、着目タイルの統合結果は2ビットの“11”となる。また、着目タイル内の8×8個のブロックの付加情報が第1の実施形態における第2の付加情報である“01”であった場合には、着目タイルの統合結果は3ビットの“101”となる。そして、着目タイル内の全ブロックが第3の付加情報である場合には、着目タイルの統合結果は3ビットの“100”となる。
【0049】
ここで、着目タイル内の全ブロックの付加情報が第3の付加情報であった場合、統合結果を示す3ビット“100”に後続して、各ブロック内の画素値を出力する(各ブロックの付加情報は不要である)。本実施形態では、1タイル=8×8個のブロックとしており、各ブロックの復元対象の画素は3つであるので(図4参照)、8×8×3画素(バイト)が後続する。上記の如く、着目タイル内の8×8個のブロックの付加情報が全て等しい場合には、上記の処理で、着目タイルの付加情報の統合処理を終える(以降に説明する第2統合処理は行なわない)。一方、着目タイル内の8×8個の付加情報中、1つでも異なるものがあった場合には、その旨を示す識別ビット“0”を出力し、次に説明する第2統合処理を行なう。
【0050】
<第2の統合処理>
この第2統合処理は、タイル内の全付加情報中に、少なくとも1つの付加情報が他と異なる場合の処理である。換言すれば、上記タイルのサイズより小さければ、その小さい領域にて付加情報を統合できる可能性があることになる。そこで、本第2の実施形態では、1つのタイルには8×8個の付加情報が含まれることに着目し、これを水平方向に並ぶ8つの付加情報を単位に統合処理を行なうようにした。以下、この水平方向に並ぶ8つの付加情報をライン付加情報という。本第2の統合処理では、着目ライン付加情報に含まれる8つの付加情報が互いに等しいか否かを判定する。そして、互いに等しい場合には、それを識別する1ビットの識別ビット“1”を出力し、その後に等しいと判定された付加情報を1つ出力する。一方、着目ライン付加情報に含まれる8つの付加情報中、1つでも異なるものが存在した場合、1ビットの識別ビット“0”を出力し、それに後続して8つの付加情報を出力する。着目タイルは、8つのライン付加情報で構成されるものであるので、上記処理を最上段から最下段に向かって8回行なえばよい。以上、本実施形態における付加情報統合部802の処理を説明した。
【0051】
図9は、本実施形態における付加情報統合部802の統合処手順を示すフローチャートである。以下、図9に従って、本実施形態の付加情報統合部801の処理を説明する。まず、補間データ生成部203で生成された着目タイルに包含される8×8個の付加情報を入力する(ステップS901)。次いで、入力された付加情報を解析し、8×8個の全付加情報(全符号化データ)が同じ種類(1種類)であるか否かを判定する(ステップS902)。判定の結果、全て同じ種類の付加情報である場合(YES)は、ステップS903へ処理を遷移させる。ステップS903は、着目タイルの付加情報を1つに統合したことを示す1ビットのフラグ”1”を出力する。そして、ステップS904にて、そのフラグに後続して、1つの付加情報を出力する。なお、全て同じと判断された付加情報が第3の付加情報である場合には、第3の付加情報に後続して、8×8×3個の画素データを出力する。一方、ステップS902にて、NOと判定された場合、すなわち、着目タイルに包含される8×8個の付加情報中に、少なくとも2種類の付加情報が存在する場合、処理はステップS905に進む。このステップS905では、着目タイルの付加情報の非統合を示す1ビットのフラグ“0”を出力する。そして、ステップS906乃至S911にて、着目タイルよりも更に小さいサイズを単位とする統合処理を行なう。実際では、このサイズを水平方向に並ぶ8個の付加情報で構成されるブロックラインについてのブロックライン統合処理である。先ず、ステップS906では、着目ライン付加情報(初期段階では着目タイルの最上位のラインの付加情報)に含まれる8つの付加情報が全て同じであるか否かを判断する。同じであった場合には、そのラインの付加情報を統合できるので、ステップS907にて統合されたことを示す1ビットのフラグ“1”を出力し、ステップS908にて、同じであると判定した付加情報を1つ出力する。なお、同じであると判定された付加情報が第3の付加情報である場合には、その付加情報に後続して8×3画素分の画素データを出力する。また、ステップS906にて、着目ライン(初期段階では着目タイルの最上位のライン)の全付加情報中に、1つでも他と異なる付加情報が存在したと判断した場合は、ステップS909に進む。このステップS909では、そのラインの付加情報を統合できなかったことを示す1ビットのフラグ“0”を出力する。そして、ステップS910にて、8つの付加情報を出力する(第3の付加情報が存在する場合には、その第3の付加情報に後続して3個の画素データが並ぶ)。ステップS911では、着目タイルの最終ラインまで統合処理を終えたか否かを判断し否の場合には、次のラインの統合処理を行なうため、ステップS906に処理を戻す。上記のようにして着目タイルについての統合処理を終えると、ステップS912にて、全タイルについての統合処理を終えたか否かを判断し、否の場合には、ステップS1に戻りつぎのタイルの付加情報についての統合処理を行なう。
【0052】
ここで1つのタイルの付加情報の統合処理の例を図10に従って説明する。図10(a)は、1つのタイルの画像データを示している。破線で囲まれた1つの格子が1画素を示している。この図では、第1ラインから第9ラインまでの領域が同じ値の白画素で構成されている。また、第10、第11ラインの領域が同じ値の黒画素で構成され、第12ラインから第16ラインまでの領域は同じ値の白画素で構成されている。図10の例は、文字や線画の画像の場合に多く見られるパターンである。この図10(a)のタイルの画像データを入力したときに、補間データ生成部203が生成する各ブロックの付加情報の値を示すのが図10(b)である。図10(b)の通り、このタイル内の全付加情報は同じではない。従って、図10(c)に示すように、タイル統合が不可であったことを示すフラグ“0”を出力する(図9のステップS905)。次に、最初のライン付加情報を見ると、8個の付加情報は“1”である。従ってライン統合が可能であるので、フラグ“1”を出力し、その後に付加情報“1”を出力する。以下、これを繰り返すことになる。図10(a)のタイル画像の場合、結局、このタイルに対する付加情報統合部801が出力する付加情報の統合結果は、図10(c)に示す通りとなり、次に示すビット配列となる。「0;11;11;11;11;101;101;11;11」。図10(a)のタイルには8×8個のブロックが含まれ、各ブロックには復元すべき3画素が存在することになるので、1タイル内に含まれる復元すべき画素数は8×8×3画素存在する。すなわち、1タイルにおける復元すべき画素の総ビット数は8×8×3×8ビット=1536ビットである。図10(b)の付加情報の場合、1ビットの付加情報が全部で48個、2ビットの付加情報が全部で16であるので、1タイルの付加情報の総ビット数は48+16×2ビット=80ビットである(第1の実施形態に相当する)。そして、図10(c)の場合、すなわち、第2の実施形態における1タイルの付加情報の統合後の総ビット数はフラグビットを含めて、19ビットとなり、大幅に補間データのデータ量を削減可能であることがわかる。
【0053】
以上説明したように本実施形態によれば、付加情報が連続していれば、連続している付加情報を統合することで、補間データのデータ量を大幅に削減することが可能である。また、付加情報が連続していなければ、更に小さい単位毎に連続性を判定し、同様に統合処理を行なう。また、付加情報の連続性を調査するだけなので、統合処理のために、画像を再度スキャンする必要はなく、補間データ生成の処理時間も低下しない。
【0054】
なお、本第2の実施形態と同等の処理をコンピュータプログラムによって実現できることは、先に説明した第1の実施形態の変形例から明らかであるので、その説明については省略する。また、コンピュータプログラムは、コンピュータの読取り装置(CD−ROMドライブなど)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇に入る。
【0055】
[第3の実施形態]
上記第1、第2の実施形態では、1つのブロック(2×2画素)に対し、縮小画像の生成として2x2画素の平均値を用いる方法を説明した。本実施形態では、1つのブロック(2×2画素)に対し、縮小画像の生成方法を選択できるようにした場合を説明する。
【0056】
図12に、本実施形態に係る画像符号化装置のブロック構成図を示す。第1の実施形態で説明した図2と共通するブロックについては同じ番号を付し、その説明については省略する。ジョブ制御信号入力部2201は、画像入力部201に入力する画像の用途を示すジョブ制御信号を入力する。例えば、この信号は、「印刷のみ(印刷モードと呼ぶ)」か、「符号化データを保存(保存モードと呼び、画像処理部207を介して縮小画像を出力する可能性が在る)」か等を示す。この入力は、主に不図示の操作部などからユーザによって指示入力されたものである。このジョブ制御信号は、ジョブ制御信号入力部2201から解像度変換部202にも入力される。解像度変換部202では、このジョブ制御信号を、2×2画素の画像データ(ブロック)から縮小画像を生成する生成方法の選択する信号として利用する。解像度変換部202は、入力されたジョブ制御信号に応じて、縮小画像の生成方法を決定する。例えば、ジョブ制御信号が印刷モードを示す信号であった場合には、縮小画像は2×2画素の画像データから所定の1画素をサブサンプリングする方法を選択する。即ち、上記各実施形態で説明したような2×2画素の平均値を縮小画素とはしない。理由は縮小画像だけがプレビューされることが無いからである。この場合には、サブサンプルされる1画素は、各ブロックのBn(0,0)であるとする。即ち、縮小画像の1画素=Bn(0,0)ということになる。従って、本実施形態における印刷モードでは、第1の実施形態で説明した「Bn(0,0)を生成する差分値」が不要になり、符号化データの削減に繋がる。
【0057】
一方、ジョブ制御信号が保存モードを示す信号であった場合には、第1の実施形態と同様に縮小画像を生成する。即ち、符号化データも第1実施形態と同様になる。保存モードにおいては、縮小画像を用いてプレビューする可能性が在るため、縮小画像がプレビューに耐えられるような画質でなければならない。従って、このモードの場合には、第1の実施形態と同じように処理をすることが好ましい。
【0058】
なお、符号化対象の画像に対する縮小方法が変わることから、画像展開部205や画像処理部207で、上記モードを識別しなければ正確に復元できない。よって、解像度変換部は、符号化対象画像の符号化データの先頭に、ジョブ制御信号に相当する識別フラグを付加するものとする。これにより、符号化データのデータ構造(「Bn(0,0)を生成する差分値」を含むかどうか)などを復号化側で識別でき、復号方法を誤ることが無い。
【0059】
なお、本第3の実施形態においても、上述した実施形態と同様に、コンピュータプログラムによっても実現できる。そして、そのコンピュータプログラムを記憶したコンピュータ可読記憶媒体も本発明の範疇に入る。
【0060】
[第4の実施形態]
上記各実施形態では、縮小画像の生成方法は、符号化対象となる1画面分の画像に対して、同じ方法であることとした。本実施形態では、1画面の画像において、縮小画像の生成方法を切り替える場合を説明する。
【0061】
図13は、本実施形態における画像符号化装置のブロック構成図である。前述の図面と共通するブロックについては同じ番号を付し、その説明については省略する。画像入力部201は、符号化対象となる画像を表す画像データとともに、画素の属性情報を入力する。ここで、画素の属性情報とは、その画素が文字属性の画素なのか、写真属性の画素なのか、グラフィックス属性の画素なのか等を示すものである。よって、ある縮小対象となる2×2画素のブロックについては、それに対応する属性情報は4つ(4画素分)存在することになる。解像度変換部202では、上記属性情報に基づいて、各ブロックの縮小画像の生成方法を切り替える。解像度変換部202は、上記属性情報に基づいて、2×2画素のブロックの一部に写真属性の画素が含まれているか否かを判断する。もし、ブロックの一部に写真属性の画素が含まれている場合には、解像度変換部202は、第1実施形態で説明したような2×2画素の平均値を算出する方法で、縮小画像を生成する。もし、ブロックの一部に写真属性の画素が含まれていない場合には、解像度変換部202は、第3の実施形態で説明したように2×2画素の1つ(Bn(0,0))をサンプリングする方法で縮小画像の生成処理を行う。これにより、写真属性の画像については、縮小画像が2×2画素の平均値で構成されるため、縮小画像をプレビューなどに利用した場合に、画質劣化が目立たないという効果がある。なお、解像度変換部202は、上述した各実施形態などで説明した符号化データに加えて、更に、「どちらの縮小方法でブロックを縮小したか」を示す識別情報を1ブロックにつき1つずつ付加することとする。
【0062】
なお、本第4の実施形態においても、上述した実施形態と同様に、コンピュータプログラムによっても実現できる。そして、そのコンピュータプログラムを記憶したコンピュータ可読記憶媒体も本発明の範疇に入る。
【0063】
[変形例]
上記各実施形態では、左上の画素(Bn(0,0))をブロック内の代表1画素Xとし、他の右上、左下、右下の3画素(Xa=Bn(0,1)、Xb=Bn(1,0)、Xc=Bn(1,1))を復元するための補間データを生成する場合を説明した。しかしながら、本発明はこの場合に限定されない。もし、画素Xを代表1画素(差分値を用いて復元される画素)と定義するならば、代表1画素をXが、Bn(0,1)やBn(1,0)やBn(1,1)に変更されても良い。そして、もしそのような変更をする場合には、式(2)などの隣接ブロックの考え方(隣接する方向)を変更すれば良いであろう。
【0064】
例えば、Bn(0,1)を代表1画素Xとするように変形した場合には、全ての左右の方向を逆転して考えれば良い。この場合、補間データで補間される3画素は、画素Bn(0,0)とBn(1,0)とBn(1,1)に変更される。そして、式(2)の代わりに下記の判定を行うことになる。
Bn(0,0)=Bn−1(0,0)
且つ
Bn(1,0)=Bn+W−1(0,0)
且つ
Bn(1,1)=Bn+W(0,0) …(5)
【0065】
また、もし、Bn(1,0)を代表1画素Xとするように変形した場合には、全ての上下の方向を逆転して考えれば良いであろう。また、もし、Bn(1,1)を代表1画素とするように変形した場合には、全ての左右の方向、および上下の方向を逆転して考えれば良い。
【特許請求の範囲】
【請求項1】
それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置であって、
前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換手段と、
前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成手段と、
前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成手段とを備え、
前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする画像符号化装置。
【請求項2】
それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置の制御方法であって、
解像度変換手段によって、前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換工程と、
差分値生成手段によって、前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成工程と、
補間データ生成手段によって、前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成工程とを備え、
前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする制御方法。
【請求項3】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項2に記載の画像符号化装置として機能させるコンピュータプログラム。
【請求項4】
請求項3に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項1】
それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置であって、
前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換手段と、
前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成手段と、
前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成手段とを備え、
前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする画像符号化装置。
【請求項2】
それぞれが画素X、Xa、Xb、Xcで定義される2×2画素のブロックを、複数のブロックについて符号化する画像符号化装置の制御方法であって、
解像度変換手段によって、前記2×2画素の画素値の平均値を、着目ブロックの縮小画像である1画素の画素値として出力することにより、縮小画像を生成する解像度変換工程と、
差分値生成手段によって、前記着目ブロックの縮小画像である1画素の画素値と、前記着目ブロックにおける画素Xとの差分値を生成する差分値生成工程と、
補間データ生成手段によって、前記画素Xa、Xb、Xcを復元するための補間データを生成する補間データ生成工程とを備え、
前記補間データは、着目ブロックにおけるXa、Xb、Xcが、画素Xと一致していることを示す第1の情報、或いは、当該Xa、Xb、Xcが、それら画素に隣接するブロックにおける画素Xと一致していることを示す第2の情報、或いは、当該Xa、Xb、Xcの画素値を示す第3の情報の何れかを含むことを特徴とする制御方法。
【請求項3】
コンピュータに読み込み込ませ実行させることで、前記コンピュータを請求項2に記載の画像符号化装置として機能させるコンピュータプログラム。
【請求項4】
請求項3に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−223463(P2011−223463A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−92507(P2010−92507)
【出願日】平成22年4月13日(2010.4.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願日】平成22年4月13日(2010.4.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]