(57)【要約】【課題】送信される圧縮画像データのサイズを目標サイズに近づけることができる画像信号処理装置及びこれを備えた撮像装置を提供する。【解決手段】撮像装置は、画像信号から量子化テーブルの値を用いて圧縮画像データを生成する画像圧縮回路と、送信パケットを生成して格納領域に格納するマイクロプロセッサと、送信パケットを送信する送信制御部とを有し、マイクロプロセッサは、１フレームあたりのデータサイズを求め（Ｐ１６）、このデータサイズと目標値とを比較し（Ｐ１７）、１フレームあたりのデータサイズが目標値より大きいときは圧縮画像データのデータサイズを小さくする量子化テーブルの値を生成して量子化テーブルを更新し（Ｐ１８）、１フレームあたりのデータサイズが目標値より小さいときは圧縮画像データのデータサイズを大きくする量子化テーブルの値を生成して量子化テーブルを更新する（Ｐ１９）。【選択図】図９
2007150490.tif 000002
【特許請求の範囲】
【請求項１】
量子化テーブルを保持し、入力される画像信号を前記量子化テーブルの値を用いて画像圧縮して圧縮画像データを生成する画像圧縮手段と、
前記圧縮画像データの送信パケットを生成するパケット生成手段と、
前記送信パケットを送信する送信手段と、
前記圧縮画像データの１フレームあたりのデータサイズを求め、前記１フレームあたりのデータサイズと所定の目標データサイズとを比較し、前記１フレームあたりのデータサイズが前記目標データサイズより大きいときは前記圧縮画像データのデータサイズを小さくする量子化テーブルの値を生成して、前記生成された量子化テーブルの値を用いて前記画像圧縮手段に保持されている量子化テーブルを更新し、前記１フレームあたりのデータサイズが前記目標データサイズより小さいときは前記圧縮画像データのデータサイズを大きくする量子化テーブルの値を生成し、前記生成された量子化テーブルの値を用いて前記画像圧縮手段に保持されている量子化テーブルを更新する制御手段と
を有することを特徴とする画像信号処理装置。
【請求項２】
前記画像圧縮手段によって生成された前記圧縮画像データを記憶する圧縮画像データ記憶手段と、
前記パケット生成手段によって生成された送信パケットを記憶する送信パケット記憶手段と
を有し、
前記パケット生成手段によるパケット生成は、前記圧縮画像データ記憶手段から読み出された圧縮画像データをパケット生成して前記送信パケット記憶手段に書き込む処理であり、
前記送信手段による送信は、前記送信パケット記憶手段から前記送信パケットを読み出して送信する処理である
ことを特徴とする請求項１に記載の画像信号処理装置。
【請求項３】
前記制御手段は、前記圧縮画像データ記憶手段の所定アドレスから読み出したデータが所定のデータ値である場合に、前記画像圧縮手段に保持された量子化テーブルの値の前記更新を実行することを特徴とする請求項１又は２のいずれかに記載の画像信号処理装置。
【請求項４】
前記所定のデータ値は、前記圧縮画像データにおいて画像フォーマットを定義する情報を示すヘッダデータの後に位置する圧縮符号データの先頭を示すデータ値であることを特徴とする請求項３に記載の画像信号処理装置。
【請求項５】
前記圧縮画像データのフォーマットは、ＪＰＥＧ形式に準拠したフォーマットであることを特徴とする請求項３又は４のいずれかに記載の画像信号処理装置。
【請求項６】
前記圧縮画像データ記憶手段の前記所定のアドレスから読み出したデータが前記所定のデータ値であるときに、前記圧縮画像データ記憶手段の前記所定のアドレスに書き込まれているデータをリセットすることを特徴とする請求項３乃至５のいずれかに記載の画像信号処理装置。
【請求項７】
前記制御手段は、前記量子化テーブルの値を生成している間に、前記圧縮画像データ記憶手段の所定アドレスから読み出したデータが前記所定のデータ値であると判断された場合には、あらかじめ決められた処理から動作を再開させるリセット処理を行うことを特徴とする請求項１乃至６のいずれかに記載の画像信号処理装置。
【請求項８】
前記制御手段は、前記生成された量子化テーブルの値により前記画像データの圧縮率が上がる割合を示す圧縮率上昇割合をあらかじめ所定値に決めておき、前記生成された量子化テーブルの値により前記画像データの圧縮率が下がる割合を示す圧縮率低下割合をあらかじめ所定値に決めておき、前記圧縮率低下割合を前記圧縮率上昇割合よりも大きな値に設定することを特徴とする請求項１乃至７のいずれかに記載の画像信号処理装置。
【請求項９】
撮像素子と、
前記撮像素子から出力される画像信号が入力される画像信号処理回路と
を有し、
前記画像信号処理回路が、請求項１乃至８のいずれかに記載の画像信号処理装置であることを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号をパケット送信するための信号処理を行う画像信号処理装置及びこの装置を備えた撮像装置に関するものである。
【背景技術】
【０００２】
イントラネット又はインターネット等のネットワークを介して画像データを送信する従来の撮像装置として、ネットワークの状態を監視して画像データの送信に要する時間の遅延を判定する遅延判定部を設け、画像制御部が遅延判定部の判定結果に基づいてＣＣＤからの信号を画像圧縮部に取り込むタイミングを制御するネットワークカメラの提案がある（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００３−３２４７１０号公報（段落００１１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記ネットワークカメラは、ＣＣＤからの信号を画像圧縮部に取り込むタイミングを制御するものであり、ネットワークが混雑しているときにはＣＣＤからの古い画像データを廃棄処理して新しい画像データに更新することがあった。その結果、ＣＣＤで撮像されたが、画像圧縮部に取り込まれることなく、捨てられる画像データが発生していた。
【０００５】
また、上記従来のネットワークカメラは、画像圧縮部で生成される圧縮画像データのサイズを制御していないので、ネットワークカメラ自身から大きなサイズの画像データが出力され、それが原因でネットワークを混雑させてしまうことがあった。すなわち、上記従来のネットワークカメラは、自身が出力する画像データが引き起こすネットワークの混雑を未然に防止することができなかった。
【０００６】
そこで、本発明は、上記従来技術の課題を解決するためになされたものであり、その目的は、送信される圧縮画像データのサイズを目標サイズに近づけることができる画像信号処理装置及びこれを備えた撮像装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の画像信号処理装置は、量子化テーブルを保持し、入力される画像信号を前記量子化テーブルの値を用いて画像圧縮して圧縮画像データを生成する画像圧縮手段と、前記圧縮画像データの送信パケットを生成するパケット生成手段と、前記送信パケットを送信する送信手段と、前記圧縮画像データの１フレームあたりのデータサイズを求め、前記１フレームあたりのデータサイズと所定の目標データサイズとを比較し、前記１フレームあたりのデータサイズが前記目標データサイズより大きいときは前記圧縮画像データのデータサイズを小さくする量子化テーブルの値を生成して、前記生成された量子化テーブルの値を用いて前記画像圧縮手段に保持されている量子化テーブルを更新し、前記１フレームあたりのデータサイズが前記目標データサイズより小さいときは前記圧縮画像データのデータサイズを大きくする量子化テーブルの値を生成し、前記生成された量子化テーブルの値を用いて前記画像圧縮手段に保持されている量子化テーブルを更新する制御手段とを有するものである。
【０００８】
また、本発明の撮像装置は、撮像素子と、前記撮像素子から出力される画像信号が入力される画像信号処理回路とを有し、前記画像信号処理回路を上記画像信号処理装置としたものである。
【発明の効果】
【０００９】
本発明によれば、送信手段から出力される圧縮画像データのサイズを目標サイズに近づけることができる。したがって、本発明によれば、一定のフレームレートで安定した動画像を送信することができるという効果がある。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態に係る撮像装置ＣＡＭの構成を概略的に示すブロック図である。図１に示されるように、撮像装置ＣＡＭは、同期信号発生回路１と、撮像素子２と、信号処理回路３と、画像圧縮回路４と、メモリコントローラ５と、３つの格納領域６〜８を備えた記憶部９と、マクロプロセッサ１０と、メモリコントローラ１１と、送信制御部１２とを有している。なお、同期信号発生回路１と、信号処理回路３と、画像圧縮回路４と、メモリコントローラ５と、記憶部９と、マクロプロセッサ１０と、メモリコントローラ１１と、送信制御部１２とは、本発明の画像信号処理装置を構成している。また、マクロプロセッサ１０及び記憶部９は、後述するパケット生成動作を行うパケット生成手段として機能する。また、マクロプロセッサ１０及びメモリコントローラ５は、後述する量子化テーブルの更新を行う制御手段として機能する。また、送信制御部１２は、パケット生成手段で生成された送信パケットを送信する送信手段として機能する。
【００１１】
撮像素子２は、入射光Ｌを電気信号に光電変換する。撮像素子２から出力される電気信号である撮像信号Ｓ１は、信号処理回路３に入力される。信号処理回路３は、入力された画像信号Ｓ１をＡ／Ｄ変換した後、補間処理、ホワイトバランス処理、ガンマ補正処理等の各種処理を行って画像データＳ２を出力する。信号処理回路３から出力される画像データＳ２は、画像圧縮回路４に入力される。
【００１２】
画像圧縮回路４は、同期信号発生回路１から出力される垂直同期信号ＶＤに同期して、画像データＳ２の圧縮を開始し、作成した圧縮画像データＳ３を出力する。また、画像圧縮回路４は、１画面分の圧縮画像データＳ３を出力するたびに圧縮終了通知Ｓ６を生成する。画像圧縮回路４で生成された圧縮画像データＳ３は、メモリコントローラ５により、記憶部９の格納領域６に順次書き込まれる。また、メモリコントローラ５は、後述するタイミングで、マイクロプロセッサ１０に割り込み処理要求Ｓ５を出力する。
【００１３】
マイクロプロセッサ１０は、記憶部９の格納領域６に書き込まれたデータを読み出し、読み出したデータと同じデータを格納領域８に書き込む。マイクロプロセッサ１０は、格納領域８内のデータを、ネットワーク上へ送信するための形式にしたがって順次パケット化して、格納領域７に書き込む。また、マイクロプロセッサ１０は、画像圧縮回路４、メモリコントローラ５の動作を停止させることができる。
【００１４】
メモリコントローラ１１は、記憶部９の格納領域７に書き込まれたパケット化されたデータを読み出し、送信制御部１２に出力する。送信制御部１２は、ネットワークとの接続が確認されると、格納領域７内のパケット化されたデータをネットワーク上へ出力する。
【００１５】
ここで、圧縮画像データＳ３の形式としては、例えば、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）により制定された静止画像データの圧縮方式の一つであるＪＰＥＧ形式を用いることができる。図２は、ＪＰＥＧの仕様にしたがって作成されるＪＰＥＧファイルを模式的に示す図である。図２に示されるように、ＪＰＥＧファイルの先頭部Ｆ１には、画像データの開始、すなわち、Ｓｔａｒｔ  Ｏｆ  Ｉｍａｇｅ（ＳＯＩ）を表すコード値‘０ｘＦＦＤ８’が書き込まれる。なお、‘０ｘ・・・・’は、‘０ｘ’以下のコードが１６進数で表記されていることを意味する。
【００１６】
図２に示されるように、ＪＰＥＧファイルには、ＳＯＩ部分Ｆ１以降の部分として、順に、ハフマンテーブルに関するデータが書かれたハフマンデーブルデータ部Ｆ２と、量子化テーブルに関するデータが書かれた量子化テーブル部Ｆ３と、フレームヘッダ部Ｆ５と、スキャンヘッダ部Ｆ６と、圧縮データ部Ｆ７と、ＪＰＥＧファイルの終端部Ｆ８とが含まれている。終端部Ｆ８には、画像データの終了、すなわち、Ｅｎｄ  Ｏｆ  Ｉｍａｇｅ（ＥＯＩ）を表すコード値‘０ｘＦＦＤ９’が書き込まれている。
【００１７】
スキャンヘッダ部Ｆ６の先頭Ｆ４は、Ｓｔａｒｔ  Ｏｆ  Ｓｃａｎ（ＳＯＳ）と呼ばれ、ＳＯＳを表すコード値は‘０ｘＦＦＤＡ’である。
【００１８】
ＪＰＥＧファイルの先頭部Ｆ１からフレームヘッダ部Ｆ５までの部分はＪＰＥＧヘッダと呼ばれ、ＪＰＥＧファイルのスキャンヘッダ部Ｆ６からＪＰＥＧファイルの終端部Ｆ８までは圧縮データと呼ばれる。ここで、圧縮データは、必ず、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’から始まる。なお、本発明において用いることができる圧縮画像データの形式は、ＪＰＥＧ形式に限定されず、ＳＯＩを表すコード値、ＥＯＩを表すコード値、及びＳＯＳを表すコード値も圧縮画像データの形式によって異なる。
【００１９】
ここで、ハフマンテーブル及び量子化テーブルのサイズを一定にすることで、ＪＰＥＧヘッダのサイズを常に一定とすることができる。本実施の形態においては、以降、量子化テーブルを変更することがあるが、その際、量子化テーブルの各要素の値を変更することはあっても量子化テーブルのサイズ（要素の数）自体は変えない。したがって、本実施の形態においては、ＪＰＥＧヘッダのサイズは常に一定である。
【００２０】
図３は、図１に示される画像圧縮回路４の構成を示すブロック図である。図３に示されるように、画像圧縮回路４は、画像圧縮演算部１３と、レジスタ１４と、バッファ１５とを有している。バッファ１５は、信号処理回路３から出力された画像データＳ２を一時的に蓄える。レジスタ１４には、バッファ１５に蓄えられた画像信号を、ＪＰＥＧフォーマットにしたがって圧縮（ＪＰＥＧ圧縮）する際に用いられる量子化テーブルに関する情報などが書き込まれている。レジスタ１４に保持されている情報は、画像圧縮演算部１３によって、垂直同期信号ＶＤに同期して読み出され、ＪＰＥＧ圧縮に利用される。また、レジスタ１４内の量子化テーブルに関する情報は、マイクロプロセッサ１０の出力する信号Ｓ７により書き換えることが可能である。画像圧縮演算部１３は、レジスタ１４から読み出した量子化テーブルの各要素の値をもとにＪＰＥＧヘッダを作成したり、バッファ１５に蓄えられた画像信号をＪＰＥＧ圧縮したりすることができる。
【００２１】
図４は、図１に示されるメモリコントローラ５の構成を示すブロック図である。図４に示されるように、メモリコントローラ５は、バッファ１６と、カウンタ１７と、レジスタ１８とを有している。バッファ１６は、画像圧縮回路４から出力された圧縮画像データＳ３を一時的に蓄える。メモリコントローラ５は、画像圧縮回路４から圧縮終了通知Ｓ６を受けるまで、バッファ１６に蓄えられた圧縮画像データＳ３を記憶部９内の格納領域６に順次書き込んで行く。カウンタ１７は、圧縮画像データＳ３を格納領域６に順次書き込む動作と並行して、バッファ１６から格納領域６に移されたデータの総量をカウントする。メモリコントローラ５は、圧縮終了通知Ｓ６を受けると、バッファ１６内部に残っている圧縮画像データＳ３の全てが格納領域６に移されたことを確認した後、カウンタ１７でカウントしたデータの総量をレジスタ１８に記録する。その後、メモリコントローラ５は、マイクロプロセッサ１０に対して、割り込み処理要求Ｓ５を出力する。
【００２２】
図５は、本実施の形態に係る撮像装置ＣＡＭの動作を示すタイミングチャートである。図５に示されるように、画像圧縮回路４の画像圧縮演算部１３は、垂直同期信号ＶＤに同期して、時刻Ｔ１において、レジスタ１４から量子化テーブルに関する情報を読み出す。画像圧縮演算部１３は、量子化テーブルに関する情報の読み出しが完了すると、時刻Ｔ２において、ＪＰＥＧヘッダの作成を開始する。画像圧縮演算部１３は、ＪＰＥＧヘッダの作成が完了した時刻Ｔ３以降、バッファ１５から画像データ（映像信号）Ｓ２を読み出し、ＪＰＥＧ圧縮を行い、圧縮画像データを作成する。ここで、図５に示されるように、画像データＳ２は、信号処理回路３から、垂直同期区間ごとに一定間隔で出力されており、ＪＰＥＧ圧縮されるまでは、画像圧縮回路４内のバッファ１５に一時保存されている。そして、画像圧縮演算部１３によるＪＰＥＧ圧縮は、バッファ１５から画像データＳ２を読み出して行われる。時刻Ｔ４において、１画像分の画像データＳ２の圧縮が完了すると、画像圧縮演算部１３は圧縮終了通知Ｓ６をメモリコントローラ５に対して発行する。画像圧縮回路４は、以上の処理を垂直同期信号ＶＤに同期して繰り返し行う。
【００２３】
図５に示されるように、メモリコントローラ５は、時刻Ｔ２以降、圧縮終了通知Ｓ６を受けるまでバッファ１６内の圧縮画像データＳ３を記憶部９の格納領域６に転送する。また、メモリコントローラ５は、圧縮画像データＳ３の格納領域６への転送と並行して、カウンタ１７によって、転送したデータの総量をカウントする。そして、メモリコントローラ５は、時刻Ｔ４において、圧縮終了通知Ｓ６を受けると、その後、圧縮画像データＳ３の全てが記憶部９に転送されたのを確認し、時刻Ｔ５において、転送データの総量をレジスタ１８に記憶させる。これにより、レジスタ１８には、ＪＰＥＧファイルのデータサイズが書き込まれる。その後、メモリコントローラ５は、割り込み処理要求Ｓ５をマイクロプロセッサ１０に対して発行する。
【００２４】
図６乃至図８は、図１に示されるマイクロプロセッサ１０の動作を示すフローチャートである。なお、マイクロプロセッサ１０においては、図６及び図７に示される処理と、図８に示される処理とが、スレッド処理により並行して行われる。ここで、図６及び図７に示される処理において、メインの処理は図６に示される処理であり、図７に示される処理は、割り込み処理要求Ｓ５が発行された時、割り込み処理によって実施される。また、図８に示される処理を行うスレッドは、図７に示される処理によって立ち上げられる。
【００２５】
図６に示されるように、先ず、マイクロプロセッサ１０は、ステップＰ０において、量子化テーブル更新フラグの初期値として０を設定する。以降は後述するように、通常はステップＰ２０、ステップＰ２２の処理がループし、割り込み処理復帰後のみステップＰ２０、ステップＰ２１、ステップＰ８の処理が行われる。すなわち、ステップＰ２０において、割り込み処理から復帰したか否かを判断し、割り込み処理から復帰していた場合はステップＰ２１、ステップＰ８の処理を、そうでない場合はステップＰ２２の処理を実施する。なお、ステップＰ２１とステップＰ２２で行われる処理は同一であり、複数のステップＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ６、Ｐ７、Ｐ９からなる。以下に各ステップの詳細を述べる。先ず、マイクロプロセッサ１０は、ステップＰ１において、記憶部９の格納領域６に書き込まれた圧縮画像データを読み出す。次に、マイクロプロセッサ１０は、ステップＰ２において、読み出した圧縮画像データと同じものを記憶部９の格納領域８へ書き込む。この際、マイクロプロセッサ１０は、ステップＰ３において、格納領域８にＳＯＳを表すデータ値‘０ｘＦＦＤＡ’を書き込んだか否かを判断する。マイクロプロセッサ１０は、ＳＯＳを表すデータ値‘０ｘＦＦＤＡ’を書き込んだ場合には、処理をステップＰ４に進め、書き込まなかった場合には、処理をステップＰ１に戻す。ここで、ＪＰＥＧヘッダのサイズは一定となるように設定しているので、格納領域６においてＳＯＳを表すデータ‘０ｘＦＦＤＡ’の書き込まれる可能性のあるアドレスは、ある一箇所に固定されている。したがって、ステップＰ３において格納領域８にＳＯＳを表すデータ値‘０ｘＦＦＤＡ’が書き込まれたかを判断するためには、格納領域６からデータを読み出した際に、その読み出したデータを全てについて判断処理を実行するのではなく、格納領域６から読み出したデータのうち特定のアドレス部分のデータのみについて判断処理を実行すればよい。
【００２６】
処理がステップＰ４に進む場合には、マイクロプロセッサ１０は、量子化テーブル更新フラグの値が１であるか否かを判断する。マイクロプロセッサ１０は、量子化テーブル更新フラグの値が１である場合には、処理をステップＰ９に進め、量子化テーブル更新フラグの値が１以外である場合には、処理をステップＰ６に進める。
【００２７】
処理がステップＰ６に進んだ場合には、マイクロプロセッサ１０は、画像圧縮回路４内のレジスタ１４内の量子化テーブルに関するデータを更新する。この時、更新後の新しい量子化テーブルの値の計算については後述する。次のステップＰ７においては、マイクロプロセッサ１０は、格納領域６においてＳＯＳを表すデータ値‘０ｘＦＦＤＡ’が記入されていた箇所のデータをリセットする。例えば、マイクロプロセッサ１０は、該当箇所のデータをクリアして、例えば、データ値‘０ｘ００００’に書き換える。そして、マイクロプロセッサ１０は、処理をステップＰ１に戻す。
【００２８】
また、ステップＰ４において処理がステップＰ９に進んだ場合には、マイクロプロセッサ１０は、リセット処理を行う。ここで行うリセット処理については後述する。
【００２９】
図６に示される処理によって、記憶部９の格納領域６に順次書き込まれるデータをもとにして、ＪＰＥＧファイルのデータが格納領域８に保存される。ステップＰ８では、量子化テーブル更新フラグの値を０にする。
【００３０】
次に、図７のフローチャートを用いてマイクロプロセッサ１０が、圧縮完了割り込み処理要求Ｓ５を受けた場合の動作を説明する。
【００３１】
圧縮完了割り込み処理要求Ｓ５を受信すると、マイクロプロセッサ１０は、図６のフローチャートに示される処理の途中で、割り込み処理により図７のフローチャートに示される処理を以下の手順で行う。
【００３２】
図７に示されるように、マイクロプロセッサ１０は、ステップＰ５において、量子化テーブル変更フラグの値を１にする。次に、マイクロプロセッサ１０は、ステップＰ１０において、レジスタ１８に書き込まれているＪＰＥＧファイルデータのサイズに応じて、新しい量子化テーブルを計算する。新しい量子化テーブルの値の計算については後述する。
【００３３】
マイクロプロセッサ１０は、新しい量子化テーブルの計算が終了すると、次に、ステップＰ１１において、図８に示されるフローチャートを処理するための新スレッドを立ち上げる。その後、図６のフローチャートに示される処理に復帰する。
【００３４】
図８に示されるフローチャートにおいては、記憶部９の格納領域８に格納されたＪＰＥＧファイルデータをパケット化しネットワーク上へ送信するための処理が行われる。
【００３５】
図８に示されるように、マイクロプロセッサ１０は、ステップＰ１２において、格納領域８に格納されたＪＰＥＧファイルデータの一部を読み出した後、読み出したデータに対しＩＰヘッダ、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ等を加えてパケット化したデータを作成する。そして、マイクロプロセッサ１０は、ステップＰ１３において、作成したデータを記憶部９の格納領域７に格納する。
【００３６】
マイクロプロセッサ１０は、ステップＰ１４において、ステップＰ１２及びＰ１３の処理が１画像分行われたか否かを判断する。ステップＰ１２及びＰ１３の処理が１画像分行われたか否かの判断は、例えば、パケット化する際に、ＥＯＩを表すデータ値が含まれていたかを確認することで可能である。そして、マイクロプロセッサ１０は、ステップＰ１４において、ステップＰ１２及びＰ１３の処理が１画像分行われたと判断した場合は、ステップＰ１５において、ステップＰ１１で生成されたスレッドを破棄して、処理を終了する。ステップＰ１２及びＰ１３の処理が１画像分行われていなかった場合は、マイクロプロセッサ１０は、処理をステップＰ１２に進め、ステップＰ１２以降の処理を繰り返す。
【００３７】
図８に示される処理により、ＪＰＥＧファイルデータがパケット化された形で格納領域７に順次書き込まれていく。なお、格納領域７にパケット化されて書き込まれたＪＰＥＧファイルデータはメモリコントローラ１１及び送信制御部１２によりネットワーク上へ送信される。
【００３８】
図９は、図７に示されるステップＰ１０における量子化テーブルの計算方法を示すフローチャートである。図９に示されるように、マイクロプロセッサ１０は、ステップＰ１６において、メモリコントローラ５内のレジスタ１８からＪＰＥＧファイルのデータサイズを読み出す。
【００３９】
次に、マイクロプロセッサ１０は、ステップＰ１７において、１フレーム当たりのＪＰＥＧファイルのデータサイズが目標とするデータサイズ（目標値）より大きいか否かを判断する。ＪＰＥＧファイルのデータサイズが目標とするデータサイズより大きいと判断した場合は、マイクロプロセッサ１０は、処理をステップＰ１８へ進め、ＪＰＥＧファイルのデータサイズが目標とするデータサイズより小さいと判断した場合は、処理をステップＰ１９へ進め、ＪＰＥＧファイルのデータサイズが目標とするデータサイズに等しいと判断した場合は、処理をステップＰ３０へ進めて量子化テーブルの更新をしない。
【００４０】
マイクロプロセッサ１０は、ＪＰＥＧファイルのデータサイズが目標とするデータサイズより大きいと判断した場合には、ステップＰ１８において、ＪＰＥＧファイルのデータサイズがより小さくなるよう新しい量子化テーブルを計算する。すなわち、マイクロプロセッサ１０は、画像圧縮演算部１３で計算される圧縮データの圧縮率が上がるように新しい量子化テーブルを計算する。ここで、圧縮データの圧縮率を上げるために、どのように量子化テーブルを変更するかは公知技術であるので、ここでの説明は省略する。
【００４１】
また、マイクロプロセッサ１０は、ＪＰＥＧファイルのデータサイズが目標とするデータサイズより小さいと判断した場合には、ステップＰ１９において、ＪＰＥＧファイルのデータサイズがより大きくなるよう新しい量子化テーブルを計算する。すなわち、マイクロプロセッサ１０は、画像圧縮演算部１３で計算される圧縮データの圧縮率が下がるように新しい量子化テーブルを計算する。ここで、圧縮データの圧縮率を下げるために、どのように量子化テーブルを変更するかは公知技術であるので、ここでの説明は省略する。
【００４２】
ステップＰ１８で計算される量子化テーブルにより圧縮率が上がる割合を示す圧縮率上昇割合をあらかじめ所定値（例えば、Ａ１（％））に決めておき、ステップＰ１９で計算される量子化テーブルにより圧縮率が下がる割合を示す圧縮率低下割合をあらかじめ所定値（例えば、Ａ２（％））に決めておく場合には、圧縮率低下割合を圧縮率上昇割合よりも大きな値に設定すること（すなわち、Ａ２＞Ａ１）が好ましい。すなわち、ＪＰＥＧファイルデータのサイズが目標値より大きかった場合は、比較的大きな値の圧縮率低下割合に従って更新された量子化テーブルを用いることによってＪＰＥＧファイルデータのサイズが短時間で小さくなるように、逆に、ＪＰＥＧファイルデータのサイズが目標値より小さかった場合は、比較的小さな値の圧縮率上昇割合に従って更新された量子化テーブルを用いることによってその後作成されるＪＰＥＧファイルデータのサイズが徐々に大きくなるように新しい量子化テーブルを計算する。ステップＰ９のリセット処理では、先ず、マイクロプロセッサ１０が画像圧縮回路４、及びメモリコントローラ５の動作を停止する。すなわち、画像圧縮回路４は、新たな圧縮画像データＳ３の作成を停止し、メモリコントローラ５は圧縮画像データの転送を停止する。そして、スレッドＴＨ２が立ち上がっていた場合、スレッドＴＨ２の処理が終了するのを待ち、その後、記憶部９に残っているデータを全て消去する。その後、マイクロプロセッサ１０は、垂直同期信号ＶＤに同期して量子化テーブルの値をあらかじめ定められていた初期値に戻し、画像圧縮回路４、メモリコントローラ５の動作を再開させ、再び、図６のフローに従った動作を行う。
【００４３】
以上に説明したマイクロプロセッサ１０の動作を、図１０のタイミングチャートを用いて、時系列にそって説明する。図１０において、マイクロプロセッサ１０の動作を示す箇所以外は、図５の場合と同じである。
【００４４】
図１０において、ＴＨ１及びＴＨ２は各々マイクロプロセッサ１０でスレッド処理により実施される処理を表す。ここで、スレッドＴＨ１は、図６及び図７に示される処理を実施するためのスレッドであり、スレッドＴＨ２は、図８に示される処理を実施するためのスレッドである。
【００４５】
まず、スレッドＴＨ１においては、時刻Ｔ１１に、格納領域６に書き込まれた圧縮データを読み出して格納領域８に同じデータを書き込む処理が開始される。この時、マイクロプロセッサ１０は、図６におけるステップＰ３で説明したように、書き込むデータの特定のアドレスに対応するデータがＳＯＳを表すデータ値‘０ｘＦＦＤＡ’か否かをチェックする。そして、書き込むデータの特定のアドレスに対応するデータが‘０ｘＦＦＤＡ’であれば、その後ステップＰ４以降の処理を行う。
【００４６】
図１０においては、時刻Ｔ１２が、ＳＯＳを表すデータ値‘０ｘＦＦＤＡ’が現れた時刻に対応しており、予め求めていた量子化テーブルのデータが、時刻Ｔ１２において、画像圧縮回路４内のレジスタ１４に書き込まれる。
【００４７】
そして、マイクロプロセッサ１０は、量子化テーブルのデータの書き込みが終了した時刻Ｔ１３から、再び格納領域６に書き込まれたＪＰＥＧファイルのデータを読み出して格納領域８に同じデータを書き込む処理を開始する。
【００４８】
その後、マイクロプロセッサ１０は、時刻Ｔ１４にメモリコントローラ５から割り込み処理要求Ｓ５を受けると、図７のフローチャートに示される割り込み処理を実施し、その後、新しいスレッドＴＨ２を立ち上げる。
【００４９】
また、マイクロプロセッサ１０は、割り込み処理が終了すると、再び格納領域６に書き込まれたＪＰＥＧファイルのデータを読み出して格納領域８に同じデータを書き込む処理を開始し、１画面分の圧縮データを格納領域８に書き込むまで同処理を続ける。このとき、スレッドＴＨ１では、割り込み処理から復帰した場合、ステップＰ８で説明したように、格納領域８へデータを書き込んだ後、量子化テーブル更新フラグを０にする。図１０の例では、時刻Ｔ２０の量子化テーブル更新フラグが０に戻される。
【００５０】
マイクロプロセッサ１０は、スレッドＴＨ２においては１画面分のＪＰＥＧファイルのデータをパケット化し終わるまで、図８のフローチャートに従った処理を実施する。そして、１画面分の圧縮画像データをパケット化し終えると、時刻Ｔ１６でスレッドＴＨ２は消滅する。
【００５１】
なお、先に述べたようにスレッドＴＨ１に示される処理とスレッドＴＨ２に示される処理はスレッド処理により並行して行われる。以上がマイクロプロセッサ１０の動作である。
【００５２】
本実施の形態に係る撮像装置ＣＡＭにおいては、図７に示されるステップＰ１０において、図９に示されるフローチャートにしたがってＪＰＥＧ圧縮に利用する量子化テーブルを変更している。量子化テーブルの変更はＪＰＥＧファイルのデータサイズを計測した結果に基づいて行っており、ＪＰＥＧファイルのデータサイズが目標値より大きいときはＪＰＥＧファイルのデータサイズが小さくなるよう、逆にＪＰＥＧファイルのデータサイズが目標値より小さいときはＪＰＥＧファイルのデータサイズが大きくなるように行っている。すなわち、作成されるＪＰＥＧファイルのデータサイズが常に目標とするデータサイズになるように（一定になるように）制御されるので、ネットワーク上での画像転送量を一定に抑えることができる。すなわち、画像転送がネットワークにかける負荷を抑えることができる。
【００５３】
また、ネットワーク上での画像転送量が一定になるように制御されているので、ネットワーク負荷の増大による通信速度の低下を未然に防ぐことができる。すなわち、一定のフレームレートで安定した動画像を送信することができる。
【００５４】
ここで、量子化テーブルの値を更新するにあたって、誤ったタイミングでレジスタ１４内の量子化テーブル値を更新すると画像圧縮回路４でＪＰＥＧヘッダの作成に失敗する可能性がある。
【００５５】
例えば、画像圧縮演算部１３がレジスタ１４から量子化テーブルの情報を読み出している途中にレジスタ１４内の量子化テーブルの内容を更新すると、画像圧縮演算部１３がＪＰＥＧヘッダ内の量子化テーブル部の作成に失敗し、その結果、正しいＪＰＥＧヘッダの作成に失敗するといったことが考えられる。
【００５６】
そこで、本実施の形態における撮像装置ＣＡＭにおいては、マイクロプロセッサ１０において、ＪＰＥＧヘッダが作成されたか確認して量子化テーブルを更新することとしている。
【００５７】
ＪＰＥＧヘッダの作成には量子化テーブルの情報が不可欠である。すなわち、画像圧縮回路４がＪＰＥＧヘッダ情報を作成したということは、画像圧縮演算部１３が量子化テーブルの内容を読み終えたことを意味する。本実施の形態における撮像装置ＣＡＭにおいては、マイクロプロセッサ１０において、ＪＰＥＧヘッダ情報が作成されたかを確認して量子化テーブルを更新することとしているので、画像圧縮演算部１３が量子化テーブルの情報を読み出している途中にレジスタ１４内の量子化テーブルの内容を誤って更新することがない。すなわち、正しいタイミングで量子化テーブルのデータを更新することができる。
【００５８】
また、ＪＰＥＧヘッダが作成されたか確認するために、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’を用いている。ＪＰＥＧの仕様によりＳＯＳを表すコード値‘０ｘＦＦＤＡ’はスキャンヘッダ部Ｆ６の先頭にのみ表れる。また、スキャンヘッダ部Ｆ６はＪＰＥＧヘッダの終了直後に作成される。したがって、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’を用いることでＪＰＥＧヘッダの作成が終了したか確実に判定することができる。
【００５９】
また、画像圧縮回路４から出力されるデータのみを用いてヘッダ情報を作成したかどうか確認しているので、画像圧縮回路４からマイクロプロセッサ１０にヘッダ情報の作成完了を通知するための専用の信号等を用意しなくても、マイクロプロセッサ１０はヘッダ情報の作成完了を知ることができる。すなわち、ＪＰＥＧヘッダ情報の作成が完了したことを通知する信号を新たに設ける必要がない。
【００６０】
また、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’が書き込まれたかどうかの確認は格納領域６内のある特定のアドレスのデータのみを確認するだけで済む。すなわち、マイクロプロセッサ１０は、全データについて、‘０ｘＦＦＤＡ’と一致するかチェックするというような大幅な負荷増となる処理をすることなく、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’が書き込まれたかどうかの確認ができる。
【００６１】
すなわち、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’が書き込まれたか確認するためにマイクロプロセッサ１０の処理は、ほとんど増加することはない。
【００６２】
また、格納領域６内に、ＳＯＳを表すコード値‘０ｘＦＦＤＡ’を確認した場合は、格納領域６内で‘０ｘＦＦＤＡ’の値が記入されていた部分のデータをリセットする。
【００６３】
つまり、一度確認されたＳＯＳを表すコード値は確実に消去される。また、ＪＰＥＧの仕様からコード値‘０ｘＦＦＤＡ’は１枚のＪＰＥＧファイル中に１箇所しか現れないので、一度確認されたコード値‘０ｘＦＦＤＡ’を消去することで、マイクロプロセッサ１０がＳＯＳを表すコード値‘０ｘＦＦＤＡ’を誤って確認することを防げる。
【００６４】
また、本実施の形態に係る撮像装置においては、割り込み処理時、量子化テーブル更新フラグを１にする。また、割り込み処理から復帰し、さらに格納領域８へデータを書き込み終えた後、量子化テーブル更新フラグを０にしている。そして、図６に示されるステップＰ４において、量子化テーブル更新フラグが１の場合、量子化テーブルの更新を行おうとするとリセット処理をするようにしている。ここで、割り込み処理が発生するタイミングは、画像１枚分のデータをＪＰＥＧ圧縮した後なので、画像１枚分のデータをＪＰＥＧ圧縮した後に、量子化テーブル更新フラグが１になる。画像１枚分のデータをＪＰＥＧ圧縮するには、画像１枚分の画像データＳ２が出力されておらねばならず、したがって、図１０に時刻Ｔ１４からＴ２０の間で示されるように、画像１枚分の画像データＳ２が出力された一定時間後には、次の垂直同期信号ＶＤが発生し、画像圧縮回路４内部においては、レジスタ１４から量子化テーブルに関するデータが読み出される。すなわち、量子化テーブルの値の更新が禁止されなければならない時間になる。
【００６５】
以上のことから、画像１枚分の画像データＳ２が出力された後に現れる量子化テーブル更新フラグが１の区間は、量子化テーブルの値の更新が禁止されなければならない時間である可能性が高い。本実施の形態における撮像装置においては、量子化テーブル更新フラグが１の場合、量子化テーブルの更新を行おうとするとリセット処理をするようにしているので、量子化テーブルの更新が禁止されなければならない時間である可能性が高いときに誤って量子化テーブルが更新されるのを防ぐことができる。
【００６６】
また、本実施の形態における撮像装置においては量子化テーブルを計算する際、圧縮率を下げる場合は速やかに下がるように圧縮率低下割合を決定し、圧縮率を上げる場合は圧縮率が緩やかに上がるように圧縮率上昇割合を決定しているので、圧縮後の画像サイズが目標値を越えた状況が長く続くという状況が起きにくい。すなわち、画像転送にかかる負荷が急激に増加して、その結果ネットワークの通信性能が落ちるといった事態を防ぐことができる。
【００６７】
本発明の活用例として、ネットワークカメラの符号量制御への適用がある。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。
【図２】ＪＰＥＧファイルの仕様を示す図である。
【図３】図１に示される画像圧縮回路の構成を示すブロック図である。
【図４】図１に示されるメモリコントローラの構成を示すブロック図である。
【図５】本発明の実施の形態に係る撮像装置の画像圧縮回路及びメモリコントローラの動作を示すタイミングチャートである。
【図６】図１に示されるマイクロプロセッサの動作を示すフローチャートである。
【図７】図１に示されるマイクロプロセッサの動作を示すフローチャートである。
【図８】図１に示されるマイクロプロセッサの動作を示すフローチャートである。
【図９】図１に示されるマイクロプロセッサの動作を示すフローチャートである。
【図１０】本発明の実施の形態に係る撮像装置のマイクロプロセッサの動作を示すタイミングチャートである。
【符号の説明】
【００６９】
１  同期信号発生回路、  ２  撮像素子、  ３  信号処理回路、  ４  画像圧縮回路、  ５  メモリコントローラ、  ６  格納領域、  ７  格納領域、  ８  格納領域、  ９  記憶部、  １０  マイクロプロセッサ、  １１  メモリコントローラ、  １２  送信制御部、  １３  画像圧縮演算部、  １４  レジスタ、  １５  バッファ、  １６  バッファ、  １７  カウンタ、  １８  レジスタ、  ＣＡＭ  撮像装置。
【図１】
2007150490.tif 000003
【図２】
2007150490.tif 000004
【図３】
2007150490.tif 000005
【図４】
2007150490.tif 000006
【図５】
2007150490.tif 000007
【図６】
2007150490.tif 000008
【図７】
2007150490.tif 000009
【図８】
2007150490.tif 000010
【図９】
2007150490.tif 000011
【図１０】
2007150490.tif 000012