(57)【要約】【課題】カラーバンディングを有効に抑制する画像処理技術を提供する。【解決手段】メインメモリ６０は、Ｍビット階調（Ｍは自然数）の画像データを記憶する。補正関数生成部１５０は、画像データから、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成する。表示画像生成部１４０は、補正関数生成部１５０により生成された補正関数を用いて、表示画像データを生成する。表示画像生成部１４０は、補正関数を用いることで、Ｍビット階調の圧縮画像データをＭビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成する。【選択図】図７
2011139276.tif 000002
【特許請求の範囲】
【請求項１】
Ｍビット階調（Ｍは自然数）の画像データを記憶する画像データ記憶部と、
前記画像データ記憶部に記憶された画像データから、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成する補正関数生成部と、
前記補正関数生成部により生成された補正関数を用いて、表示画像データを生成する表示画像生成部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記補正関数生成部は、Ｍビット階調の圧縮画像データをＮビット階調の画像データに復号して、補正関数を生成し、
前記表示画像生成部は、補正関数を用いることで、Ｍビット階調の圧縮画像データをＭビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
画像データ記憶部は、ＪＰＥＧフォーマットの８ビット階調の画像データを記憶しており、
前記補正関数生成部は、前記画像データを逆離散コサイン変換を用いて、Ｎビット階調（Ｎ＞８）の画像データを生成し、
前記表示画像生成部は、Ｎビット階調の画像データを用いて表示画像データを生成することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記表示画像生成部は、補正関数を用いて、前記画像データ記憶部に記憶された画像データに内挿演算を施した、Ｐビット階調（Ｐは自然数、Ｎ≧Ｐ＞Ｍ）の表示画像データを生成することを特徴とする請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
前記表示画像生成部は、補正関数を用いて、前記画像データ記憶部に記憶された画像データにディザ処理を施した、Ｍビット階調の表示画像データを生成することを特徴とする請求項１から３のいずれかに記載の画像処理装置。
【請求項６】
前記画像データ記憶部は、異なる解像度ごとに少なくとも１つの圧縮したタイル画像を含む画像データを保持しており、各タイル画像は、複数のブロック画像を符号化して形成されており、
前記補正関数生成部は、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、
補正情報を用いて補正関数を導出する関数導出部と、を有し、前記補正情報は、ブロック画像において画素値が変化していることを示す情報であって、
前記判定部は、表示画像データの生成に使用するブロック画像に補正情報が含まれていない場合に、対応する低解像度のブロック画像に補正情報が含まれているか判定し、
前記関数導出部は、低解像度のブロック画像に補正情報が含まれている場合に、その補正情報を用いて補正関数を導出することを特徴とする請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
異なる解像度ごとに少なくとも１つの圧縮したタイル画像を含む、Ｍビット階調（Ｍは自然数）の画像データを保持する画像データ記憶部と、
圧縮したタイル画像を、Ｍビット階調のタイル画像に復号する復号部と、
復号したタイル画像から、表示画像データを生成する表示画像生成部と、を備えた画像処理装置であって、各タイル画像は複数のブロック画像を符号化して形成されており、
画像処理装置は、さらに、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する関数導出部と、を有し、
前記表示画像生成部は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成することを特徴とする画像処理装置。
【請求項８】
前記補正情報は、ブロック画像において画素値が変化していることを示す情報であることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記判定部は、表示画像データの生成に使用するブロック画像に補正情報が含まれていない場合に、対応する低解像度のブロック画像に補正情報が含まれているか判定し、
前記関数導出部は、低解像度のブロック画像に補正情報が含まれている場合に、その補正情報を用いて補正関数を導出することを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
コンピュータに、
Ｍビット階調（Ｍは自然数）の画像データから、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成する機能と、
生成された補正関数を用いて、表示画像データを生成する機能と、
を実現させるためのプログラム。
【請求項１１】
コンピュータに、
圧縮したＭビット階調（Ｍは自然数）のタイル画像であって、複数のブロック画像を符号化して形成されたタイル画像を、Ｍビット階調のタイル画像に復号する機能と、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する機能と、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する機能と、
復号したタイル画像と、補正関数とを用いて、表示画像データを生成する機能と、
を実現させるためのプログラム。
【請求項１２】
請求項１０または１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
画像データ記憶部に記憶されたＭビット階調（Ｍは自然数）の画像データから、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成するステップと、
生成された補正関数を用いて、表示画像データを生成するステップと、
を備えることを特徴とする画像処理方法。
【請求項１４】
圧縮したＭビット階調（Ｍは自然数）のタイル画像であって、複数のブロック画像を符号化して形成されたタイル画像を、Ｍビット階調のタイル画像に復号するステップと、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定するステップと、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出するステップと、
復号したタイル画像と、補正関数とを用いて、表示画像データを生成するステップと、
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラーバンディングを有効に抑制する画像処理技術に関する。
【背景技術】
【０００２】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、ＧＰＵがポリゴンを用いた三次元画像を生成する（たとえば特許文献１参照）。
【０００３】
ＪＰＥＧに代表される画像フォーマットの階調表現を用いて、ノイズの少ないなめらかなグラデーションをディスプレイに表示すると、視覚特性から階段状の境界線が強調されて見える「カラーバンディング」が発生する。ＪＰＥＧやＭＰＥＧ、ＢＤフォーマットなどの一般的な画像フォーマットは８ビットと低階調であるため、低ノイズのグラデーション画像では、原理的にカラーバンディングが発生することになる。このカラーバンディングを回避するために、画像データに意図的にノイズを付加するディザ法や、粒状ノイズを付加する誤差拡散法などが従来より提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６５６３９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、カラーバンディングを低減するために付加するノイズは、画像圧縮率の低下を招く。また、画像データにノイズを付加した場合であっても、その後の画像処理により、付加したノイズが修正、変形されて本来の機能を果たさず、結果としてカラーバンディングが発生することも多い。
【０００６】
また近年、ＨＤＭＩ（High-Definition Multimedia Interface）規格に代表されるディスプレイインタフェースの開発が、多ビット化の方向で進められている。たとえばＨＤＭＩ規格のバージョン１．３は、１２ビット×３色の信号伝送を規定し、高階調なＨＤＴＶ画像も身近になっている。しかしながら、ＪＰＥＧやＭＰＥＧなどの画像フォーマットは、８ビットに量子化されているため、高品位なディスプレイインタフェースを活かしきれていなという状況が存在する。
【０００７】
そこで本発明は、カラーバンディングを有効に抑制する画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様の画像処理装置は、Ｍビット階調（Ｍは自然数）の画像データを記憶する画像データ記憶部と、画像データ記憶部に記憶された画像データから、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成する補正関数生成部と、補正関数生成部により生成された補正関数を用いて、表示画像データを生成する表示画像生成部とを備える。
【０００９】
本発明の別の態様もまた、画像処理装置である。この装置は、異なる解像度ごとに少なくとも１つの圧縮したタイル画像を含む、Ｍビット階調（Ｍは自然数）の画像データを保持する画像データ記憶部と、圧縮したタイル画像を、Ｍビット階調のタイル画像に復号する復号部と、復号したタイル画像から、表示画像データを生成する表示画像生成部とを備える。各タイル画像は複数のブロック画像を符号化して形成されている。画像処理装置は、さらに表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する関数導出部とを有する。表示画像生成部は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、カラーバンディングを有効に抑制する画像処理技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例にかかる画像処理システムの使用環境を示す図である。
【図２】入力装置の外観構成を示す図である。
【図３】画像処理システムにおいて使用する画像データの階層構造を示す図である。
【図４】画像処理装置の機能ブロック図を示す図である。
【図５】（ａ）は、ＩＤＣＴの演算式を示す図であり、（ｂ）は、画像処理装置のソフトウェアデコード機能を用いた演算結果を示す図である。
【図６】（ａ）は、３２ビット階調の出力の一例を示す図であり、（ｂ）は、（ａ）の出力を、８ビット階調に量子化した出力を示す図であり、（ｃ）は、補正関数を利用して生成したDeepColor出力を示す図である。
【図７】制御部の構成を示す図である。
【図８】カラーバンディング抑制処理を説明するためのフローチャートである。
【図９】階層構造を利用した補正関数の導出処理を説明するための図である。
【図１０】第０階層のブロック画像に対して導出される補正関数を示す図である。
【図１１】導出された補正関数を示す図である。
【図１２】すべての階層において導出された補正関数を示す図である。
【図１３】階層構造を利用した補正関数導出処理のフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施例にかかる画像処理システム１の使用環境を示す。画像処理システム１は、入力装置２０と、画像処理ソフトウェアを実行する画像処理装置１０と、画像処理装置１０による処理結果を出力する表示装置１２とを備える。表示装置１２は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置１２は、画像処理装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）により無線接続されてもよい。なお画像処理装置１０、入力装置２０および表示装置１２は、一体に形成されて、画像処理機能を搭載した携帯端末装置として構成されてもよい。
【００１４】
画像処理システム１において、画像処理装置１０は、ケーブル１４を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。画像処理装置１０は、無線通信により外部ネットワークに接続してもよい。
【００１５】
画像処理装置１０は、たとえばゲーム装置であって、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現する。なお画像処理装置１０は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。
【００１６】
画像処理装置１０は、ユーザから入力装置２０に入力される要求に応じて、表示装置１２のディスプレイに表示する画像の拡大／縮小処理や、上下左右方向への移動処理など、表示画像を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置２０を操作すると、入力装置２０が、表示画像の変更指示信号を画像処理装置１０に送信する。
【００１７】
図２は、入力装置２０の外観構成を示す。入力装置２０は、ユーザが操作可能な操作手段として、十字キー２１、アナログスティック２７ａ、２７ｂと、４種の操作ボタン２６を備える。４種の操作ボタン２６は、○ボタン２２、×ボタン２３、□ボタン２４および△ボタン２５から構成される。
【００１８】
画像処理システム１において、入力装置２０の操作手段には、表示画像の拡大／縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大／縮小要求の入力機能は、右側のアナログスティック２７ｂに割り当てられる。ユーザはアナログスティック２７ｂを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示画像のスクロール要求の入力機能は、十字キー２１に割り当てられる。ユーザは十字キー２１を押下することで、十字キー２１を押下した方向のスクロール要求を入力できる。なお、画像変更指示の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック２７ａに、スクロール要求の入力機能が割り当てられてもよい。
【００１９】
入力装置２０は、入力された画像変更指示信号を画像処理装置１０に伝送する機能をもち、本実施例では画像処理装置１０との間で無線通信可能に構成される。入力装置２０と画像処理装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置２０は、画像処理装置１０とケーブルを介して接続して、画像変更指示信号を画像処理装置１０に伝送してもよい。
【００２０】
図３は、画像処理システム１において使用する画像データの階層構造を示す。画像データは、深さ（Ｚ軸）方向に、第０階層３０、第１階層３２、第２階層３４および第３階層３６を含む階層構造を有し、以下、この階層構造をもつ画像データを「階層データ」とよぶ。なお第４階層以上の高階層があってもよい。図３に示す階層データ２８は４分木の階層構造を有し、各階層は、１以上のタイル画像３８で構成される。すべてのタイル画像３８は同じ画素数をもつ同一サイズに形成され、たとえば２５６×２５６画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第３階層３６の原画像を複数段階に縮小して、第２階層３４、第１階層３２、第０階層３０の画像データが生成される。たとえば第Ｎ階層の解像度（Ｎは０以上の整数）は、左右（Ｘ軸）方向、上下（Ｙ軸）方向ともに、第（Ｎ＋１）階層の解像度の１／２である。
【００２１】
画像処理装置１０において、階層データ２８は、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施例の画像処理装置１０は、複数種類の圧縮形式に対応したデコード機能を有してよい。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層であれば複数のタイル画像単位に行われていてもよい。
【００２２】
階層データ２８の階層構造は、図３に示すように、左右方向をＸ軸、上下方向をＹ軸、深さ方向をＺ軸として設定され、仮想的な３次元空間を構築する。この階層構造において、Ｘ軸およびＹ軸は、原点を等しくする共通の座標系を定義する。画像処理装置１０は、入力装置２０より供給される入力信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレーム画像の４隅の座標（フレーム座標）を導出する。仮想空間におけるフレーム座標は、タイル画像の読出処理や、表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置１０は、階層を特定する情報と、その階層におけるテクスチャ座標（ＵＶ座標）を導出してもよく、また仮想空間におけるフレーム画像の中心座標（Ｘ，Ｙ）と縮尺率ＳＣＡＬＥを導出してもよい。たとえばユーザからの入力が、階層データ２８の階層構造において、仮想的なカメラを移動させる要求であると考えるならば、フレーム画像の中心座標と縮尺率情報との組み合わせ（Ｘ，Ｙ，ＳＣＡＬＥ）を、仮想カメラ画像座標と呼んでもよい。以下では、説明の便宜上、（Ｘ，Ｙ，ＳＣＡＬＥ）を仮想カメラ画像座標と呼び、画像変更指示信号を、仮想空間における仮想カメラを移動させて、フレームごとに仮想カメラ画像座標（Ｘ，Ｙ，ＳＣＡＬＥ）を特定するための信号として表現することもある。縮尺率ＳＣＡＬＥは、第３階層３６の表示画像の縮尺率を１としたときのフレーム画像の縮尺率として定められてよい。なお、縮尺率は、Ｘ軸方向の縮尺率Ｘ＿ＳＣＡＬＥおよびＹ軸方向の縮尺率Ｙ＿ＳＣＡＬＥとして定義され、Ｘ＿ＳＣＡＬＥとＹ＿ＳＣＡＬＥとを異ならせて、アスペクト比を変更可能とすることも可能である。その場合、仮想カメラ画像座標は、（Ｘ，Ｙ，Ｘ＿ＳＣＡＬＥ、Ｙ＿ＳＣＡＬＥ）として表現される。
【００２３】
図４は、画像処理装置１０の機能ブロック図を示す。画像処理装置１０は、無線インタフェース４０、スイッチ４２、表示処理部４４、ハードディスクドライブ５０、記録媒体装着部５２、ディスクドライブ５４、メインメモリ６０、バッファメモリ７０および制御部１００を有して構成される。表示処理部４４は、表示装置１２のディスプレイに表示するデータをバッファするフレームメモリを有する。
【００２４】
スイッチ４２は、イーサネットスイッチ（イーサネットは登録商標）であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ４２は、ケーブル１４を介して外部ネットワークに接続し、画像サーバから階層化された圧縮画像データを受信してもよい。またスイッチ４２は無線インタフェース４０に接続し、無線インタフェース４０は、所定の無線通信プロトコルで入力装置２０と接続する。入力装置２０においてユーザから入力された画像変更指示信号は、無線インタフェース４０、スイッチ４２を経由して、制御部１００に供給される。
【００２５】
ハードディスクドライブ５０は、データを記憶する補助記憶装置として機能する。スイッチ４２を介して受信された圧縮画像データは、ハードディスクドライブ５０に格納されてもよい。表示処理の実行時、ハードディスクドライブ５０に格納された圧縮画像データは、メインメモリ６０に読み出される。記録媒体装着部５２は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ５４は、読出専用のＲＯＭディスクが装着されると、ＲＯＭディスクを駆動して認識し、データを読み出す。ＲＯＭディスクは、光ディスクや光磁気ディスクなどであってよい。リムーバブル記録媒体やＲＯＭディスクに保持された圧縮画像データが、ハードディスクドライブ５０に格納されてもよい。
【００２６】
制御部１００は、マルチコアＣＰＵを備え、１つのＣＰＵの中に１つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはＰＰＵ（Power Processing Unit）と呼ばれ、残りのプロセッサコアはＳＰＵ（Synergistic-Processing Unit）と呼ばれる。
【００２７】
制御部１００は、メインメモリ６０およびバッファメモリ７０に接続するメモリコントローラを備える。ＰＰＵはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各ＳＰＵに効率的に割り当てる。なお、ＰＰＵ自身がタスクを実行してもよい。ＳＰＵはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ７０として使用されてもよい。メインメモリ６０およびバッファメモリ７０は記憶装置であり、ＲＡＭ（ランダムアクセスメモリ）として構成される。ＳＰＵは制御ユニットとして専用のＤＭＡ（Direct Memory Access）コントローラをもち、メインメモリ６０とバッファメモリ７０の間のデータ転送を高速に行うことができ、また表示処理部４４におけるフレームメモリとバッファメモリ７０の間で高速なデータ転送を実現できる。本実施例の制御部１００は、複数のＳＰＵを並列動作させることで、高速な画像処理機能を実現する。表示処理部４４は、表示装置１２に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
【００２８】
本実施例の画像処理装置１０は、圧縮画像データを用いて表示装置１２に表示するための表示画像データを生成する際に、画像データの補正関数を生成して、カラーバンディングを有効に抑制する機能をもつ。以下では、圧縮画像データが、ＪＰＥＧフォーマットの画像データである場合を例に説明するが、他のフォーマットの画像データであってよく、符号化の形式は問わない。
【００２９】
ＪＰＥＧでは、画像を固定サイズ（８×８画素）のブロックに分割し、そのブロック単位で離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を施して、空間領域から周波数領域への変換処理を行う。変換されたブロック内の画像データは、量子化によって情報量を削減され、ハフマン符号によるエントロピー符号化を施されて圧縮される。本実施例の階層データ２８では、タイル画像３８が２５６×２５６画素で構成されており、したがって、タイル画像単位で圧縮される場合には、３２×３２個のブロック画像を符号化して形成される。
【００３０】
階層データ２８は、ＪＰＥＧフォーマットの原画像データを用いて作成されてよい。図３の例では、原画像データを、解像度を変更せずに２５６×２５６画素のタイル画像に分割することで、第３階層３６の最高解像度の画像データが作成される。第２階層３４の画像データは、原画像データの解像度を１／２に下げて、縮小した画像データを２５６×２５６画素のタイル画像に分割することで作成される。なお、原画像データの解像度を１／２に下げることは、原画像の１６×１６画素分の画像データを縦横１／２倍に縮小して、８×８画素のブロック画像を生成することに等しい。同様に、第１階層３２の画像データは、原画像データの解像度を１／４に下げることによって作成され、したがって、第１階層３２のタイル画像を構成する各ブロックの画像データは、原画像の３２×３２画素分の画像データを縦横１／４倍に縮小されることで構成されている。第０階層３０についても同様であり、第０階層３０のタイル画像を構成するブロックの画像データは、原画像の６４×６４画素分の画像データを縦横１／８倍に縮小されることで構成される。
【００３１】
本実施例の画像処理装置１０は、ＪＰＥＧ画像データをソフトウェアデコードする機能をもち、ＪＰＥＧ画像データに逆離散コサイン変換（ＩＤＣＴ：Inverse Discrete Cosine Transform）を施して、周波数領域から空間領域への変換処理を行う。このソフトウェアデコード機能によると、８ビット階調表現されるＪＰＥＧ画像データを、３２ビット階調表現される画像データに変換して、画像データの階調数を伸張できる。また画像処理装置１０は、ＨＤＭＩ規格のバージョン１．３に準拠した１２ビット×３色の信号出力（いわゆるDeepColor出力）機能ももつ。
【００３２】
図５（ａ）は、ＩＤＣＴの演算式を示し、図５（ｂ）は、画像処理装置１０のソフトウェアデコード機能を用いた演算結果を示す。演算結果の横軸は、ブロック内のＸ軸方向の画素を示す。この演算結果に示されるように、ＪＰＥＧ画像データを３２ビット階調で復号すると、ブロック内において、なめらかに遷移する画素値の出力が得られる。
【００３３】
図６（ａ）は、３２ビット階調の出力の一例を示す。この出力例は、図５（ｂ）において、ｊ＝１における出力である。図６（ｂ）は、図６（ａ）の出力を、８ビット階調に量子化した出力である。画像処理装置１０が利用するソフトウェアデコーダではなく、通常のハードウェア化されたＪＰＥＧデコーダを用いる場合、ＪＰＥＧハードウェアデコーダは、８ビットに量子化した出力を生成するため、結果として図６（ｂ）に示す出力と同じ出力を生成する。図６（ｂ）に示す画素値の変化量は、８ビット量子化出力のステップ幅を示す。
【００３４】
本実施例の画像処理装置１０は、図６（ａ）に示すように、ソフトウェアデコード機能により３２ビット階調の出力を可能とする。３２ビット階調の出力を８ビットに量子化すれば、通常のＪＰＥＧハードウェアデコーダと同じ出力を得ることになるが、８ビット量子化出力のステップ幅は大きいため、カラーバンディングが発生する可能性が高い。そこで本発明者は、この３２ビット出力を、ＪＰＥＧ画像データを補正するための補正関数として利用して表示画像データを生成することで、カラーバンディングを抑制できるという知見に想到した。
【００３５】
具体的に画像処理装置１０は、１色につき１２ビットのデジタル出力（DeepColor出力）を可能とするため、３２ビット階調出力を補正関数として利用することで、ＪＰＥＧ画像データから、１２ビット階調の表示画像データを生成する。このように８ビット階調のＪＰＥＧ画像データを、階調数を伸張して１２ビット階調の表示画像データに変換することで、量子化出力のステップ幅を小さくでき、カラーバンディングを抑制することが可能となる。図６（ｃ）は、補正関数を利用して生成したDeepColor出力を示す。なお、画像処理装置１０がDeepColor出力に対応していない場合には、３２ビット出力からディザ処理用の下位ビットを生成して、８ビット階調出力にノイズを付加することで、カラーバンディングを抑制してもよい。このように、原画像のＪＰＥＧ画像データが、そのまま８ビット階調表現で復号したときにカラーバンディングを発生しうるものであっても、画像処理装置１０が、ＪＰＥＧ画像データから、より高階調の復号演算処理を行い、その演算結果を補正関数として用いることで、カラーバンディングを抑制した表示画像を生成できる。
【００３６】
図７は、制御部１００の構成を示す。制御部１００は、入力受付部１１０および画像処理部１２０を備える。入力受付部１１０は、入力装置２０から供給される画像変更指示信号を受け付ける。画像処理部１２０は、画像データ取得部１３０、復号部１３２、変更量導出部１３４、空間座標決定部１３６、表示画像生成部１４０および補正関数生成部１５０を有する。補正関数生成部１５０は、関数導出部１５２および判定部１５４を有する。なお、補正関数生成部１５０は復号機能を有してもよく、補正関数生成部１５０と復号部１３２とは一体に構成されてもよい。以下、補正関数生成部１５０と復号部１３２とが、同様に復号機能を有するものとして説明する。
【００３７】
図７において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部１００は１つのＰＰＵと複数のＳＰＵとを有し、ＰＰＵおよびＳＰＵがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３８】
まず、画像処理装置１０の基本的な画像表示処理機能について説明する。この画像表示処理機能によると、画像処理装置１０が、ユーザからの指示に応じて、表示装置１２に表示されている表示画像の拡大、縮小処理や、スクロール処理など、表示画像の変更処理を実行する。以下では、説明を簡略化するために、表示装置１２において、すでに画像が表示されていることを前提とする。
【００３９】
ユーザが入力装置２０のアナログスティック２７や十字キー２１を操作すると、画像変更指示信号が画像処理装置１０に送信される。入力受付部１１０は、入力装置２０から、表示装置１２に表示されている表示画像の変更指示信号を受け付ける。
【００４０】
変更量導出部１３４は、変更指示信号をもとに、表示要求される表示画像の変更量を導出する。表示画像の変更量は、階層データの仮想３次元空間において、１フレームごとの表示画像の上下左右方向の移動量および深さ方向の移動量である。空間座標決定部１３６は、前回フレームの空間座標から、導出された変更量により移動する今回フレームの空間座標（仮想カメラ画像座標）を決定する。ここで空間座標は、フレーム画像の中心座標（Ｘ，Ｙ）と縮尺率ＳＣＡＬＥで特定される情報（Ｘ，Ｙ，ＳＣＡＬＥ）で定まるものとする。変更量導出部１３４は、変更指示信号をもとに変更量（ΔＸ，ΔＹ，ΔＳＣＡＬＥ）を導出し、空間座標決定部１３６は、前回フレームの空間座標（Ｘprev，Ｙprev，ＳＣＡＬＥprev）に変更量（ΔＸ，ΔＹ，ΔＳＣＡＬＥ）を加えて、今回フレームの空間座標（Ｘ，Ｙ，ＳＣＡＬＥ）を決定する。なお、既述したように、空間座標は他のパラメータにより定められてもよい。
【００４１】
画像データ取得部１３０は、空間座標決定部１３６から空間座標を受け取ると、表示画像データを生成するためにタイル画像を変更する必要があるか判定し、現在使用しているタイル画像を変更する必要がある場合には、そのタイル画像をメインメモリ６０から読み出す。復号部１３２は、読み出されたタイル画像を復号し、バッファメモリ７０に保持させる。表示画像生成部１４０は、空間座標にもとづいて、バッファメモリ７０に保持されたタイル画像を用いて表示画像データを生成し、フレームメモリ９０に供給する。表示処理部４４は、フレームメモリ９０に上書きされた表示画像データを表示装置１２から出力する。なお、以上は基本的な画像表示処理機能であるが、本実施例の画像処理装置１０は、画像表示処理を実行する際に、表示画像のカラーバンディングを抑制する機能を有している。以下に示すように、本実施例では、タイル画像の復号結果として、カラーバンディングを抑制するための補正関数がバッファメモリ７０に保持され、表示画像生成部１４０は、バッファメモリ７０に保持された補正関数を用いて表示画像データを生成する。このカラーバンディング抑制機能は、以下のように実現される。
【００４２】
まず画像表示処理の実行時、メインメモリ６０には、ハードディスクドライブ５０からＭビット階調（Ｍは自然数）の圧縮画像データが読み出されて記憶されている。一例として、メインメモリ６０は、ＪＰＥＧフォーマットの８ビット階調の階層データ２８を記憶しているが、既述したように他のフォーマットの画像データであってもよい。
【００４３】
入力装置２０からの変更指示信号にもとづいて空間座標決定部１３６が今回フレームの空間座標を決定すると、画像データ取得部１３０が、表示画像データの生成に必要なタイル画像をメインメモリ６０から読み出して、復号機能をもつ補正関数生成部１５０に供給する。なお画像データ取得部１３０は、今回フレームの空間座標および前回フレームの空間座標などから、将来、表示画像データの生成に必要となる可能性が高いタイル画像をメインメモリ６０から読み出す、いわゆる先読み処理を行ってもよい。先読み処理を行うことで、画像処理装置１０は、ユーザからの入力をリアルタイムに反映した表示画像データを生成できるようになる。
【００４４】
補正関数生成部１５０は、受け取ったタイル画像から、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の補正関数を生成する。補正関数生成部１５０は、ソフトウェアデコード機能を有し、ＪＰＥＧ画像データに逆離散コサイン変換（ＩＤＣＴ：Inverse Discrete Cosine Transform）を施して、周波数領域から空間領域への変換処理を行う。このソフトウェアデコード機能によると、８ビット階調表現されるＪＰＥＧ画像データを、３２ビット階調表現される画像データに変換して、画像データの階調数を伸張できる。関数導出部１５２は、変換した３２ビット階調表現される画像データを、ＪＰＥＧ画像データの補正関数として導出する。なお関数導出部１５２は、３２ビット階調表現される画像データを、Ｐビット階調（Ｐは自然数、Ｎ≧Ｐ＞Ｍ、Ｎ＝３２）の画像データに量子化し、量子化した画像データを補正関数として導出してもよい。また関数導出部１５２は、Ｍビット階調の圧縮画像データをＭビット量子化の制限のもとで復号した画像データに、ディザ処理を施すための補正関数を導出してもよい。関数導出部１５２は、導出した補正関数をバッファメモリ７０に保持させる。なお既述したように、ソフトウェアデコードは、復号部１３２において行われてもよく、その場合は復号部１３２が、補正関数生成部１５０の一要素として機能することになる。
【００４５】
表示画像生成部１４０は、今回フレームの空間座標に基づいて、バッファメモリ７０に保持された補正関数を用いて表示画像データを生成する。表示画像生成部１４０は、補正関数を用いることで、Ｍビット階調の圧縮画像データをＭビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成することができる。
【００４６】
たとえば表示画像生成部１４０は、補正関数を用いて、メインメモリ６０に記憶されたタイル画像に内挿演算を施した、Ｐビット階調（Ｐは自然数、Ｎ≧Ｐ＞Ｍ）の表示画像データを生成してもよい。画像処理装置１０がDeepColor出力を可能とする場合、表示画像生成部１４０は、補正関数を用いて、タイル画像に内挿演算を施した１２ビット階調の表示画像データを生成する。補正関数を利用して生成したDeepColor出力は、図６（ｃ）に示される。８ビット表現のＪＰＥＧ画像データを、１２ビット表現の表示画像データに伸張することで、量子化ステップ幅を小さくでき、表示画像のカラーバンディングを抑制することが可能となる。
【００４７】
また、たとえば表示画像生成部１４０は、補正関数を用いて、メインメモリ６０に記憶されたタイル画像にディザ処理を施した、Ｍビット階調の表示画像データを生成してもよい。画像処理装置１０がDeepColor出力に対応していない場合、表示画像生成部１４０は、階調数を伸張することができず、Ｍビットの表示画像データを生成する必要がある。この場合であっても、補正関数を用いて、タイル画像にディザ処理を施すことができ、表示画像のカラーバンディングを抑制することが可能となる。従来のディザ処理と比較すると、本実施例では、原画像を予め加工しておく必要がなく、原画像から補正関数を導出して、原画像を補正するため、カラーバンディングを効果的に抑制することが可能となる。
【００４８】
このように、画像処理装置１０は、ソフトウェアデコード機能によるリッチな演算結果を有効に利用することで、原画像に対して予め手を加える必要なく、カラーバンディングを効果的に抑制する。なお、実施例では画像処理装置１０が、３２ビット階調の出力を可能とするソフトウェアデコード機能を有している例を示したが、伸張するビット数は３２に限らず、Ｍ（この場合はＭ＝８）ビットよりも大きければよい。なお、画像処理装置１０は、ソフトウェアデコード機能ではなく、画像データの階調数を伸張可能なハードウェアデコード機能を有してもよい。
【００４９】
図８は、カラーバンディング抑制処理を説明するためのフローチャートである。メインメモリ６０が、Ｍビット階調（Ｍは自然数）の画像データを記憶している。画像データ取得部１３０が、表示画像データの生成に必要なＭビット階調のタイル画像をメインメモリ６０から読み出して（Ｓ１０）、復号機能をもつ補正関数生成部１５０に供給する。補正関数生成部１５０は、受け取ったタイル画像から、Ｎビット階調（Ｎは自然数、Ｎ＞Ｍ）の画像データを生成し（Ｓ１２）、補正関数を導出する（Ｓ１４）。表示画像生成部１４０は、導出された補正関数を用いて表示画像データを生成する（Ｓ１６）。
【００５０】
以上は、図６（ａ）に示すように、８ビット量子化出力されるブロック画像において内挿値を得た場合に、３２ビット階調出力から、DeepColor出力やディザ処理の下位ビットを生成して、カラーバンディングを抑制した。一方で、ブロック画像において内挿値を得られない場合、すなわちブロック内に直流成分しかもたない場合もある。画像処理装置１０は、このような場合であっても、階層データ２８の階層構造を利用して、補正関数を導出することができる。以下では、説明の便宜上、タイル画像が８ビット量子化制限のもとで復号された画像データを用いて説明する。なお、３２ビット階調出力をもとに補正された画像データにおいても、ブロック内で直流成分しか存在しない場合も生じうるため、階層構造を利用した補正関数の導出を、補正された画像データに適用してもよい。
【００５１】
図９は、階層構造を利用した補正関数の導出処理を説明するための図である。図中、矩形領域の横方向の幅は、ブロック画像の一次元領域（８画素分）を仮想的に表現し、矩形領域の縦方向は、量子化ステップ幅を表現する。理解を容易にするために、図３にならって、階層間のブロック画像同士の関係を示している。補正関数の導出処理においては、ブロック画像内に補正情報が含まれているか判定され、補正情報が含まれていれば、その補正情報を用いて補正関数が導出される。補正情報は、ブロック画像において画素値が変化していることを示す情報である。図中、黒太線で示すライン１６２ａ、１６２ｂ、１６２ｃ、１６２ｄは、量子化された画素値を示す。
【００５２】
まず、表示画像データの生成に、第３階層３６のブロック画像１６０ａを使用する必要が生じたと仮定する。ブロック画像１６０ａにおいては、直流成分しか存在しておらず、補正情報が含まれていない。したがって補正関数を導出できないため、ブロック画像１６０ａに対応する低解像度のブロック画像に補正情報が含まれているか判定される。ここで、第３階層３６のブロック画像１６０ａに対応する低解像度のブロック画像は、第２階層３４のブロック画像１６０ｂである。ブロック画像１６０ｂは、第３階層３６におけるブロック画像１６０ａを含む４つのブロック画像が縮小されて形成されている。
【００５３】
ブロック画像１６０ｂにも補正情報が含まれていないため、第２階層３４のブロック画像１６０ｂに対応する第１階層３２のブロック画像１６０ｃに補正情報が含まれているか判定される。ブロック画像１６０ｃにも補正情報が含まれていないため、さらに第１階層３２のブロック画像１６０ｃに対応する第０階層３０のブロック画像１６０ｄに補正情報が含まれているか判定される。ブロック画像１６０ｄには、画素値が変化している補正情報が含まれている。この補正情報をもとに、ブロック画像１６０ｄにおける補正関数が導出される。
【００５４】
図１０は、第０階層３０のブロック画像１６０ｄに対して導出される補正関数１６４ｄを示す。この補正関数１６４ｄは、線形関数として導出されているが、他の関数が用いられてもよい。この補正関数１６４ｄが導出されると、第３階層３６のブロック画像１６０ａにおける補正関数も導出される。
【００５５】
図１１は、第０階層３０におけるブロック画像１６０ｄの補正関数１６４ｄから、第３階層３６におけるブロック画像１６０ａの補正関数１６４ａを導出した例である。第０階層３０のブロック画像１６０ｄは、第３階層３６において、ブロック画像１６０ａから右方向に並ぶ合計８つのブロック画像を縮小したものであり、したがって、補正関数１６４ｄが導出されると、図示されるように、対応する第３階層３６の８つのブロック画像に対した補正関数１６４ａが導出できる。以上の処理を、各階層のブロック画像に対して実行すると、図１２に示すように、すべての階層において補正関数を導出できる。
【００５６】
具体的には、まず復号部１３２が、圧縮したタイル画像をＭビット階調のタイル画像に復号する。実施例では、復号部１３２が、８ビット階調のタイル画像に復号する。図９には、８ビット階調のタイル画像の画素値がライン１６２ａ、１６２ｂ、１６２ｃ、１６２ｄとして示される。既述したように、各タイル画像は複数のブロック画像を符号化して形成されている。
【００５７】
補正関数生成部１５０において、判定部１５４が、表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する。補正情報が含まれている場合、判定部１５４は、補正情報を関数導出部１５２に提供し、関数導出部１５２は、その補正情報を用いて補正関数を導出する。図９の例でいえば、第０階層３０のブロック画像１６０ｄが表示画像データの生成に使用される画像データである場合に、ブロック画像１６０ｄには補正情報が含まれているため、関数導出部１５２は、図１０に示すように、補正関数１６４ｄを導出する。補正関数１６４ｄが導出されると、表示画像生成部１４０は、復号したタイル画像と、補正関数１６４ｄとを用いて、表示画像データを生成する。
【００５８】
一方、第３階層３６のブロック画像１６０ａが表示画像データの生成に使用される画像データである場合、判定部１５４は、ブロック画像１６０ａに補正情報が含まれていないことを判定する。このとき判定部１５４は、対応する低解像度のブロック画像１６０ｂを参照して、ブロック画像１６０ｂに補正情報が含まれているか判定する。ブロック画像１６０ｂにも補正情報が含まれていないため、判定部１５４は、補正情報が含まれているブロック画像１６０を見つけるまで、または最も解像度の低いブロック画像を参照するまで、より低解像度のブロック画像に補正情報が含まれているか判定する。図９の例では、第０階層３０のブロック画像１６０ｄに補正情報が含まれており、判定部１５４は、補正情報を関数導出部１５２に提供し、関数導出部１５２は、ブロック画像１６０ｄの補正情報から、ブロック画像１６０ａの補正関数１６４ａを導出する。これにより、表示画像生成部１４０は、復号したタイル画像と、補正関数１６４ａ（図１１参照）とを用いて、表示画像データを生成する。表示画像生成部１４０は、補正関数を用いて、DeepColor出力用の表示画像データを生成してもよく、またディザ処理を施した表示画像データを生成してもよい。
【００５９】
なお、判定部１５４は、参照するブロック画像に補正情報が含まれていない場合に、隣接する階層のブロック画像を参照するとしたが、対応する低解像度のブロック画像であれば、隣接する階層を飛び越えて参照してもよい。たとえば、参照時間を短縮するために、判定部１５４は、表示画像データの生成に使用されるブロック画像に補正情報が含まれていない場合には、最も低解像度の対応するブロック画像を参照するようにしてもよい。
【００６０】
図１３は、階層構造を利用した補正関数導出処理のフローチャートである。メインメモリ６０が、Ｍビット階調（Ｍは自然数）の圧縮画像データを記憶している。画像データ取得部１３０が、表示画像データの生成に必要なＭビット階調のタイル画像をメインメモリ６０から読み出して（Ｓ２０）、復号部１３２に供給する。復号部１３２は、圧縮したタイル画像を、Ｍビット階調のタイル画像に復号する（Ｓ２２）。判定部１５４は、表示画像データの生成に使用するブロック画像を参照して（Ｓ２４）、ブロック画像に補正情報が含まれているか判定する（Ｓ２６）。補正情報が含まれていなければ（Ｓ２６のＮ）、判定部１５４は、対応する低解像度のブロック画像を参照して（Ｓ２８）、参照したブロック画像に補正情報が含まれているか判定する（Ｓ２６）。補正情報が含まれていれば（Ｓ２６のＹ）、関数導出部１５２は、その補正情報を用いて、表示画像データの生成に使用するブロック画像の補正関数を導出する（Ｓ３０）。表示画像生成部１４０は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成する（Ｓ３２）。
【００６１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００６２】
１・・・画像処理システム、１０・・・画像処理装置、１２・・・表示装置、２８・・・階層データ、３０・・・第０階層、３２・・・第１階層、３４・・・第２階層、３６・・・第３階層、６０・・・メインメモリ、７０・・・バッファメモリ、９０・・・フレームメモリ、１００・・・制御部、１１０・・・入力受付部、１２０・・・画像処理部、１３０・・・画像データ取得部、１３２・・・復号部、１３４・・・変更量導出部、１３６・・・空間座標決定部、１４０・・・表示画像生成部、１５０・・・補正関数生成部、１５２・・・関数導出部、１５４・・・判定部。
【図１】
2011139276.tif 000003
【図２】
2011139276.tif 000004
【図３】
2011139276.tif 000005
【図４】
2011139276.tif 000006
【図５】
2011139276.tif 000007
【図７】
2011139276.tif 000008
【図８】
2011139276.tif 000009
【図９】
2011139276.tif 000010
【図１０】
2011139276.tif 000011
【図１１】
2011139276.tif 000012
【図１２】
2011139276.tif 000013
【図１３】
2011139276.tif 000014
【図６】
2011139276.tif 000015