説明

バンドインターリーブ形式からバンド分割形式へのフォーマット変換装置

【課題】バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換するフォーマット変換装置に関する。
【解決手段】バンドインターリーブ形式の映像データを保存するメモリと、前記メモリの読み出しアドレスをストライドずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部とを含むフォーマット変換装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像処理装置および方法に関し、より詳細には、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換するフォーマット変換装置および方法に関する。
【背景技術】
【0002】
図1は、バンドインターリーブ形式(band interleave format)で保存された映像データを示した図である。デジタルカメラ、デジタルカムコーダなどで撮像されたデジタル映像データは、通常、図1に示すようなバンドインターリーブ形式で映像バッファ(image buffer)またはメモリに保存される。また、パソコンに保存される多くの映像データもバンドインターリーブ形式で保存される。1つのピクセルの色は、赤(Red)、緑(Green)、青(Blue)の結合で表現される。図1において、1つのピクセルに対する色は、赤(Red)、緑(Green)、青(Blue)の各8ビットずつ、計24ビットで指定される。バンドインターリーブ形式は、カラーバンド(color band)が互いに混ざっている形式である。図1に示されたバンドインターリーブ形式は、赤、緑、青のそれぞれを示すデータが集まっておらず、RGBRGBなどとしてカラーバンドが互いに混ざっている。これとは異なり、カラーバンドに従ってデータが分離している形式をバンド分割形式(band separate format)と言う。例えば、N個ずつの同一カラーバンドのデータを集めることができ、RはRどうし、GはGどうし、BはBどうし集めておく形式である。この場合、データは、RR…RGG…GBB…Bなどの形式で保存されるようになる。このとき、4個ずつの同一カラーバンドデータを集めれば、RRRRGGGGBBBBRRRRGGGGBBBBのように表示される。RGBデータだけではなくYCbCr形式のような他の形式の映像データも、同じようにバンドインターリーブ形式およびバンド分割形式が可能である。
【0003】
しかし、このような映像データの処理においては、互いに異なるピクセル間の同一カラーバンドデータどうしの演算や、互いに異なる映像フレームの対応ピクセル間の同一カラーバンドデータどうしの演算が極めて多い。したがって、映像データの処理において、バンドインターリーブ形式よりはバンド分割形式の方が演算の効率性が極めて高い。
【特許文献1】日本公開特許第2000−069478号公報
【特許文献2】日本公開特許第2003−110853号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法を提供することを目的とする。
また、本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ALU(演算処理)をN分割してSIMD(Single Instruction Multiple Data)方式で処理することによって、映像処理の効率性を高めることを目的とする。
【課題を解決するための手段】
【0005】
発明1は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリの読み出しアドレス(read address)をストライド(stride)ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置(format converter)を提供する。
【0006】
発明2は、発明1において、前記メモリの読み出しアドレスを前記ストライドずつ増加させて読み出された前記バンドインターリーブ形式の前記映像データは、同一類型の映像データ要素(image data component)であることを特徴とする。
発明3は、発明1において、前記変換部は、ベースアドレスおよび前記ベースアドレスをN−1回前記ストライドずつ増加させて順次にN個のアドレスを生成するメモリ制御器(memory controller)、を含むことを特徴とする。
【0007】
発明4は、発明3において、前記メモリ制御器は、前記ベースアドレスの入力を受けて保存するラッチ(latch)、を含むことを特徴とする。
発明5は、発明4において、前記メモリ制御器は、クロックサイクルごとに前記ラッチに保存された前記ベースアドレスに前記ストライドを合算した値を前記メモリのアドレスライン(address line)に出力し、前記合算した値を前記ラッチに保存することを特徴とする。
【0008】
発明6は、発明1において、前記変換部は、前記メモリからN回読み出されたデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、をさらに含み、前記レジスタファイルに保存されたデータは、前記バンド分割形式の映像データであることを特徴とする。
発明7は、発明6において、前記保存されたレジスタデータをN分割された演算装置(N partitioned ALU)に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
【0009】
発明8は、バンドインターリーブ形式の映像データを保存するメモリと、クロックサイクルごとに前記メモリの読み出しアドレスをベースアドレスからストライドずつ増加させて前記メモリに印加するメモリ制御器と、を含むことを特徴とするフォーマット変換装置を提供する。
発明9は、発明8において、前記読み出しアドレスの印加によって順次に読み出された前記N個のイメージデータは、同一類型の映像データ要素であることを特徴とする。
【0010】
発明10は、発明8において、前記読み出しアドレスの印加によって順次に読み出されたN個のイメージデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、をさらに含むことを特徴とする。
発明11は、発明10において、前記保存されたレジスタデータは、バンド分割形式であることを特徴とする置。
【0011】
発明12は、発明10において、前記保存されたレジスタデータをN分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
発明13は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリから複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置を提供する。
【0012】
発明14は、発明13において、前記変換部は、前記メモリから前記複数の映像データ要素を読み出す読み出しアドレスを生成して前記メモリに印加するアドレス生成器と、前記読み出しアドレスの印加によって読み出された前記複数の映像データ要素を保存する複数のレジスタを含むレジスタファイルと、を含むことを特徴とする。
発明15は、発明13において、前記アドレス生成器は、ベースアドレスの入力を受けてベースアドレスを保存するラッチ、をさらに含み、前記ラッチに保存された前記ベースアドレスにストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする。
【0013】
発明16は、発明14において、前記変換部は、前記レジスタファイルのうち前記映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルして前記複数の映像データ要素を前記複数のレジスタに保存するSIMDパッカー(packer)、をさらに含むことを特徴とする。
発明17は、発明16において、前記複数のレジスタに保存された前記複数の映像データ要素をN分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
【発明の効果】
【0014】
このように、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法が提供される。
また、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ALUをN分割してSIMD方式で処理することによって、映像処理の効率性を高めることができる。
【発明を実施するための最良の形態】
【0015】
以下、添付の図面に基づき、本発明の好適な実施の形態を詳細に説明するが、本発明がこれらの実施形態によって制限または限定されることはない。図中、同じ参照符号は同じ部材を示す。
図2は、本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することについて説明するための図である。
【0016】
図2の映像データ210は、バンドインターリーブ形式で保存されている。すなわち、映像データ210は、R、G、Bの各カラーバンドが集まっておらず、混ざっていることが分かる。一方、映像データ220は、バンド分割形式で保存されている。映像データ220は、R、G、Bの各カラーバンド別にデータが分離されている。すなわち、k個のRデータ、k個のGデータ、k個のBデータが集まっている。バンドインターリーブ形式の映像データ210をバンド分割形式の映像データ220に変換するためには、バンドインターリーブ形式の映像データ210から同一のカラーバンドのデータのみを抽出し、図2に示すようにk個(図2の場合、k=4)ずつ繋げて保存する。
【0017】
図3を参照して、本発明の一実施形態に係るフォーマット変換装置について詳しく説明する。
図3に示すように、本発明に係るフォーマット変換装置は、バンドインターリーブ形式の映像データを保存するメモリ310と、前記バンドインターリーブ形式の映像データをバンド分割形式に変換する変換部とを含む。
【0018】
メモリ310は、バンドインターリーブ形式の映像データを保存している。例えば、本発明がデジタルカメラに適用される場合、デジタルカメラは、撮像された映像データをバンドインターリーブ形式でメモリ310に保存する。バンドインターリーブ形式については、前述した通りである。
変換部は、前記メモリの読み出しアドレスをストライド(stride)ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する。変換部は、メモリ制御器320と、レジスタファイル330とを含む。
【0019】
メモリ制御器320は、クロックサイクルごとにメモリ310の読み出しアドレスをベースアドレスからストライドずつ増加させてメモリに印加するAGU(アドレス生成器)を含む。すなわち、メモリ制御器320は、ベースアドレスおよび前記ベースアドレスをN−1回ストライドずつ増加させて、順次にN個のアドレスを生成してメモリ310に印加する。
【0020】
例えば、図2の映像データ210がメモリ310に保存されていて、映像データ要素のそれぞれが16ビットのサイズを有するものと仮定する。そうすれば、図2において、R0、G0、B0、R1、G1、B1などはそれぞれ16ビットのサイズを有する。さらに、R0が保存されたアドレスを「0」と仮定する。そうすれば、メモリ制御器320は、ベース入力321を介してベースアドレスである「0」が入力される。また、R0の次の同一類型の映像データ要素はR1であるが、R1のアドレスは「48」であるため、ストライド入力323としては「48」が入力される。
【0021】
そうすれば、メモリ制御器320は、ベースアドレスおよび前記ベースアドレスをN−1回前記ストライドずつ増加させて順次にN個のアドレスを生成してメモリ310に印加する。Nは、同一の類型の映像データ要素を何個ずつグルーピングするのかに関する数である。
例えば、本実施形態において、N=4個ずつの同一類型の映像データ要素を束ねてバンド分割形式の映像データを生成するとする。前記ベース入力321およびストライド入力323が入力された後の一番目のクロックサイクルにおいて、ベース入力321から入力されたベースアドレスをメモリ310のアドレス入力ライン327を介してメモリ310に印加する。そうすれば、ベースアドレスである「0」に該当するR0の16ビットデータが読み出されてメモリ310のデータライン311に出力される。前記データライン311は、データライン313、315、317、319に分岐し、それぞれレジスタファイル330のレジスタ331、レジスタ333、レジスタ335、レジスタ337に連結する。このとき、メモリ制御器320は、W/E(Write Enable)ライン325を介してレジスタファイル330のレジスタ331のみを選択してイネーブルさせる。そうすれば、データライン313、315、317、319を介したR0の16ビットデータは、レジスタ331にのみ記録される。
【0022】
次に、ベース入力321およびストライド入力323として追加の入力がなくても、メモリ制御器320は、自動的に次のクロックサイクルにおいて、ベースアドレスである「0」をストライドである「48」だけ増加させた「48」のアドレス値をアドレス入力ライン327を介してメモリ310に印加し、レジスタ333のみをW/Eライン325を介してイネーブルさせる。そうすれば、アドレス「48」によって読み出されたR1の16ビットデータがメモリ310のデータライン311に出力される。前記データライン311は、データライン313、315、317、319に分岐し、それぞれレジスタファイル330のレジスタ331、レジスタ333、レジスタ335、レジスタ337に連結する。このとき、W/Eライン325を介してレジスタファイル330のレジスタ333のみがイネーブルされているため、R1の16ビットデータはレジスタ333に記録される。
【0023】
その次に、メモリ制御器320は、次のクロックサイクルにおいて、アドレス値「48」をストライドである「48」だけ増加させた「96」のアドレス値をアドレス入力ライン327を介してメモリ310に印加し、レジスタ335のみをW/Eライン325を介してイネーブルさせる。そうすれば、アドレス「96」によって読み出されたR2の16ビットデータがレジスタ335に記録される。
【0024】
同じように、メモリ制御器320は、次のクロックサイクルにおいて、アドレス値「96」をストライドである「48」だけ増加させた「144」のアドレス値をアドレス入力ライン327を介してメモリ310に印加し、レジスタ337のみをW/Eライン325を介してイネーブルさせる。そうすれば、アドレス「144」によって読み出されたR3の16ビットデータがレジスタ337に記録される。
【0025】
このようにして、図2のバンドインターリーブ形式で保存されたR0、R1、R2、R3のデータは、図2の図面符号220のようにバンド分割形式でレジスタ331、333、335、337に保存されるようになる。このように、メモリ310の読み出しアドレスをストライドずつ増加させて読み出されたデータは、同一類型の映像データ要素である。すなわち、「R」という映像データ要素をメモリ310から読み出せば、ストライドを増加させてメモリ310から読み出されるデータも「R」という同一類型の映像データ要素である。仮に、「G」という映像データ要素をメモリ310から読み出せば、ストライドを増加させてメモリ310から読み出されるデータも「G」という同一類型の映像データ要素である。
【0026】
その次に、ベース入力321を「16」としてストライド入力323を「48」とすれば、G0、G1、G2、G3がグルーピングされ、ベース入力321を「32」としてストライド入力323を「48」とすれば、B0、B1、B2、B3がグルーピングされる。
レジスタファイル330は、複数のレジスタで構成される。レジスタファイル330のN個のレジスタのそれぞれは、メモリ310からN回読み出されたデータのそれぞれを保存する。レジスタファイル330に保存されたデータは、バンド分割形式の映像データである。
【0027】
本実施形態において、ベース入力321およびストライド入力323を1度のみ行っても、メモリ制御器320は自動的にN個のアドレスを生成してメモリ310に印加するが、本発明はこれに限定されるものではない。
本発明のさらに他の実施形態によれば、ストライド入力323として、グルーピングする映像データ要素の間隔のみの入力を受けることもできる。すなわち、上述した例において、ベース入力321を介してベースアドレスである「0」が入力され、ストライド入力323として「3」が入力される。本実施形態において、メモリ制御器320は、予め定義された規則に従ってストライド入力323に基づいて次のアドレスを生成できる。例えば、本実施形態において、メモリ制御器320は、ストライド入力に1つの映像データ要素のサイズである「16」を乗算し、アドレス生成時に必要な実際のストライドを計算する。そうすれば、ストライド入力323として「3」が入力されたとき、実際のストライドはストライド入力「3」に予め定義された「16」の値を乗算(3×16=48)して生成される。メモリ制御器320は、ストライド入力323として「3」が入力されたとき、一番目のクロックサイクルにおいてアドレス「0」をアドレスライン327に出力し、その次のクロックサイクルにおいてアドレス「48」をアドレスライン327に出力する。アドレス「48」は、ストライド入力323に前記計算された実際のストライドを加算した値である。
【0028】
制御器(図示せず)は、前記N個のレジスタ331、333、335、337に保存されたデータをN分割された演算装置340に同時に入力して演算を行う。例えば、演算装置340は、64ビットの演算を行うALUであるが、16ビットの演算を行う場合にも1クロックサイクルを消耗しなければならない。このような演算装置に16ビットのデータ4個を同時に入力して演算を行えば、4倍の処理量(throughput)を出すようになる。図3において、64ビットの演算装置340は4分割された演算装置として用いられ、4個の16ビットレジスタ値が入力されて演算を行う。これについては、図7を参照してより詳細に後述する。
【0029】
図4は、本発明の一実施形態によって、メモリ制御器320に含まれるアドレス生成器を示した図である。アドレス生成器400は、マルチプレクサ(MUX)410と、ラッチ420、430と、ALU440とで構成される。
ストライド入力423を介して入力されたストライドは、ラッチ430に保存される。仮に、ストライド入力423を介して入力された値をすぐにストライドとして用いずに、ストライド入力423を介して計算された値がストライドとして用いられれば、ストライド入力423から実際に用いるストライドを計算するモジュールがストライド入力423とラッチ430との間に配置される。
【0030】
ベース入力421およびALU440の出力441は、マルチプレクサ(multiplexer)410に入力される。マルチプレクサ410は、N個のアドレス生成のうち一番目はベース入力421を選択し、残りはALU440の出力441を選択してラッチ420に出力する。すなわち、クロックサイクルごとに、ラッチ420に保存されたベースアドレスにストライドを合算した値を、前記メモリ310のアドレスライン327、つまり図4のアドレスライン447に出力し、前記合算した値を前記ラッチ420に保存する。
【0031】
例えば、図2の映像データ210がメモリ310に保存されていて、映像データ要素のそれぞれは16ビットのサイズを有するものと仮定する。そうすれば、図2において、R0、G0、B0、R1、G1、B1などはそれぞれ16ビットのサイズを有する。さらに、R0が保存されたアドレスを「0」と仮定する。そうすれば、アドレス生成器400は、ベース入力421を介してベースアドレスである「0」が入力される。また、R0の次の同一類型の映像データ要素はR1であるが、R1のアドレスは「48」であるため、ストライド入力423としては「48」が入力される。
【0032】
本実施形態において、N=4個ずつの同一類型の映像データ要素を束ねてバンド分割形式の映像データを生成すれば、前記ベース入力421およびストライド入力423が入力された後、一番目のクロックサイクルにおいて、マルチプレクサ410はベース入力421を選択してラッチ420に出力し、ベース入力421として入力された値はラッチ420に保存される。このように、ラッチ420は、ベース入力421から入力されたベースアドレスをマルチプレクサ410を介して入力され、前記入力されたベースアドレスを保存する。また、ストライド入力423はラッチ430に保存される。また、ラッチ420に保存された値は、メモリ310のアドレス447に出力される。
【0033】
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「0」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「48」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「48」が保存される。
【0034】
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「48」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「96」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「96」が保存される。
【0035】
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「96」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「144」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「144」が保存される。N=4であり、4個のアドレスをすべて生成して出力したため、アドレス生成器400はベース入力421およびストライド入力423から新しい値が入力され、再び4個のアドレスを生成するという手順を繰り返す。
【0036】
図5は、本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。図5に示されたフォーマット変換装置は、メモリ510と、変換部とを含む。
メモリ510は、バンドインターリーブ形式の映像データを保存する。変換部は、メモリ510から複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する。変換部は、メモリ制御器520と、レジスタファイル530とを含む。
【0037】
メモリ制御器520は、AGU(アドレス生成器)550と、SIMDパッカー560とを含む。
アドレス生成器550は、メモリ510から複数の映像データ要素を読み出す読み出しアドレス527を生成してメモリ510に印加する。本実施形態においては、メモリ510に対する接触回数を減らすために、1度の読み出しアドレス527の印加によって複数の映像データ要素を読み出す。例えば、図1を参照して、1つの映像データ要素が16ビットである場合、アドレス「0」を印加して計64ビットであるR0、G0、B0、R1を読み出す。この場合、ストライド523は64となる。その次には再び計64ビットであるG1、B1、R2、G2が読み出される。仮に、8個の映像データ要素を1度に読み出そうとすれば、ストライド523を128とすれば良い。
【0038】
アドレス生成器550はベースアドレス521の入力を受け、前記入力されたベースアドレスを保存するラッチを含む。また、アドレス生成器550は、前記ラッチに保存された前記ベースアドレスにストライド523を合算した値をメモリ510のアドレスライン527に出力し、前記合算した値を前記ラッチに保存する。アドレス生成器550の構造および動作については、図4を参照して上述した通りである。
【0039】
レジスタファイル530は、読み出しアドレス527の印加によってメモリ510から読み出された複数の映像データ要素511を保存する複数のレジスタを含む。
SIMDパッカー560は、レジスタファイル530内の映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルし、前記複数の映像データ要素を前記複数のレジスタに保存する。
【0040】
制御器(図示せず)は、レジスタファイル530のレジスタに保存されたデータをN分割された演算装置540に同時に入力して演算を行う。例えば、演算装置540は、64ビットの演算を行うALUであるが、16ビットの演算を行う場合にも1クロックサイクルを消耗しなければならない。このような演算装置に16ビットのデータ4個を同時に入力して演算を行えば、4倍の処理量を出すようになる。図5において、64ビットの演算装置540は4分割された演算装置として用いられ、4個の16ビットレジスタ値を入力として受けて演算を行う。これについては、図7を参照してより詳細に後述する。
【0041】
図6a〜6dは、図5のフォーマット変換装置の動作を説明するための図である。
図5のメモリ510は、バンドインターリーブ形式の映像データを保存する。本実施形態において、メモリ510は、図1のデータを保存している場合について説明する。
メモリ510から複数の映像データ要素を読み出すために、ベース521には映像データが保存されているスタートアドレスが入力される。本実施形態では、図1の保存された映像データのスタートアドレスが「0」であると仮定する。そうすれば、ベース521には「0」が入力される。さらに、1度のアドレス527の印加によって4個の映像データ要素を読み出そうとし、1つの映像データ要素が16ビットであれば、ストライド523は64が入力される。そうすれば、アドレス生成器550は、アドレス「0」を生成してメモリ510の読み出しアドレス527に印加する。そうすれば、メモリ510から読み出された複数の映像データ要素R0、G0、B0、R1の64ビットがメモリ510のデータ出力ライン511に出力される。
【0042】
メモリ510のデータ出力ライン511は、16ビットずつ分割されて互いに異なるレジスタ集合とワイアリング(wiring)される。図5において、ライン513はレジスタ531、535、539と連結(coupled)し、ライン515はレジスタ532、536、541と連結する。また、ライン517はレジスタ533、537、542と連結し、ライン519はレジスタ534、538、543と連結する。
【0043】
一方、SIMDパッカー520は、レジスタファイル530に含まれたレジスタのうち映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルする。SIMDパッカー520は、レジスタファイル530のレジスタと連結したW/Eライン525、526a、526b、526cを介してあらかじめ定められた位置の複数のレジスタをイネーブルする。
【0044】
図6aを参照すると、SIMDパッカー520は、レジスタ531、534、537、541をイネーブルする。そうすれば、ライン513、515、517、519を介して伝達されたデータは、それぞれレジスタ531、534、537、541に保存される。読み出されたデータがR0、G0、B0、R1であるとき、ライン513を介して映像データ要素R1がレジスタ531に保存される。同じように、ライン515を介して映像データ要素B0がレジスタ541に保存され、ライン517を介して映像データ要素G0がレジスタ537に保存され、ライン519を介して映像データ要素R0がレジスタ534に保存される。
【0045】
ストライド523として64が入力されたため、アドレス生成器550は、その次にアドレス「64」を生成してメモリ510に印加する。そうすれば、図1を参照すれば、データG1、B1、R2、G2が読み出される。SIMDパッカー520がレジスタ538、542、532、535をイネーブルする。そうすれば、図6bに示すように、データG1、B1、R2、G2はそれぞれレジスタ538、542、532、535に保存される。
【0046】
その次に、アドレス生成器550は、アドレス「128」を生成してメモリ510に印加する。そうすれば、図1を参照すれば、データB2、R3、G3、B3が読み出される。SIMDパッカー520がレジスタ543、533、536、539をイネーブルする。そうすれば、図6cに示すように、データB2、R3、G3、B3はそれぞれレジスタ543、533、536、539に保存される。
【0047】
SIMDパッカー520は、図6a〜6cのようなレジスタ選択を繰り返すことによって、バンドインターリーブ形式で保存されたデータをバンド分割形式に変換できる。ただし、図6cに示すように、同一類型の映像データ要素が集まってはいるが、順序の調整が必要となる。これは、PERMUTE演算(operation)を介して簡単に順序の調整が可能となる。PERMUTE演算を行えば、図6dに示すように、同一類型の映像データを順に整列できる。PERMUTE演算は大部分のSIMD制御器が支援しているため、図6a〜6cを介して同一類型の映像データどうしを分類すれば、容易にバンド分割形式のデータを得ることができる。
【0048】
図7は、本発明の一実施形態によって、64ビットALUを4個の16ビットALUに分割して用いる構成を示した図である。
最近はALUの性能が向上し、64ビットALUが広く用いられている。しかし、上述したように、1つの映像データ要素が16ビットの値を有せば、64ビットALUは1クロックサイクルに2つの16ビットの映像データ要素に対する演算を行うだけであるため、残りの48ビットは無駄になる。したがって、本発明においては、バンド分割形式に変換された映像データを演算するとき、ALUをN分割された演算装置として同時に複数の演算が処理されるようにすることで、処理量を向上させる。
【0049】
図3または図5において、バンド分割形式に変換された映像データは、レジスタファイル330、530に保存される。図7のレジスタ710、720は、レジスタファイル330、530に含まれる。16ビットALU730、740、750、760は物理的には1つの64ビットALUであるが、16ビットずつ演算を行うようになる。すなわち、16ビットALU730は、Reg0およびReg4を入力として受け、演算を行ってReg8に出力する。16ビットALU740は、Reg1およびReg5を入力として受け、演算を行ってReg9に出力する。16ビットALU750は、Reg2およびReg6を入力として受け、演算を行ってReg10に出力する。16ビットALU760は、Reg3およびReg7を入力として受け、演算を行ってReg11に出力する。前記16ビットALU730、740、750、760の演算は、1クロックサイクルに同時に行われる。出力されたデータ770もバンド分割形式で保存される。
【0050】
本発明の実施形態は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。この媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独または組み合わせて含むこともできる。この媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成したものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものとすることができる。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体、オプティカルディスク(optical media),のような磁気−光媒体(magneto-optical media)、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。この媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体とすることもできる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0051】
例えば、本発明で説明されたメモリ制御器320、520の全部または一部がコンピュータプログラムとして具現されることができる。この場合、前記コンピュータプログラムも本発明に含まれる。
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【0052】
【図1】バンドインターリーブ形式を説明するための図である。
【図2】本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することを説明するための図である。
【図3】本発明の一実施形態に係るフォーマット変換装置を示した図である。
【図4】本発明の一実施形態に係るアドレス生成器を示した図である。
【図5】本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。
【図6A】図5のフォーマット変換装置の動作を説明するための図(1)である。
【図6B】図5のフォーマット変換装置の動作を説明するための図(2)である。
【図6C】図5のフォーマット変換装置の動作を説明するための図(3)である。
【図6D】図5のフォーマット変換装置の動作を説明するための図(4)である。
【図7】本発明の一実施形態によって、64ビットALUを4個の16ビットALUに分割して用いる構成を示した図である。
【符号の説明】
【0053】
310、510:メモリ
320:メモリ制御器
330、530:レジスタファイル
410:マルチプレクサ
420、430:ラッチ
550:アドレス生成器
560:SIMDパッカー

【特許請求の範囲】
【請求項1】
バンドインターリーブ形式の映像データを保存するメモリと、
前記メモリの読み出しアドレスをストライドずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部と、
を含むことを特徴とするフォーマット変換装置。
【請求項2】
前記メモリの読み出しアドレスを前記ストライドずつ増加させて読み出された前記バンドインターリーブ形式の前記映像データは、同一類型の映像データ要素であることを特徴とする請求項1に記載のフォーマット変換装置。
【請求項3】
前記変換部は、
ベースアドレスおよび前記ベースアドレスをN−1回前記ストライドずつ増加させて順次にN個のアドレスを生成するメモリ制御器、
を含むことを特徴とする請求項1に記載のフォーマット変換装置。
【請求項4】
前記メモリ制御器は、
前記ベースアドレスの入力を受けて保存するラッチ、
を含むことを特徴とする請求項3に記載のフォーマット変換装置。
【請求項5】
前記メモリ制御器は、
クロックサイクルごとに前記ラッチに保存された前記ベースアドレスに前記ストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする請求項4に記載のフォーマット変換装置。
【請求項6】
前記変換部は、
前記メモリからN回読み出されたデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、
をさらに含み、
前記レジスタファイルに保存されたデータは、前記バンド分割形式の映像データであることを特徴とする請求項1に記載のフォーマット変換装置。
【請求項7】
前記保存されたレジスタデータをN分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項6に記載のフォーマット変換装置。
【請求項8】
バンドインターリーブ形式の映像データを保存するメモリと、
クロックサイクルごとに前記メモリの読み出しアドレスをベースアドレスからストライドずつ増加させて前記メモリに印加するメモリ制御器と、
を含むことを特徴とするフォーマット変換装置。
【請求項9】
前記読み出しアドレスの印加によって順次に読み出された前記N個のイメージデータは、同一類型の映像データ要素であることを特徴とする請求項8に記載のフォーマット変換装置。
【請求項10】
前記読み出しアドレスの印加によって順次に読み出されたN個のイメージデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、
をさらに含むことを特徴とする請求項8に記載のフォーマット変換装置。
【請求項11】
前記保存されたレジスタデータは、バンド分割形式であることを特徴とする請求項10に記載のフォーマット変換装置。
【請求項12】
前記保存されたレジスタデータをN分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項10に記載のフォーマット変換装置。
【請求項13】
バンドインターリーブ形式の映像データを保存するメモリと、
前記メモリから複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する変換部と、
を含むことを特徴とするフォーマット変換装置。
【請求項14】
前記変換部は、
前記メモリから前記複数の映像データ要素を読み出す読み出しアドレスを生成して前記メモリに印加するアドレス生成器と、
前記読み出しアドレスの印加によって読み出された前記複数の映像データ要素を保存する複数のレジスタを含むレジスタファイルと、
を含むことを特徴とする請求項13に記載のフォーマット変換装置。
【請求項15】
前記アドレス生成器は、
ベースアドレスの入力を受けてベースアドレスを保存するラッチ、
をさらに含み、
前記ラッチに保存された前記ベースアドレスにストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする請求項13に記載のフォーマット変換装置。
【請求項16】
前記変換部は、
前記レジスタファイルのうち前記映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルして前記複数の映像データ要素を前記複数のレジスタに保存するSIMDパッカー、
をさらに含むことを特徴とする請求項14に記載のフォーマット変換装置。
【請求項17】
前記複数のレジスタに保存された前記複数の映像データ要素をN分割された演算装置に同時に入力して演算を行う制御器、
をさらに含むことを特徴とする請求項16に記載のフォーマット変換装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図6D】
image rotate

【図7】
image rotate


【公開番号】特開2008−167394(P2008−167394A)
【公開日】平成20年7月17日(2008.7.17)
【国際特許分類】
【出願番号】特願2007−185730(P2007−185730)
【出願日】平成19年7月17日(2007.7.17)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】SAMSUNG ELECTRONICS CO.,LTD.
【住所又は居所原語表記】416,Maetan−dong,Yeongtong−gu,Suwon−si,Gyeonggi−do 442−742(KR)
【Fターム(参考)】