(57)【要約】データのコード化する方法は、１つのデータ配列の異なる部分にて各々の変換が計算された複数の変換に基づいて第１の係数セットを算出するステップと、そのデータ配列で計算された変換に基づいて第２の係数セットを算出するステップと、第１の係数セットおよび第２の係数セットを含む係数セットのグループから、データ配列を表す１つの係数セットを選択するステップと、選択された係数および選択された係数に関連する１つ以上のパラメータをコード化するステップと、を含む。【選択図】図２
2012527168.tif 000002
【特許請求の範囲】
【請求項１】
データをコード化する方法であって、前記方法は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第１の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第２の係数セットを算出するステップと、
前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループから、前記データ配列を表す１つの係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する１つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項２】
前記データ配列の異なる部分で各々が計算された前記複数の変換が、複数の１次元変換を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の係数セットを算出するステップが、前記データ配列を複数の１次元配列に分割するステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記複数の１次元配列がオーバーラップしていないことを特徴とする請求項３に記載の方法。
【請求項５】
前記複数の１次元配列のうち１つ以上がオーバーラップしていることを特徴とする請求項３に記載の方法。
【請求項６】
前記第１の係数セットが、前記複数の１次元配列のうち異なる１次元配列にて各々が計算された、前記複数の１次元変換から得られる係数を含むことを特徴とする請求項３に記載の方法。
【請求項７】
前記複数の係数セットのグループが、前記第１の係数セット、前記第２の係数セット、および１つ以上の追加の係数セットを含むことを特徴とする請求項３に記載の方法。
【請求項８】
前記１つ以上の追加の係数セットが、前記データ配列の異なる部分で各々が算出された複数の変換に基づいて算出されることを特徴とする請求項７に記載の方法。
【請求項９】
前記追加の係数セットのうち所定の１つを算出するステップが、前記データ配列の大部分をカバーする複数の１次元配列に前記データ配列を分割するステップと、前記複数の１次元配列の各々で１次元変換を計算するステップと、を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために、異なるパターンの１次元配列を用いることを特徴とする請求項９に記載の方法。
【請求項１１】
前記異なるパターンが、前記１次元配列の異なる方向に対応していることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記追加の係数セットの少なくとも１つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項７に記載の方法。
【請求項１３】
前記１つ以上のパラメータを用いて、前記第１の係数セット内の係数リストを順序づけるのに使用される複数の走査パターンのうちの１つを識別することを特徴とする請求項７に記載の方法。
【請求項１４】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第１の係数セットとして選択されるのかに依存することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記係数セットの候補のいずれが、最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第１の係数セットを選択することを特徴とする請求項７に記載の方法。
【請求項１６】
前記１つ以上のパラメータを用いて、前記選択された第１の係数セットまたは第２の係数セットを生成するために使用される少なくとも１つの変換を識別することを特徴とする請求項２に記載の方法。
【請求項１７】
前記１つ以上のパラメータを用いて、前記第１の係数セットが選択される場合に前記複数の変換が計算された１次元配列の所定のパターンを識別することを特徴とする請求項１６に記載の方法。
【請求項１８】
前記データ配列にて計算される前記変換が２次元変換を含むことを特徴とする請求項２に記載の方法。
【請求項１９】
前記１つ以上のパラメータを用いて、前記第２の係数セットが選択される場合に、前記第２の係数セットを計算するのに用いられる複数の２次元変換のうちの１つを識別することを特徴とする請求項１８に記載の方法。
【請求項２０】
前記２次元変換が、２次元離散コサイン変換を含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記２次元変換が、２次元離散ウェーブレット変換を含むことを特徴とする請求項１８に記載の方法。
【請求項２２】
前記複数の１次元変換のうち少なくとも１つが、離散コサイン変換を含むことを特徴とする請求項２に記載の方法。
【請求項２３】
前記複数の１次元変換のうち少なくとも１つが、離散ウェーブレット変換を含むことを特徴とする請求項２に記載の方法。
【請求項２４】
いずれの係数セットが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための１つの係数セットが選択されることを特徴とする請求項１に記載の方法。
【請求項２５】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループから少なくとも１つの変換に基づいて算出されることを特徴とする請求項１に記載の方法。
【請求項２６】
前記複数の変換のグループが、前記第１の係数セットの算出が基づく前記複数の変換と、前記第２の係数セットの算出が基づく前記変換と、を含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第１の係数セットおよび前記第２の係数セットを算出する前に、前記複数の変換のグループから１つ以上の変換を除去するステップをさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記選択した係数をコード化するステップが、少なくとも１つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項１に記載の方法。
【請求項２９】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項１に記載の方法。
【請求項３０】
前記データ配列が、前記ビデオフレームのブロック画素に対応していることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記データ配列が、２つのビデオフレームから計算される残差に関連していることを特徴とする請求項２９に記載の方法。
【請求項３２】
前記残差が、前記２つのビデオフレーム間の動き補償に基づくことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記残差が、前記２つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項３１に記載の方法。
【請求項３４】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することによって前記残差が得られることを特徴とする請求項３１に記載の方法。
【請求項３５】
ビデオ残差のブロックをコード化する方法であって、前記方法は、
ブロックの異なる部分で各々が計算された複数の１次元変換に基づいて第１の係数セットを算出するステップと、前記ブロックで計算された２次元変換に基づいて第２の係数セットを算出するステップと、
前記第１の係数および前記第２の係数を含む複数の係数セットのグループから前記ブロックを表す係数セットを選択するステップと、
前記選択された係数および前記選択された係数に関連する１つ以上のパラメータをコード化するステップと、
を含むことを特徴とする方法。
【請求項３６】
データをコード化するためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記コンピュータプログラムはコンピュータシステムに、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第１の係数セットを算出させるとともに、前記データ配列で計算された変換に基づいて第２の係数セットを算出させ、
前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループから前記データ配列を表す係数セットを選択させ、
前記選択された係数および前記選択された係数に関連する１つ以上のパラメータをコード化させるための命令を含む、
ことを特徴とするコンピュータ可読メディア。
【請求項３７】
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第１の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第２の係数セットを算出するステップと、前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループからデータ配列を表す１つの係数セットを選択するステップと、を含む方法を用いてコード化されたデータをデコードする方法であって、前記デコード方法は、
コード化された係数および前記コード化された係数に関連する１つ以上のパラメータを受信するステップと、
前記データ配列を生成するために、前記コード化された係数で逆変換を計算するステップと、
を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも１つによって示される変換に基づく
ことを特徴とするデータをデコードする方法。
【請求項３８】
前記データ配列の異なる部分にて各々が計算された前記複数の変換が、複数の１次元変換を含むことを特徴とする請求項３７に記載の方法。
【請求項３９】
前記第１の係数セットを算出するステップが、前記データ配列を複数の１次元配列に分割するステップを含むことを特徴とする請求項３８に記載の方法。
【請求項４０】
前記複数の１次元配列がオーバーラップしていないことを特徴とする請求項３９に記載の方法。
【請求項４１】
前記複数の１次元配列の１つ以上がオーバーラップしていることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記第１の係数セットが、前記複数の１次元配列の異なる配列にて各々の変換が計算された、前記複数の１次元変換から生じる係数を含むことを特徴とする請求項３９に記載の方法。
【請求項４３】
前記複数の係数セットのグループが、前記第１の係数セット、前記第２の係数セット、および１つ以上の追加の係数セットを含むことを特徴とする請求項３９に記載の方法。
【請求項４４】
前記追加の係数セットの１つ以上の各々が、前記データ配列の異なる部分にて各々が計算された複数の変換に基づいて算出されることを特徴とする請求項４３に記載の方法。
【請求項４５】
前記追加の係数セットのうち所定の１つを算出するステップが、前記データ配列を前記データ配列の大部分をカバーする複数の１次元配列に分割するステップと、前記複数の１次元配列の各々で１次元変換を計算するステップと、を含むことを特徴とする請求項４４に記載の方法。
【請求項４６】
前記追加の係数セットの異なる係数セットが、前記データ配列の大部分をカバーするために異なるパターンの１次元配列を用いることを特徴とする請求項４５に記載の方法。
【請求項４７】
前記異なるパターンが、前記１次元配列の異なる方向に対応していることを特徴とする請求項４６に記載の方法。
【請求項４８】
前記追加の係数セットの少なくとも１つが、前記データ配列で計算された変換に基づいて算出されることを特徴とする請求項４３に記載の方法。
【請求項４９】
前記１つ以上のパラメータが、前記第１の係数セット内の係数リストを順序づけるのに用いられる、複数の走査パターンの１つを識別することを特徴とする請求項４３に記載の方法。
【請求項５０】
前記識別された走査パターンは、前記係数セットの候補のいずれが、前記第１の係数セットとして選択されるのかに依存することを特徴とする請求項４９に記載の方法。
【請求項５１】
前記係数セットの候補のいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、前記複数の係数セットの候補から前記第１の係数セットを選択することを特徴とする請求項４３に記載の方法。
【請求項５２】
前記１つ以上のパラメータを用いて、前記選択された第１の係数セットもしくは第２の係数セットを生成するために使用される少なくとも１つの変換を識別することを特徴とする請求項３８に記載の方法。
【請求項５３】
前記１つ以上のパラメータが、前記第１の係数セットが選択される場合に、前記複数の変換が計算された１次元配列の所定のパターンを識別することを特徴とする請求項５２に記載の方法。
【請求項５４】
前記データ配列にて計算される前記変換が２次元変換を含むことを特徴とする請求項２に記載の方法。
【請求項５５】
前記１つ以上のパラメータが、前記第２の係数セットが選択される場合に、前記第２の係数セットを算出するのに用いられる複数の２次元変換の１つを識別することを特徴とする請求項５４に記載の方法。
【請求項５６】
前記２次元変換が、２次元離散コサイン変換を含むことを特徴とする請求項５４に記載の方法。
【請求項５７】
前記２次元変換が、２次元離散ウェーブレット変換を含むことを特徴とする請求項５４に記載の方法。
【請求項５８】
前記複数の１次元変換のうちの少なくとも１つが、離散コサイン変換を含むことを特徴とする請求項３８に記載の方法。
【請求項５９】
前記複数の１次元変換のうちの少なくとも１つが、離散ウェーブレット変換を含むことを特徴とする請求項３８に記載の方法。
【請求項６０】
係数セットのいずれが最大圧縮を有する前記データ配列を表すのかに基づいて、複数の係数セットの前記グループから、前記データ配列を表すための１つの係数セットを選択することを特徴とする請求項３７に記載の方法。
【請求項６１】
複数の係数セットの前記グループ内の各々の係数セットが、複数の変換のグループからの少なくとも１つの変換に基づいて算出されることを特徴とする請求項３７に記載の方法。
【請求項６２】
前記複数の変換のグループが、前記第１の係数セットの算出が基づく前記複数の変換、および前記第２の係数セットの算出が基づく前記変換を含むことを特徴とする請求項６１に記載の方法。
【請求項６３】
前記データ配列の推定される特徴に基づいて複数の係数セットの複数のグループのいずれかを算出することを考慮して、前記第１の係数セットおよび前記第２の係数セットを算出する前に、前記複数の変換のグループから１つ以上の変換を除去するステップをさらに含むことを特徴とする請求項６２に記載の方法。
【請求項６４】
前記選択した係数をコード化するステップが、少なくとも１つの係数を所定の閾値に基づいて破棄するステップを含むことを特徴とする請求項３７に記載の方法。
【請求項６５】
前記データ配列が、ビデオフレームに関連していることを特徴とする請求項３７に記載の方法。
【請求項６６】
前記データ配列が、前記ビデオフレームの画素ブロックに対応していることを特徴とする請求項６５に記載の方法。
【請求項６７】
前記データ配列が、２つのビデオフレームから計算された残差に関連していることを特徴とする請求項６５に記載の方法。
【請求項６８】
前記残差が、２つのビデオフレーム間の動き補償に基づくことを特徴とする請求項６７に記載の方法。
【請求項６９】
前記残差が、２つのビデオフレーム間の解像度向上に基づくことを特徴とする請求項６７に記載の方法。
【請求項７０】
前記フレームの一方の画素値を、前記フレームの他方の対応する画素値から減算することで前記残差が得られることを特徴とする請求項６７に記載の方法。
【請求項７１】
データをデコードする方法であって、前記方法は、
少なくとも１つの１次元変換および少なくとも１つの２次元変換を含む、複数の変換のグループを識別している情報を格納するステップと、
コード化された係数および前記コード化された係数に関連する１つ以上のパラメータを受信するステップと、
データ配列を生成するために、前記パラメータの少なくとも１つによって示される前記複数の変換のグループからの変換に基づいて逆変換を計算するステップと、
を含むことを特徴とする方法。
【請求項７２】
受信した複数のコード化された係数セットの各々および前記コード化された係数セットに関連するパラメータのそれぞれに対して逆変換を計算し、
前記複数の変換のグループから１つの１次元変換を示している、コード化された第１の係数セットに関連する前記パラメータの少なくとも１つに応じて、前記コード化された第１の係数の複数のサブセットの各々にて前記示された１次元逆変換の逆変換を計算し、各々の１次元変換の逆変換がデータ配列の異なる部分を生成し、
前記複数の変換のグループから１つの２次元変換を示している、コード化された第２の係数セットに関連する前記パラメータの少なくとも１つに応じて、データ配列を生成するために、前記コード化された第２の係数にて前記示された２次元変換の逆変換を計算する、
ことを特徴とする請求項７１に記載の方法。
【請求項７３】
前記データ配列の大部分をカバーする、１次元配列の複数パターンのグループを識別する情報を格納するステップをさらに含むことを特徴とする請求項７１に記載の方法。
【請求項７４】
前記複数の変換のグループから１次元変換を示している、前記コード化された係数に関連する前記パラメータの少なくとも１つ、および前記複数パターンのグループから１つのパターンを示している、前記コード化された係数に関連する前記パラメータの少なくとも１つに応じて、前記コード化された係数の複数のサブセットの各々にて、前記示された１次元変換の逆変換を計算するステップをさらに含み、
各々の１次元逆変換が、前記示されたパターンの異なる１次元配列を生成する、
ことを特徴とする請求項７３に記載の方法。
【請求項７５】
コード化されたデータをデコードするためのコンピュータプログラムを格納するコンピュータ可読メディアであって、前記データのコード化は、
データ配列の異なる部分にて各々が計算された複数の変換に基づいて第１の係数セットを算出するステップと、前記データ配列で計算された変換に基づいて第２の係数セットを算出するステップと、前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループから前記データ配列を表す１つの係数セットを選択するステップと、を含む方法を用いて行われ、
前記コンピュータプログラムはコンピュータシステムに、
コード化された係数および前記コード化された係数に関連する１つ以上のパラメータを受信させ、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出させるための命令を含み、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも１つによって示される変換に基づく、
ことを特徴とするコンピュータ可読メディア。
【請求項７６】
トランスミッタと１つ以上のレシーバとを備えるシステムであって、
前記トランスミッタは、
データ配列の異なる部分にて各々が計算された複数の変換に基づく第１の係数セットおよび前記データ配列で計算された変換に基づく第２の係数セットを算出し、
前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループから、前記データ配列を表す１つの係数セットを選択し、
前記選択された係数および前記選択された係数に関連する１つ以上のパラメータをコード化するように構成され、
前記１つ以上のレシーバの各々は、
コード化された係数および前記コード化された係数に関連する１つ以上のパラメータを前記トランスミッタから受信し、
前記データ配列を生成するために前記コード化された係数にて逆変換を算出するように構成され、
前記逆変換は、前記コード化された係数に関連する前記パラメータの少なくとも１つよって示される変換に基づく、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視覚データを圧縮するための変換の選択に関するものである。
【背景技術】
【０００２】
イメージおよびビデオのような未加工の視覚データは、概して、それらを表示する際に多くのビット数を必要とするため、視覚データを圧縮することは重要である。視覚データを圧縮することにより、視覚データの格納および伝送をより少ないビット数で実現することができる。視覚データの圧縮は、視覚メディアの時間的および／または空間的冗長性を利用することにより達成される。視覚データの圧縮は、他の圧縮またはコード化されたイメージまたはビデオフレームに基づいて、イメージまたはビデオフレームを予測することを含んでもよい。予測されたフレームと実際のフレームとの差異は、予測残差として公知である。１つの圧縮方法として、予測残差または予測残差の変換は、実際のフレームに代わって格納または伝送されることが多い。
【発明の概要】
【課題を解決するための手段】
【０００３】
一形態において、概して、データをコード化する方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づいて第１の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第２の係数セットを算出するステップと、前記データ配列を表す係数セットを、前記第１の係数セットおよび前記第２の係数セットを含む複数の係数セットのグループから選択するステップと、前記選択された係数および前記選択された係数に関連する１つ以上のパラメータをコード化するステップと、を含む。
【０００４】
実施形態は、後述する特徴の１つ以上を含むことができる。
【０００５】
データ配列の異なる部分にて各々が計算された複数の変換は、複数の１次元変換を含む。
【０００６】
第１の係数セットを算出するステップは、データ配列を複数の１次元配列に分割するステップを含む。
【０００７】
複数の１次元配列はオーバーラップしていない。
【０００８】
複数の１次元配列の１つ以上はオーバーラップしている。
【０００９】
第１の係数セットは、複数の１次元配列の異なる配列にて計算された複数の１次元変換から得られる係数を含む。
【００１０】
係数セットのグループは、第１の係数セット、第２の係数セット、および１つ以上の追加の係数セットを含む。
【００１１】
１つ以上の追加の係数セットの各々は、データ配列の異なる部分にて計算された複数の変換に基づいて算出される。
【００１２】
追加の係数セットの所定の１つを算出するステップは、大部分のデータ配列をカバーする複数の１次元配列にデータ配列を分割するステップと、複数の１次元配列の各々で１次元変換を計算するステップと、を含む。
【００１３】
異なる追加の係数セットは、１次元配列の異なるパターンを用いて大部分のデータ配列をカバーする。
【００１４】
異なるパターンは、１次元配列に対する異なる方向に対応する。
【００１５】
追加の係数セットのうちの少なくとも１つは、データ配列で計算された変換に基づいて算出される。
【００１６】
１つ以上のパラメータは、第１の係数セット内の係数リストを順序づけるのに用いられる複数の走査パターンの１つを識別する。
【００１７】
識別された走査パターンは、係数セット候補のいずれが第１の係数セットとして選択されるのかに依存する。
【００１８】
係数セット候補のいずれが最大圧縮を有するデータ配列を表すのかに基づいて、複数の係数セット候補の中から第１の係数セットが選択される。
【００１９】
１つ以上のパラメータは、選択された第１または第２の係数セットの生成に用いられる少なくとも１つの変換を識別する。
【００２０】
１つ以上のパラメータは、第１の係数セットが選択される場合、複数の変換が計算される１次元配列の所定のパターンを識別する。
【００２１】
データ配列で計算される変換は、２次元変換を含む。
【００２２】
１つ以上のパラメータは、第２の係数セットが選択される場合、第２の係数セットの算出に用いられる複数の２次元変換の１つを識別する。
【００２３】
２次元変換は、２次元離散コサイン変換を含む。
【００２４】
２次元変換は、２次元離散ウェーブレット変換を含む。
【００２５】
複数の１次元変換のうちの少なくとも１つは、離散コサイン変換を含む。
【００２６】
複数の１次元変換のうちの少なくとも１つは、離散ウェーブレット変換を含む。
【００２７】
係数セットのいずれが最大圧縮を有するデータ配列を表すのかに基づいて、データ配列を表すために係数セットのグループから１つの係数セットが選択される。
【００２８】
複数の係数セットグループ内の各々の係数セットは、複数の変換のグループから少なくとも１つの変換に基づいて計算される。
【００２９】
多数の変換のグループは、第１の係数セットの算出が基づく複数の変換と、第２の係数セットの算出計算が基づく変換と、を含む。
【００３０】
本発明の方法は、データ配列の推定される特徴に基づいて複数の係数セットのグループのいずれかを算出することを考慮して、第１の係数セットおよび第２の係数セットを算出する前に、１つ以上の変換を変換グループから除去するステップをさらに含む。
【００３１】
選択した係数をコード化するステップは、所定の閾値に基づいて少なくとも１つの係数を破棄するステップを含む。
【００３２】
データ配列は、ビデオフレームに関連している。
【００３３】
データ配列は、ビデオフレームの画素ブロックに対応する。
【００３４】
データ配列は、２つのビデオフレームから計算される残差に関連している。
【００３５】
残差は、２つのビデオフレーム間の動き補償に基づく。
【００３６】
残差は、２つのビデオフレーム間の解像度向上に基づく。
【００３７】
残差は、１つのフレームの画素値を、他のフレームの対応する画素値から減算することによって得られる。
【００３８】
他の形態において、概して、ビデオ残差のブロックをコード化する方法は、ブロックの異なる部分にて各々の変換が計算された複数の１次元変換に基づいて第１の係数セットを算出するステップと、そのブロックで計算された２次元変換に基づいて第２の係数セットを算出するステップと、そのブロックを表す係数セットを、第１の係数セットおよび第２の係数セットを含む係数セットのグループから選択するステップと、選択された係数および選択された係数に関連する１つ以上のパラメータをコード化するステップと、を含む。
【００３９】
他の形態において、概して、コンピュータ可読メディアは、データをコード化するためのコンピュータプログラムを格納している。コンピュータプログラムは、コンピュータシステムに、データ配列の異なる部分にて計算された複数の変換に基づいて第１の係数セットを算出させ、そのデータ配列で計算された変換に基づいて第２の係数セットを算出させ、そのデータ配列を表す係数セットを、第１の係数セットおよび第２の係数セットを含む係数セットのグループから選択させ、選択された係数および選択された係数に関連する１つ以上のパラメータをコード化させるための命令を含む。
【００４０】
他の形態において、概して、本発明の方法は、データ配列の異なる部分にて各々が計算された複数の変換に基づく第１の係数セットを算出するステップと、そのデータ配列で計算された変換に基づく第２の係数セットを算出するステップと、データ配列を代表する複数の係数セットの１つを、第１の係数セットおよび第２の係数セットを含む係数セットのグループから選択するステップと、を含む方法を用いてコード化されたデータを、デコードするために用いられる。データをデコードする方法は、コード化された係数およびコード化された係数に関連する１つ以上のパラメータを受信するステップと、データ配列を生成するために、コード化された係数で逆変換を計算するステップと、を含み、逆変換は、コード化された係数と関連するパラメータの、少なくとも１つによって示される変換に基づいている。
【００４１】
他の形態において、概して、データをデコードする方法は、少なくとも１つの１次元変換および少なくとも１つの２次元変換を含む複数の変換グループを識別する情報を記憶するステップと、コード化された係数、およびコード化された係数に関連する１つ以上のパラメータを受信するステップと、データ配列を生成するために、パラメータの少なくとも１つによって示されたグループから得られる変換に基づいて、逆変換を計算するステップと、を含む。
【００４２】
いくつかの形態は、後述する特徴のうち１つ以上を含むことができる。
【００４３】
逆変換は、受信した複数のコード化された係数セットの各々、およびコード化された係数セットに関連するパラメータのそれぞれに対して計算され、複数の変換グループ内から１つの１次元変換を示している、コード化された第１の係数セットに関連するパラメータの少なくとも１つに応答して、コード化された第１の係数の複数のサブセットの各々にて、示された１次元変換の逆変換を計算し、各々の１次元変換の逆変換はデータ配列の異なる部分を生成し、複数の変換グループ内から２次元変換を示しているコード化された第２の係数セットに関連するパラメータの少なくとも１つに応答して、コード化された第２の係数セットにて、示された２次元変換の逆変換を計算し、データ配列を生成する。
【００４４】
その方法は、データの大部分の配列をカバーしている、１次元配列の複数パターンのグループを識別する情報を格納するステップも含む。
【００４５】
その方法は、複数の変換グループから１次元変換を示しているコード化された係数に関連するパラメータの少なくとも１つ、および複数のパターングループからあるパターンを示しているコード化された係数に関連するパラメータの少なくとも１つに応答して、コード化された係数の複数のサブセットの各々にて、示された１次元変換の逆変換を計算し、各々の１次元逆変換は示されたパターンの異なる１次元配列を生成している。
【００４６】
他の形態において、概して、コンピュータ可読メディアは、データ配列の異なる部分にて計算された複数の変換に基づいて第１の係数セットを算出するステップと、前記データ配列上で計算された変換に基づいて第２の係数セットを算出するステップと、第１の係数セットおよび第２の係数セットを含む複数の係数セットのグループから、データ配列を表す係数セットを選択するステップと、を含む方法を用いてコード化されたデータを、デコードするためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピュータシステムに、コード化された係数およびコード化された係数に関連する１つ以上のパラメータを受信させ、データ配列を生成するために、コード化された係数に関連するパラメータのうち１つ以上によって示される変換に基づくコード化された係数上の逆変換を計算させるための命令を含む。
【００４７】
他の形態において、概して、システムは、データ配列の異なる部分にて各々が計算された複数の係数に基づく第１の係数セット、およびそのデータ配列で計算された変換に基づく第２の係数セットを計算し、第１の係数セットおよび第２の係数セットを含む複数の係数セットのグループからデータ配列を表す１つの係数セットを選択し、選択した係数および選択した係数に関連する１つ以上のパラメータをコード化するように構成されたトランスミッタを含む。そのシステムは、１つ以上のレシーバを含み、各々のレシーバは、コード化された係数およびコード化された係数に関連する１つ以上のパラメータをトランスミッタから受信し、データ配列を生成するためにコード化された係数上で逆変換を計算するように構成され、逆変換は、コード化された係数に関連するパラメータのうち１つ以上によって示される変換に基づく。
【００４８】
以下、本発明の多くの効果（その幾つかは、種々の実施形態のみにおいて達成できる）を説明する。
【００４９】
視覚データの配列（例えばブロック）を表すための変換係数は、いずれの変換もしくは変換セットが、そのブロックにおいて最も効果的な圧縮をもたらすかに基づいて選択することができる。視覚データの局所的な異方特性は、視覚データをより効果的に圧縮する変換の１つをもたらすことができる。たとえば、ビデオフレームの予測残差の場合、なめらかでゆっくり動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。さらに、オブジェクトの形状はフレーム間で僅かに変化する傾向にありうるので、オブジェクトの境界周辺の予測はより多くのエラーを有しうる。そのような場合においては、１つの所定の変換を計算する代わりに、同一のデータ配列上で計算されるいくつかの変換の中から、適切な変換を選択することができる。
【００５０】
ブロック上の少なくとも１つの２次元変換と、そのブロック上の１つ以上の１次元変換セットと、の両方を、所定のブロック上で計算されるべき変換の候補として含むことにより、残差内のいくつかのブロックまたは他のフレーム、もしくはイメージが、他の変換に比べて１つの変換により良く適するため、圧縮効率を増加させることができる。
【００５１】
指向的な１次元変換のために、データまたはアプリケーションのタイプに従っていくつかの方向を定めることができる。
【００５２】
所定のデータ配列に最適な変換を選択するためのコスト関数は、データおよびアプリケーションのタイプに基づいて決定し、適用することができる。この選択方法によって、全てのケースに対して１つの所定の変換を用いるよりも、複数の利用可能な変換の中から適切な変換を選択するという、効率的かつ場合によってはユーザ定義の選択方法が可能になる。
【００５３】
ビットレートの削減は、圧縮された視覚データを送信するもしくは格納する際に達成される。この種の削減は、ビデオおよびイメージの通信システムにおけるバンド幅および／またはメモリの効率的な利用を結果としてもたらす。
【００５４】
本発明の他の特徴および効果は、後述の説明および請求項から明らかとなる。
【図面の簡単な説明】
【００５５】
【図１】ビデオ通信システムの一例を示す図である。
【図２】ソースコードシステムの一例のブロック図である。
【図３】符号化ビデオフレームに使用されるソースコードシステムの一例のブロック図である。
【図４】動き補償において予測残差フレームを取得する一例を示す図である。
【図５】解像度向上において予測残差フレームを取得する一例を示す図である。
【図６】データ圧縮および伝送システムにおける動作の特定の順序を表すフローチャートである。
【図７】本願明細書に記載されている一例に関する散布点を示す図である。
【図８】データ配列で計算される、複数の１次元変換の一例を示す図である。
【図９】データ配列のための走査パターン例を示す図である。
【図１０】ウェーブレット変換システムの一例のブロック図である。
【図１１】垂直方向および水平方向のそれぞれに沿った方向予測を基準に用いる、ウェーブレット変換例を示す図である。
【図１２】離散ウェーブレット変換を用いた実験結果に関するプロットを示す図である。
【図１３】離散コサイン変換を用いた実験結果に関するプロットを示す図である。
【発明を実施するための形態】
【００５６】
本発明に見込まれる実施形態は、その全てを本願明細書に記載するにはあまりに数が多過ぎる。以下、目下のところ望ましい、本発明に見込まれる実施形態のいくつかについて説明する。いくら強調しても強調しすぎることはないが、これらが本発明自体の記述ではなく本発明の実施形態の記述であって、よって本発明は本願明細書に記述された実施形態に限定されることはなく、請求項にてより広義の用語を用いて記述されるものとする。
【００５７】
図１は、ネットワーク上のデータを通信するためのシステム１００の一例を示している。概して、システム１００は、ネットワーク１０４を通じて接続される１つ以上のノード１０２ａ〜１０２ｆ（総じて１０２）を含む。ノード１０２は、ネットワーク１０４内の他のノードからの情報を、送信および／または受信することができる。いくつかの実施形態において、その情報とはイメージまたはビデオなどの視覚データを含む。ビデオまたはイメージは、１つ以上のソース１０１（例えばウェブカメラ１０１ａ、ビデオもしくはスチルカメラ１０１ｃ、監視カメラ１０１ｄ、または、例えば電話もしくはパーソナルデジタルアシスタント（ＰＤＡ）などの無線携帯装置１０１ｅ）からもたらされることができる。いくつかの実施形態において、情報ソースは、サーバ１０１ｂまたは他の任意のコンピュータデバイスに電子的に格納されているファイルであってもよい。いくつかの実施形態において、情報ソースは、視覚データまたは他の形式のデータを遠隔地に送信することができる医療装置１０１ｆであってもよい。情報ソース１０１は、ビデオやイメージのような視覚情報を検出すること、引き出すこと、取り込むこと、格納すること、または記録することができる、たとえば任意のセンサ、検出器、レコーダ、またはアナライザも含むことができる。いくつかの実施形態において、情報ソース１０１は、上記のソースを含む複数のソースを結合することができるが、これらに限定されるものではない。情報ソース１０１は、任意の施設、場所または車両に存在することができる。たとえば、情報ソース１０１は、建物またはキャンパスにおいて配備される防犯カメラであってもよい。他の実施形態において、情報ソースはユーザによって持ち歩かれることができる。いくつかの実施形態において、情報ソース１０１は、衛星上の撮像装置または検出装置であってもよい。他の実施形態では、情報ソース１０１は、車両（例えば飛行機、船または他の有人もしくは無人車両）に配備されることができる。情報ソース１０１は、ネットワーク１０４に接続されているノード１０２と通信することができる。いくつかの実施形態において、情報ソース１０１は、ノード１０２の一部であってもよい。他の実施形態では、情報ソース１０１は、１つ以上のネットワークおよび／または１つ以上の介在装置を経て、ノード１０２と通信することができる。任意のハードウェアまたはソフトウェアを用いて、情報ソース１０１とノード１０２との間の通信を容易にすることができる。
【００５８】
ノード１０２は、イメージおよび／またはビデオを、受信および表示、またはレンダリングすることができるデバイスを含むことができる。たとえば、ノードは、テレビまたはディスプレイデバイス１０２ｃであってもよい。ノードは、デスクトップまたはラップトップコンピュータ１０２ｄであってもよい。ノードは、無線装置１０２ｅ（例えば、イメージおよびビデオを受信、格納、もしくは表示することができるＰＤＡまたは携帯電話）であってもよい。いくつかの実施形態において、ノードは、記憶装置（例えば情報を格納することができるサーバ１０２ｆまたはメモリ）であってもよい。かかるサーバまたはメモリは、視覚情報を読み出して表示することができるデバイスに、任意に接続することができる。
【００５９】
いくつかの実施態様において、ノード１０２ａ（図１のノード１）は、トランスミッタ１０３を含む。トランスミッタ１０３は、情報ソース１０１からのデータをコード化して、そのコード化されたデータをネットワーク１０４上へ送信するように構成されることができる。いくつかの実施形態において、トランスミッタ１０３は、ソースコーディング１０５ａおよびチャネルコーディング１１０ａ用のコンポーネントを含むことができる。トランスミッタ１０３は、モジュレータ１１５ａも含むこともできる。トランスミッタは、ソース１０１からのデータをソースコーディングに適したフォーマットに変えるための１つ以上のコンポーネントまたはデバイスを含むこともできる。
【００６０】
ソースコーディング１０５ａは、データ圧縮技術とも称されてよい。ソースコーディングは、所定のイメージ、ビデオまたは他方式の情報の表示に必要なビット数を減らすように設計される、符号化方式を含むことができる。ソースコーディング１０５ａは、例えば、レンペル・ジフ圧縮（Lempel Ziv compression）や算術符号化等の可逆圧縮技術、または不可逆圧縮技術を含むことができる。いくつかの実施形態において、不可逆圧縮は、情報の送信に必要なバンド幅を減少させるため、特にネットワーク上の送信を伴う際に好ましい。ソースコーディング１０５ａに用いられる不可逆圧縮技術の例としては、数学的変換（例えば、離散コサイン変換（ＤＣＴ）、離散サイン変換（ＤＳＴ）、離散ウェーブレット変換（ＤＷＴ）、フラクタル圧縮、および離散フーリエ変換（ＤＦＴ））を伴う変換符号化が挙げられる。いくつかの実施形態において、ソースコーディングは１つ以上の標準規格に従うことができる。かかる標準規格は、ビデオ標準（例えばＭＰＥＧ‐２、ＭＰＥＧ‐４、Ｈ.２６３、およびＨ.２６４）を含むことができる。かかる標準規格は、画像圧縮標準（例えばＪＰＥＧ）も含むことができる。いくつかの実施形態において、不可逆圧縮方式は、イメージまたはビデオフレームが数学的にモデル化され、そのモデルのパラメータがコード化されるモデルコーディングも含むことができる。
【００６１】
チャネルコーディング１１０ａは、チャネル全体に送信される情報の冗長ビットの追加に関連する。チャネルコーディングは、レシーバ側でエラー検出および／またはエラー訂正を容易にすること、および伝送の信頼性を向上させることができる。チャネルコードは、エラー訂正コードとも称することができる。チャネルコーディング１１０ａは、コード（例えばブロックコード、畳み込みコード、ターボコードおよび低密度パリティチェック（ＬＤＰＣ）コード）の利用を含むことができる。
【００６２】
トランスミッタは、モジュレータ１１５ａを含むことができる。モジュレータ１１５ａは、デジタルビットの流れに従って、アナログキャリアを変調することができる。モジュレータは、たとえば、位相シフトキーイング（ＰＳＫ）、周波数シフトキーイング（ＦＳＫ）、振幅シフトキーイング（ＡＳＫ）、直交振幅変調（ＱＡＭ）、パルス位置変調（ＰＰＭ）、オンオフキーイング（ＯＯＫ）、最小シフトキーイング（ＭＳＫ）、連続位相変調（ＣＰＭ）、トレリス符号化変調（ＴＣＭ）、および直交周波数分割多重（ＯＦＤＭ）を含む、任意のデジタル変調技術を使用することができる。
【００６３】
いくつかの実施形態において、ノード１０２ｂ（図１のノード２）は、ネットワーク上の別のノード１０２から情報を受信するように構成されたレシーバ１０６を含む。図１では、トランスミッタ１０３およびレシーバ１０６が異なるノード上にあるが、任意のノード１０２は１つ以上のトランスミッタおよび／または１つ以上のレシーバを備えることができると認められなければならない。また、トランスミッタ１０３および／またはレシーバ１０６は、任意のノード１０２の一部であってもよい。レシーバ１０６はデモジュレータ１１５ｂ、チャネルデコーダ１１０ｂ、およびソースデコーダ１０５ｂのうちの１つ以上を含むことができる。デモジュレータ１１５ｂは、典型的に、受信された変調済みのアナログ信号からデジタルビットを回復させるために、モジュレータ１１５ａの演算に対して逆演算を行う。同様に、チャネルデコーダ１１０ｂおよびソースデコーダ１０５ｂは、典型的に、チャネルコーダ１１０ａおよびソースコーダ１０５ａそれぞれの演算に対して逆演算を行う。いくつかの実施形態において、レシーバ１０６は、受信されたビデオまたはイメージデータをレンダリングするためのディスプレイに接続することができる。任意のソフトウェアおよび追加のハードウェアを用いて、かかるレンダリングを行うことができる。レシーバ１０６は、受信されたデジタルデータを格納するために、記憶媒体に接続することができる。
【００６４】
ノード１０２は、ネットワーク１０４経由で接続されてもよい。図１では、１つのネットワーク１０４のみがノードに接続しているが、各々が相互に接続された複数のかかるネットワークがあってもよい。その複数のネットワークは、同一の種類または異なる種類のネットワークとすることができる。ネットワーク１０４は、社内イントラネットのようなローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、または、インターネットもしくはワールドワイド・ウェブのような広域ネットワーク（ＷＡＮ）とすることができる。一実施形態では、ネットワーク１０４は、プライベートネットワークおよびパブリックネットワークの１つ以上を含むことができる。
【００６５】
ネットワーク１０４は、任意のタイプおよび／またはフォームのネットワークとすることができ、以下のいずれかを含むことができる。ポイントツーポイントネットワーク、放送網、広域ネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ（非同期転送モード）ネットワーク、ＳＯＮＥＴ（同期光通信網）ネットワーク、ＳＤＨ（同期デジタル階層）ネットワーク、ワイヤレス・ネットワークおよびワイヤライン・ネットワーク。いくつかの実施形態において、ネットワーク１０４は、無線リンク（例えば赤外線チャネルまたはサテライト・バンド）を含むことができる。ネットワーク１０４のトポロジーは、バス型トポロジー、スター型トポロジー、またはリング型ネットワーク・トポロジーであってもよい。ネットワークは、任意数の中継器、アプライアンス、デバイス、サーバ、記憶媒体、およびキューを含むことができる。
【００６６】
ネットワーク１０４は、ネットワークに接続しているノード間の１つ以上のチャネル１２０をサポートする。たとえば、ノード１０２ａおよび１０２ｂは、チャネルによって接続可能である。いくつかの実施形態において、チャネル１２０は、例えばチャネル１２０ａとチャネル１２０ｂのように、２以上の異なるチャネルを含むことができる。チャネル１２０ａおよび１２０ｂは、実質的に同一もしくは異なるチャネル特性を有することができる。いくつかの実施形態において、チャネル１２０ａおよび１２０ｂのチャネル特性のいくつかを同一とする一方、その他チャネル特性を異なるものとすることができる。一般に、チャネルは、２台のノードが各々と通信する媒体の、少なくとも一部分の特性として定義されることができる。
【００６７】
ここで図２を参照すると、ソースコーディング１０５ａを実施するためのシステム２００ａの一例を示すブロック図が記載されている。システム２００ａは、データ配列（詳細は後述するように、例えば、イメージ、フレームまたは残差）を、それ自体がデータ配列であるブロックと呼ばれる複数のサブパーツに分割または区分化する分割ユニット２１０を含む。いくつかの実施形態において、そのブロックは正方形の画素配列であり、各々の画素値を、さまざまな形式のいずれかでコード化することができる。システム２００ａは、ある領域から他の領域にデータを変換する変換ユニット２１５も含む。システム２００ａは、イメージまたは変換係数を量子化番号に変換する量子化ユニット２２０を含む。いくつかの実施形態において、システム２００ａは、量子化番号をビットストリームに変換するビットストリーム変換ユニット２２５を含む。
【００６８】
データ配列（総じて２０５）は、異なるタイプおよび形式であってもよい。場合によって、データ配列２０５はイメージ２０５ａ（例えば、個別のイメージもしくはビデオフレームイメージ）である。場合によって、データ配列２０５は、ビデオフレームに関する予測残差２０５ｂである。場合によって、データ配列２０５のいくつかはビデオフレームイメージであり、他のデータ配列２０５は予測残差である。場合によって、データ配列２０５は、ビデオフレームイメージの一部を直接的にコード化する部分と、ビデオフレームイメージの一部の予測残差をコード化する他の部分と、を含む。そのような場合、ビデオフレームイメージの一部が直接コード化されるか、もしくは予測残差としてコード化されるか、の決定は、いずれが変換ユニット２１５によってより効率的に圧縮され得るかによって決定されるが、さらに詳しくは後述する。以下に示す例において、データ配列２０５は２次元配列である。あるいは、類似技術を異次元の配列に用いることができる。
【００６９】
データ配列２０５は、分割ユニット２１０を経てサブパーツに区分化される。分割ユニット２１０は、さまざまな方法でデータ配列２０５を区分化することができる。たとえば、分割ユニットは、データ配列２０５を複数の２次元配列に区分化することができる。データ配列２０５が３次元以上であるいくつかの実施形態において、分割ユニット２１０はデータ配列２０５を、より低次元に区分化することができる。たとえば、３次元データ配列２０５は、複数の２次元スライスに区分化されることができる。３次元配列は、より小さな３次元ブロックに区分化されることができる。分割ユニット２１０は、データを同種または異種の形態に区分化することができる。たとえば、２次元配列２０５（例えば、イメージ／ビデオフレーム２０５ａまたは残差フレーム２０５ｂ）の一部は、より小さな２次元ブロックに仕切られることができて、一方、２次元配列２０５の他の部分は、前者より大きな２次元ブロックに仕切られることができる。いくつかの実施形態において、分割ユニットは各々の区分に対応する１つ以上の識別パラメータを導入し、その区分から元のデータ配列を再構築することができる。いくつかの実施形態において、分割ユニット２１０はデータ配列２０５を任意のサブパーツに区分化せず、データ配列２０５を見送ることができる。分割ユニット２１０がデータ配列をサブパーツに区分化するか否かは、１つ以上のパラメータまたはデータ配列の性質によって制御されうる。
【００７０】
変換ユニット２１５は、配列（例えば区分化されたブロックまたはデータ配列２０５全体）を、ある領域から他の領域へと変換する。たとえば、変換ユニット２１５は、空間領域から周波数領域にデータを変換する。データ変換は、変換ユニット２１５によって計算され、例えば、離散コサイン変換（ＤＣＴ）、離散正弦変換（ＤＳＴ）、離散ウェーブレット変換（ＤＷＴ）、フラクタル圧縮、および離散フーリエ変換（ＤＦＴ）の１つ以上を含むことができる。概して、変換ユニット２１５は、受信した配列の画素よりも小さい係数を用いて配列を表示することを容易にする。変換ユニット２１５は、１次元変換、２次元変換、もしくはより高い次元の変換、の任意の組合せを計算することができる。
【００７１】
変換ユニット２１５を用いて、異なるタイプのデータ配列を圧縮してもよい。いくつかの実施形態、例えばイメージ圧縮において、画像強度を表している画素は変換される。他の実施形態、例えばビデオ圧縮において、予測残差を表している画素は変換されることができる。予測残差の例としては、動き補償の残差（ＭＣ残差）、スケーラブルビデオコーディングにおいてしばしば用いられる分解能向上残差（ＲＥ残差）、多視点コーディングにおいてしばしば用いられる視差補償残差（ＤＣ残差）、およびＨ.２６４／ＡＶＣにおいてしばしば用いられるイントラ予測の残差が挙げられる。概して、イメージの圧縮に使用する変換は、予測残差の圧縮に用いてもよい。たとえば、離散コサイン変換（ＤＣＴ）は、イメージおよびＭＣ残差を圧縮するために用いてもよい。かかる変換の他の例は、離散ウェーブレット変換（ＤＷＴ）であり、それは残差フレームと同様にイメージを圧縮するために用いてもよい。
【００７２】
変換ユニット２１５により実行される変換の選択は、データ配列２０５の特性によって決定することができる。たとえば、データ配列が１次マルコフ信号に分類され得るイメージであるとき、ＤＣＴはかかる種類の信号に対して統計学的に最適な変換であるため、選択される変換をＤＣＴとすることができる。場合によっては、予測残差は異なる特性をイメージから得ることができる。そのような場合、予測残差の代表的な特性を用いて、適切な変換を決定づけることができる。予測残差は予めコード化された画像強度から、画像強度を予測する際の予測誤差を表示する。いくつかのタイプのデータ、例えばＭＣ残差に関して、なめらかに、かつゆっくりと動く領域の予測誤差は、可動テクスチャ領域または端部における予測誤差よりも小さい。また、いくつかの実施形態でも同様に、実際のオブジェクトは、例えば回転のような並進運動以外の運動も有するのに対し、動き補償予測は並進運動のみを把握する。そのような場合、オブジェクトの形状はフレームごとに僅かに変化する傾向にありうる。その結果、オブジェクト境界周辺の予測はより多くの誤差を有しうる。
【００７３】
ＲＥ残差に関して、なめらかな領域の予測誤差は、詳細なテクスチャ領域または端部周辺における予測誤差にくらべて非常に小さい。この種の予測残差に関して、大きな予測誤差は、詳細なテクスチャ領域または端部に沿った領域に集中しうる。
【００７４】
上述した状況において、端部に沿う１次元ストラクチャは、残差のいくつかの領域に生じることができる。たとえば、隣接する区分内においては、端部に沿った画素強度を除いて、多くの画素強度はゼロに近くてもよい。そのような場合、スクウェア・サポートを有する基底関数を用いた２次元変換は、最適な変換ではない可能性がある。予測残差の１次元ストラクチャに従うサポートを有する基底関数を用いた変換が、かかるケースにとってより適当とすることができる。たとえば、１次元方向のＤＷＴ、または１次元方向のＤＣＴ、上述の特性を有する予測残差と共に用いることができる。
【００７５】
いくつかの実施形態において、２次元（２Ｄ）変換は、分離可能な１次元（１Ｄ）の変換として実行することができる。たとえば、２次元ＤＣＴまたは２次元離散ウェーブレット変換（ＤＷＴ）は、２つの１次元変換を垂直方向および水平方向にカスケードすることによって、分離可能な変換として実行することができる。場合によっては、かかる１次元変換は、他の方向よりも水平方向または垂直方向の特性に有利に働く。いくつかの実施形態において、変換を用いて画像強度の変化量をより小さい方向へとフィルタリングを実行することで、局所的な異方特性に適応することができる。これは、たとえば、抽出サンプル・グリットの指向性を有する部分格子、およびウェーブレット変換の指向性を有する上昇推進における、フィルタリングおよびサブサンプリングを含む多種多様な方法によって成果を上げることができる。指向性変換は、１次元もしくは２次元ＤＣＴ、ＤＷＴとすることができ、または他の変換がこのような指向性変換に用いられてもよい。
【００７６】
変換ユニット２１５は、算出された変換係数の１つ以上を選択または放棄するために、ハードウェアまたはソフトウェアをさらに含むことができる。たとえば、変換ユニットは後続のプロセスのために、算出された変換係数のうち、ゼロ以外の係数のみを選択することができる。いくつかの実施形態において、閾値未満の係数が選択されないように、算出された変換係数を閾値に基づいて選択することができる。係数は、係数の値、算出された変換配列における係数の位置、係数に含まれる情報内容、および他のアプリケーションまたはユーザに特有の基準のうち、１つ以上に基づいても選択されてよい。いくつかの実施形態において、変換ユニットは、入力信号を変換せずに通過させることができる。たとえば、変換ユニット２１５がデルタ関数のインパルス応答を伴うデジタルフィルタを含む場合、入力信号は略変化させられずにユニット２１５を通過する。変換ユニット２１５は、所定のブロックごとに選択的に変換を実行するか、あるいは、変換を与えることなく信号を通過させるように構成可能である。
【００７７】
変換ユニット２１５によって選択される変換は、データ配列２０５の性質によって決定することができる。たとえば、データ配列が１次マルコフ信号として分類され得るとき、ＤＣＴがこの種類の信号に対して統計学的に最適な変換であることから、選択される変換をＤＣＴとすることができる。
【００７８】
いくつかの実施形態において、量子化ユニット２２０は、値の範囲を示すために代表値を１つ用いてもよい。たとえば、変換係数の値は連続する性質であってもよく、量子化ユニット２２０は離散値の限定された数を用いて、かかる係数を表すことができる。量子化ユニット２２０は、演算（例えば四捨五入、切り上げ整数化、切捨て整数化、剰余および閾値）を実行することができる。量子化ユニット２２０は、多種多様な方法で変換係数を表すことができる。たとえば、いくつかの実施形態で、量子化ユニット２２０は、変換係数を次に大きい整数または次に小さい整数として表す。他の実施形態では、量子化ユニット２２０は、小数第２位までの係数を表すことができる。量子化ユニット２２０は、種々の係数を量子化するために、種々の方法を用いることができる。たとえば、係数の１次元配列〔５８  −５１  −１５  −１２〕を考慮すると、対応する量子化配列は〔２４  ４０  ５１  ６１〕と定義され、その量子化された値は〔２  −１  ０  ０〕となる。これは、量子化配列の値によって係数配列の各々の要素を割り算し、次に、その値を直近の整数に四捨五入する演算である。他の実施形態では、各々の係数が略同一の方法で量子化される際に、均質量子化が用いられてよい。
【００７９】
ビットストリーム変換ユニット２２５は、量子化番号をビットストリームに変換する。概して、量子化番号は２進数表示に変換される。ビットを、さまざまな方法（例えば電圧または電流の異なるレベルもしくは信号の有無）によって、物理的に表すことができる。ビットストリーム変換ユニットから出力されるビットストリームは、入力データ配列２０５のソースコード形式を表すことができる。いくつかの実施形態において、これらのビットストリームが、チャネルコーディングユニット１１０ａへの入力として用いられる。ビットストリーム変換ユニット２２５は、例えばハフマンコーディング、可変長符号化、または他の暗号コード体系のようなコード体系を実施するためのハードウェアおよび／またはソフトウェアを含むことができる。
【００８０】
分割ユニット２１０、変換ユニット２１５、量子化ユニット２２０およびビットストリーム変換ユニット２２５は、種々の特定のハードウェアモジュールのいずれかを用いて実行することができる。たとえば、これらのユニットのいずれかは、マイクロプロセッサ、マイクロコントローラ、およびデジタル信号処理装置（ＤＳＰ）のうち１つ以上を用いて実行することができる。実施形態は、ハードウェア回路（例えばサンプルアンドホールド回路、加算器、乗算器、シフトレジスタ、論理ゲート、トランジスタ、フリップフロップ、スイッチ、コンデンサ、レジスタ、インダクタ、バス、キャッシュメモリ、タイミング回路およびダイオード）を含むことができる。１つ以上のプログラムプロセッサ上で動く種々のアルゴリズムおよび／またはソフトウェアを、変換、量子化、区分化、およびビットストリーム化を演算する際に用いることができる。
【００８１】
ここで、図３を参照すると、ビデオフレームのソースをコード化するためのシステム２００ｂの、他の例が図示されている。いくつかの実施形態において、システム２００ｂは、現在フレーム３０２ａおよび予測された現在フレーム３０２ｂから、予測残差フレーム２０５ｂを得る。予測された現在フレーム３０２ｂは、１つ以上前のコード化済みフレーム３０１から得ることができる。一実施形態では、予測された現在フレーム３０２ｂは、単一のコード化済みフレームから得られる。他の実施形態において、予測された現在フレーム３０２ｂは、複数のコード化済みフレームから得られる。いくつかの実施形態において、１つ以上後のフレーム（フレームの提示時間に関して）は、予測された現在フレーム３０２ｂを得るためにも用いてもよい。換言すれば、前後の予測の任意の組合せを用いて、予測された現在フレームを得ることができる。
【００８２】
いくつかの実施形態において、予測された現在フレーム３０２ｂは、少なくとも１つのコード化済みフレーム３０１に関する変換係数を用いて得られる。他の実施形態では、予測された現在フレーム３０２ｂは、少なくとも１つのコード化済みフレーム３０１の強度値を用いて得られる。コード化済みフレーム３０１は、バッファから読み出されるか、もしくは関連する変換係数から再構築することができる。いくつかの実施形態において、予測された現在フレーム３０２ｂの取得には、線形予測、非線形予測、および補間法といった演算を含むことができ、さらに動きベクトルを推定して、それを用いることを含んでもよい。いくつかの実施形態において、予測された現在フレーム３０２ｂは、ビデオストリーム内の隣接したフレーム間の、既存の相互関係を用いて算出される。
【００８３】
予測された現在フレーム３０２ｂは、現在フレーム３０２ａと比較され、予測残差フレーム２０５ｂを得ることができる。いくつかの実施形態において、現在フレーム３０２ａおよび予測された現在フレーム３０２ｂの対応する画素の画像強度値の残差は、予測残差フレーム２０５ｂを得るために算出される。換言すれば、予測残差フレーム２０５ｂは、現在フレーム３０２ａと予測された現在フレーム３０２ｂとの間の差分イメージを表す。代替案として、現在フレーム３０２ａと予測された現在フレーム３０２ｂとの間の他の演算が、予測残差フレーム２０５ｂを得るために実行されてよい。たとえば、いくつかの実施形態で、現在フレーム３０２ａおよび予測された現在フレーム３０２ｂの変換係数間の差分は、予測残差フレーム２０５ｂを得るために算出される。予測残差フレームは、図２に記載した分割ユニット２１０、変換ユニット２１５、量子化ユニット２２０およびビットストリーム変換ユニット２２５の１つ以上を通過することができる。
【００８４】
図４は、動き補償の予測残差フレームを得る一例を示す。この例では、動き補償残差２０５ｂを得るために、現在フレーム３０２ａおよび予測された現在フレーム３０２ｂとともに、差分演算子４０５が用いられる。上述の通り、他の演算子または演算子の組合せを用いて、動き補償残差２０５ｂを算出することができる。
【００８５】
図５を参照すると、分解能向上の予測残差フレームを得る一例が図示されている。この例では、低質・高解像度フレーム３０２ｂは、コード化済みの低解像度フレーム３０１から生成される。フレーム３０１からフレーム３０２ｂを生成することは、アップサンプリングおよび任意の補間技術（例えば直線補間、最近接内挿法およびバイキュービック補間）を用いて実行することができる。いくつかの実施形態において、フレーム３０１から予測されたフレーム３０２ｂが生成される間に、例えばアンチエイリアス・フィルタリングのようなフィルタリング技術を用いることができる。図４に関して述べたように、分解能向上の予測残差２０５ｂを得るために、低質・高解像度フレーム３０２ｂおよび現在フレーム３０２ａは互いに比較される。図５には差分演算子４０５が示されているが、分解能向上の予測残差２０５ｂを得るために他の演算子も用いてよい。
【００８６】
ここで、図６を参照すると、フローチャート６００は、データ圧縮および伝送システム内の変換ユニット２１５によって実行される演算順序の一例を表している。その演算は、フレームまたは予測残差を表すデータ配列の、複数のブロックの各々において実行されることができる。その演算は、所定のブロックをコード化するよう１つの係数セットを選択するが、その選択は、複数の係数セットのグループを比較して、どの係数セットが最大圧縮のブロック（例えば、圧縮効率の所定の測定に従って）を表すのかを判定することによって実行される。この例において、この演算は、データ配列のブロックを受信するステップ６１０を含む。この演算は、変換係数セットの複数の候補を算出するステップ６２０も含む。種々の係数セットは、予め決定された変換グループから種々の変換を用いて算出されるが、このことが、用いられる所定のブロックを最大圧縮する変換を可能とする。たとえば、第１の係数セットは、複数の１次元変換に基づいて算出されることができ、複数の１次元変換の各々はブロックの異なる部分を計算し、複数の１次元変換が全体でブロック全体をカバーする。１次元変換は、特定の方向に沿って整列配置することができる。他の係数セットは、異なる方向（詳細については後述するように、例えば、角度範囲に均一に当てられた方向）に沿って整列配置した複数の１次元変換に基づいて計算されることができる。かかる１次元変換は、１次元特徴を含むフレームまたは予測残差の特徴に最大圧縮を呈することができる。他の係数セットは、ブロック全体において実行される２次元変換に基づいて算出されることができる。かかる２次元変換は、２次元特徴を含むフレームまたは予測残差の特徴に、最大圧縮を呈することができる。この演算は、また、最大圧縮を提供する変換係数セットの候補グループから変換係数セットを選択するステップ６４０と、選択した係数をコード化するステップ６５０とを含む。
【００８７】
演算は、所定の変換グループから、（例えば、処理の遅延を減少させるために）任意の変換の除去を試みるか否かを決定するステップ６１５を選択的に含むことができる。場合によっては、所定の変換グループが大きい場合、所定のブロックに高圧縮を与えそうにない幾つかの変換を除去することが好ましいであろう。そのようにして、さもなければ、これらの変換に基づく変換係数候補の算出に必要な処理時間を、回避することができる。所定の変換グループから変換を除去すると判断された場合、その演算は、もしあるとすれば、どの演算を除去するのかを決定するステップ６３０を含み、このステップ６３０は、所定のブロックの予測特性およびこれらの特性を有するブロックに、どのように所定の変換が実行されるのかに基づいて、任意の係数セット候補の算出を考慮して行われる。除去する変換の決定に要する時間が、対応する変換係数の算出に要したであろう時間より短くなければならない。
【００８８】
いくつかの実施形態において、データ配列のブロックを受信するステップ６１０は、情報ソース１０１からデータ配列を受信するステップを含むことができる。データ配列は、イメージ、ビデオフレーム、または予測残差フレームを含む任意の形式およびタイプであってもよい。いくつかの実施形態において、データ配列は、図２および図３に記載されているデータ配列２０５に略同一であってもよい。受信ステップ６１０は、図２において詳述したように、データ配列をサブパーツに区分化するステップをさらに含むことができる。
【００８９】
演算は、指向性変換をデータ配列に用いるか否かを決定するために、受信したデータ配列を検査するステップ６１５を選択的に含むことができる。たとえば、データ配列が著しい異方性の特徴を有するイメージまたは予測残差である場合、指向性変換を用いるという決定をすることができる。一方、イメージ、ビデオフレーム、または予測残差が滑らかで、および／または指向端がない場合、指向性変換は必要でないと決定することができる。いくつかの実施形態において、計算装置を経由して実行される１つ以上のアルゴリズムを用いることで、その決定を部分的に自動化することができる。かかる自動化した手順は、イメージ、ビデオフレーム、または予測残差の特性を含むことができる。
【００９０】
イメージ、ビデオフレーム、および予測残差の特性は、所定のイメージまたはフレームに対して指向性変換を用いるか否かを決定する際の補助となりうる。いくつかの実施形態において、かかる特性は、演算される変換の性質、指向性、またはタイプの決定を補助する。後述の説明は、特に予測残差に関するものである。しかしながらこの説明はまた、ビデオフレームおよびイメージにも応用することができる。
【００９１】
場合によって、変換または表示を予測残差の局所的な異方性の特徴に適応させることは、圧縮性能を高める。たとえば、これは、従来から用いられている分離可能な１次マルコフモデルの一般化バージョンを用いて、ＭＣ残差の自己共分散の特性を経由して分析されている。分離可能モデルおよび一般化モデルは、それぞれ以下の（１）および（２）にて与えられる。
【００９２】
【数１】
2012527168.tif 000003
【数２】
2012527168.tif 000004
【００９３】
一般化モデルは、分離可能モデルを回転させたバージョンであり、θは回転量を表す。回転量をゼロに設定すると、一般化モデルは分離可能モデルとなる。この例において、分離可能モデルのパラメータρ１およびρ２、ならびに一般化モデルのパラメータρ１、ρ２およびθは、イメージおよびＭＣ残差の８×８画素のブロックから算出される。バイアス推定器は、ブロックの自己共分散を推定して、自己共分散評価と（１）および（２）のモデルとの間における平均二乗誤差を最小化するパラメータρ１、ρ２、およびθを求めるために用いられる。図７Ａおよび図７Ｂは、ρ１およびρ２の散布点を示しているが、それらは、分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのイメージから推定されている。図７Ｃおよび図７Ｄは、同一パラメータの散布点を示しているが、それらは分離可能な自己共分散モデルおよび一般化された自己共分散モデルのそれぞれのＭＣ残差から推定されている。「モバイル」と称されるビデオシーケンスはオブジェクト境界において、動き補償予測を不成功に導く多種多様な可動オブジェクトを有しているため、これらの例に用いられる。
【００９４】
たとえば、一般化モデルのプロット（図７Ｂ）において、分離可能モデルのプロット（図７Ａ）と比較すると、ρ１＝ρ２となるプロットラインに沿った領域はデータポイントが存在する割合が低い。一方、分離可能モデルにおいて、ρ１＝０．８、およびρ２＝０．８のラインを超えるデータポイントは殆どない。これらの観察から、一般化されたケースでは、ρ１＝ρ２となるラインの下に広がるデータポイントは、ρ１軸に沿って右方向へ移動し、ρ１＝ρ２となるラインの上に広がるデータポイントはρ２軸に沿って上方へと移動したことが見て取れる。場合によっては、付加パラメータθをモデルに与えることで、結果的に、高次の相関係数ρ１またはρ２の可能性が高まる。場合によっては、パラメータθそれ自体を調整することで、ρ１またはρ２のどちらか一方が、分離可能モデルに比べてより規則的偏差に沿って位置する。
【００９５】
引き続きこの例において、ＭＣ残差の分離可能な自己共分散モデルのプロット（図７Ｃ）において、そのデータポイントがρ２=ｋ／ρ１カーブと軸との間の領域を均一に満たしているように見えると観察され得る。ＭＣ残差の一般化した自己共分散モデルのプロット（図７Ｄ）において、データポイントはそのカーブの尾部の方へ集中するようであり、２軸に集中する半ディスク形状を形成する。場合によっては、領域内のデータポイントがより集中することはデータのより良好な予測性を意味し、ひいては、方程式（２）において用いられるモデルによって、データの信頼性の高い特性の提供が可能であることを示すことができる。従って、場合によっては、付加パラメータθを有する特性は、データ配列のより良好な圧縮に導くことができる。
【００９６】
さらに、図７Ｂおよび図７Ｄに関して、局所的な異方性のイメージの特徴がＭＣ残差に及ぼす効果についても図示されている。この例では、イメージ（図７Ｂ）の特性は、ρ１軸およびρ２軸に対する２つのディスク接線におおよそ集中するデータポイントを有する。一方、この例におけるＭＣ残差（図７Ｄ）の特性は、２軸上で２つの半ディスク形状に集中するデータポイントを有するようである。換言すれば、ＭＣ残差（図７Ｄ）のケースにおいては、データポイントは軸に近づく。場合によっては、特性（図７Ｂ）における任意のデータポイント（ρ１、ρ２）を考えると、より小さい共分散因子がＭＣ残差の特性（図７Ｄ）においてさらに小さくなることを意味することができる。いくつかの実施形態において、これは、局所異方性のイメージ特徴がＭＣ残差に影響を及ぼす方法、またはＭＣ残差に伝播する方法である。これは、イメージとＭＣ残差との間の、統計的特性の主な相違点を構成しうる。そのような場合、別々の方向の適応変換を、画像およびＭＣ残差に用いることができる。
【００９７】
いくつかの実施形態において、第１候補の係数セットは受信したデータ配列ブロックの異なる部分で、複数の１次元変換を実行することによって算出される。１次元変換が実行されるブロックの異なる部分は、後で詳しく述べるように、全てまたは大部分のブロックをカバーするように配置されることができる。そのような場合、第１係数セットは、各々の１次元変換に対応する係数を含む。各々の１次元変換は、離散コサイン変換（ＤＣＴ）、離散正弦変換（ＤＳＴ）、離散ウェーブレット変換（ＤＷＴ）、および離散的フーリエ変換（ＤＦＴ）から選択されることができる。いくつかの実施態様において、各々の１次元変換に使用する変換は同じである。他の実施形態では、１次元変換のうちの少なくとも１つは、残りの１次元変換とは異なる変換を用いて計算される。
【００９８】
候補の係数セットを算出する際に用いられる、所定の変換グループから１つ以上の変換を除去する一例において、変換を内包または除去するために、１次元変換の種々のセットを変換と連動した方向に基づいて選択することができる。所定のデータ配列においてより優れた性能が期待できる１組の１次元変換の方向は、データ配列の点検またはデータ配列上のいくつかの演算を経て決定されることができる。たとえば、図７Ｄの一般化モデルから得られるＭＣ残差のρ１対ρ２の散布点は、しばしば、２つの相関係数（ρ１、ρ２）のうちどちらか一方が、他方より非常に大きいことを示す。いくつかの実施形態において、より大きい相関係数を有する方向に従って、データの相関性が失われていく。他の実施形態では、より小さい相関係数を有する方向に従っても、データの相関性が失われていく。いくつかの実施形態において、方向の選択は、受信したデータ配列がイメージであるか、もしくは予測残差であるかに依存してもよい。あるいは、データ配列のいかなる分析も不必要であり、角度領域（１８０°の範囲にわたる）へ均一に展開される多数の方向への係数の全てが算出されることができる。そのような場合、最高エネルギーの圧縮を示している方向が、選択方向として選ばれることができる。
【００９９】
ここで図８を参照すると、１つのブロック（この例では８×８ブロック）において、１次元変換が所定のパターンに配置された種々の１次元の画素配列で計算される一例が示されている。この例では、（変換パターン８００内の）１次元の画素配列８１０は、８×８ブロック内の左端の８つの画素から成り１次元変換が計算される配列を表す。いくつかの実施形態において、画素配列が略一方向への略線形な経路を形成するように（例えば、パターン内の１次元配列の各々が略同じ形状を有するが、異なる長さを有してブロック上の経路をたどるように）、画素配列は選択される。この方向は、図７について述べたように相関係数の大きい方向とすることができる。
【０１００】
この例において、およそ１８０°の方向をカバーする１６の変換パターンは、各々のパターンに対して１次元変換のグループを計算するために定められた。変換の圧縮量に影響を及ぼすのは、各々の１次元変換が計算される画素配列を横断する経路の平均角度であって、計算の始点および終点（図８に矢印で表されている）の位置ではない。よって、０°〜１８０°と１８０°〜３６０°の両方をカバーする方向を含む必要はない。さらにまた、０°および１８０°の両方に対応する変換パターンを含む必要はない。それゆえ、変換パターン８００が０°の方向を表す場合、変換パターン８４０はちょうど１８０°以外の方向を表す。この例では、およそ０°から１８０°の範囲で均一配置された方向に沿った、ほぼ線形経路上の変換が含まれているが、他の例では、他方向もしくは非線形形状を有する経路に沿った変換も定めることができる。いくつかの実施形態において、指向性変換の決定は、全体としての配列が１つの方位または方向を表すように、受信したブロック内で１次元の画素配列を選択することを含むことができる。所定の方向にあるいくつかの配列は、その配列内に同一または異なる数の画素を有する。たとえば、変換パターン８２０における全ての１次元配列は同数の画素を含むが、変換パターン８３０における配列は異なる数の画素を有する。所定の変換パターンの画素配列は、オーバーラップしてもよいし、オーバーラップしなくてもよい。換言すれば、同一の変換パターン内で２つの異なる１次元変換を計算する際に、所定の画素が横断されてもよい。画素配列はブロック内の大部分の画素を含むことができるが、いくつかの変換パターンにおいては、１つ以上の画素が除外されてもよい。いくつかの変換パターンは、所定の画素が隣接する２つのブロックの両方の１次元配列に含まれるように、所定のブロックを越えて延びてもよい。
【０１０１】
所定の変換パターンの１次元変換から生じる係数は、後続の処理のための係数ストリームに配列される。配列決定の一部として、係数は、種々の変換に対応する１次元変換、および所定の係数と関連した空間周波数に対応する他次元変換から得られる２次元ブロックを形成することができる。次に、係数は、この計算結果としての２次元ブロックから、走査パターンとして公知である特定の順序で読み出されることがきできる。いくつかの実施形態において、計算結果として得られる変換係数の走査パターンは、変換パターンにおける変換の方位または方向に依存する。概して、相対的に低い周波数係数が高い周波数係数の前に走査されるように、および／または係数が、計算結果のブロック内に隣接して格納されている第２係数の前もしくは後に読み出されるように、かかる走査パターンを定めることができる。図９は、計算結果データの８×８ブロックに関する、走査パターンの例をいくつか表している。他の実施形態では、計算結果のブロックサイズ、データの予想される性質、およびデータ計算に用いた変換の方位または方向に基づいて、走査パターンを定めることができる。
【０１０２】
再度、図６を参照すると、いくつかの実施形態において、第１係数セットは、ステップ６２０にて、方向離散ウェーブレット変換（ＤＷＴ）を用いて計算することができる。かかる方向離散ウェーブレット変換は、１つ以上のバンドレット（bandelet）、ディレクションレット（directionlet）、またはリフトベースのウェーブレット変換の使用を含むことができる。一例として、リフトベースの方向ウェーブレット変換について後述する。
【０１０３】
リフトとは、リフト・ステップと呼ばれる一連のフィルタリング・ステップを用いたウェーブレット変換を設計するための手段である。ここで図１０Ａを参照すると、ブロック図は、リフトベースのウェーブレット変換システムにおける分析側を表している。図１０Ａに示されるように、信号は偶数サンプルと奇数サンプルに最初に分割され、奇数サンプルは偶数サンプルから予測される。次に、その予測における残差を用いて、偶数サンプルが更新される。任意数の予測および更新のペアを直列接続し、変換の最後の低域信号および高域信号を得ることができる。この例で示される方式は、予測ボックス（Ｐ１）または更新ボックス（Ｕ１）の選択方法に関わりなく逆変換が可能である。対応する逆変換は、図１０Ｂに示される。
【０１０４】
予測および更新に用いるフィルタは、ＤＷＴの分析フィルタおよびＤＷＴの合成フィルタを決定する。たとえば、後述の予測フィルタおよび更新フィルタは、周知の９／７の双直交ウェーブレットフィルタをもたらす。予測フィルタおよび更新フィルタは、他のウェーブレットフィルタ形式を実現するために変形することができる。この例で示されるフィルタにおいて、隣接する２つの偶数画素を平均算出およびスケーリングすることで全ての奇数サンプルを予測し、その予測における予測残差を用いて、隣接する２つの奇数画素を平均算出およびスケーリングすることで全ての偶数画素は更新される。
【０１０５】
【数３】
2012527168.tif 000005
【０１０６】
いくつかの実施形態において、方向予測を有するリフトベースの１次元ウェーブレット変換は、垂直次元もしくは水平次元のみにおける方向リフト・ステップを適用することによって実行される。換言すれば、垂直次元に沿って変換を実行するときに、図１１Ａの予測オプションおよび更新オプションのいずれか１つが実行されるか、もしくは予測オプションおよび更新オプションのいずれも実行されない。予測オプションおよび更新オプションがいずれも垂直次元に沿って実行されない場合、図１１Ｂの予測オプションおよび更新オプションのうちの１つが水平次元に沿って用いられる。図１１Ａのオプションのうちの１つが垂直次元に沿って実行される場合、予測オプションおよび更新オプションは水平次元に沿って実行されない。
【０１０７】
予測残差に関して、いくつかの実施形態では、予測残差の特性が方向１次元ＤＷＴの基底関数としばしばコヒーレントであるため、方向１次元ＤＷＴは方向２次元ＤＷＴより好適とすることができる。多くの場合、予測残差の大部分のエネルギーは、１次元構造を形成している端部およびオブジェクト境界に沿って集中する。上述のようにいくつかのケースでは、その変換の有する基底関数のサポートがこれらの１次元構造に従う変換は、予測残差のかかる領域を近似させる際に、潜在的により優れて機能可能である。しかしながら、場合によっては、その変換の有する基底関数のサポートが１つの２次元構造に従う変換は、潜在的により優れて機能可能である。
【０１０８】
再び図６に関して、演算は、受信データ配列から得られる少なくとも１つの第２係数セットを計算するステップ６３０をさらに含むことができる。いくつかの実施形態において、第２係数セットは２次元（２Ｄ）変換に基づく。たとえば、第２係数セットは２次元離散コサイン変換、２次元離散的正弦変換（ＤＳＴ）、２次元離散ウェーブレット変換（ＤＷＴ）、および２次元離散フーリエ変換（ＤＦＴ）を用いて計算されることができる。
【０１０９】
引き続き図６に関して、演算は、（例えば、ブロックの種々の部分における１次元変換から得られた）第１係数セットおよび（例えば、ブロック全体の２次元変換から得られた）第２係数セットを含む複数の係数セットのグループから、１つの係数セットを選択するステップ６４０も含む。第１係数セットを計算するための多くの変換パターンが考えられ得るため、複数の係数セットのグループは１つ以上の２次元係数セットとともに、各々の変換パターンに対する種々の１次元変換係数セット（例えば、図８に示される各々の変換パターンのための１組の係数セット）を含むことができる。代替案としては、推定されたブロックの特性を考慮して、全ての変換パターンの中から実際に変換を実行することなく、いくつかの潜在的変換パターンを除去することができる。たとえば、複数の係数セットのグループは、単一の１次元変換係数セット（適合の可能性が最高であると推定された）および単一の２次元変換係数セットを含むことができる。
【０１１０】
係数セットが、受信したデータ配列をコスト関数に従って最適に表すように、係数セットは選択される。たとえば、いくつかの実施形態では、受信したデータ配列の最小の不可逆圧縮を表す変換係数セットが選択されうる。他の実施形態では、最良の係数セット、または最良の係数セットを算出するための最良の変換を選択することは、１つ以上のコスト関数を伴う最適化方法を含むことができる。たとえば一実施形態において、最良の変換または各々のブロックに対する最良の係数セットは、速度歪み（ＲＤ）を最適化する方法を用いて選択される。この例では、各々の利用可能な１次元変換セットおよび各々の利用可能な２次元変換は、ブロック上で計算される。通常、方向１次元変換は、個々の１次元変換が少なくともブロックの一部をカバーし、かつ１次元変換セットがブロック全体をカバーする方法で計算される。２次元変換の場合には、単一の２次元変換がブロック全体において計算される。コスト関数は各々の変換または変換セットのために、ブロックの歪みの線形結合（ブロックの平均二乗誤差（ＭＳＥ）のような測定基準を用いる）および、（量子化係数および他の関連情報の両方を量子化するために）ブロックに費やされるビット数を用いて、形成される。変換または最も小さいコスト関数を有する変換セットは、各々のブロックに対して選択される。他の実施形態では、他のいかなるコスト関数も、二乗和（ＳＳＤ）、絶対差の総和（ＳＡＤ）、比率画像均一性（ＲＩＵ）およびルート二乗平均誤差（ＲＭＳＥ）の合計、といった他の測定基準とともに使われることができる。相互情報量のような測定基準に基づく情報理論は、歪みを測定するためのコスト関数において用いられてもよい。
【０１１１】
係数セットを選択するステップは、選択された係数セットに関係する１つ以上のパラメータを決定するステップ、または選択するステップも含む。１つ以上のパラメータは、選択された係数セットを質的におよび／または量的に識別することができる。たとえば、パラメータは、選択された係数セットまたは変換が１次元変換セットもしくは２次元変換セットに関係するか否かを示すことができる。変換タイプ、変換方向（たとえば、所定の複数の変換パターンのうちの１つ）、走査パターン、および変換が計算されるブロックもしくは画素グループのうちの１つ以上を識別するために、パラメータを用いてもよい。
【０１１２】
演算は、選択された係数セット、および／または選択された係数セットに関係する１つ以上のパラメータをコード化するステップをさらに含むことができる。いくつかの実施形態において、かかるコード化は、１つ以上のソースコーディングおよび１つ以上のチャネルコーディングを含む。たとえば一実施形態では、各々のブロックのために選択された変換または変換セットは、可変長コード（ＶＬＣ）を用いてコード化される。別々のコードワード長を用いて、１次元変換係数および２次元変換係数を表すことができる。どの変換もしくは変換セットが用いられたかを示すコード化されたパラメータの一例において、シングルビットのコードワードは２次元ＤＣＴが用いられたことを意味し、５ビットのコードワードは複数の１次元変換のうちどの変換が用いられたかを表す。いくつかの実施形態において、ハフマンコードをコード化のために用いることができる。他の実施形態において、実施形態を単純化するためにコード体系を選択することができ、および／または一般的に変換に要する平均時間の最適ハフマンコードを概算することができる。いくつかの実施形態において、変換係数および関連するパラメータは略同一のコード体系を用いてコード化される。他の実施形態では、変換係数に用いるコード体系および関連したパラメータに用いるコード体系は各々で異なる。他の方法およびコード体系を、また、変換および／または関連したパラメータをコード化するために用いてもよい。
【０１１３】
上述の通信システム及びその方法は主に、通信システムにおけるトランスミッタすなわち送信機側に関するものである。対応するレシーバデバイスは、本願明細書に記載のシステムおよび方法に従って送信された情報を、デコードおよびディスプレイするように構成することができる。概して、かかるレシーバデバイスは、レシーバで実行される演算の逆演算を行う機能ユニットを有する。所定のブロックで実行されるべき複数の可能な逆演算（例えば、複数の可能な逆変換）の選択は、与えられた所定のブロックとともにコード化されるパラメータに基づいて決定される。たとえば、レシーバは、実行され得る複数の変換グループを識別している情報、および１次元変換を実行し得る複数の変更パターンを識別している情報を記憶する。適当な変換および／または変換パターンは、コード化されたパラメータに基づいて選択される。たとえば、１ビット・パラメータは、所定のブロックをコード化するために１次元変換または２次元変換のいずれが用いられたかを示すことができる。そして、１次元変換が用いられた場合、４ビット・パラメータは１６の変換パターンの内からどの変換パターンが用いられたのかを示すことができる。
【０１１４】
後述する結果は、本願明細書において記載されている方法およびデバイスのいくつかの効果を示す。実験結果は単に図示する目的であり、いかなる意味においても制限するものと考慮すべきではない。
【０１１５】
一実験は、２次元ＤＣＴと１６セットの１次元ＤＴＣによる圧縮性能を、２次元ＤＴＣのみによる圧縮性能と比較するために行われた。これらの実験において、１秒あたり３０フレームのＱＣＩＦ解像度を有するビデオシーケンスを用いた。いくつかの重要なエンコーダ・パラメータは、以下の通りである。第１フレームはＩフレームとしてコード化され、そして残りのフレームは全てＰフレームとしてコード化される。適応ブロックサイズ（１６×１６、１６×８、８×１６、８×８）を有する、４分の１画素解像度の全探索動き推定が用いられる。エントロピー・コード化は、コンテクスト適応可変長符号化（ＣＡＶＬＣ）によって実行される。
【０１１６】
実験結果は、後述する量子化パラメータ（２４、２８、３２、３６）を用いたＢｊｏｎｔｅｇａａｒｄ  Ｄｅｌｔａ（ＢＤ）ビットレートの測定基準によって示される。ＢＤビットレートの測定基準は、従来の変換である２次元ＤＣＴを使用することと比較して提案された変換（２次元ＤＣＴと１６セットの１次元ＤＣＴ）によって、コーデックのビットレート削減の平均（パーセンテージの観点から）を示す。図１３Ａおよび１３Ｂは、従来の方法およびシステムを用いる場合と比較して、本願明細書に記載の方法およびシステムが用いられる場合に得られるビットレート削減を示している。図１３Ａは、各々のブロックに選択された変換を示す付加情報（またはサイド情報）が考慮された場合の、ビットレート削減のパーセンテージを表している。図１３Ｂは、付加情報が考慮されない場合の、ビットレート削減のパーセンテージを表している。これらの実験結果例に示されるように、ＱＣＩＦ解像度を有するビデオシーケンスにおいて、最大２５．８％（平均およそ１２％）のビットレート削減が達成される。サイド情報または付加的な情報ビットが考慮されない場合、最終的に達成可能なビットレート削減は４０．３％（平均およそ２１．７％）である。
【０１１７】
さらに、１次元ウェーブレット変換および２次元ウェーブレット変換を用いた実施形態例が、本願明細書に記載の方法およびシステムの効果を例示する。これらの実施形態では、合計１０のＣＩＦ解像度のビデオシーケンスから得られる、予測残差フレームを用いた。各々のシーケンスから特定のフレームを用いて、その動き補償残差（８×８画素ブロックおよび４分の１画素の動き推定を伴う）およびその分解能増大残差（Ｈ.２６４／ＡＶＣの参照ソフトウェアにおける方法を用いたＱＣＩＦ解像度から補間された）を計算した。具体的には、合計２０（＝１０×２）の予測残差フレームが、後述する各々の変換によって圧縮された。２次元の分離可能ＤＷＴ（２Ｄ‐ｓｅｐ‐ＤＷＴ）、２次元方向ＤＷＴ（２Ｄ‐ｄｉｒ‐ＤＷＴ）、ならびに１次元方向ＤＷＴおよび２次元の分離可能ＤＷＴ（１Ｄ‐ｄｉｒ‐ＤＷＴ＋２Ｄ‐ｓｅｐ‐ＤＷＴ）。図１１Ａおよび図１１Ｂに示される予測オプションが用いられた。最高の変換（すなわち予測オプション）は、速度歪みの最適化を有するローカル領域（８×８画素ブロック）において選択された。実験に用いられたリフト・フィルタは、９／７ の双直交ウェーブレットフィルタの１つである。
【０１１８】
圧縮性能は閾値処理の後、ピーク信号対ノイズ比（ＰＳＮＲ）およびゼロ以外の変換係数（ＮＯＮＴＣ）によって評価された。この例では、エントロピー・コード化が実行されなかったので、ビットレートは用いられなかった。各々のローカル領域において、選択された変換を送信するために必要な付加情報もまた、考慮されなかった。２Ｄ‐ｄｉｒ‐ＤＷＴが、各々のブロックに対する８１（９×９）の変換うち１つの変換を必要とする一方で、１Ｄ‐ｄｉｒ‐ＤＷＴ＋２Ｄ‐ｓｅｐ‐ＤＷＴは、各々のブロックに対する２０（＝２×９＋１＋１）の変換のうち１つの変換を必要とする。しかしながら、２Ｄ‐ｓｅｐ‐ＤＷＴは、付加情報の伝達を必要としなくてもよい。概して、付加情報によるビットレートの増加は、方向変換を用いることで達成される利得に勝らない。異なる圧縮レートでの比較結果を要約するために、Ｂｊｏｎｔｅｇａａｒｄ  Ｄｅｌｔａ係数（ＢＤ係数）およびＢｊｏｎｔｅｇａａｒｄ  Ｄｅｌｔａ  ＰＳＮＲ（ＢＤ-ＰＳＮＲ）測定基準が用いられた。これらの測定基準は、それぞれ、係数削減の平均数およびＰＳＮＲ‐ＮＯＮＴＣの２本のカーブの間におけるＰＳＮＲの平均的な改善を測定する。各々のカーブは、４つのＰＳＮＲ‐ＮＯＮＴＣデータポイントから形成されたが、そのデータポイントは３０ｄＢ周辺から４５ｄＢまでの範囲のさまざまなＰＳＮＲレベルを有する。比較のために、２Ｄ‐ｓｅｐ‐ＤＷＴが形成するカーブは、２本のカーブのうちの１本であるとみなされた。もう１本のカーブは、２Ｄ‐ｓｅｐ‐ＤＷＴと比較される変換の組み合わせによって形成される。
【０１１９】
図１２Ａおよび１２Ｂは、実験結果を要約している。図１２Ａは、ＭＣ残差およびＲＥ残差について、２Ｄ‐ｓｅｐ‐ＤＷＴのＢＤ変数削減を上回る、２Ｄ‐ｄｉｒ‐ＤＷＴのＢＤ変数削減を示している。図１２Ｂは、ＭＣ残差およびＲＥ残差について、２Ｄ‐ｓｅｐ‐ＤＷＴのＢＤ変数削減を上回る、１Ｄ‐ｄｉｒ‐ＤＷＴ＋２Ｄ‐ｓｅｐ‐ＤＷＴのＢＤ変数削減を示している。
【０１２０】
図１２Ａおよび図１２Ｂは、検討された種々のビデオファイルに関して、２Ｄ‐ｓｅｐ‐ＤＷＴと一体化した１Ｄ‐ｄｉｒ‐ＤＷＴは、単独の２Ｄ‐ｄｉｒ‐ＤＷＴよりも、予測残差の圧縮を非常に優れて実行することを表している。ＭＣ残差に関するこれらの例において、ＭＣ残差に対して、２Ｄ‐ｄｉｒ‐ＤＷＴは２Ｄ‐ｓｅｐ‐ＤＷＴより平均して５％少ない係数を必要とし、そして、１Ｄ‐ｄｉｒ‐ＤＷＴおよび２Ｄ‐ｓｅｐ‐ＤＷＴの組み合せは、２Ｄ‐ｓｅｐ‐ＤＷＴより２１％少ない係数を必要とする。ＲＥ残差に対しては、２Ｄ‐ｄｉｒ‐ＤＷＴが用いられると平均して２％、１Ｄ‐ｄｉｒ‐ＤＷＴおよび２Ｄ‐ｓｅｐ‐ＤＷＴの組み合わせが用いられると平均して１５％の削減となる。
【０１２１】
これらの例において、ＭＣ残差に対して、２Ｄ‐ｄｉｒ‐ＤＷＴは２Ｄ‐ｓｅｐ‐ＤＷＴのＰＳＮＲを平均で０．１０ｄＢ向上させ、１Ｄ‐ｄｉｒ‐ＤＷＴおよび２Ｄ‐ｓｅｐ‐ＤＷＴの組み合わせは２Ｄ‐ｓｅｐ‐ＤＷＴのＰＳＮＲを平均で０．３３ｄＢ向上させる。ＲＥ残差に対しては、２Ｄ‐ｓｅｐ‐ＤＷＴを用いると、ＰＳＮＲは平均して０．０５ｄＢ向上し、そして１Ｄ‐ｄｉｒ‐ＤＷＴおよび２Ｄ‐ｓｅｐ‐ＤＷＴの組み合せを用いると、ＰＳＮＲは０．５３ｄＢ向上する。
【０１２２】
これらの例は、２Ｄ‐ＤＣＴを１６セットの１Ｄ‐ＤＣＴと一緒に用いると、２Ｄ‐ＤＣＴを単独で用いるときよりも、動き補償の残差のような予測残差の圧縮をより優れて実行できることを示している。同様に、それらは２次元の分離可能なウェーブレット変換に加えて１次元の方向ウェーブレット変換を用いると、２次元の方向ウェーブレット変換だけ、または２次元の分離可能なウェーブレット変換だけを用いるより、予測残余の圧縮により優れた実行を行うことができることを示している。
【０１２３】
上述の圧縮技術は、実行ソフトウェアを用いてコンピュータシステム上で実施することができる。例えば、ソフトウェアは、１つ以上のプログラムされたもしくはプログラム可能なコンピュータシステム（例えば、デスクトップ、分散型クライアント／サーバ・コンピュータシステムなど）上で実行するための１つ以上のコンピュータプログラムにおける処理を決める。その各々のコンピュータシステムは、１つ以上のプロセッサ、１つ以上のデータ記憶システム（例えば、揮発性メモリ、不揮発性メモリ、および／または記憶素子を含む）、１つ以上の入力デバイス（例えば、キーボードおよびマウス）またはポート、および１つ以上の出力デバイス（例えば、モニタ）またはポートを含む。ソフトウェアは、より大きなプログラムの１つ以上のモジュールを形成することができる。
【０１２４】
そのソフトウェアは、汎用または特殊目的のプログラム制御できるコンピュータで読み出し可能な、コンピュータ可読の記憶メディア（例えばＣＤ‐ＲＯＭ）で提供されていてもよいし、またはネットワークのような通信メディア（例えば、伝播信号にコード化された通信メディア）を通じてソフトウェアが実行されるコンピュータへと伝送されてもよい。各々のかかるコンピュータプログラムは、汎用コンピュータもしくは特殊目的をプログラム制御できるコンピュータで読み出し可能な記憶メディア（例えば、固体メモリもしくはメディア、または磁気もしくは光学メディア）に好適に保存またはダウンロードされ、記憶メディアがコンピュータシステムによって読み出される際、ソフトウェア処理を実行するようにコンピュータシステムを構成および動作させる。
【０１２５】
他の実施形態も、特許請求の範囲に含まれるものとする。
【図１】
2012527168.tif 000006
【図２】
2012527168.tif 000007
【図３】
2012527168.tif 000008
【図４】
2012527168.tif 000009
【図５】
2012527168.tif 000010
【図６】
2012527168.tif 000011
【図７Ａ】
2012527168.tif 000012
【図７Ｂ】
2012527168.tif 000013
【図７Ｃ】
2012527168.tif 000014
【図７Ｄ】
2012527168.tif 000015
【図８】
2012527168.tif 000016
【図９】
2012527168.tif 000017
【図１０Ａ】
2012527168.tif 000018
【図１０Ｂ】
2012527168.tif 000019
【図１１Ａ】
2012527168.tif 000020
【図１１Ｂ】
2012527168.tif 000021
【図１２】
2012527168.tif 000022
【図１３】
2012527168.tif 000023
【国際調査報告】
2012527168.tif 000024
2012527168.tif 000025