(57)【要約】  概して、異なるサイズの複数の逆離散コサイン変換（ＩＤＣＴ）を適用することが可能である１６点ＩＤＣＴを実装するための技法について説明する。たとえば、１６点タイプＩＩの逆離散コサイン変換（ＩＤＣＴ−ＩＩ）ユニットを備える装置が、これらの技法を実装し得る。１６点ＩＤＣＴ−ＩＩユニットは、データを空間領域から周波数領域に変換するために異なるサイズのこれらのＩＤＣＴ−ＩＩを実行する。１６点ＩＤＣＴ−ＩＩユニットは、サイズ８のＩＤＣＴ−ＩＩのうちの１つを実行する８点ＩＤＣＴ−ＩＩユニットと、サイズ４のＩＤＣＴ−ＩＩのうちの１つを実行する第１の４点ＩＤＣＴ−ＩＩユニットとを含む。８点ＩＤＣＴ−ＩＩユニットは第１の４点ＤＣＴ−ＩＩユニットを含む。１６点ＩＤＣＴ−ＩＩユニットは、第２の４点ＩＤＣＴ−ＩＩユニットと第３の４点ＩＤＣＴ−ＩＩユニットとを含む逆８点ＤＣＴ−ＩＶユニットをも備える。第２および第３の４点ＩＤＣＴ−ＩＩユニットの各々は、サイズ４のＩＤＣＴ−ＩＩのうちの１つを実行する。
2013502625.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータを周波数領域から空間領域に変換する、異なるサイズの複数の逆離散コサイン変換（ＩＤＣＴ）を実行する１６点ＩＤＣＴユニット
を備える装置であって、前記１６点ＩＤＣＴユニットは、
サイズ８の前記複数のＩＤＣＴのうちの１つを実行する８点ＩＤＣＴユニットと、
サイズ４の前記複数のＩＤＣＴのうちの１つを実行する４点ＩＤＣＴユニットであって、前記８点ＩＤＣＴユニットが前記４点ＩＤＣＴユニットを含む、４点ＩＤＣＴユニットと、
サイズ４の前記複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットと
を備える装置。
【請求項２】
前記第１、第２および第３の４点ＩＤＣＴユニットがそれぞれ、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを同時に実行する、請求項１に記載の装置。
【請求項３】
前記少なくとも１つの８点ＩＤＣＴユニットが、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行し、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２および第３の４点ＩＤＣＴユニットがそれぞれ、前記コンテンツデータのそれぞれの第２および第３の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行する、請求項１に記載の装置。
【請求項４】
前記少なくとも１つの８点ＩＤＣＴユニットが、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行し、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２または第３の４点ＩＤＣＴユニットのいずれかが、前記コンテンツデータの第２の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行する、請求項１に記載の装置。
【請求項５】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、１５、１０、１５、１０、１７、６、１８および１に設定される、請求項１に記載の装置。
【請求項６】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタが２進分数値になるように正規化され、
前記内部ファクタＡおよびＢを正規化するために使用される第１の分母が２の１乗であり、
前記内部ファクタＣ、Ｄ、Ｅ、およびＦを正規化するために使用される第２の分母が２の２乗であり、
前記内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを正規化するために使用される第３の分母が２の３乗である請求項１に記載の装置。
【請求項７】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、１５／１６、１０／１６、１５／１６、１０／１６、１７／１６、６／１６、１８／１６および１／１６に設定されるように正規化される、請求項６に記載の装置。
【請求項８】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項６に記載の装置。
【請求項９】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値２／４、５／４、１９／３２、４／３２、１６／３２、１１／３２、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項６に記載の装置。
【請求項１０】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、３４、２７、３８、２１、４２、１１、４３および６に設定される、請求項１に記載の装置。
【請求項１１】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値２、５、１９、４、１６、１１、３４、２７、３８、２１、４２、１１、４３および６に設定される請求項１に記載の装置。
【請求項１２】
前記１６点ＩＤＣＴユニットが、前記コンテンツデータを前記周波数領域から前記空間領域に変換するためにサイズ１６の前記複数のＩＤＣＴのうちの１つを実行する、請求項１に記載の装置。
【請求項１３】
前記１６点ＩＤＣＴが、前記コンテンツデータを前記周波数領域から前記空間領域に変換し、スケーリングされたＩＤＣＴ係数を出力する、異なるサイズの複数のスケーリングされたＩＤＣＴを実行するスケーリングされた１６点ＩＤＣＴを備え、
前記装置が、量子化された完全なＩＤＣＴ係数を発生するように前記スケーリングされたＩＤＣＴ係数にスケールファクタを適用する量子化ユニットをさらに備える、請求項１に記載の装置。
【請求項１４】
前記装置がマルチメディアコーディングデバイスを備え、
前記コンテンツデータが、ビデオデータ、画像データおよびオーディオデータのうちの１つまたは複数を含む、請求項１に記載の装置。
【請求項１５】
前記装置がハンドセットを備える、請求項１に記載の装置。
【請求項１６】
前記１６点ＩＤＣＴ−ＩＩユニットが、異なるサイズの２次元ＩＤＣＴ−ＩＩを実装するように異なるサイズの前記複数のＩＤＣＴ−ＩＩのうちの２つ以上を実行し、前記異なるサイズが、１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４を含む、請求項１に記載の装置。
【請求項１７】
コーディングデバイスを用いてコンテンツデータを受信することと、
前記コーディングデバイス内に含まれる１６点逆離散コサイン変換（ＩＤＣＴ）ユニットを用いて、前記受信したコンテンツデータを空間領域から周波数領域に変換する複数のＩＤＣＴのうちの１つまたは複数を実行することと
を備える方法であって、前記１６点ＩＤＣＴユニットは、
サイズ８の前記複数のＩＤＣＴのうちの１つを実行するための少なくとも１つの８点ＩＤＣＴユニットと、
サイズ４の前記複数のＩＤＣＴのうちの１つを実行するための第１の４点ＩＤＣＴユニットであって、前記少なくとも１つの８点ＩＤＣＴユニットが前記第１の４点ＩＤＣＴユニットを含む、第１の４点ＩＤＣＴユニットと、
サイズ４の前記複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットとを備える、方法。
【請求項１８】
前記第１、第２および第３の４点ＩＤＣＴユニットを用いて、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを同時に実行することをさらに備える、請求項１７に記載の方法。
【請求項１９】
前記少なくとも１つの８点ＩＤＣＴユニットを用いて、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行することと、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２および第３の４点ＩＤＣＴユニットの各々を用いて、前記コンテンツデータのそれぞれの第２および第３の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行することとをさらに備える、請求項１７に記載の方法。
【請求項２０】
前記少なくとも１つの８点ＩＤＣＴユニットを用いて、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行することと、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２または第３の４点ＩＤＣＴユニットのいずれかを用いて、前記コンテンツデータの第２の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行することと
をさらに備える、請求項１７に記載の方法。
【請求項２１】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、１５、１０、１５、１０、１７、６、１８および１に設定される、請求項１７に記載の方法。
【請求項２２】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタが２進分数値になるように正規化され、
前記内部ファクタＡおよびＢを正規化するために使用される第１の分母が２の１乗であり、
前記内部ファクタＣ、Ｄ、Ｅ、およびＦを正規化するために使用される第２の分母が２の２乗であり、
前記内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを正規化するために使用される第３の分母が２の３乗である、請求項１７に記載の方法。
【請求項２３】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、１５／１６、１０／１６、１５／１６、１０／１６、１７／１６、６／１６、１８／１６および１／１６に設定されるように正規化される、請求項２２に記載の方法。
【請求項２４】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項２２に記載の方法。
【請求項２５】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値２／４、５／４、１９／３２、４／３２、１６／３２、１１／３２、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項２２に記載の方法。
【請求項２６】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、３４、２７、３８、２１、４２、１１、４３および６に設定される、請求項１７に記載の方法。
【請求項２７】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを含み、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを含み、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを含み、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値２、５、１９、４、１６、１１、３４、２７、３８、２１、４２、１１、４３および６に設定される、請求項１７に記載の方法。
【請求項２８】
前記１６点ＩＤＣＴユニットが、前記コンテンツデータを前記周波数領域から前記空間領域に変換するためにサイズ１６の前記複数のＩＤＣＴのうちの１つを実行する、請求項１７に記載の方法。
【請求項２９】
前記１６点ＩＤＣＴが、前記コンテンツデータを前記周波数領域から前記空間領域に変換し、スケーリングされたＩＤＣＴ係数を出力する、異なるサイズの複数のスケーリングされたＩＤＣＴを実行するスケーリングされた１６点ＩＤＣＴを備え、
前記方法が、量子化ユニットを用いて、量子化された完全なＩＤＣＴ係数を発生するように前記スケーリングされたＩＤＣＴ係数にスケールファクタを適用することをさらに備える、請求項１７に記載の方法。
【請求項３０】
前記方法がマルチメディアコーディングデバイス内で実行され、
前記コンテンツデータが、ビデオデータ、画像データおよびオーディオデータのうちの１つまたは複数を含む、請求項１７に記載の方法。
【請求項３１】
前記方法がハンドセット内で実行される、請求項１７に記載の方法。
【請求項３２】
異なるサイズの２次元ＩＤＣＴ−ＩＩを実装するように異なるサイズの前記複数のＩＤＣＴ−ＩＩのうちの２つ以上を実行することをさらに備え、前記異なるサイズが、１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４を含む、請求項１７に記載の方法。
【請求項３３】
コーディングデバイスを用いてコンテンツデータを受信することと、
前記コーディングデバイス内に含まれる１６点逆離散コサイン変換（ＩＤＣＴ）ユニットを用いて、前記受信したコンテンツデータを空間領域から周波数領域に変換する複数のＩＤＣＴのうちの１つまたは複数を実行することと
をプロセッサに行わせる命令を備える非一時的コンピュータ可読記憶媒体であって、前記１６点ＩＤＣＴユニットは、
サイズ８の前記複数のＩＤＣＴのうちの１つを実行するための少なくとも１つの８点ＩＤＣＴユニットと、
サイズ４の前記複数のスケーリングされたＩＤＣＴのうちの１つを実行するための第１の４点ＩＤＣＴユニットであって、前記少なくとも１つの８点ＩＤＣＴユニットが前記第１の４点ＩＤＣＴユニットを含む、第１の４点ＩＤＣＴユニットと、
サイズ４の前記複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットとを備える、非一時的コンピュータ可読記憶媒体。
【請求項３４】
前記命令が、前記第１、第２および第３の４点ＩＤＣＴユニットを用いて、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを同時に実行することを前記プロセッサに行わせる、請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【請求項３５】
前記命令がさらに、
前記少なくとも１つの８点ＩＤＣＴユニットを用いて、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行することと、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２および第３の４点ＩＤＣＴユニットの各々を用いて、前記コンテンツデータのそれぞれの第２および第３の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行することとを前記プロセッサに行わせる、請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【請求項３６】
前記命令がさらに、
前記少なくとも１つの８点ＩＤＣＴユニットを用いて、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行することと、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２または第３の４点ＩＤＣＴユニットのいずれかを用いて、前記コンテンツデータの第２の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行することとを前記プロセッサに行わせる、請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【請求項３７】
前記命令がさらに、異なるサイズの２次元ＩＤＣＴ−ＩＩを実装するように異なるサイズの前記複数のＩＤＣＴ−ＩＩのうちの２つ以上を実行することを前記プロセッサに行わせ、前記異なるサイズが、１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４を含む、請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【請求項３８】
コンテンツデータを受信する手段と、
前記受信したコンテンツデータを空間領域から周波数領域に変換する複数の逆離散コサイン変換のうちの１つまたは複数を実行する手段と
を備えるデバイスであって、複数のＩＤＣＴのうちの前記１つまたは複数を実行する手段は、
サイズ８の前記複数のＩＤＣＴ−ＩＩのうちの１つを実行する手段と、
サイズ４の前記複数のスケーリングされたＩＤＣＴ−ＩＩのうちの第１のＩＤＣＴ−ＩＩを実行する第１の手段であって、サイズ８の前記複数のＩＤＣＴ−ＩＩのうちの１つを実行する手段が、サイズ４の前記複数のスケーリングされたＩＤＣＴ−ＩＩのうちの１つを実行する前記第１の手段を備える、実行する第１の手段と、
サイズ４の前記複数のＩＤＣＴ−ＩＩのうちの第２のＩＤＣＴ−ＩＩを実行する第２の手段と、
サイズ４の前記複数のスケーリングされたＩＤＣＴ−ＩＩのうちの第３のＩＤＣＴ−ＩＩを実行する第３の手段とを備えるデバイス。
【請求項３９】
サイズ４の前記複数のスケーリングされたＩＤＣＴ−ＩＩのうちの第１のＩＤＣＴ−ＩＩを実行する前記第１の手段が、第１の４点ＩＤＣＴ−ＩＩユニットを備え、
前記複数のＩＤＣＴ−ＩＩのうちの１つまたは複数を実行する手段が、１６点ＩＤＣＴ−ＩＩユニットを備え、
サイズ４の前記複数のＩＤＣＴ−ＩＩのうちの前記第２のＩＤＣＴ−ＩＩを実行する前記第２の手段が、第２の４点ＩＤＣＴ−ＩＩユニットを備え、
サイズ４の前記複数のＩＤＣＴ−ＩＩのうちの前記第３のＩＤＣＴ−ＩＩを実行する前記第３の手段が、第３の４点ＩＤＣＴ−ＩＩユニットを備え、
サイズ８の前記複数のＩＤＣＴ−ＩＩのうちの前記１つを実行する手段が、前記第１の４点ＩＤＣＴ−ＩＩユニットを備える８点ＩＤＣＴ−ＩＩユニットを備え、
前記１６点ＩＤＣＴユニットが逆８点ＤＣＴ−ＩＶユニットを備え、
前記逆８点ＤＣＴ−ＩＶユニットが、前記第２の４点ＩＤＣＴ−ＩＩユニットと前記第３の４点ＤＣＴ−ＩＩユニットとを備える請求項３８に記載のデバイス。
【請求項４０】
前記第１、第２および第３の４点ＩＤＣＴユニットがそれぞれ、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを同時に実行する、請求項３９に記載のデバイス。
【請求項４１】
前記少なくとも１つの８点ＩＤＣＴユニットが、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行し、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２および第３の４点ＩＤＣＴユニットがそれぞれ、前記コンテンツデータのそれぞれの第２および第３の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行する、請求項３９に記載のデバイス。
【請求項４２】
前記少なくとも１つの８点ＩＤＣＴユニットが、前記コンテンツデータの第１の部分を前記周波数領域から前記空間領域に変換するためにサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行し、
前記８点ＩＤＣＴユニットがサイズ８の前記複数のＩＤＣＴのうちの前記１つを実行するのと同時に、前記第２または第３の４点ＩＤＣＴユニットのいずれかが、前記コンテンツデータの第２の部分を前記周波数領域から前記空間領域に変換するためにサイズ４の前記複数のＩＤＣＴのうちの前記１つを実行する、請求項３９に記載のデバイス。
【請求項４３】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを備え、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを備え、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを備え、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、１５、１０、１５、１０、１７、６、１８および１に設定される、請求項３９に記載のデバイス。
【請求項４４】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを備え、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを備え、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを備え、
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタが２進分数値になるように正規化され、
前記内部ファクタＡおよびＢを正規化するために使用される第１の分母が２の１乗であり、
前記内部ファクタＣ、Ｄ、Ｅ、およびＦを正規化するために使用される第２の分母が２の２乗であり、
前記内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを正規化するために使用される第３の分母が２の３乗である、請求項３９に記載のデバイス。
【請求項４５】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、１５／１６、１０／１６、１５／１６、１０／１６、１７／１６、６／１６、１８／１６および１／１６に設定されるように正規化される、請求項４４に記載のデバイス。
【請求項４６】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値１／２、１、１１／１６、３／１６、９／１６、７／１６、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項４４に記載のデバイス。
【請求項４７】
前記内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮは、これらの内部ファクタがそれぞれの値２／４、５／４、１９／３２、４／３２、１６／３２、１１／３２、３４／６４、２７／６４、３８／６４、２１／６４、４２／６４、１１／６４、４３／６４および６／６４に設定されるように正規化される、請求項４４に記載のデバイス。
【請求項４８】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを備え、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを備え、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを備え、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値１、２、１１、３、９、７、３４、２７、３８、２１、４２、１１、４３および６に設定される、請求項３９に記載のデバイス。
【請求項４９】
前記第１、第２および第３の４点ＩＤＣＴユニットの各々が内部ファクタＡおよびＢを備え、
前記８点ＩＤＣＴユニットが内部ファクタＣ、Ｄ、ＥおよびＦを備え、
前記逆８点ＤＣＴ−ＩＶユニットが内部ファクタＧ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮを備え、
内部ファクタＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、ＭおよびＮが、それぞれの値２、５、１９、４、１６、１１、３４、２７、３８、２１、４２、１１、４３および６に設定される、請求項３９に記載のデバイス。
【請求項５０】
複数のＩＤＣＴのうちの１つまたは複数を実行する手段が、前記コンテンツデータを前記周波数領域から前記空間領域に変換するためにサイズ１６の前記複数のＩＤＣＴのうちの１つを実行する、請求項３８に記載のデバイス。
【請求項５１】
複数のＩＤＣＴのうちの１つまたは複数を実行する手段が、前記コンテンツデータを前記周波数領域から前記空間領域に変換し、スケーリングされたＩＤＣＴ係数を出力する、異なるサイズの複数のスケーリングされたＩＤＣＴを実行する手段を備え、
前記デバイスが、量子化された完全なＩＤＣＴ係数を発生するように前記スケーリングされたＩＤＣＴ係数にスケールファクタを適用する手段をさらに備える、請求項３８に記載のデバイス。
【請求項５２】
前記デバイスがマルチメディアコーディングデバイスを備え、
前記コンテンツデータが、ビデオデータ、画像データおよびオーディオデータのうちの１つまたは複数を備える請求項３８に記載のデバイス。
【請求項５３】
前記デバイスがハンドセットを備える、請求項３８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２００９年６月２４日に出願された米国仮出願第６１／２１９，８８５号の利益を主張する。
【０００２】
本特許出願は、本明細書と同時に出願され、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、代理人整理番号第０９２２４１Ｕ２号を有する「16-POINT TRANSFORM FOR MEDIA DATA CODING」の同時係属米国特許出願に関する。
【０００３】
本開示は、データ圧縮に関し、より詳細には、変換を含むデータ圧縮に関する。
【背景技術】
【０００４】
データ圧縮は、データ記憶空間、伝送帯域幅、またはその両方の消費を低減するために、様々な適用例において広く使用されている。データ圧縮の例示的な適用例には、デジタルビデオ、画像、音声、およびオーディオコーディングなど、可視または可聴メディアデータコーディングがある。たとえば、デジタルビデオコーディングは、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスにおいて使用されている。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＨ．２６４／ＭＰＥＧ−４  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）など、ビデオ圧縮技法を実装する。
【０００５】
ビデオ圧縮技法では、ビデオデータに固有の冗長性を低減または除去するために空間的予測、動き推定および動き補償を実行し得る。特に、イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオエンコーダは、２つ以上の隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。動き推定は、１つまたは複数の参照フレーム中の対応するビデオブロックに対するビデオブロックの変位を示す動きベクトルを発生する。動き補償は、その動きベクトルを使用して、参照フレームから予測ビデオブロックを発生する。動き補償の後、元のビデオブロックから予測ビデオブロックを減算することによって残差ビデオブロックが形成される。
【０００６】
ビデオエンコーダは、ビデオコーディングプロセスによって生成された残差ブロックのビットレートをさらに低減するために、変換を適用し、その後、量子化およびロスレス統計的コーディングプロセスを適用する。場合によっては、適用された変換は離散コサイン変換（ＤＣＴ）を備える。一般に、ＤＣＴは、（しばしば「１６×１６ビデオブロック」と呼ばれる）高さ１６ピクセル×幅１６ピクセルであるビデオブロックなど、サイズが２のべき乗であるビデオブロックに適用される。したがって、ＤＣＴ係数の１６点アレイを生成するために、これらのＤＣＴが１６×１６ビデオブロックに適用されるという点で、これらのＤＣＴは１６点ＤＣＴと呼ばれることがある。１６点ＤＣＴを残差ブロックに適用することから生成されたＤＣＴ係数の１６点アレイは、次いで、量子化プロセスおよび（一般に「エントロピーコーディング」プロセスとして知られる）ロスレス統計的コーディングプロセスを受けて、ビットストリームを発生する。統計的コーディングプロセスの例には、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）またはコンテキスト適応型２値算術コーディング（ＣＡＢＡＣ）がある。ビデオデコーダは、符号化されたビットストリームを受信し、ブロックの各々について残差情報を復元するためにロスレス復号を実行する。残差情報と動き情報とを使用して、ビデオデコーダは、符号化されたビデオを再構成する。
【発明の概要】
【０００７】
概して、本開示は、１６点離散コサイン変換（ＤＣＴ）だけでなく、異なるサイズの複数の異なるＤＣＴを実行することが可能な１６点ＤＣＴの実装を使用して、メディアデータなどのデータをコーディングするための技法を目的とする。一例として、本開示の技法に従って構築された１６点ＤＣＴ実装は、サイズ１６のＤＣＴを実行し、サイズ８のＤＣＴを実行する少なくとも１つの８点ＤＣＴ実装と、サイズ４のＤＣＴを実行する少なくとも１つのＤＣＴ実装とを含む。別の例として、本開示の技法に従って構築された１６点ＤＣＴ実装は、サイズ１６の線形ＤＣＴを実行し、サイズ８の線形ＤＣＴを実行する少なくとも１つの８点ＤＣＴ実装と、各々が、サイズ４の線形ＤＣＴを実行し、それらが互いに同時に動作し得る少なくとも２つの４点ＤＣＴ実装とを含む。さらに、８点ＤＣＴ実装は、少なくとも２つの４点ＤＣＴ実装によって実行される４点ＤＣＴと同時に動作し得る、サイズ４の別の線形ＤＣＴを実行するさらに別の４点ＤＣＴ実装を含み得る。したがって、本開示の技法に従って構築された１６点ＤＣＴ実装は、変動するサイズのいくつかの異なるＤＣＴ実装を組み込み得、個別の１６点、８点および４点ＤＣＴ実装の各々によって従来消費されていたチップ面積に比較して、消費するチップ面積が著しく小さくなり得る。
【０００８】
これらの線形ＤＣＴは、最初に、水平軸などに沿った方向など、ブロックに沿った１つの方向においてこれらの線形ＤＣＴのうちの１つを適用することによって、任意の所与のサイズのビデオブロックに適用され、次いで、垂直軸に沿った方向など、ブロックに沿った他の方向において適用され得る。このようにしてこれらの線形ＤＣＴを適用することによって、変動するサイズのＤＣＴが適用され得る。たとえば、基礎をなすビデオブロックのサイズに応じて事実上１６×８または８点ＤＣＴを適用するために、１６点ＤＣＴが一方向において適用され得、８点ＤＣＴが別の方向において適用され得る。このようにして、線形ＤＣＴは、サイズ１６、１６×８、８×１６、８×８、８×４、４×８のＤＣＴ、または上記の線形サイズの任意の他の組合せのＤＣＴを実行するために適用され得る。
【０００９】
一態様では、装置が、コンテンツデータを空間領域から周波数領域に変換する、異なるサイズの複数のタイプＩＩの離散コサイン変換（ＤＣＴ−ＩＩ）を実行する１６点ＤＣＴ−ＩＩユニットを備える。１６点ＤＣＴ−ＩＩユニットは、サイズ８の複数のＤＣＴ−ＩＩのうちの１つを実行する８点ＤＣＴ−ＩＩユニットと、サイズ４の複数のＤＣＴ−ＩＩのうちの１つを実行する第１の４点ＤＣＴ−ＩＩユニットとを含む。８点ＤＣＴ−ＩＩユニットは第１の４点ＤＣＴ−ＩＩユニットを含む。１６点ＤＣＴ−ＩＩユニットはまた、サイズ４の複数のＤＣＴ−ＩＩのうちの１つを各々が実行する、第２の４点ＤＣＴ−ＩＩユニットと第３の４点ＤＣＴ−ＩＩユニットとを備える８点ＤＣＴ−ＩＶユニットを含む。
【００１０】
別の態様では、方法が、コーディングデバイスを用いてコンテンツデータを受信することと、コーディングデバイス内に含まれる１６点タイプＩＩの離散コサイン変換（ＤＣＴ−ＩＩ）ユニットを用いて、受信したコンテンツデータを空間領域から周波数領域に変換する複数のＤＣＴ−ＩＩのうちの１つまたは複数を実行することとを備える。１６点ＤＣＴ−ＩＩユニットは、サイズ８の複数のＤＣＴ−ＩＩのうちの１つを実行する少なくとも１つの８点ＤＣＴ−ＩＩユニットと、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの１つを実行する第１の４点ＤＣＴ−ＩＩユニットと、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの１つを各々が実行する、第２の４点ＤＣＴ−ＩＩユニットと第３の４点ＤＣＴ−ＩＩユニットとを備える８点ＤＣＴ−ＩＶユニットとを含む。
【００１１】
別の態様では、非一時的コンピュータ可読記憶媒体が、実行されると、コーディングデバイスを用いてコンテンツデータを受信することと、コーディングデバイス内に含まれる１６点タイプＩＩの離散コサイン変換（ＤＣＴ−ＩＩ）ユニットを用いて、受信したコンテンツデータを空間領域から周波数領域に変換する複数のＤＣＴ−ＩＩのうちの１つまたは複数を実行することとをコーディングデバイスに行わせる命令を備える。１６点ＤＣＴ−ＩＩユニットは、サイズ８の複数のＤＣＴ−ＩＩのうちの１つを実行する少なくとも１つの８点ＤＣＴ−ＩＩユニットと、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの１つを実行する第１の４点ＤＣＴ−ＩＩユニットと、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの１つを各々が実行する、第２の４点ＤＣＴ−ＩＩユニットと第３の４点ＤＣＴ−ＩＩユニットとを備える８点ＤＣＴ−ＩＶユニットとを含む。
【００１２】
別の態様では、デバイスが、コーディングデバイスを用いてコンテンツデータを受信するための手段と、受信したコンテンツデータを空間領域から周波数領域に変換する複数のタイプＩＩの離散コサイン変換（ＤＣＴ−ＩＩ）のうちの１つまたは複数を実行するための手段とを備える。複数のＤＣＴ−ＩＩのうちの１つまたは複数を実行するための手段は、サイズ８の複数のＤＣＴ−ＩＩのうちの１つを実行するための手段と、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの第１の１つを実行するための第１の手段であって、サイズ８の複数のＤＣＴ−ＩＩのうちの１つを実行するための手段が、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの１つを実行するための第１の手段を備える、第１の手段と、サイズ４の複数のＤＣＴ−ＩＩのうちの第２の１つを実行するための第２の手段と、サイズ４の複数のスケーリングされたＤＣＴ−ＩＩのうちの第３の１つを実行するための第３の手段とを含む。
【００１３】
別の態様では、装置が、コンテンツデータを周波数領域から空間領域に変換する、異なるサイズの複数の逆離散コサイン変換（ＩＤＣＴ）を実行する１６点ＩＤＣＴユニットを備える。１６点ＩＤＣＴユニットは、サイズ８の複数のＩＤＣＴのうちの１つを実行する８点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを実行する４点ＩＤＣＴユニットであって、８点ＩＤＣＴユニットが４点ＩＤＣＴユニットを含む、４点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットとを含む。
【００１４】
別の態様では、方法が、コーディングデバイスを用いてコンテンツデータを受信することと、コーディングデバイス内に含まれる１６点逆離散コサイン変換（ＩＤＣＴ）ユニットを用いて、受信したコンテンツデータを空間領域から周波数領域に変換する複数のＩＤＣＴのうちの１つまたは複数を実行することとを備える。１６点ＩＤＣＴユニットは、サイズ８の複数のＩＤＣＴのうちの１つを実行する少なくとも１つの８点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを実行する第１の４点ＩＤＣＴユニットであって、少なくとも１つの８点ＩＤＣＴユニットが第１の４点ＩＤＣＴユニットを含む、４点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットとを含む。
【００１５】
別の態様では、非一時的コンピュータ可読記憶媒体が、実行されると、コーディングデバイスを用いてコンテンツデータを受信することと、コーディングデバイス内に含まれる１６点逆離散コサイン変換（ＩＤＣＴ）ユニットを用いて、受信したコンテンツデータを空間領域から周波数領域に変換する複数のＩＤＣＴのうちの１つまたは複数を実行することとをコーディングデバイスに行わせる命令を備える。１６点ＩＤＣＴユニットは、サイズ８の複数のＩＤＣＴのうちの１つを実行する少なくとも１つの８点ＩＤＣＴユニットと、サイズ４の複数のスケーリングされたＩＤＣＴのうちの１つを実行する第１の４点ＩＤＣＴユニットであって、少なくとも１つの８点ＩＤＣＴユニットが第１の４点ＩＤＣＴユニットを含む、４点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える、逆８点ＤＣＴ−ＩＶユニットとを含む。
【００１６】
別の態様では、デバイスが、コーディングデバイスを用いてコンテンツデータを受信するための手段と、受信したコンテンツデータを空間領域から周波数領域に変換する複数の逆離散コサイン変換のうちの１つまたは複数を実行するための手段とを備える。複数のＩＤＣＴのうちの１つまたは複数を実行するための手段は、サイズ８の複数のＩＤＣＴのうちの１つを実行するための手段と、サイズ４の複数のスケーリングされたＩＤＣＴのうちの第１の１つを実行するための第１の手段であって、サイズ８の複数のＩＤＣＴのうちの１つを実行するための手段が、サイズ４の複数のスケーリングされたＩＤＣＴのうちの１つを実行するための第１の手段を備える、第１の手段と、サイズ４の複数のＩＤＣＴのうちの第２の１つを実行するための第２の手段と、サイズ４の複数のスケーリングされたＩＤＣＴのうちの第３の１つを実行するための第３の手段とを含む。
【００１７】
本技法の１つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１８】
【図１】本開示の技法を実装することができるビデオ符号化および復号システムを示すブロック図。
【図２】図１のビデオエンコーダをより詳細に示すブロック図。
【図３】図１のビデオデコーダをより詳細に示すブロック図。
【図４Ａ】図２の１６点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｂ】図２の１６点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｃ】図２の１６点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図４Ｄ】図２の１６点ＤＣＴ−ＩＩユニットの様々な態様をより詳細に示す図。
【図５】本開示の技法に従って構築された１６点ＤＣＴ実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。
【図６】本開示の技法に従って構成された１６点ＤＣＴ−ＩＩＩ実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１９】
概して、本開示は、異なるサイズのいくつかの異なる離散コサイン変換（ＤＣＴ）を実行することが可能ないくつかの異なるＤＣＴ実装を含む１６点ＤＣＴ実装を使用してデータをコーディングするための技法を対象とする。本技法は、デジタルビデオデータ、画像データ、音声データ、および／またはオーディオデータなど、可視メディアデータまたは可聴メディアデータを含む様々なデータを圧縮し、それによって、そのようなデータを表すそのような電気信号を、それらの電気信号のより効率的な処理、送信またはアーカイブのために圧縮信号に変換するために適用され得る。したがって、本開示の技法に従って構築された１６点ＤＣＴ実装は、複数のサイズのＤＣＴを実行することが可能である。複数のサイズのＤＣＴを実行することによって、１６点ＤＣＴ実装は、同様のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくす。したがって、本技法に従って構築された１６点ＤＣＴ実装は、別個の１６点、８点および４点ＤＣＴ実装の総サイズに比較して１６点実装のサイズを大幅に増加させることなしに、８および４など、異なるサイズのＤＣＴ実装を組み込み、ネスティングし、または場合によっては埋め込むので、説明する技法は、いわゆる「ボードスペース」の消費の低減を促進し得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００２０】
上記で示したサイズ、すなわち、１６、８および４は個別のデータ単位に関して表される。例示のために、ビデオデータについては、しばしば、特にビデオ圧縮に関して、ビデオブロックとして説明する。ビデオブロックは、一般に、ビデオフレームの任意のサイズの部分を指し、ビデオフレームは、一連のピクチャまたは画像中のピクチャまたは画像を指す。各ビデオブロックは、一般に、色成分、たとえば、赤、青および緑（いわゆる「色度」または「クロマ」成分）または輝度成分（いわゆる「ルーマ」成分）のいずれかを示す複数の個別のピクセルデータを備える。ピクセルデータの各セットは、ビデオブロック中に単一のピクセルを備え、ビデオブロックに関する個別のデータ単位と考えられ得る。したがって、８×８ビデオブロックは、たとえば、ピクセルデータの８つの列を備え、各列中にピクセルデータの８つの個別のセットがある。色または輝度値を指定するために、各ピクセルにｎビット値が割り当てられ得る。
【００２１】
ＤＣＴについては、通常、オーディオ、音声、画像またはビデオデータであるかどうかにかかわらず、ＤＣＴが処理することが可能であるデータブロックのサイズに関して説明する。たとえば、ＤＣＴが１６データアレイを処理することができる場合、そのＤＣＴは線形１６点ＤＣＴと呼ばれることがある。異なるサイズのビデオブロックに対して、１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４または任意の他のサイズの組合せを効果的に実行するために、異なるサイズの線形ＤＣＴが適用され得る。その上、ＤＣＴは特定のタイプとして示され得る。８つの異なるタイプのＤＣＴのうちの最も一般的に採用されるタイプのＤＣＴは、「ＤＣＴ−ＩＩ」と示され得るタイプＩＩのＤＣＴである。しばしば、概括的にＤＣＴに言及するとき、そのような言及は、タイプＩＩのＤＣＴまたはＤＣＴ−ＩＩを指す。ＤＣＴ−ＩＩの逆元（inverse）は、同様に「ＤＣＴ−ＩＩＩ」と示され得るタイプＩＩＩのＤＣＴと呼ばれるか、または、ＤＣＴがＤＣＴ−ＩＩを指すという共通の理解があれば、「ＩＤＣＴ」と呼ばれ、「ＩＤＣＴ」中の「Ｉ」は逆元を示す。以下のＤＣＴへの言及はこの表記法に準拠し、ＤＣＴへの概括的言及は、別段に規定されていない限りＤＣＴ−ＩＩを指す。しかしながら、混乱を回避するために、ＤＣＴ−ＩＩを含むＤＣＴは、以下で、対応するタイプ（ＩＩ、ＩＩＩなど）を示した状態で言及される。
【００２２】
本開示で説明する技法は、それぞれ、データの圧縮および／または復元を可能にするために、１６点ＤＣＴ−ＩＩおよび／または１６点ＤＣＴ−ＩＩＩのうちの１つまたは複数の実装を採用するエンコーダおよび／またはデコーダにおいて実装され得る。この場合も、これらの１６点ＤＣＴ−ＩＩ実装を適用することによって達成される圧縮および復元は、物理的コンピューティングハードウェア、物理的伝送媒体（たとえば、銅、光ファイバ、ワイヤレス、または他のメディア）、および／またはストレージハードウェア（たとえば、磁気または光ディスクまたはテープ、あるいは様々なソリッドステートメディアのいずれか）を使用して、データを表す電気信号がより効率的に処理され、送信され、および／または記憶され得るように、それらの信号の物理的変換を可能にする。実装は、ハードウェアのみで構成され得るか、またはハードウェアとソフトウェアの組合せで構成され得る。
【００２３】
１６点ＤＣＴ−ＩＩの実装はスケーリングされ得、「スケーリングされた」という用語は、スケーリングされたＤＣＴ係数を生成するＤＣＴ実装を指す。スケーリングされたＤＣＴ係数に、対応するスケールファクタを乗算すると、いわゆる「完全」ＤＣＴ係数が生成される。スケーリングされたＤＣＴ実装は、実装からいくつかのファクタが除去されたＤＣＴ実装を表す。概して、これらのファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた１６点ＤＣＴ実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた１６点ＤＣＴ実装によって出力されたスケーリングされたＤＣＴ係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全ＤＣＴ実装は、量子化ユニットなど、ファクタを適用する別のモジュールと組み合わせたスケーリングされたＤＣＴ実装よりも概して複雑である。したがって、スケーリングされたＤＣＴ実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたＤＣＴ実装に関して説明するが、本技法は、スケーリングされていないＤＣＴ実装またはいわゆる「完全」ＤＣＴ実装に適用され得る。
【００２４】
例示のために、装置が、１６点ＤＣＴ変換モジュールの形態で本開示の技法に従って構築された１６点ＤＣＴ実装を含み得る。１６点ＤＣＴ変換モジュールは、コンテンツデータを空間領域から周波数領域に変換するために、異なるサイズのいくつかのスケーリングされたＤＣＴ変換を実行し得る。スケーリングされた１６点ＤＣＴモジュールは、サイズ８のいくつかのスケーリングされたＤＣＴ変換のうちの第１のＤＣＴ変換を実行する少なくとも１つのスケーリングされた８点ＤＣＴモジュールを含み得る。スケーリングされた１６点ＤＣＴモジュールはまた、サイズ４のいくつかのスケーリングされたＤＣＴ変換のうちの少なくとも第２のＤＣＴ変換を実行する少なくとも１つのスケーリングされた４点ＤＣＴモジュールを含み得る。
【００２５】
この点において、本開示の技法に従って構築された１６点ＤＣＴ実装は、少なくともいくつかの態様では、複数のサイズのＤＣＴを実行し、それによって、複数のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくすことが可能であり得る。したがって、本技法に従って構築された１６点ＤＣＴ実装は、１６点実装のサイズを大幅に増加させることなしに、８および４など、異なるサイズのＤＣＴ実装を組み込み、ネスティングし、または場合によっては埋め込むので、本開示の技法は、いわゆる「ボードスペース」の消費の低減を促進する。別個の１６点、８点および４点ＤＣＴ実装の総サイズに比較して、本開示の１６点ＤＣＴ−ＩＩ実装は、消費される物理的ボードスペースに関して大幅に小さくなり得、ボードスペースという用語は、異なる構成要素間の相互接続を与えるシリコンまたは他の物理的ボード上で消費されるスペースの量を指す。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００２６】
図１は、ビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを受信ハードウェアデバイス１４に送信するソースハードウェアデバイス１２を含む。ソースデバイス１２は、ビデオソース１８とビデオエンコーダ２０と送信機２２とを含み得る。宛先デバイス１４は、受信機２４と、ビデオデコーダ２６と、ビデオディスプレイデバイス２８とを含み得る。
【００２７】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレスおよびワイヤード媒体の任意の組合せを備え得る。チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル１６は、一般に、ビデオデータをソースデバイス１２から受信デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。
【００２８】
ソースデバイス１２は、宛先デバイス１４に送信するためのビデオを発生する。ただし、場合によっては、デバイス１２、１４は、実質的に対称に動作し得る。たとえば、デバイス１２、１４の各々は、ビデオ符号化および復号構成要素を含み得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオブロードキャスト、またはビデオ電話のためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。他のデータ圧縮およびコーディング適用例の場合、デバイス１２、１４は、画像、音声またはオーディオデータ、あるいはビデオ、画像、音声およびオーディオデータのうちの２つ以上の組合せなど、他のタイプのデータを送信および受信、または交換するように構成され得る。したがって、ビデオ適用例の以下の説明は例示のために与えたものであり、本明細書で広く説明する本開示の様々な態様を限定するものと見なすべきではない。
【００２９】
ビデオソース１８は、１つまたは複数のビデオカメラ、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのライブビデオフィードなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース１８はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとコンピュータ発生ビデオとの組合せを発生し得る。場合によっては、ビデオソース１８がカメラである場合、ソースデバイス１２および受信デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。したがって、いくつかの態様では、ソースデバイス１２、受信デバイス１４またはその両方は、モバイル電話など、ワイヤレス通信デバイスハンドセットを形成し得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ発生ビデオは、送信機２２とチャネル１６と受信機２４とを介してビデオソースデバイス１２からビデオ受信デバイス１４のビデオデコーダ２６に送信するために、ビデオエンコーダ２０によって符号化され得る。ディスプレイデバイス２８は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイまたは有機発光ダイオード（ＯＬＥＤ）ディスプレイなどの様々なディスプレイデバイスのいずれかを含み得る。
【００３０】
ビデオエンコーダ２０およびビデオデコーダ２６は、空間、時間および／または信号対雑音比（ＳＮＲ）スケーラビリティのためのスケーラブルビデオコーディングをサポートするように構成され得る。いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ２２は、ファイングラニュラリティＳＮＲスケーラビリティ（ＦＧＳ）コーディングをサポートするように構成され得る。エンコーダ２０およびデコーダ２６は、ベースレイヤおよび１つまたは複数のスケーラブルエンハンスメントレイヤの符号化、送信および復号をサポートすることによって様々な程度のスケーラビリティをサポートし得る。スケーラブルビデオコーディングの場合、ベースレイヤは最小品質レベルでビデオデータを搬送する。１つまたは複数のエンハンスメントレイヤは追加のビットストリームを搬送して、より高い空間的レベル、時間的レベルおよび／またはＳＮＲレベルをサポートする。
【００３１】
ビデオエンコーダ２０およびビデオデコーダ２６は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）などのビデオ圧縮規格に従って動作し得る。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ２６は、それぞれオーディオエンコーダおよびデコーダと統合され、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３２】
ビデオエンコーダ２０およびビデオデコーダ２６はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。したがって、ビデオエンコーダ２０およびビデオデコーダ２６の各々は、集積回路（ＩＣ）チップまたはデバイスとして少なくとも部分的に実装され、１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれかは、複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合され得る。さらに、ソースデバイス１２および受信デバイス１４はそれぞれ、符号化ビデオの送信および受信のために適切な変調、復調、周波数変換、フィルタ処理、および増幅器構成要素を含み、適用可能な場合、ワイヤレス通信をサポートするために十分な無線周波（ＲＦ）ワイヤレス構成要素およびアンテナを含み得る。ただし、説明しやすいように、そのような構成要素は図１に示していない。
【００３３】
ビデオシーケンスは一連のビデオフレームを含む。ビデオエンコーダ２０は、ビデオデータを符号化するために個々のビデオフレーム内のピクセルのブロックに作用する。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは一連のスライスを含む。各スライスは一連のマクロブロックを含み得、それらはサブブロック中に配置され得る。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、または４×４、およびクロマ成分については８×８など、様々なダイアディックブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。
【００３４】
ビデオブロックは、小さいほどより良い解像度が得られ、高い詳細レベルを含むビデオフレームの位置決めに使用され得る。概して、マクロブロックおよび様々なサブブロックまたはパーティションはすべてビデオブロックであると考えられ得る。さらに、スライスは、マクロブロックおよび／またはサブブロックまたはパーティションなど、一連のビデオブロックであると考えられ得る。概して、マクロブロックは、１６×１６のピクセルエリアを定義するクロミナンス値と輝度値とのセットを指し得る。輝度ブロックは、１６×１６の値セットを備え得るが、８×８ブロック、４×４ブロック、８×４ブロック、４×８ブロックまたは他のサイズなど、より小さいビデオブロックにさらに区分され得る。２つの異なるクロミナンスブロックは、マクロブロックの色を定義し得、それぞれ１６×１６のピクセルエリアに関連するカラー値の８×８サブサンプルブロックを備え得る。マクロブロックは、マクロブロックに適用されるコーディングモードおよび／またはコーディング技法を定義するためのシンタックス情報を含み得る。
【００３５】
マクロブロックまたは他のビデオブロックは、スライス、フレームまたは他の独立した単位などの復号可能な単位にグループ化され得る。各スライスはビデオフレームの単独で復号可能な単位であり得る。代替的に、フレーム自体が復号可能な単位であり得るか、またはフレームの他の部分が復号可能な単位として定義され得る。本開示では、「コード化された単位」という用語は、使用されるコーディング技法に従って定義される、フレーム全体、フレームのスライス、ピクチャグループ（ＧＯＰ）、または別の単独で復号可能な単位など、ビデオフレームの任意の単独で復号可能な単位を指す。
【００３６】
図１のシステム１０のビデオエンコーダ２０および／またはビデオデコーダ２６は、それぞれ１６点ＤＣＴ−ＩＩの実装とその逆元（たとえば、１６点ＤＣＴ−ＩＩＩ）とを含むように構成され得、１６点ＤＣＴ−ＩＩ実装は、本開示で説明する技法に従って構築される。ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分では１６×１６、８×８、４×４、およびクロマ成分では８×８など、様々なブロックサイズのイントラ予測をサポートするが、コーディング効率を改善するためのこの規格の改訂が現在進行中である。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって提案された１つの改訂された規格は、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）と呼ばれることがある。いくつかの例では、本開示の技法に従って構築された１６点タイプＩＩのＤＣＴ（「ＤＣＴ−ＩＩ」）実装は、コーディング効率を維持しながら、また実装サイズを低減し、それによって、消費される物理的ボードスペースを小さくし、電力効率を促進し得る。したがって、ＨＥＶＣおよび他の発展的規格または仕様は、これらのＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩを考慮し得る。
【００３７】
本開示で説明する技法によれば、１６点ＤＣＴ−ＩＩの実装は、異なるサイズの複数のＤＣＴ−ＩＩを行う。ビデオエンコーダ２０は、この１６点ＤＣＴ−ＩＩ実装を表す（説明しやすいように図１には示されていない）１６点ＤＣＴ−ＩＩユニットを含み得る。１６点ＤＣＴ−ＩＩユニットは、概してコンテンツデータを空間領域から周波数領域に変換するために、異なるサイズの複数またはいくつかのスケーリングされたＤＣＴ変換を実行し得る。一例として、１６点ＤＣＴ−ＩＩユニットは、サイズ８のスケーリングされたＤＣＴ変換のうちの第１のＤＣＴ変換を実行する少なくとも１つのスケーリングされた８点ＤＣＴモジュールと、サイズ４のＤＣＴ変換のうちの少なくとも第２のＤＣＴ変換を実行する少なくとも１つのスケーリングされた４点変換モジュールとを含み得る。
【００３８】
この点において、本開示の技法に従って構築された単一の１６点ＤＣＴ−ＩＩ実装は、少なくともいくつかの態様では、複数のサイズのＤＣＴを実行し、それによって、同様のサイズのＤＣＴを実行するための別個のＤＣＴ実装を潜在的になくすことが可能であり得る。したがって、本技法に従って構築された１６点ＤＣＴ実装は、１６点実装のサイズを大幅に増加させることなしに、８および４など、異なるサイズのＤＣＴ実装を組み込み、ネスティングし、または場合によっては埋め込むので、本開示の技法は、シリコンボード上の消費される物理的スペースの面積を指すいわゆる「ボードスペース」の消費の低減を促進し得る。別個の１６点、８点および４点ＤＣＴ実装の総サイズに比較して、１６点ＤＣＴ−ＩＩ実装は、消費される物理的ボードスペースに関して大幅に小さくなり得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いＤＣＴ実装を促進し得る。
【００３９】
本開示の技法に従って構築された１６点ＤＣＴ−ＩＩの実装はスケーリングされ得、「スケーリングされた」という用語は、いわゆる「完全」ＤＣＴ係数でない、スケーリングされたＤＣＴ係数を生成するＤＣＴ実装を指す。スケーリングされたＤＣＴ実装は、実装からいくつかのファクタが除去されたＤＣＴ実装を表す。概して、これらの除去されたファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた１６点ＤＣＴ実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた１６点ＤＣＴ実装によって出力されたスケーリングされたＤＣＴ係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全ＤＣＴ実装は、概して、量子化ユニットなど、ファクタを適用する別のモジュールと組み合わせたスケーリングされたＤＣＴ実装よりも複雑である。したがって、スケーリングされたＤＣＴ実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたＤＣＴ実装に関して説明するが、本技法は、スケーリングされていないＤＣＴ実装またはいわゆる「完全」ＤＣＴ実装に適用され得る。
【００４０】
図２は、図１のビデオエンコーダ２０をより詳細に示すブロック図である。ビデオエンコーダ２０は、少なくとも部分的に、まとめて集積回路デバイスと呼ばれることがある１つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオエンコーダ２０は、ワイヤレス通信デバイスハンドセットまたはブロードキャストサーバの一部を形成し得る。ビデオエンコーダ２０は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオエンコーダ２０は、隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。
【００４１】
図２に示すように、ビデオエンコーダ２０は、符号化すべきビデオフレーム内の現在ビデオブロック３０を受信する。図２の例では、ビデオエンコーダ２０は、動き推定ユニット３２と、メモリ３４と、動き補償ユニット３６と、ブロック変換ユニット３８と、量子化ユニット４０と、逆量子化ユニット４２と、逆変換ユニット４４と、エントロピーコーディングユニット４６とを含む。ブロッキングアーティファクトを除去するために、ループ内またはポストループデブロッキングフィルタ（図示せず）がフィルタブロックに適用され得る。ビデオエンコーダ２０はまた、加算器４８と加算器５０とを含む。図２は、ビデオブロックのインターコーディングのためのビデオエンコーダ２０の時間的予測構成要素を示す。説明しやすいように図２には示されていないが、ビデオエンコーダ２０は、いくつかのビデオブロックのイントラコーディングのための空間的予測構成要素をも含み得る。
【００４２】
動き推定ユニット３２は、１つまたは複数の動きベクトルを発生するためにビデオブロック３０を１つまたは複数の隣接ビデオフレーム中のブロックと比較する。以前に符号化されたブロックから再構成されたビデオブロックを記憶するために任意のタイプのメモリまたはデータ記憶デバイスを備え得るメモリ３４から、１つまたは複数の隣接フレームが検索され得る。動き推定は、可変サイズ、たとえば、１６×１６、１６×８、８×１６、８×８、またはより小さいブロックサイズのブロックに対して実行され得る。動き推定ユニット３２は、たとえば、レートひずみモデルに基づいて現在ビデオブロック３０に最もぴったり一致する隣接フレーム中の１つまたは複数のブロックを識別し、隣接フレーム中のブロックと現在ビデオブロックとの間の変位を判断する。これに基づいて、動き推定ユニット３２は、現在ビデオブロック３０と、現在ビデオブロック３０をコーディングするために使用される参照フレームからの１つまたは複数の一致するブロックとの間の変位の大きさおよび軌道を示す、１つまたは複数の動きベクトル（ＭＶ）を生成する。一致する１つまたは複数のブロックは、コーディングすべきブロックのインターコーディングのための予測（predictive）（または予測（prediction））ブロックとして働くことになる。
【００４３】
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ２０は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。端数のピクセル値をもつ動きベクトルを使用するとき、動き補償ユニット３６中で補間演算が実行される。動き推定ユニット３２は、レートひずみモデルなど、いくつかの基準を使用してビデオブロック識別するために、最良のブロック区分を判断し、１つまたは複数の動きベクトルを発生する。たとえば、双方向予測の場合、複数の動きベクトルがあり得る。得られたブロック区分および動きベクトルを使用して、動き補償ユニット３６は予測ビデオブロックを形成する。
【００４４】
ビデオエンコーダ２０は、加算器４８において、元の現在ビデオブロック３０から、動き補償ユニット３６によって生成された予測ビデオブロックを減算することによって残差ビデオブロックを形成する。ブロック変換ユニット３８は、残差変換ブロック係数を生成する変換を適用する。図２に示すように、ブロック変換ユニット３８は、本開示で説明する技法に従って構築された１６点ＤＣＴ−ＩＩを実装する１６点ＤＣＴ−ＩＩユニット５２を含む。１６点ＤＣＴ−ＩＩユニット５２は、いくつかの例では、本開示で説明するように、１６点ＤＣＴ−ＩＩ、８点ＤＣＴ−ＩＩおよび４点ＤＣＴ−ＩＩのうちの１つまたは複数を実行することが可能な１６点ＤＣＴ−ＩＩを実装するソフトウェアを実行するハードウェアモジュール（ソフトウェアコードまたは命令を実行するデジタル信号プロセッサまたはＤＳＰなど）を表す。１６点ＤＣＴ−ＩＩユニット５２は、サイズ１６、８および４のこれらのＤＣＴ−ＩＩのうちの１つまたは複数を残差ブロックに適用し、対応するサイズ１６、８および／または４の残差変換係数のブロックを生成する。１６点ＤＣＴ−ＩＩユニット５２は、概して、残差ピクセルデータとして表される空間領域から、ＤＣＴ係数として表される周波数領域に残差ブロックを変換する。変換係数は、少なくとも１つのＤＣ係数と１つまたは複数のＡＣ係数とを含むＤＣＴ係数を備え得る。
【００４５】
量子化ユニット４０は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する（たとえば、丸める）。上述のように、量子化ユニット４０は、ファクタ化中に除去された内部ファクタを組み込むことによって、スケーリングされた１６点ＤＣＴ−ＩＩユニット５２のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット４０に組み込むことが量子化ユニット４０の実装複雑さを増加させることはない。この点において、スケーリングされた１６点ＤＣＴ−ＩＩユニット５２からファクタを除去することは、量子化ユニット４０の実装複雑さを増加させることなしにＤＣＴ−ＩＩユニット５２の実装複雑さを減少させ、その結果、ビデオエンコーダ２０に関する実装複雑さが純減する。
【００４６】
エントロピーコーディングユニット４６は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット４６は、場合によってはエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行し得る。エントロピーコーディングユニット４６は、量子化ＤＣＴ係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブック（たとえば、ＣＡＶＬＣまたはＣＡＢＡＣ）を選択する。このコードブックを使用して、エントロピーコーディングユニット４６は、量子化ＤＣＴ係数を圧縮する方式で、各量子化ＤＣＴ係数のためのコードを選択する。例示のために、エントロピーコーディングユニット４６は、頻繁に発生する量子化ＤＣＴ係数のための（ビット換算で）短いコードワードと、より少ない頻度で発生する量子化ＤＣＴ係数のための（ビット換算で）より長いコードワードを選択し得る。短いコードワードが量子化ＤＣＴ係数よりも少ないビットを使用する限り、概して、エントロピーコーディングユニット４６は量子化ＤＣＴ係数を圧縮する。エントロピーコーディングユニット４６は、ビデオデコーダ２６に送られるビットストリームとしてエントロピーコード化係数を出力する。一般に、ビデオデコーダ２６は、図３の例に関して説明するように、ビットストリームからの符号化ビデオを復号および再構成するために逆演算を実行する。
【００４７】
再構成ユニット４２および逆変換ユニット４４は、それぞれ量子化係数を再構成し、逆変換を適用して、残差ブロックを再構成する。逆変換ユニット４４は、図３に関して以下で説明する１６点ＤＣＴ−ＩＩＩユニット６８と同様の、１６点ＤＣＴ−ＩＩユニット５２の逆動作を実行する、一般にタイプＩＩＩのＤＣＴと呼ばれる逆ＤＣＴ（ＩＤＣＴ）を含む。この逆１６点ＤＣＴ−ＩＩは、同じく、図３の例に示す１６点ＤＣＴ−ＩＩユニット６８と実質的に同様であり得る１６点ＤＣＴ−ＩＩＩユニット５３として示されている。合計ユニット５０は、再構成された残差ブロックを、動き補償ユニット３６によって生成された動き補償予測ブロックに加算して、メモリ３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【００４８】
図３は、図１のビデオデコーダ２６の一例をより詳細に示すブロック図である。ビデオデコーダ２６は、少なくとも部分的に、まとめて集積回路デバイスと呼ばれることがある１つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオデコーダ２６は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ２６はビデオフレーム内のブロックのイントラ復号およびインター復号を実行し得る。図３に示すように、ビデオデコーダ２６は、ビデオエンコーダ２０によって符号化された符号化ビデオビットストリームを受信する。図３の例では、ビデオデコーダ２６は、エントロピー復号ユニット５４と、動き補償ユニット５６と、再構成ユニット５８と、逆変換ユニット６０と、メモリ６２とを含む。エントロピー復号ユニット６４は、コーディングするのに有用なデータを取得するために、メモリ６４に記憶された１つまたは複数のデータ構造にアクセスし得る。ビデオデコーダ２６は、加算器６６の出力をフィルタ処理するループ内またはポストループデブロッキングフィルタ（図示せず）をも含み得る。ビデオデコーダ２６は加算器６６をも含む。図３は、ビデオブロックのインター復号のためのビデオデコーダ２６の時間的予測構成要素を示す。図３には示されていないが、ビデオデコーダ２６は、いくつかのビデオブロックのイントラ復号のための空間的予測構成要素をも含み得る。
【００４９】
エントロピー復号ユニット５４は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化残差係数および量子化パラメータ、ならびに、マクロブロックコーディングモード、および動きベクトルとブロック区分とを含み得る動き情報など、他の情報を復号する。動き補償ユニット５６は、動きベクトルと、ブロック区分と、メモリ６２からの１つまたは複数の再構成された参照フレームとを受信して、予測ビデオブロックを生成する。
【００５０】
再構成ユニット５８は、量子化されたブロック係数を逆量子化（inverse quantize）、すなわち逆量子化（de-quantize）する。逆変換ユニット６０は、逆変換、たとえば、逆ＤＣＴを係数に適用して残差ブロックを生成する。より詳細には、逆変換ユニット６０は、逆変換ユニット６０が残差ブロックを生成するために係数に適用する１６点ＤＣＴ−ＩＩＩユニット６８を含む。図２に示す１６点ＤＣＴ−ＩＩユニット５２の逆元である１６点ＤＣＴ−ＩＩＩユニット６８は、周波数領域から空間領域に係数を変換して、残差ブロックを生成し得る。上記の量子化ユニット４０と同様に、再構成ユニット５８は、ほとんど実装複雑さの増加なしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、１６点ＤＣＴ−ＩＩＩユニット６８のスケーリングされた性質を考慮する。スケーリングされた１６点ＤＣＴ−ＩＩＩユニット６８からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ２６に関する複雑さが純減し得る。
【００５１】
次いで、予測ビデオブロックは、加算器６６によって残差ブロックと加算されて、復号ブロックを形成する。復号ブロックをフィルタ処理してブロッキングアーティファクトを除去するために、デブロッキングフィルタ（図示せず）が適用され得る。フィルタ処理されたブロックは次いで参照フレームストア６２に入れられ、メモリ６２は、後続のビデオフレームの復号のために参照フレームを与え、また、ディスプレイデバイス２８（図１）を駆動するために復号ビデオを生成する。いくつかの例では、アーティファクトを除去するために、フィルタフレームがメモリ６２に記憶された後、ポストループデブロッキングフィルタがフィルタフレームに適用され得る。
【００５２】
図４Ａ〜図４Ｄは、１６点ＤＣＴ−ＩＩユニット５２の様々な態様をより詳細に示す図である。図４Ａの例では、１６点ＤＣＴ−ＩＩユニット５２は、バタフライユニット７０と、８点ＤＣＴ−ＩＩユニット７２と、８点ＤＣＴ−ＩＶユニット７４とを含む。８点ＤＣＴ−ＩＩユニット７２は第１の４点ＤＣＴ−ＩＩユニット７６Ａを含み、８点ＤＣＴ−ＩＶユニット７４は第２の４点ＤＣＴ−ＩＩユニット７６Ｂと第３の４点ＤＣＴ−ＩＩユニット７６Ｃとを含む。８点ＤＣＴ−ＩＶユニット７４はまた、図４Ｄの例に関して以下でより詳細に説明する、ファクタ乗算ユニット７８と相互加算（cross-additive）ユニット８０とを含む。１６点ＤＣＴ−ＩＩユニット５２は、入力ｘ0〜ｘ15を受信し、出力Ｘ0〜Ｘ15を発生する。バタフライユニット７０は、入力ｘ0〜ｘ15を、偶数入力ｘ0、ｘ2、ｘ4、ｘ6、ｘ8、ｘ10、ｘ12、およびｘ14と、奇数入力ｘ1、ｘ3、ｘ5、ｘ7、ｘ9、ｘ11、ｘ13、およびｘ15とに再構成し、さらに偶数入力に関して相互加算（cross-addition）を実行し、奇数入力に関して相互減算（cross-subtraction）を実行する。バタフライユニット７０は、相互加算（cross-add）された偶数入力を８点ＤＣＴ−ＩＩユニット７２に出力し、相互減算（cross-subtract）された奇数入力を８点ＤＣＴ−Ｉ４ユニット７４に出力する。
【００５３】
図４Ｂは、４点ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃのうちのいずれか１つの例をより詳細に示す図である。図４Ｂの例に示す４点ＤＣＴ−ＩＩユニットが４点ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃのうちの任意の１つを表し得ることを反映するために、図４Ｂの例に示す４点ＤＣＴ−ＩＩユニットを概括的に４点ＤＣＴ−ＩＩユニット７６と呼ぶ。４点ＤＣＴ−ＩＩユニット７６はバタフライユニット８２を含み、バタフライユニット８２は、機能に関してバタフライユニット７０と実質的に同様であるが、１６個ではなく４つの入力のみを受信するので、スケールに関しては異なる。バタフライユニット８２は、２つの上側の出力における「０」および「２」表記と、２つの下側の出力における「１」および「３」表記とによって示されるように、入力を偶数入力と奇数入力とに再構成する。４点ＤＣＴ−ＩＩユニット７６の、奇数入力に作用する部分は奇数部分と呼ばれ、偶数入力に作用する部分は偶数部分と呼ばれることがある。
【００５４】
奇数部分には、奇数入力に適用されるべき、ＡおよびＢとして示された２つファクタが示されている。これらのファクタの値を判断する際に、設計者は、いくつかの問題のバランスをとり得る。しばしば、２のべき乗であるファクタによる乗算が、通常、２進法における右シフトのみを含むことを考慮すれば、２のべき乗であるファクタは容易に実行され得る。したがって、２のべき乗であるファクタは有利であるが、そのようなファクタは、有意なコーディング利得または圧縮効率を与えるために十分な精度をもつＤＣＴ係数を適切に反映しないことがある。代替的に、２のべき乗でないファクタは、より高い精度を与え得るが、容易に実装されず、それにより実装複雑さを増加させ得る。さらに、より大きいファクタは、概して、より多くのコーディング利得を与えるが、有意なより多くのストレージスペースを必要とする一方、より小さいファクタは、より小さいストレージスペースを消費し得るが、より少ないコーディング利得を与え得る。いずれの場合も、４点ＤＣＴ−ＩＩユニット７６によって表されるＤＣＴ実装など、任意の所与のＤＣＴ実装のファクタを選択する際に、いくつかのトレードオフが必要とされる。これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
【００５５】
図４Ｃは、８点ＤＣＴ−ＩＩユニット７２をより詳細に示すブロック図である。図４Ｃの例では、８点ＤＣＴ−ＩＩユニット７２はバタフライユニット８４を含み、バタフライユニット８４は、機能はバタフライユニット７０および８２と実質的に同様であるが、バタフライユニット８４は、それぞれバタフライユニット７０および８２によって受信される１６個および４つの入力に比較して８つの入力のみを受信することを考慮すれば、スケールは異なる。いずれの場合も、バタフライユニット８４は、それの入力を偶数入力と奇数入力とに再構成しながら、また偶数入力を発生するために相互加算を実行し、奇数入力を発生するために相互減算を実行する。８点ＤＣＴ−ＩＩユニット７２の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この場合の偶数部分は、図４Ｂの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット７６と実質的に同様である、ネストされた４点ＤＣＴ−ＩＩユニット７６Ａを備える。
【００５６】
８点ＤＣＴ−ＩＩユニット７２の奇数部分は、それぞれ様々な数学演算を実行するいくつかのユニット８６〜９０を含む。ファクタ乗算ユニット８６は、奇数入力にファクタＣ、Ｄ、Ｅ、およびＦを乗算した後、これらの入力の相互加算を実行する。ファクタＣ、Ｄ、Ｅ、およびＦは、様々な利益を促進するために上述の方法で変更され得る変数を表す。相互加算ユニット８８は、図４Ｃの例に関して示される方法で相互加算を実行し、相互加算ユニット９０は、７および１と示される奇数出力を発生するために、外側加算入力の相互加算を実行する。この場合も、これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
【００５７】
図４Ｄは、８点ＤＣＴ−ＩＶユニット７４をより詳細に示すブロック図である。図４Ｄの例では、上記のように、８点ＤＣＴ−ＩＶユニット７４は、各々が図４Ｂの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット７６と実質的に同様である、２つの４点ＤＣＴ−ＩＩユニット７６Ｂ、７６Ｃを含む。８点ＤＣＴ−ＩＶユニット７４は、この場合も上記のように、同じくファクタ乗算ユニット７８と相互加算ユニット８０とを含む。ファクタ乗算ユニット７８は、８点ＤＣＴ−ＩＶユニット７４への入力にファクタＨ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、およびＮを乗算し、ファクタを乗算されると、上側の４つの入力に下側の４つの入力を相互加算し、下側の４つの入力から上側の４つの入力を相互減算する。次いで、上側の４つの入力は４点ＤＣＴ−ＩＩユニット７６Ｂによって処理され、下側の４つの入力は４点ＤＣＴ−ＩＩユニット７６Ｃによって処理される。次いで、相互加算ユニット８０は、下側の７つの入力を相互加算／減算する（減算は加算の別の形態と考えられる）。
【００５８】
概して、上記で説明したＤＣＴ−ＩＩまたはＤＣＴ−ＩＶユニット７２、７４および７６Ａ〜７６Ｃの各々は、上記のファクタＡ〜Ｎの行列として表され得る。たとえば、ＤＣＴ−ＩＩユニット７６Ａ〜７６Ｃ（「ＤＣＴ−ＩＩユニット７６」）の各々は、以下の表１に記載する行列によって表され得る。
【表１】
2013502625.tif 000003
【００５９】
ＤＣＴ−ＩＩユニット７２は、以下の表２に記載する行列によって表され得る。
【表２】
2013502625.tif 000004
【００６０】
ＤＣＴ−ＩＶユニット７４は、以下の表３に記載する行列によって表され得る。
【表３】
2013502625.tif 000005
【００６１】
４×４ＤＣＴ−ＩＩ行列、８×８ＤＣＴ−ＩＩ行列および８×８ＤＣＴ−ＩＶ行列を表す上記の表に基づいて、１６点ＤＣＴ−ＩＩユニット５２を表す行列は、以下の表４に記載する得られた行列を用いて判断され得る。
【表４】
2013502625.tif 000006
【００６２】
再び図４Ａを参照すると、出力Ｘ0〜Ｘ15に乗算されるいくつかの外部ファクタが示されており、そのうちのいくつかは正規化ファクタζ、ζ、ηを含む。これらの外部ファクタは、１６点ＤＣＴ−ＩＩユニット５２内に含まれないことがあるが、代わりに除去され、量子化ユニット４０に組み込まれ得る。概して、これらの外部ファクタは、以下の対角行列Ｓによって表され、これは同じく量子化ユニット４０に組み込まれる。
【数１】
2013502625.tif 000007
【００６３】
上式で、これらの正規化ファクタは、入力に適用すべき多くの演算を必要とする内部ファクタの大きい値を低減することによって、実装複雑さを改善し得る。これらの外部ファクタが除去された場合、１６点ＤＣＴ−ＩＩユニット５２が、ＤＣＴ係数を正確に表す完全なスケーリングされていない出力を適切に発生するために対角行列Ｓの適用を必要とするスケーリングされた出力を出力することを考慮して、１６点ＤＣＴ−ＩＩユニット５２はスケーリングされた１６点ＤＣＴ−ＩＩユニット５２と呼ばれる。１６点ＤＣＴ−ＩＩユニット５２がこれらの外部ファクタを保持する場合、１６点ＤＣＴ−ＩＩユニット５２は完全１６点ＤＣＴ−ＩＩユニット５２と呼ばれる。コンテキストに応じて、完全ユニットまたはスケーリングされたユニットのいずれかが１６点ＤＣＴ−ＩＩユニット５２に採用され得、本開示の技法は、いかなるタイプの完全またはスケーリングされた実装にも限定されるべきでない。
【００６４】
いずれの場合も、以下は、様々な利益を与える１６点ＤＣＴ−ＩＩユニット５２を発生するために、上記の内部ファクタと正規化ファクタとに対して選択され得る、いくつかの例示的な実装形態固有の値である。一般的な注意として、ファクタの以下の値は、得られたＤＣＴ行列が、以下の式（１）によって定義される直交性性質を保持するように選択される。
【数２】
2013502625.tif 000008
【００６５】
上式で、Ｃは完全なスケーリングされていない変換行列を表し、ＣTは行列Ｃの転置を表す。概して、ＤＣＴ−ＩＩ実装は可逆であるので、ＤＣＴ−ＩＩ実装に関して直交性が望まれる。この可逆性質は、一例として、ビデオエンコーダが、直交１６点ＤＣＴ実装を適用してビデオデータの残差ブロックからＤＣＴ係数を発生することを可能にする。次いで、ビデオデコーダが、８点逆ＤＣＴ−ＩＩ（ＩＤＣＴ）実装を適用して、ほとんどデータの損失なしにＤＣＴ−ＩＩ係数からビデオデータの残差ブロックを再構成することができる。ビデオ符号化の主要な目的の１つがデータの保存であることを考慮して、Ｈ．２６４ビデオコーディング規格など、様々なコーディング規格が８点ＤＣＴの直交実装を採用した。
【００６６】
内部ファクタＡ〜Ｎの様々な値の調査は、これらの値を選択する際に必要とされるトレードオフに関する何らかの指示を与える。４点ＤＣＴ−ＩＩユニット７６ならびに内部ファクタＡおよびＢで開始して、これらのファクタの値の分析を以下の表５に記載する。
【表５】
2013502625.tif 000009
【００６７】
表５を参照すると、近似誤差と、ファクタＡおよびＢを記憶するために必要とされるビット数とに関して、内部ファクタＡおよびＢの値が示されている。概して、内部ファクタＡおよびＢの値のサイズが増加するにつれて、近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。
【００６８】
８点ＤＣＴ−ＩＩユニット７２と内部ファクタＣ、Ｄ、Ｅ、およびＦとに関する調査を続けて、これらのファクタの値の分析を以下の表６に記載する。
【表６】
2013502625.tif 000010
【００６９】
上記の表５に記載した分析と同様に、内部ファクタＣ〜Ｆの値は、サイズが増加するにつれて、近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。
【００７０】
８点ＤＣＴ−ＩＶユニット７４の内部ファクタＨ〜Ｎについての分析を以下の表７に記載する。
【表７】
2013502625.tif 000011
【００７１】
上記の表５および表６に記載した分析と同様に、内部ファクタＨ〜Ｎの値は、サイズが増加するにつれて、最大近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。表７に記載した分析に関して、最大近似誤差は内部ファクタの最初の４つまたは５つの組合せに対して非常に大きいので、内部ファクタＨ〜Ｎの値の選択肢は５ビット、６ビットおよび７ビット近似の間である。
【００７２】
上記の調査分析が完了すると、上記の表５〜表７から内部ファクタＡ〜Ｎの値の様々な選択を通して、いくつかの異なる実装または設計が生じ得る。それぞれ内部ファクタＡおよびＢに対して１および２の値を選択することによって、以下の２つ設計と比較して、近似誤差に関して最も正確でない第１の設計または実装が構成され得る。この第１の設計はまた、上記の表７から５ビット近似を選択することによって構成され、内部ファクタＮ、Ｌ、Ｊ、Ｈ、Ｇ、Ｉ、Ｋ、Ｍは、それぞれ値１、６、１０、１０、１５、１５、１７、１８に設定される。第１の設計は、内部ファクタＣ、Ｄ、Ｅ、Ｆに対してそれぞれ１１、３、９および７の値を用いてさらに構成される。
【００７３】
第１の設計または実装は、以下の表８に記載する行列によって要約され得る。
【表８】
2013502625.tif 000012
【００７４】
上記の表８に示すいくつかの行列係数は大きい値であり、これらの大きい値による乗算を実行するために必要とされる演算に関する実装複雑さを増加させ得る。これらの大きい値を除去し、変換にわたるダイナミックレンジのバランスをとるために、乗算後に第１の設計の実装に右シフトを導入すると、表９に記載する以下の正規化された内部ファクタが生じ得る。右シフトは任意の正の整数だけであり得ることに留意されたい。唯一の制限は、パラメータＡおよびＢの右シフトが同じであることである。同様に、Ｃ、Ｄ、Ｅ、およびＦの右シフトは同じである。最後に、Ｎ、Ｌ、Ｊ、Ｈ、Ｇ、Ｉ、Ｋ、およびＭのパラメータの右シフトは同じである。右シフトは、これらの整数パラメータを２進分数（dyadic rational）に変換する。２進分数は、分母が２のべき乗である有理数である。右シフトは変換の精度を低下させ得る。したがって、それらを最小値に保つことが望ましい。
【表９】
2013502625.tif 000013
【００７５】
これらの正規化された内部ファクタを使用して、表８に記載した行列は、以下の表１０に記載する行列に簡約される。
【表１０】
2013502625.tif 000014
【００７６】
表１０中の行列係数の範囲は−１．５６と１．５６との間であり、これは概して十分に緊密であるかまたはＤＣＴ実装に好適である。第１の設計は、以下の値をもつ対角行列Ｓを有する。
【数３】
2013502625.tif 000015
【００７７】
これは、４による乗算および浮動小数点への変換の後、以下の値にほぼ等しい。
【００７８】
[1., 1.255143265, 1.403292831, 1.122634265, 1.264911064, 1.122634265, 1.984555754, .8875203140, 1., .8875203140, 1.984555754, 1.122634265, 1.264911064, 1.122634265, 1.403292831, 1.255143265]
第２の設計は、第１の設計よりも正確であるが、以下でより詳細に説明する第３の設計ほど正確ではない。第２の設計は、それぞれ、内部ファクタＮ、Ｌ、Ｊ、Ｈ、Ｇ、Ｉ、Ｋ、Ｍに対する値６、１１、２１、２７、３４、３８、４２および４３で構成され、これらの値は６ビット近似を生じる。残りの内部ファクタのすべてを、第１の設計について上記で指定したものと同じままにすると、１６点ＤＣＴ係数行列は以下の表１１に記載するものとなる。
【表１１】
2013502625.tif 000016
【００７９】
上記の右シフトの導入後、ファクタＡ〜Ｎは以下の表１２に記載するものとなる。
【表１２】
2013502625.tif 000017
【００８０】
これらのシフトが導入されると、表１１で指定された行列は、以下の表１３に記載するものとなる。
【表１３】
2013502625.tif 000018
【００８１】
表１３を参照すると、すべてのファクタが［−１．．．１］の範囲内にある。スケールファクタの対角行列Ｓの値は以下の値になる。
【数４】
2013502625.tif 000019
【００８２】
これは、４による乗算および浮動小数点値への変換の後、以下の値にほぼ等しい。
【００８３】
[1., 2.084679494, 1.403292831, 1.864594024, 1.264911064, 1.864594024, 1.984555754, 1.474091007, 1., 1.474091007, 1.984555754, 1.864594024, 1.264911064, 1.864594024, 1.403292831, 2.084679494]
第３の設計は、第２の設計のために構成されたものと同じ内部ファクタＮ、Ｌ、Ｊ、Ｈ、Ｇ、Ｉ、Ｋ、Ｍの値、すなわち、この例では６ビット近似値を含む。これらの値を変更する代わりに、第３の設計は、内部ファクタＡおよびＢに対する２および５の値ならびに内部ファクタＣ〜Ｆに対する１９、４、１６および１１の値を含む。内部ファクタのこれらの値セットを用いて、以下の表１４に記載する変換行列が生成される。
【表１４】
2013502625.tif 000020
【００８４】
上記の右シフトの導入後、ファクタＡ〜Ｎは以下の表１５に記載するものとなる。
【表１５】
2013502625.tif 000021
【００８５】
表１４に指定した行列は、これらのシフトが導入されると、以下の表１６に記載するものとなる。
【表１６】
2013502625.tif 000022
【００８６】
表１３を参照すると、すべてのファクタが［−１．２５．．．１．２５］の範囲内にある。スケールファクタの対角行列Ｓの値は以下の値になる。
【数５】
2013502625.tif 000023
【００８７】
これは、４による乗算および浮動小数点値への変換の後、以下の値にほぼ等しい。
【００８８】
[1., 2.084679494, 1.648083848, 1.548461055, 1.050451463, 1.548461055, 2.330742531, 1.474091007, 1., 1.474091007, 2.330742531, 1.548461055, 1.050451463, 1.548461055, 1.648083848, 2.084679494]
実装複雑さに関して、図４Ａ〜４Ｄに関して上記で説明した実装を生成する、基礎をなすファクタ化は、一定の内部ファクタＡ〜Ｎによる約７２回の加算と３６回の乗算とを必要とする。ただし、内部ファクタＡ〜Ｎは整数（または２進分数）であるので、これらの乗算の代わりに一連の加算とシフト演算とが使用され得る。第３の設計についてのこの乗算器なし実装の複雑さを以下の表１７に記載する。
【表１７】
2013502625.tif 000024
【００８９】
上記の３６回の乗算の代わりに、これらの３８回の加算と４８回のシフトとを追加すると、１１０回の加算と４８回のシフトとの総実装複雑さになる。
【００９０】
第２の設計について、この乗算器なし実装の複雑さを以下の表１８に要約する。
【表１８】
2013502625.tif 000025
【００９１】
この場合、上記の３６回の乗算の代わりに３２回の加算と３８回のシフトとを使用した後の総複雑さは、１０４回の加算と３８回のシフトの全体的な実装複雑さになる。
【００９２】
第１の設計について、この乗算器なし実装の複雑さを以下の表１９に要約する。
【表１９】
2013502625.tif 000026
【００９３】
この場合、上記の３６回の乗算の代わりに２２回の加算と３６回のシフトとを使用した後の総複雑さは、９４回の加算と３６回のシフトの全体的な実装複雑さになる。
【００９４】
上記の複雑さ分析を仮定すれば、第１の設計は、ＤＣＴを実行する十分な近似を与え、実行する必要がある演算が他の設計よりも少ない。第２の設計は、第１の設計に比較して、ＤＣＴ近似を実行するための演算の増加が相対的に中程度で済むだけでなく、第１の設計と比較して、ＤＣＴを実行する精度が改善する。第３の設計は、３つの設計のうち最も複雑であるだけでなく、３つの設計のうち、ＤＣＴを実行する最も正確な近似を与える。これらが採用されるコンテキストに応じて、これらの潜在的な設計のうちの１つまたは複数が採用され得る。一例として効率的な電力消費を必要とするモバイルアプリケーションでは、低い実装複雑さが、概して、改善された電力効率につながることを考慮して、第１の設計が採用され得る。電力効率にあまり関係しないデバイスでは、第２の設計は、実装複雑さに対する、精度に関するパフォーマンスの十分なバランスを与え得る。より高レベルの精度を必要とする場合、３つの設計のうち、ＤＣＴを近似することに関して最も正確な近似を与えるために、第３の設計が採用され得る。
【００９５】
図４の例ではＤＣＴ−ＩＩユニットに関して説明したが、このＤＣＴ−ＩＩユニットは、本開示の技法に従って構築されたＩＤＣＴをも表し得る。図４の例に示した実装から逆ＤＣＴを形成することは、図４の右側で実装によって入力が受信され、実装の左側に出力が出力されるように、入力と出力とを逆転させることを必要とする。言い換えれば、入力が次いで出力になり、出力が入力になるように垂直軸に関して実装を反転させると、概してＩＤＣＴ実装が生成される。説明を簡単にするために、またＤＣＴからＩＤＣＴを形成することが当技術分野でよく知られていることを考慮して、これらの追加のＩＤＣＴ実装は個別の図に示していない。
【００９６】
図５は、図２のビデオエンコーダ２０などのコーディングデバイスが、本開示の技法に従って構築された１６点ＤＣＴ実装を適用する際の例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ２０は、符号化すべきビデオフレーム内の現在ビデオブロック３０を受信する（９０）。動き推定ユニット３２は、１つまたは複数の動きベクトルを発生するためにビデオブロック３０を１つまたは複数の隣接ビデオフレーム中のブロックと比較するために、動き推定を実行する（９２）。隣接する１つまたは複数のフレームは、メモリ３４から取り出され得る。動き推定は、可変サイズ、たとえば、１６×１６、１６×８、８×１６、８×８、４×４またはより小さいブロックサイズのブロックに対して実行され得る。動き推定ユニット３２は、たとえば、レートひずみモデルに基づいて現在ビデオブロック３０に最もぴったり一致する隣接フレーム中の１つまたは複数のブロックを識別し、隣接フレーム中のブロックと現在ビデオブロックとの間の変位を判断する。これに基づいて、動き推定ユニット３２は、現在ビデオブロック３０と、現在ビデオブロック３０をコーディングするために使用される参照フレームからの１つまたは複数の一致するブロックとの間の変位の大きさおよび軌道を示す、１つまたは複数の動きベクトル（ＭＶ）を生成する。一致する１つまたは複数のブロックは、コーディングすべきブロックのインターコーディングのための予測（または予測）ブロックとして働くことになる。
【００９７】
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ２０は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。端数のピクセル値をもつ動きベクトルを使用するとき、動き補償ユニット３６中で補間演算が実行される。動き推定ユニット３２は、レートひずみモデルなど、いくつかの基準を使用して、ビデオブロックについての最良のブロック区分および１つまたは複数の動きベクトルを識別する。たとえば、双方向予測の場合、複数の動きベクトルがあり得る。得られたブロック区分および動きベクトルを使用して、動き補償ユニット３６は予測ビデオブロックを形成する（９４）。
【００９８】
ビデオエンコーダ２０は、加算器４８において、元の現在ビデオブロック３０から、動き補償ユニット３６によって生成された予測ビデオブロックを減算することによって残差ビデオブロックを形成する（９６）。ブロック変換ユニット３８は、残差変換ブロック係数を生成する変換を適用する。ブロック変換ユニット３８は、本開示で説明する技法に従って構成された１６点ＤＣＴ−ＩＩユニット５２を含む。ブロック変換ユニット３８は、所与のサイズの１つまたは複数のＤＣＴ−ＩＩを残差ブロックに適用して、上述の方法で残差変換係数の対応するサイズのブロックを生成するために、スケーリングされた１６点ＤＣＴ−ＩＩユニット５２を呼び出す。図４Ａ〜図４Ｄの例を参照すると、１６点ＤＣＴ−ＩＩユニット５２は、４点ＤＣＴ−ＩＩをデータの異なる４×４残差ブロックに同時に適用するために、４点ＤＣＴ−ＩＩユニット７６のうちの１つまたは複数を呼び出し得る。代替的に、１６点ＤＣＴ−ＩＩユニット５２は、８点ＤＣＴ−ＩＩを８×８残差ブロックに適用するために、８点ＤＣＴ−ＩＩユニット７２を呼び出し得る。さらに別の代替として、１６点ＤＣＴ−ＩＩユニット５２は、１６点ＤＣＴ−ＩＩを適用して、残差データの１６×１６ブロックを処理するために、サブまたはネスト４点ＤＣＴ−ＩＩユニット７２、８点ＤＣＴ−ＩＩユニット７２、および８点ＤＣＴ−ＩＶユニット７４のすべてを呼び出し得る。１６点ＤＣＴ−ＩＩユニット５２は、概して、残差ピクセルデータとして表される空間領域から、ＤＣＴ係数として表される周波数領域に残差ブロックを変換する。このようにして、１６点ＤＣＴ−ＩＩユニット５２は、ＤＣＴ係数を判断するために、残差データに１つまたは複数の対応するサイズのＤＣＴ−ＩＩを適用する（９８）。変換係数は、少なくとも１つのＤＣ係数と１つまたは複数のＡＣ係数とを含むＤＣＴ係数を備え得る。
【００９９】
量子化ユニット４０は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する（たとえば、丸める）（１００）。上述のように、量子化ユニット４０は、上記で対角スケールファクタ行列Ｓによって識別された、ファクタ化中に除去されたファクタを組み込むことによって、スケーリングされた１６点ＤＣＴ−ＩＩユニット５２のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット４０に組み込むことが量子化ユニット４０の実装複雑さを増加させることはない。この点において、スケーリングされた１６点ＤＣＴ−ＩＩユニット５２からファクタを除去することは、量子化ユニット４０の実装複雑さを増加させることなしにＤＣＴ−ＩＩユニット５２の実装複雑さを減少させ得、その結果、ビデオエンコーダ２０に関する実装複雑さが純減する。
【０１００】
エントロピーコーディングユニット４６は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット４６は、場合によってはコード化ビットストリームを生成するためにエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行する（１０２）。エントロピーコーディングユニット４６は、量子化ＤＣＴ係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブックを選択する。このコードブックを使用して、エントロピーコーディングユニット４６は、量子化ＤＣＴ係数を圧縮する方式で、各量子化ＤＣＴ係数のためのコードを選択する。エントロピーコーディングユニット４６は、メモリまたはストレージデバイスに記憶されたコード化ビットストリームおよび／またはビデオデコーダ２６に送られたコード化ビットストリームとしてエントロピーコード化係数を出力する（１０４）。
【０１０１】
再構成ユニット４２および逆変換ユニット４４は、それぞれ量子化係数を再構成し、逆変換を適用して、残差ブロックを再構成する。この場合も、逆変換ユニット４４は、図３に関して以下で説明する１６点ＤＣＴ−ＩＩＩユニット６８と同様の、１６点ＤＣＴ−ＩＩユニット５２の逆動作を実行する、一般にタイプＩＩＩのＤＣＴと呼ばれる逆ＤＣＴ（ＩＤＣＴ）を含み得る。合計ユニット５０は、再構成された残差ブロックを、動き補償ユニット３６によって生成された動き補償予測ブロックに加算して、メモリ３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【０１０２】
図６は、図３のビデオデコーダ２６などのコーディングデバイスが、本開示の技法に従って構成された１６点ＤＣＴ−ＩＩＩ実装を適用する際の例示的な動作を示すフローチャートである。ビデオデコーダ２６は、ビデオエンコーダ２０によって符号化された符号化ビデオビットストリームを受信する。特に、エントロピー復号ユニット５４は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化残差係数および量子化パラメータ、ならびに、マクロブロックコーディングモード、および動きベクトルとブロック区分とを含み得る動き情報など、他の情報を復号する（１０６、１０８）。動き補償ユニット５６は、動きベクトルと、ブロック区分と、メモリ６２からの１つまたは複数の再構成された参照フレームとを受信して、予測ビデオブロックを生成する（１１０）。
【０１０３】
再構成ユニット５８は、量子化されたブロック係数を逆量子化、すなわち逆量子化する（１１２）。逆変換ユニット６０は、逆変換、たとえば、逆ＤＣＴを係数に適用して残差ブロックを生成する。より詳細には、逆変換ユニット６０は、スケーリングされた１６点ＤＣＴ−ＩＩＩユニット６８を含み、逆変換ユニット６０は、１６点ＤＣＴ−ＩＩＩユニット６８を呼び出して係数を処理し、それによって残差ブロックを発生する（１１４）。図２に示すスケーリングされた１６点ＤＣＴ−ＩＩユニット５２の逆元であるスケーリングされた１６点ＤＣＴ−ＩＩＩユニット６８は、周波数領域から空間領域に係数を変換して、上述の方法で残差ブロックを生成し得る。上記の量子化ユニット４０と同様に、再構成ユニット５８は、ほとんど実装複雑さの増加なしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、１６点ＤＣＴ−ＩＩＩユニット６８のスケーリングされた性質を考慮する。スケーリングされた１６点ＤＣＴ−ＩＩＩユニット６８からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ２６に関する複雑さが純減し得る。
【０１０４】
次いで、予測ビデオブロックは、加算器６６によって残差ブロックと加算されて、復号ブロックを形成する（１１６）。復号ブロックをフィルタ処理してブロッキングアーティファクトを除去するために、デブロッキングフィルタ（図示せず）が適用され得る。フィルタ処理されたブロックは次いで参照フレームストア６２に入れられ、メモリ６２は、後続のビデオフレームの復号のために参照フレームを与え、また、図１のディスプレイデバイス２８などのディスプレイデバイスを駆動するために復号ビデオを生成する（１１８）。
【０１０５】
１つまたは複数のネスト４点ＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩとして、ならびに１つまたは複数のネスト８点ＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩを含むサイズ１６のＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩに関して上記で説明したが、本技法はこれらの特定のサイズに限定されるべきでない。代わりに、本技法は、より小さいサイズのネストＤＣＴ−ＩＩおよびＤＣＴ−ＩＩＩを含む任意のサイズの任意のＤＣＴ−ＩＩまたはＤＣＴ−ＩＩＩに適用し得る。したがって、本技法は、この点において、本開示で示す例に限定されるべきでない。
【０１０６】
本開示の技法は、モバイルフォンなどのワイヤレス通信デバイスハンドセット、集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。本明細書で説明した技法は、ハードウェア、またはハードウェア、ソフトウェア、ファームウェアの任意の組合せでも実装され得る。モジュール、ユニット、または構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。場合によっては、様々な特徴は、集積回路チップまたはチップセットなどの集積回路デバイスとして実装され得る。
【０１０７】
ソフトウェアで実装する場合、これらの技法は、プロセッサで実行されると、上記で説明した方法の１つまたは複数を実行する命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。コンピュータ可読媒体は、物理的非一時的構造物であるコンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部をなし得る。コンピュータ可読記憶媒体は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。
【０１０８】
コードまたは命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、または複合ビデオコーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１０９】
本開示はまた、本開示で説明した技法の１つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップ、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供され得る。そのような集積回路デバイスは様々な適用例において使用され得、適用例のいくつかは携帯電話ハンドセットなどのワイヤレス通信デバイスでの使用を含み得る。
【０１１０】
本開示の様々な技法について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
【図１】
2013502625.tif 000027
【図２】
2013502625.tif 000028
【図３】
2013502625.tif 000029
【図４Ａ】
2013502625.tif 000030
【図４Ｂ】
2013502625.tif 000031
【図４Ｃ】
2013502625.tif 000032
【図４Ｄ】
2013502625.tif 000033
【図５】
2013502625.tif 000034
【図６】
2013502625.tif 000035
【手続補正書】
【提出日】平成24年6月7日(2012.6.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
別の態様では、方法が、コーディングデバイスを用いてコンテンツデータを受信することと、コーディングデバイス内に含まれる１６点逆離散コサイン変換（ＩＤＣＴ）ユニットを用いて、受信したコンテンツデータを周波数領域から空間領域に変換する複数のＩＤＣＴのうちの１つまたは複数を実行することとを備える。１６点ＩＤＣＴユニットは、サイズ８の複数のＩＤＣＴのうちの１つを実行する少なくとも１つの８点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを実行する第１の４点ＩＤＣＴユニットであって、少なくとも１つの８点ＩＤＣＴユニットが第１の４点ＩＤＣＴユニットを含む、４点ＩＤＣＴユニットと、サイズ４の複数のＩＤＣＴのうちの１つを各々が実行する、第２の４点ＩＤＣＴユニットと第３の４点ＩＤＣＴユニットとを備える逆８点ＤＣＴ−ＩＶユニットとを含む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
再構成ユニット４２および逆変換ユニット４４は、それぞれ量子化係数を再構成し、逆変換を適用して、残差ブロックを再構成する。逆変換ユニット４４は、図３に関して以下で説明する１６点ＤＣＴ−ＩＩＩユニット６８と同様の、１６点ＤＣＴ−ＩＩユニット５２の逆動作を実行する、一般にタイプＩＩＩのＤＣＴと呼ばれる逆ＤＣＴ（ＩＤＣＴ）を含む。この逆１６点ＤＣＴ−ＩＩは、同じく、図３の例に示す１６点ＤＣＴ−ＩＩＩユニット６８と実質的に同様であり得る１６点ＤＣＴ−ＩＩＩユニット５３として示されている。合計ユニット５０は、再構成された残差ブロックを、動き補償ユニット３６によって生成された動き補償予測ブロックに加算して、メモリ３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
図３は、図１のビデオデコーダ２６の一例をより詳細に示すブロック図である。ビデオデコーダ２６は、少なくとも部分的に、まとめて集積回路デバイスと呼ばれることがある１つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオデコーダ２６は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ２６はビデオフレーム内のブロックのイントラ復号およびインター復号を実行し得る。図３に示すように、ビデオデコーダ２６は、ビデオエンコーダ２０によって符号化された符号化ビデオビットストリームを受信する。図３の例では、ビデオデコーダ２６は、エントロピー復号ユニット５４と、動き補償ユニット５６と、再構成ユニット５８と、逆変換ユニット６０と、メモリ６２とを含む。エントロピー復号ユニット５４は、コーディングするのに有用なデータを取得するために、メモリ６４に記憶された１つまたは複数のデータ構造にアクセスし得る。ビデオデコーダ２６は、加算器６６の出力をフィルタ処理するループ内またはポストループデブロッキングフィルタ（図示せず）をも含み得る。ビデオデコーダ２６は加算器６６をも含む。図３は、ビデオブロックのインター復号のためのビデオデコーダ２６の時間的予測構成要素を示す。図３には示されていないが、ビデオデコーダ２６は、いくつかのビデオブロックのイントラ復号のための空間的予測構成要素をも含み得る。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
図４Ａ〜図４Ｄは、１６点ＤＣＴ−ＩＩユニット５２の様々な態様をより詳細に示す図である。図４Ａの例では、１６点ＤＣＴ−ＩＩユニット５２は、バタフライユニット７０と、８点ＤＣＴ−ＩＩユニット７２と、８点ＤＣＴ−ＩＶユニット７４とを含む。８点ＤＣＴ−ＩＩユニット７２は第１の４点ＤＣＴ−ＩＩユニット７６Ａを含み、８点ＤＣＴ−ＩＶユニット７４は第２の４点ＤＣＴ−ＩＩユニット７６Ｂと第３の４点ＤＣＴ−ＩＩユニット７６Ｃとを含む。８点ＤＣＴ−ＩＶユニット７４はまた、図４Ｄの例に関して以下でより詳細に説明する、ファクタ乗算ユニット７８と相互加算（cross-additive）ユニット８０とを含む。１６点ＤＣＴ−ＩＩユニット５２は、入力ｘ0〜ｘ15を受信し、出力Ｘ0〜Ｘ15を発生する。バタフライユニット７０は、入力ｘ0〜ｘ15を、偶数入力ｘ0、ｘ2、ｘ4、ｘ6、ｘ8、ｘ10、ｘ12、およびｘ14と、奇数入力ｘ1、ｘ3、ｘ5、ｘ7、ｘ9、ｘ11、ｘ13、およびｘ15とに再構成し、さらに偶数入力に関して相互加算（cross-addition）を実行し、奇数入力に関して相互減算（cross-subtraction）を実行する。バタフライユニット７０は、相互加算（cross-add）された偶数入力を８点ＤＣＴ−ＩＩユニット７２に出力し、相互減算（cross-subtract）された奇数入力を８点ＤＣＴ−ＩＶユニット７４に出力する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
図４Ｃは、８点ＤＣＴ−ＩＩユニット７２をより詳細に示すブロック図である。図４Ｃの例では、８点ＤＣＴ−ＩＩユニット７２はバタフライユニット８４を含み、バタフライユニット８４は、機能はバタフライユニット７０および８２と実質的に同様であるが、バタフライユニット８４は、それぞれバタフライユニット７０および８２によって受信される１６個および４つの入力に比較して８つの入力のみを受信することを考慮すれば、スケールは異なる。いずれの場合も、バタフライユニット８４は、それの入力を偶数入力と奇数入力とに再構成しながら、また偶数出力を発生するために相互加算を実行し、奇数出力を発生するために相互減算を実行する。８点ＤＣＴ−ＩＩユニット７２の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この場合の偶数部分は、図４Ｂの例に関して上記で説明した４点ＤＣＴ−ＩＩユニット７６と実質的に同様である、ネストされた４点ＤＣＴ−ＩＩユニット７６Ａを備える。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
表１６を参照すると、すべてのファクタが［−１．２５．．．１．２５］の範囲内にある。スケールファクタの対角行列Ｓの値は以下の値になる。
【数５】
2013502625.tif 000036
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
コードまたは命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、または複合ビデオコーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【国際調査報告】
2013502625.tif 000037
2013502625.tif 000038
2013502625.tif 000039
2013502625.tif 000040
2013502625.tif 000041
2013502625.tif 000042