JP4891335B2 - ハードウェア多標準対応ビデオデコーダ装置 - Google Patents

ハードウェア多標準対応ビデオデコーダ装置 Download PDF

Info

Publication number
JP4891335B2
JP4891335B2 JP2008544512A JP2008544512A JP4891335B2 JP 4891335 B2 JP4891335 B2 JP 4891335B2 JP 2008544512 A JP2008544512 A JP 2008544512A JP 2008544512 A JP2008544512 A JP 2008544512A JP 4891335 B2 JP4891335 B2 JP 4891335B2
Authority
JP
Japan
Prior art keywords
video
hardware
video stream
decoding
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008544512A
Other languages
English (en)
Other versions
JP2009518960A5 (ja
JP2009518960A (ja
Inventor
インガティウス, ビー. トジャンドラスウィータ,
ハリクリシュナ, エム. レディ,
イオール モカガッタ,
Original Assignee
エヌヴィディア コーポレイション
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
Priority claimed from US11/299,055 external-priority patent/US9210437B2/en
Priority claimed from US11/299,057 external-priority patent/US9204158B2/en
Application filed by エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2009518960A publication Critical patent/JP2009518960A/ja
Publication of JP2009518960A5 publication Critical patent/JP2009518960A5/ja
Application granted granted Critical
Publication of JP4891335B2 publication Critical patent/JP4891335B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Description

分野
[001]本明細書で説明される技術分野はビデオ復号化に関する。より具体的には、本明細書は、ハードウェア多標準対応ビデオデコーダ装置に関する。
背景
[002]概して、デジタルビデオストリームは、多くの異なる符号化標準のうちの1つを使用して符号化される。例えば、デジタルビデオストリームは、より少ないビットしか必要としないデータ形式への変換のために圧縮されることができる。この圧縮は、元のビデオストリームが復号化のときに再現されることができるように可逆であることができるか、又は元のビデオストリームの正確な複製が再現されることができないが、圧縮データの復号化がより効率的であるように不可逆であることができる。
[003]現在、多くのビデオ符号化標準が存在し、新しい標準が頻繁に登場している。現在のビデオ符号化標準の例は、JPEG(Joint Photographic Experts Group)、MPEG(Moving Pictures Experts Group)、MPEG−2、MPEG−3、MPEG−4、H.263、H.263+、H.264、並びにReal Video及びWindows Mediaなどの独自仕様の標準を含む。デジタルビデオの利益を十分に得るために、ユーザは、全ての一般的な符号化標準を復号化することができるデコーダにアクセスする必要がある。
[004]ビデオをストリーミングするための多くの重要な用途は、リアルタイム通信に関連する。例えば、テレビ電話は、そのテレビ電話が対応する音声信号と同期することができるようにリアルタイムのビデオ復号化を必要とする。したがって、リアルタイム通信に関連するアプリケーションを提供するためにユーザにリアルタイムビデオ復号化を提供することがやはり望ましい。さらに、ユーザが複数のビデオストリームの復号化を要求する状況が生じる。例えば、テレビ電話で現在通話中のユーザが、当該ユーザが話している人から添付画像を受信する。この例において、テレビ電話ストリームのリアルタイムの復号化が、会話に必要な画像が復号されながら維持されなければならない。
[005]現在、ビデオ復号化は、2つの利用可能な方法、すなわち、単一標準対応ハードウェアビデオデコーダと、1つ又は複数のビデオ標準に従ってビデオストリームを復号化することができるソフトウェアベースのプログラム可能なコアとのうちの1つを使用して実行される。単一標準対応ハードウェアビデオデコーダは、リアルタイムの復号化機能を提供することができる。しかし、特定の符号化標準を使用して符号化されたビデオストリームを復号化するために、ユーザは、その特定の標準用のハードウェアビデオデコーダを持っていなければならない。多数の広く使用されているビデオ符号化標準が存在するので、ユーザは、ユーザにかかる金銭的コストが大きい、異なるビデオ符号化標準を使用して符号化されたデジタルビデオにアクセスするための多くの異なる単一標準対応ハードウェアビデオデコーダを必要とする。さらに、典型的なコンピュータシステムは、多くの単一標準対応ハードウェアビデオデコーダを追加することができず、さらには、ユーザがアクセスすることができるビデオストリーム数を制限する。
[006]現在のソフトウェアベースのプログラム可能なコアビデオデコーダは、1つ又は複数のビデオ符号化標準を使用する符号化を提供するために利用できる。プログラム可能なコアビデオデコーダは、復号化機能を高速化するためのハードウェア高速化を含む可能性がある。しかし、プログラム可能なコアは全ての復号化を実行する。概して、プログラム可能なコアビデオデコーダは、大きな処理オーバヘッドを有し、効率が低く、単一標準対応ハードウェアビデオデコーダよりもずっと多くの電力を消費する。さらに、プログラム可能なコアビデオデコーダは、復号化がコンピュータシステム全体の処理要件に影響を受けるので、リアルタイムのビデオ復号化を常に提供し続けることはできない。
[007]したがって、現在利用可能なデジタルビデオデコーダは、多数の広く使用されているビデオ符号化標準のためのリアルタイムのビデオ復号化を提供することができない。加えて、現在利用可能なデジタルビデオデコーダは、多数の広く使用されているビデオ符号化標準を使用して符号化された複数のストリームに対するビデオ復号化を同時に提供することができない。さらに、現在利用可能なデジタルビデオデコーダは、少なくとも1つのビデオストリームがリアルタイムの復号化を必要とする複数のビデオストリームを同時に復号化することができない。したがって、必要とされているのは、従来技術に対する制限を克服する新しいデジタルビデオデコーダである。新しいデジタルビデオデコーダは、複数の異なるビデオ標準のためのリアルタイムのビデオ復号化機能を提供すべきである。また、新しいデジタルビデオデコーダは、複数の異なるビデオ標準を使用して符号化された複数のビデオストリームのためのビデオ復号化機能を同時に提供すべきである。
概要
[008]本発明の実施形態は、複数の異なるビデオ符号化標準のためのビデオ復号化機能を提供するためのハードウェア多標準対応ビデオデコーダ装置を提供する。本発明の実施形態は、複数のビデオ符号化標準のそれぞれに対してリアルタイムの復号化を提供することができる。
[009]一実施形態において、本発明は、ハードウェア多標準対応ビデオデコーダ装置を提供する。ハードウェア多標準対応ビデオデコーダ装置の命令パーサは、ビデオストリームにアクセスするように動作可能であり、ビデオストリームの符号化に使用されたビデオ符号化標準を特定するように動作可能である。ハードウェア多標準対応ビデオデコーダ装置は、ビデオストリームの復号化に関連する動作を実行するための複数のハードウェア復号化ブロックも含み、複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するためのものである。一実施形態において、ハードウェア多標準対応ビデオデコーダ装置は、プリント回路基板に結合された集積回路内に実装され、プリント回路基板は、当該プリント回路基板をコンピュータシステムに取り外し可能に結合するためのコネクタに結合される。
[010]一実施形態において、命令パーサは、ビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないように、ビデオストリームを符号化するために使用された第1の特定されたビデオ符号化標準を復号化するために使用される複数のハードウェア復号化ブロックの第1のサブセットを作動するように動作可能である。一実施形態において、命令パーサは、ビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないように、ビデオストリームを符号化するために使用された第2の特定されたビデオ符号化標準を復号化するために使用される複数のハードウェア復号化ブロックの第2のサブセットを作動するように動作可能である。
[011]一実施形態において、複数のハードウェア復号化ブロックは、多段階マクロブロックレベルパイプライン内に実装される。一実施形態において、命令パーサは、多段階マクロブロックレベルパイプラインの1つの段階でビデオストリームのデータが受信されない場合にその段階の中のハードウェア復号化ブロックを停止するように動作可能である。一実施形態において、ハードウェア多標準対応ビデオデコーダ装置は、ビデオストリームを完全に復号化した後でメモリユニットにアクセスする。
[012]一実施形態において、ハードウェア多標準対応ビデオデコーダ装置は、復号化されたビデオストリームに対して後処理動作を実行するためのハードウェア後処理ブロックをさらに含む。一実施形態において、命令パーサは、ハードウェア後処理ブロックが復号化されたビデオストリームに対して後処理動作を実行するように、命令パーサにおいて受信されたビデオストリームが復号化されたビデオストリームである場合に複数のハードウェア復号化ブロックを停止するように動作可能である。一実施形態において、ハードウェア後処理ブロックはフィルタを含む。
[013]別の実施形態において、本発明はビデオストリームを復号化するための方法を提供し、方法はハードウェア多標準対応ビデオデコーダ装置を使用して実行される。ビデオストリームがアクセスされる。ビデオストリームを符号化するために使用されたビデオ標準が特定される。ビデオストリームを復号化するために使用されるハードウェア多標準対応ビデオデコーダ装置の複数のハードウェア復号化ブロックのうちのハードウェア復号化ブロックのサブセットが決定され、複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するように動作可能である。ビデオストリームが、ハードウェア復号化ブロックのサブセットを使用して復号化される。
[014]一実施形態において、複数のレジスタが、メモリサーフェスポインタレジスタ及びフレームレベルパラメータレジスタを含む。一実施形態において、ハードウェア多ストリーム多標準対応ビデオデコーダ装置は、少なくとも1つの復号化されたビデオストリームに対して後処理動作を実行するためのハードウェア後処理ブロックをさらに含む。
[015]一実施形態において、複数のビデオストリームは、少なくとも1つのデジタル静止画像ストリーム、及びデジタルムービーストリームを含む。この実施形態において、複数のビデオストリームの一部は、デジタル静止画像ストリーム及びデジタルムービーストリームのマクロブロックである。別の実施形態において、複数のビデオストリームは、複数のデジタルムービーストリームを含む。この実施形態において、複数のビデオストリームの一部は、複数のデジタルムービーストリームのマクロブロックである。
[016]別の実施形態において、本発明は複数のビデオストリームを復号化するための方法を提供し、方法はハードウェア多ストリーム多標準対応ビデオデコーダ装置を使用して実行される。複数のビデオストリームがアクセスされる。ビデオストリームを符号化するために使用されたビデオ標準が特定される。ビデオストリームを復号化するために使用されるハードウェア多ストリーム多標準対応ビデオデコーダ装置の複数のハードウェア復号化ブロックのうちのハードウェア復号化ブロックのサブセットが決定され、複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するように動作可能である。複数のビデオストリームが、ハードウェア復号化ブロックのサブセットを使用して復号化される。一実施形態において、前記複数のビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないようにハードウェア復号化ブロックの複数のサブセットが作動される。
概して、本明細書は、ハードウェア多標準対応ビデオデコーダ装置を開示する。命令パーサはビデオストリームにアクセスし、ビデオストリームを符号化するために使用されたビデオ符号化標準を特定する。複数のハードウェア復号化ブロックがビデオストリームの復号化に関連する動作を実行し、複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するためのものである。
[017]本発明が、同様の参照番号が同様の要素を参照する添付の図面の図において限定としてではなく例として示される。
詳細な説明
[030]ここで、本発明の好ましい実施形態に対する言及が詳細になされ、それらの実施形態の例が添付の図面に示される。本発明が好ましい実施形態に関連して説明されるが、これらの実施形態は本発明をこれらの実施形態に限定するように意図されていないことが理解されるであろう。むしろ、本発明は、添付の特許請求の範囲によって定義された本発明の精神及び範囲内に含まれ得る変更形態、修正形態、及び均等物を包含するように意図される。さらに、本発明の実施形態の以下の詳細な説明において、本発明の完全な理解を提供するために多くの具体的な詳細が説明される。しかし、本発明がこれらの具体的詳細なしに実施され得ることが当業者によって理解されるであろう。その他の場合、本発明の実施形態の態様を不必要に曖昧にしないように、よく知られている方法、プロシージャ、コンポーネント、及び回路は詳細に説明されていない。
表記及び用語
[031]以下に続く詳細な説明の一部は、プロシージャ、ステップ、論理ブロック、処理、及びコンピュータメモリ内のデータビットに対する操作のその他の記号的表現の観点で示される。これらの記述及び表現は、データ処理技術に精通した者によって、それらの者の業績の内容を当該技術に精通したその他の者に最も効果的に伝えるために使用される手段である。プロシージャ、コンピュータによって実行されるステップ、論理ブロック、プロセスなどは、ここで、及び概して、所望の結果をもたらす自己矛盾のない一連のステップ又は命令であると考えられる。ステップとは、物理量の物理的操作を必要とするステップである。必ずではないが通常は、これらの量は、記憶、転送、組合せ、比較、及びコンピュータシステムにおけるその他の操作を行われることができる電気的又は磁気的信号の形態を取る。これらの信号をビット、値、要素、シンボル、文字、語、数などと呼ぶことが、主に共通使用の理由で便利であることがあることが分かっている。
[032]しかし、これらの及び同様の用語の全ては適切な物理量に関連付けられるべきであり、これらの量に付される便宜的なラベルであるに過ぎないことに留意されたい。以下の検討から明らかなように、別途具体的に示されない限り、本発明の全体を通じて、「特定する」、又は「アクセスする」、又は「実行する」、又は「復号化する」、又は「作動する」、又は「停止する」、又は「決定する」、又は「処理する」、又は「受信する」、又は「バッファリングする」、又は「整列する」、又は「転送する」、又は「パースする」、又は「インターリーブする」、又は「回転する」、又は「再配置する」、又は「記憶する」などの用語を利用する検討は、コンピュータシステムのレジスタ及びメモリ内で物理(電子的)量として表されるデータを操作し、コンピュータシステムのメモリ、又はレジスタ、又はその他のそのような情報記憶、送信、若しくは表示装置内で同様に物理量として表されるその他のデータに変換するハードウェア多標準対応ビデオデコーダ装置(例えば、図3のハードウェア多標準対応ビデオデコーダ装置150)、ハードウェア多ストリーム多標準対応ビデオデコーダ装置(例えば、図6のハードウェア多ストリーム多標準対応ビデオデコーダ装置600)、マイクロコードエンジン(例えば、図2Bのマイクロコードエンジン260)、回転エンジン(例えば、図4の回転エンジン450)、又は同様の電子的コンピューティングデバイスの動作及びプロセスに言及することが理解される。
コンピュータシステムプラットフォーム
[033]図1は、本発明の実施形態が実施されることができる例示的なコンピュータシステム100を示す。概して、コンピュータシステム100は、情報を伝達するためのバス110と、情報及び命令を処理するための、バス110に結合された処理装置101と、処理装置101のための情報及び命令を記憶するための、バス110に結合された、ランダムアクセスメモリ(RAM)とも呼ばれる揮発性メモリ102と、処理装置101のための静的な情報及び命令を記憶するための、バス110に結合された、本明細書においては読み出し専用メモリ(ROM)とも呼ばれる不揮発性メモリ103とを含む。
[034]一実施形態において、コンピュータシステム100は、情報及び命令を記憶するための、バス110に結合された磁気又は光ディスク及びディスクドライブなどの任意的なデータ記憶装置104を含む。一実施形態において、コンピュータシステム100は、コンピュータユーザに対して情報を表示するための、バス110に結合されたディスプレイ装置105などの任意的なユーザ出力装置、情報及び命令の選択を処理装置101に伝達するための、バス110に結合された英数字及びファンクションキーを含む英数字入力装置106などの任意的なユーザ入力装置、並びに/又はユーザ入力情報及び命令の選択を処理装置101に伝達するための、バス110に結合されたカーソル制御装置107などの任意的なユーザ入力装置を含む。さらに、任意的な入力/出力(I/O)装置108が、コンピュータシステム100を例えばネットワークに結合するために使用される。
[035]一実施形態において、コンピュータシステム100は、複数のビデオ符号化標準のうちの1つを使用して符号化されたビデオストリームを復号化するための、本明細書においてデコーダ装置150とも呼ばれるハードウェア多標準対応ビデオデコーダ装置150も含む。デコーダ装置150は、複数のビデオ符号化標準によって必要とされる復号化動作を実行するための複数のハードウェア復号化ブロックを含む。デコーダ装置150は、デジタル静止画像及びデジタルムービーを含む、ビデオ符号化標準の任意の組合せによるビデオを復号化するように構成されることができることを理解されたい。例えば、デコーダ装置150は、JPEG、MPEG−4、H.263、H.263+、H.264、及びWindows Media(WMV9/VC−1)形式のうちのいずれかを使用して符号化されたビデオを復号化するように構成されることができる。
[036]デコーダ装置150は、別個のコンポーネント、コネクタ(例えば、AGPスロット、PCI−Expressスロットなど)を介してコンピュータシステム100に結合するように設計された別個のグラフィックスカード、(例えば、マザーボード上に直接取り付けられた)別個の集積回路ダイとして、又はコンピュータシステムのチップセットコンポーネントの集積回路ダイに含まれる統合されたデコーダ装置として実装されることができることを理解されたい。さらに、ローカルのグラフィックスメモリが、データ記憶のためにデコーダ装置150に含まれることができる。
[037]図2Aは、本発明の一実施形態による、プリント回路基板上に実装された例示的なハードウェアビデオデコーダカード200の図を示す。ハードウェアビデオデコーダカード200は、プリント回路基板(PCB)210、集積回路(IC)チップ220、データ配線225、及びコネクタ230を含む。ICチップ220は、ハードウェア多標準対応ビデオデコーダ装置150を含む。コネクタ230は、コンピュータシステムのコネクタ(例えば、AGPスロット、PCI−Expressスロットなど)を介してコンピュータシステム(例えば、図1のコンピュータシステム100)に結合するように構成される。データ配線225は、コンピュータシステムとICチップ220の間でデータ(例えば、ビットストリーム)を伝達するためのものである。
[038]図2Bは、本発明の一実施形態による、ハードウェア多標準対応ビデオデコーダ装置150を含む例示的なアーキテクチャ250の図を示す。アーキテクチャ250は、マイクロコードエンジン260、ハードウェア多標準対応ビデオデコーダ装置150、及びメモリ270を含む。一実施形態において、マイクロコードエンジン260は、ハードウェア多標準対応ビデオデコーダ装置150の動作を制御する。マイクロコードエンジン260は、ハードウェア多標準対応ビデオデコーダ装置150が実行しなければならない動作を含み、機械命令とハードウェア装置デコーダ150の間の変換層として働く。一実施形態において、ビットストリームのパース及び可変長復号化(VLD)が、マイクロコードエンジン260において行われる。メモリ270は、受信ビデオストリームに対する復号化及び後処理動作を実行するためにデコーダ装置150によって使用される。動作メモリ270の一実施形態が、図3のメモリ330に示される。
[039]図2Bを参照すると、一実施形態において、本発明は、マイクロコードエンジン260においてマクロブロックの並べ替えを行う。以下で説明されるように、デコーダ装置150は、(例えば、ループ内デブロッキングフィルタ440における)ループ内デブロッキング、並びに(例えば、ループ外フィルタ442における)ループ外デブロッキング及び/又はデリンギングなどの様々な後処理動作をサポートする。種々の実施形態において、ループ内デブロッキングは、マクロブロックがループ内デブロッキングフィルタにおいてラスタ走査順で受信されることを必要とする。しかし、H.264などの特定のビデオ標準は、非ラスタ走査順のマクロブロックの送信及び受信をサポートする。したがって、本発明は、非ラスタ走査順のマクロブロックの送信及び受信をサポートするビデオ標準のためのループ内デブロッキングをサポートするために、マクロブロックをラスタ走査順に整列することを提供する。
[040]一実施形態において、前処理動作が、マイクロコードエンジン260において実行される。一実施形態において、ビットストリームのパース及び可変長復号化(VLD)が、マイクロコードエンジン260において行われる。マイクロコードエンジン260は、マクロブロックをハードウェアデコーダ装置150に送信する前にそれらのマクロブロックを整列するように構成される。マイクロコードエンジン260は、圧縮データの1フレームをバッファリングする。一実施形態において、マイクロコードエンジン260は、ランレングス符号化された圧縮データの1フレームをバッファリングする。一実施形態において、マイクロコードエンジン260は、受信ビットストリームをパースし、次にVLDを実行する。マイクロコードエンジン260が順番が狂ったマクロブロックを検出する場合、そのマイクロコードエンジン260はデータをバッファし、全てのマクロブロックが受信されるのを待つ。次に、マイクロコードエンジン260は、マクロブロックをラスタ走査順に整列し、それらのマクロブロックをハードウェアデコーダ装置150に送信する。
[041]マクロブロックがマクロブロックをまだ圧縮データである間にバッファリングすることによって、マイクロコードエンジン260は、復号化されたビデオデータよりもずっと少ないランレングス符号化圧縮データの最大1フレームをバッファリングすることしか必要としない。さらに、圧縮マクロブロックのバッファリングは、電力も節約する。また、無線で受信されたビデオストリームは、多くのエラーを含みやすい。また、マイクロコードエンジン260に対するビットストリームのパースの分割は、エラー回復を改善する利点を有する。
ハードウェア多標準対応ビデオデコーダ装置のアーキテクチャ
[042]図3は、本発明の一実施形態によるハードウェア多標準対応ビデオデコーダ装置150の内部コンポーネントを示す図を示す。図3に示されるように、デコーダ装置150は、命令パーサ305、複数のハードウェア復号化ブロック310から318、ハードウェア後処理ブロック320、及びメモリ330を含む。デコーダ装置150は、複数のビデオ符号化標準を復号化するように動作可能である。
[043]命令パーサ305は、ビデオストリーム302(例えば、ビットストリーム)にアクセスするためのものである。ビデオストリーム302は、複数のビデオ符号化標準のうちの1つに従って符号化された圧縮ビデオストリームである。ビデオストリーム302は、(例えば、JPEGで符号化された)デジタル静止画像データ、又は(例えば、MPEG−4)デジタルムービーデータを含む可能性があることを理解されたい。一実施形態において、ビデオストリーム302は、マイクロコードエンジン(例えば、図2Bのマイクロコードエンジン260)から受信される。命令パーサ305は、ビデオストリーム302を符号化するために使用されたビデオ符号化標準を特定する。一実施形態において、ビットストリームのパース及び可変長復号化(VLD)が、命令パーサ305がビデオストリーム302にアクセスする前に実行される。ビットストリームのパース及びVLDは、ホストCPU(例えば、図1の処理装置101)又はマイクロコードエンジン(例えば、図2Bのマイクロコードエンジン260)によって実行されることができる。また、命令パーサ305は、クロックサイクルを制御することによってデコーダ装置150を通じたデータの移動を制御する。
[044]複数のハードウェア復号化ブロック310から318は、前記ビデオストリームを復号化することに関連する動作を実行するためのものである。ハードウェア復号化ブロック310から318は、ビデオデコーダ150内に実装されたビデオ標準によるビデオストリームを復号化するために必要とされる異なる復号化機能を表すことを理解されたい。MPEG−4などのビデオ符号化標準は、全てのMPEG−4デコーダがMPEG−4ビデオストリームを復号化することができるように、ビデオストリームを復号化するために特定の動作が実行されることを必要とする。様々な標準に従って復号化を実行するために必要とされる動作は当業者によく知られていることを理解されたい。
[045]一実施形態において、デコーダ装置150のハードウェア復号化ブロックは、マクロブロックレベル(例えば、8×8画素マクロブロック)で動作を実行するように構成される。しかし、デコーダ装置150は、フレームレベルなどのその他の次元のレベルで動作を実行するハードウェア復号化ブロックを含むことができることを理解されたい。
[046]ハードウェア復号化ブロック310から318の異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するためのものである。例えば、第1の例示的なビデオ標準は、ビデオストリームを復号化する際にハードウェア復号化ブロック312及び316を使用することを必要とする。第2の例示的なビデオ標準は、ビデオストリームを復号化する際にハードウェア復号化ブロック310、312、314、及び318を使用することを必要とする。したがって、本発明の種々の実施形態において、ビデオストリームを復号化するために必要とされるハードウェア復号化ブロックだけが、特定されたビデオ標準を使用して符号化されたビデオストリームの復号化に使用される。
[047]一実施形態において、命令パーサ305は、受信ビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないように、前記ビデオストリームを復号化するために必要とされるハードウェア復号化ブロックだけを作動するように動作可能である。例えば、ビデオストリームの復号化に関係のないハードウェア復号化ブロック(例えば、ハードウェア復号化ブロック310、314、及び318)が作動されないように、第1の特定されたビデオ符号化標準を復号化するために使用されるハードウェア復号化ブロックの第1のサブセット(例えば、ハードウェア復号化ブロック312及び316)が作動される。別の例において、前記ビデオストリームの復号化に関係のないハードウェア復号化ブロック(例えば、ハードウェア復号化ブロック316)が作動されないように、第2の特定されたビデオ符号化標準を復号化するために使用される復号化ブロックの第2のサブセット(例えば、ハードウェア復号化ブロック310、312、314、及び318)が作動される。一実施形態において、命令パーサ305は、デコーダ装置150の唯一つのアクティブなコンポーネントである。ハードウェア復号化ブロックは、特定されたビデオ標準及びデータフローに従って必要に応じて作動される。
[048]一実施形態において、デコーダ装置150のハードウェア復号化ブロックは、多段階マクロブロックレベルパイプライン内に実装される。図3に示されるように、デコーダ装置150は、ハードウェア復号化ブロック310及び312を含むパイプラインの段階1と、ハードウェア復号化ブロック314、316、及び318を含むパイプラインの段階2とを含む3段階マクロブロックレベルパイプラインとして実装される。一実施形態において、命令パーサ305は、ビデオストリーム302のマクロブロックをパイプラインの段階1のハードウェア復号化ブロックに導く。一実施形態において、2つ以上のマクロブロックがパイプラインの段階1に存在する可能性がある一方、パイプラインの段階2及び3は1つのマクロブロックしか存在しないように制限される。一実施形態において、ハードウェア復号化ブロック312、316、及び318は残差データ経路内にあり、ハードウェア復号化ブロック310及び314は予測データ経路内にある。一実施形態において、残差データ経路は、エラー又は差分データを処理し、予測経路は、前のフレーム又はマクロブロックに関連するデータにアクセスする。
[049]一実施形態において、命令パーサ305は、多段階マクロブロックレベルパイプラインの1つの段階で前記ビデオストリームのデータが受信されない場合、その段階の中のハードウェア復号化ブロックを停止するように動作可能である。例えば、ビデオストリーム302の復号化において、ビデオストリーム302に関する最後のデータがパイプラインの段階1を出て、データがパイプラインの段階1で受信されないとき、パイプラインの段階1の全てのハードウェア復号化ブロックは停止される。したがって、たとえハードウェア復号化ブロックがビデオストリーム302に関連するビデオ標準のために必要とされるとしても、パイプラインの段階の全てのハードウェア復号化ブロックを停止することによってさらなる省電力が達成される。
[050]一実施形態において、ビデオストリーム302は、そのビデオストリーム302が完全に復号化されるまでメモリ330を出入りしない。メモリ330は、外部メモリユニット(例えば、図1の揮発性メモリ102若しくは不揮発性メモリ103)、又はデコーダ装置150の内蔵メモリユニットであってよいことを理解されたい。ビデオストリーム302を完全に復号化するまでメモリ330にアクセスしないことによって、デコーダ装置150はより少ない電力しか使用しない。
[051]一実施形態において、デコーダ装置150は、復号化されたビデオストリームに対して後処理動作を実行するためのハードウェア後処理ブロック320をさらに含む。一実施形態において、ハードウェア後処理ブロック320はデブロッキングフィルタを含む。デブロッキングフィルタは、ループ内デブロッキングフィルタ、又はループ外デブロッキング及び/若しくはデリンギングフィルタであってよいことを理解されたい。ループ内デブロッキングフィルタは、メモリ330にアクセスする前にデブロッキング動作を実行する。ループ外デブロッキング及びデリンギングフィルタは、メモリ330からアクセスされるデータに対するデブロッキング及びデリンギング動作を実行する。しかし、ハードウェア後処理ブロック320は任意の種類の後処理動作を実行することができることを理解されたい。さらに、複数の後処理動作を実行するために任意の数のハードウェア後処理ブロック320が存在することができる。
[052]一実施形態において、命令パーサ305は、ハードウェア後処理ブロック320が復号化されたビデオストリームに対して後処理動作を実行するように、ビデオストリーム302が復号化されたビデオストリームである場合に全てのハードウェア復号化ブロックを停止するように動作可能である。換言すれば、デコーダ装置150は、ハードウェア後処理装置としてのみ使用されることもできる。復号化されたビデオストリームがデコーダ装置150で受信される場合、全てのハードウェア復号化ブロックが停止され、復号化されたビデオストリームに対する後処理動作。
[053]図4は、本発明の一実施形態による、デコーダ装置400とも呼ばれる例示的なハードウェア多標準対応ビデオデコーダ装置400の内部コンポーネントを示す構成図を示す。デコーダ装置400は、JPEG、MPEG−4、H.263、H.263+、H.264、又はWMV9/VC−1デコーダのうちのいずれか1つとして動作するように構成される。したがって、デコーダ装置400は、JPEG、MPEG−4、H.263、H.263+、H.264、又はWMV9/VC−1標準のうちのいずれか1つを使用して符号化されたビデオストリームを復号化するために必要な全ての復号化動作を実行するためのハードウェア復号化ブロックを含む。しかし、本発明はその他のビデオ標準を柔軟にサポートすること、及び本発明は図4に示された実施形態に限定されるように意図されていないことを理解されたい。
[054]図4に示されるように、デコーダ装置400は、命令パーサ402、複数のハードウェア復号化ブロック、複数のハードウェア後処理ブロック、及びメモリ460を含む。命令パーサ402は、ビデオストリーム401(例えば、ビットストリーム)にアクセスするためのものである。ビデオストリーム401は、(例えば、JPEGで符号化された)デジタル静止画像データ、又は(例えば、MPEG−4)デジタルムービーデータを含む可能性があることを理解されたい。一実施形態において、ビデオストリーム401は、マイクロコードエンジン(例えば、図2Bのマイクロコードエンジン260)から受信される。ビデオストリーム401は、複数のビデオ符号化標準のうちの1つに従って符号化された圧縮ビデオストリームである。命令パーサ402は、ビデオストリーム401を符号化するために使用されたビデオ符号化標準を特定する。一実施形態において、ビットストリームのパース及び可変長復号化(VLD)が、命令パーサ402がビデオストリーム401にアクセスする前に実行される。ビットストリームのパース及びVLDは、ホストCPU(例えば、図1の処理装置101)又はマイクロコードエンジンによって実行されることができる。ビデオストリーム401がデコーダ装置400が復号化するように構成されるビデオ標準とは異なるビデオ標準を使用して符号化される場合、復号化動作は実行されないことに留意されたい。一実施形態において、命令パーサ402は、復号化が、サポートされていない標準を使用して符号化されたビデオストリームに対して実行されることができないことを示す指示をコンピュータシステムに送信する。
[055]ビデオストリーム401を符号化するために使用されたビデオ標準を特定すると、命令パーサ402は、ビデオストリーム401のマクロブロックを特定されたビデオ標準に対して適切なハードウェア復号化ブロックに導く。一実施形態において、命令パーサは、特定されたビデオ標準に必要とされないハードウェア復号化ブロックが停止されるように、特定されたビデオ標準に対して適切なハードウェア復号化ブロックを作動する。また、命令パーサ402は、クロックサイクルを制御することによってデコーダ装置400を通じたデータの移動を制御する。一実施形態において、命令パーサ402は、デコーダ装置400の唯一つのアクティブなコンポーネントである。ハードウェア復号化ブロックは、特定されたビデオ標準及びデータフローに従って必要に応じて作動される。
[056]デコーダ装置400のハードウェア復号化ブロックは、イントラ予測モードエンジン404、動きベクトル(MV)予測エンジン406、係数(例えば、ランレングス(RD)又は逆量子化)エンジン408、AC/DC(例えば、AC/DC予測又は逆量子化)予測エンジン410、イントラ予測エンジン414、回転エンジン415、動き補償エンジン416、4×4逆変換エンジン418、8×8逆離散コサイン変換(IDCT)エンジン420、IDCT形式コンバータエンジン422、イントラ予測バッファ432、予測サンプル434、及び残差ブロック436を含む。デコーダ装置400は、多重化装置405、409、417、419、439、及び加算器435をさらに含む。デコーダ装置400は、ハードウェア後処理ブロック、すなわち、ループ内デブロッキングフィルタ440、ループ外フィルタ442、及び回転エンジン450も任意的に含む。
[057]デコーダ装置400は、残差経路及び予測経路を有する3段階マクロブロックレベルパイプライン内に実装される。一実施形態において、2つ以上のマクロブロックがパイプラインの段階1に存在する可能性がある一方、パイプラインの段階2及び3は1つのマクロブロックしか存在しないように制限される。残差経路は、係数エンジン408、AC/DC予測エンジン410、4×4逆変換エンジン418、8×8IDCTエンジン420、IDCT形式コンバータエンジン422、及び残差ブロック436を含む。予測経路は、イントラ予測モードエンジン404、MV予測エンジン406、イントラ予測エンジン414、回転エンジン415、動き補償エンジン416、イントラ予測バッファ432、及び予測サンプル434を含む。
[058]上述のように、デコーダ装置400は、JPEG、MPEG−4、H.263、H.263+、H.264、又はWMV9/VC−1標準のうちのいずれかによるビデオストリームを復号化するように動作可能である。上述のハードウェア復号化ブロックは、サポートされる標準によって必要とされる全ての復号化動作を実行する。ハードウェア復号化ブロックの具体的動作は標準のそれぞれに記載されているので、それらの動作は当業者によく知られ、理解されている。したがって、ハードウェア復号化ブロックの具体的動作は、本明細書において詳細に説明されない。
[059]一実施形態において、MVパラメータ及びイントラ予測パラメータが、予測経路においてMV予測エンジン406及びイントラ予測モードエンジン404にそれぞれ渡される。これらのエンジンは、プログラムされたビデオ標準に基づいて実際の動きベクトル又はイントラ予測モードを計算し、それらを動き補償エンジン416又はイントラ予測エンジン414にそれぞれ渡す。動き補償エンジン416又はイントラ予測エンジン414は、予測データを計算する。一実施形態において、動き補償エンジン416は回転エンジン415を含む。回転エンジン415は、受信ビデオフレームと位置が合うように参照フレームを回転するためのものである。回転エンジン415は、動き補償エンジンがビデオストリームの復号化に使用される度に作動される。一方、エラーデータは、係数エンジン408、AC/DC予測エンジン410、4×4逆変換エンジン418、8×8IDCTエンジン420、及びIDCT形式コンバータエンジン422の必要なサブセットで処理される。
[060]回復されたエラーデータが予測データに加算され、それから、パイプラインの段階3にさらに渡される。結果として得られたデータは必要に応じてさらに処理され、表示されるためにメモリ460に書き込まれる。ループ内デブロッキングフィルタが、H264及びWMV9/VC−1モードで使用される。WMV9/VC−1モードにおいて、ループ内デブロッキングフィルタ440は、重なり平滑化フィルタを実装するために使用される。ループ外フィルタ442が、復号画像の品質を向上するために任意のビデオストリームに対して使用されることができる。一実施形態において、ループ外フィルタ442は、デコーダ装置400の残りの部分と同時に実行される。ループ外フィルタ442は、フレームがメモリ460に復号化された後で作動されるべきである。復号画像は、パイプラインの段階3においてメモリ460に書き込む前に回転エンジン450で回転されることもできる。
サポートされるビデオ標準に対するハードウェア多標準対応ビデオデコーダ装置の例示的な動作
[061]以下の実施形態は、サポートされるビデオ標準のそれぞれに対するデコーダ装置400の動作を説明する。
[062]JPEG:JPEGビデオストリームはデジタル静止画像を再現するためのものであるので、JPEG復号化は予測経路のハードウェア復号化ブロックを必要としない。したがって、イントラ予測モードエンジン404、MV予測エンジン406、イントラ予測エンジン414、回転エンジン415、動き補償エンジン416、イントラ予測バッファ432、及び予測サンプル434は、JPEGの復号化に関して全て停止される。また、JPEG復号化は4×4逆変換エンジン418を必要とせず、したがって、4×4逆変換エンジン418は停止される。命令パーサ402は、係数エンジン408、AC/DC予測エンジン410、8×8IDCTエンジン420、デシメーションIDCTエンジン438、IDCT形式コンバータエンジン422、及び残差ブロック436を作動する。命令パーサ402は、JPEGで符号化されたビデオストリームを復号化するためのアクティブなハードウェア復号化ブロックを通してビデオストリーム401からのデータをルーティングする。ハードウェア復号化ブロックによって実行される動作、及び動作の順番はJPEG標準によって規定されることを理解されたい。
[063]JPEG復号化は、8×8IDCTエンジン420及びデシメーションIDCTエンジン438のうちの一方を使用することだけを要求する。一実施形態において、命令パーサ402は、8×8IDCTエンジン420及びデシメーションIDCTエンジン438のうちのいずれがビデオストリームのために作動されるかを特定するように動作可能である。8×8IDCTエンジン420はビデオストリームを完全に復号化するために作動される一方、デシメーションIDCTエンジン438は、ビデオストリームがデシメーションを指示する場合に作動される。IDCT形式コンバータエンジン422は、形式変換を実行するように動作可能である。例えば、IDCT形式コンバータエンジン422は、以下のフォーマット、すなわち、YUV4:4:4、YUV4:2:2、YUV4:2:2R、及びYUV4:2:0のうちの任意のものの間の形式変換を実行することができる。その他の形式変換が実行されることもできること、及びIDCT形式コンバータエンジン422は列挙された形式に限定されないことを理解されたい。
[064]復号化されたJPEGビデオストリームはパイプラインの段階2を出る。一実施形態において、復号化されたJPEGビデオストリームはメモリ330に記憶される。別の実施形態において、メモリ330に記憶する前に、復号化されたJPEGビデオストリームに対して後処理動作が実行される。
[065]MPEG−4/H.263:MPEG−4及びH.263の復号化は、デコーダ装置400の目的上、互いによく似ている。具体的には、MPEG−4標準は、MPEG−4デコーダが、H.263で符号化されたビデオストリームを復号化するように動作可能であることを要求する。MPEG−4及びH.263の復号化は、イントラ予測モードエンジン404、イントラ予測エンジン414、IDCT形式コンバータエンジン422、及び4×4逆変換エンジン418を必要とせず、それらは停止される。さらに、ループ内デブロッキングフィルタ440は、後処理動作のためにやはり停止される。したがって、命令パーサは、MV予測エンジン406、係数エンジン408、AC/DC予測エンジン410、回転エンジン415、動き補償エンジン416、8×8IDCTエンジン420、イントラ予測バッファ432、予測サンプル434、及び残差ブロック436を作動する。命令パーサ402は、MPEG−4又はH.263で符号化されたビデオストリームを復号化するためのアクティブなハードウェア復号化ブロックを通してビデオストリーム401からのデータをルーティングする。ハードウェア復号化ブロックによって実行される動作、及び動作の順番はMPEG−4及びH.263標準によって規定されることを理解されたい。
[066]命令パーサ402は、マクロブロックを、適切な残差経路又は予測経路のハードウェア復号化ブロックに導くように動作可能である。一実施形態において、イントラフレーム(I−フレーム)は、予測フレーム(P−フレーム)がパイプラインの段階1内のMV予測エンジン406において処理されるのと同時に残差経路の係数エンジン408及びAC/DC予測エンジン410において処理されることができる。I−フレーム及びP−フレームは、パイプラインの段階2において同期される。命令パーサ402は、8×8IDCTエンジン420の適切なハードウェア復号化ブロックを作動するようにやはり動作可能である。
[067]復号化されたMPEG−4/H.263ビデオストリームはパイプラインの段階2を出る。一実施形態において、復号化されたMPEG−4/H.263ビデオストリームはメモリ330に記憶される。別の実施形態において、メモリ330に記憶する前に、復号化されたMPEG−4/H.263ビデオストリームに対して後処理動作が実行される。別の実施形態において、復号化されたMPEG−4/H.263ビデオストリームに対してループ外フィルタ442で後処理動作が実行される。一実施形態において、ループ外フィルタ442はデブロッキングフィルタである。別の実施形態において、ループ外フィルタ442はデリンギングフィルタである。別の実施形態において、ループ外フィルタ442は、デブロッキングフィルタ及びデリンギングフィルタの両方である。ループ外フィルタ442は、任意のデブロッキング及び/又はデリンギングフィルタとして実装されることができることを理解されたい。
[068]H.263+:H.263+の復号化は、上述のようなMPEG−4/H.263の復号化に似ている。H.263+は、復号化動作の一部を、命令パーサ402がビデオストリーム401にアクセスする前に実行されるVLDに移管する。イントラ予測モードエンジン404、イントラ予測エンジン414、4×4逆変換エンジン418、及びループ外フィルタ442を必要とせず、したがってイントラ予測モードエンジン404、イントラ予測エンジン414、4×4逆変換エンジン418、及びループ外フィルタ442を停止することに加えて、命令パーサ402は、係数エンジン408及びAC/DC予測エンジン410も停止する。その他の点では、H.263+の復号化は、上述のようなMPEG−4/H.263の復号化に似ている。ハードウェア復号化ブロックによって実行される動作、及び動作の順番はH.263+標準によって規定されることを理解されたい。
[069]H.264:H.264復号化は、AC/DC予測エンジン410、8×8IDCTエンジン420、及びIDCT形式コンバータエンジン422を必要とせず、それらは停止される。したがって、命令パーサ402は、イントラ予測モードエンジン404、MV予測エンジン406、係数エンジン408、イントラ予測エンジン414、回転エンジン415、動き補償エンジン416、4×4逆変換エンジン418、イントラ予測バッファ432、予測サンプル434、及び残差ブロック436を作動する。イントラ予測バッファ432は、マクロブロックの次の行を処理するときにイントラ予測エンジン414が前の「平準化」画素にアクセスすることができるように、前のマクロブロックからの画素の先頭行を記憶するように動作可能である。命令パーサ402は、H.264で符号化されたビデオストリームを復号化するためのアクティブなハードウェア復号化ブロックを通してビデオストリーム401からのデータをルーティングする。ハードウェア復号化ブロックによって実行される動作、及び動作の順番はH.264標準によって規定されることを理解されたい。
[070]命令パーサ402は、マクロブロックを、適切な残差経路又は予測経路のハードウェア復号化ブロックに導くように動作可能である。一実施形態において、フレームは、パイプラインの段階1内で、残差経路及び予測経路で同時に処理されることができる。フレームは、パイプラインの段階2において同期される。
[071]復号化されたH.264ビデオストリームはパイプラインの段階2を出る。一実施形態において、メモリ330に記憶する前に、復号化されたH.264ビデオストリームに対してループ内後処理動作が実行される。別の実施形態において、復号化されたH.264ビデオストリームに対してループ外フィルタ442でループ外後処理動作が実行される。ループ外フィルタ442は、任意のデブロッキングフィルタ及び/又はデリンギングフィルタとして実装されることができることを理解されたい。
[072]WMV9/VC−1:WMV9/VC−1の復号化は、イントラ予測モードエンジン404及びイントラ予測エンジン414を必要とせず、それらは停止される。したがって、命令パーサ402は、MV予測エンジン406、係数エンジン408、AC/DC予測エンジン410、回転エンジン415、動き補償エンジン416、4×4逆変換エンジン418、8×8IDCTエンジン420、イントラ予測バッファ432、予測サンプル434、及び残差ブロック436を作動する。命令パーサ402は、WMV9/VC−1で符号化されたビデオストリームを復号化するためのアクティブなハードウェア復号化ブロックを通してビデオストリーム401からのデータをルーティングする。ハードウェア復号化ブロックによって実行される動作、及び動作の順番はWMV9/VC−1標準によって規定されることを理解されたい。
[073]命令パーサ402は、マクロブロックを、適切な残差経路又は予測経路のハードウェア復号化ブロックに導くように動作可能である。一実施形態において、フレームは、パイプラインの段階1内で、残差経路及び予測経路で同時に処理されることができる。フレームは、パイプラインの段階2において同期される。
[074]復号化されたWMV9/VC−1ビデオストリームはパイプラインの段階2を出る。一実施形態において、メモリ330に記憶する前に、復号化されたWMV9/VC−1ビデオストリームに対してループ内後処理動作が実行される。一実施形態において、ループ内デブロッキングフィルタ440は、重なり平滑化フィルタを実装するために使用される。別の実施形態において、復号化されたWMV9/VC−1ビデオストリームに対してループ外フィルタ442で後処理動作が実行される。ループ外フィルタ442は、任意のデブロッキング及び/又はデリンギングフィルタとして実装されることができることを理解されたい。
後処理動作
[075]デコーダ装置400のパイプラインの段階3は、3つのハードウェア後処理ブロック、すなわち、ループ内デブロッキングフィルタ440、ループ外フィルタ442、及び回転エンジン450を含む。ループ内デブロッキングフィルタ440は、H.264及びWMV9/VC−1モードで使用される。一実施形態において、WMV9/VC−1モードで、ループ内デブロッキングフィルタ440は、重なり平滑化フィルタを実装するために使用される。
[076]ループ外フィルタ442は、復号画像の品質を向上するために任意のビデオストリームに対して使用されることができる。一実施形態において、ループ外フィルタ442は、デコーダ装置400の残りの部分と同時に実行される。ループ外フィルタ442は、フレームがメモリ460に復号化された後で作動されるべきである。
[077]任意のデブロッキング及び/又はデリンギングフィルタがループ外フィルタ442のために使用されることができることを理解されたい。例えば、装置150で実装されることができるビデオ標準の多くを管理する組織である国際標準化機構(ISO)は、標準化の刊行物にデブロッキングフィルタの提案を含むことが多い。例えば、ループ外フィルタ442は、ISOの刊行物ISO/IEC14496−2:2001、セクションF.3.1に記載のデブロッキングフィルタを含むことができる。
[078]復号画像は、パイプラインの段階3においてメモリ460に書き込む前に回転エンジン450で回転されることもできる。回転エンジン450は、オンザフライのマクロブロックの回転を提供するように構成され、個々のマクロブロックは、指示された回転の度合いに基づいて回転され、フレームの新しい位置に置かれる。回転エンジン450の動作の詳細な検討に関しては、以下の図10A、10B、及び11の検討を参照されたい。
ハードウェア多標準対応ビデオデコーダ装置を使用してビデオストリームを復号化するための方法
[079]図5は、ビデオストリームを復号化するための方法500のフローチャートを示し、方法は、本発明の実施形態によるハードウェア多標準対応ビデオデコーダ装置を使用して実行される。具体的なステップが方法500において開示されるが、そのようなステップは例示的である。すなわち、本発明の実施形態は、様々なその他のステップ、又は図5に記載のステップの変更形態を実行することによく適する。一実施形態において、方法500は、図3のデコーダ装置150によって実行される。
[080]プロセス500のステップ510において、ビデオストリームがアクセスされる。ステップ520において、ビデオストリームを符号化するために使用されたビデオ標準が特定される。ハードウェア多標準対応ビデオデコーダ装置は、複数のビデオ標準によるビデオストリームを復号化するように構成される。
[081]ステップ530において、ビデオストリームを復号化するために使用されるハードウェア多標準対応ビデオデコーダ装置の複数のハードウェア復号化ブロックのうちのハードウェア復号化ブロックのサブセットが決定される。複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するように動作可能である。一実施形態において、ステップ540に示されるように、ビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないようにハードウェア復号化ブロックのサブセットが作動される。
[082]ステップ550において、ビデオストリームが、ハードウェア復号化ブロックのサブセットを使用して復号化される。一実施形態において、ステップ560に示されるように、多段階マクロブロックレベルパイプラインの1つの段階でビデオストリームのデータが受信されない場合、その段階の中のハードウェア復号化ブロックが停止される。ステップ540及び560はさらなる省電力を提供し、任意的であることを理解されたい。
[083]ステップ570において、メモリユニットは、ビデオストリームを復号化した後でアクセスされる。一実施形態において、復号化されたビデオストリームは、表示のためにメモリに記憶される。一実施形態において、ステップ580に示されるように、復号化されたビデオストリームに対する後処理動作。後処理動作は、ステップ570が実行される前、又はステップ570が実行された後に実行されることができることを理解されたい。一実施形態において、復号化されたビデオストリームは回転される。別の実施形態において、ループ内デブロッキングフィルタが、復号化されたビデオストリームに適用される。回転及びループ内デブロッキングは、メモリユニットがアクセスされる前に実行される。一実施形態において、ループ外デブロッキング及びデリンギングフィルタが、メモリユニットがアクセスされた後に、復号化されたビデオストリームに適用される。
ハードウェア多標準対応ビデオデコーダ装置を使用した、異なるビデオ標準を使用して符号化された複数のストリームの復号化
[084]本発明のハードウェア多標準対応ビデオデコーダ装置の実施形態は、複数のビデオストリームを同時に復号化するようにも動作可能である。マクロブロック又はフレームなどのビデオストリームの一部はインターリーブされる。デコーダ装置は、インターリーブされた部分に順次アクセスする。したがって、デコーダ装置は、インターリーブされた部分に対して復号化動作を実行する。例えば、復号化動作は、2つのビデオストリームのマクロブロックに対して実行されることができる。ビデオストリームは、ビデオストリームのマクロブロックが交互に現れるようにインターリーブされる。各クロックサイクルで、復号化動作が、交互に現れるビデオストリームに対して実行されることができる。
[085]図6は、本発明の一実施形態によるハードウェア多ストリーム多標準対応ビデオデコーダ装置600の内部コンポーネントを示す図を示す。図6に示されるように、デコーダ装置600は、ビデオストリームインターリーバ605、命令パーサ305、複数のハードウェア復号化ブロック310から318、ハードウェア後処理ブロック320、メモリ330、レジスタセット610、及びレジスタセット620を含む。デコーダ装置600は、複数のビデオ符号化標準を復号化するように動作可能であり、図3のデコーダ装置150と多くの点で同様に動作する。デコーダ装置600は、レジスタセット610及び620がデコーダ装置600が複数のビデオストリームを同時に復号化することを可能にするという点でデコーダ装置150と異なる。
[086]ビデオストリームインターリーバ605は、複数のビデオストリームにアクセスするように、及びビデオストリームの一部をインターリーブするように動作可能である。示されるように、ビデオストリームインターリーバ605は、ビデオストリーム601及び602にアクセスする。しかし、ビデオストリームインターリーバ605は、任意の数のビデオストリームを受信するように動作可能であり、図6に示された実施形態に限定されないことを理解されたい。一実施形態において、ビデオストリーム601及び602は、マイクロコードエンジン(例えば、図2Bのマイクロコードエンジン260)から受信される。
[087]図7A及び7Bは、本発明の実施形態による、複数のビデオストリームの例示的なインターリーブされた部分を示す図を示す。図7Aを参照すると、2つのインターリーブされたビデオストリームが示され、1つのストリームは静止画像ビデオストリーム(例えば、JPEG)であり、もう一方のストリームはデジタルムービーストリーム(例えば、MPEG−4)である。示されるように、ビデオストリームが1つのデジタルムービーストリームしか含まない場合、ビデオストリームはマクロブロックレベルでインターリーブされることができる。具体的には、静止画像マクロブロック704及び708は、各ビデオストリームからのマクロブロックがインターリーブされたストリーム700内に交互に現れるようにデジタルムービーのマクロブロック702及び706とインターリーブされる。ビデオストリームがマクロブロックレベルでインターリーブされる場合、デコーダ装置600のソフトウェアドライバは、インターリーブされたビデオストリームの復号化を管理するためにマクロブロックデータをシステムメモリ内にバッファリングする。
[088]図7Bを参照すると、2つのインターリーブされたビデオストリームが示され、両方のストリームともデジタルムービーストリームである。示されるように、ビデオストリームが複数のデジタルムービーストリームを含む場合、ビデオストリームはフレームレベルでインターリーブされる。具体的には、第1のデジタルムービーのフレーム752及び756は、各ビデオストリームからのフレームがインターリーブされたストリーム750内に交互に現れるように第2のデジタルムービーのフレーム754及び758とインターリーブされる。ビデオストリームがフレームレベルでインターリーブされる場合、デコーダ装置600のソフトウェアドライバは、インターリーブされたビデオストリームの復号化を管理するためにフレームデータをシステムメモリ内にバッファリングする。
[089]図6を参照すると、命令パーサ305、ハードウェア復号化ブロック310から318、ハードウェア後処理ブロック320、及びメモリ330が、図3に示されるように動作する。残差データ及びその他のデコーダパラメータが、命令パーサ305を通じてデコーダ装置に渡される。命令パーサ305からのデータは、残差経路(ハードウェア復号化ブロック312、316、及び318)、又は予測経路(ハードウェア復号化ブロック310及び314)のいずれかにルーティングされる。残差経路は、エラー又は差分データを処理する一方、予測経路は、前のフレーム又は前のマクロブロックデータを準備/取得する。
[090]インターリーブされたビデオストリームの復号化を管理するために、2つのレジスタセット610及び620は、パイプラインの段階1において維持される。一実施形態において、レジスタセット610及び620は、メモリサーフェスポインタ612及び622をそれぞれ記憶し、フレームレベルパラメータ614及び624をそれぞれ記憶する。レジスタセットのそれぞれは、ビデオストリームのうちの1つに関連するパラメータを記憶するために使用される。例えば、レジスタセット610は、ビデオストリーム601に関連するパラメータを記憶するために使用され、レジスタセット620は、ビデオストリーム602に関連するパラメータを記憶するために使用される。パイプラインの段階1において1つのビデオストリームの一部のいずれかが処理されると、適切なパラメータが、残差又は予測データと共にダウンストリームパイプラインの段階2及び3にパケットの形態で渡される。復号化されたデータは、マクロブロックが静止画像の形式であるか、それともデジタルムービーの形式であるかに基づいてメモリ内の適切な領域にルーティングされる。デコーダ装置600は、復号化されるべき各ストリームが関連するレジスタセットを有するように適切な数のレジスタセットを追加することによって任意の数のビデオストリームを復号化するように構成されることができる。
[091]図8は、複数のビデオストリームを復号化するための方法800のフローチャートを示し、方法は、本発明の実施形態によるハードウェア多ストリーム多標準対応ビデオデコーダ装置を使用して実行される。具体的なステップが方法800において開示されるが、そのようなステップは例示的である。すなわち、本発明の実施形態は、様々なその他のステップ、又は図8に記載のステップの変更形態を実行することによく適する。一実施形態において、方法800は、図6のデコーダ装置600によって実行される。
[092]プロセス800のステップ810において、複数のビデオストリームがアクセスされる。ステップ820において、ビデオストリームを符号化するために使用されたビデオ標準が特定される。ハードウェア多ストリーム多標準対応ビデオデコーダ装置は、複数のビデオ標準によるビデオストリームを復号化するように構成される。ステップ830において、ビデオストリームの一部がインターリーブされる。一実施形態において、ビデオストリームが1つのデジタルムービーストリームしか含まない場合、ビデオストリームのマクロブロックがインターリーブされる。別の実施形態において、ビデオストリームが複数のデジタルムービーストリームを含む場合、ビデオストリームのフレームがインターリーブされる。ステップ820及び830は任意の順番で実行されることができることを理解されたい。
[093]ステップ840において、複数のビデオストリームを復号化するために使用されるハードウェア多標準対応ビデオデコーダ装置の複数のハードウェア復号化ブロックのうちのハードウェア復号化ブロックのサブセットが決定される。複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するように動作可能である。一実施形態において、ステップ850に示されるように、ビデオストリームの復号化に関係ないハードウェア復号化ブロックが作動されないようにハードウェア復号化ブロックのサブセットが作動される。
[094]ステップ860において、ビデオストリームが、ハードウェア復号化ブロックのサブセットを使用して復号化される。ステップ870において、メモリユニットは、ビデオストリームを復号化した後でアクセスされる。一実施形態において、復号化されたビデオストリームは、表示のためにメモリに記憶される。一実施形態において、ステップ880に示されるように、少なくとも1つの復号化されたビデオストリームに対する後処理動作。後処理動作は、ステップ870が実行される前、又はステップ870が実行された後に実行されることができることを理解されたい。一実施形態において、復号化されたビデオストリームは回転される。別の実施形態において、ループ内デブロッキングフィルタが、復号化されたビデオストリームに適用される。回転及びループ内デブロッキングは、メモリユニットがアクセスされる前に実行される。一実施形態において、ループ外デブロッキング及びデリンギングフィルタが、メモリユニットがアクセスされた後に、復号化されたビデオストリームに適用される。
ビデオストリームの順番が狂ったマクロブロックの処理
[095]図2Bを参照すると、一実施形態において、本発明は、マイクロコードエンジン260においてマクロブロックのバッファリング及び並べ替えを行う。本発明は、非ラスタ走査順のマクロブロックの送信及び受信をサポートするビデオ標準のためのループ内デブロッキングをサポートするために、マクロブロックをラスタ走査順に整列することを提供する。マイクロコードエンジン260は、ビデオストリームのフレームのマクロブロックを表す圧縮データを受信するように構成される。一実施形態において、少なくとも1つのマクロブロックが順番が狂って受信される。マイクロコードエンジン260は、圧縮データをバッファリングするように構成され、フレームのマクロブロックをラスタ走査順に整列するように構成される。
[096]図9は、本発明の実施形態による、ビデオストリームの順番が狂ったマクロブロックを処理するための方法900のフローチャートを示す。具体的なステップが方法900において開示されるが、そのようなステップは例示的である。すなわち、本発明の実施形態は、様々なその他のステップ、又は図9に記載のステップの変更形態を実行することによく適する。一実施形態において、方法900は、図2Bのマイクロコードエンジン260によって実行される。
[097]方法900のステップ910において、ビデオストリームのフレームのマクロブロックを表す圧縮データが受信され、少なくとも1つのマクロブロックが順番が狂って受信される。ステップ920において、圧縮データがバッファリングされる。一実施形態において、圧縮データは、マイクロコードエンジン260のバッファにバッファリングされる。ステップ930において、ビデオストリームがパースされ、VLDがビデオストリームに対して実行される。ステップ930は任意的であること、及びビデオストリームのパース及びVLDはハードウェアデコーダ装置によって実行されることができることを理解されたい。ステップ930において、その他の又はさらなる前処理動作がビデオストリームに対して実行されることができることをさらに理解されたい。
[098]ステップ935において、ビデオストリームがループ内デブロッキングを必要とするかどうかが判定される。一実施形態において、圧縮データは、ループ内デブロッキングがビデオストリームに対して実行されるべきであるかどうかの指示を含む。ループ内デブロッキングが必要とされる場合、ステップ940に示されるように、フレームのマクロブロックがラスタ走査順に整列される。一実施形態において、フレームの全てのマクロブロックは、マクロブロックがラスタ走査順に整列される前にバッファリングされる。次に、方法900はステップ950に進む。或いは、ループ内デブロッキングが必要とされない場合、方法900はステップ950に直接進む。
[099]ステップ950において、ビデオストリームが復号化される。一実施形態において、マクロブロックは、ラスタ走査順で復号化される。一実施形態において、ビデオストリームは、ハードウェア多標準対応ビデオデコーダ装置(例えば、図3のデコーダ装置150又は図4のデコーダ装置400)によって復号化される。一実施形態において、ビデオストリームは、図5の方法500に従って復号化される。
[0100]ステップ960において、マクロブロックレベルのループ内デブロッキングが、復号化されたマクロブロックに対して実行される。ステップ970において、メモリユニットがアクセスされる。一実施形態において、デブロッキング及び復号化されたビデオストリームが、表示のためにメモリに記憶される。
[0101]ステップ980において、フレームレベルのループ外後処理が、復号化されたフレームに対して実行される。一実施形態において、ループ外後処理は、デブロッキング及びデリンギング動作を含む。ステップ980は任意的であることを理解されたい。次に、方法900はステップ970に戻り、メモリユニットがアクセスされる。一実施形態において、デブロッキングされ、デリンギングされ、復号化されたビデオストリームが、表示のためにメモリに記憶される。
[0102]マクロブロックがまだ圧縮データである間にマクロブロックをバッファリングすることによって、マイクロコードエンジン260は、復号化されたビデオデータよりもずっと少ないランレングス符号化された圧縮データの最大1フレームをバッファリングすることしか必要としない。さらに、圧縮マクロブロックのバッファは、電力も節約する。また、無線で受信されたビデオストリームは、多くのエラーを含みやすい。また、マイクロコードエンジン260に対するビットストリームのパースの分割は、エラー回復を改善する利点を有する。
ビデオストリームのマクロブロックのオンザフライでの回転
[0103]本発明の実施形態は、ビデオストリームがメモリに書き込まれる前に、ビデオストリームを「オンザフライで」回転するための回転エンジンを提供する。本発明の実施形態は、ビデオストリームが受信されるときにそれらのビデオストリームのマクロブロックを回転し、回転に基づいてフレーム内でマクロブロックを再配置することによってビデオストリームを回転することができる。本発明の実施形態は、復号化されたマクロブロックをメモリに書き込む前にマクロブロックに対して動作することによって、復号化されたフレームにおいてセカンドパス(second pass)を必要とせずにビデオストリームを回転することができる。
[0104]一実施形態において、本発明は、回転の度合いに従ってビデオストリームのフレームのマクロブロックを回転するように、及びマクロブロックをフレーム内の新しい位置に再配置するように構成された回転エンジンを提供し、新しい位置は回転の度合いに基づく。一実施形態において、ビデオデコーダ装置は、表示のためにマクロブロックを記憶するためのメモリをさらに含む。一実施形態において、回転エンジンは、メモリにアクセスする前に、マクロブロックを回転し、マクロブロックをフレーム内で再配置するように構成される。
[0105]図10A及び10Bは、本発明の実施形態による、フレームのマクロブロックの例示的な回転の図を示す。図10A及び10Bは図4の回転エンジン450の動作を示すが、示された実施形態は、任意の種類のビデオデコーダ装置内に実装されることができ、図4のハードウェア多標準対応ビデオデコーダ装置400の使用に限定されないことを理解されたい。例えば、回転エンジンは、単一標準対応ハードウェアデコーダ又はソフトウェアデコーダ内に含まれることができる。
[0106]図10Aを参照すると、図1000が、図4の回転エンジン450を使用したフレーム1010の回転を示す。フレーム1010は、多くのマクロブロックを含む。マクロブロック1012が、回転エンジン450において受信された第1のマクロブロックとして示される。一実施形態において、マクロブロックは、マクロブロック1012が左上のマクロブロックであるようにマクロブロック1012が第1の受信マクロブロックであるラスタ走査順に受信される。
[0107]回転エンジン450は、マクロブロック1012を回転し、マクロブロック1012をフレーム1010内の新しい位置に再配置するように構成される。回転及び再配置は、ビデオストリームに関連する回転の度合いに基づく。回転の度合いは、ビデオストリームがどのように回転されるべきかを示す。例えば、回転の度合いは、時計回りに90度、反時計回りに90度、180度、又は任意のその他の回転の度合いであってよい。
[0108]図1000は、時計回りに90度の回転の度合いを使用した回転エンジン450の動作を示す。マクロブロック1012は、時計回りに90度回転される。回転エンジン450は、回転されたフレーム1020内のマクロブロック1022として示される回転されたマクロブロック1012が、フレーム1020の全てのその他のマクロブロックに対して相対的に同じ位置にあるようにマクロブロック1012をやはり再配置する。
[0109]本発明の実施形態は、マクロブロックが順番が狂って受信されるマクロブロックレベルでのフレームの回転も提供する。図10Bを参照すると、図1050が、図4の回転エンジン450を使用したフレーム1060の回転を示す。マクロブロック1062が、回転エンジン450において受信された第1のマクロブロックとして示される。この実施形態において、マクロブロックは、マクロブロック1062が第1の受信マクロブロックであるが、左上のマクロブロックではないようにラスタ走査順でない順番で受信される。
[0110]回転エンジン450は、マクロブロック1062を回転し、マクロブロック1062をフレーム1060内の新しい位置に再配置するように構成される。図1050は、時計回りに90度の回転の度合いを使用した回転エンジン450の動作を示す。マクロブロック1062は、時計回りに90度回転される。回転エンジン450は、回転されたフレーム1070内のマクロブロック1072として示される回転されたマクロブロック1062が、フレーム1070の全てのその他のマクロブロックに対して相対的に同じ位置にあるようにマクロブロック1062をやはり再配置する。
[0111]図11は、本発明の実施形態による、フレームのマクロブロックを回転するための方法1100のフローチャートを示す。具体的なステップが方法1100において開示されるが、そのようなステップは例示的である。すなわち、本発明の実施形態は、様々なその他のステップ、又は図11に記載のステップの変更形態を実行することによく適する。一実施形態において、方法1100は、図4のマイクロコードエンジン450によって実行される。
[0112]ステップ1110において、ビデオストリームが復号化される。一実施形態において、ビデオストリームは、ハードウェア多標準対応ビデオデコーダ装置(例えば、図3のデコーダ装置150又は図4のデコーダ装置400)によって復号化される。一実施形態において、ビデオストリームは、図5の方法500に従って復号化される。ステップ1110は任意的であること、及びビデオストリームは処理の前に既に復号化されていることを理解されたい。
[0113]ステップ1120において、ビデオストリームに対する回転の度合いがアクセスされる。一実施形態において、回転の度合いは、時計回りに90度、反時計回りに90度、及び180度のうちの1つである。しかし、任意の回転の度合いが使用されてよいことを理解されたい。ステップ1130において、ビデオストリームのマクロブロックがアクセスされる。
[0114]ステップ1140において、マクロブロックは、回転の度合いに従って回転される。ステップ1150において、マクロブロックはフレーム内の新しい位置に再配置され、新しい位置は回転の度合いに基づく。マクロブロックは、当該マクロブロックが、いったん回転されたときにフレームの全てのその他のマクロブロックに対して同じ相対的位置にあるように再配置されることを理解されたい。一実施形態において、マクロブロックの回転と、マクロブロックの再配置とは、メモリにアクセスする前に実行される。
[0115]ステップ1160において、マクロブロックは、表示のためにメモリ内に記憶される。一実施形態において、ステップ1170に示されるように、デブロッキング動作が、復号化されたマクロブロックに対して実行される。ステップ1170は任意的であることを理解されたい。さらに、ステップ1170は、ループ内デブロッキング、又はループ外デブロッキング及びデリンギングを実行することを含むことができることを理解されたい。
[0116]このように、本発明の実施形態は、複数のビデオ標準によるビデオストリームのハードウェアベースの復号化をサポートする新しいハードウェア多標準対応ビデオデコーダ装置のアーキテクチャを提供する。本発明の実施形態は、複数のビデオ符号化標準のそれぞれに対してリアルタイムの復号化を提供することができる。本発明の実施形態は、復号化されたビデオストリームに対する後処理動作を提供する。本発明の一実施形態は、JPEG、MPEG−4、H.263、H.263+、H.264、及びWMV9/VC−1ビデオ標準のうちのいずれかを使用したビデオストリームに対するビデオ復号化を提供するハードウェアデコーダ装置を提供する。
[0117]本発明の実施形態は、複数の異なるビデオ符号化標準のためのビデオ復号化機能を同時に提供するためのハードウェア多ストリーム多標準対応ビデオデコーダ装置を提供する。本発明の実施形態は、複数のインターリーブされたビデオストリームを同時に復号化することができる。
[0118]本発明の実施形態は、マクロブロックをラスタ走査順に整列するための追加的なメモリを要求することなしにビデオストリームのループ内デブロッキングを提供するためのビデオデコーダアーキテクチャを提供する。本発明の実施形態は、マイクロコードエンジンにおいてビデオストリームのマクロブロックを整列することができる。本発明の実施形態は、複数のサポートされるビデオ標準のうちの1つを使用して符号化されたビデオストリームに対する復号化並びにループ外デブロッキング及び/又はデリンギングを提供することができる。
[0119]本発明の実施形態は、ビデオストリームがメモリに書き込まれる前に、ビデオストリームを「オンザフライで」回転するための回転エンジンを提供する。本発明の実施形態は、ビデオストリームが受信されるときにそれらのビデオストリームのマクロブロックを回転し、回転に基づいてフレーム内でマクロブロックを再配置することによってビデオストリームを回転することができる。本発明の実施形態は、復号化されたマクロブロックをメモリに書き込む前にマクロブロックに対して動作することによって、復号化されたフレームにおいてセカンドパスを必要とせずにビデオストリームを回転することができる。
[0120]本発明の特定の実施形態の上述の説明は、例示及び説明の目的で示された。それらの実施形態は、網羅的であるように、又は本発明を開示された厳密な形態に限定するように意図されておらず、多くの修正形態及び変形形態が上述の教示を踏まえて可能である。実施形態は、本発明の原理、及びその実際的な応用を最もよく説明して、それによって当業者が本発明及び種々の実施形態を、考えられる特定の用途に適する様々な修正と共に最も上手く利用することを可能にするために選択され、説明された。本発明の範囲は、本明細書に添付された特許請求の範囲と、その特許請求の範囲の均等物とによって規定されることが意図される。
本発明の一実施形態によるコンピュータシステムの基本コンポーネントの概略図である。 本発明の一実施形態による、プリント回路基板上に実装された例示的なハードウェアビデオデコーダカードの図である。 本発明の一実施形態による、ハードウェア多標準対応ビデオデコーダ装置を含む例示的なアーキテクチャの図である。 本発明の一実施形態によるハードウェア多標準対応ビデオデコーダ装置の内部コンポーネントを示す構成図である。 本発明の一実施形態による例示的なハードウェア多標準対応ビデオデコーダ装置の内部コンポーネントを示す構成図である。 ビデオストリームを復号化するための方法のフローチャートであり、方法は、本発明の実施形態によるハードウェア多標準対応ビデオデコーダ装置を使用して実行される。 本発明の一実施形態によるハードウェア多ストリーム多標準対応ビデオデコーダ装置の内部コンポーネントを示す図である。 本発明の実施形態による、複数のビデオストリームの例示的なインターリーブされた部分を示す図である。 本発明の実施形態による、複数のビデオストリームの例示的なインターリーブされた部分を示す図である。 複数のビデオストリームを復号化するための方法のフローチャートであり、方法は、本発明の実施形態によるハードウェア多ストリーム多標準対応ビデオデコーダ装置を使用して実行される。 本発明の実施形態による、ビデオストリームの順番が狂ったマクロブロックを処理するための方法のフローチャートである。 本発明の実施形態による、フレームのマクロブロックの例示的な回転の図である。 本発明の実施形態による、フレームのマクロブロックの例示的な回転の図である。 本発明の実施形態による、フレームのマクロブロックを回転するための方法のフローチャートである。

Claims (9)

  1. ハードウェア多標準対応ビデオデコーダ装置を使用して実行される、復号化のための方法であって、
    複数のビデオストリームのうちの1つである第1のビデオストリームにアクセスするステップと、
    前記第1のビデオストリームを符号化するために使用された第1のビデオ標準を特定するステップと、
    前記第1のビデオストリームを復号化するために使用される前記ハードウェア多標準対応ビデオデコーダ装置の複数のハードウェア復号化ブロックのうち、ハードウェア復号化ブロックの第1のサブセットを決定するステップであり、前記複数のハードウェア復号化ブロックの異なるサブセットは、異なるビデオ符号化標準を使用して符号化されたビデオストリームを復号化するように動作可能である、前記決定するステップと、
    ハードウェア復号化ブロックの前記第1のサブセットを使用して前記第1のビデオストリームを復号化するステップと
    を含
    前記複数のハードウェア復号化ブロックは、ハードウェアベースの復号化を実行するように動作可能であり、
    前記複数のハードウェア復号化ブロックは、多段階マクロブロックレベルパイプライン内に実装される、方法。
  2. 前記多段階マクロブロックレベルパイプラインの1つの段階で前記第1のビデオストリームのデータが受信されない場合に前記段階の中のハードウェア復号化ブロックを停止するステップをさらに含む請求項に記載の方法。
  3. 前記複数のビデオストリームにアクセスするステップと、
    前記複数のビデオストリームのうちのビデオストリームに対して使用された第2のビデオ標準を特定するステップと、
    前記複数のビデオストリームの一部をインターリーブするステップと、
    前記複数のハードウェア復号化ブロックのうち、ハードウェア復号化ブロックの複数のサブセットを決定するステップと、
    ハードウェア復号化ブロックの前記複数のサブセットを使用して前記複数のビデオストリームを復号化するステップと
    をさらに含む請求項1または2に記載の方法。
  4. 前記複数のビデオストリームは、少なくとも1つのデジタル静止画像ストリーム、及びデジタルムービーストリームを含む請求項に記載の方法。
  5. 前記複数のビデオストリームの前記一部は、前記デジタル静止画像ストリーム及び前記デジタルムービーストリームのフレームである請求項に記載の方法。
  6. 前記複数のビデオストリームは、複数のデジタルムービーストリームを含む請求項3〜5のいずれかに記載の方法。
  7. 前記複数のビデオストリームの前記一部は、前記複数のデジタルムービーストリームのマクロブロックである請求項に記載の方法。
  8. 前記第1のビデオストリームの復号化に関係のないハードウェア復号化ブロックが作動されないようにハードウェア復号化ブロックの前記サブセットを作動するステップをさらに含む請求項1〜7のいずれかに記載の方法。
  9. 前記第1のビデオストリームを復号化する前記ステップの後でメモリユニットにアクセスするステップをさらに含む請求項1〜8のいずれかに記載の方法。
JP2008544512A 2005-12-09 2006-12-06 ハードウェア多標準対応ビデオデコーダ装置 Active JP4891335B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/299,055 2005-12-09
US11/299,055 US9210437B2 (en) 2005-12-09 2005-12-09 Hardware multi-stream multi-standard video decoder device
US11/299,057 2005-12-09
US11/299,057 US9204158B2 (en) 2005-12-09 2005-12-09 Hardware multi-standard video decoder device
PCT/US2006/046741 WO2007070343A2 (en) 2005-12-09 2006-12-06 A hardware multi-standard video decoder device

Publications (3)

Publication Number Publication Date
JP2009518960A JP2009518960A (ja) 2009-05-07
JP2009518960A5 JP2009518960A5 (ja) 2009-07-30
JP4891335B2 true JP4891335B2 (ja) 2012-03-07

Family

ID=38163412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008544512A Active JP4891335B2 (ja) 2005-12-09 2006-12-06 ハードウェア多標準対応ビデオデコーダ装置

Country Status (6)

Country Link
JP (1) JP4891335B2 (ja)
KR (2) KR101065546B1 (ja)
CN (1) CN101322321A (ja)
DE (1) DE112006003307T8 (ja)
TW (1) TW200735667A (ja)
WO (1) WO2007070343A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
US9288453B2 (en) * 2011-04-22 2016-03-15 Thomson Licensing Method and device for lossy encoding data and corresponding device for reconstructing data
CN109600619A (zh) * 2018-12-11 2019-04-09 晶晨半导体(上海)股份有限公司 一种解码硬件的分时复用方法
CN112672166B (zh) * 2020-12-24 2023-05-05 北京睿芯高通量科技有限公司 一种视频解码器的多码流解码加速系统及方法
CN114339257B (zh) * 2022-01-26 2023-11-28 稿定(厦门)科技有限公司 用于解码视频文件的方法及装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10117329A (ja) * 1996-08-01 1998-05-06 Thomson Consumer Electron Inc 可変符号化フォーマットと送信チャンネル番号を受信するための方法
JPH11112906A (ja) * 1997-09-30 1999-04-23 Matsushita Electric Ind Co Ltd テレビジョン受信機および映像信号処理装置
JP2001094895A (ja) * 1999-09-24 2001-04-06 Sharp Corp データの相互送受信可能なデジタルavシステム
JP2003152546A (ja) * 2001-11-15 2003-05-23 Matsushita Electric Ind Co Ltd マルチフォーマットストリーム復号化装置及びマルチフォーマットストリーム送出装置
JP2003259240A (ja) * 2001-10-18 2003-09-12 Yazaki North America Inc マルチフォーマット復号器ボード、マルチメディアシステム、および複数の異なる符号化フォーマットで符号化されたデータを搬送するデジタルデータストリームを取り扱う方法
US20030185306A1 (en) * 2002-04-01 2003-10-02 Macinnis Alexander G. Video decoding system supporting multiple standards
WO2003085494A2 (en) * 2002-04-01 2003-10-16 Broadcom Corporation Video decoding system
WO2004051982A1 (en) * 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Method and apparatus for selecting particular decoder based on bitstream format detection
JP2005267172A (ja) * 2004-03-18 2005-09-29 Sony Corp コンテンツ受信システム、コンテンツ受信装置および方法、記録媒体、並びにプログラム
US20050259688A1 (en) * 2004-05-21 2005-11-24 Stephen Gordon Multistandard video decoder
WO2006105544A1 (en) * 2005-03-30 2006-10-05 Intel Corporation Multistandard variable length decoder with hardware accelerator
JP2007104672A (ja) * 2005-10-04 2007-04-19 Samsung Electronics Co Ltd マルチコーデック用のフィルタリング装置、方法、及び記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576765A (en) * 1994-03-17 1996-11-19 International Business Machines, Corporation Video decoder
US5598222A (en) * 1995-04-18 1997-01-28 Hatachi American, Ltd. Method and apparatus for decoding multiple video bitstreams using a common memory

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10117329A (ja) * 1996-08-01 1998-05-06 Thomson Consumer Electron Inc 可変符号化フォーマットと送信チャンネル番号を受信するための方法
JPH11112906A (ja) * 1997-09-30 1999-04-23 Matsushita Electric Ind Co Ltd テレビジョン受信機および映像信号処理装置
JP2001094895A (ja) * 1999-09-24 2001-04-06 Sharp Corp データの相互送受信可能なデジタルavシステム
JP2003259240A (ja) * 2001-10-18 2003-09-12 Yazaki North America Inc マルチフォーマット復号器ボード、マルチメディアシステム、および複数の異なる符号化フォーマットで符号化されたデータを搬送するデジタルデータストリームを取り扱う方法
JP2003152546A (ja) * 2001-11-15 2003-05-23 Matsushita Electric Ind Co Ltd マルチフォーマットストリーム復号化装置及びマルチフォーマットストリーム送出装置
WO2003085494A2 (en) * 2002-04-01 2003-10-16 Broadcom Corporation Video decoding system
US20030185306A1 (en) * 2002-04-01 2003-10-02 Macinnis Alexander G. Video decoding system supporting multiple standards
US20050123057A1 (en) * 2002-04-01 2005-06-09 Macinnis Alexander G. Video decoding system supporting multiple standards
WO2004051982A1 (en) * 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Method and apparatus for selecting particular decoder based on bitstream format detection
JP2005267172A (ja) * 2004-03-18 2005-09-29 Sony Corp コンテンツ受信システム、コンテンツ受信装置および方法、記録媒体、並びにプログラム
US20050259688A1 (en) * 2004-05-21 2005-11-24 Stephen Gordon Multistandard video decoder
WO2006105544A1 (en) * 2005-03-30 2006-10-05 Intel Corporation Multistandard variable length decoder with hardware accelerator
JP2007104672A (ja) * 2005-10-04 2007-04-19 Samsung Electronics Co Ltd マルチコーデック用のフィルタリング装置、方法、及び記録媒体

Also Published As

Publication number Publication date
CN101322321A (zh) 2008-12-10
KR20100046284A (ko) 2010-05-06
KR101065546B1 (ko) 2011-09-19
WO2007070343A3 (en) 2008-01-17
DE112006003307T8 (de) 2009-01-29
DE112006003307T5 (de) 2008-10-23
TW200735667A (en) 2007-09-16
WO2007070343A2 (en) 2007-06-21
KR20080082676A (ko) 2008-09-11
JP2009518960A (ja) 2009-05-07

Similar Documents

Publication Publication Date Title
US9210437B2 (en) Hardware multi-stream multi-standard video decoder device
KR101227667B1 (ko) 오버랩 평활화 및 인-루프 디블록킹의 구분적 프로세싱
EP1446953B1 (en) Multiple channel video transcoding
US9224187B2 (en) Wavefront order to scan order synchronization
US8774281B2 (en) Implementation of a DV video decoder with a VLIW processor and a variable length decoding unit
US9336558B2 (en) Wavefront encoding with parallel bit stream encoding
US20070153907A1 (en) Programmable element and hardware accelerator combination for video processing
US20050066083A1 (en) Method and system for bit-based data access
KR20070111467A (ko) 중간 루프 필터 데이터를 저장하는 스크래치 패드
US9161056B2 (en) Method for low memory footprint compressed video decoding
JP2005175997A (ja) 復号化装置、電子機器、コンピュータ、復号化方法、プログラム及び記録媒体
US20080170611A1 (en) Configurable functional multi-processing architecture for video processing
US9204158B2 (en) Hardware multi-standard video decoder device
JP4891335B2 (ja) ハードウェア多標準対応ビデオデコーダ装置
JP2005502955A (ja) データをバッファから抽出し且つバッファへロードする装置及び方法
US9843811B2 (en) Method for rotating macro-blocks of a frame of a video stream
US7675972B1 (en) System and method for multiple channel video transcoding
US9794593B1 (en) Video decoder architecture for processing out-of-order macro-blocks of a video stream
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
JPH1056641A (ja) Mpegデコーダ
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
US20080056377A1 (en) Neighboring Context Management
KR100821922B1 (ko) 미디어 디코딩용 국부 메모리 관리 장치
KR20040073095A (ko) Mpeg/jpeg 인코딩 및 디코딩 장치
JP4498848B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4891335

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250