JP5129248B2 - 順方向および逆離散コサイン変換の効率的な固定小数点近似 - Google Patents

順方向および逆離散コサイン変換の効率的な固定小数点近似 Download PDF

Info

Publication number
JP5129248B2
JP5129248B2 JP2009518523A JP2009518523A JP5129248B2 JP 5129248 B2 JP5129248 B2 JP 5129248B2 JP 2009518523 A JP2009518523 A JP 2009518523A JP 2009518523 A JP2009518523 A JP 2009518523A JP 5129248 B2 JP5129248 B2 JP 5129248B2
Authority
JP
Japan
Prior art keywords
value
coefficients
matrix
factor
calculating
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.)
Active
Application number
JP2009518523A
Other languages
English (en)
Other versions
JP2010505287A (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 JP2010505287A publication Critical patent/JP2010505287A/ja
Application granted granted Critical
Publication of JP5129248B2 publication Critical patent/JP5129248B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Description

優先権の主張
本願は、2006年6月26日に出願された米国仮出願第60/816,697号、2006年8月30日に出願された米国仮出願第60/841,362号、2006年9月25日に出願された米国仮出願第60/847,194号、2006年10月16日に出願された米国仮出願第60/829,669号、2006年12月11日に出願された米国仮出願第60/869,530号、2007年1月8日に出願された米国仮出願第60/883,932号、2007年3月23日に出願された米国仮出願第60/896,778号、および2007年3月30日に出願された米国仮出願第60/909,335号の利益を主張し、それらの全体の内容は参照によりここに組み込まれる。
本開示は、コンピュータグラフィックスおよびマルチメディアに関し、特に、グラフィックス、画像、およびビデオ情報の圧縮(compression)に関する。
背景
多くの既存の画像およびビデオ符号化標準規格(coding standards)は、高解像度画像およびビデオが比較的コンパクトなファイルあるいはデータストリームとして、保存されることあるいは送信されることを可能にするために、圧縮技術を使用している。そのような符号化基準は、ジョイントフォトグラフィックエキスパートグループ(Joint Photographic Experts Group)(JPEG)、ムービングピクチャエキスパートグループ(Moving Pictures Experts Group)(MPEG)−1、MPEG−2、MPEG−4パート2、H.261、H.263、そして他の画像あるいはビデオ符号化標準規格を含んでいる。
これらの標準規格の多くにしたがって、ビデオフレームは、「空間(spatial)」符号化を使用して、圧縮される。これらのフレームは、オリジナルのフレーム(original frames)(すなわち、i−フレーム)であってもよく、あるいは、動き補償(motion compensation)を使用する時間符号化プロセス(temporal encoding process)によって生成される残留フレーム(residual frames)であってもよい。空間符号化の間に(during)、フレームは、等しいサイズの、ピクセルのブロックへと分解される(broken into)。例えば、非圧縮されたフレームは、1セットの8×8のピクセルのブロックへと分解されることができる。ピクセルの各ブロックについて、ピクセルコンポーネントは、ピクセルコンポーネント値のマトリクスへと分離される(separated)。例えば、ピクセルの各ブロックは、Yピクセルコンポーネント値のマトリクス、Uピクセルコンポーネント値のマトリクス、そして、Vピクセルコンポーネント値のマトリクス、に分割されることができる。この例においては、Yピクセルコンポーネント値は、輝度値(luminance values)を示し、UおよびVピクセルコンポーネント値は、クロミナンス値(chrominance values)を表す。
さらに、空間符号化の間に、順方向離散コサイン変換(forward discrete cosine transform)(FDCT)は、符号化されているフレームにおいてピクセルコンポーネント値の各マトリクスに適用される。理想的な一次元FDCTは、次のように定義される:
Figure 0005129248
ここで、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そして係数cは、1≦k≦N−1の場合、次のように与えられる。
Figure 0005129248
理想的な二次元FDCTは、式で次のように定義される:
Figure 0005129248
ここでは、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そしてc(i,j)は、c(i,j)=c(i)c(j)によって与えられ、そしてc(k)は、一次元の場合におけるように定義される。
係数のマトリクスは、ピクセルコンポーネント値のブロックがFDCTを使用して変換されるとき、生成される。この係数のマトリクスは、そのあと、例えば、ハフマンあるいは算術符号(Huffman or arithmetic codes)を使用して、量子化され、符号化されることができる。ビデオビットストリーム(video bitstream)は、非圧縮された一連のビデオフレーム(an uncompressed series of video frames)における一連のビデオフレーム(a series of video frames)においてカラーコンポーネント値のすべてのブロックに関して、このプロセスを実行することの組み合わされた結果を表している。
非圧縮されたビデオフレームは、このプロセスを逆にすること(reversing)によって、ビデオビットストリームから導き出されることができる。具体的に、ビットストリームにおける係数の各マトリクスへと伸張され(decompressed)、それらの伸張された値は、変換された係数のマトリクスを導き出すために逆量子化される(de-quantized)。逆離散コサイン変換(inverse discrete cosine transform)(「IDCT」)が、そのあと、ピクセルコンポーネント値のマトリクスを導き出すために、変換された係数の各マトリクスに対して適用される。理想的な一次元IDCTは、次のように定義される:
Figure 0005129248
ここで、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そして係数cは、1≦k≦N−1の場合に、次のように与えられる、
Figure 0005129248
理想的な二次元IDCTは、式で次のように定義される:
Figure 0005129248
ピクセルコンポーネント値の結果として生じるマトリクス(resulting matrixes)は、そのあと、ピクセルのブロックに再アセンブルされ(reassembled)、これらのピクセルのブロックは、復号されたフレーム(decoded frame)を形成するために再びアセンブルされるであろう。復号されたフレームがiフレームである場合、そのフレームは、今や完全に復号される。しかしながら、もし非圧縮フレームが予測(predictive)あるいは双予測(bi-predictive)フレームである場合には、復号されたフレームは、単に復号された残留フレーム(decoded residual frame)であるにすぎない。完了されたフレーム(completed frame)は、復号されたフレームに関連づけられた動きベクトル(motion vector)を使用して再構成されたフレーム(reconstructed frame)を構成することによって、そして、そのあと、再構成されたフレームを復号された残留フレームに加えることによって、生成される。
理想的な状況下では、どんな情報も、符号化するFDCT、あるいは、ピクセルコンポーネント値のブロックを復号するIDCTを使用することにより、失われない。その結果として、これらの理想的な状況下では、ビデオフレームの復号されたバージョン(decoded version)は、ビデオフレームのオリジナルバージョン(original version)と同一である。しかしながら、FDCTあるいはIDCTを計算することは、FDCTsおよびIDCTsの計算が乗算演算の有効数字(significant numbers)および実数の使用を含むので、計算上難しい可能性がある。この理由から、FDCTsおよびIDCTsにおいて使用された実数は、限定された精度数(limited precision numbers)を使用して、しばしば近似される。丸め誤差(rounding error)は、実数値を表すために、限定された精度数を使用することから生じる。さらに、量子化(quantization)および逆量子化(dequantization)が、追加の誤差の原因となりうる。
圧縮および伸張プロセスにおける誤差は、オリジナルの非圧縮されたフレーム(original uncompressed frame)と最終の非圧縮されたフレーム(final uncompressed frame)との間で、かなりの差(significant difference)を結果としてもたらす可能性がある。例えば、最終の非圧縮されたフレームにおけるカラーは、オリジナルの非圧縮されたフレームにおけるカラーと異なる可能性がある。さらに、IDCTsのエンコーダのインプリメンテーションと、IDCTのデコーダのインプリメンテーションとの間のミスマッチ(mismatch)によって生じた誤差は、予測フレームのシーケンスの符号化および復号の間に、累積する可能性がある。これらの累積された誤差は、一般に、「IDCTドリフト(“IDCT drift”)」と呼ばれる。
固定小数点計算(fixed-point calculation)を使用して、逆離散コサイン変換の計算を近似する技術が、説明されている。これらの技術にしたがって、スケーリングされた係数のマトリクスは、符号化された係数のマトリクスにおける係数に、スケールファクタ(scale factors)を乗算することによって、生成される。次に、バイアスをかけられた係数のマトリクス(matrixes of biased coefficients)は、スケーリングされた係数のマトリクスのDC係数に、中間バイアス値(midpoint bias value)を加算することによって、生成される。固定小数点算術演算(arithmetic)は、そのあと、バイアスをかけられた係数のマトリクスに対して変換を適用するために、使用される。結果として生じるマトリクスにおける値は、そのあと、ピクセルコンポーネント値のマトリクスを導き出すために、右シフトされる。ピクセルコンポーネント値のマトリクスは、そのあと、ピクセルのマトリクスを作るために、組み合わせられる。これらの技術によって生成されたピクセルのマトリクスは、理想的な逆離散コサイン変換(「IDCT」)を使用して伸張されたピクセルのマトリクスに非常に近似している。
1つの態様においては、方法は、スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける各係数をスケーリングすることを備えている。この方法においては、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である。方法は、スケーリングされた係数のマトリクスを、変換された係数のマトリクスに変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用(repeated applications of a fixed-point scaled one-dimensional transform)を使用すること、をさらに備えている。加えて、方法は、調節された係数のマトリクスを作るために、変換された係数のマトリクスにおける変換された係数を右シフトすること、を備えている。調節された係数(adjusted coefficients)のマトリクスにおける各調節された係数は、符号化された係数のマトリクスに対して理想的な二次元IDCTを適用することによって作られるであろう、値のマトリクスにおいて、対応する値を近似する。さらに、方法は、8×8のピクセルのブロックを表示すること、を備えている。8×8のピクセルのブロックにおける各ピクセルは、調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含む。
別の態様においては、デバイスは、スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける各係数をスケーリングする、スケーリングモジュールを備えており、なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である。デバイスは、スケーリングされた係数のマトリクスを、変換された係数のマトリクスに変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用する、逆ベクトル変換モジュール(inverse vector transform module)をさらに備えている。さらに、デバイスは、調節された係数のマトリクスを作るために、変換された係数のマトリクスにおける変換された係数を右シフトする右シフトモジュールを備えている。調節された係数のマトリクスにおける各調節された係数は、符号化された係数のマトリクスに、理想的な二次元IDCTを適用することにより作られるであろう、値のマトリクスにおいて対応する値を近似する。デバイスは、8×8のピクセルのブロックを出力する、出力モジュールをさらに備えている。ピクセルのブロックにおける各ピクセルは、調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含む。
別の態様において、デバイスは、スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける係数をスケーリングするための手段を備えており、なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である。加えて、デバイスは、スケーリングされた係数のマトリクスを、変換された係数のマトリクスに変換する、固定小数スケーリングされた一次元変換の繰り返し適用を使用するための手段、を備えている。さらに、デバイスは、調節された係数のマトリクスを作るために、変換された係数のマトリクスにおける変換された係数を右シフトするための手段、を備えている。調節された係数のマトリクスにおける各調節された係数は、符号化された係数のマトリクスに、理想的な二次元IDCTを適用することによって作られるであろう、値のマトリクスにおいて、対応する値を近似する。追加的に、デバイスは、8×8のピクセルのブロックを出力するための手段、を備えている。ピクセルのブロックにおける各ピクセルは、調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含む。
別の態様においては、本発明は、インストラクションを含んでいるコンピュータ可読メディアに向けられる(directed)。インストラクションは、スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける各係数をプログラマブルプロセッサにスケーリングさせ、なお、A=2048、B=1703、C=2676、D=2408、E=1416、F=2225、G=2003、H=3496、I=3147、そしてJ=2832である。インストラクションは、さらに、プログラマブルプロセッサが、変換された係数のマトリクスへとスケーリングされた係数のマトリクスを変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用するようにさせる。加えて、インストラクションは、プログラマブルプロセッサが、調節された係数のマトリクスを作るために、変換された係数のマトリクスにおける変換された係数を右シフトするようにさせる。調節された係数のマトリクスにおける各調節された係数は、符号化された係数のマトリクスに、理想的な二次元IDCTを適用することによって作られるであろう、値のマトリクスにおいて対応する値を近似する。インストラクションはさらに、プログラマブルプロセッサに、ディスプレイユニットに8×8のピクセルのブロックを表示させる信号を、出力させる。ピクセルのブロックにおける各ピクセルは、調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含んでいる。
いくつかのケースにおいては、コンピュータ可読メディアは、コンピュータプログラムプロダクト(computer program product)の一部分を形成することができ、それは、製造業者(manufacturers)に対して販売され、かつ/または、ビデオ符号化デバイスにおいて使用されていてもよい。コンピュータプログラムプロダクトは、コンピュータ可読メディアを含んでもよく、また、いくつかのケースにおいては、パッケージング材料(packaging materials)をさらに含んでいてもよい。
1つまたは複数の例の詳細が、添付の図面および以下の説明において記述されている。本発明の他の特徴、目的、および利点は、説明および図面から、そして特許請求の範囲から、明らかであろう。
図1は、メディアファイルを符号化し復号する、例示的なデバイスを図示するブロック図である。 図2は、符号化モジュールの例示的な詳細を図示するブロック図である。 図3は、復号モジュールの例示的な詳細を図示するブロック図である。 図4は、符号化モジュールの例示的な演算を図示するフローチャートである。 図5は、復号モジュールの例示的な演算を図示するフローチャートである。 図6は、逆離散コサイン変換(「IDCT」)モジュールの例示的な詳細を図示するブロック図である。 図7は、逆変換モジュールの例示的な演算を図示するフローチャートである。 図8は、順方向離散コサイン変換(「FDCT」)モジュールの例示的な詳細を図示するブロック図である。 図9は、順方向ベクトル変換モジュールの例示的な演算を図示するフローチャートである。 図10Aは、例示的な一次元変換を図示するフロー図である。 図10Bは、例示的なスケーリングされた一次元変換を図示するフロー図である。 図11は、逆変換モジュールによって使用される、例示的なスケーリングされた一次元変換を図示するフロー図である。
詳細な説明
図1は、メディアファイルを符号化し復号する例示的なデバイス2、を図示するブロック図である。デバイス2は、パーソナルコンピュータ、モバイル無線電話、サーバ、ネットワーク装置(network appliance)、乗り物と一体化されたコンピュータ(computer integrated into a vehicle)、ビデオゲーミングプラットフォーム(video gaming platform)、ポータブルビデオゲームデバイス(portable video game device)、コンピュータワークステーション(computer workstation)、コンピュータキオスク(computer kiosk)、デジタル標識(digital signage)、メインフレームコンピュータ(mainframe computer)、テレビセットトップボックス(television set-top box)、ネットワーク電話、携帯情報端末(personal digital assistant)、ビデオゲームプラットフォーム、モバイルメディアプレーヤ(mobile media player)、ホームメディアプレーヤ、デジタルビデオプロジェクタ、パーソナルメディアプレーヤ(例えば、iPod)、あるいは、別のタイプの電子デバイスを備えていてもよい。
デバイス2は、メディアデータを生成するために、メディアソース4を含むことができる。メディアソース4は、画像データを取り込むために、デジタルビデオ、あるいは、スチルフォトカメラ(still photo camera)を備えることができる。メディアソース4は、デバイス2内に構築されてもよいし(may be built into)、あるいは、周辺デバイス(peripheral device)として、デバイス2に取り付けられてもよい。メディアソース4は、音声データを記録するために、マイクロホンをさらに備えてもよい。メディアソース4は、プロセッサ6に対してメディアデータを供給することができる。プロセッサ6は、デジタル信号プロセッサ(digital signal processor)(「DSP」)、マイクロプロセッサ、あるいは、何らかの他のタイプの集積回路、を備えることができる。
プロセッサ6がメディアソース4からメディアデータを受け取るとき、符号化モジュール8は、メディアデータを符号化することができる。符号化モジュール8は、プロセッサ6によって実施されるソフトウェアを備えることができる。代替的に、符号化モジュール8は、メディアデータを符号化するプロセッサ6内に専用ハードウェア(specialized hardware)を備えることができる。さらに別の代替で、符号化モジュール8は、メディアデータを符号化するハードウェアおよびソフトウェアのいずれの組み合わせを備えることができる。
符号化モジュール8は、メディアレポジトリ10において、符号化されたメディアデータを記憶することができる。メディアレポジトリ10は、フラッシュメモリ、ランダムアクセスメモリ、ハードディスクドライブ、あるいは、何らかの他のタイプの揮発性あるいは不揮発性データストレージユニットを備えることができる。
復号モジュール12は、メディアレポジトリ10から符号化されたメディアデータを取り出す(retrieve)ことができる。復号モジュール12は、プロセッサ6によって実施されたソフトウェアを備えることができる。代替的に、復号モジュール12は、符号化されたメディアデータを復号するプロセッサ6内に、専用ハードウェアを備えることができる。さらに別の代替で、復号モジュール12は、符号化されたメディアデータを復号するように協力する(collaborate)ソフトウェアおよびハードウェアの組み合わせを備えることができる。
デバイス2におけるメディアプレゼンテーションユニット14は、復号モジュール12によって復号されたメディアデータを表すことができる。例えば、メディアプレゼンテーションユニット14は、画像、あるいは、ビデオメディアデータを表すコンピュータモニタ、を備えることができる。別の例においては、メディアプレゼンテーションユニット14は、オーディオメディアデータを表す、オーディオ出力デバイス(例えばスピーカ)を備えることができる。メディアプレゼンテーションユニット14は、デバイス2へと一体化されてもよいし、あるいは、周辺デバイスとして、デバイス2に対してワイヤードリンク(wired link)またはワイヤレスリンク(wireless link)を介して、接続されてもよい。
デバイス2は、さらにネットワークインタフェース16を備えることができる。ネットワークインタフェース16は、ワイヤードリンクあるいはワイヤレスリンクを介して、デバイス2とコンピュータネットワークとの間の通信を容易にすることができる。例えば、ネットワークインタフェース16は、デバイス2とモバイル電話ネットワークとの間の通信を容易にすることができる。デバイス2は、ネットワークインタフェース16を介してメディアファイルを受け取ることができる。例えば、デバイス2は、ネットワークインタフェース16を通して、写真、ビデオクリップ、ストリーミングビデオ(例えば、テレビ、テレビ会議、映画)、オーディオクリップ(例えば、リングトーン(ringtone)、歌、MP3ファイル)、ストリーミングオーディオ(例えば、デジタルラジオ局、音声呼び出し、など)を受け取ることができる。ネットワークインタフェース16は、メディアファイルあるいはビデオビットストリームを受け取るとき、ネットワークインタフェース16は、メディアレポジトリ10においてメディアファイルあるいはビデオストリームを保存することができる。
ビデオ信号は、ピクチャのシーケンスという点において、説明されることができ、それは、フレーム(全体のピクチャ)あるいは、フィールド(例えば、フレームの奇数あるいは偶数の線のいずれかを備えているピクチャ)を含んでいる。さらに、各フレームあるいはフィールドは、フレームあるいはフィールドの副次的部分(sub-portions)、あるいは、2つ以上のスライス、を含むことができる。ここにおいて使用されているように、単独で、あるいは他の単語との組み合わせのいずれかにおいて、用語「フレーム(frame)」は、ピクチャ、フレーム、フィールドあるいはそれらのスライスを意味することができる。
符号化モジュール8が一連のビデオフレームを符号化するとき、符号化モジュール8は、「iフレーム」になるようにビデオフレームのうちのもの(ones)を選択することによって、開始することができる。例えば、符号化モジュール8は、iフレームとして、8番目ごとのフレームを選択することができる。iフレームは、他のフレームを参照しない(do not reference)フレームである。iフレームを選択した後で、符号化モジュール8は、iフレームを符号化するために、「空間符号化(spatial encoding)」を使用する。さらに、符号化モジュール8は、残りのフレーム(remaining frames)を符号化するために、「時間符号化(temporal encoding)」を使用することができる。
フレームを符号化する空間符号化を使用するために、符号化モジュール8は、ピクセルのブロックへとフレームデータを分解することができる。例えば、符号化モジュール8は、8ピクセルの幅と、8ピクセルの高さである、ピクセルのブロックへとフレームデータを分解することができる(すなわち、ピクセルの各ブロックは、64個のピクセルを含む)。符号化モジュール8は、そのあと、ピクセルの各ブロックにおけるピクセルのピクセルコンポーネント値をピクセルコンポーネント値の別個のマトリクスへと分離することができる。ピクセルのピクセルコンポーネント値は、ピクセルの外観(appearance)を特徴づける値である。例えば、各ピクセルは、Yピクセルコンポーネント値、Crピクセルコンポーネント値およびCbピクセルコンポーネント値を指定することができる。Yピクセルコンポーネント値は、ピクセルの輝度を示し、Crピクセルコンポーネント値は、ピクセルの赤色クロミナンスを示し、そして、Cbピクセルコンポーネント値は、ピクセルの青色クロミナンスを示す。この例においては、符号化モジュール8がピクセルのブロックのピクセルコンポーネント値を分離するとき、符号化モジュール8は、Yピクセルコンポーネント値のマトリクス、Crピクセルコンポーネント値のマトリクス、そして、Cbピクセルコンポーネント値のマトリクスを得ることができる。
ピクセルコンポーネント値をピクセルコンポーネント値のマトリクスへと分離した後で、符号化モジュール8は、ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を左シフトすることによって調節された係数のマトリクスを生成する。調節された係数の各マトリクスについては、符号化モジュール8は、調節された係数のマトリクスに一次元変換を繰り返して適用するために、固定小数点算術演算を使用し、それによって、変換された係数のマトリクスを生成する。次に、符号化モジュール8は、1セットのスケールファクタで、変換された係数のマトリクスをスケーリングすることによって、スケーリングされた係数のマトリクスを生成する。スケールファクタの各々は、整数値である。スケールファクタは、一次元変換内のファクタが単純な有理数(rational numbers)を使用して近似されることができる方法で、選択されている。
スケーリングされた係数のマトリクスにおける各スケーリングされた係数は、カラーコンポーネント値の対応するマトリクスに対して、理想的な二次元順方向離散コサイン変換(「FDCT」)を適用することにより作られるであろう、値のマトリクスにおいて、対応する値を近似する。理想的な一次元FDCTは、次のように定義される:
Figure 0005129248
ここで、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そして係数cは、1≦k≦N−1の場合に
Figure 0005129248
によって与えられる。理想的な二次元FDCTは式で次のように定義される:
Figure 0005129248
ここで、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そしてc(i,j)は、c(i,j)=c(i)c(j)によって与えられ、そしてc(k)は、一次元の場合におけるように定義される。
スケーリングされた係数のマトリクスを導き出した後で、符号化モジュール8は、スケーリングされた係数のマトリクスにおける係数を量子化することによって、量子化された係数のマトリクスを生成する。スケーリングされた係数を量子化することは、スケーリングされた係数のマトリクスにおける高頻度係数(high-frequency coefficients)に関連づけられた情報の量を減らすことができる。量子化された係数のマトリクスを生成した後で、符号化モジュール8は、量子化された係数のマトリクスに対して、エントロピ符号化スキーム(entropy encoding scheme)を適用することができる。例えば、符号化モジュール8は、係数のマトリクスにおける量子化された係数に対して、ハフマン符号化スキーム(Huffman encoding scheme)を適用することができる。符号化モジュール8は、量子化された係数のマトリクスのそれぞれに対して、エントロピ符号化スキームを適用するとき、符号化モジュール8は、ビデオビットストリームの一部分として符号化されたマトリクスを出力することができる。
フレームを符号化する時間符号化を使用するために、符号化モジュール8は、フレームを「マクロブロック(macroblocks)」に分割することができる。使用される符号化標準規格によって、これらのマクロブロックは、固定のあるいは可変のサイズであってもよいし、また、オーバーラッピングあるいは非オーバーラッピング(overlapping or non-overlapping)していてもよい。例えば、各マクロブロックは、16x16ピクセルのブロックであってもよい。フレームにおける各マクロブロックについては、符号化モジュール8は、1つまたは複数の基準フレーム(reference frame)におけるソースマクロブロック(source macroblock)を識別するように試みることができる。符号化標準規格によって、基準フレームは、iフレーム、予測フレーム、あるいは双予測フレーム、であってもよい。符号化モジュール8が基準フレームにおけるソースマクロブロックを識別することができる場合、符号化モジュール8は、マクロブロックについての動きベクトルを記録する。動きベクトルは、識別されたソースマクロブロックに関する、マクロブロックの水平変位(horizontal displacement)を示すx値と、識別されたソースマクロブロックに関する、マクロブロックの垂直変位(vertical displacement)を示すy値と、を含む。符号化モジュール8は、マクロブロックについてのソースマクロブロックを識別することができない場合、符号化モジュール8は、マクロブロックについての動きベクトルを記録することを必要とされなくてもよい。次に、符号化モジュール8は、「再構成された(reconstructed)」フレームを生成する。再構成されたフレームは、現在のフレーム(current frame)について記録された動きベクトルにしたがって基準フレームからマクロブロックを移動することから生じるであろう、フレームを含む。再構成されたフレームを生成した後で、符号化モジュール8は、現在のフレームの対応するピクセルにおける対応するピクセルコンポーネント値から、再構成されたフレームの各ピクセルにおけるピクセルコンポーネント値を差し引き、「残留(residual)」フレームが結果として生じる。符号化モジュール8は、そのあとで、現在のフレームのマクロブロックについて動きベクトルを圧縮するために、エントロピ符号化スキームを使用することができる。加えて、符号化モジュール8は、残留フレームを圧縮するために上記に説明された空間符号化技術を使用する。
復号モジュール12は、符号化モジュール8と同様のプロセスを、ただし逆に、実行することができる。例えば、空間復号プロセスを実行するために、復号モジュール12は、符号化されたビデオビットストリームにおける、量子化された係数の各符号化されたマトリクスに対してエントロピ復号スキームを適用することができる。復号モジュール12は、そのあと、量子化された係数の各マトリクスにおける係数を逆量子化することができ、それによって、量子化された係数の各マトリクスについて逆量子化された係数のマトリクスを生成する。量子化された係数の各マトリクスについては、復号モジュール12は、1セットのスケールファクタを使用して、量子化された係数のマトリクスをスケーリングすることによって、スケーリングされた係数のマトリクスを生成する。これらのスケールファクタは、上記に説明された空間符号化プロセスにおいて使用されるのと同様のスケールファクタであってもよい。スケーリングされた係数のマトリクスを生成したあとで、復号モジュール12は、量子化された係数のマトリクスに対して一次元変換を繰り返して適用するために、固定小数点算術演算を使用し、それによって、変換された係数のマトリクスを生成する。例えば、復号モジュール12は、スケーリングされた係数のマトリクスにおける各行ベクトルに対して一次元変換を適用することによって、中間係数のマトリクスを生成することができる。この例においては、復号モジュール12は、そのあと、中間係数のマトリクスにおける各列ベクトルに対して一次元変換を適用することによって、変換された係数のマトリクスを生成することができる。変換された係数のマトリクスを生成した後で、復号モジュール12は、変換された係数のマトリクスにおける変換された係数を右シフトすることによって、調節された係数のマトリクスを生成する。
調節された係数のマトリクスにおける調節された係数は、逆量子化された係数のマトリクスに対して、理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって、作られるであろう、値を近似する。理想的な一次元IDCTは式で定義される:
Figure 0005129248
ここで、sは、N個のオリジナルの値のアレイであり、tは、N個の変換された値のアレイであり、そして係数cは、1≦k≦N−1の場合に、次のように与えられている:
Figure 0005129248
理想二次元IDCTは式で次のように定義される:
Figure 0005129248
これらのピクセルコンポーネント値のブロックは、そのあとで、ピクセルのブロックに再アセンブルされてもよく、これらのピクセルのブロックは、非圧縮されたビデオフレームを形成するために再アセンブルされてもよい。
調節された係数のマトリクスを生成した後で、復号モジュール12は、そのあとで、調節された係数がピクセルコンポーネント値についての許可された範囲(permitted range)内にあるということを確実にするために、調節された係数のマトリクスにおける調節された係数をクリッピングする(clip)することができる。復号モジュール12は、そのあとで、ピクセルのブロックに、クリッピングされた係数のマトリクスを再アセンブルされることができる。ピクセルのブロックに、ピクセルコンポーネント値のブロックを再アセンブルされた後で、復号モジュール12は、ピクセルのブロックを再アセンブルすることによって画像を生成することができる。
予測フレームを復号するために、復号モジュール12は、予測フレームについての残留イメージにおける量子化された係数のマトリクスを復号するために、上記に説明された空間復号技術を使用することができる。さらに、復号モジュール12は、予測フレームの動きベクトルを復号するためにエントロピ復号スキームを使用することができる。次に、復号モジュール12は、動きベクトルにしたがって予測フレームの基準フレームのマクロブロックを「移動させること(moving)」によって、再構成されたフレームを生成することができる。再構成されたフレームを生成した後で、復号モジュール12は、再構成されたフレームの対応するピクセルにおける対応するピクセルコンポーネント値に、復号された残留フレームの各ピクセルにおけるピクセルコンポーネント値を加える。この追加の結果は、再構成された予測フレームである。
この開示において記述された技術は、いくつかの利点を提供することができる。例えば、これらの技術は固定小数点算術演算を適用するので、これらの技術は、モバイル電話、携帯情報端末、パーソナルメディアプレーヤのような、より小さい、より複雑でないデバイスにおいて、適用されることができる。さらに、これらの技術は、国際電気通信連合電気通信標準化部門(International Telecommunication Union Standardization Sector)(ITU−T)推奨H.261、H.263、H.264、T.81(JPEG)を含むフォーマットに対して、国際標準化機構(ISO)/MECムービングピクチャエキスパートグループ(MPEG)−1、MPEG−2およびMPEG−4パート2メディアフォーマット同様、適用されることができる。
図2は符号化モジュール8の詳細の例を図示するブロック図である。符号化モジュール8は、1セットの「モジュール(modules)」を備えることができる。これらのモジュールは、符号化モジュール8のサブセットのソフトウェアインストラクションを備えることができる。代替的に、これらのモジュールは、1つまたは複数の専用ハードウェア(special-purpose hardware)のような、ファームウェアハードウェアを備えることができる。さらに代替的に、これらのモジュールは、ソフトウェアインストラクションと、専用ハードウェアあるいはファームウェアと、を備えることができる。
図2の例で示されているように、符号化モジュール8は、符号化モジュール8がiフレーム、予測フレームあるいは双予測フレームとしてビデオフレームを処理するかどうかを制御する、フレーム制御モジュール(frame control module)を含む。例えば、符号化モジュール8がビデオフレームを受け取るとき、フレーム制御モジュール20は、フレームがiフレーム、予測フレーム、あるいは双予測フレームであるということをビデオフレームに関連づけられたビットストリームフラグが示すかどうかを、決定することができる。フレーム制御モジュール20が、フレームがiフレームであるということをビットストリームフラグが示すこと、を決定する場合、フレーム制御モジュール20は、ビデオフレームがビデオフレーム上で空間符号化をすぐに実行する1セットのモジュールによって処理されるようにすることができる。他方で、もしフレーム制御モジュール20が、フレームが予測フレームあるいは双予測フレームであるということを決定する場合、フレーム制御モジュール20は、ビデオフレームが、時間符号化を実行する1セットのモジュールによって処理されるようにする。
符号化モジュール8は、ビデオフレームに対して空間符号化を適用する、一連のモジュールを含んでいる。これらのモジュールは、ブロックスプリッタモジュール(block splitter module)22、コンポーネント抽出モジュール(component extraction module)24、順方向変換モジュール26、量子化モジュール28、そして、エントロピ符号化モジュール30、を含んでいる。ブロックスプリッタモジュール22は、メディアソース4、ネットワークインタフェース16、あるいは、別のソースから、符号化されていないビデオフレーム(unencoded video frames)を受け取ることができる。ブロックスプリッタモジュール22が符号化されていないビデオフレームを受け取るとき、ブロックスプリッタモジュール22は、そのフレームをピクセルのブロックへと分離することができる。ブロックスプリッタモジュール22は、コンポーネント抽出モジュール24に対して、ピクセルのブロックを供給することができる。
コンポーネント抽出モジュール24がピクセルのブロックを受け取るとき、コンポーネント抽出モジュール24は、各ピクセルのピクセルコンポーネント値を異なるカラーフォーマットへと変換することができる。例えば、コンポーネント抽出モジュール24は、赤−緑−青(Red-Green-Blue)(RGB)カラーフォーマットからYCrCbカラーフォーマットへと各ピクセルを変換することができる。ブロックにおけるピクセルを異なるカラーフォーマットへと変換した後で、コンポーネント抽出モジュール24は、ブロックにおけるピクセルのピクセルコンポーネント値をピクセルコンポーネント値のマトリクスへと分離することができる。例えば、コンポーネント抽出モジュール24は、1つのブロックのピクセルからY値のマトリクス、Cr値のマトリクス、そしてCb値のマトリクスを抽出することができる。Y値は、ピクセルの輝度(brightness)を指定し、Cr値は、ピクセルの赤色クロミナンスを指定し、また、Cb値は、ピクセルの青色クロミナンスを指定する。コンポーネント抽出モジュール24がピクセルコンポーネント値のマトリクスを抽出するとき、コンポーネント抽出モジュール24は、離散コサイン変換(DCT)モジュール26にマトリクスのそれぞれを別々に供給することができる。
順方向変換モジュール26がピクセルコンポーネント値のマトリクスを受け取るとき、順方向変換モジュール26は、スケーリングされた係数のマトリクスを生成する。このスケーリングされた係数のマトリクスにおける各係数は、ピクセルコンポーネント値のマトリクスを変換する、理想的な順方向離散コサイン変換を使用することによって作られるであろう、係数を近似する。
順方向変換モジュール26は、ピクセルコンポーネント値のマトリクスに対して一次元変換を適用するために、固定小数点算術演算を使用する。固定小数点算術演算を使用することは、いくつかの状況において有利でありうる。例えば、モバイル電話のような、より小型のデバイスは、浮動小数点算術演算を実行するのに必要とされる浮動小数点ユニット(floating point unit)を含まないかもしれない。順方向変換モジュール26は、ピクセルコンポーネント値のそれぞれを左シフトすることによって、スケーリングされた係数のマトリクスを生成するプロセスを始めることができる。例えば、順方向変換モジュール26は、順方向変換モジュール26が、一次元変換を適用するときに使用する数の固定小数点表現の精度のビットの数(すなわち、仮数ビットの数)と、その変換を適用することから生じる変換された係数をスケーリングすることにより取り除かれる精度のビットの数と、を加えたものだけピクセルコンポーネント値のそれぞれを左シフトすることにより調整された係数のマトリクスを生成することができる。ピクセルコンポーネント値のそれぞれを左シフトした後で、順方向変換モジュール26は、調節された係数のマトリクスの行ベクトルのそれぞれに関して、変換を実行することができる。調節された係数のマトリクスの行ベクトルのそれぞれに関して離散コサイン変換を実行することは、中間係数のマトリクスを生成する。次に、順方向変換モジュール26は、中間係数のマトリクスの列ベクトルのそれぞれに関して変換を実行することができる。中間係数のマトリクスの列ベクトルのそれぞれに関して変換を実行することは、変換された係数のマトリクスを結果としてもたらす。
変換された係数のマトリクスを生成した後で、順方向変換モジュール26は、異なるスケールファクタによって、変換された係数のマトリクスにおいて異なる位置で変換された係数をスケーリングする。下記に説明されるとおり、復号モジュール12は、逆変換の適用において、これらのスケールファクタの逆数(reciprocals)を使用することができる。順方向変換モジュール26が、スケールファクタによって、変換された係数をスケーリングすることを終了しているとき、順方向変換モジュール26は、量子化モジュール28に対して、スケーリングされた係数の結果として生じるマトリクスを、出力することができる。
量子化モジュール28が順方向変換モジュール26から係数のマトリクスを受け取るとき、量子化モジュール28は、スケーリングされた係数を量子化することができる。量子化モジュール28は、使用されている符号化基準規格によって様々な方法で、スケーリングされた係数を量子化することができる。例えば、MPEG−4パート2基準規格にしたがって、量子化モジュール28は、iフレームについてのスケーリングされた係数のマトリクスにおける係数を量子化するために、以下の量子化マトリクスを使用することができる:
Figure 0005129248
さらに、この例においては、量子化モジュール28は、予測あるいは双予測フレームについてスケーリングされた係数のマトリクスにおける係数を量子化するために、以下の量子化マトリクスを使用することができる。
Figure 0005129248
量子化モジュール28が量子化された係数のマトリクスを生成した後で、エントロピ符号化モジュール30は、エントロピ符号化スキームを使用して、量子化された係数のマトリクスを圧縮することができる。エントロピ符号化スキームを使用して量子化された係数のマトリクスを圧縮するために、エントロピ符号化モジュール30は、係数のジグザグのパターン(zigzag pattern)をとることによって量子化された係数をベクトルへと構成する(organize)ことができる。言いかえれば、エントロピ符号化モジュール30は、予測可能値(a predictable)において量子化された係数の一次元ベクトルへと、量子化された係数の二次元マトリクスにおける量子化された係数のすべてを配列する(arrange)ことができる。エントロピ符号化モジュール30は、そのあとで、量子化された係数のベクトルに対して、ハフマン符号化あるいは算術符号化のような、エントロピ符号化スキームを適用することができる。
符号化モジュール8は、さらにビデオフレームの時間符号化を実行するために、1つまたは複数のモジュールを含んでいる。図2の例で図示されるように、符号化モジュール8は、動き推定モジュール(motion estimation module)32、再構成されたフレーム生成モジュール(reconstructed frame generation module)34、そして、残留フレーム生成モジュール36、を含む。動き推定モジュール32は、現在のビデオフレームにおける各マクロブロックについて基準画像(reference image)におけるソースマクロブロックを識別することを試みる。動き推定モジュール32は、マクロブロックと同様なピクセルを含む基準画像におけるマクロブロックをサーチする(search)ことによって、現在のフレームにおけるマクロブロックについてのソースマクロブロックを識別することを試みることができる。動き推定モジュール32は、現在のフレームにおけるマクロブロックについてソースマクロブロックを識別するために、異なる符号化基準規格にしたがって異なるサイズのエリアをサーチすることができる。例えば、動き推定モジュール32は、サーチエリアの中心に現在のマクロブックを備える、32ピクセル幅×32ピクセル高さのエリアピクセル内でソースマクロブロックについてサーチすることができる。動き推定モジュール32が現在のフレームにおけるマクロブロックについてのソースマクロブロックを識別するとき、動き推定モジュール32は、現在のフレームにおけるマクロブロックについての動きベクトルを計算する。現在のフレームにおけるマクロブロックについての動きベクトルは、識別されたソースマクロブロックと現在のフレームのマクロブロックとの間で、水平位置において差を示すx値を指定する。動き推定モジュール32が動きベクトルを計算しているか、あるいは、現在フレームにおける各マクロブロックについてソースマクロブロックを識別することができなくなっているかのいずれかの後で、動き推定モジュール32は、再構成されたフレーム生成モジュール34に対して、現在のフレームについての計算された動きベクトルを提供することができる。
再構成されたフレーム生成モジュール34は、再構成されたフレームを生成するために、動きベクトルと基準フレームを使用することができる。再構成されたフレーム生成モジュール34は、基準フレームにおけるソースマクロブロックに対して、現在のフレームにおける各マクロブロックについての動きベクトルを適用することによって、再構成されたフレームを生成することができる。実際上、再構成されたフレーム生成モジュール34は、基準フレームのマクロブロックが、現在のフレームの対応する動きベクトルによって示された位置に「移動」させられているフレームを作る。
残留フレーム生成モジュール36は、現在のフレームにおける対応するピクセルコンポーネント値から、再構成されたフレームにおけるピクセルコンポーネント値を差し引くことによって、残留フレームを生成することができる。一般に、残留フレームは、再構成されたフレームあるいは現在のフレームのいずれかよりもより少ない情報を含んでいる。残留フレーム生成モジュール36が残留フレームを生成した後で、残留フレーム生成モジュール36は、残留フレームを空間的に符号化する(spatially encoding)プロセスを始めるために、ブロックスプリッタモジュール22に対して残留フレームを提供する。さらに、動き推定モジュール32は、動きベクトルを圧縮するために、エントロピ符号化モジュール30に対して、現在のフレームについての動きベクトルを提供することができる。残留フレームが空間的に符号化され、エントロピ符号化モジュール30が動きベクトルを符号化した後で、ストリーム出力モジュール38は、ビデオビットストリームの一部として、空間的に符号化された残留フレームと、符号化された動きベクトルと、をフォーマット化することができる。
図3は、復号モジュール12の例示的な詳細を図示するブロック図である。復号モジュール12は、エントロピ復号モジュール44、逆量子化モジュール46、逆変換モジュール48、ピクセル再構成モジュール50、フレームバッファ51、ブロックコンバイナモジュール52、フレーム制御モジュール53、基準フレームストレージモジュール54、再構成されたフレーム生成モジュール56、そして、予測フレーム生成モジュール58を備えることができる。これらのモジュールのいくつかあるいはすべては、復号モジュール12のサブセットのソフトウェアインストラクションを備えることができる。代替的に、これらのモジュールのいくつかあるいはすべては、専用のハードウェアあるいはファームウェアを備えることができる。さらに代替的に、これらのモジュールは、ソフトウェアインストラクションと、専用ハードウェアあるいはファームウェアと、を備えることができる。
復号モジュール12がビデオフレームを含んでいるビットストリームを受け取るとき、エントロピ復号モジュール44は、ビデオフレームにおいて量子化された係数のマトリクスに対して、エントロピ復号スキームを適用することができる。そのビットストリームは、どのエントロピ復号スキームをビットストリームにおける量子化された係数の行列に適用すべきかをエントロピ復号モジュール44に対して示す値を含むことができる。さらに、エントロピ復号モジュール44は、ビデオフレームの動きベクトルを復号するために、同じ、あるいは、異なるエントロピ復号スキームを適用することができる。
エントロピ復号モジュール44がビデオファイルにおける量子化された係数のマトリクスに対してエントロピ復号スキームを適用した後で、逆量子化モジュール46は、量子化された係数のマトリクスのそれぞれにおける係数を逆量子化することができる。符号化基準によって、逆量子化モジュール46は、様々な方法で係数を逆量子化することができる。例えば、MPEG−4パート2基準規格にしたがって、逆量子化モジュール46は、2つの異なる方法で上記にリストアップされた2つの量子化マトリクス(quantization matrix)を使用することができる。第1に、逆量子化モジュール46は、H.263スタイル逆量子化を実行するために、これらの量子化マトリクスを使用することができる。H.263スタイル逆量子化において、逆量子化モジュール46は、以下のように、量子化された値QF[v][u]から、再構成された係数F’’[v][u]を得ることができる:
Figure 0005129248
それは、quantiser_scaleによるただ1つの乗算を含む。
第2に、逆量子化モジュール46は、MPEG-1/2スタイル逆量子化を実行するために、これらの量子化マトリクスを使用することができる。MPEG-1/2スタイルの逆量子化においては、逆量子化モジュール46は、追加の重みマトリクスW[w][v][u]を使用しており、ここでwは、どの重みマトリクス(weighting matrix)が使用されているかを示す:
Figure 0005129248
下記に詳細に説明されるように、逆変換モジュール48は、特定のスケールファクタによって逆量子化された係数のそれぞれをスケーリングし、そして、スケーリングされた係数の結果として生じるマトリクスのDC係数に、中間バイアス項を加える。DC係数は、スケーリングされた係数のマトリクスの位置(0,0)における係数である。次に、逆変換モジュール48は、変換された係数のマトリクスへとスケーリングされた係数のマトリクスを変換する固定小数点一次元変換の繰り返し適用(repeated applications a fixed-point one-dimensional transform)を使用する。変換された係数のマトリクスへとスケーリングされた係数のマトリクスを変換した後で、逆変換モジュール48は、調節された係数のマトリクスを作るために、変換された係数のマトリクスにおける各変換された係数を右シフトする。調節された係数のマトリクスにおける各調節された係数は、符号化された係数のマトリクスに対して理想的な二次元IDCTを適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する。さらに、逆変換モジュール48は、クリッピングされた係数のマトリクスを作るために、調節された係数のマトリクスにおける調節された係数のそれぞれをクリッピングすることができる。クリッピングされた係数は、結果として生じるピクセルコンポーネント値フォーマットに適切な範囲内にある、値を有する。例えば、クリッピングされた係数は、[-256,255]の範囲内に入る値を有することができる。逆変換モジュール48が調節された係数をクリッピングした後で、結果として生じるクリッピングされた値は、ピクセルコンポーネント値である。
逆変換モジュール48がピクセルコンポーネント値のマトリクスを出力した後で、ピクセル再構成モジュール50は、ビデオフレーム内の等価な位置(equivalent position)に関連づけられたピクセルコンポーネント値のマトリクスとピクセルコンポーネント値のマトリクスを組み合わせることによって、ピクセルのマトリクスを生成することができる。例えば、ピクセル再構成モジュール50は、Yピクセルコンポーネント値のマトリクス、Cbピクセルコンポーネント値のマトリクス、そしてCrピクセルコンポーネント値のマトリクスを、逆変換モジュール48から受け取ることができる。これらの3つのマトリクスのそれぞれは、単一の8×8のピクセルのブロックについてのピクセルコンポーネントを含むことができる。ピクセルのそれぞれは、Yピクセルコンポーネント値、Cbピクセルコンポーネント値、そしてCrピクセルコンポーネント値を含むことができる。ピクセルのマトリクスを生成した後で、ピクセル再構成モジュール50は、ブロックコンバイナモジュール52に対して、ピクセルのブロックを提供することができる。
ブロックコンバイナモジュール52がピクセルのブロックを受け取るとき、ブロックコンバイナモジュール52がビデオフレームにおけるピクセルのブロックのうちのいくつかあるいはすべてを受け取るまで、ブロックコンバイナモジュール52は、ピクセルのブロックをバッファリングする(buffer)ことができる。ピクセルのブロックのうちの1つまたは複数を受け取った後で、ブロックコンバイナモジュール52は、ビデオフレームへとピクセルのブロックを組み合わせすることができ、そして、フレームバッファ51に対してビデオフレームを出力することができる。ビデオフレームは、それがメディアプレゼンテーションユニット(media presentation unit)51によって表示されるまで、フレームバッファ51において保存されることができる。さらに、ブロックコンバイナモジュール52は、フレームストレージモジュール54に対して、ビデオフレームを出力することができる。フレームストレージモジュール54におけるビデオフレームは、予測および双予測フレームの再構成についての基準フレームとして使用されることができる。さらに、フレームストレージモジュール54におけるビデオフレームは、予測および双予測フレームの再構成において使用される、残留フレームであってもよい。
予測あるいは双予測フレームを再構成するために、復号モジュール12は、再構成されたフレーム生成モジュール56を含む。再構成されたフレーム生成モジュール56は、復号された動きベクトルを、エントロピ復号モジュール44から受け取る。さらに、再構成されたフレーム生成モジュール56は、フレームストレージモジュール54から現在のフレームの基準フレームを取り出す。再構成されたフレーム生成モジュール56は、そのあと、基準フレームにおける位置から動きベクトルによって示された位置へと、マクロブロックを「移動させる(moves)」。再構成されたフレームは、この方法でマクロブロックを移動させることから生じる。再構成されたフレーム生成モジュール56が再構成されたフレームを生成した後で、再構成されたフレーム生成モジュール56は、予測フレーム生成モジュール58に、再構成されたフレームを提供する。
予測フレーム生成モジュール58が一時的フレームを受け取るとき、予測フレーム生成モジュール58は、現在のフレームについての残留フレームを、フレームストレージモジュール54から取りだすことができる。残留フレームを取り出した後で、予測フレーム生成モジュール58は、再構成されたフレームと残留フレームの各ピクセルにおいて対応するカラーコンポーネント値を加えることができる。再構成されたビデオフレームは、この付け加えから生じる。次に、予測フレーム生成モジュール58は、メディアプレゼンテーションユニット14上で最後の表示(eventual display)についてフレームバッファ51に対してこの再構成されたフレームを出力することができる。
図4は、符号化モジュール8の演算の一例を図示しているフローチャートである。図4で説明される演算は逐次的なやり方で説明されているけれども、演算は、パイプライン化された方法で実行されることができるということは注目されるべきである。
最初に、符号化モジュール8は、符号化されていないビデオフレームのシーケンスを受け取る(60)。例えば、符号化モジュール8は、メディアソース4から複数セットのピクセルの形態で符号化されていないフレームのシーケンスを受け取ることができる。符号化モジュール8は、符号化されていないフレームのシーケンスを受け取るとき、符号化モジュール8におけるフレーム制御モジュール20は、符号化されていないフレームのシーケンスにおける現在のフレームがiフレームとして、あるいは、予測あるいは双予測フレームとして、符号化されるべきかを決定することができる(62)。
フレーム制御モジュール20が、現在のフレームがiフレームとして符号化されるべきであるということを決定する場合、符号化モジュール8におけるブロックスプリッタモジュール22は、現在のフレームをピクセルのブロックへと分割する(split)ことができる(64)。例えば、符号化モジュール8は、2x2、4x4あるいは8x8ピクセルのブロックへと、現在のフレームを分割することができる。
現在のフレームをピクセルのブロックへと分割した後で、コンポーネント抽出モジュール24は、ピクセルコンポーネント値を、ピクセルのブロックのそれぞれへと分割することができる(66)。結果として、ピクセルの各ブロックについてのピクセルコンポーネント値の3つのブロック:ピクセルの輝度を表すY値のブロック、ピクセルの青色クロミナンスを表すCb値のブロック、そして、ピクセルの赤色クロミナンスを表すCr値のブロック、があってもよい。
符号化モジュール8における順方向変換モジュール26は、そのあと、ピクセルコンポーネント値のマトリクスのそれぞれについてスケーリングされた係数のマトリクスを生成することができる(68)。スケーリングされた係数のこれらのマトリクスにおける係数は、ピクセルコンポーネントのマトリクスのそれぞれのものに関し理想的な二次元順方向離散コサイン変換を使用することによって作られるであろう値の近似値(approximation of values)である。
順方向変換モジュール26がピクセルコンポーネントのマトリクスのそれぞれについてスケーリングされた係数のマトリクスを生成した後で、符号化モジュール8における量子化モジュール28は、スケーリングされた係数のマトリクスのそれぞれにおける係数を量子化することができる(70)。いったん量子化モジュール28がスケーリングされた係数の各マトリクスにおける係数を量子化すると、エントロピ符号化モジュール30は、量子化された係数のマトリクスのそれぞれに関してエントロピ符号化プロセスを実行することができる(72)。例えば、符号化モジュール8は、ハフマン符号化スキームあるいは算術符号化スキームを、量子化された係数の各マトリクスに対して適用することができる。エントロピ符号化プロセスは、さらにデータを圧縮した。しかしながら、エントロピ符号化プロセスは、情報の喪失をもたらしはしない。量子化された係数の各マトリクスに関してエントロピ符号化プロセスを実行した後で、符号化モジュール8におけるストリーム出力モジュール38は、ビデオフレームのシーケンスについてビットストリームに対して、量子化された係数の符号化されたマトリクスを加えることができる(74)。ストリーム出力38がビットストリームに対して符号化されたマトリクスを加えた後で、フレーム制御モジュール20は、現在のフレームがフレームのシーケンスの最後のビデオフレームだったかどうかを決定することができる(76)。現在のフレームがフレームのシーケンスの最後のフレームである場合(76の「はい」)、符号化モジュール8は、フレームのシーケンスの符号化を完了する(78)。一方で、現在のフレームがフレームのシーケンスの最後のフレームではない場合(76の「いいえ」)、符号化モジュール8は、ループバックし、新しい現在のフレームがiフレームとして符号化されるべきかどうかを決定することができる(62)。
現在のフレームがiフレームとして符号化されるべきではない場合(62の「いいえ」)、符号化モジュール8における動き推定モジュール32は、現在のフレームを、1セットのマクロブロックへと分割することができる(80)。次に、動き推定モジュール32は、現在のフレームにおけるマクロブロックのそれぞれについて1以上の基準フレームにおいて、ソースマクロブロックを識別することを試みることができる(82)。動き推定モジュール32は、そのあと、動き推定モジュール32がソースマクロブロックを識別することが可能であった現在のフレームにおけるマクロブロックのそれぞれについて、動きベクトルを計算することができる(84)。動き推定モジュール32が動きベクトルを計算した後で、再構成されたフレーム生成モジュール34は、基準フレームにおける識別されたマクロブロックを動きベクトルによって示された位置へと「移動させること」によって、再構成されたフレームを生成するために、動きベクトルを使用する(86)。残留フレーム生成モジュール36は、そのあとで、現在のフレームにおける対応するピクセルコンポーネント値から、再構成されたフレームにおけるピクセルコンポーネント値を差し引くことによって、現在のフレームについての残留フレームを生成することができる(88)。残留フレーム生成モジュール36が残留フレームを生成した後で、エントロピ符号化モジュール30は、現在のフレームについて動きベクトルを符号化するために、エントロピ符号化スキームを使用することができる(90)。さらに、空間符号化は、ステップ(66)から(74)を残留フレームに対して適用することにより、残留フレームに対して適用されることができる。
図5は、復号モジュール12の例示的な演算を図示するフローチャートである。図5で説明された演算は、逐次的なやり方で説明されているけれども、演算がパイプライン化された方法で実行されることができるということは注目されるべきである。
初めに、復号モジュール12は、符号化されたビデオフレームを受け取る(100)。符号化されたビデオフレームを受け取った後で、復号モジュール12におけるエントロピ復号モジュール44は、符号化されたフレーム内でデータのブロックに関してエントロピ復号プロセスを実行することができる(102)。エントロピ復号モジュール44は、フレームを符号化するために使用されたエントロピ符号化プロセスと等価(equivalent)である、エントロピ復号プロセスを実行することができる。例えば、符号化モジュール8がフレームを符号化するためにハフマン符号化(Huffman encoding)を使用する場合には、エントロピ復号モジュール44は、フレームを復号するためにハフマン復号(Huffman decoding)を使用する。フレームにおいてデータの各ブロックに対して、エントロピ復号プロセスを適用する結果として、エントロピ復号モジュール44は、量子化された係数の1セットのマトリクスを作る。
次に、復号モジュール12における逆量子化モジュール46は、量子化された係数のマトリクスのそれぞれにおける係数を逆量子化することができる(104)。量子化された係数のマトリクスにおける各係数を逆量子化した後で、復号モジュール12における逆変換モジュール48は、ピクセルコンポーネント値のマトリクスを生成する(106)。ピクセルコンポーネント値のマトリクスのうちの1つにおけるピクセルコンポーネント値は、理想的な二次元逆離散コサイン変換を使用して量子化された係数のマトリクスのうちの1つを変換することによって作られるであろう、対応する値の近似値である。
逆変換モジュール48が係数のマトリクスのそれぞれについてピクセルコンポーネント値のマトリクスを計算するとき、復号モジュール12におけるピクセル再構成モジュール50は、ピクセルのブロックを作るために、ピクセルコンポーネント値の適切なマトリクスを組み合わせることができる(108)。例えば、復号モジュール12は、YCrCbブロックのピクセルを作るために、関連づけられたCr値のブロックと、関連づけられたCb値のブロックと、Y値のブロックを組み合わせることができる。ピクセル再構成モジュール50がピクセルのブロックを作った後で、ブロックコンバイナモジュール52は、ピクセルのブロックを、ビデオフレームへと再結合することができる(110)。
次に、復号モジュール12におけるフレーム制御モジュール53は、現在のフレームがiフレームかどうかを決定することができる(114)。現在のフレームがiフレームである場合(114の「はい」)、ブロックコンバイナモジュール52は、フレームバッファ51にビデオフレームを出力することができる(114)。一方で、現在のフレームがiフレームでない(すなわち、現在のフレームは予測あるいは双予測フレームである)場合(114の「いいえ」)、エントロピ復号モジュール44は、現在のフレームの動きベクトルを復号するために、エントロピ復号スキームを使用する(116)。次に、再構成されたフレーム生成モジュール56は、再構成されたフレームを生成するために、フレームストレージモジュール54における1つまたは複数の基準フレームと、復号された動きベクトルを使用する(118)。予測フレーム生成モジュール58は、そのあとで、再構成されたフレームを生成するために、ブロックコンバイナモジュール52によって生成されたフレームと、再構成されたフレームと、を使用することができる(120)。
図6は、逆変換モジュール48の例示的な詳細を図示するブロック図である。図6の例で図示されるように、逆変換モジュール48は、入力モジュール140を備えることができる。入力モジュール140は、逆量子化モジュール46から係数のマトリクスを受け取ることができる。例えば、入力モジュール140は、係数のマトリクスを保存するデバイス2のメモリモジュールにおいてロケーション(location)を示すポインタ(pointer)を受け取ることができる。代替的に、入力モジュール140は、係数のマトリクスを保存する、内部データストラクチャ(internal data structures)を含むことができる。
入力モジュール140が係数のマトリクスを受け取るとき、入力モジュール140は、逆変換モジュール48におけるスケーリングモジュール142に対して係数のマトリクスを供給することができる。スケーリングモジュール142は、スケールファクタのマトリクスにおいて等価の位置(equivalent positions)にある、スケールファクタによって、係数のマトリクスにおけるスケーリング係数を近似する値を生成する演算を実行することができる。例えば、スケーリングモジュール142は、スケールファクタのマトリクスにおいて等価の位置にあるスケールファクタによって、係数のマトリクスにおけるスケーリング係数を近似する値を生成するために、乗算演算を実行することができる。別の例においては、スケーリングモジュール142は、1以上の付け加えおよびシフト演算を実行することができる。これらのスケールファクタのそれぞれは、8ビット整数値であってもよい。スケールファクタのそれぞれが8ビット整数であるとき、変換が減らされている間に、作られた値のダイナミックな範囲(dynamic range)が減らされる。
スケーリングモジュール142がスケーリングされた係数のマトリクスを生成した後で、係数バイアシングモジュール(coefficient biasing module)144は、スケーリングされた係数のマトリクスのDC係数に対して、中間バイアス値(midpoint bias value)を加えることによって、バイアスにかけられた係数のマトリクスを生成することができる。上記に説明されるように、マトリクスのDC係数は、典型的に、マトリクスの左上の位置にある係数である。一般に、DC係数は、マトリクスにおける他の係数の平均値(mean value)を表わしている。
16ビットプロセッサにおけるDC係数に対して、符号適応バイアス値(sign-adaptive bias value)を加えるために、係数バイアシングモジュール144は、以下の式を使用することができる:
DC_coefficient=DC_coefficient+(1<<(P+2))
この式で、項(1<<(P+2))は、中間バイアスを提供するために加えられている。
Pは、逆ベクトル変換モジュール146によって適用された変換において使用された、固定小数点の仮数ビット(すなわち、小数点の右側に位置するビット(bits to the right of the radix point))の数を指す、定数である。数2は、右シフトモジュール148が、すべての係数を(P+3)だけ右シフトすることができるので、Pに対して加えられ、ここで、数「3」は、変換を実行することによって精度のビットから生じる。この点を詳細に述べると、もし数xが1を(P+2)だけ左シフトすることによって生成され、数zがxを(P+3)だけ右シフトすることによって生成される場合、z=1/2である(あるいは2P+2/2P+3=2/2=1/2と示される)。したがって、DC係数に対して(1<<(P+2))を加えることは、DC係数に対して(1<<(P+3))/2を加えることと、同等である。
係数バイアシングモジュール144がバイアスをかけられた係数のマトリクスを生成した後で、逆ベクトル変換モジュール146は、バイアスをかけられた係数のマトリクスの各行ベクトルに対して固定小数点スケーリングされた一次元変換を適用することによって、中間値のマトリクスを生成することができる。次に、逆ベクトル変換モジュール146は、中間値のマトリクスの各列ベクトルに対して固定小数点スケーリングされた一次元変換を適用することによって、変換された係数のマトリクスをコンピュートすることができる。スケーリングされた係数のベクトルに対して固定小数点スケール一次元変換(fixed-point scale one dimensional transform)を適用する例示的な演算は、下の図10Bで示されている。
逆ベクトル変換モジュール146が変換された係数のマトリクスを生成した後で、右シフトモジュール148は、変換の適用の間に、および、スケーリングの間に、加えられたビットの数に等しい位置の数だけ、変換された係数のマトリクスにおける係数のそれぞれを右シフトすることで、調節された係数のマトリクスを生成することができる。例えば、変換を適用することが追加の3ビットを結果としてもたらし、そして係数をスケーリングすることが追加の10ビットを加える場合、右シフトモジュール108は、係数のそれぞれを13個(3+10)の位置だけ右シフトすることができる。
右シフトモジュール148が調節された係数のマトリクスを生成した後で、クリッピングモジュール150は、ピクセルコンポーネント値の最大許可範囲(maximum allowable range)に、係数を制限する(restrict)ために、調節された係数のマトリクスにおける係数を「クリッピングすること」によってクリッピングされた係数のマトリクスを生成することができる。例えば、典型的なピクセルコンポーネント値は、−256から255まで変動することができる。調節された係数のマトリクスが270に等しい係数を含んだとする場合には、クリッピングモジュール150は、係数を255に減らすことによって、最大許可範囲にこの係数を制限するであろう。クリッピングモジュール150が係数をクリッピングし終えた後で、これらの係数は、ピクセルコンポーネント値を表すことができる。クリッピングモジュール150が、マトリクスにおける係数をクリッピングしたことを終了するとき、クリッピングモジュール150は、クリッピングされた係数のマトリクスを出力モジュール152に対して提供することができる。
出力モジュール152がクリッピングされた係数(今ではピクセルコンポーネント値である)のマトリクスを受け取るとき、出力モジュール152は、ピクセルコンポーネント値のマトリクスをピクセル再構成モジュール50に対して出力することができる。
図7は、逆変換モジュール34の例示的な演算を図示するフローチャートである。最初に、入力モジュール140は、係数のマトリクスを受け取る(170)。入力モジュール140が係数のマトリクスを受け取るとき、スケーリングモジュール142は、係数のマトリクスにおける各値をスケーリングすることができる(172)。例えば、スケーリングモジュール142は、係数のマトリクスにおける各係数に、スケールファクタのマトリクスにおける均等に位置づけられた値(equivalently positioned values)を乗算する、演算を実行することができる。
係数のマトリクスにおける各係数をスケーリングした後で、係数バイアシングモジュール144は、係数のマトリクスのDC係数に対して、中間バイアス値を加えることができる(174)。係数バイアシングモジュール144がマトリクスのDC係数に対してバイアス値を加えた後で、逆ベクトル変換モジュール146は、行カウンタが最大行カウンタよりも少ないかどうかを決定することができる(176)。最初に、行カウンタは、ゼロにセットされることができる。最大行カウンタは、係数のマトリクスにおける行の数に等しい静的な値(static value)であってもよい。例えば、係数のマトリクスが8つの行を含む場合、最大行カウンタは8に等しい。
行カウンタが最大行カウンタよりも少ない場合(176の「はい」)、逆ベクトル変換モジュール146は、行カウンタによって示された係数のマトリクスの行ベクトルに関して、固定小数点スケーリングされた一次元変換をコンピュートすることができる(178)。逆ベクトル変換モジュール146が係数のマトリクスの行ベクトルに関して変換をコンピュートするとき、逆ベクトル変換モジュール146は、中間係数のベクトルで、係数の行ベクトルにおけるオリジナルの係数を置き換えることができる。逆ベクトル変換モジュール146が係数のマトリクスの行ベクトルに関して変換をコンピュートした後で、逆ベクトル変換モジュール146は、行カウンタを増分する(increment)ことができる(180)。逆ベクトル変換モジュール146は、そのあと、ループバックし、行カウンタが最大行カウンタよりも少ないかどうかをふたたび決定することができる(176)。
行カウンタが最大行カウンタよりも少なくない(すなわち、それより大きいあるいは等しい)場合(176の「いいえ」)、逆ベクトル変換モジュール146は、列カウンタが最大列カウンタよりも少ないかどうかを決定することができる(182)。最初に、列カウンタはゼロにセットされることができる。最大列カウンタは、係数のマトリクスにおいて列の数に等しい静的な値とすることができる。例えば、係数のマトリクスが8つの列を含む場合、最大列カウンタは、8に等しい。
列カウンタが最大列カウンタよりも少ない場合(182の「はい」)、逆ベクトル変換モジュール146は、列カウンタによって示された中間係数のマトリクスの列ベクトルに関して一次元変換を計算することができる(184)。逆変換モジュール34が中間係数の列ベクトルに関して変換を計算するとき、逆変換モジュール34は、変換された係数のベクトルで列ベクトルにおいて中間係数を置き換える。
逆ベクトル変換モジュール146が係数のマトリクスの列ベクトルに関して変換を計算した後で、逆ベクトル変換モジュール146は、列カウンタを増分することができる(186)。逆ベクトル変換モジュール146は、そのあとで、ループバックし、列カウンタが最大列カウンタよりも少ないかどうかをふたたび決定することができる(182)。
列カウンタが最大列カウンタよりも少なくない(すなわち、それより大きいあるいは等しい)場合(182の「いいえ」)、右シフトモジュール148は、マトリクスにおける変換された係数のそれぞれを右シフトすることができる(188)。右シフトモジュール148が係数を右シフトするとき、右シフトモジュール148は、ある数の位置(a certain number of positions)だけ右に係数をシフトすることができる。マトリクスにおける第2の中間係数のそれぞれを右シフトした結果は、調節された値のマトリクスである。右シフトモジュール148が変換された係数のそれぞれを右シフトした後で、クリッピングモジュール150は、調節された係数がピクセルコンポーネント値について適切な範囲内にあるということを確実にするために、調節された係数をクリッピングすることができる(190)。例えば、クリッピングモジュール150は、調節された係数が範囲−256から255内にあるということを確実にするために、調節された係数をクリッピングすることができる。クリッピングモジュール150が調節された係数をクリッピングすることを終了するとき、出力モジュール152は、ピクセルコンポーネント値の結果として生じるマトリクスを出力することができる(192)。
図8は、順方向変換モジュール26の例示的な詳細を図示するブロック図である。図8の例で図示されるように、順方向変換モジュール26は、コンポーネント抽出モジュール24からピクセルコンポーネント値のマトリクスを受け取る、入力モジュール210を備える。入力モジュール210がピクセルコンポーネント値のマトリクスを受け取るとき、入力モジュール210は、左シフトモジュール212に、ピクセルコンポーネント値のマトリクスを提供することができる。左シフトモジュール212は、順方向変換を実行することによって取り除かれた仮数ビットの数を差し引いた(minus)順方向変換を実行する間に、順方向ベクトル変換モジュール214が使用する値において使用された仮数ビットの数だけ、左にピクセルコンポーネント値のマトリクスにおいてピクセルコンポーネント値のすべてをシフトすることができる。例えば、順方向変換を実行している間に10個の仮数ビットが値において使用され、順方向離散コサイン変換を実行することによって3つの仮数ビットが取り除かれる場合、左シフトモジュール212は、7個の位置だけ、左にピクセルコンポーネント値をシフトすることができる。別の例において、順方向変換を実行している間に3つの仮数ビットが値において使用され、順方向変換を実行することによって3つの仮数ビットが取り除かれる場合、左シフトモジュール212は、0個の位置だけ、左にピクセルコンポーネント値をシフトすることができる。
左シフトモジュール212がピクセルコンポーネント値をシフトした後で、順方向ベクトル変換モジュール214は、中間値のマトリクスを作るために、ピクセルコンポーネント値のマトリクスにおける各列ベクトルに対して順方向変換を適用することができる。次に、順方向ベクトル変換モジュール214は、変換された係数のマトリクスを作るために、中間値のマトリクスにおける各行ベクトルに対して順方向変換を適用することができる。順方向ベクトル変換モジュール214がベクトルに順方向変換を適用するとき、順方向ベクトル変換モジュール214は、以下で図11において説明される順方向変換を適用することができる。以下で図11において説明される変換は、図10Aで説明される変換の逆であるということを注目してください。
順方向ベクトル変換モジュール214が変換された係数のマトリクスを作った後で、スケーリングモジュール216は、変換された係数のマトリクスにおける各変換された係数に対して、スケーリングファクタを適用することができる。スケーリングモジュール216は、逆変換モジュール48におけるスケーリングモジュール142によって使用されたスケーリングファクタの逆数を適用することができる。例えば、もしスケーリングモジュール142が3個の位置だけ左に係数をシフトすることによって、係数をスケーリングする場合、スケーリングモジュール216は、3個の位置だけ右に変換された値をシフトすることによって変換値をスケーリングすることができる。別の例において、もしスケーリングモジュール142が、係数にスケールファクタのマトリクスにおける個別のスケールファクタを乗算することによって、係数をスケーリングする場合、スケーリングモジュール216は、変換された値にスケールファクタのマトリクスにおけるスケールファクタを乗算することによって、そしてそのあとで、マグニチュードだけ、右に結果として生じる値をシフトすることによって、変換された値をスケーリングすることができる。丸め誤差を減らすために、スケーリングモジュール216は、変換された値にスケールファクタを乗算した後で、変換された値のそれぞれに対して中間バイアス値を加えることができる。例えば、スケーリングモジュール216は、スケーリングされた係数のマトリクスを生成するために、以下の式を使用することができる:
F[v][u]=(F’[v][u]*S[v][u]+(1<<19)−((F’[v][u]>=0)?0:1))>>20
ここでは、v=0..7、u=0..7であり、また、S[v][u]は、スケールファクタのマトリクスにおけるエントリ(entry)であり、Fは、スケーリングされた係数のマトリクスであり、そしてF’は、変換された係数のマトリクスである。
スケーリングモジュール216がスケーリングされた係数のマトリクスを生成した後で、出力モジュール218は、量子化モジュール28に対して、係数のマトリクスを出力することができる。
図9は、順方向変換モジュール26の例示的な演算を図示するフローチャートである。初めに、入力モジュール210は、ピクセルコンポーネント値のマトリクスを受け取る(230)。入力モジュール140がピクセルコンポーネント値のマトリクスを受け取るとき、左シフトモジュール212は、ピクセルコンポーネント値のマトリクスにおける各値をアップシフトすること(upshifting)によって、調節された係数のマトリクスを生成することができる(232)。例えば、左シフトモジュール212は、10個の位置だけ、左に係数のすべてをシフトすることができる。この例において、順方向ベクトル変換モジュール214が、小数部分において10ビットを使用して、数(numbers)が符号化される固定小数点算術演算を使用することができるので、左シフトモジュール212は、10個の位置だけ、右に係数のすべてをシフトすることができる。したがって、10個の位置だけ左に係数をシフトすることによって、左シフトモジュール212は、10の仮数ビットを備えた固定小数点数に、ピクセルコンポーネント値を効率的に変換する。
調節された値のマトリクスにおいて各ピクセルコンポーネント値を左シフトした後で、順方向ベクトル変換モジュール214は、列カウンタが最大行カウンタよりも少ないかどうかを決定することができる(234)。初めに、列カウンタはゼロにセットされることができる。最大列カウンタは、調節された係数のマトリクスにおける列の数に等しい静的な値であってもよい。例えば、もし調節された係数のマトリクスが8つの列を含む場合、最大列カウンタは8に等しい。
列カウンタが最大列カウンタよりも少ない場合(234の「はい」)、順方向ベクトル変換モジュール214は、列カウンタによって示された列ベクトルに関して一次元順方向変換をコンピュートすることができる(236)。順方向ベクトル変換モジュール214が調節された係数のマトリクスの列ベクトルに関して順方向変換をコンピュートするとき、順方向ベクトル変換モジュール214は、中間係数で、列ベクトルにおけるオリジナルの調節された係数を置換える。順方向ベクトル変換モジュール214が調節された係数のマトリクスの列ベクトルに関して順方向変換をコンピュートした後で、順方向ベクトル変換モジュール214は、列カウンタを増分することができる(238)。順方向ベクトル変換モジュール214は、そのあと、ループバックし、そして、列カウンタが最大列カウンタよりも少ないかどうかをふたたび決定することができる(234)。
列カウンタが最大列カウンタよりも少なくない(すなわち、それより大きいあるいは等しい)場合(234の「いいえ」)、順方向ベクトル変換モジュール214は、行カウンタが最大行カウンタよりも少ないかどうかを決定することができる(240)。初めに、行カウンタはゼロにセットされることができる。最大行カウンタは、係数のマトリクスにおける行の数に等しい静的な値であってもよい。例えば、係数のマトリクスが8つの行を含む場合、最大行カウンタは8に等しい。
行カウンタが最大行カウンタよりも少ない場合(240の「はい」)、順方向ベクトル変換モジュール214は、行カウンタによって示された行ベクトルに関して一次元離散コサイン変換を計算することができる(242)。順方向ベクトル変換モジュール214がマトリクスの行ベクトルに関して順方向変換をすでにコンピュートしたので、係数のマトリクスは、中間係数を含む(contains)。順方向ベクトル変換モジュール214が中間係数の行ベクトルに関して順方向変換をコンピュートするとき、順方向ベクトル変換モジュール214は、変換された係数で、列ベクトルにおいて中間係数を置き換える。
順方向ベクトル変換モジュール214が係数のマトリクスの行ベクトルに関して離散コサイン変換をコンピュートした後で、順方向ベクトル変換モジュール214は、行カウンタを増分することができる(244)。順方向ベクトル変換モジュール214は、そのあと、ループバックし、そして、行カウンタが最大行カウンタよりも少ないかどうかを決定することができる(240)。
行カウンタが最大行カウンタよりも少なくない(すなわち、それより大きいあるいは等しい)場合(240の「いいえ」)、スケーリングモジュール216は、変換された係数のマトリクスにおける各変換された係数をスケーリングすることができる(246)。スケーリングモジュール216が係数をスケーリングするとき、スケーリングモジュール216は、ある数の位置だけ右に係数をシフトすることができる。スケーリングモジュール216が変換された係数のそれぞれをスケーリングした後で、出力モジュール218は、スケーリングされた係数の結果として生じるマトリクスを出力することができる(248)。
図10Aは、例示的な一次元変換260を図示するフロー図である。図10Aにおいて、値X,X,X,X,X,X,X,およびXは、入力係数を表し、x,x,x,x,x,x,x,およびxは、変換260の出力値を表す。「+」の記号を含む丸の後の直線に関連づけられた値は、丸を指す矢印に関連づけられた値を加えた結果である。「x」記号を含む丸の後の直線に関連づけられた値は、丸の隣に位置づけられた係数と、丸を通過する直線に関連づけられた値とを乗算した結果である。矢印の隣の記号「−」は、矢印に関連づけられた値の否定(negation)を表す。例えば、値「10」が「−」記号の前に矢印に関連づけられる場合、値「−10」は、「−」記号の後で矢印に関連づけられる。
変換260は、7つの一意的な無理因数(unique irrational factors)による14の乗算を使用する。便宜上、この開示は、α、β、γ、δ、ε、ζおよびηとして、これらの唯一の無理因数を意味する。変換260において、
Figure 0005129248
ある。α、β、γ、δ、ε、ζおよびηがすべて無理数の数であることに注意してください。α、β、γ、δ、ε、ζおよびηが無理数であるので、α、β、γ、δ、ε、ζおよびηのかなり正確な表示(tolerably accurate representations)は、比較的大きいビットの数を必要とする可能性がある。結果的に、典型的な符号化基準規格の要件でコンプライアンス(compliance)は、変換260をコンピュートするために仮数ビットの比較的小さい数で固定小数点数(fixed-point numbers)を使用するときに、可能でないかもしれない。さらに、α、β、γ、δ、ε、ζおよびηが、無理数であるので、シフト演算、加算演算、そして、あるいは、引き算演算のシーケンスに対して、α、β、γ、δ、ε、ζおよびηによる乗算を減らすことは可能でないかもしれない。
図10Bは、例示的な一次元スケーリングされた変換270を図示するフロー図である。変換270は、変換260のスケーリングされたバージョンである。変換270において、値ηは、変換260から取り除かれ、値(1/ψ)は、変換260の値γ、δ、εおよびζから取り除かれ、値(1/φ)は、変換260の値αおよびβから取り除かれる。(1/ψ)および(1/φ)が、これらの係数から取り除かれるとき、次のベクトルは、変換270の前にX−Xが乗算される、値を表わしている:
Figure 0005129248
(1/ψ)および(1/φ)がα、β、γ、δ、εおよびζから取り除かれるとき、α、β、γ、δ、ε、ζおよびηの値は変更することができる。便宜上、(1/ψ)および(1/φ)の後の値α、β、γ、δ、εおよびζは、取り除かれ、α’、β’、γ’、δ’、ε’およびζ’と呼ばれる。
Figure 0005129248
対応するファクタψあるいはφによって、α,β,γ,δ,ε,およびζの積を近似するように、値α’、β’、γ’、δ’、ε’およびζ’は、様々な方法で選択されることができる。一般に、ファクタψおよびφの値と、値α’、β’、γ’、δ’、ε’、ζ’は、変換270の全体的な設計を変更することなく、選択されることができる。これらのファクタのよい値を見つけることは、異なる複雑さ/精度トレードオフでマルチプルのソリューション(multiple solutions)を生み出す可能性のある複合最適化問題(complex optimization problem)を表わすことができる。例えば、α’、β’、γ’、δ’、ε’およびζ’のいくつかの値による乗算は、他よりも計算するのにより便利であることができる。さらに、それらはスケールファクタについての基礎(basis)として役立つのでψとφの値は重要である可能性があり、そして、いくつかのスケールファクタは、他よりも計算するのにより便利であることができる。例えば、α’,β’,γ’,δ’,ε’,およびζ’についての第1セットの値による乗算は、一連の加算演算、より短い一連の加算演算であるシフト演算、および、α’,β’,γ’,δ’,ε’およびζ’についての異なるセットの値についてのシフト演算、によって近似されることができる。例えば、ψ=1.352708058且つφ=0.959700091であるとき、γ’は、679/512として近似されることができる。3つのシフト演算および3つの加算演算は、679/512による乗算を近似するのに必要とされてもよい。さらに、ψ=1.1810842且つφ=0.801251953のとき、γ’は18981/16384として近似されることができる。4つのシフト演算および4つの加算演算は、18981/16384による乗算を近似するのに必要とされることができる。
スケールファクタのマトリクスは、同じベクトルによって、ベクトルの転置行列
Figure 0005129248
を乗算することによってコンピュートされることができる。このことは、8x8マトリクスの値を結果としてもたらす:
Figure 0005129248
このスケーリングファクタのマトリクスにおいて、
Figure 0005129248
スケールファクタが、変換の適用の前に係数で乗算されるので、スケールファクタA、B、C、D、E、F、G、H、I、およびJは、Pの位置だけ左シフトされることができて、ここでは、Pは、変換において使用された固定小数点の仮数ビット(すなわち、小数点の右側に位置するビット)の数を指す定数である。これは、オリジナルの係数を、P仮数ビットを有する固定小数点数へと効率的に変換する。言い換えると、マトリクスにおける係数のそれぞれは、2で、乗算される。結果として生じる値は、その後で、整数値によって近似されることができる。したがって、上のマトリクスにおけるA、B、C、D、E、F、G、H、I、およびJは、
Figure 0005129248
例えば、ψ=1.352708058と仮定し、φ=0.959700091と仮定し、P=10と仮定する。
これらのψ、φおよびPの値が与えられると、スケールファクタA’=1024、B’=757、C’=1067、D’=1071、E’=560、F’=789、G’=792、H’=1112、I’=1116、またJ’=1120が選択されることができる。したがって、以下のスケールファクタのマトリクスが結果として生じうる:
Figure 0005129248
次の表は、変換270で使用されることができる、α’、β’、γ’、δ’、ε’およびζ’の例示的なスケールファクタおよび値を要約している。
Figure 0005129248
Figure 0005129248
Figure 0005129248
IDCTモジュール48がどのように上の表で提供されたアルゴリズム、一定値(constant values)、およびスケールファクタを使用することができるかを図示するために、上の表3を考慮に入れる。表3の値を使用して逆離散コサイン変換を適用するために、IDCTモジュール48における入力モジュール140は、係数の8×8マトリクスを受け取ることができる。次に、スケーリングモジュール142は、ファクタAによってマトリクスの位置[0,0]で係数をスケーリングし、ファクタBによってマトリクスの位置[0,1]で係数をスケーリングし、ファクタCによってマトリクスの位置[0,2]で係数をスケーリングし、ファクタDによってマトリクスの位置[0,3]で係数をスケーリングし、ファクタAによってマトリクスの位置[0,4]で係数をスケーリングし、ファクタDによってマトリクスの位置[0,5]で係数をスケーリングし、ファクタCによってマトリクスの位置[0,6]で係数をスケーリングし、ファクタBによってマトリクスの位置[0,7]で係数をスケーリングし、ファクタBによってマトリクスの位置[1,0]で係数をスケーリングし、ファクタEによってマトリクスの位置[1,1]で係数をスケーリングし、ファクタFによってマトリクスの位置[1,2]で係数をスケーリングし、ファクタGによってマトリクスの位置[1,3]で係数をスケーリングし、ファクタBによってマトリクスの位置[1,4]で係数をスケーリングし、ファクタGによってマトリクスの位置[1,5]で係数をスケーリングし、ファクタFによってマトリクスの位置[1,6]で係数をスケーリングし、ファクタEによってマトリクスの位置[1,7]で係数をスケーリングし、ファクタCによってマトリクスの位置[2,0]で係数をスケーリングし、ファクタFによってマトリクスの位置[2,1]で係数をスケーリングし、ファクタHによってマトリクスの位置[2,2]で係数をスケーリングし、ファクタIによってマトリクスの位置[2,3]で係数をスケーリングし、ファクタCによってマトリクスの位置[2,4]で係数をスケーリングし、ファクタIによってマトリクスの位置[2,5]で係数をスケーリングし、ファクタHによってマトリクスの位置[2,6]で係数をスケーリングし、ファクタFによってマトリクスの位置[2,7]で係数をスケーリングし、ファクタDによってマトリクスの位置[3,0]で係数をスケーリングし、ファクタGによってマトリクスの位置[3,1]で係数をスケーリングし、ファクタIによってマトリクスの位置[3,2]で係数をスケーリングし、ファクタJによってマトリクスの位置[3,3]で係数をスケーリングし、ファクタDによってマトリクスの位置[3,4]で係数をスケーリングし、ファクタJによってマトリクスの位置[3,5]で係数をスケーリングし、ファクタIによってマトリクスの位置[3,6]で係数をスケーリングし、ファクタGによってマトリクスの位置[3,7]で係数をスケーリングし、ファクタAによってマトリクスの位置[4,0]で係数をスケーリングし、ファクタBによってマトリクスの位置[4,1]で係数をスケーリングし、ファクタCによってマトリクスの位置[4,2]で係数をスケーリングし、ファクタDによってマトリクスの位置[4,3]で係数をスケーリングし、ファクタAによってマトリクスの位置[4,4]で係数をスケーリングし、ファクタDによってマトリクスの位置[4,5]で係数をスケーリングし、ファクタCによってマトリクスの位置[4,6]で係数をスケーリングし、ファクタBによってマトリクスの位置[4,7]で係数をスケーリングし、ファクタDによってマトリクスの位置[5,0]で係数をスケーリングし、ファクタGによってマトリクスの位置[5,1]で係数をスケーリングし、ファクタIによってマトリクスの位置[5,2]で係数をスケーリングし、ファクタJによってマトリクスの位置[5,3]で係数をスケーリングし、ファクタDによってマトリクスの位置[5,4]で係数をスケーリングし、ファクタJによってマトリクスの位置[5,5]で係数をスケーリングし、ファクタIによってマトリクスの位置[5,6]で係数をスケーリングし、ファクタGによってマトリクスの位置[5,7]で係数をスケーリングし、ファクタCによってマトリクスの位置[6,0]で係数をスケーリングし、ファクタFによってマトリクスの位置[6,1]で係数をスケーリングし、ファクタHによってマトリクスの位置[6,2]で係数をスケーリングし、ファクタIによってマトリクスの位置[6,3]で係数をスケーリングし、ファクタCによってマトリクスの位置[6,4]で係数をスケーリングし、ファクタIによってマトリクスの位置[6,5]で係数をスケーリングし、ファクタHによってマトリクスの位置[6,6]で係数をスケーリングし、ファクタFによってマトリクスの位置[6,7]で係数をスケーリングし、ファクタBによってマトリクスの位置[7,0]で係数をスケーリングし、ファクタEによってマトリクスの位置[7,1]で係数をスケーリングし、ファクタFによってマトリクスの位置[7,2]で係数をスケーリングし、ファクタGによってマトリクスの位置[7,3]で係数をスケーリングし、ファクタBによってマトリクスの位置[7,4]で係数をスケーリングし、ファクタGによってマトリクスの位置[7,5]で係数をスケーリングし、ファクタFによってマトリクスの位置[7,6]で係数をスケーリングし、ファクタEによってマトリクスの位置[7,7]で係数をスケーリングする。スケーリングモジュール142がこれらの係数をスケーリングするとき、スケーリングモジュールは、表6において規定されるように、値、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528を使用することができる。これらのスケーリングされた係数は、スケーリングされた係数のマトリクスを構成する。
スケーリングモジュール142が係数をスケーリングした後で、逆ベクトル変換モジュール146は、中間係数のマトリクスを作るためにスケーリングされた係数のマトリクスの各行ベクトルに対して変換を適用することができ、そして、変換された係数のマトリクスを作るために中間係数のマトリクスの各列ベクトルに対して変換を適用する。逆ベクトル変換モジュール146は、xとxを加算することによって値x’を計算し、xと−xを加算することによって値x’を計算し、xに値αを乗算することによって値(x*α)を計算し、xに値βを乗算することによって値(x*β)を計算し、xに値βを乗算することによって値(x*β)を計算し、xに値αを乗算することによって値(x*α)を計算し、(x*α)と―(x*β)を加算することによって値x’を計算し、(x*α)と(x*β)を加算することによって値x’を計算し、x’とx’を加算することによって値x’’を計算し、x’とx’を加算することによって値x’’を計算し、x’と−x’を加算することによって値x’’を計算し、x’と−x’を加算することによって値x’’を計算し、xおよび−xを加算することによって値x’を計算し、xとxを加算することによって値x’を計算し、xと2の平方根を乗算するとによって値x’を計算し、xと2の平方根を乗算するとによって値x’を計算し、x’とx’を加算することによって値x’’を計算し、x’と−x’を加算することによって値x’’を計算し、x’と−x’を加算することによって値x’’を計算し、x’とx’を加算することによって値x’’を計算し、x’’と値εを乗算することによって値(x’’*ε)を計算し、x’’と値ζを乗算することによって値(x’’*ζ)を計算し、x’’と値γを乗算することによって値(x’’*γ)を計算し、x’’と値δを乗算することによって値(x’’*δ)を計算し、x’’と値δを乗算することによって値(x’’*δ)を計算し、x’’と値γを乗算することによって値(x’’*γ)を計算し、x’’と値ζを乗算することによって値(x’’*ζ)を計算し、x’’と値εを乗算することによって値(x’’*ε)を計算し、(x’’*ε)と−(x’’*ζ)を加算することによって値x’’’を計算し、(x’’*γ)と−(x’’*δ)を加算することによって値x’’’を計算し、(x’’*γ)と(x’’*δ)を加算することによって値x’’’を計算し、(x’’*ε)と(x’’*ζ)を加算することによって値x’’’を計算し、x’’’とx’’を加算することによって値Xを計算し、x’’とx’’’を加算することによって値Xを計算し、x’’とx’’’を加算することによって値Xを計算し、x’’とx’’’を加算することによって値Xを計算し、x’’と−x’’’を加算することによって値Xを計算し、x’’と−x’’’を加算することによって値Xを計算し、x’’と−x’’’を加算することによって値Xを計算し、x’’と−x’’’を加算することによって値Xを計算することで、行ベクトルに対してあるいは列ベクトルに対して変換を適用することができ、なお、x、x、x、x、x、x、xおよびxは、行ベクトルおよび列ベクトルにおける係数であり、X、X、X、X、X、XおよびXは、変換の出力値である。これらの計算を実行するとき、逆ベクトル変換モジュール146は、小数値α=41/128、β=99/128、γ=1533/2048、δ=1/2、ε=113/128、そしてζ=719/4096、表3で規定されるように乗算無しアルゴリズムによって計算される積、を使用する。
以下の符号は、変換270の例示的なC言語インプリメンテーションを含んでいる:
Figure 0005129248
Figure 0005129248
Figure 0005129248
Figure 0005129248
図11は、順変換モジュール214によって使用された例示的なスケーリングされた変換280を図示するフロー図である。図11においては、値X,X,X,X,X,X,X,およびXは、出力係数を表しており、値x,x,x,x,x,x,x,およびxは、入力値を表している。「プラス」の記号を含む丸の後の直線に関連づけられた値は、円を指す矢印に関連づけられた値を加えた結果である。「x」記号を含む丸の後の直線に関連づけられた値は、丸の隣に位置づけられた係数と、丸を通過する直線に関連付けられた値を乗算した結果である。矢印の隣にある記号「−」は、矢印に関連づけられた値の否定を示す。例えば、もし値「10」が「−」シンボルの前に矢印に関連づけられる場合、値「−10」は、「−」記号の後で矢印に関連づけられることができる。さらに、マイナスの係数(negatived coefficients)および引き算を使用して丸め誤差を減らすために、上記に説明された技術は、アルゴリズム190で使用されることができる、ということは注目されるべきである。
変換280において、出力値XからXは、それぞれ、ファクタ
Figure 0005129248
で、乗算される。これらのファクタが変換270において、α’、β’、γ’、δ’、ε’およびζ’から取り除かれた(factored out)値の逆数であることに注目してください。
ここに説明された技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらのいずれの組み合わせにおいて、インプリメントされることができる。モジュールあるいはコンポーネントとして説明されるいずれの特徴(features)も、集積化された論理デバイスにおいて一緒に、あるいは、相互運用が可能なロジックデバイスだけれども、ディスクリート(discrete)として別々に、インプリメントされることができる。ソフトウェアにおいてインプリメントされる場合、技術は、実行されるとき、ここに説明される方法の1つ以上を実行するインストラクションを備えているコンピュータ可読メディアによって少なくとも部分的に実現されることができる。コンピュータ可読メディアは、パッケージング材料を含むことができる、コンピュータプログラムプロダクトの一部を形づくることができる。コンピュータ可読メディアは、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、読み出し専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ、磁気あるいは光学データストレージメディア、そして同様の物、のようなランダムアクセスメモリ(RAM)を備えることができる。技術は、追加的にあるいは代替的に、データストラクチャあるいはインストラクションの形態において符号を搬送する、あるいは、通信する、また、コンピュータによってアクセスされ、読み取られ、および/または実行されることができる、コンピュータ可読通信メディアによって少なくとも部分的に実現されることができる。
符号は、1つまたは複数のデジタル信号プロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブル論理アレイ(FPGAs)、あるいは他の同等な集積化された(integrated)あるいはディスクリートの論理回路素子のような、1つまたは複数のプロセッサによって実行されることができる。したがって、ここで使用される用語「プロセッサ」は、ここに説明される技術のインプリメンテーションに適した、前述のストラクチャのうちのいずれか、あるいはどんな他のストラクチャを意味することができる。さらに、いくつかの態様において、ここに説明される機能性は、組み合わせされたビデオ エンコーダ−デコーダ(a combined video encoder-decoder)(CODEC)に組み込まれた、あるいは、符号化および復号のためにコンフィギュアされた、専用のソフトモジュールあるいはハードウェアモジュール内で提供されることができる。
本発明の様々な実施形態が説明された。これらおよび他の実施形態は、添付の特許請求の範囲の範囲内にある。

以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、前記符号化された係数の8×8マトリクスにおける各係数をスケーリングすることと、
なおA=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
前記スケーリングされた係数のマトリクスを、変換された係数のマトリクスへと変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用することと;
調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトすることと、
なお、前記調節された係数のマトリクスにおける各調節された係数は、理想的な二次元逆離散コサイン変換(「IDCT」)を前記の符号化された係数のマトリクスに対して適用することによって作られるであろう値のマトリクスにおける対応する値を、近似する;
8×8のピクセルのブロックを表示することと、なお、前記8×8のピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける1つの調節された係数に基づいたピクセルコンポーネント値を含んでいる;
を備える方法。
[2] 前記固定小数点スケーリングされた一次元変換を繰り返して適用することは、
中間係数のマトリクスを作るために、前記スケーリングされた係数のマトリクスの各行ベクトルに対して前記固定小数点スケーリングされた一次元変換を適用することと、
変換された係数のマトリクスを作るために、前記中間係数のマトリクスの各列ベクトルに対して前記固定小数点スケーリングされた一次元変換を適用することと、
を備える、
[1]に記載の方法。
[3] 前記8×8のピクセルのブロックを表示することは、ビデオシーケンスにおけるビデオフレームの一部として、前記8×8のピクセルのブロックを表示することを備える、[1]に記載の方法。
[4] 前記8×8のピクセルのブロックを表示することは、静止画像の一部として、前記8×8のピクセルのブロックを表示することを備える、[1]に記載の方法。
[5] 前記の係数のマトリクスにおける係数をスケーリングすることは、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングすることと、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングすることと、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングすることと、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングすることと、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングすることと、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングすることと、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングすることと、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングすることと、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングすることと、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングすることと、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングすることと、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングすることと、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングすることと、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングすることと、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングすることと、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングすることと、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングすることと、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングすることと、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングすることと、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングすることと、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングすることと、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングすることと、
を備える、
[1]に記載の方法。
[6] 前記変換を行ベクトルあるいは列ベクトルのいずれかに対して適用することは、
x0とx4を加算することによって、値x0’を計算することと;
x0と−x4を加算することによって、値x4’を計算することと;
x2に値αを乗算することによって、値(x2*α)を計算することと;
x6に値βを乗算することによって、値(x6*β)を計算することと;
x2に前記値βを乗算することによって、値(x2*β)を計算することと;
x6に値αを乗算することによって、値(x6*α)を計算することと;
(x2*α)と−(x6*β)を加算することによって、値x2’を計算することと;
(x6*α)と(x2*β)を加算することによって、値x6’を計算することと;
x0’とx6’を加算することによって、値x0’’を計算することと;
x4’とx2’を加算することによって、値x4’’計算することと;
x4’と−x2’を加算することによって、値x2’’を計算することと;
x0’と−x6’を加算することによって、値x6’’を計算することと;
x1と−x7を加算することによって、値x7’を計算することと;
x1とx7を加算することによって、値x1’を計算することと;
x3と2の平方根を乗算することによって、値x3’を計算することと;
x5と2の平方根を乗算することによって、値x5’を計算することと;
x7’とx5’を加算することによって、値x7’’を計算することと;
x1’と−x3’を加算することによって、値x3’’を計算することと;
x7と−x5’を加算することによって、値x5’’を計算することと;
x3’とx1’を加算することによって、値x1’’を計算することと;
x7’’に値εを乗算することによって、値(x7’’*ε)を計算することと;
x7’’に値ζを乗算することによって、値(x7’’*ζ)を計算することと;
x3’’に値γを乗算することによって、値(x3’’*γ)を計算することと;
x3’’に値δを乗算することによって、値(x3’’*δ)を計算することと;
x5’’に前記値δを乗算することによって、値(x5’’*δ)を計算することと;
x5’’に前記値γを乗算することによって、値(x5’’*γ)を計算することと;
x1’’に前記値ζを乗算することによって、値(x1’’*ζ)を計算することと;
x1’’に前記値εを乗算することによって、値(x1’’*ε)を計算することと;
(x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算することと;
(x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算することと;
(x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算することと;
(x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算することと;
x7’’’とx0’’を加算することによって、値X0を計算することと;
x4’’とx5’’’を加算することによって、値X1を計算すること;
x2’’とx3’’’を加算することによって、値X2を計算することと;
x6’’とx7’’’を加算することによって、値X3を計算することと;
x6’’と−x1’’’を加算することによって、値X4を計算することと;
x2’’と−x3’’’を加算することによって、値X5を計算することと;
x4’’と−x5’’’を加算することによって、値X6を計算することと;
x0’’と−x1’’’を加算することによって、値X7を計算することと;
を備え、
x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルあるいは列ベクトルにおいて係数であり、
X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
[5]に記載の方法。
[7] 前記固定小数点スケーリングされた一次元変換の繰り返し適用を使用することは、乗算あるいは除算の演算を使用することなく、前記行ベクトルのうちの1つあるいは前記列ベクトルのうちの1つにおける係数に対して前記変換を適用すること、を備える、[6]に記載の方法。
[8] x1と前記値εを乗算することによる値(x1*ε)を計算することと、x1と前記値ζによる前記値(x1*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
値y1を計算することと、ただし、y1=(x1>>9)−x1);
1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算することと;
(y1>>2)からy1を差し引くことによって前記値(x1*ε)を計算することと;
を実行することを備え、
x7と前記値εを乗算することによる値(x7*ε)を計算することと、x7と前記値ζによる前記値(x7*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
値y1’を計算することと、ただし、y1’=(x7>>9)−x7;
1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算することと;
(y1’>>2)からy1’を差し引くことによって前記値(x7*ε)を計算することと;
を実行することを備え、
x1’’と前記値εを乗算することによる値(x1’’*ε)を計算することと、x1’’と前記値ζによる前記値(x1’’*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
値y1’’を計算することと、ただし、y1’’=(x1’’>>9)−x1’’);
1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算することと;
(y1’’>>2)からy1’’を差し引くことによって前記値(x1’’*ε)を計算することと;
を実行することを備え、
x7’’と前記値εを乗算することによる値(x7’’*ε)を計算することと、x7’’と前記値ζによる前記値(x7’’*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
値y1’’’を計算することと、ただし、y1’’’=(x7’’>>9)−x7’’;
1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算することと;
(y1’’’>>2)からy1’’’を差し引くことによって前記値(x7’’*ε)を計算することと;
を実行することを備える、
[7]に記載の方法。
[9] x3と値γを乗算することによる値(x3*γ)を計算することと、x3と値δを乗算することによる値(x3*δ)を計算することとは、次のシーケンスの演算、すなわち、
値y2を計算することと、ただし、y2=(x3>>3)−(x3>>7);
値y3を計算することと、ただし、y3=y2−(x3>>11);
前記値(x3*δ)=y2+(y3>>1)を計算することと;
x3からy2を差し引くことによって、前記値(x3*γ)を計算することと;
を実行することを備えており、
x5と前記値δを乗算することによる値(x5*δ)を計算することと、x5と前記値γを乗算することによる値(x5*γ)を計算することとは、次のシーケンスの演算、すなわち、
値y2’を計算することと、ただし、y2’=(x5>>3)−(x5>>7);
値y3’を計算することと、ただし、y3’=y2’−(x5>>11);
y2’と(y3’>>1)を加算することによって、前記値(x5*δ)を計算することと;
x5からy2’を差し引くことによって、前記値(x5*γ)を計算することと;
を実行することを備えており、
x3’’と値γを乗算することによる値(x3’’*γ)を計算することと、x3’’と値δを乗算することによる値(x3’’*δ)を計算することとは、次のシーケンスの演算、すなわち、
値y2’’を計算することと、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
値y3’’を計算することと、ただし、y3’’=y2’’−(x3’’>>11);
前記値(x3’’*δ)=y2’’+(y3’’>>1)を計算することと;
x3’’からy2’’を差し引くことによって、前記値(x3’’*γ)を計算することと;
を実行することを備えており、
x5’’と前記値δを乗算することによる値(x5’’*δ)を計算することと、x5’’と前記値γを乗算することによる値(x5’’*γ)を計算することとは、次のシーケンスの演算、すなわち、
値y2’’’を計算することと、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
値y3’’’を計算することと、ただし、y3’’’=y2’’’−(x5’’>>11);
y2’’’と(y3’’’>>1)を加算することによって前記値(x5’’*δ)を計算することと;
x5’’からy2’’’を差し引くことによって、前記値(x5’’*γ)を計算することと;
を実行することを備える、
[7]に記載の方法。
[10] x2に値αを乗算することによる値(x2*α)を計算することと、x2に値βを乗算することによる値(x2*β)を計算することとは、次のシーケンスの演算、すなわち、
値y1を計算することと、ただし、y1=x2+(x2>>5);
値y2を計算することと、ただし、y2=y1>>2;
y2と(x2>>4)を加算することによって、前記値(x2*α)を計算することと;
y1からy2を差し引くことによって、前記値(x2*β)を計算することと;
を実行することを備えており、
x6に値αを乗算することによる値(x6*α)を計算することと、x6に値βを乗算することによる値(x6*β)を計算することとは、次のシーケンスの演算、すなわち、
値y1’を計算することと、ただし、y1’=x2+(x6>>5);
値y2’を計算することと、ただし、y2’=y1’>>2;
y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算することと;
y1’からy2’を差し引くことによって、前記値(x6*β)を計算することと;
を実行することを備えており、
x2’’に値αを乗算することによる値(x2’’*α)を計算することと、x2’’に値βを乗算することによる値(x2’’*β)を計算することとは、次のシーケンスの演算、すなわち、
値y1’’を計算することと、ただし、y1’’=x2’’+(x2’’>>5);
値y2’’を計算することと、ただし、y2’’=y1’’>>2;
y2’’と(x2’’>>4)を加算することによって、前記値(x2’’*α)を計算することと;
y1’’からy2’’を差し引くことによって、前記値(x2’’*β)を計算することと;
を実行することを備えており、
x6’’に値αを乗算することによる値(x6’’*α)を計算することと、x6’’に値βを乗算することによる値(x6’’*β)を計算することとは、次のシーケンスの演算、すなわち、
値y1’’’を計算することと、ただし、y1’’’=x2+(x6’’>>5);
値y2’’’を計算することと、ただし、y2’’’=y1’’’>>2;
y2’’’と(x6’’>>4)を加算することによって、前記値(x6’’*α)を計算することと;
y1’’’からy2’’’を差し引くことによって、前記値(x6’’*β)を計算することと;
を実行することを備える、
[7]に記載の方法。
[11] 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の仮数部分においてPビットを含む前記固定小数点数を使用して、表される、[6]に記載の方法。
[12] Pは10に等しい、[11]に記載の方法。
[13] 前記方法は、前記係数のマトリクスを含むビットストリームを受け取ること、をさらに備える、[1]に記載の方法。
[14] 前記方法は、中間バイアス項を前記マトリクスのDC係数に加算すること、をさらに備えており、また前記中間バイアス値項は、2の12乗に等しい、[1]に記載の方法。
[15] 前記方法は、
ピクセルコンポーネント値のマトリクスを生成するために、13個の位置だけ前記変換された係数のマトリクスにおける各係数を右シフトすることと、そして、
前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成することと、
をさらに備える、
[1]に記載の方法。
[16] 前記8×8マトリクスの符号化された係数における各係数をスケーリングすることは、乗算あるいは除算の演算を使用することなく、前記符号化された係数のマトリクスにおける前記係数をスケーリングすること、を備える、[1]に記載の方法。
[17] スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、前記符号化された係数の8×8マトリクスにおける各係数をスケーリングするスケーリングモジュールと、
なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
前記スケーリングされた係数のマトリクスを変換された係数のマトリクスに変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用する逆変換モジュールと;
調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトする右シフトモジュールと、
なお、前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに対して理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する;
8×8のピクセルのブロックを出力する出力モジュールと、なお、前記ピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける調節された係数に基づいてピクセルコンポーネント値を含む;
を備えるデバイス。
[18] 前記逆変換モジュールは、中間係数のマトリクスを作るために、前記固定小数点スケーリングされた一次元変換を、前記スケーリングされた係数のマトリクスの各行ベクトルに対して適用し、変換された係数のマトリクスを作るために、前記固定小数点スケーリングされた一次元変換を、前記中間係数のマトリクスの各列ベクトルに対して適用する、[17]に記載のデバイス。
[19] 前記出力モジュールは、前記8×8のピクセルのブロックを、ビデオシーケンスにおけるビデオの一部として、表示している、[17]に記載の装置。
[20] 前記出力モジュールは、前記8×8のピクセルのブロックを、静止画像の一部として表示している、[19]に記載の装置。
[21] 前記スケーリングモジュールは、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングし、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングし、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングし、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングし、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングし、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングし、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングし、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングし、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングし、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングし、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングし、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングし、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングし、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングし、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングし、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングし、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングし、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングし、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングし、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングし、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングし、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングする、
[17]に記載のデバイス。
[22] 前記逆変換モジュールは、
x0とx4を加算することによって、値x0’を計算することと;
x0と−x4を加算することによって、値x4’を計算することと;
x2に値αを乗算することによって、値(x2*α)を計算することと;
x6に値βを乗算することによって、値(x6*β)を計算することと;
x2に前記値βを乗算することによって、値(x2*β)を計算することと;
x6に値αを乗算することによって、値(x6*α)を計算することと;
(x2*α)と−(x6*β)を加算することによって、値x2’を計算することと;
(x6*α)と(x2*β)を加算することによって、値x6’を計算することと;
x0’とx6’を加算することによって、値x0’’を計算することと;
x4’とx2’を加算することによって、値x4’’計算することと;
x4’と−x2’を加算することによって、値x2’’を計算することと;
x0’と−x6’を加算することによって、値x6’’を計算することと;
x1および−x7を加算することによって、値x7’を計算することと;
x1とx7を加算することによって、値x1’を計算することと;
x3と2の平方根を乗算するとによって、値x3’を計算することと;
x5と2の平方根を乗算するとによって、値x5’を計算することと;
x7’とx5’を加算することによって、値x7’’を計算することと;
x1’と−x3’を加算することによって、値x3’’を計算することと;
x7’と−x5’を加算することによって、値x5’’を計算することと;
x3’とx1’を加算することによって、値x1’’を計算することと;
x7’’と値εを乗算することによって、値(x7’’*ε)を計算することと;
x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算することと;
x3’’と値γを乗算することによって、値(x3’’*γ)を計算することと;
x3’’と値δを乗算することによって、値(x3’’*δ)を計算することと;
x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算することと;
x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算することと;
x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算することと;
x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算することと;
(x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算することと;
(x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算することと;
(x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算することと;
(x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算することと;
x7’’’とx0を加算することによって、値X0を計算することと;
x4’’とx5’’’を加算することによって、値X1を計算すること;
x2’’とx3’’’を加算することによって、値X2を計算することと;
x6’’とx7’’’を加算することによって、値X3を計算することと;
x6’’と−x1’’’を加算することによって、値X4を計算することと;
x2’’と−x3’’’を加算することによって、値X5を計算することと;
x4’’と−x5’’’を加算することによって、値X6を計算することと;
x0’’と−x1’’’を加算することによって、値X7を計算することと;
によって、行ベクトルあるいは列ベクトルに対して前記変換を適用し、
x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおける係数であり、
X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
[17]に記載のデバイス。
[23] 前記逆変換モジュールは、乗算あるいは除算演算を使用することなく、前記変換を前記係数のマトリクスに対して適用する、[22]に記載のデバイス。
[24] 前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
値y1を計算することと、ただし、y1=(x1>>9)−x1;
1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算することと;
(y1>>2)からy1を差し引くことによって、値(x1*ε)を計算することと;
を実行することによって、x1と前記値ζによる前記値(x1*ζ)を計算し、x1と前記値εを乗算することによる前記値(x1*ε)を計算する、
また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
値y1’を計算することと、ただし、y1’=(x7>>9)−x7;
1つの位置だけx7を右シフトすることによって、前記値(x7*ζ)を計算することと;
(y1’>>2)からy1’を差し引くことによって、値(x7*ε)を計算することと;
を実行することによって、x7と前記値ζによる前記値(x7*ζ)を計算し、x7と前記値εを乗算することによる前記値(x7*ε)を計算する、
また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
値y1’’を計算することと、ただし、y1’’=(x1’’>>9)−x1’’;
1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算することと;
(y1’’>>2)からy1’’を差し引くことによって、値(x1’’*ε)を計算することと;
を実行することによって、x1’’と前記値ζによる前記値(x1’’*ζ)を計算し、x1’’と前記値εを乗算することによる前記値(x1’’*ε)を計算する、
また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
値y1’’’を計算することと、ただし、y1’’’=(x7’’>>9)−x7’’;
1つの位置だけx7’’を右シフトすることによって、前記値(x7’’*ζ)を計算することと;
(y1’’’>>2)からy1’’’を差し引くことによって、値(x7’’*ε)を計算することと;
を実行することによって、x7’’と前記値ζによる前記値(x7’’*ζ)を計算する、x7’’と前記値εを乗算することによる前記値(x7’’*ε)を計算する、
[23]に記載のデバイス。
[25] 前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y2を計算することと、ただし、y2=(x3>>3)−(x3>>7);
値y3を計算することと、ただし、y3=y2−(x3>>11);
値(x3*δ)=y2+(y3>>1)を計算することと;
x3からy2を差し引くことによって、値(x3*γ)を計算することと;
を実行することによって、x3と値δを乗算することによる前記値(x3*δ)を計算し、x3と値γを乗算することによる前記値(x3*γ)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y2’を計算することと、ただし、y2’=(x5>>3)−(x5>>7);
値y3’を計算することと、ただし、y3’=y2’−(x5>>11);
y2’と(y3’>>1)を加算することによって、値(x5*δ)を計算することと;
x5からy2’を差し引くことによって、値(x5*γ)を計算することと;
を実行することによって、x5と前記値γを乗算することによる前記値(x5*γ)を計算し、x5と前記値δを乗算することによる前記値(x5*δ)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y2’’を計算することと、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
値y3’’を計算することと、ただし、y3’’=y2’’−(x3’’>>11);
値(x3’’*δ)=y2’’+(y3’’>>1)を計算することと;
x3’’からy2’’を差し引くことによって、値(x3’’*γ)を計算することと;
を実行することによって、x3’’と値δを乗算することによる前記値(x3’’*δ)を計算し、x3’’と値γを乗算することによる前記値(x3’’*γ)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y2’’’を計算することと、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
値y3’’’を計算することと、ただし、y3’’’=y2’−(x5’’>>11);
y2’’’と(y3’’’>>1)を加算することによって値(x5’’*δ)を計算することと;
x5’’からy2’’’を差し引くことによって、値(x5’’*γ)を計算することと;
を実行することによって、x5’’と前記値γを乗算することによる前記値(x5’’*γ)を計算し、x5’’と前記値δを乗算することによる前記値(x5’’*δ)を計算する、
[23]に記載のデバイス。
[26] 前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y1を計算することと、ただし、y1=x2+(x2>>5);
値y2を計算することと、ただし、y2=y1>>2;
y2と(x2>>4)を加算することによって、前記値(x2*α)を計算することと;
y1からy2を差し引くことによって、前記値(x2*β)を計算することと;
を実行することによって、x2に前記値βを乗算することによる前記値(x2*β)を計算し、x2に値αを乗算することによる前記値(x2*α)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y1’を計算することと、ただし、y1’=x6+(x6>>5);
値y2’を計算することと、ただし、y2’=y1’>>2;
y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算することと;
y1’からy2’を差し引くことによって、前記値(x6*β)を計算することと;
を実行することによって、x6に前記値βを乗算することによる前記値(x6*β)を計算し、x6に値αを乗算することによる前記値(x6*α)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y1’’を計算することと、ただし、y1’’=x2’’+(x2’’>>5);
値y2’’を計算することと、ただし、y2’’=y1’’>>2;
y2’’と(x2’’>>4)を加算することによって、値(x2’’*α)を計算することと;
y1’’からy2’’を差し引くことによって、値(x2’’*β)を計算することと;
を実行することによって、x2’’に値βを乗算することによる前記値(x2’’*β)を計算し、x2’’に値αを乗算することによる前記値(x2’’*α)を計算する、
また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
値y1’’’を計算することと、ただし、y1’’’=x2+(x6’’>>5);
値y2’’’を計算することと、ただし、y2’’’=y1’’’>>2;
y2’’’と(x6’’>>4)を加算することによって、値(x6’’*α)を計算することと;
y1’’’からy2’’’を差し引くことによって、値(x6’’*β)を計算することと;
を実行することによって、x6’’と値βを乗算することによる前記値(x6’’*β)を計算し、x6’’と値αを乗算することによる前記値(x6’’*α)を計算する、
[23]に記載のデバイス。
[27] 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、[22]に記載のデバイス。
[28] Pは10に等しい、[27]に記載のデバイス。
[29] 前記デバイスは、前記符号化された係数のマトリクスが導き出されるデータを受け取る、ネットワークインタフェースを備える、[17]に記載のデバイス。
[30] 前記デバイスは、DC係数に対して中間バイアス項を加算する係数バイアシングモジュールを備えており、前記中間バイアス項が2の12乗に等しい、[17]に記載のデバイス。
[31] 前記デバイスは、
ピクセルコンポーネント値のマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける各係数を右シフトする右シフトモジュールと、
前記ピクセルのブロックにおけるピクセルへと、前記ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を組み込むことによって、前記ピクセルのブロックを構成するピクセル再構成モジュールと、
をさらに備える、
[30]に記載のデバイス。
[32] 前記デバイスは、前記ピクセルのブロックを表示するメディアプレゼンテーションユニット、をさらに備える、[17]に記載の装置。
[33] 前記スケーリングモジュールは、乗算あるいは除算の演算を使用することなく、前記係数をスケーリングする、[17]に記載のデバイス。
[34] スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける各係数をスケーリングするための手段と、
なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
前記スケーリングされた係数のマトリクスを変換された係数のマトリクスへと変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用するための手段と;
調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトするための手段と、
なお、前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに対して理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する;
8×8のピクセルのブロックを表示するための手段と、なお、前記のピクセルのブロックにおける各ピクセルは、調節された係数の前記マトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含んでいる;
を備えるデバイス。
[35] 前記固定小数点スケーリングされた一次元変換を繰り返して適用するための前記手段は、
中間係数のマトリクスを作るために、前記固定小数点スケーリングされた一次元変換をスケーリングされた係数の前記マトリクスの各行ベクトルに対して適用することと、
変換された係数のマトリクスを作るために、前記固定小数点スケーリングされた一次元変換をスケーリングされた係数の前記マトリクスの各列ベクトルに対して適用することと、
を備える、
[34]に記載のデバイス。
[36] 前記8×8のピクセルのブロックを出力するための前記手段は、前記8×8のピクセルのブロックを、ビデオシーケンスにおけるビデオフレームの一部として、表示すること、を備える、[34]に記載のデバイス。
[37] 前記8×8のピクセルのブロックを出力するための前記手段は、前記8×8のピクセルのブロックを、静止画像の一部として、表示する、[34]に記載のデバイス。
[38] 係数をスケーリングするための前記手段は、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングするための手段と、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングするための手段と、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングするための手段と、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングするための手段と、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングするための手段と、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングするための手段と、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングするための手段と、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングするための手段と、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングするための手段と、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングするための手段と、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングするための手段と、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングするための手段と、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングするための手段と、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングするための手段と、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングするための手段と、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングするための手段と、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングするための手段と、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングするための手段と、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングするための手段と、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングするための手段と、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングするための手段と、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングするための手段と、
を備える、
[34]に記載のデバイス。
[39] 前記変換を適用するための前記手段は、
x0とx4を加算することによって、値x0’を計算するための手段と;
x0と−x4を加算することによって、値x4’を計算するための手段と;
x2に値αを乗算することによって、値(x2*α)を計算するための手段と;
x6に値βを乗算することによって、値(x6*β)を計算するための手段と;
x2に前記値βを乗算することによって、値(x2*β)を計算するための手段と;
x6に値αを乗算することによって、値(x6*α)を計算するための手段と;
(x2*α)と−(x6*β)を加算することによって、値x2’を計算するための手段と;
(x6*α)と(x2*β)を加算することによって、値x6’を計算するための手段と;
x0’とx6’を加算することによって、値x0’’を計算するための手段と;
x4’とx2’を加算することによって、値x4’’計算するための手段と;
x4’と−x2’を加算することによって、値x2’’を計算するための手段と;
x0’と−x6’を加算することによって、値x6’’を計算するための手段と;
x1および−x7を加算することによって、値x7’を計算するための手段と;
x1とx7を加算することによって、値x1’を計算するための手段と;
x3と2の平方根を乗算するとによって、値x3’を計算するための手段と;
x5と2の平方根を乗算するとによって、値x5’を計算するための手段と;
x7’とx5’を加算することによって、値x7’’を計算するための手段と;
x1’と−x3’を加算することによって、値x3’’を計算するための手段と;
x7’と−x5’を加算することによって、値x5’’を計算するための手段と;
x3’とx1’を加算することによって、値x1’’を計算するための手段と;
x7’’と値εを乗算することによって、値(x7’’*ε)を計算するための手段と;
x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算するための手段と;
x3’’と値γを乗算することによって、値(x3’’*γ)を計算するための手段と;
x3’’と値δを乗算することによって、値(x3’’*δ)を計算するための手段と;
x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算するための手段と;
x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算するための手段と;
x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算するための手段と;
x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算するための手段と;
(x7’’*ε)と―(x1’’*ζ)を加算することによって、値x7’’’を計算するための手段と;
(x3’’*γ)と―(x5’’*δ)を加算することによって、値x3’’’を計算するための手段と;
(x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算するための手段と;
(x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算するための手段と;
x7’’’とx0’’を加算することによって、値X0を計算するための手段と;
x4’’とx5’’’を加算することによって、値X1を計算するための手段と;
x2’’とx3’’’を加算することによって、値X2を計算するための手段と;
x6’’とx7’’’を加算することによって、値X3を計算するための手段と;
x6’’と−x1’’’を加算することによって、値X4を計算するための手段と;
x2’’と−x3’’’を加算することによって、値X5を計算するための手段と;
x4’’と−x5’’’を加算することによって、値X6を計算するための手段と;
x0’’と−x1’’’を加算することによって、値X7を計算するための手段と;
を備え、
x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおいて係数であり、
X0,X1,X2,X3,X4,X5,X6,およびX7は、前記変換の出力値であり、
α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
[38]に記載のデバイス。
[40] 前記変換の繰り返し適用を使用するための前記手段は、乗算あるいは除算の演算を使用することなく、前記係数のマトリクスへと前記変換を適用する、[39]に記載のデバイス。
[41]x1と前記値εを乗算することによる値(x1*ε)を計算するための前記手段と、x1と前記値ζによる前記値(x1*ζ)を計算するための前記手段は、
値y1を計算するための手段と、ただし、y1=(x1>>9)−x1);
1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算するための手段と;
(y1>>2)からy1を差し引くことによって前記値(x1*ε)を計算するための手段と;
を備え、
x7と前記値εを乗算することによる値(x7*ε)を計算するための前記手段と、x7と前記値ζによる前記(x7*ζ)を計算するための前記手段は、
値y1’を計算するための手段と、ただし、y1’=(x7>>9)−x7;
1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算するための手段と;
(y1’>>2)からy1’を差し引くことによって前記値(x7*ε)を計算するための手段と;
を備え、
x1’’と前記値εを乗算することによる値(x1’’*ε)を計算するための前記手段と、x1’’と前記値ζによる前記値(x1’’*ζ)を計算するための前記手段は、
値y1’’を計算するための手段と、ただし、y1’’=(x1’’>>9)−x1’’);
1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算するための手段と;
(y1’’>>2)からy1’’を差し引くことによって前記値(x1’’*ε)を計算するための手段と;
を備え、
x7’’と前記値εを乗算することによる値(x7’’*ε)を計算するための前記手段と、x7’’と前記値ζによる前記値(x7’’*ζ)を計算するための前記手段は、
値y1’’’を計算するための手段と、ただし、y1’’’=(x7’’>>9)−x7’’;
1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算するための手段と;
(y1’’’>>2)からy1’’’を差し引くことによって前記値(x7’’*ε)を計算するための手段と;
を備える、
[40]に記載のデバイス。
[42] x3と値γを乗算することによる値(x3*γ)を計算するための前記手段と、x3と値δを乗算することによる値(x3*δ)を計算するための前記手段は、
値y2を計算するための手段と、ただし、y2=(x3>>3)−(x3>>7);
値y3を計算するための手段と、ただし、y3=y2−(x3>>11);
前記値(x3*δ)=y2+(y3>>1)を計算するための手段と;
x1からy2を差し引くことによって、前記値(x3*γ)を計算するための手段と;
を備え、
x5と前記値δを乗算することによる値(x5*δ)を計算するための前記手段と、x5と前記値γを乗算することによる値(x5*γ)を計算するための前記手段は、
値y2’を計算するための手段と、ただし、y2’=(x5>>3)−(x5>>7);
値y3’を計算するための手段と、ただし、y3’=y2’−(x5>>11);
y2’と(y3’>>1)を加算することによって、前記値(x5*δ)を計算するための手段と;
x7からy2’を差し引くことによって、前記値(x5*γ)を計算するための手段と;
を備え、
x3’’と値γを乗算することによる値(x3’’*γ)を計算するための前記手段と、x3’’と値δを乗算することによる値(x3’’*δ)を計算するための前記手段は、
値y2’’を計算するための手段と、ただし、y2’’=(x1’’>>3)−(x1’’>>7);
値y3’’を計算するための手段と、ただし、y3’’=y2’’−(x1’’>>11);
前記値(x1’’*δ)=y2’’+(y3’’>>1)を計算するための手段と;
x1’’からy2’’を差し引くことによって、前記値(x1’’*γ)を計算するための手段と;
を備え、
x5’’と前記値δを乗算することによる値(x5’’*δ)を計算するための前記手段と、x5’’と前記値γを乗算することによる値(x5’’*γ)をするための前記手段は、
値y2’’’を計算するための手段と、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
値y3’’’を計算するための手段と、ただし、y3’’’=y2’’’−(x5’’>>11);
y2’’’と(y3’’’>>1)を加算することによって前記値(x5’’*δ)を計算するための手段と;
x5’’からy2’’’を差し引くことによって、前記値(x5’’*γ)を計算するための手段と;
を備える、
[40]に記載のデバイス。
[43] x2に値αを乗算することによる前記値(x2*α)を計算するための前記手段と、x2に前記値βを乗算することによる前記値(x2*β)を計算するための前記手段は、
値y1を計算するための手段と、ただし、y1’=x2+(x2>>5);
値y2を計算するための手段と、ただし、y2=y1>>2;
y2と(x2>>4)を加算することによって、前記値(x2*α)を計算するための手段と;
y1からy2を差し引くことによって、前記値(x2*β)を計算するための手段と;
を備え、
x6に値αを乗算することによる前記値(x6*α)を計算するための前記手段と、x6に前記値βを乗算することによる前記値(x6*β)を計算するための前記手段は、
値y1’を計算するための手段と、ただし、y1’=x6+(x6>>5);
値y2’を計算するための手段と、ただし、y2’=y1’>>2;
y2’と(x6>>4)を加算することによって、前記値(x2*α)を計算するための手段と;
y1’からy2’を差し引くことによって、前記値(x2*β)を計算するための手段と;
を備え、
x2’’に値αを乗算することによる値(x2’’*α)を計算するための前記手段と、x2’’に値βを乗算することによる値(x2’’*β)を計算するための前記手段は、
値y1’’を計算するための手段と、ただし、y1’’=x2’’+(x2’’>>5);
値y2’’を計算するための手段と、ただし、y2’’=y1’’>>2;
y2’’と(x2’’>>4)を加算することによって、前記値(x2’’*α)を計算するための手段と;
y1’’からy2’’を差し引くことによって、前記値(x2’’*β)を計算するための手段と;
を備え、
x6’’と値αを乗算することによる値(x6’’*α)を計算するための前記手段と、x6’’と値βを乗算することによる値(x6’’*β)を計算するための前記手段は、
値y1’’’を計算するための手段と、ただし、y1’’’=x2+(x6’’>>5);
値y2’’’を計算するための手段と、ただし、y2’’’=y1’’’>>2;
y2’’’と(x6’’>>4)を加算することによって、前記値(x6’’*α)を計算するための手段と;
y1’’’からy2’’’を差し引くことによって、前記値(x6’’*β)を計算するための手段と;
を備える、
[40]に記載のデバイス。
[44] 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、[39]に記載のデバイス。
[45] Pは10に等しい、[44]に記載のデバイス
[46] 前記デバイスは、前記符号化された係数のマトリクスが導き出される、メディアファイルを受け取るための手段、を備える、[34]に記載のデバイス。
[47] 前記デバイスは、中間バイアス項をDC係数に加算するための手段、をさらに備えており、また、前記中間バイアス値項は、2の12乗に等しい、[34]に記載のデバイス。
[48] 前記デバイスは、
ピクセルコンポーネントのマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける各係数を右シフトするための手段と、
前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成するための手段と、
をさらに備える、
[34]に記載のデバイス。
[49] 前記デバイスは、前記ピクセルのブロックを表示するための手段、をさらに備える、[34]に記載のデバイス。
[50] 前記係数をスケーリングするための前記手段は、乗算あるいは除算の演算を使用することなく、スケーリングする、[34]に記載のデバイス。
[51] インストラクションを備えるコンピュータ可読メディアであって、実施されるとき、前記インストラクションは、プログラマブルプロセッサに、
符号化された係数の8×8マトリクスを受信させ;
スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、前記符号化された係数の8×8マトリクスにおける各係数をスケーリングさせ、
なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
前記スケーリングされた係数のマトリクスを変換された係数のマトリクスへと変換するために、固定小数点スケーリングされた一次元変換の繰り返し適用を使用させ;
調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトさせ、
なお、前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する;
ディスプレイユニットが8×8のピクセルのブロックを表示させる信号を出力させる、なお、前記ピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含んでいる;
コンピュータ可読メディア。
[52] プログラマブルプロセッサに前記固定小数点スケーリングされた一次元変換の繰り返し適用を使用させる、前記インストラクションは、プログラマブルプロセッサに、
中間係数のマトリクスを作るために、前記スケーリングされた係数のマトリクスの各行ベクトルに対して前記変換を適用させ、
変換された係数のマトリクスを作るために、前記中間係数のマトリクスの各列ベクトルに対して前記変換を適用させる、
[51]に記載のコンピュータ可読メディア。
[53]前記プログラマブルプロセッサに、前記ディスプレイユニットに前記8×8のピクセルのブロックを表示させる信号を、出力させる前記インストラクションは、前記プログラマブルプロセッサに、前記ディスプレイユニットにビデオシーケンスにおけるビデオフレームの一部として前記8×8のピクセルのブロックを表示させる信号を、出力させる、[51]に記載のコンピュータ可読メディア。
[54]前記プログラマブルプロセッサが、前記ディスプレイユニットに前記8×8のピクセルのブロックを表示させる信号を、出力させる前記インストラクションは、前記プログラマブルプロセッサに、前記ディスプレイユニットに静止画像の一部として前記8×8のピクセルのブロックを表示させる信号を、出力させる、[51]に記載のコンピュータ可読メディア。
[55] 前記プロセッサに前記係数のマトリクスにおける前記係数をスケーリングさせる前記インストラクションは、前記プロセッサに、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングさせ、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングさせ、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングさせ、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングさせ、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングさせ、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングさせ、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングさせ、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングさせ、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングさせ、
前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングさせ、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングさせ、
前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングさせ、
前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングさせ、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングさせ、
前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングさせ、
前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングさせ、
前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングさせ、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングさせ、
前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングさせ、
前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングさせ、
前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングさせ、
前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングさせる、
[51]に記載のコンピュータ可読メディア。
[56] 前記プロセッサに行ベクトルあるいは列ベクトルのいずれかに前記変換を適用させる前記インストラクションは、前記プロセッサに、
x0とx4を加算することによって、値x0’を計算させ;
x0と−x4を加算することによって、値x4’を計算させ;
x2に値αを乗算することによって、値(x2*α)を計算させ;
x6に値βを乗算することによって、値(x6*β)を計算させ;
x2に前記値βを乗算することによって、値(x2*β)を計算させ;
x6に値αを乗算することによって、値(x6*α)を計算させ;
(x2*α)と−(x6*β)を加算することによって、値x2’を計算させ;
(x6*α)と(x2*β)を加算することによって、値x6’を計算させ;
x0’とx6’を加算することによって、値x0’’を計算させ;
x4’とx2’を加算することによって、値x4’’計算させ;
x4’と−x2’を加算することによって、値x2’’を計算させ;
x0’と−x6’を加算することによって、値x6’’を計算させ;
x1と−x7を加算することによって、値x7’を計算させ;
x1とx7を加算することによって、値x1’を計算させ;
x3と2の平方根を乗算するとによって、値x3’を計算させ;
x5と2の平方根を乗算するとによって、値x5’を計算させ;
x7’とx5’を加算することによって、値x7’’を計算させ;
x1’と−x3’を加算することによって、値x3’’を計算させ;
x7’と−x5’を加算することによって、値x5’’を計算させ;
x3’とx1’を加算することによって、値x1’’を計算させ;
x7’’と値εを乗算することによって、値(x7’’*ε)を計算させ;
x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算させ;
x3’’と値γを乗算することによって、値(x3’’*γ)を計算させ;
x3’’と値δを乗算することによって、値(x3’’*δ)を計算させ;
x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算させ;
x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算させ;
x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算させ;
x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算させ;
(x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算させ;
(x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算させ;
(x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算させ;
(x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算させ;
x7’’’とx0’’を加算することによって、値X0を計算させ;
x4’’とx5’’’を加算することによって、値X1を計算させ;
x2’’とx3’’’を加算することによって、値X2を計算させ;
x6’’とx7’’’を加算することによって、値X3を計算させ;
x6’’と−x1’’’を加算することによって、値X4を計算させ;
x2’’と−x3’’’を加算することによって、値X5を計算させ;
x4’’と−x5’’’を加算することによって、値X6を計算させ;
x0’’と−x1’’’を加算することによって、値X7を計算させる;
x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおいて係数であり X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
[55]に記載のコンピュータ可読メディア。
[57] 前記インストラクションは、乗算あるいは除算の演算を使用しないで、前記プロセッサに前記行ベクトルのうちの1つあるいは前記列ベクトルのうちの1つにおける係数に対して前記変換を適用させることによって、前記プロセッサに前記変換を適用させる、[56]に記載のコンピュータ可読メディア。
[58]前記プログラマブルプロセッサに、
値y1を計算させ、ただし、y1=(x1>>9)−x1);
1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算させ;
(y1>>2)からy1を差し引くことによって値(x1*ε)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x1と前記値ζによる前記値(x1*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x1と前記値εを乗算することによる前記値(x1*ε)を計算させる、
また、前記プログラマブルプロセッサに、
値y1’を計算させ、ただし、y1’=(x7>>9)−x7;
1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算させ;
(y1’>>2)からy1’を差し引くことによって値(x7*ε)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x7と前記値ζによる前記値(x7*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x7と前記値εを乗算することによる前記値(x7*ε)を計算させる、
また、前記インストラクションは、前記プログラマブルプロセッサに、
値y1’’を計算させ、ただし、y1’’=(x1’’>>9)−x1’’);
1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算させ;
(y1’’>>2)からy1’’を差し引くことによって値(x1’’*ε)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x1’’と前記値ζによる前記値(x1’’*ζ)を計算させ、前記プログラマブルプロセッサに、x1’’と値εを乗算することによる前記値(x1’’*ε)を計算させる、
また、前記プログラマブルプロセッサに、
値y1’’’を計算させ、ただし、y1’’’=(x7’’>>9)−x7’’;
1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算させ;
(y1’’’>>2)からy1’’’を差し引くことによって値(x7’’*ε)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x7’’と前記値ζによる前記値(x7’’*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x7’’と前記値εを乗算することによる前記値(x7’’*ε)を計算させる、
[57]に記載のコンピュータ可読メディア。
[59] 前記プログラマブルプロセッサに、
値y2を計算させ、ただし、y2=(x3>>3)−(x3>>7);
値y3を計算させ、ただし、y3=y2−(x3>>11);
値(x3*δ)=y2+(y3>>1)を計算させ;
x3からy2を差し引くことによって、値(x3*γ)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x3と値δを乗算することによる前記値(x3*δ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x3と値γを乗算することによる前記値(x3*γ)を計算させる、
また、前記プログラマブルプロセッサに、
値y2’を計算させ、ただし、y2’=(x5>>3)−(x5>>7);
値y3’を計算させ、ただし、y3’=y2’−(x5>>11);
y2’と(y3’>>1)を加算することによって、値(x5*δ)を計算させ;
x5からy2’を差し引くことによって、値(x5*γ)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x5と前記値γを乗算することによる前記値(x5*γ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x5と前記値δを乗算することによる前記値(x5*δ)を計算させる、
また、前記プログラマブルプロセッサに、
値y2’’を計算させ、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
値y3’’を計算させ、ただし、y3’’=y2’’−(x3’’>>11);
値(x3’’*δ)=y2’’+(y3’’>>1)を計算させ;
x3’’からy2’’を差し引くことによって、値(x3’’*γ)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x3’’と値δを乗算することによる前記値(x3’’*δ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x3’’と値γを乗算することによる前記値(x3’’*γ)を計算させる、
また、前記プログラマブルプロセッサに、
値y2’’’を計算させ、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
値y3’’’を計算させ、ただし、y3’’’=y2’’’−(x5’’>>11);
y2’’’と(y3’’’>>1)を加算することによって値(x5’’*δ)を計算させ;
x5’’からy2’’’を差し引くことによって、値(x5’’*γ)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x5’’と前記値γを乗算することによる前記値(x5’’*γ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x5’’と前記値δを乗算することによる前記値(x5’’*δ)を計算させる、
[58]に記載のコンピュータ可読メディア。
[60] 前記プログラマブルプロセッサに、
値y1を計算させ、ただし、y1=x2+(x2>>5);
値y2を計算させ、ただし、y2=y1>>2;
y2と(x2>>4)を加算することによって、値(x2*α)を計算させ;
y1からy2を差し引くことによって、値(x2*β)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x2に値βを乗算することによる前記値(x2*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x2に値αを乗算することによる前記値(x2*α)を計算させる、
また、前記プログラマブルプロセッサに、
値y1’を計算させ、ただし、y1’=x2+(x6>>5);
値y2’を計算させ、ただし、y2’=y1’>>2;
y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算させ;
y1’からy2’を差し引くことによって、値(x6*β)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x6に値βを乗算することによる前記値(x6*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x6に値αを乗算することによる値(x6*α)を計算させる、
また、前記プログラマブルプロセッサに、
値y1’’を計算させ、ただし、y1’’=x2’’+(x2’’>>5);
値y2’’を計算させ、ただし、y2’’=y1’’>>2;
y2’’と(x2’’>>4)を加算することによって、値(x2’’*α)を計算させ;
y1’’からy2’’を差し引くことによって、値(x2’’*β)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x2’’に値βを乗算することによる前記値(x2’’*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x2’’に値αを乗算することによる前記値(x2’’*α)を計算させる、
また、前記プログラマブルプロセッサに、
値y1’’’を計算させ、ただし、y1’’’=x6’’+(x6’’>>5);
値y2’’’を計算させ、ただし、y2’’’=y1’’’>>2;
y2’’’と(x6’’>>4)を加算することによって、値(x6’’*α)を計算させ;
y1’’’からy2’’’を差し引くことによって、値(x6’’*β)を計算させる;
ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x6’’と値βを乗算することによる前記値(x6’’*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x6’’と値αを乗算することによる前記値(x6’’*α)を計算させる、
[58]に記載のコンピュータ可読メディア。
[61] 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、[56]に記載のコンピュータ可読メディア。
[62] Pは10に等しい、[61]に記載の方法。
[63] 前記インストラクションは、さらに、前記プロセッサに、符号化された係数の前記マトリクスを含むメディアファイルを受信させる、[51]に記載のコンピュータ可読メディア。
[64] 前記インストラクションは、さらに、前記プロセッサに、前記マトリクスのDC係数に中間バイアス項を加えさせ、前記中間バイアス値項は、2の12乗と等しい、[51]に記載のコンピュータ可読メディア。
[65] 前記インストラクションは、前記プロセッサに、
ピクセルコンポーネントのマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける各係数を右シフトさせ、そして 前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成させる、[51]に記載のコンピュータ可読メディア。
[66] 乗算あるいは除算の演算を使用することなく、前記プロセッサに、前記符号化された係数のマトリクスにおける前記係数をスケーリングさせることによって、前記インストラクションは、前記プロセッサに、前記符号化された係数をスケーリングさせる、[51]に記載のコンピュータ可読メディア。

Claims (66)

  1. スケーリングモジュールがスケール化された係数のマトリクスを作成するために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、又はファクタ但し、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である)のうちの各々によって8×8マトリクスの符号化係数の各係数をスケーリングすることと、
    逆変換モジュールが前記スケール化係数のマトリクスを、変換された係数のマトリクスへと変換するために、固定小数点スケール化された一次元変換の繰り返し適用を使用することと;
    右シフトモジュールが調節された係数のマトリクスを作成するために、前記変換された係数のマトリクスにおける変換係数を右シフトすることと;
    出力モジュールが8×8のピクセルのブロックを表示することと;を含み、
    前記調節された係数のマトリクスにおける各調節された係数は、理想的な二次元逆離散コサイン変換(IDCT)を前記符号化係数のマトリクスに適用することによって生成されるであろう値マトリクスにおける対応する値に近似し、前記8×8のピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける1つの調節された係数に基づいたピクセルコンポーネント値を含んでいる、方法。
  2. 前記固定小数点スケール化された一次元変換繰り返し適用を使用することは、
    中間係数のマトリクスを作るために、前記スケール化された係数のマトリクスの各行ベクトルに対して前記固定小数点スケール化された一次元変換を適用することと、
    前記変換された係数のマトリクスを作るために、前記中間係数のマトリクスの各列ベクトルに対して前記固定小数点スケール化された一次元変換を適用することと、
    を備える、
    請求項1に記載の方法。
  3. 前記8×8のピクセルのブロックを表示することは、ビデオシーケンスにおけるビデオフレームの一部として、前記8×8のピクセルのブロックを表示することを備える、請求項1に記載の方法。
  4. 前記8×8のピクセルのブロックを表示することは、静止画像の一部として、前記8×8のピクセルのブロックを表示することを備える、請求項1に記載の方法。
  5. 前記の係数のマトリクスにおける係数をスケーリングすることは、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングすることと、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングすることと、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングすることと、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングすることと、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングすることと、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングすることと、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングすることと、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングすることと、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングすることと、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングすることと、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングすることと、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングすることと、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングすることと、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングすることと、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングすることと、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングすることと、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングすることと、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングすることと、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングすることと、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングすることと、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングすることと、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングすることと、
    を備える、
    請求項1に記載の方法。
  6. 前記変換を行ベクトルあるいは列ベクトルのいずれかに対して適用することは、
    x0とx4を加算することによって、値x0’を計算することと;
    x0と−x4を加算することによって、値x4’を計算することと;
    x2に値αを乗算することによって、値(x2*α)を計算することと;
    x6に値βを乗算することによって、値(x6*β)を計算することと;
    x2に前記値βを乗算することによって、値(x2*β)を計算することと;
    x6に値αを乗算することによって、値(x6*α)を計算することと;
    (x2*α)と−(x6*β)を加算することによって、値x2’を計算することと;
    (x6*α)と(x2*β)を加算することによって、値x6’を計算することと;
    x0’とx6’を加算することによって、値x0’’を計算することと;
    x4’とx2’を加算することによって、値x4’’計算することと;
    x4’と−x2’を加算することによって、値x2’’を計算することと;
    x0’と−x6’を加算することによって、値x6’’を計算することと;
    x1と−x7を加算することによって、値x7’を計算することと;
    x1とx7を加算することによって、値x1’を計算することと;
    x3と2の平方根を乗算することによって、値x3’を計算することと;
    x5と2の平方根を乗算することによって、値x5’を計算することと;
    x7’とx5’を加算することによって、値x7’’を計算することと;
    x1’と−x3’を加算することによって、値x3’’を計算することと;
    x7と−x5’を加算することによって、値x5’’を計算することと;
    x3’とx1’を加算することによって、値x1’’を計算することと;
    x7’’に値εを乗算することによって、値(x7’’*ε)を計算することと;
    x7’’に値ζを乗算することによって、値(x7’’*ζ)を計算することと;
    x3’’に値γを乗算することによって、値(x3’’*γ)を計算することと;
    x3’’に値δを乗算することによって、値(x3’’*δ)を計算することと;
    x5’’に前記値δを乗算することによって、値(x5’’*δ)を計算することと;
    x5’’に前記値γを乗算することによって、値(x5’’*γ)を計算することと;
    x1’’に前記値ζを乗算することによって、値(x1’’*ζ)を計算することと;
    x1’’に前記値εを乗算することによって、値(x1’’*ε)を計算することと;
    (x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算することと;
    (x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算することと;
    (x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算することと;
    (x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算することと;
    x7’’’とx0’’を加算することによって、値X0を計算することと;
    x4’’とx5’’’を加算することによって、値X1を計算すること;
    x2’’とx3’’’を加算することによって、値X2を計算することと;
    x6’’とx7’’’を加算することによって、値X3を計算することと;
    x6’’と−x1’’’を加算することによって、値X4を計算することと;
    x2’’と−x3’’’を加算することによって、値X5を計算することと;
    x4’’と−x5’’’を加算することによって、値X6を計算することと;
    x0’’と−x1’’’を加算することによって、値X7を計算することと;
    を備え、
    x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルあるいは列ベクトルにおいて係数であり、
    X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
    α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
    請求項に記載の方法。
  7. 前記固定小数点スケール化された一次元変換の繰り返し適用を使用することは、乗算あるいは除算の演算を使用することなく、前記行ベクトルのうちの1つあるいは前記列ベクトルのうちの1つにおける係数に対して前記変換を適用すること、を備える、請求項6に記載の方法。
  8. x1と前記値εを乗算することによる値(x1*ε)を計算することと、x1と前記値ζによる前記値(x1*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
    値y1を計算することと、ただし、y1=(x1>>9)−x1);
    1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算することと;
    (y1>>2)からy1を差し引くことによって前記値(x1*ε)を計算することと;
    を実行することを備え、
    x7と前記値εを乗算することによる値(x7*ε)を計算することと、x7と前記値ζによる前記値(x7*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
    値y1’を計算することと、ただし、y1’=(x7>>9)−x7;
    1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算することと;
    (y1’>>2)からy1’を差し引くことによって前記値(x7*ε)を計算することと;
    を実行することを備え、
    x1’’と前記値εを乗算することによる値(x1’’*ε)を計算することと、x1’’と前記値ζによる前記値(x1’’*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
    値y1’’を計算することと、ただし、y1’’=(x1’’>>9)−x1’’);
    1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算することと;
    (y1’’>>2)からy1’’を差し引くことによって前記値(x1’’*ε)を計算することと;
    を実行することを備え、
    x7’’と前記値εを乗算することによる値(x7’’*ε)を計算することと、x7’’と前記値ζによる前記値(x7’’*ζ)を計算することは、次のシーケンスの算術演算、すなわち、
    値y1’’’を計算することと、ただし、y1’’’=(x7’’>>9)−x7’’;
    1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算することと;
    (y1’’’>>2)からy1’’’を差し引くことによって前記値(x7’’*ε)を計算することと;
    を実行することを備える、
    請求項7に記載の方法。
  9. x3と値γを乗算することによる値(x3*γ)を計算することと、x3と値δを乗算することによる値(x3*δ)を計算することとは、次のシーケンスの演算、すなわち、
    値y2を計算することと、ただし、y2=(x3>>3)−(x3>>7);
    値y3を計算することと、ただし、y3=y2−(x3>>11);
    前記値(x3*δ)=y2+(y3>>1)を計算することと;
    x3からy2を差し引くことによって、前記値(x3*γ)を計算することと;
    を実行することを備えており、
    x5と前記値δを乗算することによる値(x5*δ)を計算することと、x5と前記値γを乗算することによる値(x5*γ)を計算することとは、次のシーケンスの演算、すなわち、
    値y2’を計算することと、ただし、y2’=(x5>>3)−(x5>>7);
    値y3’を計算することと、ただし、y3’=y2’−(x5>>11);
    y2’と(y3’>>1)を加算することによって、前記値(x5*δ)を計算することと;
    x5からy2’を差し引くことによって、前記値(x5*γ)を計算することと;
    を実行することを備えており、
    x3’’と値γを乗算することによる値(x3’’*γ)を計算することと、x3’’と値δを乗算することによる値(x3’’*δ)を計算することとは、次のシーケンスの演算、すなわち、
    値y2’’を計算することと、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
    値y3’’を計算することと、ただし、y3’’=y2’’−(x3’’>>11);
    前記値(x3’’*δ)=y2’’+(y3’’>>1)を計算することと;
    x3’’からy2’’を差し引くことによって、前記値(x3’’*γ)を計算することと;
    を実行することを備えており、
    x5’’と前記値δを乗算することによる値(x5’’*δ)を計算することと、x5’’と前記値γを乗算することによる値(x5’’*γ)を計算することとは、次のシーケンスの演算、すなわち、
    値y2’’’を計算することと、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
    値y3’’’を計算することと、ただし、y3’’’=y2’’’−(x5’’>>11);
    y2’’’と(y3’’’>>1)を加算することによって前記値(x5’’*δ)を計算することと;
    x5’’からy2’’’を差し引くことによって、前記値(x5’’*γ)を計算することと;
    を実行することを備える、
    請求項7に記載の方法。
  10. x2に値αを乗算することによる値(x2*α)を計算することと、x2に値βを乗算することによる値(x2*β)を計算することとは、次のシーケンスの演算、すなわち、
    値y1を計算することと、ただし、y1=x2+(x2>>5);
    値y2を計算することと、ただし、y2=y1>>2;
    y2と(x2>>4)を加算することによって、前記値(x2*α)を計算することと;
    y1からy2を差し引くことによって、前記値(x2*β)を計算することと;
    を実行することを備えており、
    x6に値αを乗算することによる値(x6*α)を計算することと、x6に値βを乗算することによる値(x6*β)を計算することとは、次のシーケンスの演算、すなわち、
    値y1’を計算することと、ただし、y1’=x2+(x6>>5);
    値y2’を計算することと、ただし、y2’=y1’>>2;
    y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算することと;
    y1’からy2’を差し引くことによって、前記値(x6*β)を計算することと;
    を実行することを備えており、
    x2’’に値αを乗算することによる値(x2’’*α)を計算することと、x2’’に値βを乗算することによる値(x2’’*β)を計算することとは、次のシーケンスの演算、すなわち、
    値y1’’を計算することと、ただし、y1’’=x2’’+(x2’’>>5);
    値y2’’を計算することと、ただし、y2’’=y1’’>>2;
    y2’’と(x2’’>>4)を加算することによって、前記値(x2’’*α)を計算することと;
    y1’’からy2’’を差し引くことによって、前記値(x2’’*β)を計算することと;
    を実行することを備えており、
    x6’’に値αを乗算することによる値(x6’’*α)を計算することと、x6’’に値βを乗算することによる値(x6’’*β)を計算することとは、次のシーケンスの演算、すなわち、
    値y1’’’を計算することと、ただし、y1’’’=x2+(x6’’>>5);
    値y2’’’を計算することと、ただし、y2’’’=y1’’’>>2;
    y2’’’と(x6’’>>4)を加算することによって、前記値(x6’’*α)を計算することと;
    y1’’’からy2’’’を差し引くことによって、前記値(x6’’*β)を計算することと;
    を実行することを備える、
    請求項7に記載の方法。
  11. 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の仮数部分においてPビットを含む前記固定小数点数を使用して、表される、請求項6に記載の方法。
  12. Pは10に等しい、請求項11に記載の方法。
  13. 前記方法は、前記係数のマトリクスを含むビットストリームを受け取ること、をさらに備える、請求項1に記載の方法。
  14. 前記方法は、中間バイアス項を前記マトリクスのDC係数に加算すること、をさらに備えており、また前記中間バイアス値項は、2の12乗に等しい、請求項1に記載の方法。
  15. 前記変換された係数のマトリックスの変換係数を右シフトすることは前記ピクセルコンポーネント値のマトリクスを生成するために、13個の位置だけ前記変換された係数のマトリクスにおける前記変換された係数の各係数を右シフトすること、を含み、
    前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおける前記ピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成すること、をさらに含む、請求項1に記載の方法。
  16. 前記8×8マトリクスの符号化された係数における各係数をスケーリングすることは、乗算あるいは除算の演算を使用することなく、前記符号化された係数のマトリクスにおける前記係数をスケーリングすること、を備える、請求項1に記載の方法。
  17. スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、前記符号化された係数の8×8マトリクスにおける各係数をスケーリングするスケーリングモジュールと、
    なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
    前記スケーリングされた係数のマトリクスを変換された係数のマトリクスに変換するために、固定小数点スケール化された一次元変換の繰り返し適用を使用する逆変換モジュールと;
    調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトする右シフトモジュールと、
    なお、前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに対して理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する;
    8×8のピクセルのブロックを出力する出力モジュールと、なお、前記ピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける調節された係数に基づいてピクセルコンポーネント値を含む;
    を備えるデバイス。
  18. 前記逆変換モジュールは、中間係数のマトリクスを作るために、前記固定小数点スケール化された一次元変換を、前記スケーリングされた係数のマトリクスの各行ベクトルに対して適用し、変換された係数のマトリクスを作るために、前記固定小数点スケール化された一次元変換を、前記中間係数のマトリクスの各列ベクトルに対して適用する、請求項17に記載のデバイス。
  19. 前記出力モジュールは、前記8×8のピクセルのブロックを、ビデオシーケンスにおけるビデオの一部として、表示している、請求項17に記載の装置。
  20. 前記出力モジュールは、前記8×8のピクセルのブロックを、静止画像の一部として表示している、請求項19に記載の装置。
  21. 前記スケーリングモジュールは、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングし、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングし、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングし、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングし、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングし、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングし、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングし、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングし、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングし、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングし、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングし、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングし、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングし、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングし、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングし、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングし、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングし、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングし、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングし、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングし、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングし、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングする、
    請求項17に記載のデバイス。
  22. 前記逆変換モジュールは、
    x0とx4を加算することによって、値x0’を計算することと;
    x0と−x4を加算することによって、値x4’を計算することと;
    x2に値αを乗算することによって、値(x2*α)を計算することと;
    x6に値βを乗算することによって、値(x6*β)を計算することと;
    x2に前記値βを乗算することによって、値(x2*β)を計算することと;
    x6に値αを乗算することによって、値(x6*α)を計算することと;
    (x2*α)と−(x6*β)を加算することによって、値x2’を計算することと;
    (x6*α)と(x2*β)を加算することによって、値x6’を計算することと;
    x0’とx6’を加算することによって、値x0’’を計算することと;
    x4’とx2’を加算することによって、値x4’’計算することと;
    x4’と−x2’を加算することによって、値x2’’を計算することと;
    x0’と−x6’を加算することによって、値x6’’を計算することと;
    x1および−x7を加算することによって、値x7’を計算することと;
    x1とx7を加算することによって、値x1’を計算することと;
    x3と2の平方根を乗算するとによって、値x3’を計算することと;
    x5と2の平方根を乗算するとによって、値x5’を計算することと;
    x7’とx5’を加算することによって、値x7’’を計算することと;
    x1’と−x3’を加算することによって、値x3’’を計算することと;
    x7’と−x5’を加算することによって、値x5’’を計算することと;
    x3’とx1’を加算することによって、値x1’’を計算することと;
    x7’’と値εを乗算することによって、値(x7’’*ε)を計算することと;
    x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算することと;
    x3’’と値γを乗算することによって、値(x3’’*γ)を計算することと;
    x3’’と値δを乗算することによって、値(x3’’*δ)を計算することと;
    x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算することと;
    x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算することと;
    x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算することと;
    x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算することと;
    (x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算することと;
    (x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算することと;
    (x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算することと;
    (x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算することと;
    x7’’’とx0を加算することによって、値X0を計算することと;
    x4’’とx5’’’を加算することによって、値X1を計算すること;
    x2’’とx3’’’を加算することによって、値X2を計算することと;
    x6’’とx7’’’を加算することによって、値X3を計算することと;
    x6’’と−x1’’’を加算することによって、値X4を計算することと;
    x2’’と−x3’’’を加算することによって、値X5を計算することと;
    x4’’と−x5’’’を加算することによって、値X6を計算することと;
    x0’’と−x1’’’を加算することによって、値X7を計算することと;
    によって、行ベクトルあるいは列ベクトルに対して前記変換を適用し、
    x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおける係数であり、
    X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
    α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
    請求項18に記載のデバイス。
  23. 前記逆変換モジュールは、乗算あるいは除算演算を使用することなく、前記変換を前記係数のマトリクスに対して適用する、請求項22に記載のデバイス。
  24. 前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
    値y1を計算することと、ただし、y1=(x1>>9)−x1;
    1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算することと;
    (y1>>2)からy1を差し引くことによって、値(x1*ε)を計算することと;
    を実行することによって、x1と前記値ζによる前記値(x1*ζ)を計算し、x1と前記値εを乗算することによる前記値(x1*ε)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
    値y1’を計算することと、ただし、y1’=(x7>>9)−x7;
    1つの位置だけx7を右シフトすることによって、前記値(x7*ζ)を計算することと;
    (y1’>>2)からy1’を差し引くことによって、値(x7*ε)を計算することと;
    を実行することによって、x7と前記値ζによる前記値(x7*ζ)を計算し、x7と前記値εを乗算することによる前記値(x7*ε)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
    値y1’’を計算することと、ただし、y1’’=(x1’’>>9)−x1’’;
    1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算することと;
    (y1’’>>2)からy1’’を差し引くことによって、値(x1’’*ε)を計算することと;
    を実行することによって、x1’’と前記値ζによる前記値(x1’’*ζ)を計算し、x1’’と前記値εを乗算することによる前記値(x1’’*ε)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの算術演算、すなわち、
    値y1’’’を計算することと、ただし、y1’’’=(x7’’>>9)−x7’’;
    1つの位置だけx7’’を右シフトすることによって、前記値(x7’’*ζ)を計算することと;
    (y1’’’>>2)からy1’’’を差し引くことによって、値(x7’’*ε)を計算することと;
    を実行することによって、x7’’と前記値ζによる前記値(x7’’*ζ)を計算する、x7’’と前記値εを乗算することによる前記値(x7’’*ε)を計算する、
    請求項23に記載のデバイス。
  25. 前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y2を計算することと、ただし、y2=(x3>>3)−(x3>>7);
    値y3を計算することと、ただし、y3=y2−(x3>>11);
    値(x3*δ)=y2+(y3>>1)を計算することと;
    x3からy2を差し引くことによって、値(x3*γ)を計算することと;
    を実行することによって、x3と値δを乗算することによる前記値(x3*δ)を計算し、x3と値γを乗算することによる前記値(x3*γ)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y2’を計算することと、ただし、y2’=(x5>>3)−(x5>>7);
    値y3’を計算することと、ただし、y3’=y2’−(x5>>11);
    y2’と(y3’>>1)を加算することによって、値(x5*δ)を計算することと;
    x5からy2’を差し引くことによって、値(x5*γ)を計算することと;
    を実行することによって、x5と前記値γを乗算することによる前記値(x5*γ)を計算し、x5と前記値δを乗算することによる前記値(x5*δ)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y2’’を計算することと、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
    値y3’’を計算することと、ただし、y3’’=y2’’−(x3’’>>11);
    値(x3’’*δ)=y2’’+(y3’’>>1)を計算することと;
    x3’’からy2’’を差し引くことによって、値(x3’’*γ)を計算することと;
    を実行することによって、x3’’と値δを乗算することによる前記値(x3’’*δ)を計算し、x3’’と値γを乗算することによる前記値(x3’’*γ)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y2’’’を計算することと、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
    値y3’’’を計算することと、ただし、y3’’’=y2’−(x5’’>>11);
    y2’’’と(y3’’’>>1)を加算することによって値(x5’’*δ)を計算することと;
    x5’’からy2’’’を差し引くことによって、値(x5’’*γ)を計算することと;
    を実行することによって、x5’’と前記値γを乗算することによる前記値(x5’’*γ)を計算し、x5’’と前記値δを乗算することによる前記値(x5’’*δ)を計算する、
    請求項23に記載のデバイス。
  26. 前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y1を計算することと、ただし、y1=x2+(x2>>5);
    値y2を計算することと、ただし、y2=y1>>2;
    y2と(x2>>4)を加算することによって、前記値(x2*α)を計算することと;
    y1からy2を差し引くことによって、前記値(x2*β)を計算することと;
    を実行することによって、x2に前記値βを乗算することによる前記値(x2*β)を計算し、x2に値αを乗算することによる前記値(x2*α)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y1’を計算することと、ただし、y1’=x6+(x6>>5);
    値y2’を計算することと、ただし、y2’=y1’>>2;
    y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算することと;
    y1’からy2’を差し引くことによって、前記値(x6*β)を計算することと;
    を実行することによって、x6に前記値βを乗算することによる前記値(x6*β)を計算し、x6に値αを乗算することによる前記値(x6*α)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y1’’を計算することと、ただし、y1’’=x2’’+(x2’’>>5);
    値y2’’を計算することと、ただし、y2’’=y1’’>>2;
    y2’’と(x2’’>>4)を加算することによって、値(x2’’*α)を計算することと;
    y1’’からy2’’を差し引くことによって、値(x2’’*β)を計算することと;
    を実行することによって、x2’’に値βを乗算することによる前記値(x2’’*β)を計算し、x2’’に値αを乗算することによる前記値(x2’’*α)を計算する、
    また、前記逆変換モジュールは、次のシーケンスの演算、すなわち、
    値y1’’’を計算することと、ただし、y1’’’=x2+(x6’’>>5);
    値y2’’’を計算することと、ただし、y2’’’=y1’’’>>2;
    y2’’’と(x6’’>>4)を加算することによって、値(x6’’*α)を計算することと;
    y1’’’からy2’’’を差し引くことによって、値(x6’’*β)を計算することと;
    を実行することによって、x6’’と値βを乗算することによる前記値(x6’’*β)を計算し、x6’’と値αを乗算することによる前記値(x6’’*α)を計算する、
    請求項23に記載のデバイス。
  27. 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、請求項22に記載のデバイス。
  28. Pは10に等しい、請求項27に記載のデバイス。
  29. 前記デバイスは、前記符号化された係数のマトリクスが導き出されるデータを受け取る、ネットワークインタフェースを備える、請求項17に記載のデバイス。
  30. 前記デバイスは、DC係数に対して中間バイアス項を加算する係数バイアシングモジュールを備えており、前記中間バイアス項が2の12乗に等しい、請求項17に記載のデバイス。
  31. 前記右シフトモジュールは前記ピクセルコンポーネント値のマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける前記変換された係数の各係数を右シフトし、
    前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおける前記ピクセルコンポーネント値を組み込むことによって、前記ピクセルのブロックを構成するピクセル再構成モジュール、をさらに備える、請求項17に記載のデバイス。
  32. 前記デバイスは、前記ピクセルのブロックを表示するメディアプレゼンテーションユニット、をさらに備える、請求項17に記載の装置。
  33. 前記スケーリングモジュールは、乗算あるいは除算の演算を使用することなく、前記係数をスケーリングする、請求項17に記載のデバイス。
  34. スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJのうちの1つによって、符号化された係数の8×8マトリクスにおける各係数をスケーリングするための手段と、
    なお、A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である;
    前記スケーリングされた係数のマトリクスを変換された係数のマトリクスへと変換するために、固定小数点スケール化された一次元変換の繰り返し適用を使用するための手段と;
    調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトするための手段と、
    なお、前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに対して理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似する;
    8×8のピクセルのブロックを表示するための手段と、なお、前記のピクセルのブロックにおける各ピクセルは、調節された係数の前記マトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含んでいる;
    を備えるデバイス。
  35. 前記固定小数点スケール化された一次元変換を繰り返して適用するための前記手段は、
    中間係数のマトリクスを作るために、前記固定小数点スケール化された一次元変換をスケーリングされた係数の前記マトリクスの各行ベクトルに対して適用することと、
    変換された係数のマトリクスを作るために、前記固定小数点スケール化された一次元変換をスケーリングされた係数の前記マトリクスの各列ベクトルに対して適用することと、
    を備える、
    請求項34に記載のデバイス。
  36. 前記8×8のピクセルのブロックを出力するための前記手段は、前記8×8のピクセルのブロックを、ビデオシーケンスにおけるビデオフレームの一部として、表示すること、を備える、請求項34に記載のデバイス。
  37. 前記8×8のピクセルのブロックを出力するための前記手段は、前記8×8のピクセルのブロックを、静止画像の一部として、表示する、請求項34に記載のデバイス。
  38. 係数をスケーリングするための前記手段は、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングするための手段と、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングするための手段と、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングするための手段と、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングするための手段と、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングするための手段と、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングするための手段と、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングするための手段と、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングするための手段と、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングするための手段と、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングするための手段と、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングするための手段と、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングするための手段と、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングするための手段と、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングするための手段と、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングするための手段と、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングするための手段と、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングするための手段と、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングするための手段と、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングするための手段と、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングするための手段と、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングするための手段と、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングするための手段と、
    を備える、
    請求項34に記載のデバイス。
  39. 前記変換を適用するための前記手段は、
    x0とx4を加算することによって、値x0’を計算するための手段と;
    x0と−x4を加算することによって、値x4’を計算するための手段と;
    x2に値αを乗算することによって、値(x2*α)を計算するための手段と;
    x6に値βを乗算することによって、値(x6*β)を計算するための手段と;
    x2に前記値βを乗算することによって、値(x2*β)を計算するための手段と;
    x6に値αを乗算することによって、値(x6*α)を計算するための手段と;
    (x2*α)と−(x6*β)を加算することによって、値x2’を計算するための手段と;
    (x6*α)と(x2*β)を加算することによって、値x6’を計算するための手段と;
    x0’とx6’を加算することによって、値x0’’を計算するための手段と;
    x4’とx2’を加算することによって、値x4’’計算するための手段と;
    x4’と−x2’を加算することによって、値x2’’を計算するための手段と;
    x0’と−x6’を加算することによって、値x6’’を計算するための手段と;
    x1および−x7を加算することによって、値x7’を計算するための手段と;
    x1とx7を加算することによって、値x1’を計算するための手段と;
    x3と2の平方根を乗算するとによって、値x3’を計算するための手段と;
    x5と2の平方根を乗算するとによって、値x5’を計算するための手段と;
    x7’とx5’を加算することによって、値x7’’を計算するための手段と;
    x1’と−x3’を加算することによって、値x3’’を計算するための手段と;
    x7’と−x5’を加算することによって、値x5’’を計算するための手段と;
    x3’とx1’を加算することによって、値x1’’を計算するための手段と;
    x7’’と値εを乗算することによって、値(x7’’*ε)を計算するための手段と;
    x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算するための手段と;
    x3’’と値γを乗算することによって、値(x3’’*γ)を計算するための手段と;
    x3’’と値δを乗算することによって、値(x3’’*δ)を計算するための手段と;
    x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算するための手段と;
    x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算するための手段と;
    x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算するための手段と;
    x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算するための手段と;
    (x7’’*ε)と―(x1’’*ζ)を加算することによって、値x7’’’を計算するための手段と;
    (x3’’*γ)と―(x5’’*δ)を加算することによって、値x3’’’を計算するための手段と;
    (x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算するための手段と;
    (x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算するための手段と;
    x7’’’とx0’’を加算することによって、値X0を計算するための手段と;
    x4’’とx5’’’を加算することによって、値X1を計算するための手段と;
    x2’’とx3’’’を加算することによって、値X2を計算するための手段と;
    x6’’とx7’’’を加算することによって、値X3を計算するための手段と;
    x6’’と−x1’’’を加算することによって、値X4を計算するための手段と;
    x2’’と−x3’’’を加算することによって、値X5を計算するための手段と;
    x4’’と−x5’’’を加算することによって、値X6を計算するための手段と;
    x0’’と−x1’’’を加算することによって、値X7を計算するための手段と;
    を備え、
    x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおいて係数であり、
    X0,X1,X2,X3,X4,X5,X6,およびX7は、前記変換の出力値であり、
    α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
    請求項35に記載のデバイス。
  40. 前記変換の繰り返し適用を使用するための前記手段は、乗算あるいは除算の演算を使用することなく、前記係数のマトリクスへと前記変換を適用する、請求項39に記載のデバイス。
  41. x1と前記値εを乗算することによる値(x1*ε)を計算するための前記手段と、x1と前記値ζによる前記値(x1*ζ)を計算するための前記手段は、
    値y1を計算するための手段と、ただし、y1=(x1>>9)−x1);
    1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算するための手段と;
    (y1>>2)からy1を差し引くことによって前記値(x1*ε)を計算するための手段と;
    を備え、
    x7と前記値εを乗算することによる値(x7*ε)を計算するための前記手段と、x7と前記値ζによる前記(x7*ζ)を計算するための前記手段は、
    値y1’を計算するための手段と、ただし、y1’=(x7>>9)−x7;
    1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算するための手段と;
    (y1’>>2)からy1’を差し引くことによって前記値(x7*ε)を計算するための手段と;
    を備え、
    x1’’と前記値εを乗算することによる値(x1’’*ε)を計算するための前記手段と、x1’’と前記値ζによる前記値(x1’’*ζ)を計算するための前記手段は、
    値y1’’を計算するための手段と、ただし、y1’’=(x1’’>>9)−x1’’);
    1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算するための手段と;
    (y1’’>>2)からy1’’を差し引くことによって前記値(x1’’*ε)を計算するための手段と;
    を備え、
    x7’’と前記値εを乗算することによる値(x7’’*ε)を計算するための前記手段と、x7’’と前記値ζによる前記値(x7’’*ζ)を計算するための前記手段は、
    値y1’’’を計算するための手段と、ただし、y1’’’=(x7’’>>9)−x7’’;
    1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算するための手段と;
    (y1’’’>>2)からy1’’’を差し引くことによって前記値(x7’’*ε)を計算するための手段と;
    を備える、
    請求項40に記載のデバイス。
  42. x3と値γを乗算することによる値(x3*γ)を計算するための前記手段と、x3と値δを乗算することによる値(x3*δ)を計算するための前記手段は、
    値y2を計算するための手段と、ただし、y2=(x3>>3)−(x3>>7);
    値y3を計算するための手段と、ただし、y3=y2−(x3>>11);
    前記値(x3*δ)=y2+(y3>>1)を計算するための手段と;
    x1からy2を差し引くことによって、前記値(x3*γ)を計算するための手段と;
    を備え、
    x5と前記値δを乗算することによる値(x5*δ)を計算するための前記手段と、x5と前記値γを乗算することによる値(x5*γ)を計算するための前記手段は、
    値y2’を計算するための手段と、ただし、y2’=(x5>>3)−(x5>>7);
    値y3’を計算するための手段と、ただし、y3’=y2’−(x5>>11);
    y2’と(y3’>>1)を加算することによって、前記値(x5*δ)を計算するための手段と;
    x7からy2’を差し引くことによって、前記値(x5*γ)を計算するための手段と;
    を備え、
    x3’’と値γを乗算することによる値(x3’’*γ)を計算するための前記手段と、x3’’と値δを乗算することによる値(x3’’*δ)を計算するための前記手段は、
    値y2’’を計算するための手段と、ただし、y2’’=(x1’’>>3)−(x1’’>>7);
    値y3’’を計算するための手段と、ただし、y3’’=y2’’−(x1’’>>11);
    前記値(x1’’*δ)=y2’’+(y3’’>>1)を計算するための手段と;
    x1’’からy2’’を差し引くことによって、前記値(x1’’*γ)を計算するための手段と;
    を備え、
    x5’’と前記値δを乗算することによる値(x5’’*δ)を計算するための前記手段と、x5’’と前記値γを乗算することによる値(x5’’*γ)をするための前記手段は、
    値y2’’’を計算するための手段と、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
    値y3’’’を計算するための手段と、ただし、y3’’’=y2’’’−(x5’’>>11);
    y2’’’と(y3’’’>>1)を加算することによって前記値(x5’’*δ)を計算するための手段と;
    x5’’からy2’’’を差し引くことによって、前記値(x5’’*γ)を計算するための手段と;
    を備える、
    請求項40に記載のデバイス。
  43. x2に値αを乗算することによる前記値(x2*α)を計算するための前記手段と、x2に前記値βを乗算することによる前記値(x2*β)を計算するための前記手段は、
    値y1を計算するための手段と、ただし、y1’=x2+(x2>>5);
    値y2を計算するための手段と、ただし、y2=y1>>2;
    y2と(x2>>4)を加算することによって、前記値(x2*α)を計算するための手段と;
    y1からy2を差し引くことによって、前記値(x2*β)を計算するための手段と;
    を備え、
    x6に値αを乗算することによる前記値(x6*α)を計算するための前記手段と、x6に前記値βを乗算することによる前記値(x6*β)を計算するための前記手段は、
    値y1’を計算するための手段と、ただし、y1’=x6+(x6>>5);
    値y2’を計算するための手段と、ただし、y2’=y1’>>2;
    y2’と(x6>>4)を加算することによって、前記値(x2*α)を計算するための手段と;
    y1’からy2’を差し引くことによって、前記値(x2*β)を計算するための手段と;
    を備え、
    x2’’に値αを乗算することによる値(x2’’*α)を計算するための前記手段と、x2’’に値βを乗算することによる値(x2’’*β)を計算するための前記手段は、
    値y1’’を計算するための手段と、ただし、y1’’=x2’’+(x2’’>>5);
    値y2’’を計算するための手段と、ただし、y2’’=y1’’>>2;
    y2’’と(x2’’>>4)を加算することによって、前記値(x2’’*α)を計算するための手段と;
    y1’’からy2’’を差し引くことによって、前記値(x2’’*β)を計算するための手段と;
    を備え、
    x6’’と値αを乗算することによる値(x6’’*α)を計算するための前記手段と、x6’’と値βを乗算することによる値(x6’’*β)を計算するための前記手段は、
    値y1’’’を計算するための手段と、ただし、y1’’’=x2+(x6’’>>5);
    値y2’’’を計算するための手段と、ただし、y2’’’=y1’’’>>2;
    y2’’’と(x6’’>>4)を加算することによって、前記値(x6’’*α)を計算するための手段と;
    y1’’’からy2’’’を差し引くことによって、前記値(x6’’*β)を計算するための手段と;
    を備える、
    請求項40に記載のデバイス。
  44. 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、請求項39に記載のデバイス。
  45. Pは10に等しい、請求項44に記載のデバイス
  46. 前記デバイスは、前記符号化された係数のマトリクスが導き出される、メディアファイルを受け取るための手段、を備える、請求項34に記載のデバイス。
  47. 前記デバイスは、中間バイアス項をDC係数に加算するための手段、をさらに備えており、また、前記中間バイアス値項は、2の12乗に等しい、請求項34に記載のデバイス。
  48. 前記変換された係数のマトリクスにおける変換された係数を右シフトするための手段は前記ピクセルコンポーネントのマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける前記変換された係数の各係数を右シフトするための手段により構成され、
    前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値の前記マトリクスにおける前記ピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成するための手段をさらに備える、
    請求項34に記載のデバイス。
  49. 前記デバイスは、前記ピクセルのブロックを表示するための手段、をさらに備える、請求項34に記載のデバイス。
  50. 前記係数をスケーリングするための前記手段は、乗算あるいは除算の演算を使用することなく、スケーリングする、請求項34に記載のデバイス。
  51. 実行されたときに、プログラマブルプロセッサに、
    符号化された係数の8×8マトリクスを受信させ、
    スケーリングされた係数のマトリクスを作るために、ファクタA、ファクタB、ファクタC、ファクタD、ファクタE、ファクタF、ファクタG、ファクタH、ファクタI、あるいはファクタJ(A=1024、B=1138、C=1730、D=1609、E=1264、F=1922、G=1788、H=2923、I=2718、そしてJ=2528である)のうちの1つによって、前記符号化された係数の8×8マトリクスにおける各係数をスケーリングさせ、
    前記スケーリングされた係数のマトリクスを変換された係数のマトリクスへと変換するために、固定小数点スケール化された一次元変換の繰り返し適用を使用させ、
    調節された係数のマトリクスを作るために、前記変換された係数のマトリクスにおける変換された係数を右シフトさせ、
    ディスプレイユニットが8×8のピクセルのブロックを表示させる信号を出力させるインストラクションを記録し、
    前記調節された係数のマトリクスにおける各調節された係数は、前記符号化された係数のマトリクスに理想的な二次元逆離散コサイン変換(「IDCT」)を適用することによって作られるであろう値のマトリクスにおいて対応する値を近似し、前記ピクセルのブロックにおける各ピクセルは、前記調節された係数のマトリクスにおける調節された係数に基づいて、ピクセルコンポーネント値を含んでいる、
    コンピュータ読取り可能な記録媒体
  52. 前記プログラマブルプロセッサに前記固定小数点スケール化された一次元変換の繰り返し適用を使用させる、前記インストラクションは、前記プログラマブルプロセッサに、
    中間係数のマトリクスを作るために、前記スケーリングされた係数のマトリクスの各行ベクトルに対して前記変換を適用させ、
    変換された係数のマトリクスを作るために、前記中間係数のマトリクスの各列ベクトルに対して前記変換を適用させる、
    請求項51に記載のコンピュータ読取り可能な記録媒体
  53. 前記プログラマブルプロセッサに、前記ディスプレイユニットに前記8×8のピクセルのブロックを表示させる信号を、出力させる前記インストラクションは、前記プログラマブルプロセッサに、前記ディスプレイユニットにビデオシーケンスにおけるビデオフレームの一部として前記8×8のピクセルのブロックを表示させる信号を、出力させる、請求項51に記載のコンピュータ読取り可能な記録媒体
  54. 前記プログラマブルプロセッサが、前記ディスプレイユニットに前記8×8のピクセルのブロックを表示させる信号を、出力させる前記インストラクションは、前記プログラマブルプロセッサに、前記ディスプレイユニットに静止画像の一部として前記8×8のピクセルのブロックを表示させる信号を、出力させる、請求項51に記載のコンピュータ読取り可能な記録媒体
  55. 前記プロセッサに前記係数のマトリクスにおける前記係数をスケーリングさせる前記インストラクションは、前記プロセッサに、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,0]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,1]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,2]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,3]で係数をスケーリングさせ、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[0,4]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[0,5]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[0,6]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[0,7]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,0]で係数をスケーリングさせ、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,1]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,2]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,3]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[1,4]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[1,5]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[1,6]で係数をスケーリングさせ、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[1,7]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,0]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,1]で係数をスケーリングさせ、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,2]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,3]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[2,4]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[2,5]で係数をスケーリングさせ、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[2,6]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[2,7]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,0]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,1]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,2]で係数をスケーリングさせ、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,3]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[3,4]で係数をスケーリングさせ、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[3,5]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[3,6]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[3,7]で係数をスケーリングさせ、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,0]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,1]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,2]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,3]で係数をスケーリングさせ、
    前記ファクタAによって前記の符号化された係数のマトリクスの位置[4,4]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[4,5]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[4,6]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[4,7]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,0]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,1]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,2]で係数をスケーリングさせ、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,3]で係数をスケーリングさせ、
    前記ファクタDによって前記の符号化された係数のマトリクスの位置[5,4]で係数をスケーリングさせ、
    前記ファクタJによって前記の符号化された係数のマトリクスの位置[5,5]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[5,6]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[5,7]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,0]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,1]で係数をスケーリングさせ、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,2]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,3]で係数をスケーリングさせ、
    前記ファクタCによって前記の符号化された係数のマトリクスの位置[6,4]で係数をスケーリングさせ、
    前記ファクタIによって前記の符号化された係数のマトリクスの位置[6,5]で係数をスケーリングさせ、
    前記ファクタHによって前記の符号化された係数のマトリクスの位置[6,6]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[6,7]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,0]で係数をスケーリングさせ、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,1]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,2]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,3]で係数をスケーリングさせ、
    前記ファクタBによって前記の符号化された係数のマトリクスの位置[7,4]で係数をスケーリングさせ、
    前記ファクタGによって前記の符号化された係数のマトリクスの位置[7,5]で係数をスケーリングさせ、
    前記ファクタFによって前記の符号化された係数のマトリクスの位置[7,6]で係数をスケーリングさせ、
    前記ファクタEによって前記の符号化された係数のマトリクスの位置[7,7]で係数をスケーリングさせる、
    請求項51に記載のコンピュータ読取り可能な記録媒体
  56. 前記プロセッサに行ベクトルあるいは列ベクトルのいずれかに前記変換を適用させる前記インストラクションは、前記プロセッサに、
    x0とx4を加算することによって、値x0’を計算させ;
    x0と−x4を加算することによって、値x4’を計算させ;
    x2に値αを乗算することによって、値(x2*α)を計算させ;
    x6に値βを乗算することによって、値(x6*β)を計算させ;
    x2に前記値βを乗算することによって、値(x2*β)を計算させ;
    x6に値αを乗算することによって、値(x6*α)を計算させ;
    (x2*α)と−(x6*β)を加算することによって、値x2’を計算させ;
    (x6*α)と(x2*β)を加算することによって、値x6’を計算させ;
    x0’とx6’を加算することによって、値x0’’を計算させ;
    x4’とx2’を加算することによって、値x4’’計算させ;
    x4’と−x2’を加算することによって、値x2’’を計算させ;
    x0’と−x6’を加算することによって、値x6’’を計算させ;
    x1と−x7を加算することによって、値x7’を計算させ;
    x1とx7を加算することによって、値x1’を計算させ;
    x3と2の平方根を乗算するとによって、値x3’を計算させ;
    x5と2の平方根を乗算するとによって、値x5’を計算させ;
    x7’とx5’を加算することによって、値x7’’を計算させ;
    x1’と−x3’を加算することによって、値x3’’を計算させ;
    x7’と−x5’を加算することによって、値x5’’を計算させ;
    x3’とx1’を加算することによって、値x1’’を計算させ;
    x7’’と値εを乗算することによって、値(x7’’*ε)を計算させ;
    x7’’と値ζを乗算することによって、値(x7’’*ζ)を計算させ;
    x3’’と値γを乗算することによって、値(x3’’*γ)を計算させ;
    x3’’と値δを乗算することによって、値(x3’’*δ)を計算させ;
    x5’’と前記値δを乗算することによって、値(x5’’*δ)を計算させ;
    x5’’と前記値γを乗算することによって、値(x5’’*γ)を計算させ;
    x1’’と前記値ζを乗算することによって、値(x1’’*ζ)を計算させ;
    x1’’と前記値εを乗算することによって、値(x1’’*ε)を計算させ;
    (x7’’*ε)と−(x1’’*ζ)を加算することによって、値x7’’’を計算させ;
    (x3’’*γ)と−(x5’’*δ)を加算することによって、値x3’’’を計算させ;
    (x5’’*γ)と(x3’’*δ)を加算することによって、値x5’’’を計算させ;
    (x1’’*ε)と(x7’’*ζ)を加算することによって、値x1’’’を計算させ;
    x7’’’とx0’’を加算することによって、値X0を計算させ;
    x4’’とx5’’’を加算することによって、値X1を計算させ;
    x2’’とx3’’’を加算することによって、値X2を計算させ;
    x6’’とx7’’’を加算することによって、値X3を計算させ;
    x6’’と−x1’’’を加算することによって、値X4を計算させ;
    x2’’と−x3’’’を加算することによって、値X5を計算させ;
    x4’’と−x5’’’を加算することによって、値X6を計算させ;
    x0’’と−x1’’’を加算することによって、値X7を計算させる;
    x0、x1、x2、x3、x4、x5、x6、x7は、行ベクトルおよび列ベクトルにおいて係数であり X1、X2、X3、X4、X5、X6およびX7は、前記変換の出力値であり、
    α=41/128、β=99/128、γ=113/128、δ=719/4096、ε=1533/2048、そしてζ=1/2である、
    請求項52に記載のコンピュータ読取り可能な記録媒体
  57. 前記インストラクションは、乗算あるいは除算の演算を使用しないで、前記プロセッサに前記行ベクトルのうちの1つあるいは前記列ベクトルのうちの1つにおける係数に対して前記変換を適用させることによって、前記プロセッサに前記変換を適用させる、請求項56に記載のコンピュータ読取り可能な記録媒体
  58. 前記プログラマブルプロセッサに、
    値y1を計算させ、ただし、y1=(x1>>9)−x1);
    1つの位置だけx3を右シフトすることによって、前記値(x1*ζ)を計算させ;
    (y1>>2)からy1を差し引くことによって値(x1*ε)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x1と前記値ζによる前記値(x1*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x1と前記値εを乗算することによる前記値(x1*ε)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y1’を計算させ、ただし、y1’=(x7>>9)−x7;
    1つの位置だけx7を右シフトすることによって前記値(x7*ζ)を計算させ;
    (y1’>>2)からy1’を差し引くことによって値(x7*ε)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x7と前記値ζによる前記値(x7*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x7と前記値εを乗算することによる前記値(x7*ε)を計算させる、
    また、前記インストラクションは、前記プログラマブルプロセッサに、
    値y1’’を計算させ、ただし、y1’’=(x1’’>>9)−x1’’);
    1つの位置だけx1’’を右シフトすることによって、前記値(x1’’*ζ)を計算させ;
    (y1’’>>2)からy1’’を差し引くことによって値(x1’’*ε)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x1’’と前記値ζによる前記値(x1’’*ζ)を計算させ、前記プログラマブルプロセッサに、x1’’と値εを乗算することによる前記値(x1’’*ε)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y1’’’を計算させ、ただし、y1’’’=(x7’’>>9)−x7’’;
    1つの位置だけx7’’を右シフトすることによって前記値(x7’’*ζ)を計算させ;
    (y1’’’>>2)からy1’’’を差し引くことによって値(x7’’*ε)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x7’’と前記値ζによる前記値(x7’’*ζ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x7’’と前記値εを乗算することによる前記値(x7’’*ε)を計算させる、
    請求項57に記載のコンピュータ読取り可能な記録媒体
  59. 前記プログラマブルプロセッサに、
    値y2を計算させ、ただし、y2=(x3>>3)−(x3>>7);
    値y3を計算させ、ただし、y3=y2−(x3>>11);
    値(x3*δ)=y2+(y3>>1)を計算させ;
    x3からy2を差し引くことによって、値(x3*γ)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x3と値δを乗算することによる前記値(x3*δ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x3と値γを乗算することによる前記値(x3*γ)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y2’を計算させ、ただし、y2’=(x5>>3)−(x5>>7);
    値y3’を計算させ、ただし、y3’=y2’−(x5>>11);
    y2’と(y3’>>1)を加算することによって、値(x5*δ)を計算させ;
    x5からy2’を差し引くことによって、値(x5*γ)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x5と前記値γを乗算することによる前記値(x5*γ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x5と前記値δを乗算することによる前記値(x5*δ)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y2’’を計算させ、ただし、y2’’=(x3’’>>3)−(x3’’>>7);
    値y3’’を計算させ、ただし、y3’’=y2’’−(x3’’>>11);
    値(x3’’*δ)=y2’’+(y3’’>>1)を計算させ;
    x3’’からy2’’を差し引くことによって、値(x3’’*γ)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x3’’と値δを乗算することによる前記値(x3’’*δ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x3’’と値γを乗算することによる前記値(x3’’*γ)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y2’’’を計算させ、ただし、y2’’’=(x5’’>>3)−(x5’’>>7);
    値y3’’’を計算させ、ただし、y3’’’=y2’’’−(x5’’>>11);
    y2’’’と(y3’’’>>1)を加算することによって値(x5’’*δ)を計算させ;
    x5’’からy2’’’を差し引くことによって、値(x5’’*γ)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x5’’と前記値γを乗算することによる前記値(x5’’*γ)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x5’’と前記値δを乗算することによる前記値(x5’’*δ)を計算させる、
    請求項58に記載のコンピュータ読取り可能な記録媒体
  60. 前記プログラマブルプロセッサに、
    値y1を計算させ、ただし、y1=x2+(x2>>5);
    値y2を計算させ、ただし、y2=y1>>2;
    y2と(x2>>4)を加算することによって、値(x2*α)を計算させ;
    y1からy2を差し引くことによって、値(x2*β)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x2に値βを乗算することによる前記値(x2*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x2に値αを乗算することによる前記値(x2*α)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y1’を計算させ、ただし、y1’=x2+(x6>>5);
    値y2’を計算させ、ただし、y2’=y1’>>2;
    y2’と(x6>>4)を加算することによって、前記値(x6*α)を計算させ;
    y1’からy2’を差し引くことによって、値(x6*β)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x6に値βを乗算することによる前記値(x6*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x6に値αを乗算することによる値(x6*α)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y1’’を計算させ、ただし、y1’’=x2’’+(x2’’>>5);
    値y2’’を計算させ、ただし、y2’’=y1’’>>2;
    y2’’と(x2’’>>4)を加算することによって、値(x2’’*α)を計算させ;
    y1’’からy2’’を差し引くことによって、値(x2’’*β)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x2’’に値βを乗算することによる前記値(x2’’*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x2’’に値αを乗算することによる前記値(x2’’*α)を計算させる、
    また、前記プログラマブルプロセッサに、
    値y1’’’を計算させ、ただし、y1’’’=x6’’+(x6’’>>5);
    値y2’’’を計算させ、ただし、y2’’’=y1’’’>>2;
    y2’’’と(x6’’>>4)を加算することによって、値(x6’’*α)を計算させ;
    y1’’’からy2’’’を差し引くことによって、値(x6’’*β)を計算させる;
    ことによって、前記インストラクションは、前記プログラマブルプロセッサに、x6’’と値βを乗算することによる前記値(x6’’*β)を計算させ、前記インストラクションは、前記プログラマブルプロセッサに、x6’’と値αを乗算することによる前記値(x6’’*α)を計算させる、
    請求項58に記載のコンピュータ読取り可能な記録媒体
  61. 前記値x0、x1、x2、x3、x4、x5、x6、x7、x0’、x1’、x2’、x3’、x4’、x5’、x6’、x7’、x0’’、x1’’、x2’’、x3’’、x4’’、x5’’、x6’’、x7’’、x1’’’、x3’’’、x5’’’、x7’’’、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7’’*ε)、(x7’’*ζ)、(x3’’*γ)、(x3’’*δ)、(x5’’*δ)、(x5’’*γ)、(x1’’*ζ)、そして、(x1’’*ε)は、前記固定小数点数の前記仮数部分においてPビットを含む固定小数点数を使用して、表される、請求項56に記載のコンピュータ読取り可能な記録媒体
  62. Pは10に等しい、請求項61に記載のコンピュータ読取り可能な記録媒体
  63. 前記インストラクションは、さらに、前記プロセッサに、符号化された係数の前記マトリクスを含むメディアファイルを受信させる、請求項51に記載のコンピュータ読取り可能な記録媒体
  64. 前記インストラクションは、さらに、前記プロセッサに、前記マトリクスのDC係数に中間バイアス項を加えさせ、前記中間バイアス値項は、2の12乗と等しい、請求項51に記載のコンピュータ読取り可能な記録媒体
  65. 前記インストラクションは、前記プロセッサに、
    ピクセルコンポーネントのマトリクスを生成するために、13個の位置だけ、前記変換された係数のマトリクスにおける前記変換係数の各係数を右シフトさせ、前記ピクセルのブロックにおけるピクセルに、前記ピクセルコンポーネント値のマトリクスにおけるピクセルコンポーネント値を組み込むことによって前記ピクセルのブロックを構成させる、請求項51に記載のコンピュータ読取り可能な記録媒体
  66. 乗算あるいは除算の演算を使用することなく、前記プロセッサに、前記符号化された係数のマトリクスにおける前記係数をスケーリングさせることによって、前記インストラクションは、前記プロセッサに、前記符号化された係数をスケーリングさせる、請求項51に記載のコンピュータ読取り可能な記録媒体
JP2009518523A 2006-06-26 2007-06-26 順方向および逆離散コサイン変換の効率的な固定小数点近似 Active JP5129248B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US81669706P 2006-06-26 2006-06-26
US60/816,697 2006-06-26
US84136206P 2006-08-30 2006-08-30
US60/841,362 2006-08-30
US84719406P 2006-09-25 2006-09-25
US60/847,194 2006-09-25
US82966906P 2006-10-16 2006-10-16
US60/829,669 2006-10-16
US86953006P 2006-12-11 2006-12-11
US60/869,530 2006-12-11
US88393207P 2007-01-08 2007-01-08
US60/883,932 2007-01-08
PCT/US2007/072169 WO2008005757A2 (en) 2006-06-26 2007-06-26 Efficient fixed-point approximations of forward and inverse discrete cosine transforms

Publications (2)

Publication Number Publication Date
JP2010505287A JP2010505287A (ja) 2010-02-18
JP5129248B2 true JP5129248B2 (ja) 2013-01-30

Family

ID=38828732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009518523A Active JP5129248B2 (ja) 2006-06-26 2007-06-26 順方向および逆離散コサイン変換の効率的な固定小数点近似

Country Status (8)

Country Link
EP (1) EP2089812A2 (ja)
JP (1) JP5129248B2 (ja)
KR (1) KR100963459B1 (ja)
CN (1) CN102037729B (ja)
BR (1) BRPI0713321B1 (ja)
CA (1) CA2654116C (ja)
TW (1) TWI336444B (ja)
WO (1) WO2008005757A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959780B (zh) * 2011-12-15 2017-10-13 寰发股份有限公司 量化电平截取装置及方法
KR101395143B1 (ko) 2013-06-13 2014-05-21 이노뎁 주식회사 영상처리의 정수변환 방법 및 정수변환 장치
US10432952B2 (en) * 2015-11-19 2019-10-01 Qualcomm Incorporated System and methods for fixed-point approximations in display stream compression (DSC)
US9870341B2 (en) * 2016-03-18 2018-01-16 Qualcomm Incorporated Memory reduction method for fixed point matrix multiply

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754456A (en) * 1996-03-05 1998-05-19 Intel Corporation Computer system performing an inverse cosine transfer function for use with multimedia information
KR20000013653A (ko) * 1998-08-12 2000-03-06 이종하 정/역 최적화 정수형 여현변환장치 및 그 방법
DE10116204A1 (de) * 2000-08-12 2002-02-21 Bosch Gmbh Robert Verfahren zur ganzzahligen Approximation von Transformationskoeffizienten sowie Coder und Decoder
WO2005032117A2 (en) * 2003-09-24 2005-04-07 Texas Instruments Incorporated 8x8 transform and quantization

Also Published As

Publication number Publication date
TWI336444B (en) 2011-01-21
TW200823694A (en) 2008-06-01
KR20090028736A (ko) 2009-03-19
KR100963459B1 (ko) 2010-06-17
CN102037729A (zh) 2011-04-27
EP2089812A2 (en) 2009-08-19
JP2010505287A (ja) 2010-02-18
BRPI0713321B1 (pt) 2018-12-04
CA2654116A1 (en) 2008-01-10
CN102037729B (zh) 2013-02-27
WO2008005757A3 (en) 2011-03-10
BRPI0713321A2 (pt) 2012-03-13
WO2008005757A2 (en) 2008-01-10
CA2654116C (en) 2013-04-02

Similar Documents

Publication Publication Date Title
KR100963458B1 (ko) 순이산 및 역이산 코사인 변환의 효율적인 고정 소수점 근사
JP5661836B2 (ja) 逆離散コサイン変換の計算中の誤差の低減
AU748947C (en) Method and apparatus for inverse quantization of MPEG-4 video
RU2439682C2 (ru) Уменьшение ошибок во время вычисления обратного дискретного косинусного преобразования
JP5129248B2 (ja) 順方向および逆離散コサイン変換の効率的な固定小数点近似
RU2417423C2 (ru) Эффективные аппроксимации с фиксированной запятой прямого и обратного дискретных косинусных преобразований
BRPI0712996A2 (pt) aproximações eficientes para ponto fixo de transformadas de co-seno discretas, diretas e inversas

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121101

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5129248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250