JP5638230B2 - グラフィックス処理ユニットによってサポートされるビデオを復号する方法、機器およびコンピュータ読取り可能な記録媒体 - Google Patents
グラフィックス処理ユニットによってサポートされるビデオを復号する方法、機器およびコンピュータ読取り可能な記録媒体 Download PDFInfo
- Publication number
- JP5638230B2 JP5638230B2 JP2009268740A JP2009268740A JP5638230B2 JP 5638230 B2 JP5638230 B2 JP 5638230B2 JP 2009268740 A JP2009268740 A JP 2009268740A JP 2009268740 A JP2009268740 A JP 2009268740A JP 5638230 B2 JP5638230 B2 JP 5638230B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- picture
- gpu
- buffer
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/436—Methods 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 using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
1.図1に示した復号手順における異なる処理ステップ(すなわち、モジュール)をCPUまたはGPUに割り当てる。この割当てにより、CPUとGPUとの間のデータ通信が最小限になり、CPU−GPUパイプライン効果を最大限にするようにCPUおよびGPUの作業負荷のバランスがとられ、割り当てられたモジュールが効率的CUDA実現に確実に適合するようになる。
2.ピクチャデータをどこに格納するか、および残差ピクチャ(すなわち、波形変換結果)をどこに格納するか決定する。本発明は、アクセス労力を最小限にし、正確なサンプリングを達成する。
図3は、CUDAベースの高速ビデオ復号システム202の例示的なアーキテクチャを示す。システム202は、符号化されたビデオビットストリームを受信し、受信したデータを復号し、復号されたデータを表示装置204(TV、コンピュータモニタ、または他のこのような表示装置)に送信する。ビデオ復号システム202は、表示装置204の統合された構成要素として実装することもでき、その反対も可能であることに留意されたい。
プログラミングの視点から、CUDA対応GPU(本明細書ではデバイスと呼ぶ)は、非常に多数のスレッドを並列で実行することが可能な計算デバイスである。このGPUは、主CPU(ホストと呼ぶ)に対するコプロセッサとして動作し、アプリケーションの、データ並列な計算集約的部分を稼動する。このような部分(カーネルと呼ぶ)は、デバイスにダウンロードされ、GPU上で多くの異なるスレッドとして実行される。1つのカーネルにあるスレッドのバッチは、スレッドブロックのグリッドとして編成される。最初に、スレッドブロックが、何らかの共有メモリを通してデータを効率的に共有しメモリアクセスを調整するように実行の同期をとることによって協同することができる複数のスレッドによって形成される。スレッドブロック中の各スレッドは、2または3成分アレイインデックスで良い、そのスレッドIDによって識別される。第2に、多数のスレッドブロックを、ブロックのグリッドの中に一緒にバッチすることができ、グリッド中では、各ブロックは2成分アレイインデックス(そのブロックID)によって識別される。スレッドバッチ化編成を、図7に示す。入力および出力データが問題なく編成されると、スレッドは、ブロックIDおよびスレッドIDに基づいて、1つ1つが異なるデータ部分にアクセスすることができるので、異なるデータに対する並列実行を達成することができる。
1.CPUとGPUとの間のデータ通信が最小限にされる。
2.CPUおよびGPUの作業負荷のバランスがとられる。
3.GPU上にオフロードされるモジュールは、CUDAを用いて効率的に実現することができる。すなわち、データ並列な計算集約的モジュールとなる。
GPU上でのピクチャ格納に関して、少なくとも2つの問題点が解決されなければならない。すなわち、格納用のメモリ空間をどのようにして決定するか、およびY、U、V成分用のデータパッキング形式をどのようにして決定するか、である。
上述したピクチャ格納と同様に、残差ピクチャ(すなわち、それぞれの波形変換結果)の格納をどのようにして決定するかに関して、類似した2つの問題点が起こる。残差ピクチャとは、少なくとも1つの参照ピクチャに基づく予測の残余であり、すなわち、原則的には予測誤差である。受信側では、参照ピクチャ(群)は、復元ピクチャを求めるために、残差に追加されなければならない。
以下では、波形変換ブロックについてより詳細に説明する。波形変換は、デジタルビデオ処理において重要であり、広く用いられる変換である。波形変換は、たとえばJPEG、JPEG2000、MPEG−1、−2、−4、H.261、H.263、H.264など、様々な画像およびビデオ符号化標準のための主要な要素である。多数の波形変換が存在するが、非常に類似した計算公式を使っている。本開示では、DCT(離散コサイン変換。「順方向DCT」ともいう)および逆DCT(iDCT)についてのみ例示的に説明するが、同じ考察を原則的に他の波形変換に適用することができる。
8*8ピクチャデータは、f(x,y):x=0,...,7かつy=0,...,7であり、8*8DCT係数は、F(u,v):u=0,...,7かつv=0,...,7であり、
全行列が8*8次元であり、その要素は、以下のようになる。
B=[b0 b1...b7]とすると、以下の等価行列表現を得る。
・量子化行列インデックス:IQ用にどの量子化行列が使われるかを示す。全量子化行列は、IQ手順において使われる定数値である。
・量子化スケールファクタ:イントラDC値以外の全係数に対して逆量子化算術計算を実施するのに使われる。
・イントラDC IQ用に使われる増倍率:この値は、イントラDC IQがCPU上で実施される場合は省略することができる。
ブロック1002で、統一サイズデータが読み出される。
ブロック1004で、iDCT算出のための初期化ステップが実施される。式4は計算用に使われるので、合計結果はゼロに初期化される。
ブロック1006、1008、1010、1012で、iDCT計算が実施され、ここで全非ゼロ係数が連続して処理される。各係数を読み出した(1008)後、IQを任意選択で実施することができる(1010)。次いで、係数値は、式3の行列Bの適切な固定係数を使って乗算され、合計結果に加算される(1012)。最後に、全非ゼロ係数が処理された後、結果は、所与の範囲にクリップされ(1014)、残差ピクチャの記憶装置に出力される(1016)。ブロック1016で、クリップされた値は、後で「WTカーネル設計」セクションで説明するように、書込みの前にパックされる。
iDCTの場合、カーネルタスクは主として、式2が示すように、係数からピクチャデータを算出することである。ただし、アルゴリズムの選択は自明ではない。一実施形態では、式4が使われ、たとえば特許文献2や特許文献3で開示されているように、公知の方法より高速でより効率的に実現される。時間コストは、約50%削減される。固定メモリ要件も、64*64からわずか64個の浮動小数点値まで、大きく削減される。
データブロックに対するiDCTの実施に必要とされるデータについて上述し、詳細を図10に示してある。一実施形態におけるデータ編成の特徴は、非ゼロ係数用に2つのデータ構造(ブロック802、804)を使用し、全係数をCUDAテクスチャバッファ内で編成することである。ただし、一部のケースでは、たとえば極度に高いビットレートをもつビデオシーケンスに対しては、全係数(ゼロおよび非ゼロ両方)を直接格納することが有利である。逆量子化(IQ)がCPU上、それともGPU上で実施されるかによって、2つの要求入力データバージョンがある。いくつかの値を、1つのデータ要素にパックして、メモリを節約することができる。
上述したように、一実施形態におけるカーネル設計の主要ないくつかのポイントは、1つのスレッドを使って、1つのデータブロック中の1行にある全データを処理すること、「偽(fake)」データブロックを使うこと、およびパックされたデータを書込みに使うことである。1つのスレッドにある、復元された全残差ピクチャデータは、1つの構造にパックされ、一度の値割当て動作でメモリに書き込まれる。こうした発想は、互いとは独立している(すなわち、こうした発想はそれぞれ、使っても使わなくてもよい)。第1の発想、すなわち1つのスレッドを使って1つのデータブロック中の1行にある全データを処理することは、効率のためには最も重要な要素である。
以下では、動き補償ブロックについてより詳細に説明する。
・動き補償の詳細なサブタスクをカーネルとして指定する。効率性を最適化するために、カーネルは、効率的に構造化されたデータ並列な計算集約的タスクを実施する。
・入力および出力データをカーネル実行用に編成する。データには、CPUおよびGPU関数中で容易にアクセスすることができ、CPUとGPUとの間のデータ通信は最小限にされる。
・テクスチャ取出しにより参照ピクチャをサンプリングする。
各MCカーネル向けの基本動作は、図13に示すように、参照ブロック(群)の発見、データサンプリング、残差ピクチャデータの読出し、および加算の実施である。いくつかの要素により、この手順が柔軟になる。MPEG−2プログレッシブシーケンスの場合、このような要素は、以下のものである。
・ピクチャブロックの解像度:Y成分に対しては常に16×16であり、UおよびV成分に対しては、シーケンスのクロマ形式に依存して、16×16、8×16、または8×8で良い。
・参照ブロック(群):ゼロ参照ブロック、1つの前方参照ブロック、1つの後方参照ブロックおよび2つの参照ブロック(双方向)など、4つのケースがある。
・参照におけるサンプリング位置:やはり4つのケースがある。双方、水平および垂直座標は、整数または半位置(2つの隣接整数位置の中央)にあって良い。
上述した条件が満足されない場合、いくつかの参照タイプを1つのカーネルにマージし、異なるタイプ向けに分岐の条件つきチェックを用いることが有利である。参照タイプに合わせた種々の組合せスタイルが可能である。
動き補償のために必要とされるデータは、以下を含む。
・動き補償されるべきブロックの位置(左上のピクセル座標、またはこの点からの固定オフセットとして)。
・ゼロ、1つの前方、1つの後方、または2つの参照を示すフラグである参照タイプ。
・前方参照ブロックの位置(動きベクトルまたは絶対座標などで表すことができる)
・後方参照ブロックの位置(動きベクトルまたは絶対座標などで表すことができる)
一部のデータは、異なる参照タイプ向けに異なるカーネルが定義される場合は不要である。たとえば、各参照タイプが専用カーネルによって処理される場合、参照タイプおよび未使用参照ブロック位置は必要とされない。
カーネル設計は、アルゴリズムの効率にとって重要である。簡単な実現法は、同じ算出が各ピクセル上で実施されるので、単一のピクセルを別個のスレッド中で処理することであろう。ただし、この解決法は、性能の面で非常に貧弱である。主たる問題は、MCがメモリ集約的であって計算集約的ではなく、したがって、CUDA実装には必ずしも合わないことである。以下の措置により、効率が向上する。
・1つのスレッドを使って、1つのピクチャブロック中の1行にある全ピクセルを処理する。一実施形態では、1つのスレッドブロックが、固定数(通常、PICT_BLOCK_BASE_NUMとして記録されている16または8)のピクチャブロックを処理するのに使われ、スレッドIDには2Dインデックスを使うが、一方の値は垂直位置を指し、もう一方は異なるピクチャブロックを指す。
・パックされたデータを読出しに使う。一実施形態では、スレッド中で必要とされる全残差ピクチャデータが1つの構造にパックされ、一度の値割当て動作で読み出される。
・パックされたデータを書込みに使う。一実施形態では、1つのスレッドにある、動き補償された全ピクセルが1つの構造にパックされ、一度の値割当て動作でメモリに書き込まれる。
・追加メモリを使って、「偽」ピクチャブロックを取り扱う。
先に言及したように、PICT_BLOCK_BASE_NUMピクチャブロックが、1つのスレッドブロック中で処理される。ピクチャブロックの総数がPICT_BLOCK_BASE_NUMの倍数でない場合、偽ピクチャブロックに対応する一部のスレッドは、不正動作を行うことになる。簡単な解決法は、ブロックIDおよびスレッドIDに対して条件つきチェックを導入することである。ただし、この解決法は、効率的ではない。本発明の一態様によると、より優れた解決法は、いくつかの「偽」ピクチャブロックを作成して、総数をPICT_BLOCK_BASE_NUMの倍数にすることである。こうした偽ブロックでは、対応するスレッドが無害な動作を実施する。たとえば、宛先アドレスは、オリジナルピクチャ範囲の外に設定され、そうすることによって、適切などのデータも乱されることはなく、参照位置はブロック位置と同じになる。この例では、こうした外部ピクセルを含むように、小規模追加メモリをピクチャデータ割振り段階で割り振ることができる。
参照ピクセル値は、動き補償中に残差ピクチャデータに加算される。このタスクは、テクスチャ取出しによって遂行される。目標位置(整数pelまたは半pel)は、テクスチャ座標に設定され、texfetch、すなわちCUDA APIコールを用いて、ピクセル値を取得することができる。サンプリング(補間)は、テクスチャ座標が半pel位置を示す場合、自動的に実施される。コードは、以下のようになる。
INT_TYPE pixel_val = texfetch (tex_ref_picture, x_coord, y_coord)*RANGE + ROUND (6)
本発明は以下の態様を含む。
(付記1)
CPUおよびGPUを備えたハードウェアアーキテクチャ上で、符号化されたビデオデータを復号する方法であって、前記GPUは、グローバルバッファである第1のバッファおよびテクスチャバッファである第2のバッファを有し、
前記CPU上で、前記符号化されたビデオのヘッダおよびマクロブロックを復号するステップであって、復号されたピクチャデータが取得されるステップと、
前記復号されたピクチャデータに対して、任意選択で逆量子化を実施するステップと、
前記復号されたピクチャデータまたは前記逆量子化されたピクチャデータを、前記GPUの前記グローバルバッファに転送するステップとを備え、
前記GPU上で実施される、
前記任意選択の逆量子化が前記CPU上で実施されていない場合、前記転送されたデータを逆量子化するステップと、
前記逆量子化されたデータを波形変換するステップと、
動き補償を実施するステップであって、復元されたピクチャデータが取得され、1つのピクチャブロック中の1行にある全ピクセルを処理するのに1つのスレッドが使われ、一定数のピクチャブロックを処理するのに1つのスレッドブロックが使われるステップと、
前記復元されたピクチャデータを前記GPUの前記グローバルバッファにバッファリングするステップと、
前記復号されたピクチャデータが少なくとももう1つのピクチャを復号する参照として使われるかどうか判定し、参照として使われる場合、前記復号されたピクチャデータを前記グローバルバッファから前記テクスチャバッファにコピーするステップと、
前記復元ピクチャデータを前記グローバルまたはテクスチャバッファからディスプレイに転送するステップと
をさらに備えることを特徴とする方法。
(付記2)
前記GPU上で実施される逆量子化する前記ステップ、波形変換する前記ステップおよび動き補償を実施する前記ステップは、スレッド中で処理され、スレッドは、前記テクスチャバッファへの読取り専用アクセス、および前記グローバルバッファへの読出し書込みアクセスを有することを特徴とする付記1に記載の方法。
(付記3)
動き補償を実施する前記ステップにおいて、直前ピクチャからの参照データは、前記テクスチャバッファから読み出されることを特徴とする付記1または2に記載の方法。
(付記4)
前記ピクチャデータは、複数の色空間フォーマットのうち1つのフォーマットの輝度および彩度成分(YUV)を含み、前記GPUは、少なくとも2つの並列データ層に対して作用し、
前記ピクチャデータの前記色空間フォーマットを決定するステップと、
前記決定された色空間フォーマットに依存して、第1の色空間フォーマットが決定された場合、輝度データ(Y)および彩度データ(UV)を単一のデータ層に一緒に格納し処理し、異なる色空間フォーマットが決定された場合、輝度データ(Y)および彩度データ(UV)を2通りの別個のデータ層に格納し処理するステップと
をさらに備えることを特徴とする付記1乃至3いずれかに記載の方法。
(付記5)
前記GPUは少なくとも3つの並列データ層に対して作用し、残差ピクチャの前記輝度および彩度データは、3通りの別個のデータ層において格納され処理されることを特徴とする付記4に記載の方法。
(付記6)
前記GPUは、CUDAアーキテクチャを用いることを特徴とする付記1乃至5いずれかに記載の方法。
(付記7)
前記GPUは、GPUネイティブ命令とプログラミング言語との間のアプリケーションプログラミングインタフェース(API)に基づいて動作されることを特徴とする付記1乃至5いずれかに記載の方法。
(付記8)
波形変換を実施する前記ステップで、非ゼロとなるような係数のみが、そのそれぞれの係数行列インデックスとともに格納されることを特徴とする付記1乃至7いずれかに記載の方法。
(付記9)
波形変換をする前記ステップは、1つまたは複数のスレッド中で処理され、前記スレッドは、少なくともアドレスおよび長さ値を含む、一定長のデータセットを入力データとして受け取り、前記アドレスは、前記スレッド向けの実際の入力データが格納される前記グローバルバッファ内部の記憶場所をポイントし、前記長さは、前記スレッドに関する格納された入力データの量を示すことを特徴とする付記1乃至8いずれかに記載の方法。
(付記10)
逆量子化、波形変換および動き補償の前記ステップは、共通スレッド中で一緒に処理されることを特徴とする付記1乃至9いずれかに記載の方法。
(付記11)
波形変換ブロックを初期化するステップをさらに備え、前記初期化は、
残差ピクチャバッファを割り振るステップであって、残差ピクチャデータはグローバルメモリに割り振られるステップと、
iDCT算出のために定数行列を準備するステップと
を含むことを特徴とする付記1乃至10いずれかに記載の方法。
(付記12)
必要とされる波形変換に、どの定数行列が適しているか決定するステップと、
前記決定された定数行列を選択するステップと、
前記選択された行列に切り換えるステップと
をさらに備えることを特徴とする付記11に記載の方法。
(付記13)
現在の残差ピクチャのデータブロックの数を決定するステップと、
利用されるビデオ符号化標準に従って、データブロックの数がパラメータRESIDUAL_BLOCK_BASE_NUMの整数倍になるまで、偽データブロックを追加するステップと
をさらに備えることを特徴とする付記1乃至12いずれかに記載の方法。
(付記14)
動き補償の前記ステップで、スレッド中で必要とされる全残差ピクチャデータは、1つの構造にパックされ、一度の値割当て動作で読み出されることを特徴とする付記1乃至13いずれかに記載の方法。
(付記15)
付記1乃至14いずれかに記載の方法を実施するのに適していることを特徴とする機器。
(付記16)
付記1乃至14いずれかに記載の方法をコンピュータに実施させる命令を格納したことを特徴とするコンピュータ読取り可能媒体。
Claims (14)
- CPUおよびGPUを備えたハードウェアアーキテクチャ上で、符号化されたビデオデータを復号する方法であって、前記GPUは、グローバルバッファである第1のバッファおよびテクスチャバッファである第2のバッファを有し、
前記CPU上で、前記符号化されたビデオのヘッダおよびマクロブロックを復号するステップであって、復号されたピクチャデータが取得される、ステップと、
前記復号されたピクチャデータに対して、任意選択で逆量子化を実施するステップと、
前記復号されたピクチャデータまたは前記逆量子化されたピクチャデータを、前記GPUの前記グローバルバッファに転送するステップと、
を備え、
前記GPU上で実施される、
前記任意選択の逆量子化が前記CPU上で実施されていない場合、前記転送されたデータを逆量子化するステップと、
前記逆量子化されたデータを波形変換するステップと、
動き補償を実施するステップであって、復元されたピクチャデータが取得され、一定数のピクチャブロックを処理するのに1つのスレッドブロックが使われ、前記スレッドブロックの1つのスレッドが前記一定数のピクチャブロックにおけるピクセルの行における全てのピクセルを処理するために使用され、前記スレッドにおいて必要な全ての残差ピクチャデータは1つの構造にパックされ、一度の値割り当て動作で読み出される、ステップと、
前記復元されたピクチャデータを前記GPUの前記グローバルバッファにバッファリングするステップと、
前記復号されたピクチャデータが少なくとももう1つのピクチャを復号する参照として使われるかどうか判定し、参照として使われる場合、前記復号されたピクチャデータを前記グローバルバッファから前記テクスチャバッファにコピーするステップと、
前記復元ピクチャデータを前記グローバルバッファまたはテクスチャバッファからディスプレイに転送するステップと、
をさらに備える、前記方法。 - 前記GPU上で実施される逆量子化する前記ステップ、波形変換する前記ステップおよび動き補償を実施する前記ステップは、スレッド中で処理され、スレッドは、前記テクスチャバッファへの読取り専用アクセス、および前記グローバルバッファへの読出し書込みアクセスを有する、請求項1に記載の方法。
- 動き補償を実施する前記ステップにおいて、直前ピクチャからの参照データは、前記テクスチャバッファから読み出される、請求項1または2に記載の方法。
- 前記ピクチャデータは、複数の色空間フォーマットのうち1つのフォーマットの輝度および彩度成分(YUV)を含み、前記GPUは、少なくとも2つの並列データ層に対して作用し、
前記ピクチャデータの前記色空間フォーマットを決定するステップと、
前記決定された色空間フォーマットに依存して、第1の色空間フォーマットが決定された場合、輝度データ(Y)および彩度データ(UV)を単一のデータ層に一緒に格納し処理し、異なる色空間フォーマットが決定された場合、輝度データ(Y)および彩度データ(UV)を2通りの異なる別個のデータ層に格納し処理するステップと、
をさらに備える、請求項1乃至3いずれかに記載の方法。 - 前記GPUは少なくとも3つの並列データ層に対して作用し、残差ピクチャの前記輝度および彩度データは、3通りの異なる別個のデータ層において格納され処理される、請求項4に記載の方法。
- 前記GPUは、GPUネイティブ命令とプログラミング言語との間のアプリケーションプログラミングインタフェース(API)に基づいて動作される、請求項1乃至5いずれかに記載の方法。
- 波形変換を実施する前記ステップで、非ゼロとなるような係数のみが、そのそれぞれの係数行列インデックスとともに格納される、請求項1乃至6いずれかに記載の方法。
- 波形変換をする前記ステップは、1つまたは複数のスレッド中で処理され、前記スレッドは、少なくともアドレスおよび長さ値を含む、一定長のデータセットを入力データとして受け取り、前記アドレスは、前記スレッド向けの実際の入力データが格納される前記グローバルバッファ内部の記憶場所をポイントし、前記長さは、前記スレッドに関する格納された入力データの量を示す、請求項1乃至7いずれかに記載の方法。
- 逆量子化、波形変換および動き補償の前記ステップは、単一のカーネル中で一緒に処理される、請求項1乃至8いずれかに記載の方法。
- 波形変換ブロックを初期化するステップをさらに備え、前記初期化は、
残差ピクチャバッファを割り振るステップであって、残差ピクチャデータは前記グローバルバッファに割り振られる、ステップと、
iDCT算出のために定数行列を準備するステップと、
を含む、請求項1乃至9いずれかに記載の方法。 - 必要とされる波形変換に、どの定数行列が適しているか決定するステップと、
前記決定された定数行列を選択するステップと、
前記選択された行列に切り換えるステップと、
をさらに備える、請求項10に記載の方法。 - 現在の残差ピクチャのデータブロックの数を決定するステップと、
利用されるビデオ符号化標準に従って、データブロックの数がパラメータRESIDUAL_BLOCK_BASE_NUMの整数倍になるまで、偽データブロックを追加するステップと、
をさらに備える、請求項1乃至11いずれかに記載の方法。 - 請求項1乃至12いずれかに記載の方法を実施するための機器。
- 請求項1乃至12いずれかに記載の方法をコンピュータに実施させる命令を格納したコンピュータ読取り可能な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08305871A EP2192780A1 (en) | 2008-11-28 | 2008-11-28 | Method for video decoding supported by Graphics Processing Unit |
EP08305871.9 | 2008-11-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010130696A JP2010130696A (ja) | 2010-06-10 |
JP5638230B2 true JP5638230B2 (ja) | 2014-12-10 |
Family
ID=40711715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009268740A Expired - Fee Related JP5638230B2 (ja) | 2008-11-28 | 2009-11-26 | グラフィックス処理ユニットによってサポートされるビデオを復号する方法、機器およびコンピュータ読取り可能な記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8542745B2 (ja) |
EP (2) | EP2192780A1 (ja) |
JP (1) | JP5638230B2 (ja) |
CN (1) | CN101754013B (ja) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244095A (ja) * | 2009-04-01 | 2010-10-28 | Seiko Epson Corp | データ処理装置、印刷システムおよびプログラム |
US9354944B2 (en) * | 2009-07-27 | 2016-05-31 | Advanced Micro Devices, Inc. | Mapping processing logic having data-parallel threads across processors |
US20110194606A1 (en) * | 2010-02-09 | 2011-08-11 | Cheng-Yu Hsieh | Memory management method and related memory apparatus |
KR101373814B1 (ko) * | 2010-07-31 | 2014-03-18 | 엠앤케이홀딩스 주식회사 | 예측 블록 생성 장치 |
US20130148717A1 (en) * | 2010-08-26 | 2013-06-13 | Freescale Semiconductor, Inc. | Video processing system and method for parallel processing of video data |
CN102158694B (zh) * | 2010-12-01 | 2012-12-26 | 航天恒星科技有限公司 | 一种基于gpu的遥感图像解压缩方法 |
CN102023838B (zh) * | 2010-12-17 | 2012-08-15 | 浪潮(北京)电子信息产业有限公司 | Mrc图片文件的处理方法及系统 |
DE102011075261A1 (de) * | 2011-05-04 | 2012-11-08 | Robert Bosch Gmbh | Verfahren zum Bearbeiten von Videodaten und eine Anordnung zur Durchführung des Verfahrens |
CN102622723A (zh) * | 2011-05-25 | 2012-08-01 | 上海大学 | 基于cuda及边缘检测的图像插值 |
US20130021350A1 (en) * | 2011-07-19 | 2013-01-24 | Advanced Micro Devices, Inc. | Apparatus and method for decoding using coefficient compression |
TWM430773U (en) * | 2011-11-03 | 2012-06-01 | Curelan Technology Co Ltd | A device with high-speed filtering efficiency |
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
CN102497550A (zh) * | 2011-12-05 | 2012-06-13 | 南京大学 | H.264编码中运动补偿插值的并行加速方法及装置 |
BR112014015171B1 (pt) * | 2011-12-22 | 2020-10-06 | Samsung Electronics Co., Ltd | Aparelho de decodificação de vídeo |
CN102547289B (zh) * | 2012-01-17 | 2015-01-28 | 西安电子科技大学 | 基于gpu并行实现的快速运动估计方法 |
US8689233B2 (en) * | 2012-01-25 | 2014-04-01 | International Business Machines Corporation | Distributed function execution for hybrid systems |
CN104396244B (zh) * | 2012-04-16 | 2019-08-09 | 诺基亚技术有限公司 | 用于视频编码和解码的装置、方法和计算机可读存储介质 |
CN103186366B (zh) * | 2012-07-12 | 2017-05-03 | 深圳市康必达控制技术有限公司 | 基于cuda并行计算实现电力系统电磁暂态实时仿真测试方法 |
CN102789500B (zh) * | 2012-07-17 | 2014-06-04 | 南京特雷多信息科技有限公司 | 一种音频比较方法 |
CN103108186A (zh) * | 2013-02-21 | 2013-05-15 | 中国对外翻译出版有限公司 | 实现视频高清传播的方法 |
US10776532B2 (en) | 2013-02-22 | 2020-09-15 | Nvidia Corporation | Modified effective mass for parallel rigid body simulation |
US10614257B2 (en) | 2013-02-22 | 2020-04-07 | Navidia Corporation | Parallel linear complementarity solver for rigid body dynamics |
US20140257769A1 (en) * | 2013-03-06 | 2014-09-11 | Nvidia Corporation | Parallel algorithm for molecular dynamics simulation |
US9311721B1 (en) * | 2013-04-04 | 2016-04-12 | Sandia Corporation | Graphics processing unit-assisted lossless decompression |
JP6186429B2 (ja) | 2013-04-12 | 2017-08-23 | 株式会社スクウェア・エニックス・ホールディングス | 情報処理装置、制御方法、プログラム、及び記録媒体 |
US20140320592A1 (en) * | 2013-04-30 | 2014-10-30 | Microsoft Corporation | Virtual Video Camera |
US9078001B2 (en) * | 2013-06-18 | 2015-07-07 | Texas Instruments Incorporated | Efficient bit-plane decoding algorithm |
US9565454B2 (en) | 2013-06-24 | 2017-02-07 | Microsoft Technology Licensing, Llc | Picture referencing control for video decoding using a graphics processor |
WO2015021587A1 (en) * | 2013-08-12 | 2015-02-19 | Intel Corporation | Techniques for low power image compression and display |
US9405575B2 (en) | 2013-09-09 | 2016-08-02 | Apple Inc. | Use of multi-thread hardware for efficient sampling |
US9799087B2 (en) | 2013-09-09 | 2017-10-24 | Apple Inc. | Shader program profiler |
US9467399B2 (en) * | 2013-10-17 | 2016-10-11 | Marvell World Trade Ltd. | Processing concurrency in a network device |
US20150228106A1 (en) * | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
US20150237356A1 (en) * | 2014-02-18 | 2015-08-20 | Microsoft Corporation | Host encoder for hardware-accelerated video encoding |
US9852522B2 (en) * | 2014-03-17 | 2017-12-26 | Sony Interactive Entertainment Inc. | Image decoder, graphics processing system, image decoding method, and graphics processing method |
CN105338358B (zh) * | 2014-07-25 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 对图像进行解码的方法及装置 |
CN105472384B (zh) * | 2014-07-29 | 2018-12-07 | 浙江大华技术股份有限公司 | 一种视频图像编码方法和装置 |
US9674540B2 (en) | 2014-09-25 | 2017-06-06 | Microsoft Technology Licensing, Llc | Processing parameters for operations on blocks while decoding images |
CN105635740B (zh) * | 2014-10-27 | 2019-05-28 | 阿里巴巴集团控股有限公司 | 对图像进行解码的方法及装置 |
CN105243351A (zh) * | 2015-10-09 | 2016-01-13 | 宁波萨瑞通讯有限公司 | 一种基于移动终端的扫码方法 |
US10559112B2 (en) * | 2016-03-11 | 2020-02-11 | Intel Corporation | Hybrid mechanism for efficient rendering of graphics images in computing environments |
CN105843692A (zh) * | 2016-03-18 | 2016-08-10 | 国家电网公司 | 一种异构计算系统 |
US10237566B2 (en) | 2016-04-01 | 2019-03-19 | Microsoft Technology Licensing, Llc | Video decoding using point sprites |
US10575007B2 (en) * | 2016-04-12 | 2020-02-25 | Microsoft Technology Licensing, Llc | Efficient decoding and rendering of blocks in a graphics pipeline |
US10157480B2 (en) | 2016-06-24 | 2018-12-18 | Microsoft Technology Licensing, Llc | Efficient decoding and rendering of inter-coded blocks in a graphics pipeline |
US10387991B2 (en) * | 2016-07-01 | 2019-08-20 | Intel Corporation | Method and apparatus for frame buffer compression |
US11197010B2 (en) | 2016-10-07 | 2021-12-07 | Microsoft Technology Licensing, Llc | Browser-based video decoder using multiple CPU threads |
CN106645868A (zh) * | 2016-11-16 | 2017-05-10 | 南方电网科学研究院有限责任公司 | 一种短路电流的扫描方法及装置 |
CN106791861B (zh) * | 2016-12-20 | 2020-04-07 | 杭州当虹科技股份有限公司 | 一种基于CUDA架构的DNxHD VLC编码方法 |
CN107135392B (zh) * | 2017-04-21 | 2019-12-10 | 西安电子科技大学 | 基于异步模式的hevc运动搜索并行方法 |
US10872394B2 (en) * | 2017-04-27 | 2020-12-22 | Daegu Gyeongbuk Institute Of Science And Technology | Frequent pattern mining method and apparatus |
CN107231558B (zh) * | 2017-05-23 | 2019-10-22 | 江苏火米互动科技有限公司 | 一种基于cuda的h.264并行编码器的实现方法 |
US10310830B2 (en) | 2017-06-02 | 2019-06-04 | Apple Inc. | Shader profiler |
US10614541B2 (en) | 2017-06-29 | 2020-04-07 | Nvidia Corporation | Hybrid, scalable CPU/GPU rigid body pipeline |
JP6377222B2 (ja) * | 2017-07-31 | 2018-08-22 | 株式会社スクウェア・エニックス・ホールディングス | 情報処理装置、制御方法、プログラム、及び記録媒体 |
CN107809643B (zh) * | 2017-11-13 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种图像的解码方法、装置及介质 |
CN107888924A (zh) * | 2017-11-30 | 2018-04-06 | 江西洪都航空工业集团有限责任公司 | 一种无损视频加速分析方法 |
CN108965814A (zh) * | 2018-07-27 | 2018-12-07 | 高新兴科技集团股份有限公司 | 一种基于cuda加速技术的视频混合解码渲染方法 |
CN111147926B (zh) * | 2018-11-02 | 2022-05-06 | 杭州海康威视数字技术股份有限公司 | 一种数据转码方法及装置 |
CN109451313A (zh) * | 2018-12-14 | 2019-03-08 | 深圳市网心科技有限公司 | 一种视频编码方法、系统及电子设备和存储介质 |
CN109739559A (zh) * | 2019-01-08 | 2019-05-10 | 武汉中旗生物医疗电子有限公司 | Cuda异构平台中的数据处理方法及设备 |
CN112019847A (zh) * | 2019-05-28 | 2020-12-01 | 杭州海康威视数字技术股份有限公司 | 解码方法及电子设备 |
CN111402380B (zh) * | 2020-03-12 | 2023-06-30 | 杭州小影创新科技股份有限公司 | 一种gpu压缩纹理处理方法 |
CN113518227B (zh) * | 2020-04-09 | 2023-02-10 | 于江鸿 | 数据处理的方法和系统 |
CN112565603B (zh) * | 2020-11-30 | 2022-05-10 | 维沃移动通信有限公司 | 图像处理方法、装置及电子设备 |
CN113553103B (zh) * | 2021-06-03 | 2022-09-23 | 中国人民解放军战略支援部队信息工程大学 | 基于cpu+gpu异构处理平台的多核并行调度方法 |
CN113507610B (zh) * | 2021-06-07 | 2023-03-24 | 翱捷智能科技(上海)有限公司 | 一种主从系统多路并发解码jpg图像的方法及装置 |
CN113538204A (zh) * | 2021-06-30 | 2021-10-22 | 上海联影医疗科技股份有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
US12062202B2 (en) | 2021-09-24 | 2024-08-13 | Argo AI, LLC | Visual localization against a prior map |
CN116483587B (zh) * | 2023-06-21 | 2023-09-08 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于图像分割的视频超分并行方法、服务器及介质 |
CN117440166B (zh) * | 2023-09-19 | 2024-04-26 | 北京麟卓信息科技有限公司 | 基于内存访问特征分析的视频编码和解码方式检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7646817B2 (en) | 2003-03-28 | 2010-01-12 | Microsoft Corporation | Accelerating video decoding using a graphics processing unit |
US7558428B2 (en) | 2004-09-13 | 2009-07-07 | Microsoft Corporation | Accelerated video encoding using a graphics processing unit |
WO2007148355A1 (en) * | 2006-06-22 | 2007-12-27 | Stmicroelectronics S.R.L. | A method and system for video decoding by means of a graphic pipeline, computer program product therefor |
-
2008
- 2008-11-28 EP EP08305871A patent/EP2192780A1/en not_active Withdrawn
-
2009
- 2009-11-06 EP EP09175216.2A patent/EP2192781A3/en not_active Withdrawn
- 2009-11-17 US US12/590,978 patent/US8542745B2/en not_active Expired - Fee Related
- 2009-11-24 CN CN200910225048.1A patent/CN101754013B/zh not_active Expired - Fee Related
- 2009-11-26 JP JP2009268740A patent/JP5638230B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010130696A (ja) | 2010-06-10 |
EP2192781A3 (en) | 2015-07-08 |
CN101754013B (zh) | 2014-02-19 |
US8542745B2 (en) | 2013-09-24 |
CN101754013A (zh) | 2010-06-23 |
EP2192780A1 (en) | 2010-06-02 |
EP2192781A2 (en) | 2010-06-02 |
US20100135418A1 (en) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5638230B2 (ja) | グラフィックス処理ユニットによってサポートされるビデオを復号する方法、機器およびコンピュータ読取り可能な記録媒体 | |
US20140153635A1 (en) | Method, computer program product, and system for multi-threaded video encoding | |
US11863769B2 (en) | Bandwidth saving architecture for scalable video coding | |
US8106921B2 (en) | Differential encoding using a 3d graphics processor | |
US7813570B2 (en) | Accelerated video encoding using a graphics processing unit | |
Shen et al. | Accelerate video decoding with generic GPU | |
CN101123723A (zh) | 基于图形处理器的数字视频解码方法 | |
US20140028703A1 (en) | Render-assisted compression for remote graphics | |
WO2016153691A1 (en) | Compaction for memory hierarchies | |
US20080301681A1 (en) | Information processing apparatus, information processing method and computer program | |
Pieters et al. | Motion estimation for H. 264/AVC on multiple GPUs using NVIDIA CUDA | |
Pieters et al. | Performance evaluation of H. 264/AVC decoding and visualization using the GPU | |
Deng et al. | GPU-based real-time decoding technique for high-definition videos | |
Hirvonen et al. | H. 263 video decoding on programmable graphics hardware | |
Sun et al. | CFU: Multi-purpose configurable filtering unit for mobile multimedia applications on graphics hardware | |
Jo et al. | Flexible multi-core platform for a multiple-format video decoder | |
Young et al. | Image processing and video algorithms with CUDA | |
de Medeiros | Video coding on multicore graphics processors (GPUs) | |
Montero et al. | Optimising lossless stages in a GPU-based MPEG encoder | |
Seitner et al. | A high-level simulator for the H. 264/AVC decoding process in multi-core systems | |
Krajcevski | Improved encoding for compressed textures | |
Pau et al. | H. 264 video decoding compatible with Vector Graphics | |
Pastrnaka et al. | Adaptive decoding of MPEG-4 sprites for memory-constrained embedded systems | |
Nguyen-Phuc et al. | VLSI architecture of a MPEG-4 visual renderer | |
Van Rijsselbergen et al. | GPU-driven recombination and transformation of YCoCg-R video samples |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20121004 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20121004 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140317 |
|
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: 20140924 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141022 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5638230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |