以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
0.概要
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化装置)
4.第4の実施の形態(画像復号装置)
5.第5の実施の形態(多視点画像符号化・多視点画像復号装置)
6.第6の実施の形態(階層画像符号化・階層画像復号装置)
7.第7の実施の形態(コンピュータ)
8.応用例
9.スケーラブル符号化の応用例
<0.概要>
[符号化方式]
以下においては、HEVC(High Efficiency Video Coding)方式の画像符号化・復号に適用する場合を例に、本技術を説明する。
[コーディングユニット]
AVC(Advanced Video Coding)方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されている。しかしながら、16画素×16画素のマクロブロックでは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対して最適ではない。
これに対して、HEVC方式においては、図1に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図1の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVC方式におけるマクロブロックはLCUに相当し、ブロック(サブブロック)はCUに相当すると考えることができる。また、AVC方式における動き補償ブロックは、PUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVC方式のマクロブロックより大きく設定されることが一般的である。
よって、以下、LCUは、AVC方式におけるマクロブロックをも含むものとし、CUは、AVC方式におけるブロック(サブブロック)をも含むものとする。つまり、以下の説明に用いる「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、「ブロック」には、例えば、TU、PU、SCU、CU、LCU、サブブロック、マクロブロック、またはスライス等任意の領域(処理単位)が含まれる。もちろん、これら以外の部分領域(処理単位)も含まれる。サイズや処理単位等を限定する必要がある場合は、適宜説明する。
[モード選択]
ところで、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)のように示される。
Cost(Mode∈Ω) = D + λ*R ・・・(1)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のように示される。
Cost(Mode∈Ω) = D + QP2Quant(QP) * HeaderBit ・・・(2)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[イントラ予測]
ところで、従来、符号化や復号における予測画像の生成方法の1つに、画面内の他の画素を用いて予測を行うイントラ予測がある。
イントラ予測では、イントラ予測モードとして複数のモードが用意されており、処理対象であるカレントブロック周辺の、そのモードに応じた位置の画素が参照され、その画素値を用いてカレントブロックの予測が行われる。このイントラ予測に使用される画素を参照画素とも称する。なお、参照画素には、過去に処理された符号化済みの画素が採用される。
参照画素の位置の例を図2に示す、図2において、白地の四角がカレントブロックの画素(予測対象画素)を示し、その周辺の、斜線模様の四角で示される符号化済みの画素が参照画素を示す。つまり、この斜線模様の四角で示される画素の内の、イントラ予測モードに対応する画素の画素値を用いてカレントブロックの予測が行われる。
[量子化]
ところで、AVCやHEVCのような符号化方式の場合、符号化効率の向上を図るために、直交変換された係数が量子化される。そして、得られた量子化係数が可逆符号化される。したがって、復号処理においては、可逆復号により符号化データから得られた量子化係数が逆量子化される。
この量子化・逆量子化は、例えば直交変換処理単位ブロック(例えばTU)毎に、所定のスケーリングリストを用いて行われる。スケーリングリストは、そのブロックの各画素に対応する量子化ステップを集めた情報である。この量子化・逆量子化には、例えば、予め用意されたデフォルトスケーリングリストが使用される。
4画素×4画素サイズのデフォルトスケーリングリストの例を図3および図4に示す。図3の例の場合、4×4の全ての量子化ステップの値が互いに同一である。また、図4の例の場合、4×4の量子化ステップの内、右下の量子化ステップの値が比較的大きな値を持つ。HEVCやAVCのような符号化においては、画素値は、直交変換されて量子化される。つまり、量子化は直交変換係数に対して行われる。したがって、図4の例のデフォルトスケーリングリスの場合、カレントブロック内のより高周波成分(直交変換係数)の符号量を低減させるように、より大きな量子化ステップで量子化が行われるようになされている。
[直交変換スキップ]
ところで、HEVC規格では、非特許文献2において提案されている"Intra Transform Skipping"の手法が採用されている。直交変換スキップ(Transform Skip)とは、直交変換処理や逆直交変換処理を省略(スキップ)する手法である。
一般的には、画像データ(差分画像データ)に対して、ブロック毎に直交変換処理を行って、ブロック内の空間領域の情報を周波数領域の情報に変換することにより、ブロック内の係数を低域に集中させ、偏りを大きくすることができる。これにより、符号化効率が向上する。
しかしながら、ブロック内の絵柄によっては、そのような偏りが生じにくい場合も考えられる。例えば、CG画やキャプション等人工的な画像の場合、自然画に比べて、グラデーションや強いエッジが発生し易い。そのため、高域成分が生じ易く、直交変換処理を行っても偏りが生じにくい。そこで、そのようなブロックに対しては、直交変換処理のスキップを認めるようにすることにより、さらなる符号化効率の向上を図ることができる。
[カスタムスケーリングリスト]
以上のような直交変換スキップを適用すると、直交変換係数の代わりに直交変換前画素値が量子化されることになる。しかしながら、従来の量子化・逆量子化においては、このような直交変換スキップへの対応は考慮されていなかった。そのため、直交変換前画素値に対しても、直交変換係数に対する場合と同様のスケーリングリストを用いて、量子化・逆量子化が行われていた。
しかしながら、このスケーリングリストは、直交変換係数に対するものであるので、直交変換前画素値に対して最適化されたものではなく、そのため、量子化誤差が不要に増大してしまう恐れがあった。
そこで、画像データの符号化において、カレントブロックの直交変換処理・逆直交変換処理がスキップされる場合、カレントブロックに対する量子化処理に用いるスケーリングリストとして、直交変換前画素値の量子化・逆量子化に対してより適したカスタムスケーリングリストを設定するようにする。
直交変換前画素値の量子化・逆量子化において、直交変換係数の量子化・逆量子化に対して適した従来のデフォルトスケーリングリストの代わりに、このようなカスタムスケーリングリストを用いることにより、量子化誤差の増大を抑制することができる。
特に、イントラ予測においては、カレントブロックの周辺の参照画素が、予測画像の複数の画素の生成に利用される。そのため、参照画素の画素値に含まれる量子化誤差は、イントラ予測によって、予測画像のより多くの画素に拡散する恐れがあった。そのためイントラ予測の予測精度が大幅に低減し、符号化効率が低減し、符号化や復号による画質劣化が増大する恐れがあった。
そこで、カスタムスケーリングリストにおいて、量子化ステップの値が、量子化誤差によりイントラ予測の予測精度が低減しないように、すなわち、ブロック内のイントラ予測において参照される可能性のある画素の画素値に含まれる量子化誤差が小さくなるように設定されるようにしてもよい。
なお、スケーリングリストの全ての量子化ステップの値小さくすると符号量が不要に増大するので、符号化効率が低減する恐れがある。そこで、カスタムスケーリングリストにおいては、イントラ予測において参照される可能性のある画素に対応する量子化ステップの値が、イントラ予測において参照される可能性の無い画素に対応する量子化ステップの値よりも小さく設定されるようにする。
このようにすることにより、直交変換処理・逆直交変換処理がスキップされるブロックにおいては、デフォルトスケーリングリストを用いて量子化・逆量子化を行う場合よりも、カスタムスケーリングリストを用いて量子化・逆量子化を行う方が、予測画像に含まれる量子化誤差を低減させ、符号化効率を向上させ、符号化や復号による画質の劣化を低減させることができる。
このカスタムスケーリングリストの例を図5に示す。図5に示されるカスタムスケーリングリストは、デフォルトスケーリングリストの図3の例に対応するものであるとする。つまり、図5の例のカスタムスケーリングリストにおいては、斜線模様で示される、イントラ予測において参照される可能性のある画素に対応する量子化ステップ(ブロックの右端と下端の量子化ステップ)が、デフォルトスケーリングリストの場合よりも小さく設定されている。また、白地で示されるその他の量子化ステップ(イントラ予測において参照される可能性の無い画素に対応する量子化ステップ)は、デフォルトスケーリングリストのままとされている。
このように、イントラ予測において参照される可能性のある画素に対応する量子化ステップの値のみを小さくすることにより、予測画像に含まれる量子化誤差を低減させるとともに、符号量の不要な増大を抑制することができ、符号化効率の低減をより抑制することができる。
なお、図4の例のデフォルトスケーリングリストに対して、図5のカスタムスケーリングリストを用いるようにしてももちろんよい。つまり、カスタムスケーリングリストにおいて、イントラ予測において参照される可能性の無い画素に対応する量子化ステップの値は、図5の例のように均一でなくてもよい。
同様に、カスタムスケーリングリストにおいて、イントラ予測において参照される可能性のある画素に対応する量子化ステップの値も、図5の例のように均一でなくてもよい。
例えば、イントラ予測において参照される可能性のある画素に対応する部分の各量子化ステップが、それぞれが対応する画素のイントラ予測において参照される可能性の高さに応じた値を有するようにしてもよい。
このカスタムスケーリングリストの例を図6に示す。図6に示されるカスタムスケーリングリストは、右下隅の量子化ステップの値が、さらに小さく設定されている。この量子化ステップに対応する画素は、このブロックの右や下のブロック等、多くのブロックのイントラ予測において参照される可能性がある。つまり、他の量子化ステップに比べて、参照される可能性が高いと言える。
このような参照される可能性が高い画素に対応する量子化ステップの値を、(その可能性の高さに応じて)さらに小さくすることにより、より効率よく、予測画像に含まれる量子化誤差を低減させることができる。したがって、符号量の不要な増大を抑制しながら、符号化効率の低減をさらに抑制することができる。
なお、このようなカスタムスケーリングリストにおいて重要なことは、イントラ予測において参照される可能性のある画素に対応する量子化ステップが、イントラ予測において参照される可能性の無い画素に対応する量子化ステップに比べて値が小さいということであり、具体的な値は、任意であり、実際の符号量等に応じて適切な値を設定すればよい。
つまり、イントラ予測において参照される可能性のある画素に対応する量子化ステップの値を小さくする代わりに、イントラ予測において参照される可能性の無い画素に対応する量子化ステップの値を大きくしても良い。
例えば、図7に示されるカスタムスケーリングリストの例のように、イントラ予測において参照される可能性の無い画素に対応する部分の量子化ステップが、デフォルトカスタムスケーリングリストの場合の値よりも大きく設定されるようにしてもよい。
例えば、符号量を増大させる余裕が無い場合、図7の例のようなカスタムスケーリングリストを適用することにより、デフォルトスケーリングリストを用いる場合よりも、符号量を低減させながら、予測画像に含まれる量子化誤差の増大を抑制することができる。
[カスタムスケーリングリストの生成]
なお、このようなカスタムスケーリングリストは、予め用意しても良いし、適宜生成するようにしてもよい。予め用意する場合は、任意の数のカスタムスケーリングリストを用意することができる。
また、使用したカスタムスケーリングリストは、符号化側から復号側に伝送するようにしてもよい。例えば、シーケンスパラメータセットやピクチャパラメータセット等において伝送するようにしてもよい。また、符号化データとは別のデータとして伝送するようにしてもよい。
また、復号側においても、符号化側と同様の処理により、使用するカスタムスケーリングリストを設定(選択若しくは生成)するようにしてもよい。この場合、カスタムスケーリングリストの伝送は不要である。
さらに、処理対象であるカレントブロックの量子化・逆量子化に、カスタムスケーリングリストを適用するかデフォルトスケーリングリストを適用するかは、そのカレントブロックについての直交変換スキップに関する情報に基づいて決定するようにしてもよい。
[直交変換スキップに関する情報]
この直交変換スキップに関する情報には、例えば、所定の範囲について直交変換スキップ(Transform Skip)を許可するか否か(enable/disable)を示すスキップ許可情報(transform_skip_enable_flag)や、カレントブロックに対して直交変換スキップを適用したか否かを示すスキップ識別情報(transform_skip_flag)が含まれる。
スキップ許可情報(transform_skip_enable_flag)は、直交変換処理の単位より大きな範囲毎に直交変換スキップ(Transform Skip)を許可するか否か(enable/disable)を示す情報である。例えば、スキップ許可情報(transform_skip_enable_flag)の値が偽(例えば「0」)である場合、その値に対応する範囲のブロックにおいては、直交変換スキップ(Transform Skip)は禁止される(直交変換処理・逆直交変換処理が必ず行われる)。
また、例えば、スキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)である場合、その値に対応する範囲のブロックにおいては、直交変換スキップ(Transform Skip)が許可される(直交変換処理・逆直交変換処理がスキップされ得る)。
このスキップ許可情報(transform_skip_enable_flag)は、例えば、ユーザ等により設定される。このスキップ許可情報(transform_skip_enable_flag)は、例えばピクチャ毎に設定され、ピクチャパラメータセット(PPS(Picture Parameter Set))などにおいて伝送される。
スキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)である場合、所定のサイズ(例えば4×4サイズ)のブロック(TU)においては、直交変換スキップ(Transform Skip)が適用され得る。この場合、所定のサイズ(例えば4×4サイズ)の各ブロック(TU)について、スキップ識別情報(transform_skip_flag)が伝送される。
スキップ識別情報(transform_skip_flag)は、処理対象であるカレントブロック(TU)について、符号化の際に直交変換スキップが行われたか否かを示す情報である。この値が、偽(例えば「0」)である場合、カレントブロックにおいては、直交変換スキップ(Transform Skip)が行われていない(直交変換処理が行われた)。つまり、復号側においては、スキップ識別情報(transform_skip_flag)の値が偽(例えば「0」)である場合、カレントブロックに対して逆直交変換処理を行う。
逆に、この値が、真(例えば「1」)である場合、カレントブロックにおいては、直交変換スキップ(Transform Skip)が行われる(直交変換処理が行われなかった)。つまり、復号側においては、スキップ識別情報(transform_skip_flag)の値が真(例えば「1」)である場合、カレントブロックに対する逆直交変換処理をスキップ(省略)する。
以上のような、スキップ許可情報(transform_skip_enable_flag)およびスキップ識別情報(transform_skip_flag)に基づいて、カレントブロックにおいて直交変換処理がスキップされるか否かを判定することができる。したがって、これらの値に基づいて、カスタムスケーリングリストを適用するか否かを決定するようにしてもよい。つまり、スキップ許可情報(transform_skip_enable_flag)およびスキップ識別情報(transform_skip_flag)に基づいて、カレントブロックにおいて直交変換処理・逆直交変換処理がスキップされると判定される場合、カスタムスケーリングリストを適用するようにし、それ以外の場合、デフォルトスケーリングリストを適用するようにすればよい。
なお、スキップ許可情報(transform_skip_enable_flag)のみに基づいて、カスタムスケーリングリストを適用するか否かを決定するようにしてもよい。例えば、スキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)である場合、カレントブロックにおいて直交変換処理・逆直交変換処理がスキップされ得るとして、カスタムスケーリングリストを適用するようにし、値が偽(例えば「0」)である場合、カレントブロックにおいて直交変換処理・逆直交変換処理がスキップされ得ないとして、デフォルトスケーリングリストを適用するようにしてもよい。
換言するに、スキップ許可情報(transform_skip_enable_flag)の値を偽(例えば0)とすることにより、カスタムスケーリングリストの適用を禁止することもできる。
なお、付言するに、カスタムスケーリングリストを適用することができるブロックのサイズは、直交変換スキップ可能な所定のサイズ(例えば4×4サイズ)に限定される。スキップ識別情報(transform_skip_flag)を参照しない場合は、このことにも考慮するのが望ましい。
さらに、カレントブロックが属するスライス(カレントスライス)が、イントラ予測のみが行われるIスライスの場合、カスタムスケーリングリストを適用することができるようにし、他のスライスタイプの場合、カスタムスケーリングリストの適用を禁止するようにしてもよい。
イントラ予測が行われると、参照画素の画素値がカレントブロックに拡散するので、量子化ステップの値を小さくし、参照画素の量子化誤差を低減させることによるメリットは特に大きい。そのため、確実にイントラ予測が行われるIスライスの場合のみ、カスタムスケーリングリストの適用を許可するようにしてもよい。
この場合、上述した直交変換スキップに関する情報に加えて、カレントスライスのスライスタイプを参照することにより、このような制御を実現することができる。
次に、以上のような本技術について、具体的な装置への適用例について説明する。
<1.第1の実施の形態>
[画像符号化装置]
図8は、画像処理装置の一実施の形態である画像符号化装置の主な構成例を示すブロック図である。図8に示される画像符号化装置100は、例えば、HEVC(High Efficiency Video Coding)の予測処理、またはそれに準ずる方式の予測処理を用いて画像データを符号化する。図8に示されるように、画像符号化装置100は、A/D変換部111、画面並べ替えバッファ112、演算部113、直交変換部114、量子化部115、可逆符号化部116、蓄積バッファ117、逆量子化部118、および逆直交変換部119を有する。また、画像符号化装置100は、演算部120、ループフィルタ121、フレームメモリ122、選択部123、イントラ予測部124、動き予測・補償部125、予測画像選択部126、およびレート制御部127を有する。
画像符号化装置100は、さらに、直交変換スキップ部131および量子化制御部132を有する。
A/D変換部111は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ112に供給し、記憶させる。画面並べ替えバッファ112は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部113に供給する。また、画面並べ替えバッファ112は、フレームの順番を並び替えた画像を、イントラ予測部124および動き予測・補償部125にも供給する。
演算部113は、画面並べ替えバッファ112から読み出された画像から、予測画像選択部126を介してイントラ予測部124若しくは動き予測・補償部125から供給される予測画像を減算し、その差分情報を直交変換部114に出力する。例えば、イントラ符号化が行われる画像の場合、演算部113は、画面並べ替えバッファ112から読み出された画像から、イントラ予測部124から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部113は、画面並べ替えバッファ112から読み出された画像から、動き予測・補償部125から供給される予測画像を減算する。
直交変換部114は、演算部113から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。直交変換部114は、その変換係数を量子化部115に供給する。
量子化部115は、直交変換部114から供給される変換係数を量子化する。量子化部115は、レート制御部127から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。量子化部115は、量子化された変換係数を可逆符号化部116に供給する。
可逆符号化部116は、量子化部115において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部127の制御の下で量子化されているので、この符号量は、レート制御部127が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部116は、イントラ予測のモードを示す情報などをイントラ予測部124から取得し、インター予測のモードを示す情報や差分動きベクトル情報などを動き予測・補償部125から取得する。さらに、可逆符号化部116は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むNALユニットを適宜生成する。
可逆符号化部116は、これらの各種情報を任意の符号化方式で符号化し、符号化データ(符号化ストリームとも称する)の一部とする(多重化する)。可逆符号化部116は、符号化して得られた符号化データを蓄積バッファ117に供給して蓄積させる。
可逆符号化部116の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ117は、可逆符号化部116から供給された符号化データを、一時的に保持する。蓄積バッファ117は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。すなわち、蓄積バッファ117は、符号化データを伝送する伝送部でもある。
また、量子化部115において量子化された変換係数は、逆量子化部118にも供給される。逆量子化部118は、その量子化された変換係数を、量子化部115による量子化に対応する方法で逆量子化する。逆量子化部118は、得られた変換係数を、逆直交変換部119に供給する。
逆直交変換部119は、逆量子化部118から供給された変換係数を、直交変換部114による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部120に供給される。
演算部120は、逆直交変換部119から供給された逆直交変換結果である、復元された差分情報に、予測画像選択部126を介してイントラ予測部124若しくは動き予測・補償部125からの予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ121またはフレームメモリ122に供給される。
ループフィルタ121は、デブロックフィルタや適応ループフィルタ等を含み、演算部120から供給される再構成画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ121は、再構成画像に対してデブロックフィルタ処理を行うことにより再構成画像のブロック歪を除去する。また、例えば、ループフィルタ121は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。ループフィルタ121は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ122に供給する。
なお、ループフィルタ121が、再構成画像に対してさらに、他の任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ121は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部116に供給し、それを符号化させるようにすることもできる。
フレームメモリ122は、演算部120から供給される再構成画像と、ループフィルタ121から供給される復号画像とをそれぞれ記憶する。フレームメモリ122は、所定のタイミングにおいて、若しくは、イントラ予測部124等の外部からの要求に基づいて、記憶している再構成画像を、選択部123を介してイントラ予測部124に供給する。また、フレームメモリ122は、所定のタイミングにおいて、若しくは、動き予測・補償部125等の外部からの要求に基づいて、記憶している復号画像を、選択部123を介して、動き予測・補償部125に供給する。
フレームメモリ122は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部123に供給する。
選択部123は、フレームメモリ122から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部123は、フレームメモリ122から供給される参照画像(カレントピクチャ内の画素値)を動き予測・補償部125に供給する。また、例えば、インター予測の場合、選択部123は、フレームメモリ122から供給される参照画像を動き予測・補償部125に供給する。
イントラ予測部124は、選択部123を介してフレームメモリ122から供給される参照画像であるカレントピクチャ内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部124は、予め用意された複数のイントラ予測モードでこのイントラ予測を行う。
イントラ予測部124は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ112から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部124は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部126に供給する。
また、上述したように、イントラ予測部124は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部116に供給し、符号化させる。
動き予測・補償部125は、画面並べ替えバッファ112から供給される入力画像と、選択部123を介してフレームメモリ122から供給される参照画像とを用いて動き予測(インター予測)を行う。動き予測・補償部125は、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部125は、予め用意された複数のインター予測モードでこのようなインター予測を行う。
動き予測・補償部125は、候補となる全てのインター予測モードで予測画像を生成する。動き予測・補償部125は、画面並べ替えバッファ112から供給される入力画像と、生成した差分動きベクトルの情報などを用いて、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部125は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部126に供給する。
動き予測・補償部125は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部116に供給し、符号化させる。必要な情報としては、例えば、生成された差分動きベクトルの情報や、予測動きベクトル情報として、予測動きベクトルのインデックスを示すフラグなどがある。
予測画像選択部126は、演算部113や演算部120に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部126は、予測画像の供給元としてイントラ予測部124を選択し、そのイントラ予測部124から供給される予測画像を演算部113や演算部120に供給する。また、例えば、インター符号化の場合、予測画像選択部126は、予測画像の供給元として動き予測・補償部125を選択し、その動き予測・補償部125から供給される予測画像を演算部113や演算部120に供給する。
レート制御部127は、蓄積バッファ117に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部115の量子化動作のレートを制御する。
直交変換スキップ部131は、直交変換部114における直交変換処理の実行、並びに、逆直交変換部119における逆直交変換処理の実行を制御する。例えば、直交変換スキップ部131は、直交変換部114から直交変換係数および直交変換前の差分値を取得する。また、例えば、直交変換スキップ部131は、可逆符号化部116からスキップ許可情報(transform_skip_enable_flag)を取得する。直交変換スキップ部131は、これらの情報に基づいて、直交変換処理や逆直交変換処理をスキップ(省略)するか否かを決定する。
直交変換スキップ部131は、その決定に基づいて、直交変換部114や逆直交変換部119を制御する。つまり、直交変換部114は、その直交変換スキップ部131の制御に従って、直交変換処理を行うか若しくはスキップする。同様に、逆直交変換部119も、その直交変換スキップ部131の制御に従って、逆直交変換処理を行うか若しくはスキップする。
また、直交変換スキップ部131は、その決定した内容、すなわち、直交変換処理や逆直交変換処理をスキップするか否かを示すスキップ識別情報(transform_skip_flag)を生成し、それを可逆符号化部116に供給する。可逆符号化部116は、そのスキップ識別情報(transform_skip_flag)を、例えば符号化データに含めて復号側に伝送する。なお、このスキップ識別情報は、符号化データとは別のデータとして復号側に伝送されるようにしてもよい。
さらに、直交変換スキップ部131は、スキップ許可情報(transform_skip_enable_flag)やスキップ識別情報(transform_skip_flag)を含む直交変換スキップに関する情報を、量子化制御部132に供給する。
量子化制御部132は、直交変換スキップ部131から供給される直交変換スキップに関する情報を取得する。また、量子化制御部132は、画面並べ替えバッファ112から、処理対象であるカレントスライス(カレントブロックが属するスライス)のスライスタイプを示す情報を取得する。量子化制御部132は、これらの情報に基づいて、カレントブロックに対する量子化・逆量子化においてカスタムスケーリングリストを適用するか、デフォルトスケーリングリストを適用するかを決定する。量子化制御部132は、適用するスケーリングリストを決定すると、そのスケーリングリストを量子化部115および逆量子化部118に供給する。
量子化部115は、量子化制御部132から供給されたスケーリングリストを用いて、カレントブロックに対する量子化を行う。また、逆量子化部118は、量子化制御部132から供給されたスケーリングリストを用いて、カレントブロックに対する逆量子化を行う。
[量子化制御部]
図9は、図8の量子化制御部132の主な構成例を示すブロック図である。図9に示されるように、量子化制御部132は、判定部151およびスケーリングリスト設定部152を有する。
図9に示されるように、直交変換スキップ部131は、直交変換スキップに関する情報を、判定部151に供給する。また、画面並べ替えバッファ112は、カレントスライスのスライスタイプを示す情報を、判定部151に供給する。
判定部151は、これらの情報の判定を行う。例えば、判定部151は、スキップ許可情報やスキップ識別情報の値を判定する。また、例えば、判定部151は、カレントスライスがIスライスであるか否かを判定する。判定部151は、これらの判定結果をスケーリングリスト設定部152に供給する。
スケーリングリスト設定部152は、判定部151から供給される判定結果に基づいて、カレントブロックの量子化・逆量子化において使用するスケーリングリストを設定する。例えば、スキップ許可情報およびスキップ識別情報の値が両方とも真であり、Iスライスである場合、スケーリングリスト設定部152は、カスタムスケーリングリストを適用する。また、スキップ許可情報およびスキップ識別情報の内、少なくともいずれか一方の値が偽である場合、若しくは、Iスライスでない場合、スケーリングリスト設定部152は、デフォルトスケーリングリストを適用する。
スケーリングリスト設定部152は、設定したスケーリングリストを量子化部115および逆量子化部118に供給する。量子化部115および逆量子化部118は、そのスケーリングリストを用いて、量子化処理・逆量子化処理を行う。
このようにすることにより、画像符号化装置100は、量子化誤差の増大を抑制し、符号化効率を向上させることができる。換言するに、画像符号化装置100は、符号化・復号による画質の低減を抑制することができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図10のフローチャートを参照して、符号化処理の流れの例を説明する。
符号化処理が開始されると、ステップS101において、画像符号化装置100の可逆符号化部116は、例えばユーザ指示等に基づいて、処理対象であるカレントピクチャについて、スキップ許可情報(transform_skip_enable_flag)を生成する。
ステップS102において、A/D変換部111は、入力された画像データをA/D変換する。ステップS103において、画面並べ替えバッファ112は、A/D変換された画像情報(デジタルデータ)を記憶し、各ピクチャを、表示する順番から符号化する順番へ並べ替える。
ステップS104において、イントラ予測部124は、イントラ予測モードのイントラ予測処理を行う。ステップS105において、動き予測・補償部125は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。ステップS106において、予測画像選択部126は、イントラ予測部124および動き予測・補償部125から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部126は、イントラ予測部124により生成された予測画像と、動き予測・補償部125により生成された予測画像のいずれか一方を選択する。
ステップS107において、演算部113は、ステップS103の処理により並び替えられた画像と、ステップS106の処理により選択された予測画像との差分を演算する。差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS108において、直交変換スキップ部131は、処理対象であるカレントブロックの直交変換スキップを行うか否かを決定する。ステップS109において、直交変換部114は、ステップS108の処理結果に従って、ステップS107の処理により生成された差分情報に対する直交変換処理を行う。例えば、ステップS108において、カレントブロックに対して直交変換を行うと決定された場合、直交変換部114は、ステップS109において、直交変換を行う。また、例えば、ステップS108において、カレントブロックに対して直交変換を行わないと決定された場合、直交変換部114は、ステップS109において、直交変換をスキップする。
ステップS110において、量子化制御部132は、ステップS108の処理結果に従って、量子化制御処理を行う。ステップS111において、量子化部115は、レート制御部127により算出された量子化パラメータ、並びに、ステップS110において設定されたスケーリングリストを用いて、ステップS109の処理により得られた直交変換係数若しくは直交変換前差分値を量子化する。
ステップS110の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS112において、逆量子化部118は、ステップS111の処理により生成された量子化された係数(量子化係数とも称する)を、ステップS110において設定されたスケーリングリストを用いて逆量子化する。ステップS113において、逆直交変換部119は、ステップS112の処理により得られた直交変換係数若しくは直交変換前差分値に対する逆直交変換処理を、ステップS108の処理結果に従って行う。
ステップS114において、演算部120は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部113への入力に対応する画像)を生成する。
ステップS115においてループフィルタ121は、ステップS114の処理により生成された画像をフィルタリングする。これによりブロック歪み等が除去される。
ステップS116において、フレームメモリ122は、ステップS115の処理によりブロック歪みの除去等が行われた画像を記憶する。なお、フレームメモリ122にはループフィルタ121によりフィルタ処理されていない画像も演算部120から供給され、記憶される。このフレームメモリ122に記憶された画像は、ステップS104の処理やステップS105の処理に利用される。
ステップS117において、可逆符号化部116は、ステップS111の処理により量子化された係数を符号化する。すなわち、差分画像に対応するデータに対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、このとき、可逆符号化部116は、ステップS106の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部116は、イントラ予測部124から供給される最適イントラ予測モード情報、または、動き予測・補償部125から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
なお、可逆符号化部116は、さらに、例えばスキップ識別情報(transform_skip_flag)等のような直交変換スキップに関する情報等も、適宜符号化し、符号化データに付加する。
ステップS118において蓄積バッファ117は、ステップS117の処理により得られたベースレイヤ符号化データを蓄積する。蓄積バッファ117に蓄積されたベースレイヤ符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS119においてレート制御部127は、ステップS118の処理により蓄積バッファ117に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部115の量子化動作のレートを制御する。また、レート制御部127は、量子化パラメータに関する情報を、量子化部115に供給する。
ステップS119の処理が終了すると、符号化処理が終了する。この符号化処理は、例えば、ピクチャ単位で実行される。つまり、各ピクチャに対して符号化処理が実行される。ただし、符号化処理内の各処理は、それぞれの処理単位毎に行われる。
[量子化制御処理の流れ]
次に、図10のステップS110において実行される量子化制御処理の流れの例を、図11のフローチャートを参照して説明する。
量子化制御処理が開始されると、判定部151は、ステップS131において、直交変換スキップに関する情報を、直交変換スキップ部131から取得する。
ステップS132において、判定部151は、ステップS131において取得した直交変換スキップに関する情報に含まれるスキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)であるか否かを判定する。スキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)であると判定された場合、処理は、ステップS133に進む。
ステップS133において、判定部151は、ステップS131において取得した直交変換スキップに関する情報に含まれるスキップ識別情報(transform_skip_flag)の値が真(例えば「1」)であるか否かを判定する。スキップ識別情報(transform_skip_flag)の値が真(例えば「1」)であると判定された場合、処理は、ステップS134に進む。
ステップS134において、判定部151は、画面並べ替えバッファ112から供給されるスライスタイプに関する情報を取得する。ステップS135において、判定部151は、ステップS134において取得されたスライスタイプに関する情報に基づいて、カレントスライスがIスライスであるか否かを判定する。Iスライスであると判定した場合、処理をステップS136に進める。
ステップS136において、スケーリングリスト設定部152は、カレントブロックの量子化に用いるスケーリングリストとして、カスタムスケーリングリストを適用する。ステップS136の処理が終了すると、処理はステップS138に進む。
また、ステップS132において、スキップ許可情報(transform_skip_enable_flag)の値が偽であると判定された場合、ステップS133において、スキップ識別情報(transform_skip_flag)の値が偽であると判定された場合、若しくは、ステップS135において、カレントスライスがIスライスでないと判定された場合、処理は、ステップS137に進む。
ステップS137において、スケーリングリスト設定部152は、カレントブロックの量子化に用いるスケーリングリストとして、デフォルトスケーリングリストを適用する。ステップS137の処理が終了すると、処理はステップS138に進む。
ステップS138において、判定部151は、全てのブロック(TU)を処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理は、ステップS131に戻り、それ以降の処理を繰り返す。ステップS131乃至ステップS138の処理が繰り返し実行されることにより各ブロックについて処理が行われ、ステップS138において、全てのブロック(TU)を処理したと判定された場合、量子化制御処理が終了し、処理は、図10に戻る。
以上のように各処理を実行することにより、画像符号化装置100は、量子化誤差の増大を抑制し、符号化効率の低減を抑制し、符号化・復号による画質の低減を抑制することができる。
<2.第2の実施の形態>
[画像復号装置]
次に、以上のように符号化された符号化データ(ビットストリーム)の復号について説明する。図12は、画像処理装置の一実施の形態である画像復号装置の主な構成例を示すブロック図である。図12に示される画像復号装置200は、図8の画像符号化装置100の符号化方式に対応する復号方式で符号化データを復号する復号装置である。例えば、画像復号装置200は、画像符号化装置100により画像データが符号化されて得られた符号化データを復号する。
図12に示されるように画像復号装置200は、蓄積バッファ211、可逆復号部212、逆量子化部213、逆直交変換部214、演算部215、ループフィルタ216、画面並べ替えバッファ217、およびD/A変換部218を有する。また、画像復号装置200は、フレームメモリ219、選択部220、イントラ予測部221、動き予測・補償部222、および選択部223を有する。
さらに、画像復号装置200は、逆直交変換スキップ部231および逆量子化制御部232を有する。
蓄積バッファ211は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ211は、伝送されてきた符号化データを受け取って、蓄積し、所定のタイミングにおいてその符号化データを可逆復号部212に供給する。この符号化データには、予測モード情報、直交変換スキップに関する情報(例えば、スキップ許可情報やスキップ識別情報を含む)、スライスタイプなどのスライスに関する情報等、復号に必要な情報が付加されている。
可逆復号部212は、蓄積バッファ211より供給された、可逆符号化部116により符号化された情報を、可逆符号化部116の符号化方式に対応する方式で復号する。可逆復号部212は、復号して得られた差分画像の量子化された係数データを、逆量子化部213に供給する。
また、可逆復号部212は、符号化データに含まれるビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)等を含むNALユニットを適宜抽出し、取得する。可逆復号部212は、それらの情報から、最適な予測モードに関する情報を抽出し、その情報に基づいて最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部221および動き予測・補償部222の内、選択されたと判定したモードの方に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報がイントラ予測部221に供給される。また、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報が動き予測・補償部222に供給される。
さらに、可逆復号部212は、例えば、量子化パラメータ等の、逆量子化に必要な情報をNALユニット等から抽出し、それを逆量子化部213に供給する。また、可逆復号部212は、例えば、スライスタイプ等の、逆量子化の制御に必要な情報をNALユニット等から抽出し、それを逆量子化制御部232に供給する。
さらに、可逆復号部212は、例えば、スキップ許可情報(transform_skip_enable_flag)やスキップ識別情報(transform_skip_flag)等を含む直交変換スキップに関する情報を、NALユニット等から抽出し、逆直交変換スキップ部231に供給する。
逆量子化部213は、可逆復号部212により復号されて得られた量子化された係数データ(量子化係数)を、量子化部115の量子化方式に対応する方式で逆量子化する。逆量子化部213は、逆量子化制御部232より供給されるスケーリングリストを用いて、逆量子化を行う。逆量子化部213は、得られた係数データ(直交変換係数若しくは直交変換前差分値)を逆直交変換部214に供給する。
なお、この逆量子化部213は、逆量子化部118と同様の処理部である。つまり、逆量子化部213の説明は、逆量子化部118にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
逆直交変換部214は、逆直交変換スキップ部231の制御に基づいて、逆量子化部213から供給される係数データ(直交変換係数若しくは直交変換前差分値)を、必要に応じて、直交変換部114の直交変換方式に対応する方式で逆直交変換する。つまり、逆直交変換部214は、逆量子化部213から直交変換係数が供給される場合、その直交変換係数を逆直交変換する。また、逆直交変換部214は、逆量子化部213から直交変換前差分値が供給される場合、逆直交変換をスキップする。
逆直交変換部214は、このような逆直交変換処理により、直交変換部114において直交変換される前の残差データ(直交変換前差分値)に対応する復号残差データを得る。逆直交変換部214は、この復号残差データを演算部215に供給する。
なお、この逆直交変換部214は、逆直交変換部119と同様の処理部である。つまり、逆直交変換部214の説明は、逆直交変換部119にも準用することができる。ただし、データの入出力先等は、装置に応じて適宜、変えて読む必要がある。
演算部215には、この他に、選択部223を介して、イントラ予測部221若しくは動き予測・補償部222から予測画像が供給される。
演算部215は、その復号残差データと予測画像とを加算し、演算部113により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部215は、その復号画像データをループフィルタ216に供給する。
ループフィルタ216は、供給された復号画像に対して、デブロックフィルタや適応ループフィルタ等を含むフィルタ処理を適宜施し、それを画面並べ替えバッファ217およびフレームメモリ219に供給する。例えば、ループフィルタ216は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ216は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。なお、このループフィルタ216は、ループフィルタ121と同様の処理部である。
また、演算部215から出力される復号画像は、ループフィルタ216を介さずに画面並べ替えバッファ217やフレームメモリ219に供給することができる。つまり、ループフィルタ216によるフィルタ処理の一部若しくは全部は省略することができる。
画面並べ替えバッファ217は、復号画像の並べ替えを行う。すなわち、画面並べ替えバッファ112により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部218は、画面並べ替えバッファ217から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ219は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部221や動き予測・補償部222等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部220に供給する。
選択部220は、フレームメモリ219から供給される参照画像の供給先を選択する。選択部220は、イントラ符号化された画像を復号する場合、フレームメモリ219から供給される参照画像をイントラ予測部221に供給する。また、選択部220は、インター符号化された画像を復号する場合、フレームメモリ219から供給される参照画像を動き予測・補償部222に供給する。
イントラ予測部221には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部212から適宜供給される。イントラ予測部221は、イントラ予測部124において用いられたイントラ予測モードで、フレームメモリ219から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部221は、生成した予測画像を選択部223に供給する。
動き予測・補償部222は、ヘッダ情報を復号して得られた情報(最適予測モード情報、参照画像情報等)を可逆復号部212から取得する。
動き予測・補償部222は、可逆復号部212から取得された最適予測モード情報が示すインター予測モードで、フレームメモリ219から取得した参照画像を用いてインター予測を行い、予測画像を生成する。
選択部223は、イントラ予測部221からの予測画像または動き予測・補償部222からの予測画像を、演算部215に供給する。そして、演算部215においては、動きベクトルが用いられて生成された予測画像と逆直交変換部214からの復号残差データ(差分画像情報)とが加算されて元の画像が復号される。
逆直交変換スキップ部231は、直交変換スキップ部131と同様の方法で、逆直交変換部214における逆直交変換処理の実行を制御する。つまり、逆直交変換スキップ部231は、符号化側から供給される直交変換スキップに関する情報(例えばスキップ許可情報やスキップ識別情報)を、可逆復号部212を介して取得する。逆直交変換スキップ部231は、その情報に基づいて逆直交変換処理をスキップ(省略)するか否かを決定し、その決定に従って逆直交変換部214における逆直交変換処理の実行を制御する。
この決定方法が直交変換スキップ部131と同様であるので、逆直交変換スキップ部231は、直交変換が行われたブロックに対して逆直交変換処理を行うように、また、直交変換がスキップされたブロックに対して逆直交変換処理をスキップするように、逆直交変換部214を制御する。
逆直交変換部214は、その逆直交変換スキップ部231の制御に従って、逆直交変換処理を行うか若しくはスキップする。
また、逆直交変換スキップ部231は、得られたスキップ許可情報やスキップ識別情報を含む直交変換スキップに関する情報を、逆量子化制御部232に供給する。
逆量子化制御部232は、量子化制御部132と同様の方法で、逆量子化部213における逆量子化処理の実行を制御する。つまり、逆量子化制御部232は、逆直交変換スキップ部231から供給される、符号化側から伝送された直交変換スキップに関する情報を取得する。また、逆量子化制御部232は、可逆復号部212が符号化データから抽出したカレントスライスのスライスタイプを示す情報を取得する。逆量子化制御部232は、これらの情報に基づいて、カレントブロックに対する逆量子化において適用するスケーリングリストを決定し、そのスケーリングリストを逆量子化部213に供給する。
このスケーリングリストの決定方法が量子化制御部132と同様であるので、逆量子化制御部232は、直交変換が行われたブロックに対してデフォルトスケーリングリストを適用し、また、直交変換がスキップされたブロックに対してカスタムスケーリングリストを適用する。逆量子化部213は、逆量子化制御部232から供給されたスケーリングリストを用いて、カレントブロックに対する逆量子化を行う。
[逆量子化制御部]
図13は、図12の逆量子化制御部232の主な構成例を示すブロック図である。図13に示されるように、逆量子化制御部232は、基本的に量子化制御部132と同様であり、判定部251およびスケーリングリスト設定部252を有する。
図13に示されるように、逆直交変換スキップ部231は、直交変換スキップに関する情報を、判定部251に供給する。また、可逆復号部212は、カレントスライスのスライスタイプを示す情報を、判定部251に供給する。
判定部251は、これらの情報の判定を行う。例えば、判定部251は、スキップ許可情報やスキップ識別情報の値を判定する。また、例えば、判定部251は、カレントスライスがIスライスであるか否かを判定する。判定部251は、これらの判定結果をスケーリングリスト設定部252に供給する。
スケーリングリスト設定部252は、判定部251から供給される判定結果に基づいて、カレントブロックの逆量子化において使用するスケーリングリストを設定する。例えば、スキップ許可情報およびスキップ識別情報の値が両方とも真であり、Iスライスである場合、スケーリングリスト設定部252は、カスタムスケーリングリストを適用する。また、スキップ許可情報およびスキップ識別情報の内、少なくともいずれか一方の値が偽である場合、若しくは、Iスライスでない場合、スケーリングリスト設定部252は、デフォルトスケーリングリストを適用する。
スケーリングリスト設定部252は、設定したスケーリングリストを逆量子化部213に供給する。逆量子化部213は、そのスケーリングリストを用いて、逆量子化処理を行う。
このようにすることにより、画像復号装置200は、量子化誤差の増大を抑制し、符号化効率を向上させることができる。換言するに、画像復号装置200は、符号化・復号による画質の低減を抑制することができる。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図14のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ211は、符号化側から伝送されたビットストリームを蓄積する。ステップS202において、可逆復号部212は、蓄積バッファ211から供給されるビットストリーム(符号化された差分画像情報)を復号する。すなわち、可逆符号化部116により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。このとき、ヘッダ情報などのビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS203において、逆量子化制御部232は、逆量子化制御処理を行い、適用するスケーリングリストを設定する。
ステップS204において、逆量子化部213は、ステップS203において設定されたスケーリングリストを用いて、ステップS202の処理により得られた、量子化された係数を逆量子化する。
ステップS205において、逆直交変換部214は、逆直交変換スキップ部231の制御に基づいてカレントブロック(カレントTU)についての逆直交変換を適宜行う逆直交変換処理を行う。
ステップS206において、イントラ予測部221若しくは動き予測・補償部222は、予測処理を行い、予測画像を生成する。つまり、可逆復号部212において判定された、符号化の際に適用された予測モードで予測処理が行われる。より具体的には、例えば、符号化の際にイントラ予測が適用された場合、イントラ予測部221が、符号化の際に最適とされたイントラ予測モードで予測画像を生成する。また、例えば、符号化の際にインター予測が適用された場合、動き予測・補償部222が、符号化の際に最適とされたインター予測モードで予測画像を生成する。
ステップS207において、演算部215は、ステップS205の逆直交変換処理により得られた差分画像情報に、ステップS207において生成された予測画像を加算する。これにより元の画像が復号される(復号画像が得られる)。
ステップS208において、ループフィルタ216は、ステップS207において得られた復号画像に対して、各種のフィルタ処理を適宜行うループフィルタ処理を行う。
ステップS209において、画面並べ替えバッファ217は、ステップS208においてループフィルタ処理された画像の並べ替えを行う。すなわち画面並べ替えバッファ112により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS210において、D/A変換部218は、ステップS209においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS211において、フレームメモリ219は、ステップS208においてループフィルタ処理された画像を記憶する。
ステップS211の処理が終了すると、復号処理が終了する。この復号処理は、例えば、ピクチャ単位で実行される。つまり、各ピクチャに対して復号処理が実行される。ただし、復号処理内の各処理は、それぞれの処理単位毎に行われる。
[量子化制御処理の流れ]
次に、図14のステップS203において実行される逆量子化制御処理の流れの例を、図15のフローチャートを参照して説明する。
逆量子化制御処理が開始されると、判定部251は、ステップS231において、直交変換スキップに関する情報を取得する。
ステップS232において、判定部251は、ステップS231において取得した直交変換スキップに関する情報に含まれるスキップ許可情報(transform_skip_enable_flag)の値が真(例えば「1」)であるか否かを判定する。その値が真(例えば「1」)であると判定された場合、処理は、ステップS233に進む。
ステップS233において、判定部251は、ステップS231において取得した直交変換スキップに関する情報に含まれるスキップ識別情報(transform_skip_flag)の値が真(例えば「1」)であるか否かを判定する。その値が真(例えば「1」)であると判定された場合、処理は、ステップS234に進む。
ステップS234において、判定部251は、スライスタイプに関する情報を取得する。ステップS235において、判定部251は、ステップS234において取得されたスライスタイプに関する情報に基づいて、カレントスライスがIスライスであるか否かを判定する。Iスライスであると判定した場合、処理はステップS236に進む。
ステップS236において、スケーリングリスト設定部252は、カレントブロックの量子化に用いるスケーリングリストとして、カスタムスケーリングリストを適用する。ステップS236の処理が終了すると、処理はステップS238に進む。
また、ステップS232において、スキップ許可情報(transform_skip_enable_flag)の値が偽であると判定された場合、ステップS233において、スキップ識別情報(transform_skip_flag)の値が偽であると判定された場合、若しくは、ステップS235において、カレントスライスがIスライスでないと判定された場合、処理は、ステップS237に進む。
ステップS237において、スケーリングリスト設定部252は、カレントブロックの量子化に用いるスケーリングリストとして、デフォルトスケーリングリストを適用する。ステップS236の処理が終了すると、処理はステップS238に進む。
ステップS238において、判定部251は、全てのブロック(TU)を処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理は、ステップS231に戻り、それ以降の処理を繰り返す。ステップS231乃至ステップS238の処理が繰り返し実行されることにより各ブロックについて処理が行われ、ステップS238において、全てのブロック(TU)を処理したと判定された場合、逆量子化制御処理が終了し、処理は、図14に戻る。
以上のように各処理を実行することにより、画像復号装置200は、量子化誤差の増大を抑制し、符号化効率の低減を抑制し、符号化・復号による画質の低減を抑制することができる。
<3.第3の実施の形態>
[スライス端の検出]
以上において説明した量子化・逆量子化の制御(スケーリングリストの設定)において、さらに、スライス端(スライス境界)の検出を行い、その検出結果を制御に反映させるようにしてもよい。
スライスは、ピクチャ(画像)内の独立に符号化される処理の単位である。ピクチャ内には、任意の数の(単数若しくは複数の)スライスが形成される。イントラ予測もスライス毎に独立に行われる。つまり、イントラ予測において参照する参照画素もカレントブロックが属するスライス内に制限される。つまり、スライス端(スライス境界)に接するブロックでは、参照される方向が制限される可能性がある。
そこで、このような制限をカスタムスケーリングリストに反映させるようにしてもよい。
例えば、スライスの下端に接するブロック(画面下端のブロックを含む)は、それより下の他のブロックから参照されない。つまり、このようなブロックにおいて、参照される可能性のある画素は、右端の列のみとなる。そこで、そのようなブロックに対しては、図16に示される例のようなカスタムスケーリングリストを適用するようにしてもよい。
このカスタムスケーリングリストは、図16に示されるように、イントラ予測において参照される可能性のある画素に対応する、右端の列の量子化ステップの値のみが小さく設定されている。
また、例えば、スライスの右端に接するブロック(画面右端のブロックを含む)は、それより右の他のブロックから参照されない。つまり、このようなブロックにおいて、参照される可能性のある画素は、下端の行のみとなる。そこで、そのようなブロックに対しては、図17に示される例のようなカスタムスケーリングリストを適用するようにしてもよい。
このカスタムスケーリングリストは、図17に示されるように、イントラ予測において参照される可能性のある画素に対応する、下端の行の量子化ステップの値のみが小さく設定されている。
図16および図17に示されるように、これらのカスタムスケーリングリストは、値を小さくする量子化ステップの数が、図5乃至図7の例よりも少ない。つまり、これらのカスタムスケーリングリストでは、実際には参照される可能性の無い画素に対応する量子化ステップが小さくされない。したがって、スライス端(スライス境界)を検出し、その検出結果を反映したカスタムスケーリングリストを量子化・逆量子化に適用することにより、量子化ステップを不要に小さくすることによる符号量の不要な増大を抑制することができる。これにより、符号化・復号による画質の低減を抑制することができる。
なお、この場合も、以上に説明した場合と同様に、イントラ予測において参照される可能性の無い画素に対応する量子化ステップの値は均一でなくてもよく、イントラ予測において参照される可能性のある画素に対応する量子化ステップの値も均一でなくてもよい。例えば、イントラ予測において参照される可能性のある画素に対応する部分の各量子化ステップが、それぞれが対応する画素のイントラ予測において参照される可能性の高さに応じた値を有するようにしてもよい。イントラ予測において参照される可能性のある画素に対応する量子化ステップの値を小さくする代わりに、イントラ予測において参照される可能性の無い画素に対応する量子化ステップの値を大きくしても良い。
[量子化制御部]
図18は、この場合の量子化制御部132の主な構成例を示すブロック図である。図18に示されるように、この場合、量子化制御部132は、判定部151およびスケーリングリスト設定部152に加え、さらに、スライス端検出部301を有する。
画面並べ替えバッファ112は、スライス端(スライス境界)を示す情報をスライス端検出部301に供給する。スライス端検出部301は、その情報に基づいてカレントブロックがスライス端に接するか否かを判定する。スライス端検出部301は、その検出結果をスケーリングリスト設定部152に供給する。
スケーリングリスト設定部152は、第1の実施の形態において説明したように、カスタムスケーリングリストを適用するか、デフォルトスケーリングリストを適用するかを選択し、カスタムスケーリングリストを適用する場合、スライス端検出部301から供給されるスライス端の検出結果に応じたカスタムスケーリングリストを適用する。
スケーリングリスト設定部152は、設定したカスタムスケーリングリストを量子化部15および逆量子化部118に供給する。
このようにすることにより、画像符号化装置100は、量子化ステップを不要に小さくすることによる量子化誤差の不要な増大を抑制し、符号量の不要な増大を抑制し、符号化・復号による画質の低減を抑制することができる。
[量子化制御処理の流れ]
次に、この場合の、量子化制御部132により実行される量子化制御処理の流れの例を図19のフローチャートを参照して説明する。
この場合も、量子化制御処理は、基本的に第1の実施の形態の場合と同様に行われる。つまり、ステップS301乃至ステップS305の各処理は、図11のステップS131乃至ステップS135の各処理と同様に行われる。
ステップS306において、スライス端検出部301は、スライス端の検出を行う。ステップS307において、スケーリングリスト設定部152は、スライス端の検出結果に応じたカスタムスケーリングリストを適用する。ステップS307の処理が終了すると、処理は、ステップS309に進む。
また、ステップS302において、スキップ許可情報(transform_skip_enable_flag)の値が偽であると判定された場合、ステップS303において、スキップ識別情報(transform_skip_flag)の値が偽であると判定された場合、若しくは、ステップS305において、カレントスライスがIスライスでないと判定された場合、処理は、ステップS308に進む。
ステップS308において、スケーリングリスト設定部152は、カレントブロックの量子化に用いるスケーリングリストとして、デフォルトスケーリングリストを適用する。ステップS308の処理が終了すると、処理はステップS309に進む。
ステップS309において、判定部151は、全てのブロック(TU)を処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理は、ステップS301に戻り、それ以降の処理を繰り返す。ステップS301乃至ステップS309の処理が繰り返し実行されることにより各ブロックについて処理が行われ、ステップS309において、全てのブロック(TU)を処理したと判定された場合、量子化制御処理が終了し、処理は、図10に戻る。
以上のように各処理を実行することにより、画像符号化装置100は、量子化誤差の増大を抑制し、符号化効率の低減を抑制し、符号化・復号による画質の低減を抑制することができる。
<4.第4の実施の形態>
[逆量子化制御部]
図20は、この場合の逆量子化制御部232の主な構成例を示すブロック図である。図20に示されるように、この場合、逆量子化制御部232は、判定部251およびスケーリングリスト設定部252に加え、さらに、スライス端検出部401を有する。スライス端検出部401は、基本的に、スライス端検出部301と同様の処理部である。
可逆復号部212は、符号化データから抽出したスライス端(スライス境界)を示す情報をスライス端検出部401に供給する。スライス端検出部401は、その情報に基づいてカレントブロックがスライス端に接するか否かを判定する。スライス端検出部401は、その検出結果をスケーリングリスト設定部252に供給する。
スケーリングリスト設定部252は、第2の実施の形態において説明したように、カスタムスケーリングリストを適用するか、デフォルトスケーリングリストを適用するかを選択し、カスタムスケーリングリストを適用する場合、スライス端検出部401から供給されるスライス端の検出結果に応じたカスタムスケーリングリストを適用する。
スケーリングリスト設定部252は、設定したカスタムスケーリングリストを逆量子化部213に供給する。
このようにすることにより、画像復号装置200は、量子化ステップを不要に小さくすることによる量子化誤差の不要な増大を抑制し、符号量の不要な増大を抑制し、符号化・復号による画質の低減を抑制することができる。
[逆量子化制御処理の流れ]
次に、この場合の、逆量子化制御部232により実行される逆量子化制御処理の流れの例を図21のフローチャートを参照して説明する。
この場合も、逆量子化制御処理は、基本的に第2の実施の形態の場合と同様に行われる。つまり、ステップS401乃至ステップS405の各処理は、図11のステップS231乃至ステップS235の各処理と同様に行われる。
ステップS406において、スライス端検出部401は、スライス端の検出を行う。ステップS407において、スケーリングリスト設定部252は、スライス端の検出結果に応じたカスタムスケーリングリストを適用する。ステップS407の処理が終了すると、処理は、ステップS409に進む。
また、ステップS402において、スキップ許可情報(transform_skip_enable_flag)の値が偽であると判定された場合、ステップS403において、スキップ識別情報(transform_skip_flag)の値が偽であると判定された場合、若しくは、ステップS405において、カレントスライスがIスライスでないと判定された場合、処理は、ステップS408に進む。
ステップS408において、スケーリングリスト設定部252は、カレントブロックの量子化に用いるスケーリングリストとして、デフォルトスケーリングリストを適用する。ステップS408の処理が終了すると、処理はステップS309に進む。
ステップS409において、判定部251は、全てのブロック(TU)を処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理は、ステップS401に戻り、それ以降の処理を繰り返す。ステップS401乃至ステップS409の処理が繰り返し実行されることにより各ブロックについて処理が行われ、ステップS409において、全てのブロック(TU)を処理したと判定された場合、逆量子化制御処理が終了し、処理は、図14に戻る。
以上のように各処理を実行することにより、画像復号装置200は、量子化誤差の増大を抑制し、符号化効率の低減を抑制し、符号化・復号による画質の低減を抑制することができる。
<5.第5の実施の形態>
[多視画像点符号化・多視点画像復号への適用]
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図22は、多視点画像符号化方式の一例を示す。
図22に示されるように、多視点画像は、複数の視点の画像を含み、その複数の視点のうちの所定の1つの視点の画像が、ベースビューの画像に指定されている。ベースビューの画像以外の各視点の画像は、ノンベースビューの画像として扱われる。
図22のような多視点画像を符号化・復号する場合、各ビューの画像を符号化・復号するが、この各ビューの符号化・復号に対して、上述したいずれかの実施の形態の方法を適用するようにしてもよい。このようにすることにより、量子化誤差の低減を実現し、符号化・復号による画質の低減の抑制を実現することができることができる。
さらに、各ビューの符号化・復号において、上述した各実施の形態の方法において使用されるフラグやパラメータを共有するようにしてもよい。
より具体的には、例えば、スキップ許可情報(transform_skip_enable_flag)や、スキップ識別情報(transform_skip_flag)等の情報を含む直交変換処理のスキップに関する情報を、各ビューの符号化・復号において共有するようにしてもよい。また、例えば、スライスタイプやスライス境界に関する情報を、各ビューの符号化・復号において共有するようにしてもよい。
もちろん、これら以外の必要な情報も、各ビューの符号化・復号において共有するようにしてもよい。
[多視点画像符号化装置]
図23は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図23に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
この多視点画像符号化装置600の符号化部601および符号化部602に対して、画像符号化装置100を適用することができる。また、上述したように、符号化部601および符号化部602は、互いに同一のフラグやパラメータを用いて、スケーリングリストの設定等を行うことができる(すなわち、フラグやパラメータを共有することができる)。
[多視点画像復号装置]
図24は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図24に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
この多視点画像復号装置610の復号部612および復号部613に対して、画像復号装置200を適用することができる。また、上述したように、復号部612および復号部613は、互いに同一のフラグやパラメータを用いて、スケーリングリストの設定等を行うことができる(すなわち、フラグやパラメータを共有することができる)。
<6.第6の実施の形態>
[階層画像点符号化・階層画像復号への適用]
上述した一連の処理は、階層画像符号化・階層画像復号に適用することができる。図25は、多視点画像符号化方式の一例を示す。
図25に示されるように、階層画像は、複数の階層(解像度)の画像を含み、その複数の解像度のうちの所定の1つの階層の画像が、ベースレイヤの画像に指定されている。ベースレイヤの画像以外の各階層の画像は、ノンベースレイヤの画像として扱われる。
図25のような階層画像を符号化・復号する場合、各階層の画像を符号化・復号するが、この各階層の符号化・復号に対して、上述したいずれかの実施の形態の方法を適用するようにしてもよい。このようにすることにより、画像劣化を抑えながら、メモリアクセス量および演算量の削減を実現させることができる。
さらに、各階層の符号化・復号において、上述した各実施の形態の方法において使用されるフラグやパラメータを共有するようにしてもよい。
より具体的には、例えば、スキップ許可情報(transform_skip_enable_flag)や、スキップ識別情報(transform_skip_flag)等の情報を含む直交変換処理のスキップに関する情報を、各階層の符号化・復号において共有するようにしてもよい。また、例えば、スライスタイプやスライス境界に関する情報を、各階層の符号化・復号において共有するようにしてもよい。
もちろん、これら以外の必要な情報も、各階層の符号化・復号において共有するようにしてもよい。
[階層画像符号化装置]
図26は、上述した階層画像符号化を行う階層画像符号化装置を示す図である。図26に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、および多重化部623を有する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
この階層画像符号化装置620の符号化部621および符号化部622に対して、画像符号化装置100を適用することができる。上述したように、符号化部621および符号化部622は、互いに同一のフラグやパラメータを用いて、スケーリングリストの設定等を行うことができる(すなわち、フラグやパラメータを共有することができる)。
[階層画像復号装置]
図27は、上述した階層画像復号を行う階層画像復号装置を示す図である。図27に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、および復号部633を有する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを復号し、ノンベースレイヤ画像を得る。
この階層画像復号装置630の復号部632および復号部633に対して、画像復号装置200を適用することができる。上述したように、復号部632および復号部633は、互いに同一のフラグやパラメータを用いて、スケーリングリストの設定等を行うことができる(すなわち、フラグやパラメータを共有することができる)。
さらに、本技術は、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択して使用する、例えばMPEG DASH等のようなHTTPストリーミングにも適用することができる。
以上のように、本技術の適用範囲は、量子化・逆量子化処理と、直交変換・逆直交変換のスキップ(Transform Skip)を用いる符号化・復号方式に基づくあらゆる画像符号化装置及び画像復号装置に適用することができる。
また、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる直交変換装置若しくは逆直交変換装置にも適用することができる。
<7.第7の実施の形態>
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図28は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図28に示されるコンピュータ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つの応用例について説明する。
<8.応用例>
[第1の応用例:テレビジョン受像機]
図29は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース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の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、量子化誤差の低減を実現し、符号化・復号による画質の低減の抑制を実現することができることができる。
[第2の応用例:携帯電話機]
図30は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部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の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、量子化誤差の低減を実現し、符号化・復号による画質の低減の抑制を実現することができる。
[第3の応用例:記録再生装置]
図31は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置100の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置200の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、量子化誤差の低減を実現し、符号化・復号による画質の低減の抑制を実現することができる。
[第4の応用例:撮像装置]
図32は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース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の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、量子化誤差の低減を実現し、符号化・復号による画質の低減の抑制を実現することができる。
<9.スケーラブル符号化の応用例>
[第1のシステム]
次に、スケーラブル符号化(階層符号化)されたスケーラブル符号化データの具体的な利用例について説明する。スケーラブル符号化は、例えば、図33に示される例のように、伝送するデータの選択のために利用される。
図33に示されるデータ伝送システム1000において、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを読み出し、ネットワーク1003を介して、パーソナルコンピュータ1004、AV機器1005、タブレットデバイス1006、および携帯電話機1007等の端末装置に配信する。
その際、配信サーバ1002は、端末装置の能力や通信環境等に応じて、適切な品質の符号化データを選択して伝送する。配信サーバ1002が不要に高品質なデータを伝送しても、端末装置において高画質な画像を得られるとは限らず、遅延やオーバフローの発生要因となる恐れがある。また、不要に通信帯域を占有したり、端末装置の負荷を不要に増大させたりしてしまう恐れもある。逆に、配信サーバ1002が不要に低品質なデータを伝送しても、端末装置において十分な画質の画像を得ることができない恐れがある。そのため、配信サーバ1002は、スケーラブル符号化データ記憶部1001に記憶されているスケーラブル符号化データを、適宜、端末装置の能力や通信環境等に対して適切な品質の符号化データとして読み出し、伝送する。
例えば、スケーラブル符号化データ記憶部1001は、スケーラブルに符号化されたスケーラブル符号化データ(BL+EL)1011を記憶するとする。このスケーラブル符号化データ(BL+EL)1011は、ベースレイヤとエンハンスメントレイヤの両方を含む符号化データであり、復号することにより、ベースレイヤの画像およびエンハンスメントレイヤの画像の両方を得ることができるデータである。
配信サーバ1002は、データを伝送する端末装置の能力や通信環境等に応じて、適切なレイヤを選択し、そのレイヤのデータを読み出す。例えば、配信サーバ1002は、処理能力の高いパーソナルコンピュータ1004やタブレットデバイス1006に対しては、高品質なスケーラブル符号化データ(BL+EL)1011をスケーラブル符号化データ記憶部1001から読み出し、そのまま伝送する。これに対して、例えば、配信サーバ1002は、処理能力の低いAV機器1005や携帯電話機1007に対しては、スケーラブル符号化データ(BL+EL)1011からベースレイヤのデータを抽出し、スケーラブル符号化データ(BL+EL)1011と同じコンテンツのデータであるが、スケーラブル符号化データ(BL+EL)1011よりも低品質なスケーラブル符号化データ(BL)1012として伝送する。
このようにスケーラブル符号化データを用いることにより、データ量を容易に調整することができるので、遅延やオーバフローの発生を抑制したり、端末装置や通信媒体の負荷の不要な増大を抑制したりすることができる。また、スケーラブル符号化データ(BL+EL)1011は、レイヤ間の冗長性が低減されているので、各レイヤの符号化データを個別のデータとする場合よりもそのデータ量を低減させることができる。したがって、スケーラブル符号化データ記憶部1001の記憶領域をより効率よく使用することができる。
なお、パーソナルコンピュータ1004乃至携帯電話機1007のように、端末装置には様々な装置を適用することができるので、端末装置のハードウエアの性能は、装置によって異なる。また、端末装置が実行するアプリケーションも様々であるので、そのソフトウエアの能力も様々である。さらに、通信媒体となるネットワーク1003も、例えばインターネットやLAN(Local Area Network)等、有線若しくは無線、またはその両方を含むあらゆる通信回線網を適用することができ、そのデータ伝送能力は様々である。さらに、他の通信等によっても変化する恐れがある。
そこで、配信サーバ1002は、データ伝送を開始する前に、データの伝送先となる端末装置と通信を行い、端末装置のハードウエア性能や、端末装置が実行するアプリケーション(ソフトウエア)の性能等といった端末装置の能力に関する情報、並びに、ネットワーク1003の利用可能帯域幅等の通信環境に関する情報を得るようにしてもよい。そして、配信サーバ1002が、ここで得た情報を基に、適切なレイヤを選択するようにしてもよい。
なお、レイヤの抽出は、端末装置において行うようにしてもよい。例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011を復号し、ベースレイヤの画像を表示しても良いし、エンハンスメントレイヤの画像を表示しても良い。また、例えば、パーソナルコンピュータ1004が、伝送されたスケーラブル符号化データ(BL+EL)1011から、ベースレイヤのスケーラブル符号化データ(BL)1012を抽出し、記憶したり、他の装置に転送したり、復号してベースレイヤの画像を表示したりするようにしてもよい。
もちろん、スケーラブル符号化データ記憶部1001、配信サーバ1002、ネットワーク1003、および端末装置の数はいずれも任意である。また、以上においては、配信サーバ1002がデータを端末装置に伝送する例について説明したが、利用例はこれに限定されない。データ伝送システム1000は、スケーラブル符号化された符号化データを端末装置に伝送する際、端末装置の能力や通信環境等に応じて、適切なレイヤを選択して伝送するシステムであれば、任意のシステムに適用することができる。
[第2のシステム]
また、スケーラブル符号化は、例えば、図34に示される例のように、複数の通信媒体を介する伝送のために利用される。
図34に示されるデータ伝送システム1100において、放送局1101は、地上波放送1111により、ベースレイヤのスケーラブル符号化データ(BL)1121を伝送する。また、放送局1101は、有線若しくは無線またはその両方の通信網よりなる任意のネットワーク1112を介して、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する(例えばパケット化して伝送する)。
端末装置1102は、放送局1101が放送する地上波放送1111の受信機能を有し、この地上波放送1111を介して伝送されるベースレイヤのスケーラブル符号化データ(BL)1121を受け取る。また、端末装置1102は、ネットワーク1112を介した通信を行う通信機能をさらに有し、このネットワーク1112を介して伝送されるエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を受け取る。
端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121を、復号してベースレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
また、端末装置1102は、例えばユーザ指示等に応じて、地上波放送1111を介して取得したベースレイヤのスケーラブル符号化データ(BL)1121と、ネットワーク1112を介して取得したエンハンスメントレイヤのスケーラブル符号化データ(EL)1122とを合成して、スケーラブル符号化データ(BL+EL)を得たり、それを復号してエンハンスメントレイヤの画像を得たり、記憶したり、他の装置に伝送したりする。
以上のように、スケーラブル符号化データは、例えばレイヤ毎に異なる通信媒体を介して伝送させることができる。したがって、負荷を分散させることができ、遅延やオーバフローの発生を抑制することができる。
また、状況に応じて、伝送に使用する通信媒体を、レイヤ毎に選択することができるようにしてもよい。例えば、データ量が比較的多いベースレイヤのスケーラブル符号化データ(BL)1121を帯域幅の広い通信媒体を介して伝送させ、データ量が比較的少ないエンハンスメントレイヤのスケーラブル符号化データ(EL)1122を帯域幅の狭い通信媒体を介して伝送させるようにしてもよい。また、例えば、エンハンスメントレイヤのスケーラブル符号化データ(EL)1122を伝送する通信媒体を、ネットワーク1112とするか、地上波放送1111とするかを、ネットワーク1112の利用可能帯域幅に応じて切り替えるようにしてもよい。もちろん、任意のレイヤのデータについて同様である。
このように制御することにより、データ伝送における負荷の増大を、より抑制することができる。
もちろん、レイヤ数は任意であり、伝送に利用する通信媒体の数も任意である。また、データ配信先となる端末装置1102の数も任意である。さらに、以上においては、放送局1101からの放送を例に説明したが、利用例はこれに限定されない。データ伝送システム1100は、スケーラブル符号化された符号化データを、レイヤを単位として複数に分割し、複数の回線を介して伝送するシステムであれば、任意のシステムに適用することができる。
[第3のシステム]
また、スケーラブル符号化は、例えば、図35に示される例のように、符号化データの記憶に利用される。
図35に示される撮像システム1200において、撮像装置1201は、被写体1211を撮像して得られた画像データをスケーラブル符号化し、スケーラブル符号化データ(BL+EL)1221として、スケーラブル符号化データ記憶装置1202に供給する。
スケーラブル符号化データ記憶装置1202は、撮像装置1201から供給されるスケーラブル符号化データ(BL+EL)1221を、状況に応じた品質で記憶する。例えば、通常時の場合、スケーラブル符号化データ記憶装置1202は、スケーラブル符号化データ(BL+EL)1221からベースレイヤのデータを抽出し、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222として記憶する。これに対して、例えば、注目時の場合、スケーラブル符号化データ記憶装置1202は、高品質でデータ量の多いスケーラブル符号化データ(BL+EL)1221のまま記憶する。
このようにすることにより、スケーラブル符号化データ記憶装置1202は、必要な場合のみ、画像を高画質に保存することができるので、画質劣化による画像の価値の低減を抑制しながら、データ量の増大を抑制することができ、記憶領域の利用効率を向上させることができる。
例えば、撮像装置1201が監視カメラであるとする。撮像画像に監視対象(例えば侵入者)が写っていない場合(通常時の場合)、撮像画像の内容は重要でない可能性が高いので、データ量の低減が優先され、その画像データ(スケーラブル符号化データ)は、低品質に記憶される。これに対して、撮像画像に監視対象が被写体1211として写っている場合(注目時の場合)、その撮像画像の内容は重要である可能性が高いので、画質が優先され、その画像データ(スケーラブル符号化データ)は、高品質に記憶される。
なお、通常時であるか注目時であるかは、例えば、スケーラブル符号化データ記憶装置1202が、画像を解析することにより判定しても良い。また、撮像装置1201が判定し、その判定結果をスケーラブル符号化データ記憶装置1202に伝送するようにしてもよい。
なお、通常時であるか注目時であるかの判定基準は任意であり、判定基準とする画像の内容は任意である。もちろん、画像の内容以外の条件を判定基準とすることもできる。例えば、収録した音声の大きさや波形等に応じて切り替えるようにしてもよいし、所定の時間毎に切り替えるようにしてもよいし、ユーザ指示等の外部からの指示によって切り替えるようにしてもよい。
また、以上においては、通常時と注目時の2つの状態を切り替える例を説明したが、状態の数は任意であり、例えば、通常時、やや注目時、注目時、非常に注目時等のように、3つ以上の状態を切り替えるようにしてもよい。ただし、この切り替える状態の上限数は、スケーラブル符号化データのレイヤ数に依存する。
また、撮像装置1201が、スケーラブル符号化のレイヤ数を、状態に応じて決定するようにしてもよい。例えば、通常時の場合、撮像装置1201が、低品質でデータ量の少ないベースレイヤのスケーラブル符号化データ(BL)1222を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。また、例えば、注目時の場合、撮像装置1201が、高品質でデータ量の多いベースレイヤのスケーラブル符号化データ(BL+EL)1221を生成し、スケーラブル符号化データ記憶装置1202に供給するようにしてもよい。
以上においては、監視カメラを例に説明したが、この撮像システム1200の用途は任意であり、監視カメラに限定されない。
なお、本明細書では、スキップ許可情報やスキップ識別情報などの各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 画像データが符号化された符号化データの復号において、カレントブロックが直交変換処理をスキップされたブロックである場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、前記直交変換処理をスキップされたブロック用のカスタムスケーリングリストを設定する設定部と、
前記設定部により設定されたスケーリングリストを用いる逆量子化処理を含む復号処理を行い、前記符号化データを復号する復号部と
を備える画像処理装置。
(2) 前記カスタムスケーリングリストは、イントラ予測において参照される可能性のある画素に対応する部分の量子化ステップが、前記イントラ予測において参照される可能性の無い画素に対応する部分の量子化ステップよりも小さい
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(3) 前記カスタムスケーリングリストは、前記イントラ予測において参照される可能性のある画素に対応する部分の量子化ステップが、デフォルトカスタムスケーリングリストの場合の値よりも小さく設定されるか、若しくは、前記イントラ予測において参照される可能性の無い画素に対応する部分の量子化ステップが、前記デフォルトカスタムスケーリングリストの場合の値よりも大きく設定される
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(4) 前記カスタムスケーリングリストの、前記イントラ予測において参照される可能性のある画素に対応する部分の各量子化ステップは、それぞれが対応する画素の前記イントラ予測において参照される可能性の高さに応じた値を有する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(5) 前記設定部は、カレントブロックが直交変換処理をスキップされていないブロックである場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、量子化ステップの値が全て同一であるか、若しくは、高周波成分に対応する画素の量子化ステップが大きな値を有するデフォルトスケーリングリストを設定する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(6) 前記イントラ予測における参照可能範囲の端を検出する端検出部をさらに備え、
前記設定部は、カレントブロックが前記端検出部により検出される前記参照可能範囲の端のブロックである場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、前記参照可能範囲の端の位置に応じたカスタムスケーリングリストを設定する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(7) 前記直交変換処理のスキップに関する情報を受け取る受け取り部と、
前記受け取り部により受け取られた前記直交変換処理のスキップに関する情報に基づいて、前記カレントブロックが前記直交変換処理をスキップされたブロックであるか否かを判定する判定部と
をさらに備え、
前記設定部は、前記判定部により前記カレントブロックが前記直交変換処理をスキップされたブロックであると判定された場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、前記カスタムスケーリングリストを設定する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(8) 前記判定部は、前記直交変換処理のスキップに関する情報に含まれる、ピクチャ内において前記直交変換処理のスキップを許可するかを指定するスキップ許可情報の値が偽である場合、前記ピクチャ内における前記直交変換処理のスキップを禁止する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(9) 前記判定部は、カレントブロックのスライスタイプをさらに判定し、
前記設定部は、前記判定部により、前記カレントブロックが前記直交変換処理をスキップされたブロックであり、かつ、イントラ予測のみが行われるスライスであると判定された場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、前記カスタムスケーリングリストを設定する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(10) 画像処理装置の画像処理方法において、
前記画像処理装置が、
画像データが符号化された符号化データの復号において、カレントブロックが直交変換処理をスキップされたブロックである場合、前記カレントブロックに対する逆量子化処理に用いるスケーリングリストとして、前記直交変換処理をスキップされたブロック用のカスタムスケーリングリストを設定し、
設定されたスケーリングリストを用いる逆量子化処理を含む復号処理を行い、前記符号化データを復号する
画像処理方法。
(11) 画像データの符号化において、カレントブロックの直交変換処理がスキップされる場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、前記直交変換処理がスキップされるブロック用のカスタムスケーリングリストを設定する設定部と、
前記設定部により設定されたスケーリングリストを用いる量子化処理を含む符号化処理を行い、前記画像データを符号化する符号化部と
を備える画像処理装置。
(12) 前記カスタムスケーリングリストは、イントラ予測において参照される可能性のある画素に対応する部分の量子化ステップが、前記イントラ予測において参照される可能性の無い画素に対応する部分の量子化ステップよりも小さい
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(13) 前記カスタムスケーリングリストは、前記イントラ予測において参照される可能性のある画素に対応する部分の量子化ステップが、デフォルトカスタムスケーリングリストの場合の値よりも小さく設定されるか、若しくは、前記イントラ予測において参照される可能性の無い画素に対応する部分の量子化ステップが、前記デフォルトカスタムスケーリングリストの場合の値よりも大きく設定される
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(14) 前記カスタムスケーリングリストの、前記イントラ予測において参照される可能性のある画素に対応する部分の各量子化ステップは、それぞれが対応する画素の前記イントラ予測において参照される可能性の高さに応じた値を有する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(15) 前記設定部は、前記カレントブロックの直交変換処理がスキップされない場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、量子化ステップの値が全て同一であるか、若しくは、高周波成分に対応する画素の量子化ステップが大きな値を有するデフォルトスケーリングリストを設定する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(16) 前記イントラ予測における参照可能範囲の端を検出する端検出部をさらに備え、
前記設定部は、前記カレントブロックが前記端検出部により検出される前記参照可能範囲の端のブロックである場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、前記参照可能範囲の端の位置に応じたカスタムスケーリングリストを設定する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(17) 前記直交変換処理のスキップに関する情報に基づいて、前記カレントブロックの直交変換処理がスキップされるか否かを判定する判定部をさらに備え、
前記設定部は、前記判定部により前記カレントブロックの直交変換処理がスキップされると判定された場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、前記カスタムスケーリングリストを設定する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(18) 前記判定部は、前記直交変換処理のスキップに関する情報に含まれる、ピクチャ内において前記直交変換処理のスキップを許可するかを指定するスキップ許可情報の値が偽である場合、前記ピクチャ内における前記直交変換処理のスキップを禁止する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(19) 前記判定部は、カレントブロックのスライスタイプをさらに判定し、
前記設定部は、前記判定部により、前記カレントブロックの直交変換処理がスキップされ、かつ、イントラ予測のみが行われるスライスであると判定された場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、前記カスタムスケーリングリストを設定する
前記(11)乃至(19)のいずれかに記載の画像処理装置。
(20) 画像処理装置の画像処理方法において、
前記画像処理装置が、
画像データの符号化において、カレントブロックの直交変換処理がスキップされる場合、前記カレントブロックに対する量子化処理に用いるスケーリングリストとして、前記直交変換処理がスキップされるブロック用のカスタムスケーリングリストを設定し、
設定されたスケーリングリストを用いる量子化処理を含む符号化処理を行い、前記画像データを符号化する
画像処理方法。