説明

データ転送制御装置

【課題】データ転送量とメモリ使用量の削減、及び画像処理装置における負荷を軽減してシステム全体の処理スループットの向上を実現できるデータ転送制御装置を提供すること。
【解決手段】データ転送制御装置400は、転送制御部401で受信された画像データを記憶するデータ記憶部402と、設定部200によって設定されたデータ処理の内容に従って、データ記憶部402に記憶された前記画像データに対して演算を施すデータ演算部4032と、データ演算部4032で演算された画像データを転送制御部404に出力するように制御するか、データ記憶部402に帰還させるように制御する内部制御部4033とを備える。データ記憶部402に画像データが帰還された場合、データ演算部4032は、データ記憶部402に帰還された画像データに対してさらに演算を施す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の装置間の大容量のデータ転送を制御するデータ転送制御装置に関する。
【背景技術】
【0002】
入出力装置からのデータを効率良く転送する手法の1つとして、入出力装置とシステムメモリとの間でデータ転送を行うDMA(Direct Memory Access)方式が知られている。DMA方式は、一般にデータ転送制御装置等と呼ばれる専用のハードウェアを必要とするが、入出力装置とシステムメモリとの間で直接的にデータ転送を行うことが可能であり、データ転送効率に優れている。また、プロセッサを介さずにデータ転送処理を行うことができるので、プロセッサの負荷を軽減することが可能である。これによって、システム全体の処理の高速化が実現される。
【0003】
このようなデータ転送制御装置をバスに接続する場合は、データ転送制御装置とバスとの間のインタフェースの整合性を考慮する必要がある。特に、データ転送制御装置を複数のバスに接続する場合には、例えば特許文献1に示されるような複数のバスI/F回路を備えたバスブリッジが必要である。特許文献1では、データ転送制御装置に中継装置を持たせることにより、複数のバスにデータ転送制御装置を接続することが可能である。また、この中継装置にデータ記憶部を持たせることでデータの連続転送を可能とした技術が特許文献2において提案されている。
【0004】
以上のようなDMA方式は、例えば、デジタルカメラ等の画像処理装置に用いられている。デジタルカメラにおいては、大容量の画像データを扱えるよう、画像処理部内にシステムメモリを設けるとともに、画像処理部の外部にDRAM等の大容量メモリを配置している。このような構成において、大容量メモリとシステムメモリとの間で画像データの転送を行う。また、画像処理部ではシステムメモリに画像データを一時的に蓄積しながら処理を施す。画像処理の終了後、処理されたデータが大容量メモリに格納されるか又はデジタルカメラの周辺装置に転送されることで出力される。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−134289号公報
【特許文献2】特開2004−355041号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年、デジタルカメラでは、撮像素子の高画素化や高性能化が進行し、また表示装置も高階調で高画質に対応した表示を行えるようになっている。このため、画像処理装置で処理すべき画像データのデータサイズも増大している。これに対し、画像処理装置内のシステムメモリは小容量であることが多い。
【0007】
また、画像処理装置で取り扱う画像データの高画質化に伴って画像処理の複雑度も増している状況にある。一例としてフィルタ処理について説明する。フィルタ処理は、画像データを複数の処理単位に分割し、分割した処理単位毎に所定のフィルタ演算を実行する処理である。このフィルタ処理の際のフィルタの性能を向上させるためには、カーネルサイズを拡大し且つ演算精度を上げる必要がある。この場合、1つの処理単位のフィルタ処理に必要となる画像データのデータサイズが増加する。1つの処理単位のデータサイズが増加すると、分割処理によるオーバーヘッド(負荷)が生じてしまう。このように、高画質化を図ることはシステム性能を低下させる一因となっている。
【0008】
本発明は、上記の事情に鑑みてなされたもので、データ転送量とメモリ使用量の削減、及び画像処理装置における負荷を軽減してシステム全体の処理スループットの向上を実現できるデータ転送制御装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的を達成するために、本発明の一態様のデータ転送制御装置は、データ転送指示を受けて、データ転送元装置から画像データを受信するデータ受信部と、前記画像データを記憶するデータ記憶部と、前記データ記憶部に接続された帰還信号線と、前記データ記憶部に記憶された画像データに対して施すデータ処理の内容に従って、前記データ記憶部に記憶された前記画像データに対して演算を施すデータ演算部と、前記データ処理の内容に従って、前記データ演算部で演算された画像データを出力するように制御するか、前記帰還信号線を介して前記データ記憶部に帰還させるように制御する制御部と、前記出力された画像データをデータ転送先装置に送信するデータ送信部と、を具備し、前記データ演算部は、前記データ記憶部に帰還された画像データに対してさらに演算を施すことを特徴とする。
【発明の効果】
【0010】
本発明によれば、データ転送量とメモリ使用量の削減、及び画像処理装置における負荷を軽減してシステム全体の処理スループットの向上を実現できるデータ転送制御装置を提供することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態に係るデータ転送制御装置を用いた画像処理装置の一例の構成を示す図である。
【図2】ベイヤ画像データの画素配列を示す図である。
【図3】データ転送制御装置の詳細な構成を示す図である。
【図4】データ演算部の構成例を示す図である。
【図5】内部制御部の構成例を示す図である。
【図6】データ転送制御装置の動作について示すフローチャートである。
【図7】ビニング処理後のベイヤ画像データの例を示す図である。
【図8】データ処理の内容をビニング処理とした場合の、第1のデータ処理及び第2のデータ処理の設定例を示す図である。
【図9】ビニング処理における1回目の加算処理の選択範囲について示す図である。
【図10】ビニング処理における2回目の加算処理の選択範囲について示す図である。
【図11】ビニング処理における3回目の加算処理の選択範囲について示す図である。
【図12】ビニング処理における4回目の加算処理の選択範囲について示す図である。
【図13】ビットシフト処理における選択範囲について示す図である。
【図14】ビットシフト処理後の画像データについて示す図である。
【図15】データ処理の内容をベイヤ画像データの二乗和をN回繰り返して演算するものとした場合の、第1のデータ処理及び第2のデータ処理の設定例を示す図である。
【図16】データ処理の内容をベイヤ画像データのリサイズ処理をN回繰り返すものとした場合の、第1のデータ処理及び第2のデータ処理の設定例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明の一実施形態に係るデータ転送制御装置を用いた画像処理装置の一例の構成を示す図である。ここで、図1は、画像処理装置の例として、デジタルカメラを示している。図1に示すデジタルカメラは、データ処理装置100と、設定部200と、大容量メモリ300と、データ転送制御装置400とを有している。ここで、データ処理装置100に含まれる各部はそれぞれインターコネクトバスを介してデータ転送制御装置400に接続されている。また、データ転送制御装置400は、大容量メモリ300に接続されている。
【0013】
図1において、データ処理装置100は、撮像部101と、画像生成部102と、画像圧縮部103と、画像表示部104と、画像記録部105とを有している。ここで、撮像部101、画像生成部102、画像圧縮部103、画像表示部104、画像記録部105はそれぞれが1つ以上の入出力I/F(インタフェース)を有していて、大容量メモリ300以外とのデータ転送も可能に構成されている。
【0014】
撮像部101は被写体を撮像し、この撮像によって得られた被写体の像をデジタルの画像データとして取り込む。撮像部101において取り込まれた画像データはインターコネクトバスを介してデータ転送制御装置400へ転送される。そして、この画像データは、データ転送制御装置400の制御に従って大容量メモリ300に格納される。なお、本実施形態において、撮像部101において得られる画像データはベイヤ画像データであるとする。ベイヤ画像データとは、R(赤)データとG(緑)データの行と、G(緑)データとB(青)データの行とが交互に配置される画像データのことである。図2にベイヤ画像データの画素配列を示す。
【0015】
画像生成部102は、大容量メモリ300からデータ転送制御装置400を介して読み出されて処理された画像データを、インターコネクトバスを介して受け取る。そして、画像生成部102は、受け取った画像データを処理する。画像生成部102において処理された画像データはインターコネクトバスを介してデータ転送制御装置400へ入力される。そして、この画像データは、データ転送制御装置400の制御に従って大容量メモリ300に格納される。
【0016】
画像圧縮部103は、画像データの記録時には、画像生成部102において処理され、大容量メモリ300に格納された画像データを圧縮する。また、画像データの再生時には、画像圧縮部103は、圧縮された画像データを伸張する。
画像表示部104は、画像生成部102で生成された画像データに基づく画像を表示する。画像記録部105は、画像圧縮部103で圧縮された画像データを記録する。
【0017】
設定部200は、例えばプロセッサであり、データ転送制御装置400の初期設定をするための特定情報をデータ転送制御装置400に出力する。
データ転送制御装置400は、データ処理装置100と大容量メモリ300との間のデータの入出力を中継する。また、本実施形態において、データ転送制御装置400は、データ処理装置100からインターコネクトバスを介して入力された画像データを内部で一時的に記憶し、この記憶した画像データに対して所定の処理を施した上で大容量メモリ300に出力する。この所定の処理は、四則演算のような単純な演算処理や画像データの特定性分を抽出する処理、及びこれらの処理の組み合わせの処理である。
【0018】
図3は、データ転送制御装置400の詳細な構成を示す図である。図3に示すように、データ転送制御装置400は、転送制御部401と、データ記憶部402と、データ処理部403と、転送制御部404とを有している。データ転送制御装置400は、データ読み出し用の転送制御部401とデータ書き込み用の転送制御部404の2つの転送制御部を有し、これら2つの転送制御部はそれぞれ大容量メモリ300とインターコネクトバスとに接続されている。
【0019】
データ受信部としての機能を有する転送制御部401は、設定部200からのDMA方式のデータ転送指示を受けて、データ転送元装置から所定の読み出し単位毎に入力されてくるデータを受け取る。なお、データ処理装置100から大容量メモリ300にデータの書き込みを行う場合には、データ処理装置100がデータ転送元装置となる。一方、大容量メモリ300からデータ処理装置100へデータの読み出しを行う場合には、大容量メモリ300がデータ転送元装置となる。
【0020】
データ記憶部402は、転送制御部401で受信された画像データを記憶する。ここで、本実施形態におけるデータ記憶部402は、単一或いは複数のFIFOメモリから構成され、転送制御部401から転送されてくる複数の読み出し単位毎の画像データを記憶できるだけの記憶容量を有している。
【0021】
データ処理部403は、データ記憶部402に記憶されたデータに対して設定部200からの指示に応じた所定の処理を実行する。このデータ処理部403は、データ選択部4031と、データ演算部4032と、内部制御部4033とを有している。
データ選択部4031は、データ記憶部402に記憶された複数読み出し単位のデータから、所定の処理の対象となるデータを選択する。
【0022】
データ演算部4032は、データ選択部4031によって選択されたデータに対して所定の処理の内容に応じた演算を実行する。図4は、データ演算部4032の構成例を示す図である。図4に示すように、データ演算部4032は、汎用的な演算回路4032a、4032b、4032c、4032dと、データ処理制御部4032eとを有している。演算回路4032aは、例えば、2つの16ビットデータが入力され、これら2つのデータを加算して出力する8個の加算器である。演算回路4032bは、例えば、2つの16ビットデータが入力され、これら2つのデータを乗算して出力する8個の乗算器である。演算回路4032cは、例えば1つの16ビットデータが入力され、この1つのデータをビットシフトする8個のシフトレジスタである。第1の演算回路としての加算器と乗算器とシフトレジスタとによって種々の四則演算を行うことが可能である。第2の演算回路としての演算回路4032dは、データ選択部4031で選択された範囲のデータを所定サイズにリサイズするリサイズ処理部である。これらの演算回路は、ソフトウェアで構成しても良いし、ハードウェアで構成しても良い。データ処理制御部4032eは、設定部200による設定に従って、データ選択部4031で選択されたデータに対して施す演算の内容を識別し、識別した演算の内容に対応した演算部を選択して演算を実行させる。
【0023】
内部制御部4033は、データ演算部4032によって演算されたデータを転送制御部404に出力するか、データ記憶部402に帰還させるかを制御する。図5は、内部制御部4033の構成例を示す図である。図5に示すように、内部制御部4033は、出力選択部4033aと、実行回数検出部4033bと、データ処理制御部4033cとを有している。出力選択部4033aは、データ処理制御部4033cからの指示に従って、データ演算部4032で演算されたデータの出力先を、転送制御部404とデータ記憶部402との間で切り替える。実行回数検出部4033bは、例えばデータ演算部4032からのデータの入力回数を計数することにより、データ演算部4032による演算の実行回数を検出し、検出結果をデータ処理制御部4033cに入力する。データ処理制御部4033cは、実行回数検出部4033bで検出された演算の実行回数の検出結果と設定部200による設定とに従って、出力選択部4033aによるデータの出力先を切り替えさせる。
【0024】
ここで、データ処理部403は、複数のデータを選択する構造であることから、データ記憶部402は複数のデータを同時に参照できるものとすることが望ましい。このような構成とすることにより、データ選択を行う際の転送レイテンシを抑えることができる。
【0025】
データ送信部としての機能を有する転送制御部404は、設定部200からのDMA方式のデータ転送指示を受けて、データ出力先装置に所定の書き込み単位毎にデータを出力する。なお、データ処理装置100から大容量メモリ300にデータの書き込みを行う場合には、大容量メモリ300がデータ出力先装置となる。一方、大容量メモリ300からデータ処理装置100へデータの読み出しを行う場合には、データ処理装置100がデータ出力先装置となる。
【0026】
以下、本実施形態におけるデータ転送制御装置400の動作を、具体例を示しながら説明する。上述したように、本実施形態では、データ転送制御装置400にデータ転送制御をさせるだけではなく、画像データに対する簡易的な処理も実行させる。図6は、データ転送制御装置400の動作について示すフローチャートである。ここでは、図6の動作に従ったデータ処理の具体例として、ベイヤ画像データにおける複数の同色成分の混合処理(以下、ビニング処理と言う)の例を説明する。また、ビニング処理として、ここでは、図2で示したベイヤ画像データ(原画像データ)を図7で示すような1/16サイズの画像データとする処理を例示する。なお、本実施形態におけるビニング処理は、画像サイズを1/16サイズとする処理に限られるものではない。
【0027】
まず、設定部200は、データ転送制御装置400の初期設定をした後で、データ転送制御装置400に対してデータ転送を指示する(ステップS1)。この初期設定として、設定部200は、データ転送制御装置400において実行する所定の処理を特定するための情報を設定する。この情報としては、データ転送の制御情報、画像フォーマット、データ処理内容、データ処理後の出力先、データ記憶部402からのデータ参照方法が含まれる。
【0028】
データ転送の制御情報は、例えば画像データの転送元のアドレスや画像データの転送先のアドレスといったデータ転送に必要な情報である。例えばビニング処理の場合にはデータ転送元装置が撮像部101、データ転送先装置が大容量メモリ300である。
画像フォーマットは、データ転送制御装置400によって受信される画像データの画像フォーマットを示す情報である。この画像フォーマットとしては、ベイヤやYC422といった画像形式を示す情報、1フレーム分の画像データにおける各画像データのビット数及び配置を示す情報、さらには各画像データの座標位置を示す情報等を含む。本実施形態で例としたビニング処理の場合に設定される画像フォーマットの例を図8に示している。なお、図8では、撮像部101から出力される画像データが12ビットのベイヤ画像データである例を示している。したがって、1回目の加算処理の際の画像フォーマットとしては、12ビットのベイヤを設定する。
【0029】
データ処理内容は、データ転送制御装置400によって実行させる処理の内容を示す情報である。本実施形態で例としたビニング処理の場合に設定される画像フォーマットの例を図8に示す。図8に示すように、本実施形態で例としたビニング処理は、第1のデータ処理と、第2のデータ処理の2段階の処理に分けられている。なお、図8の例では、第1のデータ処理は、加算処理である。一方、第2のデータ処理は、ビットシフト(右シフト)処理である。さらに、1/16サイズのビニング処理の場合、第1のデータ処理としての加算処理は4回繰り返す。
【0030】
データ処理後の出力先は、データ演算部4032によって演算された画像データの出力先が、データ記憶部402と転送制御部404の何れとするかを示す情報である。本実施形態で例としたビニング処理の場合に設定される出力先の例を図8に示す。図8に示すように、本実施形態の例のビニング処理の場合には、第1のデータ処理後の画像データについては出力先をデータ記憶部402に設定し、第2のデータ処理後の画像データについては出力先を転送制御部404に設定する。
【0031】
データの参照方法は、データ記憶部402に記憶された画像データをどのように読み出すかを示す情報である。
設定部200によってデータ転送の指示がなされると、転送制御部401は、データ転送元装置としての撮像部101から画像データを受信する(ステップS2)。そして、転送制御部401は、撮像部101から受信した画素毎に12ビットを有する画像データを、画素毎に16ビットを有する画像データとするようにビット拡張する(ステップS3)。ビット拡張を行うのは、データ転送元装置としての撮像部101から受信される画像データのビット長が、データ演算部4032内の演算部における処理に必要な画像データのビット長と異なっているためである。ビット拡張の後、転送制御部401は、ビット拡張した画像データをデータ記憶部402に記憶させる(ステップS4)。
【0032】
データ記憶部402に画像データが記憶されると、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第1のデータ処理としての加算処理を実行する(ステップS5)。その後、データ処理部403の内部制御部4033は、第1のデータ処理が終了したか否かを判定する(ステップS6)。図8で示したように、本実施形態で例としたビニング処理では、第1のデータ処理として4回の加算処理を行う。したがって、ステップS6の判定において、内部制御部4033のデータ処理制御部4033cは、実行回数検出部4033bで検出された演算の実行回数から、設定部200によって設定された回数である4回の加算処理が終了したか否かを判定する。ステップS6の判定において、第1のデータ処理が終了していない場合には処理がステップS4に戻る。この場合に、内部制御部4033のデータ処理制御部4033cは、データ演算部4032における演算結果のデータを、帰還信号線を介してデータ記憶部402に帰還させるように出力選択部4033aに指示する。そして、4回の加算処理が終了するまでステップS4〜S6の処理が繰り返される。
【0033】
ここで、データ処理部403における第1のデータ処理についてさらに説明する。データ記憶部402にビット拡張された画像データが記憶された後、データ選択部4031は、設定部200によって設定された画像データのフォーマットとデータ記憶部402からのデータ参照方法とに基づいて、画像データの有効ビット長と各画素の色配置の情報を算出する。
【0034】
初回の加算処理では、データ選択部4031は、図9の斜線部で示す単位毎に画像データを選択する。この範囲の画像データは、同色の画素のデータを横方向に4画素、縦方向に4画素の計16画素ずつ含んでいる。また、画像データの有効ビット長は、画像データのフォーマットが12ビットベイヤ画像データに設定されているので、12ビットとなる。
【0035】
画像データが選択された後、データ演算部4032は、選択された画像データにおいて縦方向に隣接する同色の2画素のデータを加算器を用いて加算する。即ち、以下の演算を行う。ここで、以下はR画素について示しているが、Gr画素、Gb画素、B画素も同様の演算を行う。
R1(2m,4n)=R(4m,4n)+R(4m,4(n+1))
R1(2(m+1),4n)=R(4(m+2),4n)+R(4(m+3),4n)
R1(2m,4(n+1))=R(4m,4(n+1))+R(4(m+1),4(n+1))
R1(2(m+1),4(n+1))=R(4(m+2),4(n+1))+R(4(m+3),4(n+1)) (式1)
R1(2m,4(n+2))=R(4m,4(n+2))+R(4(m+1),4(n+2))
R1(2(m+1),4(n+2))=R(4(m+2),4(n+2))+R(4(m+3),4(n+2))
R1(2m,4(n+3))=R(4m,4(n+3))+R(4(m+1),4(n+3))
R1(2(m+1),4(n+3))=R(4(m+2),4(n+3))+R(4(m+3),4(n+3))
(式1)の演算により、図10に示すような、原画像データに対して画素数が1/2の画像データが得られる。内部制御部4033は、この図10に示す画像データをデータ記憶部402に帰還させる。
【0036】
次の加算処理では、データ選択部4031は、図10の斜線部で示す単位毎に画像データを選択する。この範囲の画像データは、同色の画素のデータを横方向に4画素、縦方向に2画素の計8画素ずつ含んでいる。また、画像データの有効ビット長は13ビットである。これは、12ビット同士のデータを加算したためである。
【0037】
画像データが選択された後、データ演算部4032は、選択された画像データにおいて縦方向に隣接する同色の2画素のデータを加算器を用いて加算する。即ち、以下の演算を行う。ここで、以下はR画素について示しているが、Gr画素、Gb画素、B画素も同様の演算を行う。
R2(m,4n)=R1(2m,4n)+R1(2(m+1),4n)
R2(m,4(n+1))=R1(2m,4(n+1))+R1(2(m+1),4(n+1)) (式2)
R2(m,4(n+2))=R1(2m,4(n+2))+R1(2(m+1),4(n+2))
R2(m,4(n+3))=R1(2m,4(n+3))+R1(2(m+1),4(n+3))
(式2)の演算により、図11に示すような、原画像データに対して画素数が1/4の画像データが得られる。内部制御部4033は、この図11に示す画像データをデータ記憶部402に帰還させる。
【0038】
次の加算処理では、データ選択部4031は、図11の斜線部で示す単位毎に画像データを選択する。この範囲の画像データは、同色の画素のデータを横方向に4画素、縦方向に1画素の計4画素ずつ含んでいる。また、画像データの有効ビット長は14ビットである。これは、13ビット同士のデータを加算したためである。
【0039】
画像データが選択された後、データ演算部4032は、選択された画像データにおいて横方向に隣接する同色の2画素のデータを加算器を用いて加算する。即ち、以下の演算を行う。ここで、以下はR画素について示しているが、Gr画素、Gb画素、B画素も同様の演算を行う。
R3(m,2n)=R2(m,4n)+R2(m,4(n+1)) (式3)
R3(m,2(n+1))=R2(m,4(n+2))+2(4m,4(n+3))
(式3)の演算により、図12に示すような、原画像データに対して画素数が1/8の画像データが得られる。内部制御部4033は、この図12に示す画像データをデータ記憶部402に帰還させる。
【0040】
次の加算処理では、データ選択部4031は、図12の斜線部で示す単位毎に画像データを選択する。この範囲の画像データは、同色の画素のデータを横方向に2画素、縦方向に1画素の計2画素ずつ含んでいる。また、画像データの有効ビット長は15ビットである。これは、14ビット同士のデータを加算したためである。
【0041】
画像データが選択された後、データ演算部4032は、選択された画像データにおいて横方向に隣接する同色の2画素のデータを加算器を用いて加算する。即ち、以下の演算を行う。ここで、以下はR画素について示しているが、Gr画素、Gb画素、B画素も同様の演算を行う。
R4(m,n)=R3(m,2n)+R3(m,2(n+1)) (式4)
(式4)の演算により、図13に示すような、原画像データに対して画素数が1/16の画像データが得られる。内部制御部4033は、この図13に示す画像データをデータ記憶部402に帰還させる。なお、この加算処理によって画像データの有効ビット長は16ビットとなる。
【0042】
ステップS6の判定において、第1のデータ処理としての4回の加算処理が終了した後、データ処理部403は、演算結果の画像データをデータ記憶部402に記憶させる(ステップS7)。そして、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第2のデータ処理としてのビットシフト処理を実行する(ステップS8)。その後、データ処理部403の内部制御部4033は、第2のデータ処理が終了したか否かを判定する(ステップS9)。図8で示したように、本実施形態で例としたビニング処理では、第2のデータ処理として1回のビットシフト処理を行う。したがって、ステップS9の判定において、内部制御部4033のデータ処理制御部4033cは、実行回数検出部4033bで検出された演算の実行回数から、設定部200によって設定された回数である1回のビットシフト処理が終了したか否かを判定する。ステップS9の判定において、第2のデータ処理が終了していない場合には処理がステップS7に戻る。この場合に、内部制御部4033のデータ処理制御部4033cは、データ演算部4032における演算結果のデータを、帰還信号線を介してデータ記憶部402に帰還させるように出力選択部4033aに指示する。なお、ビニング処理の場合には、繰り返し処理は行われない。したがって内部制御部4033のデータ処理制御部4033cは、データ演算部4032における演算結果のデータを、転送制御部404に出力するように出力選択部4033aに指示する。この後、転送制御部404は、データ転送先装置としての大容量メモリ300にビニング処理後の画像データを送信する(ステップS10)。
【0043】
ここで、データ処理部403における第2のデータ処理についてさらに説明する。データ記憶部402に第1の処理後の画像データが記憶された後、データ選択部4031は、設定部200によって設定された画像データのフォーマットとデータ記憶部402からのデータ参照方法とに基づいて、画像データの有効ビット長と各画素の色配置の情報を算出する。
【0044】
そして、データ選択部4031は、図13の斜線部で示す単位毎に画像データを選択する。この範囲の画像データは、同色の画素のデータを1画素ずつ含んでいる。また、上述したように、画像データの有効ビット長は16ビットである。
画像データが選択された後、データ演算部4032は、選択された画像データを、シフトレジスタを用いて4ビット分だけ右シフトさせる。4ビットの右シフトにより、各画素のデータは値が1/16されたのと等価となる。また、4ビットの右シフトによって図14に示すようなビニング処理後の画像データが得られる。この図14に示す画像データは、1画素当たりのビット長が原画像と同じ12ビットとなる。
【0045】
以上、図9〜図14で示した演算を実行することにより、原画像データに対して以下に示すビニング処理が行われたことになる。
R'(m,n)=(R(4m,4n)+R(4m,4(n+1))+R(4m,4(n+2))+R(4m,4(n+3))
+R(4(m+1),4n)+R(4(m+1),4(n+1))+R(4(m+1),4(n+2))+R(4(m+1),4(n+3))
+R(4(m+2),4n)+R(4(m+2),4(n+1))+R(4(m+2),4(n+2))+R(4(m+2),4(n+3))
+R(4(m+3),4n)+R(4(m+3),4(n+1))+R(4(m+3),4(n+2))+R(4(m+3),4(n+3)))/16
G'(m,n)=(G(4m,4n)+G(4m,4(n+1))+G(4m,4(n+2))+G(4m,4(n+3))
+G(4(m+1),4n)+G(4(m+1),4(n+1))+G(4(m+1),4(n+2))+G(4(m+1),4(n+3))
+G(4(m+2),4n)+G(4(m+2),4(n+1))+G(4(m+2),4(n+2))+G(4(m+2),4(n+3))
+G(4(m+3),4n)+G(4(m+3),4(n+1))+G(4(m+3),4(n+2))+G(4(m+3),4(n+3)))/16
B'(m,n)=(B(4m,4n)+B(4m,4(n+1))+B(4m,4(n+2))+B(4m,4(n+3))
+B(4(m+1),4n)+B(4(m+1),4(n+1))+B(4(m+1),4(n+2))+B(4(m+1),4(n+3))
+B(4(m+2),4n)+B(4(m+2),4(n+1))+B(4(m+2),4(n+2))+B(4(m+2),4(n+3))
+B(4(m+3),4n)+B(4(m+3),4(n+1))+B(4(m+3),4(n+2))+B(4(m+3),4(n+3)))/16
(式5)
なお、G’(m,n)についてはGr画素の分とGb画素の分のそれぞれ得られる。
【0046】
以上説明したように、本実施形態によれば、データ転送制御装置400を介してのデータ転送の際に所定の処理を施すことができる。これにより、大容量メモリ300等に転送される画像データのデータサイズが減少するため、大容量メモリ300等の使用量を削減することができる。
【0047】
即ち、本実施形態では、メモリアクセスを行う際に、データ転送制御装置400内で汎用的な処理の組み合わせで所定のデータ処理が実行可能なようにデータ記憶部402からデータを選択する。これにより、画像処理装置(デジタルカメラ)内で頻繁に実行されるデータ処理を一般化して演算資源の共有化を図ることが可能である。
【0048】
また、データ転送制御装置400内にて処理を行うことによって、システム全体の処理性能を低下させずにデータ出力先装置にデータを出力することができる。さらに、データ処理装置100の各部において一部の処理を行う必要がなくなるのでデータ処理装置100の各部におけるデータ処理の負荷軽減の効果もある。
【0049】
また、本実施形態では、データ処理の内容に応じて、データ演算部4032で演算されたデータを内部制御部4033からデータ記憶部402に帰還させるようにしている。このため、データ演算部4032に8個の加算部しかなくとも、(式5)で示したようなビニング処理を行うことが可能である。即ち、本実施形態では、データ演算部4032で演算されたデータを内部制御部4033からデータ記憶部402に帰還させるようにすることで、1つの複雑な演算を複数の簡易な演算の組み合わせに分解して実行することが可能である。このため、少ないリソースで種々のデータ処理を実現できる。
【0050】
また、本実施形態では、データ処理の内容に応じてサイズ(画素数)が変化するデータ処理であっても、第1のデータ処理と第2のデータ処理の間でデータを引き継ぐことが可能である。このため、データ転送制御装置の外部のトラフィックへの負担を軽減することも可能である。
【0051】
ここで、上述の実施形態では、第2のデータ処理における演算結果の出力先が転送制御部404となっている。第2のデータ処理においても第1のデータ処理のような複数段階の処理が必要となる場合には、最後の出力先を転送制御部404とし、残りの出力先はデータ記憶部402とする必要がある。
【0052】
また、上述の実施形態では、第1のデータ処理として加算処理を実行し、第2のデータ処理としてビットシフト処理を実行するようにしている。これは、データ処理の内容がビニング処理のためである。データ処理の内容がビニング処理でなければ、第1のデータ処理と第2のデータ処理とで同じ処理を行うようにしても良い。
【0053】
図15は、データ処理の内容をベイヤ画像データの二乗和をN回繰り返して演算するものとした場合の、第1のデータ処理及び第2のデータ処理の設定例を示す図である。図15に示す例では、第1のデータ処理としてN−1回の二乗和処理を設定する。また、第2のデータ処理として1回の二乗和処理を設定する。
【0054】
実際の処理の流れは、図6で示したものと同様である。即ち、設定部200によってデータ転送の指示がなされると、転送制御部401は、データ転送元装置としての撮像部101から画像データを受信する(ステップS1)。そして、転送制御部401は、撮像部101から受信した画素毎に12ビットを有する画像データを、画素毎に16ビットを有する画像データとするようにビット拡張する(ステップS2)。ビット拡張の後、転送制御部401は、ビット拡張した画像データをデータ記憶部402に記憶させる(ステップS3)。
【0055】
データ記憶部402に画像データが記憶されると、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第1のデータ処理としての二乗和処理を実行する(ステップS5)。その後、データ処理部403の内部制御部4033は、第1のデータ処理が終了したか否かを判定する(ステップS6)。ステップS6の判定において、第1のデータ処理、即ちN−1回の二乗和処理が終了していない場合には処理がステップS4に戻る。この場合に、内部制御部4033のデータ処理制御部4033cは、データ演算部4032における演算結果のデータを、帰還信号線を介してデータ記憶部402に帰還させるように出力選択部4033aに指示する。そして、N−1回の二乗和処理が終了するまでステップS4〜S6の処理が繰り返される。
【0056】
なお、二乗和処理において、データ選択部4031は、例えば8画素分を1単位として、同一の画素のデータを2回ずつ選択する。画像データが選択された後、データ演算部4032は、2個ずつ選択された同じ画素のデータを8個の乗算器を用いて乗算し、各乗算器の出力を4個の加算器を用いて加算する。このような演算を画像データの全範囲に対して実行する。
【0057】
ステップS6の判定において、第1のデータ処理としてのN−1回の二乗和処理が終了した後、データ処理部403は、演算結果の画像データをデータ記憶部402に記憶させる(ステップS7)。そして、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第2のデータ処理としての1回の二乗和処理を実行する(ステップS8)。その後、データ処理部403の内部制御部4033は、第2のデータ処理が終了したか否かを判定する(ステップS9)。ステップS9の判定において、第2のデータ処理が終了していない場合には処理がステップS7に戻る。また、ステップS9の判定において、第2のデータ処理が終了した場合に、転送制御部404は、データ転送先装置としての大容量メモリ300にビニング処理後の画像データを送信する(ステップS10)。
【0058】
このような変形例では、設定部200によって設定できるデータ処理の数が第1のデータ処理と第2のデータ処理の2種類のみであっても、繰り返し処理によって、1回の命令で実質的に処理できるデータ処理数を増やすことができる。なお、設定できるデータ処理の数を3つ以上としても良い。この場合には、複数のデータ処理を繰り返し実行することも可能となる。さらに、同一のデータ処理の場合、データ処理の中間出力の格納先を考慮する必要がない。このため、設定が容易である。
【0059】
図16は、データ処理の内容をベイヤ画像データのリサイズ処理をN回繰り返すものとした場合の、第1のデータ処理及び第2のデータ処理の設定例を示す図である。図16に示す例では、第1のデータ処理としてN−1回のリサイズ処理を設定する。また、第2のデータ処理として1回のリサイズ処理を設定する。
【0060】
実際の処理の流れは、図6で示したものと同様である。即ち、設定部200によってデータ転送の指示がなされると、転送制御部401は、データ転送元装置としての撮像部101から画像データを受信する(ステップS1)。そして、転送制御部401は、撮像部101から受信した画素毎に12ビットを有する画像データを、画素毎に16ビットを有する画像データとするようにビット拡張する(ステップS2)。ビット拡張の後、転送制御部401は、ビット拡張した画像データをデータ記憶部402に記憶させる(ステップS3)。
【0061】
データ記憶部402に画像データが記憶されると、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第1のデータ処理としてのリサイズ処理を実行する(ステップS5)。その後、データ処理部403の内部制御部4033は、第1のデータ処理が終了したか否かを判定する(ステップS6)。ステップS6の判定において、第1のデータ処理、即ちN−1回のリサイズ処理が終了していない場合には処理がステップS4に戻る。この場合に、内部制御部4033のデータ処理制御部4033cは、データ演算部4032における演算結果のデータを、帰還信号線を介してデータ記憶部402に帰還させるように出力選択部4033aに指示する。そして、N−1回のリサイズ処理が終了するまでステップS4〜S6の処理が繰り返される。
【0062】
なお、リサイズ処理は、単純間引きや補間処理の他、ニアレストネイバー法やバイキュービック法等の従来周知の手法を用いることが可能である。したがって、リサイズ処理についての詳細については説明を省略する。
ステップS6の判定において、第1のデータ処理としてのリサイズ処理が終了した後、データ処理部403は、演算結果の画像データをデータ記憶部402に記憶させる(ステップS7)。そして、データ処理部403は、このデータ記憶部402に記憶された画像データに対して第2のデータ処理としての1回のリサイズ処理を実行する(ステップS8)。その後、データ処理部403の内部制御部4033は、第2のデータ処理が終了したか否かを判定する(ステップS9)。ステップS9の判定において、第2のデータ処理が終了していない場合には処理がステップS7に戻る。また、ステップS9の判定において、第2のデータ処理が終了した場合に、転送制御部404は、データ転送先装置としての大容量メモリ300にビニング処理後の画像データを送信する(ステップS10)。
【0063】
このような変形例では、帰還信号線を利用した繰り返し処理により、リサイズ処理部によるリサイズ処理の上限値を超える拡大処理や縮小処理であっても実行可能である。また、リサイズ処理のためにデータ転送制御装置400に新たに画像データを入力する必要もない。
【0064】
以上実施形態に基づいて本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、上述したような課題を解決でき、上述したような効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。
【符号の説明】
【0065】
100…データ処理装置、101…撮像部、102…画像生成部、103…画像圧縮部、104…画像表示部、105…画像記録部、200…設定部、300…大容量メモリ、400…データ転送制御装置、401…転送制御部、402…データ記憶部、403…処理部、404…転送制御部、4031…データ選択部、4032…データ演算部、4033…内部制御部

【特許請求の範囲】
【請求項1】
データ転送指示を受けて、データ転送元装置から画像データを受信するデータ受信部と、
前記画像データを記憶するデータ記憶部と、
前記データ記憶部に接続された帰還信号線と、
前記データ記憶部に記憶された画像データに対して施すデータ処理の内容に従って、前記データ記憶部に記憶された前記画像データに対して演算を施すデータ演算部と、
前記データ処理の内容に従って、前記データ演算部で演算された画像データを出力するように制御するか、前記帰還信号線を介して前記データ記憶部に帰還させるように制御する制御部と、
前記出力された画像データをデータ転送先装置に送信するデータ送信部と、
を具備し、
前記データ演算部は、前記データ記憶部に帰還された画像データに対してさらに演算を施すことを特徴とするデータ転送制御装置。
【請求項2】
前記データ処理の内容として前記画像データに対して施す演算の実行回数が設定され、
前記制御部は、前記データ演算部によって施された演算の回数が前記設定された実行回数に達していない場合には、前記データ演算部で演算された画像データを前記データ記憶部に帰還させるように制御し、前記データ演算部によって施された演算の回数が前記設定された実行回数に達した場合には、前記データ演算部で演算された画像データを出力するように制御することを特徴とする請求項1に記載のデータ転送制御装置。
【請求項3】
前記データ処理の内容として前記データ演算部で演算させる複数のデータ処理の内容がそれぞれ設定され、
前記データ演算部で演算させる複数のデータ処理の内容が異なっていることを特徴とする請求項1又は2に記載のデータ転送制御装置。
【請求項4】
前記データ処理の内容として前記データ演算部で演算させる複数のデータ処理の内容がそれぞれ設定され、
前記データ演算部で演算させる複数のデータ処理の内容が同一であることを特徴とする請求項1又は2に記載のデータ転送制御装置。
【請求項5】
前記データ演算部で演算させる複数のデータ処理の内容が複数回のリサイズ処理であることを特徴とする請求項4に記載のデータ転送制御装置。
【請求項6】
前記データ演算部は、前記画像データに対して四則演算をするための複数の第1の演算回路を有する第1の演算部と、前記画像データに対してリサイズ処理を施すための第2の演算回路を備えた第2の演算部と、を有し、前記複数のデータ処理の内容に応じて、前記第1の演算部が有する第1の演算回路と前記第2の演算部が有する第2の演算回路との選択を行ってから前記演算を実行することを特徴とする請求項3乃至5の何れか1項に記載のデータ転送制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate