JP5722761B2 - 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 - Google Patents

動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 Download PDF

Info

Publication number
JP5722761B2
JP5722761B2 JP2011286969A JP2011286969A JP5722761B2 JP 5722761 B2 JP5722761 B2 JP 5722761B2 JP 2011286969 A JP2011286969 A JP 2011286969A JP 2011286969 A JP2011286969 A JP 2011286969A JP 5722761 B2 JP5722761 B2 JP 5722761B2
Authority
JP
Japan
Prior art keywords
image
data
compressed data
difference
compressed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011286969A
Other languages
English (en)
Other versions
JP2013135463A (ja
Inventor
稲田 徹悟
徹悟 稲田
大場 章男
章男 大場
博之 勢川
博之 勢川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2011286969A priority Critical patent/JP5722761B2/ja
Priority to PCT/JP2012/006822 priority patent/WO2013099076A1/ja
Priority to EP12862302.2A priority patent/EP2800369B1/en
Priority to US14/366,498 priority patent/US9693072B2/en
Priority to CN201280070242.7A priority patent/CN104137548B/zh
Publication of JP2013135463A publication Critical patent/JP2013135463A/ja
Application granted granted Critical
Publication of JP5722761B2 publication Critical patent/JP5722761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]

Description

本発明は、動画像を含む画像を表示するための画像処理技術に関する。
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、GPUがポリゴンを用いた三次元画像を生成する(例えば特許文献1参照)。
動画、静止画に関わらず、画像をいかに効率よく表示するかは常に重要な問題となる。そのため画像データの圧縮技術、伝送技術、画像処理技術、表示技術など多方面で様々な技術が開発、実用化され、高精細な画像を多様な場面で身近に楽しめるようになってきた。
米国特許第6563999号公報
ユーザによる視点移動やゲームの進捗による画角の変化などに対し、高精細な画像を応答性よく表示させたい、という要求は常に存在する。例えば表示させた全体画像のうちユーザが着目したい領域を拡大して表示させたり別の領域に移動したり、といった、視点に対し自由度のある画像表示を応答性よく実現するためには、サイズの大きな画像データを短時間で処理しつつランダムアクセスをも可能にしなければならない。
特に時間経過に対し多数のフレームを順次表示させる動画像の場合、データサイズが増大するため圧縮率を優先することが一般的である。しかし圧縮率を上げるほどデコード時の演算コストが高くなるうえ、データアクセスの粒度が大きくなる傾向となる。結果として、限定的な領域のみを表示したい場合であっても、フレームの全領域をデコードしたりメモリに展開したりする必要が生じ、演算コスト、メモリコストの面では不利となる。
本発明はこのような課題に鑑みてなされたものであり、その目的は様々な要求に対し応答性よく動画像表示できる画像処理技術を提供することにある。
本発明のある態様は動画圧縮装置に関する。この動画圧縮装置は、動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するタイル画像列生成部と、タイル画像列を圧縮し参照画像の圧縮データを生成する参照画像圧縮部と、タイル画像列を構成する各タイル画像と、参照画像圧縮部が生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する差分画像生成部と、差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する差分画像圧縮部と、参照画像の圧縮データおよび差分画像の圧縮データを含む動画圧縮データを、所定フレーム数のタイル画像単位で生成し記憶装置に出力する圧縮データ生成部と、を備えることを特徴とする。
本発明の別の態様はデータ画像処理装置に関する。この画像処理装置は、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する情報処理部と、フレーム列を画像平面において分割してなるタイル画像列を圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と、対応するタイル画像との差分を表す差分画像の圧縮データと、を含む動画圧縮データを記憶した記憶装置から、情報処理部が算出した情報に基づきタイル画像単位で動画圧縮データをメモリにロードするロード部と、メモリにロードした動画圧縮データのうち、情報処理部が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する表示画像処理部と、描画された画像を順次表示する表示部と、を備えることを特徴とする。
本発明のさらに別の態様は動画圧縮方法に関する。この動画圧縮方法は、動画圧縮装置において、記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するステップと、タイル画像列を圧縮して参照画像の圧縮データを生成するステップと、タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成するステップと、差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成するステップと、参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、所定フレーム数のタイル画像単位で生成し記憶装置に出力するステップと、を含むことを特徴とする。
本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、画像処理装置において、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出するステップと、フレーム列を画像平面において分割してなるタイル画像列を圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と対応する前記タイル画像との差分を表す差分画像の圧縮データと、を含む動画圧縮データを記憶した記憶装置から、算出するステップで算出した情報に基づきタイル画像単位で動画圧縮データをメモリにロードするステップと、メモリにロードした動画圧縮データのうち、算出するステップで算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するステップと、描画された画像を順次表示するステップと、を含むことを特徴とする。
本発明のさらに別の態様は動画圧縮ファイルのデータ構造に関する。このデータ構造は、動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を構成する各タイル画像を画像平面および時間軸において分割してなるデータブロックの単位で圧縮した参照画像の圧縮データと、参照画像の圧縮データをデコードして得られる画像と、対応するタイル画像との差分を表す差分画像からなる差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮した差分画像の圧縮データと、を所定フレーム数のタイル画像単位で対応づけ、画像処理装置において、表示すべきフレームと当該フレーム内の表示すべき領域の情報に基づきタイル画像単位でロードされ、表示すべきフレームのうち表示すべき領域に対応するデータブロックの参照画像の圧縮データと差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するのに用いられることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によると、ランダムアクセスが可能でスループットの高い3次元データ出力を行える。
本実施の形態における画像処理装置の構成を示す図である。 本実施の形態における動画データの処理単位を説明するための図である。 本実施の形態において動画データ圧縮機能を有する制御部およびハードディスクドライブの構成を詳細に示す図である。 本実施の形態において制御部を含む画像処理装置が実施する動画データの圧縮手順を模式的に示す図である。 本実施の形態における参照画像圧縮部が参照画像の圧縮データを生成する処理手順を示すフローチャートである。 本実施の形態において空間分割したタイル画像列を冗長性判定により圧縮する手順を模式的に示す図である。 本実施の形態において圧縮判定を行ったあとのデータブロックをさらに分割して量子化単位を形成し画素値を量子化する様子を模式的に示す図である。 本実施の形態においてY画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。 本実施の形態においてCbCr画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。 本実施の形態において16画素からなる量子化単位を形成するために、分割パターン記憶部に格納する分割パターンのバリエーションを示す図である。 本実施の形態において、冗長性による圧縮を行わなかった場合のデータブロックから量子化単位を生成する際の分割パターンを示す図である。 本実施の形態において、冗長性を利用した圧縮を行ったデータブロックから量子化単位を生成する際の分割パターンを示す図である。 本実施の形態において、冗長性を利用した圧縮を行ったデータブロックから量子化単位を生成する際の分割パターンを示す図である。 本実施の形態における参照画像の圧縮データのデータ構造を模式的に示す図である。 本実施の形態において、圧縮パターンと分割パターンを表す識別番号をパレットによって表す手法を説明するための図である。 本実施の形態において差分画像生成部が差分画像を生成する手順を模式的に示す図である。 本実施の形態において参照画像をデコードする際の画像の拡大処理を模式的に示す図である。 本実施の形態においてパレットに格納した値のデコード時の倍率の識別番号をパレットによって表す手法を説明するための図である。 本実施の形態において差分画像のY画像のパレットによって圧縮パターンと分割パターンを表す識別番号を表す手法を説明するための図である。 本実施の形態において参照画像の圧縮データと差分画像の圧縮データを含む最終的な圧縮データを生成する処理手順を模式的に示す図である。 本実施の形態において、画像表示機能を有する制御部の構成を詳細に示す図である。 本実施の形態においてデコード部が行うデコード処理の手順を示すフローチャートである。 本実施の形態において動画像を階層データとする場合のデータ構造を概念的に示す図である。
本実施の形態では、演算コストやメモリコストを増大させずに、画像平面上および時間軸に対しランダムアクセス可能に動画像を表示する。ここで表示対象とする動画は、映画、アニメーション、ユーザが撮影した動画などそれ自体を主たるコンテンツとするものでもよいし、ゲームなどのコンピュータグラフィックスにおいてマッピングされるビデオテクスチャなど画像の部材として表されるものでもよい。
静止画像の場合、圧縮方式としてJPEG(Joint Photographic Experts Group)やS3TC(S3 Texture Compression)などが実用化されている。前者は表示時にデコード対象のデータをメモリに展開する必要があるためメモリコストが比較的大きくなるが高圧縮率である。後者は圧縮率が比較的低い代わりにデコードデータの展開が必要ないため、局所的な画像を表示する場合は特にメモリコストが小さくなる。したがって、表示環境などによって定まる圧縮率とメモリ負荷の優先順位に応じて、適宜圧縮方式を選択することができる。
一方、動画像の圧縮方式は従来より、MPEG(Moving Picture Experts Group)やAVC(Advanced Video Coding)など圧縮率を上げることに重点が置かれてきたため、次のような問題が生じる。すなわち動画像をビデオテクスチャとして用いる場合、一部分のみをマッピングする場合であっても、全ての領域をメモリに展開する必要があり無駄なメモリコストがかかる。このことはビデオテクスチャのみならず、動画像を拡大してその一部のみを表示するような場合も同様である。
特にフレーム間予測符号化方式の場合、参照画像も全領域をメモリに展開する必要がある。また高い圧縮率に起因して、全領域のデータをデコードするための演算コストも大きい。さらに当該ビデオテクスチャで表現する領域が画角から外れている期間であっても、次に画角に入ったときに備えてデコードし続けなければいけないため、この点でもデコードのための処理コスト、メモリコストが無駄にかかることになる。
そこで本実施の形態では、動画像のデータを圧縮したままメモリに格納しても、必要な領域のデータのみを取り出して独立にデコードし表示できるように圧縮することで、演算コストとメモリコストを軽減させる。このときフレーム内やフレーム間の冗長性を考慮して圧縮することにより、画像の内容を考慮したうえで高画質、高圧縮率を実現する。
まず本実施の形態において動画像の圧縮データを生成する技術について説明する。図1は本実施の形態の画像処理装置の構成を示している。画像処理装置10は、無線インタフェース40、入力装置20、表示処理部44、表示装置12、ハードディスクドライブ50、記録媒体装着部52、ディスクドライブ54、メインメモリ60および制御部100を有して構成される。
表示装置12は液晶ディスプレイ、EL(Electronic Luminescence)ディスプレイ、プラズマディスプレイなど一般的なディスプレイのいずれかを備えており、画像処理装置10のその他のモジュールと一体的に設けられてもよいし、有線ケーブルや無線LAN(Local Area Network)などにより有線接続または無線接続されてもよい。表示処理部44は、表示装置12のディスプレイに表示するデータをバッファするフレームメモリ(図示せず)を有する。
無線インタフェース40は、所定の無線通信プロトコルで外部の機器やネットワークと無線で接続することによりサーバから画像データなど各種データを受信できるように構成される。入力装置20はジョイスティック、タッチパネル、マウス、キーボード、ボタンなど一般的な入力装置で構成される。入力装置20は、処理対象の画像データの選択、圧縮データ生成開始などのユーザの要求を受け付ける操作手段を備える。入力装置20においてユーザから入力された各種要求信号は、制御部100に供給される。
ハードディスクドライブ50は、データを記憶する記憶装置として機能する。サーバから受信した各種データは、一旦、ハードディスクドライブ50に格納される。記録媒体装着部52は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ54は、読み出し専用のROMディスクが装着されると、ROMディスクを駆動して認識し、データを読み出す。ROMディスクは、光ディスクや光磁気ディスクなどであってよい。画像データなど各種データはこれらの記録媒体に格納されていてもよい。
制御部100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(PowerPC Processor Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic Processor Unit)と呼ばれる。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。
メインメモリ60は記憶装置であり、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、表示処理部44におけるフレームメモリとメインメモリ60の間で高速なデータ転送を実現できる。本実施の形態の制御部100は、複数のSPUを並列動作させることで、高速な画像処理機能を実現する。表示処理部44は表示装置12に接続されて、メニュー画面などの画像データを出力する。
図2は本実施の形態における動画データの処理単位を説明するための図である。本実施の形態では、圧縮対象の動画を構成する画像フレーム80をそれぞれ、所定のサイズで分割して複数のタイル画像(例えばタイル画像82)とする。動画像の画像フレーム80は図2の縦方向に表される時間軸に対して画像列を構成するため、タイル画像もそれに対応する画像列となる(例えばタイル画像列84)。本実施の形態では、当該タイル画像列を処理単位として圧縮データを生成する。画像表示時には必要に応じてデコードしたタイル画像をつなげることにより画像を表示する。なお以後の説明では、タイル画像列を構成する各タイル画像も「フレーム」と呼ぶ。なお元の画像フレームの画素数が所定値より小さい場合などは、画像フレーム全体を1枚のタイルとみなすことにより、タイル画像への分割を行わなくてもよい。
図3は本実施の形態において、動画データ圧縮機能を有する制御部100aおよびハードディスクドライブ50の構成を詳細に示している。制御部100aは、圧縮対象の動画データからタイル画像列を生成し色空間をRGBからYCbCrへ変換するタイル画像列生成部120、変換後の各フレームを縮小し参照画像として圧縮する参照画像圧縮部122、参照画像に基づき各フレームの差分画像を生成する差分画像生成部124、差分画像を圧縮する差分画像圧縮部126、および、参照画像の圧縮データと差分画像の圧縮データを含む最終的な圧縮データを生成する圧縮データ生成部128を含む。
図3および後述する図21において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部100は1つのPPUと複数のSPUとを有し、PPUおよびSPUがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
ハードディスクドライブ50は、圧縮対象の動画データを格納した動画データ記憶部130、参照画像圧縮部122および差分画像圧縮部126が量子化単位を形成するための分割パターンを記憶する分割パターン記憶部132、および圧縮データ生成部128が生成した圧縮データを格納する圧縮データ記憶部134を含む。
タイル画像列生成部120は、ユーザが指定した、圧縮対象の動画データに係る情報を入力装置20から取得し、動画データ記憶部130から当該動画データを構成するフレームのデータを順次読み出す。そして各フレームを所定サイズに分割してタイル画像列を生成したうえ、画素値であるRGB値を輝度Y、色差CbおよびCrに変換することにより、YCbCrの値を画素値とするYCbCr画像を生成する。RGBからYCbCrへの色空間の変換は既存の手法を適用することができる。
参照画像圧縮部122はタイル画像列生成部120が生成したタイル画像列を所定の割合で縮小したうえで圧縮する。具体的にはタイル画像列を空間方向、時間方向に所定のサイズに分割し、分割後の各データブロックを量子化する。量子化に際し、分割パターン記憶部132に格納された分割パターンのいずれかで各データブロックをさらに時空間分割することにより所定の画素数のデータからなる量子化単位を形成する。詳細は後に述べるが、画像の内容によって最適な分割パターンが異なるため、参照画像圧縮部122は、分割パターン記憶部132に格納された複数の分割パターンから最適なパターンを選択する。
そして量子化単位ごとに、2つの代表値を表すパレット、および、それら2つの代表値と、代表値を線形補間して得られる複数の中間値のうちいずれかを画素値として指定するインデックスを生成することにより量子化する。パレットおよびインデックスからなるデータは所定数の量子化単位ごとにまとめ1つの格納単位を形成する。
差分画像生成部124は、タイル画像列生成部120が生成したタイル画像列の各フレームと、参照画像圧縮部122が圧縮した参照画像のデータをデコードすることにより復元した対応するフレームとの差分を、対応する画素ごとに求めて、タイル画像列の差分画像を生成する。差分画像圧縮部126は、差分画像生成部124が生成したタイル画像列の差分画像を圧縮する。
圧縮処理のおよその流れは参照画像圧縮部122が行う上述の圧縮処理と同様であるが、参照画像は画素値の範囲が限定的であることから、その特性がデータサイズや描画処理の効率に利点として反映されるようにする。具体的には、絶対値が所定のしきい値以下の画素値のみから構成されるデータブロックは全ての画素値を0とみなす。また量子化時のパレットは階調数を下げることで4つの具体値を表すようにして、画像表示時に線形補間を行わないようにする。詳細は後に述べる。
圧縮データ生成部128は、参照画像圧縮部122が圧縮した参照画像のデータ、差分画像圧縮部126が圧縮した差分画像のデータを所定単位でまとめたうえ、画像表示時に参照できるよう各データへのポインタを付加して圧縮データを生成する。生成した圧縮データは圧縮データ記憶部134に格納する。
図4は、制御部100aを含む画像処理装置10が実施する動画データの圧縮手順を模式的に示している。まず動画データ記憶部130から読み出した動画データのフレーム列を、タイル画像列生成部120がタイル画像列250に分割する。ここでタイル画像は256×256画素のサイズとし、以後の圧縮処理はタイル画像4フレームごとに行う。以後、この例に則り説明するが、タイル画像の画素数や処理単位のフレーム数、および後段でなされる処理の単位は様々に変化させることができる。
そしてタイル画像列生成部120は、タイル画像列250の色空間をRGBからYCbCrへ変換することにより、256×256画素のYCbCr画像列252を生成する(S10)。次に参照画像圧縮部122は、YCbCr画像列の各フレームを縦横1/2倍に縮小することにより、128×128画素のYCbCr画像列256を生成する(S12)。さらに参照画像圧縮部122は、後に詳述するように圧縮処理を行い、量子化単位をまとめて格納単位を形成していくことにより参照画像の圧縮データ260を生成する(S14)。
一方、差分画像生成部124は、参照画像の圧縮データ260を、画像表示時と同様にデコード、伸張することにより、256×256画素のYCbCr画像を参照画像として復元する。そしてタイル画像列生成部120が生成した256×256画素のYCbCr画像列252の対応するフレームとの差分をとることにより、256×256画素のYCbCrの差分画像列262を生成する(S16)。
次に差分画像圧縮部126は、後に詳述するように圧縮処理を行い量子化単位をまとめて格納単位を形成していくことにより、差分画像の圧縮データ266を生成する(S18)。そして圧縮データ生成部128は、参照画像の圧縮データ260と差分画像の圧縮データ266を連結させた圧縮データ268を生成し圧縮データ記憶部134に格納する(S20)。
圧縮データ268には、画像表示時に元の動画のフレームにおけるデータブロックの位置と圧縮データとの対応がとれるよう、ポインタ情報をヘッダ269として含める。同図の処理を、その他の全タイル画像列の4フレーム分に対し繰り返す。さらにその処理を、以後の4フレームごとに繰り返すことにより、動画データ全体が圧縮される。
次に参照画像の圧縮データ生成処理について図5から図15を参照して説明する。図5は図4のS14において参照画像圧縮部122が参照画像の圧縮データ260を生成する処理手順を示すフローチャートである。まず図4のS12において縮小した4フレーム分のYCbCr画像列256を空間方向で所定サイズに分割して処理単位のデータブロックとする(S30)。ここで空間方向とは画像の平面に対応する。それに対して時間方向とはフレームの枚数に対応する。
次にデータブロックごとに空間方向、時間方向の冗長性の有無を確認し、冗長性があると判定された場合はその方向に対しデータを圧縮する(S32)。すなわち空間方向に冗長性があれば画像を縮小し、時間方向に冗長性があれば連続する複数の画像を平均化してフレーム数を減らす。次に、分割パターン記憶部132に格納された分割パターンのうちいずれかのパターンで時空間分割して同じ画素数からなる量子化単位を形成したうえ、それぞれのデータを量子化する(S34)。
このときYCbCr画像を、輝度Yを画素値とするY画像および色差(Cb,Cr)を要素とするベクトル値を画素値とするCbCr画像に分解し、CbCr画像は所定の倍率で縮小しておく。そしてY画像、CbCr画像で同様に量子化単位を形成し個別に量子化する。量子化は上述のとおり、量子化単位に含まれる画素値をパレットとインデックスで表す処理である。
結果としてデータブロックごとに、Y画像のパレットとインデックスを含む量子化単位のデータと、それに対応するCbCr画像のパレットとインデックスを含む量子化単位のデータがそれぞれ1つ以上、生成されることになる。ここで1つのデータブロックを構成する量子化単位はS32における圧縮量によってその数が異なる。そのように生成されたデータを所定数の量子化単位ごとにまとめて格納単位を形成していくことにより、元のタイル画像4フレーム分の参照画像の圧縮データを生成する(S36)。
図6は図5のS30で空間分割したタイル画像列をS32で冗長性判定により圧縮する手順を模式的に示している。同図の例では、S30においてYCbCr画像列を8×8画素に分割してデータブロックを形成している。すなわち128×128画素の4フレーム分のYCbCr画像を縦横それぞれの方向に16分割している。図中、各データブロックの下には「横の画素数×縦の画素数×フレーム数」の形式でデータサイズが示されている。以後の図も同様である。
そのようにして形成したデータブロック272ごとに冗長性を判定する。同図ではまず、空間方向の冗長性判定を行う(S32a)。具体的には画像を所定方向に所定倍率で縮小し、それを元のサイズに戻した画像と、縮小前の画像とをフレームごとに比較し、画素値の差の合計がしきい値以下であれば空間方向に冗長性があると判定する。そしてしきい値以下となった縮小倍率のうち、より縮小量の大きい倍率へ縮小することにより圧縮する。同図の例では、縮小倍率の候補として縦方向に1/2倍、横方向に1/2倍、縦横双方向に1/2倍が設定されている。
したがって図に示すように、S32aの判定によって、元の画像に冗長性がなく8×8画素の画像のままとなる場合のほか、8×4画素、4×8画素、4×4画素に縮小される場合が発生する。判定は4フレームごとのグループで行うため、1フレームごとに画素値の差の合計をしきい値と比較し4フレーム全てについてしきい値以下であることを条件に縮小可能としてもよいし、4フレーム分の画素値の差の合計に対してしきい値判定を行ってもよい。
次に上記4つのいずれかの状態となった画像について時間方向の冗長性判定を行う(S32b)。具体的には連続する所定数のフレームを平均化した画像を生成し、それを元のフレームの画像とそれぞれ比較して、画素値の差の合計がしきい値以下であれば時間方向に冗長性があると判定する。この場合、複数のフレームをまとめて1枚の平均画像で表せると判断されたことになるため、しきい値以下となった平均画像のうち最も多くのフレームをまとめることのできる平均画像で当該フレームを代替することにより圧縮する。図6の例では、2フレームごとに平均化して2枚の平均画像とする場合と、4フレームごとに平均化して1枚の平均画像とする場合が設定されている。
ただし後述する1つの格納単位に満たなくなるまでの圧縮は必要ないため、同図の例では8×8画素の画像についてのみ、4フレーム分を平均画像1枚で表す場合を設定している。また4×4画素の画像については時間方向には圧縮しない。結果として同図に示すように、S32bの判定によって、時間方向に圧縮しない場合も含め、8×8画素×4フレーム、8×8画素×2フレーム、8×8画素×1フレーム、8×4画素×4フレーム、8×4画素×2フレーム、4×8画素×4フレーム、4×8画素×2フレーム、および4×4画素×4フレーム、の8種類データ構造となる場合が発生する。
判定は空間方向の冗長性と同様、元の画像の1フレームごとに画素値の差の合計をしきい値と比較し、4フレーム全てについてしきい値以下であることを条件に圧縮可能としてもよいし、4フレーム分の画素値の差の合計に対してしきい値判定を行ってもよい。なお縮小倍率やフレームの削減枚数の選択肢は同図に示したものに限定されず、例えば元のデータブロックのサイズや格納単位のデータサイズなどに応じて適宜決定する。また空間方向の冗長性判定と時間方向の冗長性判定の順序についても、同図と逆でもよいし、縮小とフレーム数削減を様々な組み合わせで一度に行うことにより判定を同時にしてもよい。またどちらか一方のみを行ってもよい。
図7は図5のS34において、上記のような圧縮判定を行ったあとのデータブロックをさらに分割して量子化単位を形成し画素値を量子化する様子を模式的に示している。量子化単位はデータブロックを空間方向、時間方向、あるいは空間方向時間方向の双方に分割してなる所定数の画素の集合である。そして量子化単位ごとに、2つの代表値を表す1対のパレットと、当該パレットのいずれかおよびその中間値を示す識別情報を画素に対応づけたインデックスとを生成する。パレットおよびインデックスは、基本的にはS3TCのテクスチャ圧縮方式においてRGB画像から生成されるパレットおよびインデックスと同様である。一方、本実施の形態では、パラメータの次元数が一般的なS3TCと異なる。
なお上述のとおり量子化する前には、YCbCr画像をY画像とCbCr画像に分けたうえ、CbCr画像を縮小しておく。以後の例ではCbCr画像は縦横双方向に1/2倍に縮小されているものとする。同図の左側において1つの矩形が、Y画像の量子化単位280、CbCr画像の量子化単位282をそれぞれ表している。以後の説明では量子化単位を16個の画素とする。したがって同図では量子化単位を4×4画素の画像として象徴的に表しているが、分割パターンによっては異なるフレームの画素が混在する。
そして量子化によって、Y画像の量子化単位280からパレット284およびインデックス286が、CbCr画像の量子化単位282からパレット288およびインデックス290が生成される。CbCr画像はY画像の1/4のサイズであるため、Y画像の量子化単位4つ分が、CbCr画像の量子化単位が1つ分と対応する。したがって同図に示すように、これらの対応する量子化単位から生成したパレットおよびインデックスのデータをまとめて1つの格納単位292とすることにより、表示時には1つの格納単位のデータによって、対応する領域の画素値を復元することができる。
図8はY画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。上述のとおり1つの量子化単位は16個の画素を含む。同図において画素は円形で模式的に示されている。各画素が画素値として保持する輝度Yの値をその軸上に表すと分布300のようになる。分布300でプロットされた16個の画素値のうち、2つの代表値を選択する。例えば最小値(min)および最大値(max)を代表値として選択し、当該2値を保持するデータをパレットとする。
さらに輝度Yの軸上、最小値と最大値の間の線分を1:2で内分する輝度Yの値を第1中間値(mid1)、2:1で内分する輝度Yの値を第2中間値(mid2)としたとき、最小値、第1中間値、第2中間値、最大値の4値のいずれかを指定する情報を画素ごとに保持するデータをインデックスとする。結果としてY画像の量子化単位に対して、パレットは輝度Yを表す8ビット×2値=2バイト、インデックスは4値の識別番号を0〜3で表す情報2ビット×16画素=4バイトのデータとなる。
図9はCbCr画像の量子化単位からパレットおよびインデックスのデータを生成する手法を説明するための図である。Y画像同様、1つの量子化単位は16個の画素を含む。ただし各画素が保持する値は(Cb,Cr)を要素とする2次元のベクトル値である。当該画素値を、色差Cb、Crの軸を有する2次元平面上に表すと分布302のようになる。
この分布302にプロットされた16個の画素値のうち、2つの代表値を選択する。例えば分布302を直線で近似したときに、直線の左端、右端にある色差をそれぞれ最小値(min)および最大値(max)として代表値とする。そして当該2値を保持するデータをパレットとする。このとき各代表値は、(Cb,Cr)を要素とするベクトル値である。
また近似直線上で最小値と最大値との間の線分を1:2で内分する色差を第1中間値(mid1)、2:1で内分する色差を第2中間値(mid2)としたとき、最小値、第1中間値、第2中間値、最大値の4値のいずれかを指定する情報を画素ごとに保持するデータをインデックスとする。結果としてCbCr画像の量子化単位に対して、パレットは色差CbおよびCrの2要素×各色差を表す8ビット×2値=4バイト、インデックスは4値の識別番号を0〜3で表す情報2ビット×16画素=4バイトのデータとなる。
このように圧縮すると、図7で示した格納単位292は、Y画像のパレット2バイト×4量子化単位=8バイト、Y画像のインデックス4バイト×4量子化単位=16バイト、CbCr画像のパレット4バイト、CbCr画像のインデックス4バイトであるから、合計32バイトのデータとなる。1つの格納単位292は16画素×4量子化単位=64画素分のデータを保持することから、量子化後のデータは1画素あたり0.5バイトとなる。
上記のとおり本実施の形態では、元のRGB画像を1次元のパラメータを保持するY画像、および2次元のパラメータを保持するCbCr画像に分解したうえでパレットおよびインデックスを生成する。そのため、1次元のY画像の場合は全てのサンプル値が直線上に分布し、2次元のCbCr画像も、近似直線からはずれるサンプルは当該近似直線の法線方向のみとなる。したがって、3次元のパラメータを保持するRGB画像を直線で近似して量子化する一般的なS3TCの手法と比較し、量子化誤差を小さく抑えることができる。
図10は16画素からなる量子化単位を形成するために、分割パターン記憶部132に格納する分割パターンのバリエーションを示している。同図左端からパターン(A)、パターン(B)、パターン(C)、パターン(D)とし、上段のY画像および下段のCbCr画像のいずれも、空間分割の区切りを直線で示し、1つの量子化単位を網掛けして代表的に表している。なお同図ではY画像およびCbCr画像とも、冗長性による圧縮を行っていないデータブロック、すなわち8×8画素×4フレームのY画像および4×4画素×4フレームのCbCr画像を分割する模様を示している。
パターン(A)は4×4画素×1フレームごとに分割するパターンである。パターン(B)は4×2画素×2フレームごとに分割するパターンである。パターン(C)は2×4画素×2フレームごとに分割するパターンである。パターン(D)は2×2画素×4フレームごとに分割するパターンである。パターン(D)からパターン(A)へ向かうほど、詳細な時間分割を行い、パターン(A)からパターン(D)へ向かうほど詳細な空間分割を行う。このような分割パターンを準備し、空間方向で冗長性を有するか、時間方向で冗長性を有するか、という画像の特性に応じて分割パターンを選択する。
具体的には、空や芝など単色に近い領域が多く含まれるなど、画像が空間冗長性を有する場合、その画素値は空間に対してより一様となりやすい。そのため空間分割数を少なくしても量子化による誤差が含まれにくいため、パターン(A)に近い分割パターンを選択する。一方、動きの少ない景色を定点観測した場合など、画像が時間冗長性を有する場合、その画素値は時間方向で一様となりやすい。そのため時間分割数を少なくしても量子化による誤差が含まれにくいため、パターン(D)に近い分割パターンを選択する。
分割前のデータブロックのデータ構造は実際には図6に示す8種類のいずれかとなっているため、そのデータ構造によってとり得る分割パターンが異なる。図11は冗長性による圧縮を行わなかった場合の8×8画素×4フレームのデータブロックから量子化単位を生成する際の分割パターンを示している。
この場合、8×8画素×4フレームのY画像および4×4画素×4フレームのCbCr画像が生成されるため、図10で示したように、パターン(A)、(B)、(C)、(D)の全ての分割パターンから選択することが可能である。これらのいずれの分割パターンにおいても、1つのデータブロックあたり4つの格納単位が形成される(例えば格納単位304a、304b、304c、304d)。この場合の各分割パターンに対し、識別番号を「0」、「1」、「2」、「3」と付与する。
図12は冗長性を利用した圧縮を行った結果、データブロックが8×4画素×4フレームとなった場合、4×8画素×4フレームとなった場合、8×8画素×2フレームとなった場合に量子化単位を生成する際の分割パターンを示している。まずデータブロックが8×4画素×4フレームの場合、8×4画素×4フレームのY画像および4×2画素×4フレームのCbCr画像が生成されるため、パターン(B)、(D)の分割パターンのいずれかを選択する。データブロックが4×8画素×4フレームの場合、4×8画素×4フレームのY画像および2×4画素×4フレームのCbCr画像が生成されるため、パターン(C)、(D)の分割パターンのいずれかを選択する。
データブロックが8×8画素×2フレームの場合、8×8画素×2フレームのY画像および4×4画素×2フレームのCbCr画像が生成されるため、パターン(A)、(B)、(C)の分割パターンのいずれかを選択する。同図のいずれの分割パターンにおいても、1つのデータブロックあたり2つの格納単位が形成される(例えば格納単位306a、306b)。この場合の各分割パターンに対し、識別番号を「4」、「5」、「6」、「7」、「8」、「9」、「10」と付与する。
図13は冗長性を利用した圧縮を行った結果、データブロックが4×4画素×4フレームとなった場合、4×8画素×2フレームとなった場合、8×4画素×2フレームとなった場合、8×8画素×1フレームとなった場合に量子化単位を生成する際の分割パターンを示している。まずデータブロックが4×4画素×4フレームの場合、4×4画素×4フレームのY画像および2×2画素×4フレームのCbCr画像が生成されるため、選択肢はパターン(D)のみとなる。データブロックが4×8画素×2フレームの場合、4×8画素×2フレームのY画像および2×4画素×2フレームのCbCr画像が生成されるため、選択肢はパターン(C)のみとなる。
データブロックが8×4画素×2フレームの場合、8×4画素×2フレームのY画像および4×2画素×2フレームのCbCr画像が生成されるため、選択肢はパターン(B)のみとなる。データブロックが8×8画素×1フレームの場合、8×8画素×1フレームのY画像および4×4画素×1フレームのCbCr画像が生成されるため、選択肢はパターン(A)のみとなる。同図のいずれの分割パターンにおいても、1つのデータブロックあたり1つの格納単位が形成される(例えば格納単位308)。この場合の各分割パターンに対し、識別番号を「11」、「12」、「13」、「14」と付与する。
上記のように識別番号を付与すると、当該識別番号には冗長性を利用した圧縮のパターンと、量子化単位を形成するための分割パターンが情報として含まれることになる。分割パターン記憶部132には、パターン(A)〜(D)の4種類の分割パターンと、それらを識別する情報を対応づけて格納しておく。参照画像圧縮部122は圧縮のパターンと選択した分割パターンの組み合わせに基づき各データブロックに対応する識別番号を決定する。当該識別番号を圧縮データに含め、画像表示時に表示領域の画素値のデータを特定するために参照する。
量子化単位の分割パターンに複数の選択肢がある場合、データブロックごとにそれらの分割パターンを全て実施して量子化し、それを復号した際、元の画像との誤差が最も少ない分割パターンを選択する。あるいは同様の内容を有するテスト画像によって分割パターンを領域ごとにあらかじめ決定しておいてもよい。
次に参照画像圧縮部122が生成する参照画像の圧縮データのデータ構造について説明する。本実施の形態において生成される圧縮データは、S3TCのテクスチャ圧縮方式と同様に、パレットおよびインデックスによって構成される。そのためデコード処理は、一般的なGPUのシェーディング機能をそのまま利用することができる。
そのため、Y画像のデータを量子化して生成されたインデックスおよびパレットと、CbCr画像のデータを量子化して生成されたインデックスおよびパレットが、通常のテクスチャ画像と同様に読み出されデコードできるようにすることが望ましい。そこで圧縮データを格納する際は、上述のとおり同じ領域を表すY画像の量子化データとCbCr画像の量子化データを1つの格納単位とすることにより、少ないデータアクセスで画素を復元できるようにする。
図14は参照画像の圧縮データのデータ構造を模式的に示している。同図左側が1つの格納単位314を表しており、その中には同図右側に示すように、Y画像の圧縮データ310と、同じ領域を表すCbCr画像の圧縮データ312が格納される。Y画像の圧縮データ310のうち「I」と表記された直方体はそれぞれ1量子化単位のインデックス、「P」と表記された直方体はそれぞれ1量子化単位のパレットである。CbCr画像の圧縮データ312も同様である。上述のとおり、Y画像のインデックスおよびパレットは、1量子化単位あたりそれぞれ4バイト、2バイトのデータである。CbCr画像のインデックスおよびパレットはどちらも、1符号化単位あたり4バイトのデータである。
そこで同図に示すように、同じ領域を表す、Y画像の4量子化単位とCbCr画像の1量子化単位のデータを、深さ4バイトの記憶領域に配列してまとめる。ここでY画像の圧縮データ310のうち、パレットはそれぞれ2バイトのデータであるため、図のように深さ方向に2つ配置する。結果として1つの格納単位314は、4個×2個×4バイトのデータとなる。
このように圧縮データをまとめると、4×2画素分のRGBA画像のデータを格納する記憶領域に1つの格納単位314をそのまま格納することができる。8×8画素×4フレームのデータブロックから最大4つの格納単位が形成されるため、結果として1つのデータブロックのデータサイズは最大で、4×2画素×4=32画素のRGBA画像のデータサイズと等しくなる。冗長性を利用して圧縮した場合は、さらに1/2または1/4のデータ量となる。
ここで上述の、圧縮パターンおよび分割パターンを表す識別番号を圧縮データに含める手法について説明する。識別番号は上記のとおり「0」〜「14」の15種類のため、4ビットの情報となる。一方、図14に示すように、1つの格納単位にはY画像のパレットが4つ格納されている。各パレットには輝度Yの代表値である2値が格納されている。そこで、4つのパレットそれぞれが保持する2値の格納順とその大小関係によって識別情報の4ビットの情報を表す。
図15はパレットによって識別番号を表す手法を説明するための図である。同図のように4つのY画像のパレットの1つであるパレット315を例にとると、図の手前の先頭アドレスから順に2つの代表値「P0」、「P1」を格納する。このとき値「P0」と「P1」の大小関係によって1ビットの情報を表す。例えばP0>P1であれば1、それ以外であれば0といった規則をあらかじめ設定しておく。
1つの格納単位にはY画像の4つのパレットが含まれるため、それを全て利用し、ビット列に対応するパレットの順序を決めておくことにより、4ビットの情報を表すことができる。パレットが保持する2値は、どちらが先のアドレスに格納されていても値の大小により最小値か最大値かは明かなためデコード処理には影響しない。そこで参照画像圧縮部122は、各データブロックの圧縮パターンおよび分割パターンから1つの識別番号を決定したら、各パレットにおいて大きい方の値をどちらのアドレスに格納するかを当該識別番号に応じて決定する。
なお1つのデータブロックが複数の格納単位を形成するときは全ての格納単位が同じ識別情報を表すようにする。このようにすることで、圧縮パターンや分割パターンの情報を圧縮データの本体と別に生成する必要がなくなり、全体としてデータサイズを抑えることができる。また対応する領域の圧縮データごとに埋め込むため参照する際の効率がよい。
次に差分画像の圧縮データ生成処理について図16から図19を参照して説明する。図16は図4のS16において差分画像生成部124が差分画像を生成する手順を模式的に示している。図16において図4と同じデータについては同じ符号で表している。まずタイル画像列生成部120が生成した256×256画素のYCbCr画像列252と、それを用いて参照画像圧縮部122が生成した参照画像の圧縮データ260を入力データとする。
差分画像生成部124は、まず参照画像の圧縮データ260を復号する(S40)。具体的には同じタイル画像列に含まれるデータブロックを構成する格納単位のデータを全て読み出し、パレットとインデックスからY画像とCbCr画像を復元する。このとき画素の配列はY画像のパレットで表される識別番号を取得することによって特定できる。
つまり識別番号によって、冗長性を利用した圧縮のパターンと量子化単位を形成したときの分割パターンがデータブロックごとに判明するため、それに基づき、まず分割処理の逆の処理によって量子化単位に含まれる画素を連結する。そしてCbCr画像を縦横2倍に拡大してY画像と合成することによりYCbCr画像を生成する。次に図6で示した圧縮処理の逆の処理によってフレーム数を増加させたり画像を拡大したりする。そのようにして復元したデータブロックをさらに連結することにより、128×128画素×4フレームのYCbCr画像列400を生成する。
続いて128×128画素×4フレームのYCbCr画像列400を縦横2倍に拡大して256×256画素×4フレームのYcbCrのタイル画像列402を生成する(S42)。そしてタイル画像列生成部120が生成した元のタイル画像のYCbCr画像列252と各画素値の差をとることにより差分画像列262を生成する(S44)。
S40、S42は基本的には図4、図5で示した参照画像の圧縮処理の手順と逆の処理であるが、当該圧縮処理は、画像縮小、平均化によるフレーム数削減、量子化、を行う不可逆圧縮であるため、復元したタイル画像列402には誤差が含まれる可能性がある。この誤差を差分画像として表すことにより圧縮率と画質を両立させる。
差分画像はこのように、画像表示時に参照画像の圧縮データを復号、伸張した際、圧縮によって生じる誤差を補完するためのものである。したがってS40、S42において差分画像生成部124が参照画像の圧縮データ260を復号、伸張する処理は、画像表示時と同じにする必要がある。一方、本実施の形態では、圧縮データ260を量子化単位でまとめることにより、量子化単位でのデータアクセスを可能にし、ひいては無駄なデータロードやデコードを行わずに空間方向、時間方向のランダムアクセスを実現する。
したがって画像表示時に、ある量子化単位を復号、伸張するために、別の量子化単位を参照する必要が発生するのは好ましくない。そこで、S40において量子化単位のデータを接続したあとCbCr画像を縦横2倍に拡大する処理、圧縮パターンに従い画像を拡大してデータブロックを元のサイズに戻す処理、および、S42においてデータブロックを連結してなるYCbCr画像列400を縦横2倍に拡大する処理において、画素間に新たな画素を生成する際は、量子化単位の分割パターンによらず当該量子化単位内で拡大処理が完結するようにする。
具体的には、拡大対象の画像を2×2画素に分割し、それらの間の画素の画素値は内挿によって算出し、その外側の画素値は外挿によって算出する。図17はこのように画像を拡大する処理を模式的に示している。図17の左は拡大前の画像を2×2画素に分割してなる領域404の各画素を白丸で示している。この画素を用いて4×4画素で構成される拡大領域406を生成する場合、元から画素値を有する白丸の間の画素(網掛けした丸)の画素値は白丸の画素の画素値を内挿して得る。
元から画素値を有する白丸の外側の画素(黒丸)の画素値は、白丸の画素やその内挿値などを利用して外挿することによって得る。量子化単位はどの分割パターンであっても、2×2画素の領域を含むため、このように拡大処理を行うことにより、分割パターンによらず量子化単位内で拡大処理が完結することになる。したがって上述のように差分画像生成部124がCbCr画像を拡大する際やYCbCr画像を拡大する際にも、このように拡大処理を行う。なお外挿値には画素値の階調によって下限値および上限値を設定しておき、画素値が階調の範囲を超えないように調整する。参照画像のデコード処理の詳細は、画像表示を行う装置におけるデコード処理と同様なため、後に説明する。
差分画像圧縮部126は、このようにして生成した差分画像を圧縮する(図4のS18)。この処理は基本的には図5で示した参照画像の圧縮処理と同様である。以後、参照画像と異なる点に着目して説明する。まず図5のS30と同様、差分画像列262を空間方向で参照画像と同じサイズに分割して処理単位のデータブロックとする。ここでは図6で示したように8×8画素×4フレームを1つのデータブロックとする。ただし参照画像と異なり差分画像は256×256画素の画像のままであるため、縦横それぞれの方向に32分割されることになる。
さらに差分画像については、画素値が0とみなされるか否かの判定をデータブロックごとに行い、該当するデータブロックはNULLブロックとする。例えばデータブロックを構成する全画素値に対し、その絶対値と、あらかじめ定めたしきい値との比較を行い、全ての画素値の絶対値がしきい値以下である場合、当該データブロックをNULLブロックとする。
NULLブロックとされたデータブロックは、画像表示時のデコードにおいて全ての画素値が0とされるようにする。例えば全ての画素値を0とする1つの格納単位を生成しておき、最終的な圧縮データを生成する際、NULLブロックとされた全てのデータブロックと当該格納単位とを対応づけておく。NULLブロックであっても他のデータブロックと同様に処理できるようにしておくと、画像表示時のデコード処理が単純化され処理効率がよい。
差分画像は上述のとおり、参照画像を圧縮することによって生じる誤差を表した画像であるため、画素値が0に近くなる可能性が高い。例えば青空や芝生など画像周波数の低い領域ではこのような誤差が生じにくい。このような画像の性質を上記処理によって見出し、差分画像の画素値を0として扱うことにより、画像表示時の処理効率を向上させるとともに、データの圧縮率を上げることができる。
次に差分画像圧縮部126は、図5のS32と同様、データブロックごとに空間方向、時間方向の冗長性の有無を確認し、冗長性があると判定された場合はその方向に対しデータを圧縮する。この処理は参照画像と同様でよい。続いて差分画像圧縮部126は、図5のS34と同様、YCbCr画像をY画像、CbCr画像に分解し、CbCr画像を縮小したうえ、分割パターンのいずれかで時空間分割して同じ画素数からなる量子化単位を形成し、それぞれのデータを量子化する。
このときの分割処理は参照画像と同様でよい。一方、差分画像は上述のとおり、画素値の範囲が参照画像より限定的となる性質を有するため、それを利用してパレットが保持する情報を異ならせる。具体的には、パレットが保持する値の階調を減らす代わりに、代表値を2値ではなく4値保持するようにする。すなわち参照画像のパレットが1要素につき8ビット×2値=2バイトであったのに対し、差分画像のパレットは、同じ2バイトを利用して4ビット×4値を表す。インデックスは、当該4値のいずれかを指定する情報を画素ごとに保持する。このようにすることで、画像表示時のデコードにおいて、第1中間値、第2中間値を求めるための線形補間を行わずにすみ、処理効率が向上する。また、第1中間値、第2中間値の選択肢が、最大値と最小値の2:1と1:2の補間値に限定されなくなる。よって、より柔軟な第1中間値、第2中間値の選択が可能になり、画質の向上が期待できる。
パレットが保持する4値は、図8および図9で示したY画像、CbCr画像の最小値、最大値、第1中間値、第2中間値に基づき決定する。具体的には、これらの4値を1要素につき4ビットのデータサイズで表すことができるようであればパレットにはその4値をそのまま格納する。一方、4値を表すのに必要な階調が4ビットに収まらない場合は、全ての値を1/2倍、1/4倍、1/8倍としていき4ビットに収まる倍率を決定し、当該倍率をかけたうえでパレットに格納する。なおCbCr画像のパレットは(Cb,Cr)の2要素からなるベクトル値のため4値がそれぞれ8ビットで表される。
画像表示時には、4ビットの値を8ビットに変換して用いる。このときパレットの値から最小値、最大値、第1中間値、第2中間値を復元するため、かけるべき倍率をパレットごとに示す必要がある。上述のように、1倍、1/2倍、1/4倍、1/8倍した値のいずれかをパレットに格納する場合、復元するための倍率として1倍、2倍、4倍、8倍、の4種類の選択肢が生じる。そこで当該4種類を識別する「0」〜「3」の識別番号を表す2ビットの情報を圧縮データに埋め込む。図18は倍率の識別番号をパレットによって表す手法を説明するための図である。
図中、1つのパレット408には図の手前の先頭アドレスから順に、Y画像は4ビット、CbCr画像は2要素の合計8ビットの4つの値「P0」、「P1」、「P2」、「P3」を格納する。このとき前半の2つの値「P0」と「P1」の大小関係によって1ビット、後半の2つの値「P2」と「P3」の大小関係によって1ビットの合計2ビットで、識別番号を表す。例えばP0>P1であれば1、それ以外であれば0、P2>P3であれば1、それ以外であれば0、といった規則をあらかじめ設定しておく。
なおCbCr画像の場合は、ベクトル値(Cb,Cr)の要素である、Cbに対する4ビットの値とCrに対する4ビットの値をビット列でつなげた8ビットの情報を「P0」、「P1」、「P2」、「P3」とする。したがって(Cb,Cr)の対によって8ビットの値を取得できれば、各値が連続した8ビットの領域に格納されていなくてもよい。CbCr画像はベクトル値によって4値を表すため、合計8ビットの情報で比較することによりどちらか一方の要素が同じ値であっても8ビットの値が等しくなることはない。
上記の合計2ビットの情報により「0」〜「3」の識別番号をパレットごとに表すことができる。パレットが保持する4値は、格納順によらず値の大きさにより最小値、最大値、第1中間値、第2中間値が判別できるためデコード処理には影響しない。画像表示時のデコードにおいては、まずこの識別番号を特定し(S50)、4値P0、P1、P2、P3を4ビットから8ビットに変換する際に、その識別情報が表す倍率を乗算してP0’、P1’、P2’、P3’を求めることによって最小値、最大値、第1中間値、第2中間値を復元する(S52)。
このように差分画像のY画像のパレットには、それぞれ4ビットの4値が格納されている。参照画像のパレットでは8ビットの2値の格納順とその大小関係によって、圧縮パターンおよび分割パターンを表す「0」〜「14」の15種類の識別番号を表した。図19は差分画像のY画像のパレットによってさらに当該15種類の識別番号を表す手法を説明するための図である。図18で説明したように、1つのパレット408には4つの値「P0」、「P1」、「P2」、「P3」を格納する。ここで「P0」と「P1」のビット列をつなげた8ビットの値(図中、「P01」と表記)と、「P1」と「P2」のビット列をつなげた8ビットの値(図中、「P23」と表記)の大小関係によって1ビットの情報を表す。
例えばP01>P23であれば1、それ以外であれば0といった規則をあらかじめ設定しておく。この処理は、結果的にはパレットの上位アドレス8ビットの値と下位アドレス8ビットの大小関係を比較している、という点で、参照画像の場合と同じ処理となっている。したがって参照画像の場合と同様、4つのパレットで、圧縮パターンおよび分割パターンを表す識別番号を表すことができる。差分画像圧縮部126はパレットの値を元の値に復元するための倍率を表す識別番号と、圧縮パターンおよび分割パターンを表す識別番号の双方を表すように、Y画像のパレットに格納する4値の格納順を決定する。
次に圧縮データ生成部128が最終的な圧縮データを生成する処理について説明する。図20は図4のS20において、参照画像の圧縮データ260と差分画像の圧縮データ266を含む最終的な圧縮データ268を生成する処理手順を模式的に示している。上述のとおり参照画像と差分画像の圧縮データは、それぞれデータブロックの単位で形成される。
すなわちこれまで述べた例の場合、元の動画像のフレーム列を256×256画素に分割してなるタイル画像列4フレームに対し、参照画像のデータブロック配列410、差分画像のデータブロック配列411が生成される。参照画像のデータブロック配列410は16×16個のデータブロックの圧縮データ、差分画像のデータブロック配列411は32×32個のデータブロックの圧縮データからなる。各データブロックの圧縮データのサイズは可変長であり格納単位1、2、4個分のいずれかとなる。なお差分画像はその値によってデータブロックをNULLブロックとする。
各格納単位は上記のとおり4×2画素のRGBA画像のデータと同じデータサイズとなる。圧縮データ生成部128は、データブロック配列における所定の順序で各データブロックの格納単位の圧縮データを、格納単位ごとに所定方向に連結する。そしてデータブロックの配列上の位置と、各格納単位の格納場所とを対応づけるポインタ情報を付加する。図20の圧縮データ412の例では、参照画像データに対するポインタ情報414、差分画像データに対するポインタ情報416、参照画像の圧縮データ418、差分画像のNULLブロック用の圧縮データ420、差分画像の圧縮データ422の順でラスタ方向に並べている。
参照画像データに対するポインタ情報414、差分画像データに対するポインタ情報416も格納単位と同様に4バイト分のデータを縦に2つならべながら横に伸張していく。このときのポインタ情報の格納順を、対応するデータブロックの配列上の順序と同じにすることにより、結果としてデータブロックの配列上の位置と、各格納単位の格納場所とをポインタによって対応づけていることになる。
このように圧縮データを生成していくと、幅が2画素の帯状の行を縦方向につなげた画像平面を生成していることになる。そのため圧縮データ412を画像平面と捉え、ポインタ情報を、各データブロックに対応する格納単位の領域の左上の座標で表す。例えば当該座標をUV座標で表しU座標、V座標をそれぞれ1バイトで表すとすると、1つの格納単位へのポインタは合計2バイトの情報となる。結果として圧縮データ412を画像平面としたときの1画素分で、2つのデータブロックのポインタを表すことができる。
元の動画像が8000×4000画素程度の高精細画像であっても、圧縮データ412自体を256×256画素以下に抑えることにより、ポインタ情報は上記のとおりU座標、V座標各1バイトで表すことができる。この場合、参照画像データに対するポインタ情報414は、16×16=256個のデータブロックを示すための128画素分の領域、差分画像データに対するポインタ情報416は、32×32=1024個のデータブロックを示すための512画素分の領域となる。なおポインタ情報がU座標、V座標各1バイトで表せなくなった場合には、それぞれ2バイトとするなど、より多くのデータ長で表すようにしてもよい。あるいはポインタ情報が1バイトに収まるように、分割するタイルのサイズを変更してもよい。
例えば参照画像データに対するポインタ情報414の領域うち、ある画素424が表す2つのポインタ情報はそれぞれ、参照画像の圧縮データ418に含まれる、ある格納単位の領域の左上の座標を示している。これらの格納単位は、ポインタに対応するデータブロックを構成する格納単位のうち先頭の格納単位である。また差分画像データに対するポインタ情報416のうち、ある画素426が表す2つのポインタ情報は、一方がNULLブロック用の圧縮データ420を、他方が差分画像の圧縮データ422に含まれる、ある格納単位の領域の左上の座標を示している。この格納単位も、ポインタに対応するデータブロックを構成する格納単位のうち先頭の格納単位である。
NULLブロック用の圧縮データ420は、必要に応じてタイル画像列4フレームごとに1つ準備しておくことにより、複数のデータブロックに対応づけられるようにする。このような圧縮データを、全てのタイル画像列に対し所定枚数のフレーム(上記の例では4フレーム)ごとに生成することにより、元の動画像全体を同様に圧縮することができる。各タイル画像列の圧縮データは、それをフレームとして時系列順に圧縮データ記憶部134に格納する。また元の動画像のフレームにおけるタイル画像の位置と、各タイル画像列の圧縮データとの対応づけを行っておく。例えば位置を表す識別情報をタイル画像列の圧縮データに付与しておく。このようにすることで、動画の圧縮データ全体から必要なデータを特定することができる。
次に、これまで述べた手法により圧縮されたデータを用いて画像表示を行う技術について説明する。本技術において画像表示を行う装置も、図1で示した画像処理装置10と同様の構成で実現できる。以下、制御部100の構成に主眼を置き説明する。図21は本実施の形態において、画像表示機能を有する制御部100bの構成を詳細に示している。制御部100bを含む画像処理装置10は、基本的には上記のように圧縮された動画像データの少なくとも一部を用いて画像表示を行う装置であるが、動画を表示する目的や表示態様は特に制限されない。
例えばハードディスクドライブ50などに格納された映画や撮影動画、リアルタイムで配信される動画ストリーム、コンピュータグラフィックスにおけるビデオテクスチャなどのいずれでもよい。また同時に複数の動画を表示してもよいし、表示画像の一部の領域のみに用いられるのでもよい。従ってハードディスクドライブ50には、上述のように圧縮した動画データのほか、様々な機能を実現するためのプログラムやその他の画像データなど各種データが格納されていてよい。
制御部100bは、入力装置20からユーザが入力した情報を取得する入力情報取得部502、ユーザの入力などに応じて情報処理を行う情報処理部504、必要な動画像の圧縮データをロードするロード部506、画像フレームを描画する表示画像処理部508を含む。
入力情報取得部102は、ユーザが入力装置20に対して入力した、画像処理装置10が備える機能の開始/終了、当該機能によって受け付けられる各種入力情報を取得し、情報処理部504に通知する。画像処理装置10が備える機能は上記の通り、動画像表示機能のほかゲームや通信など様々考えられる。したがって入力情報取得部502が取得する入力情報も当該機能に応じて様々変化する。
本実施の形態では動画像における空間方向、時間方向のランダムアクセスを容易に実現する。したがって、表示中の動画像の拡大、縮小、スクロールなどユーザの視点移動操作や、ビデオテクスチャをマッピングしたコンピュータグラフィックスを表示するゲームに対する操作など、動画の表示領域変化を伴う操作を受け付ける態様は特に有効である。
情報処理部504は、画像処理装置が備える機能に応じた情報処理を、入力情報取得部502が取得した入力情報に基づき実施する。例えば視点移動操作を受け付ける場合は、その操作量に基づき表示領域の移動量を時間ステップごとに求め次の表示領域の座標を順次算出する。ゲームを実行する場合はその内容に応じて3次元オブジェクトを発生させたりゲームプログラムに則りステージを進捗させたりする。これらの処理は一般的な技術を適用できるため、以後、動画像の表示に係る処理に着目し、その他の処理については適宜説明を省略する。
情報処理部504は上記のような情報処理を行った結果、動画像を表示する必要が生じた場合や、動画像における表示領域を変化させる必要が生じた場合などに、表示領域のフレーム座標を計算し、ロード部506および表示画像処理部508に通知する。本実施の形態では、タイル画像単位、所定フレーム数単位で個別の圧縮データを生成しているため、ハードディスクドライブ50からメインメモリ60へのロードもこの単位で行える。
そのため情報処理部504は、動画像の表示を開始した時点からの経過時間を計測し、フレーム座標の情報とともに、経過時間に基づくフレーム番号も通知する。これによりロード部506および表示画像処理部508は、ロード対象やデコード対象の圧縮データを、それまで当該タイル画像が処理対象であったか否かに関わらず特定できる。ロード部506は、情報処理部504からの通知に基づき、必要な圧縮データがメインメモリ60に格納されているか否かを確認する。
ここで必要な圧縮データとは、次の表示に必要な圧縮データのほか、以後必要と予測される圧縮データも含む。後者のデータは、画角が一定の場合、時間軸上で後のフレームのうち、同じ表示領域とその周囲の所定範囲の領域を表すデータである。一方、視点が移動するなどして画角が変化している場合は、後のフレームのうち、当該画角の変化から予測される移動先の表示領域とその周囲の所定範囲の領域を表すデータである。ロード部506は、必要なデータがメインメモリ60に格納されていない場合、当該圧縮データをハードディスクドライブ50からロードし、メインメモリ60に格納する
表示画像処理部508は、データ読み出し部510、デコード部512、描画部514を含む。データ読み出し部510は、情報処理部504から通知されたフレーム座標に基づき、次の表示領域のデータを含むタイル画像列の圧縮データをその識別情報などにより特定し、メインメモリ60から読み出す。デコード部512は、フレーム座標に基づき、読み出した圧縮データに含まれるポインタ情報から、描画に必要なデータブロックの圧縮データを特定し、デコードする。
この処理は基本的には上記の圧縮処理を逆に辿る処理となるが、画素値の復元は表示領域を表す画素ごとに行える。描画部514は、デコードされたデータを用いて、表示処理部44のフレームメモリに表示画像全体を描画する。この処理はフレーム座標で表される領域からなる表示画像を描画する処理でもよいし、ビデオテクスチャのマッピング処理を含む描画処理でもよい。
図22は主にデコード部512が行うデコード処理の手順を示すフローチャートである。まず読み出されたタイル画像の圧縮データに含まれるポインタ情報のうち、参照画像データに対するポインタ情報を参照し、表示領域の描画に必要な参照画像のデータを含むデータブロックの圧縮データを特定する(S60)。なお上述のとおり圧縮は可変長で行われているため、複数の格納単位が該当する場合がある。
次に参照画像の圧縮データから該当する圧縮データを読み出し、各格納単位に含まれるY画像の4つのパレットのそれぞれが表す2値の大小関係から、圧縮パターンと分割パターンを表す4ビットの識別番号を取得する(S62)。当該識別番号から、表示領域を構成する画素と、圧縮データにおける各量子化単位に含まれるインデックスとの対応が判明するため、それに基づき必要なデータを保持する量子化単位を特定する(S64)。
次に、パレットが表す2値を線形補間することによって得られる4値からインデックスが指す値を取得することにより、各画素のY値、Cb値、Cr値を求める。そしてCbCr画像を縦横2倍に拡大してYCbCr画像を生成したうえ、圧縮パターンのいずれかで圧縮した場合は逆方向に拡大、あるいはフレームを挿入する。フレームの挿入は、平均画像をコピーすることによって行える。そしてYCbCr画像をさらに縦横2倍に拡大することにより、元のタイル画像サイズのYCbCr画像の参照画像を生成する(S66)。このときの拡大処理は、上述のように2×2画素単位で処理が完結するように、内挿および外挿によって行う。
次に差分画像について同様の処理を行い、差分画像の圧縮データからYCbCr画像の差分画像を生成する(S68のN、S60〜S66)。ただしS62において、圧縮パターンと分割パターンを表す識別情報は、Y画像の4つのパレットのそれぞれが表す4値のうち前半アドレスの2値、後半アドレスの2値をそれぞれつなげた値の大小関係から取得する。またS66において、各画素のY値、Cb値、Cr値を求める際は、まずパレットが表す4ビットの4値を8ビットに変換し、前半アドレスの2値、後半アドレスの2値の、それぞれの大小関係の組み合わせが表す識別情報に基づく倍率をかける。そして各画素のインデックスが指す値を取得することによりY値、Cb値、Cr値を求める。
またポインタがNULLブロック用の圧縮データを示している場合は、対応する領域の全画素を0とする。ただしこの処理は、上述のとおりNULLブロック用の圧縮データをその他のデータブロックの圧縮データと同じ構造とすることでその他の圧縮データと同様に行えるため、特別な処理は必要ない。このようにして、表示領域を表す参照画像と差分画像のYCbCr画像がそれぞれ生成できたら(S68のY)、それらを対応する画素ごとに加算し(S70)、色空間をRGBに変換することにより、表示領域のRGB画像を生成する(S72)。
本実施の形態において生成する圧縮データは、各データブロックに対応するデータのサイズが可変長であるため、格納単位の格納領域を表すポインタをデータブロックごとに示す必要がある。上記のとおり、256×256画素のタイル画像4フレーム分に対し、参照画像のポインタは256個、差分画像のポインタは1024個の合計1280個である。1つのポインタを2バイトのUV座標で表すとすると、ポインタとして必要なデータサイズは、元のタイル画像の1画素あたり、(2バイト×1280個)/(256×256画素×4フレーム)≒0.08ビットと、微少である。
圧縮データは、4フレーム分のデータブロックが、4×2画素×4バイト=32バイトの格納単位の1個、2個、あるいは4個分によって表される。最も圧縮された場合、参照画像データを格納単位1個、差分画像データをNULLブロック用圧縮データとして、1つのデータブロックを表すことができる。参照画像は元の画像を1/4に縮小した画像であること、NULLブロック用圧縮データは他と共有できること、を考慮すると、そのデータサイズは1画素あたり、(32バイト×1×0.25+0バイト)/(8×8画素×4フレーム)=0.25ビットである。一方、最も圧縮されなかった場合、参照画像データおよび差分画像データともに、格納単位4個で1つのデータブロックが表される。したがってこの場合のデータサイズは1画素あたり、(32バイト×4×0.25+32バイト×4)/(8×8画素×4フレーム)=5ビットである。
すなわち本実施の形態によって生成、デコードする圧縮データは、1画素あたり約0.33〜5.08ビットのサイズとなる。S3TCによってテクスチャ圧縮されたデータは4ビット/画素のデータサイズであるため、本実施の形態による動画像の圧縮データはそれに匹敵するかそれより低いデータサイズとなる。結果として十分に低いメモリコストによって空間方向、時間方向にランダムアクセスが可能な動画像を表示できる。
なお本実施形態の圧縮データの圧縮率は、時空間方向の冗長性や量子化誤差の生じやすさなど、実際の画像に応じて変化する。一方、このような要因による時空間方向の圧縮可否やNULLブロック化の可否を判定する基準となるしきい値を調整することにより、画像起因の圧縮率低下を吸収することができる。表示時の装置環境と画像に応じてしきい値を適応的に変化させることにより、与えられた環境を生かしながら最大限の画質で動画像を表示することができる。例えば表示装置のリソース量や通信環境と最適なしきい値とを対応づけたテーブルを準備しておき、実際の表示環境に合わせたしきい値で圧縮データを生成してもよい。
これまでの説明において処理対象とした動画データは、各時刻に対してフレームを1つとしていたが、各時刻の画像を異なる解像度で表す複数のフレーム列で構成してもよい。そしてユーザの視点移動要求に応じて用いるフレーム列を切り替えるようにすると、動画像でありながら解像度の可変範囲を格段に広げることができる。このとき複数の解像度のフレーム列を、解像度順に階層化してなる階層構造とする。以後、このような階層構造を有する動画像データを「階層データ」とも呼ぶ。
図23は動画像を階層データとする場合のデータ構造を概念的に示している。階層データは、図の上から下へ向かうz軸方向に、第0階層30、第1階層32、第2階層34および第3階層36からなる階層構造を有する。なお同図においては4階層のみ示しているが、階層数はこれに限定されない。上述のとおり各階層は1つの動画像を異なる解像度で表したフレームを時系列順に並べたフレーム列で構成される。同図においては各階層を4枚のフレームで象徴的に表しているが、フレームの数は動画像の再生時間やフレームレートによって当然異なる。
階層データは例えば4分木の階層構造を有し、第0階層30は1個のタイル画像、第1階層32は2×2個のタイル画像、第2階層34は4×4個のタイル画像、第3階層は8×8個のタイル画像、などとする。このとき第N階層の解像度(Nは0以上の整数)は、画像平面上で左右(x軸)方向、上下(y軸)方向ともに、第(N+1)階層の解像度の1/2となる。階層データは、最高解像度をもつ第3階層36の動画像をもとに、各フレームを複数段階に縮小するなどして生成することができる。
動画表示時の視点座標およびそれに対応する表示領域は、図23に示すように、画像の左右方向を表すx軸、上下方向を表すy軸、解像度を表すz軸からなる仮想的な3次元空間で表すことができる。なお各階層はそれぞれが動画像を表すフレーム列で構成されるため、実際に表示される画像は表示が開始されてからの時間にも依存し、同図では階層ごとに時間軸tを表している。
画像処理装置10は、基本的には時間軸tに沿っていずれかの階層のフレーム列を所定のフレームレートで順次描画していく。例えば第0階層30の解像度の動画像を基準画像として表示する。その過程で入力装置20から表示領域移動要求信号が供給されたら、当該信号から表示画像の変更量を導出し、その変更量を用いて次のフレームの、仮想空間における4隅の座標(フレーム座標)を導出する。そして当該フレーム座標に対応する画像フレームを描画する。この際、z軸に対し階層の切り替え境界を設けておくことにより、フレーム座標のzの値に応じて適宜、フレーム描画に用いる動画データの階層を切り替える。
例えば表示画像に求められる解像度が、第1階層32と第2階層34の間の切り替え境界と、第2階層34と第3階層36の間の切り替え境界の間にある場合に、第2階層34の画像データを利用して表示領域を描画する。第1階層32と第2階層34の間の切り替え境界と、第2階層34の間の解像度では、第2階層34の画像フレームを縮小して表示する。第2階層34と第3階層36の間の切り替え境界と、第2階層34の間の解像度では、第2階層34の画像フレームを拡大して表示する。
階層データは、上述と同様にタイル画像列単位で圧縮して圧縮データとする。ただしこの場合、タイル画像列の圧縮データは、画像平面上の位置のみならず、解像度方向の位置とも対応づけておく。
このような階層データを用いて、表示中の動画の表示領域の移動要求を拡大縮小を含めて受け付ける場合、本実施の形態のデータ圧縮技術を適用すると、必要なタイル画像の圧縮データのみをロードし、必要な領域のみをデコードすればよくなる。そのため画像全体をロードしたりデコードしたりするのと比較し、ロード処理、デコード処理のコスト、転送コスト、メモリコストの無駄を省くことができる。例えば第3階層36のデータを用いて画像表示を行う場合、表示領域はそのごく一部となるため、上記コストの節約効果が特に高い。結果として、表示する解像度によらず常に同じコストで処理を進捗させることができ、円滑な動画表示を行える。
また階層データを用いて動画像を表示中、視点移動要求によって用いる階層を切り替える場合、それまでデコード対象とされていなかった切り替え後の階層に対して次の時刻のデータを瞬時に取得する必要がある。本実施の形態の圧縮データは4フレームごとなど所定のフレーム数ごとに独立した圧縮データであるため、時間方向のランダムアクセス性にも優れ、このような階層切り替えをシームレスに行える。
以上述べた本実施の形態によれば、動画像を構成するフレームを所定のサイズで分割してなるタイル画像を所定のフレーム数分まとめてタイル画像列とする。さらに当該タイル画像列を空間分割してなるデータブロック単位で圧縮データを生成する。このようにすることで、動画表示時のロード処理およびデコード処理に際し、空間方向及び時間方向の双方向で圧縮データへのランダムアクセスを可能とする。結果としてロード処理やデコード処理のコストが軽減されるうえ、画像をメモリ上に展開する必要がなくなるため、メモリコストも軽減される。
従来の動画圧縮技術では、動画をビデオテクスチャとしてマッピングした画像を表示する際、そのテクスチャ領域がごく僅かであったり、ユーザの操作やゲームの進捗で画角から外れても、次の表示に備えて表示されない動画をデコードし続ける必要があった。本実施の形態では実際の表示面積に応じた分のデータのみを処理すればよいため、処理効率を格段に向上させることができる。したがって、スタジアムの広告看板、ディスプレイ、空、遠くの風景など、ゲームや映像の背景として動画を合成させたい場合などには特に効果的である。
また動画に限らず、相互に冗長性があるような画像列を圧縮対象としてもよい。例えばカメラアレイを用いて撮影されたデータ(Light Fieldデータ)においては、隣接するカメラの撮影画像間に冗長性が期待できる。よって、複数の撮影画像を時間軸上に配置した動画として、効率的な圧縮が期待できる。また、見える角度によって表示するテクスチャ画像を変更する技術(View Dependent Texture)にも応用可能である。すなわち、表示される可能性のある画像を時間軸上に配置した動画として圧縮し、レンダリング時には任意の画像をランダムアクセスして表示する。
また各タイル画像列は、それを縮小した参照画像と、参照画像の圧縮データをデコードした画像と元のタイル画像との差を表す差分画像とに分けて圧縮する。各画像は空間方向、時間方向の冗長性を確認して縮小したりフレーム数を減らしたりしたうえ、量子化単位に分割し、各画素値をパレットおよびインデックスで表すことにより量子化する。
パレットおよびインデックスの概念はS3TCの圧縮手法で導入されているが、本実施の形態ではパレットの2値が輝度Y、色差Cb、色差Crのいずれに対しても8ビットを保持するため画質が劣化しにくい。またY画像列、およびCbCr画像列に対し別個に量子化を行うため、RGBの3次元パラメータを量子化するのと比較してパラメータの次元数が小さく量子化誤差が少ない。また符号化単位を形成する際の空間分割数、時間分割数の組み合わせを変化させ、画像の持つ空間方向の冗長性、時間方向の冗長性に適応するデータ構造を柔軟に提供できる。
また差分画像はその画素値の範囲が限定的となるため、画素値を0と見なせる場合はNULLブロックとすることで、複数のデータブロックで圧縮データを共有する。さらに空間方向、時間方向の冗長性を利用した圧縮や量子化単位を形成する分割パターンに係る情報をY画像のパレットが保持する値の大小比較によって表現する。これらのことにより、実際の画像に応じて画質を維持しながら可能な限り圧縮率を向上させることができる。また画像表示時には、一般的なテクスチャマッピングの処理と同様に描画処理を行えるため高いスループットを見込める。結果として演算コストとメモリコストを抑えつつ高精細な動画を表示できる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば本実施の形態では元の画像を所定の倍率で縮小した参照画像を生成して圧縮し、最終的な圧縮データに含めた。この参照画像をそのまま用いることにより、ミップマップ2レベル分の描画を実施できる。また参照画像の縮小率を上げることで、圧縮率をさらに向上させてもよい。このとき例えば参照画像を第1レベル、それを拡大して差分画像と加算することによって得られる画像を第2レベル、第1レベルの参照画像をさらに拡大して差分画像と加算することによって得られる画像を第3レベル、というように、1つの参照画像を利用して3レベル以上のミップマップを構成してもよい。
この場合、第1レベルの参照画像、第2レベルの差分画像、第3レベルの差分画像、というように、参照画像と差分画像を独立して扱えるように圧縮単位を形成してもよい。また第2レベルの画像を第3レベルの参照画像とするなど、第1レベルの参照画像を間接的に利用してもよい。このようにすることで、ミップマップを導入した画像描画技術を、ランダムアクセス可能な状態で、かつデータサイズの増大なく実現できる。
10 画像処理装置、 12 表示装置、 20 入力装置、 44 表示処理部、 50 ハードディスクドライブ、 60 メインメモリ、 100 制御部、 120 タイル画像列生成部、 122 参照画像圧縮部、 124 差分画像生成部、 126 差分画像圧縮部、 128 圧縮データ生成部、 130 動画データ記憶部、 132 分割パターン記憶部、 134 圧縮データ記憶部、 502 入力情報取得部、 504 情報処理部、 506 ロード部、 508 表示画像処理部、 510 データ読み出し部、 512 デコード部、 514 描画部。

Claims (22)

  1. 動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するタイル画像列生成部と、
    複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する参照画像圧縮部と、
    前記タイル画像列を構成する各タイル画像と、前記参照画像圧縮部が生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する差分画像生成部と、
    前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する差分画像圧縮部と、
    前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像単位で生成し記憶装置に出力する圧縮データ生成部と、
    を備えることを特徴とする動画圧縮装置。
  2. 前記参照画像圧縮部および前記差分画像圧縮部は圧縮処理において、前記データブロックに含まれる各画像を所定の倍率で一旦縮小して拡大した画像と、元の画像との画素値の差分の合計が所定のしきい値以下であるとき、当該倍率で前記データブロックに含まれる画像を縮小し、
    前記圧縮データ生成部は、前記動画圧縮データに、前記タイル画像におけるデータブロックの位置と、それに対応する前記参照画像および前記差分画像の圧縮データとを対応づけるポインタ情報を含めることを特徴とする請求項1に記載の動画圧縮装置。
  3. 前記参照画像圧縮部および前記差分画像圧縮部は圧縮処理においてさらに、前記データブロックに含まれる画像列を所定数ごとに平均化した画像と、元の画像との画素値の差分の合計が所定のしきい値以下であるとき、元の画像を当該平均化した画像で代替させることにより画像数を削減することを特徴とする請求項2に記載の動画圧縮装置。
  4. 前記差分画像圧縮部は、前記データブロックを構成する画素値の絶対値が所定のしきい値以下であるとき、当該データブロックの全ての画素値を0とするように決定し、
    前記圧縮データ生成部は、前記動画圧縮データにおいて、画素値を0とする圧縮データが、複数のデータブロックで共有されるように、データブロックと圧縮データを対応づけることを特徴とすることを特徴とする請求項1から3のいずれかに記載の動画圧縮装置。
  5. 前記参照画像圧縮部は、前記参照画像の画像平面および時間軸において分割してなるデータブロックの所定数の画素ごとに、画素値のうち2値を代表値として保持するパレットと、当該代表値を線形補間して定まる複数の中間値および前記代表値のいずれかを指定する情報を画素値の代わりに保持するインデックスを生成することにより画素値を量子化することを特徴とする請求項1から4のいずれかに記載の動画圧縮装置。
  6. 前記差分画像圧縮部は、前記差分画像のデータブロックの所定数の画素ごとに、画素値のうち代表値である4値をそれぞれ1/N倍(Nは自然数)した4値を保持するパレットと、パレットが保持する4値のいずれかを指定する情報を画素値の代わりに保持するインデックスを生成することにより画素値を量子化することを特徴とする請求項1から5のいずれかに記載の動画圧縮装置。
  7. 前記差分画像圧縮部は、前記代表値を復元するために前記パレットが保持する値に乗算すべき倍率Nを表す識別番号を、当該パレットが保持する4値のうち前半アドレスに格納された2値の大小関係とその格納順、および後半アドレスに格納された2値の大小関係とその格納順によって表すことを特徴とする請求項6に記載の動画圧縮装置。
  8. 前記参照画像圧縮部および前記差分画像圧縮部は、前記インデックスと元のデータブロックの画素の位置との対応関係を特定するための識別番号を、対応するパレットの前半アドレスに格納された値と後半アドレスに格納された値の大小関係によって表すことを特徴とする請求項5から7のいずれかに記載の動画圧縮装置。
  9. 前記差分画像生成部は、前記参照画像の圧縮データをデコードする処理において画像を拡大する際、前記パレットおよび前記インデックスを生成する単位である前記所定数の画素で構成される画像内の配列以下の単位で内挿および外挿することにより新たな画素を生成することを特徴とする請求項5から8のいずれかに記載の動画圧縮装置
  10. 動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する情報処理部と、
    前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列さらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記情報処理部が算出した情報に基づき前記複数フレームごとのタイル画像単位で前記動画圧縮データをメモリにロードするロード部と、
    メモリにロードした前記動画圧縮データのうち、前記情報処理部が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する表示画像処理部と、
    描画された画像を順次表示する表示部と、
    を備えることを特徴とする画像処理装置。
  11. 前記参照画像の圧縮データと前記差分画像の圧縮データは前記データブロック単位で可変長に圧縮されたデータであり、
    前記表示画像処理部は、前記動画圧縮データに含まれる、前記タイル画像におけるデータブロックの位置と、それに対応する前記参照画像の圧縮データおよび前記差分画像の圧縮データとを対応づけるポインタ情報を参照して、表示すべき領域に対応するデータブロックの参照画像の圧縮データと差分画像の圧縮データを特定することを特徴とする請求項10に記載の画像処理装置。
  12. 前記差分画像の圧縮データは、所定数の画素ごとに、画素値のうち代表値である4値をそれぞれ1/N倍(Nは自然数)した4値を保持するパレットと、パレットが保持する4値のいずれかを指定する情報を画素値の代わりに保持するインデックスとで構成され、
    前記表示画像処理部は、前記代表値を復元するために前記パレットが保持する値に乗算すべき倍率Nを表す識別番号を、当該パレットが保持する4値のうち前半アドレスに格納された2値の大小関係とその格納順、および後半アドレスに格納された2値の大小関係とその格納順によって特定することにより、前記代表値を復元することを特徴とする請求項10または11に記載の画像処理装置。
  13. 前記表示画像処理部は、前記差分画像の圧縮データにおける前記インデックスと元の画素の位置との対応関係を特定するための識別番号を、対応するパレットの前半アドレスに格納された値と後半アドレスに格納された値の大小関係によって特定し、それに基づき表示すべき領域を構成する画素のインデックスを特定することを特徴とする請求項12に記載の画像処理装置。
  14. 前記参照画像の圧縮データと前記差分画像の圧縮データは、所定数の画素ごとに画素値を量子化したデータであり、
    前記表示画像処理部は、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードする処理において画像を拡大する際、量子化する単位である前記所定数の画素で構成される画像内の配列以下の単位で内挿および外挿することにより新たな画素を生成することを特徴とする請求項10から13のいずれかに記載の画像処理装置。
  15. 動画圧縮装置において、記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成するステップと、
    複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成するステップと、
    前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成するステップと、
    前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成するステップと、
    前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像単位で生成し記憶装置に出力するステップと、
    を含むことを特徴とする動画圧縮方法。
  16. 画像処理装置において、動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出するステップと、
    前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列さらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出するステップで算出した情報に基づき前記複数フレームごとのタイル画像単位で前記動画圧縮データをメモリにロードするステップと、
    メモリにロードした前記動画圧縮データのうち、前記算出するステップで算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画するステップと、
    描画された画像を順次表示するステップと、
    を含むことを特徴とする画像処理方法。
  17. 記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成する機能と、
    複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する機能と、
    前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する機能と、
    前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する機能と、
    前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像単位で生成し記憶装置に出力する機能と、
    をコンピュータに実現させることを特徴とするコンピュータプログラム。
  18. 動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する機能と、
    前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列さらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出する機能が算出した情報に基づき前記複数フレームごとのタイル画像単位で前記動画圧縮データをメモリにロードする機能と、
    メモリにロードした前記動画圧縮データのうち、前記算出する機能が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する機能と、
    描画された画像を順次表示する機能と、
    をコンピュータに実現させることを特徴とするコンピュータプログラム。
  19. 記憶装置に格納された動画データを構成するフレーム列を画像平面において分割してなるタイル画像列を生成する機能と、
    複数フレームごとの前記タイル画像列をさらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データを生成する機能と、
    前記タイル画像列を構成する各タイル画像と、生成した参照画像の圧縮データをデコードして得られる、各タイル画像に対応する画像と、の差分を表す差分画像からなる差分画像列を生成する機能と、
    前記差分画像列を画像平面および時間軸において分割してなるデータブロックの単位で圧縮して差分画像の圧縮データを生成する機能と、
    前記参照画像の圧縮データおよび前記差分画像の圧縮データを含む動画圧縮データを、前記複数フレームごとのタイル画像単位で生成し記憶装置に出力する機能と、
    をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とする記録媒体。
  20. 動画データを構成するフレーム列のうち表示すべきフレームと当該フレーム内の表示すべき領域とを逐次算出する機能と、
    前記フレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列さらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を、前記複数フレームごとのタイル画像列単位で対応づけた動画圧縮データを記憶した記憶装置から、前記算出する機能が算出した情報に基づき前記複数フレームごとのタイル画像単位で前記動画圧縮データをメモリにロードする機能と、
    メモリにロードした前記動画圧縮データのうち、前記算出する機能が算出した、表示すべきフレームのうち表示すべき領域を含む動画圧縮データを読み出し、前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算することにより、表示すべき領域の画像を順次描画する機能と、
    描画された画像を順次表示する機能と、
    をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とする記録媒体。
  21. 動画データを構成するフレーム列を画像平面において分割してなるタイル画像列のうち複数フレームごとのタイル画像列さらに画像平面および時間軸において分割してなるデータブロックごとに、当該データブロックに含まれる画素値を量子化してなる参照画像の圧縮データと、
    前記参照画像の圧縮データをデコードして得られる画像とそれに対応する前記タイル画像との差分を表す差分画像を、前記データブロックの単位で圧縮してなる差分画像の圧縮データと、を前記複数フレームごとのタイル画像単位で対応づけ、
    画像処理装置において、表示すべきフレームと当該フレーム内の表示すべき領域の情報に基づき前記複数フレームごとのタイル画像単位でロードされ、表示すべきフレームのうち表示すべき領域に対応するデータブロックの前記参照画像の圧縮データと前記差分画像の圧縮データをデコードして加算されることにより、表示すべき領域の画像を順次描画するのに用いられることを特徴とする動画圧縮ファイルのデータ構造。
  22. 請求項21に記載のデータ構造を有する動画圧縮ファイルを記録した記録媒体。
JP2011286969A 2011-12-27 2011-12-27 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造 Active JP5722761B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011286969A JP5722761B2 (ja) 2011-12-27 2011-12-27 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
PCT/JP2012/006822 WO2013099076A1 (ja) 2011-12-27 2012-10-24 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
EP12862302.2A EP2800369B1 (en) 2011-12-27 2012-10-24 Moving image compressing apparatus, image processing apparatus, moving image compressing method, image processing method, and data structure of moving image compressed file
US14/366,498 US9693072B2 (en) 2011-12-27 2012-10-24 Moving picture compression apparatus, image processing apparatus, moving picture compression method, image processing method, and data structure of moving picture compression file
CN201280070242.7A CN104137548B (zh) 2011-12-27 2012-10-24 运动图像压缩装置、图像处理装置、运动图像压缩方法和图像处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011286969A JP5722761B2 (ja) 2011-12-27 2011-12-27 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造

Publications (2)

Publication Number Publication Date
JP2013135463A JP2013135463A (ja) 2013-07-08
JP5722761B2 true JP5722761B2 (ja) 2015-05-27

Family

ID=48696630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011286969A Active JP5722761B2 (ja) 2011-12-27 2011-12-27 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造

Country Status (5)

Country Link
US (1) US9693072B2 (ja)
EP (1) EP2800369B1 (ja)
JP (1) JP5722761B2 (ja)
CN (1) CN104137548B (ja)
WO (1) WO2013099076A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101921935B1 (ko) * 2012-02-16 2018-11-27 삼성전자 주식회사 카메라의 동영상 촬영장치 및 방법.
US10313684B2 (en) * 2014-06-20 2019-06-04 Qualcomm Incorporated Copy from previous rows for palette mode coding
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US10212434B2 (en) * 2015-01-30 2019-02-19 Qualcomm Incorporated Palette entries coding in video coding
US9900624B2 (en) * 2015-02-05 2018-02-20 Mediatek Inc. Methods and apparatus of decoding process for palette syntax
GB2539241B (en) * 2015-06-11 2019-10-23 Advanced Risc Mach Ltd Video processing system
CN105306834A (zh) * 2015-10-10 2016-02-03 上海慧体网络科技有限公司 一种采用运动视频分析技术判断比赛精彩程度的方法
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
JP6689656B2 (ja) * 2016-04-18 2020-04-28 ルネサスエレクトロニクス株式会社 画像処理システム、画像処理方法及び画像送信装置
CN106375763B (zh) * 2016-11-25 2019-06-07 合肥工业大学 一种基于Slepian-Wolf技术的视频加解密方法及其加解密系统
WO2018147123A1 (ja) * 2017-02-13 2018-08-16 ソニー株式会社 画像処理装置および画像処理方法
CN107801026B (zh) * 2017-11-09 2019-12-03 京东方科技集团股份有限公司 图像压缩方法及装置、图像压缩及解压缩系统
CN109996075B (zh) * 2017-12-29 2022-07-12 华为技术有限公司 一种图像解码方法及解码器
KR20190137260A (ko) * 2018-06-01 2019-12-11 삼성전자주식회사 이미지 부호화 장치 및 이미지 복호화 장치
US10454496B1 (en) * 2018-11-29 2019-10-22 Armand Prieditis Method and system for facilitating compression
CN111311720B (zh) * 2018-12-12 2023-05-23 网易(杭州)网络有限公司 一种纹理图像的处理方法和装置
US11076152B2 (en) * 2019-03-18 2021-07-27 Sony Group Corporation Quantization step parameter for point cloud compression
CN110119263B (zh) * 2019-05-09 2022-07-19 豪威触控与显示科技(深圳)有限公司 一种显示器阵列中显示图像的方法及装置
FR3104886B1 (fr) * 2019-12-13 2022-08-12 Valeo Vision Procédé de gestion des données d'image et dispositif d'éclairage automobile
CN113821178A (zh) * 2021-11-23 2021-12-21 中航金网(北京)电子商务有限公司 一种数据处理方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936673A (en) * 1995-05-26 1999-08-10 Intel Corporation Temporal tile staggering for block based video compression
JP3872592B2 (ja) * 1997-03-27 2007-01-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法、記録媒体、オーサリングプログラムデータが記録されたコンピュータ可読記録媒体並びにオーサリングシステム
SG64486A1 (en) 1997-03-27 1999-04-27 Sony Corp Method and apparatus for information processing computer readable medium and authoring system
JP3237582B2 (ja) * 1997-08-28 2001-12-10 富士ゼロックス株式会社 画像処理装置及び画像処理方法
JP3347684B2 (ja) * 1999-03-01 2002-11-20 株式会社九州エレクトロニクスシステム リアルタイム動画転送方法
US20030053662A1 (en) * 2001-09-19 2003-03-20 Koninklijke Philips Electronics N.V. Method and apparatus for digital encoding and operator identification using stored user image
JP2003174649A (ja) * 2001-12-05 2003-06-20 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像符号化方法
AU2005236997B2 (en) * 2004-04-23 2010-04-29 Hitoshi Kiya Moving picture data encoding method, decoding method, terminal device for executing them, and bi-directional interactive system
JP2006121645A (ja) * 2004-09-24 2006-05-11 Fuji Photo Film Co Ltd 画像圧縮装置および画像圧縮プログラム
AU2006223416A1 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
CN100459711C (zh) * 2005-09-09 2009-02-04 北京中星微电子有限公司 一种视频压缩方法及使用该方法的视频系统
US8019167B2 (en) * 2007-01-03 2011-09-13 Human Monitoring Ltd. Compressing high resolution images in a low resolution video
WO2010038337A1 (ja) * 2008-09-30 2010-04-08 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法
US20100265525A1 (en) * 2009-04-20 2010-10-21 Kabushiki Kaisha Toshiba Image processing apparatus, image forming apparatus, and image processing method
WO2011052117A1 (ja) * 2009-10-26 2011-05-05 株式会社ソニー・コンピュータエンタテインメント 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
CN103098466B (zh) 2010-09-13 2016-08-17 索尼电脑娱乐公司 图像处理装置和图像处理方法
US20120075346A1 (en) * 2010-09-29 2012-03-29 Microsoft Corporation Low Complexity Method For Motion Compensation Of DWT Based Systems

Also Published As

Publication number Publication date
CN104137548B (zh) 2018-02-06
EP2800369B1 (en) 2019-04-03
US20150124883A1 (en) 2015-05-07
CN104137548A (zh) 2014-11-05
EP2800369A4 (en) 2015-08-19
US9693072B2 (en) 2017-06-27
WO2013099076A1 (ja) 2013-07-04
EP2800369A1 (en) 2014-11-05
JP2013135463A (ja) 2013-07-08

Similar Documents

Publication Publication Date Title
JP5722761B2 (ja) 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US9607357B2 (en) Image processing device for displaying moving image and image processing method thereof
US11595653B2 (en) Processing of motion information in multidimensional signals through motion zones and auxiliary information through auxiliary zones
JP5826730B2 (ja) 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US8204324B2 (en) Method and apparatus for compressing and decompressing data
US11792405B2 (en) Codec
US7764833B2 (en) Method and apparatus for anti-aliasing using floating point subpixel color values and compression of same
CN107465939B (zh) 视频图像数据流的处理方法及装置
JPH1188700A (ja) カラー画像信号の符号化方法、復号化方法およびカラー画像処理装置
JP5544253B2 (ja) 画像処理装置、画像処理方法、および動画像ファイルのデータ構造
JP2009077183A (ja) データ圧縮装置、データ圧縮・伸張システム、およびデータ圧縮方法
JP5484276B2 (ja) データ圧縮装置、データ復号装置、データ圧縮方法、データ復号方法、および圧縮動画像ファイルのデータ構造
JP2010276686A (ja) 画像制御装置
WO2024018239A1 (en) Video encoding and decoding
Nawandhar 3D Graphics Texture Compression and Its Recent Trends
JP2015103969A (ja) 画像符号化装置及び画像符号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150326

R150 Certificate of patent or registration of utility model

Ref document number: 5722761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250