(57)【要約】  Ｎ点ＭＤＣＴ変換をより小さいサイズのＮ／２点ＤＣＴ−ＩＶ、ＤＳＴ−ＩＶおよび／またはＤＣＴ−ＩＩ変換にマッピングする、より効率的なエンコーダ／デコーダを提供する。オーディオコーデックにおける多くの既存のＭＤＣＴ設計で使用されるＤＣＴ−ＩＶまたはＦＦＴコアとは反対に、一様にスケーリングされた５点ＤＣＴ−ＩＩコア関数を利用することによって、ＭＤＣＴを２分の１に系統的にデシメートすることができる。５点変換の様々な変換の因数分解を実装して、変換をより効率的に実装することができる。
2011507037.tif 000002
【特許請求の範囲】
【請求項１】
変換値を計算する方法であって、
オーディオ信号を表す時間領域入力値を受信することと、
複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、前記入力値をスペクトル係数に変換すること
を備える方法。
【請求項２】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、８回乗算演算、および３回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（５０２）を含む、請求項１に記載の方法。
【請求項３】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（５０２）を含み、
ｗ０＝ｘ０−ｘ４、
ｗ４＝ｘ０＋ｘ４、
ｗ１＝ｘ１−ｘ３、
ｗ３＝ｘ１＋ｘ３、
ｕ２＝ｘ２＋ｗ３＋ｗ４、
ｕ３＝−ｄ＊ｗ３＋ｃ＊ｗ４、
ｕ４＝ｄ＊ｗ４＋ｃ＊ｗ３、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｕ３−ｘ０、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝ｕ４＋ｘ０、
上式で、
【数１】
2011507037.tif 000096
である、請求項１に記載の方法。
【請求項４】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、５回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（６０２）を含む、請求項１に記載の方法。
【請求項５】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（６０２）を含み、
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｕ２＝ｚ２＋ｚ４、
ここで、
Ｘ０＝ｕ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ＊ｕ２＋０．５＊ｚ２−ｘ２、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝＝−ｃ＊ｕ２−０．５＊ｚ４＋ｘ２、
上式で、
【数２】
2011507037.tif 000097
である、請求項１に記載の方法。
【請求項６】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、５回乗算演算、１回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（７０２）を含む、請求項１に記載の方法。
【請求項７】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（７０２）を含み、
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｔ２＝ｚ２＋ｚ４、
ｔ４＝ｚ２−ｚ４、
ｃ’＝ｃ＋０．２５、
ここで、
Ｘ０＝ｔ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ’＊ｔ２−０．２５＊ｔ４−ｘ２＝０．２５＊ｔ４＋ｃ’＊ｔ２−ｘ２）、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝−ｃ’＊ｔ２−０．２５＊ｔ４＋ｘ２＝０．２５＊ｔ４−（ｃ’＊ｔ２−ｘ２）、
上式で、
【数３】
2011507037.tif 000098
である、請求項１に記載の方法。
【請求項８】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含む、請求項１に記載の方法。
【請求項９】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含み、
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数４】
2011507037.tif 000099
である、請求項１に記載の方法。
【請求項１０】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、５回乗算演算、１回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの変換（８０２）を含む、請求項１に記載の方法。
【請求項１１】
前記複数の５点変換のうちの少なくとも１つが、２０回加算演算、１６回乗算演算、および３回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（９０２）を含む、請求項１に記載の方法。
【請求項１２】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（９０２）を含み、
ｋ１＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｋ２＝ｈ＊ｘ１＋ｇ＊ｘ３、
ｋ３＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｋ４＝ｉ＊ｘ０＋ｆ＊ｘ４、
ｋ５＝ｉ＊ｘ１−ｆ＊ｘ３、
ｋ６＝−ｆ＊ｘ１＋ｉ＊ｘ３、
ｋ７＝ｇ＊ｘ０−ｈ＊ｘ４、
ｋ８＝ｈ＊ｘ０−ｇ＊ｘ４、
ｊ１＝ｘ０＋ｘ４、
ｊ２＝ｘ３−ｘ１、
ここで、
Ｘ０＝ｋ３＋ｋ１＋ｘ２、
Ｘ１＝ｋ７＋ｋ５−ｘ２、
Ｘ２＝ｊ１＋ｊ２−ｘ２、
Ｘ３＝ｈ＊ｘ０−ｇ＊ｘ４−ｆ＊ｘ１＋ｉ＊ｘ３＋ｘ２、
Ｘ４＝ｋ４−ｋ２＋ｘ２、
上式で、
【数５】
2011507037.tif 000100
である、請求項１に記載の方法。
【請求項１３】
前記複数の５点変換のうちの少なくとも１つが、２０回加算演算、１２回乗算演算、および４回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１００２）を含む、請求項１に記載の方法。
【請求項１４】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１００２）を含み、
ｑ１＝ｘ０＋ｘ４、
ｑ２＝ｘ３−ｘ１、
ｐ１＝（ｘ１−ｘ３）＊ｇ−ｘ１＊（ｇ＋ｈ）＝ｑ２＊ｇ−ｘ１＊（ｇ＋ｈ）、
ｐ２＝（ｘ１−ｘ３）＊ｇ＋ｘ３＊（ｈ＋ｇ）＝ｑ２＊ｇ＋ｘ３＊（ｇ＋ｈ）、
ｐ３＝（ｘ０＋ｘ４）＊ｆ＋ｘ０＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ０＊（ｉ−ｆ）、
ｐ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ４＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ４＊（ｉ−ｆ）、
ｐ５＝（ｘ３−ｘ１）＊ｆ＋ｘ３＊（ｉ−ｆ）＝ｑ２＊ｆ＋ｘ３＊（ｉ−ｆ）、
ｐ６＝（ｘ３−ｘ１）＊ｆ−ｘ１＊（ｉ−ｆ）＝ｑ２＊ｆ−ｘ１＊（ｉ−ｆ）、
ｐ７＝（ｘ０＋ｘ４）＊ｇ＋ｘ０＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ０＊（ｈ＋ｇ）、
ｐ８＝（ｘ０＋ｘ４）＊ｇ＋ｘ４＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ４＊（ｈ＋ｇ）、
ここで、
Ｘ０＝ｐ２＋ｐ４＋ｘ２、
Ｘ１＝ｐ５＋ｐ７−ｘ２、
Ｘ２＝ｑ１＋ｑ２−ｘ２、
Ｘ３＝ｐ６＋ｐ８＋ｘ２、
Ｘ４＝ｐ１＋ｐ３＋ｘ２、
上式で、
【数６】
2011507037.tif 000101
である、請求項１に記載の方法。
【請求項１５】
前記複数の５点変換のうちの少なくとも１つが、１６回加算演算、９回乗算演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１４０２）を含む、請求項１に記載の方法。
【請求項１６】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１４０２）を含み、
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝２ｃ＊ｖ２＋ｚ２−２＊ｘ２、
ｙ４＝−２ｃ＊ｖ２−ｚ４＋２＊ｘ２、
ここで、
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−Ｘ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝ｙ４−Ｘ３、
上式で、
【数７】
2011507037.tif 000102
であり、
【数８】
2011507037.tif 000103
である、請求項１に記載の方法。
【請求項１７】
前記複数の５点変換のうちの少なくとも１つが、１５回加算演算、１０回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１５０２）を含む、請求項１に記載の方法。
【請求項１８】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１５０２）を含み、
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝（２ｃ＋２）＊ｖ２＋ｚ２、
ｙ４＝２ｃ＊ｖ２＋ｚ４、
ここで、
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｙ４＋２＊ｘ２−Ｘ３、
上式で、
【数９】
2011507037.tif 000104
であり、
【数１０】
2011507037.tif 000105
である、請求項１に記載の方法。
【請求項１９】
前記複数の５点変換のうちの少なくとも１つが、１５回加算演算、１１回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１６０２／１７０２）を含む、請求項１に記載の方法。
【請求項２０】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１６０２）を含み、
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｄ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３、
上式で、
【数１１】
2011507037.tif 000106
であり、
【数１２】
2011507037.tif 000107
である、請求項１に記載の方法。
【請求項２１】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１７０２）を含み、
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｄ２＝２（ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｄ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３、
上式で、
【数１３】
2011507037.tif 000108
であり、
【数１４】
2011507037.tif 000109
である、請求項１に記載の方法。
【請求項２２】
前記複数の５点変換のうちの少なくとも１つが、１５回加算演算、１２回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１８０２）を含む、請求項１に記載の方法。
【請求項２３】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、以下の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１８０２）を含み、
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｒ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｒ４＝４（ｃ＋１）＊ｚ２＋４（ｃ＋１）＊ｚ４、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｒ２、
Ｘ４＝−ｒ４＋２＊ｘ２−ｚ３、
上式で、
【数１５】
2011507037.tif 000110
であり、
【数１６】
2011507037.tif 000111
である、請求項１に記載の方法。
【請求項２４】
前記変換を実行する前に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項１に記載の方法。
【請求項２５】
前記ＭＤＣＴが、５点離散コサイン変換タイプＩＩを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項１に記載の方法。
【請求項２６】
前記ＭＤＣＴが、５点離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項１に記載の方法。
【請求項２７】
前記ＭＤＣＴが、５点離散コサイン変換タイプＩＩおよび５点離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項１に記載の方法。
【請求項２８】
前記ＭＤＣＴが、５点離散サイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項１に記載の方法。
【請求項２９】
スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、
オーディオ信号を表す時間領域入力値を得ることと、
複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、前記入力値をスペクトル係数に変換すること
を行うように適合された離散コサイン変換（ＤＣＴ）タイプ変換層モジュール
を備えるデバイス。
【請求項３０】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含む、請求項２９に記載のデバイス。
【請求項３１】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含み、
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数１７】
2011507037.tif 000112
である、請求項２９に記載のデバイス。
【請求項３２】
前記複数の５点変換のうちの少なくとも１つが、１２回加算演算、５回乗算演算、１回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの変換（８０２）を含む、請求項２９に記載のデバイス。
【請求項３３】
スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、
オーディオ信号を表す時間領域入力値を得る手段と、
複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、前記入力値をスペクトル係数に変換する手段と
を備えるデバイス。
【請求項３４】
前記複数の５点変換のうちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含み、
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数１８】
2011507037.tif 000113
である、請求項３３に記載のデバイス。
【請求項３５】
オーディオ信号を表す時間領域入力値を得ることと、
複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、前記入力値をスペクトル係数に変換すること
を行うように適合されたスケーラブルなスピーチおよびオーディオ符号化回路を含むプロセッサであって、前記複数の５点変換うちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含み、
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数１９】
2011507037.tif 000114
である、プロセッサ。
【請求項３６】
スケーラブルなスピーチおよびオーディオ符号化のために動作可能な命令を備える機械可読媒体であって、前記命令が、１つまたは複数のプロセッサによって実行されたときに、
オーディオ信号を表す時間領域入力値を得ることと、
複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、前記入力値をスペクトル係数に変換すること
を前記プロセッサに行わせ、前記複数の５点変換うちの少なくとも１つが、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含み、
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数２０】
2011507037.tif 000115
である、機械可読媒体。
【請求項３７】
逆変換値を計算する方法であって、
オーディオ信号を表すスペクトル係数入力値を受信することと、
複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
を備える方法。
【請求項３８】
前記複数の５点逆変換のうちの少なくとも１つが、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（３２０２）を含む、請求項３７に記載の方法。
【請求項３９】
前記複数の５点逆変換のうちの少なくとも１つが、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含み、
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数２１】
2011507037.tif 000116
である、請求項３７に記載の方法。
【請求項４０】
前記逆変換を実行した後に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項３７に記載の方法。
【請求項４１】
前記ＩＭＤＣＴが、５点逆離散コサイン変換タイプＩＩを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項３７に記載の方法。
【請求項４２】
前記ＩＭＤＣＴが、５点逆離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項３７に記載の方法。
【請求項４３】
前記ＩＭＤＣＴが、５点逆離散コサイン変換タイプＩＩおよび５点逆離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項３７に記載の方法。
【請求項４４】
前記ＩＭＤＣＴが、５点逆離散サイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する、請求項３７に記載の方法。
【請求項４５】
スケーラブルなスピーチおよびオーディオデコーダデバイスであって、
オーディオ信号を表すスペクトル係数入力値を受信することと、
複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
を行うように適合された逆離散コサイン変換（ＤＣＴ）タイプ変換層モジュール
を備えるデバイス。
【請求項４６】
前記複数の５点逆変換のうちの少なくとも１つが、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（３２０２）を含む、請求項４５に記載のデバイス。
【請求項４７】
前記複数の５点逆変換のうちの少なくとも１つが、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含み、
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数２２】
2011507037.tif 000117
である、請求項４５に記載のデバイス。
【請求項４８】
スケーラブルなスピーチおよびオーディオデコーダデバイスであって、
オーディオ信号を表すスペクトル係数入力値を受信する手段と、
複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、前記スペクトル係数入力値を時間領域出力値に変換する手段
を備えるデバイス。
【請求項４９】
前記複数の５点逆変換のうちの少なくとも１つが、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（３２０２）を含む、請求項４８に記載のデバイス。
【請求項５０】
前記複数の５点逆変換のうちの少なくとも１つが、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含み、
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数２３】
2011507037.tif 000118
である、請求項４８に記載のデバイス。
【請求項５１】
オーディオ信号を表すスペクトル係数入力値を受信することと、
複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
を行うように適合されたスケーラブルなスピーチおよびオーディオ復号回路を含むプロセッサであって、
前記複数の５点逆変換のうちの少なくとも１つが、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含み、
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数２４】
2011507037.tif 000119
である、プロセッサ。
【請求項５２】
スケーラブルなスピーチおよびオーディオ復号のために動作可能な命令を備える機械可読媒体であって、前記命令が、１つまたは複数のプロセッサによって実行されたときに、
オーディオ信号を表すスペクトル係数入力値を受信することと、
複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
を前記プロセッサに行わせ、
前記複数の５点逆変換のうちの少なくとも１つが、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含み、
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数２５】
2011507037.tif 000120
である、機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法第１１９条に基づく優先権の主張
本特許出願は、両方とも本出願の譲受人に譲渡され、参照により本明細書に明白に組み込まれる、２００７年１２月１３日に出願された「Fast Algorithms for Computation of 5-Point DCT-II, DCT-IV, and DST-V, and Architecture for Design of Transforms of Size N=5*2K」と題する米国特許仮出願第６１／０１３，５７９号、および２００８年３月２５日に出願された「G.EV-VBR MDCT Module」と題する米国特許仮出願第６１／０３９，１９４号の優先権を主張する。
【０００２】
以下の説明は、一般に、エンコーダおよびデコーダに関し、特に、ボイスおよびオーディオコーデックのための効率的なＭＤＣＴ／ＩＭＤＣＴ実装（implementation）に関する。
【背景技術】
【０００３】
オーディオコーディングの１つの目的は、元のサウンド品質をできる限り保ちながら、オーディオ信号を所望の限られた情報量に圧縮することである。符号化プロセスでは、時間領域におけるオーディオ信号を周波数領域に変換し、対応する復号プロセスでは、そのような演算を逆算する。
【０００４】
そのような符号化プロセスの一部として、モディファイド離散コサイン変換（ＭＤＣＴ）によって信号を処理することができる。モディファイド離散コサイン変換（ＭＤＣＴ）は、タイプＩＶの離散コサイン変換（ＤＣＴ−ＩＶ）に基づくフーリエ関連の変換であり、あるブロックの終了が次のブロックの開始と一致するように複数のブロックが重なるという追加の特性をもつ。この重なりは、エイリアシングアーティファクトを回避するのに役立ち、ＤＣＴのエネルギー圧縮品質に加えて、特に信号圧縮の適用例にとってＭＤＣＴを魅力的にする。
【０００５】
ボコーダは、１０あるいは２０ミリセコンドフレームおよび、８kHzあるいは１６kHzのいずれかの入力サンプリングレートで動作する。それゆえ、それらのＭＤＣＴフィルタバンクは、１６０あるいは３２０点の変換となる。
【０００６】
しかしながら、将来のスピーチコーダがブロックスイッチング機能をサポートするようになれば、デシメートされたサイズ（たとえば、１６０、８０、４０点）のサポートも必要になることがある。したがって、小さいサイズのコア変換を使用してより大きい変換を実装するためには、小さい変換サイズの効率的な実装が望ましい。
【発明の概要】
【０００７】
以下で、いくつかの実施形態の基本的な理解を与えるために、１つまたは複数の実施形態の簡単な概要について説明する。この概要は、すべての企図される実施形態の包括的な概観ではなく、すべての実施形態の主要または重要な要素を識別するものでも、いずれかまたはすべての実施形態の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、１つまたは複数の実施形態のいくつかの概念を簡略化された形式で提示することである。
【０００８】
変換値を計算するための符号化方法および／またはデバイスを提供する。オーディオ信号を表す時間領域入力値を受信する。複数の５点変換に再帰的にデシメートされるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、入力値をスペクトル係数に変換する。５点変換を効率的に処理するために、様々な因数分解を実装することができる。
【０００９】
一例（図５）では、複数の５点変換のうちの少なくとも１つは、１２回加算演算、８回乗算演算、および３回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（５０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（５０２）を含む。
【００１０】
ｗ０＝ｘ０−ｘ４、
ｗ４＝ｘ０＋ｘ４、
ｗ１＝ｘ１−ｘ３、
ｗ３＝ｘ１＋ｘ３、
ｕ２＝ｘ２＋ｗ３＋ｗ４、
ｕ３＝−ｄ＊ｗ３＋ｃ＊ｗ４、
ｕ４＝ｄ＊ｗ４＋ｃ＊ｗ３、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｕ３−ｘ０、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝ｕ４＋ｘ０、
上式で、
【数１】
2011507037.tif 000003
【００１１】
である。
【００１２】
別の例（図６）では、複数の５点変換のうちの少なくとも１つは、１２回加算演算、５回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（６０２）を含む。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（６０２）を含む。
【００１３】
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｕ２＝ｚ２＋ｚ４、
ここで、
Ｘ０＝ｕ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ＊ｕ２＋０．５＊ｚ２−ｘ２、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝＝−ｃ＊ｕ２−０．５＊ｚ４＋ｘ２、
上式で、
【数２】
2011507037.tif 000004
【００１４】
である。
【００１５】
別の例（図７）では、複数の５点変換のうちの少なくとも１つは、１２回加算演算、５回乗算演算、１回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（７０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（７０２）を含む。
【００１６】
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｔ２＝ｚ２＋ｚ４、
ｔ４＝ｚ２−ｚ４、
ｃ’＝ｃ＋０．２５、
ここで、
Ｘ０＝ｔ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ’＊ｔ２−０．２５＊ｔ４−ｘ２＝０．２５＊ｔ４＋ｃ’＊ｔ２−ｘ２）、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝−ｃ’＊ｔ２−０．２５＊ｔ４＋ｘ２＝０．２５＊ｔ４−（ｃ’＊ｔ２−ｘ２）、
上式で、
【数３】
2011507037.tif 000005
【００１７】
である。
【００１８】
別の例（図８）では、複数の５点変換のうちの少なくとも１つは、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（８０２）を含む。
【００１９】
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６、
ここで、
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５、
上式で、
【数４】
2011507037.tif 000006
【００２０】
である。
【００２１】
代替的に、複数の５点変換のうちの少なくとも１つは、１２回加算演算、５回乗算演算、１回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの変換（８０２）を含むことができる。
【００２２】
別の例（図９）では、複数の５点変換のうちの少なくとも１つは、２０回加算演算、１６回乗算演算、および３回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（９０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（９０２）を含むことができる。
【００２３】
ｋ１＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｋ２＝ｈ＊ｘ１＋ｇ＊ｘ３、
ｋ３＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｋ４＝ｉ＊ｘ０＋ｆ＊ｘ４、
ｋ５＝ｉ＊ｘ１−ｆ＊ｘ３、
ｋ６＝−ｆ＊ｘ１＋ｉ＊ｘ３、
ｋ７＝ｇ＊ｘ０−ｈ＊ｘ４、
ｋ８＝ｈ＊ｘ０−ｇ＊ｘ４、
ｊ１＝ｘ０＋ｘ４、
ｊ２＝ｘ３−ｘ１、
ここで、
Ｘ０＝ｋ３＋ｋ１＋ｘ２、
Ｘ１＝ｋ７＋ｋ５−ｘ２、
Ｘ２＝ｊ１＋ｊ２−ｘ２、
Ｘ３＝ｈ＊ｘ０−ｇ＊ｘ４−ｆ＊ｘ１＋ｉ＊ｘ３＋ｘ２、
Ｘ４＝ｋ４−ｋ２＋ｘ２。
【００２４】
上式で、
【数５】
2011507037.tif 000007
【００２５】
である。
【００２６】
別の例（図１０）では、複数の５点変換のうちの少なくとも１つは、２０回加算演算、１２回乗算演算、および４回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１００２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１００２）を含むことができる。
【００２７】
ｑ１＝ｘ０＋ｘ４、
ｑ２＝ｘ３−ｘ１、
ｐ１＝（ｘ１−ｘ３）＊ｇ−ｘ１＊（ｇ＋ｈ）＝ｑ２＊ｇ−ｘ１＊（ｇ＋ｈ）、
ｐ２＝（ｘ１−ｘ３）＊ｇ＋ｘ３＊（ｈ＋ｇ）＝ｑ２＊ｇ＋ｘ３＊（ｇ＋ｈ）、
ｐ３＝（ｘ０＋ｘ４）＊ｆ＋ｘ０＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ０＊（ｉ−ｆ）、
ｐ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ４＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ４＊（ｉ−ｆ）、
ｐ５＝（ｘ３−ｘ１）＊ｆ＋ｘ３＊（ｉ−ｆ）＝ｑ２＊ｆ＋ｘ３＊（ｉ−ｆ）、
ｐ６＝（ｘ３−ｘ１）＊ｆ−ｘ１＊（ｉ−ｆ）＝ｑ２＊ｆ−ｘ１＊（ｉ−ｆ）、
ｐ７＝（ｘ０＋ｘ４）＊ｇ＋ｘ０＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ０＊（ｈ＋ｇ）、
ｐ８＝（ｘ０＋ｘ４）＊ｇ＋ｘ４＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ４＊（ｈ＋ｇ）、
ここで、
Ｘ０＝ｐ２＋ｐ４＋ｘ２、
Ｘ１＝ｐ５＋ｐ７−ｘ２、
Ｘ２＝ｑ１＋ｑ２−ｘ２、
Ｘ３＝ｐ６＋ｐ８＋ｘ２、
Ｘ４＝ｐ１＋ｐ３＋ｘ２、
上式で、
【数６】
2011507037.tif 000008
【００２８】
である。
【００２９】
別の例（図１４）では、複数の５点変換のうちの少なくとも１つは、１６回加算演算、９回乗算演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１４０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１４０２）を含むことができる。
【００３０】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝２ｃ＊ｖ２＋ｚ２−２＊ｘ２、
ｙ４＝−２ｃ＊ｖ２−ｚ４＋２＊ｘ２、
ここで、
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−Ｘ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝ｙ４−Ｘ３、
上式で、
【数７】
2011507037.tif 000009
【００３１】
および
【数８】
2011507037.tif 000010
【００３２】
である。
【００３３】
別の例（図１５）では、複数の５点変換のうちの少なくとも１つは、１５回加算演算、１０回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１５０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１５０２）を含むことができる。
【００３４】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝（２ｃ＋２）＊ｖ２＋ｚ２、
ｙ４＝２ｃ＊ｖ２＋ｚ４、
ここで、
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｙ４＋２＊ｘ２−Ｘ３、
上式で、
【数９】
2011507037.tif 000011
【００３５】
および
【数１０】
2011507037.tif 000012
【００３６】
である。
【００３７】
別の例（図１６）では、複数の５点変換のうちの少なくとも１つは、１５回加算演算、１１回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１６０２／１７０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１６０２）を含むことができる。
【００３８】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｄ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３、
上式で、
【数１１】
2011507037.tif 000013
【００３９】
および
【数１２】
2011507037.tif 000014
【００４０】
である。
【００４１】
別の例（図１７）では、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１７０２）を含むことができる。
【００４２】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｄ２＝２（ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｄ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３、
上式で、
【数１３】
2011507037.tif 000015
【００４３】
および
【数１４】
2011507037.tif 000016
【００４４】
である。
【００４５】
別の例（図１８）では、複数の５点変換のうちの少なくとも１つは、１５回加算演算、１２回乗算演算、２回シフト演算、および５回演算の最長経路長によって因数分解される、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１８０２）を含むことができる。たとえば、複数の５点変換のうちの少なくとも１つは、入力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］をとって出力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］を生成し、以下の中間結果によって特徴付けられる、少なくとも１つの離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）（１８０２）を含むことができる。
【００４６】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｒ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｒ４＝４（ｃ＋１）＊ｚ２＋４（ｃ＋１）＊ｚ４、
ここで、
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｒ２、
Ｘ４＝−ｒ４＋２＊ｘ２−ｚ３、
上式で、
【数１５】
2011507037.tif 000017
【００４７】
および
【数１６】
2011507037.tif 000018
【００４８】
である。
【００４９】
さらに、変換方法および／またはデバイスは、変換を実行する前に入力値に対してウィンドウイング（windowing）演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。
【００５０】
いくつかの実装形態では、ＭＤＣＴは、５点離散コサイン変換タイプＩＩを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００５１】
他の実装形態では、ＭＤＣＴは、５点離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００５２】
さらに他の実装形態では、ＭＤＣＴは、５点離散コサイン変換タイプＩＩおよび５点離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００５３】
さらに他の実装形態では、ＭＤＣＴは、５点離散サイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装する。
【００５４】
逆変換値を計算するための復号方法および／またはデバイスを提供する。オーディオ信号を表すスペクトル係数入力値が受信される。次いで、スペクトル係数入力値は、複数の５点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、時間領域出力値に変換される。
【００５５】
一例（図３２）では、複数の５点逆変換のうちの少なくとも１つは、１２回加算演算、４回乗算演算、２回シフト演算、および４回演算の最長経路長によって因数分解される、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）（３２０２）を含むことができる。たとえば、複数の５点逆変換のうちの少なくとも１つは、入力ベクトル［Ｘ０，Ｘ１，Ｘ２，Ｘ３，Ｘ４］をとって出力ベクトル［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも１つの逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）（３２０２）を含むことができる。
【００５６】
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１、
ｗ３＝γＸ３−βＸ１、
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
ここで、
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２、
上式で、
【数１７】
2011507037.tif 000019
【００５７】
である。
【００５８】
さらに、復号方法および／またはデバイスは、逆変換を実行した後に入力値に対してウィンドウイング演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。
【００５９】
一実装形態では、ＩＭＤＣＴは、５点逆離散コサイン変換タイプＩＩを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００６０】
別の実装形態では、ＩＭＤＣＴは、５点逆離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００６１】
さらに別の実装形態では、ＩＭＤＣＴは、５点逆離散コサイン変換タイプＩＩおよび５点逆離散コサイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００６２】
一実装形態では、ＩＭＤＣＴは、５点逆離散サイン変換タイプＩＶを使用して、６４０、３２０、１６０、８０、４０点変換のうちの少なくとも１つを実装することができる。
【００６３】
様々な特徴、性質、および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載する詳細な説明を読めば明らかになろう。
【図面の簡単な説明】
【００６４】
【図１】ＭＤＣＴ分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図。
【図２】どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図。
【図３】ＩＭＤＣＴ合成フィルタバンクを含むことができるデコーダの一例を示すブロック図。
【図４】どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図。
【図５】５点ＤＣＴ−ＩＩ変換の因数分解の第１の例を示す流れ図。
【図６】５点ＤＣＴ−ＩＩ変換の因数分解の第２の例を示す流れ図。
【図７】５点ＤＣＴ−ＩＩ変換の因数分解の第３の例を示す流れ図。
【図８】５点ＤＣＴ−ＩＩ変換の因数分解の代替例を示す流れ図。
【図９】５点ＤＣＴ−ＩＶ変換の因数分解の第１の例を示す流れ図。
【図１０】どのように５点ＤＣＴ−ＩＶ変換を実装することができるかの第２の例を示す流れ図。
【図１１】どのようにＤＣＴ−ＩＶ変換をＤＣＴ−ＩＩ変換にマッピングして、入力係数を出力係数に変換することができるかを示すブロック図。
【図１２】５点ＤＣＴ−ＩＩ変換を使用して５点ＤＣＴ−ＩＶ変換を実装して、入力係数を出力係数に変換することができることを示すブロック図。
【図１３】５点ＤＣＴ−ＩＩ変換を使用して実装することができる図１２の５点ＤＣＴ−ＩＶ変換の因数分解の一例を示すブロック図。
【図１４】どのように図１３のＤＣＴ−ＩＶ変換のマッピングを図６のＤＣＴ−ＩＩ変換と組み合わせることができるかを示すブロック図。
【図１５】どのように図１４のＤＣＴ−ＩＶ変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
【図１６】どのように図１５のＤＣＴ−ＩＶ変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
【図１７】どのように図１６のＤＣＴ−ＩＶ変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
【図１８】どのように図１７のＤＣＴ−ＩＶ変換をさらにモディファイして等価変換にすることができるかを示すブロック図。
【図１９】Ｎサイズ変換が複数の５点変換によって表されるまで、どのようにＮサイズ変換をより小さいＮ／２サイズ変換に再帰的に分割することができるかを示すブロック図。
【図２０】１０点ＤＣＴ−ＩＶ変換を複数のより小さい５点ＤＣＴ−ＩＩ変換に再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。
【図２１】Ｎサイズ逆変換が複数の５点逆変換によって表されるまで、どのようにＮサイズ逆変換をより小さいＮ／２サイズ逆変換に再帰的に分割することができるかを示すブロック図。
【図２２】１０点ＩＤＣＴ−ＩＶ逆変換を複数のより小さい５点ＩＤＣＴ−ＩＩ逆変換に再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図。
【図２３】同数の周波数係数を保ちながら、変換段に関連する遅延を１０ｍｓに低減するために使用することができる非対称ウィンドウ形状を示す図。
【図２４】変換値を計算するためのデバイスを示すブロック図。
【図２５】５点コア変換に基づくＭＤＣＴ変換を使用して信号を符号化するための方法の一例を示す図。
【図２６】変換値を計算するためのデバイスを示すブロック図。
【図２７】コアＩＤＣＴ−ＩＩ変換に基づくＩＭＤＣＴ変換を使用して信号を復号するための方法の一例を示す図。
【図２８】１０点ＤＣＴ−ＩＶ変換を複数のより小さい５点ＤＣＴ−ＩＩ変換に再帰的に分割する、変換デシメーションおよび分割の代替例を示す図。
【図２９】図２８の変換の逆である１０点ＩＤＣＴ−ＩＶ変換を示す図。
【図３０】１０点ＤＣＴ−ＩＶ逆変換を複数のより小さい５点ＤＣＴ−ＩＩ変換および５点ＤＣＴ−ＩＶに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。
【図３１】図３０の順変換に対する逆変換の一例を示すブロック図。
【図３２】図８の順変換に対応する逆変換を示す図。
【発明を実施するための形態】
【００６５】
次に、図面を参照しながら様々な実施形態について説明するが、全体にわたって同様の要素を指すのに同様の参照符号を使用する。以下の記述では、説明の目的で、１つまたは複数の実施形態の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような（１つまたは複数の）実施形態は、これらの具体的な詳細なしに実施できることは明らかであろう。他の例では、１つまたは複数の実施形態の説明を円滑にするために、よく知られた構造およびデバイスはブロック図の形態で示す。
【００６６】
概観
１つの特徴は、（ある整数Ｋ＞＝１に対して、Ｎ＝５＊２＾Ｋである）Ｎ点ＭＤＣＴ変換をより小さいサイズのＮ／２点ＤＣＴ−ＩＶ、ＤＳＴ−ＩＶおよび／またはＤＣＴ−ＩＩ変換にマッピングすることによって、Ｎ点ＭＤＣＴ変換を実装することを提供する。一例では、スケーリングされた５点コア関数を最後の段で利用することによって、ＭＤＣＴを２分の１に系統的にデシメートすることができる。１つの特徴は、サイズ５のＤＣＴ−ＩＩ、ＤＣＴ−ＩＶ、およびＤＳＴ−ＩＶコア変換を計算するためのいくつかの高速アルゴリズムを提供する。本明細書で請求する全体的な変換アーキテクチャは、Ｎ＝５＊２＾Ｋである、サイズＮの変換をサイズＮ／２の２つの変換に再帰的に分割し、本明細書で説明する高速の技法を使用することによって最終の（最小の）５点変換を実装する、一般的なデシメーションプロセスである。そのようなサイズの変換は、最近および新興の規格Ｇ．７２９．１、Ｇ．７１８、ＥＶＲＣ−ＷＢなどのスピーチおよびオーディオコーディングの適用例のためのＭＤＣＴフィルタバンクの設計において発生する。
【００６７】
別の特徴は、ＭＤＣＴを計算するための上記のアーキテクチャと、同数の周波数係数を保ちながら、変換段に関連する遅延を低減するための非対称ウィンドウとを組み合わせる、ＭＤＣＴのモディファイドウィンドウイング段を使用することを提供する。
【００６８】
コーデック構造
図１は、ＭＤＣＴ分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図である。エンコーダ１０２は入力オーディオ信号１０４を受信することができる。ＭＤＣＴ分析フィルタバンク１０６（すなわち、タイプＩＶの離散コサイン変換に基づくモディファイド離散コサイン変換）は、時間領域入力オーディオ信号１０４を複数のサブバンド信号に分解し、それらの信号を周波数領域に変換するように動作し、各サブバンド信号は、サブバンドごとに、ブロックごとに、変換係数に変換される。次いで、得られた信号は、量子化器１０８によって量子化され、エントロピーエンコーダ１１０によって符号化されて、デジタルオーディオ信号のビットストリーム１１２が生成される。一例によれば、ＭＤＣＴ分析フィルタバンク１０６は、ウィンドウイング関数１１４、（たとえば、時間領域から周波数領域への）変換１１６、および／またはスケーリング関数１１８によって実装することができる。ウィンドウイング関数１１４、変換１１６、および／またはスケーリング関数１１６を含むＭＤＣＴ分析フィルタバンク１０６は、ハードウェア（たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして）、ソフトウェア（たとえば、プロセッサによって実行可能な命令）、および／またはそれらの組合せで実装することができる。
【００６９】
図２は、どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図である。この例では、図１の変換１１６は、複数の入力２０２を受信し、複数の出力２０４を生成することができる。これを達成するために、変換１１６は、同じサイズまたはより小さいサイズの１つまたは複数の変換によって表すことができる。たとえば、変換１１６は、複数のｋ点ＤＣＴ−ＩＶ変換２０６ａおよび２０６ｂによって実装することができる。今度は、各ｋ点ＤＣＴ−ＩＶ変換２０６ａおよび２０６ｂは、１つまたは複数のｎ点ＤＣＴ−ＩＩ変換２０８ａ、２０８ｂ、または２１０ａ、２１０ｂによって実装することができる。いくつかの実装形態では、ＤＣＴ−ＩＶ変換の代わりに、離散サイン変換（ＤＳＴ）−ＩＶを使用できることに留意されたい。より大きい変換１１６を複数のより小さい変換２０８に再帰的に分割することによって、より大きい変換１１６の実装が簡単になる。ただし、演算を最小限に抑える高速変換パフォーマンスを達成するためには、より小さい変換の効率的なアルゴリズムの実装が望ましい。一例では、変換１１６は、オーディオ信号を表す時間領域入力値ｘ（０）．．．ｘ（ｍ）２０２を受信し、それらを周波数領域スペクトル係数Ｘ（０）．．．Ｘ（ｍ）２０４に変換することができる。これらのより小さい変換のための様々な実装形態について以下で説明する。
【００７０】
図３は、ＩＭＤＣＴ合成フィルタバンクを含むことができるデコーダの一例を示すブロック図である。デコーダ３０２はビットストリーム３０４を受信することができる。エントロピーデコーダ３０６はビットストリーム３０４を復号し、次いで、ビットストリーム３０４は、逆量子化器３０８によって逆量子化されて、周波数領域信号が生成される。ＩＭＤＣＴ合成フィルタバンク３１０（すなわち、タイプＩＶの離散コサイン変換に基づく逆モディファイド離散コサイン変換）は、周波数領域信号３０４を変換して時間領域オーディオ信号３１２に戻すように動作する。ＩＭＤＣＴ合成フィルタバンク３１０はＭＤＣＴ分析フィルタバンク１０６の演算を逆算することができる。一例によれば、ＩＭＤＣＴ合成フィルタバンク３１０は、スケーリング関数３１４、（たとえば、周波数領域から時間領域への）逆変換３１６、ならびにウィンドウイング＋重なりおよび追加関数３１８によって実装することができる。スケーリング関数３１４、逆変換３１６、および／またはウィンドウイング関数３１８を含むＩＭＤＣＴ合成フィルタバンク３１０は、ハードウェア（たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして）、ソフトウェア（たとえば、プロセッサによって実行可能な命令）、および／またはそれらの組合せで実装することができる。
【００７１】
図４は、どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図である。この例では、図３の逆変換３１６は、複数の入力４０２を受信し、複数の出力４０４を生成することができる。これを達成するために、逆変換３１６は、同じサイズまたはより小さいサイズの１つまたは複数の変換によって表すことができる。たとえば、逆変換３１６は、複数のｋ点ＩＤＣＴ−ＩＶ逆変換４０６ａおよび４０６ｂによって実装することができる。今度は、各ｋ点ＩＤＣＴ−ＩＶ逆変換４０６ａおよび４０６ｂは、１つまたは複数のｎ点ＩＤＣＴ−ＩＩ変換４０８ａ、４０８ｂ、または４１０ａ、４１０ｂによって実装することができる。いくつかの実装形態では、ＩＤＣＴ−ＩＶ変換の代わりに、逆離散サイン変換（ＩＤＳＴ）−ＩＶを使用できることに留意されたい。一例では、変換３１６は、オーディオ信号を表す周波数領域スペクトル係数Ｘ（０）．．．Ｘ（ｍ）４０２を受信し、それらを時間領域に再構成された出力値ｘ（０）．．．ｘ（ｍ）４０４に変換することができる。ただし、演算を最小限に抑える高速の変換パフォーマンスを達成するためには、より小さい逆変換の効率的なアルゴリズムの実装が望ましい。
【００７２】
ＭＤＣＴ１０２およびＩＭＤＣＴ３０２変換への入力は、複数のデータポイントを有するフレームまたはブロックとして処理できることに留意されたい。したがって、ＭＤＣＴベースのボコーダ（たとえば、Ｇ．７２２．１やＧ．７２２．１Ｃなど）が、３２０よりも小さいフレーム長を有するデータブロックをサポートするためには、デシメートされたサイズの変換が必要になる。１６０、８０、４０などのフレーム長を有するブロックでは、これらのサイズがすべて５の倍数になることがわかる。したがって、（デシメーション技法による）最後の可約でないブロックサイズは、サイズ５の変換を使用することができる。計算複雑性の見地から、ＤＣＴ−ＩＶ変換またはＦＦＦ変換のいずれかよりも、５点ＤＣＴ−ＩＩ変換を設計するほうが、はるかに効率的であることがわかる。
【００７３】
ＭＤＣＴ変換の定義
行列表記法を使用して、ＭＤＣＴ変換を行列Ｍによって表すことができる。
【数１８】
2011507037.tif 000020
【００７４】
上式で、
【数１９】
2011507037.tif 000021
【００７５】
である。
【００７６】
したがって、
【数２０】
2011507037.tif 000022
【００７７】
となり、上式で、ｘは、入力サンプルの行列
【数２１】
2011507037.tif 000023
【００７８】
を表し、Ｘは、得られたＭＤＣＴの係数の行列
【数２２】
2011507037.tif 000024
【００７９】
を表し、
【数２３】
2011507037.tif 000025
【００８０】
は、再構成された出力の行列
【数２４】
2011507037.tif 000026
【００８１】
を表す。
【００８２】
ＭＤＣＴ変換を実装するために、ＭＤＣＴ変換をＮ／２点コア変換関数にマッピングすることができる。たとえば、図１の変換１１６を、１つまたは複数のＮ／２点ＤＣＴ−ＩＶ変換として実装することができる。
【００８３】
ＤＣＴ−ＩＶ変換は、次のように定義することができる。
【数２５】
2011507037.tif 000027
【００８４】
一方、ＩＤＣＴ−ＩＶ変換は、次のように定義することができる。
【数２６】
2011507037.tif 000028
【００８５】
ＭＤＣＴ変換は、次のようにＮ／２点ＤＣＴ−ＩＶ変換にマッピングすることができ、
【数２７】
2011507037.tif 000029
【００８６】
ＩＭＤＣＴ変換は、次のようにＮ／２点ＩＤＣＴ−ＩＶ変換にマッピングすることができ、
【数２８】
2011507037.tif 000030
【００８７】
上式で、
【数２９】
2011507037.tif 000031
【００８８】
上式で、ＩＮ／４は、Ｎ／４×Ｎ／４の単位行列であり、ＪＮ／４は、Ｎ／４×Ｎ／４の順序反転行列であり、行列Ｓは次のように定義され、
【数３０】
2011507037.tif 000032
【数３１】
2011507037.tif 000033
【００８９】
は、次のように定義することができるＮ／２×Ｎ／２のＤＣＴ−ＩＶ行列である。
【数３２】
2011507037.tif 000034
【００９０】
ＤＣＴ−ＩＶ行列の対称性およびインボリュートの性質を使用することによって、それをＤＣＴ−ＩＩ変換にマッピングすることができる。ＤＣＴ−ＩＩ変換は、次のように定義することができる。
【数３３】
2011507037.tif 000035
【００９１】
同様に、ＩＤＣＴ−ＩＩ変換は、次のように定義することができる。
【数３４】
2011507037.tif 000036
【００９２】
上式で、ｋ＝０の場合は
【数３５】
2011507037.tif 000037
【００９３】
であり、他の場合は１である。
【００９４】
ＤＣＴ−ＩＶ、ＤＳＴ−ＩＶ、およびＤＣＴ−ＩＩ変換の定義
１つの特徴によれば、１つまたは複数のＤＣＴ−ＩＩ（およびＩＤＣＴ−ＩＩ）変換としてそれぞれ実装することができる１つまたは複数のＤＣＴ−ＩＶまたはＤＳＴ−ＩＶ（およびＩＤＣＴ−ＩＶまたはＤＳＴ−ＩＶ）によって、変換１１６（図１）および逆変換３１６（図３）をデシメートし、実装することができる。
【００９５】
ＤＣＴ−ＩＶおよびＩＤＣＴ−ＩＶは、対応して、次のように定義することができる。
【数３６】
2011507037.tif 000038
【数３７】
2011507037.tif 000039
【００９６】
ＤＳＴ−ＩＶおよびＩＤＳＴ−ＩＶは、対応して、次のように定義することができる。
【数３８】
2011507037.tif 000040
【数３９】
2011507037.tif 000041
【００９７】
同様に、ＤＣＴ−ＩＩおよびその逆変換は、対応して、次のように定義することができる
【数４０】
2011507037.tif 000042
【数４１】
2011507037.tif 000043
【００９８】
上式で、ｋ＝０の場合はλ（ｋ）＝１／２であり、他の場合は１である。
【００９９】
式１〜式６において、ｎ＝０、１、．．．Ｎ−１に対する｛ｘ（ｎ）｝は、サンプルの入力シーケンスを表し、Ｎはフレーム長を示し、Ｘ（ｋ）は得られたＭＤＣＴの係数である。
【０１００】
Ｎ＝５の場合、ＤＣＴ−ＩＶ変換のための行列Ｃ＿ＩＶ、ＤＳＴ−ＩＶ変換のための行列Ｓ＿ＩＶ、およびＤＣＴ−ＩＩ変換のための行列Ｃ＿ＩＩは、対応して、次のように表すことができる。
【数４２】
2011507037.tif 000044
【数４３】
2011507037.tif 000045
【数４４】
2011507037.tif 000046
【０１０１】
ＤＣＴ−ＩＩの表現を簡単にするために、因数
【数４５】
2011507037.tif 000047
【０１０２】
を無視することができ、すべての係数は、
【数４６】
2011507037.tif 000048
【０１０３】
で乗じ、同時に以下の表記法を使用することができる。
【数４７】
2011507037.tif 000049
【０１０４】
それによって、以下が生成される。
【数４８】
2011507037.tif 000050
【０１０５】
ここで、ａ２＋ｂ２＝１．２５であり、ｃ２＋ｄ２＝０．７５であることに留意されたい。さらに、ｃ−ｄ＝０．５であることにも留意されたい。これは、関連するコサイン値に関する代数式から得られる。
【数４９】
2011507037.tif 000051
【０１０６】
同様に、ＤＣＴ−ＩＶの場合、すべての係数は、
【数５０】
2011507037.tif 000052
【０１０７】
で乗じ、以下の表記法を使用する。
【数５１】
2011507037.tif 000053
【０１０８】
以下が生成される。
【数５２】
2011507037.tif 000054
【０１０９】
ｆ２＋ｉ２＝２であり、同様に、ｇ２＋ｈ２＝２であることに留意されたい。さらに、
【数５３】
2011507037.tif 000055
【０１１０】
であり、
【数５４】
2011507037.tif 000056
【０１１１】
であることに注意されたい。これは、関連するコサイン値に関する代数式から得られる。
【数５５】
2011507037.tif 000057
【０１１２】
最後に、ＤＳＴ−ＩＶの場合、すべての係数は、
【数５６】
2011507037.tif 000058
【０１１３】
で乗じ、以下の表記法を使用することができる。
【数５７】
2011507037.tif 000059
【０１１４】
以下が生成される。
【数５８】
2011507037.tif 000060
【０１１５】
ＤＣＴ−ＩＶの場合と同様に、ここでもｆ２＋ｉ２＝２であり、同様に、ｇ２＋ｈ２＝２であることに留意されたい。
【０１１６】
５点ＤＣＴ−ＩＩを計算するための高速アルゴリズムの導出
処理効率を達成するためには、より大きい変換によって使用される最小サイズ変換が高速で効率的であるべきである。これは、これらの小さいサイズの変換によって実行される演算（たとえば、乗算、加算、およびシフト）を最小限に抑えることによって達成される。したがって、最小サイズ変換のための様々な因数分解を実装して、これを達成することができる。どの変換の因数分解を実装するかの選択は、使用されているプロセッサの能力を含む様々なファクタに依存することができる。
【０１１７】
効率的なＤＣＴ−ＩＩ変換は、様々な方法で実装することができる。たとえば、変換への入力が入力ベクトルｘによって与えられると仮定すると、以下のようになり、
【数５９】
2011507037.tif 000061
【０１１８】
ベクトルｘと、スケーリングされたＤＣＴ−ＩＩ行列（行列Ｄに記載の
【数６０】
2011507037.tif 000062
【０１１９】
によってスケーリングされた行列）との積が、ＤＣＴ−ＩＩ行列Ｘを生成する。
【数６１】
2011507037.tif 000063
【０１２０】
上式で、
【数６２】
2011507037.tif 000064
【０１２１】
である。
【０１２２】
この行列Ｘにおける奇数の係数Ｘ１およびＸ３の計算を考察する。
【数６３】
2011507037.tif 000065
【０１２３】
これは、ｘ０−ｘ４とｘ１−ｘ３による単純なバタフライとして係数Ｘ１とＸ３の両方を計算できることを示唆している。次に、この行列Ｘにおける偶数の係数Ｘ２およびＸ４の計算を考察する。
【数６４】
2011507037.tif 000066
【０１２４】
ここでも、やはり、ｘ０＋ｘ４とｘ１＋ｘ３による単純なバタフライとして計算を編成できるように見える。
【０１２５】
実際の変換演算は、加算、乗算および／またはシフトの全体的な数を低減するために内部変換演算を並べ替えることによって、効率的に実装することができる。したがって、変換の異なる因数分解によって異なる中間結果が達成され、そのような中間結果は、対応する各変換を特徴付ける。
【０１２６】
図５は、５点ＤＣＴ−ＩＩ変換５０２の因数分解の第１の例を示す流れ図である。この例では、以下の中間結果が計算されるように、５点ＤＣＴ  ＩＩ変換５０２を表すために上記の行列Ｘの奇数の係数Ｘ１およびＸ３と偶数の係数Ｘ２およびＸ４との間の関係を利用する。
【０１２７】
ｗ０＝ｘ０−ｘ４、
ｗ４＝ｘ０＋ｘ４、
ｗ１＝ｘ１−ｘ３、
ｗ３＝ｘ１＋ｘ３、
および、
ｕ２＝ｘ２＋ｗ３＋ｗ４、
ｕ３＝−ｄ＊ｗ３＋ｃ＊ｗ４、
ｕ４＝ｄ＊ｗ４＋ｃ＊ｗ３、
そして、以下の出力を得る。
【０１２８】
Ｘ０＝ｕ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｕ３−ｘ０、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝ｕ４＋ｘ０、
上式で、入力係数５０４（ｘ０，ｘ１，ｘ２，ｘ３，ｘ４）は、出力係数５０６（Ｘ０，Ｘ１，Ｘ２，Ｘ３，およびＸ４）に変換される。図５のこの方式の複雑さは、１２回加算および８回乗算にある。特に、第１のバタフライ５０８を実装して出力係数Ｘ１およびＸ３を得て、第２のバタフライ５１０を実装して出力係数Ｘ２およびＸ４を得る。この変換５０２における最長経路は、３回演算（バタフライが各経路につきわずか１つのＭＡＣを必要とすると仮定すると、加算および／または乗算）のみである。「バタフライ」によって実行される演算は、しばしば平面回転またはギブンス回転と呼ばれる。
【０１２９】
図６は、５点ＤＣＴ−ＩＩ変換６０２の因数分解の第２の例を示す流れ図である。この変換６０２は、入力係数５０４を出力係数５０６に変換するための図５の変換５０２から導出することができる。この実装形態では、第２のバタフライ５１０（図５）への入力は、値ｚ４＝ｘ０＋ｘ４およびｚ２＝ｘ１＋ｘ３として表され、Ｘ０に向かう順方向経路に沿って追加することができる。
【０１３０】
したがって、中間結果は次のように計算される。
【０１３１】
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｕ２＝ｚ２＋ｚ４。
【０１３２】
さらに、ｃ−ｄ＝０．５であることを使用して、次のように出力Ｘ０、Ｘ２、およびＸ４を表す。
【０１３３】
Ｘ０＝ｚ４＋ｚ２＋ｘ２、
Ｘ２＝ｃ＊ｚ４−ｄ＊ｚ２−ｘ２＝ｃ＊（ｚ４＋ｚ２）＋（ｃ−ｄ）＊ｚ２−ｘ２＝ｃ＊（ｚ４＋ｚ２）＋０．５＊ｚ２−ｘ２、
Ｘ４＝ｄ＊ｚ４−ｃ＊ｚ２＋ｘ２＝−ｃ＊（ｚ４＋ｚ２）−（ｃ−ｄ）＊ｚ４＋ｘ２＝−ｃ＊（ｚ４＋ｚ２）−０．５＊ｚ４＋ｘ２。
【０１３４】
したがって、５点ＤＣＴ  ＩＩ変換６０２は、以下によって特徴付けられる。
【０１３５】
Ｘ０＝ｕ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ＊ｕ２＋０．５＊ｚ２−ｘ２、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝＝−ｃ＊ｕ２−０．５＊ｚ４＋ｘ２。
【０１３６】
この変換６０２の複雑さは、１２回加算、５回乗算、および２回シフトにある。この変換における１／２因数は２進分数であり、したがって、そのような１／２で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。ここでの最長経路長は４回演算である。
【０１３７】
図７は、５点ＤＣＴ−ＩＩ変換７０２の因数分解の第３の例を示す流れ図である。この変換７０２は、入力係数５０４を出力係数５０６に変換するための図６の変換６０２から導出することができる。係数Ｘ２およびＸ４を求める式は、次のように表すことができる。
【０１３８】
Ｘ２＝ｃ＊（ｚ４＋ｚ２）＋０．５＊ｚ２−ｘ２＝ｃ’＊（ｚ４＋ｚ２）＋ｄ’＊（ｚ４−ｚ２）−ｘ２、
Ｘ４＝−ｃ＊（ｚ４＋ｚ２）−０．５＊ｚ４＋ｘ２＝−ｃ’＊（ｚ４＋ｚ２）＋ｄ’＊（ｚ４−ｚ２）＋ｘ２、
上式で、値ｃ’およびｄ’は以下のように選択される。
【数６５】
2011507037.tif 000067
【０１３９】
式７は、以下のように並べ替えることができる。
【０１４０】
ｚ４＊ｃ＋ｚ２＊（ｃ＋０．５）＝ｚ４＊（ｃ’＋ｄ’）＋ｚ２＊（ｃ’−ｄ’）。
【０１４１】
したがって、以下を示すことができる。
【０１４２】
ｃ＝ｃ’＋ｄ’、および、
ｃ＋０．５＝ｃ’−ｄ’。
【０１４３】
これらの式の両方を減算することによって、以下を示すことができる。
【０１４４】
０．５＝−２ｄ’、または、
ｄ’＝−０．２５、および、
ｃ’＝ｃ−ｄ’＝ｃ＋０．２５。
【０１４５】
したがって、出力係数Ｘ２およびＸ４は、次のように表すことができる。
【０１４６】
Ｘ２＝ｃ’＊（ｚ４＋ｚ２）−０．２５＊（ｚ４−ｚ２）−ｘ２＝０．２５＊（ｚ２−ｚ４）＋（ｃ’＊（ｚ４＋ｚ２）−ｘ２）、
Ｘ４＝−ｃ’＊（ｚ４＋ｚ２）−０．２５＊（ｚ４−ｚ２）＋ｘ２＝０．２５＊（ｚ２−ｚ４）−（ｃ’＊（ｚ４＋ｚ２）−ｘ２）、
この結果、図７の変換７０２がもたらされる。
【０１４７】
したがって、中間結果は次のように計算される。
【０１４８】
ｗ０＝ｘ０−ｘ４、
ｗ１＝ｘ１−ｘ３、
ｚ２＝ｘ１＋ｘ３、
ｚ４＝ｘ０＋ｘ４、
ｔ２＝ｚ２＋ｚ４、
ｔ４＝ｚ２−ｚ４、
ｃ’＝ｃ＋０．２５。
【０１４９】
したがって、５点ＤＣＴ  ＩＩ変換７０２は、以下によって特徴付けられる。
【０１５０】
Ｘ０＝ｔ２＋ｘ２、
Ｘ１＝ｂ＊ｗ１＋ａ＊ｗ０、
Ｘ２＝ｃ’＊ｔ２−０．２５＊ｔ４−ｘ２＝０．２５＊ｔ４＋ｃ’＊ｔ２−ｘ２）、
Ｘ３＝ａ＊ｗ１−ｂ＊ｗ０、
Ｘ４＝−ｃ’＊ｔ２−０．２５＊ｔ４＋ｘ２＝０．２５＊ｔ４−（ｃ’＊ｔ２−ｘ２）。
【０１５１】
この変換７０２は、１２回加算、５回乗算、および１回シフトで実装することができる。この変換７０２における１／４因数は２進分数であり、したがって、そのような１／４で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。ここでの最長経路長も４回演算である。
【０１５２】
図８は、５点ＤＣＴ−ＩＩ変換８０２の因数分解の代替例を示す流れ図である。この変換における因数αは２進分数であり、したがって、そのようなαで乗じる乗算は、２値シフト演算にすぎないことに留意されたい。この５点変換は、平面回転および５回乗算を使用するか、または、平面回転の因数分解による４回乗算を使用するか、またはリフティングステップを使用することによって実装することができる。入力ｘ５０４の５点シーケンスでは、４回非自明乗算、１２回加算、および２回シフトまたは５回乗算、１２回加算、および１回シフトを使用して、５点ＤＣＴ−ＩＩ変換８０２に関する出力Ｘ５０６を生成することができる。
【０１５３】
この例では、以下が乗数である。
【数６６】
2011507037.tif 000068
【０１５４】
ＤＣＴ−ＩＩ変換８０２は、以下のようになる中間結果を含むことができる。
【０１５５】
ｗ１＝ｘ０＋ｘ４、
ｗ２＝ｘ４−ｘ０、
ｗ３＝ｘ３−ｘ１、
ｗ４＝ｘ３＋ｘ１、
ｗ５＝ｗ１＋ｗ４、
ｗ６＝ｗ４−ｗ１、
ｕ１＝ｘ２−αｗ５、
ｕ２＝ｘ２＋ｗ５、
ｕ３＝βｗ２＋γｗ３、
ｕ４＝βｗ３−γｗ２、
ｕ５＝δｗ６。
【０１５６】
したがって、ＤＣＴ−ＩＩ変換８０２に関する出力Ｘ０、Ｘ１、Ｘ２、Ｘ３、およびＸ４は、次のように表すことができる。
【０１５７】
Ｘ０＝ｕ２、
Ｘ１＝ｕ４、
Ｘ２＝ｕ４−ｕ１、
Ｘ３＝ｕ３、
Ｘ４＝ｕ１＋ｕ５。
【０１５８】
図５〜図９に示す変換（および、本明細書での他の変換）に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることに留意されたい。したがって、これらの変換の流れ図からは、（たとえば、流れ図中の異なる点において）より大きいもしくはより小さい中間結果および／または異なる結果が企図され、理解される。
【０１５９】
逆変換の導出
図４〜図２０に示す変換は、それらの図に示す順変換を逆にするように反転することができる。図３２は、図８の順変換に対応する逆変換（５点ＩＤＣＴ−ＩＩ逆変換）を示している。逆変換３２０２は、入力３２０４（スペクトル係数）を出力（時間領域値）３２０６に変換し、以下の中間結果によって特徴付けることができる。
【０１６０】
ｕ１＝Ｘ４−Ｘ２、
ｕ５＝Ｘ４＋Ｘ２、
ｗ０＝Ｘ０＋ｕ１、
ｗ５＝Ｘ０−αｕ１、
ｗ２＝βＸ３−γＸ１
ｗ３＝γＸ３−βＸ１、フローグラフと比較したソフトウェアの否定因数を使用する。
【０１６１】
ｗ６＝δｕ５、
ｗ１＝ｗ５−ｗ６、
ｗ４＝ｗ５＋ｗ６、
上式で、
【数６７】
2011507037.tif 000069
【０１６２】
である。
【０１６３】
したがって、ＩＤＣＴ−ＩＩ変換３２０２に関する出力３２０６であるＸ０、Ｘ１、Ｘ２、Ｘ３、およびＸ４は、次のように計算することができる。
【０１６４】
ｘ０＝ｗ１−ｗ２、
ｘ１＝ｗ４＋ｗ３、
ｘ２＝ｗ０、
ｘ３＝ｗ４−ｗ３、
ｘ４＝ｗ１＋ｗ２。
【０１６５】
５点ＤＣＴ−ＩＶおよびＤＳＴ−ＩＶを計算するための高速アルゴリズムの導出
効率的なＤＣＴ−ＩＶ変換および／またはＤＳＴ−ＩＶは、様々な方法で実装することができる。たとえば、変換への入力がベクトルｘによって与えられると仮定すると、以下のようになり、
【数６８】
2011507037.tif 000070
【０１６６】
ベクトルｘと、スケーリングされたＤＣＴ−ＩＶ行列（行列Ｅに記載の
【数６９】
2011507037.tif 000071
【０１６７】
によってスケーリングされた行列）との積が、ＤＣＴ−ＩＶ行列Ｘを生成する。
【数７０】
2011507037.tif 000072
【０１６８】
図９は、５点ＤＣＴ−ＩＶ変換９０２の因数分解の第１の例を示す流れ図である。変換９０２は、入力係数ｘ９０４を出力係数Ｘ９０６に変換（convert）する。変換９０２は、以下の単純な項の再配列によって得られる。
【０１６９】
Ｘ０＝ｆ＊ｘ０＋ｉ＊ｘ４＋ｇ＊ｘ１＋ｈ＊ｘ３＋ｘ２、
Ｘ１＝ｇ＊ｘ０−ｈ＊ｘ４＋ｉ＊ｘ１−ｆ＊ｘ３−ｘ２、
Ｘ２＝−ｘ１＋ｘ３−ｘ２＋ｘ０＋ｘ４、
Ｘ３＝ｈ＊ｘ０−ｇ＊ｘ４−ｆ＊ｘ１＋ｉ＊ｘ３＋ｘ２、
Ｘ４＝ｉ＊ｘ０＋ｆ＊ｘ４−ｈ＊ｘ１−ｇ＊ｘ３＋ｘ２、
上式で、
【数７１】
2011507037.tif 000073
【０１７０】
である。
【０１７１】
以下の中間結果を使用して、変換９０２を計算できることに留意されたい。
【０１７２】
ｋ１＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｋ２＝ｈ＊ｘ１＋ｇ＊ｘ３、
ｋ３＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｋ４＝ｉ＊ｘ０＋ｆ＊ｘ４、
ｋ５＝ｉ＊ｘ１−ｆ＊ｘ３、
ｋ６＝−ｆ＊ｘ１＋ｉ＊ｘ３、
ｋ７＝ｇ＊ｘ０−ｈ＊ｘ４、
ｋ８＝ｈ＊ｘ０−ｇ＊ｘ４、
ｊ１＝ｘ０＋ｘ４、
ｊ２＝ｘ３−ｘ１。
【０１７３】
したがって、変換９０２は次のように表すことができる。
【０１７４】
Ｘ０＝ｋ３＋ｋ１＋ｘ２、
Ｘ１＝ｋ７＋ｋ５−ｘ２、
Ｘ２＝ｊ１＋ｊ２−ｘ２、
Ｘ３＝ｈ＊ｘ０−ｇ＊ｘ４−ｆ＊ｘ１＋ｉ＊ｘ３＋ｘ２、
Ｘ４＝ｋ４−ｋ２＋ｘ２。
【０１７５】
したがって、図９の変換９０２に示すように、出力係数Ｘ０、Ｘ１、Ｘ２、Ｘ３、およびＸ４は、４つのバタフライ９０８ａ、９０８ｂ、９０８ｃ、および９０８ｄを使用することによって計算することができる。この実装形態の複雑さは、２０回加算および１６回乗算にある。この実装形態における最長経路長は３回演算のみである。
【０１７６】
図１０は、どのように５点ＤＣＴ−ＩＶ変換１００２を実装することができるかの第２の例を示す流れ図である。図９の変換９０２における各バタフライが実行すべき３回乗算のみを必要とするように、各バタフライをモディファイすることができる。たとえば、出力係数Ｘ０およびＸ４に関する成分演算は、次のように書くことができる。
【０１７７】
ｆ＊ｘ０＋ｉ＊ｘ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ４＊（ｉ−ｆ）、
ｉ＊ｘ０＋ｆ＊ｘ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ０＊（ｉ−ｆ）、
ｇ＊ｘ１＋ｈ＊ｘ３＝（ｘ１−ｘ３）＊ｇ＋ｘ３＊（ｈ＋ｇ）、
−ｈ＊ｘ１−ｇ＊ｘ３＝（ｘ１−ｘ３）＊ｇ−ｘ１＊（ｇ＋ｈ）。
【０１７８】
同様に、出力係数Ｘ１およびＸ３に関する成分演算は、次のように書くことができる。
【０１７９】
ｇ＊ｘ０−ｈ＊ｘ４＝（ｘ３−ｘ１）＊ｆ＋ｘ３＊（ｉ−ｆ）、
ｉ＊ｘ１−ｆ＊ｘ３＝（ｘ０＋ｘ４）＊ｇ＋ｘ０＊（ｈ＋ｇ）、
ｈ＊ｘ０−ｇ＊ｘ４＝（ｘ３−ｘ１）＊ｆ−ｘ１＊（ｉ−ｆ）、
−ｆ＊ｘ１＋ｉ＊ｘ３＝（ｘ０＋ｘ４）＊ｇ＋ｘ４＊（ｈ＋ｇ）。
【０１８０】
そのような分解を使用することによって、変換１００２に関する出力係数は、以下によって特徴付けることができる。
【０１８１】
Ｘ０＝（ｘ０＋ｘ４）＊ｆ＋ｘ４＊（ｉ−ｆ）＋（ｘ１−ｘ３）＊ｇ＋ｘ３＊（ｈ＋ｇ）＋ｘ２、
Ｘ１＝（ｘ３−ｘ１）＊ｆ＋ｘ３＊（ｉ−ｆ）＋（ｘ０＋ｘ４）＊ｇ＋ｘ０＊（ｈ＋ｇ）−ｘ２
Ｘ２＝−ｘ１＋ｘ３−ｘ２＋ｘ０＋ｘ４、
Ｘ３＝（ｘ３−ｘ１）＊ｆ−ｘ１＊（ｉ−ｆ）＋（ｘ０＋ｘ４）＊ｇ＋ｘ４＊（ｈ＋ｇ）＋ｘ２、
Ｘ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ０＊（ｉ−ｆ）＋（ｘ１−ｘ３）＊ｇ−ｘ１＊（ｇ＋ｈ）＋ｘ２。
【０１８２】
以下の中間結果を使用して、変換１００２を計算できることに留意されたい。
【０１８３】
ｑ１＝ｘ０＋ｘ４、
ｑ２＝ｘ３−ｘ１、
ｐ１＝（ｘ１−ｘ３）＊ｇ−ｘ１＊（ｇ＋ｈ）＝ｑ２＊ｇ−ｘ１＊（ｇ＋ｈ）、
ｐ２＝（ｘ１−ｘ３）＊ｇ＋ｘ３＊（ｈ＋ｇ）＝ｑ２＊ｇ＋ｘ３＊（ｇ＋ｈ）、
ｐ３＝（ｘ０＋ｘ４）＊ｆ＋ｘ０＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ０＊（ｉ−ｆ）、
ｐ４＝（ｘ０＋ｘ４）＊ｆ＋ｘ４＊（ｉ−ｆ）＝ｑ１＊ｆ＋ｘ４＊（ｉ−ｆ）、
ｐ５＝（ｘ３−ｘ１）＊ｆ＋ｘ３＊（ｉ−ｆ）＝ｑ２＊ｆ＋ｘ３＊（ｉ−ｆ）、
ｐ６＝（ｘ３−ｘ１）＊ｆ−ｘ１＊（ｉ−ｆ）＝ｑ２＊ｆ−ｘ１＊（ｉ−ｆ）、
ｐ７＝（ｘ０＋ｘ４）＊ｇ＋ｘ０＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ０＊（ｈ＋ｇ）、
ｐ８＝（ｘ０＋ｘ４）＊ｇ＋ｘ４＊（ｈ＋ｇ）＝ｑ１＊ｇ＋ｘ４＊（ｈ＋ｇ）。
【０１８４】
したがって、変換９０２は次のように表すことができる。
【０１８５】
Ｘ０＝ｐ２＋ｐ４＋ｘ２、
Ｘ１＝ｐ５＋ｐ７−ｘ２、
Ｘ２＝ｑ１＋ｑ２−ｘ２、
Ｘ３＝ｐ６＋ｐ８＋ｘ２、
Ｘ４＝ｐ１＋ｐ３＋ｘ２。
【０１８６】
ここで、この変換１００２の複雑さは２０回加算および１２回乗算にある。ここでの最長経路の長さは４回演算である。
【０１８７】
代替手法では、ＤＣＴ−ＩＶ変換をＤＣＴ−ＩＩ変換にマッピングすることによって、ＤＣＴ−ＩＶ変換を導出することができる。
【０１８８】
たとえば、図１１は、どのようにＤＣＴ−ＩＶ変換１１０２をＤＣＴ−ＩＩ変換１１０４にマッピングして、入力係数１１０６を出力係数１１０８に変換することができるかを示すブロック図である。
【０１８９】
図１２は、５点ＤＣＴ−ＩＩ変換を使用して５点ＤＣＴ−ＩＶ変換１２０２を実装して、入力係数１２０６を出力係数１２０８に変換することができることを示すブロック図である。これは、図１１に示す変換マッピングの特定の場合である。この例では、角度に関する表記法を次のように表すことができる。
【数７２】
2011507037.tif 000074
【０１９０】
図１３は、５点ＤＣＴ−ＩＩ変換を使用して実装することができる図１２の５点ＤＣＴ−ＩＶ変換の因数分解の一例を示すブロック図である。この例では、図１２の５点ＤＣＴ−ＩＶ変換を２で乗じ、
【数７３】
2011507037.tif 000075
【０１９１】
因数を周囲に移動している。このマッピングは、図１２のマッピングと等価である。
【０１９２】
図１４は、どのように図１３のＤＣＴ−ＩＶ変換１２０２のマッピングを図６のＤＣＴ−ＩＩ変換６０２と組み合わせることができるかを示すブロック図である。すなわち、ＤＣＴ変換１４０２は、図６のＤＣＴ−ＩＩ変換６０２として実装することができる、図１３の変換１２０２の組合せとすることができる。したがって、変換１４０２に関する出力係数は、以下によって特徴付けることができる。
【０１９３】
Ｘ０＝（ｆ＊ｘ０＋ｉ＊ｘ４）＋（ｈ＊ｘ３＋ｇ＊ｘ１）＋ｘ２、
Ｘ１＝［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２＊Ｘ０］、
Ｘ２＝［２ｃ＊（ｆ＊ｘ０＋ｉ＊ｘ４＋ｇ＊ｘ１＋ｈ＊ｘ３）＋（ｇ＊ｘ１＋ｈ＊ｘ３）−２＊ｘ２］−［Ｘ１］、
Ｘ３＝［２ｂ＊（ｆ＊ｘ０−ｉ＊ｘ４）−２ａ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［Ｘ２］、
Ｘ４＝［−２ｃ＊（ｆ＊ｘ０＋ｉ＊ｘ４＋ｇ＊ｘ１＋ｈ＊ｘ３）−（ｆ＊ｘ０＋ｉ＊ｘ４）＋２＊ｘ２］−［Ｘ３］、
上式で、
【数７４】
2011507037.tif 000076
【０１９４】
である。
【０１９５】
中間結果は次のように計算できることに留意されたい。
【０１９６】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝２ｃ＊ｖ２＋ｚ２−２＊ｘ２、
ｙ４＝−２ｃ＊ｖ２−ｚ４＋２＊ｘ２。
【０１９７】
したがって、出力は次のように表すことができる。
【０１９８】
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−Ｘ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝ｙ４−Ｘ３。
【０１９９】
このＤＣＴ−ＩＶ変換１４０２は、１６回加算、９回乗算、および２回シフトのみを使用する。この変換における２因数は２進分数であり、したがって、そのような２で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。
【０２００】
図１５は、どのように図１４のＤＣＴ−ＩＶ変換１４０２をさらにモディファイして等価変換１５０２にすることができるかを示すブロック図である。この例では、変換１５０２における最後のカスケード演算により、追加の簡略化が可能になる。したがって、変換１５０２に関する出力係数は、以下によって特徴付けることができる。
【０２０１】
Ｘ０＝（ｆ＊ｘ０＋ｉ＊ｘ４）＋（ｈ＊ｘ３＋ｇ＊ｘ１）＋ｘ２、
Ｘ１＝［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２＊Ｘ０］、
Ｘ２＝［（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４＋ｇ＊ｘ１＋ｈ＊ｘ３）］＋（ｇ＊ｘ１＋ｈ＊ｘ３）−［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］、
Ｘ３＝［２ｂ＊（ｆ＊ｘ０−ｉ＊ｘ４）−２ａ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［Ｘ２］、
Ｘ４＝［−２ｃ＊（ｆ＊ｘ０＋ｉ＊ｘ４＋ｇ＊ｘ１＋ｈ＊ｘ３）−（ｆ＊ｘ０＋ｉ＊ｘ４）＋２＊ｘ２］−［Ｘ３］。
【０２０２】
中間結果は次のように計算できることに留意されたい。
【０２０３】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｙ２＝（２ｃ＋２）＊ｖ２＋ｚ２、
ｙ４＝２ｃ＊ｖ２＋ｚ４。
【０２０４】
したがって、出力は次のように表すことができる。
【０２０５】
Ｘ０＝ｖ２＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｙ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｙ４＋２＊ｘ２−Ｘ３。
【０２０６】
したがって、このＤＣＴ−ＩＶ変換１５０２は、１５回加算、１０回乗算、および２回シフトのみを使用する。この変換における「２」因数は２進分数であり、したがって、そのような２で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。この実装形態における最長経路長は５回演算のみである。
【０２０７】
図１６は、どのように図１５のＤＣＴ−ＩＶ変換１５０２をさらにモディファイして等価変換１６０２にすることができるかを示すブロック図である。変換１６０２に関する出力係数は、以下によって特徴付けることができる。
【０２０８】
Ｘ０＝（ｆ＊ｘ０＋ｉ＊ｘ４）＋（ｈ＊ｘ３＋ｇ＊ｘ１）＋ｘ２、
Ｘ１＝［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２＊Ｘ０］、
Ｘ２＝［（２ｃ＋２）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）］−［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］、
Ｘ３＝［２ｂ＊（ｆ＊ｘ０−ｉ＊ｘ４）−２ａ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［Ｘ２］、
Ｘ４＝［−（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）−２ｃ＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋２＊ｘ２］−［Ｘ３］。
【０２０９】
中間結果は次のように計算できることに留意されたい。
【０２１０】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｖ１＝２ｂ＊ｗ１＋２ａ＊ｗ０、
ｖ２＝ｚ２＋ｚ４、
ｖ３＝２ｂ＊ｗ０−２ａ＊ｗ１、
ｄ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２。
【０２１１】
したがって、出力は次のように表すことができる。
【０２１２】
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｖ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｖ１、
Ｘ３＝ｖ３−Ｘ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３。
【０２１３】
したがって、このＤＣＴ−ＩＶ変換１６０２は、１５回加算、１１回乗算、および２回シフトのみを使用する。この変換における２因数は２進分数であり、したがって、そのような２で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。この実装形態における最長経路長は５回演算のみである。
【０２１４】
図１７は、どのように図１６のＤＣＴ−ＩＶ変換１６０２をさらにモディファイして等価変換１７０２にすることができるかを示すブロック図である。変換１７０２に関する出力係数は、以下によって特徴付けることができる。
【０２１５】
Ｘ０＝（ｆ＊ｘ０＋ｉ＊ｘ４）＋（ｈ＊ｘ３＋ｇ＊ｘ１）＋ｘ２、
Ｘ１＝［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２＊Ｘ０］、
Ｘ２＝［２（ｃ＋２）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）］−［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］、
Ｘ３＝［（２ｂ＋２ａ）＊（ｆ＊ｘ０−ｉ＊ｘ４）−（２ａ−２ｂ）＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２（ｃ＋２）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）］、
Ｘ４＝［−（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）−２ｃ＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋２＊ｘ２］−［Ｘ３］。
【０２１６】
中間結果は次のように計算できることに留意されたい。
【０２１７】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｄ２＝２（ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｄ４＝（２ｃ＋２）＊ｚ４＋２ｃ＊ｚ２。
【０２１８】
したがって、出力は次のように表すことができる。
【０２１９】
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｄ２、
Ｘ４＝−ｄ４＋２＊ｘ２−Ｘ３。
【０２２０】
したがって、このＤＣＴ−ＩＶ変換１７０２は、１５回加算、１１回乗算、および２回シフトのみを使用する。この変換における「２」因数は２進分数であり、したがって、そのような２で乗じる「乗算」は、２値シフト演算（すなわち、シフト）にすぎないことに留意されたい。この実装形態における最長経路長は５回演算のみである。
【０２２１】
図１８は、どのように図１７のＤＣＴ−ＩＶ変換１７０２をさらにモディファイして等価変換１８０２にすることができるかを示すブロック図である。この例では、最終段における再帰的加算の除去により、はるかに短くなった経路長および改善された数値安定度が達成される。変換１８０２に関する出力係数は、以下によって特徴付けることができる。
【０２２２】
Ｘ０＝（ｆ＊ｘ０＋ｉ＊ｘ４）＋（ｈ＊ｘ３＋ｇ＊ｘ１）＋ｘ２、
Ｘ１＝［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２＊Ｘ０］、
Ｘ２＝［２（ｃ＋２）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）］−［２ａ＊（ｆ＊ｘ０−ｉ＊ｘ４）＋２ｂ＊（ｇ＊ｘ１−ｈ＊ｘ３）］、
Ｘ３＝［（２ｂ＋２ａ）＊（ｆ＊ｘ０−ｉ＊ｘ４）−（２ａ−２ｂ）＊（ｇ＊ｘ１−ｈ＊ｘ３）］−［２（ｃ＋２）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋（２ｃ＋２）＊（ｆ＊ｘ０＋ｉ＊ｘ４）］、
Ｘ４＝［−４（ｃ＋１）＊（ｆ＊ｘ０＋ｉ＊ｘ４）−４（ｃ＋１）＊（ｇ＊ｘ１＋ｈ＊ｘ３）＋２＊ｘ２］−［（２ｂ＋２ａ）＊（ｆ＊ｘ０−ｉ＊ｘ４）−（２ａ−２ｂ）＊（ｇ＊ｘ１−ｈ＊ｘ３）］。
【０２２３】
中間結果は次のように計算できることに留意されたい。
【０２２４】
ｗ０＝ｆ＊ｘ０−ｉ＊ｘ４、
ｗ１＝ｇ＊ｘ１−ｈ＊ｘ３、
ｚ２＝ｇ＊ｘ１＋ｈ＊ｘ３、
ｚ４＝ｆ＊ｘ０＋ｉ＊ｘ４、
ｚ１＝２ａ＊ｗ０＋２ｂ＊ｗ１
ｚ３＝（２ｂ＋２ａ）＊ｗ０−（２ａ−２ｂ）＊ｗ１、
ｒ２＝（２ｃ＋２）＊ｚ２＋（２ｃ＋２）＊ｚ４、
ｒ４＝４（ｃ＋１）＊ｚ２＋４（ｃ＋１）＊ｚ４。
【０２２５】
したがって、出力は次のように表すことができる。
【０２２６】
Ｘ０＝ｚ２＋ｚ４＋ｘ２、
Ｘ１＝ｚ１−２＊Ｘ０、
Ｘ２＝ｄ２−ｚ１、
Ｘ３＝ｚ３−ｒ２、
Ｘ４＝−ｒ４＋２＊ｘ２−ｚ３。
【０２２７】
この変換１８０２は、１５回加算、１２回乗算、および２回シフトのみを使用する。「２」で乗じる乗算は、シフトであると考えられることに留意されたい。この実装形態における最長経路長は５回演算のみである。
【０２２８】
図５〜図１８に示すＤＣＴおよびＤＳＴ変換は、それらの図におけるＤＣＴおよびＤＳＴ変換演算を元に戻すまたは逆算するためのＩＤＣＴおよびＩＤＳＴ変換として可逆的とすることができることに留意されたい。
【０２２９】
サイズＮ＝５＊２Ｋの変換の計算
一実装形態によれば、Ｎ＝５＊２ＫであるＮサイズ変換は、ＤＣＴ−ＩＩ、ＤＣＴ−ＩＶ、ＤＳＴ−ＩＶ、または同様の核に基づくことができる、一連のより小さいＮ／２サイズ変換に再帰的に分割することができ、最後の５点カスケードは、５点変換を計算するための記載の高速アルゴリズムのうちの１つを使用することによって実装する。
【０２３０】
図１９は、Ｎサイズ変換が複数の５点変換によって表されるまで、どのようにＮサイズ変換をより小さいＮ／２サイズ変換に再帰的に分割することができるかを示すブロック図である。たとえば、Ｎサイズ（点）変換１９０２は、Ｎ個の入力係数１９１０を受信し、それらをＮ個の出力係数１９１２に変換する。Ｎサイズ変換１９０２は、２つのＮ／２サイズ変換１９０４ａおよび１９０４ｂにデシメートすることができる。同様に、各Ｎ／２サイズ変換１９０４ａおよび１９０４ｂは、最小の変換が５点変換１９０６ａ、１９０６ｂ、１９０８ａ、および１９０８ｂになるまで、複数のより小さい変換にさらにデシメートすることができる。様々な実装形態では、５点変換１９０６ａ、１９０６ｂ、１９０８ａ、および１９０８ｂは、図５〜図１８に示す５点変換のうちのいずれかによって実装することができる。
【０２３１】
図２０は、１０点ＤＣＴ−ＩＶ変換を複数のより小さい５点ＤＣＴ−ＩＩ変換２００４ａおよび２００４ｂに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。この例では、１０個の入力係数２００６が、１対のより小さい５点変換２００４ａおよび２００４ｂによって変換され、１０個の出力係数２００８が生成される。
【０２３２】
図２８は、１０点ＤＣＴ−ＩＶ変換を複数のより小さい５点ＤＣＴ−ＩＩ変換２８０４ａおよび２８０４ｂに再帰的に分割する、変換デシメーションおよび分割の代替例を示す図である。この例では、１０個の入力係数２８０６が、１対のより小さい５点変換２８０４ａおよび２８０４ｂによって変換され、１０個の出力係数２８０８が生成される。図２０と比較して、ＤＣＴ−ＩＶのためのこの代替デシメーションプロセスは、より多くの演算を必要とするが、数値的によりロバストである。すなわち、方式図２０において変換２００４ｂの後に減算のシーケンスを実行することは、中間変数の大きさを、Ｎが変換のサイズであるＮ／２だけ潜在的に増大させることがある。図２８の代替方式は、そのような実行を有さず、（正規直交演算である）平面回転のみを使用して、変換を計算する。ＤＣＴ−ＩＩのための分割プロシージャも、そのような性質を有する。また、分割プロセスにおいて、最終のアルゴリズムが変換タイプを再帰的に交互にすることができることに留意されたい。すなわち、分割プロセスは、ＤＣＴ−ＩＩをＤＣＴ−ＩＩおよびＤＣＴ−ＩＶまたは半分のサイズに分割することができ、次いで、ＤＣＴ−ＩＶを２つのＤＣＴ−ＩＩに分割し、一方、複数のＤＣＴ−ＩＩをより小さいＤＣＴ−ＩＩおよびＤＣＴ−ＩＶにさらに分割する、などである。
【０２３３】
図２９は、図２８の変換の逆である１０点ＩＤＣＴ−ＩＶ変換を示している。
【０２３４】
図２１は、Ｎサイズ逆変換が複数の５点逆変換によって表されるまで、どのようにＮサイズ逆変換をより小さいＮ／２サイズ逆変換に再帰的に分割することができるかを示すブロック図である。たとえば、Ｎサイズ（点）逆変換２１０２は、Ｎ個の入力係数２１１０を受信し、それらをＮ個の出力係数２１１２に変換する。Ｎサイズ逆変換２１０２は、２つのＮ／２サイズ逆変換２１０４ａおよび２１０４ｂにデシメートすることができる。同様に、各Ｎ／２サイズ逆変換２１０４ａおよび２１０４ｂは、最小の逆変換が５点逆変換２１０６ａ、２１０６ｂ、２１０８ａ、および２１０８ｂになるまで、複数のより小さい逆変換にさらにデシメートすることができる。様々な実装形態では、５点逆変換２１０６ａ、２１０６ｂ、２１０８ａ、および２１０８ｂは、図５〜図１８に示す変換に対応するいずれかの５点逆変換によって実装することができる。
【０２３５】
図２２は、１０点ＩＤＣＴ−ＩＶ逆変換２２０２を複数のより小さい５点ＩＤＣＴ−ＩＩ逆変換２２０４ａおよび２２０４ｂに再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図である。この例では、１０個の入力係数２２０６が、１対のより小さい５点逆変換２２０４ａおよび２２０４ｂによって変換され、１０個の出力係数２２０８が生成される。
【０２３６】
図３０は、１０点ＤＣＴ−ＩＶ逆変換を複数のより小さい５点ＤＣＴ−ＩＩ変換および５点ＤＣＴ−ＩＶに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。
【０２３７】
図３０は、１０点ＤＣＴ−ＩＶ逆変換を複数のより小さい５点ＤＣＴ−ＩＩ変換および５点ＤＣＴ−ＩＶに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。
【０２３８】
図３１は、図３０の順変換に対する逆変換の一例を示すブロック図である。
【０２３９】
非対称ウィンドウイング段をもつＭＤＣＴフィルタバンク
別の特徴によれば、ＭＤＣＴフィルタバンクの一部として非対称ウィンドウイング段を実装することができる。適用例によっては、ＭＤＣＴフィルタバンクは、複数の層を有するスケーラブルなスピーチコーデックで実装することができ、いくつかのそのような層は、ＭＤＣＴを使用して、前の層からの誤差信号を変換することができる。４０ミリ秒ウィンドウイング段を用いた重み付き誤差信号ｗｅｒｒ＿ｓｐ（ｋ）のＭＤＣＴは、以下によって与えられる。
【数７５】
2011507037.tif 000077
【０２４０】
図２３は、同数の周波数係数を保ちながら、変換段に関連する遅延を１０ｍｓに低減するために使用することができる非対称ウィンドウ形状を示している。そのような非対称ウィンドウ関数において最初の８０の因数が０になることにより、遅延の低減が可能になる。したがって、それらのサンプルにアクセスする必要はない。
【０２４１】
従来のＭＤＣＴウィンドウとは反対に、このウィンドウ２３０２は対称的でなく、したがって、ウィンドウの第２のハーフは第１のハーフの時間反転バージョンとは異なる。分析非対称ウィンドウ形状は、以下の式によって与えられる。
【数７６】
2011507037.tif 000078
【０２４２】
上式で、
【数７７】
2011507037.tif 000079
【０２４３】
および、Ｄ（ｎ）は以下によって定義され、
【数７８】
2011507037.tif 000080
【０２４４】
上式で、Ｍ＝３２０はＭＤＣＴ周波数成分の数を示し、Ｍｚ＝Ｍ／４は後続のゼロの量である。
【０２４５】
ＭＤＣＴのＤＣＴ−ＩＶへのマッピングについての行列の説明
ＭＤＣＴの係数ｗｅｒｒ＿ｓｐ（ｋ）の計算を行うには、まず、ウィンドウおよび正規化因数
【数７９】
2011507037.tif 000081
【０２４６】
を入力信号ｗｅｒｒ（ｎ）に適用し、次いで、Ｍ×２Ｍ行列Ｔによる積を計算し、
【数８０】
2011507037.tif 000082
【０２４７】
以下においてその分解を使用する。
【数８１】
2011507037.tif 000083
【０２４８】
上式で、
【数８２】
2011507037.tif 000084
【０２４９】
は、ＤＣＴ−ＩＶ変換のＭ×Ｍ行列であり、
【数８３】
2011507037.tif 000085
【０２５０】
上式で、ＩＮ／２およびＪＮ／２は、対応して、Ｎ／２×Ｎ／２の単位行列および順序反転行列を示す。
【０２５１】
ＤＣＴ−ＩＶの計算
サイズＭ＝５＊２ｋ（ｋ＝１、．．．、６）のＤＣＴ−ＩＶの計算は、ＤＣＴ−ＩＶを２分の１サイズのＤＣＴ−ＩＩ変換に分割することによって行われる。
【数８４】
2011507037.tif 000086
【０２５２】
上式で、
ＰＭは、再配列を生成する置換行列であり、
【数８５】
2011507037.tif 000087
【０２５３】
ＤＭは対角交代符号行列であり、
【数８６】
2011507037.tif 000088
【０２５４】
ＲＭはギブンス回転行列であり、
【数８７】
2011507037.tif 000089
【数８８】
2011507037.tif 000090
【０２５５】
は、残りのＤＣＴ−ＩＩ変換の行列を示す。
【数８９】
2011507037.tif 000091
【０２５６】
サイズＭ＝１０のＤＣＴ−ＩＶ変換を、２分の１（Ｍ＝５）のＤＣＴ−ＩＩ変換に分割する、そのようなプロセスの例示的な実装形態を図２０に示す。
【０２５７】
サイズＭ＝５＊２ｋ（ｋ＝１、．．．、５）のＤＣＴ−ＩＩ変換の計算も、ＤＣＴ−ＩＩ変換をより小さい変換に分割することによって行うことができる。
【数９０】
2011507037.tif 000092
【０２５８】
サイズＭ＝１０のＤＣＴ−ＩＩ変換を、より小さい変換（Ｍ＝５）に分割する、そのようなプロセスの例示的な実装形態を図３０に示す。
【０２５９】
５点変換のみが残るまで、上記のプロセスを再帰的に繰り返すことができる。残りの５点変換は、以下によって効率的に実装することができる。
【０２６０】
ＤＣＴ−ＩＩによって５点ＤＣＴ−ＩＶの計算を次のように行う。
【数９１】
2011507037.tif 000093
【０２６１】
最後に、入力ベクトルｘ＝［ｘ０，ｘ１，ｘ２，ｘ３，ｘ４］Ｔに対して、５点ＤＣＴ−ＩＩの計算
【数９２】
2011507037.tif 000094
【０２６２】
は次のように行われる。
【０２６３】
ＤＣＴ−ＩＩ変換８０２は、以下のようになる中間結果を含むことができる。
【０２６４】
ａ０＝ｘ０＋ｘ４、
ａ４＝ｘ４−ｘ０、
ａ３＝ｘ３−ｘ１、
ａ１＝ｘ３＋ｘ１、
ｂ０＝ａ０＋ａ１、
ｂ１＝δ（ａ０−ａ１）、
ｂ２＝ｘ２−αｂ０、
ｙ０＝ｂ０＋ｘ２、
ｙ１＝γａ３−βａ４、
ｙ２＝ｂ１−ｂ２、
ｙ３＝βａ３＋γａ４、
上式で、
【数９３】
2011507037.tif 000095
【０２６５】
この変換に関するフローグラフの一例を図８に示す。
【０２６６】
ＭＤＣＴ変換を使用した符号化の例
図２４は、変換値を計算するためのデバイスを示すブロック図である。デバイス２４０２は、入力モジュール２４０６、ウィンドウモジュール２４１０、および／または変換モジュール２４１４を含むことができる。入力モジュール２４０６は、オーディオ信号２４０４を受信し、そのオーディオ信号を表す時間領域入力値２４０８を与えるように適合することができる。ウィンドウモジュール２４１０は、図２３に示すような非対称ウィンドウイング関数を生成することができる。
【０２６７】
変換モジュール２４１４は、たとえば、モディファイド離散コサイン変換（ＭＤＣＴ）を使用して、ウィンドウイングされた（windowed）入力値２４１２をスペクトル係数２４１６に変換することができる。ＭＤＣＴは、各々の寸法がＭＤＣＴよりも小さい、離散コサイン変換タイプＩＶ（ＤＣＴ−ＩＶ）、離散コサイン変換タイプＩＩ（ＤＣＴ−ＩＩ）、またはＤＣＴ−ＩＶとＤＣＴ−ＩＩとの両方のうちの少なくとも１つに再帰的に分割することができる。一例では、ＤＣＴ−ＩＩは、異なるサイズのＭＤＣＴを実装する５点変換とすることができる。ＭＤＣＴは、同じコアＤＣＴ−ＩＩを使用して、３２０、１６０、８０、４０点変換のうちの少なくとも２つを実装することができる。デバイス２４０２の構成要素は、ハードウェア、ソフトウェアおよび／またはそれらの組合せとして実装することができる。たとえば、デバイス２４０２は、その構成要素またはモジュールの機能を実装するプロセッサおよび／または回路とすることができる。
【０２６８】
図２５は、５点コア変換に基づくＭＤＣＴ変換を使用して信号を符号化するための方法の一例を示している。２５０２において、オーディオ信号を表す時間領域入力値を受信することができる。たとえば、アナログオーディオ信号（たとえば、ボイス信号、ミュージック、ビデオなど）をサンプリングして、入力値を得ることができる。一例では、２５０４において、非対称ウィンドウ関数を入力値に適用するモディファイドウィンドウイング関数を生成することができる。次いで、複数の５点変換に再帰的に分割されるモディファイド離散コサイン変換（ＭＤＣＴ）を使用して、（ウィンドウイングされた）入力値をスペクトル係数に変換することができる。たとえば、図５〜図２２に示す５点変換のうちのいずれかを使用することができる。
【０２６９】
ＩＭＤＣＴ変換を使用した復号の例
図２６は、変換値を計算するためのデバイスを示すブロック図である。デバイス２６０２は、入力モジュール２６０６、逆変換モジュール２６０８、および／またはウィンドウモジュール２６１２を含むことができる。逆変換モジュール２６０８は、スペクトル係数２６０４を出力値２６１０に変換するように適合することができる。たとえば、逆変換モジュールは、各々の寸法が逆モディファイド離散コサイン変換（ＩＭＤＣＴ）よりも小さい、逆離散コサイン変換タイプＩＶ（ＩＤＣＴ−ＩＶ）、逆離散コサイン変換タイプＩＩ（ＩＤＣＴ−ＩＩ）、またはＩＤＣＴ−ＩＶとＩＤＣＴ−ＩＩとの両方のうちの少なくとも１つに再帰的に分割されるＩＭＤＣＴを使用して、スペクトル係数を時間領域出力値２６１０に変換することができる。
【０２７０】
ウィンドウモジュール２６１２は、出力値２６１０に対して非対称ウィンドウ関数を実装するモディファイドウィンドウイング関数を生成し、ウィンドウイングされた（windowed）出力値２６１４を生成することができる。デバイス２６０２の構成要素は、ハードウェア、ソフトウェアおよび／またはそれらの組合せとして実装することができる。たとえば、デバイス２６０２は、その構成要素またはモジュールの機能を実装するプロセッサおよび／または回路とすることができる。
【０２７１】
図２７は、コアＩＤＣＴ−ＩＩ変換に基づくＩＭＤＣＴ変換を使用して信号を復号するための方法の一例を示している。２７０２において、オーディオ信号を表すスペクトル係数を受信するまたは得る。２７０４において、複数の５点逆変換に再帰的に分割される逆モディファイド離散コサイン変換（ＩＭＤＣＴ）を使用して、スペクトル係数を時間領域出力値に変換することができる。複数の５点逆変換の各々は、同じコア変換を使用して実装することができる。ＩＭＤＣＴは、同じコア変換を使用して、３２０、１６０、８０、４０点逆変換のうちの少なくとも２つを実装する。様々な実装形態では、コア変換は、図５〜図２２における５点変換のうちのいずれか１つとすることができる。さらに、２７０６において、非対称ウィンドウイング関数を変換されたスペクトル係数に適用するモディファイドウィンドウイング関数を生成することができる。
【０２７２】
本明細書で提供する例に加えて、デシメートされた変換を実装する本明細書で説明するアルゴリズムは、２の倍数である任意の他の変換を実装するために使用することができる。さらに、本明細書で説明する技法は、オーディオ、ボイス、ビデオ、データなどを含む様々なタイプの信号に適用できることに留意されたい。
【０２７３】
本明細書に示す変換に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることを理解されたい。したがって、本明細書で説明し、請求する変換の流れ図の範囲内で、（たとえば、流れ図中の異なる点において）より大きいもしくはより小さい中間結果、および／または異なる中間結果が企図される。
【０２７４】
情報および信号は、様々な異なる技術および技法のうちのいずれかを使用して表すことができる。たとえば、上記の説明全体にわたって言及されるデータ、命令、コマンド、情報、信号などは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表すことができる。
【０２７５】
本明細書で説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、ソフトウェア、または両方の組合せとして実装または実施することができる。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。構成を、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明することがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行できる。さらに、動作の順序を並び替えることができる。プロセスは、その動作が完了すると終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、プロセスの終了は、関数が発呼側関数またはメイン関数に戻ることに対応する。
【０２７６】
ハードウェアに実装されるとき、様々な例は、本明細書で説明する機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ信号（ＦＰＧＡ）もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、またはそれらの任意の組合せを採用することができる。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいはそのような任意の他の構成として実装することもできる。
【０２７７】
ソフトウェアに実装されるとき、様々な例は、ファームウェア、ミドルウェア、またはマイクロコードを採用することができる。必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または（１つまたは複数の）他の記憶装置などのコンピュータ可読媒体中に記憶することができる。プロセッサは必要なタスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を引き渡すおよび／または受信することによって、別のコードセグメントまたはハードウェア回路に結合できる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む適切な手段を介して引き渡す、転送する、または送信することができる。
【０２７８】
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができるが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方を構成要素とすることができる。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に常駐することができ、１つの構成要素を１つのコンピュータ上に配置し、および／または２つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、１つまたは複数のデータパケット（たとえば、ローカルシステム、分散システム中、および／または他のシステムを用いたインターネットなどのネットワークにわたって信号を介して別の構成要素と相互作用する１つの構成要素からのデータ）を有する信号によるなど、ローカルおよび／またはリモートプロセスを介して通信することができる。
【０２７９】
本明細書における１つまたは複数の例、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装する場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を可能にするいかなる媒体をも含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体でよい。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、命令もしくはデータ構造の形態の所望のプログラムコードを運搬または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書では、ディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、この場合、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。ソフトウェアは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散できる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合することができる。代替として、記憶媒体はプロセッサに一体化することができる。
【０２８０】
本明細書で開示する方法は、記載の方法を達成するための１つまたは複数のステップまたは動作を備える。方法のステップおよび／または動作は、特許請求の範囲の範囲から逸脱することなく互いに交換することができる。すなわち、本明細書で説明している実施形態の適切な動作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび／または動作の順序および／または使用は、特許請求の範囲の範囲を逸脱することなくモディファイすることができる。
【０２８１】
図に示す構成要素、ステップ、および／または機能のうちの１つまたは複数は、単一の構成要素、ステップ、または機能に再構成し、および／または組み合わせることができ、あるいは、いくつかの構成要素、ステップ、もしくは機能で実施することができる。追加の要素、構成要素、ステップ、および／または機能を追加することもできる。いくつかの図に示す装置、デバイス、および／または構成要素は、他の図で説明する方法、特徴、またはステップのうちの１つまたは複数を実行するように構成または適合することができる。本明細書で説明するアルゴリズムは、たとえばソフトウェアおよび／または組込みハードウェアで効率的に実装することができる。
【０２８２】
上記の構成は例にすぎず、特許請求の範囲を限定するものと解釈すべきではないことに留意されたい。構成についての説明は、例示的なものであり、特許請求の範囲の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、修正あるいは変形形態、および変更形態に容易に適用できることが当業者には明らかであろう。
【図１】
2011507037.tif 000121
【図２】
2011507037.tif 000122
【図３】
2011507037.tif 000123
【図４】
2011507037.tif 000124
【図５】
2011507037.tif 000125
【図６】
2011507037.tif 000126
【図７】
2011507037.tif 000127
【図８】
2011507037.tif 000128
【図９】
2011507037.tif 000129
【図１０】
2011507037.tif 000130
【図１１】
2011507037.tif 000131
【図１２】
2011507037.tif 000132
【図１３】
2011507037.tif 000133
【図１４】
2011507037.tif 000134
【図１５】
2011507037.tif 000135
【図１６】
2011507037.tif 000136
【図１７】
2011507037.tif 000137
【図１８】
2011507037.tif 000138
【図１９】
2011507037.tif 000139
【図２０】
2011507037.tif 000140
【図２１】
2011507037.tif 000141
【図２２】
2011507037.tif 000142
【図２３】
2011507037.tif 000143
【図２４】
2011507037.tif 000144
【図２５】
2011507037.tif 000145
【図２６】
2011507037.tif 000146
【図２７】
2011507037.tif 000147
【図２８】
2011507037.tif 000148
【図２９】
2011507037.tif 000149
【図３０】
2011507037.tif 000150
【図３１】
2011507037.tif 000151
【図３２】
2011507037.tif 000152
【国際調査報告】
2011507037.tif 000153
2011507037.tif 000154
2011507037.tif 000155
2011507037.tif 000156