説明

情報処理装置及びメモリ管理方法

【課題】 転送装置から転送されてくる画像データを効率的に処理できる情報処理装置およびメモリ管理方法を提供することを目的とする。
【解決手段】 実施形態によれば、情報処理装置は、メモリと、テーブルと、変更手段と、通知手段とを有する。メモリは、複数の画像データを保持する複数のバッファ領域を有する。テーブルは、複数のバッファ領域を画像データが書き込まれる受信バッファと画像データを保持する保持バッファとに割り当てる。変更手段は、前記受信バッファに書き込まれた画像データを保持する場合、前記保持すべき画像データが書き込まれた受信バッファと保持バッファとを入れ替える。通知手段は、変更手段により受信バッファと保持バッファとを入れ替えた場合、変更後の受信バッファを示す情報を画像転送元へ通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置及びメモリ管理方法に関する。
【背景技術】
【0002】
情報処理装置には、転送装置から順次転送されてくる画像データに対して画像処理を施すものがある。また、DMA転送装置は、情報処理装置の制御部を介さずに、直接的に情報処理装置内のメモリに設けられた受信バッファに画像データを書き込む機能を有する。DMA転送装置により受信バッファに書き込まれた画像データに対して画像処理を施す場合、情報処理装置は、DMA転送装置によってバッファ上の画像データが上書きされないように、画像データを受信バッファから保持バッファへ物理的にコピーする処理が必要となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−248003号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
この発明は、転送装置から転送されてくる画像データを効率的に処理できる情報処理装置及びメモリ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態によれば、情報処理装置は、メモリと、テーブルと、変更手段と、通知手段とを有する。メモリは、複数の画像データを保持する複数のバッファ領域を有する。テーブルは、複数のバッファ領域を画像データが書き込まれる受信バッファと画像データを保持する保持バッファとに割り当てる。変更手段は、前記受信バッファに書き込まれた画像データを保持する場合、前記保持すべき画像データが書き込まれた受信バッファと保持バッファとを入れ替える。通知手段は、変更手段により受信バッファと保持バッファとを入れ替えた場合、変更後の受信バッファを示す情報を画像転送元へ通知する。
【図面の簡単な説明】
【0006】
【図1】図1は、画像転送システムの構成例を概略的に示す図である。
【図2】図2は、バッファ参照テーブルの例を示す図である。
【図3】図3は、画像処理システムにける全体的な処理の流れを説明するためのフローチャートである。
【図4】図4は、バッファ参照テーブルにおける状態遷移の例を示す図である。
【図5】図5は、情報処理装置におけるメモリ管理処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照して説明する。
図1は、実施形態に係る画像処理システムのハードウエア構成例を概略的に示す図である。
画像処理システムは、カメラ1、DMA(Direct Memory Access)転送装置2、および、情報処理装置3を有する。カメラ1は、画像データを生成する画像生成部として機能する。たとえば、カメラ1は、撮影した画像をデジタル画像データとして出力するデジタルカメラにより構成する。カメラ1は、撮影した画像の画像データをDMA転送装置2へ送信する。
【0008】
DMA転送装置2は、データを直接的に外部のメモリに書き込めるデータ転送装置である。DMA転送装置2は、制御部11およびバッファメモリ12を有する。制御部11は、DMA転送装置2の動作を司るものであり、データ転送の制御を行う。バッファメモリ12は、データを一時的に保持する。バッファメモリ12は、たとえば、FIFO方式のメモリであり、カメラ1からの画像データを受信する受信バッファメモリとして機能する。
【0009】
制御部11は、データの転送先を指定する転送アドレステーブル11aを有する。制御部11は、情報処理装置3から転送用のバッファ(受信バッファ)のアドレスを示す通知を受けて転送アドレステーブル11aを随時更新する。制御部11は、転送アドレステーブル11aを参照してデータの転送先(書込先)となる情報処理装置3内の外部メモリにおけるアドレス(転送アドレス)を決定する。
【0010】
すなわち、図1に示す構成の画像処理システムにおいては、情報処理装置3の外部メモリへ転送するDMA転送装置2は、カメラ1から出力される画像データを一時的にバッファメモリ12に保持する。DMA転送装置2の制御部11は、転送アドレステーブル11aを参照して、情報処理装置3内の外部メモリに設けられた受信バッファのアドレス(転送アドレス)を決定する。転送アドレスを決定すると、制御部11は、バッファメモリ12に記憶した画像データを情報処理装置3内の外部メモリにおける受信バッファへ直接的に転送する(書き込む)。
【0011】
次に、情報処理装置3の構成について説明する。
図1に示す構成例では、情報処理装置3は、制御部21、外部メモリ22、および、画像処理部23を有する。制御部21は、情報処理装置3全体の動作を司るものである。制御部21は、プロセッサ(CPU)、RAMおよびROMなどを有し、プロセッサがROMなどに記憶したプログラムを実行することにより様々な処理を実現する。たとえば、制御部21は、DMA転送装置2から転送される画像データを記憶するために、外部メモリ22に設けたバッファ領域(バッファメモリ)を管理するメモリ管理機能を有する。
【0012】
外部メモリ22は、複数のバッファ領域R1、R2、R3を有する。外部メモリ22の複数のバッファ領域R1、R2、R3には、受信バッファあるいは保持バッファが割り当てられる。外部メモリ22の受信バッファは、DMA転送装置2から直接的にデータが転送されるバッファメモリである。言い換えれば、本画像処理システムにおいては、DMA転送装置2は、情報処理装置3の制御部21を介さないで、外部メモリ22の受信バッファにデータが書き込めるようになっている。
【0013】
なお、図1に示す構成例において、複数のバッファ領域を有する外部メモリ22とメモリ管理機能により複数のバッファ領域の動作を制御する制御部21とは、メモリ管理部25として機能する。
【0014】
また、画像処理部23は、DMA転送装置2から転送されてきた画像データ(カメラ1が撮影した画像)に対して画像処理を施すものである。画像処理部23は、画像処理中に画像データが更新(上書き)されないように、外部メモリ22における保持バッファに記憶された画像データに対して画像処理を施すように制御される。
【0015】
制御部21は、受信バッファおよび保持バッファの割り当てを示すバッファ参照テーブル24を有する。図1に示す構成例では、外部メモリ22に3つのバッファ領域RA、RB、RCが設けられる例を示している。この場合、バッファ参照テーブル24は、3つのバッファ領域を2つの受信バッファ(ダブルバッファ)と保持バッファとに割り当てられた情報を保持する。
【0016】
図2は、バッファ参照テーブル24の構成例を示す図である。
図2に示す例において、バッファ参照テーブル24は、2つの受信バッファと1つの保持バッファとを設定する。各バッファには、たとえば、外部メモリ22における先頭アドレスで指定されるバッファ領域RA、RB、RCが割り当てられる。図2に示す例では、第1の受信バッファには先頭アドレスが「a」のバッファ領域RAが割り当てられ、第2の受信バッファには先頭アドレスが「b」のバッファ領域RBが割り当てられ、保持バッファには先頭アドレスが「c」のバッファ領域RCが割り当てられている。また、図2に示す構成例では、画像データの転送先として選択した領域(使用状況)を示す情報も付加されている。
【0017】
2つの受信バッファは、順番(交互)にDMA転送装置2から画像データが直接的に書き込まれるバッファとして使用される。保持バッファは、DMA転送装置2から上書きされることがないように、画像データを保持するバッファメモリである。たとえば、画像処理部23から画像取得要求があった場合に、処理対象となる画像データを記憶している受信バッファが保持バッファと入れ替えられる。保持バッファと受信バッファとの入れ替えは、バッファ参照テーブル24において、保持バッファのアドレス情報と受信バッファのアドレス情報とを入れ替える(互いの先頭アドレスを書き換える)ことにより実現できる。
【0018】
なお、本実施形態では、2つの受信バッファと1つの保持バッファとがバッファ参照テーブルにより定義される例を想定して説明するが、これに限定されるものではない。たとえば、受信バッファは、3以上の複数であっても良い。この場合、受信バッファは、順番にローテーションして使用すれば良い。
【0019】
次に、画像処理システム全体における処理の流れについて説明する。
図3は、画像処理システムにおける動作シーケンス図である。
まず、メモリ管理部25としての情報処理装置3の制御部21は、バッファ参照テーブル24を参照して、DMA転送装置2から次に画像データが転送されるべき受信バッファを決定する(ステップS11、S15、S19)。制御部21は、複数の受信バッファに対して順番に画像データが書き込まれるように、DMA転送装置2から次に画像データが転送されるべき受信バッファを決定する。
【0020】
たとえば、図2に示すように2つの受信バッファが設定されている場合、制御部21は、2つの受信バッファに対して交互に画像データが書き込まれるように、DMA転送装置2から次に画像データが転送されるべき受信バッファを決定する。
画像データを受信する受信バッファを決定すると、制御部21は、決定した受信バッファを示す情報として外部メモリ22における先頭アドレス(転送アドレス)をDMA転送装置2へ通知する(ステップS12、S16、S20)。
【0021】
DMA転送装置2は、情報処理装置3から通知された受信バッファを示す情報を制御部11の転送アドレステーブル11aに保存する。この状態において、DMA転送装置2のバッファメモリ12には、カメラ1が撮影した画像データが書き込まれる(ステップS13、S17、S21)。カメラ1からの画像データがバッファメモリ12に書き込まれると、DMA転送装置2の制御部11は、転送アドレステーブル11aで指定される情報処理装置3内の外部メモリ22における転送アドレスにバッファメモリ12に書き込まれた画像データを直接的に書き込む画像転送処理を行う(ステップS14、S18、S22)。
【0022】
DMA転送装置2と情報処理装置3(のメモリ管理部25)とは、上記ステップS11〜S14の処理を繰り返し実行する。これにより、カメラ1が撮影した画像データは、情報処理装置3の複数の受信バッファに順番に書き込まれる。
【0023】
また、情報処理装置3では、任意のタイミングで、画像処理部23が制御部21に対して処理対象とする画像データを要求する(ステップS23)。画像処理部23から画像要求を受信した場合、制御部21は、処理対象とする画像データを記憶している受信バッファを決定する。処理対象とする画像データを記憶している受信バッファを決定すると、制御部21は、処理対象の画像データを保持する受信バッファと現在の保持バッファとを入れ替える(ステップS24、S25)。すなわち、制御部21は、バッファ参照テーブル24において、処理対象の画像データを保持する受信バッファのアドレスと保持バッファのアドレスとを交換する。処理対象の画像データを保持する受信バッファと保持バッファとを入れ替えると、制御部21は、保持バッファに変更された領域に記憶している画像データを処理対象の画像データとして画像処理部23へ通知する(S26)。
【0024】
たとえば、図2に示す例において、第1受信バッファに設定されている先頭アドレス「a」の領域RAに記憶した画像データを画像処理の処理対象とする場合、制御部21は、テーブル24において、保持バッファの先頭アドレスを「a」に書き換え、第1受信バッファの先頭アドレスを「c」に書き換える。これにより。画像データを物理的にコピーすることなく、第1受信バッファと保持バッファとを論理的に入れ替えることができ、受信バッファで受信した画像データを高速に画像処理部23へ提供できる。
【0025】
また、第1受信バッファと保持バッファとの入れ替えによりバッファ参照テーブル24を更新した後、制御部21は、上記ステップS11〜S14の処理と同様に、テーブル24を参照して受信バッファの領域を決定し(S27、S31)、決定した受信バッファの先頭アドレス(転送アドレス)をDMA転送装置2へ通知する(S28、S32)。DMA転送装置2は、通知された転送アドレスを設定し、カメラ1からの画像データをバッファメモリ12で受信し(S29、S33)、バッファメモリ12に格納した画像データを設定した転送アドレスへ転送する(S30、S34)。
【0026】
次に、図3に示す処理の流れを具体例を挙げて説明する。
図4は、図3に示す処理によるバッファ参照テーブル24の遷移状態の例を示す図である。
たとえば、図3に示す例において、情報処理装置3の制御部21は、まず、バッファ参照テーブル24を参照して受信バッファを領域RAに決定するものとする(ステップS11)。すると、制御部21は、転送アドレスとして領域RAの先頭アドレス「a」をDMA転送装置2へ通知する(ステップS12)。DMA転送装置2は、通知された転送アドレス「a」を設定し、カメラ1からの第1の画像データをバッファメモリ12で受信し(ステップS13)、バッファメモリ12に格納した第1の画像データを転送アドレス「a」へ転送する(ステップS14)。
【0027】
次に、情報処理装置3の制御部21は、バッファ参照テーブル24を参照して領域RAの次に画像データを受信する受信バッファを領域RBに決定し(ステップS15)、転送アドレスとして領域RBの先頭アドレス「b」をDMA転送装置2へ通知する(ステップS16)。DMA転送装置2は、情報処理装置3から通知された転送アドレス「b」を設定し、カメラ1からの第2の画像データをバッファメモリ12で受信し(ステップS17)、バッファメモリ12に格納した第2の画像データを転送アドレス「b」へ転送する(ステップS18)。
【0028】
次に、情報処理装置3の制御部21は、バッファ参照テーブル24を参照して、領域RBの次に画像データを受信する受信バッファを領域RAに決定し(ステップS19)、転送アドレスとして領域RAの先頭アドレス「a」をDMA転送装置2へ通知する(ステップS20)。DMA転送装置2は、情報処理装置3から通知された転送アドレス「a」を設定し、カメラ1からの第3の画像データをバッファメモリ12で受信し(ステップS21)、バッファメモリ12に格納した第3の画像データを転送アドレス「b」へ転送する(ステップS22)。
【0029】
上記ステップS11〜S22の処理によれば、図4の(1)に示すように、バッファ参照テーブル24の状態が遷移する。すなわち、2つの受信バッファを設定する場合、情報処理装置3の制御部21は、2つの受信バッファにはDMA転送装置2から交互に画像データが書き込まれるようにメモリを管理する。
【0030】
さらに、情報処理装置3の制御部21は、画像処理部23から画像取得要求を受信した場合(ステップS23)、バッファ参照テーブル24を参照して、処理対象となる画像データを記憶している受信バッファを領域RAに決定する。処理対象となる画像データを記憶している受信バッファが先頭アドレス「a」の領域RAであると判断した場合、制御部21は、バッファ参照テーブル24において、処理対象の画像データを保持している受信バッファの先頭アドレス「a」と保持バッファの先頭アドレス「c」とを交換する(ステップS24、S25)。受信バッファと保持バッファとを入れ替えると、制御部21は、保持バッファに変更した領域RAに記憶した画像データを処理対象の画像データとして画像処理部23へ通知する(ステップS26)。
【0031】
すなわち、制御部21は、画像処理部23からの画像要求に応じて、処理対象の画像データを保持した先頭アドレス「a」の領域RAを保持バッファに設定変更し(ステップS24)、先頭アドレス「c」の領域RCを受信バッファに設定変更する(ステップS25)。上記ステップS24〜25の処理によれば、図4の(2)に示すように、バッファ参照テーブル24の状態が遷移する。すなわち、受信バッファであった領域RAを保持バッファに変更し、保持バッファであった領域RCを受信バッファに変更する(入替える)ようにメモリを管理する。
【0032】
また、バッファ参照テーブル24を更新した後(受信バッファと保持バッファとを入れ替えた後)、情報処理装置3の制御部21は、バッファ参照テーブル24を参照して、次に画像データを受信する受信バッファを先頭アドレスが「b」の領域RBに決定し(ステップS27)、転送アドレスとして領域RBの先頭アドレス「b」をDMA転送装置2へ通知する(ステップS28)。DMA転送装置2は、情報処理装置3から通知された転送アドレス「b」を設定し、カメラ1からの第4の画像データをバッファメモリ12で受信し(ステップS29)、バッファメモリ12に格納した第4の画像データを転送アドレス「b」へ転送する(ステップS30)。
【0033】
次に、情報処理装置3の制御部21は、バッファ参照テーブル24を参照して、領域RBの次に画像データを受信する受信バッファを領域RCに決定し(ステップS31)、転送アドレスとして領域RCの先頭アドレス「c」をDMA転送装置2へ通知する(ステップS32)。DMA転送装置2は、情報処理装置3から通知された転送アドレス「c」を設定し、カメラ1からの第5の画像データをバッファメモリ12で受信し(ステップS33)、バッファメモリ12に格納した第5の画像データを転送アドレス「c」へ転送する(ステップS34)。
【0034】
上記ステップS27〜S34の処理によれば、受信バッファと保持バッファとを入れ替えた後のバッファ参照テーブル24は、図4の(3)に示すように、状態が遷移する。すなわち、情報処理装置3の制御部21は、受信バッファと保持バッファとを入れ替えた後も、2つの受信バッファにDMA転送装置2から交互に画像データが書き込まれるようにメモリを管理する。
【0035】
上記のような処理によれば、DMA転送装置が情報処理装置内のメモリに画像を連続して書き込む画像処理システムにおいて、情報処理装置の画像処理部が画像データにアクセスする場合、処理対象とする画像データの物理的なコピー処理を行わず、仮想的に受信(転送)バッファと保持バッファとのアドレスを交換し、画像データを保持するようにしたものである。これにより、情報処理装置は、画像処理部が処理対象とする画像データの物理的なコピー処理を行わずに当該画像データを保持でき、その結果として処理を高速化することができる。
【0036】
次に、情報処理装置3におけるメモリ管理処理について説明する。
DMA転送装置2からの画像転送を許可する場合、メモリ管理部25としての情報処理装置3の制御部21は、バッファ参照テーブル24を参照して、次に画像データが転送されるべき受信バッファを決定し、当該受信バッファのアドレスを示す情報として転送アドレスをDMA転送装置2へ通知する。(ステップS51)。DMA転送装置2は、情報処理装置から通知された転送アドレスに対してカメラ1から取得した画像データを書き込む。DMA転送装置2からの画像データの転送(書込み)がなかった場合(ステップS52,NO)、ステップS52へ戻る。
【0037】
また、画像処理部23から画像取得要求を受けた場合(ステップS53、YES)、制御部21は、画像処理の対象とする画像データを記憶している受信バッファを決定し、当該受信バッファのアドレスを保持バッファのアドレスに更新する(ステップS54)。これとともに、制御部21は、受信バッファを保持バッファに変更する前の保持バッファのアドレスを受信バッファのアドレスに更新する(ステップS55)。
【0038】
すなわち、制御部21は、画像処理部23から画像取得要求を受けた場合(ステップS53、YES)、バッファ参照テーブル24において、処理対象の画像データを記憶している受信バッファのアドレスと保持バッファのアドレスとを入れ替える。受信バッファと保持バッファとを入れ替えた後、制御部21は、上記ステップS51へ戻り、新たに設定された受信バッファを順番に使用してDMA転送装置2からの画像データの転送(書込み)を受け入れる。
【0039】
上記のようなメモリ管理処理によれば、画像処理の対象とする画像データを記憶している受信バッファは、物理的な画像コピー処理を行わすに、論理的に保持バッファに変更でき、保持バッファに指定されていたバッファ領域は、論理的に受信バッファに変更できる。この結果として、情報処理装置3では、画像処理などの処理を高速化できる。
【0040】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0041】
RA…バッファ領域、RB…バッファ領域、RC…バッファ領域、1…カメラ、2…DMA転送装置、3…情報処理装置、11…制御部、11a…転送アドレステーブル、12…バッファメモリ、21…制御部、22…外部メモリ、23…画像処理部、24…バッファ参照テーブル、25…メモリ管理部。

【特許請求の範囲】
【請求項1】
複数の画像データを保持する複数のバッファ領域を有するメモリと、
複数のバッファ領域を画像データが書き込まれる受信バッファと画像データを保持する保持バッファとに割り当てるテーブルと、
前記受信バッファに書き込まれた画像データを保持する場合、前記保持すべき画像データが書き込まれた受信バッファと保持バッファとを入れ替える変更手段と、
前記変更手段により受信バッファと保持バッファとを入れ替えた場合、変更後の受信バッファを示す情報を画像転送元へ通知する通知手段と、
を具備することを特徴とする情報処理装置。
【請求項2】
保持バッファに保持した画像データに画像処理を施す画像処理部を有し、
前記変更手段は、前記画像処理部が前記受信バッファに書き込まれた画像データを処理対象とする場合、前記処理対象とする画像データが書き込まれた受信バッファと保持バッファとを入れ替える、
ことを特徴とする前記請求項1に記載の情報処理装置。
【請求項3】
前記テーブルは、前記受信バッファのアドレスと前記保持バッファのアドレスを保持し、
前記変更手段は、前記テーブルにおいて前記処理対象の画像データを記憶した受信バッファのアドレスと保持バッファのアドレスとを入れ替える、
ことを特徴とする前記請求項1又は2の何れかに記載の情報処理装置。
【請求項4】
前記受信バッファは、前記画像転送元としてのDMA転送装置により画像データが書き込まれるバッファ領域である、
ことを特徴とする前記請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
複数のバッファ領域を有するメモリに用いられるメモリ管理方法であって、
複数のバッファ領域を画像データが書き込まれる受信バッファと画像データを保持する保持バッファとに割り当て、
前記受信バッファに書き込まれた画像データを保持する場合、前記保持すべき画像データが書き込まれた受信バッファと保持バッファとを入れ替え、
前記受信バッファと前記保持バッファとを入れ替えた場合、変更後の受信バッファを示す情報を画像転送元へ通知する、
ことを特徴とするメモリ管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate