以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(パッキングおよびパッキング情報の伝送)
2.第2の実施の形態(画像符号化装置)
3.第3の実施の形態(画像復号装置)
4.第4の実施の形態(多視点画像符号化・多視点画像復号装置)
5.第5の実施の形態(コンピュータ)
6.第6の実施の形態(応用例)
7.第7の実施の形態(セット・ユニット・モジュール・プロセッサ)
<1.第1の実施の形態>
<画像符号化の標準化の流れ>
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG(Moving Picture Experts Group)などがある。
特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準である。例えば、MPEG2は、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720x480画素を持つ標準解像度の飛び越し走査画像であれば4乃至8Mbpsの符号量(ビットレート)を割り当てることができる。また、MPEG2圧縮方式を用いることにより、例えば1920x1088画素を持つ高解像度の飛び越し走査画像であれば18乃至22 Mbpsの符号量(ビットレート)を割り当てることができる。これにより、高い圧縮率と良好な画質の実現が可能である。
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
更に、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU-T(International Telecommunication Union Telecommunication Standardization Sector) Q6/16 VCEG(Video Coding Expert Group))という標準の規格化が進められた。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われた。
標準化のスケジュールとしては、2003年3月にはH.264及びMPEG-4 Part10 (Advanced Video Coding、以下AVCと記す)という名の元に国際標準となった。
さらに、このH.264/AVCの拡張として、RGBや4:2:2、4:4:4といった、業務用に必要な符号化ツールや、MPEG-2で規定されていた8x8DCTや量子化マトリクスをも含んだFRExt (Fidelity Range Extension) の標準化が2005年2月に完了した。これにより、H.264/AVCを用いて、映画に含まれるフィルムノイズをも良好に表現することが可能な符号化方式となって、Blu-Ray Disc(商標)等の幅広いアプリケーションに用いられる運びとなった。
しかしながら、昨今、ハイビジョン画像の4倍の、4000x2000画素程度の画像を圧縮したい、あるいは、インターネットのような、限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、更なる高圧縮率符号化に対するニーズが高まっている。このため、先述の、ITU-T傘下のVCEGにおいて、符号化効率の改善に関する検討が継続され行なわれている。
そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-Tと、ISO/IEC(International Organization for Standardization / International Electrotechnical Commission)の共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている。HEVC規格については、2013年1月にドラフト版仕様であるCommittee draftが発行されている(例えば、非特許文献1参照)。
<符号化方式>
以下においては、HEVC(High Efficiency Video Coding)方式の画像符号化・復号に適用する場合を例に、本技術を説明する。
<コーディングユニット>
AVC(Advanced Video Coding)方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されている。しかしながら、16x16画素のマクロブロックでは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素x2000画素)といった大きな画枠に対して最適ではない。
これに対して、HEVC方式においては、図1に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16x16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ(SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図1の例では、LCUの大きさが128であり、最大階層深度が5となる。2Nx2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、NxNの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4x4及び8x8に加え、16x16及び32x32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVC方式におけるマクロブロックはLCUに相当し、ブロック(サブブロック)はCUに相当すると考えることができる。また、AVC方式における動き補償ブロックは、PUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128x128画素のように、AVC方式のマクロブロックより大きく設定されることが一般的である。
よって、以下、LCUは、AVC方式におけるマクロブロックをも含むものとし、CUは、AVC方式におけるブロック(サブブロック)をも含むものとする。つまり、以下の説明に用いる「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、「ブロック」には、例えば、TU、PU、SCU、CU、LCU、サブブロック、マクロブロック、またはスライス等任意の領域(処理単位)が含まれる。もちろん、これら以外の部分領域(処理単位)も含まれる。サイズや処理単位等を限定する必要がある場合は、適宜説明する。
また、本明細書において、CTU(Coding Tree Unit)は、LCU(最大数のCU)のCTB(Coding Tree Block)と、そのLCUベース(レベル)で処理するときのパラメータを含む単位であるとする。また、CTUを構成するCU(Coding Unit)は、CB(Coding Block)と、そのCUベース(レベル)で処理するときのパラメータを含む単位であるとする。
<モード選択>
ところで、AVCそしてHEVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM (Joint Model) と呼ばれるH.264/MPEG-4 AVCの参照ソフトウエア (http://iphome.hhi.de/suehring/tml/index.htm において公開されている) に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(1)のように示される。
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のように示される。
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
<階層符号化>
ところで、これまでの、MPEG2、AVCといった画像符号化方式は、スケーラビリティ(scalability)機能を有していた。スケーラブル符号化(階層符号化)とは、画像を複数レイヤ化(階層化)し、レイヤ毎に符号化する方式である。図2は、階層画像符号化方式の一例を示す図である。
図2に示されるように、画像の階層化においては、スケーラビリティ機能を有する所定のパラメータを基準として1の画像が複数の階層(レイヤ)に分割される。つまり、階層化された画像(階層画像)は、その所定のパラメータの値が互いに異なる複数の階層(レイヤ)の画像を含む。この階層画像の複数のレイヤは、他のレイヤの画像を利用せずに自身のレイヤの画像のみを用いて符号化・復号を行うベースレイヤ(base layer)と、他のレイヤの画像を利用して符号化・復号を行うノンベースレイヤ(non-base layer)(エンハンスメントレイヤ(Enhancement layer)とも称する)とによりなる。ノンベースレイヤは、ベースレイヤの画像を利用するようにしても良いし、他のノンベースレイヤの画像を利用するようにしてもよい。
一般的に、ノンベースレイヤは、冗長性が低減されるように、自身の画像と、他のレイヤの画像との差分画像のデータ(差分データ)により構成される。例えば、1の画像をベースレイヤとノンベースレイヤ(エンハンスメントレイヤとも称する)に2階層化した場合、ベースレイヤのデータのみで元の画像よりも低品質な画像が得られ、ベースレイヤのデータとノンベースレイヤのデータを合成することで、元の画像(すなわち高品質な画像)が得られる。
このように画像を階層化することにより、状況に応じて多様な品質の画像を容易に得ることができる。例えば携帯電話のような、処理能力の低い端末に対しては、ベースレイヤのみの画像圧縮情報を伝送し、空間時間解像度の低い、或いは、画質の良くない動画像を再生し、テレビやパーソナルコンピュータのような、処理能力の高い端末に対しては、ベースレイヤに加えて、エンハンスメントレイヤの画像圧縮情報を伝送し、空間時間解像度の高い、或いは、画質の高い動画像を再生するといったように、トランスコード処理を行うことなく、端末やネットワークの能力に応じた画像圧縮情報を、サーバから送信することが可能となる。
<スケーラブルなパラメータ>
このような階層画像符号化・階層画像復号(スケーラブル符号化・スケーラブル復号)において、スケーラビリティ(scalability)機能を有するパラメータは、任意である。例えば、図3に示されるような空間解像度をそのパラメータとしてもよい(spatial scalability)。このスペーシャルスケーラビリティ(spatial scalability)の場合、レイヤ毎に画像の解像度が異なる。つまり、図3に示されるように、各ピクチャが、元の画像より空間的に低解像度のベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元の空間解像度)が得られるエンハンスメントレイヤの2階層に階層化される。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、図4に示されるような、時間解像度を適用しても良い(temporal scalability)。このテンポラルスケーラビリティ(temporal scalability)の場合、レイヤ毎にフレームレートが異なる。つまり、この場合、図4に示されるように、互いに異なるフレームレートのレイヤに階層化されており、低フレームレートのレイヤに、高フレームレートのレイヤを加えることで、より高フレームレートの動画像を得ることができ、全てのレイヤを加えることで、元の動画像(元のフレームレート)を得ることができる。この階層数は一例であり、任意の階層数に階層化することができる。
さらに、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、図5に示されるような、信号雑音比(SNR(Signal to Noise ratio))を適用しても良い(SNR scalability)。このSNRスケーラビリティ(SNR scalability)の場合、レイヤ毎にSN比が異なる。つまり、この場合、図5に示されるように、各ピクチャが、元の画像よりSNRの低いベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元のSNR)が得られるエンハンスメントレイヤの2階層に階層化される。すなわち、ベースレイヤ(base layer)画像圧縮情報においては、低PSNRの画像に関する情報が伝送されており、これに、エンハンスメントレイヤ(enhancement layer)画像圧縮情報を加えることで、高PSNR画像を再構築することが可能である。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
スケーラビリティ性を持たせるパラメータは、上述した例以外であっても、もちろんよい。例えば、ベースレイヤ(base layer)が8ビット(bit)画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、10ビット(bit)画像が得られるビット深度スケーラビリティ(bit-depth scalability)がある。
また、ベースレイヤ(base layer)が4:2:0フォーマットのコンポーネント画像よりなり、これにエンハンスメントレイヤ(enhancement layer)を加えることにより、4:2:2フォーマットのコンポーネント画像が得られるクロマスケーラビリティ(chroma scalability)がある。
<RAWデータ>
ところで、近年、デモザイク処理が行われる前の画像データであるRAWデータの利用が行われるようになってきた。
多くのデジタルカメラ等で採用されている単板式のCCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサでは各画素が単色の色情報しか持たない。このため、一般的には、撮影時に、各画素に対してその周辺画素から足りない色情報を集め与えることで色情報を補完し、フルカラー画像を作り出す「デモザイク」(de-mosaic)処理が行われる。また、多くのデジタルカメラでは、デモザイクに並行して色や明るさのトーン等を自動レタッチする画像処理が行われ、完成した画像が、例えばJPEG(Joint Photographic Experts Group)やTIFF(Tagged Image File Format)などの汎用画像フォーマットで保存される。
しかしながら、デモザイクや自動レタッチ等の精度は完成画像の画質に大きな影響を及ぼす恐れがあった。また、これらの処理(現像処理とも称する)の後は、ホワイトバランス(色温度)などが固定されてしまうため容易に修正することができなくなってしまう恐れがあった。また、最終保存に使われるJPEGフォーマットは、通常非可逆圧縮であり、水平方向の色情報の間引きも行われるため、元データと比較すると原理的に画質が劣化してしまう恐れがあった。さらに、これらフォーマットの色深度は通常各色8ビット(合計24ビット)しかないため、例えば12ビットの精度があるイメージセンサから受け取った情報を大幅に切り捨てるほかなく、撮影後の露出(画像の明暗や輝度)調整が困難になる恐れがあった。
このように、画質劣化の抑制や、画質に関する各種パラメータの調整の自由度の維持等を目的として、デモザイク前の生データ、すなわちRAWデータの利用が行われるようになってきた。例えば、デジタルカメラ等において、撮像により得られたRAWデータを保存し、ユーザ等が後でそのRAWデータを自由に画像処理することができるようにする機能が搭載されるようになってきた。
しかしながら、RAWデータは、JPEGデータ等と比較すると、そのデータサイズが大きく、保存や伝送等を行うのに不利である。特に、近年においては、画素数の増大等により、そのデータサイズもより大きくなる一方であり、RAWデータの取扱い(保存や伝送等)がより困難になってきていた。
<RAWデータの符号化>
そこで、RAWデータの圧縮の要求が高まり、さらに、より高圧縮な方法が望まれていた。上述したHEVCは、画像データを高効率に符号化することができる。しかしながら、RAWデータは、イメージセンサ等から得られたままのデータであるので、その各画素データが有する情報の色(帯域)は、そのイメージセンサ等の各画素に配置されるフィルタの配列に依存する。
一般的に、このフィルタは、画素領域全体がなるべく一様になるように配列されるので、複数色(複数の帯域)のフィルタが配置される場合、互いに異なる色(帯域)のフィルタが隣接するように配列される。つまり、このようなイメージセンサ等から得られるRAWデータは、互いの相関性が低い画素同士が隣接することになる。
HEVCのような画像符号化方式は、画像の空間方向若しくは時間方向の相関性を利用して情報量を圧縮するため、このように相関性の低い画素同士が隣接するRAWデータの符号化に単純に適用しても、効率よく符号化することが困難であった。
<パッキング処理>
そこで、符号化側において、デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理を行い、そのパッキング処理が行われたRAWデータを符号化するようにする。つまり、RAW画像データを符号化する際、その符号化の前の処理(プレ処理)として、RAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理を行うようにする。
このように符号化の前にパッキング処理を行うことにより、相関性の高い画素を集めた画像を符号化することができるようになる。そのため、通常のデモザイク処理後の画像データを符号化する場合と同様の方法で(RAWデータ用の特別な処理を必要とせずに)、通常のデモザイク処理後の画像データの場合と同様に、RAWデータを高効率に符号化することができる。つまり、より容易に符号化効率を向上させることができる。
パッキング処理は、例えば、RAWデータの各画素データを、互いの相関性が高いデータ毎に分離し、その互いの相関性が高いデータ毎に分離された各画素データ群を再配置し、パッキング処理の逆処理であるアンパッキング処理のために、パッキング処理に関するパッキング情報を生成するようにしてもよい。
このようにすることにより、RAWデータの各画素データを互いの相関性の高さに応じて並べ替えることができるとともに、パッキング情報を利用して容易に元のRAWデータを復元することができる。
<分離>
RAWデータの各画素データを互いの相関性が高いデータ毎に分離する方法は、任意である。例えば、各画素データの互いの相関性を調査し、その調査結果に基づいて分離を行うようにしてもよい。また、例えば、予め与えられた情報を用いるようにしてもよい。例えば、同種のフィルタが割り当てられた画素毎に各画素データを分離するようにしてもよい。例えば、カラーフィルタが割り当てられている場合、同色のカラーフィルタが割り当てられた画素毎に各画素データを分離するようにしてもよい。例えば、RGBのカラーフィルタが割り当てられている場合、画素データを、赤(R)のフィルタが割り当てられた画素の画素データ、緑(G)のフィルタが割り当てられた画素の画素データ、青(B)のフィルタが割り当てられた画素の画素データの3つのグループ(画素データ群)に分離するようにしてもよい。
もちろん、カラーフィルタの色および色数は任意である。また、このフィルタが、例えば赤外光フィルタ等の可視光以外のフィルタを有していてもよい。例えば、全帯域を透過するフィルタが割り当てられる画素(若しくはフィルタが割り当てられない画素)であるホワイト画素(W)が含まれるようにしてもよい。また、例えば、デプスデータ(Depth)を検出する画素が含まれるようにしてもよい。さらに、例えば、RGBと赤外光のフィルタからなるフィルタが割り当てられるようにしてもよい。この場合、例えば、画素データを、赤(R)のフィルタが割り当てられた画素の画素データ、緑(G)のフィルタが割り当てられた画素の画素データ、青(B)のフィルタが割り当てられた画素の画素データ、赤外光のフィルタが割り当てられた画素の画素データの4つのグループ(画素データ群)に分離するようにしてもよい。
また、予め与えられた情報を用いる場合であっても、フィルタ以外の情報に基づいて分離を行うようにしてもよい。例えば、画素の一部若しくは全部が、フィルタ以外の情報に基づいて分離を行うようにしてもよい。
以上のように、割り当てられたフィルタの情報を利用することにより、各画素データ間の相関性の調査が不要になるので、より容易に画素データの分離を行うことができる。
<再配置>
以上のように相関性が高いデータ毎に分離された各画素データ群を再配置する方法は、任意である。
例えば、図6に示されるように、各画素データ群を、所定の色空間の各コンポーネントとして再配置するようにしてもよい。図6の例の場合、図中左に示されるように、RAWデータには、ベイヤ(Bayer)配列のRGBのカラーフィルタが割り当てられている。このRAWデータに対して符号化のプレ処理としてパッキング処理が行われ、図中右に示されるように、各色の画素よりなる画素データ群に分離される。そして、各画素データ群が、YCbCr色空間の各コンポーネント(カラープレーン)として再配置される。より具体的には、白四角で示される緑(G)画素データ群が、YCbCrコンポーネント信号の輝度(Y)に対応づけられ、右上左下斜線模様の四角で示される青(B)画素データ群が、YCbCrコンポーネント信号の色差(Cb)に対応づけられ、右下左上斜線模様の四角で示される赤(R)画素データ群が、YCbCrコンポーネント信号の色差(Cr)に対応づけられている。なお、各画素データ群を再配置する色空間は任意であり、例えばYUV等、YCbCr以外の色空間であってもよい。
以上のようにカラープレーンに分離されたRAWデータは、例えば、4:2:0、4:2:2、若しくは4:4:4等の、所定の色フォーマットとして符号化される。どの色フォーマットで符号化するかは、各カラープレーンの画素数比による。例えば、図6の場合、カラーフィルタがベイヤ配列であるので、緑(G)の画素データ群の画素数が、赤(R)の画素データ群や青(B)の画素データ群の2倍である。したがって、色フォーマットは、4:2:0となる。
なお、各カラープレーン(コンポーネント)は、互いに独立に符号化するようにしてもよいし、各カラープレーンを共通に(一緒に)符号化するようにしてもよい。
また、以上のような符号化を、図7の例のように、RAWデータの画像の部分領域毎に行うようにしてもよい。図7の例の場合、図6の場合と同様にベイヤ(Bayer)配列のRGBのカラーフィルタが割り当てられたRAWデータがパッキング処理により色毎に分離されて再配置された各画素データ群が、例えばタイル若しくはスライス等といった、所定の部分領域毎に符号化される。このようにすることにより、その部分領域(タイルやスライス等)毎に復号することができる。
また、例えば、図8に示されるように、各画素データ群を、1の画像の互いに異なる部分領域として再配置するようにしてもよい。図8の例の場合、図6の場合と同様にベイヤ(Bayer)配列のRGBのカラーフィルタが割り当てられたRAWデータがパッキング処理により、空間的に分離されて再配置される。例えば、分離された各画素データ群が、1の画像の互いに異なる部分領域(例えばタイルやスライス等)に再配置される。
この場合、RAWデータは、1の成分(例えば輝度(Y)のみ)の1の画像として符号化される。すなわち、全ての画素データ群が輝度成分としてみなされ、RAWデータは、4:0:0フォーマットとして符号化される。また、その際、RAWデータは、上述したように各画素データ群を分離するのに用いた部分領域(タイルやスライス等)毎に符号化される。
さらに、例えば、図9に示されるように、各画素データ群を、階層化された画像データの互いに異なる階層(レイヤ)のデータとして再配置するようにしてもよい。図9の例の場合、RAWデータが、図6の場合と同様にパッキング処理により、互いの相関性が高いデータ毎に空間的に分離されて再配置される。例えば、分離された各画素データ群が、1の画像の互いに異なる階層(レイヤ0乃至レイヤ3)に再配置される。
各階層(レイヤ)のデータは、互いに独立に符号化するようにしてもよいし、共通に(一緒に)符号化するようにしてもよい。例えば、階層間で(画素データ群間で)相関がある場合、レイヤ間予測を用いて符号化を行うことにより、符号化効率を向上させることができる。また、例えば、Depth情報のように、階層間で(画素データ群間で)相関がない場合、各階層(レイヤ)のデータを互いに独立に符号化することにより、階層(レイヤ)毎に復号することができるようになる。
また、例えば、図10に示されるように、デモザイク処理が行われた画像データを、一部の階層に再配置するようにしてもよい。換言するに、上述した階層の一部に、デモザイク処理が行われた画像データを配置するようにしてもよい。図10の例の場合、図6の場合と同様にベイヤ(Bayer)配列のRGBのカラーフィルタが割り当てられたRAWデータがパッキング処理により、色毎に分離され、各色の画素データ群が空間的に分離されて再配置される。例えば、分離された各画素データ群が、1の画像の互いに異なる階層(レイヤ1乃至レイヤ3)に再配置される。そして、所定の階層(レイヤ0)には、RAWデータを現像(デモザイク処理や、色や明るさのトーン等をレタッチする画像処理等)した画像データ(若しくは、その画像を縮小したサムネイル画像のデータ(サムネイル画像データ))が配置される。
図9の場合と同様に、各階層(レイヤ)のデータは、互いに独立に符号化するようにしてもよいし、共通に(一緒に)符号化するようにしてもよい。
さらに、例えば、図11に示されるように、各画素データ群を、複数の画像の互いに異なる部分領域として再配置するようにしてもよい。図11の例の場合、図6の場合と同様にベイヤ(Bayer)配列のRGBのカラーフィルタが割り当てられたRAWデータがパッキング処理される。このとき、図11に示されるように、同じ緑(G)のフィルタが割り当てられた画素であっても、緑(G0)の画素と緑(G1)の画素とは、互いに位相が異なる(空間的に左右に1ピクセルずれている)ため、イントラ予測等が正しく行われない恐れがある。そこで、図11の例では、この緑(G0)の画素と緑(G1)の画素とが互いに異なる画素データ群に分離され、再配置される。
図11の例では、緑(G0)の画素データ群と緑(G1)の画素データ群とが、互いに異なる画像(フレーム)に再配置される。例えば、緑(G0)の画素データ群がフレーム0に再配置され、緑(G1)の画素データ群がフレーム1に再配置される。
なお、赤(R)の画素データ群や青(B)の画素データ群は、それぞれ、いずれのフレーム(フレーム0若しくはフレーム1)に再配置されるようにしてもよい。このとき、赤(R)の画素データ群や青(B)の画素データ群は、緑(G0)の画素データ群や緑(G1)の画素データ群と異なる部分領域(タイルやスライス等)に再配置されるようにしてもよいし、緑(G0)の画素データ群や緑(G1)の画素データ群と異なる階層(レイヤ)に再配置されるようにしてもよい。
このように複数の画像(フレーム)に再配置された各画素データ群は、その画像(フレーム)毎に符号化される。
なお、緑(G0)の画素データ群と緑(G1)の画素データ群とが、図8を参照して上述したように、同一画像の互いに異なる部分領域(タイルやスライス等)に再配置されるようにしてもよい。この場合、緑(G0)の画素データ群、緑(G1)の画素データ群、赤(R)の画素データ群、および青(B)の画素データ群の4つの画素データ群が、互いに異なる部分領域(タイルやスライス等)に再配置される。この場合の符号化は、図8を参照して説明した場合と同様に行われる。
また、緑(G0)の画素データ群と緑(G1)の画素データ群とが、図9や図10を参照して上述したように、同一画像の互いに異なる階層(レイヤ)に再配置されるようにしてもよい。この場合、緑(G0)の画素データ群、緑(G1)の画素データ群、赤(R)の画素データ群、および青(B)の画素データ群の4つの画素データ群が、互いに異なる階層(レイヤ)に再配置される。この場合の符号化は、図9や図10を参照して説明した場合と同様に行われる。
なお、緑(G0)の画素と緑(G1)の画素とは、高い相関性を有する。そのため、図11の例のように、緑(G0)の画素データ群と緑(G1)の画素データ群とを、互いに異なる画像(フレーム若しくはレイヤ)に再配置する場合、図12の例のように、これらの画素データ間(フレーム間若しくはレイヤ間)にインター(Inter)予測を適用することにより、符号化効率を向上させることができる。なお、上述したように、緑(G0)の画素と緑(G1)の画素とは、空間位置が互いに異なる(位置がずれている)。このずれは、プレ処理として調整するようにしてもよいが、インター予測において動きベクトルを用いて調整するようにしてもよい。
また、以上のように分離された画素データ群は、一般的に、各画素の位置が離散的(とびとび)である。したがって、符号化の際のデブロッキングフィルタ(Deblocking filter)やSAO(Sample adaptive offset)等の処理が正しく動作しない恐れがある。そこで、符号化において、これらの処理を行うインループフィルタ(In-loop filter)処理を禁止する(実行しない)ように制御してもよい。例えば、プレ処理において、上述したようなパッキング処理を行う場合、パラメータセットにおいて、このインループフィルタ処理に関するシンタクス要素の値を、インループフィルタ処理を実行しないようにする値に設定するようにしてもよい。
<パッキング処理の特徴>
上述したパッキング方法の特徴を図14に示す。例えば、各コンポーネント(画素データ群)をカラープレーンに分離するように再配置し、各カラープレーンを一緒に符号化する場合、パラメータが共通化されるので、各成分を独立に復号することができなくなる。また、この場合、複数のピクチャやスライスに再配置を行わない限り、対応可能なコンポーネント数が3以下に制限される。なお、この方法の場合、HEVC規格のバージョン1の仕様のデコーダで対応することができる。また、各カラープレーンを独立に符号化する場合、対応可能なコンポーネント数が3以下に制限される。
タイルやスライス等の部分領域を用いて、4;0;0フォーマットで符号化する方法の場合、任意の数のコンポーネントに対応可能である。複数階層(レイヤ)に再配置を行う方法の場合、階層数の制限以下(例えば64階層以下)であれば、任意の数のコンポーネントに対応可能である。また、符号化の際にレイヤ間予測を行うことにより、コンポーネント間の相関を利用して符号化効率の向上を図ることができる。レイヤ間予測を行うことにより符号化効率が向上するか否かは、例えばコンポーネント間の相関性の高さ等、種々の条件による。例えばDepthデータのように他のコンポーネントとの相関性が低い場合は、独立に符号化する方が望ましい場合も考えられる。
また、例えばベースレイヤに現像処理後の画像(若しくはそのサムネイル画像)を配置することにより、HEVC規格のバージョン1の仕様のデコーダには、その現像処理後の画像(若しくはそのサムネイル画像)を復号させるようにすることができる。
符号化のプレ処理として、以上のようなパッキング処理を行うことにより、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
なお、パッキング処理の内容は、デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるものであれば、どのようなものであってもよく、上述した例に限らない。
<パッキング情報の提供>
上述したようにRAWデータに対してパッキング処理を行ってから符号化して得られた符号化データを復号すると、パッキング処理後のRAWデータが得られる。つまり、元のRAWデータを復元するためには、復号処理の後に、さらに、パッキング処理の逆処理であるアンパッキング処理を行う必要がある。
実行されたパッキング処理に対して正しい方法でアンパッキング処理を行わせるためには、パッキング処理の際に生成される、そのパッキング処理に関する情報であるパッキング情報を復号側に提供するのが望ましい。もちろん、パッキング情報の提供を省略し、予め定められた方法でパッキング処理とアンパッキング処理が行われるようにしてもよいが、処理方法が限定されてしまう。そのため、符号化側と復号側の仕様が限定され、システムの汎用性が低減してしまう。上述したようにパッキング情報を授受することにより、パッキング処理(アンパッキング処理)の処理内容の自由度の低減を抑制することができ、システムの汎用性の低減を抑制することができる。すなわち、より多様な仕様のエンコーダで符号化された符号化データを、より多様な仕様のデコーダで正しく復号することができるようにすることができる。
このパッキング情報の提供方法は任意である。例えば、パッキング情報を符号化データのビットストリームとは異なるデータとして提供することもできる。
また、パッキング情報を符号化データのビットストリームに含めて提供することもできる。例えば、符号化側において、デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理に関するパッキング情報を含む付加情報を設定し、パッキング処理が行われたRAWデータを符号化し、得られた符号化データと、設定された付加情報とを含むビットストリームを生成するようにしてもよい。
このようにすることにより、ビットストリームとは別にパッキング情報の提供方法を設ける必要がないので、パッキング情報の授受がより容易になる。また、1つのビットストリームにまとめられることにより、授受するデータの管理が容易になる。つまり、復号側においてより容易にパッキング情報を取得(パッキング処理の内容を把握)することができ、符号化データを正しく復号(アンパッキング処理も含む)することができる。つまり、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<パッキング情報の付加>
パッキング情報のビットストリームへの含め方は、符号化方法に準拠するのが望ましい。このようにすることにより、その符号化方法に準拠する仕様のデコーダによって、ビットストリームを復号し、アンパッキング処理することができる。つまり、より容易にビットストリームを正しく復号(アンパッキング処理も含む)することができる。つまり、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
例えば、RAWデータに対するパッキング処理に応じて、パラメータセットを設定するようにしてもよい。例えば、ビットストリームの内容がRAWデータであるか否かを示すフラグ(general_camera_sensor_image_packed_flag)を、ビデオパラメータセット(VPS(Video Parameter Set))やシーケンスパラメータセット(SPS(Sequence Parameter Set))等において設定するようにしてもよい。
図15のAにそのシンタクスの例を示す。また、図15のBにそのセマンティクスの例を示す。general_camera_sensor_image_packed_flagは、ビットストリームの内容がカメラセンサ画像(RAW画像)のデータ(すなわちRAWデータ)の符号化データであるか否かを示すフラグ情報である。
そして、パッキング情報を含む付加情報として、SEI(Supplemental Enhancement Information)を設けるようにしてもよい。例えば、パッキング情報を含む付加情報として、Color filter array packing information SEI(CFAP SEI)を設定するようにしてもよい。
その場合、例えば、general_camera_sensor_image_packed_flagの値が「1」であれば、このCFAP SEIが存在することを示し、general_camera_sensor_image_packed_flagの値が「0」であれば、このCFAP SEIが存在しないことを示すようにしてもよい。なお、デコーダが、CFAP SEIを処理することができない場合、このgeneral_camera_sensor_image_packed_flagの値を無視すればよい。
図16にCFAP SEIのシンタクスの例を示す。図17に、セマンティクスの例を示す。図16に示されるように、CFAP SEIにおいては、CFAP_id, CFAP_type, CFAP_component_num, CFAP_component_id[i], CFAP_mapping_info[i], CFAP_bitstream_constraint_indication_flag, CFAP_no_inloop_filter_used_flag等のシンタクス要素が設定される。
図17に示されるように、CFAP_idは、CFAP_SEI同士を区別するためのIDである。任意の値を設定することができる。1つのビットストリームに複数のCFAP_SEIを設定する場合に有意である。CFAP_typeは、パッキング処理のタイプ(パッキング処理における画素データの並び替え方法)を示す情報である。CFAP_typeの値の例を図18に示す。図18の例の場合、CFAP_type = 0は、図6の例のように、コンポーネントをカラープレーンに分離する方法を示す。また、CFAP_type = 1は、図8の例のように、コンポーネントをスライスに再配置し、YUV400フォーマットで符号化する方法を示す。また、CFAP_type = 2は、図8の例のように、コンポーネントをタイルに再配置し、YUV400フォーマットで符号化する方法を示す。さらに、CFAP_type = 3は、図9の例のように、コンポーネントをレイヤに再配置する方法を示す。
なお、CFAP_typeの値は任意である。各パッキング方法について、図18に示される例以外の値を割り当てるようにしてもよい。例えば、数字以外の値を割り当てるようにしてもよい。また、図18に示されるパッキング方法以外のパッキング方法についてCFAP_typeに値を割り当てるようにしてもよい。なお、図18に示されるCFAP_typeの値にパッキング方法を割り当てるテーブル情報は、符号化規格として予め定義されていてもよいし、例えばCFAP SEIやパラメータセット等に含めて復号側に伝送されるようにしてもよい。その場合、任意のパッキングタイプをテーブルに追加することができる。
CFAP_component_numは、パッキング処理が行われたRAWデータのコンポーネント数を示す情報である。CFAP_component_numには、1以上の値が設定される。例えばベイヤ配列のカラーフィルタ(Bayer filter)の場合、RGBの3色なので、CFAP_component_numの値は「3」に設定される。また、例えばベイヤ配列のカラーフィルタ(Bayer filter)であって、緑(G)を空間位相によって緑(G0)と緑(G1)に分ける場合、RG0G1Bの4コンポーネントとして扱われるので、CFAP_component_numの値は「4」に設定される。
CFAP_component_id[i]は、パッキング処理が行われたRAWデータの各コンポーネントの識別情報である。この値は、各コンポーネントを識別することができる限り、任意の値を設定することができる。
CFAP_mapping_info[i]は、パッキング処理が行われたRAWデータの構成を示す情報である。この値は、CFAP_typeと組み合わせて用いられる。詳細については後述する。
CFAP_bitstream_constraint_indication_flagは、エンコーダが符号化の際になんらかのビットストリーム制約を行うかを示す情報である。この値が「1」の場合、エンコーダが何らかのビットストリーム制約を行ったことを示し、具体的な追加情報が伝送されることを示す。また、この値が「0」の場合、ビットストリーム制約が無いことを示す。
CFAP_no_inloop_filter_used_flagは、エンコーダが符号化の際にインループフィルタを用いるかを示す情報である。この値が「1」の場合、このビットストリーム中でインループ(In-loop)フィルタ(例えば、でブロッキング(Deblocking)フィルタや、SAO等)が用いられていないことを示す。また、この値が「0」の場合、そういった制約は無い。なお、このCFAP_no_inloop_filter_used_flagが伝送されない場合、復号側において、その値が「0」であるものとされる。
なお、CFAP SEIで定義するパッキング情報は、パッキング処理に関するものであればどのようなものであってもよく、上述したシンタクス要素の例に限定されない。
<CFAP SEIの設定例>
図19は、以上のようなCFAP SEIの設定例を示す図である。図19の例では、図19のAに示されるように、CFAP_typeの値が「1」に設定され、CFAP_component_numの値が「3」に設定され、CFAP_mapping_info[0]の値が「0」に設定され、CFAP_mapping_info[1]の値が「1」に設定され、CFAP_mapping_info[2]の値が「2」に設定されている。この場合、図19のBに示されるように、スライス分割でコンポーネントが分けられる。そして、スライス番号0のスライスにコンポーネント番号0のコンポーネント(例えばG)のが格納され、スライス番号1のスライスにコンポーネント番号1のコンポーネント(例えばR)が格納され、スライス番号2のスライスにコンポーネント番号2のコンポーネント(例えばB)が格納される。そして、符号化は、4:0:0フォーマットで行われる。このことは、例えば、ビットストリーム中においてchroma_format_idcの値が「0」に設定されていることからも把握することができるが、メタデータ(CFAP SEI)においてCFAP_typeの値(「1」)を参照することにより、より容易に把握することができる。
図20は、CFAP SEIの他の設定例を示す図である。図20の例では、図20のAに示されるように、CFAP_typeの値が「3」に設定され、CFAP_component_numの値が「3」に設定され、CFAP_mapping_info[0]の値が「1」に設定され、CFAP_mapping_info[1]の値が「2」に設定され、CFAP_mapping_info[2]の値が「3」に設定されている。この場合、図20のBに示されるように、レイヤにコンポーネントが分けられる。そして、レイヤ番号1のレイヤにコンポーネント番号0のコンポーネント(例えばG)が格納され、レイヤ番号2のレイヤにコンポーネント番号1のコンポーネント(例えばR)が格納され、レイヤ番号3のレイヤにコンポーネント番号2のコンポーネント(例えばB)が格納される。なお、レイヤ番号0のレイヤにはコンポーネント番号が割り当てられていない。これは、レイヤ番号0のレイヤに通常の(現像処理後の)YUV画像が格納されることを示す。
図21は、CFAP SEIのさらに他の設定例を示す図である。図21の例では、コンポーネントが2つのフレームに再配置される。そのため、2つのにCFAP_SEIが設定されている。図21のAに示されるように、1フレーム目に関するCFAP_SEIでは、CFAP_idの値が「0」に設定され、CFAP_typeの値が「2」に設定され、CFAP_component_numの値が「2」に設定され、CFAP_component_id[0]の値が「0」に設定され、CFAP_mapping_info[0]の値が「0」に設定され、CFAP_component_id[1]の値が「2」に設定され、CFAP_mapping_info[1]の値が「1」に設定されている。
また、2フレーム目に関するCFAP_SEIでは、CFAP_idの値が「1」に設定され、CFAP_typeの値が「2」に設定され、CFAP_component_numの値が「2」に設定され、CFAP_component_id[0]の値が「1」に設定され、CFAP_mapping_info[0]の値が「0」に設定され、CFAP_component_id[1]の値が「3」に設定され、CFAP_mapping_info[1]の値が「1」に設定されている。
この場合、図21のBに示されるように、フレーム番号0のフレームのタイル番号0のタイルにコンポーネント番号0のコンポーネント(例えばG0)が格納され、タイル番号1のタイルにコンポーネント番号2のコンポーネント(例えばR)が格納される。また、フレーム番号1のフレームのタイル番号0のタイルにコンポーネント番号1のコンポーネント(例えばG1)が格納され、タイル番号1のタイルにコンポーネント番号3のコンポーネント(例えばB)が格納される。
以上のように、CFAP_SEIの各シンタクス要素の値を設定することにより、様々なパッキング方法を表現することができる。つまり、復号側において、このCFAP_SEIを参照することにより、容易に正しくアンパッキング処理を行うことができる。
<パラメータセット>
また、上述した各種のパッキング処理の内容に応じて、各種パラメータセットの各種シンタクス要素を、適宜設定するようにしてもよい。
図22に、コンポーネントをカラープレーンに分離し、YCを共通に符号化する(図6の例)の場合における各種シンタクス要素の設定例を示す。また、図23に、コンポーネントをカラープレーンに分離し、YCを独立に符号化する(図6の例)の場合における各種シンタクス要素の設定例を示す。なお、図23には、図22に示される例と設定が異なる部分についてのみ示している。さらに、図24に、コンポーネントをカラープレーンに分離し、符号化をスライスやタイル等の部分領域毎に行う(図7の例の)場合における各種シンタクス要素の設定例を示す。なお、図24には、図22に示される例と設定が異なる部分についてのみ示している。図24に示されるように、ピクチャパラメータセットにおいて一部のシンタクス要素の設定を変更し、部分領域の数だけスライスヘッダを設けるだけで、容易に、このような部分領域毎の符号化・復号に対応することができる。
図25に、コンポーネントを輝度(Y)のスライスやタイル等の部分領域に分離し、4:0:0フォーマットとして符号化する(図8の例)の場合における各種シンタクス要素の設定例を示す。なお、図25には、図22に示される例と設定が異なる部分についてのみ示している。また、図26に、コンポーネントを階層(レイヤ)に分離する(図9の例)の場合における各種シンタクス要素の設定例を示す。なお、図26には、図22に示される例と設定が異なる部分についてのみ示している。さらに、図27に、コンポーネントを階層(レイヤ)に分離し、ベースレイヤに現像処理されたサムネイル画像を格納する(図10の例)の場合における各種シンタクス要素の設定例を示す。なお、図27には、図22および図26に示される例と設定が異なる部分についてのみ示している。
図28に、インループフィルタ(In-loop filter)を禁止する(図13の例の)場合における各種シンタクス要素の設定例を示す。
以上のように、パッキング処理の内容に応じて、各種パラメータセットの各種シンタクス要素の値を適宜設定するようにすることにより、エンコーダは、パッキング処理されたRAWデータを適切に符号化することができる。また、デコーダは、そのパラメータセットを参照することにより、より容易に、その符号化データを正しく復号することができる。すなわち、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<アンパッキング処理>
また、以上のような符号化側の処理に対応するように、復号側において、デモザイク処理が行われる前の画像データであるRAWデータが符号化された符号化データを復号し、復号されて得られる、各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理が行われたRAWデータに対して、その画素データをパッキング処理が行われる前の並びに戻すアンパッキング処理を行うようにする。
また、そのアンパッキング処理において、パッキング処理に関するパッキング情報をパースし、パースされたパッキング情報に基づいて、パッキング処理が行われたRAWデータの各画素データを分離し、パースされたパッキング情報に基づいて、互いの相関性が高いデータ毎に分離された各画素データを、パッキング処理が行われる前の並びに戻すように再配置するようにしてもよい。
その際、パッキング処理により同種のフィルタが割り当てられた画素毎に並べ替えられた各画素データを分離し、フィルタの配列に従って各画素データを再配置するようにしてもよい。また、パッキング処理により同色のカラーフィルタが割り当てられた画素毎に並べ替えられた各画素データを分離し、カラーフィルタの配列に従って各画素データを再配置するようにしてもよい。また、互いの相関性が高いデータ毎に所定の色空間の各コンポーネントに並べ替えられた各画素データを分離するようにしてもよい。また、互いの相関性が高いデータ毎に1または複数の画像の互いに異なる部分領域に並べ替えられた各画素データを分離するようにしてもよい。また、互いの相関性が高いデータ毎に、階層化された画像データの互いに異なる階層に並べ替えられた各画素データを分離するようにしてもよい。また、デモザイク処理が行われた画像データが配置される一部の階層を除く、その他の階層に並べ替えられた各画素データを分離するようにしてもよい。
また、復号の際に、各コンポーネントがRAWデータの画像の部分領域毎に符号化された符号化データを、部分領域毎に復号するようにしてもよい。
以上のようにすることにより、相関性の高い画素を集めるようにパッキング処理されたRAWデータの符号化データを、通常のデモザイク処理後の画像データが符号化された符号化データを復号する場合と同様の方法で(RAWデータ用の特別な処理を必要とせずに)、正しく復号してアンパッキング処理することができる。つまり、より容易に、上述したパッキング処理を伴う符号化方法に対応する方法で正しく復号(アンパッキング処理を含む)することができる。すなわち、より容易に符号化効率を向上させることができる。
<パッキング情報の利用>
また、以上のような符号化側の処理に対応するように、復号側において、ビットストリームに含まれる、デモザイク処理が行われる前の画像データであるRAWデータが符号化された符号化データを復号し、そのビットストリームに含まれる付加情報から、パッキング処理に関する情報であって、符号化データが復号されて得られたパッキング処理が行われたRAWデータの画素データをパッキング処理が行われる前の並びに戻すアンパッキング処理に用いられるパッキング情報を抽出するようにしてもよい。
なお、そのパッキング情報として、パッキング処理における前記画素データの並び替え方法を示す情報を抽出するようにしてもよい。また、パッキング処理が行われたRAWデータのコンポーネント数を示す情報を抽出するようにしてもよい。また、パッキング処理が行われたRAWデータの各コンポーネントの識別情報を抽出するようにしてもよい。また、パッキング処理が行われたRAWデータの構成を示す情報を抽出するようにしてもよい。また、符号化データの生成においてビットストリーム制約が行われたかを示す情報を抽出するようにしてもよい。また、符号化データの生成においてインループフィルタが用いられていないかを示す情報を抽出するようにしてもよい。
なお、ビットストリームに含まれるSEI(Supplemental Enhancement Information)から、そのパッキング情報を抽出するようにしてもよい。また、抽出されたパッキング情報を用いて、符号化データが復号されて得られたパッキング処理が行われたRAWデータに対して、アンパッキング処理を行うようにしてもよい。
以上のように、ビットストリームからパッキング情報を抽出し、アンパッキング処理に利用するようにすることにより、デコーダは、上述したようにパッキング処理されたRAWデータが符号化された符号化データを、より容易に適切に復号し、アンパッキング処理することができる。すなわち、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<2.第2の実施の形態>
<画像符号化装置>
次に、以上のような本技術を実現する装置とその方法について説明する。図29は、本技術を適用した画像処理装置の一態様である、画像符号化装置を示す図である。図29に示される画像符号化装置100は、デモザイク処理が行われる前の画像データであるRAWデータを、より容易に高効率に符号化する装置である。図29に示されるように、画像符号化装置100は、カメラセンサ101、パッキング部102、画像符号化部103、および伝送部104を有する。
カメラセンサ101は、画素領域に入射された被写体からの光を光電変換することにより被写体を撮像してRAWデータを生成し、そのRAWデータをパッキング部102に供給する。なお、RAWデータを得てパッキング部102に供給することができればよいので、カメラセンサ101以外の処理部であってもよい。例えば、カメラセンサ101の代わりに、外部からRAWデータを取得する入力部等を設けるようにしてもよい。
パッキング部102は、供給されたRAWデータに対して、第1の実施の形態において説明したような、各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理を行う。また、パッキング部102は、そのパッキング処理に関するパッキング情報を生成する。パッキング部102は、パッキング処理されたRAWデータとパッキング情報を、画像符号化部103に供給する。
画像符号化部103は、第1の実施の形態において説明したように、供給されたパッキング処理後のRAWデータを、デモザイク処理後の画像データを符号化する場合と基本的に同様の方法で符号化する。また、画像符号化部103は、得られたパッキング情報に基づいてパラメータセットを設定したり、付加情報を生成したりする。画像符号化部103は、得られた符号化データと、パッキング情報を含む付加情報とを含むビットストリームを生成する。画像符号化部103は、得られたビットストリームを伝送部104に供給する。
伝送部104は、供給されたビットストリームを、例えば記録媒体や伝送路等を介して、復号側に伝送する。つまり、伝送部104は、ビットストリームを記録媒体に記録したり、ネットワーク等の伝送路に送信したりする。
なお、パッキング部102および画像符号化部103を1つの処理部(RAWデータ符号化部105)として構成するようにしてもよい。つまり、例えば、このRAWデータ符号化部105(パッキング部102および画像符号化部103)を1つの画像処理装置として構成するようにしてもよい。
<パッキング部>
図30は、図29のパッキング部102の主な構成例を示すブロック図である。図30に示されるように、パッキング部102は、分離部111、再配置部112、およびパッキング情報生成部113を有する。
分離部111は、供給されるRAWデータの各画素データを、例えば第1の実施の形態において説明したような方法で、互いの相関性が高いデータ毎に分離する。分離部111は、互いの相関性が高いデータ毎に分離された各画素データ群を再配置部112に供給する。
再配置部112は、供給された各画素データ群を、例えば第1の実施の形態において説明したような方法で再配置する。再配置部112は、各画素データ群を再配置したRAWデータを、パッキング情報生成部113に供給する。
パッキング情報生成部113は、例えば、第1の実施の形態において説明したような、供給されるRAWデータに行われたパッキング処理に関するパッキング情報を生成する。パッキング情報生成部113は、供給されたパッキング処理後のRAWデータと、生成したパッキング情報を画像符号化部103(図29)に供給する。
<画像符号化部>
図31は、図29の画像符号化部103の主な構成例を示すブロック図である。図31に示されるように、画像符号化部103は、設定部121および符号化部122を有する。
設定部121は、供給されたパッキング情報に基づいて、供給されたパッキング処理後のRAWデータの符号化データに付加するパラメータセットや付加情報(例えばCFAP_SEI)を設定する。設定部121は、設定したパラメータセットや付加情報(例えばCFAP_SEI)を、供給されたパッキング情報やパッキング処理後のRAWデータとともに、符号化部122に供給する。
符号化部122は、供給されたパラメータセットや付加情報(例えばCFAP_SEI)に基づいて、供給されたパッキング処理後のRAWデータを、現像処理後の画像データを符号化する場合と基本的に同様の方法で符号化する。符号化部122は、その符号化により得られた符号化データ、並びに、供給されたパラメータセットや付加情報等を含むビットストリーム(符号化ストリームとも称する)を生成し、伝送部104(図29)に供給する。
<符号化部>
図32は、図31の符号化部122の主な構成例を示すブロック図である。符号化部122の符号化方法は任意であるが、例えば、符号化部122は、パッキング処理後のRAWデータに対して、階層画像符号化(スケーラブル符号化)を行う。図32においては、パッキング処理後のRAWデータがベースレイヤとエンハンスメントレイヤの2階層よりなり、符号化部122が、そのRAWデータを階層画像符号化(スケーラブル符号化)する場合について説明する。図32に示されるように、符号化部122は、ベースレイヤ画像符号化部131、エンハンスメントレイヤ画像符号化部132、多重化部133、および制御部134を有する。
ベースレイヤ画像符号化部131には、パッキング処理後のRAWデータのベースレイヤのデータ(ベースレイヤ画像とも称する)が供給される。ベースレイヤ画像符号化部131は、そのベースレイヤのデータを符号化し、その符号化データを含むビットストリームであるベースレイヤ画像符号化ストリームを生成する。
エンハンスメントレイヤ画像符号化部132には、パッキング処理後のRAWデータのエンハンスメントレイヤのデータ(エンハンスメントレイヤ画像とも称する)が供給される。エンハンスメントレイヤ画像符号化部132は、そのエンハンスメントレイヤのデータを符号化し、その符号化データを含むビットストリームであるエンハンスメントレイヤ画像符号化ストリームを生成する。
多重化部133は、ベースレイヤ画像符号化部131において生成されたベースレイヤ画像符号化ストリームと、エンハンスメントレイヤ画像符号化部132において生成されたエンハンスメントレイヤ画像符号化ストリームとを多重化し、RAWデータの各階層の符号化データを含むビットストリームである階層画像符号化ストリームを生成する。また、多重化部133は、制御部134から供給されるパラメータセットや付加情報(例えばCFAP_SEI)を、その階層画像符号化ストリームに格納する。多重化部133は、生成した階層画像符号化ストリームを伝送部104(図29)に伝送する。
制御部134は、設定部121(図31)から供給されるパラメータセットや付加情報(例えばCFAP_SEI)に基づいてベースレイヤ画像符号化部131およびエンハンスメントレイヤ画像符号化部132を制御することにより、各レイヤの符号化を制御する。また、制御部134は、そのパラメータセットや付加情報(例えばCFAP_SEI)を多重化部133に供給する。
<ベースレイヤ画像符号化部>
図33は、図32のベースレイヤ画像符号化部131の主な構成例を示すブロック図である。図33に示されるように、ベースレイヤ画像符号化部131は、画面並べ替えバッファ142、演算部143、直交変換部144、量子化部145、可逆符号化部146、蓄積バッファ147、逆量子化部148、および逆直交変換部149を有する。また、ベースレイヤ画像符号化部131は、演算部150、ループフィルタ151、フレームメモリ152、選択部153、イントラ予測部154、インター予測部155、予測画像選択部156、およびレート制御部157を有する。ベースレイヤ画像符号化部131の各処理部(画面並べ替えバッファ142乃至レート制御部157)は、制御部134(図32)に制御されて動作する。
画面並べ替えバッファ142は、入力されたデジタルデータの画像データ(ベースレイヤ画像情報)の各フレームを表示の順番に記憶する。また、画面並べ替えバッファ142は、その記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部143に供給する。また、画面並べ替えバッファ142は、フレームの順番を並び替えた画像を、イントラ予測部154およびインター予測部155にも供給する。
演算部143は、画面並べ替えバッファ142から読み出された画像から、予測画像選択部156を介してイントラ予測部154若しくはインター予測部155から供給される予測画像を減算する。例えば、イントラ符号化が行われる画像の場合、演算部143は、画面並べ替えバッファ142から読み出された画像から、イントラ予測部154から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部143は、画面並べ替えバッファ142から読み出された画像から、インター予測部155から供給される予測画像を減算する。演算部143は、その減算結果(差分情報)を、直交変換部144に出力する。
直交変換部144は、演算部143から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部144は、その変換係数を量子化部145に供給する。
量子化部145は、直交変換部144から供給される変換係数を量子化する。量子化部145は、レート制御部157から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部145は、量子化された変換係数を可逆符号化部146に供給する。
可逆符号化部146は、量子化部145において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部157の制御の下で量子化されているので、この符号量は、レート制御部157が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部146は、イントラ予測のモードを示す情報などをイントラ予測部154から取得し、インター予測のモードを示す情報や差分動きベクトル情報などをインター予測部155から取得する。さらに、可逆符号化部146は、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むベースレイヤのNAL(Network Abstraction Layer)ユニットを適宜生成し、任意の方法で符号化する。
可逆符号化部146は、これらの各種情報を、量子化部145から供給された、量子化された変換係数を符号化した符号化データとともに、蓄積バッファ147に供給して蓄積させる。
可逆符号化部146の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ147は、可逆符号化部146から供給された符号化データ等を、一時的に保持する。蓄積バッファ147は、所定のタイミングにおいて、保持しているデータを、ベースレイヤの符号化データ等を含むビットストリーム(ベースレイヤ画像符号化ストリームとも称する)として、多重化部133(図32)に出力する。すなわち、蓄積バッファ147は、ベースレイヤ画像符号化ストリームを伝送する伝送部でもある。
また、量子化部145において量子化された変換係数は、逆量子化部148にも供給される。逆量子化部148は、その量子化された変換係数を、量子化部145による量子化に対応する方法で逆量子化する。逆量子化部148は、得られた変換係数を、逆直交変換部149に供給する。
逆直交変換部149は、逆量子化部148から供給された変換係数を、直交変換部144による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部150に供給される。
演算部150は、逆直交変換部149から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部156を介してイントラ予測部154若しくはインター予測部155からの予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ151またはフレームメモリ152に供給される。
ループフィルタ151は、デブロックフィルタや適応ループフィルタ等を含み、演算部150から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ151は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ151は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。ループフィルタ151は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ152に供給する。
なお、ループフィルタ151が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ151は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部146に供給し、それを符号化させるようにすることもできる。
フレームメモリ152は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部153に供給する。
より具体的には、フレームメモリ152は、演算部150から供給される再構成画像と、ループフィルタ151から供給される復号画像とをそれぞれ記憶する。フレームメモリ152は、所定のタイミングにおいて、若しくは、イントラ予測部154等の外部からの要求に基づいて、記憶している再構成画像を、選択部153を介してイントラ予測部154に供給する。また、フレームメモリ152は、所定のタイミングにおいて、若しくは、インター予測部155等の外部からの要求に基づいて、記憶している復号画像を、選択部153を介して、インター予測部155に供給する。
選択部153は、フレームメモリ152から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部153は、フレームメモリ152から供給される参照画像をイントラ予測部154に供給する。また、例えば、インター予測の場合、選択部153は、フレームメモリ152から供給される参照画像をインター予測部155に供給する。
イントラ予測部154は、処理対象のフレームの画像であるカレントピクチャについて、予測処理を行い、予測画像を生成する。イントラ予測部154は、この予測処理を、所定のブロック毎に(ブロックを処理単位として)行う。つまり、イントラ予測部154は、カレントピクチャの、処理対象であるカレントブロックの予測画像を生成する。その際、イントラ予測部154は、選択部153を介してフレームメモリ152から参照画像として供給される再構成画像を用いて予測処理(画面内予測(イントラ予測とも称する))を行う。つまり、イントラ予測部154は、再構成画像に含まれる、カレントブロックの周辺の画素値を用いて予測画像を生成する。このイントラ予測に利用される周辺画素値は、カレントピクチャの、過去に処理された画素の画素値である。このイントラ予測には(すなわち、予測画像の生成の仕方には)、複数の方法(イントラ予測モードとも称する)が、候補として予め用意されている。イントラ予測部154は、この予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部154は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ142から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部154は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部156に供給する。
また、上述したように、イントラ予測部154は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部146に供給し、符号化させる。
インター予測部155は、カレントピクチャについて、予測処理を行い、予測画像を生成する。インター予測部155は、この予測処理を、所定のブロック毎に(ブロックを処理単位として)行う。つまり、インター予測部155は、カレントピクチャの、処理対象であるカレントブロックの予測画像を生成する。その際、インター予測部155は、画面並べ替えバッファ142から供給される入力画像の画像データと、フレームメモリ152から参照画像として供給される復号画像の画像データとを用いて、予測処理を行う。この復号画像は、カレントピクチャより前に処理されたフレームの画像(カレントピクチャでない他のピクチャ)である。つまり、インター予測部155は、他のピクチャの画像を用いて予測画像を生成する予測処理(画面間予測(インター予測とも称する))を行う。
このインター予測は、動き予測と動き補償よりなる。より具体的には、インター予測部155は、入力画像と参照画像を用いて、カレントブロックについて動き予測を行い、動きベクトルを検出する。そして、インター予測部155は、参照画像を用いて、検出された動きベクトルに応じて動き補償処理を行い、カレントブロックの予測画像(インター予測画像情報)を生成する。このインター予測には(すなわち、予測画像の生成の仕方には)、複数の方法(インター予測モードとも称する)が、候補として予め用意されている。インター予測部155は、この予め用意された複数のインター予測モードでこのようなインター予測を行う。
インター予測部155は、候補となる全てのインター予測モードで予測画像を生成する。インター予測部155は、画面並べ替えバッファ142から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。インター予測部155は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部156に供給する。
インター予測部155は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部146に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部156は、演算部143や演算部150に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部156は、予測画像の供給元としてイントラ予測部154を選択し、そのイントラ予測部154から供給される予測画像を演算部143や演算部150に供給する。また、例えば、インター符号化の場合、予測画像選択部156は、予測画像の供給元としてインター予測部155を選択し、そのインター予測部155から供給される予測画像を演算部143や演算部150に供給する。
レート制御部157は、蓄積バッファ147に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部145の量子化動作のレートを制御する。
また、フレームメモリ152は、必要に応じて、記憶しているベースレイヤ復号画像等の情報を、エンハンスメントレイヤ画像符号化部132(図32)に供給する。なお、フレームメモリ152が、エンハンスメントレイヤ画像符号化部132から供給されるエンハンスメントレイヤ復号画像等の情報を取得し、記憶するようにしてもよい。この情報は、必要に応じて、参照画像等として、選択部153を介して、イントラ予測部154若しくはインター予測部155に供給される。
<エンハンスメントレイヤ画像符号化部>
図34は、図32のエンハンスメントレイヤ画像符号化部132の主な構成例を示すブロック図である。図34に示されるように、エンハンスメントレイヤ画像符号化部132は、図33のベースレイヤ画像符号化部131と基本的に同様の構成を有する。
つまり、エンハンスメントレイヤ画像符号化部132は、図34に示されるように、画面並べ替えバッファ162、演算部163、直交変換部164、量子化部165、可逆符号化部166、蓄積バッファ167、逆量子化部168、および逆直交変換部169を有する。また、エンハンスメントレイヤ画像符号化部132は、演算部170、ループフィルタ171、フレームメモリ172、選択部173、イントラ予測部174、インター予測部175、予測画像選択部176、およびレート制御部177を有する。
これらの画面並べ替えバッファ162乃至レート制御部177は、図33の画面並べ替えバッファ142乃至レート制御部157に対応し、それぞれ、対応する処理部と同様の処理を行う。ただし、エンハンスメントレイヤ画像符号化部132の各部は、ベースレイヤではなく、エンハンスメントレイヤ画像情報の符号化についての処理を行う。したがって、画面並べ替えバッファ162乃至レート制御部177の処理の説明として、上述した図33の画面並べ替えバッファ142乃至レート制御部157についての説明を適用することができるが、その場合、処理するデータは、ベースレイヤのデータではなく、エンハンスメントレイヤのデータであるものとする必要がある。また、データの入力元や出力先の処理部は、適宜、画面並べ替えバッファ162乃至レート制御部177の中の対応する処理部に置き換えて読む必要がある。
また、フレームメモリ172は、ベースレイヤ画像符号化部131から供給されるベースレイヤ復号画像等の情報を取得し、記憶する。この情報は、必要に応じて、参照画像等として、選択部173を介して、イントラ予測部174若しくはインター予測部175に供給される。なお、フレームメモリ172が、必要に応じて、記憶しているエンハンスメントレイヤ復号画像を、ベースレイヤ画像符号化部131(図32)に供給するようにしてもよい。
以上のような構成にすることにより、画像符号化装置100は、より容易に符号化効率を向上させることができる。
<RAW画像符号化処理の流れ>
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図35のフローチャートを参照して、RAW画像符号化処理の流れの例を説明する。
RAW画像符号化処理が開始されると、画像符号化装置100のカメラセンサ101(図29)は、ステップS101において、被写体を撮像する等してRAWデータを取得する。ステップS102において、パッキング部102は、ステップS101において取得されたRAWデータを、第1の実施の形態において説明したようにパッキングする。パッキング処理の詳細については後述する。
ステップS103において、画像符号化部103は、ステップS102の処理によりパッキングされたRAWデータを符号化する。ステップS104において、伝送部104は、ステップS103の処理により生成されたパッキングされたRAWデータの符号化データやパッキング情報等を含むビットストリーム(符号化ストリーム)を、例えば任意の記録媒体や伝送媒体を介して、復号側に伝送する。
ステップS104の処理が終了すると、RAW画像符号化処理が終了する。
<パッキング処理の流れ>
次に、ステップS102(図35)において実行されるパッキング処理の流れの例を、図36のフローチャートを参照して説明する。
パッキング処理が開始されると、分離部111は、ステップS111において、RAW画像の画素データを、第1の実施の形態において説明したように、相関性に基づいて分離する。ステップS112において、再配置部112は、分離された各画素データ群を、第1の実施の形態において説明したように再配置する。ステップS113において、パッキング情報生成部113は、以上のようなパッキング処理について、第1の実施の形態において説明したようなパッキング情報を生成する。ステップS113の処理が終了すると、パッキング処理が終了し、処理は、図35に戻る。
<画像符号化処理の流れ>
次に、ステップS103(図35)において実行される画像符号化処理の流れの例を、図37のフローチャートを参照して説明する。
画像符号化処理が開始されると、設定部121(図31)は、ステップS113において生成されたパッキング情報に基づいて、第1の実施の形態において説明したように、各種パラメータセットやCFAP SEI等を設定する。
ステップS122において、符号化部122は、ステップS121において設定されたパラメータセット等を用いて、第1の実施の形態において説明したように、パッキングされた画像データを符号化する。符号化の詳細については後述する。
ステップS122の処理が終了すると、画像符号化処理が終了し、処理は、図35に戻る。
<符号化処理の流れ>
次に、図38のフローチャートを参照して、ステップS122(図37)において実行される符号化処理の流れの例を説明する。
符号化処理が開始されると、制御部134は、ステップS131において、パラメータセット等に基づいて、ベースレイヤ画像符号化部131乃至多重化部133の各部を制御する。
ステップS132において、ベースレイヤ画像符号化部131は、パッキングされたRAWデータのベースレイヤを符号化する。ステップS133において、エンハンスメントレイヤ画像符号化部132は、パッキングされたRAWデータのエンハンスメントレイヤを符号化する。
ステップS134において、多重化部133は、ステップS132において生成されたベースレイヤ画像符号化ストリームと、ステップS133において生成されたエンハンスメントレイヤ画像符号化ストリームとを(すなわち、各レイヤのビットストリームを)多重化し、1系統の階層画像符号化ストリームを生成する。なお、多重化部133は、必要に応じて、各種パラメータセットやCFAP SEI等の付加情報を、階層画像符号化ストリームに含める。多重化部133は、その階層画像符号化ストリームを出力し、復号側に伝送する。
ステップS134の処理が終了すると、符号化処理が終了し、処理は、図37に戻る。符号化部122は、このような符号化処理を各ピクチャについて繰り返し実行する。ただし、ピクチャ毎に行う必要の無い処理は、適宜省略される。
<ベースレイヤ符号化処理の流れ>
次に、図38のステップS132において、ベースレイヤ画像符号化部131により実行されるベースレイヤ符号化処理の流れの例を、図39のフローチャートを参照して説明する。
ベースレイヤ符号化処理が開始されると、ベースレイヤ画像符号化部131の画面並べ替えバッファ142は、ステップS141において、入力された動画像の各フレーム(ピクチャ)の画像をその表示する順番に記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS142において、イントラ予測部154は、イントラ予測モードのイントラ予測処理を行う。
ステップS143において、インター予測部155は、インター予測モードでの動き予測や動き補償等を行うインター予測処理を行う。
ステップS144において、予測画像選択部156は、コスト関数値等に基づいて、予測画像を選択する。つまり、予測画像選択部156は、ステップS142のイントラ予測により生成された予測画像と、ステップS143のインター予測により生成された予測画像のいずれか一方を選択する。
ステップS145において、演算部143は、ステップS141の処理によりフレーム順を並び替えられた入力画像と、ステップS144の処理により選択された予測画像との差分を演算する。つまり、演算部143は、入力画像と予測画像との差分画像の画像データを生成する。このようにして求められた差分画像の画像データは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS146において、直交変換部144は、ステップS145の処理により生成された差分画像の画像データを直交変換する。
ステップS147において、量子化部145は、レート制御部157により算出された量子化パラメータを用いて、ステップS146の処理により得られた直交変換係数を量子化する。
ステップS148において、逆量子化部148は、ステップS147の処理により生成された量子化された係数(量子化係数とも称する)を、量子化部145の特性に対応する特性で逆量子化する。
ステップS149において、逆直交変換部149は、ステップS148の処理により得られた直交変換係数を逆直交変換する。
ステップS150において、演算部150は、ステップS149の処理により復元された差分画像に、ステップS144の処理により選択された予測画像を加算することにより、再構成画像の画像データを生成する。
ステップS151においてループフィルタ151は、ステップS150の処理により生成された再構成画像の画像データにループフィルタ処理を行う。これにより、再構成画像のブロック歪み等が除去される。
ステップS152において、フレームメモリ152は、ステップS151の処理により得られた復号画像(ベースレイヤ復号画像)やステップS150の処理により得られた再構成画像等のデータを記憶する。
ステップS153において、可逆符号化部146は、ステップS147の処理により得られた、量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部146は、ステップS144の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部146は、イントラ予測部154から供給される最適イントラ予測モード情報、または、インター予測部155から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS154において蓄積バッファ147は、ステップS153の処理により得られた符号化データ等を蓄積する。蓄積バッファ147に蓄積された符号化データ等は、ベースレイヤ画像符号化ストリームとして適宜読み出され、多重化部133に供給されてエンハンスメントレイヤ画像符号化ストリームと多重化された後、伝送路や記録媒体を介して復号側に伝送される。
ステップS155においてレート制御部157は、ステップS154の処理により蓄積バッファ147に蓄積された符号化データ等の符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部145の量子化動作のレートを制御する。また、レート制御部157は、量子化パラメータに関する情報を、量子化部145に供給する。
ステップS156において、フレームメモリ152は、ベースレイヤ復号画像等を含むベースレイヤの情報を、エンハンスメントレイヤ符号化処理に供給する。
ステップS156の処理が終了すると、ベースレイヤ符号化処理が終了し、処理は図38に戻る。
<エンハンスメントレイヤ符号化処理の流れ>
次に、図38のステップS133において、エンハンスメントレイヤ画像符号化部132により実行されるエンハンスメントレイヤ符号化処理の流れの例を、図40のフローチャートを参照して説明する。
エンハンスメントレイヤ符号化処理が開始されると、フレームメモリ172は、ステップS161において、ステップS156(図39)の処理によりベースレイヤ画像符号化処理から供給されるベースレイヤ復号画像等を含むベースレイヤの情報を取得し、記憶する。
ステップS162乃至ステップS176の各処理は、ベースレイヤ符号化処理(図39)のステップS141乃至ステップS155の各処理に対応し、対応する処理と基本的に同様に実行される。ただし、ベースレイヤ符号化処理の各処理がベースレイヤに対して行われたのに対し、このエンハンスメントレイヤ符号化処理の各処理は、エンハンスメントレイヤに対して行われる。
ステップS176の処理が終了すると、エンハンスメントレイヤ符号化処理が終了し、処理は、図38に戻る。
以上のように各処理を実行することにより、画像符号化装置100は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
なお、以上においては、画像符号化装置100が、パッキング処理された、ベースレイヤとエンハンスメントレイヤの2階層(2レイヤ)のRAWデータを符号化する場合について説明したが、画像符号化装置100が符号化するRAWデータの階層数(レイヤ数)は任意である。すなわち、画像符号化装置100の符号化部122がRAWデータの階層数(レイヤ数)分の符号化部を有していれば良い。
例えば、1階層(ベースレイヤのみ)のRAWデータを符号化する場合、画像符号化装置100は、ベースレイヤのみを符号化すればよいので、符号化部122において、エンハンスメントレイヤ画像符号化部132を省略することができる。
また、例えば、3階層(3レイヤ)のRAWデータを符号化する場合、符号化部122が、1つのベースレイヤ画像符号化部131と、2つのエンハンスメントレイヤ画像符号化部132とを有し、ベースレイヤ画像符号化部131がベースレイヤを符号化し、2つのエンハンスメントレイヤ画像符号化部132が互いに異なるエンハンスメントレイヤを符号化するようにすればよい。
すなわち、例えば、N階層(Nレイヤ)のRAWデータを符号化する場合、符号化部122が、1つのベースレイヤ画像符号化部131と、(N-1)個のエンハンスメントレイヤ画像符号化部132とを有し、ベースレイヤ画像符号化部131がベースレイヤを符号化し、(N-1)個のエンハンスメントレイヤ画像符号化部132が、(N-1)個のエンハンスメントレイヤの内、互いに異なるレイヤを符号化するようにすればよい。
<3.第3の実施の形態>
<画像復号装置>
次に、以上のように符号化された符号化データの復号について説明する。図41は、本技術を適用した画像処理装置の一態様である、画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。図41に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
図41に示されるように、画像復号装置200は、受け取り部201、画像復号部202、アンパッキング部203、および現像処理部204を有する。
受け取り部201は、符号化側から伝送される階層画像符号化ストリームを取得する。この階層画像符号化ストリームは、第1の実施の形態および第2の実施の形態において説明したように、デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理が行われたRAWデータが符号化された符号化データと、そのパッキング処理に関する情報であるパッキング情報を含むSEIやパラメータセット等を含むビットストリームである。受け取り部201は、受け取った階層画像符号化ストリームを画像復号部202に供給する。
画像復号部202は、供給された階層画像符号化ストリームを、第1の実施の形態において説明したように、デモザイク処理後の画像データが符号化された符号化ストリームを復号する場合と基本的に同様の方法で復号する。ただし、後述するように、画像復号部202は、階層画像符号化ストリームに含まれるパッキング情報を抽出する。画像復号部202は、復号して得られた、パッキング処理が行われたRAWデータと、抽出したパッキング情報とをアンパッキング部203に供給する。
アンパッキング部203は、そのパッキング情報に基づいて、パッキング処理が行われたRAWデータに対して、第1の実施の形態において説明したような、画素データをパッキング処理が行われる前の並びに戻すアンパッキング処理を行う。これにより、パッキング処理が行われる前のRAWデータが復元される。アンパッキング部203は、得られたRAWデータを、現像処理部204に供給する。
現像処理部204は、供給されたRAWデータに対して、第1の実施の形態において説明したように、デモザイクや自動レタッチ等の現像処理を行う。現像処理部204は、現像した画像データを画像復号装置200の外部に出力する。この画像データは、例えば、画像がモニタに表示されたり、所定の画像処理が施されたり、符号化されたり、記録媒体に記録されたり、伝送媒体を介して他の装置に伝送されたりされる。
なお、画像復号部202とアンパッキング部203を1つの処理部(RAWデータ復号部205)として構成するようにしてもよい。つまり、例えば、このRAWデータ復号部205(画像復号部202およびアンパッキング部203)を1つの画像処理装置として構成するようにしてもよい。
<画像復号部>
図42は、図41の画像復号部202の主な構成例を示すブロック図である。図42に示されるように、画像復号部202は、復号部211およびパッキング情報抽出部212を有する。
復号部211は、供給された階層画像符号化ストリームに対して、符号化部122が行う符号化処理に対応する復号処理を行う。第1の実施の形態において説明したように、復号部211は、現像処理後の画像データが符号化された符号化データを復号する場合と基本的に同様の方法で階層画像符号化ストリーム復号し、パッキング処理後のRAWデータを得る。復号部211は、得られたパッキング処理後のRAWデータや、その符号化データのパラメータセットやSEI(例えばCFAP SEI)等をパッキング情報抽出部212に供給する。
パッキング情報抽出部212は、供給されたデータ(例えばCFAP SEI)から、アンパッキング処理に用いられるパッキング情報を抽出する。階層画像符号化ストリームには、例えば第1の実施の形態において説明したような各種のパッキング情報が含まれている。パッキング情報抽出部212は、それらのパッキング情報を抽出し、パッキング処理後のRAWデータとともに、アンパッキング部203に供給する。
<復号部>
図43は、図42の復号部211の主な構成例を示すブロック図である。復号部211の復号方法は、符号化部122の符号化方法に対応している限り任意である。例えば、復号部211は、パッキング処理後のRAWデータが階層画像符号化(スケーラブル符号化)された符号化データに対して、階層画像復号(スケーラブル復号)を行う。図43においては、復号部211が、ベースレイヤとエンハンスメントレイヤの2階層よりなる、パッキング処理後のRAWデータが階層画像符号化(スケーラブル符号化)された符号化データを、階層画像復号(スケーラブル復号)する場合について説明する。図43に示されるように、復号部211は、逆多重化部221、ベースレイヤ画像復号部222、エンハンスメントレイヤ画像復号部223、および制御部224を有する。
逆多重化部221は、符号化側から伝送された階層画像符号化ストリームを受け取り、それを逆多重化し、ベースレイヤ画像符号化ストリームと、エンハンスメントレイヤ画像符号化ストリームとを抽出する。また、逆多重化部221は、階層画像符号化ストリームに含まれるパラメータセットやSEI(例えばCFAP SEI)等の情報を抽出し、制御部224に供給する。
ベースレイヤ画像復号部222は、逆多重化部221により抽出されたベースレイヤ画像符号化ストリームを復号し、パッキング処理後のRAWデータのベースレイヤのデータ(ベースレイヤ画像とも称する)を得る。ベースレイヤ画像復号部222は、得られたベースレイヤ画像をパッキング情報抽出部212(図42)に供給する。
エンハンスメントレイヤ画像復号部223は、逆多重化部221により抽出されたエンハンスメントレイヤ画像符号化ストリームを復号し、パッキング処理後のRAWデータのエンハンスメントレイヤのデータ(エンハンスメントレイヤ画像とも称する)を得る。エンハンスメントレイヤ画像復号部223は、得られたエンハンスメントレイヤ画像をパッキング情報抽出部212(図42)に供給する。
制御部224は、逆多重化部221から供給されたパラメータセット等の情報に基づいて、ベースレイヤ画像復号部222およびエンハンスメントレイヤ画像復号部223を制御する(各レイヤの復号を制御する)。制御部224は、逆多重化部221から供給されたパラメータセット等の情報をパッキング情報抽出部212(図42)に供給する。
<ベースレイヤ画像復号部>
図44は、図43のベースレイヤ画像復号部222の主な構成例を示すブロック図である。図44に示されるようにベースレイヤ画像復号部222は、蓄積バッファ231、可逆復号部232、逆量子化部233、逆直交変換部234、演算部235、ループフィルタ236、および画面並べ替えバッファ237を有する。また、ベースレイヤ画像復号部222は、フレームメモリ239、選択部240、イントラ予測部241、インター予測部242、および予測画像選択部243を有する。
蓄積バッファ231は、伝送されてきた符号化データ(逆多重化部221から供給されるベースレイヤ画像符号化ストリーム)を受け取る受け取り部でもある。蓄積バッファ231は、伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部232に供給する。この符号化データには、予測モード情報などの復号に必要な情報が付加されている。
可逆復号部232は、蓄積バッファ231より供給された、可逆符号化部146により符号化された情報を、その符号化方式に対応する復号方式で復号する。可逆復号部232は、復号して得られた差分画像の量子化された係数データを、逆量子化部233に供給する。
また、可逆復号部232は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部241およびインター予測部242の内、選択されたと判定したモードの方に供給する。つまり、例えば、符号化側において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報(イントラ予測モード情報)がイントラ予測部241に供給される。また、例えば、符号化側において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報(インター予測モード情報)がインター予測部242に供給される。
さらに、可逆復号部232は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報を、符号化データから抽出し、逆量子化部233に供給する。
逆量子化部233は、可逆復号部232により復号されて得られた量子化された係数データを、量子化部145の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部233は、逆量子化部148と同様の処理部である。逆量子化部233は、得られた係数データ(直交変換係数)を逆直交変換部234に供給する。
逆直交変換部234は、逆量子化部233から供給される直交変換係数を、必要に応じて、直交変換部144の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部234は、逆直交変換部149と同様の処理部である。
この逆直交変換処理により差分画像の画像データが復元される。この復元された差分画像の画像データは、符号化側において直交変換される前の差分画像の画像データに対応する。以下においては、この、逆直交変換部234の逆直交変換処理により得られた、復元された差分画像の画像データを、復号残差データとも称する。逆直交変換部234は、この復号残差データを、演算部235に供給する。また、演算部235には、予測画像選択部243を介して、イントラ予測部241若しくはインター予測部242から予測画像の画像データが供給される。
演算部235は、この復号残差データと予測画像の画像データとを用いて、差分画像と予測画像とを加算した再構成画像の画像データを得る。この再構成画像は、演算部143により予測画像が減算される前の入力画像に対応する。演算部235は、その再構成画像をループフィルタ236に供給する。
ループフィルタ236は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ236は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ236は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ236が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ236が、符号化側から供給された、符号化の際に行われたフィルタ処理に用いられたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。さらに、ループフィルタ236が、このようなフィルタ処理を省略し、入力されたデータをフィルタ処理せずに出力することもできる。
ループフィルタ236は、フィルタ処理結果である復号画像(若しくは再構成画像)を画面並べ替えバッファ237およびフレームメモリ239に供給する。
画面並べ替えバッファ237は、復号画像についてフレームの順番の並べ替えを行う。すなわち、画面並べ替えバッファ237は、画面並べ替えバッファ142により符号化順に並べ替えられた各フレームの画像を、元の表示順に並べ替える。つまり、画面並べ替えバッファ237は、符号化順に供給される各フレームの復号画像の画像データを、その順に記憶し、符号化順に記憶した各フレームの復号画像の画像データを表示順に読み出して、パッキング情報抽出部212(図42)に供給する。
フレームメモリ239は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部241やインター予測部242等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部240を介してイントラ予測部241やインター予測部242に供給する。
選択部240は、フレームメモリ239から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部240は、フレームメモリ239から供給される参照画像をイントラ予測部241に供給する。また、例えば、インター予測の場合、選択部240は、フレームメモリ239から供給される参照画像をインター予測部242に供給する。
イントラ予測部241には、イントラ予測モード情報等が可逆復号部232から適宜供給される。イントラ予測部241は、イントラ予測部154において用いられたイントラ予測モード(最適イントラ予測モード)でイントラ予測を行い、予測画像を生成する。その際、イントラ予測部241は、選択部240を介してフレームメモリ239から供給される再構成画像の画像データを用いてイントラ予測を行う。すなわち、イントラ予測部241は、この再構成画像を参照画像(周辺画素)として利用する。イントラ予測部241は、生成した予測画像を予測画像選択部243に供給する。
インター予測部242には、最適予測モード情報や動き情報等が可逆復号部232から適宜供給される。インター予測部242は、可逆復号部232から取得された最適予測モード情報が示すインター予測モード(最適インター予測モード)で、フレームメモリ239から取得した復号画像(参照画像)を用いてインター予測を行い、予測画像を生成する。
予測画像選択部243は、イントラ予測部241から供給される予測画像またはインター予測部242から供給される予測画像を、演算部235に供給する。そして、演算部235においては、その予測画像と逆直交変換部234からの復号残差データ(差分画像情報)とが加算されて再構成画像が得られる。
また、フレームメモリ239は、必要に応じて、記憶しているベースレイヤ復号画像等の情報を、エンハンスメントレイヤ画像復号部223(図43)に供給する。なお、フレームメモリ239が、エンハンスメントレイヤ画像復号部223から供給されるエンハンスメントレイヤ復号画像等の情報を取得し、記憶するようにしてもよい。この情報は、必要に応じて、参照画像等として、選択部240を介して、イントラ予測部241若しくはインター予測部242に供給される。
<エンハンスメントレイヤ画像復号部>
図45は、図43のエンハンスメントレイヤ画像復号部223の主な構成例を示すブロック図である。図43に示されるように、エンハンスメントレイヤ画像復号部223は、図44のベースレイヤ画像復号部222と基本的に同様の構成を有する。
つまり、エンハンスメントレイヤ画像復号部223は、図45に示されるように、蓄積バッファ251、可逆復号部252、逆量子化部253、逆直交変換部254、演算部255、ループフィルタ256、および画面並べ替えバッファ257を有する。また、エンハンスメントレイヤ画像復号部223は、フレームメモリ259、選択部260、イントラ予測部261、インター予測部262、および予測画像選択部263を有する。
これらの蓄積バッファ251乃至予測画像選択部263は、図44の蓄積バッファ231乃至予測画像選択部243に対応し、それぞれ、対応する処理部と同様の処理を行う。ただし、エンハンスメントレイヤ画像復号部223の各部は、ベースレイヤではなく、エンハンスメントレイヤ画像情報の符号化についての処理を行う。したがって、蓄積バッファ251乃至予測画像選択部263の処理の説明として、上述した図44の蓄積バッファ231乃至予測画像選択部243についての説明を適用することができるが、その場合、処理するデータは、ベースレイヤのデータではなく、エンハンスメントレイヤのデータであるものとする必要がある。また、データの入力元や出力先の処理部は、適宜、蓄積バッファ251乃至予測画像選択部263の中の対応する処理部に置き換えて読む必要がある。
また、フレームメモリ259は、ベースレイヤ画像復号部222(図44)から供給されるベースレイヤ復号画像等の情報を取得し、記憶する。この情報は、必要に応じて、参照画像等として、選択部260を介して、イントラ予測部261若しくはインター予測部262に供給される。なお、フレームメモリ259が、必要に応じて、記憶しているエンハンスメントレイヤ復号画像を、ベースレイヤ画像復号部222(図44)に供給するようにしてもよい。
<アンパッキング部>
図46は、図41のアンパッキング部203の主な構成例を示すブロック図である。図46に示されるように、アンパッキング部203は、パッキング情報パース部271、分離部272、および再配置部273を有する。
パッキング情報パース部271は、画像復号部202(図41)から供給されるパッキング情報をパースする。パッキング情報パース部271は、そのパース結果を、画像復号部202(図41)から供給される、パッキング処理されたRAWデータとともに分離部272に供給する。
分離部272は、そのパッキング情報のパース結果に基づいて、パッキング処理されたRAWデータの各画素データを分離する。分離部272は、分離した各画素データを、パッキング情報のパース結果とともに再配置部273に供給する。
再配置部273は、そのパッキング情報のパース結果に基づいて、分離された各画素データを、パッキング処理が行われる前の並びに戻すように再配置する。すなわち、パッキング処理が行われる前のRAWデータが復元される。再配置部273は、得られたRAWデータを現像処理部204(図41)に供給する。
以上のような構成にすることにより、画像復号装置200は、より容易に、上述したパッキング処理を伴う符号化方法に対応する方法で正しく復号し、アンパッキング処理することができる。すなわち、より容易に符号化効率を向上させることができる。
<画像復号処理の流れ>
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図47のフローチャートを参照して、RAW画像復号処理の流れの例を説明する。
RAW画像復号処理が開始されると、画像復号装置200の受け取り部201は、ステップS201において、符号化側から伝送された、パッキング処理されたRAWデータが符号化された符号化データを含むビットストリーム(階層画像符号化ストリーム)を受け取る。
ステップS202において、画像復号部202は、ステップS201において受け取った階層画像符号化ストリームを復号する。
ステップS203において、アンパッキング部203は、ステップS202の処理により得られた、パッキング処理されたRAWデータに対してアンパッキング処理を行う。
ステップS204において、現像処理部204は、ステップS203の処理により得られたRAWデータに対して、デモザイク処理や色や明るさのトーン等のレタッチ処理等を含む現像処理を行う。デモザイク処理後の画像データが得られると、RAW画像復号処理が終了する。
<画像復号処理の流れ>
次に、図48のフローチャートを参照して、図47のステップS202において実行される画像復号処理の流れの例を説明する。画像復号処理が開始されると、画像復号部202の復号部211は、ステップS211において、階層画像符号化ストリームを復号する。ステップS212において、パッキング情報抽出部212は、階層画像符号化ストリームに含まれるSEI(例えばCFAP SEI)からパッキング情報を抽出する。第1の実施の形態において説明したように、例えばCFAP SEIには、各種のパッキング情報が含まれる。パッキング情報抽出部212は、そのパッキング情報を抽出し、アンパッキング処理に提供する。なお、パッキング情報がパラメータセットやヘッダ情報等に含まれる場合、パッキング情報抽出部212は、それらからパッキング情報を抽出するようにしてもよい。
ステップS212の処理が終了すると、画像復号処理が終了し、処理は図47に戻る。
<復号処理の流れ>
次に、図49のフローチャートを参照して、図48のステップS211において実行される復号処理の流れの例を説明する。
復号処理が開始されると、画像復号装置200の逆多重化部221は、ステップS221において、符号化側から伝送される階層画像符号化ストリームをレイヤ毎に逆多重化する。
ステップS222において、制御部224は、ステップS221において抽出されたパラメータセットやSEI等の情報に基づいて各レイヤの復号を制御する。
ステップS223において、ベースレイヤ画像復号部222は、ベースレイヤ画像符号化ストリームを復号する。ステップS224において、エンハンスメントレイヤ画像復号部223は、エンハンスメントレイヤ画像符号化ストリームを復号する。
ステップS224の処理が終了すると、復号処理が終了する。
<ベースレイヤ復号処理の流れ>
次に、図47のステップS223において実行されるベースレイヤ復号処理の流れの例を、図50のフローチャートを参照して説明する。
ベースレイヤ復号処理が開始されると、ベースレイヤ画像復号部222の蓄積バッファ231は、ステップS231において、伝送されてきたベースレイヤ符号化ストリームを蓄積する。ステップS232において、可逆復号部232は、蓄積バッファ231から供給されるベースレイヤ符号化ストリームを復号する。すなわち、可逆符号化部146により符号化されたIスライス、Pスライス、並びにBスライス等の画像データが復号される。このとき、ヘッダ情報などのビットストリームに含められた画像データ以外の各種情報も復号される。
ステップS233において、逆量子化部233は、ステップS232の処理により得られた、量子化された係数を逆量子化する。
ステップS234において、逆直交変換部234は、ステップS233において逆量子化された係数を逆直交変換する。
ステップS235において、イントラ予測部241およびインター予測部242は、予測処理を行い、予測画像を生成する。つまり、可逆復号部232において判定された、符号化の際に適用された予測モードで予測処理が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部241が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、インター予測部242が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ステップS236において、演算部235は、ステップS234において逆直交変換されて得られた差分画像に、ステップS235において生成された予測画像を加算する。これにより再構成画像の画像データが得られる。
ステップS237において、ループフィルタ236は、ステップS236の処理により得られた再構成画像の画像データに対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS238において、画面並べ替えバッファ237は、ステップS237のフィルタ処理により得られた復号画像の各フレームの並べ替えを行う。すなわち、符号化の際に並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。画面並べ替えバッファ237は、復号画像の各フレームを並べ替えた順に読み出し、パッキング情報抽出部212に供給する。
ステップS239において、フレームメモリ239は、ステップS237の処理により得られた復号画像やステップS226の処理により得られた再構成画像等のデータを記憶する。
ステップS240において、フレームメモリ239は、記憶しているベースレイヤ復号画像等の情報を、エンハンスメントレイヤ復号処理に供給する。
ステップS240の処理が終了すると、ベースレイヤ復号処理が終了し、処理は図49に戻る。
<エンハンスメントレイヤ復号処理の流れ>
次に、図49のステップS224において、エンハンスメントレイヤ画像復号部223により実行されるエンハンスメントレイヤ復号処理の流れの例を、図51のフローチャートを参照して説明する。
エンハンスメントレイヤ復号処理が開始されると、フレームメモリ259は、ステップS251において、ステップS240(図50)の処理によりベースレイヤ復号処理から供給されるベースレイヤ復号画像等を含むベースレイヤの情報を取得し、記憶する。
ステップS252乃至ステップS260の各処理は、ベースレイヤ復号処理(図50)のステップS231乃至ステップS239の各処理に対応し、対応する処理と基本的に同様に実行される。ただし、ベースレイヤ復号処理の各処理がベースレイヤに対して行われたのに対し、このエンハンスメントレイヤ復号処理の各処理は、エンハンスメントレイヤに対して行われる。
ステップS260の処理が終了すると、エンハンスメントレイヤ復号処理が終了し、処理は、図49に戻る。
<アンパッキング処理の流れ>
次に、図52のフローチャートを参照して、図47のステップS203において実行されるアンパッキング処理の流れの例を説明する。
アンパッキング処理が開始されると、アンパッキング部203のパッキング情報パース部271(図46)は、ステップS271において、ステップS212(図48)の処理により抽出されたパッキング情報をパースする。
ステップS272において、分離部272は、ステップS271の処理により得られたパッキング情報のパース結果に基づいて、ステップS211(図48)の処理により符号化データが復号されて得られた、パッキング処理されたRAWデータの各画素データ群を分離する。
ステップS273において、再配置部273は、ステップS271の処理により得られたパッキング情報のパース結果に基づいて、ステップS272において分離された各画素データを、パッキング処理される前の並びに再配置する。この処理により、パッキング処理される前のRAWデータが復元される。
ステップS273の処理が終了すると、アンパッキング処理が終了し、処理は図48に戻る。
以上のように各処理を実行することにより、画像復号装置200は、RAWデータが符号化された符号化データを容易に正しく復号することができる。すなわち、画像復号装置200は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
なお、以上においては、画像復号装置200が、パッキング処理された、ベースレイヤとエンハンスメントレイヤの2階層(2レイヤ)のRAWデータが符号化された符号化データを復号する場合について説明したが、画像復号装置200が復号する符号化データのRAWデータの階層数(レイヤ数)は任意である。すなわち、画像復号装置200の復号部211がRAWデータの階層数(レイヤ数)分の符号化部を有していれば良い。
例えば、1階層(ベースレイヤのみ)のRAWデータが符号化された符号化データを復号する場合、画像復号装置200は、ベースレイヤのみを符号化すればよいので、復号部211(図43)において、エンハンスメントレイヤ画像復号部223を省略することができる。
また、例えば、3階層(3レイヤ)のRAWデータが符号化された符号化データを復号する場合、復号部211が、1つのベースレイヤ画像復号部222と、2つのエンハンスメントレイヤ画像復号部223とを有し、ベースレイヤ画像復号部222がベースレイヤを符号化し、2つのエンハンスメントレイヤ画像復号部223が互いに異なるエンハンスメントレイヤを符号化するようにすればよい。
すなわち、例えば、N階層(Nレイヤ)のRAWデータが符号化された符号化データを復号する場合、復号部211が、1つのベースレイヤ画像復号部222と、(N-1)個のエンハンスメントレイヤ画像復号部223とを有し、ベースレイヤ画像復号部222がベースレイヤを符号化し、(N-1)個のエンハンスメントレイヤ画像復号部223が、(N-1)個のエンハンスメントレイヤの内、互いに異なるレイヤを符号化するようにすればよい。
本技術の適用範囲は、RAWデータを符号化・復号可能なあらゆる画像符号化装置及び画像復号装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<4.第4の実施の形態>
<多視点画像符号化・多視点画像復号への適用>
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図53は、多視点画像符号化方式の一例を示す。
図53に示されるように、多視点画像は、複数の視点(ビュー(view))の画像を含む。この多視点画像の複数のビューは、他のビューの情報を利用せずに自身のビューの画像のみを用いて符号化・復号を行うベースビューと、他のビューの情報を利用して符号化・復号を行うノンベースビューとによりなる。ノンベースビューの符号化・復号は、ベースビューの情報を利用するようにしても良いし、他のノンベースビューの情報を利用するようにしてもよい。
つまり、多視点画像符号化・復号におけるビュー間の参照関係は、階層画像符号化・復号におけるレイヤ間の参照関係と同様である。したがって、図53のような多視点画像の符号化・復号において、上述した方法を適用するようにしてもよい。このようにすることにより、多視点画像の場合も同様に、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<多視点画像符号化装置>
図54は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図54に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
第2の実施の形態において説明した画像符号化装置100の符号化部122として、このような多視点画像符号化装置600を適用すればよい。このようにすることにより、画像符号化装置100は、第1の実施の形態や第2の実施の形態において説明した方法で、各視点の画像がRAWデータの多視点画像を符号化することができる。すなわち、画像符号化装置100は、各視点の画像がRAWデータの多視点画像の符号化において、より容易に符号化効率を向上させることができる。
<多視点画像復号装置>
図55は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図55に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
第3の実施の形態において説明した画像復号装置200の復号部211として、このような多視点画像復号装置610を適用すればよい。このようにすることにより、画像復号装置200は、各視点の画像がRAWデータの多視点画像が第1の実施の形態や第2の実施の形態において説明した方法で符号化された符号化データを正しく復号することができる。すなわち、画像復号装置200は、各視点の画像がRAWデータの多視点画像の符号化において、より容易に符号化効率を向上させることができる。
<5.第5の実施の形態>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図56は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図56に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
上述した実施形態に係る画像符号化装置及び画像復号装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.第6の実施の形態>
<第1の応用例:テレビジョン受像機>
図57は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース(I/F)部909、制御部910、ユーザインタフェース(I/F)部911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース部909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース部909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース部911は、制御部910と接続される。ユーザインタフェース部911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース部909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置200の機能を有する。つまり、デコーダ904は、RAWデータが第1の実施の形態や第2の実施の形態において説明した方法で符号化された符号化データを、第1の実施の形態や第3の実施の形態において説明した方法で正しく復号することができる。したがって、テレビジョン装置900は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<第2の応用例:携帯電話機>
図58は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929に供給し、その記憶媒体に書き込ませる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929に供給し、その記憶媒体に書き込ませる。
さらに、画像表示モードにおいて、記録再生部929は、記憶媒体に記録されている符号化ストリームを読み出して画像処理部927へ出力する。画像処理部927は、記録再生部929から入力される符号化ストリームを復号し、画像データを表示部930に供給し、その画像を表示させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置100や画像復号装置200の機能を有する。つまり、画像処理部927は、RAWデータを第1の実施の形態や第2の実施の形態において説明した方法で符号化したり、その符号化により得られる符号化データを、第1の実施の形態や第3の実施の形態において説明した方法で正しく復号したりすることができる。したがって、携帯電話機920は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<第3の応用例:記録再生装置>
図59は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データおよび映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース(I/F)部942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、およびユーザインタフェース(I/F)部950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース部942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース部942は、例えば、IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部942を介して受信される映像データおよび音声データは、エンコーダ943へ入力される。即ち、外部インタフェース部942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース部942から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVD(Digital Versatile Disc)ディスク(DVD-Video、DVD-RAM(DVD - Random Access Memory)、DVD-R(DVD - Recordable)、DVD-RW(DVD - Rewritable)、DVD+R(DVD + Recordable)、DVD+RW(DVD + Rewritable)等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像および音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置940を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置100の機能を有する。つまり、エンコーダ943は、RAWデータを第1の実施の形態や第2の実施の形態において説明した方法で符号化することができる。また、デコーダ947は、上述した実施形態に係る画像復号装置200の機能を有する。つまり、デコーダ947は、RAWデータが第1の実施の形態や第2の実施の形態において説明した方法で符号化された符号化データを、第1の実施の形態や第3の実施の形態において説明した方法で正しく復号することができる。それにより、記録再生装置940は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
<第4の応用例:撮像装置>
図60は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース(I/F)部966、メモリ部967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース(I/F)部971、およびバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース部971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD969、および制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース部966またはメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース部966またはメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース部966は、例えばUSB入出力端子として構成される。外部インタフェース部966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース部966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース部966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース部966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース部971は、制御部970と接続される。ユーザインタフェース部971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース部971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置100や画像復号装置200の機能を有する。つまり、画像処理部964は、RAWデータを第1の実施の形態や第2の実施の形態において説明した方法で符号化したり、その符号化により得られる符号化データを、第1の実施の形態や第3の実施の形態において説明した方法で正しく復号したりすることができる。したがって、撮像装置960は、RAWデータの符号化において、より容易に符号化効率を向上させることができる。
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。つまり、このような複数の符号化データ間で、符号化や復号に関する情報を共有することもできる。
<7.第7の実施の形態>
<実施のその他の例>
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
<ビデオセット>
本技術をセットとして実施する場合の例について、図61を参照して説明する。図61は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図61に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図61に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図61の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図61のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図61において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図61に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図62は、本技術を適用したビデオプロセッサ1332(図61)の概略的な構成の一例を示している。
図62の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図62に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図61)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、上述した実施の形態に係る画像符号化装置100や画像復号装置200の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図52を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図63は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図63の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図63に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図63に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図63に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、上述した実施の形態に係る画像符号化装置100や画像復号装置200を実現する機能ブロックを有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図52を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図57)、携帯電話機920(図58)、記録再生装置940(図59)、撮像装置960(図60)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図52を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図52を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図57)、携帯電話機920(図58)、記録再生装置940(図59)、撮像装置960(図60)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図52を参照して上述した効果と同様の効果を得ることができる。
また、本明細書では、各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
なお、本技術は以下のような構成も取ることができる。
(1) デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理に関するパッキング情報を含む付加情報を設定する設定部と、
前記パッキング処理が行われた前記RAWデータを符号化し、得られた符号化データと、前記設定部により設定された前記付加情報とを含むビットストリームを生成する符号化部と
を備える画像処理装置。
(2) 前記設定部は、前記パッキング情報として、前記パッキング処理における前記画素データの並び替え方法を示す情報を設定する
(1)、(3)乃至(9)のいずれかに記載の画像処理装置。
(3) 前記設定部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータのコンポーネント数を示す情報を設定する
(1)、(2)、(4)乃至(9)のいずれかに記載の画像処理装置。
(4) 前記設定部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータの各コンポーネントの識別情報を設定する
(1)乃至(3)、(5)乃至(9)のいずれかに記載の画像処理装置。
(5) 前記設定部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータの構成を示す情報を設定する
(1)乃至(4)、(6)乃至(9)のいずれかに記載の画像処理装置。
(6) 前記設定部は、前記パッキング情報として、前記符号化部がビットストリーム制約を行うかを示す情報を設定する
(1)乃至(5)、(7)乃至(9)のいずれかに記載の画像処理装置。
(7) 前記設定部は、前記パッキング情報として、前記符号化部がインループフィルタを用いるかを示す情報を設定する
(1)乃至(6)、(8)、(9)のいずれかに記載の画像処理装置。
(8) 前記設定部は、前記付加情報として、SEI(Supplemental Enhancement Information)を設定する
(1)乃至(7)、(9)のいずれかに記載の画像処理装置。
(9) 前記設定部は、さらに、前記RAWデータに対する前記パッキング処理に応じて、パラメータセットを設定する
(1)乃至(8)のいずれかに記載の画像処理装置。
(10) デモザイク処理が行われる前の画像データであるRAWデータの各画素データを互いの相関性の高さに応じて並べ替えるパッキング処理に関するパッキング情報を含む付加情報を設定し、
前記パッキング処理が行われた前記RAWデータを符号化し、得られた符号化データと、前記設定部により設定された前記付加情報とを含むビットストリームを生成する
画像処理方法。
(11) ビットストリームに含まれる、デモザイク処理が行われる前の画像データであるRAWデータが符号化された符号化データを復号する復号部と、
前記ビットストリームに含まれる付加情報から、前記パッキング処理に関する情報であって、前記復号部により前記符号化データが復号されて得られた前記パッキング処理が行われた前記RAWデータの前記画素データを前記パッキング処理が行われる前の並びに戻すアンパッキング処理に用いられるパッキング情報を抽出する抽出部と
を備える画像処理装置。
(12) 前記抽出部は、前記パッキング情報として、前記パッキング処理における前記画素データの並び替え方法を示す情報を抽出する
(11)、(13)乃至(19)のいずれかに記載の画像処理装置。
(13) 前記抽出部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータのコンポーネント数を示す情報を抽出する
(11)、(12)、(14)乃至(19)のいずれかに記載の画像処理装置。
(14) 前記抽出部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータの各コンポーネントの識別情報を抽出する
(11)乃至(13)、(15)乃至(19)のいずれかに記載の画像処理装置。
(15) 前記抽出部は、前記パッキング情報として、前記パッキング処理が行われた前記RAWデータの構成を示す情報を抽出する
(11)乃至(14)、(16)乃至(19)のいずれかに記載の画像処理装置。
(16) 前記抽出部は、前記パッキング情報として、前記符号化データの生成においてビットストリーム制約が行われたかを示す情報を抽出する
(11)乃至(15)、(17)乃至(19)のいずれかに記載の画像処理装置。
(17) 前記抽出部は、前記パッキング情報として、前記符号化データの生成においてインループフィルタが用いられていないかを示す情報を抽出する
(11)乃至(16)、(18)、(19)のいずれかに記載の画像処理装置。
(18) 前記抽出部は、前記ビットストリームに含まれるSEI(Supplemental Enhancement Information)から、前記パッキング情報を抽出する
(11)乃至(17)、(19)のいずれかに記載の画像処理装置。
(19) 前記抽出部により抽出された前記パッキング情報を用いて、前記復号部により前記符号化データが復号されて得られた前記パッキング処理が行われた前記RAWデータに対して、前記アンパッキング処理を行うアンパッキング処理部をさらに備える
(11)乃至(18)のいずれかに記載の画像処理装置。
(20) ビットストリームに含まれる、デモザイク処理が行われる前の画像データであるRAWデータが符号化された符号化データを復号し、
前記ビットストリームに含まれる付加情報から、前記パッキング処理に関する情報であって、前記符号化データが復号されて得られた前記パッキング処理が行われた前記RAWデータの前記画素データを前記パッキング処理が行われる前の並びに戻すアンパッキング処理に用いられるパッキング情報を抽出する
画像処理方法。