(57)【要約】【課題】バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換するフォーマット変換装置に関する。【解決手段】バンドインターリーブ形式の映像データを保存するメモリと、前記メモリの読み出しアドレスをストライドずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部とを含むフォーマット変換装置を提供する。【選択図】図３
2008167394.tif 000002
【特許請求の範囲】
【請求項１】
バンドインターリーブ形式の映像データを保存するメモリと、
前記メモリの読み出しアドレスをストライドずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部と、
を含むことを特徴とするフォーマット変換装置。
【請求項２】
前記メモリの読み出しアドレスを前記ストライドずつ増加させて読み出された前記バンドインターリーブ形式の前記映像データは、同一類型の映像データ要素であることを特徴とする請求項１に記載のフォーマット変換装置。
【請求項３】
前記変換部は、
ベースアドレスおよび前記ベースアドレスをＮ−１回前記ストライドずつ増加させて順次にＮ個のアドレスを生成するメモリ制御器、
を含むことを特徴とする請求項１に記載のフォーマット変換装置。
【請求項４】
前記メモリ制御器は、
前記ベースアドレスの入力を受けて保存するラッチ、
を含むことを特徴とする請求項３に記載のフォーマット変換装置。
【請求項５】
前記メモリ制御器は、
クロックサイクルごとに前記ラッチに保存された前記ベースアドレスに前記ストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする請求項４に記載のフォーマット変換装置。
【請求項６】
前記変換部は、
前記メモリからＮ回読み出されたデータのそれぞれを保存するＮ個のレジスタを含むレジスタファイル、
をさらに含み、
前記レジスタファイルに保存されたデータは、前記バンド分割形式の映像データであることを特徴とする請求項１に記載のフォーマット変換装置。
【請求項７】
前記保存されたレジスタデータをＮ分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項６に記載のフォーマット変換装置。
【請求項８】
バンドインターリーブ形式の映像データを保存するメモリと、
クロックサイクルごとに前記メモリの読み出しアドレスをベースアドレスからストライドずつ増加させて前記メモリに印加するメモリ制御器と、
を含むことを特徴とするフォーマット変換装置。
【請求項９】
前記読み出しアドレスの印加によって順次に読み出された前記Ｎ個のイメージデータは、同一類型の映像データ要素であることを特徴とする請求項８に記載のフォーマット変換装置。
【請求項１０】
前記読み出しアドレスの印加によって順次に読み出されたＮ個のイメージデータのそれぞれを保存するＮ個のレジスタを含むレジスタファイル、
をさらに含むことを特徴とする請求項８に記載のフォーマット変換装置。
【請求項１１】
前記保存されたレジスタデータは、バンド分割形式であることを特徴とする請求項１０に記載のフォーマット変換装置。
【請求項１２】
前記保存されたレジスタデータをＮ分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項１０に記載のフォーマット変換装置。
【請求項１３】
バンドインターリーブ形式の映像データを保存するメモリと、
前記メモリから複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する変換部と、
を含むことを特徴とするフォーマット変換装置。
【請求項１４】
前記変換部は、
前記メモリから前記複数の映像データ要素を読み出す読み出しアドレスを生成して前記メモリに印加するアドレス生成器と、
前記読み出しアドレスの印加によって読み出された前記複数の映像データ要素を保存する複数のレジスタを含むレジスタファイルと、
を含むことを特徴とする請求項１３に記載のフォーマット変換装置。
【請求項１５】
前記アドレス生成器は、
ベースアドレスの入力を受けてベースアドレスを保存するラッチ、
をさらに含み、
前記ラッチに保存された前記ベースアドレスにストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする請求項１３に記載のフォーマット変換装置。
【請求項１６】
前記変換部は、
前記レジスタファイルのうち前記映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルして前記複数の映像データ要素を前記複数のレジスタに保存するＳＩＭＤパッカー、
をさらに含むことを特徴とする請求項１４に記載のフォーマット変換装置。
【請求項１７】
前記複数のレジスタに保存された前記複数の映像データ要素をＮ分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項１６に記載のフォーマット変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像処理装置および方法に関し、より詳細には、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換するフォーマット変換装置および方法に関する。
【背景技術】
【０００２】
図１は、バンドインターリーブ形式（band interleave format）で保存された映像データを示した図である。デジタルカメラ、デジタルカムコーダなどで撮像されたデジタル映像データは、通常、図１に示すようなバンドインターリーブ形式で映像バッファ（image buffer）またはメモリに保存される。また、パソコンに保存される多くの映像データもバンドインターリーブ形式で保存される。１つのピクセルの色は、赤（Red）、緑（Green）、青（Blue）の結合で表現される。図１において、１つのピクセルに対する色は、赤（Red）、緑（Green）、青（Blue）の各８ビットずつ、計２４ビットで指定される。バンドインターリーブ形式は、カラーバンド（color band）が互いに混ざっている形式である。図１に示されたバンドインターリーブ形式は、赤、緑、青のそれぞれを示すデータが集まっておらず、ＲＧＢＲＧＢなどとしてカラーバンドが互いに混ざっている。これとは異なり、カラーバンドに従ってデータが分離している形式をバンド分割形式（band separate format）と言う。例えば、Ｎ個ずつの同一カラーバンドのデータを集めることができ、ＲはＲどうし、ＧはＧどうし、ＢはＢどうし集めておく形式である。この場合、データは、ＲＲ…ＲＧＧ…ＧＢＢ…Ｂなどの形式で保存されるようになる。このとき、４個ずつの同一カラーバンドデータを集めれば、ＲＲＲＲＧＧＧＧＢＢＢＢＲＲＲＲＧＧＧＧＢＢＢＢのように表示される。ＲＧＢデータだけではなくＹＣｂＣｒ形式のような他の形式の映像データも、同じようにバンドインターリーブ形式およびバンド分割形式が可能である。
【０００３】
しかし、このような映像データの処理においては、互いに異なるピクセル間の同一カラーバンドデータどうしの演算や、互いに異なる映像フレームの対応ピクセル間の同一カラーバンドデータどうしの演算が極めて多い。したがって、映像データの処理において、バンドインターリーブ形式よりはバンド分割形式の方が演算の効率性が極めて高い。
【特許文献１】日本公開特許第２０００−０６９４７８号公報
【特許文献２】日本公開特許第２００３−１１０８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法を提供することを目的とする。
また、本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ＡＬＵ（演算処理）をＮ分割してＳＩＭＤ（Single Instruction Multiple Data）方式で処理することによって、映像処理の効率性を高めることを目的とする。
【課題を解決するための手段】
【０００５】
発明１は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリの読み出しアドレス（read address）をストライド（stride）ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置（format converter）を提供する。
【０００６】
発明２は、発明１において、前記メモリの読み出しアドレスを前記ストライドずつ増加させて読み出された前記バンドインターリーブ形式の前記映像データは、同一類型の映像データ要素（image data component）であることを特徴とする。
発明３は、発明１において、前記変換部は、ベースアドレスおよび前記ベースアドレスをＮ−１回前記ストライドずつ増加させて順次にＮ個のアドレスを生成するメモリ制御器（memory controller）、を含むことを特徴とする。
【０００７】
発明４は、発明３において、前記メモリ制御器は、前記ベースアドレスの入力を受けて保存するラッチ（latch）、を含むことを特徴とする。
発明５は、発明４において、前記メモリ制御器は、クロックサイクルごとに前記ラッチに保存された前記ベースアドレスに前記ストライドを合算した値を前記メモリのアドレスライン（address line）に出力し、前記合算した値を前記ラッチに保存することを特徴とする。
【０００８】
発明６は、発明１において、前記変換部は、前記メモリからＮ回読み出されたデータのそれぞれを保存するＮ個のレジスタを含むレジスタファイル、をさらに含み、前記レジスタファイルに保存されたデータは、前記バンド分割形式の映像データであることを特徴とする。
発明７は、発明６において、前記保存されたレジスタデータをＮ分割された演算装置（N partitioned ALU）に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
【０００９】
発明８は、バンドインターリーブ形式の映像データを保存するメモリと、クロックサイクルごとに前記メモリの読み出しアドレスをベースアドレスからストライドずつ増加させて前記メモリに印加するメモリ制御器と、を含むことを特徴とするフォーマット変換装置を提供する。
発明９は、発明８において、前記読み出しアドレスの印加によって順次に読み出された前記Ｎ個のイメージデータは、同一類型の映像データ要素であることを特徴とする。
【００１０】
発明１０は、発明８において、前記読み出しアドレスの印加によって順次に読み出されたＮ個のイメージデータのそれぞれを保存するＮ個のレジスタを含むレジスタファイル、をさらに含むことを特徴とする。
発明１１は、発明１０において、前記保存されたレジスタデータは、バンド分割形式であることを特徴とする置。
【００１１】
発明１２は、発明１０において、前記保存されたレジスタデータをＮ分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
発明１３は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリから複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置を提供する。
【００１２】
発明１４は、発明１３において、前記変換部は、前記メモリから前記複数の映像データ要素を読み出す読み出しアドレスを生成して前記メモリに印加するアドレス生成器と、前記読み出しアドレスの印加によって読み出された前記複数の映像データ要素を保存する複数のレジスタを含むレジスタファイルと、を含むことを特徴とする。
発明１５は、発明１３において、前記アドレス生成器は、ベースアドレスの入力を受けてベースアドレスを保存するラッチ、をさらに含み、前記ラッチに保存された前記ベースアドレスにストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする。
【００１３】
発明１６は、発明１４において、前記変換部は、前記レジスタファイルのうち前記映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルして前記複数の映像データ要素を前記複数のレジスタに保存するＳＩＭＤパッカー（packer）、をさらに含むことを特徴とする。
発明１７は、発明１６において、前記複数のレジスタに保存された前記複数の映像データ要素をＮ分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
【発明の効果】
【００１４】
このように、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法が提供される。
また、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ＡＬＵをＮ分割してＳＩＭＤ方式で処理することによって、映像処理の効率性を高めることができる。
【発明を実施するための最良の形態】
【００１５】
以下、添付の図面に基づき、本発明の好適な実施の形態を詳細に説明するが、本発明がこれらの実施形態によって制限または限定されることはない。図中、同じ参照符号は同じ部材を示す。
図２は、本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することについて説明するための図である。
【００１６】
図２の映像データ２１０は、バンドインターリーブ形式で保存されている。すなわち、映像データ２１０は、Ｒ、Ｇ、Ｂの各カラーバンドが集まっておらず、混ざっていることが分かる。一方、映像データ２２０は、バンド分割形式で保存されている。映像データ２２０は、Ｒ、Ｇ、Ｂの各カラーバンド別にデータが分離されている。すなわち、ｋ個のＲデータ、ｋ個のＧデータ、ｋ個のＢデータが集まっている。バンドインターリーブ形式の映像データ２１０をバンド分割形式の映像データ２２０に変換するためには、バンドインターリーブ形式の映像データ２１０から同一のカラーバンドのデータのみを抽出し、図２に示すようにｋ個（図２の場合、ｋ＝４）ずつ繋げて保存する。
【００１７】
図３を参照して、本発明の一実施形態に係るフォーマット変換装置について詳しく説明する。
図３に示すように、本発明に係るフォーマット変換装置は、バンドインターリーブ形式の映像データを保存するメモリ３１０と、前記バンドインターリーブ形式の映像データをバンド分割形式に変換する変換部とを含む。
【００１８】
メモリ３１０は、バンドインターリーブ形式の映像データを保存している。例えば、本発明がデジタルカメラに適用される場合、デジタルカメラは、撮像された映像データをバンドインターリーブ形式でメモリ３１０に保存する。バンドインターリーブ形式については、前述した通りである。
変換部は、前記メモリの読み出しアドレスをストライド（stride）ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する。変換部は、メモリ制御器３２０と、レジスタファイル３３０とを含む。
【００１９】
メモリ制御器３２０は、クロックサイクルごとにメモリ３１０の読み出しアドレスをベースアドレスからストライドずつ増加させてメモリに印加するＡＧＵ（アドレス生成器）を含む。すなわち、メモリ制御器３２０は、ベースアドレスおよび前記ベースアドレスをＮ−１回ストライドずつ増加させて、順次にＮ個のアドレスを生成してメモリ３１０に印加する。
【００２０】
例えば、図２の映像データ２１０がメモリ３１０に保存されていて、映像データ要素のそれぞれが１６ビットのサイズを有するものと仮定する。そうすれば、図２において、Ｒ０、Ｇ０、Ｂ０、Ｒ１、Ｇ１、Ｂ１などはそれぞれ１６ビットのサイズを有する。さらに、Ｒ０が保存されたアドレスを「０」と仮定する。そうすれば、メモリ制御器３２０は、ベース入力３２１を介してベースアドレスである「０」が入力される。また、Ｒ０の次の同一類型の映像データ要素はＲ１であるが、Ｒ１のアドレスは「４８」であるため、ストライド入力３２３としては「４８」が入力される。
【００２１】
そうすれば、メモリ制御器３２０は、ベースアドレスおよび前記ベースアドレスをＮ−１回前記ストライドずつ増加させて順次にＮ個のアドレスを生成してメモリ３１０に印加する。Ｎは、同一の類型の映像データ要素を何個ずつグルーピングするのかに関する数である。
例えば、本実施形態において、Ｎ＝４個ずつの同一類型の映像データ要素を束ねてバンド分割形式の映像データを生成するとする。前記ベース入力３２１およびストライド入力３２３が入力された後の一番目のクロックサイクルにおいて、ベース入力３２１から入力されたベースアドレスをメモリ３１０のアドレス入力ライン３２７を介してメモリ３１０に印加する。そうすれば、ベースアドレスである「０」に該当するＲ０の１６ビットデータが読み出されてメモリ３１０のデータライン３１１に出力される。前記データライン３１１は、データライン３１３、３１５、３１７、３１９に分岐し、それぞれレジスタファイル３３０のレジスタ３３１、レジスタ３３３、レジスタ３３５、レジスタ３３７に連結する。このとき、メモリ制御器３２０は、Ｗ／Ｅ（Write Enable）ライン３２５を介してレジスタファイル３３０のレジスタ３３１のみを選択してイネーブルさせる。そうすれば、データライン３１３、３１５、３１７、３１９を介したＲ０の１６ビットデータは、レジスタ３３１にのみ記録される。
【００２２】
次に、ベース入力３２１およびストライド入力３２３として追加の入力がなくても、メモリ制御器３２０は、自動的に次のクロックサイクルにおいて、ベースアドレスである「０」をストライドである「４８」だけ増加させた「４８」のアドレス値をアドレス入力ライン３２７を介してメモリ３１０に印加し、レジスタ３３３のみをＷ／Ｅライン３２５を介してイネーブルさせる。そうすれば、アドレス「４８」によって読み出されたＲ１の１６ビットデータがメモリ３１０のデータライン３１１に出力される。前記データライン３１１は、データライン３１３、３１５、３１７、３１９に分岐し、それぞれレジスタファイル３３０のレジスタ３３１、レジスタ３３３、レジスタ３３５、レジスタ３３７に連結する。このとき、Ｗ／Ｅライン３２５を介してレジスタファイル３３０のレジスタ３３３のみがイネーブルされているため、Ｒ１の１６ビットデータはレジスタ３３３に記録される。
【００２３】
その次に、メモリ制御器３２０は、次のクロックサイクルにおいて、アドレス値「４８」をストライドである「４８」だけ増加させた「９６」のアドレス値をアドレス入力ライン３２７を介してメモリ３１０に印加し、レジスタ３３５のみをＷ／Ｅライン３２５を介してイネーブルさせる。そうすれば、アドレス「９６」によって読み出されたＲ２の１６ビットデータがレジスタ３３５に記録される。
【００２４】
同じように、メモリ制御器３２０は、次のクロックサイクルにおいて、アドレス値「９６」をストライドである「４８」だけ増加させた「１４４」のアドレス値をアドレス入力ライン３２７を介してメモリ３１０に印加し、レジスタ３３７のみをＷ／Ｅライン３２５を介してイネーブルさせる。そうすれば、アドレス「１４４」によって読み出されたＲ３の１６ビットデータがレジスタ３３７に記録される。
【００２５】
このようにして、図２のバンドインターリーブ形式で保存されたＲ０、Ｒ１、Ｒ２、Ｒ３のデータは、図２の図面符号２２０のようにバンド分割形式でレジスタ３３１、３３３、３３５、３３７に保存されるようになる。このように、メモリ３１０の読み出しアドレスをストライドずつ増加させて読み出されたデータは、同一類型の映像データ要素である。すなわち、「Ｒ」という映像データ要素をメモリ３１０から読み出せば、ストライドを増加させてメモリ３１０から読み出されるデータも「Ｒ」という同一類型の映像データ要素である。仮に、「Ｇ」という映像データ要素をメモリ３１０から読み出せば、ストライドを増加させてメモリ３１０から読み出されるデータも「Ｇ」という同一類型の映像データ要素である。
【００２６】
その次に、ベース入力３２１を「１６」としてストライド入力３２３を「４８」とすれば、Ｇ０、Ｇ１、Ｇ２、Ｇ３がグルーピングされ、ベース入力３２１を「３２」としてストライド入力３２３を「４８」とすれば、Ｂ０、Ｂ１、Ｂ２、Ｂ３がグルーピングされる。
レジスタファイル３３０は、複数のレジスタで構成される。レジスタファイル３３０のＮ個のレジスタのそれぞれは、メモリ３１０からＮ回読み出されたデータのそれぞれを保存する。レジスタファイル３３０に保存されたデータは、バンド分割形式の映像データである。
【００２７】
本実施形態において、ベース入力３２１およびストライド入力３２３を１度のみ行っても、メモリ制御器３２０は自動的にＮ個のアドレスを生成してメモリ３１０に印加するが、本発明はこれに限定されるものではない。
本発明のさらに他の実施形態によれば、ストライド入力３２３として、グルーピングする映像データ要素の間隔のみの入力を受けることもできる。すなわち、上述した例において、ベース入力３２１を介してベースアドレスである「０」が入力され、ストライド入力３２３として「３」が入力される。本実施形態において、メモリ制御器３２０は、予め定義された規則に従ってストライド入力３２３に基づいて次のアドレスを生成できる。例えば、本実施形態において、メモリ制御器３２０は、ストライド入力に１つの映像データ要素のサイズである「１６」を乗算し、アドレス生成時に必要な実際のストライドを計算する。そうすれば、ストライド入力３２３として「３」が入力されたとき、実際のストライドはストライド入力「３」に予め定義された「１６」の値を乗算（３×１６＝４８）して生成される。メモリ制御器３２０は、ストライド入力３２３として「３」が入力されたとき、一番目のクロックサイクルにおいてアドレス「０」をアドレスライン３２７に出力し、その次のクロックサイクルにおいてアドレス「４８」をアドレスライン３２７に出力する。アドレス「４８」は、ストライド入力３２３に前記計算された実際のストライドを加算した値である。
【００２８】
制御器（図示せず）は、前記Ｎ個のレジスタ３３１、３３３、３３５、３３７に保存されたデータをＮ分割された演算装置３４０に同時に入力して演算を行う。例えば、演算装置３４０は、６４ビットの演算を行うＡＬＵであるが、１６ビットの演算を行う場合にも１クロックサイクルを消耗しなければならない。このような演算装置に１６ビットのデータ４個を同時に入力して演算を行えば、４倍の処理量（throughput）を出すようになる。図３において、６４ビットの演算装置３４０は４分割された演算装置として用いられ、４個の１６ビットレジスタ値が入力されて演算を行う。これについては、図７を参照してより詳細に後述する。
【００２９】
図４は、本発明の一実施形態によって、メモリ制御器３２０に含まれるアドレス生成器を示した図である。アドレス生成器４００は、マルチプレクサ（ＭＵＸ）４１０と、ラッチ４２０、４３０と、ＡＬＵ４４０とで構成される。
ストライド入力４２３を介して入力されたストライドは、ラッチ４３０に保存される。仮に、ストライド入力４２３を介して入力された値をすぐにストライドとして用いずに、ストライド入力４２３を介して計算された値がストライドとして用いられれば、ストライド入力４２３から実際に用いるストライドを計算するモジュールがストライド入力４２３とラッチ４３０との間に配置される。
【００３０】
ベース入力４２１およびＡＬＵ４４０の出力４４１は、マルチプレクサ（multiplexer）４１０に入力される。マルチプレクサ４１０は、Ｎ個のアドレス生成のうち一番目はベース入力４２１を選択し、残りはＡＬＵ４４０の出力４４１を選択してラッチ４２０に出力する。すなわち、クロックサイクルごとに、ラッチ４２０に保存されたベースアドレスにストライドを合算した値を、前記メモリ３１０のアドレスライン３２７、つまり図４のアドレスライン４４７に出力し、前記合算した値を前記ラッチ４２０に保存する。
【００３１】
例えば、図２の映像データ２１０がメモリ３１０に保存されていて、映像データ要素のそれぞれは１６ビットのサイズを有するものと仮定する。そうすれば、図２において、Ｒ０、Ｇ０、Ｂ０、Ｒ１、Ｇ１、Ｂ１などはそれぞれ１６ビットのサイズを有する。さらに、Ｒ０が保存されたアドレスを「０」と仮定する。そうすれば、アドレス生成器４００は、ベース入力４２１を介してベースアドレスである「０」が入力される。また、Ｒ０の次の同一類型の映像データ要素はＲ１であるが、Ｒ１のアドレスは「４８」であるため、ストライド入力４２３としては「４８」が入力される。
【００３２】
本実施形態において、Ｎ＝４個ずつの同一類型の映像データ要素を束ねてバンド分割形式の映像データを生成すれば、前記ベース入力４２１およびストライド入力４２３が入力された後、一番目のクロックサイクルにおいて、マルチプレクサ４１０はベース入力４２１を選択してラッチ４２０に出力し、ベース入力４２１として入力された値はラッチ４２０に保存される。このように、ラッチ４２０は、ベース入力４２１から入力されたベースアドレスをマルチプレクサ４１０を介して入力され、前記入力されたベースアドレスを保存する。また、ストライド入力４２３はラッチ４３０に保存される。また、ラッチ４２０に保存された値は、メモリ３１０のアドレス４４７に出力される。
【００３３】
次のクロックサイクルにおいて、ラッチ４２０に保存されたベース値「０」とラッチ４３０に保存されたストライド「４８」は、ＡＬＵ４４０の入力４４３、４４５として入力される。ＡＬＵ４４０は、入力された値を加算して次のアドレス「４８」を生成してメモリ３１０のアドレス４４７および出力ライン４４１に出力する。出力ライン４４１はマルチプレクサ４１０によって選択され、ラッチ４２０には「４８」が保存される。
【００３４】
次のクロックサイクルにおいて、ラッチ４２０に保存されたベース値「４８」とラッチ４３０に保存されたストライド「４８」は、ＡＬＵ４４０の入力４４３、４４５として入力される。ＡＬＵ４４０は、入力された値を加算して次のアドレス「９６」を生成してメモリ３１０のアドレス４４７および出力ライン４４１に出力する。出力ライン４４１はマルチプレクサ４１０によって選択され、ラッチ４２０には「９６」が保存される。
【００３５】
次のクロックサイクルにおいて、ラッチ４２０に保存されたベース値「９６」とラッチ４３０に保存されたストライド「４８」は、ＡＬＵ４４０の入力４４３、４４５として入力される。ＡＬＵ４４０は、入力された値を加算して次のアドレス「１４４」を生成してメモリ３１０のアドレス４４７および出力ライン４４１に出力する。出力ライン４４１はマルチプレクサ４１０によって選択され、ラッチ４２０には「１４４」が保存される。Ｎ＝４であり、４個のアドレスをすべて生成して出力したため、アドレス生成器４００はベース入力４２１およびストライド入力４２３から新しい値が入力され、再び４個のアドレスを生成するという手順を繰り返す。
【００３６】
図５は、本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。図５に示されたフォーマット変換装置は、メモリ５１０と、変換部とを含む。
メモリ５１０は、バンドインターリーブ形式の映像データを保存する。変換部は、メモリ５１０から複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する。変換部は、メモリ制御器５２０と、レジスタファイル５３０とを含む。
【００３７】
メモリ制御器５２０は、ＡＧＵ（アドレス生成器）５５０と、ＳＩＭＤパッカー５６０とを含む。
アドレス生成器５５０は、メモリ５１０から複数の映像データ要素を読み出す読み出しアドレス５２７を生成してメモリ５１０に印加する。本実施形態においては、メモリ５１０に対する接触回数を減らすために、１度の読み出しアドレス５２７の印加によって複数の映像データ要素を読み出す。例えば、図１を参照して、１つの映像データ要素が１６ビットである場合、アドレス「０」を印加して計６４ビットであるＲ０、Ｇ０、Ｂ０、Ｒ１を読み出す。この場合、ストライド５２３は６４となる。その次には再び計６４ビットであるＧ１、Ｂ１、Ｒ２、Ｇ２が読み出される。仮に、８個の映像データ要素を１度に読み出そうとすれば、ストライド５２３を１２８とすれば良い。
【００３８】
アドレス生成器５５０はベースアドレス５２１の入力を受け、前記入力されたベースアドレスを保存するラッチを含む。また、アドレス生成器５５０は、前記ラッチに保存された前記ベースアドレスにストライド５２３を合算した値をメモリ５１０のアドレスライン５２７に出力し、前記合算した値を前記ラッチに保存する。アドレス生成器５５０の構造および動作については、図４を参照して上述した通りである。
【００３９】
レジスタファイル５３０は、読み出しアドレス５２７の印加によってメモリ５１０から読み出された複数の映像データ要素５１１を保存する複数のレジスタを含む。
ＳＩＭＤパッカー５６０は、レジスタファイル５３０内の映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルし、前記複数の映像データ要素を前記複数のレジスタに保存する。
【００４０】
制御器（図示せず）は、レジスタファイル５３０のレジスタに保存されたデータをＮ分割された演算装置５４０に同時に入力して演算を行う。例えば、演算装置５４０は、６４ビットの演算を行うＡＬＵであるが、１６ビットの演算を行う場合にも１クロックサイクルを消耗しなければならない。このような演算装置に１６ビットのデータ４個を同時に入力して演算を行えば、４倍の処理量を出すようになる。図５において、６４ビットの演算装置５４０は４分割された演算装置として用いられ、４個の１６ビットレジスタ値を入力として受けて演算を行う。これについては、図７を参照してより詳細に後述する。
【００４１】
図６ａ〜６ｄは、図５のフォーマット変換装置の動作を説明するための図である。
図５のメモリ５１０は、バンドインターリーブ形式の映像データを保存する。本実施形態において、メモリ５１０は、図１のデータを保存している場合について説明する。
メモリ５１０から複数の映像データ要素を読み出すために、ベース５２１には映像データが保存されているスタートアドレスが入力される。本実施形態では、図１の保存された映像データのスタートアドレスが「０」であると仮定する。そうすれば、ベース５２１には「０」が入力される。さらに、１度のアドレス５２７の印加によって４個の映像データ要素を読み出そうとし、１つの映像データ要素が１６ビットであれば、ストライド５２３は６４が入力される。そうすれば、アドレス生成器５５０は、アドレス「０」を生成してメモリ５１０の読み出しアドレス５２７に印加する。そうすれば、メモリ５１０から読み出された複数の映像データ要素Ｒ０、Ｇ０、Ｂ０、Ｒ１の６４ビットがメモリ５１０のデータ出力ライン５１１に出力される。
【００４２】
メモリ５１０のデータ出力ライン５１１は、１６ビットずつ分割されて互いに異なるレジスタ集合とワイアリング（wiring）される。図５において、ライン５１３はレジスタ５３１、５３５、５３９と連結（coupled）し、ライン５１５はレジスタ５３２、５３６、５４１と連結する。また、ライン５１７はレジスタ５３３、５３７、５４２と連結し、ライン５１９はレジスタ５３４、５３８、５４３と連結する。
【００４３】
一方、ＳＩＭＤパッカー５２０は、レジスタファイル５３０に含まれたレジスタのうち映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルする。ＳＩＭＤパッカー５２０は、レジスタファイル５３０のレジスタと連結したＷ／Ｅライン５２５、５２６ａ、５２６ｂ、５２６ｃを介してあらかじめ定められた位置の複数のレジスタをイネーブルする。
【００４４】
図６ａを参照すると、ＳＩＭＤパッカー５２０は、レジスタ５３１、５３４、５３７、５４１をイネーブルする。そうすれば、ライン５１３、５１５、５１７、５１９を介して伝達されたデータは、それぞれレジスタ５３１、５３４、５３７、５４１に保存される。読み出されたデータがＲ０、Ｇ０、Ｂ０、Ｒ１であるとき、ライン５１３を介して映像データ要素Ｒ１がレジスタ５３１に保存される。同じように、ライン５１５を介して映像データ要素Ｂ０がレジスタ５４１に保存され、ライン５１７を介して映像データ要素Ｇ０がレジスタ５３７に保存され、ライン５１９を介して映像データ要素Ｒ０がレジスタ５３４に保存される。
【００４５】
ストライド５２３として６４が入力されたため、アドレス生成器５５０は、その次にアドレス「６４」を生成してメモリ５１０に印加する。そうすれば、図１を参照すれば、データＧ１、Ｂ１、Ｒ２、Ｇ２が読み出される。ＳＩＭＤパッカー５２０がレジスタ５３８、５４２、５３２、５３５をイネーブルする。そうすれば、図６ｂに示すように、データＧ１、Ｂ１、Ｒ２、Ｇ２はそれぞれレジスタ５３８、５４２、５３２、５３５に保存される。
【００４６】
その次に、アドレス生成器５５０は、アドレス「１２８」を生成してメモリ５１０に印加する。そうすれば、図１を参照すれば、データＢ２、Ｒ３、Ｇ３、Ｂ３が読み出される。ＳＩＭＤパッカー５２０がレジスタ５４３、５３３、５３６、５３９をイネーブルする。そうすれば、図６ｃに示すように、データＢ２、Ｒ３、Ｇ３、Ｂ３はそれぞれレジスタ５４３、５３３、５３６、５３９に保存される。
【００４７】
ＳＩＭＤパッカー５２０は、図６ａ〜６ｃのようなレジスタ選択を繰り返すことによって、バンドインターリーブ形式で保存されたデータをバンド分割形式に変換できる。ただし、図６ｃに示すように、同一類型の映像データ要素が集まってはいるが、順序の調整が必要となる。これは、ＰＥＲＭＵＴＥ演算（operation）を介して簡単に順序の調整が可能となる。ＰＥＲＭＵＴＥ演算を行えば、図６ｄに示すように、同一類型の映像データを順に整列できる。ＰＥＲＭＵＴＥ演算は大部分のＳＩＭＤ制御器が支援しているため、図６ａ〜６ｃを介して同一類型の映像データどうしを分類すれば、容易にバンド分割形式のデータを得ることができる。
【００４８】
図７は、本発明の一実施形態によって、６４ビットＡＬＵを４個の１６ビットＡＬＵに分割して用いる構成を示した図である。
最近はＡＬＵの性能が向上し、６４ビットＡＬＵが広く用いられている。しかし、上述したように、１つの映像データ要素が１６ビットの値を有せば、６４ビットＡＬＵは１クロックサイクルに２つの１６ビットの映像データ要素に対する演算を行うだけであるため、残りの４８ビットは無駄になる。したがって、本発明においては、バンド分割形式に変換された映像データを演算するとき、ＡＬＵをＮ分割された演算装置として同時に複数の演算が処理されるようにすることで、処理量を向上させる。
【００４９】
図３または図５において、バンド分割形式に変換された映像データは、レジスタファイル３３０、５３０に保存される。図７のレジスタ７１０、７２０は、レジスタファイル３３０、５３０に含まれる。１６ビットＡＬＵ７３０、７４０、７５０、７６０は物理的には１つの６４ビットＡＬＵであるが、１６ビットずつ演算を行うようになる。すなわち、１６ビットＡＬＵ７３０は、Ｒｅｇ０およびＲｅｇ４を入力として受け、演算を行ってＲｅｇ８に出力する。１６ビットＡＬＵ７４０は、Ｒｅｇ１およびＲｅｇ５を入力として受け、演算を行ってＲｅｇ９に出力する。１６ビットＡＬＵ７５０は、Ｒｅｇ２およびＲｅｇ６を入力として受け、演算を行ってＲｅｇ１０に出力する。１６ビットＡＬＵ７６０は、Ｒｅｇ３およびＲｅｇ７を入力として受け、演算を行ってＲｅｇ１１に出力する。前記１６ビットＡＬＵ７３０、７４０、７５０、７６０の演算は、１クロックサイクルに同時に行われる。出力されたデータ７７０もバンド分割形式で保存される。
【００５０】
本発明の実施形態は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。この媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独または組み合わせて含むこともできる。この媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成したものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものとすることができる。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体(magnetic media)、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、オプティカルディスク(optical media),のような磁気−光媒体(magneto-optical media)、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。この媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体とすることもできる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【００５１】
例えば、本発明で説明されたメモリ制御器３２０、５２０の全部または一部がコンピュータプログラムとして具現されることができる。この場合、前記コンピュータプログラムも本発明に含まれる。
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【００５２】
【図１】バンドインターリーブ形式を説明するための図である。
【図２】本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することを説明するための図である。
【図３】本発明の一実施形態に係るフォーマット変換装置を示した図である。
【図４】本発明の一実施形態に係るアドレス生成器を示した図である。
【図５】本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。
【図６Ａ】図５のフォーマット変換装置の動作を説明するための図（１）である。
【図６Ｂ】図５のフォーマット変換装置の動作を説明するための図（２）である。
【図６Ｃ】図５のフォーマット変換装置の動作を説明するための図（３）である。
【図６Ｄ】図５のフォーマット変換装置の動作を説明するための図（４）である。
【図７】本発明の一実施形態によって、６４ビットＡＬＵを４個の１６ビットＡＬＵに分割して用いる構成を示した図である。
【符号の説明】
【００５３】
３１０、５１０：メモリ
３２０：メモリ制御器
３３０、５３０：レジスタファイル
４１０：マルチプレクサ
４２０、４３０：ラッチ
５５０：アドレス生成器
５６０：ＳＩＭＤパッカー
【図１】
2008167394.tif 000003
【図２】
2008167394.tif 000004
【図３】
2008167394.tif 000005
【図４】
2008167394.tif 000006
【図５】
2008167394.tif 000007
【図６Ａ】
2008167394.tif 000008
【図６Ｂ】
2008167394.tif 000009
【図６Ｃ】
2008167394.tif 000010
【図６Ｄ】
2008167394.tif 000011
【図７】
2008167394.tif 000012