(57)【要約】【課題】メモリ空間上の二次元のリングバッファ構造におけるアドレスを生成する。【解決手段】メモリ空間上で二次元のリングバッファ構造を有する画像バッファは、その内部に基準座標が設定される。加算器２４１は画像バッファ内の基準座標のＹ座標値とＹ方向のオフセットとを加算する。剰余算器２４２は加算器２４１の出力を画像バッファのＹ方向のサイズによって割った際の剰余を出力する。乗算器２４３は剰余算器２４２の出力と画像バッファのＸ方向のサイズとを乗算する。加算器２５１は画像バッファ内の基準座標のＸ座標値とＸ方向のオフセットとを加算する。剰余算器２５２は加算器２５１の出力を画像バッファのＸ方向のサイズによって割った際の剰余を出力する。加算器２６１は、画像バッファの開始アドレスと、乗算器２４３の出力と、剰余算器２５２の出力とを加算して、目的データのアドレスとして出力する。【選択図】図２
2008146545.tif 000002
【特許請求の範囲】
【請求項１】
メモリ空間上の二次元のバッファ領域における目的データの第１の方向の座標値を前記バッファ領域の前記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、
前記目的データの前記バッファ領域における前記第１の方向に直交する第２の方向の座標値を前記バッファ領域の前記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、
前記第２の剰余生成回路により生成された値に前記バッファ領域の前記第１の方向の大きさを乗じた値を算出する乗算回路と、
前記第１の剰余生成回路により生成された値と前記乗算回路により算出された値と前記バッファ領域の開始アドレスとを加算して前記目的データの前記メモリ空間におけるアドレスを出力する加算回路と
を具備することを特徴とするアドレス生成回路。
【請求項２】
前記バッファ領域内の所定領域の開始位置の前記バッファ領域における第１の方向の座標値と前記目的データの前記所定領域における前記第１の方向の座標値とを加算して前記目的データの前記バッファ領域における前記第１の方向の座標値を前記第１の剰余生成回路に供給する第２の加算回路と、
前記バッファ領域内の所定領域の開始位置の前記バッファ領域における前記第１の方向に直交する第２の方向の座標値と前記目的データの前記所定領域における前記第２の方向の座標値とを加算して前記目的データの前記バッファ領域における前記第２の方向の座標値を前記第２の剰余生成回路に供給する第３の加算回路と
をさらに具備することを特徴とする請求項１記載のアドレス生成回路。
【請求項３】
前記バッファ領域は画像データの一部を保持する画像バッファであり、
前記目的データは前記画像データを構成する画素データである
ことを特徴とする請求項１記載のアドレス生成回路。
【請求項４】
内部に二次元のバッファ領域を有するメモリと、
前記バッファ領域における目的データの第１の方向の座標値を前記バッファ領域の前記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、
前記目的データの前記バッファ領域における前記第１の方向に直交する第２の方向の座標値を前記バッファ領域の前記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、
前記第２の剰余生成回路により生成された値に前記バッファ領域の前記第１の方向の大きさを乗じた値を算出する乗算回路と、
前記第１の剰余生成回路により生成された値と前記乗算回路により算出された値と前記バッファ領域の開始アドレスとを加算して前記目的データの前記メモリにおけるアドレスを出力する加算回路と
を具備することを特徴とするバッファ回路。
【請求項５】
プロセッサと、前記プロセッサのメモリ空間を記憶するメモリとを備える情報処理装置であって、
前記メモリは、前記メモリ空間上の二次元のバッファ領域を有し、
前記プロセッサは、
前記バッファ領域における目的データの第１の方向の座標値を前記バッファ領域の前記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、
前記目的データの前記バッファ領域における前記第１の方向に直交する第２の方向の座標値を前記バッファ領域の前記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、
前記第２の剰余生成回路により生成された値に前記バッファ領域の前記第１の方向の大きさを乗じた値を算出する乗算回路と、
前記第１の剰余生成回路により生成された値と前記乗算回路により算出された値と前記バッファ領域の開始アドレスとを加算して前記目的データの前記メモリにおけるアドレスを出力する加算回路と
を具備することを特徴とする情報処理装置。
【請求項６】
撮像手段と、
前記撮像手段によって撮像された画像データの一部を二次元のバッファ領域に保持するメモリと、
前記バッファ領域における目的画素データの第１の方向の座標値を前記バッファ領域の前記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、
前記目的画素データの前記バッファ領域における前記第１の方向に直交する第２の方向の座標値を前記バッファ領域の前記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、
前記第２の剰余生成回路により生成された値に前記バッファ領域の前記第１の方向の大きさを乗じた値を算出する乗算回路と、
前記第１の剰余生成回路により生成された値と前記乗算回路により算出された値と前記バッファ領域の開始アドレスとを加算して前記目的画素データの前記メモリにおけるアドレスを出力する加算回路と
を具備することを特徴とする撮像システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス生成回路に関し、特にメモリ空間上のバッファ領域における目的データのアドレスを生成するアドレス生成回路、バッファ回路、情報処理装置および撮像システムに関する。
【背景技術】
【０００２】
コンピュータにおいて大きなサイズのデータを扱う場合、コンピュータから速くアクセスできるバッファ領域にデータ全体の一部を転送しておいて、コンピュータとバッファ領域との間で処理を高速に行う手法が採られる。特に、対象データが画像データである場合、画像処理において一度に必要なデータは局所領域内のデータに限られるため、そのような手法は効果的である。
【０００３】
このバッファ領域をメモリ空間上で管理する場合、各データのメモリ空間におけるアドレスを生成する必要がある。バッファ領域の管理方式としては、リングバッファ構造が知られている。このリングバッファ構造においては、全容量を超えて新たなデータが追加される場合には、アドレスを折り返すことによって必要な容量が新たに確保されるようになっている。
【０００４】
このようなリングバッファのためのアドレス生成手法としては、加減算器およびセレクタを用いたものが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２０００−２２８７５７号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の従来技術によれば、メモリ空間上の一次元のリングバッファ構造によるアドレスが生成される。しかしながら、画像データなどではデータ構造がＸ座標およびＹ座標により識別される二次元構造になっており、特定方向の座標を考慮しただけでは十分ではない。
【０００６】
そこで、本発明は、メモリ空間上の二次元のリングバッファ構造におけるアドレスを生成することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、メモリ空間上の二次元のバッファ領域における目的データの第１の方向の座標値を上記バッファ領域の上記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、上記目的データの上記バッファ領域における上記第１の方向に直交する第２の方向の座標値を上記バッファ領域の上記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、上記第２の剰余生成回路により生成された値に上記バッファ領域の上記第１の方向の大きさを乗じた値を算出する乗算回路と、上記第１の剰余生成回路により生成された値と上記乗算回路により算出された値と上記バッファ領域の開始アドレスとを加算して上記目的データの上記メモリ空間におけるアドレスを出力する加算回路とを具備することを特徴とするアドレス生成回路である。これにより、第１および第２の方向の何れの座標値についてもバッファ領域に該当するメモリ空間上のアドレスを生成させるという作用をもたらす。
【０００８】
また、この第１の側面において、上記バッファ領域内の所定領域の開始位置の上記バッファ領域における第１の方向の座標値と上記目的データの上記所定領域における上記第１の方向の座標値とを加算して上記目的データの上記バッファ領域における上記第１の方向の座標値を上記第１の剰余生成回路に供給する第２の加算回路と、上記バッファ領域内の所定領域の開始位置の上記バッファ領域における上記第１の方向に直交する第２の方向の座標値と上記目的データの上記所定領域における上記第２の方向の座標値とを加算して上記目的データの上記バッファ領域における上記第２の方向の座標値を上記第２の剰余生成回路に供給する第３の加算回路とをさらに具備してもよい。これにより、バッファ領域内の所定領域の開始位置を基準としてその所定領域内の相対的な座標値に基づいてアドレスを生成させるという作用をもたらす。
【０００９】
なお、この第１の側面において、上記バッファ領域が画像データの一部を保持する画像バッファであって、上記目的データが上記画像データを構成する画素データであってもよい。画像処理においては画像データの局所性が利用されることが多く、二次元のバッファ領域の使用が特に効果的である。
【００１０】
また、本発明の第２の側面は、内部に二次元のバッファ領域を有するメモリと、上記バッファ領域における目的データの第１の方向の座標値を上記バッファ領域の上記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、上記目的データの上記バッファ領域における上記第１の方向に直交する第２の方向の座標値を上記バッファ領域の上記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、上記第２の剰余生成回路により生成された値に上記バッファ領域の上記第１の方向の大きさを乗じた値を算出する乗算回路と、上記第１の剰余生成回路により生成された値と上記乗算回路により算出された値と上記バッファ領域の開始アドレスとを加算して上記目的データの上記メモリにおけるアドレスを出力する加算回路とを具備することを特徴とするバッファ回路である。これにより、第１および第２の方向の何れの座標値についてもバッファ回路のバッファ領域に該当するメモリ空間上のアドレスを生成させるという作用をもたらす。
【００１１】
また、本発明の第３の側面は、プロセッサと、上記プロセッサのメモリ空間を記憶するメモリとを備える情報処理装置であって、上記メモリは、上記メモリ空間上の二次元のバッファ領域を有し、上記プロセッサは、上記バッファ領域における目的データの第１の方向の座標値を上記バッファ領域の上記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、上記目的データの上記バッファ領域における上記第１の方向に直交する第２の方向の座標値を上記バッファ領域の上記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、上記第２の剰余生成回路により生成された値に上記バッファ領域の上記第１の方向の大きさを乗じた値を算出する乗算回路と、上記第１の剰余生成回路により生成された値と上記乗算回路により算出された値と上記バッファ領域の開始アドレスとを加算して上記目的データの上記メモリにおけるアドレスを出力する加算回路とを具備することを特徴とする情報処理装置である。これにより、プロセッサにおいて、第１および第２の方向の何れの座標値についてもバッファ領域に該当するメモリ空間上のアドレスを生成させるという作用をもたらす。
【００１２】
また、本発明の第４の側面は、撮像手段と、上記撮像手段によって撮像された画像データの一部を二次元のバッファ領域に保持するメモリと、上記バッファ領域における目的画素データの第１の方向の座標値を上記バッファ領域の上記第１の方向の大きさによって割った剰余を生成する第１の剰余生成回路と、上記目的画素データの上記バッファ領域における上記第１の方向に直交する第２の方向の座標値を上記バッファ領域の上記第２の方向の大きさによって割った剰余を生成する第２の剰余生成回路と、上記第２の剰余生成回路により生成された値に上記バッファ領域の上記第１の方向の大きさを乗じた値を算出する乗算回路と、上記第１の剰余生成回路により生成された値と上記乗算回路により算出された値と上記バッファ領域の開始アドレスとを加算して上記目的画素データの上記メモリにおけるアドレスを出力する加算回路とを具備することを特徴とする撮像システムである。これにより、撮像された画像データについて、第１および第２の方向の何れの座標値についてもバッファ領域に該当するメモリ空間上のアドレスを生成させるという作用をもたらす。
【発明の効果】
【００１３】
本発明によれば、メモリ空間上の二次元のリングバッファ構造におけるアドレスを生成することができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は、本発明の実施の形態における情報処理装置の一構成例を示す図である。この情報処理装置は、プロセッサチップ１００とＤＲＡＭ（Dynamic Random Access Memory）３００とを、バス４００を介して接続することによって構成される。
【００１６】
プロセッサチップ１００は、それぞれバス４００に接続するプロセッサ１１０およびＳＲＡＭ（Static Random Access Memory）１３０を備える。プロセッサ１１０は、ＳＲＡＭ１３０に保持されるプログラムを実行する処理装置である。ＳＲＡＭ１３０は、プロセッサ１１０によって実行されるプログラムを保持するとともに、プログラム実行の際にプロセッサ１１０によって使用される作業領域を保持する。また、プロセッサ１１０は、ＳＲＡＭ１３０におけるアドレスを生成するアドレス生成回路２００を内部に備えている。
【００１７】
ＤＲＡＭ３００は、プログラム実行の際にプロセッサ１１０によって使用される作業領域を保持するものである。ＳＲＡＭ１３０は小容量でプロセッサチップ１００の内部に配置されるのに対して、ＤＲＡＭ３００は大容量でプロセッサチップ１００の外部に配置されるため、ＤＲＡＭ３００のアクセス速度はＳＲＡＭ１３０よりも遅い。そこで、容量の大きいデータを扱う際には、データ全体をＤＲＡＭ３００に保持しておいて、そのデータの一部が必要になるタイミングでＳＲＡＭ１３０に転送することにより、処理を高速化することができる。本発明の実施の形態では、ＳＲＡＭ１３０に二次元構造のリングバッファ領域を設け、必要なデータをＤＲＡＭ３００から適宜転送することを想定する。
【００１８】
バス４００は、メモリアドレスを転送するためのアドレスバス４１０とデータを転送するためのデータバス４２０とを含む。アドレスバス４１０にはプロセッサ１１０のアドレス生成回路２００のアドレス信号線、ＳＲＡＭ１３０のアドレス信号線およびＤＲＡＭ３００アドレス信号線が接続される。データバス４２０にはプロセッサ１１０のデータ信号線、ＳＲＡＭ１３０のデータ信号線およびＤＲＡＭ３００のデータ信号線が接続される。プロセッサ１１０はバスマスターとして機能し、ＳＲＡＭ１３０およびＤＲＡＭ３００はバススレーブとして機能する。
【００１９】
図２は、本発明の実施の形態におけるアドレス生成回路２００の一構成例を示す図である。アドレス生成回路２００は、開始アドレスレジスタ２１１と、Ｙ方向サイズレジスタ２２１と、Ｙ方向基準レジスタ２２２と、Ｙ方向オフセットレジスタ２２３と、Ｘ方向サイズレジスタ２３１と、Ｘ方向基準レジスタ２３２と、Ｘ方向オフセットレジスタ２３３と、加算器２４１と、剰余算器２４２と、乗算器２４３と、加算器２５１と、剰余算器２５２と、加算器２６１と、生成アドレスレジスタ２９１とを備えている。
【００２０】
開始アドレスレジスタ２１１は、ＳＲＡＭ１３０のメモリ空間におけるバッファ領域の開始アドレスｓａ（start address）を保持するレジスタである。このバッファ領域は、開始アドレスｓａから連続する領域として確保される。但し、このバッファ領域は二次元構造のリングバッファを構成するため、Ｘ方向（水平方向）およびＹ方向（垂直方向）の各座標により位置を指定することが可能である。
【００２１】
Ｙ方向サイズレジスタ２２１は、バッファ領域のＹ方向のサイズ（大きさ）ｙｓ（y-size）を保持するレジスタである。Ｙ方向基準レジスタ２２２は、バッファ領域内の作業領域の先頭データの相対座標を基準座標（以下、基準座標という。）として、その基準座標のＹ座標の値ｙｂ（y-base）を保持するレジスタである。Ｙ方向オフセットレジスタ２２３は、バッファ領域内の作業領域の基準座標からの相対的なオフセットのＹ座標の値ｙｏ（y-offset）を保持するレジスタである。
【００２２】
Ｘ方向サイズレジスタ２３１は、バッファ領域のＸ方向のサイズｘｓ（x-size）を保持するレジスタである。Ｘ方向基準レジスタ２３２は、バッファ領域内の作業領域の基準座標のＸ座標の値ｘｂ（x-base）を保持するレジスタである。Ｘ方向オフセットレジスタ２３３は、バッファ領域内の作業領域の基準座標からの相対的なオフセットのＸ座標の値ｘｏ（x-offset）を保持するレジスタである。
【００２３】
加算器２４１は、Ｙ方向基準レジスタ２２２に保持される基準座標のＹ座標の値ｙｂとＹ方向オフセットレジスタ２２３に保持されるオフセットのＹ座標の値ｙｏとを加算して、その加算結果を出力するものである。
【００２４】
剰余算器２４２は、加算器２４１の出力をＹ方向サイズレジスタ２２１に保持されるバッファ領域のＹ方向のサイズｙｓによって割った際の剰余（余りの数）を出力するものである。なお、この剰余を生成するためには、実際に除算を行う必要はない。例えば、ＡをＢによって割った際の剰余を生成する場合（ＡおよびＢはともに整数）、Ａが「０」から「２Ｂ−１」の範囲内にあると仮定して、Ａ≧Ｂであれば「Ａ−Ｂ」を出力し、Ａ＜Ｂであれば「Ａ」を出力する回路により実現してもよい。
【００２５】
乗算器２４３は、剰余算器２４２の出力とＸ方向サイズレジスタ２３１に保持されるバッファ領域のＸ方向のサイズｘｓとを乗算して、その乗算結果を出力するものである。
【００２６】
加算器２５１は、Ｘ方向基準レジスタ２３２に保持される基準座標のＸ座標の値ｘｂとＸ方向オフセットレジスタ２３３に保持されるオフセットのＸ座標の値ｘｏとを加算して、その加算結果を出力するものである。
【００２７】
剰余算器２５２は、加算器２５１の出力をＸ方向サイズレジスタ２３１に保持されるバッファ領域のＸ方向のサイズｘｓによって割った際の剰余を出力するものである。なお、この剰余を生成する際に、実際に除算を行う必要はない点は剰余算器２４２の場合と同様である。
【００２８】
加算器２６１は、開始アドレスレジスタ２１１に保持される開始アドレスｓａと、乗算器２４３の出力と、剰余算器２５２の出力とを加算して、その加算結果を生成アドレスとして出力するものである。
【００２９】
生成アドレスレジスタ２９１は、加算器２６１によって出力された生成アドレスを保持するレジスタである。すなわち、この生成アドレスレジスタ２９１には、次式による生成アドレスが保持される。
生成アドレス＝ｓａ＋（（ｙｂ＋ｙｏ）％ｙｓ）・ｘｓ＋（（ｘｂ＋ｘｏ）％ｘｓ）
但し、「Ａ％Ｂ」は、ＡをＢによって割った際の剰余を表す。
【００３０】
図３は、本発明の実施の形態における画像データ６００と画像バッファ６１０との関係を示す図である。
【００３１】
画像データ６００は、複数の画素データにより全体で１つの画像イメージを表す画像データであり、本発明の実施の形態ではＤＲＡＭ３００に保持される。一方、画像バッファ６１０は、画像データ６００の一部を保持するバッファ領域であり、本発明の実施の形態ではＳＲＡＭ１３０に保持される。画像バッファ６１０は、ＳＲＡＭ１３０のメモリ空間上で二次元構造のリングバッファとして構成される。
【００３２】
画像バッファ６１０は、ＳＲＡＭ１３０のメモリ空間における開始アドレスｓａから連続するバッファ領域として確保される。この画像バッファ６１０は、ｘ方向のサイズｘｓ、Ｙ方向のサイズｙｓの大きさを有する。したがって、この画像バッファ６１０に格納可能な画素データ数は「ｘｓ×ｙｓ」個になる。
【００３３】
画像バッファ６１０には、基準となる作業領域６２０が設けられる。この作業領域６２０は、プロセッサ１１０によって実行されるプログラムの中で定義されるものであり、ある作業領域６２０が定められている間は、座標値は作業領域６２０の先頭データを基準とするオフセットによって指定される。画像バッファ６１０の先頭データの座標から相対的に見た作業領域６２０の先頭データの座標が前述の基準座標であり、その基準座標のＸ座標の値はｘｂ、Ｙ座標の値はｙｂである。
【００３４】
また、作業領域６２０において、作業領域６２０の先頭データの座標から相対的に見た画素データ６３０の座標のＸ座標の値はｘｏ、Ｙ座標の値はｙｏである。したがって、画像バッファ６１０の先頭データの座標から相対的に見た画素データ６３０の座標のＸ座標の値は「ｘｂ＋ｘｏ」となり、Ｙ座標の値は「ｙｂ＋ｙｏ」となる。これらはそれぞれ加算器２４１および２５１の出力に相当する。
【００３５】
図４は、本発明の実施の形態におけるＳＲＡＭ１３０とＤＲＡＭ３００との関係を示す図である。
【００３６】
前述のとおり、ＤＲＡＭ３００には画像データ６００が保持され、その一部を保持する画像バッファ６１０がＳＲＡＭ１３０に保持される。画像バッファ６１０はＳＲＡＭ１３０のメモリ空間上で連続する領域として確保されている。ここで、画像バッファ６１０をＸ方向の１ライン毎に区切ったものが画像ラインデータ６１１乃至６１９である。
【００３７】
最初の画像ラインデータ６１１の開始アドレスは画像バッファ６１０の開始アドレスｓａと一致する。また、この画像ラインデータ６１１のサイズは画像バッファ６１０のＸ方向のサイズｘｓと一致する。したがって、画像ラインデータ６１１の終了アドレスは「ｓａ＋ｘｓ−１」となる。
【００３８】
２番目の画像ラインデータ６１２の開始アドレスは画像ラインデータ６１１の終了アドレスの次のアドレス、すなわち「ｓａ＋ｘｓ」となる。したがって、画像ラインデータ６１１の終了アドレスは「ｓａ＋２・ｘｓ−１」となる。
【００３９】
同様に、３番目の画像ラインデータ６１３の開始アドレスは「ｓａ＋２・ｘｓ」となり、終了アドレスは「ｓａ＋３・ｘｓ−１」となる。したがって、最後の画像ラインデータ６１９の開始アドレスは「ｓａ＋（ｙｓ−１）・ｘｓ」となり、終了アドレスは「ｓａ＋ｙｓ・ｘｓ−１」となる。
【００４０】
画像バッファ６１０が二次元構造のリングバッファとして機能するため、リングバッファの配置状態によってＳＲＡＭ１３０とＤＲＡＭ３００の関係は変化する。この例では、最も単純な対応関係を示している。すなわち、ＤＲＡＭ３００上の連続するｘｓ個のデータ６０１がＳＲＡＭ１３０の画像ラインデータ６１１にマッピングされ、他のｘｓ個のデータ６０２がＳＲＡＭ１３０の画像ラインデータ６１２にマッピングされ、さらにｘｓ個のデータ６０３がＳＲＡＭ１３０の画像ラインデータ６１３にマッピングされている。リングバッファとしての配置状態が変化してもＳＲＡＭ１３０上で画像バッファ６１０全体が占める領域のアドレスは変化しないが、対応するＤＲＡＭ３００上の画素データが変化する。
【００４１】
図５は、本発明の実施の形態における画像バッファ６１０の画素データの第１の配置例を示す図である。
【００４２】
ここでは、画像バッファ６１０の開始アドレスｓａを＃９０００番地としている。また、画像バッファ６１０のＸ方向のサイズｘｓを１６、Ｙ方向のサイズｙｓを１６としている。したがって、開始アドレスレジスタ２１１には「９０００」が保持され、Ｙ方向サイズレジスタ２２１およびＸ方向サイズレジスタ２３１にはそれぞれ「１６」が保持されている。
【００４３】
この配置例では、座標（１００，１００）の画素を先頭として、Ｘ方向およびＹ方向に１６画素ずつの画素データが配置されている。すなわち、座標（１００，１００）乃至（１１５，１００）の１６個の画素データが＃９０００乃至９０１５番地に配置され、座標（１００，１０１）乃至（１１５，１０１）の１６個の画素データが＃９０１６乃至９０３１番地に配置され、座標（１００，１０２）乃至（１１５，１０２）の１６個の画素データが＃９０３２乃至９０４７番地に配置され、同様に、座標（１００，１１５）乃至（１１５，１１５）の１６個の画素データが＃９２４０乃至９２５５番地に配置される。
【００４４】
この配置例において、Ｙ方向基準レジスタ２２２およびＸ方向基準レジスタ２３２には、プログラムにおいて設定された作業領域６２０に応じた値が保持される。そして、その作業領域６２０におけるオフセットがＹ方向オフセットレジスタ２２３およびＸ方向オフセットレジスタ２３３に保持される。そして、これらの値に応じて図２のアドレス生成回路２００によって各画素データのアドレスが生成される。
【００４５】
図６は、本発明の実施の形態の画像バッファ６１０における保持範囲をＹ方向に移動させた場合の例を示す図である。
【００４６】
この例では、それまで画像バッファ６１０に保持されていた最も上側の行の画像データ（画像ラインデータ）に代えて、新たな画像ラインデータを保持することにより、画像バッファ６１０の保持範囲をＹ方向に移動させている（６１０−ｙ）。すなわち、保持範囲を移動させるために各々の画素データを移動させることなく、不要となる画素データに上書きすることにより、見かけ上の移動を実現している。
【００４７】
図７は、本発明の実施の形態における画像バッファ６１０の画素データの第２の配置例（６１０−ｙ）を示す図である。第１の配置例（図５）において座標（１００，１００）乃至（１１５，１００）の画素データが配置されていたアドレスに、新たに座標（１００，１１６）乃至（１１５，１１６）の画素データを上書きした結果、この第２の配置例となる。
【００４８】
この第２の配置例において、座標（１００，１０１）乃至（１１５，１１５）の領域の下端に座標（１００，１１６）乃至（１１５，１１６）の領域がコピーされているものと仮定すれば、各領域の境界を意識することなくアドレスを生成することができる。そのため、本発明の実施の形態では、アドレス生成回路２００に剰余算器２４２を設けて、各領域が連続しているかのように見せている。
【００４９】
また、この第２の配置例においては、第１の配置例と比べて作業領域６２０のＹ方向の座標値が相対的に正方向に「１」ずれるため、それを補正する必要がある。そのため、本発明の実施の形態では、Ｙ方向基準レジスタ２２２の値に「１」を加算することにより、座標値のずれを補正する。これにより、リングバッファとしての保持状態を特に意識することなく、画像バッファ６１０におけるアドレスを生成することができる。
【００５０】
図８は、本発明の実施の形態の画像バッファ６１０における保持範囲をＸ方向に移動させた場合の例を示す図である。
【００５１】
この例では、それまで画像バッファ６１０に保持されていた最も左側の列の画像データ（画像カラムデータ）に代えて、新たな画像カラムデータを保持することにより、画像バッファ６１０の保持範囲をＸ方向に移動させている（６１０−ｘ）。すなわち、保持範囲を移動させるために各々の画素データを移動させることなく、不要となる画素データに上書きすることにより、見かけ上の移動を実現している。
【００５２】
図９は、本発明の実施の形態における画像バッファ６１０の画素データの第３の配置例（６１０−ｘ）を示す図である。第１の配置例（図５）において座標（１００，１００）乃至（１００，１１５）の画素データが配置されていたアドレスに、新たに座標（１１６，１００）乃至（１１６，１１５）の画素データを上書きした結果、この第３の配置例となる。
【００５３】
この第３の配置例において、座標（１０１，１００）乃至（１１５，１１５）の領域の右端に座標（１１６，１００）乃至（１１６，１１５）の領域がコピーされているものと仮定すれば、各領域の境界を意識することなくアドレスを生成することができる。そのため、本発明の実施の形態では、アドレス生成回路２００に剰余算器２５２を設けて、各領域が連続しているかのように見せている。
【００５４】
また、この第３の配置例においては、第１の配置例と比べて作業領域６２０のＸ方向の座標値が相対的に正方向に「１」ずれるため、それを補正する必要がある。そのため、本発明の実施の形態では、Ｘ方向基準レジスタ２３２の値に「１」を加算することにより、座標値のずれを補正する。これにより、リングバッファとしての保持状態を特に意識することなく、画像バッファ６１０におけるアドレスを生成することができる。
【００５５】
図１０は、本発明の実施の形態の画像バッファ６１０における保持範囲をＸ方向およびＹ方向に移動させた場合の例を示す図である。
【００５６】
この例では、それまで画像バッファ６１０に保持されていた最も上側の行の画像ラインデータに代えて新たな画像ラインデータを保持し、さらに、それまで画像バッファ６１０に保持されていた最も左側の列の画像カラムデータに代えて新たな画像カラムデータを保持することにより、画像バッファ６１０の保持範囲をＸ方向およびＹ方向に移動させている（６１０−ｘｙ）。すなわち、保持範囲を移動させるために各々の画素データを移動させることなく、不要となる画素データに上書きすることにより、見かけ上の移動を実現している。
【００５７】
図１１は、本発明の実施の形態における画像バッファ６１０の画素データの第４の配置例（６１０−ｘｙ）を示す図である。第１の配置例（図５）において座標（１００，１００）乃至（１１５，１００）の画素データが配置されていたアドレスに、新たに座標（１００，１１６）乃至（１１５，１１６）の画素データを上書きし、さらに座標（１００，１０１）乃至（１０１，１１６）の画素データが配置されていたアドレスに、新たに座標（１１６，１０１）乃至（１１７，１１６）の画素データを上書きした結果、この第４の配置例となる。
【００５８】
この第４の配置例において、座標（１０２，１０１）乃至（１１７，１１５）の領域の下端に座標（１０２，１１６）乃至（１１７，１１６）の領域がコピーされているものと仮定し、座標（１０２，１０１）乃至（１１５，１１６）の領域の右端に座標（１１６，１０１）乃至（１１７，１１６）の領域がコピーされているものと仮定すれば、各領域の境界を意識することなくアドレスを生成することができる。そのため、本発明の実施の形態では、アドレス生成回路２００に剰余算器２４２および２５２を設けて、各領域が連続しているかのように見せている。
【００５９】
また、この第４の配置例においては、第１の配置例と比べて作業領域６２０の座標値がＹ方向の正方向に「１」、Ｘ方向の正方向に「２」、それぞれずれているため、それを補正する必要がある。そのため、本発明の実施の形態では、Ｙ方向基準レジスタ２２２の値に「１」を、Ｘ方向基準レジスタ２３２の値に「２」をそれぞれ加算することにより、座標値のずれを補正する。これにより、リングバッファとしての保持状態を特に意識することなく、画像バッファ６１０におけるアドレスを生成することができる。
【００６０】
画像処理においては、プログラムによってＸ方向またはＹ方向もしくはＸ方向およびＹ方向に処理対象を移動させながら処理が進むことが多く、本発明の実施の形態による二次元のリングバッファ構造を有効に利用することができる。
【００６１】
このように、本発明の実施の形態によれば、画像バッファ６１０の画素データの座標値について、剰余算器２４２および２５２を用いて画像バッファ６１０のＹ方向およびＸ方向のサイズの剰余を算出することにより、二次元構造のリングバッファを実現することができる。また、作業領域６２０の基準座標を保持するＹ方向基準レジスタ２２２およびＸ方向基準レジスタ２３２の値にリングバッファとしての保持状態を反映させておくことにより、その保持状態を特に意識することなく、画像バッファ６１０におけるアドレスを生成することができる。
【００６２】
また、本発明の実施の形態によれば、画像バッファ６１０におけるＸ方向およびＹ方向の座標値を指定することによってＳＲＡＭ１３０のメモリ空間上のアドレスを特定することができるため、オフセットの指定に要するビット幅を短縮することができる。
【００６３】
例えば、画像バッファ６１０のサイズがＸ方向およびＹ方向それぞれ２５６画素であると仮定すると、画像バッファ６１０の先頭からの座標（７，７）の相対的なアドレスは、「１７９９（＝７＋２５６×７）」となる。この値を表現するためには１１ビット分のビット幅が必要となる。これに対し、座標値を用いた場合、「７」は３ビット幅で表現できるため、計６ビット幅で済むことになる。
【００６４】
これを一般化すると、Ｙ方向基準レジスタ２２２およびＸ方向基準レジスタ２３２によって作業領域６２０を予め定めておけば、Ｙ方向オフセットレジスタ２２３およびＸ方向オフセットレジスタ２３３のビット幅を短縮することができることになる。したがって、これらＹ方向オフセットレジスタ２２３およびＸ方向オフセットレジスタ２３３による値を命令フォーマットによって指定する際、オフセットのビット幅を短縮することができる。
【００６５】
なお、本発明の実施の形態では、ＤＲＡＭ３００上の画像データを画像バッファ６１０に転送する例について説明したが、この画像データの供給源はＤＲＡＭ３００に限定されるものではない。例えば、次の変形例のように撮像装置を画像データの供給源としてもよい。
【００６６】
図１２は、本発明の実施の形態における情報処理装置の変形例による撮像システムの一構成例を示す図である。この撮像システムは、プロセッサチップ１００と撮像装置５００とを、バス４００を介して接続することによって構成される。すなわち、図１の情報処理装置においてＤＲＡＭ３００を撮像装置５００によって置き換えた構成になっている。
【００６７】
撮像装置５００は、被写体を撮像して、その撮像されたデータを画像データとしてＳＲＡＭ１３０上の画像バッファ６１０に適宜転送する。プロセッサ１１０は、アドレス生成回路２００により生成されたアドレスによってＳＲＡＭ１３０上の画像バッファ６１０にアクセスして、画像データに対する処理を行う。
【００６８】
図１３は、本発明の実施の形態における撮像装置５００の一構成例を示す図である。この撮像装置５００は、制御部５０１と、ＲＡＭ５０２と、ＲＯＭ５０３と、レンズ５１１と、撮像素子５１２と、アナログ信号処理部５２０と、Ａ／Ｄ変換部５３０と、デジタル信号処理部５４０と、表示部５５０と、記録部５６０と、操作部５７０と、外部出力端子５８０とを備えている。
【００６９】
制御部５０１は、撮像装置５００の全体を制御するものである。ＲＡＭ５０２は、制御部５０１による処理に必要な作業領域を保持するものである。ＲＯＭ５０３は、制御部５０１により実行される初期プログラムやパラメータなどを保持するものである。
【００７０】
レンズ５１１は、被写体に焦点を合わせるためのレンズである。撮像素子５１２は、レンズ５１１を介して供給された被写体の画像を撮像するものであり、例えば、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサーなどにより実現される。
【００７１】
アナログ信号処理部５２０は、撮像素子５１２からのアナログ信号におけるノイズを相関二重サンプリング（ＣＤＳ：Correlated Double Sampling）により取り除き、自動利得制御（ＡＧＣ：Automatic Gain Control）によりアナログ信号の高低部分を補正するものである。Ａ／Ｄ変換部５３０は、アナログ信号処理部５２０からのアナログ信号をデジタル信号に変換するものである。デジタル信号処理部５４０は、ホワイトバランスやガンマ変換等の処理を行うものである。デジタル信号処理部５４０において処理されたデジタル信号は、表示部５５０、記録部５６０および外部出力端子５８０に供給される。また、このデジタル信号処理部５４０において処理されたデジタル信号は、制御部５０１に供給され、オートフォーカス動作等に用いられる。
【００７２】
表示部５５０は、デジタル信号処理部５４０から供給されたデジタル信号を表示するものである。記録部５６０は、デジタル信号処理部５４０から供給されたデジタル信号を記録媒体に記録するものである。操作部５７０は、撮影者からの操作を受け付けるものである。この操作部５７０によって受け付けられた操作内容は制御部５０１に供給される。
【００７３】
外部出力端子５８０は、デジタル信号処理部５４０から供給されたデジタル信号を出力する端子である。この外部出力端子５８０はバス４００に接続されており、撮像された画像データがバス４００を介してＳＲＡＭ１３０の画像バッファ６１０に転送される。
【００７４】
このように、本発明の実施の形態の変形例によれば、撮像装置５００によって撮像された画像データを画像バッファ６１０して、この画像バッファ６１０の画素データの座標値について、剰余算器２４２および２５２を用いて画像バッファ６１０のＹ方向およびＸ方向のサイズの剰余を算出することにより、二次元構造のリングバッファを実現することができる。
【００７５】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【００７６】
すなわち、請求項１において、第１の剰余生成回路は例えば剰余算器２５２に対応する。また、第２の剰余生成回路は例えば剰余算器２４２に対応する。また、乗算回路は例えば乗算器２４３に対応する。また、加算回路は例えば加算器２６１に対応する。
【００７７】
また、請求項２において、第２の加算回路は例えば加算器２５１に対応する。また、第３の加算回路は例えば加算器２４１に対応する。
【００７８】
また、請求項３において、画像データは例えば画像データ６００に対応する。また、画像バッファは例えば画像バッファ６１０に対応する。また、画素データは例えば画素データ６３０に対応する。
【００７９】
また、請求項４において、メモリは例えばＳＲＡＭ１３０に対応する。また、第１の剰余生成回路は例えば剰余算器２５２に対応する。また、第２の剰余生成回路は例えば剰余算器２４２に対応する。また、乗算回路は例えば乗算器２４３に対応する。また、加算回路は例えば加算器２６１に対応する。
【００８０】
また、請求項５において、プロセッサは例えばプロセッサ１１０に対応する。また、メモリは例えばＳＲＡＭ１３０に対応する。また、第１の剰余生成回路は例えば剰余算器２５２に対応する。また、第２の剰余生成回路は例えば剰余算器２４２に対応する。また、乗算回路は例えば乗算器２４３に対応する。また、加算回路は例えば加算器２６１に対応する。
【００８１】
また、請求項６において、撮像手段は例えば撮像装置５００に対応する。また、メモリは例えばＳＲＡＭ１３０に対応する。また、第１の剰余生成回路は例えば剰余算器２５２に対応する。また、第２の剰余生成回路は例えば剰余算器２４２に対応する。また、乗算回路は例えば乗算器２４３に対応する。また、加算回路は例えば加算器２６１に対応する。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態における情報処理装置の一構成例を示す図である。
【図２】本発明の実施の形態におけるアドレス生成回路２００の一構成例を示す図である。
【図３】本発明の実施の形態における画像データ６００と画像バッファ６１０との関係を示す図である。
【図４】本発明の実施の形態におけるＳＲＡＭ１３０とＤＲＡＭ３００との関係を示す図である。
【図５】本発明の実施の形態における画像バッファ６１０の画素データの第１の配置例を示す図である。
【図６】本発明の実施の形態の画像バッファ６１０における保持範囲をＹ方向に移動させた場合の例（６１０−ｙ）を示す図である。
【図７】本発明の実施の形態における画像バッファ６１０の画素データの第２の配置例（６１０−ｙ）を示す図である。
【図８】本発明の実施の形態の画像バッファ６１０における保持範囲をＸ方向に移動させた場合の例（６１０−ｘ）を示す図である。
【図９】本発明の実施の形態における画像バッファ６１０の画素データの第３の配置例（６１０−ｘ）を示す図である。
【図１０】本発明の実施の形態の画像バッファ６１０における保持範囲をＸ方向およびＹ方向に移動させた場合の例（６１０−ｘｙ）を示す図である。
【図１１】本発明の実施の形態における画像バッファ６１０の画素データの第４の配置例（６１０−ｘｙ）を示す図である。
【図１２】本発明の実施の形態における情報処理装置の変形例による撮像システムの一構成例を示す図である。
【図１３】本発明の実施の形態における撮像装置５００の一構成例を示す図である。
【符号の説明】
【００８３】
１００  プロセッサチップ
１１０  プロセッサ
２００  アドレス生成回路
２１１  開始アドレスレジスタ
２２１  Ｙ方向サイズレジスタ
２２２  Ｙ方向基準レジスタ
２２３  Ｙ方向オフセットレジスタ
２３１  Ｘ方向サイズレジスタ
２３２  Ｘ方向基準レジスタ
２３３  Ｘ方向オフセットレジスタ
２４１  加算器
２４２  剰余算器
２４３  乗算器
２５１  加算器
２５２  剰余算器
２６１  加算器
２９１  生成アドレスレジスタ
４００  バス
４１０  アドレスバス
４２０  データバス
５００  撮像装置
６００  画像データ
６１０  画像バッファ
６３０  画素データ
【図１】
2008146545.tif 000003
【図２】
2008146545.tif 000004
【図３】
2008146545.tif 000005
【図４】
2008146545.tif 000006
【図５】
2008146545.tif 000007
【図６】
2008146545.tif 000008
【図７】
2008146545.tif 000009
【図８】
2008146545.tif 000010
【図９】
2008146545.tif 000011
【図１０】
2008146545.tif 000012
【図１１】
2008146545.tif 000013
【図１２】
2008146545.tif 000014
【図１３】
2008146545.tif 000015