以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置・画像復号装置)
2.第2の実施の形態(画像符号化装置・画像復号装置)
3.第3の実施の形態(画像符号化装置・画像復号装置)
4.第4の実施の形態(画像符号化装置・画像復号装置)
5.第5の実施の形態(重み係数の共通化)
6.第6の実施の形態(多視点画像符号化装置・多視点画像復号装置)
7.第7の実施の形態(階層画像符号化装置・階層画像復号装置)
8.第8の実施の形態(コンピュータ)
9.第9の実施の形態(応用例)
10.第10の実施の形態(セット・ユニット・モジュール・プロセッサ)
<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より低い演算量での実現が可能である。
<残差予測>
ところで、HEVCにおいて、444符号化の際に、残差信号に対してコンポーネント間で予測(残差予測とも称する)を行う方法が考えられた(例えば、非特許文献2参照)。
この非特許文献2に記載の方法では、色差成分(Cb/Cr)(または、R成分やB成分)に対して、輝度成分(Y)(またはG成分)を用いて以下の式(3)ように予測が行われる。
ここで、rc(x,y)は、色差成分(CbまたはCr)の残差データ(入力画像と予測画像の差分)を示す。また、rL(x,y)は、輝度成分(Y)の残差データ(入力画像と予測画像の差分)を示す。さらに、Δrc(x,y)は、残差予測の予測結果(色差成分(CbまたはCr)の残差データを輝度成分(Y)の残差データで予測したもの)(予測残差データとも称する)を示す。なお、これらにおいて、x,yは、画像内の位置(座標)を示す。
また、αは、重み係数を示し、±(0,1,2,4,8)のいずれかの値をとる。この値は、TU単位で設定される(すなわち、TU単位で復号側に伝送される)。さらに、>>は、右方向へのビットシフト(右シフト)を示す。例えば、>>nは、nビット分の右シフトを示す。
なお、このような残差予測を行うか否かがピクチャパラメータセット(PPS(Picture Parameter Set))単位で制御される。つまり、このような残差予測を行うか否かを制御するOn/OffフラグがPPSにおいて復号側に伝送される。
ところで、各コンポーネントのデータのビット深度は、一般的に互いに独立であるため、互いに異なる値が設定される可能性がある。しかしながら、上述した式(3)に示されるように、非特許文献2に記載の予測方法では、各コンポーネントの残差データ(輝度成分や色差成分)のビット深度は互いに同一であることが前提であり、コンポーネント間で残差データのビット深度が異なるケースについては想定されていなかった。つまり、式(3)のような予測では、コンポーネント間で残差データのビット深度が異なる場合には正しい予測を行うことができず、符号化効率が低減するおそれがあった。
<ビット深度のスケーリング>
そこで、複数コンポーネントからなる入力画像と予測画像との残差データに対してコンポーネント間で予測(残差予測)を行う際に、その残差データのビット深度をコンポーネント間で揃える(スケーリングを行う)ようにする。このようにすることにより、残差データのビット深度がコンポーネント間で異なる場合であっても、各コンポーネントの残差データのビット深度を揃えて予測を行うことができるので、残差予測を正しく行うことができる。したがって、符号化効率の低減を抑制することができる。
コンポーネント間で残差データのビット深度を揃える方法は任意であるが、例えば、残差データをビットシフトすることにより、コンポーネント間で残差データのビット深度を揃えるようにしてもよい。このようにすることにより、容易にコンポーネント間で残差データのビット深度を揃えることができる。すなわち、処理の負荷や処理時間を低減させることができる。
また、このように残差データのビット深度を揃える入力画像の色空間は任意である。例えば、YUV空間(YUV444等)であってもよいし、RGB空間(RGB444等)であってもよい。例えば、入力画像がYUV空間の場合、輝度成分と色差成分との間で、ビットシフトによって残差データのビット深度を揃えて予測を行うようにしてもよい。より具体的には、例えば、輝度成分のビット深度をビットシフトによって色差成分のビット深度に揃えてから予測を行うようにしてもよい。また例えば、入力画像がRGB空間の場合、G成分とR成分またはB成分との間で、ビットシフトによって残差データのビット深度を揃えて予測を行うようにしてもよい。より具体的には、例えば、G成分のビット深度をビットシフトによってR成分やB成分のビット深度に揃えてから予測を行うようにしてもよい。
<シフト演算>
以上のようなビット深度を揃えるビットシフト(シフト演算)の具体例について説明する。このシフト演算方法は任意である。例えば、予測を行う2つのコンポーネント間のビット深度の差が0でない場合、ビットシフトによって残差データのビット深度をコンポーネント間で揃えて予測を行うようにしてもよい。例えば、以下の式(4)のように、コンポーネント間の残差データのビット深度の差分(ビット深度差)を求め、式(5)乃至式(8)のように、そのビット深度差の分だけビットシフトを行うようにしてもよい。その際、ビットシフトは、式(6)や式(8)のように、ビット深度差の絶対値の分だけ行われるようにしてもよい。その場合、例えば、式(5)や式(7)の条件を満たすか否かに応じて、式(6)や式(8)のようにシフト方向が決定されるようにしてもよい。
式(4)乃至式(8)において、BitDepthYは、輝度成分(Y)の残差データのビット深度を示す。BitDepthCは、色差成分(CbまたはCr)の残差データのビット深度を示す。Δbitdepthは、コンポーネント間のビット深度差(輝度成分(Y)の残差データのビット深度(BitDepthY)と色差成分(CbまたはCr)の残差データのビット深度(BitDepthC)との差)を示す。
また、rc(x,y)は、色差成分(CbまたはCr)の残差データを示す。また、rL(x,y)は、輝度成分(Y)の残差データを示す。さらに、Δrc(x,y)は、コンポーネント間の予測残差データ(色差成分(CbまたはCr)の残差データを輝度成分(Y)の残差データで予測したもの)を示す。なお、これらにおいて、x,yは、画像内の位置(座標)を示す。
また、αは、重み係数を示す。このαの値は任意であるが、例えば±(0,1,2,4,8)のいずれかの値に設定される。この値は、TU単位で設定される(すなわち、TU単位で復号側に伝送される)。さらに、>>は、右方向へのビットシフト(右シフト)を示し、<<は、左方向へのビットシフト(左シフト)を示す。例えば、>>nは、nビット分の右シフトを示し、<<mは、mビット分の左シフトを示す。
この例の場合、式(4)乃至式(8)に示されるように、式(4)により、コンポーネント間のビット深度差(Δbitdepth)が算出される。そして、この値が式(5)の条件を満たす場合、すなわち、Δbitdepthが0以上の場合、予測残差データ(Δrc(x,y))が、式(6)のように算出される。式(6)に示されるように、この場合の算出方法は、基本的に式(3)と同様であるが、輝度成分(Y)の残差データ(rL(x,y))がビット深度差(Δbitdepth)分右シフトされて予測残差データ(Δrc(x,y))が算出される。
これに対して、コンポーネント間のビット深度差(Δbitdepth)が負の値(0より小さい値)であり、式(5)の条件を満たさない場合(式(7)の条件を満たす場合)、予測残差データ(Δrc(x,y))が、式(8)のように算出される。式(8)に示されるように、この場合の算出方法も、基本的に式(3)と同様であるが、輝度成分(Y)の残差データ(rL(x,y))がビット深度差(-Δbitdepth)分左シフトされて予測残差データ(Δrc(x,y))が算出される。
つまり、これらの場合、輝度成分(Y)の残差データ(rL(x,y))のビット深度(BitDepthY)が、色差成分(CbまたはCr)の残差データ(rc(x,y))のビット深度(BitDepthC)に揃えられて予測残差データ(Δrc(x,y))が算出される。より具体的には、残差予測に用いる2つのコンポーネント間のビット深度の差が求められ、2つのコンポーネントの内の一方のコンポーネントの残差データに対してビット深度の差に応じたビットシフト(スケーリング)が行われ、ビットシフトされた残差データに所定の重み係数が乗算され、その乗算結果に対して所定のビット数分のビットシフトが行われ、他方のコンポーネントの残差データとビットシフトされた乗算結果との差分が求められる。以上のように予測を行うようにしてもよい。
なお、Δbitdepthが0の場合、輝度成分(Y)の残差データ(rL(x,y))のビットシフト量が0であるので、予測残差データ(Δrc(x,y))は、式(3)のように算出されるとも言える。
以上のように算出することにより、残差データのビット深度がコンポーネント間で異なる場合であっても、予測残差データ(Δrc(x,y))を正しく算出することができる。したがって、符号化効率の低減を抑制することができる。
<セマンティクス>
以上のようなビット深度のスケーリングを行うためには、セマンティクスを図2の例のような記述にすればよい。図2に示されるセマンティクスの下線を付した部分が、上述したスケーリング(例えば、式(5)乃至式(8))に相当する記述である。
<画像符号化装置>
図3は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図3に示される画像符号化装置100は、例えば、HEVCの予測処理、またはそれに準ずる方式の予測処理を用いて動画像の画像データを符号化する。なお、以下においては、入力画像の色空間がYUV444である場合を例に説明する。
図3に示されるように画像符号化装置100は、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、蓄積バッファ107、逆量子化部108、および逆直交変換部109を有する。また、画像符号化装置100は、演算部110、ループフィルタ111、フレームメモリ112、イントラ予測部113、インター予測部114、予測画像選択部115、およびレート制御部116を有する。さらに、画像符号化装置100は、ヘッダ処理部121、残差予測部122、および残差復元部123を有する。
画面並べ替えバッファ102は、入力された画像データの各フレームの画像をその表示順に記憶し、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部113およびインター予測部114にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部115を介してイントラ予測部113若しくはインター予測部114から供給される予測画像を減算し、その差分情報(残差データ)を残差予測部122に供給する。例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部113から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、インター予測部114から供給される予測画像を減算する。
直交変換部104は、残差予測部122から供給される輝度成分の残差データや色差成分の予測残差データに対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部104は、その直交変換により得られた変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部116から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部116の制御の下で量子化されているので、この符号量は、レート制御部116が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ予測のモードを示す情報などをイントラ予測部113から取得し、インター予測のモードを示す情報や差分動きベクトル情報などをインター予測部114から取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)のヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、画像符号化装置100の外部に出力する。すなわち、蓄積バッファ107は、符号化データを伝送する伝送部でもある。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、その逆量子化により得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換部109は、逆直交変換された出力(復元された輝度成分の残差データや色差成分の予測残差データ)を残差復元部123に供給する。また、逆直交変換部109は、復元された輝度成分の残差データを残差予測部122にも供給する。
演算部110は、残差復元部123から供給された、復元された各コンポーネントの残差データに、予測画像選択部115を介してイントラ予測部113若しくはインター予測部114からの予測画像を加算し、局所的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、ループフィルタ111またはイントラ予測部113に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ112に供給する。
フレームメモリ112は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像としてインター予測部114に供給する。
イントラ予測部113は、演算部110から参照画像として供給される再構成画像である処理対象ピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部113は、予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部113は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部113は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
また、上述したように、イントラ予測部113は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部106に供給し、符号化させる。
インター予測部114は、画面並べ替えバッファ102から供給される入力画像と、フレームメモリ112から供給される参照画像とを用いてインター予測処理(動き予測処理および補償処理)を行う。より具体的には、インター予測部114は、インター予測処理として、動き予測を行って検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。インター予測部114は、予め用意された複数のインター予測モードでこのようなインター予測を行う。
インター予測部114は、候補となる全てのインター予測モードで予測画像を生成する。インター予測部114は、画面並べ替えバッファ102から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。インター予測部114は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部115に供給する。
インター予測部114は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部106に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として、予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部115は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部115は、予測画像の供給元としてイントラ予測部113を選択し、そのイントラ予測部113から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部115は、予測画像の供給元としてインター予測部114を選択し、そのインター予測部114から供給される予測画像を演算部103や演算部110に供給する。
レート制御部116は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ヘッダ処理部121は、例えば、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS)、SEI(Supplemental Enhancement Information)、スライスヘッダ等の画像情報以外の付加情報(ヘッダ情報とも称する)を生成する。ヘッダ処理部121は、生成したヘッダ情報を可逆符号化部106に供給し、ビットストリームに含めて復号側に伝送させる。また、ヘッダ処理部121は、生成したヘッダ情報の中から必要な情報を残差予測部122に供給する。詳細については後述する。
残差予測部122は、演算部103から供給される色差成分の残差データと、逆直交変換部109から供給される、復元された輝度成分の残差データとを用いて残差予測を行う。より具体的には、残差予測部122は、復元された輝度成分の残差データを用いて、色差成分の残差データの予測を行い、予測残差データを生成する。その際、残差予測部122は、残差データのビット深度をコンポーネント間で揃えて予測を行う。詳細については後述する。残差予測部122は、このような残差予測により得られた色差成分の予測残差データや演算部103から供給される輝度成分の残差データを直交変換部104に供給する。なお、残差予測が行われない場合、残差予測部122は、演算部103から供給される各コンポーネントの残差データを直交変換部104に供給する。
残差復元部123は、逆直交変換部109から供給される輝度成分の残差データと色差成分の予測残差データとを用いて、色差成分の残差データを復元する(残差復元とも称する)。その際、残差復元部123は、残差データのビット深度をコンポーネント間で揃えて復元を行う。なお、この残差復元の処理は、復号側において行われる残差復元の処理と基本的に同様であるので、復号側を説明する際に、その復号側の説明を利用してこの残差復元の処理についての説明を行う。残差復元部123は、復元された各コンポーネントの残差データを演算部110に供給する。
<ヘッダ処理部および残差予測部>
図4は、図3のヘッダ処理部121および残差予測部122の主な構成例を示すブロック図である。図4に示されるようにヘッダ処理部121は、SPS処理部131およびPPS処理部132を有する。
SPS処理部131は、例えば、シーケンスパラメータセット(SPS)の生成に関する処理を行う。また、SPS処理部131は、例えば、シーケンスパラメータセット(SPS)に含まれる、輝度成分のビット深度を示す情報(例えばbit_depth_luma_minus8)若しくは輝度成分のビット深度を示す情報を含む情報と、色差成分(Cb/Cr)のビット深度を示す情報(例えばbit_depth_chroma_minus8)若しくは色差成分のビット深度を示す情報を含む情報とを残差予測部122(後述するビット深度差算出部151)に供給する。
PPS処理部132は、例えば、ピクチャパラメータセット(PPS)の生成に関する処理を行う。また、PPS処理部132は、例えば、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を残差予測部122(後述するビットシフト制御部152)に供給する。
残差予測部122は、演算部103から供給される輝度成分の残差データ(rY(x,y))を、直交変換部104に供給する。また、残差予測部122は、制御部141および予測部142を有する。制御部141は、残差予測の演算の制御に関する処理を行う。予測部142は、制御部141に制御されて、その予測に関する演算を行う。例えば、予測部142は、制御部141の制御に基づいて、逆直交変換部109から取得した、復元された輝度成分の残差データ(r'Y(x,y))を用いて、演算部103から取得した色差成分の残差データ(rCr(x,y)とrCb(x,y))の予測(残差予測)を行い、予測残差データ(ΔrCr(x,y)とΔrCb(x,y))を生成し、直交変換部104に供給する。また、予測部142は、制御部141に制御されて、残差予測を行わずに、演算部103から取得した色差成分の残差データ(rCr(x,y)とrCb(x,y))を、直交変換部104に供給する。
制御部141は、ビット深度差算出部151、ビットシフト制御部152、および重み係数設定部153を有する。
ビット深度差算出部151は、残差予測に用いる各コンポーネントの残差データのビット深度の差を算出する。例えば、ビット深度差算出部151は、SPS処理部131から、輝度成分のビット深度を示す情報(例えばbit_depth_luma_minus8)若しくは輝度成分のビット深度を示す情報を含む情報と、色差成分(Cb/Cr)のビット深度を示す情報(例えばbit_depth_chroma_minus8)若しくは色差成分のビット深度を示す情報を含む情報とを取得し、それらの情報を用いて、式(4)に示される演算を行い、コンポーネント間のビット深度差(delta_bitdepth)を算出する。ビット深度差算出部151は、算出したビット深度差(delta_bitdepth)をビットシフト制御部152に供給する。
また、ビット深度差算出部151は、ビットシフト制御部152の制御に基づいて、算出したビット深度差(delta_bitdepth)を予測部142に供給する。例えば、ビット深度のスケーリングの際に残差データの右シフトを行う場合、ビット深度差算出部151は、算出したビット深度差(delta_bitdepth)を右シフト部162に供給する。また、ビット深度のスケーリングの際に残差データの左シフトを行う場合、ビット深度差算出部151は、算出したビット深度差(−delta_bitdepth)を左シフト部163に供給する。
ビットシフト制御部152は、ビット深度差算出部151から供給されるコンポーネント間のビット深度差(delta_bitdepth)の値に基づいて、予測部142による演算を制御する。例えば、ビットシフト制御部152は、ビット深度差(delta_bitdepth)が0の場合、残差データのビットシフト(ビット深度のスケーリング)を行わないように、予測部142(の選択部161)を制御する。また、その際、ビットシフト制御部152は、ビット深度差算出部151も制御し、ビット深度差(delta_bitdepth)を予測部142に供給させないようにする。
また、例えば、ビットシフト制御部152は、ビット深度差(delta_bitdepth)が正の値(>0)の場合、残差データを右シフトする(ビット深度のスケーリングを行う)ように、予測部142(の選択部161)を制御する。また、その際、ビットシフト制御部152は、ビット深度差算出部151も制御し、ビット深度差(delta_bitdepth)を予測部142(右シフト部162)に供給させる。
さらに、例えば、ビットシフト制御部152は、ビット深度差(delta_bitdepth)が負の値(<0)の場合、残差データを左シフトする(ビット深度のスケーリングを行う)ように、予測部142(の選択部161)を制御する。また、その際、ビットシフト制御部152は、ビット深度差算出部151も制御し、ビット深度差(−delta_bitdepth)を予測部142(左シフト部163)に供給させる。
また、ビットシフト制御部152は、例えば、PPS処理部132から、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を取得し、その値に基づいて、残差予測を行うか否かを制御する。例えば、残差予測を行うか否かを制御する情報により残差予測を行わないことが示されている場合、ビットシフト制御部152は、予測部142を制御し、予測に関する演算を行わせないようにする。また、その場合、ビットシフト制御部152は、ビット深度差算出部151を制御し、ビット深度差(delta_bitdepthまたは-delta_bitdepth)の供給を停止させる。さらに、ビットシフト制御部152は、その場合、重み係数設定部153を制御し、重み係数αを設定させないようにする。
逆に、例えば、残差予測を行うか否かを制御する情報により残差予測を行うことが示されている場合、ビットシフト制御部152は、予測部142を制御し、予測に関する演算を行わせるようにする。また、その場合、ビットシフト制御部152は、ビット深度差算出部151を制御し、ビット深度差(delta_bitdepthまたは-delta_bitdepth)を予測部142に供給させる。さらに、その場合、ビットシフト制御部152は、重み係数設定部153を制御し、重み係数αを設定させ、予測部142(重み係数乗算部164)に供給させる。
重み係数設定部153は、ビットシフト制御部152の制御に従って、重み係数αを設定する。この重み係数αの設定方法や値は任意である。例えば、重み係数設定部153が、コンポーネント毎に独立に重み係数αを設定するようにしてもよい。また、重み係数設定部153は、重み係数αを設定した場合、その重み係数αを、予測部142(重み係数乗算部164)に供給する。また、この重み係数αは、残差復元においても用いられるため、ビットストリームに含められて復号側に提供される。
予測部142は、選択部161、右シフト部162、左シフト部163、重み係数乗算部164、右シフト部165、演算部166、および演算部167を有する。
選択部161は、ビットシフト制御部152の制御に従って、逆直交変換部109から供給される、復元された輝度成分の残差データ(r'Y(x,y))の供給先を選択する。例えば、ビット深度のスケーリング(右シフト)が行われる場合、選択部161は、復元された輝度成分の残差データ(r'Y(x,y))を右シフト部162に供給する。この場合、式(6)の演算が行われる。また、例えば、ビット深度のスケーリング(左シフト)が行われる場合、選択部161は、復元された輝度成分の残差データ(r'Y(x,y))を左シフト部163に供給する。この場合、式(8)の演算が行われる。さらに、例えば、ビット深度のスケーリングが行われない場合、選択部161は、復元された輝度成分の残差データ(r'Y(x,y))を重み係数乗算部164に供給する。この場合、式(3)の演算が行われる。
右シフト部162は、選択部161から取得した、復元された輝度成分の残差データ(r'Y(x,y))を、ビット深度差算出部151から取得したビット深度差(delta_bitdepth)分、右シフトすることにより、ビット深度のスケーリングを行う。右シフト部162は、輝度成分の残差データの右シフト結果(r'Y(x,y)>>delta_bitdepth)を、重み係数乗算部164に供給する。
左シフト部163は、選択部161から取得した、復元された輝度成分の残差データ(r'Y(x,y))を、ビット深度差算出部151から取得したビット深度差(-delta_bitdepth)分、左シフトすることにより、ビット深度のスケーリングを行う。左シフト部163は、輝度成分の残差データの左シフト結果(r'Y(x,y)<<-delta_bitdepth)を、重み係数乗算部164に供給する。
重み係数乗算部164は、選択部161乃至左シフト部163のいずれかから、復元された輝度成分の残差データを取得する。例えば、重み係数乗算部164は、ビットシフトされていない、復元された輝度成分の残差データ(r'Y(x,y))を選択部161から取得する。また、例えば、重み係数乗算部164は、右シフトされた、復元された輝度成分の残差データ(r'Y(x,y)>>delta_bitdepth)を右シフト部162から取得する。さらに、例えば、重み係数乗算部164は、左シフトされた、復元された輝度成分の残差データ(r'Y(x,y)<<-delta_bitdepth)を左シフト部163から取得する。
また、重み係数乗算部164は、重み係数設定部153から重み係数αを取得する。重み係数乗算部164は、取得した復元された輝度成分の残差データにその重み係数αを乗算し、その乗算結果(α×(r'Y(x,y))、α×(r'Y(x,y)>>delta_bitdepth)、または、α×(r'Y(x,y)<<-delta_bitdepth))を右シフト部165に供給する。
右シフト部165は、重み係数乗算部164から供給された、復元された輝度成分の残差データ(α×(r'Y(x,y))、α×(r'Y(x,y)>>delta_bitdepth)、または、α×(r'Y(x,y)<<-delta_bitdepth))を、所定のビット数分、右シフトする。このビットシフト量は任意であるが、例えば、式(3)、式(6)、式(8)の場合、右シフト部165は、残差データを3ビット右シフトする。右シフト部165は、その右シフト結果(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を、演算部166若しくは演算部167に供給する。
演算部166は、演算部103から供給される色差成分(Cr)の残差データ(rCr(x,y))から、右シフト部165から供給される、復元された輝度成分の残差データ(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を減算することにより、色差成分(Cr)の予測残差データ(ΔrCr(x,y))を生成し、それを直交変換部104に供給する。また、このような演算を行わない場合、演算部166は、演算部103から供給される色差成分(Cr)の残差データ(rCr(x,y))を、直交変換部104に供給する。
さらに、演算部167は、演算部103から供給される色差成分(Cb)の残差データ(rCb(x,y))から、右シフト部165から供給される、復元された輝度成分の残差データ(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を減算することにより、色差成分(Cb)の予測残差データ(ΔrCb(x,y))を生成し、それを直交変換部104に供給する。また、このような演算を行わない場合、演算部167は、演算部103から供給される色差成分(Cb)の残差データ(rCb(x,y))を、直交変換部104に供給する。
残差予測部122は、以上のように、残差予測において、復元された輝度成分の残差データのビット深度のスケーリングを行って予測を行う。したがって、残差予測部122は、残差データのビット深度がコンポーネント間で異なる場合であっても、予測残差データを正しく算出することができる。したがって、画像符号化装置100は、符号化効率の低減を抑制することができる。
<符号化処理の流れ>
次に、画像符号化装置100により実行される各処理の流れの例を説明する。最初に、符号化処理の流れの例を、図5のフローチャートを参照して説明する。
符号化処理が開始されると、ヘッダ処理部121は、ステップS101において、例えばシーケンスパラメータセット(SPS)やピクチャパラメータセット(PPS)等のヘッダ情報を生成する。
ステップS102において、画面並べ替えバッファ102は、入力された動画像の各フレーム(ピクチャ)の画像をその表示する順番に記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、イントラ予測部113は、イントラ予測モードのイントラ予測処理を行う。
ステップS104において、インター予測部114は、インター予測モードでの動き予測や動き補償等を行うインター予測処理を行う。
ステップS105において、予測画像選択部115は、コスト関数値等に基づいて、ステップS103のイントラ予測により生成された予測画像と、ステップS104のインター予測により生成された予測画像のいずれか一方を選択する。
ステップS106において、演算部103は、ステップS102の処理によりフレーム順を並び替えられた入力画像と、ステップS105の処理により選択された予測画像との差分を演算する。つまり、演算部103は、入力画像と予測画像との残差データを生成する。このようにして求められた残差データは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。これらの処理が各コンポーネント(Y,Cr,Cb)のそれぞれについて行われる。
ステップS107において、残差予測部122は、ステップS106の処理により得られた色差成分の残差データに対して、輝度成分の残差データを用いて残差予測を行う。その際、残差予測部122は、残差データのビット深度をコンポーネント間で揃えて予測を行う。この処理の詳細については後述する。
ステップS108において、直交変換部104は、ステップS106の処理により生成された輝度成分の残差データ、並びに、ステップS107の処理により生成された色差成分の予測残差データを直交変換する。
ステップS109において、量子化部105は、レート制御部116により算出された量子化パラメータを用いて、ステップS108の処理により得られた直交変換係数を量子化する。
ステップS110において、逆量子化部108は、ステップS109の処理により生成された量子化された係数(量子化係数とも称する)を、その量子化の特性に対応する特性で逆量子化する。
ステップS111において、逆直交変換部109は、ステップS108の処理により得られた直交変換係数を逆直交変換する。
ステップS112において、残差復元部123は、ステップS111の処理により復元された輝度成分の残差データと色差成分の予測残差データとを用いて、色差成分の残差データを復元する。その際、残差復元部123は、残差データのビット深度をコンポーネント間で揃えて復元を行う。この処理の詳細については後述する。
ステップS113において、演算部110は、ステップS111およびステップS112の処理により復元された各コンポーネントの残差データに、ステップS105の処理により選択された予測画像を加算することにより、再構成画像の画像データを生成する。
ステップS114においてループフィルタ111は、ステップS113の処理により生成された再構成画像の画像データにループフィルタ処理を行う。これにより、再構成画像のブロック歪み等が除去される。
ステップS115において、フレームメモリ112は、ステップS114の処理により得られた、局所的に復号された復号画像を記憶する。
ステップS116において、可逆符号化部106は、ステップS109の処理により得られた、量子化された係数を符号化する。すなわち、残差データに対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部106は、ステップS105の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部113から供給される最適イントラ予測モード情報、または、インター予測部114から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS117において蓄積バッファ107は、ステップS116の処理により得られた符号化データ等を蓄積する。蓄積バッファ107に蓄積された符号化データ等は、ビットストリームとして適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS118においてレート制御部116は、ステップS117の処理により蓄積バッファ107に蓄積された符号化データ等の符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、ステップS109の量子化処理のレートを制御する。
ステップS118の処理が終了すると、符号化処理が終了する。
<残差予測処理の流れ>
次に、このような符号化処理のステップS107において実行される残差予測処理の流れの例を、図6のフローチャートを参照して説明する。
残差予測処理が開始されると、ステップS121において、ビット深度差算出部151は、残差予測を行うコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部151は、式(4)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS122において、ビットシフト制御部152は、ステップS121において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS123に進む。この場合、ビットシフトは行われず、残差予測は、式(3)のように行われる。
ステップS123において、ビットシフト制御部152は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて残差予測を行うか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測を行うと判定された場合、処理はステップS124に進む。
ステップS124において、重み係数設定部153は、TU毎に重み係数αを設定する。
ステップS125において、予測部142は、ビット深度のスケーリングを行わずに、残差データのコンポーネント間の予測(残差予測)を行う。この処理の詳細は後述する。
ステップS125における残差予測が終了すると、残差予測処理が終了し、処理は図5に戻る。
また、例えば、ステップS123において、luma_chroma_prediction_enabled_flagの値が0であり、残差予測を行わないと判定された場合、ステップS124およびステップS125の処理が省略され、残差予測処理が終了し、処理は図5に戻る。
また、ステップS122において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS126に進む。
ステップS126において、ビットシフト制御部152は、ステップS121において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS127に進む。この場合、残差予測は、式(6)のように行われる(右シフトによるスケーリングが行われる)。
ステップS127において、ビットシフト制御部152は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて残差予測を行うか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測を行うと判定された場合、処理はステップS128に進む。
ステップS128において、重み係数設定部153は、TU毎に重み係数αを設定する。
ステップS129において、予測部142は、右シフトによりビット深度のスケーリングを行って、残差データのコンポーネント間の予測(残差予測)を行う。この処理の詳細は後述する。
ステップS129における残差予測が終了すると、残差予測処理が終了し、処理は図5に戻る。
また、例えば、ステップS127において、luma_chroma_prediction_enabled_flagの値が0であり、残差予測を行わないと判定された場合、ステップS128およびステップS129の処理が省略され、残差予測処理が終了し、処理は図5に戻る。
また、ステップS126において、ビット深度差(delta_bitdepth)が正でない(負である)と判定された場合、処理はステップS130に進む。この場合、残差予測は、式(8)のように行われる(左シフトによるスケーリングが行われる)。
ステップS130において、ビットシフト制御部152は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて残差予測を行うか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測を行うと判定された場合、処理はステップS131に進む。
ステップS131において、重み係数設定部153は、TU毎に重み係数αを設定する。
ステップS132において、予測部142は、左シフトによりビット深度のスケーリングを行って、残差データのコンポーネント間の予測(残差予測)を行う。この処理の詳細は後述する。
ステップS132における残差予測が終了すると、残差予測処理が終了し、処理は図5に戻る。
また、例えば、ステップS130において、luma_chroma_prediction_enabled_flagの値が0であり、残差予測を行わないと判定された場合、ステップS131およびステップS132の処理が省略され、残差予測処理が終了し、処理は図5に戻る。
<予測残差データ生成処理の流れ>
次に、このような残差予測処理のステップS125において実行される予測残差データ生成処理の流れの例を、図7のフローチャートを参照して説明する。
予測残差データ生成処理が開始されると、ステップS141において、予測部142の重み係数乗算部164は、復元された輝度成分の残差データ(r'Y(x,y))に、図6のステップS124の処理により設定された重み係数αを乗算する(α×r'Y(x,y))。
ステップS142において、右シフト部165は、ステップS141において算出された乗算結果(α×r'Y(x,y))を3ビット右シフトする((α×r'Y(x,y))>>3)。
ステップS143において、演算部166は、輝度成分Crの残差データ(rCr(x,y))から、ステップS142において算出された右シフト結果((α×r'Y(x,y))>>3)を減算することにより(rCr(x,y)-(α×r'Y(x,y))>>3)、予測残差データ(ΔrCr(x,y))を生成する。また、演算部167は、輝度成分Cbの残差データ(rCb(x,y))から、ステップS142において算出された右シフト結果((α×r'Y(x,y))>>3)を減算することにより(rCb(x,y)-(α×r'Y(x,y))>>3)、予測残差データ(ΔrCb(x,y))を生成する。
以上のように予測残差データ(ΔrCr(x,y)およびΔrCb(x,y))が生成されると、予測残差データ生成処理が終了し、処理は図6に戻る。
<予測残差データ生成処理の流れ>
次に、残差予測処理のステップS129において実行される予測残差データ生成処理の流れの例を、図8のフローチャートを参照して説明する。
予測残差データ生成処理が開始されると、ステップS151において、予測部142の右シフト部162は、復元された輝度成分の残差データ(r'Y(x,y))を、図6のステップS121の処理により算出された残差データのビット深度差(delta_bitdepth)の分、右シフトする(r'Y(x,y)>>delta_bitdepth)。
ステップS152において、重み係数乗算部164は、ステップS151において算出された右シフト結果(r'Y(x,y)>>delta_bitdepth)に、図6のステップS128の処理により設定された重み係数αを乗算する(α×(r'Y(x,y)>>delta_bitdepth))。
ステップS153において、右シフト部165は、ステップS152において算出された乗算結果(α×(r'Y(x,y)>>delta_bitdepth))を3ビット右シフトする(α×(r'Y(x,y)>>delta_bitdepth)>>3)。
ステップS154において、演算部166は、輝度成分Crの残差データ(rCr(x,y))から、ステップS153において算出された右シフト結果(α×(r'Y(x,y)>>delta_bitdepth)>>3)を減算することにより(rCr(x,y)-α×(r'Y(x,y)>>delta_bitdepth)>>3)、予測残差データ(ΔrCr(x,y))を生成する。また、演算部167は、輝度成分Cbの残差データ(rCb(x,y))から、ステップS153において算出された右シフト結果(α×(r'Y(x,y)>>delta_bitdepth)>>3)を減算することにより(rCb(x,y)-α×(r'Y(x,y)>>delta_bitdepth)>>3)、予測残差データ(ΔrCb(x,y))を生成する。
以上のように予測残差データ(ΔrCr(x,y)およびΔrCb(x,y))が生成されると、予測残差データ生成処理が終了し、処理は図6に戻る。
<予測残差データ生成処理の流れ>
次に、残差予測処理のステップS132において実行される予測残差データ生成処理の流れの例を、図9のフローチャートを参照して説明する。
予測残差データ生成処理が開始されると、ステップS161において、予測部142の左シフト部163は、復元された輝度成分の残差データ(r'Y(x,y))を、図6のステップS121の処理により算出された残差データのビット深度差(-delta_bitdepth)の分、左シフトする(r'Y(x,y)<<-delta_bitdepth)。
ステップS162において、重み係数乗算部164は、ステップS161において算出された左シフト結果(r'Y(x,y)<<-delta_bitdepth)に、図6のステップS131の処理により設定された重み係数αを乗算する(α×(r'Y(x,y)<<-delta_bitdepth))。
ステップS163において、右シフト部165は、ステップS162において算出された乗算結果(α×(r'Y(x,y)<<-delta_bitdepth))を3ビット右シフトする(α×(r'Y(x,y)<<-delta_bitdepth)>>3)。
ステップS164において、演算部166は、輝度成分Crの残差データ(rCr(x,y))から、ステップS153において算出された右シフト結果(α×(r'Y(x,y)<<-delta_bitdepth)>>3)を減算することにより(rCr(x,y)-α×(r'Y(x,y)<<-delta_bitdepth)>>3)、予測残差データ(ΔrCr(x,y))を生成する。また、演算部167は、輝度成分Cbの残差データ(rCb(x,y))から、ステップS163において算出された右シフト結果(α×(r'Y(x,y)<<-delta_bitdepth)>>3)を減算することにより(rCb(x,y)-α×(r'Y(x,y)<<-delta_bitdepth)>>3)、予測残差データ(ΔrCb(x,y))を生成する。
以上のように予測残差データ(ΔrCr(x,y)およびΔrCb(x,y))が生成されると、予測残差データ生成処理が終了し、処理は図6に戻る。
以上のように各処理を実行することにより、残差予測部122は、残差データのビット深度がコンポーネント間で異なる場合であっても、予測残差データを正しく算出することができる。したがって、画像符号化装置100は、符号化効率の低減を抑制することができる。
<残差復元>
次に、以上のように符号化された符号化データ(ビットストリーム)の復号について説明する。残差予測に対応する残差復元を実現する(すなわち、色差成分の残差データを復元する)ためには、式(3)乃至式(8)から明らかなように、残差復元において、残差予測により生成された色差成分の予測残差データに、残差予測に用いられた復元された輝度成分の残差データを加算すればよい。
つまり、式(6)や式(8)に示される例のように、残差予測の際にビット深度をコンポーネント間で揃える場合、その残差予測に対応する残差復元においても、ビット深度をコンポーネント間で揃えて色差成分の残差データを復元するようにすればよい。このようにすることにより、残差データのビット深度がコンポーネント間で異なる場合であっても、各コンポーネントの残差データのビット深度を揃えて復元を行うことができるので、残差復元を正しく行うことができる。したがって、符号化効率の低減を抑制することができる。
コンポーネント間で残差データのビット深度を揃える方法は任意であるが、残差予測の際と同様に行えばよい。例えば、残差データをビットシフトすることにより、コンポーネント間で残差データのビット深度を揃えるようにしてもよい。このようにすることにより、容易にコンポーネント間で残差データのビット深度を揃えることができる。すなわち、処理の負荷や処理時間を低減させることができる。
当然、残差復元の場合も、残差復号の場合と同様に、残差データのビット深度を揃える画像の色空間は任意である。例えば、YUV空間(YUV444等)であってもよいし、RGB空間(RGB444等)であってもよい。例えば、画像がYUV空間の場合、輝度成分と色差成分との間で、ビットシフトによって残差データのビット深度を揃えて復元を行うようにしてもよい。より具体的には、例えば、輝度成分のビット深度をビットシフトによって色差成分のビット深度に揃えてから復元を行うようにしてもよい。また例えば、画像がRGB空間の場合、G成分とR成分またはB成分との間で、ビットシフトによって残差データのビット深度を揃えて復元を行うようにしてもよい。より具体的には、例えば、G成分のビット深度をビットシフトによってR成分やB成分のビット深度に揃えてから復元を行うようにしてもよい。
<残差復元演算>
以上のような残差復元の演算の具体例について説明する。例えば、式(3)のように、残差予測においてビット深度のスケーリングを行わない場合、残差復元においても、以下の式(9)のように、ビット深度のスケーリングを行わないようにすればよい。同様に、残差予測において、例えば式(4)乃至式(8)のように、ビット深度のスケーリングを行う場合、残差復元においても、以下の式(10)乃至式(14)のように、ビット深度のスケーリングを行うようにすればよい。
以上のようなビット深度を揃えるシフト演算方法は任意である。各コンポーネントの残差データのビット深度に関する情報が符号化側から伝送され、この符号化側から伝送されてきた各コンポーネントの残差データのビット深度に関する情報に基づいて、予測を行う2つのコンポーネント間のビット深度の差を求め、求めたビット深度の差に基づいてビットシフトを行うことにより、残差データのビット深度を揃えるようにしてもよい。そして、その2つのコンポーネント間のビット深度の差が0でない場合、ビットシフトによって残差データのビット深度をコンポーネント間で揃えて復元を行うようにしてもよい。例えば、上述した式(10)のように、コンポーネント間の残差データのビット深度の差分(ビット深度差)を求め、式(11)乃至式(14)のように、そのビット深度差の分だけビットシフトを行うようにしてもよい。その際、ビットシフトは、式(12)や式(14)のように、ビット深度差の絶対値の分だけ行われるようにしてもよい。その場合、例えば、式(11)や式(13)の条件を満たすか否かに応じて、式(12)や式(14)のようにシフト方向が決定されるようにしてもよい。
つまり、これらの場合、輝度成分(Y)の残差データ(rL(x,y))のビット深度(BitDepthY)が、色差成分(CbまたはCr)の残差データ(rc(x,y))のビット深度(BitDepthC)に揃えられて復元が行われる。より具体的には、復元を行う2つのコンポーネント間のビット深度の差が求められ、2つのコンポーネントの内の一方のコンポーネントの復元済みの残差データに対してビット深度の差に応じたビットシフトが行われ、ビットシフトされた残差データに所定の重み係数が乗算され、その乗算結果に対して所定のビット数分のビットシフトが行われ、ビットシフトされた乗算結果と予測残差データとを加算することにより、他方のコンポーネントの残差データの復元が行われる。以上のように復元を行うようにしてもよい。
なお、Δbitdepthが0の場合、輝度成分(Y)の残差データ(rL(x,y))のビットシフト量が0であるので、残差データ(r'c(x,y))は、式(9)のように算出されるとも言える。
以上のように算出することにより、残差データのビット深度がコンポーネント間で異なる場合であっても、残差データ(r'c(x,y))を正しく復元することができる。したがって、符号化効率の低減を抑制することができる。
<画像復号装置>
図10は、本技術を適用した画像処理装置の一態様である、図3の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
図10に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
図10に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、ループフィルタ206、および画面並べ替えバッファ207を有する。また、画像復号装置200は、フレームメモリ209、イントラ予測部210、インター予測部211、および予測画像選択部212を有する。さらに、画像復号装置200は、ヘッダ取得部221および残差復元部222を有する。
蓄積バッファ201は、符号化側(例えば画像符号化装置100)から伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ201は、その伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。符号化データには、予測モード情報などの復号に必要な情報が付加されている。可逆復号部202は、蓄積バッファ201より供給された、可逆符号化部106により符号化された情報を、その符号化方式に対応する復号方式で復号する。可逆復号部202は、復号して得られた量子化された係数データを、逆量子化部203に供給する。
また、可逆復号部202は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部210およびインター予測部211の内、選択されたと判定したモードの方に供給する。つまり、例えば画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報がイントラ予測部210に供給される。また、例えば画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報がインター予測部211に供給される。
さらに、可逆復号部202は、例えば、量子化行列や量子化パラメータ等の、逆量子化に必要な情報を逆量子化部203に供給する。
また、可逆復号部202は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ等のヘッダ情報を、ヘッダ取得部221に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、量子化部105の量子化方式に対応する方式で逆量子化する。なお、この逆量子化部203は、逆量子化部108と同様の処理部である。つまり、逆量子化部203の説明は、逆量子化部108にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆量子化部203は、得られた係数データを逆直交変換部204に供給する。
逆直交変換部204は、逆量子化部203から供給される直交変換係数を、必要に応じて、直交変換部104の直交変換方式に対応する方式で逆直交変換する。なお、この逆直交変換部204は、逆直交変換部109と同様の処理部である。つまり、逆直交変換部204の説明は、逆直交変換部109にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の状態に対応する残差データや予測残差データを得る。逆直交変換されて得られた残差データおよび予測残差データは、残差復元部222に供給される。
演算部205は、残差復元部222から復元された各コンポーネントの残差データを取得する。また、演算部205は、予測画像選択部212を介して、イントラ予測部210若しくはインター予測部211から予測画像を取得する。演算部205は、差分画像と予測画像とを加算し、演算部103により予測画像が減算される前の画像に対応する再構成画像を得る。演算部205は、その再構成画像をループフィルタ206およびイントラ予測部210に供給する。
ループフィルタ206は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ206は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ206は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ206が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ206が、画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ206は、フィルタ処理結果である復号画像を画面並べ替えバッファ207およびフレームメモリ209に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。画面並べ替えバッファ207は、フレームの順番を並べ替えた復号画像データを画像復号装置200の外部に出力する。
フレームメモリ209は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、インター予測部211等の外部の要求に基づいて、記憶している復号画像を参照画像として、インター予測部211に供給する。
イントラ予測部210には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部210は、イントラ予測部113において用いられたイントラ予測モードで、フレームメモリ209から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部210は、生成した予測画像を予測画像選択部212に供給する。
インター予測部211は、ヘッダ情報を復号して得られた情報(最適予測モード情報、参照画像情報等)を可逆復号部202から取得する。
インター予測部211は、可逆復号部202から取得された最適予測モード情報が示すインター予測モードで、フレームメモリ209から取得した参照画像を用いてインター予測を行い、予測画像を生成する。
予測画像選択部212は、イントラ予測部210からの予測画像またはインター予測部211からの予測画像を、演算部205に供給する。そして、演算部205においては、動きベクトルが用いられて生成された予測画像と残差復元部222からの復号残差データ(差分画像情報)とが加算されて元の画像が復号される。
ヘッダ取得部221は、例えば、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、SEI、スライスヘッダ等の、符号化側から伝送されたヘッダ情報を可逆復号部202を介して取得する。ヘッダ取得部221は、取得したヘッダ情報の中から必要な情報を残差復元部222に供給する。詳細については後述する。
残差復元部222は、逆直交変換部204から供給される輝度成分の残差データと色差成分の予測残差データとを用いて、色差成分の残差データを復元する(残差復元とも称する)。その際、残差復元部222は、残差データのビット深度をコンポーネント間で揃えて復元を行う。なお、この残差復元部222は、残差復元部123と同様の処理部である。つまり、残差復元部222の説明は、残差復元部123にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
<ヘッダ取得部および残差復元部>
図11は、図10のヘッダ取得部221および残差復元部222の主な構成例を示すブロック図である。図11に示されるようにヘッダ取得部221は、SPS取得部231、PPS取得部232、および重み係数取得部233を有する。
SPS取得部231は、符号化側から供給されたシーケンスパラメータセット(SPS)に含まれる、輝度成分のビット深度を示す情報(例えばbit_depth_luma_minus8)若しくは輝度成分のビット深度を示す情報を含む情報と、色差成分(Cb/Cr)のビット深度を示す情報(例えばbit_depth_chroma_minus8)若しくは色差成分のビット深度を示す情報を含む情報とを取得し、残差復元部222(後述するビット深度差算出部251)に供給する。
PPS取得部232は、符号化側から供給されたピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を残差復元部222(後述するビットシフト制御部252)に供給する。
重み係数取得部233は、符号化側から供給された重み係数α、若しくはその重み係数αを含む情報を残差復元部222(後述する重み係数乗算部264)に供給する。
残差復元部222は、逆直交変換部204から供給される復元された輝度成分の残差データ(r'Y(x,y))を演算部205に供給する。また、残差復元部222は、制御部241および復元部242を有する。制御部241は、残差復元に関する演算の制御に関する処理を行う。復元部242は、制御部241に制御されて、その残差復元に関する演算を行う。例えば、復元部242は、制御部241の制御に基づいて、逆直交変換部204から取得した、復元された輝度成分の残差データ(r'Y(x,y))を用いて、逆直交変換部204から取得した、復元された色差成分の予測残差データ(Δr'Cr(x,y)とΔr'Cb(x,y))から、色差成分の残差データ(r'Cr(x,y)とr'Cb(x,y))を復元する。復元部242は、復元された色差成分の残差データ(r'Cr(x,y)とr'Cb(x,y))を演算部205に供給する。また、残差復元部222は、制御部241に制御されて、残差復元を行わずに、逆直交変換部204から取得した、復元された色差成分の残差データ(r'Cr(x,y)とr'Cb(x,y))を、演算部205に供給する。
制御部241は、ビット深度差算出部251およびビットシフト制御部252を有する。
ビット深度差算出部251は、残差予測に用いる各コンポーネントの残差データのビット深度の差を算出する。例えば、ビット深度差算出部251は、SPS取得部231から、輝度成分のビット深度を示す情報(例えばbit_depth_luma_minus8)若しくは輝度成分のビット深度を示す情報を含む情報と、色差成分(Cb/Cr)のビット深度を示す情報(例えばbit_depth_chroma_minus8)若しくは色差成分のビット深度を示す情報を含む情報とを取得し、それらの情報を用いて、式(4)に示される演算を行い、コンポーネント間のビット深度差(delta_bitdepth)を算出する。ビット深度差算出部251は、算出したビット深度差(delta_bitdepth)をビットシフト制御部252に供給する。
また、ビット深度差算出部251は、ビットシフト制御部252の制御に基づいて、算出したビット深度差(delta_bitdepth)を復元部242に供給する。例えば、ビット深度のスケーリングの際に残差データの右シフトを行う場合、ビット深度差算出部251は、算出したビット深度差(delta_bitdepth)を右シフト部262に供給する。また、ビット深度のスケーリングの際に残差データの左シフトを行う場合、ビット深度差算出部251は、算出したビット深度差(−delta_bitdepth)を左シフト部263に供給する。
ビットシフト制御部252は、ビット深度差算出部251から供給されるコンポーネント間のビット深度差(delta_bitdepth)の値に基づいて、復元部242による演算を制御する。例えば、ビットシフト制御部252は、ビット深度差(delta_bitdepth)が0の場合、残差データのビットシフト(ビット深度のスケーリング)を行わないように、復元部242(の選択部261)を制御する。また、その際、ビットシフト制御部252は、ビット深度差算出部251も制御し、ビット深度差(delta_bitdepth)を復元部242に供給させないようにする。
また、例えば、ビットシフト制御部252は、ビット深度差(delta_bitdepth)が正の値(>0)の場合、残差データを右シフトする(ビット深度のスケーリングを行う)ように、復元部242(の選択部261)を制御する。また、その際、ビットシフト制御部252は、ビット深度差算出部251も制御し、ビット深度差(delta_bitdepth)を復元部242(右シフト部262)に供給させる。
さらに、例えば、ビットシフト制御部252は、ビット深度差(delta_bitdepth)が負の値(<0)の場合、残差データを左シフトする(ビット深度のスケーリングを行う)ように、復元部242(の選択部261)を制御する。また、その際、ビットシフト制御部252は、ビット深度差算出部251も制御し、ビット深度差(−delta_bitdepth)を復元部242(左シフト部263)に供給させる。
また、ビットシフト制御部252は、例えば、PPS取得部232から、符号化側から供給された、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を取得し、その値に基づいて、残差復元を行うか否かを制御する。例えば、残差予測を行うか否かを制御する情報により残差予測を行わないことが示されている(すなわち、残差復元を行わないことも示されている)場合、ビットシフト制御部252は、復元部242を制御し、復元に関する演算を行わせないようにする。また、その場合、ビットシフト制御部252は、ビット深度差算出部251を制御し、ビット深度差(delta_bitdepthまたは-delta_bitdepth)の供給を停止させる。さらに、ビットシフト制御部252は、その場合、重み係数取得部233を制御し、重み係数αを取得させないようにする。
逆に、例えば、残差予測を行うか否かを制御する情報により残差予測を(すなわち、残差復元も)行うことが示されている場合、ビットシフト制御部252は、復元部242を制御し、復元に関する演算を行わせるようにする。また、その場合、ビットシフト制御部252は、ビット深度差算出部251を制御し、ビット深度差(delta_bitdepthまたは-delta_bitdepth)を復元部242に供給させる。さらに、その場合、ビットシフト制御部252は、重み係数取得部233を制御し、重み係数αを取得させ、復元部242(重み係数乗算部264)に供給させる。
復元部242は、予測部142による演算と基本的に同様の演算を行うために、予測部142と基本的に同様の構成を有する。すなわち、復元部242は、選択部261、右シフト部262、左シフト部263、重み係数乗算部264、右シフト部265、演算部266、および演算部267を有する。
選択部261は、ビットシフト制御部252の制御に従って、選択部161と同様に、逆直交変換部204から供給される、復元された輝度成分の残差データ(r'Y(x,y))の供給先を選択する。例えば、ビット深度のスケーリング(右シフト)が行われる場合、選択部261は、復元された輝度成分の残差データ(r'Y(x,y))を右シフト部262に供給する。この場合、式(6)に対応する演算が行われる。また、例えば、ビット深度のスケーリング(左シフト)が行われる場合、選択部261は、復元された輝度成分の残差データ(r'Y(x,y))を左シフト部263に供給する。この場合、式(8)に対応する演算が行われる。さらに、例えば、ビット深度のスケーリングが行われない場合、選択部261は、復元された輝度成分の残差データ(r'Y(x,y))を重み係数乗算部264に供給する。この場合、式(3)に対応する演算が行われる。
右シフト部262は、選択部261から取得した、復元された輝度成分の残差データ(r'Y(x,y))を、ビット深度差算出部251から取得したビット深度差(delta_bitdepth)分、右シフトすることにより、ビット深度のスケーリングを行う。右シフト部262は、輝度成分の残差データの右シフト結果(r'Y(x,y)>>delta_bitdepth)を、重み係数乗算部264に供給する。
左シフト部263は、選択部261から取得した、復元された輝度成分の残差データ(r'Y(x,y))を、ビット深度差算出部251から取得したビット深度差(-delta_bitdepth)分、左シフトすることにより、ビット深度のスケーリングを行う。左シフト部263は、輝度成分の残差データの左シフト結果(r'Y(x,y)<<-delta_bitdepth)を、重み係数乗算部264に供給する。
重み係数乗算部264は、選択部261乃至左シフト部263のいずれかから、復元された輝度成分の残差データを取得する。例えば、重み係数乗算部264は、ビットシフトされていない、復元された輝度成分の残差データ(r'Y(x,y))を選択部261から取得する。また、例えば、重み係数乗算部264は、右シフトされた、復元された輝度成分の残差データ(r'Y(x,y)>>delta_bitdepth)を右シフト部262から取得する。さらに、例えば、重み係数乗算部264は、左シフトされた、復元された輝度成分の残差データ(r'Y(x,y)<<-delta_bitdepth)を左シフト部263から取得する。
また、重み係数乗算部264は、重み係数取得部233を介して重み係数αを取得する。重み係数乗算部264は、取得した復元された輝度成分の残差データにその重み係数αを乗算し、その乗算結果(α×(r'Y(x,y))、α×(r'Y(x,y)>>delta_bitdepth)、または、α×(r'Y(x,y)<<-delta_bitdepth))を右シフト部265に供給する。
右シフト部265は、重み係数乗算部264から供給された、復元された輝度成分の残差データ(α×(r'Y(x,y))、α×(r'Y(x,y)>>delta_bitdepth)、または、α×(r'Y(x,y)<<-delta_bitdepth))を、所定のビット数分、右シフトする。このビットシフト量は符号化側と同一である限り任意であるが、例えば、式(3)、式(6)、式(8)の場合、右シフト部265は、残差データを3ビット右シフトする。右シフト部265は、その右シフト結果(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を、演算部266若しくは演算部267に供給する。
演算部266は、逆直交変換部204から供給される色差成分(Cr)の復元された予測残差データ(Δr'Cr(x,y))に、右シフト部265から供給される、復元された輝度成分の残差データ(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を加算することにより、色差成分(Cr)の残差データを復元し(r'Cr(x,y))、それを演算部205に供給する。また、このような残差復元を行わない場合、演算部266は、逆直交変換部204から供給される色差成分(Cr)の復元された残差データ(r'Cr(x,y))を演算部205に供給する。
さらに、演算部267は、逆直交変換部204から供給される色差成分(Cb)の復元された予測残差データ(Δr'Cb(x,y))に、右シフト部265から供給される、復元された輝度成分の残差データ(α×(r'Y(x,y))>>3、α×(r'Y(x,y)>>delta_bitdepth)>>3、または、α×(r'Y(x,y)<<-delta_bitdepth)>>3)を加算することにより、色差成分(Cb)の残差データを復元し(r'Cb(x,y))、それを演算部205に供給する。また、このような残差復元を行わない場合、演算部267は、逆直交変換部204から供給される色差成分(Cb)の復元された残差データ(r'Cb(x,y))を演算部205に供給する。
残差復元部222は、以上のように、残差復元において、復元された輝度成分の残差データのビット深度のスケーリングを行って復元を行う。したがって、残差復元部222は、残差データのビット深度がコンポーネント間で異なる場合であっても、残差データを正しく復元することができる。したがって、画像復号装置200は、符号化効率の低減を抑制することができる。
<復号処理の流れ>
次に、画像復号装置200により実行される各処理の流れの例を説明する。最初に、復号処理の流れの例を、図12のフローチャートを参照して説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきたビットストリームを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給されるビットストリームを復号する。すなわち、可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。このとき、ヘッダ情報などのビットストリームに含められた画像情報以外の各種情報も復号される。
ステップS203において、逆量子化部203は、ステップS202の処理により得られた、量子化された係数を逆量子化する。
ステップS204において、逆直交変換部204は、ステップS203の処理により得られた直交変換係数を逆直交変換する。この処理により、輝度成分の残差データと色差成分の予測残差データが復元される。
ステップS205において、残差復元部222は、復元された輝度成分の残差データと、復元された色差成分の予測残差データを用いて、色差成分の残差データを復元する残差復元処理を行う。この処理の詳細については後述する。
ステップS206において、イントラ予測部210若しくはインター予測部211は、予測処理を行い、予測画像を生成する。つまり、可逆復号部202において判定された、符号化の際に適用された予測モードで予測処理が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部210が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、インター予測部211が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ステップS207において、演算部205は、ステップS204およびステップS205の処理により復元された残差データに、ステップS206において生成された予測画像を加算する。これにより再構成画像が得られる。
ステップS208において、ループフィルタ206は、ステップS207の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS209において、画面並べ替えバッファ207は、ステップS208の処理により得られた復号画像のフレームの並べ替えを行う。すなわち、符号化の際に並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。フレームが並べ替えられた復号画像は、画像復号装置200の外部に出力される。
ステップS210において、フレームメモリ209は、ステップS208の処理により得られた復号画像を記憶する。
ステップS210の処理が終了すると、復号処理が終了する。
<残差復元処理の流れ>
次に、このような復号処理のステップS205において実行される残差復元処理の流れの例を、図13のフローチャートを参照して説明する。
残差復元処理が開始されると、ステップS221において、ビット深度差算出部251は、符号化側から伝送されたシーケンスパラメータセットに含まれる、輝度成分のビット深度を示す情報(例えばbit_depth_luma_minus8)と、色差成分(Cb/Cr)のビット深度を示す情報(例えばbit_depth_chroma_minus8)とを、SPS取得部231を介して取得し、それらを用いて、残差予測が行われるコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部151は、式(10)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS222において、ビットシフト制御部252は、ステップS221において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS223に進む。この場合、ビットシフトは行われず、残差復元は、式(9)のように行われる。
ステップS223において、ビットシフト制御部252は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて、符号化側において残差予測が行われたか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測が行われたと判定された場合、処理はステップS224に進む。
ステップS224において、重み係数取得部233は、TU毎に重み係数αを取得する。
ステップS225において、復元部242は、ビット深度のスケーリングを行わずに、色差成分の残差データの復元(残差復元)を行う。この処理の詳細は後述する。
ステップS225における残差復元が終了すると、残差復元処理が終了し、処理は図12に戻る。
また、例えば、ステップS223において、luma_chroma_prediction_enabled_flagの値が0であり、符号化側において残差予測が行われていないと判定された場合、ステップS224およびステップS225の処理が省略され、残差復元処理が終了し、処理は図12に戻る。
また、ステップS222において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS226に進む。
ステップS226において、ビットシフト制御部252は、ステップS221において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS227に進む。この場合、残差復元は、式(12)のように行われる(右シフトによるスケーリングが行われる)。
ステップS227において、ビットシフト制御部252は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて、符号化側において残差予測が行われたか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測が行われたと判定された場合、処理はステップS228に進む。
ステップS228において、重み係数取得部233は、TU毎に重み係数αを取得する。
ステップS229において、復元部242は、右シフトによりビット深度のスケーリングを行って、色差成分の残差データの復元(残差復元)を行う。この処理の詳細は後述する。
ステップS229における残差復元が終了すると、残差復元処理が終了し、処理は図12に戻る。
また、例えば、ステップS227において、luma_chroma_prediction_enabled_flagの値が0であり、符号化側において残差予測が行われていないと判定された場合、ステップS228およびステップS229の処理が省略され、残差復元処理が終了し、処理は図12に戻る。
また、ステップS226において、ビット深度差(delta_bitdepth)が正でない(負である)と判定された場合、処理はステップS230に進む。この場合、残差予測は、式(14)のように行われる(左シフトによるスケーリングが行われる)。
ステップS230において、ビットシフト制御部252は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)等に基づいて、符号化側において残差予測が行われたか否かを判定する。例えば、luma_chroma_prediction_enabled_flagの値が1であり、残差予測が行われたと判定された場合、処理はステップS231に進む。
ステップS231において、重み係数取得部233は、TU毎に重み係数αを取得する。
ステップS232において、復元部242は、左シフトによりビット深度のスケーリングを行って、色差信号の残差データの復元(残差復元)を行う。この処理の詳細は後述する。
ステップS232における残差復元が終了すると、残差復元処理が終了し、処理は図12に戻る。
また、例えば、ステップS230において、luma_chroma_prediction_enabled_flagの値が0であり、符号化側において残差予測が行われていないと判定された場合、ステップS231およびステップS232の処理が省略され、残差復元処理が終了し、処理は図12に戻る。
<残差データ復元処理の流れ>
次に、このような残差復元処理のステップS225において実行される残差データ復元処理の流れの例を、図14のフローチャートを参照して説明する。
残差データ復元処理が開始されると、ステップS241において、復元部242の重み係数乗算部264は、復元された輝度成分の残差データ(r'Y(x,y))に、図13のステップS224の処理により取得された重み係数αを乗算する(α×r'Y(x,y))。
ステップS242において、右シフト部265は、ステップS241において算出された乗算結果(α×r'Y(x,y))を3ビット右シフトする((α×r'Y(x,y))>>3)。
ステップS243において、演算部266は、復元された色差成分Crの予測残差データ(Δr'Cr(x,y))に、ステップS242において算出された右シフト結果((α×r'Y(x,y))>>3)を加算することにより(Δr'Cr(x,y) + (α×r'Y(x,y))>>3)、色差成分Crの残差データを復元する(r'Cr(x,y))。また、演算部267は、色差成分Cbの予測残差データ(Δr'Cb(x,y))に、ステップS242において算出された右シフト結果((α×r'Y(x,y))>>3)を加算することにより(Δr'Cb(x,y) + (α×r'Y(x,y))>>3)、色差成分Cbの残差データを復元する(r'Cb(x,y))。
以上のように色差成分の残差データが復元されると(r'Cr(x,y)およびr'Cb(x,y))、残差データ復元処理が終了し、処理は図13に戻る。
<残差データ復元処理の流れ>
次に、残差復元処理のステップS229において実行される残差データ復元処理の流れの例を、図15のフローチャートを参照して説明する。
残差データ復元処理が開始されると、ステップS251において、復元部242の右シフト部262は、復元された輝度成分の残差データ(r'Y(x,y))を、図13のステップS221の処理により算出された残差データのビット深度差(delta_bitdepth)の分、右シフトする(r'Y(x,y)>>delta_bitdepth)。
ステップS252において、重み係数乗算部264は、ステップS251において算出された右シフト結果(r'Y(x,y)>>delta_bitdepth)に、図13のステップS228の処理により取得された重み係数αを乗算する(α×(r'Y(x,y)>>delta_bitdepth))。
ステップS253において、右シフト部265は、ステップS252において算出された乗算結果(α×(r'Y(x,y)>>delta_bitdepth))を3ビット右シフトする(α×(r'Y(x,y)>>delta_bitdepth)>>3)。
ステップS254において、演算部266は、復元された色差成分Crの予測残差データ(Δr'Cr(x,y))に、ステップS253において算出された右シフト結果(α×(r'Y(x,y)>>delta_bitdepth)>>3)を加算することにより(Δr'Cr(x,y) + α×(r'Y(x,y)>>delta_bitdepth)>>3)、色差成分Crの残差データを復元する(r'Cr(x,y))。また、演算部267は、復元された色差成分Cbの予測残差データ(Δr'Cb(x,y))に、ステップS253において算出された右シフト結果(α×(r'Y(x,y)>>delta_bitdepth)>>3)を加算することにより(Δr'Cb(x,y) + α×(r'Y(x,y)>>delta_bitdepth)>>3)、色差成分Cbの残差データを復元する(r'Cb(x,y))。
以上のように色差成分の残差データが復元されると(r'Cr(x,y)およびr'Cb(x,y))、残差データ復元処理が終了し、処理は図13に戻る。
<残差データ復元処理の流れ>
次に、残差復元処理のステップS232において実行される残差データ復元処理の流れの例を、図16のフローチャートを参照して説明する。
残差データ復元処理が開始されると、ステップS261において、復元部242の左シフト部263は、復元された輝度成分の残差データ(r'Y(x,y))を、図13のステップS221の処理により算出された残差データのビット深度差(-delta_bitdepth)の分、左シフトする(r'Y(x,y)<<-delta_bitdepth)。
ステップS262において、重み係数乗算部264は、ステップS261において算出された左シフト結果(r'Y(x,y)<<-delta_bitdepth)に、図13のステップS231の処理により取得された重み係数αを乗算する(α×(r'Y(x,y)<<-delta_bitdepth))。
ステップS263において、右シフト部265は、ステップS262において算出された乗算結果(α×(r'Y(x,y)<<-delta_bitdepth))を3ビット右シフトする(α×(r'Y(x,y)<<-delta_bitdepth)>>3)。
ステップS264において、演算部266は、復元された色差成分Crの予測残差データ(Δr'Cr(x,y))に、ステップS263において算出された右シフト結果(α×(r'Y(x,y)<<-delta_bitdepth)>>3)を加算することにより(Δr'Cr(x,y) + α×(r'Y(x,y)<<-delta_bitdepth)>>3)、色差成分Crの残差データを復元する(r'Cr(x,y))。また、演算部267は、復元された色差成分Cbの予測残差データ(Δr'Cb(x,y))に、ステップS263において算出された右シフト結果(α×(r'Y(x,y)<<-delta_bitdepth)>>3)を加算することにより(Δr'Cb(x,y) + α×(r'Y(x,y)<<-delta_bitdepth)>>3)、色差成分Cbの残差データを復元する(r'Cb(x,y))。
以上のように色差成分の残差データが復元されると(r'Cr(x,y)およびr'Cb(x,y))、残差データ復元処理が終了し、処理は図13に戻る。
以上のように各処理を実行することにより、残差復元部222は、残差データのビット深度がコンポーネント間で異なる場合であっても、残差データを正しく復元することができる。したがって、画像復号装置200は、符号化効率の低減を抑制することができる。
以上においては、残差データのビット深度を揃える際に、輝度成分のビット深度をビットシフトして色差成分に揃えるように説明したが、このようなビット深度のスケーリングにおいて、どのコンポーネントを基準とするかは任意である。例えば、色差成分のビット深度をスケーリングするようにしてもよい。ただし、一般的に、情報量の多い(ビット深度が深い)コンポーネントをスケーリングする方が、予測精度を向上させ、符号化効率を向上させることができるので望ましい。上述したようなYUVの色空間の場合、一般的に輝度成分の方が重要であり情報量が大きい。したがって、輝度成分のビット深度をスケーリングする方が望ましい。
また、以上においては、YUV色空間の画像を符号化・復号する場合について説明したが、画像の色空間は任意であり、また、どのコンポーネント間で予測を行うようにしてもよい。例えば、画像の色空間がRGBの場合であっても、上述したYUVの場合と同様に、ビット深度のスケーリングを用いて残差予測・残差復号を行うことができる。
<2.第2の実施の形態>
<残差予測の禁止>
なお、残差予測・残差復号の制御方法は、上述した例に限らない。例えば、残差データのビット深度がコンポーネント間で異なる場合、残差予測を禁止する(予測残差データを算出しない)ようにしてもよい。より具体的には、残差データのビット深度がコンポーネント間で異なる場合、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を用いて、残差予測が行われないように制御するようにしてもよい。例えば、その場合、luma_chroma_prediction_enabled_flagの値を0にするようにしてもよい。このようにすることにより、その情報に対応するピクチャにおいては、残差予測が禁止される(当然、残差復元も行われないようになる)。したがって、不正確な残差予測・残差復元を行わないようにすることができる。つまり、不正確な残差予測・残差復元による符号化効率の低減を抑制することができる。また、ビット深度のスケーリング等の処理を省略することができるので、処理の負荷の増大を抑制することができる。
<セマンティクス>
以上のような制御を行うためには、セマンティクスを図17の例のような記述にすればよい。図17に示されるセマンティクスの下線を付した部分が、上述した残差予測・残差復号の実行制御に相当する記述である。
<ヘッダ処理部および残差予測部>
この場合も、画像符号化装置100は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図18は、この場合のヘッダ処理部121および残差予測部122の主な構成例を示すブロック図である。図18に示されるように、この場合、残差予測部122は、第1の実施の形態の場合と比較して、制御部141の代わりに制御部311を有し、予測部142の代わりに予測部312を有する。
制御部311は、基本的に制御部141と同様の処理を行う。制御部141の構成と比較して、制御部311は、ビット深度差算出部151の代わりにビット深度差算出部321を有し、ビットシフト制御部152の代わりにビットシフト制御部322を有し、さらに、制御部141の場合と同様に、重み係数設定部153を有する。
ビット深度差算出部321は、ビット深度差算出部151の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部321は、ビット深度差算出部151の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を予測部312に供給しない。
ビットシフト制御部322は、ビットシフト制御部152の場合と同様に、予測部312による演算を制御する。ただし、ビットシフト制御部322は、残差データのビット深度がコンポーネント間で異なる場合、残差予測を禁止する(予測残差データを算出しない)。
つまりこの実施の形態の例の場合、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトは行われないので、予測部312は、予測部142の構成と比較して、右シフト部162および左シフト部163が省略される。
<残差予測処理の流れ>
この実施の形態の場合、符号化処理は、第1の実施の形態の場合と同様に実行される。図19のフローチャートを参照して、この実施の形態の場合の、残差予測処理の流れの例を説明する。
図19の例の場合も、残差予測処理が開始されると、ステップS301において、ビット深度差算出部321は、残差予測を行うコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部321は、式(4)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS302において、ビットシフト制御部322は、ステップS301において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS303に進む。この場合、ビットシフトは行われず、残差予測は、式(3)のように行われる。
つまり、ステップS303乃至ステップS305の各処理は、第1の実施の形態の残差予測処理のステップS123乃至ステップS125の各処理と同様に実行される。そして、ステップS305の処理が終了するか、ステップS303において、残差予測を行わないと判定された場合、残差予測処理が終了し、処理は、図5に戻る。
また、ステップS302において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS306進む。
ステップS306において、ビットシフト制御部322は、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)の値を、残差予測(残差復元)が行われない(禁止する)ことを示す値に設定する。例えば、ビットシフト制御部322が、luma_chroma_prediction_enabled_flagの値を0にするようにしてもよい。
ステップS306の処理が終了すると、残差予測処理が終了し、処理は、図5に戻る。
このようにすることにより、残差データのビット深度がコンポーネント間で異なり、残差予測を正しく行うことができない場合に、その残差予測を行わないようにすることができる。したがって、常に、予測残差データを正しく算出することができるようになり、画像符号化装置100は、不正確な残差予測による符号化効率の低減を抑制することができる。また、ビット深度のスケーリングが不要になるので、処理の負荷の増大を抑制することができる。
<ヘッダ取得部および残差復元部>
この場合も、画像復号装置200は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図20は、この場合のヘッダ取得部221および残差復元部222の主な構成例を示すブロック図である。図20に示されるように、この場合、残差復元部222は、第1の実施の形態の場合と比較して、制御部241の代わりに制御部351を有し、復元部242の代わりに復元部352を有する。
制御部351は、基本的に制御部241と同様の処理を行う。制御部241の構成と比較して、制御部351は、ビット深度差算出部251の代わりにビット深度差算出部361を有し、ビットシフト制御部252の代わりにビットシフト制御部362を有する。
ビット深度差算出部361は、ビット深度差算出部251の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部361は、ビット深度差算出部251の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を復元部352に供給しない。
ビットシフト制御部362は、ビットシフト制御部252の場合と同様に、復元部352による演算を制御する。ただし、ビットシフト制御部362は、残差データのビット深度がコンポーネント間で異なる場合、残差復元を禁止とする(色差成分の残差データを復元しない)。
つまりこの実施の形態の例の場合、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトは行われないので、復元部352は、復元部242の構成と比較して、右シフト部262および左シフト部263が省略される。
<残差復元処理の流れ>
この実施の形態の場合、復号処理は、第1の実施の形態の場合と同様に実行される。図21のフローチャートを参照して、この実施の形態の場合の、残差復元処理の流れの例を説明する。
図21の例の場合も、残差復元処理が開始されると、ステップS321において、ビット深度差算出部361は、残差予測が行われたコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部361は、式(10)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS322において、ビットシフト制御部362は、ステップS321において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS323に進む。この場合、ビットシフトは行われず、残差復元は、式(9)のように行われる。
つまり、ステップS323乃至ステップS325の各処理は、第1の実施の形態の残差予測処理のステップS223乃至ステップS225の各処理と同様に実行される。そして、ステップS325の処理が終了するか、ステップS323において残差予測が行われていないと判定された場合、残差復元処理が終了し、処理は、図12に戻る。
また、ステップS322において、ステップS321において算出されたビット深度差(delta_bitdepth)が0でないと判定された場合も、ビット深度のスケーリングは行われず、残差復元が省略される。したがって、この場合も残差復元処理が終了し、処理は、図12に戻る。
このようにすることにより、残差データのビット深度がコンポーネント間で異なり、残差予測を正しく行うことができない場合に、その残差予測を行わないようにし、それに応じて残差復元も行わないようにすることができる。したがって、常に、残差データを正しく復元することができるようになり、画像復号装置200は、不正確な残差復元による符号化効率の低減を抑制することができる。また、ビット深度のスケーリングが不要になるので、処理の負荷の増大を抑制することができる。
<3.第3の実施の形態>
<ビット深度のスケーリングと残差予測の禁止の併用>
なお、残差予測・残差復号の制御方法は、上述した例に限らない。例えば、残差データのビット深度がコンポーネント間で異なり、かつ、算出されたコンポーネント間のビット深度の差が正の場合のみ、ビット深度のスケーリングを行い、算出されたコンポーネント間のビット深度の差が負の場合は、残差予測を禁止する(予測残差データを算出しない)ようにしてもよい。
より具体的には、例えば、輝度成分の残差データのビット深度が色差成分の残差データのビット深度より大きい場合、右シフトによるビット深度のスケーリングにより、残差データのビット深度をコンポーネント間で揃えて残差予測を行い、輝度成分の残差データのビット深度が色差成分の残差データのビット深度より小さい場合、残差予測を禁止する(予測残差データを算出しない)ようにしてもよい。
上述したように、画像の性質上、輝度成分の方が色差成分より重要であり、輝度成分の残差データのビット深度が色差成分の残差データのビット深度以上となることが一般的である。逆に、色差成分の方が輝度成分よりもビット深度が大きいことは稀である。つまり、敢えて画像の性質に逆らってまで、色差成分の方がビット深度が大きく設定されている場合、その画像には、画像の性質を超えた製作者の何らかの意図が含まれている可能性が高く、そのために、一般的な画像向けの処理である残差予測の予測精度が低減しやすくなる可能性も考えられる。つまり、符号化効率が低減しやすくなる可能性がある。
そこで、予測精度が高いことが期待される、輝度成分の方が色差成分よりもビット深度が大きい場合は、残差予測(残差復元)を実行可能とし、かつ、正しく予測(復元)を行うことができるように、右シフトによるビット深度のスケーリングにより、残差データのビット深度をコンポーネント間で揃えて残差予測を行うようにしてもよい。そして、予測精度が低減する可能性のある、色差成分の方が輝度成分よりもビット深度が大きい場合は、残差予測(残差復元)を、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を用いて、残差予測が行われないように制御するようにしてもよい。
このようにすることにより、残差予測を行うことによる十分な効果が得られる(十分に符号化効率を向上させることができる)場合のみ、残差予測・残差復号を実行するようにすることができる。したがって、不要な残差予測・残差復号を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<セマンティクス>
以上のような制御を行うためには、セマンティクスを図22の例のような記述にすればよい。図22に示されるセマンティクスの下線を付した部分が、上述した残差予測・残差復号の実行制御に相当する記述である。
<ヘッダ処理部および残差予測部>
この場合も、画像符号化装置100は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図23は、この場合のヘッダ処理部121および残差予測部122の主な構成例を示すブロック図である。図23に示されるように、この場合、残差予測部122は、第1の実施の形態の場合と比較して、制御部141の代わりに制御部411を有し、予測部142の代わりに予測部412を有する。
制御部411は、基本的に制御部141と同様の処理を行う。制御部141の構成と比較して、制御部411は、ビット深度差算出部151の代わりにビット深度差算出部421を有し、ビットシフト制御部152の代わりにビットシフト制御部422を有し、さらに、制御部141の場合と同様に、重み係数設定部153を有する。
ビット深度差算出部421は、ビット深度差算出部151の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部421は、ビット深度差算出部151の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を左シフト部163に供給しない(予測部412も左シフト部163を有していない)。
ビットシフト制御部422は、ビットシフト制御部152の場合と同様に、予測部412による演算を制御する。ただし、ビットシフト制御部422は、ビット深度差算出部421により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が0の場合、予測部412にビット深度のスケーリングを行わずに予測残差データを算出させ、ビット深度差算出部421により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が正の場合、予測部412にビット深度のスケーリングを行わせて予測残差データを算出させる。これに対して、ビット深度差算出部421により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負の場合、ビットシフト制御部422は、予測部412を制御し、残差予測を禁止する(予測残差データを算出させないようにする)。
つまりこの実施の形態の例の場合、ビット深度差算出部421により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負のときは、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトが行われないので、予測部412は、予測部142の構成と比較して、左シフト部163が省略される。
<残差予測処理の流れ>
この実施の形態の場合、符号化処理は、第1の実施の形態の場合と同様に実行される。図24のフローチャートを参照して、この実施の形態の場合の、残差予測処理の流れの例を説明する。
図24の例の場合も、残差予測処理が開始されると、ステップS401において、ビット深度差算出部421は、残差予測を行うコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部421は、式(4)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS402において、ビットシフト制御部422は、ステップS401において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS403に進む。この場合、ビットシフトは行われず、残差予測は、式(3)のように行われる。
つまり、ステップS403乃至ステップS405の各処理は、第1の実施の形態の残差予測処理のステップS123乃至ステップS125の各処理と同様に実行される。そして、ステップS405の処理が終了するか、ステップS403において、残差予測を行わないと判定された場合、残差予測処理が終了し、処理は、図5に戻る。
また、ステップS402において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS406進む。
ステップS406において、ビットシフト制御部422は、ステップS401において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS407に進む。この場合、残差予測は、式(6)のように行われる(右シフトによるスケーリングが行われる)。
つまり、ステップS407乃至ステップS409の各処理は、第1の実施の形態の残差予測処理のステップS127乃至ステップS129の各処理と同様に実行される。そして、ステップS409の処理が終了するか、ステップS407において、残差予測を行わないと判定された場合、残差予測処理が終了し、処理は、図5に戻る。
また、ステップS406において、ビット深度差(delta_bitdepth)が正でない(負である)と判定された場合、処理は、ステップS410進む。
ステップS410において、ビットシフト制御部422は、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)の値を、残差予測(残差復元)が行われない(禁止する)ことを示す値に設定する。例えば、ビットシフト制御部422が、luma_chroma_prediction_enabled_flagの値を0にするようにしてもよい。
ステップS410の処理が終了すると、残差予測処理が終了し、処理は、図5に戻る。
このようにすることにより、残差データのコンポーネント間のビット深度差が負であり、すなわち輝度成分より色差成分の方がビット深度が大きく、残差予測を行っても十分な効果が得られない(十分に符号化効率を向上させることができない)可能性がある場合、その残差予測を行わないようにすることができる。したがって、画像符号化装置100は、不要な残差予測を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<ヘッダ取得部および残差復元部>
この場合も、画像復号装置200は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図25は、この場合のヘッダ取得部221および残差復元部222の主な構成例を示すブロック図である。図25に示されるように、この場合、残差復元部222は、第1の実施の形態の場合と比較して、制御部241の代わりに制御部451を有し、復元部242の代わりに復元部452を有する。
制御部451は、基本的に制御部241と同様の処理を行う。制御部241の構成と比較して、制御部451は、ビット深度差算出部251の代わりにビット深度差算出部461を有し、ビットシフト制御部252の代わりにビットシフト制御部462を有する。
ビット深度差算出部461は、ビット深度差算出部251の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部461は、ビット深度差算出部251の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を左シフト部263に供給しない(復元部452も左シフト部263を有していない)。
ビットシフト制御部462は、ビットシフト制御部252の場合と同様に、復元部452による演算を制御する。ただし、ビットシフト制御部462は、ビット深度差算出部461により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が0の場合、復元部452にビット深度のスケーリングを行わずに残差データを復元させ、ビット深度差算出部461により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が正の場合、復元部452にビット深度のスケーリングを行わせて残差データを復元させる。これに対して、ビット深度差算出部461により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負の場合、ビットシフト制御部462は、復元部452を制御し、残差復元を省略する(残差データの復元を省略する)。
つまりこの実施の形態の例の場合、ビット深度差算出部461により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負のときは、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトが行われないので、復元部452は、復元部242の構成と比較して、左シフト部263が省略される。
<残差復元処理の流れ>
この実施の形態の場合、復号処理は、第1の実施の形態の場合と同様に実行される。図26のフローチャートを参照して、この実施の形態の場合の、残差復元処理の流れの例を説明する。
図26の例の場合も、残差復元処理が開始されると、ステップS421において、ビット深度差算出部461は、残差予測が行われたコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部461は、式(10)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS422において、ビットシフト制御部462は、ステップS421において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS423に進む。この場合、ビットシフトは行われず、残差復元は、式(9)のように行われる。
つまり、ステップS423乃至ステップS425の各処理は、第1の実施の形態の残差予測処理のステップS223乃至ステップS225の各処理と同様に実行される。そして、ステップS425の処理が終了するか、ステップS423において残差予測が行われていないと判定された場合、残差復元処理が終了し、処理は、図12に戻る。
また、ステップS422において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS426進む。
ステップS426において、ビットシフト制御部462は、ステップS421において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS427に進む。この場合、残差予測は、式(12)のように行われる(右シフトによるスケーリングが行われる)。
つまり、ステップS427乃至ステップS429の各処理は、第1の実施の形態の残差予測処理のステップS227乃至ステップS229の各処理と同様に実行される。そして、ステップS429の処理が終了するか、ステップS427において、残差予測が行われていないと判定された場合、残差復元処理が終了し、処理は、図12に戻る。
また、ステップS426において、ビット深度差(delta_bitdepth)が正でない(負である)と判定された場合も、ビット深度のスケーリングは行われず、残差復元が省略される。したがって、この場合も残差復元処理が終了し、処理は、図12に戻る。
このようにすることにより、残差データのコンポーネント間のビット深度差が負であり、すなわち輝度成分より色差成分の方がビット深度が大きく、残差予測を行っても十分な効果が得られない(十分に符号化効率を向上させることができない)可能性がある場合、その残差予測を行わないようにし、それに応じて残差復元も行わないようにすることができる。したがって、画像復号装置200は、不要な残差復元を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<4.第4の実施の形態>
<画像の色空間による残差予測制御>
なお、残差予測・残差復号の制御方法は、上述した例に限らない。例えば、画像の色空間に応じて残差予測・残差復号を行うか否かを制御するようにしてもよい。例えば、基本的に第3の実施の形態で説明したのと同様に残差予測・残差復号の実行を制御し、さらに、符号化・復号対象の画像の色空間がRGBの場合、残差予測・残差復号を禁止するようにしてもよい。
一般的に、YUVの場合、輝度成分は色差成分よりも情報として重要な場合が多く、情報量が多い(ビット深度が大きい)ケースも考えられる。これに対して、RGBの場合、各コンポーネントの情報としての重要性は互いに同一であり、情報量(ビット深度)も互いに同一とされる場合が多い。G成分がR成分やB成分よりも情報として重要とされる場合も考えられるが、情報量(ビット深度)に差が生じるケースは稀である。
換言するに、画像の色空間がRGBであって、各コンポーネントの情報量(ビット深度)が均一でないようにする場合、その画像には、画像の性質を超えた製作者の何らかの意図が含まれている可能性が高く、そのために、一般的な画像向けの処理である残差予測の予測精度が低減しやすくなる可能性も考えられる。つまり、符号化効率が低減しやすくなる可能性がある。
そこで、画像がYUVのような予測精度が高いことが期待される色空間の場合のみ、残差予測(残差復元)を実行可能とし、画像がRGBのように予測精度が低減し易い色空間の場合は、ピクチャパラメータセット(PPS)に含まれる、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)を用いて、残差予測(残差復元)が行われないように制御するようにしてもよい。
このようにすることにより、残差予測を行うことによる十分な効果が得られる(十分に符号化効率を向上させることができる)色空間の場合のみ、残差予測・残差復号を実行するようにすることができる。したがって、不要な残差予測・残差復号を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<セマンティクス>
以上のような制御を行うためには、セマンティクスを図27の例のような記述にすればよい。図27に示されるセマンティクスの下線を付した部分が、上述した残差予測・残差復号の実行制御に相当する記述である。
<ヘッダ処理部および残差予測部>
この場合も、画像符号化装置100は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図28は、この場合のヘッダ処理部121および残差予測部122の主な構成例を示すブロック図である。図28に示されるように、この場合、ヘッダ処理部121は、第1の実施の形態の場合と比較して、VUI(Video Userbility Information)処理部501をさらに有する。また、残差予測部122は、第1の実施の形態の場合と比較して、制御部141の代わりに制御部511を有し、予測部142の代わりに予測部412を有する。
VUI処理部501は、VUI(Video Userbility Information)の生成に関する処理を行う。VUIは、ビデオの表示に関するデータであり、ビデオパラメータセット(VPS)やシーケンスパラメータセット(SPS)に格納される。また、VUI処理部501は、例えば、そのようなVUIに含まれる、画像の色空間を示す情報(matrix_coffs)を残差予測部122(後述する色空間判定部523)に供給する。matrix_coffsは、RGBから輝度・色差への変換行列を示す情報である。換言するに、matrix_coffs=0の場合、画像の色空間がsRGBであることを示す。
制御部511は、基本的に制御部141と同様の処理を行う。制御部141の構成と比較して、制御部511は、ビット深度差算出部151の代わりにビット深度差算出部521を有し、ビットシフト制御部152の代わりにビットシフト制御部522を有し、さらに、制御部141の場合と同様に、重み係数設定部153を有する。さらに、制御部511は、色空間判定部523を有する。
ビット深度差算出部521は、ビット深度差算出部151の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部521は、ビット深度差算出部151の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を左シフト部163に供給しない(予測部412も左シフト部163を有していない)。
ビットシフト制御部522は、ビットシフト制御部152の場合と同様に、予測部412による演算を制御する。ただし、ビットシフト制御部522は、ビット深度差算出部521により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が0の場合、予測部412にビット深度のスケーリングを行わずに予測残差データを算出させ、ビット深度差算出部521により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が正の場合、予測部412にビット深度のスケーリングを行わせて予測残差データを算出させる。これに対して、ビット深度差算出部521により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負の場合、ビットシフト制御部522は、予測部412を制御し、残差予測を禁止する(予測残差データを算出させないようにする)。
さらに、ビットシフト制御部522は、色空間判定部523による画像の色空間の判定結果に応じて、予測部412による演算を制御する。例えば、色空間判定部523により画像の色空間がRGBであると判定された場合、ビットシフト制御部522は、予測部412を制御し、残差予測を禁止する(予測残差データを算出させないようにする)。
色空間判定部523は、VUI処理部501から供給される画像の色空間を示す情報(matrix_coffs)を参照して、画像の色空間を判定する。例えば、matrix_coffs=0の場合、色空間判定部523は、画像の色空間がRGBであると判定する。
つまりこの実施の形態の例の場合、第3の実施の形態の場合と同様に、ビット深度差算出部421により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負のときは、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトが行われない。したがって、予測部412は、第3の実施の形態において説明したように、予測部142の構成と比較して、左シフト部163が省略される。
<残差予測処理の流れ>
この実施の形態の場合、符号化処理は、第1の実施の形態の場合と同様に実行される。図29のフローチャートを参照して、この実施の形態の場合の、残差予測処理の流れの例を説明する。
図29の例の場合も、残差予測処理が開始されると、ステップS501において、ビット深度差算出部521は、残差予測を行うコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部521は、式(4)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS502において、ビットシフト制御部522は、ステップS501において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS503に進む。この場合、ビットシフトは行われず、残差予測は、式(3)のように行われる。
つまり、ステップS503乃至ステップS505の各処理は、第1の実施の形態の残差予測処理のステップS123乃至ステップS125の各処理と同様に実行される。そして、ステップS505の処理が終了するか、ステップS503において、残差予測を行わないと判定された場合、残差予測処理が終了し、処理は、図5に戻る。
また、ステップS502において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS506進む。
ステップS506において、色空間判定部523は、VUI処理部501から取得した画像の色空間を示す情報(matrix_coffs)に基づいて、画像の色空間がRGBであるか否かを判定する。RGBでないと判定された場合、処理は、ステップS507に進む。
ステップS507において、ビットシフト制御部522は、ステップS501において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS508に進む。この場合、残差予測は、式(6)のように行われる(右シフトによるスケーリングが行われる)。
つまり、ステップS508乃至ステップS510の各処理は、第1の実施の形態の残差予測処理のステップS127乃至ステップS129の各処理と同様に実行される。そして、ステップS510の処理が終了するか、ステップS508において、残差予測を行わないと判定された場合、残差予測処理が終了し、処理は、図5に戻る。
また、ステップS506において色空間がRGBであると判定されるか、ステップS507においてビット深度差(delta_bitdepth)が正でない(負である)と判定された場合、処理は、ステップS511進む。
ステップS511において、ビットシフト制御部522は、残差予測を行うか否かを制御する情報(例えばluma_chroma_prediction_enabled_flag)の値を、残差予測(残差復元)が行われない(禁止する)ことを示す値に設定する。例えば、ビットシフト制御部522が、luma_chroma_prediction_enabled_flagの値を0にするようにしてもよい。
ステップS511の処理が終了すると、残差予測処理が終了し、処理は、図5に戻る。
このようにすることにより、残差データのコンポーネント間のビット深度差が負であり、すなわち輝度成分より色差成分の方がビット深度が大きく、残差予測を行っても十分な効果が得られない(十分に符号化効率を向上させることができない)可能性がある場合、その残差予測を行わないようにすることができる。また、残差予測を行うことによる十分な効果が得られる(十分に符号化効率を向上させることができる)色空間の場合のみ、残差予測を実行するようにすることができる。したがって、画像符号化装置100は、不要な残差予測を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<ヘッダ取得部および残差復元部>
この場合も、画像復号装置200は、第1の実施の形態の場合と基本的に同様の構成を有するようにすることができる。
図30は、この場合のヘッダ取得部221および残差復元部222の主な構成例を示すブロック図である。図30に示されるように、この場合、ヘッダ取得部221は、第1の実施の形態の場合と比較して、VUI取得部541をさらに有する。また、残差復元部222は、第1の実施の形態の場合と比較して、制御部241の代わりに制御部551を有し、復元部242の代わりに復元部452を有する。
VUI取得部541は、符号化側から供給されたビデオパラメータセット(VPS)やシーケンスパラメータセット(SPS)から、ビデオの表示に関するデータであるVUIを取得し、そのVUIに含まれる画像の色空間を示す情報(matrix_coffs)を取得し、残差復元部222(後述する色空間判定部563)に供給する。
制御部551は、基本的に制御部241と同様の処理を行う。制御部241の構成と比較して、制御部551は、ビット深度差算出部251の代わりにビット深度差算出部561を有し、ビットシフト制御部252の代わりにビットシフト制御部562を有する。さらに、制御部551は、色空間判定部563を有する。
ビット深度差算出部561は、ビット深度差算出部251の場合と同様に、コンポーネント間のビット深度差(delta_bitdepth)を算出する。しかしながら、ビット深度差算出部561は、ビット深度差算出部251の場合と異なり、算出したコンポーネント間のビット深度差(delta_bitdepth)を左シフト部263に供給しない(復元部452も左シフト部263を有していない)。
ビットシフト制御部562は、ビットシフト制御部252の場合と同様に、復元部452による演算を制御する。ただし、ビットシフト制御部562は、ビット深度差算出部561により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が0の場合、復元部452にビット深度のスケーリングを行わずに残差データを復元させ、ビット深度差算出部561により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が正の場合、復元部452にビット深度のスケーリングを行わせて残差データを復元させる。これに対して、ビット深度差算出部561により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負の場合、ビットシフト制御部562は、復元部452を制御し、残差復元を省略する(残差データの復元を省略する)。
さらに、ビットシフト制御部562は、色空間判定部563による画像の色空間の判定結果に応じて、復元部452による演算を制御する。例えば、色空間判定部563により画像の色空間がRGBであると判定された場合、ビットシフト制御部562は、復元部452を制御し、残差復元を省略する(残差データの復元を省略する)。
色空間判定部563は、VUI取得部541から供給される画像の色空間を示す情報(matrix_coffs)を参照して、画像の色空間を判定する。例えば、matrix_coffs=0の場合、色空間判定部563は、画像の色空間がRGBであると判定する。
つまりこの実施の形態の例の場合、第3の実施の形態の場合と同様に、ビット深度差算出部561により算出される残差データのコンポーネント間ビット深度差(delta_bitdepth)が負のときは、ビット深度のスケーリング、すなわち、コンポーネント間でビット深度を揃えるためのビットシフトが行われない。したがって、復元部452は、復元部242の構成と比較して、左シフト部263が省略される。
<残差復元処理の流れ>
この実施の形態の場合、復号処理は、第1の実施の形態の場合と同様に実行される。図31のフローチャートを参照して、この実施の形態の場合の、残差復元処理の流れの例を説明する。
図31の例の場合も、残差復元処理が開始されると、ステップS521において、ビット深度差算出部561は、残差予測が行われたコンポーネント間のビット深度の差分を算出する。すなわち、ビット深度差算出部561は、式(10)の演算を行い、輝度成分(Y)と色差成分(CrまたはCb)のビット深度差(delta_bitdepth)を算出する。色差成分(Cr)と色差成分(Cb)とでビット深度差が異なる場合は、それぞれビット深度差(delta_bitdepth)を算出する。
ステップS522において、ビットシフト制御部562は、ステップS521において算出されたビット深度差(delta_bitdepth)が0であるか否かを判定する。0であると判定された場合、処理は、ステップS523に進む。この場合、ビットシフトは行われず、残差復元は、式(9)のように行われる。
つまり、ステップS523乃至ステップS525の各処理は、第1の実施の形態の残差予測処理のステップS223乃至ステップS225の各処理と同様に実行される。そして、ステップS525の処理が終了するか、ステップS523において残差予測が行われていないと判定された場合、残差復元処理が終了し、処理は、図12に戻る。
また、ステップS522において、ビット深度差(delta_bitdepth)が0でないと判定された場合、処理は、ステップS526進む。
ステップS526において、色空間判定部563は、VUI取得部541から取得した画像の色空間を示す情報(matrix_coffs)に基づいて、画像の色空間がRGBであるか否かを判定する。RGBでないと判定された場合、処理は、ステップS527に進む。
ステップS527において、ビットシフト制御部562は、ステップS521において算出されたビット深度差(delta_bitdepth)が正であるか否かを判定する。正であると判定された場合、処理はステップS528に進む。この場合、残差予測は、式(12)のように行われる(右シフトによるスケーリングが行われる)。
つまり、ステップS528乃至ステップS530の各処理は、第1の実施の形態の残差予測処理のステップS227乃至ステップS229の各処理と同様に実行される。そして、ステップS530の処理が終了するか、ステップS528において、残差予測が行われていないと判定された場合、残差復元処理が終了し、処理は、図12に戻る。
また、ステップS526において色空間がRGBであると判定されるか、ステップS527においてビット深度差(delta_bitdepth)が正でない(負である)と判定された場合も、ビット深度のスケーリングは行われず、残差復元が省略される。したがって、この場合も残差復元処理が終了し、処理は、図12に戻る。
このようにすることにより、残差データのコンポーネント間のビット深度差が負であり、すなわち輝度成分より色差成分の方がビット深度が大きく、残差予測を行っても十分な効果が得られない(十分に符号化効率を向上させることができない)可能性がある場合、その残差予測を行わないようにし、それに応じて残差復元も行わないようにすることができる。また、残差予測を行うことによる十分な効果が得られる(十分に符号化効率を向上させることができる)色空間の場合のみ、残差予測を実行するようにし、それに応じて残差復元も行わないようにすることができる。したがって、画像復号装置200は、不要な残差復元を省略することができるので、符号化効率の低減を抑制することができるとともに、処理の負荷の増大を抑制することができる。
<5.第5の実施の形態>
<重み係数の共通化>
なお、以上においては、重み係数設定部153が、コンポーネント毎に独立に重み係数αを設定するように説明したが、これに限らず、重み係数設定部153が、複数のコンポーネントに共通の重み係数αを設定するようにしてもよい。例えば、重み係数設定部153が、色差成分Crと色差成分Cbの両方に共通の重み係数αを設定するようにしてもよい。
<シンタクスとセマンティクス>
図32に、重み係数αをコンポーネント毎に独立に設定する場合の、重み係数αを伝送するTUのシンタクスの例を示す。この場合、図32の斜線模様で示される部分のように、重み係数αを伝送すrための条件判定が、色差成分Crと色差成分Cbのそれぞれについて行われ、色差成分Crと色差成分Cbのそれぞれについて重み係数αの伝送(luma_chroma_pred()の呼び出し)が行われる。また、その重み係数αの伝送において、色差成分(Chroma)のコンポーネント番号(c)を指定する必要がある(例えば、luma_chroma_pred(x0,y0,c)の"c"。図32の例では、c="0"or"1")。
残差予測(Luma-chroma prediction)のシンタクスの例を図33に示す。図33に示されるように、このシンタクスにおいても、色差成分(Chroma)のコンポーネント番号(c)を指定する必要がある。
さらに、セマンティクスの例を図34および図35に示す。これらの図に示されるように、セマンティクスにおいても、色差成分(Chroma)のコンポーネント番号(c)を指定する必要がある。
これに対して、図36に、重み係数αを共通化する場合の、重み係数αを伝送するTUのシンタクスの例を示す。この場合、図36の斜線模様で示される部分のように、重み係数αを伝送すrための条件判定と、重み係数αの伝送(luma_chroma_pred()の呼び出し)は1回行えば良い。したがって、このようにすることにより、画像符号化装置100および画像復号装置200の負荷を低減させることができるとともに、伝送する情報量を低減させることができ、符号化効率を向上させることができる。また、色差成分(Chroma)のコンポーネント番号(c)の指定が不要になるので、さらに、符号化効率を向上させることができる。
また、その場合の残差予測(Luma-chroma prediction)のシンタクスの例を図37に示す。図37に示されるように、このシンタクスにおいても、色差成分(Chroma)のコンポーネント番号(c)の指定が不要になるので、さらに、符号化効率を向上させることができる。
さらに、その場合のセマンティクスの例を図38および図39に示す。これらの図に示されるように、セマンティクスにおいても、色差成分(Chroma)のコンポーネント番号(c)の指定が不要になる。したがって、さらに、画像符号化装置100および画像復号装置200の負荷を低減させることができる。
本技術の適用範囲は、画像データを符号化・復号可能なあらゆる画像符号化装置及び画像復号装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<6.第6の実施の形態>
<多視点画像符号化・多視点画像復号への適用>
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図40は、多視点画像符号化方式の一例を示す。
図40に示されるように、多視点画像は、複数の視点(ビュー(view))の画像を含む。この多視点画像の複数のビューは、他のビューの情報を利用せずに自身のビューの画像のみを用いて符号化・復号を行うベースビューと、他のビューの情報を利用して符号化・復号を行うノンベースビューとによりなる。ノンベースビューの符号化・復号は、ベースビューの情報を利用するようにしても良いし、他のノンベースビューの情報を利用するようにしてもよい。
図40の例のような多視点画像を符号化・復号する場合、各視点の画像を符号化・復号するが、この各視点の符号化・復号に対して、第1の実施の形態乃至第5の実施の形態において上述した方法を適用するようにしてもよい。このようにすることにより、各視点の符号化効率の低減を抑制することができる。つまり、多視点画像の場合も同様に、符号化効率の低減を抑制することができる。
<多視点画像符号化装置>
図41は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図41に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
例えば、このような多視点画像符号化装置600の符号化部601および符号化部602として、上述した画像符号化装置100を適用すればよい。このようにすることにより、多視点画像の符号化においても、第1の実施の形態乃至第5の実施の形態において説明した各種方法を適用することができる。すなわち、多視点画像符号化装置600は、多視点画像の符号化データの符号化効率の低減を抑制することができる。
<多視点画像復号装置>
図42は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図42に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
例えば、このような多視点画像復号装置610の復号部612および復号部613として、上述した画像復号装置200を適用すればよい。このようにすることにより、多視点画像の符号化データの復号においても、第1の実施の形態乃至第5の実施の形態において説明した各種方法を適用することができる。すなわち、多視点画像復号装置610は、第1の実施の形態乃至第5の実施の形態において説明した各種方法で符号化された多視点画像の符号化データを正しく復号することができる。したがって、多視点画像復号装置610は、多視点画像の符号化データの符号化効率の低減を抑制することができる。
<7.第7の実施の形態>
<階層画像符号化・階層画像復号への適用>
また、上述した一連の処理は、階層画像符号化・階層画像復号(スケーラブル符号化・スケーラブル復号)に適用することができる。図43は、階層画像符号化方式の一例を示す。
階層画像符号化(スケーラブル符号化)は、画像データを、所定のパラメータについてスケーラビリティ(scalability)機能を有するように、画像を複数レイヤ化(階層化)し、レイヤ毎に符号化するものである。階層画像復号は、その階層画像符号化(スケーラブル復号)は、その階層画像符号化に対応する復号である。
図43に示されるように、画像の階層化においては、スケーラビリティ機能を有する所定のパラメータを基準として1の画像が複数の画像(レイヤ)に分割される。つまり、階層化された画像(階層画像)は、その所定のパラメータの値が互いに異なる複数の階層(レイヤ)の画像を含む。この階層画像の複数のレイヤは、他のレイヤの画像を利用せずに自身のレイヤの画像のみを用いて符号化・復号を行うベースレイヤと、他のレイヤの画像を利用して符号化・復号を行うノンベースレイヤ(エンハンスメントレイヤとも称する)とによりなる。ノンベースレイヤは、ベースレイヤの画像を利用するようにしても良いし、他のノンベースレイヤの画像を利用するようにしてもよい。
一般的に、ノンベースレイヤは、冗長性が低減されるように、自身の画像と、他のレイヤの画像との差分画像のデータ(差分データ)により構成される。例えば、1の画像をベースレイヤとノンベースレイヤ(エンハンスメントレイヤとも称する)に2階層化した場合、ベースレイヤのデータのみで元の画像よりも低品質な画像が得られ、ベースレイヤのデータとノンベースレイヤのデータを合成することで、元の画像(すなわち高品質な画像)が得られる。
このように画像を階層化することにより、状況に応じて多様な品質の画像を容易に得ることができる。例えば携帯電話のような、処理能力の低い端末に対しては、ベースレイヤ(base layer)のみの画像圧縮情報を伝送し、空間時間解像度の低い、或いは、画質の良くない動画像を再生し、テレビやパーソナルコンピュータのような、処理能力の高い端末に対しては、ベースレイヤ(base layer)に加えて、エンハンスメントレイヤ(enhancement layer)の画像圧縮情報を伝送し、空間時間解像度の高い、或いは、画質の高い動画像を再生するといったように、トランスコード処理を行うことなく、端末やネットワークの能力に応じた画像圧縮情報を、サーバから送信することが可能となる。
図43の例のような階層画像を符号化・復号する場合、各レイヤの画像を符号化・復号するが、この各レイヤの符号化・復号に対して、第1の実施の形態乃至第5の実施の形態において上述した方法を適用するようにしてもよい。このようにすることにより、各レイヤの符号化効率の低減を抑制することができる。つまり、階層画像の場合も同様に、符号化効率の低減を抑制することができる。
<スケーラブルなパラメータ>
このような階層画像符号化・階層画像復号(スケーラブル符号化・スケーラブル復号)において、スケーラビリティ(scalability)機能を有するパラメータは、任意である。例えば、図44に示されるような空間解像度をそのパラメータとしてもよい(spatial scalability)。このスペーシャルスケーラビリティ(spatial scalability)の場合、レイヤ毎に画像の解像度が異なる。つまり、図44に示されるように、各ピクチャが、元の画像より空間的に低解像度のベースレイヤと、ベースレイヤの画像と合成することにより元の画像(元の空間解像度)が得られるエンハンスメントレイヤの2階層に階層化される。もちろん、この階層数は一例であり、任意の階層数に階層化することができる。
また、このようなスケーラビリティ性を持たせるパラメータとして、他には、例えば、図45に示されるような、時間解像度を適用しても良い(temporal scalability)。このテンポラルスケーラビリティ(temporal scalability)の場合、レイヤ毎にフレームレートが異なる。つまり、この場合、図45に示されるように、互いに異なるフレームレートのレイヤに階層化されており、低フレームレートのレイヤに、高フレームレートのレイヤを加えることで、より高フレームレートの動画像を得ることができ、全てのレイヤを加えることで、元の動画像(元のフレームレート)を得ることができる。この階層数は一例であり、任意の階層数に階層化することができる。
さらに、このようなスケーラビリティ性を持たせるパラメータとして、例えば、信号雑音比(SNR(Signal to Noise ratio))を適用しても良い(SNR scalability)。このSNRスケーラビリティ(SNR scalability)の場合、レイヤ毎にSN比が異なる。つまり、図46に示されるように、各ピクチャが、元の画像より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)がある。
<階層画像符号化装置>
図47は、上述した階層画像符号化を行う階層画像符号化装置を示す図である。図47に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、および多重化部623を有する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
例えば、この階層画像符号化装置620の符号化部621および符号化部622として、上述した画像符号化装置100を適用すればよい。このようにすることにより、階層画像の符号化においても、第1の実施の形態乃至第5の実施の形態において説明した各種方法を適用することができる。すなわち、階層画像符号化装置620は、階層画像の符号化データの符号化効率の低減を抑制することができる。
<階層画像復号装置>
図48は、上述した階層画像復号を行う階層画像復号装置を示す図である。図48に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、および復号部633を有する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを復号し、ノンベースレイヤ画像を得る。
例えば、この階層画像復号装置630の復号部632および復号部633として、上述した画像復号装置200を適用すればよい。このようにすることにより、階層画像の符号化データの復号においても、第1の実施の形態乃至第5の実施の形態において説明した各種方法を適用することができる。すなわち、階層画像復号装置630は、第1の実施の形態乃至第5の実施の形態において説明した各種方法で符号化された階層画像の符号化データを正しく復号することができる。したがって、階層画像復号装置630は、階層画像の符号化データの符号化効率の低減を抑制することができる。
<8.第8の実施の形態>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図49は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図49に示されるコンピュータ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つの応用例について説明する。
<9.第9の実施の形態>
<第1の応用例:テレビジョン受像機>
図50は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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は、画像データが第1の実施の形態乃至第5の実施の形態において説明したいずれか方法で符号化された符号化データを、その実施の形態において説明した方法で正しく復号することができる。したがって、テレビジョン装置900は、符号化効率の低減を抑制することができる。
<第2の応用例:携帯電話機>
図51は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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は、画像データを第1の実施の形態乃至第5の実施の形態において説明したいずれかの方法で符号化したり、その符号化により得られる符号化データを、その実施の形態において説明した方法で正しく復号したりすることができる。したがって、携帯電話機920は、符号化効率の低減を抑制することができる。
<第3の応用例:記録再生装置>
図52は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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は、画像データを第1の実施の形態乃至第5の実施の形態において説明したいずれか方法で符号化することができる。また、デコーダ947は、上述した実施形態に係る画像復号装置200の機能を有する。つまり、デコーダ947は、画像データが第1の実施の形態乃至第5の実施の形態において説明したいずれかの方法で符号化された符号化データを、その実施の形態において説明した方法で正しく復号することができる。したがって、記録再生装置940は、符号化効率の低減を抑制することができる。
<第4の応用例:撮像装置>
図53は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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は、画像データを第1の実施の形態乃至第5の実施の形態において説明したいずれかの方法で符号化したり、その符号化により得られる符号化データを、その実施の形態において説明した方法で正しく復号したりすることができる。したがって、撮像装置960は、符号化効率を向上させることができる。
なお、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。つまり、このような複数の符号化データ間で、符号化や復号に関する情報を共有することもできる。
<10.第10の実施の形態>
<実施のその他の例>
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
<ビデオセット>
本技術をセットとして実施する場合の例について、図54を参照して説明する。図54は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図54に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図54に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図54の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図54のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図54において点線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は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図55は、本技術を適用したビデオプロセッサ1332(図54)の概略的な構成の一例を示している。
図55の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図55に示されるように、ビデオプロセッサ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(図54)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第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乃至図39を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図56は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図56の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図56に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図56に示されるように、制御部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は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図56に示される例において、コーデックエンジン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乃至図39を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図50)、携帯電話機920(図51)、記録再生装置940(図52)、撮像装置960(図53)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図39を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図39を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図50)、携帯電話機920(図51)、記録再生装置940(図52)、撮像装置960(図53)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図39を参照して上述した効果と同様の効果を得ることができる。
また、本明細書では、各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
なお、本技術は以下のような構成も取ることができる。
(1) 複数コンポーネントからなる入力画像と予測画像との残差データに対して前記コンポーネント間で予測を行う際に、前記残差データのビット深度を前記コンポーネント間で揃えて前記予測を行う残差予測部と、
前記残差予測部による前記予測により生成された予測残差データを符号化する符号化部と
を備える画像処理装置。
(2) 前記残差予測部は、ビットシフトによって前記残差データの前記ビット深度を揃える
(1)、(3)乃至(9)のいずれかに記載の画像処理装置。
(3) 前記残差予測部は、前記予測を行う前記2つのコンポーネント間の前記ビット深度の差が0でない場合、前記ビットシフトによって前記残差データの前記ビット深度をコンポーネント間で揃えて前記予測を行う
(1)、(2)、(4)乃至(9)のいずれかに記載の画像処理装置。
(4) 前記残差予測部は、前記ビット深度の差が正の場合、前記ビットシフトによって前記残差データの前記ビット深度をコンポーネント間で揃えて前記予測を行い、前記ビット深度の差が負の場合、前記予測を省略する
(1)乃至(3)、(5)乃至(9)のいずれかに記載の画像処理装置。
(5) 前記残差予測部は、前記入力画像の色空間がRGB空間でない場合、前記ビットシフトによって前記残差データの前記ビット深度をコンポーネント間で揃えて前記予測を行い、前記入力画像の色空間がRGB空間の場合、前記予測を省略する
(1)乃至(4)、(6)乃至(9)のいずれかに記載の画像処理装置。
(6) 前記入力画像の色空間がYUV空間であり、
前記残差予測部は、輝度成分と色差成分との間で、前記ビットシフトによって前記残差データの前記ビット深度を揃えて前記予測を行う
(1)乃至(5)、(7)乃至(9)のいずれかに記載の画像処理装置。
(7) 前記入力画像の色空間がRGB空間であり、
前記残差予測部は、G成分とR成分若しくはB成分との間で、前記ビットシフトによって前記残差データの前記ビット深度を揃えて前記予測を行う
(1)乃至(6)、(8)、(9)のいずれかに記載の画像処理装置。
(8) 前記残差予測部は、前記予測を行う2つのコンポーネント間の前記ビット深度の差を求め、前記2つのコンポーネントの内の一方のコンポーネントの前記残差データに対して前記ビット深度の差に応じた前記ビットシフトを行い、前記ビットシフトされた前記残差データに所定の重み係数を乗算し、その乗算結果に対して所定のビット数分のビットシフトを行い、他方のコンポーネントの前記残差データと前記ビットシフトされた前記乗算結果との差分を求めることにより、前記予測を行う
(1)乃至(7)、(9)のいずれかに記載の画像処理装置。
(9) 前記残差予測部は、複数のコンポーネントで共通の前記重み係数を設定する
(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 複数コンポーネントからなる入力画像と予測画像との残差データに対して前記コンポーネント間で予測を行う際に、前記残差データのビット深度を前記コンポーネント間で揃えて前記予測を行い、
前記予測により生成された予測残差データを符号化する
画像処理方法。
(11) 複数コンポーネントからなる画像とその予測画像との残差データの前記コンポーネント間の予測結果である予測残差データが符号化された符号化データを復号する復号部と、
前記復号部により前記符号化データが復号されて得られた前記予測残差データを用いて前記残差データの復元を行う際に、前記残差データのビット深度を前記コンポーネント間で揃えて前記復元を行う残差復元部と
を備える画像処理装置。
(12) 前記残差復元部は、ビットシフトによって前記残差データの前記ビット深度を揃える
(11)、(13)乃至(19)のいずれかに記載の画像処理装置。
(13) 前記ビット深度に関する情報を受け取る受け取り部をさらに備え、
前記残差復元部は、前記受け取り部により受け取られた前記ビット深度に関する情報に基づいて、前記予測を行う前記2つのコンポーネント間の前記ビット深度の差を求め、求めた前記ビット深度の差に基づいて前記ビットシフトを行うことにより、前記残差データの前記ビット深度を揃える
(11)、(12)、(14)乃至(19)のいずれかに記載の画像処理装置。
(14) 前記残差復元部は、求めた前記ビット深度の差が0でない場合、前記ビットシフトによって前記残差データの前記ビット深度を揃える
(11)乃至(13)、(14)乃至(19)のいずれかに記載の画像処理装置。
(15) 前記残差復元部は、求めた前記ビット深度の差が正の場合、前記ビットシフトによって前記残差データの前記ビット深度を揃えて前記復元を行い、求めた前記ビット深度の差が負の場合、前記復元を省略する
(11)乃至(14)、(15)乃至(19)のいずれかに記載の画像処理装置。
(16) 前記受け取り部は、前記画像の色空間に関する情報をさらに受け取り、
前記残差復元部は、前記受け取り部により受け取られた前記画像の色空間に関する情報に基づいて、前記画像の色空間がRGB空間でない場合、前記ビットシフトによって前記残差データの前記ビット深度をコンポーネント間で揃えて前記復元を行い、前記画像の色空間がRGB空間の場合、前記復元を省略する
(11)乃至(15)、(17)乃至(19)のいずれかに記載の画像処理装置。
(17) 前記画像の色空間がYUV空間であり、
前記残差復元部は、輝度成分と色差成分との間で、前記ビットシフトによって前記残差データの前記ビット深度を揃えて前記復元を行う
(11)乃至(16)、(18)、(19)のいずれかに記載の画像処理装置。
(18) 前記画像の色空間がRGB空間であり、
前記残差復元部は、G成分とR成分若しくはB成分との間で、前記ビットシフトによって前記残差データの前記ビット深度を揃えて前記復元を行う
(11)乃至(17)、(19)のいずれかに記載の画像処理装置。
(19) 前記残差復元部は、前記復元を行う2つのコンポーネント間の前記ビット深度の差を求め、前記2つのコンポーネントの内の一方のコンポーネントの復元済みの前記残差データに対して前記ビット深度の差に応じた前記ビットシフトを行い、前記ビットシフトされた前記残差データに所定の重み係数を乗算し、その乗算結果に対して所定のビット数分のビットシフトを行い、前記ビットシフトされた前記乗算結果と前記予測残差データとを加算することにより、他方のコンポーネントの前記残差データの前記復元を行う
(11)乃至(18)のいずれかに記載の画像処理装置。
(20) 複数コンポーネントからなる画像とその予測画像との残差データの前記コンポーネント間の予測結果である予測残差データが符号化された符号化データを復号し、
前記符号化データが復号されて得られた前記予測残差データを用いて前記残差データの復元を行う際に、前記残差データのビット深度を前記コンポーネント間で揃えて前記復元を行う
画像処理方法。