(57)【要約】  ４バイト１ａ〜１ｄを含む３２ビットなどの値からデータを抽出するため、ビットプレーン抽出処理を有するプログラマブルデータ処理装置が記載される。各バイト１ａ〜１ｄは、８ビット（それぞれａ０〜ａ７、ｂ０〜ｂ７、ｃ０〜ｃ７及びｄ０〜ｄ７）を有する。ビットプレーン抽出処理は、引数により示される第２ビット（ａ１，ｂ１，ｃ１，ｄ１）などの上記バイトのそれぞれから１つのビットを選択的に抽出する。当該処理は、ビット（ａ１，ｂ１，ｃ１，ｄ１）を連結し、結果値５を返すことを伴う。データ処理の適用に応じて、この結果値は結果値７を提供するためビット反転されるかもしれない（例えば、ビット反転がエンディアンスを処理するため、又は他の理由のため必要とされる場合）。ビットプレーン抽出処理は、映像データの処理における「ＳＡＤ」などのデータ処理演算における前処理演算として利用可能である。
2008502975.tif 000002
【特許請求の範囲】
【請求項１】
各データ要素が複数のデータビットを有する複数のデータ要素を有するパックドデータビットに対してビットプレーン抽出処理を実行するタスクを含むデータ処理のためのプログラマブルデータ処理装置であって、
前記データ要素のそれぞれからデータビットを選択的に抽出する抽出手段と、
結果値を提供するため、前記抽出されたデータビットを連結する連結手段と、
を有し、
前記結果値は、当該プログラマブルデータ処理装置によりさらに処理される、
ことを特徴とする装置。
【請求項２】
請求項１記載の装置であって、
前記各データ要素からデータビットを選択的に抽出する抽出手段は、前記データ要素のそれぞれからあるデータビットを選択するよう構成される複数の乗算器を有することを特徴とする装置。
【請求項３】
請求項２記載の装置であって、
前記乗算器は、各レベルが所望のビットが選択されるまで各データ要素のビット数をｎからｎ／２に選択的に低減する複数のレベルにより構成されることを特徴とする装置。
【請求項４】
請求項１記載の装置であって、
前記抽出手段は、前記データ要素のそれぞれから複数のデータビットを選択するよう構成されることを特徴とする装置。
【請求項５】
請求項１乃至４何れか一項記載の装置であって、
各データ要素は、データバイトを有し、
当該装置は、前記複数のデータバイトのそれぞれから所定のデータビットを抽出するよう構成される、
ことを特徴とする装置。
【請求項６】
請求項１記載の装置であって、さらに、
当該プログラマブルデータ処理装置による以降の処理前に、前記結果値のデータビットの順序を反転するビット反転手段を有することを特徴とする装置。
【請求項７】
請求項６記載の装置であって、
前記ビット順序を反転するビット反転手段は、第１動作モードにおいて、前記結果値を構成する連結されたデータビットが、前記結果値の順序を変更することなく前記乗算器を通過し、第２動作モードにおいて、前記乗算器の通過中に、前記連結されたデータビットの順序が反転されるように構成される乗算器系列を有することを特徴とする装置。
【請求項８】
請求項７記載の装置であって、
前記動作モードは、パラメータによって制御され、これにより、前記ビット反転手段が、あるデータ処理の適用に応じて動的に制御されることが可能となることを特徴とする装置。
【請求項９】
請求項１記載の装置であって、さらに、
前記結果値を前の結果値と合成する手段を有することを特徴とする装置。
【請求項１０】
各データ要素が複数のデータビットを有する複数のデータ要素を有するパックドデータビットに対してプログラマブルデータ処理装置においてビットプレーン抽出処理を実行する方法であって、
各データ要素からデータビットを選択的に抽出する専用のハードウェア手段を設けるステップと、
前記プログラマブルデータ処理装置によるさらなる処理のため、結果値を提供するよう前記抽出されたデータビットを連結するステップと、
を有することを特徴とする方法。
【請求項１１】
請求項１０記載の方法であって、さらに、
前記連結されたデータビットの順序を選択的に反転するステップを有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルデータ処理装置に関し、より詳細には、映像データなどのデータを処理するためのビットプレーン抽出処理を有するプログラマブルデータ処理装置に関する。
【背景技術】
【０００２】
映像領域において、画素は典型的には１以上のデータバイトにより表される。例えば、ＭＰＥＧ映像符号化に使用されるデフォルトフォーマットでは、画素は、それのルミナンスコンポーネントを１バイトとしてセーブすることにより格納される。当該画素のクロミナンス部分は、２バイトとして格納されるが、これらの値は、同時に複数の画素に共有される。ルミナンス部分が考えられる場合、例えば、当該バイトは、８ビットから構成され、「ビットプレーン」と呼ばれる。
【０００３】
ＭＰＥＧ映像符号化の主要な部分は、ビットプレーンベースにより実行される際に大変効率的に計算可能な動き推定から構成される。ビットプレーンベースにより実行されるとき、「ＳＡＤ（Ｓｕｍ−ｏｆ−Ａｂｓｏｌｕｔｅ−Ｄｉｆｆｅｒｅｎｃｅｓ）」演算は、排他的論理和演算しか伴わず、その後に結果となる値のビットがカウントされる。これはしばしば、ＤＳＰプロセッサにおける単一の命令としてサポートされる。前処理ステップ中に、映像ストリームからビットプレーンが抽出される必要がある。このような前処理ステップは、例えば、４つのパックドバイト（ｐａｃｋｅｄ  ｂｙｔｅ）を含む３２ビットの値の各バイトから特定のビットを抽出することを伴うかもしれない。ビットプレーン抽出を実行するため、ソフトウェアにおける処理は、４ビットの結果値ｒを取得するため、以下の処理（擬似的なＣにより示される）を伴う。
【０００４】
結果ｒ＝ｂｐｅｘｔ（ｘ，ｙ）
ただし、
ｘ＝４つのパックドバイトを含む３２ビット値
ｙ＝抽出対象となるビットを参照する０〜７の整数
ビットプレーン抽出処理は、以下の処理を有するかもしれない。
【０００５】
【表１】
2008502975.tif 000003
ここで、上に示されるビットプレーン抽出処理が図１を参照してより詳細に説明される。まず、ステップ１０１において、抽出対象となるビットがすべて同じ位置となるように、値ｘがｙポジションだけシフトされる（すなわち、“ｙ”は抽出対象となるビットを表す数値である）。その後、ステップ１０３において、ＡＮＤ演算を利用して、１ビットが抽出される（例えば、第１ビットについて、ｔ０＆０ｘ０００００００１など）。第ｎビットが抽出されるまで（本例では、“ｎ”は４である）、その他のバイトから関連するビットを抽出するため、当該処理がステップ１０５から１０７まで繰り返される。ステップ１０９において、抽出されたビットは、ターゲットビット位置（終了結果のビットの最終的なポジションに対応する）にシフトされ、ステップ１１１において論理和がとられる。
【０００６】
画素データは、「ビッグエンディアン（ｂｉｇ  ｅｎｄｉａｎ）」形式又は「リトルエンディアン（ｌｉｔｔｌｅ  ｅｎｄｉａｎ）」形式により構成されてもよい。ビッグエンディアン形式では、バイトは最上位優先により構成され、リトルエンディアン形式では、バイトは最下位バイト優先により構成され、従って、画素データのエンディアンに応じて、又は他の理由のため、結果ビットを反転することが望ましいかもしれない。
【０００７】
ビット反転方法の一例が以下に示される。
【０００８】
【表２】
2008502975.tif 000004
上に示された命令コードは、各ビットを選択肢、それらを各自の反転位置にシフトするものであり、これにより、ビット０はビット３となり（（ｒ＆１）＜＜３）、ビット１はビット２となる（（ｒ＆２）＜＜１）などされ、これらのビットが再び論理和演算される。
【０００９】
上記例は、パックドデータから１つのビットのみを選択する方法を示していることに留意されたい。しかしながら、例えば、バイト又はデータ要素毎に２ビットを選択し、これらのビットを８ビットの結果値に連結するなど、複数のビットが抽出可能である。
【００１０】
プログラマブルデータプロセッサ上で上述したビットプレーン抽出処理を実行するため、ビットプレーン抽出処理は複数の（非専用的な）処理の実行を伴うことが理解されるであろう。これは、パフォーマンスと電力消費の２つの点に関する不都合を有する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従って、本発明の課題は、上述した不都合を有しないビットプレーン抽出処理を有するプログラマブルデータ処理装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の第１の特徴によると、各データ要素が複数のデータビットを有する複数のデータ要素を有するパックドデータビットに対してビットプレーン抽出処理を実行するタスクを含むデータ処理のためのプログラマブルデータ処理装置であって、
前記データ要素のそれぞれからデータビットを選択的に抽出する抽出手段と、
結果値を提供するため、前記抽出されたデータビットを連結する連結手段と、
を有し、
前記結果値は、当該プログラマブルデータ処理装置によりさらに処理される、
ことを特徴とする装置が提供される。
【００１３】
本発明の他の特徴によると、各データ要素が複数のデータビットを有する複数のデータ要素を有するパックドデータビットに対してプログラマブルデータ処理装置においてビットプレーン抽出処理を実行する方法であって、各データ要素からデータビットを選択的に抽出する専用のハードウェア手段を設けるステップと、前記プログラマブルデータ処理装置によるさらなる処理のため、結果値を提供するよう前記抽出されたデータビットを連結するステップとを有することを特徴とする方法が提供される。
【発明を実施するための最良の形態】
【００１４】
本発明によると、ビットプレーン抽出処理を実行するため、専用のハードウェアが設けられる。
【００１５】
図２ａを参照するに、４つのバイト又はデータ要素１ａ〜１ｄなどを含む３２パックドデータビットの値を考える。各バイト１ａ〜１ｄは、８ビット（それぞれａ０〜ａ７、ｂ０〜ｂ７、ｃ０〜ｃ７及びｄ０〜ｄ７）を有する。ビットプレーン抽出処理は、引数により示される第２ビット（ａ１，ｂ１，ｃ１，ｄ１）などの上記バイトのそれぞれから１つのビットを選択的に抽出する。当該処理は、ビット（ａ１，ｂ１，ｃ１，ｄ１）を連結し、４ビット結果値５（ｒ０と呼ばれる第１ビット、第２ビットｒ１などを有する）を返すことを伴う。処理されるデータがビット反転を必要としない場合、結果値５は、ｒ３＝ａ１、ｒ２＝ｂ１、ｒ１＝ｃ１、ｒ０＝ｄ１となる。
【００１６】
図２ｂは、結果がビット反転される必要がある場合、これにより抽出されるデータビットが結果値７において反転され、ｒ３＝ｄ１、ｒ２＝ｃ１、ｒ１＝ｂ１、ｒ０＝ａ１となる同様のビットプレーン抽出装置を示す。すなわち、図２ａに示される実施例では、ビットプレーン抽出処理は、結果値５にビット反転を提供せず、図２ｂでは、ビットプレーン抽出処理は、結果値７にビット反転を提供する。
【００１７】
上に示されるように、ビット反転されない結果値（すなわち、図２ａに示されるような）、又はビット反転される結果値（図２ｂに示されるような）を提供するようハードウェアを構成することが可能である。上述のように、結果のビット反転は、いくつかの理由のため実行することが可能であり、そのうちの１つはエンディアンを扱うためであるかもしれない。
【００１８】
あるいは、結果を通常又はビット反転形式により選択的に提供するようハードウェアを構成することが可能である。例えば、ビット反転はパラメータとして設定可能であり、これにより、装置はその適用において以降に説明されるように、結果５又はビット反転された結果７を返すことが可能である。パラメータは、結果のビット反転が特定の適用について要求されているか否かに応じて、ソフトウェアにより制御されてもよいし、あるいは、ハードウェアにおいて予め構成されてもよい。
【００１９】
図３は、ビットプレーン抽出処理が低コストによりハードウェアによりどのように実現可能であるかより詳細に示す。例えば、この処理は、単なる３レベルの深さの乗算器により完全に実現可能である。
【００２０】
図３において、参照を容易にするため、図２ａ及び２ｂに示されるバイトの１つ（１ａ）からビットを抽出する乗算器構成が示される。その他のバイトのそれぞれについて、同様の構成が提供される。乗算器の第１レベル３１は８ビットを４ビットに減らし（すなわち、ｎからｎ／２）、乗算器の第２レベル３３はこれら４ビットを２ビットに減らし、第３レベルの乗算器３５がこれら２ビットを１ビットに減らす。このようにして、ビットａ７〜ａ０から何れかのビットａｙが抽出可能である。同様にして、バイト１ｂからビットｂｙを、バイト１ｃからビットｃｙを、バイト１ｄからビットｄｙを抽出するのに乗算器を使用することが可能である。
【００２１】
図４は、両方の選択肢を処理するためにハードウェアを設けることによって、結果のビット反転を処理する方法を示す。図４において、抽出されたビットａｙ、ｂｙ、ｃｙ及びｄｙが、乗算器４１ａ〜４１ｄのセットにわたされる。この結果値は、ビット反転の要否に応じて、制御信号“ｃ”により制御可能である。
【００２２】
図５において、乗算器４１ａの１つがより詳細に示される。制御信号“ｃ”がハイに設定されると、抽出されたビットａｙ、ｂｙ、ｃｙ及びｄｙは、ｒ３＝ｄｙ、ｒ２＝ｃｙ、ｒ１＝ｂｙ及びｒ０＝ａｙとなるように反転され、これにより、結果値７が構成される。このようにして、例えば、エンディアンについて訂正するためなど、所望されるときにビット反転を提供するため、さらなるハードウェア及びパラメータ“ｃ”を利用することが可能である。
【００２３】
上述されるように、パラメータ“ｃ”は、特定のデータ処理の適用に応じて、ソフトウェアにより制御可能であり（従って、ビット反転が動的に制御可能である）、あるいはハードウェアにより設定することも可能である。
【００２４】
上述した本発明が従来技術より効率的なビットプレーン抽出処理及び装置を提供することは理解されるであろう。パフォーマンスの向上に加えて、ビットプレーン抽出方法及び装置はまた、従来技術により実行される処理より少ない電力しか消費しない。
【００２５】
実際的には、複数の結果が単一の３２ビット値に合成される。例えば、１つの結果が４ビットに対応する場合、８つの結果が３２ビットに合成可能である。このとき、このような値の２つの間のＳＡＤは、２つの３２ビット値の排他的論理和をとり、結果の“１”のビットをカウントすることにより計算することが可能である。従来技術によると、結果の合成は前の結果のシフトと、現在の結果をこの値に論理和することを伴うであろう。
【００２６】
ソフトウェアを利用して、これは以下の処理を伴う。
【００２７】
【表３】
2008502975.tif 000005
ただし、
ｘ：４つのパックドバイトを含む３２ビット値
ｙ：抽出対象となるビットを参照する０〜７の整数
ｚ：前の結果を含む３２ビット値
しかしながら、本発明の他の特徴によると、図６は、当該処理が上述したソフトウェアを利用するのではなく、１つの処理を利用してハードウェアにより実行されることを可能にする構成を示す。
【００２８】
上述した本発明は、ＳＡＤ演算の前処理ステップにおいて利用可能なビットプレーン抽出手段を有するプログラマブルデータ処理装置を提供する。しかしながら、本発明は、この利用に限定されるものでないということが留意され、ビットプレーン抽出処理が、１以上のビットが複数バイトから抽出される必要がある他のデータ処理演算に利用可能であるということは理解されるであろう。さらに、このデータビットは、例えば、画像データがコンポーネント毎に１２ビットにより表される場合、必ずしも異なるバイトから抽出される必要はない。
【００２９】
本発明が４ビットを抽出することに関して説明されたが、６４ビットなどより広いデータパスによるプロセッサについて、当該命令が一度に８ビットを抽出するよう拡張可能であるということに留意されたい。
【００３０】
また、好適な実施例はいくつかの乗算器の使用を示しているが、同一の機能を提供する他の論理回路もまた利用可能であるということは理解されるであろう。
【００３１】
また、上述の実施例は本発明を限定するものでなく、説明するためのものであり、当業者は添付した請求項により規定されるような本発明の範囲から逸脱することなく、他の多数の実施例を構成可能であるということに留意すべきである。請求項において、括弧内に置かれる参照記号は、請求項を限定するものとして解釈されるべきでない。「有する」などの用語は、請求項又は明細書全体に列挙された以外の要素又はステップの存在を排除するものでない。要素の単数形による表現は、そのような要素の複数形による表現を排除するものでなく、その反対も同様である。本発明は、複数の要素を有するハードウェアを利用して、また適切にプログラムされたコンピュータを利用して実現可能である。複数の手段を列挙した請求項では、これらの手段のいくつかは１つの同一のハードウェアアイテムにより実現されるかもしれない。ある手段が互いに異なる従属クレームに記載されているという事実は、これらの手段の組み合わせが効果的に利用可能でないことを示すものではない。
【図面の簡単な説明】
【００３２】
【図１】図１は、従来技術によるビットプレーン抽出処理を示す。
【図２】図２ａ及び２ｂは、本発明によるそれぞれ結果をビット反転する、又はしないビットプレーン抽出処理を示す。
【図３】図３は、図１のビットプレーン抽出処理が乗算器を利用してハードウェアによりどのように実現できるかの一例を示す。
【図４】図４は、結果をビット反転する本発明のさらなる特徴を示す。
【図５】図５は、図４の乗算器のさらなる詳細を示す。
【図６】図６は、本発明のさらなる特徴を示す。
【図１】
2008502975.tif 000006
【図２ａ】
2008502975.tif 000007
【図２ｂ】
2008502975.tif 000008
【図３】
2008502975.tif 000009
【図４】
2008502975.tif 000010
【図５】
2008502975.tif 000011
【図６】
2008502975.tif 000012
【国際調査報告】
2008502975.tif 000013
2008502975.tif 000014