(57)【要約】  マルチスレッドプロセッサにおいてテクスチャ復号を実行するための方法は、複数のハードウェアスレッドにおいて、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するステップを含む。各ハードウェアスレッドは、一度に1つのマクロブロックを復号する。本方法は、VP8フレームの少なくとも2つのマクロブロックからの1つのマクロブロックをマルチスレッドプロセッサのハードウェアスレッドに割り当てるステップも含み得る。
2015508620.tif 000002
【特許請求の範囲】
【請求項１】
マルチスレッドプロセッサにおけるテクスチャ復号のための方法であって、
複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するステップであり、各ハードウェアスレッドが1つのマクロブロックを処理する、ステップ
を含む方法。
【請求項２】
前記少なくとも2つのマクロブロックが異なる行からのものである、請求項1に記載の方法。
【請求項３】
行バッファと列バッファのうちの少なくとも一方にフィルタ処理されていないピクセルを記憶するステップをさらに含む、請求項1に記載の方法。
【請求項４】
行バッファと列バッファのうちの少なくとも一方の中に前記少なくとも2つのマクロブロックの再構築されたピクセルを記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項５】
復号するステップが、
各ハードウェアスレッドにおける1つのマクロブロックを再構築し、次いで
前記再構築されたマクロブロックをフィルタ処理するステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
単一のハードウェアスレッドによって復号されているマクロブロックの数がキャッシュラインサイズに基づく、請求項1に記載の方法。
【請求項７】
復号するステップが、前記少なくとも2つのマクロブロックの各々を同時に再構築し、フィルタ処理するステップを含む、請求項1に記載の方法。
【請求項８】
復号するステップが、前記VP8フレームの前記少なくとも2つのマクロブロックの各々を同時にテクスチャ復号するステップを含む、請求項1に記載の方法。
【請求項９】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットのうちの少なくとも1つに前記マルチスレッドプロセッサを統合するステップをさらに含む、請求項1に記載の方法。
【請求項１０】
マルチスレッドテクスチャ復号のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのマルチスレッドプロセッサであり、前記少なくとも1つのマルチスレッドプロセッサが、複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するように構成されており、各ハードウェアスレッドが1つのマクロブロックを処理する、少なくとも1つのマルチスレッドプロセッサと
を備える装置。
【請求項１１】
前記少なくとも2つのマクロブロックが異なる行からのものである、請求項10に記載の装置。
【請求項１２】
前記少なくとも1つのマルチスレッドプロセッサがさらに、
行バッファと列バッファのうちの少なくとも一方にフィルタ処理されていないピクセルを記憶し、
前記行バッファと前記列バッファのうちの少なくとも一方の中に前記少なくとも2つのマクロブロックの再構築されたピクセルを記憶する
ようにさらに構成される、請求項10に記載の装置。
【請求項１３】
前記マルチスレッドプロセッサが、
ハードウェアスレッドにおける1つのマクロブロックを再構築し、次いで
前記再構築されたマクロブロックをフィルタ処理する
ことによって復号するようにさらに構成される、請求項10に記載の装置。
【請求項１４】
前記VP8フレームの少なくとも2つのマクロブロックのうちの1つのマクロブロックを前記マルチスレッドプロセッサのハードウェアスレッドに割り当てるように構成されるコントローラをさらに備える、請求項10に記載の装置。
【請求項１５】
前記マルチスレッドプロセッサが、デジタル信号プロセッサおよびマルチコアプロセッサのうちの一方を備える、請求項10に記載の装置。
【請求項１６】
単一のハードウェアスレッドによって復号されているマクロブロックの数がキャッシュラインサイズに基づく、請求項10に記載の装置。
【請求項１７】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットの少なくとも1つに統合される、請求項10に記載の装置。
【請求項１８】
マルチスレッドテクスチャ復号のための装置であって、
VP8フレームの少なくとも2つのマクロブロックのうちの1つのマクロブロックをハードウェアスレッドに割り当てるための手段と、
複数のハードウェアスレッドにおいて、前記VP8フレームの前記少なくとも2つのマクロブロックを実質的に同時に復号するための手段と
を備える装置。
【請求項１９】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットの少なくとも1つに統合される、請求項18に記載の装置。
【請求項２０】
マルチスレッドテクスチャ復号のために構成されたコンピュータプログラムであって、
非一時的プログラムコードを記録した非一時的コンピュータ可読記録媒体を備え、前記プログラムコードが、
複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するためのプログラムコードであり、各ハードウェアスレッドが1つのマクロブロックを処理する、プログラムコード
を含む、コンピュータプログラム。
【請求項２１】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットのうちの少なくとも1つに統合される、請求項20に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ処理システムに関し、より詳細には、マルチスレッドテクスチャ復号に関する。
【背景技術】
【０００２】
VP8は、技術会社のコンソーシアムによってサポートされるオープンソースのビデオ圧縮フォーマットである。特に、VP8は、WebMファイルによって使用されるビデオ圧縮フォーマットである。WebMは、ワールドワイドウェブのための高品質のオープンメディアフォーマットの開発に専用の新しいオープンメディアプロジェクトである。VP8フォーマットは、ビデオ圧縮/解凍ツールのVPxファミリーに対する後継者としてのOn2 Technologies社によって最初は開発された。VP8フォーマットは、VP8圧縮されたビデオストリームを復号するための低い計算複雑性で高い圧縮効率を達成することによって、業界の支持を得た。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の一態様によれば、マルチスレッドプロセッサにおいてテクスチャ復号を実行するための方法が説明される。本方法は、複数のハードウェアスレッドにおいて、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するステップを含む。各ハードウェアスレッドは、一度に1つのマクロブロックを処理する。本方法は、VP8フレームのマクロブロックをマルチスレッドプロセッサの各ハードウェアスレッドに割り当てるステップも含み得る。
【０００４】
別の態様では、マルチスレッドテクスチャ復号を実行するための装置が説明される。本装置は、少なくとも1つのマルチスレッドプロセッサと、少なくとも1つのマルチスレッドプロセッサに結合されたメモリとを含む。マルチスレッドプロセッサは、複数のハードウェアスレッドにおいて、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するように構成されている。各ハードウェアスレッドは、一度に1つのスレッドを復号する。本装置は、VP8フレームのマクロブロックをマルチスレッドプロセッサの各ハードウェアスレッドに割り当てるコントローラも含み得る。
【０００５】
さらなる態様では、マルチスレッドテクスチャ復号を実行するためのコンピュータプログラム製品が説明される。コンピュータプログラム製品は、プログラムコードが記録された非一時的なコンピュータ可読媒体を含む。コンピュータプログラム製品は、複数のハードウェアスレッドにおいて、VP8フレームの少なくとも2つのマクロブロックを実質的に同時に復号するためのプログラムコードを有する。各ハードウェアスレッドは、一度に1つのマクロブロックを処理する。コンピュータプログラム製品は、VP8フレームのマクロブロックをマルチスレッドプロセッサのハードウェアスレッドに割り当てるためのプログラムコードも含み得る。
【０００６】
別の態様では、マルチスレッドテクスチャ復号のための装置が説明される。本装置は、VP8フレームの少なくとも2つのマクロブロックのうちの1つのマクロブロックをハードウェアスレッドに割り当てるための手段を含む。各ハードウェアスレッドは、マクロブロックを1つずつ処理する。本装置は、複数のハードウェアスレッドにおいて、VP8フレームのマクロブロックを実質的に同時に復号するための手段も含む。
【０００７】
本開示のさらなる特徴および利点は以下で説明される。本開示と同じ目的を実行するための他の構造を修正または設計するための基礎として、本開示が容易に利用され得ることを当業者は諒解されたい。そのような等価な構成は、添付の特許請求の範囲に記載される本開示の教示から逸脱しないことも当業者は認識されたい。機構と動作方法の両方に関して本開示の特性であると考えられる新規の特徴は、添付の図面と併せて考慮されれば、さらなる目的および利点とともに、以下の説明からよりよく理解されよう。しかしながら、図面の各々は例示および説明のみを目的として提供され、本開示の範囲を規定するものとして意図されないことを明確に理解されたい。
【０００８】
本開示の特徴、性質、および利点は、下記の詳細な説明を図面と併せ読めばより明らかになるであろう。図中、同様の参照符号は、全体を通じて同じ部分を表す。
【図面の簡単な説明】
【０００９】
【図１】本開示の一態様による、テクスチャ復号論理を含むマルチプロセッサシステムを示すブロック図である。
【図２】本開示のさらなる態様による、図1のテクスチャ復号論理を示すブロック図である。
【図３】本開示のさらなる態様による、フレームからのマクロブロックの並列テクスチャ復号を示すブロック図である。
【図４】本開示の一態様による、マルチスレッドテクスチャの復号のための方法を示す図である。
【図５】本開示のさらなる態様による、マルチスレッドテクスチャ復号の命令を実行するように動作可能なプロセッサを含むワイヤレスデバイスの態様を示すブロック図である。
【図６】本開示の一態様が有利に採用され得るワイヤレス通信システムを示すブロック図である。
【発明を実施するための形態】
【００１０】
添付の図面に関する下記の詳細な説明は、様々な構成の説明として意図されており、本明細書で説明される概念が実践され得る唯一の構成を表すように意図されているわけではない。詳細な説明は、様々な概念の完全な理解をもたらす目的で、具体的な詳細を含んでいる。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることが、当業者には明らかであろう。場合によっては、そのような概念を曖昧にするのを回避する目的で、周知の構造および構成要素がブロック図の形式で示されている。
【００１１】
VP8フォーマットに従って符号化されるビデオストリームを復号することは、一般に、ラスタスキャン順に予測、離散コサイン変換(DCT)/ウォルシュ-アダマール変換(WHT)反転および再構築を実行するために、シングルスレッドによって実行される。特に、VP8仕様は、一般に、フレームのマクロブロックの各々が再構築されるまで、マクロブロックのフィルタ処理を禁止する。すなわち、VP8復号は、フレーム境界に基づいて行われるものとして指定される。VP8フォーマット符号化済みストリームのテクスチャ復号のために指定されたシングルスレッド処理は、マルチスレッドプロセッサならびにマルチプロセッサが、VP8復号の間、高性能を達成するのを防止する。本開示の一態様によれば、VP8フレームの少なくとも2つのマクロブロック(MB)は、各ハードウェアスレッドにおいて1つ、並列に(同時に)復号される。VP8符号化済みマクロブロックの並列の復号は、キャッシュの効率を向上させることができる。
【００１２】
図1は、本開示の一態様による、テクスチャ復号論理200を含むマルチプロセッサシステム100のブロック図を示す。特定用途向け集積回路(ASIC)102は、マルチスレッドテクスチャ復号をサポートする様々な処理ユニットを含む。図1に示される構成の場合、ASIC102は、DSPコア118Aおよび118B、プロセッサコア120Aおよび120B、クロススイッチ116、コントローラ110、内部メモリ112、ならびに外部インターフェースユニット114を含む。DSPコア118Aおよび118B、ならびにプロセッサコア120Aおよび120Bは、ビデオ、オーディオ、グラフィックス、ゲームなど、様々な機能をサポートする。各プロセッサコアは、RISC(縮小命令セットコンピューティング)マシン、マイクロプロセッサ、または何らかの他のタイプのプロセッサとすることができる。コントローラ110は、ASIC102内の処理ユニットの動作を制御する。内部メモリ112は、ASIC102内の処理ユニットによって使用されるデータおよびプログラムコードを記憶する。外部インターフェースユニット114は、ASIC102の外部の他のユニットとインターフェース接続する。一般に、ASIC102は、図1に示されるものよりも少ない、多い、および/または異なる処理ユニットを含むことができる。ASIC102に含まれる処理ユニットの数および処理ユニットのタイプは、マルチプロセッサシステム100によってサポートされる通信システム、アプリケーションおよび機能など、様々な要因に依存する。
【００１３】
テクスチャコーディング技法は、様々な手段によって実装され得る。たとえば、これらの技法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実装され得る。ハードウェア実装の場合、テクスチャコーディング技法は、ASIC、DSP、DSPD、PLD、FPGA、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書に記載されている機能を実行するように設計された他の電子ユニットの1つまたは複数、またはそれらの組合せ内で実装され得る。テクスチャコーディング技法のいくつかの態様は、説明する機能を実行するソフトウェアモジュール(たとえば、プロシージャ、関数など)を用いて実装され得る。ソフトウェアコードは、メモリ(たとえば、図1のメモリ101および/または112)に記憶され、プロセッサ(たとえば、DSPコア118Aおよび/または118B)によって実行され得る。メモリは、プロセッサの内部またはプロセッサの外部に実装され得る。
【００１４】
ASIC102は、テクスチャ復号命令230を記憶するメモリ101にさらに結合する。図1に示される構成の場合、各処理コアは、テクスチャ復号命令230を実行する。一構成では、図2にさらに示すように、ASIC102はテクスチャ復号論理200を含むことができる。
【００１５】
図2は、本開示の一態様による、図1のテクスチャ復号論理200を示すブロック図である。典型的に、構文解析されたパケット234は、フロントエンドスレッド240によって受信される。この構成では、フロントエンドスレッド240は、構文解析されたパケット234のフレームからタスクキュー242にマクロブロックを提供する。タスクキュー242から、マクロブロックは、タスクサイズに従ってワーカースレッドプール246のワーカースレッド248(248-1、…、248N)に割り当てられる。この構成では、各ワーカースレッド248は、マクロブロックごとに完全なテクスチャ復号を実行する。すなわち、各ワーカースレッド248は、マクロブロックごとに、予測、逆変換、再構成、およびループフィルタ処理を実行する。したがって、ワーカースレッド248は、図3に示すように、たとえば、マクロブロックの並列/同時のテクスチャ復号をまとめて実行する。加えて、各スレッドは、タスクサイズに従って一度にいくつかのマクロブロックを復号する。
【００１６】
図2にさらに示すように、タスクマネージャ250は、本開示の一態様による、マクロブロック間の依存を維持する。本開示のこの態様では、タスクマネージャ250は、1つまたは複数のマクロブロックのタスクを、復号される依存する近隣を有するワーカースレッド248に割り当てる。ワーカースレッド248がマクロブロックの復号をひとたび完了すると、復号されたマクロブロックは、フレームキュー244に記憶され得る。この構成では、フロントエンドスレッド240は、フレームキュー244から、たとえばフレームバッファ(図示せず)に復号されたフレーム236を送る。この構成では、各ワーカースレッド248は、一度に2つのマクロブロックを処理することができるが、他のタスクサイズの構成は可能である。
【００１７】
図3は、本開示の一態様による、フレーム300内のマクロブロック356の並列復号を示すブロック図である。この構成では、再構成の後、各マクロブロック356のループフィルタ処理を可能にするために、行バッファ352および列バッファ354が設けられている。この構成では、行バッファ352および列バッファ354は、再構成の直後にループフィルタ処理マクロブロックに対する制限をなくすために導入される。典型的に、行バッファ352および列バッファ354は、358で並列の複数のスレッドによる復号を可能にする。上記のように、従来、フレーム内の各マクロブロック356の再構築が完了するまで、VP8復号は、マクロブロック356のループフィルタ処理を遅延させることを指定する。
【００１８】
図3の構成に示すように、行バッファ352および列バッファ354は、ループフィルタ処理の前に再構築されたピクセルを記憶する。本開示のこの態様では、行バッファ352および列バッファ354に記憶されるフィルタ処理されていないピクセルは、フレーム内予測を可能にし、これは、フィルタ処理されてないピクセルを使用して実行される。特に、フレーム内予測は、前のマクロブロックの再構築された近隣情報を使用して実行される。この構成では、マクロブロック356の再構築されたピクセル情報がひとたび行バッファ352および列バッファ354に記憶されると、マクロブロック356はすぐにフィルタ処理される。すなわち、次のマクロブロックのフレーム内予測を可能にするために、再構築されたピクセル情報は、行バッファ352および列バッファ354内に記憶される。本開示のこの態様では、可能な場合、フレームバッファアクセスを低減または回避しながら、ローカル(ライン)バッファ内でのテクスチャ復号に焦点を合わせることによって、キャッシュ性能が向上する。
【００１９】
再度図2を参照すると、VP8フォーマット符号化データのテクスチャ復号のマルチスレッド方式は、720pビデオクリップを復号するために毎秒30フレーム(30fps)を達成することができる。この構成では、フレーム内のマクロブロックについてのあらかじめ定義された復号シーケンスはない。特に、任意のタスクが復号の準備ができているときはいつでも、個々のワーカースレッド248はタスクを要求する。その結果、1つのフレームについて復号が進行するにつれて、ますます多くの同種のスレッドが復号を開始する。したがって、ワーカースレッド248がタスクによって占有されている時間は増加し、動的にバランスが保たれ、したがって、1つのフレームを復号するための全体の時間量が著しく低減する。本開示のこの態様では、タスクサイズは、キャッシュラインサイズに基づく。すなわち、ハードウェアスレッドによって復号されているマクロブロックの数は、キャッシュラインサイズに基づく。たとえば、2つのマクロブロックのタスクサイズは、32バイトのキャッシュラインサイズのために選択される。本開示の一態様では、特定のハードウェアスレッドは、フレームの各行に割り当てられ得る。
【００２０】
図4は、本開示の一態様による、マルチスレッドテクスチャの復号のための方法400を示す。ブロック410で、装置を使用して、複数のハードウェアスレッドにおいて、VP8フレームの少なくとも2つのマクロブロック(MB)が同時に復号される。各ハードウェアスレッドは、一度に1つのマクロブロックを復号する。本明細書で説明したように、少なくとも2つのマクロブロックを同時に復号することは、少なくとも2つのマクロブロックのテクスチャ復号をほぼまたは実質的に同時に実行することを指し得る。本開示のこの態様によれば、各ワーカースレッドは、マクロブロックごとに完全なテクスチャ復号(予測、逆変換、再構築、およびループフィルタ処理)を実行する。
【００２１】
たとえば、マクロブロック0(MB0)の予測、MB0の逆変換、MB0の再構築、およびMB0のループフィルタ処理は、1つのワーカースレッドにおいて、別のワーカースレッドにおけるマクロブロック1(MB1)の予測、MB1の逆変換、MB1の再構築、およびMB1のループフィルタ処理と実質的に同時に実行される。本開示のこの態様では、マクロブロックのループフィルタ処理は、マクロブロックの再構築の直後にくる。タスクサイズに応じて、ハードウェアスレッドが並列に複数のマクロブロックをまとめて処理するように、各ワーカースレッドは、複数のマクロブロックを処理することができる。
【００２２】
一構成では、装置は、論理回路を含むプロセッサにおいてマルチスレッドテクスチャ復号を行うための手段を含む。本開示の一態様では、復号手段は、復号手段によって列挙される機能を実行するように構成されたテクスチャ復号論理200、DSPコア118A、118B、プロセッサコア120Aおよび120B、ならびに/またはマルチプロセッサシステム100でもよい。本開示の別の態様では、上記の手段は、上記の手段によって列挙された機能を実行するように構成された任意のモジュールまたは任意の装置であり得る。
【００２３】
図5は、本開示の一態様による、マルチスレッドテクスチャ復号のために構成されたワイヤレスデバイス500のブロック図を示す。ワイヤレスデバイス500は、メモリ501に結合されたデジタル信号プロセッサ(DSP)520などのプロセッサを含む。本開示の特定の態様では、メモリ501は、テクスチャ復号命令530など、DSP520によって実行可能な命令を記憶し、送信し得る。テクスチャ復号命令530が実行されると、スレッド560ごとにフレームの複数のマクロブロックの並列のテクスチャ復号を実行するために、複数のテクスチャ復号論理スレッド560(560-1、…、560N)が確立される。典型的に、各テクスチャ復号論理スレッドは、予測ブロック562、離散コサイン変換(DCT)/ウォルシュ-アダマール変換(WHT)反転ブロック564、再構築ブロック566、およびループフィルタ処理ブロック568を含む。この構成では、マクロブロックは、従来のフレーム境界よりむしろマクロブロック境界で並列のテクスチャ復号を可能にするために、再構築ブロック566からループフィルタ処理ブロック568にすぐに提供される。
【００２４】
本開示の一態様によれば、マクロブロックレベルでのテクスチャ復号は、行バッファ552および列バッファ554にフィルタ処理されていないピクセルを記憶することによって実行される。フィルタ処理されてないピクセルを行バッファ552および列バッファ554に記憶することは、その後のマクロブロックの予測を可能にする。図2に関して説明するように、タスクマネージャ550はマクロブロックをテクスチャ復号論理スレッド560に割り当てる。加えて、フロントエンドスレッド540は、マクロブロックを様々なスレッド560に提供し、フレームバッファ556内に復号されたフレームを記憶する。この構成では、各スレッド560に割り当てられるマクロブロックの量は、キャッシュラインサイズに基づく。たとえば、各スレッド560の2つのマクロブロックのタスクサイズは、32バイトのキャッシュラインサイズのために選択される。
【００２５】
図5はまた、DSP520およびディスプレイ528に結合されたディスプレイコントローラ514も示す。コーダ/デコーダ(コーデック)570(たとえば、オーディオおよび/またはボイスコーデック)がDSP520に結合され得る。たとえば、コーデック570によって、復号プロセスの一部としてテクスチャ復号命令530の実行がもたらされ得る。たとえばディスプレイコントローラ514(ビデオコーデックおよび/または画像処理プロセッサを含み得る)、およびワイヤレスコントローラ510(モデムを含み得る)など他の構成要素によって、信号処理の間に、テクスチャ復号命令530の実行がもたらされる場合もある。スピーカ572およびマイクロホン574がコーデック570に結合され得る。図5は、ワイヤレスコントローラ510が、ワイヤレスアンテナ508に結合され得ることも示している。ある構成では、DSP520、ディスプレイコントローラ514、メモリ501、コーデック570、およびワイヤレスコントローラ510は、システムインパッケージデバイスまたはシステムオンチップデバイス522に含まれる。
【００２６】
特定の構成において、入力デバイス526および電源524がシステムオンチップデバイス522に結合される。その上、特定の実施形態において、図5に示すように、ディスプレイ528、入力デバイス526、スピーカ572、マイクロホン574、ワイヤレスアンテナ508、および電源524は、システムオンチップデバイス522の外部にある。それにもかかわらず、ディスプレイ528、入力デバイス526、スピーカ572、マイクロホン574、ワイヤレスアンテナ508、および電源524の各々は、インターフェースまたはコントローラなど、システムオンチップデバイス522の構成要素に結合され得る。
【００２７】
図5はワイヤレス通信デバイスを示しているが、DSP520およびメモリ501がセットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータに統合されてもよいことに留意されたい。プロセッサ(たとえば、DSP520および/または図1のマイクロプロセッサ120を含むプロセッサ)は、そのようなデバイスに統合されてもよい。
【００２８】
図6は、本開示の一実施形態が有利に採用され得る例示的なワイヤレス通信システム600を示すブロック図である。例示のために、図6は、3つの遠隔ユニット620、630および650、ならびに2つの基地局640を示す。ワイヤレス通信システムがこれよりも多くの遠隔ユニットおよび基地局を有してもよいことが認識されよう。遠隔ユニット620、630および650は、マルチスレッドテクスチャデコーダを含むICデバイス625A、625Bおよび625Cを含む。ICを含む任意のデバイスは、基地局、スイッチングデバイス、およびネットワーク機器を含む、本明細書で開示されるマルチスレッドテクスチャデコーダも含み得ることが認識されよう。図6は、基地局640から遠隔ユニット620、630および650への順方向リンク信号680、ならびに遠隔ユニット620、630および650から基地局640への逆方向リンク信号690を示す。
【００２９】
図6では、遠隔ユニット620は携帯電話として示され、遠隔ユニット630はポータブルコンピュータとして示され、遠隔ユニット650はワイヤレスローカルループシステム内の固定ロケーション遠隔ユニットとして示される。たとえば、遠隔ユニットは、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器などの固定ロケーションデータユニット、またはデータもしくはコンピュータ命令の記憶もしくは取り出しを行う任意の他のデバイス、またはそれらの任意の組合せであり得る。図6は、本開示の教示による遠隔ユニットを示すが、本開示は、これらの例示的に示されたユニットには限定されない。本開示の態様は、マルチスレッドテクスチャデコーダを含む任意のデバイスで適切に採用することができる。
【００３０】
特定の回路について記載したが、当業者には、開示する実施形態を実践するうえで開示された回路のすべてが必要とされるわけではないことが理解されよう。さらに、本開示に対する注目を維持するために、ある周知の回路については説明していない。
【００３１】
さらに、本明細書の開示に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
【００３２】
本明細書の開示に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、汎用プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００３３】
1つまたは複数の例示的な設計では、説明した機能を、ハードウェア、ソフトウェア、ファームウェア、または任意のそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、汎用または専用コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、命令またはデータ構造の形態の所望のプログラムコード手段を搬送または記憶するために使用され汎用もしくは専用コンピュータまたは汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備え得る。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００３４】
本開示の前述の説明は、いかなる当業者でも本開示を作製または使用することができるように提供される。本開示への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本開示の趣旨および範囲を逸脱することなしに他の変形形態に適用され得る。したがって、本開示は、本明細書で説明される例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【００３５】
100  マルチプロセッサシステム
101  メモリ
102  特定用途向け集積回路(ASIC)
110  コントローラ
112  内部メモリ
114  外部インターフェースユニット
116  クロススイッチ
118A  DSPコア
118B  DSPコア
120  マイクロプロセッサ
200  テクスチャ復号論理
230  テクスチャ復号命令
234  構文解析されたパケット
236  復号されたフレーム
240  フロントエンドスレッド
242  タスクキュー
244  フレームキュー
246  ワーカースレッドプール
248  ワーカースレッド
250  タスクマネージャ
300  フレーム
352  行バッファ
354  列バッファ
356  マクロブロック
500  ワイヤレスデバイス
501  メモリ
508  ワイヤレスアンテナ
510  ワイヤレスコントローラ
514  ディスプレイコントローラ
520  デジタル信号プロセッサ(DSP)
522  システムオンチップデバイス
524  電源
526  入力デバイス
528  ディスプレイ
530  テクスチャ復号命令
540  フロントエンドスレッド
550  タスクマネージャ
552  行バッファ
554  列バッファ
556  フレームバッファ
560  テクスチャ復号論理スレッド
562  予測ブロック
564  離散コサイン変換(DCT)/ウォルシュ-アダマール変換(WHT)反転ブロック
566  再構成ブロック
568  ループフィルタ処理ブロック
570  コーダ/デコーダ(コーデック)
572  スピーカ
574  マイクロホン
528  ディスプレイ
600  ワイヤレス通信システム
620  遠隔ユニット
625A  ICデバイス
625B  ICデバイス
625C  ICデバイス
630  遠隔ユニット
640  基地局
650  遠隔ユニット
680  順方向リンク信号
690  逆方向リンク信号
【図１】
2015508620.tif 000003
【図２】
2015508620.tif 000004
【図３】
2015508620.tif 000005
【図４】
2015508620.tif 000006
【図５】
2015508620.tif 000007
【図６】
2015508620.tif 000008
【手続補正書】
【提出日】平成26年2月10日(2014.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチスレッドプロセッサにおけるテクスチャ復号のための方法であって、
複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを復号するステップであり、各ハードウェアスレッドが少なくとも1つのマクロブロックを処理する、ステップと、
1つまたは複数のマクロブロックを前記複数のハードウェアスレッドにおけるワーカースレッドに割り当てるステップであり、前記1つまたは複数のマクロブロックが少なくとも1つの依存する近隣を有する、ステップと
を含む方法。
【請求項２】
前記少なくとも2つのマクロブロックが異なる行からのものである、請求項1に記載の方法。
【請求項３】
行バッファと列バッファのうちの少なくとも一方にフィルタ処理されていないピクセルを記憶するステップをさらに含む、請求項1に記載の方法。
【請求項４】
行バッファと列バッファのうちの少なくとも一方の中に前記少なくとも2つのマクロブロックの再構築されたピクセルを記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項５】
復号する前記ステップが、
各ハードウェアスレッドにおける1つのマクロブロックを再構築し、次いで
前記再構築されたマクロブロックをフィルタ処理するステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
復号する前記ステップが、
前のマクロブロックから前記少なくとも2つのマクロブロックに再構築されたピクセルを行および列バッファに記憶するステップと、
前記前のマクロブロックの再構築された近隣情報を使用してフレーム内予測を実行するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
復号するステップが、前記VP8フレームの前記少なくとも2つのマクロブロックの各々を同時にテクスチャ復号するステップを含む、請求項1に記載の方法。
【請求項８】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットのうちの少なくとも1つに前記マルチスレッドプロセッサを統合するステップをさらに含む、請求項1に記載の方法。
【請求項９】
マルチスレッドテクスチャ復号のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのマルチスレッドプロセッサであり、前記少なくとも1つのマルチスレッドプロセッサが、複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを復号するように構成されており、各ハードウェアスレッドが少なくとも1つのマクロブロックを処理する、少なくとも1つのマルチスレッドプロセッサと、
1つまたは複数のマクロブロックを前記複数のハードウェアスレッドにおけるワーカースレッドに割り当てるようにさらに構成された前記プロセッサであり、前記1つまたは複数のマクロブロックが少なくとも1つの依存する近隣を有する、前記プロセッサと
を備える装置。
【請求項１０】
前記少なくとも2つのマクロブロックが異なる行からのものである、請求項9に記載の装置。
【請求項１１】
前記少なくとも1つのマルチスレッドプロセッサがさらに、
行バッファと列バッファのうちの少なくとも一方にフィルタ処理されていないピクセルを記憶し、
前記行バッファと前記列バッファのうちの少なくとも一方の中に前記少なくとも2つのマクロブロックの再構築されたピクセルを記憶する
ようにさらに構成される、請求項9に記載の装置。
【請求項１２】
前記マルチスレッドプロセッサが、
前のマクロブロックから前記少なくとも2つのマクロブロックに再構築されたピクセルを行および列バッファに記憶し、
前記前のマクロブロックの再構築された近隣情報を使用してフレーム内予測を実行する
ことによって復号するようにさらに構成される、請求項9に記載の装置。
【請求項１３】
前記VP8フレームの少なくとも2つのマクロブロックのうちの1つのマクロブロックを前記マルチスレッドプロセッサのハードウェアスレッドに割り当てるように構成されるコントローラをさらに備える、請求項9に記載の装置。
【請求項１４】
前記マルチスレッドプロセッサが、デジタル信号プロセッサおよびマルチコアプロセッサのうちの一方を備える、請求項9に記載の装置。
【請求項１５】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットの少なくとも1つに統合される、請求項9に記載の装置。
【請求項１６】
マルチスレッドテクスチャ復号のための装置であって、
VP8フレームの少なくとも2つのマクロブロックのうちの1つのマクロブロックを少なくとも1つの依存する近隣を有するハードウェアスレッドに割り当てるための手段と、
前のマクロブロックから前記少なくとも2つのマクロブロックに再構築されたピクセルを行および列バッファに記憶するための手段と、
前記前のマクロブロックの再構築された近隣情報を使用してフレーム内予測を実行するための手段と
を備える装置。
【請求項１７】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットの少なくとも1つに統合される、請求項16に記載の装置。
【請求項１８】
マルチスレッドテクスチャ復号のために構成されたコンピュータプログラムであって、
非一時的プログラムコードを記録した非一時的コンピュータ可読記録媒体を備え、前記プログラムコードが、
複数のハードウェアスレッドによって、VP8フレームの少なくとも2つのマクロブロックを復号するためのプログラムコードであり、各ハードウェアスレッドが少なくとも1つのマクロブロックを処理する、プログラムコードと、1つまたは複数のマクロブロックを前記複数のハードウェアスレッドにおけるワーカースレッドに割り当てるためのプログラムコードであり、前記1つまたは複数のマクロブロックが少なくとも1つの依存する近隣を有する、プログラムコードと
を含む、コンピュータプログラム。
【請求項１９】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定位置データユニットのうちの少なくとも1つに統合される、請求項18に記載のコンピュータプログラム。
【国際調査報告】
2015508620.tif 000009
2015508620.tif 000010
2015508620.tif 000011
2015508620.tif 000012
2015508620.tif 000013