説明

画像処理装置および方法

【課題】多系統の画像が符号化されたコードストリームの利便性を向上させることができるようにする。
【解決手段】プログレッション決定部183は、入力される各系統のコードストリーム112についてプログレッション構造の解析結果や、外部から供給されるプログレッション構造の指定等に基づいて、統合後のコードストリームのプログレッション構造を決定する。統合部184は、その決定に従って、プログレッション構造を有するように各コードストリームを統合する。プログレッション情報生成部185は、統合後のコードストリーム194のプログレッション情報を生成し、所定の位置に埋め込む。本発明は、例えば、画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および方法に関し、特に、多系統の画像が符号化されたコードストリームの利便性を向上させることができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
最近、立体視(所謂3D画像表示)対応の映画が普及しつつある。例えば、3D表示可能な映画(所謂3D映画)が積極的に制作されるようになり、従来の2D表示のみ可能な映画(所謂2D映画)との大きな差別化になっている。3D映画の場合、コンテンツ(画像データ等)は、MPEG-4 AVCの拡張フォーマットであるMVC(Multi-view Video Coding)規格によって高能率に圧縮されて、Blu-Ray Disc(登録商標)等の記録媒体に記録される。
【0003】
ユーザは、家庭用のBlu-Ray Discプレイヤでそのコンテンツを再生し、立体視用のメガネ(所謂3Dメガネ)をかけて視聴することで、家庭でいながらにして3D映画を楽しむことができる。
【0004】
このような3D映画等の立体視用のコンテンツ(3Dコンテンツ)が急速に普及しつつある。3Dコンテンツの画像としては、人間の目の両眼視差を利用したステレオ画が主流である。これは、左眼用の画像と右眼用の画像を、ユーザのそれぞれの目に別々に見させることにより、ユーザに視差を感じさせ、被写体を立体的に認知させるものである。
【0005】
しかしながら、上述した両眼視差による立体視では、任意の方向からの立体視を実現することはできない。これを実現するためには被写体画像の奥行き方向のデータ情報(Depth_Map)を抽出する必要がある。
【0006】
画像データから画像処理・分析技術を用いて、大まかな奥行き情報を自動的に抽出する研究は盛んに行われている(例えば、非特許文献1および非特許文献2参照)。これらの技術や、比較的容易とされる複数のカメラから画像内の被写体の奥行き情報を抽出する技術によって、2眼のみならず複数の自由視点からの立体画像が生成できる足がかりになる。
【0007】
しかしながら、2眼ステレオ画像ならば元々のデータ量には限界があるが、複数眼の画像データ及びそれらの奥行きデータをトータルすると、膨大なデータ量になる。従ってこれらのデータをいかに高能率に圧縮するかが重要になってくる。
【0008】
例えば、ステレオ画像の場合、左右各系統の画像をエンコードして生成された符号化コードストリームは、2系統となる。同様に、マルチビューの場合、そのビューの数だけ符号化コードストリームが存在することになる。そこで、1つの方法として、これらの多系統のコードストリームを1つの符号化コードストリームに統合することが考えられる。このようにすることにより、符号化効率を向上させることができる。
【0009】
ところで、JPEG2000はデジタルシネマ規格のコーデックとして採用されているのみならず、セキュリティやアーカイブ、医用画像、ブロードキャスティングなど広範囲に使われているISOの静止画国際規格である。このJPEG2000の豊富な機能の1つにスケラビリティがある。これは1つの符号化コードストリームを複数の同一カテゴリに属するものに分ける機能である。これによって符号化コードストリーム内のプログレッション(順番)を並び替えることで、解像度や画質等のスケラビリティ(復号画像の拡張性)を実現することができる。従って、コードストリームをより多様な用途で使用することができるようなり、コードストリームの利便性が向上する。
【先行技術文献】
【非特許文献】
【0010】
【非特許文献1】Fast Approximate Energy Minimization via Graph Cuts”IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.23, No.11, November 2001,
【非特許文献2】“Stereo Matching Using Belief Propagation”IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.25, No.7, July 2003
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、多系統(マルチビュー)のコードストリームを統合する場合における、復号画像の拡張性を実現するためのデータ構造であるプログレッションについて定義されていなかった。したがって、多系統のコードストリームを統合して1本のコードストリームを生成する場合、このプログレッションの機能を使用することができず、コードストリームの利便性を向上させることができない恐れがあった。
【0012】
本発明は、このような状況に鑑みて提案されたものであり、多系統の画像を符号化して1本のコードストリームを生成する場合のプログレッションを定義することにより、多系統の画像が符号化されたコードストリームの利便性を向上させることができるようにすることを目的とする。
【課題を解決するための手段】
【0013】
本発明の一側面は、画像が符号化された多系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析する解析手段と、前記解析手段による解析結果に従って前記多系統のコードストリームの統合後のプログレッション構造を決定する決定手段と、前記決定手段により決定された前記統合後のプログレッション構造に従って、前記多系統のコードストリームを統合し、前記プログレッション構造を有する1系統のコードストリームを生成する統合手段とを備える画像処理装置である。
【0014】
前記コードストリームは、レイヤ、解像度レベル、コンポーネント、およびポジションについてのプログレッション構造を有することができる。
【0015】
前記決定手段は、前記解析手段により解析された前記プログレッション構造に、系統についてのプログレッション構造を加えるように、前記統合後のプログレッション構造を決定することができる。
【0016】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を有する場合、系統、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0017】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を有する場合、レイヤ、系統、解像度レベル、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0018】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を有する場合、系統、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0019】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を有する場合、解像度レベル、系統、レイヤ、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0020】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を有する場合、系統、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0021】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を有する場合、解像度レベル、ポジション、系統、コンポーネント、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0022】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を有する場合、系統、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0023】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を有する場合、ポジション、系統、コンポーネント、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0024】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を有する場合、系統、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0025】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を有する場合、コンポーネント、系統、ポジション、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とすることができる。
【0026】
前記統合後のプログレッション構造に関する情報であるプログレッション情報を生成し、前記コードストリームに付加するプログレッション情報生成手段をさらに備えることができる。
【0027】
前記プログレッション情報生成手段は、前記プログレッション情報として、前記統合後のプログレッション構造の階層構造を、統合後の前記コードストリームに含まれる、JPEG2000のCODマーカセグメント中のSGcod、SPcoc、およびPpocの少なくともいずれか1つにおいて定義することができる。
【0028】
前記プログレッション情報生成手段は、前記プログレッション情報として、前記統合手段により統合されたコードストリームの系統数を、統合後の前記コードストリームに含まれる、JPEG2000のSIZマーカセグメント中のRsizにおいて定義することができる。
【0029】
前記プログレッション構造に関する外部からの指定を受け付ける指定受付手段をさらに備え、前記決定手段は、前記解析手段による解析結果、および、前記指定受付手段により受け付けられた前記外部からの指定に従って、前記統合後のプログレッション構造を決定することができる。
【0030】
各系統の前記画像を、前記プログレッション構造を有するように符号化する符号化手段をさらに備え、前記解析手段は、前記符号化手段により前記画像が符号化されて生成された各系統の前記コードストリームのプログレッション構造を解析することができる。
【0031】
各系統の前記画像から、前記画像の奥行き方向の位置を示す奥行きデータを生成する奥行きデータ生成手段をさらに備え、前記符号化手段は、前記奥行きデータ生成手段により生成された前記奥行きデータをさらに符号化し、前記統合手段は、前記符号化手段により生成された前記奥行きデータのコードストリームを、1系統のコードストリームとして、他の多系統とのコードストリームとともに統合することができる。
【0032】
本発明の一側面は、また、画像処理装置の画像処理方法であって、解析手段が、画像が符号化された多系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析し、決定手段が、解析結果に従って前記多系統のコードストリームの統合後のプログレッション構造を決定し、統合手段が、決定された前記統合後のプログレッション構造に従って、前記多系統のコードストリームを統合し、前記プログレッション構造を有する1系統のコードストリームを生成する画像処理方法である。
【0033】
本発明の他の側面は、画像が符号化された多系統のコードストリームが統合されて生成された1系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析する解析手段と、前記解析手段により解析された前記プログレッション構造に含まれる、系統についてのプログレッション構造に従って、前記統合後の1系統のコードストリームを、前記多系統のコードストリームに分離する分離手段とを備える画像処理装置である。
【0034】
前記分離手段により分離された各系統のコードストリームを復号する復号手段をさらに備えることができる。
【0035】
前記分離手段により分離された各系統のコードストリームについて、前記プログレッション構造に関する情報であるプログレッション情報を生成し、前記コードストリームに付加するプログレッション情報生成手段をさらに備えることができる。
【0036】
前記統合後の1系統のコードストリームは、系統、レイヤ、解像度レベル、コンポーネント、およびポジションについてのプログレッション構造を有することができる。
【0037】
本発明の他の側面は、また、画像処理装置の画像処理方法であって、解析手段が、画像が符号化された多系統のコードストリームが統合されて生成された1系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析し、分離手段が、解析された前記プログレッション構造に含まれる、系統についてのプログレッション構造に従って、前記統合後の1系統のコードストリームを、前記多系統のコードストリームに分離する画像処理方法である。
【0038】
本発明の一側面においては、画像が符号化された多系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造が解析され、その解析結果に従って多系統のコードストリームの統合後のプログレッション構造が決定され、その決定された統合後のプログレッション構造に従って、多系統のコードストリームが統合され、プログレッション構造を有する1系統のコードストリームが生成される。
【0039】
本発明の他の側面においては、画像が符号化された多系統のコードストリームが統合されて生成された1系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造が解析され、その解析されたプログレッション構造に含まれる、系統についてのプログレッション構造に従って、統合後の1系統のコードストリームが、多系統のコードストリームに分離される。
【発明の効果】
【0040】
本発明によれば、画像を処理することができる。特に、多系統の画像が符号化されたコードストリームの利便性を向上させることができる。
【図面の簡単な説明】
【0041】
【図1】本発明を適用した画像符号化装置の主な構成例を示すブロック図である。
【図2】エンコード部の主な構成例を示すブロック図である。
【図3】サブバンドの構成例を示す図である。
【図4】サブバンドの構成例を示す図である。
【図5】各サブバンド中のコードブロックの例を示す図である。
【図6】ビットプレーンの例を説明する図である。
【図7】符号化パスの例を説明する図である。
【図8】係数の走査の例を説明する図である。
【図9】レイヤを説明する図である。
【図10】レイヤの構成例を説明する図である。
【図11】コードストリーム生成部の主な構成例を示すブロック図である。
【図12】プログレッション機能の例を説明する図である。
【図13】プログレッション機能の他の例を説明する図である。
【図14】JPEG2000のSGcodパラメータを説明する図である。
【図15】JPEG2000のプログレッションオーダのパラメータの例を示す図である。
【図16】本発明を適用したコードストリームの復号順の例を説明する図である。
【図17】本発明を適用したコードストリームの復号順の他の例を説明する図である。
【図18】本発明を適用したコードストリームの復号順の、さらに他の例を説明する図である。
【図19】本発明を適用したコードストリームの復号順の、さらに他の例を説明する図である。
【図20】プログレッションオーダの拡張例を示す図である。
【図21】JPEG2000のケイパビリティRサイズパラメータの定義を説明する図である。
【図22】本発明を適用したビュー数の定義の方法の例を説明する図である。
【図23】多系統入力符号化処理の流れの例を説明するフローチャートである。
【図24】符号化処理の流れの例を説明するフローチャートである。
【図25】コードストリーム生成処理の流れの例を説明するフローチャートである。
【図26】本発明を適用した画像復号装置の主な構成例を示すブロック図である。
【図27】コードストリーム解析部の主な構成例を示すブロック図である。
【図28】デコード部の主な構成例を示すブロック図である。
【図29】多系統出力復号処理の流れの例を説明するフローチャートである。
【図30】解析処理の流れの例を説明するフローチャートである。
【図31】復号処理の流れの例を説明するフローチャートである。
【図32】本発明を適用した画像符号化装置の主な構成例を示すブロック図である・
【図33】奥行きデータの例を説明する図である・
【図34】多系統入力符号化処理の流れの他の例を説明するフローチャートである。
【図35】本発明を適用したネットワークシステムの主な構成例を説明する図である。
【図36】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0042】
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化装置)
4.第4の実施の形態(ネットワークシステム)
5.第5の実施の形態(パーソナルコンピュータ)
【0043】
<1.第1の実施の形態>
[画像符号化装置の構成]
図1は、本発明を適用した画像符号化装置の主な構成例を示すブロック図である。
【0044】
図1に示される画像符号化装置100は、複数の入力系統を有し(多系統入力)、各入力系統より入力した多系統の画像データを、それぞれ符号化してコードストリームを生成し、さらにそのコードストリームを統合して、1本のコードストリームを生成する。その際、画像符号化装置100は、JPEG2000(Joint Photographic Experts Group 2000)のような、復号画像の拡張性を実現するためのプログレッション機能を有するようにコードストリームを生成する。つまり、画像符号化装置100は、より多様な用途に使用可能な、利便性の高いコードストリームを生成する。
【0045】
図1に示されるように。画像符号化装置100は、X本の系統の画像データを入力する。画像符号化装置100は、エンコード部101−1乃至エンコード部101−X、並びに、コードストリーム生成部102を有する。
【0046】
エンコード部101−1乃至エンコード部101−Xは、X系統の入力画像データ(入力画像データ111−1乃至入力画像データ111−X)をそれぞれ符号化し、X本のコードストリーム(コードストリーム112−1乃至コードストリーム112−X)を生成する。
【0047】
コードストリーム生成部102は、エンコード部101−1乃至エンコード部101−Xの出力(コードストリーム112−1乃至コードストリーム112−X)を受け付け、外部からの指定113に基づいて、それらを統合して1本のコードストリームを生成し、出力する(コードストリーム114)。
【0048】
以下において、エンコード部101−1乃至エンコード部101−Xを互いに区別する必要のない場合、単にエンコード部101と称する。また、入力画像データ111−1乃至入力画像データ111−Xを互いに区別する必要のない場合、単に入力画像データ111と称する。さらに、コードストリーム112−1乃至コードストリーム112−Xを互いに区別する必要のない場合、単にコードストリーム112と称する。
【0049】
各エンコード部101は、後述するように、画質や解像度等について、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を有するようにコードストリーム112を生成する。コードストリーム生成部102は、外部からの指定113に基づいて、それらのコードストリーム112が有するプログレッション構造に加え、さらに、多系統についてのプログレッション構造(系統に関する拡張性を実現するデータ構造、つまり、どの系統を復号するか、どの系統をどの順に復号するか等を制御することができるデータ構造)を有するようにコードストリーム114を生成する。
【0050】
なお、以上においては、エンコード部101を各系統に設けるように説明したが、1つのエンコード部101が複数の系統の入力画像データ111をそれぞれ符号化することができるようにしてもよい。例えば、画像符号化装置100が1個のエンコード部101を有するようにし、そのエンコード部101が、X系統の入力画像データ111をそれぞれ符号化し、X系統のコードストリームを生成するようにしてもよい。
【0051】
[エンコード部の構成]
図2は、図1のエンコード部101の主な構成例を示すブロック図である。エンコード部101は、JPEG2000方式と同様のプログレッション構造を有するコードストリームを生成するように符号化を行うエンコーダである。エンコード部101がJPEG2000方式により画像を符号化するようにしてもよい。
【0052】
図2に示されるように、エンコード部101は、DCレベルシフト部131、ウェーブレット変換部132、量子化部133、コードブロック化部134、およびビットプレーン展開部135を有する。
【0053】
DCレベルシフト部131は、後段のウェーブレット変換を効率的に行うために、矢印161のようにエンコード部101に入力された画像データ(図1の入力画像データ111)のDC成分のレベルシフトを行う。例えば、RGB信号が正の値(符号無しの整数)を持っている。そこで、DCレベルシフト部131は、そのことを利用し、原信号のダイナミックレンジを半分にするレベルシフトを行うことで、圧縮効率の向上を図る。従って、YCbCr信号の色差データCbや色差データCrの様に符号(正負両方あり)の整数値を持つ信号を原信号とする場合には、このレベルシフトは行われない。
【0054】
ウェーブレット変換部132は、通常低域フィルタと高域フィルタから構成されるフィルタバンクによって実現される。また、デジタルフィルタは通常複数タップ長のインパルス応答(フィルタ係数)を有するので、ウェーブレット変換部132は、フィルタリングが行えるだけの入力画像を予めバッファリングするバッファを有する。
【0055】
ウェーブレット変換部132は、矢印162のようにDCレベルシフト部131より出力された画像データを、フィルタリングに最低限必要なデータ量以上取得すると、そのDCレベルシフト後の画像データに対して、所定のウェーブレット変換フィルタを用いてフィルタリングを行い、ウェーブレット係数を生成する。なお、ウェーブレット変換部132は、画像の垂直方向および水平方向のそれぞれに対して、画像データを低域成分と高域成分に分離するフィルタリングを行う。
【0056】
そして、ウェーブレット変換部132は、このようなフィルタリング処理を、垂直方向および水平方向の両方において低域成分として分離されたサブバンドに対して再帰的に所定回数繰り返す。これは、例えば図3に示されるように、画像のエネルギーの多くが低域成分に集中しているからである。
【0057】
図3は、サブバンドの構成例を示す図である。図3に示されるように、分割レベル数1の状態においても分割レベル数3の状態においても、画像のエネルギーの多くは、低域成分に集中している。
【0058】
図4は、分割レベル数4のウェーブレット変換処理により生成されるサブバンドの構成例を示す図である。
【0059】
この場合、ウェーブレット変換部132は、まず、画像全体をフィルタリングし、サブバンド1LL(図示せず)、1HL、1LH、および1HHを生成する。次に、ウェーブレット変換部132は、生成されたサブバンド1LLに対して再度フィルタリングを行い、2LL(図示せず)、2HL、2LH、および2HHを生成する。さらに、ウェーブレット変換部132は、生成されたサブバンド2LLに対して再度フィルタリングを行い、3LL、3HL、3LH、および3HHを生成する。さらに、ウェーブレット変換部132は、生成されたサブバンド3LLに対して再度フィルタリングを行い、4LL、4HL、4LH、および4HHを生成する。
【0060】
このように、分割レベル数4まで分析フィルタリングが行われると、13個のサブバンドが生成される。図4に示されるように、分割レベルが1つ上位に進むごとに、サブバンドのサイズは、縦方向および横方向にそれぞれ2分の1となる。
【0061】
つまり、例えば横方向に1920画素の画像のベースバンドの画像データが1回分析フィルタリングされると、横方向に960画素のサブバンドが4つ(1LL,1HL,1LH,1HH)生成される。さらに、サブバンド1LLが1回分析フィルタリングされると、横方向に480画素のサブバンドが4つ(2LL,2HL,2LH,2HH)が生成される。さらに、サブバンド2LLが回分析フィルタリングされると、横方向に240画素のサブバンドが4つ(3LL,3HL,3LH,3HH)が生成される。さらに、サブバンド3LLが1回分析フィルタリングされると、横方向に120画素のサブバンドが4つ(4LL,4HL,4LH,4HH)が生成される。
【0062】
なお、ウェーブレット変換の分割レベル数は任意である。
【0063】
ウェーブレット変換部132は、フィルタリングにより得られたウェーブレット係数を、サブバンド毎に、矢印163に示されるように量子化部133に供給する。量子化部133は、供給されたウェーブレット係数を量子化する。この量子化の方法は任意であるが、量子化ステップサイズで除算するスカラ量子化が一般的である。量子化部133は、量子化により得られた量子化係数を、矢印164に示されるように、コードブロック化部134に供給する。なお、これより後段においては、ウェーブレット係数の代わりに量子化係数が供給されることになるが、この量子化係数もウェーブレット係数の場合と基本的に同様に扱われる。したがって、以下においては、必要でない限りその点についての説明は省略し、単に係数または係数データと称する。
【0064】
なお、エンコード部101が、復号処理により元のデータを完全に復元可能な可逆符号化方式により画像データを符号化する場合、この量子化部133の処理は省略され、矢印165に示されるように、ウェーブレット変換部132の出力がコードブロック化部134に供給される。
【0065】
ウェーブレット係数は、コードブロック化部134で、エントロピ符号化の処理単位である所定の大きさのコードブロックに分割される。図5は各サブバンド中のコードブロックの位置関係を示したものである。例えば64×64画素程度のサイズのコードブロックが、分割後のすべてのサブバンド中に生成される。後段の各処理部は、このコードブロック毎に処理を行う。
【0066】
コードブロック化部134は、矢印166に示されるように、各コードブロックをビットプレーン展開部135に供給する。ビットプレーン展開部135は、係数データを、ビットの位毎のビットプレーンに展開する。
【0067】
ビットプレーンは、所定の数のウェーブレット係数よりなる係数群を、1ビット毎、つまり位毎に分割(スライス)したものである。つまり、ビットプレーンは、その係数群の互いに同一の位のビット(係数ビット)の集合である。
【0068】
図6にその具体例を示す。図6の左図は縦4個、横4個の計16個の係数を示している。この16個の係数のうち、絶対値が最大のものは13で、2進数で1101と表現される。ビットプレーン展開部135は、このような係数群を、絶対値を示す4枚のビットプレーン(絶対値のビットプレーン)と、符号を示す1枚のビットプレーン(符号のビットプレーン)に展開する。つまり、図6中左の係数群は、図6中右に示されるように、4枚の絶対値のビットプレーンと1枚の符号のビットプレーンに展開される。ここで、絶対値のビットプレーンの要素はすべて0か1の値をとる。また、符号を示すビットプレーンの要素は、係数の値が正であることを示す値、係数の値が0であることを示す値、または係数の値がマイナスを示す値のいずれかをとる。
【0069】
エンコード部101は、さらに、ビットモデリング部136、算術符号化部137、符号量加算部138、レート制御部139、ヘッダ生成部140、およびパケット生成部141を有する。
【0070】
ビットプレーン展開部135は、展開したビットプレーンを、矢印167に示されるように、ビットモデリング部136に供給する。
【0071】
ビットモデリング部136および算術符号化部137は、EBCOT(Embedded Coding with Optimized Truncation)部151として動作し、入力される係数データに対して、JPEG2000規格で定められたEBCOTと呼ばれるエントロピ符号化を行う。EBCOTは、所定の大きさのブロック毎にそのブロック内の係数の統計量を測定しながら符号化を行う手法である。
【0072】
ビットモデリング部136は、JPEG2000規格で定められた手順に従って、係数データに対してビットモデリングを行い、矢印168に示されるように、制御情報、シンボル、およびコンテキスト等の情報を算術符号化部137に供給する。算術符号化部137は、係数のビットプレーンを算術符号化する。
【0073】
コードブロックの縦横のサイズは4から256まで2のべき乗で、通常使用される大きさは、32×32、64×64、128×32等がある。係数値がnビットの符号付き2進数で表されていて、bit0からbit(n−2)がLSBからMSBまでのそれぞれのビットを表すとする。残りの1ビットは符号を示す。符号ブロックの符号化は、MSB側のビットプレーンから順番に、次の3種類の符号化パスによって行われる。
【0074】
(1)Significant Propagation Pass
(2)Magnitude Refinement Pass
(3)Cleanup Pass
【0075】
3つの符号化パスの用いられる順序は、図7で示される。最初にBit-plane(n-1)(MSB)がCleanup Passによって符号化される。続いて順次LSB側に向かい、各ビットプレーンの符号化が、3つの符号化パスをSignificant Propagation Pass、Magnitude Refinement Pass、Cleanup Passの順序で用いて行われる。
【0076】
ただし、実際にはMSB側から何番目のビットプレーンで初めて1が出てくるかをヘッダに書き、MSB側から連続するオール0のビットプレーン(ゼロビットプレーンと称する)は符号化しない。この順序で3種類の符号化パスを繰返し用いて符号化し、任意のビットプレーンの、任意の符号化パス迄で符号化を打ち切ることにより、符号量と画質のトレードオフを取る(レート制御を行う)。
【0077】
次に、係数の走査(スキャニング)について図8を用いて説明する。コードブロックは高さ4個の係数毎にストライプ(stripe)に分けられる。ストライプの幅はコードブロックの幅に等しい。スキャン順とは、1個のコードブロック内の、すべての係数をたどる順番で、コードブロック中では上のストライプから下のストライプへの順序、ストライプの中では、左の列から右の列へ向かっての順序、列の中では上から下へという順序である。各符号化パスにおいてコードブロック中のすべての係数が、このスキャン順で処理される。
【0078】
以下、3つの符号化パスについて述べる。以下はいずれもJPEG-2000規格書(参考文献:ISO/IEC 15444-1, Information technology-JPEG 2000, Part 1:Core coding system)に記述されている内容である。
【0079】
(1)Significance Propagation Pass(SPパス):
あるビットプレーンを符号化するSignificance Propagation Passでは、8近傍の少なくとも1つの係数が有意(significant)であるようなnon-significant係数のビットプレーンの値を算術符号化する。その符号化したビットプレーンの値が1である場合は、符号が+であるか、−であるかを続けてMQ符号化する。
【0080】
ここでsignificanceというJPEG2000特有の用語について説明する。significanceとは、各係数に対して符号化器が持つ状態で、significanceの初期値はnon-significantを表す0、その係数で1が符号化されたときにsignificantを表す1に変化し、以降常に1であり続けるものである。従って、significanceとは有効桁の情報を既に符号化したか否かを示すフラグとも言える。あるビットプレーンでsignificantになれば、以降のビットプレーンではsignificantになったままである。
【0081】
(2)Magnitude Refinement Pass(MRパス):
ビットプレーンを符号化するMagnitude Refinement Passでは、ビットプレーンを符号化する Significance Propagation Passで、且つ符号化していないsignificantな係数のビットプレーンの値をMQ符号化する。
【0082】
(3)Cleanup Pass(CUパス):
ビットプレーンを符号化するCleanup Passでは、ビットプレーンを符号化するSignificance Passで、且つ符号化していないnon-significantな係数のビットプレーンの値をMQ符号化する。その符号化したビットプレーンの値が1である場合は符号が+であるか−であるか(Sign情報)を続けてMQ符号化する。
【0083】
尚、以上の3つの符号化パスでのMQ符号化では、ケースに応じて、ZC(Zero Coding)、RLC(Run-Length Coding)、SC(Sign Coding)、およびMR(Magnitude Refinement)が使い分けられる。ここでMQ符号化と呼ばれる算術符号が用いられる。MQ符号化は、JBIG2(参考文献:ISO/IEC FDIS 14492, “Lossy/Lossless Coding of Bi-level Images”, March 2000)で規定された学習型の2値算術符号である。
【0084】
図2に戻り、算術符号化部137は、生成したコードストリームを、矢印169に示されるように、符号量加算部138に供給する。符号量加算部138は、そのコードストリームの符号量をカウントし、累積する。
【0085】
そして、符号量加算部138は、そのコードストリームを、矢印172および矢印173に示されるように、ヘッダ作成部140およびパケット生成部141に供給するとともに、矢印170に示されるように、符号量の累積値をレート制御部139に供給する。レート制御部139は、供給された符号量の累積値に基づいて、矢印171に示されるように、EBCOT部151を制御し、累積値が目標符号量に達した時点で符号化を終了させる。つまり、レート制御部139は、発生符号量の制御(コードストリームのレート制御)を行う。
【0086】
パケット生成部141は、供給されたコードストリームをパケット化する。ヘッダ生成部140は、そのパケットのヘッダ情報を生成し、そのヘッダ情報を矢印174に示されるように、パケット生成部141に供給する。パケット生成部141は、そのヘッダ情報を用いてパケット化を行う。
【0087】
このパケットの概念を図9に示す。図9に示される例では、ウェーブレット変換を3回施した例で、その結果、最低域のPacket-1から最高域のPacket-4までの4個のパケットが生成されることを示している。従って、これら個々のパケット内のサブバンド中に存在する、すべての符号ブロックの符号化コードストリームが、パケット毎にパッキングされることになる。
【0088】
また図10は、符号化パスを、レイヤ1乃至レイヤLのL個のレイヤに分割したケースを図示したものである。あるコードブロックで、レイヤnの先頭の符号化パスはレイヤ(n−1)の最終後尾の符号化パスの直後に位置する。したがって、レイヤ数が増えるごとにコードストリームの符号量が増加する。つまり復号画像の画質が向上する(解像度は変化しない)。
【0089】
したがって、復号時に、レイヤ1からどのレイヤまでを復号するかを制御することにより、復号画像の画質を制御することができる。以下において、特に説明をしない限り、「画質」は、このレイヤ(つまり各画素の情報量)に依存する復号画像の視覚的品質のことを示すものとする。
【0090】
なお、どのコードブロックのどの符号化パスでレイヤの境界を切るかは、エンコーダ(画像符号化装置100)により設定することができる。以上のパケット内のサブバンド中に存在する、すべてのコードブロックのコードストリームが、パケット毎にパッキングされることになる。
【0091】
生成されたパケットは矢印175に示されるように、エンコード部101の外部に出力され、コードストリーム生成部102に供給される。
【0092】
各エンコード部101は、上述したようにJPEG2000方式で画像データを符号化し、解像度やレイヤ等について、JPEG2000のプログレッション機能を持たせたコードストリームを生成する。
【0093】
[コードストリーム生成部]
図11は、図1のコードストリーム生成部102の主な構成例を示すブロック図である。図11に示されるように、コードストリーム生成部102は、プログレッション解析部181、指定受付部182、プログレッション決定部183、統合部184、およびプログレッション情報生成部185を有する。
【0094】
プログレッション解析部181は、入力されるコードストリーム112−1乃至コードストリーム112−Xのそれぞれについて、プログレッション構造を解析し、各コードストリームがどのような構造で構成されるかを特定する。プログレッション解析部181は、解析が済んだコードストリーム191−1乃至191−Xを統合部184に供給する。また、プログレッション解析部181は、各コードストリームの解析結果をプログレッション決定部183に供給する(矢印192)。
【0095】
なお、以下において、コードストリーム191−1乃至191−Xを互いに区別して説明する必要が無い場合、単にコードストリーム191と称する。
【0096】
指定受付部182は、例えば、ユーザや他の装置等、外部から供給される、統合後のコードストリームのプログレッション構造の指定113を受け付け、それをプログレッション決定部183に供給する(矢印192)。プログレッション決定部183は、プログレッション解析部181から供給される解析結果、および、指定受付部182から供給される外部からの指定に基づいて、統合後のコードストリームのプログレッション構造を決定し、その情報を統合部184に供給する(矢印194)。なお、プログレッション決定部183は、解析結果や外部からの指定だけでなく、適宜、その他の情報も用いてプログレッション構造の決定を行うようにしてもよい。
【0097】
統合部184は、プログレッション決定部193より供給されるプログレッション構造に関する情報に基づいて、統合後のコードストリームが解像度や画質の他に、さらに、各系統についてもプログレッション構造を有するように、プログレッション解析部181から供給される各コードストリームを統合する。統合部184は、統合した1本のコードストリーム195をプログレッション情報生成部185に供給する。
【0098】
プログレッション情報生成部185は、そのコードストリーム194のプログレッション構造に関する情報であるプログレッション情報を生成し、そのプログレッション情報を、例えばヘッダ情報等、統合後のコードストリーム194の所定の位置に埋め込む。プログレッション情報生成部185は、プログレッション情報を付加したコードストリーム114を出力する。
【0099】
[JPEG2000のプログレッション]
JPEG2000の符号化における特徴として、ビットプレーンと、ウェーブレット変換によって生成されるサブバンドとがある。これらによってプログレッションの定義が可能になる。
【0100】
プログレッションとは、同じカテゴリに属する符号語の順番である。例えば同じ解像度レベルに属する異なるレイヤの符号語を集めれば、画像サイズが同一で画質が異なる画像を生成することができる。逆に同じレイヤに属する異なる解像度レベルの符号語を集めれば、画質が同じで画像サイズが異なる画像を生成することができる。つまり、復号画像の拡張性を実現するためのデータ構造である。
【0101】
JPEG2000では、このように所定の要素について、コードストリームから一部のデータのみを復号することができる。これにより、1つのコードストリームから多様な復号画像を容易に得ることができる。つまり、コードストリームにこのようなプログレッション構造を持たせることにより、より多様な用途に使用することができるようになり、コードストリームの利便性が向上する。
【0102】
例えば、1つのコードストリームから、大画面の表現力が豊かな高性能の液晶ディスプレイに対しては、高解像度かつ高ビットレートの復号画像を提供し、小画面で画像処理能力が低い携帯電話機等に対しては、低解像度かつ低ビットレートの復号画像を提供する、といったことも、復号するレイヤやサブバンド等のプログレッションの要素の選択により、容易に実現することができる。
【0103】
なお、このようなプログレッション構造は、復号処理だけでなく、復号画像の画像サイズや画質等を変化させる変換処理(トランスコード)においても利用することができる。つまり、上述した復号処理の場合と同様に、レイヤやサブバンド等のプログレッションの要素を選択するだけで、容易に、復号画像の画像サイズや画質を変化させたコードストリームを生成する(すなわちトランスコードする)ことができる。
【0104】
JPEG2000の場合、プログレッションの要素には、解像度レベル、レイヤ、ポジション、およびコンポーネントの4つが存在する。
【0105】
解像度レベルは、図3で図示したように、ウェーブレット変換に伴って生成されるレベルである。つまり、解像度レベルは、復号画像の画像サイズを定義するものである。レイヤは、図10で図示した通り、ビットプレーン方向のレベルで画質を左右する要素である。また、コンポーネントは、例えばYCbCrのような異なる成分からなる場合に定義されるものである(YCbCrやRGBの場合、コンポーネント数は、3になる)。最後にポジションであるが、これはJPEG2000の特徴の1つのタイリングに関係するもので、画面を複数の矩形ブロックに分割エンコード・デコードする場合の、各タイルの個数や位置を定義する。
【0106】
以上のようにプログレッションの要素が複数存在する場合、要素毎の階層構造が形成される。JPEG2000のPart-1の場合、上述した要素を使ったLRCP(Layer Resolution-level Component Position Progression)、RLCP(Resolution-level Layer Component Position Progression)、RPCL(Resolution-level Position Component Layer)、PCRL(Position Component Resolution-level Layer)、およびCPRL(Component Position Resolution-level Layer)の5通りの階層構造が用意されている。
【0107】
図12はLRCPの順番にJPEG2000の符号語を並べた符号化コードストリームを、その順番にデコードした時に生成されるデコード画像を図示したものである。このプログレッション構造の場合、以下の順番にパケットが並んでいる。すなわち、最上位階層がレイヤ(全レイヤ数=L)、その1つ下の階層が解像度レベル(N(max)が最大解像度レベル)、さらにその1つ下の階層がコンポーネント(Csizはコンポーネント総数)、最下位階層がポジションとなるように、符号語が並べられている。なお、以下においては、ポジション(P)についての説明は省略している。
【0108】
for each l = 0, …, L-1
for each r = 0, …, N(max)
for each i = 0, …, Csiz-1
{ packet for component(i), resolution-level(r), layer(l) }
【0109】
この場合、最上位階層がレイヤであるので、復号画像は、図12に示される画像201、画像202、画像203、画像204の順のように、徐々に画質が向上していくように表示される。
【0110】
図13はRLCPの順番にJPEG2000の符号語を並べた符号化コードストリームを、その順番にデコードした際に生成されるデコード画像を図示したものである。このプログレッション構造の場合、以下の順番にパケットが並んでいる。すなわち、最上位階層が解像度レベル、その1つ下の階層がレイヤ、さらにその1つ下の階層がコンポーネント、最下位階層がポジションとなるように、符号語が並べられている。なお、以下においては、ポジション(P)についての説明は省略している。
【0111】
for each r = 0, …, N(max)
for each l = 0, …, L-1
for each i = 0, …, Csiz-1
{ packet for component(i), resolution-level(r), layer(l) }
【0112】
この場合、最上位階層が解像度レベルであるので、復号画像は、図13に示される画像211、画像212、画像213、画像214の順のように、徐々に画像サイズ(解像度)が大きくなるように表示される。
【0113】
このように、プログレッションの各要素の階層構造に応じて、コードストリームの復号処理の順序が異なり、復号画像の表示のされ方も変化する。その他のRPCL、PCRL、およびCPRLについても同様に、それぞれの階層構造に応じた順序で復号処理が進められる。
【0114】
[JPEG2000でのプログレッションの定義]
図14は、JPEG2000 Part-1ドラフトのTable A-14に定義されている、符号化スタイル用のパラメータであるSGcodパラメータの例を示す図である。SGcod内のProgression order(8ビット)で上記のプログレッションの順番を定義することが可能である。
【0115】
このTable A-16では、図15に示されるように、上述したLRCP, RLCP, RPCL, PCRL, CPRLの5通りのプログレッションが定義されている。
【0116】
[プログレッションの拡張]
図1のコードストリーム生成部102(図11のプログレッション解析部181)に供給されるコードストリーム112は、上述したようなJPEG2000のプログレッション構造を有する。
【0117】
コードストリーム生成部102(図11の統合部184)は、このプログレッション構造を拡張し、従来の構造に、多系統についてのプログレッション構造(系統に関する拡張性を実現するプログレッション構造)をさらに加えるように各コードストリームを統合し、1本のコードストリームを生成する。統合後のプログレッションの階層構造の例を以下に説明する。
【0118】
[XLRCP]
階層構造の第1の例は、最上位階層を系統とし、以下の階層をLRCPとするXLRCPである。この場合、復号画像は、図16に示されるように、1系統ずつ順に復号されて表示される。つまり、XLRCPのコードストリームは、まず第1の系統について、画像201−1、画像202−1、画像203−1、画像204−1のように、レイヤ1からレイヤNまでが復号される(徐々に画質が向上する)。
【0119】
第1の系統の復号画像が得られると、次に、第2の系統について、画像201−2、画像202−2、画像203−2、画像204−2のように、レイヤ1からレイヤNまでが復号される(徐々に画質が向上する)。
【0120】
このように、1系統ずつ復号され、最後に、第Xの系統について、画像201−X、画像202−X、画像203−X、画像204−Xのように、レイヤ1からレイヤNまでが復号される(徐々に画質が向上する)。
【0121】
例えば、入力画像データ111がビュー数がVのマルチビューの場合(つまり入力系統数X=Vの場合)、コードストリーム生成部102(統合部184)は、このようなXLRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数vがビュー数(入力系統数X)を示している(VLRCP)。マルチビューはカメラの台数を増やすことで、視野角の広い3D映像を生成することができる他、画像の奥行き方向の抽出もステレオに比べて遥かに容易に実現できる特徴がある。その結果、カメラ間の任意視点の画像を補間・合成する技術も多くの研究機関で検討されている。また3D以外の用途でも横一線にカメラを配置することでパノラマ画像を生成することにも有用である。なお、以下においては、ポジション(P)についての説明は省略している。
【0122】
for each v = 0, …, V-1
for each l = 0, …, L-1
for each r = 0, …, N(max)
for each i = 0, …, Csiz-1
{ packet for view(v), component(i), resolution-level(r), layer(l) }
【0123】
また、例えば、入力画像データ111が3D画像データの場合(つまり入力系統数X=2の場合)、コードストリーム生成部102(統合部184)は、このようなXLRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数sが系統(left or right)を示している(SLRCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0124】
for each s = left, right
for each l = 0, …, L-1
for each r = 0, …, N(max)
for each i = 0, …, Csiz-1
{ packet for stereo(s), component(i), resolution-level(r), layer(l) }
【0125】
[LXRCP]
階層構造の第2の例は、LRCPの第2の階層を系統とするLXRCPである。この場合、復号画像は、図17に示されるように、1レイヤずつ順に復号されて表示される。つまり、LXRCPのコードストリームは、まず第1の系統について、画像201−1、画像201−2、・・・、画像201−Xのように、第1の系統から第Xの系統までが順に復号される(X個のレイヤ1の画像が生成される)。
【0126】
レイヤ1の復号画像がX個得られると、次に、レイヤ2について、画像202−1、画像202−2、・・・、画像202−Xのように、第1の系統から第Xの系統までが順に復号される(X個のレイヤ2の画像が生成される)。
【0127】
続いて、レイヤ3についても同様に、画像203−1、画像203−2、・・・、画像203−Xのように、第1の系統から第Xの系統までが順に復号される(X個のレイヤ3の画像が生成される)。
【0128】
このように、1レイヤずつ復号され、最後に、レイヤLについて、画像204−1、画像204−2、・・・、画像204−Xのように、第1の系統から第Xの系統までが順に復号される(X個のレイヤLの画像が生成される)。
【0129】
この構造例は、例えば伝送するネットワークの帯域が小さい時に、下位レイヤから上位レイヤの順に符号化コードストリームを伝送することで、受信側(デコード側)ではステレオ画像の画質が徐々に向上するようなアプリケーションに好適である。
【0130】
例えば、入力画像データ111がビュー数がVのマルチビューの場合(つまり入力系統数X=Vの場合)、コードストリーム生成部102(統合部184)は、このようなLXRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数vがビュー数(入力系統数X)を示している(LVRCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0131】
for each l = 0, …, L-1
for each v = 0, …, V-1
for each r = 0, …, N(max)
for each i = 0, …, Csiz-1
{ packet for view(v), component(i), resolution-level(r), layer(l) }
【0132】
また、例えば、入力画像データ111が3D画像データの場合(つまり入力系統数X=2の場合)、コードストリーム生成部102(統合部184)は、このようなLXRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数sが系統(left or right)を示している(LSRCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0133】
for each l = 0, …, L-1
for each s = left, right
for each r = 0, …, N(max)
for each i = 0, …, Csiz-1
{ packet for stereo(s), component(i), resolution-level(r), layer(l) }
【0134】
[XRLCP]
階層構造の第3の例は、最上位階層を系統とし、以下の階層をRLCPとするXRLCPである。この場合、復号画像は、図18に示されるように、1系統ずつ順に復号されて表示される。つまり、XRLCPのコードストリームは、まず第1の系統について、画像211−1、画像212−1、画像213−1、画像214−1のように、最下位層の解像度レベルから最上位階層の解像度レベルまでが復号される(徐々に画像サイズが大きくなる)。
【0135】
第1の系統の復号画像が得られると、次に、第2の系統以降も同様に1系統ずつ復号され、最後に、第Xの系統について、画像211−X、画像212−X、画像213−X、画像214−Xのように、最下位層の解像度レベルから最上位階層の解像度レベルまでが復号される(徐々に画像サイズが大きくなる)。
【0136】
例えば、入力画像データ111がビュー数がVのマルチビューの場合(つまり入力系統数X=Vの場合)、コードストリーム生成部102(統合部184)は、このようなXRLCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数vがビュー数(入力系統数X)を示している(VRLCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0137】
for each v = 0, …, V-1
for each r = 0, …, N(max)
for each l = 0, …, L-1
for each i = 0, …, Csiz-1
{ packet for view(v), component(i), resolution-level(r), layer(l) }
【0138】
また、例えば、入力画像データ111が3D画像データの場合(つまり入力系統数X=2の場合)、コードストリーム生成部102(統合部184)は、このようなXLRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数sが系統(left or right)を示している(SRLCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0139】
for each s = left, right
for each r = 0, …, N(max)
for each l = 0, …, L-1
for each i = 0, …, Csiz-1
{ packet for stereo(s), component(i), resolution-level(r), layer(l) }
【0140】
[RXLCP]
階層構造の第4の例は、RLCPの第2の階層を系統とするRXLCPである。この場合、復号画像は、図19に示されるように、1解像度レベルずつ順に復号されて表示される。つまり、RXLCPのコードストリームは、まず最下位層の解像度レベルについて、画像211−1、・・・、画像211−Xのように、第1の系統から第Xの系統までが順に復号される(X個の最下位層の解像度レベルの画像が生成される)。
【0141】
最下位層の解像度レベルの復号画像がX個得られると、次に、1つ上の解像度レベルについて、画像212−1、・・・、画像212−Xのように、第1の系統から第Xの系統までが順に復号される(X個の下から2番目の解像度レベルの画像が生成される)。
【0142】
続いて、下から3番目の解像度レベルについても同様に、画像213−1、・・・、画像213−Xのように、第1の系統から第Xの系統までが順に復号される(X個の下から3番目の解像度のレベルの画像が生成される)。
【0143】
このように、1解像度レベルずつ復号され、最後に、最上位層の解像度レベルについて、画像214−1、・・・、画像214−Xのように、第1の系統から第Xの系統までが順に復号される(X個の最上位層の解像度レベルの画像が生成される)。
【0144】
この構造例は、例えば、伝送するネットワークの帯域が小さい時に、下位レイヤから上位レイヤの順に符号化コードストリームを伝送することで、受信側(デコード側)ではステレオ画像の解像度が徐々に向上するようなアプリケーションに好適である他、受信側の端末(TV(テレビジョン受像機)やポータブル表示装置、携帯端末など)の表示可能な解像度に応じて、最適な階層の符号語だけを送受信するアプリケーションに好適である。
【0145】
例えば、入力画像データ111がビュー数がVのマルチビューの場合(つまり入力系統数X=Vの場合)、コードストリーム生成部102(統合部184)は、このようなRXLCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数vがビュー数(入力系統数X)を示している(RVLCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0146】
for each r = 0, …, N(max)
for each v = 0, …, V-1
for each l = 0, …, L-1
for each i = 0, …, Csiz-1
{ packet for view(v), component(i), resolution-level(r), layer(l) }
【0147】
また、例えば、入力画像データ111が3D画像データの場合(つまり入力系統数X=2の場合)、コードストリーム生成部102(統合部184)は、このようなLXRCPの構造を有するコードストリームを以下のように生成する。なお、以下においては、変数sが系統(left or right)を示している(RSLCP)。なお、以下においては、ポジション(P)についての説明は省略している。
【0148】
for each r = 0, …, N(max)
for each s = left, right
for each l = 0, …, L-1
for each i = 0, …, Csiz-1
{ packet for stereo(s), component(i), resolution-level(r), layer(l) }
【0149】
[その他の構造]
RPCL、PCRL、およびCPRLについての拡張も、上述したLRCPやRLCPの場合と、基本的に同様に行われる。
【0150】
例えば、RPCLの場合のプログレッション構造を以下に示す。以下において(tx(0), tx(1))はあるタイルの左端X座標と、右端X座標を示し、(ty(0), ty(1))はあるタイルの左端Y座標と、右端Y座標を示す。
【0151】
for each r = 0, …, N(max)
for each y= ty(0), …., ty(1)-1
for each x= tx(0), …., tx(1)-1
for each i = 0, …, Csiz-1
for each l = 0, …, L-1
{ packet for component(i), resolution-level(r), layer(l) }
【0152】
なお、タイリングなし(画面に1つだけタイルが存在する)の場合、2階層目と3階層目のループが実質存在しない。
【0153】
以上のように、階層構造は、プログレッション構造毎に異なるものの、いずれの構造の場合も、コードストリームを統合する際に、多系統についてのプログレッション(系統に関する拡張性を実現するデータ構造)が、指定された階層に挿入される。
【0154】
このようにして、統合後のプログレッション構造として、例えば、XLRCP、LXRCP、XRLCP、RXLCP、XRPCL、RPXCL、VPCRL、PXCRL、XCPRL、およびCXPRLの10種類の構造を定義することができる。もちろん、統合後のプログレッション構造として、これら以外の構造を適用するようにしてもよい。例えば、この多系統についてのプログレッションを他の階層に挿入するようにしてもよい。また、上述した10種類の一部が含まれていなくてもよい。また、用意されるプログレッション構造の数はいくつであってもよく、9種類以下であってもよいし、11種類以上であってもよい。
【0155】
[拡張プログレッションの定義]
JPEG2000の場合、プログレッションの階層構造は、図15を参照して説明したように、SGcod内のProgression order(8ビット)で定義されている。プログレッション情報生成部185において、図20に示されるように、上位4ビットも用いて、このProgression orderを拡張することで、上述した10個の階層構造が定義される(XLRCP(0001 0000)、LXRCP(0010 0000)、XRLCP(0001 0001)、RXLCP(0010 0001)、XRPCL(0001 0010)、RPXCL(0010 0010)、XPCRL(0001 0011)、PXCRL(0010 0011)、XCPRL(0001 0100)、CXPRL(0010 0100))。
【0156】
プログレッション情報生成部185は、統合部184が統合した1系統のコードストリーム195のタイルパートヘッダまたはメインヘッダ内に存在するSGcodパラメータのProgression orderを、そのコードストリーム195のプログレッション構造に対応する値に設定する。
【0157】
もちろん、各プログレッション構造に対して割り当てる値は任意であり、図20に示される以外の値を割り当てるようにしてもよい。また、階層構造の定義の方法は、任意であり、他のパラメータにおいて定義するようにしてもよい。例えば、同じCODマーカセグメント中のSPcocやPpocにおいて定義するようにしてもよい。例えば、SGcod、SPcoc、およびPpocのうち、少なくともいずれか1つにおいて定義するようにしてもよい。
【0158】
もちろん、これら以外のパラメータにおいて定義することもできる。ただし、図20に示されるように、Progression orderの上位4ビットを用いて拡張することにより、下位4ビットについては、従来のJPEG2000との互換性を維持することができるなど、従来のJPEG2000との親和性を高めることができる。したがって、例えば、このような拡張に対応しない従来のJPEG2000のデコーダにおいては、下位4ビットの値によって、従来のように4つの要素の階層構造として復号することができる。
【0159】
[ビュー数の定義]
次にビュー数(入力系統数)の定義について説明する。図21は、JPEG2000 Part-1で定義されたメインヘッダのSIZマーカのRsiz(16ビット)が定義されたTable A-10である。規格書の文中には以下の説明書きがある。
【0160】
Rsiz:Denotes capabilities that a decoder needs to properly decode the codestream.
【0161】
このように、Table A-10によれば、Rsizには16ビットが割り当てられているものの、現在Profile-0とProfile-1の定義にしか使われていない(一部デジタルシネマ規格(DCI規格)で2K解像度用にRsiz=3、4K解像度用にRsiz=4が使われている例外がある)。
【0162】
この空きを利用して、プログレッション情報生成部185は、図22に示される様に、Rsizの上位から12ビットを用いてビュー数を定義するようにする。このようにすることにより、最大数4,096まで対応可能である。なお、図22中の"x"の記号は「使用禁止」を意味する。
【0163】
プログレッション情報生成部185は、統合部184において生成されたコードストリーム195のメインヘッダのRsizの値を、図22の定義に従って、統合前のコードストリームの系統数Xに対応する値に設定する。
【0164】
もちろん、ビュー数の定義方法は任意であり、Rsiz以外において定義するようにしてもよいが、上述したように、Rsizにおいてビュー数を定義することにより、不要にデータ量を増大させず、従来のJPEG2000との高い親和性を保ったまま、容易に、多数(最大数4,096)の入力系統に対応することができる。
【0165】
[多系統入力符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れの例について説明する。
【0166】
最初に、画像符号化装置100により実行される、多系統の入力画像データを符号化し、プログレッション機能を有するように統合して1本のコードストリームを生成する多系統入力符号化処理の流れの例を図23のフローチャートを参照して説明する。
【0167】
入力画像データ111が入力されて多系統入力符号化処理が開始されると、ステップS101において、各エンコード部101は、自身に対応する入力系統から入力された画像データ111を符号化する。ステップS102において、画像符号化装置100は、全系統の入力画像を符号化したか否かを判定し、未処理の系統が存在すると判定された場合、処理をステップS101に戻し、全ての系統の入力画像が処理されたと判定されるまで待機する。
【0168】
ステップS102において、全ての系統の入力画像が符号化されたと判定された場合、画像符号化装置100は、処理をステップS103に進める。ステップS103において、コードストリーム生成部102は、各系統のコードストリームを統合し、プログレッション機能を有する1系統のコードストリームを生成する。コードストリームを生成すると、画像符号化装置100は、多系統入力符号化処理を終了する。
【0169】
[符号化処理の流れ]
次に、図23のステップS101において実行される各系統の符号化処理の流れの例を図24のフローチャートを参照して説明する。
【0170】
符号化処理が開始されると、ステップS121において、DCレベルシフト部131は、自身が対応する入力系統より入力された画像データのDCレベルをシフトする。ステップS122において、ウェーブレット変換部132は、DCレベルがシフトされた画像データをウェーブレット変換する。
【0171】
ステップS123において、量子化部133は、非可逆符号化方式の場合、ステップS122において生成されたウェーブレット係数を量子化する。なお、可逆符号化方式の場合、この処理は省略される。
【0172】
ステップS124において、コードブロック化部134は、量子化された係数をコードブロック単位で分割する。ステップS125において、ビットプレーン展開部135は、そのコードブロック毎の係数をビットプレーンに展開する。
【0173】
ステップS126において、EBCOT部151は、ビットプレーン展開された係数を符号化する。ステップS127において、レート制御部139は、符号量加算部138において加算された符号量等を用いて、発生符号量のレートを制御する。
【0174】
ステップS128において、ヘッダ生成部140は、パケットヘッダを生成する。ステップS129において、パケット生成部141は、パケットを生成する。ステップS130において、エンコード部101は、そのパケットを外部に出力する。
【0175】
ステップS130の処理が終了すると、符号化処理が終了される。なお、この符号化処理は、画像データの供給が終了するか、終了の指示を受けるまで、所定のデータ単位毎に繰り返し実行される。また、この符号化処理は、各エンコード部101において実行される。
【0176】
このように符号化処理を行うことにより、エンコード部101は、各系統の入力画像を、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を有するように符号化することができる。
【0177】
[コードストリーム生成処理の流れ]
次に、図23のステップS103において実行されるコードストリーム生成処理の流れの例を図25のフローチャートを参照して説明する。
【0178】
コードストリーム生成部102は、各エンコード部101からコードストリーム112が供給されると、コードストリーム生成処理を開始する。コードストリーム生成処理が開始されると、プログレッション解析部181は、ステップS151において、各エンコード部101から供給されたコードストリームの全てについて、プログレッションを解析する。
【0179】
ステップS152においtえ、指定受付部182は、例えばユーザや外部の装置等から供給される、コードストリーム統合後のプログレッション構造に関する指定を受け付ける。
【0180】
ステップS153において、プログレッション決定部183は、ステップS151の処理により得られた解析結果と、ステップS152の処理により受け付けられた外部からの指定に基づいて、統合後のコードストリームのプログレッション構造を決定する。
【0181】
ステップS154において、統合部184は、ステップS153において決定されたプログレッション構造を有するように、各系統のコードストリームを統合する。ステップS155において、プログレッション情報生成部185は、統合後のコードストリームのプログレッション情報を生成し、例えば、SGcod内のProgression orderや、SIZマーカのRsiz等、統合後のコードストリームの所定の位置にそのプログレッション情報を付加する。
【0182】
ステップS156において、プログレッション情報生成部185は、コードストリームを出力する。
【0183】
このように、コードストリーム生成部102は、各系統のコードストリームを、各コードストリームのプログレッション構造に、多系統についてのプログレッション構造(系統に関する拡張性を実現するデータ構造)を追加した構造を有するように統合することができる。このようにすることにより、画像符号化装置100は、多系統の入力画像を符号化し、復号画像の拡張性を実現し、より多様な用途に使用可能なコードストリームを生成することができる。
【0184】
また、統合後のプログレッション構造(拡張されたプログレッション構造)を示すプログレッション情報をコードストリームに付加するので、そのコードストリームを復号する画像復号装置は、そのコードストリームに付加されたプログレッション情報に基づいて、容易に、コードストリームを復号することができる。
【0185】
つまり、画像符号化装置100は、多系統の画像が符号化されたコードストリームの利便性を向上させることができる。
【0186】
なお、プログレッション情報は、コードストリームとは別のデータとして復号側に提供されるようにしてもよい。ただし、その場合、コードストリームとプログレッション情報の対応関係を明らかにする(復号側において対応関係を把握することができるようにする)必要がある。
【0187】
<2.第2の実施の形態>
[画像復号装置の構成]
図26は、本発明を適用した画像復号装置の主な構成例を示すブロック図である。
【0188】
図26に示される画像復号装置300は、図1の画像符号化装置100に対応する復号装置であり、画像符号化装置100により多系統の入力画像を符号化して統合し、生成された1系統のコードストリームを復号して分離し、多系統の復号画像を生成する。
【0189】
その際、画像復号装置300は、入力されるコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造に従ってコードストリームを復号し、多系統の復号画像を得ることができる。もちろん、画像復号装置300は、入力されるコードストリームが有するプログレッション構造に従って、必要な情報のみを復号するようにし、用途に対して画質や画像サイズ等が適切な復号画像(用途に応じた復号画像)を得ることができるようにしてもよい。
【0190】
図26に示されるように、画像復号装置300は、コードストリーム解析部301、並びに、デコード部302−1乃至デコード部302−Xを有する。
【0191】
コードストリーム解析部301は、入力されたコードストリーム311に付加されたプログレッション情報等に基づいて、コードストリーム311のプログレッション構造を解析し、コードストリーム311を統合される前の系統数(ビュー数)Xのコードストリームに分離する。
【0192】
コードストリーム解析部301は、分離したコードストリーム312−1乃至コードストリーム312−Xを、それぞれの系統に対応するデコード部302−1乃至デコード部302−Xに供給する。デコード部302−1乃至デコード部302−Xは、それぞれ、入力されたコードストリームを、図1のエンコード部101に対応する方法で復号し、復号画像データ313−1乃至復号画像データ313−Xを生成し、出力する。
【0193】
つまり、画像復号装置300は、コードストリーム311を入力し、X個の出力系統のそれぞれから復号画像を出力する(すなわち、X系統の復号画像を出力する)。このとき、画像復号装置300は、コードストリーム311のプログレッション構造に従った順序でコードストリームを復号したり、コードストリーム311のプログレッション構造に従って一部のデータのみを復号したりすることができる。このように、画像復号装置300は、コードストリーム311から、より容易に、多様な用途に応じた復号画像を得る(復号画像の拡張性を実現する)ことができる。
【0194】
なお、以下において、デコード部302−1乃至デコード部302−Xを互いに区別して説明する必要が無い場合、単に、デコード部302と称する。また、以下において、コードストリーム312−1乃至コードストリーム312−Xを互いに区別して説明する必要が無い場合、単に、コードストリーム312と称する。さらに、以下において、復号画像データ313−1乃至復号画像データ313−Xを互いに区別して説明する必要が無い場合、単に、復号画像データ313と称する。
【0195】
なお、以上においては、デコード部302を各系統に設けるように説明したが、1つのデコード部302が複数の系統のコードストリーム312をそれぞれ復号することができるようにしてもよい。例えば、画像復号装置300が1個のデコード部302を有するようにし、そのデコード部302が、X系統のコードストリーム312をそれぞれ復号し、X系統の復号画像データ313を生成するようにしてもよい。
【0196】
[コードストリーム解析部の構成]
図27は、図26のコードストリーム解析部301の主な構成例を示すブロック図である。図27に示されるように、コードストリーム解析部301は、プログレッション解析部321、分割部322、およびプログレッション情報生成部323を有する。
【0197】
プログレッション解析部321は、入力されるコードストリーム311に付加されたプログレッション情報を解析し、コードストリーム311のプログレッション構造を解析する。例えば、プログレッション解析部321は、コードストリーム311のメインヘッダやタイルパートヘッダ等に記述されるSGcod内のProgression orderやSIZマーカのRsizを参照し、コードストリーム311のプログレッション構造やビュー数を把握する。プログレッション解析部321は、解析が済んだコードストリーム331と、解析結果332を分割部322に供給する。
【0198】
分割部322は、プログレッション解析部321から供給されたプログレッションの解析結果に基づいて、プログレッション解析部321から供給されたコードストリーム331が有する、多系統についてのプログレッション構造(系統に関する拡張性を実現するデータ構造)に基づいて、1系統であったコードストリーム331を、統合前のX個の系統のコードストリームに分離する。
【0199】
コードストリーム331は、所定の単位毎の符号化データが、プログレッション構造の順序に従って整列されている。分割部322は、そのコードストリーム331が有するプログレッション構造のうち、多系統についてのプログレッション構造に従って、コードストリーム331の供給先とするデコード部302を切り替える。
【0200】
つまり、コードストリーム331においては、統合前の各系統のコードストリームの部分データが、多系統についてのプログレッション構造に従って並べられている。分割部322は、この多系統についてのプログレッション構造に従って、各部分データを、その部分データが属する系統に出力する。この処理により、コードストリーム331はX個の系統に分離される。
【0201】
分割部322は、分離したコードストリーム333−1乃至コードストリーム333−Xを、プログレッション情報生成部323に供給する。プログレッション情報生成部323は、コードストリーム333−1乃至コードストリーム333−Xのそれぞれについて、プログレッション構造を示すプログレッション情報を生成し、それをコードストリーム333−1乃至コードストリーム333−Xの所定の位置に付加する。
【0202】
プログレッション情報生成部323は、プログレッション情報を付加したコードストリーム312−1乃至コードストリーム312−Xを、それぞれの系統のデコード部302に供給する。
【0203】
なお、以下において、コードストリーム333−1乃至コードストリーム333−Xを互いに区別して説明する必要が無い場合、単にコードストリーム333と称する。
【0204】
[デコード部の構成]
図28は、デコード部302の主な構成例を示すブロック図である。このデコード部302は、図1のエンコード部101に対応し、エンコード部101により符号化されて生成されたコードストリームを復号する。図28に示されるように、デコード部302は、パケット解読部351、算術復号部352、ビットモデリング部353、ビットプレーン合成部354、コードブロック合成部355、ウェーブレット逆変換部356、およびDCレベル逆シフト部357を有する。
【0205】
パケット解読部351は、矢印361に示されるように、画像符号化装置100から供給されるパケットを解読し、矢印362に示されるように、コードストリームを算術復号部352に供給する。
【0206】
算術復号部352およびビットモデリング部353は、EBCOT部371として動作し、入力されるコードストリームに対して、例えばJPEG2000規格等で定められたEBCOTと呼ばれるエントロピ復号を行う。
【0207】
算術復号部352は、算術符号化部137に対応する方法でコードストリームを復号し、矢印363に示されるように、コンテキストをビットモデリング部353に供給する。ビットモデリング部353は、ビットモデリング部136に対応する方法で、ビットプレーンに展開されたウェーブレット係数を生成する。ビットモデリング部353は、生成したビットプレーン毎の係数データを、矢印364に示されるように、ビットプレーン合成部354に供給する。
【0208】
ビットプレーン合成部354は、ビットプレーンに展開されたウェーブレット係数を合成する。ビットプレーン合成部354は、ビットプレーンを合成したウェーブレット係数を、矢印365に示されるように、コードブロック合成部355に供給する。
【0209】
コードブロック合成部355は、供給されたビットプレーンを用いてコードブロック単位の係数データを生成し、さらにそれらを合成し、サブバンド毎の係数データを生成する。コードブロック合成部355は、矢印366に示されるように、それをウェーブレット逆変換部356に供給する。
【0210】
ウェーブレット逆変換部356は、供給されたウェーブレット係数をウェーブレット逆変換し、ベースバンドの画像データを生成する。ウェーブレット逆変換部356は、生成したベースバンドの画像データを、矢印367に示されるように、DCレベル逆シフト部357に供給する。
【0211】
DCレベル逆シフト部357は、その画像データのDC成分に対して、DCレベルシフト部131においてシフトした分を元に戻すDCレベル逆シフト処理を必要に応じて行う。DCレベル逆シフト部357は、DCレベル逆シフト処理後の画像データ(復号画像データ)を、矢印368に示されるように、デコード部302の外部に出力する。
【0212】
各コードストリーム312は、所定の単位毎の符号化データが、プログレッション構造に従った順序で整列されている。従って、デコード部302は、入力されたコードストリーム312を、順次復号することにより、コードストリーム312に含まれるプログレッション構造に従った順序で、コードストリーム312を復号することができる。
【0213】
[多系統出力復号処理の流れ]
次に、画像復号装置300により実行される各種処理の流れの例について説明する。画像復号装置300は、多系統の画像が統合されたコードストリームを復号するために、多系統出力復号処理を行う。最初に、この多系統出力復号処理の流れの例を図29のフローチャートを参照して説明する。
【0214】
画像復号装置300は、画像符号化装置100において生成されたコードストリームを取得すると、多系統出力復号処理を開始する。多系統出力復号処理が開始されると、コードストリーム解析部301は、ステップS301において、取得したコードストリームを解析し、そのコードストリームを、統合前の系統数のコードストリームに分離する。
【0215】
ステップS302において、各系統のデコード部302は、コードストリームのプログレッション構造に従って、そのコードストリームを復号し、復号画像データ313を出力する。ステップS303において、画像復号装置300は、全ての系統のコードストリームの復号が終了したか否かを判定し、復号が終了していない系統が存在すると判定された場合、処理をステップS302に戻す。ステップS303において、全ての系統のコードストリームの復号が終了したと判定された場合、画像復号装置300は、多系統出力復号処理を終了する。
【0216】
[解析処理の流れ]
次に、図29のステップS301において実行される解析処理の詳細な流れの例を、図30のフローチャートを参照して説明する。
【0217】
解析処理が開始されると、プログレッション解析部321は、ステップS321において、コードストリームに付加されているプログレッション情報を解析し、コードストリームのプログレッション構造やビュー数等を把握する。
【0218】
ステップS322において、分割部322は、ステップS321の処理により解析されたコードストリームのプログレッション構造にしたがって、コードストリームを系統ごとに分離する。
【0219】
ステップS323において、プログレッション情報生成部323は、分離された各系統のコードストリームについて、それぞれプログレッション情報を生成し、付加する。
【0220】
ステップS324において、プログレッション情報生成部323は、プログレッション情報を付加した各系統のコードストリームを出力する。
【0221】
ステップS324の処理が終了すると、コードストリーム解析部301は、解析処理を終了し、処理を図29のステップS301に戻し、ステップS302以降の処理を実行させる。
【0222】
[復号処理の流れ]
次に、図29のステップS302において実行される復号処理の詳細な流れの例を、図31のフローチャートを参照して説明する。
【0223】
復号処理が開始されると、パケット解読部351は、ステップS341において、取得されたパケットから符号化データを抽出する。
【0224】
ステップS342において、EBCOT部371は、ステップS341において抽出された符号化データを復号する。ステップS343において、ビットプレーン合成部354は、その復号により得られた係数データのビットプレーンを合成し、コードブロック毎の係数データを生成する。ステップS344において、コードブロック合成部355は、そのコードブロック毎の係数データのコードブロックを合成し、サブバンド毎の係数データを生成する。
【0225】
ステップS345において、ウェーブレット逆変換部356は、そのサブバンド毎の係数データをウェーブレット逆変換し、ベースバンドの画像データを生成する。なお、画像符号化装置100において係数データが量子化されている場合、係数データに対して、その量子化に対応する逆量子化を行ってからウェーブレット逆変換を行う。
【0226】
ステップS346において、DCレベル逆シフト部357は、そのウェーブレット逆変換により得られたベースバンドの画像データのDCレベルを逆シフトする。
【0227】
ステップS347において、デコード部302は、DCレベル逆シフト処理が施された画像データを復号画像データとして出力系368から出力する。例えば、この復号画像データが例えば図示せぬディスプレイに出力され、その画像が表示される。
【0228】
ステップS347の処理が終了すると、デコード部302は、復号処理を終了する。デコード部302は、このような復号処理を復号処理単位毎に繰り返す。コードストリームは、各符号化データがプログレッション構造に応じた順序で整列されているので、デコード部302は、プログレッション情報に従って、供給される符号化データを順次復号することにより、容易に、コードストリームをプログレッション構造に従った順序で復号することができる。
【0229】
以上のように、画像復号装置300は、コードストリームに付加されているプログレッション情報を解析することにより、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造に応じた復号を行い、多系統の復号画像データを生成することができる。つまり、画像復号装置300は、画像符号化装置100が生成したコードストリームを適切に復号し、復号画像の拡張性を実現することができる。したがって、画像復号装置300は、多系統の画像が符号化されたコードストリームの利便性を向上させることができる。
【0230】
<3.第3の実施の形態>
[画像符号化装置の構成]
近年、画像を立体視することができる3D映像が普及しつつあるが、両眼視差を利用したステレオ画方式が主流である。しかしながら、このステレオ画を用いた両眼視差による立体視では、任意の方向からの立体視を実現することはできない。そこで、被写体画像の各部の奥行き方向の位置を示す奥行きデータ(Depth_Map)を用いる方法が考えられた。
【0231】
この奥行きデータを複数系統の画像データから抽出する方法が考えられている。つまり、ある被写体を複数の方向から撮影し、その各撮影画像内の被写体の位置の差から、その被写体の奥行き方向の位置を算出する。このような方法により、撮影画像内の全ての被写体について奥行き方向の位置を求め、奥行きデータを生成する。
【0232】
このような奥行きデータを用いることにより、画像内の被写体の奥行き方向の位置が特定可能であるので、その情報を基に、任意の視点からの両眼視差を算出することができる。つまり、任意の視点からのステレオ画を生成することができる。
【0233】
このような奥行きデータを1系統として、上述したように、画像データとともに符号化し、プログレッション構造を有するように、1系統のコードストリームとするようにしてもよい。
【0234】
つまり、第1の実施の形態においては、多系統の画像を符号化し、1系統のコードストリームを生成する場合について説明したが、本発明は、このような奥行きデータも1系統の入力として符号化し、プログレッション構造を有する1系統のコードストリームにする場合にも適用することができる。
【0235】
図32は、その場合の画像符号化装置の構成例を示すブロック図である。図32において、図1の画像符号化装置100と同様の構成については、同じ番号を付してある。図32において、画像符号化装置400は、基本的に画像符号化装置100と同様の構成を有するが、さらに、奥行きデータ生成部411およびエンコード部412を有する。
【0236】
なお、この場合、各入力系統の入力画像データ111は、略同一の被写体が互いに異なる方向から撮影された、若しくは、描かれた画像、すなわち、マルチビューを構成する画像である。
【0237】
奥行きデータ生成部411は、各入力画像データ111を用いて、画像内の被写体の奥行き方向の位置を示す奥行きデータ421を生成する。この被写体の奥行き方向の位置の算出方法は任意である。
【0238】
図33に奥行きデータの例を示す。図33Aに示される画像データ111の奥行きデータの例を図33Bに示す。図33Bに示されるように、奥行きデータ421は、画像データ111の全領域の奥行き方向の位置を、例えば画素毎やブロック毎のように所定の範囲毎に、所定のビット数で示す情報である。つまり、奥行きデータ421は、一般的にグレースケールのビットマップデータとして表すことができる。このビットマップデータの階調数が、奥行きデータ421のビット深度(つまり、奥行き方向の位置の表現力)となる。
【0239】
したがって、この奥行きデータも、他の入力画像データ111と基本的に同様に符号化することができる。図32に戻り、奥行きデータ生成部411は、生成した奥行きデータ421をエンコード部412に供給する。エンコード部412は、エンコード部101と同様の構成を有し、同様の処理を行う。つまり、エンコード部412は、奥行きデータ421を、エンコード部101と同様に符号化し、JPEG2000のようなプログレッション構造を有するコードストリーム422を生成する。エンコード部412は、生成したコードストリーム422をコードストリーム生成部102に供給する。
【0240】
つまり、コードストリーム生成部102からみると、入力が1系統増えた(X+1)ことになるが、もともと入力系統数Xは任意である。つまり、コードストリーム生成部102は、第1の実施の形態の場合と同様に各系統のコードストリームを統合し、多系統についてのプログレッション構造を加えたプログレッション構造を有する1系統のコードストリーム114を生成する。
【0241】
なお、奥行きデータは、画像符号化装置400の外部において生成されるようにしてもよい。その場合の画像符号化装置400は、図1の画像符号化装置100と同様の構成となる。つまり、画像データと奥行きデータを入力とする場合、画像符号化装置100によりそれらを符号化することができる。
【0242】
[多系統入力符号化処理の流れ]
次に、画像符号化装置400により実行される多系統入力符号化処理の流れの例について、図34のフローチャートを参照して説明する。この処理は、図23のフローチャートに対応する。
【0243】
つまり、図34のステップS401およびステップS402の各処理は、図23のステップS101およびステップS102と同様に実行される。
【0244】
ステップS403において、奥行きデータ生成部411は、各系統の入力画像データ111から、奥行きデータを生成する。ステップS404において、エンコード部412は、その奥行きデータを、ステップS401の場合と同様に符号化する。
【0245】
ステップS405において、コードストリーム生成部102は、ステップS401において生成されたコードストリームと、ステップS404において生成されたコードストリームとを、図23のステップS103の場合と同様に統合し、プログレッション構造を有する1系統のコードストリームを生成する。
【0246】
ステップS405の処理が終了すると、画像符号化装置400は、多系統入力符号化処理を終了する。
【0247】
このように、画像符号化装置400は、マルチビューを構成する多系統の入力画像データから奥行きデータを生成し、その奥行きデータとともに各系統の入力画像データを符号化し、プログレッション構造を有する1系統のコードストリームを生成することができる。
【0248】
つまり、画像符号化装置400は、このように奥行きデータを含める場合であっても、多系統の画像が符号化されたコードストリームの利便性を向上させることができる。
【0249】
なお、復号側においては、奥行きデータは、1系統の画像データ(ビットマップデータ)として処理することができる。つまり、第2の実施の形態において説明した画像復号装置300は、画像符号化装置400により生成されたコードストリーム114も、画像符号化装置100により生成されたコードストリーム114と同様に復号することができる。
【0250】
<4.第4の実施の形態>
[ネットワークシステムの構成]
以上において説明した画像符号化装置100若しくは画像符号化装置400により生成されたコードストリームは、任意の方法で画像復号装置300に転送するようにしてもよい。例えば、画像符号化装置100若しくは画像符号化装置400が、生成したコードストリームを、Blu-Ray Disc、フラッシュメモリ、若しくはハードディスク等の、任意の記録媒体に記録し、画像復号装置300がその記録媒体からコードストリームを読み出して復号するようにしてもよい。
【0251】
また、画像符号化装置100若しくは画像符号化装置400が、生成したコードストリームを、有線若しくは無線のネットワーク等、任意の通信媒体を介して画像復号装置300に伝送するようにしてもよい。
【0252】
さらに、以上においては、画像符号化装置100および画像符号化装置400のコードストリーム生成部102が、プログレッション構造に関して、外部からの指定113を取得するように説明したが、この指定の提供元は任意である。例えば、上述したようにユーザや他の装置から供給されるようにしてもよい。また、画像符号化装置が生成したコードストリームを復号する画像復号装置から供給されるようにしてもよい。
【0253】
図35は、本発明を適用したネットワークシステムの構成例を示すブロック図である。
【0254】
図35に示されるネットワークシステム500は、多系統の画像データを送信側から受信側にネットワーク501を介して伝送するシステムである。その際、ネットワークシステム500は、伝送時に使用する帯域幅を低減させるために、送信側において、多系統の画像データを符号化してまとめ、1系統のコードストリームとして伝送し、受信側において、復号して元の多系統の復号画像データを得る。
【0255】
ネットワーク501は、任意の通信媒体により構成される。例えば、ネットワーク501は、インターネットやLAN等に代表される任意のネットワークにより構成される。ネットワーク501は、1つのネットワークであってもよいし、複数のネットワークの集合体であってもよい。したがって、ネットワーク501は、ケーブル等の通信媒体の他に、中継器等の任意の通信機器が含まれるようにしてもよい。また、ネットワーク501は、有線のネットワークであってもよいし、無線のネットワークであってもよいし、有線と無線が混在するようにしてもよい。
【0256】
ネットワークシステム500は、送信側の符号化装置として、上述した画像符号化装置100を有する。また、ネットワークシステム500は、受信側の復号装置として、上述した画像復号装置300を有する。
【0257】
つまり、送信側の画像符号化装置100は、伝送する多系統の画像データを符号化し、プログレッション構造を有する1系統のコードストリーム114を生成し、それをネットワーク501を介して画像復号装置300に送信する。
【0258】
受信側の画像復号装置300は、それをコードストリーム311として受信し、復号して、元の多系統の画像データに分離して出力する。
【0259】
また、画像復号装置300は、画像データの使用方法等に基づいて、プログレッション構造に関する指定511を、ネットワーク501を介して、画像符号化装置100に提供する。画像符号化装置100のコードストリーム生成部102は、それを外部からの指定113として受け付ける。
【0260】
このようにすることにより、画像符号化装置100は、受信(復号)側の用途に応じたプログレッション構造のコードストリームを容易に生成することができる。つまり、ネットワークシステム500は、多系統の画像が符号化されたコードストリームの利便性を向上させることができる。
【0261】
なお、プログレッション構造に関する指定は、画像復号装置300以外の装置、例えば、ネットワーク501に含まれる制御センタや中継ハブ等が、ネットワーク501の帯域幅や混雑状況等に基づいて行う(画像符号化装置100に提供する)ようにしてもよい。
【0262】
なお、コードストリームがプログレッション構造を有するようにすればよいので、画像データの符号化方式はJPEG2000方式に限定されない。
【0263】
<5.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、例えば、図36に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【0264】
図36において、パーソナルコンピュータ600のCPU(Central Processing Unit)601は、ROM(Read Only Memory)602に記憶されているプログラム、または記憶部613からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0265】
CPU601、ROM602、およびRAM603は、バス604を介して相互に接続されている。このバス604にはまた、入出力インタフェース610も接続されている。
【0266】
入出力インタフェース610には、キーボード、マウスなどよりなる入力部611、CRT(Cathode Ray Tube)ディスプレイやLCD(Liquid Crystal Display)等のディスプレイ、並びにスピーカなどよりなる出力部612、フラッシュメモリ等SSD(Solid State Drive)やハードディスクなどよりなる記憶部613、有線LAN(Local Area Network)や無線LANのインタフェースやモデムなどよりなる通信部614が接続されている。通信部614は、インターネットを含むネットワークを介しての通信処理を行う。
【0267】
入出力インタフェース610にはまた、必要に応じてドライブ615が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア621が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部613にインストールされる。
【0268】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【0269】
この記録媒体は、例えば、図36に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア621により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM602や、記憶部613に含まれるハードディスクなどにより構成される。
【0270】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0271】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0272】
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
【0273】
また、以上において、1つの装置(または処理部)として説明した構成が、複数の装置(または処理部)として構成されるようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成が、まとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成が付加されるようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部が他の装置(または他の処理部)の構成に含まれるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【0274】
例えば、図1のコードストリーム生成部102を独立した装置とし、多系統のコードストリームを入力とし、それらを統合して、プログレッション構造を有する1系統のコードストリームとして出力する装置とするようにしてもよい。
【0275】
本発明は、例えば、3Dデジタルシネマ用編集装置、3Dアーカイブシステム、放送局の3D画像伝送装置、3D画像データベース、3D医用画像の記録システム、3Dゲーム機、テレビ受像機システム、3D対応のBlu Ray Discレコーダ若しくはプレイヤ、自由視点テレビ、臨場感TV会議システム、パーソナルコンピュータ等にインストールされるオーサリング・ツールまたはそのソフトウェア・モジュール等に適用することができる。
【符号の説明】
【0276】
100 画像符号化装置, 101 エンコード部, 102 コードストリーム生成部, 181 プログレッション解析部, 182 指定受付部, 183 プログレッション決定部, 184 統合部, 185 プログレッション情報生成部, 300 画像復号装置, 301 コードストリーム解析部, 302 デコード部, 321 プログレッション解析部, 322 分割部, 323 プログレッション情報生成部, 400 画像符号化装置, 411 奥行きデータ生成部, 412 エンコード部, 500 ネットワークシステム, 501 ネットワーク

【特許請求の範囲】
【請求項1】
画像が符号化された多系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析する解析手段と、
前記解析手段による解析結果に従って前記多系統のコードストリームの統合後のプログレッション構造を決定する決定手段と、
前記決定手段により決定された前記統合後のプログレッション構造に従って、前記多系統のコードストリームを統合し、前記プログレッション構造を有する1系統のコードストリームを生成する統合手段と
を備える画像処理装置。
【請求項2】
前記コードストリームは、レイヤ、解像度レベル、コンポーネント、およびポジションについてのプログレッション構造を有する
請求項1に記載の画像処理装置。
【請求項3】
前記決定手段は、前記解析手段により解析された前記プログレッション構造に、系統についてのプログレッション構造を加えるように、前記統合後のプログレッション構造を決定する
請求項2に記載の画像処理装置。
【請求項4】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を有する場合、系統、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項5】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、レイヤ、解像度レベル、コンポーネント、およびポジションの順の階層構造を有する場合、レイヤ、系統、解像度レベル、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項6】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を有する場合、系統、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項7】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、レイヤ、コンポーネント、およびポジションの順の階層構造を有する場合、解像度レベル、系統、レイヤ、コンポーネント、およびポジションの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項8】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を有する場合、系統、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項9】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、解像度レベル、ポジション、コンポーネント、およびレイヤの順の階層構造を有する場合、解像度レベル、ポジション、系統、コンポーネント、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項10】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を有する場合、系統、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項11】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、ポジション、コンポーネント、解像度レベル、およびレイヤの順の階層構造を有する場合、ポジション、系統、コンポーネント、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項12】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を有する場合、系統、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項13】
前記決定手段は、前記解析手段により解析された前記プログレッション構造が、コンポーネント、ポジション、解像度レベル、およびレイヤの順の階層構造を有する場合、コンポーネント、系統、ポジション、解像度レベル、およびレイヤの順の階層構造を、前記統合後のプログレッション構造とする
請求項3に記載の画像処理装置。
【請求項14】
前記統合後のプログレッション構造に関する情報であるプログレッション情報を生成し、前記コードストリームに付加するプログレッション情報生成手段をさらに備える
請求項1に記載の画像処理装置。
【請求項15】
前記プログレッション情報生成手段は、前記プログレッション情報として、前記統合後のプログレッション構造の階層構造を、統合後の前記コードストリームに含まれる、JPEG2000のCODマーカセグメント中のSGcod、SPcoc、およびPpocの少なくともいずれか1つにおいて定義する
請求項14に記載の画像処理装置。
【請求項16】
前記プログレッション情報生成手段は、前記プログレッション情報として、前記統合手段により統合されたコードストリームの系統数を、統合後の前記コードストリームに含まれる、JPEG2000のSIZマーカセグメント中のRsizにおいて定義する
請求項14に記載の画像処理装置。
【請求項17】
前記プログレッション構造に関する外部からの指定を受け付ける指定受付手段をさらに備え、
前記決定手段は、前記解析手段による解析結果、および、前記指定受付手段により受け付けられた前記外部からの指定に従って、前記統合後のプログレッション構造を決定する
請求項1に記載の画像処理装置。
【請求項18】
各系統の前記画像を、前記プログレッション構造を有するように符号化する符号化手段をさらに備え、
前記解析手段は、前記符号化手段により前記画像が符号化されて生成された各系統の前記コードストリームのプログレッション構造を解析する
請求項1に記載の画像処理装置。
【請求項19】
各系統の前記画像から、前記画像の奥行き方向の位置を示す奥行きデータを生成する奥行きデータ生成手段をさらに備え、
前記符号化手段は、前記奥行きデータ生成手段により生成された前記奥行きデータをさらに符号化し、
前記統合手段は、前記符号化手段により生成された前記奥行きデータのコードストリームを、1系統のコードストリームとして、他の多系統とのコードストリームとともに統合する
請求項18に記載の画像処理装置。
【請求項20】
画像処理装置の画像処理方法であって、
解析手段が、画像が符号化された多系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析し、
決定手段が、解析結果に従って前記多系統のコードストリームの統合後のプログレッション構造を決定し、
統合手段が、決定された前記統合後のプログレッション構造に従って、前記多系統のコードストリームを統合し、前記プログレッション構造を有する1系統のコードストリームを生成する
画像処理方法。
【請求項21】
画像が符号化された多系統のコードストリームが統合されて生成された1系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析する解析手段と、
前記解析手段により解析された前記プログレッション構造に含まれる、系統についてのプログレッション構造に従って、前記統合後の1系統のコードストリームを、前記多系統のコードストリームに分離する分離手段と
を備える画像処理装置。
【請求項22】
前記分離手段により分離された各系統のコードストリームを復号する復号手段をさらに備える
請求項21に記載の画像処理装置。
【請求項23】
前記分離手段により分離された各系統のコードストリームについて、前記プログレッション構造に関する情報であるプログレッション情報を生成し、前記コードストリームに付加するプログレッション情報生成手段をさらに備える
請求項21に記載の画像処理装置。
【請求項24】
前記統合後の1系統のコードストリームは、系統、レイヤ、解像度レベル、コンポーネント、およびポジションについてのプログレッション構造を有する
請求項21に記載の画像処理装置。
【請求項25】
画像処理装置の画像処理方法であって、
解析手段が、画像が符号化された多系統のコードストリームが統合されて生成された1系統のコードストリームが有する、復号画像の拡張性を実現するためのデータ構造であるプログレッション構造を解析し、
分離手段が、解析された前記プログレッション構造に含まれる、系統についてのプログレッション構造に従って、前記統合後の1系統のコードストリームを、前記多系統のコードストリームに分離する
画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2012−19449(P2012−19449A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−156708(P2010−156708)
【出願日】平成22年7月9日(2010.7.9)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】