説明

画像処理装置および画像処理方法

【課題】カラーバンディングを有効に抑制する画像処理技術を提供する。
【解決手段】メインメモリ60は、Mビット階調(Mは自然数)の画像データを記憶する。補正関数生成部150は、画像データから、Nビット階調(Nは自然数、N>M)の補正関数を生成する。表示画像生成部140は、補正関数生成部150により生成された補正関数を用いて、表示画像データを生成する。表示画像生成部140は、補正関数を用いることで、Mビット階調の圧縮画像データをMビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カラーバンディングを有効に抑制する画像処理技術に関する。
【背景技術】
【0002】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、GPUがポリゴンを用いた三次元画像を生成する(たとえば特許文献1参照)。
【0003】
JPEGに代表される画像フォーマットの階調表現を用いて、ノイズの少ないなめらかなグラデーションをディスプレイに表示すると、視覚特性から階段状の境界線が強調されて見える「カラーバンディング」が発生する。JPEGやMPEG、BDフォーマットなどの一般的な画像フォーマットは8ビットと低階調であるため、低ノイズのグラデーション画像では、原理的にカラーバンディングが発生することになる。このカラーバンディングを回避するために、画像データに意図的にノイズを付加するディザ法や、粒状ノイズを付加する誤差拡散法などが従来より提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第6563999号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、カラーバンディングを低減するために付加するノイズは、画像圧縮率の低下を招く。また、画像データにノイズを付加した場合であっても、その後の画像処理により、付加したノイズが修正、変形されて本来の機能を果たさず、結果としてカラーバンディングが発生することも多い。
【0006】
また近年、HDMI(High-Definition Multimedia Interface)規格に代表されるディスプレイインタフェースの開発が、多ビット化の方向で進められている。たとえばHDMI規格のバージョン1.3は、12ビット×3色の信号伝送を規定し、高階調なHDTV画像も身近になっている。しかしながら、JPEGやMPEGなどの画像フォーマットは、8ビットに量子化されているため、高品位なディスプレイインタフェースを活かしきれていなという状況が存在する。
【0007】
そこで本発明は、カラーバンディングを有効に抑制する画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある態様の画像処理装置は、Mビット階調(Mは自然数)の画像データを記憶する画像データ記憶部と、画像データ記憶部に記憶された画像データから、Nビット階調(Nは自然数、N>M)の補正関数を生成する補正関数生成部と、補正関数生成部により生成された補正関数を用いて、表示画像データを生成する表示画像生成部とを備える。
【0009】
本発明の別の態様もまた、画像処理装置である。この装置は、異なる解像度ごとに少なくとも1つの圧縮したタイル画像を含む、Mビット階調(Mは自然数)の画像データを保持する画像データ記憶部と、圧縮したタイル画像を、Mビット階調のタイル画像に復号する復号部と、復号したタイル画像から、表示画像データを生成する表示画像生成部とを備える。各タイル画像は複数のブロック画像を符号化して形成されている。画像処理装置は、さらに表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する関数導出部とを有する。表示画像生成部は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成する。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によると、カラーバンディングを有効に抑制する画像処理技術を提供することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施例にかかる画像処理システムの使用環境を示す図である。
【図2】入力装置の外観構成を示す図である。
【図3】画像処理システムにおいて使用する画像データの階層構造を示す図である。
【図4】画像処理装置の機能ブロック図を示す図である。
【図5】(a)は、IDCTの演算式を示す図であり、(b)は、画像処理装置のソフトウェアデコード機能を用いた演算結果を示す図である。
【図6】(a)は、32ビット階調の出力の一例を示す図であり、(b)は、(a)の出力を、8ビット階調に量子化した出力を示す図であり、(c)は、補正関数を利用して生成したDeepColor出力を示す図である。
【図7】制御部の構成を示す図である。
【図8】カラーバンディング抑制処理を説明するためのフローチャートである。
【図9】階層構造を利用した補正関数の導出処理を説明するための図である。
【図10】第0階層のブロック画像に対して導出される補正関数を示す図である。
【図11】導出された補正関数を示す図である。
【図12】すべての階層において導出された補正関数を示す図である。
【図13】階層構造を利用した補正関数導出処理のフローチャートである。
【発明を実施するための形態】
【0013】
図1は、本発明の実施例にかかる画像処理システム1の使用環境を示す。画像処理システム1は、入力装置20と、画像処理ソフトウェアを実行する画像処理装置10と、画像処理装置10による処理結果を出力する表示装置12とを備える。表示装置12は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置12は、画像処理装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)により無線接続されてもよい。なお画像処理装置10、入力装置20および表示装置12は、一体に形成されて、画像処理機能を搭載した携帯端末装置として構成されてもよい。
【0014】
画像処理システム1において、画像処理装置10は、ケーブル14を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。画像処理装置10は、無線通信により外部ネットワークに接続してもよい。
【0015】
画像処理装置10は、たとえばゲーム装置であって、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現する。なお画像処理装置10は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。
【0016】
画像処理装置10は、ユーザから入力装置20に入力される要求に応じて、表示装置12のディスプレイに表示する画像の拡大/縮小処理や、上下左右方向への移動処理など、表示画像を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置20を操作すると、入力装置20が、表示画像の変更指示信号を画像処理装置10に送信する。
【0017】
図2は、入力装置20の外観構成を示す。入力装置20は、ユーザが操作可能な操作手段として、十字キー21、アナログスティック27a、27bと、4種の操作ボタン26を備える。4種の操作ボタン26は、○ボタン22、×ボタン23、□ボタン24および△ボタン25から構成される。
【0018】
画像処理システム1において、入力装置20の操作手段には、表示画像の拡大/縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大/縮小要求の入力機能は、右側のアナログスティック27bに割り当てられる。ユーザはアナログスティック27bを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示画像のスクロール要求の入力機能は、十字キー21に割り当てられる。ユーザは十字キー21を押下することで、十字キー21を押下した方向のスクロール要求を入力できる。なお、画像変更指示の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック27aに、スクロール要求の入力機能が割り当てられてもよい。
【0019】
入力装置20は、入力された画像変更指示信号を画像処理装置10に伝送する機能をもち、本実施例では画像処理装置10との間で無線通信可能に構成される。入力装置20と画像処理装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置20は、画像処理装置10とケーブルを介して接続して、画像変更指示信号を画像処理装置10に伝送してもよい。
【0020】
図3は、画像処理システム1において使用する画像データの階層構造を示す。画像データは、深さ(Z軸)方向に、第0階層30、第1階層32、第2階層34および第3階層36を含む階層構造を有し、以下、この階層構造をもつ画像データを「階層データ」とよぶ。なお第4階層以上の高階層があってもよい。図3に示す階層データ28は4分木の階層構造を有し、各階層は、1以上のタイル画像38で構成される。すべてのタイル画像38は同じ画素数をもつ同一サイズに形成され、たとえば256×256画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第3階層36の原画像を複数段階に縮小して、第2階層34、第1階層32、第0階層30の画像データが生成される。たとえば第N階層の解像度(Nは0以上の整数)は、左右(X軸)方向、上下(Y軸)方向ともに、第(N+1)階層の解像度の1/2である。
【0021】
画像処理装置10において、階層データ28は、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施例の画像処理装置10は、複数種類の圧縮形式に対応したデコード機能を有してよい。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層であれば複数のタイル画像単位に行われていてもよい。
【0022】
階層データ28の階層構造は、図3に示すように、左右方向をX軸、上下方向をY軸、深さ方向をZ軸として設定され、仮想的な3次元空間を構築する。この階層構造において、X軸およびY軸は、原点を等しくする共通の座標系を定義する。画像処理装置10は、入力装置20より供給される入力信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレーム画像の4隅の座標(フレーム座標)を導出する。仮想空間におけるフレーム座標は、タイル画像の読出処理や、表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置10は、階層を特定する情報と、その階層におけるテクスチャ座標(UV座標)を導出してもよく、また仮想空間におけるフレーム画像の中心座標(X,Y)と縮尺率SCALEを導出してもよい。たとえばユーザからの入力が、階層データ28の階層構造において、仮想的なカメラを移動させる要求であると考えるならば、フレーム画像の中心座標と縮尺率情報との組み合わせ(X,Y,SCALE)を、仮想カメラ画像座標と呼んでもよい。以下では、説明の便宜上、(X,Y,SCALE)を仮想カメラ画像座標と呼び、画像変更指示信号を、仮想空間における仮想カメラを移動させて、フレームごとに仮想カメラ画像座標(X,Y,SCALE)を特定するための信号として表現することもある。縮尺率SCALEは、第3階層36の表示画像の縮尺率を1としたときのフレーム画像の縮尺率として定められてよい。なお、縮尺率は、X軸方向の縮尺率X_SCALEおよびY軸方向の縮尺率Y_SCALEとして定義され、X_SCALEとY_SCALEとを異ならせて、アスペクト比を変更可能とすることも可能である。その場合、仮想カメラ画像座標は、(X,Y,X_SCALE、Y_SCALE)として表現される。
【0023】
図4は、画像処理装置10の機能ブロック図を示す。画像処理装置10は、無線インタフェース40、スイッチ42、表示処理部44、ハードディスクドライブ50、記録媒体装着部52、ディスクドライブ54、メインメモリ60、バッファメモリ70および制御部100を有して構成される。表示処理部44は、表示装置12のディスプレイに表示するデータをバッファするフレームメモリを有する。
【0024】
スイッチ42は、イーサネットスイッチ(イーサネットは登録商標)であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ42は、ケーブル14を介して外部ネットワークに接続し、画像サーバから階層化された圧縮画像データを受信してもよい。またスイッチ42は無線インタフェース40に接続し、無線インタフェース40は、所定の無線通信プロトコルで入力装置20と接続する。入力装置20においてユーザから入力された画像変更指示信号は、無線インタフェース40、スイッチ42を経由して、制御部100に供給される。
【0025】
ハードディスクドライブ50は、データを記憶する補助記憶装置として機能する。スイッチ42を介して受信された圧縮画像データは、ハードディスクドライブ50に格納されてもよい。表示処理の実行時、ハードディスクドライブ50に格納された圧縮画像データは、メインメモリ60に読み出される。記録媒体装着部52は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ54は、読出専用のROMディスクが装着されると、ROMディスクを駆動して認識し、データを読み出す。ROMディスクは、光ディスクや光磁気ディスクなどであってよい。リムーバブル記録媒体やROMディスクに保持された圧縮画像データが、ハードディスクドライブ50に格納されてもよい。
【0026】
制御部100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(Power Processing Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic-Processing Unit)と呼ばれる。
【0027】
制御部100は、メインメモリ60およびバッファメモリ70に接続するメモリコントローラを備える。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ70として使用されてもよい。メインメモリ60およびバッファメモリ70は記憶装置であり、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、メインメモリ60とバッファメモリ70の間のデータ転送を高速に行うことができ、また表示処理部44におけるフレームメモリとバッファメモリ70の間で高速なデータ転送を実現できる。本実施例の制御部100は、複数のSPUを並列動作させることで、高速な画像処理機能を実現する。表示処理部44は、表示装置12に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
【0028】
本実施例の画像処理装置10は、圧縮画像データを用いて表示装置12に表示するための表示画像データを生成する際に、画像データの補正関数を生成して、カラーバンディングを有効に抑制する機能をもつ。以下では、圧縮画像データが、JPEGフォーマットの画像データである場合を例に説明するが、他のフォーマットの画像データであってよく、符号化の形式は問わない。
【0029】
JPEGでは、画像を固定サイズ(8×8画素)のブロックに分割し、そのブロック単位で離散コサイン変換(DCT:Discrete Cosine Transform)を施して、空間領域から周波数領域への変換処理を行う。変換されたブロック内の画像データは、量子化によって情報量を削減され、ハフマン符号によるエントロピー符号化を施されて圧縮される。本実施例の階層データ28では、タイル画像38が256×256画素で構成されており、したがって、タイル画像単位で圧縮される場合には、32×32個のブロック画像を符号化して形成される。
【0030】
階層データ28は、JPEGフォーマットの原画像データを用いて作成されてよい。図3の例では、原画像データを、解像度を変更せずに256×256画素のタイル画像に分割することで、第3階層36の最高解像度の画像データが作成される。第2階層34の画像データは、原画像データの解像度を1/2に下げて、縮小した画像データを256×256画素のタイル画像に分割することで作成される。なお、原画像データの解像度を1/2に下げることは、原画像の16×16画素分の画像データを縦横1/2倍に縮小して、8×8画素のブロック画像を生成することに等しい。同様に、第1階層32の画像データは、原画像データの解像度を1/4に下げることによって作成され、したがって、第1階層32のタイル画像を構成する各ブロックの画像データは、原画像の32×32画素分の画像データを縦横1/4倍に縮小されることで構成されている。第0階層30についても同様であり、第0階層30のタイル画像を構成するブロックの画像データは、原画像の64×64画素分の画像データを縦横1/8倍に縮小されることで構成される。
【0031】
本実施例の画像処理装置10は、JPEG画像データをソフトウェアデコードする機能をもち、JPEG画像データに逆離散コサイン変換(IDCT:Inverse Discrete Cosine Transform)を施して、周波数領域から空間領域への変換処理を行う。このソフトウェアデコード機能によると、8ビット階調表現されるJPEG画像データを、32ビット階調表現される画像データに変換して、画像データの階調数を伸張できる。また画像処理装置10は、HDMI規格のバージョン1.3に準拠した12ビット×3色の信号出力(いわゆるDeepColor出力)機能ももつ。
【0032】
図5(a)は、IDCTの演算式を示し、図5(b)は、画像処理装置10のソフトウェアデコード機能を用いた演算結果を示す。演算結果の横軸は、ブロック内のX軸方向の画素を示す。この演算結果に示されるように、JPEG画像データを32ビット階調で復号すると、ブロック内において、なめらかに遷移する画素値の出力が得られる。
【0033】
図6(a)は、32ビット階調の出力の一例を示す。この出力例は、図5(b)において、j=1における出力である。図6(b)は、図6(a)の出力を、8ビット階調に量子化した出力である。画像処理装置10が利用するソフトウェアデコーダではなく、通常のハードウェア化されたJPEGデコーダを用いる場合、JPEGハードウェアデコーダは、8ビットに量子化した出力を生成するため、結果として図6(b)に示す出力と同じ出力を生成する。図6(b)に示す画素値の変化量は、8ビット量子化出力のステップ幅を示す。
【0034】
本実施例の画像処理装置10は、図6(a)に示すように、ソフトウェアデコード機能により32ビット階調の出力を可能とする。32ビット階調の出力を8ビットに量子化すれば、通常のJPEGハードウェアデコーダと同じ出力を得ることになるが、8ビット量子化出力のステップ幅は大きいため、カラーバンディングが発生する可能性が高い。そこで本発明者は、この32ビット出力を、JPEG画像データを補正するための補正関数として利用して表示画像データを生成することで、カラーバンディングを抑制できるという知見に想到した。
【0035】
具体的に画像処理装置10は、1色につき12ビットのデジタル出力(DeepColor出力)を可能とするため、32ビット階調出力を補正関数として利用することで、JPEG画像データから、12ビット階調の表示画像データを生成する。このように8ビット階調のJPEG画像データを、階調数を伸張して12ビット階調の表示画像データに変換することで、量子化出力のステップ幅を小さくでき、カラーバンディングを抑制することが可能となる。図6(c)は、補正関数を利用して生成したDeepColor出力を示す。なお、画像処理装置10がDeepColor出力に対応していない場合には、32ビット出力からディザ処理用の下位ビットを生成して、8ビット階調出力にノイズを付加することで、カラーバンディングを抑制してもよい。このように、原画像のJPEG画像データが、そのまま8ビット階調表現で復号したときにカラーバンディングを発生しうるものであっても、画像処理装置10が、JPEG画像データから、より高階調の復号演算処理を行い、その演算結果を補正関数として用いることで、カラーバンディングを抑制した表示画像を生成できる。
【0036】
図7は、制御部100の構成を示す。制御部100は、入力受付部110および画像処理部120を備える。入力受付部110は、入力装置20から供給される画像変更指示信号を受け付ける。画像処理部120は、画像データ取得部130、復号部132、変更量導出部134、空間座標決定部136、表示画像生成部140および補正関数生成部150を有する。補正関数生成部150は、関数導出部152および判定部154を有する。なお、補正関数生成部150は復号機能を有してもよく、補正関数生成部150と復号部132とは一体に構成されてもよい。以下、補正関数生成部150と復号部132とが、同様に復号機能を有するものとして説明する。
【0037】
図7において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部100は1つのPPUと複数のSPUとを有し、PPUおよびSPUがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0038】
まず、画像処理装置10の基本的な画像表示処理機能について説明する。この画像表示処理機能によると、画像処理装置10が、ユーザからの指示に応じて、表示装置12に表示されている表示画像の拡大、縮小処理や、スクロール処理など、表示画像の変更処理を実行する。以下では、説明を簡略化するために、表示装置12において、すでに画像が表示されていることを前提とする。
【0039】
ユーザが入力装置20のアナログスティック27や十字キー21を操作すると、画像変更指示信号が画像処理装置10に送信される。入力受付部110は、入力装置20から、表示装置12に表示されている表示画像の変更指示信号を受け付ける。
【0040】
変更量導出部134は、変更指示信号をもとに、表示要求される表示画像の変更量を導出する。表示画像の変更量は、階層データの仮想3次元空間において、1フレームごとの表示画像の上下左右方向の移動量および深さ方向の移動量である。空間座標決定部136は、前回フレームの空間座標から、導出された変更量により移動する今回フレームの空間座標(仮想カメラ画像座標)を決定する。ここで空間座標は、フレーム画像の中心座標(X,Y)と縮尺率SCALEで特定される情報(X,Y,SCALE)で定まるものとする。変更量導出部134は、変更指示信号をもとに変更量(ΔX,ΔY,ΔSCALE)を導出し、空間座標決定部136は、前回フレームの空間座標(Xprev,Yprev,SCALEprev)に変更量(ΔX,ΔY,ΔSCALE)を加えて、今回フレームの空間座標(X,Y,SCALE)を決定する。なお、既述したように、空間座標は他のパラメータにより定められてもよい。
【0041】
画像データ取得部130は、空間座標決定部136から空間座標を受け取ると、表示画像データを生成するためにタイル画像を変更する必要があるか判定し、現在使用しているタイル画像を変更する必要がある場合には、そのタイル画像をメインメモリ60から読み出す。復号部132は、読み出されたタイル画像を復号し、バッファメモリ70に保持させる。表示画像生成部140は、空間座標にもとづいて、バッファメモリ70に保持されたタイル画像を用いて表示画像データを生成し、フレームメモリ90に供給する。表示処理部44は、フレームメモリ90に上書きされた表示画像データを表示装置12から出力する。なお、以上は基本的な画像表示処理機能であるが、本実施例の画像処理装置10は、画像表示処理を実行する際に、表示画像のカラーバンディングを抑制する機能を有している。以下に示すように、本実施例では、タイル画像の復号結果として、カラーバンディングを抑制するための補正関数がバッファメモリ70に保持され、表示画像生成部140は、バッファメモリ70に保持された補正関数を用いて表示画像データを生成する。このカラーバンディング抑制機能は、以下のように実現される。
【0042】
まず画像表示処理の実行時、メインメモリ60には、ハードディスクドライブ50からMビット階調(Mは自然数)の圧縮画像データが読み出されて記憶されている。一例として、メインメモリ60は、JPEGフォーマットの8ビット階調の階層データ28を記憶しているが、既述したように他のフォーマットの画像データであってもよい。
【0043】
入力装置20からの変更指示信号にもとづいて空間座標決定部136が今回フレームの空間座標を決定すると、画像データ取得部130が、表示画像データの生成に必要なタイル画像をメインメモリ60から読み出して、復号機能をもつ補正関数生成部150に供給する。なお画像データ取得部130は、今回フレームの空間座標および前回フレームの空間座標などから、将来、表示画像データの生成に必要となる可能性が高いタイル画像をメインメモリ60から読み出す、いわゆる先読み処理を行ってもよい。先読み処理を行うことで、画像処理装置10は、ユーザからの入力をリアルタイムに反映した表示画像データを生成できるようになる。
【0044】
補正関数生成部150は、受け取ったタイル画像から、Nビット階調(Nは自然数、N>M)の補正関数を生成する。補正関数生成部150は、ソフトウェアデコード機能を有し、JPEG画像データに逆離散コサイン変換(IDCT:Inverse Discrete Cosine Transform)を施して、周波数領域から空間領域への変換処理を行う。このソフトウェアデコード機能によると、8ビット階調表現されるJPEG画像データを、32ビット階調表現される画像データに変換して、画像データの階調数を伸張できる。関数導出部152は、変換した32ビット階調表現される画像データを、JPEG画像データの補正関数として導出する。なお関数導出部152は、32ビット階調表現される画像データを、Pビット階調(Pは自然数、N≧P>M、N=32)の画像データに量子化し、量子化した画像データを補正関数として導出してもよい。また関数導出部152は、Mビット階調の圧縮画像データをMビット量子化の制限のもとで復号した画像データに、ディザ処理を施すための補正関数を導出してもよい。関数導出部152は、導出した補正関数をバッファメモリ70に保持させる。なお既述したように、ソフトウェアデコードは、復号部132において行われてもよく、その場合は復号部132が、補正関数生成部150の一要素として機能することになる。
【0045】
表示画像生成部140は、今回フレームの空間座標に基づいて、バッファメモリ70に保持された補正関数を用いて表示画像データを生成する。表示画像生成部140は、補正関数を用いることで、Mビット階調の圧縮画像データをMビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成することができる。
【0046】
たとえば表示画像生成部140は、補正関数を用いて、メインメモリ60に記憶されたタイル画像に内挿演算を施した、Pビット階調(Pは自然数、N≧P>M)の表示画像データを生成してもよい。画像処理装置10がDeepColor出力を可能とする場合、表示画像生成部140は、補正関数を用いて、タイル画像に内挿演算を施した12ビット階調の表示画像データを生成する。補正関数を利用して生成したDeepColor出力は、図6(c)に示される。8ビット表現のJPEG画像データを、12ビット表現の表示画像データに伸張することで、量子化ステップ幅を小さくでき、表示画像のカラーバンディングを抑制することが可能となる。
【0047】
また、たとえば表示画像生成部140は、補正関数を用いて、メインメモリ60に記憶されたタイル画像にディザ処理を施した、Mビット階調の表示画像データを生成してもよい。画像処理装置10がDeepColor出力に対応していない場合、表示画像生成部140は、階調数を伸張することができず、Mビットの表示画像データを生成する必要がある。この場合であっても、補正関数を用いて、タイル画像にディザ処理を施すことができ、表示画像のカラーバンディングを抑制することが可能となる。従来のディザ処理と比較すると、本実施例では、原画像を予め加工しておく必要がなく、原画像から補正関数を導出して、原画像を補正するため、カラーバンディングを効果的に抑制することが可能となる。
【0048】
このように、画像処理装置10は、ソフトウェアデコード機能によるリッチな演算結果を有効に利用することで、原画像に対して予め手を加える必要なく、カラーバンディングを効果的に抑制する。なお、実施例では画像処理装置10が、32ビット階調の出力を可能とするソフトウェアデコード機能を有している例を示したが、伸張するビット数は32に限らず、M(この場合はM=8)ビットよりも大きければよい。なお、画像処理装置10は、ソフトウェアデコード機能ではなく、画像データの階調数を伸張可能なハードウェアデコード機能を有してもよい。
【0049】
図8は、カラーバンディング抑制処理を説明するためのフローチャートである。メインメモリ60が、Mビット階調(Mは自然数)の画像データを記憶している。画像データ取得部130が、表示画像データの生成に必要なMビット階調のタイル画像をメインメモリ60から読み出して(S10)、復号機能をもつ補正関数生成部150に供給する。補正関数生成部150は、受け取ったタイル画像から、Nビット階調(Nは自然数、N>M)の画像データを生成し(S12)、補正関数を導出する(S14)。表示画像生成部140は、導出された補正関数を用いて表示画像データを生成する(S16)。
【0050】
以上は、図6(a)に示すように、8ビット量子化出力されるブロック画像において内挿値を得た場合に、32ビット階調出力から、DeepColor出力やディザ処理の下位ビットを生成して、カラーバンディングを抑制した。一方で、ブロック画像において内挿値を得られない場合、すなわちブロック内に直流成分しかもたない場合もある。画像処理装置10は、このような場合であっても、階層データ28の階層構造を利用して、補正関数を導出することができる。以下では、説明の便宜上、タイル画像が8ビット量子化制限のもとで復号された画像データを用いて説明する。なお、32ビット階調出力をもとに補正された画像データにおいても、ブロック内で直流成分しか存在しない場合も生じうるため、階層構造を利用した補正関数の導出を、補正された画像データに適用してもよい。
【0051】
図9は、階層構造を利用した補正関数の導出処理を説明するための図である。図中、矩形領域の横方向の幅は、ブロック画像の一次元領域(8画素分)を仮想的に表現し、矩形領域の縦方向は、量子化ステップ幅を表現する。理解を容易にするために、図3にならって、階層間のブロック画像同士の関係を示している。補正関数の導出処理においては、ブロック画像内に補正情報が含まれているか判定され、補正情報が含まれていれば、その補正情報を用いて補正関数が導出される。補正情報は、ブロック画像において画素値が変化していることを示す情報である。図中、黒太線で示すライン162a、162b、162c、162dは、量子化された画素値を示す。
【0052】
まず、表示画像データの生成に、第3階層36のブロック画像160aを使用する必要が生じたと仮定する。ブロック画像160aにおいては、直流成分しか存在しておらず、補正情報が含まれていない。したがって補正関数を導出できないため、ブロック画像160aに対応する低解像度のブロック画像に補正情報が含まれているか判定される。ここで、第3階層36のブロック画像160aに対応する低解像度のブロック画像は、第2階層34のブロック画像160bである。ブロック画像160bは、第3階層36におけるブロック画像160aを含む4つのブロック画像が縮小されて形成されている。
【0053】
ブロック画像160bにも補正情報が含まれていないため、第2階層34のブロック画像160bに対応する第1階層32のブロック画像160cに補正情報が含まれているか判定される。ブロック画像160cにも補正情報が含まれていないため、さらに第1階層32のブロック画像160cに対応する第0階層30のブロック画像160dに補正情報が含まれているか判定される。ブロック画像160dには、画素値が変化している補正情報が含まれている。この補正情報をもとに、ブロック画像160dにおける補正関数が導出される。
【0054】
図10は、第0階層30のブロック画像160dに対して導出される補正関数164dを示す。この補正関数164dは、線形関数として導出されているが、他の関数が用いられてもよい。この補正関数164dが導出されると、第3階層36のブロック画像160aにおける補正関数も導出される。
【0055】
図11は、第0階層30におけるブロック画像160dの補正関数164dから、第3階層36におけるブロック画像160aの補正関数164aを導出した例である。第0階層30のブロック画像160dは、第3階層36において、ブロック画像160aから右方向に並ぶ合計8つのブロック画像を縮小したものであり、したがって、補正関数164dが導出されると、図示されるように、対応する第3階層36の8つのブロック画像に対した補正関数164aが導出できる。以上の処理を、各階層のブロック画像に対して実行すると、図12に示すように、すべての階層において補正関数を導出できる。
【0056】
具体的には、まず復号部132が、圧縮したタイル画像をMビット階調のタイル画像に復号する。実施例では、復号部132が、8ビット階調のタイル画像に復号する。図9には、8ビット階調のタイル画像の画素値がライン162a、162b、162c、162dとして示される。既述したように、各タイル画像は複数のブロック画像を符号化して形成されている。
【0057】
補正関数生成部150において、判定部154が、表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する。補正情報が含まれている場合、判定部154は、補正情報を関数導出部152に提供し、関数導出部152は、その補正情報を用いて補正関数を導出する。図9の例でいえば、第0階層30のブロック画像160dが表示画像データの生成に使用される画像データである場合に、ブロック画像160dには補正情報が含まれているため、関数導出部152は、図10に示すように、補正関数164dを導出する。補正関数164dが導出されると、表示画像生成部140は、復号したタイル画像と、補正関数164dとを用いて、表示画像データを生成する。
【0058】
一方、第3階層36のブロック画像160aが表示画像データの生成に使用される画像データである場合、判定部154は、ブロック画像160aに補正情報が含まれていないことを判定する。このとき判定部154は、対応する低解像度のブロック画像160bを参照して、ブロック画像160bに補正情報が含まれているか判定する。ブロック画像160bにも補正情報が含まれていないため、判定部154は、補正情報が含まれているブロック画像160を見つけるまで、または最も解像度の低いブロック画像を参照するまで、より低解像度のブロック画像に補正情報が含まれているか判定する。図9の例では、第0階層30のブロック画像160dに補正情報が含まれており、判定部154は、補正情報を関数導出部152に提供し、関数導出部152は、ブロック画像160dの補正情報から、ブロック画像160aの補正関数164aを導出する。これにより、表示画像生成部140は、復号したタイル画像と、補正関数164a(図11参照)とを用いて、表示画像データを生成する。表示画像生成部140は、補正関数を用いて、DeepColor出力用の表示画像データを生成してもよく、またディザ処理を施した表示画像データを生成してもよい。
【0059】
なお、判定部154は、参照するブロック画像に補正情報が含まれていない場合に、隣接する階層のブロック画像を参照するとしたが、対応する低解像度のブロック画像であれば、隣接する階層を飛び越えて参照してもよい。たとえば、参照時間を短縮するために、判定部154は、表示画像データの生成に使用されるブロック画像に補正情報が含まれていない場合には、最も低解像度の対応するブロック画像を参照するようにしてもよい。
【0060】
図13は、階層構造を利用した補正関数導出処理のフローチャートである。メインメモリ60が、Mビット階調(Mは自然数)の圧縮画像データを記憶している。画像データ取得部130が、表示画像データの生成に必要なMビット階調のタイル画像をメインメモリ60から読み出して(S20)、復号部132に供給する。復号部132は、圧縮したタイル画像を、Mビット階調のタイル画像に復号する(S22)。判定部154は、表示画像データの生成に使用するブロック画像を参照して(S24)、ブロック画像に補正情報が含まれているか判定する(S26)。補正情報が含まれていなければ(S26のN)、判定部154は、対応する低解像度のブロック画像を参照して(S28)、参照したブロック画像に補正情報が含まれているか判定する(S26)。補正情報が含まれていれば(S26のY)、関数導出部152は、その補正情報を用いて、表示画像データの生成に使用するブロック画像の補正関数を導出する(S30)。表示画像生成部140は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成する(S32)。
【0061】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0062】
1・・・画像処理システム、10・・・画像処理装置、12・・・表示装置、28・・・階層データ、30・・・第0階層、32・・・第1階層、34・・・第2階層、36・・・第3階層、60・・・メインメモリ、70・・・バッファメモリ、90・・・フレームメモリ、100・・・制御部、110・・・入力受付部、120・・・画像処理部、130・・・画像データ取得部、132・・・復号部、134・・・変更量導出部、136・・・空間座標決定部、140・・・表示画像生成部、150・・・補正関数生成部、152・・・関数導出部、154・・・判定部。

【特許請求の範囲】
【請求項1】
Mビット階調(Mは自然数)の画像データを記憶する画像データ記憶部と、
前記画像データ記憶部に記憶された画像データから、Nビット階調(Nは自然数、N>M)の補正関数を生成する補正関数生成部と、
前記補正関数生成部により生成された補正関数を用いて、表示画像データを生成する表示画像生成部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記補正関数生成部は、Mビット階調の圧縮画像データをNビット階調の画像データに復号して、補正関数を生成し、
前記表示画像生成部は、補正関数を用いることで、Mビット階調の圧縮画像データをMビット量子化の制限のもとで復号した画像データを補正した表示画像データを生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
画像データ記憶部は、JPEGフォーマットの8ビット階調の画像データを記憶しており、
前記補正関数生成部は、前記画像データを逆離散コサイン変換を用いて、Nビット階調(N>8)の画像データを生成し、
前記表示画像生成部は、Nビット階調の画像データを用いて表示画像データを生成することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記表示画像生成部は、補正関数を用いて、前記画像データ記憶部に記憶された画像データに内挿演算を施した、Pビット階調(Pは自然数、N≧P>M)の表示画像データを生成することを特徴とする請求項1から3のいずれかに記載の画像処理装置。
【請求項5】
前記表示画像生成部は、補正関数を用いて、前記画像データ記憶部に記憶された画像データにディザ処理を施した、Mビット階調の表示画像データを生成することを特徴とする請求項1から3のいずれかに記載の画像処理装置。
【請求項6】
前記画像データ記憶部は、異なる解像度ごとに少なくとも1つの圧縮したタイル画像を含む画像データを保持しており、各タイル画像は、複数のブロック画像を符号化して形成されており、
前記補正関数生成部は、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、
補正情報を用いて補正関数を導出する関数導出部と、を有し、前記補正情報は、ブロック画像において画素値が変化していることを示す情報であって、
前記判定部は、表示画像データの生成に使用するブロック画像に補正情報が含まれていない場合に、対応する低解像度のブロック画像に補正情報が含まれているか判定し、
前記関数導出部は、低解像度のブロック画像に補正情報が含まれている場合に、その補正情報を用いて補正関数を導出することを特徴とする請求項1から5のいずれかに記載の画像処理装置。
【請求項7】
異なる解像度ごとに少なくとも1つの圧縮したタイル画像を含む、Mビット階調(Mは自然数)の画像データを保持する画像データ記憶部と、
圧縮したタイル画像を、Mビット階調のタイル画像に復号する復号部と、
復号したタイル画像から、表示画像データを生成する表示画像生成部と、を備えた画像処理装置であって、各タイル画像は複数のブロック画像を符号化して形成されており、
画像処理装置は、さらに、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する判定部と、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する関数導出部と、を有し、
前記表示画像生成部は、復号したタイル画像と、補正関数とを用いて、表示画像データを生成することを特徴とする画像処理装置。
【請求項8】
前記補正情報は、ブロック画像において画素値が変化していることを示す情報であることを特徴とする請求項7に記載の画像処理装置。
【請求項9】
前記判定部は、表示画像データの生成に使用するブロック画像に補正情報が含まれていない場合に、対応する低解像度のブロック画像に補正情報が含まれているか判定し、
前記関数導出部は、低解像度のブロック画像に補正情報が含まれている場合に、その補正情報を用いて補正関数を導出することを特徴とする請求項7または8に記載の画像処理装置。
【請求項10】
コンピュータに、
Mビット階調(Mは自然数)の画像データから、Nビット階調(Nは自然数、N>M)の補正関数を生成する機能と、
生成された補正関数を用いて、表示画像データを生成する機能と、
を実現させるためのプログラム。
【請求項11】
コンピュータに、
圧縮したMビット階調(Mは自然数)のタイル画像であって、複数のブロック画像を符号化して形成されたタイル画像を、Mビット階調のタイル画像に復号する機能と、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定する機能と、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出する機能と、
復号したタイル画像と、補正関数とを用いて、表示画像データを生成する機能と、
を実現させるためのプログラム。
【請求項12】
請求項10または11に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項13】
画像データ記憶部に記憶されたMビット階調(Mは自然数)の画像データから、Nビット階調(Nは自然数、N>M)の補正関数を生成するステップと、
生成された補正関数を用いて、表示画像データを生成するステップと、
を備えることを特徴とする画像処理方法。
【請求項14】
圧縮したMビット階調(Mは自然数)のタイル画像であって、複数のブロック画像を符号化して形成されたタイル画像を、Mビット階調のタイル画像に復号するステップと、
表示画像データの生成に使用するブロック画像に補正情報が含まれているか判定するステップと、
補正情報が含まれている場合に、その補正情報を用いて補正関数を導出するステップと、
復号したタイル画像と、補正関数とを用いて、表示画像データを生成するステップと、
を備えることを特徴とする画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図6】
image rotate


【公開番号】特開2011−139276(P2011−139276A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−297718(P2009−297718)
【出願日】平成21年12月28日(2009.12.28)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】