(57)【特許請求の範囲】
【請求項１】
動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するタイル画像列生成部と、
複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する参照画像圧縮部と、
前記タイル画像列を構成する各タイル画像と、前記参照画像圧縮部が生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する差分画像生成部と、
前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する差分画像圧縮部と、
前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像列単位で生成し記憶装置に出力する圧縮データ生成部と、
を備えることを特徴とする動画圧縮装置。
【請求項２】
前記参照画像圧縮部および前記差分画像圧縮部は圧縮処理において、前記データブロックに含まれる各画像を所定の倍率で一旦縮小して拡大した画像と、元の画像との画素値の差分の合計が所定のしきい値以下であるとき、当該倍率で前記データブロックに含まれる画像を縮小し、
前記圧縮データ生成部は、前記動画圧縮データに、前記タイル画像におけるデータブロックの位置と、それに対応する前記参照画像および前記差分画像の圧縮データとを対応づけるポインタ情報を含めることを特徴とする請求項１に記載の動画圧縮装置。
【請求項３】
前記参照画像圧縮部および前記差分画像圧縮部は圧縮処理においてさらに、前記データブロックに含まれる画像列を所定数ごとに平均化した画像と、元の画像との画素値の差分の合計が所定のしきい値以下であるとき、元の画像を当該平均化した画像で代替させることにより画像数を削減することを特徴とする請求項２に記載の動画圧縮装置。
【請求項４】
前記差分画像圧縮部は、前記データブロックを構成する画素値の絶対値が所定のしきい値以下であるとき、当該データブロックの全ての画素値を０とするように決定し、
前記圧縮データ生成部は、前記動画圧縮データにおいて、画素値を０とする圧縮データが、複数のデータブロックで共有されるように、データブロックと圧縮データを対応づけることを特徴とすることを特徴とする請求項１から３のいずれかに記載の動画圧縮装置。
【請求項５】
前記参照画像圧縮部は、前記参照画像の画像平面および時間軸において分割してなるデータブロックの所定数の画素ごとに、画素値のうち２値を代表値として保持するパレットと、当該代表値を線形補間して定まる複数の中間値および前記代表値のいずれかを指定する情報を画素値の代わりに保持するインデックスを生成することにより画素値を量子化することを特徴とする請求項１から４のいずれかに記載の動画圧縮装置。
【請求項６】
前記差分画像圧縮部は、前記差分画像のデータブロックの所定数の画素ごとに、画素値のうち代表値である４値をそれぞれ１／Ｎ倍（Ｎは自然数）した４値を保持するパレットと、パレットが保持する４値のいずれかを指定する情報を画素値の代わりに保持するインデックスを生成することにより画素値を量子化することを特徴とする請求項１から５のいずれかに記載の動画圧縮装置。
【請求項７】
前記差分画像圧縮部は、前記代表値を復元するために前記パレットが保持する値に乗算すべき倍率Ｎを表す識別番号を、当該パレットが保持する４値のうち前半アドレスに格納された２値の大小関係とその格納順、および後半アドレスに格納された２値の大小関係とその格納順によって表すことを特徴とする請求項６に記載の動画圧縮装置。
【請求項８】
前記参照画像圧縮部および前記差分画像圧縮部は、前記インデックスと元のデータブロックの画素の位置との対応関係を特定するための識別番号を、対応するパレットの前半アドレスに格納された値と後半アドレスに格納された値の大小関係によって表すことを特徴とする請求項５から７のいずれかに記載の動画圧縮装置。
【請求項９】
前記差分画像生成部は、前記参照画像の圧縮データをデコードする処理において画像を拡大する際、前記パレットおよび前記インデックスを生成する単位である前記所定数の画素で構成される画像内の配列以下の単位で内挿および外挿することにより新たな画素を生成することを特徴とする請求項５から８のいずれかに記載の動画圧縮装置
【請求項１０】
動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する情報処理部と、
前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記情報処理部が算出した情報に基づき前記複数フレームごとのタイル画像列単位で前記動画圧縮データをメモリにロードするロード部と、
メモリにロードした前記動画圧縮データのうち、前記情報処理部が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する表示画像処理部と、
描画された画像を順次表示する表示部と、
を備えることを特徴とする画像処理装置。
【請求項１１】
前記参照画像の圧縮データと前記差分画像の圧縮データは前記データブロック単位で可変長に圧縮されたデータであり、
前記表示画像処理部は、前記動画圧縮データに含まれる、前記タイル画像におけるデータブロックの位置と、それに対応する前記参照画像の圧縮データおよび前記差分画像の圧縮データとを対応づけるポインタ情報を参照して、表示すべき領域に対応するデータブロックの参照画像の圧縮データと差分画像の圧縮データを特定することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記差分画像の圧縮データは、所定数の画素ごとに、画素値のうち代表値である４値をそれぞれ１／Ｎ倍（Ｎは自然数）した４値を保持するパレットと、パレットが保持する４値のいずれかを指定する情報を画素値の代わりに保持するインデックスとで構成され、
前記表示画像処理部は、前記代表値を復元するために前記パレットが保持する値に乗算すべき倍率Ｎを表す識別番号を、当該パレットが保持する４値のうち前半アドレスに格納された２値の大小関係とその格納順、および後半アドレスに格納された２値の大小関係とその格納順によって特定することにより、前記代表値を復元することを特徴とする請求項１０または１１に記載の画像処理装置。
【請求項１３】
前記表示画像処理部は、前記差分画像の圧縮データにおける前記インデックスと元の画素の位置との対応関係を特定するための識別番号を、対応するパレットの前半アドレスに格納された値と後半アドレスに格納された値の大小関係によって特定し、それに基づき表示すべき領域を構成する画素のインデックスを特定することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記参照画像の圧縮データと前記差分画像の圧縮データは、所定数の画素ごとに画素値を量子化したデータであり、
前記表示画像処理部は、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードする処理において画像を拡大する際、量子化する単位である前記所定数の画素で構成される画像内の配列以下の単位で内挿および外挿することにより新たな画素を生成することを特徴とする請求項１０から１３のいずれかに記載の画像処理装置。
【請求項１５】
動画圧縮装置において、記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するステップと、
複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成するステップと、
前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成するステップと、
前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成するステップと、
前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像列単位で生成し記憶装置に出力するステップと、
を含むことを特徴とする動画圧縮方法。
【請求項１６】
画像処理装置において、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出するステップと、
前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出するステップで算出した情報に基づき前記複数フレームごとのタイル画像列単位で前記動画圧縮データをメモリにロードするステップと、
メモリにロードした前記動画圧縮データのうち、前記算出するステップで算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するステップと、
描画された画像を順次表示するステップと、
を含むことを特徴とする画像処理方法。
【請求項１７】
記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成する機能と、
複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する機能と、
前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する機能と、
前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する機能と、
前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像列単位で生成し記憶装置に出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１８】
動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する機能と、
前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出する機能が算出した情報に基づき前記複数フレームごとのタイル画像列単位で前記動画圧縮データをメモリにロードする機能と、
メモリにロードした前記動画圧縮データのうち、前記算出する機能が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する機能と、
描画された画像を順次表示する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１９】
記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成する機能と、
複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する機能と、
前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する機能と、
前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する機能と、
前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像列単位で生成し記憶装置に出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とする記録媒体。
【請求項２０】
動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する機能と、
前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出する機能が算出した情報に基づき前記複数フレームごとのタイル画像列単位で前記動画圧縮データをメモリにロードする機能と、
メモリにロードした前記動画圧縮データのうち、前記算出する機能が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する機能と、
描画された画像を順次表示する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とする記録媒体。
【請求項２１】
動画データを構成するフレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、
前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を、前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を前記複数フレームごとのタイル画像列単位で対応づけ、
画像処理装置において、表示すべきフレームと当該フレーム内の表示すべき領域の情報に基づき前記複数フレームごとのタイル画像列単位でロードされ、表示すべきフレームのうち表示すべき領域に対応するデータブロックの前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算されることにより、表示すべき領域の画像を順次描画するのに用いられることを特徴とする動画圧縮ファイルのデータ構造。
【請求項２２】
請求項２１に記載のデータ構造を有する動画圧縮ファイルを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を含む画像を表示するための画像処理技術に関する。
【背景技術】
【０００２】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、ＧＰＵがポリゴンを用いた三次元画像を生成する（例えば特許文献１参照）。
【０００３】
動画、静止画に関わらず、画像をいかに効率よく表示するかは常に重要な問題となる。そのため画像データの圧縮技術、伝送技術、画像処理技術、表示技術など多方面で様々な技術が開発、実用化され、高精細な画像を多様な場面で身近に楽しめるようになってきた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６５６３９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザによる視点移動やゲームの進捗による画角の変化などに対し、高精細な画像を応答性よく表示させたい、という要求は常に存在する。例えば表示させた全体画像のうちユーザが着目したい領域を拡大して表示させたり別の領域に移動したり、といった、視点に対し自由度のある画像表示を応答性よく実現するためには、サイズの大きな画像データを短時間で処理しつつランダムアクセスをも可能にしなければならない。
【０００６】
特に時間経過に対し多数のフレームを順次表示させる動画像の場合、データサイズが増大するため圧縮率を優先することが一般的である。しかし圧縮率を上げるほどデコード時の演算コストが高くなるうえ、データアクセスの粒度が大きくなる傾向となる。結果として、限定的な領域のみを表示したい場合であっても、フレームの全領域をデコードしたりメモリに展開したりする必要が生じ、演算コスト、メモリコストの面では不利となる。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は様々な要求に対し応答性よく動画像表示できる画像処理技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様は動画圧縮装置に関する。この動画圧縮装置は、動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するタイル画像列生成部と、タイル画像列を圧縮し参照画像の圧縮データを生成する参照画像圧縮部と、タイル画像列を構成する各タイル画像と、参照画像圧縮部が生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する差分画像生成部と、差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する差分画像圧縮部と、参照画像の圧縮データおよび差分画像の圧縮データを含む動画圧縮データを、所定フレーム数のタイル画像単位で生成し記憶装置に出力する圧縮データ生成部と、を備えることを特徴とする。
【０００９】
本発明の別の態様はデータ画像処理装置に関する。この画像処理装置は、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する情報処理部と、フレーム列を画像平面において分割してなるタイル画像列を圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と、対応するタイル画像との差分を表す差分画像の圧縮データと、を含む動画圧縮データを記憶した記憶装置から、情報処理部が算出した情報に基づきタイル画像単位で動画圧縮データをメモリにロードするロード部と、メモリにロードした動画圧縮データのうち、情報処理部が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する表示画像処理部と、描画された画像を順次表示する表示部と、を備えることを特徴とする。
【００１０】
本発明のさらに別の態様は動画圧縮方法に関する。この動画圧縮方法は、動画圧縮装置において、記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するステップと、タイル画像列を圧縮して参照画像の圧縮データを生成するステップと、タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成するステップと、差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成するステップと、参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、所定フレーム数のタイル画像単位で生成し記憶装置に出力するステップと、を含むことを特徴とする。
【００１１】
本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、画像処理装置において、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出するステップと、フレーム列を画像平面において分割してなるタイル画像列を圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と対応する前記タイル画像との差分を表す差分画像の圧縮データと、を含む動画圧縮データを記憶した記憶装置から、算出するステップで算出した情報に基づきタイル画像単位で動画圧縮データをメモリにロードするステップと、メモリにロードした動画圧縮データのうち、算出するステップで算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するステップと、描画された画像を順次表示するステップと、を含むことを特徴とする。
【００１２】
本発明のさらに別の態様は動画圧縮ファイルのデータ構造に関する。このデータ構造は、動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を構成する各タイル画像を画像平面および時間軸において分割してなるデータブロックの単位で圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と、対応するタイル画像との差分を表す差分画像からなる差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮した差分画像の圧縮データと、を所定フレーム数のタイル画像単位で対応づけ、画像処理装置において、表示すべきフレームと当該フレーム内の表示すべき領域の情報に基づきタイル画像単位でロードされ、表示すべきフレームのうち表示すべき領域に対応するデータブロックの参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するのに用いられることを特徴とする。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によると、ランダムアクセスが可能でスループットの高い３次元データ出力を行える。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態における画像処理装置の構成を示す図である。
【図２】本実施の形態における動画データの処理単位を説明するための図である。
【図３】本実施の形態において動画データ圧縮機能を有する制御部およびハードディスクドライブの構成を詳細に示す図である。
【図４】本実施の形態において制御部を含む画像処理装置が実施する動画データの圧縮手順を模式的に示す図である。
【図５】本実施の形態における参照画像圧縮部が参照画像の圧縮データを生成する処理手順を示すフローチャートである。
【図６】本実施の形態において空間分割したタイル画像列を冗長性判定により圧縮する手順を模式的に示す図である。
【図７】本実施の形態において圧縮判定を行ったあとのデータブロックをさらに分割して量子化単位を形成し画素値を量子化する様子を模式的に示す図である。
【図８】本実施の形態においてＹ画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。
【図９】本実施の形態においてＣｂＣｒ画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。
【図１０】本実施の形態において１６画素からなる量子化単位を形成するために、分割パターン記憶部に格納する分割パターンのバリエーションを示す図である。
【図１１】本実施の形態において、冗長性による圧縮を行わなかった場合のデータブロックから量子化単位を生成する際の分割パターンを示す図である。
【図１２】本実施の形態において、冗長性を利用した圧縮を行ったデータブロックから量子化単位を生成する際の分割パターンを示す図である。
【図１３】本実施の形態において、冗長性を利用した圧縮を行ったデータブロックから量子化単位を生成する際の分割パターンを示す図である。
【図１４】本実施の形態における参照画像の圧縮データのデータ構造を模式的に示す図である。
【図１５】本実施の形態において、圧縮パターンと分割パターンを表す識別番号をパレットによって表す手法を説明するための図である。
【図１６】本実施の形態において差分画像生成部が差分画像を生成する手順を模式的に示す図である。
【図１７】本実施の形態において参照画像をデコードする際の画像の拡大処理を模式的に示す図である。
【図１８】本実施の形態においてパレットに格納した値のデコード時の倍率の識別番号をパレットによって表す手法を説明するための図である。
【図１９】本実施の形態において差分画像のＹ画像のパレットによって圧縮パターンと分割パターンを表す識別番号を表す手法を説明するための図である。
【図２０】本実施の形態において参照画像の圧縮データと差分画像の圧縮データを含む最終的な圧縮データを生成する処理手順を模式的に示す図である。
【図２１】本実施の形態において、画像表示機能を有する制御部の構成を詳細に示す図である。
【図２２】本実施の形態においてデコード部が行うデコード処理の手順を示すフローチャートである。
【図２３】本実施の形態において動画像を階層データとする場合のデータ構造を概念的に示す図である。
【発明を実施するための形態】
【００１６】
本実施の形態では、演算コストやメモリコストを増大させずに、画像平面上および時間軸に対しランダムアクセス可能に動画像を表示する。ここで表示対象とする動画は、映画、アニメーション、ユーザが撮影した動画などそれ自体を主たるコンテンツとするものでもよいし、ゲームなどのコンピュータグラフィックスにおいてマッピングされるビデオテクスチャなど画像の部材として表されるものでもよい。
【００１７】
静止画像の場合、圧縮方式としてＪＰＥＧ（Joint Photographic Experts Group）やＳ３ＴＣ（S3 Texture Compression）などが実用化されている。前者は表示時にデコード対象のデータをメモリに展開する必要があるためメモリコストが比較的大きくなるが高圧縮率である。後者は圧縮率が比較的低い代わりにデコードデータの展開が必要ないため、局所的な画像を表示する場合は特にメモリコストが小さくなる。したがって、表示環境などによって定まる圧縮率とメモリ負荷の優先順位に応じて、適宜圧縮方式を選択することができる。
【００１８】
一方、動画像の圧縮方式は従来より、ＭＰＥＧ(Moving Picture Experts Group）やＡＶＣ（Advanced Video Coding）など圧縮率を上げることに重点が置かれてきたため、次のような問題が生じる。すなわち動画像をビデオテクスチャとして用いる場合、一部分のみをマッピングする場合であっても、全ての領域をメモリに展開する必要があり無駄なメモリコストがかかる。このことはビデオテクスチャのみならず、動画像を拡大してその一部のみを表示するような場合も同様である。
【００１９】
特にフレーム間予測符号化方式の場合、参照画像も全領域をメモリに展開する必要がある。また高い圧縮率に起因して、全領域のデータをデコードするための演算コストも大きい。さらに当該ビデオテクスチャで表現する領域が画角から外れている期間であっても、次に画角に入ったときに備えてデコードし続けなければいけないため、この点でもデコードのための処理コスト、メモリコストが無駄にかかることになる。
【００２０】
そこで本実施の形態では、動画像のデータを圧縮したままメモリに格納しても、必要な領域のデータのみを取り出して独立にデコードし表示できるように圧縮することで、演算コストとメモリコストを軽減させる。このときフレーム内やフレーム間の冗長性を考慮して圧縮することにより、画像の内容を考慮したうえで高画質、高圧縮率を実現する。
【００２１】
まず本実施の形態において動画像の圧縮データを生成する技術について説明する。図１は本実施の形態の画像処理装置の構成を示している。画像処理装置１０は、無線インタフェース４０、入力装置２０、表示処理部４４、表示装置１２、ハードディスクドライブ５０、記録媒体装着部５２、ディスクドライブ５４、メインメモリ６０および制御部１００を有して構成される。
【００２２】
表示装置１２は液晶ディスプレイ、ＥＬ（Electronic Luminescence）ディスプレイ、プラズマディスプレイなど一般的なディスプレイのいずれかを備えており、画像処理装置１０のその他のモジュールと一体的に設けられてもよいし、有線ケーブルや無線ＬＡＮ（Local Area Network）などにより有線接続または無線接続されてもよい。表示処理部４４は、表示装置１２のディスプレイに表示するデータをバッファするフレームメモリ（図示せず）を有する。
【００２３】
無線インタフェース４０は、所定の無線通信プロトコルで外部の機器やネットワークと無線で接続することによりサーバから画像データなど各種データを受信できるように構成される。入力装置２０はジョイスティック、タッチパネル、マウス、キーボード、ボタンなど一般的な入力装置で構成される。入力装置２０は、処理対象の画像データの選択、圧縮データ生成開始などのユーザの要求を受け付ける操作手段を備える。入力装置２０においてユーザから入力された各種要求信号は、制御部１００に供給される。
【００２４】
ハードディスクドライブ５０は、データを記憶する記憶装置として機能する。サーバから受信した各種データは、一旦、ハードディスクドライブ５０に格納される。記録媒体装着部５２は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ５４は、読み出し専用のＲＯＭディスクが装着されると、ＲＯＭディスクを駆動して認識し、データを読み出す。ＲＯＭディスクは、光ディスクや光磁気ディスクなどであってよい。画像データなど各種データはこれらの記録媒体に格納されていてもよい。
【００２５】
制御部１００は、マルチコアＣＰＵを備え、１つのＣＰＵの中に１つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはＰＰＵ（PowerPC Processor Unit）と呼ばれ、残りのプロセッサコアはＳＰＵ（Synergistic Processor Unit）と呼ばれる。ＰＰＵはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各ＳＰＵに効率的に割り当てる。なお、ＰＰＵ自身がタスクを実行してもよい。ＳＰＵはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。
【００２６】
メインメモリ６０は記憶装置であり、ＲＡＭ（ランダムアクセスメモリ）として構成される。ＳＰＵは制御ユニットとして専用のＤＭＡ（Direct Memory Access）コントローラをもち、表示処理部４４におけるフレームメモリとメインメモリ６０の間で高速なデータ転送を実現できる。本実施の形態の制御部１００は、複数のＳＰＵを並列動作させることで、高速な画像処理機能を実現する。表示処理部４４は表示装置１２に接続されて、メニュー画面などの画像データを出力する。
【００２７】
図２は本実施の形態における動画データの処理単位を説明するための図である。本実施の形態では、圧縮対象の動画を構成する画像フレーム８０をそれぞれ、所定のサイズで分割して複数のタイル画像（例えばタイル画像８２）とする。動画像の画像フレーム８０は図２の縦方向に表される時間軸に対して画像列を構成するため、タイル画像もそれに対応する画像列となる（例えばタイル画像列８４）。本実施の形態では、当該タイル画像列を処理単位として圧縮データを生成する。画像表示時には必要に応じてデコードしたタイル画像をつなげることにより画像を表示する。なお以後の説明では、タイル画像列を構成する各タイル画像も「フレーム」と呼ぶ。なお元の画像フレームの画素数が所定値より小さい場合などは、画像フレーム全体を１枚のタイルとみなすことにより、タイル画像への分割を行わなくてもよい。
【００２８】
図３は本実施の形態において、動画データ圧縮機能を有する制御部１００ａおよびハードディスクドライブ５０の構成を詳細に示している。制御部１００ａは、圧縮対象の動画データからタイル画像列を生成し色空間をＲＧＢからＹＣｂＣｒへ変換するタイル画像列生成部１２０、変換後の各フレームを縮小し参照画像として圧縮する参照画像圧縮部１２２、参照画像に基づき各フレームの差分画像を生成する差分画像生成部１２４、差分画像を圧縮する差分画像圧縮部１２６、および、参照画像の圧縮データと差分画像の圧縮データを含む最終的な圧縮データを生成する圧縮データ生成部１２８を含む。
【００２９】
図３および後述する図２１において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部１００は１つのＰＰＵと複数のＳＰＵとを有し、ＰＰＵおよびＳＰＵがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３０】
ハードディスクドライブ５０は、圧縮対象の動画データを格納した動画データ記憶部１３０、参照画像圧縮部１２２および差分画像圧縮部１２６が量子化単位を形成するための分割パターンを記憶する分割パターン記憶部１３２、および圧縮データ生成部１２８が生成した圧縮データを格納する圧縮データ記憶部１３４を含む。
【００３１】
タイル画像列生成部１２０は、ユーザが指定した、圧縮対象の動画データに係る情報を入力装置２０から取得し、動画データ記憶部１３０から当該動画データを構成するフレームのデータを順次読み出す。そして各フレームを所定サイズに分割してタイル画像列を生成したうえ、画素値であるＲＧＢ値を輝度Ｙ、色差ＣｂおよびＣｒに変換することにより、ＹＣｂＣｒの値を画素値とするＹＣｂＣｒ画像を生成する。ＲＧＢからＹＣｂＣｒへの色空間の変換は既存の手法を適用することができる。
【００３２】
参照画像圧縮部１２２はタイル画像列生成部１２０が生成したタイル画像列を所定の割合で縮小したうえで圧縮する。具体的にはタイル画像列を空間方向、時間方向に所定のサイズに分割し、分割後の各データブロックを量子化する。量子化に際し、分割パターン記憶部１３２に格納された分割パターンのいずれかで各データブロックをさらに時空間分割することにより所定の画素数のデータからなる量子化単位を形成する。詳細は後に述べるが、画像の内容によって最適な分割パターンが異なるため、参照画像圧縮部１２２は、分割パターン記憶部１３２に格納された複数の分割パターンから最適なパターンを選択する。
【００３３】
そして量子化単位ごとに、２つの代表値を表すパレット、および、それら２つの代表値と、代表値を線形補間して得られる複数の中間値のうちいずれかを画素値として指定するインデックスを生成することにより量子化する。パレットおよびインデックスからなるデータは所定数の量子化単位ごとにまとめ１つの格納単位を形成する。
【００３４】
差分画像生成部１２４は、タイル画像列生成部１２０が生成したタイル画像列の各フレームと、参照画像圧縮部１２２が圧縮した参照画像のデータをデコードすることにより復元した対応するフレームとの差分を、対応する画素ごとに求めて、タイル画像列の差分画像を生成する。差分画像圧縮部１２６は、差分画像生成部１２４が生成したタイル画像列の差分画像を圧縮する。
【００３５】
圧縮処理のおよその流れは参照画像圧縮部１２２が行う上述の圧縮処理と同様であるが、参照画像は画素値の範囲が限定的であることから、その特性がデータサイズや描画処理の効率に利点として反映されるようにする。具体的には、絶対値が所定のしきい値以下の画素値のみから構成されるデータブロックは全ての画素値を０とみなす。また量子化時のパレットは階調数を下げることで４つの具体値を表すようにして、画像表示時に線形補間を行わないようにする。詳細は後に述べる。
【００３６】
圧縮データ生成部１２８は、参照画像圧縮部１２２が圧縮した参照画像のデータ、差分画像圧縮部１２６が圧縮した差分画像のデータを所定単位でまとめたうえ、画像表示時に参照できるよう各データへのポインタを付加して圧縮データを生成する。生成した圧縮データは圧縮データ記憶部１３４に格納する。
【００３７】
図４は、制御部１００ａを含む画像処理装置１０が実施する動画データの圧縮手順を模式的に示している。まず動画データ記憶部１３０から読み出した動画データのフレーム列を、タイル画像列生成部１２０がタイル画像列２５０に分割する。ここでタイル画像は２５６×２５６画素のサイズとし、以後の圧縮処理はタイル画像４フレームごとに行う。以後、この例に則り説明するが、タイル画像の画素数や処理単位のフレーム数、および後段でなされる処理の単位は様々に変化させることができる。
【００３８】
そしてタイル画像列生成部１２０は、タイル画像列２５０の色空間をＲＧＢからＹＣｂＣｒへ変換することにより、２５６×２５６画素のＹＣｂＣｒ画像列２５２を生成する（Ｓ１０）。次に参照画像圧縮部１２２は、ＹＣｂＣｒ画像列の各フレームを縦横１／２倍に縮小することにより、１２８×１２８画素のＹＣｂＣｒ画像列２５６を生成する（Ｓ１２）。さらに参照画像圧縮部１２２は、後に詳述するように圧縮処理を行い、量子化単位をまとめて格納単位を形成していくことにより参照画像の圧縮データ２６０を生成する（Ｓ１４）。
【００３９】
一方、差分画像生成部１２４は、参照画像の圧縮データ２６０を、画像表示時と同様にデコード、伸張することにより、２５６×２５６画素のＹＣｂＣｒ画像を参照画像として復元する。そしてタイル画像列生成部１２０が生成した２５６×２５６画素のＹＣｂＣｒ画像列２５２の対応するフレームとの差分をとることにより、２５６×２５６画素のＹＣｂＣｒの差分画像列２６２を生成する（Ｓ１６）。
【００４０】
次に差分画像圧縮部１２６は、後に詳述するように圧縮処理を行い量子化単位をまとめて格納単位を形成していくことにより、差分画像の圧縮データ２６６を生成する（Ｓ１８）。そして圧縮データ生成部１２８は、参照画像の圧縮データ２６０と差分画像の圧縮データ２６６を連結させた圧縮データ２６８を生成し圧縮データ記憶部１３４に格納する（Ｓ２０）。
【００４１】
圧縮データ２６８には、画像表示時に元の動画のフレームにおけるデータブロックの位置と圧縮データとの対応がとれるよう、ポインタ情報をヘッダ２６９として含める。同図の処理を、その他の全タイル画像列の４フレーム分に対し繰り返す。さらにその処理を、以後の４フレームごとに繰り返すことにより、動画データ全体が圧縮される。
【００４２】
次に参照画像の圧縮データ生成処理について図５から図１５を参照して説明する。図５は図４のＳ１４において参照画像圧縮部１２２が参照画像の圧縮データ２６０を生成する処理手順を示すフローチャートである。まず図４のＳ１２において縮小した４フレーム分のＹＣｂＣｒ画像列２５６を空間方向で所定サイズに分割して処理単位のデータブロックとする（Ｓ３０）。ここで空間方向とは画像の平面に対応する。それに対して時間方向とはフレームの枚数に対応する。
【００４３】
次にデータブロックごとに空間方向、時間方向の冗長性の有無を確認し、冗長性があると判定された場合はその方向に対しデータを圧縮する（Ｓ３２）。すなわち空間方向に冗長性があれば画像を縮小し、時間方向に冗長性があれば連続する複数の画像を平均化してフレーム数を減らす。次に、分割パターン記憶部１３２に格納された分割パターンのうちいずれかのパターンで時空間分割して同じ画素数からなる量子化単位を形成したうえ、それぞれのデータを量子化する（Ｓ３４）。
【００４４】
このときＹＣｂＣｒ画像を、輝度Ｙを画素値とするＹ画像および色差（Ｃｂ，Ｃｒ）を要素とするベクトル値を画素値とするＣｂＣｒ画像に分解し、ＣｂＣｒ画像は所定の倍率で縮小しておく。そしてＹ画像、ＣｂＣｒ画像で同様に量子化単位を形成し個別に量子化する。量子化は上述のとおり、量子化単位に含まれる画素値をパレットとインデックスで表す処理である。
【００４５】
結果としてデータブロックごとに、Ｙ画像のパレットとインデックスを含む量子化単位のデータと、それに対応するＣｂＣｒ画像のパレットとインデックスを含む量子化単位のデータがそれぞれ１つ以上、生成されることになる。ここで１つのデータブロックを構成する量子化単位はＳ３２における圧縮量によってその数が異なる。そのように生成されたデータを所定数の量子化単位ごとにまとめて格納単位を形成していくことにより、元のタイル画像４フレーム分の参照画像の圧縮データを生成する（Ｓ３６）。
【００４６】
図６は図５のＳ３０で空間分割したタイル画像列をＳ３２で冗長性判定により圧縮する手順を模式的に示している。同図の例では、Ｓ３０においてＹＣｂＣｒ画像列を８×８画素に分割してデータブロックを形成している。すなわち１２８×１２８画素の４フレーム分のＹＣｂＣｒ画像を縦横それぞれの方向に１６分割している。図中、各データブロックの下には「横の画素数×縦の画素数×フレーム数」の形式でデータサイズが示されている。以後の図も同様である。
【００４７】
そのようにして形成したデータブロック２７２ごとに冗長性を判定する。同図ではまず、空間方向の冗長性判定を行う（Ｓ３２ａ）。具体的には画像を所定方向に所定倍率で縮小し、それを元のサイズに戻した画像と、縮小前の画像とをフレームごとに比較し、画素値の差の合計がしきい値以下であれば空間方向に冗長性があると判定する。そしてしきい値以下となった縮小倍率のうち、より縮小量の大きい倍率へ縮小することにより圧縮する。同図の例では、縮小倍率の候補として縦方向に１／２倍、横方向に１／２倍、縦横双方向に１／２倍が設定されている。
【００４８】
したがって図に示すように、Ｓ３２ａの判定によって、元の画像に冗長性がなく８×８画素の画像のままとなる場合のほか、８×４画素、４×８画素、４×４画素に縮小される場合が発生する。判定は４フレームごとのグループで行うため、１フレームごとに画素値の差の合計をしきい値と比較し４フレーム全てについてしきい値以下であることを条件に縮小可能としてもよいし、４フレーム分の画素値の差の合計に対してしきい値判定を行ってもよい。
【００４９】
次に上記４つのいずれかの状態となった画像について時間方向の冗長性判定を行う（Ｓ３２ｂ）。具体的には連続する所定数のフレームを平均化した画像を生成し、それを元のフレームの画像とそれぞれ比較して、画素値の差の合計がしきい値以下であれば時間方向に冗長性があると判定する。この場合、複数のフレームをまとめて１枚の平均画像で表せると判断されたことになるため、しきい値以下となった平均画像のうち最も多くのフレームをまとめることのできる平均画像で当該フレームを代替することにより圧縮する。図６の例では、２フレームごとに平均化して２枚の平均画像とする場合と、４フレームごとに平均化して１枚の平均画像とする場合が設定されている。
【００５０】
ただし後述する１つの格納単位に満たなくなるまでの圧縮は必要ないため、同図の例では８×８画素の画像についてのみ、４フレーム分を平均画像１枚で表す場合を設定している。また４×４画素の画像については時間方向には圧縮しない。結果として同図に示すように、Ｓ３２ｂの判定によって、時間方向に圧縮しない場合も含め、８×８画素×４フレーム、８×８画素×２フレーム、８×８画素×１フレーム、８×４画素×４フレーム、８×４画素×２フレーム、４×８画素×４フレーム、４×８画素×２フレーム、および４×４画素×４フレーム、の８種類データ構造となる場合が発生する。
【００５１】
判定は空間方向の冗長性と同様、元の画像の１フレームごとに画素値の差の合計をしきい値と比較し、４フレーム全てについてしきい値以下であることを条件に圧縮可能としてもよいし、４フレーム分の画素値の差の合計に対してしきい値判定を行ってもよい。なお縮小倍率やフレームの削減枚数の選択肢は同図に示したものに限定されず、例えば元のデータブロックのサイズや格納単位のデータサイズなどに応じて適宜決定する。また空間方向の冗長性判定と時間方向の冗長性判定の順序についても、同図と逆でもよいし、縮小とフレーム数削減を様々な組み合わせで一度に行うことにより判定を同時にしてもよい。またどちらか一方のみを行ってもよい。
【００５２】
図７は図５のＳ３４において、上記のような圧縮判定を行ったあとのデータブロックをさらに分割して量子化単位を形成し画素値を量子化する様子を模式的に示している。量子化単位はデータブロックを空間方向、時間方向、あるいは空間方向時間方向の双方に分割してなる所定数の画素の集合である。そして量子化単位ごとに、２つの代表値を表す１対のパレットと、当該パレットのいずれかおよびその中間値を示す識別情報を画素に対応づけたインデックスとを生成する。パレットおよびインデックスは、基本的にはＳ３ＴＣのテクスチャ圧縮方式においてＲＧＢ画像から生成されるパレットおよびインデックスと同様である。一方、本実施の形態では、パラメータの次元数が一般的なＳ３ＴＣと異なる。
【００５３】
なお上述のとおり量子化する前には、ＹＣｂＣｒ画像をＹ画像とＣｂＣｒ画像に分けたうえ、ＣｂＣｒ画像を縮小しておく。以後の例ではＣｂＣｒ画像は縦横双方向に１／２倍に縮小されているものとする。同図の左側において１つの矩形が、Ｙ画像の量子化単位２８０、ＣｂＣｒ画像の量子化単位２８２をそれぞれ表している。以後の説明では量子化単位を１６個の画素とする。したがって同図では量子化単位を４×４画素の画像として象徴的に表しているが、分割パターンによっては異なるフレームの画素が混在する。
【００５４】
そして量子化によって、Ｙ画像の量子化単位２８０からパレット２８４およびインデックス２８６が、ＣｂＣｒ画像の量子化単位２８２からパレット２８８およびインデックス２９０が生成される。ＣｂＣｒ画像はＹ画像の１／４のサイズであるため、Ｙ画像の量子化単位４つ分が、ＣｂＣｒ画像の量子化単位が１つ分と対応する。したがって同図に示すように、これらの対応する量子化単位から生成したパレットおよびインデックスのデータをまとめて１つの格納単位２９２とすることにより、表示時には１つの格納単位のデータによって、対応する領域の画素値を復元することができる。
【００５５】
図８はＹ画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。上述のとおり１つの量子化単位は１６個の画素を含む。同図において画素は円形で模式的に示されている。各画素が画素値として保持する輝度Ｙの値をその軸上に表すと分布３００のようになる。分布３００でプロットされた１６個の画素値のうち、２つの代表値を選択する。例えば最小値（ｍｉｎ）および最大値（ｍａｘ）を代表値として選択し、当該２値を保持するデータをパレットとする。
【００５６】
さらに輝度Ｙの軸上、最小値と最大値の間の線分を１：２で内分する輝度Ｙの値を第１中間値（ｍｉｄ１）、２：１で内分する輝度Ｙの値を第２中間値（ｍｉｄ２）としたとき、最小値、第１中間値、第２中間値、最大値の４値のいずれかを指定する情報を画素ごとに保持するデータをインデックスとする。結果としてＹ画像の量子化単位に対して、パレットは輝度Ｙを表す８ビット×２値＝２バイト、インデックスは４値の識別番号を０〜３で表す情報２ビット×１６画素＝４バイトのデータとなる。
【００５７】
図９はＣｂＣｒ画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。Ｙ画像同様、１つの量子化単位は１６個の画素を含む。ただし各画素が保持する値は（Ｃｂ，Ｃｒ）を要素とする２次元のベクトル値である。当該画素値を、色差Ｃｂ、Ｃｒの軸を有する２次元平面上に表すと分布３０２のようになる。
【００５８】
この分布３０２にプロットされた１６個の画素値のうち、２つの代表値を選択する。例えば分布３０２を直線で近似したときに、直線の左端、右端にある色差をそれぞれ最小値（ｍｉｎ）および最大値（ｍａｘ）として代表値とする。そして当該２値を保持するデータをパレットとする。このとき各代表値は、（Ｃｂ，Ｃｒ）を要素とするベクトル値である。
【００５９】
また近似直線上で最小値と最大値との間の線分を１：２で内分する色差を第１中間値（ｍｉｄ１）、２：１で内分する色差を第２中間値（ｍｉｄ２）としたとき、最小値、第１中間値、第２中間値、最大値の４値のいずれかを指定する情報を画素ごとに保持するデータをインデックスとする。結果としてＣｂＣｒ画像の量子化単位に対して、パレットは色差ＣｂおよびＣｒの２要素×各色差を表す８ビット×２値＝４バイト、インデックスは４値の識別番号を０〜３で表す情報２ビット×１６画素＝４バイトのデータとなる。
【００６０】
このように圧縮すると、図７で示した格納単位２９２は、Ｙ画像のパレット２バイト×４量子化単位＝８バイト、Ｙ画像のインデックス４バイト×４量子化単位＝１６バイト、ＣｂＣｒ画像のパレット４バイト、ＣｂＣｒ画像のインデックス４バイトであるから、合計３２バイトのデータとなる。１つの格納単位２９２は１６画素×４量子化単位＝６４画素分のデータを保持することから、量子化後のデータは１画素あたり０．５バイトとなる。
【００６１】
上記のとおり本実施の形態では、元のＲＧＢ画像を１次元のパラメータを保持するＹ画像、および２次元のパラメータを保持するＣｂＣｒ画像に分解したうえでパレットおよびインデックスを生成する。そのため、１次元のＹ画像の場合は全てのサンプル値が直線上に分布し、２次元のＣｂＣｒ画像も、近似直線からはずれるサンプルは当該近似直線の法線方向のみとなる。したがって、３次元のパラメータを保持するＲＧＢ画像を直線で近似して量子化する一般的なＳ３ＴＣの手法と比較し、量子化誤差を小さく抑えることができる。
【００６２】
図１０は１６画素からなる量子化単位を形成するために、分割パターン記憶部１３２に格納する分割パターンのバリエーションを示している。同図左端からパターン（Ａ）、パターン（Ｂ）、パターン（Ｃ）、パターン（Ｄ）とし、上段のＹ画像および下段のＣｂＣｒ画像のいずれも、空間分割の区切りを直線で示し、１つの量子化単位を網掛けして代表的に表している。なお同図ではＹ画像およびＣｂＣｒ画像とも、冗長性による圧縮を行っていないデータブロック、すなわち８×８画素×４フレームのＹ画像および４×４画素×４フレームのＣｂＣｒ画像を分割する模様を示している。
【００６３】
パターン（Ａ）は４×４画素×１フレームごとに分割するパターンである。パターン（Ｂ）は４×２画素×２フレームごとに分割するパターンである。パターン（Ｃ）は２×４画素×２フレームごとに分割するパターンである。パターン（Ｄ）は２×２画素×４フレームごとに分割するパターンである。パターン（Ｄ）からパターン（Ａ）へ向かうほど、詳細な時間分割を行い、パターン（Ａ）からパターン（Ｄ）へ向かうほど詳細な空間分割を行う。このような分割パターンを準備し、空間方向で冗長性を有するか、時間方向で冗長性を有するか、という画像の特性に応じて分割パターンを選択する。
【００６４】
具体的には、空や芝など単色に近い領域が多く含まれるなど、画像が空間冗長性を有する場合、その画素値は空間に対してより一様となりやすい。そのため空間分割数を少なくしても量子化による誤差が含まれにくいため、パターン（Ａ）に近い分割パターンを選択する。一方、動きの少ない景色を定点観測した場合など、画像が時間冗長性を有する場合、その画素値は時間方向で一様となりやすい。そのため時間分割数を少なくしても量子化による誤差が含まれにくいため、パターン（Ｄ）に近い分割パターンを選択する。
【００６５】
分割前のデータブロックのデータ構造は実際には図６に示す８種類のいずれかとなっているため、そのデータ構造によってとり得る分割パターンが異なる。図１１は冗長性による圧縮を行わなかった場合の８×８画素×４フレームのデータブロックから量子化単位を生成する際の分割パターンを示している。
【００６６】
この場合、８×８画素×４フレームのＹ画像および４×４画素×４フレームのＣｂＣｒ画像が生成されるため、図１０で示したように、パターン（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）の全ての分割パターンから選択することが可能である。これらのいずれの分割パターンにおいても、１つのデータブロックあたり４つの格納単位が形成される（例えば格納単位３０４ａ、３０４ｂ、３０４ｃ、３０４ｄ）。この場合の各分割パターンに対し、識別番号を「０」、「１」、「２」、「３」と付与する。
【００６７】
図１２は冗長性を利用した圧縮を行った結果、データブロックが８×４画素×４フレームとなった場合、４×８画素×４フレームとなった場合、８×８画素×２フレームとなった場合に量子化単位を生成する際の分割パターンを示している。まずデータブロックが８×４画素×４フレームの場合、８×４画素×４フレームのＹ画像および４×２画素×４フレームのＣｂＣｒ画像が生成されるため、パターン（Ｂ）、（Ｄ）の分割パターンのいずれかを選択する。データブロックが４×８画素×４フレームの場合、４×８画素×４フレームのＹ画像および２×４画素×４フレームのＣｂＣｒ画像が生成されるため、パターン（Ｃ）、（Ｄ）の分割パターンのいずれかを選択する。
【００６８】
データブロックが８×８画素×２フレームの場合、８×８画素×２フレームのＹ画像および４×４画素×２フレームのＣｂＣｒ画像が生成されるため、パターン（Ａ）、（Ｂ）、（Ｃ）の分割パターンのいずれかを選択する。同図のいずれの分割パターンにおいても、１つのデータブロックあたり２つの格納単位が形成される（例えば格納単位３０６ａ、３０６ｂ）。この場合の各分割パターンに対し、識別番号を「４」、「５」、「６」、「７」、「８」、「９」、「１０」と付与する。
【００６９】
図１３は冗長性を利用した圧縮を行った結果、データブロックが４×４画素×４フレームとなった場合、４×８画素×２フレームとなった場合、８×４画素×２フレームとなった場合、８×８画素×１フレームとなった場合に量子化単位を生成する際の分割パターンを示している。まずデータブロックが４×４画素×４フレームの場合、４×４画素×４フレームのＹ画像および２×２画素×４フレームのＣｂＣｒ画像が生成されるため、選択肢はパターン（Ｄ）のみとなる。データブロックが４×８画素×２フレームの場合、４×８画素×２フレームのＹ画像および２×４画素×２フレームのＣｂＣｒ画像が生成されるため、選択肢はパターン（Ｃ）のみとなる。
【００７０】
データブロックが８×４画素×２フレームの場合、８×４画素×２フレームのＹ画像および４×２画素×２フレームのＣｂＣｒ画像が生成されるため、選択肢はパターン（Ｂ）のみとなる。データブロックが８×８画素×１フレームの場合、８×８画素×１フレームのＹ画像および４×４画素×１フレームのＣｂＣｒ画像が生成されるため、選択肢はパターン（Ａ）のみとなる。同図のいずれの分割パターンにおいても、１つのデータブロックあたり１つの格納単位が形成される（例えば格納単位３０８）。この場合の各分割パターンに対し、識別番号を「１１」、「１２」、「１３」、「１４」と付与する。
【００７１】
上記のように識別番号を付与すると、当該識別番号には冗長性を利用した圧縮のパターンと、量子化単位を形成するための分割パターンが情報として含まれることになる。分割パターン記憶部１３２には、パターン（Ａ）〜（Ｄ）の４種類の分割パターンと、それらを識別する情報を対応づけて格納しておく。参照画像圧縮部１２２は圧縮のパターンと選択した分割パターンの組み合わせに基づき各データブロックに対応する識別番号を決定する。当該識別番号を圧縮データに含め、画像表示時に表示領域の画素値のデータを特定するために参照する。
【００７２】
量子化単位の分割パターンに複数の選択肢がある場合、データブロックごとにそれらの分割パターンを全て実施して量子化し、それを復号した際、元の画像との誤差が最も少ない分割パターンを選択する。あるいは同様の内容を有するテスト画像によって分割パターンを領域ごとにあらかじめ決定しておいてもよい。
【００７３】
次に参照画像圧縮部１２２が生成する参照画像の圧縮データのデータ構造について説明する。本実施の形態において生成される圧縮データは、Ｓ３ＴＣのテクスチャ圧縮方式と同様に、パレットおよびインデックスによって構成される。そのためデコード処理は、一般的なＧＰＵのシェーディング機能をそのまま利用することができる。
【００７４】
そのため、Ｙ画像のデータを量子化して生成されたインデックスおよびパレットと、ＣｂＣｒ画像のデータを量子化して生成されたインデックスおよびパレットが、通常のテクスチャ画像と同様に読み出されデコードできるようにすることが望ましい。そこで圧縮データを格納する際は、上述のとおり同じ領域を表すＹ画像の量子化データとＣｂＣｒ画像の量子化データを１つの格納単位とすることにより、少ないデータアクセスで画素を復元できるようにする。
【００７５】
図１４は参照画像の圧縮データのデータ構造を模式的に示している。同図左側が１つの格納単位３１４を表しており、その中には同図右側に示すように、Ｙ画像の圧縮データ３１０と、同じ領域を表すＣｂＣｒ画像の圧縮データ３１２が格納される。Ｙ画像の圧縮データ３１０のうち「Ｉ」と表記された直方体はそれぞれ１量子化単位のインデックス、「Ｐ」と表記された直方体はそれぞれ１量子化単位のパレットである。ＣｂＣｒ画像の圧縮データ３１２も同様である。上述のとおり、Ｙ画像のインデックスおよびパレットは、１量子化単位あたりそれぞれ４バイト、２バイトのデータである。ＣｂＣｒ画像のインデックスおよびパレットはどちらも、１符号化単位あたり４バイトのデータである。
【００７６】
そこで同図に示すように、同じ領域を表す、Ｙ画像の４量子化単位とＣｂＣｒ画像の１量子化単位のデータを、深さ４バイトの記憶領域に配列してまとめる。ここでＹ画像の圧縮データ３１０のうち、パレットはそれぞれ２バイトのデータであるため、図のように深さ方向に２つ配置する。結果として１つの格納単位３１４は、４個×２個×４バイトのデータとなる。
【００７７】
このように圧縮データをまとめると、４×２画素分のＲＧＢＡ画像のデータを格納する記憶領域に１つの格納単位３１４をそのまま格納することができる。８×８画素×４フレームのデータブロックから最大４つの格納単位が形成されるため、結果として１つのデータブロックのデータサイズは最大で、４×２画素×４＝３２画素のＲＧＢＡ画像のデータサイズと等しくなる。冗長性を利用して圧縮した場合は、さらに１／２または１／４のデータ量となる。
【００７８】
ここで上述の、圧縮パターンおよび分割パターンを表す識別番号を圧縮データに含める手法について説明する。識別番号は上記のとおり「０」〜「１４」の１５種類のため、４ビットの情報となる。一方、図１４に示すように、１つの格納単位にはＹ画像のパレットが４つ格納されている。各パレットには輝度Ｙの代表値である２値が格納されている。そこで、４つのパレットそれぞれが保持する２値の格納順とその大小関係によって識別情報の４ビットの情報を表す。
【００７９】
図１５はパレットによって識別番号を表す手法を説明するための図である。同図のように４つのＹ画像のパレットの１つであるパレット３１５を例にとると、図の手前の先頭アドレスから順に２つの代表値「Ｐ０」、「Ｐ１」を格納する。このとき値「Ｐ０」と「Ｐ１」の大小関係によって１ビットの情報を表す。例えばＰ０＞Ｐ１であれば１、それ以外であれば０といった規則をあらかじめ設定しておく。
【００８０】
１つの格納単位にはＹ画像の４つのパレットが含まれるため、それを全て利用し、ビット列に対応するパレットの順序を決めておくことにより、４ビットの情報を表すことができる。パレットが保持する２値は、どちらが先のアドレスに格納されていても値の大小により最小値か最大値かは明かなためデコード処理には影響しない。そこで参照画像圧縮部１２２は、各データブロックの圧縮パターンおよび分割パターンから１つの識別番号を決定したら、各パレットにおいて大きい方の値をどちらのアドレスに格納するかを当該識別番号に応じて決定する。
【００８１】
なお１つのデータブロックが複数の格納単位を形成するときは全ての格納単位が同じ識別情報を表すようにする。このようにすることで、圧縮パターンや分割パターンの情報を圧縮データの本体と別に生成する必要がなくなり、全体としてデータサイズを抑えることができる。また対応する領域の圧縮データごとに埋め込むため参照する際の効率がよい。
【００８２】
次に差分画像の圧縮データ生成処理について図１６から図１９を参照して説明する。図１６は図４のＳ１６において差分画像生成部１２４が差分画像を生成する手順を模式的に示している。図１６において図４と同じデータについては同じ符号で表している。まずタイル画像列生成部１２０が生成した２５６×２５６画素のＹＣｂＣｒ画像列２５２と、それを用いて参照画像圧縮部１２２が生成した参照画像の圧縮データ２６０を入力データとする。
【００８３】
差分画像生成部１２４は、まず参照画像の圧縮データ２６０を復号する（Ｓ４０）。具体的には同じタイル画像列に含まれるデータブロックを構成する格納単位のデータを全て読み出し、パレットとインデックスからＹ画像とＣｂＣｒ画像を復元する。このとき画素の配列はＹ画像のパレットで表される識別番号を取得することによって特定できる。
【００８４】
つまり識別番号によって、冗長性を利用した圧縮のパターンと量子化単位を形成したときの分割パターンがデータブロックごとに判明するため、それに基づき、まず分割処理の逆の処理によって量子化単位に含まれる画素を連結する。そしてＣｂＣｒ画像を縦横２倍に拡大してＹ画像と合成することによりＹＣｂＣｒ画像を生成する。次に図６で示した圧縮処理の逆の処理によってフレーム数を増加させたり画像を拡大したりする。そのようにして復元したデータブロックをさらに連結することにより、１２８×１２８画素×４フレームのＹＣｂＣｒ画像列４００を生成する。
【００８５】
続いて１２８×１２８画素×４フレームのＹＣｂＣｒ画像列４００を縦横２倍に拡大して２５６×２５６画素×４フレームのＹｃｂＣｒのタイル画像列４０２を生成する（Ｓ４２）。そしてタイル画像列生成部１２０が生成した元のタイル画像のＹＣｂＣｒ画像列２５２と各画素値の差をとることにより差分画像列２６２を生成する（Ｓ４４）。
【００８６】
Ｓ４０、Ｓ４２は基本的には図４、図５で示した参照画像の圧縮処理の手順と逆の処理であるが、当該圧縮処理は、画像縮小、平均化によるフレーム数削減、量子化、を行う不可逆圧縮であるため、復元したタイル画像列４０２には誤差が含まれる可能性がある。この誤差を差分画像として表すことにより圧縮率と画質を両立させる。
【００８７】
差分画像はこのように、画像表示時に参照画像の圧縮データを復号、伸張した際、圧縮によって生じる誤差を補完するためのものである。したがってＳ４０、Ｓ４２において差分画像生成部１２４が参照画像の圧縮データ２６０を復号、伸張する処理は、画像表示時と同じにする必要がある。一方、本実施の形態では、圧縮データ２６０を量子化単位でまとめることにより、量子化単位でのデータアクセスを可能にし、ひいては無駄なデータロードやデコードを行わずに空間方向、時間方向のランダムアクセスを実現する。
【００８８】
したがって画像表示時に、ある量子化単位を復号、伸張するために、別の量子化単位を参照する必要が発生するのは好ましくない。そこで、Ｓ４０において量子化単位のデータを接続したあとＣｂＣｒ画像を縦横２倍に拡大する処理、圧縮パターンに従い画像を拡大してデータブロックを元のサイズに戻す処理、および、Ｓ４２においてデータブロックを連結してなるＹＣｂＣｒ画像列４００を縦横２倍に拡大する処理において、画素間に新たな画素を生成する際は、量子化単位の分割パターンによらず当該量子化単位内で拡大処理が完結するようにする。
【００８９】
具体的には、拡大対象の画像を２×２画素に分割し、それらの間の画素の画素値は内挿によって算出し、その外側の画素値は外挿によって算出する。図１７はこのように画像を拡大する処理を模式的に示している。図１７の左は拡大前の画像を２×２画素に分割してなる領域４０４の各画素を白丸で示している。この画素を用いて４×４画素で構成される拡大領域４０６を生成する場合、元から画素値を有する白丸の間の画素（網掛けした丸）の画素値は白丸の画素の画素値を内挿して得る。
【００９０】
元から画素値を有する白丸の外側の画素（黒丸）の画素値は、白丸の画素やその内挿値などを利用して外挿することによって得る。量子化単位はどの分割パターンであっても、２×２画素の領域を含むため、このように拡大処理を行うことにより、分割パターンによらず量子化単位内で拡大処理が完結することになる。したがって上述のように差分画像生成部１２４がＣｂＣｒ画像を拡大する際やＹＣｂＣｒ画像を拡大する際にも、このように拡大処理を行う。なお外挿値には画素値の階調によって下限値および上限値を設定しておき、画素値が階調の範囲を超えないように調整する。参照画像のデコード処理の詳細は、画像表示を行う装置におけるデコード処理と同様なため、後に説明する。
【００９１】
差分画像圧縮部１２６は、このようにして生成した差分画像を圧縮する（図４のＳ１８）。この処理は基本的には図５で示した参照画像の圧縮処理と同様である。以後、参照画像と異なる点に着目して説明する。まず図５のＳ３０と同様、差分画像列２６２を空間方向で参照画像と同じサイズに分割して処理単位のデータブロックとする。ここでは図６で示したように８×８画素×４フレームを１つのデータブロックとする。ただし参照画像と異なり差分画像は２５６×２５６画素の画像のままであるため、縦横それぞれの方向に３２分割されることになる。
【００９２】
さらに差分画像については、画素値が０とみなされるか否かの判定をデータブロックごとに行い、該当するデータブロックはＮＵＬＬブロックとする。例えばデータブロックを構成する全画素値に対し、その絶対値と、あらかじめ定めたしきい値との比較を行い、全ての画素値の絶対値がしきい値以下である場合、当該データブロックをＮＵＬＬブロックとする。
【００９３】
ＮＵＬＬブロックとされたデータブロックは、画像表示時のデコードにおいて全ての画素値が０とされるようにする。例えば全ての画素値を０とする１つの格納単位を生成しておき、最終的な圧縮データを生成する際、ＮＵＬＬブロックとされた全てのデータブロックと当該格納単位とを対応づけておく。ＮＵＬＬブロックであっても他のデータブロックと同様に処理できるようにしておくと、画像表示時のデコード処理が単純化され処理効率がよい。
【００９４】
差分画像は上述のとおり、参照画像を圧縮することによって生じる誤差を表した画像であるため、画素値が０に近くなる可能性が高い。例えば青空や芝生など画像周波数の低い領域ではこのような誤差が生じにくい。このような画像の性質を上記処理によって見出し、差分画像の画素値を０として扱うことにより、画像表示時の処理効率を向上させるとともに、データの圧縮率を上げることができる。
【００９５】
次に差分画像圧縮部１２６は、図５のＳ３２と同様、データブロックごとに空間方向、時間方向の冗長性の有無を確認し、冗長性があると判定された場合はその方向に対しデータを圧縮する。この処理は参照画像と同様でよい。続いて差分画像圧縮部１２６は、図５のＳ３４と同様、ＹＣｂＣｒ画像をＹ画像、ＣｂＣｒ画像に分解し、ＣｂＣｒ画像を縮小したうえ、分割パターンのいずれかで時空間分割して同じ画素数からなる量子化単位を形成し、それぞれのデータを量子化する。
【００９６】
このときの分割処理は参照画像と同様でよい。一方、差分画像は上述のとおり、画素値の範囲が参照画像より限定的となる性質を有するため、それを利用してパレットが保持する情報を異ならせる。具体的には、パレットが保持する値の階調を減らす代わりに、代表値を２値ではなく４値保持するようにする。すなわち参照画像のパレットが１要素につき８ビット×２値＝２バイトであったのに対し、差分画像のパレットは、同じ２バイトを利用して４ビット×４値を表す。インデックスは、当該４値のいずれかを指定する情報を画素ごとに保持する。このようにすることで、画像表示時のデコードにおいて、第１中間値、第２中間値を求めるための線形補間を行わずにすみ、処理効率が向上する。また、第１中間値、第２中間値の選択肢が、最大値と最小値の２：１と１：２の補間値に限定されなくなる。よって、より柔軟な第１中間値、第２中間値の選択が可能になり、画質の向上が期待できる。
【００９７】
パレットが保持する４値は、図８および図９で示したＹ画像、ＣｂＣｒ画像の最小値、最大値、第１中間値、第２中間値に基づき決定する。具体的には、これらの４値を１要素につき４ビットのデータサイズで表すことができるようであればパレットにはその４値をそのまま格納する。一方、４値を表すのに必要な階調が４ビットに収まらない場合は、全ての値を１／２倍、１／４倍、１／８倍としていき４ビットに収まる倍率を決定し、当該倍率をかけたうえでパレットに格納する。なおＣｂＣｒ画像のパレットは（Ｃｂ，Ｃｒ）の２要素からなるベクトル値のため４値がそれぞれ８ビットで表される。
【００９８】
画像表示時には、４ビットの値を８ビットに変換して用いる。このときパレットの値から最小値、最大値、第１中間値、第２中間値を復元するため、かけるべき倍率をパレットごとに示す必要がある。上述のように、１倍、１／２倍、１／４倍、１／８倍した値のいずれかをパレットに格納する場合、復元するための倍率として１倍、２倍、４倍、８倍、の４種類の選択肢が生じる。そこで当該４種類を識別する「０」〜「３」の識別番号を表す２ビットの情報を圧縮データに埋め込む。図１８は倍率の識別番号をパレットによって表す手法を説明するための図である。
【００９９】
図中、１つのパレット４０８には図の手前の先頭アドレスから順に、Ｙ画像は４ビット、ＣｂＣｒ画像は２要素の合計８ビットの４つの値「Ｐ０」、「Ｐ１」、「Ｐ２」、「Ｐ３」を格納する。このとき前半の２つの値「Ｐ０」と「Ｐ１」の大小関係によって１ビット、後半の２つの値「Ｐ２」と「Ｐ３」の大小関係によって１ビットの合計２ビットで、識別番号を表す。例えばＰ０＞Ｐ１であれば１、それ以外であれば０、Ｐ２＞Ｐ３であれば１、それ以外であれば０、といった規則をあらかじめ設定しておく。
【０１００】
なおＣｂＣｒ画像の場合は、ベクトル値（Ｃｂ，Ｃｒ）の要素である、Ｃｂに対する４ビットの値とＣｒに対する４ビットの値をビット列でつなげた８ビットの情報を「Ｐ０」、「Ｐ１」、「Ｐ２」、「Ｐ３」とする。したがって（Ｃｂ，Ｃｒ）の対によって８ビットの値を取得できれば、各値が連続した８ビットの領域に格納されていなくてもよい。ＣｂＣｒ画像はベクトル値によって４値を表すため、合計８ビットの情報で比較することによりどちらか一方の要素が同じ値であっても８ビットの値が等しくなることはない。
【０１０１】
上記の合計２ビットの情報により「０」〜「３」の識別番号をパレットごとに表すことができる。パレットが保持する４値は、格納順によらず値の大きさにより最小値、最大値、第１中間値、第２中間値が判別できるためデコード処理には影響しない。画像表示時のデコードにおいては、まずこの識別番号を特定し（Ｓ５０）、４値Ｐ０、Ｐ１、Ｐ２、Ｐ３を４ビットから８ビットに変換する際に、その識別情報が表す倍率を乗算してＰ０’、Ｐ１’、Ｐ２’、Ｐ３’を求めることによって最小値、最大値、第１中間値、第２中間値を復元する（Ｓ５２）。
【０１０２】
このように差分画像のＹ画像のパレットには、それぞれ４ビットの４値が格納されている。参照画像のパレットでは８ビットの２値の格納順とその大小関係によって、圧縮パターンおよび分割パターンを表す「０」〜「１４」の１５種類の識別番号を表した。図１９は差分画像のＹ画像のパレットによってさらに当該１５種類の識別番号を表す手法を説明するための図である。図１８で説明したように、１つのパレット４０８には４つの値「Ｐ０」、「Ｐ１」、「Ｐ２」、「Ｐ３」を格納する。ここで「Ｐ０」と「Ｐ１」のビット列をつなげた８ビットの値（図中、「Ｐ０１」と表記）と、「Ｐ１」と「Ｐ２」のビット列をつなげた８ビットの値（図中、「Ｐ２３」と表記）の大小関係によって１ビットの情報を表す。
【０１０３】
例えばＰ０１＞Ｐ２３であれば１、それ以外であれば０といった規則をあらかじめ設定しておく。この処理は、結果的にはパレットの上位アドレス８ビットの値と下位アドレス８ビットの大小関係を比較している、という点で、参照画像の場合と同じ処理となっている。したがって参照画像の場合と同様、４つのパレットで、圧縮パターンおよび分割パターンを表す識別番号を表すことができる。差分画像圧縮部１２６はパレットの値を元の値に復元するための倍率を表す識別番号と、圧縮パターンおよび分割パターンを表す識別番号の双方を表すように、Ｙ画像のパレットに格納する４値の格納順を決定する。
【０１０４】
次に圧縮データ生成部１２８が最終的な圧縮データを生成する処理について説明する。図２０は図４のＳ２０において、参照画像の圧縮データ２６０と差分画像の圧縮データ２６６を含む最終的な圧縮データ２６８を生成する処理手順を模式的に示している。上述のとおり参照画像と差分画像の圧縮データは、それぞれデータブロックの単位で形成される。
【０１０５】
すなわちこれまで述べた例の場合、元の動画像のフレーム列を２５６×２５６画素に分割してなるタイル画像列４フレームに対し、参照画像のデータブロック配列４１０、差分画像のデータブロック配列４１１が生成される。参照画像のデータブロック配列４１０は１６×１６個のデータブロックの圧縮データ、差分画像のデータブロック配列４１１は３２×３２個のデータブロックの圧縮データからなる。各データブロックの圧縮データのサイズは可変長であり格納単位１、２、４個分のいずれかとなる。なお差分画像はその値によってデータブロックをＮＵＬＬブロックとする。
【０１０６】
各格納単位は上記のとおり４×２画素のＲＧＢＡ画像のデータと同じデータサイズとなる。圧縮データ生成部１２８は、データブロック配列における所定の順序で各データブロックの格納単位の圧縮データを、格納単位ごとに所定方向に連結する。そしてデータブロックの配列上の位置と、各格納単位の格納場所とを対応づけるポインタ情報を付加する。図２０の圧縮データ４１２の例では、参照画像データに対するポインタ情報４１４、差分画像データに対するポインタ情報４１６、参照画像の圧縮データ４１８、差分画像のＮＵＬＬブロック用の圧縮データ４２０、差分画像の圧縮データ４２２の順でラスタ方向に並べている。
【０１０７】
参照画像データに対するポインタ情報４１４、差分画像データに対するポインタ情報４１６も格納単位と同様に４バイト分のデータを縦に２つならべながら横に伸張していく。このときのポインタ情報の格納順を、対応するデータブロックの配列上の順序と同じにすることにより、結果としてデータブロックの配列上の位置と、各格納単位の格納場所とをポインタによって対応づけていることになる。
【０１０８】
このように圧縮データを生成していくと、幅が２画素の帯状の行を縦方向につなげた画像平面を生成していることになる。そのため圧縮データ４１２を画像平面と捉え、ポインタ情報を、各データブロックに対応する格納単位の領域の左上の座標で表す。例えば当該座標をＵＶ座標で表しＵ座標、Ｖ座標をそれぞれ１バイトで表すとすると、１つの格納単位へのポインタは合計２バイトの情報となる。結果として圧縮データ４１２を画像平面としたときの１画素分で、２つのデータブロックのポインタを表すことができる。
【０１０９】
元の動画像が８０００×４０００画素程度の高精細画像であっても、圧縮データ４１２自体を２５６×２５６画素以下に抑えることにより、ポインタ情報は上記のとおりＵ座標、Ｖ座標各１バイトで表すことができる。この場合、参照画像データに対するポインタ情報４１４は、１６×１６＝２５６個のデータブロックを示すための１２８画素分の領域、差分画像データに対するポインタ情報４１６は、３２×３２＝１０２４個のデータブロックを示すための５１２画素分の領域となる。なおポインタ情報がＵ座標、Ｖ座標各１バイトで表せなくなった場合には、それぞれ２バイトとするなど、より多くのデータ長で表すようにしてもよい。あるいはポインタ情報が１バイトに収まるように、分割するタイルのサイズを変更してもよい。
【０１１０】
例えば参照画像データに対するポインタ情報４１４の領域うち、ある画素４２４が表す２つのポインタ情報はそれぞれ、参照画像の圧縮データ４１８に含まれる、ある格納単位の領域の左上の座標を示している。これらの格納単位は、ポインタに対応するデータブロックを構成する格納単位のうち先頭の格納単位である。また差分画像データに対するポインタ情報４１６のうち、ある画素４２６が表す２つのポインタ情報は、一方がＮＵＬＬブロック用の圧縮データ４２０を、他方が差分画像の圧縮データ４２２に含まれる、ある格納単位の領域の左上の座標を示している。この格納単位も、ポインタに対応するデータブロックを構成する格納単位のうち先頭の格納単位である。
【０１１１】
ＮＵＬＬブロック用の圧縮データ４２０は、必要に応じてタイル画像列４フレームごとに１つ準備しておくことにより、複数のデータブロックに対応づけられるようにする。このような圧縮データを、全てのタイル画像列に対し所定枚数のフレーム（上記の例では４フレーム）ごとに生成することにより、元の動画像全体を同様に圧縮することができる。各タイル画像列の圧縮データは、それをフレームとして時系列順に圧縮データ記憶部１３４に格納する。また元の動画像のフレームにおけるタイル画像の位置と、各タイル画像列の圧縮データとの対応づけを行っておく。例えば位置を表す識別情報をタイル画像列の圧縮データに付与しておく。このようにすることで、動画の圧縮データ全体から必要なデータを特定することができる。
【０１１２】
次に、これまで述べた手法により圧縮されたデータを用いて画像表示を行う技術について説明する。本技術において画像表示を行う装置も、図１で示した画像処理装置１０と同様の構成で実現できる。以下、制御部１００の構成に主眼を置き説明する。図２１は本実施の形態において、画像表示機能を有する制御部１００ｂの構成を詳細に示している。制御部１００ｂを含む画像処理装置１０は、基本的には上記のように圧縮された動画像データの少なくとも一部を用いて画像表示を行う装置であるが、動画を表示する目的や表示態様は特に制限されない。
【０１１３】
例えばハードディスクドライブ５０などに格納された映画や撮影動画、リアルタイムで配信される動画ストリーム、コンピュータグラフィックスにおけるビデオテクスチャなどのいずれでもよい。また同時に複数の動画を表示してもよいし、表示画像の一部の領域のみに用いられるのでもよい。従ってハードディスクドライブ５０には、上述のように圧縮した動画データのほか、様々な機能を実現するためのプログラムやその他の画像データなど各種データが格納されていてよい。
【０１１４】
制御部１００ｂは、入力装置２０からユーザが入力した情報を取得する入力情報取得部５０２、ユーザの入力などに応じて情報処理を行う情報処理部５０４、必要な動画像の圧縮データをロードするロード部５０６、画像フレームを描画する表示画像処理部５０８を含む。
【０１１５】
入力情報取得部１０２は、ユーザが入力装置２０に対して入力した、画像処理装置１０が備える機能の開始／終了、当該機能によって受け付けられる各種入力情報を取得し、情報処理部５０４に通知する。画像処理装置１０が備える機能は上記の通り、動画像表示機能のほかゲームや通信など様々考えられる。したがって入力情報取得部５０２が取得する入力情報も当該機能に応じて様々変化する。
【０１１６】
本実施の形態では動画像における空間方向、時間方向のランダムアクセスを容易に実現する。したがって、表示中の動画像の拡大、縮小、スクロールなどユーザの視点移動操作や、ビデオテクスチャをマッピングしたコンピュータグラフィックスを表示するゲームに対する操作など、動画の表示領域変化を伴う操作を受け付ける態様は特に有効である。
【０１１７】
情報処理部５０４は、画像処理装置が備える機能に応じた情報処理を、入力情報取得部５０２が取得した入力情報に基づき実施する。例えば視点移動操作を受け付ける場合は、その操作量に基づき表示領域の移動量を時間ステップごとに求め次の表示領域の座標を順次算出する。ゲームを実行する場合はその内容に応じて３次元オブジェクトを発生させたりゲームプログラムに則りステージを進捗させたりする。これらの処理は一般的な技術を適用できるため、以後、動画像の表示に係る処理に着目し、その他の処理については適宜説明を省略する。
【０１１８】
情報処理部５０４は上記のような情報処理を行った結果、動画像を表示する必要が生じた場合や、動画像における表示領域を変化させる必要が生じた場合などに、表示領域のフレーム座標を計算し、ロード部５０６および表示画像処理部５０８に通知する。本実施の形態では、タイル画像単位、所定フレーム数単位で個別の圧縮データを生成しているため、ハードディスクドライブ５０からメインメモリ６０へのロードもこの単位で行える。
【０１１９】
そのため情報処理部５０４は、動画像の表示を開始した時点からの経過時間を計測し、フレーム座標の情報とともに、経過時間に基づくフレーム番号も通知する。これによりロード部５０６および表示画像処理部５０８は、ロード対象やデコード対象の圧縮データを、それまで当該タイル画像が処理対象であったか否かに関わらず特定できる。ロード部５０６は、情報処理部５０４からの通知に基づき、必要な圧縮データがメインメモリ６０に格納されているか否かを確認する。
【０１２０】
ここで必要な圧縮データとは、次の表示に必要な圧縮データのほか、以後必要と予測される圧縮データも含む。後者のデータは、画角が一定の場合、時間軸上で後のフレームのうち、同じ表示領域とその周囲の所定範囲の領域を表すデータである。一方、視点が移動するなどして画角が変化している場合は、後のフレームのうち、当該画角の変化から予測される移動先の表示領域とその周囲の所定範囲の領域を表すデータである。ロード部５０６は、必要なデータがメインメモリ６０に格納されていない場合、当該圧縮データをハードディスクドライブ５０からロードし、メインメモリ６０に格納する
【０１２１】
表示画像処理部５０８は、データ読み出し部５１０、デコード部５１２、描画部５１４を含む。データ読み出し部５１０は、情報処理部５０４から通知されたフレーム座標に基づき、次の表示領域のデータを含むタイル画像列の圧縮データをその識別情報などにより特定し、メインメモリ６０から読み出す。デコード部５１２は、フレーム座標に基づき、読み出した圧縮データに含まれるポインタ情報から、描画に必要なデータブロックの圧縮データを特定し、デコードする。
【０１２２】
この処理は基本的には上記の圧縮処理を逆に辿る処理となるが、画素値の復元は表示領域を表す画素ごとに行える。描画部５１４は、デコードされたデータを用いて、表示処理部４４のフレームメモリに表示画像全体を描画する。この処理はフレーム座標で表される領域からなる表示画像を描画する処理でもよいし、ビデオテクスチャのマッピング処理を含む描画処理でもよい。
【０１２３】
図２２は主にデコード部５１２が行うデコード処理の手順を示すフローチャートである。まず読み出されたタイル画像の圧縮データに含まれるポインタ情報のうち、参照画像データに対するポインタ情報を参照し、表示領域の描画に必要な参照画像のデータを含むデータブロックの圧縮データを特定する（Ｓ６０）。なお上述のとおり圧縮は可変長で行われているため、複数の格納単位が該当する場合がある。
【０１２４】
次に参照画像の圧縮データから該当する圧縮データを読み出し、各格納単位に含まれるＹ画像の４つのパレットのそれぞれが表す２値の大小関係から、圧縮パターンと分割パターンを表す４ビットの識別番号を取得する（Ｓ６２）。当該識別番号から、表示領域を構成する画素と、圧縮データにおける各量子化単位に含まれるインデックスとの対応が判明するため、それに基づき必要なデータを保持する量子化単位を特定する（Ｓ６４）。
【０１２５】
次に、パレットが表す２値を線形補間することによって得られる４値からインデックスが指す値を取得することにより、各画素のＹ値、Ｃｂ値、Ｃｒ値を求める。そしてＣｂＣｒ画像を縦横２倍に拡大してＹＣｂＣｒ画像を生成したうえ、圧縮パターンのいずれかで圧縮した場合は逆方向に拡大、あるいはフレームを挿入する。フレームの挿入は、平均画像をコピーすることによって行える。そしてＹＣｂＣｒ画像をさらに縦横２倍に拡大することにより、元のタイル画像サイズのＹＣｂＣｒ画像の参照画像を生成する（Ｓ６６）。このときの拡大処理は、上述のように２×２画素単位で処理が完結するように、内挿および外挿によって行う。
【０１２６】
次に差分画像について同様の処理を行い、差分画像の圧縮データからＹＣｂＣｒ画像の差分画像を生成する（Ｓ６８のＮ、Ｓ６０〜Ｓ６６）。ただしＳ６２において、圧縮パターンと分割パターンを表す識別情報は、Ｙ画像の４つのパレットのそれぞれが表す４値のうち前半アドレスの２値、後半アドレスの２値をそれぞれつなげた値の大小関係から取得する。またＳ６６において、各画素のＹ値、Ｃｂ値、Ｃｒ値を求める際は、まずパレットが表す４ビットの４値を８ビットに変換し、前半アドレスの２値、後半アドレスの２値の、それぞれの大小関係の組み合わせが表す識別情報に基づく倍率をかける。そして各画素のインデックスが指す値を取得することによりＹ値、Ｃｂ値、Ｃｒ値を求める。
【０１２７】
またポインタがＮＵＬＬブロック用の圧縮データを示している場合は、対応する領域の全画素を０とする。ただしこの処理は、上述のとおりＮＵＬＬブロック用の圧縮データをその他のデータブロックの圧縮データと同じ構造とすることでその他の圧縮データと同様に行えるため、特別な処理は必要ない。このようにして、表示領域を表す参照画像と差分画像のＹＣｂＣｒ画像がそれぞれ生成できたら（Ｓ６８のＹ）、それらを対応する画素ごとに加算し（Ｓ７０）、色空間をＲＧＢに変換することにより、表示領域のＲＧＢ画像を生成する（Ｓ７２）。
【０１２８】
本実施の形態において生成する圧縮データは、各データブロックに対応するデータのサイズが可変長であるため、格納単位の格納領域を表すポインタをデータブロックごとに示す必要がある。上記のとおり、２５６×２５６画素のタイル画像４フレーム分に対し、参照画像のポインタは２５６個、差分画像のポインタは１０２４個の合計１２８０個である。１つのポインタを２バイトのＵＶ座標で表すとすると、ポインタとして必要なデータサイズは、元のタイル画像の１画素あたり、（２バイト×１２８０個）／（２５６×２５６画素×４フレーム）≒０．０８ビットと、微少である。
【０１２９】
圧縮データは、４フレーム分のデータブロックが、４×２画素×４バイト＝３２バイトの格納単位の１個、２個、あるいは４個分によって表される。最も圧縮された場合、参照画像データを格納単位１個、差分画像データをＮＵＬＬブロック用圧縮データとして、１つのデータブロックを表すことができる。参照画像は元の画像を１／４に縮小した画像であること、ＮＵＬＬブロック用圧縮データは他と共有できること、を考慮すると、そのデータサイズは１画素あたり、（３２バイト×１×０．２５＋０バイト）／（８×８画素×４フレーム）＝０．２５ビットである。一方、最も圧縮されなかった場合、参照画像データおよび差分画像データともに、格納単位４個で１つのデータブロックが表される。したがってこの場合のデータサイズは１画素あたり、（３２バイト×４×０．２５＋３２バイト×４）／（８×８画素×４フレーム）＝５ビットである。
【０１３０】
すなわち本実施の形態によって生成、デコードする圧縮データは、１画素あたり約０．３３〜５．０８ビットのサイズとなる。Ｓ３ＴＣによってテクスチャ圧縮されたデータは４ビット／画素のデータサイズであるため、本実施の形態による動画像の圧縮データはそれに匹敵するかそれより低いデータサイズとなる。結果として十分に低いメモリコストによって空間方向、時間方向にランダムアクセスが可能な動画像を表示できる。
【０１３１】
なお本実施形態の圧縮データの圧縮率は、時空間方向の冗長性や量子化誤差の生じやすさなど、実際の画像に応じて変化する。一方、このような要因による時空間方向の圧縮可否やＮＵＬＬブロック化の可否を判定する基準となるしきい値を調整することにより、画像起因の圧縮率低下を吸収することができる。表示時の装置環境と画像に応じてしきい値を適応的に変化させることにより、与えられた環境を生かしながら最大限の画質で動画像を表示することができる。例えば表示装置のリソース量や通信環境と最適なしきい値とを対応づけたテーブルを準備しておき、実際の表示環境に合わせたしきい値で圧縮データを生成してもよい。
【０１３２】
これまでの説明において処理対象とした動画データは、各時刻に対してフレームを１つとしていたが、各時刻の画像を異なる解像度で表す複数のフレーム列で構成してもよい。そしてユーザの視点移動要求に応じて用いるフレーム列を切り替えるようにすると、動画像でありながら解像度の可変範囲を格段に広げることができる。このとき複数の解像度のフレーム列を、解像度順に階層化してなる階層構造とする。以後、このような階層構造を有する動画像データを「階層データ」とも呼ぶ。
【０１３３】
図２３は動画像を階層データとする場合のデータ構造を概念的に示している。階層データは、図の上から下へ向かうｚ軸方向に、第０階層３０、第１階層３２、第２階層３４および第３階層３６からなる階層構造を有する。なお同図においては４階層のみ示しているが、階層数はこれに限定されない。上述のとおり各階層は１つの動画像を異なる解像度で表したフレームを時系列順に並べたフレーム列で構成される。同図においては各階層を４枚のフレームで象徴的に表しているが、フレームの数は動画像の再生時間やフレームレートによって当然異なる。
【０１３４】
階層データは例えば４分木の階層構造を有し、第０階層３０は１個のタイル画像、第１階層３２は２×２個のタイル画像、第２階層３４は４×４個のタイル画像、第３階層は８×８個のタイル画像、などとする。このとき第Ｎ階層の解像度（Ｎは０以上の整数）は、画像平面上で左右（ｘ軸）方向、上下（ｙ軸）方向ともに、第（Ｎ＋１）階層の解像度の１／２となる。階層データは、最高解像度をもつ第３階層３６の動画像をもとに、各フレームを複数段階に縮小するなどして生成することができる。
【０１３５】
動画表示時の視点座標およびそれに対応する表示領域は、図２３に示すように、画像の左右方向を表すｘ軸、上下方向を表すｙ軸、解像度を表すｚ軸からなる仮想的な３次元空間で表すことができる。なお各階層はそれぞれが動画像を表すフレーム列で構成されるため、実際に表示される画像は表示が開始されてからの時間にも依存し、同図では階層ごとに時間軸ｔを表している。
【０１３６】
画像処理装置１０は、基本的には時間軸ｔに沿っていずれかの階層のフレーム列を所定のフレームレートで順次描画していく。例えば第０階層３０の解像度の動画像を基準画像として表示する。その過程で入力装置２０から表示領域移動要求信号が供給されたら、当該信号から表示画像の変更量を導出し、その変更量を用いて次のフレームの、仮想空間における４隅の座標（フレーム座標）を導出する。そして当該フレーム座標に対応する画像フレームを描画する。この際、ｚ軸に対し階層の切り替え境界を設けておくことにより、フレーム座標のｚの値に応じて適宜、フレーム描画に用いる動画データの階層を切り替える。
【０１３７】
例えば表示画像に求められる解像度が、第１階層３２と第２階層３４の間の切り替え境界と、第２階層３４と第３階層３６の間の切り替え境界の間にある場合に、第２階層３４の画像データを利用して表示領域を描画する。第１階層３２と第２階層３４の間の切り替え境界と、第２階層３４の間の解像度では、第２階層３４の画像フレームを縮小して表示する。第２階層３４と第３階層３６の間の切り替え境界と、第２階層３４の間の解像度では、第２階層３４の画像フレームを拡大して表示する。
【０１３８】
階層データは、上述と同様にタイル画像列単位で圧縮して圧縮データとする。ただしこの場合、タイル画像列の圧縮データは、画像平面上の位置のみならず、解像度方向の位置とも対応づけておく。
【０１３９】
このような階層データを用いて、表示中の動画の表示領域の移動要求を拡大縮小を含めて受け付ける場合、本実施の形態のデータ圧縮技術を適用すると、必要なタイル画像の圧縮データのみをロードし、必要な領域のみをデコードすればよくなる。そのため画像全体をロードしたりデコードしたりするのと比較し、ロード処理、デコード処理のコスト、転送コスト、メモリコストの無駄を省くことができる。例えば第３階層３６のデータを用いて画像表示を行う場合、表示領域はそのごく一部となるため、上記コストの節約効果が特に高い。結果として、表示する解像度によらず常に同じコストで処理を進捗させることができ、円滑な動画表示を行える。
【０１４０】
また階層データを用いて動画像を表示中、視点移動要求によって用いる階層を切り替える場合、それまでデコード対象とされていなかった切り替え後の階層に対して次の時刻のデータを瞬時に取得する必要がある。本実施の形態の圧縮データは４フレームごとなど所定のフレーム数ごとに独立した圧縮データであるため、時間方向のランダムアクセス性にも優れ、このような階層切り替えをシームレスに行える。
【０１４１】
以上述べた本実施の形態によれば、動画像を構成するフレームを所定のサイズで分割してなるタイル画像を所定のフレーム数分まとめてタイル画像列とする。さらに当該タイル画像列を空間分割してなるデータブロック単位で圧縮データを生成する。このようにすることで、動画表示時のロード処理およびデコード処理に際し、空間方向及び時間方向の双方向で圧縮データへのランダムアクセスを可能とする。結果としてロード処理やデコード処理のコストが軽減されるうえ、画像をメモリ上に展開する必要がなくなるため、メモリコストも軽減される。
【０１４２】
従来の動画圧縮技術では、動画をビデオテクスチャとしてマッピングした画像を表示する際、そのテクスチャ領域がごく僅かであったり、ユーザの操作やゲームの進捗で画角から外れても、次の表示に備えて表示されない動画をデコードし続ける必要があった。本実施の形態では実際の表示面積に応じた分のデータのみを処理すればよいため、処理効率を格段に向上させることができる。したがって、スタジアムの広告看板、ディスプレイ、空、遠くの風景など、ゲームや映像の背景として動画を合成させたい場合などには特に効果的である。
【０１４３】
また動画に限らず、相互に冗長性があるような画像列を圧縮対象としてもよい。例えばカメラアレイを用いて撮影されたデータ（Light Fieldデータ）においては、隣接するカメラの撮影画像間に冗長性が期待できる。よって、複数の撮影画像を時間軸上に配置した動画として、効率的な圧縮が期待できる。また、見える角度によって表示するテクスチャ画像を変更する技術（View Dependent Texture）にも応用可能である。すなわち、表示される可能性のある画像を時間軸上に配置した動画として圧縮し、レンダリング時には任意の画像をランダムアクセスして表示する。
【０１４４】
また各タイル画像列は、それを縮小した参照画像と、参照画像の圧縮データをデコードした画像と元のタイル画像との差を表す差分画像とに分けて圧縮する。各画像は空間方向、時間方向の冗長性を確認して縮小したりフレーム数を減らしたりしたうえ、量子化単位に分割し、各画素値をパレットおよびインデックスで表すことにより量子化する。
【０１４５】
パレットおよびインデックスの概念はＳ３ＴＣの圧縮手法で導入されているが、本実施の形態ではパレットの２値が輝度Ｙ、色差Ｃｂ、色差Ｃｒのいずれに対しても８ビットを保持するため画質が劣化しにくい。またＹ画像列、およびＣｂＣｒ画像列に対し別個に量子化を行うため、ＲＧＢの３次元パラメータを量子化するのと比較してパラメータの次元数が小さく量子化誤差が少ない。また符号化単位を形成する際の空間分割数、時間分割数の組み合わせを変化させ、画像の持つ空間方向の冗長性、時間方向の冗長性に適応するデータ構造を柔軟に提供できる。
【０１４６】
また差分画像はその画素値の範囲が限定的となるため、画素値を０と見なせる場合はＮＵＬＬブロックとすることで、複数のデータブロックで圧縮データを共有する。さらに空間方向、時間方向の冗長性を利用した圧縮や量子化単位を形成する分割パターンに係る情報をＹ画像のパレットが保持する値の大小比較によって表現する。これらのことにより、実際の画像に応じて画質を維持しながら可能な限り圧縮率を向上させることができる。また画像表示時には、一般的なテクスチャマッピングの処理と同様に描画処理を行えるため高いスループットを見込める。結果として演算コストとメモリコストを抑えつつ高精細な動画を表示できる。
【０１４７】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１４８】
例えば本実施の形態では元の画像を所定の倍率で縮小した参照画像を生成して圧縮し、最終的な圧縮データに含めた。この参照画像をそのまま用いることにより、ミップマップ２レベル分の描画を実施できる。また参照画像の縮小率を上げることで、圧縮率をさらに向上させてもよい。このとき例えば参照画像を第１レベル、それを拡大して差分画像と加算することによって得られる画像を第２レベル、第１レベルの参照画像をさらに拡大して差分画像と加算することによって得られる画像を第３レベル、というように、１つの参照画像を利用して３レベル以上のミップマップを構成してもよい。
【０１４９】
この場合、第１レベルの参照画像、第２レベルの差分画像、第３レベルの差分画像、というように、参照画像と差分画像を独立して扱えるように圧縮単位を形成してもよい。また第２レベルの画像を第３レベルの参照画像とするなど、第１レベルの参照画像を間接的に利用してもよい。このようにすることで、ミップマップを導入した画像描画技術を、ランダムアクセス可能な状態で、かつデータサイズの増大なく実現できる。
【符号の説明】
【０１５０】
１０  画像処理装置、  １２  表示装置、  ２０  入力装置、  ４４  表示処理部、  ５０  ハードディスクドライブ、  ６０  メインメモリ、  １００  制御部、  １２０  タイル画像列生成部、  １２２  参照画像圧縮部、  １２４  差分画像生成部、  １２６  差分画像圧縮部、  １２８  圧縮データ生成部、  １３０  動画データ記憶部、  １３２  分割パターン記憶部、  １３４  圧縮データ記憶部、  ５０２  入力情報取得部、  ５０４  情報処理部、  ５０６  ロード部、  ５０８  表示画像処理部、  ５１０  データ読み出し部、  ５１２  デコード部、  ５１４  描画部。
【図１】
0005722761.tif 000002
【図２】
0005722761.tif 000003
【図３】
0005722761.tif 000004
【図５】
0005722761.tif 000005
【図６】
0005722761.tif 000006
【図７】
0005722761.tif 000007
【図８】
0005722761.tif 000008
【図９】
0005722761.tif 000009
【図１６】
0005722761.tif 000010
【図１７】
0005722761.tif 000011
【図２１】
0005722761.tif 000012
【図２２】
0005722761.tif 000013
【図２３】
0005722761.tif 000014
【図４】
0005722761.tif 000015
【図１０】
0005722761.tif 000016
【図１１】
0005722761.tif 000017
【図１２】
0005722761.tif 000018
【図１３】
0005722761.tif 000019
【図１４】
0005722761.tif 000020
【図１５】
0005722761.tif 000021
【図１８】
0005722761.tif 000022
【図１９】
0005722761.tif 000023
【図２０】
0005722761.tif 000024