(57)【要約】  データの変換を効率的に実行するための技術が、記載される。１つのデザインでは、装置は、少なくとも１つのデータ値の第１グループと少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行し、その定数は第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する。本装置は、さらに、少なくとも１つのデータ値の第２グループと少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行し、その定数は第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する。各有理数ダイアディック定数は、ダイアディック分母を有する有理数である。少なくとも１つのデータ値の第１グループと第２グループとは、異なるサイズを有する。第１及び複数の共通因数は、乗算のための論理演算と算術演算の数、結果の精度、等、に基づいて選択されることができる。
2009534721.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行するための第１論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である；及び
少なくとも１つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行するための第２論理回路、ここにおいて、少なくとも１つのデータ値の該第１グループと該第２グループとは異なるサイズを有する、
を具備する装置。
【請求項２】
少なくとも１つのデータ値の第３グループと、第３共通因数によりスケーリングされた少なくとも１つの無理数定数の第３グループを近似する少なくとも１つの有理数ダイアディック定数の第３グループとの乗算を実行するための第３論理回路、
をさらに具備する、請求項１の装置。
【請求項３】
少なくとも１つのデータ値の該第２グループは、少なくとも１つのデータ値の該第１グループのサイズの２倍である、請求項１の装置。
【請求項４】
少なくとも１つのデータ値の該第１グループは、２つのデータ値を備え、そして少なくとも１つのデータ値の該第２グループは、４つのデータ値を備える、請求項１の装置。
【請求項５】
少なくとも１つの無理数定数の該第１グループは、１つの無理数定数を備え、そして少なくとも１つの無理数定数の該第２グループは、３つの無理数定数を備える、請求項１の装置。
【請求項６】
該第１グループ中の該無理数定数の数は、該第１グループ中の該有理数ダイアディック定数の数よりも少ない、請求項１の装置。
【請求項７】
該第１論理回路は、該第１グループ中の第１データ値と、該第１共通因数を近似する第１有理数ダイアディック定数との乗算を実行し、そして該第１グループ中の第２データ値と、該第１共通因数によりスケーリングされた無理数定数を近似する第２有理数ダイアディック定数との乗算を実行する、請求項１の装置。
【請求項８】
少なくとも１つの無理数定数の該第２グループは、第１と第２無理数定数とを備える、ここにおいて、少なくとも１つの無理数定数の該第２グループは、該第２共通因数によりスケーリングされた該第１無理数定数を近似する第１有理数ダイアディック定数と該第２共通因数によりスケーリングされた該第２無理数定数を近似する第２有理数ダイアディック定数とを備える、請求項１の装置。
【請求項９】
該第２論理回路は、該第２グループ中のデータ値と該第１有理数ダイアディック定数との乗算を実行し、そして該データ値と該第２有理数ダイアディック定数との乗算を実行する、請求項８の装置。
【請求項１０】
該第２論理回路は、中間値の１つの系列を使用して、該第２グループ中のデータ値と該第１及び第２有理数ダイアディック定数との乗算を実行する、請求項８の装置。
【請求項１１】
該第１共通因数は、少なくとも１つのデータ値の該第１グループと少なくとも１つの有理数ダイアディック定数の該第１グループとの乗算のための論理演算と算術演算の数に基づいて選択される、ここにおいて、該第２共通因数は、少なくとも１つのデータ値の該第２グループと少なくとも１つの有理数ダイアディック定数の該第２グループとの乗算のための論理演算と算術演算の数に基づいて選択される、請求項１の装置。
【請求項１２】
該論理演算と該算術演算は、シフト演算と加算演算を具備する、請求項１１の装置。
【請求項１３】
該第１及び第２共通因数は、該乗算からもたらされる結果に対する少なくとも１つの精度測定基準にさらに基づいて選択される、請求項１１の装置。
【請求項１４】
該第１共通因数は、少なくとも１つのデータ値の該第１グループと、該第１共通因数の異なる可能な値を用いて得られる少なくとも１つの有理数ダイアディック定数の該第１グループに対する異なる可能な値との乗算のための論理演算と算術演算の該数を決定することにより選択される、請求項１の装置。
【請求項１５】
該第１グループ中のデータ値と該第１グループ中の有理数ダイアディック定数との乗算のために、該第１論理回路は、該データ値に基づいて中間値の系列を生成し、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有し、そして該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与える、請求項１の装置。
【請求項１６】
該第１及び第２論理回路は、線形変換のための該乗算を実行する、請求項１の装置。
【請求項１７】
該線形変換の結果を生成するために該第１及び第２論理回路の出力に基づいて少なくとも１つのバタフライ演算を実行するための第３論理回路をさらに具備する、請求項１６の装置。
【請求項１８】
該第１及び第２論理回路は、離散余弦変換（ＤＣＴ）のための該乗算を実行する、請求項１の装置。
【請求項１９】
該第１及び第２論理回路は、逆離散余弦変換（ＩＤＣＴ）のための該乗算を実行する、請求項１の装置。
【請求項２０】
該第１及び第２論理回路は、８−点離散余弦変換（ＤＣＴ）のための又は８−点逆離散余弦変換（ＩＤＣＴ）のための該乗算を実行する、請求項１の装置。
【請求項２１】
２つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する２つの有理数ダイアディック定数の第１グループとの乗算を実行するための第１論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である；及び
４つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する４つの有理数ダイアディック定数の第２グループとの乗算を実行するための第２論理回路、
を具備する装置。
【請求項２２】
少なくとも１つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行すること、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である；及び
少なくとも１つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行すること、ここにおいて、少なくとも１つのデータ値の該第１グループと該第２グループとは異なるサイズを有する、
を具備する方法。
【請求項２３】
少なくとも１つのデータ値の第３グループと、第３共通因数によりスケーリングされた少なくとも１つの無理数定数の第３グループを近似する少なくとも１つの有理数ダイアディック定数の第３グループとの乗算を実行すること、
をさらに具備する、請求項２２の方法。
【請求項２４】
少なくとも１つのデータ値の該第１グループの乗算を該実行することは、該第１グループ中のデータ値と該第１グループ中の有理数ダイアディック定数との乗算のために、
該データ値に基づいて中間値の系列を生成すること、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有する、そして
該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与えること、を具備する、請求項２２の方法。
【請求項２５】
少なくとも１つのデータ値の該第２グループの乗算を該実行することは、該第２グループ中のデータ値と、中間値の１つの系列に基づく該第２グループ中の第１及び第２有理数ダイアディック定数との乗算を実行することを具備する、請求項２２の方法。
【請求項２６】
少なくとも１つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行するための手段、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である；及び
少なくとも１つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行するための手段、ここにおいて、少なくとも１つのデータ値の該第１グループと該第２グループとは異なるサイズを有する、
を具備する装置。
【請求項２７】
少なくとも１つのデータ値の第３グループと、第３共通因数によりスケーリングされた少なくとも１つの無理数定数の第３グループを近似する少なくとも１つの有理数ダイアディック定数の第３グループとの乗算を実行するための手段、
をさらに具備する、請求項２６の装置。
【請求項２８】
少なくとも１つのデータ値の該第１グループの乗算を該実行するための該手段は、該第１グループ中のデータ値と該第１グループ中の有理数ダイアディック定数との乗算のために、
該データ値に基づいて中間値の系列を生成するための手段、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有する、及び
該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与えるための手段、を具備する該手段である、請求項２６の装置。
【請求項２９】
少なくとも１つのデータ値の該第２グループの乗算を実行するための該手段は、該第２グループ中のデータ値と、中間値の１つの系列に基づく該第２グループ中の第１及び第２有理数ダイアディック定数との乗算を実行するための手段を具備する、請求項２６の装置。
【請求項３０】
少なくとも１つのデータ値を受け取るための第１論理回路；及び
該少なくとも１つのデータ値と、共通因数によりスケーリングされた少なくとも１つの無理数定数を近似する少なくとも１つの有理数ダイアディック定数との乗算を実行するための第２論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される、
を具備する装置。
【請求項３１】
該論理演算と該算術演算は、シフト演算と加算演算を具備する、請求項３０の装置。
【請求項３２】
該共通因数は、該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との該乗算からもたらされる結果に対する少なくとも１つの精度測定基準にさらに基づいて選択される、請求項３０の装置。
【請求項３３】
データ値と有理数ダイアディック定数との乗算のために、該第２論理回路は、該データ値に基づいて中間値の系列を生成し、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有し、そして該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与える、請求項３０の装置。
【請求項３４】
論理演算と算術演算の該数は、該乗算の少なくとも１つの出力値を生成するために中間結果を使用して、該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算を実行することにより決定される、請求項３０の装置。
【請求項３５】
少なくとも１つのデータ値を受け取ること；及び
該少なくとも１つのデータ値と、共通因数によりスケーリングされた少なくとも１つの無理数定数を近似する少なくとも１つの有理数ダイアディック定数との乗算を実行すること、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される、
を具備する方法。
【請求項３６】
該論理演算と該算術演算は、シフト演算と加算演算を具備する、請求項３５の方法。
【請求項３７】
該乗算を実行することは、データ値と有理数ダイアディック定数との乗算のために、
該データ値に基づいて中間値の系列を生成すること、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有する、そして
該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与えること、を具備する、請求項３５の方法。
【請求項３８】
少なくとも１つのデータ値を受け取るための手段；及び
該少なくとも１つのデータ値と、共通因数によりスケーリングされた少なくとも１つの無理数定数を近似する少なくとも１つの有理数ダイアディック定数との乗算を実行するための手段、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される、
を具備する装置。
【請求項３９】
該論理演算と該算術演算は、シフト演算と加算演算を具備する、請求項３８の装置。
【請求項４０】
乗算を実行するための該手段は、データ値と有理数ダイアディック定数との乗算のために、
該データ値に基づいて中間値の系列を生成するための手段、該系列中の少なくとも１つの別の中間値に基づいて生成される該系列中の少なくとも１つの中間値を有する、そして
該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の１つの中間値を与えるための手段、
を具備する該手段である、請求項３８の装置。
【請求項４１】
コンピュータ読取り可能な媒体を具備するコンピュータ・プログラム製品であって、該コンピュータ読取り可能な媒体は：
少なくとも１つのデータ値を受け取るようにコンピュータを動作させるためのコード；及び
該少なくとも１つのデータ値と、共通因数によりスケーリングされた少なくとも１つの無理数定数を近似する少なくとも１つの有理数ダイアディック定数との乗算を実行するように該コンピュータを動作させるためのコード、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される、
を具備するコンピュータ読取り可能な媒体である、コンピュータ・プログラム製品。
【請求項４２】
コンピュータ読取り可能な媒体を具備するコンピュータ・プログラム製品であって、該コンピュータ読取り可能な媒体は：
少なくとも１つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行するようにコンピュータを動作させるためのコード、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である；及び
少なくとも１つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行するように該コンピュータを動作させるためのコード、ここにおいて、少なくとも１つのデータ値の該第１グループと該第２グループとは異なるサイズを有する、
を具備するコンピュータ読取り可能な媒体である、コンピュータ・プログラム製品。
【請求項４３】
少なくとも１つのデータ値の第３グループと、第３共通因数によりスケーリングされた少なくとも１つの無理数定数の第３グループを近似する少なくとも１つの有理数ダイアディック定数の第３グループとの乗算を実行するようにコンピュータを動作させるためのコード、
をさらに具備する、請求項２２のコンピュータ読取り可能な媒体。
【発明の詳細な説明】
【関連文献】
【０００１】
［米国特許法３５§１１９による優先権の主張］
本出願は、米国特許仮出願番号第６０／７５８，４６４号、名称“スケーリングされた離散余弦変換（ＤＣＴ）及び逆離散余弦変換（ＩＤＣＴ）の効率的な乗算なしの実施形態（Efficient Multiplication-Free Implementations of Scaled Discrete Cosine Transform (DCT) and Inverse Discrete Cosine Transform (IDCT)）”、２００６年１月１１日出願、に優先権を主張し、本出願の譲受人に譲渡され、そして本明細書中に引用によって取り込まれている。
【技術分野】
【０００２】
本発明は、一般にデータの処理に係わり、そしてより詳しくはデータに変換を実行するための技術に関する。
【背景技術】
【０００３】
変換は、一般に１つのドメインから別のドメインへとデータを転換させるために使用される。例えば、離散余弦変換（ＤＣＴ：discrete cosine transform）は、空間ドメインから周波数ドメインへとデータを変換するために一般に使用され、そして逆離散余弦変換（ＩＤＣＴ：inverse discrete cosine transform）は、周波数ドメインから空間ドメインへとデータを変換するために一般に使用される。ＤＣＴは、画像又はビデオ・フレーム中の画像要素（ピクセル）を空間的に相関付けされていないブロックへの画像／ビデオ圧縮のために広く使用されている。結果としての変換係数は、一般的に互いにほとんど依存せず、それはこれらの係数を量子化及びエンコーディングのためにより適したものにする。ＤＣＴは、しかもエネルギー圧縮特性を示し、それはピクセルのブロックの大部分のエネルギーをわずかな（代表的に低次の）変換係数にだけマッピングする能力である。このエネルギー圧縮特性は、エンコーディング・アルゴリズムのデザインを単純化することができる。
【０００４】
ＤＣＴとＩＤＣＴのような変換は、大量のデータに実行されることができる。これゆえ、可能な限り効率的に変換を実行することが望ましい。その上、コストと複雑性を低減するために、簡単なハードウェアを使用して変換のための計算を実行することが望ましい。
【０００５】
それゆえ、データの変換を効率的に実行するための技術に対するこの分野における必要性がある。
【発明の開示】
【サマリー】
【０００６】
データの変換を効率的に実行するための技術が、本明細書中に記述される。ある態様によれば、装置は、少なくとも１つのデータ値の第１グループと、第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行する。本装置は、さらに、少なくとも１つのデータ値の第２グループと、第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行する。各有理数ダイアディック定数は、ダイアディック分母を有する有理数である。少なくとも１つのデータ値の第１と第２グループとは、異なるサイズを有する。例えば、第１グループは、２つのデータ値を含むことができ、そして第２グループは、４つのデータ値を含むことができる。
【０００７】
別の１つの態様によれば、装置は、少なくとも１つのデータ値と、共通因数によりスケーリングされた少なくとも１つの無理数定数を近似する少なくとも１つの有理数ダイアディック定数との乗算を実行する。その共通因数は、該少なくとも１つのデータ値と該少なくとも１つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される。論理演算と算術演算は、シフト演算、減算演算、及び加算演算を備えることができる。共通因数は、さらに結果の精度に基づいて選択されることができる。
【０００８】
本発明の様々な態様及び特徴は、下記にさらに詳細に説明される。
【詳細な説明】
【０００９】
本明細書中に記載される技術は、様々なタイプの変換、例えば、ＤＣＴ、ＩＤＣＴ、離散フーリエ変換（ＤＦＴ：discrete Fourier transform）、逆ＤＦＴ（ＩＤＦＴ）、変調ラップ変換（ＭＬＴ：modulated lapped transform）、逆ＭＬＴ、変調複素ラップ変換（ＭＣＬＴ：modulated complex lapped transform）、逆ＭＣＬＴ、等、に対して使用されることができる。本技術は、同様に様々なアプリケーション、例えば、画像処理、ビデオ処理、オーディオ処理、通信、計算、データ・ネットワーキング、データ記憶、グラフィックス、等、に対して使用されることができる。一般に、本技術は、変換を使用する任意のアプリケーションに対して使用されることができる。明確さのために、本技術は、ＤＣＴとＩＤＣＴに対して以下に説明され、それは画像処理及びビデオ処理において普通に使用される。
【００１０】
タイプＩＩの１次元（１Ｄ）Ｎ−点ＤＣＴと１Ｄ  Ｎ−点ＩＤＣＴは、次式のように定義されることができる：  
【数１】
2009534721.tif 000003
【００１１】
ｘ［ｎ］は、１Ｄ空間ドメイン関数であり、そして
Ｘ［ｋ］は、１Ｄ周波数ドメイン関数である。
【００１２】
式（１）の１Ｄ  ＤＣＴは、Ｎ個の空間ドメイン値ｘ［０］からｘ［Ｎ−１］について演算し、そしてＮ個の変換係数Ｘ［０］からＸ［Ｎ−１］を生成する。式（２）の１Ｄ  ＩＤＣＴは、Ｎ個の変換係数について演算し、そしてＮ個の空間ドメイン値を生成する。タイプＩＩ  ＤＣＴは、変換の１つのタイプであり、そして画像／ビデオ圧縮のために提案された複数のエネルギー圧縮変換の中で最も効率的な変換のうちの１つであると一般に信じられている。
【００１３】
１Ｄ  ＤＣＴは、下記に記述されるように、２つの２Ｄ  ＤＣＴに対して使用されることができる。同様に、１Ｄ  ＩＤＣＴは、２Ｄ  ＩＤＣＴに対して使用されることができる。２Ｄ  ＤＣＴ／ＩＤＣＴを１Ｄ  ＤＣＴ／ＩＤＣＴのカスケードへと分解することにより、２Ｄ  ＤＣＴ／ＩＤＣＴの効率は、１Ｄ  ＤＣＴ／ＩＤＣＴの効率に依存する。一般に、１Ｄ  ＤＣＴと１Ｄ  ＩＤＣＴは、任意のベクトル・サイズについて実行されることができ、そして２Ｄ  ＤＣＴと２Ｄ  ＩＤＣＴは、任意のブロック・サイズについて実行されることができる。しかしながら、８×８ＤＣＴと８×８ＩＤＣＴは、一般に画像及びビデオ処理に対して使用されることができる、そこでは、Ｎは８に等しい。例えば、８×８ＤＣＴと８×８ＩＤＣＴは、様々な画像及びビデオ・コーディング規格、例えば、ＪＰＥＧ、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４（Ｐ．２）、Ｈ．２６１、Ｈ．２６３、等、における標準基礎単位ブロックとして使用される。
【００１４】
１Ｄ  ＤＣＴと１Ｄ  ＩＤＣＴは、それぞれ式（１）と（２）に示されるそれらの元々の形式で実施されることができる。しかしながら、計算上の複雑さの実質的な低減は、可能な限り少ない乗算と加算を結果としてもたらす因数分解（factorization）を見出すことにより実現されることができる。変換のための因数分解は、フロー・グラフにより表わされることができ、それはその変換のために実行されるべき明細な演算を指示する。
【００１５】
図１は、８−点ＩＤＣＴの一例の因数分解のフロー・グラフ１００を示す。フロー・グラフ１００では、各加算は、次のシンボルにより表わされ、  
【数２】
2009534721.tif 000004
【００１６】
そして、各乗算は、四角により表わされる。各加算は、２つの入力値を合計する又は引き算し、そして出力値を与える。各乗算は、入力値と四角の内側に示される変換定数とを掛け算する。図１における因数分解は、次の定数の因数を用いる６の乗算を有する：  
【数３】
2009534721.tif 000005
【００１７】
フロー・グラフ１００は、８個のスケーリングされた変換係数Ａ０・Ｘ［０］からＡ７・Ｘ［７］を受け取り、これらの係数に８−点ＩＤＣＴを実行し、そして８個の出力サンプルｘ［０］からｘ［７］を生成する。Ａ０からＡ７は、スケーリング因数であり、そして次式で与えられる：  
【数４】
2009534721.tif 000006
【００１８】
フロー・グラフ１００は、複数のバタフライ演算を含む。バタフライ演算は、２つの入力値を受け取り、そして２つの出力値を生成する、ここで、１つの出力値は、その２つの入力値の合計であり、そして他の出力値は、２つの入力値の差である。例えば、入力値Ａ０・Ｘ［０］とＡ４・Ｘ［４］についてのバタフライ演算は、上の分岐に対して出力値Ａ０・Ｘ［０］＋Ａ４・Ｘ［４］をそして下の分岐に対して出力値Ａ０・Ｘ［０］−Ａ４・Ｘ［４］を生成する。
【００１９】
図２は、８−点ＤＣＴの一例の因数分解のフロー・グラフ２００を示す。フロー・グラフ２００は、８個の入力サンプルｘ［０］からｘ［７］を受け取り、これらの入力サンプルについて８−点ＤＣＴを実行し、そして８個のスケーリングされた変換係数８Ａ０・Ｘ［０］から８Ａ７・Ｘ［７］を生成する。スケーリング因数Ａ０からＡ７は、上記で与えられる。図２のおける因数分解は、定数の定数１／Ｃπ／４、２Ｃ３π／８と２Ｓ３π／８を用いる６個の乗算を有する。
【００２０】
図１と図２のＩＤＣＴとＤＣＴに関するフロー・グラフは、類似しており、そして基本的に同じ定数の因数（１／２の違いを有する）による乗算を含む。そのような類似性は、集積回路上でのＤＣＴとＩＤＣＴとの実行のために有利であり得る。特に、その類似性は、変換定数によるバタフライ及び乗算を実行するためのシリコンの面積すなわちダイ面積を節約することを可能にすることができ、それは正変換と逆変換の両者において使用される。
【００２１】
図１に示される因数分解は、合計６の乗算と２８の加算を結果としてもたらし、それらは式（２）の直接計算のために必要とされる乗算と加算の数よりも実質的に少ない。図２に示される因数分解も、同様に、合計６の乗算と２８の加算を結果としてもたらし、それらは式（１）の直接計算のために必要とされる乗算と加算の数よりも実質的に少ない。図１の因数分解は、Ｃ３π／８とＳ３π／８を用いて２つの中間変数に平面回転を実行する。図２の因数分解は、２Ｃ３π／８と２Ｓ３π／８を用いて２つの中間変数に平面回転を実行する。平面回転は、サインとコサイン、例えば、図１におけるｃｏｓ（３π／８）とｓｉｎ（３π／８）、の両方を用いて中間変数を掛け算することによって実現される。平面回転のための乗算は、以下に説明される計算技術を使用して効率的に実行されることができる。
【００２２】
図１と図２は、それぞれ８−点ＩＤＣＴと８−点ＤＣＴの因数分解の例を示す。これらの因数分解は、スケーリングされたＩＤＣＴとスケーリングされたＤＴＣに対してであり、ここで、“スケーリングされた”は、それぞれ既知のスケーリング因数Ａ０からＡ７を用いる変換係数Ｘ［０］からＸ［７］のスケーリングを呼ぶ。他の因数分解は、同様に、クーリー・チューキー（Cooley-Tukey）ＤＦＴアルゴリズムのような他の公知の高速アルゴリズムへのマッピングを使用することにより、若しくは時間を削減する又は周波数を削減するような系統的な因数分解手順を適用することにより、導出されてきている。一般に、因数分解は、乗算の数を削減させるが、それらを無くさない。
【００２３】
図１と図２の乗算は、異なる角度のサインとコサインを表している無理数定数を用い、それは８−点ＤＣＴとＩＤＣＴに関するπ／８の倍数である。無理数定数は、２つの整数の比ではない定数である。無理数定数を用いる乗算は、各無理数定数が有理数ダイアディック定数によって近似されるとき、固定小数点整数計算でさらに効率的に実行されることができる。有理数ダイアディック定数は、ダイアディック分母を有する有理数定数であり、そしてｃ／２ｂの形式を有する、ここで、ｂとｃは整数であり、そしてｂ＞０である。整数変数と有理数ダイアディック定数との乗算は、下に記述されるように、論理演算と算術演算を用いて実現される。論理演算と算術演算の数は、計算が実行される方式、同様に有理数ダイアディック定数の値に依存する。
【００２４】
ある態様では、共通因数は、変換のための演算の総数を削減するために、及び／又は変換結果の精度を向上させるために使用される。共通因数は、変換において１又はそれより多くの中間変数に適用される定数である。中間変数は、しかもデータ値、等とも呼ばれることがある。共通因数は、１又はそれより多くの変換定数で吸収されることができ、そして１又はそれより多くのスケーリング因数を変えることにより説明されることができる。共通因数は、１又はそれより多くの有理数ダイアディック定数により１又はそれより多くの（無理数）変換定数の近似を改善することができ、それは次に、演算の総数の削減及び／又は精度の向上を結果としてもたらすことができる。
【００２５】
一般に、任意の個数の共通因数が、変換のために使用されることができ、そして各共通因数は、変換において任意の数の中間変数に適用されることができる。１つのデザインでは、複数の共通因数が、変換のために使用されることができ、そして異なるサイズの中間変数の複数のグループに適用される。別の１つのデザインでは、複数の共通因数が、同じサイズの中間変数の複数のグループに適用される。
【００２６】
図３は、共通因数を用いる８−点ＩＤＣＴのフロー・グラフ３００を示す。フロー・グラフ３００は、図１のフロー・グラフ１００と同じ因数分解を使用する。しかしながら、フロー・グラフ３００は、中間変数の２つのグループに対して２つの共通因数を使用する。
【００２７】
第１共通因数Ｆ１は、２つの中間変数Ｘ１とＸ２の第１グループに適用される、それらは変換係数Ｘ［２］とＸ［６］に基づいて生成される。第１共通因数Ｆ１は、Ｘ１と掛け算され、変換定数Ｃπ／４で吸収され、そしてスケーリング因数Ａ２とＡとを変更することにより説明される。第２共通因数Ｆ２は、４つの中間変数Ｘ３からＸ６の第２グループに適用され、それらは変換係数Ｘ［１］、Ｘ［３］、Ｘ［５］とＸ［７］に基づいて生成される。第２共通因数Ｆ２は、Ｘ４と掛け算され、変換定数Ｃπ／４、Ｃ３π／８とＳ３π／８で吸収され、そしてスケーリング因数Ａ１，Ａ３，Ａ５とＡ７を変更することにより説明される。
【００２８】
第１共通因数Ｆ１は、有理数ダイアディック定数α１を用いて近似されることができ、それは積Ｘ１・Ｆ１の近似値を求めるためにＸ１と掛け算される。スケーリングされた変換因数Ｆ１・Ｃπ／４は、有理数ダイアディック定数β１を用いて近似されることができ、それは積Ｘ２・Ｆ１・Ｃπ／４の近似値を求めるためにＸ１と掛け算されることができる。変更されたスケーリング因数Ａ２／Ｆ１は、変換係数Ｘ［２］に適用されることができる。変更されたスケーリング因数Ａ６／Ｆ１は、変換係数Ｘ［６］に適用されることができる。
【００２９】
第２共通因数Ｆ２は、有理数ダイアディック定数α２を用いて近似されることができ、それは積Ｘ４・Ｆ２の近似値を求めるためにＸ４と掛け算される。スケーリングされた変換因数Ｆ２・Ｃπ／４は、有理数ダイアディック定数β２を用いて近似されることができ、それは積Ｘ３・Ｆ２・Ｃπ／４の近似値を求めるためにＸ３と掛け算されることができる。スケーリングされた変換因数Ｆ２・Ｃ３π／８は、有理数ダイアディック定数γ２を用いて近似されることができ、そしてスケーリングされた変換因数Ｆ２・Ｓ３π／８は、有理数ダイアディック定数δ２を用いて近似されることができる。有理数ダイアディック定数γ２は、積Ｘ５・Ｆ２・Ｃ３π／８の近似値を求めるためにＸ５と掛け算されることができ、そして同様に、積Ｘ６・Ｆ２・Ｃ３π／８の近似値を求めるためにＸ６と掛け算されることができる。有理数ダイアディック定数δ２は、積Ｘ５・Ｆ２・Ｓ３π／８の近似値を求めるためにＸ５と掛け算されることができ、そして同様に、積Ｘ６・Ｆ２・Ｓ３π／８の近似値を求めるためにＸ６と掛け算されることができる。変更されたスケーリング因数Ａ１／Ｆ２，Ａ３／Ｆ２，Ａ５／Ｆ２とＡ７／Ｆ２は、それぞれ変換係数Ｘ［１］，Ｘ［３］，Ｘ［５］とＸ［７］に適用されることができる。
【００３０】
６つの有理数ダイアディック定数α１、β１、α２、β２、γ２とδ２は、６個の定数に対して定められることができ、次式の通りである：  
【数５】
2009534721.tif 000007
【００３１】
図４は、共通因数を用いる８−点ＤＣＴのフロー・グラフ４００を示す。フロー・グラフ４００は、図２のフロー・グラフ２００と同じ因数分解を使用する。しかしながら、フロー・グラフ４００は、中間変数の２つのグループに対して２つの共通因数を使用する。
【００３２】
第１共通因数Ｆａは、２つの中間変数ＸａとＸｂの第１グループに適用され、それは変換係数Ｘ［２］とＸ［６］を生成するために使用される。第１共通因数Ｆａは、Ｘａと掛け算され、変換定数１／Ｃπ／４で吸収され、そしてスケーリング因数Ａ２とＡ６を変更することにより説明される。第２共通因数Ｆｂは、４つの中間変数ＸｃからＸｆの第２グループに適用され、それらは変換係数Ｘ［１］、Ｘ［３］、Ｘ［５］とＸ［７］を生成するために使用される。第２共通因数Ｆｂは、Ｘｄと掛け算され、変換定数１／Ｃπ／４、２Ｃ３π／８と２Ｓ３π／８で吸収され、そしてスケーリング因数Ａ１，Ａ３，Ａ５とＡ７を変更することにより説明される。
【００３３】
第１共通因数Ｆａは、有理数ダイアディック定数αａを用いて近似されることができ、それは積Ｘａ・Ｆａの近似値を求めるためにＸａと掛け算されることができる。スケーリングされた変換因数Ｆａ・Ｃπ／４は、有理数ダイアディック定数βａを用いて近似されることができ、それは積Ｘｂ・Ｆａ・Ｃπ／４の近似値を求めるためにＸｂと掛け算されることができる。変更されたスケーリング因数Ａ２／ＦａとＡ６／Ｆａは、それぞれ、変換係数Ｘ［２］とＸ［６］に適用されることができる。
【００３４】
第２共通因数Ｆｂは、有理数ダイアディック定数αｂを用いて近似されることができ、それは積Ｘｄ・Ｆｂの近似値を求めるためにＸｄと掛け算される。スケーリングされた変換因数Ｆｂ・Ｃπ／４は、有理数ダイアディック定数βｂを用いて近似されることができ、それは積Ｘｃ・Ｆｂ・Ｃπ／４の近似値を求めるためにＸｃと掛け算されることができる。スケーリングされた変換因数２Ｆｂ・Ｃ３π／８は、有理数ダイアディック定数γｂを用いて近似されることができ、そしてスケーリングされた変換因数２Ｆｂ・Ｓ３π／８は、有理数ダイアディック定数δｂを用いて近似されることができる。有理数ダイアディック定数γｂは、積２Ｘｅ・Ｆｂ・Ｃ３π／８の近似値を求めるためにＸｅと掛け算されることができ、そして同様に、積２Ｘｆ・Ｆｂ・Ｃ３π／８の近似値を求めるためにＸｆと掛け算されることができる。有理数ダイアディック定数δｂは、積２Ｘｅ・Ｆｂ・Ｓ３π／８の近似値を求めるためにＸｅと掛け算されることができ、そして同様に、積２Ｘｆ・Ｆｂ・Ｓ３π／８の近似値を求めるためにＸｆと掛け算されることができる。変更されたスケーリング因数Ａ１／Ｆｂ，Ａ３／Ｆｂ，Ａ５／ＦｂとＡ７／Ｆｂは、それぞれ変換係数Ｘ［１］，Ｘ［３］，Ｘ［５］とＸ［７］に適用されることができる。
【００３５】
６つの有理数ダイアディック定数αａ、βａ、αｂ、βｂ、γｂとδｂは、６個の定数に対して定められることができ、次式の通りである：  
【数６】
2009534721.tif 000008
【００３６】
図３と図４は、それぞれ８−点ＩＤＣＴと８−点ＤＣＴの特定の因数分解に対する共通因数の使用例を示す。共通因数は、ＤＣＴとＩＤＣＴの別の因数分解にそして同様に別のタイプの変換に対して使用されることができる。一般に、共通因数は、変換において少なくとも１つの中間変数のグループに適用されることができる。（複数の）中間変数のこのグループは、（例えば、図３に示されるような）入力値のグループから生成されることができる、又は（例えば、図４に示されるような）出力値のグループを生成するために使用されることができる。共通因数は、入力値又は出力値に適用されるスケーリング因数により説明されることができる。
【００３７】
複数の共通因数は、中間変数の複数のグループに適用されることができ、そして各グループは、任意の数の中間変数を含むことができる。グループの選択は、変換の因数分解のような様々な要因に依存することがあり、そこでは、変換定数が変換の内部に位置する、等である。複数の共通因数は、（図３と図４には示されない）同じサイズ又は（図３と図４に示されるような）異なるサイズの中間変数の複数のグループに適用されることができる。例えば、３つの共通因数は、図３に示される因数分解に対して使用されることができ、中間変数Ｘ１とＸ２に適用される第１共通因数、中間変数Ｘ３，Ｘ４，Ｘ５とＸ６に適用される第２共通因数、そしてＸ［０］とＸ［４］から生成された２つの中間変数に適用される第３共通因数を有する。
【００３８】
中間変数ｘと有理数ダイアディック定数ｕとの乗算は、固定小数点整数計算において様々な方式で実行されることができる。乗算は、論理演算（例えば、左シフト、右シフト、ビット反転、等）、算術演算（例えば、加算、減算、符号反転、等）、及び／又は他の演算を使用して実行されることができる。ｘとｕとの乗算のために必要な論理演算と算術演算の数は、計算が実行される方法、及び有理数ダイアディック定数ｕの値に依存する。別の計算技術は、ｘとｕとの同じ乗算のために異なる数の論理演算と算術演算を必要とすることがある。所与の計算技術は、ｘと別のｕの値との乗算のために異なる数の論理演算と算術演算を必要とすることがある。
【００３９】
共通因数は、例えば下記のような基準に基づいて中間変数のグループに対して選択されることができる：  
・乗算を実行するための論理演算と算術演算の数、及び
・結果の精度。
【００４０】
一般に、中間変数と有理数ダイアディック定数との乗算のための論理演算と算術演算の数を最小にすることは、望ましい。ある複数のハードウェア・プラットフォーム上では、算術演算（例えば、加算）は、論理演算よりもさらに複雑であることがあり、そのため算術演算の数を減少させることは、より重要であり得る。極端な場合には、計算上の複雑性は、論理演算を考慮せずに、算術演算の数だけに基づいて定量化されることがある。ある複数の別のハードウェア・プラットフォーム上では、論理演算（例えば、シフト）は、より費用がかかることがあり、論理演算の数を減少させること（例えば、シフト演算の数及び／又はシフトされるビットの総数を減少させること）が、より重要であり得る。一般に、論理演算と算術演算の加重平均数が使用されることができ、そこでは、加重は、論理演算と算術演算の相対的な複雑性を表すことができる。
【００４１】
結果の精度は、下記の表６に与えられるもののような様々な測定基準に基づいて定量化されることができる。一般に、所定の精度に対して論理演算と算術演算の数（すなわち、計算上の複雑さ）を減少させることが望ましい。しかも、例えば、複数の追加の演算の犠牲を払って高い精度を達成するために、複雑性と精度とをトレード・オフすることが、望ましいことがある。
【００４２】
図３と図４に示されたように、各共通因数に対して、乗算は、中間変数のグループと有理数ダイアディック定数のグループとについて実行されることができ、その有理数ダイアディック定数はその共通因数によりスケーリングされた（少なくとも１つの変換因数のための）少なくとも１つの無理数定数のグループを近似する。固定小数点整数計算での乗算は、様々な方法で実行されることができる。明確さのために、シフト演算と加算演算とを用いそして中間結果を使用して乗算を実行する計算技術が、下記に記述される。これらの計算技術は、ＤＣＴとＩＤＣＴのためのシフト演算と加算演算の総数を削減することができる。
【００４３】
固定小数点整数計算における整数変数ｘと無理数定数μとの乗算は、有理数ダイアディック定数を用いて無理数定数を近似することによって実現されることができ、次式の通りである：  
μ≒ｃ／２ｂ                                                  式（５）  
ここで、μは、近似されようとしている無理数定数であり、ｃ／２ｂは、有理数ダイアディック定数であり、ｂとｃは整数であり、そしてｂ＞０である。
【００４４】
整数変数ｘと有理数ダイアディック定数ｕ＝ｃ／２ｂが与えられると、整数値の積  
ｙ＝（ｘ・ｃ）／２ｂ                                          式（６）  
は、中間値の系列  
ｙ０，ｙ１，ｙ２，．．．，ｙｔ，                                式（７）  
を使用して近似されることができ、ここで、ｙ０＝０、ｙ１＝ｘであり、そして全ての２≦ｉ≦ｔの値に対して、ｙｉは次式として求められる：  
ｙｉ＝±ｙｊ±ｙｋ・２Ｓｉ，      ｊ，ｋ＜ｉで、            式（８）  
ここで、ｙｋ・２Ｓｉは、｜ｓｉ｜ビットだけ（定数ｓｉの符号に応じて）中間値ｙｋの左シフト又は右シフトのいずれかを意味する。
【００４５】
式（８）では、ｙjは、ｙｊ＋ｙｋ・２Ｓｉ，ｙｊ−ｙｋ・２Ｓｉ，又は−ｙｊ＋ｙｋ・２Ｓｉに等しいことがある。系列の各中間値ｙｉは、その系列中の２つの前の中間値ｙｊとｙｋに基づいて導出されることができ、ここで、ｙｊ又はｙｋのいずれかはゼロに等しいことがある。各中間値ｙｊは、１つのシフト及び／又は１つの加算で得られることがある。このシフトは、ｓｊがゼロに等しい場合には、必要とされない。加算は、もしｙｊ＝ｙ0＝０であれば、必要とされない。乗算のための加算とシフトの総数は、その系列中の中間値の数、それはｔである、と同様に各中間値に対して使用される数式の数、により決定される。有理数ダイアディック定数ｕによる乗算は、シフト演算と加算演算の系列へと本質的に展開される。その系列は、その系列中の最終値が所望の整数値である積になる、すなわち次式である：  
ｙｔ≒ｙ                                                      式（９）。
【００４６】
式（５）から式（９）に示されるように、整数変数ｘと無理数定数μとの乗算は、シフト演算と加算演算により生成される中間値の系列を用いて、そして中間結果（すなわち、前に生成された中間値）を使用して近似されることができ、演算の総数を減少させる。
【００４７】
固定小数点整数計算において整数変数ｘと２つの無理数定数μ及びηとの乗算は、有理数ダイアディック定数を用いて無理数定数を近似することにより実現されることができ、次式の通りである：  
μ≒ｃ／２ｂ  そして  η≒ｅ／２ｄ，                        式（１０）
ここで、ｃ／２ｂとｅ／２ｄは、２つの有理数ダイアディック定数であり、ｂ、ｃ、ｄとｅは整数であり、ｂ＞０そしてｄ＞０である。
【００４８】
整数変数ｘ及び有理数ダイアディック定数ｕ＝ｃ／２ｂとｖ＝ｅ／２ｄが与えられると、２つの整数値にされた積  
ｙ＝（ｘ・ｃ）／２ｂ  そして  ｚ＝（ｘ・ｅ）／２ｄ            式（１１）  
は、中間値  
ｗ０，ｗ１，ｗ２，．．．，ｗｔ，                                式（１２）  
の系列を使用して近似されることができる、ここで、ｗ０＝０、ｗ１＝ｘであり、そして全ての２≦ｉ≦ｔの値に対して、ｗｉは次式のように求められる：  
ｗｉ＝±ｗｊ±ｗｋ・２Ｓｉ，        ｊ，ｋ＜ｉで、            式（１３）  
ここで、ｗｋ・２Ｓｉは、ｗｋを｜ｓｉ｜ビットだけ左シフト又は右シフトのいずれかを意味する。所望の整数値にされた積がステップｍとｎにおいて求められるように、その系列は定義され、次式の通りである：  
ｗｍ≒ｙ  そして  ｗｎ≒ｚ                                     式（１４）  
ここで、ｍ，ｎ≦ｔそしてｍ又はｎのいずれかはｔに等しい。
【００４９】
式（１０）から（１４）に示されたように、整数変数ｘと無理数定数μ及びηとの乗算は、シフト演算と加算演算により生成される中間値の共通系列を用いてそして中間結果を使用して近似されることができて、演算の総数を減少させることができる。
【００５０】
上に記述された計算では、ゼロの加算と減算及びゼロ・ビットのシフトのような自明な演算は、省略されることができる。次の単純化が行われることができる：  
ｙｉ＝±ｙ０±ｙｋ・２Ｓｉ    ⇒    ｙｉ＝±ｙｋ・２Ｓｉ        式（１５）  
ｙｉ＝±ｙｊ±ｙｋ・２０     ⇒    ｙｉ＝±ｙｊ±ｙｋ          式（１６）。
【００５１】
式（１５）では、“⇒”の左側の表式は、ゼロ（ｙ０により記される）の加算又は減算を含み、そして“⇒”の右側の表式により示されるように、１つのシフトを用いて実行されることができる。式（１６）では、“⇒”の左側の表式は、ゼロ・ビット（２０により記される）のシフトを含み、そして“⇒”の右側の表式により示されるように、１つの加算を用いて実行されることができる。式（１５）と（１６）は、ｙｉの計算において式（８）に適用されることができ、同様にｗｉの計算において式（１３）に適用されることができる。
【００５２】
図１から図４の乗算は、上に記述された計算技術を使用して効率的に実行されることができる。図１では、固定小数点整数計算での整数変数ｘと変換定数Ｃπ／４との乗算は、有理数ダイアディック定数を用いて定数Ｃπ／４を近似することにより実現されることができ、次式の通りである：  
【数７】
2009534721.tif 000009
【００５３】
ここで、Ｃ８π／４はＣπ／４の８−ビット近似値である有理数ダイアディック定数である。
【００５４】
定数Ｃ８π／４による整数変数ｘの乗算は、次式のように表わされることができる：  
ｙ＝（ｘ・１８１）／２５６                                  式（１８）。
【００５５】
式（１８）中の乗算は、下記の一連の演算を用いて実現されることができる：  
ｙ１＝ｘ，                    //１                            式（１９）  
ｙ２＝ｙ１＋（ｙ１＞＞２），    //１０１
ｙ３＝ｙ１−（ｙ２＞＞２），    //０１０１１
ｙ４＝ｙ３＋（ｙ２＞＞６），    //０１０１１０１０１
“//”の右側の２進数値は、変数ｘと掛け算される中間定数である。
【００５６】
望ましい積は、ｙ４に等しい、すなわち、ｙ４＝ｙである。式（１８）中の乗算は、３つの乗算と３つのシフトを用いて実行されることができ、３つの中間値ｙ２，ｙ３とｙ４を生成する。
【００５７】
図１では、固定小数点整数計算における整数変数ｘと変換定数Ｃ３π／８及びＳ３π／８との乗算は、有理数ダイアディック定数を用いて定数Ｃ３π／８とＳ３π／８を近似することにより実現されることができ、次の通りである：  
【数８】
2009534721.tif 000010
【００５８】
ここで、Ｃ７３π／８は、Ｃ３π／８の７−ビット近似である有理数ダイアディック定数であり、そして  
Ｓ９３π／８は、Ｓ３π／８の９−ビット近似である有理数ダイアディック定数である。
【００５９】
定数Ｃ７３π／８及びＳ９３π／８による整数変数ｘの乗算は、次のように表わされることができる：  
ｙ＝（ｘ・４９）／１２８  そして  ｚ＝（ｘ・４７３）／５１２    式（２２）。
【００６０】
式（２２）中の乗算は、下記の一連の演算を用いて実現されることができる：  
ｗ１＝ｘ，                    //１                              式（２３）  
ｗ２＝ｗ１−（ｗ１＞＞２），    //０１１
ｗ３＝ｗ１＞＞６，            //００００００１
ｗ４＝ｗ２＋ｗ３，            //０１１０００１
ｗ５＝ｗ１−ｗ３，            //０１１１１１１
ｗ６＝ｗ４＞＞１，            //００１１０００１
ｗ７＝ｗ５−（ｗ１＞＞４），    //０１１１０１１
ｗ８＝ｗ７＋（ｗ１＞＞９），    //０１１１０１１００１。
【００６１】
望ましい積は、ｗ６とｗ８に等しい、すなわち、ｗ６＝ｙとｗ８＝ｚである。式（２２）中の２つの乗算は、５つの加算と５つのシフトを用いて一緒に実行されることができ、７つの中間値ｗ２からｗ８を生成する。ゼロの加算は、ｗ３とｗ６の生成において省略される。ゼロのシフトは、ｗ４とｗ５の生成において省略される。
【００６２】
図１に示された８−点ＩＤＣＴに関して、定数Ｃ８π／４、Ｃ７３π／８とＳ９３π／８による乗算に関する上に記述した計算技術を使用して、８−ビット精度のための全体の複雑さは、２８＋３・２＋５・２＝４４の加算と３・２＋５・２＝１６のシフトとして与えられる。一般に、任意の所望の精度は、各変換定数の近似のために十分な数のビットを使用することにより実現されることができる。
【００６３】
図２に示された８−点ＤＣＴに関して、無理数定数１／Ｃπ／４、Ｃ３π／８とＳ３π／８は、有理数ダイアディック定数を用いて近似されることができる。有理数ダイアディック定数を用いる乗算は、上に記述された計算技術を使用して実現されることができる。
【００６４】
図３に示されたＩＤＣＴに関して、共通因数Ｆ１とＦ２の異なる値は、ＩＤＣＴのための論理演算と算術演算の異なる総数に、そして出力サンプルｘ［０］からｘ［７］に対する異なるレベルの精度に結果としてなることがある。Ｆ１とＦ２の値の異なる組み合わせが、評価されることができる。値のそれぞれの組み合わせに対して、ＩＤＣＴのための論理演算と算術演算の総数と出力サンプルの精度が、決定されることができる。
【００６５】
Ｆ１の所与の値に対して、有理数ダイアディック定数α１とβ１は、それぞれＦ１とＦ１・Ｃπ／４とに対して求められることができる。論理演算と算術演算の数は、次に、Ｘ１とα１との乗算及びＸ２とβ１との乗算に対して決定されることができる。Ｆ２の所与の値に対して、有理数ダイアディック定数α２，β２，γ２とδ２は、それぞれＦ２，Ｆ２・Ｃπ／４，Ｆ２・Ｃ３π／８とＦ２・Ｓ３π／８とに対して求められることができる。論理演算と算術演算の数は、次に、Ｘ４とα２との乗算、Ｘ３とβ２との乗算、そしてＸ５とγ２及びδ２の両方との乗算に対して決定されることができる。Ｘ６とγ２及びδ２との乗算のための演算の数は、Ｘ５とγ２及びδ２との乗算のための演算の数に等しい。
【００６６】
共通因数の評価と選択を容易にするために、論理演算と算術演算の数は、有理数ダイアディック定数の異なる可能な値との乗算のために事前に計算されることができる。事前に計算された論理演算と算術演算の数は、ルック−アップ・テーブル又はある別のデータ構造中に記憶されることができる。
【００６７】
図５は、異なる有理数ダイアディック定数値を用いる乗算のための論理演算と算術演算の数を記憶するルック−アップ・テーブル５００を示す。ルック−アップ・テーブル５００は、横軸に第１有理数ダイアディック定数Ｃ１の異なる可能な値を、縦軸に第２有理数ダイアディック定数Ｃ２の異なる可能な値を有する２次元の表である。各有理数ダイアディック定数に対する異なる可能な値は、その定数に対して使用されるビット数に依存する。例えば、Ｃ１が１３ビットで表わされる場合、その時にはＣ１に対する８１９２の可能な値がある。各有理数ダイアディック定数に対する可能な値は、ｃ０，ｃ１，ｃ２，．．．，ｃＭとして表わされ、ここで、ｃ０＝０、ｃ１は最小のゼロでない値であり、そしてｃＭは最大値（例えば、１３−ビットに対してｃＭ＝８１９１）である。
【００６８】
ルック−アップ・テーブル５００のｉ番目の列とｊ番目の行の記載は、第１有理数ダイアディック定数Ｃ１に対するｃ１及び第２有理数ダイアディック定数Ｃ２に対するｃ２の両方と中間変数ｘとの複合乗算のための論理演算と算術演算の数を含む。ルック−アップ・テーブル５００中の各記載の値は、その記載のためのｃ１とｃ２とを用いる複合乗算に対する中間値の異なる可能な系列を評価することによりそして最善の系列、例えば、最も少ない演算を有する系列、を選択することにより決定されることができる。（第２有理数ダイアディック定数Ｃ２に対してｃ０＝０を有する）ルック−アップ・テーブル５００の第１行中の記載は、中間変数ｘと第１有理数ダイアディック定数Ｃ１だけとの乗算に対する演算の数を含む。ルック−アップ・テーブルが対称的であるので、（例えば、主対角線の上又は下の）表の半分の記載だけが、埋められることがある。その上、埋めるべき記載の数は、有理数ダイアディック定数Ｃ１とＣ２を用いて近似される無理数定数を考慮することによって削減されることができる。
【００６９】
Ｆ１の所与の値に対して、有理数ダイアディック定数α１とβ１は、決定されることができる。Ｘ１とα１との乗算及びＸ２とβ１との乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル５００の第１行の記載から容易に決定されることができ、そこでは、α１とβ１はＣ１に対応する。同様に、Ｆ２の所与の値に対して、有理数ダイアディック定数α２，β２，γ２とδ２は、決定されることができる。Ｘ４とα２との乗算及びＸ３とβ２との乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル５００の第１行の記載から容易に決定されることができ、そこでは、α２とβ２はＣ１に対応する。Ｘ５とγ２及びδ２との複合乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル５００中の適切な記載から決定されることができ、そこでは、γ２はＣ１に対応することができ、そしてδ２はＣ２に対応することができる、又はその逆である。
【００７０】
Ｆ１とＦ２とに対する値の可能な組み合わせのそれぞれに関して、表６中の精度測定基準は、異なるランダムな入力データを用いる十分な数の繰り返しに対して決定されることができる。悪い精度（例えば、不十分な測定基準）を結果としてもたらすＦ１とＦ２の値は、破棄されることができ、そして良い精度（例えば、十分な測定基準）を結果としてもたらすＦ１とＦ２の値は、維持されることができる。
【００７１】
表１から表５は、図３のＩＤＣＴのための５つの固定小数点近似を示し、それらはアルゴリズムＡ，Ｂ，Ｃ，ＤとＥとして示される。これらの近似は、２つのグループの定数に対するものであり、１つのグループはα１とβ１とを含み、そして別の１つのグループはα２，β２，γ２とδ２とを含む。表１から表５のそれぞれに関して、各グループの共通因数は、第１列に与えられる。共通因数は、有理数ダイアディック定数近似の精度を向上させ、そしてＩＤＣＴに関するフロー・グラフ中の適切な複数のスケーリング因数と統合されることができる。元々の値（それは１又は無理数定数であり得る）は、第３列に与えられる。自身の共通因数によりスケーリングされた元々の値のそれぞれに対する有理数ダイアディック定数は、第４列に与えられる。整数変数ｘと１又はそれより多くの有理数ダイアディック定数との乗算に関する中間値の系列は、第５列に与えられる。各乗算のための加算演算とシフト演算の数は、それぞれ第６列と第７列に与えられる。ＩＤＣＴのための加算演算の総数は、第６列の全ての加算演算、プラス、（Ｘ５及びＸ６のそれぞれとγ２及びδ２の両方との乗算を考慮して）再び最後の記載、プラス、フロー・グラフ中の全てのバタフライのための２８の加算演算、の合計に等しい。ＩＤＣＴのためのシフト演算の総数は、最後の列の全てのシフト演算、プラス、再び最後の記載、の合計に等しい。
【００７２】
表１は、アルゴリズムＡの詳細を与え、それは２つのグループのそれぞれに対して１／１．００００４４２４７１の共通因数を使用する。  
【表１】
2009534721.tif 000011
【００７３】
表２は、アルゴリズムＢの詳細を与え、それは第１グループに対して１／１．００００４４２４７１の共通因数を、そして第２グループに対して１／１．０２０５３７２２６５９の共通因数を使用する。  
【表２】
2009534721.tif 000012
【００７４】
表３は、アルゴリズムＣの詳細を与え、それは第１グループに対して１／０．８８７３４８９０５５５の共通因数を、そして第２グループに対して１／１．０２０５３７２２６５９の共通因数を使用する。  
【表３】
2009534721.tif 000013
【００７５】
表４は、アルゴリズムＤの詳細を与え、それは第１グループに対して１／０．８８７３４８９０５５５の共通因数を、そして第２グループに対して１／０．８９０６２０５４３０８の共通因数を使用する。  
【表４】
2009534721.tif 000014
【００７６】
表５は、アルゴリズムＥの詳細を与え、それは第１グループに対して１／０．８８７３４８９０５５５の共通因数を、そして第２グループに対して１／１．２２３８７４６８００２の共通因数を使用する。  
【表５】
2009534721.tif 000015
【００７７】
近似ＩＤＣＴからの出力サンプルの精度は、ＩＥＥＥ規格１１８０−１１９０に規定された測定基準及び審議中のその置き換え案に基づいて定量化されることができる。この規格は、基準６４−ビット浮動小数点ＤＣＴを、引き続いて乱数発生器からのデータを使用する近似ＩＤＣＴを試験することを規定する。基準ＤＣＴは、入力ピクセルのブロックに対するランダムなデータを受け取り、そして変換係数を生成する。近似ＩＤＣＴは、（適切に丸められた）変換係数を受け取り、そして再生されたピクセルのブロックを生成する。再生されたピクセルは、５つの測定基準を使用して入力ピクセルに対して比較され、それらの測定基準は、表６に与えられている。それに加えて、近似ＩＤＣＴは、ゼロ変換係数を供給されたときに全てゼロを生成するために、そしてＤＣに近い反転挙動を例証するために必要とされる。上に与えられたＡからＥの全ての５つのアルゴリズムは、表６中の測定基準の全てに合格する。
【表６】
2009534721.tif 000016
【００７８】
図３に示された１Ｄ  ＩＤＣＴは、２Ｄ  ＩＤＣＴに対して使用されることができる。同様に、図４に示された１Ｄ  ＤＣＴは、２Ｄ  ＤＣＴに対して使用されることができる。
【００７９】
図６は、スケーリングされそして分離できる方式で実行される２Ｄ  ＩＤＣＴ６００のデザインを示す。２Ｄ  ＩＤＣＴ６００は、入力スケーリング・ステージ６１２、列（又は行）に対する第１のスケーリングされた１Ｄ  ＩＤＣＴステージ６１４が続き、さらに行（又は列）に対する第２のスケーリングされた１Ｄ  ＩＤＣＴステージ６１６が続き、そして出力スケーリング・ステージ６１８で締め括る。入力スケーリング・ステージ６１２は、変換係数の８×８ブロックを受け取り、そして各変換係数を定数Ｃ＝２Ｐにより事前に掛け算することができる、又は各変換係数を左へＰビットだけシフトすることができる、ここで、Ｐは確保された“仮数”ビットの数を表す。スケーリングの後で、２Ｐ−１の量は、ＤＣ変換係数に加算されることができ、出力サンプルの妥当な丸めを実現する。スケーリングの精度を向上させるために、Ｓ＝Ｐ＋Ｒビットは、整数へのスケーリング因数の変換の際に使用されることができ、そしてＲビットの右シフトは、乗算の後で実行されることができる。Ｓは、ハードウェア・プラットフォーム上での実行を容易にすることが可能な任意の適切な値であり得て、例えば、Ｓは符号有り／符号なしの１６−ビット乗数を用いるプラットフォームに対して１５又は１６であり得る。
【００８０】
第１の１Ｄ  ＩＤＣＴステージ６１４は、スケーリングされた変換係数のブロックの各列に８−点ＩＤＣＴを実行する。第２の１Ｄ  ＩＤＣＴステージ６１６は、第１の１Ｄ  ＩＤＣＴステージ６１４により生成された中間ブロックの各行に８−点ＩＤＣＴを実行する。第１及び第２ステージに対する１Ｄ  ＩＤＣＴは、いずれかの内部的な事前のスケーリング又は事後のスケーリングを行うことなくそれらの入力データに直接演算することができる。行と列の両方が処理された後で、出力スケーリング・ステージ６１８は、第２の１Ｄ  ＩＤＣＴステージ６１６からの結果の量を右へＰビットだけシフトすることができ、２Ｄ  ＩＤＣＴに対する出力サンプルを生成する。スケーリング因数と精度定数Ｐは、全体の２Ｄ  ＩＤＣＴが所望の幅のレジスタを使用して実行され得るように選択されることができる。
【００８１】
２Ｄ  ＤＣＴは、２Ｄ  ＩＤＣＴと類似の方法で実行されることができる。２Ｄ  ＤＣＴは、（ａ）空間ドメイン・サンプルのブロックを事前に掛け算すること、（ｂ）スケーリングされたサンプルのブロックの各列（又は各行）に１Ｄ  ＤＣＴを実行して中間ブロックを生成すること、（ｃ）中間ブロックの各行（又は各列）に１Ｄ  ＤＣＴを実行すること、そして（ｄ）第２の１Ｄ  ＤＣＴステージの出力をスケーリングして２Ｄ  ＤＣＴに対する変換係数のブロックを生成すること、により実行されることができる。
【００８２】
明確化のために、上記の記述の多くは、８−点のスケーリングされたＩＤＣＴ及び８−点のスケーリングされたＤＣＴに対してである。本明細書中に記述される技術は、任意のタイプの変換に対して使用されることができ、例えば、ＤＣＴ，ＩＤＣＴ，ＤＦＴ，ＩＤＦＴ，ＭＬＴ，逆ＭＬＴ，ＭＣＬＴ，逆ＭＣＬＴ、等である。本技術は、図１から図４に与えられている複数の例の因数分解を用いる、変換の任意の因数分解に対しても同様に使用されることができる。共通因数のグループは、上に説明されたように、因数分解に基づいて選択されることができる。本技術は、図１から図４に与えられている例の８−点変換を用いる任意のサイズの変換に対しても同様に使用されることができる。本技術は、しかも、任意の共通因数選択基準、例えば、論理演算と算術演算の総数、算術演算の総数、結果の精度、等、とともに使用されることができる。
【００８３】
変換のための演算の数は、乗算が実行される方式に依存することがある。上に説明された計算技術は、乗算を一連のシフト演算と加算演算へと展開し、演算の数を削減させるために中間結果を使用し、そして共通系列を使用する複数の定数を用いて複合乗算を実行する。乗算は、他の計算技術を用いて同様に実行されることができ、それは共通因数の選択に影響することがある。
【００８４】
本明細書中に記述された共通因数を用いる変換は、ある種の利点を与えることができ、例えば下記のものである：  
・スケーリングされた段階で統合された乗算のために乗算の複雑性を低下させること、  
・ＪＰＥＧ，Ｈ．２６３，ＭＰＥＧ−１，ＭＰＥＧ−２，ＭＰＥＧ−４（Ｐ．２）、及び他の規格の実施の際に量子化を用いるスケーリングを統合する能力による可能な複雑性の低減、及び
・スケーリング因数により考慮されることが可能な共通因数を導入することによって乗算において使用される無理数定数に対する固定小数点近似の誤差を最小にするための／分散させるための能力による精度の向上。
【００８５】
共通因数を用いる変換は、様々なアプリケーションに対して使用されることができ、例えば、画像及びビデオ処理、通信、計算、データ・ネットワーキング、データ記憶、グラフィックス、等である。ビデオ処理に対する変換の使用例が、以下に説明される。
【００８６】
図７は、画像／ビデオ・エンコーディング及びデコーディング・システム７００のブロック図を示す。エンコーディング・システム７１０において、ＤＣＴユニット７２０は、入力データ・ブロックを受け取り、そして変換係数ブロックを生成する。入力データ・ブロックは、ピクセルのＮ×Ｎブロック、ピクセル差異値（すなわち残差）のＮ×Ｎブロック、ソース信号、例えば、ビデオ信号、から生成されるある別のタイプのデータ、であり得る。ピクセル差異値は、ピクセルの２つのブロック間の差異値、ピクセルのあるブロックと予測されるピクセルのブロックとの間の差異値、等、であり得る。Ｎは、８に等しい又はある別の値であり得る。エンコーダ７３０は、ＤＣＴユニット７２０から変換係数ブロックを受け取り、その変換係数をエンコードし、そして圧縮されたデータを生成する。圧縮されたデータは、記憶ユニットに記憶されることができるそして／又は通信チャネル（クラウド７４０）を介して送られることができる。
【００８７】
デコーディング・システム７５０において、デコーダ７６０は、記憶ユニット又は通信チャネル７４０から圧縮されたデータを受け取り、そして変換係数を再生する。ＩＤＣＴユニット７７０は、その再生された変換係数を受け取り、そして出力データ・ブロックを生成する。出力データ・ブロックは、再生されたピクセルのＮ×Ｎブロック、再生されたピクセル差異値のＮ×Ｎブロック、等、であり得る。出力データ・ブロックは、ＤＣＴユニット７２０に与えられた入力データ・ブロックの推定値であり得て、そしてソース信号を再生するために使用されることができる。
【００８８】
図８は、エンコーディング・システム８００のブロック図を示し、それは図７のエンコーディング・システム７１０に対して使用されることができる。取り込みデバイス／メモリ８１０は、ソース信号を受け取ることができ、ディジタル・フォーマットに変換することができ、そして入力／生データを提供する。取り込みデバイス８１０は、ビデオ・カメラ、ディジタイザ、又はある別のデバイスであり得る。プロセッサ８２０は、生データを処理し、そして圧縮されたデータを生成する。プロセッサ８２０の内部で、生データは、ＤＣＴユニット８２０により変換され、ジグ−ザグ・スキャン・ユニット８２４によりスキャンされ、コンタイザ８２６により量子化され、エントロピ・エンコーダ８２８によりエンコードされ、そしてパケッタイザ８３０によりパケット化されることができる。ＤＣＴユニット８２２は、上に説明された技術にしたがって生データに２Ｄ  ＤＣＴを実行することができる。ユニット８２２から８３０のそれぞれは、ハードウェア、ファームウェア及び／又はソフトウェアを与えられることができる。例えば、ＤＣＴユニット８２２は、専用ハードウェア、算術論理ユニット（ＡＬＵ）に対する命令の集合、等、で与えられることができる。
【００８９】
記憶ユニット８４０は、プロセッサ８２０からの圧縮されたデータを記憶することができる。送信機８４２は、圧縮されたデータを送信することができる。コントローラ／プロセッサ８５０は、エンコーディング・システム８００中の様々なユニットの動作を制御する。メモリ８５２は、エンコーディング・システム８００のためのデータとプログラム・コードを記憶する。１又はそれより多くのバス８６０は、エンコーディング・システム８００内の様々なユニットを相互接続する。
【００９０】
図９は、デコーディング・システム９００のブロック図を示し、それは図７のデコーディング・システム７５０に対して使用されることができる。受信機９１０は、エンコーディング・システムからの圧縮されたデータを受信し、そして記憶ユニット９１２は、受信した圧縮データを記憶することができる。プロセッサ９２０は、圧縮されたデータを処理し、そして出力データを生成する。プロセッサ９２０内では、圧縮されたデータは、デ−パケッタイザによりデ−パケット化され、エントロピー・デコーダ９２４によりデコードされ、逆コンタイザ９２６により逆量子化され、逆ジグ−ザグ・スキャン・ユニット９２８により適正な順番に置かれ、そしてＩＤＣＴユニット９３０によって変換されることができる。ＩＤＣＴユニット９３０は、上に説明された技術にしたがって再生された変換係数に２Ｄ  ＩＤＣＴを実行することができる。ユニット９２２から９３０のそれぞれは、ハードウェア、ファームウェア及び／又はソフトウェアを与えられることができる。例えば、ＩＤＣＴユニット９３０は、専用ハードウェア、ＡＬＵに対する命令の集合、等、で与えられることができる。
【００９１】
ディスプレイ・ユニット９４０は、プロセッサ９２０からの再生された画像とビデオを表示する。コントローラ／プロセッサ９５０は、デコーディング・システム９００中の様々なユニットの動作を制御する。メモリ９５２は、デコーディング・システム９００のためのデータとプログラム・コードを記憶する。１又はそれより多くのバス９６０は、デコーディング・システム９００内の様々なユニットを相互接続する。
【００９２】
プロセッサ８２０と９２０は、１又はそれより多くの用途特定集積回路（ＡＳＩＣｓ：application specific integrated circuits）、ディジタル信号プロセッサ（ＤＳＰｓ：digital signal processors）、及び／又はある複数の別のタイプのプロセッサを用いてそれぞれ与えられることができる。あるいは、プロセッサ８２０と９２０は、１又はそれより多くのランダム・アクセス・メモリ（random access memory）（ＲＡＭ）、読み出し専用メモリ（read only memory）（ＲＯＭ）、電気的書き込み可能ＲＯＭ（ＥＰＲＯＭ：electrically programmable ROM）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ：electrically erasable PROM）、磁気ディスク、光ディスク、及び／又は本技術において公知の他のタイプの揮発性及び不揮発性メモリでそれぞれ置き換えられることができる。
【００９３】
本明細書中で記述された技術は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせで実行されることができる。例えば、データ値と定数値との乗算のための論理演算（例えば、シフト）と算術演算（例えば、加算）は、１又はそれより多くの論理回路、それは同様にユニット、モジュール、等とも呼ばれることができる、を用いて実行されることができる。論理回路は、論理ゲート回路、トランジスタ回路、及び／又は本技術において公知の他の回路を備えるハードウェア論理回路であり得る。論理回路は、同様に、機械読み取り可能なコードを備えるファームウェア及び／又はソフトウェア論理回路であり得る。
【００９４】
１つのデザインでは、装置は、少なくとも１つのデータ値の第１グループと、少なくとも１つの有理数ダイアディック定数の第１グループとの乗算を実行する第１論理回路を具備し、その有理数ダイアディック定数は第１共通因数によりスケーリングされた少なくとも１つの無理数定数の第１グループを近似する。該装置は、少なくとも１つのデータ値の第２グループと、少なくとも１つの有理数ダイアディック定数の第２グループとの乗算を実行する第２論理回路をさらに具備し、その有理数ダイアディック定数は第２共通因数によりスケーリングされた少なくとも１つの無理数定数の第２グループを近似する。少なくとも１つのデータ値の該第１グループと第２グループとは、異なるサイズを有する。該第１論理回路と第２論理回路は、別々の論理回路、同じ共通論理回路、又は共用される論理回路であり得る。
【００９５】
ファームウェア及び／又はソフトウェア実行に関して、データ値と定数値との乗算は、所望の論理演算と算術演算を実行する機械読み取り可能なコードを用いて実現されることができる。そのコードは、メモリ（例えば、図８のメモリ８５２又は図９のメモリ９５２）と配線で接続される又はメモリ中に記憶されることができ、そしてプロセッサ（例えば、プロセッサ８５０又は９５０）によって若しくはある別のハードウェア・ユニットによって実行されることができる。
【００９６】
本明細書中に記述される技術は、様々なタイプの装置で実施されることができる。例えば、本技術は、異なるタイプのプロセッサ、異なるタイプの集積回路、異なるタイプの電子デバイス、異なるタイプの電子回路、等、で実施されることができる。
【００９７】
情報及び信号が、様々な異なる技術及び技法のいずれかを使用して表わされることができることを、当業者は、理解するはずである。例えば、上記の記述の全体を通して参照されることができる、データ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁力粒子、光場又は光粒子、若しくはこれらの任意の組み合わせによって表わされることができる。
【００９８】
開示に関連して記述された様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムのステップが、電子ハードウェア、コンピュータ・ソフトウェア、又は両者の組み合わせとして与えられることができることを、当業者は、さらに認識するはずである。ハードウェアとソフトウェアのこの互換性を明確に説明するために、様々な例示的な複数の構成要素、ブロック、モジュール、回路、及びステップが、それらの機能性の面から一般的に上に説明されてきている。そのような機能性が、ハードウェア又はソフトウェアとして与えられるかどうかは、特定のアプリケーション及びシステム全体に課せられた設計の制約に依存する。知識のある者は、記述された機能性をそれぞれの特定のアプリケーションに対して違ったやり方で実行することができるが、そのような実行の判断は、開示された方法の範囲からの逸脱を生じさせるように解釈されるべきではない。
【００９９】
開示に関連して述べられた、様々な例示的な論理ブロック、モジュール、及び回路は、汎用プロセッサ、ＤＳＰ、ＡＳＩＣ、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ：field programmable gate array）又は他のプログラマブル論理デバイス、ディスクリート・ゲート論理回路又はトランジスタ論理回路、ディスクリート・ハードウェア・コンポーネント、又は本明細書中に説明された機能を実行するために設計されたこれらのいずれかの組み合わせで、与えられる又は実行されることができる。汎用プロセッサは、マイクロプロセッサであり得るが、しかし代わりに、プロセッサは、いずれかの従来型のプロセッサ、コントローラ、マイクロコントローラ、又はステート・マシンであり得る。プロセッサは、演算デバイスの組み合わせとして与えられることができる、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、ＤＳＰコアとともに１又はそれより多くのマイクロプロセッサの組み合わせ、若しくはいずれかの別のそのような構成の組み合わせであり得る。
【０１００】
１又はそれより多くの具体例の実施形態では、説明された機能は、ハードウェアで、ソフトウェアで、ファームウェアで、又はそれらの任意の組み合わせで実行されることができる。ソフトウェアで実行される場合、その機能は、コンピュータ読取り可能な媒体上に記憶されることができる、又はその上の１又はそれより多くの命令又はコードを介して送信されることができる。コンピュータ読取り可能な媒体は、１つの場所から別の場所へのコンピュータ・プログラムの搬送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体との両者を含む。記憶媒体は、コンピュータによりアクセスされることが可能である任意の利用可能な媒体であり得る。例として、そして限定するのではなく、そのようなコンピュータ読取り可能な媒体は、ＲＡＭ、ＲＯＭ，ＥＥＰＲＯＭ，ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気的な記憶デバイス、若しくは命令の形式で又はデータ構造の形式で所望のプログラミング・コードを搬送するため又は記憶するために使用されることが可能でありしかもコンピュータによりアクセスされることが可能であるいずれかの他の媒体、を具備することが可能である。しかも、任意の通信手段（connection）が、コンピュータ読取り可能な媒体と呼ばれる。例えば、ソフトウェアが、ウェブサイト、サーバ、又は他の遠隔ソースから、例えば、同軸ケーブル、光ファイバ・ケーブル、ツイスティッド・ペア（twisted pair）、ディジタル加入者回線（ＤＳＬ：digital subscriber line）、又は赤外線、無線、又はマイクロ波のような無線技術を使用して送信される場合に、その同軸ケーブル、光ファイバ・ケーブル、ツイスティッド・ペア、ＤＳＬ、又は赤外線、無線、又はマイクロ波のような無線技術は、媒体の定義に含まれる。本明細書中で使用されるように、ディスク（disk）とディスク（disc）は、コンパクト・ディスク（ＣＤ：compact disc）、レーザー・ディスク（disc）、光ディスク（disc）、ディジタル・バーサタイル・ディスク（ＤＶＤ：digital versatile disc）、フロッピー（登録商標）ディスク（disk）、及びブルーレイ・ディスク（disc）を含み、ここで、ディスク（disk）は、通常磁気的にデータを再生する、ところがディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせは、同様に、コンピュータ読取り可能な媒体の範囲内に含まれるべきである。
【０１０１】
本開示のこれまでの説明は、当業者が、本開示を作成すること又は使用することを可能にするために提供される。本開示への様々な変形は、当業者に容易に明白にされるであろう、そして、ここで規定された一般的な原理は、本開示の精神又は範囲から逸脱することなく他の設計に適用されることがでる。それゆえ、本開示は、本明細書中に示された例に制限するように意図されるのではなく、本明細書中に開示された原理及び新奇な機能と整合する最も広い範囲に適用されるものである。
【図面の簡単な説明】
【０１０２】
【図１】８−点ＩＤＣＴのフロー・グラフを示す。
【図２】８−点ＤＣＴのフロー・グラフを示す。
【図３】共通因数を用いる８−点ＩＤＣＴのフロー・グラフを示す。
【図４】共通因数を用いる８−点ＤＣＴのフロー・グラフを示す。
【図５】異なる有理数ダイアディック定数値を用いる乗算のための演算の数を記憶するルック−アップ・テーブルを示す。
【図６】２次元（２Ｄ）ＩＤＣＴのブロック図を示す。
【図７】画像／ビデオ・エンコーディング及びデコーディング・システムのブロック図を示す。
【図８】エンコーディング・システムのブロック図を示す。
【図９】デコーディング・システムのブロック図を示す。
【図１】
2009534721.tif 000017
【図２】
2009534721.tif 000018
【図３】
2009534721.tif 000019
【図４】
2009534721.tif 000020
【図５】
2009534721.tif 000021
【図６】
2009534721.tif 000022
【図７】
2009534721.tif 000023
【図８】
2009534721.tif 000024
【図９】
2009534721.tif 000025
【国際調査報告】
2009534721.tif 000026
2009534721.tif 000027
2009534721.tif 000028