【文献】
Algorithm Description of Joint Exploration Test Model 1 (JEM1),[online],2015年12月,URL,https://mpeg.chiariglione.org/standards/exploration/future-video-coding/n15790-algorithm-description-joint-exploration-test-model
【文献】
Thomas Wiegand, et.al.,Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC),JVT-G050_old.zip[online],2005年 1月17日,pp.143-144,URL,https://www.itu.int/wftp3/av-arch/jvt-site/2003_03_Pattaya/JVT-G050_old.zip
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【0007】
本発明の主な目的は、ブロッキングアーティファクトを除去するためのフィルタリング方法および装置を提供し、内部予測単位ブロック間の「ブロッキングアーティファクト」が処理できず、符号化精度ならびに主観的および客観的効果が影響を受けるといった問題を解決することである。
【0008】
上述の目的を達成するために、以下の技術的解決手段が本発明の実施形態において用いられる。
【0009】
第1の態様によると、本発明の実施形態では、ブロッキングアーティファクトを除去するためのフィルタリング方法が提供され、画像ブロックに対してフィルタリング処理を実行するために用いられ、ここで、画像ブロックは、少なくとも1つの予測単位および少なくとも1つの変換単位に分割され、予測単位は、非並進運動予測単位を含む。当該方法は、各予測単位を少なくとも2つのサブ単位に分割する段階であって、各サブ単位はN×N個の画素を含み、Nは1より大きいかまたはそれに等しい整数である、段階と、少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定する段階と、少なくとも1つのフィルタリング境界のうち任意の1つに対して、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得する段階であって、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接する、段階と、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する段階とを備えてよい。
【0010】
フィルタリング境界が
水平フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する上サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する下サブ単位であり、または、フィルタリング境界が
垂直フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する左サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する右サブ単位である。
【0011】
このように、予測単位内の全てのフィルタリング境界が決定され、フィルタリング処理はフィルタリング境界に隣接する画素に対して実行され、これにより、異なる動きベクトルを有する単位ブロック間の「ブロッキングアーティファクト」が除去され、画像の予測精度および主観的品質が向上する。
【0012】
任意選択的に、第1の態様の実装可能な方式において、少なくとも2つのサブ単位におけるサブ単位に対して、サブ単位の第1の境界が画像ブロックにおける予測単位のサブブロック境界である場合、または、サブ単位の第1の境界が画像ブロックにおける変換単位のサブブロック境界である場合、サブ単位の第1の境界はフィルタリング境界であると決定され、ここで、第1の境界は、サブ単位の任意の境界である。加えて、サブ単位が非並進運動予測単位に含まれる場合、第1のサブ単位の各境界はフィルタリング境界であると決定される。
【0013】
このように、予測単位における、予測単位のサブブロック境界または変換単位のサブブロック境界上に位置する境界がフィルタリング境界であると決定され、後続のフィルタリング処理が当該境界に対して実行されるのみならず、非並進運動予測単位の境界がフィルタリング境界であると決定されることもでき、予測単位における非並進運動予測単位の当該境界に対してフィルタリング処理が実行され、これにより、予測単位における非並進運動予測単位間のブロッキングアーティファクトが除去される。
【0014】
任意選択的に、第1の態様の別の実装可能な方式において、フィルタリング境界に隣接する第1のサブ単位の第1の画素値を取得する段階は、第1のサブ単位の第1の予測画素値を取得する段階と、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算する段階と、M個のサブ単位の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得する段階と、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得する段階とを含んでよく、ここで、Mは1から4の範囲にある任意の整数である。
【0015】
第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、右サブ単位のそれぞれの動きベクトルを計算する段階は、第1のサブ単位が非並進運動予測単位に含まれる場合、または第1のサブ単位が非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位のそれぞれの動きベクトルを導出する段階、または、第1のサブ単位が非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、左サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出する段階、および、第1のサブ単位に隣接する上サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを上サブ単位の動きベクトルとして用いる段階、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、上サブ単位の動きベクトルを導出する段階、または、第1のサブ単位が非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、上サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出する段階、および、第1のサブ単位に隣接する左サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを左サブ単位の動きベクトルとして用いる段階、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、左サブ単位の動きベクトルを導出する段階とを含む。
【0016】
任意選択的に、第1の態様のさらに別の実装可能な方式において、フィルタリング境界に隣接する第1のサブ単位の第1の画素値を取得する段階はさらに、第1のサブ単位(P)の第1の予測画素値を取得する段階と、予め設定された非並進運動モデルに基づき、
第1の頂点(1)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第1の頂点(1)に対応する座標(1.1、1.2、1.3、1.4)におけるM組の座標の動きベクトルと、
第2の頂点(2)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第2の頂点(2)に対応する座標(2.1、2.2、2.3、2.4)におけるM組の座標の動きベクトルとを導出する段階であって、第1の頂点(1)および第2の頂点(2)は、第1のサブ単位(P)の任意の2つの異なる頂点であり、Mは1から4の範囲にある任意の整数である、段階と、
第1の頂点(1)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第1の頂点(1)に対応する座標(1.1、1.2、1.3、1.4)におけるM組の座標の動きベクトルと、
第2の頂点(2)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第2の頂点(2)に対応する座標(2.1、2.2、2.3、2.4)におけるM組の座標の動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得する段階であって、M個の動きベクトルペアにおける第1の動きベクトルペアは、第1のサブ単位(P)の第1の頂点(1)に
対応する第1の座標の動きベクトルと、第1のサブ単位(P)の第2の頂点(2)に
対応する第1の座標の動きベクトルとを含み、第1の座標は、上座標であり、または下座標であり、または左座標であり、または右座標である、段階と、予め設定された非並進運動モデルに基づき、M個の動きベクトルペアに対して計算を別々に実行し、第1のサブ単位(P)のM個の動きベクトルを取得する段階と、第1のサブ単位(P)のM個の動きベクトルに基づき、第1のサブ単位(P)のM個の第2の予測画素値を取得する段階と、第1のサブ単位(P)の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位(P)の第1の画素値を取得する段階とを含んでよい。
【0017】
このように、異なるサブ単位の動きベクトルの相関を考慮し、第1のサブ単位に隣接するサブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償が実行されるか、または、第1のサブ単位に隣接する座標点に基づき、第1の単位の動きベクトルが計算され、第1のサブ単位に対して動き補償を実行する。従って、データ冗長性およびデータ符号化長さが低減され、第1のサブ単位の予測精度が向上する。
【0018】
任意選択的に、第1の態様のさらに別の実装可能な方式において、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する段階は、フィルタリング境界の境界強度値を決定する段階と、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとに基づき、フィルタリング境界に対応する閾値βおよびtを取得する段階と、βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する段階であって、Mは1より大きいかまたはそれに等しい整数である、段階とを含んでよい。
【0019】
このように、フィルタリング処理は、フィルタリング境界の強度に基づき、フィルタリング境界に隣接する画素に対して実行されることができ、変換単位および予測単位の分割により引き起こされるブロッキングアーティファクトを低減する。
【0020】
第2の態様によると、本発明の実施形態はさらに、第1の態様において説明されている方法を実行するように構成されるフィルタリング装置を提供する。フィルタリング装置は、各予測単位を少なくとも2つのサブ単位に分割するように構成される分割ユニットであって、各サブ単位はN×N個の画素を含み、Nは1より大きいかまたはそれに等しい整数である、分割ユニットと、分割ユニットにより分割によって取得された少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定するように構成される決定ユニットと、決定ユニットにより決定された少なくとも1つのフィルタリング境界のうち任意の1つに対して、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得するように構成される取得ユニットであって、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接する、取得ユニットと、取得ユニットにより取得された、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されるフィルタリングユニットとを備えてよい。
【0021】
フィルタリング境界が
水平フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する上サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する下サブ単位であり、または、フィルタリング境界が
垂直フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する左サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する右サブ単位である。
【0022】
このように、予測単位における全てのフィルタリング境界が決定され、フィルタリング処理は、フィルタリング境界に隣接する画素に対して実行され、これにより、異なる動きベクトルを有する単位ブロック間の「ブロッキングアーティファクト」が除去され、画像の予測精度および主観的品質が向上する。
【0023】
任意選択的に、第2の態様の実装可能な方式において、少なくとも2つのサブ単位のうち任意の1つに対して、決定ユニットは具体的に、サブ単位が非並進運動予測単位に含まれる場合、サブ単位の各境界がフィルタリング境界であると決定するか、または、サブ単位の第1の境界が画像ブロックにおける予測単位のサブブロック境界である場合、もしくはサブ単位の第1の境界が画像ブロックにおける変換単位のサブブロック境界である場合、サブ単位の第1の境界がフィルタリング境界であると決定するように構成され、ここで、第1の境界は、サブ単位の任意の境界である。
【0024】
このように、予測単位における、予測単位のサブブロック境界または変換単位のサブブロック境界上に位置する境界がフィルタリング境界であると決定され、後続のフィルタリング処理が当該境界に対して実行されるのみならず、非並進運動予測単位の境界がフィルタリング境界であることが決定されることもでき、フィルタリング処理が予測単位における非並進運動予測単位の当該境界に対して実行され、これにより、予測単位における非並進運動予測単位間のブロッキングアーティファクトが除去される。
【0025】
任意選択的に、第2の態様の別の実装可能な方式において、取得ユニットは具体的に、第1のサブ単位の第1の予測画素値を取得すること、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算することであって、Mは1から4の範囲にある任意の整数である、計算すること、M個のサブ単位の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得すること、および、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得することを行うように構成されてよい。
【0026】
取得ユニットは
具体的に、第1のサブ単位が非並進運動予測単位に含まれる場合、または第1のサブ単位が非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位のそれぞれの動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、左サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する上サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを上サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、上サブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、上サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する左サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを左サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、左サブ単位の動きベクトルを導出することを
行うように構成される。
【0027】
任意選択的に、第2の態様のさらに別の実装可能な方式において、取得ユニットはさらに具体的に、第1のサブ単位(P)の第1の予測画素値を取得すること、予め設定された非並進運動モデルに基づき、
第1の頂点(1)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第1の頂点(1)に対応する座標(1.1、1.2、1.3、1.4)におけるM組の座標の動きベクトルと、
第2の頂点(2)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第2の頂点(2)に対応する座標(2.1、2.2、2.3、2.4)におけるM組の座標の動きベクトルとを導出することであって、第1の頂点(1)および第2の頂点(2)は第1のサブ単位(P)の任意の2つの異なる頂点であり、Mは1から4の範囲にある任意の整数である、導出すること、
第1の頂点(1)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第1の頂点(1)に対応する座標(1.1、1.2、1.3、1.4)におけるM組の座標の動きベクトルと、
第2の頂点(2)を有する第1のサブ単位(P)に、上、下、左、右に隣接するサブ単位の中の第2の頂点(2)に対応する座標(2.1、2.2、2.3、2.4)におけるM組の座標の動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得することであって、M個の動きベクトルペアにおける第1の動きベクトルペアは、第1のサブ単位(P)の第1の頂点(1)に
対応する第1の座標の動きベクトルと、第1のサブ単位(P)の第2の頂点(2)に
対応する第1の座標の動きベクトルとを含み、第1の座標は上座標であり、または下座標であり、または左座標であり、または右座標である、取得すること、予め設定された非並進運動モデルに基づき、M個の動きベクトルペアに対して計算を別々に実行し、第1のサブ単位(P)のM個の動きベクトルを取得すること、第1のサブ単位(P)のM個の動きベクトルに基づき、第1のサブ単位(P)のM個の第2の予測画素値を取得すること、および、第1のサブ単位(P)の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位(P)の第1の画素値を取得することを行うように構成されてよい。
【0028】
このように、異なるサブ単位の動きベクトルの相関を考慮し、第1のサブ単位に隣接するサブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償が実行されるか、または、第1のサブ単位に隣接する座標点に基づき、第1の単位の動きベクトルが計算され、第1のサブ単位に対して動き補償を実行する。従って、データ冗長性およびデータ符号化長さが低減され、第1のサブ単位の予測精度が向上する。
【0029】
任意選択的に、第2の態様のさらに別の実装可能な方式において、決定ユニットはさらに、フィルタリング境界の境界強度値を決定するように構成され、フィルタリングユニットは具体的には、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとに基づき、フィルタリング境界に対応する閾値βおよびtを取得し、βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成され、ここで、Mは、1より大きいかまたはそれに等しい整数である。
【0030】
このように、フィルタリング処理は、フィルタリング境界の強度に基づき、フィルタリング境界に隣接する画素に対して実行されることができ、変換単位および予測単位の分割により引き起こされるブロッキングアーティファクトを低減する。
【0031】
第2の態様において説明されている機能モジュールは、ハードウェアを用いることによって実装され得て、またはハードウェアにより、対応するソフトウェアを実行することによって実装され得ることに留意すべきである。ハードウェアまたはソフトウェアは、上述の機能に対応する1つまたは複数のモジュール、例えば、外部ネットワーク要素と通信するように構成される通信ユニット、分割ユニット、決定ユニット、取得ユニット、およびフィルタリングユニットの機能を実装するように構成されるプロセッサ、および対応するアプリケーションプログラムを記憶するように構成されるメモリを含む。プロセッサ、通信ユニット、およびメモリは、バスを用いることによって接続され、互いに通信する。具体的な実装方式は以下の通りである。
【0032】
第3の態様によると、本発明の実施形態はさらに、第1の態様において説明される方法を実行するように構成されるフィルタリング装置を提供する。フィルタリング装置は、各予測単位を少なくとも2つのサブ単位に分割するように構成される分割ユニットであって、各サブ単位はN×N個の画素を含み、Nは1より大きいかまたはそれに等しい整数である、分割ユニットと、分割ユニットにより分割によって取得された少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定するように構成される決定ユニットと、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得するように構成される取得ユニットであって、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接する、取得ユニットと、取得ユニットにより取得された、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されるフィルタリングユニットとを備えてよい。
【0033】
具体的には、プロセッサにより実行される機能については、第2の態様において提供されているフィルタリング
装置における分割ユニット、決定ユニット、取得ユニット、およびフィルタリングユニットにより実行される機能を参照されたい。
【0034】
以上から、本発明の実施形態はブロッキングアーティファクトを除去するためのフィルタリング方法およびフィルタリング装置を提供することが分かる。各予測単位は、少なくとも2つのサブ単位に分割される。分割ユニットにより分割によって取得された少なくとも2つのサブ単位のそれぞれは、トラバースされ、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界は、予め設定された規則に基づき、決定される。第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値は取得され、ここで、第1のサブ単位および第2のサブ単位は、フィルタリング境界に隣接する。第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理が実行される。このように、予測単位のサブブロック境界または変換単位のサブブロック境界の2つの側に位置する、予測単位における単位の画素がフィルタリングされるのみならず、予測単位における非並進運動予測単位の境界に対してもフィルタリング処理を実行することができ、これにより、予測単位におけるブロッキングアーティファクトが除去され、画像の予測精度および主観的品質が向上し、予測単位の上境界および左境界のみに対してフィルタリング動作が実行され、予測単位の内部動き補償ブロックの境界に対してフィルタリング処理が実行されないため、ブロッキングアーティファクトを
除去できないといった問題を回避する。
【発明を実施するための形態】
【0042】
本発明の主な原理は以下の通りである。予測単位のサブブロック境界または変換単位のサブブロック境界の2つの側に位置する、予測単位における単位の画素がフィルタリングされるのみならず、非並進運動予測単位も発見され、フィルタリング処理が予測単位における非並進運動予測単位の境界に対して実行され、これにより、予測単位におけるブロッキングアーティファクトが除去され、画像の予測精度および主観的品質が向上し、非並進運動
モデルを用いることによって動き補償が実行される予測単位の上境界および左境界のみに対してフィルタリング動作が実行され、予測単位の内部動き補償ブロックの境界に対してフィルタリング処理が実行されないため、ブロッキングアーティファクトを
除去できないといった問題を回避する。従って、画像の予測精度および主観的品質が向上する。
【0043】
本発明の明細書、特許請求の範囲、および添付の図面における「第1」、「第2」、「第3」、および「第4」等(存在する場合)の用語は、類似するものを区別することを意図するものであるが、必ずしも特定の順序を示すものではないことに留意すべきである。そのように称されるデータは、適切な状況において交換可能であり、これにより、本明細書において説明されている本発明の実施形態は、本明細書において示されまたは説明されている順序と異なる順序において実装できることが理解されるべきである。加えて、「中心」、「上」、「下」、「左」、「右」、「頂部」、「底部」、「内側」、および「外側」等の用語により示される方向または位置関係は、添付の図面に基づき示される方向または位置関係であり、本発明を容易に説明し、説明を簡略化するために用いられるに過ぎず、示されているシステムまたは構成要素は特定の向きを有する必要があること、または特定の向きにおいて構成されて操作される必要があることを示すまたは暗示するものではなく、従って、本発明に対する限定として理解されることができない。
【0044】
以下では、本発明の実施形態における添付の図面を参照し、本発明の実施形態における技術的解決手段を明確に
説明する。明らかに、説明されている実施形態は、本発明の実施形態の全部ではなく一部に過ぎない。当業者により、本発明の実施形態に基づき、創造努力なく取得される他の全ての実施形態は、本発明の保護範囲内に含まれるものとする。
【0045】
図1は、本発明において提供される方法を実行できるフィルタリング装置の構造図である。フィルタリング装置は、画像ブロックに対してフィルタリング処理を実行するように構成される。画像ブロックは、少なくとも1つの予測単位、少なくとも1つの非並進運動予測単位、および少なくとも1つの変換単位に分割される。予測単位は、非並進運動予測単位を含む。フィルタリング装置は、ビデオ符号化装置またはビデオ復号装置であってよい。ビデオ符号化装置またはビデオ復号装置は、例えば、ノートブックコンピュータ、タブレットコンピュータ、パーソナルコンピュータ、携帯電話、またはビデオサーバなどの、ビデオを出力または記憶する必要がある任意の装置であってよい。
図1を参照すると、フィルタリング装置は、通信インタフェース1001、プロセッサ1002、メモリ1003、および、これらの構成要素の間の接続および相互通信を実装するように構成される少なくとも1つの通信バス1004を備えてよい。
【0046】
通信インタフェース1001は、外部ネットワーク要素とのデータ通信を実行するように構成されてよい。
【0047】
プロセッサ1002は、中央処理装置(
略してCPU)であってよく、または、特定用途向け集積回路(
ASIC)、または、例えば、1つまたは複数のマイクロプロセッサ(
DSP)、もしくは1つまたは複数のフィールドプログラマブルゲートアレイ(
FPGA)のような、本発明の本実施形態を実装するように構成される1つまたは複数の集積回路であってよい。
【0048】
メモリ1003は、ランダムアクセスメモリ(
RAM)などの揮発性メモリ
、または、リードオンリメモリ(
ROM)、フラッシュメモリ
、ハードディスクドライブ(
HDD)、もしくはソリッドステートドライブ(
SSD)などの不揮発性メモリ
、または、上述の種類のメモリの組み合わせであってよく、本発明において提供されているフィルタリング方法を実装できるアプリケーションプログラムを記憶するように構成される。
【0049】
通信バス1004は、アドレスバス、データバス、制御バス、および同様のものに分類されてよく、業界標準アーキテクチャ(
ISA)バス、ペリフェラルコンポーネントインターコネクト(
PCI)バス、拡張型業界標準アーキテクチャ(
EISA)バス、または同様のものであってよい。表記を容易にするために、通信バスは、
図1において1本の太線のみを用いることによって表わされるが、1つのバスのみ、または1種類のバスのみが存在することを示すわけではない。
【0050】
具体的には、プロセッサ1002は、各予測単位を少なくとも2つのサブ単位に分割することであって、各サブ単位はN×N個の画素を含み、Nは1より大きいかまたはそれに等しい整数である、分割すること、少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定すること、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得することであって、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接する、取得すること、および、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行することを行うように構成される。
【0051】
フィルタリング境界が
水平フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する上サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する下サブ単位であり、または、フィルタリング境界が
垂直フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する左サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する右サブ単位である。
【0052】
少なくとも2つのサブ単位のうち任意の1つに対して、サブ単位が非並進運動予測単位に含まれる場合、サブ単位の各境界はフィルタリング境界であると決定されるか、または、サブ単位の第1の境界が画像ブロックにおける予測単位のサブブロック境界である場合、もしくはサブ単位の第1の境界が画像ブロックにおける変換単位のサブブロック境界である場合、サブ単位の第1の境界はフィルタリング境界であると決定され、ここで、第1の境界は、サブ単位の任意の境界である。
【0053】
任意選択的に、プロセッサ1002は、第1のサブ単位の第1の予測画素値を取得し、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算し、M個のサブ単位の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得し、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に対して別々に重み付けを行い、重み付け後の結果を平均化し、第1のサブ単位の第1の画素値を取得するように構成されてよく、ここで、Mは、1から4の範囲にある任意の整数である。
【0054】
プロセッサ1002が、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位のそれぞれの動きベクトルを計算することは、第1のサブ単位が非並進運動予測単位に含まれる場合、または第1のサブ単位が非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位のそれぞれの動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、左サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する上サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを上サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって上サブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、上サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する左サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを左サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって左サブ単位の動きベクトルを導出することであってよい。
【0055】
任意選択的に、プロセッサ1002はさらに、第1のサブ単位の第1の予測画素値を取得すること、予め設定された非並進運動モデルに基づき、第1のサブ単位の第1の頂点に隣接する上座標、下座標、左座標、および右座標におけるM組の座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する上座標、下座標、左座標、および右座標におけるM組の座標の動きベクトルとを導出することであって、第1の頂点および第2の頂点は第1のサブ単位の任意の2つの異なる頂点であり、Mは1から4の範囲にある任意の整数である、導出すること、第1のサブ単位の第1の頂点に隣接する上座標、下座標、左座標、および右座標におけるM組の座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する上座標、下座標、左座標、および右座標におけるM組の座標の動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得することであって、M個の動きベクトルペアにおける第1の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する第1の座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する第1の座標の動きベクトルとを含み、第1の座標は上座標であり、または下座標であり、または左座標であり、または右座標である、取得すること、予め設定された非並進運動モデルに基づき、M個の動きベクトルペアに対して計算を別々に実行し、第1のサブ単位のM個の動きベクトルを取得すること、第1のサブ単位のM個の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得すること、および、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得することを行うように構成されてよい。
【0056】
任意選択的に、プロセッサ1002はさらに、フィルタリング境界の境界強度値を決定し、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されてよい。
【0057】
以上から、本発明の本実施形態において提供されているフィルタリング装置は、各予測単位を少なくとも2つのサブ単位に分割すること、
プロセッサにより分割によって取得された少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定すること、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得することであって、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接する、取得すること、および、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行することを行うことが分かる。このように、予測単位のサブブロック境界または変換単位のサブブロック境界の2つの側に位置する、予測単位における単位の画素がフィルタリングされるのみならず、予測単位における非並進運動予測単位の境界に対してもフィルタリング処理を実行することができ、これにより、予測単位におけるブロッキングアーティファクトが除去され、画像の予測精度および主観的品質が向上し、予測単位の上境界および左境界のみに対してフィルタリング動作が実行され、予測単位の内部動き補償ブロックの境界に対してフィルタリング処理が実行されないため、ブロッキングアーティファクトを
除去できないといった問題を回避する。
【0058】
説明しやすくするために、実施形態1は、段階の形式で、本発明において提供されている、ブロッキングアーティファクトを除去するためのフィルタリング方法を示して詳細に説明する。示されている段階は、例えば、
図1において示されている装置以外の、実行可能な命令のセットを含むコンピュータシステムにおいて実行されてもよい。加えて、論理的な順序が図面において示されているが、示されているまたは説明されている段階は、いくつかの場合において異なる順序において実行されてよい。
【0059】
[実施形態1]
図2は、本発明の実施形態に係る、ブロッキングアーティファクトを除去するためのフィルタリング方法のフローチャートである。方法は、
図1において示されているフィルタリング装置によって実行され、画像ブロックに対してフィルタリング処理を実行するために用いられる。画像ブロックは、少なくとも1つの予測単位および少なくとも1つの変換単位に分割される。予測単位は、非並進運動予測単位を含む。
【0060】
画像ブロックは、符号化画像ブロックであってよく、または復号画像ブロックであってよい。フィルタリング装置がビデオ符号化装置であるとき、画像ブロックは、符号化画像ブロックである。フィルタリング装置がビデオ復号装置であるとき、画像ブロックは、復号画像ブロックである。
【0061】
高効率ビデオ符号化(
HEVC)規格において、画像ブロックのサイズは、64×64、32×32、16×16、および8×8という4つのレベルに分類され得る。各レベルの画像ブロックは、フレーム内予測およびフレーム間予測に基づき、異なるサイズの予測単位に分割され得る。各予測単位は、並進運動モデルベースの動き補償予測および非並進運動モデルベースの動き補償予測に基づき、並進運動予測単位および非並進運動予測単位に分類され得る。各レベルの画像ブロックは、異なる変換
モードに基づき、異なるサイズの変換単位に分割されてよい。
【0062】
本発明において説明されている非並進運動は、アフィン運動、スケール運動(scale motion)、回転運動、または透視運動(perspecive motion)などの任意の不規則な運動を含んでよいことに留意すべきである。予測単位が非並進運動予測単位を含むことは、予測単位が非並進運動予測単位と交差することを意味する。任意選択的に、予測単位は、並進運動予測単位および非並進運動予測単位を含んでよい。
【0063】
例えば、
図3に示されているように、フレーム間予測が32×32の画像ブロックに対して実行される場合、32×32の画像ブロックは、1つの予測単位として単独で用いられ得る。動き補償予測が非並進運動
モデルを用いることによって予測単位に対して実行される場合、予測単位は、各非並進運動予測単位に基づき、異なるサイズの非並進運動予測単位に分割され得る。異なる変換モードが32×32の画像ブロックにおける異なるサイズの単位のために用いられる場合、32×32の画像ブロックは、各変換単位に基づき、異なるサイズの変換単位に分割され得る。
【0064】
非並進運動モデルに基づき取得された隣接する単位の動きベクトルは異なる。従って、動き補償予測が非並進運動モデルに基づき実行される、予測単位における隣接する単位の間のブロッキングアーティファクトを除去するために、隣接する単位間の境界を発見することがさらに必要であり、これにより、境界に近い画素に対してフィルタリング処理を実行することができる。
図2において示されているように、方法は、以下の段階を備えてよい。
【0065】
S101.各予測単位を少なくとも2つのサブ単位に分割し、ここで、各サブ単位は、N×N個の画素を含み、Nは、1より大きいかまたはそれに等しい整数である。
【0066】
Nの値は、必要に応じて設定されてよく、このことは本発明の本実施形態において限定されない。任意選択的に、Nは、デフォルトで4である。
【0067】
例えば、w×hの予測単位は、複数の4×4のサブ単位に分割されてよい。本発明の本実施形態において、4×4のサブ単位は、4×4の画素を含むサブ単位を表わし得る。
【0068】
S102.少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定する。
【0069】
任意選択的に、少なくとも2つのサブ単位の任意の1つに対して、予め設定された規則に基づき、サブ単位のフィルタリング境界を決定する段階は、サブ単位が非並進運動予測単位に含まれる場合、サブ単位の各境界がフィルタリング境界であると決定する段階、または、サブ単位の第1の境界が画像ブロックにおける予測単位のサブブロック境界である場合、もしくはサブ単位の第1の境界が画像ブロックにおける変換単位のサブブロック境界である場合、サブ単位の第1の境界がフィルタリング境界であると決定する段階を含んでよく、ここで、第1の境界は、サブ単位の任意の境界である。
【0070】
このように、予測単位のサブブロック境界または変換単位のサブブロック境界上に位置する、予測単位における画素が発見されるのみならず、動き補償予測が非並進運動モデルに基づき実行される、予測単位における隣接する単位間の境界も取得できる。
【0071】
例えば、
図3において示されているように、32×32の予測単位は、(
図3の影1により示されているように)64個の4×4のサブ単位に分割されてよい。各サブ単位は、上境界、下境界、左境界、および右境界という4つの境界を有してよい。
図3の影2により示されているサブ単位は、予測単位の内部サブ単位である。動き補償予測が非並進運動モデルを用いることによって実行されるので、サブ単位の動きベクトルは、その隣接するサブ単位の動きベクトルと異なる。サブ単位が予測単位の内部サブ単位であるので、既存のフィルタリング方式が用いられる場合、サブ単位に対してフィルタリング処理が実行されず、その結果、サブ単位とその隣接するサブ単位との間の「ブロッキングアーティファクト」は除去されない。しかし、サブ単位の境界は、フィルタリング境界であると段階S102において決定され得て、フィルタリング処理は、後続の段階における処理によってサブ単位の境界の近くの画素に対して実行され得て、サブ単位とその隣接するサブ単位との間の「ブロッキングアーティファクト」を可能な限り除去し、それにより、予測単位の内部サブ単位に対してフィルタリング処理を実装し、ビデオ画像の主観的および客観的品質を向上させる。
【0072】
図3において示されているサブ単位の上、下、左、および右境界は単に、説明のための例であり、サブ単位の境界は、本例のネーミング方式を含むが、それに限定されないことに留意すべきである。
【0073】
S103.第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得し、ここで、第1のサブ単位および第2のサブ単位は、フィルタリング境界に隣接する。
【0074】
フィルタリング境界が
水平フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する上サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する下サブ単位であり、または、フィルタリング境界が
垂直フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する左サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する右サブ単位である。
【0075】
垂直フィルタリング境界は、変換単位または非並進運動予測単位のサブブロックが水平に配置されている変換単位または非並進運動予測単位のサブブロック境界であり、水平フィルタリング境界は、変換単位または非並進運動予測単位のサブブロックが垂直に配置されている変換単位または非並進運動予測単位のサブブロック境界であることに留意すべきである。本発明において、画像ブロックは、x軸(すなわち、水平方向)およびy軸(垂直方向)を含む平面であることが理解され得る。従って、「水平」は、x軸に平行であることを意味し、「垂直」は、y軸に平行であることを意味する。例えば、
図3において示されているように、変換単位のサブブロックがx軸に平行に配置された変換単位のサブブロック境界は、垂直フィルタリング境界である。
【0076】
例えば、第1のサブ単位または第2のサブ単位の第1の画素値は、以下の方式1または方式2で取得されてよい。第1のサブ単位の第1の画素値を取得する方式は第2のサブ単位の第1の画素値を取得する方式と同じであるので、説明しやすくするために、第1のサブ単位の第1の画素値を取得することのみを例として用いて、方式1または方式2を説明する。
【0077】
方式1:第1のサブ単位の第1の予測画素値を取得すること、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算することであって、Mは1から4の範囲にある任意の整数である、計算すること、M個のサブ単位の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得すること、および、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得することである。
【0078】
本発明の本実施形態において、動きベクトルは、水平成分および垂直成分を含むことに留意すべきである。水平成分は、x軸に平行な成分であり、垂直成分は、y軸に平行な成分である。
【0079】
第1のサブ単位の第1の予測画素値は、動きモデルに基づき導出された元の画素値であってよい。例えば、第1のサブ単位がアフィン運動単位であるとき、第1のサブ単位における各画素の動きベクトルは、以下のアフィン運動モデル(1)に基づき取得されてよい。そして、第1のサブ単位における各画素をトラバースし、画素の動きベクトルに基づき、指定された参照フレームにおいて、当該画素にマッチする画素を発見する。参照フレームにおける画素の画素値は、第1のサブ単位における画素の予測画素値として用いられる。全ての画素をトラバースすることによって取得された予測画素値は、第1のサブ単位の第1の予測画素値となるよう組み合わせられる。第1のサブ単位がN×N個の画素を含む場合、第1のサブ単位の取得された第1の予測画素値は、N×N個のマトリックスであることが理解され得る。加えて、既存の補間フィルタリングアルゴリズムが、画素の動きベクトルに基づき、指定された参照フレームにおいて、当該画素にマッチする画素を発見するために用いられてよく、このことはここでは詳細に説明されない。本発明の本実施形態において、参照フレームは、前方参照フレームであってよく、または後方参照フレームであってよいことに留意すべきである。
【数1】
【0080】
アフィン運動モデル(1)において、(V
0x,V
0y)は通常、第1のサブ単位の左頂点(0,0)の動きベクトルであってよく、(V
1x,V
1y)は通常、第1のサブ単位の右頂点(w,0)の動きベクトルであってよく、ここで、wは、第1のサブ単位の幅であってよく、(V
x,V
y)は、第1のサブ単位における画素(x,y)の動きベクトルである。
【0081】
第1のサブ単位に隣接する上サブ単位は、第1のサブ単位の上境界に隣接するサブ単位であり、第1のサブ単位に隣接する下サブ単位は、第1のサブ単位の下境界に隣接するサブ単位であり、第1のサブ単位に隣接する左サブ単位は、第1のサブ単位の左境界に隣接するサブ単位であり、第1のサブ単位に隣接する右サブ単位は、第1のサブ単位の右境界に隣接するサブ単位である。
【0082】
例えば、
図3において示されているように、第1のサブ単位がサブ単位2である場合、サブ単位aは、第1のサブ単位の上サブ単位であり、サブ単位bは、第1のサブ単位の下サブ単位であり、サブ単位cは、第1のサブ単位の左サブ単位であり、サブ単位dは、第1のサブ単位の右サブ単位である。
【0083】
任意選択的に、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算することは、第1のサブ単位が非並進運動予測単位に含まれる場合、または第1のサブ単位が非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、左サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する上サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを上サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、上サブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、上サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する左サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを左サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、左サブ単位の動きベクトルを導出することを含んでよい。
【0084】
本発明の本実施形態において、非並進運動は、アフィン運動、スケール運動、回転運動、または透視運動などの任意の不規則な運動であってよい。 従って、異なる非並進運動に対応し、予め設定された非並進運動モデルを用いることによって、サブ単位の動きベクトルを導出することは、アフィン運動モデル(1)に基づき、サブ単位の動きベクトルを導出すること、または、スケール運動モデル(2)
【数2】
に基づき、サブ単位の動きベクトルを導出することであって、スケール運動モデル(2)において、(V
0x,V
0y)は通常、第1のサブ単位の左頂点(0,0)の動きベクトルであってよく、(a
0,a
1)は、1組の予め設定されたスケール因子であり、a
0は、水平方向におけるスケール因子であり、a
1は、垂直方向におけるスケール因子であり、(V
x,V
y)は、第1のサブ単位における画素(x,y)の動きベクトルである、導出すること、または、回転運動モデル(3)
【数3】
に基づき、サブ単位の動きベクトルを導出することであって、回転運動モデル(3)において、(V
0x,V
0y)は通常、第1のサブ単位の左頂点(0,0)の動きベクトルであってよく、(V
x,V
y)は、第1のサブ単位における画素(x,y)の動きベクトルである、導出すること、または、透視運動モデル(4)
【数4】
に基づき、サブ単位の動きベクトルを導出することであって、透視運動モデル(4)において、(V
0x,V
0y)は通常、第1のサブ単位の左頂点(0,0)の動きベクトルであってよく、(V
1x,V
1y)は通常、第1のサブ単位の右頂点(w,0)の動きベクトルであってよく、(V
2x,V
2y)は通常、第1のサブ単位の左下の頂点(0,h)の動きベクトルであってよく、(V
3x,V
3y)は通常、第1のサブ単位の右下の頂点(w,h)の動きベクトルであってよく、wは、第1のサブ単位の幅であってよく、hは、第1のサブ単位の高さであり、(V
x,V
y)は、第1のサブ単位における画素(x,y)の動きベクトルである、導出することを含んでよい。
【0085】
第2の
予測画素値は、第1のサブ単位に隣接するサブ単位を用いて第1のサブ単位に対して動き補償を実行することによって取得された新たな画素値であってよい。
【0086】
任意選択的に、Mが4であるとき、M個のサブ単位の動きベクトルに基づき、第1のサブ単位のM個の第2の予測画素値を取得することは、第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得すること、第1のサブ単位に隣接する下サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得すること、第1のサブ単位に隣接する左サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得すること、および、第1のサブ単位に隣接する右サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得することを含んでよい。
【0087】
第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得する実装方式は基本的に、第1のサブ単位に隣接する下サブ単位または左サブ単位または右サブ単位に基づく動き補償を実行する実装方式と同じであることに留意すべきである。説明しやすくするために、ここでは、第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得する実装方式のみが、説明のための例として用いられる。
【0088】
例えば、第1のサブ単位に隣接する上サブ単位の動きベクトルは、第1のサブ単位の動きベクトルとして用いられてよく、そして、動きベクトルに基づき、指定された参照フレームにおいて、第1のサブ単位にマッチする単位が発見され、参照フレームにおけるマッチした単位の画素値が、第1のサブ単位の第2の予測画素値として用いられる。
【0089】
任意選択的に、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得することは、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に対して別々に重み付けを行い、重み付け後の結果を平均化し、第1のサブ単位の第1の画素値を取得することを含んでよい。
【0090】
具体的には、第1のサブ単位の第1の予測画素値および各第2の予測画素値はまず、以下の式(5)に基づき、重み付けされ得て、M個の重み付けされた画素値を取得し、当該M個の重み付けされた画素値は平均化され、第1のサブ単位の第1の画素値を取得する。
【数5】
【0091】
式(5)において、P
C(i,j)は、第1のサブ単位の第1の予測画素値であり、P
N(i,j)は、第1のサブ単位の第2の予測画素値であり、W
N(i,j)は、第2の予測画素値P
N(i,j)に対応する重み付けマトリックスであり、P'
C(i,j)は、第1のサブ単位の第1の画素値および第2の
予測画素値に対して重み付けを行った後に取得された画素値であり、Mの値は、1から4の範囲にあってよい。
【0092】
例えば、第1のサブ単位が4×4の画素を含む場合、第1のサブ単位の第1の予測画素値および第2の予測画素値は両方とも、4×4のマトリックスである。 概して、上、下、左、および右サブ単位という4つのサブ単位を用いることによって動き補償を実行することによって取得された予測画素値P
1、P
2、P
3、およびP
4に対応する重み付けマトリックスW
1、W
2、W
3、およびW
4は、
【数6】
【数7】
【数8】
および、
【数9】
である。
【0093】
方式2:第1のサブ単位Pの第1の予測画素値を取得すること、予め設定された非並進運動モデルに基づき、第1のサブ単位Pの第1の頂点1に隣接する上座標1.1、下座標1.2、左座標1.3、および右座標1.4におけるM組の座標の動きベクトルと、第1のサブ単位Pの第2の頂点2に隣接する上座標2.1、下座標2.2、左座標2.3、および右座標2.4におけるM組の座標の動きベクトルとを導出することであって、Mは1から4の範囲にある任意の整数である、導出すること、第1のサブ単位Pの第1の頂点1に隣接する上座標1.1、下座標1.2、左座標1.3、および右座標1.4におけるM組の座標の動きベクトルと、第1のサブ単位Pの第2の頂点2に隣接する上座標2.1、下座標2.2、左座標2.3、および右座標2.4におけるM組の座標の動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得することであって、M個の動きベクトルペアにおける第1の動きベクトルペアは、第1のサブ単位Pの第1の頂点1に隣接する第1の座標の動きベクトルおよび第1のサブ単位Pの第2の頂点2に隣接する第1の座標の動きベクトルを含み、第1の座標は、上座標であり、または下座標であり、または左座標であり、または右座標であり、取得すること、予め設定された非並進運動モデルに基づき、M個の動きベクトルペアに対して計算を別々に実行し、第1のサブ単位PのM個の動きベクトルを取得すること、第1のサブ単位PのM個の動きベクトルに基づき、第1のサブ単位PのM個の第2の予測画素値を取得すること、および、第1のサブ単位Pの第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位Pの第1の画素値を取得することである。
【0094】
第1のサブ単位Pの第1の頂点1に隣接する上座標1.1は、第1のサブ単位の上境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点1に隣接する下座標1.2は、第1のサブ単位Pの下境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点に隣接する左座標1.3は、第1のサブ単位の左境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点に隣接する右座標1.4は、第1のサブ単位の右境界に隣接するサブ単位の第1の頂点の座標であってよい。
【0095】
第1のサブ単位Pの第2の頂点2に隣接する上座標2.1は、第1のサブ単位の上境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する下座標2.2は、第1のサブ単位の下境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する左座標2.3は、第1のサブ単位の左境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する右座標2.4は、第1のサブ単位の右境界に隣接するサブ単位の第2の頂点の座標であってよい。本発明の本実施形態において、サブ単位の第1の頂点は、サブ単位の左上の頂点、左下の頂点、右上の頂点、および右下の頂点という4つの頂点のうち任意の1つであってよく、サブ単位の第2の頂点は、サブ単位の左上の頂点、左下の頂点、右上の頂点、および右下の頂点という4つの頂点において、第1の頂点以外の頂点のうち任意の1つであってよいことに留意すべきである。サブ単位の頂点は、頂点の位置における画素の座標点であってよい。概して、第1のサブ単位Pの左上の頂点は、原点(0,0)に設定され、他の頂点の座標は、原点の位置に基づき、それに対応して設定される。
【0096】
例えば、
図4において示されているように、第1のサブ単位Pは、4×4のサブ単位である。4×4は、画素の数量であり、水平方向または垂直方向における隣接する画素の間の間隔が1である。第1のサブ単位Pの第1の頂点1は左上の頂点における画素(0,0)であると仮定する。第1のサブ単位の左上の頂点および右上の頂点は、3つの画素だけ離間されている。従って、第1のサブ単位Pの第2の頂点2は、右上の頂点における画素(3,0)であり、第1の頂点1に隣接する上座標1.1は、第1のサブ単位Pの上境界に隣接する上サブ単位の左上の頂点における画素(0,−4)であり、第1の頂点1に隣接する下座標1.2は、第1のサブ単位Pの下境界に隣接する下サブ単位の左上の頂点における画素(0,4)であり、第1の頂点1に隣接する左座標1.3は、第1のサブ単位Pの左境界に隣接する左サブ単位の左上の頂点における画素(−4,0)であり、第1の頂点1に隣接する右座標1.4は、第1のサブ単位Pの右境界に隣接する右サブ単位の左上の頂点における画素(4,0)である。同様に、
図4において示されているように、画素(3,0)である第2の頂点2に隣接する上座標2.1は、第1のサブ単位Pの上境界に隣接する上サブ単位の右上の頂点における画素(3,−4)であり、第2の頂点2に隣接する下座標2.2は、第1のサブ単位Pの下境界に隣接する下サブ単位の右上の頂点における画素(3,4)であり、第2の頂点2に隣接する左座標2.3は、第1のサブ単位Pの左境界に隣接する左サブ単位の右上の頂点における画素(−1,0)であり、第2の頂点2に隣接する右座標2.4は、第1のサブ単位Pの右境界に隣接する右サブ単位の右上の頂点における画素(7,0)である。
【0097】
例えば、M=4であるとき、第1のサブ単位の第1の頂点に隣接する上座標、下座標、左座標、および右座標という4組の座標の動きベクトル、および第1のサブ単位の第2の頂点に隣接する上座標、下座標、左座標、および右座標という4組の座標の動きベクトルは、予め設定された非並進運動モデルに基づき、導出されてよい。
【0098】
第1の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する上座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する上座標の動きベクトルとを含む。第2の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する下座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する下座標の動きベクトルとを含む。第3の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する左座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する左座標の動きベクトルとを含む。第4の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する右座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する右座標の動きベクトルとを含む。
【0099】
計算は、予め設定された非並進運動モデルに基づき、第1の動きベクトルペア、第2の動きベクトルペア、第3の動きベクトル
ペア、および第4の動きベクトルペアに対して別々に実行され、第1のサブ単位の4つの動きベクトルを取得する。第1のサブ単位の4つの第2の予測画素値は、第1のサブ単位の4つの動きベクトルに基づき、取得される。第1のサブ単位の第1の予測画素値および4つの第2の予測画素値は、別々に重み付けされる。重み付け後の結果が平均化され、第1のサブ単位の第1の画素値を取得する。
【0100】
方式2で第1のサブ単位の第1の予測画素値を取得するための方法は、方式1で第1のサブ単位の第1の予測画素値を取得するための方法と同じであり、詳細は、ここでは再び説明されない。
【0101】
加えて、方式2において、第1のサブ単位のM個の第2の予測画素値が第1のサブ単位のM個の動きベクトルに基づき取得され、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値が別々に重み付けされ、重み付け後の結果が平均化され、第1のサブ単位の第1の画素値を取得するという方式も、方式1における方式と同じであり、詳細はここでは再び説明されない。
【0102】
第1のサブ単位の第1の頂点または第2の頂点に隣接する上、下、左、および右座標の動きベクトルは、予め設定された非並進運動モデル(1)、または(2)、または(3)、または(4)に基づき導出され得ることが理解され得る。
【0103】
S104.第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する。
【0104】
任意選択的に、フィルタリング境界の境界強度値が設定されてよく、フィルタリング処理は、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対して、第2の予め設定されたアルゴリズムを用いることによって実行されてよく、ここで、Mは、1より大きいかまたはそれに等しい整数である。
【0105】
例えば、フィルタリング境界に対応する閾値βおよびtは、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとに基づき取得され得る。
【0106】
フィルタリング処理は、βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対して実行され、ここで、Mは、1より大きいかまたはそれに等しい整数である。
【0107】
フィルタリング境界の境界強度値は、以下の方式で設定されてよい。少なくとも1つのフレーム内予測単位が、第1のサブ単位もしくは第2のサブ単位が位置する画像ブロックに存在する場合、フィルタリング境界の境界強度値を2に設定するか、または、フレーム内予測単位が、第1のサブ単位もしくは第2のサブ単位が位置する画像ブロックに存在せず、フィルタリング境界が変換単位のサブブロック境界であり、かつ、第1のサブ単位もしくは第2のサブ単位が位置する変換単位が、少なくとも1つの非ゼロ係数を有する場合、フィルタリング境界の境界強度値を1に設定するか、または、フレーム内予測単位が、第1のサブ単位もしくは第2のサブ単位が位置する画像ブロックに存在しない場合、かつ、以下の条件(1)から(3)のうち任意の1つが真の条件であるとき、フィルタリング境界の境界強度値を1に設定し、そうでなければ、フィルタリング境界の境界強度値を0に設定する。(1)第1のサブ単位および第2のサブ単位が位置する予測単位の参照画像または動きベクトルの数量は同じであり、第1のサブ単位が位置する予測単位は1つの動きベクトルを有し、第2のサブ単位が位置する予測単位は1つの動きベクトルを有し、第1のサブ単位の動きベクトルおよび第2のサブ単位の動きベクトルの水平成分または垂直成分間の動きベクトル差は、動きベクトル差閾値Tより大きいかまたはそれに等しく、(2)第1のサブ単位が位置する予測単位は2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は異なり、第2のサブ単位が位置する予測単位は2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は異なり、同じ予測画像を示す2つの動きベクトルの水平成分または垂直成分間の動きベクトル差は動きベクトル差閾値Tより大きいかまたはそれに等しく、および、(3)第1のサブ単位が位置する予測単位は2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は同じであり、第2のサブ単位が位置する予測単位は2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は同じであり、かつ、以下の2つの条件aおよびbが真の条件である。(a)前方参照候補リストlist0を示す2つの動きベクトルの水平成分もしくは垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す2つの動きベクトルの水平成分もしくは垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しく、および、(b)前方参照候補リストlist0を示す、第1のサブ単位が位置する予測単位の動きベクトル、および後方参照候補リストlist1を示す、第2のサブ単位が位置する予測単位の動きベクトルの水平成分もしくは垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す、第1のサブ単位が位置する予測単位の動きベクトル、および前方参照候補リストlist0を示す、第2のサブ単位が位置する予測単位の動きベクトルの水平成分または垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しい。
【0108】
動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度であってよく、または、第1のサブ単位および第2のサブ単位が位置する予測単位の動きモデルが異なる場合、動きベクトル差閾値Tは、1/4の輝度サンプリング精度であり、もしくは、第1の単位および第2のサブ単位が位置する予測単位の動きモデルが同じである場合、動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度である。
【0109】
初期閾値β
0およびt
0は、必要に応じて設定されるが、このことは、本発明の本実施形態において限定されない。
【0110】
例えば、閾値βおよびtは、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとに基づき取得される。
【0111】
βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行することは、まず、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとを、式
【数10】
に代入し、qP
Lを取得し、ここで、Qp
Qは、第1のサブ単位の量子化パラメータであり、Qp
Pは、第2のサブ単位の量子化パラメータであり、そして、式
【数11】
、および式
【数12】
に基づき、2つのQ値を取得し、予め設定された表を照会し、式
【数13】
に基づき、取得されたQ値に対応するβ'を取得し、かつ、式
【数14】
に基づき、取得されたQ値に対応するt'
Cを取得すること、表を照会することによって取得されたβ'を式
【数15】
に代入し、閾値βを取得することであって、BitDepthは、画素のビット幅を示す、取得すること、表を照会することによって取得されたt'
Cを式
【数16】
に代入し、閾値tを取得すること、および、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差をβおよびtと比較し、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する必要があるかを決定することを含んでよい。
【0112】
例えば、
図5は、
垂直フィルタリング境界に隣接するサブ単位の構造図である。
図5において示されているように、第1のサブ単位Pおよび第2のサブ単位Qはそれぞれ、4×4の画素を含む。PおよびQにおける画素の画素値が以下の式を満たした場合、
垂直フィルタリング境界に隣接する画素に対してフィルタリング処理を実行することが決定される。
【数17】
【0113】
Pの第1行および第4行における画素と、Qの第1行および第4行における画素とが以下の式
【数18】
【数19】
および、
【数20】
を満たした場合、
垂直フィルタリング境界に隣接する画素に対して強いフィルタリングが実行されるか、または、上述の条件が満たされなかった場合、弱いフィルタリングが実行され、ここで、iの値は、0または3である。
【0114】
任意選択的に、
垂直フィルタリング境界に隣接する画素に対して強いフィルタリングを実行することは、
垂直フィルタリング境界に隣接する8つの画素を取得し、5つのタップを有するフィルタを用いることによってフィルタリングを実行することであってよい。例えば、Pの第1行における4つの画素と、Qの第1行における4つの画素とが選択されてよく、当該8つの画素は、5つのタップを有するフィルタを用いることによってフィルタリングされる。
【0115】
垂直フィルタリング境界に隣接する画素に対して弱いフィルタリングを実行することは、
垂直フィルタリング境界に隣接する6つの画素を取得し、3つのタップを有するフィルタを用いることによってフィルタリングを実行することであってよい。本発明の本実施形態において、6つの画素は、Pの第1行における4つの画素およびQの第1行における4つの画素からランダムに選択されてよく、3つのタップを有するフィルタを用いることによってフィルタリングされることに留意すべきである。
【0116】
上述の表は、必要に応じて設定されてよいが、このことは本発明の本実施形態において限定されない。例えば、表が表1であり、式
【数21】
に基づき取得されたQ値は11であり、式
【数22】
に基づき、取得されたQ値が24である場合、表1から、β'は0であり、t'
Cは1であることが分かる。
【表1】
【0117】
以上から、本発明の本実施形態において提供されている、ブロッキングアーティファクトを除去するためのフィルタリング方法によれば、各予測単位は、少なくとも2つのサブ単位に分割され、
少なくとも2つのサブ単位のそれぞれはトラバースされ、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界は予め設定された規則に基づき決定され、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値は取得され、ここで、第1のサブ単位および第2のサブ単位はフィルタリング境界に隣接し、フィルタリング処理は、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対して実行されることが分かる。このように、予測単位のサブブロック境界または変換単位のサブブロック境界の2つの側に位置する、予測単位における単位の画素がフィルタリングされるのみならず、予測単位における非並進運動予測単位の境界に対してもフィルタリング処理を実行することができ、これにより、予測単位におけるブロッキングアーティファクトは除去され、画像の予測精度および主観的品質は向上し、予測単位の上境界および左境界のみに対してフィルタリング動作が実行され、予測単位の内部動き補償ブロックの境界に対してフィルタリング処理が実行されないため、ブロッキングアーティファクトを
除去できないといった問題を回避する。
【0118】
[実施形態2]
図6は、本発明の実施形態に係るフィルタリング装置10の構造図である。フィルタリング装置10は、画像ブロックに対してフィルタリング処理を実行するように構成される。画像ブロックは、少なくとも1つの予測単位および少なくとも1つの変換単位に分割される。予測単位は、非並進運動予測単位を含む。フィルタリング装置は、ビデオ符号化装置またはビデオ復号装置であってよい。ビデオ符号化装置またはビデオ復号装置は、例えば、ノートブックコンピュータ、タブレットコンピュータ、パーソナルコンピュータ、携帯電話、またはビデオサーバなどの、ビデオを出力または記憶する必要がある任意の装置であってよい。
図6において示されているように、フィルタリング装置10は、各予測単位を少なくとも2つのサブ単位に分割するように構成される分割ユニット101であって、各サブ単位は、N×N個の画素を含み、Nは、1より大きいかまたはそれに等しい整数である、分割ユニット101と、分割ユニットにより分割によって取得された少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定するように構成される決定ユニット102と、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得するように構成される取得ユニット103であって、第1のサブ単位および第2のサブ単位は、フィルタリング境界に隣接する、取得ユニット103と、取得ユニット103により取得された第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されるフィルタリングユニット104とを備えてよい。
【0119】
フィルタリング境界が
水平フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する上サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する下サブ単位であり、または、フィルタリング境界が
垂直フィルタリング境界であるとき、第1のサブ単位は、フィルタリング境界に隣接する左サブ単位であり、第2のサブ単位は、フィルタリング境界に隣接する右サブ単位である。
【0120】
垂直フィルタリング境界は、変換単位または非並進運動予測単位のサブブロックが水平に配置された変換単位または非並進運動予測単位のサブブロック境界であり、水平フィルタリング境界は、変換単位または非並進運動予測単位のサブブロックが垂直に配置された変換単位または非並進運動予測単位のサブブロック境界であることに留意すべきである。本発明において、画像ブロックは、x軸(すなわち、水平方向)およびy軸(垂直方向)を含む平面であることが理解され得る。従って、「水平」は、x軸に平行であることを意味し、「垂直」は、y軸に平行であることを意味する。例えば、
図3において示されているように、変換単位のサブブロックがx軸に平行に配置された変換単位のサブブロック境界は、垂直フィルタリング境界である。
【0121】
さらに、少なくとも2つのサブ単位のうち任意の1つに対して、決定ユニット102は具体的に、サブ単位が非並進運動予測単位に含まれる場合、サブ単位の各境界がフィルタリング境界であると決定するか、または、サブ単位の第1の境界が画像ブロックにおける予測単位のサブブロック境界である場合、もしくはサブ単位の第1の境界が画像ブロックにおける変換単位のサブブロック境界である場合、サブ単位の第1の境界がフィルタリング境界であると決定するように構成され、ここで、第1の境界は、サブ単位の任意の境界である。
【0122】
このように、予測単位における、予測単位のサブブロック境界または変換単位のサブブロック境界上に位置する境界がフィルタリング境界であると決定され、後続のフィルタリング処理が境界に対して実行されるのみならず、非並進運動予測単位の境界がフィルタリング境界であることも決定でき、フィルタリング処理は、予測単位における非並進運動予測単位の当該境界に対して実行され、これにより、予測単位における非並進運動予測単位間のブロッキングアーティファクトが除去される。
【0123】
さらに、取得ユニット103は、以下の方式1または方式2で第1のサブ単位の第1の画素値を取得するように構成されてよい。
【0124】
方式1:第1のサブ単位の第1の予測画素値を取得すること、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算することであって、Mは1から4の範囲にある任意の整数である、計算すること、および、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位の第1の画素値を取得することである。
【0125】
本発明の本実施形態において、動きベクトルは、水平成分および垂直成分を含むことに留意すべきである。水平成分は、x軸に平行な成分であり、垂直成分は、y軸に平行な成分である。
【0126】
第1のサブ単位の第1の予測画素値は、動きモデルに基づき導出された元の画素値であってよい。例えば、第1のサブ単位がアフィン運動単位であるとき、第1のサブ単位における各画素の動きベクトルは、上述のアフィン運動モデル(1)に基づき取得されてよい。そして、第1のサブ単位における各画素はトラバースされ、画素の動きベクトルに基づき、指定された参照フレームにおいて、当該画素にマッチする画素を発見する。参照フレームにおける画素の画素値は、第1のサブ単位における画素の予測画素値として用いられる。全ての画素をトラバースすることによって取得された予測画素値は、第1のサブ単位の第1の予測画素値となるよう組み合わせられる。第1のサブ単位がN×Nの画素を含む場合、第1のサブ単位の取得された第1の予測画素値は、N×Nのマトリックスであることが理解され得る。加えて、既存の補間フィルタリングアルゴリズムは、画素の動きベクトルに基づき、指定された参照フレームにおいて、当該画素にマッチする画素を発見するために用いられてよく、このことは、ここでは詳細に説明されない。
【0127】
第1のサブ単位に隣接する上サブ単位は、第1のサブ単位の上境界に隣接するサブ単位であり、第1のサブ単位に隣接する下サブ単位は、第1のサブ単位の下境界に隣接するサブ単位であり、第1のサブ単位に隣接する左サブ単位は、第1のサブ単位の左境界に隣接するサブ単位であり、第1のサブ単位に隣接する右サブ単位は、第1のサブ単位の右境界に隣接するサブ単位である。
【0128】
例えば、
図3において示されているように、第1のサブ単位がサブ単位2である場合、サブ単位aは、第1のサブ単位の上サブ単位であり、サブ単位bは、第1のサブ単位の下サブ単位であり、サブ単位cは、第1のサブ単位の左サブ単位であり、サブ単位dは、第1のサブ単位の右サブ単位である。
【0129】
任意選択的に、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを計算することは、第1のサブ単位が非並進運動予測単位に含まれる場合、または第1のサブ単位が非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、左サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する上サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを上サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって上サブ単位の動きベクトルを導出すること、または、第1のサブ単位が非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、第1のサブ単位に隣接する下サブ単位、上サブ単位、および右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、第1のサブ単位に隣接する左サブ単位が位置する予測単位の動きベクトルが存在する場合、第1のサブ単位の動きベクトルを左サブ単位の動きベクトルとして用いること、または、フレーム内符号化モードが第1のサブ単位のために用いられる場合、もしくは第1のサブ単位の動きベクトルが存在しない場合、予め設定された非並進運動モデルを用いることによって、左サブ単位の動きベクトルを導出することを含んでよい。
【0130】
本発明の本実施形態において、非並進運動は、アフィン運動、スケール運動、回転運動、または透視運動などの任意の不規則な運動であってよい。従って、異なる非並進運動に対応し、予め設定された非並進運動モデルを用いることによって、サブ単位の動きベクトルを導出することは、アフィン運動モデル(1)に基づき、サブ単位の動きベクトルを導出すること、または、スケール運動モデル(2)に基づき、サブ単位の動きベクトルを導出すること、または、回転運動モデル(3)に基づき、サブ単位の動きベクトルを導出すること、または、透視運動モデル(4)に基づき、サブ単位の動きベクトルを導出することを含んでよい。
【0131】
第2の
予測画素値は、第1のサブ単位に対して、第1のサブ単位に隣接するサブ単位を用いることによって動き補償を実行することによって取得された新たな画素値であってよい。具体的には、Mが4であるとき、取得ユニット103は、第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行して1つの第2の予測画素値を取得し、第1のサブ単位に隣接する下サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行して1つの第2の予測画素値を取得し、第1のサブ単位に隣接する左サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行して1つの第2の予測画素値を取得し、第1のサブ単位に隣接する右サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行して1つの第2の予測画素値を取得し、第1のサブ単位の第1の予測画素値および4つの第2の予測画素値に対して別々に重み付けを行い、重み付け後の結果を平均化して第1のサブ単位の第1の画素値を取得するように構成されてよい。
【0132】
第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得する実装方式は基本的に、第1のサブ単位に隣接する下サブ単位または左サブ単位または右サブ単位に基づき、動き補償を実行する実装方式と同じであることに留意すべきである。説明しやすくするために、ここでは、第1のサブ単位に隣接する上サブ単位の動きベクトルに基づき、第1のサブ単位に対して動き補償を実行し、1つの第2の予測画素値を取得する実装方式のみを、説明のための例として用いる。
【0133】
例えば、取得ユニット103は、第1のサブ単位に隣接する上サブ単位の動きベクトルを第1のサブ単位の動きベクトルとして用い、そして、動きベクトルに基づき、指定された参照フレームにおいて、第1のサブ単位にマッチする単位を発見し、参照フレームにおけるマッチした単位の画素値を第1のサブ単位の第2の予測画素値として用いてよい。
【0134】
任意選択的に、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値に対して別々に重み付けを行い、重み付け後の結果を平均化し、第1のサブ単位の第1の画素値を取得することは、まず、式(5)に基づき、第1のサブ単位の第1の予測画素値および各第2の予測画素値に対して重み付けを行い、M個の重み付けされた画素値を取得し、M個の重み付けされた画素値を平均化し、第1のサブ単位の第1の画素値を取得することを含んでよい。
【0135】
方式2:第1のサブ単位Pの第1の予測画素値を取得すること、予め設定された非並進運動モデルに基づき、第1のサブ単位Pの第1の頂点1に隣接する上座標1.1、下座標1.2、左座標1.3、および右座標1.4におけるM組の座標の動きベクトルと、第1のサブ単位Pの第2の頂点2に隣接する上座標2.1、下座標2.2、左座標2.3、および右座標2.4におけるM組の座標の動きベクトルとを導出することであって、Mは1から4の範囲にある任意の整数である、導出すること、第1のサブ単位Pの第1の頂点1に隣接する上座標1.1、下座標1.2、左座標1.3、および右座標1.4におけるM組の座標の動きベクトルと、第1のサブ単位Pの第2の頂点2に隣接する上座標2.1、下座標2.2、左座標2.3、および右座標2.4におけるM組の座標の動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得することであって、M個の動きベクトルペアにおける第1の動きベクトルペアは、第1のサブ単位Pの第1の頂点1に隣接する第1の座標の動きベクトルと、第1のサブ単位Pの第2の頂点2に隣接する第1の座標の動きベクトルとを含み、第1の座標は、上座標であり、または下座標であり、または左座標であり、または右座標である、取得すること、予め設定された非並進運動モデルに基づき、M個の動きベクトルペアに対して計算を別々に実行し、第1のサブ単位PのM個の動きベクトルを取得すること、第1のサブ単位PのM個の動きベクトルに基づき、第1のサブ単位PのM個の第2の予測画素値を取得すること、および、第1のサブ単位Pの第1の予測画素値およびM個の第2の予測画素値に基づき、第1の予め設定されたアルゴリズムを用いることによって第1のサブ単位Pの第1の画素値を取得することである。
【0136】
例えば、Mが4であるとき、第1のサブ単位の第1の頂点に隣接する上座標、下座標、左座標、および右座標という4組の座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する上座標、下座標、左座標、および右座標という4組の座標の動きベクトルとが、予め設定された非並進運動モデルに基づき、導出され得る。
【0137】
第1の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する上座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する上座標の動きベクトルとを含む。第2の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する下座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する下座標の動きベクトルとを含む。第3の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する左座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する左座標の動きベクトルとを含む。第4の動きベクトルペアは、第1のサブ単位の第1の頂点に隣接する右座標の動きベクトルと、第1のサブ単位の第2の頂点に隣接する右座標の動きベクトルとを含む。
【0138】
計算は、予め設定された非並進運動モデルに基づき、第1の動きベクトルペア、第2の動きベクトルペア、第3の動きベクトル
ペア、および第4の動きベクトルペアに対して別々に実行され、第1のサブ単位の4つの動きベクトルを取得する。第1のサブ単位の4つの第2の予測画素値は、第1のサブ単位の4つの動きベクトルに基づき、取得される。第1のサブ単位の第1の予測画素値および4つの第2の予測画素値は、別々に重み付けされる。重み付け後の結果は平均化され、第1のサブ単位の第1の画素値を取得する。
【0139】
方式2で第1のサブ単位の第1の予測画素値を取得するための方法は、方式1で第1のサブ単位の第1の予測画素値を取得するための方法と同じであり、詳細は、ここでは再び説明されない。
【0140】
加えて、方式2において、第1のサブ単位のM個の第2の予測画素値が第1のサブ単位のM個の動きベクトルに基づき取得され、第1のサブ単位の第1の予測画素値およびM個の第2の予測画素値が別々に重み付けされ、重み付け後の結果が平均化され、第1のサブ単位の第1の画素値を取得する方式も、方式1における方式と同じであり、詳細はここでは再び説明されない。
【0141】
第1のサブ単位Pの第1の頂点1に隣接する上座標1.1は、第1のサブ単位の上境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点1に隣接する下座標1.2は、第1のサブ単位Pの下境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点に隣接する左座標1.3は、第1のサブ単位の左境界に隣接するサブ単位の第1の頂点の座標であってよい。第1のサブ単位Pの第1の頂点に隣接する右座標1.4は、第1のサブ単位の右境界に隣接するサブ単位の第1の頂点の座標であってよい。
【0142】
第1のサブ単位Pの第2の頂点2に隣接する上座標2.1は、第1のサブ単位の上境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する下座標2.2は、第1のサブ単位の下境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する左座標2.3は、第1のサブ単位の左境界に隣接するサブ単位の第2の頂点の座標であってよい。第1のサブ単位Pの第2の頂点2に隣接する右座標2.4は、第1のサブ単位の右境界に隣接するサブ単位の第2の頂点の座標であってよい。本発明の本実施形態において、サブ単位の第1の頂点は、サブ単位の左上の頂点、左下の頂点、右上の頂点、および右下の頂点という4つの頂点のうち任意の1つであってよく、サブ単位の第2の頂点は、サブ単位の左上の頂点、左下の頂点、右上の頂点、および右下の頂点という4つの頂点において第1の頂点以外の頂点のうち任意の1つであってよいことに留意すべきである。サブ単位の頂点は、頂点の位置における画素の座標点であってよい。概して、第1のサブ単位Pの左上の頂点は、原点(0,0)として設定され、他の頂点の座標は、原点の位置に基づき、それに対応して設定される。
【0143】
第1のサブ単位の第1の頂点または第2の頂点に隣接する上、下、左、および右座標の動きベクトルは、予め設定された非並進運動モデル(1)、または(2)、または(3)、または(4)に基づき、導出され得ることが理解され得る。
【0144】
決定ユニット102はさらに、フィルタリングユニット104が、取得ユニット103により取得された第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する前に、フィルタリング境界の境界強度値を決定するように構成される。
【0145】
フィルタリングユニット104は具体的に、フィルタリング境界の境界強度値と、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとに基づき、閾値βおよびtを取得し、βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されてよく、ここで、Mは1より大きいかまたはそれに等しい整数である。
【0146】
決定ユニット102は具体的に、少なくとも1つのフレーム内予測単位が、第1のサブ単位または第2のサブ単位が位置する画像ブロックに存在する場合、フィルタリング境界の境界強度値を2に設定するか、または、フレーム内予測単位が、第1のサブ単位または第2のサブ単位が位置する画像ブロックに存在せず、フィルタリング境界が変換単位のサブブロック境界であり、かつ、第1のサブ単位もしくは第2のサブ単位が位置する変換単位が、少なくとも1つの非ゼロ係数を有する場合、フィルタリング境界の境界強度値を1に設定するか、または、フレーム内予測単位が、第1のサブ単位もしくは第2のサブ単位が位置する画像ブロックに存在しない場合、かつ、以下の条件(1)から(3)のうち任意の1つが真の条件であるとき、フィルタリング境界の境界強度値を1に設定し、そうでなければ、フィルタリング境界の境界強度値を0に設定するように構成される。(1)第1のサブ単位および第2のサブ単位が位置する予測単位の参照画像または動きベクトルの数量は異なり、第1のサブ単位が位置する予測単位は、1つの動きベクトルを有し、第2のサブ単位が位置する予測単位は、1つの動きベクトルを有し、第1のサブ単位の動きベクトルおよび第2のサブ単位の動きベクトルの水平成分または垂直成分間の動きベクトル差は、動きベクトル差閾値Tより大きいかまたはそれに等しく、(2)第1のサブ単位が位置する予測単位は、2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は異なり、第2のサブ単位が位置する予測単位は、2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は異なり、同じ予測画像を示す2つの動きベクトルの水平成分または垂直成分間の動きベクトル差は、動きベクトル差閾値Tより大きいかまたはそれに等しく、および、(3)第1のサブ単位が位置する予測単位は、2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は同じであり、第2のサブ単位が位置する予測単位は、2つの動きベクトルを有し、当該2つの動きベクトルにより示された参照画像は同じであり、かつ、以下の2つの条件aおよびbが真の条件である。(a)前方参照候補リストlist0を示す2つの動きベクトルの水平成分または垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す2つの動きベクトルの水平成分または垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しく、および、(b)前方参照候補リストlist0を示す、第1のサブ単位が位置する予測単位の動きベクトル、および、後方参照候補リストlist1を示す、第2のサブ単位が位置する予測単位の動きベクトルの水平成分または垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す、第1のサブ単位が位置する予測単位の動きベクトル、および前方参照候補リストlist0を示す、第2のサブ単位が位置する予測単位の動きベクトルの水平成分または垂直成分間の差は、動きベクトル差閾値Tより大きいかまたはそれに等しい。
【0147】
動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度であってよく、または、第1のサブ単位および第2のサブ単位が位置する予測単位の動きモデルが異なる場合、動きベクトル差閾値Tは、1/4の輝度サンプリング精度であり、もしくは、第1の単位および第2のサブ単位が位置する予測単位の動きモデルが同じである場合、動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度である。
【0148】
初期閾値β
0およびt
0は、必要に応じて設定され、このことは、本発明の本実施形態において限定されない。
【0149】
さらに、フィルタリングユニット104が具体的に、βと、tと、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差とに基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されることは、まず、初期閾値β
0およびt
0と、第1のサブ単位の量子化パラメータと、第2のサブ単位の量子化パラメータとを、式
【数23】
に代入し、qP
Lを取得し、ここで、Qp
Qは、第1のサブ単位の量子化パラメータであり、Qp
Pは、第2のサブ単位の量子化パラメータであり、そして、式
【数24】
、および式
【数25】
に基づき、2つのQ値を取得し、予め設定された表を照会し、式
【数26】
に基づき、取得されたQ値に対応するβ'を取得し、式
【数27】
に基づき、取得されたQ値に対応するt'
Cを取得すること、表を照会することによって取得されたβ'を式
【数28】
に代入し、閾値βを取得することであって、BitDepthは、画素ビット幅を示す、取得すること、表を照会することによって取得されたt'
Cを式
【数29】
に代入し、閾値tを取得すること、および、フィルタリング境界に隣接する、第1のサブ単位および第2のサブ単位におけるM個の画素の画素値間の画素差を、βおよびtと比較し、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する必要があるかを決定することを含んでよい。
【0150】
図6において示されているフィルタリング装置における分割ユニット、取得ユニット、決定ユニット、およびフィルタリングユニットは、
図1において示されているフィルタリング装置に単独で配置されるプロセッサであってよく、または、実装のためにフィルタリング装置におけるプロセッサに統合されてよいことに留意すべきである。加えて、分割ユニット、取得ユニット、決定ユニット、およびフィルタリングユニットの実行処理は、
図1において示されているフィルタリング装置におけるメモリにおいてプログラムコードの形式で記憶されてよく、フィルタリング装置のプロセッサは、プログラムコードを呼び出し、
分割ユニット、取得ユニット、決定ユニット、およびフィルタリングユニットの実行処理を実装する。ここで説明されているプロセッサは、中央処理装置(Central Processing Unit、CPU)、または、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、または、本発明の本実施形態を実装するように構成される1つまたは複数の集積回路であってよい。
【0151】
以上から、本発明の本実施形態において提供されているフィルタリング装置は、各予測単位を少なくとも2つのサブ単位に分割すること、分割ユニットにより分割によって取得された少なくとも2つのサブ単位のそれぞれをトラバースし、予め設定された規則に基づき、少なくとも2つのサブ単位の少なくとも1つのフィルタリング境界を決定すること、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値を取得することであって、第1のサブ単位および第2のサブ単位は、フィルタリング境界に隣接する、取得すること、および、第1のサブ単位の第1の画素値および第2のサブ単位の第1の画素値に基づき、フィルタリング境界に隣接する画素に対してフィルタリング処理を実行することを行うことが分かる。このように、予測単位のサブブロック境界または変換単位のサブブロック境界の2つの側に位置する、予測単位における単位の画素がフィルタリングされるのみならず、予測単位における非並進運動予測単位の境界に対してもフィルタリング処理を実行することができ、これにより、予測単位におけるブロッキングアーティファクトは除去され、画像の予測精度および主観的品質は向上し、予測単位の上境界および左境界のみに対してフィルタリング動作が実行され、予測単位の内部動き補償ブロックの境界に対してフィルタリング処理が実行されないため、ブロッキングアーティファクトを
除去できないといった問題を回避する。
【0152】
簡便かつ簡潔な説明のために、上述のユニットおよびシステムの具体的な作業処理について、上述の方法の実施形態における対応する処理を参照することは、当業者により明確に理解され得て、詳細は、ここでは再び説明されない。
【0153】
本出願において提供されているいくつかの実施形態において、開示されているシステム、デバイス、および方法は、他の方式で実装され得ることが理解されるべきである。例えば、上で説明されているデバイスの実施形態は単に例である。例えば、ユニットの区分は単に論理的な機能区分であり、実際の実装方式において、他の区分であり得る。例えば、複数のユニットまたは構成要素は、組み合わせられてよく、もしくは別のシステムに統合されてよく、または、いくつかの特徴が無視されてよく、もしくは実行されなくてよい。
【0154】
別個の部分として説明されているユニットは、物理的に別個であってもよく、またはそうでなくてもよく、ユニットとして表示されている部分は、物理ユニットであってもよく、またはそうでなくてもよく、一箇所に位置してよく、または複数のネットワークユニット上に分散されてよい。ユニットの一部または全ては、実施形態の解決手段の目的を達成するために実際の要求に応じて選択されてよい。
【0155】
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に単独で存在してよく、または、2つまたはそれより多いユニットは、1つのユニットに統合されてよい。統合されたユニットは、ハードウェアの形式で実装されてよく、またはソフトウェア機能ユニットに加え、ハードウェアの形式で実装されてよい。
【0156】
上述の統合されたユニットがソフトウェア機能ユニットの形式で実装されたとき、統合されたユニットは、コンピュータ可読記憶媒体において記憶されてよい。ソフトウェア機能ユニットは、記憶媒体において記憶され、(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)コンピュータデバイスに、本発明の実施形態において説明されている方法の段階のいくつかを実行するように命令するためのいくつかの命令を含む。上述の記憶媒体は、USBフラッシュドライブ、取り外し可能なハードディスク、リードオンリメモリ(Read−Only Memory、略してROM)、ランダムアクセスメモリ(Random Access Memory、略してRAM)、磁気ディスク、または光ディスクなどの、プログラムコードを記憶できる任意の媒体を含む。
【0157】
実施形態における方法の段階の全部または一部は、(プロセッサなどの)関連ハードウェアに命令するプログラムによって実装され得ることが当業者により理解され得る。プログラムは、コンピュータ可読記憶媒体において記憶され得る。記憶媒体は、リードオンリメモリ、ランダムアクセスメモリ、磁気ディスク、または光ディスクなどを含んでよい。
【0158】
最後に、上述の実施形態は、本発明の技術的解決手段を説明することを意図するものに過ぎず、本発明を限定するものではないことに留意すべきである。本発明は上述の実施形態を参照して詳細に説明されているが、当業者は、彼らが本発明の実施形態の技術的解決手段の範囲から逸脱することなく、上述の実施形態において説明されている技術的解決手段に対してさらに変更してよく、またはこれらのいくつかの技術的な特徴に対して同等の置き換えを行ってよいことを理解すべきである。
本願によれば、以下の各項目もまた開示される。
[項目1]
画像ブロックに対してフィルタリング処理を実行するための方法であって、上記画像ブロックは、非並進運動予測単位であり、上記方法は、
上記非並進運動予測単位を2つまたはそれより多いサブ単位に分割する段階であって、各サブ単位は、複数の画素を含む、段階と、
予め設定された規則に基づき、上記2つまたはそれより多いサブ単位の中で少なくとも1つのフィルタリング境界を決定する段階と、
上記少なくとも1つのフィルタリング境界のうち任意の1つに対して、第1のサブ単位の画素値および第2のサブ単位の画素値を取得する段階であって、上記第1のサブ単位および上記第2のサブ単位は、上記フィルタリング境界に隣接し、上記第1のサブ単位および上記第2のサブ単位は、上記2つまたはそれより多いサブ単位に含まれる、段階と、
上記第1のサブ単位の上記画素値および上記第2のサブ単位の上記画素値に基づき、上記フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する段階と
を備える、
方法。
[項目2]
予め設定された規則に基づき、上記2つまたはそれより多いサブ単位の中で少なくとも1つのフィルタリング境界を決定する上記段階は、
サブ単位が上記非並進運動予測単位に含まれる場合、上記サブ単位の各境界がフィルタリング境界であると決定する段階を含む、
項目1に記載の方法。
[項目3]
第1のサブ単位の画素値を取得する上記段階は、
上記第1のサブ単位の動きベクトルに基づき、上記第1のサブ単位の第1の予測画素値を取得する段階と、
上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する段階であって、Mは任意の整数であり、1≦M≦4である、段階と、
上記M個のサブ単位の上記動きベクトルに基づき、上記第1のサブ単位のM個の第2の予測画素値を取得する段階と、
上記第1のサブ単位の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位の上記第1の画素値を取得する段階と
を含む、
項目1または2に記載の方法。
[項目4]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記上サブ単位、上記下サブ単位、上記左サブ単位、および上記右サブ単位のそれぞれの上記動きベクトルを導出する段階
を含む、
項目3に記載の方法。
[項目5]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記左サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出する段階と、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用可能な場合、上記上サブ単位の上記動きベクトルを取得する段階、または、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記上サブ単位の上記動きベクトルを導出する段階と
を含む、
項目3に記載の方法。
[項目6]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記上サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出する段階と、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用可能な場合、上記左サブ単位の上記動きベクトルを取得する段階、または、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記左サブ単位の上記動きベクトルを導出する段階と
を含む、
項目3に記載の方法。
[項目7]
上記フィルタリング境界に隣接する第1のサブ単位の画素値を取得する上記段階は、
上記第1のサブ単位(P)の第1の予測画素値を取得する段階と、
非並進運動モデルに基づき、上記第1のサブ単位(P)の第1の頂点(1)に隣接する上座標(1.1)、下座標(1.2)、左座標(1.3)、および右座標(1.4)におけるM組の座標の動きベクトルと、上記第1のサブ単位(P)の第2の頂点(2)に隣接する上座標(2.1)、下座標(2.2)、左座標(2.3)、および右座標(2.4)におけるM組の座標の動きベクトルとを導出する段階であって、上記第1の頂点(1)および上記第2の頂点(2)は上記第1のサブ単位(P)の任意の2つの異なる頂点であり、Mは任意の整数であり、1≦M≦4である、段階と、
上記第1のサブ単位(P)の上記第1の頂点(1)に隣接する上記上座標(1.1)、上記下座標(1.2)、上記左座標(1.3)、および上記右座標(1.4)における上記M組の座標の上記動きベクトルと、上記第1のサブ単位(P)の上記第2の頂点(2)に隣接する上記上座標(2.1)、上記下座標(2.2)、上記左座標(2.3)、および上記右座標(2.4)における上記M組の座標の上記動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得する段階であって、上記M個の動きベクトルペアにおける第1の動きベクトルペアは、上記第1のサブ単位(P)の上記第1の頂点(1)に隣接する第1の座標の動きベクトルと、上記第1のサブ単位(P)の上記第2の頂点(2)に隣接する第1の座標の動きベクトルとを含み、上記第1の座標は、上座標であり、または下座標であり、または左座標であり、または右座標である、段階と、
上記非並進運動モデルに基づき、上記M個の動きベクトルペアに対して計算を実行し、上記第1のサブ単位(P)のM個の動きベクトルを取得する段階と、
上記第1のサブ単位(P)の上記M個の動きベクトルに基づき、上記第1のサブ単位(P)のM個の第2の予測画素値を取得する段階と、
上記第1のサブ単位(P)の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位(P)の上記画素値を取得する段階と
を含む、
項目1または2に記載の方法。
[項目8]
上記第1のサブ単位の上記第1の画素値および上記第2のサブ単位の上記第1の画素値に基づき、上記フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する上記段階の前に、上記方法はさらに、
上記フィルタリング境界の境界強度値を決定する段階を備え、
上記第1のサブ単位の上記画素値および上記第2のサブ単位の上記画素値に基づき、上記フィルタリング境界に隣接する画素に対してフィルタリング処理を実行する上記段階は、
上記フィルタリング境界の上記境界強度値と、初期閾値β0およびt0と、上記フィルタリング境界に隣接する、上記第1のサブ単位および上記第2のサブ単位における複数の画素の画素値間の画素差とに基づき、第2の予め設定されたアルゴリズムを用いることによって、上記フィルタリング境界に隣接する上記画素に対してフィルタリング処理を実行する段階
を含む、
項目1から7のいずれか一項に記載の方法。
[項目9]
上記フィルタリング境界の境界強度値を決定する上記段階は、
以下の条件(1)から(3)のうち任意の1つが真の条件であるとき、上記フィルタリング境界の上記境界強度値を1に設定し、そうでなければ、上記フィルタリング境界の上記境界強度値を0に設定する段階であって、
(1)上記第1のサブ単位が1つの動きベクトルを有し、上記第2のサブ単位が1つの動きベクトルを有し、上記第1のサブ単位の上記動きベクトルおよび上記第2のサブ単位の上記動きベクトルの水平成分または垂直成分間の動きベクトル差が動きベクトル差閾値Tより大きいかまたはそれに等しく、
(2)上記第1のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が異なり、上記第2のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が異なり、2つの動きベクトルの水平成分または垂直成分間の動きベクトル差が動きベクトル差閾値Tより大きいかまたはそれに等しく、および、
(3)上記第1のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が同じであり、上記第2のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が同じであり、かつ、以下の2つの条件aおよびbが真の条件であり、
(a)前方参照候補リストlist0を示す2つの動きベクトルの水平成分または垂直成分間の差が動きベクトル差閾値Tより大きいかまたはそれに等しいか、または後方参照候補リストlist1を示す2つの動きベクトルの水平成分または垂直成分間の差が動きベクトル差閾値Tより大きいかまたはそれに等しく、および、
(b)前方参照候補リストlist0を示す、上記第1のサブ単位の動きベクトルと、後方参照候補リストlist1を示す、上記第2のサブ単位の動きベクトルとの水平成分または垂直成分間の差が動きベクトル差閾値Tより大きいかまたはそれに等しいか、または後方参照候補リストlist1を示す、上記第1のサブ単位の動きベクトルと、前方参照候補リストlist0を示す、上記第2のサブ単位の動きベクトルとの水平成分または垂直成分間の差が動きベクトル差閾値Tより大きいかまたはそれに等しい、段階
を含む、
項目8に記載の方法。
[項目10]
上記動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度であり、または、
上記第1のサブ単位および上記第2のサブ単位の動きモデルが異なる場合、上記動きベクトル差閾値Tは、1/4の輝度サンプリング精度であり、もしくは、上記第1のサブ単位および上記第2のサブ単位の動きモデルが同じである場合、上記動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度である、
項目9に記載の方法。
[項目11]
画像ブロックに対してフィルタリング処理を実行するための装置であって、上記画像ブロックは、非並進運動予測単位であり、上記装置は、
上記非並進運動予測単位を2つまたはそれより多いサブ単位に分割するように構成される分割ユニットであって、各サブ単位は、複数の画素を含む、分割ユニットと、
予め設定された規則に基づき、上記2つまたはそれより多いサブ単位の中で少なくとも1つのフィルタリング境界を決定するように構成される決定ユニットと、
上記少なくとも1つのフィルタリング境界のうち任意の1つに対して、第1のサブ単位の画素値および第2のサブ単位の画素値を取得するように構成される取得ユニットであって、上記第1のサブ単位および上記第2のサブ単位は、上記フィルタリング境界に隣接し、上記第1のサブ単位および上記第2のサブ単位は、上記2つまたはそれより多いサブ単位に含まれる、取得ユニットと、
上記第1のサブ単位の上記画素値および上記第2のサブ単位の上記画素値に基づき、上記フィルタリング境界に隣接する画素に対してフィルタリング処理を実行するように構成されるフィルタリングユニットと
を備える、
装置。
[項目12]
上記決定ユニットは、
上記2つまたはそれより多いサブ単位のうちのサブ単位の各境界がフィルタリング境界であると決定するように構成される、
項目11に記載の装置。
[項目13]
上記取得ユニットは、
上記第1のサブ単位の動きベクトルに基づき、上記第1のサブ単位の第1の予測画素値を取得すること、
上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得することであって、Mは、任意の整数であり、1≦M≦4である、取得すること、
上記M個のサブ単位の上記動きベクトルに基づき、上記第1のサブ単位のM個の第2の予測画素値を取得すること、および、
上記第1のサブ単位の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位の上記第1の画素値を取得すること
を行うように構成される、
項目11または12に記載の装置。
[項目14]
上記取得ユニットは、
上記第1のサブ単位が上記非並進運動予測単位の下境界もしくは右境界に隣接するサブ単位である場合、非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記上サブ単位、上記下サブ単位、上記左サブ単位、および上記右サブ単位のそれぞれの動きベクトルを導出するように構成される、
項目13に記載の装置。
[項目15]
M=4であり、上記取得ユニットは、
上記第1のサブ単位が上記非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記左サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用可能な場合、上記上サブ単位の上記動きベクトルを取得するか、または、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記上サブ単位の上記動きベクトルを導出すること
を行うように構成される、
項目13に記載の装置。
[項目16]
M=4であり、上記取得ユニットは、
上記第1のサブ単位が上記非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記上サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用可能な場合、上記左サブ単位の上記動きベクトルを取得すること、または、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記左サブ単位の上記動きベクトルを導出すること
を行うように構成される、
項目13に記載の装置。
[項目17]
上記取得ユニットは、
上記第1のサブ単位(P)の第1の予測画素値を取得すること、
非並進運動モデルに基づき、上記第1のサブ単位(P)の第1の頂点(1)に隣接する上座標(1.1)、下座標(1.2)、左座標(1.3)、および右座標(1.4)におけるM組の座標の動きベクトルと、上記第1のサブ単位(P)の第2の頂点(2)に隣接する上座標(2.1)、下座標(2.2)、左座標(2.3)、および右座標(2.4)におけるM組の座標の動きベクトルとを導出することであって、上記第1の頂点(1)および上記第2の頂点(2)は、上記第1のサブ単位(P)の任意の2つの異なる頂点であり、Mは、任意の整数であり、1≦M≦4である、導出すること、
上記第1のサブ単位(P)の上記第1の頂点(1)に隣接する上記上座標(1.1)、上記下座標(1.2)、上記左座標(1.3)、および上記右座標(1.4)における上記M組の座標の上記動きベクトルと、上記第1のサブ単位(P)の上記第2の頂点(2)に隣接する上記上座標(2.1)、上記下座標(2.2)、上記左座標(2.3)、および上記右座標(2.4)における上記M組の座標の上記動きベクトルとをグループ化することによって、M個の動きベクトルペアを取得することであって、上記M個の動きベクトルペアにおける第1の動きベクトルペアは、上記第1のサブ単位(P)の上記第1の頂点(1)に隣接する第1の座標の動きベクトルと、上記第1のサブ単位(P)の上記第2の頂点(2)に隣接する第1の座標の動きベクトルとを含み、上記第1の座標は、上座標であり、または下座標であり、または左座標であり、または右座標である、取得すること、
上記非並進運動モデルに基づき、上記M個の動きベクトルペアに対して計算を実行し、上記第1のサブ単位(P)のM個の動きベクトルを取得すること、
上記第1のサブ単位(P)の上記M個の動きベクトルに基づき、上記第1のサブ単位(P)のM個の第2の予測画素値を取得すること、および、
上記第1のサブ単位(P)の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位(P)の上記画素値を取得すること
を行うように構成される、
項目11または12に記載の装置。
[項目18]
上記決定ユニットはさらに、
上記フィルタリングユニットが、上記第1のサブ単位の上記第1の画素値および上記第2のサブ単位の上記第1の画素値に基づき、上記フィルタリング境界に隣接する上記画素に対してフィルタリング処理を実行する前に、上記フィルタリング境界の境界強度値を決定するように構成され、
上記フィルタリングユニットは、上記決定ユニットにより決定された上記フィルタリング境界の上記境界強度値と、初期閾値β0およびt0と、上記フィルタリング境界に隣接する、上記第1のサブ単位および上記第2のサブ単位における複数の画素の画素値間の画素差とに基づき、第2の予め設定されたアルゴリズムを用いることによって、上記フィルタリング境界に隣接する上記画素に対してフィルタリング処理を実行するように構成される、
項目11から17のいずれか一項に記載の装置。
[項目19]
上記決定ユニットは、
以下の条件(1)から(3)のうち任意の1つが真の条件であるとき、上記フィルタリング境界の上記境界強度値を1に設定し、そうでなければ、上記フィルタリング境界の上記境界強度値を0に設定するように構成され、
(1)上記第1のサブ単位が1つの動きベクトルを有し、上記第2のサブ単位が1つの動きベクトルを有し、上記第1のサブ単位の上記動きベクトルおよび上記第2のサブ単位の上記動きベクトルの水平成分または垂直成分間の動きベクトル差が動きベクトル差閾値Tより大きいかまたはそれに等しく、
(2)上記第1のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が異なり、上記第2のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が異なり、2つの動きベクトルの水平成分または垂直成分間の動きベクトル差が動きベクトル差閾値Tより大きいかまたはそれに等しく、および、
(3)上記第1のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が同じであり、上記第2のサブ単位が2つの動きベクトルを有し、上記2つの動きベクトルにより示された参照画像が同じであり、かつ、以下の2つの条件aおよびbが真の条件であり、
(a)前方参照候補リストlist0を示す2つの動きベクトルの水平成分もしくは垂直成分間の差が、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す2つの動きベクトルの水平成分もしくは垂直成分間の差が、動きベクトル差閾値Tより大きいかまたはそれに等しく、および、
(b)前方参照候補リストlist0を示す、上記第1のサブ単位の動きベクトル、および後方参照候補リストlist1を示す、上記第2のサブ単位の動きベクトルの水平成分もしくは垂直成分間の差が、動きベクトル差閾値Tより大きいかまたはそれに等しいか、または、後方参照候補リストlist1を示す、上記第1のサブ単位の動きベクトル、および前方参照候補リストlist0を示す、上記第2のサブ単位の動きベクトルの水平成分もしくは垂直成分間の差が、動きベクトル差閾値Tより大きいかまたはそれに等しい、
項目18に記載の装置。
[項目20]
上記動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度であり、または、
上記第1のサブ単位および上記第2のサブ単位の動きモデルが異なる場合、上記動きベクトル差閾値Tは、1/4の輝度サンプリング精度であり、もしくは、上記第1のサブ単位および上記第2のサブ単位の動きモデルが同じである場合、上記動きベクトル差閾値Tは、4個の1/4の輝度サンプリング精度である、
項目19に記載の装置。
[項目21]
画像ブロックのインター予測のための方法であって、上記画像ブロックは、非並進運動予測単位であり、上記非並進運動予測単位は、2つまたはそれより多いサブ単位に分割され、上記方法は、
第1のサブ単位の動きベクトルに基づき、上記第1のサブ単位の第1の予測画素値を取得する段階であって、上記第1のサブ単位は、上記2つまたはそれより多いサブ単位のうち任意の1つである、段階と、
上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する段階であって、Mは、任意の整数であり、1≦M≦4である、段階と、
上記M個のサブ単位の上記動きベクトルに基づき、上記第1のサブ単位のM個の第2の予測画素値を取得する段階と、
上記第1のサブ単位の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位の上記第1の画素値を取得する段階と
を備える、
方法。
[項目22]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の下境界または右境界に隣接するサブ単位である場合、非並進運動モデルに基づき、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位のそれぞれの上記動きベクトルを導出する段階を含む、
項目21に記載の方法。
[項目23]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記左サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出する段階と、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用可能な場合、上記上サブ単位の上記動きベクトルを取得する段階、または、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記上サブ単位の上記動きベクトルを導出する段階とを含む、
項目21に記載の方法。
[項目24]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得する上記段階は、
上記第1のサブ単位が上記非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記上サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出する段階と、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用可能な場合、上記左サブ単位の上記動きベクトルを取得する段階、または、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記左サブ単位の上記動きベクトルを導出する段階とを含む、
項目21に記載の方法。
[項目25]
画像ブロックのインター予測のための装置であって、上記画像ブロックは、非並進運動予測単位であり、上記非並進運動予測単位は、2つまたはそれより多いサブ単位に分割され、上記装置は、
第1のサブ単位の動きベクトルに基づき、上記第1のサブ単位の第1の予測画素値を取得することであって、上記第1のサブ単位は、上記2つまたはそれより多いサブ単位のうち任意の1つである、取得すること、
上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得することであって、Mは任意の整数であり、1≦M≦4である、取得すること、
上記M個のサブ単位の上記動きベクトルに基づき、上記第1のサブ単位のM個の第2の予測画素値を取得すること、および、
上記第1のサブ単位の上記第1の予測画素値および上記M個の第2の予測画素値に基づき、上記第1のサブ単位の上記第1の画素値を取得すること
を行うように構成されるプロセッサ
を備える、
装置。
[項目26]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得することに対して、上記プロセッサは、
上記第1のサブ単位が上記非並進運動予測単位の下境界または右境界に隣接するサブ単位である場合、非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記上サブ単位、上記下サブ単位、上記左サブ単位、および上記右サブ単位のそれぞれの上記動きベクトルを導出するように構成される、
項目25に記載の装置。
[項目27]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得することに対して、上記プロセッサは、
上記第1のサブ単位が上記非並進運動予測単位の上境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記左サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用可能な場合、上記上サブ単位の上記動きベクトルを取得すること、または、
上記第1のサブ単位に隣接する上記上サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記上サブ単位の上記動きベクトルを導出すること
を行うように構成される、
項目25に記載の装置。
[項目28]
M=4であり、上記第1のサブ単位に隣接する上サブ単位、下サブ単位、左サブ単位、および右サブ単位におけるM個のサブ単位の動きベクトルを取得することに対して、上記プロセッサは、
上記第1のサブ単位が上記非並進運動予測単位の左境界に隣接するサブ単位である場合、予め設定された非並進運動モデルに基づき、上記第1のサブ単位に隣接する上記下サブ単位、上記上サブ単位、および上記右サブ単位という3つのサブ単位の動きベクトルを導出すること、および、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用可能な場合、上記左サブ単位の上記動きベクトルを取得すること、または、
上記第1のサブ単位に隣接する上記左サブ単位の動きベクトルが利用できない場合、上記非並進運動モデルに基づき、上記左サブ単位の上記動きベクトルを導出すること
を行うように構成される、
項目25に記載の装置。
[項目29]
プロセッサ上で実行されたとき、上記プロセッサに項目1から10および21から24のいずれか一項に記載の方法を実行させる命令を記憶するコンピュータ可読媒体。