画像処理コントローラ及び電子機器
【課題】 カメラからのカメラデータを効率良くホストデバイスに転送できる画像処理コントローラ及びこれを含む電子機器を提供すること。
【解決手段】 画像処理コントローラ30は、カメラデータが入力されるカメラ入力インターフェース40と、カメラデータに対して画像処理を行う画像処理部50と、画像処理が行われたカメラデータを記憶するメモリ60と、ホストデバイス10との間のホストインターフェース処理を行うホストインターフェース80と、メモリ60に記憶されたカメラデータを、ホストデバイス10のホスト側カメラ入力インターフェース12に出力するカメラ出力インターフェース70を含む。画像処理部50でのリサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成する。
【解決手段】 画像処理コントローラ30は、カメラデータが入力されるカメラ入力インターフェース40と、カメラデータに対して画像処理を行う画像処理部50と、画像処理が行われたカメラデータを記憶するメモリ60と、ホストデバイス10との間のホストインターフェース処理を行うホストインターフェース80と、メモリ60に記憶されたカメラデータを、ホストデバイス10のホスト側カメラ入力インターフェース12に出力するカメラ出力インターフェース70を含む。画像処理部50でのリサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理コントローラ及び電子機器に関する。
【背景技術】
【0002】
近年の携帯電話機は、CCDやCMOSなどのカメラ(イメージセンサ、カメラモジュール)を内蔵している。このようにカメラを内蔵すれば、カメラにより撮影した画像を、LCDなどの表示パネルに表示したり、ファイルとして保存することが可能になる。そしてカメラにより撮影した画像を表示パネルに表示したり、ファイルとして保存するためには、画像サイズを表示パネルサイズに適合させるためのリサイズ処理や、ファイルサイズを小さくするための圧縮処理などの画像処理を、カメラデータに対して施すことが望ましい。
【0003】
このようなカメラデータへの画像処理を実現する手法として、カメラとホストデバイス(MPU、ベースバンドエンジン)の間に画像処理コントローラを介在させ、この画像処理コントローラによりカメラデータに画像処理を施し、ホストバス(ホストインターフェース)を介してホストデバイスに転送する手法が考えられる。
【0004】
しかしながらこの手法では、ホストデバイスがホストバスを介してカメラデータをリードする処理が必要になり、このリード処理によりホストバスが占有されてしまう。このため、ホストバスを使用する他の処理が阻害されてしまい、ホストデバイスによるプログラム実行などの処理速度が低下する。またカメラからのカメラデータの入力速度が、ホストデバイスによるカメラデータのリード速度よりも速い場合には、画像処理コントローラ内に設けられるFIFOにオーバーフローが生じ、データが紛失してしまうおそれもある。
【特許文献1】特開2000−206941号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、カメラからのカメラデータを効率良くホストデバイスに転送できる画像処理コントローラ及びこれを含む電子機器を提供することにある。
【課題を解決するための手段】
【0006】
本発明は、カメラデータが入力されるカメラ入力インターフェースと、カメラデータに対して画像処理を行う画像処理部と、画像処理が行われたカメラデータを記憶するメモリと、ホストデバイスとの間のホストインターフェース処理を行うホストインターフェースと、前記メモリに記憶されたカメラデータを、前記ホストデバイスのホスト側カメラ入力インターフェースに出力するカメラ出力インターフェースとを含む画像処理コントローラに関係する。
【0007】
本発明によれば、カメラ入力インターフェースにカメラデータが入力されると、カメラデータに画像処理が行われてメモリに記憶される。そしてメモリに記憶されたカメラデータは、カメラ出力インターフェースを介してホストデバイスのホスト側カメラ入力インターフェースに出力される。またホストデバイスとの間では、ホストインターフェースを介してホストインターフェース処理が行われる。このようにすれば、カメラ入力インターフェースに入力されたカメラデータに画像処理を施して、ホストデバイスに転送することが可能になり、ホストデバイスの処理負荷を軽減できる。またカメラデータをホストインターフェースのホストバスを利用して転送しなくても済むため、カメラデータの転送のためにホストバスが占有されてしまう事態を防止でき、ホストデバイスの処理の効率化等を図れる。
【0008】
また本発明では、前記画像処理部は、カメラデータに対してリサイズ処理を行うリサイザを含み、前記カメラ出力インターフェースは、前記カメラ入力インターフェースを介して入力される垂直同期信号、水平同期信号のエミュレーション処理を行い、前記エミュレーション処理においては、前記リサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号、エミュレーション水平同期信号を生成して、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0009】
このようにすれば、リサイズ倍率に応じた適正なエミュレーション垂直同期信号、エミュレーション水平同期信号をホストデバイスに出力できるようになり、ホストデバイスの処理の簡素化等を図れる。
【0010】
また本発明では、前記ホストデバイスは、表示パネルを駆動する表示ドライバとの間のインターフェース処理を行う表示ドライバインターフェースを含み、前記画像処理部は、カメラデータを前記表示パネルに表示するためのリサイズ処理を行う表示用リサイザを含み、前記カメラ出力インターフェースは、前記表示用リサイザによりリサイズ処理が行われたカメラデータを、前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0011】
このようにすれば、表示パネルのパネルサイズに応じたサイズにリサイズされたカメラデータを、カメラ出力インターフェースを介してホストデバイスに出力することが可能になる。
【0012】
また本発明では、前記画像処理部は、カメラデータをファイルとして保存するためのリサイズ処理を行うキャプチャ用リサイザを含み、前記ホストインターフェースは、前記キャプチャ用リサイザによりリサイズ処理が行われたカメラデータを、前記ホストデバイスに出力するようにしてもよい。
【0013】
このようにすれば、ファイルの保存サイズに応じたサイズにリサイズされたカメラデータを、ホストインターフェースを介してホストデバイスに出力することが可能になる。
【0014】
また本発明では、前記カメラ入力インターフェースに入力されたカメラデータを、前記画像処理部及び前記メモリを介さずに前記カメラ出力インターフェースに出力するバイパス回路を含むようにしてもよい。
【0015】
このようにすれば、カメラ入力インターフェースに入力されたカメラデータを、画像処理を施さずに、そのままホストデバイスにバイパス転送できるようになり、利便性を向上できる。
【0016】
また本発明では、前記画像処理部は、カメラデータに対して圧縮処理を行うコーデックを含み、前記カメラ出力インターフェースは、前記コーデックにより圧縮処理が行われた圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0017】
このようにすれば、圧縮カメラデータの転送によりホストバスが占有されてホストデバイスの処理が非効率化する事態を防止できる。
【0018】
また本発明では、前記画像処理部は、カメラデータに対して静止画圧縮処理を静止画コーデックと、カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、前記カメラ出力インターフェースは、前記静止画コーデックにより静止画圧縮処理が行われた静止画圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力し、前記ホストインターフェースは、前記動画コーデックにより動画圧縮処理が行われた動画圧縮カメラデータを、前記ホストデバイスに出力するようにしてもよい。
【0019】
このようにすれば、カメラデータの利用態様に応じた最適な転送経路でカメラデータをホストデバイスに転送することが可能になり、転送効率を最適化できる。
【0020】
また本発明では、前記画像処理部は、カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部と、カメラデータに対して静止画圧縮処理を静止画コーデックと、カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、動画カメラデータについては、前記変換部により前記回転処理及び前記ミラー処理の少なくとも一方が行われた後に前記メモリに書き込まれ、前記動画コーデックにより動画圧縮処理が行われて前記ホストデバイスに出力され、静止画カメラデータについては、前記変換部による前記回転処理、前記ミラー処理が行われずに前記メモリに書き込まれ、前記静止画コーデックにより静止画圧縮処理が行われて前記ホストデバイスに出力されるようにしてもよい。
【0021】
このようにすれば、例えばカメラの実装形態等が原因で撮影イメージと表示イメージが一致しない場合等であっても、これらが一致するように、動画カメラデータに対して回転処理やミラー処理を施すことが可能になる。
【0022】
また本発明では、オート転送モードでは、前記カメラ入力インターフェースにカメラデータが入力されたことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送するようにしてもよい。
【0023】
このようにすれば、ホストデバイスへのカメラデータの転送を更に効率化できる。
【0024】
また本発明では、前記オート転送モードでは、前記カメラ入力インターフェースに入力される垂直同期信号が非アクティブになったことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送するようにしてもよい。
【0025】
また本発明では、シングル転送モードでは、前記ホストデバイスから指示があったことを条件に、前記メモリに記憶された1画面分のカメラデータを前記カメラ出力インターフェースを介して前記ホストデバイスに転送するようにしてもよい。
【0026】
また本発明は、上記のいずれかの画像処理コントローラと、前記画像処理コントローラにカメラデータを出力するカメラと、前記ホストデバイスとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0028】
1.電子機器
図1に、本実施形態の画像処理コントローラ30を含む電子機器の一例を示す。なお電子機器は図1に示されるもの以外の構成要素(例えば操作部又は電源回路等)を含んでもよい。また本実施形態の電子機器は携帯電話機には限定されず、携帯型情報端末、携帯型オーディオ機器などであってもよい。
【0029】
図1においてホストデバイス10は、例えばMPU(Micro Processor Unit)、ベースバンドエンジン(ベースバンドプロセッサ)などである。このホストデバイス10(ホストプロセッサ)は表示ドライバインターフェースを有し、表示パネル24を駆動する表示ドライバ22(LCD)を制御する。またホストデバイス10はホスト側カメラ入力インターフェースを有し、カメラからのカメラデータを入力することができる。またホストデバイス10は、アプリケーションエンジンやベースバンドエンジンとしての処理や、グラフィックエンジンとしての処理を行うこともできる。
【0030】
なおホストデバイス10と表示ドライバ22の間は、高速シリアルインターフェースにより接続することができる。この高速シリアルインターフェースでは、小振幅の差動信号(LVDS)を用いてデータやストローブ(クロック)が転送される。
【0031】
カメラ20(カメラモジュール)は、CCDやCMOSなどのイメージセンサにより構成される。このカメラ20は、イメージセンサの他に、カメラデータを出力するカメラ出力インターフェースや、イメージセンサを駆動する駆動回路などを含むことができる。
【0032】
表示パネル24は、複数のデータ線(信号線)と、複数の走査線と、データ線及び走査線により特定される複数の画素を有する。そして各画素領域における電気光学素子(狭義には、液晶素子)の光学特性を変化させることで、表示動作を実現する。この表示パネル24としては、例えば薄膜トランジスタ(Thin Film Transistor:TFT)や薄膜ダイオード(Thin Film Diode:TFD)などのスイッチング素子(2端子型非線形素子)を用いたアクティブマトリクス方式のパネルを採用できる。或いは表示パネル24として、単純マトリクス方式のパネルを採用したり、液晶パネル以外のパネル(例えば有機ELパネル)を採用してもよい。
【0033】
表示ドライバ22は表示パネル24のデータ線(ソース線、セグメント線)や走査線(ゲート線、コモン線)を駆動する。具体的には表示ドライバ22は、ホストデバイス10から受けたコマンドやパラメータ(広義にはデータ)に基づいて、表示パネル24の駆動条件(表示特性制御パラメータ)等を設定する。例えば表示データのフォーマット形式、表示ライン数、表示範囲、表示データの書き込み開始位置又は駆動方法などを設定する。そして表示ドライバ22は、ホストデバイス10から受けた表示データに基づいて、設定された駆動条件に従って表示パネル24のデータ線等を駆動する。
【0034】
なお図1では画像処理コントローラ30には、表示ドライバインターフェース(LCDインターフェース)が設けられていないが、これを設けるようにしてもよい。この場合には、例えばホストデバイス10の表示ドライバインターフェースに接続されたメイン用表示ドライバにより、メイン表示パネルを駆動する。そして画像処理コントローラ30の表示ドライバインターフェースに接続されたサブ用表示ドライバにより、サブ表示パネルを駆動する。或いは逆に、ホストデバイス10側でサブ表示パネルを駆動し、画像処理コントローラ30側でメイン表示パネルを駆動するようにしてもよい。
【0035】
画像処理コントローラ30は、カメラ20から入力されたカメラデータに対する画像処理を行う。この画像処理としては、カメラデータの画像サイズを表示パネル24のパネルサイズ(画面サイズ)に適合させるリサイズ処理や、カメラデータのフォーマットを変換する処理などがある。そして画像処理コントローラ30は画像処理後のカメラデータを、カメラバス(カメラインターフェース)を介してホストデバイス10に出力する。そして画像処理コントローラ30からのカメラデータは、例えばDMA転送などを利用して、メインメモリ26等を介して表示ドライバ22に転送される。そしてホストデバイス10は、表示ドライバ22を制御して、カメラ20で撮影された画像を表示パネル24に表示させる。
【0036】
また画像処理コントローラ30はホストバス(ホストインターフェース)を介してホストデバイス10に接続される。このホストバスには、例えば音声処理デバイス、操作インターフェースデバイスなどのその他のデバイス28が接続される。画像処理コントローラ30は、カメラデータの圧縮処理などの画像処理を行う。そしてカメラデータを圧縮することで得られたJPEGカメラデータ(広義には静止画圧縮カメラデータ)やMPEGカメラデータ(広義には動画圧縮カメラデータ)は、ホストバスを介してホストデバイス10に出力される。するとホストデバイス10は、このJPEGカメラデータやMPEGカメラデータを、ホストデバイス10に直結されたメモリバス(メモリインターフェース)を介してメインメモリ26に出力し、ファイルとして保存する。
【0037】
図2に本実施形態の比較例を示す。この比較例では、カメラ20から入力されたカメラデータは、画像処理コントローラ31により画像処理が施されて、ホストバス(ホストインターフェース)に出力される。そしてホストデバイス11は、このカメラデータをホストバスを介してメインメモリ26に保存する。またホストデバイス11は、画像処理コントローラ31からのカメラデータに応じた表示データを表示ドライバ22に出力する。そして表示ドライバ22を制御して、カメラ20で撮影された画像を表示パネル24に表示させる。
【0038】
しかしながらこの図2の比較例の手法では、画像処理コントローラ31からのカメラデータを、ホストバスを介してホストデバイス11がリードする処理が必要になり、このリード処理によりホストバスが占有されてしまう。このため、その他のデバイス28がホストバスを介して行う処理などが阻害されてしまい、ホストデバイス11で実行されるソフトウェア処理の非効率化などの問題を招く。
【0039】
これに対して図1の本実施形態では、ホストデバイス10が有するホスト側カメラ入力インターフェースを有効利用してカメラデータを転送している。即ち画像処理後のカメラデータは、高速なカメラバス(カメラインターフェース)を介して画像処理コントローラ30からホストデバイス10に転送され、表示パネル24に表示される。従って、表示用のカメラデータの転送のためにホストバスが占有されないため、その他のデバイス28が行う処理が阻害されてしまう事態を防止でき、ホストデバイス10の処理の効率化を図れる。
【0040】
また本実施形態では画像処理コントローラ30が、同期信号(垂直同期信号、水平同期信号)やカメラデータ信号などのカメラインターフェース信号のエミュレーション処理を行う。即ちカメラ20から出力されるカメラインターフェース信号に対応したエミュレーション・カメラインターフェース信号を、画像処理コントローラ30が生成して、ホストデバイス10に出力する。従って、あたかもホスト側のカメラ入力インターフェースにカメラ20が直結されているかのように、ホストデバイス10に認識させることが可能になる。従って、ホスト側のカメラ入力インターフェースにカメラ20を直結した場合と同様の処理で、カメラデータを表示パネル24に表示させることが可能になる。この結果、ホストデバイス10で実行されるソフトウェアの設計の容易化や処理負荷の低減等を図れる。
【0041】
2.構成例
図3に本実施形態の画像処理コントローラ30の構成例を示す。この画像処理コントローラ30はカメラ入力インターフェース40、画像処理部50、メモリ60、カメラ出力インターフェース70、ホストインターフェース80、レジスタ部90を含む。なお画像処理コントローラ30は図3の構成に限定されず、図3の回路ブロックの一部を省略したり、回路ブロック間の接続形態を変更したり、図3とは異なる回路ブロックを追加してもよい。
【0042】
カメラ入力インターフェース40は、カメラ20(イメージデバイス、撮像デバイス)からのカメラデータを入力するためのインターフェース(回路)である。具体的にはカメラ20からカメラインターフェース信号を受け、カメラデータを画像処理部50等に出力する。このカメラインターフェース信号は、垂直同期信号CMVREF、水平同期信号CMHREF、カメラデータ信号CMDAT、クロック信号CMCLKINなどを含むことができる。ここで信号CMVREF、CMHREFは、各々、垂直表示期間、水平表示期間を設定するための信号である。また信号CMDATは、例えば8ビット(或いは6〜24ビット)のカメラデータを伝達するための信号である。また信号CMCLKINは、信号CMDATの取り込み用(サンプリング用)のクロック信号である。この信号CMCLKINは、例えばカメラ入力インターフェース40からのマスタークロック信号MCLKに基づき生成できる。
【0043】
画像処理部50はカメラデータに対して種々の画像処理を行うものである。ここで画像処理部50で行われる画像処理としては、リサイズ処理、圧縮処理又は変換処理などがある。
【0044】
例えばリサイズ処理には、カメラデータを表示パネル24に表示するための表示用リサイズ処理と、カメラデータをファイルとして保存するためのキャプチャ用リサイズ処理がある。例えばカメラデータのサイズが1600×1200(水平方向の画素数が1600、垂直方向の画素数が1200)であり、表示パネル24のサイズが640×480(VGA)や320×240(QVGA)である場合には、表示用リサイズ処理によりカメラデータをリサイズ(縮小)する。またメモリの節約のためにカメラ画像を縮小して保存する場合には、キャプチャ用リサイズ処理によりカメラデータをリサイズする。
【0045】
また圧縮処理としては、JPEG(広義には静止画圧縮)、MPEG(広義には動画圧縮)などがある。また変換処理としては、YUV−YUV変換(例えばYUV422からYUV420への変換)、YUV−RGB変換、ガンマ補正、回転処理、或いはミラー(鏡像)処理などがある。
【0046】
メモリ60(バッファ、FIFO)はカメラデータを一時的に記憶するものであり、例えばSRAMなどにより構成できる。具体的にはメモリ60は、画像処理が行われたカメラデータを記憶する。例えば画像処理部50は、カメラ入力インターフェース40を介して入力されたカメラデータに画像処理を施し、画像処理後のカメラデータをメモリ60に書き込む。或いは画像処理部50は、メモリ60に記憶されたカメラデータを読み出し、画像処理を施して再度メモリ60に書き込む。
【0047】
カメラ出力インターフェース70は、メモリ60(FIFO)に記憶されたカメラデータを、ホストデバイス10のホスト側カメラ入力インターフェース12に出力する。具体的にはカメラ出力インターフェース70は、カメラ入力インターフェース40を介して入力される垂直同期信号CMVREF、水平同期信号CMHREFなどのエミュレーション処理を行い、エミュレーション・カメラインターフェース信号を生成する。このエミュレーション・カメラインターフェース信号の生成は、レジスタ部90のタイミング設定レジスタ92に設定されたタイミング情報(垂直表示期間設定信号、水平表示期間設定信号)に基づいて、エミュレーション信号ジェネレータ72が行う。
【0048】
例えばこのエミュレーション処理においては、カメラ出力インターフェース70が、画像処理部50でのリサイズ処理(表示用リサイズ処理)のリサイズ倍率に応じた長さに垂直表示期間(垂直アクティブ期間)、水平表示期間(水平アクティブ期間)の長さが設定されるエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成する。そして生成された信号ECMVREF、ECMHREFをカメラバスを介してホスト側カメラ入力インターフェース12(ホストデバイス10)に出力する。またカメラ出力インターフェース70は、カメラデータ信号CMDATに対応したエミュレーションカメラデータ信号ECMDATや、ECMDATの取り込み用(サンプリング用)のクロック信号ECMCLKOUTを、ホスト側カメラ入力インターフェース12に出力する。するとホストデバイス10の表示ドライバインターフェース14は、ECMDATに対応する表示データを表示ドライバ22に出力する。これにより、カメラ20により撮影された画像が表示パネル24に表示されるようになる。
【0049】
またカメラ出力インターフェース70は、カメラデータを表示パネル24に表示するための表示用(プレビュー用)リサイズ処理が画像処理部50により行われた場合には、表示用リサイズ処理が行われたカメラデータを、ホスト側カメラ入力インターフェース12に出力する。このようにすれば、ホストデバイス10の表示ドライバインターフェース14は、表示パネル24のパネルサイズに適合したカメラデータを、表示データとして表示ドライバ22に出力できるようになる。
【0050】
またカメラデータをファイルとして保存するためのキャプチャ用リサイズ処理が行われた場合には、このキャプチャ用リサイズ処理が行われたカメラデータについては、例えばホストインターフェース80がホストデバイス10に出力する。
【0051】
なお、キャプチャ用リサイズ処理が行われたカメラデータを、カメラ出力インターフェース70が出力するようにしてもよい。また画像処理部50によりカメラデータの圧縮処理が行われた場合に、カメラ出力インターフェース70が、圧縮カメラデータをホスト側カメラ入力インターフェース12に出力することも可能である。
【0052】
ホストインターフェース80は、ホストデバイス10との間のホストインターフェース処理を行うものである。具体的にはホストデバイス10との間でホストインターフェース信号のやり取りを行う。
【0053】
このホストインターフェース信号としては、チップセレクト信号CS、メモリアクセス/FIFOアクセス識別信号M/R、アドレス信号A[19:0]、データ信号D[15:0]、リード信号RD、ライト信号WR、ウェイト信号WAITなどがある。またシリアル転送用のチップセレクト信号SCS、シリアルクロック信号SCK、シリアル転送用のアドレス0信号A0、シリアルデータ信号SIなどを含むこともできる。
【0054】
なお図4にホストインターフェース信号のタイミングチャート例を示す。図4はタイプ80のホストインターフェース信号の例である。但し本実施形態のホストインターフェースは図4に限定されず、タイプ68やシリアル転送のホストインターフェースであってもよい。
【0055】
レジスタ部90は制御レジスタやステータスレジスタなどを含むものである。具体的にはレジスタ部90はタイミング設定レジスタ92、転送制御レジスタ94、リサイズ倍率設定レジスタ96、回転角度設定レジスタ97、ミラー表示レジスタ98を含む。
【0056】
ここでタイミング設定レジスタ92には、エミュレーション・カメラインターフェース信号を生成するためのタイミング情報が記憶される。具体的にはエミュレーション垂直同期信号やエミュレーション水平同期信号のタイミング(アクティブ期間)を設定するためのタイミング情報が記憶される。
【0057】
転送制御レジスタ94はカメラデータの転送制御のためのレジスタである。具体的には本実施形態では、ホストデバイス10から指示があったことを条件に、メモリ60に記憶された1画面分のカメラデータ(又は表示データ)をカメラ出力インターフェース70を介してホストデバイス10に転送するシングル転送モードが用意される。またカメラ入力インターフェース40にカメラデータが入力されたことを条件(垂直同期信号が非アクティブになったことを条件)に、画像処理部50、メモリ60、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に自動転送するオート転送モードが用意される。そしてこれらのシングル転送モードやオート転送モードは、ホストデバイス10がホストインターフェース80を介して転送制御レジスタ94に設定を行うことで実現される。例えばシングル転送モードを行う場合には、転送制御レジスタ94のシングル転送指示ビットにホストデバイス10が情報を設定する。またオート転送モードを行う場合には、転送制御レジスタ94のオート転送イネーブルビットにホストデバイス10が情報を設定する。
【0058】
リサイズ倍率設定レジスタ96は、画像処理部50で行われるリサイズ処理のリサイズ倍率が設定されるレジスタである。具体的にはホストデバイス10はホストインターフェース80を介して、リサイズ倍率設定レジスタ96に表示用リサイズ処理やキャプチャ用リサイズ処理のリサイズ倍率を設定する。すると画像処理部50は、このリサイズ倍率に基づいて、入力されたカメラデータに対してリサイズ処理を行う。
【0059】
回転角度設定レジスタ97は、画像処理部50で行われる回転処理の回転角度が設定されるレジスタである。またミラー表示レジスタ98は、画像処理部50で行われるミラー処理の指示(イネーブル、ディスエーブル)が設定されるレジスタである。具体的にはホストデバイス10はホストインターフェース80を介して、回転角度設定レジスタ97に回転処理の回転角度(0度、90度、180度、270度)を設定する。すると画像処理部50は、処理対象画像(カメラ画像)をその中心点を中心として、設定された回転角度だけ回転させた画像を生成するための処理を行う。またホストデバイス10はホストインターフェース80を介して、ミラー表示レジスタ98にミラー処理の指示を設定する。すると画像処理部50は、処理対象画像の鏡像であるミラー表示画像を生成するための処理を行う。
【0060】
3.エミュレーション処理
本実施形態ではカメラ出力インターフェース70が、カメラ20から入力されたカメラインターフェース信号のエミュレーション処理を行っている。例えば図5(A)(B)にエミュレーション・カメラインターフェース信号のタイミングチャート例を示す。
【0061】
図5(A)においてT1は垂直表示期間であり、T2は垂直ブランク期間である。またT3は水平表示期間であり、T4は水平ブランク期間である。別の言い方をすれば、T1は、エミュレーション垂直同期信号ECMVREFがアクティブになる期間であり、T2は、ECMVREFが非アクティブになる期間である。またT3は、エミュレーション水平同期信号ECMHREFがアクティブになる期間であり、T4は、ECMHREFが非アクティブになる期間である。このように図5(A)では、ECMVREF、ECMHREFにより、垂直表示期間T1、垂直ブランク期間T2、水平表示期間T3、水平ブランク期間T4の長さが設定されている。
【0062】
カメラデータ信号ECMDAT[7:0]は、ECMVREFがアクティブ(例えばハイレベル)であり且つECMHREFがアクティブである期間に、有効なデータとしてホストデバイス10に出力される。即ちECMDATは垂直表示期間であり且つ水平表示期間である場合に、有効なデータとしてホストデバイス10に出力される。このECMDATを受けたホストデバイス10は、図5(B)に示すように、クロック信号ECMCLKOUTのエッジ(例えば立ち上がりエッジ)でECMDATをサンプリングすることで、ECMDATを取り込むことができる。
【0063】
そして本実施形態では、画像処理部50でのリサイズ処理のリサイズ倍率(縮小率)に応じた長さに垂直表示期間T1、水平表示期間T3の長さが設定されるように、エミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成している。
【0064】
例えば図6(A)は表示パネル24に表示される画像のサイズがVGA(640×480)である場合のECMVREF、ECMHREFの波形例であり、図6(B)は画像サイズがQVGA(320×240)である場合の波形例である。図6(A)のVGAの場合のリサイズ倍率を1/Nとすると、図6(B)のQVGAの時のリサイズ倍率は1/4Nになる。そしてリサイズ倍率が1/Nである図6(A)では、期間T1の長さ(水平方向の画素数)は640になり、期間T3の長さ(垂直方向の画素数)は480になる。一方、リサイズ倍率が1/4Nである図6(B)では、期間T1の長さは320になり、期間T3の長さは240になる。即ちリサイズ倍率が小さくなるほど、垂直表示期間T1、水平表示期間T3の長さ(垂直同期信号、水平同期信号のアクティブ期間)が短くなるように、信号ECMVREF、ECMHREFが生成される。
【0065】
このようにすれば、リサイズ倍率に応じた適正な波形のエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを、ホストデバイス10に出力できるようになる。そしてホストデバイス10は、信号ECMVREF、ECMHREFに基づいてカメラデータの各画素データの表示位置を設定して、表示ドライバ22をカメラデータを転送するだけで済むため、ホストデバイス10の処理負荷の軽減化や処理の簡素化を図れる。
【0066】
なお期間T1〜T4の設定は、ホストデバイス10がホストインターフェース80を介して図3のタイミング設定レジスタ92に期間T1〜T4の情報を書き込むことにより実現できる。
【0067】
4.詳細な構成例
図7に本実施形態の画像処理コントローラ30の詳細な構成例を示す。なお図7の構成要素の一部を省略した構成にしてもよい。
【0068】
図7の表示用リサイザ102、キャプチャ用リサイザ112、変換部114、124、JPEGコーデック118、MPEGコーデック128は、図3の画像処理部50に含ませることができる。また表示用バッファ106、JPEGラインバッファ116、MPEGエンコード・デコードバッファ126、表示用FIFO110、JPEGFIFO120、MPEGFIFO130は、図3のメモリ60に含ませることができる。
【0069】
例えばカメラ20の撮影画像をプレビュー画像として表示パネル24に表示する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介して表示用リサイザ102に入力される。そして表示用リサイザ102は、カメラデータを表示パネルに表示するための表示用リサイズ処理を行う。そして表示用リサイズ処理が行われたカメラデータは、表示用バッファ106に書き込まれる。この表示用バッファ106は、例えば少なくとも1画面分のカメラデータ(表示データ)を記憶することができるフレームメモリとして機能する。表示用バッファ106に書き込まれたカメラデータは表示用バッファ106から読み出され、表示用FIFO(FirstInFirstOut)110に蓄積されて、カメラ出力インターフェース70を介してホストデバイス10に出力される。
【0070】
またカメラ20の撮影画像をキャプチャして、JPEG(静止画圧縮)ファイルとして保存する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介してキャプチャ用リサイザ112に入力される。そしてキャプチャ用リサイザ112は、カメラデータをJPEGファイルとして保存するためキャプチャ用リサイズ処理を行う。そしてキャプチャ用リサイズ処理が行われたカメラデータは、変換部114を介してJPEGラインバッファ116に書き込まれる。この変換部114では、例えばYUV422からYUV420へのフォーマット変換などが行われる。そしてJPEGコーデック118(広義には静止画コーデック)は、カメラデータに対して静止画圧縮処理を行う。即ちJPEGラインバッファ116に書き込まれたカメラデータのJPEG圧縮処理を行う。そして圧縮処理により得られたJPEGカメラデータ(広義には圧縮カメラデータ、静止画圧縮カメラデータ)は、JPEGFIFO120に蓄積されて、ホストインターフェース80を介してホストデバイス10に出力される。
【0071】
例えばカメラ20により被写体のプレビューを行っている状態では、図7の40、100、102、106、110、70の経路で、カメラデータがホストデバイス10に転送され、表示パネル24にカメラ撮影画像が表示される。一方、カメラ20のシャッタが押されて、カメラ撮影画像を保存する場合には、図7の40、100、112、114、116、118、120、80の経路で、カメラデータがホストデバイス10に転送され、JPEGカメラデータとして保存されることになる。
【0072】
このように図7では、表示用リサイザ102によりリサイズ処理が行われたカメラデータは、カメラ出力インターフェース70を介してホストデバイス10に出力される。一方、キャプチャ用リサイザ112によりリサイズ処理が行われて圧縮されたJPEGカメラデータは、ホストインターフェース80を介してホストデバイス10に出力される。
【0073】
即ちカメラ20のプレビュー画像を表示パネル24に表示する場合には、カメラ20からカメラデータが間断無く入力される。従って、この場合には、高速なカメラバスを介してホストデバイス10にカメラデータを転送することが望ましい。一方、カメラ20のキャプチャ画像であるカメラデータは、カメラのシャッタを押したタイミングで1回だけ転送すればよい。しかも、カメラデータはJPEGで圧縮されてそのサイズが小さくなっている。従って、この場合には、それほど高速ではないホストバスを介して、ホストデバイス10にカメラデータを転送することも可能になる。
【0074】
このように本実施形態では、カメラデータの利用態様に応じて、カメラデータの転送経路を変化させている。即ちカメラデータをプレビューとして表示パネル24に表示する利用態様の場合には、カメラ出力インターフェース70を介した経路でカメラデータをホストデバイス10に転送する。一方、カメラデータをJPEGファイル等として保存する利用態様の場合には、ホストインターフェース80を介した経路でカメラデータをホストデバイス10に転送する。このようにすれば、カメラデータの利用態様に応じた最適な転送経路でカメラデータをホストデバイス10に転送することが可能になり、転送効率を最適化できる。
【0075】
なお、カメラ20の撮影画像をMPEG(動画圧縮)ファイルとして保存する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介して表示用リサイザ102に入力される。そしてリサイズ処理が行われたカメラデータは、変換部124を介してMPEGエンコード・デコードバッファ126(コーデックバッファ)に書き込まれる。この変換部124では、例えばカメラデータの回転処理やミラー処理などが行われる。また変換部124はYUV422からYUV420へのフォーマット変換などを行うこともできる。またMPEGでは、表示する画像のサイズと保存する画像のサイズが、一般的に同じになるため、リサイズ処理は表示用リサイザ102により行われる。
【0076】
MPEGコーデック128(広義には動画コーデック)は、カメラデータに対して動画圧縮処理を行う。即ちMPEGエンコード・デコードバッファ126に書き込まれたカメラデータに対してMPEGの圧縮処理を行う。そして圧縮処理により得られたMPEGカメラデータ(広義には圧縮カメラデータ、動画圧縮カメラデータ)は、MPEGFIFO130に蓄積されて、ホストインターフェース80を介してホストデバイス10に出力される。
【0077】
5.バイパス回路
図7に示すように本実施形態では、入力されたカメラデータをホストデバイス10にバイパス転送するバイパス回路140を設けている。具体的にはバイパス回路140は、カメラ入力インターフェース40に入力されたカメラデータを、画像処理部50やメモリ60を介さずに、カメラ出力インターフェース70に出力する。
【0078】
即ち本実施形態では、表示用リサイザ102等によりカメラデータに対するリサイズ処理が行われる。しかしながら、カメラ20の利用態様によっては、撮影されたカメラデータを、リサイズ処理などの画像処理を施さずにそのまま利用する場合がある。例えばカメラ20によりバーコードを撮影し、バーコード情報を読み取るような利用態様も考えられる。この利用態様では、ホストデバイス10上で動作するソフトウェアがカメラデータを解析し、バーコード情報を読み取る。そしてこの場合には、カメラデータの解像度が高いほど、バーコード情報の読み取り精度が高くなるため、表示用リサイザ102によるリサイズ処理は行われないことが望ましい。
【0079】
そこで本実施形態では図7に示すようなバイパス回路140を設け、カメラ入力インターフェース40に入力されたカメラデータを、表示用リサイザ102等を介さずに、そのままカメラ出力インターフェース70を介してホストデバイス10に転送している。このようにすれば、ホストデバイス10のソフトウェアは、高解像度のカメラデータに基づいてバーコード情報等を解析して読み出すことが可能になり、利便性を向上できる。
【0080】
しかも、カメラバスはホストデバイスに比べて高速なバスである。またリサイズ処理が行われないカメラデータのサイズは大きい。従って本実施形態によれば、このような大きなサイズのカメラデータを、高速なカメラバスを介してホストデバイス10に転送できるため、転送効率を向上できる。
【0081】
図8にバイパス回路140の構成例を示す。信号CMVREF、CMHREF、CMDATは、クロック信号CMCLKINに基づきフリップフロップDFF1、DFF2、DFF3によりサンプリングされ、信号ECMVREF、ECMHREF、ECMDATとしてホストデバイス10に出力される。このようにフリップフロップDFF1、DFF2、DFF3により信号をサンプリングすることで、信号のAC特性を改善できる。
【0082】
なおセレクタSEL1〜SEL4は、信号レベルやエッジの極性反転のためのセレクタである。例えば選択信号SS1、SS2を用いてDFF1、DFF2の反転出力XQを選択すれば、CMVREF、CMHREFの信号レベルの極性を反転して、ECMVREF、ECMHREFとして出力できる。また選択信号SS3が入力されるセレクタSEL3を用いれば、クロック信号CMCLKINによるサンプリングのエッジ極性を切り替えることができる。また選択信号SS4が入力されるセレクタSEL4を用いれば、CMCLKINの信号レベルの極性を反転して、ECMCLKOUTとして出力できる。
【0083】
なお図8では、フリップフロップDFF1、DFF2、DFF3により信号をサンプリングする構成を採用しているが、DFF1、DFF2、DFF3やセレクタSEL1〜4などを設けない構成としてもよい。この場合には、バイパス回路140は、単なるバッファとしての機能を持てばよい。即ち信号CMVREF、CMHREF、CMDAT、CMCLKINを、バッファ回路によりバッファリングし、ECMVREF、ECMHREF、ECMDAT、ECMCLKOUTとしてホストデバイス10に出力すればよい。
【0084】
6.変形例
図9に本実施形態の変形例を示す。図7では、JPEGにより圧縮されたJPEGカメラデータはホストインターフェース80を介してホストデバイス10に出力される。これに対して図9では、JPEGカメラデータはカメラ出力インターフェース70を介してホストデバイス10に出力される。即ち図9のJPEGコーデック118(広義にコーデック)は、カメラデータに対して圧縮処理を行う。そしてカメラ出力インターフェース70は、圧縮処理により得られた圧縮カメラデータをホストデバイス10に出力する。
【0085】
前述のように、カメラ20の撮影画像を表示パネル24にプレビューで表示する場合には、カメラデータを間断なく転送する必要があるため、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に出力することが望ましい。
【0086】
一方、JPEGカメラデータについては、プレビュー用カメラデータのように間断なく転送する必要はないため、図7ではカメラ出力インターフェース70を介してホストデバイス10に出力している。
【0087】
しかしながら、JPEGカメラデータでは、キャプチャ用リサイザ112でのリサイズ倍率が等倍になることもあり、1画面分(1フレーム分)のカメラデータサイズで比べると、プレビュー用のカメラデータよりも一般的にサイズが大きい。
【0088】
そこで図9では、このJPEGカメラデータについては、ホストインターフェース80ではなく、カメラ出力インターフェース70を介してホストデバイス10に出力している。そしてホストデバイス10は、ホスト側カメラ入力インターフェース12を介して入力されたJPEGカメラデータを、メインメモリ26にJPEGファイルとして保存する。このようにすれば、JPEGカメラデータの転送のためにホストバスが占有されてホストデバイス10の処理効率が低下するなどの事態を防止できる。
【0089】
なお図9では、JPEG(静止画圧縮)のカメラデータについては、カメラ出力インターフェース70を介してホストデバイス10に出力する一方で、MPEG(動画圧縮)のカメラデータについては、ホストインターフェース80を介してホストデバイス10に出力している。
【0090】
即ち前述のように、JPEGカメラデータでは、キャプチャ用リサイザ112でのリサイズ倍率が等倍になることもあり、1画面分のカメラデータサイズが一般的に大きい。これに対してMPEGカメラデータは、そのサイズが例えばQVGAやQCIFに設定され、プレビュー用カメラデータと同様に表示用リサイザ102によりリサイズされる。従って、MPEGカメラデータは、1画面分のカメラデータサイズで比べると、JPEGカメラデータに比べてサイズが小さい。
【0091】
またMPEGのコーデックは、ハードウェア回路とソフトウェアで分担して処理することが望ましい。例えばDCT(離散コサイン変換)、量子化、逆量子化、逆DCT、動き補償、或いは動き検出などの処理は、ハードウェア回路であるMPEGコーデック128が行う。一方、DC予測、スキャニング、或いはVLC符号化(可変長符号化)などの処理は、ホストデバイス10上で動作するソフトウェアが行う。このようにすることで、MPEGのコーデック処理の効率化を図れる。
【0092】
そしてこのようにMPEGのコーデックをハードウェア回路とソフトウェアで分担して処理する場合には、MPEGのカメラデータについては、ホストインターフェース80を介してホストデバイス10に出力することが望ましい。即ちMPEGコーデック128によるハードウェア・コーデック処理(DCT、量子化、逆量子化、逆DCT、動き補償、動き検出)が施された後のカメラデータを、MPEGFIFO130に書き込み、ホストインターフェース80を介してホストデバイス10に出力する。こうすれば、ホストデバイス10上で動作するソフトウェアがハードウェア・コーデック処理後のカメラデータを受け取り、ソフトウェア・コーデック処理(DC予測、スキャニング、VLC符号化)を施すという一連の処理を、スムーズに行うことが可能になる。
【0093】
7.回転、ミラー処理
携帯電話機に対するカメラ20(CCD)の実装形態は様々である。従って、カメラ20での撮影イメージと、表示パネル24での表示イメージが一致しない場合がある。従って、これらを一致させるために、カメラ20からのカメラデータに対して回転処理やミラー処理を行うことが望まれる。例えば図10のA1に示すカメラ20の撮影イメージと、A3に示す表示パネル24での表示イメージは一致していない。従ってA1の画像をA3に示すように90度回転させる処理が必要になる。またカメラ20の実装形態によっては、90度以外の回転処理やミラー処理(鏡像処理)が必要な場合もある。
【0094】
このために本実施形態では図7に示すように、カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部124を設けている。そして動画カメラデータについては、図10のA2に示すように、変換部114により回転処理及びミラー処理の少なくとも一方が行われた後に、MPEGエンコード・デコードバッファ126(広義にはメモリ)に書き込まれる。そして書き込まれた動画カメラデータに対して、MPEGコーデック128(動画エンコーダ)が動画圧縮処理を行い、得られたMPEGカメラデータが、ホストインターフェース80などを介してホストデバイス10に出力される。そしてA3に示すように、MPEGファイルとして保存されたり、デコードされて表示パネル24に表示される。
【0095】
一方、静止画カメラデータについては、図10のA4に示すように、回転処理やミラー処理を行わずにJPEGラインバッファ116(メモリ)に書き込まれる。そして書き込まれたカメラデータに対して、JPEGコーデック118(静止画エンコーダ)が静止画圧縮処理を行い、得られたJPEGカメラデータが、ホストインターフェース80(又はカメラ出力インターフェース70)を介してホストデバイス10に出力される。すると図10のA5に示すように、JPEGカメラデータはメインメモリ26に一旦保存され、A6に示すように、ホストデバイス10上で動作するソフトウェアにより回転処理やミラー処理が施される。またA7に示すように表示パネル24に表示される。
【0096】
JPEGカメラデータは、フレーム単位のデータであるため、図10のA5、A6に示すようにソフトウェア処理により回転処理やミラー処理を行うことは容易である。これに対してMPEGカメラデータは、例えば15FPSの速度で途切れることなく生成したり再生したりする必要がある。従って図10のA5、A6に示すようにメインメモリから読み出す際にソフトウェア処理により回転処理やミラー処理を行うのは難しい。またMPEGエンコードの際に回転処理やミラー処理を行うのも難しい。
【0097】
そこで本実施形態では図10に示すように、動画カメラデータについては、メモリ(MPEGエンコード・デコードバッファ)に書き込む前に回転処理やミラー処理を行う。そしてメモリに書き込まれた回転処理・ミラー処理後の動画カメラデータに対して動画圧縮処理を行い、得られたMPEGカメラデータをファイルとして保存したり、デコードして表示パネル24に表示する。
【0098】
このようにすれば、図10のA5、A6に示すようにソフトウェア処理により回転処理やミラー処理を行わなくても済むようになる。そしてカメラ20の実装形態が原因で撮影イメージと表示イメージが一致しない場合であっても、これらが一致するように、動画カメラデータに対して回転処理やミラー処理を施すことが可能になる。
【0099】
なお、ここで回転処理とは、処理対象画像(カメラ画像)の向きを処理対象画像の中心点を中心に0度、90度、180度、270度というように回転させた画像を生成するための処理である。またミラー処理とは、処理対象画像の鏡像(処理対象画像に対面するミラーに映る画像)であるミラー表示画像を生成するための処理である。例えば回転処理やミラー処理を行う場合には、ホストデバイス10が、図3の回転角度設定レジスタ97、ミラー表示設定レジスタ98に対して、ホストデバイス10が回転角度やミラー表示指示を行う。すると画像処理部50(変換部114)が、その回転角度に応じた回転処理や、ミラー表示指示に従ったミラー処理を行う。具体的には画像処理部50(変換部114)は、メモリ60(MPEGエンコード・デコードバッファ)への書き込みアドレスを制御することで、回転処理やミラー処理を実現する。
【0100】
8.オート転送モード
本実施形態ではカメラデータの転送モードとしてシングル転送モードとオート転送モードを用意している。
【0101】
ここでシングル転送モードでは、ホストデバイス10から指示があったことを条件に、図3のメモリ60に記憶された1画面分のカメラデータ(或いはカメラデータ以外の表示データ)をカメラ出力インターフェース70を介してホストデバイス10に転送するモードである。図7を例にとれば、ホストデバイス10がホストインターフェース80を介してシングル転送を指示すると、表示用バッファ106(フレームメモリ)に記憶された1画面分のカメラデータ(又は表示データ)が、表示用FIFO110、カメラ出力インターフェース70を介してホストデバイス10に転送される。
【0102】
一方、オート転送モードは、カメラ入力インターフェース40にカメラデータが入力されたことを条件に、画像処理部50、メモリ60、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に自動転送するモードである。図7を例にとれば、カメラ入力インターフェース40に入力される垂直同期信号が非アクティブになる毎(垂直表示期間が終了する毎)に、表示用バッファ106に書き込まれたカメラデータが、表示用FIFO110、カメラ出力インターフェース70を介してホストデバイス10に自動転送される。
【0103】
このオート転送モードを利用すれば、カメラの撮影画像のプレビュー表示等を更にスムーズに行うことが可能になる。即ちホストデバイス10は、図3の転送制御レジスタ94にオート転送モードのイネーブルを設定する。すると画像処理コントローラ30のハードウエア回路は、カメラ20からの垂直同期信号が非アクティブ(例えばローレベル)になり、垂直表示期間が終了する毎に、その垂直表示期間において表示用バッファ106に書き込まれた1画面分のカメラデータを読み出す。そして表示用バッファ106から読み出されたカメラデータを、カメラ出力インターフェース70を介してホストデバイス10に出力する。このようにして読み出されたカメラデータの画像は、表示パネル24にプレビュー表示される。そしてホストデバイス10が、図3の転送制御レジスタ94にオート転送モードのディスエーブルを設定すると、オート転送モードが終了し、プレビュー表示も終了するようになる。
【0104】
例えばシングル転送モードを利用してプレビュー表示を実現しようとすると、表示用バッファ106に1画面分のカメラデータが書き込まれる毎に、ホストデバイス10がシングル転送の指示を行う必要があり、ホストデバイス10の処理負荷が過大になる。
【0105】
これに対してオート転送モードでは、ホストデバイス10がオート転送モードのイネーブルを設定した後は、ホストデバイス10の介在がなくても、カメラ20から取り込まれたカメラデータが、リサイズ処理などが施されて自動的にホストデバイス10に転送される。従って、ホストデバイス10(ファームウェア)は、オート転送モードのイネーブルを設定した後は他の処理を行うことが可能になり、ホストデバイス10の処理効率を向上できる。
【0106】
図11、図12に、シングル転送モード時やオート転送モード時のホストデバイス10の処理フローを示す。
【0107】
図11のシングル転送モードでは、ホストデバイス10は、表示ドライバインターフェースのステータスがBUSYか否かを判断し、BUSYでない場合には、シングル転送の指示を転送制御レジスタ94に設定する(ステップS1、S2)。すると、1画面分のカメラデータがホストデバイス10に転送され、シングル転送が終了する(ステップS3、S4)。
【0108】
図12のオート転送モードでは、ホストデバイス10は、表示ドライバインターフェースのステータスがBUSYか否かを判断し(ステップS11)、BUSYでない場合には、オート転送のイネーブルを転送制御レジスタ94に設定する(ステップS12)。すると、表示パネルへの表示(プレビュー表示)が終了するまで、1画面分のカメラデータが入力される毎に、そのカメラデータがホストデバイス10に転送される(ステップS13、S14)。そして表示パネルへの表示を終了させる場合には、ホストデバイス10は、オート転送のディスエーブルを転送制御レジスタ94に設定する(ステップS15)。そして表示ドライバインターフェースのステータスがBUSYか否かを判断した後、オート転送が終了する(ステップS16、S17)。
【0109】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(静止画圧縮、動画圧縮等)と共に記載された用語(JPEG、MPEG等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【0110】
また画像処理コントローラや電子機器の構成や動作も本実施形態で説明した構成や動作に限定に限定されず、種々の変形実施が可能である。またカメラデータの転送手法、リサイズ手法、圧縮手法等も本実施形態で説明した手法に限定されない。
【図面の簡単な説明】
【0111】
【図1】本実施形態の画像処理コントローラを含む電子機器の構成例。
【図2】比較例の構成例。
【図3】本実施形態の画像処理コントローラの構成例。
【図4】ホストインターフェース信号の説明図。
【図5】図5(A)(B)はカメラインターフェース信号のエミュレーション処理の説明図。
【図6】カメラインターフェース信号のエミュレーション処理の説明図。
【図7】本実施形態の画像処理コントローラの詳細な構成例。
【図8】バイパス回路の構成例。
【図9】本実施形態の変形例。
【図10】回転・ミラー処理に関する本実施形態の手法の説明図。
【図11】シングル転送モード時のフロー図。
【図12】オート転送モード時のフロー図。
【符号の説明】
【0112】
10 ホストデバイス、12 ホスト側カメラ入力インターフェース、
14 表示ドライバインターフェース、20 カメラ、22 表示ドライバ、
24 表示パネル、26 メインメモリ、28 その他のデバイス、
30 画像処理コントローラ、40 カメラ入力インターフェース、
50 画像処理部、60 メモリ、70 カメラ出力インターフェース、
72 信号ジェネレータ、80 ホストインターフェース、90 レジスタ部、
92 タイミング設定レジスタ、94 転送制御レジスタ、
96 リサイズ倍率設定レジスタ、97 回転角度設定レジスタ、
98 ミラー表示設定レジスタ、100 デマルチプレクサ、102 表示用リサイザ、
106 表示用バッファ、110 表示用FIFO、112 キャプチャ用リサイザ、
114 変換部、116 JPEGラインバッファ、118 JPEGコーデック、
120 JPEGFIFO、124 変換部、
126 MPEGエンコード・デコードバッファ、128 MPEGコーデック、
130 MPEGFIFO
【技術分野】
【0001】
本発明は、画像処理コントローラ及び電子機器に関する。
【背景技術】
【0002】
近年の携帯電話機は、CCDやCMOSなどのカメラ(イメージセンサ、カメラモジュール)を内蔵している。このようにカメラを内蔵すれば、カメラにより撮影した画像を、LCDなどの表示パネルに表示したり、ファイルとして保存することが可能になる。そしてカメラにより撮影した画像を表示パネルに表示したり、ファイルとして保存するためには、画像サイズを表示パネルサイズに適合させるためのリサイズ処理や、ファイルサイズを小さくするための圧縮処理などの画像処理を、カメラデータに対して施すことが望ましい。
【0003】
このようなカメラデータへの画像処理を実現する手法として、カメラとホストデバイス(MPU、ベースバンドエンジン)の間に画像処理コントローラを介在させ、この画像処理コントローラによりカメラデータに画像処理を施し、ホストバス(ホストインターフェース)を介してホストデバイスに転送する手法が考えられる。
【0004】
しかしながらこの手法では、ホストデバイスがホストバスを介してカメラデータをリードする処理が必要になり、このリード処理によりホストバスが占有されてしまう。このため、ホストバスを使用する他の処理が阻害されてしまい、ホストデバイスによるプログラム実行などの処理速度が低下する。またカメラからのカメラデータの入力速度が、ホストデバイスによるカメラデータのリード速度よりも速い場合には、画像処理コントローラ内に設けられるFIFOにオーバーフローが生じ、データが紛失してしまうおそれもある。
【特許文献1】特開2000−206941号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、カメラからのカメラデータを効率良くホストデバイスに転送できる画像処理コントローラ及びこれを含む電子機器を提供することにある。
【課題を解決するための手段】
【0006】
本発明は、カメラデータが入力されるカメラ入力インターフェースと、カメラデータに対して画像処理を行う画像処理部と、画像処理が行われたカメラデータを記憶するメモリと、ホストデバイスとの間のホストインターフェース処理を行うホストインターフェースと、前記メモリに記憶されたカメラデータを、前記ホストデバイスのホスト側カメラ入力インターフェースに出力するカメラ出力インターフェースとを含む画像処理コントローラに関係する。
【0007】
本発明によれば、カメラ入力インターフェースにカメラデータが入力されると、カメラデータに画像処理が行われてメモリに記憶される。そしてメモリに記憶されたカメラデータは、カメラ出力インターフェースを介してホストデバイスのホスト側カメラ入力インターフェースに出力される。またホストデバイスとの間では、ホストインターフェースを介してホストインターフェース処理が行われる。このようにすれば、カメラ入力インターフェースに入力されたカメラデータに画像処理を施して、ホストデバイスに転送することが可能になり、ホストデバイスの処理負荷を軽減できる。またカメラデータをホストインターフェースのホストバスを利用して転送しなくても済むため、カメラデータの転送のためにホストバスが占有されてしまう事態を防止でき、ホストデバイスの処理の効率化等を図れる。
【0008】
また本発明では、前記画像処理部は、カメラデータに対してリサイズ処理を行うリサイザを含み、前記カメラ出力インターフェースは、前記カメラ入力インターフェースを介して入力される垂直同期信号、水平同期信号のエミュレーション処理を行い、前記エミュレーション処理においては、前記リサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号、エミュレーション水平同期信号を生成して、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0009】
このようにすれば、リサイズ倍率に応じた適正なエミュレーション垂直同期信号、エミュレーション水平同期信号をホストデバイスに出力できるようになり、ホストデバイスの処理の簡素化等を図れる。
【0010】
また本発明では、前記ホストデバイスは、表示パネルを駆動する表示ドライバとの間のインターフェース処理を行う表示ドライバインターフェースを含み、前記画像処理部は、カメラデータを前記表示パネルに表示するためのリサイズ処理を行う表示用リサイザを含み、前記カメラ出力インターフェースは、前記表示用リサイザによりリサイズ処理が行われたカメラデータを、前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0011】
このようにすれば、表示パネルのパネルサイズに応じたサイズにリサイズされたカメラデータを、カメラ出力インターフェースを介してホストデバイスに出力することが可能になる。
【0012】
また本発明では、前記画像処理部は、カメラデータをファイルとして保存するためのリサイズ処理を行うキャプチャ用リサイザを含み、前記ホストインターフェースは、前記キャプチャ用リサイザによりリサイズ処理が行われたカメラデータを、前記ホストデバイスに出力するようにしてもよい。
【0013】
このようにすれば、ファイルの保存サイズに応じたサイズにリサイズされたカメラデータを、ホストインターフェースを介してホストデバイスに出力することが可能になる。
【0014】
また本発明では、前記カメラ入力インターフェースに入力されたカメラデータを、前記画像処理部及び前記メモリを介さずに前記カメラ出力インターフェースに出力するバイパス回路を含むようにしてもよい。
【0015】
このようにすれば、カメラ入力インターフェースに入力されたカメラデータを、画像処理を施さずに、そのままホストデバイスにバイパス転送できるようになり、利便性を向上できる。
【0016】
また本発明では、前記画像処理部は、カメラデータに対して圧縮処理を行うコーデックを含み、前記カメラ出力インターフェースは、前記コーデックにより圧縮処理が行われた圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力するようにしてもよい。
【0017】
このようにすれば、圧縮カメラデータの転送によりホストバスが占有されてホストデバイスの処理が非効率化する事態を防止できる。
【0018】
また本発明では、前記画像処理部は、カメラデータに対して静止画圧縮処理を静止画コーデックと、カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、前記カメラ出力インターフェースは、前記静止画コーデックにより静止画圧縮処理が行われた静止画圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力し、前記ホストインターフェースは、前記動画コーデックにより動画圧縮処理が行われた動画圧縮カメラデータを、前記ホストデバイスに出力するようにしてもよい。
【0019】
このようにすれば、カメラデータの利用態様に応じた最適な転送経路でカメラデータをホストデバイスに転送することが可能になり、転送効率を最適化できる。
【0020】
また本発明では、前記画像処理部は、カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部と、カメラデータに対して静止画圧縮処理を静止画コーデックと、カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、動画カメラデータについては、前記変換部により前記回転処理及び前記ミラー処理の少なくとも一方が行われた後に前記メモリに書き込まれ、前記動画コーデックにより動画圧縮処理が行われて前記ホストデバイスに出力され、静止画カメラデータについては、前記変換部による前記回転処理、前記ミラー処理が行われずに前記メモリに書き込まれ、前記静止画コーデックにより静止画圧縮処理が行われて前記ホストデバイスに出力されるようにしてもよい。
【0021】
このようにすれば、例えばカメラの実装形態等が原因で撮影イメージと表示イメージが一致しない場合等であっても、これらが一致するように、動画カメラデータに対して回転処理やミラー処理を施すことが可能になる。
【0022】
また本発明では、オート転送モードでは、前記カメラ入力インターフェースにカメラデータが入力されたことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送するようにしてもよい。
【0023】
このようにすれば、ホストデバイスへのカメラデータの転送を更に効率化できる。
【0024】
また本発明では、前記オート転送モードでは、前記カメラ入力インターフェースに入力される垂直同期信号が非アクティブになったことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送するようにしてもよい。
【0025】
また本発明では、シングル転送モードでは、前記ホストデバイスから指示があったことを条件に、前記メモリに記憶された1画面分のカメラデータを前記カメラ出力インターフェースを介して前記ホストデバイスに転送するようにしてもよい。
【0026】
また本発明は、上記のいずれかの画像処理コントローラと、前記画像処理コントローラにカメラデータを出力するカメラと、前記ホストデバイスとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0028】
1.電子機器
図1に、本実施形態の画像処理コントローラ30を含む電子機器の一例を示す。なお電子機器は図1に示されるもの以外の構成要素(例えば操作部又は電源回路等)を含んでもよい。また本実施形態の電子機器は携帯電話機には限定されず、携帯型情報端末、携帯型オーディオ機器などであってもよい。
【0029】
図1においてホストデバイス10は、例えばMPU(Micro Processor Unit)、ベースバンドエンジン(ベースバンドプロセッサ)などである。このホストデバイス10(ホストプロセッサ)は表示ドライバインターフェースを有し、表示パネル24を駆動する表示ドライバ22(LCD)を制御する。またホストデバイス10はホスト側カメラ入力インターフェースを有し、カメラからのカメラデータを入力することができる。またホストデバイス10は、アプリケーションエンジンやベースバンドエンジンとしての処理や、グラフィックエンジンとしての処理を行うこともできる。
【0030】
なおホストデバイス10と表示ドライバ22の間は、高速シリアルインターフェースにより接続することができる。この高速シリアルインターフェースでは、小振幅の差動信号(LVDS)を用いてデータやストローブ(クロック)が転送される。
【0031】
カメラ20(カメラモジュール)は、CCDやCMOSなどのイメージセンサにより構成される。このカメラ20は、イメージセンサの他に、カメラデータを出力するカメラ出力インターフェースや、イメージセンサを駆動する駆動回路などを含むことができる。
【0032】
表示パネル24は、複数のデータ線(信号線)と、複数の走査線と、データ線及び走査線により特定される複数の画素を有する。そして各画素領域における電気光学素子(狭義には、液晶素子)の光学特性を変化させることで、表示動作を実現する。この表示パネル24としては、例えば薄膜トランジスタ(Thin Film Transistor:TFT)や薄膜ダイオード(Thin Film Diode:TFD)などのスイッチング素子(2端子型非線形素子)を用いたアクティブマトリクス方式のパネルを採用できる。或いは表示パネル24として、単純マトリクス方式のパネルを採用したり、液晶パネル以外のパネル(例えば有機ELパネル)を採用してもよい。
【0033】
表示ドライバ22は表示パネル24のデータ線(ソース線、セグメント線)や走査線(ゲート線、コモン線)を駆動する。具体的には表示ドライバ22は、ホストデバイス10から受けたコマンドやパラメータ(広義にはデータ)に基づいて、表示パネル24の駆動条件(表示特性制御パラメータ)等を設定する。例えば表示データのフォーマット形式、表示ライン数、表示範囲、表示データの書き込み開始位置又は駆動方法などを設定する。そして表示ドライバ22は、ホストデバイス10から受けた表示データに基づいて、設定された駆動条件に従って表示パネル24のデータ線等を駆動する。
【0034】
なお図1では画像処理コントローラ30には、表示ドライバインターフェース(LCDインターフェース)が設けられていないが、これを設けるようにしてもよい。この場合には、例えばホストデバイス10の表示ドライバインターフェースに接続されたメイン用表示ドライバにより、メイン表示パネルを駆動する。そして画像処理コントローラ30の表示ドライバインターフェースに接続されたサブ用表示ドライバにより、サブ表示パネルを駆動する。或いは逆に、ホストデバイス10側でサブ表示パネルを駆動し、画像処理コントローラ30側でメイン表示パネルを駆動するようにしてもよい。
【0035】
画像処理コントローラ30は、カメラ20から入力されたカメラデータに対する画像処理を行う。この画像処理としては、カメラデータの画像サイズを表示パネル24のパネルサイズ(画面サイズ)に適合させるリサイズ処理や、カメラデータのフォーマットを変換する処理などがある。そして画像処理コントローラ30は画像処理後のカメラデータを、カメラバス(カメラインターフェース)を介してホストデバイス10に出力する。そして画像処理コントローラ30からのカメラデータは、例えばDMA転送などを利用して、メインメモリ26等を介して表示ドライバ22に転送される。そしてホストデバイス10は、表示ドライバ22を制御して、カメラ20で撮影された画像を表示パネル24に表示させる。
【0036】
また画像処理コントローラ30はホストバス(ホストインターフェース)を介してホストデバイス10に接続される。このホストバスには、例えば音声処理デバイス、操作インターフェースデバイスなどのその他のデバイス28が接続される。画像処理コントローラ30は、カメラデータの圧縮処理などの画像処理を行う。そしてカメラデータを圧縮することで得られたJPEGカメラデータ(広義には静止画圧縮カメラデータ)やMPEGカメラデータ(広義には動画圧縮カメラデータ)は、ホストバスを介してホストデバイス10に出力される。するとホストデバイス10は、このJPEGカメラデータやMPEGカメラデータを、ホストデバイス10に直結されたメモリバス(メモリインターフェース)を介してメインメモリ26に出力し、ファイルとして保存する。
【0037】
図2に本実施形態の比較例を示す。この比較例では、カメラ20から入力されたカメラデータは、画像処理コントローラ31により画像処理が施されて、ホストバス(ホストインターフェース)に出力される。そしてホストデバイス11は、このカメラデータをホストバスを介してメインメモリ26に保存する。またホストデバイス11は、画像処理コントローラ31からのカメラデータに応じた表示データを表示ドライバ22に出力する。そして表示ドライバ22を制御して、カメラ20で撮影された画像を表示パネル24に表示させる。
【0038】
しかしながらこの図2の比較例の手法では、画像処理コントローラ31からのカメラデータを、ホストバスを介してホストデバイス11がリードする処理が必要になり、このリード処理によりホストバスが占有されてしまう。このため、その他のデバイス28がホストバスを介して行う処理などが阻害されてしまい、ホストデバイス11で実行されるソフトウェア処理の非効率化などの問題を招く。
【0039】
これに対して図1の本実施形態では、ホストデバイス10が有するホスト側カメラ入力インターフェースを有効利用してカメラデータを転送している。即ち画像処理後のカメラデータは、高速なカメラバス(カメラインターフェース)を介して画像処理コントローラ30からホストデバイス10に転送され、表示パネル24に表示される。従って、表示用のカメラデータの転送のためにホストバスが占有されないため、その他のデバイス28が行う処理が阻害されてしまう事態を防止でき、ホストデバイス10の処理の効率化を図れる。
【0040】
また本実施形態では画像処理コントローラ30が、同期信号(垂直同期信号、水平同期信号)やカメラデータ信号などのカメラインターフェース信号のエミュレーション処理を行う。即ちカメラ20から出力されるカメラインターフェース信号に対応したエミュレーション・カメラインターフェース信号を、画像処理コントローラ30が生成して、ホストデバイス10に出力する。従って、あたかもホスト側のカメラ入力インターフェースにカメラ20が直結されているかのように、ホストデバイス10に認識させることが可能になる。従って、ホスト側のカメラ入力インターフェースにカメラ20を直結した場合と同様の処理で、カメラデータを表示パネル24に表示させることが可能になる。この結果、ホストデバイス10で実行されるソフトウェアの設計の容易化や処理負荷の低減等を図れる。
【0041】
2.構成例
図3に本実施形態の画像処理コントローラ30の構成例を示す。この画像処理コントローラ30はカメラ入力インターフェース40、画像処理部50、メモリ60、カメラ出力インターフェース70、ホストインターフェース80、レジスタ部90を含む。なお画像処理コントローラ30は図3の構成に限定されず、図3の回路ブロックの一部を省略したり、回路ブロック間の接続形態を変更したり、図3とは異なる回路ブロックを追加してもよい。
【0042】
カメラ入力インターフェース40は、カメラ20(イメージデバイス、撮像デバイス)からのカメラデータを入力するためのインターフェース(回路)である。具体的にはカメラ20からカメラインターフェース信号を受け、カメラデータを画像処理部50等に出力する。このカメラインターフェース信号は、垂直同期信号CMVREF、水平同期信号CMHREF、カメラデータ信号CMDAT、クロック信号CMCLKINなどを含むことができる。ここで信号CMVREF、CMHREFは、各々、垂直表示期間、水平表示期間を設定するための信号である。また信号CMDATは、例えば8ビット(或いは6〜24ビット)のカメラデータを伝達するための信号である。また信号CMCLKINは、信号CMDATの取り込み用(サンプリング用)のクロック信号である。この信号CMCLKINは、例えばカメラ入力インターフェース40からのマスタークロック信号MCLKに基づき生成できる。
【0043】
画像処理部50はカメラデータに対して種々の画像処理を行うものである。ここで画像処理部50で行われる画像処理としては、リサイズ処理、圧縮処理又は変換処理などがある。
【0044】
例えばリサイズ処理には、カメラデータを表示パネル24に表示するための表示用リサイズ処理と、カメラデータをファイルとして保存するためのキャプチャ用リサイズ処理がある。例えばカメラデータのサイズが1600×1200(水平方向の画素数が1600、垂直方向の画素数が1200)であり、表示パネル24のサイズが640×480(VGA)や320×240(QVGA)である場合には、表示用リサイズ処理によりカメラデータをリサイズ(縮小)する。またメモリの節約のためにカメラ画像を縮小して保存する場合には、キャプチャ用リサイズ処理によりカメラデータをリサイズする。
【0045】
また圧縮処理としては、JPEG(広義には静止画圧縮)、MPEG(広義には動画圧縮)などがある。また変換処理としては、YUV−YUV変換(例えばYUV422からYUV420への変換)、YUV−RGB変換、ガンマ補正、回転処理、或いはミラー(鏡像)処理などがある。
【0046】
メモリ60(バッファ、FIFO)はカメラデータを一時的に記憶するものであり、例えばSRAMなどにより構成できる。具体的にはメモリ60は、画像処理が行われたカメラデータを記憶する。例えば画像処理部50は、カメラ入力インターフェース40を介して入力されたカメラデータに画像処理を施し、画像処理後のカメラデータをメモリ60に書き込む。或いは画像処理部50は、メモリ60に記憶されたカメラデータを読み出し、画像処理を施して再度メモリ60に書き込む。
【0047】
カメラ出力インターフェース70は、メモリ60(FIFO)に記憶されたカメラデータを、ホストデバイス10のホスト側カメラ入力インターフェース12に出力する。具体的にはカメラ出力インターフェース70は、カメラ入力インターフェース40を介して入力される垂直同期信号CMVREF、水平同期信号CMHREFなどのエミュレーション処理を行い、エミュレーション・カメラインターフェース信号を生成する。このエミュレーション・カメラインターフェース信号の生成は、レジスタ部90のタイミング設定レジスタ92に設定されたタイミング情報(垂直表示期間設定信号、水平表示期間設定信号)に基づいて、エミュレーション信号ジェネレータ72が行う。
【0048】
例えばこのエミュレーション処理においては、カメラ出力インターフェース70が、画像処理部50でのリサイズ処理(表示用リサイズ処理)のリサイズ倍率に応じた長さに垂直表示期間(垂直アクティブ期間)、水平表示期間(水平アクティブ期間)の長さが設定されるエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成する。そして生成された信号ECMVREF、ECMHREFをカメラバスを介してホスト側カメラ入力インターフェース12(ホストデバイス10)に出力する。またカメラ出力インターフェース70は、カメラデータ信号CMDATに対応したエミュレーションカメラデータ信号ECMDATや、ECMDATの取り込み用(サンプリング用)のクロック信号ECMCLKOUTを、ホスト側カメラ入力インターフェース12に出力する。するとホストデバイス10の表示ドライバインターフェース14は、ECMDATに対応する表示データを表示ドライバ22に出力する。これにより、カメラ20により撮影された画像が表示パネル24に表示されるようになる。
【0049】
またカメラ出力インターフェース70は、カメラデータを表示パネル24に表示するための表示用(プレビュー用)リサイズ処理が画像処理部50により行われた場合には、表示用リサイズ処理が行われたカメラデータを、ホスト側カメラ入力インターフェース12に出力する。このようにすれば、ホストデバイス10の表示ドライバインターフェース14は、表示パネル24のパネルサイズに適合したカメラデータを、表示データとして表示ドライバ22に出力できるようになる。
【0050】
またカメラデータをファイルとして保存するためのキャプチャ用リサイズ処理が行われた場合には、このキャプチャ用リサイズ処理が行われたカメラデータについては、例えばホストインターフェース80がホストデバイス10に出力する。
【0051】
なお、キャプチャ用リサイズ処理が行われたカメラデータを、カメラ出力インターフェース70が出力するようにしてもよい。また画像処理部50によりカメラデータの圧縮処理が行われた場合に、カメラ出力インターフェース70が、圧縮カメラデータをホスト側カメラ入力インターフェース12に出力することも可能である。
【0052】
ホストインターフェース80は、ホストデバイス10との間のホストインターフェース処理を行うものである。具体的にはホストデバイス10との間でホストインターフェース信号のやり取りを行う。
【0053】
このホストインターフェース信号としては、チップセレクト信号CS、メモリアクセス/FIFOアクセス識別信号M/R、アドレス信号A[19:0]、データ信号D[15:0]、リード信号RD、ライト信号WR、ウェイト信号WAITなどがある。またシリアル転送用のチップセレクト信号SCS、シリアルクロック信号SCK、シリアル転送用のアドレス0信号A0、シリアルデータ信号SIなどを含むこともできる。
【0054】
なお図4にホストインターフェース信号のタイミングチャート例を示す。図4はタイプ80のホストインターフェース信号の例である。但し本実施形態のホストインターフェースは図4に限定されず、タイプ68やシリアル転送のホストインターフェースであってもよい。
【0055】
レジスタ部90は制御レジスタやステータスレジスタなどを含むものである。具体的にはレジスタ部90はタイミング設定レジスタ92、転送制御レジスタ94、リサイズ倍率設定レジスタ96、回転角度設定レジスタ97、ミラー表示レジスタ98を含む。
【0056】
ここでタイミング設定レジスタ92には、エミュレーション・カメラインターフェース信号を生成するためのタイミング情報が記憶される。具体的にはエミュレーション垂直同期信号やエミュレーション水平同期信号のタイミング(アクティブ期間)を設定するためのタイミング情報が記憶される。
【0057】
転送制御レジスタ94はカメラデータの転送制御のためのレジスタである。具体的には本実施形態では、ホストデバイス10から指示があったことを条件に、メモリ60に記憶された1画面分のカメラデータ(又は表示データ)をカメラ出力インターフェース70を介してホストデバイス10に転送するシングル転送モードが用意される。またカメラ入力インターフェース40にカメラデータが入力されたことを条件(垂直同期信号が非アクティブになったことを条件)に、画像処理部50、メモリ60、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に自動転送するオート転送モードが用意される。そしてこれらのシングル転送モードやオート転送モードは、ホストデバイス10がホストインターフェース80を介して転送制御レジスタ94に設定を行うことで実現される。例えばシングル転送モードを行う場合には、転送制御レジスタ94のシングル転送指示ビットにホストデバイス10が情報を設定する。またオート転送モードを行う場合には、転送制御レジスタ94のオート転送イネーブルビットにホストデバイス10が情報を設定する。
【0058】
リサイズ倍率設定レジスタ96は、画像処理部50で行われるリサイズ処理のリサイズ倍率が設定されるレジスタである。具体的にはホストデバイス10はホストインターフェース80を介して、リサイズ倍率設定レジスタ96に表示用リサイズ処理やキャプチャ用リサイズ処理のリサイズ倍率を設定する。すると画像処理部50は、このリサイズ倍率に基づいて、入力されたカメラデータに対してリサイズ処理を行う。
【0059】
回転角度設定レジスタ97は、画像処理部50で行われる回転処理の回転角度が設定されるレジスタである。またミラー表示レジスタ98は、画像処理部50で行われるミラー処理の指示(イネーブル、ディスエーブル)が設定されるレジスタである。具体的にはホストデバイス10はホストインターフェース80を介して、回転角度設定レジスタ97に回転処理の回転角度(0度、90度、180度、270度)を設定する。すると画像処理部50は、処理対象画像(カメラ画像)をその中心点を中心として、設定された回転角度だけ回転させた画像を生成するための処理を行う。またホストデバイス10はホストインターフェース80を介して、ミラー表示レジスタ98にミラー処理の指示を設定する。すると画像処理部50は、処理対象画像の鏡像であるミラー表示画像を生成するための処理を行う。
【0060】
3.エミュレーション処理
本実施形態ではカメラ出力インターフェース70が、カメラ20から入力されたカメラインターフェース信号のエミュレーション処理を行っている。例えば図5(A)(B)にエミュレーション・カメラインターフェース信号のタイミングチャート例を示す。
【0061】
図5(A)においてT1は垂直表示期間であり、T2は垂直ブランク期間である。またT3は水平表示期間であり、T4は水平ブランク期間である。別の言い方をすれば、T1は、エミュレーション垂直同期信号ECMVREFがアクティブになる期間であり、T2は、ECMVREFが非アクティブになる期間である。またT3は、エミュレーション水平同期信号ECMHREFがアクティブになる期間であり、T4は、ECMHREFが非アクティブになる期間である。このように図5(A)では、ECMVREF、ECMHREFにより、垂直表示期間T1、垂直ブランク期間T2、水平表示期間T3、水平ブランク期間T4の長さが設定されている。
【0062】
カメラデータ信号ECMDAT[7:0]は、ECMVREFがアクティブ(例えばハイレベル)であり且つECMHREFがアクティブである期間に、有効なデータとしてホストデバイス10に出力される。即ちECMDATは垂直表示期間であり且つ水平表示期間である場合に、有効なデータとしてホストデバイス10に出力される。このECMDATを受けたホストデバイス10は、図5(B)に示すように、クロック信号ECMCLKOUTのエッジ(例えば立ち上がりエッジ)でECMDATをサンプリングすることで、ECMDATを取り込むことができる。
【0063】
そして本実施形態では、画像処理部50でのリサイズ処理のリサイズ倍率(縮小率)に応じた長さに垂直表示期間T1、水平表示期間T3の長さが設定されるように、エミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを生成している。
【0064】
例えば図6(A)は表示パネル24に表示される画像のサイズがVGA(640×480)である場合のECMVREF、ECMHREFの波形例であり、図6(B)は画像サイズがQVGA(320×240)である場合の波形例である。図6(A)のVGAの場合のリサイズ倍率を1/Nとすると、図6(B)のQVGAの時のリサイズ倍率は1/4Nになる。そしてリサイズ倍率が1/Nである図6(A)では、期間T1の長さ(水平方向の画素数)は640になり、期間T3の長さ(垂直方向の画素数)は480になる。一方、リサイズ倍率が1/4Nである図6(B)では、期間T1の長さは320になり、期間T3の長さは240になる。即ちリサイズ倍率が小さくなるほど、垂直表示期間T1、水平表示期間T3の長さ(垂直同期信号、水平同期信号のアクティブ期間)が短くなるように、信号ECMVREF、ECMHREFが生成される。
【0065】
このようにすれば、リサイズ倍率に応じた適正な波形のエミュレーション垂直同期信号ECMVREF、エミュレーション水平同期信号ECMHREFを、ホストデバイス10に出力できるようになる。そしてホストデバイス10は、信号ECMVREF、ECMHREFに基づいてカメラデータの各画素データの表示位置を設定して、表示ドライバ22をカメラデータを転送するだけで済むため、ホストデバイス10の処理負荷の軽減化や処理の簡素化を図れる。
【0066】
なお期間T1〜T4の設定は、ホストデバイス10がホストインターフェース80を介して図3のタイミング設定レジスタ92に期間T1〜T4の情報を書き込むことにより実現できる。
【0067】
4.詳細な構成例
図7に本実施形態の画像処理コントローラ30の詳細な構成例を示す。なお図7の構成要素の一部を省略した構成にしてもよい。
【0068】
図7の表示用リサイザ102、キャプチャ用リサイザ112、変換部114、124、JPEGコーデック118、MPEGコーデック128は、図3の画像処理部50に含ませることができる。また表示用バッファ106、JPEGラインバッファ116、MPEGエンコード・デコードバッファ126、表示用FIFO110、JPEGFIFO120、MPEGFIFO130は、図3のメモリ60に含ませることができる。
【0069】
例えばカメラ20の撮影画像をプレビュー画像として表示パネル24に表示する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介して表示用リサイザ102に入力される。そして表示用リサイザ102は、カメラデータを表示パネルに表示するための表示用リサイズ処理を行う。そして表示用リサイズ処理が行われたカメラデータは、表示用バッファ106に書き込まれる。この表示用バッファ106は、例えば少なくとも1画面分のカメラデータ(表示データ)を記憶することができるフレームメモリとして機能する。表示用バッファ106に書き込まれたカメラデータは表示用バッファ106から読み出され、表示用FIFO(FirstInFirstOut)110に蓄積されて、カメラ出力インターフェース70を介してホストデバイス10に出力される。
【0070】
またカメラ20の撮影画像をキャプチャして、JPEG(静止画圧縮)ファイルとして保存する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介してキャプチャ用リサイザ112に入力される。そしてキャプチャ用リサイザ112は、カメラデータをJPEGファイルとして保存するためキャプチャ用リサイズ処理を行う。そしてキャプチャ用リサイズ処理が行われたカメラデータは、変換部114を介してJPEGラインバッファ116に書き込まれる。この変換部114では、例えばYUV422からYUV420へのフォーマット変換などが行われる。そしてJPEGコーデック118(広義には静止画コーデック)は、カメラデータに対して静止画圧縮処理を行う。即ちJPEGラインバッファ116に書き込まれたカメラデータのJPEG圧縮処理を行う。そして圧縮処理により得られたJPEGカメラデータ(広義には圧縮カメラデータ、静止画圧縮カメラデータ)は、JPEGFIFO120に蓄積されて、ホストインターフェース80を介してホストデバイス10に出力される。
【0071】
例えばカメラ20により被写体のプレビューを行っている状態では、図7の40、100、102、106、110、70の経路で、カメラデータがホストデバイス10に転送され、表示パネル24にカメラ撮影画像が表示される。一方、カメラ20のシャッタが押されて、カメラ撮影画像を保存する場合には、図7の40、100、112、114、116、118、120、80の経路で、カメラデータがホストデバイス10に転送され、JPEGカメラデータとして保存されることになる。
【0072】
このように図7では、表示用リサイザ102によりリサイズ処理が行われたカメラデータは、カメラ出力インターフェース70を介してホストデバイス10に出力される。一方、キャプチャ用リサイザ112によりリサイズ処理が行われて圧縮されたJPEGカメラデータは、ホストインターフェース80を介してホストデバイス10に出力される。
【0073】
即ちカメラ20のプレビュー画像を表示パネル24に表示する場合には、カメラ20からカメラデータが間断無く入力される。従って、この場合には、高速なカメラバスを介してホストデバイス10にカメラデータを転送することが望ましい。一方、カメラ20のキャプチャ画像であるカメラデータは、カメラのシャッタを押したタイミングで1回だけ転送すればよい。しかも、カメラデータはJPEGで圧縮されてそのサイズが小さくなっている。従って、この場合には、それほど高速ではないホストバスを介して、ホストデバイス10にカメラデータを転送することも可能になる。
【0074】
このように本実施形態では、カメラデータの利用態様に応じて、カメラデータの転送経路を変化させている。即ちカメラデータをプレビューとして表示パネル24に表示する利用態様の場合には、カメラ出力インターフェース70を介した経路でカメラデータをホストデバイス10に転送する。一方、カメラデータをJPEGファイル等として保存する利用態様の場合には、ホストインターフェース80を介した経路でカメラデータをホストデバイス10に転送する。このようにすれば、カメラデータの利用態様に応じた最適な転送経路でカメラデータをホストデバイス10に転送することが可能になり、転送効率を最適化できる。
【0075】
なお、カメラ20の撮影画像をMPEG(動画圧縮)ファイルとして保存する場合には、次のようにしてカメラデータがホストデバイス10に転送される。即ちカメラ入力インターフェース40に入力されたカメラデータは、デマルチプレクサ100を介して表示用リサイザ102に入力される。そしてリサイズ処理が行われたカメラデータは、変換部124を介してMPEGエンコード・デコードバッファ126(コーデックバッファ)に書き込まれる。この変換部124では、例えばカメラデータの回転処理やミラー処理などが行われる。また変換部124はYUV422からYUV420へのフォーマット変換などを行うこともできる。またMPEGでは、表示する画像のサイズと保存する画像のサイズが、一般的に同じになるため、リサイズ処理は表示用リサイザ102により行われる。
【0076】
MPEGコーデック128(広義には動画コーデック)は、カメラデータに対して動画圧縮処理を行う。即ちMPEGエンコード・デコードバッファ126に書き込まれたカメラデータに対してMPEGの圧縮処理を行う。そして圧縮処理により得られたMPEGカメラデータ(広義には圧縮カメラデータ、動画圧縮カメラデータ)は、MPEGFIFO130に蓄積されて、ホストインターフェース80を介してホストデバイス10に出力される。
【0077】
5.バイパス回路
図7に示すように本実施形態では、入力されたカメラデータをホストデバイス10にバイパス転送するバイパス回路140を設けている。具体的にはバイパス回路140は、カメラ入力インターフェース40に入力されたカメラデータを、画像処理部50やメモリ60を介さずに、カメラ出力インターフェース70に出力する。
【0078】
即ち本実施形態では、表示用リサイザ102等によりカメラデータに対するリサイズ処理が行われる。しかしながら、カメラ20の利用態様によっては、撮影されたカメラデータを、リサイズ処理などの画像処理を施さずにそのまま利用する場合がある。例えばカメラ20によりバーコードを撮影し、バーコード情報を読み取るような利用態様も考えられる。この利用態様では、ホストデバイス10上で動作するソフトウェアがカメラデータを解析し、バーコード情報を読み取る。そしてこの場合には、カメラデータの解像度が高いほど、バーコード情報の読み取り精度が高くなるため、表示用リサイザ102によるリサイズ処理は行われないことが望ましい。
【0079】
そこで本実施形態では図7に示すようなバイパス回路140を設け、カメラ入力インターフェース40に入力されたカメラデータを、表示用リサイザ102等を介さずに、そのままカメラ出力インターフェース70を介してホストデバイス10に転送している。このようにすれば、ホストデバイス10のソフトウェアは、高解像度のカメラデータに基づいてバーコード情報等を解析して読み出すことが可能になり、利便性を向上できる。
【0080】
しかも、カメラバスはホストデバイスに比べて高速なバスである。またリサイズ処理が行われないカメラデータのサイズは大きい。従って本実施形態によれば、このような大きなサイズのカメラデータを、高速なカメラバスを介してホストデバイス10に転送できるため、転送効率を向上できる。
【0081】
図8にバイパス回路140の構成例を示す。信号CMVREF、CMHREF、CMDATは、クロック信号CMCLKINに基づきフリップフロップDFF1、DFF2、DFF3によりサンプリングされ、信号ECMVREF、ECMHREF、ECMDATとしてホストデバイス10に出力される。このようにフリップフロップDFF1、DFF2、DFF3により信号をサンプリングすることで、信号のAC特性を改善できる。
【0082】
なおセレクタSEL1〜SEL4は、信号レベルやエッジの極性反転のためのセレクタである。例えば選択信号SS1、SS2を用いてDFF1、DFF2の反転出力XQを選択すれば、CMVREF、CMHREFの信号レベルの極性を反転して、ECMVREF、ECMHREFとして出力できる。また選択信号SS3が入力されるセレクタSEL3を用いれば、クロック信号CMCLKINによるサンプリングのエッジ極性を切り替えることができる。また選択信号SS4が入力されるセレクタSEL4を用いれば、CMCLKINの信号レベルの極性を反転して、ECMCLKOUTとして出力できる。
【0083】
なお図8では、フリップフロップDFF1、DFF2、DFF3により信号をサンプリングする構成を採用しているが、DFF1、DFF2、DFF3やセレクタSEL1〜4などを設けない構成としてもよい。この場合には、バイパス回路140は、単なるバッファとしての機能を持てばよい。即ち信号CMVREF、CMHREF、CMDAT、CMCLKINを、バッファ回路によりバッファリングし、ECMVREF、ECMHREF、ECMDAT、ECMCLKOUTとしてホストデバイス10に出力すればよい。
【0084】
6.変形例
図9に本実施形態の変形例を示す。図7では、JPEGにより圧縮されたJPEGカメラデータはホストインターフェース80を介してホストデバイス10に出力される。これに対して図9では、JPEGカメラデータはカメラ出力インターフェース70を介してホストデバイス10に出力される。即ち図9のJPEGコーデック118(広義にコーデック)は、カメラデータに対して圧縮処理を行う。そしてカメラ出力インターフェース70は、圧縮処理により得られた圧縮カメラデータをホストデバイス10に出力する。
【0085】
前述のように、カメラ20の撮影画像を表示パネル24にプレビューで表示する場合には、カメラデータを間断なく転送する必要があるため、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に出力することが望ましい。
【0086】
一方、JPEGカメラデータについては、プレビュー用カメラデータのように間断なく転送する必要はないため、図7ではカメラ出力インターフェース70を介してホストデバイス10に出力している。
【0087】
しかしながら、JPEGカメラデータでは、キャプチャ用リサイザ112でのリサイズ倍率が等倍になることもあり、1画面分(1フレーム分)のカメラデータサイズで比べると、プレビュー用のカメラデータよりも一般的にサイズが大きい。
【0088】
そこで図9では、このJPEGカメラデータについては、ホストインターフェース80ではなく、カメラ出力インターフェース70を介してホストデバイス10に出力している。そしてホストデバイス10は、ホスト側カメラ入力インターフェース12を介して入力されたJPEGカメラデータを、メインメモリ26にJPEGファイルとして保存する。このようにすれば、JPEGカメラデータの転送のためにホストバスが占有されてホストデバイス10の処理効率が低下するなどの事態を防止できる。
【0089】
なお図9では、JPEG(静止画圧縮)のカメラデータについては、カメラ出力インターフェース70を介してホストデバイス10に出力する一方で、MPEG(動画圧縮)のカメラデータについては、ホストインターフェース80を介してホストデバイス10に出力している。
【0090】
即ち前述のように、JPEGカメラデータでは、キャプチャ用リサイザ112でのリサイズ倍率が等倍になることもあり、1画面分のカメラデータサイズが一般的に大きい。これに対してMPEGカメラデータは、そのサイズが例えばQVGAやQCIFに設定され、プレビュー用カメラデータと同様に表示用リサイザ102によりリサイズされる。従って、MPEGカメラデータは、1画面分のカメラデータサイズで比べると、JPEGカメラデータに比べてサイズが小さい。
【0091】
またMPEGのコーデックは、ハードウェア回路とソフトウェアで分担して処理することが望ましい。例えばDCT(離散コサイン変換)、量子化、逆量子化、逆DCT、動き補償、或いは動き検出などの処理は、ハードウェア回路であるMPEGコーデック128が行う。一方、DC予測、スキャニング、或いはVLC符号化(可変長符号化)などの処理は、ホストデバイス10上で動作するソフトウェアが行う。このようにすることで、MPEGのコーデック処理の効率化を図れる。
【0092】
そしてこのようにMPEGのコーデックをハードウェア回路とソフトウェアで分担して処理する場合には、MPEGのカメラデータについては、ホストインターフェース80を介してホストデバイス10に出力することが望ましい。即ちMPEGコーデック128によるハードウェア・コーデック処理(DCT、量子化、逆量子化、逆DCT、動き補償、動き検出)が施された後のカメラデータを、MPEGFIFO130に書き込み、ホストインターフェース80を介してホストデバイス10に出力する。こうすれば、ホストデバイス10上で動作するソフトウェアがハードウェア・コーデック処理後のカメラデータを受け取り、ソフトウェア・コーデック処理(DC予測、スキャニング、VLC符号化)を施すという一連の処理を、スムーズに行うことが可能になる。
【0093】
7.回転、ミラー処理
携帯電話機に対するカメラ20(CCD)の実装形態は様々である。従って、カメラ20での撮影イメージと、表示パネル24での表示イメージが一致しない場合がある。従って、これらを一致させるために、カメラ20からのカメラデータに対して回転処理やミラー処理を行うことが望まれる。例えば図10のA1に示すカメラ20の撮影イメージと、A3に示す表示パネル24での表示イメージは一致していない。従ってA1の画像をA3に示すように90度回転させる処理が必要になる。またカメラ20の実装形態によっては、90度以外の回転処理やミラー処理(鏡像処理)が必要な場合もある。
【0094】
このために本実施形態では図7に示すように、カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部124を設けている。そして動画カメラデータについては、図10のA2に示すように、変換部114により回転処理及びミラー処理の少なくとも一方が行われた後に、MPEGエンコード・デコードバッファ126(広義にはメモリ)に書き込まれる。そして書き込まれた動画カメラデータに対して、MPEGコーデック128(動画エンコーダ)が動画圧縮処理を行い、得られたMPEGカメラデータが、ホストインターフェース80などを介してホストデバイス10に出力される。そしてA3に示すように、MPEGファイルとして保存されたり、デコードされて表示パネル24に表示される。
【0095】
一方、静止画カメラデータについては、図10のA4に示すように、回転処理やミラー処理を行わずにJPEGラインバッファ116(メモリ)に書き込まれる。そして書き込まれたカメラデータに対して、JPEGコーデック118(静止画エンコーダ)が静止画圧縮処理を行い、得られたJPEGカメラデータが、ホストインターフェース80(又はカメラ出力インターフェース70)を介してホストデバイス10に出力される。すると図10のA5に示すように、JPEGカメラデータはメインメモリ26に一旦保存され、A6に示すように、ホストデバイス10上で動作するソフトウェアにより回転処理やミラー処理が施される。またA7に示すように表示パネル24に表示される。
【0096】
JPEGカメラデータは、フレーム単位のデータであるため、図10のA5、A6に示すようにソフトウェア処理により回転処理やミラー処理を行うことは容易である。これに対してMPEGカメラデータは、例えば15FPSの速度で途切れることなく生成したり再生したりする必要がある。従って図10のA5、A6に示すようにメインメモリから読み出す際にソフトウェア処理により回転処理やミラー処理を行うのは難しい。またMPEGエンコードの際に回転処理やミラー処理を行うのも難しい。
【0097】
そこで本実施形態では図10に示すように、動画カメラデータについては、メモリ(MPEGエンコード・デコードバッファ)に書き込む前に回転処理やミラー処理を行う。そしてメモリに書き込まれた回転処理・ミラー処理後の動画カメラデータに対して動画圧縮処理を行い、得られたMPEGカメラデータをファイルとして保存したり、デコードして表示パネル24に表示する。
【0098】
このようにすれば、図10のA5、A6に示すようにソフトウェア処理により回転処理やミラー処理を行わなくても済むようになる。そしてカメラ20の実装形態が原因で撮影イメージと表示イメージが一致しない場合であっても、これらが一致するように、動画カメラデータに対して回転処理やミラー処理を施すことが可能になる。
【0099】
なお、ここで回転処理とは、処理対象画像(カメラ画像)の向きを処理対象画像の中心点を中心に0度、90度、180度、270度というように回転させた画像を生成するための処理である。またミラー処理とは、処理対象画像の鏡像(処理対象画像に対面するミラーに映る画像)であるミラー表示画像を生成するための処理である。例えば回転処理やミラー処理を行う場合には、ホストデバイス10が、図3の回転角度設定レジスタ97、ミラー表示設定レジスタ98に対して、ホストデバイス10が回転角度やミラー表示指示を行う。すると画像処理部50(変換部114)が、その回転角度に応じた回転処理や、ミラー表示指示に従ったミラー処理を行う。具体的には画像処理部50(変換部114)は、メモリ60(MPEGエンコード・デコードバッファ)への書き込みアドレスを制御することで、回転処理やミラー処理を実現する。
【0100】
8.オート転送モード
本実施形態ではカメラデータの転送モードとしてシングル転送モードとオート転送モードを用意している。
【0101】
ここでシングル転送モードでは、ホストデバイス10から指示があったことを条件に、図3のメモリ60に記憶された1画面分のカメラデータ(或いはカメラデータ以外の表示データ)をカメラ出力インターフェース70を介してホストデバイス10に転送するモードである。図7を例にとれば、ホストデバイス10がホストインターフェース80を介してシングル転送を指示すると、表示用バッファ106(フレームメモリ)に記憶された1画面分のカメラデータ(又は表示データ)が、表示用FIFO110、カメラ出力インターフェース70を介してホストデバイス10に転送される。
【0102】
一方、オート転送モードは、カメラ入力インターフェース40にカメラデータが入力されたことを条件に、画像処理部50、メモリ60、カメラ出力インターフェース70を介してカメラデータをホストデバイス10に自動転送するモードである。図7を例にとれば、カメラ入力インターフェース40に入力される垂直同期信号が非アクティブになる毎(垂直表示期間が終了する毎)に、表示用バッファ106に書き込まれたカメラデータが、表示用FIFO110、カメラ出力インターフェース70を介してホストデバイス10に自動転送される。
【0103】
このオート転送モードを利用すれば、カメラの撮影画像のプレビュー表示等を更にスムーズに行うことが可能になる。即ちホストデバイス10は、図3の転送制御レジスタ94にオート転送モードのイネーブルを設定する。すると画像処理コントローラ30のハードウエア回路は、カメラ20からの垂直同期信号が非アクティブ(例えばローレベル)になり、垂直表示期間が終了する毎に、その垂直表示期間において表示用バッファ106に書き込まれた1画面分のカメラデータを読み出す。そして表示用バッファ106から読み出されたカメラデータを、カメラ出力インターフェース70を介してホストデバイス10に出力する。このようにして読み出されたカメラデータの画像は、表示パネル24にプレビュー表示される。そしてホストデバイス10が、図3の転送制御レジスタ94にオート転送モードのディスエーブルを設定すると、オート転送モードが終了し、プレビュー表示も終了するようになる。
【0104】
例えばシングル転送モードを利用してプレビュー表示を実現しようとすると、表示用バッファ106に1画面分のカメラデータが書き込まれる毎に、ホストデバイス10がシングル転送の指示を行う必要があり、ホストデバイス10の処理負荷が過大になる。
【0105】
これに対してオート転送モードでは、ホストデバイス10がオート転送モードのイネーブルを設定した後は、ホストデバイス10の介在がなくても、カメラ20から取り込まれたカメラデータが、リサイズ処理などが施されて自動的にホストデバイス10に転送される。従って、ホストデバイス10(ファームウェア)は、オート転送モードのイネーブルを設定した後は他の処理を行うことが可能になり、ホストデバイス10の処理効率を向上できる。
【0106】
図11、図12に、シングル転送モード時やオート転送モード時のホストデバイス10の処理フローを示す。
【0107】
図11のシングル転送モードでは、ホストデバイス10は、表示ドライバインターフェースのステータスがBUSYか否かを判断し、BUSYでない場合には、シングル転送の指示を転送制御レジスタ94に設定する(ステップS1、S2)。すると、1画面分のカメラデータがホストデバイス10に転送され、シングル転送が終了する(ステップS3、S4)。
【0108】
図12のオート転送モードでは、ホストデバイス10は、表示ドライバインターフェースのステータスがBUSYか否かを判断し(ステップS11)、BUSYでない場合には、オート転送のイネーブルを転送制御レジスタ94に設定する(ステップS12)。すると、表示パネルへの表示(プレビュー表示)が終了するまで、1画面分のカメラデータが入力される毎に、そのカメラデータがホストデバイス10に転送される(ステップS13、S14)。そして表示パネルへの表示を終了させる場合には、ホストデバイス10は、オート転送のディスエーブルを転送制御レジスタ94に設定する(ステップS15)。そして表示ドライバインターフェースのステータスがBUSYか否かを判断した後、オート転送が終了する(ステップS16、S17)。
【0109】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(静止画圧縮、動画圧縮等)と共に記載された用語(JPEG、MPEG等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【0110】
また画像処理コントローラや電子機器の構成や動作も本実施形態で説明した構成や動作に限定に限定されず、種々の変形実施が可能である。またカメラデータの転送手法、リサイズ手法、圧縮手法等も本実施形態で説明した手法に限定されない。
【図面の簡単な説明】
【0111】
【図1】本実施形態の画像処理コントローラを含む電子機器の構成例。
【図2】比較例の構成例。
【図3】本実施形態の画像処理コントローラの構成例。
【図4】ホストインターフェース信号の説明図。
【図5】図5(A)(B)はカメラインターフェース信号のエミュレーション処理の説明図。
【図6】カメラインターフェース信号のエミュレーション処理の説明図。
【図7】本実施形態の画像処理コントローラの詳細な構成例。
【図8】バイパス回路の構成例。
【図9】本実施形態の変形例。
【図10】回転・ミラー処理に関する本実施形態の手法の説明図。
【図11】シングル転送モード時のフロー図。
【図12】オート転送モード時のフロー図。
【符号の説明】
【0112】
10 ホストデバイス、12 ホスト側カメラ入力インターフェース、
14 表示ドライバインターフェース、20 カメラ、22 表示ドライバ、
24 表示パネル、26 メインメモリ、28 その他のデバイス、
30 画像処理コントローラ、40 カメラ入力インターフェース、
50 画像処理部、60 メモリ、70 カメラ出力インターフェース、
72 信号ジェネレータ、80 ホストインターフェース、90 レジスタ部、
92 タイミング設定レジスタ、94 転送制御レジスタ、
96 リサイズ倍率設定レジスタ、97 回転角度設定レジスタ、
98 ミラー表示設定レジスタ、100 デマルチプレクサ、102 表示用リサイザ、
106 表示用バッファ、110 表示用FIFO、112 キャプチャ用リサイザ、
114 変換部、116 JPEGラインバッファ、118 JPEGコーデック、
120 JPEGFIFO、124 変換部、
126 MPEGエンコード・デコードバッファ、128 MPEGコーデック、
130 MPEGFIFO
【特許請求の範囲】
【請求項1】
カメラデータが入力されるカメラ入力インターフェースと、
カメラデータに対して画像処理を行う画像処理部と、
画像処理が行われたカメラデータを記憶するメモリと、
ホストデバイスとの間のホストインターフェース処理を行うホストインターフェースと、
前記メモリに記憶されたカメラデータを、前記ホストデバイスのホスト側カメラ入力インターフェースに出力するカメラ出力インターフェースとを含むことを特徴とする画像処理コントローラ。
【請求項2】
請求項1において、
前記画像処理部は、
カメラデータに対してリサイズ処理を行うリサイザを含み、
前記カメラ出力インターフェースは、
前記カメラ入力インターフェースを介して入力される垂直同期信号、水平同期信号のエミュレーション処理を行い、前記エミュレーション処理においては、前記リサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号、エミュレーション水平同期信号を生成して、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項3】
請求項1又は2において、
前記ホストデバイスは、
表示パネルを駆動する表示ドライバとの間のインターフェース処理を行う表示ドライバインターフェースを含み、
前記画像処理部は、
カメラデータを前記表示パネルに表示するためのリサイズ処理を行う表示用リサイザを含み、
前記カメラ出力インターフェースは、
前記表示用リサイザによりリサイズ処理が行われたカメラデータを、前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項4】
請求項3において、
前記画像処理部は、
カメラデータをファイルとして保存するためのリサイズ処理を行うキャプチャ用リサイザを含み、
前記ホストインターフェースは、
前記キャプチャ用リサイザによりリサイズ処理が行われたカメラデータを、前記ホストデバイスに出力することを特徴とする画像処理コントローラ。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記カメラ入力インターフェースに入力されたカメラデータを、前記画像処理部及び前記メモリを介さずに前記カメラ出力インターフェースに出力するバイパス回路を含むことを特徴とする画像処理コントローラ。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記画像処理部は、
カメラデータに対して圧縮処理を行うコーデックを含み、
前記カメラ出力インターフェースは、
前記コーデックにより圧縮処理が行われた圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項7】
請求項6において、
前記画像処理部は、
カメラデータに対して静止画圧縮処理を静止画コーデックと、
カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、
前記カメラ出力インターフェースは、
前記静止画コーデックにより静止画圧縮処理が行われた静止画圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力し、
前記ホストインターフェースは、
前記動画コーデックにより動画圧縮処理が行われた動画圧縮カメラデータを、前記ホストデバイスに出力することを特徴とする画像処理コントローラ。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記画像処理部は、
カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部と、
カメラデータに対して静止画圧縮処理を静止画コーデックと、
カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、
動画カメラデータについては、前記変換部により前記回転処理及び前記ミラー処理の少なくとも一方が行われた後に前記メモリに書き込まれ、前記動画コーデックにより動画圧縮処理が行われて前記ホストデバイスに出力され、
静止画カメラデータについては、前記変換部による前記回転処理、前記ミラー処理が行われずに前記メモリに書き込まれ、前記静止画コーデックにより静止画圧縮処理が行われて前記ホストデバイスに出力されることを特徴とする画像処理コントローラ。
【請求項9】
請求項1乃至8のいずれかにおいて、
オート転送モードでは、
前記カメラ入力インターフェースにカメラデータが入力されたことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送することを特徴とする画像処理コントローラ。
【請求項10】
請求項9において、
前記オート転送モードでは、
前記カメラ入力インターフェースに入力される垂直同期信号が非アクティブになったことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送することを特徴とする画像処理コントローラ。
【請求項11】
請求項9又は10において、
シングル転送モードでは、
前記ホストデバイスから指示があったことを条件に、前記メモリに記憶された1画面分のカメラデータを前記カメラ出力インターフェースを介して前記ホストデバイスに転送することを特徴とする画像処理コントローラ。
【請求項12】
請求項1乃至11のいずれかに記載の画像処理コントローラと、
前記画像処理コントローラにカメラデータを出力するカメラと、
前記ホストデバイスとを含むことを特徴とする電子機器。
【請求項1】
カメラデータが入力されるカメラ入力インターフェースと、
カメラデータに対して画像処理を行う画像処理部と、
画像処理が行われたカメラデータを記憶するメモリと、
ホストデバイスとの間のホストインターフェース処理を行うホストインターフェースと、
前記メモリに記憶されたカメラデータを、前記ホストデバイスのホスト側カメラ入力インターフェースに出力するカメラ出力インターフェースとを含むことを特徴とする画像処理コントローラ。
【請求項2】
請求項1において、
前記画像処理部は、
カメラデータに対してリサイズ処理を行うリサイザを含み、
前記カメラ出力インターフェースは、
前記カメラ入力インターフェースを介して入力される垂直同期信号、水平同期信号のエミュレーション処理を行い、前記エミュレーション処理においては、前記リサイズ処理のリサイズ倍率に応じた長さに垂直表示期間、水平表示期間の長さが設定されるエミュレーション垂直同期信号、エミュレーション水平同期信号を生成して、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項3】
請求項1又は2において、
前記ホストデバイスは、
表示パネルを駆動する表示ドライバとの間のインターフェース処理を行う表示ドライバインターフェースを含み、
前記画像処理部は、
カメラデータを前記表示パネルに表示するためのリサイズ処理を行う表示用リサイザを含み、
前記カメラ出力インターフェースは、
前記表示用リサイザによりリサイズ処理が行われたカメラデータを、前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項4】
請求項3において、
前記画像処理部は、
カメラデータをファイルとして保存するためのリサイズ処理を行うキャプチャ用リサイザを含み、
前記ホストインターフェースは、
前記キャプチャ用リサイザによりリサイズ処理が行われたカメラデータを、前記ホストデバイスに出力することを特徴とする画像処理コントローラ。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記カメラ入力インターフェースに入力されたカメラデータを、前記画像処理部及び前記メモリを介さずに前記カメラ出力インターフェースに出力するバイパス回路を含むことを特徴とする画像処理コントローラ。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記画像処理部は、
カメラデータに対して圧縮処理を行うコーデックを含み、
前記カメラ出力インターフェースは、
前記コーデックにより圧縮処理が行われた圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力することを特徴とする画像処理コントローラ。
【請求項7】
請求項6において、
前記画像処理部は、
カメラデータに対して静止画圧縮処理を静止画コーデックと、
カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、
前記カメラ出力インターフェースは、
前記静止画コーデックにより静止画圧縮処理が行われた静止画圧縮カメラデータを、前記ホストデバイスの前記ホスト側カメラ入力インターフェースに出力し、
前記ホストインターフェースは、
前記動画コーデックにより動画圧縮処理が行われた動画圧縮カメラデータを、前記ホストデバイスに出力することを特徴とする画像処理コントローラ。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記画像処理部は、
カメラデータに対して回転処理及びミラー処理の少なくとも一方を行う変換部と、
カメラデータに対して静止画圧縮処理を静止画コーデックと、
カメラデータに対して動画圧縮処理を行う動画コーデックとを含み、
動画カメラデータについては、前記変換部により前記回転処理及び前記ミラー処理の少なくとも一方が行われた後に前記メモリに書き込まれ、前記動画コーデックにより動画圧縮処理が行われて前記ホストデバイスに出力され、
静止画カメラデータについては、前記変換部による前記回転処理、前記ミラー処理が行われずに前記メモリに書き込まれ、前記静止画コーデックにより静止画圧縮処理が行われて前記ホストデバイスに出力されることを特徴とする画像処理コントローラ。
【請求項9】
請求項1乃至8のいずれかにおいて、
オート転送モードでは、
前記カメラ入力インターフェースにカメラデータが入力されたことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送することを特徴とする画像処理コントローラ。
【請求項10】
請求項9において、
前記オート転送モードでは、
前記カメラ入力インターフェースに入力される垂直同期信号が非アクティブになったことを条件に、前記画像処理部、前記メモリ、前記カメラ出力インターフェースを介してカメラデータを前記ホストデバイスに自動転送することを特徴とする画像処理コントローラ。
【請求項11】
請求項9又は10において、
シングル転送モードでは、
前記ホストデバイスから指示があったことを条件に、前記メモリに記憶された1画面分のカメラデータを前記カメラ出力インターフェースを介して前記ホストデバイスに転送することを特徴とする画像処理コントローラ。
【請求項12】
請求項1乃至11のいずれかに記載の画像処理コントローラと、
前記画像処理コントローラにカメラデータを出力するカメラと、
前記ホストデバイスとを含むことを特徴とする電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−287715(P2006−287715A)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願番号】特願2005−106304(P2005−106304)
【出願日】平成17年4月1日(2005.4.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願日】平成17年4月1日(2005.4.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]