(57)【特許請求の範囲】
【請求項１】
ビデオ符号化システム内において、再構成されたビデオを非ブロック化する方法であって、前記非ブロック化の処理は、再構成されたビデオのブロック境界に対して適応的に適用され、各ブロックは、予測ユニット（ＰＵ）または変換ユニット（ＴＵ）に対応し：
２つのブロック間におけるブロック境界と関連した画素データを受信する工程；
前記ブロック境界がＴＵ境界である場合にだけ、前記２つのブロックの中の１つが非ゼロの変換係数を有するか否かを決定する工程；
前記２つのブロックの中の１つが非ゼロの変換係数を有し、前記ブロック境界がＴＵ境界である場合には、前記ブロック境界に関するブロック強度として第１の値を割り当てる工程；
ブロック境界がＰＵ境界だけである場合、前記ブロック境界に関するブロック強度として第２の値を割り当てる工程であって、前記第２の値は、前記第１の値と等しいかそれよりも小さい値をとる、工程；および、
ブロック強度に従って前記非ブロック化の処理を前記ブロック境界に適用する工程であって、前記非ブロック化のフィルタ強度は、前記ブロック強度と関係している、工程；
を具備する方法。
【請求項２】
前記２つのブロックの中の１つが非ゼロの変換係数を有するか否かを前記決定する工程は、ＰＵのみの境界に関しては、実行がスキップされることを特徴とする、請求項１記載の方法。
【請求項３】
前記ブロック境界に関する前記ブロック強度の非ゼロ値を判定するための複数の所定の評価基準の何れもが満たされない場合には、前記第２の値はゼロ値をとり、前記非ブロック化の処理は、前記ブロック境界に対して適用されない、請求項１記載の方法。
【請求項４】
ビデオ符号化システム内において、再構成されたビデオを非ブロック化する装置であって、前記非ブロック化の処理は、再構成されたビデオのブロック境界に対して適応的に適用され、各ブロックは、予測ユニット（ＰＵ）または変換ユニット（ＴＵ）に対応し：
２つのブロック間におけるブロック境界と関連した画素データを受信する手段；
前記ブロック境界がＴＵ境界である場合にだけ、前記２つのブロックの中の１つが非ゼロの変換係数を有するか否かを決定する手段；
前記２つのブロックの中の１つが非ゼロの変換係数を有し、前記ブロック境界がＴＵ境界である場合には、前記ブロック境界に関するブロック強度として第１の値を割り当てる手段；
ブロック境界がＰＵ境界だけである場合、前記ブロック境界に関するブロック強度として第２の値を割り当てる手段であって、前記第２の値は、前記第１の値と等しいかそれよりも小さい値をとる、手段；および、
ブロック強度に従って前記非ブロック化の処理を前記ブロック境界に適用する手段であって、前記非ブロック化のフィルタ強度は、前記ブロック強度と関係している、手段、
を具備する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、「改良されたＤｅｂｌｏｃｋｉｎｇ  Ｆｉｌｔｅｒ」と題され、２０１１年３月１０日付けで出願された米国仮特許出願第６１／４５１，２８９号に基づく優先権を主張する。上述した米国仮特許出願は、その開示内容の全体が参照により本願明細書中に組み込まれる。
【０００２】
本発明は、ビデオ符号化に関し、より具体的には、非ブロック化フィルタに関係する。
【背景技術】
【０００３】
動き補償された変換符号化は、様々な符号化標準において広く採用されており、ブロック化変換は、動き補償された残差に対して適用される。さらに、動き補償されたフレーム間符号化システムは、フレーム内符号化モードを周期的に又は適応的に使用する。符号化処理プロセスの間、変換係数は、ビットレートを減らすために量子化され、その結果として、アーチファクトが加わってしまう。アーチファクトは、変換ブロックを取り囲む境界部において一層目立ってしまう。
符号化アーチファクトを軽減するために、非ブロック化と呼ばれている技術が開発され、それは、ブロックの境界部を横切ってフィルタリング処理を適応的に適用する技術である。非ブロック化技法は、映像符号化の分野においては、非ブロック化フィルタとも呼ばれている。
【０００４】
従来の非ブロック化フィルタは符号化アーチファクトを減らすのに有効であることが示された一方で、非ブロック化フィルタの処理プロセスは、幾つかの状況においては不必要に適用されてしまう可能性がある。さらにまた、非ブロック化フィルタは、性能を高めるための特性に従って設計することが可能である。したがって、不必要に非ブロック化フィルタを使用することを回避し、その結果として、改良された性能を実現するために新規な非ブロック化フィルタを設計することが望まれている。
【発明の概要】
【０００５】
本明細書は、ビデオ符号化システムにおいて、再構成されたビデオを非ブロック化する方法および装置を開示する。本発明に係る一実施例において、ビデオ符号化システムにおいて、再構成されたビデオを非ブロック化する方法および装置は、非ゼロの変換係数がＰＵのみの境界に関して存在するか否かの判定をスキップする。方法は、ＰＵのみの境界に対して、より少ないブロック強度を割り当てることができる。０の値を有するブロック強度は、ＰＵのみの境界に関して非ブロック化操作を無効にするために使用される。本発明に係る他の実施例において、３つの勾配係数は２本の画素線に関して決定され、当該２本の画素線の３つの勾配に基づいてフィルタのＯＮ／ＯＦＦ決定制御が実行される。勾配係数の絶対値はそれぞれの閾値と比較され、当該比較の結果はフィルタのＯＮ／ＯＦＦを決定するために使用される。本発明の一態様は、強いフィルタと弱いフィルタとの間において実行されるフィルタ強度選択と関係している。本発明に係る一実施例においては、強度選択は、以下に基づいて実行される。すなわち、ブロック境界を横切る２つの第１境界画素の間の勾配係数、ブロック境界の一方の側における第１境界画素と第２境界画素、第１境界画素と第３境界画素、第１境界画素と第４境界画素に関連した３つの勾配係数、およびブロック境界の反対側におけるそれぞれの３つの勾配係数に基づいて実行される。本発明に係る別の態様は、弱いフィルタと関係している。弱いフィルタが選択される場合にエッジの鮮明度を保存するために、本発明に係る一実施例は、ブロック境界のそれぞれの側における第２境界画素に対して、弱いフィルタを条件に応じて適用する。条件の判断は、ブロック境界のそれぞれの側における第１境界画素と第３境界画素との間の勾配係数に基づく。
【図面の簡単な説明】
【０００６】
【図１】図１は、２つの隣接ブロックの間における例示的な垂直ブロック境界および当該境界を跨る複数の画素線を図示する。
【図２】図２は、量子化パラメータ（ＱＰ）上における閾値αｉ、βｉおよびクリッピング変数ｔｃの依存関係についての実施例を図示する。
【発明を実施するための形態】
【０００７】
デジタル・ビデオの圧縮のために、動き補償されたフレーム間符号化は有効な圧縮技術であり、例えば、ＭＰＥＧ―１／２／４およびＨ。２６１／Ｈ．２６３／Ｈ．２６４／ＡＶＣなどの様々な符号化標準において、広く採用されている。動き補償された符号化を実行するシステムにおいて、動きの推定／補償およびこれに続いて実行される圧縮処理はしばしばブロック単位で実行される。圧縮処理プロセスの間、符号化雑音は、例えば量子化のような情報損失を伴う処理のために引き起こされる。特に、ブロックに基づく変換のブロック境界上又は近傍においては、再構成されたビデオ・データ内に生じる符号化アーチファクトが目立ってしまう可能性がある。符号化アーチファクトの可視性を軽減するために、非ブロック化操作と呼ばれている技術が、現在研究開発中のより新しい符号化システム（例えば、Ｈ．２６４／ＡＶＣおよびＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）システムなど）において使用されている。さらにまた、ＨＥＶＣはブロックに基づく予測のために別々のユニットを採用し、当該別々のユニットは、予測ユニット（ＰＵ）と呼ばれ、それは変換ユニット（ＴＵ）とは異なるものであっても良い。従って、ＰＵの境界は、ＴＵの境界に合わせてアラインメントすることができない。ＨＥＶＣにおいて、非ブロック化の処理プロセスは、輝度成分および彩度成分の両者に関して８ｘ８サイズのブロックに基づいている。
【０００８】
図１中において太線の長方形として示される２つのブロックＡ  １１０およびブロックＢ  １２０の間においてフィルタリング処理される垂直境界の一例を図１に示す。図１において、各ブロックは、８ｘ８の画素から成る。２つの隣接ブロックと関連した８本の画素線は、図１に示すように、１３１から１３８までの参照符号を付けられている。上述した垂直境界のそれぞれ側における４つの画素は、参照符号により（ｐ３ｉ、ｐ２ｉ、ｐ１ｉ、ｐ０ｉ、ｑ０ｉ、ｑ１ｉ、ｑ２ｉ、ｑ３ｉ）と示されており、ｉは画素線を識別するためインデックスであり、ｉ＝０，…，７である。ブロック境界と直接隣接している画素（すなわち、ｐ０ｉおよびｑ０ｉ）は、第１境界画素と呼ばれる。同様に、ｐ１ｉおよびｑ１ｉは第２境界画素と呼ばれ、ｐ２ｉおよびｑ２ｉは第３境界画素と呼ばれ、ｐ３ｉおよびｑ３ｉは第４境界画素と呼ばれる。この例では、ブロックＡ  １１０およびブロックＢ  １２０は、２つのＰＵまたは２つのＴＵとすることが可能である。非ブロック化の処理プロセスは、フィルタのＯＮ／ＯＦＦを決定した上で、フィルタ強度を決定し、続いて非ブロック化フィルタを適用するステップを含む。フィルタのＯＮ／ＯＦＦ決定動作は、境界上における変化が自然なエッジであるか又は符号化アーチファクトによって生じたものであるかどうかを検査する動作を備える。それが自然なエッジである場合、それぞれの境界と関連したピクチャの鮮明度を保存するために、当該フィルタはＯＦＦにされる。さもなければ、非ブロック化フィルタは、アーチファクトを減らすために、ＯＮにされる。フィルタのＯＮ／ＯＦＦ決定動作は、最初は、フィルタリング処理されるべきそれぞれのピクチャ領域の全てのブロック境界について実行される。一つの境界がフィルタリング処理すべきである場合、フィルタ強度の決定がなされる。すなわち、強いフィルタまたは弱いフィルタのうちいずれを選択するかが決定される。続いて、当該決定されたフィルタ強度を有する非ブロック化フィルタは、フィルタリング処理されるべき境界に対して適用される。本開示においては、非ブロック化の処理プロセスのことを、便宜上、単に「非ブロック化」と呼ぶことにする。非ブロック化の処理プロセスは、映像符号化の分野においては非ブロック化フィルタとも呼ばれている。非ブロック化のために使用されるフィルタもまた、非ブロック化フィルタと呼ばれている。従って、用語「非ブロック化フィルタ」は、本明細書中の文脈に応じて、「非ブロック化の処理プロセス」または「非ブロック化に使用されるフィルタ」のいずれかを指して言うことが可能である。
【０００９】
計算量を低く保つために、従来のＨＥＶＣに従うフィルタのＯＮ／ＯＦＦ決定動作は、２本の画素線だけに基づいて決定される。例えば、ＨＭ−３．０においては、線２および線５が使用される。エッジ活性測度ｄは、線２および線５の中の画素に基づいて以下の式で計算される：
【００１０】
【数１】
0005859568.tif 000002
エッジ活性測度ｄが予め定義された閾値βより小さい場合、対応するブロック境界はフィルタリング処理される。当該予め定義された閾値βは、量子化パラメータ（ＱＰ）と関連がある。ブロック境界がフィルタリング処理されると決定された場合、続いて、弱いフィルタまたは強いフィルタのいずれを選択するかの決定が、以下の条件に応じて行毎に実行される：
【００１１】
【数２】
0005859568.tif 000003
ｔｃはＱＰに関連して予め定義されたもう一つの閾値であり、画素が過度にフィルタリング処理されることを回避するために使用される閾値である。上述した３つの条件の全てが満たされる場合、強いフィルタが選択され、さもなければ、弱いフィルタが選択される。
【００１２】
彩度成分のための非ブロック化フィルタは、輝度成分のための非ブロック化フィルタと同様であるが、ブロック内境界に関してのみ使用される点が異なる。従来のＨＥＶＣにおいて使用される非ブロック化フィルタは、複雑さが低いという利点を有するけれども、性能を高められる余地がある。例えば、単一のエッジ活性測度ｄおよび単一の閾値βに基づいて行われるフィルタのＯＮ／ＯＦＦ決定動作は、適切なエッジ活性測度を結果として導けない。さらにまた、第４境界画素（ｐ３／ｑ３）と第１境界画素（ｐ０／ｑ０）との間における勾配係数に基づくフィルタ強度の決定は、真のエッジ勾配を適切に反映していない可能性がある。さらに、境界強度（ＢＳ）の導出および弱いフィルタの動作もまた、適切に改良されることを必要とする。従来のＨＥＶＣにおいて、２つの隣接するブロックのうちの１つが非ゼロの変換係数を有する場合、非ブロック化フィルタは一つのブロック境界のために考慮される。上記の決定は、当該ブロック境界がＰＵ境界またはＴＵ境界のいずれであるかを考慮することなく実行される。上記の非ブロック化フィルタの実施は、Ｈ．２６４標準から継承されたものであり、変換サイズは、常に予測区画のサイズに等しいか又はそれよりも小さい。さらにまた、境界強度が０より大きい場合、非ブロック化フィルタは境界に対して適用され、境界強度が０である場合は、非ブロック化フィルタは無効化される。HEVC  Test  Model  version  3.0  (HM-3.0)に従う境界強度の割り当ては、表１に示される。
【００１３】
【表１】
0005859568.tif 000004
表１によれば、ブロックのうちの少なくとも１つの予測モードがイントラ・モードである場合、境界が最大の符号化ユニット（ＬＣＵ）の境界であるか否かに依存して、境界強度は３または４であり、ブロックのうちの少なくとも１つが非ゼロの変換係数を有する場合、境界強度は２である。境界強度の上述した割り当ては、複数のブロックが異なる基準フレーム又は異なる個数の動きベクトルを使用するかどうかを更に検査する。ＨＭ−３．０においては、ＰＵ境界が必ずしもＴＵ境界でなくても良いようにするために、１つのＴＵは幾つかのＰＵをカバーすることが可能である。表１に示すように、複数のブロックのうちの１つが非ゼロの変換係数を有する場合、ＰＵのみの境界（１つのＴＵの内部で）は２に等しいＢＳ値を有する。したがって、２に等しいＢＳ値を有する非ブロック化フィルタはＰＵのみの境界に対して適用され、ブロックに基づく変換アーチファクトが全く存在しないので、これは望ましくない。したがって、本発明に係る実施例は、ＰＵのみの境界について、非ゼロの変換係数が存在する否かを決定する動作の実行をスキップする。したがって、ＢＳ値が１に等しいというもう一つの条件（すなわち、動きベクトルの差および基準フレーム）が満たされない場合、境界強度を０まで低下させることにより、ＰＵのみの境界についての非ブロック化フィルタを除去する。２つの隣接するブロックのうちの１つについて非ゼロの変換係数を有するＰＵのみの輝度境界に関して、ＨＭ−３．０は境界強度（ＢＳ）の値として２を割り当てる。本発明に係る一実施例に従うならば、境界強度の割り当ては表２に示される通りとなる。
【００１４】
【表２】
0005859568.tif 000005
最近のＨＭ−６．０においては、ＢＳ値の割り当ては、更に簡素化されており、３種類のＢＳ値、すなわち０、１および２だけが使用される。従って、本発明もそのように変形されることが可能である。表２と比較すると、複数のブロックの中の少なくとも１つの予測モードがイントラ・モードである場合、ＢＳ値は２に変更され、そして、境界がＴＵ境界であり、かつ、複数のブロックの中の少なくとも１つが非ゼロの変換係数を有する場合、ＢＳ値は１に変更される。この場合、動きベクトルの差および基準フレームについての条件が満たされなかったとしても、ＰＵのみの境界は依然としてフィルタリング処理されない。
【００１５】
本発明に係る一つの態様は、非ブロック化フィルターを実行すべきか否かの決定に関する問題に対処する。本発明に係る一実施例においては、フィルタのＯＮ／ＯＦＦを決定する動作は、以下の条件に基づく：
【００１６】
【数３】
0005859568.tif 000006
上記において、閾値αおよび閾値βの値は、以下の数式に従って導出される。
【００１７】
【数４】
0005859568.tif 000007
【００１８】
【数５】
0005859568.tif 000008
上記の式において、αｉおよびβｉは、図２に示すように輝度のＱＰ（量子化パラメータ）に依存している。ｉ＝２およびｉ＝５に関して方程式（５）、（６）および（７）の全てが満たされる場合、ブロック境界（８本の画素線）はフィルタリング処理される。本実施例において、第１のブロックと第２のブロックとの間のブロック境界を横切る画素線と関連した画素データは、当該画素線に関して、方程式（５）で示す第１の勾配係数、方程式（６）で示す第２の勾配係数および方程式（７）で示す第３の勾配係数を決定するために受け取られる。第１の勾配係数は、第１のブロックの第１境界画素と第２のブロックの第１境界画素との間において測定される。第２の勾配係数は、第１のブロックの第２境界画素と第２のブロックの第１境界画素との間において測定される。第３の勾配係数は、第１のブロックの第１境界画素と第２のブロックの第２境界画素との間において測定される。同じブロック境界を横切る他の画素線と関連した画素データもまた、当該画素線に関する第１、第２、および第３の勾配係数を決定するために受け取られる。本実施例において、上述した２本の画素線は、線２および線５である。フィルタのＯＮ／ＯＦＦ決定は、線２に関する３つの勾配係数および線５に関する３つの勾配に基づいて決定される、すなわち、方程式（５）、（６）および（７）の全てが両方の画素線のために満たされる場合、ブロック境界（８本の画素線）はフィルタリングされる。
【００１９】
フィルタのＯＮ／ＯＦＦ決定がブロックＡとブロックＢとの間におけるブロック境界に関して実行された後に、フィルタがブロック境界に関してＯＮであると決定されるならば、２つのフィルタのうちの１つ（すなわち、弱いフィルタ又は強いフィルタのいずれか一方）は画素線毎に選択される。本発明に係る実施例は、エッジ勾配をより良好に測定することを実現するために、複数の異なる画素位置の間におけるさらに多くの勾配係数を使用し、上述したエッジ勾配は、以下の数式（１０）および数式（１１）に従って測定される：
【００２０】
【数６】
0005859568.tif 000009
画素線毎に、数式（１０）および数式（１１）で記述される条件が満たされる場合、強いフィルタが選択され、さもなければ、弱いフィルタが選択される。具体的には、第１のブロックと第２のブロックとの間のブロック境界を横切る画素線と関連した画素データが受け取られる。方程式（１０）に示すように、画素線に関する第１の勾配係数は、第１のブロックの第１境界画素と第２のブロックの第１境界画素との間において測定される。第１のブロックの画素線に関する第２の勾配係数、第３の勾配係数および第４の勾配係数がさらに決定される。第２の勾配係数は、第１のブロックの第１境界画素と第２境界画素との間において測定され；第３の勾配係数は、第１のブロックの第１境界画素と第３境界画素との間において測定され；そして、第４の勾配係数は、第１のブロックの第１境界画素と第４境界画素との間において測定される。同様に、第２のブロックの画素線に関する第２の勾配係数、第３の勾配係数および第４の勾配係数がさらに決定される。ブロック境界に関するフィルタ強度は、第１のブロックの第２の勾配係数、第３の勾配係数および第４の勾配係数に加えて、第２のブロックの第２の勾配係数、第３の勾配係数および第４の勾配係数および第１の勾配係数に従って決定される。例えば、これらの勾配係数はフィルタ強度を決定するために閾値と比較され、非ブロック化フィルタは当該フィルタ強度に従ってブロック境界に対して適用される。
【００２１】
本発明の別の態様は、弱いフィルタの設計に関する問題に対処する。ＨＭ−３．０において、輝度に関する弱いフィルタは、常に第２境界画素（すなわち、ｐ１およびｑ１）に対して適用される。第２境界画素を横切るエッジに損傷を与えることを回避するために、本発明に係る一実施例は条件に応じて弱いフィルタを実行する。画素がフィルタリング処理されなければならないか否かを決定するために一つの試験が実行される。さらにまた、本発明に従って、修正された係数を有する弱いフィルタが使用される。具体的には、ｐ０´およびｑ０´をフィルタリング処理した値は、以下の数式（１２）〜数式（１４）に従って算出される：
【００２２】
【数７】
0005859568.tif 000010
ｐ１の値は、以下の数式（１５）で記述される条件が成り立つ場合のみ修正され、ｐ１をフィルタリング処理した値ｐ１´は、以下の数式（１６）および（１７）に従って計算される。
【００２３】
【数８】
0005859568.tif 000011
ｑ１の値は、以下の数式（１８）で記述される条件が成り立つ場合のみ修正され、ｑ１をフィルタリング処理した値ｑ１´は、以下の数式（１９）および（２０）に従って計算される。
【００２４】
【数９】
0005859568.tif 000012
上述した数式において、クリッピング変数ｔｃは、図２中に見出される。
【００２５】
従来のＨＥＶＣにおいては、フィルタリング処理された値ｐ０´、ｑ０´、ｐ１´およびｑ１´を導出するために単一の調整値が使用される。本発明の一実施例によればΔ０、Δｐ１およびΔｑ１は、上述した数式（１２）、数式（１６）および数式（１９）において定義される３つのショートタップ・フィルタを用いて個別に算出される。個々の調整値Δ０、Δｐ１およびΔｑ１は、より良好なフィルタリング処理結果に導くことが可能である。何故ならば、本発明に従う弱い非ブロック化フィルタは、画素の個別の特性に合わせて最適化することが可能であるからである。加えて、ｐ０´、ｑ０´、ｐ１´およびｑ１´は、互いに異なるパラメータを使用した同じ公式に基づいて導出される。従って、弱いフィルタは同一のロジックに従って実行することができ、その結果、ハードウェアの複雑さを低減することが出来る。
【００２６】
上述した開示内容において、フィルタのＯＮ／ＯＦＦ決定の導出、フィルタ強度の決定および弱いフィルタの修正は、垂直ブロック境界に関して例示された。水平ブロック境界に関する導出もまた、同様の考え方で実行することが可能である。本発明に係る非ブロック化技法は、彩度成分と同様に輝度成分に対しても適用されることが可能である。
【００２７】
上述した通り、本発明に係る非ブロック化フィルタの符号化または復号化を組み込んでいるビデオ・システムの実施例は、様々なハードウェア、ソフトウェア・コードまたは両方の組合せによって実装することが可能である。例えば、本発明に係る実施例は、ビデオ圧縮処理用チップに集積される回路または本願明細書において記載されている処理を実行するためにビデオ圧縮処理用ソフトウェアに組み込まれるプログラム・コードであり得る。本発明に係る実施例は、本願明細書において記載されている処理を実行するために、デジタル・シグナル・プロセッサ（ＤＳＰ）が実行するプログラム・コードであっても良い。本発明は、さらにコンピュータ・プロセッサ、デジタル信号処理装置、マイクロプロセッサまたはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）によって実行される多くの関数を含むことも可能である。本発明によって具現化される特定の方法を定義する機械読み取り可能なソフトウェア・コードまたはファームウェア・コードを実行することによって、これらのプロセッサは、本発明に従って特定のタスクを実行するように構成されることが可能である。ソフトウェア・コードまたはファームウェア・コードは、異なるプログラミング言語および異なるフォーマットまたはスタイルで開発されることが可能である。ソフトウェア・コードは、異なるターゲット・プラットホームのためにコンパイルされることも可能である。しかしながら、本発明に従うタスクを実行するようにコードを構成するためのソフトウェア・コードおよびその他の手段についての異なるコード・フォーマット、スタイルおよび言語は、本発明の精神と範囲から逸脱しない。
【００２８】
本発明は、その精神または主要な特徴を逸脱しない範囲で他の様々な形態で実施されることが可能である。本明細書中に記載されている実施例は、あらゆる点において単に例示的であって限定的ではないと看做されるべきである。本発明の範囲は、従って、上述した実施例の説明によってではなく、むしろ本明細書に添付した特許請求の範囲によって示される。請求項記載の発明の技術的解釈および均等物の範囲の中に包含され得る全ての変形実施例は、本発明の技術的範囲内にあると看做されるべきである。
【図１】
0005859568.tif 000013
【図２】
0005859568.tif 000014