JP4515263B2 - 映像符号化のための低複雑性単一化変換 - Google Patents

映像符号化のための低複雑性単一化変換 Download PDF

Info

Publication number
JP4515263B2
JP4515263B2 JP2004540009A JP2004540009A JP4515263B2 JP 4515263 B2 JP4515263 B2 JP 4515263B2 JP 2004540009 A JP2004540009 A JP 2004540009A JP 2004540009 A JP2004540009 A JP 2004540009A JP 4515263 B2 JP4515263 B2 JP 4515263B2
Authority
JP
Japan
Prior art keywords
block
coefficient
coefficients
transform
vertical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004540009A
Other languages
English (en)
Other versions
JP2006516835A (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo 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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2006516835A publication Critical patent/JP2006516835A/ja
Application granted granted Critical
Publication of JP4515263B2 publication Critical patent/JP4515263B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation

Description

版権について
[0001] この特許文書の開示の一部分は、(版権又はマスクワーク)保護を受ける資料を含む。(版権又はマスクワークの)所有者は、誰かが特許文書又は特許開示を特許商標庁の特許ファイル又は記録に残るように複写することに異議を唱えるものではないが、それ以外は、全ての(版権又はマスクワークの)権利が保護されるものとする。
優先権
[0002] 本出願は、2002年9月26日に出願されたフランクJ.ボッセンの「Low Complexity and Unified Transforms For Video Coding」と題し、参照することによって本明細書に組み込まれた米国仮特許出願第60/413,819号に関する優先権を主張する。
発明の分野
[0003] 本発明は、映像符号化に関し、より詳細には、映像符号化のための低複雑性単一化変換に関する。
発明の背景
[0004] デジタルテレビジョン及びDVDビデオは、映像圧縮技術の標準化によって可能になっている。最近の規格ITU−T H.264(以下、H.264)は、新世代のアプリケーションを可能にしている。H.264規格は、コーデックを明確に定義するものではなく、この規格は、符号化映像ビットストリームのシンタックスを、ビットストリームの復号方法と共に定義する。
[0005] H.264規格に記載された方法に基づき復号可能な符号化映像ビットストリームを生成するプロセスの一部分として、エンコーダは、変換及び量子化を実行する。より詳細には、エンコーダは、データをマクロブロックに分割する。各マクロブロックは、変換され、量子化され、符号化される。以前の規格は、フローティングポイント係数を操作する基本変換として、8×8離散的コサイン変換(DCT)を使用していた。対照的に、H.264の草案(T.ウィガンド編集「Editor’s Proposed Draft Text Modifications for Joint Video Specification」(ITU−T Rec.H264|ISO/IEC14496−10AVC)、ドラフト7、セクション12.4.3)では、DCTのような4×4整数変換を使用するが、当該変換を多数の異なるブロックサイズ(4×4、4×8、8×4及び8×8)に適用することができる。変換段階からの係数は、量子化を受ける。量子化後に、量子化係数がエントロピー符号化される。
[0006] H.264の復号方法は、上述した符号化プロセスの逆である。より詳細には、符号化データは、エントロピー復号された後に、逆量子化及び逆変換の適用を受ける。より詳細には、H.264規格の初期の草案に記載されたように(JFCDを参照)、復号中に、量子化係数が2次元アレー(4×4、4×8、8×4又は8×8のいずれかのサイズの)へと編成された後に、逆量子化が適用される。逆量子化を実行した後に、係数に逆変換が、通常は最初に水平方向に、次いで垂直方向に適用される。最終的に、得られた値がスケーリングされる。4×8、8×4又は8×8のブロックサイズの場合には、水平方向の逆変換の適用と垂直方向の逆変換の適用との間に、付加的なスケーリング演算(operation)が実行される。
[0007] ブロックサイズ(例えば、4×4ブロック、4×8又は8×4ブロック及び8×8ブロック)に拘らず、同じ量子化パラメータ(QP)を使用して、エンコーダでどれほど微細に又は大まかに量子化が実行されたかを指示する。このQPは、通常、0と51との間の正の整数値である。一つの公知の実装では、例えば、参照することによって本明細書に組み込まれたT.ウィガンド編集「Joint Final Committee Draft (JFCD) of Joint Video Specification」(ITU−T Rec. H.264|ISO/IEC14496−10AVC)(以下、「ウィガンド」)に記載されているように、4×8、8×4及び8×8ブロックに対するQPは、12以上の値に制限される。それに説明されているように、アレーVと称されるアレーを使用して逆量子化が適用される。このアレーVは、三つの異なるブロックサイズのタイプ、即ち4×4ブロック、4×8又は8×4ブロック、及び8×8ブロックに対して異なる。
[0008] 4×4ブロック用のアレーVを図1Aに示す。各量子化係数c_ijに対して、係数w_ijは、アレーVを量子化係数のブロックに適用した結果として得られる。標準C言語の表記では次のように得られる。
w_ij=(c_ij*R_ij(QP % 6))<<(QP / 6)
ここで、R_ij(m)は、ijが{00,02,20,22}である場合に、V_m0に等しく、ijが{11,13,31,33}である場合に、V_m1に等しく、他の場合には、V_m2に等しい。ここで、V_mnは、アレーVのm番目の行及びn番目の列におけるエントリーである。
[0009] 8×4又は4×8のブロック用のアレーVを図1Bに示す。各量子化係数c_ijに対して、係数w_ijは、アレーVを量子化係数のブロックに適用した結果として、次のように得られる。
w_ij=(c_ij*R_ij(QP % 6))<<((QP / 6)-2)
ここで、R_ij(m)は、i(4×8ブロックの場合)又はj(8×4ブロックの場合)が{0,2}である場合に、V_m0に等しく、他の場合には、V_m1に等しい。
[0010] 8×8ブロック用のアレーVを図1Cに示す。各量子化係数c_ijに対して、係数w_ijは、アレーVを量子化係数のブロックに適用した結果として、次のように得られる。
w_ij=(c_ij*R_ij(QP % 6))<<((QP / 6)-2)
ここで、R_ij(m)は、V_mに等しい。
[0011] 逆量子化が実行された後に、逆変換が係数に対して実行される。H.264草案規格の一つの実装の一部分として、逆変換を係数に適用することは、水平方向変換を適用し、中間スケーリングを実行し、垂直方向変換を適用し、最終的なスケーリングを実行することを含む。通常、使用される逆変換は、分離可能な変換である。従って、通常、4及び8のサイズの2つの一次元変換がそれぞれ使用されている。
[0012] 基底ベクトルは逆変換を定義する。サイズ4の公知の変換の一つにおける基底ベクトルは、図2Aに示すマトリクスM4によって定義される。一方、サイズ8の公知の変換の一つにおける基底ベクトルは、図2Bに示すマトリクスM8によって定義される。
[0013] 公知の実装の一つにおける水平方向変換は、係数のアレーWと、基底ベクトルを含む対応変換マトリクス(即ち、4×4及び4×8ブロックについては変換マトリクスM4、並びに8×4及び8×8ブロックについては変換マトリクスM8)の転置(transpose)との間のマトリクス乗算を行うことによって、適用される。水平方向変換の結果を含むアレーZ'は、次のように求められる。
Z'=W*transpose(M4),4×8及び4×4ブロックの場合
Z'=W*transpose(M8),8×8及び8×4ブロックの場合
ここで、「*」は、マトリクス乗算を表わす。
[0014] 次いで、水平方向変換によって得られたマトリクスZ'をスケーリングすることによって、中間スケーリングが次のように実行される。
Z_ij=sign(Z'_ij)*((abs(Z'_ij)+(1<<(B-1))>>B)
ここで、Z'_ijは、アレーZ'の係数であり、Bは、4×4ブロックについては0であり、4×8及び8×4ブロックについては2であり、更に、8×8ブロックについては7である。
[0015] 次いで、垂直方向変換が適用される。アレーZが与えられると、アレーZと、基底ベクトルを含む対応マトリクス(即ち、8×4及び4×4ブロックについてはM4、並びに8×8及び4×8ブロックについてはM8)との間のマトリクス乗算を実行することによって、垂直方向の逆変換が適用される。垂直方向変換の結果を含むアレーX'は、次のように求められる。
X'=M4*Z,8×4及び4×4ブロックの場合
X'=M8*Z,8×8及び4×8ブロックの場合
[0016] 垂直方向変換が適用された後に、垂直方向変換の結果をスケーリングすることによって、最終的なスケーリングが次のように実行される。
X_ij=(X'_ij+32)>>6
[0017] M4又は転置(M4)を使用するマトリクス乗算は、通常、次のように実行される。入力ベクトルw[0...3]が与えられると、出力ベクトルx[0...3]は、次のように得られる。
z[0]=w[0]+w[2]
z[1]=w[0]-w[2]
z[2]=(w[1]>>1)-w[3]
z[3]=w[1]+(w[3]>>1)
x[0]=z[0]+z[3]
x[1]=z[1]+z[2]
x[2]=z[1]-z[2]
x[3]=z[1]-z[3]
上記手順は、入力アレーの各行又は列について一度づつ、4回適用されて、マトリクス乗算を完了する。
[0018] このように逆量子化を実行すると、量子化パラメータQPの値が、4×4情報ブロックについては0−51に、そして4×8、8×4及び8×8情報ブロックについては12−51の値に限定される。これによって、4×4以外の変換で達成できる最高クオリティが制限される。
[0019] 更に、上述したように逆変換を実行すると、水平及び垂直方向の逆変換中における乗算演算と、中間スケーリングとが、少なくとも8×4、4×8及び8×8の情報ブロックのオペレーションに対して、必要となる。このような乗算は、著しい処理オペレーションを費やす。それ故、変換の基底ベクトルは、4×4の場合のように高速実施を可能にする変更を必要とする。
[0020] 更に、上述したスケーリングを実行するために、どの逆変換が実行されるかに基づいて異なるテーブルが使用される。即ち、異なるブロックサイズに基づく多数の変換が行われるので、スケーリングを実行するときに多数のテーブルを使用しなければならない。多数のテーブルの使用が必要とされることは、あまり効率的な実装ではない。
[0021] 更に、逆変換は、サイズが16ビットを越えるレジスタをしばしば必要とし、SIMDアーキテクチャーにおいて並列実行可能なオペレーションの数を制限することによって、追加のプロセッサ資源を消費する(SIMD=単一命令多数データ、例えば、インテルプロセッサのMMX)。エンコーダにも、上述した欠点の一つ以上が存在する。
発明の概要
変換を使用してデータ(例えば、映像データ)を復号するための方法及び装置を本明細書に開示する。一実施形態では、復号方法は、各係数に対するインデックスを計算し、そのインデックスを使用してルックアップテーブル(LUT)を指し示すことによって各係数に対して求められたスケーリングファクタを使用して係数のブロックをスケーリングするステップを含む。インデックスは、量子化パラメータ、係数のブロックのサイズ、及びブロック内の上記各係数の位置に基づくものである。また、この方法は、スケーリングされた係数のブロックに変換を適用するステップも含む。
[0022] 本発明は、種々の実施形態を示す添付図面及び以下の詳細な説明から充分に理解されよう。しかしながら、これは、本発明を特定の実施形態に限定するものではなく、本発明を説明と理解のためのものに過ぎない。
本発明の詳細な説明
[0041] 以下、データ(例えば、映像データ)を符号化及び復号するための方法及び装置について説明する。データの符号化及び復号は、一部分において、変換を使用する。一実施形態では、これら変換は、以下に詳細に説明するように、低複雑性であり、且つ、単一化されている。
[0042] 一実施形態では、この方法は、スケーリングファクタを使用して係数のブロックをスケーリングするステップを含む。スケーリングファクタは、量子化パラメータ、ブロックのサイズ、及びブロック内の係数の位置に基づきインデックスを計算することによって求められる。一実施形態では、このインデックスは、量子化パラメータと、ブロックのサイズ及びブロック内の係数の位置によって求められる値との和である。ブロックのサイズ及びブロック内の係数の位置によって求められる当該値は、ブロックの垂直方向サイズ及びブロック内の係数の垂直方向位置によって求められてもよい。また、ブロックの水平方向サイズ及びブロック内の係数の水平方向位置によって求められる値でもよい。一実施形態では、ブロックのサイズは、4×4、4×8、8×4又は8×8のいずれかである。
[0043] データを処理する当該方法は、更に、インデックスを使用して単一のルックアップテーブル(LUT)を指し示すステップを含む。LUTをインデックスで指し示し、乗算を行って、係数のブロックのスケーリングを完了した後、それらのスケーリングされた係数のブロックに変換が施される。一実施形態では、この変換は、一連の加算、減算及びシフトの演算を使用して計算され、マトリクス乗算演算を実行する必要がない。尚、スケーリングされた係数のブロックに適用される変換に拘りなく、同じLUTを使用してもよい。
[0044] より詳細には、一実施形態では、情報(例えば、映像信号)のブロックは、係数値(例えば、量子化係数値)のブロックを受け取り、該量子化係数値のブロックの係数に対応するオフセット値を求め、求められたオフセット値に応じて逆量子化係数値を求めることによって、処理される。量子化係数値のブロックは、量子化係数値の4×4、4×8、8×4及び8×8のブロックの少なくとも一つを含むものであってもよい。
[0045] 一実施形態では、オフセット値は、受け取られた値のブロックと、値の一次元アレーとに応じて決定される。逆量子化係数値の決定に応じて、再構成された係数マトリクスが生成される。
[0046] 別の実施形態では、係数値のブロックを受け取り、受け取った係数値のブロックに、離散コサイン変換(DCT)を近似する基底ベクトルを用いて逆変換を実行することを含む情報ブロックの符号化によって、データが処理される。一実施形態において、係数値のブロックは、量子化係数値の4×4、4×8、8×4及び8×8のブロックの少なくとも一つを含む。更に、係数値のブロックは、逆量子化映像データを含んでもよい。
[0047] 逆変換に関して、一実施形態では、基底ベクトルは、互いに実質的に直交し、分数値をもつエレメントを含む。基底ベクトルは、8×8のサイズとすることができる。
[0048] 一実施形態では、水平方向逆変換及び垂直方向逆変換を使用して逆変換が実行される。一実施形態では、水平方向逆変換は、係数の量子化形態に逆量子化マトリクスを適用することによって逆量子化された係数に対して実行される。変換の基底ベクトルは、DCTを近似している。或いは又、基底ベクトルは、実質的に直交している。水平方向逆変換は、一連の加算、減算及びシフトの演算を使用して、逆量子化係数のベクトルに対して実行されてもよい。
[0049] 垂直方向逆変換は、水平方向逆変換の後に実行されるが、垂直方向逆変換と水平方向逆変換の順序が逆であってもよい。一実施形態では、垂直方向逆変換は、逆量子化係数に水平方向逆変換マトリクスを適用した後に実行される。垂直方向逆変換は、DCTを近似する基底ベクトルを有する。或いは又、垂直方向逆変換は、直交する基底ベクトルを有してもよい。垂直方向逆変換は、加算、減算及びシフトの少なくとも一つを含む演算のみを使用して実行される。
[0050] 以下の説明において、本発明をより完全に説明するために多数の細部について述べる。しかしながら、当業者であれば、これらの特定の細部が無くとも、本発明を実施できることが明らかであろう。他の例では、本発明を不明瞭にしないために、周知の構造及び装置は、詳細図ではなく、ブロック図によって示す。
[0051] 以下の詳細な説明では、コンピュータメモリ内のデータビットに対するオペレーションのアルゴリズム及び記号表示の形態で記載してある部分がある。これらのアルゴリズム記述及び表示は、データ処理分野の当業者が仕事の実体をその分野の他の当業者に最も効果的に伝えるための手段である。アルゴリズムとは、本明細書においても、且つ一般的にも、所望の結果を導くステップの自己一貫性シーケンスであると考えられる。ステップとは、物理的な量の物理的な操作を要求するものである。必ずしもそうでないが、通常、これらの量は、記憶、転送、合成、比較、及びその他操作することのできる電気的又は磁気的信号の形態をとる。主として一般に使用される理由は、時に、これらの信号を、ビット、値、エレメント、シンボル、キャラクタ、用語、番号等と称するのが便利であると分かっているからである。
[0052] しかしながら、これら及び同様の全ての用語は、適当な物理的量に関連付けされると共に、これらの量に適用される単なる便利な表示に過ぎないことに留意されたい。以下の説明から明らかなように、特に指示のない限り、説明全体にわたり、「処理」又は「計算」又は「算出」又は「決定」或いは「表示」等の用語を用いた説明は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)量として表わされたデータを、コンピュータシステムのメモリ又はレジスタ或いは他の情報記憶、送信又は表示装置内の物理的量として同様に表わされた他のデータへと操作及び変換するコンピュータシステム、又は同様の電子計算装置のアクション及びプロセスを指すことは理解されよう。
[0053] 本発明は、また、本明細書におけるオペレーションを実行する装置に関する。この装置は、要求された目的のために構成されることができ、又は記憶されたコンピュータプログラムによって選択的に作動され又は再構成される汎用コンピュータを備えることもできる。このようなコンピュータプログラムは、コンピュータ読み取り可能な記憶媒体、例えば、フロッピーディスク、光学的ディスク、CD−ROM、磁気−光学ディスクを含む任意の形式のディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光学カード、或いは電子的命令を記憶するのに適した任意の形式の媒体に記憶できるが、これらに限定されない。これらは各々コンピュータシステムバスに接続される。
[0054] 本明細書に記載されたアルゴリズム及び表示は、特定のコンピュータ又は他の装置に固有に関連したものではない。種々の汎用システムを、ここでの教示に基づくプログラムと共に使用してもよく、或いは、必要な方法ステップを実行するための更に特殊な装置を構成するのも便利であることは理解されよう。種々のこれらシステムに必要とされる構造は、以下の説明から明らかとなろう。更に、本発明を、特定のプログラミング言語を参照して説明しない。ここに述べる本発明の教示を実施するために種々のプログラミング言語を使用できることが明らかであろう。
[0055] マシン読み取り可能な媒体は、装置(例えばコンピュータ)で読み取り可能な形態で情報を記憶又は転送するためのメカニズムを含む。例えば、マシン読み取り可能な媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、電気的、光学的、音響的又は他の形態の伝播信号(例えば、搬送波、赤外線信号、デジタル信号等)、等々を含む。
概要
[0056] 以下、例えば、映像符号化に使用するための逆量子化及び逆変換技術について説明する。以下の説明は、デコーダにおける実施に焦点を当てているが、当業者であれば、同じ技術をエンコーダにおいても実施できることが明らかであろう。以下に詳細に述べるように、一実施形態において、これらの技術は、単一アレー(例えば、単一化1DアレーV)を使用する。一実施形態では、一次元アレーの値を情報(例えば、映像情報)のブロックに適用することによって、逆量子化が実行される。一次元アレー、例えば、アレーVは、32個のエントリー、すなわち
V={10,11,11,12,13,13,14,15,16,17,18,19,20,21,23,24,25,27,29,30,32,34,36,38,40,43,45,48,51,54,57,60}
を有する。
他の単一アレーが使用されてもよい。上記例では、アレーVのエントリーは、pow(2,(k+O)/12)の形態をとっている。ここで、kは、アレーにおけるエントリーの位置を表わし、Oは、定数である。例えば、Oは、40である。
[0057] 一つのアレーしか使用しないと、使用する逆量子化関数も一つだけとなり、より効率的なオペレーションがもたらされるという点において、単一アレーの使用は効果的である。適用すべき逆変換に拘らず、単一の逆量子化関数を使用することができる。従って、これは、復号プロセスに使用されるいずれかの変換の前に、係数を量子化するために使用される。一実施形態では、逆量子化及び逆変換は、逆変換を計算するために、少数の演算しか必要としない。その理由は、乗算演算ではなく、加算、減算及びシフトの演算しか使用しないからである。
[0058] 更に、一実施形態では、水平方向逆変換と垂直方向逆変換との間に中間スケーリングを必要としない。サイズ8の変換は、サイズ4の変換によって使用される要素を再使用する。サイズ8の変換は、離散的コサイン変換(DCT)の厳密な近似を与える。更に、少なくとも4×4、4×8、8×4及び8×8のブロックサイズに対する逆変換は、16ビットレジスタを使用して実施することができ、16ビットよりサイズの大きいレジスタを必要としない。エンコーダにおいても同様の技術を使用して変換及び量子化を実行することができる。これについては、以下に説明する。
逆量子化及び逆変換
[0059] 図3は、本発明の一実施形態に基づいて逆量子化を実行するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステム又は専用マシンで実行されるような)、又はその両方の組合せで構成される処理ロジックにより実行される。図3のフローチャートを参照して説明する逆量子化は、一次元アレーVについて説明されるが、異なるエレメント値又は異なる数のエレメントをもつ一次元アレーも使用できることは明らかであろう。
[0060] 逆量子化は、量子化係数c_ijを含む量子化係数のアレーCに対して実行される。図3に示すように、処理ブロック305において、処理ロジックは、量子化係数アレーCの量子化係数c_ijを受け取る。ここで、量子化係数c_ijは、量子化係数マトリクスCにおける位置i,jをとる係数である。
[0061] 処理ロジックは、量子化係数マトリクスにおける係数c_ijの位置i,jに基づいてアレーVのオフセットを求める(処理ブロック310)。このオフセットは、その係数に関連した基底ベクトルのノルムに基づくスケーリング値となっており、一実施形態では、次のように求められる。
offset(i,j)=ofst4[i]+ofst4[j],4×4ブロックの場合
offset(i,j)=ofst8[i]+ofst4[j],8×4ブロックの場合
offset(i,j)=ofst4[i]+ofst8[j],4×8ブロックの場合
offset(i,j)=ofst8[i]+ofst8[j],8×8ブロックの場合
ここで、ofst4={0,4,0,4}、及びofst8={6,5,10,5,6,5,10,5}である。
[0062] 量子化係数マトリクスにおける係数の特定位置i,jに対するオフセットを求める際に、処理ロジックは、以下に述べるように、係数に対する逆量子化値を求める(処理ブロック315)。
[0063] 4×4変換の場合には、逆量子化は、再構成された係数のマトリクスWをC言語プログラミング表記で次のように生成することができる。
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)])<<(QP/6)
尚、一実施形態では、上記式及び他の式に記載のV[.]のオペレーションは、テーブルルックアップオペレーションとして実施される。
[0064] 4×8又は8×4変換の場合には、逆量子化によって得られる再構成係数は、次のように求めることができる。
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)])<<(QP/6-1),QP≧6の場合、及び
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)+1])>>1,その他の場合
ここで、「w_ij」は、例えば、上述した係数w_ijと同様に、マトリクスWの再構成係数である。8×8変換の場合には、逆量子化によって得られる再構成係数を、次のように求めることができる。
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)])<<(QP/6-2)、QP≧12の場合、及び
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)+(1<<(1-QP/6))])>>(2-QP/6),その他の場合
ここで、w_ijは、マトリクスWの係数である。
[0065] 別の実施形態では、アレーofst4及びofst8を、次のように定義することができる。
ofst4={4,11,4,11}
ofst8={1,0,5,0,1,0,5,0}
更に、再構成係数w_ijは、サイズ4×4、4×8、8×4及び8×8のブロックに対して次のように求められる。
w_ij=(c_ij*V[2*(QP%6)+offset(i,j)])<<(QP/6)
[0066] 更に別の実施形態では、アレーVのサイズが増加され、再構成式が次のように定義される。
w_ij=(c_ij*V[QP+offset(i,j)])
[0067] 更に別の実施形態では、追加の重み付けファクタが、ブロックサイズとブロック内の係数の位置との関数として次のように含まれる。
w_ij=(c_ij*V[QP+offset(i,j)+f(block size,i,j)])
ここで、f(block size,i,j)は、重み付けファクタを定義する。このような重み付けは、各係数の知覚的重要性に適応させるために使用される。MPEG−2(ISO/IEC13818−2)は、追加の乗算及びシフト演算を要求することによって、このような機能を提供するが、現在の情報では、追加の加算演算しか要求されない。
[0068] 量子化係数マトリクスにおける係数の特定位置i,jに対して逆量子化値w_ijを求める際に、処理ロジックは、逆量子化を実行すべき量子化係数マトリクスCの係数が更にあるかどうかを決定する(処理ブロック320)。もしあれば、処理は、処理ブロック305に移行して、量子化マトリクスCの次の量子化係数c_ijが受け取られる。しかしながら、逆量子化を実行すべき係数が更になければ、量子化係数マトリクスに対する逆量子化は、終了となる(処理ブロック325)。
[0069] このように、量子化係数マトリクスの逆量子化は、複数の値をもつ単一の一次元アレーを使用して求められる。ここで、逆量子化されるサイズブロックは、少なくとも4×4、4×8、8×4及び8×8のサイズの情報ブロックである。
[0070] 逆量子化プロセスは、量子化係数マトリクスの係数に対するオフセット値及び逆量子化値の両方を、次の係数を処理する前に、求めることができる。しかしながら、当業者であれば、別の実施形態において、量子化係数マトリクスの全ての係数に対するオフセット値を最初に求め、次いで、求められたオフセット値を使用して、量子化係数マトリクスの全ての係数に対して逆量子化値を求めることができることは明らかであろう。
[0071] 別の実施形態では、以下に述べるように、乗算演算を実行せずに逆変換を実行してもよい。加えて、又はそれに代えて、中間のスケーリング演算を実行せずに逆変換を実行してもよい。
[0072] 逆量子化が適用された後に、逆変換が適用される。この実施形態では、サイズ4の変換に対する基底ベクトルは、不変とすることができる(例えば、図2Aに示すように)。基底ベクトルを8×8の変換用に変えることによって逆変換を変更することができる。更に、中間のスケーリングプロセスを取り除くことができる。このような場合には、水平方向変換によって得られたアレーが垂直方向変換に直接入力される。
[0073] サイズ8の逆変換の一実施形態に対するベクトル基底を図4のテーブルに示す。これは、DCTを近似するもので、実質的に直交する基底を有している(即ち、いずれの2つのベクトルの積も、ゼロであるか又はほぼゼロに近い)。逆変換を説明するフローチャートを図5に示す。
[0074] 図5は、逆変換を実行するプロセスの一実施形態を示すフローチャートである。このプロセスは、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステム又は専用マシンで実行されるような)、又はその両方の組合せで構成される処理ロジックによって実行される。
[0075] 図5に示すように、処理ロジックは、水平方向逆変換によって得るアレーZを次のように計算する(処理ブロック505)。
Z=W*transpose(M4),4×8及び4×4ブロックの場合
Z=W*transpose(M8),8×8及び8×4ブロックの場合
ここで、M4は、一実施形態については、図1Aに示されており、M8は、一実施形態については、図4に示されている。水平方向逆変換によって得られるアレーZの決定については、以下に詳細に説明する。また、以下に更に述べるように、水平方向逆変換は、乗算演算を使用せずに計算されてもよい。
[0076] 次いで、処理ロジックは、垂直方向変換をアレーZに適用することによって得られるアレーX'を次のように求める(処理ブロック510)。
X'=M4*Z,8×4及び4×4ブロックの場合
X'=M8*Z,8×8及び4×8ブロックの場合
ここで、M4は、一実施形態においては、図2Aに示されたものであり、M8は、一実施形態においては、図4に示されたものである。アレーX'の決定は、以下に詳細に説明する。また、以下に述べるように、アレーX'は、別の形態では、乗算演算を使用せずに得ることもできる。
[0077] 水平及び垂直方向の逆変換を適用した後に、処理ロジックは、得られたアレーX'に対して最終的なスケーリングを次のように実行する(処理ブロック515)。
X_ij=(X'_ij+32)>>6
[0078] 上記式は、通常、映像サンプルのビット深さが8に等しいときに使用される。映像サンプルのビット深さが8より大きいときには、スケーリング演算は、より一般的な形態、すなわち
X_ij=(X'_ij+(1<<(13-D))>>(14-D)
をとることができる。ここで、Dは、映像サンプルのビット深さを表わす。
[0079] 図6は、マトリクス乗算を使用せずに、少なくとも8×8、8×4及び4×8の情報ブロックに対して逆変換(即ち、水平方向逆変換のZ及び垂直方向逆変換のX')を計算するために使用できるアルゴリズムの一実施形態を示す。図6のアルゴリズムの「in」ベクトルの「in」係数が、INマトリクス(入力マトリクス)から検索され、図6のアルゴリズムの「out」ベクトルの「out」係数が使用されて、OUTマトリクス(出力マトリクス)が形成される。操作されるINマトリクスの「in」ベクトルと、形成されるOUTマトリクスの「out」ベクトルは、次のように求められる。水平方向変換の場合、「in」ベクトルはアレーWの行であり、「out」ベクトルはアレーZの対応の行である。垂直方向変換では、図7〜図9のフローチャートを参照して以下に述べるように、「in」ベクトルはアレーZの列であり、「out」ベクトルは、逆変換の特定の部分を実行することによるアレーX'の対応の列である。
[0080] 図7は、図6のアルゴリズムを使用して水平方向逆変換を計算するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステム又は専用マシンで実行されるような)、又はその両方の組合せで構成される処理ロジックによって実行される。
[0081] 図7を参照する。まず、処理ロジックは、INマトリクスから「in」ベクトルを検索する(処理ブロック705)。実行されている逆変換は、水平方向逆変換であるので、当該ベクトルは、逆量子化によって得られたマトリクスWの行である(従って、マトリクスWは、使用するINマトリクスである)。量子化係数マトリクスWの「in」ベクトルを受け取ると、処理ロジックは、一連の加算、減算及びシフトの演算(非乗算演算)を実行して、「out」ベクトル係数、ここでは、アレーZの行を生成する(処理ブロック710)。これら演算は、例えば、図6のアルゴリズムによって示されたように達成される。図6のアルゴリズムを使用する場合に、「in」ベクトルは、逆量子化マトリクスWの行であり、生成される「out」ベクトルは、Zマトリクスの出力ベクトル(行)である。
[0082] マトリクスZの「out」ベクトルを生成した後に、処理ロジックは、処理すべき逆量子化INマトリクスのベクトルが更にあるかどうかを決定する(処理ブロック715)。逆量子化マトリクスのベクトルが更にある場合には、処理は処理ブロック705へ移行する。しかしながら、逆量子化マトリクスの全てのベクトルが変換されている場合には、水平方向逆変換の適用が終了となる(処理ブロック720)。当業者であれば、カリフォルニア州、サンタ・クララのインテル・コーポレーションのPentiumIVプロセッサのようなマルチメディア拡張型プロセッサを使用するときには、多数のベクトルを並列に処理できることが明らかであろう。
[0083] このように、水平方向逆変換は、例えば、加算、減算及びシフトの演算を使用するが、乗算演算を伴わずに、少なくともサイズ8×8及び4×8のブロックの逆量子化マトリクスに対して実行することができる。
[0084] 逆量子化係数マトリクスWからマトリクスZを求めると、中間スケーリングの必要なく、垂直方向逆変換を実行することができる。例えば、垂直方向逆変換は、上述した水平方向変換によって得られたマトリクスZに対して実行される。次いで、図8のフローチャートに示すように、垂直方向逆変換が実行される。
[0085] 図8は、図6のアルゴリズムを使用して垂直方向逆変換を実行するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステム又は専用マシンで実行されるような)、又はその両方の組合せで構成される処理ロジックにより実行される。
[0086] 図8に示すように、処理ロジックは、INマトリクスから「in」ベクトルを受け取る(処理ブロック805)。実行されている逆変換は、垂直方向逆変換であるので(即ち、図5の処理ブロック510)、当該ベクトルは、マトリクスZの列である。
[0087] 「in」ベクトルを受け取った後に、処理ロジックは、非乗算演算を実行して、「out」ベクトル係数(したがって、マトリクスX'の列)を生成する(処理ブロック810)。非乗算演算は、例えば、図6のアルゴリズムに示されるように、達成される。図6のアルゴリズムを使用すると、「in」は、マトリクスZ'から検索されたベクトル(列)である(処理ブロック805で受け取られた)。「out」は、マトリクスX'の列の出力ベクトル(列)である。
[0088] 「out」ベクトルを生成した後に、処理ロジックは、処理すべきマトリクスZのベクトルが更にあるかどうかを決定する(処理ブロック815)。マトリクスZのベクトルが更にある場合には、処理は、上述したように、処理ブロック805へ移行する。しかし、マトリクスZの全てのベクトルが変換されている場合には、処理ロジックは、垂直方向逆変換の適用を停止する(処理ブロック820)。水平方向逆変換について上述したのと同様に、当業者であれば、Pentium4プロセッサのようなマルチメディア拡張型プロセッサを使用する場合に、多数のベクトルを並列に処理できることは明らかであろう。
[0089] このように、図6のアルゴリズムを使用して、マトリクス乗算を必要とせずに、水平方向逆変換及び垂直方向逆変換を計算することができる。従って、逆変換を、より効率的に且つ迅速に計算することができる。更に、サイズ8の変換(並びに他の変換サイズ)に対して、水平方向逆変換と垂直方向逆変換との間に中間スケーリングを必要としない。
[0090] 別の実施形態では、量子化と変換との組合せを、単一変換の構成に使用することができる。
[0091] 図9は、単一の4×4変換の一実施形態の構成に使用される基底ベクトルを示すテーブルである。図9に示す基底ベクトルにおいて、第1及び第3の基底ベクトルのノルムは2であり、第2及び第4の基底ベクトルのノルムは、3.625の平方根(sqrt(3.625)=1.903943...)に実質的に等しい。ノルム間の比は、1.050451...であり、pow(2,1/14)=1.050756...に非常に近い。
[0092] それ故、逆量子化に単一スケーリングテーブルを使用することができる。このスケーリングテーブルは、Cプログラミングコンピュータ言語表記で、次の形態をとる。
c*pow(2,k/14)
ここで、cは、定数であり、kは、k=0...15で、オフセットを表わす。一実施形態では、このテーブルの値は、上記式の結果をそれに最も近い整数に丸めることにより導出される整数であってもよい。
[0093] 例えば、c=32の場合は、スケーリングテーブルは、次の値を含むものであってもよい。
V[]=32,34,35,37,39,41,43,45,48,50,53,55,58,61,64,67
[0094] 次いで、オフセット値を使用してスケーリングを次のように実行することができる。
w_ij=c_ij*V[(QP%14)+offs[i]+offs[j]]<<(QP/14)
ここで、オフセット値は、次のように決定される。
offs[]=0,1,0,1
[0095] 別の実施形態では、大きなアレーVが使用され、スケーリング演算は、次のように変更される。
w_ij=c_ij*V[QP+offs[i]+offs[j]]
このような場合、アレーVのサイズは、QPの最大値+2によって決定される。
[0096] 更に別の実施形態では、アレーVの値は、次の形態をとる。
c*pow(2/sqrt(3.625),k)
[0097] 更に別の実施形態では、スケーリングは、次のように計算することができる。
w_ij=(c_ij<<(QP/14))*V[(QP%14)+offs[i]+offs[j]]>>16
ここで、乗算と、16位置右シフトとの組み合せは、これをサポートするプロセッサにおいて単一の命令で実施される。例えば、MMX命令セットでは、乗算は、2つの16ビット値を引数としてとって、並列性を犠牲にせずに、32ビットの結果の最上位の数ビットを返す。
[0098] 変換ベクトルの値は、全て、2の累乗、又は2つの2の累乗の和として表わすことができ、一次元逆変換の実施は簡単である。例えば、x[]が入力で、y[]が出力である場合には、入力ベクトルに適用する逆変換を、一実施形態では、図10のアルゴリズムで示されるように実施することができる。別の実施形態では、右シフト演算の前の丸めファクタを変更することができる。例えば、演算x>>1を、(x+1)>>1に置き換え、演算(x+2)>>2を、x>>2又は(x+1)>>2に置き換えることができる。
[0099] 図9及び10の基底ベクトル及びアルゴリズムを各々使用すると、簡単なアルゴリズムを高い精度で使用することができる。
[0100] 本明細書に説明された技術は、当業者に明らかなように、符号化プロセス及び復号プロセスの両方に適用することができる。従って、上述した復号プロセスと同様に考慮することによって、符号化の実施形態においてもオフセット及びスケーリングベクトルを再計算することができる。
符号化
[0101] 図11は、符号化のための単一化変換を実行するプロセスの一実施形態を示すフローチャートである。このプロセスは、ハードウェア(回路、専用ロジック等)、ソフトウェア(汎用コンピュータシステム又は専用マシンで実行されるような)、又はその両方の組合せで構成される処理ロジックによって実行される。
[0102] 符号化のための変換の実行において、Xは変換されるべき入力ブロックであり、Zは変換されたブロックであり(マトリクスYは水平方向に変換されたブロックを表わし、マトリクスZは更に垂直方向に変換されたマトリクスを表わす)、更に、Z'は、変換され量子化されたブロックである。図11に示すように、処理ロジックは、符号化されるべき情報ブロックを受け取る(処理ブロック1105)。次いで、処理ロジックは、水平方向変換をC言語コンピュータ表記で次のように実行する(処理ブロック1110)。
Y=X*M4,4×8及び4×4ブロックの場合
Y=X*M8,8×8及び8×4ブロックの場合
ここで、M4は、サイズ4の変換に対する基底ベクトルで、一実施形態では、図12のテーブルに示すようなものである。更に、M8は、サイズ8の変換に対する基底ベクトルであり、一実施形態では、M8基底ベクトルは、図4に示すように、サイズ8の逆変換に使用される。
[0103] 水平方向変換が実行されると、処理ロジックは、垂直方向変換を実行する(処理ブロック1115)。垂直方向に変換されたマトリクスZを求めるための垂直方向変換は、次のように実行される。
Z=transpose(M4)*Y,8×4及び4×4ブロックの場合
Z=transpose(M8)*Y,8×8及び4×8ブロックの場合
ここで、M4及びM8は、処理ブロック1110の水平方向変換に関して上述したものと同様とすることができる。
[0104] ボックス1115において垂直方向変換を実行すると、処理ブロック1120において量子化が実行される。一実施形態では、量子化は、一次元,32エレメントのアレーV'を使用して実行することができる。
V'={26008,24548,23170,21870,20643,19484,18390,17358,
16384,15464,14596,13777,13004,12274,11585,10935,
10321,9742,9195,8679,8192,7732,7298,6889,
6502,6137,5793,5468,5161,4871,4598,4340}
ここで、アレーV'の各エレメントkは、16384*pow(0.5,(k-8)/12.0)に等しい。
[0105] 量子化を実行するために、変換マトリクスZの各係数に対するオフセットを次のように計算することができる。
offset(i,j)=ofst4[i]+ofst4[j],4×4ブロックの場合
offset(i,j)=ofst4[i]+ofst8[j],4×8ブロックの場合
offset(i,j)=ofst8[i]+ofst4[j],8×4ブロックの場合
offset(i,j)=ofst8[i]+ofst8[j],8×8ブロックの場合
但し、ofst4={0,8,0,8}、及びofst8={6,7,2,7,6,7,2,7}である。
[0106] 量子化された変換ブロックZは、次のように計算することができる。
Z_ijz'_ij=sign(z_ij)*abs{(z_ij*V'[2*(QP%6)+offset(i,j)]+(1<<(16+(QP/6)))/B)>>(16+(QP/6))}
ここで、Bは、2以上の任意の数であることができ、係数の符号化のコストと再構成エラーとの間でのトレードオフのために使用されるバイアスを表す。
[0107] 単一化逆量子化及び単一化量子化の実行に使用される一次元マトリクスV及びV'、デコーダにおいて逆変換を実行するための図4の基底ベクトル、デコーダでの単一変換構成用の単純な変換と量子化との組合せを実行するための図9の基底ベクトル、及びエンコーダにおいて変換を実行するための図12及び図4の基底ベクトルは、単なる例示に過ぎず、ここに述べた効果の少なくとも幾つかを達成するように他のアレー及び/又は基底ベクトルを決定することもできる。例えば、一次元マトリクスは、そのエントリーを2の分数乗にセットする(ここに示す例では、マトリクスのi番目のエントリーが、floor(pow(2,4+(i-8)/12.0)+0.5)の値を有する)ことによって単一化逆量子化を可能とするので、これらの考慮によって構成された一次元アレーを使用することができる。ある環境では、変換の基底ベクトルのノルムを考慮して、上述したオフセットを計算するためのオフセットベクトルを変更することによって、単一量子化を使用することが可能となる。例えば、図4に示すマトリクスの場合に、第1の基底ベクトルは、sqrt(8)=pow(2,18/12.0)のノルムを有し、第2のベクトルは、略pow(2,19/12.0)であるsqrt(578/64)のノルムを有し、更に、第3のベクトルは、略pow(2,14/12.0)であるsqrt(5)のノルムを有する。尚、{6,5,10...}は、{24-18,24-19,24-10...}によって得られる。
[0108] 同様に、上述した図4のベクトル基底を、乗算演算及び中間スケーリングを必要とせずに、図6のアルゴリズムに使用することができる。その理由は、各ベクトルの最大係数が1であるか又は1に近く、係数は、せいぜい2つの2の累乗の和として表わすことができ、従って、これらの考慮によって構成された/決定された任意のベクトル基底を使用しても、本明細書に説明された利点の少なくとも幾つかを達成できるからである。
[0109] このように、基底ベクトル係数が2つの2の整数(正又は負)乗の和であり、且つベクトル係数が通常2を越えないという考慮によって、上述した効果の一つ以上を得ることができる。
[0110] 更に、上述した考慮によって、他のサイズ(8より大きな)の変換に対しても同様にベクトル基底を決定/構成することができる。従って、本発明は、サイズ4×4、4×8、8×4又は8×8の変換に限定されない。例えば、基底ベクトルのノルムをpow(2,k/n)によって厳密に近似できるようにサイズ16×16の変換を構成することができる。ここで、k及びnは、小さい数字である(8×8変換の場合には、nは12である)。
デコーダの例
[0111] 図13Aは、デコーダの一実施形態を示すブロック図である。図13Aに示すように、圧縮データ1300は、エントロピーデコーダ1301によってエントロピー復号される。エントロピー符号化されたデータは、係数を含む。一実施形態において、エントロピーデコーダ1301は、可変長復号又はコンテクスト適応型2進算術復号を実行する。
[0112] エントロピーデコーダ1301によって出力されたエントロピー復号データは、逆量子化器1302を用いて逆量子化を受ける。逆量子化器1302は、上述した逆量子化を実行するためのルックアップテーブルを記憶するメモリ1321を備えているか、又はそれにアクセスすることができる。尚、エントロピー復号データは、逆量子化される前に、係数を編成してアレーにデシリアライズされる。或いは又、逆量子化の後にデシリアライズ処理を行ってもよい。
[0113] 逆量子化の後、逆量子化された係数に逆変換1303が適用される。一実施形態では、逆変換1303は、上述した水平及び垂直方向の一次元変換を含む。逆変換1303を適用することによって生成された復号データは、加算器1304を用いて、要素1305において生成される動き補償されたブロック又は空間予測されたブロックのいずれかと合成される。
[0114] 加算器1304の出力は、フィルタ1306を用いてフィルタリングされ、変換及び量子化の適用及び隣接ブロック間の動きベクトルの差によって生じたアーチファクトが除去される。フィルタ1306の出力は、再構成データ1307である。一実施形態では、フィルタ1306は、イン・ループフィルタである(即ち、フィルタリングされた画像は、将来の動き補償予測に使用される)。イン・ループフィルタは、16×16マクロブロック及びブロック境界の両方に作用することができる。ここで、ブロックは、4×4、4×8、8×4又は8×8に等しいサイズを有することができる。
[0115] 図13Bは、エンコーダの一実施形態のブロック図である。図13Bに示すように、入力データ1317は、減算器1314によって受け取られる。入力データ1317は、入力フレームを含む。減算器1314は、動き補償又は空間予測ユニット1315によって生成された予測データを入力データ1317から減算する。一実施形態では、予測データは、動き補償されたブロック又は空間予測されたブロックで構成される。
[0116] 減算結果は、順方向変換1313へ入力され、このブロックにおいて、データが変換されて係数が生成される。一実施形態では、順方向変換1313は、上述した逆変換とは逆の水平及び垂直方向の一次元変換で構成される。
[0117] これらの係数は、次いで、量子化器1312において量子化されて、量子化変換係数が生成される。量子化器1312は、上述した逆量子化とは逆に量子化動作を実行するためのルックアップテーブルを記憶したメモリ1321を備えているか又はそれにアクセスすることができる。量子化変換係数は、当該量子化変換係数をシリアライズするために、アレーから再順序付けされる。再順序付けの後に、量子化変換係数は、エントロピーエンコーダ1311によってエントロピー符号化される。一実施形態では、エントロピーエンコーダ1311は、可変長符号化又はコンテクスト適応型2進算術符号化を実行する。
[0118] 上述したように、エンコーダにおいて変換を実行するための考慮は、デコーダにおいて逆変換を実行するための考慮と同様である。映像符号化のための変換の提供に関して説明してきたが、当業者であれば、このような変換は、映像を処理するための量子化及び変換とは異なる技術領域にも適用することができることは明らかであろう。従って、本明細書の教示は、映像符号化に限定されない。
[0119] 本明細書に説明されている単一化された逆量子化及び逆変換を実行するときには、量子化及び逆変換の適用が、適切なプロセッサで実行されるソフトウェアによって、且つ、要求のオペレーションの実行に好適なメモリを有することによって、達成されることは、当業者には明らかであろう。処理セット内にマルチメディア拡張を使用することができるプロセッサは、有利であるが、必要ではない。或いは又、本明細書に教示された量子化及び変換技術は、ソフトウェア及びハードウェア装置の任意の組合せによって達成されてもよく、或いは必要に応じて完全にハードウェアによって達成されてもよいことが当業者には明らかであろう。
コンピュータシステムの例
[0120] 図14は、本明細書に説明されたオペレーションの一つ以上を実行できるコンピュータシステムの一例を示すブロック図である。尚、これらのブロック又はブロックのサブセットは、ここに述べる技術を実行するために、例えば、セルラー電話のような装置に一体化できる。
[0121] 図14を参照する。コンピュータシステム1400は、情報を通信するための通信メカニズム即ちバス1411と、情報を処理するためにこのバス1411に接続されたプロセッサ1412とを備えている。このプロセッサ1412は、例えば、Pentium(登録商標)、PowerPC(登録商標)、Alpha(登録商標)等のマイクロプロセッサを含むが、これに限定されない。
[0122] システム1400は、また、プロセッサ1412によって実行される情報及び命令を記憶するためにバス1411に接続されたランダムアクセスメモリ(RAM)又は他のダイナミック記憶装置1404(メインメモリと称される)を備えている。また、このメインメモリ1404は、プロセッサ1412によって命令を実行する間に一時的な変数又は他の中間情報を記憶するために使用されてもよい。
[0123] また、コンピュータシステム1400は、プロセッサ1412用の静的な情報及び命令を記憶するためにバス1411に接続されたリードオンリメモリ(ROM)及び/又は他のスタティック記憶装置1406と、磁気ディスク又は光学ディスク及びそれに対応するディスクドライブのようなデータ記憶装置1407とを備えている。このデータ記憶装置1407は、情報及び命令を記憶するためにバス1411に接続される。
[0124] コンピュータシステム1400は、更に、コンピュータのユーザに情報を表示するためにバス1411に接続された陰極線管(CRT)又は液晶ディスプレイ(LCD)のようなディスプレイ装置1421にも接続される。また、アルファニューメリック及び他のキーを含むアルファニューメリック入力装置1422も、情報及びコマンドの選択をプロセッサ1412へ伝えるためにバス1411に接続される。更に別のユーザ入力装置は、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーのようなカーソル制御器1423であり、方向情報及びコマンド選択をプロセッサ1412に伝えると共に、ディスプレイ1421上のカーソル移動を制御するためにバス1411に接続される。
[0125] バス1411に接続される別の装置は、命令、データ又は他の情報をペーパーやフィルムのような媒体や同様の形式の媒体にプリントするために使用されるハードコピー装置1424である。更に、スピーカ及び/又はマイクロホンのような音声記録及び再生装置も、コンピュータシステム1400に音声をインターフェイスするためにバス1411に任意に接続できる。バス1411に接続できる別の装置は、電話、ハンドヘルド式のパームデバイス(palm device)又は他の装置と通信するための有線/無線通信装置1425である。
[0126] 尚、システム1400のいずれか又は全部の要素及びそれに関連したハードウェアを本発明に適用できる。しかしながら、他の構成のコンピュータシステムが、それら装置の幾つか又は全部を含んでもよいことが明らかであろう。
[0127] 当業者であれば、以上の説明を読んだ後に、本発明の多数の変更や修正が疑いなく明らかとなるであろうが、図示して説明した特定の実施形態は、本発明を単に例示するものに過ぎず、本発明を限定するためのものではないことを理解されたい。それ故、種々の実施形態の詳細な説明は、本発明の本質とみなす特徴のみを記載した特許請求の範囲を何ら限定するものではない。
4×4ブロックを逆量子化するために使用される公知のアレーVのテーブルである。 8×4又は4×8ブロックを逆量子化するために使用される公知のアレーVのテーブルである。 8×8ブロックを逆量子化するために使用される公知のアレーVのテーブルである。 マトリクスM4を定義するサイズ4の基底ベクトルを示すテーブルである。 マトリクスM8を定義するサイズ8の基底ベクトルを示すテーブルである。 逆量子化を実行するためのプロセスの一実施形態を示すフローチャートである。 サイズ8の逆変換の一実施形態に対する基底ベクトルのテーブルである。 逆変換を実行するためのプロセスの一実施形態を示すフローチャートである。 逆変換を求めるために使用できるアルゴリズムの一実施形態を示す図である。 図6のアルゴリズムを使用して水平方向逆変換を決定するためのプロセスの一実施形態を示すフローチャートである。 図6のアルゴリズムを使用して垂直方向逆変換を決定するためのプロセスの一実施形態を示すフローチャートである。 単一化変換の一実施形態の構成に使用される基底ベクトルを示すテーブルである。 単一化逆変換を決定するのに使用されるアルゴリズムの一実施形態を示す図である。 エンコーダにおいて単一化変換を実行するためのプロセスの一実施形態を示すフローチャートである。 マトリクスM4の一実施形態に対するサイズ4の基底ベクトルを示すテーブルである。 デコーダの一実施形態を示すブロック図である。 エンコーダの一実施形態を示すブロック図である。 コンピュータシステムの一例を示すブロック図である。

Claims (52)

  1. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算するステップと
    前記インデックスを使用して単一且つ一次元アレーのルックアップテーブルを指し示すことによって各係数に対するスケーリングファクタを求めるステップと、
    前記スケーリングファクタを使用して係数のブロックをスケーリングするステップと、
    前記スケーリングされた係数のブロックに変換を適用するステップと、
    を含復号方法。
  2. 前記インデックスは、前記量子化パラメータと、前記係数のブロックのブロックサイズ及び前記ブロック内の前記各係数の位置によって求められる第1の値との和である、請求項1に記載の復号方法。
  3. 前記第1の値は、前記ブロックの垂直方向サイズ及び前記ブロック内の前記各係数の垂直方向位置によって求められる第2の値と、前記ブロックの水平方向サイズ及び前記ブロック内の前記各係数の水平方向位置によって求められる第3の値との和である、請求項2に記載の復号方法。
  4. 前記ブロックサイズは、4×4、4×8、8×4及び8×8から成るグループから選択されるサイズである、請求項3に記載の復号方法。
  5. 前記インデックスは、前記各係数の位置と前記係数のブロックのサイズに基づいて求められるオフセットと前記量子化パラメータとに基づいて、求められる、請求項1に記載の復号方法。
  6. 前記ルックアップテーブルのエントリーは、kが、前記ルックアップテーブルにおける個々のエントリーの位置を表わし、Oが定数である場合に、pow(2,(k+O)/12)の形態をとる、
    請求項に記載の復号方法。
  7. 前記スケーリングされた係数のブロックに変換を適用する前記ステップは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用することと、
    前記スケーリングされた係数のブロックに水平方向変換を適用することと、
    を含む、請求項1に記載の復号方法。
  8. 前記変換の基底ベクトルは、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    であり、水平及び垂直方向サイズの一方又は両方が8のブロックに使用される8ポイント変換を表す、請求項1に記載の復号方法。
  9. 前記スケーリングされた係数のブロックに変換を適用する前記ステップは、一連の加算、減算及びシフトの演算のみを使用して変換を計算することを含む、請求項1に記載の復号方法。
  10. 前記ブロックサイズは、4×4、4×8、8×4及び8×8より成るグループから選択されるサイズである、請求項1に記載の復号方法。
  11. ルックアップテーブルと、
    各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブルを指し示すことによって各係数に対するスケーリングファクタを求め、該スケーリングファクタ使用して係数のブロックをスケーリングする逆量子化器と、
    前記スケーリングされた係数のブロックに変換を適用するための逆変換ユニットと、
    を備えデコーダ。
  12. 前記インデックスは、前記量子化パラメータと、前記係数ブロックのブロックサイズ及び前記ブロック内の前記各係数の位置によって求められる第1の値との和である、請求項11に記載のデコーダ。
  13. 前記第1の値は、前記ブロックの垂直方向サイズ及び前記ブロック内の前記各係数の垂直方向位置によって求められる第2の値と、前記ブロックの水平方向サイズ及び前記ブロック内の前記各係数の水平方向位置によって求められる第3の値との和である、請求項12に記載のデコーダ。
  14. 前記ブロックサイズは、4×4、4×8、8×4及び8×8より成るグループから選択されるサイズである、請求項13に記載のデコーダ。
  15. 前記逆量子化器は、前記各係数の位置と前記係数のブロックのサイズに基づいて求められるオフセットと前記量子化パラメータとに基づいて、前記インデックスを求める請求項11に記載のデコーダ。
  16. 前記ルックアップテーブルのエントリーは、pow(2,(k+O)/12)の形態をとっており、ここで、kは前記ルックアップテーブルにおける個々のエントリーの位置を表わし、Oは定数である、請求項15に記載のデコーダ。
  17. 前記逆変換ユニットは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用し、
    前記スケーリングされた係数のブロックに水平方向変換を適用する、
    ことによって、前記スケーリングされた係数のブロックに変換を適用する、請求項11に記載のデコーダ。
  18. 前記変換の基底ベクトルは、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    であり、水平及び垂直方向サイズの一方又は両方が8のブロックに使用される8ポイント変換を表す、請求項11に記載のデコーダ。
  19. 前記逆変換ユニットは、一連の加算、減算及びシフトの演算のみを使用して変換を計算する、請求項11に記載のデコーダ。
  20. 前記ブロックサイズは、4×4、4×8、8×4及び8×8より成るグループから選択されるサイズである、請求項11に記載のデコーダ。
  21. 命令を備えるコンピュータプログラムであって、前記命令が、システムによって実行されたときに、
    該システムが、各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングし、
    更に、該システムが、前記スケーリングされた係数のブロックに変換を適用する、
    コンピュータプログラム
  22. 前記インデックスは、前記量子化パラメータと、前記係数ブロックのブロックサイズ及び前記ブロック内の前記各係数の位置によって求められる第1の値との和である、請求項21に記載のコンピュータプログラム
  23. 前記第1の値は、前記ブロックの垂直方向サイズ及び前記ブロック内の前記各係数の垂直方向位置によって求められる第2の値と、前記ブロックの水平方向サイズ及び前記ブロック内の前記各係数の水平方向位置によって求められる第3の値との和である、請求項22に記載のコンピュータプログラム
  24. 前記ブロックサイズは、4×4、4×8、8×4及び8×8より成るグループから選択されるサイズである、請求項21に記載のコンピュータプログラム
  25. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするための手段と、
    前記スケーリングされた係数のブロックに変換を適用するための手段と、
    を備え復号装置。
  26. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするステップと、
    前記スケーリングされた係数のブロックに、垂直方向変換及び水平方向変換を適用するステップと、
    を含み、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    又はその倍数である、
    復号方法。
  27. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項26に記載の復号方法。
  28. 前記変換を適用する前記ステップは、一連の加算、減算及びシフトの演算のみを使用して変換を計算することを含む、請求項26に記載の復号方法。
  29. 前記ブロックサイズは、4×4、4×8、8×4及び8×8より成るグループから選択されるサイズである、請求項26に記載の復号方法。
  30. 前記スケーリングされた係数のブロックに変換を適用する前記ステップは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用することと、
    前記スケーリングされた係数のブロックに水平方向変換を適用することと、
    を含む、請求項26に記載の復号方法。
  31. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対しするスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするための逆量子化器と、
    前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用するための逆変換と、
    を備え、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    又はその倍数である、
    デコーダ。
  32. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項31に記載のデコーダ。
  33. 前記変換を適用することは、一連の加算、減算及びシフトの演算のみを使用して変換を計算することを含む、請求項31に記載のデコーダ。
  34. 前記スケーリングされた係数のブロックに変換を適用することは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用し、
    前記スケーリングされた係数のブロックに水平方向変換を適用する、
    ことを含む、請求項31に記載のデコーダ。
  35. 命令を備えるコンピュータプログラムであって、前記命令が、システムによって実行されたときに、
    該システムが、各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングし、
    更に、該システムが、前記スケーリングされた係数のブロックに、垂直方向変換及び水平方向変換を適用し、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    又はその倍数である、
    コンピュータプログラム
  36. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項35に記載のコンピュータプログラム
  37. 前記システムに変換を適用させる前記命令は、前記システムによって実行されたときに、該システムが一連の加算、減算及びシフトの演算のみを使用して変換を計算する命令を含む、請求項35に記載のコンピュータプログラム
  38. 前記システムに前記スケーリングされた係数のブロックへの変換を適用させる前記命令は、前記システムによって実行されたときに、該システムが、
    前記スケーリングされた係数のブロックに垂直方向変換を適用し、更に、
    前記スケーリングされた係数のブロックに水平方向変換を適用する、
    命令を含む、請求項35に記載のコンピュータプログラム
  39. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするための手段と、
    前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用する手段と、
    を備え、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1 1 1 1 1
    12/8 10/8 6/8 3/8 -3/8 -6/8 -10/8 -12/8
    1 1/2 -1/2 -1 -1 -1/2 1/2 1
    10/8 -3/8 -12/8 -6/8 6/8 12/8 3/8 -10/8
    1 -1 -1 1 1 -1 -1 1
    6/8 -12/8 3/8 10/8 -10/8 -3/8 12/8 -6/8
    1/2 -1 1 -1/2 -1/2 1 -1 1/2
    3/8 -6/8 10/8 -12/8 12/8 -10/8 6/8 -3/8
    又はその倍数である、
    デコーダ。
  40. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするステップと、
    前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用するステップと、
    を含み、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1
    5/4 1/2 -1/2 -5/4
    1 -1 -1 1
    1/2 -5/4 5/4 -1/2
    又はその倍数である、
    復号方法。
  41. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項40に記載の復号方法。
  42. 前記変換を適用するステップは、一連の加算、減算及びシフトの演算のみを使用して変換を計算することを含む、請求項40に記載の復号方法。
  43. 前記スケーリングされた係数のブロックに変換を適用するステップは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用することと、
    前記スケーリングされた係数のブロックに水平方向変換を適用することと、
    を含む、請求項40に記載の復号方法。
  44. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするための逆量子化器と、
    前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用する逆変換と、
    を備え、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1
    5/4 1/2 -1/2 -5/4
    1 -1 -1 1
    1/2 -5/4 5/4 -1/2
    又はその倍数である、
    デコーダ。
  45. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項44に記載のデコーダ。
  46. 前記変換を適用することは、一連の加算、減算及びシフトの演算のみを使用して変換を計算することを含む、請求項44に記載のデコーダ。
  47. 前記スケーリングされた係数のブロックに変換を適用することは、
    前記スケーリングされた係数のブロックに垂直方向変換を適用し、更に、
    前記スケーリングされた係数のブロックに水平方向変換を適用する、
    ことを含む、請求項44に記載のデコーダ。
  48. 命令を備えるコンピュータプログラムであって、前記命令は、システムによって実行されたときに、
    該システムが、各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングし、
    更に、該システムが、前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用し、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1
    5/4 1/2 -1/2 -5/4
    1 -1 -1 1
    1/2 -5/4 5/4 -1/2
    又はその倍数である、
    コンピュータプログラム
  49. 前記インデックスは、前記量子化パラメータと、前記ブロック内の前記各係数の垂直方向位置によって求められる第1の値と、前記ブロック内の前記各係数の水平方向位置によって求められる第2の値との和である、請求項48に記載のコンピュータプログラム
  50. 前記システムに前記変換を適用させる前記命令は、前記システムにより実行されたときに、該システムが一連の加算、減算及びシフトの演算のみを使用して変換を計算する命令を含む、請求項48に記載のコンピュータプログラム
  51. 前記システムに前記スケーリングされた係数のブロックに変換を適用させる前記命令は、前記システムによって実行されたときに、該システムが、
    前記スケーリングされた係数のブロックに垂直方向変換を適用し、更に、
    前記スケーリングされた係数のブロックに水平方向変換を適用する、
    命令を含む、請求項48に記載のコンピュータプログラム
  52. 各係数に対して、量子化パラメータ、前記係数のブロックのサイズ、及び前記ブロック内の前記各係数の位置に基づいて、インデックスを計算し、該インデックスを使用して単一且つ一次元アレーのルックアップテーブル(LUT)を指し示すことによって前記各係数に対するスケーリングファクタを求め、該スケーリングファクタを使用して係数のブロックをスケーリングするための手段と、
    前記スケーリングされた係数のブロックに垂直方向変換及び水平方向変換を適用する手段と、
    を備え、
    前記垂直及び水平方向変換の基底ベクトルが、
    1 1 1 1
    5/4 1/2 -1/2 -5/4
    1 -1 -1 1
    1/2 -5/4 5/4 -1/2
    又はその倍数である、
    デコーダ。
JP2004540009A 2002-09-26 2003-09-25 映像符号化のための低複雑性単一化変換 Expired - Lifetime JP4515263B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41381902P 2002-09-26 2002-09-26
US10/670,698 US7760950B2 (en) 2002-09-26 2003-09-24 Low complexity and unified transforms for video coding
PCT/US2003/030476 WO2004029880A1 (en) 2002-09-26 2003-09-25 Low complexity and unified transforms for video coding

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2010088897A Division JP4871402B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換
JP2010088899A Division JP5015285B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換

Publications (2)

Publication Number Publication Date
JP2006516835A JP2006516835A (ja) 2006-07-06
JP4515263B2 true JP4515263B2 (ja) 2010-07-28

Family

ID=32045254

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2004540009A Expired - Lifetime JP4515263B2 (ja) 2002-09-26 2003-09-25 映像符号化のための低複雑性単一化変換
JP2010088897A Expired - Lifetime JP4871402B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換
JP2010088899A Expired - Lifetime JP5015285B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2010088897A Expired - Lifetime JP4871402B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換
JP2010088899A Expired - Lifetime JP5015285B2 (ja) 2002-09-26 2010-04-07 映像符号化のための低複雑性単一化変換

Country Status (9)

Country Link
US (2) US7760950B2 (ja)
EP (1) EP1543476B1 (ja)
JP (3) JP4515263B2 (ja)
KR (1) KR100762155B1 (ja)
CN (1) CN100412907C (ja)
AU (1) AU2003272735A1 (ja)
DE (1) DE60325979D1 (ja)
ES (1) ES2321288T3 (ja)
WO (1) WO2004029880A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4515870B2 (ja) * 2004-09-24 2010-08-04 パナソニック株式会社 信号処理装置及び映像システム
US7778327B2 (en) * 2005-02-08 2010-08-17 Texas Instruments Incorporated H.264 quantization
US20060291565A1 (en) * 2005-06-22 2006-12-28 Chen Eddie Y System and method for performing video block prediction
KR100694137B1 (ko) * 2005-07-08 2007-03-12 삼성전자주식회사 동영상 부호화 장치, 동영상 복호화 장치, 및 그 방법과,이를 구현하기 위한 프로그램이 기록된 기록 매체
JP4784281B2 (ja) * 2005-11-18 2011-10-05 富士ゼロックス株式会社 復号化装置、逆量子化方法及びこれらのプログラム
JP4274234B2 (ja) * 2006-12-04 2009-06-03 ソニー株式会社 圧縮データ量制御方法及び画像データ圧縮装置
US8416861B2 (en) * 2007-10-14 2013-04-09 Nokia Corporation Fixed-point implementation of an adaptive image filter with high coding efficiency
US20090097545A1 (en) * 2007-10-14 2009-04-16 Nokia Corporation Fixed-Point Implementation of an Adaptive Image Filter with High Coding Efficiency
US8228983B2 (en) * 2007-12-04 2012-07-24 Hong Kong Applied Science And Technology Research Method and device for order-16 integer transform from order-8 integer cosine transform
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2012057470A2 (ko) * 2010-10-26 2012-05-03 한양대학교 산학협력단 부호화/복호화 장치 및 그 방법과 이를 구현하기 위한 프로그램이 기록된 기록매체
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US9807395B2 (en) 2011-01-18 2017-10-31 Dolby International Ab Video decoder with reduced dynamic range transform with inverse transform shifting memory
AU2016219700B2 (en) * 2011-01-18 2018-06-28 Dolby International Ab Video decoder with reduced dynamic range transform with inverse transform shifting memory
JP5786478B2 (ja) * 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
JP2013038758A (ja) * 2011-07-13 2013-02-21 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9560347B2 (en) 2011-08-23 2017-01-31 Hfi Innovation Inc. Method and system of transform block processing according to quantization matrix in video coding
CA2853002C (en) 2011-10-18 2017-07-25 Kt Corporation Method for encoding image, method for decoding image, image encoder, and image decoder
US20130114688A1 (en) * 2011-11-07 2013-05-09 Louis Joseph Kerofsky Video Decoder with Constrained Dynamic Range
KR20130050404A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9167261B2 (en) 2011-11-07 2015-10-20 Sharp Laboratories Of America, Inc. Video decoder with constrained dynamic range
CN103208290B (zh) * 2012-01-17 2015-10-07 展讯通信(上海)有限公司 编解码器、码流中参数解析及预处理方法与装置
CN115052157A (zh) * 2012-07-02 2022-09-13 韩国电子通信研究院 图像编码/解码方法和非暂时性计算机可读记录介质
CN104104958B (zh) * 2013-04-08 2017-08-25 联发科技(新加坡)私人有限公司 图像解码方法及其图像解码装置
US9712829B2 (en) * 2013-11-22 2017-07-18 Google Inc. Implementation design for hybrid transform coding scheme
EP3122049A4 (en) * 2014-03-19 2017-11-08 Nec Corporation Image encoding apparatus, image encoding method, and image encoding program
RU2631992C2 (ru) * 2016-02-25 2017-09-29 Кабусики Кайся Тосиба Способ кодирования изображения и способ декодирования изображения
KR102601350B1 (ko) * 2016-05-31 2023-11-13 엘지디스플레이 주식회사 데이터 압축 방법 및 이를 이용한 표시 장치
CN109246431B (zh) * 2017-07-10 2021-06-04 北京君正集成电路股份有限公司 一种基于量化参数配置的视频编码方法、装置和电子设备
AU2018204786A1 (en) * 2018-06-29 2020-01-16 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
CN110392256B (zh) * 2019-03-09 2020-12-11 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、编码端、解码端和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129015A (en) * 1990-04-19 1992-07-07 Ricoh Company Ltd. Apparatus and method for compressing still images without multiplication
JPH04282988A (ja) 1991-03-12 1992-10-08 Sony Corp データ変換装置及び方法
US5224062A (en) * 1992-03-17 1993-06-29 Sun Microsystems, Inc. Method and apparatus for fast implementation of inverse discrete cosine transform in a digital image processing system using optimized lookup tables
US5519503A (en) * 1992-04-13 1996-05-21 Sony Corporation Picture reproducing apparatus
US6009201A (en) * 1997-06-30 1999-12-28 Intel Corporation Efficient table-lookup based visually-lossless image compression scheme
US6792149B1 (en) 1998-05-07 2004-09-14 Sarnoff Corporation Method and apparatus for resizing an image frame including field-mode encoding
US6445829B1 (en) 1998-09-15 2002-09-03 Winbond Electronics Corp. Joint cosine transforming and quantizing device and joint inverse quantizing and inverse cosine transforming device
KR100390115B1 (ko) * 1999-04-12 2003-07-04 마츠시타 덴끼 산교 가부시키가이샤 화상 처리 방법, 화상 처리 장치 및 데이터 기억 매체
JP2002185967A (ja) * 2000-12-19 2002-06-28 Matsushita Electric Ind Co Ltd 画像表示装置および画像表示方法
US7082450B2 (en) * 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7096245B2 (en) * 2002-04-01 2006-08-22 Broadcom Corporation Inverse discrete cosine transform supporting multiple decoding processes
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7813574B2 (en) 2003-09-24 2010-10-12 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
WO2006009668A1 (en) 2004-06-16 2006-01-26 Memc Electronic Materials, Inc. Silicon wafer etching process and composition

Also Published As

Publication number Publication date
KR100762155B1 (ko) 2007-10-01
US7760950B2 (en) 2010-07-20
AU2003272735A1 (en) 2004-04-19
JP2010220225A (ja) 2010-09-30
ES2321288T3 (es) 2009-06-04
JP2006516835A (ja) 2006-07-06
JP4871402B2 (ja) 2012-02-08
US20040151253A1 (en) 2004-08-05
US20100034286A1 (en) 2010-02-11
WO2004029880A1 (en) 2004-04-08
US7949196B2 (en) 2011-05-24
EP1543476A1 (en) 2005-06-22
DE60325979D1 (de) 2009-03-12
CN100412907C (zh) 2008-08-20
CN1685369A (zh) 2005-10-19
KR20050065548A (ko) 2005-06-29
EP1543476B1 (en) 2009-01-21
JP2010213296A (ja) 2010-09-24
JP5015285B2 (ja) 2012-08-29

Similar Documents

Publication Publication Date Title
JP5015285B2 (ja) 映像符号化のための低複雑性単一化変換
US7813574B2 (en) Low complexity and unified transforms for video coding
AU2005237142B2 (en) Reversible transform for lossy and lossless 2-D data compression
JP4425561B2 (ja) イメージおよびビデオ符号化のための2−d変換
US8849884B2 (en) Transform design with scaled and non-scaled interfaces
CN1697328B (zh) 快速视频编解码变换实现
JP2010501911A (ja) 逆離散コサイン変換の計算中の誤差の低減
JP2005039798A (ja) データ変換処理装置及びその方法
US6671414B1 (en) Shift and/or merge of transformed data along one axis
JP2006115536A (ja) 復号方法及び復号装置
JP2005354307A (ja) 逆量子化器及びこれを用いた画像復号化装置
Lakhani Predicting dc using ac coefficients for JPEG coding
JP2008167419A (ja) データ変換処理装置及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100408

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4515263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term