視覚データを圧縮するための変換の選択
データのコード化する方法は、1つのデータ配列の異なる部分にて各々の変換が計算された複数の変換に基づいて第1の係数セットを算出するステップと、そのデータ配列で計算された変換に基づいて第2の係数セットを算出するステップと、第1の係数セットおよび第2の係数セットを含む係数セットのグループから、データ配列を表す1つの係数セットを選択するステップと、選択された係数および選択された係数に関連する1つ以上のパラメータをコード化するステップと、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視覚データを圧縮するための変換の選択に関するものである。
【背景技術】
【0002】
イメージおよびビデオのような未加工の視覚データは、概して、それらを表示する際に多くのビット数を必要とするため、視覚データを圧縮することは重要である。視覚データを圧縮することにより、視覚データの格納および伝送をより少ないビット数で実現することができる。視覚データの圧縮は、視覚メディアの時間的および/または空間的冗長性を利用することにより達成される。視覚データの圧縮は、他の圧縮またはコード化されたイメージまたはビデオフレームに基づいて、イメージまたはビデオフレームを予測することを含んでもよい。予測されたフレームと実際のフレームとの差異は、予測残差として公知である。1つの圧縮方法として、予測残差または予測残差の変換は、実際のフレームに代わって格納または伝送されることが多い。
【発明の概要】
【課題を解決するための手段】
【0003】
一形態において、概して、データをコード化する方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第2の係数セットを算出するステップと、前記データ配列を表す係数セットを、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから選択するステップと、前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、を含む。
【0004】
実施形態は、後述する特徴の1つ以上を含むことができる。
【0005】
データ配列の異なる部分にて各々が計算された複数の変換は、複数の1次元変換を含む。
【0006】
第1の係数セットを算出するステップは、データ配列を複数の1次元配列に分割するステップを含む。
【0007】
複数の1次元配列はオーバーラップしていない。
【0008】
複数の1次元配列の1つ以上はオーバーラップしている。
【0009】
第1の係数セットは、複数の1次元配列の異なる配列にて計算された複数の1次元変換から得られる係数を含む。
【0010】
係数セットのグループは、第1の係数セット、第2の係数セット、および1つ以上の追加の係数セットを含む。
【0011】
1つ以上の追加の係数セットの各々は、データ配列の異なる部分にて計算された複数の変換に基づいて算出される。
【0012】
追加の係数セットの所定の1つを算出するステップは、大部分のデータ配列をカバーする複数の1次元配列にデータ配列を分割するステップと、複数の1次元配列の各々で1次元変換を計算するステップと、を含む。
【0013】
異なる追加の係数セットは、1次元配列の異なるパターンを用いて大部分のデータ配列をカバーする。
【0014】
異なるパターンは、1次元配列に対する異なる方向に対応する。
【0015】
追加の係数セットのうちの少なくとも1つは、データ配列で計算された変換に基づいて算出される。
【0016】
1つ以上のパラメータは、第1の係数セット内の係数リストを順序づけるのに用いられる複数の走査パターンの1つを識別する。
【0017】
識別された走査パターンは、係数セット候補のいずれが第1の係数セットとして選択されるのかに依存する。
【0018】
係数セット候補のいずれが最大圧縮を有するデータ配列を表すのかに基づいて、複数の係数セット候補の中から第1の係数セットが選択される。
【0019】
1つ以上のパラメータは、選択された第1または第2の係数セットの生成に用いられる少なくとも1つの変換を識別する。
【0020】
1つ以上のパラメータは、第1の係数セットが選択される場合、複数の変換が計算される1次元配列の所定のパターンを識別する。
【0021】
データ配列で計算される変換は、2次元変換を含む。
【0022】
1つ以上のパラメータは、第2の係数セットが選択される場合、第2の係数セットの算出に用いられる複数の2次元変換の1つを識別する。
【0023】
2次元変換は、2次元離散コサイン変換を含む。
【0024】
2次元変換は、2次元離散ウェーブレット変換を含む。
【0025】
複数の1次元変換のうちの少なくとも1つは、離散コサイン変換を含む。
【0026】
複数の1次元変換のうちの少なくとも1つは、離散ウェーブレット変換を含む。
【0027】
係数セットのいずれが最大圧縮を有するデータ配列を表すのかに基づいて、データ配列を表すために係数セットのグループから1つの係数セットが選択される。
【0028】
複数の係数セットグループ内の各々の係数セットは、複数の変換のグループから少なくとも1つの変換に基づいて計算される。
【0029】
多数の変換のグループは、第1の係数セットの算出が基づく複数の変換と、第2の係数セットの算出計算が基づく変換と、を含む。
【0030】
本発明の方法は、データ配列の推定される特徴に基づいて複数の係数セットのグループのいずれかを算出することを考慮して、第1の係数セットおよび第2の係数セットを算出する前に、1つ以上の変換を変換グループから除去するステップをさらに含む。
【0031】
選択した係数をコード化するステップは、所定の閾値に基づいて少なくとも1つの係数を破棄するステップを含む。
【0032】
データ配列は、ビデオフレームに関連している。
【0033】
データ配列は、ビデオフレームの画素ブロックに対応する。
【0034】
データ配列は、2つのビデオフレームから計算される残差に関連している。
【0035】
残差は、2つのビデオフレーム間の動き補償に基づく。
【0036】
残差は、2つのビデオフレーム間の解像度向上に基づく。
【0037】
残差は、1つのフレームの画素値を、他のフレームの対応する画素値から減算することによって得られる。
【0038】
他の形態において、概して、ビデオ残差のブロックをコード化する方法は、ブロックの異なる部分にて各々の変換が計算された複数の1次元変換に基づいて第1の係数セットを算出するステップと、そのブロックで計算された2次元変換に基づいて第2の係数セットを算出するステップと、そのブロックを表す係数セットを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択するステップと、選択された係数および選択された係数に関連する1つ以上のパラメータをコード化するステップと、を含む。
【0039】
他の形態において、概して、コンピュータ可読メディアは、データをコード化するためのコンピュータプログラムを格納している。コンピュータプログラムは、コンピュータシステムに、データ配列の異なる部分にて計算された複数の変換に基づいて第1の係数セットを算出させ、そのデータ配列で計算された変換に基づいて第2の係数セットを算出させ、そのデータ配列を表す係数セットを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択させ、選択された係数および選択された係数に関連する1つ以上のパラメータをコード化させるための命令を含む。
【0040】
他の形態において、概して、本発明の方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づく第1の係数セットを算出するステップと、そのデータ配列で計算された変換に基づく第2の係数セットを算出するステップと、データ配列を代表する複数の係数セットの1つを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択するステップと、を含む方法を用いてコード化されたデータを、デコードするために用いられる。データをデコードする方法は、コード化された係数およびコード化された係数に関連する1つ以上のパラメータを受信するステップと、データ配列を生成するために、コード化された係数で逆変換を計算するステップと、を含み、逆変換は、コード化された係数と関連するパラメータの、少なくとも1つによって示される変換に基づいている。
【0041】
他の形態において、概して、データをデコードする方法は、少なくとも1つの1次元変換および少なくとも1つの2次元変換を含む複数の変換グループを識別する情報を記憶するステップと、コード化された係数、およびコード化された係数に関連する1つ以上のパラメータを受信するステップと、データ配列を生成するために、パラメータの少なくとも1つによって示されたグループから得られる変換に基づいて、逆変換を計算するステップと、を含む。
【0042】
いくつかの形態は、後述する特徴のうち1つ以上を含むことができる。
【0043】
逆変換は、受信した複数のコード化された係数セットの各々、およびコード化された係数セットに関連するパラメータのそれぞれに対して計算され、複数の変換グループ内から1つの1次元変換を示している、コード化された第1の係数セットに関連するパラメータの少なくとも1つに応答して、コード化された第1の係数の複数のサブセットの各々にて、示された1次元変換の逆変換を計算し、各々の1次元変換の逆変換はデータ配列の異なる部分を生成し、複数の変換グループ内から2次元変換を示しているコード化された第2の係数セットに関連するパラメータの少なくとも1つに応答して、コード化された第2の係数セットにて、示された2次元変換の逆変換を計算し、データ配列を生成する。
【0044】
その方法は、データの大部分の配列をカバーしている、1次元配列の複数パターンのグループを識別する情報を格納するステップも含む。
【0045】
その方法は、複数の変換グループから1次元変換を示しているコード化された係数に関連するパラメータの少なくとも1つ、および複数のパターングループからあるパターンを示しているコード化された係数に関連するパラメータの少なくとも1つに応答して、コード化された係数の複数のサブセットの各々にて、示された1次元変換の逆変換を計算し、各々の1次元逆変換は示されたパターンの異なる1次元配列を生成している。
【0046】
他の形態において、概して、コンピュータ可読メディアは、データ配列の異なる部分にて計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第2の係数セットを算出するステップと、第1の係数セットおよび第2の係数セットを含む複数の係数セットのグループから、データ配列を表す係数セットを選択するステップと、を含む方法を用いてコード化されたデータを、デコードするためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピュータシステムに、コード化された係数およびコード化された係数に関連する1つ以上のパラメータを受信させ、データ配列を生成するために、コード化された係数に関連するパラメータのうち1つ以上によって示される変換に基づくコード化された係数上の逆変換を計算させるための命令を含む。
【0047】
他の形態において、概して、システムは、データ配列の異なる部分にて各々が計算された複数の係数に基づく第1の係数セット、およびそのデータ配列で計算された変換に基づく第2の係数セットを計算し、第1の係数セットおよび第2の係数セットを含む複数の係数セットのグループからデータ配列を表す1つの係数セットを選択し、選択した係数および選択した係数に関連する1つ以上のパラメータをコード化するように構成されたトランスミッタを含む。そのシステムは、1つ以上のレシーバを含み、各々のレシーバは、コード化された係数およびコード化された係数に関連する1つ以上のパラメータをトランスミッタから受信し、データ配列を生成するためにコード化された係数上で逆変換を計算するように構成され、逆変換は、コード化された係数に関連するパラメータのうち1つ以上によって示される変換に基づく。
【0048】
以下、本発明の多くの効果(その幾つかは、種々の実施形態のみにおいて達成できる)を説明する。
【0049】
視覚データの配列(例えばブロック)を表すための変換係数は、いずれの変換もしくは変換セットが、そのブロックにおいて最も効果的な圧縮をもたらすかに基づいて選択することができる。視覚データの局所的な異方特性は、視覚データをより効果的に圧縮する変換の1つをもたらすことができる。たとえば、ビデオフレームの予測残差の場合、なめらかでゆっくり動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。さらに、オブジェクトの形状はフレーム間で僅かに変化する傾向にありうるので、オブジェクトの境界周辺の予測はより多くのエラーを有しうる。そのような場合においては、1つの所定の変換を計算する代わりに、同一のデータ配列上で計算されるいくつかの変換の中から、適切な変換を選択することができる。
【0050】
ブロック上の少なくとも1つの2次元変換と、そのブロック上の1つ以上の1次元変換セットと、の両方を、所定のブロック上で計算されるべき変換の候補として含むことにより、残差内のいくつかのブロックまたは他のフレーム、もしくはイメージが、他の変換に比べて1つの変換により良く適するため、圧縮効率を増加させることができる。
【0051】
指向的な1次元変換のために、データまたはアプリケーションのタイプに従っていくつかの方向を定めることができる。
【0052】
所定のデータ配列に最適な変換を選択するためのコスト関数は、データおよびアプリケーションのタイプに基づいて決定し、適用することができる。この選択方法によって、全てのケースに対して1つの所定の変換を用いるよりも、複数の利用可能な変換の中から適切な変換を選択するという、効率的かつ場合によってはユーザ定義の選択方法が可能になる。
【0053】
ビットレートの削減は、圧縮された視覚データを送信するもしくは格納する際に達成される。この種の削減は、ビデオおよびイメージの通信システムにおけるバンド幅および/またはメモリの効率的な利用を結果としてもたらす。
【0054】
本発明の他の特徴および効果は、後述の説明および請求項から明らかとなる。
【図面の簡単な説明】
【0055】
【図1】ビデオ通信システムの一例を示す図である。
【図2】ソースコードシステムの一例のブロック図である。
【図3】符号化ビデオフレームに使用されるソースコードシステムの一例のブロック図である。
【図4】動き補償において予測残差フレームを取得する一例を示す図である。
【図5】解像度向上において予測残差フレームを取得する一例を示す図である。
【図6】データ圧縮および伝送システムにおける動作の特定の順序を表すフローチャートである。
【図7】本願明細書に記載されている一例に関する散布点を示す図である。
【図8】データ配列で計算される、複数の1次元変換の一例を示す図である。
【図9】データ配列のための走査パターン例を示す図である。
【図10】ウェーブレット変換システムの一例のブロック図である。
【図11】垂直方向および水平方向のそれぞれに沿った方向予測を基準に用いる、ウェーブレット変換例を示す図である。
【図12】離散ウェーブレット変換を用いた実験結果に関するプロットを示す図である。
【図13】離散コサイン変換を用いた実験結果に関するプロットを示す図である。
【発明を実施するための形態】
【0056】
本発明に見込まれる実施形態は、その全てを本願明細書に記載するにはあまりに数が多過ぎる。以下、目下のところ望ましい、本発明に見込まれる実施形態のいくつかについて説明する。いくら強調しても強調しすぎることはないが、これらが本発明自体の記述ではなく本発明の実施形態の記述であって、よって本発明は本願明細書に記述された実施形態に限定されることはなく、請求項にてより広義の用語を用いて記述されるものとする。
【0057】
図1は、ネットワーク上のデータを通信するためのシステム100の一例を示している。概して、システム100は、ネットワーク104を通じて接続される1つ以上のノード102a〜102f(総じて102)を含む。ノード102は、ネットワーク104内の他のノードからの情報を、送信および/または受信することができる。いくつかの実施形態において、その情報とはイメージまたはビデオなどの視覚データを含む。ビデオまたはイメージは、1つ以上のソース101(例えばウェブカメラ101a、ビデオもしくはスチルカメラ101c、監視カメラ101d、または、例えば電話もしくはパーソナルデジタルアシスタント(PDA)などの無線携帯装置101e)からもたらされることができる。いくつかの実施形態において、情報ソースは、サーバ101bまたは他の任意のコンピュータデバイスに電子的に格納されているファイルであってもよい。いくつかの実施形態において、情報ソースは、視覚データまたは他の形式のデータを遠隔地に送信することができる医療装置101fであってもよい。情報ソース101は、ビデオやイメージのような視覚情報を検出すること、引き出すこと、取り込むこと、格納すること、または記録することができる、たとえば任意のセンサ、検出器、レコーダ、またはアナライザも含むことができる。いくつかの実施形態において、情報ソース101は、上記のソースを含む複数のソースを結合することができるが、これらに限定されるものではない。情報ソース101は、任意の施設、場所または車両に存在することができる。たとえば、情報ソース101は、建物またはキャンパスにおいて配備される防犯カメラであってもよい。他の実施形態において、情報ソースはユーザによって持ち歩かれることができる。いくつかの実施形態において、情報ソース101は、衛星上の撮像装置または検出装置であってもよい。他の実施形態では、情報ソース101は、車両(例えば飛行機、船または他の有人もしくは無人車両)に配備されることができる。情報ソース101は、ネットワーク104に接続されているノード102と通信することができる。いくつかの実施形態において、情報ソース101は、ノード102の一部であってもよい。他の実施形態では、情報ソース101は、1つ以上のネットワークおよび/または1つ以上の介在装置を経て、ノード102と通信することができる。任意のハードウェアまたはソフトウェアを用いて、情報ソース101とノード102との間の通信を容易にすることができる。
【0058】
ノード102は、イメージおよび/またはビデオを、受信および表示、またはレンダリングすることができるデバイスを含むことができる。たとえば、ノードは、テレビまたはディスプレイデバイス102cであってもよい。ノードは、デスクトップまたはラップトップコンピュータ102dであってもよい。ノードは、無線装置102e(例えば、イメージおよびビデオを受信、格納、もしくは表示することができるPDAまたは携帯電話)であってもよい。いくつかの実施形態において、ノードは、記憶装置(例えば情報を格納することができるサーバ102fまたはメモリ)であってもよい。かかるサーバまたはメモリは、視覚情報を読み出して表示することができるデバイスに、任意に接続することができる。
【0059】
いくつかの実施態様において、ノード102a(図1のノード1)は、トランスミッタ103を含む。トランスミッタ103は、情報ソース101からのデータをコード化して、そのコード化されたデータをネットワーク104上へ送信するように構成されることができる。いくつかの実施形態において、トランスミッタ103は、ソースコーディング105aおよびチャネルコーディング110a用のコンポーネントを含むことができる。トランスミッタ103は、モジュレータ115aも含むこともできる。トランスミッタは、ソース101からのデータをソースコーディングに適したフォーマットに変えるための1つ以上のコンポーネントまたはデバイスを含むこともできる。
【0060】
ソースコーディング105aは、データ圧縮技術とも称されてよい。ソースコーディングは、所定のイメージ、ビデオまたは他方式の情報の表示に必要なビット数を減らすように設計される、符号化方式を含むことができる。ソースコーディング105aは、例えば、レンペル・ジフ圧縮(Lempel Ziv compression)や算術符号化等の可逆圧縮技術、または不可逆圧縮技術を含むことができる。いくつかの実施形態において、不可逆圧縮は、情報の送信に必要なバンド幅を減少させるため、特にネットワーク上の送信を伴う際に好ましい。ソースコーディング105aに用いられる不可逆圧縮技術の例としては、数学的変換(例えば、離散コサイン変換(DCT)、離散サイン変換(DST)、離散ウェーブレット変換(DWT)、フラクタル圧縮、および離散フーリエ変換(DFT))を伴う変換符号化が挙げられる。いくつかの実施形態において、ソースコーディングは1つ以上の標準規格に従うことができる。かかる標準規格は、ビデオ標準(例えばMPEG‐2、MPEG‐4、H.263、およびH.264)を含むことができる。かかる標準規格は、画像圧縮標準(例えばJPEG)も含むことができる。いくつかの実施形態において、不可逆圧縮方式は、イメージまたはビデオフレームが数学的にモデル化され、そのモデルのパラメータがコード化されるモデルコーディングも含むことができる。
【0061】
チャネルコーディング110aは、チャネル全体に送信される情報の冗長ビットの追加に関連する。チャネルコーディングは、レシーバ側でエラー検出および/またはエラー訂正を容易にすること、および伝送の信頼性を向上させることができる。チャネルコードは、エラー訂正コードとも称することができる。チャネルコーディング110aは、コード(例えばブロックコード、畳み込みコード、ターボコードおよび低密度パリティチェック(LDPC)コード)の利用を含むことができる。
【0062】
トランスミッタは、モジュレータ115aを含むことができる。モジュレータ115aは、デジタルビットの流れに従って、アナログキャリアを変調することができる。モジュレータは、たとえば、位相シフトキーイング(PSK)、周波数シフトキーイング(FSK)、振幅シフトキーイング(ASK)、直交振幅変調(QAM)、パルス位置変調(PPM)、オンオフキーイング(OOK)、最小シフトキーイング(MSK)、連続位相変調(CPM)、トレリス符号化変調(TCM)、および直交周波数分割多重(OFDM)を含む、任意のデジタル変調技術を使用することができる。
【0063】
いくつかの実施形態において、ノード102b(図1のノード2)は、ネットワーク上の別のノード102から情報を受信するように構成されたレシーバ106を含む。図1では、トランスミッタ103およびレシーバ106が異なるノード上にあるが、任意のノード102は1つ以上のトランスミッタおよび/または1つ以上のレシーバを備えることができると認められなければならない。また、トランスミッタ103および/またはレシーバ106は、任意のノード102の一部であってもよい。レシーバ106はデモジュレータ115b、チャネルデコーダ110b、およびソースデコーダ105bのうちの1つ以上を含むことができる。デモジュレータ115bは、典型的に、受信された変調済みのアナログ信号からデジタルビットを回復させるために、モジュレータ115aの演算に対して逆演算を行う。同様に、チャネルデコーダ110bおよびソースデコーダ105bは、典型的に、チャネルコーダ110aおよびソースコーダ105aそれぞれの演算に対して逆演算を行う。いくつかの実施形態において、レシーバ106は、受信されたビデオまたはイメージデータをレンダリングするためのディスプレイに接続することができる。任意のソフトウェアおよび追加のハードウェアを用いて、かかるレンダリングを行うことができる。レシーバ106は、受信されたデジタルデータを格納するために、記憶媒体に接続することができる。
【0064】
ノード102は、ネットワーク104経由で接続されてもよい。図1では、1つのネットワーク104のみがノードに接続しているが、各々が相互に接続された複数のかかるネットワークがあってもよい。その複数のネットワークは、同一の種類または異なる種類のネットワークとすることができる。ネットワーク104は、社内イントラネットのようなローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットもしくはワールドワイド・ウェブのような広域ネットワーク(WAN)とすることができる。一実施形態では、ネットワーク104は、プライベートネットワークおよびパブリックネットワークの1つ以上を含むことができる。
【0065】
ネットワーク104は、任意のタイプおよび/またはフォームのネットワークとすることができ、以下のいずれかを含むことができる。ポイントツーポイントネットワーク、放送網、広域ネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光通信網)ネットワーク、SDH(同期デジタル階層)ネットワーク、ワイヤレス・ネットワークおよびワイヤライン・ネットワーク。いくつかの実施形態において、ネットワーク104は、無線リンク(例えば赤外線チャネルまたはサテライト・バンド)を含むことができる。ネットワーク104のトポロジーは、バス型トポロジー、スター型トポロジー、またはリング型ネットワーク・トポロジーであってもよい。ネットワークは、任意数の中継器、アプライアンス、デバイス、サーバ、記憶媒体、およびキューを含むことができる。
【0066】
ネットワーク104は、ネットワークに接続しているノード間の1つ以上のチャネル120をサポートする。たとえば、ノード102aおよび102bは、チャネルによって接続可能である。いくつかの実施形態において、チャネル120は、例えばチャネル120aとチャネル120bのように、2以上の異なるチャネルを含むことができる。チャネル120aおよび120bは、実質的に同一もしくは異なるチャネル特性を有することができる。いくつかの実施形態において、チャネル120aおよび120bのチャネル特性のいくつかを同一とする一方、その他チャネル特性を異なるものとすることができる。一般に、チャネルは、2台のノードが各々と通信する媒体の、少なくとも一部分の特性として定義されることができる。
【0067】
ここで図2を参照すると、ソースコーディング105aを実施するためのシステム200aの一例を示すブロック図が記載されている。システム200aは、データ配列(詳細は後述するように、例えば、イメージ、フレームまたは残差)を、それ自体がデータ配列であるブロックと呼ばれる複数のサブパーツに分割または区分化する分割ユニット210を含む。いくつかの実施形態において、そのブロックは正方形の画素配列であり、各々の画素値を、さまざまな形式のいずれかでコード化することができる。システム200aは、ある領域から他の領域にデータを変換する変換ユニット215も含む。システム200aは、イメージまたは変換係数を量子化番号に変換する量子化ユニット220を含む。いくつかの実施形態において、システム200aは、量子化番号をビットストリームに変換するビットストリーム変換ユニット225を含む。
【0068】
データ配列(総じて205)は、異なるタイプおよび形式であってもよい。場合によって、データ配列205はイメージ205a(例えば、個別のイメージもしくはビデオフレームイメージ)である。場合によって、データ配列205は、ビデオフレームに関する予測残差205bである。場合によって、データ配列205のいくつかはビデオフレームイメージであり、他のデータ配列205は予測残差である。場合によって、データ配列205は、ビデオフレームイメージの一部を直接的にコード化する部分と、ビデオフレームイメージの一部の予測残差をコード化する他の部分と、を含む。そのような場合、ビデオフレームイメージの一部が直接コード化されるか、もしくは予測残差としてコード化されるか、の決定は、いずれが変換ユニット215によってより効率的に圧縮され得るかによって決定されるが、さらに詳しくは後述する。以下に示す例において、データ配列205は2次元配列である。あるいは、類似技術を異次元の配列に用いることができる。
【0069】
データ配列205は、分割ユニット210を経てサブパーツに区分化される。分割ユニット210は、さまざまな方法でデータ配列205を区分化することができる。たとえば、分割ユニットは、データ配列205を複数の2次元配列に区分化することができる。データ配列205が3次元以上であるいくつかの実施形態において、分割ユニット210はデータ配列205を、より低次元に区分化することができる。たとえば、3次元データ配列205は、複数の2次元スライスに区分化されることができる。3次元配列は、より小さな3次元ブロックに区分化されることができる。分割ユニット210は、データを同種または異種の形態に区分化することができる。たとえば、2次元配列205(例えば、イメージ/ビデオフレーム205aまたは残差フレーム205b)の一部は、より小さな2次元ブロックに仕切られることができて、一方、2次元配列205の他の部分は、前者より大きな2次元ブロックに仕切られることができる。いくつかの実施形態において、分割ユニットは各々の区分に対応する1つ以上の識別パラメータを導入し、その区分から元のデータ配列を再構築することができる。いくつかの実施形態において、分割ユニット210はデータ配列205を任意のサブパーツに区分化せず、データ配列205を見送ることができる。分割ユニット210がデータ配列をサブパーツに区分化するか否かは、1つ以上のパラメータまたはデータ配列の性質によって制御されうる。
【0070】
変換ユニット215は、配列(例えば区分化されたブロックまたはデータ配列205全体)を、ある領域から他の領域へと変換する。たとえば、変換ユニット215は、空間領域から周波数領域にデータを変換する。データ変換は、変換ユニット215によって計算され、例えば、離散コサイン変換(DCT)、離散正弦変換(DST)、離散ウェーブレット変換(DWT)、フラクタル圧縮、および離散フーリエ変換(DFT)の1つ以上を含むことができる。概して、変換ユニット215は、受信した配列の画素よりも小さい係数を用いて配列を表示することを容易にする。変換ユニット215は、1次元変換、2次元変換、もしくはより高い次元の変換、の任意の組合せを計算することができる。
【0071】
変換ユニット215を用いて、異なるタイプのデータ配列を圧縮してもよい。いくつかの実施形態、例えばイメージ圧縮において、画像強度を表している画素は変換される。他の実施形態、例えばビデオ圧縮において、予測残差を表している画素は変換されることができる。予測残差の例としては、動き補償の残差(MC残差)、スケーラブルビデオコーディングにおいてしばしば用いられる分解能向上残差(RE残差)、多視点コーディングにおいてしばしば用いられる視差補償残差(DC残差)、およびH.264/AVCにおいてしばしば用いられるイントラ予測の残差が挙げられる。概して、イメージの圧縮に使用する変換は、予測残差の圧縮に用いてもよい。たとえば、離散コサイン変換(DCT)は、イメージおよびMC残差を圧縮するために用いてもよい。かかる変換の他の例は、離散ウェーブレット変換(DWT)であり、それは残差フレームと同様にイメージを圧縮するために用いてもよい。
【0072】
変換ユニット215により実行される変換の選択は、データ配列205の特性によって決定することができる。たとえば、データ配列が1次マルコフ信号に分類され得るイメージであるとき、DCTはかかる種類の信号に対して統計学的に最適な変換であるため、選択される変換をDCTとすることができる。場合によっては、予測残差は異なる特性をイメージから得ることができる。そのような場合、予測残差の代表的な特性を用いて、適切な変換を決定づけることができる。予測残差は予めコード化された画像強度から、画像強度を予測する際の予測誤差を表示する。いくつかのタイプのデータ、例えばMC残差に関して、なめらかに、かつゆっくりと動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。また、いくつかの実施形態でも同様に、実際のオブジェクトは、例えば回転のような並進運動以外の運動も有するのに対し、動き補償予測は並進運動のみを把握する。そのような場合、オブジェクトの形状はフレームごとに僅かに変化する傾向にありうる。その結果、オブジェクト境界周辺の予測はより多くの誤差を有しうる。
【0073】
RE残差に関して、なめらかな領域の予測誤差は、詳細なテクスチャ領域または端部周辺における予測誤差にくらべて非常に小さい。この種の予測残差に関して、大きな予測誤差は、詳細なテクスチャ領域または端部に沿った領域に集中しうる。
【0074】
上述した状況において、端部に沿う1次元ストラクチャは、残差のいくつかの領域に生じることができる。たとえば、隣接する区分内においては、端部に沿った画素強度を除いて、多くの画素強度はゼロに近くてもよい。そのような場合、スクウェア・サポートを有する基底関数を用いた2次元変換は、最適な変換ではない可能性がある。予測残差の1次元ストラクチャに従うサポートを有する基底関数を用いた変換が、かかるケースにとってより適当とすることができる。たとえば、1次元方向のDWT、または1次元方向のDCT、上述の特性を有する予測残差と共に用いることができる。
【0075】
いくつかの実施形態において、2次元(2D)変換は、分離可能な1次元(1D)の変換として実行することができる。たとえば、2次元DCTまたは2次元離散ウェーブレット変換(DWT)は、2つの1次元変換を垂直方向および水平方向にカスケードすることによって、分離可能な変換として実行することができる。場合によっては、かかる1次元変換は、他の方向よりも水平方向または垂直方向の特性に有利に働く。いくつかの実施形態において、変換を用いて画像強度の変化量をより小さい方向へとフィルタリングを実行することで、局所的な異方特性に適応することができる。これは、たとえば、抽出サンプル・グリットの指向性を有する部分格子、およびウェーブレット変換の指向性を有する上昇推進における、フィルタリングおよびサブサンプリングを含む多種多様な方法によって成果を上げることができる。指向性変換は、1次元もしくは2次元DCT、DWTとすることができ、または他の変換がこのような指向性変換に用いられてもよい。
【0076】
変換ユニット215は、算出された変換係数の1つ以上を選択または放棄するために、ハードウェアまたはソフトウェアをさらに含むことができる。たとえば、変換ユニットは後続のプロセスのために、算出された変換係数のうち、ゼロ以外の係数のみを選択することができる。いくつかの実施形態において、閾値未満の係数が選択されないように、算出された変換係数を閾値に基づいて選択することができる。係数は、係数の値、算出された変換配列における係数の位置、係数に含まれる情報内容、および他のアプリケーションまたはユーザに特有の基準のうち、1つ以上に基づいても選択されてよい。いくつかの実施形態において、変換ユニットは、入力信号を変換せずに通過させることができる。たとえば、変換ユニット215がデルタ関数のインパルス応答を伴うデジタルフィルタを含む場合、入力信号は略変化させられずにユニット215を通過する。変換ユニット215は、所定のブロックごとに選択的に変換を実行するか、あるいは、変換を与えることなく信号を通過させるように構成可能である。
【0077】
変換ユニット215によって選択される変換は、データ配列205の性質によって決定することができる。たとえば、データ配列が1次マルコフ信号として分類され得るとき、DCTがこの種類の信号に対して統計学的に最適な変換であることから、選択される変換をDCTとすることができる。
【0078】
いくつかの実施形態において、量子化ユニット220は、値の範囲を示すために代表値を1つ用いてもよい。たとえば、変換係数の値は連続する性質であってもよく、量子化ユニット220は離散値の限定された数を用いて、かかる係数を表すことができる。量子化ユニット220は、演算(例えば四捨五入、切り上げ整数化、切捨て整数化、剰余および閾値)を実行することができる。量子化ユニット220は、多種多様な方法で変換係数を表すことができる。たとえば、いくつかの実施形態で、量子化ユニット220は、変換係数を次に大きい整数または次に小さい整数として表す。他の実施形態では、量子化ユニット220は、小数第2位までの係数を表すことができる。量子化ユニット220は、種々の係数を量子化するために、種々の方法を用いることができる。たとえば、係数の1次元配列〔58 −51 −15 −12〕を考慮すると、対応する量子化配列は〔24 40 51 61〕と定義され、その量子化された値は〔2 −1 0 0〕となる。これは、量子化配列の値によって係数配列の各々の要素を割り算し、次に、その値を直近の整数に四捨五入する演算である。他の実施形態では、各々の係数が略同一の方法で量子化される際に、均質量子化が用いられてよい。
【0079】
ビットストリーム変換ユニット225は、量子化番号をビットストリームに変換する。概して、量子化番号は2進数表示に変換される。ビットを、さまざまな方法(例えば電圧または電流の異なるレベルもしくは信号の有無)によって、物理的に表すことができる。ビットストリーム変換ユニットから出力されるビットストリームは、入力データ配列205のソースコード形式を表すことができる。いくつかの実施形態において、これらのビットストリームが、チャネルコーディングユニット110aへの入力として用いられる。ビットストリーム変換ユニット225は、例えばハフマンコーディング、可変長符号化、または他の暗号コード体系のようなコード体系を実施するためのハードウェアおよび/またはソフトウェアを含むことができる。
【0080】
分割ユニット210、変換ユニット215、量子化ユニット220およびビットストリーム変換ユニット225は、種々の特定のハードウェアモジュールのいずれかを用いて実行することができる。たとえば、これらのユニットのいずれかは、マイクロプロセッサ、マイクロコントローラ、およびデジタル信号処理装置(DSP)のうち1つ以上を用いて実行することができる。実施形態は、ハードウェア回路(例えばサンプルアンドホールド回路、加算器、乗算器、シフトレジスタ、論理ゲート、トランジスタ、フリップフロップ、スイッチ、コンデンサ、レジスタ、インダクタ、バス、キャッシュメモリ、タイミング回路およびダイオード)を含むことができる。1つ以上のプログラムプロセッサ上で動く種々のアルゴリズムおよび/またはソフトウェアを、変換、量子化、区分化、およびビットストリーム化を演算する際に用いることができる。
【0081】
ここで、図3を参照すると、ビデオフレームのソースをコード化するためのシステム200bの、他の例が図示されている。いくつかの実施形態において、システム200bは、現在フレーム302aおよび予測された現在フレーム302bから、予測残差フレーム205bを得る。予測された現在フレーム302bは、1つ以上前のコード化済みフレーム301から得ることができる。一実施形態では、予測された現在フレーム302bは、単一のコード化済みフレームから得られる。他の実施形態において、予測された現在フレーム302bは、複数のコード化済みフレームから得られる。いくつかの実施形態において、1つ以上後のフレーム(フレームの提示時間に関して)は、予測された現在フレーム302bを得るためにも用いてもよい。換言すれば、前後の予測の任意の組合せを用いて、予測された現在フレームを得ることができる。
【0082】
いくつかの実施形態において、予測された現在フレーム302bは、少なくとも1つのコード化済みフレーム301に関する変換係数を用いて得られる。他の実施形態では、予測された現在フレーム302bは、少なくとも1つのコード化済みフレーム301の強度値を用いて得られる。コード化済みフレーム301は、バッファから読み出されるか、もしくは関連する変換係数から再構築することができる。いくつかの実施形態において、予測された現在フレーム302bの取得には、線形予測、非線形予測、および補間法といった演算を含むことができ、さらに動きベクトルを推定して、それを用いることを含んでもよい。いくつかの実施形態において、予測された現在フレーム302bは、ビデオストリーム内の隣接したフレーム間の、既存の相互関係を用いて算出される。
【0083】
予測された現在フレーム302bは、現在フレーム302aと比較され、予測残差フレーム205bを得ることができる。いくつかの実施形態において、現在フレーム302aおよび予測された現在フレーム302bの対応する画素の画像強度値の残差は、予測残差フレーム205bを得るために算出される。換言すれば、予測残差フレーム205bは、現在フレーム302aと予測された現在フレーム302bとの間の差分イメージを表す。代替案として、現在フレーム302aと予測された現在フレーム302bとの間の他の演算が、予測残差フレーム205bを得るために実行されてよい。たとえば、いくつかの実施形態で、現在フレーム302aおよび予測された現在フレーム302bの変換係数間の差分は、予測残差フレーム205bを得るために算出される。予測残差フレームは、図2に記載した分割ユニット210、変換ユニット215、量子化ユニット220およびビットストリーム変換ユニット225の1つ以上を通過することができる。
【0084】
図4は、動き補償の予測残差フレームを得る一例を示す。この例では、動き補償残差205bを得るために、現在フレーム302aおよび予測された現在フレーム302bとともに、差分演算子405が用いられる。上述の通り、他の演算子または演算子の組合せを用いて、動き補償残差205bを算出することができる。
【0085】
図5を参照すると、分解能向上の予測残差フレームを得る一例が図示されている。この例では、低質・高解像度フレーム302bは、コード化済みの低解像度フレーム301から生成される。フレーム301からフレーム302bを生成することは、アップサンプリングおよび任意の補間技術(例えば直線補間、最近接内挿法およびバイキュービック補間)を用いて実行することができる。いくつかの実施形態において、フレーム301から予測されたフレーム302bが生成される間に、例えばアンチエイリアス・フィルタリングのようなフィルタリング技術を用いることができる。図4に関して述べたように、分解能向上の予測残差205bを得るために、低質・高解像度フレーム302bおよび現在フレーム302aは互いに比較される。図5には差分演算子405が示されているが、分解能向上の予測残差205bを得るために他の演算子も用いてよい。
【0086】
ここで、図6を参照すると、フローチャート600は、データ圧縮および伝送システム内の変換ユニット215によって実行される演算順序の一例を表している。その演算は、フレームまたは予測残差を表すデータ配列の、複数のブロックの各々において実行されることができる。その演算は、所定のブロックをコード化するよう1つの係数セットを選択するが、その選択は、複数の係数セットのグループを比較して、どの係数セットが最大圧縮のブロック(例えば、圧縮効率の所定の測定に従って)を表すのかを判定することによって実行される。この例において、この演算は、データ配列のブロックを受信するステップ610を含む。この演算は、変換係数セットの複数の候補を算出するステップ620も含む。種々の係数セットは、予め決定された変換グループから種々の変換を用いて算出されるが、このことが、用いられる所定のブロックを最大圧縮する変換を可能とする。たとえば、第1の係数セットは、複数の1次元変換に基づいて算出されることができ、複数の1次元変換の各々はブロックの異なる部分を計算し、複数の1次元変換が全体でブロック全体をカバーする。1次元変換は、特定の方向に沿って整列配置することができる。他の係数セットは、異なる方向(詳細については後述するように、例えば、角度範囲に均一に当てられた方向)に沿って整列配置した複数の1次元変換に基づいて計算されることができる。かかる1次元変換は、1次元特徴を含むフレームまたは予測残差の特徴に最大圧縮を呈することができる。他の係数セットは、ブロック全体において実行される2次元変換に基づいて算出されることができる。かかる2次元変換は、2次元特徴を含むフレームまたは予測残差の特徴に、最大圧縮を呈することができる。この演算は、また、最大圧縮を提供する変換係数セットの候補グループから変換係数セットを選択するステップ640と、選択した係数をコード化するステップ650とを含む。
【0087】
演算は、所定の変換グループから、(例えば、処理の遅延を減少させるために)任意の変換の除去を試みるか否かを決定するステップ615を選択的に含むことができる。場合によっては、所定の変換グループが大きい場合、所定のブロックに高圧縮を与えそうにない幾つかの変換を除去することが好ましいであろう。そのようにして、さもなければ、これらの変換に基づく変換係数候補の算出に必要な処理時間を、回避することができる。所定の変換グループから変換を除去すると判断された場合、その演算は、もしあるとすれば、どの演算を除去するのかを決定するステップ630を含み、このステップ630は、所定のブロックの予測特性およびこれらの特性を有するブロックに、どのように所定の変換が実行されるのかに基づいて、任意の係数セット候補の算出を考慮して行われる。除去する変換の決定に要する時間が、対応する変換係数の算出に要したであろう時間より短くなければならない。
【0088】
いくつかの実施形態において、データ配列のブロックを受信するステップ610は、情報ソース101からデータ配列を受信するステップを含むことができる。データ配列は、イメージ、ビデオフレーム、または予測残差フレームを含む任意の形式およびタイプであってもよい。いくつかの実施形態において、データ配列は、図2および図3に記載されているデータ配列205に略同一であってもよい。受信ステップ610は、図2において詳述したように、データ配列をサブパーツに区分化するステップをさらに含むことができる。
【0089】
演算は、指向性変換をデータ配列に用いるか否かを決定するために、受信したデータ配列を検査するステップ615を選択的に含むことができる。たとえば、データ配列が著しい異方性の特徴を有するイメージまたは予測残差である場合、指向性変換を用いるという決定をすることができる。一方、イメージ、ビデオフレーム、または予測残差が滑らかで、および/または指向端がない場合、指向性変換は必要でないと決定することができる。いくつかの実施形態において、計算装置を経由して実行される1つ以上のアルゴリズムを用いることで、その決定を部分的に自動化することができる。かかる自動化した手順は、イメージ、ビデオフレーム、または予測残差の特性を含むことができる。
【0090】
イメージ、ビデオフレーム、および予測残差の特性は、所定のイメージまたはフレームに対して指向性変換を用いるか否かを決定する際の補助となりうる。いくつかの実施形態において、かかる特性は、演算される変換の性質、指向性、またはタイプの決定を補助する。後述の説明は、特に予測残差に関するものである。しかしながらこの説明はまた、ビデオフレームおよびイメージにも応用することができる。
【0091】
場合によって、変換または表示を予測残差の局所的な異方性の特徴に適応させることは、圧縮性能を高める。たとえば、これは、従来から用いられている分離可能な1次マルコフモデルの一般化バージョンを用いて、MC残差の自己共分散の特性を経由して分析されている。分離可能モデルおよび一般化モデルは、それぞれ以下の(1)および(2)にて与えられる。
【0092】
【数1】
【数2】
【0093】
一般化モデルは、分離可能モデルを回転させたバージョンであり、θは回転量を表す。回転量をゼロに設定すると、一般化モデルは分離可能モデルとなる。この例において、分離可能モデルのパラメータρ1およびρ2、ならびに一般化モデルのパラメータρ1、ρ2およびθは、イメージおよびMC残差の8×8画素のブロックから算出される。バイアス推定器は、ブロックの自己共分散を推定して、自己共分散評価と(1)および(2)のモデルとの間における平均二乗誤差を最小化するパラメータρ1、ρ2、およびθを求めるために用いられる。図7Aおよび図7Bは、ρ1およびρ2の散布点を示しているが、それらは、分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのイメージから推定されている。図7Cおよび図7Dは、同一パラメータの散布点を示しているが、それらは分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのMC残差から推定されている。「モバイル」と称されるビデオシーケンスはオブジェクト境界において、動き補償予測を不成功に導く多種多様な可動オブジェクトを有しているため、これらの例に用いられる。
【0094】
たとえば、一般化モデルのプロット(図7B)において、分離可能モデルのプロット(図7A)と比較すると、ρ1=ρ2となるプロットラインに沿った領域はデータポイントが存在する割合が低い。一方、分離可能モデルにおいて、ρ1=0.8、およびρ2=0.8のラインを超えるデータポイントは殆どない。これらの観察から、一般化されたケースでは、ρ1=ρ2となるラインの下に広がるデータポイントは、ρ1軸に沿って右方向へ移動し、ρ1=ρ2となるラインの上に広がるデータポイントはρ2軸に沿って上方へと移動したことが見て取れる。場合によっては、付加パラメータθをモデルに与えることで、結果的に、高次の相関係数ρ1またはρ2の可能性が高まる。場合によっては、パラメータθそれ自体を調整することで、ρ1またはρ2のどちらか一方が、分離可能モデルに比べてより規則的偏差に沿って位置する。
【0095】
引き続きこの例において、MC残差の分離可能な自己共分散モデルのプロット(図7C)において、そのデータポイントがρ2=k/ρ1カーブと軸との間の領域を均一に満たしているように見えると観察され得る。MC残差の一般化した自己共分散モデルのプロット(図7D)において、データポイントはそのカーブの尾部の方へ集中するようであり、2軸に集中する半ディスク形状を形成する。場合によっては、領域内のデータポイントがより集中することはデータのより良好な予測性を意味し、ひいては、方程式(2)において用いられるモデルによって、データの信頼性の高い特性の提供が可能であることを示すことができる。従って、場合によっては、付加パラメータθを有する特性は、データ配列のより良好な圧縮に導くことができる。
【0096】
さらに、図7Bおよび図7Dに関して、局所的な異方性のイメージの特徴がMC残差に及ぼす効果についても図示されている。この例では、イメージ(図7B)の特性は、ρ1軸およびρ2軸に対する2つのディスク接線におおよそ集中するデータポイントを有する。一方、この例におけるMC残差(図7D)の特性は、2軸上で2つの半ディスク形状に集中するデータポイントを有するようである。換言すれば、MC残差(図7D)のケースにおいては、データポイントは軸に近づく。場合によっては、特性(図7B)における任意のデータポイント(ρ1、ρ2)を考えると、より小さい共分散因子がMC残差の特性(図7D)においてさらに小さくなることを意味することができる。いくつかの実施形態において、これは、局所異方性のイメージ特徴がMC残差に影響を及ぼす方法、またはMC残差に伝播する方法である。これは、イメージとMC残差との間の、統計的特性の主な相違点を構成しうる。そのような場合、別々の方向の適応変換を、画像およびMC残差に用いることができる。
【0097】
いくつかの実施形態において、第1候補の係数セットは受信したデータ配列ブロックの異なる部分で、複数の1次元変換を実行することによって算出される。1次元変換が実行されるブロックの異なる部分は、後で詳しく述べるように、全てまたは大部分のブロックをカバーするように配置されることができる。そのような場合、第1係数セットは、各々の1次元変換に対応する係数を含む。各々の1次元変換は、離散コサイン変換(DCT)、離散正弦変換(DST)、離散ウェーブレット変換(DWT)、および離散的フーリエ変換(DFT)から選択されることができる。いくつかの実施態様において、各々の1次元変換に使用する変換は同じである。他の実施形態では、1次元変換のうちの少なくとも1つは、残りの1次元変換とは異なる変換を用いて計算される。
【0098】
候補の係数セットを算出する際に用いられる、所定の変換グループから1つ以上の変換を除去する一例において、変換を内包または除去するために、1次元変換の種々のセットを変換と連動した方向に基づいて選択することができる。所定のデータ配列においてより優れた性能が期待できる1組の1次元変換の方向は、データ配列の点検またはデータ配列上のいくつかの演算を経て決定されることができる。たとえば、図7Dの一般化モデルから得られるMC残差のρ1対ρ2の散布点は、しばしば、2つの相関係数(ρ1、ρ2)のうちどちらか一方が、他方より非常に大きいことを示す。いくつかの実施形態において、より大きい相関係数を有する方向に従って、データの相関性が失われていく。他の実施形態では、より小さい相関係数を有する方向に従っても、データの相関性が失われていく。いくつかの実施形態において、方向の選択は、受信したデータ配列がイメージであるか、もしくは予測残差であるかに依存してもよい。あるいは、データ配列のいかなる分析も不必要であり、角度領域(180°の範囲にわたる)へ均一に展開される多数の方向への係数の全てが算出されることができる。そのような場合、最高エネルギーの圧縮を示している方向が、選択方向として選ばれることができる。
【0099】
ここで図8を参照すると、1つのブロック(この例では8×8ブロック)において、1次元変換が所定のパターンに配置された種々の1次元の画素配列で計算される一例が示されている。この例では、(変換パターン800内の)1次元の画素配列810は、8×8ブロック内の左端の8つの画素から成り1次元変換が計算される配列を表す。いくつかの実施形態において、画素配列が略一方向への略線形な経路を形成するように(例えば、パターン内の1次元配列の各々が略同じ形状を有するが、異なる長さを有してブロック上の経路をたどるように)、画素配列は選択される。この方向は、図7について述べたように相関係数の大きい方向とすることができる。
【0100】
この例において、およそ180°の方向をカバーする16の変換パターンは、各々のパターンに対して1次元変換のグループを計算するために定められた。変換の圧縮量に影響を及ぼすのは、各々の1次元変換が計算される画素配列を横断する経路の平均角度であって、計算の始点および終点(図8に矢印で表されている)の位置ではない。よって、0°〜180°と180°〜360°の両方をカバーする方向を含む必要はない。さらにまた、0°および180°の両方に対応する変換パターンを含む必要はない。それゆえ、変換パターン800が0°の方向を表す場合、変換パターン840はちょうど180°以外の方向を表す。この例では、およそ0°から180°の範囲で均一配置された方向に沿った、ほぼ線形経路上の変換が含まれているが、他の例では、他方向もしくは非線形形状を有する経路に沿った変換も定めることができる。いくつかの実施形態において、指向性変換の決定は、全体としての配列が1つの方位または方向を表すように、受信したブロック内で1次元の画素配列を選択することを含むことができる。所定の方向にあるいくつかの配列は、その配列内に同一または異なる数の画素を有する。たとえば、変換パターン820における全ての1次元配列は同数の画素を含むが、変換パターン830における配列は異なる数の画素を有する。所定の変換パターンの画素配列は、オーバーラップしてもよいし、オーバーラップしなくてもよい。換言すれば、同一の変換パターン内で2つの異なる1次元変換を計算する際に、所定の画素が横断されてもよい。画素配列はブロック内の大部分の画素を含むことができるが、いくつかの変換パターンにおいては、1つ以上の画素が除外されてもよい。いくつかの変換パターンは、所定の画素が隣接する2つのブロックの両方の1次元配列に含まれるように、所定のブロックを越えて延びてもよい。
【0101】
所定の変換パターンの1次元変換から生じる係数は、後続の処理のための係数ストリームに配列される。配列決定の一部として、係数は、種々の変換に対応する1次元変換、および所定の係数と関連した空間周波数に対応する他次元変換から得られる2次元ブロックを形成することができる。次に、係数は、この計算結果としての2次元ブロックから、走査パターンとして公知である特定の順序で読み出されることがきできる。いくつかの実施形態において、計算結果として得られる変換係数の走査パターンは、変換パターンにおける変換の方位または方向に依存する。概して、相対的に低い周波数係数が高い周波数係数の前に走査されるように、および/または係数が、計算結果のブロック内に隣接して格納されている第2係数の前もしくは後に読み出されるように、かかる走査パターンを定めることができる。図9は、計算結果データの8×8ブロックに関する、走査パターンの例をいくつか表している。他の実施形態では、計算結果のブロックサイズ、データの予想される性質、およびデータ計算に用いた変換の方位または方向に基づいて、走査パターンを定めることができる。
【0102】
再度、図6を参照すると、いくつかの実施形態において、第1係数セットは、ステップ620にて、方向離散ウェーブレット変換(DWT)を用いて計算することができる。かかる方向離散ウェーブレット変換は、1つ以上のバンドレット(bandelet)、ディレクションレット(directionlet)、またはリフトベースのウェーブレット変換の使用を含むことができる。一例として、リフトベースの方向ウェーブレット変換について後述する。
【0103】
リフトとは、リフト・ステップと呼ばれる一連のフィルタリング・ステップを用いたウェーブレット変換を設計するための手段である。ここで図10Aを参照すると、ブロック図は、リフトベースのウェーブレット変換システムにおける分析側を表している。図10Aに示されるように、信号は偶数サンプルと奇数サンプルに最初に分割され、奇数サンプルは偶数サンプルから予測される。次に、その予測における残差を用いて、偶数サンプルが更新される。任意数の予測および更新のペアを直列接続し、変換の最後の低域信号および高域信号を得ることができる。この例で示される方式は、予測ボックス(P1)または更新ボックス(U1)の選択方法に関わりなく逆変換が可能である。対応する逆変換は、図10Bに示される。
【0104】
予測および更新に用いるフィルタは、DWTの分析フィルタおよびDWTの合成フィルタを決定する。たとえば、後述の予測フィルタおよび更新フィルタは、周知の9/7の双直交ウェーブレットフィルタをもたらす。予測フィルタおよび更新フィルタは、他のウェーブレットフィルタ形式を実現するために変形することができる。この例で示されるフィルタにおいて、隣接する2つの偶数画素を平均算出およびスケーリングすることで全ての奇数サンプルを予測し、その予測における予測残差を用いて、隣接する2つの奇数画素を平均算出およびスケーリングすることで全ての偶数画素は更新される。
【0105】
【数3】
【0106】
いくつかの実施形態において、方向予測を有するリフトベースの1次元ウェーブレット変換は、垂直次元もしくは水平次元のみにおける方向リフト・ステップを適用することによって実行される。換言すれば、垂直次元に沿って変換を実行するときに、図11Aの予測オプションおよび更新オプションのいずれか1つが実行されるか、もしくは予測オプションおよび更新オプションのいずれも実行されない。予測オプションおよび更新オプションがいずれも垂直次元に沿って実行されない場合、図11Bの予測オプションおよび更新オプションのうちの1つが水平次元に沿って用いられる。図11Aのオプションのうちの1つが垂直次元に沿って実行される場合、予測オプションおよび更新オプションは水平次元に沿って実行されない。
【0107】
予測残差に関して、いくつかの実施形態では、予測残差の特性が方向1次元DWTの基底関数としばしばコヒーレントであるため、方向1次元DWTは方向2次元DWTより好適とすることができる。多くの場合、予測残差の大部分のエネルギーは、1次元構造を形成している端部およびオブジェクト境界に沿って集中する。上述のようにいくつかのケースでは、その変換の有する基底関数のサポートがこれらの1次元構造に従う変換は、予測残差のかかる領域を近似させる際に、潜在的により優れて機能可能である。しかしながら、場合によっては、その変換の有する基底関数のサポートが1つの2次元構造に従う変換は、潜在的により優れて機能可能である。
【0108】
再び図6に関して、演算は、受信データ配列から得られる少なくとも1つの第2係数セットを計算するステップ630をさらに含むことができる。いくつかの実施形態において、第2係数セットは2次元(2D)変換に基づく。たとえば、第2係数セットは2次元離散コサイン変換、2次元離散的正弦変換(DST)、2次元離散ウェーブレット変換(DWT)、および2次元離散フーリエ変換(DFT)を用いて計算されることができる。
【0109】
引き続き図6に関して、演算は、(例えば、ブロックの種々の部分における1次元変換から得られた)第1係数セットおよび(例えば、ブロック全体の2次元変換から得られた)第2係数セットを含む複数の係数セットのグループから、1つの係数セットを選択するステップ640も含む。第1係数セットを計算するための多くの変換パターンが考えられ得るため、複数の係数セットのグループは1つ以上の2次元係数セットとともに、各々の変換パターンに対する種々の1次元変換係数セット(例えば、図8に示される各々の変換パターンのための1組の係数セット)を含むことができる。代替案としては、推定されたブロックの特性を考慮して、全ての変換パターンの中から実際に変換を実行することなく、いくつかの潜在的変換パターンを除去することができる。たとえば、複数の係数セットのグループは、単一の1次元変換係数セット(適合の可能性が最高であると推定された)および単一の2次元変換係数セットを含むことができる。
【0110】
係数セットが、受信したデータ配列をコスト関数に従って最適に表すように、係数セットは選択される。たとえば、いくつかの実施形態では、受信したデータ配列の最小の不可逆圧縮を表す変換係数セットが選択されうる。他の実施形態では、最良の係数セット、または最良の係数セットを算出するための最良の変換を選択することは、1つ以上のコスト関数を伴う最適化方法を含むことができる。たとえば一実施形態において、最良の変換または各々のブロックに対する最良の係数セットは、速度歪み(RD)を最適化する方法を用いて選択される。この例では、各々の利用可能な1次元変換セットおよび各々の利用可能な2次元変換は、ブロック上で計算される。通常、方向1次元変換は、個々の1次元変換が少なくともブロックの一部をカバーし、かつ1次元変換セットがブロック全体をカバーする方法で計算される。2次元変換の場合には、単一の2次元変換がブロック全体において計算される。コスト関数は各々の変換または変換セットのために、ブロックの歪みの線形結合(ブロックの平均二乗誤差(MSE)のような測定基準を用いる)および、(量子化係数および他の関連情報の両方を量子化するために)ブロックに費やされるビット数を用いて、形成される。変換または最も小さいコスト関数を有する変換セットは、各々のブロックに対して選択される。他の実施形態では、他のいかなるコスト関数も、二乗和(SSD)、絶対差の総和(SAD)、比率画像均一性(RIU)およびルート二乗平均誤差(RMSE)の合計、といった他の測定基準とともに使われることができる。相互情報量のような測定基準に基づく情報理論は、歪みを測定するためのコスト関数において用いられてもよい。
【0111】
係数セットを選択するステップは、選択された係数セットに関係する1つ以上のパラメータを決定するステップ、または選択するステップも含む。1つ以上のパラメータは、選択された係数セットを質的におよび/または量的に識別することができる。たとえば、パラメータは、選択された係数セットまたは変換が1次元変換セットもしくは2次元変換セットに関係するか否かを示すことができる。変換タイプ、変換方向(たとえば、所定の複数の変換パターンのうちの1つ)、走査パターン、および変換が計算されるブロックもしくは画素グループのうちの1つ以上を識別するために、パラメータを用いてもよい。
【0112】
演算は、選択された係数セット、および/または選択された係数セットに関係する1つ以上のパラメータをコード化するステップをさらに含むことができる。いくつかの実施形態において、かかるコード化は、1つ以上のソースコーディングおよび1つ以上のチャネルコーディングを含む。たとえば一実施形態では、各々のブロックのために選択された変換または変換セットは、可変長コード(VLC)を用いてコード化される。別々のコードワード長を用いて、1次元変換係数および2次元変換係数を表すことができる。どの変換もしくは変換セットが用いられたかを示すコード化されたパラメータの一例において、シングルビットのコードワードは2次元DCTが用いられたことを意味し、5ビットのコードワードは複数の1次元変換のうちどの変換が用いられたかを表す。いくつかの実施形態において、ハフマンコードをコード化のために用いることができる。他の実施形態において、実施形態を単純化するためにコード体系を選択することができ、および/または一般的に変換に要する平均時間の最適ハフマンコードを概算することができる。いくつかの実施形態において、変換係数および関連するパラメータは略同一のコード体系を用いてコード化される。他の実施形態では、変換係数に用いるコード体系および関連したパラメータに用いるコード体系は各々で異なる。他の方法およびコード体系を、また、変換および/または関連したパラメータをコード化するために用いてもよい。
【0113】
上述の通信システム及びその方法は主に、通信システムにおけるトランスミッタすなわち送信機側に関するものである。対応するレシーバデバイスは、本願明細書に記載のシステムおよび方法に従って送信された情報を、デコードおよびディスプレイするように構成することができる。概して、かかるレシーバデバイスは、レシーバで実行される演算の逆演算を行う機能ユニットを有する。所定のブロックで実行されるべき複数の可能な逆演算(例えば、複数の可能な逆変換)の選択は、与えられた所定のブロックとともにコード化されるパラメータに基づいて決定される。たとえば、レシーバは、実行され得る複数の変換グループを識別している情報、および1次元変換を実行し得る複数の変更パターンを識別している情報を記憶する。適当な変換および/または変換パターンは、コード化されたパラメータに基づいて選択される。たとえば、1ビット・パラメータは、所定のブロックをコード化するために1次元変換または2次元変換のいずれが用いられたかを示すことができる。そして、1次元変換が用いられた場合、4ビット・パラメータは16の変換パターンの内からどの変換パターンが用いられたのかを示すことができる。
【0114】
後述する結果は、本願明細書において記載されている方法およびデバイスのいくつかの効果を示す。実験結果は単に図示する目的であり、いかなる意味においても制限するものと考慮すべきではない。
【0115】
一実験は、2次元DCTと16セットの1次元DTCによる圧縮性能を、2次元DTCのみによる圧縮性能と比較するために行われた。これらの実験において、1秒あたり30フレームのQCIF解像度を有するビデオシーケンスを用いた。いくつかの重要なエンコーダ・パラメータは、以下の通りである。第1フレームはIフレームとしてコード化され、そして残りのフレームは全てPフレームとしてコード化される。適応ブロックサイズ(16×16、16×8、8×16、8×8)を有する、4分の1画素解像度の全探索動き推定が用いられる。エントロピー・コード化は、コンテクスト適応可変長符号化(CAVLC)によって実行される。
【0116】
実験結果は、後述する量子化パラメータ(24、28、32、36)を用いたBjontegaard Delta(BD)ビットレートの測定基準によって示される。BDビットレートの測定基準は、従来の変換である2次元DCTを使用することと比較して提案された変換(2次元DCTと16セットの1次元DCT)によって、コーデックのビットレート削減の平均(パーセンテージの観点から)を示す。図13Aおよび13Bは、従来の方法およびシステムを用いる場合と比較して、本願明細書に記載の方法およびシステムが用いられる場合に得られるビットレート削減を示している。図13Aは、各々のブロックに選択された変換を示す付加情報(またはサイド情報)が考慮された場合の、ビットレート削減のパーセンテージを表している。図13Bは、付加情報が考慮されない場合の、ビットレート削減のパーセンテージを表している。これらの実験結果例に示されるように、QCIF解像度を有するビデオシーケンスにおいて、最大25.8%(平均およそ12%)のビットレート削減が達成される。サイド情報または付加的な情報ビットが考慮されない場合、最終的に達成可能なビットレート削減は40.3%(平均およそ21.7%)である。
【0117】
さらに、1次元ウェーブレット変換および2次元ウェーブレット変換を用いた実施形態例が、本願明細書に記載の方法およびシステムの効果を例示する。これらの実施形態では、合計10のCIF解像度のビデオシーケンスから得られる、予測残差フレームを用いた。各々のシーケンスから特定のフレームを用いて、その動き補償残差(8×8画素ブロックおよび4分の1画素の動き推定を伴う)およびその分解能増大残差(H.264/AVCの参照ソフトウェアにおける方法を用いたQCIF解像度から補間された)を計算した。具体的には、合計20(=10×2)の予測残差フレームが、後述する各々の変換によって圧縮された。2次元の分離可能DWT(2D‐sep‐DWT)、2次元方向DWT(2D‐dir‐DWT)、ならびに1次元方向DWTおよび2次元の分離可能DWT(1D‐dir‐DWT+2D‐sep‐DWT)。図11Aおよび図11Bに示される予測オプションが用いられた。最高の変換(すなわち予測オプション)は、速度歪みの最適化を有するローカル領域(8×8画素ブロック)において選択された。実験に用いられたリフト・フィルタは、9/7 の双直交ウェーブレットフィルタの1つである。
【0118】
圧縮性能は閾値処理の後、ピーク信号対ノイズ比(PSNR)およびゼロ以外の変換係数(NONTC)によって評価された。この例では、エントロピー・コード化が実行されなかったので、ビットレートは用いられなかった。各々のローカル領域において、選択された変換を送信するために必要な付加情報もまた、考慮されなかった。2D‐dir‐DWTが、各々のブロックに対する81(9×9)の変換うち1つの変換を必要とする一方で、1D‐dir‐DWT+2D‐sep‐DWTは、各々のブロックに対する20(=2×9+1+1)の変換のうち1つの変換を必要とする。しかしながら、2D‐sep‐DWTは、付加情報の伝達を必要としなくてもよい。概して、付加情報によるビットレートの増加は、方向変換を用いることで達成される利得に勝らない。異なる圧縮レートでの比較結果を要約するために、Bjontegaard Delta係数(BD係数)およびBjontegaard Delta PSNR(BD-PSNR)測定基準が用いられた。これらの測定基準は、それぞれ、係数削減の平均数およびPSNR‐NONTCの2本のカーブの間におけるPSNRの平均的な改善を測定する。各々のカーブは、4つのPSNR‐NONTCデータポイントから形成されたが、そのデータポイントは30dB周辺から45dBまでの範囲のさまざまなPSNRレベルを有する。比較のために、2D‐sep‐DWTが形成するカーブは、2本のカーブのうちの1本であるとみなされた。もう1本のカーブは、2D‐sep‐DWTと比較される変換の組み合わせによって形成される。
【0119】
図12Aおよび12Bは、実験結果を要約している。図12Aは、MC残差およびRE残差について、2D‐sep‐DWTのBD変数削減を上回る、2D‐dir‐DWTのBD変数削減を示している。図12Bは、MC残差およびRE残差について、2D‐sep‐DWTのBD変数削減を上回る、1D‐dir‐DWT+2D‐sep‐DWTのBD変数削減を示している。
【0120】
図12Aおよび図12Bは、検討された種々のビデオファイルに関して、2D‐sep‐DWTと一体化した1D‐dir‐DWTは、単独の2D‐dir‐DWTよりも、予測残差の圧縮を非常に優れて実行することを表している。MC残差に関するこれらの例において、MC残差に対して、2D‐dir‐DWTは2D‐sep‐DWTより平均して5%少ない係数を必要とし、そして、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合せは、2D‐sep‐DWTより21%少ない係数を必要とする。RE残差に対しては、2D‐dir‐DWTが用いられると平均して2%、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合わせが用いられると平均して15%の削減となる。
【0121】
これらの例において、MC残差に対して、2D‐dir‐DWTは2D‐sep‐DWTのPSNRを平均で0.10dB向上させ、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合わせは2D‐sep‐DWTのPSNRを平均で0.33dB向上させる。RE残差に対しては、2D‐sep‐DWTを用いると、PSNRは平均して0.05dB向上し、そして1D‐dir‐DWTおよび2D‐sep‐DWTの組み合せを用いると、PSNRは0.53dB向上する。
【0122】
これらの例は、2D‐DCTを16セットの1D‐DCTと一緒に用いると、2D‐DCTを単独で用いるときよりも、動き補償の残差のような予測残差の圧縮をより優れて実行できることを示している。同様に、それらは2次元の分離可能なウェーブレット変換に加えて1次元の方向ウェーブレット変換を用いると、2次元の方向ウェーブレット変換だけ、または2次元の分離可能なウェーブレット変換だけを用いるより、予測残余の圧縮により優れた実行を行うことができることを示している。
【0123】
上述の圧縮技術は、実行ソフトウェアを用いてコンピュータシステム上で実施することができる。例えば、ソフトウェアは、1つ以上のプログラムされたもしくはプログラム可能なコンピュータシステム(例えば、デスクトップ、分散型クライアント/サーバ・コンピュータシステムなど)上で実行するための1つ以上のコンピュータプログラムにおける処理を決める。その各々のコンピュータシステムは、1つ以上のプロセッサ、1つ以上のデータ記憶システム(例えば、揮発性メモリ、不揮発性メモリ、および/または記憶素子を含む)、1つ以上の入力デバイス(例えば、キーボードおよびマウス)またはポート、および1つ以上の出力デバイス(例えば、モニタ)またはポートを含む。ソフトウェアは、より大きなプログラムの1つ以上のモジュールを形成することができる。
【0124】
そのソフトウェアは、汎用または特殊目的のプログラム制御できるコンピュータで読み出し可能な、コンピュータ可読の記憶メディア(例えばCD‐ROM)で提供されていてもよいし、またはネットワークのような通信メディア(例えば、伝播信号にコード化された通信メディア)を通じてソフトウェアが実行されるコンピュータへと伝送されてもよい。各々のかかるコンピュータプログラムは、汎用コンピュータもしくは特殊目的をプログラム制御できるコンピュータで読み出し可能な記憶メディア(例えば、固体メモリもしくはメディア、または磁気もしくは光学メディア)に好適に保存またはダウンロードされ、記憶メディアがコンピュータシステムによって読み出される際、ソフトウェア処理を実行するようにコンピュータシステムを構成および動作させる。
【0125】
他の実施形態も、特許請求の範囲に含まれるものとする。
【技術分野】
【0001】
本発明は、視覚データを圧縮するための変換の選択に関するものである。
【背景技術】
【0002】
イメージおよびビデオのような未加工の視覚データは、概して、それらを表示する際に多くのビット数を必要とするため、視覚データを圧縮することは重要である。視覚データを圧縮することにより、視覚データの格納および伝送をより少ないビット数で実現することができる。視覚データの圧縮は、視覚メディアの時間的および/または空間的冗長性を利用することにより達成される。視覚データの圧縮は、他の圧縮またはコード化されたイメージまたはビデオフレームに基づいて、イメージまたはビデオフレームを予測することを含んでもよい。予測されたフレームと実際のフレームとの差異は、予測残差として公知である。1つの圧縮方法として、予測残差または予測残差の変換は、実際のフレームに代わって格納または伝送されることが多い。
【発明の概要】
【課題を解決するための手段】
【0003】
一形態において、概して、データをコード化する方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第2の係数セットを算出するステップと、前記データ配列を表す係数セットを、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから選択するステップと、前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、を含む。
【0004】
実施形態は、後述する特徴の1つ以上を含むことができる。
【0005】
データ配列の異なる部分にて各々が計算された複数の変換は、複数の1次元変換を含む。
【0006】
第1の係数セットを算出するステップは、データ配列を複数の1次元配列に分割するステップを含む。
【0007】
複数の1次元配列はオーバーラップしていない。
【0008】
複数の1次元配列の1つ以上はオーバーラップしている。
【0009】
第1の係数セットは、複数の1次元配列の異なる配列にて計算された複数の1次元変換から得られる係数を含む。
【0010】
係数セットのグループは、第1の係数セット、第2の係数セット、および1つ以上の追加の係数セットを含む。
【0011】
1つ以上の追加の係数セットの各々は、データ配列の異なる部分にて計算された複数の変換に基づいて算出される。
【0012】
追加の係数セットの所定の1つを算出するステップは、大部分のデータ配列をカバーする複数の1次元配列にデータ配列を分割するステップと、複数の1次元配列の各々で1次元変換を計算するステップと、を含む。
【0013】
異なる追加の係数セットは、1次元配列の異なるパターンを用いて大部分のデータ配列をカバーする。
【0014】
異なるパターンは、1次元配列に対する異なる方向に対応する。
【0015】
追加の係数セットのうちの少なくとも1つは、データ配列で計算された変換に基づいて算出される。
【0016】
1つ以上のパラメータは、第1の係数セット内の係数リストを順序づけるのに用いられる複数の走査パターンの1つを識別する。
【0017】
識別された走査パターンは、係数セット候補のいずれが第1の係数セットとして選択されるのかに依存する。
【0018】
係数セット候補のいずれが最大圧縮を有するデータ配列を表すのかに基づいて、複数の係数セット候補の中から第1の係数セットが選択される。
【0019】
1つ以上のパラメータは、選択された第1または第2の係数セットの生成に用いられる少なくとも1つの変換を識別する。
【0020】
1つ以上のパラメータは、第1の係数セットが選択される場合、複数の変換が計算される1次元配列の所定のパターンを識別する。
【0021】
データ配列で計算される変換は、2次元変換を含む。
【0022】
1つ以上のパラメータは、第2の係数セットが選択される場合、第2の係数セットの算出に用いられる複数の2次元変換の1つを識別する。
【0023】
2次元変換は、2次元離散コサイン変換を含む。
【0024】
2次元変換は、2次元離散ウェーブレット変換を含む。
【0025】
複数の1次元変換のうちの少なくとも1つは、離散コサイン変換を含む。
【0026】
複数の1次元変換のうちの少なくとも1つは、離散ウェーブレット変換を含む。
【0027】
係数セットのいずれが最大圧縮を有するデータ配列を表すのかに基づいて、データ配列を表すために係数セットのグループから1つの係数セットが選択される。
【0028】
複数の係数セットグループ内の各々の係数セットは、複数の変換のグループから少なくとも1つの変換に基づいて計算される。
【0029】
多数の変換のグループは、第1の係数セットの算出が基づく複数の変換と、第2の係数セットの算出計算が基づく変換と、を含む。
【0030】
本発明の方法は、データ配列の推定される特徴に基づいて複数の係数セットのグループのいずれかを算出することを考慮して、第1の係数セットおよび第2の係数セットを算出する前に、1つ以上の変換を変換グループから除去するステップをさらに含む。
【0031】
選択した係数をコード化するステップは、所定の閾値に基づいて少なくとも1つの係数を破棄するステップを含む。
【0032】
データ配列は、ビデオフレームに関連している。
【0033】
データ配列は、ビデオフレームの画素ブロックに対応する。
【0034】
データ配列は、2つのビデオフレームから計算される残差に関連している。
【0035】
残差は、2つのビデオフレーム間の動き補償に基づく。
【0036】
残差は、2つのビデオフレーム間の解像度向上に基づく。
【0037】
残差は、1つのフレームの画素値を、他のフレームの対応する画素値から減算することによって得られる。
【0038】
他の形態において、概して、ビデオ残差のブロックをコード化する方法は、ブロックの異なる部分にて各々の変換が計算された複数の1次元変換に基づいて第1の係数セットを算出するステップと、そのブロックで計算された2次元変換に基づいて第2の係数セットを算出するステップと、そのブロックを表す係数セットを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択するステップと、選択された係数および選択された係数に関連する1つ以上のパラメータをコード化するステップと、を含む。
【0039】
他の形態において、概して、コンピュータ可読メディアは、データをコード化するためのコンピュータプログラムを格納している。コンピュータプログラムは、コンピュータシステムに、データ配列の異なる部分にて計算された複数の変換に基づいて第1の係数セットを算出させ、そのデータ配列で計算された変換に基づいて第2の係数セットを算出させ、そのデータ配列を表す係数セットを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択させ、選択された係数および選択された係数に関連する1つ以上のパラメータをコード化させるための命令を含む。
【0040】
他の形態において、概して、本発明の方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づく第1の係数セットを算出するステップと、そのデータ配列で計算された変換に基づく第2の係数セットを算出するステップと、データ配列を代表する複数の係数セットの1つを、第1の係数セットおよび第2の係数セットを含む係数セットのグループから選択するステップと、を含む方法を用いてコード化されたデータを、デコードするために用いられる。データをデコードする方法は、コード化された係数およびコード化された係数に関連する1つ以上のパラメータを受信するステップと、データ配列を生成するために、コード化された係数で逆変換を計算するステップと、を含み、逆変換は、コード化された係数と関連するパラメータの、少なくとも1つによって示される変換に基づいている。
【0041】
他の形態において、概して、データをデコードする方法は、少なくとも1つの1次元変換および少なくとも1つの2次元変換を含む複数の変換グループを識別する情報を記憶するステップと、コード化された係数、およびコード化された係数に関連する1つ以上のパラメータを受信するステップと、データ配列を生成するために、パラメータの少なくとも1つによって示されたグループから得られる変換に基づいて、逆変換を計算するステップと、を含む。
【0042】
いくつかの形態は、後述する特徴のうち1つ以上を含むことができる。
【0043】
逆変換は、受信した複数のコード化された係数セットの各々、およびコード化された係数セットに関連するパラメータのそれぞれに対して計算され、複数の変換グループ内から1つの1次元変換を示している、コード化された第1の係数セットに関連するパラメータの少なくとも1つに応答して、コード化された第1の係数の複数のサブセットの各々にて、示された1次元変換の逆変換を計算し、各々の1次元変換の逆変換はデータ配列の異なる部分を生成し、複数の変換グループ内から2次元変換を示しているコード化された第2の係数セットに関連するパラメータの少なくとも1つに応答して、コード化された第2の係数セットにて、示された2次元変換の逆変換を計算し、データ配列を生成する。
【0044】
その方法は、データの大部分の配列をカバーしている、1次元配列の複数パターンのグループを識別する情報を格納するステップも含む。
【0045】
その方法は、複数の変換グループから1次元変換を示しているコード化された係数に関連するパラメータの少なくとも1つ、および複数のパターングループからあるパターンを示しているコード化された係数に関連するパラメータの少なくとも1つに応答して、コード化された係数の複数のサブセットの各々にて、示された1次元変換の逆変換を計算し、各々の1次元逆変換は示されたパターンの異なる1次元配列を生成している。
【0046】
他の形態において、概して、コンピュータ可読メディアは、データ配列の異なる部分にて計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第2の係数セットを算出するステップと、第1の係数セットおよび第2の係数セットを含む複数の係数セットのグループから、データ配列を表す係数セットを選択するステップと、を含む方法を用いてコード化されたデータを、デコードするためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピュータシステムに、コード化された係数およびコード化された係数に関連する1つ以上のパラメータを受信させ、データ配列を生成するために、コード化された係数に関連するパラメータのうち1つ以上によって示される変換に基づくコード化された係数上の逆変換を計算させるための命令を含む。
【0047】
他の形態において、概して、システムは、データ配列の異なる部分にて各々が計算された複数の係数に基づく第1の係数セット、およびそのデータ配列で計算された変換に基づく第2の係数セットを計算し、第1の係数セットおよび第2の係数セットを含む複数の係数セットのグループからデータ配列を表す1つの係数セットを選択し、選択した係数および選択した係数に関連する1つ以上のパラメータをコード化するように構成されたトランスミッタを含む。そのシステムは、1つ以上のレシーバを含み、各々のレシーバは、コード化された係数およびコード化された係数に関連する1つ以上のパラメータをトランスミッタから受信し、データ配列を生成するためにコード化された係数上で逆変換を計算するように構成され、逆変換は、コード化された係数に関連するパラメータのうち1つ以上によって示される変換に基づく。
【0048】
以下、本発明の多くの効果(その幾つかは、種々の実施形態のみにおいて達成できる)を説明する。
【0049】
視覚データの配列(例えばブロック)を表すための変換係数は、いずれの変換もしくは変換セットが、そのブロックにおいて最も効果的な圧縮をもたらすかに基づいて選択することができる。視覚データの局所的な異方特性は、視覚データをより効果的に圧縮する変換の1つをもたらすことができる。たとえば、ビデオフレームの予測残差の場合、なめらかでゆっくり動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。さらに、オブジェクトの形状はフレーム間で僅かに変化する傾向にありうるので、オブジェクトの境界周辺の予測はより多くのエラーを有しうる。そのような場合においては、1つの所定の変換を計算する代わりに、同一のデータ配列上で計算されるいくつかの変換の中から、適切な変換を選択することができる。
【0050】
ブロック上の少なくとも1つの2次元変換と、そのブロック上の1つ以上の1次元変換セットと、の両方を、所定のブロック上で計算されるべき変換の候補として含むことにより、残差内のいくつかのブロックまたは他のフレーム、もしくはイメージが、他の変換に比べて1つの変換により良く適するため、圧縮効率を増加させることができる。
【0051】
指向的な1次元変換のために、データまたはアプリケーションのタイプに従っていくつかの方向を定めることができる。
【0052】
所定のデータ配列に最適な変換を選択するためのコスト関数は、データおよびアプリケーションのタイプに基づいて決定し、適用することができる。この選択方法によって、全てのケースに対して1つの所定の変換を用いるよりも、複数の利用可能な変換の中から適切な変換を選択するという、効率的かつ場合によってはユーザ定義の選択方法が可能になる。
【0053】
ビットレートの削減は、圧縮された視覚データを送信するもしくは格納する際に達成される。この種の削減は、ビデオおよびイメージの通信システムにおけるバンド幅および/またはメモリの効率的な利用を結果としてもたらす。
【0054】
本発明の他の特徴および効果は、後述の説明および請求項から明らかとなる。
【図面の簡単な説明】
【0055】
【図1】ビデオ通信システムの一例を示す図である。
【図2】ソースコードシステムの一例のブロック図である。
【図3】符号化ビデオフレームに使用されるソースコードシステムの一例のブロック図である。
【図4】動き補償において予測残差フレームを取得する一例を示す図である。
【図5】解像度向上において予測残差フレームを取得する一例を示す図である。
【図6】データ圧縮および伝送システムにおける動作の特定の順序を表すフローチャートである。
【図7】本願明細書に記載されている一例に関する散布点を示す図である。
【図8】データ配列で計算される、複数の1次元変換の一例を示す図である。
【図9】データ配列のための走査パターン例を示す図である。
【図10】ウェーブレット変換システムの一例のブロック図である。
【図11】垂直方向および水平方向のそれぞれに沿った方向予測を基準に用いる、ウェーブレット変換例を示す図である。
【図12】離散ウェーブレット変換を用いた実験結果に関するプロットを示す図である。
【図13】離散コサイン変換を用いた実験結果に関するプロットを示す図である。
【発明を実施するための形態】
【0056】
本発明に見込まれる実施形態は、その全てを本願明細書に記載するにはあまりに数が多過ぎる。以下、目下のところ望ましい、本発明に見込まれる実施形態のいくつかについて説明する。いくら強調しても強調しすぎることはないが、これらが本発明自体の記述ではなく本発明の実施形態の記述であって、よって本発明は本願明細書に記述された実施形態に限定されることはなく、請求項にてより広義の用語を用いて記述されるものとする。
【0057】
図1は、ネットワーク上のデータを通信するためのシステム100の一例を示している。概して、システム100は、ネットワーク104を通じて接続される1つ以上のノード102a〜102f(総じて102)を含む。ノード102は、ネットワーク104内の他のノードからの情報を、送信および/または受信することができる。いくつかの実施形態において、その情報とはイメージまたはビデオなどの視覚データを含む。ビデオまたはイメージは、1つ以上のソース101(例えばウェブカメラ101a、ビデオもしくはスチルカメラ101c、監視カメラ101d、または、例えば電話もしくはパーソナルデジタルアシスタント(PDA)などの無線携帯装置101e)からもたらされることができる。いくつかの実施形態において、情報ソースは、サーバ101bまたは他の任意のコンピュータデバイスに電子的に格納されているファイルであってもよい。いくつかの実施形態において、情報ソースは、視覚データまたは他の形式のデータを遠隔地に送信することができる医療装置101fであってもよい。情報ソース101は、ビデオやイメージのような視覚情報を検出すること、引き出すこと、取り込むこと、格納すること、または記録することができる、たとえば任意のセンサ、検出器、レコーダ、またはアナライザも含むことができる。いくつかの実施形態において、情報ソース101は、上記のソースを含む複数のソースを結合することができるが、これらに限定されるものではない。情報ソース101は、任意の施設、場所または車両に存在することができる。たとえば、情報ソース101は、建物またはキャンパスにおいて配備される防犯カメラであってもよい。他の実施形態において、情報ソースはユーザによって持ち歩かれることができる。いくつかの実施形態において、情報ソース101は、衛星上の撮像装置または検出装置であってもよい。他の実施形態では、情報ソース101は、車両(例えば飛行機、船または他の有人もしくは無人車両)に配備されることができる。情報ソース101は、ネットワーク104に接続されているノード102と通信することができる。いくつかの実施形態において、情報ソース101は、ノード102の一部であってもよい。他の実施形態では、情報ソース101は、1つ以上のネットワークおよび/または1つ以上の介在装置を経て、ノード102と通信することができる。任意のハードウェアまたはソフトウェアを用いて、情報ソース101とノード102との間の通信を容易にすることができる。
【0058】
ノード102は、イメージおよび/またはビデオを、受信および表示、またはレンダリングすることができるデバイスを含むことができる。たとえば、ノードは、テレビまたはディスプレイデバイス102cであってもよい。ノードは、デスクトップまたはラップトップコンピュータ102dであってもよい。ノードは、無線装置102e(例えば、イメージおよびビデオを受信、格納、もしくは表示することができるPDAまたは携帯電話)であってもよい。いくつかの実施形態において、ノードは、記憶装置(例えば情報を格納することができるサーバ102fまたはメモリ)であってもよい。かかるサーバまたはメモリは、視覚情報を読み出して表示することができるデバイスに、任意に接続することができる。
【0059】
いくつかの実施態様において、ノード102a(図1のノード1)は、トランスミッタ103を含む。トランスミッタ103は、情報ソース101からのデータをコード化して、そのコード化されたデータをネットワーク104上へ送信するように構成されることができる。いくつかの実施形態において、トランスミッタ103は、ソースコーディング105aおよびチャネルコーディング110a用のコンポーネントを含むことができる。トランスミッタ103は、モジュレータ115aも含むこともできる。トランスミッタは、ソース101からのデータをソースコーディングに適したフォーマットに変えるための1つ以上のコンポーネントまたはデバイスを含むこともできる。
【0060】
ソースコーディング105aは、データ圧縮技術とも称されてよい。ソースコーディングは、所定のイメージ、ビデオまたは他方式の情報の表示に必要なビット数を減らすように設計される、符号化方式を含むことができる。ソースコーディング105aは、例えば、レンペル・ジフ圧縮(Lempel Ziv compression)や算術符号化等の可逆圧縮技術、または不可逆圧縮技術を含むことができる。いくつかの実施形態において、不可逆圧縮は、情報の送信に必要なバンド幅を減少させるため、特にネットワーク上の送信を伴う際に好ましい。ソースコーディング105aに用いられる不可逆圧縮技術の例としては、数学的変換(例えば、離散コサイン変換(DCT)、離散サイン変換(DST)、離散ウェーブレット変換(DWT)、フラクタル圧縮、および離散フーリエ変換(DFT))を伴う変換符号化が挙げられる。いくつかの実施形態において、ソースコーディングは1つ以上の標準規格に従うことができる。かかる標準規格は、ビデオ標準(例えばMPEG‐2、MPEG‐4、H.263、およびH.264)を含むことができる。かかる標準規格は、画像圧縮標準(例えばJPEG)も含むことができる。いくつかの実施形態において、不可逆圧縮方式は、イメージまたはビデオフレームが数学的にモデル化され、そのモデルのパラメータがコード化されるモデルコーディングも含むことができる。
【0061】
チャネルコーディング110aは、チャネル全体に送信される情報の冗長ビットの追加に関連する。チャネルコーディングは、レシーバ側でエラー検出および/またはエラー訂正を容易にすること、および伝送の信頼性を向上させることができる。チャネルコードは、エラー訂正コードとも称することができる。チャネルコーディング110aは、コード(例えばブロックコード、畳み込みコード、ターボコードおよび低密度パリティチェック(LDPC)コード)の利用を含むことができる。
【0062】
トランスミッタは、モジュレータ115aを含むことができる。モジュレータ115aは、デジタルビットの流れに従って、アナログキャリアを変調することができる。モジュレータは、たとえば、位相シフトキーイング(PSK)、周波数シフトキーイング(FSK)、振幅シフトキーイング(ASK)、直交振幅変調(QAM)、パルス位置変調(PPM)、オンオフキーイング(OOK)、最小シフトキーイング(MSK)、連続位相変調(CPM)、トレリス符号化変調(TCM)、および直交周波数分割多重(OFDM)を含む、任意のデジタル変調技術を使用することができる。
【0063】
いくつかの実施形態において、ノード102b(図1のノード2)は、ネットワーク上の別のノード102から情報を受信するように構成されたレシーバ106を含む。図1では、トランスミッタ103およびレシーバ106が異なるノード上にあるが、任意のノード102は1つ以上のトランスミッタおよび/または1つ以上のレシーバを備えることができると認められなければならない。また、トランスミッタ103および/またはレシーバ106は、任意のノード102の一部であってもよい。レシーバ106はデモジュレータ115b、チャネルデコーダ110b、およびソースデコーダ105bのうちの1つ以上を含むことができる。デモジュレータ115bは、典型的に、受信された変調済みのアナログ信号からデジタルビットを回復させるために、モジュレータ115aの演算に対して逆演算を行う。同様に、チャネルデコーダ110bおよびソースデコーダ105bは、典型的に、チャネルコーダ110aおよびソースコーダ105aそれぞれの演算に対して逆演算を行う。いくつかの実施形態において、レシーバ106は、受信されたビデオまたはイメージデータをレンダリングするためのディスプレイに接続することができる。任意のソフトウェアおよび追加のハードウェアを用いて、かかるレンダリングを行うことができる。レシーバ106は、受信されたデジタルデータを格納するために、記憶媒体に接続することができる。
【0064】
ノード102は、ネットワーク104経由で接続されてもよい。図1では、1つのネットワーク104のみがノードに接続しているが、各々が相互に接続された複数のかかるネットワークがあってもよい。その複数のネットワークは、同一の種類または異なる種類のネットワークとすることができる。ネットワーク104は、社内イントラネットのようなローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットもしくはワールドワイド・ウェブのような広域ネットワーク(WAN)とすることができる。一実施形態では、ネットワーク104は、プライベートネットワークおよびパブリックネットワークの1つ以上を含むことができる。
【0065】
ネットワーク104は、任意のタイプおよび/またはフォームのネットワークとすることができ、以下のいずれかを含むことができる。ポイントツーポイントネットワーク、放送網、広域ネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光通信網)ネットワーク、SDH(同期デジタル階層)ネットワーク、ワイヤレス・ネットワークおよびワイヤライン・ネットワーク。いくつかの実施形態において、ネットワーク104は、無線リンク(例えば赤外線チャネルまたはサテライト・バンド)を含むことができる。ネットワーク104のトポロジーは、バス型トポロジー、スター型トポロジー、またはリング型ネットワーク・トポロジーであってもよい。ネットワークは、任意数の中継器、アプライアンス、デバイス、サーバ、記憶媒体、およびキューを含むことができる。
【0066】
ネットワーク104は、ネットワークに接続しているノード間の1つ以上のチャネル120をサポートする。たとえば、ノード102aおよび102bは、チャネルによって接続可能である。いくつかの実施形態において、チャネル120は、例えばチャネル120aとチャネル120bのように、2以上の異なるチャネルを含むことができる。チャネル120aおよび120bは、実質的に同一もしくは異なるチャネル特性を有することができる。いくつかの実施形態において、チャネル120aおよび120bのチャネル特性のいくつかを同一とする一方、その他チャネル特性を異なるものとすることができる。一般に、チャネルは、2台のノードが各々と通信する媒体の、少なくとも一部分の特性として定義されることができる。
【0067】
ここで図2を参照すると、ソースコーディング105aを実施するためのシステム200aの一例を示すブロック図が記載されている。システム200aは、データ配列(詳細は後述するように、例えば、イメージ、フレームまたは残差)を、それ自体がデータ配列であるブロックと呼ばれる複数のサブパーツに分割または区分化する分割ユニット210を含む。いくつかの実施形態において、そのブロックは正方形の画素配列であり、各々の画素値を、さまざまな形式のいずれかでコード化することができる。システム200aは、ある領域から他の領域にデータを変換する変換ユニット215も含む。システム200aは、イメージまたは変換係数を量子化番号に変換する量子化ユニット220を含む。いくつかの実施形態において、システム200aは、量子化番号をビットストリームに変換するビットストリーム変換ユニット225を含む。
【0068】
データ配列(総じて205)は、異なるタイプおよび形式であってもよい。場合によって、データ配列205はイメージ205a(例えば、個別のイメージもしくはビデオフレームイメージ)である。場合によって、データ配列205は、ビデオフレームに関する予測残差205bである。場合によって、データ配列205のいくつかはビデオフレームイメージであり、他のデータ配列205は予測残差である。場合によって、データ配列205は、ビデオフレームイメージの一部を直接的にコード化する部分と、ビデオフレームイメージの一部の予測残差をコード化する他の部分と、を含む。そのような場合、ビデオフレームイメージの一部が直接コード化されるか、もしくは予測残差としてコード化されるか、の決定は、いずれが変換ユニット215によってより効率的に圧縮され得るかによって決定されるが、さらに詳しくは後述する。以下に示す例において、データ配列205は2次元配列である。あるいは、類似技術を異次元の配列に用いることができる。
【0069】
データ配列205は、分割ユニット210を経てサブパーツに区分化される。分割ユニット210は、さまざまな方法でデータ配列205を区分化することができる。たとえば、分割ユニットは、データ配列205を複数の2次元配列に区分化することができる。データ配列205が3次元以上であるいくつかの実施形態において、分割ユニット210はデータ配列205を、より低次元に区分化することができる。たとえば、3次元データ配列205は、複数の2次元スライスに区分化されることができる。3次元配列は、より小さな3次元ブロックに区分化されることができる。分割ユニット210は、データを同種または異種の形態に区分化することができる。たとえば、2次元配列205(例えば、イメージ/ビデオフレーム205aまたは残差フレーム205b)の一部は、より小さな2次元ブロックに仕切られることができて、一方、2次元配列205の他の部分は、前者より大きな2次元ブロックに仕切られることができる。いくつかの実施形態において、分割ユニットは各々の区分に対応する1つ以上の識別パラメータを導入し、その区分から元のデータ配列を再構築することができる。いくつかの実施形態において、分割ユニット210はデータ配列205を任意のサブパーツに区分化せず、データ配列205を見送ることができる。分割ユニット210がデータ配列をサブパーツに区分化するか否かは、1つ以上のパラメータまたはデータ配列の性質によって制御されうる。
【0070】
変換ユニット215は、配列(例えば区分化されたブロックまたはデータ配列205全体)を、ある領域から他の領域へと変換する。たとえば、変換ユニット215は、空間領域から周波数領域にデータを変換する。データ変換は、変換ユニット215によって計算され、例えば、離散コサイン変換(DCT)、離散正弦変換(DST)、離散ウェーブレット変換(DWT)、フラクタル圧縮、および離散フーリエ変換(DFT)の1つ以上を含むことができる。概して、変換ユニット215は、受信した配列の画素よりも小さい係数を用いて配列を表示することを容易にする。変換ユニット215は、1次元変換、2次元変換、もしくはより高い次元の変換、の任意の組合せを計算することができる。
【0071】
変換ユニット215を用いて、異なるタイプのデータ配列を圧縮してもよい。いくつかの実施形態、例えばイメージ圧縮において、画像強度を表している画素は変換される。他の実施形態、例えばビデオ圧縮において、予測残差を表している画素は変換されることができる。予測残差の例としては、動き補償の残差(MC残差)、スケーラブルビデオコーディングにおいてしばしば用いられる分解能向上残差(RE残差)、多視点コーディングにおいてしばしば用いられる視差補償残差(DC残差)、およびH.264/AVCにおいてしばしば用いられるイントラ予測の残差が挙げられる。概して、イメージの圧縮に使用する変換は、予測残差の圧縮に用いてもよい。たとえば、離散コサイン変換(DCT)は、イメージおよびMC残差を圧縮するために用いてもよい。かかる変換の他の例は、離散ウェーブレット変換(DWT)であり、それは残差フレームと同様にイメージを圧縮するために用いてもよい。
【0072】
変換ユニット215により実行される変換の選択は、データ配列205の特性によって決定することができる。たとえば、データ配列が1次マルコフ信号に分類され得るイメージであるとき、DCTはかかる種類の信号に対して統計学的に最適な変換であるため、選択される変換をDCTとすることができる。場合によっては、予測残差は異なる特性をイメージから得ることができる。そのような場合、予測残差の代表的な特性を用いて、適切な変換を決定づけることができる。予測残差は予めコード化された画像強度から、画像強度を予測する際の予測誤差を表示する。いくつかのタイプのデータ、例えばMC残差に関して、なめらかに、かつゆっくりと動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。また、いくつかの実施形態でも同様に、実際のオブジェクトは、例えば回転のような並進運動以外の運動も有するのに対し、動き補償予測は並進運動のみを把握する。そのような場合、オブジェクトの形状はフレームごとに僅かに変化する傾向にありうる。その結果、オブジェクト境界周辺の予測はより多くの誤差を有しうる。
【0073】
RE残差に関して、なめらかな領域の予測誤差は、詳細なテクスチャ領域または端部周辺における予測誤差にくらべて非常に小さい。この種の予測残差に関して、大きな予測誤差は、詳細なテクスチャ領域または端部に沿った領域に集中しうる。
【0074】
上述した状況において、端部に沿う1次元ストラクチャは、残差のいくつかの領域に生じることができる。たとえば、隣接する区分内においては、端部に沿った画素強度を除いて、多くの画素強度はゼロに近くてもよい。そのような場合、スクウェア・サポートを有する基底関数を用いた2次元変換は、最適な変換ではない可能性がある。予測残差の1次元ストラクチャに従うサポートを有する基底関数を用いた変換が、かかるケースにとってより適当とすることができる。たとえば、1次元方向のDWT、または1次元方向のDCT、上述の特性を有する予測残差と共に用いることができる。
【0075】
いくつかの実施形態において、2次元(2D)変換は、分離可能な1次元(1D)の変換として実行することができる。たとえば、2次元DCTまたは2次元離散ウェーブレット変換(DWT)は、2つの1次元変換を垂直方向および水平方向にカスケードすることによって、分離可能な変換として実行することができる。場合によっては、かかる1次元変換は、他の方向よりも水平方向または垂直方向の特性に有利に働く。いくつかの実施形態において、変換を用いて画像強度の変化量をより小さい方向へとフィルタリングを実行することで、局所的な異方特性に適応することができる。これは、たとえば、抽出サンプル・グリットの指向性を有する部分格子、およびウェーブレット変換の指向性を有する上昇推進における、フィルタリングおよびサブサンプリングを含む多種多様な方法によって成果を上げることができる。指向性変換は、1次元もしくは2次元DCT、DWTとすることができ、または他の変換がこのような指向性変換に用いられてもよい。
【0076】
変換ユニット215は、算出された変換係数の1つ以上を選択または放棄するために、ハードウェアまたはソフトウェアをさらに含むことができる。たとえば、変換ユニットは後続のプロセスのために、算出された変換係数のうち、ゼロ以外の係数のみを選択することができる。いくつかの実施形態において、閾値未満の係数が選択されないように、算出された変換係数を閾値に基づいて選択することができる。係数は、係数の値、算出された変換配列における係数の位置、係数に含まれる情報内容、および他のアプリケーションまたはユーザに特有の基準のうち、1つ以上に基づいても選択されてよい。いくつかの実施形態において、変換ユニットは、入力信号を変換せずに通過させることができる。たとえば、変換ユニット215がデルタ関数のインパルス応答を伴うデジタルフィルタを含む場合、入力信号は略変化させられずにユニット215を通過する。変換ユニット215は、所定のブロックごとに選択的に変換を実行するか、あるいは、変換を与えることなく信号を通過させるように構成可能である。
【0077】
変換ユニット215によって選択される変換は、データ配列205の性質によって決定することができる。たとえば、データ配列が1次マルコフ信号として分類され得るとき、DCTがこの種類の信号に対して統計学的に最適な変換であることから、選択される変換をDCTとすることができる。
【0078】
いくつかの実施形態において、量子化ユニット220は、値の範囲を示すために代表値を1つ用いてもよい。たとえば、変換係数の値は連続する性質であってもよく、量子化ユニット220は離散値の限定された数を用いて、かかる係数を表すことができる。量子化ユニット220は、演算(例えば四捨五入、切り上げ整数化、切捨て整数化、剰余および閾値)を実行することができる。量子化ユニット220は、多種多様な方法で変換係数を表すことができる。たとえば、いくつかの実施形態で、量子化ユニット220は、変換係数を次に大きい整数または次に小さい整数として表す。他の実施形態では、量子化ユニット220は、小数第2位までの係数を表すことができる。量子化ユニット220は、種々の係数を量子化するために、種々の方法を用いることができる。たとえば、係数の1次元配列〔58 −51 −15 −12〕を考慮すると、対応する量子化配列は〔24 40 51 61〕と定義され、その量子化された値は〔2 −1 0 0〕となる。これは、量子化配列の値によって係数配列の各々の要素を割り算し、次に、その値を直近の整数に四捨五入する演算である。他の実施形態では、各々の係数が略同一の方法で量子化される際に、均質量子化が用いられてよい。
【0079】
ビットストリーム変換ユニット225は、量子化番号をビットストリームに変換する。概して、量子化番号は2進数表示に変換される。ビットを、さまざまな方法(例えば電圧または電流の異なるレベルもしくは信号の有無)によって、物理的に表すことができる。ビットストリーム変換ユニットから出力されるビットストリームは、入力データ配列205のソースコード形式を表すことができる。いくつかの実施形態において、これらのビットストリームが、チャネルコーディングユニット110aへの入力として用いられる。ビットストリーム変換ユニット225は、例えばハフマンコーディング、可変長符号化、または他の暗号コード体系のようなコード体系を実施するためのハードウェアおよび/またはソフトウェアを含むことができる。
【0080】
分割ユニット210、変換ユニット215、量子化ユニット220およびビットストリーム変換ユニット225は、種々の特定のハードウェアモジュールのいずれかを用いて実行することができる。たとえば、これらのユニットのいずれかは、マイクロプロセッサ、マイクロコントローラ、およびデジタル信号処理装置(DSP)のうち1つ以上を用いて実行することができる。実施形態は、ハードウェア回路(例えばサンプルアンドホールド回路、加算器、乗算器、シフトレジスタ、論理ゲート、トランジスタ、フリップフロップ、スイッチ、コンデンサ、レジスタ、インダクタ、バス、キャッシュメモリ、タイミング回路およびダイオード)を含むことができる。1つ以上のプログラムプロセッサ上で動く種々のアルゴリズムおよび/またはソフトウェアを、変換、量子化、区分化、およびビットストリーム化を演算する際に用いることができる。
【0081】
ここで、図3を参照すると、ビデオフレームのソースをコード化するためのシステム200bの、他の例が図示されている。いくつかの実施形態において、システム200bは、現在フレーム302aおよび予測された現在フレーム302bから、予測残差フレーム205bを得る。予測された現在フレーム302bは、1つ以上前のコード化済みフレーム301から得ることができる。一実施形態では、予測された現在フレーム302bは、単一のコード化済みフレームから得られる。他の実施形態において、予測された現在フレーム302bは、複数のコード化済みフレームから得られる。いくつかの実施形態において、1つ以上後のフレーム(フレームの提示時間に関して)は、予測された現在フレーム302bを得るためにも用いてもよい。換言すれば、前後の予測の任意の組合せを用いて、予測された現在フレームを得ることができる。
【0082】
いくつかの実施形態において、予測された現在フレーム302bは、少なくとも1つのコード化済みフレーム301に関する変換係数を用いて得られる。他の実施形態では、予測された現在フレーム302bは、少なくとも1つのコード化済みフレーム301の強度値を用いて得られる。コード化済みフレーム301は、バッファから読み出されるか、もしくは関連する変換係数から再構築することができる。いくつかの実施形態において、予測された現在フレーム302bの取得には、線形予測、非線形予測、および補間法といった演算を含むことができ、さらに動きベクトルを推定して、それを用いることを含んでもよい。いくつかの実施形態において、予測された現在フレーム302bは、ビデオストリーム内の隣接したフレーム間の、既存の相互関係を用いて算出される。
【0083】
予測された現在フレーム302bは、現在フレーム302aと比較され、予測残差フレーム205bを得ることができる。いくつかの実施形態において、現在フレーム302aおよび予測された現在フレーム302bの対応する画素の画像強度値の残差は、予測残差フレーム205bを得るために算出される。換言すれば、予測残差フレーム205bは、現在フレーム302aと予測された現在フレーム302bとの間の差分イメージを表す。代替案として、現在フレーム302aと予測された現在フレーム302bとの間の他の演算が、予測残差フレーム205bを得るために実行されてよい。たとえば、いくつかの実施形態で、現在フレーム302aおよび予測された現在フレーム302bの変換係数間の差分は、予測残差フレーム205bを得るために算出される。予測残差フレームは、図2に記載した分割ユニット210、変換ユニット215、量子化ユニット220およびビットストリーム変換ユニット225の1つ以上を通過することができる。
【0084】
図4は、動き補償の予測残差フレームを得る一例を示す。この例では、動き補償残差205bを得るために、現在フレーム302aおよび予測された現在フレーム302bとともに、差分演算子405が用いられる。上述の通り、他の演算子または演算子の組合せを用いて、動き補償残差205bを算出することができる。
【0085】
図5を参照すると、分解能向上の予測残差フレームを得る一例が図示されている。この例では、低質・高解像度フレーム302bは、コード化済みの低解像度フレーム301から生成される。フレーム301からフレーム302bを生成することは、アップサンプリングおよび任意の補間技術(例えば直線補間、最近接内挿法およびバイキュービック補間)を用いて実行することができる。いくつかの実施形態において、フレーム301から予測されたフレーム302bが生成される間に、例えばアンチエイリアス・フィルタリングのようなフィルタリング技術を用いることができる。図4に関して述べたように、分解能向上の予測残差205bを得るために、低質・高解像度フレーム302bおよび現在フレーム302aは互いに比較される。図5には差分演算子405が示されているが、分解能向上の予測残差205bを得るために他の演算子も用いてよい。
【0086】
ここで、図6を参照すると、フローチャート600は、データ圧縮および伝送システム内の変換ユニット215によって実行される演算順序の一例を表している。その演算は、フレームまたは予測残差を表すデータ配列の、複数のブロックの各々において実行されることができる。その演算は、所定のブロックをコード化するよう1つの係数セットを選択するが、その選択は、複数の係数セットのグループを比較して、どの係数セットが最大圧縮のブロック(例えば、圧縮効率の所定の測定に従って)を表すのかを判定することによって実行される。この例において、この演算は、データ配列のブロックを受信するステップ610を含む。この演算は、変換係数セットの複数の候補を算出するステップ620も含む。種々の係数セットは、予め決定された変換グループから種々の変換を用いて算出されるが、このことが、用いられる所定のブロックを最大圧縮する変換を可能とする。たとえば、第1の係数セットは、複数の1次元変換に基づいて算出されることができ、複数の1次元変換の各々はブロックの異なる部分を計算し、複数の1次元変換が全体でブロック全体をカバーする。1次元変換は、特定の方向に沿って整列配置することができる。他の係数セットは、異なる方向(詳細については後述するように、例えば、角度範囲に均一に当てられた方向)に沿って整列配置した複数の1次元変換に基づいて計算されることができる。かかる1次元変換は、1次元特徴を含むフレームまたは予測残差の特徴に最大圧縮を呈することができる。他の係数セットは、ブロック全体において実行される2次元変換に基づいて算出されることができる。かかる2次元変換は、2次元特徴を含むフレームまたは予測残差の特徴に、最大圧縮を呈することができる。この演算は、また、最大圧縮を提供する変換係数セットの候補グループから変換係数セットを選択するステップ640と、選択した係数をコード化するステップ650とを含む。
【0087】
演算は、所定の変換グループから、(例えば、処理の遅延を減少させるために)任意の変換の除去を試みるか否かを決定するステップ615を選択的に含むことができる。場合によっては、所定の変換グループが大きい場合、所定のブロックに高圧縮を与えそうにない幾つかの変換を除去することが好ましいであろう。そのようにして、さもなければ、これらの変換に基づく変換係数候補の算出に必要な処理時間を、回避することができる。所定の変換グループから変換を除去すると判断された場合、その演算は、もしあるとすれば、どの演算を除去するのかを決定するステップ630を含み、このステップ630は、所定のブロックの予測特性およびこれらの特性を有するブロックに、どのように所定の変換が実行されるのかに基づいて、任意の係数セット候補の算出を考慮して行われる。除去する変換の決定に要する時間が、対応する変換係数の算出に要したであろう時間より短くなければならない。
【0088】
いくつかの実施形態において、データ配列のブロックを受信するステップ610は、情報ソース101からデータ配列を受信するステップを含むことができる。データ配列は、イメージ、ビデオフレーム、または予測残差フレームを含む任意の形式およびタイプであってもよい。いくつかの実施形態において、データ配列は、図2および図3に記載されているデータ配列205に略同一であってもよい。受信ステップ610は、図2において詳述したように、データ配列をサブパーツに区分化するステップをさらに含むことができる。
【0089】
演算は、指向性変換をデータ配列に用いるか否かを決定するために、受信したデータ配列を検査するステップ615を選択的に含むことができる。たとえば、データ配列が著しい異方性の特徴を有するイメージまたは予測残差である場合、指向性変換を用いるという決定をすることができる。一方、イメージ、ビデオフレーム、または予測残差が滑らかで、および/または指向端がない場合、指向性変換は必要でないと決定することができる。いくつかの実施形態において、計算装置を経由して実行される1つ以上のアルゴリズムを用いることで、その決定を部分的に自動化することができる。かかる自動化した手順は、イメージ、ビデオフレーム、または予測残差の特性を含むことができる。
【0090】
イメージ、ビデオフレーム、および予測残差の特性は、所定のイメージまたはフレームに対して指向性変換を用いるか否かを決定する際の補助となりうる。いくつかの実施形態において、かかる特性は、演算される変換の性質、指向性、またはタイプの決定を補助する。後述の説明は、特に予測残差に関するものである。しかしながらこの説明はまた、ビデオフレームおよびイメージにも応用することができる。
【0091】
場合によって、変換または表示を予測残差の局所的な異方性の特徴に適応させることは、圧縮性能を高める。たとえば、これは、従来から用いられている分離可能な1次マルコフモデルの一般化バージョンを用いて、MC残差の自己共分散の特性を経由して分析されている。分離可能モデルおよび一般化モデルは、それぞれ以下の(1)および(2)にて与えられる。
【0092】
【数1】
【数2】
【0093】
一般化モデルは、分離可能モデルを回転させたバージョンであり、θは回転量を表す。回転量をゼロに設定すると、一般化モデルは分離可能モデルとなる。この例において、分離可能モデルのパラメータρ1およびρ2、ならびに一般化モデルのパラメータρ1、ρ2およびθは、イメージおよびMC残差の8×8画素のブロックから算出される。バイアス推定器は、ブロックの自己共分散を推定して、自己共分散評価と(1)および(2)のモデルとの間における平均二乗誤差を最小化するパラメータρ1、ρ2、およびθを求めるために用いられる。図7Aおよび図7Bは、ρ1およびρ2の散布点を示しているが、それらは、分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのイメージから推定されている。図7Cおよび図7Dは、同一パラメータの散布点を示しているが、それらは分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのMC残差から推定されている。「モバイル」と称されるビデオシーケンスはオブジェクト境界において、動き補償予測を不成功に導く多種多様な可動オブジェクトを有しているため、これらの例に用いられる。
【0094】
たとえば、一般化モデルのプロット(図7B)において、分離可能モデルのプロット(図7A)と比較すると、ρ1=ρ2となるプロットラインに沿った領域はデータポイントが存在する割合が低い。一方、分離可能モデルにおいて、ρ1=0.8、およびρ2=0.8のラインを超えるデータポイントは殆どない。これらの観察から、一般化されたケースでは、ρ1=ρ2となるラインの下に広がるデータポイントは、ρ1軸に沿って右方向へ移動し、ρ1=ρ2となるラインの上に広がるデータポイントはρ2軸に沿って上方へと移動したことが見て取れる。場合によっては、付加パラメータθをモデルに与えることで、結果的に、高次の相関係数ρ1またはρ2の可能性が高まる。場合によっては、パラメータθそれ自体を調整することで、ρ1またはρ2のどちらか一方が、分離可能モデルに比べてより規則的偏差に沿って位置する。
【0095】
引き続きこの例において、MC残差の分離可能な自己共分散モデルのプロット(図7C)において、そのデータポイントがρ2=k/ρ1カーブと軸との間の領域を均一に満たしているように見えると観察され得る。MC残差の一般化した自己共分散モデルのプロット(図7D)において、データポイントはそのカーブの尾部の方へ集中するようであり、2軸に集中する半ディスク形状を形成する。場合によっては、領域内のデータポイントがより集中することはデータのより良好な予測性を意味し、ひいては、方程式(2)において用いられるモデルによって、データの信頼性の高い特性の提供が可能であることを示すことができる。従って、場合によっては、付加パラメータθを有する特性は、データ配列のより良好な圧縮に導くことができる。
【0096】
さらに、図7Bおよび図7Dに関して、局所的な異方性のイメージの特徴がMC残差に及ぼす効果についても図示されている。この例では、イメージ(図7B)の特性は、ρ1軸およびρ2軸に対する2つのディスク接線におおよそ集中するデータポイントを有する。一方、この例におけるMC残差(図7D)の特性は、2軸上で2つの半ディスク形状に集中するデータポイントを有するようである。換言すれば、MC残差(図7D)のケースにおいては、データポイントは軸に近づく。場合によっては、特性(図7B)における任意のデータポイント(ρ1、ρ2)を考えると、より小さい共分散因子がMC残差の特性(図7D)においてさらに小さくなることを意味することができる。いくつかの実施形態において、これは、局所異方性のイメージ特徴がMC残差に影響を及ぼす方法、またはMC残差に伝播する方法である。これは、イメージとMC残差との間の、統計的特性の主な相違点を構成しうる。そのような場合、別々の方向の適応変換を、画像およびMC残差に用いることができる。
【0097】
いくつかの実施形態において、第1候補の係数セットは受信したデータ配列ブロックの異なる部分で、複数の1次元変換を実行することによって算出される。1次元変換が実行されるブロックの異なる部分は、後で詳しく述べるように、全てまたは大部分のブロックをカバーするように配置されることができる。そのような場合、第1係数セットは、各々の1次元変換に対応する係数を含む。各々の1次元変換は、離散コサイン変換(DCT)、離散正弦変換(DST)、離散ウェーブレット変換(DWT)、および離散的フーリエ変換(DFT)から選択されることができる。いくつかの実施態様において、各々の1次元変換に使用する変換は同じである。他の実施形態では、1次元変換のうちの少なくとも1つは、残りの1次元変換とは異なる変換を用いて計算される。
【0098】
候補の係数セットを算出する際に用いられる、所定の変換グループから1つ以上の変換を除去する一例において、変換を内包または除去するために、1次元変換の種々のセットを変換と連動した方向に基づいて選択することができる。所定のデータ配列においてより優れた性能が期待できる1組の1次元変換の方向は、データ配列の点検またはデータ配列上のいくつかの演算を経て決定されることができる。たとえば、図7Dの一般化モデルから得られるMC残差のρ1対ρ2の散布点は、しばしば、2つの相関係数(ρ1、ρ2)のうちどちらか一方が、他方より非常に大きいことを示す。いくつかの実施形態において、より大きい相関係数を有する方向に従って、データの相関性が失われていく。他の実施形態では、より小さい相関係数を有する方向に従っても、データの相関性が失われていく。いくつかの実施形態において、方向の選択は、受信したデータ配列がイメージであるか、もしくは予測残差であるかに依存してもよい。あるいは、データ配列のいかなる分析も不必要であり、角度領域(180°の範囲にわたる)へ均一に展開される多数の方向への係数の全てが算出されることができる。そのような場合、最高エネルギーの圧縮を示している方向が、選択方向として選ばれることができる。
【0099】
ここで図8を参照すると、1つのブロック(この例では8×8ブロック)において、1次元変換が所定のパターンに配置された種々の1次元の画素配列で計算される一例が示されている。この例では、(変換パターン800内の)1次元の画素配列810は、8×8ブロック内の左端の8つの画素から成り1次元変換が計算される配列を表す。いくつかの実施形態において、画素配列が略一方向への略線形な経路を形成するように(例えば、パターン内の1次元配列の各々が略同じ形状を有するが、異なる長さを有してブロック上の経路をたどるように)、画素配列は選択される。この方向は、図7について述べたように相関係数の大きい方向とすることができる。
【0100】
この例において、およそ180°の方向をカバーする16の変換パターンは、各々のパターンに対して1次元変換のグループを計算するために定められた。変換の圧縮量に影響を及ぼすのは、各々の1次元変換が計算される画素配列を横断する経路の平均角度であって、計算の始点および終点(図8に矢印で表されている)の位置ではない。よって、0°〜180°と180°〜360°の両方をカバーする方向を含む必要はない。さらにまた、0°および180°の両方に対応する変換パターンを含む必要はない。それゆえ、変換パターン800が0°の方向を表す場合、変換パターン840はちょうど180°以外の方向を表す。この例では、およそ0°から180°の範囲で均一配置された方向に沿った、ほぼ線形経路上の変換が含まれているが、他の例では、他方向もしくは非線形形状を有する経路に沿った変換も定めることができる。いくつかの実施形態において、指向性変換の決定は、全体としての配列が1つの方位または方向を表すように、受信したブロック内で1次元の画素配列を選択することを含むことができる。所定の方向にあるいくつかの配列は、その配列内に同一または異なる数の画素を有する。たとえば、変換パターン820における全ての1次元配列は同数の画素を含むが、変換パターン830における配列は異なる数の画素を有する。所定の変換パターンの画素配列は、オーバーラップしてもよいし、オーバーラップしなくてもよい。換言すれば、同一の変換パターン内で2つの異なる1次元変換を計算する際に、所定の画素が横断されてもよい。画素配列はブロック内の大部分の画素を含むことができるが、いくつかの変換パターンにおいては、1つ以上の画素が除外されてもよい。いくつかの変換パターンは、所定の画素が隣接する2つのブロックの両方の1次元配列に含まれるように、所定のブロックを越えて延びてもよい。
【0101】
所定の変換パターンの1次元変換から生じる係数は、後続の処理のための係数ストリームに配列される。配列決定の一部として、係数は、種々の変換に対応する1次元変換、および所定の係数と関連した空間周波数に対応する他次元変換から得られる2次元ブロックを形成することができる。次に、係数は、この計算結果としての2次元ブロックから、走査パターンとして公知である特定の順序で読み出されることがきできる。いくつかの実施形態において、計算結果として得られる変換係数の走査パターンは、変換パターンにおける変換の方位または方向に依存する。概して、相対的に低い周波数係数が高い周波数係数の前に走査されるように、および/または係数が、計算結果のブロック内に隣接して格納されている第2係数の前もしくは後に読み出されるように、かかる走査パターンを定めることができる。図9は、計算結果データの8×8ブロックに関する、走査パターンの例をいくつか表している。他の実施形態では、計算結果のブロックサイズ、データの予想される性質、およびデータ計算に用いた変換の方位または方向に基づいて、走査パターンを定めることができる。
【0102】
再度、図6を参照すると、いくつかの実施形態において、第1係数セットは、ステップ620にて、方向離散ウェーブレット変換(DWT)を用いて計算することができる。かかる方向離散ウェーブレット変換は、1つ以上のバンドレット(bandelet)、ディレクションレット(directionlet)、またはリフトベースのウェーブレット変換の使用を含むことができる。一例として、リフトベースの方向ウェーブレット変換について後述する。
【0103】
リフトとは、リフト・ステップと呼ばれる一連のフィルタリング・ステップを用いたウェーブレット変換を設計するための手段である。ここで図10Aを参照すると、ブロック図は、リフトベースのウェーブレット変換システムにおける分析側を表している。図10Aに示されるように、信号は偶数サンプルと奇数サンプルに最初に分割され、奇数サンプルは偶数サンプルから予測される。次に、その予測における残差を用いて、偶数サンプルが更新される。任意数の予測および更新のペアを直列接続し、変換の最後の低域信号および高域信号を得ることができる。この例で示される方式は、予測ボックス(P1)または更新ボックス(U1)の選択方法に関わりなく逆変換が可能である。対応する逆変換は、図10Bに示される。
【0104】
予測および更新に用いるフィルタは、DWTの分析フィルタおよびDWTの合成フィルタを決定する。たとえば、後述の予測フィルタおよび更新フィルタは、周知の9/7の双直交ウェーブレットフィルタをもたらす。予測フィルタおよび更新フィルタは、他のウェーブレットフィルタ形式を実現するために変形することができる。この例で示されるフィルタにおいて、隣接する2つの偶数画素を平均算出およびスケーリングすることで全ての奇数サンプルを予測し、その予測における予測残差を用いて、隣接する2つの奇数画素を平均算出およびスケーリングすることで全ての偶数画素は更新される。
【0105】
【数3】
【0106】
いくつかの実施形態において、方向予測を有するリフトベースの1次元ウェーブレット変換は、垂直次元もしくは水平次元のみにおける方向リフト・ステップを適用することによって実行される。換言すれば、垂直次元に沿って変換を実行するときに、図11Aの予測オプションおよび更新オプションのいずれか1つが実行されるか、もしくは予測オプションおよび更新オプションのいずれも実行されない。予測オプションおよび更新オプションがいずれも垂直次元に沿って実行されない場合、図11Bの予測オプションおよび更新オプションのうちの1つが水平次元に沿って用いられる。図11Aのオプションのうちの1つが垂直次元に沿って実行される場合、予測オプションおよび更新オプションは水平次元に沿って実行されない。
【0107】
予測残差に関して、いくつかの実施形態では、予測残差の特性が方向1次元DWTの基底関数としばしばコヒーレントであるため、方向1次元DWTは方向2次元DWTより好適とすることができる。多くの場合、予測残差の大部分のエネルギーは、1次元構造を形成している端部およびオブジェクト境界に沿って集中する。上述のようにいくつかのケースでは、その変換の有する基底関数のサポートがこれらの1次元構造に従う変換は、予測残差のかかる領域を近似させる際に、潜在的により優れて機能可能である。しかしながら、場合によっては、その変換の有する基底関数のサポートが1つの2次元構造に従う変換は、潜在的により優れて機能可能である。
【0108】
再び図6に関して、演算は、受信データ配列から得られる少なくとも1つの第2係数セットを計算するステップ630をさらに含むことができる。いくつかの実施形態において、第2係数セットは2次元(2D)変換に基づく。たとえば、第2係数セットは2次元離散コサイン変換、2次元離散的正弦変換(DST)、2次元離散ウェーブレット変換(DWT)、および2次元離散フーリエ変換(DFT)を用いて計算されることができる。
【0109】
引き続き図6に関して、演算は、(例えば、ブロックの種々の部分における1次元変換から得られた)第1係数セットおよび(例えば、ブロック全体の2次元変換から得られた)第2係数セットを含む複数の係数セットのグループから、1つの係数セットを選択するステップ640も含む。第1係数セットを計算するための多くの変換パターンが考えられ得るため、複数の係数セットのグループは1つ以上の2次元係数セットとともに、各々の変換パターンに対する種々の1次元変換係数セット(例えば、図8に示される各々の変換パターンのための1組の係数セット)を含むことができる。代替案としては、推定されたブロックの特性を考慮して、全ての変換パターンの中から実際に変換を実行することなく、いくつかの潜在的変換パターンを除去することができる。たとえば、複数の係数セットのグループは、単一の1次元変換係数セット(適合の可能性が最高であると推定された)および単一の2次元変換係数セットを含むことができる。
【0110】
係数セットが、受信したデータ配列をコスト関数に従って最適に表すように、係数セットは選択される。たとえば、いくつかの実施形態では、受信したデータ配列の最小の不可逆圧縮を表す変換係数セットが選択されうる。他の実施形態では、最良の係数セット、または最良の係数セットを算出するための最良の変換を選択することは、1つ以上のコスト関数を伴う最適化方法を含むことができる。たとえば一実施形態において、最良の変換または各々のブロックに対する最良の係数セットは、速度歪み(RD)を最適化する方法を用いて選択される。この例では、各々の利用可能な1次元変換セットおよび各々の利用可能な2次元変換は、ブロック上で計算される。通常、方向1次元変換は、個々の1次元変換が少なくともブロックの一部をカバーし、かつ1次元変換セットがブロック全体をカバーする方法で計算される。2次元変換の場合には、単一の2次元変換がブロック全体において計算される。コスト関数は各々の変換または変換セットのために、ブロックの歪みの線形結合(ブロックの平均二乗誤差(MSE)のような測定基準を用いる)および、(量子化係数および他の関連情報の両方を量子化するために)ブロックに費やされるビット数を用いて、形成される。変換または最も小さいコスト関数を有する変換セットは、各々のブロックに対して選択される。他の実施形態では、他のいかなるコスト関数も、二乗和(SSD)、絶対差の総和(SAD)、比率画像均一性(RIU)およびルート二乗平均誤差(RMSE)の合計、といった他の測定基準とともに使われることができる。相互情報量のような測定基準に基づく情報理論は、歪みを測定するためのコスト関数において用いられてもよい。
【0111】
係数セットを選択するステップは、選択された係数セットに関係する1つ以上のパラメータを決定するステップ、または選択するステップも含む。1つ以上のパラメータは、選択された係数セットを質的におよび/または量的に識別することができる。たとえば、パラメータは、選択された係数セットまたは変換が1次元変換セットもしくは2次元変換セットに関係するか否かを示すことができる。変換タイプ、変換方向(たとえば、所定の複数の変換パターンのうちの1つ)、走査パターン、および変換が計算されるブロックもしくは画素グループのうちの1つ以上を識別するために、パラメータを用いてもよい。
【0112】
演算は、選択された係数セット、および/または選択された係数セットに関係する1つ以上のパラメータをコード化するステップをさらに含むことができる。いくつかの実施形態において、かかるコード化は、1つ以上のソースコーディングおよび1つ以上のチャネルコーディングを含む。たとえば一実施形態では、各々のブロックのために選択された変換または変換セットは、可変長コード(VLC)を用いてコード化される。別々のコードワード長を用いて、1次元変換係数および2次元変換係数を表すことができる。どの変換もしくは変換セットが用いられたかを示すコード化されたパラメータの一例において、シングルビットのコードワードは2次元DCTが用いられたことを意味し、5ビットのコードワードは複数の1次元変換のうちどの変換が用いられたかを表す。いくつかの実施形態において、ハフマンコードをコード化のために用いることができる。他の実施形態において、実施形態を単純化するためにコード体系を選択することができ、および/または一般的に変換に要する平均時間の最適ハフマンコードを概算することができる。いくつかの実施形態において、変換係数および関連するパラメータは略同一のコード体系を用いてコード化される。他の実施形態では、変換係数に用いるコード体系および関連したパラメータに用いるコード体系は各々で異なる。他の方法およびコード体系を、また、変換および/または関連したパラメータをコード化するために用いてもよい。
【0113】
上述の通信システム及びその方法は主に、通信システムにおけるトランスミッタすなわち送信機側に関するものである。対応するレシーバデバイスは、本願明細書に記載のシステムおよび方法に従って送信された情報を、デコードおよびディスプレイするように構成することができる。概して、かかるレシーバデバイスは、レシーバで実行される演算の逆演算を行う機能ユニットを有する。所定のブロックで実行されるべき複数の可能な逆演算(例えば、複数の可能な逆変換)の選択は、与えられた所定のブロックとともにコード化されるパラメータに基づいて決定される。たとえば、レシーバは、実行され得る複数の変換グループを識別している情報、および1次元変換を実行し得る複数の変更パターンを識別している情報を記憶する。適当な変換および/または変換パターンは、コード化されたパラメータに基づいて選択される。たとえば、1ビット・パラメータは、所定のブロックをコード化するために1次元変換または2次元変換のいずれが用いられたかを示すことができる。そして、1次元変換が用いられた場合、4ビット・パラメータは16の変換パターンの内からどの変換パターンが用いられたのかを示すことができる。
【0114】
後述する結果は、本願明細書において記載されている方法およびデバイスのいくつかの効果を示す。実験結果は単に図示する目的であり、いかなる意味においても制限するものと考慮すべきではない。
【0115】
一実験は、2次元DCTと16セットの1次元DTCによる圧縮性能を、2次元DTCのみによる圧縮性能と比較するために行われた。これらの実験において、1秒あたり30フレームのQCIF解像度を有するビデオシーケンスを用いた。いくつかの重要なエンコーダ・パラメータは、以下の通りである。第1フレームはIフレームとしてコード化され、そして残りのフレームは全てPフレームとしてコード化される。適応ブロックサイズ(16×16、16×8、8×16、8×8)を有する、4分の1画素解像度の全探索動き推定が用いられる。エントロピー・コード化は、コンテクスト適応可変長符号化(CAVLC)によって実行される。
【0116】
実験結果は、後述する量子化パラメータ(24、28、32、36)を用いたBjontegaard Delta(BD)ビットレートの測定基準によって示される。BDビットレートの測定基準は、従来の変換である2次元DCTを使用することと比較して提案された変換(2次元DCTと16セットの1次元DCT)によって、コーデックのビットレート削減の平均(パーセンテージの観点から)を示す。図13Aおよび13Bは、従来の方法およびシステムを用いる場合と比較して、本願明細書に記載の方法およびシステムが用いられる場合に得られるビットレート削減を示している。図13Aは、各々のブロックに選択された変換を示す付加情報(またはサイド情報)が考慮された場合の、ビットレート削減のパーセンテージを表している。図13Bは、付加情報が考慮されない場合の、ビットレート削減のパーセンテージを表している。これらの実験結果例に示されるように、QCIF解像度を有するビデオシーケンスにおいて、最大25.8%(平均およそ12%)のビットレート削減が達成される。サイド情報または付加的な情報ビットが考慮されない場合、最終的に達成可能なビットレート削減は40.3%(平均およそ21.7%)である。
【0117】
さらに、1次元ウェーブレット変換および2次元ウェーブレット変換を用いた実施形態例が、本願明細書に記載の方法およびシステムの効果を例示する。これらの実施形態では、合計10のCIF解像度のビデオシーケンスから得られる、予測残差フレームを用いた。各々のシーケンスから特定のフレームを用いて、その動き補償残差(8×8画素ブロックおよび4分の1画素の動き推定を伴う)およびその分解能増大残差(H.264/AVCの参照ソフトウェアにおける方法を用いたQCIF解像度から補間された)を計算した。具体的には、合計20(=10×2)の予測残差フレームが、後述する各々の変換によって圧縮された。2次元の分離可能DWT(2D‐sep‐DWT)、2次元方向DWT(2D‐dir‐DWT)、ならびに1次元方向DWTおよび2次元の分離可能DWT(1D‐dir‐DWT+2D‐sep‐DWT)。図11Aおよび図11Bに示される予測オプションが用いられた。最高の変換(すなわち予測オプション)は、速度歪みの最適化を有するローカル領域(8×8画素ブロック)において選択された。実験に用いられたリフト・フィルタは、9/7 の双直交ウェーブレットフィルタの1つである。
【0118】
圧縮性能は閾値処理の後、ピーク信号対ノイズ比(PSNR)およびゼロ以外の変換係数(NONTC)によって評価された。この例では、エントロピー・コード化が実行されなかったので、ビットレートは用いられなかった。各々のローカル領域において、選択された変換を送信するために必要な付加情報もまた、考慮されなかった。2D‐dir‐DWTが、各々のブロックに対する81(9×9)の変換うち1つの変換を必要とする一方で、1D‐dir‐DWT+2D‐sep‐DWTは、各々のブロックに対する20(=2×9+1+1)の変換のうち1つの変換を必要とする。しかしながら、2D‐sep‐DWTは、付加情報の伝達を必要としなくてもよい。概して、付加情報によるビットレートの増加は、方向変換を用いることで達成される利得に勝らない。異なる圧縮レートでの比較結果を要約するために、Bjontegaard Delta係数(BD係数)およびBjontegaard Delta PSNR(BD-PSNR)測定基準が用いられた。これらの測定基準は、それぞれ、係数削減の平均数およびPSNR‐NONTCの2本のカーブの間におけるPSNRの平均的な改善を測定する。各々のカーブは、4つのPSNR‐NONTCデータポイントから形成されたが、そのデータポイントは30dB周辺から45dBまでの範囲のさまざまなPSNRレベルを有する。比較のために、2D‐sep‐DWTが形成するカーブは、2本のカーブのうちの1本であるとみなされた。もう1本のカーブは、2D‐sep‐DWTと比較される変換の組み合わせによって形成される。
【0119】
図12Aおよび12Bは、実験結果を要約している。図12Aは、MC残差およびRE残差について、2D‐sep‐DWTのBD変数削減を上回る、2D‐dir‐DWTのBD変数削減を示している。図12Bは、MC残差およびRE残差について、2D‐sep‐DWTのBD変数削減を上回る、1D‐dir‐DWT+2D‐sep‐DWTのBD変数削減を示している。
【0120】
図12Aおよび図12Bは、検討された種々のビデオファイルに関して、2D‐sep‐DWTと一体化した1D‐dir‐DWTは、単独の2D‐dir‐DWTよりも、予測残差の圧縮を非常に優れて実行することを表している。MC残差に関するこれらの例において、MC残差に対して、2D‐dir‐DWTは2D‐sep‐DWTより平均して5%少ない係数を必要とし、そして、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合せは、2D‐sep‐DWTより21%少ない係数を必要とする。RE残差に対しては、2D‐dir‐DWTが用いられると平均して2%、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合わせが用いられると平均して15%の削減となる。
【0121】
これらの例において、MC残差に対して、2D‐dir‐DWTは2D‐sep‐DWTのPSNRを平均で0.10dB向上させ、1D‐dir‐DWTおよび2D‐sep‐DWTの組み合わせは2D‐sep‐DWTのPSNRを平均で0.33dB向上させる。RE残差に対しては、2D‐sep‐DWTを用いると、PSNRは平均して0.05dB向上し、そして1D‐dir‐DWTおよび2D‐sep‐DWTの組み合せを用いると、PSNRは0.53dB向上する。
【0122】
これらの例は、2D‐DCTを16セットの1D‐DCTと一緒に用いると、2D‐DCTを単独で用いるときよりも、動き補償の残差のような予測残差の圧縮をより優れて実行できることを示している。同様に、それらは2次元の分離可能なウェーブレット変換に加えて1次元の方向ウェーブレット変換を用いると、2次元の方向ウェーブレット変換だけ、または2次元の分離可能なウェーブレット変換だけを用いるより、予測残余の圧縮により優れた実行を行うことができることを示している。
【0123】
上述の圧縮技術は、実行ソフトウェアを用いてコンピュータシステム上で実施することができる。例えば、ソフトウェアは、1つ以上のプログラムされたもしくはプログラム可能なコンピュータシステム(例えば、デスクトップ、分散型クライアント/サーバ・コンピュータシステムなど)上で実行するための1つ以上のコンピュータプログラムにおける処理を決める。その各々のコンピュータシステムは、1つ以上のプロセッサ、1つ以上のデータ記憶システム(例えば、揮発性メモリ、不揮発性メモリ、および/または記憶素子を含む)、1つ以上の入力デバイス(例えば、キーボードおよびマウス)またはポート、および1つ以上の出力デバイス(例えば、モニタ)またはポートを含む。ソフトウェアは、より大きなプログラムの1つ以上のモジュールを形成することができる。
【0124】
そのソフトウェアは、汎用または特殊目的のプログラム制御できるコンピュータで読み出し可能な、コンピュータ可読の記憶メディア(例えばCD‐ROM)で提供されていてもよいし、またはネットワークのような通信メディア(例えば、伝播信号にコード化された通信メディア)を通じてソフトウェアが実行されるコンピュータへと伝送されてもよい。各々のかかるコンピュータプログラムは、汎用コンピュータもしくは特殊目的をプログラム制御できるコンピュータで読み出し可能な記憶メディア(例えば、固体メモリもしくはメディア、または磁気もしくは光学メディア)に好適に保存またはダウンロードされ、記憶メディアがコンピュータシステムによって読み出される際、ソフトウェア処理を実行するようにコンピュータシステムを構成および動作させる。
【0125】
他の実施形態も、特許請求の範囲に含まれるものとする。
【特許請求の範囲】
【請求項1】
データをコード化する方法であって、前記方法は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから、前記データ配列を表す1つの係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項2】
前記データ配列の異なる部分で各々が計算された前記複数の変換が、複数の1次元変換を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記第1の係数セットを算出するステップが、前記データ配列を複数の1次元配列に分割するステップを含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記複数の1次元配列がオーバーラップしていないことを特徴とする請求項3に記載の方法。
【請求項5】
前記複数の1次元配列のうち1つ以上がオーバーラップしていることを特徴とする請求項3に記載の方法。
【請求項6】
前記第1の係数セットが、前記複数の1次元配列のうち異なる1次元配列にて各々が計算された、前記複数の1次元変換から得られる係数を含むことを特徴とする請求項3に記載の方法。
【請求項7】
前記複数の係数セットのグループが、前記第1の係数セット、前記第2の係数セット、および1つ以上の追加の係数セットを含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記1つ以上の追加の係数セットが、前記データ配列の異なる部分で各々が算出された複数の変換に基づいて算出されることを特徴とする請求項7に記載の方法。
【請求項9】
前記追加の係数セットのうち所定の1つを算出するステップが、前記データ配列の大部分をカバーする複数の1次元配列に前記データ配列を分割するステップと、前記複数の1次元配列の各々で1次元変換を計算するステップと、を含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために、異なるパターンの1次元配列を用いることを特徴とする請求項9に記載の方法。
【請求項11】
前記異なるパターンが、前記1次元配列の異なる方向に対応していることを特徴とする請求項10に記載の方法。
【請求項12】
前記追加の係数セットの少なくとも1つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項7に記載の方法。
【請求項13】
前記1つ以上のパラメータを用いて、前記第1の係数セット内の係数リストを順序づけるのに使用される複数の走査パターンのうちの1つを識別することを特徴とする請求項7に記載の方法。
【請求項14】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第1の係数セットとして選択されるのかに依存することを特徴とする請求項13に記載の方法。
【請求項15】
前記係数セットの候補のいずれが、最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第1の係数セットを選択することを特徴とする請求項7に記載の方法。
【請求項16】
前記1つ以上のパラメータを用いて、前記選択された第1の係数セットまたは第2の係数セットを生成するために使用される少なくとも1つの変換を識別することを特徴とする請求項2に記載の方法。
【請求項17】
前記1つ以上のパラメータを用いて、前記第1の係数セットが選択される場合に前記複数の変換が計算された1次元配列の所定のパターンを識別することを特徴とする請求項16に記載の方法。
【請求項18】
前記データ配列にて計算される前記変換が2次元変換を含むことを特徴とする請求項2に記載の方法。
【請求項19】
前記1つ以上のパラメータを用いて、前記第2の係数セットが選択される場合に、前記第2の係数セットを計算するのに用いられる複数の2次元変換のうちの1つを識別することを特徴とする請求項18に記載の方法。
【請求項20】
前記2次元変換が、2次元離散コサイン変換を含むことを特徴とする請求項18に記載の方法。
【請求項21】
前記2次元変換が、2次元離散ウェーブレット変換を含むことを特徴とする請求項18に記載の方法。
【請求項22】
前記複数の1次元変換のうち少なくとも1つが、離散コサイン変換を含むことを特徴とする請求項2に記載の方法。
【請求項23】
前記複数の1次元変換のうち少なくとも1つが、離散ウェーブレット変換を含むことを特徴とする請求項2に記載の方法。
【請求項24】
いずれの係数セットが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための1つの係数セットが選択されることを特徴とする請求項1に記載の方法。
【請求項25】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループから少なくとも1つの変換に基づいて算出されることを特徴とする請求項1に記載の方法。
【請求項26】
前記複数の変換のグループが、前記第1の係数セットの算出が基づく前記複数の変換と、前記第2の係数セットの算出が基づく前記変換と、を含むことを特徴とする請求項25に記載の方法。
【請求項27】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第1の係数セットおよび前記第2の係数セットを算出する前に、前記複数の変換のグループから1つ以上の変換を除去するステップをさらに含むことを特徴とする請求項26に記載の方法。
【請求項28】
前記選択した係数をコード化するステップが、少なくとも1つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項1に記載の方法。
【請求項29】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項1に記載の方法。
【請求項30】
前記データ配列が、前記ビデオフレームのブロック画素に対応していることを特徴とする請求項29に記載の方法。
【請求項31】
前記データ配列が、2つのビデオフレームから計算される残差に関連していることを特徴とする請求項29に記載の方法。
【請求項32】
前記残差が、前記2つのビデオフレーム間の動き補償に基づくことを特徴とする請求項31に記載の方法。
【請求項33】
前記残差が、前記2つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項31に記載の方法。
【請求項34】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することによって前記残差が得られることを特徴とする請求項31に記載の方法。
【請求項35】
ビデオ残差のブロックをコード化する方法であって、前記方法は、
ブロックの異なる部分で各々が計算された複数の1次元変換に基づいて第1の係数セットを算出するステップと、前記ブロックで計算された2次元変換に基づいて第2の係数セットを算出するステップと、
前記第1の係数および前記第2の係数を含む複数の係数セットのグループから前記ブロックを表す係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項36】
データをコード化するためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記コンピュータプログラムはコンピュータシステムに、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出させるとともに、前記データ配列で計算された変換に基づいて第2の係数セットを算出させ、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから前記データ配列を表す係数セットを選択させ、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化させるための命令を含む、
ことを特徴とするコンピュータ可読メディア。
【請求項37】
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループからデータ配列を表す1つの係数セットを選択するステップと、を含む方法を用いてコード化されたデータをデコードする方法であって、前記デコード方法は、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信するステップと、
前記データ配列を生成するために、前記コード化された係数で逆変換を計算するステップと、
を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つによって示される変換に基づく
ことを特徴とするデータをデコードする方法。
【請求項38】
前記データ配列の異なる部分にて各々が計算された前記複数の変換が、複数の1次元変換を含むことを特徴とする請求項37に記載の方法。
【請求項39】
前記第1の係数セットを算出するステップが、前記データ配列を複数の1次元配列に分割するステップを含むことを特徴とする請求項38に記載の方法。
【請求項40】
前記複数の1次元配列がオーバーラップしていないことを特徴とする請求項39に記載の方法。
【請求項41】
前記複数の1次元配列の1つ以上がオーバーラップしていることを特徴とする請求項39に記載の方法。
【請求項42】
前記第1の係数セットが、前記複数の1次元配列の異なる配列にて各々の変換が計算された、前記複数の1次元変換から生じる係数を含むことを特徴とする請求項39に記載の方法。
【請求項43】
前記複数の係数セットのグループが、前記第1の係数セット、前記第2の係数セット、および1つ以上の追加の係数セットを含むことを特徴とする請求項39に記載の方法。
【請求項44】
前記追加の係数セットの1つ以上の各々が、前記データ配列の異なる部分にて各々が計算された複数の変換に基づいて算出されることを特徴とする請求項43に記載の方法。
【請求項45】
前記追加の係数セットのうち所定の1つを算出するステップが、前記データ配列を前記データ配列の大部分をカバーする複数の1次元配列に分割するステップと、前記複数の1次元配列の各々で1次元変換を計算するステップと、を含むことを特徴とする請求項44に記載の方法。
【請求項46】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために異なるパターンの1次元配列を用いることを特徴とする請求項45に記載の方法。
【請求項47】
前記異なるパターンが、前記1次元配列の異なる方向に対応していることを特徴とする請求項46に記載の方法。
【請求項48】
前記追加の係数セットの少なくとも1つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項43に記載の方法。
【請求項49】
前記1つ以上のパラメータが、前記第1の係数セット内の係数リストを順序づけるのに用いられる、複数の走査パターンの1つを識別することを特徴とする請求項43に記載の方法。
【請求項50】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第1の係数セットとして選択されるのかに依存することを特徴とする請求項49に記載の方法。
【請求項51】
前記係数セットの候補のいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第1の係数セットを選択することを特徴とする請求項43に記載の方法。
【請求項52】
前記1つ以上のパラメータを用いて、前記選択された第1の係数セットもしくは第2の係数セットを生成するために使用される少なくとも1つの変換を識別することを特徴とする請求項38に記載の方法。
【請求項53】
前記1つ以上のパラメータが、前記第1の係数セットが選択される場合に、前記複数の変換が計算された1次元配列の所定のパターンを識別することを特徴とする請求項52に記載の方法。
【請求項54】
前記データ配列にて計算される前記変換が2次元変換を含むことを特徴とする請求項2に記載の方法。
【請求項55】
前記1つ以上のパラメータが、前記第2の係数セットが選択される場合に、前記第2の係数セットを算出するのに用いられる複数の2次元変換の1つを識別することを特徴とする請求項54に記載の方法。
【請求項56】
前記2次元変換が、2次元離散コサイン変換を含むことを特徴とする請求項54に記載の方法。
【請求項57】
前記2次元変換が、2次元離散ウェーブレット変換を含むことを特徴とする請求項54に記載の方法。
【請求項58】
前記複数の1次元変換のうちの少なくとも1つが、離散コサイン変換を含むことを特徴とする請求項38に記載の方法。
【請求項59】
前記複数の1次元変換のうちの少なくとも1つが、離散ウェーブレット変換を含むことを特徴とする請求項38に記載の方法。
【請求項60】
係数セットのいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための1つの係数セットを選択することを特徴とする請求項37に記載の方法。
【請求項61】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループからの少なくとも1つの変換に基づいて算出されることを特徴とする請求項37に記載の方法。
【請求項62】
前記複数の変換のグループが、前記第1の係数セットの算出が基づく前記複数の変換、および前記第2の係数セットの算出が基づく前記変換を含むことを特徴とする請求項61に記載の方法。
【請求項63】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第1の係数セットおよび前記第2の係数セットを算出する前に、前記複数の変換のグループから1つ以上の変換を除去するステップをさらに含むことを特徴とする請求項62に記載の方法。
【請求項64】
前記選択した係数をコード化するステップが、少なくとも1つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項37に記載の方法。
【請求項65】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項37に記載の方法。
【請求項66】
前記データ配列が、前記ビデオフレームの画素ブロックに対応していることを特徴とする請求項65に記載の方法。
【請求項67】
前記データ配列が、2つのビデオフレームから計算された残差に関連していることを特徴とする請求項65に記載の方法。
【請求項68】
前記残差が、2つのビデオフレーム間の動き補償に基づくことを特徴とする請求項67に記載の方法。
【請求項69】
前記残差が、2つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項67に記載の方法。
【請求項70】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することで前記残差が得られることを特徴とする請求項67に記載の方法。
【請求項71】
データをデコードする方法であって、前記方法は、
少なくとも1つの1次元変換および少なくとも1つの2次元変換を含む、複数の変換のグループを識別している情報を格納するステップと、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信するステップと、
データ配列を生成するために、前記パラメータの少なくとも1つによって示される前記複数の変換のグループからの変換に基づいて逆変換を計算するステップと、
を含むことを特徴とする方法。
【請求項72】
受信した複数のコード化された係数セットの各々および前記コード化された係数セットに関連するパラメータのそれぞれに対して逆変換を計算し、
前記複数の変換のグループから1つの1次元変換を示している、コード化された第1の係数セットに関連する前記パラメータの少なくとも1つに応じて、前記コード化された第1の係数の複数のサブセットの各々にて前記示された1次元逆変換の逆変換を計算し、各々の1次元変換の逆変換がデータ配列の異なる部分を生成し、
前記複数の変換のグループから1つの2次元変換を示している、コード化された第2の係数セットに関連する前記パラメータの少なくとも1つに応じて、データ配列を生成するために、前記コード化された第2の係数にて前記示された2次元変換の逆変換を計算する、
ことを特徴とする請求項71に記載の方法。
【請求項73】
前記データ配列の大部分をカバーする、1次元配列の複数パターンのグループを識別する情報を格納するステップをさらに含むことを特徴とする請求項71に記載の方法。
【請求項74】
前記複数の変換のグループから1次元変換を示している、前記コード化された係数に関連する前記パラメータの少なくとも1つ、および前記複数パターンのグループから1つのパターンを示している、前記コード化された係数に関連する前記パラメータの少なくとも1つに応じて、前記コード化された係数の複数のサブセットの各々にて、前記示された1次元変換の逆変換を計算するステップをさらに含み、
各々の1次元逆変換が、前記示されたパターンの異なる1次元配列を生成する、
ことを特徴とする請求項73に記載の方法。
【請求項75】
コード化されたデータをデコードするためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記データのコード化は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから前記データ配列を表す1つの係数セットを選択するステップと、を含む方法を用いて行われ、
前記コンピュータプログラムはコンピュータシステムに、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信させ、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出させるための命令を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つによって示される変換に基づく、
ことを特徴とするコンピュータ可読メディア。
【請求項76】
トランスミッタと1つ以上のレシーバとを備えるシステムであって、
前記トランスミッタは、
データ配列の異なる部分にて各々が計算された複数の変換に基づく第1の係数セットおよび前記データ配列で計算された変換に基づく第2の係数セットを算出し、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから、前記データ配列を表す1つの係数セットを選択し、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するように構成され、
前記1つ以上のレシーバの各々は、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを前記トランスミッタから受信し、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出するように構成され、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つよって示される変換に基づく、
ことを特徴とするシステム。
【請求項1】
データをコード化する方法であって、前記方法は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから、前記データ配列を表す1つの係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項2】
前記データ配列の異なる部分で各々が計算された前記複数の変換が、複数の1次元変換を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記第1の係数セットを算出するステップが、前記データ配列を複数の1次元配列に分割するステップを含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記複数の1次元配列がオーバーラップしていないことを特徴とする請求項3に記載の方法。
【請求項5】
前記複数の1次元配列のうち1つ以上がオーバーラップしていることを特徴とする請求項3に記載の方法。
【請求項6】
前記第1の係数セットが、前記複数の1次元配列のうち異なる1次元配列にて各々が計算された、前記複数の1次元変換から得られる係数を含むことを特徴とする請求項3に記載の方法。
【請求項7】
前記複数の係数セットのグループが、前記第1の係数セット、前記第2の係数セット、および1つ以上の追加の係数セットを含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記1つ以上の追加の係数セットが、前記データ配列の異なる部分で各々が算出された複数の変換に基づいて算出されることを特徴とする請求項7に記載の方法。
【請求項9】
前記追加の係数セットのうち所定の1つを算出するステップが、前記データ配列の大部分をカバーする複数の1次元配列に前記データ配列を分割するステップと、前記複数の1次元配列の各々で1次元変換を計算するステップと、を含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために、異なるパターンの1次元配列を用いることを特徴とする請求項9に記載の方法。
【請求項11】
前記異なるパターンが、前記1次元配列の異なる方向に対応していることを特徴とする請求項10に記載の方法。
【請求項12】
前記追加の係数セットの少なくとも1つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項7に記載の方法。
【請求項13】
前記1つ以上のパラメータを用いて、前記第1の係数セット内の係数リストを順序づけるのに使用される複数の走査パターンのうちの1つを識別することを特徴とする請求項7に記載の方法。
【請求項14】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第1の係数セットとして選択されるのかに依存することを特徴とする請求項13に記載の方法。
【請求項15】
前記係数セットの候補のいずれが、最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第1の係数セットを選択することを特徴とする請求項7に記載の方法。
【請求項16】
前記1つ以上のパラメータを用いて、前記選択された第1の係数セットまたは第2の係数セットを生成するために使用される少なくとも1つの変換を識別することを特徴とする請求項2に記載の方法。
【請求項17】
前記1つ以上のパラメータを用いて、前記第1の係数セットが選択される場合に前記複数の変換が計算された1次元配列の所定のパターンを識別することを特徴とする請求項16に記載の方法。
【請求項18】
前記データ配列にて計算される前記変換が2次元変換を含むことを特徴とする請求項2に記載の方法。
【請求項19】
前記1つ以上のパラメータを用いて、前記第2の係数セットが選択される場合に、前記第2の係数セットを計算するのに用いられる複数の2次元変換のうちの1つを識別することを特徴とする請求項18に記載の方法。
【請求項20】
前記2次元変換が、2次元離散コサイン変換を含むことを特徴とする請求項18に記載の方法。
【請求項21】
前記2次元変換が、2次元離散ウェーブレット変換を含むことを特徴とする請求項18に記載の方法。
【請求項22】
前記複数の1次元変換のうち少なくとも1つが、離散コサイン変換を含むことを特徴とする請求項2に記載の方法。
【請求項23】
前記複数の1次元変換のうち少なくとも1つが、離散ウェーブレット変換を含むことを特徴とする請求項2に記載の方法。
【請求項24】
いずれの係数セットが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための1つの係数セットが選択されることを特徴とする請求項1に記載の方法。
【請求項25】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループから少なくとも1つの変換に基づいて算出されることを特徴とする請求項1に記載の方法。
【請求項26】
前記複数の変換のグループが、前記第1の係数セットの算出が基づく前記複数の変換と、前記第2の係数セットの算出が基づく前記変換と、を含むことを特徴とする請求項25に記載の方法。
【請求項27】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第1の係数セットおよび前記第2の係数セットを算出する前に、前記複数の変換のグループから1つ以上の変換を除去するステップをさらに含むことを特徴とする請求項26に記載の方法。
【請求項28】
前記選択した係数をコード化するステップが、少なくとも1つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項1に記載の方法。
【請求項29】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項1に記載の方法。
【請求項30】
前記データ配列が、前記ビデオフレームのブロック画素に対応していることを特徴とする請求項29に記載の方法。
【請求項31】
前記データ配列が、2つのビデオフレームから計算される残差に関連していることを特徴とする請求項29に記載の方法。
【請求項32】
前記残差が、前記2つのビデオフレーム間の動き補償に基づくことを特徴とする請求項31に記載の方法。
【請求項33】
前記残差が、前記2つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項31に記載の方法。
【請求項34】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することによって前記残差が得られることを特徴とする請求項31に記載の方法。
【請求項35】
ビデオ残差のブロックをコード化する方法であって、前記方法は、
ブロックの異なる部分で各々が計算された複数の1次元変換に基づいて第1の係数セットを算出するステップと、前記ブロックで計算された2次元変換に基づいて第2の係数セットを算出するステップと、
前記第1の係数および前記第2の係数を含む複数の係数セットのグループから前記ブロックを表す係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項36】
データをコード化するためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記コンピュータプログラムはコンピュータシステムに、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出させるとともに、前記データ配列で計算された変換に基づいて第2の係数セットを算出させ、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから前記データ配列を表す係数セットを選択させ、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化させるための命令を含む、
ことを特徴とするコンピュータ可読メディア。
【請求項37】
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループからデータ配列を表す1つの係数セットを選択するステップと、を含む方法を用いてコード化されたデータをデコードする方法であって、前記デコード方法は、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信するステップと、
前記データ配列を生成するために、前記コード化された係数で逆変換を計算するステップと、
を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つによって示される変換に基づく
ことを特徴とするデータをデコードする方法。
【請求項38】
前記データ配列の異なる部分にて各々が計算された前記複数の変換が、複数の1次元変換を含むことを特徴とする請求項37に記載の方法。
【請求項39】
前記第1の係数セットを算出するステップが、前記データ配列を複数の1次元配列に分割するステップを含むことを特徴とする請求項38に記載の方法。
【請求項40】
前記複数の1次元配列がオーバーラップしていないことを特徴とする請求項39に記載の方法。
【請求項41】
前記複数の1次元配列の1つ以上がオーバーラップしていることを特徴とする請求項39に記載の方法。
【請求項42】
前記第1の係数セットが、前記複数の1次元配列の異なる配列にて各々の変換が計算された、前記複数の1次元変換から生じる係数を含むことを特徴とする請求項39に記載の方法。
【請求項43】
前記複数の係数セットのグループが、前記第1の係数セット、前記第2の係数セット、および1つ以上の追加の係数セットを含むことを特徴とする請求項39に記載の方法。
【請求項44】
前記追加の係数セットの1つ以上の各々が、前記データ配列の異なる部分にて各々が計算された複数の変換に基づいて算出されることを特徴とする請求項43に記載の方法。
【請求項45】
前記追加の係数セットのうち所定の1つを算出するステップが、前記データ配列を前記データ配列の大部分をカバーする複数の1次元配列に分割するステップと、前記複数の1次元配列の各々で1次元変換を計算するステップと、を含むことを特徴とする請求項44に記載の方法。
【請求項46】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために異なるパターンの1次元配列を用いることを特徴とする請求項45に記載の方法。
【請求項47】
前記異なるパターンが、前記1次元配列の異なる方向に対応していることを特徴とする請求項46に記載の方法。
【請求項48】
前記追加の係数セットの少なくとも1つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項43に記載の方法。
【請求項49】
前記1つ以上のパラメータが、前記第1の係数セット内の係数リストを順序づけるのに用いられる、複数の走査パターンの1つを識別することを特徴とする請求項43に記載の方法。
【請求項50】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第1の係数セットとして選択されるのかに依存することを特徴とする請求項49に記載の方法。
【請求項51】
前記係数セットの候補のいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第1の係数セットを選択することを特徴とする請求項43に記載の方法。
【請求項52】
前記1つ以上のパラメータを用いて、前記選択された第1の係数セットもしくは第2の係数セットを生成するために使用される少なくとも1つの変換を識別することを特徴とする請求項38に記載の方法。
【請求項53】
前記1つ以上のパラメータが、前記第1の係数セットが選択される場合に、前記複数の変換が計算された1次元配列の所定のパターンを識別することを特徴とする請求項52に記載の方法。
【請求項54】
前記データ配列にて計算される前記変換が2次元変換を含むことを特徴とする請求項2に記載の方法。
【請求項55】
前記1つ以上のパラメータが、前記第2の係数セットが選択される場合に、前記第2の係数セットを算出するのに用いられる複数の2次元変換の1つを識別することを特徴とする請求項54に記載の方法。
【請求項56】
前記2次元変換が、2次元離散コサイン変換を含むことを特徴とする請求項54に記載の方法。
【請求項57】
前記2次元変換が、2次元離散ウェーブレット変換を含むことを特徴とする請求項54に記載の方法。
【請求項58】
前記複数の1次元変換のうちの少なくとも1つが、離散コサイン変換を含むことを特徴とする請求項38に記載の方法。
【請求項59】
前記複数の1次元変換のうちの少なくとも1つが、離散ウェーブレット変換を含むことを特徴とする請求項38に記載の方法。
【請求項60】
係数セットのいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための1つの係数セットを選択することを特徴とする請求項37に記載の方法。
【請求項61】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループからの少なくとも1つの変換に基づいて算出されることを特徴とする請求項37に記載の方法。
【請求項62】
前記複数の変換のグループが、前記第1の係数セットの算出が基づく前記複数の変換、および前記第2の係数セットの算出が基づく前記変換を含むことを特徴とする請求項61に記載の方法。
【請求項63】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第1の係数セットおよび前記第2の係数セットを算出する前に、前記複数の変換のグループから1つ以上の変換を除去するステップをさらに含むことを特徴とする請求項62に記載の方法。
【請求項64】
前記選択した係数をコード化するステップが、少なくとも1つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項37に記載の方法。
【請求項65】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項37に記載の方法。
【請求項66】
前記データ配列が、前記ビデオフレームの画素ブロックに対応していることを特徴とする請求項65に記載の方法。
【請求項67】
前記データ配列が、2つのビデオフレームから計算された残差に関連していることを特徴とする請求項65に記載の方法。
【請求項68】
前記残差が、2つのビデオフレーム間の動き補償に基づくことを特徴とする請求項67に記載の方法。
【請求項69】
前記残差が、2つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項67に記載の方法。
【請求項70】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することで前記残差が得られることを特徴とする請求項67に記載の方法。
【請求項71】
データをデコードする方法であって、前記方法は、
少なくとも1つの1次元変換および少なくとも1つの2次元変換を含む、複数の変換のグループを識別している情報を格納するステップと、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信するステップと、
データ配列を生成するために、前記パラメータの少なくとも1つによって示される前記複数の変換のグループからの変換に基づいて逆変換を計算するステップと、
を含むことを特徴とする方法。
【請求項72】
受信した複数のコード化された係数セットの各々および前記コード化された係数セットに関連するパラメータのそれぞれに対して逆変換を計算し、
前記複数の変換のグループから1つの1次元変換を示している、コード化された第1の係数セットに関連する前記パラメータの少なくとも1つに応じて、前記コード化された第1の係数の複数のサブセットの各々にて前記示された1次元逆変換の逆変換を計算し、各々の1次元変換の逆変換がデータ配列の異なる部分を生成し、
前記複数の変換のグループから1つの2次元変換を示している、コード化された第2の係数セットに関連する前記パラメータの少なくとも1つに応じて、データ配列を生成するために、前記コード化された第2の係数にて前記示された2次元変換の逆変換を計算する、
ことを特徴とする請求項71に記載の方法。
【請求項73】
前記データ配列の大部分をカバーする、1次元配列の複数パターンのグループを識別する情報を格納するステップをさらに含むことを特徴とする請求項71に記載の方法。
【請求項74】
前記複数の変換のグループから1次元変換を示している、前記コード化された係数に関連する前記パラメータの少なくとも1つ、および前記複数パターンのグループから1つのパターンを示している、前記コード化された係数に関連する前記パラメータの少なくとも1つに応じて、前記コード化された係数の複数のサブセットの各々にて、前記示された1次元変換の逆変換を計算するステップをさらに含み、
各々の1次元逆変換が、前記示されたパターンの異なる1次元配列を生成する、
ことを特徴とする請求項73に記載の方法。
【請求項75】
コード化されたデータをデコードするためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記データのコード化は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第1の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第2の係数セットを算出するステップと、前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから前記データ配列を表す1つの係数セットを選択するステップと、を含む方法を用いて行われ、
前記コンピュータプログラムはコンピュータシステムに、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを受信させ、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出させるための命令を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つによって示される変換に基づく、
ことを特徴とするコンピュータ可読メディア。
【請求項76】
トランスミッタと1つ以上のレシーバとを備えるシステムであって、
前記トランスミッタは、
データ配列の異なる部分にて各々が計算された複数の変換に基づく第1の係数セットおよび前記データ配列で計算された変換に基づく第2の係数セットを算出し、
前記第1の係数セットおよび前記第2の係数セットを含む複数の係数セットのグループから、前記データ配列を表す1つの係数セットを選択し、
前記選択された係数および前記選択された係数に関連する1つ以上のパラメータをコード化するように構成され、
前記1つ以上のレシーバの各々は、
コード化された係数および前記コード化された係数に関連する1つ以上のパラメータを前記トランスミッタから受信し、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出するように構成され、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも1つよって示される変換に基づく、
ことを特徴とするシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図7D】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図7D】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12】
【図13】
【公表番号】特表2012−527168(P2012−527168A)
【公表日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2012−510864(P2012−510864)
【出願日】平成22年5月7日(2010.5.7)
【国際出願番号】PCT/US2010/033953
【国際公開番号】WO2010/132278
【国際公開日】平成22年11月18日(2010.11.18)
【出願人】(596060697)マサチューセッツ インスティテュート オブ テクノロジー (233)
【Fターム(参考)】
【公表日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成22年5月7日(2010.5.7)
【国際出願番号】PCT/US2010/033953
【国際公開番号】WO2010/132278
【国際公開日】平成22年11月18日(2010.11.18)
【出願人】(596060697)マサチューセッツ インスティテュート オブ テクノロジー (233)
【Fターム(参考)】
[ Back to top ]