(57)【要約】【課題】簡易な構成により、グラフィックデバイスが通常備える機能に加え、外部映像機器から画像データを取り込んで画像処理を施す機能をも備える。【解決手段】イメージセンサ（３）から入力される撮像データを保持するＦＩＦＯ（４）はメモリバス（８ｂ）に接続されており、ＦＰＧＡ（５）は、イメージセンサ（３）の垂直同期信号の立ち上がりまたは立ち下がりエッジを検知してから、撮像データの１フレーム分をイメージセンサ（３）からＦＩＦＯ（４）への入力中においてＦＩＦＯ（４）の容量が上限値未満かつ下限値より大きい状態を保つように定められた所定期間後、ＦＩＦＯ（４）からメモリバス（８ｂ）への撮像データの出力を開始する。【選択図】図１
2017220180.tif 000002
【特許請求の範囲】
【請求項１】
メモリに接続されたメモリバスを介して上記メモリから読み出した画像データに対して画像処理を施す画像処理部を備える画像処理システムであって、
カメラの垂直同期信号に同期して上記カメラから入力される映像データを保持する、上記メモリバスの少なくとも一部に接続された保持部と、
上記保持部から上記メモリバスへの映像データの出力を制御する出力制御部とを備え、
上記出力制御部は、上記垂直同期信号の立ち上がりまたは立ち下がりエッジを検知してから、上記映像データの１フレーム分を上記カメラから上記保持部への入力中において上記保持部の容量が上限値未満かつ下限値より大きい状態を保つように定められた所定期間後に、上記出力を開始させ、
上記画像処理部は、上記保持部から上記メモリバスへ出力された映像データに対して画像処理を施す
ことを特徴とする画像処理システム。
【請求項２】
１フレームあたりの上記映像データのスキャン期間は、上記映像データが有効となる領域をスキャンする有効期間と、上記映像データが出力されない無効期間と、から構成されており、
上記所定期間は、上記無効期間より長いことを特徴とする請求項１に記載に画像処理システム。
【請求項３】
上記出力制御部は、上記垂直同期信号の立ち上がりまたは立ち下がりエッジに同期して、上記垂直同期信号の立ち上がりまたは立ち下がりを示す制御信号を生成し、当該生成された制御信号を上記画像処理部に出力し、
上記画像処理部は、上記制御信号に基づき、上記出力制御部に対し、上記保持部から上記メモリバスへの映像データの出力を指示することを特徴とする請求項１または２に記載の画像処理システム。
【請求項４】
上記保持部は、上記入力の順序通りに上記出力を行うことを特徴とする請求項１〜３のいずれか一項に記載の画像処理システム。
【請求項５】
上記メモリバスを介して上記保持部から読み出された映像データを、フレーム単位で所定の順序に従って、順次格納する、少なくとも２つの格納部をさらに備え、
上記画像処理部は、フレーム単位で上記格納部を切り替えながら、格納された映像データに対して画像処理を施すことを特徴とする請求項１〜４のいずれか一項に記載の画像処理システム。
【請求項６】
メモリに接続されたメモリバスを介して上記メモリから読み出した画像データに対して画像処理を施す画像処理部と、
カメラの垂直同期信号に同期して上記カメラから入力される映像データを保持する、上記メモリバスの少なくとも一部に接続された保持部から上記メモリバスへの映像データの出力を制御する出力制御部とを備え、
上記出力制御部は、上記垂直同期信号の立ち上がりまたは立ち下がりエッジを検知してから、上記映像データの１フレーム分を上記カメラから上記保持部への入力中において上記保持部の容量が上限値未満かつ下限値より大きい状態を保つように定められた所定期間後に、上記出力を開始させ、
上記画像処理部は、上記保持部から上記メモリバスへ出力された映像データに対して画像処理を施す
ことを特徴とする画像処理装置。
【請求項７】
メモリに接続されたメモリバスを介して上記メモリから読み出した画像データに対して画像処理を施す画像処理方法であって、
カメラの垂直同期信号に同期して上記カメラから入力される映像データを保持部に保持する保持ステップと、
上記垂直同期信号の立ち上がりまたは立ち下がりエッジを検知してから、上記映像データの１フレーム分を上記カメラから上記保持部への入力中において上記保持部の容量が上限値未満かつ下限値より大きい状態を保つように定められた所定期間後に、当該保持された映像データを上記メモリバスへ出力する出力ステップと、
上記メモリバスへ出力された映像データに対して画像処理を施す処理ステップとを含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリバスへ出力された画像データに対して画像処理を施す画像処理システム等に関する。
【背景技術】
【０００２】
従来、カメラにより撮像された撮像データを取り込み、当該撮像データを画像表示する技術が提案されている（特許文献１および２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９３４５７号公報（２００７年１１月８日公開）
【特許文献２】特許第５６２７９９３号公報（２０１４年１１月１９発行）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
市販のグラフィックデバイスは、メモリからメモリバスを介して読み出した画像データに対して画像処理を施す構成を備えているものが多い。このようなグラフィックデバイスにおいて、さらにカメラにより撮像された撮像データを取り込んで画像処理を施す場合、撮像データを取り込むための入力系統を、メモリバスとは別に新たに設ける必要が生じる。
【０００５】
そこで、本発明者らは、グラフィックデバイスに通常備えられている機能を転用または共用してカメラにより撮像された撮像データを取り込むことを、簡易な構成で実現すべく、鋭意検討を行った結果、本発明者らは本発明を完成するに至った。
【０００６】
なお、特許文献１には、ビデオメモリから読み出された画像データに対し、画像処理を施す技術は開示されているものの、上述した転用または共用による構成については、何ら開示されていない。また、特許文献２にも、メモリに予め記憶された図形パターンに赤外線カメラにより撮影した遊技者の画像を合成する画像処理技術は開示されているものの、特許文献１と同様、上述した転用または共用による構成については、何ら開示されていない。
【０００７】
本発明の目的は、簡易な構成により、グラフィックデバイスが通常備える機能に加え、外部映像機器から画像データを取り込んで画像処理を施す機能をも具備する画像処理システム等を実現することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様に係る画像処理システムは、メモリに接続されたメモリバスを介して上記メモリから読み出した画像データに対して画像処理を施す画像処理部を備える画像処理システムであって、カメラの垂直同期信号に同期して上記カメラから入力される映像データを保持する、上記メモリバスの少なくとも一部に接続された保持部と、上記保持部から上記メモリバスへの映像データの出力を制御する出力制御部とを備え、上記出力制御部は、上記垂直同期信号の立ち上がりまたは立ち下がりエッジを検知してから、上記映像データの１フレーム分を上記カメラから上記保持部への入力中において上記保持部の容量が上限値未満かつ下限値より大きい状態を保つように定められた所定期間後に、上記出力を開始させ、上記画像処理部は、上記保持部から上記メモリバスへ出力された映像データに対して画像処理を施す。
【０００９】
上記構成によれば、カメラから入力される映像データを保持部が保持し、メモリバスを介して、保持部から読み出される映像データが画像処理部に出力される。
【００１０】
カメラの垂直同期信号の立ち上がりまたは立ち下がりエッジに同期して、カメラから保持部への映像データの入力が開始した時点から、所定期間後に保持部からメモリバスへ映像データを出力することから、その出力時点において保持部には、ある程度の映像データが保持されている。そのため、上記映像データの１フレーム分を上記カメラから上記保持部に入力中において上記保持部の容量が上限値未満かつ下限値より大きい状態を保つように予め所定期間を定めることにより、カメラから保持部への映像データの入力が終了する時点にあわせて、保持部からメモリバスへの映像データの出力が終了させることができる。
【００１１】
したがって、メモリから画像データを読み出すためのものであったメモリバスに保持部を接続し、メモリバスを介して、カメラの映像データを読み出すことができるので、従来からの構成を用いた簡易な構成により、カメラから映像データを取り込んで画像処理を施す機能も実現することができる。
【００１２】
なお、本発明の態様に係る画像処理システム（特に、画像処理部）は、コンピュータによって実現してもよく、この場合には、コンピュータを上記画像処理システムが備える各部として動作させることにより上記画像処理システムをコンピュータにて実現させる画像処理システムの制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。さらに、本発明の態様に係る画像処理システムは集積回路（ＩＣチップ）として実現してもよく、この場合には、上記集積回路を備えるチップ等も本発明の範疇に入る。
【発明の効果】
【００１３】
本発明によれば、簡易な構成により、グラフィックデバイスが通常備える機能に加え、外部映像機器から画像データを取り込んで画像処理を施す機能をも具備する画像処理システム等を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る画像処理システムの概略構成を示すブロック図である。
【図２】上記画像処理システムに含まれるＦＰＧＡによるＤＭＡ転送のタイミングチャートである。
【図３】上記画像処理システムに接続されたイメージセンサにより撮像される、１フレーム分の撮像データのスキャン期間を示す概略図である。
【図４】上記画像処理システムに含まれるＦＩＦＯの容量の変化の一例を説明する説明図である。
【図５】上記画像処理システムに含まれる画像処理部による画像処理の処理内容を示すタイミングチャートである。
【図６】上記ＦＰＧＡが備えるフリップフロップを示す図である。
【発明を実施するための形態】
【００１５】
以下、図１〜図６を用いて、本発明の実施の形態について説明する。図１は、本発明の一実施形態に係る画像処理システム１の概略構成を示すブロック図である。なお、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付し、重複する説明を省略する。
【００１６】
画像処理システム１は、画像処理部２と、イメージセンサ３（カメラ）により撮像された、静止画または動画である撮像データ（映像データ）を保持するＦＩＦＯ（First In First Out）４（保持部）と、ＦＩＦＯ４と画像処理部２との間での各種のやり取りを制御するＦＰＧＡ（Field Programmable Gate Array）５（出力制御部）と、ＣＧＲＯＭ（Character Generator Read Only Memory）６とを含んでいる。ＣＧＲＯＭ６は、各種のスプライト、背景、フォント等の表示対象についての圧縮形式または非圧縮形式の画像データやαブレンディングに用いる圧縮形式または非圧縮形式のαブレンド値等が予め記憶されている。図１では、画像処理部２により画像処理が施された画像データを表示する表示装置７も図示している。なお、画像処理部２およびＦＰＧＡ５は画像処理装置を構成する部材でもある。
【００１７】
画像処理部２は、ＦＩＦＯ４から撮像データを読み出し、および／または、ＣＧＲＯＭ６から画像データを読み出して、表示装置７に表示させる画像データを生成する。画像処理部２は、制御部２１と、メモリインタフェース（Ｉ／Ｆ）２２と、画像データバッファ２３と、撮像データバッファ２４と、描画部２５と、出力部２６と、映像出力インタフェース（Ｉ／Ｆ）２７と、ＧＰＩＯ（General Purpose Input Output）２８と、Ｉ２Ｃ（Inter Integrated Circuit）２９とを含んでいる。
【００１８】
制御部２１は、画像処理部２の全体を制御するものである。
【００１９】
メモリＩ／Ｆ２２は、メモリバス８（特に、メモリバス８の一部である第１メモリバス８ａ）を介して、ＣＧＲＯＭ６に接続されている。メモリＩ／Ｆ２２は、第１メモリバス８ａを介して、ＣＧＲＯＭ６から供給される画像データを受け取り、画像データバッファ２３に供給する。ＣＧＲＯＭ６から供給される画像データは、圧縮形式の画像データであれば、図示しない復号化部により復号され、画像データバッファ２３に供給される。
【００２０】
ここで、メモリＩ／Ｆ２２は本来、アドレス信号等の、ＣＧＲＯＭ６に記憶された画像データへのアクセスに必要な情報や、データ信号等の、画像データの読み込みに必要な情報を、メモリバス８を介して、ＣＧＲＯＭ６との間において送受信するものである。
【００２１】
メモリバス８は、グラフフィックチップのＮＡＮＤ型フラッシュ（登録商標）やＮＯＲ型フラッシュ等に接続されるメモリバスである。また、メモリバス８は、高速にデータを取り込む仕様を備え、フレームレートが高い高速度カメラも接続可能である。
【００２２】
本発明者らは、メモリＩ／Ｆ２２が、メモリバス８を介して、ＣＧＲＯＭ６から画像データを取り込むという入力系統に着目し、この入力系統を、イメージセンサ３により撮像された撮像データの取り込みに転用すること、および、ＣＧＲＯＭ６に記憶された画像データとイメージセンサ３からの撮像データの取り込みとに共用することを鋭意検討し、その結果、本発明を完成させるに至った。
【００２３】
以下、本実施形態では、メモリバス８およびメモリＩ／Ｆ２２が、ＣＧＲＯＭ６からの画像データの取り込みと、イメージセンサ３からの撮像データの取り込みと、に共用された構成について説明する。
【００２４】
メモリＩ／Ｆ２２はＣＧＲＯＭ６に接続されていることに加えて、さらに、メモリバス８（特に、メモリバス８の他の一部である第２メモリバス８ｂ）を介して、ＦＩＦＯ４に接続されている。これにより、メモリＩ／Ｆ２２は、第２メモリバス８ｂを介して、ＦＩＦＯ４に保持されている、イメージセンサ３により撮像された撮像データを受け取り、撮像データバッファ２４に供給する。
【００２５】
ここで、上述したとおり、メモリＩ／Ｆ２２は本来、ＣＧＲＯＭ６から画像データを取り込むための情報のやり取りを、読み出し専用のＣＧＲＯＭ６との間で実行可能となるように、その回路が構成されたものである。よって、メモリＩ／Ｆ２２は、メモリバス８に新たに接続されたＦＩＦＯ４、およびＦＩＦＯ４に撮像データを供給するイメージセンサ３との間における各種情報のやり取りを想定した回路構成にはなっていない。
【００２６】
そこで、画像処理システム１では、メモリＩ／Ｆ２２が、メモリバス８を介して、ＦＩＦＯ４に保持されている撮像データを取り込み可能とするために、ＦＩＦＯ４とメモリＩ／Ｆ２２との間に、ＦＰＧＡ５を設けた。ＦＰＧＡ５は、ＦＩＦＯ４とメモリＩ／Ｆ２２との間、さらには、ＦＩＦＯ４と画像処理部２との間における各種のやり取りを制御するものである。メモリＩ／Ｆ２２は、ＦＰＧＡ５による各種の情報の送受信により、ＦＩＦＯ４より撮像データを受け取ることが可能となり、さらに、画像処理部２は、受け取った撮像データに画像処理を施し、ＣＧＲＯＭ６から読み出した画像データと共に、表示装置７に表示させることが可能となる。
【００２７】
再び、画像処理部２の説明に戻ると、画像データバッファ２３は、メモリＩ／Ｆ２２から供給された画像データを記憶する。画像データは、表示装置７のフレーム単位で、画像データバッファ２３に書き込まれ、描画のために、描画部２５により読み出される。
【００２８】
一方、撮像データバッファ２４は、メモリＩ／Ｆ２２から供給された撮像データを記憶する。本実施形態では、撮像データバッファ２４は、トリプルバッファリングを行うことを想定し、第１バッファ２４ａ（格納部）、第２バッファ２４ｂ（格納部）、および第３バッファ２４ｃ（格納部）を含む構成としている。第１バッファ２４ａ、第２バッファ２４ｂ、および第３バッファ２４ｃは、所定の順序（例えば、第１バッファ２４ａ→第２バッファ２４ｂ→第３バッファ２４ｃ→第１バッファ２４ａ→・・・）で、イメージセンサ３のフレーム単位で、ＦＩＦＯ４から撮像データが書き込まれ、上述の所定の順序で、描画のために、描画部２５により撮像データが読み出される。
【００２９】
例えば、第１バッファ２４ａ→第２バッファ２４ｂ→第３バッファ２４ｃ→第１バッファ２４ａ→・・・の順序で、イメージセンサ３のフレーム単位で、ＦＩＦＯ４から撮像データが書き込まれる場合、第１バッファ２４ａに撮像データが書き込まれる段階において、第２バッファ２４ｂに書き込み済みの１つ前のフレームの撮像データに対して描画部２５による画像処理が施され、また、第３バッファ２４ｃに書き込み済みの２つ前のフレームの撮像データが出力部２６に出力される。
【００３０】
本実施形態では、撮像データバッファ２４はトリプルバッファリングを行うものとしたが、撮像データバッファ２４が備えるバッファの個数は限定されるものではなく、２つであっても、または、４つ以上であってもよい。
【００３１】
描画部２５は、画像データバッファ２３から画像データを１フレーム分ずつ読み出し、読み出した画像データに対し、拡縮・変形、カラー処理等の画像処理を施した描画データを生成する。描画部２５は、生成した描画データを出力部２６に出力する。また、描画部２５は、撮像データバッファ２４から撮像データを１フレーム分ずつ読み出し、読み出した撮像データに対し、上述の画像処理を施した描画データを生成し、出力部２６に出力する。
【００３２】
出力部２６は、映像出力Ｉ／Ｆ２７を介して、描画部２５から入力された描画データを表示装置７へ供給し、表示装置７に表示させる。出力部２６は、描画データを書き込み可能なフレームバッファを有している。フレームバッファは、ダブルバッファリングを行うものであり、２つのバッファは、交互にフレーム単位で、一方が描画のために描画データが書き込まれ、他方が表示のために描画データが読み出される。映像出力Ｉ／Ｆ２７は、描画データをデジタルＲＧＢとして出力する。
【００３３】
ＧＰＩＯ２８およびＩ２Ｃ２９は、画像処理部２が外部機器（本実施形態では、ＦＰＧＡ５およびイメージセンサ３）と接続するための入出力用のインタフェースである。画像処理部２（特に、制御部２１）とＦＰＧＡ５とは、ＧＰＩＯ２８を介して接続されており、各種情報のやり取りが可能となっている。また、画像処理部２（特に、制御部２１）とイメージセンサ３とは、Ｉ２Ｃ２９に接続されたＳＣＣＢ（Serial Camera Control Bus）を介して、各種情報のやり取りが可能である。例えば、制御部２１は、イメージセンサ３に設けられているレジスタに対して表示空間や解像度など各種設定を行う。
【００３４】
ＦＩＦＯ４は、イメージセンサ３により撮像された撮像データを保持する。ＦＩＦＯ４は、メモリバス８（特に、第２メモリバス８ｂ）に接続されている。ＦＩＦＯ４に保持された撮像データは、メモリバス８を介して、メモリＩ／Ｆ２２に供給される。ＦＩＦＯ４は、イメージセンサ３から送られてくる撮像データを保持し、送られてきた順序で、保持する撮像データをメモリＩ／Ｆ２２に出力する、先入れ先出しのメモリである。すなわち、ＦＩＦＯ４は、撮像データの一時記憶に用いられ、高速アクセス可能であり、アドレス設定が不要な先入れ先出し方式の読み書き可能なメモリである。
【００３５】
ＦＰＧＡ５は、イメージセンサ３、ＦＩＦＯ４、メモリＩ／Ｆ２２、およびＧＰＩＯ２８に接続されている。ＦＰＧＡ５は、イメージセンサ３およびＦＩＦＯ４と、画像処理部２との間における送受信の仲介を行うものである。ＦＰＧＡ５は、イメージセンサ３およびＦＩＦＯ４と、画像処理部２（特に、メモリＩ／Ｆ２２）との間における送受信の方法等について、ユーザが容易に設定可能である。
【００３６】
具体的には、ＦＰＧＡ５は、画像処理部２からの指示に従って、ＦＩＦＯ４からメモリＩ／Ｆ２２への撮像データの直接転送（すなわち、ＤＭＡ（Direct Memory Access）転送）をＦＩＦＯ４に指示する。以下、図２を用いて、上述のＤＭＡ転送について、説明する。
【００３７】
図２は、ＦＰＧＡ５によるＤＭＡ転送のタイミングチャートである。図２では、イメージセンサ３が毎秒３０枚の撮像画像を出力するものを例としており、このため、イメージセンサ３の垂直同期信号（以下では「ＶＳＹＮＣ」と表記する）の立ち下がりエッジ期間または立ち上がりエッジ期間（例えば、時刻ｔ２から時刻ｔ７までの期間）は、約１／３０秒（３３ｍｓ）である。また、イメージセンサ３への入力クロック周波数は２５ＭＨｚとしている（ＶＧＡ解像度）。なお、以下では、ＶＳＹＮＣの立ち下がりエッジを基準とし、ＶＳＹＮＣの立ち下がりエッジ期間（例えば、時刻ｔ１から時刻ｔ５までの期間）において、１枚（１フレーム）分の撮像データがイメージセンサ３からＦＩＦＯ４へ出力されるものとする。
【００３８】
時刻ｔ２において、ＶＳＹＮＣが立ち上がると、イメージセンサ３により撮像された撮像データの、ＦＩＦＯ４への出力を開始する。一方、ＦＩＦＯ４からメモリＩ／Ｆ２２への撮像データのＤＭＡ転送は時刻ｔ４になるまで待機されている。このため、時刻ｔ２から時刻ｔ４までの期間においては、イメージセンサ３からＦＩＦＯ４へ出力された撮像データは、ＦＩＦＯ４に蓄積されることになる。
【００３９】
また、時刻ｔ１において、ＦＰＧＡ５は、ＶＳＹＮＣが立ち下がると、その立ち下がりエッジに同期して、ＶＳＨを立ち上げる。ＶＳＨは、ＶＳＹＮＣの立ち上がりまたは立ち下がりを画像処理部２に通知するために、ＦＰＧＡ５が生成し、画像処理部２に出力するものである。
【００４０】
時刻ｔ１からｔ４までの期間（以下では「待機期間Ｗ」と表記する）はＤＭＡ転送を開始せずに待機し、時刻ｔ４になるとＤＭＡ転送を開始する。待機期間Ｗ（ここでは、８ｍｓとした）は、例えば、画像処理部２が備えるタイマにて計測する。制御部２１は、ＨレベルのＶＳＨを検知することにより、上述のタイマによる計測を開始し、待機期間Ｗが経過する（すなわち時刻ｔ４になる）と、ＦＰＧＡ５にＤＭＡ転送の開始を指示する。その後の撮像データの転送は、ＦＰＧＡ５が制御する、ＦＩＦＯ４−メモリＩ／Ｆ２２間の直接通信によって実行される。なお、待機期間Ｗの計測は、ＦＰＧＡ５が備えるカウンタを用いて行ってもよい。
【００４１】
時刻ｔ４から時刻ｔ６までの期間においては、イメージセンサ３により撮像された撮像データがＦＩＦＯ４に出力されつつ、ＦＩＦＯ４からメモリＩ／Ｆ２２へ撮像データが出力される。上述したとおり、ＦＩＦＯ４は先入れ先出し方式であるから、時刻ｔ４から時刻ｔ６までの期間では、イメージセンサ３から入力された順序で、ＦＩＦＯ４から撮像データが出力されることになる。
【００４２】
時刻ｔ５においてイメージセンサ３からＦＩＦＯ４への撮像データの出力が終了した後、時刻ｔ６においてＦＩＦＯ４が空（下限値）になる、つまり、１フレーム分の撮像データがＦＩＦＯ４からメモリＩ／Ｆ２２へ出力され次第、ＤＭＡ転送が終了する。
【００４３】
このようにして、ＦＩＦＯ４からメモリＩ／Ｆ２２へ出力された、１フレーム分の撮像データは、メモリＩ／Ｆ２２により、撮像データバッファ２４（ここでは、第１バッファ２４ａ）に書き込まれる。
【００４４】
なお、時刻ｔ７においては、次フレーム分の撮像データのＦＩＦＯ４への出力が開始され、その後は、上述と同様の処理が行われ、第２バッファ２４ｂへ撮像データが書き込まれる。
【００４５】
ここで、待機期間Ｗの算出方法について説明する。図３は、イメージセンサ３により撮像される、１フレーム分の撮像データのスキャン期間を示す概略図である。図３に示すように、１フレームあたりのスキャン期間（水平スキャン期間×垂直スキャン期間）には、撮像データが有効となる領域（水平有効画素数×垂直有効画素数）をスキャンする有効期間と、実際には撮像データが出力されない無効期間と、が存在する。
【００４６】
仮に、イメージセンサ３からＦＩＦＯ４への撮像データの入力の速度と、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力の速度とが、ほぼ等しければ、上述の無効期間をそのまま待機期間Ｗとすることにより、イメージセンサ３からＦＩＦＯ４への１フレーム分の撮像データの入力が終了する時点において、ＦＩＦＯ４からメモリＩ／Ｆ２２への１フレーム分の撮像データの出力が終了することになる。
【００４７】
一方、仮に、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度より速い場合は、イメージセンサ３からＦＩＦＯ４への１フレーム分の撮像データの入力が終了する以前に、一旦、ＦＩＦＯ４が空になってしまうことが起こり得る。このような場合には、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度と、イメージセンサ３からＦＩＦＯ４への入力のデータ速度との差に応じて、上述の無効期間に適切なマージン期間を加えて調整したものを待機期間Ｗとしてもよい。
【００４８】
もちろん、イメージセンサ３からＦＩＦＯ４への入力のデータ速度、ＦＩＦＯ４の容量、およびＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度はそれぞれ調整可能であるから、これらを適切に調整することにより、ＦＩＦＯ４の容量が下限値を下回ること（アンダーフロー）、およびＦＩＦＯ４の容量が上限値を越えること（オーバーフロー）を防止することができる。
【００４９】
以下、具体的な数値を用いて、待機期間Ｗ（８ｍｓ）の算出例について説明する。図３に示したスキャン期間において、垂直スキャン数を５１０、水平スキャン数を７８４、垂直有効画素を４８０、水平有効画素を６４０とする。なお、上述したとおり、１フレーム期間は３３ｍｓである。
【００５０】
（１）スキャン期間と有効期間との比率を算出する。
【００５１】
（４８０×６４０）÷（５１０×７８４）＝０．７６８３
（２）１フレーム期間に対する有効期間を算出する。
３３×０．７６８３＝２５．３９［ｍｓ］
（３）１フレーム期間から、上記（２）で算出した有効期間を減算し、無効期間を算出する。
３３−２５．３９＝７．６１［ｍｓ］
（４）上記（３）で算出した無効期間に上述したマージン期間を加算し、待機期間Ｗを決定する。
７．６１＋０．３９＝８．００［ｍｓ］
なお、マージン期間は、イメージセンサ３からＦＩＦＯ４への入力開始時点から、上述の有効期間における撮像データの出力開始時点の範囲内に設定する必要がある。この範囲を超えるマージン期間を設定した場合、次のフレーム分の撮像データの入力開始時点において、ＦＩＦＯ４から先のフレーム分の撮像データの一部が残存し、先のフレーム分の撮像データの出力が未完了となってしまうおそれがあるからである。
【００５２】
次に、図４を用いて、ＤＭＡ転送の終了について説明する。図４は、ＤＭＡ転送が行われているときのＦＩＦＯ４の容量の変化の一例を説明する説明図である。なお、図４に示された「上限値」は、ＦＩＦＯ４の容量の上限値を意味するものである。ここでは、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度より速い場合を例として説明する。
【００５３】
図４に示すように、イメージセンサ３のＶＳＹＮＣが立ち上がると、イメージセンサ３からＦＩＦＯ４への撮像データの入力が開始する。ただし、実際には、イメージセンサ３の仕様に起因する遅延期間（図４中、Ａで示す期間）経過後、その出力が開始する（ここでは、時刻Ｔ２において、出力が開始する）。
【００５４】
イメージセンサ３からＦＩＦＯ４への撮像データの入力と共に、ＦＩＦＯ４に蓄積される撮像データのデータ量（以下では、「ＦＩＦＯ容量」と表記する。）は上昇する。この上昇は、時刻Ｔ３になるまで（つまり待機期間Ｗが経過するまで）、継続することになる。
【００５５】
時刻Ｔ３において、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力が開始すると、それに伴い、ＦＩＦＯ容量は下降する。ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度よりも速いからである。この下降は、時刻Ｔ４においてイメージセンサ３からＦＩＦＯ４への入力が終了する、つまり、１フレーム分の撮像データの入力が終了するまで、継続することになる。
【００５６】
そして、時刻Ｔ４において、イメージセンサ３からＦＩＦＯ４への入力が終了すると、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のみが行われる結果、ＦＩＦＯ容量の下降速度は増し、時刻Ｔ５において、ＦＩＦＯ容量は空となる。つまり、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力が完了したことになる。
【００５７】
ここで、ＤＭＡ転送を開始させるためには、上述したとおり、画像処理部２からＦＰＧＡ５を介してＦＩＦＯ４へ指示を必要とするのに対し、ＤＭＡ転送を終了させるための指示は不要である点が特筆すべき事柄である。なぜなら、待機時間Ｗを適切に設けたことにより、イメージセンサ３からＦＩＦＯ４への撮像データの入力が開始した後は、ＦＩＦＯ４からメモリＩ／Ｆ２２へ１フレーム分の撮像データの出力が完了した後（つまり、時刻Ｔ５より後）になって初めてＦＩＦＯ容量が空になり、その時点で自動的にＤＭＡ転送が終了するからである。
【００５８】
また、ＦＩＦＯ容量が最大となる時点は、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力開始時点（時刻Ｔ３）である。そこで、この出力開始時点において、ＦＩＦＯ４に蓄積されているデータ量を予め想定し、そのデータ量を超える上限値を持つＦＩＦＯメモリをＦＩＦＯ４に用いることにより、ＤＭＡ転送時において、ＦＩＦＯ容量がＦＩＦＯ４の上限値を超えることがない。したがって、ＤＭＡ転送時におけるＦＩＦＯ４のＦＩＦＯ容量を監視する必要がなく、ＦＩＦＯ容量を監視するための構成が不要となる点についても注目すべきである。
【００５９】
図４に示した例は、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度より速い場合におけるＦＩＦＯ４の容量変化の一例である。しかしながら、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度と同じまたはそれより遅い場合であっても、イメージセンサ３からＦＩＦＯ４への入力のデータ速度、ＦＩＦＯ４の容量、およびＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度をそれぞれ調整することにより、ＦＩＦＯ４のアンダーフローおよびオーバーフローを防止することができることは言うまでもない。
【００６０】
なお、ＦＩＦＯ４からメモリＩ／Ｆ２２への出力のデータ速度が、イメージセンサ３からＦＩＦＯ４への入力のデータ速度と同じまたはそれより遅い場合、イメージセンサ３からＦＩＦＯ４への入力が終了するまでＦＩＦＯ容量は上昇するかまたは略一定である。このため、図４に示す時刻Ｔ４において、ＦＩＦＯ容量がＦＩＦＯ４の上限値未満となるように調整すればよい。
【００６１】
このように、撮像データの１フレーム分をイメージセンサ３からＦＩＦＯ４に入力中においては、ＦＩＦＯ４の容量が上限値未満かつ下限値より大きい状態を保つことになる。
【００６２】
最後に、画像処理部２による画像処理について、簡単に説明する。図５は、画像処理部２が、画像データバッファ２３に書き込まれた画像データ、および撮像データバッファ２４に書き込まれた撮像データに対して施す画像処理の処理内容を示すタイミングチャートである。なお、図５では、画像処理部２が毎秒６０枚の描画データを表示装置７に出力するものを例としており、このため、画像処理部２の垂直帰線消去期間信号（以下では「ＶＢＬＡＮＫ」と表記する）の立ち下がりエッジ期間または立ち上がりエッジ期間（例えば、時刻ｔ１０１から時刻ｔ１０２までの期間）は、約１／６０秒（１６ｍｓ）である。なお、以下では、ＶＢＬＡＮＫの立ち下がりエッジを基準とし、ＶＢＬＡＮＫの立ち下がりエッジ期間において、１枚（１フレーム）分の描画データが画像処理部２から表示装置７へ出力されるものとする。
【００６３】
時刻ｔ１０１において、ＶＢＬＡＮＫが立ち下がると、出力部２６の表示用のフレームバッファがクリアされる（Ｓ１１）。撮像データバッファ２４に書き込まれた撮像データに対しては、ＡＲＧＢ形式への変換を施し（Ｓ１２）、画像データバッファ２３に書き込まれた画像データ、および撮像データバッファ２４に書き込まれた撮像データに対し、表示装置７の表示画面上における表示位置を示すアドレスデータを生成することにより、アドレス変換が施される（Ｓ１３）。そして、画像データバッファ２３に書き込まれた画像データ、および撮像データバッファ２４に書き込まれた撮像データに対し、エッジ強調などのフィルタ処理を行う（Ｓ１４）。
【００６４】
ここで、画像処理部２の制御部２１は、ステップＳ１１〜１４の処理完了時点の各々において、ＦＰＧＡ５から出力されるＶＳＨのレベルを確認し（Ｃ１１〜Ｃ１４）、ＨレベルのＶＳＨを検知したら、ＦＰＧＡ５に対し、ＶＳＨをＬレベルに戻すように指示する。なお、ステップＳ１４の処理完了後は、ＨレベルのＶＳＨが検知できるまで、ＶＳＨのＨレベルをポーリングする（Ｃ１４）。
【００６５】
上述したように、ＶＳＨは、イメージセンサ３のＶＳＹＮＣの立ち上がりまたは立ち下がりを画像処理部２に通知するために、ＦＰＧＡ５が生成し、画像処理部２に出力するものである。このようにする理由は、画像処理部２がイメージセンサ３からＶＳＹＮＣを直接受け取る仕組みがないためであり、ＦＰＧＡ５は、ＶＳＹＮＣの代替としてＶＳＨを画像処理部２に出力するのである。
【００６６】
なお、ＶＳＨを生成する構成は、例えば、図６に示すフリップフロップで実現することができる。入力端子Ｓにイメージセンサ３のＶＳＹＮＣを入力し、入力端子Ｒに、ＶＳＨのＨレベル検知に基づく、制御部２１からの指示（ここでは、Ｈレベルの信号）を入力する。図６の例では、ＶＳＹＮＣの立ち上がりにより、入力端子ＳにＨがセットされると、出力端子ＱにＨがセットされ、入力端子ＲにＨがセットされるまで、出力端子ＱはＨを維持することになる。
【００６７】
再び、図５に戻り、画像処理部２による画像処理について説明する。
【００６８】
時刻ｔ１０１から時刻ｔ１０３までの期間において、描画部２５により、上述のステップＳ１１〜Ｓ１４の画像処理が施された描画データが、出力部２６に出力される。出力部２６は、上述したとおり、ダブルバッファリングを行うものである。時刻ｔ１０１から時刻ｔ１０３までの期間において上述の画像処理が施された描画データは、２つのバッファの一方に書き込まれることになる。
【００６９】
ただし、イメージセンサ３のＶＳＹＮＣの立ち下がりエッジ期間または立ち上がりエッジ期間は約１／３０秒（３３ｍｓ）である一方、画像処理部２のＶＢＬＡＮＫの立ち下がりエッジ期間または立ち上がりエッジ期間は約１／６０秒（１６ｍｓ）である。つまり、画像処理部２が１フレーム分を描画するために要する期間は、イメージセンサ３が１フレーム分を撮像するために要する期間のほぼ半分となる。
【００７０】
このため、画像処理部２では、表示装置７のＶＢＬＡＮＫが２回検知されたことを条件とし、描画データが書き込まれるバッファと描画データが読み出されるバッファとの切り替えを行っている。
【００７１】
例えば、時刻ｔ１０２において１回目のＶＢＬＡＮＫが検知され、時刻ｔ１０３において２回目のＶＢＬＡＮＫが検知されると、もう一方のバッファに時刻ｔ１０３から時刻ｔ１０５までの期間において画像処理が施された描画データが書き込まれることになる。また、時刻ｔ１０１から時刻ｔ１０３までの期間において画像処理が施された描画データが書き込まれたバッファが読み出され、読み出された描画データが表示装置７に表示される。ただし、時刻ｔ１０１から時刻ｔ１０２までの期間および時刻ｔ１０２から時刻ｔ１０３までの期間の各々においては、同一のバッファから読み出された同一の描画データ（ここでは、時刻ｔ１０１から時刻ｔ１０３までの期間において画像処理が施された描画データ）が表示されることになる。
【００７２】
画像処理システム１（特に、画像処理部２）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００７３】
後者の場合、画像処理システム１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７４】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【００７５】
また、本発明は、ＦＡ機器、自動車、画像センサ、遊技機などに好適である。
【符号の説明】
【００７６】
１  画像処理システム、２  画像処理部、３  イメージセンサ（カメラ）、４  ＦＩＦＯ（保持部）、５  ＦＰＧＡ（出力制御部）、６  ＣＧＲＯＭ（メモリ）、７  表示装置、８  メモリバス、８ａ  第１メモリバス、８ｂ  第２メモリバス、２２  メモリＩ／Ｆ、２３  画像データバッファ、２４  撮像データバッファ、２４ａ  第１バッファ（格納部）、２４ｂ  第２バッファ（格納部）、２４ｃ  第３バッファ（格納部）、２５  描画部、２６  出力部、２７  映像出力Ｉ／Ｆ、２８  ＧＰＩＯ、２９  Ｉ２Ｃ
【図１】
2017220180.tif 000003
【図２】
2017220180.tif 000004
【図３】
2017220180.tif 000005
【図４】
2017220180.tif 000006
【図５】
2017220180.tif 000007
【図６】
2017220180.tif 000008