以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。
なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、本明細書で開示される範囲は、実施例の内容に限定されるものではなく、出願当時において公知となっている以下の参照文献REF1~REF3の内容も、参照により本明細書に組み込まれる。つまり、以下の参照文献REF1~REF3に記載されている内容もサポート要件について判断する際の根拠となる。例えば、参照文献REF2に記載されているQuad-Tree Block Structure、参照文献REF3に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが発明の詳細な説明において直接的に定義されていない場合でも、本開示の範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、発明の詳細な説明において直接的に定義されていない場合でも、本開示の範囲内であり、請求の範囲のサポート要件を満たすものとする。
REF1:Recommendation ITU-T H.264 (04/2017) “Advanced video coding for generic audiovisual services”, April 2017
REF2:Recommendation ITU-T H.265,(12/2016) “High efficiency video coding”, December 2016
REF3:J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,“Algorithm Description of Joint Exploration Test Model (JEM7)”, JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
また、以下では、特に記載のない場合、YUV420フォーマットの信号を例に説明を行い、輝度成分をY成分、色差成分をU成分、V成分として表すことがある。ただし、以下に説明する技術は、YUV444フォーマットやYUV422フォーマット等、他のフォーマットの信号に対しても同様に適用することが可能である。また、輝度成分と色差成分の表現は、対象とする信号に応じて異なるものであり、例えば輝度成分と色差成分がYCbCrで表現される信号に対しても、以下に説明する技術を同様に適用することが可能である。
また、本明細書において用いられる以下の用語は、下記のように定義される。
色差関連パラメータとは、色差に関連するパラメータ全般を意味する。例えば、色差関連パラメータは、各TU(Transform Unit)に含まれる色差成分の変換係数や、各TUにおける色差成分の有意係数(非ゼロの変換係数)の有無を示すフラグ等、色差成分の変換係数に関する情報を含み得る。ただし、色差関連パラメータはかかる例に限定されず、色差に関連する多様なパラメータであり得る。
デブロックフィルタ適用要否とは、デブロックフィルタを適用すべきか否かを意味する。例えばデブロックフィルタ適用要否を判定すること、とは、デブロックフィルタを適用すべきか否かを判定することを意味する。また、デブロックフィルタ適用要否の判定結果とは、デブロックフィルタを適用すべきか否かを判定した結果であり、例えば当該判定結果は、適用すべき、あるいは適用しなくてよい、のいずれかを示す情報であり得る。
ラージブロック判定とは、判定対象となるブロックが大きなブロックであるか否かの判定を意味する。本明細書において、判定対象となるブロックは、後述するように、ブロック境界を挟むブロックであり得る。また、ラージブロック判定は、ブロックの大きさ(ブロックサイズ)を所定の閾値と比較することにより行われ得る。なお、ラージブロック判定が行われるケースや、ラージブロック判定の詳細については後述する。
<1.概要>
[1-1.既存の手法]
HEVC等の既存の画像符号化方式におけるデブロックフィルタにかかる処理は、適用要否判定処理、フィルタ強度の判定処理、及びフィルタリング処理(フィルタ適用処理)を含む。以下では、既存のデブロックフィルタにかかる処理について、HEVCのデブロックフィルタを例に説明する。なお、以下では、復号画像(符号化時にローカル復号された画像も含む)の色差成分に対するデブロックフィルタについて主に説明し、復号画像の輝度成分に対するデブロックフィルタに関する説明は適宜省略する。
デブロックフィルタにかかる処理として、まず適用要否判定処理が行われる。適用要否判定処理は、復号画像のブロック境界(Block Boundary)にデブロックフィルタを適用すべきか否かを判定する処理である。なお、HEVCにおいて、ブロック境界は、参照文献REF2に記載されているQuad-Tree Block Structureのブロック構造に基づいて特定される。具体的には、最小のブロック単位である8×8画素ブロック(サンプルグリッド)のエッジのうち、TU(Transform Unit)境界あるいはPU(Prediction Unit)境界のうち少なくともいずれか一方であるという条件を満たすエッジが、HEVCにおけるブロック境界として特定される。
適用要否判定処理は、ブロック境界の境界強度(Boundary Strength:以下、bSと呼ぶ場合がある)に基づいて行われる。HEVCにおいてbSは、特定されたブロック境界の4ラインごとに算出される。ブロック境界が垂直境界である場合には、上記ラインは、垂直境界と直交する行に相当する。また、ブロック境界が水平境界である場合には、上記ラインは、水平境界と直交する列に相当する。
図1は、HEVCにおけるbSの算出について説明するための表である。図1に示すように、HEVCにおいてbSは、イントラ予測に関する条件である条件A、Y成分の有意係数に関する条件である条件B1、及び動きベクトル(MV)と参照ピクチャに関する条件である条件B2の真偽(満たされるか満たされないか)に基づいて算出される。図1を参照すると、条件Aが真である場合にbSは2に設定される。また、条件Aが偽であり、条件B1、条件B2のうち少なくとも一方が真である場合にbSは1に設定される。そして、条件A、条件B1、及び条件B2がいずれも偽である場合にbSは0に設定される。なお、図1に示す条件A、条件B1、条件B2は、以下のような条件である。
-条件A:bS算出対象のラインのうち最も上のラインの画素を含みブロック境界を挟むCU(Coding Unit)のうち、少なくともいずれか一方の符号化モードがイントラ予測モードである
-条件B1:ブロック境界がTU境界であり、bS算出対象のラインのうち最も上のラインの画素を含みブロック境界を挟む2つのTUのうち、少なくともいずれか一方にY成分の有意係数が存在する
-条件B2:bS算出対象のラインのうち最も上のラインの画素を含みブロック境界を挟む2つのCUの間で、MVの差の絶対値が1画素以上、または、動き補償の参照ピクチャが異なるか、MVの数が異なる
さらに、HEVCにおいては、上記のように設定されたbSが1以上であるブロック境界を対象に、復号画像の輝度成分(Y成分)に対するデブロックフィルタが適用され得る。そのため、HEVCにおいて、条件B1、条件B2が満たされるか否かに応じて、復号画像の輝度成分に対するデブロックフィルタの適用要否の判定結果は異なり得る。
なお、HEVCにおいて、復号画像の輝度成分に対するデブロックフィルタとして、フィルタ強度が大きいストロングフィルタと、フィルタ強度が小さいウイークフィルタとが用意されている。bSが1以上である場合、復号画像の輝度成分に対するデブロックフィルタに関する処理は、さらなる条件に基づくさらなる適用要否判定処理が行われた後に、フィルタ強度の判定処理、フィルタリング処理と続く。これらの処理の詳細については上記参照文献REF2に記載されており、ここでの説明は省略する。
一方で、HEVCにおける復号画像の色差成分(U成分、V成分)に対するデブロックフィルタは、bSが2であるブロック境界のみを対象として適用される。そのため、図1に示すように、条件B1、条件B2が満たすか否かは、HEVCにおいて、復号画像の色差成分に対するデブロックフィルタの適用要否判定に影響を与えない。
また、HEVCにおいて、復号画像の色差成分に対して適用され得るデブロックフィルタはウイークフィルタのみである。そのため、復号画像の色差成分について、フィルタ強度の判定処理は不要であり、bSが2である場合には、復号画像の色差成分に対してウイークフィルタが適用される。
ところで、上記参照文献REF3に記載されるように、VVCにおけるQTBT Block Structureによるブロック分割では、HEVCにおけるQuad-Tree Block Structureによるブロック分割よりも、さらに大きなサイズのブロックが選択され得る。フラットな領域(領域内の画素値の変化が小さい領域)におけるブロックのサイズが大きい場合、ブロック歪みが発生し易い。そのため、より大きなサイズのブロックが選択され得るVVCにおいて、HEVCと同様に復号画像の色差成分に対して適用され得るデブロックフィルタをウイークフィルタのみとした場合、色差成分において、顕著なブロック歪みが残ってしまう恐れがあった。このような状況に鑑み、復号画像の色差成分に対するデブロックフィルタを改善することが望まれている。
例えば、非特許文献1では、色差成分に適用され得るデブロックフィルタを、輝度成分に適用され得るデブロックフィルタと同様に2種類に変更し、色差成分に対しても、ストロングフィルタを適用し得る手法が提案されている。また、非特許文献1では、bSが2である場合のみならず、bSが1の場合であっても、復号画像の色差成分に対してデブロックフィルタが適用され得ることが記載されている。
図2は、非特許文献1におけるbSの算出について説明するための表である。図2に示すように、非特許文献1において、図2に示したHEVCの例と同様に、上述した条件A、条件B1、条件B2に基づいてbSが算出される。ただし、上述したように、非特許文献1では、bSが2である場合のみならず、bSが1の場合であっても復号画像の色差成分に対してデブロックフィルタが適用され得る。そのため、図2に示すように、非特許文献1において、条件B1、条件B2が満たされるか否かに応じて、復号画像の色差成分(U成分、V成分)に対するデブロックフィルタの適用要否の判定結果は異なり得る。
以下では、非特許文献1において復号画像の色差成分に適用され得るデブロックフィルタに関する、適用要否判定処理、フィルタ強度の判定処理、及びフィルタリング処理について、図3を参照しながら説明する。図3は、垂直のブロック境界BBを挟んで隣接する、2つのブロックBp及びブロックBq内の色差成分(U成分、V成分)の画素の一例を示す説明図である。なお、ここでは垂直境界を例にとって説明するが、当然ながら、ここで説明される事項は水平境界にも同様に適用可能である。また、図3には、色差成分においてブロックBp及びブロックBqが4×4である例を示しているが、ここで説明される事項は、他のサイズのブロックにも同様に適用可能である。
図3の例において、ブロックBp内の色差成分の画素は、pi,jという記号で示されている。iは列のインデックス、jは行のインデックスである。列のインデックスiは、ブロック境界BBに近い列から順に(図中の左から右へ)0,1,2,3と付番されている。行のインデックスjは、上から下へ0,1,2,3と付番されている。一方、ブロックBq内の色差成分の画素は、qk,jという記号で示されている。kは列のインデックス、jは行のインデックスである。列のインデックスkは、ブロック境界BBに近い列から順に(図中の右から左へ)0,1,2,3と付番されている。
図2を参照して説明したようにbSが算出された後、以下のように3つの条件を用いて、適用要否判定処理、及びフィルタ強度の判定処理が行われる。かかる処理は、YUV420フォーマットの場合、色差成分における2ラインごとに行われ、例えば図3に示す例ではラインL11とラインL12に関する判定と、ラインL21とラインL22に関する判定が別々に行われる。なお、ラインごとの判定は、判定対象のラインの画素を用いて行われる。以下では、ラインL11とラインL12を例に、適用要否判定処理、フィルタ強度の判定処理、及びフィルタリング処理について説明する。
まず、適用要否判定処理では、以下の条件C91、及び条件C92が真であるか否かが順に判定される。
-条件C91
:(bS==2||bS==1&&(block_width>16&&block_height>16))
-条件C92:d<beta
なお、上記の条件C91においてblock_width、及びblock_heightは、図3に示したように、それぞれ判定の対象となるブロック境界にかかるブロック(例えばCU)の水平方向のサイズと垂直方向のサイズである。
また、上記条件C92における変数betaは、エッジ判定閾値であり、変数betaの初期値は、量子化パラメータに応じて与えられる。また変数betaの値は、スライスヘッダ内のパラメータでユーザにより指定可能である。また、上記条件C92における変数dは、以下の式(1)~(7)により算出される。
dp0=Abs(p2,0-2*p1,0+p0,0) …(1)
dp1=Abs(p2,1-2*p1,1+p0,1) …(2)
dq0=Abs(q2,0-2*q1,0+q0,0) …(3)
dq1=Abs(q2,1-2*q1,1+q0,1) …(4)
dpq0=dp0+dq0 …(5)
dpq1=dp1+dq1 …(6)
d=dpq0+dpq1 …(7)
なお、上記条件C92は、参照されるラインが異なることを除いて、HEVCにおいて輝度成分に適用されるデブロックフィルタの適用要否判定処理において用いられる条件(以下、輝度成分における条件と呼ぶ)と同様である。輝度成分における条件では1ライン目の画素と4ライン目の画素が参照されて、4ラインごとに判定が行われていた。一方、YUV420フォーマットでは、色差成分(U成分、V成分)の画素密度が輝度成分の画素密度の半分であるため、上記条件C92では、1ライン目であるラインL11の画素と2ライン目であるラインL12の画素が参照されて2ラインごとに判定が行われる。
上記条件C91、条件C92のうち少なくともいずれか一方が偽である場合には、復号画像の色差成分にデブロックフィルタが適用されない。一方、上記条件C91、条件C92の両方が真である場合、処理はフィルタ強度の判定処理へ進む。
フィルタ強度の判定処理では、ストロングフィルタとウイークフィルタとのうち、いずれのフィルタを適用するか判定するため、以下の条件C93が真であるか否かが判定される。
-条件C93:(block_width>16&&block_height>16)
なお、上記の条件C93におけるblock_width、及びblock_heightは、条件C91におけるblock_width、及びblock_heightと同様に、それぞれ判定の対象となるブロック境界にかかるブロックの水平方向のサイズと垂直方向のサイズである。
上記条件C93が真である場合には、対象となるブロック境界において復号画像の色差成分にストロングフィルタが適用され、上記条件C93が偽である場合には、対象となるブロック境界において復号画像の色差成分にウイークフィルタが適用される。
非特許文献1において色差成分に適用されるストロングフィルタは、HEVCにおいて輝度成分に適用されるストロングフィルタと同様であり、以下の式(8)~(13)のように表される。
p0′=Clip3(p0-2*tc,p0+2*tC,(p2+2*p1+2*p0+2*q0+q1+4)>>3) …(8)
p1′=Clip3(p1-2*tc,p1+2*tC,(p2+p1+p0+q0+2)>>2) …(9)
p2′=Clip3(p2-2*tc,p2+2*tC,(2*p3+3*p2+p1+p0+q0+4)>>3) …(10)
q0′=Clip3(q0-2*tc,q0+2*tC,(p1+2p0+2q0+2q1+q2+4)>>3) …(11)
q1′=Clip3(q1-2*tc,q1+2*tC,(p0+q0+q1+q2+2)>>2) …(12)
q2′=Clip3(q2-2*tc,q2+2*tC,(p0+q0+q1+3*q2+2*q3+4)>>3) …(13)
なお、上記の式(8)~(13)において、pi、及びqkはデブロックフィルタ適用前の色差成分の画素値である。また、pi′、及びqk′は、デブロックフィルタ適用後の色差成分の画素値である。ここで、i及びkはそれぞれ上述したブロックBp、ブロックBq内の列のインデックスであり、式(8)~(13)では行のインデックスは省略されている。また、tCは量子化パラメータに応じて与えられるパラメータである。また、Clip3(a,b,c)は、値cをa≦c≦bの範囲でクリップするクリッピング処理を表す。
非特許文献1において色差成分に適用されるウイークフィルタは、HEVCにおいて色差成分に適用されるウイークフィルタと同一であるため、ここでの説明は省略する。
以上、非特許文献1において復号画像の色差成分に適用され得るデブロックフィルタに関する処理について説明した。上述した手法によれば、輝度成分に対してだけでなく、色差成分に対しても、条件に応じてストロングフィルタを適用することが可能である。
しかし、図2を参照して説明したように、非特許文献1においてbSの算出に用いられる条件B1はHEVCの場合と同様に輝度成分(Y成分)の有意係数の有無に依存しており、その他の条件を含めても、色差成分(U成分、V成分)の情報が用いられていない。しかし、輝度成分の空間パターンと色差成分それぞれの空間パターンとは、必ずしも一致しない。したがって、色差成分に対するデブロックフィルタの適用要否の判定を、輝度成分の情報に基づく条件に従って行うと、ブロック歪みが発生しているにもかかわらず、適切にデブロックフィルタが適用されず、ブロック歪みが残ってしまう恐れがあった。
また、bSが1の場合、非特許文献1において適用要否判定処理に用いられる条件C91が真となるためには、判定の対象となるブロック境界にかかるブロックの水平方向のサイズと垂直方向のサイズの両方が16より大きい必要がある。しかし、参照文献REF3に記載されるように、VVCにおけるブロック(例えばCU)の形状は、正方形だけでなく、非正方形の長方形であり得る。そして、ブロック歪みは、ブロック境界と同一方向のサイズよりも、ブロック境界と直交する方向のサイズに依存して発生し易い傾向がある。そのため、ブロックの形状によっては、非特許文献1の適用要否判定処理では、適切にデブロックフィルタが適用されず、ブロック歪みが残ってしまう恐れがあった。
また、非特許文献1におけるストロングフィルタは、HEVCにおいて適用されるストロングフィルタと同様である。一方、上述したように、VVCでは、HEVCにおけるブロック分割よりも、さらに大きなサイズのブロックが選択され得るため、非特許文献1におけるストロングフィルタを適用したとしても、十分にブロック歪みを軽減できない恐れがあった。
[1-2.本開示の一実施形態の概要]
そこで、上記事情を一着眼点にして本開示の一実施形態を創作するに至った。本開示の一実施形態による画像処理装置は、復号画像の色差に関連する色差関連パラメータを用いて算出された境界強度(bS)に基づいて、復号画像の色差成分に対するデブロックフィルタ適用の要否を判定する適用要否判定処理を行う。以下、本開示の一実施形態の概要について説明する。
図4は、本実施形態におけるbSの算出について説明するための表である。図4に示すように、イントラ予測に関する条件である条件A、Y成分の有意係数に関する条件である条件B1-Y、U成分の有意係数に関する条件である条件B1-U、V成分の有意係数に関する条件である条件B1-V、及びMVと参照ピクチャに関する条件である条件B2に基づいて算出される。
図4を参照すると、条件Aが真である場合にbSは16に設定される。また、条件Aが偽であり、条件B2が真である場合、bSは1に設定される。そして、条件Aと条件B2とが偽であり、かつ条件B1-Y、条件B1-U、及び条件B1-Vのうちいずれか1つでも真である場合、bSは2~14の間の値に設定される。そして、条件A、条件B1-Y、条件B1-U、条件B1-V、及び条件B2がいずれも偽である場合にbSは0に設定される。なお、図4に示す条件A、条件B1-Y、条件B2は、それぞれ図1を参照して説明した条件A、条件B1、条件B2と同一である。また、本実施形態にかかるbSの算出方法については後により詳細に説明する。
また、図4に示す条件B1-U、及び条件B1-Vは、条件B1-YにおけるY成分の有意係数の有無の代わりに、それぞれU成分の有意係数の有無、及びV成分の有意係数の有無を判定に用いる条件に相当し、以下のように表現される。なお、以下の条件B1-U、及び条件B1-Vの真偽は、各TUにおける色差成分の有意係数の有無を示すフラグ(色差関連パラメータの一例)に基づいて判定することが可能である。
-条件B1-U:ブロック境界がTU境界であり、bS算出対象のラインのうち最も上のラインの画素を含みブロック境界を挟む2つのTUのうち、少なくともいずれか一方にU成分の有意係数が存在する
-条件B1-V:ブロック境界がTU境界であり、bS算出対象のラインのうち最も上のラインの画素を含みブロック境界を挟む2つのTUのうち、少なくともいずれか一方にV成分の有意係数が存在する
本実施形態では、上記のような色差に関連する条件B1-U、条件B1-Vを用いて算出されたbSに基づいて、復号画像の色差成分に対するデブロックフィルタ適用要否の判定が行われる。かかる構成により、色差成分に対してより適切にデブロックフィルタを適用することが可能となる。
また、本実施形態では、後述するように、ブロック境界と直交する方向のサイズにさらに基づいて、復号画像の色差成分に対するデブロックフィルタ適用要否の判定が行われる。かかる構成により、ブロックの形状が非正方形の長方形の場合であってもより適切にデブロックフィルタを適用することが可能となる。
また、本実施形態では、後述するように、非特許文献1におけるストロングフィルタよりも強度が大きい(ローパス特性が強い)ストロングフィルタが復号画像の色差成分に対して適用され得る。また、かかるストロングフィルタをより適切に適用するため、本実施形態では、非特許文献1におけるフィルタ強度の判定処理とは異なる方法でフィルタ強度の判定が行われる。かかる構成により、よりブロック歪みを軽減し得る。
以上、本開示の一実施形態の概要について説明した。以下では、上述した効果を実現するための、本実施形態の構成、及び動作について順次詳細に説明する。
<2.装置の概略構成>
まず、図5及び図6を用いて、本明細書で開示する技術を適用可能な一例としての装置の概略構成を説明する。本明細書で開示する技術は、例えば、画像符号化装置及び画像復号装置に適用可能である。
[2-1.画像符号化装置]
図5は、本開示の一実施形態にかかる画像処理装置の一態様である画像符号化装置10の構成の一例を示すブロック図である。
図5を参照すると、画像符号化装置10は、並び替えバッファ11、制御部12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、逆量子化部21、逆直交変換部22、加算部23、インループフィルタ24、フレームメモリ30、スイッチ31、モード設定部32、イントラ予測部40及びインター予測部50を備える。
並び替えバッファ11は、符号化すべき一連の画像(元画像)を、符号化処理にかかるGOP(Group of Pictures)構造に応じて並び替える。並び替えバッファ11は、並び替え後の画像を制御部12、減算部13、イントラ予測部40、及びインター予測部50へ出力する。
制御部12は、外部、または予め指定された処理単位のブロックサイズに基づいて、画像を処理単位のブロックへ分割する。制御部12によるブロック分割により、Quad-Tree Block Structure、またはQTBT(Quad Tree Plus Binary Tree) Block StructureのCUが処理単位として形成されてもよい。また、制御部12は、符号化処理にかかるパラメータを、例えば、RDO(Rate-Distortion Optimization)に基づいて決定する。決定されたパラメータは、各部へ供給される。
減算部13は、並び替えバッファ11から入力される画像と予測画像との差分である予測誤差を算出し、算出した予測誤差を直交変換部14へ出力する。
直交変換部14は、各領域内に設定される1つ以上の変換ブロック(TU)の各々について直交変換処理を実行する。ここでの直交変換は例えば、離散コサイン変換または離散サイン変換等であってよい。より具体的には、直交変換部14は、減算部13から入力される予測誤差を、変換ブロックごとに、空間領域の画像信号から周波数領域の変換係数に変換する。そして、直交変換部14は、変換係数を量子化部15へ出力する。
また、直交変換部14は、直交変換により得られた変換係数に基づいて、各TUにおける有意係数の有無を示すフラグを成分ごと(Y成分、U成分、V成分ごと)に生成し、可逆符号化部16及びインループフィルタ24へ出力してもよい。なお、直交変換部14により生成される、各TUにおけるU成分の有意係数の有無を示すフラグ、及び各TUにおけるV成分の有意係数の有無を示すフラグは、色差関連パラメータに含まれる。
量子化部15には、直交変換部14から入力される変換係数、及び後に説明するレート制御部18からのレート制御信号が供給される。量子化部15は変換係数を量子化し、量子化後の変換係数(以下、量子化データとも呼ぶ)を可逆符号化部16及び逆量子化部21へ出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づいて量子化スケールを切り替えることにより、可逆符号化部16に入力される量子化データのビットレートを変化させる。
可逆符号化部16は、量子化部15から入力される量子化データを符号化することにより、符号化ストリームを生成する。また、可逆符号化部16は、デコーダにより参照される様々なパラメータを符号化して、符号化パラメータを符号化ストリームへ挿入する。可逆符号化部16により符号化されるパラメータは、上述した制御部12により決定されたパラメータを含み得る。
さらに、可逆符号化部16により符号化されるパラメータは、色差関連パラメータを含み得る。可逆符号化部16により符号化される色差関連パラメータは、例えば上述したように直交変換部14から入力される各TUにおけるU成分の有意係数の有無を示すフラグ、及び各TUにおけるV成分の有意係数の有無を示すフラグを含む。可逆符号化部16は、生成した符号化ストリームを蓄積バッファ17へ出力する。
蓄積バッファ17は、可逆符号化部16から入力される符号化ストリームを半導体メモリ等の記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ17は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部(例えば、通信インタフェースまたは周辺機器との接続インタフェース等)へ出力する。
レート制御部18は、蓄積バッファ17の空き容量を監視する。そして、レート制御部18は、蓄積バッファ17の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部15へ出力する。例えば、レート制御部18は、蓄積バッファ17の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部18は、蓄積バッファ17の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
逆量子化部21、逆直交変換部22及び加算部23は、ローカルデコーダを構成する。ローカルデコーダは、符号化されたデータから復号画像をローカル復号する役割を有する。
逆量子化部21は、量子化部15により使用されたものと同じ量子化パラメータで量子化データを逆量子化し、変換係数を復元する。そして、逆量子化部21は、復元した変換係数を逆直交変換部22へ出力する。
逆直交変換部22は、逆量子化部21から入力される変換係数について逆直交変換処理を実行することにより、予測誤差を復元する。そして、逆直交変換部22は、復元した予測誤差を加算部23へ出力する。
加算部23は、逆直交変換部22から入力される復元された予測誤差とイントラ予測部40またはインター予測部50から入力される予測画像とを加算することにより、復号画像(リコンストラクト画像)を生成する。そして、加算部23は、生成した復号画像をインループフィルタ24及びフレームメモリ30へ出力する。
インループフィルタ24は、復号画像の画質の向上を目的として一連のインループフィルタを適用する。例えば、参照文献REF3の「2.5. In-loop filtering」に記載されているように、4つのインループフィルタが、バイラテラルフィルタ、デブロックフィルタ、適応オフセットフィルタ、及び適応ループフィルタの順番で適用されてもよい。図5に示すインループフィルタ24は、例えばバイラテラルフィルタ25、デブロックフィルタ26a、適応オフセットフィルタ27、及び適応ループフィルタ28を含み、上記4つのインループフィルタが順に適用され得る。しかしながら、インループフィルタ24はかかる構成に限定されず、4つのインループフィルタのうち、いずれのフィルタを適用するか、また、どのような順番で適用するかは、適宜選択可能であり得る。なお、デブロックフィルタ26aについては、後に詳細に説明する。
インループフィルタ24は、インループフィルタが適用された復号画像をフレームメモリ30へ出力する。
フレームメモリ30は、加算部23から入力されるフィルタリング前の復号画像、及びインループフィルタ24から入力されるインループフィルタが適用された復号画像を記憶媒体を用いて記憶する。
スイッチ31は、イントラ予測のために使用されるフィルタリング前の復号画像をフレームメモリ30から読み出し、読み出した復号画像を参照画像としてイントラ予測部40に供給する。また、スイッチ31は、インター予測のために使用されるフィルタリング後の復号画像をフレームメモリ30から読み出し、読み出した復号画像を参照画像としてインター予測部50に供給する。
モード設定部32は、イントラ予測部40及びインター予測部50から入力されるコストの比較に基づいて、ブロックごとに予測符号化モードを設定する。モード設定部32は、イントラ予測モードを設定したブロックについては、イントラ予測部40により生成される予測画像を減算部13及び加算部23へ出力すると共に、イントラ予測に関する情報を可逆符号化部16へ出力する。また、モード設定部32は、インター予測モードを設定したブロックについては、インター予測部50により生成される予測画像を減算部13及び加算部23へ出力すると共に、インター予測に関する情報を可逆符号化部16へ出力する。
イントラ予測部40は、元画像及び復号画像に基づいて、イントラ予測処理を実行する。例えば、イントラ予測部40は、探索範囲に含まれる予測モード候補の各々について、予測誤差及び発生する符号量に基づくコストを評価する。次に、イントラ予測部40は、コストが最小となる予測モードを最適な予測モードとして選択する。また、イントラ予測部40は、選択した最適な予測モードに従って予測画像を生成する。そして、イントラ予測部40は、最適な予測モードを示す予測モード情報を含むイントラ予測に関する情報、対応するコスト、及び予測画像を、モード設定部32へ出力する。
インター予測部50は、元画像及び復号画像に基づいて、インター予測処理(動き補償)を実行する。例えば、インター予測部50は、ある探索範囲に含まれる予測モード候補の各々について、予測誤差及び発生する符号量に基づくコストを評価する。次に、インター予測部50は、コストが最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、インター予測部50は、選択した最適な予測モードに従って予測画像を生成する。そして、インター予測部50は、インター予測に関する情報、対応するコスト、及び予測画像を、モード設定部32へ出力する。
[2-2.画像復号装置]
続いて、以上のように符号化されたデータの復号について説明する。図6は、本実施形態にかかる画像処理装置の一態様である画像復号装置60の構成の一例を示すブロック図である。図6を参照すると、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、加算部65、インループフィルタ66、並び替えバッファ72、D/A(Digital to Analogue)変換部73、フレームメモリ80、セレクタ81a及び81b、イントラ予測部90並びにインター予測部100を備える。
蓄積バッファ61は、図示しない伝送部(例えば、通信インタフェースまたは周辺機器との接続インタフェース等)を介して画像符号化装置10から受信される符号化ストリームを記憶媒体を用いて一時的に蓄積する。
可逆復号部62は、蓄積バッファ61から入力される符号化ストリームを、符号化の際に使用された符号化方式に従って復号し、量子化データを生成する。可逆復号部62は、生成した量子化データを逆量子化部63へ出力する。
また、可逆復号部62は、符号化ストリームから、各種のパラメータをパースする。可逆復号部62によりパースされるパラメータは、例えば、イントラ予測に関する情報、及びインター予測に関する情報を含み得る。可逆復号部62は、イントラ予測に関する情報をイントラ予測部90へ出力する。また、可逆復号部62は、インター予測に関する情報をインター予測部100へ出力する。
また、可逆復号部62によりパースされるパラメータは、色差関連パラメータを含み得る。可逆復号部62は、色差関連パラメータを、インループフィルタ66へ出力する。なお、可逆復号部62によりパースされる色差関連パラメータは、例えば上述した各TUにおけるU成分の有意係数の有無を示すフラグ、及び各TUにおけるV成分の有意係数の有無を示すフラグを含む。
逆量子化部63は、可逆復号部62から入力される量子化データを、符号化の際に使用されたものと同じ量子化ステップで逆量子化し、変換係数を復元する。逆量子化部63は、復元した変換係数を逆直交変換部64へ出力する。
逆直交変換部64は、符号化の際に使用された直交変換方式に従い、逆量子化部63から入力される変換係数について逆直交変換を行うことにより、予測誤差を生成する。逆直交変換部64は、生成した予測誤差を加算部65へ出力する。
加算部65は、逆直交変換部64から入力される予測誤差と、セレクタ71bから入力される予測画像とを加算することにより、復号画像を生成する。そして、加算部65は、生成した復号画像をインループフィルタ66及びフレームメモリ80へ出力する。
インループフィルタ66は、復号画像の画質の向上を目的として一連のインループフィルタを適用する。例えば、参照文献REF3の「2.5. In-loop filtering」に記載されているように、4つのインループフィルタが、バイラテラルフィルタ、デブロックフィルタ、適応オフセットフィルタ、及び適応ループフィルタの順番で適用されてもよい。図6に示すインループフィルタ66は、例えばバイラテラルフィルタ67、デブロックフィルタ26b、適応オフセットフィルタ69、及び適応ループフィルタ70を含み、上記4つのインループフィルタが順に適用され得る。しかしながら、インループフィルタ66はかかる構成に限定されず、4つのインループフィルタのうち、いずれのフィルタを適用するか、また、どのような順番で適用するかは、適宜選択可能であり得る。なお、デブロックフィルタ26bについては、後に詳細に説明する。
インループフィルタ66は、インループフィルタが適用された復号画像を並び替えバッファ72及びフレームメモリ80へ出力する。
並び替えバッファ72は、インループフィルタ66から入力される画像を並び替えることにより、時系列の一連の画像を生成する。そして、並び替えバッファ72は、生成した画像をD/A変換部73へ出力する。
D/A変換部73は、並び替えバッファ72から入力されるデジタル形式の画像をアナログ形式の画像信号に変換する。そして、D/A変換部73は、例えば、画像復号装置60と接続されるディスプレイ(図示せず)にアナログ画像信号を出力することにより、画像を表示させる。
フレームメモリ80は、加算部65から入力されるフィルタリング前の復号画像、及びインループフィルタ66から入力されるインループフィルタが適用された復号画像を記憶媒体を用いて記憶する。
セレクタ81aは、可逆復号部62により取得される予測モード情報に応じて、画像内のブロックごとに、フレームメモリ80からの画像の出力先をイントラ予測部90とインター予測部100との間で切り替える。例えば、セレクタ81aは、イントラ予測モードが指定された場合には、フレームメモリ80から供給されるフィルタリング前の復号画像を参照画像としてイントラ予測部90へ出力する。また、セレクタ81aは、インター予測モードが指定された場合には、フィルタリング後の復号画像を参照画像としてインター予測部100へ出力する。
セレクタ81bは、可逆復号部62により取得される予測モード情報に応じて、加算部65へ供給すべき予測画像の出力元をイントラ予測部90とインター予測部100との間で切り替える。例えば、セレクタ81bは、イントラ予測モードが指定された場合には、イントラ予測部90から出力される予測画像を加算部65へ供給する。また、セレクタ81bは、インター予測モードが指定された場合には、インター予測部100から出力される予測画像を加算部65へ供給する。
イントラ予測部90は、可逆復号部62から入力されるイントラ予測に関する情報とフレームメモリ80からの参照画像とに基づいてイントラ予測処理を行い、予測画像を生成する。そして、イントラ予測部90は、生成した予測画像をセレクタ81bへ出力する。
インター予測部100は、可逆復号部62から入力されるインター予測に関する情報とフレームメモリ80からの参照画像とに基づいてインター予測処理を行い、予測画像を生成する。そして、インター予測部100は、生成した予測画像をセレクタ81bへ出力する。
<3.デブロックフィルタ>
[3-1.デブロックフィルタの構成例]
本節では、図5に示した画像符号化装置10のデブロックフィルタ26a及び図6に示した画像復号装置60のデブロックフィルタ26bの構成の一例を説明する。なお、デブロックフィルタ26a及びデブロックフィルタ26bの構成は、共通であってよい。したがって、以下の説明では、特に両者を区別する必要が無い場合には、デブロックフィルタ26a及びデブロックフィルタ26bをデブロックフィルタ26と総称する。
本実施形態にかかるデブロックフィルタ26は、上述したように、色差に関連する色差関連パラメータを用いて算出されたbSに基づいて、復号画像の色差成分に対するデブロックフィルタ適用要否を判定する。また、本実施形態にかかるデブロックフィルタ26は、上述したように、ブロック境界と直交する方向のサイズにさらに基づいて、復号画像の色差成分に対するデブロックフィルタ適用要否を判定する。また、本実施形態にかかるデブロックフィルタ26は、上述したように、非特許文献1におけるストロングフィルタよりも強度が大きい(ローパス特性が強い)ストロングフィルタを復号画像の色差成分に対して適用し得る。また、かかるストロングフィルタをより適切に適用するため、本実施形態では、非特許文献1におけるフィルタ強度の判定処理とは異なる方法でフィルタ強度を判定する。なお、以下では、主に復号画像の色差成分に対して適用されるデブロックフィルタに関するデブロックフィルタ26の機能について説明し、輝度成分に対して適用されるデブロックフィルタに関するデブロックフィルタ26の機能については適宜省略する。
図7は、本実施形態にかかるデブロックフィルタ26の詳細な構成の一例を示すブロック図である。図7を参照すると、デブロックフィルタ26は、境界強度算出部261と、判定部263と、フィルタリング部269とを有する。
(1)境界強度算出部
境界強度算出部261は、復号画像のブロック境界を対象とし、色差に関連する色差関連パラメータを用いてbS(境界強度)を算出する。YUV420フォーマットの信号が対象である場合、境界強度算出部261は、復号画像の輝度成分における4ライン単位、すなわち復号画像の色差成分における2ライン単位でbSを算出する。
本実施形態において境界強度算出部261がbSの算出に用いる色差関連パラメータは、各TUにおけるU成分の有意係数の有無を示すフラグ、及び各TUにおけるV成分の有意係数の有無を示すフラグを含む。図7に示されるように、境界強度算出部261には、各TUにおける各成分(Y成分、U成分、V成分)の有意係数の有無を示すフラグが直交変換部14、あるいは可逆復号部62から入力される。
境界強度算出部261は、図4を参照して説明した条件A、条件B1-Y、条件B1-U、条件B1-V、及び条件B2に基づいてbSを算出する。つまり、境界強度算出部261は、bSの算出対象であるブロック境界を挟むTUに、色差成分の有意係数が存在するか否かに基づいてbSを算出する。さらに、本実施形態にかかる境界強度算出部261は、bSの算出対象であるブロック境界を挟むTUに、Y成分、U成分、V成分の各成分の有意係数が存在するか否かを独立に判定することにより、bSを算出し得る。かかる構成により、図2を参照して説明したようにY成分の有意係数が存在するか否かに基づいてbSを算出するよりも、U成分、V成分に適したbSが算出され、より適切にデブロックフィルタを適用することが可能となる。
図8を参照して、境界強度算出部261によるbSの算出についてより詳細に説明する。図8は、境界強度算出部261により算出されるbSの一例を示す表である。境界強度算出部261により算出されるbSは、複数のビットにより表現され得る。図8に示される例では、bSは5ビットで表現される。また、当該複数のビットには、Y成分、U成分、V成分の各成分に対応するビットが少なくとも1つずつ含まれるように、bSが算出されてもよい。かかる構成により、後述する判定部263がbSに基づいてデブロックフィルタ適用要否を判定する際に、判定の対象となる成分ごとに対応するbSのビットを参照することで、容易に判定を行うことが可能となる。
また、境界強度算出部261は、bSに含まれる各ビットが各条件の真偽に対応するようにbSを算出してもよい。図8に示す例では、各条件が真である場合、当該条件に対応するビットが1であり、各条件が偽である場合、当該条件に対応するビットが0であるようにbSが算出される。また、図8に示す例では、bSが5ビットで表現され、bSの5ビット目がイントラ予測に関する条件Aと、bSの4ビット目がY成分の有意係数に関する条件B1-Yと、bSの3ビット目がU成分の有意係数に関する条件B1-Uと、bSの2ビット目がV成分の有意係数に関する条件B1-Vと、bSの1ビット目がMVと参照ピクチャに関する条件B2と、それぞれ対応している。ただし、bSの各ビットと各条件との対応は、図8に示した例に限定されない。例えば、Y成分、U成分、V成分の各成分にそれぞれ対応するbSの4ビット目、3ビット目、2ビット目の順番が入れ替えられてもよい。
(2)判定部
判定部263は、図7に示すように、復号画像の色差成分に対するデブロックフィルタ適用要否を判定する適用要否判定部265と、当該復号画像の色差成分に適用されるデブロックフィルタのフィルタ強度を判定するフィルタ強度判定部267とを含む。以下、適用要否判定部265、及びフィルタ強度判定部267の機能について順次説明を行う。
なお、以下の説明では、復号画像の色差成分に対するデブロックフィルタ適用要否、及びフィルタ強度の判定について主に説明し、輝度成分に対する判定については適宜説明を省略する。また、本実施形態にかかる適用要否判定部265、及びフィルタ強度判定部267は、U成分とV成分のそれぞれについて独立に、デブロックフィルタ適用要否、及びフィルタ強度を判定する。
適用要否判定部265は、復号画像のブロック境界を対象とし、境界強度算出部261により上述したように算出されたbS(境界強度)に基づいて、当該復号画像の色差成分に対するデブロックフィルタ適用要否を判定する。
また、適用要否判定部265は、さらに当該ブロック境界を挟むブロックのブロックサイズに基づいて当該復号画像の色差成分に対するデブロックフィルタ適用要否を判定してもよい。なお、以下ではかかるブロックサイズに基づく判定をラージブロック判定と呼称する場合がある。また、適用要否判定部265は、全てのブロック境界に対して常にラージブロック判定を行う必要はなく、bSに応じてラージブロック判定を行うか否かを決定してもよい。なお、ラージブロック判定が行われるケースや、ラージブロック判定の詳細については後述する。
本実施形態にかかる適用要否判定部265は、以下の条件C1の判定と、条件C2の判定とにより、デブロックフィルタ適用要否を判定する。
-条件C1:(bS==16||(条件C11&&条件C12))
-条件C2:d<beta
上記の条件C1における条件C11は、ラージブロック判定を行うか否かを判定するための条件であり、条件C12はラージブロック判定にかかる条件である。bSが16である場合、すなわちイントラ予測に関する条件Aが満たされる場合には、ラージブロック判定を行う必要なく条件C1は真であると判定され得る。そのため、ラージブロック判定を行うか否かを判定するための条件C11は、bSがインター予測に関連する値を有する場合に真となり得る。なお、このように、bSが16である場合にラージブロック判定をスキップして条件C1を真と判定することにより、ラージブロック判定にかかる処理量を抑制することができる。
また、条件C1の条件C11が偽である場合にも、条件C12の判定(ラージブロック判定)は行われず、条件C1が偽と判定される。かかる構成により、ラージブロック判定にかかる処理量を抑制することができる。
条件C11は、各成分の有意係数に関する条件、あるいは上述した条件B2が真である場合に真となってよい。つまり、条件C11は、判定対象となる成分によって異なってよい。例えば、判定対象がU成分である場合の条件C11は以下の条件C11-Uのような条件であってよく、判定対象がV成分である場合の条件C11は以下の条件C11-Vのような条件であってよい。
-条件C11-U:(bS&0x04||bS&0x01)
-条件C11-V:(bS&0x02||bS&0x01)
また、適用要否判定部265は、ブロック境界を挟むブロックにおける前記ブロック境界と直交する方向のサイズに基づいてラージブロック判定を行う。かかる構成により、ブロックの形状が非正方形の長方形の場合に、ブロック歪みの発生に影響を与えやすい、ブロック境界と直交する方向のサイズに基づいて、デブロックフィルタの適用要否を判定することが可能となる。
また、適用要否判定部265は、ブロック境界を挟むブロックにおけるブロック境界と直交する方向のサイズが所定の閾値より大きいか否かに基づいてラージブロック判定を行ってもよい。このラージブロック判定で用いられる閾値は限定されるものではないが、例えば16であってもよい。ブロック境界と直交する方向のサイズが小さく、特に16以下の場合には、ブロックノイズが目立ちにくいため、かかる構成により、不要なデブロックフィルタの適用を回避することが可能となる。例えば、ラージブロック判定にかかる条件C12は、以下のような条件であってよい。
-条件C12:(EDGE_VER&&block_width>16)||(EDGE_HOR&&block_height>16)
なお、上記の条件C12において、EDGE_VERは、判定の対象となるブロック境界が垂直境界であることを意味し、EDGE_HORは、判定の対象となるブロック境界が水平境界であることを意味する。
また、上記の条件C2は、上述した条件C92と同一であるため、ここでの説明は省略する。なお、上記の条件C2の判定は、条件C1が真であった場合に行われ、条件C1が偽であった場合には、条件C2の判定が行われることなく、デブロックフィルタを適用しないと判定される。条件C2の判定は、上述した式(1)~(7)のように変数dを算出する処理を要し、条件C1の判定よりも処理量が大きいため、条件C1の後に条件C2の判定を行うことにより、処理量を抑制することが可能である。
また、フィルタ強度判定部267は、上述したように条件C1、条件C2によりデブロックフィルタ適用要否が判定された後に、復号画像の色差成分に適用されるデブロックフィルタのフィルタ強度をさらに判定する。本実施形態で適用され得るデブロックフィルタは、後述するように、より弱い強度を有するウイークフィルタと、より強い強度を有するストロングフィルタの2種類であってよい。そして、後述するフィルタリング部269は、フィルタ強度判定部267により判定されたフィルタ強度に応じて、ウイークフィルタとストロングフィルタのいずれかを適用する。
フィルタ強度判定部267は、デブロックフィルタを適用すると判定された場合に、フィルタ強度を判定する。フィルタ強度の判定をデブロックフィルタ適用要否の判定よりも後に行うことにより、フィルタ強度の判定にかかる処理を抑制することが可能となる。
また、フィルタ強度判定部267は、ブロック境界の近傍に位置する画素の色差成分の波形に基づいて、フィルタ強度を判定する。以下、波形に基づく判定について説明する。フィルタ強度判定部267は、以下の波形に基づく条件C3により、フィルタ強度を判定する。
-条件C3:(条件C31&&条件C32&&条件C33)
-条件C31:|p3-p0|+|q3-q0|<(beta>>3)
-条件C32:|p2-2*p1+p0|+|q2-2*q1+q0|<(beta>>2)
-条件C33:|p0-q0|<((tc*5+1)>>1)
フィルタ強度判定部267は、ブロック境界の近傍に位置する画素のうち、2つのラインに含まれる画素について、上記の条件C3の判定を行う。上記C3で用いられる条件C31、条件C32、条件C33はラインごとに判定される。なお、条件C31、条件C32、条件C33におけるpi、qk、pi′、qk′、beta、及びtCについては、既に上記で説明したためここでの説明は省略する。
条件C31、条件C32、及び条件C33は、各ラインに含まれる画素を用いて判定する条件である。より具体的には条件C31は、各ラインに含まれる画素の色差成分のブロック内における平坦度に関する条件である。また、条件C32は、各ラインに含まれる画素の色差成分のブロック内における連続性の判定に関する条件である。また、条件C33は、各ラインに含まれる画素の色差成分のブロック間のギャップ(差分)に関する条件であり、より具体的にはブロック境界に隣接する画素値を用いて、ブロック間のギャップを判定するための条件である。
条件C31が真である場合には、各ブロック内において色差成分の波形の平坦度が高い。また、条件C32が真である場合には、各ブロック内において色差成分の波形は連続性が高い。また、条件C32が真である場合には、色差成分の波形はブロック境界において大きなギャップを有する。
上記のように、条件C3は、上記の条件C31、条件C32、条件C33の全てが真である場合に真と判定される。また、フィルタ強度判定部267は上記の条件C3をラインごとに判定する。ただし、上述したようにフィルタ強度は2ライン単位で判定される。つまり、連続する2つのラインの両方において上記の条件C3が真である場合に当該2つラインにストロングフィルタが適用され、偽である場合に当該2つのラインにウイークフィルタが適用されるように、フィルタ強度が判定される。
(3)フィルタリング部
フィルタリング部269は、適用要否判定部265によるデブロックフィルタ適用要否の判定結果に基づいて、ブロック境界の近傍に位置する画素の色差成分にデブロックフィルタを適用する。また、上述したようにフィルタリング部269は、フィルタ強度判定部267により判定されたフィルタ強度に応じて、ウイークフィルタ、またはストロングフィルタをデブロックフィルタとして適用する。
本実施形態にかかるフィルタリング部269により、色差成分に対して適用されるウイークフィルタは、例えば上述した非特許文献1やHEVCにおいて復号画像の色差成分に対して適用されるウイークフィルタと同一であってよい。一方、本実施形態において色差成分に対して適用されるストロングフィルタは、非特許文献1において色差成分に対して適用されるストロングフィルタ(HEVCにおいて輝度成分に対して適用されるストロングフィルタ)とは異なってよい。以下、本実施形態において、色差成分に対して適用されるストロングフィルタの例について説明する。
本実施形態において色差成分に対して適用されるストロングフィルタの係数は、ストロングフィルタの適用対象範囲の中心位置において2であり、その他の位置において1であってよい。また、フィルタリング部269は、ブロック境界から両側3画素までをストロングフィルタの適用対象範囲とし、適用対象範囲の中心位置の両側の3画素を参照画素として、適用対象範囲に含まれる画素の色差成分にストロングフィルタを適用してもよい。例えば、p0を適用対象範囲の中心位置としたストロングフィルタは、以下の式(14)のように表される。
p0′=Clip3(p0-w*tC,p0+w*tC,((p3+p2+p1+2*p0+q0+q1+q2+4)>>3)) …(14)
なお、上記の式(14)においてwは適宜設定され得る重みであり、例えば1、あるいは2に設定されてもよい。また、Clip3(a,b,c)は、上述したように値cをa≦c≦bの範囲でクリップするクリッピング処理を表す。
このようなストロングフィルタを適用することにより、上述した非特許文献1において色差成分に対して適用されるストロングフィルタよりも強いデブロックフィルタを適用することが可能となる。
ところで、ストロングフィルタの適用対象範囲の中心位置がブロック境界から2画素目、または3画素目の場合、参照画素には、ブロック境界から5画素以上離れた画素が含まれる。しかし、ブロック境界から5画素以上離れた画素は、フィルタ強度の判定に用いられておらず、参照画素として用いるのに適さない場合がある。そのため、フィルタリング部269は、ブロック境界から5画素以上離れた画素の代わりに、ブロック境界から4画素目の画素の画素値を、パディングすることで参照画素の画素値として用いてもよい。
例えば、p1を適用対象範囲の中心位置としたストロングフィルタは、以下の式(15)のように表される。
p1′=Clip3(p1-w*tC,p1+w*tC,((p4+p3+p2+2*p1+p0+q0+q1+4)>>3))
=Clip3(p1-w*tC,p1+w*tC,((p3+p3+p2+2*p1+p0+q0+q1+4)>>3))
=Clip3(p1-w*tC,p1+w*tC,((2*p3+p2+2*p1+p0+q0+q1+4)>>3)) …(15)
同様に、p2を適用対象範囲の中心位置としたストロングフィルタは、以下の式(16)のように表される。
p2′=Clip3(p2-w*tC,p2+w*tC,((p5+p4+p3+2*p2+p1+p0+q0+4)>>3))
=Clip3(p2-w*tC,p2+w*tC,((p3+p3+p3+2*p2+p1+p0+q0+4)>>3))
=Clip3(p2-w*tC,p2+w*tC,((3*p3+2*p2+p1+p0+q0+4)>>3)) …(16)
また、同様に、q0~q3を適用対象範囲の中心位置としたストロングフィルタは、それぞれ以下の式(17)~(19)のように表される。
q0′=Clip3(q0-w*tC,q0+w*tC,((p2+p1+p0+2*q0+q1+q2+q3+4)>>3)) …(17)
q1′=Clip3(q1-w*tC,q1+w*tC,((p1+p0+q0+2*q1+q2+2*q3+4)>>3)) …(18)
q2′=Clip3(q2-w*tC,q2+w*tC,((p0+q0+q1+2*q2+3*q3+4)>>3)) …(19)
[3-2.処理の流れ]
以上、本実施形態にかかるデブロックフィルタ26の構成例について説明した。続いて、本実施形態にかかるデブロックフィルタ26による処理の流れについて説明する。図9は、本実施形態にかかるデブロックフィルタ26による処理の流れの一例を示すフローチャートである。なお、以下では、デブロックフィルタ26による処理のうち、本実施形態の特徴に関する処理について説明を行い、他の処理についての説明は適宜省略する。
まず、境界強度算出部261により、bS(境界強度)が算出される(S10)。ここで、図10を参照して、bSの算出方法についてより詳細に説明する。図10は、境界強度算出部261により実行される境界強度算出処理(S10)の流れを説明するためのフローチャートである。
まず、境界強度算出部261はbSを0に初期化する(S102)。続いて、境界強度算出部261は、イントラ予測に関する条件である条件Aの真偽を判定する(S104)。条件Aが真である場合(S104においてYES)、bSは16に設定される(S106)。
一方、条件Aが偽である場合(S104においてNO)、境界強度算出部261は、動きベクトル(MV)と参照ピクチャに関する条件である条件B2の真偽を判定する(S108)。条件B2が真(S108においてYES)である場合、bSは1に設定される(S110)。
一方、条件B2が偽である場合(S108においてNO)、境界強度算出部261は、Y成分の有意係数の有無に関する条件である条件B1-Yの真偽を判定する(S112)。条件B1-Yが真(S112においてYES)である場合、bSに8が加算された(S114)後に、処理はステップS116へ進む。一方、条件B1-Yが偽(S112においてNO)である場合、処理はそのままステップS116へ進む。
ステップS116において、境界強度算出部261は、U成分の有意係数の有無に関する条件である条件B1-Uの真偽を判定する。条件B1-Uが真(S116においてYES)である場合、bSに4が加算された(S118)後に、処理はステップS120へ進む。一方、条件B1-Uが偽(S116においてNO)である場合、処理はそのままステップS120へ進む。
ステップS120において、境界強度算出部261は、V成分の有意係数の有無に関する条件である条件B1-Vの真偽を判定する。条件B1-Vが真(S120においてYES)である場合、bSに2が加算された(S122)後に、境界強度算出処理(S10)は終了する。条件B1-Vが偽(S120においてNO)である場合、境界強度算出処理(S10)はそのまま終了する。
図9に戻ってデブロックフィルタ26による処理の流れの説明を続ける。ステップS20において、判定部263の適用要否判定部265が、上述した条件C1の真偽を判定する。条件C1が偽である場合(S20においてNO)、処理は終了する。
一方、条件C1が真である場合(S20においてYES)、適用要否判定部265は、上述した条件C2の真偽を判定する(S30)。条件C2が偽である場合(S30においてNO)、処理は終了する。
一方、条件C2が真である場合(S30においてYES)、判定部263のフィルタ強度判定部267は、上述した条件C3の真偽を判定することにより、フィルタ強度を判定する(S40)。条件C3が真である場合(S40においてYES)、フィルタリング部269はブロック境界の近傍に位置する画素の色差成分にストロングフィルタを適用する(S50)。一方、条件C3が偽である場合(S40においてNO)、フィルタリング部269はブロック境界の近傍に位置する画素の色差成分にウイークフィルタを適用する(S60)。
以上、本実施形態にかかるデブロックフィルタ26による処理の流れについて説明した。なお、図9、図10を参照して説明した上述の処理は、例えばYUV420フォーマットの場合、復号画像の輝度成分における4ライン単位、すなわち復号画像の色差成分における2ライン単位で行われ得る。
<新DF>
以下、新たなDF(デブロックフィルタ)について説明する。
なお、本技術に関連する文献としては、以下の文献が従来技術としてあり、参照により本明細書に組み込まれる。
[JVET-L0072 (version 1 - date 2018-09-25 00:23:50)]
K. Andersson, Z. Zhang, R. Sjoberg: CE11: Long deblocking filters for luma (CE11.1.1) and for both luma and chroma (CE11.1.9), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.
[JVET-L0224 (version 1 - date 2018-09-25 01:59:53)]
Anand Meher Kotra, Biao Wang, Semih Esenlik, Han Gao, Zhijie Zhao, Jianle Chen: CE11.1.8: Longer tap Luma deblocking filter, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.
[JVET-L0403r1 (version 3 - date 2018-10-04 05:13:00)]
Dmytro Rusanovskyy, Marta Karczewicz: CE11: Test on long deblocking filtering from JVET-J0021/JVET-K0334 (CE11.1.4). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.
[JVET-L0405r1 (version 2 - date 2018-10-03 07:14:31)]
Weijia Zhu, Kiran Misra, Phil Cowan, Andrew Segall: CE11: Deblocking modifications for Large CUs both luma and chroma (Test 11.1.7a and CE11.1.7b). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.
[JVET-L0327-v1 (version 1 - date 2018-09-25 02:33:13)]
Masaru Ikeda, Teruhiko Suzuki: CE11: Long-tap deblocking filter for luma and chroma (CE11.1.6). Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, Macao, CN, 3-12 Oct. 2018.
また、本明細書で開示される範囲は、実施例の内容に限定されるものではなく、出願当時において公知となっている以下の参照文献REF4の内容も、参照により本明細書に組み込まれる。つまり、以下の参照文献REF4に記載されている内容もサポート要件について判断する際の根拠となる。
REF4:
[JVET-K1002-v2 (version 3 - date 2018-10-02 16:37:03)]
Jianle Chen, Yan Ye, Seung Hwan Kim: Algorithm description for Versatile Video Coding and Test Model 2 (VTM 2), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting, Ljubljana, SI, 10-18 July 2018.
VVCでは、符号化のブロックサイズが大きくなっており、(AVCの時に比べ8倍、HEVCの時に比べ2倍になり)、ブロック境界の劣化が顕著になっている。
ブロックサイズが大きい大ブロックについては、HEVC のDF(deblocking filter)では、強いブロックノイズがある場合に、ブロックノイズを除去しきれないことがある。
また、VVCでは、イントラの場合に、輝度成分と色差成分とで異なるブロック分割を選択することができ、したがって、輝度成分及び色差成分 のそれぞれでブロックサイズを最適化することができる。色差成分については、大ブロックを採用し、輝度成分については、ブロックサイズが小さい小ブロックを採用することにより、より符号化効率が改善することがわかっており、色差成分の大ブロックに対するDFの重要性は高まってきている。
大ブロックについては、ブロックノイズ(ブロック歪み)が大きくなる傾向がある。大きいブロックノイズを適切に除去するためには、フィルタ強度が強い、すなわち、画像をよりぼかすDFが要請される。
画像をよりぼかすフィルタは、長タップ(タップ数が多い)のフィルタになるため、大きいブロックノイズを適切に除去するには、輝度成分及び色差成分に適用するDFとして、長タップのフィルタを採用することが必要となる。
DFとして、長タップのフィルタを採用する場合には、ブロック境界、すなわち、例えば、ラスタスキャン順に、DFが適用されるときには、水平境界で、フィルタ処理に必要な画素数分のラインバッファを用意する必要がある。例えば、水平境界に直交する垂直方向に並ぶ、例えば、8画素がDFのフィルタ処理(フィルタリング処理)に用いられる場合において、その8画素のうちの4画素が、水平境界の上側のブロックの画素であるときには、4ライン(行)分の画素(の画素値)を記憶するラインバッファが必要となる。
DFに、大きな容量のラインバッファを設ける場合には、コストが大きくなる。コストを重視して、ラインバッファの容量を少なくすれば、DFとして、長タップのフィルタを採用することができず、DFの性能が低下して、ブロックノイズを十分に除去することが困難となる。
したがって、コストと性能とをバランスさせて、DFの仕様を決定することが望ましい。なお、AVC やHEVC では、DFについて、ラインバッファの容量を考慮したフィルタ設計は行われていない。
そこで、本技術では、新たなDF(以下、新DFともいう)を提案する。
なお、以下の説明は、特に断らない限り、色差成分を対象とする説明であり、輝度成分については、説明を省略する。
図11は、新DFとしてのDF300の構成例を示すブロック図である。
DF300は、DF26として用いることができる。
なお、図11において、図7のDF26と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図11において、DF300は、境界強度算出部261、判定部310、フィルタリング部320、ラインバッファ330、及び、制御部340を有する。
したがって、DF300は、境界強度算出部261を有する点で、図7のDF26と共通する。但し、DF300は、判定部263及びフィルタリング部269に代えて、判定部310及びフィルタリング部320をそれぞれ有する点で、DF26と相違する。さらに、DF300は、制御部340を新たに有する点で、DF26と相違する。
なお、図7には、図示していないが、図7のDF26は、DF300と同様に、ラインバッファを有する。但し、DF300が有するラインバッファ330とDF26が有するラインバッファとでは、容量が異なり得る。
判定部310は、適用要否判定部311及びフィルタ強度判定部312を有する。
適用要否判定部311には、境界強度算出部261からbSが供給される。また、適用要否判定部311には、DF300の外部(図5の加算部23や図6の加算部65)やラインバッファ330から復号画像が供給される。
適用要否判定部311は、図7の適用要否判定部265と同様に、境界強度算出部261からのbS、さらには、DF300の外部やラインバッファ330からの復号画像を用いて、適用要否判定処理を行う。
なお、適用要否判定部311は、bSに応じて、ブロック境界に、段差がある可能性が高いかどうかを判定する段差判定を行う。例えば、適用要否判定部311は、bSが0より大である(1以上である)場合に、ブロック境界に、段差がある可能性が高いと判定する。そして、適用要否判定部311は、段差判定において、ブロック境界に、段差がある可能性が高いと判定した場合に、ブロック境界付近の色差成分の画素にDFを適用するかどうかを判定するフィルタ適用判定を行う。適用要否判定部311が行う適用要否判定処理は、以上の段差判定とフィルタ適用判定とから構成される。
適用要否判定部311は、適用要否判定処理の判定結果として、フィルタ適用判定の判定結果を、フィルタ強度判定部312に供給する。
フィルタ強度判定部312には、適用要否判定部311からフィルタ適用判定の判定結果が供給される他、DF300の外部やラインバッファ330から復号画像が供給される。
フィルタ強度判定部312は、適用要否判定部311からのフィルタ適用判定が、DFを適用する旨を表している場合、図7のフィルタ強度判定部267と同様に、DF300の外部やラインバッファ330からの復号画像を用いて、復号画像の色差成分に適用されるDFのフィルタ強度を判定するフィルタ強度判定、すなわち、復号画像の色差成分に適用されるDFのフィルタタイプを判定するフィルタタイプ判定を行う。そして、フィルタ強度判定部321は、フィルタタイプ判定の判定結果を、フィルタリング部320に供給する。
新DFにおいて、復号画像の色差成分に適用されるDFのフィルタタイプには、例えば、(ストロングフィルタと比較して)より弱いフィルタ強度を有するウイークフィルタと、(ウイークフィルタと比較して)より強いフィルタ強度を有するストロングフィルタとの2つのフィルタタイプがある。
フィルタリング部320には、フィルタ強度判定部312からフィルタタイプ判定の判定結果が供給される他、DF300の外部やラインバッファ330から復号画像が供給される。
フィルタリング部320は、図7のフィルタリング部269と同様に、フィルタ強度判定部312からのフィルタタイプ判定の判定結果が表すストロングフィルタ又はウイークフィルタを、復号画像に適用するフィルタ処理を行う。すなわち、フィルタリング部320は、DF300の外部やラインバッファ330からの復号画像のうちの、フィルタ処理の対象となる色差成分の画素である対象画素のフィルタ処理としての演算を、対象画素の近傍の色差成分の画素を用いて行う。ここで、フィルタ処理に用いられる画素を、フィルタ構成画素ともいう。
フィルタリング部320は、対象画素のフィルタ処理により得られる(色差成分の)画素を、フィルタ画素(フィルタ処理後のフィルタ画像を構成する画素)として出力する。
ラインバッファ330には、DF300の外部から復号画像が供給される。ラインバッファ330は、DF300の外部からの復号画像の色差成分の画素(復号画像の画素の色差成分)を適宜記憶する。なお、ラインバッファ330は、所定のライン数(行数)分の色差成分の画素を記憶する記憶容量を有し、その記憶容量分の画素を記憶すると、新たな画素を、最も古い画素に上書きする形で記憶する。
制御部340は、DF300を構成する各ブロックを制御する。
なお、本実施の形態では、DF300は、例えば、復号画像を、ラスタスキャン順に処理することとする。復号画像について、ラスタスキャン順ではなく、例えば、上から下方向に処理することを、左から右方向に繰り返す場合には、以下説明する水平(横)(左右)と垂直(縦)(上下)とは、逆になる(入れ替わる)。
図12は、DF300で処理される復号画像の構成例を示す図である。
復号画像を構成するブロックには、CTUがあり、CTUは、PUやTU等のブロックを含む。
図11のDF300の強度算出部261、判定部310、及び、フィルタリング部320は、例えば、CTUを単位として処理を行うことができ、この場合、CTUを記憶することができる図示せぬバッファ(以下、内部バッファともいう)を有する。
いま、ブロック境界のうちの、CTUの境界を、CTU境界というとともに、CTU境界以外のブロック境界を、内部境界ということとする。また、DF300で処理の対象となっているCTUを、注目CTUということとする。
強度算出部261、判定部310、及び、フィルタリング部320は、内部バッファに、注目CTUに含まれるライン(行)の画素を記憶し、その注目CTUの処理を行う。
注目CTUにおいて、水平方向の内部境界については、その内部境界の上下のブロックの画素は、内部バッファに記憶されるため、ラインバッファ330に記憶する必要はない。
また、注目CTUにおいて、水平方向の上側のCTU境界については、そのCTU境界の下のブロックの画素は、内部バッファに記憶されるため、やはり、ラインバッファ330に記憶する必要はない。但し、水平方向の上側のCTU境界の上のブロックの画素は、注目CTUの上の行のCTU内の画素であるから、内部バッファには記憶されていない。そのため、注目CTUの水平方向の上側のCTU境界の上のブロックの画素は、ラインバッファ330に記憶しておく必要がある。
以上が、ラインバッファ330が必要な理由である。
図13は、図11のDF300の処理を説明するフローチャートである。
DF300において、ラインバッファ330は、適宜、DF300の外部から供給される復号画像の色差成分の画素を記憶する。
そして、ステップS211において、境界強度算出部261は、上述したように、bSを算出し、適用要否判定部311に供給して、処理は、ステップS212に進む。
ステップS212では、適用要否判定部311は、bSが0より大であるかどうかを判定する段差判定を行う。
ステップS212の段差判定において、bSが0より大でないと判定された場合、すなわち、ブロック境界に、段差がある可能性がない場合、処理は、終了する。したがって、この場合、復号画像に、DF300のフィルタ処理は適用されない。
一方、ステップS212の段差判定において、bSが0より大であると判定された場合、すなわち、ブロック境界に、段差がある可能性がある場合、処理は、ステップS213に進む。
ステップS213では、適用要否判定部311は、ブロック境界付近の色差成分の画素にDFを適用するかどうかを判定するフィルタ適用判定を行う。
ステップS213のフィルタ適用判定において、DFを適用しない(不適用とする)と判定された場合、処理は、終了する。
一方、ステップS213のフィルタ適用判定において、DFを適用すると判定された場合、処理は、ステップS214に進む。
ステップS214では、フィルタ強度判定部312は、フィルタタイプ判定を行い、処理は、ステップS215に進む。
ステップS215では、フィルタリング部320は、ステップS214のフィルタタイプ判定の判定結果が表すストロングフィルタ又はウイークフィルタを、復号画像に適用するフィルタ処理を行い、処理は、終了する。
図14は、HEVCのDFを説明する図である。
HEVCのDFには、フィルタY1, Y2, C1がある。
フィルタY1は、輝度成分をDFの対象としてフィルタ処理を行う輝度成分のストロングフィルタである。
フィルタY2は、輝度成分をDFの対象としてフィルタ処理を行う輝度成分のウイークフィルタである。
フィルタC1は、色差成分をDFの対象としてフィルタ処理を行う色差成分のフィルタである。
HEVCにおいて、色差成分をDFの対象としてフィルタ処理を行うフィルタは、フィルタC1の1つだけであり、ストロングフィルタ及びウイークフィルタのような区別はない。
図15は、新DFを説明する図である。
新DFには、フィルタNY1, NY2, NC1, NC2がある。
フィルタNY1は、輝度成分をDFの対象としてフィルタ処理を行う輝度成分のストロングフィルタである。フィルタNY1としては、例えば、フィルタY1を採用することができる。
フィルタNY2は、輝度成分をDFの対象としてフィルタ処理を行う輝度成分のウイークフィルタである。フィルタNY2としては、例えば、フィルタY2を採用することができる。
フィルタNC1は、色差成分をDFの対象としてフィルタ処理を行う色差成分のストロングフィルタ(フィルタ強度がフィルタNC2より強いフィルタ)である。フィルタNC1としては、例えば、フィルタY1 ,Y2、若しくは、後述するオリジナルのフィルタOFをベースとするフィルタ(フィルタY1 ,Y2、若しくは、OFそのもの、又は、フィルタY1 ,Y2、若しくは、OFのフィルタ特性が削減されたフィルタ)を採用することができる。
フィルタNC2は、色差成分をDFの対象としてフィルタ処理を行う色差成分のウイークフィルタ(フィルタ強度がフィルタNC1より弱いフィルタ)である。フィルタNC2としては、例えば、フィルタC1を採用することができる。
図16は、ブロック境界の色差成分の画素の例を示す図である。
なお、図16において、左右方向は、復号画像の上下方向を表し、上下方向は、色差成分(の大きさ)を表す。したがって、図16において、垂直方向の直線で記載しているブロック境界は、復号画像の水平境界(水平方向の境界)である。
新DFについては、以上のように、水平境界の上下に隣接するブロックBp及びBqの画素にDFを適用する場合を例に説明を行う。この場合、ブロックBp及びBqの画素に適用されるDFは、垂直方向にかけられる垂直フィルタである。
垂直境界の左右に隣接するブロックの画素に適用するDFとしては、新DFを採用することもできるし、その他のフィルタを採用することもできる。以下では、垂直境界の左右に隣接するブロックの画素に、DFを適用する場合の説明は、省略する。
図16において、水平境界の上のブロックBpの画素及び下のブロックBqの画素を、図3と同様に、pi,j及びqk,jでそれぞれ表す。但し、図16では、pi,j及びqk,jのインデックスjが省略されている。画素pi(pi,j)は、pサイドの画素とも呼ばれ、画素qk(qk,j)は、qサイドの画素とも呼ばれる。
水平境界の上下に隣接するブロックBp及びBqにおいて、|p3 - p0|+|q3 - q0|は、ブロックBpとBqとの間の平坦度を表す。また、|p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0|は、ブロックBpとBqとの間の連続性を表し、|p0 - q0| は、ブロックBpとBqとの間のギャップを表す。
以下、新DFにおいて、色差成分に適用されるストロングフィルタとしてのフィルタNC1のバリエーションについて説明する。
<フィルタNC1として、フィルタY1をベースとするフィルタを採用する場合>
図17は、フィルタNC1として、フィルタY1をベースとするフィルタを採用する場合の、フィルタNC1と、必要となる画素とを示す図である。
フィルタY1をベースとするフィルタNC1としては、Y1ノーマルフィルタ、Y1マイナス1非対称フィルタ、Y1マイナス1対称フィルタ、Y1マイナス2非対称フィルタ、及び、Y1マイナス2対称フィルタがある。
フィルタNC1として、Y1ノーマルフィルタを採用する場合、フィルタ適用判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定と同様の判定が行われる。
輝度成分適用判定では、式(20)を満たすかどうかが判定される。式(20)を満たす場合には、DFを適用すると判定され、満たさない場合は、DFを適用しないと判定される。
dp0 = Abs( p2,0 - 2 * p1,0 + p0,0 )
dp3 = Abs( p2,3 - 2 * p1,3 + p0,3 )
dq0 = Abs( q2,0 - 2 * q1,0 + q0,0 )
dq3 = Abs( q2,3 - 2 * q1,3 + q0,3 )
d = dp0 + dp3 + dq0 + dq3 < beta
・・・(20)
なお、式(20)において、Abs(A)は、Aの絶対値を表す。
輝度成分適用判定では、ブロックBp及びBqの1ライン目の輝度成分の画素pi,j及びqk,jと4ライン目の輝度成分の画素pi,j及びqk,jを用いて、式(20)を満たすかどうかが判定される。そして、式(20)が満たされる場合には、ブロックBp及びBqの4ラインの画素に、DFを適用すると判定される。
ここで、YUV420フォーマットの復号画像をDFの対象とすることとすると、ブロックBp及びBqは、2ラインの色差成分の画素を有する。Y1ノーマルフィルタを採用する場合のフィルタ適用判定では、2ラインの色差成分の画素のうちの1ラインの色差成分の画素を用いて、式(20)を満たすかどうかが判定される。すなわち、例えば、式(20)のdp3及びdq3を0として、式(20)を満たすかどうかが判定される。
この場合、フィルタ適用判定に用いる色差成分の画素(以下、適用判定画素ともいう)は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素のライン分の色差成分を記憶する容量(以下、3画素ライン分の容量ともいう)が必要となる。
フィルタNC1として、Y1ノーマルフィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定と同様の判定が行われる。すなわち、フィルタタイプ判定では、式(21)を満たすかどうかが判定される。
|p3 - p0|+|q3 - q0| < (beta>>3)
|p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2)
|p0 - q0| < ((tc*5+1)>>1)
・・・(21)
なお、A>>Bは、AをBビットだけ右シフトすることを表し、A<<Bは、AをBビットだけ左シフトすることを表す。
フィルタタイプ判定では、式(21)が満たされる場合、色差成分にストロングフィルタとしてのフィルタNC1を適用すると判定され、式(21)が満たされない場合、色差成分にウイークフィルタとしてのフィルタNC2を適用すると判定される。
式(21)のフィルタタイプ判定に用いる色差成分の画素(以下、タイプ判定画素ともいう)は、画素p0ないしp3及びq0ないしq3の8画素である。
したがって、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
Y1ノーマルフィルタとしては、HEVCの輝度成分のストロングフィルタを採用することができる。この場合、Y1ノーマルフィルタは、式(22)で表される。
p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 )
p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 )
q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3 *q2 + 2*q3 + 4 ) >> 3 )
・・・(22)
なお、Clip3(A, B, C)は、C<Aの場合はAを、C>Bの場合はBを、他の場合はCを、それぞれ表す関数である。
式(22)のY1ノーマルフィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp3及びq0ないしq3の8画素である。また、フィルタ処理の対象となる色差成分の対象画素(フィルタ画素が求められる画素)は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、Y1ノーマルフィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
以上から、フィルタNC1として、Y1ノーマルフィルタを採用する場合、ラインバッファ330の記憶容量は、適用判定画素、タイプ判定画素、及び、フィルタ構成画素のうちの、pサイドの画素が最も多いタイプ判定画素に拘束され、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
フィルタNC1として、Y1マイナス1非対称フィルタを採用する場合、フィルタ適用判定は、例えば、Y1ノーマルフィルタの場合と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、Y1ノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、Y1マイナス1非対称フィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定の式(21)の(水平境界から最も遠いpサイドの1個の)画素p3を、(1画素だけ)水平境界側の画素p2に置換した式(23)を満たすかどうかが判定される。
|p2 - p0|+|q3 - q0| < (beta>>3)
|p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2)
|p0 - q0| < ((tc*5+1)>>1)
・・・(23)
フィルタタイプ判定では、式(23)が満たされる場合、色差成分にストロングフィルタとしてのフィルタNC1を適用すると判定され、式(23)が満たされない場合、色差成分にウイークフィルタとしてのフィルタNC2を適用すると判定される。
式(23)のフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp2及びq0ないしq3の7画素である。
したがって、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
Y1マイナス1非対称フィルタとしては、式(22)のY1ノーマルフィルタ、すなわち、HEVCの輝度成分のストロングフィルタの画素p3を、水平境界側の画素p2に置換したフィルタを採用することができる。この場合、Y1マイナス1非対称フィルタは、式(24)で表される。
p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 5*p2 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 )
p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 )
q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3 *q2 + 2*q3 + 4 ) >> 3 )
・・・(24)
式(24)のY1マイナス1非対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp2及びq0ないしq3の7画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、Y1マイナス1非対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
式(24)のY1マイナス1非対称フィルタは、式(22)の画素p2'を求める1番目の式の画素p3を、水平境界側の画素p2に置換したフィルタになっており、そのため、画素p2'を求める1番目の式の画素p2のタップ係数(フィルタ係数)が、式(22)の3から5(=2+3)に変更されている。
以上から、フィルタNC1として、Y1マイナス1非対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y1マイナス1非対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp2、及び、ブロックBqの画素q0ないしq3であり、水平境界に対して非対称(pサイドとqサイドとで非対称)になっている。
フィルタNC1として、Y1マイナス1対称フィルタを採用する場合、フィルタ適用判定は、例えば、Y1ノーマルフィルタの場合と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、Y1ノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、Y1マイナス1対称フィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定の式(21)の画素p3を、水平境界側の画素p2に置換するとともに、画素q3を、水平境界側の画素q2に置換した式(25)を満たすかどうかが判定される。
|p2 - p0|+|q2 - q0| < (beta>>3)
|p2 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2)
|p0 - q0| < ((tc*5+1)>>1)
・・・(25)
フィルタタイプ判定では、式(25)が満たされる場合、色差成分にストロングフィルタとしてのフィルタNC1を適用すると判定され、式(25)が満たされない場合、色差成分にウイークフィルタとしてのフィルタNC2を適用すると判定される。
式(25)のフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
Y1マイナス1対称フィルタとしては、式(22)のY1ノーマルフィルタ、すなわち、HEVCの輝度成分のストロングフィルタの画素p3を、水平境界側の画素p2に置換するとともに、画素q3を、水平境界側の画素q2に置換したフィルタを採用することができる。この場合、Y1マイナス1対称フィルタは、式(26)で表される。
p2′ = Clip3( p2 - 2*tC, p2 + 2*tC, ( 5*p2 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( p2 + p1 + p0 + q0 + 2 ) >> 2 )
p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2 * p0 + 2 * q0 + 2 * q1 + q2 + 4 ) >> 3 )
q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 5 *q2 + 4 ) >> 3 )
・・・(26)
式(26)のY1マイナス1対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp2及びq0ないしq2の6画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、Y1マイナス1対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
式(26)のY1マイナス1対称フィルタは、式(22)の画素p2'を求める1番目の式の画素p3を、水平境界側の画素p2に置換したフィルタになっており、そのため、画素p2'を求める1番目の式の画素p2のタップ係数が、式(22)の3から、5(=2+3)に変更されている。さらに、式(26)のY1マイナス1対称フィルタは、式(22)の画素q2'を求める6番目の式の画素q3を、水平境界側の画素q2に置換したフィルタになっており、そのため、画素q2'を求める6番目の式の画素q2のタップ係数が、式(22)の3から5(=3+2)に変更されている。
以上から、フィルタNC1として、Y1マイナス1対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y1マイナス1対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp2、及び、ブロックBqの画素q0ないしq2であり、水平境界に対して対称になっている。
フィルタNC1として、Y1マイナス2非対称フィルタを採用する場合、フィルタ適用判定では、例えば、式(20)のdp3及びdq3を0とするとともに、画素p2,0を、水平境界側の画素p1,0に置換した式(27)を満たすかどうかが判定される。
dp0 = Abs( p1,0 - 2 * p1,0 + p0,0 ) = Abs( p0,0 - p1,0 )
dq0 = Abs( q2,0 - 2 * q1,0 + q0,0 )
d = dp0 + dq0 < (beta>>1)
・・・(27)
フィルタ適用判定では、式(27)が満たされる場合、DFを適用すると判定され、満たさない場合は、DFを適用しないと判定される。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、画素p0ないしp1及びq0ないしq2の5画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、Y1マイナス2非対称フィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定の式(21)の(水平境界から最も遠いpサイドの2個の)画素p3及びp2を、水平境界側の画素p1に置換した式(28)を満たすかどうかが判定される。
|p1 - p0|+|q3 - q0| < (beta>>3)
|p1 - 2*p1 + p0|+ |q2 - 2*q1 + q0| < (beta>>2)
= |p0 - p1|+ |q2 - 2*q1 + q0| < (beta>>2)
|p0 - q0| < ((tc*5+1)>>1)
・・・(28)
フィルタタイプ判定では、式(28)が満たされる場合、色差成分にストロングフィルタとしてのフィルタNC1を適用すると判定され、式(28)が満たされない場合、色差成分にウイークフィルタとしてのフィルタNC2を適用すると判定される。
式(28)のフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp1及びq0ないしq3の6画素である。
したがって、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
Y1マイナス2非対称フィルタとしては、式(22)のY1ノーマルフィルタ、すなわち、HEVCの輝度成分のストロングフィルタの画素p3及び画素p2を、水平境界側の画素p1に置換したフィルタを採用することができる。この場合、Y1マイナス2非対称フィルタは、式(29)で表される。
p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( 2*p1 + p0 + q0 + 2 ) >> 2 )
p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( 3*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3 )
q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + q1 + q2 + 2 ) >> 2 )
q2′ = Clip3( q2 - 2*tC, q2 + 2*tC, ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3 )
・・・(29)
式(29)のY1マイナス2非対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq3の6画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq2の5画素である。
したがって、水平境界がCTU境界である場合、Y1マイナス2非対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
式(29)のY1マイナス2非対称フィルタは、式(22)の画素p2'を求める1番目の式がない式になっている。さらに、式(29)のY1マイナス2非対称フィルタは、式(22)の画素p1'及びp0'を求める式の画素p2を、水平境界側の画素p1に置換したフィルタになっている。そのため、式(29)の画素p1'を求める式の画素p1のタップ係数が、式(22)の1から2(=1+1)に変更されており、式(29)の画素p0'を求める式の画素p1のタップ係数が、式(22)の2から3(=1+2)に変更されている。
以上から、フィルタNC1として、Y1マイナス2非対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y1マイナス2非対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq3であり、水平境界に対して非対称になっている。
フィルタNC1として、Y1マイナス2対称フィルタを採用する場合、フィルタ適用判定では、例えば、式(20)のdp3及びdq3を0とするとともに、画素p2,0及びq2,0を、水平境界側の画素p1,0及びq1,0にそれぞれ置換した式(30)を満たすかどうかが判定される。
dp0 = Abs( p1,0 - 2 * p1,0 + p0,0 ) = Abs( p0,0 - p1,0 )
dq0 = Abs( q1,0 - 2 * q1,0 + q0,0 ) = Abs( q0,0 - q1,0 )
d = dp0 + dq0 < (beta>>1)
・・・(30)
フィルタ適用判定では、式(30)が満たされる場合、DFを適用すると判定され、満たさない場合は、DFを適用しないと判定される。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、画素p0ないしp1及びq0ないしq1の4画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、Y1マイナス2対称フィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分にDFを適用するかどうかを判定する輝度成分適用判定の式(21)の画素p3及びp2を、水平境界側の画素p1に置換するとともに、画素q3及びq2を、水平境界側の画素q1に置換した式(31)を満たすかどうかが判定される。
|p1 - p0|+|q1 - q0| < (beta>>3)
|p1 - 2*p1 + p0|+ |q1 - 2*q1 + q0| < (beta>>2)
= |p0 - p1|+ |q0 - q1| < (beta>>2)
|p0 - q0| < ((tc*5+1)>>1)
・・・(31)
フィルタタイプ判定では、式(31)が満たされる場合、色差成分にストロングフィルタとしてのフィルタNC1を適用すると判定され、式(31)が満たされない場合、色差成分にウイークフィルタとしてのフィルタNC2を適用すると判定される。
式(31)のフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
Y1マイナス2対称フィルタとしては、式(22)のY1ノーマルフィルタ、すなわち、HEVCの輝度成分のストロングフィルタの画素p3及び画素p2を、水平境界側の画素p1に置換するとともに、画素q3及び画素q2を、水平境界側の画素q1に置換したフィルタを採用することができる。この場合、Y1マイナス2対称フィルタは、式(32)で表される。
p1′ = Clip3( p1 - 2*tC, p1 + 2*tC, ( 2*p1 + p0 + q0 + 2 ) >> 2 )
p0′ = Clip3( p0 - 2*tC, p0 + 2*tC, ( 3*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 )
q0′ = Clip3( q0 - 2*tC, q0 + 2*tC, ( p1 + 2*p0 + 2*q0 + 3*q1 + 4 ) >> 3 )
q1′ = Clip3( q1 - 2*tC, q1 + 2*tC, ( p0 + q0 + 2*q1 + 2 ) >> 2 )
・・・(32)
式(32)のY1マイナス2対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq1の4画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、Y1マイナス2対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
式(32)のY1マイナス2対称フィルタは、式(22)の画素p2'を求める1番目の式と、画素q2'を求める6番目の式とがない式になっている。さらに、式(32)のY1マイナス2対称フィルタは、式(22)の画素p1'及びp0'を求める式の画素p2を画素p1に置換するとともに、式(22)の画素q1'及びq0'を求める式の画素q2を、水平境界側の画素q1に置換したフィルタになっている。そのため、式(31)の画素p1'を求める式の画素p1のタップ係数が、式(22)の1から2(=1+1)に変更されており、式(31)の画素p0'を求める式の画素p1のタップ係数が式(22)の2から3(=1+2)に変更されている。さらに、式(31)の画素q0'を求める式の画素q1のタップ係数が、式(22)の2から3(=2+1)に変更されており、式(31)の画素q1'を求める式の画素q1のタップ係数が、式(22)の1から2(=1+1)に変更されている。
以上から、フィルタNC1として、Y1マイナス2対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y1マイナス2対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq1であり、水平境界に対して対称になっている。
<フィルタNC1として、フィルタOFをベースとするフィルタを採用する場合>
図18は、フィルタNC1として、フィルタOFをベースとするフィルタを採用する場合の、フィルタNC1と、必要となる画素とを示す図である。
フィルタOFをベースとするフィルタNC1としては、OFノーマルフィルタ、OFマイナス1非対称フィルタ、OFマイナス1対称フィルタ、OFマイナス2非対称フィルタ、及び、OFマイナス2対称フィルタがある。
フィルタNC1として、OFノーマルフィルタを採用する場合、フィルタ適用判定は、Y1ノーマルフィルタと同様に、すなわち、式(20)の輝度成分適用判定と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、Y1ノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、OFノーマルフィルタを採用する場合、フィルタタイプ判定では、Y1ノーマルフィルタと同様に、式(21)を満たすかどうかが判定される。
したがって、フィルタタイプ判定に用いる色差成分のタイプ判定画素は、Y1ノーマルフィルタと同様の画素p0ないしp3及びq0ないしq3の8画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
OFノーマルフィルタとしては、HEVCの輝度成分のストロングフィルタ、すなわち、式(22)のY1ノーマルフィルタのタップ係数や、クリップ関数Clip3(A, B, C)のクリップパラメータA及びBを変更したフィルタを採用することができる。OFノーマルフィルタとしては、例えば、式(33)のフィルタを採用することができる。
p2′ = Clip3( p2 - tC, p2 + tC, ( 3*p3 + 2*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - tC, p1 + tC, ( 2*p3 + p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 )
p0′ = Clip3( p0 - tC, p0 + tC, ( p3 + p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 )
q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 )
q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 )
q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 )
・・・(33)
式(33)のOFノーマルフィルタは、HEVCの輝度成分のストロングフィルタ、すなわち、式(22)のY1ノーマルフィルタのタップ係数、並びに、クリップ関数Clip3(A, B, C)のクリップパラメータA及びBを変更したフィルタになっている。例えば、式(33)のOFノーマルフィルタでは、式(22)のクリップパラメータを構成する2tCが、tCになっている。
式(33)のOFノーマルフィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp3及びq0ないしq3の8画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、OFノーマルフィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
以上から、フィルタNC1として、OFノーマルフィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp3の4画素ライン分の容量が必要となる。
フィルタNC1として、OFマイナス1非対称フィルタを採用する場合、フィルタ適用判定は、例えば、OFノーマルフィルタの場合と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、OFノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、OFマイナス1非対称フィルタを採用する場合、フィルタタイプ判定では、Y1マイナス1非対称フィルタと同様に、式(23)を満たすかどうかが判定される。
したがって、OFマイナス1非対称フィルタのタイプ判定に用いる色差成分のタイプ判定画素は、Y1マイナス1非対称フィルタと同様に、画素p0ないしp2及びq0ないしq3の7画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
OFマイナス1非対称フィルタとしては、式(33)のOFノーマルフィルタの画素p3を、水平境界側の画素p2に置換したフィルタを採用することができる。この場合、OFマイナス1非対称フィルタは、式(34)で表される。
p2′ = Clip3( p2 - tC, p2 + tC, ( 5*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - tC, p1 + tC, ( 3*p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 )
p0′ = Clip3( p0 - tC, p0 + tC, ( 2*p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 )
q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 )
q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 )
q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 )
・・・(34)
式(34)のOFマイナス1非対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp2及びq0ないしq3の7画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、OFマイナス1非対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
式(34)のOFマイナス1非対称フィルタは、式(33)の画素p2'ないしp0'を求める式の画素p3を、水平境界側の画素p2に置換したフィルタになっている。そのため、画素p2'を求める式の画素p2のタップ係数が、式(33)の2から5(=3+2)に変更されている。さらに、画素p1'を求める式の画素p2のタップ係数が、式(33)の1から3(=2+1)に変更され、画素p2'を求める式の画素p2のタップ係数が、式(33)の1から2(=1+1)に変更されている。
以上から、フィルタNC1として、OFマイナス1非対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
ここで、フィルタNC1として、OFマイナス1非対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp2、及び、ブロックBqの画素q0ないしq3であり、水平境界に対して非対称になっている。
フィルタNC1として、OFマイナス1対称フィルタを採用する場合、フィルタ適用判定は、例えば、OFノーマルフィルタの場合と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、OFノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、OFマイナス1対称フィルタを採用する場合、フィルタタイプ判定では、1マイナス1対称フィルタと同様に、式(25)を満たすかどうかが判定される。
したがって、OFマイナス1対称フィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、Y1マイナス1対称フィルタと同様に、画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
OFマイナス1対称フィルタとしては、式(33)のOFノーマルフィルタの画素p3を、水平境界側の画素p2に置換するとともに、画素q3を、水平境界側の画素q2に置換したフィルタを採用することができる。この場合、OFマイナス1対称フィルタは、式(35)で表される。
p2′ = Clip3( p2 - tC, p2 + tC, ( 5*p2 + p1 + p0 + q0 + 4 ) >> 3 )
p1′ = Clip3( p1 - tC, p1 + tC, ( 3*p2 + 2*p1 + p0 + q0 + q1 + 4 ) >> 3 )
p0′ = Clip3( p0 - tC, p0 + tC, ( 2*p2 + p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 )
q0′ = Clip3( q0 - tC, q0 + tC, ( p2 + p1 + p0 + 2 * q0 + q1 + 2*q2 + 4 ) >> 3 )
q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + 3*q2 + 4 ) >> 3 )
q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 5*q2 + 4 ) >> 3 )
・・・(35)
式(35)のOFマイナス1対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp2及びq0ないしq2の6画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp2及びq0ないしq2の6画素である。
したがって、水平境界がCTU境界である場合、OFマイナス1対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
式(35)のOFマイナス1対称フィルタは、式(33)の画素p2'ないしp0'を求める式の画素p3を、水平境界側の画素p2に置換したフィルタになっており、そのため、画素p2'を求める式の画素p2のタップ係数が、式(33)の2から、5(=3+2)に変更されている。さらに、画素p1'を求める式の画素p2のタップ係数が、式(33)の1から、3(=2+1)に変更され、画素p0'を求める式の画素p2のタップ係数が、式(33)の1から、2(=1+1)に変更されている。
また、式(35)のOFマイナス1対称フィルタは、式(33)の画素q0'ないしq2'を求める式の画素q3を、水平境界側の画素q2に置換したフィルタになっており、そのため、画素q0'を求める式の画素q2のタップ係数が、式(33)の1から2(=1+1)に変更されている。さらに、画素q1'を求める式の画素q2のタップ係数が、式(33)の1から3(=1+2)に変更され、画素q2'を求める式の画素q2のタップ係数が、式(33)の2から5(=2+3)に変更されている。
以上から、フィルタNC1として、OFマイナス1対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
ここで、フィルタNC1として、OFマイナス1対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp2、及び、ブロックBqの画素q0ないしq2であり、水平境界に対して対称になっている。
フィルタNC1として、OFマイナス2非対称フィルタを採用する場合、フィルタ適用判定では、Y1マイナス2非対称フィルタと同様に、式(27)を満たすかどうかが判定される。
したがって、OFマイナス2非対称フィルタのフィルタ適用判定に用いる色差成分の適用判定画素は、Y1マイナス2非対称フィルタと同様に、画素p0ないしp1及びq0ないしq2の5画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、OFマイナス2非対称フィルタを採用する場合、フィルタタイプ判定では、Y1マイナス2非対称フィルタと同様に、式(28)を満たすかどうかが判定される。
したがって、OFマイナス2非対称フィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、Y1マイナス2非対称フィルタと同様に、画素p0ないしp1及びq0ないしq3の6画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
OFマイナス2非対称フィルタとしては、式(33)のOFノーマルフィルタの画素p3及び画素p2を、水平境界側の画素p1に置換したフィルタを採用することができる。この場合、OFマイナス2非対称フィルタは、式(36)で表される。
p1′ = Clip3( p1 - tC, p1 + tC, ( 5*p1 + p0 + q0 + q1 + 4 ) >> 3 )
p0′ = Clip3( p0 - tC, p0 + tC, ( 3*p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 )
q0′ = Clip3( q0 - tC, q0 + tC, ( 2*p1 + p0 + 2 * q0 + q1 + q2 + q3 + 4 ) >> 3 )
q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 2*q1 + q2 + 2*q3 + 4 ) >> 3 )
q2′ = Clip3( q2 - tC, q2 + tC, ( p0 + q0 + q1 + 2*q2 + 3*q3 + 4 ) >> 3 )
・・・(36)
式(33)のOFマイナス2非対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq3の6画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq2の5画素である。
したがって、水平境界がCTU境界である場合、OFマイナス2非対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
式(36)のOFマイナス2非対称フィルタは、式(33)の画素p2'を求める式がない式になっている。
さらに、式(36)のOFマイナス2非対称フィルタは、式(33)の画素p1'及びp0'並びにq0'を求める式の画素p2及びp3を、水平境界側の画素p1に置換したフィルタになっている。そのため、式(36)の画素p1'を求める式の画素p1のタップ係数が、式(33)の2から5(=2+1+2)に変更されている。また、式(36)の画素p0'を求める式の画素p1のタップ係数が、式(33)の1から3(=1+1+1)に変更され、式(36)の画素q0'を求める式の画素p1のタップ係数が、式(33)の1から2(=1+1)に変更されている。
以上から、フィルタNC1として、OFマイナス2非対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、OFマイナス2非対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq3であり、水平境界に対して非対称になっている(OFマイナス2非対称フィルタは、非対称フィルタになっている)。
フィルタNC1として、OFマイナス2対称フィルタを採用する場合、フィルタ適用判定では、Y1マイナス2対称フィルタと同様に、式(30)を満たすかどうかが判定される。
したがって、OFマイナス2対称フィルタのフィルタ適用判定に用いる色差成分の適用判定画素は、Y1マイナス2対称フィルタと同様に、画素p0ないしp1及びq0ないしq1の4画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、OFマイナス2対称フィルタを採用する場合、フィルタタイプ判定では、Y1マイナス2対称フィルタと同様に、式(31)を満たすかどうかが判定される。
したがって、OFマイナス2対称フィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、Y1マイナス2対称フィルタと同様に、画素p0ないしp1及びq0ないしq1の4画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
OFマイナス2対称フィルタとしては、式(33)のOFノーマルフィルタの画素p3及びp2を、水平境界側の画素p1に置換するとともに、画素q2及びq3を、水平境界側の画素q1に置換したフィルタを採用することができる。この場合、OFマイナス2対称フィルタは、式(37)で表される。
p1′ = Clip3( p1 - tC, p1 + tC, ( 5*p1 + p0 + q0 + q1 + 4 ) >> 3 )
p0′ = Clip3( p0 - tC, p0 + tC, ( 3*p1 + 2*p0 + q0 + q1 + q2 + 4 ) >> 3 )
q0′ = Clip3( q0 - tC, q0 + tC, ( 2*p1 + p0 + 2 * q0 + 3*q1 + 4 ) >> 3 )
q1′ = Clip3( q1 - tC, q1 + tC, ( p1 + p0 + q0 + 5*q1 + 4 ) >> 3 )
・・・(37)
式(37)のOFマイナス2対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq1の4画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、OFマイナス2対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
式(37)のOFマイナス2対称フィルタは、式(33)の画素p2'を求める1番目の式と、画素q2'を求める6番目の式とがない式になっている。
さらに、式(37)のOFマイナス2対称フィルタは、式(33)の画素p1'及びp0'並びにq0'を求める式の画素p2及びp3を、水平境界側の画素p1に置換したフィルタになっている。そのため、式(37)の画素p1'を求める式の画素p1のタップ係数が、式(33)の2から5(=2+1+2)に変更されている。また、式(37)の画素p0'を求める式の画素p1のタップ係数が、式(33)の1から3(=1+1+1)に変更され、式(37)の画素q0'を求める式の画素p1のタップ係数が、式(33)の1から2(=1+1)に変更されている。
また、式(37)のOFマイナス2対称フィルタは、式(33)の画素q0'及びq1'を求める式の画素q2及びq3を、水平境界側の画素q1に置換したフィルタになっている。そのため、式(37)の画素q0'を求める式の画素q1のタップ係数が、式(33)の1から3(=1+1+1)に変更されている。また、式(37)の画素q1'を求める式の画素q1のタップ係数が、式(33)の1から3(=1+1+1)に変更され、式(37)の画素q0'を求める式の画素p1のタップ係数が、式(33)の2から5(=2+1+2)に変更されている。
以上から、フィルタNC1として、OFマイナス2対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、OFマイナス2対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq1であり、水平境界に対して対称になっている(OFマイナス2対称フィルタは、対称フィルタになっている)。
<フィルタNC1として、フィルタY2をベースとするフィルタを採用する場合>
図19は、フィルタNC1として、フィルタY2をベースとするフィルタを採用する場合の、フィルタNC1と、必要となる画素とを示す図である。
フィルタY2をベースとするフィルタNC1としては、Y2ノーマルフィルタ、Y2マイナス1非対称フィルタ、及び、Y2マイナス1対称フィルタがある。
フィルタNC1として、Y2ノーマルフィルタを採用する場合、フィルタ適用判定は、Y1ノーマルフィルタと同様に、すなわち、式(20)の輝度成分適用判定と同様に行われる。
したがって、フィルタ適用判定に用いる色差成分の適用判定画素は、Y1ノーマルフィルタと同様の画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、Y2ノーマルフィルタを採用する場合、フィルタタイプ判定では、HEVCの輝度成分のウイークフィルタを適用するかどうかを判定する標準ウイーク判定に準じた判定が行われる。
ここで、標準ウイーク判定では、式(38)、さらには、必要に応じて、式(39)及び式(40)が満たされるかどうかが判定される。
| (9*(q0,i - p0,i)-3*(q1,i - p1,i)+8) >> 4 | < tc*10
・・・(38)
|p2,0 - 2*p1,0 + p0,0|+ |p2,3 - 2*p1,3 + p0,3| < (beta+(beta>>1)) >> 3
・・・(39)
|q2,0 - 2*q1,0 + q0,0|+ |q2,3 - 2*q1,3 + q0,3| < (beta+(beta>>1)) >> 3
・・・(40)
標準ウイーク判定では、まず、式(38)を満たすかどうかを判定するウイークon/off判定が、ブロックBp及びBqのライン(列)ごとに行われる。そして、ウイークon/off判定において、式(38)を満たすラインが存在する場合、式(39)を満たすかどうかを判定するp1判定、及び、式(40)を満たすかどうかを判定するq1判定が、1ライン目と4ライン目とを用いて行われる。
標準ウイーク判定では、式(39)のp1判定が満たされる場合、式(38)のウイークon/off判定を満たすラインのブロックBpの画素piが、対象画素になり得る画素に設定される。同様に、式(40)のq1判定が満たされる場合、式(38)のウイークon/off判定を満たすラインのブロックBqの画素qiが、対象画素になり得る画素に設定される。
Y2ノーマルフィルタのフィルタタイプ判定では、HEVCの輝度成分のウイークフィルタを適用するかどうかを判定する標準ウイーク判定に準じた判定が行われる。
すなわち、Y2ノーマルフィルタのフィルタタイプ判定では、式(41)、さらには、必要に応じて、式(39)及び式(40)が満たされるかどうかが判定される。
| (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10
・・・(41)
|p2 - 2*p1 + p0| < (beta+(beta>>1)) >> 4
・・・(42)
|q2 - 2*q1 + q0| < (beta+(beta>>1)) >> 4
・・・(43)
Y2ノーマルフィルタのフィルタタイプ判定では、まず、式(41)を満たすかどうかを判定するウイークon/off判定が、ブロックBp及びBqの色差成分の画素の2ライン(列)それぞれを対象に行われる。そして、ウイークon/off判定において、式(41)を満たすラインが存在する場合、ブロックBp及びBqの色差成分の画素の2ラインのうちの1ライン(例えば、1番目のライン)を対象に、式(42)を満たすかどうかを判定するp1判定、及び、式(43)を満たすかどうかを判定するq1判定が行われる。
Y2ノーマルフィルタのフィルタタイプ判定では、式(42)のp1判定が満たされる場合、式(41)のウイークon/off判定を満たすライン(列)のブロックBpの画素piが、対象画素になり得る画素に設定される。同様に、式(43)のq1判定が満たされる場合、式(41)のウイークon/off判定を満たすラインのブロックBqの画素qiが、対象画素になり得る画素に設定される。
フィルタY2をベースとするフィルタNC2では、対象画素になり得る画素に設定された画素だけが、対象画素となり、フィルタ画素が求められる。
式(41)ないし式(43)から、Y2ノーマルフィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp2及びq0ないしq2の6画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
Y2ノーマルフィルタとしては、HEVCの輝度成分のウイークフィルタを採用することができる。この場合、Y2ノーマルフィルタは、式(44)で表される。
D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
p0′ = Clip1C( p0 + D )
q0′ = Clip1C( q0 - D )
Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 )
p1′ = Clip1C( p1 + Dp )
Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 )
q1′ = Clip1C( q1 + Dq )
・・・(44)
ここで、Clip1C(A)は、色差成分のビット数をBCと表すこととすると、Clip1C(A) = Clip(0, (1 << BC) - 1, A)である。
式(44)のY2ノーマルフィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp2及びq0ないしq2の6画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、Y2ノーマルフィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
以上から、フィルタNC1として、Y2ノーマルフィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp2の3画素ライン分の容量が必要となる。
フィルタNC1として、Y2マイナス1非対称フィルタを採用する場合、フィルタ適用判定では、Y1マイナス2非対称フィルタと同様に、式(27)を満たすかどうかが判定される。
したがって、Y2マイナス1非対称フィルタのフィルタ適用判定に用いる色差成分の適用判定画素は、Y1マイナス2非対称フィルタと同様に、画素p0ないしp1及びq0ないしq2の5画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、Y2マイナス1非対称フィルタを採用する場合、フィルタタイプ判定では、Y2ノーマルフィルタのフィルタタイプ判定の式(41)ないし式(43)の画素p2を、水平境界側の画素p1に置換した式(45)ないし式(47)が満たされるかどうかが判定される。
| (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10
・・・(45)
|p1 - 2*p1 + p0| < (beta+(beta>>1)) >> 4
= |p0 - p1| < (beta+(beta>>1)) >> 4
・・・(46)
|q2 - 2*q1 + q0| < (beta+(beta>>1)) >> 4
・・・(47)
式(45)はウイークon/off判定を表し、式(46)及び式(47)は、p1判定及びq1判定を表す。
Y2マイナス1非対称フィルタのフィルタタイプ判定は、式(41)ないし式(43)に代えて、式(45)ないし式(47)を使用する他は、Y2ノーマルフィルタのフィルタタイプ判定と同様であるので、説明を省略する。
式(45)ないし式(47)から、Y2マイナス1非対称フィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp1及びq0ないしq2の5画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
Y2マイナス1非対称フィルタとしては、Y2ノーマルフィルタの式(44)の画素p2を、水平境界側の画素p1に置換した式(48)で表されるフィルタを採用することができる。
D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
p0′ = Clip1C( p0 + D )
q0′ = Clip1C( q0 - D )
Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p1 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 )
p1′ = Clip1C( p1 + Dp )
Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 )
q1′ = Clip1C( q1 + Dq )
・・・(48)
式(48)のY2マイナス1非対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq2の5画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、Y2マイナス1非対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
以上から、フィルタNC1として、Y2マイナス1非対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y2マイナス1非対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq2であり、水平境界に対して非対称になっている。
フィルタNC1として、Y2マイナス1対称フィルタを採用する場合、フィルタ適用判定では、Y1マイナス2対称フィルタと同様に、式(30)を満たすかどうかが判定される。
したがって、Y2マイナス1対称フィルタのフィルタ適用判定に用いる色差成分の適用判定画素は、Y1マイナス2対称フィルタと同様に、画素p0ないしp1及びq0ないしq1の4画素である。
その結果、水平境界がCTU境界である場合、フィルタ適用判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
フィルタNC1として、Y2マイナス1対称フィルタを採用する場合、フィルタタイプ判定では、Y2ノーマルフィルタのフィルタタイプ判定の式(41)ないし式(43)の画素p2を、水平境界側の画素p1に置換するとともに、画素q2を、水平境界側の画素q1に置換した式(49)ないし式(51)が満たされるかどうかが判定される。
| (9*(q0 - p0)-3*(q1 - p1)+8) >> 4 | < tc*10
・・・(49)
|p1 - 2*p1 + p0| < (beta+(beta>>1)) >> 4
= |p0 - p1| < (beta+(beta>>1)) >> 4
・・・(50)
|q1 - 2*q1 + q0| < (beta+(beta>>1)) >> 4
= |q0 - q1| < (beta+(beta>>1)) >> 4
・・・(51)
式(49)はウイークon/off判定を表し、式(50)及び式(51)は、p1判定及びq1判定を表す。
Y2マイナス1対称フィルタのフィルタタイプ判定は、式(41)ないし式(43)に代えて、式(49)ないし式(51)を使用する他は、Y2ノーマルフィルタのフィルタタイプ判定と同様であるので、説明を省略する。
式(49)ないし式(51)から、Y2マイナス1対称フィルタのフィルタタイプ判定に用いる色差成分のタイプ判定画素は、画素p0ないしp1及びq0ないしq1の4画素である。
その結果、水平境界がCTU境界である場合、フィルタタイプ判定については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
Y2マイナス1対称フィルタとしては、Y2ノーマルフィルタの式(44)の画素p2を、水平境界側の画素p1に置換するとともに、画素q2を、水平境界側の画素q1に置換した式(52)で表されるフィルタを採用することができる。
D = Clip3( -tC, tC, D ), D = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
p0′ = Clip1C( p0 + D )
q0′ = Clip1C( q0 - D )
Dp = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( p1 + p0 + 1 ) >> 1 ) - p1 + D ) >> 1 )
p1′ = Clip1C( p1 + Dp )
Dq = Clip3( -( tC >> 1 ), tC >> 1, ( ( ( q1 + q0 + 1 ) >> 1 ) - q1 - D ) >> 1 )
q1′ = Clip1C( q1 + Dq )
・・・(52)
式(52)のY2マイナス1対称フィルタのフィルタ処理に用いる色差成分のフィルタ構成画素は、画素p0ないしp1及びq0ないしq1の4画素である。また、フィルタ処理の対象となる色差成分の対象画素は、画素p0ないしp1及びq0ないしq1の4画素である。
したがって、水平境界がCTU境界である場合、Y2マイナス1対称フィルタのフィルタ処理については、ラインバッファ330の記憶容量として、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
以上から、フィルタNC1として、Y2マイナス1対称フィルタを採用する場合、ラインバッファ330の記憶容量としては、水平境界の上のブロックBpの画素p0ないしp1の2画素ライン分の容量が必要となる。
ここで、フィルタNC1として、Y2マイナス1対称フィルタを採用する場合に用いられる画素は、ブロックBpの画素p0ないしp1、及び、ブロックBqの画素q0ないしq1であり、水平境界に対して対称になっている。
以上のように、本技術によれば、DFとしての様々なフィルタを提供することができる。
<フィルタNC1の適用方法>
図20は、フィルタNC1を復号画像に適用する適用方法の例を示す図である。
ここで、フィルタ特性とは、フィルタ強度、フィルタ構成画素、フィルタ係数の値、フィルタのタップ長、フィルタ形状(対称/非対称)、などのフィルタの特性を包括的に定義した用語であり、フィルタを行う際に用いられるフィルタパラメータ、又は、フィルタ特性と関連性のある符号化パラメータ(量子化パラメータなど)に起因するフィルタの特性を示す。また、フィルタ特性を変更するとは、フィルタの特性自体を変更することを意味し、フィルタ強度、フィルタ構成画素、フィルタ係数の値、フィルタのタップ長、フィルタ形状(対称/非対称)、などを変更することを含む。また、フィルタ特性を変更するとは、フィルタパラメータ、又は、フィルタ特性と関連性のある符号化パラメータ(量子化パラメータなど)を変更することも含む。また、フィルタ特性を削減する(Reduction:リダクション/Reduce:リデュースする)とは、フィルタ強度、フィルタ構成画素、フィルタ係数の値、フィルタのタップ長、フィルタ形状(対称/非対称)、などのフィルタの特性を、(ラインバッファ容量などの実装コストを考慮して機能的に)削減することを含む。また、フィルタ特性を削減する(Reduction:リダクション/Reduce:リデュースする)とは、フィルタパラメータ、又は、フィルタ特性と関連性のある符号化パラメータ(量子化パラメータなど)を、(ラインバッファ容量などの実装コストを考慮して機能的に)変更することも含む。さらに、フィルタ特性が削減されたフィルタを削減フィルタ(Reduction Filter:リダクションフィルタ、又は、Reduced Filter:リデュースドフィルタ)と呼ぶことにする。
図20では、CTU境界に適用するフィルタNC1、内部境界に適用するフィルタNC1、フィルタNC1を適用した場合のCTU境界の部分と内部境界の部分との画質差、及び、ラインバッファ330に必要な記憶容量(Line buffer size)が示されている。
ここで、図17に示したY1マイナス1非対称フィルタ、Y1マイナス1対称フィルタ、Y1マイナス2非対称フィルタ、及び、Y1マイナス2対称フィルタは、Y1ノーマルフィルタと比較して、フィルタ構成画素が少ないので、フィルタ特性(フィルタ強度)が低下した(削減された)フィルタである。したがって、Y1マイナス1非対称フィルタ、Y1マイナス1対称フィルタ、Y1マイナス2非対称フィルタ、及び、Y1マイナス2対称フィルタは、Y1ノーマルフィルタに対してフィルタ特性が削減された削減フィルタということができる。
また、図18に示したOFマイナス1非対称フィルタ、OFマイナス1対称フィルタ、OFマイナス2非対称フィルタ、及び、OFマイナス2対称フィルタは、OFノーマルフィルタと比較して、フィルタ構成画素が少ないので、フィルタ特性(フィルタ強度)が低下した(削減された)フィルタである。したがって、OFマイナス1非対称フィルタ、OFマイナス1対称フィルタ、OFマイナス2非対称フィルタ、及び、OFマイナス2対称フィルタは、OFノーマルフィルタに対してフィルタ特性が削減された削減フィルタということができる。
さらに、図19に示したY2マイナス1非対称フィルタ及びY2マイナス1対称フィルタは、Y2ノーマルフィルタと比較して、フィルタ構成画素が少ないので、フィルタ特性(フィルタ強度)が低下した(削減された)フィルタである。したがって、Y2マイナス1非対称フィルタ及びY2マイナス1対称フィルタは、Y2ノーマルフィルタに対してフィルタ特性が削減された削減フィルタということができる。
いま、Y1ノーマルフィルタ、OFノーマルフィルタ、及び、Y2ノーマルフィルタを、ノーマルフィルタということとする。削減フィルタは、ノーマルフィルタに対して、フィルタ強度は弱いが、(pサイドの)フィルタ構成画素が少ないので、ノーマルフィルタと比較して、ラインバッファ330に必要な記憶容量が小になる。
ところで、大きなブロックサイズのブロックのブロック境界、すなわち、CTU境界や、内部境界には、ブロックノイズを十分に除去するために、フィルタ強度(フィルタ特性)が強いフィルタNC1を適用することが要請される。
しかしながら、フィルタ強度が強いノーマルフィルタを、フィルタNC1に採用すると、ノーマルフィルタの(pサイドの)フィルタ構成画素が多いので、CTU境界において、ラインバッファ330に必要な記憶容量が大になる。
そこで、CTU境界には、(pサイドの)フィルタ構成画素の少ない削減フィルタを、フィルタNC1に採用することができる。この場合、ラインバッファ330に必要な記憶容量を抑制することができる。図20の3行目以降では、ラインバッファ330に必要な記憶容量を抑制するために、CTU境界には、削減フィルタが適用されている。
一方、内部境界へのフィルタNC1の適用は、ラインバッファ330に必要な記憶容量に影響しないので、内部境界には、フィルタ構成画素が多いが、フィルタ強度が強いノーマルフィルタを、フィルタNC1として適用することができる。この場合、ブロックノイズを十分に除去することができる。
なお、CTU境界に、削減フィルタを適用し、内部境界に、ノーマルフィルタを適用すると、削減フィルタとノーマルフィルタとのフィルタ強度の違いに起因して、CTU境界と内部境界とで、画質差が生じ得る。
そこで、内部境界には、CTU境界と同様の削減フィルタを適用することができる。この場合、CTU境界と内部境界とで、画質差が生じることを抑制することができる。
ブロック境界に、図17ないし図19で説明したフィルタのいずれを、フィルタNC1として適用(選択)するかは、制御部340(図11)によって制御される。
例えば、1画面内で、DFを平均的に強く適用したい場合は、CTU 境界と内部境界とで、異なるフィルタデザインのDFを適用すること、すなわち、CTU境界には削減フィルタを適用し、内部境界にはノーマルフィルタを適用することができる。
また、1画面内で、DFを均等に適用したい場合は、CTU 境界と内部境界とで、同一のフィルタデザインのDFを適用すること、すなわち、CTU境界及び内部境界に、削減フィルタを適用することができる。
図21は、フィルタNC1を復号画像に適用する適用方法の他の例を示す図である。
図21の、例えば、1行目では、フィルタNC1として、CTU境界のpサイドに、HEVCの色差成分のフィルタC1(図14)が適用され、qサイドに、Y1ノーマルフィルタが適用される。さらに、フィルタNC1として、内部境界のpサイド及びqサイドに、Y1ノーマルフィルタが適用される。
以上のように、本技術では、復号画像のブロック境界の近傍に位置する色差成分の画素に対して、輝度成分のウイークフィルタ等(第1輝度フィルタ)よりもフィルタ強度の強い輝度成分のストロングフィルタ等(第2輝度フィルタ)のフィルタ特性が削減されたY1マイナス1非対称フィルタ等(削減第2輝度フィルタ)又は第1輝度フィルタのフィルタ特性が削減されたY2マイナス1非対称フィルタ等(削減第1輝度フィルタ)を、フィルタNC2(第1色差フィルタ)よりもフィルタ強度の強いフィルタNC1(第2色差フィルタ)として適用することができる。
また、本技術では、削減第2輝度フィルタを、削減第2輝度フィルタを垂直方向に行う削減第2輝度垂直フィルタとし、第2色差フィルタを、第2色差フィルタを垂直方向に行う第2色差垂直フィルタとすることができる。
さらに、本技術では、削減第2輝度垂直フィルタを、第2輝度フィルタに対してフィルタ係数又はクリップパラメータが変更されたフィルタとすることができる。
また、本技術では、削減第2輝度垂直フィルタを、ブロック境界に対して上部に位置する画素に適用するフィルタのフィルタ特性が削減された非対称フィルタとすることができる。
さらに、本技術では、第2輝度フィルタを、H,265/HEVC規格に準拠した輝度の成分のストロングフィルタとすることができる。
さらに、本技術では、削減第1輝度フィルタを、削減第1輝度フィルタを垂直方向に行う削減第1輝度垂直フィルタとすることができる。
また、本技術では、制御部340において、シーケンス単位で固定サイズのブロックであるコーディングツリーブロックのブロック境界に対して、削減第2輝度垂直フィルタを、第2色差垂直フィルタして適用するように、DF300(フィルタ部)を制御することができる。
さらに、本技術では、制御部340において、コーディングツリーブロックから分割されたブロックのブロック境界に対して、削減第2輝度垂直フィルタを、第2色差垂直フィルタとして適用するように、フィルタ部を制御することができる。
また、本技術では、制御部340において、コーディングツリーブロックから分割されたブロックのブロック境界に対して、第2輝度フィルタを垂直方向に行う第2輝度垂直フィルタを、第2色差垂直フィルタとして適用するように、フィルタ部を制御することができる。
<本技術を適用したコンピュータの説明>
次に、上述した一連の処理は、ハードウエアにより行うこともできるし、ソフトウエアにより行うこともできる。一連の処理をソフトウエアによって行う場合には、そのソフトウエアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
図22は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク905やROM903に予め記録しておくことができる。
あるいはまた、プログラムは、ドライブ909によって駆動されるリムーバブル記録媒体911に格納(記録)しておくことができる。このようなリムーバブル記録媒体911は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体911としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体911からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク905にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)902を内蔵しており、CPU902には、バス901を介して、入出力インタフェース910が接続されている。
CPU902は、入出力インタフェース910を介して、ユーザによって、入力部907が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)903に格納されているプログラムを実行する。あるいは、CPU902は、ハードディスク905に格納されたプログラムを、RAM(Random Access Memory)904にロードして実行する。
これにより、CPU902は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU902は、その処理結果を、必要に応じて、例えば、入出力インタフェース910を介して、出力部906から出力、あるいは、通信部908から送信、さらには、ハードディスク905に記録等させる。
なお、入力部907は、キーボードや、マウス、マイク等で構成される。また、出力部906は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
<5.むすび>
以上説明したように、本開示の実施形態によれば、復号画像の色差成分に対して、より適切にデブロックフィルタを適用することが可能である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
(色差関連パラメータ)
例えば、上記実施形態では、色差関連パラメータとして各TUにおける色差成分の有意係数の有無を示すフラグが用いられる例を説明したが、本技術はかかる例に限定されない。例えば色差成分の変換係数そのものが、色差関連パラメータに含まれてもよい。かかる場合、境界強度算出部261は、色差成分の変換係数から、各TUにおける色差成分の有意係数の有無を判定することで、bSを算出してもよい。また、上記実施形態に関連して、条件B1-Y、B1-UまたはB1-Vが満たされるか否かのみならず、条件B2が満たされるか否かに応じてbSの値が異なる例を図4に示した。しかしながら、図14に示す代替的な例のように、例えば処理コストの増大を抑制するために、色差成分U及びVの両方について条件B2が満たされるかの判定が省略されてもよい。
(ラージブロック判定の閾値)
上記実施形態では、ラージブロック判定で用いられる閾値が16である例を説明したが、本技術はかかる例に限定されず、8や32に設定されてもよい。また、YUV444フォーマットの場合、YUV420フォーマットで用いられる閾値以上の閾値がラージブロック判定において用いられてもよい。
(ストロングフィルタ)
上記実施形態では、式(15)~(19)で表現されるストロングフィルタが色差成分に対して適用される例を説明したが、本技術において適用されるストロングフィルタはかかる例に限定されない。色差成分に対して適用されるストロングフィルタは、ウイークフィルタよりもフィルタ強度が強いフィルタであればよい。例えば非特許文献1において色差成分に対して適用されるストロングフィルタ(HEVCにおいて輝度成分に対して適用されるストロングフィルタ)が本技術において色差成分に対して適用されてもよい。
(本技術の適用対象)
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
(ブロック)
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、及び特性等は限定されない。例えば、「ブロック」には、上述の参照文献REF1~REF3に記載のTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
(処理単位)
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
また、上記実施形態では、2ライン単位で色差成分へのデブロックフィルタ処理が行われているが、本技術はかかる例に限定されない。例えば、YUV444フォーマットの場合、4ライン単位で色差成分へのデブロックフィルタ処理が行われてもよい。かかる場合、適用要否判定部265は、上述した条件C3の判定において、1ライン目と3ライン目を参照さして、判定を行ってもよい。
(制御情報)
以上において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
(ブロックサイズ情報)
本技術を適用するブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
(その他)
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連付けられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。