JP5086274B2 - 共通因数を用いる変換 - Google Patents

共通因数を用いる変換 Download PDF

Info

Publication number
JP5086274B2
JP5086274B2 JP2008550522A JP2008550522A JP5086274B2 JP 5086274 B2 JP5086274 B2 JP 5086274B2 JP 2008550522 A JP2008550522 A JP 2008550522A JP 2008550522 A JP2008550522 A JP 2008550522A JP 5086274 B2 JP5086274 B2 JP 5086274B2
Authority
JP
Japan
Prior art keywords
group
multiplication
constant
rational
rational dyadic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008550522A
Other languages
English (en)
Other versions
JP2009534721A (ja
Inventor
レズニク、ユリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009534721A publication Critical patent/JP2009534721A/ja
Application granted granted Critical
Publication of JP5086274B2 publication Critical patent/JP5086274B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4836Computations with rational numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Discrete Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

関連文献
[米国特許法35§119による優先権の主張]
本出願は、米国特許仮出願番号第60/758,464号、名称“スケーリングされた離散余弦変換(DCT)及び逆離散余弦変換(IDCT)の効率的な乗算なしの実施形態(Efficient Multiplication-Free Implementations of Scaled Discrete Cosine Transform (DCT) and Inverse Discrete Cosine Transform (IDCT))”、2006年1月11日出願、に優先権を主張し、本出願の譲受人に譲渡され、そして本明細書中に引用によって取り込まれている。
本発明は、一般にデータの処理に係わり、そしてより詳しくはデータに変換を実行するための技術に関する。
変換は、一般に1つのドメインから別のドメインへとデータを転換させるために使用される。例えば、離散余弦変換(DCT:discrete cosine transform)は、空間ドメインから周波数ドメインへとデータを変換するために一般に使用され、そして逆離散余弦変換(IDCT:inverse discrete cosine transform)は、周波数ドメインから空間ドメインへとデータを変換するために一般に使用される。DCTは、画像又はビデオ・フレーム中の画像要素(ピクセル)を空間的に相関付けされていないブロックへの画像/ビデオ圧縮のために広く使用されている。結果としての変換係数は、一般的に互いにほとんど依存せず、それはこれらの係数を量子化及びエンコーディングのためにより適したものにする。DCTは、しかもエネルギー圧縮特性を示し、それはピクセルのブロックの大部分のエネルギーをわずかな(代表的に低次の)変換係数にだけマッピングする能力である。このエネルギー圧縮特性は、エンコーディング・アルゴリズムのデザインを単純化することができる。
DCTとIDCTのような変換は、大量のデータに実行されることができる。これゆえ、可能な限り効率的に変換を実行することが望ましい。その上、コストと複雑性を低減するために、簡単なハードウェアを使用して変換のための計算を実行することが望ましい。
それゆえ、データの変換を効率的に実行するための技術に対するこの分野における必要性がある。
サマリー
データの変換を効率的に実行するための技術が、本明細書中に記述される。ある態様によれば、装置は、少なくとも1つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行する。本装置は、さらに、少なくとも1つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行する。各有理数ダイアディック定数は、ダイアディック分母を有する有理数である。少なくとも1つのデータ値の第1と第2グループとは、異なるサイズを有する。例えば、第1グループは、2つのデータ値を含むことができ、そして第2グループは、4つのデータ値を含むことができる。
別の1つの態様によれば、装置は、少なくとも1つのデータ値と、共通因数によりスケーリングされた少なくとも1つの無理数定数を近似する少なくとも1つの有理数ダイアディック定数との乗算を実行する。その共通因数は、該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算のための論理演算と算術演算の数に基づいて選択される。論理演算と算術演算は、シフト演算、減算演算、及び加算演算を備えることができる。共通因数は、さらに結果の精度に基づいて選択されることができる。
本発明の様々な態様及び特徴は、下記にさらに詳細に説明される。
詳細な説明
本明細書中に記載される技術は、様々なタイプの変換、例えば、DCT、IDCT、離散フーリエ変換(DFT:discrete Fourier transform)、逆DFT(IDFT)、変調ラップ変換(MLT:modulated lapped transform)、逆MLT、変調複素ラップ変換(MCLT:modulated complex lapped transform)、逆MCLT、等、に対して使用されることができる。本技術は、同様に様々なアプリケーション、例えば、画像処理、ビデオ処理、オーディオ処理、通信、計算、データ・ネットワーキング、データ記憶、グラフィックス、等、に対して使用されることができる。一般に、本技術は、変換を使用する任意のアプリケーションに対して使用されることができる。明確さのために、本技術は、DCTとIDCTに対して以下に説明され、それは画像処理及びビデオ処理において普通に使用される。
タイプIIの1次元(1D)N−点DCTと1D N−点IDCTは、次式のように定義されることができる:
Figure 0005086274
x[n]は、1D空間ドメイン関数であり、そして
X[k]は、1D周波数ドメイン関数である。
式(1)の1D DCTは、N個の空間ドメイン値x[0]からx[N−1]について演算し、そしてN個の変換係数X[0]からX[N−1]を生成する。式(2)の1D IDCTは、N個の変換係数について演算し、そしてN個の空間ドメイン値を生成する。タイプII DCTは、変換の1つのタイプであり、そして画像/ビデオ圧縮のために提案された複数のエネルギー圧縮変換の中で最も効率的な変換のうちの1つであると一般に信じられている。
1D DCTは、下記に記述されるように、2つの2D DCTに対して使用されることができる。同様に、1D IDCTは、2D IDCTに対して使用されることができる。2D DCT/IDCTを1D DCT/IDCTのカスケードへと分解することにより、2D DCT/IDCTの効率は、1D DCT/IDCTの効率に依存する。一般に、1D DCTと1D IDCTは、任意のベクトル・サイズについて実行されることができ、そして2D DCTと2D IDCTは、任意のブロック・サイズについて実行されることができる。しかしながら、8×8DCTと8×8IDCTは、一般に画像及びビデオ処理に対して使用されることができる、そこでは、Nは8に等しい。例えば、8×8DCTと8×8IDCTは、様々な画像及びビデオ・コーディング規格、例えば、JPEG、MPEG−1、MPEG−2、MPEG−4(P.2)、H.261、H.263、等、における標準基礎単位ブロックとして使用される。
1D DCTと1D IDCTは、それぞれ式(1)と(2)に示されるそれらの元々の形式で実施されることができる。しかしながら、計算上の複雑さの実質的な低減は、可能な限り少ない乗算と加算を結果としてもたらす因数分解(factorization)を見出すことにより実現されることができる。変換のための因数分解は、フロー・グラフにより表わされることができ、それはその変換のために実行されるべき明細な演算を指示する。
図1は、8−点IDCTの一例の因数分解のフロー・グラフ100を示す。フロー・グラフ100では、各加算は、次のシンボルにより表わされ、
Figure 0005086274
そして、各乗算は、四角により表わされる。各加算は、2つの入力値を合計する又は引き算し、そして出力値を与える。各乗算は、入力値と四角の内側に示される変換定数とを掛け算する。図1における因数分解は、次の定数の因数を用いる6の乗算を有する:
Figure 0005086274
フロー・グラフ100は、8個のスケーリングされた変換係数A・X[0]からA・X[7]を受け取り、これらの係数に8−点IDCTを実行し、そして8個の出力サンプルx[0]からx[7]を生成する。AからAは、スケーリング因数であり、そして次式で与えられる:
Figure 0005086274
フロー・グラフ100は、複数のバタフライ演算を含む。バタフライ演算は、2つの入力値を受け取り、そして2つの出力値を生成する、ここで、1つの出力値は、その2つの入力値の合計であり、そして他の出力値は、2つの入力値の差である。例えば、入力値A・X[0]とA・X[4]についてのバタフライ演算は、上の分岐に対して出力値A・X[0]+A・X[4]をそして下の分岐に対して出力値A・X[0]−A・X[4]を生成する。
図2は、8−点DCTの一例の因数分解のフロー・グラフ200を示す。フロー・グラフ200は、8個の入力サンプルx[0]からx[7]を受け取り、これらの入力サンプルについて8−点DCTを実行し、そして8個のスケーリングされた変換係数8A・X[0]から8A・X[7]を生成する。スケーリング因数AからAは、上記で与えられる。図2のおける因数分解は、定数の定数1/Cπ/4、2C3π/8と2S3π/8を用いる6個の乗算を有する。
図1と図2のIDCTとDCTに関するフロー・グラフは、類似しており、そして基本的に同じ定数の因数(1/2の違いを有する)による乗算を含む。そのような類似性は、集積回路上でのDCTとIDCTとの実行のために有利であり得る。特に、その類似性は、変換定数によるバタフライ及び乗算を実行するためのシリコンの面積すなわちダイ面積を節約することを可能にすることができ、それは正変換と逆変換の両者において使用される。
図1に示される因数分解は、合計6の乗算と28の加算を結果としてもたらし、それらは式(2)の直接計算のために必要とされる乗算と加算の数よりも実質的に少ない。図2に示される因数分解も、同様に、合計6の乗算と28の加算を結果としてもたらし、それらは式(1)の直接計算のために必要とされる乗算と加算の数よりも実質的に少ない。図1の因数分解は、C3π/8とS3π/8を用いて2つの中間変数に平面回転を実行する。図2の因数分解は、2C3π/8と2S3π/8を用いて2つの中間変数に平面回転を実行する。平面回転は、サインとコサイン、例えば、図1におけるcos(3π/8)とsin(3π/8)、の両方を用いて中間変数を掛け算することによって実現される。平面回転のための乗算は、以下に説明される計算技術を使用して効率的に実行されることができる。
図1と図2は、それぞれ8−点IDCTと8−点DCTの因数分解の例を示す。これらの因数分解は、スケーリングされたIDCTとスケーリングされたDTCに対してであり、ここで、“スケーリングされた”は、それぞれ既知のスケーリング因数AからAを用いる変換係数X[0]からX[7]のスケーリングを呼ぶ。他の因数分解は、同様に、クーリー・チューキー(Cooley-Tukey)DFTアルゴリズムのような他の公知の高速アルゴリズムへのマッピングを使用することにより、若しくは時間を削減する又は周波数を削減するような系統的な因数分解手順を適用することにより、導出されてきている。一般に、因数分解は、乗算の数を削減させるが、それらを無くさない。
図1と図2の乗算は、異なる角度のサインとコサインを表している無理数定数を用い、それは8−点DCTとIDCTに関するπ/8の倍数である。無理数定数は、2つの整数の比ではない定数である。無理数定数を用いる乗算は、各無理数定数が有理数ダイアディック定数によって近似されるとき、固定小数点整数計算でさらに効率的に実行されることができる。有理数ダイアディック定数は、ダイアディック分母を有する有理数定数であり、そしてc/2の形式を有する、ここで、bとcは整数であり、そしてb>0である。整数変数と有理数ダイアディック定数との乗算は、下に記述されるように、論理演算と算術演算を用いて実現される。論理演算と算術演算の数は、計算が実行される方式、同様に有理数ダイアディック定数の値に依存する。
ある態様では、共通因数は、変換のための演算の総数を削減するために、及び/又は変換結果の精度を向上させるために使用される。共通因数は、変換において1又はそれより多くの中間変数に適用される定数である。中間変数は、しかもデータ値、等とも呼ばれることがある。共通因数は、1又はそれより多くの変換定数で吸収されることができ、そして1又はそれより多くのスケーリング因数を変えることにより説明されることができる。共通因数は、1又はそれより多くの有理数ダイアディック定数により1又はそれより多くの(無理数)変換定数の近似を改善することができ、それは次に、演算の総数の削減及び/又は精度の向上を結果としてもたらすことができる。
一般に、任意の個数の共通因数が、変換のために使用されることができ、そして各共通因数は、変換において任意の数の中間変数に適用されることができる。1つのデザインでは、複数の共通因数が、変換のために使用されることができ、そして異なるサイズの中間変数の複数のグループに適用される。別の1つのデザインでは、複数の共通因数が、同じサイズの中間変数の複数のグループに適用される。
図3は、共通因数を用いる8−点IDCTのフロー・グラフ300を示す。フロー・グラフ300は、図1のフロー・グラフ100と同じ因数分解を使用する。しかしながら、フロー・グラフ300は、中間変数の2つのグループに対して2つの共通因数を使用する。
第1共通因数Fは、2つの中間変数XとXの第1グループに適用される、それらは変換係数X[2]とX[6]に基づいて生成される。第1共通因数Fは、Xと掛け算され、変換定数Cπ/4で吸収され、そしてスケーリング因数AとAとを変更することにより説明される。第2共通因数Fは、4つの中間変数XからXの第2グループに適用され、それらは変換係数X[1]、X[3]、X[5]とX[7]に基づいて生成される。第2共通因数Fは、Xと掛け算され、変換定数Cπ/4、C3π/8とS3π/8で吸収され、そしてスケーリング因数A,A,AとAを変更することにより説明される。
第1共通因数Fは、有理数ダイアディック定数αを用いて近似されることができ、それは積X・Fの近似値を求めるためにXと掛け算される。スケーリングされた変換因数F・Cπ/4は、有理数ダイアディック定数βを用いて近似されることができ、それは積X・F・Cπ/4の近似値を求めるためにXと掛け算されることができる。変更されたスケーリング因数A/Fは、変換係数X[2]に適用されることができる。変更されたスケーリング因数A/Fは、変換係数X[6]に適用されることができる。
第2共通因数Fは、有理数ダイアディック定数αを用いて近似されることができ、それは積X・Fの近似値を求めるためにXと掛け算される。スケーリングされた変換因数F・Cπ/4は、有理数ダイアディック定数βを用いて近似されることができ、それは積X・F・Cπ/4の近似値を求めるためにXと掛け算されることができる。スケーリングされた変換因数F・C3π/8は、有理数ダイアディック定数γを用いて近似されることができ、そしてスケーリングされた変換因数F・S3π/8は、有理数ダイアディック定数δを用いて近似されることができる。有理数ダイアディック定数γは、積X・F・C3π/8の近似値を求めるためにXと掛け算されることができ、そして同様に、積X・F・C3π/8の近似値を求めるためにXと掛け算されることができる。有理数ダイアディック定数δは、積X・F・S3π/8の近似値を求めるためにXと掛け算されることができ、そして同様に、積X・F・S3π/8の近似値を求めるためにXと掛け算されることができる。変更されたスケーリング因数A/F,A/F,A/FとA/Fは、それぞれ変換係数X[1],X[3],X[5]とX[7]に適用されることができる。
6つの有理数ダイアディック定数α、β、α、β、γとδは、6個の定数に対して定められることができ、次式の通りである:
Figure 0005086274
図4は、共通因数を用いる8−点DCTのフロー・グラフ400を示す。フロー・グラフ400は、図2のフロー・グラフ200と同じ因数分解を使用する。しかしながら、フロー・グラフ400は、中間変数の2つのグループに対して2つの共通因数を使用する。
第1共通因数Fは、2つの中間変数XとXの第1グループに適用され、それは変換係数X[2]とX[6]を生成するために使用される。第1共通因数Fは、Xと掛け算され、変換定数1/Cπ/4で吸収され、そしてスケーリング因数AとAを変更することにより説明される。第2共通因数Fは、4つの中間変数XからXの第2グループに適用され、それらは変換係数X[1]、X[3]、X[5]とX[7]を生成するために使用される。第2共通因数Fは、Xと掛け算され、変換定数1/Cπ/4、2C3π/8と2S3π/8で吸収され、そしてスケーリング因数A,A,AとAを変更することにより説明される。
第1共通因数Fは、有理数ダイアディック定数αを用いて近似されることができ、それは積X・Fの近似値を求めるためにXと掛け算されることができる。スケーリングされた変換因数F・Cπ/4は、有理数ダイアディック定数βを用いて近似されることができ、それは積X・F・Cπ/4の近似値を求めるためにXと掛け算されることができる。変更されたスケーリング因数A/FとA/Fは、それぞれ、変換係数X[2]とX[6]に適用されることができる。
第2共通因数Fは、有理数ダイアディック定数αを用いて近似されることができ、それは積X・Fの近似値を求めるためにXと掛け算される。スケーリングされた変換因数F・Cπ/4は、有理数ダイアディック定数βを用いて近似されることができ、それは積X・F・Cπ/4の近似値を求めるためにXと掛け算されることができる。スケーリングされた変換因数2F・C3π/8は、有理数ダイアディック定数γを用いて近似されることができ、そしてスケーリングされた変換因数2F・S3π/8は、有理数ダイアディック定数δを用いて近似されることができる。有理数ダイアディック定数γは、積2X・F・C3π/8の近似値を求めるためにXと掛け算されることができ、そして同様に、積2X・F・C3π/8の近似値を求めるためにXと掛け算されることができる。有理数ダイアディック定数δは、積2X・F・S3π/8の近似値を求めるためにXと掛け算されることができ、そして同様に、積2X・F・S3π/8の近似値を求めるためにXと掛け算されることができる。変更されたスケーリング因数A/F,A/F,A/FとA/Fは、それぞれ変換係数X[1],X[3],X[5]とX[7]に適用されることができる。
6つの有理数ダイアディック定数α、β、α、β、γとδは、6個の定数に対して定められることができ、次式の通りである:
Figure 0005086274
図3と図4は、それぞれ8−点IDCTと8−点DCTの特定の因数分解に対する共通因数の使用例を示す。共通因数は、DCTとIDCTの別の因数分解にそして同様に別のタイプの変換に対して使用されることができる。一般に、共通因数は、変換において少なくとも1つの中間変数のグループに適用されることができる。(複数の)中間変数のこのグループは、(例えば、図3に示されるような)入力値のグループから生成されることができる、又は(例えば、図4に示されるような)出力値のグループを生成するために使用されることができる。共通因数は、入力値又は出力値に適用されるスケーリング因数により説明されることができる。
複数の共通因数は、中間変数の複数のグループに適用されることができ、そして各グループは、任意の数の中間変数を含むことができる。グループの選択は、変換の因数分解のような様々な要因に依存することがあり、そこでは、変換定数が変換の内部に位置する、等である。複数の共通因数は、(図3と図4には示されない)同じサイズ又は(図3と図4に示されるような)異なるサイズの中間変数の複数のグループに適用されることができる。例えば、3つの共通因数は、図3に示される因数分解に対して使用されることができ、中間変数XとXに適用される第1共通因数、中間変数X,X,XとXに適用される第2共通因数、そしてX[0]とX[4]から生成された2つの中間変数に適用される第3共通因数を有する。
中間変数xと有理数ダイアディック定数uとの乗算は、固定小数点整数計算において様々な方式で実行されることができる。乗算は、論理演算(例えば、左シフト、右シフト、ビット反転、等)、算術演算(例えば、加算、減算、符号反転、等)、及び/又は他の演算を使用して実行されることができる。xとuとの乗算のために必要な論理演算と算術演算の数は、計算が実行される方法、及び有理数ダイアディック定数uの値に依存する。別の計算技術は、xとuとの同じ乗算のために異なる数の論理演算と算術演算を必要とすることがある。所与の計算技術は、xと別のuの値との乗算のために異なる数の論理演算と算術演算を必要とすることがある。
共通因数は、例えば下記のような基準に基づいて中間変数のグループに対して選択されることができる:
・乗算を実行するための論理演算と算術演算の数、及び
・結果の精度。
一般に、中間変数と有理数ダイアディック定数との乗算のための論理演算と算術演算の数を最小にすることは、望ましい。ある複数のハードウェア・プラットフォーム上では、算術演算(例えば、加算)は、論理演算よりもさらに複雑であることがあり、そのため算術演算の数を減少させることは、より重要であり得る。極端な場合には、計算上の複雑性は、論理演算を考慮せずに、算術演算の数だけに基づいて定量化されることがある。ある複数の別のハードウェア・プラットフォーム上では、論理演算(例えば、シフト)は、より費用がかかることがあり、論理演算の数を減少させること(例えば、シフト演算の数及び/又はシフトされるビットの総数を減少させること)が、より重要であり得る。一般に、論理演算と算術演算の加重平均数が使用されることができ、そこでは、加重は、論理演算と算術演算の相対的な複雑性を表すことができる。
結果の精度は、下記の表6に与えられるもののような様々な測定基準に基づいて定量化されることができる。一般に、所定の精度に対して論理演算と算術演算の数(すなわち、計算上の複雑さ)を減少させることが望ましい。しかも、例えば、複数の追加の演算の犠牲を払って高い精度を達成するために、複雑性と精度とをトレード・オフすることが、望ましいことがある。
図3と図4に示されたように、各共通因数に対して、乗算は、中間変数のグループと有理数ダイアディック定数のグループとについて実行されることができ、その有理数ダイアディック定数はその共通因数によりスケーリングされた(少なくとも1つの変換因数のための)少なくとも1つの無理数定数のグループを近似する。固定小数点整数計算での乗算は、様々な方法で実行されることができる。明確さのために、シフト演算と加算演算とを用いそして中間結果を使用して乗算を実行する計算技術が、下記に記述される。これらの計算技術は、DCTとIDCTのためのシフト演算と加算演算の総数を削減することができる。
固定小数点整数計算における整数変数xと無理数定数μとの乗算は、有理数ダイアディック定数を用いて無理数定数を近似することによって実現されることができ、次式の通りである:
μ≒c/2 式(5)
ここで、μは、近似されようとしている無理数定数であり、c/2は、有理数ダイアディック定数であり、bとcは整数であり、そしてb>0である。
整数変数xと有理数ダイアディック定数u=c/2が与えられると、整数値の積
y=(x・c)/2 式(6)
は、中間値の系列
,y,y,...,y, 式(7)
を使用して近似されることができ、ここで、y=0、y=xであり、そして全ての2≦i≦tの値に対して、yは次式として求められる:
=±y±y・2Si, j,k<iで、 式(8)
ここで、y・2Siは、|s|ビットだけ(定数sの符号に応じて)中間値yの左シフト又は右シフトのいずれかを意味する。
式(8)では、yjは、y+y・2Si,y−y・2Si,又は−y+y・2Siに等しいことがある。系列の各中間値yは、その系列中の2つの前の中間値yとyに基づいて導出されることができ、ここで、y又はyのいずれかはゼロに等しいことがある。各中間値yは、1つのシフト及び/又は1つの加算で得られることがある。このシフトは、sがゼロに等しい場合には、必要とされない。加算は、もしy=y0=0であれば、必要とされない。乗算のための加算とシフトの総数は、その系列中の中間値の数、それはtである、と同様に各中間値に対して使用される数式の数、により決定される。有理数ダイアディック定数uによる乗算は、シフト演算と加算演算の系列へと本質的に展開される。その系列は、その系列中の最終値が所望の整数値である積になる、すなわち次式である:
≒y 式(9)。
式(5)から式(9)に示されるように、整数変数xと無理数定数μとの乗算は、シフト演算と加算演算により生成される中間値の系列を用いて、そして中間結果(すなわち、前に生成された中間値)を使用して近似されることができ、演算の総数を減少させる。
固定小数点整数計算において整数変数xと2つの無理数定数μ及びηとの乗算は、有理数ダイアディック定数を用いて無理数定数を近似することにより実現されることができ、次式の通りである:
μ≒c/2 そして η≒e/2, 式(10)
ここで、c/2とe/2は、2つの有理数ダイアディック定数であり、b、c、dとeは整数であり、b>0そしてd>0である。
整数変数x及び有理数ダイアディック定数u=c/2とv=e/2が与えられると、2つの整数値にされた積
y=(x・c)/2 そして z=(x・e)/2 式(11)
は、中間値
,w,w,...,w, 式(12)
の系列を使用して近似されることができる、ここで、w=0、w=xであり、そして全ての2≦i≦tの値に対して、wは次式のように求められる:
=±w±w・2Si, j,k<iで、 式(13)
ここで、w・2Siは、wを|s|ビットだけ左シフト又は右シフトのいずれかを意味する。所望の整数値にされた積がステップmとnにおいて求められるように、その系列は定義され、次式の通りである:
≒y そして w≒z 式(14)
ここで、m,n≦tそしてm又はnのいずれかはtに等しい。
式(10)から(14)に示されたように、整数変数xと無理数定数μ及びηとの乗算は、シフト演算と加算演算により生成される中間値の共通系列を用いてそして中間結果を使用して近似されることができて、演算の総数を減少させることができる。
上に記述された計算では、ゼロの加算と減算及びゼロ・ビットのシフトのような自明な演算は、省略されることができる。次の単純化が行われることができる:
=±y±y・2Si ⇒ y=±y・2Si 式(15)
=±y±y・2 ⇒ y=±y±y 式(16)。
式(15)では、“⇒”の左側の表式は、ゼロ(yにより記される)の加算又は減算を含み、そして“⇒”の右側の表式により示されるように、1つのシフトを用いて実行されることができる。式(16)では、“⇒”の左側の表式は、ゼロ・ビット(2により記される)のシフトを含み、そして“⇒”の右側の表式により示されるように、1つの加算を用いて実行されることができる。式(15)と(16)は、yの計算において式(8)に適用されることができ、同様にwの計算において式(13)に適用されることができる。
図1から図4の乗算は、上に記述された計算技術を使用して効率的に実行されることができる。図1では、固定小数点整数計算での整数変数xと変換定数Cπ/4との乗算は、有理数ダイアディック定数を用いて定数Cπ/4を近似することにより実現されることができ、次式の通りである:
Figure 0005086274
ここで、C π/4はCπ/4の8−ビット近似値である有理数ダイアディック定数である。
定数C π/4による整数変数xの乗算は、次式のように表わされることができる:
y=(x・181)/256 式(18)。
式(18)中の乗算は、下記の一連の演算を用いて実現されることができる:
=x, //1 式(19)
=y+(y>>2), //101
=y−(y>>2), //01011
=y+(y>>6), //010110101
“//”の右側の2進数値は、変数xと掛け算される中間定数である。
望ましい積は、yに等しい、すなわち、y=yである。式(18)中の乗算は、3つの乗算と3つのシフトを用いて実行されることができ、3つの中間値y,yとyを生成する。
図1では、固定小数点整数計算における整数変数xと変換定数C3π/8及びS3π/8との乗算は、有理数ダイアディック定数を用いて定数C3π/8とS3π/8を近似することにより実現されることができ、次の通りである:
Figure 0005086274
ここで、C 3π/8は、C3π/8の7−ビット近似である有理数ダイアディック定数であり、そして
3π/8は、S3π/8の9−ビット近似である有理数ダイアディック定数である。
定数C 3π/8及びS 3π/8による整数変数xの乗算は、次のように表わされることができる:
y=(x・49)/128 そして z=(x・473)/512 式(22)。
式(22)中の乗算は、下記の一連の演算を用いて実現されることができる:
=x, //1 式(23)
=w−(w>>2), //011
=w>>6, //0000001
=w+w, //0110001
=w−w, //0111111
=w>>1, //00110001
=w−(w>>4), //0111011
=w+(w>>9), //0111011001。
望ましい積は、wとwに等しい、すなわち、w=yとw=zである。式(22)中の2つの乗算は、5つの加算と5つのシフトを用いて一緒に実行されることができ、7つの中間値wからwを生成する。ゼロの加算は、wとwの生成において省略される。ゼロのシフトは、wとwの生成において省略される。
図1に示された8−点IDCTに関して、定数C π/4、C 3π/8とS 3π/8による乗算に関する上に記述した計算技術を使用して、8−ビット精度のための全体の複雑さは、28+3・2+5・2=44の加算と3・2+5・2=16のシフトとして与えられる。一般に、任意の所望の精度は、各変換定数の近似のために十分な数のビットを使用することにより実現されることができる。
図2に示された8−点DCTに関して、無理数定数1/Cπ/4、C3π/8とS3π/8は、有理数ダイアディック定数を用いて近似されることができる。有理数ダイアディック定数を用いる乗算は、上に記述された計算技術を使用して実現されることができる。
図3に示されたIDCTに関して、共通因数FとFの異なる値は、IDCTのための論理演算と算術演算の異なる総数に、そして出力サンプルx[0]からx[7]に対する異なるレベルの精度に結果としてなることがある。FとFの値の異なる組み合わせが、評価されることができる。値のそれぞれの組み合わせに対して、IDCTのための論理演算と算術演算の総数と出力サンプルの精度が、決定されることができる。
の所与の値に対して、有理数ダイアディック定数αとβは、それぞれFとF・Cπ/4とに対して求められることができる。論理演算と算術演算の数は、次に、Xとαとの乗算及びXとβとの乗算に対して決定されることができる。Fの所与の値に対して、有理数ダイアディック定数α,β,γとδは、それぞれF,F・Cπ/4,F・C3π/8とF・S3π/8とに対して求められることができる。論理演算と算術演算の数は、次に、Xとαとの乗算、Xとβとの乗算、そしてXとγ及びδの両方との乗算に対して決定されることができる。Xとγ及びδとの乗算のための演算の数は、Xとγ及びδとの乗算のための演算の数に等しい。
共通因数の評価と選択を容易にするために、論理演算と算術演算の数は、有理数ダイアディック定数の異なる可能な値との乗算のために事前に計算されることができる。事前に計算された論理演算と算術演算の数は、ルック−アップ・テーブル又はある別のデータ構造中に記憶されることができる。
図5は、異なる有理数ダイアディック定数値を用いる乗算のための論理演算と算術演算の数を記憶するルック−アップ・テーブル500を示す。ルック−アップ・テーブル500は、横軸に第1有理数ダイアディック定数Cの異なる可能な値を、縦軸に第2有理数ダイアディック定数Cの異なる可能な値を有する2次元の表である。各有理数ダイアディック定数に対する異なる可能な値は、その定数に対して使用されるビット数に依存する。例えば、Cが13ビットで表わされる場合、その時にはCに対する8192の可能な値がある。各有理数ダイアディック定数に対する可能な値は、c,c,c,...,cとして表わされ、ここで、c=0、cは最小のゼロでない値であり、そしてcは最大値(例えば、13−ビットに対してc=8191)である。
ルック−アップ・テーブル500のi番目の列とj番目の行の記載は、第1有理数ダイアディック定数Cに対するc及び第2有理数ダイアディック定数Cに対するcの両方と中間変数xとの複合乗算のための論理演算と算術演算の数を含む。ルック−アップ・テーブル500中の各記載の値は、その記載のためのcとcとを用いる複合乗算に対する中間値の異なる可能な系列を評価することによりそして最善の系列、例えば、最も少ない演算を有する系列、を選択することにより決定されることができる。(第2有理数ダイアディック定数Cに対してc=0を有する)ルック−アップ・テーブル500の第1行中の記載は、中間変数xと第1有理数ダイアディック定数Cだけとの乗算に対する演算の数を含む。ルック−アップ・テーブルが対称的であるので、(例えば、主対角線の上又は下の)表の半分の記載だけが、埋められることがある。その上、埋めるべき記載の数は、有理数ダイアディック定数CとCを用いて近似される無理数定数を考慮することによって削減されることができる。
の所与の値に対して、有理数ダイアディック定数αとβは、決定されることができる。Xとαとの乗算及びXとβとの乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル500の第1行の記載から容易に決定されることができ、そこでは、αとβはCに対応する。同様に、Fの所与の値に対して、有理数ダイアディック定数α,β,γとδは、決定されることができる。Xとαとの乗算及びXとβとの乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル500の第1行の記載から容易に決定されることができ、そこでは、αとβはCに対応する。Xとγ及びδとの複合乗算のための論理演算と算術演算の数は、ルック−アップ・テーブル500中の適切な記載から決定されることができ、そこでは、γはCに対応することができ、そしてδはCに対応することができる、又はその逆である。
とFとに対する値の可能な組み合わせのそれぞれに関して、表6中の精度測定基準は、異なるランダムな入力データを用いる十分な数の繰り返しに対して決定されることができる。悪い精度(例えば、不十分な測定基準)を結果としてもたらすFとFの値は、破棄されることができ、そして良い精度(例えば、十分な測定基準)を結果としてもたらすFとFの値は、維持されることができる。
表1から表5は、図3のIDCTのための5つの固定小数点近似を示し、それらはアルゴリズムA,B,C,DとEとして示される。これらの近似は、2つのグループの定数に対するものであり、1つのグループはαとβとを含み、そして別の1つのグループはα,β,γとδとを含む。表1から表5のそれぞれに関して、各グループの共通因数は、第1列に与えられる。共通因数は、有理数ダイアディック定数近似の精度を向上させ、そしてIDCTに関するフロー・グラフ中の適切な複数のスケーリング因数と統合されることができる。元々の値(それは1又は無理数定数であり得る)は、第3列に与えられる。自身の共通因数によりスケーリングされた元々の値のそれぞれに対する有理数ダイアディック定数は、第4列に与えられる。整数変数xと1又はそれより多くの有理数ダイアディック定数との乗算に関する中間値の系列は、第5列に与えられる。各乗算のための加算演算とシフト演算の数は、それぞれ第6列と第7列に与えられる。IDCTのための加算演算の総数は、第6列の全ての加算演算、プラス、(X及びXのそれぞれとγ及びδの両方との乗算を考慮して)再び最後の記載、プラス、フロー・グラフ中の全てのバタフライのための28の加算演算、の合計に等しい。IDCTのためのシフト演算の総数は、最後の列の全てのシフト演算、プラス、再び最後の記載、の合計に等しい。
表1は、アルゴリズムAの詳細を与え、それは2つのグループのそれぞれに対して1/1.0000442471の共通因数を使用する。
Figure 0005086274
表2は、アルゴリズムBの詳細を与え、それは第1グループに対して1/1.0000442471の共通因数を、そして第2グループに対して1/1.02053722659の共通因数を使用する。
Figure 0005086274
表3は、アルゴリズムCの詳細を与え、それは第1グループに対して1/0.88734890555の共通因数を、そして第2グループに対して1/1.02053722659の共通因数を使用する。
Figure 0005086274
表4は、アルゴリズムDの詳細を与え、それは第1グループに対して1/0.88734890555の共通因数を、そして第2グループに対して1/0.89062054308の共通因数を使用する。
Figure 0005086274
表5は、アルゴリズムEの詳細を与え、それは第1グループに対して1/0.88734890555の共通因数を、そして第2グループに対して1/1.22387468002の共通因数を使用する。
Figure 0005086274
近似IDCTからの出力サンプルの精度は、IEEE規格1180−1190に規定された測定基準及び審議中のその置き換え案に基づいて定量化されることができる。この規格は、基準64−ビット浮動小数点DCTを、引き続いて乱数発生器からのデータを使用する近似IDCTを試験することを規定する。基準DCTは、入力ピクセルのブロックに対するランダムなデータを受け取り、そして変換係数を生成する。近似IDCTは、(適切に丸められた)変換係数を受け取り、そして再生されたピクセルのブロックを生成する。再生されたピクセルは、5つの測定基準を使用して入力ピクセルに対して比較され、それらの測定基準は、表6に与えられている。それに加えて、近似IDCTは、ゼロ変換係数を供給されたときに全てゼロを生成するために、そしてDCに近い反転挙動を例証するために必要とされる。上に与えられたAからEの全ての5つのアルゴリズムは、表6中の測定基準の全てに合格する。
Figure 0005086274
図3に示された1D IDCTは、2D IDCTに対して使用されることができる。同様に、図4に示された1D DCTは、2D DCTに対して使用されることができる。
図6は、スケーリングされそして分離できる方式で実行される2D IDCT600のデザインを示す。2D IDCT600は、入力スケーリング・ステージ612、列(又は行)に対する第1のスケーリングされた1D IDCTステージ614が続き、さらに行(又は列)に対する第2のスケーリングされた1D IDCTステージ616が続き、そして出力スケーリング・ステージ618で締め括る。入力スケーリング・ステージ612は、変換係数の8×8ブロックを受け取り、そして各変換係数を定数C=2により事前に掛け算することができる、又は各変換係数を左へPビットだけシフトすることができる、ここで、Pは確保された“仮数”ビットの数を表す。スケーリングの後で、2P−1の量は、DC変換係数に加算されることができ、出力サンプルの妥当な丸めを実現する。スケーリングの精度を向上させるために、S=P+Rビットは、整数へのスケーリング因数の変換の際に使用されることができ、そしてRビットの右シフトは、乗算の後で実行されることができる。Sは、ハードウェア・プラットフォーム上での実行を容易にすることが可能な任意の適切な値であり得て、例えば、Sは符号有り/符号なしの16−ビット乗数を用いるプラットフォームに対して15又は16であり得る。
第1の1D IDCTステージ614は、スケーリングされた変換係数のブロックの各列に8−点IDCTを実行する。第2の1D IDCTステージ616は、第1の1D IDCTステージ614により生成された中間ブロックの各行に8−点IDCTを実行する。第1及び第2ステージに対する1D IDCTは、いずれかの内部的な事前のスケーリング又は事後のスケーリングを行うことなくそれらの入力データに直接演算することができる。行と列の両方が処理された後で、出力スケーリング・ステージ618は、第2の1D IDCTステージ616からの結果の量を右へPビットだけシフトすることができ、2D IDCTに対する出力サンプルを生成する。スケーリング因数と精度定数Pは、全体の2D IDCTが所望の幅のレジスタを使用して実行され得るように選択されることができる。
2D DCTは、2D IDCTと類似の方法で実行されることができる。2D DCTは、(a)空間ドメイン・サンプルのブロックを事前に掛け算すること、(b)スケーリングされたサンプルのブロックの各列(又は各行)に1D DCTを実行して中間ブロックを生成すること、(c)中間ブロックの各行(又は各列)に1D DCTを実行すること、そして(d)第2の1D DCTステージの出力をスケーリングして2D DCTに対する変換係数のブロックを生成すること、により実行されることができる。
明確化のために、上記の記述の多くは、8−点のスケーリングされたIDCT及び8−点のスケーリングされたDCTに対してである。本明細書中に記述される技術は、任意のタイプの変換に対して使用されることができ、例えば、DCT,IDCT,DFT,IDFT,MLT,逆MLT,MCLT,逆MCLT、等である。本技術は、図1から図4に与えられている複数の例の因数分解を用いる、変換の任意の因数分解に対しても同様に使用されることができる。共通因数のグループは、上に説明されたように、因数分解に基づいて選択されることができる。本技術は、図1から図4に与えられている例の8−点変換を用いる任意のサイズの変換に対しても同様に使用されることができる。本技術は、しかも、任意の共通因数選択基準、例えば、論理演算と算術演算の総数、算術演算の総数、結果の精度、等、とともに使用されることができる。
変換のための演算の数は、乗算が実行される方式に依存することがある。上に説明された計算技術は、乗算を一連のシフト演算と加算演算へと展開し、演算の数を削減させるために中間結果を使用し、そして共通系列を使用する複数の定数を用いて複合乗算を実行する。乗算は、他の計算技術を用いて同様に実行されることができ、それは共通因数の選択に影響することがある。
本明細書中に記述された共通因数を用いる変換は、ある種の利点を与えることができ、例えば下記のものである:
・スケーリングされた段階で統合された乗算のために乗算の複雑性を低下させること、
・JPEG,H.263,MPEG−1,MPEG−2,MPEG−4(P.2)、及び他の規格の実施の際に量子化を用いるスケーリングを統合する能力による可能な複雑性の低減、及び
・スケーリング因数により考慮されることが可能な共通因数を導入することによって乗算において使用される無理数定数に対する固定小数点近似の誤差を最小にするための/分散させるための能力による精度の向上。
共通因数を用いる変換は、様々なアプリケーションに対して使用されることができ、例えば、画像及びビデオ処理、通信、計算、データ・ネットワーキング、データ記憶、グラフィックス、等である。ビデオ処理に対する変換の使用例が、以下に説明される。
図7は、画像/ビデオ・エンコーディング及びデコーディング・システム700のブロック図を示す。エンコーディング・システム710において、DCTユニット720は、入力データ・ブロックを受け取り、そして変換係数ブロックを生成する。入力データ・ブロックは、ピクセルのN×Nブロック、ピクセル差異値(すなわち残差)のN×Nブロック、ソース信号、例えば、ビデオ信号、から生成されるある別のタイプのデータ、であり得る。ピクセル差異値は、ピクセルの2つのブロック間の差異値、ピクセルのあるブロックと予測されるピクセルのブロックとの間の差異値、等、であり得る。Nは、8に等しい又はある別の値であり得る。エンコーダ730は、DCTユニット720から変換係数ブロックを受け取り、その変換係数をエンコードし、そして圧縮されたデータを生成する。圧縮されたデータは、記憶ユニットに記憶されることができるそして/又は通信チャネル(クラウド740)を介して送られることができる。
デコーディング・システム750において、デコーダ760は、記憶ユニット又は通信チャネル740から圧縮されたデータを受け取り、そして変換係数を再生する。IDCTユニット770は、その再生された変換係数を受け取り、そして出力データ・ブロックを生成する。出力データ・ブロックは、再生されたピクセルのN×Nブロック、再生されたピクセル差異値のN×Nブロック、等、であり得る。出力データ・ブロックは、DCTユニット720に与えられた入力データ・ブロックの推定値であり得て、そしてソース信号を再生するために使用されることができる。
図8は、エンコーディング・システム800のブロック図を示し、それは図7のエンコーディング・システム710に対して使用されることができる。取り込みデバイス/メモリ810は、ソース信号を受け取ることができ、ディジタル・フォーマットに変換することができ、そして入力/生データを提供する。取り込みデバイス810は、ビデオ・カメラ、ディジタイザ、又はある別のデバイスであり得る。プロセッサ820は、生データを処理し、そして圧縮されたデータを生成する。プロセッサ820の内部で、生データは、DCTユニット820により変換され、ジグ−ザグ・スキャン・ユニット824によりスキャンされ、コンタイザ826により量子化され、エントロピ・エンコーダ828によりエンコードされ、そしてパケッタイザ830によりパケット化されることができる。DCTユニット822は、上に説明された技術にしたがって生データに2D DCTを実行することができる。ユニット822から830のそれぞれは、ハードウェア、ファームウェア及び/又はソフトウェアを与えられることができる。例えば、DCTユニット822は、専用ハードウェア、算術論理ユニット(ALU)に対する命令の集合、等、で与えられることができる。
記憶ユニット840は、プロセッサ820からの圧縮されたデータを記憶することができる。送信機842は、圧縮されたデータを送信することができる。コントローラ/プロセッサ850は、エンコーディング・システム800中の様々なユニットの動作を制御する。メモリ852は、エンコーディング・システム800のためのデータとプログラム・コードを記憶する。1又はそれより多くのバス860は、エンコーディング・システム800内の様々なユニットを相互接続する。
図9は、デコーディング・システム900のブロック図を示し、それは図7のデコーディング・システム750に対して使用されることができる。受信機910は、エンコーディング・システムからの圧縮されたデータを受信し、そして記憶ユニット912は、受信した圧縮データを記憶することができる。プロセッサ920は、圧縮されたデータを処理し、そして出力データを生成する。プロセッサ920内では、圧縮されたデータは、デ−パケッタイザによりデ−パケット化され、エントロピー・デコーダ924によりデコードされ、逆コンタイザ926により逆量子化され、逆ジグ−ザグ・スキャン・ユニット928により適正な順番に置かれ、そしてIDCTユニット930によって変換されることができる。IDCTユニット930は、上に説明された技術にしたがって再生された変換係数に2D IDCTを実行することができる。ユニット922から930のそれぞれは、ハードウェア、ファームウェア及び/又はソフトウェアを与えられることができる。例えば、IDCTユニット930は、専用ハードウェア、ALUに対する命令の集合、等、で与えられることができる。
ディスプレイ・ユニット940は、プロセッサ920からの再生された画像とビデオを表示する。コントローラ/プロセッサ950は、デコーディング・システム900中の様々なユニットの動作を制御する。メモリ952は、デコーディング・システム900のためのデータとプログラム・コードを記憶する。1又はそれより多くのバス960は、デコーディング・システム900内の様々なユニットを相互接続する。
プロセッサ820と920は、1又はそれより多くの用途特定集積回路(ASICs:application specific integrated circuits)、ディジタル信号プロセッサ(DSPs:digital signal processors)、及び/又はある複数の別のタイプのプロセッサを用いてそれぞれ与えられることができる。あるいは、プロセッサ820と920は、1又はそれより多くのランダム・アクセス・メモリ(random access memory)(RAM)、読み出し専用メモリ(read only memory)(ROM)、電気的書き込み可能ROM(EPROM:electrically programmable ROM)、電気的消去可能ROM(EEPROM:electrically erasable PROM)、磁気ディスク、光ディスク、及び/又は本技術において公知の他のタイプの揮発性及び不揮発性メモリでそれぞれ置き換えられることができる。
本明細書中で記述された技術は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせで実行されることができる。例えば、データ値と定数値との乗算のための論理演算(例えば、シフト)と算術演算(例えば、加算)は、1又はそれより多くの論理回路、それは同様にユニット、モジュール、等とも呼ばれることができる、を用いて実行されることができる。論理回路は、論理ゲート回路、トランジスタ回路、及び/又は本技術において公知の他の回路を備えるハードウェア論理回路であり得る。論理回路は、同様に、機械読み取り可能なコードを備えるファームウェア及び/又はソフトウェア論理回路であり得る。
1つのデザインでは、装置は、少なくとも1つのデータ値の第1グループと、少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行する第1論理回路を具備し、その有理数ダイアディック定数は第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する。該装置は、少なくとも1つのデータ値の第2グループと、少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行する第2論理回路をさらに具備し、その有理数ダイアディック定数は第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する。少なくとも1つのデータ値の該第1グループと第2グループとは、異なるサイズを有する。該第1論理回路と第2論理回路は、別々の論理回路、同じ共通論理回路、又は共用される論理回路であり得る。
ファームウェア及び/又はソフトウェア実行に関して、データ値と定数値との乗算は、所望の論理演算と算術演算を実行する機械読み取り可能なコードを用いて実現されることができる。そのコードは、メモリ(例えば、図8のメモリ852又は図9のメモリ952)と配線で接続される又はメモリ中に記憶されることができ、そしてプロセッサ(例えば、プロセッサ850又は950)によって若しくはある別のハードウェア・ユニットによって実行されることができる。
本明細書中に記述される技術は、様々なタイプの装置で実施されることができる。例えば、本技術は、異なるタイプのプロセッサ、異なるタイプの集積回路、異なるタイプの電子デバイス、異なるタイプの電子回路、等、で実施されることができる。
情報及び信号が、様々な異なる技術及び技法のいずれかを使用して表わされることができることを、当業者は、理解するはずである。例えば、上記の記述の全体を通して参照されることができる、データ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁力粒子、光場又は光粒子、若しくはこれらの任意の組み合わせによって表わされることができる。
開示に関連して記述された様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムのステップが、電子ハードウェア、コンピュータ・ソフトウェア、又は両者の組み合わせとして与えられることができることを、当業者は、さらに認識するはずである。ハードウェアとソフトウェアのこの互換性を明確に説明するために、様々な例示的な複数の構成要素、ブロック、モジュール、回路、及びステップが、それらの機能性の面から一般的に上に説明されてきている。そのような機能性が、ハードウェア又はソフトウェアとして与えられるかどうかは、特定のアプリケーション及びシステム全体に課せられた設計の制約に依存する。知識のある者は、記述された機能性をそれぞれの特定のアプリケーションに対して違ったやり方で実行することができるが、そのような実行の判断は、開示された方法の範囲からの逸脱を生じさせるように解釈されるべきではない。
開示に関連して述べられた、様々な例示的な論理ブロック、モジュール、及び回路は、汎用プロセッサ、DSP、ASIC、フィールド・プログラマブル・ゲートアレイ(FPGA:field programmable gate array)又は他のプログラマブル論理デバイス、ディスクリート・ゲート論理回路又はトランジスタ論理回路、ディスクリート・ハードウェア・コンポーネント、又は本明細書中に説明された機能を実行するために設計されたこれらのいずれかの組み合わせで、与えられる又は実行されることができる。汎用プロセッサは、マイクロプロセッサであり得るが、しかし代わりに、プロセッサは、いずれかの従来型のプロセッサ、コントローラ、マイクロコントローラ、又はステート・マシンであり得る。プロセッサは、演算デバイスの組み合わせとして与えられることができる、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアとともに1又はそれより多くのマイクロプロセッサの組み合わせ、若しくはいずれかの別のそのような構成の組み合わせであり得る。
1又はそれより多くの具体例の実施形態では、説明された機能は、ハードウェアで、ソフトウェアで、ファームウェアで、又はそれらの任意の組み合わせで実行されることができる。ソフトウェアで実行される場合、その機能は、コンピュータ読取り可能な媒体上に記憶されることができる、又はその上の1又はそれより多くの命令又はコードを介して送信されることができる。コンピュータ読取り可能な媒体は、1つの場所から別の場所へのコンピュータ・プログラムの搬送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体との両者を含む。記憶媒体は、コンピュータによりアクセスされることが可能である任意の利用可能な媒体であり得る。例として、そして限定するのではなく、そのようなコンピュータ読取り可能な媒体は、RAM、ROM,EEPROM,CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気的な記憶デバイス、若しくは命令の形式で又はデータ構造の形式で所望のプログラミング・コードを搬送するため又は記憶するために使用されることが可能でありしかもコンピュータによりアクセスされることが可能であるいずれかの他の媒体、を具備することが可能である。しかも、任意の通信手段(connection)が、コンピュータ読取り可能な媒体と呼ばれる。例えば、ソフトウェアが、ウェブサイト、サーバ、又は他の遠隔ソースから、例えば、同軸ケーブル、光ファイバ・ケーブル、ツイスティッド・ペア(twisted pair)、ディジタル加入者回線(DSL:digital subscriber line)、又は赤外線、無線、又はマイクロ波のような無線技術を使用して送信される場合に、その同軸ケーブル、光ファイバ・ケーブル、ツイスティッド・ペア、DSL、又は赤外線、無線、又はマイクロ波のような無線技術は、媒体の定義に含まれる。本明細書中で使用されるように、ディスク(disk)とディスク(disc)は、コンパクト・ディスク(CD:compact disc)、レーザー・ディスク(disc)、光ディスク(disc)、ディジタル・バーサタイル・ディスク(DVD:digital versatile disc)、フロッピー(登録商標)ディスク(disk)、及びブルーレイ・ディスク(disc)を含み、ここで、ディスク(disk)は、通常磁気的にデータを再生する、ところがディスク(disc)は、レーザーを用いて光学的にデータを再生する。上記の組み合わせは、同様に、コンピュータ読取り可能な媒体の範囲内に含まれるべきである。
本開示のこれまでの説明は、当業者が、本開示を作成すること又は使用することを可能にするために提供される。本開示への様々な変形は、当業者に容易に明白にされるであろう、そして、ここで規定された一般的な原理は、本開示の精神又は範囲から逸脱することなく他の設計に適用されることがでる。それゆえ、本開示は、本明細書中に示された例に制限するように意図されるのではなく、本明細書中に開示された原理及び新奇な機能と整合する最も広い範囲に適用されるものである。
8−点IDCTのフロー・グラフを示す。 8−点DCTのフロー・グラフを示す。 共通因数を用いる8−点IDCTのフロー・グラフを示す。 共通因数を用いる8−点DCTのフロー・グラフを示す。 異なる有理数ダイアディック定数値を用いる乗算のための演算の数を記憶するルック−アップ・テーブルを示す。 2次元(2D)IDCTのブロック図を示す。 画像/ビデオ・エンコーディング及びデコーディング・システムのブロック図を示す。 エンコーディング・システムのブロック図を示す。 デコーディング・システムのブロック図を示す。

Claims (42)

  1. 少なくとも1つのプロセッサ;
    少なくとも1つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行するために該少なくとも1つのプロセッサを用いて実施される第1論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である;及び
    少なくとも1つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行するために該少なくとも1つのプロセッサを用いて実施される第2論理回路、ここにおいて、少なくとも1つのデータ値の該第1グループと該第2グループとは異なるサイズを有する、
    を具備し、
    該第1共通因数は、少なくとも1つのデータ値の該第1グループと少なくとも1つの有理数ダイアディック定数の該第1グループとの乗算のための論理演算の数を最小化するために選択され、該第2共通因数は、少なくとも1つのデータ値の該第2グループと少なくとも1つの有理数ダイアディック定数の該第2グループとの乗算のための論理演算の数を最小化するために選択され、
    さらに、該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該第1のグループの該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、装置。
  2. 少なくとも1つのデータ値の第3グループと、第3共通因数によりスケーリングされた少なくとも1つの無理数定数の第3グループを近似する少なくとも1つの有理数ダイアディック定数の第3グループとの乗算を実行するための第3論理回路、
    をさらに具備する、請求項1の装置。
  3. 少なくとも1つのデータ値の該第2グループは、少なくとも1つのデータ値の該第1グループのサイズの2倍である、請求項1の装置。
  4. 少なくとも1つのデータ値の該第1グループは、2つのデータ値を備え、そして少なくとも1つのデータ値の該第2グループは、4つのデータ値を備える、請求項1の装置。
  5. 少なくとも1つの無理数定数の該第1グループは、1つの無理数定数を備え、そして少なくとも1つの無理数定数の該第2グループは、3つの無理数定数を備える、請求項1の装置。
  6. 該第1グループ中の該無理数定数の数は、該第1グループ中の該有理数ダイアディック定数の数よりも少ない、請求項1の装置。
  7. 該第1論理回路は、該第1グループ中の第1データ値と、該第1共通因数を近似する第1有理数ダイアディック定数との乗算を実行し、そして該第1グループ中の第2データ値と、該第1共通因数によりスケーリングされた無理数定数を近似する第2有理数ダイアディック定数との乗算を実行する、請求項1の装置。
  8. 少なくとも1つの無理数定数の該第2グループは、第1と第2無理数定数とを備える、ここにおいて、少なくとも1つの有理数ダイアディック定数の該第2グループは、該第2共通因数によりスケーリングされた該第1無理数定数を近似する第1有理数ダイアディック定数と該第2共通因数によりスケーリングされた該第2無理数定数を近似する第2有理数ダイアディック定数とを備える、請求項1の装置。
  9. 該第2論理回路は、該第2グループ中のデータ値と該第1有理数ダイアディック定数との乗算を実行し、そして該データ値と該第2有理数ダイアディック定数との乗算を実行する、請求項8の装置。
  10. 該第2論理回路は、中間値の1つの系列を使用して、該第2グループ中のデータ値と該第1及び第2有理数ダイアディック定数との乗算を実行する、請求項8の装置。
  11. 該論理演算は、シフト演算を具備する、請求項の装置。
  12. 該第1及び第2共通因数は、該乗算からもたらされる結果に対する少なくとも1つの精度測定基準にさらに基づいて選択される、請求項の装置。
  13. 該第1共通因数は、少なくとも1つのデータ値の該第1グループと、該第1共通因数の異なる可能な値を用いて得られる少なくとも1つの有理数ダイアディック定数の該第1グループに対する異なる可能な値との乗算のための論理演算の該数を決定することにより選択される、請求項1の装置。
  14. 該第1グループ中のデータ値と該第1グループ中の有理数ダイアディック定数との乗算のために、該第1論理回路は、該データ値に基づいて中間値の系列を生成し、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有し、そして該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与える、請求項1の装置。
  15. 該第1及び第2論理回路は、線形変換のための該乗算を実行する、請求項1の装置。
  16. 該線形変換の結果を生成するために該第1及び第2論理回路の出力に基づいて少なくとも1つのバタフライ演算を実行するための第3論理回路をさらに具備する、請求項15の装置。
  17. 該第1及び第2論理回路は、離散余弦変換(DCT)のための該乗算を実行する、請求項1の装置。
  18. 該第1及び第2論理回路は、逆離散余弦変換(IDCT)のための該乗算を実行する、請求項1の装置。
  19. 該第1及び第2論理回路は、8−点離散余弦変換(DCT)のための又は8−点逆離散余弦変換(IDCT)のための該乗算を実行する、請求項1の装置。
  20. 少なくとも1つのプロセッサ、
    2つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する2つの有理数ダイアディック定数の第1グループとの乗算を実行するために該少なくとも1つのプロセッサを用いて実施される第1論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である;及び
    4つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する4つの有理数ダイアディック定数の第2グループとの乗算を実行するために該少なくとも1つのプロセッサを用いて実施される第2論理回路、
    を具備し、
    該第1共通因数は、2つのデータ値の該第1グループと2つの有理数ダイアディック定数の該第1グループとの乗算のための論理演算の数を最小化するために選択され、該第2共通因数は、4つのデータ値の該第2グループと4つの有理数ダイアディック定数の該第2グループとの乗算のための論理演算の数を最小化するために選択され、
    さらに、該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該第1のグループの該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、装置。
  21. 少なくとも1つのプロセッサの第1論理回路によって、少なくとも1つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行すること、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である;及び
    該少なくとも1つのプロセッサの第2論理回路によって、少なくとも1つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行すること、ここにおいて、少なくとも1つのデータ値の該第1グループと該第2グループとは異なるサイズを有する、
    を具備し、
    該第1共通因数は、少なくとも1つのデータ値の該第1グループと少なくとも1つの有理数ダイアディック定数の該第1グループとの乗算のための論理演算の数を最小化するために選択され、該第2共通因数は、少なくとも1つのデータ値の該第2グループと少なくとも1つの有理数ダイアディック定数の該第2グループとの乗算のための論理演算の数を最小化するために選択され、
    さらに、該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該第1のグループの該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、方法。
  22. 少なくとも1つのデータ値の第3グループと、第3共通因数によりスケーリングされた少なくとも1つの無理数定数の第3グループを近似する少なくとも1つの有理数ダイアディック定数の第3グループとの乗算を実行すること、
    をさらに具備する、請求項21の方法。
  23. 少なくとも1つのデータ値の該第1グループの乗算を該実行することは、該第1グループ中のデータ値と該第1グループ中の有理数ダイアディック定数との乗算のために、
    該データ値に基づいて中間値の系列を生成すること、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有する、そして
    該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与えること、を具備する、請求項22の方法。
  24. 少なくとも1つのデータ値の該第2グループの乗算を該実行することは、該第2グループ中のデータ値と、中間値の1つの系列に基づく該第2グループ中の第1及び第2有理数ダイアディック定数との乗算を実行することを具備する、請求項21の方法。
  25. 少なくとも1つのプロセッサ;
    少なくとも1つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行するための手段、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である;及び
    少なくとも1つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行するための手段、ここにおいて、少なくとも1つのデータ値の該第1グループと該第2グループとは異なるサイズを有する、
    を具備し、
    乗算を実行するための手段は両方とも該少なくとも1つのプロセッサを使用して実施され
    該第1共通因数は、少なくとも1つのデータ値の該第1グループと少なくとも1つの有理数ダイアディック定数の該第1グループとの乗算のための論理演算の数を最小化するために選択され、該第2共通因数は、少なくとも1つのデータ値の該第2グループと少なくとも1つの有理数ダイアディック定数の該第2グループとの乗算のための論理演算の数を最小化するために選択され、
    さらに、該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該第1のグループの該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、装置。
  26. 少なくとも1つのデータ値の第3グループと、第3共通因数によりスケーリングされた少なくとも1つの無理数定数の第3グループを近似する少なくとも1つの有理数ダイアディック定数の第3グループとの乗算を実行するための手段、
    をさらに具備する、請求項25の装置。
  27. 少なくとも1つのデータ値の該第1グループの乗算を該実行するための該手段は、該第1グループ中のデータ値と該第1グループ中の有理数ダイアディック定数との乗算のために、
    該データ値に基づいて中間値の系列を生成するための手段、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有する、及び
    該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与えるための手段、を具備する該手段である、請求項25の装置。
  28. 少なくとも1つのデータ値の該第2グループの乗算を実行するための該手段は、該第2グループ中のデータ値と、中間値の1つの系列に基づく該第2グループ中の第1及び第2有理数ダイアディック定数との乗算を実行するための手段を具備する、請求項25の装置。
  29. 少なくとも1つのプロセッサ;
    少なくとも1つのデータ値を受け取るための、該少なくとも1つのプロセッサを使用して実施される第1論理回路;及び
    該少なくとも1つのデータ値と、共通因数によりスケーリングされた少なくとも1つの無理数定数を近似する少なくとも1つの有理数ダイアディック定数との乗算を実行するための、該少なくとも1つのプロセッサを使用して実施される第2論理回路、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算のための論理演算のを最小化するために選択される、
    を具備し、
    該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、装置。
  30. 該論理演算は、シフト演算を具備する、請求項29の装置。
  31. 該共通因数は、該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との該乗算からもたらされる結果に対する少なくとも1つの精度測定基準にさらに基づいて選択される、請求項29の装置。
  32. データ値と有理数ダイアディック定数との乗算のために、該第2論理回路は、該データ値に基づいて中間値の系列を生成し、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有し、そして該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与える、請求項29の装置。
  33. 論理演算の該数は、該乗算の少なくとも1つの出力値を生成するために中間結果を使用して、該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算を実行することにより決定される、請求項29の装置。
  34. 少なくとも1つのプロセッサの第1論理回路によって少なくとも1つのデータ値を受け取ること;及び
    該少なくとも1つのプロセッサの第2論理回路によって該少なくとも1つのデータ値と、共通因数によりスケーリングされた少なくとも1つの無理数定数を近似する少なくとも1つの有理数ダイアディック定数との乗算を実行すること、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算のための論理演算のを最小化するために選択される、
    を具備し、
    該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、方法。
  35. 該論理演算は、シフト演算を具備する、請求項34の方法。
  36. 該乗算を実行することは、データ値と有理数ダイアディック定数との乗算のために、
    該データ値に基づいて中間値の系列を生成すること、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有する、そして
    該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与えること、を具備する、請求項34の方法。
  37. 少なくとも1つのプロセッサ;
    少なくとも1つのデータ値を受け取るための手段;及び
    該少なくとも1つのデータ値と、共通因数によりスケーリングされた少なくとも1つの無理数定数を近似する少なくとも1つの有理数ダイアディック定数との乗算を実行するための手段、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算のための論理演算のを最小化するために選択される、
    を具備し、
    該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶され、
    さらに、前記受け取るための手段および前記実行するための手段は、該少なくとも1つのプロセッサによって実施される、ここにおいて、該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、装置。
  38. 該論理演算は、シフト演算を具備する、請求項37の装置。
  39. 乗算を実行するための該手段は、データ値と有理数ダイアディック定数との乗算のために、
    該データ値に基づいて中間値の系列を生成するための手段、該系列中の少なくとも1つの別の中間値に基づいて生成される該系列中の少なくとも1つの中間値を有する、そして
    該データ値と該有理数ダイアディック定数との該乗算の出力値として該系列中の1つの中間値を与えるための手段、
    を具備する該手段である、請求項37の装置。
  40. コンピュータ読取り可能な記憶媒体であって:
    少なくとも1つのデータ値を受け取るようにコンピュータを動作させるためのコード;及び
    該少なくとも1つのデータ値と、共通因数によりスケーリングされた少なくとも1つの無理数定数を近似する少なくとも1つの有理数ダイアディック定数との乗算を実行するように該コンピュータを動作させるためのコード、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数であり、該共通因数は該少なくとも1つのデータ値と該少なくとも1つの有理数ダイアディック定数との乗算のための論理演算のを最小化するために選択される、
    を具備し、
    該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、コンピュータ読取り可能な記憶媒体。
  41. コンピュータ読取り可能な記憶媒体であって:
    少なくとも1つのデータ値の第1グループと、第1共通因数によりスケーリングされた少なくとも1つの無理数定数の第1グループを近似する少なくとも1つの有理数ダイアディック定数の第1グループとの乗算を実行するようにコンピュータを動作させるためのコード、ここにおいて、各有理数ダイアディック定数はダイアディック分母を有する有理数である;及び
    少なくとも1つのデータ値の第2グループと、第2共通因数によりスケーリングされた少なくとも1つの無理数定数の第2グループを近似する少なくとも1つの有理数ダイアディック定数の第2グループとの乗算を実行するように該コンピュータを動作させるためのコード、ここにおいて、少なくとも1つのデータ値の該第1グループと該第2グループとは異なるサイズを有する、
    を具備し、
    該第1共通因数は、少なくとも1つのデータ値の該第1グループと少なくとも1つの有理数ダイアディック定数の該第1グループとの乗算のための論理演算の数を最小化するために選択され、該第2共通因数は、少なくとも1つのデータ値の該第2グループと少なくとも1つの有理数ダイアディック定数の該第2グループとの乗算のための論理演算の数を最小化するために選択され、
    さらに、該論理演算の数は、有理数ダイアディック定数の異なる可能な値の乗算のために事前に計算され、データ構造中に記憶される、ここにおいて、該第1グループの該乗算のための該論理演算の数は該有理数ダイアディック定数の値に依存する、コンピュータ読取り可能な記憶媒体。
  42. 少なくとも1つのデータ値の第3グループと、第3共通因数によりスケーリングされた少なくとも1つの無理数定数の第3グループを近似する少なくとも1つの有理数ダイアディック定数の第3グループとの乗算を実行するようにコンピュータを動作させるためのコード、
    をさらに具備する、請求項41のコンピュータ読取り可能な記憶媒体。
JP2008550522A 2006-01-11 2007-01-11 共通因数を用いる変換 Expired - Fee Related JP5086274B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US75846406P 2006-01-11 2006-01-11
US60/758,464 2006-01-11
US11/621,945 2007-01-10
US11/621,945 US8595281B2 (en) 2006-01-11 2007-01-10 Transforms with common factors
PCT/US2007/060405 WO2007082272A2 (en) 2006-01-11 2007-01-11 Transforms with common factors

Publications (2)

Publication Number Publication Date
JP2009534721A JP2009534721A (ja) 2009-09-24
JP5086274B2 true JP5086274B2 (ja) 2012-11-28

Family

ID=38257126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008550522A Expired - Fee Related JP5086274B2 (ja) 2006-01-11 2007-01-11 共通因数を用いる変換

Country Status (15)

Country Link
US (1) US8595281B2 (ja)
EP (2) EP2477121A3 (ja)
JP (1) JP5086274B2 (ja)
KR (1) KR101028676B1 (ja)
CN (2) CN101375274B (ja)
AU (1) AU2007204645B2 (ja)
BR (1) BRPI0706474A2 (ja)
CA (1) CA2633897C (ja)
IL (1) IL192075A0 (ja)
MX (1) MX2008008987A (ja)
NO (1) NO20083465L (ja)
NZ (1) NZ568993A (ja)
RU (1) RU2429531C2 (ja)
TW (1) TWI359364B (ja)
WO (1) WO2007082272A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8654833B2 (en) * 2007-09-26 2014-02-18 Qualcomm Incorporated Efficient transformation techniques for video coding
US8248660B2 (en) * 2007-12-14 2012-08-21 Qualcomm Incorporated Efficient diffusion dithering using dyadic rationals
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9185422B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Variable localized bit-depth increase for fixed-point transforms in video coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US11030777B2 (en) * 2018-09-14 2021-06-08 Sony Group Corporation Adaptive subband coding for lifting transform

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864529A (en) * 1986-10-09 1989-09-05 North American Philips Corporation Fast multiplier architecture
JPH01175186A (ja) 1987-12-29 1989-07-11 Nitto Denko Corp 熱接着用プレス装置における熱加圧具
JP2711176B2 (ja) 1990-10-02 1998-02-10 アロカ株式会社 超音波画像処理装置
CA2060407C (en) 1991-03-22 1998-10-27 Jack M. Sacks Minimum difference processor
US5233551A (en) * 1991-10-21 1993-08-03 Rockwell International Corporation Radix-12 DFT/FFT building block
US5285402A (en) * 1991-11-22 1994-02-08 Intel Corporation Multiplyless discrete cosine transform
US5539836A (en) * 1991-12-20 1996-07-23 Alaris Inc. Method and apparatus for the realization of two-dimensional discrete cosine transform for an 8*8 image fragment
TW284869B (ja) * 1994-05-27 1996-09-01 Hitachi Ltd
US5712809A (en) 1994-10-31 1998-01-27 Vivo Software, Inc. Method and apparatus for performing fast reduced coefficient discrete cosine transforms
US5701263A (en) 1995-08-28 1997-12-23 Hyundai Electronics America Inverse discrete cosine transform processor for VLSI implementation
US5930160A (en) * 1996-06-22 1999-07-27 Texas Instruments Incorporated Multiply accumulate unit for processing a signal and method of operation
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6058215A (en) 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
JP3957829B2 (ja) * 1997-08-29 2007-08-15 株式会社オフィスノア 動画像情報の圧縮方法およびそのシステム
KR100270799B1 (ko) * 1998-01-30 2000-11-01 김영환 이산코사인변환/역이산코사인변환 프로세서
US6189021B1 (en) * 1998-09-15 2001-02-13 Winbond Electronics Corp. Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
US6757326B1 (en) * 1998-12-28 2004-06-29 Motorola, Inc. Method and apparatus for implementing wavelet filters in a digital system
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
WO2000055757A1 (en) 1999-03-17 2000-09-21 The Johns Hopkins University A fast multiplierless transform
US6529634B1 (en) 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US6760486B1 (en) 2000-03-28 2004-07-06 General Electric Company Flash artifact suppression in two-dimensional ultrasound imaging
WO2001095142A2 (en) * 2000-06-09 2001-12-13 Pelton Walter E Methods for reducing the number of computations in a discrete fourier transform
US6766341B1 (en) * 2000-10-23 2004-07-20 International Business Machines Corporation Faster transforms using scaled terms
JP4266512B2 (ja) 2000-12-27 2009-05-20 キヤノン株式会社 データ処理装置
US7007054B1 (en) * 2000-10-23 2006-02-28 International Business Machines Corporation Faster discrete cosine transforms using scaled terms
US7126616B2 (en) * 2001-06-12 2006-10-24 Silicon Optix Inc. Method and system for processing a non-linear two dimensional spatial transformation
US6870963B2 (en) 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US6917955B1 (en) * 2002-04-25 2005-07-12 Analog Devices, Inc. FFT processor suited for a DMT engine for multichannel CO ADSL application
US7395210B2 (en) * 2002-11-21 2008-07-01 Microsoft Corporation Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform
US7792891B2 (en) * 2002-12-11 2010-09-07 Nvidia Corporation Forward discrete cosine transform engine
TWI220716B (en) * 2003-05-19 2004-09-01 Ind Tech Res Inst Method and apparatus of constructing a hardware architecture for transfer functions
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US7487193B2 (en) 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7489826B2 (en) * 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
CN100388316C (zh) * 2005-04-19 2008-05-14 展讯通信(上海)有限公司 高精度的无乘法器的数字余弦变换电路及其变换方法
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces

Also Published As

Publication number Publication date
US20070168410A1 (en) 2007-07-19
NO20083465L (no) 2008-10-10
EP1999641A2 (en) 2008-12-10
RU2429531C2 (ru) 2011-09-20
EP2477121A2 (en) 2012-07-18
CN103096077B (zh) 2016-03-16
WO2007082272A2 (en) 2007-07-19
CN101375274A (zh) 2009-02-25
TWI359364B (en) 2012-03-01
IL192075A0 (en) 2009-08-03
RU2008132827A (ru) 2010-02-20
MX2008008987A (es) 2008-11-18
TW200809537A (en) 2008-02-16
CA2633897C (en) 2013-04-02
CN103096077A (zh) 2013-05-08
AU2007204645A1 (en) 2007-07-19
CA2633897A1 (en) 2007-07-19
EP2477121A3 (en) 2015-01-21
AU2007204645B2 (en) 2010-08-12
KR101028676B1 (ko) 2011-04-12
JP2009534721A (ja) 2009-09-24
KR20090007279A (ko) 2009-01-16
US8595281B2 (en) 2013-11-26
BRPI0706474A2 (pt) 2011-03-29
CN101375274B (zh) 2013-02-13
WO2007082272A3 (en) 2008-10-02
NZ568993A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5086274B2 (ja) 共通因数を用いる変換
RU2460129C2 (ru) Структура преобразования с масштабированными и немасштабированными интерфейсами
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
CA2653692C (en) Reduction of errors during computation of inverse discrete cosine transform
JP3964925B2 (ja) イメージおよびビデオコード化方法
US20070271321A1 (en) Transforms with reduce complexity and/or improve precision by means of common factors
De Silva et al. Exploring the Implementation of JPEG Compression on FPGA
JP2011507313A (ja) 符号対称の丸め誤差を有する2進分数による積の高速計算
TWI432029B (zh) 具有比例化及非比例化介面之變換設計
JP2010267033A (ja) データ変換処理装置およびデータ変換処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120426

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120607

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120906

R150 Certificate of patent or registration of utility model

Ref document number: 5086274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees