(57)【要約】      （修正有）【課題】撮像方向を変更しながら撮像を複数回行うことで得た広角合成画像の符号化処理を、これまでよりも少ないメモリで実現すると共に、撮影終了から符号化完了までに要する時間をこれまでよりも短くする。【解決手段】撮像画像を一時的に記憶するためのメモリと、撮像画像を入力するたびに、入力した撮像画像の予め定められた領域の部分画像を抜き出し、当該部分画像を、メモリに格納されている従前に入力した撮像画像で得た合成画像に、位置合わせして合成することで、合成画像を更新する合成部と、更新後の合成画像が、予め設定された符号化単位のタイルのサイズになった場合、合成画像におけるタイルの画像を符号化する符号化部と、メモリにおける、符号化を終えたタイルを上書き可能に解放する解放部と、予め設定された条件を満たすまで、合成部、符号化部、解放部を繰り返すように制御し、広角合成画像の符号化データを生成する制御部とを有する。【選択図】図４
2019021968.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段の撮像方向を変えながら得た複数の画像から求めた広角合成画像を符号化する画像符号化装置であって、
撮像画像を一時的に記憶するためのメモリと、
前記撮像手段による撮像画像を入力するたびに、入力した撮像画像の予め定められた領域の部分画像を抜き出し、当該部分画像を、前記メモリに格納されている従前に入力した撮像画像で得た合成画像に、位置合わせして合成することで、前記合成画像を更新する合成手段と、
該合成手段による更新後の合成画像が、予め設定された符号化単位のタイルのサイズになった場合、前記合成画像における前記タイルの画像を符号化する符号化手段と、
前記メモリにおける、符号化を終えた前記タイルを上書き可能に解放する解放手段と、
予め設定された条件を満たすまで、前記合成手段、前記符号化手段、前記解放手段を繰り返すように制御し、広角合成画像の符号化データを生成する制御手段と
を有することを特徴とする画像符号化装置。
【請求項２】
前記制御手段は、前記予め設定された条件を満たすと判定した場合、前記合成手段による未符号化の合成画像の終端処理を行い、当該終端処理後の合成画像を前記符号化手段で符号化させることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記制御手段は、前記符号化手段で符号化データが得られるたびに、当該符号化データを、広角合成画像のファイルとして記録することになる不揮発性メモリに格納することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記制御手段は、前記符号化手段で符号化データが得られるたびに、当該符号化データを前記メモリに格納し、広角合成画像の全符号化データが前記メモリに格納された場合に、不揮発性メモリにファイルとして格納することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項５】
前記制御手段は、
前記合成手段で得た合成画像の縮小合成画像を生成して前記メモリに格納し、
予め設定された条件を満たした場合、前記メモリに格納された縮小合成画像を前記広角合成画像のサムネイルとして、前記不揮発性メモリのファイルの一部として格納する
ことを特徴とする請求項４に記載の画像符号化装置。
【請求項６】
前記制御手段は、
前記ファイルのヘッダに画像サイズ、タイルの分割数、各タイルの画像サイズ、タイル番号および表示領域範囲のうち少なくとも１つを含むシンタックスを格納することを特徴とする請求項４に記載の画像符号化装置。
【請求項７】
予め設定された条件は、目的とするサイズの広角合成画像を得ることができたことを条件とすることを特徴とする請求項１乃至６のいずれか１項に記載の画像符号化装置。
【請求項８】
撮像手段と、撮像画像を一時的に記憶するためのメモリを有し、前記メモリを用いて前記撮像手段の撮像方向を変えながら得た複数の画像から求めた広角合成画像を符号化する画像符号化装置の制御方法であって、
前記撮像手段による撮像画像を入力するたびに、入力した撮像画像の予め定められた領域の部分画像を抜き出し、当該部分画像を、前記メモリに格納されている従前に入力した撮像画像で得た合成画像に、位置合わせして合成することで、前記合成画像を更新する合成工程と、
該合成工程による更新後の合成画像が、予め設定された符号化単位のタイルのサイズになった場合、前記合成画像における前記タイルの画像を符号化する符号化工程と、
前記メモリにおける、符号化を終えた前記タイルを上書き可能に解放する解放工程と、
予め設定された条件を満たすまで、前記合成工程、前記符号化工程、前記解放工程を繰り返すように制御し、広角合成画像の符号化データを生成する制御工程と
を有することを特徴とする画像符号化装置の制御方法。
【請求項９】
コンピュータに、請求項８に記載の方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数枚の撮像画像を合成して得る広角画像の符号化技術に関するものである。
【背景技術】
【０００２】
近年、JＣＴ−ＶＣ（Joint Collaborative Team on Video Coding）において、Ｈ．２６４の後継となる次世代動画像符号化方式であるＨＥＶＣ（High Efficiency Video Coding）の標準化が進められている。ＨＥＶＣでは、Ｍａｉｎ  Ｓｔｉｌｌ  Ｐｉｃｔｕｒｅ  ｐｒｏｆｉｌｅなどの静止画用のプロファイルが存在し、動画だけでなく静止画の符号化も行うことができる。
【０００３】
また、デジタルカメラやカメラ機能付き携帯電話などを用いて、撮影範囲を動かしながら連続撮影し、得られた複数の画像を位置合わせして合成することで広角な画像を生成する手法が提案されている（特許文献１）。以下、このような手法を広角合成と呼び、合成された画像を広角合成画像と呼ぶ。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010-28764号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１の方法では、連続撮影で得られた複数の画像を位置合わせすることで広角合成画像の生成を待って符号化を行うため、より多くのメモリを必要とする。また、画像の全領域の合成処理が完了してから符号化を行うため、撮影から符号化完了までの処理時間が長くなる。結果、ユーザがディスプレイ上で広角合成画像を確認するためまで、多くの時間待たなければならない。
【０００６】
本発明は撮像方向を変更しながら撮像を複数回行うことで得た広角合成画像の符号化処理を、これまでよりも少ないメモリで実現すると共に、撮影終了から符号化完了までに要する時間をこれまでよりも短くする技術を提供する。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
撮像手段の撮像方向を変えながら得た複数の画像から求めた広角合成画像を符号化する画像符号化装置であって、
撮像画像を一時的に記憶するためのメモリと、
前記撮像手段による撮像画像を入力するたびに、入力した撮像画像の予め定められた領域の部分画像を抜き出し、当該部分画像を、前記メモリに格納されている従前に入力した撮像画像で得た合成画像に、位置合わせして合成することで、前記合成画像を更新する合成手段と、
該合成手段による更新後の合成画像が、予め設定された符号化単位のタイルのサイズになった場合、前記合成画像における前記タイルの画像を符号化する符号化手段と、
前記メモリにおける、符号化を終えた前記タイルを上書き可能に解放する解放手段と、
予め設定された条件を満たすまで、前記合成手段、前記符号化手段、前記解放手段を繰り返すように制御し、広角合成画像の符号化データを生成する制御手段とを有する。
【発明の効果】
【０００８】
本発明によれば、撮像方向を変更しながら撮像を複数回行うことで得た広角合成画像の符号化処理を、これまでよりも少ないメモリで実現すると共に、撮影終了から符号化完了までに要する時間をこれまでよりも短くすることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施形態が適用する撮像装置の斜視図。
【図２】実施形態が適用する撮像装置のブロック構成図。
【図３】実施形態における符号化処理部のブロック構図。
【図４】実施形態における符号化の処理を示すフローチャート。
【図５】実施形態における合成画像領域とタイルサイズと非撮像領域の関係を示す図。
【図６】実施形態における終端画像の付加の一例を示す図。
【図７】実施形態における表示領域の算出の一例を示す図。
【図８】実施形態における合成画像領域に記憶される画像と、符号化された画像の一例を示す図。
【図９】第２の実施形態における符号化処理を示すフローチャート。
【図１０】第３の実施形態における符号化処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
［第１の実施形態］
＜装置構成＞
図１は、実施形態の画像符号化装置が適用する撮像装置１００の斜視図である。なお、レンズは図示の背面側に設けられるものである
表示部１１６は画像や各種情報を表示する表示部である。操作部１０４はユーザーからの各種操作を受け付ける各種スイッチ、ボタン、シャッターボタン、モード切り替えボタン、タッチパネル、コントローラホイール等の操作部材より成る操作部である。電源のオンとオフを切り替える電源スイッチもこれに含まれる。
【００１２】
＜全体ブロック図＞
図２は、撮像装置１００のブロック構成を示す図である。撮像装置１００は、図２に示すように、ＣＰＵ１０１、メモリ１０２、不揮発性メモリ１０３、操作部１０４、撮像レンズ１１１、撮像部１１２、画像処理部１１３、符号化処理部１１４、表示制御部１１５、表示部１１６、通信制御部１１７、通信部１１８、記録媒体制御部１１９、記録媒体１２０、検出部１４０、及び内部バス１３０を有する。
【００１３】
ＣＰＵ１０１は、不揮発性メモリ１０３に記憶されているコンピュータプログラムを実行することによって、撮像装置１００の各部の動作を制御する。メモリ１０２は、書き換え可能な揮発性メモリ（ＲＡＭ）であり、一時的に撮像装置１００の各部の動作を制御するコンピュータプログラム、各部の動作に関するパラメータ等の情報、通信制御部１１７によって受信した情報等を記憶する。メモリ１０２は、撮像部１１２、画像処理部１１３、符号化処理部１１４等で処理した画像や情報を一時的に記憶するワークメモリとしても機能する。
【００１４】
不揮発性メモリ１０３は、電気的に消去・記録可能なメモリであり、例えばＥＥＰＲＯＭやＳＤメモリカード等の記憶媒体が用いられる。不揮発性メモリ１０３は、撮像装置１００の各部の動作を制御するコンピュータプログラム及び各部の動作に関するパラメータ等の情報を記憶する。ここでいう、コンピュータプログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムが含まれる。
【００１５】
操作部１０４は、撮像装置１００を操作するためのユーザインターフェースを提供する。操作部１０４は、撮像装置１００の電源ボタン及びメニューボタン、シャッターボタン、モード切り替えボタン等を有し、各ボタンはスイッチ、タッチパネル等により構成される。ＣＰＵ１０１は、操作部１０４を介して入力されたユーザの指示に従って撮像装置１００を制御する。なお、操作部１０４は、不図示のリモートコントローラから受信したリモコン信号や、不図示の携帯端末から通信制御部１１７を介して通知された要求に応じて撮像装置１００を制御してもよい。
【００１６】
撮像レンズ１１１は、ズームレンズ、フォーカスレンズを含むレンズ群、レンズ制御部、絞りなどにより構成される。撮像レンズ１１１は図示しないレンズ制御部を有し、ＣＰＵ１０１から送信される制御信号により、焦点の調整や絞り値（Ｆ値）を制御する。
撮像部１１２は、被写体の光学像を電気信号に変換する撮像素子を備える。撮像素子は、例えばＣＣＤ（電荷結合素子）やＣＭＯＳ（相補型金属酸化膜半導体）素子等で構成されるエリアイメージセンサである。撮像部１１２は撮像した画像を画像処理部１１３またはメモリ１０２に出力する。
【００１７】
画像処理部１１３は、撮像部１１２から出力されるデータ、又は、メモリ１０２から読み出されたデータに対し所定の画素補間、縮小といったリサイズ処理、アスペクト比を合わせるための画像の付与、色変換処理等を行う。また、画像処理部１１３では、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてＣＰＵ１０１が露光制御、測距制御を行う。これにより、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＡＦ（オートフォーカス）処理が行われる。
【００１８】
また、画像処理部１１３では、画像データの位置合わせを行い、位置合わせした複数枚の画像を合成して、広角な合成画像を生成する広角合成を行う。本実施形態における広角合成の詳細は後述する。
【００１９】
符号化処理部１１４は、入力された画像データを画面内予測及び画面間予測符号化することでデータサイズを圧縮する。符号化処理部１１４は、例えばＨＥＶＣ方式で圧縮処理を行う。符号化処理部１１４の詳細な説明は図３を用いて後述する。
【００２０】
表示制御部１１５は、表示部１１６を制御するための制御部である。表示制御部１１５は表示部１１６で表示可能な画像になるようにリサイズ処理や色変換処理等を行い、画像信号を表示部１１６に出力する。
【００２１】
表示部１１６は、液晶ディスプレイや有機ＥＬ等で構成されており、表示制御部１１５からの画像データに基づく画像を表示する。なお、表示部１１６の前面にはタッチパネルが設けられ、ユーザからの操作を受け付ける操作部も兼ねる。
【００２２】
通信制御部１１７は、ＣＰＵ１０１に制御され、ＩＥＥＥ８０２．１１等で予め定められた無線通信規格に適用した変調信号を生成して、通信部１１８へ出力する。また、通信制御部１１７は、通信部１１８より無線通信規格に適用した変調信号を受信して復号することでアナログ信号をデジタル信号変換してＣＰＵ１０１に通知する。また、通信制御部１１７は通信を設定するためのレジスタを持っており、ＣＰＵ１０１から制御されることで通信時の送受信感度を調整し、所定の変調方式で送受信をおこなうことができる。通信部１１８は、通信制御部１１７から送られてくる変調信号を外部へ出力、もしくは外部からの変調信号を受信するアンテナ及び、アナログ回路等により構成される。
【００２３】
記録媒体制御部１１９は、記録媒体１２０を制御するための制御部であり、ＣＰＵ１０１から要求を受けて、記録媒体１２０を制御するための制御信号を出力する。記録媒体１２０は、撮像され符号化された画像データを記録するための着脱式、または内蔵式の不揮発性メモリや磁気ディスク等から構成される。なお、ＣＰＵ１０１が記録媒体１２０に記録する場合には、記録媒体のファイルシステムに適応した形式でファイルデータとして保存する。ここでいうファイルデータとは、ＭＰ４ファイル（ＩＳＯ/ＩＥＣ １４４９６-１４:２００３）やＭＸＦ（Ｍａｔｅｒｉａｌ ｅＸｃｈａｎｇｅ Ｆｏｒｍａｔ）ファイル等のコンテナを示す。
【００２４】
検出部１４０は、ジャイロセンサや加速度センサ等を含む。ＣＰＵ１０１は、検出部１４０の検出結果から撮像装置１００の撮影の視線方向（角度）と移動量を算出する。例えば、検出部１４０の検出結果が角速度もしくは加速度の場合、ＣＰＵ１０１は、それぞれ積分することで角度と位置を算出する。角度と位置を検出することにより、パンニング操作（撮像方向を変更する操作）と撮像状態（シャッター全押し状態）が継続しているか検出することもできる。
【００２５】
内部バス１３０は、ＣＰＵ１０１とメモリ１０２に各処理部がアクセスするための内部バスである。
【００２６】
＜符号化処理部１１４の詳細＞
次に実施形態における符号化処理部１１４の構成及び処理の流れを図３に示すブロック図を参照して説明する。なお、本実施形態ではタイルとスライスのサイズは同じサイズとするが、画像を垂直方向にのみ分割する場合は、タイルは分割せず、スライスのみ分割して処理してもよい。また、本実施形態は静止画を対象としているため、画面内符号化のみ説明し、画面間符号化の説明は省略する。
【００２７】
画像分割制御部３０１は、ＣＰＵ１０１からのパラメータに従って、撮像画像を分割する。なお、指示内容によっては分割しない場合もある。ここで、スライスまたは及びタイルへの分割が、ここで言う画像分割に相当する。分割画像のサイズは、垂直、水平方向の画素数で定義されるものとする。
【００２８】
画像分割制御部３０１は、決定した座標位置で、符号化対象の画像をタイル状に分割し、各分割領域（以下、この領域を単にタイルと呼ぶ）に番号（以下、タイル番号という）を付す。そして、画像分割制御部３０１は、タイル番号と符号化対象の画像におけるタイルの位置とを対応づける。なお、各タイルのサイズはＣＴＢ（Ｃｏｒｄｉｎｇ  Ｔｒｅｅ  Ｂｌｏｃｋ）の数を示す各種情報で決定される。
【００２９】
そして、画像分割制御部３０１は、符号化処理中に、タイル毎の予測符号化条件を予測符号化方法決定部３０２へ出力する。この予測符号化条件には、或るタイル内の着目画素ブロックを符号化する際、その着目画素ブロック（符号化対象ブロック）の予測画素ブロックを取得する範囲を規定する情報が含まれる（詳細後述）。なお、ここで言う画素ブロックは例えば８×８画素として説明するが、これに限らない。
【００３０】
予測符号化方法決定部３０２は、画像分割制御部３０１から入力される画像分割情報及び予測符号化条件に基づき符号化対象画面内の各画素ブロックに対する予測方法を決定する。予測符号化方法決定部３０２は、入力される画像信号と符号化済みの復号画像を格納するメモリ１０２から読み出した符号化済み画素値から簡易的な画面内予測を行うことにより符号化効率を示す評価値を算出する。そして、予測符号化方法決定部３０２は、その符号化効率が最適となる予測方式を決定し、決定した予測方式を特定する符号化用パラメータを予測符号化処理部３０３へ出力する。
【００３１】
予測符号化処理部３０３は、符号化対象のフレーム中の着目タイル内の着目画素ブロックを符号化する際、予測符号化方法決定部３０２により決定された予測符号化用パラメータに応じて、メモリ１０２から読出した符号化済み画像から予測画素ブロックを生成する。そして、予測符号化処理部３０３は、着目画素ブロックと予測画素ブロックの差分である予測残差ブロックを、直交変換・量子化部３０５へ出力する。また、予測符号化処理部３０３は、予測画素ブロックを局所復号化部３０６に出力する。
【００３２】
直交変換・量子化部３０５は、与えられた予測残差ブロックに対して直交変換処理（ＤＣＴがその代表である）を行う。また、直交変換・量子化部３０５は、後述する符号量制御部３０７から設定された量子化パラメータに応じた量子化ステップを用いて、直交変換して得られた係数を量子化する。その量子化後の係数（量子化データ）はエントロピー符号化部３０８、局所復号化部３０６へ供給される。
【００３３】
局所復号化部３０６は、入力した量子化データに対し逆量子化処理、逆直交変換処理を行うことで、予測残差データを生成する。そして、局所復号化部３０６は、予測符号化処理部３０３から入力される予測画素ブロックに、生成された予測残差データを加算して復号処理を行い画素ブロックを生成する。そして、局所復号化部３０６は、生成された画素ブロックを、注目画素ブロックに後続する画素ブロックの符号化のためにメモリ１０２へ格納する。メモリ１０２へ格納された復号後の画像データは、以降の画面内予測処理に利用される。更にデブロッキングフィルタ処理が施された復号した画素ブロックをメモリ１０２へ保持する。
【００３４】
エントロピー符号化部３０８では、入力された量子化データに対してスライス単位にＣＡＢＡＣ（コンテキスト適応型２値算術符号化）によるエントロピー符号化処理を行う。エントロピー符号化部３０８は、このため入力される量子化データ（多値データ）を２値データに変換する２値化部、その２値化部により生成された２値化データを格納する２値化データ・メモリを有する。また、エントロピー符号化部３０８は、２値化データの発生確率をコンテキストに応じて計算し、保持するコンテキスト計算部、及びコンテキスト計算部により供給される発生確率に応じて算術符号化を行う算術符号化部を有する。エントロピー符号化部３０８は、こうして符号化したデータをメモリ１０２または多重化処理部３０９へ供給すると共に、発生符号量を符号量制御部３０７へ出力する。
【００３５】
符号量制御部３０７は、符号化ピクチャバッファをオーバーフロー、又はアンダーフローさせないように符号化データの符号量を制御する処理部である。符号量制御部３０７は、エントロピー符号化部３０８から供給されるエントロピー符号化後の発生符号量を元に、後続して入力するフレームに対する量子化パラメータを生成し、直交変換・量子化部３０５へ供給する。
【００３６】
多重化処理部３０９は、ファイルヘッダに画像サイズ、タイルの分割数、各タイルの画像サイズ、タイル番号、表示領域範囲などのシンタックスなどを格納する。多重化処理部３０９は、シンタックス値に仮の値を指定してメモリ１０２や記録媒体１２０に格納し、格納した仮の値を書き替えることも可能である。
【００３７】
なお、水平方向の画像サイズのシンタックスは、ｐｉｃ＿ｗｉｄｔｈ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓであり、垂直方向の画像サイズのシンタックスは、ｐｉｃ＿ｈｅｉｇｈｔ＿ｉｎ＿ｌｕｍａ＿ｓａｍｐｌｅｓである。
【００３８】
水平方向のタイル分割数のシンタックスは、水平方向のタイル分割数のシンタックスはｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１であり、垂直方向のタイル分割数のシンタックスはｎｕｍ_ｔｉｌｅ_ｒｏｗｓ_ｍｉｎｕｓ１である。
【００３９】
各タイルの水平方向の画像サイズのシンタックスは、ｃｏｌｕｍｎ＿ｗｉｄｔｈ＿ｍｉｎｕｓ１［ｉ］であり、各タイルの垂直方向の画像サイズのシンタックスは、ｃｏｌｕｍｎ＿ｈｅｉｇｈｔ＿ｍｉｎｕｓ１［ｉ］である。
【００４０】
表示領域の左端のオフセットのシンタックスは、ｃｏｎｆ＿ｗｉｎ＿ｌｅｆｔ＿ｏｆｆｓｅｔである。表示領域の右端のオフセットのシンタックスは、ｃｏｎｆ＿ｗｉｎ＿ｒｉｇｈｔ＿ｏｆｆｓｅｔである。表示領域の上端のオフセットのシンタックスは、ｃｏｎｆ＿ｗｉｎ＿ｔｏｐ＿ｏｆｆｓｅｔである。表示領域の下端のオフセットのシンタックスは、ｃｏｎｆ＿ｗｉｎ＿ｂｏｔｔｏｍ＿ｏｆｆｓｅｔである。
【００４１】
なお、タイル番号が、タイルを単位とするラスタースキャン順に符番されることが、符号化、復号化を行う装置双方の共通事項である場合にはタイル番号は不要としてもよい。
【００４２】
＜撮像装置１００の全体の処理フロー＞
図４に撮像装置１００における処理全体の一例を示す。図４は本実施形態の処理の広角合成モードの処理の流れを示すフローチャートである。操作部１０４に設けられたモード切り替えスイッチで、広角合成モードが選択された場合に図４の処理を実行する。
【００４３】
なお、本実施形態におけるフローチャートの制御プログラムは、撮像装置１００の電源がＯＮの状態において、不揮発性メモリ１０３に格納されているプログラムをメモリ１０２に展開してＣＰＵ１０１が実行する。本実施形態における撮像装置１００の制御プログラムは、定期的に処理を繰り返し実行してもよい。
【００４４】
本実施形態では、ユーザは撮像装置１００を水平方向にパンニング操作を行い、そのパンニング操作中に連続撮影を行い、広角画像を生成して符号化する処理を示す。従って以下の説明では、撮影するたびに撮像装置１００の視線方向が水平方向に移動することになる点に注意されたい。また、本実施形態では、最初に符号化するタイルから最後に符号化するタイルの１つ前のタイルまでは、同じタイルサイズで符号化する。このタイルサイズを基準タイルサイズと呼ぶ。また、この基準タイルの垂直方向の長さである画素数は、撮像部１１２が撮像する画像の垂直方向の画素数より予め設定された値以上大きい。この値は、ユーザが水平方向にパンニング操作を行う場合に、垂直方向のブレを吸収するためのものであり、適宜設定できるものとする。
【００４５】
Ｓ１００において、ＣＰＵ１０１は、操作部１０４の設定ボタンが押されたか否かの判定を行う。ＣＰＵ１０１は、設定ボタンが押されたと判定された場合、本フローチャートにおける処理をＳ１００からＳ１０１へ進め、設定ボタンが押されなかったと判定された場合、本フローチャートにおける処理をＳ１００からＳ１０２へ進める。設定が変更されなかった場合で、初めて動作させる場合は初期設定値を使用する。
【００４６】
Ｓ１０１において、ＣＰＵ１０１は、ユーザによる操作部１０４の操作に応じて、撮影のパンニング角度やパンニングの方向、作成しようとする広角合成画像の解像度（サイズ）などの設定を変更する。ＣＰＵ１０１は、設定に応じて基準タイルサイズ、合成画像用の記憶領域（以下、合成画像領域と呼ぶ）のサイズ、最大画像サイズを決定し、本フローチャートにおける処理をＳ１０１からＳ１０２へ進める。
【００４７】
Ｓ１０２において、ＣＰＵ１０１は、操作部１０４のシャッタースイッチが半押しされたか判定する。Ｓ１０２において、シャッタースイッチが半押しされたと判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０２からＳ１０３へ進める。Ｓ１０２において、シャッタースイッチが半押しされなかったと判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０２からＳ１００に戻す。
【００４８】
Ｓ１０３において、ＣＰＵ１０１は、ＡＥ処理とＡＦ処理を行い、本フローチャートにおける処理をＳ１０３からＳ１０４に進める。
【００４９】
Ｓ１０４において、ＣＰＵ１０１は、操作部１０４のシャッタースイッチが全押しされたか判定する。Ｓ１０２において、シャッタースイッチが全押しされたと判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０４からＳ１０６へ進める。Ｓ１０２において、シャッタースイッチが全押しされなかったと判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０４からＳ１０５へ進める。
【００５０】
Ｓ１０５において、ＣＰＵ１０１は、操作部１０４のシャッタースイッチが半押しされたままかどうかを判定する。Ｓ１０５において、シャッタースイッチが半押しされたままと判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０５からＳ１０３に戻す。Ｓ１０５において、シャッタースイッチが半押しされていない（シャッタースイッチが解放された）と判定された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１０５からＳ１００に戻す。
【００５１】
Ｓ１０６において、ＣＰＵ１０１は、撮像部１１２により連続撮影の最初の撮影を行う。
【００５２】
Ｓ１０７において、ＣＰＵ１０１は、Ｓ１０６で撮影された画像をメモリ１０２の合成画像領域に記憶する。そして、ＣＰＵ１０１は、処理をＳ１０７からＳ１０８へ進める。
【００５３】
ここで、実施形態におけるＳ１０７の処理の例を図５を用いて説明する。本実施形態では、図５（Ａ）に示すように、１枚の画像に対する合成画像領域としてタイル１からタイル３までの３領域を確保しているものとする。図５（Ａ）に示した３領域は、それぞれ基準タイルサイズと同じサイズとする。パンニングの方向と垂直となる方向の基準タイルのサイズは、撮像された画像サイズよりも大きいサイズとする。撮像した画像を縮小した画像を合成に使用する場合、縮小した画像サイズよりも大きいサイズとする。
【００５４】
図５（Ｂ）に示すように撮像した画像の中央部をクロップして、図５（Ｃ）に示すようにメモリ１０２に確保した合成画像領域のタイル１に記憶する。この際、パンニングの方向と垂直な方向に関して、合成画像領域の方がサイズが大きい。このため、最初に撮影した画像については、クロップした画像の上端と下端に非撮像領域が位置するように、そのクロップした画像が中央の位置となるようにメモリ１０２の合成画像領域に記憶する。そして、ＣＰＵ１０１は、非撮像領域は全画素「黒」の画素値を合成画像領域に書き込む（以後、黒埋めと呼ぶ）。なお、非撮像領域に書き込む画素値は、全画素白の画素値や全画素グレーの画素値、その他の決められた画像パターンなどでもよい。また、クロップされる画像の範囲は、検出部１４０の検出結果から算出されたパンニングの量に応じて決定するようにしてもよい。
【００５５】
Ｓ１０８において、ＣＰＵ１０１は、多重化処理部３０９により、記録媒体１２０に画像サイズ、タイル分割数、タイルサイズ、表示領域のシンタックスに仮の値を設定した情報を含んだファイルヘッダを記録する。そしてＣＰＵ１０１は、処理をＳ１０８からＳ１０９へ進める。
【００５６】
Ｓ１０９において、ＣＰＵ１０１は、撮像部１１２により撮影を行わせる。そして、ＣＰＵ１０１は、処理をＳ１０９からＳ１１０へ進める。
【００５７】
Ｓ１１０において、ＣＰＵ１０１は、画像処理部１１３によりメモリ１０２の合成画像領域に既に記憶されている合成画像を位置合わせの基準として、Ｓ１０９で取得した画像の中央部をクロップした画像との位置合わせを行う。位置合わせは、画像を任意のサイズの小ブロックに分割して、小ブロック毎に輝度のＳＡＤ（Ｓｕｍ ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）が最小となる対応点を算出する。この処理は、動きベクトルの算出方法などと同等の処理で構わない。そして、ＣＰＵ１０１はメモリ１０２に位置合わせ情報を記憶し、処理をＳ１１０からＳ１１１へ進める。
【００５８】
Ｓ１１１において、ＣＰＵ１０１は、画像処理部１１３によりＳ１１０で位置合わせされた画像を、従前の合成画像に合成して、メモリ１０２の合成画像領域に記憶する。つまり、合成画像の更新である。なお、画像が重複する領域は加重加算を行い合成する。この後、ＣＰＵ１０１は、処理をＳ１１１からＳ１１２へ進める。
【００５９】
Ｓ１１２において、ＣＰＵ１０１は、メモリ１０２の合成画像領域に記憶された更新後の合成画像（記憶領域）が所定の条件を満たしたか判定する。本実施形態では、メモリ１０２の合成画像領域に記憶された合成画像サイズが、符号化されるタイルのタイルサイズ以上となることを条件とする。Ｓ１１２において、メモリ１０２の合成画像領域に記憶された画像サイズが符号化されるタイルのタイルサイズ以上と判定された場合、ＣＰＵ１０１は、処理をＳ１１２からＳ１１３へ進める。また、Ｓ１１２において、メモリ１０２の合成画像領域に記憶された画像サイズが次に符号化されるタイルのタイルサイズ未満と判定された場合、ＣＰＵ１０１は、処理をＳ１１２からＳ１１５へ進める。
【００６０】
Ｓ１１３において、ＣＰＵ１０１は、符号化対象のタイルを符号化処理部１１４で符号化し、符号化したＨＥＶＣストリームを記録媒体１２０に記録する。ＣＰＵ１０１は、符号化したタイルのサイズ情報をメモリ１０２に記憶する。そして、ＣＰＵ１０１は、処理をＳ１１３からＳ１１４へ進める。
【００６１】
Ｓ１１４において、ＣＰＵ１０１は、Ｓ１１３で符号化したタイルのメモリ領域を上書き可能にする（メモリ領域を解放する）。そして、ＣＰＵ１０１は、処理をＳ１１４からＳ１１５へ進める。
【００６２】
Ｓ１１５において、ＣＰＵ１０１は、操作部１０４のシャッタースイッチが全押しされているか否か、または検出部１４０によりパンニングが継続しているか検出することにより撮影が継続しているか判定する。撮影が継続していると判断された場合、ＣＰＵ１０１は、本フローチャートにおける処理をＳ１１５からＳ１１６へ進める。撮影が継続していないと判断された場合、ＣＰＵ１０１は、処理をＳ１１５からＳ１１７へ進める。
【００６３】
Ｓ１１６において、ＣＰＵ１０１は、Ｓ１１６の処理までに合成された合成画像のサイズが目的とする最大画像サイズ以上のサイズかどうか判定する。
【００６４】
具体的には、目標とする広角合成画像の水平方向のサイズ（画素数）をＷ、合成画像領域の１つのタイルの水平方向のサイズをＴｗ、Ｓ１１４の解放処理後に合成画像領域に残っている合成画像の水平方向のサイズをＬｗとする。そして、Ｓ１１３の符号化処理の実行回数をｎとしたとき、ＣＰＵ１０１は次式を満たすか否かを判定すれば良い。
Ｗ≦Ｔｗ×ｎ＋Ｌｗ
【００６５】
さて、この合成画像のサイズが最大画像サイズ以上のサイズになったと判定された場合、ＣＰＵ１０１は、処理をＳ１１６からＳ１１７へ進める。合成画像のサイズが最大画像サイズ未満のサイズと判定された場合、ＣＰＵ１０１は、処理をＳ１１６からＳ１０９に戻す。
【００６６】
なお、Ｓ１１６にて、ＣＰＵ１０１は、シャッタースイッチが解放状態にあると判断し場合にも、Ｓ１１７に処理を進めるようにして良い。
【００６７】
Ｓ１１７において、ＣＰＵ１０１は、メモリ１０２の残っている未符号化の合成画像に終端画像の付加が必要であれば、終端画像を付加する。ＨＥＶＣの符号化のタイルサイズは、ＣＴＵ（Ｃｏｄｉｎｇ Ｔｒｅｅ Ｕｎｉｔ）単位のサイズなので、ＣＴＵの倍数のサイズとなるように、黒画像を埋め込む。以後、この処理を終端処理と呼ぶ。ＣＰＵ１０１は、この後、処理をＳ１１７からＳ１１８に進める。
【００６８】
図６を用いて終端処理の例を説明する。メモリ１０２の合成画像領域には、図６（Ａ）のような画像が記憶されているものとする。図６（Ｂ）は、符号化するタイルのサイズが基準タイルと同じタイルサイズとなるように非撮像領域に黒埋めした例を示している。そして、図６（Ｃ）は、符号化するタイルのサイズが小さくなるように、非撮像領域に黒埋め画像した例である。黒太線が基準タイルサイズを示している。黒点線が終端画像を付加し、最後に符号化するタイルのタイルサイズを示している。斜め線のハッチングは非撮像領域を示している。網点のハッチングは上書き可能領域を示している。
【００６９】
Ｓ１１８において、ＣＰＵ１０１は、終端処理後の未符号化の合成画像を符号化処理部１１４で符号化させ、符号化したＨＥＶＣストリームを記録媒体１２０に記録する。ＣＰＵ１０１は、符号化したタイルのサイズ情報をメモリ１０２に記憶する。ＣＰＵ１０１は、本フローチャートにおける処理をＳ１１８からＳ１１９へ進める。
【００７０】
Ｓ１１９において、ＣＰＵ１０１は、メモリ１０２に記憶されている符号化されたタイルサイズの総和から画像サイズを算出する。また、ＣＰＵ１０１は、メモリ１０２に記憶されている位置合わせ情報から表示領域を算出する。ＣＰＵ１０１は、多重化処理部３０９により、記録媒体１２０に仮の値を設定したファイルヘッダの画像サイズ、タイル分割数、タイルサイズ、表示領域のシンタックスを上書きする。ＣＰＵ１０１は、本フローチャートにおける処理を終了する。
【００７１】
図７を参照して表示領域の算出の例を説明する。図７（Ａ）は画像サイズと表示領域のシンタックスの関係を示した図である。図７（Ｂ）と図７（Ｃ）は水平方向に６分割されたタイルにより符号化された画像を示している。図７（Ｂ）と図７（Ｃ）は、終端処理が異なっており、図７（Ｂ）は、図６（Ｂ）の終端処理を行った画像であり、図７（Ｃ）は、図６（Ｃ）の終端処理を行った画像である。
【００７２】
表示領域は、撮像領域のみが含まれる矩形とする。パンニングと垂直な方向の撮像領域は、位置合わせした画像の位置ずれ量から算出することができる。パンニングと同じ方向の撮像領域は、タイルのサイズの和から算出することができる。
【００７３】
図７の黒太線は符号化されたタイルサイズを示し、黒点線は表示領域を示し、斜め線のハッチングは非撮像領域を示している。図７（Ｄ）は表示領域のみを示した図である。図７（Ｂ）と図７（Ｃ）の表示領域は同じ領域となる。なお、表示領域は、図７（Ｃ）の有意な合成画像に内接する最大矩形領域としても良い。
【００７４】
次に、実施形態におけるメモリ１０２に確保された合成画像領域への画像の格納と、符号化処理の推移を図８を参照して説明する。同図は、上から下に向かって時間が流れるものとする。
【００７５】
符号８０１乃至８０７は合成画像領域への画像の格納状態を示し、符号８１１〜８１８は符号化された合成画像を示している。合成画像８１７と８１８は終端処理の違いを示している。図８における黒太線は基準タイルサイズを示している。合成画像８１７、８１８における黒点線は表示領域を示している。図８の斜め線のハッチングは非撮像領域を示している。図８の合成画像領域における網点ハッチングは上書き可能領域を示している。
【００７６】
最初の撮影（Ｓ１０６）で得た画像からクロップされた部分画像は、合成画像領域のタイル１に格納される（状態８０１）。そして、次に撮影された画像からクロップされた部分画像が、タイル１に格納されている画像と位置合わせされ合成される（状態８０２）。図示の状態８０２では、合成後の画像がタイル１、２を跨いでいることを示している。つまり、タイル１は符号化しても良いことになる。それ故、タイル１の画像は符号化処理される（合成画像８１１）。またタイル１の画像の符号化を終えると、タイル１は上書き可能とすべく解放される（Ｓ１１４）。
【００７７】
次に撮影された画像からクロップされた部分画像は、タイル２に対して合成されることになる。タイル２に対して合成した際に余分な画像はタイル３に格納される。そして、タイル２が符号化単位の画像を含んだ（状態８０３）、タイル２の画像が符号化される（合成画像８１２）。
【００７８】
以下、タイル３→タイル１→タイル２…と、ユーザがシャッタースイッチを離す、もしくは当初予定のサイズの合成画像が生成されるまで繰り返される。
【００７９】
以上の結果、これまでは広角合成画像を生成するための複数の画像を格納するためのメモリが必要であったのに対し、実施形態では広角合成画像を生成する撮影する回数には依存せず、上記の如くメモリ１０２には合成画像領域が確保できれば広角合成画像を生成できる。また、ユーザがパンニング操作を行って撮影中に、合成画像領域に符号化単位のタイルの合成画像が構築されるたびに符号化を実施していくことになる。従って、広角合成画像の符号化が完了するのは、広角合成の最後の撮影が完了するタイミングに依存し、これまでよりも大幅に符号化に係る遅延時間を短縮できる。
【００８０】
なお、実施形態では、符号化開始の所定の条件を合成画像領域に記憶された画像サイズが符号化されるタイルのタイルサイズ以上となることとしたが、他の条件としてもよい。例えば、合成画像領域に記憶された画像サイズがタイルサイズよりも大きく、予め決められたサイズ以上となることを条件にしても良い。
【００８１】
また、符号化される第１のタイルと、それに隣接する第２のタイルの、２フレーム以上に画像が記憶されたことを符号化開始の所定の条件としてもよい。図５（Ａ）を例とすると次に符号化される領域がタイル１の場合、タイル２に２フレーム以上のフレーム数の画像が記憶されたことを符号化開始の所定の条件としてもよい。
【００８２】
また、次に符号化される第１のタイルと隣接し、第１のタイルの次に符号化される第２のタイルと隣接し、第２のタイルの次に符号化される第３のタイルに画像が記憶されたことを符号化開始の所定の条件としてもよい。図５（Ａ）を例とすると、次に符号化される領域がタイル１の場合、タイル３に画像が記憶されたことを符号化開始の所定の条件としてもよい。
【００８３】
また、本実施形態では、撮像装置１００を水平方向にパンニングにして連続撮影を行い、広角画像を生成して符号化する処理を示したが、撮像装置１００を垂直方向にパンニングして連続撮影を行い、広角画像を生成して符号化してもよい。このためには、広角合成モードを設定するとき、パンニング方向を水平、垂直のいずれかを選択すればよい。そして、水平の場合には、上記実施形態で示した処理を行い、垂直の場合には、上記実施形態の説明を９０度回転したものとして処理すればよい。
【００８４】
［第２の実施形態］
第２の実施形態として、合成画像領域に記憶された画像が所定の条件を満たしたら画像の符号化を行い、符号化したストリームをメモリに記憶した後に、合成画像領域を上書き可能とする処理を示す。また、本第２の実施形態では、全画像領域の符号化が完了した後に記録媒体にファイルヘッダを記録し、メモリに記憶されている符号化したストリームを記録媒体に記録する処理を示す。装置構成は上記第１の実施形態と同じとし、その説明は省略する。
【００８５】
図９は本第２の実施形態の処理の広角合成モードの処理の流れを示すフローチャートである。
【００８６】
なお、同図のＳ２００からＳ２０７、Ｓ２０８からＳ２１１、Ｓ２１３からＳ２１６の処理は、それぞれ図４のＳ１００からＳ１０７、Ｓ１０９からＳ１１２、Ｓ１１４からＳ１１７と同様の処理であるため説明を省略する。
【００８７】
Ｓ２１２において、ＣＰＵ１０１は、符号化対象のタイルを符号化処理部１１４で符号化させる。ＣＰＵ１０１は、符号化で得られたＨＥＶＣストリームをメモリ１０２に一時的に格納する。また、ＣＰＵ１０１は、符号化したタイルのサイズ情報をメモリ１０２に記憶する。そして、ＣＰＵ１０１は処理をＳ２１２からＳ２１３へ進める。
【００８８】
Ｓ２１７において、ＣＰＵ１０１は、終端処理を行った合成画像を符号化処理部１１４で符号化させる。そして、ＣＰＵ１０１は、符号化した得たＨＥＶＣストリームをメモリ１０２に記憶する。また、ＣＰＵ１０１は、符号化したタイルのサイズ情報をメモリ１０２に記憶する。そして、ＣＰＵ１０１は、処理をＳ２１７からＳ２１８へ進める。なお、このとき、メモリ１０２には、広角合成画像の全符号化データが格納されていることになることに注意されたい。
【００８９】
Ｓ２１８において、ＣＰＵ１０１は、メモリ１０２に記憶されている符号化されたタイルサイズの総和から画像サイズを算出する。また、ＣＰＵ１０１は、メモリ１０２に記憶されている位置合わせ情報から表示領域を算出する。ＣＰＵ１０１は、多重化処理部３０９により、画像サイズ、タイル分割数、タイルサイズ、表示領域のシンタックスなどを含むファイルヘッダを記録媒体１２０に記録する。そしてＣＰＵ１０１は、処理をＳ２１８からＳ２１９へ進める。
【００９０】
Ｓ２１９において、ＣＰＵ１０１は、メモリ１０２に記憶されている符号化されたＨＥＶＣストリームを順次読み出し、記録媒体１２０に記録し、広角合成画像ファイルを完成させる。そして、ＣＰＵ１０１は、本フローチャートにおける処理を終了する。
【００９１】
［第３の実施形態］
第３の実施形態として、合成画像の縮小画像をサムネイル用の画像として生成し、縮小合成画像も符号化し、ファイルの一部として格納する例を説明する。また、本第３の実施形態では縮小合成画像は分割して符号化しないものとする。装置構成は上記第１の実施形態と同じとし、その説明は省略する。
【００９２】
図１０は本第３の実施形態における広角合成モードの処理の流れを示すフローチャートである。図示におけるＳ３００からＳ３１２、Ｓ３１４からＳ３１６、Ｓ３２０とＳ３２１の処理は、それぞれ図９のＳ２００からＳ２１２、Ｓ２１３からＳ２１５、Ｓ２１６とＳ２１７と同様の処理であるため、その説明を省略する。
【００９３】
Ｓ３１３において、ＣＰＵ１０１は、画像処理部１１３によりＳ３１２で符号化された合成画像の縮小画像を生成し、メモリ１０２に記憶する。なお、メモリ１０２には、Ｓ３００またはＳ３０１の設定に応じた縮小合成画像用の記憶容量が割り当てられているものとする。そして、ＣＰＵ１０１は、処理をＳ３１３からＳ３１４へ進める。
【００９４】
Ｓ３１７において、ＣＰＵ１０１は、画像処理部１１３により縮小合成画像を生成し、メモリ１０２に記憶する。そして、ＣＰＵ１０１は、処理をＳ３１７からＳ３１８へ進める。
【００９５】
Ｓ３１８において、ＣＰＵ１０１は、画像処理部１１３により縮小合成画像に終端処理を行う。そして、ＣＰＵ１０１は、処理をＳ３１８からＳ３１９に進める。
【００９６】
Ｓ３１９において、ＣＰＵ１０１は、符号化処理部１１４によりメモリ１０２に記憶されている縮小合成画像を符号化させ、その結果（符号化データ）をメモリ１０２に記憶させる。そして、ＣＰＵ１０１は、処理をＳ３１９からＳ３２０へ進める。
【００９７】
Ｓ３２２において、ＣＰＵ１０１は、メモリ１０２に記憶されている符号化されたタイルサイズの総和から画像サイズを算出する。また、ＣＰＵ１０１は、メモリ１０２に記憶されている位置合わせ情報から表示領域を算出する。ＣＰＵ１０１は、多重化処理部３０９により、画像サイズ、タイル分割数、タイルサイズ、表示領域、サムネイル画像の情報などのシンタックスを含むファイルヘッダを記録媒体１２０に記録する。そして、ＣＰＵ１０１は、処理をＳ３２２からＳ３２３へ進める。
【００９８】
Ｓ３２３において、ＣＰＵ１０１は、メモリ１０２に記憶されている符号化された縮小合成画像のストリームを含めた符号化されたストリームを順次読み出し、記録媒体１２０に記録する。そして、ＣＰＵ１０１は、本フローチャートにおける処理を終了する。
【００９９】
（その他の実施例）
上記各実施形態における撮像装置１００はデジタルカメラ等の装置を基礎にして説明したが、撮像機能を有する装置であれば例えばスマートホンであっても構わず、デジタルカメラに限定されるものではない。
【０１００】
また、本実施形態で説明した様々な処理及び機能は、コンピュータプログラムにより実現することも可能である。この場合、本発明に係るコンピュータプログラムは、コンピュータ（ＣＰＵ等を含む）で実行可能であり、本実施例で説明した様々な機能を実現することになる。
【０１０１】
本発明に係るコンピュータプログラムは、コンピュータ上で稼動しているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などを利用して、本実施例で説明した様々な処理及び機能を実現してもよいことは言うまでもない。
【０１０２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０３】
１００…撮像装置、１０１…ＣＰＵ、１０２…メモリ、１０３…不揮発性メモリ、１０４…操作部、１１１…撮像レンズ、１１２…撮像部、１１３…画像処理部、１１４…符号化処理部、１１５…表示制御部、１１６…表示部、１１７…通信制御部、１１８…通信部、１１９…記録媒体制御部、１２０…記録媒体、１３０…内部バス、１４０…検出部、３０１…画像分割制御部、３０２…予測符号化方法決定部、３０３…予測符号化処理部、３０５…直交変換量子化部、３０６…局所復号化部、３０７…符号量制御部、３０８…エントロピー符号化部、３０９…多重化処理部
【図１】
2019021968.tif 000003
【図２】
2019021968.tif 000004
【図３】
2019021968.tif 000005
【図４】
2019021968.tif 000006
【図５】
2019021968.tif 000007
【図６】
2019021968.tif 000008
【図７】
2019021968.tif 000009
【図８】
2019021968.tif 000010
【図９】
2019021968.tif 000011
【図１０】
2019021968.tif 000012