JP2004532577A - 非直交基本関数を用いて色画像を効率的に符号化する方法および装置 - Google Patents
非直交基本関数を用いて色画像を効率的に符号化する方法および装置 Download PDFInfo
- Publication number
- JP2004532577A JP2004532577A JP2002586142A JP2002586142A JP2004532577A JP 2004532577 A JP2004532577 A JP 2004532577A JP 2002586142 A JP2002586142 A JP 2002586142A JP 2002586142 A JP2002586142 A JP 2002586142A JP 2004532577 A JP2004532577 A JP 2004532577A
- Authority
- JP
- Japan
- Prior art keywords
- functions
- color
- image
- basis
- orthogonal
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2134—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
- G06F18/21342—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis using statistical independence, i.e. minimising mutual information or maximising non-gaussianity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Discrete Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
1組の非直交基本関数を用いて画像を効率的に符号化し、それによって、ファイル・サイズを小さくし、送信時間を短縮し、精度を高める方法および装置。非直交基本関数は、均一色基本関数と、輝度エッジを有する輝度符号化基本関数と、色対立性を示す色基本関数とを含む。いくつかの基本関数は互いに直交しない。これらの基本関数を用いてソース・ベクトルが算出され、各々が1つの基本関数に関連するいくつかの係数が得られる。ソース・ベクトルは、算出された係数の部分集合を選択することによって圧縮され、それによって符号化ベクトルが得られる。この方法は極めて効率的であるので、画像データは実質的に少数の係数によって表される。実施形態によっては、非直交基本関数は2つ以上のクラスを有する。ウェーブレット手法を利用することもできる。
Description
【技術分野】
【0001】
1.発明の分野
本発明は、概して、コンピュータによって実施される、画像を符号化するシステムおよび方法、画像を圧縮するシステムおよび方法、ならびに画像を復号するシステムおよび方法に関する。
【背景技術】
【0002】
1.関連技術の説明
画像圧縮技術は、画像をデジタル形式でコンピュータに記憶し、インターネットなどのネットワーク上で画像を送信するのに広く用いられている。画像圧縮技術は、画像が多量の冗長データを含むという原則を利用している。画像圧縮プロセスは、冗長性を低減させることによって、非常に有用である場合がある比較的小さいファイル・サイズを実現する。たとえば、ファイル・サイズが小さい場合、画像の記憶要件が低くなる。さらに、ファイルが小さいほどネットワーク上の転送が高速になる。
【0003】
画像圧縮およびファイル・フォーマット記憶に関する標準の作成は以前から行われている。JPEG(Joint Photographic Experts Groupの略語)と呼ばれているある特定の標準は、静止画像をインターネット上で転送するのに広く用いられている。このJPEG標準は、元の画像を厳密には再生しないが、許容される画質を与える、損失を含むデータ圧縮の種類を指定している。たとえば、画質の低下はほとんど知覚されず、知覚される場合でも、ファイル・サイズが小さくなることによって、たいていのユーザに対しては画質の低下が補償される。JPEG標準の一部として、画像の細部においてどの程度の圧縮とどの程度の損失が望ましいかを決定する品質係数を、画像の圧縮時に選択することができる。ある種の画像はほとんど損失なしに圧縮することができるが、多くの例では、圧縮量が多いほど、対応する画質低下も大きくなる。
【0004】
JPEG標準に従って画像を圧縮する場合、画像はまず、各パッチが64個の画素を含む8×8パッチに分割される。このパッチ内の画素値(通常、各画素に赤値、緑値、および青値が関連付けされる)に基づいて、JPEG標準によって事前に定められている基本関数を用いてある値が算出される。この場合、このような算出された値は画像を表す。画像を再構築する場合、算出された値が所定の基本関数を用いて復号され、画像が再生される。
【0005】
JPEG2000は、ウェーブレット手法を用いて画像をより正確に符号化する、JPEGによって提案された新しい標準である。ウェーブレット手法では、大きいパッチ(場合によっては最高レベルの画像全体)が符号化され、次いで、大きいパッチをより小さいパッチに細分することを含め、パッチが処理される。次いで、より小さい細分されたパッチが符号化され、これらのパッチが再細分され符号化される。このプロセス、すなわち、漸進的に小さくなるパッチを細分し符号化することは、所定のパッチ・サイズ(または他の基準)が満たされるまで繰り返される。ウェーブレット手法によって符号化された画像を復号する場合、符号化された各パッチは順次復号され表示される。
【0006】
高度の圧縮を行う場合でも、JPEGファイルは大きなものになる。高画質を維持しつつ、圧縮後のファイルのサイズを著しく小さくし、それによって占有される記憶空間を少なくし、送信時間を短縮することができるシステムを提供すると有利である。
【発明の開示】
【0007】
本明細書で説明する方法および装置は、画像データを効率的に表す基本関数を用いて画像を符号化し、それによって、符号化画像のファイル・サイズを小さくし、かつ/または符号化画像の精度を高める。少なくとも1つの基本関数は、少なくとも1つの他の基本関数に直交しない。この基本関数は、均一色基礎関数、輝度エッジを表す輝度−符号化基礎関数、および色対立性を示す色基本関数を含む。本明細書で開示する一実施態様では、主基本関数(すなわち、寄与度の最も高い基本関数)の多くは主として、画像のグレースケール・フィーチャを符号化し、色基本関数は主として、色空間内の軸を定義する対立色法で色を符号化する。非直交基本関数は、少なくとも2つの方法、すなわち1)ベクトル空間、2)基本関数の色空間で使用することができ、特に、対立色基本関数は通常、色対立性軸同士が互いに直交しない少なくとも2つの基本関数を含む。
【0008】
本明細書で説明する符号化方法では、画像は、各々が少なくとも1つのデータ・ベクトルを形成する1つまたは複数のパッチに分割される。データ・ベクトルは、1組の非直交基本関数を適用して、そのパッチを表す値を有する複数の算出された係数を含むソース・ベクトルを得ることによって符号化される。ソース・ベクトルは、複数の算出された係数の部分集合を選択することによって圧縮され、それによって符号化ベクトルが得られる。
【0009】
本明細書で説明する方法はより効率的であるので、画像データは実質的に、従来の方法よりも少ない数の基本関数で表される。言い換えれば、本明細書で説明する方法は、画像を疎に表現し、このことは、多数の算出された係数が零の周りに密集し、したがって、画像に有意に寄与しなくなることを意味する。近零係数およびそれに関連する基本関数を圧縮時に排除し、画像をそれほど劣化させずに、符号化データ・ファイルのサイズを小さくすることができる。結果として得られる係数の部分集合は、使用される圧縮技術のような関連する圧縮指定と共に、符号化データを構成する。
【0010】
ICA基本関数は、選択された画像セット内の画像を記述するのに最も適切に用いることのできる基本関数を見つけるように多数のデータ・セット(本明細書では、データ・セットは1組の画像パッチである)が繰り返し処理される訓練プロセスで得られる。後述の一実施態様では、ICA基本関数をLMS色空間で訓練した。ICA基本関数によって定義された画像(「基本パッチ」)を観測することによって、多くの主基本関数が主として、色ではなく輝度を符号化することが分かった。さらに、色を表した基本関数は、非直交軸に沿って色対立性を示す。これらの結果は、ICA基本関数がデータをより効率的に符号化できることを示している。
【0011】
いくつかの実施態様では、非直交基本関数は、2つ以上のクラスを含み、パッチを符号化するステップは、各クラスごとにソース・ベクトルを算出し、パッチを1つのクラスに分類し、このクラスに関連するソース・ベクトルを選択することを含む。
【0012】
係数の部分集合を選択する多数の異なる技術が可能である。たとえば、所定の係数技術は、ソース・ベクトル内に所定の位置を有する複数の係数を選択し、それによって、所定の基本関数に関連する係数を選択することを含む。最高値選択方法は、最大係数値を選択することによって一群の係数を選択することを含む。しきい値方法は、値が所定のしきい値を超える係数を選択することを含む。
【0013】
画像をパッチに分割し、非直交基本関数を用いて各パッチを符号化し、各パッチを複数のより小さいパッチに細分することを含め、各パッチを処理し、次いで、細分されたパッチが所定のサイズに達するか、または符号化が完了したことを示す他の基準に達する(これには3回以上の繰返しが必要になることがある)までプロセスを繰り返すことによって画像が符号化されるウェーブレット手法について説明する。各レベルで差画像パッチが算出され、この差パッチが、次のレベルで細分されるパッチを構成するピラミッド技術について説明する。差パッチは、画像パッチから符号化画像データを引くことによって得られる。
【0014】
いくつかの実施態様では、各基本関数には、準ガウス分布、正規ガウス分布、超ガウス分布のような基本的な統計分布を指定する確率密度関数(pdf)変数が関連付けされている。このような実施態様では、画像データは、基本関数に関連するpdf変数を用いて符号化される。
【0015】
複数の符号化ベクトルは、必要に応じて記憶され送信される圧縮された画像情報を含む。画像を表示する際、複数の符号化ベクトルは、複数の再構築されたデータ・ベクトルが得られるように復号される。これらのデータ・ベクトルを用いて、表示に適したフォーマットで画像データが再構築される。
【0016】
この特許のファイルは、少なくとも1枚の多色図面を含んでいる。多色図面を有するこの特許のコピーは、要求および必要な手数料の支払いに応じてアメリカ特許庁(Patent and Trademark Office)から与えられる。
【0017】
この発明をより完全に理解するために、次に、添付の図面に示されている各実施形態の詳細な説明を参照する。
【発明を実施するための最良の形態】
【0018】
詳細な説明
本発明を以下の説明において各図を参照して説明する。各図では、同じ番号は、同じまたは同様の要素を表す。
【0019】
本明細書では、語「符号化」は、一般的な意味で用いられ、生画像データを処理する計算および/または圧縮プロセスを含む。
【0020】
いくつかの例では、基本行列の列によって定められる「基本関数」または「基本ベクトル」が参照される。たとえば、クラスkの基本関数は、そのクラスkの行列の列ベクトルによって定義される。特に明示しないかぎり、本明細書で開示する基本関数は、ICAプロセスを用いて学習(または「訓練」)された基本関数、したがって、実質的に直交しない基本関数として定義されるICA基本関数とみなすべきである。
【0021】
「色空間」は、色を定義するのに用いられる特定の標準を指し、たとえば、赤−緑−青(RGB)およびシアン−マゼンタ−黄色(CMY)は、2つの一般的に用いられている色空間である。本明細書で参照される他の色空間はLMS色空間であり、用途によってはRGB色空間と概ね同等であるが、LMS空間は、L値、M値、およびS値が、人間の目の3種類の円錐状光受容体である長波長選択錐体(L)、中波長選択錐体(M)、および短波長選択円錐体(S)の反応に概ね一致するように形成される。したがって、LMS色空間は、その色に対する人間の目の反応を近似する線形組合せとして色を表す。
【0022】
以下の記号は、本明細書では、ある数量および変数を表すのに用いられる。従来の使用法によって、行列は、ボールド体の大文字で表され、ベクトルはボールド体の小文字で表される。
記号の表
Ak クラスkの基本関数の行列(クラスkの要素はaijである)
A-1 フィルタ行列、Aの逆行列
AT Tの転置行列
bk クラスkのバイアス・ベクトル
βk クラスkの確率密度関数(pdf)ベクトル
θk クラスkのパラメータ
Θ すべてのクラスのパラメータ
k クラス指数
K クラスの数
m データ指数
M 基本関数の行列内の行の数
n (データ・ベクトル内の要素の)画素データ指数
N データ・ベクトルx内の要素の数、特にパッチ内の画素データ・ポイントの数[たとえば、RGC(3-ポイント)データの場合はN=3P]
P パッチ内の画素の数(たとえば、7×7RGB画素パッチの場合はP=49)
p(s) 確率密度関数
r 画素データ・タイプの指数
R 各画素ごとのデータの種類の数(たとえば、RGBデータの場合はR=3)
st 符号化プロセス中にパッチtに関して算出されたソース・ベクトル。ソース・ベクトルの要素を「係数」と呼ぶ。
t パッチのデータ指数
T データ・セット内のベクトルの総数(たとえば、画像内のパッチの数)
xt パッチt内のすべての画素値のベクトル(画素ベクトル)
X 画像内のすべてのパッチについてのすべての画素ベクトルの行列:X=[x1,...xt,...xT]T
zt,r パッチtの種類rの画素値zのベクトル
【0023】
ICAの背景
1998年1月6日に発行された「情報の最大化を用いて出力冗長性を最小化することによって未知の信号を回復するブラインド信号処理システム(Blind Signal Processing System Employing Information Maximization to Recover Unknown Signals Through Unsupervised Minimization of Output Redundancy)」という名称の、Anthony J.Bellの米国特許第5706402号は、単一層フィードフォワード・ニューラル・ネットワークにおけるエントロピー最大化に基づく非監視学習アルゴリズムを開示している。Bellによって開示されたICAアルゴリズムでは、非監視学習手順を用いて、上り勾配によってジョイント出力エントロピーを最大化して出力内の相互情報を最小化することによってブラインド信号処理問題を解決する。この学習されるプロセスでは、複数のスケーリング重みおよびバイアス・ベクトルが、各ソースを分離するのに用いられるスケーリング項およびバイアス項を生成するように繰り返し調整される。
【0024】
一般に、ICAは、多変数データにおいて、座標系の軸の方向がデータの二次以上の統計によって決定される線形非直交座標系を見つける技術である。ICAは、ソース信号が複数のセンサからの信号の未知の線形混合物としてのみ観測され、ソースが互いに依存しないと仮定されることを除いてソース信号の特性パラメータが未知である、Bellによって開示されたような「ブラインド信号分離」で使用される。言い換えれば、ソース信号と、これらの信号が混合される方法はどちらも未知である。このような用途におけるICAの目標は、センサによって観測された互いに独立したソース信号の未知の線形混合物のみが与えられた場合に、パラメータを学習し、互いに独立したソースを回復する(すなわち、互いに独立したソースを分離する)ことである。基本要素分析(PCA)のような相関ベースの変換と異なり、ICA技術は、行列を用いてデータを線形に変換し、各ソース信号の統計依存性を弱め、各ソース信号をできるだけ互いに独立させることを試みる。したがって、各ICA基本関数ベクトルは、アルゴリズムの制約によって制限されるのではなくデータによって示される方向に自由に従う。言い換えれば、ICA基本関数同士の間の関係は、PCA技術によって課される直交性要件などの要件によって非現実的に制限されることがない。その結果、ICA基本関数は通常、より効率的であり、データをより正確に表す。ICAは、データにおける構造を見つけるのに有用なツールであり、混合された音声信号の分離およびEEG記録からのアーチファクトの除去を含む、現実世界データの処理に首尾よく使用されている。
【0025】
ICAプロセスの説明
ICA基本関数は、本明細書で開示する符号化技術で利用される。広義には、ICA技術は、画像を含む様々なデータ・セットを特徴付ける基本関数を作成または「訓練」するのに用いることができる。米国特許第09/418099号は、ICA基本関数をどのように訓練するかを含め、ICAアルゴリズムを開示し、かつICA基本関数の使用法を開示している。ICA基本関数に関する他の文献には、T.-w. Lee、M.S. Lewicki、およびT.J. Sejnowski著「非ガウス・ソースによる非監視分類とブラインド信号分離における自動コンテキスト切替え(Unsupervised Classification with Non-Gaussian Sources and Automatic Context Switching in Blind Signal Separation)」、IEEE Transactions on Pattern Analysis and Machine Intelligence、第22(10)巻、1078〜1089頁、2000年10月が含まれる。1組のICA基本関数を用いて1組のデータを特徴付けることができるが、精度および/または効率をさらに高めるために、データ・セットが2つ以上のクラスのうちの1つに分類される米国特許第09/418099号で開示されたように混合モデルを使用することができる。データを最も適切に表すクラスを選択することによって、マルチクラスICA基本関数を用いたデータの特徴付けをずっと正確にかつ/またはずっと効率的にすることができる。より高い精度および/またはより高い効率は、各ICA基本関数が、準ガウス分布、正規ガウス分布、または超ガウス分布として基本統計分布を指定する関連する変数(本明細書では「pdf変数」と呼ぶ)を有する一般化されたガウス・モデルを実施するICA基本関数を用いることによって得ることもできる。このpdf変数は、連続的に変動することができ、それによって、モデル化できる広範囲の分布を与え、それによって、精度および/または効率を高める。たとえば、一般化されたガウス・モデルを実施するICA基本関数は、2000年10月13日に出願され、「一般化されたガウス・モデルを用いたマルチソース・データの非監視適応化および分類(Unsupervised Adaptation and Classification of Multi-Source Data Using a Generalized Gaussian Model)」と題するPCT第US00/28453号で開示されている。一般化されたガウス・モデルは、ICA基本関数の単一クラス実現形態とマルチクラス実現形態のどちらでも使用することができる。
【0026】
システムの説明
図1は、画像100と、画像を取り込む装置と、画像を記憶する装置と、画像を処理する装置と、画像を送信する装置と、画像を受信する装置との図である。特に、画像100は、紙の上の画像の場合のスキャナ105や、デジタル・カメラのような任意の適切な装置によって走査されるかまたは取り込まれる。デジタル・カメラ107は、可視デジタル画像を取り込む標準カメラ、地球または空間の画像を広範囲の波長にわたってデジタル形式で取り込む衛星カメラ、医療共鳴画像(MRI)などの医療画像を取り込む医療機器とを含んでよい。あるいは、ビデオ・カメラや、コンピュータ生成画像を生成するコンピュータ110のような他の画像データ源を用いて画像データを収集することもできる。画像データは、データを必要に応じて処理する適切な処理装置120に供給される。たとえば、画像が適切なデジタル・フォーマットでない場合、デジタル装置120はこの画像をより適切なフォーマットに変換することができる。適切なデジタル・フォーマットの例にはRGBが含まれる。デジタル装置120によって受信された画像データがすでに適切なフォーマットである場合、このデータはフォーマットの変換なしに単に通過することができる。
【0027】
デジタル装置120からの出力画像データはコンピュータ130に供給され、コンピュータ130は次いで、本明細書の他の個所で詳しく説明するようにデータを符号化し処理する。符号化された画像は、コンピュータ上の表示モニタ135上に表示し、かつ/または通信網140上で送信することができる。通信網140は、インターネット、会社のイントラネット、ローカル・エリア・ネットワーク、装置同士の通信のための任意の適切な通信網のような、1つまたは複数の適切なネットワークを含んでよい。通信網は、第2のコンピュータ150、プリンタ160、他の適切な装置170のような様々な装置との通信を可能にする。適切な装置の一例は、通信網との接続に関する標準を規定するBluetooth標準に準拠した装置である。
【0028】
一般に、本明細書で説明するアルゴリズムは、符号化に関するアルゴリズムであれ、解凍に関するアルゴリズムであれ、送信に関するアルゴリズムであれ、その他のアルゴリズムであれ、(図1に示されている)汎用コンピュータや他の装置のような適切な計算装置で実施される。しかし、これらのアルゴリズムは、デジタル・カメラ、スキャナ、表示装置のような様々な装置で実施することができる。ASIC(Application Specific Integrated Circuit)を用いてアルゴリズムを実施することができる。デジタル・データは、任意のコンピュータ・メモリ、またはハード・ディスクやCD-ROMのような任意の固定記憶装置に記憶することができる。言い換えれば、収集され記憶された画像データは、コンピュータのメモリ内、または所望の処理装置でアクセスできる任意の他の適切なメモリ位置に存在することができる。
【0029】
画像定義およびデータ
図2は、ある従来のフォーマットでは640×480であり、より解像度の高いフォーマットは、たとえば832×624や1024×768を含む行および列として構成された複数の画素によって形成されたデジタル化画像200の図である。画像200は、各パッチが、事前に定義された画素構成を有する、いくつかの異なるパッチ210を有するグリッド構成として分割されている。たとえば、各パッチ210は、8×8画素アレイを含んでよいが、7×7のような他のパッチ・サイズを使用することができ、場合により、他の実施形態では非方形パッチを用いてパッチを作成することができる。
【0030】
デジタル化画像200内の各画素には、デジタル・データが関連付けされている。従来、デジタル・データは、各画素から得たRGB(赤、緑、青)データの形式を有している。この3つの値は、特定の画素における特定の色の強度を指定している。他の実施形態では、他の色空間および他の形態のデジタル・データ記憶装置を利用することができ、たとえば、白黒情報や、赤外線情報や、輝度情報や、様々なデジタル情報を各画素に関連付けすることができる。
【0031】
圧縮システムにおける基本関数では通常、基本関数が訓練された色空間と同等の所定の色空間でデータを定義する必要があり、たとえば、基本関数がRGB色空間で訓練された場合、入力されるデータを、RGBとするか、またはそのネイティブ・フォーマットからRGBに変換する必要がある。しかし、この変換が情報の損失を伴うとき、ネイティブ・データを変換せずにそのまま用いることが好ましい。基本関数が訓練される色空間は、実施形態ごとに異なるものであってよく、基本関数が訓練された色空間で表されたデータに対して直接符号化が行うか、またはある色空間を他の色空間に正確にマップする変換を用いることが好ましい。たとえば、色空間が入力空間の線形変換である場合、結果として得られる基本関数も線形変換される。しかし、2つの色空間の間に非線形性が存在する場合、変換はずっと困難になる(LMSから量子化されたRGBへの変換など)。通常、非線形変換では、符号化に悪影響を与える情報の損失を被る。簡単に言えば、符号化はデータの元の色空間で行われることが好ましい。
【0032】
パッチのデータ・ベクトルを画像データから構築する方法を示すために、パッチ210aの拡大図がこのパッチ内の各画素に関連する別々のデジタル値と一緒に示されている。図示の実施形態では、8×8グリッドが示されているが、上述のように、他の構成を利用することができる。拡大されたパッチ210aは、1つの画素値を表す一連の平面を示している。特に平面211aは第1の種類の画素値を示している(たとえば、パッチ内の各画素の赤値)。これらの第1の値は、要素がz11、z12、z13、、、z1pであるタイプ・ベクトルz1として収集される。説明の都合上、各パッチは、すべての画素Pを含んでおり、個々の画素は1からPまで番号付けされ、データ指数pを有している。さらに、各画素は、Rによって参照され、データ指数rを有する1つまたは複数の値(またはデータ・ポイント)を有している。たとえば、RGB画像データのR=3と7×7パッチは、各々が47個の要素を有する3種類のベクトル(z1, z2, z3)を生成する。
【0033】
第2の平面212a(r=2)は、パッチ内のすべての画素の第2の値を示しており、これらの値は第2のベクトルz2として収集される。第3の平面213aは、各画素に関連付けすることのできる追加の画素値を表し、これらは1つまたは複数のベクトルzrとして収集される。最後に、214aにおいて、最後の画素値(r=R)がベクトルzRとして収集される。収集された画素ベクトルz1、z2、、、zRは連結され、このパッチtのデータ・ベクトルxtが形成される。この場合も、説明の都合上、画像内のいくつかのパッチをtで表し、したがって、各パッチをt:t=1からTの数で表す。第1のパッチは第1のデータ・ベクトルx1で表され、最後のデータ・ベクトルはxT=[x1,x2 ... Xn,..., xN]tで表される。1からTまでの各パッチについてのこれらのデータ・ベクトルは、以下に詳しく論じるように、別々に符号化され、圧縮され、次いで送信または記憶され、次いで復号される。
【0034】
符号化
次に、単一のクラスの基本関数を用いた画像の符号化を示すフローチャートである図3を参照する。符号化方法の説明を容易にするために、まず単一のクラスについて論じる。いくつかの用途では、単一のクラスの基本関数が適切であるが、他の用途では、本明細書の他の個所で図9や図10などを参照して論じるように、複数のクラスが有利である。マルチクラス実施形態は有利なことに、符号化効率を向上させ、かつデータ・ファイルがより複雑にかつ大きくなることを犠牲にして精度を向上させる。本明細書で開示し論じる基本関数はICA基本関数であると仮定する必要がある。
【0035】
図3の300で、単一のクラスを用いて画像を符号化するプロセスは、T個のデータ・ベクトルを受信することによって開始する。各データ・ベクトルは画像内の各パッチを表す。前述のように、この実施形態では、データ・ベクトルは、画像を、各々が等しいパッチ・サイズを有する互いに隣接するブロックのグリッドに分割することによって形成される。他のグリッドでは(たとえば、画素化方式?)、各ブロックが1つ(または複数の)画素によって分離される一連の重なり合ったパッチを形成することができる。重なりグリッド符号化は比較的正確であるが、追加的な計算時間が必要になる。
【0036】
315で、単一のクラスの基本関数が供給される。これらの基本関数は、本明細書の他の個所で詳しく論じるように所望の種類の画像についてすでに算出(または訓練)されている。一般に、単一のクラスの場合、クラスは、予想される各クラスごとに受け入れられる画質を与えるように訓練することができる。マルチクラス分類の場合、各クラスを別々に訓練してより高い精度を得ることができる。たとえば、自然の風景、人間の写真、都会の風景、動物などは訓練できる画像の種類である。
【0037】
この単一クラスの符号化方法では、ループを用いて各パッチがソース・ベクトルを形成するように符号化される。320で、データ指数がt=1に初期設定され、プロセスが開始される。330で、現在のパッチについて、以下の公式を用いてソース・ベクトルが算出される。
【数1】
【0038】
ボックス340および342で、ループは、すべてのパッチが符号化されたかどうかを判定する試験を行い、すべてのパッチが符号化されているわけではない場合、指数が増分され、(330での)計算が繰り返される。このループは、すべてのパッチが符号化されるまで継続し、次いで演算は、ソース・ベクトルが利用可能であり、言い換えれば、1からTまでの各パッチに、算出されたソース・ベクトルが関連付けされていることを示すボックス350に進む。次に、360で、ソース・ベクトルが圧縮され、最終的な圧縮されたソース・ベクトルが形成される。圧縮については、たとえば以下に説明する。370で、圧縮されたベクトルが記憶され、380に示されているように、符号化された圧縮済みのソース・ベクトルを送信することができる。
【0039】
簡単に言えば、画像データを符号化する場合、各パッチから得た画素データに、基本行列の逆行列が掛けられ、元のデータ・ベクトルと同じ数の要素を有するソース・ベクトルが各パッチごとに得られる。たとえば、データ・ベクトルがRGBデータの7×7パッチに対応する(画素当たり3データ・ポイント)場合、データ・ベクトル内に147個の要素が存在し、対応するソース・ベクトルも147個の要素を有する。後述のように、画像データを圧縮するために、すべてのこれらの147個の要素よりも少ない数の要素が記憶され、かつ/または送信される。基本行列内の列の数も147個の要素を有することに留意されたい。
【0040】
圧縮:概要
算出されたソース・ベクトルを圧縮するために、いくつかの異なる方法を実施することができ、たとえば、「係数の量子化」法を利用し、ソース係数の分布の特性を用いて、各ソースの最適な量子化器を開発することができる。いくつかについて本明細書で詳しく説明する多数の圧縮方法は、ソース・ベクトル内のすべてのソース値よりも少ない数のソース値を選択するという原則に基づいて作用する。たとえば、ソース・ベクトルがそれぞれN個の係数を含み、ソース・ベクトルが導かれた画素データ・ベクトルもN個の値を含んでいる場合、圧縮時に顕著な利点を得るにはいくつかのソース値をソース・ベクトルから省略しておかなければならない。言い換えれば、空間を節約し送信時間を短縮するには、いくつかのソース値を省略すると有用である。あるソース値または「係数」を省略することの理論的な基礎は、本明細書で説明する基本関数の性質と、これらの基本関数によってもたらされる疎度とに関する。圧縮および疎度については以下に詳しく論じるが、一般に、「疎度(sparseness)」は、比較的少数の係数が有意の値を有し、一方、多くの係数は零の非常に近くに密集することを意味する。それによって、多くの係数は、パッチの全体的な表現にはほとんど寄与しない。一般に、省略すべき係数を選択する多数の方法が存在し、本明細書ではそのうちのいくつかについて説明する。1つの方法は所定の係数を省略することであり、すなわち、この場合、常に、ベクトル内の位置によって事前に決定される係数が選択される。このような実施形態では、送信される係数を算出するだけでよいので、計算の回数を減らすことができる。所定の係数は、トレーナーまたは他の専門家によって選択され、ソース・ベクトル内の係数の位置は符号化アルゴリズムおよび復号アルゴリズムによって既知である。第2の圧縮方法は、最大の値を有するある数の係数を選択する方法であり、たとえば、各ソース・ベクトル内の最大の20個の係数のみが送信される。他の圧縮技術は、あるしきい値を超えた値を有するすべての係数を選択する技術である。
【0041】
圧縮:実現形態
本明細書では、記憶/送信すべき係数を選択する少なくとも2つの方法について説明する。第1の方法は、所定の係数を選択することによる方法であり、他の方法は、データのある特性に基づいて係数を選択することによる方法である。まず、第1の方法について論じる。
【0042】
次に、所定の係数方法を用いた圧縮のフローチャートである図4を参照する。この方法は400から始まる。410で、画像の算出されたソース・ベクトルが受信される。415で、選択すべき係数の所定の位置が入力される。これらの所定の位置は、アルゴリズムのトレーナー、または有意の値を保持する可能性が最も高いのはどの係数かを事前に判定する他の専門家によって決定される。多数の画像のソース・ベクトルを観測することによって、最も有意度の高い値を持つのはどの係数位置かを判定することが可能である。したがって、多くの環境では、これらの特定の位置における係数を保存することができ、他の非有意係数を安全に無視することができる。
【0043】
420で、データ指数が初期設定されループが開始される。ボックス430、440、450、および460を含むこのループは、(位置によって)各ソース・ベクトル内の所定の係数を選択する。特に、430で、パッチtに関する所定の係数が単にソース・ベクトル内のその位置に基づいて選択される。たとえば、係数1、3、10、21、25、60、70、73を選択することができる。次に、440で、これらの係数はパッチtの圧縮されたソース・ベクトルを表すように保存される。450で、ループが完了したかどうかを判定するように指数が試験され、ループが完了していない場合、データ指数が増分され、演算が繰り返され、次のソース・ベクトルの所定の係数が選択される。ループが完了すると、470で、全画像について、圧縮されたソース・ベクトルが得られ、すなわち、T個の符号化ソース・ベクトルが得られる。
【0044】
次に、図5を参照する。第2および第3の圧縮方法は、画像の各ソース・ベクトル内の観測される係数値に基づく方法である。この方法についてよりうまく説明するために、図5は、ソース・ベクトルの係数が零の周りに密集する様子をグラフで示している。特に、図5は、x軸上のソース・ベクトルの係数の正規化された値を示すグラフである。図5は、y軸上に、特定の値を有するソース係数の数を示している。通常、係数の値は、x軸の中心点が零になるように1に正規化され、各係数は-1.00から+1.00まで延びる。図を見ると分かるように、係数は零の周りに密集しており、これらの係数のうちの多くはある値よりも小さい。各係数が零の周りに密集する程度は、符号化アルゴリズムの「疎度」を決定する。本アルゴリズムによって示される疎度は、基本関数が互いに直交するように制約される場合よりも密にデータの特性に従うように訓練されるICAなどの非直交基本関数の特徴を有していると考えられる。多数の係数が零の周りに密集しているため、情報をより正確に圧縮することができる。言い換えれば、後述の圧縮方法は、ソース・ベクトルに最も有意度の高い値を付加し、それによって、データをそれほど失わずに非有意係数を省略するのを可能にする特定の係数を選択する。
【0045】
この値選択方法では、これらの係数のうちで最も有意度の高いのはどれかを判定するために、各ソース・ベクトルを調べて、最高の値を有する係数要素と、各ソース・ベクトル内のこれらの係数要素の相対的な位置とを判定する。これを実現する1つの方法は、アルゴリズムによって、ソース・ベクトル内の所定数(たとえば、30)の最高の係数を選択する方法である。アルゴリズムは次に、この30個の係数を選択し、次いで、これらの係数の値をその位置と一緒に記憶する。画像内の各パッチは、同様に圧縮され、ソース・ベクトルの上位30個の係数が選択され、これらの係数の値およびその位置が再びソース・ベクトル内に記憶される。
【0046】
600から始まる「最高値選択」法を示す図6を参照する。610で、算出されたソース・ベクトルが圧縮方法に入力される。620で、各ソース・ベクトルごとの記憶される係数の数を決定する圧縮量が入力される。いくつかの実施形態では、ユーザによって圧縮量を事前に決定するかまたは選択することができ、他の実施形態では、トレーナーのような他のソースによって圧縮量を決定することができる。圧縮量を決定する際、記憶すべき係数の数が選択される。いくつかの実施形態では、係数の数を、トレーナーによって適切であると判定されたデータ圧縮量に対応する範囲によって定義することができ、たとえば、5から20の間の量は強力な圧縮が行われ、低画質になり、25から40の間の量では圧縮/画質共に中程度になり、47から70の間の量では高画質が得られ、圧縮は弱くなる。
【0047】
630で、データ指数が初期設定され、640で、上記の620で入力された係数の数に対応する最大の値を有する、このソース・ベクトルtの係数が選択される。たとえば、30個の係数が記憶される場合、最大の30個の値が選択される。次に650で、最大の係数およびそのそれぞれの位置が、パッチtの圧縮されたソース・ベクトルが形成するように保存される。次に、画像内の各ソース・ベクトルについて条件文660および増分ステップ670によって示されるループが繰り返される。すべてのパッチが圧縮された後、680に図示されているように、全画像について、圧縮されたソース・ベクトルを得ることができる。
【0048】
次に、各ソース・ベクトルの係数が、画像への係数の寄与(値)に応じて選択される、しきい値法を用いた圧縮を示すフローチャートである図7を参照する。700で、演算が開始し、710で、画像の算出されたソース・ベクトルが入力される。720で、圧縮量が選択され、言い換えれば、しきい値が選択される。実際のしきい値は任意の数の方法で決定することができ、たとえば、しきい値は、トレーナーまたはその他の専門家によって決定された一定の量であってよい。しきい値圧縮量は、ユーザによって決定または選択することができる。圧縮レベルと画質レベルの兼合いをとるようにいくつかの異なる範囲の値を選択することができる。ユーザは、受け入れられるしきい値を選択して圧縮量を決定することができ、たとえば、しきい値が0.15の場合(正規化された値)、精度は高くなるが圧縮は弱くなり、一方、しきい値が0.5の場合(正規化された値)、圧縮が強力になり、精度は低くなる。
【0049】
ボックス710から得た算出されたソース・ベクトルと、ボックス720から得た圧縮量とを含む入力は、データ指数が初期設定される730から始まり、次いで740で、各係数が調べられ、しきい値量よりも大きい場合に選択されるループに供給される。この演算はたとえば、各係数を受信し、その係数がしきい値量よりも大きい場合にその位置に保存し、これを、連続する各係数ごとに繰り返して、すべての係数をソース・ベクトルに含めるループで行うことができる。750で、圧縮されたソース・ベクトルtが完成し、それぞれの位置における選択された係数が、圧縮されたソース・ベクトルtが形成するように保存される。このアルゴリズムと図6に示されているアルゴリズムの1つの違いは、係数の数が一定でないことであり、したがって、係数の数は、各パッチ内の画像データに応じてパッチごとに異なる。760で、ループは、すべてのソース・ベクトルが処理されたかどうかを判定する試験を行い、すべてのソース・ベクトルが処理されたわけではない場合、770で、データ指数が増分され、演算は、次のソース・ベクトルt+1内の各係数が調べられるボックス740に戻る。しかし、760ですべてのソース・ベクトルが処理されている場合(すなわち、t=T)、780で、全画像について、圧縮されたソース・ベクトルが得られる。
【0050】
次に、単一クラス符号化/復号構成に関する画像データの復号のフローチャートである図8を参照する。800で、プロセスが開始し、810で、T個の符号化ベクトルを含む符号化された圧縮済みデータが受信される。この画像データは、ハード・ディスクなどの磁気媒体記憶装置、CDなどの光学装置、または任意の他のコンピュータ記憶媒体または送信媒体によってインターネットなどのネットワークを介するなど、様々な方法で受信することができる。
【0051】
812で、画像を符号化するのに用いられた圧縮技術が識別され、たとえば、方法は、所定係数法(図4)、最高値選択法(図6)、およびしきい値法(図7)のうちの1つであると識別される。この識別機構は、任意の適切な手段によって構成され、たとえば画像データ自体が、使用された圧縮方法を一意に指定する圧縮識別子フィールドを含んでよい。選択された圧縮方法に応じて、係数の数および/またはソース・ベクトル内の各係数の位置のような追加の情報を受信することができる。
【0052】
815で、ループはまず、受信された各符号化ベクトルを復号する。具体的には、815で、データ指数が初期設定される。820で、最初に受信された符号化ベクトルが再構築され、再構築されたソース・ベクトルst *が与えられ、したがって、このソース・ベクトルst *をアルゴリズムに用いることができる。具体的には、元のソース・ベクトルと同じ数の要素を有する再構築されたソース・ベクトルst *が得られるように非受信係数が零に設定される。これは所定の数量であり、たとえばソース・ベクトルが49個の要素を有し、20個だけが送信された場合、ソース・ベクトルst *を再構築するように再構築されたソース・ベクトルの残りの29個の位置に零が充填される。
【0053】
830で、再構築されたソース・ベクトルst *と基本行列Aとの行列掛算によって、再構築されたソース・ベクトルを用いてデータ・ベクトルが算出される。具体的には、次式が成立する。
【数2】
【0054】
再構築されたデータ・ベクトルが算出された後、画像用の受信された各符号化ベクトルごとに演算が繰り返される。具体的には、図8に示されているように、840で、すべての符号化ベクトルが処理されたかどうかを判定する試験が実行され、すべての符号化ベクトルが処理されているわけではない場合、842でデータ指数が増分され、次の符号化ベクトルが再構築され、その再構築されたソース・ベクトルについて対応するデータ・ベクトルが算出される。すべての符号化ベクトルを利用して対応するデータ・ベクトルが作成された後、演算は840で終了し、ボックス850に戻り、T個の復号されたデータ・ベクトルが得られる。ボックス850で色空間または他の要件を満たすのにフォーマット変換が必要であるかまたは望ましい場合、復号データ・ベクトルのフォーマットが変換され、たとえば、データ・ベクトルがLMSフォーマットを有するが、RGBフォーマットが望ましい場合、適切な変換が実行され、データ・ベクトルが所望のフォーマットに変換される。850で、全画像データが得られる。次に860で、復号データ・ベクトルを用いて必要に応じてディスプレイ上に画像が作成されるか、またはさらに処理が行われる。
【0055】
マルチクラス実施形態
次に、複数のクラスの基本関数を利用してソース・ベクトルによりうまく適合されるマルチクラス実施形態を示す図9および図10を参照する。特に、マルチクラス実施形態は、最も適切なクラスの基本関数を用いてパッチを符号化するのを可能にする。どのクラスの基本関数が選択されるかは、適切な規則、たとえば米国特許出願第09/418099号で指定されたような最尤関数によって決定される。最も適切な基本関数を利用してソース・ベクトルを符号化することによって、より優れた符号化をより効率的に行うことができる。
【0056】
図9は、複数のクラスの基本関数を用いた画像の符号化を示すフローチャートである。マルチクラス実施形態は有利なことに、単一クラス符号化の場合よりも大きなデータ・ファイルにおいて複雑さが増すことを犠牲にして精度を高めることができる。図9では、マルチクラス実施形態における画像の符号化は、各々が画像内のパッチを表すt個のデータ・ベクトルを受信することによって開始する。他の個所で論じるように、各パッチは、画像を、各々が所定のパッチ・サイズを有する互いに隣接するブロックのグリッドに分割することによって与えられる。他のグリッドでは、他の個所で説明するように、一連の重なり合ったパッチを定義するか、または波長手法を利用することができる。
【0057】
915で、各クラスごとの基本関数が供給される。これらの基本関数はすでに、各クラスごとに算出または訓練されている。特に、各クラスは予想できる画像の様々な種類について別々に訓練される。たとえば、自然の風景、人物の写真、都会の風景、動物などについて様々なクラスを訓練することができる。
【0058】
各パッチが、符号化ソース・ベクトルが得られるように符号化されることを示すのにループが用いられている。920で、データ指数がt=1に初期設定され、プロセスが開始する。930で、それぞれの基本関数を用いてクラスのソース・ベクトルが算出され、各クラスに1つずつ複数のソース・ベクトルが得られる。どのクラスが最も可能性が高いかが判定され、最も可能性の高いクラスに対応するソース・ベクトルが選択される。
【0059】
ボックス940および942で、ループが試験を実行し、画像内のすべてのパッチが符号化されたかどうかが判定される。ボックス940、942、および930を通るループは、すべてのパッチが符号化されるまで繰り返され、次いで演算は、すべてのソース・ベクトル(Tベクトル)が得られたことを示すボックス950に戻る。言い換えれば、今や1からTまでの各パッチには、算出されたソース・ベクトルがクラス指定と共に関連付けされている。次に960で、ソース・ベクトルが、本明細書の他の個所で説明するように任意の適切な方法で圧縮される。970で、圧縮された符号化ソース・ベクトルが記憶され、次いで、980に示されているように、圧縮されたソース・ベクトルを送信することができる。
【0060】
図10は、マルチクラス実施形態の場合の画像データ復号を示すフローチャートである。1000でプロセスが開始し、1010で、T個の符号化された圧縮済みベクトルを含む符号化された圧縮済み画像データが受信される。この画像データは、様々な送信元から、ハード・ディスクなどの磁気媒体記憶装置、CDなどの光学装置、または任意の他のコンピュータ記憶媒体または送信媒体によってインターネットなどのネットワークを介するなど、様々な送信媒体を介して受信することができる。1012で、圧縮技術が識別される(たとえば、所定係数法や、最高値選択法や、しきい値法)。1015で、受信された各符号化ベクトルを復号し、特に復号プロセスを開始するようにループが初期設定される。特に、1015では、データ指数が初期設定される。1020で、最初に受信された符号化ベクトルが再構築され、アルゴリズムに使用できる再構築されたソース・ベクトルが得られる。ソース・ベクトルを再構築する場合、圧縮によってどの係数が省略されたかが、識別された圧縮技術を用いて判定される。省略された係数は零に設定され、それによって、元のソース・ベクトルと同じ数の要素を有する再構築されたソース・ベクトルが得られる。これは所定の数量であり、たとえばソース・ベクトルが49個の要素を有し、圧縮のために20個だけが送信された場合、ソース・ベクトルを再構築するように残りの29個の位置に零が充填される。
【0061】
1030で、再構築されたソース・ベクトルと、クラス指定によって指定された基本行列との行列掛算によって、再構築されたソース・ベクトルを用いてデータ・ベクトルが算出される。
【0062】
再構築されたデータ・ベクトルが算出された後、ループは、画像内の受信された各符号化ベクトルごとに演算を繰り返す。特に、図10に示されているように、1040で、すべての符号化ベクトルが処理されたかどうかを判定する試験が実行され、すべての符号化ベクトルが処理されているわけではない場合、1042でデータ指数が増分され、次いで、次の符号化ベクトルが再構築され、その再構築されたソース・ベクトルについて対応するデータ・ベクトルが算出される。すべての符号化ベクトルを利用して対応するデータ・ベクトルが作成された後、演算は1040でループから出て、T個の復号されたデータ・ベクトルが得られたことを示す1050に進む。言い換えれば、今や全画像データが得られている。最後に1060で、この復号データ・ベクトルを用いてディスプレイ上に画像を直接作成し、かつ/またはこの復号データ・ベクトルを必要であるかもしくは所望のさらなる処理に利用することができる。たとえば、LMSデータを印刷できるようにCMYデータに変換したり、LMSをモニタ上で見られるようにRGBに変換するなど、復号データの色空間を適切なフォーマットに変換することが必要になる場合がある。
【0063】
ウェーブレット手法を用いた符号化
図11、図12、および図13は、データを符号化し復号するのにウェーブレット手法が用いられるシステムを示している。画像データ圧縮に対するウェーブレット手法は既知であり、たとえば、提案されたJPEG2000標準はウェーブレット手法を利用している。本明細書では、ウェーブレット手法を、パラグラフ9〜10を参照して説明したICA基本関数および/またはマルチクラス基本関数、および/または一般化ガウス基本関数と一緒に利用して、効率的で正確な符号化・復号方法が実現される。
【0064】
図11は、ウェーブレット手法の演算を示し、特に、各パッチが選択される進行状況を示す図である。一般に、ウェーブレット手法は、各々が漸進的に小さくなる画像パッチを有する、複数のレベルのそれぞれで画像データを処理し符号化する。それぞれの後続のレベルの画像は、ピラミッド技術をウェーブレット手法と共に用いて、以下の例で説明するように、そのレベルのパッチとそのパッチから算出されたソース・ベクトルとの差を求めることによって定義される。有利なことに、ピラミッド手法は、すでに符号化された画像特性に基づいて画像内のエネルギーを低減させ、それによって、それぞれの後続のレベルでの符号化をより効率的なものにする。しかし、他の実施形態では、ピラミッド技術を修正することができ、場合によっては省略することができる。たとえば、差画像を作成すること以外の処理方法を用いるか、または差処理を全体的に省略することができる。
【0065】
図11で1110に示されているように、第1の画像パッチ(レベル1)は画像の大部分を含んでいる。通常、第1の画像パッチは画像全体を含んでいるが、他の実施形態では、第1の画像パッチは画像全体の一部である。第1レベル画像パッチ内のすべての画素によって単一のデータ・ベクトルが定義される。1120に示されているレベル2パッチを作成するために、パッチを、各々が別個のデータ・ベクトルxを構成する4つの等しい正方形に分割することを含む、第1レベルパッチ1110の処理が行われる。ウェーブレット符号化のためのピラミッド技術では、第1レベルパッチ処理は、第1レベル・パッチとそのパッチから算出されたソース・ベクトルとの差画像を求めることを含む。第2レベル・パッチは、差画像を細分することによって得られる。
【0066】
前述のように、各レベルは、データ・ベクトルを符号化するのに用いられるそのレベル自体の1組の基本関数を有している。通常、低周波数フィーチャを符号化する基本関数によって大きいパッチ(たとえば、レベル1)が符号化され、パッチ・サイズが漸進的に小さくなるにつれて、漸進的に高くなる周波数を有するフィーチャを符号化する基本関数によって、細分されたより小さいパッチが符号化される。
【0067】
1130に示されているレベル3パッチは、各レベル2パッチを、各々がデータ・ベクトルを構成する4つの等しい正方形に細分することを含む処理によって得られる。ピラミッド技術では、各第2レベル・パッチは、第2レベル・パッチとそのパッチから算出されたソース・ベクトルとの差画像を求めることによって処理される。この差画像は次に細分される。各ベクトルは、それぞれのパッチ内のデータを形成し、たとえばすでに図2に関して開示されているように任意の適切な方法で配置される。
【0068】
レベル3の後に、いくつかの追加のレベルがあってよい。各レベルで、前のレベルのパッチが処理され細分され、レベルMで演算が完了するまで、パッチの数に等しい数のベクトルが得られる。レベルMでは、1140に示されているように、元の第1レベル・パッチ1110がN個のパッチに分割されており、N個の対応するデータ・ベクトルが存在する。
【0069】
次に、ピラミッド技術を利用したウェーブレット手法を用いて画像を符号化する演算を示すフローチャートである図12を参照する。演算は1200から開始し、次いで1205で、画像データとレベルMまでの各レベルの基本関数とを含む入力が受信される。1210で、レベル1のパッチを選択することによって演算が開始する。多くの実施形態では、画像全体を第1のパッチで構成してよいが、他の実施形態では、画像の大きな一部をレベル1に利用することができる。たとえば、画像は、レベル1パッチを形成するように2つまたは3つ以上のパッチに分割することができる。
【0070】
1215で、通常、低周波数フィーチャを符号化してソース・ベクトルを与える、レベル1に特有の基本関数を用いて、レベル1パッチが符号化される。1218で、レベル1パッチおよびソース・ベクトルを用いて差画像が作成され、一実施形態では、ソース・ベクトルの最高値係数が選択され、次いで、この係数を対応する基本関数と一緒に使用して、レベル1パッチから引かれる画像パッチが作成される。1220で、レベル1の差パッチが2つ以上のパッチに細分され、レベル2パッチが得られる。1225で、通常、レベル1基本関数よりも高い周波数を有するフィーチャを符号化する、レベル2に特有の基本関数を用いて、レベル2パッチが符号化される。
【0071】
前のレベルのパッチが細分され、次に新しいパッチが符号化されるこのプロセスは、ボックス1229、1230、1235、1240、および1242を含むループに示されているように繰り返される。特に1229で、レベル指数が、レベル3に対応するm=3に初期設定される。1230で、ソース・ベクトルから算出された画像パッチ(最高係数など)から各パッチを引くことによって、レベルm-1パッチのそれぞれについて差画像が算出される。次いで、レベルmの新しいパッチを形成するように差パッチが2つ以上のパッチに分割される。1235で、おのおののパッチはLmの基本関数を用いて符号化される。通常、各レベルの基本関数は、前のレベルの基本関数よりも高い周波数を有するフィーチャを符号化する。判定ボックス1240によって、ループが繰り返され、1242で、レベル指数は、すべてのレベルが完了するまで引き続き各ループで増分される。
【0072】
符号化プロセスが完了した後、1250に示されているように、符号化画像情報が得られ、言い換えれば、各パッチは、ソース・ベクトルと、ソース・ベクトルのレベルおよび位置を指定する付随情報とを有する。
【0073】
次に、1260に示されているように、本明細書で図4、図5、図6、および図7に開示されているような任意の適切な技術を用いてソース・ベクトルが圧縮される。最後に、1270で、符号化された圧縮済みソース・ベクトルおよびレベル指定および任意の他の適切な情報が記憶され、かつ/またはリモート位置に送信されるかもしくは任意の所望の方法で使用される。
【0074】
次に、ウェーブレット手法を用いて画像を復号する演算を示すフローチャートである図13を参照する。演算は1300から開始し、次に1305で、ソース・ベクトルと、レベル指定と、各レベル内のソース・ベクトルの位置とを含む符号化された情報が受信される。1310で、第1レベル(レベル1)パッチが選択される。1310で、レベル1の特定の基本関数を用いてレベル1パッチが復号される。
【0075】
1318で、復号されたレベル1パッチを表示することができる。復号されたレベル1パッチは最終画像の近似推定量を構成するが、ユーザは、各レベルの処理時の様子を見たい場合がある。他の実施形態では、すべてのレベルが復号されるまで画像の表示を遅延させることが好ましい。
【0076】
1320で、第2レベル・パッチが選択され、1325で、第2レベルの指定された基本関数を用いて第2レベル・パッチが復号される。1327で、レベル1のすでに表示されているパッチの上に第2レベルの復号されたパッチが表示される。
【0077】
復号化のための演算はそれからすべてのレベルが復号されるまでボックス1330、1335、1337、1340、および1342を含むループに示されているように繰り返される。
1330で、次のレベルのパッチが選択され、1335で、そのレベルの基本関数を用いてこれらのパッチが復号される。1337で、復号されたパッチが表示され、1340で、演算が完了したかどうかを判定するためにレベル番号が試験される。演算が完了していない場合、1342に示されているようにデータ指数mが増分され、再びループに従って演算が実行される。すべてのレベルが復号されている場合、1350に示されているように画像が表示され、演算が完了する。
【0078】
図14は、画像データを表すように基本関数を訓練または「適応化」する演算を示す図である。1400から示されているように、まず、クラスkの基本関数を訓練するための適切なデータ・セットが選択される。このデータ・セットは、多数の画像パッチ(たとえば、10万個から100万個以上)を含んでよい。このデータ・セットは、符号化すべき画像を適切に表すように基本関数を適応化することに熟練したユーザによって選択されるべきである。たとえば、様々な画像を符号化する場合、データ・セットには、一般に様々な画像を表す画像パッチの分類を含めるべきである。しかし、データ・セット内の画像として、通常予想される画像の種類を厳密に表す画像が選択される場合、より効率的な符号化が可能である。たとえば、人物のポートレートが予想される画像である場合、データ・セットは好ましくは、ポートレートの離散集合から得られた多数のパッチを含む。
【0079】
図14のダイヤグラムは、参照の都合上指数が指数kによって指定されている単一クラスの訓練を示している。たとえば図9および図10を参照して他の個所で論じる多重クラス実施形態では、訓練プロセスを繰り返して1からKまでの複数のクラスのそれぞれについての1組の基本関数を得ることができる。マルチクラス実施形態は有利なことに、特定の種類の画像を対象とする基本関数の訓練を可能にする。たとえば、クラス1は人物に対して訓練することができ、クラス2は植物に対して訓練することができ、クラス3は風景に対して訓練することができ、クラス4は建物に対して訓練することができる。パッチを符号化し復号する際、適切なクラスを選択することにより、選択されたクラス基本関数によってそのパッチをずっと正確にかつ効率的に表現することができる。
【0080】
図11、図12、および図13を参照して開示されたような、ウェーブレット手法を実施する実施形態では、それぞれの異なるレベルは異なる1組の基本関数を必要とする。たとえば、第1のレベル(最大のパッチ)の基本関数は、低周波数空間成分(すなわち、画像において一定であるかまたは徐々に変化するフィーチャ)を選択するように訓練(または処理)することができる。第2レベルの基本関数は、いくらか高い周波数を有する空間成分(すなわち、画像においてより高速に変化するフィーチャ)を選択するように訓練することができる。同様に、後続の各レベル(徐々に小さくなるパッチ)の基本関数は、徐々に高くなる周波数を有する空間成分を選択するように訓練することができる。
【0081】
1410に示されているように、基本関数は、「ブラインド信号分離における複数のクラスおよびソースの非監視適応化および分類(Unsupervised Adaptation and Classification of Multiple Classes and Sources in Blind Signal Separation)」という名称の、1999年10月14日に出願された米国特許出願第09/418099号で開示されているような技術を使用し、ICA技術を用いてデータに適応化され、適応化された基本関数が得られる。一般に、このプロセスでは、パラメータ(たとえば、基本行列やpdfパラメータ)が初期設定され、次いで主適応化ループ内の各データ・ベクトルごとに各パラメータが適応化される。次いで、後続の各反復ごとに学習速度を観測しつつ、主適応化ループが複数回にわたって反復される。任意の適切な学習規則、たとえば、上り勾配や最大事前値を使用することができる。数回の反復の後に学習速度が低下すると、最終的に基本行列は「収束(converge)」したと判定される。学習速度が収束したときには、基本関数は訓練済みである。
【0082】
訓練された基本関数は、1420に、1)画像表現および2)数学的表現の2つの形態で示されている。画像表現は、各々がデータ・セットの画像に一般に見られるフィーチャを表す一連のパターンを示している。この場合、符号化された画像内の各係数は、その係数に関連するパターンに与えられる重みを表す。
【0083】
数学的表現は、各基本関数の列ベクトルを含んでいる。各列ベクトルは全体として、クラスkの混合行列Aを定義する。さらに、各基本関数にpdf(確率密度関数)パラメータを関連付けることができる。pdfパラメータは、基本関数に関連するpdfを示す。一実施形態では、pdfパラメータは、pdfが準ガウスpdfであるか、ガウスpdfであるか、それとも超ガウスpdfであるかを示す値を含む。たとえば、値「1」がガウスpdfを示し、「1」よりも小さい値が準ガウスpdfを示し、「1」よりも大きい値が超ガウスpdfを示してよい。全体として、pdfパラメータはクラスkのpdfベクトルβを定義する。
【0084】
ICA基本関数および直交性
図14に示され、図14を参照して論じたように、各基本関数は、少なくとも2つの方向を有する多次元空間内のベクトルの形で表すことができ、すなわち、各ベクトルは少なくとも2つの要素を有し、多くの場合それよりも多くの要素を有する。各基本関数は、1組の基本関数内で一意であり、各ベクトルを図形で示すことができる。以下に示すように、各基本関数は、JPEGで用いられているのと同様のPCA(Principal Component Analysis)を用いて得られるような他の基本関数よりも効率的である。本明細書では、PCA基本関数は、広く使用されているJPEG基本関数とほぼ同等とみなされる。
【0085】
図15および図16は、x1-x2空間におけるグラフであり、水平軸が第1のデータ要素x1を示し、垂直軸が第2のデータ要素x2を示している。データ・ポイントは図15と図16の両方で同一であり、図示の都合上、データは、1501に概略的に示されている第1群と1502に概略的に示されている第2群とを含む、2つの比較的明確に定義された群を含んでいる。実際のデータは、通常、各々が異なる特性を有するいくつかの異なる群に従う構造を有するが、実際のデータ内の群の数は1から多数まで様々であり、実際のデータは各群内ではそれほど明確に定義されないことに留意されたい。言い換えれば、図15および図16に示されている各群内のデータは図示の都合上簡略化されている。
【0086】
図15は、第1のPCA基本関数1511と、第1のPCA基本関数に概ね直交する(約90゜)第2のPCA基本関数1512とを含む2つのPCA基本関数を示している。図16は、第1のICA基本関数1601と、第1のICA基本関数に直交しない第2のICA基本関数1602とを含む2つのICA基本関数を示している。図示を容易にするため、図15および図16は、2つの次元(すなわち、2つの基本関数)のみを示している。たいていの実現形態では、これよりもずっと多くの次元が必要であることを認識されたい。たとえば、8×8画像パッチの一実施形態では、図示するのが困難な192個の次元が必要である。
【0087】
図15と図16を比較すると、PCA基本関数とICA基本関数との間に有意な違いがあることが分かり、かつICA基本関数が基本的なデータをより効率的かつ正確に表すことが分かる。図15で、第1のPCA基本関数1511は第1のデータ群1501に概ね従っているが、第1のPCA基本関数が第2のPCA基本関数に概ね直交している(90゜)ため、第2のPCA基本関数1512は第2のデータ群1502から著しく逸脱している。したがって、第1のPCA基本関数と第2のPCA基本関数の線形組合せとしてデータ・ポイントを表現するのは非効率的である。しかし、図16では、どちらのICA基本関数も各データ群に概ね従い、特に、第1のICA基本関数1601は第1のデータ群1501に概ね従い、第2のICA基本関数1602は第2のデータ群1502に概ね従い、したがって、ICA基本関数は明らかにPCA基本関数よりも効率的である。
【0088】
PCA基本関数は、本来直交性を有し、多次元表現では、すべてのPCA基本関数同士が概ね直交しなければならず、すなわち、PCA基本関数は互いに直交する。言い換えれば、PCAでは、その第1の基本関数は他のすべての基本関数に直交する必要があり、その第2の基本関数は他のすべての基本関数に直交する必要があり、他の基本関数についても同様である。図15の例では、第1のデータ群と第2のデータ群が直交しておらず、多くとも1つの基本関数がデータ群に概ね従う。実際のデータを用いた場合、少数のPCA基本関数が、画像データに通常見られる実際のグループ分けに一致する可能性は極めて低い。その結果、PCA基本関数によって符号化された画像では通常、多数の基本関数がデータを表す必要があり、たとえば、単一の群が画像をいくらか正確に表すのに3つ以上の直交関数が必要になる場合がある。
【0089】
これに対して、図16に示されているICA基本関数は実質的に互いに直交(90゜)しない。ICA基本関数の1つの有意な特性は、少なくとも1つ(多くの場合、多数)のICA基本関数が別のICA基本関数に直交しないことである。これは、ICA基本関数が、通常互いに直交しないデータ群に自由に概ね従うからである。したがって、ICA基本関数はデータをより正確にかつ効率的に表し、一方、PCA基本関数のような他の種類の基本関数は、基本関数を非現実的に互いに直交するよう制約するので、より非効率的でより不正確である。この非現実的な要件のために、PCA基本関数は、ほとんどの種類のデータに対して符号化を効率的に行うことができない。なぜなら、ほぼすべての種類のデータの構造は、互いに直交する軸に沿ってグループ分けするのが容易ではないからである。したがって、図16に示されているICA基本関数を用いた場合、2つのデータ群の各々は実質的に、単一のそれぞれの基本関数によって表すことができ、一般に、ICA基本関数によって符号化された画像は効率的に符号化される。
【0090】
ICA符号化データの疎度
ICA符号化データは、各々がそのそれぞれの基本関数に与えられる「重み」を表す一連の係数によって表される。ICA基本関数に観測される1つの特性は、データ・セットを比較的少数の係数によって特徴付けることができることが多く、すなわち、ICA基本関数によって符号化されたデータ・セットの係数は「疎」であることである。このことは、データ・セットのICA特徴付けに有意に寄与するのが少数の基本関数に過ぎないことを意味する。
【0091】
ICA基本関数では、従来の基本関数に対する相対的な疎度を考慮すると、圧縮技術がずっと効果的である。特に、ICA符号化データは、より小さいファイル・サイズに圧縮することができ、かつ/またはより正確に圧縮することができる。たとえば、自然の風景では、15%の係数を保存しただけで受け入れられる画像を得ることができると考えられている。低品質の画像の場合、5%の係数があるだけでよい。高品質の画像では、30%の係数が必要になることがあり、超高品質の画像では60%などのより多い量が必要になることがある。これに対してJPEG基本関数では、高品質の画像を得るのに基本関数の係数の80%〜90%を送信する必要がある。
【0092】
上述のように、ICA符号化係数は疎であり、すなわち、データは、係数が主として零の周りに位置するように符号化され、言い換えれば、情報値(非零係数)の割合は少ない。情報符号化の観点からすると、このことは、少ない割合の基本関数を用いて色画像パッチの符号化および復号ができることを意味する。これに対して、ガウス密度は疎に分散されず、大部分の基本関数は、色画像を表すのに必要である。
【0093】
疎度の1つの表示は符号化効率である。ICAとPCAとの符号化効率は、シャノンの理論を用いてビット数の下限を得ることによって比較することができる。
【数3】
上式で、Nは入力スペクトルxtの次元であり、σxは、符号化時の誤りによって導入されるノイズの符号化精度(標準偏差)であり、P(xt|A)は、ベースが与えられた場合のデータの尤度である。
【表1】
【0094】
次に表A内の画像パッチ・データを参照すると、ICA方法によって、PCAよりも効率的なデータ・セットが得られることが分かる。ICA方法では、8ビットの未圧縮データを表すのに1.73ビットだけあればよく、一方、PCAアルゴリズムでは、同じ量の未圧縮データを表すのに4.4ビットが必要である。PCAの4.46ビット/画素からICAの1.73ビット/画素への向上は、符号化効率の約160%の向上を表し、したがって、ICA基本関数がPCA基本関数よりも優れた空間−色特性を符号化することが分かる。効率の向上を示す他の方法は、係数の「疎度」の1つの尺度である算出されたとがり(尖度:kurtosis)を用いる方法である。一般に、とがり値が大きいほど圧縮に適している。表では、ICA方法は19.7のとがりを示し、一方、PCA方法のとがりは6.6に過ぎず、ICAによって得られるアルゴリズムの方がずっと圧縮に適していることが分かる。これに対して、ガウス関数の正規化されたとがりは零である。さらに、相互情報は、ICAについては0.0093、PCAについては0.0123として算出されており、ICAの方がデータ内の冗長性が低く、ICAが圧縮に適していることが分かる。一般に、相互情報値が小さいほど、ICA方法における情報は依存度が低く、したがってより効率的であることを意味する。ICAアルゴリズムは通常、1%以下(0.01)の相互情報を実現すると考えられる。ただし、データの種類によっては5%以下(0.05)の相互情報を示すものがある。これらの結果は、ICA基本関数が疎なデータを疎に符号化することを示している。
【0095】
図17は、ICA基本関数を用いて多数の自然の風景(自然の風景から得た40000個の画像パッチ)が符号化された実験の結果を示しており、それに対して、図18は、ICAを用いて得られた係数の疎度を、PCAを用いて得られた係数の疎度と比較できるように、同じ自然の風景がPCA基本関数を用いて符号化された実験の結果を示している。図17および図18は、寄与度の順に並べられたICAの25の最も有意度の高い基本関数の正規化された係数の分布を示すグラフである。これらの分布はソース値のヒストグラムである。図17および図18では、基本関数はL2-ノルム(後述)の降順に並べられており、各グラフは、その分布の疎度を示す「β値」も含んでいる。図示のβ値は、最大事前法を用いて算出されている。より大きなβは、より低い係数密度に対応し、すなわち、密度が非常に低い場合、大部分の係数は零を中心として密集し、少数の係数のみが非零になる。一般に、β値が大きくかつグラフの幅が狭いほど、基本関数の寄与度が零の周りに密集する度合いは大きくなり、したがって、疎度値が大きいほど、相対的にその基本関数の寄与度は小さくなる。
【0096】
前述のように、各グラフは、以下の公知の公式によって各基本関数の相対寄与度A=(a1,a2,...aN)を順位付けするL2-ノルムの降順に並べられており、
【数4】
【0097】
基本関数をL2-ノルムの降順に並べることによって、最も大きな寄与度を有する基本関数が1番上の行の1番左に現れ、2番目に大きな寄与度を有する基本関数が、1番上の行の2番目の位置に現れ、これに続く基本関数が1番上の行に続けて並べられ、次いで同じことが各行に繰り返される。したがって、基本関数をL2-ノルムの降順に並べることは、各基本関数の相対寄与度を単一の図に示す好都合な方法である。
【0098】
図17は、多数のICA基本関数についてデータが実質的に零の周りに密集することを示しており、たとえば、1701、1702、および1703に示されている3番目、4番目、および5番目のグラフはそれぞれ、3.51、2.68、および2.96の疎度値を有している。すべての25個のICA基本関数の疎度値の平均は約6.21である。これに対して、図18は、PCA基本関数によって符号化された係数のグラフであり、より疎度の低い分布を示しており、同じ画像を符号化するのにより多くのPCA基本関数が必要であることが分かる。1番目の行における最大疎度係数は、それぞれ1801、1802、および1803に示されている2番目、4番目、および5番目のグラフについての2.02、2.94、および2.18である。すべてのPCA基本関数の平均疎度値は約3.08であり、ICA係数の場合の平均疎度の約2分の1である。この差は、この実験ではICA基本関数の効率がPCA基本関数の約2倍であり、PCAが必要とする係数の約2分の1で同じ画像を表すことができることを示している。概して、図17および図18は、ICA基本関数が、PCA基本関数よりも高い疎度を有し、かつより効率的にデータを符号化できることを示している。他の実現形態は異なる平均疎度値を示す可能性があり、かつPCAの疎度値とICAの疎度値の数値差が実施形態によって異なることに留意されたい。
【0099】
ICA基本関数の例の説明とPCA基本関数との比較
図14の1420に示されているように、各基本関数は、本明細書では基本パッチと呼ばれる画像パッチの形で表すことができる。基本パッチを構築する場合、基本関数の各要素は、基本パッチの1つのそれぞれの画素を定義し、すなわち、各基本パッチはそのそれぞれの基本関数の要素によって定義される。各基本関数は、それに対応する基本パッチ内の画素に関する色情報を含んでおり、したがって、各基本パッチの色特性(すなわち、基本関数)は、色空間内の1組の画素座標によって表すことができる。
【0100】
色空間とは、色が定義される方法を指し、たとえば、RGB色空間は、ある色における赤、緑、および青の相対寄与度に関してその色を定義する。本明細書で論じる1つの色空間であるLMS色空間は、人間の目の反応をL値、M値、およびS値の形でマップする。具体的には、LMS色空間は、L値、M値、およびS値がL錐体、M錐体、およびS錐体の反応に概ね一致するように定義され、したがって、LNS色空間は、人間の目の反応を近似する線形組合せの形で色を表す。この3つの波長範囲は、青、緑、および赤に概ね対応する。用途によっては、既知の線形変換を用いることによってLMS空間をRGB空間に概ね変換することができる。MacLed & Boynton 1979、およびDerrington等1984、MacLedおよびJohnson、Journal of the Optical Society of America A、第10巻、2491〜2512頁(1993年)によって開示されたように、錐体対立色空間は、(L-M)およびSに対応する2つの色軸と無色軸とを有するLMS空間の線形変形を表す。
【0101】
図19Aは、L2-ノルムの降順に並べられたICA基本パッチを示し、図19Bは、図19Aの基本パッチに対応する色空間図を示している。比較として、図20Aは、L2-ノルムの降順に並べられたPCA基本パッチを示し、図20Bは、図20Aの基本パッチに対応する色空間図を示している。図19Aおよび図19Bの特定の構成は、図19Aの各画像パッチの位置(行および列)が、図19Bに示されている色画像図の位置(行および列)に対応するようになっている。たとえば、図19Aと図19Bの間の点線1901によって示されているように、図19Bの1番目の行、1番目の列は、図19Aの1番目の行、1番目の列に示されている画素の対応する色空間表現を示している。図20Aおよび図20Bの構成は同様に、画像パッチと色空間表現との間の1対1の対応を示している。都合上、本明細書では、第1の行から始まり、この行全体にわたって1から10まで続き、次いで2番目の行全体にわたって11から20まで続き、以下同様に続く番号によって基本関数が参照され、したがって、基本関数は有意度の降順に参照されている。
【0102】
以下の定義は、本明細書では、上記の図を参照して基本関数およびそのそれぞれの色空間を説明するのに用いられている。
【0103】
グレースケール基本関数:色空間の無色軸の周りに点が密集することによって表される強度が主として変化する基本関数。たとえば、図19Aおよび図19Bでは、グレースケール基本関数は第3、第4、および第5の基本関数によって示されている。
【0104】
均一色基本関数:中心が原点からずれている小さい円を形成する点が密集することによって色空間が表される非グレースケール基本関数。均一色基本関数の例は、図19Aおよび図19Bの第1、第2、および第7の基本関数によって示されている。
【0105】
輝度エッジ基本関数:画像が、グレーの2つの実質的に異なる明度間の局所的な(すなわち、非反復)境界を形成するグレースケール基本関数。輝度エッジ基本関数の例は、図19Aおよび図19Bの第3、第4、第5、および第6の基本関数によって示されている。
【0106】
対立色基本関数:色空間が、概ね原点を通って延びる線の周りに密集する基本関数。対立色基本関数は、原点の両側に2つの対立する色を含む。対立色基本関数は、画像が、2つの対立する色間の局所的な(すなわち、非反復)境界を形成する色エッジ基本関数でもある。対立色基本関数の例は、図19Aおよび図19Bの第27および第28の基本関数によって示されている。
【0107】
図19Aおよび図20Aには、基本パッチが画像形式で示されており、図19Bおよび図20Bには、対応する色空間図が、L-M値が水平軸上に示され、S値が垂直軸上に示されるグラフとして示されている。この例では、ICA基本関数とPCA基本関数の両方を、LMS色空間と同様のサンプル・セットを用いて訓練した。各基本関数は、LMS色空間の部分集合である色空間を表している。他の実現態様では、他の色空間を使用することができ、たとえば、RGBは多数の用途に適した広く使用されている色空間である。
【0108】
図19AのICA画像パッチを図20AのPCA画像パッチと比較すると、ICA基本関数とPCA基本関数との有意な違いが明らかになる。ほぼすべてのICA基本関数は、それが表す自然の画像と同様に、唐突な境界や人工的に繰り返される構造なしに実質的に平滑なローカル構造として現れている。言い換えれば、ICA基本関数は、幅の広い周波数スペクトルを示す。これに対して、図20Aに示されているほぼすべてのPCA基本関数は、自然の風景には極めてまれな鋭い境界を有するグローバル(すなわち、反復)構造(すなわち、幅の狭い空間周波数スペクトル)を示している。特に、ほぼすべての147個のPCA基本パッチが反復構造を示しており、反復構造を示していないのは約5つだけである。たいていのPCA基本関数は、高度に構造化されたチェッカー盤パターンを示し、いくつかのPCA基本関数では、あるチェッカー盤パターンが第2のチェッカー盤パターンと重なり合っている。したがって、チェッカー盤パターンが自然に発生したものではないことに注目するだけで、これらのPCA基本関数が自然の風景の符号化にそれほど適していないことが分かる。
【0109】
通常、基本関数は、それが主としてグレースケール輝度エッジ、均一色、および対立色基本関数のうちの1つを符号化する場合により効率的になる。したがって、1組の基本関数は、この組が主として、グレースケール輝度エッジ、均一色、または対立色である基本関数で構成される場合に最も効率的になる。図示されるように、図19Aおよび図19Bに示されている多数のICA基本関数はグレースケール輝度エッジ基本関数、均一色、または対立色であり、一方、多くのPCA基本関数はこの群には存在せず、またはそれほど有意ではない。
【0110】
まず画像全体に対する寄与度が最も高い基本関数(すなわち、最初の数行の基本関数)に注目すると、いくつかの有意な違いが現れている。1つの違いは、ICA基本関数が有意な位置、すなわち位置1、2、および7で3つの均一色基本関数を示すことである。これに対して、PCA基本関数は、2つの均一色基本関数のみを有意度の低い位置1および11に示しており、いくつかの非均質基本関数に色関数が組み込まれていることが分かり、さらにPCA基本関数の方が非効率的であることが分かる。
【0111】
他の有意な違いは、最初の数行のICA基本関数の多くがグレースケール輝度エッジ基本関数であることである。輝度は自然の風景の主特性であり、自然の風景における情報の大部分は、輝度で構成され、輝度エッジとして現れることが多い。
【0112】
図19Bで最大の寄与度を有する50個の基本関数(すなわち、上から5行目まで)のうち、約40個(80%)は主としてグレースケールであり、ほぼすべてが輝度エッジ基本関数である。これに対して、図20BのPCA色空間は同じグレースケール寄与度を示さず、上位50個のPCA基本関数のうちの約21個(42%)が主としてグレースケールであり、これはICA基本関数の場合の約2分の1であり、さらに、図20Aに示されている147個のPCA基本関数のうちの1つまたは2つのみが輝度エッジを示す。これに対して、これらのPCA関数はほぼすべてが反復パターンを示す。
【0113】
全体として、図19Bに示されている147個のICA基本関数のうち、約48個(約33%)が主として輝度を符号化し、これらの基本関数のほぼすべてが輝度エッジ基本関数である。これに対して、図20Bに示されている全PCA基本関数のうちの約21個(約15%)が主として輝度を符号化し、これはICA基本関数の約2分の1であり、かつPCA基本関数には輝度エッジ基本関数はほとんどない。
【0114】
したがって、自然の風景によって訓練されたICA基本関数は、主特性として輝度を示し、かつ通常、輝度エッジを示しており、ICA基本関数が効率的な符号化を行うことができることが分かる。他の種類の風景の場合、ICA基本関数が主特性として輝度を示す程度は弱くなり、たとえば、ICA基本関数が様々な種類の風景について訓練される他の実施形態では、輝度エッジ基本関数の割合は、最初の50個の約60%、場合によっては50%、さらに全体の30%〜40%になることもある。
【0115】
人間の目と脳の連結部が輝度を色情報と異なるように処理し、したがって、輝度を主特性とする多数の基本関数が有用であることを示す証拠がある。たとえば、画像処理用途では、カラーバランスを変えずに画像の明るさを増すことは困難である。この問題は、画像をICA基本関数によって符号化し、次いでグレースケール基本関数の係数を選択的に大きくし、それによって、色の完全性を維持しつつ明るさを増すことによって対処することができる。
【0116】
図19Aおよび図19Bに示されているICA基本関数は、輝度エッジ基本関数および均一色基本関数だけでなく、主として色を符号化する多数の色基本関数も含んでおり(たとえば、90%)、一方、それよりも多くの色PCA基本関数は実質的に色とグレースケールの両方を符号化する。たとえば、図20Bでは、PCA色空間2011、2012、2013、2014、2015、および2016は、原点を中心とする広範囲の非線形構成を示しており、グレースケールと色の両方が符号化されることが分かる。ICA色空間にはこのような広範囲のパターンを示す色空間はなく、その代わり、多くの色ICA基本関数は、後述のように、主として対立色で非直交性を有する。一般に、輝度と色を別々に符号化する方が困難であり、したがって、ICA基本関数の方が効率的であると思われる。
【0117】
図19Bおよび図20Bの色空間図では、色対立性は、原点を通る軸を概ね形成する画素クラスタに示されている。たとえば、対立色基本関数は、図19Bで1941に示されている基本関数と、図20Bで2021に示されている基本関数とを含む。色基本関数のうち、ほぼすべての色ICA基本関数(図19Bに示されている)が色対立性を示し、一方、色PCA色空間の顕著な部分(たとえば、20%)が非対立色を示すようである。一般に、対立色基本関数は符号化情報よりも効率的であり、したがって、ICA基本関数は全体的により効率的である。
【0118】
非直交基本関数
図19Bの対立色ICA基本関数と図20Bの対立色PCA基本関数を比較すると、他の有意な違いが分かる。すなわち、多くの対立色ICA基本関数は、色空間によって示されるように互いに対して直交せず(具体的には、基本関数は、基本関数の対立色軸が他の基本関数の対立色軸に直交しない場合に非直交性を有する)、一方、対立色PCA基本関数には非直交性を有するものはない(すなわち、すべての対立色PCA色空間は一方または他方の主軸に従い、したがって、互いに直交する)。このことは、PCA色空間が主軸に沿って不自然に制約され、PCA色空間の効率が制限されていることを示している。これに対して、ICA基本関数は、最も適切な対立色方向を自由に選択し、したがって、より効率的である。図19Bの例では、ICA基本関数は、青−黄色方向および赤−青色方向に沿って強い対立性を示している。色対立性の角度は、図19Bの70番目の基本関数(1941に示されている)に示されているように約130゜から140゜(135゜)であり、訓練に用いられる自然の風景に通常見られる色を示している。他の実施形態では、対立色基本関数は、色空間において0゜から360゜までの任意の角度を有してよく、かつ1組の対立色基本関数が、色空間におけるいくつかの異なる非直交角度を有してよく、たとえば、ある対立色角度が45゜で、同じ組の別の対立色角度が110゜であってよい。
【0119】
簡単に言えば、PCA基本関数は、課された直交性要件に従ってすべての基本関数の色空間を不自然に制限し、したがって、PCA基本関数は、2つの主軸の一方に揃えられた色空間を示す特徴を有する。これに対して、ICA基本関数は直交性を有するように制約されず、したがって、ICA基本関数は、色空間におけるより効率的な方向を自由に選択する。したがって、ICA基本関数は、画像全体をより効率的に表現するだけでなく、色の表現においてもより効率的である。
【0120】
色対立性および符号化について
色対立性は、色情報をセンサまたは他の物理的リセプタによって符号化する方法の記述である。各々が異なる限られたスペクトル範囲にわたって感応する1組のセンサの場合、センサ出力間の差は対立色符号を構成する。スペクトル範囲同士がある程度重なり合うことがある。対立色符号では、表されるものは絶対放射輝度値ではなく、波長の変動である。色対立性のこの定義は、センサ(またはエミッタ)にかかわらず適用され、したがって、人間の錐体(LMS色空間)、CCDカメラ(RGB色空間)、および他の自然または人工の視覚システムに対して妥当である。色対立性は不可視放射にも適用され、より一般的な用語「スペクトル対立性」の方が適切である場合もあり、たとえば、色対立性は、可視範囲外でサンプリングする人工のマルチスペクトル・システムに使用することができる。色空間は通常、3つの値のみによって定義されるが、他の色空間は、4つの以上の値を用いて「色」を定義することができ、たとえば、ある種の鳥および無脊椎動物は、UV受容体を含む4つ以上の受容体種を利用する。人間の視覚系は、この3種の網膜錐体光受容体によって色対立的に伝達される色信号を符号化する。この色対立性は、受容体信号のスペクトル相関解除によって効率的な符号化を構成することが分かっている。
【0121】
色対立性の定義は、座標が、LMSやRGBのような指定された特性を有するセンサに対応するかぎり、主として色空間には依存しない。知覚的色空間CIE LuvやLabのような他の色空間はすでにある種の対立性を組み込んでおり、すなわち、これらの色空間はスペクトルの異なる部分同士を比較し、人間の色知覚に対応する記述を得る。したがって、このような色空間に関する効率的な符号がどのようなものであるかに関する全体的な定義はない。
【0122】
本明細書で説明する方法によって得られる対立性の厳密な値は、それぞれのシステムごとに異なるが、常に、1組のセンサによって取り込まれる範囲で訓練データにおけるスペクトル関係を組み込んでいる。したがって、符号化を向上させるには、データの符号化に用いられる基本関数をデータの色空間で訓練すべきであり、たとえば、RGBを符号化する場合、基本関数をRGBデータによって訓練すべきである。しかし、様々な空間が存在するため、ある色空間を符号化の前に別の色空間に変換することが必要になることがある。
【0123】
当業者には、これらの教示を考慮して、本発明の趣旨や範囲から逸脱せずに他の実施形態を実現できることが理解されよう。たとえば、画像を符号化し、圧縮し、復号する前述の技術の様々な組合せを必要に応じて利用することができる。本発明は、上記の明細書および添付の図面に関連して検討されたときにすべてのこのような実施形態および修正形態を含む特許請求の範囲によってのみ制限されるべきである。
【図面の簡単な説明】
【0124】
【図1】画像、画像取込み装置、デジタル処理装置、コンピュータ、およびいくつかのリモート装置に接続されたインターネットなどの通信網を示す図である。
【図2】各パッチ内の画素値がデータ・ベクトルに変換されるプロセスを示す、複数のパッチに分割された画像の図である。
【図3】単一のクラスの基本関数を用いて画像を符号化する方法のフローチャートである。
【図4】所定の係数がデータ・ベクトル内の位置によって選択される第1の圧縮方法のフローチャートである。
【図5】いくつかの係数をそれらの正規化値の関数として示し、多数の係数値が零の周りに密集する様子を示す、ソース・ベクトルの係数の分布のグラフである。
【図6】最大の値を有する所定の数の係数がデータ・ベクトル内の位置によって選択される第2の圧縮方法のフローチャートである。
【図7】係数が、所定のしきい値よりも大きい場合に選択される第3の圧縮方法のフローチャートである。
【図8】単一のクラスの基本関数を用いてすでに符号化されている画像データを復号する方法のフローチャートである。
【図9】各パッチが複数のクラスのうちの1つを用いて符号化されるように、複数のクラスの基本関数を用いて画像を符号化する方法のフローチャートである。
【図10】複数のクラスの基本関数を用いて符号化された画像を復号する方法のフローチャートである。
【図11】パッチがより小さいパッチ・サイズに漸進的に細分されるウェーブレット符号化手法を示す図である。
【図12】ウェーブレット手法を用いて画像を符号化する演算を示すフローチャートである。
【図13】ウェーブレット手法を用いて符号化された画像の復号を示すフローチャートである。
【図14】基本関数を適応化するプロセスを示す図である。
【図15】二次元空間内のデータおよびPCA基本関数のグラフである。
【図16】二次元空間内のICA基本関数も示す、図15と同じデータのグラフである。
【図17】多数のICA基本関数の相対的な疎度を示す、有意度の順に並べられた最も有意度の高い25個のICA基本関数の正規化係数のグラフである。
【図18】多数のICA基本関数の相対的な疎度を示す、有意度の順に並べられた最も有意度の高い25個のICA基本関数の正規化係数のグラフである。
【図19】図19Aは、LMS色空間を用いて基本関数を訓練した一例におけるICA基本関数の画像パッチ(「ICA基本パッチ」)の図であり、図19Bは、図19Aに示されている各ICA基本関数に対応する色空間の図である。
【図20】図20Aは、LMS色空間を用いてPCA基本関数を訓練した一例におけるPCA基本関数の画像パッチ(「PCA基本パッチ」)の図であり、図20Bは、図20Aに示されている各PCA基本関数に対応する色空間の図である。
【0001】
1.発明の分野
本発明は、概して、コンピュータによって実施される、画像を符号化するシステムおよび方法、画像を圧縮するシステムおよび方法、ならびに画像を復号するシステムおよび方法に関する。
【背景技術】
【0002】
1.関連技術の説明
画像圧縮技術は、画像をデジタル形式でコンピュータに記憶し、インターネットなどのネットワーク上で画像を送信するのに広く用いられている。画像圧縮技術は、画像が多量の冗長データを含むという原則を利用している。画像圧縮プロセスは、冗長性を低減させることによって、非常に有用である場合がある比較的小さいファイル・サイズを実現する。たとえば、ファイル・サイズが小さい場合、画像の記憶要件が低くなる。さらに、ファイルが小さいほどネットワーク上の転送が高速になる。
【0003】
画像圧縮およびファイル・フォーマット記憶に関する標準の作成は以前から行われている。JPEG(Joint Photographic Experts Groupの略語)と呼ばれているある特定の標準は、静止画像をインターネット上で転送するのに広く用いられている。このJPEG標準は、元の画像を厳密には再生しないが、許容される画質を与える、損失を含むデータ圧縮の種類を指定している。たとえば、画質の低下はほとんど知覚されず、知覚される場合でも、ファイル・サイズが小さくなることによって、たいていのユーザに対しては画質の低下が補償される。JPEG標準の一部として、画像の細部においてどの程度の圧縮とどの程度の損失が望ましいかを決定する品質係数を、画像の圧縮時に選択することができる。ある種の画像はほとんど損失なしに圧縮することができるが、多くの例では、圧縮量が多いほど、対応する画質低下も大きくなる。
【0004】
JPEG標準に従って画像を圧縮する場合、画像はまず、各パッチが64個の画素を含む8×8パッチに分割される。このパッチ内の画素値(通常、各画素に赤値、緑値、および青値が関連付けされる)に基づいて、JPEG標準によって事前に定められている基本関数を用いてある値が算出される。この場合、このような算出された値は画像を表す。画像を再構築する場合、算出された値が所定の基本関数を用いて復号され、画像が再生される。
【0005】
JPEG2000は、ウェーブレット手法を用いて画像をより正確に符号化する、JPEGによって提案された新しい標準である。ウェーブレット手法では、大きいパッチ(場合によっては最高レベルの画像全体)が符号化され、次いで、大きいパッチをより小さいパッチに細分することを含め、パッチが処理される。次いで、より小さい細分されたパッチが符号化され、これらのパッチが再細分され符号化される。このプロセス、すなわち、漸進的に小さくなるパッチを細分し符号化することは、所定のパッチ・サイズ(または他の基準)が満たされるまで繰り返される。ウェーブレット手法によって符号化された画像を復号する場合、符号化された各パッチは順次復号され表示される。
【0006】
高度の圧縮を行う場合でも、JPEGファイルは大きなものになる。高画質を維持しつつ、圧縮後のファイルのサイズを著しく小さくし、それによって占有される記憶空間を少なくし、送信時間を短縮することができるシステムを提供すると有利である。
【発明の開示】
【0007】
本明細書で説明する方法および装置は、画像データを効率的に表す基本関数を用いて画像を符号化し、それによって、符号化画像のファイル・サイズを小さくし、かつ/または符号化画像の精度を高める。少なくとも1つの基本関数は、少なくとも1つの他の基本関数に直交しない。この基本関数は、均一色基礎関数、輝度エッジを表す輝度−符号化基礎関数、および色対立性を示す色基本関数を含む。本明細書で開示する一実施態様では、主基本関数(すなわち、寄与度の最も高い基本関数)の多くは主として、画像のグレースケール・フィーチャを符号化し、色基本関数は主として、色空間内の軸を定義する対立色法で色を符号化する。非直交基本関数は、少なくとも2つの方法、すなわち1)ベクトル空間、2)基本関数の色空間で使用することができ、特に、対立色基本関数は通常、色対立性軸同士が互いに直交しない少なくとも2つの基本関数を含む。
【0008】
本明細書で説明する符号化方法では、画像は、各々が少なくとも1つのデータ・ベクトルを形成する1つまたは複数のパッチに分割される。データ・ベクトルは、1組の非直交基本関数を適用して、そのパッチを表す値を有する複数の算出された係数を含むソース・ベクトルを得ることによって符号化される。ソース・ベクトルは、複数の算出された係数の部分集合を選択することによって圧縮され、それによって符号化ベクトルが得られる。
【0009】
本明細書で説明する方法はより効率的であるので、画像データは実質的に、従来の方法よりも少ない数の基本関数で表される。言い換えれば、本明細書で説明する方法は、画像を疎に表現し、このことは、多数の算出された係数が零の周りに密集し、したがって、画像に有意に寄与しなくなることを意味する。近零係数およびそれに関連する基本関数を圧縮時に排除し、画像をそれほど劣化させずに、符号化データ・ファイルのサイズを小さくすることができる。結果として得られる係数の部分集合は、使用される圧縮技術のような関連する圧縮指定と共に、符号化データを構成する。
【0010】
ICA基本関数は、選択された画像セット内の画像を記述するのに最も適切に用いることのできる基本関数を見つけるように多数のデータ・セット(本明細書では、データ・セットは1組の画像パッチである)が繰り返し処理される訓練プロセスで得られる。後述の一実施態様では、ICA基本関数をLMS色空間で訓練した。ICA基本関数によって定義された画像(「基本パッチ」)を観測することによって、多くの主基本関数が主として、色ではなく輝度を符号化することが分かった。さらに、色を表した基本関数は、非直交軸に沿って色対立性を示す。これらの結果は、ICA基本関数がデータをより効率的に符号化できることを示している。
【0011】
いくつかの実施態様では、非直交基本関数は、2つ以上のクラスを含み、パッチを符号化するステップは、各クラスごとにソース・ベクトルを算出し、パッチを1つのクラスに分類し、このクラスに関連するソース・ベクトルを選択することを含む。
【0012】
係数の部分集合を選択する多数の異なる技術が可能である。たとえば、所定の係数技術は、ソース・ベクトル内に所定の位置を有する複数の係数を選択し、それによって、所定の基本関数に関連する係数を選択することを含む。最高値選択方法は、最大係数値を選択することによって一群の係数を選択することを含む。しきい値方法は、値が所定のしきい値を超える係数を選択することを含む。
【0013】
画像をパッチに分割し、非直交基本関数を用いて各パッチを符号化し、各パッチを複数のより小さいパッチに細分することを含め、各パッチを処理し、次いで、細分されたパッチが所定のサイズに達するか、または符号化が完了したことを示す他の基準に達する(これには3回以上の繰返しが必要になることがある)までプロセスを繰り返すことによって画像が符号化されるウェーブレット手法について説明する。各レベルで差画像パッチが算出され、この差パッチが、次のレベルで細分されるパッチを構成するピラミッド技術について説明する。差パッチは、画像パッチから符号化画像データを引くことによって得られる。
【0014】
いくつかの実施態様では、各基本関数には、準ガウス分布、正規ガウス分布、超ガウス分布のような基本的な統計分布を指定する確率密度関数(pdf)変数が関連付けされている。このような実施態様では、画像データは、基本関数に関連するpdf変数を用いて符号化される。
【0015】
複数の符号化ベクトルは、必要に応じて記憶され送信される圧縮された画像情報を含む。画像を表示する際、複数の符号化ベクトルは、複数の再構築されたデータ・ベクトルが得られるように復号される。これらのデータ・ベクトルを用いて、表示に適したフォーマットで画像データが再構築される。
【0016】
この特許のファイルは、少なくとも1枚の多色図面を含んでいる。多色図面を有するこの特許のコピーは、要求および必要な手数料の支払いに応じてアメリカ特許庁(Patent and Trademark Office)から与えられる。
【0017】
この発明をより完全に理解するために、次に、添付の図面に示されている各実施形態の詳細な説明を参照する。
【発明を実施するための最良の形態】
【0018】
詳細な説明
本発明を以下の説明において各図を参照して説明する。各図では、同じ番号は、同じまたは同様の要素を表す。
【0019】
本明細書では、語「符号化」は、一般的な意味で用いられ、生画像データを処理する計算および/または圧縮プロセスを含む。
【0020】
いくつかの例では、基本行列の列によって定められる「基本関数」または「基本ベクトル」が参照される。たとえば、クラスkの基本関数は、そのクラスkの行列の列ベクトルによって定義される。特に明示しないかぎり、本明細書で開示する基本関数は、ICAプロセスを用いて学習(または「訓練」)された基本関数、したがって、実質的に直交しない基本関数として定義されるICA基本関数とみなすべきである。
【0021】
「色空間」は、色を定義するのに用いられる特定の標準を指し、たとえば、赤−緑−青(RGB)およびシアン−マゼンタ−黄色(CMY)は、2つの一般的に用いられている色空間である。本明細書で参照される他の色空間はLMS色空間であり、用途によってはRGB色空間と概ね同等であるが、LMS空間は、L値、M値、およびS値が、人間の目の3種類の円錐状光受容体である長波長選択錐体(L)、中波長選択錐体(M)、および短波長選択円錐体(S)の反応に概ね一致するように形成される。したがって、LMS色空間は、その色に対する人間の目の反応を近似する線形組合せとして色を表す。
【0022】
以下の記号は、本明細書では、ある数量および変数を表すのに用いられる。従来の使用法によって、行列は、ボールド体の大文字で表され、ベクトルはボールド体の小文字で表される。
記号の表
Ak クラスkの基本関数の行列(クラスkの要素はaijである)
A-1 フィルタ行列、Aの逆行列
AT Tの転置行列
bk クラスkのバイアス・ベクトル
βk クラスkの確率密度関数(pdf)ベクトル
θk クラスkのパラメータ
Θ すべてのクラスのパラメータ
k クラス指数
K クラスの数
m データ指数
M 基本関数の行列内の行の数
n (データ・ベクトル内の要素の)画素データ指数
N データ・ベクトルx内の要素の数、特にパッチ内の画素データ・ポイントの数[たとえば、RGC(3-ポイント)データの場合はN=3P]
P パッチ内の画素の数(たとえば、7×7RGB画素パッチの場合はP=49)
p(s) 確率密度関数
r 画素データ・タイプの指数
R 各画素ごとのデータの種類の数(たとえば、RGBデータの場合はR=3)
st 符号化プロセス中にパッチtに関して算出されたソース・ベクトル。ソース・ベクトルの要素を「係数」と呼ぶ。
t パッチのデータ指数
T データ・セット内のベクトルの総数(たとえば、画像内のパッチの数)
xt パッチt内のすべての画素値のベクトル(画素ベクトル)
X 画像内のすべてのパッチについてのすべての画素ベクトルの行列:X=[x1,...xt,...xT]T
zt,r パッチtの種類rの画素値zのベクトル
【0023】
ICAの背景
1998年1月6日に発行された「情報の最大化を用いて出力冗長性を最小化することによって未知の信号を回復するブラインド信号処理システム(Blind Signal Processing System Employing Information Maximization to Recover Unknown Signals Through Unsupervised Minimization of Output Redundancy)」という名称の、Anthony J.Bellの米国特許第5706402号は、単一層フィードフォワード・ニューラル・ネットワークにおけるエントロピー最大化に基づく非監視学習アルゴリズムを開示している。Bellによって開示されたICAアルゴリズムでは、非監視学習手順を用いて、上り勾配によってジョイント出力エントロピーを最大化して出力内の相互情報を最小化することによってブラインド信号処理問題を解決する。この学習されるプロセスでは、複数のスケーリング重みおよびバイアス・ベクトルが、各ソースを分離するのに用いられるスケーリング項およびバイアス項を生成するように繰り返し調整される。
【0024】
一般に、ICAは、多変数データにおいて、座標系の軸の方向がデータの二次以上の統計によって決定される線形非直交座標系を見つける技術である。ICAは、ソース信号が複数のセンサからの信号の未知の線形混合物としてのみ観測され、ソースが互いに依存しないと仮定されることを除いてソース信号の特性パラメータが未知である、Bellによって開示されたような「ブラインド信号分離」で使用される。言い換えれば、ソース信号と、これらの信号が混合される方法はどちらも未知である。このような用途におけるICAの目標は、センサによって観測された互いに独立したソース信号の未知の線形混合物のみが与えられた場合に、パラメータを学習し、互いに独立したソースを回復する(すなわち、互いに独立したソースを分離する)ことである。基本要素分析(PCA)のような相関ベースの変換と異なり、ICA技術は、行列を用いてデータを線形に変換し、各ソース信号の統計依存性を弱め、各ソース信号をできるだけ互いに独立させることを試みる。したがって、各ICA基本関数ベクトルは、アルゴリズムの制約によって制限されるのではなくデータによって示される方向に自由に従う。言い換えれば、ICA基本関数同士の間の関係は、PCA技術によって課される直交性要件などの要件によって非現実的に制限されることがない。その結果、ICA基本関数は通常、より効率的であり、データをより正確に表す。ICAは、データにおける構造を見つけるのに有用なツールであり、混合された音声信号の分離およびEEG記録からのアーチファクトの除去を含む、現実世界データの処理に首尾よく使用されている。
【0025】
ICAプロセスの説明
ICA基本関数は、本明細書で開示する符号化技術で利用される。広義には、ICA技術は、画像を含む様々なデータ・セットを特徴付ける基本関数を作成または「訓練」するのに用いることができる。米国特許第09/418099号は、ICA基本関数をどのように訓練するかを含め、ICAアルゴリズムを開示し、かつICA基本関数の使用法を開示している。ICA基本関数に関する他の文献には、T.-w. Lee、M.S. Lewicki、およびT.J. Sejnowski著「非ガウス・ソースによる非監視分類とブラインド信号分離における自動コンテキスト切替え(Unsupervised Classification with Non-Gaussian Sources and Automatic Context Switching in Blind Signal Separation)」、IEEE Transactions on Pattern Analysis and Machine Intelligence、第22(10)巻、1078〜1089頁、2000年10月が含まれる。1組のICA基本関数を用いて1組のデータを特徴付けることができるが、精度および/または効率をさらに高めるために、データ・セットが2つ以上のクラスのうちの1つに分類される米国特許第09/418099号で開示されたように混合モデルを使用することができる。データを最も適切に表すクラスを選択することによって、マルチクラスICA基本関数を用いたデータの特徴付けをずっと正確にかつ/またはずっと効率的にすることができる。より高い精度および/またはより高い効率は、各ICA基本関数が、準ガウス分布、正規ガウス分布、または超ガウス分布として基本統計分布を指定する関連する変数(本明細書では「pdf変数」と呼ぶ)を有する一般化されたガウス・モデルを実施するICA基本関数を用いることによって得ることもできる。このpdf変数は、連続的に変動することができ、それによって、モデル化できる広範囲の分布を与え、それによって、精度および/または効率を高める。たとえば、一般化されたガウス・モデルを実施するICA基本関数は、2000年10月13日に出願され、「一般化されたガウス・モデルを用いたマルチソース・データの非監視適応化および分類(Unsupervised Adaptation and Classification of Multi-Source Data Using a Generalized Gaussian Model)」と題するPCT第US00/28453号で開示されている。一般化されたガウス・モデルは、ICA基本関数の単一クラス実現形態とマルチクラス実現形態のどちらでも使用することができる。
【0026】
システムの説明
図1は、画像100と、画像を取り込む装置と、画像を記憶する装置と、画像を処理する装置と、画像を送信する装置と、画像を受信する装置との図である。特に、画像100は、紙の上の画像の場合のスキャナ105や、デジタル・カメラのような任意の適切な装置によって走査されるかまたは取り込まれる。デジタル・カメラ107は、可視デジタル画像を取り込む標準カメラ、地球または空間の画像を広範囲の波長にわたってデジタル形式で取り込む衛星カメラ、医療共鳴画像(MRI)などの医療画像を取り込む医療機器とを含んでよい。あるいは、ビデオ・カメラや、コンピュータ生成画像を生成するコンピュータ110のような他の画像データ源を用いて画像データを収集することもできる。画像データは、データを必要に応じて処理する適切な処理装置120に供給される。たとえば、画像が適切なデジタル・フォーマットでない場合、デジタル装置120はこの画像をより適切なフォーマットに変換することができる。適切なデジタル・フォーマットの例にはRGBが含まれる。デジタル装置120によって受信された画像データがすでに適切なフォーマットである場合、このデータはフォーマットの変換なしに単に通過することができる。
【0027】
デジタル装置120からの出力画像データはコンピュータ130に供給され、コンピュータ130は次いで、本明細書の他の個所で詳しく説明するようにデータを符号化し処理する。符号化された画像は、コンピュータ上の表示モニタ135上に表示し、かつ/または通信網140上で送信することができる。通信網140は、インターネット、会社のイントラネット、ローカル・エリア・ネットワーク、装置同士の通信のための任意の適切な通信網のような、1つまたは複数の適切なネットワークを含んでよい。通信網は、第2のコンピュータ150、プリンタ160、他の適切な装置170のような様々な装置との通信を可能にする。適切な装置の一例は、通信網との接続に関する標準を規定するBluetooth標準に準拠した装置である。
【0028】
一般に、本明細書で説明するアルゴリズムは、符号化に関するアルゴリズムであれ、解凍に関するアルゴリズムであれ、送信に関するアルゴリズムであれ、その他のアルゴリズムであれ、(図1に示されている)汎用コンピュータや他の装置のような適切な計算装置で実施される。しかし、これらのアルゴリズムは、デジタル・カメラ、スキャナ、表示装置のような様々な装置で実施することができる。ASIC(Application Specific Integrated Circuit)を用いてアルゴリズムを実施することができる。デジタル・データは、任意のコンピュータ・メモリ、またはハード・ディスクやCD-ROMのような任意の固定記憶装置に記憶することができる。言い換えれば、収集され記憶された画像データは、コンピュータのメモリ内、または所望の処理装置でアクセスできる任意の他の適切なメモリ位置に存在することができる。
【0029】
画像定義およびデータ
図2は、ある従来のフォーマットでは640×480であり、より解像度の高いフォーマットは、たとえば832×624や1024×768を含む行および列として構成された複数の画素によって形成されたデジタル化画像200の図である。画像200は、各パッチが、事前に定義された画素構成を有する、いくつかの異なるパッチ210を有するグリッド構成として分割されている。たとえば、各パッチ210は、8×8画素アレイを含んでよいが、7×7のような他のパッチ・サイズを使用することができ、場合により、他の実施形態では非方形パッチを用いてパッチを作成することができる。
【0030】
デジタル化画像200内の各画素には、デジタル・データが関連付けされている。従来、デジタル・データは、各画素から得たRGB(赤、緑、青)データの形式を有している。この3つの値は、特定の画素における特定の色の強度を指定している。他の実施形態では、他の色空間および他の形態のデジタル・データ記憶装置を利用することができ、たとえば、白黒情報や、赤外線情報や、輝度情報や、様々なデジタル情報を各画素に関連付けすることができる。
【0031】
圧縮システムにおける基本関数では通常、基本関数が訓練された色空間と同等の所定の色空間でデータを定義する必要があり、たとえば、基本関数がRGB色空間で訓練された場合、入力されるデータを、RGBとするか、またはそのネイティブ・フォーマットからRGBに変換する必要がある。しかし、この変換が情報の損失を伴うとき、ネイティブ・データを変換せずにそのまま用いることが好ましい。基本関数が訓練される色空間は、実施形態ごとに異なるものであってよく、基本関数が訓練された色空間で表されたデータに対して直接符号化が行うか、またはある色空間を他の色空間に正確にマップする変換を用いることが好ましい。たとえば、色空間が入力空間の線形変換である場合、結果として得られる基本関数も線形変換される。しかし、2つの色空間の間に非線形性が存在する場合、変換はずっと困難になる(LMSから量子化されたRGBへの変換など)。通常、非線形変換では、符号化に悪影響を与える情報の損失を被る。簡単に言えば、符号化はデータの元の色空間で行われることが好ましい。
【0032】
パッチのデータ・ベクトルを画像データから構築する方法を示すために、パッチ210aの拡大図がこのパッチ内の各画素に関連する別々のデジタル値と一緒に示されている。図示の実施形態では、8×8グリッドが示されているが、上述のように、他の構成を利用することができる。拡大されたパッチ210aは、1つの画素値を表す一連の平面を示している。特に平面211aは第1の種類の画素値を示している(たとえば、パッチ内の各画素の赤値)。これらの第1の値は、要素がz11、z12、z13、、、z1pであるタイプ・ベクトルz1として収集される。説明の都合上、各パッチは、すべての画素Pを含んでおり、個々の画素は1からPまで番号付けされ、データ指数pを有している。さらに、各画素は、Rによって参照され、データ指数rを有する1つまたは複数の値(またはデータ・ポイント)を有している。たとえば、RGB画像データのR=3と7×7パッチは、各々が47個の要素を有する3種類のベクトル(z1, z2, z3)を生成する。
【0033】
第2の平面212a(r=2)は、パッチ内のすべての画素の第2の値を示しており、これらの値は第2のベクトルz2として収集される。第3の平面213aは、各画素に関連付けすることのできる追加の画素値を表し、これらは1つまたは複数のベクトルzrとして収集される。最後に、214aにおいて、最後の画素値(r=R)がベクトルzRとして収集される。収集された画素ベクトルz1、z2、、、zRは連結され、このパッチtのデータ・ベクトルxtが形成される。この場合も、説明の都合上、画像内のいくつかのパッチをtで表し、したがって、各パッチをt:t=1からTの数で表す。第1のパッチは第1のデータ・ベクトルx1で表され、最後のデータ・ベクトルはxT=[x1,x2 ... Xn,..., xN]tで表される。1からTまでの各パッチについてのこれらのデータ・ベクトルは、以下に詳しく論じるように、別々に符号化され、圧縮され、次いで送信または記憶され、次いで復号される。
【0034】
符号化
次に、単一のクラスの基本関数を用いた画像の符号化を示すフローチャートである図3を参照する。符号化方法の説明を容易にするために、まず単一のクラスについて論じる。いくつかの用途では、単一のクラスの基本関数が適切であるが、他の用途では、本明細書の他の個所で図9や図10などを参照して論じるように、複数のクラスが有利である。マルチクラス実施形態は有利なことに、符号化効率を向上させ、かつデータ・ファイルがより複雑にかつ大きくなることを犠牲にして精度を向上させる。本明細書で開示し論じる基本関数はICA基本関数であると仮定する必要がある。
【0035】
図3の300で、単一のクラスを用いて画像を符号化するプロセスは、T個のデータ・ベクトルを受信することによって開始する。各データ・ベクトルは画像内の各パッチを表す。前述のように、この実施形態では、データ・ベクトルは、画像を、各々が等しいパッチ・サイズを有する互いに隣接するブロックのグリッドに分割することによって形成される。他のグリッドでは(たとえば、画素化方式?)、各ブロックが1つ(または複数の)画素によって分離される一連の重なり合ったパッチを形成することができる。重なりグリッド符号化は比較的正確であるが、追加的な計算時間が必要になる。
【0036】
315で、単一のクラスの基本関数が供給される。これらの基本関数は、本明細書の他の個所で詳しく論じるように所望の種類の画像についてすでに算出(または訓練)されている。一般に、単一のクラスの場合、クラスは、予想される各クラスごとに受け入れられる画質を与えるように訓練することができる。マルチクラス分類の場合、各クラスを別々に訓練してより高い精度を得ることができる。たとえば、自然の風景、人間の写真、都会の風景、動物などは訓練できる画像の種類である。
【0037】
この単一クラスの符号化方法では、ループを用いて各パッチがソース・ベクトルを形成するように符号化される。320で、データ指数がt=1に初期設定され、プロセスが開始される。330で、現在のパッチについて、以下の公式を用いてソース・ベクトルが算出される。
【数1】
【0038】
ボックス340および342で、ループは、すべてのパッチが符号化されたかどうかを判定する試験を行い、すべてのパッチが符号化されているわけではない場合、指数が増分され、(330での)計算が繰り返される。このループは、すべてのパッチが符号化されるまで継続し、次いで演算は、ソース・ベクトルが利用可能であり、言い換えれば、1からTまでの各パッチに、算出されたソース・ベクトルが関連付けされていることを示すボックス350に進む。次に、360で、ソース・ベクトルが圧縮され、最終的な圧縮されたソース・ベクトルが形成される。圧縮については、たとえば以下に説明する。370で、圧縮されたベクトルが記憶され、380に示されているように、符号化された圧縮済みのソース・ベクトルを送信することができる。
【0039】
簡単に言えば、画像データを符号化する場合、各パッチから得た画素データに、基本行列の逆行列が掛けられ、元のデータ・ベクトルと同じ数の要素を有するソース・ベクトルが各パッチごとに得られる。たとえば、データ・ベクトルがRGBデータの7×7パッチに対応する(画素当たり3データ・ポイント)場合、データ・ベクトル内に147個の要素が存在し、対応するソース・ベクトルも147個の要素を有する。後述のように、画像データを圧縮するために、すべてのこれらの147個の要素よりも少ない数の要素が記憶され、かつ/または送信される。基本行列内の列の数も147個の要素を有することに留意されたい。
【0040】
圧縮:概要
算出されたソース・ベクトルを圧縮するために、いくつかの異なる方法を実施することができ、たとえば、「係数の量子化」法を利用し、ソース係数の分布の特性を用いて、各ソースの最適な量子化器を開発することができる。いくつかについて本明細書で詳しく説明する多数の圧縮方法は、ソース・ベクトル内のすべてのソース値よりも少ない数のソース値を選択するという原則に基づいて作用する。たとえば、ソース・ベクトルがそれぞれN個の係数を含み、ソース・ベクトルが導かれた画素データ・ベクトルもN個の値を含んでいる場合、圧縮時に顕著な利点を得るにはいくつかのソース値をソース・ベクトルから省略しておかなければならない。言い換えれば、空間を節約し送信時間を短縮するには、いくつかのソース値を省略すると有用である。あるソース値または「係数」を省略することの理論的な基礎は、本明細書で説明する基本関数の性質と、これらの基本関数によってもたらされる疎度とに関する。圧縮および疎度については以下に詳しく論じるが、一般に、「疎度(sparseness)」は、比較的少数の係数が有意の値を有し、一方、多くの係数は零の非常に近くに密集することを意味する。それによって、多くの係数は、パッチの全体的な表現にはほとんど寄与しない。一般に、省略すべき係数を選択する多数の方法が存在し、本明細書ではそのうちのいくつかについて説明する。1つの方法は所定の係数を省略することであり、すなわち、この場合、常に、ベクトル内の位置によって事前に決定される係数が選択される。このような実施形態では、送信される係数を算出するだけでよいので、計算の回数を減らすことができる。所定の係数は、トレーナーまたは他の専門家によって選択され、ソース・ベクトル内の係数の位置は符号化アルゴリズムおよび復号アルゴリズムによって既知である。第2の圧縮方法は、最大の値を有するある数の係数を選択する方法であり、たとえば、各ソース・ベクトル内の最大の20個の係数のみが送信される。他の圧縮技術は、あるしきい値を超えた値を有するすべての係数を選択する技術である。
【0041】
圧縮:実現形態
本明細書では、記憶/送信すべき係数を選択する少なくとも2つの方法について説明する。第1の方法は、所定の係数を選択することによる方法であり、他の方法は、データのある特性に基づいて係数を選択することによる方法である。まず、第1の方法について論じる。
【0042】
次に、所定の係数方法を用いた圧縮のフローチャートである図4を参照する。この方法は400から始まる。410で、画像の算出されたソース・ベクトルが受信される。415で、選択すべき係数の所定の位置が入力される。これらの所定の位置は、アルゴリズムのトレーナー、または有意の値を保持する可能性が最も高いのはどの係数かを事前に判定する他の専門家によって決定される。多数の画像のソース・ベクトルを観測することによって、最も有意度の高い値を持つのはどの係数位置かを判定することが可能である。したがって、多くの環境では、これらの特定の位置における係数を保存することができ、他の非有意係数を安全に無視することができる。
【0043】
420で、データ指数が初期設定されループが開始される。ボックス430、440、450、および460を含むこのループは、(位置によって)各ソース・ベクトル内の所定の係数を選択する。特に、430で、パッチtに関する所定の係数が単にソース・ベクトル内のその位置に基づいて選択される。たとえば、係数1、3、10、21、25、60、70、73を選択することができる。次に、440で、これらの係数はパッチtの圧縮されたソース・ベクトルを表すように保存される。450で、ループが完了したかどうかを判定するように指数が試験され、ループが完了していない場合、データ指数が増分され、演算が繰り返され、次のソース・ベクトルの所定の係数が選択される。ループが完了すると、470で、全画像について、圧縮されたソース・ベクトルが得られ、すなわち、T個の符号化ソース・ベクトルが得られる。
【0044】
次に、図5を参照する。第2および第3の圧縮方法は、画像の各ソース・ベクトル内の観測される係数値に基づく方法である。この方法についてよりうまく説明するために、図5は、ソース・ベクトルの係数が零の周りに密集する様子をグラフで示している。特に、図5は、x軸上のソース・ベクトルの係数の正規化された値を示すグラフである。図5は、y軸上に、特定の値を有するソース係数の数を示している。通常、係数の値は、x軸の中心点が零になるように1に正規化され、各係数は-1.00から+1.00まで延びる。図を見ると分かるように、係数は零の周りに密集しており、これらの係数のうちの多くはある値よりも小さい。各係数が零の周りに密集する程度は、符号化アルゴリズムの「疎度」を決定する。本アルゴリズムによって示される疎度は、基本関数が互いに直交するように制約される場合よりも密にデータの特性に従うように訓練されるICAなどの非直交基本関数の特徴を有していると考えられる。多数の係数が零の周りに密集しているため、情報をより正確に圧縮することができる。言い換えれば、後述の圧縮方法は、ソース・ベクトルに最も有意度の高い値を付加し、それによって、データをそれほど失わずに非有意係数を省略するのを可能にする特定の係数を選択する。
【0045】
この値選択方法では、これらの係数のうちで最も有意度の高いのはどれかを判定するために、各ソース・ベクトルを調べて、最高の値を有する係数要素と、各ソース・ベクトル内のこれらの係数要素の相対的な位置とを判定する。これを実現する1つの方法は、アルゴリズムによって、ソース・ベクトル内の所定数(たとえば、30)の最高の係数を選択する方法である。アルゴリズムは次に、この30個の係数を選択し、次いで、これらの係数の値をその位置と一緒に記憶する。画像内の各パッチは、同様に圧縮され、ソース・ベクトルの上位30個の係数が選択され、これらの係数の値およびその位置が再びソース・ベクトル内に記憶される。
【0046】
600から始まる「最高値選択」法を示す図6を参照する。610で、算出されたソース・ベクトルが圧縮方法に入力される。620で、各ソース・ベクトルごとの記憶される係数の数を決定する圧縮量が入力される。いくつかの実施形態では、ユーザによって圧縮量を事前に決定するかまたは選択することができ、他の実施形態では、トレーナーのような他のソースによって圧縮量を決定することができる。圧縮量を決定する際、記憶すべき係数の数が選択される。いくつかの実施形態では、係数の数を、トレーナーによって適切であると判定されたデータ圧縮量に対応する範囲によって定義することができ、たとえば、5から20の間の量は強力な圧縮が行われ、低画質になり、25から40の間の量では圧縮/画質共に中程度になり、47から70の間の量では高画質が得られ、圧縮は弱くなる。
【0047】
630で、データ指数が初期設定され、640で、上記の620で入力された係数の数に対応する最大の値を有する、このソース・ベクトルtの係数が選択される。たとえば、30個の係数が記憶される場合、最大の30個の値が選択される。次に650で、最大の係数およびそのそれぞれの位置が、パッチtの圧縮されたソース・ベクトルが形成するように保存される。次に、画像内の各ソース・ベクトルについて条件文660および増分ステップ670によって示されるループが繰り返される。すべてのパッチが圧縮された後、680に図示されているように、全画像について、圧縮されたソース・ベクトルを得ることができる。
【0048】
次に、各ソース・ベクトルの係数が、画像への係数の寄与(値)に応じて選択される、しきい値法を用いた圧縮を示すフローチャートである図7を参照する。700で、演算が開始し、710で、画像の算出されたソース・ベクトルが入力される。720で、圧縮量が選択され、言い換えれば、しきい値が選択される。実際のしきい値は任意の数の方法で決定することができ、たとえば、しきい値は、トレーナーまたはその他の専門家によって決定された一定の量であってよい。しきい値圧縮量は、ユーザによって決定または選択することができる。圧縮レベルと画質レベルの兼合いをとるようにいくつかの異なる範囲の値を選択することができる。ユーザは、受け入れられるしきい値を選択して圧縮量を決定することができ、たとえば、しきい値が0.15の場合(正規化された値)、精度は高くなるが圧縮は弱くなり、一方、しきい値が0.5の場合(正規化された値)、圧縮が強力になり、精度は低くなる。
【0049】
ボックス710から得た算出されたソース・ベクトルと、ボックス720から得た圧縮量とを含む入力は、データ指数が初期設定される730から始まり、次いで740で、各係数が調べられ、しきい値量よりも大きい場合に選択されるループに供給される。この演算はたとえば、各係数を受信し、その係数がしきい値量よりも大きい場合にその位置に保存し、これを、連続する各係数ごとに繰り返して、すべての係数をソース・ベクトルに含めるループで行うことができる。750で、圧縮されたソース・ベクトルtが完成し、それぞれの位置における選択された係数が、圧縮されたソース・ベクトルtが形成するように保存される。このアルゴリズムと図6に示されているアルゴリズムの1つの違いは、係数の数が一定でないことであり、したがって、係数の数は、各パッチ内の画像データに応じてパッチごとに異なる。760で、ループは、すべてのソース・ベクトルが処理されたかどうかを判定する試験を行い、すべてのソース・ベクトルが処理されたわけではない場合、770で、データ指数が増分され、演算は、次のソース・ベクトルt+1内の各係数が調べられるボックス740に戻る。しかし、760ですべてのソース・ベクトルが処理されている場合(すなわち、t=T)、780で、全画像について、圧縮されたソース・ベクトルが得られる。
【0050】
次に、単一クラス符号化/復号構成に関する画像データの復号のフローチャートである図8を参照する。800で、プロセスが開始し、810で、T個の符号化ベクトルを含む符号化された圧縮済みデータが受信される。この画像データは、ハード・ディスクなどの磁気媒体記憶装置、CDなどの光学装置、または任意の他のコンピュータ記憶媒体または送信媒体によってインターネットなどのネットワークを介するなど、様々な方法で受信することができる。
【0051】
812で、画像を符号化するのに用いられた圧縮技術が識別され、たとえば、方法は、所定係数法(図4)、最高値選択法(図6)、およびしきい値法(図7)のうちの1つであると識別される。この識別機構は、任意の適切な手段によって構成され、たとえば画像データ自体が、使用された圧縮方法を一意に指定する圧縮識別子フィールドを含んでよい。選択された圧縮方法に応じて、係数の数および/またはソース・ベクトル内の各係数の位置のような追加の情報を受信することができる。
【0052】
815で、ループはまず、受信された各符号化ベクトルを復号する。具体的には、815で、データ指数が初期設定される。820で、最初に受信された符号化ベクトルが再構築され、再構築されたソース・ベクトルst *が与えられ、したがって、このソース・ベクトルst *をアルゴリズムに用いることができる。具体的には、元のソース・ベクトルと同じ数の要素を有する再構築されたソース・ベクトルst *が得られるように非受信係数が零に設定される。これは所定の数量であり、たとえばソース・ベクトルが49個の要素を有し、20個だけが送信された場合、ソース・ベクトルst *を再構築するように再構築されたソース・ベクトルの残りの29個の位置に零が充填される。
【0053】
830で、再構築されたソース・ベクトルst *と基本行列Aとの行列掛算によって、再構築されたソース・ベクトルを用いてデータ・ベクトルが算出される。具体的には、次式が成立する。
【数2】
【0054】
再構築されたデータ・ベクトルが算出された後、画像用の受信された各符号化ベクトルごとに演算が繰り返される。具体的には、図8に示されているように、840で、すべての符号化ベクトルが処理されたかどうかを判定する試験が実行され、すべての符号化ベクトルが処理されているわけではない場合、842でデータ指数が増分され、次の符号化ベクトルが再構築され、その再構築されたソース・ベクトルについて対応するデータ・ベクトルが算出される。すべての符号化ベクトルを利用して対応するデータ・ベクトルが作成された後、演算は840で終了し、ボックス850に戻り、T個の復号されたデータ・ベクトルが得られる。ボックス850で色空間または他の要件を満たすのにフォーマット変換が必要であるかまたは望ましい場合、復号データ・ベクトルのフォーマットが変換され、たとえば、データ・ベクトルがLMSフォーマットを有するが、RGBフォーマットが望ましい場合、適切な変換が実行され、データ・ベクトルが所望のフォーマットに変換される。850で、全画像データが得られる。次に860で、復号データ・ベクトルを用いて必要に応じてディスプレイ上に画像が作成されるか、またはさらに処理が行われる。
【0055】
マルチクラス実施形態
次に、複数のクラスの基本関数を利用してソース・ベクトルによりうまく適合されるマルチクラス実施形態を示す図9および図10を参照する。特に、マルチクラス実施形態は、最も適切なクラスの基本関数を用いてパッチを符号化するのを可能にする。どのクラスの基本関数が選択されるかは、適切な規則、たとえば米国特許出願第09/418099号で指定されたような最尤関数によって決定される。最も適切な基本関数を利用してソース・ベクトルを符号化することによって、より優れた符号化をより効率的に行うことができる。
【0056】
図9は、複数のクラスの基本関数を用いた画像の符号化を示すフローチャートである。マルチクラス実施形態は有利なことに、単一クラス符号化の場合よりも大きなデータ・ファイルにおいて複雑さが増すことを犠牲にして精度を高めることができる。図9では、マルチクラス実施形態における画像の符号化は、各々が画像内のパッチを表すt個のデータ・ベクトルを受信することによって開始する。他の個所で論じるように、各パッチは、画像を、各々が所定のパッチ・サイズを有する互いに隣接するブロックのグリッドに分割することによって与えられる。他のグリッドでは、他の個所で説明するように、一連の重なり合ったパッチを定義するか、または波長手法を利用することができる。
【0057】
915で、各クラスごとの基本関数が供給される。これらの基本関数はすでに、各クラスごとに算出または訓練されている。特に、各クラスは予想できる画像の様々な種類について別々に訓練される。たとえば、自然の風景、人物の写真、都会の風景、動物などについて様々なクラスを訓練することができる。
【0058】
各パッチが、符号化ソース・ベクトルが得られるように符号化されることを示すのにループが用いられている。920で、データ指数がt=1に初期設定され、プロセスが開始する。930で、それぞれの基本関数を用いてクラスのソース・ベクトルが算出され、各クラスに1つずつ複数のソース・ベクトルが得られる。どのクラスが最も可能性が高いかが判定され、最も可能性の高いクラスに対応するソース・ベクトルが選択される。
【0059】
ボックス940および942で、ループが試験を実行し、画像内のすべてのパッチが符号化されたかどうかが判定される。ボックス940、942、および930を通るループは、すべてのパッチが符号化されるまで繰り返され、次いで演算は、すべてのソース・ベクトル(Tベクトル)が得られたことを示すボックス950に戻る。言い換えれば、今や1からTまでの各パッチには、算出されたソース・ベクトルがクラス指定と共に関連付けされている。次に960で、ソース・ベクトルが、本明細書の他の個所で説明するように任意の適切な方法で圧縮される。970で、圧縮された符号化ソース・ベクトルが記憶され、次いで、980に示されているように、圧縮されたソース・ベクトルを送信することができる。
【0060】
図10は、マルチクラス実施形態の場合の画像データ復号を示すフローチャートである。1000でプロセスが開始し、1010で、T個の符号化された圧縮済みベクトルを含む符号化された圧縮済み画像データが受信される。この画像データは、様々な送信元から、ハード・ディスクなどの磁気媒体記憶装置、CDなどの光学装置、または任意の他のコンピュータ記憶媒体または送信媒体によってインターネットなどのネットワークを介するなど、様々な送信媒体を介して受信することができる。1012で、圧縮技術が識別される(たとえば、所定係数法や、最高値選択法や、しきい値法)。1015で、受信された各符号化ベクトルを復号し、特に復号プロセスを開始するようにループが初期設定される。特に、1015では、データ指数が初期設定される。1020で、最初に受信された符号化ベクトルが再構築され、アルゴリズムに使用できる再構築されたソース・ベクトルが得られる。ソース・ベクトルを再構築する場合、圧縮によってどの係数が省略されたかが、識別された圧縮技術を用いて判定される。省略された係数は零に設定され、それによって、元のソース・ベクトルと同じ数の要素を有する再構築されたソース・ベクトルが得られる。これは所定の数量であり、たとえばソース・ベクトルが49個の要素を有し、圧縮のために20個だけが送信された場合、ソース・ベクトルを再構築するように残りの29個の位置に零が充填される。
【0061】
1030で、再構築されたソース・ベクトルと、クラス指定によって指定された基本行列との行列掛算によって、再構築されたソース・ベクトルを用いてデータ・ベクトルが算出される。
【0062】
再構築されたデータ・ベクトルが算出された後、ループは、画像内の受信された各符号化ベクトルごとに演算を繰り返す。特に、図10に示されているように、1040で、すべての符号化ベクトルが処理されたかどうかを判定する試験が実行され、すべての符号化ベクトルが処理されているわけではない場合、1042でデータ指数が増分され、次いで、次の符号化ベクトルが再構築され、その再構築されたソース・ベクトルについて対応するデータ・ベクトルが算出される。すべての符号化ベクトルを利用して対応するデータ・ベクトルが作成された後、演算は1040でループから出て、T個の復号されたデータ・ベクトルが得られたことを示す1050に進む。言い換えれば、今や全画像データが得られている。最後に1060で、この復号データ・ベクトルを用いてディスプレイ上に画像を直接作成し、かつ/またはこの復号データ・ベクトルを必要であるかもしくは所望のさらなる処理に利用することができる。たとえば、LMSデータを印刷できるようにCMYデータに変換したり、LMSをモニタ上で見られるようにRGBに変換するなど、復号データの色空間を適切なフォーマットに変換することが必要になる場合がある。
【0063】
ウェーブレット手法を用いた符号化
図11、図12、および図13は、データを符号化し復号するのにウェーブレット手法が用いられるシステムを示している。画像データ圧縮に対するウェーブレット手法は既知であり、たとえば、提案されたJPEG2000標準はウェーブレット手法を利用している。本明細書では、ウェーブレット手法を、パラグラフ9〜10を参照して説明したICA基本関数および/またはマルチクラス基本関数、および/または一般化ガウス基本関数と一緒に利用して、効率的で正確な符号化・復号方法が実現される。
【0064】
図11は、ウェーブレット手法の演算を示し、特に、各パッチが選択される進行状況を示す図である。一般に、ウェーブレット手法は、各々が漸進的に小さくなる画像パッチを有する、複数のレベルのそれぞれで画像データを処理し符号化する。それぞれの後続のレベルの画像は、ピラミッド技術をウェーブレット手法と共に用いて、以下の例で説明するように、そのレベルのパッチとそのパッチから算出されたソース・ベクトルとの差を求めることによって定義される。有利なことに、ピラミッド手法は、すでに符号化された画像特性に基づいて画像内のエネルギーを低減させ、それによって、それぞれの後続のレベルでの符号化をより効率的なものにする。しかし、他の実施形態では、ピラミッド技術を修正することができ、場合によっては省略することができる。たとえば、差画像を作成すること以外の処理方法を用いるか、または差処理を全体的に省略することができる。
【0065】
図11で1110に示されているように、第1の画像パッチ(レベル1)は画像の大部分を含んでいる。通常、第1の画像パッチは画像全体を含んでいるが、他の実施形態では、第1の画像パッチは画像全体の一部である。第1レベル画像パッチ内のすべての画素によって単一のデータ・ベクトルが定義される。1120に示されているレベル2パッチを作成するために、パッチを、各々が別個のデータ・ベクトルxを構成する4つの等しい正方形に分割することを含む、第1レベルパッチ1110の処理が行われる。ウェーブレット符号化のためのピラミッド技術では、第1レベルパッチ処理は、第1レベル・パッチとそのパッチから算出されたソース・ベクトルとの差画像を求めることを含む。第2レベル・パッチは、差画像を細分することによって得られる。
【0066】
前述のように、各レベルは、データ・ベクトルを符号化するのに用いられるそのレベル自体の1組の基本関数を有している。通常、低周波数フィーチャを符号化する基本関数によって大きいパッチ(たとえば、レベル1)が符号化され、パッチ・サイズが漸進的に小さくなるにつれて、漸進的に高くなる周波数を有するフィーチャを符号化する基本関数によって、細分されたより小さいパッチが符号化される。
【0067】
1130に示されているレベル3パッチは、各レベル2パッチを、各々がデータ・ベクトルを構成する4つの等しい正方形に細分することを含む処理によって得られる。ピラミッド技術では、各第2レベル・パッチは、第2レベル・パッチとそのパッチから算出されたソース・ベクトルとの差画像を求めることによって処理される。この差画像は次に細分される。各ベクトルは、それぞれのパッチ内のデータを形成し、たとえばすでに図2に関して開示されているように任意の適切な方法で配置される。
【0068】
レベル3の後に、いくつかの追加のレベルがあってよい。各レベルで、前のレベルのパッチが処理され細分され、レベルMで演算が完了するまで、パッチの数に等しい数のベクトルが得られる。レベルMでは、1140に示されているように、元の第1レベル・パッチ1110がN個のパッチに分割されており、N個の対応するデータ・ベクトルが存在する。
【0069】
次に、ピラミッド技術を利用したウェーブレット手法を用いて画像を符号化する演算を示すフローチャートである図12を参照する。演算は1200から開始し、次いで1205で、画像データとレベルMまでの各レベルの基本関数とを含む入力が受信される。1210で、レベル1のパッチを選択することによって演算が開始する。多くの実施形態では、画像全体を第1のパッチで構成してよいが、他の実施形態では、画像の大きな一部をレベル1に利用することができる。たとえば、画像は、レベル1パッチを形成するように2つまたは3つ以上のパッチに分割することができる。
【0070】
1215で、通常、低周波数フィーチャを符号化してソース・ベクトルを与える、レベル1に特有の基本関数を用いて、レベル1パッチが符号化される。1218で、レベル1パッチおよびソース・ベクトルを用いて差画像が作成され、一実施形態では、ソース・ベクトルの最高値係数が選択され、次いで、この係数を対応する基本関数と一緒に使用して、レベル1パッチから引かれる画像パッチが作成される。1220で、レベル1の差パッチが2つ以上のパッチに細分され、レベル2パッチが得られる。1225で、通常、レベル1基本関数よりも高い周波数を有するフィーチャを符号化する、レベル2に特有の基本関数を用いて、レベル2パッチが符号化される。
【0071】
前のレベルのパッチが細分され、次に新しいパッチが符号化されるこのプロセスは、ボックス1229、1230、1235、1240、および1242を含むループに示されているように繰り返される。特に1229で、レベル指数が、レベル3に対応するm=3に初期設定される。1230で、ソース・ベクトルから算出された画像パッチ(最高係数など)から各パッチを引くことによって、レベルm-1パッチのそれぞれについて差画像が算出される。次いで、レベルmの新しいパッチを形成するように差パッチが2つ以上のパッチに分割される。1235で、おのおののパッチはLmの基本関数を用いて符号化される。通常、各レベルの基本関数は、前のレベルの基本関数よりも高い周波数を有するフィーチャを符号化する。判定ボックス1240によって、ループが繰り返され、1242で、レベル指数は、すべてのレベルが完了するまで引き続き各ループで増分される。
【0072】
符号化プロセスが完了した後、1250に示されているように、符号化画像情報が得られ、言い換えれば、各パッチは、ソース・ベクトルと、ソース・ベクトルのレベルおよび位置を指定する付随情報とを有する。
【0073】
次に、1260に示されているように、本明細書で図4、図5、図6、および図7に開示されているような任意の適切な技術を用いてソース・ベクトルが圧縮される。最後に、1270で、符号化された圧縮済みソース・ベクトルおよびレベル指定および任意の他の適切な情報が記憶され、かつ/またはリモート位置に送信されるかもしくは任意の所望の方法で使用される。
【0074】
次に、ウェーブレット手法を用いて画像を復号する演算を示すフローチャートである図13を参照する。演算は1300から開始し、次に1305で、ソース・ベクトルと、レベル指定と、各レベル内のソース・ベクトルの位置とを含む符号化された情報が受信される。1310で、第1レベル(レベル1)パッチが選択される。1310で、レベル1の特定の基本関数を用いてレベル1パッチが復号される。
【0075】
1318で、復号されたレベル1パッチを表示することができる。復号されたレベル1パッチは最終画像の近似推定量を構成するが、ユーザは、各レベルの処理時の様子を見たい場合がある。他の実施形態では、すべてのレベルが復号されるまで画像の表示を遅延させることが好ましい。
【0076】
1320で、第2レベル・パッチが選択され、1325で、第2レベルの指定された基本関数を用いて第2レベル・パッチが復号される。1327で、レベル1のすでに表示されているパッチの上に第2レベルの復号されたパッチが表示される。
【0077】
復号化のための演算はそれからすべてのレベルが復号されるまでボックス1330、1335、1337、1340、および1342を含むループに示されているように繰り返される。
1330で、次のレベルのパッチが選択され、1335で、そのレベルの基本関数を用いてこれらのパッチが復号される。1337で、復号されたパッチが表示され、1340で、演算が完了したかどうかを判定するためにレベル番号が試験される。演算が完了していない場合、1342に示されているようにデータ指数mが増分され、再びループに従って演算が実行される。すべてのレベルが復号されている場合、1350に示されているように画像が表示され、演算が完了する。
【0078】
図14は、画像データを表すように基本関数を訓練または「適応化」する演算を示す図である。1400から示されているように、まず、クラスkの基本関数を訓練するための適切なデータ・セットが選択される。このデータ・セットは、多数の画像パッチ(たとえば、10万個から100万個以上)を含んでよい。このデータ・セットは、符号化すべき画像を適切に表すように基本関数を適応化することに熟練したユーザによって選択されるべきである。たとえば、様々な画像を符号化する場合、データ・セットには、一般に様々な画像を表す画像パッチの分類を含めるべきである。しかし、データ・セット内の画像として、通常予想される画像の種類を厳密に表す画像が選択される場合、より効率的な符号化が可能である。たとえば、人物のポートレートが予想される画像である場合、データ・セットは好ましくは、ポートレートの離散集合から得られた多数のパッチを含む。
【0079】
図14のダイヤグラムは、参照の都合上指数が指数kによって指定されている単一クラスの訓練を示している。たとえば図9および図10を参照して他の個所で論じる多重クラス実施形態では、訓練プロセスを繰り返して1からKまでの複数のクラスのそれぞれについての1組の基本関数を得ることができる。マルチクラス実施形態は有利なことに、特定の種類の画像を対象とする基本関数の訓練を可能にする。たとえば、クラス1は人物に対して訓練することができ、クラス2は植物に対して訓練することができ、クラス3は風景に対して訓練することができ、クラス4は建物に対して訓練することができる。パッチを符号化し復号する際、適切なクラスを選択することにより、選択されたクラス基本関数によってそのパッチをずっと正確にかつ効率的に表現することができる。
【0080】
図11、図12、および図13を参照して開示されたような、ウェーブレット手法を実施する実施形態では、それぞれの異なるレベルは異なる1組の基本関数を必要とする。たとえば、第1のレベル(最大のパッチ)の基本関数は、低周波数空間成分(すなわち、画像において一定であるかまたは徐々に変化するフィーチャ)を選択するように訓練(または処理)することができる。第2レベルの基本関数は、いくらか高い周波数を有する空間成分(すなわち、画像においてより高速に変化するフィーチャ)を選択するように訓練することができる。同様に、後続の各レベル(徐々に小さくなるパッチ)の基本関数は、徐々に高くなる周波数を有する空間成分を選択するように訓練することができる。
【0081】
1410に示されているように、基本関数は、「ブラインド信号分離における複数のクラスおよびソースの非監視適応化および分類(Unsupervised Adaptation and Classification of Multiple Classes and Sources in Blind Signal Separation)」という名称の、1999年10月14日に出願された米国特許出願第09/418099号で開示されているような技術を使用し、ICA技術を用いてデータに適応化され、適応化された基本関数が得られる。一般に、このプロセスでは、パラメータ(たとえば、基本行列やpdfパラメータ)が初期設定され、次いで主適応化ループ内の各データ・ベクトルごとに各パラメータが適応化される。次いで、後続の各反復ごとに学習速度を観測しつつ、主適応化ループが複数回にわたって反復される。任意の適切な学習規則、たとえば、上り勾配や最大事前値を使用することができる。数回の反復の後に学習速度が低下すると、最終的に基本行列は「収束(converge)」したと判定される。学習速度が収束したときには、基本関数は訓練済みである。
【0082】
訓練された基本関数は、1420に、1)画像表現および2)数学的表現の2つの形態で示されている。画像表現は、各々がデータ・セットの画像に一般に見られるフィーチャを表す一連のパターンを示している。この場合、符号化された画像内の各係数は、その係数に関連するパターンに与えられる重みを表す。
【0083】
数学的表現は、各基本関数の列ベクトルを含んでいる。各列ベクトルは全体として、クラスkの混合行列Aを定義する。さらに、各基本関数にpdf(確率密度関数)パラメータを関連付けることができる。pdfパラメータは、基本関数に関連するpdfを示す。一実施形態では、pdfパラメータは、pdfが準ガウスpdfであるか、ガウスpdfであるか、それとも超ガウスpdfであるかを示す値を含む。たとえば、値「1」がガウスpdfを示し、「1」よりも小さい値が準ガウスpdfを示し、「1」よりも大きい値が超ガウスpdfを示してよい。全体として、pdfパラメータはクラスkのpdfベクトルβを定義する。
【0084】
ICA基本関数および直交性
図14に示され、図14を参照して論じたように、各基本関数は、少なくとも2つの方向を有する多次元空間内のベクトルの形で表すことができ、すなわち、各ベクトルは少なくとも2つの要素を有し、多くの場合それよりも多くの要素を有する。各基本関数は、1組の基本関数内で一意であり、各ベクトルを図形で示すことができる。以下に示すように、各基本関数は、JPEGで用いられているのと同様のPCA(Principal Component Analysis)を用いて得られるような他の基本関数よりも効率的である。本明細書では、PCA基本関数は、広く使用されているJPEG基本関数とほぼ同等とみなされる。
【0085】
図15および図16は、x1-x2空間におけるグラフであり、水平軸が第1のデータ要素x1を示し、垂直軸が第2のデータ要素x2を示している。データ・ポイントは図15と図16の両方で同一であり、図示の都合上、データは、1501に概略的に示されている第1群と1502に概略的に示されている第2群とを含む、2つの比較的明確に定義された群を含んでいる。実際のデータは、通常、各々が異なる特性を有するいくつかの異なる群に従う構造を有するが、実際のデータ内の群の数は1から多数まで様々であり、実際のデータは各群内ではそれほど明確に定義されないことに留意されたい。言い換えれば、図15および図16に示されている各群内のデータは図示の都合上簡略化されている。
【0086】
図15は、第1のPCA基本関数1511と、第1のPCA基本関数に概ね直交する(約90゜)第2のPCA基本関数1512とを含む2つのPCA基本関数を示している。図16は、第1のICA基本関数1601と、第1のICA基本関数に直交しない第2のICA基本関数1602とを含む2つのICA基本関数を示している。図示を容易にするため、図15および図16は、2つの次元(すなわち、2つの基本関数)のみを示している。たいていの実現形態では、これよりもずっと多くの次元が必要であることを認識されたい。たとえば、8×8画像パッチの一実施形態では、図示するのが困難な192個の次元が必要である。
【0087】
図15と図16を比較すると、PCA基本関数とICA基本関数との間に有意な違いがあることが分かり、かつICA基本関数が基本的なデータをより効率的かつ正確に表すことが分かる。図15で、第1のPCA基本関数1511は第1のデータ群1501に概ね従っているが、第1のPCA基本関数が第2のPCA基本関数に概ね直交している(90゜)ため、第2のPCA基本関数1512は第2のデータ群1502から著しく逸脱している。したがって、第1のPCA基本関数と第2のPCA基本関数の線形組合せとしてデータ・ポイントを表現するのは非効率的である。しかし、図16では、どちらのICA基本関数も各データ群に概ね従い、特に、第1のICA基本関数1601は第1のデータ群1501に概ね従い、第2のICA基本関数1602は第2のデータ群1502に概ね従い、したがって、ICA基本関数は明らかにPCA基本関数よりも効率的である。
【0088】
PCA基本関数は、本来直交性を有し、多次元表現では、すべてのPCA基本関数同士が概ね直交しなければならず、すなわち、PCA基本関数は互いに直交する。言い換えれば、PCAでは、その第1の基本関数は他のすべての基本関数に直交する必要があり、その第2の基本関数は他のすべての基本関数に直交する必要があり、他の基本関数についても同様である。図15の例では、第1のデータ群と第2のデータ群が直交しておらず、多くとも1つの基本関数がデータ群に概ね従う。実際のデータを用いた場合、少数のPCA基本関数が、画像データに通常見られる実際のグループ分けに一致する可能性は極めて低い。その結果、PCA基本関数によって符号化された画像では通常、多数の基本関数がデータを表す必要があり、たとえば、単一の群が画像をいくらか正確に表すのに3つ以上の直交関数が必要になる場合がある。
【0089】
これに対して、図16に示されているICA基本関数は実質的に互いに直交(90゜)しない。ICA基本関数の1つの有意な特性は、少なくとも1つ(多くの場合、多数)のICA基本関数が別のICA基本関数に直交しないことである。これは、ICA基本関数が、通常互いに直交しないデータ群に自由に概ね従うからである。したがって、ICA基本関数はデータをより正確にかつ効率的に表し、一方、PCA基本関数のような他の種類の基本関数は、基本関数を非現実的に互いに直交するよう制約するので、より非効率的でより不正確である。この非現実的な要件のために、PCA基本関数は、ほとんどの種類のデータに対して符号化を効率的に行うことができない。なぜなら、ほぼすべての種類のデータの構造は、互いに直交する軸に沿ってグループ分けするのが容易ではないからである。したがって、図16に示されているICA基本関数を用いた場合、2つのデータ群の各々は実質的に、単一のそれぞれの基本関数によって表すことができ、一般に、ICA基本関数によって符号化された画像は効率的に符号化される。
【0090】
ICA符号化データの疎度
ICA符号化データは、各々がそのそれぞれの基本関数に与えられる「重み」を表す一連の係数によって表される。ICA基本関数に観測される1つの特性は、データ・セットを比較的少数の係数によって特徴付けることができることが多く、すなわち、ICA基本関数によって符号化されたデータ・セットの係数は「疎」であることである。このことは、データ・セットのICA特徴付けに有意に寄与するのが少数の基本関数に過ぎないことを意味する。
【0091】
ICA基本関数では、従来の基本関数に対する相対的な疎度を考慮すると、圧縮技術がずっと効果的である。特に、ICA符号化データは、より小さいファイル・サイズに圧縮することができ、かつ/またはより正確に圧縮することができる。たとえば、自然の風景では、15%の係数を保存しただけで受け入れられる画像を得ることができると考えられている。低品質の画像の場合、5%の係数があるだけでよい。高品質の画像では、30%の係数が必要になることがあり、超高品質の画像では60%などのより多い量が必要になることがある。これに対してJPEG基本関数では、高品質の画像を得るのに基本関数の係数の80%〜90%を送信する必要がある。
【0092】
上述のように、ICA符号化係数は疎であり、すなわち、データは、係数が主として零の周りに位置するように符号化され、言い換えれば、情報値(非零係数)の割合は少ない。情報符号化の観点からすると、このことは、少ない割合の基本関数を用いて色画像パッチの符号化および復号ができることを意味する。これに対して、ガウス密度は疎に分散されず、大部分の基本関数は、色画像を表すのに必要である。
【0093】
疎度の1つの表示は符号化効率である。ICAとPCAとの符号化効率は、シャノンの理論を用いてビット数の下限を得ることによって比較することができる。
【数3】
上式で、Nは入力スペクトルxtの次元であり、σxは、符号化時の誤りによって導入されるノイズの符号化精度(標準偏差)であり、P(xt|A)は、ベースが与えられた場合のデータの尤度である。
【表1】
【0094】
次に表A内の画像パッチ・データを参照すると、ICA方法によって、PCAよりも効率的なデータ・セットが得られることが分かる。ICA方法では、8ビットの未圧縮データを表すのに1.73ビットだけあればよく、一方、PCAアルゴリズムでは、同じ量の未圧縮データを表すのに4.4ビットが必要である。PCAの4.46ビット/画素からICAの1.73ビット/画素への向上は、符号化効率の約160%の向上を表し、したがって、ICA基本関数がPCA基本関数よりも優れた空間−色特性を符号化することが分かる。効率の向上を示す他の方法は、係数の「疎度」の1つの尺度である算出されたとがり(尖度:kurtosis)を用いる方法である。一般に、とがり値が大きいほど圧縮に適している。表では、ICA方法は19.7のとがりを示し、一方、PCA方法のとがりは6.6に過ぎず、ICAによって得られるアルゴリズムの方がずっと圧縮に適していることが分かる。これに対して、ガウス関数の正規化されたとがりは零である。さらに、相互情報は、ICAについては0.0093、PCAについては0.0123として算出されており、ICAの方がデータ内の冗長性が低く、ICAが圧縮に適していることが分かる。一般に、相互情報値が小さいほど、ICA方法における情報は依存度が低く、したがってより効率的であることを意味する。ICAアルゴリズムは通常、1%以下(0.01)の相互情報を実現すると考えられる。ただし、データの種類によっては5%以下(0.05)の相互情報を示すものがある。これらの結果は、ICA基本関数が疎なデータを疎に符号化することを示している。
【0095】
図17は、ICA基本関数を用いて多数の自然の風景(自然の風景から得た40000個の画像パッチ)が符号化された実験の結果を示しており、それに対して、図18は、ICAを用いて得られた係数の疎度を、PCAを用いて得られた係数の疎度と比較できるように、同じ自然の風景がPCA基本関数を用いて符号化された実験の結果を示している。図17および図18は、寄与度の順に並べられたICAの25の最も有意度の高い基本関数の正規化された係数の分布を示すグラフである。これらの分布はソース値のヒストグラムである。図17および図18では、基本関数はL2-ノルム(後述)の降順に並べられており、各グラフは、その分布の疎度を示す「β値」も含んでいる。図示のβ値は、最大事前法を用いて算出されている。より大きなβは、より低い係数密度に対応し、すなわち、密度が非常に低い場合、大部分の係数は零を中心として密集し、少数の係数のみが非零になる。一般に、β値が大きくかつグラフの幅が狭いほど、基本関数の寄与度が零の周りに密集する度合いは大きくなり、したがって、疎度値が大きいほど、相対的にその基本関数の寄与度は小さくなる。
【0096】
前述のように、各グラフは、以下の公知の公式によって各基本関数の相対寄与度A=(a1,a2,...aN)を順位付けするL2-ノルムの降順に並べられており、
【数4】
【0097】
基本関数をL2-ノルムの降順に並べることによって、最も大きな寄与度を有する基本関数が1番上の行の1番左に現れ、2番目に大きな寄与度を有する基本関数が、1番上の行の2番目の位置に現れ、これに続く基本関数が1番上の行に続けて並べられ、次いで同じことが各行に繰り返される。したがって、基本関数をL2-ノルムの降順に並べることは、各基本関数の相対寄与度を単一の図に示す好都合な方法である。
【0098】
図17は、多数のICA基本関数についてデータが実質的に零の周りに密集することを示しており、たとえば、1701、1702、および1703に示されている3番目、4番目、および5番目のグラフはそれぞれ、3.51、2.68、および2.96の疎度値を有している。すべての25個のICA基本関数の疎度値の平均は約6.21である。これに対して、図18は、PCA基本関数によって符号化された係数のグラフであり、より疎度の低い分布を示しており、同じ画像を符号化するのにより多くのPCA基本関数が必要であることが分かる。1番目の行における最大疎度係数は、それぞれ1801、1802、および1803に示されている2番目、4番目、および5番目のグラフについての2.02、2.94、および2.18である。すべてのPCA基本関数の平均疎度値は約3.08であり、ICA係数の場合の平均疎度の約2分の1である。この差は、この実験ではICA基本関数の効率がPCA基本関数の約2倍であり、PCAが必要とする係数の約2分の1で同じ画像を表すことができることを示している。概して、図17および図18は、ICA基本関数が、PCA基本関数よりも高い疎度を有し、かつより効率的にデータを符号化できることを示している。他の実現形態は異なる平均疎度値を示す可能性があり、かつPCAの疎度値とICAの疎度値の数値差が実施形態によって異なることに留意されたい。
【0099】
ICA基本関数の例の説明とPCA基本関数との比較
図14の1420に示されているように、各基本関数は、本明細書では基本パッチと呼ばれる画像パッチの形で表すことができる。基本パッチを構築する場合、基本関数の各要素は、基本パッチの1つのそれぞれの画素を定義し、すなわち、各基本パッチはそのそれぞれの基本関数の要素によって定義される。各基本関数は、それに対応する基本パッチ内の画素に関する色情報を含んでおり、したがって、各基本パッチの色特性(すなわち、基本関数)は、色空間内の1組の画素座標によって表すことができる。
【0100】
色空間とは、色が定義される方法を指し、たとえば、RGB色空間は、ある色における赤、緑、および青の相対寄与度に関してその色を定義する。本明細書で論じる1つの色空間であるLMS色空間は、人間の目の反応をL値、M値、およびS値の形でマップする。具体的には、LMS色空間は、L値、M値、およびS値がL錐体、M錐体、およびS錐体の反応に概ね一致するように定義され、したがって、LNS色空間は、人間の目の反応を近似する線形組合せの形で色を表す。この3つの波長範囲は、青、緑、および赤に概ね対応する。用途によっては、既知の線形変換を用いることによってLMS空間をRGB空間に概ね変換することができる。MacLed & Boynton 1979、およびDerrington等1984、MacLedおよびJohnson、Journal of the Optical Society of America A、第10巻、2491〜2512頁(1993年)によって開示されたように、錐体対立色空間は、(L-M)およびSに対応する2つの色軸と無色軸とを有するLMS空間の線形変形を表す。
【0101】
図19Aは、L2-ノルムの降順に並べられたICA基本パッチを示し、図19Bは、図19Aの基本パッチに対応する色空間図を示している。比較として、図20Aは、L2-ノルムの降順に並べられたPCA基本パッチを示し、図20Bは、図20Aの基本パッチに対応する色空間図を示している。図19Aおよび図19Bの特定の構成は、図19Aの各画像パッチの位置(行および列)が、図19Bに示されている色画像図の位置(行および列)に対応するようになっている。たとえば、図19Aと図19Bの間の点線1901によって示されているように、図19Bの1番目の行、1番目の列は、図19Aの1番目の行、1番目の列に示されている画素の対応する色空間表現を示している。図20Aおよび図20Bの構成は同様に、画像パッチと色空間表現との間の1対1の対応を示している。都合上、本明細書では、第1の行から始まり、この行全体にわたって1から10まで続き、次いで2番目の行全体にわたって11から20まで続き、以下同様に続く番号によって基本関数が参照され、したがって、基本関数は有意度の降順に参照されている。
【0102】
以下の定義は、本明細書では、上記の図を参照して基本関数およびそのそれぞれの色空間を説明するのに用いられている。
【0103】
グレースケール基本関数:色空間の無色軸の周りに点が密集することによって表される強度が主として変化する基本関数。たとえば、図19Aおよび図19Bでは、グレースケール基本関数は第3、第4、および第5の基本関数によって示されている。
【0104】
均一色基本関数:中心が原点からずれている小さい円を形成する点が密集することによって色空間が表される非グレースケール基本関数。均一色基本関数の例は、図19Aおよび図19Bの第1、第2、および第7の基本関数によって示されている。
【0105】
輝度エッジ基本関数:画像が、グレーの2つの実質的に異なる明度間の局所的な(すなわち、非反復)境界を形成するグレースケール基本関数。輝度エッジ基本関数の例は、図19Aおよび図19Bの第3、第4、第5、および第6の基本関数によって示されている。
【0106】
対立色基本関数:色空間が、概ね原点を通って延びる線の周りに密集する基本関数。対立色基本関数は、原点の両側に2つの対立する色を含む。対立色基本関数は、画像が、2つの対立する色間の局所的な(すなわち、非反復)境界を形成する色エッジ基本関数でもある。対立色基本関数の例は、図19Aおよび図19Bの第27および第28の基本関数によって示されている。
【0107】
図19Aおよび図20Aには、基本パッチが画像形式で示されており、図19Bおよび図20Bには、対応する色空間図が、L-M値が水平軸上に示され、S値が垂直軸上に示されるグラフとして示されている。この例では、ICA基本関数とPCA基本関数の両方を、LMS色空間と同様のサンプル・セットを用いて訓練した。各基本関数は、LMS色空間の部分集合である色空間を表している。他の実現態様では、他の色空間を使用することができ、たとえば、RGBは多数の用途に適した広く使用されている色空間である。
【0108】
図19AのICA画像パッチを図20AのPCA画像パッチと比較すると、ICA基本関数とPCA基本関数との有意な違いが明らかになる。ほぼすべてのICA基本関数は、それが表す自然の画像と同様に、唐突な境界や人工的に繰り返される構造なしに実質的に平滑なローカル構造として現れている。言い換えれば、ICA基本関数は、幅の広い周波数スペクトルを示す。これに対して、図20Aに示されているほぼすべてのPCA基本関数は、自然の風景には極めてまれな鋭い境界を有するグローバル(すなわち、反復)構造(すなわち、幅の狭い空間周波数スペクトル)を示している。特に、ほぼすべての147個のPCA基本パッチが反復構造を示しており、反復構造を示していないのは約5つだけである。たいていのPCA基本関数は、高度に構造化されたチェッカー盤パターンを示し、いくつかのPCA基本関数では、あるチェッカー盤パターンが第2のチェッカー盤パターンと重なり合っている。したがって、チェッカー盤パターンが自然に発生したものではないことに注目するだけで、これらのPCA基本関数が自然の風景の符号化にそれほど適していないことが分かる。
【0109】
通常、基本関数は、それが主としてグレースケール輝度エッジ、均一色、および対立色基本関数のうちの1つを符号化する場合により効率的になる。したがって、1組の基本関数は、この組が主として、グレースケール輝度エッジ、均一色、または対立色である基本関数で構成される場合に最も効率的になる。図示されるように、図19Aおよび図19Bに示されている多数のICA基本関数はグレースケール輝度エッジ基本関数、均一色、または対立色であり、一方、多くのPCA基本関数はこの群には存在せず、またはそれほど有意ではない。
【0110】
まず画像全体に対する寄与度が最も高い基本関数(すなわち、最初の数行の基本関数)に注目すると、いくつかの有意な違いが現れている。1つの違いは、ICA基本関数が有意な位置、すなわち位置1、2、および7で3つの均一色基本関数を示すことである。これに対して、PCA基本関数は、2つの均一色基本関数のみを有意度の低い位置1および11に示しており、いくつかの非均質基本関数に色関数が組み込まれていることが分かり、さらにPCA基本関数の方が非効率的であることが分かる。
【0111】
他の有意な違いは、最初の数行のICA基本関数の多くがグレースケール輝度エッジ基本関数であることである。輝度は自然の風景の主特性であり、自然の風景における情報の大部分は、輝度で構成され、輝度エッジとして現れることが多い。
【0112】
図19Bで最大の寄与度を有する50個の基本関数(すなわち、上から5行目まで)のうち、約40個(80%)は主としてグレースケールであり、ほぼすべてが輝度エッジ基本関数である。これに対して、図20BのPCA色空間は同じグレースケール寄与度を示さず、上位50個のPCA基本関数のうちの約21個(42%)が主としてグレースケールであり、これはICA基本関数の場合の約2分の1であり、さらに、図20Aに示されている147個のPCA基本関数のうちの1つまたは2つのみが輝度エッジを示す。これに対して、これらのPCA関数はほぼすべてが反復パターンを示す。
【0113】
全体として、図19Bに示されている147個のICA基本関数のうち、約48個(約33%)が主として輝度を符号化し、これらの基本関数のほぼすべてが輝度エッジ基本関数である。これに対して、図20Bに示されている全PCA基本関数のうちの約21個(約15%)が主として輝度を符号化し、これはICA基本関数の約2分の1であり、かつPCA基本関数には輝度エッジ基本関数はほとんどない。
【0114】
したがって、自然の風景によって訓練されたICA基本関数は、主特性として輝度を示し、かつ通常、輝度エッジを示しており、ICA基本関数が効率的な符号化を行うことができることが分かる。他の種類の風景の場合、ICA基本関数が主特性として輝度を示す程度は弱くなり、たとえば、ICA基本関数が様々な種類の風景について訓練される他の実施形態では、輝度エッジ基本関数の割合は、最初の50個の約60%、場合によっては50%、さらに全体の30%〜40%になることもある。
【0115】
人間の目と脳の連結部が輝度を色情報と異なるように処理し、したがって、輝度を主特性とする多数の基本関数が有用であることを示す証拠がある。たとえば、画像処理用途では、カラーバランスを変えずに画像の明るさを増すことは困難である。この問題は、画像をICA基本関数によって符号化し、次いでグレースケール基本関数の係数を選択的に大きくし、それによって、色の完全性を維持しつつ明るさを増すことによって対処することができる。
【0116】
図19Aおよび図19Bに示されているICA基本関数は、輝度エッジ基本関数および均一色基本関数だけでなく、主として色を符号化する多数の色基本関数も含んでおり(たとえば、90%)、一方、それよりも多くの色PCA基本関数は実質的に色とグレースケールの両方を符号化する。たとえば、図20Bでは、PCA色空間2011、2012、2013、2014、2015、および2016は、原点を中心とする広範囲の非線形構成を示しており、グレースケールと色の両方が符号化されることが分かる。ICA色空間にはこのような広範囲のパターンを示す色空間はなく、その代わり、多くの色ICA基本関数は、後述のように、主として対立色で非直交性を有する。一般に、輝度と色を別々に符号化する方が困難であり、したがって、ICA基本関数の方が効率的であると思われる。
【0117】
図19Bおよび図20Bの色空間図では、色対立性は、原点を通る軸を概ね形成する画素クラスタに示されている。たとえば、対立色基本関数は、図19Bで1941に示されている基本関数と、図20Bで2021に示されている基本関数とを含む。色基本関数のうち、ほぼすべての色ICA基本関数(図19Bに示されている)が色対立性を示し、一方、色PCA色空間の顕著な部分(たとえば、20%)が非対立色を示すようである。一般に、対立色基本関数は符号化情報よりも効率的であり、したがって、ICA基本関数は全体的により効率的である。
【0118】
非直交基本関数
図19Bの対立色ICA基本関数と図20Bの対立色PCA基本関数を比較すると、他の有意な違いが分かる。すなわち、多くの対立色ICA基本関数は、色空間によって示されるように互いに対して直交せず(具体的には、基本関数は、基本関数の対立色軸が他の基本関数の対立色軸に直交しない場合に非直交性を有する)、一方、対立色PCA基本関数には非直交性を有するものはない(すなわち、すべての対立色PCA色空間は一方または他方の主軸に従い、したがって、互いに直交する)。このことは、PCA色空間が主軸に沿って不自然に制約され、PCA色空間の効率が制限されていることを示している。これに対して、ICA基本関数は、最も適切な対立色方向を自由に選択し、したがって、より効率的である。図19Bの例では、ICA基本関数は、青−黄色方向および赤−青色方向に沿って強い対立性を示している。色対立性の角度は、図19Bの70番目の基本関数(1941に示されている)に示されているように約130゜から140゜(135゜)であり、訓練に用いられる自然の風景に通常見られる色を示している。他の実施形態では、対立色基本関数は、色空間において0゜から360゜までの任意の角度を有してよく、かつ1組の対立色基本関数が、色空間におけるいくつかの異なる非直交角度を有してよく、たとえば、ある対立色角度が45゜で、同じ組の別の対立色角度が110゜であってよい。
【0119】
簡単に言えば、PCA基本関数は、課された直交性要件に従ってすべての基本関数の色空間を不自然に制限し、したがって、PCA基本関数は、2つの主軸の一方に揃えられた色空間を示す特徴を有する。これに対して、ICA基本関数は直交性を有するように制約されず、したがって、ICA基本関数は、色空間におけるより効率的な方向を自由に選択する。したがって、ICA基本関数は、画像全体をより効率的に表現するだけでなく、色の表現においてもより効率的である。
【0120】
色対立性および符号化について
色対立性は、色情報をセンサまたは他の物理的リセプタによって符号化する方法の記述である。各々が異なる限られたスペクトル範囲にわたって感応する1組のセンサの場合、センサ出力間の差は対立色符号を構成する。スペクトル範囲同士がある程度重なり合うことがある。対立色符号では、表されるものは絶対放射輝度値ではなく、波長の変動である。色対立性のこの定義は、センサ(またはエミッタ)にかかわらず適用され、したがって、人間の錐体(LMS色空間)、CCDカメラ(RGB色空間)、および他の自然または人工の視覚システムに対して妥当である。色対立性は不可視放射にも適用され、より一般的な用語「スペクトル対立性」の方が適切である場合もあり、たとえば、色対立性は、可視範囲外でサンプリングする人工のマルチスペクトル・システムに使用することができる。色空間は通常、3つの値のみによって定義されるが、他の色空間は、4つの以上の値を用いて「色」を定義することができ、たとえば、ある種の鳥および無脊椎動物は、UV受容体を含む4つ以上の受容体種を利用する。人間の視覚系は、この3種の網膜錐体光受容体によって色対立的に伝達される色信号を符号化する。この色対立性は、受容体信号のスペクトル相関解除によって効率的な符号化を構成することが分かっている。
【0121】
色対立性の定義は、座標が、LMSやRGBのような指定された特性を有するセンサに対応するかぎり、主として色空間には依存しない。知覚的色空間CIE LuvやLabのような他の色空間はすでにある種の対立性を組み込んでおり、すなわち、これらの色空間はスペクトルの異なる部分同士を比較し、人間の色知覚に対応する記述を得る。したがって、このような色空間に関する効率的な符号がどのようなものであるかに関する全体的な定義はない。
【0122】
本明細書で説明する方法によって得られる対立性の厳密な値は、それぞれのシステムごとに異なるが、常に、1組のセンサによって取り込まれる範囲で訓練データにおけるスペクトル関係を組み込んでいる。したがって、符号化を向上させるには、データの符号化に用いられる基本関数をデータの色空間で訓練すべきであり、たとえば、RGBを符号化する場合、基本関数をRGBデータによって訓練すべきである。しかし、様々な空間が存在するため、ある色空間を符号化の前に別の色空間に変換することが必要になることがある。
【0123】
当業者には、これらの教示を考慮して、本発明の趣旨や範囲から逸脱せずに他の実施形態を実現できることが理解されよう。たとえば、画像を符号化し、圧縮し、復号する前述の技術の様々な組合せを必要に応じて利用することができる。本発明は、上記の明細書および添付の図面に関連して検討されたときにすべてのこのような実施形態および修正形態を含む特許請求の範囲によってのみ制限されるべきである。
【図面の簡単な説明】
【0124】
【図1】画像、画像取込み装置、デジタル処理装置、コンピュータ、およびいくつかのリモート装置に接続されたインターネットなどの通信網を示す図である。
【図2】各パッチ内の画素値がデータ・ベクトルに変換されるプロセスを示す、複数のパッチに分割された画像の図である。
【図3】単一のクラスの基本関数を用いて画像を符号化する方法のフローチャートである。
【図4】所定の係数がデータ・ベクトル内の位置によって選択される第1の圧縮方法のフローチャートである。
【図5】いくつかの係数をそれらの正規化値の関数として示し、多数の係数値が零の周りに密集する様子を示す、ソース・ベクトルの係数の分布のグラフである。
【図6】最大の値を有する所定の数の係数がデータ・ベクトル内の位置によって選択される第2の圧縮方法のフローチャートである。
【図7】係数が、所定のしきい値よりも大きい場合に選択される第3の圧縮方法のフローチャートである。
【図8】単一のクラスの基本関数を用いてすでに符号化されている画像データを復号する方法のフローチャートである。
【図9】各パッチが複数のクラスのうちの1つを用いて符号化されるように、複数のクラスの基本関数を用いて画像を符号化する方法のフローチャートである。
【図10】複数のクラスの基本関数を用いて符号化された画像を復号する方法のフローチャートである。
【図11】パッチがより小さいパッチ・サイズに漸進的に細分されるウェーブレット符号化手法を示す図である。
【図12】ウェーブレット手法を用いて画像を符号化する演算を示すフローチャートである。
【図13】ウェーブレット手法を用いて符号化された画像の復号を示すフローチャートである。
【図14】基本関数を適応化するプロセスを示す図である。
【図15】二次元空間内のデータおよびPCA基本関数のグラフである。
【図16】二次元空間内のICA基本関数も示す、図15と同じデータのグラフである。
【図17】多数のICA基本関数の相対的な疎度を示す、有意度の順に並べられた最も有意度の高い25個のICA基本関数の正規化係数のグラフである。
【図18】多数のICA基本関数の相対的な疎度を示す、有意度の順に並べられた最も有意度の高い25個のICA基本関数の正規化係数のグラフである。
【図19】図19Aは、LMS色空間を用いて基本関数を訓練した一例におけるICA基本関数の画像パッチ(「ICA基本パッチ」)の図であり、図19Bは、図19Aに示されている各ICA基本関数に対応する色空間の図である。
【図20】図20Aは、LMS色空間を用いてPCA基本関数を訓練した一例におけるPCA基本関数の画像パッチ(「PCA基本パッチ」)の図であり、図20Bは、図20Aに示されている各PCA基本関数に対応する色空間の図である。
Claims (73)
- 画像のパッチを符号化する方法であって、
前記パッチから得たデータを用いて少なくとも1つのデータ・ベクトルを定義するステップと、
非直交性の1組の基本関数を適用して、前記パッチを表す値を有する複数の算出された係数を含むソース・ベクトルを形成することを含め、前記データ・ベクトルを符号化し、かつ前記複数の算出された係数の部分集合を選択することを含め、前記対応するソース・ベクトルを圧縮し、それによって符号化ベクトルを得るステップと
を含む方法。 - 前記非直交性の1組の基本関数は、複数のベクトルによって定義され、少なくとも2つの前記ベクトルは、互いに直交しない、請求項1に記載の方法。
- 前記1組の基本関数は対応する1組の画像パッチを定義し、前記画像パッチは、主として非反復的な画像パッチを含む、請求項1に記載の方法。
- 前記1組の基本関数は、2つの主軸内に形成される対応する1組の色空間を定義し、前記1組の色空間は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項1に記載の方法。
- 最も寄与度の高い10個の基本関数のうちの少なくとも3つは主として均一色基本関数である、請求項1に記載の方法。
- 前記1組の基本関数は、対応する1組の色空間を定義し、前記1組の基本関数は寄与度の降順に並べられ、最も寄与度の高い基本関数を含む第1群の少なくとも60%は、実質的に均一色基本関数およびグレースケール輝度エッジ基本関数を定義する、請求項1に記載の方法。
- 前記基本関数の少なくとも30%は実質的にグレースケール輝度エッジ基本関数を定義する、請求項1に記載の方法。
- 最も寄与度の高い50個の基本関数の少なくとも約60%は、実質的にグレースケール基本関数を定義する、請求項1に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも65%は主として、輝度エッジ、均一色、および対立色の1つである、請求項1に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも80%は主として、輝度エッジ、均一色、および対立色の1つである、請求項9に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも95%は主として、輝度エッジ、均一色、および対立色の1つである、請求項9に記載の方法。
- 前記1組の基本関数は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項9に記載の方法。
- 前記非直交基本関数は、2つ以上のクラスを含み、前記パッチを符号化する前記ステップは、前記各クラスごとにソース・ベクトルを算出し、前記パッチを前記クラスのうちの1つに分類し、前記クラスに関連するソース・ベクトルを選択することを含む、請求項1に記載の方法。
- 前記ソース・ベクトルを圧縮する前記ステップは、ソース・ベクトル内に所定の位置を有する複数の係数を選択し、それによって、所定の基本関数に関連する係数を選択することを含む、請求項1に記載の方法。
- 前記ソース・ベクトルを圧縮する前記ステップは、最大の係数値を選択することによって一群の係数を選択することを含む、請求項1に記載の方法。
- 前記ソース・ベクトルを圧縮する前記ステップは、値が所定のしきい値を超える係数を選択することを含む、請求項1に記載の方法。
- レベル1のパッチを選択し、次いで第1組の非直交基本関数を用いて前記レベル1パッチを符号化し符号化画像データを得ることと、
前記レベル1パッチを細分することを含め、前記レベル1パッチを処理して2つ以上のレベル2パッチを得ることと、
第2組の非直交基本関数を用いて前記レベル2パッチを符号化することと、
を含むウェーブレット法をさらに含む、請求項1に記載の方法。 - 前記レベル1パッチを処理することは、
前記符号化画像データに応じて画像パッチを算出することを含め、差画像を形成することと、前記第1レベル画像パッチから前記算出された画像パッチを引くことと、差画像を細分することをさらに含む、請求項17に記載の方法。 - 前記各基本関数には、基本的な統計分布を指定する確率密度関数(pdf)変数が関連付けされており、前記方法は、前記基本関数に関連する前記pdf変数を用いて前記画像データを符号化するステップをさらに含む、請求項1に記載の方法。
- 前記pdf変数は、基本的な統計分布を準ガウス分布、正規ガウス分布、および超ガウス分布のうちの1つとして指定する、請求項19に記載の方法。
- 前記複数の符号化ベクトルを送信することをさらに含む、請求項1に記載の方法。
- 前記複数の符号化ベクトルを復号して複数の再構築されたデータ・ベクトルを得ることをさらに含む、請求項21に記載の方法。
- 前記再構築されたデータ・ベクトルを用いて前記画像を形成することをさらに含む、請求項22に記載の方法。
- アレイ状に並べられた複数の画素によって形成された画像を符号化し、送信し、復号する方法であって、
前記画像を、各々に少なくとも1つのデータ値が関連付けされた複数の画素パッチに分割するステップと、
各画素パッチごとに、前記パッチの前記データ値を少なくとも1つのデータ・ベクトルとして並べるステップと、
前記各データ・ベクトルごとに、
非直交性の1組の基本関数を適用して、対応するパッチを表す値を有する複数の係数を含むソース・ベクトルを得ることと、
前記複数の係数の部分集合を選択することを含め、前記対応するソース・ベクトルを圧縮し、それによって符号化ベクトルを得ることとを含め、前記データ・ベクトルを符号化するステップと、
前記複数の符号化ベクトルを送信するステップと、
前記複数の前記符号化ベクトルを復号して複数の再構築されたデータ・ベクトルを得るステップとを含む方法。 - 前記非直交性の1組の基本関数は複数のベクトルによって定義され、少なくとも2つの前記ベクトルは互いに直交しない、請求項24に記載の方法。
- 前記1組の基本関数は、対応する1組の画像パッチを定義し、前記画像パッチは、主として非反復画像パッチを含む、請求項24に記載の方法。
- 前記1組の基本関数は、2つの主軸内に形成される対応する1組の色空間を定義し、前記1組の色空間は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項24に記載の方法。
- 寄与度の高い10個の基本関数のうちの少なくとも3つは主として均一色基本関数である、請求項24に記載の方法。
- 前記1組の基本関数は対応する1組の色空間を定義し、前記1組の基本関数は、寄与度の降順に並べられ、最も寄与度の高い基本関数を含む第1群の少なくとも60%は、実質的に均一色基本関数およびグレースケール輝度エッジ基本関数を定義する、請求項24に記載の方法。
- 前記基本関数の少なくとも30%は、実質的にグレースケール輝度エッジ基本関数を定義する、請求項24に記載の方法。
- 最も寄与度の高い50個の基本関数の少なくとも約60%は、実質的にグレースケール基本関数を定義する、請求項24に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも65%は主として、輝度エッジ、均一色、および対立色の1つである、請求項24に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも80%は主として、輝度エッジ、均一色、および対立色の1つである、請求項32に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも95%は主として、輝度エッジ、均一色、および対立色の1つである、請求項32に記載の方法。
- 前記1組の基本関数は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項32に記載の方法。
- 前記非直交基本関数は、2つ以上のクラスを含み、前記パッチを符号化する前記ステップは、前記各クラスごとにソース・ベクトルを算出し、前記パッチを前記クラスのうちの1つに分類し、前記クラスに関連するソース・ベクトルを選択することを含む、請求項24に記載の方法。
- レベル1のパッチを選択し、次いで第1組の直交基本関数を用いて前記レベル1パッチを符号化し符号化画像データを得ることと、
前記レベル1パッチを細分することを含め、前記レベル1パッチを処理して2つ以上のレベル2パッチを得ることと、
第2組の非直交基本関数を用いて前記レベル2パッチを符号化することと、
を含むウェーブレット法をさらに含む、請求項24に記載の方法。 - 符号化画像データを復号する方法であって、
前記符号化画像データを符号化するのに用いられた圧縮技術を識別することと、
前記識別された圧縮技術に応じて前記符号化画像データからソース・ベクトルを再構築することと、
前記再構築されたソース・ベクトルに非直交基本関数を適用することによって画像データを算出することと、
前記算出された画像データを表示することとを含む方法。 - 前記非直交性の1組の基本関数は複数のベクトルによって定義され、少なくとも2つの前記ベクトルは互いに直交しない、請求項38に記載の方法。
- 前記1組の基本関数は、対応する1組の画像パッチを定義し、前記画像パッチは、主として非反復画像パッチを含む、請求項38に記載の方法。
- 前記1組の基本関数は、2つの主軸内に形成される対応する1組の色空間を定義し、前記1組の色空間は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項38に記載の方法。
- 寄与度の高い10個の基本関数のうちの少なくとも3つは主として均一色基本関数である、請求項38に記載の方法。
- 前記1組の基本関数は対応する1組の色空間を定義し、前記1組の基本関数は、寄与度の降順に並べられ、最も寄与度の高い基本関数を含む第1群の少なくとも60%は、実質的に均一色基本関数およびグレースケール輝度エッジ基本関数を定義する、請求項38に記載の方法。
- 前記基本関数の少なくとも30%は、実質的にグレースケール輝度エッジ基本関数を定義する、請求項38に記載の方法。
- 最も寄与度の高い50個の基本関数の少なくとも約60%は、実質的にグレースケール基本関数を定義する、請求項38に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも65%は主として、輝度エッジ、均一色、および対立色の1つである、請求項38に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも80%は主として、輝度エッジ、均一色、および対立色の1つである、請求項46に記載の方法。
- 前記1組の基本関数における基本関数の少なくとも95%は主として、輝度エッジ、均一色、および対立色の1つである、請求項46に記載の方法。
- 前記1組の基本関数は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項46に記載の方法。
- 各々が少なくとも1つのデータ・ベクトルを定義する複数のパッチに分割された画像を符号化するエンコーダであって、
前記各データ・ベクトルに非直交性の1組の基本関数を適用して、前記パッチを表す値を有する複数の算出された係数を含むソース・ベクトルを得る計算システムと、
前記複数の算出された係数の部分集合を選択することによって前記対応するソース・ベクトルを圧縮し、それによって符号化ベクトルを得る圧縮システムとを備えるエンコーダ。 - 前記非直交性の1組の基本関数は複数のベクトルによって定義され、少なくとも2つの前記ベクトルは互いに直交しない、請求項50に記載の方法。
- 前記1組の基本関数は、対応する1組の画像パッチを定義し、前記画像パッチは、主として非反復画像パッチを含む、請求項50に記載のエンコーダ。
- 前記1組の基本関数は、2つの主軸内に形成される対応する1組の色空間を定義し、前記1組の色空間は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項50に記載のエンコーダ。
- 寄与度の高い10個の基本関数のうちの少なくとも3つは主として均一色基本関数である、請求項50に記載のエンコーダ。
- 前記1組の基本関数は対応する1組の色空間を定義し、前記1組の基本関数は、寄与度の降順に並べられ、最も寄与度の高い基本関数を含む第1群の少なくとも60%は、実質的に均一色基本関数およびグレースケール輝度エッジ基本関数を定義する、請求項50に記載のエンコーダ。
- 前記基本関数の少なくとも30%は、実質的にグレースケール輝度エッジ基本関数を定義する、請求項50に記載のエンコーダ。
- 最も寄与度の高い50個の基本関数の少なくとも約60%は、実質的にグレースケール基本関数を定義する、請求項50に記載のエンコーダ。
- 前記1組の基本関数における基本関数の少なくとも65%は主として、輝度エッジ、均一色、および対立色の1つである、請求項50に記載のエンコーダ。
- 前記1組の基本関数における基本関数の少なくとも80%は主として、輝度エッジ、均一色、および対立色の1つである、請求項58に記載のエンコーダ。
- 前記1組の基本関数における基本関数の少なくとも95%は主として、輝度エッジ、均一色、および対立色の1つである、請求項58に記載のエンコーダ。
- 前記1組の基本関数は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項58に記載のエンコーダ。
- 画像データを復号するデコーダであって、
前記符号化画像データを符号化するのに用いられた圧縮技術を識別する識別システムと、
前記識別された圧縮技術に応じて前記符号化画像データからソース・ベクトルを再構築する再構築システムと、
前記再構築されたソース・ベクトルに非直交基本関数を適用することによって画像データを算出する手段と、
前記算出された画像データを表示するディスプレイとを備えるデコーダ。 - 前記非直交性の1組の基本関数は複数のベクトルによって定義され、少なくとも2つの前記ベクトルは互いに直交しない、請求項62に記載の方法。
- 前記1組の基本関数は、対応する1組の画像パッチを定義し、前記画像パッチは、主として非反復画像パッチを含む、請求項62に記載のデコーダ。
- 前記1組の基本関数は、2つの主軸内に形成される対応する1組の色空間を定義し、前記1組の色空間は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項62に記載のデコーダ。
- 寄与度の高い10個の基本関数のうちの少なくとも3つは主として均一色基本関数である、請求項62に記載のデコーダ。
- 前記1組の基本関数は対応する1組の色空間を定義し、前記1組の基本関数は、寄与度の降順に並べられ、最も寄与度の高い基本関数を含む第1群の少なくとも60%は、実質的に均一色基本関数およびグレースケール輝度エッジ基本関数を定義する、請求項62に記載のデコーダ。
- 前記基本関数の少なくとも30%は、実質的にグレースケール輝度エッジ基本関数を定義する、請求項62に記載のデコーダ。
- 最も寄与度の高い50個の基本関数の少なくとも約60%は、実質的にグレースケール基本関数を定義する、請求項62に記載のデコーダ。
- 前記1組の基本関数における基本関数の少なくとも65%は主として、輝度エッジ、均一色、および対立色の1つである、請求項62に記載のデコーダ。
- 前記1組の基本関数における基本関数の少なくとも80%は主として、輝度エッジ、均一色、および対立色の1つである、請求項70に記載のデコーダ。
- 前記1組の基本関数における基本関数の少なくとも95%は主として、輝度エッジ、均一色、および対立色の1つである、請求項70に記載のデコーダ。
- 前記1組の基本関数は、軸が互いに直交しない色空間を定義する少なくとも2つの対立色基本関数を含む、請求項70に記載のデコーダ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/846,485 US6870962B2 (en) | 2001-04-30 | 2001-04-30 | Method and apparatus for efficiently encoding chromatic images using non-orthogonal basis functions |
PCT/US2002/013815 WO2002088907A2 (en) | 2001-04-30 | 2002-04-30 | Method and apparatus for efficiently encoding chromatic images using non-orthogonal basis functions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004532577A true JP2004532577A (ja) | 2004-10-21 |
JP2004532577A5 JP2004532577A5 (ja) | 2005-09-02 |
Family
ID=25298083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002586142A Pending JP2004532577A (ja) | 2001-04-30 | 2002-04-30 | 非直交基本関数を用いて色画像を効率的に符号化する方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6870962B2 (ja) |
EP (1) | EP1384128A2 (ja) |
JP (1) | JP2004532577A (ja) |
AU (1) | AU2002303585A1 (ja) |
CA (1) | CA2446134A1 (ja) |
MX (1) | MXPA03009937A (ja) |
WO (1) | WO2002088907A2 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0123772D0 (en) * | 2001-10-03 | 2001-11-21 | Qinetiq Ltd | Apparatus for monitoring fetal heartbeat |
AUPR827201A0 (en) * | 2001-10-15 | 2001-11-08 | Polartechnics Limited | Image enhancement |
WO2003073771A1 (en) * | 2002-02-28 | 2003-09-04 | Koninklijke Philips Electronics N.V. | Method and device for coding and decoding a digital color video sequence |
AU2003214557A1 (en) * | 2002-04-12 | 2003-10-27 | Koninklijke Philips Electronics N.V. | Coding and decoding method and device |
US7054497B2 (en) * | 2002-06-14 | 2006-05-30 | Koninklijke Philips Electronics N.V. | Method and system for optimizing image sharpness during coding and image enhancement |
JP2004214828A (ja) * | 2002-12-27 | 2004-07-29 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理用コンピュータプログラム、及びこの画像処理用コンピュータプログラムを記憶する記憶媒体 |
GB0306629D0 (en) | 2003-03-22 | 2003-04-30 | Qinetiq Ltd | Monitoring electrical muscular activity |
JP2004348706A (ja) * | 2003-04-30 | 2004-12-09 | Canon Inc | 情報処理装置及び情報処理方法ならびに記憶媒体、プログラム |
GB0326539D0 (en) | 2003-11-14 | 2003-12-17 | Qinetiq Ltd | Dynamic blind signal separation |
US20050196049A1 (en) * | 2004-02-02 | 2005-09-08 | Clark Adam L. | System and method for encoding live audio/video information |
US7668359B2 (en) * | 2004-06-28 | 2010-02-23 | Siemens Meidcal Solutions USA, Inc. | Automatic detection of regions (such as, e.g., renal regions, including, e.g., kidney regions) in dynamic imaging studies |
US7262780B2 (en) * | 2004-08-23 | 2007-08-28 | Micron Technology, Inc. | Simple and robust color saturation adjustment for digital images |
US7570403B2 (en) * | 2005-03-16 | 2009-08-04 | Kabushiki Kaisha Toshiba | Color image processing apparatus |
US8983175B2 (en) * | 2005-08-17 | 2015-03-17 | Entropic Communications, Inc. | Video processing method and device for depth extraction |
KR101521041B1 (ko) * | 2006-05-25 | 2015-05-15 | 톰슨 라이센싱 | 가중 인코딩을 위한 방법 및 시스템 |
US7962499B2 (en) * | 2006-08-18 | 2011-06-14 | Falconstor, Inc. | System and method for identifying and mitigating redundancies in stored data |
US7697741B2 (en) * | 2006-12-01 | 2010-04-13 | Microsoft Corporation | Compression and decompression of medical images |
US8396310B1 (en) * | 2009-09-30 | 2013-03-12 | Rockwell Collins, Inc. | Basis learning for sparse image representation and classification and low data rate compression |
US8055095B2 (en) * | 2008-01-23 | 2011-11-08 | Sparsense, Inc. | Parallel and adaptive signal processing |
EP2289173B1 (en) | 2008-05-15 | 2017-10-11 | Koninklijke Philips N.V. | Method, apparatus, and computer program product for compression and decompression of a gene sequencing image |
EP2315358A1 (en) | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
US8787459B2 (en) * | 2010-11-09 | 2014-07-22 | Sony Computer Entertainment Inc. | Video coding methods and apparatus |
US20120263224A1 (en) * | 2011-04-12 | 2012-10-18 | Jorg-Ulrich Mohnen | Encoding digital assets as an image |
US8433132B2 (en) | 2011-04-12 | 2013-04-30 | Sony Corporation | Method for efficient representation and processing of color pixel data in digital pathology images |
US10089312B2 (en) * | 2012-03-01 | 2018-10-02 | Trimble Ab | Methods and apparatus for point cloud data management |
US8982958B2 (en) * | 2012-03-07 | 2015-03-17 | Intellectual Ventures Fund 83 Llc | Video representation using a sparsity-based model |
US8976299B2 (en) * | 2012-03-07 | 2015-03-10 | Intellectual Ventures Fund 83 Llc | Scene boundary determination using sparsity-based model |
US8861872B2 (en) * | 2012-11-05 | 2014-10-14 | Raytheon Bbn Technologies Corp. | Image analysis using coefficient distributions with selective basis feature representation |
US9262808B2 (en) * | 2013-02-07 | 2016-02-16 | Mitsubishi Electric Research Laboratories, Inc. | Denoising of images with nonstationary noise |
US10305717B2 (en) * | 2016-02-26 | 2019-05-28 | VertoCOMM, Inc. | Devices and methods using the hermetic transform for transmitting and receiving signals using multi-channel signaling |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706402A (en) | 1994-11-29 | 1998-01-06 | The Salk Institute For Biological Studies | Blind signal processing system employing information maximization to recover unknown signals through unsupervised minimization of output redundancy |
ES2182972T3 (es) * | 1996-04-19 | 2003-03-16 | Nokia Corp | Codificador y descodificador de video utilizando procedimientos de segmentacion y fusion de movimiento. |
US6195456B1 (en) | 1996-12-19 | 2001-02-27 | Xerox Corporation | Multi resolution color correction using wavelet transforms |
US5956431A (en) | 1997-10-02 | 1999-09-21 | S3 Incorporated | System and method for fixed-rate block-based image compression with inferred pixel values |
-
2001
- 2001-04-30 US US09/846,485 patent/US6870962B2/en not_active Expired - Fee Related
-
2002
- 2002-04-30 MX MXPA03009937A patent/MXPA03009937A/es unknown
- 2002-04-30 AU AU2002303585A patent/AU2002303585A1/en not_active Abandoned
- 2002-04-30 CA CA002446134A patent/CA2446134A1/en not_active Abandoned
- 2002-04-30 WO PCT/US2002/013815 patent/WO2002088907A2/en active Application Filing
- 2002-04-30 JP JP2002586142A patent/JP2004532577A/ja active Pending
- 2002-04-30 EP EP02731614A patent/EP1384128A2/en not_active Withdrawn
-
2005
- 2005-03-21 US US11/086,802 patent/US7286712B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20060056711A1 (en) | 2006-03-16 |
WO2002088907A3 (en) | 2003-05-01 |
EP1384128A2 (en) | 2004-01-28 |
US6870962B2 (en) | 2005-03-22 |
CA2446134A1 (en) | 2002-11-07 |
AU2002303585A1 (en) | 2002-11-11 |
US20020191844A1 (en) | 2002-12-19 |
WO2002088907A2 (en) | 2002-11-07 |
US7286712B2 (en) | 2007-10-23 |
MXPA03009937A (es) | 2005-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7286712B2 (en) | Method and apparatus for efficiently encoding chromatic images using non-orthogonal basis functions | |
CN111787323B (zh) | 一种基于对抗学习的可变比特率生成式压缩方法 | |
Hussain et al. | Image compression techniques: A survey in lossless and lossy algorithms | |
CA2062965C (en) | Method and apparatus for compression and decompression of digital data | |
Hang et al. | Interpolative vector quantization of color images | |
Cramer et al. | Low bit-rate video compression with neural networks and temporal subsampling | |
WO2022022001A1 (zh) | 对风格迁移网络进行压缩的方法及风格迁移的方法、装置和*** | |
JP4416613B2 (ja) | カラー画像情報を白黒画像に埋め込むための方法 | |
CN110225350B (zh) | 基于生成式对抗网络的自然图像压缩方法 | |
Hassan et al. | Color image compression based on DCT, differential pulse coding modulation, and adaptive shift coding | |
Reddy et al. | Image Compression and reconstruction using a new approach by artificial neural network | |
Pavlidis | Mixed raster content: Segmentation, compression, transmission | |
Gray et al. | Image compression and tree-structured vector quantization | |
Feng et al. | Neural subspaces for light fields | |
CN113141506A (zh) | 基于深度学习的图像压缩神经网络模型、及其方法和设备 | |
US10032253B2 (en) | Imaging apparatus, imaging system, imaging method, and recording medium | |
JP2006101512A (ja) | 画像圧縮装置および画像送受信装置 | |
CN113393543B (zh) | 高光谱图像压缩方法、装置、设备及可读存储介质 | |
Jiang | Efficient predictive lossless hyperspectral image compression using machine learning | |
Wang et al. | Image compression using wavelet transform and self-development neural network | |
JP2005522106A (ja) | 強相関画像データの繰り返し符号化圧縮 | |
Kamatar et al. | Image Compression Using Mapping Transform with Pixel Elimination | |
kumar | Color and multispectral image compression using Enhanced Block Truncation Coding [E-BTC] scheme | |
Larsson | Bildkomprimering med autoencoder och discrete cosine transform | |
Guntuboina et al. | Efficient Image Data Compression Techniques: A Comprehensive Review and Comparative Study |