(57)【要約】      （修正有）【課題】異なるサイズの複数の離散コサイン変換（ＤＣＴ）を適用することが可能である３２点ＤＣＴを実装するための技法を提供する。【解決手段】３２点ＤＣＴ−ＩＩユニットは、データを空間領域から周波数領域に変換するために異なるサイズのこれらのＤＣＴ−ＩＩを実行する。３２点ＤＣＴ−ＩＩユニットは、サイズ１６のＤＣＴ−ＩＩのうちの１つを実行する１６点ＤＣＴ−ＩＩユニットと、サイズ８のＤＣＴ−ＩＩのうちの１つを実行する少なくとも１つの８点ＤＣＴ−ＩＩユニットとを含む。１６点ＤＣＴ−ＩＩユニットは別の８点ＤＣＴ−ＩＩユニットを含む。１６点ＤＣＴ−ＩＩユニットはまた、少なくとも１つの４点ＤＣＴ−ＩＩユニットを備える。これらのＤＣＴ−ＩＩユニットのうちの２つ以上は、コンテンツデータの様々な部分に対して異なるサイズのＤＣＴ−ＩＩを同時に実行する。【選択図】図４Ａ
2018038046.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータを空間領域から周波数領域に変換するための方法であって、前記方法は、
前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備え、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、方法。
【請求項２】
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、請求項１に記載の方法。
【請求項３】
前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項１に記載の方法。
【請求項４】
前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つのスケーリングされた８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、それぞれ、前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数を用いてサイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行することを備える、請求項１に記載の方法。
【請求項５】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項４に記載の方法。
【請求項６】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、前記第１、第２および第３の４点変換ユニットを用いたサイズ４の前記複数のスケーリングされた変換のうちの３つと、前記第２および第３の８点変換ユニットを用いたサイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行することを備える、請求項４に記載の方法。
【請求項７】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項６に記載の方法。
【請求項８】
異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することが、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することと、スケーリングされた変換係数を出力することとを備え、
前記方法が、量子化ユニットを用いて、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用することをさらに備える、請求項１に記載の方法。
【請求項９】
前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用することを備える、請求項８に記載の方法。
【請求項１０】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項９に記載の方法。
【請求項１１】
前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項１に記載の方法。
【請求項１２】
前記コンテンツデータがビデオデータのブロックを備え、
前記方法は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行することと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行することと、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較することであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
比較することと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化することと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、実行するための手段を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための手段は、
前記複数のスケーリングされた変換のうちの第２の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第３の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、手段と
を含む、装置。
【請求項１４】
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、請求項１３に記載の装置。
【請求項１５】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項１３に記載の装置。
【請求項１６】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、請求項１３に記載の装置。
【請求項１７】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項１６に記載の装置。
【請求項１８】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、請求項１６に記載の装置。
【請求項１９】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項１８に記載の装置。
【請求項２０】
前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することと、スケーリングされた変換係数を出力することとを行うためのスケーリングされた手段を備え、
前記方法が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用するための量子化手段をさらに備える、請求項１３に記載の装置。
【請求項２１】
前記スケールファクタを適用するための前記量子化手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用するための量子化手段を備える、請求項２０に記載の装置。
【請求項２２】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項２１に記載の装置。
【請求項２３】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項１３に記載の装置。
【請求項２４】
前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行するための手段と、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行するための手段と、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための前記手段が、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための手段を備える、
比較するための手段と、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化するための手段と、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するための手段と
をさらに備える、請求項１３に記載の装置。
【請求項２５】
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、前記スケーリングされた３２点変換ユニットが、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える装置であって、
前記３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、装置。
【請求項２６】
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、請求項２５に記載の装置。
【請求項２７】
前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項２５に記載の装置。
【請求項２８】
前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つの８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、請求項２５に記載の装置。
【請求項２９】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項２８に記載の装置。
【請求項３０】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、請求項２８に記載の装置。
【請求項３１】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項３０に記載の装置。
【請求項３２】
前記スケーリングされた３２点変換ユニットが、スケーリングされた変換係数を出力し、
前記装置が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用する量子化ユニットをさらに備える、請求項２５に記載の装置。
【請求項３３】
前記量子化ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用する、請求項３２に記載の装置。
【請求項３４】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項３３に記載の装置。
【請求項３５】
前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項２５に記載の装置。
【請求項３６】
前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行する動き推定ユニットと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行し、ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較する動き補償ユニットであって、
前記スケーリングされた３２点変換ユニットが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行する、
動き補償ユニットと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化する量子化ユニットと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するエントロピーコーディングユニットと
をさらに備える、請求項２５に記載の装置。
【請求項３７】
実行されたとき、１つまたは複数のプロセッサに、
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実装することを行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、非一時的コンピュータ可読媒体。
【請求項３８】
変換されたコンテンツデータを周波数領域から空間領域に変換するための方法であって、前記方法は、
前記変換されたコンテンツデータを前記周波数領域から前記空間領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備え、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、方法。
【請求項３９】
前記複数のスケーリングされた変換が、複数のスケーリングされた逆離散コサイン変換（ＩＤＣＴ）に近似する、請求項３８に記載の方法。
【請求項４０】
前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項３８に記載の方法。
【請求項４１】
前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つのスケーリングされた８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、それぞれ、前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数を用いてサイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行することを備える、請求項３８に記載の方法。
【請求項４２】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項４１に記載の方法。
【請求項４３】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、前記第１、第２および第３の４点変換ユニットを用いたサイズ４の前記複数のスケーリングされた変換のうちの３つと、前記第２および第３の８点変換ユニットを用いたサイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行することを備える、請求項４１に記載の方法。
【請求項４４】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項４３に記載の方法。
【請求項４５】
再構成ユニットを用いて、スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用することをさらに備え、
異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することを備える、請求項３８に記載の方法。
【請求項４６】
前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記再構成ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用することを備える、請求項４５に記載の方法。
【請求項４７】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項４６に記載の方法。
【請求項４８】
前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項３８に記載の方法。
【請求項４９】
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記方法は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号することと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行することであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
実行することと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行することとをさらに備える、請求項３８に記載の方法。
【請求項５０】
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、実行するための手段を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、
前記複数のスケーリングされた変換のうちの第２の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第３の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、手段と
を含む、装置。
【請求項５１】
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、請求項５０に記載の装置。
【請求項５２】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項５０に記載の装置。
【請求項５３】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、請求項５０に記載の装置。
【請求項５４】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項５３に記載の装置。
【請求項５５】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、請求項５３に記載の装置。
【請求項５６】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項５５に記載の装置。
【請求項５７】
スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用するための手段をさらに備え、
前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行するためのスケーリングされた手段を備える、請求項５０に記載の装置。
【請求項５８】
前記スケールファクタを適用するための前記手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用するための手段を備える、請求項５７に記載の装置。
【請求項５９】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項５８に記載の方法。
【請求項６０】
前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項５０に記載の装置。
【請求項６１】
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するための手段と、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行するための前記手段が、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための手段を備える、
実行するための手段と、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行するための手段と
をさらに備える、請求項５０に記載の装置。
【請求項６２】
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、前記スケーリングされた３２点変換ユニットが、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える装置であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、装置。
【請求項６３】
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、請求項６２に記載の装置。
【請求項６４】
前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、請求項６２に記載の装置。
【請求項６５】
前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つの８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、請求項６２に記載の装置。
【請求項６６】
前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、請求項６５に記載の装置。
【請求項６７】
前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、請求項６５に記載の装置。
【請求項６８】
前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、請求項６７に記載の装置。
【請求項６９】
スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用する再構成ユニットをさらに備え、
前記スケーリングされた１６点変換ユニットが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する、請求項６２に記載の装置。
【請求項７０】
前記再構成ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用する、請求項６９に記載の装置。
【請求項７１】
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、請求項７０に記載の方法。
【請求項７２】
前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、請求項６２に記載の装置。
【請求項７３】
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するエントロピー復号ユニットと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行する再構成ユニットであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
再構成ユニットと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行する動き補償ユニットと
をさらに備える、請求項６２に記載の装置。
【請求項７４】
実行されたとき、１つまたは複数のプロセッサに、
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実装することを行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、これらの米国仮出願の各々の内容全体が参照により本明細書に組み込まれる、２０１１年１月１０日に出願された米国仮出願第６１／４３１，３４３号、２０１１年１月１４日に出願された米国仮出願第６１／４３３，０１５号、２０１１年１月１７日に出願された米国仮出願第６１／４３３，３５１号、２０１１年２月２５日に出願された米国仮出願第６１／４４６，８３４号および２０１１年７月１日に出願された米国仮出願第６１／５０４，１４６号の利益を主張する。
【０００２】
本開示は、データ圧縮に関し、より詳細には、変換を含むデータ圧縮に関する。
【背景技術】
【０００３】
データ圧縮は、データ記憶空間、送信帯域幅、またはその両方の消費を低減するために、様々な適用例において広く使用されている。データ圧縮の例示的な適用例には、デジタルビデオ、画像、音声、およびオーディオコーディングなど、可視または可聴メディアデータコーディングがある。たとえば、デジタルビデオコーディングは、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスにおいて使用されている。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、ＭＰＥＧ−２規格、ＭＰＥＧ−４規格、Ｈ．２６４／ＭＰＥＧ−４  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）規格、または（新生のＨ．２６５規格と呼ばれることがある）新生のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格などの規格に従ってビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法では、ビデオデータに固有の冗長性を低減または除去するために空間的予測、動き推定および動き補償を実行し得る。特に、イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングでは、ビデオエンコーダは、２つ以上の隣接するフレーム間の（Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格など、様々なビデオコーディング規格においてブロックと呼ばれることがある）マッチングユニットの移動を追跡するために動き推定を実行する。動き推定は、１つまたは複数の参照フレーム中の対応するユニットに対する現在フレームのユニットの変位を示す動きベクトルを生成する。動き補償は、その動きベクトルを使用して、参照フレームから予測データを生成する。動き補償の後、元のユニットから予測データを減算することによって残差データが形成される。
【０００５】
ビデオエンコーダは、ビデオコーディングプロセスによって生成された残差データのビットレートをさらに低減するために、変換を適用し、その後、量子化およびロスレス統計的コーディングプロセスを適用する。いくつかの事例では、適用される変換は離散コサイン変換（ＤＣＴ）を備える。一般に、ＤＣＴは、（しばしば「１６×１６ユニット」と呼ばれる）高さ１６ピクセル×幅１６ピクセルであるコーディングユニットなど、サイズが２のべき乗であるコーディングユニットに適用される。したがって、ＤＣＴ係数の１６点アレイを生成するために、これらのＤＣＴが１６×１６ユニットに適用されるという点で、これらのＤＣＴは１６点ＤＣＴと呼ばれることがある。１６点ＤＣＴを残差データに適用することから生成されたＤＣＴ係数の１６点アレイは、次いで、量子化プロセスおよび（一般に「エントロピーコーディング」プロセスとして知られる）ロスレス統計的コーディングプロセスを受けて、ビットストリームを生成する。統計的コーディングプロセスの例には、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）またはコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）がある。ビデオデコーダは、符号化ビットストリームを受信し、ロスレス復号を実行してＤＣＴ係数を復元し、ビデオデコーダは、次いで、１つまたは複数の１６点逆ＤＣＴ（ＩＤＣＴ）の適用を通してそのＤＣＴ係数を空間領域に逆変換して、ユニットの各々について残差データを形成する。残差データと動き情報とを使用して、ビデオデコーダは符号化ビデオを再構成する。
【発明の概要】
【０００６】
概して、本開示は、３２点離散コサイン変換（ＤＣＴ）だけでなく、異なるサイズの複数の異なるＤＣＴを実行することが可能な３２点ＤＣＴの実装を使用して、メディアデータなどのデータをコーディングするための技法を対象とする。一例として、本開示の技法に従って構築された３２点ＤＣＴ実装は、サイズ３２のＤＣＴを実行し、サイズ１６のＤＣＴを実行するスケーリングされた１６点ＤＣＴ実装と、サイズ８のＤＣＴを実行する少なくとも１つのＤＣＴ実装とを含む。別の例では、本開示の技法に従って構築された３２点ＤＣＴ実装は、サイズ３２の線形ＤＣＴを実行し、サイズ１６のＤＣＴを実行する１６点ＤＣＴを含み、この１６点ＤＣＴは、互いに同時に動作し得る、サイズ８の線形ＤＣＴをそれ自体で実行する少なくとも１つの８点ＤＣＴ実装と、サイズ４の線形ＤＣＴをそれぞれ実行する少なくとも２つの４点ＤＣＴ実装とをさらに実行する。さらに、８点ＤＣＴ実装は、少なくとも２つの４点ＤＣＴ実装によって実行される４点ＤＣＴと同時に動作し得る、サイズ４の別の線形ＤＣＴを実行するさらに別の４点ＤＣＴ実装を含み得る。この３２点ＤＣＴはまた、サイズ８の２つのＤＣＴを同時に実行することが可能である２つの８点ＤＣＴを含み得る。したがって、本開示の技法に従って構築された３２点ＤＣＴ実装は、異なるサイズのいくつかの異なるＤＣＴ実装を組み込み得、それにより、別々に実装されたときにこれらのＤＣＴの各々によって従来消費されていたチップ面積と比較して、消費するチップ面積が著しく小さくなり得る。
【０００７】
これらのＤＣＴは、最初に、水平軸などに沿った方向など、ユニットに沿った１つの方向においてこれらの線形ＤＣＴのうちの１つを適用することによって、任意の所与のサイズのビデオユニットに適用され、次いで、垂直軸に沿った方向など、ユニットに沿った他の方向において適用され得る。このようにしてこれらのＤＣＴを適用することによって、異なるサイズのＤＣＴが適用され得る。たとえば、基礎をなすビデオブロックのサイズに応じて３２×１６または１６×３２ＤＣＴを効果的に適用するために、３２点ＤＣＴが一方向において適用され得、１６点ＤＣＴが別の方向において適用され得る。このようにして、ＤＣＴは、サイズ３２×３２、３２×１６、１６×３２、１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４のＤＣＴ、または上記の線形サイズＤＣＴの任意の他の組合せを実行するために適用され得る。
【０００８】
一態様では、コンテンツデータを空間領域から周波数領域に変換するための方法が提供され、本方法は、コンテンツデータを空間領域から周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、スケーリングされた３２点変換ユニットが、サイズ３２の複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備える。スケーリングされた３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【０００９】
別の態様では、装置は、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの複数のスケーリングされた変換を実行するための手段が、複数のスケーリングされた変換のうちの第１の変換を実行し、複数のスケーリングされた変換のうちの第１の変換が、３２の変換サイズを定義する、実行するための手段を備える。異なるサイズの複数のスケーリングされた変換を実行するための手段は、複数のスケーリングされた変換のうちの第２の変換を実行するための複数のスケーリングされた変換を実行するための手段の偶数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、手段と、複数のスケーリングされた変換のうちの第３の変換を実行するための複数のスケーリングされた変換を実行するための手段の奇数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、手段とを含む。
【００１０】
別の態様では、装置は、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、スケーリングされた３２点変換ユニットが、複数のスケーリングされた変換のうちの第１の変換を実行し、複数のスケーリングされた変換のうちの第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える。３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【００１１】
別の態様では、実行されたとき、１つまたは複数のプロセッサに、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することを行わせる命令を備える非一時的コンピュータ可読媒体が提供され、スケーリングされた３２点変換ユニットが、サイズ３２の複数のスケーリングされた変換のうちの第１の変換を実行する。スケーリングされた３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【００１２】
別の態様では、変換されたコンテンツデータを周波数領域から空間領域に変換するための方法が提供され、本方法は、変換されたコンテンツデータを周波数領域から空間領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、スケーリングされた３２点変換ユニットが、サイズ３２の複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備える。スケーリングされた３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【００１３】
別の態様では、装置は、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの複数のスケーリングされた変換を実行するための手段が、複数のスケーリングされた変換のうちの第１の変換を実行し、複数のスケーリングされた変換のうちの第１の変換が、３２の変換サイズを定義する、実行するための手段を備える。異なるサイズの複数のスケーリングされた変換を実行するための手段は、複数のスケーリングされた変換のうちの第２の変換を実行するための複数のスケーリングされた変換を実行するための手段の偶数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、手段と、複数のスケーリングされた変換のうちの第３の変換を実行するための複数のスケーリングされた変換を実行するための手段の奇数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、手段とを含む。
【００１４】
別の態様では、装置は、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、スケーリングされた３２点変換ユニットが、複数のスケーリングされた変換のうちの第１の変換を実行し、複数のスケーリングされた変換のうちの第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える。スケーリングされた３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【００１５】
別の態様では、非一時的コンピュータ可読媒体は、実行されたとき、１つまたは複数のプロセッサに、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することを行わせる命令を備え、スケーリングされた３２点変換ユニットが、サイズ３２の複数のスケーリングされた変換のうちの第１の変換を実行する。スケーリングされた３２点変換ユニットは、複数のスケーリングされた変換のうちの第２の変換を実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、複数のスケーリングされた変換のうちの第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、複数のスケーリングされた変換のうちの第３の変換が、８の変換サイズを定義する、少なくとも１つの８点変換ユニットとを含む。
【００１６】
本技法の１つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１７】
【図１】本開示の技法を実装し得るビデオ符号化および復号システムを示すブロック図。
【図２】図１のビデオエンコーダをより詳細に示すブロック図。
【図３】図１のビデオデコーダをより詳細に示すブロック図。
【図４Ａ】図２の３２点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｂ】図２の３２点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｃ】図２の３２点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｄ】図２の３２点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｅ】図２の３２点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図５】本開示の技法に従って構築された３２点ＤＣＴ実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。
【図６】本開示の技法に従って構成された３２点ＤＣＴ−ＩＩＩ実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。
【図７Ａ】図２に示す３２点ＤＣＴ−ＩＩユニットの別の例示的な実装の様々な態様を示す図。
【図７Ｂ】図２に示す３２点ＤＣＴ−ＩＩユニットの別の例示的な実装の様々な態様を示す図。
【図７Ｃ】図２に示す３２点ＤＣＴ−ＩＩユニットの別の例示的な実装の様々な態様を示す図。
【図７Ｄ】図２に示す３２点ＤＣＴ−ＩＩユニットの別の例示的な実装の様々な態様を示す図。
【図７Ｅ】図２に示す３２点ＤＣＴ−ＩＩユニットの別の例示的な実装の様々な態様を示す図。
【発明を実施するための形態】
【００１８】
概して、本開示は、異なるサイズのいくつかの異なる離散コサイン変換（ＤＣＴ）を実行することが可能ないくつかの異なるＤＣＴ実装を含む３２点ＤＣＴ実装を使用してデータをコーディングするための技法を対象とする。本技法は、デジタルビデオデータ、画像データ、音声データ、および／またはオーディオデータなど、可視メディアデータまたは可聴メディアデータを含む様々なデータを圧縮し、それによって、そのようなデータを表すそのような電気信号を、それらの電気信号のより効率的な処理、送信またはアーカイブのために圧縮信号に変換するために適用され得る。したがって、本開示の技法に従って構築された３２点ＤＣＴ実装は、複数のサイズのＤＣＴを実行することが可能である。複数のサイズのＤＣＴを実行することによって、３２点ＤＣＴ実装は、同様のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくす。したがって、本開示の技法に従って構築された３２点ＤＣＴ実装は、別個の３２点、１６点、８点および４点ＤＣＴ実装の総サイズと比較して３２点実装のサイズを大幅に増加させることなしに、１６、８および４など、異なるサイズのＤＣＴ実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、説明する技法は、いわゆる「ボードスペース」の消費の低減を促進し得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００１９】
上記で示したサイズ、すなわち、３２、１６、８および４は、個別のデータ単位に関して表される。例示のために、ビデオデータは、特にビデオ圧縮に関しては、しばしば、（ＨＥＶＣ規格に記載されたコーディングユニット（ＣＵ：coding unit）などの）ユニットに関して記述される。ユニットは、概して、ビデオフレームの任意のサイズの部分を指し、ビデオフレームは、一連のピクチャまたは画像中のピクチャまたは画像を指す。各ユニットは、一般に、色成分、たとえば、赤、青および緑（いわゆる「色度」または「クロマ」成分）、あるいはルミナンス成分（いわゆる「ルーマ」成分）のいずれかを示す複数の個別のピクセルデータを備える。ピクセルデータの各セットは、ユニット中に単一のピクセルを備え、コーディングユニットに関する個別のデータ単位と考えられ得る。したがって、たとえば、８×８コーディングユニットは、ピクセルデータの８つの列を備え、各列中にピクセルデータの８つの個別のセットがある。色またはルミナンス値を指定するために、各ピクセルにｎビット値が割り当てられ得る。
【００２０】
ＤＣＴは、データがオーディオ、音声、画像またはビデオデータのいずれであるかにかかわらず、通常、ＤＣＴが処理することが可能であるデータのブロックのサイズに関して記述される。たとえば、ＤＣＴが３２要素データアレイを処理することができる場合、そのＤＣＴは線形３２点ＤＣＴと呼ばれることがある。異なるサイズのコーディングユニットに対して、３２×３２、３２×１６、１６×３２、１６×８、８×１６、８×８、８×４、４×８、４×４または任意の他のサイズの組合せを効果的に実行するために、同じまたは異なるサイズの線形ＤＣＴが適用され得る。その上、ＤＣＴは特定のタイプとして示され得る。８つの異なるタイプのＤＣＴのうちの最も一般的に採用されるタイプのＤＣＴは、「ＤＣＴ−ＩＩ」と示され得る、タイプＩＩのＤＣＴである。しばしば、概括的にＤＣＴに言及するとき、そのような言及は、タイプＩＩのＤＣＴまたはＤＣＴ−ＩＩを指す。ＤＣＴ−ＩＩの逆元（inverse）は、同様に「ＤＣＴ−ＩＩＩ」と示され得るタイプＩＩＩのＤＣＴと呼ばれるか、または、ＤＣＴがＤＣＴ−ＩＩを指すという共通の理解があれば、「ＩＤＣＴ」と呼ばれ、「ＩＤＣＴ」中の「Ｉ」は逆元を示す。以下のＤＣＴへの言及はこの表記法に準拠し、ＤＣＴへの概括的言及は、別段に規定されていない限りＤＣＴ−ＩＩを指す。しかしながら、混乱を回避するために、ＤＣＴ−ＩＩを含むＤＣＴは、以下で、対応するタイプ（ＩＩ、ＩＩＩなど）を示した状態で言及される。
【００２１】
本開示で説明する技法は、データの圧縮および／または復元を可能にするために、３２点ＤＣＴ−ＩＩおよび／または３２点ＤＣＴ−ＩＩＩのうちの１つまたは複数の実装を採用するエンコーダおよび／またはデコーダにおいて実装され得る。この場合も、これらの３２点ＤＣＴ−ＩＩ実装を適用することによって達成される圧縮および復元は、物理的コンピューティングハードウェア、物理的伝送媒体（たとえば、銅、光ファイバー、ワイヤレス、または他のメディア）、および／またはストレージハードウェア（たとえば、磁気または光ディスクまたはテープ、あるいは様々なソリッドステート媒体のいずれか）を使用して、データを表す電気信号がより効率的に処理、送信、および／または記憶され得るように、それらの信号の物理的変換を可能にする。実装は、ハードウェアのみで構成され得るか、またはハードウェアとソフトウェアの組合せで構成され得る。
【００２２】
３２点ＤＣＴ−ＩＩの実装はスケーリングされ得、「スケーリングされた」という用語は、スケーリングされたＤＣＴ係数を生成するＤＣＴ実装を指す。スケーリングされたＤＣＴ係数に、対応するスケールファクタを乗算すると、いわゆる「完全」ＤＣＴ係数が生成される。スケーリングされたＤＣＴ実装は、実装からいくつかのファクタが除去されたＤＣＴ実装を表す。概して、これらのファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた１６点ＤＣＴ実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた３２点ＤＣＴ実装によって出力されたスケーリングされたＤＣＴ係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全ＤＣＴ実装は、量子化ユニットなど、ファクタを適用する別のモジュールまたはユニットと組み合わせたスケーリングされたＤＣＴ実装よりも概して複雑である。したがって、スケーリングされたＤＣＴ実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたＤＣＴ実装に関して説明するが、本技法は、スケーリングされていないＤＣＴ実装またはいわゆる「完全」ＤＣＴ実装に適用され得る。
【００２３】
例示のために、装置は、３２点ＤＣＴ変換ユニットの形態で本開示の技法に従って構築された３２点ＤＣＴ実装を含み得る。３２点ＤＣＴ変換ユニットは、コンテンツデータを空間領域から周波数領域に変換するために、異なるサイズのいくつかのスケーリングされたＤＣＴ変換を実行し得る。スケーリングされた３２点ＤＣＴユニットは、サイズ１６のいくつかのスケーリングされたＤＣＴ変換のうちの第１のＤＣＴ変換を実行する少なくとも１つのスケーリングされた１６点ＤＣＴユニットを含み得る。１６点ＤＣＴユニットはまた、サイズ８のいくつかのスケーリングされたＤＣＴ変換のうちの少なくとも第２の変換を実行する、少なくとも１つのスケーリングされた８点変換ユニット、ならびに、サイズ４のいくつかのスケーリングされたＤＣＴ変換のうちの少なくとも第３の変換を実行する、少なくとも１つのスケーリングされた４点変換ユニットを含み得る。スケーリングされた３２点ＤＣＴユニットはまた、サイズ８のいくつかのスケーリングされたＤＣＴ変換のうちの少なくとも第４の変換を実行する、少なくとも１つの８点変換ユニットを含み得る。
【００２４】
この点において、本開示の技法に従って構築された３２点ＤＣＴ実装は、少なくともいくつかの態様では、複数のサイズのＤＣＴを実行し、それによって、複数のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくすことが可能であり得る。したがって、本技法に従って構築された３２点ＤＣＴ実装は、３２点実装のサイズを大幅に増加させることなしに、１６、８および４など、異なるサイズのＤＣＴ実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、本開示の技法は、いわゆる「ボードスペース」の消費の低減を促進する。別個の３２点、１６点、８点および４点ＤＣＴ実装の総サイズと比較して、本開示の３２点ＤＣＴ−ＩＩ実装は、消費される物理的ボードスペースに関して大幅に小さくなり得、「ボードスペース」という用語は、異なる構成要素間の相互接続を与えるシリコンまたは他の物理的ボード上で消費されるスペースの量を指す。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００２５】
図１は、本開示の技法を実装し得るビデオ符号化および復号システム１０を示すブロック図である。図１の例に示すように、システム１０は、宛先デバイス１４による復号のために符号化ビデオを生成するソースデバイス１２を含む。ソースデバイス１２は、通信チャネル１６を介して宛先デバイス１４に符号化ビデオを送信するか、あるいは、必要に応じて符号化ビデオが宛先デバイス１４によってアクセスされ得るように記憶媒体３４またはファイルサーバ３６に符号化ビデオを記憶し得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、（セルラー電話またはハンドセットおよびいわゆるスマートフォンを含む）電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。
【００２６】
多くの場合、そのようなデバイスはワイヤレス通信のために装備され得る。したがって、通信チャネル１６はワイヤレスチャネルを備え得る。代替的に、通信チャネル１６は、ワイヤードチャネル、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、ワイヤレスチャネルおよびワイヤードチャネルまたは他のタイプの通信チャネルの組合せ、あるいは符号化ビデオデータの送信に好適な通信チャネルの組合せを備え得る。いくつかの例では、通信チャネル１６は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、したがって、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２７】
図１の例にさらに示すように、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２（「モデム２２」）と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイスなどのソースを含み得る。ビデオキャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされたビデオを含んでいているビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックシステムのうちの１つまたは複数を含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、ワイヤレスアプリケーションまたは設定に限定されず、ビデオ符号化および／または復号機能を含む非ワイヤレスデバイスに適用され得る。ソースデバイス１２および宛先デバイス１６は、したがって、本明細書で説明する技法をサポートすることができるコーディングデバイスの例にすぎない。
【００２８】
ビデオエンコーダ２０は、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオを符号化し得る。符号化されると、ビデオエンコーダ２０が、この符号化されたビデオをモデム２２に出力し得る。モデム２２が、次いで、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオを変調し得、その後、送信機２４が、変調された符号化ビデオデータを宛先デバイス１４に送信し得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２９】
ビデオエンコーダ２０によって符号化される、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオはまた、後の取出し、復号および消費のために、記憶媒体３４またはファイルサーバ３６上に記憶され得る。記憶媒体３４は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化されたビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。宛先デバイス１４は、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオにアクセスし、この符号化ビデオを復号して、復号されたビデオを生成し、この復号されたビデオを再生し得る。
【００３０】
ファイルサーバ３６は、符号化ビデオを記憶し、その符号化ビデオを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、（たとえば、ウェブサイト用の）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶し、それを宛先デバイスに送信することが可能な他のタイプのデバイスがある。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続に従ってファイルサーバ３６にアクセスし得る。この接続は、ワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続またはワイヤレスセルラーデータ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、ワイヤードチャネルとワイヤレスチャネルの両方またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な他のタイプの通信チャネルの組合せを含み得る。
【００３１】
宛先デバイス１４は、図１の例では、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス２９とを含む。宛先デバイス１４の受信機２６は、チャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のために復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、関連する符号化ビデオデータを復号する際にビデオデコーダ３０が使用するためにビデオエンコーダ２０によって生成される様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００３２】
宛先デバイス１４のディスプレイデバイス２９は、閲覧者による消費のためにビデオデータを提示することが可能な任意のタイプのディスプレイを表す。宛先デバイス１４に組み込まれるように示されているが、ディスプレイデバイス２９は、宛先デバイス１４に、またはその外部に組み込まれ得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス２９は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３３】
本開示は、概して、ビデオデコーダ３０など、別のデバイスにシンタックス情報を「シグナリング」するビデオエンコーダ２０に言及し得る。ただし、ビデオエンコーダ２０は、シンタックス要素を、ビデオデータの様々な符号化された部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ２０は、いくつかのシンタックス要素を、ビデオデータの様々な符号化された部分のヘッダに記憶することによってデータを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され、復号されるより前に、符号化され、記憶され（たとえば、記憶媒体３４またはファイルサーバ３６に記憶され）得る。したがって、「シグナリング」という用語は、通信がリアルタイムまたはほぼリアルタイムで行われるか、あるいは、符号化時に媒体にシンタックス要素を記憶し、次いで、この媒体に記憶された後の任意の時間にそのシンタックス要素が復号デバイスによって取り出され得るときなどに行われ得る、ある時間期間にわたって行われるかにかかわらず、概して、圧縮ビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指し得る。
【００３４】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ
１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ
Ｈ．２６４規格など、他のプロプライエタリまたは業界標準、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３５】
ＨＭでは、ビデオデータのブロックをコーディングユニット（ＣＵ）と呼ぶ。概して、ＣＵは、ＣＵが、Ｈ．２６４のマクロブロックに関連するサイズ差異を有しないことを除いて、Ｈ．２６４に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニット（ＬＣＵ：largest coding unit）またはＬＣＵのサブＣＵを指すことがある。たとえば、ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるＬＣＵを定義し得る。ＬＣＵはサブＣＵに分割され得、各サブＣＵはサブＣＵに分割され得る。ビットストリームのシンタックスデータは、最大ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。
【００３６】
ＬＣＵは階層４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、そのＣＵに対応するノードは、サブＣＵに対応する４つのノードの各々への参照を含む。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００３７】
分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。動きベクトルは、概して、１つまたは複数の参照フレーム中のコロケートＣＵを識別し、「参照フレーム」という用語は、ＰＵがその中に配置されたフレームの前または後に時間的に生じるフレームを指す。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがそれにポイントする参照フレーム、識別された参照フレームが現在フレームの前にあるか後にあるかを識別する予測方向、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
【００３８】
１つまたは複数の動きベクトルを定義する１つまたは複数のＰＵを有することに加えて、ＣＵは、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。本開示ではまた、ＣＵ、ＰＵ、および／またはＴＵのいずれか１つまたは組合せを指すために「ブロック」という用語を使用する。
【００３９】
概して、符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダ２０は、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロック中のピクセル値を、前にコーディングされたピクチャのデータに対して予測することを伴う。
【００４０】
イントラ予測またはインター予測の後に、ビデオエンコーダ２０はブロックの残差ピクセル値を計算し得る。残差値は、概して、ブロックの予測ピクセル値データと、ブロックの真のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの１つまたは複数のブロックに関連し得る。
【００４１】
ブロックの残差値をさらに圧縮するために、残差値は、（「エネルギー」とも呼ばれる）できるだけ多くのデータをできるだけ少数の係数に圧縮する変換係数のセットに変換され得る。変換技法は、離散コサイン変換（ＤＣＴ）プロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、あるいは他のタイプの変換を備え得る。この変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の２次元行列に対応する。言い換えれば、元のブロック中のピクセルとちょうど同数の変換係数がある。ただし、変換により、変換係数の多くは、０に等しい値を有し得る。
【００４２】
ビデオエンコーダ２０は、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。より詳細には、量子化は、ＬＣＵレベルで定義され得る量子化パラメータ（ＱＰ：quantization parameter）に従って適用され得る。したがって、ＬＣＵ内のＣＵの異なるＰＵに関連するＴＵ中のすべての変換係数に同じ量子化レベルが適用され得る。ただし、ＱＰ自体をシグナリングするのではなく、ＱＰの変化（すなわち、Δ）がＬＣＵとともにシグナリングされ得る。ΔＱＰは、前に通信されたＬＣＵのＱＰなど、何らかの参照ＱＰに対するＬＣＵの量子化パラメータの変化を定義する。
【００４３】
量子化の後に、ビデオエンコーダ２０は、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。ビデオエンコーダ２０は、次いで、得られたアレイを符号化してデータをなお一層圧縮するために、（誤記により「エントロピー符号化」と通常呼ばれる）統計的ロスレス符号化を実行し得る。概して、エントロピーコーディングは、一連の量子化変換係数および／または他のシンタックス情報を一括して圧縮する１つまたは複数のプロセスを備える。たとえば、ΔＱＰ、予測ベクトル、コーディングモード、フィルタ、オフセット、または他の情報など、シンタックス要素はまた、エントロピーコード化ビットストリーム中に含まれ得る。走査された係数は、次いで、たとえば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または他の統計的ロスレスコーディングプロセスによって、任意のシンタックス情報とともにエントロピーコーディングされる。
【００４４】
上述のように、図１の例に示すシステム１０のビデオエンコーダ２０および／またはビデオデコーダ３０は、それぞれ３２点ＤＣＴ−ＩＩの実装とその逆元（たとえば、３２点ＤＣＴ−ＩＩＩ）とを含むように構成され得、３２点ＤＣＴ−ＩＩ実装は、本開示で説明する技法に従って構築される。ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分では１６×１６、８×８、４×４、およびクロマ成分では８×８など、様々なブロックサイズのイントラ予測をサポートするが、コーディング効率を改善するためのこの規格の改訂が現在進行中である。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって提案された１つの改訂された規格は、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）と呼ばれることがある。いくつかの例では、本開示の技法に従って構築されたタイプＩＩの３２点ＤＣＴ（「ＤＣＴ−ＩＩ」）実装は、コーディング効率を維持しながら、また実装サイズを低減し、それによって、消費される物理的ボードスペースを小さくし、電力効率を促進し得る。したがって、ＨＥＶＣおよび他の発展中の規格または仕様は、本開示で説明する技法に準拠するＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩ実装を考慮し得る。
【００４５】
本開示で説明する技法によれば、３２点ＤＣＴ−ＩＩの実装は、異なるサイズの複数のＤＣＴ−ＩＩを行う。ビデオエンコーダ２０は、この３２点ＤＣＴ−ＩＩ実装を表す（説明を簡単にするために図１には示されていない）３２点ＤＣＴ−ＩＩユニットを含み得る。３２点ＤＣＴ−ＩＩユニットは、概して、コンテンツデータを空間領域から周波数領域に変換するために、異なるサイズの複数またはいくつかのスケーリングされたＤＣＴ変換を実行する。一例として、３２点ＤＣＴ−ＩＩユニットは、スケーリングされた変換のうちの１つを実行する３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットを含み得、複数のスケーリングされた変換のうちの第２の変換は、１６の変換サイズを定義する。３２点ＤＣＴ−ＩＩユニットはまた、複数のスケーリングされた変換のうちの第３の変換を実行する３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットを含み得、スケーリングされた変換のうちのこの変換は、８の変換サイズを定義する。
【００４６】
この点において、本開示の技法に従って構築された単一の３２点ＤＣＴ−ＩＩ実装は、少なくともいくつかの態様では、複数のサイズのＤＣＴを実行し、それによって、同様のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくすことが可能である。したがって、本技法に従って構築された３２点ＤＣＴ実装は、３２点実装のサイズを大幅に増加させることなしに、１６および８など、異なるサイズのＤＣＴ実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、本開示の技法は、シリコンボード上で消費される物理的スペースの面積を指すいわゆる「ボードスペース」の消費の低減を促進し得る。別個の３２点、１６点および８点ＤＣＴ実装の総サイズと比較して、３２点ＤＣＴ−ＩＩ実装は、消費される物理的ボードスペースに関して大幅に小さくなり得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００４７】
本開示の技法に従って構築された３２点ＤＣＴ−ＩＩの実装はスケーリングされ得、「スケーリングされた」という用語は、いわゆる「完全」ＤＣＴ係数でない、スケーリングされたＤＣＴ係数を生成するＤＣＴ実装を指す。スケーリングされたＤＣＴ実装は、実装からいくつかのファクタが除去されたＤＣＴ実装を表す。概して、これらの除去されたファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた３２点ＤＣＴ実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた３２点ＤＣＴ実装によって出力されたスケーリングされたＤＣＴ係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全ＤＣＴ実装は、量子化ユニットなど、ファクタを適用する別のユニットと組み合わせたスケーリングされたＤＣＴ実装よりも概して複雑である。したがって、スケーリングされたＤＣＴ実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたＤＣＴ実装に関して説明するが、本技法は、スケーリングされていないＤＣＴ実装またはいわゆる「完全」ＤＣＴ実装に適用され得る。
【００４８】
図２は、図１のビデオエンコーダ２０をより詳細に示すブロック図である。ビデオエンコーダ２０は、少なくとも部分的に、集積回路デバイスと総称されることがある、１つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオエンコーダ２０は、ワイヤレス通信デバイスハンドセットまたはブロードキャストサーバの一部を形成し得る。ビデオエンコーダ２０は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオエンコーダ２０は、隣接フレーム間のマッチングコーディングユニットの移動を追跡するために動き推定を実行する。
【００４９】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在コーディングユニット３１を受信する。図２の例では、ビデオエンコーダ２０は、動き推定ユニット３２と、メモリ３４と、動き補償ユニット３６と、変換ユニット３８と、量子化ユニット４０と、逆量子化ユニット４２と、逆変換ユニット４４と、エントロピーコーディングユニット４６とを含む。ブロッキングアーティファクトを除去するためにブロックをフィルタ処理するために、ループ内またはポストループデブロッキングフィルタ（図示せず）が適用され得る。ビデオエンコーダ２０はまた、加算器４８と加算器５０とを含む。図２は、コーディングユニットのインターコーディングのためのビデオエンコーダ２０の時間的予測構成要素を示す。説明しやすいように図２には示されていないが、ビデオエンコーダ２０は、いくつかのコーディングユニットのイントラコーディングのための空間的予測構成要素をも含み得る。
【００５０】
動き推定ユニット３２は、上述のように、ＰＵに記憶される１つまたは複数の動きベクトルを生成するために、コーディングユニット３１を１つまたは複数の隣接ビデオフレーム中のＣＵと比較する。以前に符号化されたブロックから再構成されたコーディングユニットを記憶するために任意のタイプのメモリまたはデータ記憶デバイスを備え得るメモリ３４から、１つまたは複数の隣接フレームが検索され得る。動き推定が、可変サイズ、たとえば、３２×３２、３２×１６、１６×３２、１６×１６、１６×８、８×１６、８×８、またはより小さいＣＵサイズのＣＵに対して実行され得る。動き推定ユニット３２は、たとえば、レートひずみモデルに基づいて、現在コーディングユニット３１に最もぴったりマッチングする隣接フレーム中の１つまたは複数のＣＵを識別し、隣接フレーム中のＣＵと現在コーディングユニット３１との間の変位を判断する。これに基づいて、動き推定ユニット３２は、現在コーディングユニット３１と、現在コーディングユニット３１をコーディングするために使用される参照フレームからの１つまたは複数のマッチングＣＵとの間の変位の大きさおよび軌道を示す、１つまたは複数の動きベクトル（ＭＶ：motion vector）を生成する。１つまたは複数のマッチングＣＵは、コーディングユニット３１に関連するＰＵに記憶された動きベクトルを判断するための参照として働くことになる。動き推定ユニット３２は、図２の例に示すように、これらのＰＵをエントロピーコーディングユニット４６に出力し得る。
【００５１】
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ２０は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。分数ピクセル値をもつ動きベクトルが使用されるとき、動き補償ユニット３６中で補間演算が実行される。動き推定ユニット３２は、レートひずみモデルなど、いくつかの基準を使用してＣＵを識別するために、最良のコーディングユニットパーティションを判断し、１つまたは複数の動きベクトルを生成する。たとえば、双方向予測の場合、２つ以上の動きベクトルがあり得る。得られたＣＵおよび動きベクトルを使用して、動き補償ユニット３６は予測ビデオデータを形成する。
【００５２】
ビデオエンコーダ２０は、加算器４８において、現在コーディングユニット３１に記憶された元のビデオデータから、動き補償ユニット３６によって生成された予測ビデオデータを減算することによって残差データを判断する。変換ユニット３８は、残差変換ブロック係数を生成する変換を適用する。図２に示すように、変換ユニット３８は、本開示で説明する技法に従って構築された３２点ＤＣＴ−ＩＩを実装する３２点ＤＣＴ−ＩＩユニット５２を含む。３２点ＤＣＴ−ＩＩユニット５２は、いくつかの事例では、本開示で説明するように、３２点ＤＣＴ−ＩＩ、１６点ＤＣＴ−ＩＩ、８点ＤＣＴ−ＩＩおよび４点ＤＣＴ−ＩＩのうちの２つ以上を実行することが可能な３２点ＤＣＴ−ＩＩを実装するソフトウェアを実行するハードウェアユニット（ソフトウェアコードまたは命令を実行するデジタル信号プロセッサまたはＤＳＰなど）を表す。３２点ＤＣＴ−ＩＩユニット５２は、本技法を実行する集積回路、および／または本開示で説明する技法を実装するための命令（もしくはコンピュータプログラム製品の形態のソフトウェア）を実行する１つまたは複数のプロセッサを備え得る。３２点ＤＣＴ−ＩＩユニット５２は、サイズ３２、１６、８および４のこれらのＤＣＴ−ＩＩのうちの１つまたは複数を残差データに適用して、対応するサイズ１６、８および／または４の残差変換係数のブロックを生成する。３２点ＤＣＴ−ＩＩユニット５２は、概して、残差ピクセルデータとして表される空間領域から、ＤＣＴ係数として表される周波数領域に残差データを変換する。変換係数は、少なくとも１つのＤＣ係数と１つまたは複数のＡＣ係数とを含むＤＣＴ係数を備え得る。
【００５３】
（ＨＥＶＣのための様々なワーキングドラフトのうちの１つを指し得る）新生のＨＥＶＣ規格では、変換は、前のビデオコーディング規格Ｈ．２６４における最大ブロックサイズであった１６×１６よりも大きいブロックサイズに適用され得る。その上、ビデオコーディングプロセスのこの段階において、ＣＵのサイズとは異なるサイズの変換が、ＣＵに記憶された残差データに適用され得る。残差ビデオデータまたはブロックのサイズとは異なるサイズの変換が適用され得ると仮定すれば、変換ユニット３８は、残差ビデオデータに適用される様々な変換に関する情報を記憶する上述の変換ユニット（ＴＵ）を生成し得る。変換ユニット３８は、図２の例に示すように、ＴＵをエントロピーコーディングユニット４６に出力し得る。
【００５４】
量子化ユニット４０は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する（たとえば、丸める）。上述のように、量子化ユニット４０は、ファクタ化中に除去された内部ファクタを組み込むことによって、スケーリングされた３２点ＤＣＴ−ＩＩユニット５２のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット４０に組み込むことは量子化ユニット４０の実装複雑さを増加させ得ない。この点において、スケーリングされた３２点ＤＣＴ−ＩＩユニット５２からファクタを除去することは、量子化ユニット４０の実装複雑さを増加させることなしにＤＣＴ−ＩＩユニット５２の実装複雑さを減少させ、その結果、ビデオエンコーダ２０に関する実装複雑さが純減する。
【００５５】
エントロピーコーディングユニット４６は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット４６は、場合によってはエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行し得る。エントロピーコーディングユニット４６は、量子化ＤＣＴ係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブック（たとえば、ＣＡＶＬＣまたはＣＡＢＡＣ）を選択する。このコードブックを使用して、エントロピーコーディングユニット４６は、量子化ＤＣＴ係数を圧縮する方式で、各量子化ＤＣＴ係数のためのコードを選択する。例示のために、エントロピーコーディングユニット４６は、頻繁に発生する量子化ＤＣＴ係数のための（ビット換算で）短いコードワードと、より少ない頻度で発生する量子化ＤＣＴ係数のための（ビット換算で）より長いコードワードを選択し得る。短いコードワードが量子化ＤＣＴ係数よりも少ないビットを使用する限り、平均では、エントロピーコーディングユニット４６は量子化ＤＣＴ係数を圧縮する。エントロピーコーディングユニット４６は、ビデオデコーダ２６に送られるビットストリームとしてエントロピーコード化係数を出力する。エントロピーコーディングユニット４６はまた、動き推定ユニット３２および変換ユニット３８からそれぞれ受信されたＰＵおよびＴＵに対してロスレス統計的コーディングを実行し得る。ＣＵが、量子化残差ビデオデータのブロックに関連するＰＵとＣＵの両方を含むことを考えれば、エントロピーコーディングユニット４６は、ＣＵに対して統計的ロスレス符号化を効果的に実行して、ロスレス統計的コーディングされたＣＵをビットストリーム中に挿入し得る。概して、ビデオデコーダ２６は、図３の例に関して説明するように、ビットストリームからの符号化ビデオを復号および再構成するために逆演算を実行する。
【００５６】
再構成ユニット４２および逆変換ユニット４４は、それぞれ、量子化係数を再構成し、逆変換を適用して、残差データを再構成する。逆変換ユニット４４は、図３に関して以下で説明する３２点ＤＣＴ−ＩＩＩユニット６８と同様の、３２点ＤＣＴ−ＩＩユニット５２の逆演算を実行する、タイプＩＩＩのＤＣＴと通常呼ばれる逆ＤＣＴ（ＩＤＣＴ）を含む。この逆３２点ＤＣＴ−ＩＩは、同じく、図３の例に示す３２点ＤＣＴ−ＩＩユニット６８と実質的に同様であり得る３２点ＤＣＴ−ＩＩＩユニット５３として示されている。３２点ＤＣＴ−ＩＩＩユニット６８は、本技法を実行する集積回路、および／または本開示で説明する技法を実装するための命令（もしくはコンピュータプログラム製品の形態のソフトウェア）を実行する１つまたは複数のプロセッサを備え得る。加算ユニット５０は、再構成された残差データを、動き補償ユニット３６によって生成された動き補償予測ブロックに加算して、メモリ３４に記憶するための再構成されたコーディングユニットを生成する。再構成されたコーディングユニットは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【００５７】
図３は、図１のビデオデコーダ２６の一例をより詳細に示すブロック図である。ビデオデコーダ２６は、少なくとも部分的に、集積回路デバイスと総称されることがある、１つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオデコーダ２６は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ２６は、ビデオフレーム内のブロックのイントラ復号およびインター復号を実行し得る。図３に示すように、ビデオデコーダ２６は、図１および図２の例に示すビデオエンコーダ２０などのビデオエンコーダによって符号化された符号化ビデオビットストリームを受信する。
【００５８】
図３の例では、ビデオデコーダ２６は、エントロピー復号ユニット５４と、動き補償ユニット５６と、再構成ユニット５８と、逆変換ユニット６０と、メモリ６２とを含む。エントロピー復号ユニット６４は、コーディングする際に有用なデータを取得するために、メモリ６４に記憶された１つまたは複数のデータ構造にアクセスし得る。ビデオデコーダ２６は、加算器６６の出力をフィルタ処理するループ内またはポストループデブロッキングフィルタ（図示せず）をも含み得る。ビデオデコーダ２６はまた加算器６６を含む。図３は、コーディングユニットのインター復号のためのビデオデコーダ２６の時間的予測構成要素を示す。図３には示されていないが、ビデオデコーダ２６は、いくつかのコーディングユニットのイントラ復号のための空間的予測構成要素をも含み得る。
【００５９】
エントロピー復号ユニット５４は、符号化ビデオビットストリームを受信し、（誤記により「エントロピー復号」としばしば呼ばれる）ロスレス統計的復号を実行して、ビットストリームから、量子化残差係数および量子化パラメータ、ならびに、コーディングモード、および動きベクトルとブロック区分とを含み得る動き情報などの他の情報を復号する。新生のＨＥＶＣ規格では、エントロピー復号ユニット５４は、ロスレス統計的復号を実行して、残差ビデオデータと、コード化ＰＵと、コード化ＴＵとを表すエントロピー符号化された量子化ＤＣＴ係数など、ＣＵの様々な部分を復号し得る。エントロピー復号ユニット５４は、復号された量子化残差データと復号されたＰＵとを動き補償ユニット５６に出力する。動き補償ユニット５６は、動きベクトルを記憶している復号されたＰＵを受信し、メモリ６２に記憶された１つまたは複数の再構成された参照フレームに対して動き補償を実行して、予測ビデオデータを出力する。
【００６０】
再構成ユニット５８は、量子化ブロック係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する。逆変換ユニット６０は、逆変換、たとえば、逆ＤＣＴを係数に適用して残差データを生成する。より詳細には、逆変換ユニット６０は、残差データを生成するために逆変換ユニット６０が係数に適用する３２点ＤＣＴ−ＩＩＩユニット６８を含む。図２の例に示す３２点ＤＣＴ−ＩＩユニット５２の逆元である３２点ＤＣＴ−ＩＩＩユニット６８は、係数を周波数領域から空間領域に変換して、残差データを生成し得る。上記の量子化ユニット４０と同様に、再構成ユニット５８は、実装複雑さの増加があったとしてもほとんどなしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、３２点ＤＣＴ−ＩＩＩユニット６８のスケーリングされた性質を考慮する。スケーリングされた３２点ＤＣＴ−ＩＩＩユニット６８からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ２６に関する複雑さが純減し得る。
【００６１】
次いで、予測ユニットは、加算器６６によって残差データと加算されて、復号ブロックが形成される。ブロッキングアーティファクトを除去するために復号ブロックをフィルタ処理するために、デブロッキングフィルタ（説明を簡単にするために図３の例には示されていない）が適用され得る。フィルタ処理されたブロックは、次いで、メモリ６２に入れられ、メモリ６２は、後続のビデオフレームの復号のために参照フレームを与え、また、ディスプレイデバイス２８（図１）を駆動するために復号ビデオを生成する。いくつかの事例では、アーティファクトを除去するために、フレームがメモリ６２に記憶された後に、フレームをフィルタ処理するためにポストループデブロッキングフィルタが適用され得る。
【００６２】
図４Ａ〜図４Ｅは、３２点ＤＣＴ−ＩＩユニット５２の様々な態様をより詳細に示す図である。図４Ａの例では、式（４）に関して以下でそれぞれ数学的に説明する、３２点ＤＣＴ−ＩＩユニット５２は、ギブンス回転行列７０と、１６点ＤＣＴ−ＩＩユニット７３と、第１の８点ＤＣＴ−ＩＩユニット７４Ａと、第２の８点ＤＣＴ−ＩＩユニット７４Ｂと、線形結合（ＬＣ：linear combination）ユニット７１とを含む。１６点ＤＣＴ−ＩＩユニット７３は、８点ＤＣＴ−ＩＩユニット７２と、２つの４点ＤＣＴ−ＩＩユニット７６Ｂ、７６Ｃとを含む。３２点ＤＣＴ−ＩＩユニット５２の上半分（ＤＣＴの「偶数ハーフ」または「偶数部分」と通常呼ばれる）にある８点ＤＣＴ−ＩＩユニット７２はまた、４点ＤＣＴ−ＩＩユニット７６Ａを含む。３２点ＤＣＴ−ＩＩユニット５２の下側半分または下半分（「奇数ハーフ」または「奇数部分」と通常呼ばれる）は、（バタフライの適用後の）入力ｘ16〜ｘ31に整数値Ａ〜Ｐを乗算するいわゆるギブンス回転行列７０の後に、２つの８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂを含む。３２点ＤＣＴ−ＩＩユニット５２はまた、８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂの出力を相互加算する相互加算ユニット７２を含む。図４Ａの例には示されていないが、８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂは、８点ＤＣＴ−ＩＶユニット７４に形態が似ていることがある（が２倍ほど大きい）１６点ＤＣＴ−ＩＶを実装することが可能な１６点ＤＣＴ−ＩＶユニットを形成するか、または場合によってはその内に含まれ得る。
【００６３】
３２点ＤＣＴ−ＩＩユニット５２は、入力ｘ0〜ｘ31を受信し、出力Ｘ0〜Ｘ31を生成する。バタフライユニット７０は、入力ｘ0〜ｘ31を、偶数入力ｘ0、ｘ2、ｘ4、ｘ6、ｘ8、ｘ10、ｘ12、ｘ14、ｘ16、ｘ18、ｘ20、ｘ22、ｘ24、ｘ26、ｘ28、およびｘ30と、奇数入力ｘ1、ｘ3、ｘ5、ｘ7、ｘ9、ｘ11、ｘ13、ｘ15、ｘ17、ｘ19、ｘ21、ｘ23、ｘ25、ｘ27、ｘ29およびｘ31とに再構成し、またそれと同時に、偶数入力に対して相互加算（cross-addition）を、および奇数入力に対して相互減算（cross-subtraction）を実行する。バタフライユニット７０は、相互加算された偶数入力を１６点ＤＣＴ−ＩＩユニット７３に出力し、相互減算された奇数入力を８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂに出力する。この例では、３２点ＤＣＴ−ＩＩユニット５６は、３２点ＤＣＴ、１６点ＤＣＴ、８点ＤＣＴおよび４点ＤＣＴのサイズのＤＣＴのいずれか１つを実行し、ならびに、２つまたは３つの８点ＤＣＴ、１つ、２つまたは３つの４点ＤＣＴおよび１つまたは２つの８点ＤＣＴ、あるいは１つの１６点ＤＣＴおよび１つまたは２つの８点ＤＣＴを同時に実行し得る。
【００６４】
ギブンス回転行列７０に関して示されている文字Ａ32〜Ｐ32は内部ファクタを指す。図４Ａの例では下付き数字３２とともに示されていないが、数字を伴う文字の記法は、各文字が様々なＤＣＴのうちのどれに対応するかを示す。したがって、Ａ32は、３２点ＤＣＴのＡスケーリングファクタを示す。出力Ｘ１〜Ｘ３１は、ファクタ化プロセスによりスケーリングパラメータおよび別のパラメータによってスケーリングされ、これらのファクタは、図１の例では説明を簡単にするために示していない。スケーリングファクタおよび／または他のパラメータは、変数「ξ」および「η」のうちの１つまたは複数として示され得る。これらのファクタは、全体的なビデオコーディングプロセスの複雑さを大幅に増加させることなしに後続の量子化プロセスに組み込まれ得る。このようにして、本開示で説明する技法は、チップ占有面積を低減し（または、言い換えれば、いわゆるボードスペースを減少させ）、より効率的な電力消費を促進しながら効用を高め得る。
【００６５】
図４Ｂは、１６点ＤＣＴ−ＩＩユニット７３の一例を示す図である。図４Ｂの例では、１６点ＤＣＴ−ＩＩユニット７３は、バタフライユニット７７と、８点ＤＣＴ−ＩＩユニット７２と、８点ＤＣＴ−ＩＶユニット７４とを含む。８点ＤＣＴ−ＩＩユニット７２は４点ＤＣＴ−ＩＩユニット７６Ａを含み、８点ＤＣＴ−ＩＶユニット７４は４点ＤＣＴ−ＩＩユニット７６Ｂと４点ＤＣＴ−ＩＩユニット７６Ｃとを含む。８点ＤＣＴ−ＩＶユニット７４はまた、図４Ｅの例に関して以下でより詳細に説明する、ファクタ乗算ユニット７８と相互加算ユニット８０とを含む。１６点ＤＣＴ−ＩＩユニット７３は、入力ｘ0〜ｘ15を受信し、出力Ｘ0〜Ｘ15を生成する。バタフライユニット７０は、入力ｘ0〜ｘ15を、偶数入力ｘ0、ｘ2、ｘ4、ｘ6、ｘ8、ｘ10、ｘ12、およびｘ14と、奇数入力ｘ1、ｘ3、ｘ5、ｘ7、ｘ9、ｘ11、ｘ13、およびｘ15とに再構成し、またそれと同時に、偶数入力に対して相互加算を、および奇数入力に対して相互減算を実行する。バタフライユニット７０は、相互加算された偶数入力を８点ＤＣＴ−ＩＩユニット７２に出力し、相互減算された奇数入力を８点ＤＣＴ−Ｉ４ユニット７４に出力する。
【００６６】
図４Ｃは、４点ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃのうちのいずれか１つの例をより詳細に示す図である。図４Ｂの例に示す４点ＤＣＴ−ＩＩユニットが４点ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃのうちのいずれか１つを表し得ることを反映するために、図４Ｂの例に示す４点ＤＣＴ−ＩＩユニットを概括的に４点ＤＣＴ−ＩＩユニット７６と呼ぶ。４点ＤＣＴ−ＩＩユニット７６はバタフライユニット８２を含み、バタフライユニット８２は、機能に関してバタフライユニット６９または７７と実質的に同様であるが、３２個または１６個ではなく４つの入力のみを受信するので、スケールに関しては異なる。バタフライユニット８２は、２つの上側の出力における「０」および「２」表記と、２つの下側の出力における「１」および「３」表記とによって示されるように、入力を偶数入力と奇数入力とに再構成する。４点ＤＣＴ−ＩＩユニット７６の、奇数入力に作用する部分は奇数部分と呼ばれ、偶数入力に作用する部分は偶数部分と呼ばれることがある。
【００６７】
奇数部分では、ＡおよびＢと示された２つのファクタが奇数入力に適用されることが示されている（これらのファクタは、図４Ｃのコンテキストの外部に参照されるとき、Ａ４およびＢ４として示されることもある）。これらのファクタの値を判断する際に、設計者は、いくつかの問題のバランスをとり得る。しばしば、２のべき乗であるファクタによる乗算が、通常、２進法における右シフトのみを含むことを考えれば、２のべき乗であるファクタは容易に実行され得る。したがって、２のべき乗であるファクタは有利であるが、そのようなファクタは、有意なコーディング利得または圧縮効率を与えるために十分な精度をもつＤＣＴ係数を適切に反映しないことがある。代替的に、２のべき乗でないファクタは、より高い精度を与え得るが、容易に実装されず、それにより実装複雑さを増加させ得る。さらに、より大きいファクタは、概して、より多くのコーディング利得を与えるが、有意なより多くのストレージスペースを必要とする一方、より小さいファクタは、より小さいストレージスペースを消費し得るが、より少ないコーディング利得を与え得る。いずれの場合も、４点ＤＣＴ−ＩＩユニット７６によって表されるＤＣＴ実装など、所与のＤＣＴ実装のファクタを選択する際に、いくつかのトレードオフが必要とされる。これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
【００６８】
図４Ｄは、８点ＤＣＴ−ＩＩユニット７２をより詳細に示すブロック図である。図４Ｃの例では、８点ＤＣＴ−ＩＩユニット７２はバタフライユニット８４を含み、バタフライユニット８４は、機能はバタフライユニット６９、７７および８２と実質的に同様であるが、バタフライユニット８４は、バタフライユニット６９、７７および８２によってそれぞれ受信される３２個、１６個および４つの入力と比較して８つの入力のみを受信することを考えれば、スケールは異なる。いずれの場合も、バタフライユニット８４は、それの入力を偶数入力と奇数入力とに再構成し、またそれと同時に、偶数入力を生成するために相互加算を実行し、奇数入力を生成するために相互減算を実行する。８点ＤＣＴ−ＩＩユニット７２の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この場合の偶数部分は、図４Ｃの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット７６と実質的に同様である、ネスティングされた４点ＤＣＴ−ＩＩユニット７６Ａを備える。
【００６９】
８点ＤＣＴ−ＩＩユニット７２の奇数部分は、それぞれ様々な数学演算を実行するいくつかのユニット８６〜９０を含む。ファクタ乗算ユニット８６は、これらの入力にファクタＡ、Ｂ、Ｃ、およびＤを乗算した後に奇数入力の相互加算を実行する（これらのファクタは、図４Ｄのコンテキストの外部に参照されるとき、Ａ８、Ｂ８、Ｃ８およびＤ８として示されることもある）。ファクタＡ、Ｂ、Ｃ、およびＤは、様々な利益を促進するために上述の方法で変更され得る変数を表す。相互加算ユニット８８は、図４Ｃの例に関して示されている方法で相互加算を実行し、相互加算ユニット９０は、７および１と示された奇数出力を生成するために、外側の加算入力の相互加算を実行する。この場合も、これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
【００７０】
図４Ｅは、８点ＤＣＴ−ＩＶユニット７４をより詳細に示すブロック図である。図４Ｅの例では、上記のように、８点ＤＣＴ−ＩＶユニット７４は、各々が図４Ｃの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット７６と実質的に同様であり得る、２つの４点ＤＣＴ−ＩＩユニット７６Ｂ、７６Ｃを含む。８点ＤＣＴ−ＩＶユニット７４は、この場合も上記のように、同じくファクタ乗算ユニット７８と相互加算ユニット８０とを含む。ファクタ乗算ユニット７８は、８点ＤＣＴ−ＩＶユニット７４への入力にファクタＨ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、およびＮを乗算し、ファクタを乗算されると、上側の４つの入力に下側の４つの入力を相互加算し、下側の４つの入力から上側の４つの入力を相互減算する。上側の４つの入力は、次いで、４点ＤＣＴ−ＩＩユニット７６Ｂによって処理され、下側の４つの入力は４点ＤＣＴ−ＩＩユニット７６Ｃによって処理される。相互加算ユニット８０は、次いで、下側の７つの入力を相互加算／減算する（減算は加算の別の形態と考えられる）。ファクタＭ、Ｎ、Ｋ、Ｌ、Ｉ、Ｊ、Ｇ、およびＨは、本明細書の他の場所におけるＡ１６、Ｂ１６、Ｃ１６、Ｄ１６、Ｅ１６、Ｆ１６、Ｇ１６、およびＨ１６に対応する。
【００７１】
概して、上記で説明したＤＣＴ−ＩＩまたはＤＣＴ−ＩＶユニット７２、７４および７６Ａ−７６Ｃの各々は、上述のファクタＡ４、Ｂ４、Ａ８〜Ｄ８、Ａ１６〜Ｈ１６およびＡ３２〜Ｐ３２に対する乗算器なし実装として表され得る。この場合も、上述のように、Ａ４およびＢ４は、４点ＤＣＴタイプＩＩ変換の奇数（下側）部分のバタフライファクタを指す。Ａ８〜Ｄ８は、８点ＤＣＴタイプＩＩ変換の奇数（下側）部分のバタフライファクタを指す。Ａ１６〜Ｈ１６は、１６点ＤＣＴタイプＩＩ変換の奇数（下側）部分のバタフライファクタを指す。最後に、（Ａ３２〜Ｐ３２として示されることもある）Ａ３２〜Ｐ３２は、１６点ＤＣＴタイプＩＩ変換の奇数（下側）部分のバタフライファクタを指す。
【００７２】
３２点ＤＣＴ−ＩＩユニット５２は、各出力係数がスケールファクタによって正規化される必要があり得る、スケーリングされた変換を備え得る。さらに、
【数１】
2018038046.tif 000003
【００７３】
の別のスケールファクタがあり得、ただし、Ｎは１次元（１Ｄ）ＤＣＴのサイズである。この追加のスケールファクタは、３２点ＤＣＴ−ＩＩユニット５２を正規直交にするために必要であり得る。２次元変換では、追加のスケールファクタは２／Ｎである。ＪＣＴ−ＶＣテストモデルでは、４、８、１６、および３２の変換サイズが使用される。その場合、この特定のスケールファクタは、ビットシフトとして量子化器ステップサイズに吸収され得る。これについては後で詳細に説明する。次に、３２点ＤＣＴ−ＩＩ変換５２の設計についてより詳細に説明する。最初に、ＤＣＴ係数の行列が以下の式（１）によって表され得ることについて考えられたい。この議論では、ＤＣＴを正規直交にするために必要であるスケーリングファクタは、説明のために無視され得る。
【数２】
2018038046.tif 000004
【００７４】
これは、以下の式（２）に従って１／２サイズのＤＣＴ−ＩＩブロックおよびＤＣＴ−ＩＶブロックにファクタ化され得る。
【数３】
2018038046.tif 000005
【００７５】
ただし、ＩN/2およびＪN/2は、相応してＮ／２×Ｎ／２単位行列および順序逆転行列を示し、
【数４】
2018038046.tif 000006
【００７６】
は、以下の式（３）に従って定義されたＤＣＴ−ＩＶ変換の行列を示す。
【数５】
2018038046.tif 000007
【００７７】
今度は、ＤＣＴ−ＩＶは、以下の式（４）に従って分割され得る。
【数６】
2018038046.tif 000008
【００７８】
ただし、ＰNは、以下の式（５）に従って並べ替えを生成する置換行列である。
【数７】
2018038046.tif 000009
【００７９】
Ｅn/2は、以下の式（６）に従って定義された対角符号交番行列である。
【数８】
2018038046.tif 000010
【００８０】
ＲNは、以下に記載する式（７）によって数学的に定義されたギブンス回転行列であり、
【数９】
2018038046.tif 000011
【数１０】
2018038046.tif 000012
【００８１】
は、残りの１／２サイズのＤＣＴ−ＩＩ変換の行列を示す。
【００８２】
したがって、Ｎ＝３２点変換を計算するために、このファクタ化は、それを、１）変換の偶数部分に存在する１６点ＤＣＴ−ＩＩと、２）変換の奇数部分における２つの８点ＤＣＴ−ＩＩと、３）ギブンス回転行列Ｒ16によって暗示される１つの１６点バタフライとに効果的に分割する。
【００８３】
定点実装において３２点ＤＣＴ−ＩＩ変換を近似するために、ギブンス回転行列Ｒ16中のサイン項およびコサイン項は整数または２進分数（dyadic rational）によって近似され得る。この近似は、（Ａ３２、Ｂ３２またはＣ３２、Ｄ３２などの）定数の各ペアがサイン項およびコサイン項のペアに近似するように定数Ａ３２〜Ｐ３２を選定することによって達成され得る。このようにして、２進分数は、分母が２のべき乗である有理数として定義され得る。一例として、Ａ３２およびＢ３２は次式のように選定され得る。
【数１１】
2018038046.tif 000013
【００８４】
同様に、Ｃ３２およびＤ３２は次式のように選定され得、
【数１２】
2018038046.tif 000014
【００８５】
以下同様である。
【００８６】
スケールファクタＺ３２は以下の式（８）に従って選定され得る。
【数１３】
2018038046.tif 000015
【００８７】
代替的に、Ｚ３２の値は以下の式（９）に従って選定され得る。
【数１４】
2018038046.tif 000016
【００８８】
これらのファクタを選定することによって、得られた実装は、バランスのとれたより悪い場合の近似誤差を生成し得る。（式８において指定されている）Ｚ３２の第１の条件は、直交３２点ＤＣＴ−ＩＩ変換設計を生じるが、（式９において指定されている）第２の条件は非直交設計を生じる。この設計を実装する際に、スケールファクタＺ３２は図４Ａ中のずっと右側に移動され得る。したがって、ギブンス回転行列Ｒ16中のサイン項およびコサイン項に近似することによって、３２点ＤＣＴ−ＩＩのスケーリングされた近似が取得され得る。そのような３２点のスケーリングされたＤＣＴ−ＩＩ変換５２は、上述の方法で内部ファクタＡ３２〜Ｐ３２とスケーリングされた１６点ＤＣＴ−ＩＩ７３とを判断することによって指定され得る。図４Ｂに示すスケーリングされた１６点ＤＣＴ−ＩＩ７３は、パラメータＡ４、Ｂ４、Ａ８〜Ｄ８、およびＡ１６〜Ｈ１６を指定することによって指定され得る。
【００８９】
一例では、Ａ１６〜Ｈ１６は、１６点ＤＣＴ−ＩＩを表すためのギブンス回転行列Ｒ8中のサイン項およびコサイン項に近似する。対応するスケールファクタは、この例では、Ｚ１６である。同様に、Ａ８〜Ｄ８は、８点ＤＣＴ−ＩＩを表すためのギブンス回転行列Ｒ4中のサイン項およびコサイン項に近似する。対応するスケールファクタはＺ８である。さらに、Ａ４およびＢ４は、４点ＤＣＴ−ＩＩを表すためのギブンス回転行列Ｒ2中のサイン項およびコサイン項に近似する。対応するスケールファクタはＺ４である。パラメータＡ４、Ｂ４、Ａ８〜Ｄ８、およびＡ１６〜Ｈ１６は、以下の式（１０）によって指定された関係を満たし得る。
【数１５】
2018038046.tif 000017
【００９０】
以下に示す表１に、３２点ＤＣＴ−ＩＩ変換のためのこれらのスケールファクタの例示的な値を与える。これらのスケールファクタは、３２点ＤＣＴ−ＩＩユニット７３内に含まれないことがあるが、代わりに、除去され、量子化ユニット４０に組み込まれ得る。正規化ファクタとも呼ばれるこれらのスケールファクタは、乗算または算術演算の数を低減することによって実装複雑さを改善し得る。これらのスケールファクタが除去された場合、３２点ＤＣＴ−ＩＩユニット７２が、ＤＣＴ係数を正確に表す完全なスケーリングされていない出力を適切に生成するためにスケールファクタによる乗算を必要とするスケーリングされた出力を出力することを考慮して、３２点ＤＣＴ−ＩＩユニット７２は、スケーリングされた３２点ＤＣＴ−ＩＩユニット７２と呼ばれる。３２点ＤＣＴ−ＩＩユニット７２がこれらの外部ファクタを保持する場合、３２点ＤＣＴ−ＩＩユニット７２は完全３２点ＤＣＴ−ＩＩユニット７２と呼ばれる。コンテキストに応じて、完全ユニットまたはスケーリングされたユニットのいずれかが３２点ＤＣＴ−ＩＩユニット７２に採用され得、本開示の技法は、いかなるタイプの完全実装またはスケーリングされた実装にも限定されるべきでない。さらに、前述したように、Ｎ点ＤＣＴ変換を正規直交にするために、Ｎ点ＤＣＴ  ＩＩ変換には２／Ｎの追加のスケールファクタが必要である。
【表１】
2018038046.tif 000018
【００９１】
いずれの場合も、上記は、様々な利益を与える３２点ＤＣＴ−ＩＩユニット５２を生成するために、上記の内部ファクタと正規化ファクタとに対して選択され得る、いくつかの例示的な実装固有の値である。一般的な注意として、内部ファクタとスケールファクタとの上記の値は、得られたＤＣＴ行列が、以下の式（１１）によって定義される直交性特性を保持するように選択される。
【数１６】
2018038046.tif 000019
【００９２】
ただし、Ｃは、完全なスケーリングされていない変換行列を表し、ＣTは行列Ｃの転置を表し、Ｉは単位行列であり、ａはスカラー定数である。定数ａが１の値を取る場合、行列は正規直交である。概して、直交性がＤＣＴ−ＩＩ実装に関して望まれるが、非直交設計を選定することにより、同様の近似誤差のための内部ファクタの大きさが低減され得る。
【００９３】
内部ファクタＡ４〜Ｂ４、Ａ８〜Ｄ８、Ａ１６〜Ｈ１６およびＡ３２〜Ｐ３２の様々な値を調査することにより、これらの値を選択することに関与するトレードオフに関する何らかの指示が与えられる。４点ＤＣＴ−ＩＩユニット７６ならびに内部ファクタＡ４およびＢ４で開始して、これらのファクタの値の分析を以下の表２に記載する。
【表２】
2018038046.tif 000020
【００９４】
表２を参照すると、近似誤差と、ファクタＡ４およびＢ４を記憶するために必要とされるビット数とに関して、内部ファクタＡ４およびＢ４の値が示されている。概して、内部ファクタＡ４およびＢ４の値のサイズが増加するにつれて、近似誤差は減少し、それらの値を記憶するために必要とされるビット数は増加する。
【００９５】
８点ＤＣＴ−ＩＩユニット７２と内部ファクタＡ８〜Ｄ８とに関する調査を続けて、これらのファクタの値の分析を以下の表３に記載する。
【表３】
2018038046.tif 000021
【００９６】
上記の表２に記載した分析と同様に、内部ファクタＡ８〜Ｄ８の値は、サイズが増加するにつれて、近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。
【００９７】
１６点ＤＣＴ−ＩＩユニット７３の内部ファクタＡ１６〜Ｈ１６についての分析を以下の表４に記載する。
【表４】
2018038046.tif 000022
【００９８】
上記の表２および表３に記載した分析と同様に、内部ファクタＡ１６〜Ｈ１６の値は、サイズが増加するにつれて、最大近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。表４に記載した分析に関して、最大近似誤差は内部ファクタの最初の５つの組合せに対して非常に大きいので、内部ファクタＡ１６〜Ｈ１６の値の選択肢は６ビット、７ビットおよび８ビット近似の間である。
【００９９】
直交設計の場合における、３２点ＤＣＴ−ＩＩユニット５２のギブンス回転行列Ｒ１６７０の内部ファクタＡ３２〜Ｐ３２についての分析を以下の表５に記載する。
【表５】
2018038046.tif 000023
【０１００】
以下の表６に、直交設計が必要とされないことがあるときの、ギブンス回転行列Ｒ１６７０の内部ファクタＡ３２〜Ｐ３２についての分析を提示する。
【表６】
2018038046.tif 000024
【０１０１】
表２〜表６に示すファクタ化のリストは例にすぎなく、網羅的であると考えられるべきでないことに留意されたい。式（８）（または９）および式（１０）において指定されている、内部ファクタとスケールファクタＺ４、Ｚ８、Ｚ１６、およびＺ３２との間の関係が満たされている限り、内部ファクタＡ４、Ｂ４、Ａ８〜Ｄ８、Ａ１６〜Ｈ１６、およびＡ３２〜Ｐ３２のための他の選定が可能である。上記の完全な調査分析を用いて、上記の表２〜表６からの内部ファクタＡ４、Ｂ４、Ａ８〜Ｄ８、Ａ１６〜Ｈ１６、およびＡ３２〜Ｐ３２の値の様々な選択を通していくつかの異なる実装または設計が生じ得る。
【０１０２】
上記の表４〜表５に示すいくつかの行列係数は、大きい値であり、これらの大きい値による乗算を実行するために必要とされる演算に関する実装複雑さを増加させ得る。また、図４Ａにおいて、計算が左側から右側に進むにつれて、ビット深さが増加し得る。これは、記憶バッファ、ならびに算術演算（加算、乗算）を実行するコストに関してコストがかかり得る。これらの大きい値を除去し、変換にわたってダイナミックレンジを平衡させるために、内部ファクタによる乗算の後に、または等価的にバタフライ段の後に右シフトが実装に導入され得る。これは、内部ファクタＡ４、Ｂ４、Ａ８〜Ｄ８、Ａ１６〜Ｈ１６、およびＡ３２〜Ｐ３２のために整数の代わりに２進分数を選定することに等価であり得る。内部ファクタについての１つのそのような選定を上記の表７に示している。右シフトは任意の正の整数単位であり得ることに留意されたい。いくつかの事例では、右シフトの範囲を指定することにおける唯一の制限は、パラメータＡ４とパラメータＢ４の右シフトが同じであることである。同様に、いくつかの事例では、Ａ８〜Ｄ８の右シフトがそれぞれ同じでなければならない。その上、（この場合も、いくつかの事例では）Ａ１６〜Ｈ１６の右シフトは同じであり得る。さらに、Ａ３２〜Ｐ３２の右シフトは、いくつかの事例では同じであり得る。３２点変換、１６点変換、８点変換および４点変換の奇数部分における右シフトは独立して選定され得る。右シフトは、これらの整数パラメータを２進分数に変換する。この場合も、２進分数は、分母が２のべき乗である有理数を指す。
【表７】
2018038046.tif 000025
【０１０３】
２進分数内部ファクタの場合（バタフライ中の両方のファクタは同じ右シフトを共有するので）、右シフトはバタフライの最後に実行され得る。これらの事例では、整数ファクタと２進分数ファクタは同じ方法で処理され得る。バタフライにおける乗算は、その場合、シフトおよび加算に変換され得る。表８は、表７に記載されている内部ファクタの例示的な値についてこれを示している。
【表８−１】
2018038046.tif 000026
【表８−２】
2018038046.tif 000027
【０１０４】
３２点ＤＣＴ−ＩＩが乗算および加算を用いて実装される場合、１１６回の乗算と１９４回の加算とが必要とされ得る。表７からの内部ファクタの代わりに異なるセットの内部ファクタが選定されたときでも、この数は一般に同じままである。ただし、実装が乗算器なしのときは、（たとえば、ビット深さに関して測定される）内部ファクタの大きさが高くなるほど、加算およびシフトが多くなることが暗示される。表７に示す内部ファクタの例示的な値は、３２点ＤＣＴ−ＩＩ５２を実装するために３４８回の加算と１５６回のシフトとを必要とし得る。内部ファクタの選定は、これらが採用されるコンテキストに依存し得る。変換を実装するために使用されるハードウェアまたはソフトウェアのアーキテクチャ、３２点ＤＣＴ−ＩＩへの近接性に関する変換の所望の精度、および電力消費量要件が、内部ファクタの選定において考慮され得るファクタのうちのいくつかである。
【０１０５】
Ｈ．２６４およびＨＥＶＣテストモデル（ＨＭ）では、量子化ユニット４０は、量子化演算を、量子化行列中の成分による乗算とそれに後続する右シフトとして実装する。量子化行列中の成分および右シフトは、一緒に、これらの２つの演算が実際の量子化器ステップサイズによる除算を近似するように選定される。同様に、対応する逆量子化行列および右シフトがデコーダ側にある。エンコーダおよびデコーダ上の右シフトが、それぞれＱ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳによって示されるとする。スケーリングされた変換の場合、スケーリングファクタは、上述の方法で量子化行列および逆量子化行列に吸収される。
【０１０６】
Ｈ．２６４およびＨＥＶＣテストモデルでは、量子化器ステップサイズは、ＱＰの６つの値ごとに２倍になる。したがって、スケーリングされた３２×３２変換では、量子化行列および逆量子化行列はそれぞれ、一般に、３２×３２×６＝６１４４個の成分を必要とする。対照的に、正規直交変換は、記憶されるべき６つの成分のみを必要とし得る。ただし、一般に、正規直交変換を実装するためには、より多くの乗算が必要とされ、計算コストが高くなり得る。本開示で説明する技法は、上記で説明したファクタ化の計算複雑さの利点を維持しながら、必要とされるストレージの量を低減し得る。
【０１０７】
したがって、３２点ＤＣＴ−ＩＩユニット５２では、スケールファクタは、上記の表１に記載されているスケールファクタを備え得る。表１を分析すると、３２点変換のために１２個のみの別個のスケーリングファクタがある。ＱＰが量子化器ステップサイズパラメータを示すとして、以下の式（１２）について考えられたい。
【数１７】
2018038046.tif 000028
【０１０８】
上記の式（１２）では、モジュロ演算子はパーセンテージ記号（％）によって表されている。一般に、各ＱＰrem＝０，１，．．．，５について、概して、３２×３２行列が記憶されなければならない。しかしながら、１２個のみの別個の成分があるので、ＱＰrem＝０，１，．．．，５の各々について、１２×１２行列のみが記憶される必要があり得る。さらに、位置インデックスを正規化テーブル中のインデックスに変換するために、サイズ１２のルックアップテーブルが必要とされ得る。水平方向と垂直方向は同じルックアップテーブルを使用する。Ｑ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳは、量子化行列成分は１６ビットを必要とするが、逆量子化行列成分は８ビットのみを必要とするように選定され得る。したがって、量子化行列と逆量子化行列とルックアップテーブルとのための総ストレージは、潜在的に１２×１２×６×３＋１２＝２６０４バイトのみである。
【０１０９】
３２点ＤＣＴ−ＩＩ変換の偶数インデックス成分中に１６点、８点および４点変換がすでに存在し得るが、
【数１８】
2018038046.tif 000029
【０１１０】
の追加のスケールファクタにより、スケールファクタは異なり得る。３２点、１６点、８点および４点変換のための異なる量子化行列の必要を潜在的になくすために、量子化行列の精度を表すＱ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳが変化され得る。たとえば、Ｑ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳが４×４変換のために１０および８である場合、Ｑ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳは、８×８変換のために、それぞれ１１および９となるように選定され得る。このようにして、（２Ｄ変換のための）２／Ｎの追加のスケーリングファクタのための補償が達成され得る。１６×１６および３２×３２など、ブロックサイズがより大きくなるごとに、Ｑ＿ＢＩＴＳおよびＤＱ＿ＢＩＴＳは１だけ増分され得る。これは、３２×３２ＤＣＴ−ＩＩ変換のための量子化器行列および逆量子化器行列が、より小さいブロックサイズ（４×４、８×８、および１６×１６）のすべての行列を含み得るという効果を有する。その結果、サイズ１６、８および４の追加のルックアップテーブル（ＬＵＴ：lookup table）が必要とされ得る。
【０１１１】
いくつかの事例では、上記で説明した実装は、量子化のために大量のストレージを必要とし得る。必要とされるストレージの量を低減するために、本技法は、直交性特性に厳密に固執しない実装を提供し得る。例示のために、ファクタ化のための内部パラメータを選定するために式（８）および式（１０）を使用する代わりに、サイン項およびコサイン項は、２５６の分母をもつ最も近い２進分数によって近似され得る。（表２０中のものと同様の）３２点ＤＣＴタイプＩＩの奇数部分のギブンス回転行列Ｒ16によって暗示される１６点バタフライでは、ファクタは、１３、３８、６２、８６、１０９、１３２、１５２、１７２、１９０、２０６、２２０、２３１、２４１、２４８、２５３、２５５である。１６点ＤＣＴタイプＩＩの奇数部分のギブンス回転行列Ｒ8によって暗示される８点バタフライでは、ファクタは、２５、７４、１２１、１６２、１９８、２２６、２４５、および２５５である。８点ＤＣＴタイプＩＩの奇数部分のギブンス回転行列Ｒ４によって暗示される４点バタフライでは、ファクタは、５０、１４２、２１３、および２５１である。タイプＩＩの４点ＤＣＴの奇数部分では、ファクタは９８および２３６である。２５６の分母に関して説明するが、２のべき乗である他の分母が選定され得る。その場合、分子定数は、この場合も、上記で説明したように近似サインおよびコサインと同様に導出され得る。分母として２のより大きいべき乗が使用される場合、サイン項およびコサイン項への近似はより正確になり得、それは、設計が無制限精度３２点ＤＣＴ−ＩＩ実装により近くなり得ることを意味する。前に説明したように、Ｒ１６、Ｒ８、Ｒ４、およびＲ２の分母として２の異なるべき乗が選定され得る。内部ファクタのそのような設計が使用されるとき、スケールファクタは、以下の表９のスケールファクタによって近似され得る。（ｓｉｎθ）2＋（ｃｏｓθ）2＝１であり、選定される２進分数はサイン項およびコサイン項の密接な近似であるので、これは可能である。
【表９】
2018038046.tif 000030
【０１１２】
表９から、今や、１次元変換のために、２つのみの別個のスケールファクタ、すなわち、１．０および
【数１９】
2018038046.tif 000031
【０１１３】
があることがわかるであろう。したがって、２次元の場合、これらのスケールファクタが量子化行列および逆量子化行列に吸収されたとき、量子化行列および逆量子化行列中に４つのみの別個の数が存在し得る。したがって、２つの別個の正規化ファクタのうちのどちらが、その方向（水平／垂直）における特定の変換係数の正規化のために使用されることになるかを指定するために、サイズ３２の１ビットルックアップテーブル（ＬＵＴ）を記憶することで概して十分である。他の方向における正規化ファクタを指定するために同じＬＵＴが使用され得る。したがって、ＱＰの増分ごとに、量子化行列ならびに逆量子化行列のための４つの別個の値が記憶されなければならないことがある。したがって、量子化行列サイズは２×２×６＝２４個の成分を含み得、逆量子化行列についても同様である。
【０１１４】
１次元変換のために２つのみの別個のスケールファクタを有する設計について説明したが、直交設計では１２個の別個のスケールファクタが存在し得る。２つと１２個との間の数の別個のスケールファクタを有することが可能である。たとえば、４点および８点ＤＣＴ−ＩＩ変換のために直交設計が保持されるが、Ｒ８およびＲ１６に対応する内部ファクタが上記の方法に従って選定される場合、５つの別個のスケールファクタが存在し得る。これらは、
【数２０】
2018038046.tif 000032
【０１１５】
である。これは、内部ファクタを記憶するために必要とされるストレージの量、直交性およびビット深さの間の妥協を表している。内部ファクタのそのような選定を以下の表１０に示す。この場合、量子化行列ならびに逆量子化行列は５×５×６＝１５０個の成分を含み得る。同様に、４点、８点および１６点ＤＣＴ−ＩＩ変換のために直交設計が保持されるが、Ｒ１６に対応する内部ファクタが上記の方法に従って選定される場合、７つのみの別個のスケールファクタが存在し得る。この場合、量子化行列ならびに逆量子化行列は７×７×６＝２９４個の成分を含み得る。このように直交設計が維持されるブロックサイズの数を選定することによって、量子化行列および逆量子化行列のためのストレージの量が変化され得る。
【表１０】
2018038046.tif 000033
【０１１６】
そのようなＬＵＴがどのように採用され得るかを示すために、以下のステップについて考えられたい。第１のステップにおいて、量子化ユニット４０が、水平インデックス上の１ビットＬＵＴを使用して、Ｈｏｒ＿Ｂｉｔ（０または１）を導出する。０は１．０の正規化ファクタに対応し、１は
【数２１】
2018038046.tif 000034
【０１１７】
の正規化ファクタに対応する。第２のステップにおいて、量子化ユニット４０は、垂直インデックス上の１ビットＬＵＴを使用して、Ｖｅｒ＿Ｂｉｔ（０または１）を導出する。量子化ユニット４０は、次いで、Ｈｏｒ＿ＢｉｔおよびＶｅｒ＿ＢｉｔおよびＱＰ値を使用して、量子化行列および逆量子化行列中の適切な成分をルックアップする。このようにして、本技法は、ストレージ要件（および関連するコスト）を大幅に増加させることなしに、同様の誤差レベルを与える他の設計または実装と比較して相対的な計算複雑さを維持し得る。
【０１１８】
図４の例ではＤＣＴ−ＩＩユニットに関して説明したが、このＤＣＴ−ＩＩユニットは、本開示の技法に従って構築されたＩＤＣＴをも表し得る。図４の例に示す実装から逆ＤＣＴを形成することは、図４の右側の実装によって入力が受信され、実装の左側に出力が出力されるように、入力と出力とを逆転させることを必要とする。言い換えれば、入力が次いで出力になり、出力が入力になるように垂直軸に関して実装を反転させると、概して、ＩＤＣＴ実装が生成され得る。説明を簡単にするために、またＤＣＴからＩＤＣＴを形成することが当技術分野でよく知られていることを考慮して、これらの追加のＩＤＣＴ実装は個別の図に示していない。
【０１１９】
図５は、図２のビデオエンコーダ２０などのコーディングデバイスが、本開示の技法に従って構築された３２点ＤＣＴ実装を適用する際の例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在コーディングユニット３１を受信する（９０）。動き推定ユニット３２は、１つまたは複数の動きベクトルを生成するためにコーディングユニット３１を１つまたは複数の隣接ビデオフレーム中のブロックと比較するために、動き推定を実行する（９２）。１つまたは複数の隣接フレームは、メモリ３４から取り出され得る。動き推定は、可変サイズ、たとえば、６４×６４、３２×３２、１６×１６、１６×８、８×１６、８×８、４×４またはより小さいブロックサイズのブロックに対して実行され得る。動き推定ユニット３２は、たとえば、レートひずみモデルに基づいて、現在コーディングユニット３１に最もぴったりマッチングする隣接フレーム中の１つまたは複数のブロックを識別し、隣接フレーム中のブロックと現在コーディングユニットとの間の変位を判断する。これに基づいて、動き推定ユニット３２は、現在コーディングユニット３１と、現在コーディングユニット３１をコーディングするために使用される参照フレームからの１つまたは複数のマッチングブロックとの間の変位の大きさおよび軌道を示す、１つまたは複数の動きベクトル（ＭＶ）を生成する。１つまたは複数のマッチングブロックは、コーディングされるべきブロックのインターコーディングのための予測（predictive）（または予測（prediction））ブロックとして働くことになる。
【０１２０】
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ２０は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。分数ピクセル値をもつ動きベクトルが使用されるとき、動き補償ユニット３６中で補間演算が実行される。動き推定ユニット３２は、レートひずみモデルなど、いくつかの基準を使用して、コーディングユニットのための最良のブロック区分および１つまたは複数の動きベクトルを識別する。たとえば、双方向予測の場合、２つ以上の動きベクトルがあり得る。得られたブロック区分および動きベクトルを使用して、動き補償ユニット３６は予測ユニットを形成する（９４）。
【０１２１】
ビデオエンコーダ２０は、加算器４８において、元の現在コーディングユニット３１から、動き補償ユニット３６によって生成された予測ユニットを減算することによって残差コーディングユニットを形成する（９６）。変換ユニット３８は、残差変換ブロック係数を生成する変換を適用する。変換ユニット３８は、本開示で説明する技法に従って構成された３２点ＤＣＴ−ＩＩユニット５２を含む。変換ユニット３８は、所与のサイズの１つまたは複数のＤＣＴ−ＩＩを残差データに適用して、上述の方法で残差変換係数の対応するサイズのブロックを生成するために、スケーリングされた３２点ＤＣＴ−ＩＩユニット５２を呼び出す。図４Ａ〜図４Ｅの例を参照すると、３２点ＤＣＴ−ＩＩユニット５２は、１つまたは複数の１６点ＤＣＴ−ＩＩおよび８点ＤＣＴ−ＩＩを同時に適用するために、１６点ＤＣＴ−ＩＩユニット７３および８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂのうちの１つまたは複数を呼び出し得る。代替的に、３２点ＤＣＴ−ＩＩユニット５２は、１つまたは複数の８点ＤＣＴおよび４点ＤＣＴ−ＩＩを同時に適用するために、８点ＤＣＴ−ＩＩユニット７３、４点ＤＣＴ−ＩＩユニット７６Ｂ、７６Ｃおよび８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂのうちの１つまたは複数を呼び出し得る。さらに別の代替では、３２点ＤＣＴ−ＩＩユニット５２は、３２点ＤＣＴ−ＩＩを適用するために、ユニット７３、７４Ａおよび７４Ｂを呼び出し得る。別の代替では、３２点ＤＣＴ−ＩＩユニット５２は、１つまたは複数の４点ＤＣＴ−ＩＩおよび８点ＤＣＴ−ＩＩを適用するために、４点ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃおよび８点ＤＣＴ−ＩＩユニット７４Ａ、７４Ｂのうちの１つまたは複数を呼び出し得る。３２点ＤＣＴ−ＩＩユニット５２は、概して、残差ピクセルデータとして表される空間領域から、ＤＣＴ係数として表される周波数領域に残差データを変換する。このようにして、３２点ＤＣＴ−ＩＩユニット５２は、ＤＣＴ係数を判断するために、残差データに１つまたは複数の対応するサイズのＤＣＴ−ＩＩを適用する（９８）。変換係数は、少なくとも１つのＤＣ係数と１つまたは複数のＡＣ係数とを含むＤＣＴ係数を備え得る。
【０１２２】
量子化ユニット４０は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する（たとえば、丸める）（１００）。上述のように、量子化ユニット４０は、ファクタ化中に除去されたファクタを組み込むことによって、スケーリングされた３２点ＤＣＴ−ＩＩユニット５２のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット４０に組み込むことは量子化ユニット４０の実装複雑さを増加させ得ない。この点において、スケーリングされた３２点ＤＣＴ−ＩＩユニット５２からファクタを除去することは、上記に示した方法で量子化ユニット４０の実装複雑さを増加させることなしにＤＣＴ−ＩＩユニット５２の実装複雑さを減少させ得、その結果、ビデオエンコーダ２０に関する実装複雑さが純減する。
【０１２３】
エントロピーコーディングユニット４６は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット４６は、コード化ビットストリームを生成するために、場合によってはエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行する（１０２）。エントロピーコーディングユニット４６は、量子化ＤＣＴ係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブックを選択する。このコードブックを使用して、エントロピーコーディングユニット４６は、量子化ＤＣＴ係数を圧縮する方式で、各量子化ＤＣＴ係数のためのコードを選択する。エントロピーコーディングユニット４６は、メモリまたはストレージデバイスに記憶されるコード化ビットストリームおよび／またはビデオデコーダ２６に送られるコード化ビットストリームとしてエントロピーコード化係数を出力する（１０４）。
【０１２４】
再構成ユニット４２および逆変換ユニット４４は、それぞれ、量子化係数を再構成し、逆変換を適用して、残差データを再構成する。この場合も、逆変換ユニット４４は、図３に関して以下で説明する３２点ＤＣＴ−ＩＩＩユニット６８と同様の、３２点ＤＣＴ−ＩＩユニット７３の逆演算を実行する、タイプＩＩＩのＤＣＴと通常呼ばれる逆ＤＣＴ（ＩＤＣＴ）を含み得る。加算ユニット５０は、再構成された残差データを、動き補償ユニット３６によって生成された動き補償予測ブロックに加算して、メモリ３４に記憶するための再構成されたコーディングユニットを生成する。再構成されたコーディングユニットは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【０１２５】
図６は、図３のビデオデコーダ２６などのコーディングデバイスが、本開示の技法に従って構成された３２点ＤＣＴ−ＩＩＩを適用する際の例示的な動作を示すフローチャートである。ビデオデコーダ２６は、ビデオエンコーダ２０によって符号化された符号化ビデオビットストリームを受信する。特に、エントロピー復号ユニット５４は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化残差係数および量子化パラメータ、ならびに、マクロブロックコーディングモード、および動きベクトルとブロックパーティションとを含み得る動き情報など、他の情報を復号する（１０６、１０８）。動き補償ユニット５６は、動きベクトルと、ブロックパーティションと、メモリ６２からの１つまたは複数の再構成された参照フレームとを受信して、予測ユニットを生成する（１１０）。
【０１２６】
再構成ユニット５８は、量子化ブロック係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する（１１２）。逆変換ユニット６０は、逆変換、たとえば、逆ＤＣＴを係数に適用して残差データを生成する。より詳細には、逆変換ユニット６０は、スケーリングされた３２点ＤＣＴ−ＩＩＩユニット６８を含み、逆変換ユニット６０は、その３２点ＤＣＴ−ＩＩＩユニット６８を呼び出して係数を処理し、それによって残差データを生成する（１１４）。図２に示すスケーリングされた３２点ＤＣＴ−ＩＩユニット５２の逆元である、スケーリングされた３２点ＤＣＴ−ＩＩＩユニット６８は、係数を周波数領域から空間領域に変換して、上述の方法で残差データを生成し得る。上記の量子化ユニット４０と同様に、再構成ユニット５８は、実装複雑さの増加があったとしてもほとんどなしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、３２点ＤＣＴ−ＩＩＩユニット６８のスケーリングされた性質を考慮する。スケーリングされた３２点ＤＣＴ−ＩＩＩユニット６８からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ２６に関する複雑さが純減し得る。
【０１２７】
次いで、予測ユニットは、加算器６６によって残差データと加算されて、復号ブロックが形成される（１１６）。ブロッキングアーティファクトを除去するために復号ブロックをフィルタ処理するために、デブロッキングフィルタ（図示せず）が適用され得る。フィルタ処理されたブロックは、次いで、メモリ６２に入れられ、メモリ６２は、後続のビデオフレームの復号のために参照フレームを与え、また、図１のディスプレイデバイス２８などのディスプレイデバイスを駆動するために復号ビデオを生成する（１１８）。
【０１２８】
図７Ａ〜図７Ｅは、図２に示す３２点ＤＣＴ−ＩＩユニット５２の別の例示的な実装の様々な態様を示す図である。図４Ａ〜図４Ｅでは、３２点ＤＣＴ−ＩＩユニット５２の例示的な実装がバタフライを使用して示されており、この例示的な実装は、上述の理由のために、行列乗算があったしても多くを含まない。言い換えれば、３２点ＤＣＴ＿ＩＩユニット５２は、行列乗算を実行することなしに上記で説明した様々なサイズの変換を実装し得る。ただし、ＤＣＴ−ＩＩユニットのいわゆる「部分バタフライ」実装が新生のＨＥＶＣ規格のワーキングドラフトおよびテストモデル（ＨＭ５．０）に採用されており、本開示で説明する技法はこれらの部分バタフライ実装に関して実装され得る。部分バタフライＤＣＴ−ＩＩ実装は、（「和および差」段と呼ばれることもある）バタフライ段への分解の結合と、それに後続する偶数部分のサイズＮ／２の変換とを伴い得、ただし、ＮはＤＣＴ−ＩＩのサイズを示す。奇数部分では、図４Ｄ、図４Ｅの例に関して上記に示したバタフライ実装ではなく、Ｎ／２点行列乗算が使用される。
【０１２９】
たとえば、提案された部分バタフライ８点ＤＣＴは４×４行列乗算を必要とし、それは、汎用乗算器を使用したときでも、計算複雑さに関してあまりコストがかからないことがある。しかしながら、１６点変換および３２点変換のために部分バタフライ実装を使用すると、それぞれ８×８行列乗算および１６×１６行列乗算が必要になる。これは、特にモバイルまたはバッテリー電源式デバイスでは、ハードウェアエリアに関してコストがかかり、また電力節約に影響を及ぼし得る。本技法は、上記で説明し、一例では、図４Ａ〜図４Ｅの例に関して示した方法で、これらの部分バタフライＤＣＴ−ＩＩ実装をネスティングすることによってボードスペースの消費を潜在的に低減するために、これらの部分バタフライＤＣＴ−ＩＩ実装に関して実装され得る。
【０１３０】
図７Ａは、図２の例に示す３２点ＤＣＴ−ＩＩユニット５２の例示的な部分バタフライ（ＰＢ：partial butterfly）実装１１９を示す図である。図７Ａの例では、３２点ＤＣＴ−ＩＩユニット１１９は、図４Ａの例に示すＤＣＴ−ＩＩユニット５２のバタフライ実装に関して上記に示したものと実質的に同様の、バタフライユニット６９と、ギブンス回転行列７０と、線形結合（ＬＣ）ユニット７１とを含む。ただし、３２点ＰＢ  ＤＣＴ−ＩＩユニット１１９は、偶数部分において１６点ＰＢ  ＤＣＴ−ＩＩユニット１２０を含み、奇数部分において２つの８点ＰＢ  ＤＣＴ−ＩＩユニット１２２Ａ、１２２Ｂを含む。１６点ＰＢ  ＤＣＴ−ＩＩユニット１２０はさらに、偶数部分において８点ＰＢ  ＤＣＴ−ＩＩユニット１２２Ｃを含み、奇数部分において２つの４点ＰＢ  ＤＣＴ−ＩＩユニット１２４Ａ、１２４Ｂを含む。８点ＰＢ  ＤＣＴ−ＩＩユニット１２２Ｃはまた、それの偶数部分において４点ＰＢ  ＤＣＴ−ＩＩユニット１２４Ｃを含む。
【０１３１】
いくつかの事例では、図２の右側にあるスケールファクタまたは正規化ファクタは変化し得る。この変化は、近似的に同じノルムを有するＰＢユニットにおいて使用される基底関数に起因する。したがって、１６点変換の上半分にあるすべての変換係数は、単一の正規化ファクタを有することになる。同様に、１６点変換の下半分にある変換係数のために単一のスケーリングファクタが存在することになる。このスケーリングファクタは、ＰＢ変換のスケーリングファクタと、ギブンス回転行列Ｒ８中のバタフライファクタに起因するスケーリングファクタＺ１６とを考慮に入れ得る。したがって、変換を正規直交にするために２つの異なるスケーリングファクタまたは正規化ファクタのみが存在し得る。上半分において上記で説明した１６点変換を再利用し、下半分において８点ＰＢ変換とギブンス回転行列Ｒ１６とを使用することによって、同じ概念は３２点変換に拡張され得る。この場合、変換を正規直交にするために３つの異なるスケーリングファクタまたは正規化ファクタが必要とされ得る。
【０１３２】
図７Ｂは、図７Ａの例に示す１６点ＰＢ  ＤＣＴ−ＩＩユニット１２０をより詳細に示す図である。１６点ＰＢ  ＤＣＴ−ＩＩユニット１２０は、図４Ｂの例に示す１６点ＤＣＴ−ＩＩ７３と実質的に同様である、バタフライユニット７７、７８と、ギブンス回転行列８０とを含む。ただし、４点ＤＣＴＧ−ＩＩユニット７６と８点ＤＣＴ−ＩＩユニット７２とのバタフライ実装を含むのではなく、１６点ＰＢ  ＤＣＴ−ＩＩユニット１２０は、上述の４点部分バタフライ（ＰＢ）ＤＣＴ−ＩＩユニット１２４Ａ〜１２４Ｃと８点ＰＢ  ＤＣＴ−ＩＩユニット１２２Ｃとを含む。下側または奇数の４点ＰＢ  ＤＣＴ−ＩＩユニット１２４Ａ、１２４Ｂはまた、図４Ｂの例に示す１６点ＤＣＴ−ＩＩユニット７３に関して上記で説明したのと同様の８点ＤＣＴ−ＩＶユニット１２５を形成し得る。
【０１３３】
図７Ｃは、４点ＰＢ  ＤＣＴ−ＩＩユニット１２４をより詳細に示す図である。図７Ｃの例では、４点ＰＢ  ＤＣＴ−ＩＩユニット１２４は、４点ＰＢ  ＤＣＴ−ＩＩユニット１２４がバタフライユニット８２を含むという点で、図４Ｃの例に示した４点ＤＣＴ−ＩＩユニット７６と同様である。バタフライユニット８２は、２つの上側の出力における「０」および「２」表記と、２つの下側の出力における「１」および「３」表記とによって示されるように、入力を偶数入力と奇数入力とに再構成する。４点ＰＢ  ＤＣＴ−ＩＩユニット１２４の、奇数入力に作用する部分は奇数部分と呼ばれ、偶数入力に作用する部分は偶数部分と呼ばれることがある。
【０１３４】
４点ＰＢ  ＤＣＴ−ＩＩユニット１２４の偶数部分は、４点ＤＣＴ−ＩＩユニット７６に関して上記で説明したのと実質的に同様である。奇数部分において、バタフライを含むのではなく、４点ＰＢ  ＤＣＴ−ＩＩユニット１２４は、行列乗算ユニット（ＭＭＵ：matrix multiplication unit）１３０（「ＭＭＵ１３０」）を含む。行列乗算ユニット１３０は奇数入力に対して行列乗算を実行し得る。乗算を実行するために使用されるＭＭＵ１３０中の行列の係数は、以下の表１１に示す係数であり得る。この行列は、最新のＨＥＶＣテストモデル（ＨＭ５．０）において使用される。出力値を正規化するために行列乗算段の後に右シフトを導入することが必要であり得る。
【表１１】
2018038046.tif 000035
【０１３５】
図７Ｄは、８点ＰＢ  ＤＣＴ−ＩＩユニット１２２をより詳細に示すブロック図である。図７Ｄの例では、８点ＰＢ  ＤＣＴ−ＩＩユニット１２２は、図４Ｄの例に示す８点ＤＣＴ−ＩＩユニット７２に関して上記で説明したバタフライユニット８４と実質的に同様のバタフライユニット８４を含む。いずれの場合も、バタフライユニット８４は、それの入力を偶数入力と奇数入力とに再構成し、またそれと同時に、偶数入力を生成するために相互加算を実行し、奇数入力を生成するために相互減算を実行する。８点ＰＢ  ＤＣＴ−ＩＩユニット１２２の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この事例の偶数部分は、図７Ｃの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット１２４と実質的に同様である、ネスティングされた４点ＰＢ  ＤＣＴ−ＩＩユニット１２４Ｃを備える。
【０１３６】
８点ＰＢ  ＤＣＴ−ＩＩユニット１２２の偶数部分は、８点ＤＣＴ−ＩＩユニット７２に関して上記で説明したのと実質的に同様である。ただし、奇数部分において、バタフライを含むのではなく、８点ＰＢ  ＤＣＴ−ＩＩユニット１２２は、行列乗算ユニット（ＭＭＵ）１３２（「ＭＭＵ１３２」）を含む。行列乗算ユニット１３２は奇数入力に対して行列乗算を実行し得る。乗算を実行するために使用されるＭＭＵ１３２中の行列の係数は、以下の表１２に示す係数であり得る。この行列は、最新のＨＥＶＣテストモデル（ＨＭ５．０）において使用される。出力値を正規化するために行列乗算段の後に右シフトを導入することが必要であり得る。
【表１２】
2018038046.tif 000036
【０１３７】
図７Ｅは、８点ＰＢ  ＤＣＴ−ＩＶユニット１２５をより詳細に示すブロック図である。図７Ｅの例では、上記のように、８点ＰＢ  ＤＣＴ−ＩＶユニット１２５は、各々が図７Ｃの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット１２４と実質的に同様であり得る、２つの４点ＤＣＴ−ＩＩユニット１２４Ａ、１２４Ｂを含む。８点ＤＣＴ−ＩＶユニット１２５は、この場合も上記のように、同じくファクタ乗算ユニット７８と相互加算ユニット８０とを含む。ファクタ乗算ユニット７８は、８点ＤＣＴ−ＩＶユニット１２５への入力にファクタＨ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、およびＮを乗算し、ファクタを乗算されると、上側の４つの入力に下側の４つの入力を相互加算し、下側の４つの入力から上側の４つの入力を相互減算する。上側の４つの入力は、次いで、４点ＤＣＴ−ＩＩユニット１２４Ａによって処理され、下側の４つの入力は４点ＤＣＴ−ＩＩユニット１２４Ｂによって処理される。相互加算ユニット８０は、次いで、下側の７つの入力を相互加算／減算する（減算は加算の別の形態と考えられる）。
【０１３８】
上記では、１つまたは複数のネスティングされた１６点ＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩおよび８点ＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩ、ならびに１つまたは複数のネスティングされた４点ＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩを含むサイズ３２のＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩに関して説明したが、本技法はこれらの特定のサイズに限定されるべきでない。代わりに、本技法は、より小さいサイズのネスティングされたＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩを含む任意のサイズの任意のＤＣＴ−ＩＩまたはＤＣＴ−ＩＩＩに適用され得る。したがって、本技法は、この点において、本開示で示す例に限定されるべきでない。
【０１３９】
本開示の技法は、モバイルフォンなどのワイヤレス通信デバイスハンドセット、集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。本明細書で説明した技法はまた、ハードウェア、またはハードウェア、ソフトウェア、ファームウェアの任意の組合せで実装され得る。モジュール、ユニットまたは構成要素として説明した特徴は、集積論理デバイスにおいて一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。場合によっては、様々な特徴は、集積回路チップまたはチップセットなどの集積回路デバイスとして実装され得る。
【０１４０】
ソフトウェアで実装する場合、これらの技法は、少なくとも部分的に、プロセッサにおいて実行されると、上記で説明した方法の１つまたは複数を実行する命令を備えるコンピュータ可読媒体によって実現され得る。コンピュータ可読媒体は、物理的非一時的構造物であるコンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。
【０１４１】
コードまたは命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供されるか、あるいは複合ビデオコーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１４２】
本開示はまた、本開示で説明した技法のうちの１つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップで、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供され得る。そのような集積回路デバイスは様々な適用例において使用され得、適用例のいくつかは携帯電話ハンドセットなどのワイヤレス通信デバイスでの使用を含み得る。
【０１４３】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
【図１】
2018038046.tif 000037
【図２】
2018038046.tif 000038
【図３】
2018038046.tif 000039
【図４Ａ】
2018038046.tif 000040
【図４Ｂ】
2018038046.tif 000041
【図４Ｃ】
2018038046.tif 000042
【図４Ｄ】
2018038046.tif 000043
【図４Ｅ】
2018038046.tif 000044
【図５】
2018038046.tif 000045
【図６】
2018038046.tif 000046
【図７Ａ】
2018038046.tif 000047
【図７Ｂ】
2018038046.tif 000048
【図７Ｃ】
2018038046.tif 000049
【図７Ｄ】
2018038046.tif 000050
【図７Ｅ】
2018038046.tif 000051
【手続補正書】
【提出日】平成29年10月31日(2017.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツデータを空間領域から周波数領域に変換するための方法であって、前記方法は、
前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備え、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１４３
【補正方法】変更
【補正の内容】
【０１４３】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]  コンテンツデータを空間領域から周波数領域に変換するための方法であって、前記方法は、
前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備え、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、方法。
[Ｃ２]  前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、Ｃ１に記載の方法。
[Ｃ３]  前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ１に記載の方法。
[Ｃ４]  前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つのスケーリングされた８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、それぞれ、前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数を用いてサイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行することを備える、Ｃ１に記載の方法。
[Ｃ５]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ４に記載の方法。
[Ｃ６]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、前記第１、第２および第３の４点変換ユニットを用いたサイズ４の前記複数のスケーリングされた変換のうちの３つと、前記第２および第３の８点変換ユニットを用いたサイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行することを備える、Ｃ４に記載の方法。
[Ｃ７]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ６に記載の方法。
[Ｃ８]  異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することが、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することと、スケーリングされた変換係数を出力することとを備え、
前記方法が、量子化ユニットを用いて、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用することをさらに備える、Ｃ１に記載の方法。
[Ｃ９]  前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用することを備える、Ｃ８に記載の方法。
[Ｃ１０]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ９に記載の方法。
[Ｃ１１]  前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ１に記載の方法。
[Ｃ１２]  前記コンテンツデータがビデオデータのブロックを備え、
前記方法は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行することと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行することと、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較することであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
比較することと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化することと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行することと
をさらに備える、Ｃ１に記載の方法。
[Ｃ１３]  コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、実行するための手段を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための手段は、
前記複数のスケーリングされた変換のうちの第２の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第３の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、手段と
を含む、装置。
[Ｃ１４]  前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、Ｃ１３に記載の装置。
[Ｃ１５]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ１３に記載の装置。
[Ｃ１６]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、Ｃ１３に記載の装置。
[Ｃ１７]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ１６に記載の装置。
[Ｃ１８]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、Ｃ１６に記載の装置。
[Ｃ１９]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ１８に記載の装置。
[Ｃ２０]  前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することと、スケーリングされた変換係数を出力することとを行うためのスケーリングされた手段を備え、
前記方法が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用するための量子化手段をさらに備える、Ｃ１３に記載の装置。
[Ｃ２１]  前記スケールファクタを適用するための前記量子化手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用するための量子化手段を備える、Ｃ２０に記載の装置。
[Ｃ２２]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ２１に記載の装置。
[Ｃ２３]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ１３に記載の装置。
[Ｃ２４]  前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行するための手段と、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行するための手段と、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための前記手段が、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための手段を備える、
比較するための手段と、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化するための手段と、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するための手段と
をさらに備える、Ｃ１３に記載の装置。
[Ｃ２５]  コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、前記スケーリングされた３２点変換ユニットが、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える装置であって、
前記３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、装置。
[Ｃ２６]  前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、Ｃ２５に記載の装置。
[Ｃ２７]  前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ２５に記載の装置。
[Ｃ２８]  前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つの８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、Ｃ２５に記載の装置。
[Ｃ２９]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ２８に記載の装置。
[Ｃ３０]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、Ｃ２８に記載の装置。
[Ｃ３１]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ３０に記載の装置。
[Ｃ３２]  前記スケーリングされた３２点変換ユニットが、スケーリングされた変換係数を出力し、
前記装置が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用する量子化ユニットをさらに備える、Ｃ２５に記載の装置。
[Ｃ３３]  前記量子化ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用する、Ｃ３２に記載の装置。
[Ｃ３４]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ３３に記載の装置。
[Ｃ３５]  前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ２５に記載の装置。
[Ｃ３６]  前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行する動き推定ユニットと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行し、ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較する動き補償ユニットであって、
前記スケーリングされた３２点変換ユニットが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行する、
動き補償ユニットと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化する量子化ユニットと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するエントロピーコーディングユニットと
をさらに備える、Ｃ２５に記載の装置。
[Ｃ３７]  実行されたとき、１つまたは複数のプロセッサに、
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実装することを行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、非一時的コンピュータ可読媒体。
[Ｃ３８]  変換されたコンテンツデータを周波数領域から空間領域に変換するための方法であって、前記方法は、
前記変換されたコンテンツデータを前記周波数領域から前記空間領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実行することを備え、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、方法。
[Ｃ３９]  前記複数のスケーリングされた変換が、複数のスケーリングされた逆離散コサイン変換（ＩＤＣＴ）に近似する、Ｃ３８に記載の方法。
[Ｃ４０]  前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ３８に記載の方法。
[Ｃ４１]  前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つのスケーリングされた８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、それぞれ、前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数を用いてサイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行することを備える、Ｃ３８に記載の方法。
[Ｃ４２]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ４１に記載の方法。
[Ｃ４３]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、前記第１、第２および第３の４点変換ユニットを用いたサイズ４の前記複数のスケーリングされた変換のうちの３つと、前記第２および第３の８点変換ユニットを用いたサイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行することを備える、Ｃ４１に記載の方法。
[Ｃ４４]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ４３に記載の方法。
[Ｃ４５]  再構成ユニットを用いて、スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用することをさらに備え、
異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行することが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、スケーリングされた３２点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することを備える、Ｃ３８に記載の方法。
[Ｃ４６]  前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記再構成ユニット内に含まれるルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用することを備える、Ｃ４５に記載の方法。
[Ｃ４７]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ４６に記載の方法。
[Ｃ４８]  前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ３８に記載の方法。
[Ｃ４９]  前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記方法は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号することと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行することであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
実行することと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行することとをさらに備える、Ｃ３８に記載の方法。
[Ｃ５０]  コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、実行するための手段を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、
前記複数のスケーリングされた変換のうちの第２の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第３の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、手段と
を含む、装置。
[Ｃ５１]  前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、Ｃ５０に記載の装置。
[Ｃ５２]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ５０に記載の装置。
[Ｃ５３]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、Ｃ５０に記載の装置。
[Ｃ５４]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ５３に記載の装置。
[Ｃ５５]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、Ｃ５３に記載の装置。
[Ｃ５６]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ５５に記載の装置。
[Ｃ５７]  スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用するための手段をさらに備え、
前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記１つまたは複数を実行するためのスケーリングされた手段を備える、Ｃ５０に記載の装置。
[Ｃ５８]  前記スケールファクタを適用するための前記手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用するための手段を備える、Ｃ５７に記載の装置。
[Ｃ５９]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ５８に記載の方法。
[Ｃ６０]  前記複数のスケーリングされた変換のうちの前記第２の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第３の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ５０に記載の装置。
[Ｃ６１]  前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するための手段と、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行するための前記手段が、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行するための手段を備える、
実行するための手段と、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行するための手段と
をさらに備える、Ｃ５０に記載の装置。
[Ｃ６２]  コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた３２点変換ユニットであって、前記スケーリングされた３２点変換ユニットが、前記複数のスケーリングされた変換のうちの第１の変換を実行し、前記複数のスケーリングされた変換のうちの前記第１の変換が、３２の変換サイズを定義する、スケーリングされた３２点変換ユニットを備える装置であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、装置。
[Ｃ６３]  前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換（ＤＣＴ）に近似する、Ｃ６２に記載の装置。
[Ｃ６４]  前記スケーリングされた１６点変換ユニットと、前記少なくとも１つのスケーリングされた８点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ１６および８の前記複数のスケーリングされた変換のうちの前記１つをそれぞれ同時に実行する、Ｃ６２に記載の装置。
[Ｃ６５]  前記スケーリングされた１６点変換ユニットが、第１の８点変換ユニットと、第１の４点変換ユニットと、第２の４点変換ユニットとを含み、
前記少なくとも１つの８点変換ユニットが、第２の８点変換ユニットと、第３の８点変換ユニットとを含み、
前記第１、第２および第３の８点変換ユニットと、前記第１および第２の４点変換ユニットとのうちの１つまたは複数が、それぞれ、サイズ８および４の前記複数のスケーリングされた変換のうちの２つ以上を同時に実行する、Ｃ６２に記載の装置。
[Ｃ６６]  前記第１、第２および第３の８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行し、
前記第１および第２の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つをそれぞれ実行する、Ｃ６５に記載の装置。
[Ｃ６７]  前記第１の８点変換ユニットがまた、第３の４点変換ユニットを含み、
前記第１、第２および第３の４点変換ユニットと、前記第２および第３の８点変換ユニットとが、サイズ４の前記複数のスケーリングされた変換のうちの３つと、サイズ８の前記複数のスケーリングされた変換のうちの２つとを同時に実行する、Ｃ６５に記載の装置。
[Ｃ６８]  前記第３の４点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの１つを実行する、Ｃ６７に記載の装置。
[Ｃ６９]  スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用する再構成ユニットをさらに備え、
前記スケーリングされた１６点変換ユニットが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する、Ｃ６２に記載の装置。
[Ｃ７０]  前記再構成ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル（ＬＵＴ）を使用して前記スケールファクタを適用する、Ｃ６９に記載の装置。
[Ｃ７１]  前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、Ｃ７０に記載の方法。
[Ｃ７２]  前記スケーリングされた１６点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第２の変換を実行し、
前記少なくとも１つのスケーリングされた８点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第３の変換を実行する、Ｃ６２に記載の装置。
[Ｃ７３]  前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するエントロピー復号ユニットと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行する再構成ユニットであって、
異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記１つまたは複数を実行することを備える、
再構成ユニットと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行する動き補償ユニットと
をさらに備える、Ｃ６２に記載の装置。
[Ｃ７４]  実行されたとき、１つまたは複数のプロセッサに、
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの１つまたは複数を実行する３２点変換ユニットを実装することであって、前記スケーリングされた３２点変換ユニットが、サイズ３２の前記複数のスケーリングされた変換のうちの第１の変換を実行する、実装することを行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた３２点変換ユニットは、
前記複数のスケーリングされた変換のうちの第２の変換を実行する前記３２点変換ユニットの偶数ハーフ中にあるスケーリングされた１６点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第２の変換が、１６の変換サイズを定義する、スケーリングされた１６点変換ユニットと、
前記複数のスケーリングされた変換のうちの第３の変換を実行する前記３２点変換ユニットの奇数ハーフ中にある少なくとも１つのスケーリングされた８点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第３の変換が、８の変換サイズを定義する、少なくとも１つのスケーリングされた８点変換ユニットと
を含む、非一時的コンピュータ可読媒体。
【外国語明細書】
2018038046000001.pdf