(57)【要約】      （修正有）【課題】２回の１次元逆変換演算を経て２次元逆変換演算を実行する際にｎ×ｎブロックのデータをバッファリングおよびアクセスするための効率的な格納手段を提供する。【解決手段】シフトアレイ形式の格納手段を用いて、空間周波数領域における変換対象データと、空間領域における１次元逆変換済みデータおよび２次元逆変換済みデータを、２回の１次元逆演算を実行する際のそれらのビット・サイズの相違および存在時間の相違を利用して格納およびアクセスする。このシフトアレイのシリコン実装時の寸法を、シフトアレイ内の記憶素子を効率的に共用し、かつこれらの記憶素子に効率的にアクセスすることにより小型化する。複数のシフトアレイを用いて、データバッファ容量を拡大することにより、ＳＤＴＶおよびＨＤＴＶ解像度等の高性能を必要とするビデオ復号システムのスループットを増やすことができる。【選択図】図４
2006293693.tif 000002
【特許請求の範囲】
【請求項１】
変換対象データ、１次元逆変換済みデータ、および２次元逆変換済みデータに効率的にデータアクセスすべくシフトアレイを用いて２回の１次元（１−Ｄ）逆変換を実行することにより２次元（２−Ｄ）逆変換を実行する２次元逆変換装置であって、
変換対象データ、１次元逆変換済みデータ、および２次元逆変換済みデータを入力、バッファリング、および出力するための１個または複数のｎ×ｎシフトアレイを含むデータ格納手段と、
１次元行逆変換および１次元列逆変換を計算するための１次元逆変換計算手段と、
ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアから前記データ格納手段へ変換対象データを入力するための変換対象データ入力手段と、
ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへ前記データ格納手段から２次元逆変換済みデータを出力するための２次元逆変換済みデータ出力手段と、
１次元行逆変換を計算すべく前記データ格納手段から１次元逆変換計算手段へ変換対象データを出力するためのｎ行の変換対象データ出力手段と、
１次元行逆変換を計算した後で、１次元逆変換計算手段から前記データ格納手段に１次元逆変換済みデータを入力するためのｎ行の１次元逆変換済みデータ入力手段と、
１次元列逆変換を計算すべく、前記データ格納手段から１次元逆変換済みデータを１次元逆変換計算手段へ出力するためのｎ列の１次元逆変換済みデータ出力手段と、
１次元列逆変換を計算した後で、１次元逆変換計算手段から前記データ格納手段へ変換対象データを入力するためのｎ列の２次元逆変換済みデータ入力手段と、
前記変換対象データ入力手段を介して先行ハードウェア・アクセラレーション・コアから変換対象データを受け入れるための入力アレイとして前記データ格納手段内の１個のシフトアレイを選択するための入力アレイ選択手段と、
前記データ格納手段内の選択された入力アレイに対し、データの受け入れが許可された時点を指示するための入力アレイモード指定手段と、
ｎ行の変換対象データ出力手段、ｎ行の１次元逆変換済みデータ入力手段、ｎ列の１次元逆変換済みデータ出力手段、およびｎ列の２次元逆変換済みデータ入力手段を介して、前記１次元逆変換計算手段との間でデータを入出力するための計算アレイとして、データ格納手段内のシフトアレイの１個を選択するための計算アレイ選択手段と、
選択された計算アレイが、１次元逆変換計算の準備が完了した時点、および１次元逆変換計算に対応するデータ移送モードを、選択された計算アレイに指示するための計算アレイモード指定手段と、
前記２次元逆変換済みデータ出力手段を介して、ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアに対し、２次元逆変換済みデータを出力するための出力アレイとして、前記データ格納手段内のシフトアレイの１個を選択するための出力アレイ選択手段と、
選択された出力アレイに対し、それがアクセスすべき２次元逆変換済みデータを含むか否かを指示するための出力アレイモード指定手段と、
入力アレイ選択手段、計算アレイ選択手段、および出力アレイ選択手段が、シフトアレイを選択する際に独立して、かつラウンドロビン方式に動作する入力アレイ選択手段とを含む２次元逆変換装置。
【請求項２】
前記ｎ×ｎシフトアレイは、
各ビットプレーンが記憶素子のｎ×ｎアレイを含む、Ｍ個のビットプレーンと、
各ビットプレーンが記憶素子のｎ×ｎアレイを含む、Ｎ個のビットプレーンとを含み、
前記Ｍ個のビットプレーンが、ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアから変換対象データを受信するための変換対象データ入力手段を備え、
前記Ｍ個のビットプレーンが行データ移送手段を有し、当該手段により記憶素子のｎ×ｎアレイ内のデータ行を一つ上の行へ移送して、最上位行を出力データとして１次元行逆変換計算用の変換対象データのシフトおよび出力を可能にし、
前記Ｎ個のビットプレーンが行データ移送手段を有し、１次元行逆変換計算の後で、当該手段により記憶素子のｎ×ｎアレイ内のデータ行を一つ上の行へ移送して、最上位行を入力データとして１次元行逆変換済みデータのシフトおよび入力を可能にし、
前記Ｍ個のビットプレーンのうちｘ個のビットプレーンが、１次元行逆変換計算の後で、１次元変換済みデータの入力用の入力データとしてｎ×ｎ個の記憶素子の最下位行を有し、
前記Ｎ個のビットプレーンおよび前記ｘ個のビットプレーンが列データ移送手段を有し、当該手段により記憶素子のｎ×ｎアレイ内のデータ列を左隣の列へ移送して、最左端列を出力データとして１次元列逆変換計算用の１次元逆変換済みデータのシフトおよび出力を可能にし、
前記Ｎ個のビットプレーンが、１次元列逆変換計算の後で、２次元逆変換済みデータを入力するための入力データとして記憶素子のｎ×ｎアレイの最右端列を有し、
前記Ｎ個のビットプレーンが、２次元逆変換済みデータを出力するための出力データとして記憶素子のｎ×ｎアレイの最上位行または最左端列のいずれかを有する、請求項１に記載の２次元逆変換装置。
【請求項３】
前記変換対象データ入力手段は、
前記Ｍ個のビットプレーンの変換対象データをｎ×ｎアレイ内の各記憶素子へ搬送するＭビットデータバスと、
データの格納に用いられたｎ×ｎアレイ内の記憶素子を指定するアドレス指定手段とを含む、請求項２に記載の２次元逆変換装置。
【請求項４】
前記２次元逆変換済みデータ出力手段は、
狭められたバス幅でビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへ出力すべく、請求項２に記載のＮ個のビットプレーン内の最上位行または最左端列のいずれかを介してシフトアウトされた２次元逆変換済みデータを多重化するためのデータ多重化手段を含む、請求項１に記載の２次元逆変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元逆変換を実行する際のビット・サイズの相違および存在時間の相違を利用して、空間周波数領域内の変換対象データ、空間領域内の１次元逆変換済みデータおよび２次元逆変換済みデータを格納するシフトアレイを用いた２次元逆変換装置に関する。２次元逆変換装置は、空間周波数領域内のデータブロックを空間領域内のデータブロックに変換するもので、ビデオ復号システムに応用可能である。このような逆変換の例として、ＭＰＥＧ方式において用いられる逆離散コサイン変換（ＩＤＣＴ）およびＳＭＰＴＥ  ＶＣ１方式において用いられる逆整数変換がある。
【背景技術】
【０００２】
空間領域から空間周波数領域への２次元（２−Ｄ）変換は、ＭＰＥＧビデオ方式等のビデオ圧縮で広く用いられており、空間領域におけるｎ×ｎブロックのピクセル情報を空間周波数領域に変換するものである。データを空間周波数領域から空間領域へ逆変換するにはビデオ復号システムにより２次元（２−Ｄ）逆変換を実行する必要がある。使用する２次元逆変換は、分離可能な変換であるため、１次元（１−Ｄ）逆変換を２回実行することにより得られる。最初に、変換対象データのブロックの行に対して１次元逆変換を実行して１次元逆変換済みデータのブロックを求め、次いで１次元逆変換済みデータのブロックの列に対して１次元逆変換を別途実行する。
【０００３】
１次元逆変換式を直接計算するのに比べてより少ない回数の算術演算、乗算および加算により１次元逆変換を計算可能にすべく、各種の高速アルゴリズムが開発されている。非特許文献１にそのような高速アルゴリズムの一つが記載されている。これらの高速アルゴリズムは通常、対象アプリケーションを十分にリアルタイム処理可能な程度に処理速度を上げるべく、多数回の算術演算を並列に実行できる並列アーキテクチャとして実装されている。
【０００４】
前記ＭＰＥＧビデオ・ビットストリームを復号化するための従来のビデオ復号システムにおいて、ＤＣＴ係数は所定の走査順序で可変長復号化を介して直列に復号化され、これらのＤＣＴ係数は次いで逆量子化および逆走査されてラスタ走査順にＤＣＴ係数のブロックを形成する。ＤＣＴ係数のこのブロックを格納するために入力バッファが必要である。ＤＣＴ係数のブロックの各行に対し１次元ＩＤＣＴ処理が実行され、１次元ＩＤＣＴ変換済みデータの各行に対する出力が中間データ記憶バッファに格納される。中間データ記憶バッファは、別の１次元ＩＤＣＴ処理用の中間データの各列を出力する。後続の復号化段階用に２次元ＩＤＣＴ変換対象データを格納するための出力バッファが必要である。非特許文献２に、ＭＰＥＧ−２ビデオ復号用の汎用ビデオデコーダ・アーキテクチャを記載している。特許文献１に、そのデータ処理モジュールにおけるこれらのデータ記憶バッファの要件を記載している。
【０００５】
中間１次元逆変換済みデータのバッファリングおよび転置手段を実装するために多くの異なる方法が用いられてきた。特許文献２に、８×８ブロックのデータ行を格納して、データ列を読み出し可能にするインターリーブされたランダム・アクセス・メモリを記載している。特許文献３に、レジスタとマルチプレクサを相互接続することにより形成した転置メモリを記載している。
【０００６】
２次元逆変換計算用にデータをバッファリングする従来技術の方法は、多くのシリコン領域を要する。従って本発明の目的は、逆変換計算用の入力バッファ、中間データバッファ、および出力バッファのバッファリング手段を共有することによりシリコン領域を減らすことである。
【特許文献１】米国特許第６，７１７，６２０号明細書
【特許文献２】米国特許第５，０５３，９８５号明細書
【特許文献３】米国特許第４，９０３，２３１号明細書
【非特許文献１】Ｗ．チェン（Ｃｈｅｎ）、Ｃ．Ｈ．スミス（Ｓｍｉｔｈ）、およびＳ．Ｃ．フラリック（Ｆｒａｌｉｃｋ）著「離散コサイン変換用の高速計算アルゴリズム（Ａ  ｆａｓｔ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｔｈｅ  ｄｉｓｃｒｅｔｅ  ｃｏｓｉｎｅ  ｔｒａｎｓｆｏｒｍ）」、ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍｕｎ．、ｖｏｌ．ＣＯＭ−２５、ｐ１００４〜１００９、１９７７年９月
【非特許文献２】ジュイホア・リー（Ｊｕｉ−Ｈｕａ  Ｌｉ）、ナム・リン（Ｎａｍ  Ｌｉｎｇ）著「ＭＰＥＧ−２ビデオデコーダ用のアーキテクチャおよびバス調停スキーム（Ａｒｃｈｉｔｅｃｔｕｒｅ  ａｎｄ  Ｂｕｓ−Ａｒｂｉｔｒａｔｉｏｎ  Ｓｃｈｅｍｅｓ  ｆｏｒ  ＭＰＥＧ−２  Ｖｉｄｅｏ  Ｄｅｃｏｄｅｒ）」、ＩＥＥＥ  Ｔｒａｎｓ．Ｃｉｒｃｕｉｔｓ  Ｓｙｓｔ．ＶｉｄｅｏＴｅｃｈｎｏｌ．、ｖｏｌ．９、ｎｏ．５、１９９９年８月、ｐ．７２７〜７３６
【発明の開示】
【発明が解決しようとする課題】
【０００７】
トランジスタのサイズを小型化させたＶＬＳＩプロセス技術の進歩により、トランジスタ漏出電流が電力消費全体における重要な課題となる。電池で動作するビデオ復号システムの場合、２次元逆変換用の格納手段の効率的な使用を通じて電力消費量を減らすことが重要である。
【０００８】
ＶＬＳＩで実装したビデオ復号は、一連の圧縮復元タスクを実行するハードウェア・アクセラレーション・コアのパイプラインにより実行される。圧縮効率に対する要求の増大に起因して、ＭＰＥＧ４、Ｈ．２６４、およびＳＭＰＴＥ  ＶＣ１等の新しいビデオ方式の多くは、より高度な圧縮技術を使用している。この種の新規なビデオ方式のために、より高度なハードウェア・アクセラレーション・コアを用いる必要があり、またこれらのハードウェア・アクセラレーション・コアによる外部メモリへのアクセスが増加する。データを求めての外部メモリへアクセスする結果、これらのハードウェア・アクセラレーション・コアの処理待ち時間のバラツキが拡大する。その結果、ビデオ復号パイプライン内のハードウェア・アクセラレーション・コアの先行ハードウェア・アクセラレーション・コアからの入力データ待ち時間、および後続ハードウェア・アクセラレーション・コアに受け入れられるまでの出力データ待ち時間のバラツキが益々拡大する。特にＳＤＴＶおよびＨＤＴＶ解像度等の高性能ビデオ復号システムに十分なスループットを実現するために、復号化パイプラインにおける効率的なデータバッファリングによりハードウェア・アクセラレーション・コアの使用率を高い水準に維持することが求められている。
【課題を解決するための手段】
【０００９】
本発明の第１の観点は、変換対象データ、１次元逆変換済みデータ、および２次元逆変換済みデータに効率的にデータアクセスすべくシフトアレイを用いて２回の１次元（１−Ｄ）逆変換を実行することにより２次元（２−Ｄ）逆変換を実行する２次元逆変換装置であって、
変換対象データ、１次元逆変換済みデータ、および２次元逆変換済みデータを入力、バッファリング、および出力するための１個または複数のｎ×ｎシフトアレイを含むデータ格納手段と、
１次元行逆変換および１次元列逆変換を計算するための１次元逆変換計算手段と、
ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアから前記データ格納手段へ変換対象データを入力するための変換対象データ入力手段と、
ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへ前記データ格納手段から２次元逆変換済みデータを出力するための２次元逆変換済みデータ出力手段と、
１次元行逆変換を計算すべく前記データ格納手段から１次元逆変換計算手段へ変換対象データを出力するためのｎ行の変換対象データ出力手段と、
１次元行逆変換を計算した後で、１次元逆変換計算手段から前記データ格納手段に１次元逆変換済みデータを入力するためのｎ行の１次元逆変換済みデータ入力手段と、
１次元列逆変換を計算すべく、前記データ格納手段から１次元逆変換済みデータを１次元逆変換計算手段へ出力するためのｎ列の１次元逆変換済みデータ出力手段と、
１次元列逆変換を計算した後で、１次元逆変換計算手段から前記データ格納手段へ変換対象データを入力するためのｎ列の２次元逆変換済みデータ入力手段と、
前記変換対象データ入力手段を介して先行ハードウェア・アクセラレーション・コアから変換対象データを受け入れるための入力アレイとして前記データ格納手段内の１個のシフトアレイを選択するための入力アレイ選択手段と、
前記データ格納手段内の選択された入力アレイに対し、データの受け入れが許可された時点を指示するための入力アレイモード指定手段と、
ｎ行の変換対象データ出力手段、ｎ行の１次元逆変換済みデータ入力手段、ｎ列の１次元逆変換済みデータ出力手段、およびｎ列の２次元逆変換済みデータ入力手段を介して、前記１次元逆変換計算手段との間でデータを入出力するための計算アレイとして、データ格納手段内のシフトアレイの１個を選択するための計算アレイ選択手段と、
選択された計算アレイが、１次元逆変換計算の準備が完了した時点、および１次元逆変換計算に対応するデータ移送モードを、選択された計算アレイに指示するための計算アレイモード指定手段と、
前記２次元逆変換済みデータ出力手段を介して、ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアに対し、２次元逆変換済みデータを出力するための出力アレイとして、前記データ格納手段内のシフトアレイの１個を選択するための出力アレイ選択手段と、
選択された出力アレイに対し、それがアクセスすべき２次元逆変換済みデータを含むか否かを指示するための出力アレイモード指定手段と、
入力アレイ選択手段、計算アレイ選択手段、および出力アレイ選択手段が、シフトアレイを選択する際に独立して、かつラウンドロビン方式に動作する入力アレイ選択手段とを含む２次元逆変換装置である。
【００１０】
本発明の第２の観点によれば、前記ｎ×ｎシフトアレイは、
各ビットプレーンが記憶素子のｎ×ｎアレイを含む、Ｍ個のビットプレーンと、
各ビットプレーンが記憶素子のｎ×ｎアレイを含む、Ｎ個のビットプレーンとを含み、
前記Ｍ個のビットプレーンが、ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアから変換対象データを受信するための変換対象データ入力手段を備え、
前記Ｍ個のビットプレーンが行データ移送手段を有し、当該手段により記憶素子のｎ×ｎアレイ内のデータ行を一つ上の行へ移送して、最上位行を出力データとして１次元行逆変換計算用の変換対象データのシフトおよび出力を可能にし、
前記Ｎ個のビットプレーンが行データ移送手段を有し、１次元行逆変換計算の後で、当該手段により記憶素子のｎ×ｎアレイ内のデータ行を一つ上の行へ移送して、最上位行を入力データとして１次元行逆変換済みデータのシフトおよび入力を可能にし、
前記Ｍ個のビットプレーンのうちｘ個のビットプレーンが、１次元行逆変換計算の後で、１次元変換済みデータの入力用の入力データとしてｎ×ｎ個の記憶素子の最下位行を有し、
前記Ｎ個のビットプレーンおよび前記ｘ個のビットプレーンが列データ移送手段を有し、当該手段により記憶素子のｎ×ｎアレイ内のデータ列を左隣の列へ移送して、最左端列を出力データとして１次元列逆変換計算用の１次元逆変換済みデータのシフトおよび出力を可能にし、
前記Ｎ個のビットプレーンが、１次元列逆変換計算の後で、２次元逆変換済みデータを入力するための入力データとして記憶素子のｎ×ｎアレイの最右端列を有し、
前記Ｎ個のビットプレーンが、２次元逆変換済みデータを出力するための出力データとして記憶素子のｎ×ｎアレイの最上位行または最左端列のいずれかを有する、２次元逆変換装置である。
【００１１】
本発明の第３の観点によれば、前記変換対象データ入力手段は、
前記Ｍ個のビットプレーンの変換対象データをｎ×ｎアレイ内の各記憶素子へ搬送するＭビットデータバスと、
データの格納に用いられたｎ×ｎアレイ内の記憶素子を指定するアドレス指定手段とを含む、請求項２に記載の２次元逆変換装置である。
【００１２】
本発明の第４の観点によれば、前記２次元逆変換済みデータ出力手段は、
狭められたバス幅でビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへ出力すべく、請求項２に記載のＮ個のビットプレーン内の最上位行または最左端列のいずれかを介してシフトアウトされた２次元逆変換済みデータを多重化するためのデータ多重化手段を含む、２次元逆変換装置である。
【発明の効果】
【００１３】
本発明は、空間周波数領域内の変換対象データ、空間領域内の１次元逆変換済みデータおよび２次元逆変換済みデータを、記憶素子のｎ×ｎアレイのＭ＋Ｎ個のビットプレーンの形式で格納するための統一されたデータ格納手段を提供する。各ビットプレーンの必要に応じてこれらの記憶素子にアクセスする、異なる手段を提供することにより、シリコン実装時にこれらの要素同士の配線および多重化手段の量が減少される。変換対象データの入力、１次元逆変換計算の実行、および２次元逆変換済みデータの出力時におけるこれらの記憶素子の存在時間の相違を利用して、共有使用することにより、必要な記憶素子の量が減少される。その結果、本発明をシリコン上に実装する際にダイ寸法が小さくでき、低電力消費がもたらされる。
【００１４】
復号化スループットが広範に変動し得るハードウェア・アクセラレーション・コアを有するビデオ復号システムに対して、本発明はまた、パイプライン内で中間復号化データをバッファリングする有効な手段として機能する。２個以上のシフトアレイを用いることにより、ハードウェア・アクセラレーション・コアの複合化スループットにおける許容度を増し、広範な変動性を吸収できる能力を高める。これにより、ビデオ復号パイプライン全体の複合化スループットが増大し、高いスループットを必要とするビデオ・システムに適合させる。
【発明を実施するための最良の形態】
【００１５】
図１に、逆変換を実行するビデオ復号システムの一部のブロック図を示す。変換対象データの１ブロックを格納して、行単位の１次元逆変換計算用に行単位でデータを出力可能な入力バッファ１００が必要である。行単位の１次元逆変換計算手段１０１は、行単位で１次元逆変換対象行を計算して、１次元逆変換済みデータを中間データバッファ１０２へ出力する。変換対象データブロックの全ての行が計算された後で、列単位の１次元逆計算１０３が次いで開始される。中間データバッファ１０２は、そのデータのブロックを転置して、列単位の１次元逆変換処理用に列単位でデータを出力する。後続の復号化段階用に２次元逆変換済みデータを格納するための出力バッファ１０４が必要である。これら３種の記憶バッファは、ＲＡＭまたはシフトレジスタ・アレイとして実装されている。
【００１６】
本装置は、２次元逆変換計算用に使用される効率的なデータ格納手段を提供し、また、より良い復号化スループットを実現するためにビデオ復号パイプライン内におけるデータのバッファリングを行なう効率的な手段として役立つ。
【００１７】
図２に、データ格納手段として１個のｎ×ｎシフトアレイを有する２次元逆変換演算のタイミングを示す。ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアは、Ｍ個のビットプレーンを占有しているシフトアレイ内へＭビット精度のｎ×ｎ変換対象データのブロック（ｉ）を入力する。変換対象データは次いで、１次元行逆変換計算のために行単位にシフトアウトされ、計算された（Ｎ＋ｘ）ビット精度の１次元逆変換済みデータが（Ｎ＋ｘ）ビットプレーンを占有するアレイにシフトバックされる。ここでｘビットプレーンはＭ個のビットプレーンに属している。変換対象データのｎ行全てを計算した後で、列逆変換計算が開始される。１次元逆変換済みデータは次いで、１次元列逆変換計算のためにシフトアレイから列単位にシフトアウトされ、計算されたＮビット精度の２次元逆変換済みデータがＮ個のビットプレーンを占有するシフトアレイへシフトバックされる。
【００１８】
ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアは次いで、２回の１次元逆変換計算の後で、シフトアレイからデータを読み込む。ブロック（ｉ）の２次元逆変換済みデータの後続ハードウェア・アクセラレーション・コアへの出力は、先行ハードウェア・アクセラレーション・コアからの変換対象データの次のブロック（ｉ＋１）の入力とは同じビットプレーンを使用しないため、並列に行なうことができる。
【００１９】
後続ブロックの１次元逆変換演算が開始できるのは、先行ハードウェア・アクセラレーション・コアがｎ×ｎ変換対象データのブロック（ｉ＋１）の入力を完了し、かつ全ての計算された２次元逆変換済みデータが後続ハードウェア・アクセラレーション・コアにより読み出された場合だけである。
【００２０】
図３に、ビデオ復号化スループットを増大させるためにビデオ復号パイプライン内におけるデータの効率的なバッファリングを提供すべくデータ格納手段として２個のｎ×ｎシフトアレイを有する２次元逆変換計算のタイミングを示す。シフトアレイは、２回の１次元逆変換計算、および２次元逆変換済みデータの出力について、先行ハードウェア・アクセラレーション・コアから変換対象データを受け入れるためにラウンドロビン方式で選択される。
【００２１】
先行ハードウェア・アクセラレーション・コアは、２個のシフトアレイを用いて、一方のシフトアレイに変換対象データを入力し、先行ハードウェア・アクセラレーション・コアの計算を停止させることなく、もう一方を１次元逆変換計算に用いることができる。２個のシフトアレイを備えている結果、シフトアレイが１個の場合に比べて１次元逆変換計算手段の利用度が増大する。これにより先行ハードウェア・アクセラレーション・コアが変換対象データの次のブロックを自身のシフトアレイに入力できるまでの待ち時間、および後続ハードウェア・アクセラレーション・コアが当該シフトアレイから２次元逆変換済みデータを読み込んで後続の１次元逆変換計算を開始可能になるまでの待ち時間を短縮することができる。２次元逆変換済みデータはまた出力用にバッファリングすることができ、その結果、後続ハードウェア・アクセラレーション・コアがこれらのデータを検索する際の速度の変動に対する許容度が高まる。
【００２２】
ビデオ復号システムにおける逆変換計算のためのデータ格納およびバッファリングの効率的な手段として本発明の好適な実施形態を、添付図面を参照しつつ以下に詳述する。
【００２３】
図４に、ビデオ復号システムの逆変換計算を実行する装置の構成のブロック図を示す。これは１個以上のデータ格納手段のｎ×ｎシフトアレイ４００で構成されている。変換対象データ４０１並びにｎ×ｎアレイ内の場所を指定するアドレス指定手段４０２が先行ハードウェア・アクセラレーション・コアから、入力アレイ選択手段４０３により選択されたｎ×ｎシフトアレイへ入力されることを示している。入力アレイモード指定手段４０４が、当該シフトアレイにおいてデータ受け入れ準備完了を示していれば、変換対象データが格納位置に書き込まれる。
【００２４】
計算アレイ選択手段４０５は、データ格納手段内のシフトアレイ４００が、１次元逆変換計算手段４０６を介して２次元逆変換の計算のために用いられることを示す。２次元逆変換は、最初に、選択されたｎ×ｎシフトアレイに格納されている変換対象データの各行に対して行なわれ、次に、選択されたｎ×ｎシフトアレイに格納されている既存１次元逆変換済みデータの各列に対して行なわれる１次元逆変換演算の２回の計算を経て実行される。計算アレイモード指定手段４０７は、逆変換計算を開始する時点を示す。１次元行逆変換を実行する際に、格納手段のシフトアレイ４００はｎ行のデータ４０８を１次元逆変換計算手段へ出力する。１次元逆変換計算手段によりこれらのデータが計算された後で、ｎ行の１次元逆変換済みデータ４０９を出力する。
【００２５】
列逆変換は、変換対象データのｎ行全てについて１次元行逆変換を完了した後で開始される。シフトアレイは、１次元列逆変換計算用に、１次元逆変換計算手段４０６に対して、ｎ列の１次元逆変換済みデータ４１０を出力する。各列が１次元逆変換計算手段４０６により計算された後で、ｎ列の２次元逆変換済みデータ４１１を出力する。これらのデータは、計算シフトアレイ選択手段４０５が示すものと同じシフトアレイにシフトされる。
【００２６】
計算された２次元逆変換済みデータは、シフトアレイからビデオ復号パイプライン内の後続ハードウェア・アクセラレータへシフトアウトされる。出力アレイ選択手段４１２は、どのシフトアレイからデータがシフトアウトされるかを示し、出力モード指定手段４１３により、当該シフトアレイがシフトアウトされる２次元逆変換済みデータを含んでいることを示す。２次元逆変換済みデータ４１４は、図９、図１０に記載しているように、多重化を介して減少したバス幅でシフトアレイからシフトアウトさせることができる。
【００２７】
入力シフトアレイ選択手段４０３、計算シフトアレイ選択手段４０５、および出力シフトアレイ選択手段４１２は独立に、変換対象データ入力、１次元逆変換計算、および２次元逆変換済みデータ出力用にシフトアレイを選択する。
【００２８】
図５に示す別の実施形態は、Ｍ＋Ｎ個のビットプレーン５００からなる１個のシフトアレイの構造編成を示す。ここで、１個のビットプレーン５０１はｎ×ｎ個の記憶素子で構成される。Ｍ個のビットプレーン５０２は、先行ハードウェア・アクセラレーション・コアから入力されたＭビット精度のｎ×ｎ変換対象データをビデオ復号パイプラインに格納するために用いられる。Ｎ個のビットプレーン５０３は、ビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアにより読み出されるように、Ｎビット精度の２次元逆変換済みデータの格納に用いられる。
【００２９】
当該シフトアレイを用いて、全てのｎ×ｎ変換対象データがＭ個のビットプレーン５０２に入力された後で、かつＮ個のビットプレーン５０３がまだ読み出されていない２次元逆変換済みデータを一切含まない場合に１次元行逆変換を計算することができる。当該シフトアレイは、１次元行逆変換計算のために、Ｍ個のビットプレーン５０２から行単位でデータをシフトアウトする。各々の１次元行逆変換計算の後で、Ｎ＋ｘビット精度の１次元逆変換済みデータは次いで、Ｎ＋ｘ個のビットプレーン５０４を占有している同じシフトアレイへ書き戻される。ここでｘは、Ｍ個のビットプレーンに帰属するビットプレーンの数である。
【００３０】
１次元逆変換済みデータは次いで、１次元列逆変換計算のために、シフトアレイから列単位にシフトアウトされる。各々の１次元列逆変換計算の後で、Ｎビット精度の２次元逆変換済みデータは次いで、Ｎ個のビットプレーン５０３を占有する同じシフトアレイに書き込まれる。
【００３１】
図６に、先行ハードウェア・アクセラレーション・コアから連続的に入力されたＮビット精度の変換対象データ６００を、ｎ×ｎアレイのＮ個のビットプレーン内の対応する記憶素子６０１に格納する手段を示す。アドレス指定手段６０２は、データを格納するためのｎ×ｎアレイ内の位置を示し、通知手段６０３内で復号化して、各々の記憶素子に対し変換対象データを格納するか格納しないかを通知する。
【００３２】
図７に、記憶素子のある行を一つ上の行へデータを移送する手段７００を示す。アレイの最上位行７０１およびアレイの最下位行７０２は各々シフトアレイの出力および入力としての役割を果たす。Ｍ個のビットプレーンは当該手段を有し、１次元行逆変換計算のために変換対象データを行単位にシフトアウトさせる。Ｎ個のビットプレーンも同じ手段を有し、Ｍ個のビットプレーンからのｘ個のビットプレーンをと共に用いて、１次元行逆変換計算の後で、１次元逆変換済みデータ行をシフトさせる。
【００３３】
図８に、ある列から左隣の列へデータを移送する手段８００を示す。最左端の列８０１および最右端の列８０２は各々シフトアレイの出力および入力としての役割を果たす。Ｎ＋ｘビットプレーンは当該手段を有し、１次元列逆変換計算のため１次元逆変換済みデータを列単位にシフトアウトさせる。Ｎ個のビットプレーン内でも当該手段を用いて、１次元列逆変換計算の後で、２次元逆変換済みデータをＮ個のビットプレーンにシフトする。
【００３４】
Ｎ個のビットプレーン内の２次元逆変換済みデータは、シフトアレイからビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへシフトアウトされる。図９に示す行からの行へのデータ移送手段、あるいは図１０に示す列から列へのデータ移送手段を用いて、２次元逆変換済みデータをシフトアレイからシフトアウトさせることができる。シフトアレイからシフトアウトされた２次元逆変換済みデータ９００，１０００の数ｎは次いで、データ多重化手段９０１，１００１により多重化されて、数が減らされた２次元逆変換済みデータをビデオ復号パイプライン内の後続ハードウェア・アクセラレーション・コアへ搬送するデータバス９０２，１００２に送られる。
【００３５】
以下、本発明の特徴をまとめると、次の通りである。
【００３６】
２次元逆変換を実行するハードウェア・アクセラレーション・コアは、入力変換対象データ、１次元逆変換済み中間データ、および出力２次元逆変換済みデータを格納する格納手段を必要とする。これら３種のデータの型は精度が異なり、１次元逆変換済みデータは表現のために最大数のビットを必要とし、これに変換対象データ、さらに２次元逆変換済みデータが続く。逆変換演算途中におけるこれらの存在時間もまた異なり、例えば変換対象データ行に対して１次元逆変換が実行された後で変換対象データの当該行を他の有用なデータで上書きすることができる。
【００３７】
本発明は、データ・サイズの相違、およびそれらの存在時間の相違を利用して、ｎ×ｎデータの格納手段の新しいシフトアレイを構築する。本シフトアレイは（Ｍ＋Ｎ）個のビットプレーンと見なすことができ、各ビットプレーンはｎ×ｎアレイのビット格納手段を有する。各データ格納手段のビット数は、入力変換対象データ（Ｍ）に出力２次元逆変換済みデータ（Ｎ）を加えたものによる表現に必要な合計ビット数である。格納手段の（Ｍ＋Ｎ）個のビットを用いて、１次元逆変換済みデータを格納することもできる。
【００３８】
入力変換対象データ（Ｍ）用に使用するビット数、および出力２次元逆変換済みデータ（Ｎ）用に使用するビット数は異なるビデオ復号方式ごとに異なる。ＭＰＥＧ２ビデオ方式において、各変換対象データは１２ビット値により表現することができ、各２次元逆変換対象データは９ビット値により表現することができる。１次元逆変換済みデータの表現に用いるビット数は、逆変換の計算に用いるアルゴリズムに依存する。開発された高速逆変換アルゴリズムの大部分において、この数は通常（Ｍ＋Ｎ）より小さく、その結果利用されていない少数のビットプレーンが得られる。しかし、これはシフトアレイが提供するより大きな効果に比べて受容可能である。（Ｍ＋Ｎ）ビットに近いかまたは等しい１次元逆変換済みデータを用いる高速アルゴリズムを開発して、算術演算、加算、および乗算の回数を減少させながら格納ビットプレーンを最大限に利用することができる。
【００３９】
Ｍ個のビットプレーンは、先行ハードウェア・アクセラレーション・コアから変換対象データ入力を受容する手段を有している必要がある。変換対象データは連続的に入力することができ、アドレス指定手段が格納用にｎ×ｎアレイ内の場所を示す。Ｍ個のビットプレーンはまた、行データ移送用の手段を有し、ｎ×ｎアレイ内の記憶素子の行データを一つ上の行へシフトさせて、最上位行を１次元逆変換計算手段への出力とする。
【００４０】
１次元行逆変換計算を実行した後で、１次元逆変換済みデータは次いで（Ｎ＋ｘ）ビットプレーンへシフトされる。ここで、ｘはＭ個のビットプレーン内のビットプレーンの数であり、（Ｎ＋ｘ）は１次元逆変換済みデータを表わすのに必要なビット精度である。ｎ×ｎアレイの（Ｎ＋ｘ）ビットプレーン内の最下行は１次元逆変換済みデータの入力として用いられる。（Ｎ＋ｘ）ビットプレーンはまた、１次元逆変換済みデータへシフトするための上述の行データ移送手段も有する。
【００４１】
（Ｎ＋ｘ）ビットプレーンは列データ移送の手段を有し、ｎ×ｎアレイ内の記憶素子の列内のデータを左隣の列へシフトでき、ｎ×ｎアレイの最左端の列が１次元逆変換済みデータを１次元逆変換計算手段へ出力する。Ｎ個のビットプレーンの列データ移送手段はまた、１次元列逆変換計算を実行した後で２次元逆変換済みデータへシフトするためにも用いられる。
【００４２】
ｎ×ｎシフトアレイのＮ個のビットプレーンは、行または列データ移送手段のいずれかを用いて２次元逆変換済みデータをシフトアウトし、次いで復号化パイプライン内の後続ハードウェア・アクセラレーション・コアに転換すべくこれらのデータを狭められたバス幅に多重化する。
【００４３】
このシフトアレイにより、逆変換演算の間における変換対象データ、１次元逆変換済みデータ、および２次元逆変換済みデータのビット精度および存在時間の相違を利用して効率的に共有することにより、記憶素子の個数およびこれらの記憶素子へのアクセス手段を減らすことができる。
【００４４】
本シフトアレイはまた、復号化パイプライン内のデータのバッファリングのための効率的な手段として役立ち、データを求めて外部メモリ装置にアクセスすることで計算スループットがより広範に変動するため、ハードウェア・アクセラレーション・コアの計算リソースのより高度な利用が可能になる。シフトアレイのシリコン領域サイズが小さいことはまた、シリコンに対して１回以上のシフトアレイを実行可能として、ＳＤＴＶおよびＨＤＴＶ解像度等の高性能ビデオ復号システム用に十分なスループットを実現できるバッファリング容量を向上させることができる。
【産業上の利用可能性】
【００４５】
本発明は、２次元逆変換装置に利用することができる。
【図面の簡単な説明】
【００４６】
【図１】ビデオ復号システムで一般に用いられる従来の逆変換装置のブロック図である。
【図２】データ格納手段として１個のｎ×ｎシフトアレイを用いる２次元逆変換演算のタイミングを示す図である。
【図３】１個のｎ×ｎシフトアレイの場合と比較して、データ格納手段として２個のｎ×ｎシフトアレイを用いる場合の復号化スループットの増加を示す図である。
【図４】本発明のデータ格納手段を用いて２回の１次元逆変換計算を経て２次元逆変換を実行する装置を示す図である。
【図５】各々のビットプレーンがｎ×ｎ記憶素子からなる、Ｍ＋Ｎ個のビットプレーンからなる１個のシフトアレイの構造編成を示す図である。
【図６】ビデオ復号パイプライン内の先行ハードウェア・アクセラレーション・コアから連続的に入力された変換対象データを、Ｎ個のビットプレーン内のｎ×ｎアレイの対応する記憶素子に格納する手段を示す図である。
【図７】記憶素子の１行から、ｎ×ｎアレイのＮ＋Ｍ個のビットプレーン内で一つ上の行へデータを移送する手段を示す図である。
【図８】記憶素子の１列から、ｎ×ｎアレイのＮ＋ｘビットプレーン内で左隣の列へデータを移送する手段を示す図である。
【図９】ｎ×ｎアレイのＮ個のビットプレーン内の後続ハードウェア・アクセラレーション・コアへ、２次元逆変換済みデータを行単位に出力する手段を示す図である。
【図１０】ｎ×ｎアレイのＮ個のビットプレーン内の後続ハードウェア・アクセラレーション・コアへ、２次元逆変換済みデータを列単位に出力する手段を示す図である。
【符号の説明】
【００４７】
１００  入力バッファ
１０１  １次元逆変換計算手段
１０２  中間データバッファ
１０３  １次元逆計算
１０４  出力バッファ
４００  データ格納手段のｎ×ｎシフトアレイ
４０１  変換対象データ
４０２  アドレス指定手段
４０３  入力アレイ選択手段
４０４  入力アレイモード指定手段
４０５  計算アレイ選択手段
４０６  １次元逆変換計算手段
４０７  計算アレイモード指定手段
４０８  ｎ行のデータ
４０９  ｎ行の１次元逆変換済みデータ
４１０  ｎ列の１次元逆変換済みデータ
４１１  ｎ列の２次元逆変換済みデータ
４１２  出力アレイ選択手段
４１３  出力モード指定手段
４１４  ２次元逆変換済みデータ
５００  Ｍ＋Ｎ個のビットプレーン
５０１  １個のビットプレーン
５０２  Ｍ個のビットプレーン
５０３  Ｎ個のビットプレーン
５０４  Ｎ＋ｘ個のビットプレーン
６００  変換対象データ
６０１  記憶素子
６０２  アドレス指定手段
６０３  通知手段
７００  データ移送手段
７０１  アレイ最上位行
７０２  アレイ最下位行
８００  データ移送手段
８０１  最左端列
８０２  最右端列
９００  ２次元逆変換済みデータ
９０１  データ多重化手段
９０２  データバス
１０００  ２次元逆変換済みデータ
１００１  データ多重化手段
１００２  データバス
【図１】
2006293693.tif 000003
【図２】
2006293693.tif 000004
【図３】
2006293693.tif 000005
【図４】
2006293693.tif 000006
【図５】
2006293693.tif 000007
【図６】
2006293693.tif 000008
【図７】
2006293693.tif 000009
【図８】
2006293693.tif 000010
【図９】
2006293693.tif 000011
【図１０】
2006293693.tif 000012