画像処理装置
【課題】 画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供する。
【解決手段】 画像処理装置は、画像入力手段から得られた画像データを処理するための画像処理手段と、前記画像処理手段によって処理される画像データを格納する第1メモリと、前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、前記第1メモリから転送される画像データを格納する第2メモリと、前記第1メモリおよび第2メモリに接続される第2バスと、前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、を有する。
【解決手段】 画像処理装置は、画像入力手段から得られた画像データを処理するための画像処理手段と、前記画像処理手段によって処理される画像データを格納する第1メモリと、前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、前記第1メモリから転送される画像データを格納する第2メモリと、前記第1メモリおよび第2メモリに接続される第2バスと、前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置に関し、特に、所定の時間間隔で画像データを順次入力して処理を行う技術に関する。
【背景技術】
【0002】
ビデオ信号のリアルタイム処理と計算機への画像入力処理とを並行して実行することができる信号処理装置としては、画像信号に同期した画像信号のバスとそのコントローラとを信号処理装置内に設けた構成が知られている(例えば、特許文献1参照)。
【特許文献1】昭60−138634号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記特許文献1に記載された構成では、画像データの転送とCPUのデータ処理は並列に実行可能であるが、CPUで画像処理するための元データを画像信号バスで所定のタイミングでメモリに書く必要がある。そのため、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことは困難であった。
【0004】
本発明は上記課題に鑑みなされたものであり、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することを目的とする。
【0005】
また、本発明は、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を行うことを可能にする技術も提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明による画像処理装置は以下の構成を有する。即ち、
画像入力手段から得られた画像データを処理するための画像処理手段と、
前記画像処理手段によって処理される画像データを格納する第1メモリと、
前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、
前記第1メモリから転送される画像データを格納する第2メモリと、
前記第1メモリおよび第2メモリに接続される第2バスと、
前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、
を有する。
【発明の効果】
【0007】
本発明によれば、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することができる。
【0008】
また、本発明によれば、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を行うことを可能にする技術も提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0010】
<<第1実施形態>>
(画像処理装置の構成)
図1は本実施形態に係る画像処理装置の構成を示す図である。図1において1及び2はメモリ、100は上記2つのメモリと接続されるIF(interface)部としてのメモリ制御部(11,21)を有する画像処理部である。また、200は撮像部であり、ここで撮影された映像信号が映像入力信号線201を介して画像処理部100の画像入力部12に入力されている。なお、画像処理装置は、半導体集積回路、デジタルカメラ、コンピュータ、カメラ付携帯電話等で実現することができる。
【0011】
画像処理部100において、10は第1バスであり、11はメモリ1(第1メモリ)と接続される第1メモリ制御部である。12は画像入力部であり、所定の時間間隔で画像データを順次入力する。13は画像出力部、14は画像圧縮部、15は解像度変換部である。第1バス10はこれらの各画像処理モジュール(12,13,14,15)と第1メモリ制御部11に接続されている。各画像処理モジュール(12,13,14,15)は、入力された画像データ、もしくは他の画像処理モジュールにおいて処理された画像データに対して画像処理を行う回路である。画像処理モジュールは一体的な回路であってもよいし、別個のものであってもよい。
【0012】
また、20は第2バスであり、21はメモリ2(第2メモリ)と接続される第2メモリ制御部である。22は画像処理部100全体の制御を司るCPU、23はDMAコントローラ(DMAC:Direct Memory Access Controller)である。CPU22、DMAコントローラは、メモリ1に格納された画像データを第2バス20を介してメモリ2へ転送させる制御を行う。
【0013】
24はネットワークインタフェースとしてのネットワーク制御部である。ネットワーク制御部24は、画像処理モジュール(12,13,14,15)において画像処理がなされた画像処理済みの画像データを外部装置へ送出する。また、ネットワーク制御部24は非同期処理手段の一例である。ネットワーク制御部24に代えて、又はそれとともに、画像データの入力とは非同期に、入力された画像データに対して所定の処理を行う他の機能要素を設けてもよい。
【0014】
25はフラッシュROM、26は制御バスIF、27は画像処理コントローラである。第2バス20はこれらの各処理モジュール(22,23,24,25,26,27)及び第1メモリ制御部11と第2メモリ制御部21に接続されている。
【0015】
制御バスIF26及び画像処理コントローラ27は、制御専用バス40(制御バス)に接続されている。画像処理コントローラ27は、この制御専用バス40を介して、各画像処理モジュール(12,13,14,15)に対してアクセスし、各画像処理モジュールに対するパラメータの設定及び値の読み出し、モジュールの起動、停止などを実行する。また、CPU22も制御バスIF26を経由して、制御専用バス40を介して各画像処理モジュール(12,13,14,15)に対してアクセスすることが可能である。
【0016】
画像入力部12からは、画像入力部12の処理状態を伝える制御信号32が画像処理コントローラ27に対して送出される。同様に、画像圧縮部14からは、画像圧縮部14の処理状態を伝える制御信号31が画像処理コントローラ27に対して送出されている。また、画像処理コントローラ27からは、制御信号33がCPU22に対して送出される。
【0017】
本実施形態においては、第1バス10は一定処理時間内での処理が要求される画像処理モジュール(12,13,14,15)が接続される画像バスである。そのため、本実施形態では、第1バス10に接続された第1メモリ制御部11に繋がるメモリ1の一例として、高速でメモリアクセス帯域が大きいDDR(Double Data Rate SDRAM)メモリを想定する。また、第1バス10は、データの転送レート向上のために、データ転送時のバースト転送限定利用、アドレスとデータの発行順序の分離制御、リードとライト用のバスの分離などの機能が実装されている。更に、メモリの処理レイテンシ隠蔽のための画像処理データの特性に応じたメモリ1のバンクの使い分けも実装されている。
【0018】
一方、第2バス20には、ネットワーク制御部24を含む処理の発生タイミングが一定でないモジュール等が接続されている。これらのモジュールでは、処理の発生タイミングは一定ではないものの、第1バスに比べると処理の実時間性への制約が小さい。このため、本実施形態では、一例として、それらのモジュールが主に使用するメモリ2としてSDR(Single Data Rate SDRAM)を想定する。SDRを利用したメモリ2は、DDRメモリを利用したメモリ1に比べて、消費電力が小さく、コストが小さい。第2バス20のデータ転送は、第1バス10のようにバースト転送のみに限定されず、第2バス20はメモリ2へのランダムアクセスが可能である。
【0019】
(動作概要)
本実施形態では、一例として、画像を撮像する撮像部200から画像入力部12を経由して30フレーム/秒の一定レートで入力されたビデオ画像を、メモリ1上に保存する。そして、そのデータを処理対象の画像データとして再度メモリ1から読み出して、画像処理を行う。本実施形態では、画像処理の一例として画像圧縮部14で圧縮する。この画像処理は、メモリ1上、即ち、第1メモリ上で実行される。なお、本実施形態では、ビデオ画像として、ODD(奇数)フィールドとEVEN(偶数)フィールドを交互に表示させるインタレース方式の画像を想定するが、データの方式はこれに限られない。
【0020】
圧縮済画像データは再度メモリ1上に保存される。圧縮済画像データは画像処理コントローラ27からの指示に基づいてメモリ1からメモリ2に対して第2バス20を介して転送される。CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。
【0021】
ここで、本実施形態では、各画像処理モジュール(12,13,14,15)による画像処理が行われていない期間に、画像処理済みの画像データはメモリ1からメモリ2へ転送される。そして、ネットワーク制御部24は、メモリ1ではなく、メモリ2から画像処理済みの画像データを読み出して、外部ネットワークへの転送等の処理を行う。このため、本実施形態に係る構成によれば、画像データの入力と同期して処理を行うことが必要な画像処理とは独立に、他の処理(本実施形態の例では外部ネットワークへの転送)を容易に行うことができる。
【0022】
この処理のフローに関して図2を参照して詳細に説明する。図2は本実施形態に係る画像処理装置の動作例を示すタイミング図である。
【0023】
図2において、VSYNCは、画像入力部12に入力された映像入力信号線201の信号から抽出される垂直同期信号を示している。基本的にこの信号が"H"(High)である区間においては、映像信号中に有効なデータが含まれている。図2の例では、画像入力部12において、時刻t0に、フレーム1のODDフィールド(ODD1)の画像データのメモリ1へのデータ転送が開始されている。
【0024】
このデータ転送は、画像データが画像入力部12に一定の量溜まる度に、画像入力部12から第1バスに対して間欠的に転送要求が出され、メモリ1に対して書き込まれて実行される。図2の例では、当該転送がt0からt1の期間にわたって発生し、時刻t1においてODD1の全データが入力されたために中断されている。その後、時刻t2から、フレーム1のEVENフィールド(EVEN1)の画像データのメモリ1へのデータ転送が再開されている。この転送は時刻t3においてEVEN1の全データが入力されたために中断し、次いで時刻t4にフレーム2のODDフィールド(ODD2)の画像転送が開始されている。
【0025】
画像入力部12ではこのような処理が繰り返されており、ビデオ信号入力が30フレーム/秒の一定レートで入力されているとすると、t0〜t4間の時間はおよそ33.3ミリ秒となる。ビデオ信号は連続して次々入力されるため、この転送処理は確実に33.3ミリ秒以内に終了させる必要がある。
【0026】
一方、画像圧縮部14、及び解像度変換部15は、ODD1とEVEN1の組み合わせにより生成されるFrame1の画像データを第1バス10のリード用バスを使って順次読み出す。そして、画像圧縮部14は画像圧縮処理を実行し、解像度変換部15は解像度変換処理を実行する。これらの処理は、画像入力部12からメモリ1に対してEVEN1のデータの転送が開始された時刻t2からわずかの時間Δt(時刻t1,t2の間隔に対して極めて短いため不図示)後、メモリ1上にあるデータが読み出し可能な状態になると開始される。処理を行った結果のデータは、第1バス10のライト用バスを使ってメモリ1上に書き込まれる。これらのデータの処理も画像入力データが転送されるのと同様に処理可能なデータがメモリ上に溜まるたびに間欠的に読み出されて実行され、t2からt3間での期間に対してΔtの遅延を持って実行される。
【0027】
更に、画像圧縮部14は先に時刻t2〜t3において解像度変換部15が解像度変換処理した画像データFrame1'に対して、時刻t4から圧縮処理を開始する。圧縮済画像データFrame1'はFrame1と同様に第1バス10を利用してメモリ1上に書き込まれる。
【0028】
メモリ1上に書き込まれたデータは、第2バス20上に存在するDMAコントローラ23によってメモリ1からメモリ2へ転送される。図2においては、メモリ間転送が、画像圧縮部14と画像入力部12でのそれぞれの処理終了を契機として開始している様子を矢印で示している。
【0029】
画像出力部13は、時刻t4から、画像入力部12に入力されたODD1、次いでEVEN1の画像データを1フレーム遅れで出力していく。以上の説明では、時刻t0に画像入力部12に入力が開始されたフレーム1の画像データに注目して処理の流れを説明したが、このような処理が画像処理部100では約33.3ms周期で繰り返して実行されることになる。
【0030】
(モジュール間の信号伝達)
次に、画像処理装置が上記のような動作を行う場合の、モジュール間における信号伝達について図3を参照して説明する。図3は、図2を参照して説明した、画像圧縮部14と画像入力部12でのそれぞれの処理終了が、DMAコントローラ23に対してどのようにして伝達されるかを示す図である。
【0031】
図3において、制御信号32は、画像入力部12において、画像データの転送期間中であるかないかを示す信号である。図3において、転送期間中であることを制御信号32の"H"レベルで示している。そして、t1〜t2及びt3〜t4の期間が非転送期間であることを制御信号32の"L"レベルで示している。この制御信号32の"L"レベルが許可信号の1つである。また、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを制御信号31の"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同様に、t3+Δtの制御信号31の立下りは、Frame1の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。すなわち、圧縮処理中ではない状態を制御信号31の"L"レベルで示している。
【0032】
図1に示すように、制御信号31及び32は画像処理コントローラ27に接続されている。画像処理コントローラ27は、まず、制御信号31の状態に基づいて、メモリ1からメモリ2へ転送すべき圧縮済画像データが既にメモリ1上に準備できているかどうかを判定する。制御信号31の立下りで画像圧縮処理が終了した(圧縮処理中ではない)ことを認識すると(時刻t01、又は、t3+Δt)、画像処理コントローラ27は、画像圧縮部14へアクセスする。そして、画像処理コントローラ27は、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズを取得する。ここで、画像圧縮部14へのアクセスは制御専用バス40を介して行われる。
【0033】
なお、ここで、画像処理コントローラ27は、制御信号31及び32を用いて、画像入力部12及び画像圧縮部14の動作状態を監視している。例えば、画像入力部12からの制御信号線32は、本実施形態においては前述したように約33.3msごとにODDとEVENの2回のフィールドデータ転送により、2回Lの期間を発生することが期待される。
【0034】
また、制御信号線31は画像圧縮部14における圧縮処理に要する時間毎にLになることが期待される。画像処理コントローラ27は、内部にタイマ機能(図示せず)を保持しており、制御信号線毎に極性が反転するタイミングを監視している。そして、各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間に達しても当該制御信号線に変化が現れない場合には、当該モジュールに異常が発生したと認識する。その場合、画像処理コントローラ27は、異常が発生した画像処理モジュール及びその異常の影響を受けると想定されるモジュールに対して、制御専用バス40を介してモジュールの初期化及び再起動の命令を発行する。
【0035】
同時に、画像処理コントローラ27は、画像処理モジュールの初期化を実施したことをCPU22に対して第2バスを介して通知をする。当該通知を受けたCPU22は、画像処理が復旧するまでの間、必要に応じて既にメモリ2に転送されている過去の圧縮データを利用して画像送信処理を行うなどの処理を行う。
【0036】
なお、ここで各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間とは、例えば画像圧縮部14の場合およそ、次の式で算出されるT(timeout)で近似することができる。
T(timeout)=2×MAX(A+B×C, D)
但し、A,B,C,Dは以下のとおりである。
A:圧縮方式毎に定まる画像データの処理時間(圧縮処理部14内のソフトウェア処理ルーチンを切り替えるためにプログラムを圧縮処理部14にロードする時間、あるいは画像データのヘッダを生成する作業に要する時間等、画像サイズに依存しない時間)。
B:圧縮方式ごとに定まる単位画像サイズあたりの画像データの処理時間。
C:処理対象の画像データの1フレームの画像サイズ。
D:画像処理部への当該画像サイズのデータを供給するために要する時間。
【0037】
図2において、Frame1の処理時間はt2〜t3であるが、これは圧縮処理部14への圧縮用データの供給が画像入力部12からのデータ転送時間によって律速されるためである。この場合は上記式のDの項が意味を持つ。一方、Frame1’の処理時間(t4〜t5)に関しては、既に圧縮に用いるデータがメモリ1上に準備されているため、データ転送時間(Dの項)は律速にはならず、A+B×Cの項が意味を持つ。最終的に異常と判定されるまでの期間は上記の処理時間の2倍とここでは設定している。これは、想定した処理の2倍以上の時間を要しているようでは、リアルタイム性を維持しながら処理を行う本モジュールの特性を維持し得ないからである。
【0038】
次いで、圧縮処理中ではない状態において、画像処理コントローラ27は、制御信号32の状態に基づいて、画像処理の上で最優先すべき画像入力データのメモリ1への転送処理が行われているかどうかを判定する。制御信号32が"L"(Low)になっていた場合(画像入力データのメモリ1への転送が行われていない場合)には、制御信号33を"L"にドライブして、CPU22に対してメモリ1へのアクセス許可を通知する。さらに、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する。これらの通知は、画像処理中ではないことを示す信号であり、CPU22に対する画像データの転送を指示する信号に相当する。
【0039】
メモリ1へのアクセス許可を制御信号33を介して通知されたCPU22は、DMAコントローラ23に対して、第2バス20を介して転送すべき圧縮済画像データ画像サイズを通知する。さらに、CPU22は、当該データのメモリ1からメモリ2への転送開始をDMAコントローラ23に対し指示する。CPU22からの指示を受け取ったDMAコントローラ23は第2バス20を介して第1メモリ制御部11にアクセスし、Frame0'の圧縮済み画像データをメモリ1から読み出してメモリ2への転送を時刻t1に開始する。同様に時刻t3+Δtにおいては、Frame1のデータの転送を開始する。
【0040】
なお、ここでCPU22は、画像処理コントローラ27が制御信号31及び32を監視していたのと同様に、制御信号33を用いて、画像処理コントローラ27の動作状態を監視している。制御信号線33は画像転送要求を発生するため、定期的にLになることが期待される。CPU22は、内部にタイマ機能(図示せず)を保持しており、制御信号線33の極性が反転するタイミングを監視している。そして、画像処理コントローラ27に対して要求している処理内容に応じて定まる一定の期間に達しても制御信号線33に変化が現れない場合には、画像処理コントローラ27に対する問い合わせを第2バス経由で行う。画像処理コントローラが応答を返さない場合、もしくは異常の発生が返された場合には、CPU22は画像処理コントローラ27の初期化及び再起動を行う。
【0041】
なお、画像処理コントローラ27に対して要求している処理内容に応じて定まる一定の期間とは、例えばネットワークを介して外部の装置から要求されている画像のフレームレートがEフレーム/秒であった場合、次の式で近似することができる。
T(timeout)=F×(1/E)
但し、F:2以上のシステム要求によって定まる値。
【0042】
これは、想定したフレームレートの処理間隔の最大F倍までの処理遅延を許すというものであり、画像処理バッファの容量、ネットワーク等の伝送遅延等を考慮して決められる値である。
【0043】
もちろん、この値の決め方は一例であり、異常検出までの待ち時間の決め方は、必要に応じて変更することが可能である。
【0044】
DMAコントローラ23は圧縮済み画像データの転送が終了すると、転送終了通知を第2バス20経由でCPU22に対して通知する。CPU22は転送終了通知を受け取ると、次の転送に備えて、予め転送元先頭アドレス、転送先先頭アドレスなどの情報をDMAコントローラ23に対して設定し(図中点線矢印)、待機する。
【0045】
メモリ2に転送された圧縮済み画像データは、CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。これらのメモリ2上のデータへのアクセスは第2バス20経由で行われるため、第1バス10の動作には関係なく実行される。そのため、第1バス10に接続された画像処理モジュールにおける処理は、第2バス20上の各モジュールの動作の影響を受けずに実行することが可能になる。
【0046】
なお、本実施形態においては画像処理コントローラ27からCPU22へアクセス許可を通知する例を示したが、メモリ間転送を制御する方式はこれに限られない。例えば、画像処理コントローラ27から第2バス20を経由して直接DMAコントローラ23を制御してメモリ間転送を実現することも可能である。
【0047】
以上のように、第1実施形態に係る構成は、一定時間以内の処理を要求される画像処理系と、ランダム処理が発生し得るデータ処理系を分離している。そして、ランダム処理が発生し得るデータ処理系は、画像処理系からの指示に応じて所定の処理を行う。このため、ランダム処理が発生し得るデータ処理系は、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを容易に行うことができる。従って、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことが容易になる。
【0048】
更に、画像処理モジュールへの制御のバス(制御専用バス40)を、第1バス10、第2バス20とは別に設けることにより、画像処理モジュールのメモリへのアクセスを阻害することなく画像処理モジュールの制御が可能になる。このため、より一層、画像処理のリアルタイム性を保つことが容易になる。
【0049】
更に、画像処理に主に用いる第1のメモリ1とその他のシステム用に用いる第2のメモリ2とを分離したことにより、各処理部に最適な速度及び容量のメモリを用いることが可能である。また、従来のシステムに比べて、メモリ部での消費電力の削減が図ることが可能になる。
【0050】
更に、画像処理コントローラ27及びCPU22で各モジュールの処理の特性に応じた時間間隔で信号線の状態を監視する。これにより、静電気等のノイズや他の原因による処理モジュールの誤動作に対しても速やかに対応し、映像を処理できなくなる期間を短くすることが可能になる。
【0051】
更に、画像処理に主に用いる第1のメモリ1及び第1バス10とその他のシステム用に用いる第2のメモリ2及び第2バス20とを分離したことにより、画像処理関係のモジュールにのみ選択的に初期化等の処理を施すことができる。これにより、画像処理部の誤動作の発生時にOSも含めたシステム全体を初期化することなく、必要な処理部のみを選択的に初期化することが可能になる。
【0052】
<<第2実施形態>>
第2実施形態においては、第2バス20に接続された割込制御手段としての割込み制御部28を介してCPU22が直接第1のメモリ1へのアクセス許可を判定し、DMAコントローラ23を制御する構成例を示す。本実施形態の構成は第1実施形態との共通部分が多いため、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。
【0053】
(画像処理装置の構成)
図4は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態の図1とほぼ同等であるが、第2バス20に対して割込み制御部28が接続されている。そして、画像圧縮部14からの制御信号31及び画像入力部12からの制御信号32がこの割込み制御部28に接続されている。また、INT信号34が割込み制御部28からCPU22に対して接続されている。
【0054】
ここで、INT信号34は、割込み制御部28に割り込みが発生したことを示す信号線である。INT信号34は、割り込みが発生すると"L"(Low)にドライブされ、割込み要因がCPU22によって割込み制御部28から読み取られると"H"(High)にクリアされる。第2実施形態における大まかな処理のフローは、第1実施形態と同等であるので、ここでは説明を省略する。
【0055】
(モジュール間の信号伝達)
次に、画像処理装置を構成する各モジュール間における信号伝達について図5を参照して説明する。図5は、図2において示した画像圧縮部14と画像入力部12でのそれぞれの処理終了がDMAコントローラ23に対して割込み制御部28経由でどのようにして伝達されるかを示す図である。
【0056】
図5において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図5では、転送期間中であることを"H"レベルで示している。この場合、t1〜t2及びt3〜t4の期間は非転送期間である。一方、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同様に、t3+Δtの制御信号31の立下りは、Frame1の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。
【0057】
図4に示すように、制御信号31及び32は割込み制御部28に接続されている。割込み制御部28は、制御信号31の状態を検出する。制御信号31の立下りで画像圧縮処理が終了したことを検出すると(時刻t01又はt3+Δt)、割込み制御部28は、INT信号34を"L"にドライブして、CPU22に対して割り込みを通知する。割り込みを通知されたCPU22は、第2バス20を介して割込み制御部にアクセスし(図5中一点鎖線の矢印にて示す)、割り込みの発生した原因が画像圧縮部14の処理終了であったことを認識する。CPU22によってアクセスされた割込み制御部28は、INT信号34のレベルを"H"にドライブして、割込み状態を解除する。画像圧縮部14の圧縮処理終了を認識したCPU22は、制御バスIF26から制御専用バス40を介して画像圧縮部14へアクセスし、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズの情報を取得する。
【0058】
なお、ここで、CPU22はINT信号34を用いて、画像入力部12及び画像圧縮部14の動作状態を監視している。CPU22は内部に各処理部に対応したタイマ機能(図示せず)を保持しており、INT信号34に応じて割込み制御部28にアクセスした結果認識した割込み要因により、そのタイマを再起動する。そして、各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間に達してもそれに対応したINT信号34が現れない場合には、当該モジュールに異常が発生したと認識する。その場合、CPU22は、異常が発生した画像処理モジュール及びその異常の影響を受けると想定されるモジュールに対して、制御バスIF26から制御専用バス40を介してモジュールの初期化及び再起動の命令を発行する。それ以降の初期化の動作及び異常検出時間の設定に関しては、第1の実施形態とほぼ同じであるので、ここでは説明を省略する。
【0059】
また、割込み制御部28は、制御信号32の状態も制御信号31の状態と同様に検出する。制御信号32の立下りを検出した場合(画像入力データのメモリ1への転送が終了した場合)には、INT信号34を"L"にドライブしてCPU22に対して割り込みを通知する。割り込みを通知されたCPU22は、第2バス20を介して割込み制御部にアクセスし(図5中点線上向きの矢印にて示す)、割り込みの発生した原因が画像入力部12のデータ転送終了であったことを認識する。CPU22によってアクセスされた割込み制御部28は、INT信号34のレベルを"H"にドライブして、割込み状態を解除する。
【0060】
圧縮処理の終了とデータ転送の終了処理の双方を認識し、CPU22は、メモリ1へのアクセスを行っても差し支えない状態(画像処理中ではない状態)であると判断する。すると、CPU22は、DMAコントローラ23に対して、第2バス20を介して転送すべき圧縮済画像データ画像サイズを通知する。さらに、CPU22は、DMAコントローラ23に対して、当該データのメモリ1からメモリ2への転送開始を指示する。CPU22からの指示を受け取ったDMAコントローラ23は第2バス20を介して第1メモリ制御部11にアクセスし、Frame0'の圧縮済み画像データをメモリ1から読み出してメモリ2へ転送する動作を時刻t1に開始する。同様に時刻t3+Δtにおいては、Frame1のデータの転送を開始する。
【0061】
DMAコントローラ23は圧縮済み画像データの転送が終了すると、転送終了通知を第2バス20経由でCPU22に対して通知する。CPU22は転送終了通知を受け取ると、次の転送に備えて、予め転送元先頭アドレス、転送先先頭アドレスなどの情報をDMAコントローラ23に対して設定し(図中点線矢印)、待機する。
【0062】
メモリ2に転送された圧縮済み画像データは、CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。これらのメモリ2上のデータへのアクセスは第2バス20経由で行われるため、第1バス10の動作には関係なく実行される。そのため、第1バス10に接続された画像処理モジュールにおける処理は、第2バス20上の各モジュールの動作の影響を受けずに実行することが可能になる。
【0063】
なお、本実施形態においては割込み制御部28からCPU22へINT信号で画像処理モジュールの状態を通知する例を示したが、メモリ間転送を実現する方式はこれに限られない。例えば、割込み制御部28から直接DMAコントローラ23に対して別の制御信号を入力するようにして、メモリ間転送を実現することも可能である。その場合、予めCPU22が転送先アドレス等を設定しておき、メモリ間転送の開始タイミングを制御信号31及び32の状態から割込み制御部が生成して、前記別の制御信号としてDMAコントローラ23に対してドライブすれば実現できる。
【0064】
以上のように、第2実施形態に係る構成は、一定時間以内の処理を要求される画像処理系と、ランダム処理が発生し得るデータ処理系を分離している。そして、ランダム処理が発生し得るデータ処理系は、画像処理系からの指示に応じて所定の処理を行う。このため、ランダム処理が発生し得るデータ処理系は、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを容易に行うことができる。従って、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことが容易になる。
【0065】
特に、本実施形態では、CPU22へINT信号34により割込信号を出力する割込み制御部28を設けたことにより、画像処理コントローラ27は、各画像処理モジュール(12,13,14,15)の動作制御に専念することができる。
【0066】
また、画像処理モジュールへの制御のバス(制御専用バス40)を、第1バス10、第2バス20とは別に設けることにより、画像処理モジュールのメモリへのアクセスを阻害することなく画像処理モジュールの制御が可能になる。このため、より一層、画像処理のリアルタイム性を保つことが容易になる。
【0067】
更に、画像処理に主に用いる第1のメモリ1とその他のシステム用に用いる第2のメモリ2とを分離したことにより、各処理部に最適な速度及び容量のメモリを用いることが可能である。また、従来のシステムに比べて、メモリ部での消費電力の削減が図ることが可能になる。
【0068】
更に、CPU22で各画像処理モジュールの処理の特性に応じた時間間隔でINT信号線の状態を監視する。これにより、静電気等のノイズや他の原因による画像処理モジュールの誤動作に対しても速やかに対応し、映像を処理できなくなる期間を短くすることが可能になる。
【0069】
更に、画像処理に主に用いる第1のメモリ1及び第1バス10とその他のシステム用に用いる第2のメモリ2及び第2バス20とを分離したことにより、画像処理モジュールにのみ選択的に初期化等の処理を施すことができる。これにより、画像処理部の誤動作の発生時にOSも含めたシステム全体を初期化することなく、必要な処理部のみを選択的に初期化することが可能になる。
【0070】
<<第3実施形態>>
第3実施形態においては、画像処理コントローラ27が第1バス10に接続された各モジュールの処理状態を示す制御信号31、32、35、36の状態を元にして、CPU22に対してメモリ1へのアクセス許可を発行する構成を説明する。第1実施形態との共通部分が多いので、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。なお、制御信号36を使用する制御の詳細は第4実施形態で説明する。
【0071】
(画像処理装置の構成)
図6は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態の構成とほぼ同様であるが、画像処理コントローラ27に対して解像度変換部15から制御信号35が接続され、画像出力部13から制御信号36が接続されている。
【0072】
(動作概要)
第3実施形態における大まかな処理のフローを図7に示す。第1実施形態における図2のタイミング図とほぼ同じであるが、解像度変換された画像データを扱う場合のメモリ間転送の発生タイミングが、第1実施形態と異なっている。第1実施形態の図2では、メモリ間転送は必ず画像入力データの転送が発生しないタイミングで開始されていた。これに対し、図7においては、解像度変換されて生成された縮小画像の圧縮(Frame0'及びFrame1')が終了した直後(t01及びt45)に、圧縮されたデータに関してメモリ間転送が行われている。
【0073】
(モジュール間の信号伝達)
図8は、図7を参照して説明した上記のメモリ間転送のタイミングに関して、詳細を示す図である。図8において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図8では、転送期間を"H"レベルで示している。従って、図8の例ではt1〜t2及びt3〜t4の期間が非転送期間である。一方、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを"H"レベルで示している。
【0074】
また、制御信号35は解像度変換部15が解像度変換処理中であるかないかを示す信号である。ここでは、解像度変換処理中であることを"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同じ時刻t01において、制御信号35は"L"レベルを示しており、解像度変換部15での処理が実行されていないことを示している。また、制御信号35は、時刻t2+Δt2からt3+Δt2の期間に解像度変換部15の処理が実行されていることを、その信号線の状態を"H"レベルにすることによって示している。
【0075】
図6に示すように、制御信号31、32及び35は画像処理コントローラ27に接続されている。画像処理コントローラ27は、まず、制御信号31の状態をみて、メモリ1からメモリ2へ転送すべき圧縮済画像データが既にメモリ1上に準備できているかどうかを判定する。制御信号31の立下りで画像圧縮処理が終了したことを認識すると(時刻t01又はt3+Δt1)、画像処理コントローラ27は、制御専用バス40を介して画像圧縮部14へアクセスする。そして、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズを取得する。
【0076】
次いで、画像処理コントローラ27は、制御信号32及び35の状態から、第1バス10に接続される各画像処理モジュールの処理状態がどのようになっているかを判定する。そして、例えば制御信号32が"L"になっていた場合(画像入力データのメモリ1への転送が行われていない場合)には、制御信号33を"L"にドライブして、CPU22に対してメモリ1へのアクセス許可を通知する。さらに、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する(時刻t3+Δt1)。
【0077】
また、制御信号32が"H"になっていた場合(画像入力データのメモリ1への転送が行われている場合)においては、他の制御信号の状態から第1バス10でのデータの転送負荷を判定してメモリ1へのアクセス許可の可否を判定する。例えば、時刻t01においては、制御信号35が"L"にドライブされているので、解像度変換部15による解像度変換処理が行われていない。この場合、第1バス10上でのデータの転送負荷は解像度変換処理が行われていない分だけ小さくなっているので、画像処理コントローラ27は圧縮済みデータの転送が行われても差し支えないと判定する。そして、CPU22に対してメモリ1へのアクセス許可を通知すると共に、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する。(時刻t01)。この後の動作は第1実施形態と同様であるので説明を省略する。
【0078】
なお、本実施形態においては画像処理コントローラ27が各画像処理モジュールからの制御信号の状態に応じてCPU22へアクセス許可を通知する例を示したが、転送許可を発行する基準は制御信号線の状態に基づくもののみに限られない。例えば、各画像処理モジュールに対して特定の処理を指示するために画像処理コントローラ27が設定を行ったパラメータの値(例えば画像サイズや処理レート等)と、その処理状態を示す制御信号線の状態を組み合わせてアクセス許可の可否を判定してもよい。
【0079】
以上のように第3実施形態に係る構成では、画像処理コントローラ27は、画像入力部12、画像圧縮部14だけでなく、他の画像処理モジュール(13,15)からも制御信号を受け取って、より高度な動作制御を行う。このため、本実施形態に係る構成によれば、メモリ1へのアクセス許可をより柔軟に発行ができるようになる。従って、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを別の処理系から行うことがさらに容易になる。
【0080】
<<第4実施形態>>
第4実施形態においては、メモリ2とメモリ1との間のデータ転送が、メモリ1からメモリ2への転送だけでなく、メモリ2からメモリ1へのデータ転送も存在する場合の例について説明する。第1実施形態との共通部分が多いので、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。
【0081】
(画像処理装置の構成)
図9は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態とほぼ同様であるが、画像処理コントローラ27に対して解像度変換部15から制御信号35が接続され、画像出力部13から制御信号36が接続されている。また画像出力部13には表示部202が映像出力信号線203を介して接続されている。また、図1において画像圧縮部14として示されていた画像処理モジュールの代わりに、画像圧縮伸長部16が第1バス10に接続されている。
【0082】
(動作概要)
第4実施形態における大まかな処理のフローを図10に示す。第1実施形態における図2のタイミング図と、入力画像データの圧縮処理に関しては同様である。ただし、画像出力のための画像伸長処理が画像圧縮伸長部16で行われ、そのための伸長用データのメモリ間転送及び伸長データの出力が行われている点が図2と異なっている。
【0083】
図10において、Frame12A,Frame13A,ODD11A,ODD12Aなどのように、データを示す番号の後ろに“A”の文字が付されたものが映像出力用のデータ処理を示している。例えば、時刻t0で開始されたFrame12Aの画像データの伸長処理は時刻ta1で終了する。その後しばらくして画像出力のデータが転送されていないタイミングta2になると画像処理コントローラ27が指示を出して、メモリ2からメモリ1へ次のFrame13A用の伸長用データの転送が実行される。
【0084】
メモリ1に転送されたFrame13A用の伸長用データは、次の画像の伸長開始タイミングのt4が到来すると、画像圧縮伸長部16に対して入力され、伸長処理が施される。時刻t4からta6にかけて伸長処理が施されたデータは再びメモリ1に保存され、次の映像出力タイミングの開始時刻であるta10まで待機した後、画像出力部13から映像出力信号線203を通して表示部202に対して出力される。
【0085】
一方、時刻ta1で伸長処理が終了していたFrame12Aの画像データは、時刻ta5がくるまでメモリ1上において保存される。そして、画像出力部13から、時刻ta5からta7にかけてFrame12AのODDフィールドデータのODD12Aを出力し、時刻ta8からta9にかけてそのEVENフィールドデータのEVEN12Aを出力する。
【0086】
(モジュール間の信号伝達)
図11は、図10を参照して説明したメモリ間転送のタイミングに関して、さらに詳細な信号伝達を示す図である。図11において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図11では、転送期間を"H"レベルで示している。従って、図11の例ではt1〜t2及びt3〜t4の期間が非転送期間である。一方、制御信号31は画像圧縮伸長部16が圧縮もしくは伸長処理中であるかないかを示す信号である。ここでは、処理中であることを"H"レベルで示している。また、制御信号36は画像出力部13から出力される画像データの転送期間中であるかないかを示す信号である。図11では、転送期間中であることを"H"レベルで示している。この場合、ta2〜ta3、ta4〜ta5、及びta7〜ta8の期間が非転送期間である。
【0087】
図11において、ta1の制御信号31の立下りは、Frame12Aの画像データの伸長が終了して、メモリ1上への伸長済画像データの転送が終了したことを示している。同じ時刻ta1において、制御信号32及び36は"H"レベルを示しており、画像入力部12、画像出力部13共にデータが転送中であることを示している。
【0088】
図9に示すように、制御信号31、32及び36は画像処理コントローラ27に接続されている。画像処理コントローラ27は、制御信号31の状態をみて、画像圧縮伸長部16が処理中であるかどうかを判定する。即ち、画像処理コントローラ27は、制御信号31の立下りで、直前の画像処理が画像伸長処理であった場合(時刻ta1又はta6)、画像伸長処理が終了したことを認識する。
【0089】
画像伸長処理の終了を認識すると、画像処理コントローラ27は、制御信号32及び36の状態から、第1バス10に接続される各画像処理モジュールの処理状態がどのようになっているかを判定する。そして、例えば時刻ta2になって制御信号36が"L"に変化した(画像出力データのメモリ1から画像出力部13への転送が行われていない)ことを検出した場合には、制御信号33を"L"にドライブする。これにより、CPU22に対して次の画像伸長処理に用いるデータのメモリ2からメモリ1への転送許可を通知する。
【0090】
転送許可通知を受けたCPU22は、DMAC23に対して、次の画像伸長処理に用いるデータ(ta2ではFrame13A、ta6ではFrame14A)のメモリ2からメモリ1への転送を指示する。転送指示を受けたDMAC23は、第2バス20を用いてデータのDMA転送をメモリ2からメモリ1へ行う。DMA転送が終了すると、DMAC23は転送終了通知をCPU22に対して通知する。転送終了通知を検出したCPU22は、ネットワーク制御部24からもたらされるパケット受信情報などを元に、その次のタイミングで伸長するべきデータのアドレス等を判定する。そして、必要に応じて予めDMAC23のレジスタに対して次の転送に備えた準備のための各種設定を行う。
【0091】
一方、制御信号31の立下りで直前の画像処理が画像圧縮処理であった場合(時刻t3+Δt1)、画像処理コントローラ27は、画像圧縮処理が終了したことを認識する。そして、画像処理コントローラ27は、制御信号32及び36の状態から、第1バス10に接続される各画像処理モジュールの処理状態を判定する。
【0092】
時刻t3+Δt1においては既に制御信号32が"L"になっているので画像出力データのメモリ1から画像出力部13への転送が行われていないことがわかる。このような場合には、制御信号33を"L"にドライブして、CPU22に対して圧縮済みデータ(Frame1)のメモリ1からメモリ2への転送許可を通知する。この場合の動作に関しては、第1実施形態と同様であるので、ここでは説明を省略する。
【0093】
なお、本実施形態においては画像処理コントローラ27が各画像処理モジュールからの制御信号の状態に応じてCPU22へアクセス許可を通知する例を示したが、これに限られない。即ち、画像処理コントローラ27による転送許可を発行する判定基準は、制御信号線の状態のみによって規定されるものではない。例えば、各画像処理モジュールに対して特定の処理を指示するために画像処理コントローラ27が設定を行ったパラメータの値(例えば画像サイズや処理レート等)と、その処理状態を示す制御信号線の状態を組み合わせてアクセス許可の可否を判定してもよい。
【0094】
以上のように第4実施形態では、画像処理モジュール(12,13,14,15)による画像処理に伴うメモリアクセスが他の期間に比べて少ないと想定される期間に、画像データを第2のメモリ2から第1のメモリへ転送させる。このため、画像処理系の処理タイミングを乱さずに、画像処理系のメモリへのデータへの読出し及び書込みアクセスを別の処理系から行うことが実行できるようになる。
【0095】
本発明によれば、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することができる。
【0096】
また、本発明によれば、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を必要なモジュールに対してのみ行うことを可能にする技術も提供することができる。
【図面の簡単な説明】
【0097】
【図1】画像処理装置の構成を示す図である。
【図2】画像処理装置の動作例を示すタイミング図である。
【図3】画像圧縮部と画像入力部でのそれぞれの処理終了が、DMAコントローラに対してどのようにして伝達されるかを示す図である。
【図4】画像処理装置の構成を示す図である。
【図5】画像圧縮部と画像入力部でのそれぞれの処理終了が、DMAコントローラに対して、割込み制御部28経由でどのようにして伝達されるかを示す図である。
【図6】画像処理装置の構成を示す図である。
【図7】画像処理装置の動作例を示すタイミング図である。
【図8】メモリ間転送のタイミングに関する詳細を示す図である。
【図9】画像処理装置の構成を示す図である。
【図10】画像処理装置の動作例を示すタイミング図である。
【図11】メモリ間転送のタイミングに関する、詳細な信号伝達を示す図である。
【技術分野】
【0001】
本発明は画像処理装置に関し、特に、所定の時間間隔で画像データを順次入力して処理を行う技術に関する。
【背景技術】
【0002】
ビデオ信号のリアルタイム処理と計算機への画像入力処理とを並行して実行することができる信号処理装置としては、画像信号に同期した画像信号のバスとそのコントローラとを信号処理装置内に設けた構成が知られている(例えば、特許文献1参照)。
【特許文献1】昭60−138634号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上記特許文献1に記載された構成では、画像データの転送とCPUのデータ処理は並列に実行可能であるが、CPUで画像処理するための元データを画像信号バスで所定のタイミングでメモリに書く必要がある。そのため、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことは困難であった。
【0004】
本発明は上記課題に鑑みなされたものであり、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することを目的とする。
【0005】
また、本発明は、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を行うことを可能にする技術も提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明による画像処理装置は以下の構成を有する。即ち、
画像入力手段から得られた画像データを処理するための画像処理手段と、
前記画像処理手段によって処理される画像データを格納する第1メモリと、
前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、
前記第1メモリから転送される画像データを格納する第2メモリと、
前記第1メモリおよび第2メモリに接続される第2バスと、
前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、
を有する。
【発明の効果】
【0007】
本発明によれば、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することができる。
【0008】
また、本発明によれば、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を行うことを可能にする技術も提供することができる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0010】
<<第1実施形態>>
(画像処理装置の構成)
図1は本実施形態に係る画像処理装置の構成を示す図である。図1において1及び2はメモリ、100は上記2つのメモリと接続されるIF(interface)部としてのメモリ制御部(11,21)を有する画像処理部である。また、200は撮像部であり、ここで撮影された映像信号が映像入力信号線201を介して画像処理部100の画像入力部12に入力されている。なお、画像処理装置は、半導体集積回路、デジタルカメラ、コンピュータ、カメラ付携帯電話等で実現することができる。
【0011】
画像処理部100において、10は第1バスであり、11はメモリ1(第1メモリ)と接続される第1メモリ制御部である。12は画像入力部であり、所定の時間間隔で画像データを順次入力する。13は画像出力部、14は画像圧縮部、15は解像度変換部である。第1バス10はこれらの各画像処理モジュール(12,13,14,15)と第1メモリ制御部11に接続されている。各画像処理モジュール(12,13,14,15)は、入力された画像データ、もしくは他の画像処理モジュールにおいて処理された画像データに対して画像処理を行う回路である。画像処理モジュールは一体的な回路であってもよいし、別個のものであってもよい。
【0012】
また、20は第2バスであり、21はメモリ2(第2メモリ)と接続される第2メモリ制御部である。22は画像処理部100全体の制御を司るCPU、23はDMAコントローラ(DMAC:Direct Memory Access Controller)である。CPU22、DMAコントローラは、メモリ1に格納された画像データを第2バス20を介してメモリ2へ転送させる制御を行う。
【0013】
24はネットワークインタフェースとしてのネットワーク制御部である。ネットワーク制御部24は、画像処理モジュール(12,13,14,15)において画像処理がなされた画像処理済みの画像データを外部装置へ送出する。また、ネットワーク制御部24は非同期処理手段の一例である。ネットワーク制御部24に代えて、又はそれとともに、画像データの入力とは非同期に、入力された画像データに対して所定の処理を行う他の機能要素を設けてもよい。
【0014】
25はフラッシュROM、26は制御バスIF、27は画像処理コントローラである。第2バス20はこれらの各処理モジュール(22,23,24,25,26,27)及び第1メモリ制御部11と第2メモリ制御部21に接続されている。
【0015】
制御バスIF26及び画像処理コントローラ27は、制御専用バス40(制御バス)に接続されている。画像処理コントローラ27は、この制御専用バス40を介して、各画像処理モジュール(12,13,14,15)に対してアクセスし、各画像処理モジュールに対するパラメータの設定及び値の読み出し、モジュールの起動、停止などを実行する。また、CPU22も制御バスIF26を経由して、制御専用バス40を介して各画像処理モジュール(12,13,14,15)に対してアクセスすることが可能である。
【0016】
画像入力部12からは、画像入力部12の処理状態を伝える制御信号32が画像処理コントローラ27に対して送出される。同様に、画像圧縮部14からは、画像圧縮部14の処理状態を伝える制御信号31が画像処理コントローラ27に対して送出されている。また、画像処理コントローラ27からは、制御信号33がCPU22に対して送出される。
【0017】
本実施形態においては、第1バス10は一定処理時間内での処理が要求される画像処理モジュール(12,13,14,15)が接続される画像バスである。そのため、本実施形態では、第1バス10に接続された第1メモリ制御部11に繋がるメモリ1の一例として、高速でメモリアクセス帯域が大きいDDR(Double Data Rate SDRAM)メモリを想定する。また、第1バス10は、データの転送レート向上のために、データ転送時のバースト転送限定利用、アドレスとデータの発行順序の分離制御、リードとライト用のバスの分離などの機能が実装されている。更に、メモリの処理レイテンシ隠蔽のための画像処理データの特性に応じたメモリ1のバンクの使い分けも実装されている。
【0018】
一方、第2バス20には、ネットワーク制御部24を含む処理の発生タイミングが一定でないモジュール等が接続されている。これらのモジュールでは、処理の発生タイミングは一定ではないものの、第1バスに比べると処理の実時間性への制約が小さい。このため、本実施形態では、一例として、それらのモジュールが主に使用するメモリ2としてSDR(Single Data Rate SDRAM)を想定する。SDRを利用したメモリ2は、DDRメモリを利用したメモリ1に比べて、消費電力が小さく、コストが小さい。第2バス20のデータ転送は、第1バス10のようにバースト転送のみに限定されず、第2バス20はメモリ2へのランダムアクセスが可能である。
【0019】
(動作概要)
本実施形態では、一例として、画像を撮像する撮像部200から画像入力部12を経由して30フレーム/秒の一定レートで入力されたビデオ画像を、メモリ1上に保存する。そして、そのデータを処理対象の画像データとして再度メモリ1から読み出して、画像処理を行う。本実施形態では、画像処理の一例として画像圧縮部14で圧縮する。この画像処理は、メモリ1上、即ち、第1メモリ上で実行される。なお、本実施形態では、ビデオ画像として、ODD(奇数)フィールドとEVEN(偶数)フィールドを交互に表示させるインタレース方式の画像を想定するが、データの方式はこれに限られない。
【0020】
圧縮済画像データは再度メモリ1上に保存される。圧縮済画像データは画像処理コントローラ27からの指示に基づいてメモリ1からメモリ2に対して第2バス20を介して転送される。CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。
【0021】
ここで、本実施形態では、各画像処理モジュール(12,13,14,15)による画像処理が行われていない期間に、画像処理済みの画像データはメモリ1からメモリ2へ転送される。そして、ネットワーク制御部24は、メモリ1ではなく、メモリ2から画像処理済みの画像データを読み出して、外部ネットワークへの転送等の処理を行う。このため、本実施形態に係る構成によれば、画像データの入力と同期して処理を行うことが必要な画像処理とは独立に、他の処理(本実施形態の例では外部ネットワークへの転送)を容易に行うことができる。
【0022】
この処理のフローに関して図2を参照して詳細に説明する。図2は本実施形態に係る画像処理装置の動作例を示すタイミング図である。
【0023】
図2において、VSYNCは、画像入力部12に入力された映像入力信号線201の信号から抽出される垂直同期信号を示している。基本的にこの信号が"H"(High)である区間においては、映像信号中に有効なデータが含まれている。図2の例では、画像入力部12において、時刻t0に、フレーム1のODDフィールド(ODD1)の画像データのメモリ1へのデータ転送が開始されている。
【0024】
このデータ転送は、画像データが画像入力部12に一定の量溜まる度に、画像入力部12から第1バスに対して間欠的に転送要求が出され、メモリ1に対して書き込まれて実行される。図2の例では、当該転送がt0からt1の期間にわたって発生し、時刻t1においてODD1の全データが入力されたために中断されている。その後、時刻t2から、フレーム1のEVENフィールド(EVEN1)の画像データのメモリ1へのデータ転送が再開されている。この転送は時刻t3においてEVEN1の全データが入力されたために中断し、次いで時刻t4にフレーム2のODDフィールド(ODD2)の画像転送が開始されている。
【0025】
画像入力部12ではこのような処理が繰り返されており、ビデオ信号入力が30フレーム/秒の一定レートで入力されているとすると、t0〜t4間の時間はおよそ33.3ミリ秒となる。ビデオ信号は連続して次々入力されるため、この転送処理は確実に33.3ミリ秒以内に終了させる必要がある。
【0026】
一方、画像圧縮部14、及び解像度変換部15は、ODD1とEVEN1の組み合わせにより生成されるFrame1の画像データを第1バス10のリード用バスを使って順次読み出す。そして、画像圧縮部14は画像圧縮処理を実行し、解像度変換部15は解像度変換処理を実行する。これらの処理は、画像入力部12からメモリ1に対してEVEN1のデータの転送が開始された時刻t2からわずかの時間Δt(時刻t1,t2の間隔に対して極めて短いため不図示)後、メモリ1上にあるデータが読み出し可能な状態になると開始される。処理を行った結果のデータは、第1バス10のライト用バスを使ってメモリ1上に書き込まれる。これらのデータの処理も画像入力データが転送されるのと同様に処理可能なデータがメモリ上に溜まるたびに間欠的に読み出されて実行され、t2からt3間での期間に対してΔtの遅延を持って実行される。
【0027】
更に、画像圧縮部14は先に時刻t2〜t3において解像度変換部15が解像度変換処理した画像データFrame1'に対して、時刻t4から圧縮処理を開始する。圧縮済画像データFrame1'はFrame1と同様に第1バス10を利用してメモリ1上に書き込まれる。
【0028】
メモリ1上に書き込まれたデータは、第2バス20上に存在するDMAコントローラ23によってメモリ1からメモリ2へ転送される。図2においては、メモリ間転送が、画像圧縮部14と画像入力部12でのそれぞれの処理終了を契機として開始している様子を矢印で示している。
【0029】
画像出力部13は、時刻t4から、画像入力部12に入力されたODD1、次いでEVEN1の画像データを1フレーム遅れで出力していく。以上の説明では、時刻t0に画像入力部12に入力が開始されたフレーム1の画像データに注目して処理の流れを説明したが、このような処理が画像処理部100では約33.3ms周期で繰り返して実行されることになる。
【0030】
(モジュール間の信号伝達)
次に、画像処理装置が上記のような動作を行う場合の、モジュール間における信号伝達について図3を参照して説明する。図3は、図2を参照して説明した、画像圧縮部14と画像入力部12でのそれぞれの処理終了が、DMAコントローラ23に対してどのようにして伝達されるかを示す図である。
【0031】
図3において、制御信号32は、画像入力部12において、画像データの転送期間中であるかないかを示す信号である。図3において、転送期間中であることを制御信号32の"H"レベルで示している。そして、t1〜t2及びt3〜t4の期間が非転送期間であることを制御信号32の"L"レベルで示している。この制御信号32の"L"レベルが許可信号の1つである。また、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを制御信号31の"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同様に、t3+Δtの制御信号31の立下りは、Frame1の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。すなわち、圧縮処理中ではない状態を制御信号31の"L"レベルで示している。
【0032】
図1に示すように、制御信号31及び32は画像処理コントローラ27に接続されている。画像処理コントローラ27は、まず、制御信号31の状態に基づいて、メモリ1からメモリ2へ転送すべき圧縮済画像データが既にメモリ1上に準備できているかどうかを判定する。制御信号31の立下りで画像圧縮処理が終了した(圧縮処理中ではない)ことを認識すると(時刻t01、又は、t3+Δt)、画像処理コントローラ27は、画像圧縮部14へアクセスする。そして、画像処理コントローラ27は、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズを取得する。ここで、画像圧縮部14へのアクセスは制御専用バス40を介して行われる。
【0033】
なお、ここで、画像処理コントローラ27は、制御信号31及び32を用いて、画像入力部12及び画像圧縮部14の動作状態を監視している。例えば、画像入力部12からの制御信号線32は、本実施形態においては前述したように約33.3msごとにODDとEVENの2回のフィールドデータ転送により、2回Lの期間を発生することが期待される。
【0034】
また、制御信号線31は画像圧縮部14における圧縮処理に要する時間毎にLになることが期待される。画像処理コントローラ27は、内部にタイマ機能(図示せず)を保持しており、制御信号線毎に極性が反転するタイミングを監視している。そして、各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間に達しても当該制御信号線に変化が現れない場合には、当該モジュールに異常が発生したと認識する。その場合、画像処理コントローラ27は、異常が発生した画像処理モジュール及びその異常の影響を受けると想定されるモジュールに対して、制御専用バス40を介してモジュールの初期化及び再起動の命令を発行する。
【0035】
同時に、画像処理コントローラ27は、画像処理モジュールの初期化を実施したことをCPU22に対して第2バスを介して通知をする。当該通知を受けたCPU22は、画像処理が復旧するまでの間、必要に応じて既にメモリ2に転送されている過去の圧縮データを利用して画像送信処理を行うなどの処理を行う。
【0036】
なお、ここで各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間とは、例えば画像圧縮部14の場合およそ、次の式で算出されるT(timeout)で近似することができる。
T(timeout)=2×MAX(A+B×C, D)
但し、A,B,C,Dは以下のとおりである。
A:圧縮方式毎に定まる画像データの処理時間(圧縮処理部14内のソフトウェア処理ルーチンを切り替えるためにプログラムを圧縮処理部14にロードする時間、あるいは画像データのヘッダを生成する作業に要する時間等、画像サイズに依存しない時間)。
B:圧縮方式ごとに定まる単位画像サイズあたりの画像データの処理時間。
C:処理対象の画像データの1フレームの画像サイズ。
D:画像処理部への当該画像サイズのデータを供給するために要する時間。
【0037】
図2において、Frame1の処理時間はt2〜t3であるが、これは圧縮処理部14への圧縮用データの供給が画像入力部12からのデータ転送時間によって律速されるためである。この場合は上記式のDの項が意味を持つ。一方、Frame1’の処理時間(t4〜t5)に関しては、既に圧縮に用いるデータがメモリ1上に準備されているため、データ転送時間(Dの項)は律速にはならず、A+B×Cの項が意味を持つ。最終的に異常と判定されるまでの期間は上記の処理時間の2倍とここでは設定している。これは、想定した処理の2倍以上の時間を要しているようでは、リアルタイム性を維持しながら処理を行う本モジュールの特性を維持し得ないからである。
【0038】
次いで、圧縮処理中ではない状態において、画像処理コントローラ27は、制御信号32の状態に基づいて、画像処理の上で最優先すべき画像入力データのメモリ1への転送処理が行われているかどうかを判定する。制御信号32が"L"(Low)になっていた場合(画像入力データのメモリ1への転送が行われていない場合)には、制御信号33を"L"にドライブして、CPU22に対してメモリ1へのアクセス許可を通知する。さらに、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する。これらの通知は、画像処理中ではないことを示す信号であり、CPU22に対する画像データの転送を指示する信号に相当する。
【0039】
メモリ1へのアクセス許可を制御信号33を介して通知されたCPU22は、DMAコントローラ23に対して、第2バス20を介して転送すべき圧縮済画像データ画像サイズを通知する。さらに、CPU22は、当該データのメモリ1からメモリ2への転送開始をDMAコントローラ23に対し指示する。CPU22からの指示を受け取ったDMAコントローラ23は第2バス20を介して第1メモリ制御部11にアクセスし、Frame0'の圧縮済み画像データをメモリ1から読み出してメモリ2への転送を時刻t1に開始する。同様に時刻t3+Δtにおいては、Frame1のデータの転送を開始する。
【0040】
なお、ここでCPU22は、画像処理コントローラ27が制御信号31及び32を監視していたのと同様に、制御信号33を用いて、画像処理コントローラ27の動作状態を監視している。制御信号線33は画像転送要求を発生するため、定期的にLになることが期待される。CPU22は、内部にタイマ機能(図示せず)を保持しており、制御信号線33の極性が反転するタイミングを監視している。そして、画像処理コントローラ27に対して要求している処理内容に応じて定まる一定の期間に達しても制御信号線33に変化が現れない場合には、画像処理コントローラ27に対する問い合わせを第2バス経由で行う。画像処理コントローラが応答を返さない場合、もしくは異常の発生が返された場合には、CPU22は画像処理コントローラ27の初期化及び再起動を行う。
【0041】
なお、画像処理コントローラ27に対して要求している処理内容に応じて定まる一定の期間とは、例えばネットワークを介して外部の装置から要求されている画像のフレームレートがEフレーム/秒であった場合、次の式で近似することができる。
T(timeout)=F×(1/E)
但し、F:2以上のシステム要求によって定まる値。
【0042】
これは、想定したフレームレートの処理間隔の最大F倍までの処理遅延を許すというものであり、画像処理バッファの容量、ネットワーク等の伝送遅延等を考慮して決められる値である。
【0043】
もちろん、この値の決め方は一例であり、異常検出までの待ち時間の決め方は、必要に応じて変更することが可能である。
【0044】
DMAコントローラ23は圧縮済み画像データの転送が終了すると、転送終了通知を第2バス20経由でCPU22に対して通知する。CPU22は転送終了通知を受け取ると、次の転送に備えて、予め転送元先頭アドレス、転送先先頭アドレスなどの情報をDMAコントローラ23に対して設定し(図中点線矢印)、待機する。
【0045】
メモリ2に転送された圧縮済み画像データは、CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。これらのメモリ2上のデータへのアクセスは第2バス20経由で行われるため、第1バス10の動作には関係なく実行される。そのため、第1バス10に接続された画像処理モジュールにおける処理は、第2バス20上の各モジュールの動作の影響を受けずに実行することが可能になる。
【0046】
なお、本実施形態においては画像処理コントローラ27からCPU22へアクセス許可を通知する例を示したが、メモリ間転送を制御する方式はこれに限られない。例えば、画像処理コントローラ27から第2バス20を経由して直接DMAコントローラ23を制御してメモリ間転送を実現することも可能である。
【0047】
以上のように、第1実施形態に係る構成は、一定時間以内の処理を要求される画像処理系と、ランダム処理が発生し得るデータ処理系を分離している。そして、ランダム処理が発生し得るデータ処理系は、画像処理系からの指示に応じて所定の処理を行う。このため、ランダム処理が発生し得るデータ処理系は、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを容易に行うことができる。従って、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことが容易になる。
【0048】
更に、画像処理モジュールへの制御のバス(制御専用バス40)を、第1バス10、第2バス20とは別に設けることにより、画像処理モジュールのメモリへのアクセスを阻害することなく画像処理モジュールの制御が可能になる。このため、より一層、画像処理のリアルタイム性を保つことが容易になる。
【0049】
更に、画像処理に主に用いる第1のメモリ1とその他のシステム用に用いる第2のメモリ2とを分離したことにより、各処理部に最適な速度及び容量のメモリを用いることが可能である。また、従来のシステムに比べて、メモリ部での消費電力の削減が図ることが可能になる。
【0050】
更に、画像処理コントローラ27及びCPU22で各モジュールの処理の特性に応じた時間間隔で信号線の状態を監視する。これにより、静電気等のノイズや他の原因による処理モジュールの誤動作に対しても速やかに対応し、映像を処理できなくなる期間を短くすることが可能になる。
【0051】
更に、画像処理に主に用いる第1のメモリ1及び第1バス10とその他のシステム用に用いる第2のメモリ2及び第2バス20とを分離したことにより、画像処理関係のモジュールにのみ選択的に初期化等の処理を施すことができる。これにより、画像処理部の誤動作の発生時にOSも含めたシステム全体を初期化することなく、必要な処理部のみを選択的に初期化することが可能になる。
【0052】
<<第2実施形態>>
第2実施形態においては、第2バス20に接続された割込制御手段としての割込み制御部28を介してCPU22が直接第1のメモリ1へのアクセス許可を判定し、DMAコントローラ23を制御する構成例を示す。本実施形態の構成は第1実施形態との共通部分が多いため、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。
【0053】
(画像処理装置の構成)
図4は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態の図1とほぼ同等であるが、第2バス20に対して割込み制御部28が接続されている。そして、画像圧縮部14からの制御信号31及び画像入力部12からの制御信号32がこの割込み制御部28に接続されている。また、INT信号34が割込み制御部28からCPU22に対して接続されている。
【0054】
ここで、INT信号34は、割込み制御部28に割り込みが発生したことを示す信号線である。INT信号34は、割り込みが発生すると"L"(Low)にドライブされ、割込み要因がCPU22によって割込み制御部28から読み取られると"H"(High)にクリアされる。第2実施形態における大まかな処理のフローは、第1実施形態と同等であるので、ここでは説明を省略する。
【0055】
(モジュール間の信号伝達)
次に、画像処理装置を構成する各モジュール間における信号伝達について図5を参照して説明する。図5は、図2において示した画像圧縮部14と画像入力部12でのそれぞれの処理終了がDMAコントローラ23に対して割込み制御部28経由でどのようにして伝達されるかを示す図である。
【0056】
図5において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図5では、転送期間中であることを"H"レベルで示している。この場合、t1〜t2及びt3〜t4の期間は非転送期間である。一方、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同様に、t3+Δtの制御信号31の立下りは、Frame1の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。
【0057】
図4に示すように、制御信号31及び32は割込み制御部28に接続されている。割込み制御部28は、制御信号31の状態を検出する。制御信号31の立下りで画像圧縮処理が終了したことを検出すると(時刻t01又はt3+Δt)、割込み制御部28は、INT信号34を"L"にドライブして、CPU22に対して割り込みを通知する。割り込みを通知されたCPU22は、第2バス20を介して割込み制御部にアクセスし(図5中一点鎖線の矢印にて示す)、割り込みの発生した原因が画像圧縮部14の処理終了であったことを認識する。CPU22によってアクセスされた割込み制御部28は、INT信号34のレベルを"H"にドライブして、割込み状態を解除する。画像圧縮部14の圧縮処理終了を認識したCPU22は、制御バスIF26から制御専用バス40を介して画像圧縮部14へアクセスし、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズの情報を取得する。
【0058】
なお、ここで、CPU22はINT信号34を用いて、画像入力部12及び画像圧縮部14の動作状態を監視している。CPU22は内部に各処理部に対応したタイマ機能(図示せず)を保持しており、INT信号34に応じて割込み制御部28にアクセスした結果認識した割込み要因により、そのタイマを再起動する。そして、各画像処理モジュールの特性、及び処理内容に応じて定まる一定の期間に達してもそれに対応したINT信号34が現れない場合には、当該モジュールに異常が発生したと認識する。その場合、CPU22は、異常が発生した画像処理モジュール及びその異常の影響を受けると想定されるモジュールに対して、制御バスIF26から制御専用バス40を介してモジュールの初期化及び再起動の命令を発行する。それ以降の初期化の動作及び異常検出時間の設定に関しては、第1の実施形態とほぼ同じであるので、ここでは説明を省略する。
【0059】
また、割込み制御部28は、制御信号32の状態も制御信号31の状態と同様に検出する。制御信号32の立下りを検出した場合(画像入力データのメモリ1への転送が終了した場合)には、INT信号34を"L"にドライブしてCPU22に対して割り込みを通知する。割り込みを通知されたCPU22は、第2バス20を介して割込み制御部にアクセスし(図5中点線上向きの矢印にて示す)、割り込みの発生した原因が画像入力部12のデータ転送終了であったことを認識する。CPU22によってアクセスされた割込み制御部28は、INT信号34のレベルを"H"にドライブして、割込み状態を解除する。
【0060】
圧縮処理の終了とデータ転送の終了処理の双方を認識し、CPU22は、メモリ1へのアクセスを行っても差し支えない状態(画像処理中ではない状態)であると判断する。すると、CPU22は、DMAコントローラ23に対して、第2バス20を介して転送すべき圧縮済画像データ画像サイズを通知する。さらに、CPU22は、DMAコントローラ23に対して、当該データのメモリ1からメモリ2への転送開始を指示する。CPU22からの指示を受け取ったDMAコントローラ23は第2バス20を介して第1メモリ制御部11にアクセスし、Frame0'の圧縮済み画像データをメモリ1から読み出してメモリ2へ転送する動作を時刻t1に開始する。同様に時刻t3+Δtにおいては、Frame1のデータの転送を開始する。
【0061】
DMAコントローラ23は圧縮済み画像データの転送が終了すると、転送終了通知を第2バス20経由でCPU22に対して通知する。CPU22は転送終了通知を受け取ると、次の転送に備えて、予め転送元先頭アドレス、転送先先頭アドレスなどの情報をDMAコントローラ23に対して設定し(図中点線矢印)、待機する。
【0062】
メモリ2に転送された圧縮済み画像データは、CPU22が当該圧縮データに対してヘッダをつけるなどの加工を行った後、ネットワーク制御部24から外部ネットワークへ転送される。これらのメモリ2上のデータへのアクセスは第2バス20経由で行われるため、第1バス10の動作には関係なく実行される。そのため、第1バス10に接続された画像処理モジュールにおける処理は、第2バス20上の各モジュールの動作の影響を受けずに実行することが可能になる。
【0063】
なお、本実施形態においては割込み制御部28からCPU22へINT信号で画像処理モジュールの状態を通知する例を示したが、メモリ間転送を実現する方式はこれに限られない。例えば、割込み制御部28から直接DMAコントローラ23に対して別の制御信号を入力するようにして、メモリ間転送を実現することも可能である。その場合、予めCPU22が転送先アドレス等を設定しておき、メモリ間転送の開始タイミングを制御信号31及び32の状態から割込み制御部が生成して、前記別の制御信号としてDMAコントローラ23に対してドライブすれば実現できる。
【0064】
以上のように、第2実施形態に係る構成は、一定時間以内の処理を要求される画像処理系と、ランダム処理が発生し得るデータ処理系を分離している。そして、ランダム処理が発生し得るデータ処理系は、画像処理系からの指示に応じて所定の処理を行う。このため、ランダム処理が発生し得るデータ処理系は、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを容易に行うことができる。従って、ネットワーク処理のような外部起因による発生タイミングが一定でない処理を、画像処理のリアルタイム性を維持しながら当該システムで同時に行うことが容易になる。
【0065】
特に、本実施形態では、CPU22へINT信号34により割込信号を出力する割込み制御部28を設けたことにより、画像処理コントローラ27は、各画像処理モジュール(12,13,14,15)の動作制御に専念することができる。
【0066】
また、画像処理モジュールへの制御のバス(制御専用バス40)を、第1バス10、第2バス20とは別に設けることにより、画像処理モジュールのメモリへのアクセスを阻害することなく画像処理モジュールの制御が可能になる。このため、より一層、画像処理のリアルタイム性を保つことが容易になる。
【0067】
更に、画像処理に主に用いる第1のメモリ1とその他のシステム用に用いる第2のメモリ2とを分離したことにより、各処理部に最適な速度及び容量のメモリを用いることが可能である。また、従来のシステムに比べて、メモリ部での消費電力の削減が図ることが可能になる。
【0068】
更に、CPU22で各画像処理モジュールの処理の特性に応じた時間間隔でINT信号線の状態を監視する。これにより、静電気等のノイズや他の原因による画像処理モジュールの誤動作に対しても速やかに対応し、映像を処理できなくなる期間を短くすることが可能になる。
【0069】
更に、画像処理に主に用いる第1のメモリ1及び第1バス10とその他のシステム用に用いる第2のメモリ2及び第2バス20とを分離したことにより、画像処理モジュールにのみ選択的に初期化等の処理を施すことができる。これにより、画像処理部の誤動作の発生時にOSも含めたシステム全体を初期化することなく、必要な処理部のみを選択的に初期化することが可能になる。
【0070】
<<第3実施形態>>
第3実施形態においては、画像処理コントローラ27が第1バス10に接続された各モジュールの処理状態を示す制御信号31、32、35、36の状態を元にして、CPU22に対してメモリ1へのアクセス許可を発行する構成を説明する。第1実施形態との共通部分が多いので、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。なお、制御信号36を使用する制御の詳細は第4実施形態で説明する。
【0071】
(画像処理装置の構成)
図6は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態の構成とほぼ同様であるが、画像処理コントローラ27に対して解像度変換部15から制御信号35が接続され、画像出力部13から制御信号36が接続されている。
【0072】
(動作概要)
第3実施形態における大まかな処理のフローを図7に示す。第1実施形態における図2のタイミング図とほぼ同じであるが、解像度変換された画像データを扱う場合のメモリ間転送の発生タイミングが、第1実施形態と異なっている。第1実施形態の図2では、メモリ間転送は必ず画像入力データの転送が発生しないタイミングで開始されていた。これに対し、図7においては、解像度変換されて生成された縮小画像の圧縮(Frame0'及びFrame1')が終了した直後(t01及びt45)に、圧縮されたデータに関してメモリ間転送が行われている。
【0073】
(モジュール間の信号伝達)
図8は、図7を参照して説明した上記のメモリ間転送のタイミングに関して、詳細を示す図である。図8において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図8では、転送期間を"H"レベルで示している。従って、図8の例ではt1〜t2及びt3〜t4の期間が非転送期間である。一方、制御信号31は画像圧縮部14が圧縮処理中であるかないかを示す信号である。ここでは、圧縮処理中であることを"H"レベルで示している。
【0074】
また、制御信号35は解像度変換部15が解像度変換処理中であるかないかを示す信号である。ここでは、解像度変換処理中であることを"H"レベルで示している。この場合、t01の制御信号31の立下りは、Frame0'の画像データの圧縮が終了して、メモリ1上への圧縮済画像データの転送が終了したことを示している。同じ時刻t01において、制御信号35は"L"レベルを示しており、解像度変換部15での処理が実行されていないことを示している。また、制御信号35は、時刻t2+Δt2からt3+Δt2の期間に解像度変換部15の処理が実行されていることを、その信号線の状態を"H"レベルにすることによって示している。
【0075】
図6に示すように、制御信号31、32及び35は画像処理コントローラ27に接続されている。画像処理コントローラ27は、まず、制御信号31の状態をみて、メモリ1からメモリ2へ転送すべき圧縮済画像データが既にメモリ1上に準備できているかどうかを判定する。制御信号31の立下りで画像圧縮処理が終了したことを認識すると(時刻t01又はt3+Δt1)、画像処理コントローラ27は、制御専用バス40を介して画像圧縮部14へアクセスする。そして、メモリ1からメモリ2へ転送すべき圧縮済画像データの画像サイズを取得する。
【0076】
次いで、画像処理コントローラ27は、制御信号32及び35の状態から、第1バス10に接続される各画像処理モジュールの処理状態がどのようになっているかを判定する。そして、例えば制御信号32が"L"になっていた場合(画像入力データのメモリ1への転送が行われていない場合)には、制御信号33を"L"にドライブして、CPU22に対してメモリ1へのアクセス許可を通知する。さらに、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する(時刻t3+Δt1)。
【0077】
また、制御信号32が"H"になっていた場合(画像入力データのメモリ1への転送が行われている場合)においては、他の制御信号の状態から第1バス10でのデータの転送負荷を判定してメモリ1へのアクセス許可の可否を判定する。例えば、時刻t01においては、制御信号35が"L"にドライブされているので、解像度変換部15による解像度変換処理が行われていない。この場合、第1バス10上でのデータの転送負荷は解像度変換処理が行われていない分だけ小さくなっているので、画像処理コントローラ27は圧縮済みデータの転送が行われても差し支えないと判定する。そして、CPU22に対してメモリ1へのアクセス許可を通知すると共に、転送すべき画像サイズを第2バス20経由でCPU22に対して通知する。(時刻t01)。この後の動作は第1実施形態と同様であるので説明を省略する。
【0078】
なお、本実施形態においては画像処理コントローラ27が各画像処理モジュールからの制御信号の状態に応じてCPU22へアクセス許可を通知する例を示したが、転送許可を発行する基準は制御信号線の状態に基づくもののみに限られない。例えば、各画像処理モジュールに対して特定の処理を指示するために画像処理コントローラ27が設定を行ったパラメータの値(例えば画像サイズや処理レート等)と、その処理状態を示す制御信号線の状態を組み合わせてアクセス許可の可否を判定してもよい。
【0079】
以上のように第3実施形態に係る構成では、画像処理コントローラ27は、画像入力部12、画像圧縮部14だけでなく、他の画像処理モジュール(13,15)からも制御信号を受け取って、より高度な動作制御を行う。このため、本実施形態に係る構成によれば、メモリ1へのアクセス許可をより柔軟に発行ができるようになる。従って、画像処理系の処理タイミングを乱さずに、画像処理系側のデータへのアクセスを別の処理系から行うことがさらに容易になる。
【0080】
<<第4実施形態>>
第4実施形態においては、メモリ2とメモリ1との間のデータ転送が、メモリ1からメモリ2への転送だけでなく、メモリ2からメモリ1へのデータ転送も存在する場合の例について説明する。第1実施形態との共通部分が多いので、基本的にはその図面及び符号等を流用し、異なる部分についてのみ詳細に説明する。
【0081】
(画像処理装置の構成)
図9は本実施形態に係る画像処理装置の構成を示す図である。本実施形態の構成は第1実施形態とほぼ同様であるが、画像処理コントローラ27に対して解像度変換部15から制御信号35が接続され、画像出力部13から制御信号36が接続されている。また画像出力部13には表示部202が映像出力信号線203を介して接続されている。また、図1において画像圧縮部14として示されていた画像処理モジュールの代わりに、画像圧縮伸長部16が第1バス10に接続されている。
【0082】
(動作概要)
第4実施形態における大まかな処理のフローを図10に示す。第1実施形態における図2のタイミング図と、入力画像データの圧縮処理に関しては同様である。ただし、画像出力のための画像伸長処理が画像圧縮伸長部16で行われ、そのための伸長用データのメモリ間転送及び伸長データの出力が行われている点が図2と異なっている。
【0083】
図10において、Frame12A,Frame13A,ODD11A,ODD12Aなどのように、データを示す番号の後ろに“A”の文字が付されたものが映像出力用のデータ処理を示している。例えば、時刻t0で開始されたFrame12Aの画像データの伸長処理は時刻ta1で終了する。その後しばらくして画像出力のデータが転送されていないタイミングta2になると画像処理コントローラ27が指示を出して、メモリ2からメモリ1へ次のFrame13A用の伸長用データの転送が実行される。
【0084】
メモリ1に転送されたFrame13A用の伸長用データは、次の画像の伸長開始タイミングのt4が到来すると、画像圧縮伸長部16に対して入力され、伸長処理が施される。時刻t4からta6にかけて伸長処理が施されたデータは再びメモリ1に保存され、次の映像出力タイミングの開始時刻であるta10まで待機した後、画像出力部13から映像出力信号線203を通して表示部202に対して出力される。
【0085】
一方、時刻ta1で伸長処理が終了していたFrame12Aの画像データは、時刻ta5がくるまでメモリ1上において保存される。そして、画像出力部13から、時刻ta5からta7にかけてFrame12AのODDフィールドデータのODD12Aを出力し、時刻ta8からta9にかけてそのEVENフィールドデータのEVEN12Aを出力する。
【0086】
(モジュール間の信号伝達)
図11は、図10を参照して説明したメモリ間転送のタイミングに関して、さらに詳細な信号伝達を示す図である。図11において、制御信号32は、画像入力部12から出力される画像データの転送期間中であるかないかを示す信号である。図11では、転送期間を"H"レベルで示している。従って、図11の例ではt1〜t2及びt3〜t4の期間が非転送期間である。一方、制御信号31は画像圧縮伸長部16が圧縮もしくは伸長処理中であるかないかを示す信号である。ここでは、処理中であることを"H"レベルで示している。また、制御信号36は画像出力部13から出力される画像データの転送期間中であるかないかを示す信号である。図11では、転送期間中であることを"H"レベルで示している。この場合、ta2〜ta3、ta4〜ta5、及びta7〜ta8の期間が非転送期間である。
【0087】
図11において、ta1の制御信号31の立下りは、Frame12Aの画像データの伸長が終了して、メモリ1上への伸長済画像データの転送が終了したことを示している。同じ時刻ta1において、制御信号32及び36は"H"レベルを示しており、画像入力部12、画像出力部13共にデータが転送中であることを示している。
【0088】
図9に示すように、制御信号31、32及び36は画像処理コントローラ27に接続されている。画像処理コントローラ27は、制御信号31の状態をみて、画像圧縮伸長部16が処理中であるかどうかを判定する。即ち、画像処理コントローラ27は、制御信号31の立下りで、直前の画像処理が画像伸長処理であった場合(時刻ta1又はta6)、画像伸長処理が終了したことを認識する。
【0089】
画像伸長処理の終了を認識すると、画像処理コントローラ27は、制御信号32及び36の状態から、第1バス10に接続される各画像処理モジュールの処理状態がどのようになっているかを判定する。そして、例えば時刻ta2になって制御信号36が"L"に変化した(画像出力データのメモリ1から画像出力部13への転送が行われていない)ことを検出した場合には、制御信号33を"L"にドライブする。これにより、CPU22に対して次の画像伸長処理に用いるデータのメモリ2からメモリ1への転送許可を通知する。
【0090】
転送許可通知を受けたCPU22は、DMAC23に対して、次の画像伸長処理に用いるデータ(ta2ではFrame13A、ta6ではFrame14A)のメモリ2からメモリ1への転送を指示する。転送指示を受けたDMAC23は、第2バス20を用いてデータのDMA転送をメモリ2からメモリ1へ行う。DMA転送が終了すると、DMAC23は転送終了通知をCPU22に対して通知する。転送終了通知を検出したCPU22は、ネットワーク制御部24からもたらされるパケット受信情報などを元に、その次のタイミングで伸長するべきデータのアドレス等を判定する。そして、必要に応じて予めDMAC23のレジスタに対して次の転送に備えた準備のための各種設定を行う。
【0091】
一方、制御信号31の立下りで直前の画像処理が画像圧縮処理であった場合(時刻t3+Δt1)、画像処理コントローラ27は、画像圧縮処理が終了したことを認識する。そして、画像処理コントローラ27は、制御信号32及び36の状態から、第1バス10に接続される各画像処理モジュールの処理状態を判定する。
【0092】
時刻t3+Δt1においては既に制御信号32が"L"になっているので画像出力データのメモリ1から画像出力部13への転送が行われていないことがわかる。このような場合には、制御信号33を"L"にドライブして、CPU22に対して圧縮済みデータ(Frame1)のメモリ1からメモリ2への転送許可を通知する。この場合の動作に関しては、第1実施形態と同様であるので、ここでは説明を省略する。
【0093】
なお、本実施形態においては画像処理コントローラ27が各画像処理モジュールからの制御信号の状態に応じてCPU22へアクセス許可を通知する例を示したが、これに限られない。即ち、画像処理コントローラ27による転送許可を発行する判定基準は、制御信号線の状態のみによって規定されるものではない。例えば、各画像処理モジュールに対して特定の処理を指示するために画像処理コントローラ27が設定を行ったパラメータの値(例えば画像サイズや処理レート等)と、その処理状態を示す制御信号線の状態を組み合わせてアクセス許可の可否を判定してもよい。
【0094】
以上のように第4実施形態では、画像処理モジュール(12,13,14,15)による画像処理に伴うメモリアクセスが他の期間に比べて少ないと想定される期間に、画像データを第2のメモリ2から第1のメモリへ転送させる。このため、画像処理系の処理タイミングを乱さずに、画像処理系のメモリへのデータへの読出し及び書込みアクセスを別の処理系から行うことが実行できるようになる。
【0095】
本発明によれば、画像処理のリアルタイム性を維持しながら、ネットワーク処理のような発生タイミングが一定でない処理を同時に行うことを可能にする技術を提供することができる。
【0096】
また、本発明によれば、画像処理の周期性を利用して、処理モジュールに問題が発生したことを速やかに検出し、異常状態からの復旧を必要なモジュールに対してのみ行うことを可能にする技術も提供することができる。
【図面の簡単な説明】
【0097】
【図1】画像処理装置の構成を示す図である。
【図2】画像処理装置の動作例を示すタイミング図である。
【図3】画像圧縮部と画像入力部でのそれぞれの処理終了が、DMAコントローラに対してどのようにして伝達されるかを示す図である。
【図4】画像処理装置の構成を示す図である。
【図5】画像圧縮部と画像入力部でのそれぞれの処理終了が、DMAコントローラに対して、割込み制御部28経由でどのようにして伝達されるかを示す図である。
【図6】画像処理装置の構成を示す図である。
【図7】画像処理装置の動作例を示すタイミング図である。
【図8】メモリ間転送のタイミングに関する詳細を示す図である。
【図9】画像処理装置の構成を示す図である。
【図10】画像処理装置の動作例を示すタイミング図である。
【図11】メモリ間転送のタイミングに関する、詳細な信号伝達を示す図である。
【特許請求の範囲】
【請求項1】
画像入力手段から得られた画像データを処理するための画像処理手段と、
前記画像処理手段によって処理される画像データを格納する第1メモリと、
前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、
前記第1メモリから転送される画像データを格納する第2メモリと、
前記第1メモリおよび第2メモリに接続される第2バスと、
前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記画像処理手段の動作を制御する画像処理コントローラを更に有し、
前記画像処理手段は、前記画像処理手段の処理状態を示す制御信号を前記画像処理コントローラへ送出し、
前記画像処理コントローラは、
前記画像処理手段から受信した制御信号に基づいて画像処理の終了を検出し、該画像処理の終了を検出したことに応じて前記制御手段に前記画像処理中ではないことを示す信号を送出し、
前記画像処理手段の圧縮方式ごとに定まる処理時間と、該圧縮方式ごとに定まる単位画像サイズあたりの画像データの処理時間と、処理対象の画像データのサイズと、前記画像処理手段への画像サイズのデータを供給するために要する時間と、に基づいて算出される時間を超えた場合、前記画像処理手段の再起動を行う
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像処理手段と前記画像処理コントローラとの間の信号伝達を行う制御バスを更に有することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記制御手段へ割込信号を前記画像処理中ではないことを示す信号として出力する割込制御手段を更に有し、
前記画像処理手段は、前記画像処理手段の処理状態を示す制御信号を前記割込制御手段へ送出し、
前記割込制御手段は、前記画像処理手段から受信した制御信号に基づいて画像処理の終了を検出し、該画像処理の終了を検出したことに応じて、前記割込信号により前記制御手段に前記転送を指示する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記画像処理手段と前記割込制御手段との間の信号伝達を行う制御バスを更に有する
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記制御手段は、
前記第2バスに接続され、
CPUと、DMAコントローラとを有する
ことを特徴とする請求項3又は5に記載の画像処理装置。
【請求項7】
前記第2バスと前記制御バスとに接続され、前記CPUと前記画像処理手段との間の信号伝達を行う制御バスIF
を更に有することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記画像入力手段は撮像手段であることを特徴とする請求項1から7のいずれか1項に記載の画像処理装置。
【請求項9】
前記画像処理手段が行う画像処理には、入力した画像を転送する処理と、画像を圧縮する処理と、画像を伸長する処理と、画像の解像度を変換する処理と、の少なくともいずれかが含まれる
ことを特徴とする請求項1から8のいずれか1項に記載の画像処理装置。
【請求項10】
前記第2のメモリに格納された画像データを外部装置へ送出する手段を更に有する
ことを特徴とする請求項1から9のいずれか1項に記載の画像処理装置。
【請求項11】
前記制御手段は、
前記第2メモリへ転送される画像データの間隔を監視し、ネットワークを介して外部の装置から要求された画像データのフレームレートに従う時間に達したかどうか判定し、
該時間に達したと判定された場合であって、新たな画像データが転送されていない場合、前記画像処理コントローラに対して問い合せを行い、
前記画像処理コントローラから応答がない場合、前記画像処理コントローラの再起動を行う
ことを特徴とする請求項2に記載の画像処理装置。
【請求項1】
画像入力手段から得られた画像データを処理するための画像処理手段と、
前記画像処理手段によって処理される画像データを格納する第1メモリと、
前記画像処理手段と前記第1メモリとの間で前記画像データを転送する第1バスと、
前記第1メモリから転送される画像データを格納する第2メモリと、
前記第1メモリおよび第2メモリに接続される第2バスと、
前記画像処理手段からの画像処理中ではないことを示す信号に応じて、前記第2バスを介して前記第1メモリに格納された画像データを前記第2メモリに転送する制御を実行する制御手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記画像処理手段の動作を制御する画像処理コントローラを更に有し、
前記画像処理手段は、前記画像処理手段の処理状態を示す制御信号を前記画像処理コントローラへ送出し、
前記画像処理コントローラは、
前記画像処理手段から受信した制御信号に基づいて画像処理の終了を検出し、該画像処理の終了を検出したことに応じて前記制御手段に前記画像処理中ではないことを示す信号を送出し、
前記画像処理手段の圧縮方式ごとに定まる処理時間と、該圧縮方式ごとに定まる単位画像サイズあたりの画像データの処理時間と、処理対象の画像データのサイズと、前記画像処理手段への画像サイズのデータを供給するために要する時間と、に基づいて算出される時間を超えた場合、前記画像処理手段の再起動を行う
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像処理手段と前記画像処理コントローラとの間の信号伝達を行う制御バスを更に有することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記制御手段へ割込信号を前記画像処理中ではないことを示す信号として出力する割込制御手段を更に有し、
前記画像処理手段は、前記画像処理手段の処理状態を示す制御信号を前記割込制御手段へ送出し、
前記割込制御手段は、前記画像処理手段から受信した制御信号に基づいて画像処理の終了を検出し、該画像処理の終了を検出したことに応じて、前記割込信号により前記制御手段に前記転送を指示する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記画像処理手段と前記割込制御手段との間の信号伝達を行う制御バスを更に有する
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記制御手段は、
前記第2バスに接続され、
CPUと、DMAコントローラとを有する
ことを特徴とする請求項3又は5に記載の画像処理装置。
【請求項7】
前記第2バスと前記制御バスとに接続され、前記CPUと前記画像処理手段との間の信号伝達を行う制御バスIF
を更に有することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記画像入力手段は撮像手段であることを特徴とする請求項1から7のいずれか1項に記載の画像処理装置。
【請求項9】
前記画像処理手段が行う画像処理には、入力した画像を転送する処理と、画像を圧縮する処理と、画像を伸長する処理と、画像の解像度を変換する処理と、の少なくともいずれかが含まれる
ことを特徴とする請求項1から8のいずれか1項に記載の画像処理装置。
【請求項10】
前記第2のメモリに格納された画像データを外部装置へ送出する手段を更に有する
ことを特徴とする請求項1から9のいずれか1項に記載の画像処理装置。
【請求項11】
前記制御手段は、
前記第2メモリへ転送される画像データの間隔を監視し、ネットワークを介して外部の装置から要求された画像データのフレームレートに従う時間に達したかどうか判定し、
該時間に達したと判定された場合であって、新たな画像データが転送されていない場合、前記画像処理コントローラに対して問い合せを行い、
前記画像処理コントローラから応答がない場合、前記画像処理コントローラの再起動を行う
ことを特徴とする請求項2に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−140484(P2009−140484A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2008−283733(P2008−283733)
【出願日】平成20年11月4日(2008.11.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成20年11月4日(2008.11.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]