JP4425824B2 - 動画像コーデック変換の高速実装 - Google Patents

動画像コーデック変換の高速実装 Download PDF

Info

Publication number
JP4425824B2
JP4425824B2 JP2005142843A JP2005142843A JP4425824B2 JP 4425824 B2 JP4425824 B2 JP 4425824B2 JP 2005142843 A JP2005142843 A JP 2005142843A JP 2005142843 A JP2005142843 A JP 2005142843A JP 4425824 B2 JP4425824 B2 JP 4425824B2
Authority
JP
Japan
Prior art keywords
variables
values
transform
butterfly operation
butterfly
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
JP2005142843A
Other languages
English (en)
Other versions
JP2005327298A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005327298A publication Critical patent/JP2005327298A/ja
Application granted granted Critical
Publication of JP4425824B2 publication Critical patent/JP4425824B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Description

本発明は、一般には、信号のデジタル符号化およびデジタル処理を行う技術に関し、より詳細には、画像および動画像などの信号の符号化および復号化を行う際に、あるクラスの計算効率のよい変換の高速実装に関する。
変換符号化は、多くのオーディオ、画像、および動画像圧縮システムで使用される圧縮手法である。未圧縮のデジタル画像およびデジタル動画像は、通常、二次元グリッドに配列された画像もしくは動画像フレーム内の複数の位置における複数の画素もしくは画色のサンプルとして表されるか、または取り込まれる。例えば、通常の画像の形式は、グリッドとして配列された24ビットカラーの画素サンプルのストリームで構成される。各々のサンプルは、RGB、もしくはとりわけYIQなどの色空間内のグリッドにおけるピクセル位置の色成分を表す数である。さまざまな画像および動画像システムは、サンプリングのさまざまな異なる色、空間、および時間の解像度を使用することができる。
未圧縮のデジタル画像およびデジタル動画像の信号は、かなりの記憶領域および伝送容量を消費する可能性がある。変換符号化では、信号の空間領域の表現を周波数領域(もしくは他の類似の変換領域)の表現に変換し、続いて変換領域の表現に属する、多少の概して視認できないくらいの周波数成分に関する解像度を下げることにより、デジタル画像およびデジタル動画像のサイズを縮小する。この方法によって、一般的に、空間領域の画像もしくは動画像の、色もしくは空間の解像度を下げる方法と比較して、デジタル信号は知覚できないくらいにしか劣化しない。
より具体的には、標準的な変換符号化の手法では、未圧縮のデジタル画像のピクセルを、各々のブロックが場合によっては他のブロックと重なり合う、固定サイズの複数の二次元ブロックに分割する。空間周波数の分析を実行する線形変換が各々のブロックに適用される。その結果、ブロック内の空間のサンプルは、一般的にブロックの間隔にわたって対応する周波数帯域内のデジタル信号の強度を表す一組の周波数(または変換)係数に変換される。圧縮するため、変換係数を選択的に量子化する(すなわち、係数値のうち最も重要ではないビットを落とすか、もしくは他の何らかの手段により高い解像度の数集合の中の値を低い解像度にマッピングすることなどにより解像度を下げられる)ことができ、さらに圧縮されたデータストリームにエントロピー符号化もしくは可変長符号化することができる。復号化では、変換係数を逆変換することによって、色/空間サンプリングの画像/動画像信号がほぼ元通りに再構成される。
多くの画像および動画像圧縮システム、特にMPEGおよびウィンドウズ(登録商標)メディアなどは、離散的コサイン変換(DCT)に基づく変換を利用する。DCTは、最適に近いデータ圧縮をもたらす好ましいエネルギーの圧縮特性を有することが知られている。これらの圧縮システムでは、個別のブロック画像を再構成するため圧縮システムの符号化器と復号化器の両方の再構成ループ内で逆DCT(IDCT)が使用される。IDCTの実装例が文献で説明されている(例えば、非特許文献1を参照)。
非特許文献1で定義されているようなIDCT変換の欠点は、変換の計算が、高価なコンピュータによる、64ビットの浮動小数点数の行列乗算を伴う点である。これは、IDCTがリアルタイムもしくは他の同様の時間的制約の下で大量の圧縮データを処理する場合には、特にストリーミングメディアおよび同様にメディアを再生するアプリケーションにおいて、画像もしくは動画像圧縮システムの性能を制限する可能性がある。
映画テレビ技術者協会(SMPTE)のC24技術委員会を通じてビデオコーデック9(VC−9)として標準化を提案されている、ウィンドウズ(登録商標)・メディア・ビデオ9(WMV9)の符号化の標準では、4種類の二次元データの変換である、8×8、8×4、4×8、および4×4の変換を定義する。これらのVC−9標準の変換は、DCTに類似のエネルギーの圧縮特性を有するが、計算効率のために整数の行列乗算の演算に基づく実装となっている。WMV9/VC−9の変換の行列による実装について詳細な説明が行われている(例えば、2003年2月28日に出願した米国特許出願第10/376,147号明細書参照)。WMV9規格では、逆変換のビット完全な実装を必要とする。
線形変換の高速実装には長い歴史がある。高速変換のよく知られている一例として、高速フーリエ変換(FFT)がある(例えば、非特許文献2参照)。FFTでは、オーダーO(N log N)回演算をすることによって、N点のフーリエ変換を実現する。この簡易化が可能になるのはフーリエ変換の定義から本来備わっている対称性のためである。類似の高速実装は、離散コサイン変換(DCT)についても存在することが示されている(例えば、非特許文献3および非特許文献4参照)。
高速変換では、変換の行列乗算の定義を、「バタフライ」演算を伴う一連のステップに分解する。バタフライ演算は、空間領域、周波数領域もしくは媒介変数のいずれかである、2変数の間の重み付けをしたデータ交換である。例えば、以下の行列乗算に対応するバタフライ演算
Figure 0004425824
は、図3に示されている。これは、適した倍率で原点を中心として、元の二次元ベクトルxの回転に対応する。倍率は、c+s=1であれば1である。実数値を入力とするバタフライ演算は、3回の実数値の乗算のみで実装することができる。一般に、この行列は単なる回転に対応する必要はない−したがって、そのままスケーリングおよびせん断が可能である。
4点の(four−point)WMV9/VC−9の変換では、ちょうど説明したように、バタフライ演算を直接適用することにより高速実装が可能である。
上記で議論したように、8点のDCTは、変換の高速実装を持つことが知られている。しかし、これを8点のWMV9/VC−9の変換へ移し変えることは容易ではない。WMV9/VC−9の変換は、DCTに類似しているが、ビット完全(bit−exactness)な整数の実装および要件により、知られている高速実装から直にマッピングすることは不可能である。
8点のWMV9/VC−9の変換は、偶行列(even matrix)と奇行列(odd matrix)のペアを使用する演算により実装できる(例えば、特許文献1参照)。DCTの偶数の基底関数(すなわち、基底関数0、2、4、および8)は、4点のDCTによって続けて入力される一連のバタフライ演算により実現できることは自明であることが知られている。DCTの知られている高速実装は、8点のWMV9/VC−9の変換の偶行列にうまく移し変える。
しかし、知られている高速実装は、8点のWMV9/VC−9の変換の奇行列の高速実装を得るための手段とはならない。WMV9/VC−9の変換は、DCTに類似しているが、WMV9/VC−9のビット完全な整数の実装および要件により、知られている変換の高速実装からの直にマッピングすることは不可能である。知られている変換の高速実装を参照しても、これらの変換の奇数の基底関数の解析および統合を解決できない。
本明細書では8点のWMV9/VC−9の変換に関する高速実装について説明する。
U.S. Patent Application Serial No.10/376, 147, filed February 28, 2003 "IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform," IEEE Std. 1180-1990, December 6, 1990 J.W. Cooley and J.W. Tukey, "An Algorithm For The Machine Calculation Of Complex Fourier Series," Math. Computation, vol. 19, pp. 297-301, 1965 W. Chen, C.H. Smith and S.C. Fralick, "A Fast Computational Algorithm For The Discrete Cosines Transform," IEEE Trans. Commun., vol. 25, pp. 1004-1009, Sept. 1977 H. Malvar, "Fast Computation Of The Discrete Cosine Transform And The Discrete Hartley Transform," IEEE Trans. Acoust., Speech, Signal Processing, vol. ASSP-35, pp. 1484-1485, October 1987
説明する実装は、8点のWMV9/VC−9の変換の順変換および逆変換の高速実装とともに、各々の代替えの実装を含む。これらの高速実装では、フィルタリングの両方の次元の終わりか各段で別々に、その変換段にスケーリングを組み込むことができる。また、WMV9/VC−9の変換を用いるコーデックの符号化器および復号化器の面とともに、画像圧縮およびその他の信号処理システムでも、高速実装を使用することができる。
本発明の追加の特徴および利点は、添付の図面を参照して行われる実施形態についての以下の詳細な説明から明白になる。
以下の説明は、WMV9/VC−9に準拠したコーデックだけでなく他の二次元メディア(例えば、動画像および画像)のコーデックでの使用に適用することができて、WMV9のおよびVC−9のコーデックで定義された、一組の変換の高速実装についてのものである。メディア符号化の変換の高速実装に関する応用例は、画像のもしくは動画像の符号化器および復号化器に見られる。しかし、本明細書で説明するような変換の構成は、画像もしくは動画像のコーデックに限られず、他のメディア処理システムにも適用可能である。したがって、これらの変換の高速実装は、一般化された画像もしくは動画像の符号化器および復号化器の文脈において説明されるが、それとは別に、これらの変換を用いるさまざまな種類のメディア処理システムおよび信号処理システムに組み込むことができる。
1.一般化された動画像の符号化器および復号化器
図1は、一般化された動画像符号化器(100)のブロック図であり、図2は、一般化された動画像復号化器(200)のブロック図であり、これらにはWMV9/VC−9の変換を組み込むことができる。
符号化器および復号化器の内部のモジュール間の図に示されている関係は、符号化器および復号化器の情報の主な流れを示しており、他の関係は、簡単のために図に示さない。特に、図1および図2は、通常、動画像シーケンス、フレーム、マクロブロック、ブロックなどに使用される符号化器の設定、モード、テーブルなどを示す副次的情報を示さない。このような副次的情報は、通常、副次的情報のエントロピー符号化の後に、出力ビットストリームに送られる。出力ビットストリームの形式としては、ウィンドウズ(登録商標)・メディア・ビデオ形式もしくは別の形式が可能である。
符号化器(100)および復号化器(200)は、ブロックベースであり、各マクロブロックが4つの輝度で8×8の輝度ブロック(ときどき1つの16×16のマクロブロックとして扱われる)および2つの8×8の色差ブロックを含む、4:2:0のマクロブロックの形式を使用する。あるいはまた、符号化器(100)および復号化器(200)は、オブジェクトベースであり、異なるマクロブロックもしくはブロックの形式を使用するか、または8×8のブロックおよび16×16のマクロブロックと異なるサイズもしくは構成のピクセルの集合に対して演算を実行する。
所望の圧縮の実装および種類に応じて、符号化器もしくは復号化器のモジュールを追加し、省略し、複数のモジュールに分割し、他のモジュールと組み合わせ、および/もしくは類似のモジュールで置き換えることができる。代替の実施形態では、説明する手法の1つもしくは2つ以上が、異なるモジュールおよび/もしくはモジュールの他の構成の符号化器もしくは復号化器により、実行される。
A.動画像符号化器
図1は、一般的な動画像符号化器のシステム(100)のブロック図である。符号化器のシステム(100)は、現在のフレーム(105)を含む動画像フレームのシーケンスを受け取り、出力として圧縮動画像情報(195)を生成する。動画像符号化器の特定の実施形態では、通常、一般化された符号化器(100)を変更して、もしくは補足して使用する。
符号化器のシステム(100)は、予測されたフレームおよびキーフレームを圧縮する。説明のため、図1は、符号化器のシステム(100)を通るキーフレームの経路および前方予測のフレームの経路を示している。符号化器のシステム(100)のコンポーネントの多くは、キーフレームおよび予測されたフレームの両方を圧縮するために使用される。これらのコンポーネントにより実行される演算は、厳密には圧縮される情報の種類に応じて異なる。
予測されたフレーム[pフレーム、双方向予測のbフレーム、もしくはコーデック間のフレームとも呼ばれる]は、1つもしくは2つ以上の他のフレームからの予測(もしくは予測差分)に関して表される。予測残差は、予測されたフレームと元のフレームとの差分である。対照的に、キーフレーム[iフレーム、コーデック内部のフレームとも呼ばれる]は、他のフレームを参照せずに圧縮される。
現在のフレーム(105)が前方予測のフレームの場合、動き推定器(110)は、フレーム記憶(120)内にバッファリングされている再構成された前フレーム(125)である、基準フレームに関する、現在のフレーム(105)のマクロブロックもしくは他のピクセルの集合の動きを推定する。代替の実施形態では、基準フレームがより後のフレームであるかもしくは現在のフレームが双方向で予測される。動き推定器(110)は、動きベクトルなどの動き情報(115)を副次的情報として出力する。動き補整器(130)は、動き情報(115)を再構成された前フレーム(125)に適用することによって、動きが補整された現在のフレーム(135)を形成する。しかし、予測は通常、完全ということはなく、動きが補整された現在のフレーム(135)と元の現在のフレーム(105)との差分が予測残差(145)となる。あるいはまた、動き推定器および動き補整器は、別の種類の動き推定/補整を行う。
周波数変換器(160)は、空間領域の動画像情報を周波数領域の(すなわち、スペクトルである)データに変換する。ブロックベースの動画像フレームの場合、周波数変換器(160)は、DCTに類似の特性を持つ以下の節で説明されている変換を行う。いくつかの実施形態では、周波数変換器(160)は、周波数変換をキーフレームに対する空間の予測残差の複数のブロックに適用する。周波数変換器(160)は、8×8、8×4、4×8、もしくは他のサイズの周波数変換を行うことができる。
その後、量子化器(170)は、スペクトルデータの係数の複数のブロックを量子化する。量子化器は一様なスカラー量子化をスペクトルデータに適用するが、その際にステップサイズはフレーム毎の基準もしくは他の基準で変化する。あるはまた、量子化器は、別の種類の量子化、例えば、非一様量子化、ベクトル量子化、もしくは非適応型の量子化をベクトルデータの係数に適用するか、または周波数変換を使用しない符号化器のシステム内で空間領域のデータを直接量子化する。適応型量子化に加え、符号化器(100)では、フレーム落ち、適応型フィルタリング、もしくは他の手法をレート制御に使用することができる。
再構成された現在のフレームが後続の動き推定/補整において必要な場合、逆量子化器(176)は、量子化されたスペクトルデータの係数に対し逆量子化を実行する。その後、逆周波数変換器(166)は、周波数変換器(160)の演算の逆演算を実行し、(予測フレームの)再構成された予測残差もしくは再構成されたキーフレームを生成する。現在のフレーム(105)がキーフレームであった場合、再構成されたキーフレームは(図に示されていない)再構成された現在のフレームとみなされる。現在のフレーム(105)が予測されたフレームであった場合、再構成された予測残差は、動き補整をされた現在のフレーム(135)に追加されることによって、再構成された現在のフレームを形成する。フレーム記憶(120)では、次のフレームを予測する際に使用するため、再構成された現在のフレームをバッファリングする。いくつかの実施形態では、符号化器は、非ブロック化のフィルタを再構成されたフレームに適用し、フレームの複数のブロック内の不連続を適応的に平滑化する。
エントロピー符号化器(180)は、量子化器(170)の出力だけでなく、特定の副次的情報(例えば、動き情報(115)、量子化ステップサイズ)を圧縮する。標準的なエントロピー符号化手法は、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、LZ符号化、辞書型符号化、およびこれらの組合せを含む。エントロピー符号化器(180)は、通常、異なる種類の情報(例えば、DC係数、AC係数、異なる種類の副次的情報)に対し異なる符号化手法を使用し、特定の符号化手法の範囲内で複数の符号テーブルのうちから選択することができる。
エントロピー符号化器(180)は、圧縮動画像情報(195)をバッファ(190)内に置く。バッファレベルのインジケータは、ビットレート適応のモジュールにフィードバックされる。圧縮動画像情報(195)は、一定のもしくは比較的一定のビットレートでバッファ(190)から全て読み取られ、そのビットレートで行われる後続のストリーミング用に格納される。あるいはまた、符号化器システム(100)は、圧縮の直後に圧縮動画像情報をストリーミングする。
バッファ(190)の前後で、圧縮動画像情報(195)を、ネットワーク上に伝送するためにチャネル符号化することができる。チャネル符号化によって、誤り検出および訂正データを圧縮動画像情報(195)に適用することができる。
B.動画像複合化器
図2は、一般的な動画像復号化器のシステム(200)のブロック図である。復号化器のシステム(200)は、動画像フレームの圧縮されたシーケンスに関する情報(295)を受け取り、再構成されたフレーム(205)を含む内容を出力する。動画像復号化器の特定の実施形態では、通常、一般化された復号化器(200)を変更して、もしくは補足して使用する。
復号化器のシステム(200)は、予測されたフレームおよびキーフレームを圧縮解除する。説明のため、図2は、復号化器のシステム(200)を通るキーフレームの経路および前方予測のフレームの経路を示している。復号化器のシステム(200)のコンポーネントの多くは、キーフレームおよび予測されたフレームの両方を圧縮するために使用される。これらのコンポーネントにより実行される演算は、厳密には圧縮される情報の種類によって異なる。
バッファ(290)は、圧縮動画像のシーケンスの情報(295)を受け取り、受け取った情報をエントロピー復号化器(280)で利用できるようにする。バッファ(290)は、通常、長時間にわたりかなり一定したレートで情報を受け取り、帯域幅もしくは伝送の短時間の変動を平滑化するジッタバッファを含む。バッファ(290)は、再生用バッファおよび他のバッファもまた含むことができる。あるいはまた、バッファ(290)は、可変レートで情報を受け取る。バッファ(290)の前後で、圧縮動画像情報を、チャネル復号化し、誤り検出および訂正のために処理することができる。
エントロピー復号化器(280)は、エントロピー符号化され量子化されたデータだけでなく、エントロピー符号化された副次的情報(例えば、動き情報、量子化ステップサイズ)をもエントロピー復号化し、通常は、符号化器内で実行されたエントロピー符号化の逆演算を行う。エントロピー復号化手法は、算術復号化、差分復号化、ハフマン復号化、ランレングス復号化、LZ復号化、辞書型復号化、およびこれらの組合せを含む。エントロピー復号化器(280)は、多くの場合、異なる種類の情報(例えば、DC係数、AC係数、異なる種類の副次的情報)に対し異なる復号化手法を使用し、特定の復号化手法の範囲内で複数の符号テーブルのうちから選択することができる。
再構成されるフレーム(205)が前方予測のフレームである場合、動き補整器(230)は、動き情報(215)を基準フレーム(225)に適用することによって、再構成されるフレーム(205)の予測(235)を形成する。例えば、動き補整器(230)は、マクロブロックの動きベクトルを使用することによって、基準フレーム(225)内のマクロブロックを見つける。フレームバッファ(220)は、基準フレームとして使用するために前に再構成されたフレームを格納する。あるいはまた、動き補整器は、別の種類の動き補整を行う。動き補整器による予測はめったに完全ではないため、復号化器(200)は、さらに、予測残差を再構成する。
復号化器が後続の動き補整のために再構成されたフレームを必要とする場合、フレーム記憶(220)は、次のフレームの予測で使用するために再構成されたフレームをバッファリングする。いくつかの実施形態では、符号化器は、非ブロック化のフィルタを再構成されたフレームに適用することによって、フレームの複数のブロック内の不連続を適応的に平滑化する。
逆量子化器(270)は、エントロピー復号化されたデータを逆量子化する。一般に、逆量子化器は一様なスカラーの逆量子化をエントロピー復号化されたデータに適用するが、その際にステップサイズはフレーム毎の基準もしくは他の基準で変化する。あるいはまた、逆量子化器は、別の種類の量子化、例えば、非一様な量子化、ベクトル量子化、もしくは非適応型の量子化をデータに適用するか、または逆周波数変換を使用しない復号化器のシステム内で空間領域のデータを直接逆量子化する。
逆周波数変換器(260)は、量子化された周波数領域のデータを空間領域の動画像情報に変換する。ブロックベースの動画像フレームについては、逆周波数変換器(260)は、以下の節で説明される逆変換を行う。いくつかの実施形態では、逆周波数変換器(260)は、キーフレームに対する空間の予測残差から成る複数のブロックに逆周波数変換を適用する。逆周波数変換器(260)は、8×8、8×4、4×8、もしくは他のサイズの逆周波数変換を行うことができる。
2.WMV9/VC−9の変換
WMV9/VC−9標準では、動画像符号化器100(図1)および動画像復号化器200(図2)内で周波数変換160および逆周波数変換260として使用することができる変換を定義している。WMV9/VC−9標準では、4種類の二次元データの変換である、8×8、8×4、4×8、および4×4の変換を定義している。この規格では、以下に要約した定義に従って、逆変換のビット完全な(bit−exact)実装を必要とする。
A.WMV9/VC−9の変換の定義
WMV9/VC−9で使用される2D変換は、分離可能であり、適切に定義されスケーリングされた正規直交に近い乗数行列を使用して各々の方向で変換が実行される。4点のおよび8点の一次変換に各1つずつ、合わせて2つの行列が以下のように定義される。すべての変数は整数値をとるものと仮定されている。
Figure 0004425824
Figure 0004425824
逆変換は、すべての準拠した復号化器はビット完全な出力を供給する必要があるため、形式の仕様の中で詳しく説明する。この変換は、次のように定義される。まず、逆量子化の変換行列の行が逆変換される。この後に、列の逆変換が続く。
Dは逆量子化の変換行列を表し、Dは変換の第1段の出力を表し、Rは行および列方向に逆変換した後の再構成された出力を表す。D、DおよびRは、所望の変換のサイズと同じサイズで、同型な8×8、8×4、4×8および4×4の行列である。表記の誤用として、行列およびスカラーを伴う演算を、本明細書では、行列に対する要素毎の演算として定義する。同様に、行列引数をとるスカラー演算を、行列に対する要素毎のスカラー演算として定義する。行列とベクトルとの和は、行列と、値が(それぞれ行ベクトル列ベクトルを問わずベクトルに基づく)ベクトルの同一場所に配置される行もしくは列から得られるスカラーとの、要素毎の和による略記の表記である。
m×nの逆変換に対する正準形式は、以下のとおりである。
Figure 0004425824
分母は、1D変換の基底関数の二乗ノルム({4×288,4×289,4×292}のうちの1つ)に最も近い2のべき乗になるように選択される。実際のノルムと分母との比(約1.12)は1に近いので、IDCTに使用される量子化パラメータとWMV9/VC−9の変換に使用される量子化パラメータとの間には近い一致がある。残りのすべての正規化(本質的には、1024/基底関数の二乗ノルムによる)は、順変換のプロセスで実行されるため、ここにそれ以上の誤りが入り込むことはない−これについては、本明細書のさらに先の方で説明する。
実際には、1024による除算は、両方の1D変換のプロセスにまたがって分割される丸め演算として実行される。さらに、16ビットの逆変換は、後述のように第2段の行列を偶数成分と奇数成分に分けることにより精度を最大限保持して実現される。
Figure 0004425824
奇数成分
Figure 0004425824
および
Figure 0004425824
は、要素として0、1、および−1しかとれない。Tの要素の大半は偶数なので、
Figure 0004425824
は疎行列である。同様に、
Figure 0004425824
は、
Figure 0004425824
と高い相関関係の構造を持つ。そこで、逆変換のプロセスに関するWMV9/VC−9の正準表現は以下のように定義される。
Figure 0004425824
偶数成分はTの範囲の半分を有し、奇数成分
Figure 0004425824
は、要素として0、1、および−1を持つように制限されているため、その結果得られる変換の第2段の分子は16ビットに制限された範囲であることを示すことができる。この付加ビットにより余分に必要な計算は大したことはない。それにもかかわらず、この変換行列の分解の結果、無視できるくらい小さなコストで計算精度が高まる。
4点および8点変換の奇数および偶数成分を以下に示す。
Figure 0004425824
Figure 0004425824
を右から掛ける乗算は、以下のように簡略化することができ、
Figure 0004425824
ただし、
Figure 0004425824
であり、これは自明なバタフライ演算である。同様に、
Figure 0004425824
を右から掛ける乗算は、単に2回の加算(および符号反転)に等しいだけであり、以下のようになるが、
Figure 0004425824
ただし、
Figure 0004425824
である。
B.8×8の逆変換
行方向の逆変換は、まず、以下のように実行される。
=(D・T+4)>>3
列方向の逆変換は、Tの奇数成分を考察することにより定義され、その結果として、8個の要素の2つの共通の行を計算する。これらは、1ビット右シフトされ、その後、偶数成分の積に加算(または減算)され、それからその結果の6ビット分が切り捨てられる。演算は、次のとおりである。
Figure 0004425824
C.4×8の逆変換
WMV9/VC−9の規約により、「4×8」とは、4列、8行の配列のことである。行方向の逆行列は、以下のように定義される4点の演算である。
=(D・T+4)>>3
列に沿った変換の第2の部分は、8×8の変換の第2の部分に等しく、上の式(1)で定義される。
D.8×4の逆変換
WMV9/VC−9の規約により、「8×4」とは、8列、4行の配列のことである。8×4の変換演算の第1段は、以下の式にしたがって1行が8つの要素の4つの各行に作用する。
=(D・T+4)>>3
第2段に対する列方向の4点の逆変換は、以下のように定義される。
Figure 0004425824
E.4×4の逆変換
4×4の逆変換の第1段は、行方向の演算であり、以下のように定義される4点の逆変換である。
=(D・T+4)>>3
列に沿った変換の第2の部分は、8×4の変換の第2の部分に等しく、上の式(2)で定義される。
F.逆変換の代替の実装
変換行列の奇数および偶数成分を使用した逆変換の第2段の定義は、精度を最大限保持するとともに16ビット実装を実現する必要がある。16ビットワードサイズが問題でなければ(例えば、特定用途向け集積回路つまりASICで)、17ビットの中間結果を使用することによって、基本算術演算の一部を簡略化することができる。前節の定義と比較してビット完全な結果を出力する変換の代替の定義を得ることができる。これらの実装の第1段は元の定義の第1段と同じなので、第2段のみが以下のように定義される。
8×8のおよび4×8の逆変換は、以下の第2段を有する。
Figure 0004425824
8×4のおよび4×4の逆変換は、以下の第2段を有する。
Figure 0004425824
G.順変換の定義
順変換は、(i)変換行列が転置されることおよび(ii)倍率が異なることを除き、類似のプロセスにより得られる。符号化器側では順変換をビット完全な仕方で実行する必要はないため、整数変数の仮定はもはや必要ではない−実際、順変換は、浮動小数点演算もしくはスケーリングされた固定小数点演算を使用して実行することができる。以下に示されている順変換の行列乗算の表現は、行列乗算で特に16ビットレジスタを持つ整数乗算を引用する逆変換とは異なり単に解析的表現である。段の間での丸めは、必要に応じて行われることができ、この選択は符号化器に任される。順変換のプロトタイプ定義を以下に示す。
データ行列Dの4×4、4×8、8×4および8×8の変換は、これら4つの場合に対する以下の一組の等式を使って計算することができる。
Figure 0004425824
ただし、演算子oは、成分方向の乗算である。正規化行列Nijは、以下の式で与えられる。
Figure 0004425824
ただし、列ベクトルcは、以下のとおりである。
Figure 0004425824
ここでもまた、正規化を、すべての乗算の終わりに1回、もしくは各段別々に実行することができる。これは、符号化器での選択である。2のべき乗で出力をスケールアップすることにより、順方向の量子化プロセスでの精度を容易に上げることができる。
3.WMV9/VC−9の変換に関する高速実装
この節では、上で説明したWMV9/VC−9の変換に関する高速実装について説明する。本質的に、順変換のプロセスの高速化は、行列乗算TDおよびTDを高速化することにより達成できる。なぜならば各々の変換段がこの形式の行列乗算であるからである。同様に、逆変換は、行列乗算
Figure 0004425824
および
Figure 0004425824
を高速化することにより高速化することができる。
4点のWMV9/VC−9の変換は、行列乗算TDであり、図4に示されているようなバタフライ演算を直接に適用することにより高速実装が可能である。図5は、4点の逆変換の高速実装を示している。すなわち行列乗算
Figure 0004425824
である。予想どおり、信号フローグラフは、順変換の信号フローグラフを逆にしたものである。これらの図ではスケーリングは無視されている−スケーリングは、浮動小数点演算が順変換で使用される場合、乗算器に後で加えることができる。さもなければ、整数実装が必要であれば、量子化段でない場合に、順変換の両方の段の終わりにスケーリングを実行することが好ましい。逆変換では、WMV9/VC−9準拠するために本明細書の上記の節で定義されているようなスケーリングが実行されなければならない。
8点のDCTは変換の高速実装を持つことが知られているが、8点のWMV9/VC−9の変換に移し変えることは容易ではない。WMV9/VC−9の変換は、DCTに類似しているが、ビット完全性の整数の実装および要件により、知られている高速実装から直接マッピングすることは不可能である。またDCTの偶数の基底関数(すなわち、基底関数0、2、4および8)が、4点のDCTで続けられる入力での一連のバタフライ演算により実現できることは自明であることも知られている−この事実は8点のWMV9/VC−9の変換についてもあてはまる。したがって、8点のWMV9/VC−9の変換に関する高速実装を得る際の真の問題は、奇数基底関数の解析および統合である。この問題について以下でとりあげる。
図6は、8点のWMV9/VC−9の順変換に関する高速実装を示している。(空間領域の)入力は左であり、(変換領域の)出力は右である。右上の4つの出力は、偶数基底に対応し、これは、図4の4点変換との類似性を持つ。奇数基底に対応する行列乗算は、以下のとおりである。
Figure 0004425824
行は中心に関して奇対称であり、このことは第1のバタフライ演算の段で利用されることが理解できる。その結果得られる、4つのバタフライ演算による「差」の項の行列乗算は以下の式による。
Figure 0004425824
4×4の行列は、以下のように分解できる。
Figure 0004425824
上の分解から、図6に示されているバタフライ演算の表現が得られる。行列成分も整数値をとるので、ビット完全性は保持される。
逆変換は、2つの方法のうちの1つで分解される。第1の代替手段では、順変換のフローグラフを逆にする。バタフライ演算は反転される。特に、
Figure 0004425824
型のバタフライ演算は、それ自身の逆演算であるが、形式
Figure 0004425824
のバタフライ演算は、
Figure 0004425824
の逆演算であり、スケーリングは両方の場合において無視される。したがって、順変換のフローグラフを逆にすることにより、図7に示されている逆変換の高速実装を得る。
第2の代替手段では、Toddが対称行列であることに注目する。したがって、逆変換もまた、順変換と同じ行列乗算を伴う。すなわち、順変換の場合と同じバタフライ演算および順序付けを奇数の基底関数について保持することができる。この実装は、図8に示されている。
上述の反転に基づく順変換も生成することができる。これにより、図9に示されている順変換の代替の高速実装が提供される。
5.コンピューティング環境
WMV9/VC−9の変換の上で説明した高速実装は、例としてとりわけ、コンピュータ、画像および動画像の記録、送信および受信の機器、携帯型のビデオプレイヤー、ビデオ会議装置、Webベースの動画像ストリーミングのアプリケーションなどを含む、画像および動画像の信号処理が実行されるさまざまな装置のいずれかで実行することができる。画像および動画像の符号化手法は、ハードウェア回路に(例えば、ASIC、FPGAなどの回路に)だけでなく、図10に示されているような、コンピュータもしくは他のコンピューティング環境内で実行される(中央演算処理ユニット(CPU)、専用のグラフィックスプロセッサ、ビデオカードなどを問わず実行される)画像および動画像処理ソフトウェアに実装することができる。
図10は、説明されているWMV9/VC−9の変換を高速実装できる好適なコンピューティング環境(1000)の一般化された実施例を例示している。本発明は多様な汎用もしくは専用のコンピューティング環境に実装できるため、コンピューティング環境(1000)は、本発明の使用もしくはまたは機能性の範囲に関する制限を示唆する意図はない。
図10を参照すると、コンピューティング環境(1000)は、少なくとも1つの処理ユニット(1010)およびメモリ(1020)を備える。図10で、この最も基本的な構成(1030)は、破線で囲まれている。処理ユニット(1010)は、コンピュータ実行可能命令を実行し、実プロセッサでも、仮想プロセッサでもよい。マルチプロセッシングシステムでは、処理能力を高めるため、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ(1020)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAMなど)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)、もしくはこれら2つのある組合せとすることができる。メモリ(1020)は、説明したWMV9/VC−9の変換を高速実装するソフトウェア(1080)を格納する。
コンピューティング環境には、機能を追加することができる。例えば、コンピューティング環境(1000)は、記憶装置(1040)、1つもしくは複数の入力デバイス(1050)、1つもしくは複数の出力デバイス(1060)、および1つもしくは複数の通信接続(1070)を備える。バス、コントローラ、もしくはネットワークなどの相互接続のメカニズム(図に示されていない)は、コンピューティング環境(1000)のコンポーネントを相互接続する。通常、オペレーティングシステムのソフトウェア(図に示されていない)は、コンピューティング環境(1000)内で他のソフトウェアを実行するためのオペレーティング環境を提供し、コンピューティング環境(1000)のコンポーネントの機能を調整する。
記憶装置(1040)は、取り外し可能であるか、または固定であり、磁気ディスク、磁気テープもしくはカセット、CD−ROM、CD−RW、DVD、または情報を格納するために使用することができ、コンピューティング環境(1000)内でアクセスできる他の媒体を備える。記憶装置(1040)は、量子化行列を生成し圧縮する音声符号化器を実装するソフトウェア(1080)に対する命令を格納する。
(複数の)入力デバイス(1050)は、キーボード、マウス、ペン、またはトラックボールなどのタッチ式の入力デバイス、音声入力デバイス、スキャニングデバイス、またはコンピューティング環境(1000)に入力を行う別の装置とすることができる。オーディオについては、(複数の)入力デバイス(1050)は、サウンドカードもしくは、アナログもしくはデジタル形式のオーディオ入力を受け入れる類似のデバイス、またはコンピューティング環境にオーディオサンプルを供給するCD−ROMリーダーとすることができる。(複数の)出力デバイス(1060)は、表示装置、プリンタ、スピーカ、CDライター、もしくはコンピューティング環境(1000)からの出力を供給する別のデバイスとすることができる。
(複数の)通信接続(1070)では、通信媒体を介して、別のコンピュータ処理機器(entity)と通信することが可能である。通信媒体は、コンピュータ実行可能命令、圧縮された音声もしくは動画像情報、または他のデータなどの情報を変調データ信号で伝達する。変調データ信号は、信号内の情報を符号化する方法によりその特性のうち1つまたは複数が設定もしくは変更された信号である。例えば、限定はしないが、通信媒体は、電気的搬送波、光学的搬送波、RF搬送波、赤外線搬送波、音響搬送波、もしくは他の搬送波により実装された有線もしくは無線の手法を備える。
本明細書の変換および符号化/復号化手法は、コンピュータ読み取り可能な媒体の一般的な文脈において説明することができる。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセスできる利用可能な媒体である。例えば、限定はしないが、コンピューティング環境(1000)では、コンピュータ読み取り可能な媒体は、メモリ(1020)、記憶装置(1040)、通信媒体、およびこれらのどれかの組合せを備える。
本明細書のWMV9/VC−9の高速変換を、ターゲットの実プロセッサもしくは仮想プロセッサ上のコンピューティング環境で実行される、プログラムモジュールに含まれるような、コンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、もしくはは特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、さまざまな実施形態で要求されているように、組み合わせたりもしくは複数のプログラムモジュールに分割させたりすることができる。プログラムモジュールのコンピュータ実行可能命令は、ローカルもしくは分散コンピューティング環境内で実行することができる。
説明のため、詳細な説明では、「決定する」、「生成する」、「調整する」、および「適用する」などのような用語を使用することによって、コンピューティング環境におけるコンピュータのオペレーションを説明する。これらの用語は、コンピュータにより実行されるオペレーションを高水準に抽象化したものであり、人間が実行する行為と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて異なる。
本発明の原理を適用できる多くの可能な実施形態を鑑みて、発明者は請求項および等価物の範囲および精神の範囲内に収まりうるすべての実施形態を本発明として請求する。
本明細書で説明されているWMV9/VC−9の変換の高速実装を用いる動画像符号化器のブロック図である。 本明細書で説明されているWMV9/VC−9の変換の高速実装を用いる動画像復号化器のブロック図である。 正規直交変換に対応する従来技術のバタフライ演算の図である。 スケーリングなしの4点のWMV9/VC−9の順変換に関する高速実装のブロック図である。 スケーリングなしの4点のWMV9/VC−9の逆変換に関する高速実装のブロック図である。 スケーリングなしの8点のWMV9/VC−9の順変換に関する高速実装のブロック図である。 スケーリングなしの8点のWMV9/VC−9の逆変換に関する高速実装のブロック図である。 スケーリングなしの8点のWMV9/VC−9の逆変換の他の高速実装のブロック図である。 スケーリングなしの8点WMV9/VC−9の順変換に関する代替の高速実装のブロック図である。 図1および2の動画像符号化器/復号化器の好適なコンピューティング環境のブロック図である。

Claims (13)

  1. Figure 0004425824
    で表される変換行列に基づいて二次元ブロックの次元の少なくとも1つにおける8点のブロック変換に関する変換の高速実装を使用し前記ブロック内の画像メディアデータを変換符号化する方法であって、
    前記画像メディアデータを受信するステップと、
    空間領域の係数の8点集合と、前記少なくとも1つの8点の次元の8点の変換領域の係数との間の変換を行うバタフライ演算の複数の段であって、奇数の変換領域の係数について行列
    Figure 0004425824
    による行列乗算を実行するステップを含む複数の段を実行することによって、前記二次元ブロックの変換行列T により表現されるブロック変換を施して、圧縮または解凍のために前記画像メディアデータを出力データストリームに変換符号化するステップと
    前記データストリームを出力するステップと
    を備えたことを特徴とする方法。
  2. 少なくとも1つの画像についてメディアデータの変換符号化を行うメディアシステムであって、
    前記メディアデータを受信するメディアデータ入力と、
    前記メディアデータを出力データストリームに変換符号化する変換に基づくブロック符号化器であって、
    前記メディアデータの二次元ブロックについて、前記ブロックの順変換を実行し前記ブロックを変換領域に変換する動作をする順変換の段と、
    前記変換領域のブロックを量子化する動作をする量子化の段と、
    前記変換領域のブロックを逆量子化する動作をする逆量子化の段と、
    前記変換領域のブロックの逆変換を実行し、Rを再構成されたブロック、Dを逆量子化されたブロックとすると、形式
    Figure 0004425824
    の再構成されたブロックを出力する逆変換段と
    を含み、前記逆変換の少なくとも1つの次元TまたはTは、8点行列
    Figure 0004425824
    であり、前記逆変換は、一連のバタフライ演算および行列
    Figure 0004425824
    による行列乗算として実装されるブロック符号化器と、
    前記出力データストリームを出力する出力と
    を備えたことを特徴とするメディアシステム。
  3. Figure 0004425824
    で表される変換行列に基づいて二次元ブロックの次元の少なくとも1つにおける8点のブロック変換に関する変換の高速実装を使用し前記二次元ブロック内の少なくとも1つの画像についてメディアデータを変換符号化する方法を実現するためのコンピュータ実行可能ソフトウェア命令を搬送するコンピュータ読み取り可能な媒体であって、前記方法は、
    前記メディアデータを受信するステップと、
    空間領域の係数の8点集合と前記少なくとも1つの8点の次元の8点の変換領域の係数との間の変換を行うバタフライ演算の複数の段を実行するステップと、奇数の変換領域の係数について行列
    Figure 0004425824
    による行列乗算を実行することを含む前記複数の段を実行して、圧縮または解凍のために前記画像メディアデータを出力データストリームに変換符号化するステップと
    前記データストリームを出力するステップと
    を備えたことを特徴とするコンピュータ読み取り可能な媒体。
  4. 空間領域の表現と変換領域の表現との間における、少なくとも1つの次元が8点である画像データの二次元ブロック高速変換を用いて二次元メディアブロックの変換復号化に基づく圧縮または解凍方法であって
    前記メディアデータを受信するステップと、
    順変換について、変数0から7までの集合に対し、少なくとも、
    値cおよびsが1である、変数0および7のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    後に変数6の符号反転が続く、値cおよびsが5および3である、変数5および6のバタフライ演算と、
    値cおよびsが1である、変数5および6の第2のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行するステップと、
    前記変数5および6の第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行するステップと
    を含み、前記変換領域内で0から3までの前記変数は偶数の係数を出力し、4から7の前記変数は奇数の係数を出力して、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化するステップと
    前記データストリームを出力するステップと
    を備えたことを特徴とする変換復号化に基づく圧縮または解凍方法
  5. 逆変換について、
    前記順変換の逆フローで前記バタフライ演算の逆演算を実行するステップをさらに備えたことを特徴とする請求項4に記載の変換復号化に基づく圧縮または解凍方法
  6. 空間領域の表現と変換領域の表現との間における、少なくとも1つの次元が8点である画像データの二次元ブロック高速変換を用いて二次元メディアブロックの変換復号化に基づく圧縮または解凍方法であって
    前記メディアデータを受信するステップと、
    逆変換について、変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    値cおよびsが1である、変数5および6のバタフライ演算と、
    後に変数5の符号反転が続く、値cおよびsが5および3である、変数6および5の第2のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数0および7のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行するステップと、
    前記変数5および6の第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行するステップと
    を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化するステップと、
    前記データストリームを出力するステップと
    を備えたことを特徴とする変換復号化に基づく圧縮または解凍方法
  7. 空間領域の表現と変換領域の表現との間における、少なくとも1つの次元が8点である画像データの二次元ブロック高速変換を用いて二次元メディアブロックの変換復号化に基づく圧縮または解凍方法であって
    前記メディアデータを受信するステップと、
    逆変換について、変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    後に変数6の符号反転が続く、値cおよびsが5および3である、変数5および6のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    値cおよびsが1である、変数5および6の第2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数0および7のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行するステップと、
    前記変数4および7のバタフライ演算の後、前記変数5および6の第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行するステップと
    を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化するステップと、
    前記データストリームを出力するステップと
    を備えたことを特徴とする変換復号化に基づく圧縮または解凍方法
  8. 前記圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化するステップは、順変換について、
    前記順変換の逆フローで前記バタフライ演算の逆演算を実行するステップをさらに含むことを特徴とする請求項7に記載の変換復号化に基づく圧縮または解凍方法
  9. 空間領域の表現と変換領域の表現との間における、少なくとも1つの次元が8点である画像データの二次元ブロック高速変換を用いて二次元メディアブロックの変換復号化に基づく圧縮または解凍方法であって
    前記メディアデータを受信するステップと、
    順変換について、
    変数0から7までの集合に対し、少なくとも、
    値cおよびsが1である、変数0および7のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数5および6の第1のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    後に変数5の符号反転が続く、値cおよびsが5および3である、変数6および5の第2のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行するステップと、
    前記変数5および6の第1のバタフライ演算の後、前記変数4および7のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行するステップと
    を含み、前記変換領域内で0から3までの前記変数は偶数の係数を出力し、4から7の前記変数は奇数の係数を出力して、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化するステップと、
    前記データストリームを出力するステップと
    を備えたことを特徴とする変換復号化に基づく圧縮または解凍方法
  10. 変換行列
    Figure 0004425824
    に基づき、少なくとも1つの8点の次元における、少なくとも1つの画像について二次元メディアブロックの変換に基づく圧縮/解凍を実行する二次元メディア圧縮プロセッサであって、
    前記メディアブロックを入力する手段と、
    変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    値cおよびsが1である、変数0および7のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    後に変数6の符号反転が続く、値cおよびsが5および3である、変数5および6のバタフライ演算と、
    値cおよびsが1である、変数5および6の第2のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行することによって、前記メディア元ブロックの変換行列T により表現されるブロック変換を施す手段を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化する手段と、
    前記変数5および6の第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行する手段と
    前記出力データストリームを出力する手段と
    を備えることを特徴とする二次元メディア圧縮プロセッサ。
  11. 変換行列
    Figure 0004425824
    に基づき、少なくとも1つの8点の次元における、少なくとも1つの画像について二次元メディアブロックの変換に基づく圧縮/解凍を実行する二次元メディア圧縮プロセッサであって、
    前記メディアブロックを入力する手段と、
    変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    値cおよびsが1である、変数5および6のバタフライ演算と、
    後に変数5の符号反転が続く、値cおよびsが5および3である、変数6および5の第2のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数0および7のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行する手段を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化する手段と、
    前記変数5および6の第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行する手段と
    前記出力データストリームを出力する手段と
    を備えることを特徴とする二次元メディア圧縮プロセッサ。
  12. 変換行列
    Figure 0004425824
    に基づき、少なくとも1つの8点の次元における、少なくとも1つの画像について二次元メディアブロックの変換に基づく圧縮/解凍を実行する二次元メディア圧縮プロセッサであって、
    前記メディアブロックを入力する手段と、
    変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    後に変数6の符号反転が続く、値cおよびsが5および3である、変数5および6のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    値cおよびsが1である、変数5および6の第2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数0および7のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行する手段を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化する手段と、
    変数4および7の前記バタフライ演算の後、変数5および6の前記第2のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行する手段と
    前記出力データストリームを出力する手段と
    を備えることを特徴とする二次元メディア圧縮プロセッサ。
  13. 変換行列
    Figure 0004425824
    に基づき、少なくとも1つの8点の次元における、少なくとも1つの画像について二次元メディアブロックの変換に基づく圧縮/解凍を実行する二次元メディア圧縮プロセッサであって、
    前記メディアブロックを入力する手段と、
    変数0から7までの集合に対し、変数0から3までは偶数の変換係数であり、変数4から7までは奇数の変換係数であり、少なくとも、
    値cおよびsが1である、変数0および7のバタフライ演算と、
    値cおよびsが1である、変数1および6のバタフライ演算と、
    値cおよびsが1である、変数2および5のバタフライ演算と、
    値cおよびsが1である、変数3および4のバタフライ演算と、
    値cおよびsが1である、変数0および3のバタフライ演算と、
    値cおよびsが1である、変数1および2のバタフライ演算と、
    値cおよびsが1であり、12によるスケーリングが行われる、変数0および1のバタフライ演算と、
    値cおよびsが16および6である、変数3および2のバタフライ演算と、
    値cおよびsが1である、変数5および6の第1のバタフライ演算と、
    値cおよびsが4および1である、変数4および7のバタフライ演算と、
    後に変数5の符号反転が続く、値cおよびsが5および3である、変数6および5の第2のバタフライ演算とを含む、
    Figure 0004425824
    型の一連のバタフライ演算を実行する手段を含む、圧縮または解凍のために前記メディアデータを出力データストリームに変換符号化する手段と
    前記変数5および6の第1のバタフライ演算の後、前記変数4および7のバタフライ演算の前に、行列
    Figure 0004425824
    による変数4および5と変数7および6の行列乗算を実行する手段と
    前記出力データストリームを出力する手段と
    を備えることを特徴とする二次元メディア圧縮プロセッサ。
JP2005142843A 2004-05-14 2005-05-16 動画像コーデック変換の高速実装 Expired - Fee Related JP4425824B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/845,808 US7487193B2 (en) 2004-05-14 2004-05-14 Fast video codec transform implementations

Publications (2)

Publication Number Publication Date
JP2005327298A JP2005327298A (ja) 2005-11-24
JP4425824B2 true JP4425824B2 (ja) 2010-03-03

Family

ID=34939513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005142843A Expired - Fee Related JP4425824B2 (ja) 2004-05-14 2005-05-16 動画像コーデック変換の高速実装

Country Status (5)

Country Link
US (1) US7487193B2 (ja)
EP (1) EP1596309A3 (ja)
JP (1) JP4425824B2 (ja)
KR (1) KR101153105B1 (ja)
CN (1) CN1697328B (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
US20070147496A1 (en) * 2005-12-23 2007-06-28 Bhaskar Sherigar Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
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
US8228983B2 (en) * 2007-12-04 2012-07-24 Hong Kong Applied Science And Technology Research Method and device for order-16 integer transform from order-8 integer cosine transform
US8438036B2 (en) * 2009-09-03 2013-05-07 Texas Instruments Incorporated Asynchronous sampling rate converter for audio applications
JP5620587B2 (ja) 2010-09-28 2014-11-05 サムスン エレクトロニクスカンパニー リミテッド ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
US9378185B2 (en) * 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
JP5678593B2 (ja) * 2010-11-12 2015-03-04 沖電気工業株式会社 符号化支援装置、符号化装置、復号支援装置、復号装置、符号化支援プログラム、及び復号支援プログラム
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
EP2777287A2 (en) * 2011-11-07 2014-09-17 VID SCALE, Inc. Video and data processing using even-odd integer transforms background
US8719321B2 (en) * 2011-12-11 2014-05-06 Hong Kong Applied Science and Technology Research Institute Company Limited Adaptive block-size transform using LLMICT
US9069726B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Iteratively calculating standard deviation for streamed data
CN103905825B (zh) * 2012-12-27 2018-02-13 中国电信股份有限公司 视频图像的运动补偿方法和装置
US10275488B1 (en) * 2014-12-09 2019-04-30 Cloud & Stream Gears Llc Incremental covariance calculation for big data or streamed data using components
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63219066A (ja) 1987-03-06 1988-09-12 Matsushita Electric Ind Co Ltd 直交変換装置
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5379351A (en) * 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5319724A (en) 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
JP2945487B2 (ja) * 1990-12-26 1999-09-06 株式会社日立製作所 行列乗算器
JPH04282988A (ja) 1991-03-12 1992-10-08 Sony Corp データ変換装置及び方法
US5168375A (en) * 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
JPH0645948A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0654307A (ja) 1992-07-29 1994-02-25 Casio Comput Co Ltd データ圧縮装置
JP3069455B2 (ja) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
US5995539A (en) * 1993-03-17 1999-11-30 Miller; William J. Method and apparatus for signal transmission and reception
JP3697717B2 (ja) * 1993-09-24 2005-09-21 ソニー株式会社 2次元離散コサイン変換装置および2次元逆離散コサイン変換装置
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
JP2778622B2 (ja) 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JP2914226B2 (ja) 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
JP3274593B2 (ja) * 1995-09-27 2002-04-15 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JPH1091614A (ja) 1996-09-13 1998-04-10 Hitachi Ltd Idctの整数化法
SG54383A1 (en) * 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
US5883823A (en) 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
CN1064507C (zh) * 1997-03-06 2001-04-11 华邦电子股份有限公司 可巡回执行的离散余弦转换及其逆转换集成电路处理器
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
JPH11122624A (ja) * 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
US6006179A (en) * 1997-10-28 1999-12-21 America Online, Inc. Audio codec using adaptive sparse vector quantization with subband vector classification
CN1149499C (zh) * 1997-11-17 2004-05-12 索尼电子有限公司 用于采用离散变换进行数字视频数据压缩的方法和系统
US6137916A (en) * 1997-11-17 2000-10-24 Sony Electronics, Inc. Method and system for improved digital video data processing using 8-point discrete cosine transforms
WO1999029112A1 (en) * 1997-12-01 1999-06-10 Matsushita Electric Industrial Co., Ltd. Image processor, image data processor and variable length encoder/decoder
KR100441466B1 (ko) * 1997-12-19 2004-07-23 인피니언 테크놀로지스 아게 상수 팩터 승산을 위한 장치와 비디오 압축(mpeg)을 위한 상기 장치의 사용방법
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
GB9819648D0 (en) * 1998-09-10 1998-11-04 Nds Ltd Determining visually noticeable differences between two images
CN1147155C (zh) * 1998-12-14 2004-04-21 松下电器产业株式会社 Dct运算装置
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
US6473534B1 (en) 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
US6487574B1 (en) 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) * 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
JP4027011B2 (ja) * 1999-04-28 2007-12-26 キヤノン株式会社 画像形成装置
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6507614B1 (en) * 1999-10-19 2003-01-14 Sony Corporation Efficient de-quantization in a digital video decoding process using a dynamic quantization matrix for parallel computations
AU2063401A (en) 1999-12-06 2001-06-12 Hrl Laboratories, Llc Variable precision wavelets
JP3593944B2 (ja) * 2000-03-08 2004-11-24 日本電気株式会社 画像データ処理装置及びそれに用いる動き補償処理方法
US6606725B1 (en) * 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
US8374237B2 (en) * 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
JP4063508B2 (ja) * 2001-07-04 2008-03-19 日本電気株式会社 ビットレート変換装置およびビットレート変換方法
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
JP2003348598A (ja) 2002-04-12 2003-12-05 Seiko Epson Corp メモリ効率のいい圧縮領域ビデオ処理のための且つ因数分解及び整数近似法を用いる高速逆動き補償のための方法並びに装置
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US20050213835A1 (en) * 2004-03-18 2005-09-29 Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. Integer transform matrix selection method in video coding and related integer transform method
JP4074868B2 (ja) * 2004-12-22 2008-04-16 株式会社東芝 画像符号化制御方法及びその装置
CN100539437C (zh) * 2005-07-29 2009-09-09 上海杰得微电子有限公司 一种音频编解码器的实现方法

Also Published As

Publication number Publication date
US7487193B2 (en) 2009-02-03
KR20060047898A (ko) 2006-05-18
KR101153105B1 (ko) 2012-06-04
EP1596309A2 (en) 2005-11-16
EP1596309A3 (en) 2013-12-04
US20050256916A1 (en) 2005-11-17
CN1697328A (zh) 2005-11-16
CN1697328B (zh) 2010-04-28
JP2005327298A (ja) 2005-11-24

Similar Documents

Publication Publication Date Title
JP4425824B2 (ja) 動画像コーデック変換の高速実装
EP1359546B1 (en) 2-D transforms for image and video coding
EP1672517B1 (en) Reversible transform for lossy and lossless 2-D data compression
JP5661836B2 (ja) 逆離散コサイン変換の計算中の誤差の低減
KR101507183B1 (ko) 변환-기반 디지털 미디어 코덱에서의 계산 복잡도 및 정밀도 제어
KR101131757B1 (ko) 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인
US20070081734A1 (en) Multimedia signal processing using fixed-point approximations of linear transforms
US6993550B2 (en) Fixed point multiplying apparatus and method using encoded multiplicand

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090902

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: 20091124

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: 20091209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees