(57)【特許請求の範囲】
【請求項１】
原データ（２０）を符号化する方法であって、伝送または格納のために対応する符号化データ（３０）を生成し、前記原データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つであり、前記方法は、
（ａ）前記原データ（２０）の一つ以上の部分を、複数のデータベース（１００）のいずれかの一つ以上の要素（Ｅ）に一致させることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データ（２０）の一つ以上の部分を前記一致した一つ以上の要素（Ｅ）に関連付ける参照値（Ｒ）を記録することと；
（ｂ）前記参照値（Ｒ）を、前記データベース（１００）および／または前記データベース（１００）を識別する情報と併せて、前記符号化データ（３０）に含めることと；
（ｃ）前記原データ（２０）を固有の領域識別子（Ｕ）を有する領域に分割することと；
（ｄ）前記領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（Ｒ）を計算することと；
（ｅ'）使用した符号化方法を格納および／または伝送することと；
を含み、さらに、
（ｆ１）前記原データ（２０）に適用された計算によって得られた参照値（Ｒ）に対応する前記原データ（２０）の前記一つ以上の部分が、前記複数のデータベースのいずれかに既に格納または伝送されている場合は、要素（Ｅ）を一意に識別するために、前記原データ（２０）の前記一つ以上の部分を格納および／または伝送せずに、前記参照値（Ｒ）または圧縮状態の前記参照値（Ｒ）を前記符号化データ（３０）に格納および／または伝送すること、または、
（ｆ２）前記原データ（２０）に適用された計算によって得られた参照値（Ｒ）に対応する前記原データ（２０）の前記一つ以上の部分が、前記複数のデータベースのいずれかに既に格納または伝送されていない場合は、前記符号化された、および／またはオリジナルの、前記原データ（２０）の前記一つ以上の部分を、前記参照値（Ｒ）を格納および／または伝送せずに、前記符号化データ（３０）に格納および／または伝送すること、
を含む、方法。
【請求項２】
原データ（２０）を符号化して対応する符号化データ（３０）を生成するエンコーダ（１０）であって、前記原データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つであり、前記エンコーダ（１０）は、
（ａ）前記原データ（２０）の一つ以上の部分を、複数のデータベース（１００）のいずれかの一つ以上の要素（Ｅ）に一致させることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データ（２０）の一つ以上の部分を前記一致した一つ以上の要素（Ｅ）に関連付ける参照値（Ｒ）を記録することを実行する第１のデータ処理ハードウェアと；
（ｂ）前記参照値（Ｒ）を、前記データベース（１００）および／または前記データベース（１００）を識別する情報と併せて、前記符号化データ（３０）に含める第２のデータ処理ハードウェアと；
を備え、
前記エンコーダ（１０）はさらに、
（ｃ）前記原データ（２０）を受信し、前記原データ（２０）を固有の領域識別子（Ｕ）を有する領域に分割することと；
（ｄ）前記領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（Ｒ）を計算することと；
（ｅ'）使用した符号化方法を格納および／または伝送することと；
を実行でき、更に、
（ｆ１）前記原データ（２０）に適用された計算によって得られた参照値（Ｒ）に対応する前記原データ（２０）の前記一つ以上の部分が、前記複数のデータベースのいずれかに既に格納または伝送されている場合は、要素（Ｅ）を一意に識別するために、前記原データ（２０）の前記一つ以上の部分を格納および／または伝送せずに、前記参照値（Ｒ）または圧縮状態の前記参照値（Ｒ）を前記符号化データ（３０）に格納および／または伝送すること、または、
（ｆ２）前記原データ（２０）に適用された計算によって得られた参照値（Ｒ）に対応する前記原データ（２０）の前記一つ以上の部分が、前記複数のデータベースのいずれかに既に格納または伝送されていない場合は、前記符号化された、および／またはオリジナルの、前記原データ（２０）の前記一つ以上の部分を、前記参照値（Ｒ）を格納および／または伝送せずに、前記符号化データ（３０）に格納および／または伝送すること、
を実行できる、エンコーダ（１０）。
【請求項３】
処理手段と、プログラム命令を格納する記憶手段とを有する装置であって、前記プログラム命令は前記処理手段に実行されると、前記装置に請求項１に記載の符号化方法を遂行させるように構成される、装置。
【請求項４】
請求項１に記載の符号化方法によって提供される符号化データ（３０）の復号方法であって、対応する復号出力データ（６０）を生成し、前記復号方法は、
（ａ）参照値（Ｒ，３００），領域識別子（Ｕ）に関連する情報，および一つ以上のデータベース（１００）を識別する情報を含む符号化データ（３０）を受信することと；
（ｂ）前記符号化データ（３０）から前記参照値（Ｒ，３００）を復号することと；
（ｃ）前記参照値（Ｒ，３００）が示す前記一つ以上データベース（１００）からの一つ以上の要素（Ｅ）にアクセスすることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記アクセスすることと；
（ｄ）対応する復号出力データ（６０）を全て集合させて、一つ以上のデータブロックを生成することと；
を含む、方法。
【請求項５】
請求項１に記載の符号化方法によって提供される符号化データ（３０）を復号して対応する復号データ（６０）を生成するデコーダ（５０）であって、前記デコーダ（５０）は、
（ａ）参照値（Ｒ，３００），領域識別子（Ｕ）に関連する情報，および一つ以上のデータベース（１００）を識別する情報を含む符号化データ（３０）を受信する第１のデータ処理ハードウェアと；
（ｂ）前記符号化データ（３０）から前記参照値（Ｒ，３００）を復号する第２のデータ処理ハードウェアと；
（ｃ）前記参照値（Ｒ，３００）が示す前記一つ以上データベース（１００）からの一つ以上の要素（Ｅ）にアクセスすることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記アクセスする第３のデータ処理ハードウェアと；
（ｄ）対応する復号出力データ（６０）を全て集合させて、一つ以上のデータブロックを生成する第４のデータ処理ハードウェアと；
を備える、デコーダ（５０）。
【請求項６】
処理手段と、プログラム命令を格納する記憶手段とを有する装置であって、前記プログラム命令は前記処理手段に実行されると、前記装置に請求項４に記載の復号方法を遂行させるように構成される、装置。
【請求項７】
エンコーダ（１０）のコンピュータハードウェアで実行されると、前記コンピュータハードウェアに請求項１に記載の方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラム。
【請求項８】
デコーダ（５０）のコンピュータハードウェアで実行されると、前記コンピュータハードウェアに請求項４に記載の方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、キャプチャ画像および／またはオーディオデータ等の原データを符号化し、対応する符号化データを生成するエンコーダに関連する。また本開示は、符号化データを復号し、原データ等を表わす対応する復号データを生成するデコーダに関連する。エンコーダおよびデコーダは例えば、復号データを生成するデコーダで符号化データと共に処理される情報を含む一つ以上のデータベースを利用することができる。一つ以上のデータベースは例えば、一つ以上のデータサーバに配置されてもよい。さらに本開示は、原データを符号化して対応する符号化データを生成する方法にも関連する。またさらに本開示は、符号化データを復号化し、対応する復号化データであって、例えば、原データを表わす復号データを生成する方法にも関連する。この方法は例えば、復号データを生成するために符号化データと共に処理される情報を含む一つ以上のデータベースを利用することを含んでもよい。さらに加えて、本開示は、非一時的に、すなわち非一時的コンピュータ可読データ格納メディアに記録され、前述の方法を実装するためにコンピュータハードウェアで実行されるソフトウェア製品にも関連する。
【背景】
【０００２】
従来、キャプチャ画像データを現行のMPEGで符号化するといった原データの符号化は、原データに一つ以上の変換を加えて原データを符号化データに変換するといった原データの処理を含む。また、符号化データの復号は、符号化データに一つ以上の逆変換を加えて符号化データを対応する復号データに変換するといった符号化データの処理を含む。復号データは例えば、原データを表わすデータである。こうした符号化は、ソースコデータをデータキャリアに伝送または格納するためにそのデータサイズを減らす目的等で、原データの圧縮のために利用される。あるいは、または加えて、こうした符号化は、インターネット等の伝送媒体を通じて伝送する際、原データのセキュリティを高めるためにも利用される。従来は、こうした符号化および復号化は例えば、デジタルカメラやDVDプレーヤ，類似の消費者製品等に搭載される内蔵型処理ユニットとして実装されている。しかし、現在のデータ処理デバイス間の相互接続の増加に伴い、エンコーダおよびデコーダについても、それらを再構成可能にするソフトウェア製品を用いて実装されるように設計することが求められてきている。例えば、最近の発展・アップグレードされた符号化変換を用いて符号化された符号化データに対応するデコーダを採用するために、前述の事項が求められる。
【０００３】
公開済の米国特許第4553171号には、原画像の画素ブロックを表わす一連の符号ワードを参照して、デジタル画像をデジタル処理で印刷する方法が記載されている。原画像は、一様サイズの画素ブロックに分割されて符号化される。画素ブロックの各々は、その前にスキャンされたブロックの何れかと同一でない限り、それぞれ固有の識別子が付与される。同一の画素ブロックには同一の識別子が付与される。原画像は、符号ワードとして表現される識別子で示される前述の画素ブロックによって表現される。この原画像を印刷する際、識別子が順にスキャンされ、原画像の印刷出力を生成するプリンタを調節するために、対応する画素ブロックが順次バッファメモリに格納される。こうして、ブロック識別番号を有する識別子が含まれるデータから、原画像が印刷される。ブロック識別番号は、画素ブロックの表現を格納するデータベースの形態を参照する。
【０００４】
米国特許第4013828号には、画像がスキャンされ、画像内を所定サイズの要素群でディザ処理する、画像処理方法が記載されている。各画素群は、リモート配置されたディスプレイパネルのセル群に対応する。各画素群がスキャンされると、画素群に対応するディザ画像ビットで表現されるパターンは、第1メモリに格納されたパターンの辞書と比較される。そのパターンが第1メモリに格納されるパターンではない場合、そのパターンに関連する符号ワードが割当てられ、メモリに入れられる。また、パターンと符号ワードの両方がリモート配置ディスプレイパネルに伝送され、第2メモリに格納される。次に第2メモリがアクセスされ、スキャンされた画像に対応するセル群の各セルが、第2メモリに格納されたパターンに従って励起される。スキャンされたパターンが第1メモリに格納されたものと同一である場合、第1メモリと第2メモリ間のデータフローを減らすために、そのパターンに関連する符号ワードのみがリモート配置場所に伝送される。つまり、第2メモリに伝送済みのデータを再利用することによってデータフローを削減する。しかし、この方法では、従来の意味でデータを直接圧縮していない。
【０００５】
公開済みの英国特許第2362055号では、次の画像符号化方法が記載されている。
（a）画像を画像ブロックに分割することと；
（b）画像ブロックがデータベース内の既存ブロックと比較されることで画像ブロックを符号化すること、および、画像ブロック中の対応するブロックとの一致を調べるのに十分なだけデータベースから既存ブロックを選択することと；
（c）既存ブロックを表わす符号を参照して、画像ブロックを符号化することと；
を含む、方法。
この方法は符号ライブラリ、すなわちデータベースを利用する。しかし、互いに関連のないデータベース要素に関するデータであるため、データベース内検索を実行して一致の有無を見出すことは困難であり、データベース規模の増大に伴って、相当量のコンピュータリソースを必要とする。逆に、データベースが小さい場合、データベース内の既存ブロックは画像ブロックとは一致し難くなり、この方法で生成された符号化データからは、十分な品質で画像を構築できない結果になる可能性もある。しかし、この方法では、十分に一致しないときに新しい要素が作成され、新要素を識別する参照値と共に新要素が伝送される。
【０００６】
動画や画像，グラフィックス，音声等のデジタルデータの使用量は年毎に急速に増大している。こうした使用量のために、格納および伝送すべきデータ量も進行する時間に応じて急増している。また、こうした格納および伝送すべきデータ量の増加に伴い、ハードウェアデバイスでは更に処理能力と通信伝送帯域を提供するために消費電力も増えることから、益々多くのリソースが必要となる。本願出願人による米国特許出願（米国公開公報第2010/322,301号）に記載する画像生成器では、データベースを用いてバイト数を節約して画像の変更を行う方法に対応する技術的解決方法が定義されている。しかし、この方法では、高度なデータベースに基づくエンコーダと対応するデコーダを必要とし、画像やビデオ，グラフィックス，音声コンテンツ等のデジタルデータ全種に用いるより効率的な方式で、様々な種類のデータベースを提供できるようにしなくてはならない。
【摘要】
【０００７】
本発明は、キャプチャ画像データや音声データ，他の類似データ等の原データを符号化し、対応する符号化出力データを生成する改良方法を提供しようとする。また、こうした原データの符号化方法を実装できるエンコーダも提供される。
【０００８】
さらに本発明は、符号化データを復号化して対応する復号出力データを生成する改良方法も提供しようとする。
【０００９】
第1の態様に従って、添付する請求項1に記載の次の方法が提供される：原データの符号化方法であって、伝送または格納のために対応する符号化データを生成し、前記原データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含み、前記方法は：
（a）前記原データの一つ以上の部分と一つ以上のデータベースの一つ以上の要素（E）に一致させることであって、前記一つ以上の要素（E）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データの一つ以上の部分を前記一致した一つ以上の要素（E）に関連付ける参照値（R）を記録することと；
（b）前記参照値（R）を、前記一つ以上のデータベースおよび／または前記一つ以上のデータベースを識別する情報と併せて、前記符号化データに含めることと；
を含み、前記方法はさらに、
（c）前記原データを固有の領域識別子（U）を有する領域に分割することと；
（d）前記領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（R）を計算することと；
（e）前記原データに適用された計算によって得られた参照値（R）が、前記一つ以上のデータベースに既に格納または伝送されているか否かを調べることと、
要素（E）を一意に識別するために、前記参照値（R）または圧縮状態の前記参照値（R）を前記符号化データに格納および／または伝送すること、または、前記符号化および／または元の原データを前記符号化データに格納および／または伝送することと、
以前に前記参照値（R）が前記一つ以上のデータベースに格納されていない場合、新規要素（E）として前記一つ以上のデータベースに格納できることと；
を含む、方法。
【００１０】
本発明は、高品質の復号動画や画像，グラフィックス，音声コンテンツを提供しつつ、既知の現コーデックと比べて伝達されるビット数を減すことができるコーデックを提供するという利点を持つ。
【００１１】
（c）において、固有の領域識別子（U）はデータブロックのサイズや形状，位置を一意に示す。サイズは、32のデータ値や8×8のデータ値といった固定サイズでもよく、例えばデータブロック毎にデータコンテンツの種類に依存してもよい。領域識別子（U）や領域識別子（U）に関連する情報は、予め設定されていてもよい。
【００１２】
（d）で参照されるサンプリングに関して、参照値（R）を計算する際、データサンプルの全てを使用できてもよく、その一部だけでもよい。また、サンプルの一部だけを使用し、選択されたサンプルに対応する領域だけより高速の性能で高い精度を出せるようにしてもよい。また、参照値（R）を計算する際、サンプルの重み付けを利用し、重みが等しい場合と比べて一つ以上の望ましい利点を提供できるようにしてもよい。採用されるサンプリング方法は、個別ケース毎に必要に応じて選択される。例えば、データのロバスト性を向上させる、または、データの特性を強化するように選択される。
【００１３】
参照値（R）は次のように構成されてもよい：
（i）ブロック／パケットに対するデータ値の計算であって、それらの一つが例えば、全ブロック／パケットのデータ値に関して計算された一つの参照値と、それに加えてサブブロック／サブパケットのデータ値に関して計算された一つ以上の参照値である、計算が可能である；
（ii）要素の参照値は、振幅や標準偏差，平均，最小値，最大値，ハッシュ，インデックス等の複数の部分で構成されてもよい；
（iii）参照値は、符号化されるデータ内に存在する空間的な細部の関数等として、異なる精度で計算されてもよい。
【００１４】
前記方法は、一つ以上のデータベースを実装するために、一つ以上のゼロ平均データベースを使用することを含んでもよい。ゼロ平均データベースは一つ以上の翻訳または変換されたデータ値を備え、一つ以上の翻訳または変換されたデータ値は、翻訳または変換前の対応するデータ値と比べ、データメモリ容量が少なくてすむ。例えば、データベースの所定のデータベース要素における全データ値の平均を計算し、データ値からその平均を引き、翻訳または変換されたデータ値をゼロ値の周りで相対的に変化させることによって、ゼロ平均データベースは作成される。こうした一つ以上のゼロ平均データベースはサイズが小さく、通信ネットワーク経由でそれらを伝達する必要が生じた場合、効率よく圧縮することができる。ゼロ平均データベースのデータベース要素がゼロ平均であることは非常に稀である。しかし、その様なデータベース要素であっても、それを一つずつインクリメントまたはデクリメントすることで、そのデータベース要素の平均値よりもゼロから更に離れた新たな平均値、または少なくともそのデータベース要素の平均値と同程度だけゼロから離れた値を得る可能性がある。この理由は次の通りである：所定の原データブロックの平均は通常整数ではなく、実数である。つまり、浮動小数点数であって、それ故、その整数部分が要素の全データ値である平均から引かれ、小数部分は(-0.5 ... 0.5]または[-0.5...0.5)の範囲の何れかにあるからである。
【００１５】
「ゼロ平均」の目的は、一つ以上のデータベース内のメモリ空間、すなわちメモリ使用量を保持するが、データ転送においては保持しないことである。実際には、ゼロ平均を用いる場合、単一のブロックに対するデータサイズは増加する。これは、元々のダイナミックレンジに代わって、各要素の値に符号ビットが必要になるため、ゼロ平均値を表わす追加の1ビットが必要になるからである。実際の符号ビットを使用する必要性は、ゼロ平均データベース要素に所定のペデスタル値を用いることによって、データベースを格納する際に取り除くことができる。データベース要素の値のダイナミックレンジも量子化により縮小できるが、量子化によって情報の一部が失われる。また、動的圧縮のためにルックアップテーブルが使用されてもよい。しかし、こうした方法でも一部の情報が失われることになる。しかし、ゼロ平均要素を用いることによって、平均値が変化してもデータベースに新たな要素が挿入されることはない。その代わり、同一の要素が再利用され、懸案のダイナミックレンジにおいては、特定の要素が全平均に適合することになる。データベース自体が伝送される場合、例えば、256要素（8ビット階調）の代わりに特定の要素だけが伝送されるだけで済む。つまり、参照値の平均の変動によってデータベースに新たな要素が挿入されない代わりに、平均値は最終データブロックを構成するために、データベースの要素と共に使用される。
【００１６】
一つ以上のデータベースは、一つ以上のデータサーバに配置されてもよい。例えば、一つ以上のデータサーバが一つ以上のサービスプロバイダといった第三者に帰属していてもよい。また、一つ以上のデータベースの使用が、登録料および／または一つ以上のデータベースにアクセスする際の従量料金の支払いといった課金対象であってもよい。
【００１７】
前記方法を実装する際、一つ以上のデータベースは、一つ以上の静的データベースおよび／または一つ以上の動的データベースを備えてもよい。
【００１８】
参照値（R）はデータサンプルを基に計算された値で構成されるが、他の部分を含むこともできる。さらに、参照値は実際に正確な概念でなくてもよい。換言すれば、参照値は高速検索を目的として計算されるのであって、その多くは精度が非常に高くても、逆に低くてもよい。
【００１９】
しかし、送信後の参照値（R）に関しては、エンコーダとデコーダとの間で対象とするブロックを個別に識別する値を参照する。データベースへの要素の格納は、この送信された参照値（R）に基づいている。静的データベースに対しては通常、送信された参照値（R）が、検索に使用されたもので、量子化の少ない、またはより正確な参照値（R）を含む。そして、順番を参照する値も大抵含んでいる。動的データベースに対しては、送信された参照値（R）が、その要素の構成順序と発生確率を示す唯一の値であることが多い。
【００２０】
静的データベースは通常変更されないので、送信された参照値（R）は各要素（E）に対し、エンコーダおよびデコーダの両方で常に同一である。一方、動的データベースは絶えず変更される。一部の要素（E）は確率が高いため、そうした要素がより効率よく圧縮されるように、要素の参照値（R）を連続的に小さくしてもよい。
しかし、動的に送信される参照値（R）が、ブロックのサンプルに関連する部分を含んでもよいことを理解されたい。ただし、これは必須ではない。
【００２１】
しかし、動的要素（E）の検索に関しては、各要素（E）について、高精度で格納されたブロックのサンプルから構成された対応する参照値（R）を持つことによって、この処理もより迅速に実行されてもよい。動的データベースの検索は、特定の確率順のソートで要素（E）を格納することによって更に高速化されてもよく、こうして頻出要素（E）が高速で見つけられる。静的データベースの送信済み参照値（R）は順番を示す前述の部分を含むため、この部分は特に、複数ビット長の場合、前述の動的データベースの送信済み参照値（R）として望む通りに、動的に利用されてもよい。
【００２２】
しかし、所定の静的データベースにおけるこの種の機動性は通常、望ましい特徴ではない。何故なら、こうした場合では、所定のケースでどの要素が参照されているかが確認されるまで、データストリームの最初から利用したビット位置までの全体が符号化されなくてはならないからである。したがって、静的データベースにおける一つの重要な利点である一義性と明確性が失われることになる。圧縮率は僅かに向上する可能性はあるが、同時に、参照値（R）の動的部分によって高められた、データ復号時に関連する自由なホッピングが失われる。
【００２３】
この観点では、動的データベースの使用は時限的にできるという利点がある。この場合、動的データベースによって得られるポイントで復号を再開するように、前述のデータのジャンプを実行してもよい。静的データベースの第2の主要な利点は、それが符号化開始前から常に分かっていて、その要素（E）も通常、デコーダやエンコーダに伝送される必要がないことである。換言すれば、参照値（R）と量子化参照値（R），順番，伝送済み参照値（R）（すなわちインデックス）が組合せられて、データベース内の特定の固有要素（E）を参照する。
【００２４】
こうして、エンコーダで検索される場合、エンコーダおよびデコーダからファイルまたはデコーダに伝送されるものより精度が益々高い参照値（R）の精度が利用される。また、エンコーダが各データベースに対して可能な限り高精度の参照値（R）を格納し、検索が高速かつ高精度になり、僅かな照合だけで済むという利点も持つ。しかし、稀に最良の要素（E）を逃すこともありうる。
【００２５】
前記方法は次の少なくとも一つを利用してもよい：
（a）一つ以上の動的データベースから要素を選択することによって、前記一つ以上の静的データベースが作成されること；
（b）前記一つ以上の動的データベースに含める一つ以上の要素（E）を生成するために、前記原データの一つ以上の部分に存在する情報が処理されること；
（c）最初の一つ以上のデータベースから要素（E）を選択し、前記符号化データと併せて使用するために、該要素を前記一つ以上の動的データベースに含めること。
【００２６】
また、本発明により、データメモリやデータキャリア，その他類似のデータストレージのデータサイズを削減し、コンピュータリソースや電力消費量，データ負荷時間を節約できる利点がもたらされる。
【００２７】
前記方法ではまた、世界中のインターネットサービスプロバイダ（ISP）がクライアントLAN（ローカルエリアネットワーク）により高速の静的データベースを提供できる。これにより、動作時には所定のLANにおいて比較的少量の新規データブロックだけを送信し、既存のデータベース参照データブロックは静的データベースから受信されるため、より効率的なデータ転送が実現される。前記方法は、通信ネットワークを介して一つ以上のデータベースに接続されるデコーダに実装されてもよい。また、一つ以上のデータベースの少なくとも一つは、エンコーダのそれへと互いに類似する、通信ネットワークのローカルエリアネットワーク（LAN）内にあってもよい。一つ以上のデータベースは、一つ以上のデータサーバでホストされてもよい。例えばデータベースサーバが、前記方法を実装するコーデックに空間的に隣接する方法で、空間的に隣接するメモリ等に実装されてもよい。
【００２８】
前記方法では、参照値（R）は、符号化データに含めるために個別に符号化される複数の部分を含んでもよい。前記方法ではさらに、符号化データに含めるために符号化される前に、複数の部分の一つ以上が組合せられてもよい。複数の部分は、参照値（R）を用いてアクセスされる一つ以上のデータブロックの分散V，平均M，振幅Aの特性に関連してもよい。
【００２９】
分散Vの代わりに標準偏差が使われてもよく、新たな参照値（R）として最小値や最大値，最頻値，中央値が使われてもよい。最小値や最大値，振幅に関しては、このうちの二つだけを必要としてもよい。残った第3の値は、他の二つの値に基づいて算出できる利点がある。また、完全一致検索においては、多種多様なハッシュ値とCRC値も有効な参照値（R）である。あるいは、順序数を使うのとは別の方法で、ブロック同士の組合せにおける類似の参照値（R）を有するブロックを区別したい場合にも有効である。こうしたアプローチには、所定のデータブロックのデータからハッシュ値とCRC値が計算でき、伝送順序には依存しないという利点がある。
【００３０】
検索のために全ての値が最大精度で利用されてもよい。しかし、参照値（R）が伝送されるか要素（E）がデータベースに格納される場合、ある精度で（0からn項目の）特定の参照値が選択されてもよく、順序数に関係する箇所や部分でもよい。これらは、格納済みデータベース要素とそのデータ値を明確かつ一義的に全て識別する。
【００３１】
送信される参照値（R）のパラメータの精度と総数は、品質パラメータ（Q）に依存してもよい。例えば、静的データベースから高品質で送信される参照値（R）は、8ビットの平均値と8ビットの標準偏差，6ビットの振幅，6ビットの最小値，8ビットの順序数を含んでもよい。一方、静的データベースから低品質で送信される参照値（R）は、7ビットの平均値と7ビットの標準偏差，5ビットの振幅，4ビットの順序数で十分であってもよい。
【００３２】
動的データベースに関しては、動的データベースから送信される参照値（R）は高品質では、例えば16ビットで表わされる順序数を含み、低品質では10ビットで十分であってもよい。格納された参照値（R）および検索に用いる参照値（R）は、平均値と標準偏差用の16ビットと、データのダイナミックレンジを示す情報、例えば、振幅，最小値，最大値，最頻値，中央値用の8ビットを合わせて、表わされてもよい。また、データに依存する全ての参照値（R）は例えば、エンコーダおよびデコーダの両方で、復号データブロックのサンプルから計算されてもよい。したがって、エンコーダおよびデコーダの両方とも、同一精度かつ参照値に求められる精度で参照値を常に計算できる。
【００３３】
エンコーダは高速検索のために最大精度を必要とする。エンコーダおよびデコーダは更に、送信された参照値（R）が示す正しいデータベースアドレスにデータベース要素（E）が格納され、後で使えるように、計算済みの値を少なくとも伝送に必要な精度で持つ必要がある。参照値（R）の量子化および圧縮は共に符号化データ量を削減できるが、両者は異なるものであることは理解されよう。しかし、圧縮は可逆になりうるが、量子化では、値を扱い易くするために望ましい方式で情報を落とし、データベースサイズと伝送データ量等を明確に削減する。
【００３４】
前記方法では、参照値（R）が、一つ以上のデータベースの対応する一つ以上の要素（E）の検索を導く情報を含んでもよい。
【００３５】
前記方法ではまた、一つ以上の要素（E）が、一つ以上の対応するデータブロックを内挿で計算するための一つ以上のパラメータを含んでもよい。内挿に加え、または代えて、デシメーションや外挿，クロッピング等の他の計算方法が用いられてもよい。これらは、上方または下方にスケーリングする、値をより大きいブロックに拡大する、または要素の小さい区画のみを使うことによって使用できる全てのデータベース要素（E）に関連する。コースの外挿およびクロッピングは、外挿される場所およびクロッピングするブロックの場所を示す情報ビットを必要とする。しかし、内挿およびデシメーションは復号されるブロックサイズとデータベース要素（E）のブロックサイズとの間の関係に従って、自動的に機能することができる。内挿およびデシメーションする方法は、符号化データに格納および／または伝送されるか、予め選択されていてもよい。
【００３６】
前記方法では、一つ以上の動的データベースが一定時間に限って作成された後、削除されてもよい。
【００３７】
前記方法は、参照値（R）を用いてデータベース内の要素（E）に対し、頻繁にアクセスされる要素（E）ほど速くアクセスできるようにするために、要素（E）のアクセス頻度の関数としてデータベースの一つ以上を再構成することを含んでもよい。
【００３８】
前記方法では、原データの一つ以上の部分と前記一つ以上の静的データベースにおける一つ以上の要素との一致が検出されない場合、または要素（E）がその一つ以上の送信済み参照値（R）のビット数を非常に多く使う場合、一つ以上の動的データベースの要素（E）が生成されてもよい。
【００３９】
また前記方法では、原データの一つ以上の部分を前記一つ以上のデータベースの一つ以上の要素と一致させることは、品質閾値の範囲内で行われ、品質閾値は、参照値（R）を生成する間に動的に変更されてもよい。
【００４０】
また前記方法では、一つ以上の参照値（R）が規定する一つ以上の要素（E）を用いて原データの対応する一つ以上の部分を再構成するために、一つ以上の参照値（R）が使用され、再構成された一つ以上の部分と原データにおける元の対応する一つ以上の部分との間の誤差が決定され、誤差が符号化されて符号化データ（30）に含められてもよい。
【００４１】
また前記方法では、一つ以上の要素（E）に対応する一つ以上のデータブロックが次の少なくとも一つでもよい：視覚的に表示される際に、1次元，2次元または3次元の多角形，長方形，楕円形，円形，長円形，三角形等。
【００４２】
前記方法では、第1のデータベースの一つ以上の要素の一つは、一つ以上データベースうちの別の一つ以上のデータベースに存在する一つ以上の要素（E）を参照可能であってもよい。換言すれば、第1のデータベースの要素（E）は対応するデータブロックが生成されデータベースの要素（E）を参照できる。
【００４３】
前記方法では、符号化データに含まれる一つ以上の参照値（R）は圧縮形式であってもよい。
【００４４】
前記方法では、一つ以上データベースは、原データに存在するコンテンツの性質に応じて選択されるおよび／またはサイズが変わってもよい。
【００４５】
第2の態様に従って、次のエンコーダが提供される：原データを符号化して対応する符号化データ（30）を生成するエンコーダであって、前記エンコーダは：
（a）前記原データの一つ以上の部分と一つ以上のデータベースの一つ以上の要素（E）に一致させることであって、前記一つ以上の要素（E）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データの一つ以上の部分を前記一致した一つ以上の要素（E）に関連付ける参照値（R）を記録することを実行する第1のデータ処理ハードウェアと；
（b）前記参照値（R）を、前記一つ以上のデータベースおよび／または前記一つ以上のデータベースを識別する情報と併せて、前記符号化データに含める第2のデータ処理ハードウェアと；
を備え、前記データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含み、前記エンコーダはさらに、
（c）前記原データを一つ以上のデータブロックの形式で受信し、前記一つ以上のデータブロックを固有の領域識別子（U）を有する領域に分割することと；
（d）前記一つ以上のデータブロックの領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（R）を計算することと；
（e）前記一つ以上のデータブロックに適用された計算結果として得られた参照値（R）が、前記一つ以上のデータベースに既に格納または伝送されているか否かを調べることと、要素（E）を一意に識別するために、前記計算済み参照値（R）または圧縮参照値を前記符号化データに格納および／または伝送すること、または、前記符号化および／または元の原データを前記符号化データに格納および／または伝送することと、以前に前記参照値（R）が前記一つ以上のデータベースに格納されていない場合、新規要素（E）として前記一つ以上のデータベースに格納できることと；
を実行できる、エンコーダ。
【００４６】
前記エンコーダでは、一つ以上のデータベースは、一つ以上の静的データベースおよび／または一つ以上の動的データベースを備えてもよい。
【００４７】
前記エンコーダは次の少なくとも一つを利用してもよい：
（a）一つ以上の動的データベースから要素を選択することによって、前記一つ以上の静的データベースが作成されること；
（b）前記一つ以上の動的データベースに含める一つ以上の要素（E）を生成するために、前記原データの一つ以上の部分に存在する情報が処理されること；
（c）最初の一つ以上のデータベースから要素（E）を選択し、前記符号化データと併せて使用するために、該要素を前記一つ以上の動的データベースに含めること。
【００４８】
前記エンコーダは通信ネットワークを介して一つ以上のデータベースに接続され、一つ以上のデータベースの少なくとも一つは、エンコーダのそれへと互いに類似する、通信ネットワークのローカルエリアネットワーク（LAN）内にあってもよい。一つ以上のデータベースは、一つ以上のデータサーバを用いて実装されてもよい。
【００４９】
また前記エンコーダでは、第1のデータ処理ハードウェアが、符号化データに含めるために個別に符号化される複数の部分を含む参照値（R）を生成できてもよい。前記エンコーダはまた、符号化データに含めるために、複数の部分の一つ以上を符号化前に統合できてもよい。
【００５０】
前記エンコーダでは、参照値（R）が、前記一つ以上のデータベースおよび／または前記一つ以上のデータベースを識別する情報と併せて、前記符号化データに含んでもよい。
【００５１】
前記エンコーダではまた、参照値（R）が、一つ以上の対応するデータブロックを内挿で計算するための一つ以上のパラメータを含んでもよい。あるいは、前記エンコーダでデシメーションや外挿，クロッピングが用いられてもよい。こうした計算は、上方または下方にスケーリングする、値をより大きいブロックに拡大する、または要素の小さい区画のみを使うことによって使用できる全てのデータベース要素に関連するという利点を持つ。外挿およびクロッピングはまた、外挿される場所およびクロッピングされるブロックの部分に関する情報を必要とする。しかし、内挿およびデシメーションは復号されるブロックサイズとデータベース要素（E）のブロックサイズとの間の関係に従って、自動的に機能することができる。内挿およびデシメーションする方法は、符号化データに格納および／または伝送されるか、予め選択されていてもよい。
【００５２】
前記エンコーダでは、一つ以上の動的データベースが一定時間に限って作成された後、削除されてもよい。
【００５３】
前記エンコーダは、参照値（R）を用いてデータベース内の要素（E）に対し、頻繁にアクセスされる要素（E）ほど速くアクセスできるようにするために、要素（E）のアクセス頻度の関数としてデータベースの一つ以上を再構成できてもよい。
【００５４】
前記エンコーダでは、原データの一つ以上の部分と前記一つ以上の静的データベースにおける一つ以上の要素との一致が検出されない場合、または要素（E）がその送信済み参照値（R）のビット数を非常に多く使う場合、一つ以上の動的データベースの要素（E）が生成されてもよい。
【００５５】
また前記エンコーダでは、原データの一つ以上の部分を前記一つ以上のデータベースの一つ以上の要素と一致させることは、第1のデータ処理ハードウェアによって、品質閾値の範囲内で行われ、品質閾値は、参照値（R）を生成する間に動的に変更されてもよい。
【００５６】
また前記デコーダでは、第1のデータ処理ハードウェアが、一つ以上の参照値（R）が規定する一つ以上の要素（E）を用いて原データの対応する一つ以上の部分を再構成するために、一つ以上の参照値（R）が使用できてもよく、第1のデータ処理ハードウェアが、再構成された一つ以上の部分と原データにおける元の対応する一つ以上の部分との間の誤差を特定し、第2のデータ処理ハードウェアが、その誤差を符号化して符号化データに含めてもよい。
【００５７】
また前記エンコーダでは、一つ以上の要素（E）に対応する一つ以上のデータブロックが次の少なくとも一つでもよい：視覚的に表示される際に、1次元，2次元または3次元の多角形，長方形，楕円形，円形，長円形，三角形等。
【００５８】
前記エンコーダでは、第1のデータベースの一つ以上の要素の一つは、一つ以上データベースうちの別の一つ以上のデータベースに存在する一つ以上の要素（E）を参照可能であってもよい。
【００５９】
前記エンコーダでは、符号化データに含まれる一つ以上の参照値（R）は圧縮形式であってもよい。
【００６０】
前記エンコーダでは、第1のデータ処理ハードウェアが、原データに存在するコンテンツの性質に応じて、一つ以上データベースを選択できてもよい。
【００６１】
第3の態様に従って、次の方法が提供される：符号化データを復号して対応する復号出力データを生成する方法であって、前記方法は：
（a）参照値（R），領域識別子に関連する情報，および一つ以上のデータベースを識別する情報を含む符号化データを受信することと；
（b）前記符号化データから前記参照値（R）を復号することと；
（c）前記参照値（R）が示す前記一つ以上データベースからの一つ以上の要素（E）にアクセスすることであって、前記一つ以上の要素（E）は対応する一つ以上のデータブロックを表わす、前記アクセスすることと；
（d）対応する復号出力データを全て集合させて、一つ以上のデータブロックを生成することと；
を含む、方法。
【００６２】
前記方法はまた、
（e）データベース内のデータを保持することであって、前記データは、前記参照値（R）に対応する音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含む、前記保持することと；
（f）前記符号化データに含まれる、領域識別子（U）に関連する情報に基づいて、領域識別子を生成することと；
（g）一つ以上の領域識別子（U）に対応する参照値（R）を前記符号化データから受信する、または読出すことと；
（h）前記参照値（R）に基づいて、前記参照値（R）に対応する一つ以上の領域識別子（U）の対応するデータを、前記データベースから読出すことと；
（i）前記データベースから読出したデータに基づいて、前記領域識別子（U）に基づく復号出力データの全てを集合させたデータブロックを生成することと；
を含んでもよい。
【００６３】
前記方法のステップ（c）に関して、デコーダにおける要素（E）の参照値（R）は、伝送において使用済みのもの、つまり量子化され、複数のセクションから成るものであることに留意すべきである。特定かつ同一の要素（E）に対し、複数の参照値（R）が存在してもよい。参照値（R）は、一つ以上の静的データベースおよび／または一つ以上の動的データベースで同時に使用されてもよいからである。また、高品質のデータブロックの一部が低品質データブロックとして使用されることもあり、異なる量子化レベルにおける参照値（R）の一部は、別のブロック参照値（R）を生成してもよい。換言すれば、一つの要素（E）が複数の参照値（R）を有してもよいが、一つの参照値（R）は、複数の要素（E）が次の何れか：それぞれ別のデータベースにある場合；異なる品質で用いられる場合；複数の代替物から明確かつ一義的に選択される要素（E）の特性を備えない場合；でない限り、複数の要素（E）を参照してはならない。
【００６４】
例えば、平均値が削除された状況でこうした要素（E）が使用される場合、大きい平均値によって生じた、振幅の大きいブロックは、平均値の小さいブロックに対しする否定として扱われ、平均値の大きいブロックに対しては通常通りに使用される。これらを互いに入れ替えようとする場合、データ値のダイナミックレンジに収まらない値を生じさせる。例えば、8ビットの場合、平均値なしのデータベース要素に対しては±8ビットが使用される。例として、振幅が200、格納時の平均値1が220、使用時の平均値2が30の場合、否定の使用または非使用が明確に推測できる。この場合、平均値を使わないデータベース要素のデータ値は例えば、-170となり、平均値2に組合せることができない。しかしその否定である+170は問題のデータ値に対して有効である。こうして、伝送済み参照値は参照値または順序数の部分以外の他の情報を含むことができる。ただし多くの場合、この他の情報は符号化情報とは別の形で伝送されるという利点もある。例えば、平均値のないデータベースでは、平均値単独が既に常時必要な情報であり、参照値（R）の一部となるか、別に追加される符号化情報となりうる。
【００６５】
これに対応して、特定かつ同一の要素（E）が回転または反転結果を含む場合、別の変形例として、参照値（R）に別の区別できる数値情報部分があってもよく、あるいは、符号化情報の伝送とは別に、同一の情報を示すようにしてもよい。こうした形態の全てに共通することは、データベースに格納された一つの要素（E）に対して、平均値や回転，反転等のパラメータの設定方法に応じて、別のブロック復号を提供することができることである。スケーリングやクロッピング，外挿等においても同様である。
【００６６】
こうした情報の一部によって、受信済みの他の情報または先に復号済みのブロックに基づく変動補正も可能となる。ただし、これに対応して、その選択肢をデコーダでも使用可能であれば、一義的に復号方法を提供できるように、情報の一部が伝送されなくてはならない。例えば、否定を用いた振幅と平均値の関係も、大きい振幅と小さいまたは大きい平均値から推定される。しかし、そうでない場合は推定できない。これに対応して、先に復号済みのブロックに基づいて、回転や反転によって補正される連続性を基に推定される。しかし、推定が明確に一義的でない全ての場合で、参照値（R）の一部または別の情報の何れかで、追加情報を伝送する必要がある。
【００６７】
前記方法では、一つ以上のデータベースは、一つ以上の静的データベースおよび／または一つ以上の動的データベースを備えてもよい。
【００６８】
また前記方法では、一つ以上のデータベースは、復号方法を実行するように構成されるデータ処理ハードウェアに独立してローカルに配置されてもよい。また前記方法では、一つ以上のデータベースは、データ処理ハードウェアも備えるLANでホストされてもよい。
【００６９】
前記方法は、一つ以上の静的データベースの一つ以上の要素（E）および／または前記符号化データから提供される情報から、一つ以上の動的データベースを作成することを含み、作成された一つ以上の動的データベースは、前記符号化データの復号に使用されてもよい。
【００７０】
前記方法はまた、一つ以上の要素（E）から対応する一つ以上のデータブロックを生成することを含んでもよい。一つ以上のデータブロックは次の少なくとも一つである：視覚的に表示される際に、1次元，2次元または3次元の多角形，長方形，楕円形，円形，長円形，三角形等。
【００７１】
第4の形態に従って、次のデコーダが提供される：符号化データを復号して対応する復号データを生成するデコーダであって、前記デコーダは、
（a）参照値（R），領域識別子（U）に関連する情報，および一つ以上のデータベースを識別する情報を含む符号化データを受信する第1のデータ処理ハードウェアと；
（b）前記符号化データから前記参照値（R）を復号する第2のデータ処理ハードウェアと；
（c）前記参照値（R）が示す前記一つ以上データベースからの一つ以上の要素（E）にアクセスすることであって、前記一つ以上の要素（E）は対応する一つ以上のデータブロックを表わす、前記アクセスする第3のデータ処理ハードウェアと；
（d）対応する復号出力データを全て集合させて、一つ以上のデータブロックを生成する第4のデータ処理ハードウェアと；
を備える、デコーダ。
【００７２】
第1および第2のデータ処理ハードウェアが同一の処理ユニットまたは別々の複数の処理ユニットでもよいことは理解されよう。同様に、第1および／または第2の処理ハードウェアの機能を実行する多数の処理ユニットであってもよい。可能な実装形態は多数あり、本出願で記載する実施例に限定されない。
【００７３】
前記デコーダはまた、
（e）データベース内のデータを保持することであって、前記データは、前記参照値（R）に対応する音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含む、前記保持することと；
（f）前記符号化データ（30）に含まれる、領域識別子（U）に関連する情報に基づいて、領域識別子を生成することと；
（g）一つ以上の領域識別子（U）に対応する参照値（R）を前記符号化データから受信する、または読出すことと；
（h）前記参照値（R）に基づいて、前記参照値（R）に対応する領域識別子（U）を、前記データベースから読出すことと；
（i）前記データベースから読出したデータに基づいて、前記領域識別子（U）に基づく復号出力データ（60）の全てを集合させたデータブロックを生成することと；
を実行するように構成されてもよい。
【００７４】
前記デコーダでは、一つ以上のデータベースは、一つ以上の静的データベースおよび／または一つ以上の動的データベースを備えてもよい。
【００７５】
また前記デコーダでは、一つ以上のデータベースは、デコーダのデータ処理ハードウェアに独立してローカルに配置されてもよい。また前記デコーダでは、一つ以上のデータベースは、デコーダのデータ処理ハードウェアも備えるLANでホストされてもよい。あるいは、または加えて、一つ以上のデータベースは、デコーダのデータメモリ（RAM，ROM）等に配置されてもよい。
【００７６】
前記デコーダは、一つ以上の静的データベースの一つ以上の要素（E）および／または前記符号化データから提供される情報から、一つ以上の動的データベースを作成し、作成された一つ以上の動的データベースは、対応する復号データを生成するために前記符号化データの復号に使用されてもよい。
【００７７】
前記デコーダはまた、一つ以上の要素（E）から対応する一つ以上のデータブロックを生成できてもよい。一つ以上のデータブロックは次の少なくとも一つである：視覚的に表示される際に、1次元，2次元または3次元の多角形，長方形，楕円形，円形，長円形，三角形等。
【００７８】
第5の形態によれば、原データを符号化して対応する符号化データを生成する、第2の形態に従うエンコーダの少なくとも一つと；符号化データを受信し、符号化データを復号して対応する復号データを生成する、第4の形態に従うデコーダの少なくとも一つと；を備える、コーデックが提供される。
【００７９】
前記コーデックは、パーソナルコンピュータ（PC）やビデオレコーダー，ビデオプレーヤー，スマート電話，ゲーム機器，科学装置，医療機器，監視装置，セキュリティ機器，センサ，その他の計測機器やデジタルカメラ等、一つ以上の消費者電子製品に組込まれてもよい。
【００８０】
前記コーデックでは、少なくとも一つのエンコーダおよび少なくとも一つのデコーダは、符号化データに含まれる参照値（R）によって参照される一つ以上のデータベースを共有してもよい。
【００８１】
第6の形態によれば、エンコーダのコンピュータハードウェアで実行されると、該コンピュータハードウェアに第1の形態に従う方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラムが提供される。
【００８２】
第7の形態によれば、デコーダのコンピュータハードウェアで実行されると、該コンピュータハードウェアに第３の形態に従う方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラムが提供される。
【００８３】
本発明の構成は、添付の特許請求の範囲に定義される本発明の範囲を逸脱しない限りにおいて、様々に組合せ可能であることを理解されたい。
【図面の簡単な説明】
【００８４】
以下、本明細書に開示される実施形態を単なる例示として且つ添付の図面を参照して説明する。
【図１】本開示に従うエンコーダおよびデコーダ、つまりコーデックを構成する組合せの概略図である。
【図２】図1のコーデックに送信される新規要素の概略図である。
【図３】図1のコーデック内で伝達される参照値を複数に分割して定義される部分の概略図である。  添付図面において下線の引かれた番号は、その番号が位置するアイテムやその番号が隣接するアイテムを表わすために使用される。下線が引かれていない番号は、その番号と線で結ばれて特定されるアイテムに関連している。
【実施形態の説明】
【００８５】
本明細書に開示される実施形態を説明する際、次の表1に示す略語を使用する。
［表１］実施形態の説明に使用する略語の詳細
0006021792.tif 000002
【００８６】
図1に示すように、本発明の概要は、原データ20を符号化して対応する符号化データ30を生成するエンコーダ10、および符号化データ30を受信・復号して対応する復号データ60を生成するデコーダ50に関連し、エンコーダ10およびデコーダ50を組み合わせてコーデック5を構成する。復号データ60は原データ20の表現でもよく、例えば、音声や1次元画像，2次元画像，3次元画像，動画コンテンツ，グラフィックスデータ，キャプチャ音声，キャプチャ画像，キャプチャ動画，ASCIIおよびバイナリデータ、また測定データや生成データのうちの少なくとも一つでもよい。エンコーダ10およびデコーダ50は、原データ20を符号化し、符号化データ30を復号する一つ以上のデータベース100を使用できる。また一つ以上のデータベース100は、一つ以上の静的データベース110および／または一つ以上の動的データベース120を備え、以降で更に詳述する。一つ以上のデータベース110，120は、例えば、エンコーダ10およびデコーダ50から空間的に離れた一つ以上のデータサーバを経由して提供されてもよい。エンコーダ10およびデコーダ50の両方に対して同一のデータベース100を少なくとも一つ提供してもよい。こうした構成では、データに対して、データ通信ネットワーク内で利用可能な複数のコピーが、データサーバのピアツーピアネットワークとして実装されるような、空間的に離れたデータサーバに作成される必要がないため、より高いデータセキュリティを提供できる。あるいは、エンコーダ10およびデコーダ50の各々が、一つ以上のデータサーバからホストされる専用のエンコーダデータベースおよびデコーダデータベースをそれぞれ有するように、一つ以上のデータベース100が構成されてもよい。
【００８７】
一つ以上のデータベース100が様々な方式で実装されうることを理解されたい。例えば、エンコーダ10およびデコーダ50の一つ以上が、一つ以上のデータサーバ等として実装される一つ以上のデータベース100から情報を要求する場合、情報は直接的に、あるいは間接的に提供される。直接方式では、エンコーダ10および／またはデコーダ50は情報を送る一つ以上のデータサーバにリクエストを送信する。続いて、一つ以上のデータサーバはエンコーダ10および／またはデコーダ50に情報を送る。情報は例えば、暗号化情報や符号化方法・復号方法に関する情報，画像要素のライブラリ等である。関節方式では、エンコーダ10および／またはデコーダ50は一つ以上のデータサーバに第1リクエストを送信し、それに応じてデータサーバは、一つ以上の他のサーバに関する情報を利用可能な場所から提供する。続いて、エンコーダ10および／またはデコーダ50は一つ以上のデータサーバに第2リクエストを送信し、データサーバはエンコーダ10および／またはデコーダ50に情報を送る。データサーバに関して2レベルより多いリクエストが利用されてもよい。第1リクエストおよび第2リクエストのうち少なくとも一つのリクエストは、不正な符号化および／または復号を防止するために暗号化されてもよい。これは例えば、現在の音楽産業で大きな問題である不正なファイル配信を防止する。第1リクエストが空間的に離れたデータサーバに送信され、第2リクエストが空間的に近いデータサーバに送信されてもよい。第1リクエストに関連する情報トラフィックが中程度で、通信ネットワークで容易に受容されるが、第2リクエストに関連する情報トラフィックは多量である可能性があって、最も都合が良く空間的に近くでエンコーダ10および／またはデコーダ50に受け取られてもよい。第1リクエストはエンコーダ10および／またはデコーダ50は、空間的または通信ネットワーク内の何処に配置されているかを示す位置情報を含んでもよい。そして第1リクエストに対する応答は、エンコーダ10および／またはデコーダ50に関連する符号化および／または復号情報を送れるような、空間的に最も近い適切なデータベース、または最も近くでエンコーダ10および／またはデコーダ50に適切に接続されたデータサーバ等のデータベースに関する情報を含んでもよい。第1リクエストに対する応答はまた、適切な情報を提供できる複数の可能なデータベースからの選択情報をエンコーダ10および／またはデコーダ50に提供してもよい。この選択情報は、最速でデータ接続可能であるとか、最小消費電力のデータ接続，最安のデータ接続料金等の一つ以上の技術的基準に基づいてもよい。ただし、基準はこれらに限定されない。本願では第1リクエストおよび第2リクエストの状況について説明されているが、必要に応じてマルチリクエスト等、2を超えるリクエストが用いられ、例えば、権限のない者による符号化データの不正復号をより困難にしてもよい。
【００８８】
データを取得するデコーダ50がそこでコンテンツデータを復号できるようにする一つ以上のアクセスコードが中枢部から配信され、複数のこうしたデコーダ50が実質的に同時に復号できるようにしてもよい。こうして例えば、新作大ヒット映画が通信ネットワークを経由して封切りおよび配信される場合、映画の上映封切りが望み通りに調整・制御される。こうした制御はまた、裁判所の差し止め命令や著作権侵害が発生した場合等に、動画コンテンツの公開後検閲を可能にする。
【００８９】
本発明の実施形態は、例えば本願出願人による米国特許出願（米国公開公報第2010/322301号）に開示されている画像生成器に関して記載される技術を利用している。その内容は参照により本出願に組み込まれる。しかし、本発明の実施形態はそうした技術に加え、他の技術をより効率的かつ一般的方法で利用する。
【特許文献１】米国公開公報第2010/322301号
【００９０】
本明細書に開示される実施形態では、符号化データ30がエンコーダ10からデコーダ50へ送られる際、一つ以上の動的データベース120およびそれに関連する要素Eが生成される。また、一つ以上の動的データベース120から一つ以上の静的データベース110が有利に作成されてもよい。または、符号化データ30がデコーダ50に送られるより前に一つ以上の静的データベース110が提供されるか、デコーダ50に予めインストールされていてもよい。
【００９１】
新たなデータベース要素Eはデコーダ50に送られる際、使用する符号化アルゴリズムに応じて、一つ以上の参照値Rと共に送信されてもよく、参照値Rと部分的に、または参照値Rを伴わずに送信されてもよい。エンコーダ10およびデコーダ50は、所定のデータベース要素Eの参照値R全体または一部を有利に計算できてもよい。参照値Rは所定のデータベース要素Eに格納されるデータ、つまり再構成済みデータブロックから直接引き出される。また、所定のデータベース要素Eに関して、その計算された参照値Rの少なくとも一部がエンコーダ10およびデコーダ50間で送られる際に、エラー検出機構が実装されてもよい。
【００９２】
エンコーダ10およびデコーダ50は、表2で示すような既知の標準符号化方法に従って少なくとも一部を符号化されたデータをそれぞれ有利に符号化および復号できる。
［表２］本明細書に開示される実施形態と共に利用される標準符号化方法
0006021792.tif 000003
【００９３】
図1では、一つ以上のデータベース100における要素Eに対するデータが、エンコーダ10からデコーダ50へ伝送されるために符号化される。これによりデータベース要素Eは、符号化画像データや音声データ，動画データ，グラフィックスデータ，多次元データ，測定データ，テキストデータ，バイナリデータ等の他の種類のデータが送られると同時にデータベース要素Eの送信ができる。要素Eは多くの場合、符号化データから、つまり復号後に生成される。また、一つ以上のデータベース100からの要素Eの符号化により、エンコーダ10およびデコーダ50間での効率的なデータベースの提供が可能となる。つまり、デコーダ50を実装する等のデバイス内に用いるデータベース100を効率的に格納できる。一つ以上の静的データベース110が使用される場合、エンコーダ10およびデコーダ50には利用可能なデータベースが知らされる。あるいは、エンコーダ10およびデコーダ50は相互通信してどのデータベースが利用可能であるかを決定してもよい。エンコーダ10およびデコーダ50の両方が相互通信によって、どのデータベースが利用可能であるかを規定してもよい。例えば、エンコーダ10からデコーダ50に伝達される符号化データよりも前に、一つ以上のデータサーバが処理し、デコーダ50で符号化データ30を復号して復号データ60を生成するのにデータベースが使用されてもよい。
【００９４】
エンコーダ10およびデコーダ50は、表3に示すような様々な産業における広範な実用化に有利に用いられる。
［表３］エンコーダ10およびデコーダ50の実用例
0006021792.tif 000004
【００９５】
表3に列挙した実用例は英国特許出願第1214414.3号、その対応米国特許出願第13/584,005号，対応欧州特許出願第13002521号に開示されるエンコーダを有利に用いてもよく、これらは参照により本出願に組み込まれる。同様に、英国特許出願第1214400.2号、その対応米国特許出願第13/584,047号，対応欧州特許出願第13002520号に開示されるデコーダを用いてもよく、これらは参照により本出願に組み込まれる。さらに、係属中の特許出願である英国特許出願第1218942.9号，対応する欧州特許出願第13003859号，英国特許出願第1303658.7号，英国特許出願第1303661.1号，英国特許出願第1303660.3号，英国特許出願第1312815.2号，英国特許出願第1312818.6号も全て、参照により本出願に組み込まれる。
【００９６】
図1のコーデック5の概要は、エンコーダ10からデコーダ50へ伝達される動画，画像，グラフィックス，音声コンテンツ等のデジタルデータが、一つ以上のデータベース100から引き出されるデータベース要素Eから、大部分または完全に構築されるように動作できる。使用する一つ以上のデータベース100は、次の一つ以上の要因に依存してもよい：
（i）使用する一つ以上のデータベース100は、サイズが可変であり、例えば、エンコーダ10からデコーダ50に伝送されるデータコンテンツの種類に基づいてもよい；
（ii）使用する一つ以上のデータベース100は、デコーダ50でのデータ再構成に要求される品質に依存してもよい；
（iii）使用する一つ以上のデータベース100は、エンコーダ10からデコーダ50に伝送されるデータサイズに依存してもよい；
（iv）使用する一つ以上のデータベース100は、エンコーダ10からデコーダ50に符号化データ30を伝送するのに利用可能な帯域幅に依存してもよい；
（v）使用する一つ以上のデータベース100は、一つ以上のデータベース100とエンコーダ50および／またはデコーダ10との間で利用可能な帯域幅に依存してもよい；
（vi）使用する一つ以上のデータベース100は、一つ以上のデータベース100とエンコーダ50および／またはデコーダ10との間の反応時間に依存してもよい；
（vii）使用する一つ以上のデータベース100は、そこからデータにアクセスするためのコスト、すなわち金銭上の価格に依存してもよい；
（viii）使用する一つ以上のデータベース100は、そこから提供されるデータに生じるデータエラーの関数に依存してもよい；
（ix）使用する一つ以上のデータベース100は、データベースの空間的（地理的）位置に依存してもよく、それを考慮してもよい。
ただし、こうした選択に限定されるものではない。
【００９７】
また符号化データ30には、伝達した一つ以上のデータベース参照Rが格納され、符号化データブロックの代わりに送信される。エンコーダ10からデコーダ50へのデータ通信に関するこうした方法を達成するために、一つ以上の静的および動的データベース110，120は可能な限りサイズの大きいものが必要である。データベースが大規模である程、それを格納するメモリ容量も大きくなるが、こうした大規模データベースによって、コーデック5がより高品質で復号データ60を再構成することができる。符号化データ30で伝達される動画，画像，グラフィックス，音声コンテンツ等の所定の種類のデータに対し、データベース100を効率的に利用して対応するデータ圧縮率を上げるのに最適なデータベースの組合せを探すために、コーデック5は複数のデータベース100から有利に選択できる。ただし、データベース100が大規模で要素Eを多く備える程、データベース参照値Rも多数のデータビットを必要とすることを理解されたい。
【００９８】
一つ以上のデータベース100を効率的に利用するために、動画，画像，グラフィックス，音声コンテンツ等のデジタルデータにおける共通データ用に作成された複数の静的データベース110を有利に提供する。一つ以上の静的データベース110は、符号化データ30におけるデータ圧縮を行うエンコーダ10と共に使用される。例えば静的データベース110は、符号化されるデジタルデータの種類に応じて選択される。静的データベース110のサイズは使用するメモリ容量とデコーダ50での再構成に必要な品質に依存するため、静的データベース110もそのサイズによって大きく異なる。静的データベース110は、使用するデータブロックサイズや使用するデータベース要素Eの数等に関しても異なる。
【００９９】
前述のコーデック5を構成するために統合されるエンコーダ10およびデコーダ50では、エンコーダ10からデコーダ50へデータを伝達する際に一つ以上の動的データベース120が有利に使用される。動的データベース120は多くの場合、静的データベース110と比べて異なる要素Eを備える。それは、動的データベース120の要素Eが通常、原データ20を符号化する際、十分に適切な要素が静的データベース110に存在しないときにエンコーダ10によって生成されるからである。しかし、前述のエンコーダ10およびデコーダ50は、それらの間での互換性を保証し、再構成された復号データ60が例えば、原データ20に実質的に一致するように、原データ20の符号化中および対応する符号化データ30の復号中に、一つ以上の動的データベース120を作成する必要があってもよい。例えば、符号化データ30が動画コンテンツを含む場合、動画フレームの所定の区間に対して一時的に利用するために、一つ以上の動的データベース120が作成されてもよい。また、一つ以上の動的データベース120が1秒毎に再作成され、再作成後、30秒周期で消去される前まで使用されるように構成されてもよい。この期間は、符号化済み動画コンテンツ等、動画シーンと動画チャプター全体に対して数秒間の範囲で異なっていてもよい。また本発明に従って、先行して作成された一つ以上の動的データベース120が生成する要素Eから、新たに静的データベース110を作成することが可能であってもよい。他の形態として、一定の内容で作成された動的データベース120が提供され、作成後に静的データベース110として機能することもできる。
【０１００】
本開示に従うコーデック5、すなわちデコーダ50と組合せたエンコーダ10を備えるコーデックは、使用するデータベース100の種類に関わらず、静的・動的の何れであれ、動画，画像，グラフィックス，音声コンテンツ等の符号化データ30に対応するデータを格納・伝送する際の処理時間の削減、すなわち要求される処理リソースとデータ記憶容量の削減を行える。こうした利点は、無線通信ネットワークやインターネット等のデータ通信ネットワークを経由して符号化データ30が伝達される際に非常に重要となる。その理由は、リアルタイムストリーミング方式等では、符号化データ30のための通信ネットワークに対する負荷が少なくて済むからである。
【０１０１】
米国公開公報第2010/322,301号に開示される画像生成器と比べ、図1のコーデック5は符号化データ30に対してより高いデータ圧縮度を与えられる。改善された圧縮方法は、参照値（R）の送信と領域識別子（U）に関連する情報の両方に関係する。本開示のコンテンツにおける領域識別子（U）は、所定ブロックが原画像やセンサからの生データ等の対応するデータから取り出される空間情報を与えるために使用される。領域識別子（U）はデータ内のデータブロックのサイズや形状，位置を示すという利点を持つ。領域識別子（U）は対応するブロックと共に送信されてもよいが、この構成は多くの場合、あまりにも非効率な方法となる。本明細書に開示される具現化形態を実装する場合、単に領域識別子（U）自体を伝達することの代替手段として、領域識別子（U）に関する情報を有利に伝達できる。例えば、分割／結合情報といった領域識別子（U）に関する情報に基づいて、復号中に符号化データから領域識別子（U）が取得されてもよい。さらに、領域識別子（U）はプリセットされていて、他の情報が送られる必要がなくてもよい。データベースは如何なる手段でも領域識別子（U）を編集またはフェッチしないが、代わりに参照値（R）に基づいてデータベースから読出される要素Eが取り出され、再構成データブロックが再構成結果のデータ内における領域識別子（U）が示す場所に配置されるという利点がある。
【０１０２】
場合によっては、領域識別子（U）に関する情報がデータにプリセットされていて、ブロックが同サイズであれば、特定の順序で符号化される。この場合、実際の新情報は何も送る必要がない。順番に受信する符号化データブロックに対して、領域識別子（U）を生成するプリセットの変更のための領域識別子（U）に関する追加情報がデータにないために、このプリセット方法が使用されることは自明である。
【０１０３】
場合によっては、一つ以上の所望するブロックサイズと処理順序を示す情報が伝送されてもよい。あるいは複数の代替手段から選択された一つ以上のブロックサイズと処理順序を示す情報が伝送されてもよい。また場合によっては、こうしたデータブロックのサイズ，形状，場所を規定する分割／結合情報と処理順序をエンコーダがデコーダに伝送してもよい。こうして、データベースから読出されたデータブロック等の受信した復号データブロックは、常に明確で一義的に再構成結果のデータ内の正しい位置に配置される。
【０１０４】
領域識別子（U）を規定する分割／結合情報のこうしたソートは例えば、米国特許出願第13/584,005号および第13/584,047号にある符号化技術を用いて伝送される。
【０１０５】
領域識別子（U）は使用する符号化方法に応じて様々な方法で生成されてもよい。参照により本出願に組込まれる前述のブロックエンコーダ／デコーダでは、分割／結合情報と場合により領域識別子（U）とが既知で利用可能である場合、領域識別子（U）は分割／結合情報から得られてもよい。この場合、領域識別子（U）に関連する情報は、単に利用可能および／または既知の領域識別子（U）の情報であってもよい。
【０１０６】
場合によっては、伝送・格納に用いる方法を考慮して、符号化データの順序は保証されない。この理由のため、実際のデータ符号化およびデータ復号に必要な数より多い領域識別子（U）がデータに使用されてもよい。また例えば、データチャンクに対応する第1データブロックがどの位置であるかを示すために、各データチャンクに一つの領域識別子（U）が挿入されてもよい。同様に、データチャンクの順序を示すために、各データチャンクに一つの番号を追加する場合があってもよい。この情報により、追加の領域識別子（U）を用いなくて済む。本発明は、米国特許第8,169,547号等で開示される変更・非変更データブロックを用いる解決方法と併せて使用されてもよい。変更データブロックのみを提供する解決方法の場合、これら変更ブロックの位置を示すために領域識別子（U）が用いられなくてはならない。特に、変更データブロックの位置を一意に示す他の情報がない場合がそうである。
【０１０７】
図2に示すように、動的データベース120の新要素E 200をエンコーダ10からデコーダ50に伝達する際、対応する参照値R 210を一緒に送信しないようにして、データ圧縮率が向上される。こうした特徴は、データブロック220のための要素E200のための全ての参照値Rが、デコーダ50およびエンコーダ10の両方において、コンピュータハードウェア230，230Rから再計算されうることによって達成される。要素E 200は丁度、エンコーダ10からデコーダ50に送信される符号化データ30の一部であることを理解されたい。参照値Rの一部は、エンコーダ10およびデコーダ50の両方で異なる形で存在する情報を含んでもよいという利点がある。そうした情報は例えば、一つ以上のデータベース100で既に利用可能なデータベース要素Eの数から得られてもよい。または別の形で、（復号後）符号化データブロックに基づいて（再）計算できてもよい。量／カウントに加え、例えば、要素Eの確率の順序が参照値Rの数値部分に影響を与える可能性もある。また、前述の量／カウントや確率の順序が常にデータベース全体を参照する必要はない。その代わり例えば、送信済み参照値Rの組合せの選択を参照し、そうした組合せに対して、この参照値の助けで複数の異なるバリエーションが得られてもよい。
【０１０８】
エンコーダ10およびデコーダ50は未知の参照値Rを計算する方法を使用するという利点を持つ。エンコーダ10は対応する参照値Rを計算する前に、データブロック値を再構成、すなわち量子化および逆量子化できるという利点を持つ。したがって、各データブロック220は、例えば表2に示すような既知の非可逆または可逆圧縮、または非可逆または可逆圧縮の組合せを用いてエンコーダ10で符号化される。こうして図1のコーデック5は、主要なデータ圧縮方法がもたらす利点を活かす圧縮アルゴリズムに関して広範に利用できる。こうした方法は限定的でないが、DC，スライド，ライン，マルチレベル，DCT，内挿および外挿を含んでもよい。また例えば、データベース要素200も復号画像の任意の位置から任意のブロックサイズで生成される。参照値Rは独立して計算される複数の成分を含む利点を持つ。こうした成分は例えば、所定のデータベース100に含まれる要素Eのブロック値の平均を示す成分，ブロック値の分散を示す別の成分，ブロック値の振幅を示すまた別の成分，ブロック値に対するチェックサムを示す更にまた別の成分でもよい。また、参照値Rの全体またはその一部は、符号化データ30と共にデコーダ50に提供されてもよい。こうした情報には例えば、エンコーダ10からデコーダ50に符号化データ30を伝送する際に生じる品質劣化等、提供内容の正確性を評価するために使用されるという利点がある。デコーダ50は検証および／または品質管理目的等で、参照値Rの全体またはその一部をエンコーダ10に返せてもよい。
【０１０９】
所定のデータベース100が大規模化するに伴い、前述のデータベース参照値Rも更に多くのデータビット数を必要とする。データベース参照Rを一義的に定義するのに必要な非圧縮データビット数は、データベース100の要素200の数のlog2をとることで計算できる。こうして、データベース参照値Rが大きければ、より多くのビット数を必要とし、符号化データ30で達成される圧縮率も存在する各データブロックに対して低くなる。通常、データベース参照値Rは未使用データ要素E用の予約済みビットが一つ以上有するという利点を持つ。しかし、大規模静的データベース110または動的データベース120に過剰な未使用データベース要素Eを持たないようにするために、使用される静的データベース110や動的データベース120の要素Eから、新規のより小規模の動的データベース120が作成されてもよい。新規のより小規模な動的データベース120は、復号用としてデコーダ50で使用されるため、新規小規模の動的データベースに存在する要素Eを一意に識別する参照値Rに用いるビット数は、元の大規模データベースの場合よりも少なくて済む。
【０１１０】
ここで説明する参照値Rは、正に送信された参照値（すなわち、データベース内の要素を一意に特定するインデックス）であって、既存の大規模データベースで使用される参照値よりも、新規の小規模データベースが受信するビットカウントは、小さくなることに留意すべきである。当然ながらこのことは、検索で用いられる実際の正確な参照値Rに何の影響も及ぼさない。これは要素Eの実際のデータ値に依存し、ここで如何なる変更も受けないためである。
【０１１１】
新規動的データベース用の参照値Rは例えば、新規データベースに存在する要素Eの総数であってもよい。この参照値Rは新規動的データベース内のデータベース要素Eに対応し、実データを含むか、別の大規模データベースにリンクされていてもよい。参照値Rの符号化に新規動的データベースが使用される場合、既知のデルタ符号化等の既知の符号化アルゴリズムを用い参照値Rを効率的に圧縮できることが理解される。このように、新規動的データベースを利用することで、デコーダ50からの出力である復号データ60の性能または品質を実質的に劣化させることなく、参照値Rに関する相当量の非圧縮ビットの節約が実現可能となる。
【０１１２】
以下に例を示す：
（a）所定の静的データベース110が1600万要素Eを有する場合、対応するデータ値Rは24ビットデータで表現可能である；
（b）所定の動的データベース120が1024要素Eだけ有する場合、対応するデータ値Rは10ビットデータで表現可能である；
（c）データブロックは特定のデータブロックインデックスと共に動的データベース120に存在する。
このとき、動的データベース120を介して一意にデータブロックを定義するのに参照値Rはたった10ビットだけを必要とする。これに比べ、静的データベース110に含まれる場合、参照値Rは一意にデータブロックを定義するために24ビットが必要となる。この例では、静的データベース110から動的データベース120に所定のデータブロックが伝送される場合、データブロックを一意に識別するのに少ないビット数で済む。エンコーダ10は、一つ以上のデータブロックを静的データベース110から動的データベース120に移動またはコピーすることをデコーダ50に通知する利点を持つ。また図1のコーデック5でも、一つ以上のデータブロックに対して発生するデータベース使用量に応じて、静的データベース110から動的データベース120に一つ以上のデータブロックを移動またはコピーする方法で動作可能である利点を持つ。換言すれば、符号化済み参照値Rが特定のデータブロックを頻繁に参照する場合、デコーダ50でのデータブロックは、そこに転送された所定の動的データベース120から取得できる利点がある。あるいは、デコーダ50に転送された所定の静的データベース110からよりもデコーダ50へのアクセスの方が容易であるとか、デコーダ50にアクセス可能であるとも言える。前述の通り、一つ以上のデータベース110，120は一つ以上のサードパーティー等に属する一つ以上のデータサーバのよってホストされてもよい。
【０１１３】
図1のコーデック5は、最もよく利用される大規模な静的または動的データベース100のデータベース要素Eから、小規模の静的または動的データベースを作成し、データベース参照値Rに対するビット数を節約できる。コーデック5では、大規模な動的データベース120および／または静的データベース110は存在する全データブロックの使用量カウンタを備え、この使用量カウンタの情報に基づいて要素Eを選択し、新規データベースを作成する。こうしたより小規模なデータベースは、エンコーダ10で符号化中に作成され、符号化データ30を復号するデコーダ50に伝達されるか、さもなければ利用可能になっているという利点を持つ。この小規模なデータベースが利用可能であることには、リモートのインターネットベースのサーバからデコーダ50にダウンロードして利用可能な小規模データベースへのURLリンクを符号化データ30が含むこと等が含まれる。ダウンロード元は、クラウドコンピューティング環境でホストされ、こうした多数のデコーダ50にアクセスできる、またはその代わりに同様のLANでホストされてデコーダ50にアクセスできるようなクライアントLANのデータベースサーバでもよい。このデータベースサーバと前述リモートサーバの両方でもよい。
【０１１４】
エンコーダ10は、原データ20を符号化する際、その都度、異なるデータベース100の数やデータベース100の種類，デコーダ50が対応する符号化データ30を受信する際にどのデータベース100を用いて復号するかを選択できる。エンコーダ10が作成する、データベース100の選択を示す情報は、デコーダ50に伝達される。この情報はローカル、つまりアプリケーションに依存したデータベース情報か、グローバル、つまり常に同一のデータベース情報で提供される。選択されたデータベースがデコーダ50には既知である場合もあり、こうした状況では、特定の情報が伝達，格納および／または伝送される必要はない。すなわち、こうした情報はデコーダ50にとって既知のものであってもよい。便利なように、符号化データ30の動画ヘッダやコンテナには、使用した符号化方法の選択だけでなくデータベース100の選択も示す情報が格納されている。またデコーダ50は、符号化データ30の復号タスクを実行する前に一つ以上の静的データベース110の全てを備えてもよい。デコーダ50が符号化データ30に規定される所定のデータベースを備えていないことが判明した場合、デコーダ50は、不足のデータベースを送信する要求、あるいはリモートネットワークに接続するデータサーバ等からデコーダ50に対して利用可能にする要求をエンコーダ10に送信する。リモートサーバはデコーダ50の比較的近くに、例えば相互に類似するLANネットワーク内に配置され、不足のデータベース100をデコーダ50に高速で提供してもよい。不足データベース100は圧縮フォーマットでデコーダ50に提供され、デコーダ50が自身のデータメモリ内に格納するために不足データベースを解凍できてもよい。デコーダ50の使用頻度が最も高いデータブロックは、小規模の静的データベース110に有利に格納される。
【０１１５】
RAMからリソースを開放するために、エンコーダ10またはデコーダ50の一方または両方で、未使用データベース要素が有利に削除される。データベース要素Eの使用量は、データベース内の要素Eの使用数をカウントすることで、またはデータベース要素Eが最後に使用されたときの統計を維持することで、有利に計測される。図1のコーデック5では、全ての動的データベース120が未使用要素Eを削除するクリーンアップを目的として処理される。静的データベース110もクリーンアップされてよい。または、静的データベース110の一つ以上がクリーンアップのために、定期的に新規の動的データベースに置換されてもよい。旧い静的データベース110は、後で必要なときにエンコーダ10および／またはデコーダ50に戻すためにアクセスできるように、バックアップメモリに転送され、データベース110のメモリ容量を消費しないようにしてもよい。バックアップメモリはハードドライブやフラッシュメモリ，外部メモリ，光学ディスクデータROM，クラウドベースのデータレポジトリ等で有利に実装される。デコーダ50は動作中、データベース100の何れかでの異常な変化を通知され、デコーダ50がそうした異常を解決するためにデータベース100の更新を要求できるという利点を持つ。データベース100はバージョン番号等の固有識別子によって有利に識別される。例えばエンコーダ10のデータベース100の一つ以上が変更された場合、データベース100全体をデコーダ50に伝送するよりも、変更部分のみがデコーダ50に伝達される方が望ましい。一つ以上のデータベース100は、既知の種類のエンコーダ等で更新されてもよい。またエンコーダ10は、固体ROMに格納される等の予め組込まれた関連する静的データベース110を備えてもよい。さらに、デコーダ50で一つ以上の動的データベース120が更新される場合、様々な更新モードが使用されてもよい。例えば、以下のものでもよい：
（i）第1更新モードでは、旧要素Eが新要素Eで上書きされる；
（ii）第2更新モードでは、旧要素Eを保持して新要素Eが追加され、一つ以上の動的データベース120のサイズは増加する。
【０１１６】
小規模動的データベース120がフル状態、すなわちその全要素Eが割当てられた場合、小規模動的データベース120は一つ以上の自動ソフトウェアツールを使用して検査されてもよい。自動ソフトウェアツールはコンピュータハードウェア上で実行され、小規模動的データベース120のどの要素Eが最も頻繁に使用されるかを決定する。次に、使用頻度が最も高い要素Eがデータベース120の先頭に移動され、例えば、使用頻度が高い要素Eほどデータベース120が速くアクセスできるように、および／またはデータ通信ネットワーク経由でエンコーダ10から一つ以上のデコーダ50へ通信する際にデータベース120がより効率的に圧縮可能となるように、データベース120内の要素Eが格納される。データ通信ネットワークは例えば、インターネットや無線データ通信ネットワークでもよい。小規模な動的データベース120における他の使用頻度の低い要素Eは、有利に開放される。エンコーダ10およびデコーダ50の両方とも、こうした検査と一つ以上のデータベース120がフル状態の場合のソートを実行する利点を持つ。こうした検査とソートはエンコーダ10が送信する命令によって起動されてもよい。
【０１１７】
データの格納または伝送が初期化される場合、どのデータベース100が後にデコーダ50で使用されるかをエンコーダ10が選択できる。例えば、符号化データ30の復号開始時点でデータベース100が空であるか否か、または、符号化データ30の復号開始時点でデータベース100がデータベース要素Eを既に含むか否かが選択されてもよい。例えば、デコーダ50は、小規模汎用静的データベース110を用いて符号化データ30の復号を開始し、デコーダ50が符号化データ30に含まれるデータブロックから決定した不足要素Eを、動的データベース120に入力する処理を行ってもよい。動的データベース120は、前述で定義した規則を用いて、必要なときにクリーンアップする利点を持つ。デコーダ50がこの先受信する符号化データ30を復号する際の将来的な使用のための新規静的データベース110として、作成された動的データベース120がデコーダ50によって格納されてもよい。
【０１１８】
動画，画像，グラフィックス，音声コンテンツ等の少なくとも一つに対応する原データ20を符号化する際、エンコーダ10は、所定のデータブロックを含むデータベースがデコーダ50に存在しない場合であっても、そのデータブロックのデータベース参照値Rを送信してもよい。例えば、類似のLAN，ISP等に配置され、デコーダ50がローカルで利用可能な静的データベースのストレージやデコーダ50に対する他のサーバから、所定のデータブロックを示す要素Eを含む適切な静的データベース110をデコーダ50がフェッチできることをエンコーダ10が分かる場合にそうしてもよい。こうした方法により、エンコーダ10は、互いに若干異なるデータベースが利用可能な多数のデコーダ50に対して、同一の符号化データ30を提供できる。こうした方法が利用される場合、デコーダ50は大規模な静的データベースや関連するリソースをホストする必要がない。このように、この方法が利用される場合、エンコーダ10はデコーダ50とネゴシエーションできる利点を持つ。この方法を成功させるために、デコーダ50が、エンコーダ10から送信された符号化データ30の復号実行のために要求する一つ以上のデータベース100をデコーダ50に提供するために、デコーダ50がアクセス可能であるパブリックおよび／またはプライベートデータベースを、エンコーダ10が分かっている必要がある。ある符号化データを以前に符号化した別のエンコーダから、デコーダ50に対してそのデータブロックの提供が実際に行われる際、符号化データブロックを全く送信する必要がない場合にはこの方法が非常に適している。別のエンコーダからピアツーピア通信方式でデータブロックが伝達されてもよい。また、この方法は符号化動画データをインターネット経由でライブストリーミング配信するのにも適している。すなわち、符号化動画データは、デコーダ50から遠いところからストリームされ、データブロックはローカルでデコーダ50に供給される。こうした場合では、デコーダ50から遠いところから、実質的に参照値Rのみが伝達される。
【０１１９】
前述の通り、一つ以上の動的データベース120は、エンコーダ10またはデコーダ50の何れかで生成、または再構成データブロックからコピーされたデータベース要素Eから、有利に構成される。データブロックは1次元や2次元，3次元でもよく、それらの組合せでもよい。データブロックは例えば、ディスプレイに表示する際、幾つかの例で説明する多角形や長方形，楕円形，円形，長円形，三角形等のサイズや形状であってもよい。
【０１２０】
1次元データブロックに関しては、その形状が復号データ60で表わされる際、1次元データ項目の組であってもよい。また2次元データブロックに関しては、その形状が復号データ60で表わされる際、正方形や長方形，三角形，平行四辺形，円形であってもよい。さらに3次元データブロックに関しては、その形状が方体や錐体，柱体，球等のより多形のものであってもよい。こうした3次元データブロックでは、復号データ60がユーザに3次元イメージ等を提供できる3次元グラフィックディスプレイ用である場合に有益である。一般的に使用される2次元データブロックは、8×8画素または、本明細書に開示される実施形態で有利に使用される類似の画面要素に相当する。符号化データ30を生成する際にエンコーダ10が使える、8×8ブロックサイズ用符号化方法として、複数の非常に効率的な方法が知られている。
【０１２１】
本開示をより詳細に説明するために、エンコーダ10でのデータブロックの符号化を詳述する。
【０１２２】
ステップ1：理想的な状況では、所定のデータベース参照値Rが原データ20に存在する画像および／または音声の一部といった、原データ20内の対応する所定のデータブロックに対して計算される。一つ以上のデータベース100内に適切な要素Eが存在する場合、つまり所定のデータブロックが一つ以上のデータベース100内に存在する要素Eと一致することが見出された場合、一つ以上のデータベース100からその存在する要素Eを選択するために参照値Rが計算される。この一致は、所定のデータブロックと存在するデータブロックとの間の誤差が規定の閾値より小さいことを受けて決定される。規定の閾値は符号化品質指標に対応する。
【０１２３】
ステップ2：ステップ1で一致が見出された場合、選択された既存データブロックに対する参照値Rが符号化データ30等に格納または送信される。選択された既存データブロックは、複数のデータベース100から検索され、格納または送信された参照値Rは、デコーダ50が選択された既存データブロックを見付けられるデータベース100の標示を含む。反対に、ステップ1で適切な一致が見出されなかった場合、所定のデータブロックは、DC符号化やスライド符号化，マルチレベル符号化，DCT符号化，その他適切な符号化アルゴリズムを用いて符号化され、データベース参照値（R）は再構成データブロックに対して計算される。符号化データブロックはデコーダ50での受信等のために、符号化データ30に有利に含まれてもよい。
【０１２４】
あるいは、または加えて、エンコーダ10は、原ブロックと同様に再構成データブロックに対して、適切な要素Eが利用可能であるか否かを検査できる。この場合、異なる符号化品質の閾値が用いられてもよい。再構成データブロックを表わす特定の要素Eが選択される場合、その参照値Rが符号化データ30等に格納または送信される。あるいは、再構成または再構築データブロックを表わす適切な要素Eが選択できない場合、再構成データブロックまたは原データ20の所定のデータブロックは、その再構成または再構築データブロックに最適な符号化アルゴリズムを用いて送信されなくてはならない。符号化データ30でより少ないビット数を生成し、誤差の最小化、またはRD最適化に対応するλ係数を用いるといった、発生誤差に応じた使用ビット数の最適化を行う方法が有利に選択される。この符号化データブロックは、エンコーダ10でデータを符号化する際および／またはデコーダ50で後から使用するために、動的データベース120の一つ以上に追加される。
【０１２５】
エンコーダ10は、欧州特許第1787262号および欧州特許出願第12173534.4号に記載される符号化技術を利用してもよく、これらは参照により本出願に組込まれる。これらの記載されている技術を動画コンテンツの符号化等に用いる場合、不変データブロックを表わす色はデータベース100から見付けられるか、不変ブロックが別々に検出・符号化される。変更データブロックのみが、表2に示されるような既知の符号化技術を用いた符号化を必要とする。表2に加え、別の種類の符号化技術が使用されてもよい。表2は全体的な符号化技術を示しているだけであって、内挿法や外挿法，マルチレベル，DCT等の個別の方法については示していないためである。前述の欧州特許第1787262号および欧州特許出願第12173534.4号に基づくこの例で性能を最適化するために、同様の機能がエンコーダ10とデコーダ50の両方に提供されてもよい。これらも参照により本出願に組込まれる。他の関連する特許出願、つまり2013年6月17日出願の欧州特許出願第13172237.3号の内容も、参照により本出願に組込まれる。
【０１２６】
本明細書に開示される実施形態をより明確にするために、データベース100と前述の参照値Rについて更に詳述する。ここで、米国公開特許第2010/322,301号が参照され、この参照により米国公開特許第2010/322,301号は本出願に組込まれる。前述の通り、静的データベース110と動的データベース120の2種類のデータベースがある。静的データベース110はあらゆる種類のメモリに格納される。高速性能のために、静的データベース110はROMに格納されてもよい。例えばROMは、書込み可能であるか、シリコン集積回路上のフィールドプログラマブルROMでもよい。あるいは、または加えて、静的データベース110はハードコーディングされ、非一時性（非一時的）コンピュータ可読データ記憶メディアに記録されたコンパイル済みソフトウェア製品でもよい。例えば本明細書に開示される実施形態では、静的データベース110は前述の動的データベース120から作成され、対応する静的データベース110として格納されてもよい。静的データベース110は、それぞれに関する固有参照コードによって有利に識別される。動的データベース120はRAMや、高速磁気ディスクデータストレージ等の磁気または光学データ記憶メディアといった他の同等な読み書き可能データメモリに書き込まれてもよい。
【０１２７】
本明細書に開示される実施形態は「ジャンピング」を使用してもよい。ジャンピングにより、データベース100内の不足要素Eが何処からでも供給される。また、ジャンピングは静的および動的データベース110，120のそれぞれに対して使用されてもよい。さらにジャンピングにより、動的データベース120が不足要素に関して素早く更新される。こうした効果的に機能するジャンピングに対して、データベースの作成時から現在の使用時間まで同一の順序で全データが有利に復号されることが望ましい。
【０１２８】
前述の参照値Rはデータベース100内の対応する要素Eを一意に識別し、要素Eはデータブロックの様々な種類を表わす。しかし参照値Rは、エンコーダ10で符号化される原データ20内に存在するデータコンテンツの種類に適応する方法を用いて生成されることが望ましい。換言すれば、原データ20の一部にある対応するデータブロックまたは対応する符号化データブロックの各々に対して、エンコーダで参照値Rが計算される。エンコーダ10では、参照値Rで示される符号化データブロックが再構成される。これは、一つ以上のデータベース100に追加された符号化データブロックに対して同一のデータベース参照値Rをデコーダ50が生成できることを確証するために、符号化データブロックが符号化されてからエンコーダ10で復号して戻すことである。こうした動作方法をとる理由は、問題となる所定のブロックに対して特定の符号化方法が選択されたときに、処理されたパラメータに基づいてブロックが再構成または復号されるからである。この再構成ブロックから、データベース要素Eとその参照値Rが構成される。こうしてデコーダ50は、原データ20を符号化する際にエンコーダ10が使用したのと同一の一つ以上のデータベース100を正確に作成する。本明細書に開示される具現化形態を実装する際、参照値Rを計算する様々な方法が利用できる。しかし参照値Rは、エンコーダ10で符号化される、原データ20の存在するデータに関する振幅（または最小値・最大値）や分散（または標準偏差），平均（または合計），チェックサム（またはハッシュやインデックス）等の値から有利に計算される。「振幅」は例えば、所定のデータブロック内における元のデータや画素の値の最大値と最小値の差を意味する。（2次元）データブロックの合計値は次の式1を用いて計算されてもよい：
【数１】
0006021792.tif 000005
ここで、
SUM = sum value;
m x n  = （2次元）データブロック内に存在する画素またはデータ値の数。
例えばn = 8，m = 8の場合、8×8画素のデータブロックとなる。
i, j = 参照インデックス
である。
【０１２９】
平均値は、合計値に 1/(m*n) を乗じて、つまり合計値を算出するのに加算したデータ値の個数で合計値を除して計算される。
また、（2次元）データブロックの分散は次の式2を用いて計算されてもよい：
【数２】
0006021792.tif 000006
ここでVは分散を表す。
【０１３０】
標準偏差は分散Vの平方根から計算される。
【０１３１】
データブロックのチェックサムは、全ての値、つまり関心領域（ROI）内の画素に対する排他的論理和（XOR）関数を用いて有利に計算される。例えば、静的および動的データベース110，120のそれぞれに対し、振幅，分散V，平均M，およびチェックサムが表4のように与えられる。
［表４］振幅，分散，平均，およびチェックサムの例
0006021792.tif 000007
【０１３２】
データベース参照値Rの既知の要素Eに対して、次のような擬似コード計算が実行されてもよい：
DBREF = (AMPLITUDE SHL (DBREF_BITS - AMPLITUDE_BITS)) +
(VARIANCE SHL (DBREF_BITS - (AMPLITUDE_BITS + VARIANCE_BITS))) +
(MEAN SHL (DBREF_BITS - (AMPLITUDE_BITS + VARIANCE_BITS + MEAN_BITS))) +CHECKSUM
【０１３３】
計算される参照値Rは、静的データベース110に対して統合・伝送される参照値Rであり、実際の要素Eの検索においては、より正確および／またはより不正確な値が使用されてもよいことに留意されたい。チェックサムは、完全一致を求めない限りは、検索の制限に何の影響も与えない。
【０１３４】
静的または動的データベース110，120のそれぞれの最大割当てバイト数は、データベース参照値Rによって規定される。所定のデータベース参照値Rに対する全ビットカウント数を計算するために、参照値Rが計算される全要素Eが追加されなくてはならず、要素Eは振幅，分散V，平均Mおよびチェックサム、つまりMVAの組合せを含んでもよい。例えば、データベース参照値Rに対するビットカウント数は次のように計算されてもよい：
DBREF_BITS= AMPLITUDE_BITS + VARIANCE_BITS + MEAN_BITS + CHECKSUM_BITS
【０１３５】
データベースは、伝送された参照Rに一部依存する要素のデータ長よりも多くの要素を含むことができない。つまり、ゼロ平均データベース等、データベースが平均値を使用しない場合、平均値はそのデータ長い影響を与えない。しかしそうでない場合、影響を与えうる。
【０１３６】
例えば、表4の例のようにビットが設定される場合、通常のデータベースに対して、要素Eの数は20ビットに基づく。平均値を用いないデータベースでは、12ビットであり、総量はおよそ100万要素対4000要素である。また、各要素Eも当然ながら、データの表現フォーマットに従うビット数を要する。一例として、8ビットの値を持つ8×8ブロックの場合、通常の、平均値を持つ要素では、要素当たり64バイトを必要とする。一方、平均値を持たない要素では、各データ値に対して符号ビットを格納する必要があるため、要素当たり64 * 9 / 8 = 72バイトを必要とする。これにより、平均値を用いるデータベースの例で示すような8×8データベースの最大サイズは64MBになり、平均値を用いないデータベースでは288kBだけで済む。こうした数字は、データベース要素のデータ値に対する最大割当てを示し、サイズは参照値（R）の様々な部分に対するビットカウント数やブロックサイズ，データ値のダイナミックレンジに依存する。これに加え、高速検索を目的として、より正確および／またはより不正確な参照値（R）がエンコーダ10に格納される必要もある。デコーダ50に対しては、正しい参照データが見つかり易くなるような方法で整理されたデータベースのデータを備えれば十分である。
【０１３７】
さらなる例で示すように、所定のデータベース100の全サイズは1,048,576要素、つまり220、または約1メガの要素と計算される。各要素Eが64画素を含む、つまり8×8画素のデータブロックとして実装され、画素当たりのダイナミックレンジが1バイトである場合、所定のデータベース100の非圧縮全サイズは64メガバイトである。
【０１３８】
図3に示すように、所定の参照値Rが番号300で示され、例えば、分散V，平均M，振幅Aにそれぞれ対応する複数の互いに異なる部分310A，310B，310Cを含む。これらの部分は有利なように別々で計算され、エンコーダ10および／またはデコーダ50での検索が可能な限り高速となるよう実装され、高速の符号化および／または復号動作を実現できる。異なる部分310は独立したデータベース副参照として有利に機能する。つまり、番号310Dで示される巡回冗長検査（CRC）の付加等のインデックスとして機能する。また、作成順序のみ、あるいはCRCに基づいて大規模データベース100が構築される場合、コーデックがルックアップテーブル作成するのにも有利である。このルックアップテーブルは、平均M，分散Vおよび振幅Aの適切な組合せを高速閲覧するのに有利に使用される。
【０１３９】
参照値R，300を計算する際、様々なサンプリング方法が用いられる。参照値R，300は追加の加重係数を含み、この追加の加重係数によって変更が少ないときの検索が可能となる。また、追加の加重係数によってコーデックが例えば、画像の中央部分と比べて復号品質の点であまり重要でない画像の周辺部に対しても、要素Eを検索できる。これは例えば、原データ20を符号化する際にエンコーダ10における品質閾値の動的変更を用いて達成される。参照値Rが関連するデータに関する正確なパラメータを多く含むほど、コーデック5での検索を更に高速で実行できる。また、CRCや類似のインデックスによって、複数のデータベース要素Eを一まとめの基本の組合せとして備えることが可能となる。
【０１４０】
所定の参照値Rに基づいて、一つ以上のデータベース100での検索が実行されてもよい。この検索は、要素Eに関連する参照を含む大規模データベース100から開始し、要素Eと同一のまたは類似の種類の要素を有する小規模データベース100に対しても実行される。あるいは、小規模データベース100も、それが保有するデータに対するMVAの組に関する情報等を保持していてもよい。この情報によって、検索すべき所定のデータブロック内の組が全く異なれば、エンコーダ10および／またはデコーダ50は小規模データベース100を即座に無視することができる。
【０１４１】
前述の参照値R，300に関して、分散Vおよび振幅Aを合わせて圧縮できる利点もある。例えば、参照値R，300を規定するのに必要な全ビット数を削減し、図1のエンコーダ10からデコーダ50に伝達するのに必要な符号化データ30のサイズを削減できる。こうした利点は、分散Vと振幅Aの間に強い相関があることから得られる。反対に、参照値R，300の平均MとCRC／インデックス部分は別々に圧縮できる利点を持つ。平均Mは通常、相対的にデルタ特性との互換性があるが、CRCは相当にランダムになるためである。より少ないビット数で量子化される分散Vおよび振幅A部分の組に対しては、符号化データ30を生成するのに連長圧縮（RLE）を使用できる利点がある。あるいは、同じ目的でデルタ符号化が使用されてもよい。符号化データ30において、第1の所定の分散Vおよび振幅Aの組が比較的少ないビット数で量子化され、第2の所定の分散Vおよび振幅Aの組がより多いビット数で量子化される場合、これらの組は別々に符号化される利点がある。例えば、第1の初手の組にはRLEを使用し、第2の所定の組にはハフマン符号化を使用してもよい。ただし、これらに限定されない。他の符号化方法が有利に利用されてもよい。例えば、次の方法があるが、これらに限定されない：
Range，SRLE：「分割連長圧縮（Split run-length encoding）」，英国特許出願第1303660.3号（出願人：Gurulogic Microsystems Oy，出願日：2013年3月1日）に開示する方法；
EM：「エントロピー修正法（Entropy Modifier）」，英国特許出願第1303658.7号（出願人：Gurulogic Microsystems Oy，出願日：2013年3月1日）に開示する方法；
Odelta：英国特許出願第1303661.1号（出願人：Gurulogic Microsystems Oy，出願日：2013年3月1日）に開示する方法。
【０１４２】
符号化データ30を介してエンコーダ10からデコーダ50に伝達される参照値R，300は、種々の圧縮技術を用いて有利に圧縮される。例えば、次の方法がある：
（i）ZLIBやLZO，LZSS，LZ77等、Lempel-Zivアルゴリズムを用いるデータベース符号化を併用する、ハフマン符号等のVLCベースの方法；
（ii）前述の分散Vおよび振幅A等の値の組に対するハフマン符号や類似の方法。
【０１４３】
参照値R，300は値全体として圧縮されてもよく、または図3で示すような参照値R，300の部分が別々に圧縮されてもよい。また、符号化データ30のデータ圧縮を更に高めるために、複数のデータ圧縮技術の組合せを利用することも可能である。例えば、参照値R，300の分散V部分を最初にデルタ符号で圧縮して第1圧縮データを生成し、次にRLE符号化技術を第1圧縮データに適用して第2圧縮データを生成することもできる。次にハフマン符号を第2圧縮データに適用して第3圧縮データを生成し、この第3圧縮データがエンコーダ10からデコーダ50に伝達されてもよい。
【０１４４】
データベース100の一つ以上は、発展段階の方法等で既知の順序にあるデータブロックのデータ値から成る要素Eを含んでもよい。図1のコーデック5で想定されるデフォルトの順序とは異なる場合、そうした異なる順序が順序構成パラメータによって符号化データ30に有利に規定されてもよい。例えば、データ値に基づくデータベース要素Eのソートが、再構成画像等のあらゆる適切なサイズのデータブロックから行われてもよい。パラメータは、エンコーダ10からデコーダ50に伝達される符号化データ30の経路の状態間でトグルされてもよい。
【０１４５】
既知の順序に従って更新される一つ以上の動的データベース120では、1フレーム当たりの要素Eの数が可変であってもよい。これにより例えば、画像の情報量が比較的少ないほど、図1のコーデック5はより高いデータ圧縮率を達成できる。例えば、異なるフレームに対する所定の動的データベース120の要素数が126，193，252，303である場合、各フレームに対して要素の各々に固有のアドレスを付与するのに必要なビット数はそれぞれ、7，8，8，9ビットである。大規模データベース100では、要素Eは、アドレス付与に関してある種の構造（「番号の設定」，「番号の取得」等）で構成されてもよい。例えば、1バイト（8ビット）中、1ビットを値全体が伝送されたときの受信通知にリザーブし、残りの複数ビットが送信されるべき値を規定するために使用されてもよい。その後でさらに多くのビットが使用されてもよい。こうした方法によって、1バイト中で7ビット相当の情報、および2バイトで14ビット相当の情報を伝送可能にする。情報ビットを符号化データ30に含める必要がないため、図1のコーデック5でのデータ圧縮を高めることができる。
【０１４６】
一つ以上のデータベース100内に含まれる要素Eは統合され、例えばデータメモリ占有を減らせてもよい。また、要素Eは合計または計数要素を含み、スケーリングデータベース100やゼロ平均のデータベース100等に対して、原データ20を符号化する際および／または符号化データ30を復号する際、適切な方法で要素Eを提供するために、一つ以上のパラメータを用いて計算できるように適用されてもよい。
【０１４７】
一つ以上のパラメータの何れかを使用できてもよく、データブロックがデータベース100に挿入される前に、そのブロック自身からこうした一つ以上のパラメータが削除されているようになっていてもよい。それに応じて、データベース要素Eが使用される場合、結果として得られるブロックが構成される際、これらのパラメータで生成されるデータが要素Eに追加される必要がある。第の実装では、平均色パラメータが使用される。スライディング（sliding）色パラメータや他のパラメータが使用されてもよい。原理的には、メモリ内にあるこのデータベース要素Eを用いて、予測符号化や他の符号化方法が使用されてもよい。この平均は非常に有用である。何故なら、この平均を他の方法における参照Rの一部としても使用でき、その結果、これを利用するために新たなデータを伝送する必要もなく、メモリに格納される実際のデータベース100のサイズを相当に小さくすることが可能となるからである。当然ながら、他の参照Rにビットを追加することによって、メモリに格納されるデータベース100のサイズは大きくなり、符号化で使用されるという利点もある新規要素Eの数を増やすことも可能である。平均値がブロックから控除される場合、要素はおよそゼロ平均になる。
【０１４８】
以下に実施例が示される。この実施例では、ブロック値から平均値を削除することによって、平均値の異なるデータベースをより効率的に使用できる。前述の符号化方法は、スライディングブロックや予測符号化，他の方式で符号化されたブロックに対して有利に適用される。その結果の増加分は、データベース要素Eの構成前にデータベースから削除されてもよい。それに応じて、データブロックの再構成のとき、復号と合わせて、データベースからフェッチしたデータベース要素Eにこの増加分が追加される。
【０１４９】
したがって、平均値は最も単純な符号化方法であって、この点でも有利である。何故なら、参照値Rが複数部分から構成され、その部分がデータベースサイズを削減する場合、参照値Rの特定の要素および／または部分に対する必要性を、この方法が実際に明確な形で取り除くからである。データ値の相対化に振幅が使用されてもよい。これにより、データベースサイズを削減せずにデータベースのカバレッジを上げることができる。
【０１５０】
他の予測符号化や符号化方法は、事実上、予測誤差ブロックしか生み出さず、それらの使用は実用的ではない。当然ながら、平均値がそこから削除されてもよく、それにより、元のブロック用のデータベースとして、対応する特性を備える予測誤差型データベースを提供できる。データベース要素Eが別のデータベースブロックに対して予測誤差データとして使用されてもよく、データベース要素Eの再帰も本開示に従って提供されることも、当然ながら理解されよう。
【０１５１】
しかし、データベースが非常に小さいか、相当の高精度での再構成を望まない限り、非常に多くの再帰を行うことに有利な点はない。そうでなければ、データブロックの符号化データサイズが急速に大きくなってしまうからである。
【０１５２】
また、一つ以上のデータベース100は外挿法等を用いて計算された要素Eを含んでもよい。換言すれば、コーデック5は、所定のデータブロックのデータ値が計算される基礎を与える一つ以上の値を有利に併せ持ちながら、その所定のデータブロックを生成するために使用される計算方法とデータブロックのサイズも知っているのである。こうした計算はDC法とスライド法を用いて有利に実装される。DC法はオフセット値等の特定の値を利用し、それが所定のデータブロック内の全データ値に適用される。反対に、1次元スライド法等として実装されるスライド法は、二つの値、例えば、所定のブロック内の最初のデータ値と最後のデータ値を使用し、データブロックの残りの値は線形法、あるいは多項式法により、最初と最後のデータ値を基に線形内挿によって計算する。また、2次元スライド法では、データブロックの端点に対応する四つの値を使用し、データブロック内の残りの点が双線形内挿法を用いて計算されてもよい。さらに、図1のコーデック5における比較的少ない初期値からデータブロックの値を計算するために、他の種類の計算アルゴリズムが使用されてもよい。
【０１５３】
データベース100の一つ以上は、階層的方法等で他のデータベースを参照する要素Eを含んでもよい。このような場合、要素Eは別のデータベース100を定義する情報を含み、その別のデータベース100内の要素Eに対応する参照値Rも有利に含んでいる。こうした情報に基づいて、所望する所定のデータブロックのデータ値が計算される。第1データベースの要素Eから呼び出される第2データベースからの一つ以上の要素Eにアクセスするこうした方法は、一つ以上のスケーリング係数および／または一つ以上の画素値オフセットシフトを利用するという利点を持つ。これは例えば、第2データベースに参照されるデータベース要素Eが、第1データベースの要素Eを呼び出すことによって返される所望のデータブロックのサイズと比べて異なるサイズの場合に有利である。こうした方法は、2012年10月19日付けでアクセスしたウィキペディア（Wikipedia）に説明されているアフィンモデル（Affine model）を使用できる利点がある（アクセスしたURLは次の通り：http://en.wikipedia.org/wiki/Affine_transformation）。
表5には、図1のコーデック5を実装するために使用されるデータベース要素の種類の概要が示される。
［表５］データベース要素の種類
0006021792.tif 000008
【０１５４】
本明細書に開示される実施形態には、光学読取り可能なディスク等の物理的データキャリアを介して送られるストリーム動画コンテンツやインターネットテレビコンテンツ等、様々な種類のコンテンツを表現するデータを送受信できる電子製品に幅広く適用できる潜在能力を有する。また、データベース100が特定の者しか利用できない場合、例えば、参照値Rがほぼ実質的に符号化データ30で伝達される場合、本開示によってデータ暗号化サービスが提供される。本出願の着想／目的は、データベースからの参照を利用し、符号化データの少なくとも主要部分を送信し、小さい部分だけは別の符号化方法でブロック値を符号化するようにすることである。こうして、本実施形態は多種多様な技術産業に適用可能である。また本実施形態は、通信ネットワークの負荷や要件の軽減、データストレージ容量の要件の軽減に加え、高品質のデータ符号化・復号を行える可能性を有する。これらは技術的に有益な効果をもたらす。
【０１５５】
エンコーダ10およびデコーダ50は、一つ以上のハードウェアデータプロセッサとして有利に実装される。ハードウェアデータプロセッサはASICや類似のデジタル回路等を用いて配線接続で実装されてもよい。またハードウェアデータプロセッサは、コンピュータハードウェアを用いて実装され、コンピュータハードウェアは、非一時性（非一時的）コンピュータ可読データ記憶メディアに記録される一つ以上のソフトウェア製品を実行できてもよい。
【０１５６】
前述の一つ以上のデータベース100はエンコーダ10やデコーダ50，ISPが提供するLAN上に実装されてもよく、ハードディスクメモリ等の個別のメモリやメモリカード，ブルーレイ（登録商標）ディスク，RAM，ROM，フラッシュデータメモリ，SSD，DVD，CD，その他こうしたデータにアクセスできるデータキャリア等に実装されてもよい。
【０１５７】
一つ以上のデータベース100が一つ以上のメモリカードとして実装される等で、一つ以上のデータサーバによって提供される場合、その一つ以上のデータサーバが空間的に離れているかに関わらず、次の一つ以上の方法を介してエンコーダ10および／またはデコーダ50に接続される：固定接続，接続ポイント，ケーブル，無線接続，無線ネットワーク（ブルートゥース（登録商標）やWLAN等），セルラーネットワーク（GSM（登録商標），3G，4G，5G，LTE等），衛星接続等。ただし、以上の方法に限定されない。
【０１５８】
前述したように、要素Eは復号データブロックからデータベース100に一つずつ挿入され、統合されるか、一部だけ使用できる。これは原理的には、あらゆる復号データ値の組が所定の認められた原理に従ってデータベースに新規要素Eを構築でき、要素がデータベースに挿入されたところから復号データを生成するために、あらゆる符号化方法や符号化手段が利用されうることを意味する。
【０１５９】
エンコーダ10およびデコーダ50は、マルチレベルエンコーダおよび対応するマルチレベルデコーダの下位構成要素として備えられてもよい。こうした構成は英国特許出願第1218942.9号、その対応米国特許出願第13/657,382号，欧州特許出願第13003859.9号，米国特許出願第14/058,793号に開示される方法に従う。マルチレベルエンコーダでは、原データ20は解析され、原データ20の存在するコンテンツの性質等に応じて、複数のデータストリームに分割される。複数のデータストリームの一つが、対応する符号化データを生成するエンコーダ10に提供される。対応する符号化データは、複数のデータストリームにおける他のデータストリームを処理する他のエンコーダから出力された別の符号化データと統合され、マルチレベルエンコーダからの最終符号化データを生成する。マルチレベルデコーダでは、最終符号化データが受信され、次いで複数のデータストリームに分割される。データストリームの一つが、対応する復号データを生成するデコーダ50へ提供される。対応する復号データは、マルチレベルデコーダの他のデコーダから出力される復号データと統合され、最終復号出力データを生成する。こうしたマルチレベルエンコーダおよびデコーダは単体のエンコーダ10およびデコーダ50だけよりも複雑であるが、こうしたマルチレベルエンコーダおよびデコーダは広いスペクトルを持つ種類のデータを処理する際には非常に優れた符号化・復号・データ圧縮性能を発揮できる。
【０１６０】
前述した本発明の実施形態への修正は、添付の特許請求の範囲に定義される発明の範囲を逸脱しない限りにおいて可能である。本発明の記述と特許請求の範囲で用いられる「含む」，「備える」，「包含する」，「構成される」，「有する」，「存在する」等の表現は、包括的構成であると解釈されることを意図しており、明示的に記載されていないアイテムや部品，構成要素も含まれうることを意図している。単数による表記は、複数の場合も関連すると解釈される。添付の特許請求の範囲における括弧内の数字は、請求項の理解を助けることを意図したものであり、これらの請求項によって定義される発明の範囲を限定するように解釈されるべきではない。
【０１６１】
本願の出願当初の特許請求の範囲に記載された実施形態を、次に示しておく。
［１］原データ（２０）の符号化方法であって、伝送または格納のために対応する符号化データ（３０）を生成し、前記原データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含み、前記方法は、
（ａ）前記原データ（２０）の一つ以上の部分と一つ以上のデータベース（１００）の一つ以上の要素（Ｅ）に一致させることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データ（２０）の一つ以上の部分を前記一致した一つ以上の要素（Ｅ）に関連付ける参照値（Ｒ）を記録することと；
（ｂ）前記参照値（Ｒ）を、前記一つ以上のデータベース（１００）および／または前記一つ以上のデータベース（１００）を識別する情報と併せて、前記符号化データ（３０）に含めることと；
を含み、
前記方法はさらに、
（ｃ）前記原データ（２０）を固有の領域識別子（Ｕ）を有する領域に分割することと；
（ｄ）前記領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（Ｒ）を計算することと；
（ｅ）前記原データ（２０）に適用された計算によって得られた参照値（Ｒ）が、前記一つ以上のデータベース（１００）に既に格納または伝送されているか否かを調べることと、
要素（Ｅ）を固有に識別するために、前記参照値（Ｒ）または圧縮状態の前記参照値（Ｒ）を前記符号化データ（３０）に格納および／または伝送すること、または、前記符号化および／または元の原データ（２０）を前記符号化データ（３０）に格納および／または伝送することと、
オプションとして、以前に前記参照値（Ｒ）が前記一つ以上のデータベース（１００）に格納されていない場合、新規要素（Ｅ）として前記一つ以上のデータベース（１００）に格納できることと；
を含む、方法。
［２］前記一つ以上のデータベース（１００）を実装するために、一つ以上のゼロ平均データベースを使用することを含む、［１］に記載の方法。
［３］前記方法は、
（ｉ）一つ以上の動的データベース（１２０）から要素を選択することによって前記一つ以上の静的データベース（１００）を作成することと；
（ｉｉ）前記一つ以上の動的データベース（１２０）に含める一つ以上の要素（Ｅ）を生成するために、前記原データ（２０）の一つ以上の部分に存在する情報を処理することと；
（ｉｉｉ）最初の一つ以上のデータベース（１００）から要素（Ｅ）を選択し、前記符号化データ（３０）と併せて使用するために、該要素を前記一つ以上の動的データベース（１２０）に含めることと；
の少なくとも一つを含む、［１］に記載の方法。
［４］前記一つ以上のデータベース（１００）は、一つ以上の静的データベース（１１０）および／または一つ以上の動的データベース（１２０）を備え、前記一つ以上のデータベース（１００）は、一つ以上のデータサーバでホストされる、［１］に記載の方法。
［５］前記方法は、前記一つ以上のデータサーバを遠隔で制御することを含む、［４］に記載の方法。
［６］前記方法は、前記符号化データ（３０）を生成できる少なくとも一つのエンコーダ（１０）と前記符号化データ（３０）を受信するための少なくとも一つのデコーダ（５０）の間で前記一つ以上のデータベース（１００）を共有することを含む、［４］に記載の方法。
［７］前記方法は、通信ネットワークを介して前記一つ以上のデータベース（１００）に接続されるエンコーダ（１００）に実装され、前記一つ以上のデータベース（１００）の少なくとも一つは、前記エンコーダ（１０）のそれへと互いに類似する、通信ネットワークのローカルエリアネットワーク（ＬＡＮ，ブルートゥース，ＷＬＡＮ，ＧＳＭ，３Ｇ，４Ｇ，５Ｇ，ＬＴＥ）内にある、［１］に記載の方法。
［８］前記参照値（Ｒ，３００）は、前記符号化データ３０に含めるために個別に符号化される複数の部分（３１０Ａ，３１０Ｂ，３１０Ｃ）を含む、［１］に記載の方法。
［９］前記原データ（２０）の一つ以上の部分と前記一つ以上の静的データベース（１１０）のうちの一つにおける一つ以上の要素との一致が検出されない場合、前記一つ以上の動的データベース（１２０）の要素が生成される、［１］に記載の方法。
［１０］前記原データ（２０）の一つ以上の部分を前記一つ以上のデータベース（１００）の一つ以上の要素（Ｅ）と一致させることは、品質閾値の範囲内で行われ、前記品質閾値は、前記参照値（Ｒ）を生成する間に動的に変更される、［１］に記載の方法。
［１１］前記一つ以上の参照値（Ｒ）が規定する一つ以上の要素（Ｅ）を用いて前記原データ（２０）の対応する一つ以上の部分を再構成するために、前記一つ以上の参照値（Ｒ）が使用され、前記再構成された一つ以上の部分と前記原データにおける元の対応する一つ以上の部分との間の誤差が決定され、前記誤差が符号化されて前記符号化データ（３０）に含められる、［１］に記載の方法。
［１２］第１のデータベース（１００）の一つ以上の要素の一つは、前記一つ以上データベース（１００）うちの別の一つ以上のデータベースに存在する一つ以上の要素（Ｅ）を参照可能である、［１］に記載の方法。
［１３］前記一つ以上データベース（１００）は、前記原データ（２０）に存在するコンテンツの性質に応じて選択されるおよび／またはサイズが変わる、［１］に記載の方法。
［１４］原データ（２０）を符号化して対応する符号化データ（３０）を生成するエンコーダ（１０）であって、前記原データは、音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含み、前記エンコーダ（１０）は、
（ａ）前記原データ（２０）の一つ以上の部分と一つ以上のデータベース（１００）の一つ以上の要素（Ｅ）に一致させることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記一致させること、および、前記原データ（２０）の一つ以上の部分を前記一致した一つ以上の要素（Ｅ）に関連付ける参照値（Ｒ）を記録することを実行する第１のデータ処理ハードウェアと；
（ｂ）前記参照値（Ｒ）を、前記一つ以上のデータベース（１００）および／または前記一つ以上のデータベース（１００）を識別する情報と併せて、前記符号化データ（３０）に含める第２のデータ処理ハードウェアと；
を備え、
前記エンコーダ（１０）はさらに、
（ｃ）前記原データ（２０）を受信し、前記原データ（２０）を固有の領域識別子（Ｕ）を有する領域に分割することと；
（ｄ）前記領域から領域固有のサンプルを取得し、前記サンプルに基づいて対応する参照値（Ｒ）を計算することと；
（ｅ）前記原データ（２０）に適用された計算結果として得られた参照値（Ｒ）が、前記一つ以上のデータベース（１００）に既に格納または伝送されているか否かを調べることと、
要素（Ｅ）を固有に識別するために、前記参照値（Ｒ）または圧縮状態の前記参照値（Ｒ）を前記符号化データ（３０）に格納および／または伝送すること、または、前記符号化および／または元の原データ（２０）を前記符号化データ（３０）に格納および／または伝送することと、
オプションとして、以前に前記参照値（Ｒ）が前記一つ以上のデータベース（１００）に格納されていない場合、新規要素（Ｅ）として前記一つ以上のデータベース（１００）に格納できることと；
を実行できる、エンコーダ（１０）。
［１５］前記エンコーダ（１０）は、［１］から［１３］の何れか１項に記載の符号化方法を実行できる、［１４］に記載のエンコーダ。
［１６］［１］に記載の方法によって提供される符号化データ（３０）の復号方法であって、対応する復号出力データ（６０）を生成し、前記復号方法は、
（ａ）参照値（Ｒ，３００），領域識別子（Ｕ）に関連する情報，および一つ以上のデータベース（１００）を識別する情報を含む符号化データ（３０）を受信することと；
（ｂ）前記符号化データ（３０）から前記参照値（Ｒ，３００）を復号することと；
（ｃ）前記参照値（Ｒ，３００）が示す前記一つ以上データベース（１００）からの一つ以上の要素（Ｅ）にアクセスすることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記アクセスすることと；
（ｄ）対応する復号出力データ（６０）を全て集合させて、一つ以上のデータブロックを生成することと；
を含む、方法。
［１７］前記方法は、
（ｅ）データベース内のデータを保持することであって、前記データは、前記参照値（Ｒ）に対応する音声データ，画像データ，動画データ，グラフィックスデータ，多次元データ，測定データの少なくとも一つを含む、前記保持することと；
（ｆ）前記符号化データ（３０）に含まれる、領域識別子（Ｕ）に関連する情報に基づいて、領域識別子を生成することと；
（ｇ）一つ以上の領域識別子（Ｕ）に対応する参照値（Ｒ）を前記符号化データから受信する、または読出すことと；
（ｈ）前記参照値（Ｒ）に基づいて、前記参照値（Ｒ）に対応する領域識別子（Ｕ）の対応するデータを、前記データベースから読出すことと；
（ｉ）前記データベースから読出したデータに基づいて、前記領域識別子（Ｕ）に基づく復号出力データ（６０）の全てを集合させたデータブロックを生成することと；
を含む、方法。
［１８］前記一つ以上のデータベース（１００）は、一つ以上の静的データベース（１１０）および／または一つ以上の動的データベース（１２０）を備える、［１６］に記載の方法。
［１９］前記方法は、通信ネットワークを介して前記一つ以上のデータベース（１００）に接続されるデコーダ（５０）で実行される、［１６］に記載の方法。
［２０］前記一つ以上のデータベース（１００）は、前記復号方法を実行するように構成されるデータ処理ハードウェア（５０）に独立してローカルに配置される、［１６］に記載の方法。
［２１］前記一つ以上のデータベース（１００）は、前記データ処理ハードウェア（５０）も備えるローカルエリアネットワーク（ＬＡＮ，ブルートゥース，ＷＬＡＮ，ＧＳＭ，３Ｇ，４Ｇ，５Ｇ，ＬＴＥ）でホストされ、前記データ処理ハードウェア（５０）は、該データ処理ハードウェア（５０）のローカルエリアネットワークと互いに類似する、通信ネットワークのローカルエリアネットワーク（ＬＡＮ，ブルートゥース，ＷＬＡＮ，ＧＳＭ，３Ｇ，４Ｇ，５Ｇ，ＬＴＥ）内の前記一つ以上のデータベース（１００）に接続される、［２０］に記載の方法。
［２２］前記一つ以上のデータサーバは、一つ以上のデータサーバによって提供される、［１６］に記載の方法。
［２３］前記一つ以上のデータサーバは遠隔制御される、［２２］に記載の方法。
［２４］前記一つ以上のデータベース（１００）は、前記符号化データ（３０）を生成できる少なくとも一つのエンコーダ（１０）と前記符号化データ（３０）を受信するための前記データ処理ハードウェア（５０）を備える少なくとも一つのデコーダの間で共有される、［２２］に記載の方法。
［２５］前記方法は、
前記一つ以上の静的データベース（１１０）の一つ以上の要素（Ｅ）および／または前記符号化データ（３０）から提供される情報から、一つ以上の動的データベース（３０）を作成することを含み、前記作成された一つ以上の動的データベース（１２０）は、前記符号化データ（３０）の復号に使用される、［１６］に記載の方法。
［２６］符号化データ（３０）を復号して対応する復号データ（６０）を生成するデコーダ（５０）であって、前記デコーダ（５０）は、
（ａ）参照値（Ｒ，３００），領域識別子（Ｕ）に関連する情報，および一つ以上のデータベース（１００）を識別する情報を含む符号化データ（３０）を受信する第１のデータ処理ハードウェアと；
（ｂ）前記符号化データ（３０）から前記参照値（Ｒ，３００）を復号する第２のデータ処理ハードウェアと；
（ｃ）前記参照値（Ｒ，３００）が示す前記一つ以上データベース（１００）からの一つ以上の要素（Ｅ）にアクセスすることであって、前記一つ以上の要素（Ｅ）は対応する一つ以上のデータブロックを表わす、前記アクセスする第３のデータ処理ハードウェアと；
（ｄ）対応する復号出力データ（６０）を全て集合させて、一つ以上のデータブロックを生成する第４のデータ処理ハードウェアと；
を備える、デコーダ（５０）。
［２７］前記デコーダ（５０）は、［１６］から［２５］の何れか１項に記載の方法を実行できる、［２６］に記載のデコーダ（５０）。
［２８］原データ（２０）を符号化して対応する符号化データ（３０）を生成する、［１４］に記載のエンコーダ（１０）の少なくとも一つと；
前記符号化データ（３０）を受信し、前記符号化データ（３０）を復号して対応する復号データ（６０）を生成する、［２６］に記載のデコーダ（５０）の少なくとも一つと；
を備える、コーデック（５）。
［２９］エンコーダ（１０）のコンピュータハードウェアで実行されると、前記コンピュータハードウェアに［１］から［１３］のいずれかに記載の方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラム。
［３０］デコーダ（５０）のコンピュータハードウェアで実行されると、前記コンピュータハードウェアに［１６］から［２５］のいずれかに記載の方法を実行させるように構成されるコンピュータ命令を備える、コンピュータプログラム。
【図１】
0006021792.tif 000009
【図２】
0006021792.tif 000010
【図３】
0006021792.tif 000011