JP5797774B2 - メディアデータコーディングのための32点変換 - Google Patents

メディアデータコーディングのための32点変換 Download PDF

Info

Publication number
JP5797774B2
JP5797774B2 JP2013549490A JP2013549490A JP5797774B2 JP 5797774 B2 JP5797774 B2 JP 5797774B2 JP 2013549490 A JP2013549490 A JP 2013549490A JP 2013549490 A JP2013549490 A JP 2013549490A JP 5797774 B2 JP5797774 B2 JP 5797774B2
Authority
JP
Japan
Prior art keywords
scaled
transform
point
unit
transforms
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
JP2013549490A
Other languages
English (en)
Other versions
JP2014509108A (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 JP2014509108A publication Critical patent/JP2014509108A/ja
Application granted granted Critical
Publication of JP5797774B2 publication Critical patent/JP5797774B2/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
    • 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]

Landscapes

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

Description

本出願は、これらの米国仮出願の各々の内容全体が参照により本明細書に組み込まれる、2011年1月10日に出願された米国仮出願第61/431,343号、2011年1月14日に出願された米国仮出願第61/433,015号、2011年1月17日に出願された米国仮出願第61/433,351号、2011年2月25日に出願された米国仮出願第61/446,834号および2011年7月1日に出願された米国仮出願第61/504,146号の利益を主張する。
本開示は、データ圧縮に関し、より詳細には、変換を含むデータ圧縮に関する。
データ圧縮は、データ記憶空間、送信帯域幅、またはその両方の消費を低減するために、様々な適用例において広く使用されている。データ圧縮の例示的な適用例には、デジタルビデオ、画像、音声、およびオーディオコーディングなど、可視または可聴メディアデータコーディングがある。たとえば、デジタルビデオコーディングは、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスにおいて使用されている。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、MPEG−2規格、MPEG−4規格、H.264/MPEG−4 Advanced Video Coding(AVC)規格、または(新生のH.265規格と呼ばれることがある)新生のHigh Efficiency Video Coding(HEVC)規格などの規格に従ってビデオ圧縮技法を実装する。
ビデオ圧縮技法では、ビデオデータに固有の冗長性を低減または除去するために空間的予測、動き推定および動き補償を実行し得る。特に、イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングでは、ビデオエンコーダは、2つ以上の隣接するフレーム間の(H.264/MPEG−4 AVC規格など、様々なビデオコーディング規格においてブロックと呼ばれることがある)マッチングユニットの移動を追跡するために動き推定を実行する。動き推定は、1つまたは複数の参照フレーム中の対応するユニットに対する現在フレームのユニットの変位を示す動きベクトルを生成する。動き補償は、その動きベクトルを使用して、参照フレームから予測データを生成する。動き補償の後、元のユニットから予測データを減算することによって残差データが形成される。
ビデオエンコーダは、ビデオコーディングプロセスによって生成された残差データのビットレートをさらに低減するために、変換を適用し、その後、量子化およびロスレス統計的コーディングプロセスを適用する。いくつかの事例では、適用される変換は離散コサイン変換(DCT)を備える。一般に、DCTは、(しばしば「16×16ユニット」と呼ばれる)高さ16ピクセル×幅16ピクセルであるコーディングユニットなど、サイズが2のべき乗であるコーディングユニットに適用される。したがって、DCT係数の16点アレイを生成するために、これらのDCTが16×16ユニットに適用されるという点で、これらのDCTは16点DCTと呼ばれることがある。16点DCTを残差データに適用することから生成されたDCT係数の16点アレイは、次いで、量子化プロセスおよび(一般に「エントロピーコーディング」プロセスとして知られる)ロスレス統計的コーディングプロセスを受けて、ビットストリームを生成する。統計的コーディングプロセスの例には、コンテキスト適応型可変長コーディング(CAVLC)またはコンテキスト適応型バイナリ算術コーディング(CABAC)がある。ビデオデコーダは、符号化ビットストリームを受信し、ロスレス復号を実行してDCT係数を復元し、ビデオデコーダは、次いで、1つまたは複数の16点逆DCT(IDCT)の適用を通してそのDCT係数を空間領域に逆変換して、ユニットの各々について残差データを形成する。残差データと動き情報とを使用して、ビデオデコーダは符号化ビデオを再構成する。
概して、本開示は、32点離散コサイン変換(DCT)だけでなく、異なるサイズの複数の異なるDCTを実行することが可能な32点DCTの実装を使用して、メディアデータなどのデータをコーディングするための技法を対象とする。一例として、本開示の技法に従って構築された32点DCT実装は、サイズ32のDCTを実行し、サイズ16のDCTを実行するスケーリングされた16点DCT実装と、サイズ8のDCTを実行する少なくとも1つのDCT実装とを含む。別の例では、本開示の技法に従って構築された32点DCT実装は、サイズ32の線形DCTを実行し、サイズ16のDCTを実行する16点DCTを含み、この16点DCTは、互いに同時に動作し得る、サイズ8の線形DCTをそれ自体で実行する少なくとも1つの8点DCT実装と、サイズ4の線形DCTをそれぞれ実行する少なくとも2つの4点DCT実装とをさらに実行する。さらに、8点DCT実装は、少なくとも2つの4点DCT実装によって実行される4点DCTと同時に動作し得る、サイズ4の別の線形DCTを実行するさらに別の4点DCT実装を含み得る。この32点DCTはまた、サイズ8の2つのDCTを同時に実行することが可能である2つの8点DCTを含み得る。したがって、本開示の技法に従って構築された32点DCT実装は、異なるサイズのいくつかの異なるDCT実装を組み込み得、それにより、別々に実装されたときにこれらのDCTの各々によって従来消費されていたチップ面積と比較して、消費するチップ面積が著しく小さくなり得る。
これらのDCTは、最初に、水平軸などに沿った方向など、ユニットに沿った1つの方向においてこれらの線形DCTのうちの1つを適用することによって、任意の所与のサイズのビデオユニットに適用され、次いで、垂直軸に沿った方向など、ユニットに沿った他の方向において適用され得る。このようにしてこれらのDCTを適用することによって、異なるサイズのDCTが適用され得る。たとえば、基礎をなすビデオブロックのサイズに応じて32×16または16×32DCTを効果的に適用するために、32点DCTが一方向において適用され得、16点DCTが別の方向において適用され得る。このようにして、DCTは、サイズ32×32、32×16、16×32、16×16、16×8、8×16、8×8、8×4、4×8、4×4のDCT、または上記の線形サイズDCTの任意の他の組合せを実行するために適用され得る。
一態様では、コンテンツデータを空間領域から周波数領域に変換するための方法が提供され、本方法は、コンテンツデータを空間領域から周波数領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することであって、スケーリングされた32点変換ユニットが、サイズ32の複数のスケーリングされた変換のうちの第1の変換を実行する、実行することを備える。スケーリングされた32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
別の態様では、装置は、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの複数のスケーリングされた変換を実行するための手段が、複数のスケーリングされた変換のうちの第1の変換を実行し、複数のスケーリングされた変換のうちの第1の変換が、32の変換サイズを定義する、実行するための手段を備える。異なるサイズの複数のスケーリングされた変換を実行するための手段は、複数のスケーリングされた変換のうちの第2の変換を実行するための複数のスケーリングされた変換を実行するための手段の偶数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、手段と、複数のスケーリングされた変換のうちの第3の変換を実行するための複数のスケーリングされた変換を実行するための手段の奇数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、手段とを含む。
別の態様では、装置は、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた32点変換ユニットであって、スケーリングされた32点変換ユニットが、複数のスケーリングされた変換のうちの第1の変換を実行し、複数のスケーリングされた変換のうちの第1の変換が、32の変換サイズを定義する、スケーリングされた32点変換ユニットを備える。32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
別の態様では、実行されたとき、1つまたは複数のプロセッサに、コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する32点変換ユニットを実装することを行わせる命令を備える非一時的コンピュータ可読媒体が提供され、スケーリングされた32点変換ユニットが、サイズ32の複数のスケーリングされた変換のうちの第1の変換を実行する。スケーリングされた32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
別の態様では、変換されたコンテンツデータを周波数領域から空間領域に変換するための方法が提供され、本方法は、変換されたコンテンツデータを周波数領域から空間領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することであって、スケーリングされた32点変換ユニットが、サイズ32の複数のスケーリングされた変換のうちの第1の変換を実行する、実行することを備える。スケーリングされた32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
別の態様では、装置は、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの複数のスケーリングされた変換を実行するための手段が、複数のスケーリングされた変換のうちの第1の変換を実行し、複数のスケーリングされた変換のうちの第1の変換が、32の変換サイズを定義する、実行するための手段を備える。異なるサイズの複数のスケーリングされた変換を実行するための手段は、複数のスケーリングされた変換のうちの第2の変換を実行するための複数のスケーリングされた変換を実行するための手段の偶数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、手段と、複数のスケーリングされた変換のうちの第3の変換を実行するための複数のスケーリングされた変換を実行するための手段の奇数ハーフ中にある手段であって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、手段とを含む。
別の態様では、装置は、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた32点変換ユニットであって、スケーリングされた32点変換ユニットが、複数のスケーリングされた変換のうちの第1の変換を実行し、複数のスケーリングされた変換のうちの第1の変換が、32の変換サイズを定義する、スケーリングされた32点変換ユニットを備える。スケーリングされた32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
別の態様では、非一時的コンピュータ可読媒体は、実行されたとき、1つまたは複数のプロセッサに、コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する32点変換ユニットを実装することを行わせる命令を備え、スケーリングされた32点変換ユニットが、サイズ32の複数のスケーリングされた変換のうちの第1の変換を実行する。スケーリングされた32点変換ユニットは、複数のスケーリングされた変換のうちの第2の変換を実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、複数のスケーリングされた変換のうちの第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、複数のスケーリングされた変換のうちの第3の変換が、8の変換サイズを定義する、少なくとも1つの8点変換ユニットとを含む。
本技法の1つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法を実装し得るビデオ符号化および復号システムを示すブロック図。 図1のビデオエンコーダをより詳細に示すブロック図。 図1のビデオデコーダをより詳細に示すブロック図。 図2の32点DCT−IIユニットの様々な態様をより詳細に示す図。 図2の32点DCT−IIユニットの様々な態様をより詳細に示す図。 図2の32点DCT−IIユニットの様々な態様をより詳細に示す図。 図2の32点DCT−IIユニットの様々な態様をより詳細に示す図。 図2の32点DCT−IIユニットの様々な態様をより詳細に示す図。 本開示の技法に従って構築された32点DCT実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。 本開示の技法に従って構成された32点DCT−III実装を適用する際のコーディングデバイスの例示的な動作を示すフローチャート。 図2に示す32点DCT−IIユニットの別の例示的な実装の様々な態様を示す図。 図2に示す32点DCT−IIユニットの別の例示的な実装の様々な態様を示す図。 図2に示す32点DCT−IIユニットの別の例示的な実装の様々な態様を示す図。 図2に示す32点DCT−IIユニットの別の例示的な実装の様々な態様を示す図。 図2に示す32点DCT−IIユニットの別の例示的な実装の様々な態様を示す図。
概して、本開示は、異なるサイズのいくつかの異なる離散コサイン変換(DCT)を実行することが可能ないくつかの異なるDCT実装を含む32点DCT実装を使用してデータをコーディングするための技法を対象とする。本技法は、デジタルビデオデータ、画像データ、音声データ、および/またはオーディオデータなど、可視メディアデータまたは可聴メディアデータを含む様々なデータを圧縮し、それによって、そのようなデータを表すそのような電気信号を、それらの電気信号のより効率的な処理、送信またはアーカイブのために圧縮信号に変換するために適用され得る。したがって、本開示の技法に従って構築された32点DCT実装は、複数のサイズのDCTを実行することが可能である。複数のサイズのDCTを実行することによって、32点DCT実装は、同様のサイズのDCTを実行するための別個のDCT実装を潜在的になくす。したがって、本開示の技法に従って構築された32点DCT実装は、別個の32点、16点、8点および4点DCT実装の総サイズと比較して32点実装のサイズを大幅に増加させることなしに、16、8および4など、異なるサイズのDCT実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、説明する技法は、いわゆる「ボードスペース」の消費の低減を促進し得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いDCT実装を促進し得る。
上記で示したサイズ、すなわち、32、16、8および4は、個別のデータ単位に関して表される。例示のために、ビデオデータは、特にビデオ圧縮に関しては、しばしば、(HEVC規格に記載されたコーディングユニット(CU:coding unit)などの)ユニットに関して記述される。ユニットは、概して、ビデオフレームの任意のサイズの部分を指し、ビデオフレームは、一連のピクチャまたは画像中のピクチャまたは画像を指す。各ユニットは、一般に、色成分、たとえば、赤、青および緑(いわゆる「色度」または「クロマ」成分)、あるいはルミナンス成分(いわゆる「ルーマ」成分)のいずれかを示す複数の個別のピクセルデータを備える。ピクセルデータの各セットは、ユニット中に単一のピクセルを備え、コーディングユニットに関する個別のデータ単位と考えられ得る。したがって、たとえば、8×8コーディングユニットは、ピクセルデータの8つの列を備え、各列中にピクセルデータの8つの個別のセットがある。色またはルミナンス値を指定するために、各ピクセルにnビット値が割り当てられ得る。
DCTは、データがオーディオ、音声、画像またはビデオデータのいずれであるかにかかわらず、通常、DCTが処理することが可能であるデータのブロックのサイズに関して記述される。たとえば、DCTが32要素データアレイを処理することができる場合、そのDCTは線形32点DCTと呼ばれることがある。異なるサイズのコーディングユニットに対して、32×32、32×16、16×32、16×8、8×16、8×8、8×4、4×8、4×4または任意の他のサイズの組合せを効果的に実行するために、同じまたは異なるサイズの線形DCTが適用され得る。その上、DCTは特定のタイプとして示され得る。8つの異なるタイプのDCTのうちの最も一般的に採用されるタイプのDCTは、「DCT−II」と示され得る、タイプIIのDCTである。しばしば、概括的にDCTに言及するとき、そのような言及は、タイプIIのDCTまたはDCT−IIを指す。DCT−IIの逆元(inverse)は、同様に「DCT−III」と示され得るタイプIIIのDCTと呼ばれるか、または、DCTがDCT−IIを指すという共通の理解があれば、「IDCT」と呼ばれ、「IDCT」中の「I」は逆元を示す。以下のDCTへの言及はこの表記法に準拠し、DCTへの概括的言及は、別段に規定されていない限りDCT−IIを指す。しかしながら、混乱を回避するために、DCT−IIを含むDCTは、以下で、対応するタイプ(II、IIIなど)を示した状態で言及される。
本開示で説明する技法は、データの圧縮および/または復元を可能にするために、32点DCT−IIおよび/または32点DCT−IIIのうちの1つまたは複数の実装を採用するエンコーダおよび/またはデコーダにおいて実装され得る。この場合も、これらの32点DCT−II実装を適用することによって達成される圧縮および復元は、物理的コンピューティングハードウェア、物理的伝送媒体(たとえば、銅、光ファイバー、ワイヤレス、または他のメディア)、および/またはストレージハードウェア(たとえば、磁気または光ディスクまたはテープ、あるいは様々なソリッドステート媒体のいずれか)を使用して、データを表す電気信号がより効率的に処理、送信、および/または記憶され得るように、それらの信号の物理的変換を可能にする。実装は、ハードウェアのみで構成され得るか、またはハードウェアとソフトウェアの組合せで構成され得る。
32点DCT−IIの実装はスケーリングされ得、「スケーリングされた」という用語は、スケーリングされたDCT係数を生成するDCT実装を指す。スケーリングされたDCT係数に、対応するスケールファクタを乗算すると、いわゆる「完全」DCT係数が生成される。スケーリングされたDCT実装は、実装からいくつかのファクタが除去されたDCT実装を表す。概して、これらのファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた16点DCT実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた32点DCT実装によって出力されたスケーリングされたDCT係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全DCT実装は、量子化ユニットなど、ファクタを適用する別のモジュールまたはユニットと組み合わせたスケーリングされたDCT実装よりも概して複雑である。したがって、スケーリングされたDCT実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたDCT実装に関して説明するが、本技法は、スケーリングされていないDCT実装またはいわゆる「完全」DCT実装に適用され得る。
例示のために、装置は、32点DCT変換ユニットの形態で本開示の技法に従って構築された32点DCT実装を含み得る。32点DCT変換ユニットは、コンテンツデータを空間領域から周波数領域に変換するために、異なるサイズのいくつかのスケーリングされたDCT変換を実行し得る。スケーリングされた32点DCTユニットは、サイズ16のいくつかのスケーリングされたDCT変換のうちの第1のDCT変換を実行する少なくとも1つのスケーリングされた16点DCTユニットを含み得る。16点DCTユニットはまた、サイズ8のいくつかのスケーリングされたDCT変換のうちの少なくとも第2の変換を実行する、少なくとも1つのスケーリングされた8点変換ユニット、ならびに、サイズ4のいくつかのスケーリングされたDCT変換のうちの少なくとも第3の変換を実行する、少なくとも1つのスケーリングされた4点変換ユニットを含み得る。スケーリングされた32点DCTユニットはまた、サイズ8のいくつかのスケーリングされたDCT変換のうちの少なくとも第4の変換を実行する、少なくとも1つの8点変換ユニットを含み得る。
この点において、本開示の技法に従って構築された32点DCT実装は、少なくともいくつかの態様では、複数のサイズのDCTを実行し、それによって、複数のサイズのDCTを実行するための別個のDCT実装を潜在的になくすことが可能であり得る。したがって、本技法に従って構築された32点DCT実装は、32点実装のサイズを大幅に増加させることなしに、16、8および4など、異なるサイズのDCT実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、本開示の技法は、いわゆる「ボードスペース」の消費の低減を促進する。別個の32点、16点、8点および4点DCT実装の総サイズと比較して、本開示の32点DCT−II実装は、消費される物理的ボードスペースに関して大幅に小さくなり得、「ボードスペース」という用語は、異なる構成要素間の相互接続を与えるシリコンまたは他の物理的ボード上で消費されるスペースの量を指す。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いDCT実装を促進し得る。
図1は、本開示の技法を実装し得るビデオ符号化および復号システム10を示すブロック図である。図1の例に示すように、システム10は、宛先デバイス14による復号のために符号化ビデオを生成するソースデバイス12を含む。ソースデバイス12は、通信チャネル16を介して宛先デバイス14に符号化ビデオを送信するか、あるいは、必要に応じて符号化ビデオが宛先デバイス14によってアクセスされ得るように記憶媒体34またはファイルサーバ36に符号化ビデオを記憶し得る。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、(セルラー電話またはハンドセットおよびいわゆるスマートフォンを含む)電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。
多くの場合、そのようなデバイスはワイヤレス通信のために装備され得る。したがって、通信チャネル16はワイヤレスチャネルを備え得る。代替的に、通信チャネル16は、ワイヤードチャネル、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、ワイヤレスチャネルおよびワイヤードチャネルまたは他のタイプの通信チャネルの組合せ、あるいは符号化ビデオデータの送信に好適な通信チャネルの組合せを備え得る。いくつかの例では、通信チャネル16は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、したがって、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
図1の例にさらに示すように、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22(「モデム22」)と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイスなどのソースを含み得る。ビデオキャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされたビデオを含んでいているビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックシステムのうちの1つまたは複数を含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、ワイヤレスアプリケーションまたは設定に限定されず、ビデオ符号化および/または復号機能を含む非ワイヤレスデバイスに適用され得る。ソースデバイス12および宛先デバイス16は、したがって、本明細書で説明する技法をサポートすることができるコーディングデバイスの例にすぎない。
ビデオエンコーダ20は、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオを符号化し得る。符号化されると、ビデオエンコーダ20が、この符号化されたビデオをモデム22に出力し得る。モデム22が、次いで、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオを変調し得、その後、送信機24が、変調された符号化ビデオデータを宛先デバイス14に送信し得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
ビデオエンコーダ20によって符号化される、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオはまた、後の取出し、復号および消費のために、記憶媒体34またはファイルサーバ36上に記憶され得る。記憶媒体34は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化されたビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。宛先デバイス14は、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオにアクセスし、この符号化ビデオを復号して、復号されたビデオを生成し、この復号されたビデオを再生し得る。
ファイルサーバ36は、符号化ビデオを記憶し、その符号化ビデオを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶し、それを宛先デバイスに送信することが可能な他のタイプのデバイスがある。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続に従ってファイルサーバ36にアクセスし得る。この接続は、ワイヤレスチャネル(たとえば、Wi−Fi接続またはワイヤレスセルラーデータ接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、ワイヤードチャネルとワイヤレスチャネルの両方またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な他のタイプの通信チャネルの組合せを含み得る。
宛先デバイス14は、図1の例では、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス29とを含む。宛先デバイス14の受信機26は、チャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のために復調されたビットストリームを生成する。チャネル16を介して通信される情報は、関連する符号化ビデオデータを復号する際にビデオデコーダ30が使用するためにビデオエンコーダ20によって生成される様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
宛先デバイス14のディスプレイデバイス29は、閲覧者による消費のためにビデオデータを提示することが可能な任意のタイプのディスプレイを表す。宛先デバイス14に組み込まれるように示されているが、ディスプレイデバイス29は、宛先デバイス14に、またはその外部に組み込まれ得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み得、また外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス29は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
本開示は、概して、ビデオデコーダ30など、別のデバイスにシンタックス情報を「シグナリング」するビデオエンコーダ20に言及し得る。ただし、ビデオエンコーダ20は、シンタックス要素を、ビデオデータの様々な符号化された部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、いくつかのシンタックス要素を、ビデオデータの様々な符号化された部分のヘッダに記憶することによってデータを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信され、復号されるより前に、符号化され、記憶され(たとえば、記憶媒体34またはファイルサーバ36に記憶され)得る。したがって、「シグナリング」という用語は、通信がリアルタイムまたはほぼリアルタイムで行われるか、あるいは、符号化時に媒体にシンタックス要素を記憶し、次いで、この媒体に記憶された後の任意の時間にそのシンタックス要素が復号デバイスによって取り出され得るときなどに行われ得る、ある時間期間にわたって行われるかにかかわらず、概して、圧縮ビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指し得る。
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHigh Efficiency Video Coding(HEVC)規格など、ビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM:HEVC Test Model)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリまたは業界標準、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、MPEG−2およびITU−T H.263がある。
HMでは、ビデオデータのブロックをコーディングユニット(CU)と呼ぶ。概して、CUは、CUが、H.264のマクロブロックに関連するサイズ差異を有しないことを除いて、H.264に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニット(LCU:largest coding unit)またはLCUのサブCUを指すことがある。たとえば、ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUを定義し得る。LCUはサブCUに分割され得、各サブCUはサブCUに分割され得る。ビットストリームのシンタックスデータは、最大CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。
LCUは階層4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、そのCUに対応するノードは、サブCUに対応する4つのノードの各々への参照を含む。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
分割されないCUは、1つまたは複数の予測ユニット(PU:prediction unit)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。動きベクトルは、概して、1つまたは複数の参照フレーム中のコロケートCUを識別し、「参照フレーム」という用語は、PUがその中に配置されたフレームの前または後に時間的に生じるフレームを指す。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルがそれにポイントする参照フレーム、識別された参照フレームが現在フレームの前にあるか後にあるかを識別する予測方向、および/または動きベクトルの参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。(1つまたは複数の)PUを定義するCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
1つまたは複数の動きベクトルを定義する1つまたは複数のPUを有することに加えて、CUは、1つまたは複数の変換ユニット(TU:transform unit)を含み得る。PUを使用した予測の後に、ビデオエンコーダは、PUに対応するCUの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、同じCUの対応するPUよりも大きいことも小さいこともある。いくつかの例では、TUの最大サイズは、対応するCUのサイズであり得る。本開示ではまた、CU、PU、および/またはTUのいずれか1つまたは組合せを指すために「ブロック」という用語を使用する。
概して、符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダ20は、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロック中のピクセル値を、前にコーディングされたピクチャのデータに対して予測することを伴う。
イントラ予測またはインター予測の後に、ビデオエンコーダ20はブロックの残差ピクセル値を計算し得る。残差値は、概して、ブロックの予測ピクセル値データと、ブロックの真のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの1つまたは複数のブロックに関連し得る。
ブロックの残差値をさらに圧縮するために、残差値は、(「エネルギー」とも呼ばれる)できるだけ多くのデータをできるだけ少数の係数に圧縮する変換係数のセットに変換され得る。変換技法は、離散コサイン変換(DCT)プロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、あるいは他のタイプの変換を備え得る。この変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の2次元行列に対応する。言い換えれば、元のブロック中のピクセルとちょうど同数の変換係数がある。ただし、変換により、変換係数の多くは、0に等しい値を有し得る。
ビデオエンコーダ20は、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。より詳細には、量子化は、LCUレベルで定義され得る量子化パラメータ(QP:quantization parameter)に従って適用され得る。したがって、LCU内のCUの異なるPUに関連するTU中のすべての変換係数に同じ量子化レベルが適用され得る。ただし、QP自体をシグナリングするのではなく、QPの変化(すなわち、Δ)がLCUとともにシグナリングされ得る。ΔQPは、前に通信されたLCUのQPなど、何らかの参照QPに対するLCUの量子化パラメータの変化を定義する。
量子化の後に、ビデオエンコーダ20は、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。ビデオエンコーダ20は、次いで、得られたアレイを符号化してデータをなお一層圧縮するために、(誤記により「エントロピー符号化」と通常呼ばれる)統計的ロスレス符号化を実行し得る。概して、エントロピーコーディングは、一連の量子化変換係数および/または他のシンタックス情報を一括して圧縮する1つまたは複数のプロセスを備える。たとえば、ΔQP、予測ベクトル、コーディングモード、フィルタ、オフセット、または他の情報など、シンタックス要素はまた、エントロピーコード化ビットストリーム中に含まれ得る。走査された係数は、次いで、たとえば、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または他の統計的ロスレスコーディングプロセスによって、任意のシンタックス情報とともにエントロピーコーディングされる。
上述のように、図1の例に示すシステム10のビデオエンコーダ20および/またはビデオデコーダ30は、それぞれ32点DCT−IIの実装とその逆元(たとえば、32点DCT−III)とを含むように構成され得、32点DCT−II実装は、本開示で説明する技法に従って構築される。ITU−T H.264規格は、ルーマ成分では16×16、8×8、4×4、およびクロマ成分では8×8など、様々なブロックサイズのイントラ予測をサポートするが、コーディング効率を改善するためのこの規格の改訂が現在進行中である。MPEGとITU−Tとのコラボレーションである、Joint Collaborative Team−Video Coding(JCT−VC)によって提案された1つの改訂された規格は、High Efficiency Video Coding(HEVC)と呼ばれることがある。いくつかの例では、本開示の技法に従って構築されたタイプIIの32点DCT(「DCT−II」)実装は、コーディング効率を維持しながら、また実装サイズを低減し、それによって、消費される物理的ボードスペースを小さくし、電力効率を促進し得る。したがって、HEVCおよび他の発展中の規格または仕様は、本開示で説明する技法に準拠するDCT−IIおよびDCT−III実装を考慮し得る。
本開示で説明する技法によれば、32点DCT−IIの実装は、異なるサイズの複数のDCT−IIを行う。ビデオエンコーダ20は、この32点DCT−II実装を表す(説明を簡単にするために図1には示されていない)32点DCT−IIユニットを含み得る。32点DCT−IIユニットは、概して、コンテンツデータを空間領域から周波数領域に変換するために、異なるサイズの複数またはいくつかのスケーリングされたDCT変換を実行する。一例として、32点DCT−IIユニットは、スケーリングされた変換のうちの1つを実行する32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットを含み得、複数のスケーリングされた変換のうちの第2の変換は、16の変換サイズを定義する。32点DCT−IIユニットはまた、複数のスケーリングされた変換のうちの第3の変換を実行する32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットを含み得、スケーリングされた変換のうちのこの変換は、8の変換サイズを定義する。
この点において、本開示の技法に従って構築された単一の32点DCT−II実装は、少なくともいくつかの態様では、複数のサイズのDCTを実行し、それによって、同様のサイズのDCTを実行するための別個のDCT実装を潜在的になくすことが可能である。したがって、本技法に従って構築された32点DCT実装は、32点実装のサイズを大幅に増加させることなしに、16および8など、異なるサイズのDCT実装を組み込むか、ネスティングするか、または場合によっては埋め込むので、本開示の技法は、シリコンボード上で消費される物理的スペースの面積を指すいわゆる「ボードスペース」の消費の低減を促進し得る。別個の32点、16点および8点DCT実装の総サイズと比較して、32点DCT−II実装は、消費される物理的ボードスペースに関して大幅に小さくなり得る。消費されるボードスペースが小さいことは、概して電力消費量の低減につながり、したがって、本開示の技法は、よりエネルギー効率が高いDCT実装を促進し得る。
本開示の技法に従って構築された32点DCT−IIの実装はスケーリングされ得、「スケーリングされた」という用語は、いわゆる「完全」DCT係数でない、スケーリングされたDCT係数を生成するDCT実装を指す。スケーリングされたDCT実装は、実装からいくつかのファクタが除去されたDCT実装を表す。概して、これらの除去されたファクタは、所与のコーディングデバイスまたはシステムの別の要素、モジュール、またはユニットに組み込まれる。たとえば、ビデオエンコーダは、本開示の技法に従って構築されたスケーリングされた32点DCT実装を含み得る。ビデオエンコーダは、概して、除去されたファクタを量子化ユニットに組み込み、量子化ユニットは、スケーリングされた32点DCT実装によって出力されたスケーリングされたDCT係数を量子化する。量子化ユニットは、概して、量子化ユニットの複雑さを大幅に増加させることなしにこれらのファクタを適用し得るが、これらのファクタを適用する完全DCT実装は、量子化ユニットなど、ファクタを適用する別のユニットと組み合わせたスケーリングされたDCT実装よりも概して複雑である。したがって、スケーリングされたDCT実装は、いくつかのコンテキストにおいて、同じコーディング利得を与えながら実装複雑さの低減を可能にし得る。本開示では、スケーリングされたDCT実装に関して説明するが、本技法は、スケーリングされていないDCT実装またはいわゆる「完全」DCT実装に適用され得る。
図2は、図1のビデオエンコーダ20をより詳細に示すブロック図である。ビデオエンコーダ20は、少なくとも部分的に、集積回路デバイスと総称されることがある、1つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオエンコーダ20は、ワイヤレス通信デバイスハンドセットまたはブロードキャストサーバの一部を形成し得る。ビデオエンコーダ20は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオエンコーダ20は、隣接フレーム間のマッチングコーディングユニットの移動を追跡するために動き推定を実行する。
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在コーディングユニット31を受信する。図2の例では、ビデオエンコーダ20は、動き推定ユニット32と、メモリ34と、動き補償ユニット36と、変換ユニット38と、量子化ユニット40と、逆量子化ユニット42と、逆変換ユニット44と、エントロピーコーディングユニット46とを含む。ブロッキングアーティファクトを除去するためにブロックをフィルタ処理するために、ループ内またはポストループデブロッキングフィルタ(図示せず)が適用され得る。ビデオエンコーダ20はまた、加算器48と加算器50とを含む。図2は、コーディングユニットのインターコーディングのためのビデオエンコーダ20の時間的予測構成要素を示す。説明しやすいように図2には示されていないが、ビデオエンコーダ20は、いくつかのコーディングユニットのイントラコーディングのための空間的予測構成要素をも含み得る。
動き推定ユニット32は、上述のように、PUに記憶される1つまたは複数の動きベクトルを生成するために、コーディングユニット31を1つまたは複数の隣接ビデオフレーム中のCUと比較する。以前に符号化されたブロックから再構成されたコーディングユニットを記憶するために任意のタイプのメモリまたはデータ記憶デバイスを備え得るメモリ34から、1つまたは複数の隣接フレームが検索され得る。動き推定が、可変サイズ、たとえば、32×32、32×16、16×32、16×16、16×8、8×16、8×8、またはより小さいCUサイズのCUに対して実行され得る。動き推定ユニット32は、たとえば、レートひずみモデルに基づいて、現在コーディングユニット31に最もぴったりマッチングする隣接フレーム中の1つまたは複数のCUを識別し、隣接フレーム中のCUと現在コーディングユニット31との間の変位を判断する。これに基づいて、動き推定ユニット32は、現在コーディングユニット31と、現在コーディングユニット31をコーディングするために使用される参照フレームからの1つまたは複数のマッチングCUとの間の変位の大きさおよび軌道を示す、1つまたは複数の動きベクトル(MV:motion vector)を生成する。1つまたは複数のマッチングCUは、コーディングユニット31に関連するPUに記憶された動きベクトルを判断するための参照として働くことになる。動き推定ユニット32は、図2の例に示すように、これらのPUをエントロピーコーディングユニット46に出力し得る。
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ20は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。分数ピクセル値をもつ動きベクトルが使用されるとき、動き補償ユニット36中で補間演算が実行される。動き推定ユニット32は、レートひずみモデルなど、いくつかの基準を使用してCUを識別するために、最良のコーディングユニットパーティションを判断し、1つまたは複数の動きベクトルを生成する。たとえば、双方向予測の場合、2つ以上の動きベクトルがあり得る。得られたCUおよび動きベクトルを使用して、動き補償ユニット36は予測ビデオデータを形成する。
ビデオエンコーダ20は、加算器48において、現在コーディングユニット31に記憶された元のビデオデータから、動き補償ユニット36によって生成された予測ビデオデータを減算することによって残差データを判断する。変換ユニット38は、残差変換ブロック係数を生成する変換を適用する。図2に示すように、変換ユニット38は、本開示で説明する技法に従って構築された32点DCT−IIを実装する32点DCT−IIユニット52を含む。32点DCT−IIユニット52は、いくつかの事例では、本開示で説明するように、32点DCT−II、16点DCT−II、8点DCT−IIおよび4点DCT−IIのうちの2つ以上を実行することが可能な32点DCT−IIを実装するソフトウェアを実行するハードウェアユニット(ソフトウェアコードまたは命令を実行するデジタル信号プロセッサまたはDSPなど)を表す。32点DCT−IIユニット52は、本技法を実行する集積回路、および/または本開示で説明する技法を実装するための命令(もしくはコンピュータプログラム製品の形態のソフトウェア)を実行する1つまたは複数のプロセッサを備え得る。32点DCT−IIユニット52は、サイズ32、16、8および4のこれらのDCT−IIのうちの1つまたは複数を残差データに適用して、対応するサイズ16、8および/または4の残差変換係数のブロックを生成する。32点DCT−IIユニット52は、概して、残差ピクセルデータとして表される空間領域から、DCT係数として表される周波数領域に残差データを変換する。変換係数は、少なくとも1つのDC係数と1つまたは複数のAC係数とを含むDCT係数を備え得る。
(HEVCのための様々なワーキングドラフトのうちの1つを指し得る)新生のHEVC規格では、変換は、前のビデオコーディング規格H.264における最大ブロックサイズであった16×16よりも大きいブロックサイズに適用され得る。その上、ビデオコーディングプロセスのこの段階において、CUのサイズとは異なるサイズの変換が、CUに記憶された残差データに適用され得る。残差ビデオデータまたはブロックのサイズとは異なるサイズの変換が適用され得ると仮定すれば、変換ユニット38は、残差ビデオデータに適用される様々な変換に関する情報を記憶する上述の変換ユニット(TU)を生成し得る。変換ユニット38は、図2の例に示すように、TUをエントロピーコーディングユニット46に出力し得る。
量子化ユニット40は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する(たとえば、丸める)。上述のように、量子化ユニット40は、ファクタ化中に除去された内部ファクタを組み込むことによって、スケーリングされた32点DCT−IIユニット52のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット40に組み込むことは量子化ユニット40の実装複雑さを増加させ得ない。この点において、スケーリングされた32点DCT−IIユニット52からファクタを除去することは、量子化ユニット40の実装複雑さを増加させることなしにDCT−IIユニット52の実装複雑さを減少させ、その結果、ビデオエンコーダ20に関する実装複雑さが純減する。
エントロピーコーディングユニット46は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット46は、場合によってはエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行し得る。エントロピーコーディングユニット46は、量子化DCT係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブック(たとえば、CAVLCまたはCABAC)を選択する。このコードブックを使用して、エントロピーコーディングユニット46は、量子化DCT係数を圧縮する方式で、各量子化DCT係数のためのコードを選択する。例示のために、エントロピーコーディングユニット46は、頻繁に発生する量子化DCT係数のための(ビット換算で)短いコードワードと、より少ない頻度で発生する量子化DCT係数のための(ビット換算で)より長いコードワードを選択し得る。短いコードワードが量子化DCT係数よりも少ないビットを使用する限り、平均では、エントロピーコーディングユニット46は量子化DCT係数を圧縮する。エントロピーコーディングユニット46は、ビデオデコーダ26に送られるビットストリームとしてエントロピーコード化係数を出力する。エントロピーコーディングユニット46はまた、動き推定ユニット32および変換ユニット38からそれぞれ受信されたPUおよびTUに対してロスレス統計的コーディングを実行し得る。CUが、量子化残差ビデオデータのブロックに関連するPUとCUの両方を含むことを考えれば、エントロピーコーディングユニット46は、CUに対して統計的ロスレス符号化を効果的に実行して、ロスレス統計的コーディングされたCUをビットストリーム中に挿入し得る。概して、ビデオデコーダ26は、図3の例に関して説明するように、ビットストリームからの符号化ビデオを復号および再構成するために逆演算を実行する。
再構成ユニット42および逆変換ユニット44は、それぞれ、量子化係数を再構成し、逆変換を適用して、残差データを再構成する。逆変換ユニット44は、図3に関して以下で説明する32点DCT−IIIユニット68と同様の、32点DCT−IIユニット52の逆演算を実行する、タイプIIIのDCTと通常呼ばれる逆DCT(IDCT)を含む。この逆32点DCT−IIは、同じく、図3の例に示す32点DCT−IIユニット68と実質的に同様であり得る32点DCT−IIIユニット53として示されている。32点DCT−IIIユニット68は、本技法を実行する集積回路、および/または本開示で説明する技法を実装するための命令(もしくはコンピュータプログラム製品の形態のソフトウェア)を実行する1つまたは複数のプロセッサを備え得る。加算ユニット50は、再構成された残差データを、動き補償ユニット36によって生成された動き補償予測ブロックに加算して、メモリ34に記憶するための再構成されたコーディングユニットを生成する。再構成されたコーディングユニットは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット32および動き補償ユニット36によって使用される。
図3は、図1のビデオデコーダ26の一例をより詳細に示すブロック図である。ビデオデコーダ26は、少なくとも部分的に、集積回路デバイスと総称されることがある、1つまたは複数の集積回路デバイスとして形成され得る。いくつかの態様では、ビデオデコーダ26は、ワイヤレス通信デバイスハンドセットの一部を形成し得る。ビデオデコーダ26は、ビデオフレーム内のブロックのイントラ復号およびインター復号を実行し得る。図3に示すように、ビデオデコーダ26は、図1および図2の例に示すビデオエンコーダ20などのビデオエンコーダによって符号化された符号化ビデオビットストリームを受信する。
図3の例では、ビデオデコーダ26は、エントロピー復号ユニット54と、動き補償ユニット56と、再構成ユニット58と、逆変換ユニット60と、メモリ62とを含む。エントロピー復号ユニット64は、コーディングする際に有用なデータを取得するために、メモリ64に記憶された1つまたは複数のデータ構造にアクセスし得る。ビデオデコーダ26は、加算器66の出力をフィルタ処理するループ内またはポストループデブロッキングフィルタ(図示せず)をも含み得る。ビデオデコーダ26はまた加算器66を含む。図3は、コーディングユニットのインター復号のためのビデオデコーダ26の時間的予測構成要素を示す。図3には示されていないが、ビデオデコーダ26は、いくつかのコーディングユニットのイントラ復号のための空間的予測構成要素をも含み得る。
エントロピー復号ユニット54は、符号化ビデオビットストリームを受信し、(誤記により「エントロピー復号」としばしば呼ばれる)ロスレス統計的復号を実行して、ビットストリームから、量子化残差係数および量子化パラメータ、ならびに、コーディングモード、および動きベクトルとブロック区分とを含み得る動き情報などの他の情報を復号する。新生のHEVC規格では、エントロピー復号ユニット54は、ロスレス統計的復号を実行して、残差ビデオデータと、コード化PUと、コード化TUとを表すエントロピー符号化された量子化DCT係数など、CUの様々な部分を復号し得る。エントロピー復号ユニット54は、復号された量子化残差データと復号されたPUとを動き補償ユニット56に出力する。動き補償ユニット56は、動きベクトルを記憶している復号されたPUを受信し、メモリ62に記憶された1つまたは複数の再構成された参照フレームに対して動き補償を実行して、予測ビデオデータを出力する。
再構成ユニット58は、量子化ブロック係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆変換ユニット60は、逆変換、たとえば、逆DCTを係数に適用して残差データを生成する。より詳細には、逆変換ユニット60は、残差データを生成するために逆変換ユニット60が係数に適用する32点DCT−IIIユニット68を含む。図2の例に示す32点DCT−IIユニット52の逆元である32点DCT−IIIユニット68は、係数を周波数領域から空間領域に変換して、残差データを生成し得る。上記の量子化ユニット40と同様に、再構成ユニット58は、実装複雑さの増加があったとしてもほとんどなしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、32点DCT−IIIユニット68のスケーリングされた性質を考慮する。スケーリングされた32点DCT−IIIユニット68からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ26に関する複雑さが純減し得る。
次いで、予測ユニットは、加算器66によって残差データと加算されて、復号ブロックが形成される。ブロッキングアーティファクトを除去するために復号ブロックをフィルタ処理するために、デブロッキングフィルタ(説明を簡単にするために図3の例には示されていない)が適用され得る。フィルタ処理されたブロックは、次いで、メモリ62に入れられ、メモリ62は、後続のビデオフレームの復号のために参照フレームを与え、また、ディスプレイデバイス28(図1)を駆動するために復号ビデオを生成する。いくつかの事例では、アーティファクトを除去するために、フレームがメモリ62に記憶された後に、フレームをフィルタ処理するためにポストループデブロッキングフィルタが適用され得る。
図4A〜図4Eは、32点DCT−IIユニット52の様々な態様をより詳細に示す図である。図4Aの例では、式(4)に関して以下でそれぞれ数学的に説明する、32点DCT−IIユニット52は、ギブンス回転行列70と、16点DCT−IIユニット73と、第1の8点DCT−IIユニット74Aと、第2の8点DCT−IIユニット74Bと、線形結合(LC:linear combination)ユニット71とを含む。16点DCT−IIユニット73は、8点DCT−IIユニット72と、2つの4点DCT−IIユニット76B、76Cとを含む。32点DCT−IIユニット52の上半分(DCTの「偶数ハーフ」または「偶数部分」と通常呼ばれる)にある8点DCT−IIユニット72はまた、4点DCT−IIユニット76Aを含む。32点DCT−IIユニット52の下側半分または下半分(「奇数ハーフ」または「奇数部分」と通常呼ばれる)は、(バタフライの適用後の)入力x16〜x31に整数値A〜Pを乗算するいわゆるギブンス回転行列70の後に、2つの8点DCT−IIユニット74A、74Bを含む。32点DCT−IIユニット52はまた、8点DCT−IIユニット74A、74Bの出力を相互加算する相互加算ユニット72を含む。図4Aの例には示されていないが、8点DCT−IIユニット74A、74Bは、8点DCT−IVユニット74に形態が似ていることがある(が2倍ほど大きい)16点DCT−IVを実装することが可能な16点DCT−IVユニットを形成するか、または場合によってはその内に含まれ得る。
32点DCT−IIユニット52は、入力x0〜x31を受信し、出力X0〜X31を生成する。バタフライユニット70は、入力x0〜x31を、偶数入力x0、x2、x4、x6、x8、x10、x12、x14、x16、x18、x20、x22、x24、x26、x28、およびx30と、奇数入力x1、x3、x5、x7、x9、x11、x13、x15、x17、x19、x21、x23、x25、x27、x29およびx31とに再構成し、またそれと同時に、偶数入力に対して相互加算(cross-addition)を、および奇数入力に対して相互減算(cross-subtraction)を実行する。バタフライユニット70は、相互加算された偶数入力を16点DCT−IIユニット73に出力し、相互減算された奇数入力を8点DCT−IIユニット74A、74Bに出力する。この例では、32点DCT−IIユニット56は、32点DCT、16点DCT、8点DCTおよび4点DCTのサイズのDCTのいずれか1つを実行し、ならびに、2つまたは3つの8点DCT、1つ、2つまたは3つの4点DCTおよび1つまたは2つの8点DCT、あるいは1つの16点DCTおよび1つまたは2つの8点DCTを同時に実行し得る。
ギブンス回転行列70に関して示されている文字A32〜P32は内部ファクタを指す。図4Aの例では下付き数字32とともに示されていないが、数字を伴う文字の記法は、各文字が様々なDCTのうちのどれに対応するかを示す。したがって、A32は、32点DCTのAスケーリングファクタを示す。出力X1〜X31は、ファクタ化プロセスによりスケーリングパラメータおよび別のパラメータによってスケーリングされ、これらのファクタは、図1の例では説明を簡単にするために示していない。スケーリングファクタおよび/または他のパラメータは、変数「ξ」および「η」のうちの1つまたは複数として示され得る。これらのファクタは、全体的なビデオコーディングプロセスの複雑さを大幅に増加させることなしに後続の量子化プロセスに組み込まれ得る。このようにして、本開示で説明する技法は、チップ占有面積を低減し(または、言い換えれば、いわゆるボードスペースを減少させ)、より効率的な電力消費を促進しながら効用を高め得る。
図4Bは、16点DCT−IIユニット73の一例を示す図である。図4Bの例では、16点DCT−IIユニット73は、バタフライユニット77と、8点DCT−IIユニット72と、8点DCT−IVユニット74とを含む。8点DCT−IIユニット72は4点DCT−IIユニット76Aを含み、8点DCT−IVユニット74は4点DCT−IIユニット76Bと4点DCT−IIユニット76Cとを含む。8点DCT−IVユニット74はまた、図4Eの例に関して以下でより詳細に説明する、ファクタ乗算ユニット78と相互加算ユニット80とを含む。16点DCT−IIユニット73は、入力x0〜x15を受信し、出力X0〜X15を生成する。バタフライユニット70は、入力x0〜x15を、偶数入力x0、x2、x4、x6、x8、x10、x12、およびx14と、奇数入力x1、x3、x5、x7、x9、x11、x13、およびx15とに再構成し、またそれと同時に、偶数入力に対して相互加算を、および奇数入力に対して相互減算を実行する。バタフライユニット70は、相互加算された偶数入力を8点DCT−IIユニット72に出力し、相互減算された奇数入力を8点DCT−I4ユニット74に出力する。
図4Cは、4点DCT−IIユニット76A〜76Cのうちのいずれか1つの例をより詳細に示す図である。図4Bの例に示す4点DCT−IIユニットが4点DCT−IIユニット76A〜76Cのうちのいずれか1つを表し得ることを反映するために、図4Bの例に示す4点DCT−IIユニットを概括的に4点DCT−IIユニット76と呼ぶ。4点DCT−IIユニット76はバタフライユニット82を含み、バタフライユニット82は、機能に関してバタフライユニット69または77と実質的に同様であるが、32個または16個ではなく4つの入力のみを受信するので、スケールに関しては異なる。バタフライユニット82は、2つの上側の出力における「0」および「2」表記と、2つの下側の出力における「1」および「3」表記とによって示されるように、入力を偶数入力と奇数入力とに再構成する。4点DCT−IIユニット76の、奇数入力に作用する部分は奇数部分と呼ばれ、偶数入力に作用する部分は偶数部分と呼ばれることがある。
奇数部分では、AおよびBと示された2つのファクタが奇数入力に適用されることが示されている(これらのファクタは、図4Cのコンテキストの外部に参照されるとき、A4およびB4として示されることもある)。これらのファクタの値を判断する際に、設計者は、いくつかの問題のバランスをとり得る。しばしば、2のべき乗であるファクタによる乗算が、通常、2進法における右シフトのみを含むことを考えれば、2のべき乗であるファクタは容易に実行され得る。したがって、2のべき乗であるファクタは有利であるが、そのようなファクタは、有意なコーディング利得または圧縮効率を与えるために十分な精度をもつDCT係数を適切に反映しないことがある。代替的に、2のべき乗でないファクタは、より高い精度を与え得るが、容易に実装されず、それにより実装複雑さを増加させ得る。さらに、より大きいファクタは、概して、より多くのコーディング利得を与えるが、有意なより多くのストレージスペースを必要とする一方、より小さいファクタは、より小さいストレージスペースを消費し得るが、より少ないコーディング利得を与え得る。いずれの場合も、4点DCT−IIユニット76によって表されるDCT実装など、所与のDCT実装のファクタを選択する際に、いくつかのトレードオフが必要とされる。これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
図4Dは、8点DCT−IIユニット72をより詳細に示すブロック図である。図4Cの例では、8点DCT−IIユニット72はバタフライユニット84を含み、バタフライユニット84は、機能はバタフライユニット69、77および82と実質的に同様であるが、バタフライユニット84は、バタフライユニット69、77および82によってそれぞれ受信される32個、16個および4つの入力と比較して8つの入力のみを受信することを考えれば、スケールは異なる。いずれの場合も、バタフライユニット84は、それの入力を偶数入力と奇数入力とに再構成し、またそれと同時に、偶数入力を生成するために相互加算を実行し、奇数入力を生成するために相互減算を実行する。8点DCT−IIユニット72の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この場合の偶数部分は、図4Cの例に関して上記で説明した4点DCT−IIユニット76と実質的に同様である、ネスティングされた4点DCT−IIユニット76Aを備える。
8点DCT−IIユニット72の奇数部分は、それぞれ様々な数学演算を実行するいくつかのユニット86〜90を含む。ファクタ乗算ユニット86は、これらの入力にファクタA、B、C、およびDを乗算した後に奇数入力の相互加算を実行する(これらのファクタは、図4Dのコンテキストの外部に参照されるとき、A8、B8、C8およびD8として示されることもある)。ファクタA、B、C、およびDは、様々な利益を促進するために上述の方法で変更され得る変数を表す。相互加算ユニット88は、図4Cの例に関して示されている方法で相互加算を実行し、相互加算ユニット90は、7および1と示された奇数出力を生成するために、外側の加算入力の相互加算を実行する。この場合も、これらの様々なトレードオフをより詳細に示す、ファクタの様々な組合せについて以下で説明する。
図4Eは、8点DCT−IVユニット74をより詳細に示すブロック図である。図4Eの例では、上記のように、8点DCT−IVユニット74は、各々が図4Cの例に関して上記で説明した4点DCT−IIユニット76と実質的に同様であり得る、2つの4点DCT−IIユニット76B、76Cを含む。8点DCT−IVユニット74は、この場合も上記のように、同じくファクタ乗算ユニット78と相互加算ユニット80とを含む。ファクタ乗算ユニット78は、8点DCT−IVユニット74への入力にファクタH、I、J、K、L、M、およびNを乗算し、ファクタを乗算されると、上側の4つの入力に下側の4つの入力を相互加算し、下側の4つの入力から上側の4つの入力を相互減算する。上側の4つの入力は、次いで、4点DCT−IIユニット76Bによって処理され、下側の4つの入力は4点DCT−IIユニット76Cによって処理される。相互加算ユニット80は、次いで、下側の7つの入力を相互加算/減算する(減算は加算の別の形態と考えられる)。ファクタM、N、K、L、I、J、G、およびHは、本明細書の他の場所におけるA16、B16、C16、D16、E16、F16、G16、およびH16に対応する。
概して、上記で説明したDCT−IIまたはDCT−IVユニット72、74および76A−76Cの各々は、上述のファクタA4、B4、A8〜D8、A16〜H16およびA32〜P32に対する乗算器なし実装として表され得る。この場合も、上述のように、A4およびB4は、4点DCTタイプII変換の奇数(下側)部分のバタフライファクタを指す。A8〜D8は、8点DCTタイプII変換の奇数(下側)部分のバタフライファクタを指す。A16〜H16は、16点DCTタイプII変換の奇数(下側)部分のバタフライファクタを指す。最後に、(A32〜P32として示されることもある)A32〜P32は、16点DCTタイプII変換の奇数(下側)部分のバタフライファクタを指す。
32点DCT−IIユニット52は、各出力係数がスケールファクタによって正規化される必要があり得る、スケーリングされた変換を備え得る。さらに、
Figure 0005797774
の別のスケールファクタがあり得、ただし、Nは1次元(1D)DCTのサイズである。この追加のスケールファクタは、32点DCT−IIユニット52を正規直交にするために必要であり得る。2次元変換では、追加のスケールファクタは2/Nである。JCT−VCテストモデルでは、4、8、16、および32の変換サイズが使用される。その場合、この特定のスケールファクタは、ビットシフトとして量子化器ステップサイズに吸収され得る。これについては後で詳細に説明する。次に、32点DCT−II変換52の設計についてより詳細に説明する。最初に、DCT係数の行列が以下の式(1)によって表され得ることについて考えられたい。この議論では、DCTを正規直交にするために必要であるスケーリングファクタは、説明のために無視され得る。
Figure 0005797774
これは、以下の式(2)に従って1/2サイズのDCT−IIブロックおよびDCT−IVブロックにファクタ化され得る。
Figure 0005797774
ただし、IN/2およびJN/2は、相応してN/2×N/2単位行列および順序逆転行列を示し、
Figure 0005797774
は、以下の式(3)に従って定義されたDCT−IV変換の行列を示す。
Figure 0005797774
今度は、DCT−IVは、以下の式(4)に従って分割され得る。
Figure 0005797774
ただし、PNは、以下の式(5)に従って並べ替えを生成する置換行列である。
Figure 0005797774
n/2は、以下の式(6)に従って定義された対角符号交番行列である。
Figure 0005797774
Nは、以下に記載する式(7)によって数学的に定義されたギブンス回転行列であり、
Figure 0005797774
Figure 0005797774
は、残りの1/2サイズのDCT−II変換の行列を示す。
したがって、N=32点変換を計算するために、このファクタ化は、それを、1)変換の偶数部分に存在する16点DCT−IIと、2)変換の奇数部分における2つの8点DCT−IIと、3)ギブンス回転行列R16によって暗示される1つの16点バタフライとに効果的に分割する。
定点実装において32点DCT−II変換を近似するために、ギブンス回転行列R16中のサイン項およびコサイン項は整数または2進分数(dyadic rational)によって近似され得る。この近似は、(A32、B32またはC32、D32などの)定数の各ペアがサイン項およびコサイン項のペアに近似するように定数A32〜P32を選定することによって達成され得る。このようにして、2進分数は、分母が2のべき乗である有理数として定義され得る。一例として、A32およびB32は次式のように選定され得る。
Figure 0005797774
同様に、C32およびD32は次式のように選定され得、
Figure 0005797774
以下同様である。
スケールファクタZ32は以下の式(8)に従って選定され得る。
Figure 0005797774
代替的に、Z32の値は以下の式(9)に従って選定され得る。
Figure 0005797774
これらのファクタを選定することによって、得られた実装は、バランスのとれたより悪い場合の近似誤差を生成し得る。(式8において指定されている)Z32の第1の条件は、直交32点DCT−II変換設計を生じるが、(式9において指定されている)第2の条件は非直交設計を生じる。この設計を実装する際に、スケールファクタZ32は図4A中のずっと右側に移動され得る。したがって、ギブンス回転行列R16中のサイン項およびコサイン項に近似することによって、32点DCT−IIのスケーリングされた近似が取得され得る。そのような32点のスケーリングされたDCT−II変換52は、上述の方法で内部ファクタA32〜P32とスケーリングされた16点DCT−II73とを判断することによって指定され得る。図4Bに示すスケーリングされた16点DCT−II73は、パラメータA4、B4、A8〜D8、およびA16〜H16を指定することによって指定され得る。
一例では、A16〜H16は、16点DCT−IIを表すためのギブンス回転行列R8中のサイン項およびコサイン項に近似する。対応するスケールファクタは、この例では、Z16である。同様に、A8〜D8は、8点DCT−IIを表すためのギブンス回転行列R4中のサイン項およびコサイン項に近似する。対応するスケールファクタはZ8である。さらに、A4およびB4は、4点DCT−IIを表すためのギブンス回転行列R2中のサイン項およびコサイン項に近似する。対応するスケールファクタはZ4である。パラメータA4、B4、A8〜D8、およびA16〜H16は、以下の式(10)によって指定された関係を満たし得る。
Figure 0005797774
以下に示す表1に、32点DCT−II変換のためのこれらのスケールファクタの例示的な値を与える。これらのスケールファクタは、32点DCT−IIユニット73内に含まれないことがあるが、代わりに、除去され、量子化ユニット40に組み込まれ得る。正規化ファクタとも呼ばれるこれらのスケールファクタは、乗算または算術演算の数を低減することによって実装複雑さを改善し得る。これらのスケールファクタが除去された場合、32点DCT−IIユニット72が、DCT係数を正確に表す完全なスケーリングされていない出力を適切に生成するためにスケールファクタによる乗算を必要とするスケーリングされた出力を出力することを考慮して、32点DCT−IIユニット72は、スケーリングされた32点DCT−IIユニット72と呼ばれる。32点DCT−IIユニット72がこれらの外部ファクタを保持する場合、32点DCT−IIユニット72は完全32点DCT−IIユニット72と呼ばれる。コンテキストに応じて、完全ユニットまたはスケーリングされたユニットのいずれかが32点DCT−IIユニット72に採用され得、本開示の技法は、いかなるタイプの完全実装またはスケーリングされた実装にも限定されるべきでない。さらに、前述したように、N点DCT変換を正規直交にするために、N点DCT II変換には2/Nの追加のスケールファクタが必要である。
Figure 0005797774
いずれの場合も、上記は、様々な利益を与える32点DCT−IIユニット52を生成するために、上記の内部ファクタと正規化ファクタとに対して選択され得る、いくつかの例示的な実装固有の値である。一般的な注意として、内部ファクタとスケールファクタとの上記の値は、得られたDCT行列が、以下の式(11)によって定義される直交性特性を保持するように選択される。
Figure 0005797774
ただし、Cは、完全なスケーリングされていない変換行列を表し、CTは行列Cの転置を表し、Iは単位行列であり、aはスカラー定数である。定数aが1の値を取る場合、行列は正規直交である。概して、直交性がDCT−II実装に関して望まれるが、非直交設計を選定することにより、同様の近似誤差のための内部ファクタの大きさが低減され得る。
内部ファクタA4〜B4、A8〜D8、A16〜H16およびA32〜P32の様々な値を調査することにより、これらの値を選択することに関与するトレードオフに関する何らかの指示が与えられる。4点DCT−IIユニット76ならびに内部ファクタA4およびB4で開始して、これらのファクタの値の分析を以下の表2に記載する。
Figure 0005797774
表2を参照すると、近似誤差と、ファクタA4およびB4を記憶するために必要とされるビット数とに関して、内部ファクタA4およびB4の値が示されている。概して、内部ファクタA4およびB4の値のサイズが増加するにつれて、近似誤差は減少し、それらの値を記憶するために必要とされるビット数は増加する。
8点DCT−IIユニット72と内部ファクタA8〜D8とに関する調査を続けて、これらのファクタの値の分析を以下の表3に記載する。
Figure 0005797774
上記の表2に記載した分析と同様に、内部ファクタA8〜D8の値は、サイズが増加するにつれて、近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。
16点DCT−IIユニット73の内部ファクタA16〜H16についての分析を以下の表4に記載する。
Figure 0005797774
上記の表2および表3に記載した分析と同様に、内部ファクタA16〜H16の値は、サイズが増加するにつれて、最大近似誤差は減少し、これらのより大きい値を記憶するために必要とされるビット数は増加する。表4に記載した分析に関して、最大近似誤差は内部ファクタの最初の5つの組合せに対して非常に大きいので、内部ファクタA16〜H16の値の選択肢は6ビット、7ビットおよび8ビット近似の間である。
直交設計の場合における、32点DCT−IIユニット52のギブンス回転行列R16 70の内部ファクタA32〜P32についての分析を以下の表5に記載する。
Figure 0005797774
以下の表6に、直交設計が必要とされないことがあるときの、ギブンス回転行列R16 70の内部ファクタA32〜P32についての分析を提示する。
Figure 0005797774
表2〜表6に示すファクタ化のリストは例にすぎなく、網羅的であると考えられるべきでないことに留意されたい。式(8)(または9)および式(10)において指定されている、内部ファクタとスケールファクタZ4、Z8、Z16、およびZ32との間の関係が満たされている限り、内部ファクタA4、B4、A8〜D8、A16〜H16、およびA32〜P32のための他の選定が可能である。上記の完全な調査分析を用いて、上記の表2〜表6からの内部ファクタA4、B4、A8〜D8、A16〜H16、およびA32〜P32の値の様々な選択を通していくつかの異なる実装または設計が生じ得る。
上記の表4〜表5に示すいくつかの行列係数は、大きい値であり、これらの大きい値による乗算を実行するために必要とされる演算に関する実装複雑さを増加させ得る。また、図4Aにおいて、計算が左側から右側に進むにつれて、ビット深さが増加し得る。これは、記憶バッファ、ならびに算術演算(加算、乗算)を実行するコストに関してコストがかかり得る。これらの大きい値を除去し、変換にわたってダイナミックレンジを平衡させるために、内部ファクタによる乗算の後に、または等価的にバタフライ段の後に右シフトが実装に導入され得る。これは、内部ファクタA4、B4、A8〜D8、A16〜H16、およびA32〜P32のために整数の代わりに2進分数を選定することに等価であり得る。内部ファクタについての1つのそのような選定を上記の表7に示している。右シフトは任意の正の整数単位であり得ることに留意されたい。いくつかの事例では、右シフトの範囲を指定することにおける唯一の制限は、パラメータA4とパラメータB4の右シフトが同じであることである。同様に、いくつかの事例では、A8〜D8の右シフトがそれぞれ同じでなければならない。その上、(この場合も、いくつかの事例では)A16〜H16の右シフトは同じであり得る。さらに、A32〜P32の右シフトは、いくつかの事例では同じであり得る。32点変換、16点変換、8点変換および4点変換の奇数部分における右シフトは独立して選定され得る。右シフトは、これらの整数パラメータを2進分数に変換する。この場合も、2進分数は、分母が2のべき乗である有理数を指す。
Figure 0005797774
2進分数内部ファクタの場合(バタフライ中の両方のファクタは同じ右シフトを共有するので)、右シフトはバタフライの最後に実行され得る。これらの事例では、整数ファクタと2進分数ファクタは同じ方法で処理され得る。バタフライにおける乗算は、その場合、シフトおよび加算に変換され得る。表8は、表7に記載されている内部ファクタの例示的な値についてこれを示している。
Figure 0005797774
Figure 0005797774
32点DCT−IIが乗算および加算を用いて実装される場合、116回の乗算と194回の加算とが必要とされ得る。表7からの内部ファクタの代わりに異なるセットの内部ファクタが選定されたときでも、この数は一般に同じままである。ただし、実装が乗算器なしのときは、(たとえば、ビット深さに関して測定される)内部ファクタの大きさが高くなるほど、加算およびシフトが多くなることが暗示される。表7に示す内部ファクタの例示的な値は、32点DCT−II52を実装するために348回の加算と156回のシフトとを必要とし得る。内部ファクタの選定は、これらが採用されるコンテキストに依存し得る。変換を実装するために使用されるハードウェアまたはソフトウェアのアーキテクチャ、32点DCT−IIへの近接性に関する変換の所望の精度、および電力消費量要件が、内部ファクタの選定において考慮され得るファクタのうちのいくつかである。
H.264およびHEVCテストモデル(HM)では、量子化ユニット40は、量子化演算を、量子化行列中の成分による乗算とそれに後続する右シフトとして実装する。量子化行列中の成分および右シフトは、一緒に、これらの2つの演算が実際の量子化器ステップサイズによる除算を近似するように選定される。同様に、対応する逆量子化行列および右シフトがデコーダ側にある。エンコーダおよびデコーダ上の右シフトが、それぞれQ_BITSおよびDQ_BITSによって示されるとする。スケーリングされた変換の場合、スケーリングファクタは、上述の方法で量子化行列および逆量子化行列に吸収される。
H.264およびHEVCテストモデルでは、量子化器ステップサイズは、QPの6つの値ごとに2倍になる。したがって、スケーリングされた32×32変換では、量子化行列および逆量子化行列はそれぞれ、一般に、32×32×6=6144個の成分を必要とする。対照的に、正規直交変換は、記憶されるべき6つの成分のみを必要とし得る。ただし、一般に、正規直交変換を実装するためには、より多くの乗算が必要とされ、計算コストが高くなり得る。本開示で説明する技法は、上記で説明したファクタ化の計算複雑さの利点を維持しながら、必要とされるストレージの量を低減し得る。
したがって、32点DCT−IIユニット52では、スケールファクタは、上記の表1に記載されているスケールファクタを備え得る。表1を分析すると、32点変換のために12個のみの別個のスケーリングファクタがある。QPが量子化器ステップサイズパラメータを示すとして、以下の式(12)について考えられたい。
Figure 0005797774
上記の式(12)では、モジュロ演算子はパーセンテージ記号(%)によって表されている。一般に、各QPrem=0,1,...,5について、概して、32×32行列が記憶されなければならない。しかしながら、12個のみの別個の成分があるので、QPrem=0,1,...,5の各々について、12×12行列のみが記憶される必要があり得る。さらに、位置インデックスを正規化テーブル中のインデックスに変換するために、サイズ12のルックアップテーブルが必要とされ得る。水平方向と垂直方向は同じルックアップテーブルを使用する。Q_BITSおよびDQ_BITSは、量子化行列成分は16ビットを必要とするが、逆量子化行列成分は8ビットのみを必要とするように選定され得る。したがって、量子化行列と逆量子化行列とルックアップテーブルとのための総ストレージは、潜在的に12×12×6×3+12=2604バイトのみである。
32点DCT−II変換の偶数インデックス成分中に16点、8点および4点変換がすでに存在し得るが、
Figure 0005797774
の追加のスケールファクタにより、スケールファクタは異なり得る。32点、16点、8点および4点変換のための異なる量子化行列の必要を潜在的になくすために、量子化行列の精度を表すQ_BITSおよびDQ_BITSが変化され得る。たとえば、Q_BITSおよびDQ_BITSが4×4変換のために10および8である場合、Q_BITSおよびDQ_BITSは、8×8変換のために、それぞれ11および9となるように選定され得る。このようにして、(2D変換のための)2/Nの追加のスケーリングファクタのための補償が達成され得る。16×16および32×32など、ブロックサイズがより大きくなるごとに、Q_BITSおよびDQ_BITSは1だけ増分され得る。これは、32×32DCT−II変換のための量子化器行列および逆量子化器行列が、より小さいブロックサイズ(4×4、8×8、および16×16)のすべての行列を含み得るという効果を有する。その結果、サイズ16、8および4の追加のルックアップテーブル(LUT:lookup table)が必要とされ得る。
いくつかの事例では、上記で説明した実装は、量子化のために大量のストレージを必要とし得る。必要とされるストレージの量を低減するために、本技法は、直交性特性に厳密に固執しない実装を提供し得る。例示のために、ファクタ化のための内部パラメータを選定するために式(8)および式(10)を使用する代わりに、サイン項およびコサイン項は、256の分母をもつ最も近い2進分数によって近似され得る。(表20中のものと同様の)32点DCTタイプIIの奇数部分のギブンス回転行列R16によって暗示される16点バタフライでは、ファクタは、13、38、62、86、109、132、152、172、190、206、220、231、241、248、253、255である。16点DCTタイプIIの奇数部分のギブンス回転行列R8によって暗示される8点バタフライでは、ファクタは、25、74、121、162、198、226、245、および255である。8点DCTタイプIIの奇数部分のギブンス回転行列R4によって暗示される4点バタフライでは、ファクタは、50、142、213、および251である。タイプIIの4点DCTの奇数部分では、ファクタは98および236である。256の分母に関して説明するが、2のべき乗である他の分母が選定され得る。その場合、分子定数は、この場合も、上記で説明したように近似サインおよびコサインと同様に導出され得る。分母として2のより大きいべき乗が使用される場合、サイン項およびコサイン項への近似はより正確になり得、それは、設計が無制限精度32点DCT−II実装により近くなり得ることを意味する。前に説明したように、R16、R8、R4、およびR2の分母として2の異なるべき乗が選定され得る。内部ファクタのそのような設計が使用されるとき、スケールファクタは、以下の表9のスケールファクタによって近似され得る。(sinθ)2+(cosθ)2=1であり、選定される2進分数はサイン項およびコサイン項の密接な近似であるので、これは可能である。
Figure 0005797774
表9から、今や、1次元変換のために、2つのみの別個のスケールファクタ、すなわち、1.0および
Figure 0005797774
があることがわかるであろう。したがって、2次元の場合、これらのスケールファクタが量子化行列および逆量子化行列に吸収されたとき、量子化行列および逆量子化行列中に4つのみの別個の数が存在し得る。したがって、2つの別個の正規化ファクタのうちのどちらが、その方向(水平/垂直)における特定の変換係数の正規化のために使用されることになるかを指定するために、サイズ32の1ビットルックアップテーブル(LUT)を記憶することで概して十分である。他の方向における正規化ファクタを指定するために同じLUTが使用され得る。したがって、QPの増分ごとに、量子化行列ならびに逆量子化行列のための4つの別個の値が記憶されなければならないことがある。したがって、量子化行列サイズは2×2×6=24個の成分を含み得、逆量子化行列についても同様である。
1次元変換のために2つのみの別個のスケールファクタを有する設計について説明したが、直交設計では12個の別個のスケールファクタが存在し得る。2つと12個との間の数の別個のスケールファクタを有することが可能である。たとえば、4点および8点DCT−II変換のために直交設計が保持されるが、R8およびR16に対応する内部ファクタが上記の方法に従って選定される場合、5つの別個のスケールファクタが存在し得る。これらは、
Figure 0005797774
である。これは、内部ファクタを記憶するために必要とされるストレージの量、直交性およびビット深さの間の妥協を表している。内部ファクタのそのような選定を以下の表10に示す。この場合、量子化行列ならびに逆量子化行列は5×5×6=150個の成分を含み得る。同様に、4点、8点および16点DCT−II変換のために直交設計が保持されるが、R16に対応する内部ファクタが上記の方法に従って選定される場合、7つのみの別個のスケールファクタが存在し得る。この場合、量子化行列ならびに逆量子化行列は7×7×6=294個の成分を含み得る。このように直交設計が維持されるブロックサイズの数を選定することによって、量子化行列および逆量子化行列のためのストレージの量が変化され得る。
Figure 0005797774
そのようなLUTがどのように採用され得るかを示すために、以下のステップについて考えられたい。第1のステップにおいて、量子化ユニット40が、水平インデックス上の1ビットLUTを使用して、Hor_Bit(0または1)を導出する。0は1.0の正規化ファクタに対応し、1は
Figure 0005797774
の正規化ファクタに対応する。第2のステップにおいて、量子化ユニット40は、垂直インデックス上の1ビットLUTを使用して、Ver_Bit(0または1)を導出する。量子化ユニット40は、次いで、Hor_BitおよびVer_BitおよびQP値を使用して、量子化行列および逆量子化行列中の適切な成分をルックアップする。このようにして、本技法は、ストレージ要件(および関連するコスト)を大幅に増加させることなしに、同様の誤差レベルを与える他の設計または実装と比較して相対的な計算複雑さを維持し得る。
図4の例ではDCT−IIユニットに関して説明したが、このDCT−IIユニットは、本開示の技法に従って構築されたIDCTをも表し得る。図4の例に示す実装から逆DCTを形成することは、図4の右側の実装によって入力が受信され、実装の左側に出力が出力されるように、入力と出力とを逆転させることを必要とする。言い換えれば、入力が次いで出力になり、出力が入力になるように垂直軸に関して実装を反転させると、概して、IDCT実装が生成され得る。説明を簡単にするために、またDCTからIDCTを形成することが当技術分野でよく知られていることを考慮して、これらの追加のIDCT実装は個別の図に示していない。
図5は、図2のビデオエンコーダ20などのコーディングデバイスが、本開示の技法に従って構築された32点DCT実装を適用する際の例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在コーディングユニット31を受信する(90)。動き推定ユニット32は、1つまたは複数の動きベクトルを生成するためにコーディングユニット31を1つまたは複数の隣接ビデオフレーム中のブロックと比較するために、動き推定を実行する(92)。1つまたは複数の隣接フレームは、メモリ34から取り出され得る。動き推定は、可変サイズ、たとえば、64×64、32×32、16×16、16×8、8×16、8×8、4×4またはより小さいブロックサイズのブロックに対して実行され得る。動き推定ユニット32は、たとえば、レートひずみモデルに基づいて、現在コーディングユニット31に最もぴったりマッチングする隣接フレーム中の1つまたは複数のブロックを識別し、隣接フレーム中のブロックと現在コーディングユニットとの間の変位を判断する。これに基づいて、動き推定ユニット32は、現在コーディングユニット31と、現在コーディングユニット31をコーディングするために使用される参照フレームからの1つまたは複数のマッチングブロックとの間の変位の大きさおよび軌道を示す、1つまたは複数の動きベクトル(MV)を生成する。1つまたは複数のマッチングブロックは、コーディングされるべきブロックのインターコーディングのための予測(predictive)(または予測(prediction))ブロックとして働くことになる。
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有し得、それによりビデオエンコーダ20は、整数ピクセルロケーションよりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。分数ピクセル値をもつ動きベクトルが使用されるとき、動き補償ユニット36中で補間演算が実行される。動き推定ユニット32は、レートひずみモデルなど、いくつかの基準を使用して、コーディングユニットのための最良のブロック区分および1つまたは複数の動きベクトルを識別する。たとえば、双方向予測の場合、2つ以上の動きベクトルがあり得る。得られたブロック区分および動きベクトルを使用して、動き補償ユニット36は予測ユニットを形成する(94)。
ビデオエンコーダ20は、加算器48において、元の現在コーディングユニット31から、動き補償ユニット36によって生成された予測ユニットを減算することによって残差コーディングユニットを形成する(96)。変換ユニット38は、残差変換ブロック係数を生成する変換を適用する。変換ユニット38は、本開示で説明する技法に従って構成された32点DCT−IIユニット52を含む。変換ユニット38は、所与のサイズの1つまたは複数のDCT−IIを残差データに適用して、上述の方法で残差変換係数の対応するサイズのブロックを生成するために、スケーリングされた32点DCT−IIユニット52を呼び出す。図4A〜図4Eの例を参照すると、32点DCT−IIユニット52は、1つまたは複数の16点DCT−IIおよび8点DCT−IIを同時に適用するために、16点DCT−IIユニット73および8点DCT−IIユニット74A、74Bのうちの1つまたは複数を呼び出し得る。代替的に、32点DCT−IIユニット52は、1つまたは複数の8点DCTおよび4点DCT−IIを同時に適用するために、8点DCT−IIユニット73、4点DCT−IIユニット76B、76Cおよび8点DCT−IIユニット74A、74Bのうちの1つまたは複数を呼び出し得る。さらに別の代替では、32点DCT−IIユニット52は、32点DCT−IIを適用するために、ユニット73、74Aおよび74Bを呼び出し得る。別の代替では、32点DCT−IIユニット52は、1つまたは複数の4点DCT−IIおよび8点DCT−IIを適用するために、4点DCT−IIユニット76A〜76Cおよび8点DCT−IIユニット74A、74Bのうちの1つまたは複数を呼び出し得る。32点DCT−IIユニット52は、概して、残差ピクセルデータとして表される空間領域から、DCT係数として表される周波数領域に残差データを変換する。このようにして、32点DCT−IIユニット52は、DCT係数を判断するために、残差データに1つまたは複数の対応するサイズのDCT−IIを適用する(98)。変換係数は、少なくとも1つのDC係数と1つまたは複数のAC係数とを含むDCT係数を備え得る。
量子化ユニット40は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する(たとえば、丸める)(100)。上述のように、量子化ユニット40は、ファクタ化中に除去されたファクタを組み込むことによって、スケーリングされた32点DCT−IIユニット52のスケーリングされた性質を考慮する。量子化は一般に乗算を含むので、これらのファクタを量子化ユニット40に組み込むことは量子化ユニット40の実装複雑さを増加させ得ない。この点において、スケーリングされた32点DCT−IIユニット52からファクタを除去することは、上記に示した方法で量子化ユニット40の実装複雑さを増加させることなしにDCT−IIユニット52の実装複雑さを減少させ得、その結果、ビデオエンコーダ20に関する実装複雑さが純減する。
エントロピーコーディングユニット46は、量子化係数をエントロピーコーディングして、ビットレートをなお一層低減する。エントロピーコーディングユニット46は、コード化ビットストリームを生成するために、場合によってはエントロピーコーディングと呼ばれる統計的ロスレスコーディングを実行する(102)。エントロピーコーディングユニット46は、量子化DCT係数の確率分布をモデル化し、モデル化された確率分布に基づいてコードブックを選択する。このコードブックを使用して、エントロピーコーディングユニット46は、量子化DCT係数を圧縮する方式で、各量子化DCT係数のためのコードを選択する。エントロピーコーディングユニット46は、メモリまたはストレージデバイスに記憶されるコード化ビットストリームおよび/またはビデオデコーダ26に送られるコード化ビットストリームとしてエントロピーコード化係数を出力する(104)。
再構成ユニット42および逆変換ユニット44は、それぞれ、量子化係数を再構成し、逆変換を適用して、残差データを再構成する。この場合も、逆変換ユニット44は、図3に関して以下で説明する32点DCT−IIIユニット68と同様の、32点DCT−IIユニット73の逆演算を実行する、タイプIIIのDCTと通常呼ばれる逆DCT(IDCT)を含み得る。加算ユニット50は、再構成された残差データを、動き補償ユニット36によって生成された動き補償予測ブロックに加算して、メモリ34に記憶するための再構成されたコーディングユニットを生成する。再構成されたコーディングユニットは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット32および動き補償ユニット36によって使用される。
図6は、図3のビデオデコーダ26などのコーディングデバイスが、本開示の技法に従って構成された32点DCT−IIIを適用する際の例示的な動作を示すフローチャートである。ビデオデコーダ26は、ビデオエンコーダ20によって符号化された符号化ビデオビットストリームを受信する。特に、エントロピー復号ユニット54は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化残差係数および量子化パラメータ、ならびに、マクロブロックコーディングモード、および動きベクトルとブロックパーティションとを含み得る動き情報など、他の情報を復号する(106、108)。動き補償ユニット56は、動きベクトルと、ブロックパーティションと、メモリ62からの1つまたは複数の再構成された参照フレームとを受信して、予測ユニットを生成する(110)。
再構成ユニット58は、量子化ブロック係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する(112)。逆変換ユニット60は、逆変換、たとえば、逆DCTを係数に適用して残差データを生成する。より詳細には、逆変換ユニット60は、スケーリングされた32点DCT−IIIユニット68を含み、逆変換ユニット60は、その32点DCT−IIIユニット68を呼び出して係数を処理し、それによって残差データを生成する(114)。図2に示すスケーリングされた32点DCT−IIユニット52の逆元である、スケーリングされた32点DCT−IIIユニット68は、係数を周波数領域から空間領域に変換して、上述の方法で残差データを生成し得る。上記の量子化ユニット40と同様に、再構成ユニット58は、実装複雑さの増加があったとしてもほとんどなしに、ファクタ化中に除去された外部ファクタを再構成プロセスに組み込むことによって、32点DCT−IIIユニット68のスケーリングされた性質を考慮する。スケーリングされた32点DCT−IIIユニット68からファクタを除去することにより、実装複雑さが低減し、その結果、ビデオデコーダ26に関する複雑さが純減し得る。
次いで、予測ユニットは、加算器66によって残差データと加算されて、復号ブロックが形成される(116)。ブロッキングアーティファクトを除去するために復号ブロックをフィルタ処理するために、デブロッキングフィルタ(図示せず)が適用され得る。フィルタ処理されたブロックは、次いで、メモリ62に入れられ、メモリ62は、後続のビデオフレームの復号のために参照フレームを与え、また、図1のディスプレイデバイス28などのディスプレイデバイスを駆動するために復号ビデオを生成する(118)。
図7A〜図7Eは、図2に示す32点DCT−IIユニット52の別の例示的な実装の様々な態様を示す図である。図4A〜図4Eでは、32点DCT−IIユニット52の例示的な実装がバタフライを使用して示されており、この例示的な実装は、上述の理由のために、行列乗算があったしても多くを含まない。言い換えれば、32点DCT_IIユニット52は、行列乗算を実行することなしに上記で説明した様々なサイズの変換を実装し得る。ただし、DCT−IIユニットのいわゆる「部分バタフライ」実装が新生のHEVC規格のワーキングドラフトおよびテストモデル(HM5.0)に採用されており、本開示で説明する技法はこれらの部分バタフライ実装に関して実装され得る。部分バタフライDCT−II実装は、(「和および差」段と呼ばれることもある)バタフライ段への分解の結合と、それに後続する偶数部分のサイズN/2の変換とを伴い得、ただし、NはDCT−IIのサイズを示す。奇数部分では、図4D、図4Eの例に関して上記に示したバタフライ実装ではなく、N/2点行列乗算が使用される。
たとえば、提案された部分バタフライ8点DCTは4×4行列乗算を必要とし、それは、汎用乗算器を使用したときでも、計算複雑さに関してあまりコストがかからないことがある。しかしながら、16点変換および32点変換のために部分バタフライ実装を使用すると、それぞれ8×8行列乗算および16×16行列乗算が必要になる。これは、特にモバイルまたはバッテリー電源式デバイスでは、ハードウェアエリアに関してコストがかかり、また電力節約に影響を及ぼし得る。本技法は、上記で説明し、一例では、図4A〜図4Eの例に関して示した方法で、これらの部分バタフライDCT−II実装をネスティングすることによってボードスペースの消費を潜在的に低減するために、これらの部分バタフライDCT−II実装に関して実装され得る。
図7Aは、図2の例に示す32点DCT−IIユニット52の例示的な部分バタフライ(PB:partial butterfly)実装119を示す図である。図7Aの例では、32点DCT−IIユニット119は、図4Aの例に示すDCT−IIユニット52のバタフライ実装に関して上記に示したものと実質的に同様の、バタフライユニット69と、ギブンス回転行列70と、線形結合(LC)ユニット71とを含む。ただし、32点PB DCT−IIユニット119は、偶数部分において16点PB DCT−IIユニット120を含み、奇数部分において2つの8点PB DCT−IIユニット122A、122Bを含む。16点PB DCT−IIユニット120はさらに、偶数部分において8点PB DCT−IIユニット122Cを含み、奇数部分において2つの4点PB DCT−IIユニット124A、124Bを含む。8点PB DCT−IIユニット122Cはまた、それの偶数部分において4点PB DCT−IIユニット124Cを含む。
いくつかの事例では、図2の右側にあるスケールファクタまたは正規化ファクタは変化し得る。この変化は、近似的に同じノルムを有するPBユニットにおいて使用される基底関数に起因する。したがって、16点変換の上半分にあるすべての変換係数は、単一の正規化ファクタを有することになる。同様に、16点変換の下半分にある変換係数のために単一のスケーリングファクタが存在することになる。このスケーリングファクタは、PB変換のスケーリングファクタと、ギブンス回転行列R8中のバタフライファクタに起因するスケーリングファクタZ16とを考慮に入れ得る。したがって、変換を正規直交にするために2つの異なるスケーリングファクタまたは正規化ファクタのみが存在し得る。上半分において上記で説明した16点変換を再利用し、下半分において8点PB変換とギブンス回転行列R16とを使用することによって、同じ概念は32点変換に拡張され得る。この場合、変換を正規直交にするために3つの異なるスケーリングファクタまたは正規化ファクタが必要とされ得る。
図7Bは、図7Aの例に示す16点PB DCT−IIユニット120をより詳細に示す図である。16点PB DCT−IIユニット120は、図4Bの例に示す16点DCT−II73と実質的に同様である、バタフライユニット77、78と、ギブンス回転行列80とを含む。ただし、4点DCTG−IIユニット76と8点DCT−IIユニット72とのバタフライ実装を含むのではなく、16点PB DCT−IIユニット120は、上述の4点部分バタフライ(PB)DCT−IIユニット124A〜124Cと8点PB DCT−IIユニット122Cとを含む。下側または奇数の4点PB DCT−IIユニット124A、124Bはまた、図4Bの例に示す16点DCT−IIユニット73に関して上記で説明したのと同様の8点DCT−IVユニット125を形成し得る。
図7Cは、4点PB DCT−IIユニット124をより詳細に示す図である。図7Cの例では、4点PB DCT−IIユニット124は、4点PB DCT−IIユニット124がバタフライユニット82を含むという点で、図4Cの例に示した4点DCT−IIユニット76と同様である。バタフライユニット82は、2つの上側の出力における「0」および「2」表記と、2つの下側の出力における「1」および「3」表記とによって示されるように、入力を偶数入力と奇数入力とに再構成する。4点PB DCT−IIユニット124の、奇数入力に作用する部分は奇数部分と呼ばれ、偶数入力に作用する部分は偶数部分と呼ばれることがある。
4点PB DCT−IIユニット124の偶数部分は、4点DCT−IIユニット76に関して上記で説明したのと実質的に同様である。奇数部分において、バタフライを含むのではなく、4点PB DCT−IIユニット124は、行列乗算ユニット(MMU:matrix multiplication unit)130(「MMU130」)を含む。行列乗算ユニット130は奇数入力に対して行列乗算を実行し得る。乗算を実行するために使用されるMMU130中の行列の係数は、以下の表11に示す係数であり得る。この行列は、最新のHEVCテストモデル(HM5.0)において使用される。出力値を正規化するために行列乗算段の後に右シフトを導入することが必要であり得る。
Figure 0005797774
図7Dは、8点PB DCT−IIユニット122をより詳細に示すブロック図である。図7Dの例では、8点PB DCT−IIユニット122は、図4Dの例に示す8点DCT−IIユニット72に関して上記で説明したバタフライユニット84と実質的に同様のバタフライユニット84を含む。いずれの場合も、バタフライユニット84は、それの入力を偶数入力と奇数入力とに再構成し、またそれと同時に、偶数入力を生成するために相互加算を実行し、奇数入力を生成するために相互減算を実行する。8点PB DCT−IIユニット122の、偶数入力に作用する部分は偶数部分と呼ばれ、奇数入力に作用する部分は奇数部分と呼ばれることがある。この事例の偶数部分は、図7Cの例に関して上記で説明した4点DCT−IIユニット124と実質的に同様である、ネスティングされた4点PB DCT−IIユニット124Cを備える。
8点PB DCT−IIユニット122の偶数部分は、8点DCT−IIユニット72に関して上記で説明したのと実質的に同様である。ただし、奇数部分において、バタフライを含むのではなく、8点PB DCT−IIユニット122は、行列乗算ユニット(MMU)132(「MMU132」)を含む。行列乗算ユニット132は奇数入力に対して行列乗算を実行し得る。乗算を実行するために使用されるMMU132中の行列の係数は、以下の表12に示す係数であり得る。この行列は、最新のHEVCテストモデル(HM5.0)において使用される。出力値を正規化するために行列乗算段の後に右シフトを導入することが必要であり得る。
Figure 0005797774
図7Eは、8点PB DCT−IVユニット125をより詳細に示すブロック図である。図7Eの例では、上記のように、8点PB DCT−IVユニット125は、各々が図7Cの例に関して上記で説明した4点DCT−IIユニット124と実質的に同様であり得る、2つの4点DCT−IIユニット124A、124Bを含む。8点DCT−IVユニット125は、この場合も上記のように、同じくファクタ乗算ユニット78と相互加算ユニット80とを含む。ファクタ乗算ユニット78は、8点DCT−IVユニット125への入力にファクタH、I、J、K、L、M、およびNを乗算し、ファクタを乗算されると、上側の4つの入力に下側の4つの入力を相互加算し、下側の4つの入力から上側の4つの入力を相互減算する。上側の4つの入力は、次いで、4点DCT−IIユニット124Aによって処理され、下側の4つの入力は4点DCT−IIユニット124Bによって処理される。相互加算ユニット80は、次いで、下側の7つの入力を相互加算/減算する(減算は加算の別の形態と考えられる)。
上記では、1つまたは複数のネスティングされた16点DCT−IIおよびDCT−IIIおよび8点DCT−IIおよびDCT−III、ならびに1つまたは複数のネスティングされた4点DCT−IIおよびDCT−IIIを含むサイズ32のDCT−IIおよびDCT−IIIに関して説明したが、本技法はこれらの特定のサイズに限定されるべきでない。代わりに、本技法は、より小さいサイズのネスティングされたDCT−IIおよびDCT−IIIを含む任意のサイズの任意のDCT−IIまたはDCT−IIIに適用され得る。したがって、本技法は、この点において、本開示で示す例に限定されるべきでない。
本開示の技法は、モバイルフォンなどのワイヤレス通信デバイスハンドセット、集積回路(IC)またはICのセット(すなわち、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために与えられた任意の構成要素、モジュールまたはユニットについて説明したが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。本明細書で説明した技法はまた、ハードウェア、またはハードウェア、ソフトウェア、ファームウェアの任意の組合せで実装され得る。モジュール、ユニットまたは構成要素として説明した特徴は、集積論理デバイスにおいて一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。場合によっては、様々な特徴は、集積回路チップまたはチップセットなどの集積回路デバイスとして実装され得る。
ソフトウェアで実装する場合、これらの技法は、少なくとも部分的に、プロセッサにおいて実行されると、上記で説明した方法の1つまたは複数を実行する命令を備えるコンピュータ可読媒体によって実現され得る。コンピュータ可読媒体は、物理的非一時的構造物であるコンピュータ可読記憶媒体を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。
コードまたは命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供されるか、あるいは複合ビデオコーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示はまた、本開示で説明した技法のうちの1つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップで、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供され得る。そのような集積回路デバイスは様々な適用例において使用され得、適用例のいくつかは携帯電話ハンドセットなどのワイヤレス通信デバイスでの使用を含み得る。
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲
内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンテンツデータを空間領域から周波数領域に変換するための方法であって、前記方法は、
前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することであって、前記スケーリングされた32点変換ユニットが、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行する、実行すること
を備え、
前記スケーリングされた32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
方法。
[C2]
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換(DCT)に近似する、C1に記載の方法。
[C3]
前記スケーリングされた16点変換ユニットと、前記少なくとも1つのスケーリングされた8点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C1に記載の方法。
[C4]
前記スケーリングされた16点変換ユニットが、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記少なくとも1つのスケーリングされた8点変換ユニットが、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、それぞれ、前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数を用いてサイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行することを備える、
C1に記載の方法。
[C5]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C4に記載の方法。
[C6]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、前記第1、第2および第3の4点変換ユニットを用いたサイズ4の前記複数のスケーリングされた変換のうちの3つと、前記第2および第3の8点変換ユニットを用いたサイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行することを備える、
C4に記載の方法。
[C7]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C6に記載の方法。
[C8]
異なるサイズの複数のスケーリングされた変換のうちの前記1つまたは複数を実行することが、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することと、スケーリングされた変換係数を出力することとを備え、
前記方法が、量子化ユニットを用いて、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用することをさらに備える、C1に記載の方法。
[C9]
前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用することを備える、C8に記載の方法。
[C10]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C9に記載の方法。
[C11]
前記スケーリングされた16点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記少なくとも1つのスケーリングされた8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、
C1に記載の方法。
[C12]
前記コンテンツデータがビデオデータのブロックを備え、
前記方法は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行することと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行することと、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較することであって、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
比較することと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化することと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行することと
をさらに備える、
C1に記載の方法。
[C13]
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換が、32の変換サイズを定義する、実行するための手段
を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための手段は、
前記複数のスケーリングされた変換のうちの第2の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第3の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、手段と
を含む、
装置。
[C14]
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換(DCT)に近似する、C13に記載の装置。
[C15]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C13に記載の装置。
[C16]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段が、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段が、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、
C13に記載の装置。
[C17]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C16に記載の装置。
[C18]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとが、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、
C16に記載の装置。
[C19]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C18に記載の装置。
[C20]
前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記1つまたは複数を実行することと、スケーリングされた変換係数を出力することとを行うためのスケーリングされた手段を備え、
前記方法が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用するための量子化手段をさらに備える、
C13に記載の装置。
[C21]
前記スケールファクタを適用するための前記量子化手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用するための量子化手段を備える、C20に記載の装置。
[C22]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C21に記載の装置。
[C23]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、C13に記載の装置。
[C24]
前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行するための手段と、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行するための手段と、
ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの前記1つまたは複数を実行するための前記手段が、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行するための手段を備える、
比較するための手段と、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化するための手段と、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するための手段と
をさらに備える、
C13に記載の装置。
[C25]
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた32点変換ユニットであって、前記スケーリングされた32点変換ユニットが、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換が、32の変換サイズを定義する、スケーリングされた32点変換ユニット
を備える装置であって、
前記32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
装置。
[C26]
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換(DCT)に近似する、C25に記載の装置。
[C27]
前記スケーリングされた16点変換ユニットと、前記少なくとも1つのスケーリングされた8点変換ユニットとが、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C25に記載の装置。
[C28]
前記スケーリングされた16点変換ユニットが、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記少なくとも1つの8点変換ユニットが、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、
C25に記載の装置。
[C29]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C28に記載の装置。
[C30]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとが、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、
C28に記載の装置。
[C31]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C30に記載の装置。
[C32]
前記スケーリングされた32点変換ユニットが、スケーリングされた変換係数を出力し、
前記装置が、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用する量子化ユニットをさらに備える、
C25に記載の装置。
[C33]
前記量子化ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用する、C32に記載の装置。
[C34]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C33に記載の装置。
[C35]
前記スケーリングされた16点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記少なくとも1つのスケーリングされた8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、
C25に記載の装置。
[C36]
前記コンテンツデータがビデオデータのブロックを備え、
前記装置は、
前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行する動き推定ユニットと、
前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行し、ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較する動き補償ユニットであって、
前記スケーリングされた32点変換ユニットが、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行する、
動き補償ユニットと、
ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化する量子化ユニットと、
ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するエントロピーコーディングユニットと
をさらに備える、
C25に記載の装置。
[C37]
実行されたとき、1つまたは複数のプロセッサに、
コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する32点変換ユニットを実装することであって、前記スケーリングされた32点変換ユニットが、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行する、実装すること
を行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
非一時的コンピュータ可読媒体。
[C38]
変換されたコンテンツデータを周波数領域から空間領域に変換するための方法であって、前記方法は、
前記変換されたコンテンツデータを前記周波数領域から前記空間領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することであって、前記スケーリングされた32点変換ユニットが、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行する、実行すること
を備え、
前記スケーリングされた32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
方法。
[C39]
前記複数のスケーリングされた変換が、複数のスケーリングされた逆離散コサイン変換(IDCT)に近似する、C38に記載の方法。
[C40]
前記スケーリングされた16点変換ユニットと、前記少なくとも1つのスケーリングされた8点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C38に記載の方法。
[C41]
前記スケーリングされた16点変換ユニットが、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記少なくとも1つのスケーリングされた8点変換ユニットが、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、それぞれ、前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数を用いてサイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行することを備える、
C38に記載の方法。
[C42]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C41に記載の方法。
[C43]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、前記第1、第2および第3の4点変換ユニットを用いたサイズ4の前記複数のスケーリングされた変換のうちの3つと、前記第2および第3の8点変換ユニットを用いたサイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行することを備える、
C41に記載の方法。
[C44]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C43に記載の方法。
[C45]
再構成ユニットを用いて、スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用すること
をさらに備え、
異なるサイズの複数のスケーリングされた変換のうちの前記1つまたは複数を実行することが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することを備える、
C38に記載の方法。
[C46]
前記スケールファクタを適用することが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記再構成ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用することを備える、C45に記載の方法。
[C47]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C46に記載の方法。
[C48]
前記スケーリングされた16点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記少なくとも1つのスケーリングされた8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、
C38に記載の方法。
[C49]
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記方法は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号することと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行することであって、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
実行することと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行することと
をさらに備える、
C38に記載の方法。
[C50]
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段であって、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段が、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換が、32の変換サイズを定義する、実行するための手段
を備える装置であって、
異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、
前記複数のスケーリングされた変換のうちの第2の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、手段と、
前記複数のスケーリングされた変換のうちの第3の変換を実行するための前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段であって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、手段と
を含む、
装置。
[C51]
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換(DCT)に近似する、C50に記載の装置。
[C52]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための手段とが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C50に記載の装置。
[C53]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段が、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段が、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、
C50に記載の装置。
[C54]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C53に記載の装置。
[C55]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとが、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、
C53に記載の装置。
[C56]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C55に記載の装置。
[C57]
スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用するための手段をさらに備え、
前記複数のスケーリングされた変換を実行するための前記手段が、前記コンテンツデータを前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの前記1つまたは複数を実行するためのスケーリングされた手段を備える、
C50に記載の装置。
[C58]
前記スケールファクタを適用するための前記手段が、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル(LUT)を使用して前記スケールファクタを適用するための手段を備える、C57に記載の装置。
[C59]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C58に記載の方法。
[C60]
前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段が、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、C50に記載の装置。
[C61]
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するための手段と、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行するための手段であって、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行するための前記手段が、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行するための手段を備える、
実行するための手段と、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行するための手段と
をさらに備える、
C50に記載の装置。
[C62]
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた32点変換ユニットであって、前記スケーリングされた32点変換ユニットが、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換が、32の変換サイズを定義する、スケーリングされた32点変換ユニット
を備える装置であって、
前記スケーリングされた32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
装置。
[C63]
前記複数のスケーリングされた変換が、複数のスケーリングされた離散コサイン変換(DCT)に近似する、C62に記載の装置。
[C64]
前記スケーリングされた16点変換ユニットと、前記少なくとも1つのスケーリングされた8点変換ユニットとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、C62に記載の装置。
[C65]
前記スケーリングされた16点変換ユニットが、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
前記少なくとも1つの8点変換ユニットが、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、
C62に記載の装置。
[C66]
前記第1、第2および第3の8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
前記第1および第2の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、
C65に記載の装置。
[C67]
前記第1の8点変換ユニットがまた、第3の4点変換ユニットを含み、
前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとが、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、
C65に記載の装置。
[C68]
前記第3の4点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、C67に記載の装置。
[C69]
スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用する再構成ユニットをさらに備え、
前記スケーリングされた16点変換ユニットが、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する、
C62に記載の装置。
[C70]
前記再構成ユニットが、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル(LUT)を使用して前記スケールファクタを適用する、C69に記載の装置。
[C71]
前記量子化行列のサイズが、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
前記量子化行列の前記サイズが内部ファクタに依存する、
C70に記載の方法。
[C72]
前記スケーリングされた16点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
前記少なくとも1つのスケーリングされた8点変換ユニットが、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、
C62に記載の装置。
[C73]
前記コンテンツデータがビデオデータのコード化ブロックを備え、
前記装置は、
ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するエントロピー復号ユニットと、
ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行する再構成ユニットであって、
異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することが、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
再構成ユニットと、
前記ビデオデータの復号されたブロックを判断するためにビデオデータの前記残差ブロックに対して動き補償を実行する動き補償ユニットと
をさらに備える、
C62に記載の装置。
[C74]
実行されたとき、1つまたは複数のプロセッサに、
コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する32点変換ユニットを実装することであって、前記スケーリングされた32点変換ユニットが、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行する、実装すること
を行わせる命令を備える非一時的コンピュータ可読媒体であって、
前記スケーリングされた32点変換ユニットは、
前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第2の変換が、16の変換サイズを定義する、スケーリングされた16点変換ユニットと、
前記複数のスケーリングされた変換のうちの第3の変換を実行する前記32点変換ユニットの奇数ハーフ中にある少なくとも1つのスケーリングされた8点変換ユニットであって、前記複数のスケーリングされた変換のうちの前記第3の変換が、8の変換サイズを定義する、少なくとも1つのスケーリングされた8点変換ユニットと
を含む、
非一時的コンピュータ可読媒体。

Claims (63)

  1. コンテンツデータを空間領域から周波数領域に変換するための方法であって、前記方法は、
    前記コンテンツデータを前記空間領域から前記周波数領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行してスケーリングされた変換係数を出力することと、ここにおいて、前記スケーリングされた32点変換ユニット、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    量子化ユニットを用いて、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用することと、ここにおいて、前記スケールファクタを適用することは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用することを備える、
    を備え、
    前記スケーリングされた32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する、前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する
    記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する
    記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する
    記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、方法。
  2. 前記複数のスケーリングされた変換は、複数のスケーリングされた離散コサイン変換(DCT)に近似する、請求項1に記載の方法。
  3. 前記スケーリングされた16点変換ユニットと、前記第1および第2のスケーリングされた8点変換ユニットのうちの少なくとも1つとは、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、請求項1に記載の方法。
  4. 前記スケーリングされた16点変換ユニットは、第3の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    前記異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、それぞれ、前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数を用いてサイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行することを備える、請求項1に記載の方法。
  5. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項4に記載の方法。
  6. 前記第3の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    前記異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、前記第1、第2および第3の4点変換ユニットを用いたサイズ4の前記複数のスケーリングされた変換のうちの3つと、前記第1および第2の8点変換ユニットを用いたサイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行することを備える、請求項4に記載の方法。
  7. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項6に記載の方法。
  8. 前記量子化行列のサイズは前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項に記載の方法。
  9. 前記スケーリングされた16点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記第1のスケーリングされた8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項1に記載の方法。
  10. 前記コンテンツデータはビデオデータのブロックを備え、
    前記方法は、
    前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行することと、
    前記動きベクトルに基づいて予測ブロックを決定するために動き補償を実行することと、
    ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較することと
    ここにおいて、前記異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、前記ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
    ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化することと、
    ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行することと、
    をさらに備える、請求項1に記載の方法。
  11. コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行してスケーリングされた変換係数を出力するための手段と、ここにおいて、異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換は32の変換サイズを定義し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用するための量子化手段と、ここにおいて、前記スケールファクタを適用するための前記量子化手段は、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用するための量子化手段を備える、
    を備える装置であって、
    異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、
    前記複数のスケーリングされた変換のうちの第2の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    ギブンス回転行列R16によって暗示される16点バタフライを実行するための、前記32点変換ユニットの奇数ハーフ中にある手段と、
    を含む、装置。
  12. 前記複数のスケーリングされた変換は複数のスケーリングされた離散コサイン変換(DCT)に近似する、請求項11に記載の装置。
  13. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための手段と前記複数のスケーリングされた変換のうちの前記第4の変換を実行するための手段のうちの少なくとも1つは、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、請求項11に記載の装置。
  14. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段は、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段は第2の8点変換ユニットを含み、前記複数のスケーリングされた変換のうちの第4の変換を実行するための手段は第3の8点変換ユニットを含み、
    前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数は、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、請求項11に記載の装置。
  15. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項14に記載の装置。
  16. 前記第1の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとは、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、請求項14に記載の装置。
  17. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項16に記載の装置。
  18. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項11に記載の装置。
  19. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段は、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段は、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項11に記載の装置。
  20. 前記コンテンツデータがビデオデータのブロックを備え、
    前記装置は、
    前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行するための手段と、
    前記動きベクトルに基づいて予測ブロックを決定するために動き補償を実行するための手段と、
    ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較するための手段と
    ここにおいて、前記異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行するための前記手段は、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行するための手段を備える、
    ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化するための手段と、
    ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するための手段と、
    をさらに備える、請求項11に記載の装置。
  21. コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換を実行し、スケーリングされた変換係数を出力する、スケーリングされた32点変換ユニットと、ここにおいて、前記スケーリングされた32点変換ユニットは、前記複数のスケーリングされた変換のうちの第1の変換を実行し、なお、前記複数のスケーリングされた変換のうちの前記第1の変換は32の変換サイズを定義し前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用する量子化ユニットと、ここにおいて、前記量子化ユニットは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用する、
    を備え、
    前記32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    前記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、装置。
  22. 前記複数のスケーリングされた変換は、複数のスケーリングされた離散コサイン変換(DCT)に近似する、請求項21に記載の装置。
  23. 前記スケーリングされた16点変換ユニットと、前記第1および第2のスケーリングされた8点変換ユニットのうちの少なくとも1つとは、前記コンテンツデータの異なる部分を前記空間領域から前記周波数領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、請求項21に記載の装置。
  24. 前記スケーリングされた16点変換ユニットは、第3の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数は、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、請求項21に記載の装置。
  25. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項24に記載の装置。
  26. 前記第1の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    前記第1、第2および第3の4点変換ユニットと、前記第1および第2の8点変換ユニットとは、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、請求項24に記載の装置。
  27. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項26に記載の装置。
  28. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項21に記載の装置。
  29. 前記スケーリングされた16点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記第1のスケーリングされた8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項21に記載の装置。
  30. 前記コンテンツデータはがビデオデータのブロックを備え、
    前記装置は、
    前記ビデオデータの参照ブロックを識別し、ビデオデータの前記識別された参照ブロックに基づいて動きベクトルを生成するために、ビデオデータの前記ブロックに対して動き推定を実行する動き推定ユニットと、
    前記動きベクトルに基づいて予測ブロックを判断するために動き補償を実行し、ビデオデータの残差ブロックを生成するために前記予測ブロックをビデオデータの前記ブロックと比較する動き補償ユニットと、ここにおいて、前記スケーリングされた32点変換ユニットは、ビデオデータの前記残差ブロックを前記空間領域から前記周波数領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行する、
    ビデオデータの量子化ブロックを生成するために、ビデオデータの前記変換された残差ブロックを量子化する量子化ユニットと、
    ビデオデータの前記量子化ブロックをコーディングし、ビデオデータのコード化ブロックを生成するために統計的コーディングを実行するエントロピーコーディングユニットと、
    をさらに備える、請求項21に記載の装置。
  31. 実行されたとき、1つまたは複数のプロセッサに、
    コンテンツデータを空間領域から周波数領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行してスケーリングされた変換係数を出力する32点変換ユニットを実装させ、ここにおいて、前記スケーリングされた32点変換ユニットは、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    量子化ユニットを用いて、量子化完全変換係数を生成するように前記スケーリングされた変換係数にスケールファクタを適用させる命令を記憶するコンピュータ可読記憶媒体であって、
    前記スケールファクタを適用させることは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用させることを備え、
    前記スケーリングされた32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する、前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    前記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、コンピュータ可読記憶媒体。
  32. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項31に記載のコンピュータ可読記憶媒体。
  33. 変換されたコンテンツデータを周波数領域から空間領域に変換するための方法であって、前記方法は、
    前記変換されたコンテンツデータを前記周波数領域から前記空間領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することと、ここにおいて、前記スケーリングされた32点変換ユニットは、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    再構成ユニットを用いて、スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用することと、ここにおいて、前記異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、前記スケーリングされた変換係数を前記周波数領域から前記空間領域に変換するために、スケーリングされた32点変換ユニットを用いて異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することを備え、前記スケールファクタを適用することは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記再構成ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用することを備える、
    を備え、
    前記スケーリングされた32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する、前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    前記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、方法。
  34. 前記複数のスケーリングされた変換は、複数のスケーリングされた逆離散コサイン変換(IDCT)に近似する、請求項33に記載の方法。
  35. 前記スケーリングされた16点変換ユニットと、前記第1および第2のスケーリングされた8点変換ユニットのうちの少なくとも1つとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、請求項33に記載の方法。
  36. 前記スケーリングされた16点変換ユニットは、第3の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、それぞれ、前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数を用いてサイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行することを備える、請求項33に記載の方法。
  37. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項36に記載の方法。
  38. 前記第3の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、前記第1、第2および第3の4点変換ユニットを用いたサイズ4の前記複数のスケーリングされた変換のうちの3つと、前記第1および第2の8点変換ユニットを用いたサイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行することを備える、請求項37に記載の方法。
  39. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項38に記載の方法。
  40. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項33に記載の方法。
  41. 前記スケーリングされた16点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記第1のスケーリングされた8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項33に記載の方法。
  42. 前記コンテンツデータはビデオデータのコード化ブロックを備え、
    前記方法は、
    ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号することと、
    ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行することと、ここにおいて、異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
    前記ビデオデータの復号されたブロックを決定するためにビデオデータの前記残差ブロックに対して動き補償を実行することと、
    をさらに備える、請求項33に記載の方法。
  43. コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行するための手段と、ここにおいて、異なるサイズの複数のスケーリングされた変換を実行するための前記手段は、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換は32の変換サイズを定義し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用するための手段と、ここにおいて、スケールファクタを適用するための前記手段は、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル(LUT)を使用して前記スケールファクタを適用するための手段を備える、
    を備え、
    異なるサイズの前記複数のスケーリングされた変換を実行するための前記手段は、
    前記複数のスケーリングされた変換のうちの第2の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の偶数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行するための、前記複数のスケーリングされた変換を実行するための前記手段の奇数ハーフ中にある手段と、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    ギブンス回転行列R16によって暗示される16点バタフライを実行するための前記32点変換ユニットの奇数ハーフ中にある手段と、
    を含む、装置。
  44. 前記複数のスケーリングされた変換は、複数のスケーリングされた離散コサイン変換(DCT)に近似する、請求項43に記載の装置。
  45. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段と、前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段と前記複数のスケーリングされた変換のうちの前記第4の変換を実行するための前記手段のうちの少なくとも1つが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの前記1つをそれぞれ同時に実行する、請求項43に記載の装置。
  46. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段は、第1の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段は第2の8点変換ユニットを含み、前記複数のスケーリングされた変換のうちの前記第4の変換を実行するための前記手段は第3の8点変換ユニットを含み、
    前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、請求項43に記載の装置。
  47. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項46に記載の装置。
  48. 前記第1の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    前記第1、第2および第3の4点変換ユニットと、前記第2および第3の8点変換ユニットとは、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、請求項46に記載の装置。
  49. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項48に記載の装置。
  50. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項43に記載の装置
  51. 前記複数のスケーリングされた変換のうちの前記第2の変換を実行するための前記手段は、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記複数のスケーリングされた変換のうちの前記第3の変換を実行するための前記手段は、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項43に記載の装置。
  52. 前記コンテンツデータはビデオデータのコード化ブロックを備え、
    前記装置は、
    ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するための手段と、
    ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行するための手段と、ここにおいて、異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行するための前記手段は、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行するための手段を備える、
    前記ビデオデータの復号されたブロックを決定するためにビデオデータの前記残差ブロックに対して動き補償を実行するための手段と、
    をさらに備える、請求項43に記載の装置。
  53. コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換を実行する、スケーリングされた32点変換ユニットと、ここにおいて、前記スケーリングされた32点変換ユニットは、前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換のうちの前記第1の変換は32の変換サイズを定義し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用する再構成ユニットと、ここにおいて、前記再構成ユニットは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶するルックアップテーブル(LUT)を使用して前記スケールファクタを適用する、
    を備え、
    前記スケーリングされた32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する、前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    前記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、装置。
  54. 前記複数のスケーリングされた変換は、複数のスケーリングされた離散コサイン変換(DCT)に近似する、請求項53に記載の装置。
  55. 前記スケーリングされた16点変換ユニットと、前記第1および第2のスケーリングされた8点変換ユニットのうちの少なくとも1つとが、前記コンテンツデータの異なる部分を前記周波数領域から前記空間領域に変換するために、サイズ16および8の前記複数のスケーリングされた変換のうちの1つをそれぞれ同時に実行する、請求項53に記載の装置。
  56. 前記スケーリングされた16点変換ユニットは、第3の8点変換ユニットと、第1の4点変換ユニットと、第2の4点変換ユニットとを含み、
    前記第1の8点変換ユニットは、第2の8点変換ユニットと、第3の8点変換ユニットとを含み、
    前記第1、第2および第3の8点変換ユニットと、前記第1および第2の4点変換ユニットとのうちの1つまたは複数が、それぞれ、サイズ8および4の前記複数のスケーリングされた変換のうちの2つ以上を同時に実行する、請求項53に記載の装置。
  57. 前記第1、第2および第3の8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行し、
    前記第1および第2の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つをそれぞれ実行する、請求項56に記載の装置。
  58. 前記第3の8点変換ユニットはまた、第3の4点変換ユニットを含み、
    前記第1、第2および第3の4点変換ユニットと、前記第1および第2の8点変換ユニットとは、サイズ4の前記複数のスケーリングされた変換のうちの3つと、サイズ8の前記複数のスケーリングされた変換のうちの2つとを同時に実行する、請求項56に記載の装置。
  59. 前記第3の4点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの1つを実行する、請求項58に記載の装置。
  60. 前記量子化行列のサイズは、前記スケーリングされた変換係数の各々のためのスケールファクタを指定する完全量子化行列よりも小さく、
    前記量子化行列の前記サイズは内部ファクタに依存する、請求項53に記載の装置。
  61. 前記スケーリングされた16点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第2の変換を実行し、
    前記第1のスケーリングされた8点変換ユニットは、行列乗算を実行することあるいはバタフライと行列乗算の組合せを使用することなしに、前記複数のスケーリングされた変換のうちの前記第3の変換を実行する、請求項53に記載の装置。
  62. 前記コンテンツデータはビデオデータのコード化ブロックを備え、
    前記装置は、
    ビデオデータの量子化ブロックを生成するためにビデオデータの前記コード化ブロックを統計的に復号するエントロピー復号ユニットと、
    ビデオデータの変換されたブロックを生成するためにビデオデータの前記量子化ブロックに対して逆量子化を実行する再構成ユニットと、ここにおいて、異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行することは、ビデオデータの残差ブロックを生成するようにビデオデータの前記変換されたブロックを前記周波数領域から前記空間領域に変換するために、異なるサイズの前記複数のスケーリングされた変換のうちの前記1つまたは複数を実行することを備える、
    前記ビデオデータの復号されたブロックを決定するためにビデオデータの前記残差ブロックに対して動き補償を実行する動き補償ユニットと、
    をさらに備える、請求項53に記載の装置。
  63. 実行されたとき、1つまたは複数のプロセッサに、
    コンテンツデータを周波数領域から空間領域に変換するために異なるサイズの複数のスケーリングされた変換のうちの1つまたは複数を実行する32点変換ユニットを実装させ、ここにおいて、前記スケーリングされた32点変換ユニットは、サイズ32の前記複数のスケーリングされた変換のうちの第1の変換を実行し、前記複数のスケーリングされた変換は、前記複数のスケーリングされた変換の各々が直交性特性を満たすように選択された32内部定点ファクタを含む、
    スケーリングされた変換係数を生成するように前記コンテンツデータにスケールファクタを適用する再構成ユニットを実装させる命令を記憶するコンピュータ可読記憶媒体であって、
    前記再構成ユニットは、前記スケーリングされた変換係数と量子化行列の成分との間のマッピングを記憶する前記量子化ユニット内に含まれるルックアップテーブル(LUT)を使用して前記スケールファクタを適用し、
    前記スケーリングされた32点変換ユニットは、
    前記複数のスケーリングされた変換のうちの第2の変換を実行する、前記32点変換ユニットの偶数ハーフ中にあるスケーリングされた16点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第2の変換は16の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第3の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第1のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第3の変換は8の変換サイズを定義する、
    前記複数のスケーリングされた変換のうちの第4の変換を実行する、前記32点変換ユニットの奇数ハーフ中にある第2のスケーリングされた8点変換ユニットと、なお、前記複数のスケーリングされた変換のうちの前記第4の変換は8の変換サイズを定義する、
    前記32点変換ユニットの奇数ハーフ中にあるギブンス回転行列R16によって暗示される16点バタフライと、
    を含む、コンピュータ可読記憶媒体。
JP2013549490A 2011-01-10 2012-01-10 メディアデータコーディングのための32点変換 Expired - Fee Related JP5797774B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201161431343P 2011-01-10 2011-01-10
US61/431,343 2011-01-10
US201161433015P 2011-01-14 2011-01-14
US61/433,015 2011-01-14
US201161433351P 2011-01-17 2011-01-17
US61/433,351 2011-01-17
US201161446834P 2011-02-25 2011-02-25
US61/446,834 2011-02-25
US201161504146P 2011-07-01 2011-07-01
US61/504,146 2011-07-01
US13/346,632 US9824066B2 (en) 2011-01-10 2012-01-09 32-point transform for media data coding
US13/346,632 2012-01-09
PCT/US2012/020755 WO2012096943A2 (en) 2011-01-10 2012-01-10 32-point transform for media data coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015121241A Division JP2015216650A (ja) 2011-01-10 2015-06-16 メディアデータコーディングのための32点変換

Publications (2)

Publication Number Publication Date
JP2014509108A JP2014509108A (ja) 2014-04-10
JP5797774B2 true JP5797774B2 (ja) 2015-10-21

Family

ID=46455218

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2013549490A Expired - Fee Related JP5797774B2 (ja) 2011-01-10 2012-01-10 メディアデータコーディングのための32点変換
JP2015121241A Pending JP2015216650A (ja) 2011-01-10 2015-06-16 メディアデータコーディングのための32点変換
JP2017192697A Pending JP2018038046A (ja) 2011-01-10 2017-10-02 メディアデータコーディングのための32点変換

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2015121241A Pending JP2015216650A (ja) 2011-01-10 2015-06-16 メディアデータコーディングのための32点変換
JP2017192697A Pending JP2018038046A (ja) 2011-01-10 2017-10-02 メディアデータコーディングのための32点変換

Country Status (6)

Country Link
US (1) US9824066B2 (ja)
EP (1) EP2663933A2 (ja)
JP (3) JP5797774B2 (ja)
KR (2) KR20170051540A (ja)
CN (1) CN103380425B (ja)
WO (1) WO2012096943A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 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
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法
US10642921B2 (en) * 2011-11-03 2020-05-05 Texas Instruments Incorporated Unified forward and inverse transform architecture
TWI443527B (zh) * 2012-01-02 2014-07-01 Univ Nat Cheng Kung 遞迴式第四型離散餘弦之系統
EP2805492B1 (en) * 2012-01-19 2018-11-14 VID SCALE, Inc. System and method of video coding quantization and dynamic range control
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) * 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
CN103067718B (zh) * 2013-01-30 2015-10-14 上海交通大学 适用于数字视频编解码的一维离散余弦逆变换模块电路
US9848188B1 (en) * 2013-06-12 2017-12-19 Apple Inc. Video coding transform systems and methods
CN103747266A (zh) * 2013-12-24 2014-04-23 华为技术有限公司 一种数据变换方法和设备
KR101601864B1 (ko) * 2014-02-25 2016-03-10 숭실대학교산학협력단 동영상 코덱의 역변환 방법 및 그 장치
US10863200B2 (en) 2014-07-25 2020-12-08 Intel Corporation Techniques for performing a forward transformation by a video encoder using a forward transform matrix
KR102051193B1 (ko) * 2014-09-12 2019-12-02 브이아이디 스케일, 인크. 비디오 코딩을 위한 성분간 탈상관
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
US10390048B2 (en) * 2016-02-15 2019-08-20 Qualcomm Incorporated Efficient transform coding using optimized compact multi-pass transforms
US10448053B2 (en) * 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
US10349085B2 (en) * 2016-02-15 2019-07-09 Qualcomm Incorporated Efficient parameter storage for compact multi-pass transforms
KR20220053702A (ko) * 2016-05-13 2022-04-29 소니그룹주식회사 화상 처리 장치 및 방법
US10743025B2 (en) 2016-09-01 2020-08-11 Lg Electronics Inc. Method and apparatus for performing transformation using layered givens transform
CN107027039B (zh) * 2017-04-14 2019-08-27 西安电子科技大学 基于高效视频编码标准的离散余弦变换实现方法
WO2019045544A1 (ko) * 2017-09-03 2019-03-07 엘지전자 주식회사 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
US10904573B2 (en) * 2017-11-30 2021-01-26 Embry-Riddle Aeronautical University, Inc. Reduced multiplicative complexity discrete cosine transform (DCT) circuitry
US10863199B2 (en) * 2018-03-26 2020-12-08 Qualcomm Incorporated Minimization of transform memory and latency via parallel factorizations
WO2019190282A1 (ko) * 2018-03-29 2019-10-03 엘지전자 주식회사 곱셈 없는 회전 기반 변환에 기초하여 비디오 신호를 처리하는 방법 및 장치
WO2019203569A1 (ko) * 2018-04-17 2019-10-24 엘지전자 주식회사 전처리/후처리 행렬에 기초하는 근사 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding
WO2019231291A1 (ko) * 2018-05-31 2019-12-05 엘지전자 주식회사 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
WO2019235491A1 (ja) * 2018-06-08 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11593619B2 (en) * 2018-10-30 2023-02-28 Raytheon Company Computer architecture for multiplier-less machine learning
US11284112B2 (en) * 2018-12-06 2022-03-22 Tencent America LLC Method and apparatus for a primary transform using an 8-bit transform core
CN109788286B (zh) * 2019-02-01 2021-06-18 北京大学深圳研究生院 一种编码、解码变换方法、***、设备及计算机可读介质

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2581463B1 (fr) * 1985-05-03 1989-09-08 Thomson Csf Dispositifs de calcul de transformees cosinus, dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul
FR2582424B1 (fr) * 1985-05-22 1989-06-30 Guichard Jacques Circuit de calcul rapide de la transformee en cosinus, directe ou inverse, d'un signal discret
US5163103A (en) * 1988-12-27 1992-11-10 Kabushiki Kaisha Toshiba Discrete cosine transforming apparatus
US5029122A (en) * 1988-12-27 1991-07-02 Kabushiki Kaisha Toshiba Discrete cosine transforming apparatus
US5257213A (en) * 1991-02-20 1993-10-26 Samsung Electronics Co., Ltd. Method and circuit for two-dimensional discrete cosine transform
US5253055A (en) 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
US5408425A (en) * 1993-05-25 1995-04-18 The Aerospace Corporation Split-radix discrete cosine transform
US5508949A (en) 1993-12-29 1996-04-16 Hewlett-Packard Company Fast subband filtering in digital signal coding
US5649077A (en) 1994-03-30 1997-07-15 Institute Of Microelectronics, National University Of Singapore Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation
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
JP3115199B2 (ja) 1994-12-16 2000-12-04 松下電器産業株式会社 画像圧縮符号化装置
US5737450A (en) 1995-05-15 1998-04-07 Polaroid Corporation Method and apparatus for fast two-dimensional cosine transform filtering
JP2778622B2 (ja) 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JPH09212484A (ja) 1996-01-30 1997-08-15 Texas Instr Inc <Ti> 離散コサイン変換方法
EP1018082A1 (en) * 1997-08-25 2000-07-12 QUALCOMM Incorporated Variable block size 2-dimensional inverse discrete cosine transform engine
CN1296852C (zh) 1997-11-17 2007-01-24 索尼电子有限公司 用于采用离散变换进行数字视频数据去压缩的方法和***
US6252994B1 (en) * 1998-01-26 2001-06-26 Xerox Corporation Adaptive quantization compatible with the JPEG baseline sequential mode
US6222944B1 (en) 1998-05-07 2001-04-24 Sarnoff Corporation Down-sampling MPEG image decoder
JP2001346213A (ja) 2000-06-02 2001-12-14 Nec Corp 離散コサイン変換装置及びその離散コサイン変換方法
WO2001059603A1 (en) 2000-02-09 2001-08-16 Cheng T C Fast method for the forward and inverse mdct in audio coding
CN100429644C (zh) 2000-10-23 2008-10-29 国际商业机器公司 使用比例项、早期中止和精度细算的更快速变换
US7929610B2 (en) 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
US7366236B1 (en) 2001-06-04 2008-04-29 Cisco Sytems Canada Co. Source adaptive system and method for 2D iDCT
US7185037B2 (en) 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
ATE363183T1 (de) 2001-08-24 2007-06-15 Koninkl Philips Electronics Nv Addieren von halbbildern eines bildes
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
KR100481067B1 (ko) 2001-09-28 2005-04-07 브이케이 주식회사 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치
US7088791B2 (en) * 2001-10-19 2006-08-08 Texas Instruments Incorporated Systems and methods for improving FFT signal-to-noise ratio by identifying stage without bit growth
US7130876B2 (en) 2001-11-30 2006-10-31 General Instrument Corporation Systems and methods for efficient quantization
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
FR2834362A1 (fr) 2001-12-28 2003-07-04 Koninkl Philips Electronics Nv Dispositif de transformation inverse adaptatif
JP2003223433A (ja) 2002-01-31 2003-08-08 Matsushita Electric Ind Co Ltd 直交変換方法、直交変換装置、符号化方法、符号化装置、逆直交変換方法、逆直交変換装置、復号化方法、及び、復号化装置
US7007055B2 (en) 2002-03-12 2006-02-28 Intel Corporation Method of performing NxM Discrete Cosine Transform
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7437394B2 (en) 2002-06-19 2008-10-14 The Aerospace Corporation Merge and split discrete cosine block transform method
US7760950B2 (en) 2002-09-26 2010-07-20 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
US20040136602A1 (en) 2003-01-10 2004-07-15 Nithin Nagaraj Method and apparatus for performing non-dyadic wavelet transforms
US20040141654A1 (en) * 2003-01-17 2004-07-22 Yi-Yung Jeng Texture encoding procedure
US7412100B2 (en) 2003-09-04 2008-08-12 Qualcomm Incorporated Apparatus and method for sub-sampling images in a transform domain
US7379500B2 (en) 2003-09-30 2008-05-27 Microsoft Corporation Low-complexity 2-power transform for image/video compression
TWI241074B (en) 2003-11-05 2005-10-01 Bing-Fei Wu Image compression system using two-dimensional discrete wavelet transformation
TWI289992B (en) 2003-12-03 2007-11-11 Via Tech Inc Method and device for sharing MPEG frame buffers
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
US8861600B2 (en) 2004-06-18 2014-10-14 Broadcom Corporation Method and system for dynamically configurable DCT/IDCT module in a wireless handset
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7471850B2 (en) 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7792385B2 (en) 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
TW200643848A (en) 2005-06-01 2006-12-16 Wintek Corp Method and apparatus for four-color data conversion
US20070025441A1 (en) 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
TWI280804B (en) 2005-09-26 2007-05-01 Yuh-Jue Chuang Method for splitting 8x8 DCT into four 4x4 modified DCTS used in AVC/H. 264
US7725516B2 (en) 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
US20070200738A1 (en) 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
TWI311856B (en) * 2006-01-04 2009-07-01 Quanta Comp Inc Synthesis subband filtering method and apparatus
US8595281B2 (en) 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
CN100562111C (zh) 2006-03-28 2009-11-18 华为技术有限公司 离散余弦逆变换方法及其装置
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
EP1850597A1 (en) 2006-04-24 2007-10-31 Universität Dortmund Method and circuit for performing a cordic based Loeffler discrete cosine transformation (DCT), particularly for signal processing
US8571340B2 (en) 2006-06-26 2013-10-29 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
US8606023B2 (en) * 2006-06-26 2013-12-10 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
US8582663B2 (en) 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
US8548815B2 (en) 2007-09-19 2013-10-01 Qualcomm Incorporated Efficient design of MDCT / IMDCT filterbanks for speech and audio coding applications
US8654833B2 (en) 2007-09-26 2014-02-18 Qualcomm Incorporated Efficient transformation techniques for video coding
JP5427785B2 (ja) 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
US20090141808A1 (en) 2007-11-30 2009-06-04 Yiufai Wong System and methods for improved video decoding
US8631060B2 (en) * 2007-12-13 2014-01-14 Qualcomm Incorporated Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
KR20090078494A (ko) 2008-01-15 2009-07-20 삼성전자주식회사 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터
CN101330616B (zh) 2008-07-31 2011-04-13 上海交通大学 视频解码过程中反离散余弦变换的硬件实现装置及方法
KR101247923B1 (ko) 2008-10-03 2013-03-26 퀄컴 인코포레이티드 4×4 및 8×8 보다 큰 변환을 이용한 비디오 코딩
US20100172409A1 (en) 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
US9110849B2 (en) 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-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
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
CN101989253B (zh) * 2009-07-31 2012-08-29 鸿富锦精密工业(深圳)有限公司 离散余弦转换电路及使用其的影像处理装置
CN103125116A (zh) 2010-09-28 2013-05-29 三星电子株式会社 视频编码方法和装置以及解码方法和装置

Also Published As

Publication number Publication date
US20120177108A1 (en) 2012-07-12
CN103380425A (zh) 2013-10-30
US9824066B2 (en) 2017-11-21
EP2663933A2 (en) 2013-11-20
CN103380425B (zh) 2017-12-26
JP2015216650A (ja) 2015-12-03
WO2012096943A3 (en) 2013-08-08
WO2012096943A2 (en) 2012-07-19
KR20170051540A (ko) 2017-05-11
JP2014509108A (ja) 2014-04-10
JP2018038046A (ja) 2018-03-08
KR20130116924A (ko) 2013-10-24

Similar Documents

Publication Publication Date Title
JP5797774B2 (ja) メディアデータコーディングのための32点変換
US11785224B2 (en) Low-complexity two-dimensional (2D) separable transform design with transpose buffer management
Budagavi et al. Core transform design in the high efficiency video coding (HEVC) standard
KR101315629B1 (ko) 미디어 데이터 코딩을 위한 16-포인트 변환
JP5590133B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
US20120307893A1 (en) Fast computing of discrete cosine and sine transforms of types vi and vii
JP2018511227A (ja) フレーム内符号化方法、フレーム内復号化方法、エンコーダ、及びデコーダ
KR101315565B1 (ko) 미디어 데이터 코딩을 위한 16-포인트 변환
JP2013502624A (ja) メディアデータ符号化用8点変換
JP2012531670A (ja) メディアデータ符号化用8点変換
JP2012524330A (ja) 偶数サイズ離散コサイン変換の計算
US10511860B2 (en) Signal transforming method and device
JP6121412B2 (ja) Vlcコードワードを使用したシンタックス要素のコーディング
Richter Lossless coding extensions for JPEG
AU2011247855A1 (en) Method, apparatus and system for updating a probability estimate for arithmetic coding
da Silva Dias High performance and scalable unified architectures for transform and quantization in H. 264/AVC codecs

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150616

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150819

R150 Certificate of patent or registration of utility model

Ref document number: 5797774

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees