(57)【要約】  デジタル電子信号の形のデータエントリの配列を圧縮する方法であって、配列の各ブロックについての複数の可能な圧縮符号化を、ブロックの各符号化にそれぞれ異なる圧縮技法を使用して決定することであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、決定することと、複数の圧縮符号化のリストを生成し、リストから複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択することと、を含む。次に、選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化が更新されてもよく、選択された符号化を復元された形で追加することにより参照データ配列が更新されてもよい。元のデータ配列の圧縮符号化について最大データサイズに到達するまで、これらのステップが繰り返されてもよい。
2018537048.tif 000002
【特許請求の範囲】
【請求項１】
デジタル電子信号の形のデータエントリの配列を圧縮する方法であって、
（ａ）圧縮すべき元のデータ配列を提供するステップと、
（ｂ）前記元のデータ配列を１つまたは複数のサイズのブロックに分割するステップと、
（ｃ）前記配列の各ブロックについての複数の可能な圧縮符号化を、前記ブロックの各符号化にそれぞれ異なる圧縮技法を使用して決定するステップであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、ステップと、
（ｄ）復元されると、前記元のデータ配列の初期近似である参照データ配列に対応する、前記元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、前記元のデータ配列と前記参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化するステップと、
（ｅ）複数の圧縮符号化のリストを作成し、前記リストから前記複数の圧縮符号化のうち、復元されて前記参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択するステップと、
（ｆ）前記選択された圧縮符号化を追加することにより前記元のデータ配列の前記圧縮符号化を更新し、前記選択された符号化を復元された形で追加することにより前記参照データ配列を更新するステップと、
（ｇ）前記元のデータ配列の前記圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返すステップと、
を含む方法。
【請求項２】
前記複数の圧縮符号化のうち１つを選択するステップが、それより前の繰り返しで第１の符号化が前もって選択されているブロックに関して第２の符号化を選択することを含む、請求項１に記載の方法。
【請求項３】
前記圧縮符号化を更新するステップが、前記第１の符号化に加えて前記第２の符号化を使用することを含む、請求項２に記載の方法。
【請求項４】
前記圧縮符号化を更新するステップが、前記第１の符号化に代えて前記第２の符号化を使用することを含む、請求項２に記載の方法。
【請求項５】
前記複数の可能な圧縮符号化の前記リストが、データサイズが増加し、かつ、再構築誤差が減少するシーケンスで提供されることのできる圧縮符号化のみを含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記複数の圧縮符号化の前記リストを作成するステップが、各ブロックについての前記可能な符号化をデータサイズの増大についてランク付けし、任意の所与のブロックについての前記可能な圧縮符号化のうち、データサイズの増加に対してそのブロックについての再構築誤差の減少をもたらさないものを前記リストから除外するステップを含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記同じデータサイズを有する圧縮符号化を特定し、それら特定された圧縮符号化のうち、より大きな再構築誤差を有するものを除外する、前記複数の可能な圧縮符号化の前記リストについて重複排除を行うステップを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記複数の可能な圧縮符号化の前記リストが、前記元の配列の前記データサイズよりも小さいデータサイズを有するリストに提供できる圧縮符号化のみを含む、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記元のデータ配列が、まず複数のマクロブロックに分割され、次いで、各マクロブロック内でブロックに分割される、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記複数の圧縮符号化の前記リストが、それぞれのマクロブロック全体についてと同様に、それぞれのマクロブロック内のブロックについての符号化を含む、請求項９に記載の方法。
【請求項１１】
前記複数の圧縮符号化のリストを生成するステップが、それぞれのマクロブロックについて複数のマクロブロック圧縮符号化を決定することであって、各マクロブロック符号化が前記それぞれのマクロブロック内のブロックについての圧縮符号化の集合を含み、
前記複数の印象付けられた符号化のうちの１つを選択するステップが、前記マクロブロック圧縮符号化のうち１つを選択することを含む、
請求項９または１０に記載の方法。
【請求項１２】
データエントリの前記配列がビデオストリームの一部である、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
前記最大データサイズに到達したら、可変帯域のチャネルを介して前記圧縮符号化を送信するステップをさらに含む、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
あるチャネルを介してビデオデータを送信するように構成されたビデオエンコーダであって、当該エンコーダが、
調節可能な圧縮因子を使用してビデオデータを圧縮するように構成されたコンプレッサと、
構築されたデータパケットを前記チャネルを介して送信するように構成された送信機と、を含み、
前記コンプレッサが、
（ａ）圧縮すべき元のデータ配列を受け取り、
（ｂ）前記元のデータ配列を１つまたは複数のサイズのブロックに分割し、
（ｃ）それぞれの可能な圧縮符号化がそれぞれのデータサイズおよびそれぞれの再構築誤差を有する、前記配列の各ブロックについての複数の可能な圧縮符号化を、前記ブロックの各符号化についてそれぞれ異なる圧縮技法を使用して決定し、
（ｄ）復元されると、前記元のデータ配列の初期近似である参照データ配列に対応する、前記元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、前記元のデータ配列と前記参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化し、
（ｅ）複数の圧縮符号化のリストを作成し、前記リストから前記複数の圧縮符号化のうち、復元されて前記参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択し、
（ｆ）前記選択された圧縮符号化を追加することにより前記元のデータ配列の前記圧縮符号化を更新し、前記選択された符号化を復元された形で追加することにより前記参照データ配列を更新し、
（ｇ）前記元のデータ配列の前記圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返す、
ように構成される、ビデオエンコーダ。
【請求項１５】
コンピュータプログラムが格納された非一時的コンピュータ可読記憶媒体であって、
前記コンピュータプログラムが、実行されると、装置に、
（ａ）圧縮すべき元のデータ配列を提供することと、
（ｂ）前記元のデータ配列を１つまたは複数のサイズのブロックに分割することと、
（ｃ）前記配列の各ブロックについての複数の可能な圧縮符号化を、前記ブロックの各符号化にそれぞれ異なる圧縮技法を使用して決定することであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、決定することと、
（ｄ）復元されると、前記元のデータ配列の初期近似である参照データ配列に対応する、前記元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、前記元のデータ配列と前記参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化することと、
（ｅ）複数の圧縮符号化のリストを作成し、前記リストから前記複数の圧縮符号化のうち、復元されて前記参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択することと、
（ｆ）前記選択された圧縮符号化を追加することにより前記元のデータ配列の前記圧縮符号化を更新し、前記選択された符号化を復元された形で追加することにより前記参照データ配列を更新することと、
（ｇ）前記元のデータ配列の前記圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返すことと、
を含む動作を行うよう命じるプロセッサ可読命令を含む、
非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル電子信号の形のデータエントリの配列を圧縮するための方法および装置に関する。
【背景技術】
【０００２】
デジタルビデオは、時間的な順序で見られたときに動いているという印象を伝える、一連の視覚的画像またはフレームである。各フレームは、個別のピクセルからなる直交ビットマップとして符号化され、各行はフレーム幅を画定する等しい数のピクセルをもち、同様に、各列はフレーム高を画定する等しい数のピクセルをもつ。各ピクセルは色を符号化し、各ピクセルを符号化するために使用されるビットの数（ピクセル深度と呼ばれることもある）を増加させることによって、色の微妙な変異を表現することができる。よって、１つのビデオフレームを表現するために必要なビットの数は、幅×高さ×ピクセル深度である。
【０００３】
動いているという印象を与えるためには、これらのフレームを一定したフレームレートで素早く連続的に表示する必要があり、フレームレートは１秒当たりのフレーム数（ｆｐｓ）として定められる。継続した動きの印象を伝えるための最小限のビデオフレームレートは２４ｆｐｓであると一般に考えられている。
【０００４】
未処理のデジタルビデオを送信または記憶するために必要なデータの量を考える際に、ビデオ圧縮の必要が認識されることがある。ピクセル深度が１ピクセル当たり１６ビットのフルカラー高精細（１９２０×１０８０）ビデオフレームは、３３００万ビットまたは４メガバイトに相当する。１秒当たり２５フレームの１９２０×１０８０ビデオのデータは毎秒９９メガバイトなので、１分間の高精細ビデオクリップを送信または記憶するためには、約５．８ギガバイトを必要とすることになる。これには長いダウンロード時間が伴い、また、多くのセルラー加入者では、許容されるデータ量を超えることがある。
【０００５】
テキストに使用される圧縮技術は、復元の際に全く同じテキストを再現する必要があるので、無損失である。それに対して、ビデオの圧縮では、元のピクセル値を再現するのではなく近似することにより、ビデオフレーム内およびフレーム間の空間的および時間的な冗長性を利用して、ビデオを送信または記憶するために必要なデータの量を大きく削減する。したがって、ビデオ圧縮の処理は損失が多く、復元されたビデオの画質（元のビデオをどれほど良く近似するか）は、圧縮率およびビデオの複雑さに依存する。
【０００６】
圧縮率は一般に(ソースのサイズ/圧縮後のサイズ)：１として表され、サイズはビット数で測られる。ほとんどのビデオ圧縮アルゴリズムは１００：１の圧縮率を容易に達成し、１分間の高精細ビデオクリップを５９メガバイトにまで圧縮することができる。この圧縮は、そのビデオクリップを数時間ではなく数分間でダウンロードできることを意味する。
【０００７】
ビデオを圧縮する目的は、ストレージを最小化するため、送信コストを削減するため、またはライブストリーミングを可能にするためのいずれかであり、これらの目的には通常、それぞれ異なる手法が伴う。ストレージを最小化するための圧縮には、通常、ソースと圧縮されたビデオとの間に目に見える差異がほとんど、または全くなくなるように、各フレームの圧縮に許容される画質閾値を設けることが伴う。各ビデオフレームの圧縮後のサイズに関連性はなく、ビデオ圧縮プロセスは、ビデオの中で最も複雑な空間的詳細またはフレーム間の素早い動きがある部分に、より多くのビットを割り当てることができる。そのような技法は、「可変レート」と呼ばれることがあり、圧縮後のビデオのサイズはビデオの内容に依存する。
【０００８】
送信が伴う場合は、普通、画質ではなく、１秒当たりのビット数として定められる帯域を目標とする。これにより、圧縮後のビデオのサイズが確実に予測され、よって、帯域の利用を制御することができる。ほとんどの圧縮アルゴリズムでは、目標画質をフレームごとに調節して目標の帯域を達成する、レート制御を使用する。目標帯域に合わせるために、圧縮アルゴリズムは、画質が低下しすぎる場合にはフレームを「ドロップ」しなければならないことがある。その結果、ビデオによってキャプチャされる動きが速くなるにつれて、または複雑になるにつれてフレームレートが低下する、可変フレームレートになる。
【０００９】
一定したフレームレートでのリアルタイム低遅延ストリーミングは、固定レート符号化の使用によってのみ実現できる。前述の手法では、固定または可変であり得る目標画質に合わせて各ビデオフレームを圧縮するが、それとは異なり、固定レート符号化では、圧縮プロセスは、それぞれの個別のフレームに使用されるビットの数を目標とする必要がある。これにより、各フレームの圧縮後のサイズが通信チャネルの実際の容量に確実に一致し、チャネルは定められた最大帯域までのデータを送信することができる。その代わり、視覚的な画質が犠牲となり、画質はビデオシーケンスの複雑さおよびシーンの動きの量によって変動する。
【００１０】
固定レートのビデオ符号化を提供する１つの技法が特許文献１に記載されており、それによれば、各フレームを可変サイズのブロックの集合として近似することができ、各ブロック内のピクセルは確立された画像符号化技法を使用して、相当するソースピクセルを近似する。このアルゴリズムは、個々のブロックに対応する圧縮符号化を、結果のフレームコードが目標の圧縮フレームサイズに達するまで連続的に追加する。特許文献１では、このアルゴリズムは、ビデオフレームの復元後の表現に最も大きな改善をもたらす新しい圧縮符号化を追加する。言い換えれば、そのアルゴリズムは、最も小さい再構築誤差を呈するブロックを追加するが、これは、ソースフレームと、圧縮フレームを復号することにより生成されるフレームとの間の差異の尺度である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第９７／０１６０２６号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１の手法の１つの制限は、アルゴリズムが再構築誤差の改善のみに集中していることである。難題の１つは、最も低い再構築誤差を達成するために、ときに、比較的大きなデータサイズで符号化することが必要になることである。したがって、この圧縮アルゴリズムでは利用可能な帯域を必ずしも最も効率よく利用できるとは限らない。
【００１３】
特許文献１の手法のもう１つの制限は、先に選択された区域を部分的に塞ぐように、それより小さなブロックが追加される可能性があることである。これにより再構築誤差が減少する可能性はあるが、近似が最適ではなくなる可能性があるので、問題になる可能性もある。
【課題を解決するための手段】
【００１４】
本発明の一態様によれば、デジタル電子信号の形のデータエントリの配列を圧縮する方法であって、（ａ）圧縮すべき元のデータ配列を提供するステップと、（ｂ）配列の複数の可能な圧縮符号化を決定するステップであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、ステップと、（ｃ）復元されると、元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化するステップと、（ｄ）複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択するステップと、（ｅ）選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新するステップと、（ｆ）元のデータ配列の圧縮符号化についての最大データサイズに到達するまで、ステップ（ｄ）と（ｅ）を再帰的に繰り返すステップと、を含む方法が提供される。
【００１５】
このようにして、元のデータ配列の高画質な（すなわち、再構築誤差値が低い）復元表現と、圧縮データ配列の小さなデータサイズへの、競合する要望のバランスをとる効率的な圧縮技法が提供される。これは、データサイズの単位増加あたりの再構築誤差の相対的改善が最大になる圧縮符号化を追加することによって圧縮表現を繰り返し更新することにより実現される。これにより、最大データサイズに到達するまで、圧縮表現のデータサーズが漸増し、再構築誤差が漸減する。この技法により、最適の再構築誤差をもつ圧縮表現を、特定の予定データサイズの範囲内で作成することが可能になる。
【００１６】
この技法は特に、さまざまな帯域のチャネルにわたるライブビデオの圧縮で有用である。この技法によって、チャネル帯域の制約の範囲内で、最小の再構築誤差をもつ最適な圧縮ができるようになる。よって、利用可能な帯域を最大限に活用することにより、ライブビデオを最小の遅延で送信することができる。
【００１７】
部分的な閉塞に関連する難題もまた克服される。本発明の方法では、先に選択された区域は、それより小さなブロックによって完全に塞がれる場合にのみ置き換えられる。これにより、符号化の最適化が改善される可能性がある。
【００１８】
好ましくは、元のデータ配列は、１つまたは複数のサイズのブロックに分割され、各ブロックについて少なくとも１つの可能な圧縮符号化が決定される。このようにして、元の配列のさまざまな区画に圧縮符号化が提供されてもよい。さまざまな区画の圧縮符号化を結合することによって、基本配列の完全な圧縮表現が形成されてもよい。一般に、ブロックのサイズが大きい方が小さいデータサイズで符号化できるが、再構築誤差は大きくなる。よって、元のデータ配列を徐々に粒度の大きくなる複数の層（すなわち、サイズが徐々に小さくなるブロック）に分割すると有利である。このようにして、圧縮表現のデータサイズが大きくなるにつれて再構築誤差が小さくなる、有効な繰り返しを実現することができる。
【００１９】
好ましくは、それぞれのブロックについて、複数の圧縮技法を使用して、複数の可能な圧縮符号化が決定される。あるブロックの最適の圧縮技法は、一般に、ブロック内のデータの属性に依存する。圧縮技法の複数の候補を提供することにより、基本のデータを圧縮するための最も効果的な技法（すなわち、最適のデータサイズおよび再構築誤差でデータを圧縮することのできる技法）を選択することが可能になる。ビデオの符号化では、例えば、ビデオフレームのシーケンス間の時間的に冗長な情報を除去する圧縮技法として、動きの推定が使用されてもよい。動きの推定は、連続するフレーム間に著しい類似性を発生させる動きが存在するビデオフレームには効果的な圧縮技法であり得る。別の例では、多数の「ゼロ」データエントリの中に非ゼロ値が散在するビデオフレームには、ランレングス符号化が効果的である。複数の技法を使用して圧縮符号化を決定することにより、最も効率的な圧縮符号化（すなわち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の相対的改善が最大になる圧縮符号化）を選択するための柔軟性が、この方法に得られる。
【００２０】
ビデオコーティングのための圧縮技法の候補の非制限的な例には、動きの推定、変換符号化、ベクトル量子化、および残差符号化がある。
【００２１】
配列の複数の可能な圧縮符号化は、好ましくは、さまざまな領域の符号化をさまざまな形で結合できるように、複数の順列を含む。符号化のいずれの有効な組み合わせも、好ましくは、基本配列の全域またはすべての要素をカバーするべきである。
【００２２】
配列の複数の可能な圧縮符号化は、好ましくは、データサイズが増加し、かつ、再構築誤差が減少するシーケンスで提供されることのできる圧縮符号化のみを含む。よって、データサイズが増大しても再構築誤差が減少しない圧縮符号化があれば、それを除外することが可能である。このようにして、選択候補のリストから多数の次善の符号化を除外することが可能である。これにより処理時間を大幅に削減し、リアルタイム圧縮を促進することができる。これは、遅延を最小化することが重要な、ライブビデオの適用例で特に有用である。
【００２３】
この方法は、同じデータサイズを有する圧縮符号化を特定し、それら特定された圧縮符号化のうち、より大きな再構築誤差を有するものを除外する、配列の複数の可能な圧縮符号化について重複排除を行うステップを含んでもよい。加えて、配列の複数の可能な圧縮符号化は、好ましくは、元の配列のデータサイズよりも小さいデータサイズを有するリストに提供できる圧縮符号化のみを含む。
【００２４】
本発明の別の態様によれば、あるチャネルを介してビデオデータを送信するように構成されたビデオエンコーダであって、エンコーダは、調節可能な圧縮因子を使用してビデオデータを圧縮するように構成されたコンプレッサと、構築されたデータパケットをチャネルを介して送信するように構成された送信機と、を含み、コンプレッサは、
（ａ）圧縮すべき元のデータ配列を受け取り、
（ｂ）それぞれの可能な圧縮符号化がそれぞれのデータサイズおよびそれぞれの再構築誤差を有する、配列の複数の可能な圧縮符号化を決定し、
（ｃ）復元されると元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の初期圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列の間の定量的な差異を表す第１の再構築誤差をもつ初期圧縮符号化を提供し、
（ｄ）複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択し、
（ｅ）選択された圧縮符号化を追加することにより元のデータ配列の初期圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新し、
（ｆ）元のデータ配列の圧縮符号化について最大データサイズに到達するまで、ステップ（ｄ）と（ｅ）を再帰的に繰り返す、
ように構成される、ビデオエンコーダが提供される。
【００２５】
本発明のさらに別の態様によれば、コンピュータプログラムが格納された非一時的コンピュータ可読記憶媒体であって、コンピュータプログラムが、実行されると、装置に、
（ａ）圧縮すべき元のデータ配列を提供することと、
（ｂ）配列の複数の可能な圧縮符号化を決定することであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、決定することと、
（ｃ）復元されると、元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化することと、
（ｄ）複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択することと、
（ｅ）選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新することと、
（ｆ）元のデータ配列の圧縮符号化について最大データサイズに到達するまで、ステップ（ｄ）と（ｅ）を再帰的に繰り返すことと、
を含む動作を行うよう命じるプロセッサ可読命令を含む、
非一時的コンピュータ可読記憶媒体が提供される。
【００２６】
本発明の別の態様によれば、デジタル電子信号の形のデータエントリの配列を圧縮する方法であって、
（ａ）圧縮すべき元のデータ配列を提供するステップと、
（ｂ）元のデータ配列を１つまたは複数のサイズのブロックに分割するステップと、
（ｃ）配列の各ブロックについての複数の可能な圧縮符号化を、ブロックの各符号化にそれぞれ異なる圧縮技法を使用して決定するステップであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、ステップと、
（ｄ）復元されると、元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化するステップと、
（ｅ）複数の圧縮符号化のリストを作成し、リストから複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択するステップと、
（ｆ）選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新するステップと、
（ｇ）元のデータ配列の圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返すステップと、
を含むが提供される。
【００２７】
複数の圧縮符号化のリストを作成するステップは、各ブロックについての可能な符号化をデータサイズの増大についてランク付けし、任意の所与のブロックについての可能な圧縮符号化のうち、データサイズの増加に対してそのブロックについての再構築誤差の減少をもたらさないものをリストから除外するステップを含んでもよい。
【００２８】
複数の圧縮符号化のうち１つを選択するステップは、それより前の繰り返しで第１の符号化が前もって選択されているブロックに関して第２の符号化を選択することを含んでもよい。
【００２９】
圧縮符号化を更新するステップは、第１の符号化に加えて第２の符号化を使用することを含んでもよい。
【００３０】
圧縮符号化を更新するステップは、第１の符号化に代えて第２の符号化を使用することを含んでもよい。
【００３１】
元のデータ配列は、まず複数のマクロブロックに分割され、次いで、各マクロブロック内でブロックに分割されてもよい。
【００３２】
複数の圧縮符号化のリストは、それぞれのマクロブロック全体についてと同様に、それぞれのマクロブロック内のブロックについての符号化を含んでもよい。
【００３３】
複数の圧縮符号化のリストを生成するステップは、それぞれのマクロブロックについて複数のマクロブロック圧縮符号化を決定することであって、各マクロブロック符号化はそれぞれのマクロブロック内のブロックについての圧縮符号化の集合を含み、複数の印象付けられた符号化のうちの１つを選択するステップは、マクロブロック圧縮符号化のうち１つを選択することを含んでもよい。
【００３４】
本発明の別の態様によれば、あるチャネルを介してビデオデータを送信するように構成されたビデオエンコーダであって、このエンコーダは、調節可能な圧縮因子を使用してビデオデータを圧縮するように構成されたコンプレッサと、構築されたデータパケットをチャネルを介して送信するように構成された送信機と、を含み、コンプレッサは、
（ａ）圧縮すべき元のデータ配列を受け取り、
（ｂ）元のデータ配列を１つまたは複数のサイズのブロックに分割し、
（ｃ）それぞれの可能な圧縮符号化がそれぞれのデータサイズおよびそれぞれの再構築誤差を有する、配列の各ブロックについての複数の可能な圧縮符号化を、ブロックの各符号化についてそれぞれ異なる圧縮技法を使用して決定し、
（ｄ）復元されると、元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化し、
（ｅ）複数の圧縮符号化のリストを作成し、リストから複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択し、
（ｆ）選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新し、
（ｇ）元のデータ配列の圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返す、ように構成される、ビデオエンコーダが提供される。
【００３５】
別の態様によれば、コンピュータプログラムが格納された非一時的コンピュータ可読記憶媒体であって、そのコンピュータプログラムが、実行されると、装置に、
（ａ）圧縮すべき元のデータ配列を提供することと、
（ｂ）元のデータ配列を１つまたは複数のサイズのブロックに分割することと、
（ｃ）配列の各ブロックについての複数の可能な圧縮符号化を、ブロックの各符号化にそれぞれ異なる圧縮技法を使用して決定することであって、各可能な圧縮符号化が、それぞれのデータサイズおよびそれぞれの再構築誤差を有する、決定することと、
（ｄ）復元されると、元のデータ配列の初期近似である参照データ配列に対応する、元のデータ配列の圧縮符号化であって、第１のデータサイズおよび、元のデータ配列と参照データ配列との間の定量的な差を表す第１の再構築誤差を有する圧縮符号化を初期化することと、
（ｅ）複数の圧縮符号化のリストを作成し、リストから複数の圧縮符号化のうち、復元されて参照データ配列に追加されたときに、データサイズの単位増加あたりの再構築誤差の最大の相対的改善を与えるものを１つ選択することと、
（ｆ）選択された圧縮符号化を追加することにより元のデータ配列の圧縮符号化を更新し、選択された符号化を復元された形で追加することにより参照データ配列を更新することと、
（ｇ）元のデータ配列の圧縮符号化について最大データサイズに到達するまで、ステップ（ｅ）と（ｆ）を再帰的に繰り返すことと、
を含む動作を行うよう命じるプロセッサ可読命令を含む、
非一時的コンピュータ可読記憶媒体が提供される。
【００３６】
方法の特徴は、対応する装置の特徴として提供されてもよく、また、その逆も成り立つ。
【００３７】
一般に本発明の上記の態様のそれぞれに従う任意選択の特徴が本発明の他の態様のそれぞれに関して任意選択の特徴として等しく適用可能であり、それぞれの態様に必要な表現の変更に合わせて書き直されることがあることに留意されたい。単に簡略にするために、それぞれの態様に合わせてそのような任意選択の特徴のすべては書き直されないことに留意されたい。
【００３８】
次に、本発明の実施形態について、添付図面を参照しながら、単に例として説明する。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態における送信システムの概略図である。
【図２】本発明の一実施形態における、あるマクロブロックの、階層的下位分割の候補を示す図である。
【図３】マクロブロックコーディングの作成に使用するための領域の組み合わせの候補を示す図である。
【図４】本発明の一実施形態で使用するための方法ステップを示すフロー線図である。
【発明を実施するための形態】
【００４０】
図１は、それぞれのセルラートランシーバ６、８をもつ、ビデオエンコーダ２およびサーバ４を含む、送信システムの概略図である。エンコーダ２は、ビデオデータ、タイムクリティカルなデータ、および非タイムクリティカルなデータを、セルラーリンクを介してサーバ４に送信するように動作可能である。サーバ４は、タイムクリティカルなデータおよび非タイムクリティカルなデータをエンコーダ２にセルラーリンクを介して送信するように動作可能である。
【００４１】
サーバ４は、インターネットなどの従来型のネットワーク２４を介してユーザデバイス２２に接続されている。サーバ４とユーザデバイス２２の間には、低帯域チャネルを含む、ある数の代替的なコネクションが使用されてもよい。サーバ４は、エンコーダ２から受け取ったビデオおよび／または他のデータを、インターネットを介してユーザデバイス２２に中継するように構成される。一般に、サーバ４とユーザデバイス２２の間には、サーバ４とエンコーダ２の間のセルラーリンクで実現できるよりも容量の高いコネクションが提供される。
【００４２】
ビデオカメラ１０は、あるシーンからビデオをキャプチャしてエンコーダ２内のコンプレッサ１６に提供するように構成される。コンプレッサ１６は、所定のデータサイズの圧縮ビデオフレームを作成するために、調節可能な圧縮因子を使用してビデオフレームを圧縮するように動作可能である。マルチプレクサ１８は、ビデオコンプレッサ１６から圧縮ビデオを受け取り、また、ＣＰＵ１４からタイムクリティカルおよび非タイムクリティカルなデータを受け取る。これらのデータは１つのチャネルに多重化され、セルラーリンクを介してサーバ４に送信される。コンプレッサ１６は、専用ハードウェアとして、またはプロセッサ上で実行するコンピュータプログラムとして実装されてもよい。
【００４３】
エンコーダは帯域モニタ２０を含み、このモニタは、チャネル内で送信されるデータパケットの挙動を監視するように構成される。帯域モニタ２０はさらに、ビデオコンプレッサ１６に指示して、チャネル内の状況の変化に応答して調節可能な圧縮因子を変更するように動作可能である。調節可能な圧縮因子を計算するための技法が、同時係属中の英国特許出願第１５０２４３４．２号に記載されている。各ビデオフレームについて、そのビデオフレームの圧縮表現のデータサイズが予測可能になるように、調節可能な圧縮因子が計算される。
【００４４】
動作において、コンプレッサ１６は、圧縮されていないビデオフレームをカメラ１０から受け取る。コンプレッサ１６は受け取ったフレームを複数のマクロブロックに区切り、このマクロブロックが符号化の基本単位として使用される。ビデオフレームは、互いに重複しないマクロブロックに区切られ、各マクロブロックは、独自のピクセル要素の配列を符号化する。マクロブロックはどのようなサイズおよび形状でもよいが、通常は正方形である。
【００４５】
一般に、マクロブロックのサイズが小さいほど、より小さな再構築誤差が達成される。しかし、ビデオフレームの圧縮表現のデータサイズは一般に、マクロブロックのサイズが小さいほど大きくなる。フレーム内の分割の唯一のレベルがマクロブロックであるなら、マクロブロックの選択されたサイズ、圧縮表現のデータサイズ、および結果のビデオ画質または再構築誤差の間にはトレードオフが生じることになる。この理由から、高い圧縮率と、各マクロブロックによって表現されるピクセル詳細の複雑さに見合う再構築画質との間のトレードオフをサポートするために、マクロブロックの分割が使用される。
【００４６】
図２に、マクロブロック分割の一例を示す。この例では、レベル４はフルサイズのマクロブロックを表す。他のレベルは、上位のレベルを水平または垂直に分割し続けることによって作成され、レベル０のブロックは、それぞれが、Ｎ×Ｍピクセルの元のマクロブロックからの、Ｎ／４×Ｍ／４ピクセルの近似を与える。この例では分割は４レベルだが、ピクセル数の分数表現が成り立つならば、どのような数のレベルでも使用可能であることに留意されたい。
【００４７】
各マクロブロックの、ビデオ圧縮に使用される実際の分割は、通常、近似されるピクセル詳細の複雑さに基づき、ブロックのどのような組み合わせの圧縮符号化でも、基本のピクセルを表現するために使用することができる。図３は、有効なマクロブロック分割の４つの例を示す。これらの例のそれぞれで、分割されたブロックのそれぞれに対して圧縮符号化が計算され、それらを加え合わせて、マクロブロックの圧縮表現であるマクロブロックコーディング（ＭＢＣ）が作成される。良い圧縮アルゴリズムでは、ピクセル詳細が単純な領域（低頻度の面）には大きなブロックを使用し、複雑なピクセル詳細を表現する領域（高頻度のエッジまたはテクスチャ）には小さなブロックを使用する。
【００４８】
マクロブロックコーディング（ＭＢＣ）は、元のソースピクセルを圧縮した表現を提供し、それには、マクロブロック内のある個数の考え得る区画が寄与する。元のソースピクセルに対するＭＢＣの近似の画質は、ソースピクセルと、復元されたＭＢＣの相当するピクセル近似との間の差異の合計に基づく再構築誤差によって定量化される。
【００４９】
ビデオ圧縮に使用される一般的な再構築誤差の尺度に累積絶対誤差（ＳＡＤ）があり、
【数１】
2018537048.tif 000003
と計算され、ここでＳ（ｉ，ｊ）は、マクロブロック内のオフセットｉ，ｊでのソースピクセル値で、Ａ（ｉ，ｊ）は、ピクセルサイズＮ×ＭのＭＢＣの適用に基づく、オフセットｉ，ｊでの再構築ピクセル値である。
【００５０】
マクロブロック分割を使用するビデオ圧縮には、サブブロックのサイズに基づく圧縮率と再構築画質の間のトレードオフとして、最適の分割方法を決定するという課題がある。各サブブロックによって表現されるソースピクセルを近似するために複数の技法が利用可能なときには、この課題がさらに困難になる。
【００５１】
課題の難しさの度合いは、マクロブロックコーディング順列の候補の個数を考慮するときに認識され得る。図２に示すマクロブロックの分割では、マクロブロックのそれぞれのサブブロックによって表現されるピクセルを近似するために、Ｔ個の別々のブロック符号化技法を使用できる。符号化技法の３つの例として、動き補償、変換符号化、ベクトル量子化があるが、ビデオ圧縮の当業者は、他の多くの技法を容易に思いつくだろう。
・レベル０では、各ブロックにはコード候補がＴ個あり、それぞれが、所与のビットコストに対して異なる再構築誤差を呈する。
・レベル１では、水平または垂直の各ブロックについてＴ個のコード候補から選択できるのに加え、各ブロックを、それぞれがコード候補をＴ個もつ、２つのレベル０ブロックに下位分割することも選択できる。これにより、レベル１の各ブロックについてＴ＋Ｔ２個の符号化順列が得られる。
・レベル２では、レベル２の各ブロックについてT個のコード候補を選択でき、または、レベル２の各ブロックをそれぞれ２つの水平または垂直のレベル１ブロックに下位分割し、それらのレベル１ブロックをさらにレベル０ブロックに下位分割することを選択できる。これにより、レベル２の各ブロックについてＴ＋２Ｔ２＋４Ｔ３＋Ｔ４個の符号化順列が得られる。
【００５２】
この論理に従えば、T個の別々のブロック符号化技術がある場合の、図２に示したフルマクロブロックに対するユニークな符号化順列の総数は、
Ｔ＋２Ｔ２＋４Ｔ（Ｔ＋２Ｔ２＋４Ｔ３＋Ｔ４）＋（Ｔ＋２Ｔ２＋４Ｔ３＋Ｔ４）４
となる。
【００５３】
Ｔ＝４の場合は、ユニークな符号化順列の数は、約９×１０１０個である。本発明の方法において、目的は、これらの９×１０１０個の符号化順列のうち少なくともいくつかを決定し、それらを、調節可能な圧縮因子に従って、そのビデオフレームに対して指定されたデータサイズに達するまで、繰り返し加えることである。
【００５４】
図４は、ビデオフレームの符号化に利用できる繰り返し技法を示すフローチャートである。ステップ４０で、コンプレッサ１６がカメラ１０からビデオフレームを受け取る。ステップ４２で、ビデオフレームが複数のマクロブロックに分割され、ステップ４２では通常、各フレームについて約１０００個のマクロブロックが作成される。ステップ４４で、図２を参照しながら上記で説明したように、各マクロブロックがさらに複数の領域に分割される。図２に示す例では、１つのマクロブロックを分割するとき、作成され得る領域の数は４１で、この数はレベル０から３までのすべての区画にフルマクロブロック（レベル４）を加えることによって決まる。ステップ４６で、この４１個の領域のそれぞれについて、４つの圧縮技法またはアルゴリズムを使用して４つの圧縮符号化が計算される。ステップ４６の出力は、１６４個の圧縮符号化である。
【００５５】
考察したように、これらの１６４個の圧縮符号化は、非常に多くの形に組み合わせることができる。ステップ４８で、コンプレッサ１６が、ある個数の異なる順列について、再構築誤差と共にデータサイズを計算する。次に、これらの順列をフィルタリングおよびソートし、データサイズの増大と再構築誤差の減少に関して高評価のもののみを残しておくことができる。
【００５６】
実際には９×１０１０個の符号化順列をすべて計算してソートすること、および、圧縮されたデータをリアルタイムで送信することは、実現不可能なこともある。したがって、ステップ４８での計算の回数を削減するために、後に考察するように、いくつかの技法が利用されてもよい。
【００５７】
ステップ５０で、コンプレッサ１６が、そのビデオフレームについての初期圧縮符号化を決定する。初期圧縮符号化は各マクロブロックの圧縮符号化を含み、これによりフレーム全体の圧縮表現が決定される。初期圧縮符号化を得るために各マクロブロックについて選択される符号化は、再構築誤差に関わりなく、最も小さいデータサイズのものである。これにより得られる初期圧縮表現は、考え得る最も小さいデータサイズをもつが、復元されたときに元のビデオフレームへの近似の質が低くなることがある。
【００５８】
ステップ５２で、コンプレッサ１６が、初期圧縮符号化に加えるために、ステップ４８で計算された圧縮符号化の１つを、フレーム内のすべてのマクロブロックにわたり選択する。選択される圧縮符号化は、データサイズの単位増加あたりの再構築誤差の相対的な改善が最大になるものである。これにより、小さなデータサイズの圧縮符号化への要求を考量しながら再構築誤差を改善するための効率的な機構が得られることが分かっている。
【００５９】
ビットあたりの相対的改善（ＲＩＰＢ）は、ステップ５２で、
【数２】
2018537048.tif 000004
と計算され、ここで、ｒｎは初期圧縮符号化に加えられる新しい圧縮符号化で更新されたビデオフレームの再構築誤差、ｒｎ−１は前回の繰り返しの圧縮符号化の再構築誤差（最初の繰り返しでは、これは初期圧縮符号化の再構築誤差に相当する）、ｂｎは新しい圧縮符号化が初期圧縮符号化に加えられたときのビットコストまたはデータサイズ、ｂｎ−１は圧縮符号化の前回の繰り返しのビットコストである。
【００６０】
よって、ステップ５２で、ビデオフレームの圧縮表現を更新するために使用される可能性のある複数の可能な符号化について、ＲＩＰＢが計算される。ステップ５２で、１つの圧縮符号化が選択され、これは最も高いＲＩＰＢを呈する圧縮符号化である。
【００６１】
ステップ５４で、ステップ５２で選択された圧縮符号化を加えることにより、初期圧縮符号化が更新される。この更新された圧縮符号化は、データサイズが増大するにつれて再構築誤差が改善される。
【００６２】
ステップ５６で、コンプレッサ１６は、更新された圧縮符号化のサイズが調節可能な圧縮因子に関連するデータバジェットよりも小さいか、分析する。分析の答えが「Ｙｅｓ」であれば、データバジェット内でさらに再構築誤差を減少させることが可能なことがある。したがって、ステップ５２と５４が反復して繰り返される。このようにして、データサイズの単位面積あたりの再構築誤差の相対的改善が最大になる圧縮符号化を１つずつ追加することにより、再構築誤差が徐々に減少し、圧縮符号化のデータサイズが徐々に増大する。この繰り返しが、更新された圧縮符号化のデータサイズがデータバジェットに等しくなるまで続く。別の構成では、更新によって圧縮符号化のサイズがバジェットを超えて増大する場合は、ステップ５４で圧縮符号化は更新されない。この時点でプロセスは終了し、調節可能な圧縮因子によって決定されるデータバジェット以下のデータサイズをもつ、ビデオフレームの圧縮表現が出力となる。次に、ビデオフレームの圧縮表現をマルチプレクサ１８によって他のデータと結合し、可変帯域チャネルを介してサーバ４に送信することができる。
【００６３】
ステップ５２での繰り返しの間に続いて選択される符号化の相互の違いがサブブロックを表現するために使用される圧縮技法のみである場合があることに留意されたい。よって、それぞれのブロック近似技法で、データサイズが大きくなるという犠牲を払えば、再構築誤差をさらに減少させる方法を提供することができる。これにより、再構築誤差は大きいがビットコストが非常に小さい技法を使ってプロセスを開始し、圧縮プロセスの中で、後に、代わりのブロック符号化と置き換えることができる。
【００６４】
考察したように、ステップ４８で、あるビデオフレームについてすべての符号化順列の候補を計算してソーティングすること、さらに、圧縮データをリアルタイム送信することは、実現可能でないことがある。これは、符号化順列の候補のリストをデータサイズの増大と再構築誤差の減少に関して並べ替えられるようにフィルタリング可能であること認識することにより、部分的に達成することができる。よりデータサイズの小さい別の符号化の選択肢と比較して再構築誤差を改善することができないのなら、圧縮符号化の選択肢を計算することに利点はない。
【００６５】
一例では、図２のレベル２区画は、１つのマクロブロック内に４つの領域を含む。これらの４つの領域のそれぞれは、４つの圧縮アルゴリズムを使用して符号化することができる。よって、基本データの可能な符号化は１６個あり、それぞれの領域に対して４個である。各符号化には、それに関連するデータサイズおよび再構築誤差がある。よって、各領域に対する４つの符号化を、データサイズの昇順にランク付けすることができる。次に、データサイズの増大に伴って再構築誤差の減少をもたらすことができない符号化があれば、それを除外することができる。これらの符号化を削除できるのは、それらがステップ５２で余剰な選択内容になるからである。これらの符号化が選択される見込みはなく、それよりも大きなＲＩＰＢをもたらす、代わりの符号化（別の圧縮アルゴリズムにより作られる）が存在するので、これらのコードが最大のＲＩＰＢを呈することはできない。そのような符号化を特定して除外することにより、除外された符号化を含む順列が自動的に排除されるので、順列の総数を激減させることが可能になる。
【００６６】
加えて、圧縮を達成するためには、圧縮表現のデータサイズが元の配列よりも小さくなければならない。よって、符号化順列の集合の濃度に上限を設けることができ、このことは、その符号化順列をさらなる考察の対象から除外することを意味する。
【００６７】
これらの技法を使用することにより、ステップ４８での計算の回数を大幅に減少させることが可能である。考察したように、図２の様式で下位分割された１０００個のマクロブロックについて４つの圧縮アルゴリズムの候補を使用できるとすれば、ステップ４８で計算する符号化順列の数は、およそ９×１０１０となる。この数は、前述した技法を使用して、およそ１０００にまで減少させることができる。よって、すべての可能な圧縮符号化を導出する必要なく、最良の可能な圧縮符号化を導出することが可能である。
【００６８】
これらの技法はさらに、所定のビット数へのビデオフレームの圧縮もまたサポートする。これにより、ビデオフレームのシーケンスを、フレームサイズおよびソースフレームの内容に関わりなく一定したビットレートに圧縮することができる。これにより、低帯域または可変帯域の通信チャネルを介した低遅延のビデオ送信が可能になる。よって、この技法は、特定の帯域制限内で最適の再構築誤差のビデオフレームを送信するために理想的である。
【００６９】
単一のマクロブロックにより表現されるフレームについては、目標のビット数への圧縮は、まず、この順序付けされたＭＢＣの最適集合を決定し、次に、フレームの圧縮の目標よりも多くのビットを送信する必要のあるエントリが抽出されるまで、各ＭＢＣを順次抽出することによって達成される。この例でマクロブロックのピクセルを近似するために使用されるＭＢＣは、順序付けされた集合から最後に抽出される、フレームビットコスト目標以下のビットコストをもつＭＢＣである。複数のマクロブロックによって表現されるフレームについては、すべてのマクロブロックに対するＭＢＣが、ビットあたりの相対的改善およびビットコストの増大によって集合的に順序付けされるように、順序付けされた集合の集合が構築される。目標のビット数へのビデオフレームの圧縮は、順序付けされた集合の集合からＭＢＣを抽出することによって達成され、ここで、個別のＭＢＳ集合から最後に抽出されたエントリのビットコストを記録する。ビットコストの合計は、それぞれのＭＢＣ集合から最後に抽出されたＭＢＣを送信するために必要なビットの数に相当し、よって、ビデオフレームを符号化するコストに相当する。したがって、単一のマクロブロックの例と同様に、圧縮は、順序付けされた集合の集合から次に抽出される最良のＭＢＣのもつフレームビットコストが、目標のフレームビットコストを超えるフレームビットコストになるであろうときに、終了する。
【００７０】
このプロセスは、固定のビット数への最適の符号化を提供するが、ＭＢＣ集合の集合を順序付けするプロセスが、実用の処理ハードウェア上でリアルタイムに計算可能である場合にのみ実現可能である。このプロセスで重要な点は、マクロブロックＭＢＣの個々の集合の順序付けを提供する別の集合を使用することであり、この集合の集合は、最良のＲＩＰＢに基づく各ＭＢＣの抽出に従って再び順序付けされる。これにより、各マクロブロックに対するＭＢＣの順序付けを並列に行うことができるので、複雑さが大幅に減少する。
【図１】
2018537048.tif 000005
【図２】
2018537048.tif 000006
【図３】
2018537048.tif 000007
【図４】
2018537048.tif 000008
【国際調査報告】
2018537048.tif 000009
2018537048.tif 000010
2018537048.tif 000011