(57)【特許請求の範囲】
【請求項１】
表示デバイスの解像度よりも高い解像度で符号化された画像データを復号するデコード実行部と、
前記デコード実行部が復号した、前記表示デバイスの表示領域よりも大きな画像データを格納する表示バッファと、
前記表示デバイスにおいて前記表示バッファに格納された画像データを表示中に、前記デコード実行部が復号する画像データを格納する予備バッファと、
前記デコード実行部が復号した画像データ全体を縮小して得られる画像データを格納する縮小画像バッファと、
前記表示バッファ、前記予備バッファ、および前記縮小画像バッファのいずれかに切り替えて、格納された画像データを前記表示デバイスに表示する画像表示制御部とを含み、
前記画像表示制御部は、前記表示バッファから前記予備バッファへ切り替える際に、前記デコード実行部による画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用し、前記デコード実行部による画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納することを特徴とする画像処理装置。
【請求項２】
前記表示バッファにおける、前記表示デバイスに表示される画像データの表示位置を取得する表示位置制御部をさらに含み、
前記表示位置制御部が、前記表示バッファ中に定められたデコード開始領域に前記表示位置が到達したことを取得することを契機として、前記デコード実行部は、表示領域の中心を中心とする画像データをデコードして予備バッファに格納することを開始することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像表示制御部は、前記表示位置制御部が、前記表示バッファの縁に前記表示位置が到達したことを取得したとき、前記デコード実行部による画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像表示制御部は、前記表示位置制御部が、前記表示バッファの縁に前記表示位置が到達したことを取得したとき、前記デコード実行部による画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記表示位置制御部が、前記表示バッファの縁に前記表示位置が到達したことを取得したとき、前記デコード実行部が画像データのデコードを終了していない場合において、前記縮小画像バッファの画像を拡大して前記表示バッファに格納した後に前記デコード実行部が画像データのデコードを終了した場合、前記画像表示制御部は、前記予備バッファを前記表示バッファとして利用することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
表示デバイスの解像度よりも高い解像度で符号化された画像データを復号するステップと、
前記表示デバイスの表示領域よりも大きな画像データを復号して表示バッファに格納するステップと、
前記表示デバイスにおいて前記表示バッファに格納された画像データを表示中に、復号した画像データを予備バッファに格納するステップと、
復号した画像データ全体を縮小して得られる画像データを縮小画像バッファに格納するステップと、
前記表示バッファに格納された画像の表示から前記予備バッファに格納された画像の表示へ切り替える際に、前記予備バッファへの画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用し、前記予備バッファへの画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納するステップとをプロセッサに実行させることを特徴とする画像処理方法。
【請求項７】
表示デバイスの解像度よりも高い解像度で符号化された画像データを復号する機能と、
前記表示デバイスの表示領域よりも大きな画像データを復号して表示バッファに格納する機能と、
前記表示デバイスにおいて前記表示バッファに格納された画像データを表示中に、復号した画像データを予備バッファに格納する機能と、
復号した画像データ全体を縮小して得られる画像データを縮小画像バッファに格納する機能と、
前記表示バッファに格納された画像の表示から前記予備バッファに格納された画像の表示へ切り替える際に、前記予備バッファへの画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用し、前記予備バッファへの画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納する機能とをコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
近年、デジタルカメラ等の撮像装置が広く普及し、ユーザが手軽にデジタル画像データを取得することができるようになってきている。これらの撮像装置の性能向上は著しく、一般のユーザであっても、１０００万画素を軽く超えるデジタル画像データが撮像できるようになってきている。さらに、カメラをパンして、被写体を複数の異なる視点から連続的に撮像して得られる複数の画像データを画像処理を用いて合成することで、さらに高画素数のＨＤ（High-Definition）パノラマ画像を生成することができる撮像装置も普及し始めている。
【０００３】
画像データの画素数が大きくなると、家庭用テレビや一般のＰＣ（Personal Computer）用のモニタでは、画像データを縮小しなければ全体を観賞することができない。逆に、画素数の大きな画像データを等倍率などの高解像度で観賞するためには、画像データの一部を表示デバイスに表示することになる。画像データ中の表示位置を移動させながら表示したり、さらに表示画像を拡縮しながら表示させたりすると、場合によっては画像のデコード処理等の画像処理が、画像表示に追いつかなくなることも起こり得る。
【０００４】
画像表示のための画像処理が追いつかない場合の対処技術に関し、複数の画像データのサムネイル画像を一覧表示する処理をスムーズに行うために、表示すべき画像データを先読みして処理する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２９３０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像のデコード処理が画像描画に追いつかなくなると、例えば表示画像に一部が表示されなくなったり、部分的に異なる解像度の画像となったりするなど、画像データの観賞に支障をきたすことも起こり得る。
【０００７】
本発明はこうした課題に鑑みてなされたものであり、その目的は、表示デバイスよりも高い解像度の画像の描画を改善する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様は画像処理装置である。この装置は、表示デバイスの解像度よりも高い解像度で符号化された画像データを復号するデコード実行部と、前記デコード実行部が復号した、前記表示デバイスの表示領域よりも大きな画像データを格納する表示バッファと、前記表示デバイスにおいて前記表示バッファに格納された画像データを表示中に、前記デコード実行部が復号する画像データを格納する予備バッファと、前記デコード実行部が復号した画像データ全体を縮小して得られる画像データを格納する縮小画像バッファと、前記表示バッファ、前記予備バッファ、および前記縮小画像バッファのいずれかに切り替えて、格納された画像データを前記表示デバイスに表示する画像表示制御部とを含む。ここで前記画像表示制御部は、前記表示バッファから前記予備バッファへ切り替える際に、前記デコード実行部による画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用し、前記デコード実行部による画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納する。
【０００９】
本発明の別の態様は、画像処理方法である。この方法は、表示デバイスの解像度よりも高い解像度で符号化された画像データを復号するステップと、前記表示デバイスの表示領域よりも大きな画像データを復号して表示バッファに格納するステップと、前記表示デバイスにおいて前記表示バッファに格納された画像データを表示中に、復号した画像データを予備バッファに格納するステップと、復号した画像データ全体を縮小して得られる画像データを縮小画像バッファに格納するステップと、前記表示バッファに格納された画像の表示から前記予備バッファに格納された画像の表示へ切り替える際に、前記予備バッファへの画像データのデコードが終了している場合、前記予備バッファを前記表示バッファとして利用し、前記予備バッファへの画像データのデコードが終了していない場合、前記縮小画像バッファの画像を拡大して前記表示バッファに格納するステップとをプロセッサに実行させる。
【００１０】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、表示デバイスよりも高い解像度の画像の描画を改善する技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る画像処理装置の内部構造を模式的に示す図である。
【図２】表示デバイスに表示される部分画像と画像データ全体との関係の一例を示す図である。
【図３】表示バッファの構成を模式的に示す図である。
【図４】第２画像データがデコード開始領域に到達したときに、デコード実行部が復号して予備バッファに格納する画像データの一例を示す図である。
【図５】実施の形態に係る画像処理装置の処理の流れを説明するフローチャートの前半部である。
【図６】実施の形態に係る画像処理装置の処理の流れを説明するフローチャートの後半部である。
【図７】表示位置制御部が自動スクロールモードの場合の第１画像データ、第２画像データ、および表示バッファが格納する画像データの大小関係を示す図である。
【発明を実施するための形態】
【００１３】
実施の形態の概要を述べる。実施の形態に係る画像処理装置は、高解像度画像の一部に設定したウィンドウを動かしながらウィンドウ内の画像を表示デバイスに表示する際に、ウィンドウの動きを先読みして画像の復号を開始する。
【００１４】
図１は、実施の形態に係る画像処理装置１００の内部構成を模式的に示す図である。実施の形態に係る画像処理装置１００は、画像制御部１０、画像バッファ２０、デコーダ３０、表示位置制御部４０、操作受付部５０、データベース６０、およびユーザインタフェース７０を含む。図１は、実施の形態に係る画像処理装置１００を実現するための機能構成を示しており、その他の構成は省略している。図１において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メインメモリ、その他のＬＳＩ（Large Scale Integration）で構成することができ、ソフトウェア的には、メインメモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではないが、画像処理装置１００の一例としては、据置型のゲーム機があげられる。
【００１５】
データベース６０は、主にユーザが撮像したデジタル画像データを格納する。データベース６０はＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置や、Ｂｌｕ-ｒａｙ  Ｄｉｓｃ（登録商標）等の取り外し可能な記録媒体により実現できる。データベース６０が格納する画像データは、通常の２次元画像のみならず、左目用の視差画像と右目用の視差画像とのペアから構成される３次元画像や、マルチアングル画像を含んでもよい。
【００１６】
ユーザインタフェース７０は、コントローラ等の入力デバイス（図示せず）を介して、画像処理装置１００に対するユーザの指示を取得する。ユーザインタフェース７０はまた、画像処理装置１００が出力する映像を、モニタ等の表示デバイス（図示せず）に出力する。
【００１７】
操作受付部５０は、ユーザインタフェース７０を介してユーザから画像表示を制御するための表示パラメータを取得する。画像表示のパラメータは、表示すべき画像データのファイル名、画像データ中の表示位置、拡縮率等のパラメータである。表示位置制御部４０は、後述する表示バッファ２４における、表示デバイスに表示される画像データの表示位置を取得する。
【００１８】
デコーダ３０は、デコード制御部３２とデコード実行部３４とを含み、データベース６０から符号化された画像データを取得して復号する。より具体的には、デコード実行部３４は、データベース６０から取得した画像データが符号化されている場合、その画像データを復号する。ここで、デコード実行部３４は、データベース６０から取得した画像が表示デバイスの解像度よりも高い解像度で符号化された画像データである場合、表示デバイスに表示する部分の画像データを復号する。
【００１９】
表示位置制御部４０は、操作受付部５０を介してユーザから表示パラメータを取得し、画像データのどの部分を表示すべきかを示す表示位置を取得する。表示デバイスが表示する画像が矩形であるとすると、表示位置は、例えば次のようにすれば特定できる。すなわち、データベース６０に格納された画像データの任意の点（例えば、画像データの左上の点）を原点とする直交座標系を設定し、表示デバイスに表示する矩形における対角線の両端の位置座標と、拡縮率とを特定する。あるいは、表示位置制御部４０は、対角線の両端の位置座標に替えて、頂点の位置座標と矩形の高さおよび幅のピクセル数を特定してもよい。
【００２０】
ここで、表示デバイスの解像度よりも高い解像度の画像の一例として、パノラマ画像があげられる。パノラマ画像の中には、高さが４０９６ピクセル、幅が１０４８０ピクセル、総画素数が約４３メガピクセルの大きさであるＨＤパノラマ画像のような高解像度の画像も存在する。このような画像を等倍率で表示デバイスに表示することは困難であり、画像データの一部を等倍または拡縮して表示デバイスに表示することが多く行われる。
【００２１】
図２は、表示デバイスに表示される部分画像と画像データ全体との関係の一例を示す図である。図２において、第１画像データ２００は、ＨＤパノラマ画像の一例を表し、第２画像データ２０２は、第１画像データ２００のうち、表示デバイスに表示される画像の一例を表す。画像処理装置１００のユーザは、図示しないコントローラ等を操作することにより、第１画像データ２００内において第２画像データ２０２を移動することができる。ユーザはまた、コントローラ等を操作することにより、第２画像データ２０２の表示倍率を変更することができる。第２画像データ２０２を拡大して表示する場合、第２画像データ２０２の第１画像データ２００において占める領域は狭くなる。反対に、第２画像データ２０２を縮小して表示する場合、第２画像データ２０２の第１画像データ２００において占める領域は広くなる。
【００２２】
図１の説明に戻る。デコード制御部３２は、表示位置制御部４０から表示パラメータを取得し、表示デバイスに表示するための画像データを特定する。デコード実行部３４は、デコード制御部３２が特定した画像データを復号する。
【００２３】
画像バッファ２０は、デコード実行部３４が復号した画像データを格納する。画像バッファ２０は、デコード実行部３４が復号した画像データを、後述する用途に応じて縮小画像バッファ２２、表示バッファ２４、または予備バッファ２６のいずれかに格納する。
【００２４】
表示バッファ２４は、デコード実行部３４が復号した、表示デバイスに表示するための画像データを格納する。ここでデコード実行部３４は、表示デバイス表示領域よりも大きな画像データを復号し、表示バッファ２４は、表示デバイス表示領域よりも大きな画像データを格納する。
【００２５】
上述したとおり、ユーザのコントローラの操作等により、第２画像データ２０２は第１画像データ２００内を移動する。このため、表示バッファ２４が表示デバイスの表示領域と同じ大きさの画像を格納する場合、ユーザが第２画像データ２０２を移動するとすぐに、新しい画像データを復号する必要が生じる。ユーザによるパン操作やズーム操作の量が多い場合、デコード実行部３４の計算処理が間に合わないことも起こりうる。
【００２６】
そこで表示バッファ２４は、表示デバイスの表示領域よりも大きな画像データを格納し、ーザが第２画像データ２０２を表示バッファ２４が格納する画像データの範囲内を移動する限り、新たな復号処理をしなくても画像を表示可能とする。さらに、表示バッファ２４に所定のデコード開始領域を設け、第２画像データ２０２の表示位置がこの領域に到達すると、デコード制御部３２は、デコード実行部３４に画像データの復号を開始させる。このとき、デコード実行部３４は、新たに復号した画像データを予備バッファ２６に格納する。このように、表示バッファ２４は、デコード実行部３４が復号した、表示デバイスの表示領域よりも大きな画像データを格納する用途に用いられる。また、予備バッファ２６は、表示デバイスにおいて表示バッファに格納された画像データを表示中に、デコード実行部３４が復号する画像データを格納する用途に用いられる。
【００２７】
表示バッファ２４にマージンを設けて表示デバイスの表示領域よりも大きな画像データを格納できるようにし、かつ表示バッファ２４とは異なる別のバッファである予備バッファ２６を用意する。これにより、デコード実行部３４が新たな画像データを復号するための時間と、復号したデータを格納するための領域とを用意することが可能となる。そして、第２画像データ２０２の表示位置が表示バッファ２４の縁部の境界に到達したこと場合、予備バッファ２６を表示バッファ２４として利用するとともに、表示バッファ２４を予備バッファ２６として利用する。
【００２８】
図３は、表示バッファ２４の構成を模式的に示す図である。図３に示すように、表示バッファ２４が格納する画像データは、表示デバイスが表示する第２画像データ２０２よりも大きい。ユーザがコントローラ等を操作すると、表示バッファ２４内における第２画像データ２０２の表示位置も移動する。表示バッファ２４の縁部にはデコード開始領域２８が設けられており、図３においては斜線で示す領域である。ユーザによる操作の間、表示位置制御部４０は、第２画像データ２０２の一部がデコード開始領域２８を含むか否かを監視する。
【００２９】
表示位置制御部４０が、表示バッファ２４中のデコード開始領域２８に第２画像データ２０２が到達したことを取得すると、その旨をデコード制御部３２に通知する。デコード制御部３２は、デコード開始領域２８に到達したときの第２画像データ２０２の中心を中心とする画像データを、デコード実行部３４に復号を開始させる。
【００３０】
図４は、第２画像データ２０２がデコード開始領域２８に到達したときに、デコード実行部３４が復号して予備バッファ２６に格納する画像データの一例を示す図である。ユーザは第２画像データ２０２の位置を自由に変更することができる。したがって、デコード制御部３２は、デコード実行部３４に復号させるべき画像データを予測することは一般に困難である。
【００３１】
そこで、表示バッファ２４内にデコード開始領域２８を設けておき、図４に示すように第２画像データ２０２がデコード開始領域２８に到達した時点でデコードすべき領域を決定する。このとき、第２画像データ２０２の中心点２０４を中心として新たな画像データを設定することにより、その後ユーザが第２画像データ２０２をどの方向に移動させたとしても、表示べき画像の復号が完了している可能性を高めることができる。
【００３２】
なお、表示バッファ２４の大きさを、第２画像データ２０２と比較してどれくらい大きくすればよいかは、バッファの実装に用いるメモリ等のコストを勘案して実験によって定めればよいが、例えば、第２画像データ２０２の幅および高さがそれぞれ２倍の画像データを格納できる大きさとする。また、デコード開始領域２８を表示バッファ２４内のどこに設定するかも実験によって決定すればよいが、例えば、表示バッファ２４に最大限格納可能な画像データの高さの５％分の長さを、表示バッファ２４の縁から「のりしろ」のように設定する。
【００３３】
図１の説明に戻る。画像制御部１０は、画像バッファ２０内の各バッファに格納されている画像データをユーザインタフェース７０を介して表示デバイスに出力する。このため、画像制御部１０は、画像表示制御部１２と画像処理部１４とを含む。
【００３４】
画像処理部１４は、デコード制御部３２から画像の拡縮率を取得し、表示バッファ２４に格納されている画像データを拡大または縮小する。画像表示制御部１２は、表示バッファ２４、予備バッファ２６、または画像処理部１４が処理した画像データのいずれかに切り替えて、画像データを表示デバイスに出力して表示させる。このように、ユーザが第２画像データ２０２を移動させることによって新規に画像データを復号する必要が生じた場合、デコード実行部３４が復号を終了して予備バッファ２６に画像データを格納するまでは、表示バッファ２４の画像データを表示する。これにより、デコード実行部３４が画像データを復号するために必要な時間を確保することが可能となる。
【００３５】
ところで、デコード制御部３２がユーザの操作を先読みしてデコード実行部３４に前もって画像データを復号させるようにしたとしても、ユーザによる第２画像データ２０２の移動速度や、拡縮率の変更の速度が早い場合、デコード実行部３４による画像データのデコードが間に合わないことも起こり得る。これに対処するため、デコード制御部３２は、表示デバイスに表示すべき画像データ全体をデコード実行部３４にあらかじめ復号させるとともに、画像処理部１４に画像データ全体を縮小して縮小画像バッファ２２に格納させる。このように、縮小画像バッファ２２は、デコード実行部３４が復号した画像データ全体を、画像処理部１４が縮小して得られる画像データを格納する用途に用いられる。
【００３６】
表示位置制御部４０が、表示バッファ２４の境界に第２画像データ２０２が到達したことを取得したとき、デコード実行部３４による画像データのデコードが終了していない場合、画像表示制御部１２は、画像処理部１４に縮小画像バッファ２２に格納されている画像データを拡大して表示バッファ２４に格納させる。次いで、画像表示制御部１２は表示バッファ２４の画像データを表示デバイスに出力する。これにより、デコード実行部３４による画像データのデコードが間に合わない場合であっても、表示デバイスに画像データを表示することが可能となる。
【００３７】
ここで、画像表示制御部１２は、デコード実行部３４による画像データのデコードが間に合わない領域に対応する縮小画像バッファ２２の領域のみを、画像処理部１４に拡大させるのではなく、表示すべき画像データ全体に対応する縮小画像バッファ２２の領域を、画像処理部１４に拡大させてもよい。これにより、表示デバイスに表示される画像の拡縮率が統一され、部分的に解像度の異なる画像が表示されることを防止できる。
【００３８】
画像表示制御部１２は、画像処理部１４が縮小画像バッファ２２の画像を拡大して表示バッファ２４に格納した画像を表示中に、デコード実行部３４が画像データのデコードを終了した場合、予備バッファ２６を表示バッファ２４として利用するように切り替える。これにより、表示デバイスに表示する画像データの解像度を、一度に高解像度の画像に切り替えることが可能となる。
【００３９】
図５は、実施の形態に係る画像処理装置１００の処理の流れを説明するフローチャートの前半部である。本フローチャートにおける処理は、例えば画像処理装置１００の電源が投入されたときに開始する。
【００４０】
表示位置制御部４０は、ユーザインタフェース７０および操作受付部５０を介して、表示デバイスに表示すべき第２画像データ２０２の位置座標を取得する（Ｓ１０）。表示位置制御部４０は、取得した位置座標をもとに第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達したか否かを取得する。
【００４１】
第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達していない場合（Ｓ１２のＮ）、ステップＳ１０に戻って、表示位置制御部４０は位置座標の取得を継続する。
【００４２】
第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達した場合（Ｓ１２のＹ）、表示位置制御部４０はその旨をデコード制御部３２に通知し、デコード制御部３２は、デコード実行部３４に新しい画像データの復号の開始を指示する（Ｓ１４）。デコード実行部３４は、デコード制御部３２に指示を受けた時点における第２画像データ２０２の中心点を中心に、新しい画像データを復号する（Ｓ１６）。
【００４３】
第２画像データ２０２が表示バッファ２４の境界に到達していない間（Ｓ１８のＮ）、デコード実行部３４は、新しい画像データを復号を継続する。第２画像データ２０２が表示バッファ２４の境界に到達した際に（Ｓ１８のＹ）、デコード実行部３４が新しい画像データの復号を終了している場合（Ｓ２０のＹ）、画像表示制御部１２は、表示バッファ２４と予備バッファ２６とを交換する（Ｓ２２）。
【００４４】
画像表示制御部１２は次いで、予備バッファ２６を新たな表示画像バッファとして利用し、格納されている画像データを表示デバイスに出力して表示させる（Ｓ２４）。画像表示制御部１２が画像データを出力するとステップＳ１０に戻る。
【００４５】
第２画像データ２０２が表示バッファ２４の境界に到達した際に（Ｓ１８のＹ）、デコード実行部３４が新しい画像データの復号を終了していない場合（Ｓ２０のＮ）、画像表示制御部１２は、縮小画像バッファ２２に格納されている画像を画像処理部１４に拡大させて、表示バッファに格納させる（Ｓ２６）。画像表示制御部１２は、表示バッファに格納された画像を表示デバイスに出力して表示させる（Ｓ２８）。
【００４６】
図６は、実施の形態に係る画像処理装置１００の処理の流れを説明するフローチャートの後半部である。
【００４７】
画像表示制御部１２が縮小画像バッファ２２に格納されている画像を拡大して表示させた後、デコード実行部３４による新しい画像データの復号が終了し予備バッファ２６に画像が格納された場合（Ｓ３０のＹ）、図５におけるステップＳ１０に戻って以降の処理を継続する。
【００４８】
画像表示制御部１２が縮小画像バッファ２２に格納されている画像を拡大して表示させた後、デコード実行部３４による新しい画像データの復号が終了していない間（Ｓ３０のＮ）、表示位置制御部４０は、表示デバイスに表示すべき第２画像データ２０２の位置座標を取得する（Ｓ３２）。表示位置制御部４０はさらに、取得した位置座標をもとに、第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達したか否かを取得する。
【００４９】
第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達していない場合（Ｓ３４のＮ）、ステップＳ３０に戻って、デコード制御部３２はデコード実行部３４による新しい画像データの復号が終了しているか否かの監視を継続する。第２画像データ２０２が表示バッファ２４内のデコード開始領域２８に到達した場合（Ｓ３４のＹ）、図５におけるステップＳ１４に戻って以降の処理を継続する。
【００５０】
画像処理装置１００は、図５および図６に示すステップＳ１０からステップＳ３４までを繰り返すことで、データベース６０に格納された画像データを復号して表示デバイスに表示する。
【００５１】
以上の構成による動作は以下の通りである。ユーザが、画像処理装置１００を用いて、データベース６０に格納されている、表示デバイスが表示可能な画素数よりも大きな画素数の画像データの一部を表示させようとする。表示位置制御部４０は、表示すべき画像の位置座標を取得する。デコード制御部３２は、表示位置制御部４０が取得した位置座標における画像データを、デコード実行部３４に復号させ、表示バッファ２４に格納させる。
【００５２】
表示バッファ２４はマージンを持っており、表示すべき画像データよりも大きな画像データが格納されている。ユーザが画像データの表示位置を動かしたとき、新しく画像データの復号の必要が生じる場合は、画像表示制御部１２は表示バッファ２４のマージンに格納された画像データを出力しつつ、その間、デコード実行部３４は、新たな画像データを復号して予備バッファ２６に格納する。デコード実行部３４の復号処理が間に合えば、画像表示制御部１２は表示バッファ２４から予備バッファ２６に切り替えて、予備バッファ２６に格納されている画像データを表示する。一方で、表示バッファ２４は予備バッファとして利用される。
【００５３】
デコード実行部３４の復号処理が間に合わない場合、画像表示制御部１２は、あらかじめ縮小画像バッファ２２に格納されている画像データ全体の縮小画像から表示すべき画像データを切り出し、拡縮処理を施した上で表示する。
【００５４】
以上説明したように、実施の形態に係る画像処理装置１００によれば、表示デバイスよりも高い解像度の画像描画を改善する技術を提供することができる。とくに、画像のデコード処理が画像表示に追いつかなくなることに起因する、表示画像の一部が表示されなくなることや、部分的に異なる解像度の画像を表示することを防止することができる。
【００５５】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５６】
上記の説明では、表示デバイスよりも高い解像度の画像データの一部を表示するとき、ユーザが自由に表示する画像の位置を操作できる場合について説明した。表示位置制御部４０は、画像データをパンしながら画像データ全体を走査して表示する自動スクロールモードも存在する。ユーザはユーザインタフェース７０および操作受付部５０を介して表示位置制御部４０を自動スクロールモードに設定することも可能である。以下変形例として、表示位置制御部４０が自動スクロールモードの場合の画像処理装置１００内の各部の動作を説明する。
【００５７】
図７は、表示位置制御部４０が自動スクロールモードの場合の第１画像データ２００、第２画像データ２０２、および表示バッファ２４が格納する画像データの大小関係を示す図である。図７（ａ）は、表示位置制御部４０が自動スクロールを開始した直後の関係を表し、図７（ｂ）は、第２画像データ２０２が第１画像データ２００の内部に移動したときの関係を表す。
【００５８】
表示位置制御部４０は、第１画像データ２００の長手方向の一方の端に第２画像データ２０２を設定し、第１画像データ２００の長手方向の他方の端に至るまで、第２画像データ２０２の表示位置を一定の速度で移動する。
【００５９】
デコード制御部３２は、表示位置制御部４０が第１画像データ２００の長手方向の一方の端に第２画像データ２０２を設定すると、第２画像データ２０２よりも第１画像データ２００の長手方向に広い画像データを、デコード実行部３４に復号させる。
【００６０】
表示バッファ２４は、デコード実行部３４が復号した画像データを格納し、画像表示制御部１２は、表示位置制御部４０が設定する表示位置に合わせて、表示バッファ２４内の対応する画像データを表示デバイスに出力する。ここで、表示位置制御部４０は第２画像データ２０２の表示位置を一定の速度で移動することから、第２画像データ２０２が表示バッファ２４の境界に到達する時間を計算することが可能である。具体的には、表示バッファ２４が、第２画像データ２０２よりも第１画像データ２００の長手方向にＡピクセル分広い画像データを格納しているとき、第２画像データ２０２の表示位置の移動速度が毎秒Ｂピクセルであるならば、第２画像データ２０２が表示バッファ２４の境界に到達するまでの時間は、Ａ／Ｂ秒となる。
【００６１】
デコード実行部３４は、第２画像データ２０２が表示バッファ２４の境界に到達するまでの時間を予測して、第２画像データ２０２が表示バッファ２４の境界に到達する前までに、表示すべき画像データをデコード実行部３４に復号させる。デコード実行部３４は、復号した画像データを予備バッファ２６に格納し、画像表示制御部１２は、表示バッファ２４を予備バッファ２６に切り替える。以後、画像表示制御部１２は予備バッファ２６を表示バッファとして利用するとともに、表示バッファ２４を予備バッファとして利用する。このように、画像表示制御部１２が表示バッファ２４と予備バッファ２６との用途を交互に入れ替えるながら使用することにより、デコード実行部３４が復号を終了するための時間を確保することが可能となる。
【００６２】
なお、第１画像データ２００が、被写体を複数の異なる視点から連続的に撮像して得られる複数の画像データを画像処理を用いて合成されたパノラマ画像である場合、画像処理をしたカメラ等の種類によっては、画像の長手方向のいずれの方向から撮像したかを画像データの付加情報として記録する場合がある。
【００６３】
画像データにいずれの方向から撮像したかを示す付加情報が記録されている場合、表示位置制御部４０は、画像データを撮像した方向から自動スクロールを開始しても良い。これにより、ユーザが連続撮像する際にカメラを動かした方向と同じ方向で自動スクロールすることが可能となる。さらに、画像データに対して回転、左右反転等をした場合でも、ユーザが連続撮像する際にカメラを動かした方向と同じ方向で自動スクロールすることが可能となる点で有利である。
【符号の説明】
【００６４】
１０  画像制御部、  １２  画像表示制御部、  １４  画像処理部、  ２０  画像バッファ、  ２２  縮小画像バッファ、  ２４  表示バッファ、  ２６  予備バッファ、  ２８  デコード開始領域、  ３０  デコーダ、  ３２  デコード制御部、  ３４  デコード実行部、  ４０  表示位置制御部、  ５０  操作受付部、  ６０  データベース、  ７０  ユーザインタフェース、  １００  画像処理装置、  ２００  第１画像データ、  ２０２  第２画像データ、  ２０４  中心点。
【図１】
0005323117.tif 000002
【図２】
0005323117.tif 000003
【図３】
0005323117.tif 000004
【図４】
0005323117.tif 000005
【図５】
0005323117.tif 000006
【図６】
0005323117.tif 000007
【図７】
0005323117.tif 000008