JP2012508485A - Gpu加速を伴うソフトウエアビデオトランスコーダ - Google Patents

Gpu加速を伴うソフトウエアビデオトランスコーダ Download PDF

Info

Publication number
JP2012508485A
JP2012508485A JP2011534905A JP2011534905A JP2012508485A JP 2012508485 A JP2012508485 A JP 2012508485A JP 2011534905 A JP2011534905 A JP 2011534905A JP 2011534905 A JP2011534905 A JP 2011534905A JP 2012508485 A JP2012508485 A JP 2012508485A
Authority
JP
Japan
Prior art keywords
gpu
decoder
video
cpu
video stream
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.)
Pending
Application number
JP2011534905A
Other languages
English (en)
Other versions
JP2012508485A5 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2012508485A publication Critical patent/JP2012508485A/ja
Publication of JP2012508485A5 publication Critical patent/JP2012508485A5/ja
Pending 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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • H04N19/436Methods 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

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)
  • Television Signal Processing For Recording (AREA)
  • Television Systems (AREA)

Abstract

【解決手段】
ここに開示される本発明の実施形態は、上述した従来方法の問題に対する解決法を提供する。以下の説明においては、種々の例が例示のために与えられるが、限定することは意図されていない。実施形態は、多重中央処理ユニット(CPU)コア及び/又は1つ以上のグラフィカル処理ユニット(GPU)の使用を通してのビデオトランスコーディングの作業負荷を共有するトランスコーディングシステムを対象としており、GPU内の2つのコンポーネント、即ちデコードステップのための専用のハードコードされた又はプログラム可能なビデオデコーダとスケーリング及びエンコーディングのための計算シェーダの使用を含む。システムは、GPUを用いてビデオデコードを加速するための業界標準であるマイクロソフトDXVAの使用を、GPUエンコーディングスキーム及びビデオをスケーリングする中間ステップと組み合わせる。
【選択図】図3

Description

本出願は、2008年8月8日出願で現在係属中の特許出願番号12/189,060、「GPU加速を伴うソフトウエアビデオエンコーダ」の部分継続出願であり、その出願は、2007年12月19日出願の米国特許出願番号11/960,640の部分継続出願であり、その出願は、2007年5月11日出願の米国仮出願番号60/928,799の利益を主張すると共に、2007年12月5日出願の米国特許出願番号11/951,222に関連しており、これらの出願はその全てを参照としてここに組み込まれる。
開示される実施形態は、概してビデオディスプレイ技術に関し、更に特定的にはデジタルビデオデータをトランスコードすること(transcoding)に関する。
トランスコーディング(transcoding)は、1つのデジタル的にエンコードされた(encoded)フォーマットの他のフォーマットへの直接的なデジタル―デジタル変換である。トランスコーディングは、コンテンツ適合の多くの分野において見出すことができ、そして互換性のない又は旧式のデータをより適切なフォーマットへ変換するためにしばしば用いられる。トランスコーディングはまた、例えば歌曲をCDフォーマットからコンピュータ及びMP3プレーヤでの再生のためのMP3フォーマットへ変換する場合のように、異なる再生デバイスにおける使用のための異なる種類のデジタルメディア上でコンテンツをアーカイブし又は分配するためにも用いられる。トランスコーディングは更に、携帯電話コンテンツ適合の分野においても標準的に用いられる。この場合、携帯デバイス及びそれらの能力の多様性(diversity)に起因してトランスコーディングが必要である。この多様性は、ソースコンテンツが目標デバイス上で適切に再生することを確実にするために、コンテンツ適合の中間状態を必要とする。
トランスコーディングが用いられる1つの一般的な分野はマルチメディアメッセージングサービス(MMS)であり、MMSは、携帯電話同士でメディアによるメッセージ(画像、音声、テキスト及びビデオ)を送受信するために用いられる技術である。例えば、カメラ付き携帯電話がデジタル画像を撮影するために用いられる場合、通常は少なくとも640×480解像度の高品質画像が生成される。画像を他の携帯電話へ送信することは、この高解像度画像が、目標デバイスの画面サイズ及びディスプレイ制限に良好に合わせるために、より少ない色を伴うより低解像度の画像へトランスコードされることを必要とするであろう。トランスコーディングはまた、ホームシアターソフトウエアによって、例えばビデオファイルによるディスクスペースの使用を低減するためにも用いられる。このアプリケーションにおいて最も一般的な動作は、MPEG−2ファイルのMPEG−4フォーマットへのトランスコーディングである。大量のオンラインマルチメディアコンテンツ及び多数の利用可能な異なるデバイスに起因して、任意の携帯デバイスにおける任意のマルチメディアコンテンツに対する正確な検索能力を提供するために、任意の入力フォーマットから任意の出力フォーマットへのリアルタイムのトランスコーディングが必要になってきている。
現在のトランスコーディングスキームは、処理システムのCPU資源のみを典型的には利用している。ビデオデータのサイズのために、システムに対してかなりな処理オーバーヘッドを提起する一方で、GPU帯域のような追加的に利用可能な資源はそのような動作においてしばしば十分には活用されていない。
従って、トランスコードパイプラインにおいて実行されるタスクに対してGPU及びCPUの両方の資源を利用するトランスコーディングプロセスが要望されている。
実施形態は例示を目的として示されており、そして添付の図面の形態に限定されるものではなく、図面において同様の参照符号は同様の要素を示す。
図1は実施形態に従いビデオトランスコーディングの方法を実施するビデオトランスコーディングパイプラインのブロック図である。 図2は実施形態に従いビデオトランスコーダパイプラインを実装している処理システムのブロック図である。 図3は実施形態に従い更なる処理コンポーネントを伴うビデオトランスコーディングパイプラインを示す図である。 図4は実施形態に従いビデオデコードプロセスを実施するビデオ編集パイプラインを示す図である。 図5は実施形態に従いビデオデータデコーディングのためのフレームプーリング(frame pooling)を含むビデオ編集パイプラインを示す図である。 図6は実施形態に従いビデオコンテンツ及びオーディオコンテンツの両方を含むコンテンツのための完全なトランスコーディングパイプラインを示す図である。 図7は実施形態に従い多重デコードプロセスを用いてデジタルビデオデータをトランスコーディングする全体的な方法を示すフローチャートである。
ここに説明される本発明の実施形態は、上述した従来方法の問題に対する解決策を提供する。以下の説明において、例示を目的として種々の例が与えられるが、そのどれもが限定することを意図されてはいない。実施形態は、多重中央処理ユニット(CPU)コア及び/又は1つ以上のグラフィカル処理ユニット(GPU)の使用によるビデオトランスコーディングの作業負荷を共有するトランスコーディングシステムを対象としており、これらはGPU内の2つのコンポーネントの使用、即ちデコードステップのための専用のハードコードされた又はプログラム可能なビデオデコーダ並びにスケーリング及びエンコーディングのための計算シェーダ(compute shaders)の使用を含む。そのシステムは、GPUを用いてビデオデコードを加速するための業界標準であるマイクロソフトDXVA方法の使用を、ビデオをスケーリングする中間ステップと共に、GPUエンコーディングスキームと結合する。
トランスコーディングは、一般的には、第1のフォーマットから第2のフォーマットへのビデオデータの変換のプロセスを参照する。トランスコーディングは、エンコードされたビデオから開始してそれをデコードプロセスの後に再びエンドーディングすることを含む。例えば、1つのフォーマットでエンコードされ且つデジタル的に記憶されているソースビデオがデコードされ、そして次いで他のフォーマットへエンコードされるか、あるいは同じフォーマットへ再エンコードされる。スケーリング、他のビデオとのブレンディング、その他第2のビデオフォーマットへのエンコーディングに先立つような中間処理もまた、トランスコードされたビデオに対して実行されてよい。図1は実施形態に従いビデオトランスコーディングの方法を実施するビデオトランスコーディングパイプラインのブロック図である。図1に示されるように、システム100は、第1のデータフォーマットでエンコードされているビデオビットストリーム102を含む。ビットストリームはビデオデコードプロセス104でデコードされる。デコードされたデータは次いでビデオスケーラ106を用いてスケーリングされる。スケーリングされたビデオデータは次いでビデオエンコーダ108でエンコードされ、第2のビデオフォーマットでフォーマットされたビットストリーム110を生成する。
1つの実施形態においては、図1のビデオトランスコーディングパイプラインは、少なくとも1つの中央処理ユニット(CPU)と少なくとも1つのグラフィックス処理ユニット(GPU)とを含む処理プラットフォームを備えた処理システム内に実装される。図2は実施形態に従いビデオトランスコーダパイプラインを実装している処理システムのブロック図である。図2のシステムに対して、第1のフォーマットにあるビデオデータは、データストア210内に記憶されており、そして第1のビデオフォーマット211に従ってプロセッサプラットフォーム202へ送信される。プロセッサプラットフォーム202は、CPU204、GPU206、及びメモリ208を含む。GPU206は、CPUとは別のグラフィックス処理ユニットであってよいが、プロセッサプラットフォーム202の同一のマザーボード又はカード上に設けられている。GPUはまた、バス又は同様の相互接続を介してCPUと結合される別個のユニットとして設けられてよい。代替的には、GPU206は、グラフィカル処理回路を代表してよく又は強固に結合される若しくはCPU204内の機能として設けられる機能を代表してよい。トランスコーディングプロセスは、第2のフォーマット213でビデオデータを生成するために1つ以上のCPU204及びGPU206によってもたらされる機能の組み合わせを通して実装され、生成されたビデオデータは、データストア214へ転送され且つ/若しくはディスプレイデバイス212によって表示されてよく、又はインタフェースリンク若しくはネットワーク、例えばインターネットを介して他のデバイスへ送信されてよい。
図3は実施形態に従い図1のビデオトランスコーディングを更に詳細に示している。図3の実施形態に対して、ビデオビットストリームはエントロピーコーディングを用いてエンコードされている。エントロピーコーディングは、同等の周波数をまとめてグループ化するランレングスエンコーディング(RLE)アルゴリズムを採用して画像成分を「ジグザグ」順序で配列することと、ゼロをコーディングするレングスを挿入することと、次いで残っている部分にハフマン(Huffman)コーディングを用いることとを伴うロスレス(lossless)データ圧縮の特別な形態である。ハフマンコーディングは、一般的には、ソースシンボル(例えばファイル内の文字)をエンコーディングするための可変長コードテーブルの使用を参照し、この場合、可変長コードテーブルは、ソースシンボルの各見込まれる値に対して推定された発生確率に基いて特定の方法で導き出されているものである。
システム300において、エンコードされているビットストリーム302は、エントロピーデコーダ304を用いてデコードされる。デコーディングプロセスは、逆DCT(iDCT)306、逆量子化、出力の再正規化310、等を含む多数の可変長デコーディングステップを伴う。1つの実施形態では、再構築ステップ310によって生成される参照フレームに対してモーション補償(又は推定)プロセス308が実行される。デコードされたビデオフレーム314は、次いでビデオスケーラプロセス316においてスケーリングされる。スケーリングされたビデオフレーム318は、次いでブロック320乃至324で示されるエンコーディングプロセスによって第2のフォーマットへとエンコードされる。ビデオフレームは先ず320で前処理されて、次いでモーション推定エンジン322へ入力される。次いでMBコーディングプロセス324が、第2のフォーマットのビットストリーム328と、モーション推定エンジン322へフィードバックされる参照フレーム326とを生成する。1つの実施形態では、ブロック320乃至324によって表される図3の1つ以上のエンコーディングプロセスは、米国特許出願番号12/189,060に記載されているエンコーダプロセスを用いて実装され、その全体が参照として組み込まれる。
図3に示されるように、トランスコーディングパイプラインにおける第1のステップは、特定のデジタルフォーマットで既にエンコードされているビデオビットストリーム102をデコーディングすることである。実施形態に従い、処理スループットを最適化する他に、CPU資源を用いるであろうスケーリング又はブレンディングのような他のステップの実行についても最適化するために、デコーディングプロセスは、GPU206及びCPU204によって提供される資源を利用する。
実施形態に従い、CPUプロセッサ及びGPUプロセッサの両方を有する処理プラットフォーム202を用いてビデオビットストリーム102をデコードするためには、3つの異なる方法がある。元のビットストリーム102のエンコーディングフォーマット及び関連する他のトランスコードプロセスに応じて、特定の入力ビットストリームに対して3つのデコード方法のうちの1つが選択される。
第1の方法では、デコード機能104に関する全てのステップを実行するためにCPU204が単独で用いられる。これは一般的にはソフトウエア単独実装であり、この場合、GPU206は次いでスケーリング106及びエンコーディングの機能を実行するために用いられる。CPUデコーダ方法はソフトウエアデコーダと称されることもある。
第2の方法では、デコーディングプロセスの一部分がCPU上で実行され、そして残りはGPU上で実行される。これはGPUプログラム可能デコーダシステムを備えたソフトウエアプラスグラフィックスチップソリューションである。この方法では、CPU上で実行されるデコーディングは、エントロピーデコードステップ304までのデコーディングステップを含む。エントロピーデコーディングステップ及び随意的なスケーリングステップ316はGPU上で実行される。
第3の方法では、GPU内にある専用のハードウエアデコーダ(GPUハードウエアデコーダ)がデコーディングのために採用される。エントロピーデコードステップ304を通してビットストリームをデコードするために、ハードウエア/プログラム可能ビデオプロセッサを用いてデコーディングが実行される。GPUハードウエアデコーダは、特定の命令を伴う専用のハードウエアを有するプログラム可能処理チップ内に実装されていてよく、そして1つ以上のコーデック(codecs)の所定の仕様を実装するように設計されている。1つの実施形態では、GPUハードウエアデコーダは、GPUハードウエアのUVD(統合化ビデオデコーダ(Unified Video Decoder))部分として実装され、そしてH.264及びVC−1のビデオコーデック標準、又は他のコーデックを支援するように構成される。一般的に、UVDは、H.264/AVC及びVC−1のビデオコーデックのデコーディングをほぼ全部ハードウエア内で処理する。UVDは、最小のホスト(CPU)アテンションを要求しながらVC−1及びH.264に対する殆ど全てのビデオデコーダプロセスの負荷を解放する。VLC/CAVLC/CABAC、周波数変換、画素予測、及びインループ非ブロック化機能(inloop deblocking functions)を処理することに加えて、UVDはまた、進歩したビデオ後処理ブロックを含んでいる。UVDが提供する種々の後処理動作は、ノイズ除去(denoising)、デインターレーシング(de-interlacing)、スケーリング/リサイジング(scaling/resizing)、及び類似の動作を含んでいてよい。ハードウエア/プログラム可能ビデオプロセッサ(例えばUVD)は、デコーディング動作の残りの部分を行うために、逆エントロピー(可変長デコード)使用のプログラム可能GPUシェーダを実行する処理回路の任意の適切な組み合わせを通して実装されてよい。
この説明の目的のために、「H.264」は、MPEG−4_Part10、又はMPEG−4_AVC(進歩したビデオコーディング(Advanced Video Coding))としても知られるビデオ圧縮のための標準を参照する。H.264は、ITU−Tビデオコーディング専門家グループ(Video Coding Experts Group)(VCEG)及びISO/IEC動画像専門家グループ(Moving Picture Experts Group)(MPEG)によって作成されたブロック指向のモーション推定ベースのコーデックの1つである。
1つの実施形態においては、UVDのデコード段階304〜314は、GPU206から出力されCPU204へ入力されるデコードされたビットストリームの複写を可能にするように構成される。これにより、CPUがCPU内でエンコーディングステップ318〜324を実行することが可能になる。この実施形態のために、ビデオスケーラ316からの出力はCPUメモリ208へ出力される。これにより、データの複写がGPU及びCPUの両方に対して必ず利用可能に作成されるので、システムはGPU及びCPUの間で処理負荷を共有することが可能になる。UVDハードウエアを用いるエンコーディング処理は、CPUによる使用のために複写を高速で作成することを可能にする。これにより、GPU及びCPUの両方によって画像の複写を別個に維持することが可能になる。従って、GPU及びCPUの両方によってなされる任意の共有に係る処理は、2つのユニットの間での全部の画像の伝送よりもむしろ特定の情報の共有を含む。このことは、入力ビデオビットストリームに対して共有されたCPU/GPU動作のために必要な帯域オーバーヘッドを大幅に低減する。
図3のスケーラ316は、入力画像を取り込みそれを規定の率でリサイズする任意の適切なスケーラプロセス又は回路において具現化される。概して、画像スケーリングは、ビデオの画像サイズを変化させることを備えており、そしてサイズ変更(transsizing)としても知られている。スケーリングステップは随意的であり、そして出力解像度がメディア解像度と異なる場合に用いることができる。スケーラは、異なる種類のデバイスの間での再生に対して画像を調節するために用いることができる。例えば、高精細度(High Definition)(HD)テレビジョン伝送は、典型的には、1280×720画素から1920×1080画素までのサイズである。しかし、デジタル映画(映画館での投影)及びデジタル中間ファイル(ハリウッドプロダクションスタジオで内部的に用いられるフォーマット)の精細度は、概ね3000×4000画素にまで高くなり得る。スケーラプロセスはCPUスケーラ又はGPUスケーラとして実装することができ、これらはハードウエアスケーラ又はプログラム可能画素シェーダであってよい。
デコーディングの第2の方法が実施される実施形態に対して、即ち、CPU及びGPUの両方においてデコーディングが実行されるソフトウエアプラスグラフィックスチップソリューションに対して、マイクロソフト社によって規定されるダイレクトXビデオアクセラレーション(DirectX Video Acceleration)(DXVA)インタフェースの使用を通して実施され得る2つの可能なバリエーションがある。DXVAは、ビデオデコーディングがハードウエア加速されることを可能にし且つデコーダがどのようにGPU上にある部分部分にアクセスするかを指定するAPI(アプリケーションプログラムインタフェース)仕様である。それにより、デコーダは幾つかの(例えば最後の2つ又は3つの)デコードパイプライン段階の負荷を解除してこれらをGPUに課すことが可能になり、その後、データはGPU上に存在するのですぐに表示することができる。パイプラインは、iDCT、モーション補償、デインターレーシング及び色補正のような特定のCPU集約的な動作の負荷を解除してこれらをGPUに課すことが可能である。
DXVAはシステムのビデオカードによって用いられるビデオレンダリング(rendering)モデルと連動して動作する。DXVAは、コーデックのハードウエア加速されたデコーディング及びレンダリングのための特定コーデック向けパイプライン(codec-specific pipeline)を定義するためにソフトウエアビデオデコーダによって用いられる。パイプラインは、メディアストリームを構文解析すること(parsing)及びDXVA互換構造への変換のために用いられるCPUで起動する。DXVAは、ハードウエア加速され得る一連の動作と、グラフィックドライバが動作を加速するために実装し得るデバイスドライバインタフェース(DDI)とを指定する。コーデックが任意の支援された動作を必要とする場合には、コーデックは、それらの動作のハードウエア加速された実装にアクセスするためにそれらのインタフェースを用いることができる。デコードされたビデオはハードウエアビデオレンダラー(hardware video renderer)に渡され、そこではデバイスにレンダリングされる前に更なる後処理が適用されてよい。DXVAはモーション補償308DDIを指定し、当該DDIは、iDCT動作306、ハフマンコーディング、色補正、モーション補償、アルファブレンディング、逆量子化色空間変換、及びフレームレート変換、その他の動作のためのインタフェースを指定する。
一般的に、DXVA_APIはマイクロソフトウインドウズ互換処理プラットフォームのために用いられる。他のオペレーティングシステムを用いる処理プラットフォームに対しては、DXVA同等インタフェースが用いられてよい。そのようなインタフェースは、特定のデコードパイプライン段階の負荷を解放してそれをGPUに課す任意のAPIであってよい。リナックス(Linux)互換処理プラットフォームに対しては、APIは例えばXビデオモーション補償(X-Video Motion Compensation)(XvMC)APIを通して実装されてよい。XvMCはXウインドウシステム(X Window System)のためのXビデオ拡張(Xv)の拡張であり、ビデオプログラムがビデオデコーディングプロセスの部分部分の負荷を解放してそれらをGPUに課すことを可能にする。
CPUがエントロピーデコーディングプロセス304を実行し、GPUがiDCT306ステップ及びモーション補償308ステップ以降を実行する実施形態に対して、DXVA_APIは、デコーダ304からiDCT306及びモーション補償308プロセスの各々へ伝送される情報を決定する。DXVA_1.0及び2.0のようなDXVAの種々の異なるバージョンが利用可能であってよい。UVDがエントロピーデコードプロセス304以降のステップを実行する実施形態においては、DXVA_2.0_API仕様が用いられてよい。
デコーディングパイプラインの実施形態は、2つ以上のビットストリームが処理される場合におけるビデオトランスコード及び編集アプリケーションに適用することができる。デコードプロセスに対しては、異なる選択、即ちCPUのみ、CPUプラスGPU、UVDが利用可能であり、あるいはDXVA_1.0又は2.0_APIの使用は、例えば各々が異なる場面を表し得る多重ビットストリームを用いることのあるビデオ編集アプリケーションを容易にする。
図4は実施形態に従いビデオデコードプロセスを実施するビデオ編集パイプラインを表している。システム400に対しては、2つのビットストリーム402及び408がそれぞれのビデオデコードプロセス404及び412へ入力される。各デコードされたストリームは、次いでそれぞれのビデオスケーラプロセス406及び414においてスケーリングされる。ビットストリーム402及び408が、ブレンドされるべき画像又は場面を表している場合には、デコードされ且つスケーリングされたデータは、次いでビデオブレンド及び効果プロセス416へ入力される。ブレンドされた画像データは次いで、ディスプレイ422へ送られ、あるいはビデオエンコーダプロセス418を用いて異なるフォーマットへエンコードされてビットストリーム420における第2のフォーマットのデータを生成する。随意的なディスプレイは、エンコーディングに先立つ出力ビットストリーム420のプレビュー(previewing)を可能にする。2つの入力ビットストリーム402及び408は、背景及び最前面の画像のような互いにブレンドされるべき2つのビデオ場面を表してよく、あるいはそれらは、1つの場面(ビットストリーム#1)の他の場面(ビットストリーム#2)への推移の間における重複の例を表すことができる。
図4のビデオ編集パイプラインにおいては、ビデオデコードプロセス404及び412の各々は、上述のビデオデコード方法の1つを実施する。これらのビデオデコードプロセスは、両方とも同じデコード方法を実施して(例えばであるが、UVDを使用して)よく、あるいはそれらは異なるデコード方法を実施してよい。例えば、一方のデコードプロセス(例えばビデオデコード404)はUVDベースのデコードプロセスを利用してよい一方で、他方のデコードプロセスは、CPUのみをベースとする又はCPU及びGPUをベースとするデコードプロセスを利用する。これにより、UVD又は他のデコードプロセスが、同時には多すぎる入力ビットストリームによって過負荷にならないことを確実にすることができる。
図4には2つのビットストリームが図示されているが、システムの要求及び制約に応じて任意の数のビットストリームが可能であることは特記しておくべきであろう。一般的に、入力ビデオビットストリームのフォーマットは、その入力ビットストリームに対するデコードプロセスのためにエンコーディングプロセス404又は416のどちらの種類が用いられるのかを指示しているであろう。全体的なビデオ編集アプリケーションにおいては、単一のビットストリームが2つ以上のフォーマットでエンコードされることがある場合であっても、ビデオエディタは、入力ビットストリームの単一又は複数のフォーマットに基いてパイプライン400を再構築してよい。
ブレンディングプロセス416は、GPU上で利用可能な任意の組み込み(built-in)ブレンディング能力を利用してよい。例えば、GPUは、常駐のプロセスを用いるテクスチャ(textures)のブレンディングを可能にするテクスチャ処理能力を含んでいてよい。ビデオブレンド及び効果プロセス416内で提供されるビデオ効果は、既知のビデオエディタによって提供される特定の商業的に利用可能な効果、例えば左から右へのブレンディング、上から下へのブレンディング、又は他の遷移効果を含んでいてよい。
ビデオデコード方法の実施形態は、標準的な予測MPEGスキームに適用することができる。ビデオストリームを処理する場合、MPEGエンコーダは3種類のコード化されたフレームを生成する。第1の種類のフレームは「I」フレーム又はイントラコード化フレーム(intra-coded frame)と称される。これは最も単純な種類のフレームであり、そして静止画像のコード化された表現である。一般的にIフレームに対しては処理は実行されず、それらの目的は、次の一連のフレームをデコーディングするための開始点をデコーダに提供することである。第2の種類のフレームは「P」フレーム又は予測されたフレームと称される。デコーディングに際して、Pフレームは、複数の先行するPフレーム又はIフレームに含まれる情報から生成される。第3の種類のフレームは「B」フレーム又は双方向性フレームであり、最もありふれた種類のものである。Bフレームは前方及び後方の両方へ予測されるものであり、そして最後の及び次のP又はIフレームから構成される。Pフレーム及びBフレームは両方ともインターコード化フレーム(inter-coded frames)である。コーデックエンコーダは、ストリームをIPBB…等のようにエンコードすることができる。デジタルビデオ伝送においては、Bフレームはしばしば用いられない。この場合、シーケンスは、Iフレームとこれらに続く幾つかのPフレームとのみから構成される。この実施形態に対しては、最初のIフレームはロスレスとしてエンコードされ、そして全ての後続のPフレームの何割かはロスレス圧縮でエンコードされ、また何割かは変更なしでエンコードされる。
MPEG及び類似のシステムにおいては、デコーディングはデコード順序で生成順フレームをフレーム化し、デコード順序はそれらが表示されることになる順序とは異なる。この場合、図4のビデオエディタパイプラインは、デコードプロセスの後のフレームの適切な順序付けを容易にするために、1つ以上のフレームプール(frame pools)を含んでいてよい。図5は実施形態に従いビデオデータデコーディングのためにフレームプールすることを含むビデオ編集パイプラインを示している。システム500内に示されるように、ビデオスケーラ502及び506からの出力はそれぞれのフレームプール504及び508へ入力される。これらのフレームプールはフレームをプールアップし、そして適切なディスプレイ順序で出力ストリームを生成する。従って、図5に示されるように、フレームはフレームプール504及び508内へデコード順序で入力され、そして任意の更なるブレンディング及び効果処理510のために適切なディスプレイ順序で出力される。代替的には、両方のストリームがデコード順序でブレンドされてよいが、両方のストリームが正確に同一なデコード順序を有しており且つ適切に同期化されている場合に限っては、しばしば異なる。このように、フレームをプールすることの後にブレンドすることは、多くの場合により有利である。
出力ストリームは次いでエンコードされてよく、あるいはフレームレート論理プロセス512を介して随意的なディスプレイ514へ送られてよい。フレームレート論理プロセス512は、システムの処理機能及びディスプレイ機能を最適化するために、フレーム処理能力をディスプレイレート能力、即ちディスプレイのリフレッシュレートに適合させる。
図6は実施形態に従いビデオ及びオーディオの両方のコンテンツを含むコンテンツのための完全トランスコーディングパイプラインを示している。図6の実施形態は単一のパイプラインを示しているが、いくつのビットストリーム及びデコーダプロセスが利用可能かに応じて多重チャネルも可能である。システム600においては、入力オーディオ/ビデオビットストリーム602はデマルチプレクサ回路604へ入力され、デマルチプレクサ回路604はオーディオコンテンツをビデオコンテンツから分離する。ビデオコンテンツはビデオデコードプロセス606へ送られ、次いでビデオスケーラ608においてスケーリングされる。スケーリングされエンコードされたビデオデータは、次いでビデオエンコーダ610によって第2のフォーマットでエンコードされる。エンコードされたビデオデータは次いでオーディオデータとマルチプレクシング612され、出力ビットストリーム614を生成する。デマルチプレクサ604によって元のビットストリーム602から分離されたオーディオデータ616は、ビデオデータと同様にそれ自身をトランスコードされてよく、あるいは何も変化させずに、トランスコードされたビデオデータと再結合するために通過させられてよい。デジタルオーディオトランスコーディングは、データのサンプリングを減少させるため、エンコーディングスキーム(例えばドルビー(Dolby)フォーマット)を変更するため、効果的な記憶又は伝送に対して品質を下げるため、及び他の効果のために用いられてよい。ビデオデータをトランスコードするビデオデコード機能606に対しては、上述した任意のデコード方法を用いることができる。
トランスコーディングプロセスの実施形態は、ハードウエア構造及びソフトウエア構造の幾つかの組み合わせを用いてデコーディングの選択を可能にする。図7は実施形態に従い多重デコードプロセスを用いてデジタルビデオデータをトランスコーディングする全体的な方法を示すフローチャートである。図7の方法は、入力ビットストリームを受信するトランスコーダパイプラインと共にブロック702で始まり、入力ビットストリームは第1のエンコーディングスキームに従って既にフォーマットされている。単一チャネルのトランスコーダパイプラインに対しては、単一のビットストリームが受信されてそしてトランスコードされるが、多重ビットストリームをトランスコードするために、任意の実用的なチャネル数が提供されてよい。入力ビットストリームは、複数の可能なデコーディングスキームの1つに従ってブロック704でデコードされる。第1のデコーディングスキームは、ブロック706aでUVD_GPUハードウエアシステムを利用し、第2のデコーディングスキームは、ブロック706bで、API(例えばDXVA、XvMC、又は類似のAPI)を用いるGPUプログラム可能デコーダを介してGPU資源及びCPU資源の両方を利用し、そして第3のデコーディングスキームは、ブロック706cで、いかなるGPU支援もなしに1つ以上のCPUを排他的に用いる。スケーリングされデコードされたビットストリームは、次いでブロック710で第2のフォーマットへエンコードされる。エンコーディングプロセスは、ステップ712aで多重GPUコアを用いて実行することができ、あるいはステップ712bで多重CPUコアを用いて実行することができる。
1つの実施形態においては、デコーディングスキーム706a〜cの選択肢は、ユーザによって明示的に選択されてよいし、あるいは処理システムにおいて実行されるプロセスによって自動的に選択されてよい。自動的なプロセスは、利用可能な資源に応じてデコーディングプロセスを選択してよい。例えば、UVDが利用可能であれば、自動的なプロセスは、UVDが排他的にデコーディングに対して用いられることを指示してよい。また、定義されたデフォルト及び1つ以上のバックアップ方法があってよく、例えばUVDが利用可能ではない場合を除いてデフォルトによってUVDを用いるデコード等であり、上記の場合デコードはCPUのみを用いる。スケーラプロセスもまた、デコードスキームに応じて自動的なプロセスに基いて選択されてよい。例えば、UVDがデコーディングのために用いられる場合には、UVDはスケーリングに対しても用いられるべきであるし、またCPUがデコーディングのために用いられる場合には、CPUはスケーリングに対しても用いられるべきである。
トランスコードシステム及び方法の実施形態は、エンコーディングのためのGPUの使用をデコーディング及びスケーリングのためのGPUの使用と組み合わせる。システムはGPUハードウエアのUVD部分の使用を可能にし、ハードウエアベースのiDCT及びMPEG−2に対するモーション補償機能と共に、H.264又はVC−1エンコードされたビデオデータをデコードする。システムはまた、デコード動作を容易にするための既存の標準的なマイクロソフトAPI(DXVA_1.0及び2.0)の使用を可能にする。ビデオをスケーリングする中間的な及び随意的なステップ(例えば1つの解像度から他へのリサイジング)もまた、GPU機能を採用する。トランスコードパイプラインはまた、多重ストリームをデコーディングし且つブレンディング又は例えばビデオ編集のための特別な効果の動作を実行する能力を追加する。これらの動作はGPU資源を用いることもできる。
トランスコードパイプラインを具現化している図2の処理プラットフォームは、デジタルビデオデータについて生成し、再生し、又は他の処理をすることが可能な任意の種類のコンピュータデバイス内に実装され得る。そのようなコンピュータデバイスは、コンピュータ又は携帯型のコンピュータデバイス若しくは通信デバイス、例えばノート型コンピュータ、パーソナルデジタルアシスタンス(PDA)、携帯電話、ゲーム機、又は十分な処理、通信、及び制御の能力若しくはAV(オーディオビジュアル)再生能力を伴う任意の同様のクラスの携帯型コンピュータデバイスであってよい。コンピュータデバイスは、他のコンピュータデバイス、資源、又はデータ記憶装置と直接的に又はインターネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、若しくはそれらの任意の組み合わせからなるであろう1つ以上のネットワークを介して間接的に結合されていてよい。
実施形態は、入力フォーマットが未加工の画素にデコードされ、次いで、異なる又は同一のコーデックに、異なる解像度又は同一の解像度で、そして異なるビットレート若しくは同一のビットレートで又は種々の品質設定で再エンコードされる全てのトランスコーディングに適用可能である。トランスコーディング動作は圧縮されたドメイントランスコーディングであってよく、圧縮されたドメイントランスコーディングは、DVDビデオを例えばDVDバックアッププログラムのために圧縮するプログラムによって用いられる方法である。
ここに説明される実施形態はトランスコーディングアプリケーションを対象にしてきたが、そのような実施形態はまた、トランスレーティング(transrating)のような他のアプリケーションにも適用可能であることを特記しておく。例えば、低ビットレートトランスレーティングは、ビデオフォーマットを変更することなしにファイルが低ビットレートに符号化されるトランスコーディングと類似するプロセスであり、サンプルレート変換を含むことができるが、高い圧縮を除いて同一のサンプリングレートを用いてもよい。トランスレーティングは、所与のメディアをより小さな記憶スペースに収めるために用いることができ、例えばDVDコンテンツをビデオCDに納め、あるいはより狭帯域なチャネルを介してコンテンツを伝送するために用いることができる。
処理システムに対して専用の又は集積化されたグラフィックスレンダリングデバイスであるGPUデバイス又はビジュアル処理ユニット(VPU)を備えたグラフィックスシステムを参照して実施形態が説明されてきたが、そのような実施形態は、並列で用いられる他の多くの種類のビデオ生成エンジンに対しても用いることができることは特記しておくべきである。そのようなビデオ生成エンジンは、デジタルプロジェクタのようなディスクリートビデオジェネレータの形態で実装されてよく、あるいは個別のIC(集積回路)デバイスの形態で提供される電子回路又はビデオベースのコンピュータシステムのためのアドオン(add-on)カードとして提供される電子回路であってよい。
1つの実施形態においては、GPU/CPU処理プラットフォームを含むシステムは、パーソナルコンピュータ、ワークステーション、ハンドヘルドコンピュータデバイス、デジタルテレビジョン、メディア再生デバイス、スマート通信デバイス、及びゲーム機、又は任意の他の類似の処理デバイスからなるグループから選択されるコンピュータデバイスを備えている。
ここに開示される実施形態は、ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードするための装置を備えており、装置は、第1のデジタルフォーマットでエンコードされたビデオストリームを受信し且つデコードされたビデオストリームを生成するデコーダであって、グラフィックス処理ユニット(GPU)回路を利用し且つGPU回路とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及び中央処理ユニット(CPU)ソフトウエアデコーダの少なくとも1つとの組み合わせを通して実装されるデコーダと、デコードされたビデオストリームの画像サイズを変更してスケーリングされデコードされたビデオストリームを生成するスケーラであって、CPUスケーラ又はGPUスケーラの一方を通して実装されるスケーラと、スケーリングされデコードされたビデオストリームを受信し且つ第2のデジタルフォーマットでエンコードされた出力ストリームを生成するエンコーダとを備えている。
実施形態においては、ビデオストリームは、少なくとも1つのGPU及び1つのCPUを含むプロセッサプラットフォームを備えているトランスコーディングパイプラインシステムにおいて受信される。
実施形態においては、GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つデコード動作の第2の部分がGPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えている。
実施形態においては、GPUプログラム可能デコーダは、CPUによって実行される所定の動作の負荷をGPUにより実行されるように解放することによってデコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む。
実施形態においては、第1のデジタルフォーマットの前記ビデオストリームは複数のビデオビットストリームからなり、当該デコーダコンポーネントは複数のデコーダコンポーネントからなり、複数のビデオビットストリームの各々は対応するデコーダコンポーネントへ入力される。
実施形態は、複数のビデオビットストリームを、規定されたブレンディング効果に従ってブレンドされた出力ストリームに組み合わせるビデオブレンディングコンポーネントを更に備えている。
実施形態においては、複数のビデオビットストリームはMPEGビデオデータからなり、装置はMPEGフレームのデコード順序をディスプレイ順序へ再順序付けする複数のフレームプールを更に備えている。
実施形態においては、出力ストリームはディスプレイデバイスへ伝送される。
実施形態は、ブレンドされた出力ストリームのフレームレートをディスプレイデバイスのリフレッシュレートに整合させるフレームレート論理コンポーネントを更に備えている。
実施形態においては、スケーリングされデコードされたビデオストリームはCPUに結合されたメモリデバイスへ伝送される。
実施形態においては、スケーリングされデコードされたビデオストリームの第1の複写はCPUに対して利用可能であり、スケーリングされデコードされたビデオストリームの第2の複写はGPUに対して利用可能である。
実施形態においては、ビデオストリームはオーディオチャネルを含み、装置は、ビデオストリームを備えているビデオフレームからオーディオチャネルをデコードされたビデオストリームの生成に先立ち分離するデマルチプレクサと、オーディオチャネルを第2のデジタルフォーマットでエンコードされた出力ストリームへ加え戻すと共にエンコーダにおいてエンコードするマルチプレクサとを更に備えている。
実施形態においては、オーディオチャネルは出力ストリームへ加え戻される前に第1のオーディオフォーマットから第2のオーディオフォーマットへトランスコードされる。
ここに説明される実施形態は、ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードする方法を更に含み、方法は、第1のデジタルフォーマットでエンコードされたビデオストリームをデータストアから受信することと、受信したビデオストリームをデコードしてデコードされたビデオストリームを生成することと、デコードされたビデオストリームの画像サイズをスケーリングしてスケーリングされデコードされたビデオストリームを生成することと、スケーリングされデコードされたビデオストリームをエンコードして第2のデジタルフォーマットでエンコードされた出力ストリームを生成することとを備えており、当該デコーディング方法はグラフィックス処理ユニット(GPU)資源及び中央処理ユニット(CPU)資源の組み合わせを通して実施され、デコーディング方法はGPU資源とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及びCPUソフトウエアデコーダの少なくとも1つとの組み合わせを利用し、当該スケーラはCPUスケーラ又はGPUスケーラの一方を通して実装される。
実施形態は、GPUハードウエアデコーダ、GPUプログラム可能デコーダ、又はCPUソフトウエアデコーダの1つを用いる適切なデコーディング方法を選択することを更に備えている。
実施形態においては、選択するステップは、ユーザ選択、自動的なプロセス、又は第1のデジタルフォーマットによる決定の1つによって実行される。
実施形態は、スケーリングされデコードされたビデオストリームの第1の複写がCPUに対して利用可能であり且つスケーリングされデコードされたビデオストリームの第2の複写がGPUに対して利用可能であるように、CPU及びGPUを含む処理プラットフォーム上のCPUに結合されるメモリデバイスへスケーリングされデコードされたビデオストリームを送信することを更に備えている。
実施形態においては、GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つ前コード動作の第2の部分がGPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えており、GPUプログラム可能デコーダはCPUによって実行される所定の動作の負荷をGPUにより実行されるように解放することによってデコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む。
実施形態においては、第1のデジタルフォーマットのビデオストリームは複数のビデオビットストリームからなり、当該デコーダコンポーネントは複数のデコーダコンポーネントからなり、複数のビデオビットストリームの各々は対応するデコーダコンポーネントへ入力され、方法は、複数のビデオビットストリームを、規定されたブレンディング効果に従ってブレンドされた出力ストリームにブレンドすることを更に備えている。
実施形態においては、複数のビデオビットストリームはMPEGビデオデータからなり、方法は、MPEGフレームのデコード順序をディスプレイ順序へ再順序付けするフレームプールへプールすることと、出力ストリームをディスプレイデバイスへ伝送することとを更に備えている。
実施形態は、ブレンドされた出力ストリームのフレームレートをディスプレイデバイスのリフレッシュレートに整合させることを更に備えている。
ここに説明される実施形態はビデオ処理システムを更に含み、ビデオ処理システムは、中央処理ユニット(CPU)と、CPUに結合されるグラフィックス処理ユニット(GPU)と、ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードするビデオトランスコーダパイプラインとを備えており、トランスコーダパイプラインは、第1のデジタルフォーマットでエンコードされたビデオストリームを受信し且つデコードされたビデオストリームを生成するデコーダであって、グラフィックス処理ユニット(GPU)回路を利用し且つGPU回路とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及び中央処理ユニット(CPU)ソフトウエアデコーダの少なくとも1つとの組み合わせを通して実装されるデコーダと、デコードされたビデオストリームの画像サイズを変更してスケーリングされデコードされたビデオストリームを生成するスケーラであって、CPUスケーラ又はGPUスケーラの一方を通して実装されるスケーラと、スケーリングされデコードされたビデオストリームを受信し且つ第2のデジタルフォーマットでエンコードされた出力ストリームを生成するエンコーダとを備えている。
実施形態においては、GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つデコード動作の第2の部分がGPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えている。
実施形態においては、GPUプログラム可能デコーダは、CPUによって実行される所定の動作の負荷をGPUにより実行されるように解放することによってデコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む。
実施形態においては、GPUハードウエアデコーダ、GPUプログラム可能デコーダ、又はCPUソフトウエアデコーダの1つを用いる適切なデコーディング方法が、ユーザ選択、自動的なプロセス、又は第1のデジタルフォーマットによる決定の1つを通して選択される。
ここに説明されるシステムの種々の側面は、任意の種類の回路内にプログラムされる機能性として実装されてよく、そのような回路は、プログラム可能論理デバイス(PLD)、例えばフィールドプログラム可能ゲートアレイ(FPGA)、プログラム可能アレイ論理(PAL)デバイス、電気的にプログラム可能な論理デバイス及びメモリデバイス、並びに標準的なセルベースのデバイスの他に、特定用途向け集積回路を含む。種々の側面を実装するための幾つかの他の可能性は、メモリデバイス、メモリ(例えばEEPROM)を伴うマイクロコントローラ、組み込み型マイクロプロセッサ、ファームウエア、ソフトウエア、等を含む。また、ビデオトランスコーディングシステムの種々の側面は、ソフトウエアベースの回路エミュレーション、個別論理(シーケンシャル及び組み合わせの)、特別注文デバイス、ファジー(ニューラル)論理、量子デバイス、及び上述のデバイス種類の任意の混成を有するマイクロプロセッサ内で具現化され得る。基本となるデバイス技術は、種々のコンポーネント種類、例えば相補型金属酸化物半導体(CMOS)のような金属酸化物半導体電界効果トランジスタ(MOSFET)、エミッタ結合論理(ECL)のようなバイポーラ技術、ポリマー技術(例えば、シリコン共役ポリマー(silicon-conjugated polymer)及び金属共役ポリマー金属(metal-conjugated polymer-metal)の構造)、アナログ及びデジタル混合、等において提供され得る。
ここに開示される種々の機能は、ハードウエア、ファームウエアの任意の数の組み合わせを用いて、且つ/又は種々の機械可読媒体又はコンピュータ可読媒体において具現化されるデータ及び/又は命令として、それらの挙動、レジスタ転送、論理コンポーネント、及び/又は他の特性に関して説明され得ることもまた特記しておくべきであろう。そのようにフォーマットされたデータ及び/又は命令が具現化されるコンピュータ可読媒体は、限定はされないが、種々の形態にある不揮発性記憶媒体(例えば、光学的な、磁気的な、又は半導体の記憶媒体)、及びワイヤレスな、光学的な、若しくは有線の信号媒体又はそれらの組み合わせを介してそのようにフォーマットされたデータ及び/又は命令を転送するために用いられ得る搬送波を含む。そのようにフォーマットされたデータ及び/又は命令の搬送波による転送の例は、限定はされないが、1つ以上のデータ転送プロトコル(例えば、HTTP、FTP、SMPT、等)によるインターネット及び/又は他のコンピュータネットワークを介した転送(アップロード、ダウンロード、eメール、等)を含む。
明細書及び特許請求の範囲を通して、「備える(comprise)」、「備えている(comprising)」等の語は、文脈が明らかに別のものを必要としていない限り、排他的又は網羅的な意味とは対照的な包括的な意味、即ち、「限定されないが、〜を含んでいる(including, but not limited to)」の意味で解釈されるべきである。単数又は複数を使用する語はまた、複数又は単数をそれぞれ含む。また、「ここに」、「以下に」、「上記の、上述の」、「以下の」という語及び類似の意味の語は、この出願のいずれか特定の部分ではなくこの出願を全体として参照している。「又は、若しくは、あるいは(or)」の語が、2つ又はそれより多い項目のリストを参照して用いられている場合、当該語は、当該語の以下の解釈、即ちリスト内の任意の項目、リスト内の全ての項目、及びリスト内の項目の任意の組み合わせの全てを網羅する。
ビデオトランスコーディングシステムの例示された実施形態の上記説明は、網羅的であることを意図されておらず、あるいは開示される厳密な形態又は指示に本発明を限定することを意図されていない。グラフィック処理ユニット又はASICの具体的な実施形態、及びそのための例が例示を目的としてここに説明されるが、関連分野を含む当業者が認識するであろうように、種々の均等な修正が、開示される方法及び構造の範囲内で可能である。
上述の種々の実施形態の要素及び作用は、更なる実施形態を提供するために組み合わされ得る。これらの及び他の変更は、上述の詳細な説明を考慮して、開示されるシステムに対してなされ得る。
一般に、以下の特許請求の範囲では、使用される用語は、開示される方法を明細書及び特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではない一方で、特許請求の範囲の下で動作する全ての動作及びプロセスを含むように解釈されるべきである。従って、開示される構造及び方法は開示によって限定されるものではなく、その代わり、記載されている方法の範囲はもっぱら特許請求の範囲によって決定されることになる。
開示される実施形態の特定の側面が特定の請求項の形態で以下に提供されるが、発明者は、方法論の種々の側面を任意の数の請求項の形態で検討している。例えば、1つの側面のみが機械可読媒体において具現化されるものとして記載されているかもしれないが、他の側面も同様に機械可読媒体において具現化され得る。従って、発明者は、本出願の出願後に追加的な請求項を加えて他の側面に対するそのような追加的な請求項の形態を追求する権利を留保する。

Claims (25)

  1. ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードするための装置であって、
    前記第1のデジタルフォーマットでエンコードされたビデオストリームを受信し且つデコードされたビデオストリームを生成するデコーダであって、グラフィックス処理ユニット(GPU)回路を利用し且つ前記GPU回路とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及び中央処理ユニット(CPU)ソフトウエアデコーダの少なくとも1つとの組み合わせを通して実装されるデコーダと、
    前記デコードされたビデオストリームの画像サイズを変更してスケーリングされデコードされたビデオストリームを生成するスケーラであって、CPUスケーラ又はGPUスケーラの一方を通して実装されるスケーラと、
    前記スケーリングされデコードされたビデオストリームを受信し且つ前記第2のデジタルフォーマットでエンコードされた出力ストリームを生成するエンコーダとを備えた装置。
  2. 前記ビデオストリームは、少なくとも1つのGPU及び1つのCPUを含むプロセッサプラットフォームを備えているトランスコーディングパイプラインシステムにおいて受信される、請求項1の装置。
  3. 前記GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つ前記デコード動作の第2の部分が前記GPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えている、請求項2の装置。
  4. 前記GPUプログラム可能デコーダは、前記CPUによって実行される所定の動作の負荷を前記GPUにより実行されるように解放することによって前記デコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む、請求項2の装置。
  5. 前記第1のデジタルフォーマットの前記ビデオストリームは複数のビデオビットストリームからなり、
    当該デコーダコンポーネントは複数のデコーダコンポーネントからなり、
    前記複数のビデオビットストリームの各々は対応するデコーダコンポーネントへ入力される、請求項1の装置。
  6. 前記複数のビデオビットストリームを、規定されたブレンディング効果に従ってブレンドされた出力ストリームに組み合わせるビデオブレンディングコンポーネントを更に備えた、請求項5の装置。
  7. 前記複数のビデオビットストリームはMPEGビデオデータからなり、
    前記装置はMPEGフレームのデコード順序をディスプレイ順序へ再順序付けする複数のフレームプールを更に備えている、請求項6の装置。
  8. 前記出力ストリームはディスプレイデバイスへ伝送される請求項7の装置。
  9. 前記ブレンドされた出力ストリームのフレームレートを前記ディスプレイデバイスのリフレッシュレートに整合させるフレームレート論理コンポーネントを更に備えた、請求項8の装置。
  10. 前記スケーリングされデコードされたビデオストリームは、前記CPUに結合されたメモリデバイスへ伝送される、請求項1の装置。
  11. 前記スケーリングされデコードされたビデオストリームの第1の複写は前記CPUに対して利用可能であり、
    前記スケーリングされデコードされたビデオストリームの第2の複写は前記GPUに対して利用可能である、請求項1の装置。
  12. 前記ビデオストリームはオーディオチャネルを含み、前記装置は、
    前記ビデオストリームを備えているビデオフレームから前記オーディオチャネルを前記デコードされたビデオストリームの生成に先立ち分離するデマルチプレクサと、
    前記オーディオチャネルを前記第2のデジタルフォーマットでエンコードされた前記出力ストリームへ加え戻すと共に前記エンコーダにおいてエンコードするマルチプレクサとを更に備えている、請求項1の装置。
  13. 前記オーディオチャネルは、前記出力ストリームへ加え戻される前に第1のオーディオフォーマットから第2のオーディオフォーマットへトランスコードされる、請求項12の装置。
  14. ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードする方法であって、
    前記第1のデジタルフォーマットでエンコードされたビデオストリームをデータストアから受信することと、
    前記受信したビデオストリームをデコードしてデコードされたビデオストリームを生成することと、
    前記デコードされたビデオストリームの画像サイズをスケーリングしてスケーリングされデコードされたビデオストリームを生成することと、
    前記スケーリングされデコードされたビデオストリームをエンコードして前記第2のデジタルフォーマットでエンコードされた出力ストリームを生成することとを備え、
    当該デコーディング方法はグラフィックス処理ユニット(GPU)資源及び中央処理ユニット(CPU)資源の組み合わせを通して実施され、
    前記デコーディング方法は前記GPU資源とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及びCPUソフトウエアデコーダの少なくとも1つとの組み合わせを利用し、
    当該スケーラはCPUスケーラ又はGPUスケーラの一方を通して実装される、方法。
  15. 前記GPUハードウエアデコーダ、前記GPUプログラム可能デコーダ、又は前記CPUソフトウエアデコーダの1つを用いる適切なデコーディング方法を選択することを更に備えた、請求項14の方法。
  16. 前記選択するステップはユーザ選択、自動的なプロセス、又は前記第1のデジタルフォーマットによる決定の1つによって実行される、請求項15の方法。
  17. 前記スケーリングされデコードされたビデオストリームの第1の複写がCPUに対して利用可能であり且つ前記スケーリングされデコードされたビデオストリームの第2の複写がGPUに対して利用可能であるように、前記CPU及び前記GPUを含む処理プラットフォーム上の前記CPUに結合されるメモリデバイスへ前記スケーリングされデコードされたビデオストリームを送信することを更に備えた、請求項14の方法。
  18. 前記GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つ前記デコード動作の第2の部分が前記GPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えており、
    前記GPUプログラム可能デコーダは、前記CPUによって実行される所定の動作の負荷を前記GPUにより実行されるように解放することによって前記デコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む、請求項14の方法。
  19. 前記第1のデジタルフォーマットの前記ビデオストリームは複数のビデオビットストリームからなり、
    当該デコーダコンポーネントは複数のデコーダコンポーネントからなり、
    前記複数のビデオビットストリームの各々は対応するデコーダコンポーネントへ入力され、
    前記方法は、前記複数のビデオビットストリームを、規定されたブレンディング効果に従ってブレンドされた出力ストリームにブレンドすることを更に備えている、請求項14の方法。
  20. 前記複数のビデオビットストリームはMPEGビデオデータからなり、前記方法は、
    MPEGフレームのデコード順序をディスプレイ順序へ再順序付けするフレームプールへプールすることと、
    前記出力ストリームをディスプレイデバイスへ伝送することとを更に備えている、請求項19の方法。
  21. 前記ブレンドされた出力ストリームのフレームレートを前記ディスプレイデバイスのリフレッシュレートに整合させることを更に備えた、請求項20の方法。
  22. 中央処理ユニット(CPU)と、
    前記CPUに結合されるグラフィックス処理ユニット(GPU)と、
    ビデオストリームを第1のデジタルフォーマットから第2のデジタルフォーマットへトランスコードするビデオトランスコーダパイプラインとを備えたビデオ処理システムであって、
    前記トランスコーダパイプラインは、
    前記第1のデジタルフォーマットでエンコードされたビデオストリームを受信し且つデコードされたビデオストリームを生成するデコーダであって、グラフィックス処理ユニット(GPU)回路を利用し且つ前記GPU回路とGPUハードウエアデコーダ、GPUプログラム可能デコーダ、及び中央処理ユニット(CPU)ソフトウエアデコーダの少なくとも1つとの組み合わせを通して実装されるデコーダと、
    前記デコードされたビデオストリームの画像サイズを変更してスケーリングされデコードされたビデオストリームを生成するスケーラであって、CPUスケーラ又はGPUスケーラの一方を通して実装されるスケーラと、
    前記スケーリングされデコードされたビデオストリームを受信し且つ前記第2のデジタルフォーマットでエンコードされた出力ストリームを生成するエンコーダとを備えている、ビデオ処理システム。
  23. 前記GPUハードウエアデコーダは、デコード動作の第1の部分がGPUハードウエアによって実行され且つ前記デコード動作の第2の部分が前記GPU内のプログラム可能GPUシェーダによって実行されるハードウエア/プログラム可能ビデオプロセッサを備えている、請求項22のシステム。
  24. 前記GPUプログラム可能デコーダは、前記CPUによって実行される所定の動作の負荷を前記GPUにより実行されるように解放することによって前記デコーダがハードウエア加速されることを可能にするアプリケーションプログラムインタフェース(API)を含む、請求項22のシステム。
  25. 前記GPUハードウエアデコーダ、前記GPUプログラム可能デコーダ、又は前記CPUハードウエアデコーダの1つを用いる適切なデコーディング方法が、ユーザ選択、自動的なプロセス、又は前記第1のデジタルフォーマットによる決定の1つを通して選択される、請求項22のシステム。
JP2011534905A 2008-11-04 2009-11-04 Gpu加速を伴うソフトウエアビデオトランスコーダ Pending JP2012508485A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/264,892 US8233527B2 (en) 2007-05-11 2008-11-04 Software video transcoder with GPU acceleration
US12/264,892 2008-11-04
PCT/US2009/063304 WO2010054011A2 (en) 2008-11-04 2009-11-04 Software video transcoder with gpu acceleration

Publications (2)

Publication Number Publication Date
JP2012508485A true JP2012508485A (ja) 2012-04-05
JP2012508485A5 JP2012508485A5 (ja) 2012-12-13

Family

ID=42153534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011534905A Pending JP2012508485A (ja) 2008-11-04 2009-11-04 Gpu加速を伴うソフトウエアビデオトランスコーダ

Country Status (6)

Country Link
US (2) US8233527B2 (ja)
EP (1) EP2353295A2 (ja)
JP (1) JP2012508485A (ja)
KR (3) KR20110086843A (ja)
CN (2) CN102273205B (ja)
WO (1) WO2010054011A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019365A (ja) * 2013-07-12 2015-01-29 インテル・コーポレーション ビデオチャットデータプロセッシング
JP2015041790A (ja) * 2013-08-20 2015-03-02 日本電気株式会社 トランスコード装置およびトランスコード方法
JP2016517568A (ja) * 2013-03-15 2016-06-16 株式会社ソニー・インタラクティブエンタテインメント ハードウェアデコーダアクセラレータのためのセキュリティ強度の向上
JP2018513583A (ja) * 2015-03-03 2018-05-24 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド オーディオビデオファイルのライブストリーミング方法、システム及びサーバー
WO2020054190A1 (ja) * 2018-09-12 2020-03-19 パナソニックIpマネジメント株式会社 変換装置、復号装置、変換方法および復号方法

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8488951B2 (en) 2009-07-09 2013-07-16 Nvidia Corporation Multimedia framework to provide ultra-low power multimedia playback
US8503539B2 (en) * 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
KR101484101B1 (ko) * 2010-03-08 2015-01-16 (주)테크노니아 동영상 변환 장치
US8830300B2 (en) * 2010-03-11 2014-09-09 Dolby Laboratories Licensing Corporation Multiscalar stereo video format conversion
US8768078B2 (en) * 2010-04-07 2014-07-01 Apple Inc. Intelligent media decoding
US20110280312A1 (en) * 2010-05-13 2011-11-17 Texas Instruments Incorporated Video processing device with memory optimization in image post-processing
TWI495330B (zh) * 2010-08-02 2015-08-01 Ncomputing Inc 有效地串流數位視訊的系統及方法
CN102377997A (zh) * 2010-08-05 2012-03-14 正文科技股份有限公司 可扩充编码转换能力的数字内容提供装置
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US8566647B2 (en) * 2010-12-20 2013-10-22 Microsoft Corporation Debugger presentation of parallel application threads
US20120216048A1 (en) * 2011-02-17 2012-08-23 Nikos Kaburlasos System, method and computer program product for application-agnostic audio acceleration
US20130106873A1 (en) * 2011-10-28 2013-05-02 Microsoft Corporation Pluggable media source and sink
US9391832B1 (en) * 2011-12-05 2016-07-12 Menlo Security, Inc. Secure surrogate cloud browsing
US9386267B1 (en) * 2012-02-14 2016-07-05 Arris Enterprises, Inc. Cooperative transcoding to multiple streams
CN103260021B (zh) * 2012-02-21 2016-08-03 腾讯科技(深圳)有限公司 一种视频解码方法和装置
US9491505B2 (en) 2012-02-28 2016-11-08 Qualcomm Incorporated Frame capture and buffering at source device in wireless display system
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
CN103379363B (zh) * 2012-04-19 2018-09-11 腾讯科技(深圳)有限公司 视频处理方法及装置、移动终端和系统
US9307258B2 (en) * 2012-10-30 2016-04-05 Broadcom Corporation Parallel transcoding
US10699361B2 (en) * 2012-11-21 2020-06-30 Ati Technologies Ulc Method and apparatus for enhanced processing of three dimensional (3D) graphics data
US20140153635A1 (en) * 2012-12-05 2014-06-05 Nvidia Corporation Method, computer program product, and system for multi-threaded video encoding
US20140192207A1 (en) * 2013-01-07 2014-07-10 Jinsong Ji Method and apparatus to measure video characteristics locally or remotely
CN103020320B (zh) * 2013-01-11 2016-01-13 西安交通大学 一种基于动态搜索的运行时gpu显存级数据复用优化方法
CN103458248A (zh) * 2013-09-11 2013-12-18 昆山奥德鲁自动化技术有限公司 一种基于cuda的视频转码系统
CN103491379A (zh) * 2013-09-25 2014-01-01 浙江宇视科技有限公司 一种提升智能分析性能的方法和装置
US9336558B2 (en) * 2013-09-27 2016-05-10 Apple Inc. Wavefront encoding with parallel bit stream encoding
CN103702172A (zh) * 2013-12-13 2014-04-02 乐视网信息技术(北京)股份有限公司 对音视频进行杜比转码的方法和系统
CN104853193B (zh) * 2014-02-19 2019-06-07 腾讯科技(北京)有限公司 视频压缩方法、装置及电子设备
DE102014107378A1 (de) * 2014-05-26 2015-11-26 Petter.Letter Gmbh Vorrichtung und Verfahren zur Darstellung und Bearbeitung von Filmen mittels Mobiltelefonen
WO2016036285A1 (en) * 2014-09-02 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Video stream encoding using a central processing unit and a graphical processing unit
CN104363402B (zh) * 2014-10-27 2017-11-24 同辉佳视(北京)信息技术股份有限公司 一种快速显示视频的方法及设备
CN104980752B (zh) * 2015-06-11 2018-10-02 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
US9883194B2 (en) 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
US9832476B2 (en) 2015-06-15 2017-11-28 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
US10841601B2 (en) * 2015-06-23 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
US20170026648A1 (en) * 2015-07-24 2017-01-26 Mediatek Inc. Hybrid video decoder and associated hybrid video decoding method
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
US10225301B2 (en) * 2015-08-26 2019-03-05 Zhan Ma Method and apparatus for use of input messages in media transport to support interactive communications
CN105228000B (zh) * 2015-09-25 2018-10-30 网宿科技股份有限公司 一种基于gpu的完全硬件转码的方法和系统
US10447751B2 (en) 2015-09-28 2019-10-15 Sony Corporation Parallel transcoding directly from file identifier
TWI546779B (zh) 2015-11-06 2016-08-21 財團法人工業技術研究院 串流資料的編碼排程方法、裝置與電腦可讀取媒體
US9959661B2 (en) 2015-12-02 2018-05-01 Samsung Electronics Co., Ltd. Method and device for processing graphics data in graphics processing unit
CN105898315A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 视频转码方法和装置系统
CN106888400B (zh) * 2015-12-15 2019-05-10 中国电信股份有限公司 一种用于实现转码任务调度的方法和系统
CN105744278A (zh) * 2016-02-16 2016-07-06 福建星网智慧科技股份有限公司 一种基于android系统H264编解码的方法
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
CN106131563A (zh) * 2016-07-28 2016-11-16 武汉斗鱼网络科技有限公司 基于dxva进行硬件解码h264视频流的方法及系统
CN106331852A (zh) * 2016-09-13 2017-01-11 武汉斗鱼网络科技有限公司 一种用于wp手机进行h264硬件解码的方法及系统
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
WO2018176734A1 (zh) * 2017-03-27 2018-10-04 华为技术有限公司 一种数据处理方法及终端
CN109213593B (zh) * 2017-07-04 2022-05-10 阿里巴巴集团控股有限公司 用于全景视频转码的资源分配方法、装置和设备
CN109005160A (zh) * 2018-07-10 2018-12-14 广州虎牙信息科技有限公司 视频解码方法、装置及计算机可读存储介质、终端
KR102011402B1 (ko) * 2018-08-21 2019-08-16 한밭대학교 산학협력단 쿠다를 사용하여 gpu 리소스를 분배하는 지능형 얼굴 인식과 트래킹 시스템
CN111147926B (zh) * 2018-11-02 2022-05-06 杭州海康威视数字技术股份有限公司 一种数据转码方法及装置
EP3651140A1 (en) * 2018-11-12 2020-05-13 BAE SYSTEMS plc Processing simulator data
GB2579018B (en) * 2018-11-12 2022-12-21 Bae Systems Plc Processing simulator data
WO2020099836A1 (en) 2018-11-12 2020-05-22 Bae Systems Plc Processing simulator data
CN109379627B (zh) * 2018-11-27 2020-12-04 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备以及存储介质
CN110298896A (zh) * 2019-06-27 2019-10-01 北京奇艺世纪科技有限公司 图片转码方法、装置及电子设备
CN110418144A (zh) * 2019-08-28 2019-11-05 成都索贝数码科技股份有限公司 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法
CN110766703A (zh) * 2019-10-21 2020-02-07 合肥成方信息技术有限公司 基于GPU的Compute Shader的智能图像识别方法
CN111050179B (zh) * 2019-12-30 2022-04-22 北京奇艺世纪科技有限公司 一种视频转码方法及装置
CN111314699A (zh) * 2020-02-28 2020-06-19 北京奇艺世纪科技有限公司 图像解码方法、装置、电子设备及存储介质
US11611482B1 (en) 2020-06-12 2023-03-21 Menlo Security, Inc. Bandwidth throttling
CN113055681B (zh) * 2021-03-02 2024-02-09 长沙景嘉微电子股份有限公司 视频解码显示方法,装置,电子设备及存储介质
CN113347432B (zh) * 2021-05-27 2023-03-28 深圳万兴软件有限公司 一种视频编解码方法、装置、计算机设备及存储介质
CN116055738B (zh) * 2022-05-30 2023-10-20 荣耀终端有限公司 视频压缩方法及电子设备
CN115546329B (zh) * 2022-12-01 2023-05-16 广东保伦电子股份有限公司 一种音视频硬件加速转码检测方法及系统
CN117475013B (zh) * 2023-12-21 2024-05-31 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
WO2007033346A1 (en) * 2005-09-14 2007-03-22 Microsoft Corporation Arbitrary resolution change downsizing decoder
WO2007100616A1 (en) * 2006-02-24 2007-09-07 Microsoft Corporation Accelerated video encoding
JP2008252445A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 情報処理装置
JP2008299610A (ja) * 2007-05-31 2008-12-11 Toshiba Corp マルチプロセッサ

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04219859A (ja) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
US5329615A (en) 1990-09-14 1994-07-12 Hughes Aircraft Company Concurrent general purpose and DMA processing in a graphics rendering processor
SE9103380L (sv) 1991-11-15 1993-03-08 Televerket Foerfarande och apparat foer bildkodning med oeverhoppning av bilder och/eller komponenter
US5712664A (en) * 1993-10-14 1998-01-27 Alliance Semiconductor Corporation Shared memory graphics accelerator system
EP0693737A3 (en) * 1994-07-21 1997-01-08 Ibm Method and apparatus for managing tasks in a multiprocessor system
US5546518A (en) * 1995-01-06 1996-08-13 Microsoft Corporation System and method for composing a display frame of multiple layered graphic sprites
WO1996031844A1 (fr) * 1995-04-05 1996-10-10 Hitachi, Ltd. Systeme graphique
US5844569A (en) 1996-04-25 1998-12-01 Microsoft Corporation Display device interface including support for generalized flipping of surfaces
US6513057B1 (en) 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
US6011868A (en) * 1997-04-04 2000-01-04 Hewlett-Packard Company Bitstream quality analyzer
US6337710B1 (en) * 1997-06-12 2002-01-08 Lsi Logic Corporation Graphical video editing system for regeneration of bitstreams
US6141020A (en) 1997-11-12 2000-10-31 S3 Incorporated Opposing directional fill calculators in a graphics processor
US6366704B1 (en) 1997-12-01 2002-04-02 Sharp Laboratories Of America, Inc. Method and apparatus for a delay-adaptive rate control scheme for the frame layer
US6141023A (en) 1998-01-30 2000-10-31 Intel Corporation Efficient display flip
US6078339A (en) * 1998-02-10 2000-06-20 Intel Corporation Mutual exclusion of drawing engine execution on a graphics device
US6058143A (en) * 1998-02-20 2000-05-02 Thomson Licensing S.A. Motion vector extrapolation for transcoding video sequences
US6782132B1 (en) * 1998-08-12 2004-08-24 Pixonics, Inc. Video coding and reconstruction apparatus and methods
US6167084A (en) * 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6700588B1 (en) * 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
US6434197B1 (en) * 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
JP2000222590A (ja) * 1999-01-27 2000-08-11 Nec Corp 画像処理方法及び装置
US6526583B1 (en) * 1999-03-05 2003-02-25 Teralogic, Inc. Interactive set-top box having a unified memory architecture
US6300973B1 (en) * 2000-01-13 2001-10-09 Meir Feder Method and system for multimedia communication control
US7257641B1 (en) * 2000-03-30 2007-08-14 Microsoft Corporation Multipoint processing unit
US6438168B2 (en) * 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
US6842180B1 (en) * 2000-09-20 2005-01-11 Intel Corporation Opportunistic sharing of graphics resources to enhance CPU performance in an integrated microprocessor
US6765966B2 (en) * 2000-12-19 2004-07-20 General Instrument Corporation Methods and apparatus for re-encoding a high definition television signal to create a standard definition television signal
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
US6933943B2 (en) * 2002-02-27 2005-08-23 Hewlett-Packard Development Company, L.P. Distributed resource architecture and system
JP4275358B2 (ja) * 2002-06-11 2009-06-10 株式会社日立製作所 画像情報変換装置およびビットストリーム変換機ならびに画像情報変換送信方法
US7673304B2 (en) 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US20130107938A9 (en) 2003-05-28 2013-05-02 Chad Fogg Method And Apparatus For Scalable Video Decoder Using An Enhancement Stream
US20040266529A1 (en) 2003-06-30 2004-12-30 Sony Computer Entertainment America Inc. Methods and systems for remote execution of game content and presentation on a wireless portable device
US7139002B2 (en) * 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
JP4403737B2 (ja) * 2003-08-12 2010-01-27 株式会社日立製作所 信号処理装置及びこれを用いた撮像装置
US7015915B1 (en) * 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
US7511714B1 (en) 2003-11-10 2009-03-31 Nvidia Corporation Video format conversion using 3D graphics pipeline of a GPU
FI115587B (fi) * 2003-12-03 2005-05-31 Nokia Corp Menetelmä ja laitteisto digitaalisen matriisikuvan alaspäin skaalaamiseksi
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
US7692683B2 (en) * 2004-10-15 2010-04-06 Lifesize Communications, Inc. Video conferencing system transcoder
US7522167B1 (en) 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
TWI267036B (en) 2005-02-24 2006-11-21 Asustek Comp Inc Method and apparatus for capturing full-screen frames
US7293170B2 (en) 2005-06-06 2007-11-06 Tranxition Corporation Changing the personality of a device by intercepting requests for personality information
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
CN1984298B (zh) * 2005-12-14 2010-05-19 辉达公司 芯片组安全卸载引擎
US7593543B1 (en) * 2005-12-15 2009-09-22 Nvidia Corporation Apparatus, system, and method for tracing distribution of video content with video watermarks
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
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US9024966B2 (en) * 2007-09-07 2015-05-05 Qualcomm Incorporated Video blending using time-averaged color keys

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
WO2007033346A1 (en) * 2005-09-14 2007-03-22 Microsoft Corporation Arbitrary resolution change downsizing decoder
WO2007100616A1 (en) * 2006-02-24 2007-09-07 Microsoft Corporation Accelerated video encoding
JP2008252445A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 情報処理装置
JP2008299610A (ja) * 2007-05-31 2008-12-11 Toshiba Corp マルチプロセッサ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN5012002949; 'The Guru of 3D' ATI AVIVO XCODE PACK FOR HD4800 SERIES [ONLINE] , 20080627 *
JPN5012002950; THE NEW ATI RADEON HD 4800 GRAPHICS CARD [ONLINE] , 20080808 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517568A (ja) * 2013-03-15 2016-06-16 株式会社ソニー・インタラクティブエンタテインメント ハードウェアデコーダアクセラレータのためのセキュリティ強度の向上
JP2015019365A (ja) * 2013-07-12 2015-01-29 インテル・コーポレーション ビデオチャットデータプロセッシング
US9232177B2 (en) 2013-07-12 2016-01-05 Intel Corporation Video chat data processing
JP2016077001A (ja) * 2013-07-12 2016-05-12 インテル・コーポレーション ビデオチャットデータプロセッシング
JP2015041790A (ja) * 2013-08-20 2015-03-02 日本電気株式会社 トランスコード装置およびトランスコード方法
JP2018513583A (ja) * 2015-03-03 2018-05-24 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド オーディオビデオファイルのライブストリーミング方法、システム及びサーバー
US10187668B2 (en) 2015-03-03 2019-01-22 Tencent Technology (Shenzhen) Company Limited Method, system and server for live streaming audio-video file
WO2020054190A1 (ja) * 2018-09-12 2020-03-19 パナソニックIpマネジメント株式会社 変換装置、復号装置、変換方法および復号方法

Also Published As

Publication number Publication date
WO2010054011A2 (en) 2010-05-14
CN102273205A (zh) 2011-12-07
KR20170120696A (ko) 2017-10-31
CN106973298B (zh) 2019-12-31
US20120243601A1 (en) 2012-09-27
EP2353295A2 (en) 2011-08-10
CN102273205B (zh) 2016-11-16
US8731046B2 (en) 2014-05-20
CN106973298A (zh) 2017-07-21
WO2010054011A3 (en) 2011-03-03
KR20160003342A (ko) 2016-01-08
KR20110086843A (ko) 2011-08-01
US8233527B2 (en) 2012-07-31
US20090060032A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
US8731046B2 (en) Software video transcoder with GPU acceleration
TWI587693B (zh) 用於減少視訊編碼及解碼中之延遲的方法、系統及電腦可讀取媒體
US8687702B2 (en) Remote transmission and display of video data using standard H.264-based video codecs
JP5726919B2 (ja) リモートディスプレイに画像をレンダリングするためのデルタ圧縮ならびに動き予測およびメタデータの修正を可能にすること
US11706424B2 (en) Device and method of video decoding with first and second decoding code
US7421129B2 (en) Image compression and synthesis for video effects
JP2005532768A (ja) ビデオ・データのイントラ符号化方法及び装置
CN112073737A (zh) 在直播视频流应用中重新编码预测的图像帧
US11303910B2 (en) Device and method of video encoding with first and second encoding code
KR102267792B1 (ko) 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩
JP2016184894A (ja) 動画像符号化装置、動画像符号化方法、動画像復号装置、及び動画像復号方法
US8929446B1 (en) Combiner processing system and method for support layer processing in a bit-rate reduction system
WO2023197717A1 (zh) 一种图像解码方法、编码方法及装置
JP2008532405A (ja) Mpegデコーダのための適応型フォールバックシステム
Singh et al. Review of compression techniques
CN115379251A (zh) 一种视频直播流的转码方法、装置、系统及可读存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140423

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140821

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150302

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150310

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150403

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160720