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

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

Info

Publication number
JP2008167394A
JP2008167394A JP2007185730A JP2007185730A JP2008167394A JP 2008167394 A JP2008167394 A JP 2008167394A JP 2007185730 A JP2007185730 A JP 2007185730A JP 2007185730 A JP2007185730 A JP 2007185730A JP 2008167394 A JP2008167394 A JP 2008167394A
Authority
JP
Japan
Prior art keywords
video data
memory
format
address
conversion apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007185730A
Other languages
English (en)
Other versions
JP4718523B2 (ja
Inventor
Jong Myon Kim
種 冕 金
Jun-Tin Gong
駿 鎭 孔
Jeong Wook Kim
政 ▲ウック▼ 金
Suk Jin Kim
碩 鎭 金
Soo Jung Ryu
秀 晶 柳
Kyoung June Min
庚 俊 閔
Dong-Hoon Yoo
東 勲 劉
Dong Kwan Suh
東 寛 徐
Enkon Cho
淵 坤 趙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020070018901A external-priority patent/KR100879896B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008167394A publication Critical patent/JP2008167394A/ja
Application granted granted Critical
Publication of JP4718523B2 publication Critical patent/JP4718523B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Color Television Systems (AREA)

Abstract

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

Description

本発明は、映像処理装置および方法に関し、より詳細には、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換するフォーマット変換装置および方法に関する。
図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形式のような他の形式の映像データも、同じようにバンドインターリーブ形式およびバンド分割形式が可能である。
しかし、このような映像データの処理においては、互いに異なるピクセル間の同一カラーバンドデータどうしの演算や、互いに異なる映像フレームの対応ピクセル間の同一カラーバンドデータどうしの演算が極めて多い。したがって、映像データの処理において、バンドインターリーブ形式よりはバンド分割形式の方が演算の効率性が極めて高い。
日本公開特許第2000−069478号公報 日本公開特許第2003−110853号公報
本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法を提供することを目的とする。
また、本発明は、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ALU(演算処理)をN分割してSIMD(Single Instruction Multiple Data)方式で処理することによって、映像処理の効率性を高めることを目的とする。
発明1は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリの読み出しアドレス(read address)をストライド(stride)ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置(format converter)を提供する。
発明2は、発明1において、前記メモリの読み出しアドレスを前記ストライドずつ増加させて読み出された前記バンドインターリーブ形式の前記映像データは、同一類型の映像データ要素(image data component)であることを特徴とする。
発明3は、発明1において、前記変換部は、ベースアドレスおよび前記ベースアドレスをN−1回前記ストライドずつ増加させて順次にN個のアドレスを生成するメモリ制御器(memory controller)、を含むことを特徴とする。
発明4は、発明3において、前記メモリ制御器は、前記ベースアドレスの入力を受けて保存するラッチ(latch)、を含むことを特徴とする。
発明5は、発明4において、前記メモリ制御器は、クロックサイクルごとに前記ラッチに保存された前記ベースアドレスに前記ストライドを合算した値を前記メモリのアドレスライン(address line)に出力し、前記合算した値を前記ラッチに保存することを特徴とする。
発明6は、発明1において、前記変換部は、前記メモリからN回読み出されたデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、をさらに含み、前記レジスタファイルに保存されたデータは、前記バンド分割形式の映像データであることを特徴とする。
発明7は、発明6において、前記保存されたレジスタデータをN分割された演算装置(N partitioned ALU)に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
発明8は、バンドインターリーブ形式の映像データを保存するメモリと、クロックサイクルごとに前記メモリの読み出しアドレスをベースアドレスからストライドずつ増加させて前記メモリに印加するメモリ制御器と、を含むことを特徴とするフォーマット変換装置を提供する。
発明9は、発明8において、前記読み出しアドレスの印加によって順次に読み出された前記N個のイメージデータは、同一類型の映像データ要素であることを特徴とする。
発明10は、発明8において、前記読み出しアドレスの印加によって順次に読み出されたN個のイメージデータのそれぞれを保存するN個のレジスタを含むレジスタファイル、をさらに含むことを特徴とする。
発明11は、発明10において、前記保存されたレジスタデータは、バンド分割形式であることを特徴とする置。
発明12は、発明10において、前記保存されたレジスタデータをN分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
発明13は、バンドインターリーブ形式の映像データを保存するメモリと、前記メモリから複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する変換部と、を含むことを特徴とするフォーマット変換装置を提供する。
発明14は、発明13において、前記変換部は、前記メモリから前記複数の映像データ要素を読み出す読み出しアドレスを生成して前記メモリに印加するアドレス生成器と、前記読み出しアドレスの印加によって読み出された前記複数の映像データ要素を保存する複数のレジスタを含むレジスタファイルと、を含むことを特徴とする。
発明15は、発明13において、前記アドレス生成器は、ベースアドレスの入力を受けてベースアドレスを保存するラッチ、をさらに含み、前記ラッチに保存された前記ベースアドレスにストライドを合算した値を前記メモリのアドレスラインに出力し、前記合算した値を前記ラッチに保存することを特徴とする。
発明16は、発明14において、前記変換部は、前記レジスタファイルのうち前記映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルして前記複数の映像データ要素を前記複数のレジスタに保存するSIMDパッカー(packer)、をさらに含むことを特徴とする。
発明17は、発明16において、前記複数のレジスタに保存された前記複数の映像データ要素をN分割された演算装置に同時に入力して演算を行う制御器、をさらに含むことを特徴とする。
このように、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに効率的に変換するフォーマット変換装置および方法が提供される。
また、本発明によれば、バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換した後、ALUをN分割してSIMD方式で処理することによって、映像処理の効率性を高めることができる。
以下、添付の図面に基づき、本発明の好適な実施の形態を詳細に説明するが、本発明がこれらの実施形態によって制限または限定されることはない。図中、同じ参照符号は同じ部材を示す。
図2は、本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することについて説明するための図である。
図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)ずつ繋げて保存する。
図3を参照して、本発明の一実施形態に係るフォーマット変換装置について詳しく説明する。
図3に示すように、本発明に係るフォーマット変換装置は、バンドインターリーブ形式の映像データを保存するメモリ310と、前記バンドインターリーブ形式の映像データをバンド分割形式に変換する変換部とを含む。
メモリ310は、バンドインターリーブ形式の映像データを保存している。例えば、本発明がデジタルカメラに適用される場合、デジタルカメラは、撮像された映像データをバンドインターリーブ形式でメモリ310に保存する。バンドインターリーブ形式については、前述した通りである。
変換部は、前記メモリの読み出しアドレスをストライド(stride)ずつ増加させて前記メモリを読み出し、前記バンドインターリーブ形式の映像データをバンド分割形式の映像データに変換する。変換部は、メモリ制御器320と、レジスタファイル330とを含む。
メモリ制御器320は、クロックサイクルごとにメモリ310の読み出しアドレスをベースアドレスからストライドずつ増加させてメモリに印加するAGU(アドレス生成器)を含む。すなわち、メモリ制御器320は、ベースアドレスおよび前記ベースアドレスをN−1回ストライドずつ増加させて、順次にN個のアドレスを生成してメモリ310に印加する。
例えば、図2の映像データ210がメモリ310に保存されていて、映像データ要素のそれぞれが16ビットのサイズを有するものと仮定する。そうすれば、図2において、R0、G0、B0、R1、G1、B1などはそれぞれ16ビットのサイズを有する。さらに、R0が保存されたアドレスを「0」と仮定する。そうすれば、メモリ制御器320は、ベース入力321を介してベースアドレスである「0」が入力される。また、R0の次の同一類型の映像データ要素はR1であるが、R1のアドレスは「48」であるため、ストライド入力323としては「48」が入力される。
そうすれば、メモリ制御器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にのみ記録される。
次に、ベース入力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に記録される。
その次に、メモリ制御器320は、次のクロックサイクルにおいて、アドレス値「48」をストライドである「48」だけ増加させた「96」のアドレス値をアドレス入力ライン327を介してメモリ310に印加し、レジスタ335のみをW/Eライン325を介してイネーブルさせる。そうすれば、アドレス「96」によって読み出されたR2の16ビットデータがレジスタ335に記録される。
同じように、メモリ制御器320は、次のクロックサイクルにおいて、アドレス値「96」をストライドである「48」だけ増加させた「144」のアドレス値をアドレス入力ライン327を介してメモリ310に印加し、レジスタ337のみをW/Eライン325を介してイネーブルさせる。そうすれば、アドレス「144」によって読み出されたR3の16ビットデータがレジスタ337に記録される。
このようにして、図2のバンドインターリーブ形式で保存されたR0、R1、R2、R3のデータは、図2の図面符号220のようにバンド分割形式でレジスタ331、333、335、337に保存されるようになる。このように、メモリ310の読み出しアドレスをストライドずつ増加させて読み出されたデータは、同一類型の映像データ要素である。すなわち、「R」という映像データ要素をメモリ310から読み出せば、ストライドを増加させてメモリ310から読み出されるデータも「R」という同一類型の映像データ要素である。仮に、「G」という映像データ要素をメモリ310から読み出せば、ストライドを増加させてメモリ310から読み出されるデータも「G」という同一類型の映像データ要素である。
その次に、ベース入力321を「16」としてストライド入力323を「48」とすれば、G0、G1、G2、G3がグルーピングされ、ベース入力321を「32」としてストライド入力323を「48」とすれば、B0、B1、B2、B3がグルーピングされる。
レジスタファイル330は、複数のレジスタで構成される。レジスタファイル330のN個のレジスタのそれぞれは、メモリ310からN回読み出されたデータのそれぞれを保存する。レジスタファイル330に保存されたデータは、バンド分割形式の映像データである。
本実施形態において、ベース入力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に前記計算された実際のストライドを加算した値である。
制御器(図示せず)は、前記N個のレジスタ331、333、335、337に保存されたデータをN分割された演算装置340に同時に入力して演算を行う。例えば、演算装置340は、64ビットの演算を行うALUであるが、16ビットの演算を行う場合にも1クロックサイクルを消耗しなければならない。このような演算装置に16ビットのデータ4個を同時に入力して演算を行えば、4倍の処理量(throughput)を出すようになる。図3において、64ビットの演算装置340は4分割された演算装置として用いられ、4個の16ビットレジスタ値が入力されて演算を行う。これについては、図7を参照してより詳細に後述する。
図4は、本発明の一実施形態によって、メモリ制御器320に含まれるアドレス生成器を示した図である。アドレス生成器400は、マルチプレクサ(MUX)410と、ラッチ420、430と、ALU440とで構成される。
ストライド入力423を介して入力されたストライドは、ラッチ430に保存される。仮に、ストライド入力423を介して入力された値をすぐにストライドとして用いずに、ストライド入力423を介して計算された値がストライドとして用いられれば、ストライド入力423から実際に用いるストライドを計算するモジュールがストライド入力423とラッチ430との間に配置される。
ベース入力421およびALU440の出力441は、マルチプレクサ(multiplexer)410に入力される。マルチプレクサ410は、N個のアドレス生成のうち一番目はベース入力421を選択し、残りはALU440の出力441を選択してラッチ420に出力する。すなわち、クロックサイクルごとに、ラッチ420に保存されたベースアドレスにストライドを合算した値を、前記メモリ310のアドレスライン327、つまり図4のアドレスライン447に出力し、前記合算した値を前記ラッチ420に保存する。
例えば、図2の映像データ210がメモリ310に保存されていて、映像データ要素のそれぞれは16ビットのサイズを有するものと仮定する。そうすれば、図2において、R0、G0、B0、R1、G1、B1などはそれぞれ16ビットのサイズを有する。さらに、R0が保存されたアドレスを「0」と仮定する。そうすれば、アドレス生成器400は、ベース入力421を介してベースアドレスである「0」が入力される。また、R0の次の同一類型の映像データ要素はR1であるが、R1のアドレスは「48」であるため、ストライド入力423としては「48」が入力される。
本実施形態において、N=4個ずつの同一類型の映像データ要素を束ねてバンド分割形式の映像データを生成すれば、前記ベース入力421およびストライド入力423が入力された後、一番目のクロックサイクルにおいて、マルチプレクサ410はベース入力421を選択してラッチ420に出力し、ベース入力421として入力された値はラッチ420に保存される。このように、ラッチ420は、ベース入力421から入力されたベースアドレスをマルチプレクサ410を介して入力され、前記入力されたベースアドレスを保存する。また、ストライド入力423はラッチ430に保存される。また、ラッチ420に保存された値は、メモリ310のアドレス447に出力される。
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「0」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「48」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「48」が保存される。
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「48」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「96」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「96」が保存される。
次のクロックサイクルにおいて、ラッチ420に保存されたベース値「96」とラッチ430に保存されたストライド「48」は、ALU440の入力443、445として入力される。ALU440は、入力された値を加算して次のアドレス「144」を生成してメモリ310のアドレス447および出力ライン441に出力する。出力ライン441はマルチプレクサ410によって選択され、ラッチ420には「144」が保存される。N=4であり、4個のアドレスをすべて生成して出力したため、アドレス生成器400はベース入力421およびストライド入力423から新しい値が入力され、再び4個のアドレスを生成するという手順を繰り返す。
図5は、本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。図5に示されたフォーマット変換装置は、メモリ510と、変換部とを含む。
メモリ510は、バンドインターリーブ形式の映像データを保存する。変換部は、メモリ510から複数の映像データ要素を読み出して予め定められたレジスタに保存する動作を複数回繰り返し、複数のバンド分割形式の映像データに変換する。変換部は、メモリ制御器520と、レジスタファイル530とを含む。
メモリ制御器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とすれば良い。
アドレス生成器550はベースアドレス521の入力を受け、前記入力されたベースアドレスを保存するラッチを含む。また、アドレス生成器550は、前記ラッチに保存された前記ベースアドレスにストライド523を合算した値をメモリ510のアドレスライン527に出力し、前記合算した値を前記ラッチに保存する。アドレス生成器550の構造および動作については、図4を参照して上述した通りである。
レジスタファイル530は、読み出しアドレス527の印加によってメモリ510から読み出された複数の映像データ要素511を保存する複数のレジスタを含む。
SIMDパッカー560は、レジスタファイル530内の映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルし、前記複数の映像データ要素を前記複数のレジスタに保存する。
制御器(図示せず)は、レジスタファイル530のレジスタに保存されたデータをN分割された演算装置540に同時に入力して演算を行う。例えば、演算装置540は、64ビットの演算を行うALUであるが、16ビットの演算を行う場合にも1クロックサイクルを消耗しなければならない。このような演算装置に16ビットのデータ4個を同時に入力して演算を行えば、4倍の処理量を出すようになる。図5において、64ビットの演算装置540は4分割された演算装置として用いられ、4個の16ビットレジスタ値を入力として受けて演算を行う。これについては、図7を参照してより詳細に後述する。
図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に出力される。
メモリ510のデータ出力ライン511は、16ビットずつ分割されて互いに異なるレジスタ集合とワイアリング(wiring)される。図5において、ライン513はレジスタ531、535、539と連結(coupled)し、ライン515はレジスタ532、536、541と連結する。また、ライン517はレジスタ533、537、542と連結し、ライン519はレジスタ534、538、543と連結する。
一方、SIMDパッカー520は、レジスタファイル530に含まれたレジスタのうち映像データ要素の類型に従って予め定められた位置の複数のレジスタをイネーブルする。SIMDパッカー520は、レジスタファイル530のレジスタと連結したW/Eライン525、526a、526b、526cを介してあらかじめ定められた位置の複数のレジスタをイネーブルする。
図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に保存される。
ストライド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に保存される。
その次に、アドレス生成器550は、アドレス「128」を生成してメモリ510に印加する。そうすれば、図1を参照すれば、データB2、R3、G3、B3が読み出される。SIMDパッカー520がレジスタ543、533、536、539をイネーブルする。そうすれば、図6cに示すように、データB2、R3、G3、B3はそれぞれレジスタ543、533、536、539に保存される。
SIMDパッカー520は、図6a〜6cのようなレジスタ選択を繰り返すことによって、バンドインターリーブ形式で保存されたデータをバンド分割形式に変換できる。ただし、図6cに示すように、同一類型の映像データ要素が集まってはいるが、順序の調整が必要となる。これは、PERMUTE演算(operation)を介して簡単に順序の調整が可能となる。PERMUTE演算を行えば、図6dに示すように、同一類型の映像データを順に整列できる。PERMUTE演算は大部分のSIMD制御器が支援しているため、図6a〜6cを介して同一類型の映像データどうしを分類すれば、容易にバンド分割形式のデータを得ることができる。
図7は、本発明の一実施形態によって、64ビットALUを4個の16ビットALUに分割して用いる構成を示した図である。
最近はALUの性能が向上し、64ビットALUが広く用いられている。しかし、上述したように、1つの映像データ要素が16ビットの値を有せば、64ビットALUは1クロックサイクルに2つの16ビットの映像データ要素に対する演算を行うだけであるため、残りの48ビットは無駄になる。したがって、本発明においては、バンド分割形式に変換された映像データを演算するとき、ALUをN分割された演算装置として同時に複数の演算が処理されるようにすることで、処理量を向上させる。
図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もバンド分割形式で保存される。
本発明の実施形態は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。この媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独または組み合わせて含むこともできる。この媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成したものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものとすることができる。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVDのような光記録媒体、オプティカルディスク(optical media),のような磁気−光媒体(magneto-optical media)、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。この媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体とすることもできる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
例えば、本発明で説明されたメモリ制御器320、520の全部または一部がコンピュータプログラムとして具現されることができる。この場合、前記コンピュータプログラムも本発明に含まれる。
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
バンドインターリーブ形式を説明するための図である。 本発明の一実施形態に係るバンドインターリーブ形式をバンド分割形式に変換することを説明するための図である。 本発明の一実施形態に係るフォーマット変換装置を示した図である。 本発明の一実施形態に係るアドレス生成器を示した図である。 本発明のさらに他の一実施形態に係るフォーマット変換装置を示した図である。 図5のフォーマット変換装置の動作を説明するための図(1)である。 図5のフォーマット変換装置の動作を説明するための図(2)である。 図5のフォーマット変換装置の動作を説明するための図(3)である。 図5のフォーマット変換装置の動作を説明するための図(4)である。 本発明の一実施形態によって、64ビットALUを4個の16ビットALUに分割して用いる構成を示した図である。
符号の説明
310、510:メモリ
320:メモリ制御器
330、530:レジスタファイル
410:マルチプレクサ
420、430:ラッチ
550:アドレス生成器
560:SIMDパッカー

Claims (17)

  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に記載のフォーマット変換装置。
JP2007185730A 2007-01-02 2007-07-17 バンドインターリーブ形式からバンド分割形式へのフォーマット変換装置 Active JP4718523B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2007-0000315 2007-01-02
KR20070000315 2007-01-02
KR1020070018901A KR100879896B1 (ko) 2007-01-02 2007-02-26 밴드 인터리브 포맷으로부터 밴드 분할 포맷으로의 포맷변환 장치
KR10-2007-0018901 2007-02-26

Publications (2)

Publication Number Publication Date
JP2008167394A true JP2008167394A (ja) 2008-07-17
JP4718523B2 JP4718523B2 (ja) 2011-07-06

Family

ID=39167618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007185730A Active JP4718523B2 (ja) 2007-01-02 2007-07-17 バンドインターリーブ形式からバンド分割形式へのフォーマット変換装置

Country Status (3)

Country Link
US (1) US8395630B2 (ja)
EP (1) EP1942460A1 (ja)
JP (1) JP4718523B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8810587B2 (en) * 2012-03-02 2014-08-19 Adobe Systems Incorporated Conversion of contiguous interleaved image data for CPU readback

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11122495A (ja) * 1997-10-09 1999-04-30 Olympus Optical Co Ltd 画像符号化装置
US5953021A (en) * 1997-05-22 1999-09-14 Sun Microsystems, Inc. Microprocessor system for data channel extraction
JP2006191362A (ja) * 2005-01-06 2006-07-20 Sharp Corp 画像データ処理装置及び画像データ処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992961A (en) * 1988-12-01 1991-02-12 Hewlett-Packard Company Method and apparatus for increasing image generation speed on raster displays
US5253308A (en) * 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
JP3151788B2 (ja) 1991-12-23 2001-04-03 ゼロックス コーポレーション 矩形原画像の回転方法
US5606347A (en) * 1992-12-16 1997-02-25 Texas Instruments Incorporated Devices systems and methods for flexible format data storage
US5384582A (en) * 1993-06-16 1995-01-24 Intel Corporation Conversion of image data from subsampled format to clut format
US5671440A (en) * 1994-08-08 1997-09-23 Eastman Kodak Company Color image data reorientation and format conversion system
US5920352A (en) 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
US5798753A (en) * 1995-03-03 1998-08-25 Sun Microsystems, Inc. Color format conversion in a parallel processor
US5867179A (en) 1996-12-31 1999-02-02 Electronics For Imaging, Inc. Interleaved-to-planar data conversion
US5943040A (en) * 1997-06-27 1999-08-24 Sun Microsystems, Inc. Graphical image reformatting
JP2000069478A (ja) 1998-08-18 2000-03-03 Canon Inc 画像処理装置及び方法並びに記憶媒体
US6943798B1 (en) * 2000-08-15 2005-09-13 Microsoft Corporation Method and system for executing SIMD instructions using graphics technology
JP2003110853A (ja) 2001-09-26 2003-04-11 Ricoh Co Ltd γ変換処理装置,画像処理装置およびγ変換処理方法
US7529423B2 (en) * 2004-03-26 2009-05-05 Intel Corporation SIMD four-pixel average instruction for imaging and video applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953021A (en) * 1997-05-22 1999-09-14 Sun Microsystems, Inc. Microprocessor system for data channel extraction
JPH11122495A (ja) * 1997-10-09 1999-04-30 Olympus Optical Co Ltd 画像符号化装置
JP2006191362A (ja) * 2005-01-06 2006-07-20 Sharp Corp 画像データ処理装置及び画像データ処理方法

Also Published As

Publication number Publication date
EP1942460A1 (en) 2008-07-09
JP4718523B2 (ja) 2011-07-06
US20080158238A1 (en) 2008-07-03
US8395630B2 (en) 2013-03-12

Similar Documents

Publication Publication Date Title
US8429625B2 (en) Digital data processing method and system
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
EP2455854B1 (en) System and method for on-the-fly permutations of vector memories for executing intra-vector operations
US7797366B2 (en) Power-efficient sign extension for booth multiplication methods and systems
TWI270007B (en) Method and apparatus for shuffling data
JP4487479B2 (ja) Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
FR2752630A1 (fr) Traitement de donnees multiples a une seule instruction dans un processeur de signaux multisupport
JP4349265B2 (ja) プロセッサ
US5642306A (en) Method and apparatus for a single instruction multiple data early-out zero-skip multiplier
US7600104B2 (en) Method and system for parallel vector data processing of vector data having a number of data elements including a defined first bit-length
JP4886043B2 (ja) 高速フィルタ型のyuvからrgbへの変換
IL169374A (en) Result partitioning within simd data processing systems
AU2009243440A1 (en) Optimised rendering of palette images
KR100879896B1 (ko) 밴드 인터리브 포맷으로부터 밴드 분할 포맷으로의 포맷변환 장치
JP4718523B2 (ja) バンドインターリーブ形式からバンド分割形式へのフォーマット変換装置
JP3723115B2 (ja) 単一命令多重データ処理
US20090248780A1 (en) Polynomial data processing operation
JPH09293137A (ja) 並列プロセッサにおける画像のスケール変更
JP2012118835A (ja) 動作合成システム、動作合成方法、動作合成用プログラム及び半導体装置
KR20100026358A (ko) 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체
JP2004147165A (ja) 画像処理方法及び画像処理装置
JP4531835B2 (ja) 画像処理装置および方法
JP2004046747A (ja) ベクトル化方式
JP2007034178A (ja) データ変換装置、プログラム、記憶媒体
CN115705676A (zh) 一种卷积计算中4bit特征图的存储和解析方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110301

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110331

R150 Certificate of patent or registration of utility model

Ref document number: 4718523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250