以下、発明の実施の形態を通じて本発明を説明するが、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。以下の実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、図面、及び要約書には、著作権による保護の対象となる事項が含まれる。著作権者は、これらの書類の何人による複製に対しても、特許庁のファイルまたはレコードに表示される通りであれば異議を唱えない。ただし、それ以外の場合、一切の著作権を留保する。
本発明の様々な実施形態は、フローチャート及びブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、プログラマブル回路、及び/またはプロセッサによって実装されてよい。専用回路は、デジタル及び/またはアナログハードウェア回路を含んでよい。集積回路(IC)及び/またはディスクリート回路を含んでよい。プログラマブル回路は、再構成可能なハードウェア回路を含んでよい。再構成可能なハードウェア回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、及び他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等の様なメモリ要素等を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよい。その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードの何れかを含んでよい。ソースコードまたはオブジェクトコードは、従来の手続型プログラミング言語を含む。従来の手続型プログラミング言語は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語または同様のプログラミング言語でよい。コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供されてよい。プロセッサまたはプログラマブル回路は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
図1は、本実施形態に係る撮像装置100の機能ブロックを示す図である。
撮像装置100は、撮像部102及びレンズ部170を備える。撮像部102は、イメージセンサ120、制御部110、メモリ130、操作部162、及び表示部160を有する。
イメージセンサ120は、CCDまたはCMOSにより構成されてよい。イメージセンサ120は、レンズ部170が有するレンズ171を介して光を受光する。イメージセンサ120は、レンズ171を介して結像された光学像の画像データを制御部110に出力する。
制御部110は、CPUまたはMPUなどのマイクロプロセッサ、MCUなどのマイクロコントローラなどにより構成されてよい。メモリ130は、コンピュータ可読可能な記録媒体でよく、SRAM、DRAM、EPROM、EEPROM、及びUSBメモリなどのフラッシュメモリの少なくとも1つを含んでよい。制御部110は回路に対応する。メモリ130は、制御部110がイメージセンサ120などを制御するのに必要なプログラム等を格納する。メモリ130は、撮像装置100の筐体の内部に設けられてよい。メモリ130は、撮像装置100の筐体から取り外し可能に設けられてよい。
操作部162は、撮像装置100に対する指示をユーザから受け付けるユーザインタフェースである。表示部160は、イメージセンサ120により撮像され、制御部110により処理された画像、撮像装置100の各種設定情報などを表示する。表示部160は、タッチパネルで構成されてよい。
制御部110は、レンズ部170及びイメージセンサ120を制御する。例えば、制御部110は、レンズ171の焦点の位置や焦点距離を制御する。制御部110は、ユーザからの指示を示す情報に基づいて、レンズ部170が備えるレンズ制御部180に制御命令を出力することにより、レンズ部170を制御する。
レンズ部170は、1以上のレンズ171、レンズ駆動部172、レンズ制御部180、及びメモリ182を有する。本実施形態において1以上のレンズ171のことを「レンズ171」と総称する。レンズ171は、フォーカスレンズ及びズームレンズを含んでよい。レンズ171が含むレンズのうちの少なくとも一部または全部は、レンズ171の光軸に沿って移動可能に配置される。レンズ部170は、撮像部102に対して着脱可能に設けられる交換レンズであってよい。
レンズ駆動部172は、レンズ171のうちの少なくとも一部または全部を、レンズ171の光軸に沿って移動させる。レンズ制御部180は、撮像部102からのレンズ制御命令に従って、レンズ駆動部172を駆動して、レンズ171全体又はレンズ171が含むズームレンズやフォーカスレンズを光軸方向に沿って移動させることで、ズーム動作やフォーカス動作の少なくとも一方を実行する。レンズ制御命令は、例えば、ズーム制御命令、及びフォーカス制御命令等である。
レンズ駆動部172は、複数のレンズ171の少なくとも一部または全部を光軸方向に移動させるボイスコイルモータ(VCM)を含んでよい。レンズ駆動部172は、DCモータ、コアレスモータ、または超音波モータ等の電動機を含んでよい。レンズ駆動部172は、電動機からの動力をカム環、ガイド軸等の機構部材を介して複数のレンズ171の少なくとも一部または全部に伝達して、レンズ171の少なくとも一部または全部を光軸に沿って移動させてよい。
メモリ182は、レンズ駆動部172を介して移動するフォーカスレンズやズームレンズ用の制御値を記憶する。メモリ182は、SRAM、DRAM、EPROM、EEPROM、及びUSBメモリなどのフラッシュメモリの少なくとも1つを含んでよい。
制御部110は、操作部162等を通じて取得したユーザの指示を示す情報に基づいて、イメージセンサ120に制御命令を出力することにより、イメージセンサ120に撮像動作の制御を含む制御を実行する。制御部110は、イメージセンサ120により撮像された画像を取得する。制御部110は、イメージセンサ120から取得した画像に画像処理を施してメモリ130に格納する。
制御部110が実行する画像処理に含まれる圧縮処理の概要を説明する。イメージセンサ120は、RAW画像データを出力する。RAW画像データは、画素毎に1つの色成分を持つ画素情報を含む画像データの一例である。制御部110は、イメージセンサ120からRAW画像データを取得すると、RAW画像データに含まれる画素情報に基づいて、第1の色成分と第2の色成分との間の相関を表す第1の相関情報を算出し、第1の相関情報に基づいて、第2の色成分の情報を圧縮する。第1の色成分は緑色の色成分であってよい。第2の色成分は、例えば赤色の色成分である。なお、色成分は、光の波長域の一例である。光の波長域は、可視光の波長域であってよく、非可視光の波長域であってよい。光の波長域は、赤外や紫外の波長域を含んでよい。光の波長域は、可視光及び非可視光の波長域の両方の波長域を含んでよい。
制御部110は、第1の色成分の情報及び第1の相関情報に基づいて、第2の色成分の予測値を算出する。制御部110は、第1の色成分と第2の色成分の予測値との間の差分をとることによって、第2の色成分の情報を圧縮する。
制御部110は、第2の色成分を有する複数の第2の画素のそれぞれについて、複数の第2の画素のそれぞれの周辺に位置する複数の第1の画素の第1の色成分を用いて、複数の第2の画素のそれぞれにおける第1の色成分の予測値を算出する。制御部110は、複数の第2の画素のそれぞれについて算出した第2の色成分と第1の色成分の予測値とを用いて、第1の相関情報を算出する。
制御部110は、複数の第2の画素のそれぞれについて算出した第2の色成分と第1の色成分の予測値とを用いて、第1の色成分の予測値を独立変数とし、第2の色成分を従属変数として回帰分析を行うことにより、相関を表す関数を算出し、複数の第2の画素のそれぞれについて、第1の色成分の情報及び関数に基づいて、第2の色成分の予測値を算出する。
制御部110は、第1の色成分の画像について隣接画素との差分をとることによって、第1の色成分の情報を圧縮する。
画素情報は、第1の色成分、第2の色成分、及び第3の色成分の情報を含む。制御部110は、第1の色成分と第3の色成分との間の相関を表す第2の相関情報を算出する。制御部110は、第2の相関情報に基づいて、第3の色成分の情報を圧縮する。第3の色成分は、例えば青色の色成分である。
画素情報は、画素配置において予め定められた画素パターンにて配置された第1の画素群の色成分の情報と、画素配置において予め定められた画素パターンにて第1の画素群とは位相が異なるように配置された第2の画素群の色成分の情報と、画素配置において予め定められた画素パターンにて第1の画素群及び第2の画素群のいずれとも位相が異なるように配置された第3の画素群の色成分の情報と、画素配置において予め定められた画素パターンにて第1の画素群の色成分の情報と、第2の画素群及び第3の画素群のいずれとも位相が異なるように配置された第4の画素群の色成分の情報とを有する。第1の色成分は、第1の画素群の色成分であり、第2の色成分は、第2の画素群の色成分であり、第3の色成分は、第3の画素群の色成分であり、第4の画素群の色成分は、第1の色成分の色と同じ色の色成分である。この場合、制御部110は、画素情報に基づいて、第1の色成分と、第4の画素群に属する複数の画素の色成分との間の相関を表す第3の相関情報を算出する。制御部110は、第1の色成分の情報及び第3の相関情報に基づいて、第4の画素群に属する複数の画素のそれぞれの色成分の予測値を算出する。制御部110は、第4の画素群に属する複数の画素のそれぞれの色成分と、第4の画素群に属する複数の画素のそれぞれの色成分の予測値との間の差分をとることによって、第4の画素群に属する複数の画素の色成分の情報を圧縮する。
制御部110は、第1の色成分と第2の色成分との間の相関の強さが予め定められた値より低い場合に、第2の色成分の画像について隣接画素との差分をとることによって、第2の色成分の情報を圧縮してよい。制御部110は、第1の色成分と第2の色成分の予測値との間の差分をとることによって得られた差分値について、隣接画素との差分をとることによって、第2の色成分の情報を圧縮してよい。
撮像装置100が動画を撮像する場合、イメージセンサ120は、動画を構成する複数の動画構成画像を順次に出力する。制御部110は、動画を構成する複数の動画構成画像をイメージセンサ120から取得する。ここで、複数の動画構成画像のそれぞれがRAW画像データである場合、制御部110は、複数の動画構成画像のうちの第1の動画構成画像から第1の相関情報を算出し、第1の動画構成画像から算出した第1の相関情報に基づいて、複数の動画構成画像のうち第1の動画構成画像より後の第2の動画構成画像の第2の色成分の情報を圧縮する。
制御部110は、第1の動画構成画像と第2の動画構成画像との間でシーンが変化したか否かを判断する。制御部110は、第1の動画構成画像と第2の動画構成画像との間でシーンが変化していないと判断した場合に、第1の動画構成画像から算出した第1の相関情報に基づいて、第2の動画構成画像の第2の色成分の情報を圧縮する。制御部110は、第1の動画構成画像と第2の動画構成画像との間でシーンが変化したと判断した場合に、第2の動画構成画像から第1の相関情報を算出し、第2の動画構成画像から算出した第1の相関情報に基づいて、複数の動画構成画像のうち第2の動画構成画像より後の第3の動画構成画像の第2の色成分の情報を圧縮する。
図2は、イメージセンサ120が生成するRAW画像データの画素情報の一例を模式的に示す。本実施形態のイメージセンサ120は、RGGBのベイヤ配列の画素配列を持つものとする。
RAW画像データの画素構成は、画素R11、画素G12、画素R13、画素G14の画素行と、画素G21、画素B22、画素G23、画素B24の画素行と、画素R31、画素G32、画素R33、画素G34の画素行と、画素G41、画素B42、画素G43、画素B44の画素行とを含む。RAW画像データは、図2に示す画素構成が2次元的に配置されて形成される。RAW画像データにおいて、各画素は画素値として1つの色成分を持つ。具体的には、RAW画像データにおいて、画素R11、画素R13、画素R31、及び画素R33は赤の色成分(R)の画素値を持ち、画素G12、画素G14、画素G32、及び画素G34は緑の色成分(G1)の画素値を持ち、画素B22、画素B24、画素B42、及び画素B44は青の色成分(B)の画素値を持ち、画素G21、画素G23、画素G41、及び画素G43は緑の色成分(G2)の画素値を持つ。画素G12、画素G14、画素G32、及び画素G34は、画素G21、画素G23、画素G41、及び画素G43が同じ色の画素値である。
なお、画素G12、画素G14、画素G32及び画素G34は、水平方向及び垂直方向に1画素ずつ間隔を空けて繰り返される画素パターンで配置された第1の画素群に属する画素である。画素R11、画素R13、画素R31及び画素R33は、第1の画素群と同じく水平方向及び垂直方向に1画素ずつ間隔を空けた画素パターンで配置され、画素配置において第1の画素群とは水平方向にー1画素分だけ位相がずれた第2の画素群に属する画素である。画素B22、画素B24、画素B42及び画素B44は、第1の画素群と同じく水平方向及び垂直方向に1画素ずつ間隔を空けた画素パターンで配置され、画素配置において第1の画素群とは垂直方向に1画素分だけ位相がずれた第3の画素群に属する画素である。画素G21、画素G23、画素G41及び画素G43は、第1の画素群と同じく水平方向及び垂直方向に1画素ずつ間隔を空けた画素パターンで配置され、画素配置において第1の画素群とは水平方向にー1画素分かつ垂直方向に1画素分だけ位相がずれ第4の画素群に属する画素である。
図3は、RAW画像データから取得される色画像を模式的に示す。制御部110は、RAW画像データから、画素R11、画素R13、画素R31、及び画素R33の画素値を含む赤成分画像300Rと、画素G12、画素G14、画素G32、及び画素G34の画素値を含む緑成分画像300G1と、画素B22、画素B24、画素B42、及び画素B44の画素値を含む青成分画像300Bと、画素G21、画素G23、画素G41、及び画素G43の画素値を含む緑成分画像300G2とを取得する。制御部110は、赤成分画像300R、緑成分画像300G1、青成分画像300B、及び緑成分画像300G2のそれぞれの画素情報を圧縮する。
図4は、制御部110の圧縮処理を担う符号化器のブロック構成を示す。制御部110は、G1バッファ310と、DPCM符号化部318と、DPCM復号化部319と、G2バッファ340と、位相シフト部342と、DPCM符号化部348と、Rバッファ320と、位相シフト部322と、係数算出部324と、予測値生成部326と、DPCM符号化部328と、Bバッファ330と、位相シフト部332と、係数算出部334と、予測値生成部336と、DPCM符号化部338とを備える。
G1バッファ310は、RAW画像データから取得した緑成分画像300G1を保持する。G2バッファ340は、RAW画像データから取得した緑成分画像300G2を保持する。Rバッファ320は、RAW画像データから取得した赤成分画像300Rを保持する。Bバッファ330は、RAW画像データから取得した青成分画像300Bを保持する。DPPM符号化部318は、緑成分画像300G1の画素情報を、隣接画素の画素値との差分をとることによって、第1の画素群の画素値の圧縮情報を生成する。DPCM符号化部318は、緑成分画像300G1の色成分情報をDPCM符号化(Difference Pulse Code Modulation) 及びハフマン符号化によって圧縮する。DPCM復号化部319は、DPCM符号化部318が生成した情報を復号化することによって画素情報を生成する。
位相シフト部342は、DPCM復号化部319が生成した画素情報の画素配置上の位相をシフトすることによって、第4の画素群の各画素位置の緑色の画素値の予測値を算出する。DPCM符号化部348は、緑成分画像300G2の画素値から位相シフト部342が生成した画素値の予測値を減算することによって得られた差分画素値をDPCM符号化及びハフマン符号化によって圧縮して、第4の画素群の画素情報の圧縮情報を生成する。
位相シフト部322は、DPCM復号化部319が生成した画素情報の画素配置上の位相をシフトすることによって、第2の画素群の各画素位置の緑色画素値の予測値を算出する。係数算出部324は、赤成分画像300Rの画素値と、位相シフト部322が算出した予測値との相関情報を示す係数を算出する。予測値生成部326は、位相シフト部322が算出した予測値と、係数算出部324が算出した係数とを用いて、第2の画素群の各画素位置の赤色画素値の予測値を算出する。DPCM符号化部328は、赤成分画像300Rの画素値から、予測値生成部326が算出した予測値を減算することによって得られた差分画素値を、DPCM符号化及びハフマン符号化によって圧縮して、第2の画素群の画素情報の圧縮情報を生成する。
位相シフト部332は、DPCM復号化部319が生成した画素情報の画素配置上の位相をシフトすることによって、第3の画素群の各画素位置の緑色画素値の予測値を算出する。係数算出部334は、青成分画像300Bの画素値と、位相シフト部332が算出した予測値との相関情報を示す係数を算出する。予測値生成部336は、位相シフト部332が算出した予測値と、係数算出部334が算出した係数とを用いて、第3の画素群の各画素位置の青色画素値の予測値を算出する。DPCM符号化部348は、青成分画像300Bの画素値から、予測値生成部336が算出した予測値を減算することによって得られた差分画素値を、DPCM符号化及びハフマン符号化によって圧縮して、第3の画素群の画素情報の圧縮情報を生成する。
制御部110は、DPCM符号化部318が生成した第1の画素群の画素情報の圧縮情報、DPCM符号化部328が生成した第4の画素群の画素情報の圧縮情報、DPCM符号化部328が生成した第2の画素群の画素情報の圧縮情報、及びDPCM符号化部338が生成した第3の画素群の画素情報の圧縮情報と、係数算出部324が算出した係数情報及び係数算出部334が算出した係数情報とを含んで構成される圧縮データを、RAW画像データの圧縮データとして出力する。
なお、圧縮データに含める係数情報は、係数算出部324及び係数算出部334が算出した係数情報をそれぞれ予め定められた量子化幅で量子化した係数情報であってよい。また、符号化に非ロスレスの符号化方式を適用する場合は、復号化器で実行される処理と整合性を保つために、符号化により得られた情報を符号化器内で復号化して、復号化により得られた情報を用いて差分処理等の行う必要がある。
図5は、G2に対応する第4の画素群の圧縮情報を生成する処理を説明するための図である。図5において、「G2,x」は、第4の画素群に属する1つの画素の画素値を示す。「G1,0」、「G1,1」、「G1,2」及び「G1,3」は、G1に対応する第1の画素群のうち、水平方向及び垂直方向に1画素以内でG2,xの画素に隣接する画素の画素値を表す。
位相シフト部342は、G2,xの画素の周辺画素値G1,0、G1,1、G1,2及びG1,3の平均値を算出することにより、予測値Predを算出する。具体的には、位相シフト部342は、次の式により、予測値Predを算出する。
Pred=(G1,0+G1,1+G1,2+G1,3)/4
予測値Predは、G2,xの画素位置における緑色の画素値の予測値である。そのため、G2,xの画素値の予測値として、予測値Predを適用することができる。DPCM符号化部348は、差分情報G2,xーPredをDPCM符号化及びハフマン符号化することにより、第4の画素群の画素値の圧縮情報を生成する。
なお、図5の例では、注目画素の1画素以内に存在する周辺4画素のG1の画素値を用いて予測値Predを算出する。しかし、2画素以上離れた位置のG1の画素値を用いて予測値Predを算出してもよい。また、より長いタップ長さのFIRフィルタを用いて予測値Predを算出してもよい。
図6は、赤色(R)の色成分に対応する第2の画素群の圧縮情報を生成する処理を説明するための図である。図6において、「PR,G」は、第2の画素群に属する1つの画素の画素値の予測値を示す。「G1,0」、「G1,1」は、G1に対応する第1の画素群のうち、水平方向及び垂直方向に1画素以内でPR,Gの画素に隣接する画素の画素値を表す。位相シフト部322は、PR,Gの画素の周辺画素値G1,0及びG1,1の平均値を算出することにより、予測値PR,Gを算出する。具体的には、位相シフト部322は、次の式により、予測値PR,Gを算出する。
PR,G=(G1,0+G1,1)/2
予測値PR,Gは、第2の画素群に属する画素位置における緑色の画素値の予測値である。係数算出部324は、緑色の画素値の予測値から赤色の画素値の予測値を算出するために、予め定められた画像領域の画素情報を用いて回帰分析を行って、緑色の色成分と赤色の色成分の相関を表す係数を算出する。具体的には、第2の画素群の赤色の画素値の予測値PredRが、次の関数で算出されるものとする。
PredR=aR×PR,G+bR
ここで、PredRは従属変数であり、PR,Gは独立変数である。RAW画像データの第2の画素群の画素値をRとすると、係数算出部324は、誤差R-PredRが予め定められた閾値未満となるaR及びbRを、最小二乗法等によって算出する。DPCM符号化部328は、差分情報RーPredRをDPCM符号化及びハフマン符号化することにより、第2の画素群の画素値の圧縮情報を生成する。
図6の例では、注目画素の1画素以内に存在する周辺2画素のG1の画素値を用いて予測値PredRを算出する。しかし、2画素以上離れた位置のG1の画素値を用いて予測値PredRを算出してもよい。また、より長いタップ長さのFIRフィルタを用いて予測値PredRを算出してもよい。
図7は、青色(B)の色成分に対応する第3の画素群の圧縮情報を生成する処理を説明するための図である。図7において、「PB,G」は、第3の画素群に属する1つの画素の画素値の予測値を示す。「G1,0」、「G1,1」は、G1に対応する第1の画素群のうち、水平方向及び垂直方向に1画素以内でPB,Gの画素に隣接する画素の画素値を表す。位相シフト部332は、PB,Gの画素の周辺画素値G1,0及びG1,1の平均値を算出することにより、予測値PB,Gを算出する。具体的には、位相シフト部332は、次の式により、予測値PB,Gを算出する。
PB,G=(G1,0+G1,1)/2
予測値PB,Gは、第3の画素群に属する画素位置における緑色の画素値の予測値である。係数算出部334は、緑色の画素値の予測値から青色の画素値の予測値を算出するために、予め定められた画像領域の画素情報を用いて回帰分析を行って、緑色の色成分と青色の色成分の相関を表す係数を算出する。具体的には、第3の画素群の青色の画素値の予測値PredBが、次の関数で算出されるものとする。
PredB=aB×PB,G+bB
ここで、PredBは従属変数であり、PB,Gは独立変数である。RAW画像データの第3の画素群の画素値をBとすると、係数算出部334は、誤差B-PredBが予め定められた閾値未満となるaB及びbBを、最小二乗法等によって算出する。DPCM符号化部338は、差分情報BーPredBに対してDPCM符号化及びハフマン符号化することにより、第3の画素群の画素値の圧縮情報を生成する。
図7の例では、注目画素の1画素以内に存在する周辺2画素のG1の画素値を用いて予測値PredBを算出する。しかし、2画素以上離れた位置のG1の画素値を用いて予測値PredBを算出してもよい。また、より長いタップ長さのFIRフィルタを用いて予測値PredBを算出してもよい。
図6及び図7に関連して説明した回帰分析を行う対象となる画像領域は、複数の画素を含む領域であってよい。回帰分析を行う対象となる画像領域は画像全体の領域であってよい。なお、1つの画像データにおいて複数の画像領域毎に回帰分析を行う場合、各画像領域で算出された複数の係数情報の間の差分をとることによって、圧縮データに含める係数情報を圧縮してよい。なお、回帰分析において、色成分の間の相関が予め定められた値より低い場合は、相関情報を用いた圧縮は行わず、G1と同様にR及びBの色成分単独でDCPM及びハフマン符号化によって画素情報を圧縮してよい。例えば、制御部110は、誤差R-PredRが予め定められた閾値未満となるような係数を算出することができなかった場合に、Rの色成分の画素情報をDCPM及びハフマン符号化によって圧縮してよい。また、制御部110は、誤差B-PredBが予め定められた閾値未満となるような係数を算出することができなかった場合に、Bの色成分の画素情報をDCPM及びハフマン符号化によって圧縮してよい。
図8は、制御部110が備える復号化処理のブロック構成を示す。制御部110は、DPCM復号化部810と、G1バッファ800と、DPCM復号化部840と、位相シフト部844と、DPCM復号化部820と、位相シフト部824と、予測値生成部826と、DPCM復号化部830と、位相シフト部834と、予測値生成部836とを備える。
DPCM復号化部810は、圧縮データのうちの第1の画素群に対応するG1の圧縮情報をDPCM復号化して、第1の画素群に対応する緑色画像の画素情報を生成する。G1バッファ310は、緑成分画像の画素情報を保持する。
DPCM復号化部840は、圧縮データのうちの第4の画素群に対応するG2の圧縮情報をDPCM復号化して、第4の画素群に対応する緑色画像の画素値の差分情報を生成する。DPCM復号化部840により生成される差分情報は、上述した差分情報G2,x-Predである。位相シフト部844は、G1バッファ800に保持されている緑色画像の画素情報を用いて、G1に対応する画素値の予測値Predを生成する。DPCM復号化部840により生成される差分情報と位相シフト部844が生成した予測値Predとを加算することにより、RAW画像データのうちの第2の画素群の画素情報が生成される。
DPCM復号化部820は、圧縮データのうちの第2の画素群に対応するRの圧縮情報をDPCM復号化して、第2の画素群に対応する赤色画像の画素値の差分情報を生成する。DPCM復号化部820により生成される差分情報は、上述した差分情報R1-PredRである。
位相シフト部824は、G1バッファ800に保持されている緑色画像の画素情報を用いて、Rに対応する画素値の予測値PredR,Gを生成する。予測値生成部826は、位相シフト部824が生成した予測値PredR,Gと、圧縮データに含まれる係数aR及びbRとに基づいて、PredRを算出する。具体的には、予測値生成部826は、PredR=aR×PR,G+bRにより、PredRを算出する。予測値生成部826が生成した予測値PredRとDPCM復号化部820が生成した差分情報とを加算することにより、RAW画像データのうちの第2の画素群の画素情報が生成される。
DPCM復号化部830は、圧縮データのうちの第3の画素群に対応するBの圧縮情報をDPCM復号化して、第3の画素群に対応する青色画像の画素値の差分情報を生成する。DPCM復号化部830により生成される差分情報は、上述した差分情報B-PredBである。
位相シフト部834は、G1バッファ800に保持されている緑色画像の画素情報を用いて、Bに対応する画素値の予測値PredB,Gを生成する。予測値生成部836は、位相シフト部834が生成した予測値PredB,Gと、圧縮データに含まれる係数aB及びbBとに基づいて、PredBを算出する。具体的には、予測値生成部836は、PredB=aB×PB,G+bBにより、PredBを算出する。予測値生成部836が生成した予測値PredBとDPCM復号化部830が生成した差分情報とを加算することにより、RAW画像データのうちの第3の画素群の画素情報が生成される。
図9は、制御部110が実行する圧縮処理方法に関するフローチャートを示す。S910において、制御部110は、イメージセンサ120から読み出したRAW画像データを各色成分に分離して、G1バッファ310、G2バッファ340、Rバッファ320、及びBバッファ330に記憶する。
S920において、DPCM符号化部318は、第1の画素群に対応するG1の色成分の画素情報に対してDPCM符号化及びハフマン符号化を行う。S930において、DPCM復号化部319は、DPCM符号化部318により得られた画素情報を復号化する。
S940において、位相シフト部342、位相シフト部322、及び位相シフト部332は、DPCM復号化部319により得られた画素情報に基づいて、それぞれ第4の画素群、第2の画素群及び第3の画素群の各画素位置における予測値を算出する。
S950において、S930で生成されたG1の色成分の画素情報と位相シフト部342が生成した予測値との間の差分情報を生成する。S960において、DPCM符号化部348は、S950で生成された差分情報に対してDPCM符号化及びハフマン符号化を行う。
S970において、係数算出部324は、位相シフト部322が生成した予測値と、Rバッファ320に画素情報とを用いて、回帰分析によって上述した係数aR及びbRを算出する。S972において、予測値生成部326は、S970で算出した係数aR及びbRと、S940で生成された第2の画素群の画素位置における画素情報の予測値とに基づいて、Rの色成分の画素値の予測値を生成する。S974において、S910で生成されたRの色成分の画素値とS972で生成されたRの色成分の画素値の予測値との間の差分情報を生成する。S976において、DPCM符号化部328は、S974で生成された差分情報に対してDPCM符号化及びハフマン符号化を行う。
S980において、係数算出部334は、位相シフト部332が生成した予測値と、Bバッファ330に画素情報とを用いて、回帰分析によって上述した係数aB及びbBを算出する。S982において、予測値生成部336は、S980で算出した係数aB及びbBと、S940で生成された第3の画素群の画素位置における画素情報の予測値とに基づいて、Bの色成分の画素値の予測値を生成する。S984において、S910で生成されたBの色成分の画素値と、S982で生成されたBの色成分の画素値の予測値との間の差分情報を生成する。S986において、DPCM符号化部338は、S984で生成された差分情報に対してDPCM符号化及びハフマン符号化を行う。
以上の処理により、S960で生成された第1の画素群の符号化情報、S960で生成された第4の画素群の符号化情報、S976で生成された第2の画素群の符号化情報、及びS986で生成された第3の画素群の符号化情報と、S970で算出された係数情報及びS980で算出された係数情報とを含む圧縮データが生成される。
なお、S950及びS960の処理と、S970からS976の処理と、S980からS986の処理とは、並列に実行することができる。
図10は、制御部110が実行する復号化処理方法に関するフローチャートを示す。S1010において、制御部110は圧縮データからG1の色成分の圧縮情報を取得する。S1020において、DPCM復号化部810は、G1の色成分の圧縮情報をDPCM復号化し、G1バッファ800がDPCM復号化により生成されたG1の色成分の画素情報を保持する。
S1030において、位相シフト部844、位相シフト部824、及び位相シフト部834は、G1バッファ800に保持されたG1の色成分の画素情報に基づいて、それぞれ第4の画素群、第2の画素群及び第3の画素群の画素位置におけるG1の色成分の予測値を生成する。
S1040において、制御部110は圧縮データからG2の色成分の圧縮情報を取得する。S1050において、DPCM復号化部840は、S1040で取得した圧縮情報をDPCM復号化することにより、G2の色成分の画素値の差分情報を取得する。S1060において、制御部110は、S1050で取得したG2の色成分の画素値の差分情報と、S1030で位相シフト部844が生成した第4の画素群における予測値とを加算して、G2の色成分の画素情報を復元する。
S1070において、制御部110は圧縮データからRの色成分の圧縮情報を取得する。S1072において、DPCM復号化部820は、S1070で取得した圧縮情報をDPCM復号化することにより、Rの色成分の画素値の差分情報を取得する。S1074において、予測値生成部826は、Rの色成分に関する上記の係数を取得し、S1076において、取得した係数と、S1030で位相シフト部824が取得した第2の画素群における予測値とを用いて、Rの色成分の画素値の予測値を生成する。S1078において、制御部110は、S1076で生成したRの色成分の画素値の予測値と、S1072で取得したRの色成分の画素値の差分情報とを加算して、Rの色成分の画素情報を復元する。
S1080において、制御部110は圧縮データからBの色成分の圧縮情報を取得する。S1082において、DPCM復号化部830は、S1080で取得した圧縮情報をDPCM復号化することにより、Bの色成分の画素値の差分情報を取得する。S1084において、予測値生成部836は、Bの色成分に関する上記の係数を取得し、S1086において、S1084で取得した係数と、S1030で位相シフト部834が取得した第3の画素群における予測値とを用いて、Bの色成分の画素値の予測値を生成する。S1088において、制御部110は、S1086で生成したBの色成分の画素値の予測値と、S1082で取得したBの色成分の画素値の差分情報とを加算して、Bの色成分の画素情報を復元する。
図11は、動画データを圧縮する処理を説明するための図である。制御部110は、イメージセンサ120から順次に読み出し処理を行うことにより、動画構成画像1100、動画構成画像1101、及び動画構成画像1102を含む複数の動画構成画像のデータを取得する。制御部110がイメージセンサ120から読み出した動画構成画像のデータは、それぞれRAW画像データである。
動画構成画像1100は、時刻t0の動画構成画像である。動画構成画像1100は、動画圧縮処理の基準となる動画構成画像である。例えば、動画構成画像1100は、動画の符号化処理の対象となる動画構成画像のうちの最初の動画構成画像であってよい。動画構成画像1100は、動画においてシーンの変化が生じたタイミングの動画構成画像であってよい。
制御部110は、動画構成画像1100の画像データに対して、R及びBの各成分の画素情報を、色成分間の相関を用いずに圧縮する。例えば、制御部110は、R及びBの各成分の画素情報に対して、それぞれ色成分毎にDPCM符号化及びハフマン符号化を行う。続いて、制御部110は、圧縮により得られた動画構成画像1100の圧縮データを復号化してG1、R及びBの各成分の画素情報を取得し、取得したG1、R及びBの各成分の画素情報を用いて、上述した係数aR、bR、aB、及びbBを算出する。
続いて、制御部110は、動画構成画像1100の次の時刻t1に取得した動画構成画像1101の画像データを圧縮する場合に、動画構成画像1100の符号化において算出した係数aR及びbRを用いて、動画構成画像1101のRの色成分の画素情報を圧縮する。また、制御部110は、動画構成画像1100の符号化において算出した係数aB、及びbBを用いて、動画構成画像1101のBの色成分の画素情報を圧縮する。更に、制御部110は、圧縮により得られた動画構成画像1101の圧縮データを復号化してG1、R及びBの各成分の画素情報を取得し、算出したG1、R及びBの各成分の画素情報を用いて、上述した係数aR、bR、aB、及びbBを算出する。
続いて、制御部110は、動画構成画像1101の次の時刻t2に取得した動画構成画像1102の画像データを圧縮する場合に、動画構成画像1101の符号化において算出した係数aR及びbRを用いて、動画構成画像1102のRの色成分の画素情報を圧縮する。また、制御部110は、動画構成画像1101の符号化において算出した係数aB、及びbBを用いて、動画構成画像1102のBの色成分の画素情報を圧縮する。更に、制御部110は、圧縮により得られた動画構成画像1102の圧縮データを復号化してG1、R及びBの各成分の画素情報を取得し、算出したG1、R及びBの各成分の画素情報を用いて、上述した係数aR、bR、aB、及びbBを算出する。
動画構成画像1101及び動画構成画像1102の圧縮処理と同様の圧縮処理を動画構成画像1102より後の動画構成画像に対して繰り返すことによって、現在の動画構成画像を圧縮する場合に、直前の動画構成画像で算出した係数aB、及びbBを用いて符号化する。連続した動画構成画像の間の相関は比較的に高い場合が多いので、直前の動画構成画像の圧縮処理で算出した係数aR、bR、aB、及びbBを用いても圧縮性能の低下を抑制することができる。
なお、制御部110は、連続する動画構成画像の間でシーン変化が生じたと判断した場合に、シーン変化が生じた動画構成画像を動画圧縮処理の基準となる動画構成画像とし、R及びBの各成分の画素情報を色成分間の相関を用いずに圧縮してよい。制御部110は、連続する動画構成画像間の差分情報、撮像装置100の動き情報、ズーム情報、焦点情報等の変化に基づいて、シーン変化が生じたと判断してよい。
また、制御部110は、動画構成画像の圧縮データに係数aR、bR、aB、及びbBを含めなくてよい。圧縮データから動画構成画像を復号化する場合には、最初の基準となる動画構成画像の復号化により得られたG1、R及びBの各成分の画素情報を用いて係数を算出し、算出した係数を次の動画構成画像の復号化に用いればよい。その後の動画構成画像の復号化も同様に、直前の動画構成画像を復号化により得られたG1、R及びBの各成分の画素情報を用いて係数を算出し、算出した係数を次の動画構成画像の復号化に用いることを繰り返せばよい。
以上の例では、G1に対応する第1の画素群の画素情報を色成分単独で符号化し、G2に対応する第4の画素群と、Rに対応する第2の画素群と、Bに対応する第3の画素群の画素情報とを、G1に対応する第1の画素群の画素情報との相関情報を用いて圧縮する場合を説明した。しかし、G2に対応する第4の画素群の画素情報を色成分単独で符号化し、G1に対応する第1の画素群と、Rに対応する第2の画素群と、Bに対応する第3の画素群の画素情報とを、G2に対応する第4の画素群の画素情報との相関情報を用いて圧縮してもよい。また、G1に対応する第1の画素群の画素情報及びG2に対応する第4の画素群の画素情報を色成分単独で符号化し、Rに対応する第2の画素群と、Bに対応する第3の画素群の画素情報とを、G1に対応する第1の画素群及びG2に対応する第4の画素群との相関情報を用いて圧縮してもよい。その他、任意の特定の色成分の画素情報を色成分単独で符号化し、他の色成分の画素情報を、特定の色成分の画素情報との相関情報を用いて圧縮してよい。
以上の例では、各色成分の符号化にDPCM符号化及ハフマン符号化を用いる例を説明した。しかし、DPCM符号化及ハフマン符号化以外に、他の任意の符号化方式を適用することができる。例えば、モノクローム符号化等のように単一の色成分を独立に符号化する方式を適用することができる。また、以上の例では、画素配列がRGGBのベイヤ配列を例に挙げて説明した。しかし、RYYBベイヤ配列、クアッドベイヤ配列等、任意の画素配列の画像データに上述した圧縮処理を適用することができる。
以上に説明した撮像装置100によれば、RAW画像データを色成分間の相関を用いて圧縮するので、色成分間に存在する情報の冗長性を削減することができる。これにより、RAW画像データの圧縮効率を高めることができる。
上記のような撮像装置100は、移動体に搭載されてもよい。撮像装置100は、図12に示すような、無人航空機(UAV)に搭載されてもよい。UAV10は、UAV本体20、ジンバル50、複数の撮像装置60、及び撮像装置100を備えてよい。ジンバル50、及び撮像装置100は、撮像システムの一例である。UAV10は、推進部により推進される移動体の一例である。移動体とは、UAVの他、空中を移動する他の航空機などの飛行体、地上を移動する車両、水上を移動する船舶等を含む概念である。
UAV本体20は、複数の回転翼を備える。複数の回転翼は、推進部の一例である。UAV本体20は、複数の回転翼の回転を制御することでUAV10を飛行させる。UAV本体20は、例えば、4つの回転翼を用いてUAV10を飛行させる。回転翼の数は、4つには限定されない。また、UAV10は、回転翼を有さない固定翼機でもよい。
撮像装置100は、所望の撮像範囲に含まれる被写体を撮像する撮像用のカメラである。ジンバル50は、撮像装置100を回転可能に支持する。ジンバル50は、支持機構の一例である。例えば、ジンバル50は、撮像装置100を、アクチュエータを用いてピッチ軸で回転可能に支持する。ジンバル50は、撮像装置100を、アクチュエータを用いて更にロール軸及びヨー軸のそれぞれを中心に回転可能に支持する。ジンバル50は、ヨー軸、ピッチ軸、及びロール軸の少なくとも1つを中心に撮像装置100を回転させることで、撮像装置100の姿勢を変更してよい。
複数の撮像装置60は、UAV10の飛行を制御するためにUAV10の周囲を撮像するセンシング用のカメラである。2つの撮像装置60が、UAV10の機首である正面に設けられてよい。更に他の2つの撮像装置60が、UAV10の底面に設けられてよい。正面側の2つの撮像装置60はペアとなり、いわゆるステレオカメラとして機能してよい。底面側の2つの撮像装置60もペアとなり、ステレオカメラとして機能してよい。複数の撮像装置60により撮像された画像に基づいて、UAV10の周囲の3次元空間データが生成されてよい。UAV10が備える撮像装置60の数は4つには限定されない。UAV10は、少なくとも1つの撮像装置60を備えていればよい。UAV10は、UAV10の機首、機尾、側面、底面、及び天井面のそれぞれに少なくとも1つの撮像装置60を備えてもよい。撮像装置60で設定できる画角は、撮像装置100で設定できる画角より広くてよい。撮像装置60は、単焦点レンズまたは魚眼レンズを有してもよい。
遠隔操作装置12は、UAV10と通信して、UAV10を遠隔操作する。遠隔操作装置12は、UAV10と無線で通信してよい。遠隔操作装置12は、UAV10に上昇、下降、加速、減速、前進、後進、回転などのUAV10の移動に関する各種命令を示す指示情報を送信する。指示情報は、例えば、UAV10の高度を上昇させる指示情報を含む。指示情報は、UAV10が位置すべき高度を示してよい。UAV10は、遠隔操作装置12から受信した指示情報により示される高度に位置するように移動する。指示情報は、UAV10を上昇させる上昇命令を含んでよい。UAV10は、上昇命令を受け付けている間、上昇する。UAV10は、上昇命令を受け付けても、UAV10の高度が上限高度に達している場合には、上昇を制限してよい。
図13は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ1200の一例を示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200に、本発明の実施形態に係る装置に関連付けられるオペレーションまたは当該装置の1または複数の「部」として機能させることができる。例えば、コンピュータ1200にインストールされたプログラムは、コンピュータ1200に、制御部110として機能させることができる。または、当該プログラムは、コンピュータ1200に当該オペレーションまたは当該1または複数の「部」の機能を実行させることができる。当該プログラムは、コンピュータ1200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、及びRAM1214を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、入力/出力ユニットを含み、それらは入力/出力コントローラ1220を介してホストコントローラ1210に接続されている。コンピュータ1200はまた、ROM1230を含む。CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブが、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納してよい。ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/またはコンピュータ1200のハードウェアに依存するプログラムを格納する。プログラムが、CR-ROM、USBメモリまたはICカードのようなコンピュータ可読記録媒体またはネットワークを介して提供される。プログラムは、コンピュータ可読記録媒体の例でもあるRAM1214、またはROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ1200の使用に従い情報のオペレーションまたは処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、またはUSBメモリのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、USBメモリ等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ1200上またはコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。