(57)【要約】  実施例は、符号化標準に基づいた圧縮ビットストリームを受け取るための復号器を含む装置を含む。復号器は、符号化標準を含む複数の符号化標準にわたって共通の処理に基づいた圧縮ビットストリーム部分を復号化するためのハードウェア・アクセラレータを含む。復号器は、符号化標準に特有の処理に基づいた圧縮ビットストリーム部分を復号化するためのプログラム可能なエレメントも含む。
2008537392.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
符号化標準に基づいた圧縮ビットストリームを受け取るための可変長復号器を備え、前記可変長復号器は、
前記符号化標準を含む複数の符号化標準にわたって共通の処理に基づいた、前記圧縮ビットストリームの一部を復号化するためのハードウェア・アクセラレータと、
前記符号化標準に特有の処理に基づいた、前記圧縮ビットストリームの一部を復号化するためのプログラム可能なエレメントとを含む装置。
【請求項２】
請求項１記載の装置であって、前記ハードウェア・アクセラレータは、前記圧縮ビットストリームからのマクロブロック・データの少なくとも一部を復号化する装置。
【請求項３】
請求項２記載の装置であって、前記プログラム可能なエレメントは、シーケンス・データ及びフレーム・データを前記圧縮ビットストリームから復号化する装置。
【請求項４】
請求項３記載の装置であって、前記プログラム可能なエレメントは、前記符号化標準に特有の処理に基づいて前記シーケンス・データの少なくとも一部、及び前記フレーム・データの少なくとも一部を復号化する装置。
【請求項５】
請求項２記載の装置であって、前記ハードウェア・アクセラレータは、前記マクロブロック・データをマクロブロック・パケットに格納し、前記プログラム可能なエレメントは、前記圧縮ビットストリームに基づいて、前記マクロブロック・パケットのヘッダを導き出す装置。
【請求項６】
請求項１記載の装置であって、前記プログラム可能なエレメントは、前記ハードウェア・アクセラレータを制御する装置。
【請求項７】
請求項１記載の装置であって、前記複数の符号化標準は、動画像専門家グループ（MPEG）-2、MPEG-4又はウィンドウズ（登録商標）（登録商標）・メディア（ＷＭ）-９を含む装置。
【請求項８】
方法であって、
符号化標準を用いて符号化された符号化データを受け取る工程と、
前記符号化標準を含む複数の符号化標準にわたって共通の処理に基づいた前記符号化データを復号器のハードウェア・アクセラレータを用いて復号化する工程と、
前記符号化標準に特有な処理に基づいた前記符号化データを、前記復号器のプログラム可能なエレメントを用いて復号化する工程とを備える方法。
【請求項９】
請求項８記載の方法であって、前記復号器の前記プログラム可能なエレメントを用いて前記符号化データを復号化する工程は、シーケンス・データを前記符号化データから生成する工程を備える方法。
【請求項１０】
請求項9記載の方法であって、前記復号器の前記プログラム可能なエレメントを用いて前記符号化データを復号化する工程は、フレーム・データを前記符号化データから生成する工程を備える方法。
【請求項１１】
請求項10記載の方法であって、復号器の前記ハードウェア・アクセラレータを用いて前記符号化データを復号化する工程は、マクロブロック・データを前記符号化データから生成する工程を備える方法。
【請求項１２】
請求項11記載の方法であって、前記復号器の前記プログラム可能なエレメントを用いて前記符号化データを復号化する工程が、前記符号化データに基づいてマクロブロック制御情報を生成する工程を備える方法。
【請求項１３】
請求項8記載の方法であって、前記複数の符号化標準は、動画像専門家グループ（MPEG）-2、MPEG-4又はウィンドウズ（登録商標）・メディア（ＷＭ）-９を含む方法。
【請求項１４】
システムであって、
スタティック・ランダム・アクセス・メモリ（SRAM）と、
符号化標準に基づいて符号化された圧縮ビットストリームを受け取るための可変長復号器とを備え、前記可変長復号器は、
前記圧縮ビットストリーム内の開始符号を位置特定するための処理を含む復号化処理を行うためのハードウェア・アクセラレータであって、前記復号化処理が、前記符号化標準を含む複数の符号化標準に共通であるハードウェア・アクセラレータと、
前記復号化処理からの出力を受け取り、前記符号化標準に特有の処理を行うためのプログラム可能なエレメントであって、前記符号化標準に特有の前記処理の結果を前記SRAMに記憶し、前記圧縮ビットストリームに基づいて第１の復号化データ組を生成する、プログラム可能なエレメントと、
複数の符号化標準にわたって共通の復号化処理を行って、第２の復号化データ組を前記圧縮ビットストリームに基づいて生成するためのハードウェア・アクセラレータであって、前記複数の符号化標準は、前記符号化標準を含み、前記第１の復号化データ組及び前記第２の復号化データ組を前記SRAMに記憶するハードウェア・アクセラレータとを含むシステム。
【請求項１５】
請求項１４記載のシステムであって、前記符号化標準に特有の前記処理は、ビデオ・フレームのシーケンス・データ及びフレーム・データを前記圧縮ビットストリームから生成するための処理を備えるシステム。
【請求項１６】
請求項１４記載のシステムであって、複数の符号化標準に共通の前記復号化処理は、ビデオ・フレームのマクロブロック・データを前記圧縮ビットストリームから生成するための処理を備えるシステム。
【請求項１７】
請求項16記載のシステムであって、前記符号化標準に特有の前記処理は、前記ビデオ・フレームのマクロブロック制御情報を前記圧縮ビットストリームから生成するための処理を備えるシステム。
【請求項１８】
請求項１４記載のシステムであって、前記符号化標準に特有の前記処理の結果を前記SRAMから取り出し、前記SRAMからの、前記符号化標準に特有の前記処理の結果に基づいて係数データを生成するためのラン・レベル復号器を更に備えるシステム。
【請求項１９】
請求項14記載のシステムであって、前記複数の符号化標準は、動画像専門家グループ（MPEG）-2、MPEG-4又はウィンドウズ（登録商標）・メディア（ＷＭ）-９を含むシステム。
【請求項２０】
方法であって、
受け取られた圧縮ビットストリームのうちのいくつかのビットを転送するよう配線エレメントを制御する工程と、
前記圧縮ビットストリームからシーケンス・レベル・データを導き出す工程と、
フレーム・レベル・データを前記圧縮ビットストリームから導き出す工程と、
前記受け取られた圧縮ビットストリームからのデータ・マクロブロックの復号化処理を行うよう前記配線エレメントを制御する工程とを備える方法。
【請求項２１】
請求項２０記載の方法であって、前記復号化処理は、２つ以上の符号化標準にわたって共通したコア処理を備える方法。
【請求項２２】
請求項20記載の方法であって、前記複数の符号化標準は、動画像専門家グループ（MPEG）-2、MPEG-4又はウィンドウズ（登録商標）・メディア（ＷＭ）-９を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は一般にデータ処理に関し、特にデータの復号化に関する。
【背景技術】
【０００２】
各種信号の符号化、伝送及び復号化は、帯域集約的処理であり得る。通常、アナログ信号はディジタル形式に変換され、適切な通信ネットワークを介してビットストリームとして伝送される。ビットストリームが受信場所に到着した後、復号化処理によって、データがアナログ信号にもう一度変換される。しかし、符号化処理及び復号化処理は、いくつかの別々の標準（例えば、動画像専門家グループ（MPEG）-2、MPEG-4、ウィンドウズ（登録商標）・メディア（WM）-9等）に基づき得る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
よって、符号化処理及び復号化処理を行うために用いるロジックは、前述の標準の１つ又は複数を処理するよう企図されなければならない。
【課題を解決するための手段】
【０００４】
本発明の実施例は、前述の実施例を示す以下の説明及び添付図面を参照することによってもっとも深く理解することができる。本明細書及び特許請求の範囲記載の図は、図中の特定の参照番号の先頭の数字が図の番号と関連しているように採番されている。例えば、システム１００は図１中にあり得る。しかし、参照番号は、別々の図にわたって同じエレメントの場合、同じである。
【発明を実施するための最良の形態】
【０００５】
本発明の実施例は、ビデオ復号化処理に関して説明する。しかし、実施例は、前述に限定されるものでない。実施例は、いくつかの別々のアプリケーション（符号化処理等）の何れかにおいて用いることができる。
【実施例】
【０００６】
図１は、本発明の特定の実施例によるビデオ復号器のブロック図を示す。特に、図１は、可変長復号器１０２、ラン・レベル復号器１０４、離散コサイン変換（DCT）ロジック１０６、動き補償ロジック１０８、デブロック・フィルタ１１０，データ記憶装置及びロジック１１４A乃至１１４N、並びにメモリ１５０を含むシステム１００を示す。可変長復号器１０２、ラン・レベル復号器１０４、DCTロジック１０６、動き補償ロジック１０８及びデブロック・フィルタ１１０は、ハードウェア、ソフトウェア、ファームウェア又はその組み合わせを表し得る。
【０００７】
データ記憶装置及びロジック１１４A乃至１１４N、並びにメモリ１５０は、各種のマシン読み取り可能な媒体を含み得る。例えば、マシン読み取り可能な媒体は、揮発性媒体（例えば、ランダム・アクセス・メモリ（RAM）、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ装置等）であり得る。マシン読み取り可能な媒体は、各種RAM(例えば、シンクロナス・ダイナミックRAM(SDRAM)、ダブル・データ・レート（DDR）-SDRAM等)であり得る。
【０００８】
可変長復号器１０２は、圧縮ビットストリーム１１２を受け取るよう結合される。特定の実施例では、圧縮ビットストリーム１１２は、いくつかの別々の復号化標準の何れかに基づいて符号化された符号化データであり得る。別々の符号化標準の例には、動画像専門家グループ（MPEG）-2、MPEG-4、ウィンドウズ（登録商標）・メディア(WM)-9等が含まれる。種々のMPEG-2標準に関する更なる情報については、「International  Organization  for  Standardization  （ISO）/International  Electrotechnical  Commission  （IEC）13818-2:2000  Information  Technology  -  Generic  Coding  of  Moving  Pictures  and  Associated  Audio  Information:  Video」  及び関連した修正を参照されたい。種々のMPEG-4標準に関する更なる情報については、「ISO/IEC  14496  Coding  of  Audio-Visual  Objects  -  Part  2:  Video」及び関連した修正を参照されたい。パケット１１４、及び可変長復号器１０２によるその生成の更に詳細な説明は以下に記載する。
【０００９】
以下に更に詳細に説明するように、可変長復号器１０２は、圧縮ビットストリーム１１２に基づいてシーケンス・パケット、フレーム・パケット及びマクロブロック・パケット１３０を生成することができる。可変長復号器１０２は、シーケンス・パケット、フレーム・パケット、及びマクロブロック・パケットのヘッダをメモリ１５０に記憶することができる。可変長復号器１０２は、マクロブロック・パケットの本体をデータ記憶装置及びロジック１１４Aに記憶することができる。図示したように、可変長復号器１０２、ラン・レベル復号器１０４、DCTロジック１０６、動き補償ロジック１０８及びデブロック・フィルタ１１０は、メモリ１５０に結合される。したがって、ラン・レベル復号器１０４、DCTロジック１０６、動き補償ロジック１０８及びデブロック・フィルタ１１０は、マクロブロック・パケットの本体の処理のために、メモリ１５０内のシーケンス・パケット、フレーム・パケット、及びマクロブロック・パケットのヘッダにアクセスすることができる。
【００１０】
ラン・レベル復号器１０４は、データ記憶装置及びロジック１１４Aからマクロブロック・パケット１３０の本体を受け取るよう結合される。ラン・レベル復号器１０４は、この情報に基づいて係数データ１３２を生成することができる。ラン・レベル復号器１０４は、データ記憶装置及びロジック１１４Bに係数データ１３２を記憶するよう結合される。DCTロジック１０６は、データ記憶装置及びロジック１１４Bから係数データ１３２を受け取るよう結合される。DCTロジック１０６は、係数データ１３２に基づいて画素１３４を生成することができる。例えば、DCTロジック１０６は、Iフレームの画素、又はPフレームの残差を生成することができる。DCTロジック１０６は、データ記憶装置及びロジック１１４Cに画素１３４を記憶するよう結合される。
【００１１】
動き補償ロジック１０８は、データ記憶装置及びロジック１１４Cから画素１３４を受け取り、参照画素１４０を受け取るよう結合される。動き補償ロジック１０８は、画素１３４及び参照画素１４０に基づいてpel（画素）データ１３６を生成することができる。動き補償ロジック１０８は、pel（画素）データ１３６をデータ記憶装置及びロジック１１４Nに記憶するよう結合される。デブロック・フィルタ１１２は、データ記憶装置及びロジック１１４Nからpel（画素）データ１３６を受け取るよう結合される。デブロック・フィルタ１１２は、pel（画素）出力１２２をpel（画素）データ１３６に基づいて生成することができる。
【００１２】
可変長復号器１０２の更に詳細な説明を以下に示す。特定の実施例では、圧縮ビットストリーム１１２は、いくつかの符号化標準の何れかに基づいて符号化されていることがあり得る。１つ又は複数の標準が、その標準に特有な少なくとも一部の処理を必要とし得る。可変長復号器１０２は、標準毎の復号化処理を必ずしも違ったふうに行わない。むしろ、別々の標準にわたって共通の復号化処理のうちの一部のコア処理が存在している。前述のコア処理の例を以下に更に詳細に説明する。
【００１３】
特定の実施例では、可変長復号器１０２は、ハードウェア・アクセラレータ、及びプログラム可能なエレメントを含み得る。特定の実施例では、プログラム可能なエレメントは、ハードウェア・アクセラレータの処理を制御することができる。更に、プログラム可能なエレメントは、特定の符号化標準に一意／特有の処理を行うことができる。ハードウェア・アクセラレータは、複数の符号化標準にわたって共通であり得るコア処理を行うことができる。特定の実施例では、標準は、前述のコア機能のシーケンスに基づいて変わり得る。
【００１４】
よって、可変長復号器１０２は、別々の標準にわたってプログラム可能であることを可能にする一方で、コア機能の実行の高速化を可能にする。ハードウェア・アクセラレータとプログラム可能なエレメントとの間の区分を含むこのアーキテクチャは可変長復号器１０２を参照して説明するが、特定の実施例では、このアーキテクチャは、システム１００の他の構成部分（例えば、ラン・レベル復号器１０４、DCTロジック１０６、動き補償ロジック１０８及びデブロック・フィルタ１１０）に組み入れることができる。
【００１５】
図２は、本発明の特定の実施例による可変長復号器の更に詳細なブロック図を示す。特に、図２は、本発明の特定の実施例による可変長復号器１０２の更に詳細なブロック図を示す。可変長復号器１０２は、プログラム可能なエレメント２０２、及びハードウェア・アクセラレータ２０４を含む。ハードウェア・アクセラレータ２０４は出力バッファ２１０を含む。
【００１６】
ハードウェア・アクセラレータ２０４は、圧縮ビットストリーム１１２を受け取る。ハードウェア・アクセラレータ２０４は、プログラム可能なエレメント２０２との間でデータ・チャネル２０７を介してデータを送受信するよう結合される。プログラム可能なエレメント２０２は、コマンド・チャネル２０８を介してハードウェア・アクセラレータに向けてその制御のためにコマンドを送信するようにも結合される。プログラム可能なエレメント２０２もハードウェア・アクセラレータ２０４も出力バッファ２１０にアクセスすることができる。例えば、プログラム可能なエレメント２０２及びハードウェア・アクセラレータ２０４は、パケット（シーケンス・パケット、フレーム・パケット及びマクロブロック・パケットを含む）を出力バッファ２１０に記憶することができる。特定の実施例では、プログラム可能なエレメント２０２及びハードウェア・アクセラレータ２０４は、パケットを生成するうえで出力バッファ２１０を用いることができる。例えば、プログラム可能なエレメント２０２及びハードウェア・アクセラレータ２０４による１つ又は複数の処理によって、第１のパケット部分（パケットのうちの１つのヘッダ）（出力バッファ２１０に中間的に記憶される）が生成され得る。後に、プログラム可能なエレメント２０２及びハードウェア・アクセラレータ２０４による１つ又は複数の処理によって、第２のパケット部分（例えば、このパケットの本体）が生成され得る。プログラム可能なエレメント２０２、又はハードウェア・アクセラレータ２０４は、２つの別々の部分に基づいてパケットを生成することができる。
【００１７】
プログラム可能なエレメント２０２は、制御コマンドをコマンド・チャネル２０８を介してハードウェア・アクセラレータ２０４に送信し、それによって、メモリ１５０並びにデータ記憶装置及びロジック１１４Aに記憶するために前述のパケットをハードウェア・アクセラレータ２０４に出力させることができる。特定の実施例では、プログラム可能なエレメント２０２もハードウェア・アクセラレータ２０４も、圧縮ビットストリーム１１２の別々の部分を復号化する。
【００１８】
例えば、プログラム可能なエレメント２０２は、特定の標準に特有なビットストリームを復号化することができる。ハードウェア・アクセラレータ２０４をプログラム可能なエレメント２０２によってプログラムして、標準に共通した復号化処理を行うことができる。すなわち、ハードウェア・アクセラレータ２０４は、いくつかの標準にわたって共通であり得る種々のコア処理を行うことができる。
【００１９】
コア処理の例は、ビットストリーム内のビットの解析に関係し得る。例えば、コア処理は、ビットストリーム内のビットのパターンの位置特定を含み得る。コア処理は、ビットストリーム内の可変長符号の位置特定を含み得る。例えば、コア処理は、ビットストリーム内の特定された開始符号の位置特定を含み得る。特定の実施例では、コア処理は、ビットストリーム内のビットの復号化を含み得る。コア処理は、ビットストリームからいくつかのビットを取り出すことができ、前述のビットを復号化することができる。特に、コア処理は、（取り出されたビットに基づいて）テーブルに対するルックアップを行うことができる。ハードウェア・アクセラレータ２０４は次いで、復号化ビットを指数、（ラン、レベル、最後）のトリプレット等として解釈することができる。特定の実施例では、ハードウェア・アクセラレータ２０４は、復号化ビットを可変復号器１０２から、プログラム可能なエレメント２０２による更なる処理なしで出力することができる。あるいは、ハードウェア・アクセラレータ２０４は、更に処理するために、復号化処理の結果を、プログラム可能なエレメント２０２に戻すことができる。特定の実施例では、プログラム可能なエレメント２０２は、パックされた、又はパックされていない、フォーマッティングされたデータをハードウェア・アクセラレータ２０４に出力することができる。パックされたデータが受け取られた場合、ハードウェア・アクセラレータ２０４は、更に処理するために、パックされたデータをアンパックすることができる。
【００２０】
ハードウェア・アクセラレータ２０４によって行うことができる別のコア処理は、係数ブロックの復号化を含み得る。特に、ハードウェア・アクセラレータ２０４は、係数ブロック全体が復号化されるまで圧縮ビットストリーム１１２を復号化することができる。ハードウェア・アクセラレータ２０４は、プログラム可能なエレメント２０２による更なる処理なしで、復号化ブロックを可変長復号器１０２から出力することができる。あるいは、ハードウェア・アクセラレータ２０４は、プログラム可能なエレメント２０２に復号化処理の結果を、更に処理するために戻すことができる。
【００２１】
ハードウェア・アクセラレータ２０４によって行われる別のコア処理は、圧縮ビットストリーム１１２からの特定数ビットの取り出しを含み得る。これは、更に処理するために、プログラム可能なエレメント２０２に転送することができる（後述する）。ハードウェア・アクセラレータ２０４によって行われる別のコア処理は、圧縮ビットストリーム１１２からの特定数のビットを、プログラム可能なエレメント２０２に（前述のビットをビットストリームから除去することなく）示すことを含み得る。
【００２２】
特定の実施例による、プログラム可能なエレメント２０２とハードウェア・アクセラレータ２０４との間の復号化処理の割り当ての更に詳細な説明を次に記載する。圧縮ビットストリーム１１２は、いくつかのフレームのビットを含み得る。例えば、圧縮ビットストリーム１１２は、ビデオ・フレームを含み得る。シーケンスはいくつかのフレームを含む。例えば、1秒のシーケンスは３０フレームを含み得る。ビデオ・フレームは、いくつかのマクロブロックに分割することができる。更に、マクロブロックはいくつかのブロックを含み得る。圧縮ビットストリーム１１２に基づいて、可変長復号器１０２は、シーケンス・レベル・データ、フレーム・レベル・データ及びマクロブロック・データを含むパケットを生成することができる。
【００２３】
よって、図３は、本発明の特定の実施例による、可変長復号器によって生成される種々のパケットを示す。特に、図３は、本発明の特定の実施例による、可変長復号器１０２によって生成される種々のパケットを示す。図示したように、可変長復号器１０２は、シーケンス・パケット３０２、フレーム・パケット３０４、マクロブロック・ヘッダ３０６及びマクロブロック・パケット３０８を生成することができる。
【００２４】
シーケンス・パケット３０２は、圧縮ビットストリーム１１２から復号化されたシーケンス・レベル・パラメータを含み得る。シーケンス・レベル・パラメータは、フレームのサイズ、復号化に用いる符号のタイプ等を含み得る。フレーム・パケット３０４は、圧縮ビットストリーム１１２から復号化されたフレーム・レベル・パラメータを含み得る。フレーム・レベル・パラメータは、フレームのタイプ、レベル・シフトの要否、量子化の要否等を含み得る。マクロブロック・ヘッダ３０６は、マクロブロック制御情報を含む。マクロブロック制御情報は、マクロブロック・データの符号化に用いる符号化のタイプ、その中のブロックのタイプ及び数、圧縮ビットストリーム内にあるブロック、動き予測の使用の有無、動き予測が使用される対象ブロック、動き予測用の動きベクトル等を含み得る。マクロブロック・パケット３０８は、圧縮ビットストリーム１１２からのマクロブロック・データを含み得る。
【００２５】
特定の実施例では、シーケンス・パラメータの復号化は、特定の符号化標準に特有であり得る。特定の実施例では、フレーム・レベル・パラメータの復号化は、特定の符号化標準に特有であり得る。特定の実施例では、マクロブロック・ヘッダ３０６の生成は、特定の符号化標準に特有であり得る。マクロブロック・パケットの復号化は、複数の符号化標準にわたって共通のコア処理に少なくとも部分的に基づき得る（前述の通り）。
【００２６】
特定の実施例では、プログラム可能なエレメント２０２は、特定の復号化標準に特有なパケットを復号化することができる一方、ハードウェア・アクセラレータ２０４は、複数の符号化標準にわたって少なくとも部分的に共通のパケットを復号化することができる。よって、図示したように、プログラム可能なエレメント２０２は、シーケンス・パケット３０２を生成するためにシーケンス・パラメータを復号化することができる。プログラム可能なエレメント２０２は、フレーム・パケット３０４の生成のためにフレーム・レベル・パラメータを復号化することもできる。
【００２７】
したがって、ハードウェア・アクセラレータ２０４は、複数の符号化標準にわたって共通のコア処理を行うよう配線することができる。プログラム可能なエレメント２０２は、特定の標準の細目を扱うようプログラム可能であり得る。よって、プログラム可能なエレメント２０２において実行される命令は、新たな標準又は更新された標準の処理を可能にするよう更新することができる。しかし、実施例は、前述に限定されるものでない。特定の実施例では、プログラム可能なエレメント２０２は、複数の標準にわたって共通のパケット部分を復号化することができる。特定の実施例では、ハードウェア・アクセラレータ204は、特定の標準に特有なパケット部分を復号化することができる。
【００２８】
特定の実施例による、可変長復号器１０２の処理の更に詳細な説明を次に示す。図4は、本発明の特定の実施例による復号化のフロー図を示す。フロー図４００は、特定のビデオシーケンスを処理する動作を示す。前述の動作は、更なるシーケンスが受信されるにつれ、繰り返し行うことができる。フロー図４００は、図２のエレメントを参照して説明する。フロー図４００はブロック４０２から始まる。
【００２９】
ブロック４０２では、可変長復号器は、圧縮ビットストリームを受け取る。図２を参照すれば、ハードウェア・アクセラレータ２０４は圧縮ビットストリーム１１２を受け取る。フローはブロック４０４に続く。
【００３０】
ブロック４０４では、プログラム可能なエレメントは、圧縮ビットストリームに基づいてシーケンス・パケットを生成する。図２を参照すれば、プログラム可能なエレメント２０２は、シーケンス・パケットを生成することができる。特定の実施例では、プログラム可能なエレメント２０２は、シーケンス・データを生成するうえで、ハードウェア・アクセラレータの特定のコア処理を用いることができる。シーケンス・データは、特定の符号化標準に特有であり得る。したがって、プログラム可能なエレメント２０２は、圧縮ビットストリーム１１２においてシーケンス・データをハードウェア・アクセラレータが位置特定することができる。プログラム可能なエレメント２０２は次いで、シーケンス・データを含む１つ又は複数のシーケンス・パケットを生成することもできる。特定の実施例では、プログラム可能なエレメント２０２は、特定数のビットを圧縮ビットストリーム１１２からハードウェア・アクセラレータ２０４に受け取らせることができる。例えば、ハードウェア・アクセラエータ２０４は、圧縮ビットストリーム１１２において開始符号を位置特定することができる。シーケンス・データは、開始符号場所の後の圧縮ビットストリーム１１２内のX個のビットであり得る。したがって、プログラム可能なエレメント２０２は、ハードウェア・アクセラレータ２０４に、開始符号を位置特定させ、その後、シーケンス・データを取り出させることができる。フローはブロック４０６に続く。
【００３１】
ブロック４０６では、プログラム可能なエレメントは、圧縮ビットストリームに基づいてフレーム・パケットを生成する。シーケンス・パケットと同様に、フレーム・パケットは、特定の符号化標準にも特有であり得る。図２を参照すれば、プログラム可能なエレメント２０２は、フレーム・パケットを生成することができる。特定の実施例では、プログラム可能なエレメント２０２は、フレーム・データを生成する（例えば、フレーム・データを表すビットを位置特定し、取り出す）うえでハードウェア・アクセラレータ２０４の特定のコア処理を用い得る。フローはブロック４０７に続く。
【００３２】
ブロック４０７では、シーケンス内のフレーム全てが処理されたか否かについての判定が行われる。プログラム可能なエレメント２０２はこの判定を行うことができる。特に、特定のビデオ符号化標準の場合、特定数のフレームがシーケンス内にあり得る。よって、プログラム可能なエレメント２０２は、処理されているビデオ符号化標準のタイプに基づいてこの判定を行うことができる。シーケンス内のフレーム全てが処理されていないことを判定すると、制御はブロック４０６に続く。ブロック４０６では、別のフレーム・パケットが処理される。
【００３３】
ブロック４０８では、シーケンス内のフレーム全ての処理が判定されると、プログラム可能なエレメントは、圧縮ビットストリームに基づいて、マクロブロック・パケットのヘッダを生成する。シーケンス・データ及びフレーム・データと同様に、マクロブロック制御情報も、特定の符号化標準に特有であり得る。図２を参照すれば、プログラム可能なエレメント２０２は、マクロブロック制御情報を生成することができる。前述の情報は、マクロブロック・パケットのヘッダ（図３に示す）に記憶することができる。特定の実施例では、プログラム可能なエレメント２０２は、マクロブロック制御情報を生成する（例えば、マクロブロック制御情報を表すビットを位置特定し、取り出す）うえでのハードウェア・アクセラレータ２０４の特定のコア処理を用い得る。フローはブロック４１０に続く。
【００３４】
ブロック４１０では、可変長復号器は、ハードウェア・アクセラレータによって行われるコア処理を含むマクロブロック・パケットを、圧縮ビットストリームに基づいて生成する。図２を参照すれば、ハードウェア・アクセラレータ２０４は、複数の符号化標準に共通のいくつかのコア処理の何れかを行うことができる。例えば、ハードウェア・アクセラレータ２０４は、特定された数のビットを復号化し、係数ブロックを復号化する等を行うことができる。ハードウェア・アクセラレータ２０４は、マクロブロック・パケットの本体をコア処理に基づいて生成することができる。前述の通り、特定の実施例では、プログラム可能なエレメント２０２は、マクロブロック・パケットの本体の生成における特定の処理を行うことができる。フローはブロック４０９に続く。
【００３５】
ブロック４０９では、シーケンス内のマクロブロック全てが処理されたか否かについての判定が行われる。プログラム可能なエレメント２０２はこの判定を行うことができる。特に、特定のビデオ符号化標準の場合、特定数のマクロブロック・パケットがフレーム内にある。よって、プログラム可能なエレメント２０２は、処理されているビデオ符号化標準のタイプに基づいてこの判定を行うことができる。シーケンス内のマクロブロック・パケット全てが処理されていないことを判定すると、制御はブロック４０８に続く。ブロック４０８では、別のマクロブロック・パケットが処理される。
【００３６】
ブロック４１２では、シーケンス内のマクロブロック・パケット全ての処理が判定されると、可変長復号器はシーケンス・パケット、フレ―ム・パケット及びマクロブロック・パケットを出力する。図１を参照すれば、可変長復号器１０２は、データ記憶装置及びロジック１１４Aに記憶するために前述のパケットを出力することができる。図２を参照すれば、特定の実施例では、ハードウェア・アクセラレータ２０４は、内部バッファ（図示せず）を含み得る。ハードウェア・アクセラレータ２０４は、前述のパケットを前述の内部バッファに、前述のパケットを出力する旨の制御コマンドが、プログラム可能なエレメント２０２から受け取られるまで記憶することができる。
【００３７】
前述の処理の実行に用いる特定の実施例によるいくつかの別々の環境において動作することができる本明細書及び特許請求の範囲記載の復号器アーキテクチャを次に説明する。特に、図５は、本発明の特定の実施例による、デ―タ編成のバッファ・アーキテクチャを含むプロセッサ・アーキテクチャを示す。図５は、前述のデータ編成のバッファ・アーキテクチャを含む画像プロセッサ５０２を含むシステム５００を示す。例えば、画像プロセッサ５０２は、図１のシステム１００の構成部分を含み得る。
【００３８】
画像プロセッサ５０２は、メモリ５０４A乃至５０４Bに結合される。特定の実施例では、メモリ５０４A乃至５０４Bは、別々のタイプのランダム・アクセス・メモリ（RAM）である。例えば、メモリ５０４A乃至５０４Bは、ダブル・データ・レート（DDR）シンクロナス・ダイナミックRAM(SDRAM)である。
【００３９】
画像プロセッサ５０２はバス５１４（特定の実施例では、周辺構成部分インタフェース（PCI）バスであり得る）に結合される。システム５００は、メモリ５０６、ホスト・プロセッサ５０８、いくつかの入出力（I／O）インタフェース５１０、及びネットワーク・インタフェース５１２も含む。ホスト・プロセッサ５０８はメモリ５０６に結合される。メモリ５０６が、各種のRAM（例えば、シンクロナス・ダイナミックRAM（SDRAM）、DRAM、DDR-SDRAM等）であり得る一方、特定の実施例では、ホスト・プロセッサ５０８は各種の汎用プロセッサであり得る。I／Oインタフェース５１０は、システム５００のI／O装置又は周辺構成部分とのインタフェースを備える。I／Oインタフェース５１０は、システム５００の別々の構成部分との何れかの適切な通信リンクを用意するために何れかの適切なインタフェース・コントローラを備え得る。I／Oインタフェース５１０は、特定の実施例の場合、いくつかのインタフェースのうちの１つに対するアービトレーション及びバッファリングを備える。
【００４０】
特定の実施例の場合、I／Oインタフェース５１０は、データ及び／又は命令を記憶するための、１つ又は複数の適切な統合駆動エレクトロニクス（ＩＤＥ）ドライブ（例えば、ハード・ディスク・ドライブ（HDD）や、コンパクト・ディスク・リード・オンリー・メモリ（CD‐ROM）ドライブなど）とのインタフェースを（例えば、１つ又は複数の適切なユニバーサル・シリアル・バス（USB）装置を、１つ又は複数のＵＳＢポート、オーディオ符号器/復号器（コーデック）及びモデム・コーデックを介して）備える。I／Oインタフェース５１０は又、特定の実施例の場合、キーボード、マウス、１つ又は複数の適切な装置（例えば、プリンタなど）とのインタフェースを１つ又は複数のポートを介して備える。ネットワーク・インタフェース５１２は、いくつかの通信ネットワーク（インターネット、イントラネット、イーサネット（登録商標）ベースのネットワーク等）のうちの１つを介して、１つ又は複数の遠隔装置とのインタフェースを備える。
【００４１】
ホスト・プロセッサ５０８、I／Oインタフェース５１０及びネットワーク・インタフェース５１２は、画像プロセッサ５０２と、バス５１４を介して一緒に結合される。ホスト・プロセッサ５０８内で実行する命令は、各種画像処理に対して画像プロセッサ５０２を構成することができる。例えば、ホスト・プロセッサ５０８は、画像プロセッサ５０２の種々の構成部分を、その中での復号化処理のために構成することができる。前述の構成は、データ記憶装置及びロジック１１４（図１参照）との間で入出力する対象のデータ編成のタイプ、パターン・メモリ２２４の使用の有無等を含み得る。特定の実施例では、符号化ビデオ・データは、画像プロセッサ５０２内の構成部分による復号化のために、ネットワーク・インタフェース５１２を介して入力することができる。
【００４２】
本明細書では、数多くの特定の詳細を記載している。しかし、本発明の実施例は、前述の特定の詳細なしで実施することができる。一方、周知の回路、構造及び手法は、本明細書を分かりにくくすることを避けるために、詳細に示していない。数多くの特定の詳細（ロジックの実現形態、オプコード、オペランドの記述方法、リソース分割／共有／重複の実現形態、システム構成部分のタイプ及び相互関係、並びに、ロジック分割／統合の選択肢）を、本発明の主題の、より徹底的な理解をもたらすために記載している。しかし、前述の特定の詳細なしで本発明を実施することができるということは当業者によって認識されるであろう。一方、本発明の実施例が分かりにくくならないようにするために、制御構造、ゲート・レベル回路、及び完全なソフトウェア命令シーケンスを詳細に示していない。当業者は本願明細書によって、適切な機能を、必要以上に試すことなく実現することができる。
【００４３】
本明細書中の「one  embodiment」、「an  embodiment」、「an  example  embodiment」等への言及は、本願記載実施例が、特定の特徴、構造又は特性を含み得るが、全ての実施例が、特定の特徴、構造又は特性を必ずしも含まないことがあり得ることを示す。更に、前述の句は、必ずしも同じ実施例を表している訳でない。更に、特定の特徴、構造又は特性が、実施例に関して説明されている場合、明記されている否かにかかわらず、他の実施例に関して前述の特徴、構造又は特性をもたらすことが、当業者の知識の範囲内であるものとする。
【００４４】
本発明の実施例は、マシン読み取り可能な媒体によって供給されるマシン実行可能な命令内で実施することができる特徴、方法又は処理を含む。マシン読み取り可能な媒体は、マシン（例えば、コンピュータ、ネットワーク装置、携帯情報端末、製造ツール、１つ又は複数のプロセッサ組を備えた何れかの装置等）によってアクセス可能な形態で情報を提供する（すなわち、記憶及び／又は送信する）何れかの機構を含む。例示的な実施例では、マシン読み取り可能な媒体は、揮発性及び不揮発性の媒体（例えば、リード・オンリー・メモリ（ROM）、ランダム・アクセス・メモリ（RAM）、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ装置等）、並びに、電気的、光学的、音響的、又はその他の形式の伝搬信号（例えば、搬送波、赤外信号、ディジタル信号等）を含む。
【００４５】
前述の命令を用いて、命令によってプログラムされた汎用プロセッサ又は専用プロセッサに、本発明の実施例の方法又は処理を行わせる。あるいは、本発明の実施例の構成又は処理は、その処理を行うための配線ロジックを含む特定のハードウェア構成部分によって、又は、プログラムされたデータ処理構成部分、及び特定のハードウェア構成部分の何れかの組み合わせによって行われる。本発明の実施例は、本明細書及び特許請求の範囲に更に記載された、ソフトウェア、データ処理ハードウェア、データ処理システムによって実現される方法、及び種々の処理工程を含む。
【００４６】
いくつかの図は、本発明の特定の実施例による、復号器アーキテクチャのシステム及び装置のブロック図を示す。図は、本発明の特定の実施例による復号器アーキテクチャの処理を示すフロー図を示す。フロー図の処理は、ブロック図に示すシステム／装置を参照して説明している。しかし、フロー図の処理は、ブロック図を参照して記載したシステム及び装置以外のシステム及び装置の実施例によって行うことができ、前述のシステム／装置を参照して記載した実施例は、フロー図を参照して記載した処理以外の処理を行うことが可能である。
【００４７】
本明細書記載の実施例の、広範囲にわたる置換に鑑みて、この詳細な説明は、例証に過ぎないことを意図しており、本発明の主題の範囲の限定として解されるべきでない。したがって、特許請求の範囲には、特許請求の範囲、及びその均等物の範囲及び趣旨の範囲内に収まり得る前述の修正が全て含まれる。したがって、本明細書及び添付図面は、限定的な意味合いでなく例証的な意味合いで解するものとする。
【図面の簡単な説明】
【００４８】
【図１】本発明の特定の実施例によるビデオ復号器を示すブロック図である。
【図２】本発明の特定の実施例による可変長復号器を示す更に詳細なブロック図である。
【図３】本発明の特定の実施例による、図１の可変長復号器１０２によって生成される種々のパケットを示す図である。
【図４】本発明の特定の実施例による復号化を示すフロー図である。
【図５】本発明の特定の実施例による復号化処理を行うプロセッサ・アーキテクチャを示す図である。
【図１】
2008537392.tif 000003
【図２】
2008537392.tif 000004
【図３】
2008537392.tif 000005
【図４】
2008537392.tif 000006
【図５】
2008537392.tif 000007
【国際調査報告】
2008537392.tif 000008
2008537392.tif 000009
2008537392.tif 000010