上記の課題を考慮して、本出願の複数の実施形態は、フレーム間予測を使用して(彩度サンプルを有する複数の変換ブロック等の)複数の変換/コーディングブロックの間の境界にわたるブロック化アーティファクトを軽減するか又は除去することさえ可能である非ブロック化フィルタ装置、エンコーダ、デコーダ、及び対応する方法を提供して、コーディング効率を改善することを目的とする。
特に、フレーム間予測との関連で、サブブロック変換(SBT)コーディングツールを導入し、そして、そのSBTコーディングツールは、輝度サンプル及び彩度サンプルの双方に適用され、本出願の複数の実施形態は、また、サブブロック変換(SBT)コーディングツールが引き起こすであろうブロッキングアーティファクトを軽減し又は除去することさえ可能である他の非ブロック化フィルタ装置、他のエンコーダ、他のデコーダ、及び対応する方法を提供して、コーディング効率を改善することを目的とする。
本発明の複数の実施形態は、独立請求項の特徴及び従属請求項の特徴による複数の実施形態のさらなる有利な実装によって定義される。
複数の特定の実施形態は、従属請求項における他の実施形態とともに、添付の独立請求項に概説されている。
上記の目的及び他の目的は、独立請求項の主題事項によって達成される。さらなる実装形態は、従属請求項、明細書、及び図面から明らかである。
本開示の第1の態様によれば、画像符号化及び/又は画像復号化において、コーディングブロックの中の変換ブロック境界(内部エッジ)を非ブロック化するための非ブロック化方法が提供され、(前記コーディングブロックは、フレーム間予測プロセスにおいて/フレーム間予測プロセスの際に、複数の変換ブロックに分割され(分配され)、特に、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、複数の変換ユニットに分割されるといったように)前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、前記コーディングブロックは、複数の変換ブロックを含み、(例えば、p0及びq0を含む変換ブロックは、鉛直方向において又は水平方向において隣接するといったように)それらの複数の変換ブロックは、第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該方法は、
(フレーム間予測を使用する前記第1の変換ブロック等の)前記第1の変換ブロックと(フレーム間予測を使用する前記第2の変換ブロック等の)前記第2の変換ブロックとの間の前記境界が、変換ブロック境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数(1つ又は複数の非ゼロ残差変換係数)を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度(BS)パラメータの値を決定する(又は、設定する)ステップと、
少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界に対して非ブロック化フィルタリングプロセスを実行するステップと、を含む。
変換ブロック境界の両側にある第1の変換ブロック及び第2の変換ブロックは、フレーム間予測を使用するということを理解することが可能である。ある1つの例においては、コーディングブロックのサンプルは、彩度サンプルである。他の例においては、コーディングブロックは、輝度サンプル及び彩度サンプルを有する。それに応じて、ある1つの例においては、第1の変換ブロック及び第2の変換ブロックのサンプルは、彩度サンプルである。他の例においては、第1の変換ブロック及び第2の変換ブロックの双方は、輝度サンプル及び彩度サンプルを有する。具体的には、従来技術によれば、非ブロック化フィルタリングプロセスは、映像のコーディングサブブロックエッジ及び変換ブロックエッジに適用されるが、エッジの両側がフレーム間予測を使用する彩度成分の中のエッジを除外する。しかしながら、本開示の第1の態様によれば、エッジの両側がフレーム間予測を使用する彩度成分の中のエッジを非ブロック化することが可能とされる。
第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度(BS)パラメータに加えて、非ブロック化フィルタリングプロセスのために他のパラメータを考慮してもよいということを理解することが可能である。すなわち、特定のフィルタリング決定結果に応じて、いかなるサンプルも修正しなくてもよいいくつかの場合、或いは、境界に垂直であり且つ隣接している各々の行又は各々の列において1つのサンプルのみを修正してもよい他の場合において、非ブロック化フィルタリングを実行してもよい。
予測ユニット(PU)、コーディングユニット(CU)等に適用されてもよい本開示においては、"ブロック"、"コーディングブロック"、又は"画像ブロック"の語を使用しているということに留意すべきである。VVC全般においては、変換ユニット及びコーディングユニットは、サブブロック変換(SBT)を使用する少数のシナリオの場合を除いて、ほぼ整列されている。本開示においては、"ブロック/画像ブロック/コーディングブロック"の語を相互に交換してもよいということを理解することが可能である。本開示においては、"サンプル/ピクセル"の語を相互に交換してもよい。
従来技術においては、彩度成分の中でフレーム間予測を使用する変換ブロック/コーディングブロックの間のそれらの境界をフィルタリングすることを考慮してはいなかった。一方で、本発明によれば、フィルタリングプロセスは、フレーム間予測を使用するとともに彩度サンプルを有する複数の変換ブロック/コーディングブロックの間の境界のブロックアーティファクトを減少させるように改良される。
第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、第1の変換ブロックは、残差データを有し、且つ、第2の変換ブロックは、残差データを有さず、或いは、第1の変換ブロックは、残差データを有さず、且つ、第2の変換ブロックは、残差データを有する。
第1の態様それ自体のいずれかの先行する実装形態にしたがった方法のある1つの可能な実装形態において、変換ブロックは、サブブロック変換SBT変換ブロックである。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、変換ブロックの数は、2又は3又は他の値である。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、第1の変換ブロックと第2の変換ブロックとの間の境界は、サブブロック変換SBT境界である。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、変換ブロック境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定する前記ステップは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップを含む。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記変換ブロックは、前記第2の変換ブロックに隣接する第3の変換ブロックをさらに含み、
当該方法は、
前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップ、又は、
前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックの双方がゼロの変換係数(すべてゼロの変換係数)を有するときに、第2の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップ、
をさらに含む。
いずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の値は1である。
第1の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、前記第2の値は0である。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界が、n×nサンプルグリッドと整列されている(と重複している)場合にのみ、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、非ブロック化され(フィルタリングされ)、nは、整数である。
結果として、全体的なコーディングプロセスの計算負荷をさらに減少させることが可能である。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界が、n×n個のサンプルグリッドと整列されていない(重複していない)場合であっても、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、非ブロック化され(フィルタリングされ)、nは、整数である。
n×nのグリッドと整列していないターゲット境界を非ブロック化することが可能とされる。
第1の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、nは4又は8である。従来技術は、8×8グリッドと重複する境界のみを考慮する。本発明の場合は、非対称区分を適用するときにSBT内部境界が8×8グリッドと整列されていない場合であっても、その内部境界は、フィルタリング候補と考えられるであろう。また、SBT内部境界をフィルタリングすることによって、SBTが引き起こすブロックアーティファクトを減少させる。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、第1の変換ブロック及び第2の変換ブロックのサンプルは、輝度サンプルであるか、又は、第1の変換ブロック及び第2の変換ブロックは、輝度サンプル及び彩度サンプルを有する。SBTが引き起こす変換エッジ等の彩度成分においてフレーム間予測を使用する両側を有する変換エッジは、また、ブロックアーティファクトを生じる場合がある。特に、(例えば、一般的なテスト条件で使用されるキャンプファイアシーケンスのように)ビデオシーケンスの主要な情報が彩度成分によって表されるときに、そのようなブロックアーティファクトは深刻である場合がある。したがって、本発明は、彩度成分においてフレーム間予測を使用するその両側を有する変換エッジのための非ブロック化フィルタリングプロセスを導入することを提案する。
第1の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての8×8サンプルグリッドである。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記コーディングブロックは、水平方向又は垂直方向に分割される。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記コーディングブロックが水平方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、水平方向の変換ブロック境界(水平方向のサブブロック変換, SBT境界)であるか、又は、前記コーディングブロックが鉛直方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、鉛直方向の変換ブロック境界(鉛直方向のサブブロック変換, SBT境界)である。本発明は、鉛直方向の変換ブロック境界及び水平方向の変換ブロック境界の双方に対して機能する。
第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記現在のコーディングブロックは、サブブロック変換SBTツールを使用してコーディングされ、又は、前記変換ブロック境界は、サブブロック変換SBTツールによって実行される。
本開示の第2の態様によれば、画像符号化及び/又は画像復号化において、コーディングブロック(コーディングユニット)の中のブロック境界を非ブロック化するための非ブロック化方法が提供され、(前記コーディングブロックは、サブブロック変換SBTモードでコーディングされるといったように)前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、(前記コーディングブロックは、フレーム間予測プロセスにおいて又はフレーム間予測プロセスの際に、複数の変換ブロックに分割され(分配され)、例えば、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、複数の変換ユニットに分割されるといったように)前記コーディングブロック(フレーム間予測されるコーディングブロック)は、複数の変換ブロックを含み、(例えば、変換ブロックは、鉛直方向又は水平方向において隣接するp0及びq0を含むといったように)それらの複数の変換ブロックは、第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該方法は、
前記第1の変換ブロックと前記第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップと、
少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行するステップと、を含む。
変換ブロック境界の両側にある第1の変換ブロック及び第2の変換ブロックは、フレーム間予測を使用するということを理解することが可能である。ある1つの例においては、コーディングブロックのサンプルは、彩度サンプルである。ある1つの例においては、コーディングブロックのサンプルは、輝度サンプルである。他の例においては、コーディングブロックは、輝度サンプル及び彩度サンプルを有する。それに応じて、ある1つの例においては、第1の変換ブロック及び第2の変換ブロックのサンプルは、彩度サンプルであり、他の例においては、第1の変換ブロック及び第2の変換ブロックのサンプルは、輝度サンプルである。他の例においては、第1の変換ブロック及び第2の変換ブロックは、輝度サンプル及び彩度サンプルを有する。具体的には、従来技術によれば、非ブロック化フィルタリングプロセスは、映像のコーディングサブブロックエッジ及び変換ブロックエッジに適用されるが、エッジの両側がフレーム間予測を使用する彩度成分の中のエッジを除外し、したがって、また、(輝度成分及び彩度成分の双方にSBTツールを適用することが可能であるため)内部のSBT境界を除外する場合がある。一方で、本開示の第2の態様によれば、サブブロック変換(SBT)コーディングツールが引き起こす複数の内部SBT境界を非ブロック化することが可能とされ、特に、サブブロック変換(SBT)コーディングツールが引き起こす彩度成分の中の内部SBT境界を非ブロック化することが可能とされる。
第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度(BS)パラメータに加えて、非ブロック化フィルタリングプロセスのために他のパラメータを考慮してもよいということを理解することが可能である。すなわち、特定のフィルタリング決定結果に応じて、いかなるサンプルも修正しなくてもよいいくつかの場合、或いは、境界に垂直であり且つ隣接している各々の行又は各々の列において1つのサンプルのみを修正してもよい他の場合において、非ブロック化フィルタリングを実行してもよい。
フレーム間予測ブロック(すなわち、フレーム間予測モードでコーディングされる現在のコーディングブロックの略称であるフレーム間コーディングブロック)の内部変換ブロックへの区分化を実行し、(ある1つの変換ブロックは、残差データを有し、他のブロックは残差データを有していないため)その変換は、複数の変換ブロックのうちの1つについてのみ実行され、他のブロックについては実行されない。それらの変換ブロックは、対称(すなわち、2つの同じサイズのサブブロック)であってもよく又は非対称(すなわち、サブブロックが同じサイズのサブブロックではない)であってもよい。そのような部分的な変換は、複数の内部変換ブロックの間の境界に沿ったブロックアーティファクトを生じる場合がある。サブブロック変換(SBT)を有効化しているときに主観的品質を損なう先行技術においては、これらの境界をフィルタリングすることは考慮されていない。一方で、本発明の第2の態様によれば、フィルタリングプロセスは、SBTコーディングツールが引き起こすSBT境界のブロックアーティファクトを減少させるように改良される。フィルタリングすることを考慮されるであろうそれらの境界を検出するときに、SBTコーディングツールが引き起こす複数の内部変換ブロックの間の内部境界を考慮する。
第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、第1の変換ブロックは、残差データを有し、且つ、第2の変換ブロックは、残差データを有さず、或いは、第1の変換ブロックは、残差データを有さず、且つ、第2の変換ブロックは、残差データを有する。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、変換ブロックは、サブブロック変換SBT変換ブロックである。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、変換ブロックの数は、2又は3又は他の値である。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、当該方法は、
前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界をフィルタリングする必要があるか否かを決定するステップをさらに含む。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界をフィルタリングする必要があるという決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定する前記ステップは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロックの境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップを含み、nは、整数である。
第2の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、nは4又は8である。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の変換ブロック及び第2の変換ブロックのサンプルは輝度サンプルであるか、或いは、前記第1の変換ブロック及び第2の変換ブロックのサンプルは彩度サンプルであるか、又は、前記第1の変換ブロック及び第2の変換ブロックは輝度サンプル及び彩度サンプルを有する。
第2の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての8×8サンプルグリッドである。SBTが引き起こす変換エッジ等の彩度成分においてフレーム間予測を使用する両側を有する変換エッジは、また、ブロックアーティファクトを生じる場合があるということが認識されている。特に、(例えば、一般的なテスト条件で使用されるキャンプファイアシーケンスのように)ビデオシーケンスの主要な情報が彩度成分によって表されるときに、そのようなブロックアーティファクトは深刻である場合がある。したがって、本発明は、彩度成分においてフレーム間予測を使用するその両側を有する変換エッジのための非ブロック化フィルタリングプロセスを導入することを提案する。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記変換ブロックは、前記第2の変換ブロックに隣接する第3の変換ブロックをさらに含み、当該方法は、
前記第2の変換ブロックと前記第3の変換ブロックとの間の変換ブロック境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックのうちの少なくとも1つが1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップ、又は、
前記第2の変換ブロックと前記第3の変換ブロックとの間の前記変換ブロック境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックの双方がゼロ変換係数を有するときに、第2の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するステップ、
をさらに含む。
第2の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、nは4又は8である。4×4ブロックエッジは、VVCの場合には、HEVCにおけるブロックエッジよりもより頻繁に発生するということが認識されている。HEVCにおいては、4分木区分化のみがコーディングブロックの場合に許容される、すなわち、結果として生じるコーディングユニットは、常に、正方形である。一方で、VVCにおいては、複数タイプの木区分を有する4分木が許容される、すなわち、その区分化は、狭い4×Nコーディングブロック又は平坦なN×4コーディングブロックを生じる場合がある。さらに、SBT等のサブブロック区分化ツールは、さらに、4×N変換ブロックエッジ又はN×4変換ブロックエッジを生じる場合がある。したがって、グリッドサイズは、4×4に設定されて、8×8グリッドと重複していないフィルタリングエッジを考慮する。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第2の変換ブロック及び前記第3の変換ブロックのサンプルは、輝度サンプルであるか、又は、前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルは、彩度サンプルである。
第2の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルについての8×8サンプルグリッドである。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記第1の値は1である。
第2の態様のいずれかの先行する実装にしたがった方法のある1つの可能な実装形態において、前記第2の値は0である。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記コーディングブロックは、水平方向又は垂直方向に分割される。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記コーディングブロックが水平方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、水平方向の変換ブロック境界であるか、又は、
前記コーディングブロックが鉛直方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、鉛直方向の変換ブロック境界である。
第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法のある1つの可能な実装形態において、前記現在のコーディングブロックは、サブブロック変換SBTツールを使用してコーディングされ、又は、前記変換ブロック境界は、サブブロック変換SBTツールによって引き起こされる。
本開示の第3の態様によれば、コーディングブロックの中の変換ブロック境界を非ブロック化するために画像エンコーダ及び/又は画像デコーダの中で使用するデバイスが提供され、前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、(例えば、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、2つの変換ユニットに分割されるといったように)前記コーディングブロックは、複数の変換ブロックに分割され(分配され)、(例えば、変換ブロックは、鉛直方向又は水平方向において隣接するp0及びq0を含むといったように)それらの複数の変換ブロックは、第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該デバイスは、非ブロック化フィルタを含み、前記非ブロック化フィルタは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の境界が、変換ユニット境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定し、そして、
少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界に対して非ブロック化フィルタリングプロセスを実行する、ように構成される。
第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロックは、残差データを有し、且つ、前記第2の変換ブロックは、残差データを有さず、或いは、前記第1の変換ブロックは、残差データを有さず、且つ、前記第2の変換ブロックは、残差データを有する。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記変換ブロックは、サブブロック変換SBT変換ブロックである。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、変換ブロックの数は、2又は3である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界は、サブブロック変換SBT境界である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記非ブロック化フィルタは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するように構成される。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記変換ブロックは、前記第2の変換ブロックに隣接する第3の変換ブロックをさらに含み、前記非ブロック化フィルタは、さらに、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するか、又は、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックの双方がゼロの変換係数を有するときに、第2の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定する、ように構成される。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の値は1である。
第3の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、前記第2の値は0である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界が、n×nサンプルグリッドと整列されている(重複している)場合にのみ、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、非ブロック化され、nは、整数である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界が、n×n個のサンプルグリッドと整列されていない(重複していない)場合であっても、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、非ブロック化され、nは、整数である。
第3の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、nは4又は8である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロック及び前記第2の変換ブロックのサンプルは、輝度サンプルであるか、又は、前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルは、彩度サンプルである。
第3の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての8×8サンプルグリッドである。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記コーディングブロックは、水平方向又は垂直方向に分割される。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記コーディングブロックが水平方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、水平方向の変換ブロック境界であるか、又は、前記コーディングブロックが鉛直方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、鉛直方向の変換ブロック境界である。
第3の態様のいずれかの先行する実装又は第3の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記現在のコーディングブロックは、サブブロック変換SBTツールを使用してコーディングされ、又は、前記変換ブロック境界は、サブブロック変換SBTツールによって引き起こされる。
本開示の第4の態様によれば、コーディングブロック(コーディングユニット)の中のブロック境界を非ブロック化するために画像エンコーダ及び/又は画像デコーダの中で使用するデバイスが提供され、(前記コーディングブロックは、サブブロック変換SBTモードでコーディングされるといったように)前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、(例えば、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、2つの変換ユニットに分割されるといったように)前記コーディングブロック(フレーム間予測されるコーディングブロック)は、複数の変換ブロックに分割され(分配され)、(フレーム間予測プロセスにおいて、例えば、変換ブロックは、p0及びq0を含むとともに、鉛直方向において又は水平方向において隣接するといったように)それらの複数の変換ブロックは、第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該デバイスは、非ブロック化フィルタを含み、前記非ブロック化フィルタは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定し、そして、
少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行する、ように構成される。
第4の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロックは、残差データを有し、且つ、前記第2の変換ブロックは、残差データを有さず、又は、前記第1の変換ブロックは、残差データを有さず、且つ、前記第2の変換ブロックは、残差データを有する。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記変換ブロックは、サブブロック変換SBT変換ブロックである。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、変換ブロックの数は、2又は3である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記非ブロック化フィルタは、さらに、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界をフィルタリングする必要があるか否かを決定するように構成される。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記非ブロック化フィルタは、
前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロックの境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するように構成され、nは、整数である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、nは4又は8である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の変換ブロック及び前記第2の変換ブロックのサンプルは輝度サンプルであるか、又は、前記第1の変換ブロック及び前記第2の変換ブロックのサンプルは彩度サンプルであるか、又は、前記第1の変換ブロック及び第2の変換ブロックは輝度サンプル及び彩度サンプルを有する。SBTが引き起こす変換エッジ等の彩度成分においてフレーム間予測を使用する両側を有する変換エッジは、また、ブロックアーティファクトを生じる場合があるということが認識されている。特に、(例えば、一般的なテスト条件で使用されるキャンプファイアシーケンスのように)ビデオシーケンスの主要な情報が彩度成分によって表されるときに、そのようなブロックアーティファクトは深刻である場合がある。したがって、本発明は、彩度成分においてフレーム間予測を使用するその両側を有する変換エッジのための非ブロック化フィルタリングプロセスを導入することを提案する。
第4の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第1の変換ブロック及び前記第2の変換ブロックの前記サンプルについての8×8サンプルグリッドである。
4×4ブロックエッジは、VVCの場合には、HEVCにおけるブロックエッジよりもより頻繁に発生するということが認識されている。HEVCにおいては、4分木区分化のみがコーディングブロックの場合に許容される、すなわち、結果として生じるコーディングユニットは、常に、正方形である。一方で、VVCにおいては、複数タイプの木区分を有する4分木が許容される、すなわち、その区分化は、狭い4×Nコーディングブロック又は平坦なN×4コーディングブロックを生じる場合がある。さらに、SBT等のサブブロック分割ツールは、さらに、4×N変換ブロックエッジ又はN×4変換ブロックエッジを生じる場合がある。したがって、グリッドサイズは、4×4に設定されて、8×8グリッドと重複していないフィルタリングエッジを考慮する。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記変換ブロックは、前記第2の変換ブロックに隣接する第3の変換ブロックをさらに含み、
前記非ブロック化フィルタは、さらに、
前記第2の変換ブロックと前記第3の変換ブロックとの間の変換ブロック境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックのうちの少なくとも1つが1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定するか、又は、
前記第2の変換ブロックと前記第3の変換ブロックとの間の前記変換ブロック境界がn×nサンプルグリッドと整列されている(重複している)という決定に応答して、前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界がサブブロック変換SBT境界となっており、且つ、前記第2の変換ブロック及び前記第3の変換ブロックの双方がゼロ変換係数を有するときに、第2の値となるように前記第2の変換ブロックと前記第3の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定する、ように構成される。
第4の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、nは4又は8である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第2の変換ブロック及び前記第3の変換ブロックのサンプルは、輝度サンプルであるか、又は、前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルは、彩度サンプルである。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記n×nサンプルグリッドは、輝度サンプルである前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルについての4×4サンプルグリッドであるか、又は、前記n×nサンプルグリッドは、彩度サンプルである前記第2の変換ブロック及び前記第3の変換ブロックの前記サンプルについての8×8サンプルグリッドである。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記第1の値は1である。
第4の態様のいずれかの先行する実装にしたがったデバイスのある1つの可能な実装形態において、前記第2の値は0である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記コーディングブロックは、水平方向又は垂直方向に分割される。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記コーディングブロックが水平方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、水平方向の変換ブロック境界であるか、又は、前記コーディングブロックが鉛直方向に分割される場合に、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界は、鉛直方向の変換ブロック境界である。
第4の態様のいずれかの先行する実装又は第4の態様それ自体にしたがったデバイスのある1つの可能な実装形態において、前記現在のコーディングブロックは、サブブロック変換SBTツールを使用してコーディングされ、又は、前記変換ブロック境界は、サブブロック変換SBTツールによって引き起こされる。
本開示の第5の態様によれば、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法を実行するための処理回路を含むエンコーダが提供される。
本開示の第6の態様によれば、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法を実行するための処理回路を含むデコーダが提供される。
本開示の第7の態様によれば、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体に従う方法を実行するためのプログラムコードを含むコンピュータプログラム製品が提供される。
本開示の第8の態様によれば、プログラムコードを保持する非一時的な且つコンピュータ読み取り可能な媒体が提供され、そのプログラムコードがコンピュータデバイスによって実行されると、そのコンピュータデバイスに、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法を実行させる。
本開示の第9の態様によれば、1つ又は複数のプロセッサと、前記プロセッサに結合されるとともに、前記プロセッサによる実行のためにプログラミングを格納する非一時的な且つコンピュータ読み取り可能な記憶媒体と、を含むデコーダが提供され、前記プログラミングが前記プロセッサによって実行されるときに、前記プログラミングは、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法を実行するように当該デコーダを構成する。
本開示の第10の態様によれば、1つ又は複数のプロセッサと、前記プロセッサに結合されるとともに、前記プロセッサによる実行のためにプログラミングを格納する非一時的な且つコンピュータ読み取り可能な記憶媒体と、を含むエンコーダが提供され、前記プログラミングが前記プロセッサによって実行されるときに、前記プログラミングは、第1の態様のいずれかの先行する実装又は第1の態様それ自体にしたがった方法、或いは、第2の態様のいずれかの先行する実装又は第2の態様それ自体にしたがった方法を実行するように当該エンコーダを構成する。
本開示の第11の態様によれば、コーディングブロックの中の変換ブロック境界を非ブロック化するための非ブロック化フィルタ装置が提供され、(前記コーディングブロックは、フレーム間予測プロセスの際に、複数の変換ブロックに分割され(分配され)、例えば、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、2つの変換ユニットに分割されるといったように)前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、前記コーディングブロックは、複数の変換ブロックを含み、それらの複数の変換ブロックは、第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該非ブロック化フィルタは、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、変換ブロック境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度BSパラメータの値を決定する手段と、少なくとも前記BSパラメータの前記第1の値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界に対して非ブロック化フィルタリングプロセスを実行する手段と、を含む。
本開示の第12の態様によれば、コーディングブロック(コーディングユニット)の中のブロック境界を非ブロック化するための非ブロック化フィルタ装置が提供され、前記コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)(特に、前記コーディングブロックは、サブブロック変換SBTモードでコーディングされ)、(フレーム間予測されるコーディングブロックは、フレーム間予測プロセスにおいて、複数の変換ブロックに分割され(分配され)、例えば、サブブロック変換を有効化しているときに、前記現在のコーディングユニットは、2つの変換ユニットに分割されるといったように)前記コーディングブロックは、(例えば、変換ブロックは、p0及びq0を含むとともに、鉛直方向において又は水平方向において隣接するといったように)第1の変換ブロック及び前記第1の変換ブロックに隣接する第2の変換ブロックを含み、当該非ブロック化フィルタ装置は、前記第1の変換ブロックと前記第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定する手段と、少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行する手段と、を含む。
本発明の第1の態様にしたがった方法、すなわち、第1の変換ブロックと第2の変換ブロックとの間の境界が、変換ブロック境界となっており、且つ、第1の変換ブロック及び第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度BSパラメータの値を決定し、そして、少なくともBSパラメータの第1の値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の境界に対して非ブロック化フィルタリングプロセスを実行する方法は、本発明の第11の態様にしたがった装置によって実行されてもよい。本発明の第11の態様にしたがった装置のさらなる特徴及び実装形態は、本発明の第1の態様にしたがった方法の特徴及び実装形態に対応する。
本発明の第2の態様にしたがった方法、すなわち、前記第1の変換ブロックと前記第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界が、サブブロック変換SBT境界となっており、且つ、前記第1の変換ブロック及び前記第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように前記第1の変換ブロックと前記第2の変換ブロックとの間の前記境界についての境界強度パラメータの値を決定し、そして、少なくとも前記境界強度パラメータの前記値に基づいて、前記第1の変換ブロックと前記第2の変換ブロックとの間の前記変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行する方法は、本発明の第12の態様にしたがった装置によって実行されてもよい。本発明の第12の態様にしたがった装置のさらなる特徴及び実装形態は、本発明の第2の態様にしたがった方法の特徴及び実装形態に対応する。
いずれかの先行する態様にしたがった方法の実装形態に対応する実装形態へと、その態様にしたがった装置を拡張してもよい。したがって、その装置の実装形態は、いずれかの先行する態様にしたがった方法の対応する実装形態の1つ又は複数の特徴を含む。
いずれかの先行する態様にしたがったそれらの複数の装置の利点は、いずれかの先行する態様にしたがった方法の対応する実装形態の場合の利点と同じである。
さらなる態様によれば、本発明は、ビデオストリームを復号化するための装置に関し、プロセッサ及びメモリを含む。メモリは、命令を格納しており、その命令は、プロセッサに第1の態様にしたがった方法を実行させる。
さらなる態様によれば、本発明は、ビデオストリームを復号化するための装置に関し、プロセッサ及びメモリを含む。メモリは、命令を格納しており、その命令は、プロセッサに第1の態様にしたがった方法を実行させる。
1つ又は複数の実施形態の詳細は、添付の図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、発明の詳細な説明、図面、及び特許請求の範囲から明らかになるであろう。
以下の説明においては、複数の添付の図面を参照し、それらの複数の添付の図面は、本開示の一部を形成するとともに、実例として、本発明の複数の実施形態が使用されてもよい複数の特定の態様又は本発明のそれらの複数の実施形態の複数の特定の態様を示す。本発明の複数の実施形態は、他の態様で使用されてもよく、図面に示されていない構造的な又は論理的な変化を含んでもよいということが理解される。したがって、以下の詳細な説明は、限定的な意義で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
例えば、説明されている方法に関連する開示は、また、その方法を実行するように構成される対応するデバイス又はシステムに当てはまる可能性があり、その逆についてもまた当てはまる可能性があるということが理解される。例えば、1つ又は複数の特定の方法ステップを説明するときに、たとえ、そのような1つ又は複数のユニットが図面の中に明示的に記載されていないか又は図示されていない場合であっても、対応するデバイスは、例えば、(例えば、それらの1つ又は複数のステップを実行する1つのユニット、或いは、各々がそれらの複数のステップのうちの1つ又は複数を実行する複数のユニット等の)機能ユニット等の1つ又は複数のユニットを含んで、それらの説明されている1つ又は複数の方法ステップを実行してもよい。例えば、一方で、例えば、機能ユニット等の1つ又は複数のユニットに基づいて、ある特定の装置を説明するときに、たとえ、そのような1つ又は複数のステップが図面の中に明示的に記載されていないか又は図示されていない場合であっても、対応する方法は、(例えば、それらの1つ又は複数のユニットの機能を実行する1つのステップ、或いは、各々がそれらの複数のユニットのうちの1つ又は複数のユニットの機能を実行する複数のステップ等の)ある1つのステップを含んで、それらの1つ又は複数のユニットの機能を実行してもよい。さらに、特に断らない限り、本明細書において説明されているさまざまな例示的な実施形態及び/又は態様の特徴を互いに組み合わせてもよいということが理解される。
ビデオコーディングは、典型的には、ビデオ又はビデオシーケンスを形成する映像のシーケンスの処理を指す。"映像"の語の代わりに、ビデオコーディングの分野における同義語として、"フレーム"又は"画像"の語を使用してもよい。ビデオコーディング(又は、コーディング全般)は、ビデオ符号化及びビデオ復号化の2つの部分を含む。ビデオ符号化は、発信元の側において実行され、典型的には、元のビデオ映像を(例えば、圧縮によって)処理して、(より効率的な記憶及び/又は伝送のために)ビデオ映像を表現するのに必要となるデータの量を減少させることを含む。ビデオ復号化は、宛先の側において実行され、典型的には、エンコーダがビデオ映像を再構成するのと比較して、逆の処理を含む。ビデオ映像(又は、一般的には、映像)の"コーディング"を参照する複数の実施形態は、ビデオ映像又はそれぞれのビデオシーケンスの"符号化"又は"復号化"に関連することを理解すべきである。符号化部分及び復号化部分の組み合わせは、また、CODEC(Coding and Decoding)と称される。
無損失のビデオコーディングの場合には、元のビデオ映像を再構成することが可能である、すなわち、(記憶又は伝送の際に伝送損失又は他のデータ損失が存在しないと仮定すると)再構成されているビデオ映像は、元のビデオ映像と同じ品質を有する。損失を伴うビデオコーディングの場合には、例えば、量子化によるさらなる圧縮を実行して、ビデオ映像を表現するデータの量を減少させ、デコーダにおいてはそのビデオ映像を完全に再構成することは不可能である、すなわち、再構成されているビデオ映像の品質は、元のビデオ映像の品質と比較してより低いか又はより劣悪である。
ビデオコーディング規格のうちのいくつかは、"損失を伴うハイブリッドビデオコーデック"のグループに属する(すなわち、サンプル領域における空間的な及び時間的な予測、及び、変換領域において量子化を適用するための2D変換コーディングを組み合わせる)。あるビデオシーケンスの各々の映像は、典型的には、重複しないブロックのセットに区分化され、コーディングは、典型的には、ブロックレベルで実行される。言い換えると、エンコーダにおいては、典型的には、例えば、空間的な(映像内の)予測及び/又は時間的な(映像間の)予測を使用して、予測ブロックを生成し、現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して、残差ブロックを取得し、その残差ブロックを変換し、そして、変換領域においてその残差ブロックを量子化して、伝送されるべきデータの量を減少させること(圧縮)によって、ブロック(ビデオブロック)レベルで、そのビデオを処理する、すなわち、符号化し、一方で、デコーダにおいては、エンコーダと比較して逆の処理を符号化されているブロック又は圧縮されたブロックに適用して、表現のために現在のブロックを再構成する。さらに、エンコーダは、デコーダ処理ループを複製し、それによって、エンコーダ及びデコーダの双方は、(例えば、映像内の予測及び映像間の予測等の)同じ予測を生成し及び/又は後続のブロックの処理、すなわち、コーディングのための再構成を生成するであろう。
以下の記載では、図1乃至図3に基づいて、ビデオコーディングシステム10、ビデオエンコーダ20、及びビデオデコーダ30の複数の実施形態を説明する。
図1Aは、例えば、この出願の技術を利用することが可能であるビデオコーディングシステム10(又は、略して、コーディングシステム10)等の例示的なコーディングシステム10を図示する概略的なブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は、略して、エンコーダ20)及びビデオデコーダ30(又は、略して、デコーダ30)は、デバイスの複数の例を表し、それらのデバイスは、この出願の中で説明されるさまざまな例にしたがって技術を実行するように構成されてもよい。
図1Aに示されているように、コーディングシステム10は、発信元デバイス12を含み、その発信元デバイス12は、例えば、符号化されている映像データ13を復号化するための宛先デバイス14に、符号化されている映像データ21を提供するように構成される。
発信元デバイス12は、エンコーダ20を含み、そして、追加的に、すなわち、随意的に、映像ソース16、例えば、映像プリプロセッサ18等のプリプロセッサ(又は、前処理ユニット)18、及び通信インターフェイス又は通信ユニット22を含んでもよい。
映像ソース16は、例えば、実世界映像を取り込むためのカメラ等のいずれかの種類の映像捕捉デバイス、及び/又は、例えば、コンピュータによりアニメ化された映像を生成するためのコンピュータグラフィックスプロセッサ等のいずれかの種類の映像生成デバイス、又は、実世界映像、(例えば、スクリーンコンテンツ、仮想現実感(VR) 映像等の)コンピュータにより生成された映像、及び/又は(例えば、拡張現実感(AR)映像等の)それらのいずれかの組み合わせを取得し及び/又は提供するためのいずれかの種類の他のデバイスを含んでもよく、又は、それらのデバイスであってもよい。映像ソースは、上記の映像のうちのいずれかを格納するいずれかの種類のメモリ又は記憶装置であってもよい。
プリプロセッサ18及び前処理ユニット18が実行する処理を区別して、映像又は映像データ17は、また、未処理の映像又は未処理の映像データ17と称されてもよい。
プリプロセッサ18は、(未処理の)映像データ17を受信し、そして、その映像データ17に対して前処理を実行して、前処理された映像19又は前処理された映像データ19を取得するように構成される。プリプロセッサ18が実行する前処理は、例えば、トリミング、(例えば、RGBからYCbCrへの)色フォーマット変換、色補正、又は雑音除去を含んでもよい。前処理ユニット18は、選択的な構成要素であってもよいということを理解することが可能である。
ビデオエンコーダ20は、前処理された映像データ19を受信し、そして、符号化されている映像データ21を提供するように構成される(例えば、図2に基づいて、以下でさらなる詳細を説明する)。
発信元デバイス12の通信インターフェイス22は、符号化されている映像データ21を受信し、そして、記憶又は直接的な再構成のために、通信チャネル13を介して、例えば、宛先デバイス14又はいずれかの他のデバイス等の他のデバイスに、その符号化されている映像データ21(又は、符号化されている映像データのいずれかのさらに処理されたバージョン)を送信するように構成されてもよい。
宛先デバイス14は、(例えば、ビデオデコーダ30等の)デコーダ30を含み、そして、追加的に、すなわち、随意的に、通信インターフェイス又は通信ユニット28、ポストプロセッサ32(又は、後処理ユニット32)、及びディスプレイデバイス34を含んでもよい。
宛先デバイス14の通信インターフェイス28は、例えば、発信元デバイス12から直接的に、又は、例えば、符号化されている映像データ記憶デバイス等の、例えば、記憶デバイス等のいずれかの他の発信元から、符号化されている映像データ21(又は、符号化されている映像データのいずれかのさらに処理されたバージョン)を受信し、そして、デコーダ30に符号化されている映像データ21を提供するように構成される。
通信インターフェイス22及び通信インターフェイス28は、例えば、直接的な有線接続又は直接的な無線接続等の発信元デバイス12と宛先デバイス14との間の直接的な通信リンク、或いは、例えば、有線ネットワーク又は無線ネットワーク又はそれらのいずれかの組み合わせ等のいずれかの種類のネットワーク、或いは、いずれかの種類の私設ネットワーク及び公衆ネットワーク、或いは、それらのいずれかの種類の組み合わせを介して、符号化されている映像データ21又は符号化されているデータ13を送信し又は受信するように構成されてもよい。
例えば、通信インターフェイス22は、例えば、パケット等の適切なフォーマットに、符号化されている映像データ21をパッケージ化し、及び/又は、通信リンク又は通信ネットワークを介して伝送するために、いずれかの種類の伝送符号化又は処理を使用して、符号化されている映像データを処理するように構成されてもよい。
通信インターフェイス22と対をなす通信インターフェイス28は、例えば、送信されたデータを受信し、そして、いずれかの種類の対応する送信復号化又は処理及び/又は非パッケージ化を使用して、送信データを処理して、符号化されている映像データ21を取得するように構成されてもよい。
通信インターフェイス22及び通信インターフェイス28の双方は、発信元デバイス12から宛先デバイス14へと向かう図1Aの中の通信チャンネル13の矢印によって示されているように、一方向通信インターフェイスとして構成されてもよく、又は、双方向通信インターフェイスとして構成されてもよく、例えば、メッセージを送信し及び受信して、例えば、接続をセットアップし、それにより、例えば、符号化されている映像データ伝送等の通信リンク及び/又はデータ伝送に関連するいずれかの他の情報を確認し及び交換するように構成されてもよい。
デコーダ30は、符号化されている映像データ21を受信し、そして、復号化されている映像データ31又は復号化されている映像31を提供するように構成される(例えば、図3又は図5に基づいて、以下でさらなる詳細を説明する)。
宛先デバイス14のポストプロセッサ32は、例えば、復号化されている映像31等の(また、再構成されている映像データとも呼ばれる)復号化されている映像データ31を後処理して、例えば、後処理された映像33等の後処理された映像データ33を取得するように構成される。後処理ユニット32が実行する後処理は、例えば、(例えば、YCbCrからRGBへの)色フォーマット変換、色補正、トリミング、又は再サンプリング、又は、例えば、ディスプレイデバイス34によって表示するために、例えば、復号化されている映像データ31を準備するための他のいずれかの処理を含んでもよい。
宛先デバイス14のディスプレイデバイス34は、例えば、ユーザ又はビューアに映像を表示するために、後処理された映像データ33を受信するように構成される。ディスプレイデバイス34は、例えば、一体化されたディスプレイ又は外部ディスプレイ又はモニタ等の再構成されている映像を表現するためのいずれかの種類のディスプレイであってもよく、又は、それらのディスプレイを含んでもよい。それらのディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上の液晶(LCoS)、ディジタル光プロセッサ(DLP)、又はいずれかの種類の他のディスプレイを含んでもよい。
図1Aは、複数の個別のデバイスとして発信元デバイス12及び宛先デバイス14を示しているが、デバイスの複数の実施形態は、双方を含んでもよく又は双方の機能を含んでもよく、発信元デバイス12又は対応する機能及び宛先デバイス14又は対応する機能を含んでもよい。そのような実施形態においては、同じハードウェア及び/又はソフトウェアを使用して、或いは、個別のハードウェア及び/又はソフトウェア又はそれらのいずれかの組み合わせによって、発信元デバイス12又は対応する機能及び宛先デバイス14又は対応する機能を実装してもよい。
当業者にとっては説明により明らかであるように、図1Aに示されている発信元デバイス12及び/又は宛先デバイス14の中の複数の異なるユニット又は複数の異なる機能の存在及び機能の(正確な)分割は、実際のデバイス及び適用に応じて変化してもよい。
図1Bに示されているように、1つ又は複数のマイクロプロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ハードウェア、ビデオコーディング専用のもの、又はそれらのいずれかの組み合わせ等の処理回路によって、(例えば、ビデオエンコーダ20等の)エンコーダ20又は(例えば、ビデオデコーダ30等の)デコーダ30、又は、エンコーダ20及びデコーダ30の双方を実装してもよい。図2のエンコーダ20及び/又は本明細書において説明されているいずれかの他のエンコーダシステム又はサブシステムに関して説明されているように、さまざまなモジュールを具現化するための処理回路46によって、エンコーダ20を実装してもよい。図3のデコーダ30及び/又は本明細書において説明されているいずれかの他のデコーダシステム又はサブシステムに関して説明されているように、さまざまなモジュールを具現化するための処理回路46によって、デコーダ30を実装してもよい。その処理回路は、あとで説明されるように、さまざまな動作を実行するように構成されてもよい。図5に示されているように、技術が部分的にソフトウェアによって実装される場合に、デバイスは、適切で非一時的なコンピュータ読み取り可能な記憶媒体の中にソフトウェアのための命令を格納してもよく、1つ又は複数のプロセッサを使用するハードウェアによって命令を実行して、この開示の技術を実行してもよい。例えば、図1Bに示されているように、単一のデバイスの中の組み合わされているエンコーダ/デコーダ(CODEC)の一部として、ビデオエンコーダ20及びビデオデコーダ30のうちのいずれかを一体化してもよい。
発信元デバイス12及び宛先デバイス14は、例えば、ノートブックコンピュータ又はラップトップコンピュータ、携帯電話、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、ディジタルメディアプレーヤー、ビデオゲーム機、(コンテンツサービスサーバ又はコンテンツ配信サーバ等の)ビデオストリーミングデバイス、ブロードキャスト受信機デバイス、又はブロードキャスト送信機デバイス等のいずれかの種類のハンドヘルドデバイス又は固定のデバイスを含む広範囲のデバイスのいずれかを含んでもよく、オペレーティングシステムをまったく使用しなくてもよく、又は、いずれかの種類のオペレーティングシステムを使用してもよい。場合によっては、発信元デバイス12及び宛先デバイス14は、無線通信のために装備されてもよい。したがって、発信元デバイス12及び宛先デバイス14は、無線通信デバイスであってもよい。
場合によっては、図1Aに図示されているビデオコーディングシステム10は、ある1つの例であるにすぎず、この出願の技術は、(例えば、ビデオ符号化又はビデオ復号化等の)ビデオコーディングの設定に適用されてもよく、それらのビデオコーディングの設定は、必ずしも符号化デバイスと復号化デバイスとの間のデータ通信を含まない。他の例では、データは、ローカルメモリから検索されるか、又は、ネットワークを介してストリーミングされる等である。ビデオ符号化デバイスは、データを符号化し、そして、メモリに格納してもよく、及び/又は、ビデオ復号化デバイスは、メモリからデータを検索し、そして、復号化してもよい。複数の例のうちのいくつかにおいて、符号化及び復号化は、複数のデバイスによって実行され、それらの複数のデバイスは、互いに通信せず、ただ単に、データを符号化してメモリに格納し、及び/又は、メモリからデータを検索して復号化するにすぎない。
説明の便宜上、例えば、高効率ビデオコーディング(HEVC)又は多目的ビデオコーディング(VVC)の基準ソフトウェア、ITU-Tビデオコーディングエキスパートグループ(VCEG)及びISO/IEC動画エキスパートグループ(MPEG)のビデオコーディングに関する共同コラボレーションチーム(JCT-VC)によって開発された次世代ビデオコーディング規格を参照することによって、本明細書において、本発明の複数の実施形態を説明する。当業者は、本発明の複数の実施形態がHEVC又はVVCには限定されないということを理解するであろう。
エンコーダ及び符号化方法
図2は、例示的なビデオエンコーダ200の概略的なブロック図を示し、そのビデオエンコーダ200は、この出願の技術を実装するように構成される。図2の例では、ビデオエンコーダ200は、入力202(又は、入力インターフェイス202)、残差算出ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、復号化されている映像バッファ(DPB)230、モード選択ユニット260、エントロピー符号化ユニット270、及び出力ユニット272(又は、出力インターフェイス272)を含む。モード選択ユニット260は、フレーム間予測ユニット244、フレーム内予測ユニット254、及び区分化ユニット262を含んでもよい。フレーム間予測ユニット244は、(図示されていない)動き推定ユニット及び動き補償ユニットを含んでもよい。図2に示されているビデオエンコーダ200は、また、ハイブリッドビデオコーデックにしたがって、ハイブリッドビデオエンコーダ又はビデオエンコーダと称されてもよい。
残差算出ユニット204、変換処理ユニット206、量子化ユニット208、及びモード選択ユニット260は、エンコーダ200の順方向信号経路を形成するものとみなされてもよく、一方、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号化されている映像バッファ(DPB)230、フレーム間予測ユニット244、及びフレーム内予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するものとみなされてもよく、ビデオエンコーダ20の逆方向信号経路は、デコーダの信号経路に対応する(図3のビデオデコーダ300を参照のこと)。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号化されている映像バッファ(DPB)230、フレーム間予測ユニット244、及びフレーム内予測ユニット254は、また、ビデオエンコーダ20の"組み込み型のデコーダ"を形成するものとみなされる。
映像及び映像区分化(映像及びブロック)
エンコーダ20は、例えば、入力202を介して、例えば、ビデオ又はビデオシーケンスを形成する映像のシーケンスのうちの映像等の映像17(又は、映像データ17)を受信するように構成されてもよい。受信した映像又は映像データは、また、前処理された映像19(又は、前処理された映像データ19)であってもよい。単純化するために、以下の説明は、映像17を指している。映像17は、また、(特に、例えば、同じビデオシーケンス、すなわち、また、現在の映像を含むビデオシーケンスのうちの以前に符号化されている映像及び/又は復号化されている映像等の他の映像から現在の映像を区別するためにビデオコーディングの際に)コーディングされる映像又は現在の映像と称されてもよい。
(ディジタル)映像は、強度値を有するサンプルの2次元配列又は行列と考えられるか又は考えられてもよい。その配列の中のサンプルは、また、(映像要素の略語である)ピクセル又はペルと称されてもよい。その配列又は映像の水平方向及び鉛直方向(又は、軸)のサンプルの数は、その映像のサイズ及び/又は解像度を定義する。色の表現については、典型的には、3つの色成分が使用される、すなわち、その映像は、3つのサンプル配列によって表現されるか又は3つのサンプル配列を含んでもよい。RBGフォーマット又は色空間において、映像は、対応する赤、緑、及び青のサンプル配列を含む。一方で、ビデオコーディングの場合には、各々のピクセルは、典型的には、例えば、YCbCr等の光度フォーマット及び色度フォーマット又は色空間によって表現され、そのYCbCrは、(また、代わりに、Lが使用されることもある)Yが示す光度成分、及び、Cb及びCrが示す2つの色度成分を含む。光度(又は、略して、輝度)成分Yは、(例えば、グレースケール映像におけるような)明度又はグレーレベル強度を表し、一方で、2つの色度(又は、略して、彩度)成分Cb及びCrは、色度情報成分又は色情報成分を表す。したがって、YCbCrフォーマットによる映像は、光度サンプル値(Y)の光度サンプル配列、及び、色度値(Cb及びCr)の2つの色度サンプル配列を含む。RGBフォーマットによる映像は、YCbCrフォーマットに変形され又は変換されてもよく、その逆も可能であり、そのプロセスは、また、色変換又は色変形として知られている。映像がモノクロである場合には、その映像は、光度サンプル配列のみを含んでもよい。したがって、映像は、例えば、モノクロフォーマットでの輝度サンプルの配列、又は、4:2:0、4:2:2、及び4:4:4の色フォーマットでの彩度サンプルの2つの対応する配列及び輝度サンプルの配列であってもよい。
ビデオエンコーダ20の複数の実施形態は、(図2には示されていない)映像区分化ユニットを含んでもよく、その映像区分化ユニットは、(典型的には、重複していない)複数の映像ブロック201へと映像17を区分化するように構成される。それらのブロックは、また、ルートブロック、マクロブロック(H.264/AVC)、或いは、コーディング木ブロック(CTB)又はコーディング木ユニット(CTU)(H.265/HEVC及びVVC)と称されてもよい。その映像区分化ユニットは、ビデオシーケンスの映像のすべてについて同じブロックサイズを使用するとともに、そのブロックサイズを定義する対応するグリッドを使用するように構成されてもよく、又は、複数の映像の間で、或いは、映像の複数のサブセット又は複数のグループの間でブロックサイズを変化させ、そして、対応するブロックへと各々の映像を区分化するように構成されてもよい。
さらなる実施形態において、ビデオエンコーダは、例えば、映像17を形成する1つのブロック、複数のブロックのうちのいくつか、又は複数のブロックのすべて等の映像17のブロック201を直接的に受信するように構成されてもよい。映像ブロック201は、また、現在の映像ブロック又はコーディングされる映像ブロックと称されてもよい。
映像17と同様に、映像ブロック201もやはり、映像17よりも小さい寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元配列又は行列と考えられるか又は考えられてもよい。言い換えると、例えば、ブロック201は、(例えば、モノクロ映像17の場合に輝度配列、又は、カラー映像の場合に輝度配列又は彩度配列の)1つのサンプル配列又は(例えば、カラー映像17の場合に輝度及び2つの彩度配列の)3つのサンプル配列、或いは、適用される色フォーマットに応じていずれかの他の数の配列及び/又は他の種類の配列を含んでもよい。ブロック201の水平方向及び鉛直方向(又は、軸)のサンプル数は、ブロック201のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)配列、又は変換係数のM×N配列であってもよい。
図2に示されているビデオエンコーダ20の複数の実施形態は、例えば、ブロック201ごとに符号化及び予測を実行するといったように、ブロックごとに映像17を符号化するように構成されてもよい。
残差算出
残差算出ユニット204は、例えば、サンプルごとに(ピクセルごとに)映像ブロック201のサンプル値から予測ブロック265のサンプル値を減算することによって、映像ブロック201及び予測ブロック265(予測ブロック265についてのさらなる詳細はあとで説明される)に基づいて、(また、残差205と称される)残差ブロック205を算出して、サンプル領域において残差ブロック205を取得するように構成されてもよい。
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)等の変換を適用して、変換領域において変換係数207を取得するように構成されてもよい。変換係数207は、また、変換残差係数と称されてもよく、変換領域における残差ブロック205を表す。
変換処理ユニット206は、H.265/HEVCのために指定されている変換等のDCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、そのような整数近似は、典型的には、ある因数によってスケーリングされる。順方向の変換及び逆方向の変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として複数の追加的なスケーリング係数を適用する。それらのスケーリング係数は、典型的には、シフト演算のための2のべき乗であるスケーリング係数、変換係数のビット深度、精度と実装コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング係数は、例えば、逆変換処理ユニット212(及び、例えば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)によって、その逆変換のために指定され、エンコーダ20において、例えば、変換処理ユニット206によって、順方向の変換のための対応するスケーリング係数は、それに応じて指定されてもよい。
ビデオエンコーダ20(それぞれ、変換処理ユニット206)の複数の実施形態は、例えば、エントロピー符号化ユニット270によって直接的に或いはエントロピー符号化ユニット270によって符号化され又は圧縮される、例えば、1つ又は複数の変換のタイプ等の変換パラメータを出力するように構成されてもよく、それによって、例えば、ビデオデコーダ30は、復号化のためにそれらの複数の変換パラメータを受信しそして使用してもよい。
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化された係数209を取得するように構成されてもよい。それらの量子化された係数209は、また、量子化された変換係数209又は量子化された残差係数209と称されてもよい。
量子化プロセスは、変換係数207の一部又はすべてと関連するビット深度を減少させることが可能である。例えば、量子化の際に、mビットの変換係数となるように、nビットの変換係数に対して端数切捨て処理を実行してもよく、nは、mより大きい。量子化パラメータ(QP)を調整することによって、量子化の程度を修正してもよい。例えば、スカラー量子化の場合に、複数の異なるスケーリングを適用して、より微細な量子化又はより粗い量子化を達成することが可能である。より小さい量子化ステップサイズは、より微細な量子化に対応し、一方、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示されてもよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズのあらかじめ定義されているセットに対するインデックスであってもよい。例えば、小さな量子化パラメータは、微細な量子化(小さな量子化ステップサイズ)に対応していてもよく、大きな量子化パラメータは、粗い量子化(大きな量子化ステップサイズ)に対応してもよく、又は、その逆の対応関係も可能である。量子化は、量子化ステップサイズによる除算を含んでもよく、例えば、逆量子化ユニット210による対応する及び/又は反対の量子化解除は、その量子化ステップサイズによる乗算を含んでもよい。例えば、HEVC等のいくつかの規格にしたがった複数の実施形態は、量子化パラメータを使用して、量子化ステップサイズを決定するように構成されてもよい。一般的に、量子化ステップサイズは、除算を含む方程式の固定点近似を使用して、量子化パラメータに基づいて算出されてもよい。量子化及び量子化解除のために追加的なスケーリング因数を導入して、量子化ステップサイズ及び量子化パラメータのために方程式の固定点近似の際に使用されるスケーリングに起因して修正される場合がある残差ブロックのノルムを復元することが可能である。ある1つの例示的な実装において、逆変換及び量子化解除のスケーリングを組み合わせてもよい。代替的に、カスタマイズされている量子化テーブルが、使用され、エンコーダからデコーダへと、例えば、ビットストリームの中でシグナリングにより送られてもよい。量子化は、損失を伴う操作であり、その損失は、量子化ステップサイズが増加するのに伴って増加する。
ビデオエンコーダ20(それぞれ、量子化ユニット208)の複数の実施形態は、例えば、エントロピー符号化ユニット270によって直接的に量子化パラメータ(QP)を出力するか又はエントロピー符号化ユニット270によって符号化されている量子化パラメータ(QP)を出力するように構成されてもよく、それによって、例えば、ビデオデコーダ30は、復号化のために量子化パラメータを受信しそして適用してもよい。
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又は同じ量子化ステップサイズを使用して、量子化ユニット208が適用する量子化スキームの逆のスキームを適用することによって、量子化された係数に対して量子化ユニット208の逆量子化を適用して、量子化解除された係数211を取得するように構成される。量子化解除された係数211は、また、量子化解除された残差係数211と称されてもよく、典型的には、量子化による損失が原因となって変換係数と同じではないが、変換係数207に対応している。
逆変換
逆変換処理ユニット212は、例えば、逆離散コサイン変換(DCT)、逆離散サイン変換(DST)、又は他の逆変換等の変換処理ユニット206が適用する変換の逆の変換を適用して、サンプル領域において再構成されている残差ブロック213(又は、対応する量子化解除された係数213)を取得するように構成される。再構成されている残差ブロック213は、また、(再構成されている)変換ブロック213と称されてもよい。
再構成
(例えば、加算器又は総和を求める加算器214等の)再構成ユニット214は、例えば、再構成されている残差ブロック213のサンプル値及び予測ブロック265のサンプル値をサンプルごとに加算することによって、予測ブロック265に(再構成されている)変換ブロック213(すなわち、再構成されている残差ブロック213)を追加して、サンプル領域において再構成されているブロック215を取得するように構成される。
フィルタリング
ループフィルタユニット220(又は、略して、"ループフィルタ"220)は、再構成されているブロック215をフィルタリングして、フィルタリングされているブロック221を取得するように構成されるか、又は、一般的に、再構成されているサンプルをフィルタリングして、フィルタリングされているサンプルを取得するように構成される。ループフィルタユニットは、例えば、ピクセル遷移を平滑化するように構成されるか、又は、そうでない場合には、ビデオ品質を改善するように構成される。ループフィルタユニット220は、非ブロック化フィルタ、サンプル適応オフセット(SAO)フィルタ、或いは、例えば、双方向フィルタ、適応ループフィルタ(ALF)、鮮明化フィルタ、平滑化フィルタ、又は協調フィルタ等の1つ又は複数の他のフィルタ、或いは、それらのいずれかの組み合わせ等の1つ又は複数のループフィルタを含んでもよい。ループフィルタユニット220は、図2においてはインループフィルタとして示されているが、他の構成においては、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリングされているブロック221は、また、フィルタリングされ再構成されているブロック221と称されてもよい。本開示において、改良されたループフィルタ、特に、改良された非ブロック化フィルタリング装置が提供され、後に詳細に紹介されるであろう。
ビデオエンコーダ20(それぞれ、ループフィルタユニット220)の複数の実施形態は、例えば、エントロピー符号化ユニット270によって直接的に(サンプル適応オフセット情報等の)ループフィルタパラメータを出力するか又はエントロピー符号化ユニット270によって符号化されているループフィルタパラメータを出力するように構成されてもよく、それによって、例えば、デコーダ30は、復号化のために同じループフィルタパラメータ又はそれぞれのループフィルタを受信しそして適用してもよい。
復号化されている映像バッファ
復号化されている映像バッファ(DPB)230は、ビデオエンコーダ20によるビデオデータの符号化のために、基準映像又は、一般的に、基準映像データを格納するメモリであってもよい。そのDPB230は、ダイナミックランダムアクセスメモリ(DRAM)又は他のタイプのメモリデバイス等のさまざまなメモリデバイスのうちのいずれかによって構成されていてもよく、そのダイナミックランダムアクセスメモリ(DRAM)は、同期DRAM(SDRAM)、磁気抵抗性RAM(MRAM)、抵抗性RAM(RRAM)を含む。復号化されている映像バッファ(DPB)230は、1つ又は複数のフィルタリングされているブロック221を格納するように構成されてもよい。復号化されている映像バッファ230は、さらに、例えば、以前に再構成されている映像等の同じ現在の映像の又は複数の異なる映像の、例えば、以前に再構成され及びフィルタリングされているブロック221等の他の以前にフィルタリングされているブロックを格納するように構成されてもよく、例えば、フレーム間予測のために、完全な以前に再構成されている映像、すなわち、復号化されている映像(及び、対応する基準ブロック及びサンプル)及び/又は部分的に再構成されている現在の映像(及び、対応する基準ブロック及びサンプル)を提供してもよい。復号化されている映像バッファ(DPB)230は、また、例えば、再構成されているブロック215がループフィルタユニット220によってフィルタリングされていない場合に、1つ又は複数の再構成されているフィルタリングされていないブロック215、或いは、一般的に、再構成されているフィルタリングされていないサンプル、或いは、再構成されているブロック又はサンプルのいずれかの他のさらに処理されたバージョンを格納するように構成されてもよい。
モード選択(区分化及び予測)
モード選択ユニット260は、区分化ユニット262、フレーム間予測ユニット244、及びフレーム内予測ユニット254を含み、例えば、元のブロック201(現在の映像17の現在のブロック201)等の元の映像データ、及び、例えば、復号化されている映像バッファ230又は(例えば、ラインバッファ216等の)他のバッファからの1つ又は複数の以前に復号化されている映像のうちの、及び/又は、例えば、同じ(現在の)映像の再構成されフィルタリングされている及び/又はフィルタリングされていないサンプル又はブロック等の再構成されている映像データを受信し又は取得するように構成される。その再構成されている映像データは、例えば、フレーム間予測又はフレーム内予測等の予測のための基準映像データとして使用されて、予測ブロック265又は予測器265を取得する。
モード選択ユニット260は、(区分化が存在しない場合を含む)現在のブロック予測モード及び(例えば、フレーム内予測モード又はフレーム間予測モード等の)予測モードのための区分化を決定し又は選択し、そして、対応する予測ブロック265を生成する、ように構成されてもよく、その対応する予測ブロック265は、残差ブロック205の算出のため及び再構成ブロック215の再構成のために使用される。
モード選択ユニット260の複数の実施形態は、(例えば、そのモード選択ユニット260がサポートする又はそのモード選択ユニット260に利用可能な区分化及び予測モードから)区分化及び予測モードを選択するように構成されてもよく、それらの区分化及び予測モードは、最良の整合、すなわち、最小の残差(最小の残差は、伝送又は記憶のためのより良好な圧縮を意味する)又は最小のシグナリングオーバーヘッド(最小のシグナリングオーバーヘッドは、伝送又は記憶のためのより良好な圧縮を意味する)を提供するか、或いは、分割及び予測モードの双方を考慮し又は双方をバランスさせる。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて、区分化及び予測モードを決定する、すなわち、最小のレート歪みを提供する予測モードを選択する、ように構成されてもよい。この文脈における"最良の"、"最小の"、"最適な"等の語は、必ずしも、全体的な"最良の"、"最小の"、"最適な"等を指すのではなく、また、ある値が、"準最適な選択"につながる可能性があるしきい値又は他の制約条件を超えるか或いは下回るが、複雑性及び処理時間を減少させるといったような終了基準又は選択基準の達成を指す。
言い換えると、区分化ユニット262は、例えば、4分木区分化(QT)、2分木区分化(BT)、3分木区分化(TT)、又はそれらのいずれかの組み合わせを反復的に使用して、(再びブロックを形成する)より小さなブロック区分又はサブブロックへとブロック201を区分化し、そして、例えば、それらのブロック区分又はサブブロックの各々について予測を実行する、ように構成されてもよく、そのモード選択は、区分化されるブロック201の木構造の選択を含み、予測モードは、それらのブロック区分又はサブブロックの各々に適用される。
以下の記載では、例示的なビデオエンコーダ20が実行する(例えば、区分化ユニット260による)区分化及び(フレーム間予測ユニット244及びフレーム内予測ユニット254による)予測処理をより詳細に説明する。
区分化
区分化ユニット262は、例えば、正方形のサイズ又は矩形のサイズのより小さいブロック等のより小さな区分へと現在のブロック201を区分化してもよい(又は、分配してもよい)。(また、サブブロックと称されてもよい)これらのより小さなブロックは、さらに、より小さな区分へと区分化されてもよい。この分割は、また、木区分化又は階層的木区分化と称され、例えば、根木レベル0(階層レベル0, 深度0)の根ブロックは、例えば、木レベル1(階層レベル1, 深度1)のノード等の次の下位木レベルの2つ又はそれ以上のブロックへと区分化されるといったように、再帰的に区分化されてもよく、例えば、最大木深度又は最小ブロックサイズに達するといったように、例えば、終了基準を達成していることから区分化が終了するまで、例えば、木レベル2(階層レベル2, 深度2)等の次の下位レベルの2つ又はそれ以上のブロックへと、それらのブロックを再度区分化してもよい。それ以上区分化されないブロックは、また、木の葉ブロック又は葉ノードと称される。2つの区分への区分化を使用する木は、2分木区分化(BT)と称され、3つの区分への区分化を使用する木は、3分木区分化(TT)と称され、そして、4つの区分への区分化を使用する木は、4分木区分化(QT)と称される。本開示において、フレーム間予測の際に、SBTコーディングツールを適用するときに、コーディングブロックは、変換ブロックへと分割される。
上記で言及されているように、本明細書において使用される"ブロック"の語は、映像の部分、特に、正方形の部分又は矩形の部分であってもよい。例えば、HEVC及びVVCを参照すると、ブロックは、コーディング木ユニット(CTU)、コーディングユニット(CU)、予測ユニット(PU)、及び変換ユニット(TU)、及び/又は、例えば、コーディング木ブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)、又は予測ブロック(PB)等の対応するブロックであってもよく、或いは、それらのブロックに対応していてもよい。
例えば、コーディング木ユニット(CTU)は、輝度サンプルのCTB、3つのサンプル配列を有する映像の彩度サンプルの2つの対応するCTB、又は、サンプルをコーディングするのに使用される3つの個別の色平面及び構文構成を使用してコーディングされるモノクロ映像又は映像のサンプルのCTBであってもよく、或いは、これらを含んでもよい。それに対応して、コーディング木ブロック(CTB)は、Nのある値について、サンプルのN×Nブロックとなってもよく、それによって、ある成分の複数のCTBへの分割は、区分化となる。コーディングユニット(CU)は、輝度サンプルのコーディングブロック、3つのサンプル配列を有する映像の彩度サンプルの2つの対応するコーディングブロック、又は、サンプルをコーディングするのに使用される3つの個別の色平面及び構文構成を使用してコーディングされるモノクロ映像又は映像のサンプルのコーディングブロックであってもよく、或いは、これらを含んでもよい。それに対応して、コーディングブロック(CB)は、M及びNのある値について、サンプルのM×Nブロックとなってもよく、それによって、CTBの複数のコーディングブロックへの分割は、区分化となる。
複数の実施形態において、例えば、HEVCによれば、コーディング木として示されている4分木構造を使用することによって、コーディング木ユニット(CTU)を複数のCUへと分配してもよい。フレーム間(時間的な)予測又はフレーム内(空間的な)予測を使用してある映像領域をコーディングするか否かの決定は、CUレベルで行われる。各々のCUは、さらに、PU分配タイプにしたがって、1つ、2つ、又は4つのPUへと分配されてもよい。ある1つのPUの内側においては、同じ予測プロセスを適用し、PUベースでデコーダに関連情報を送信する。PU分配タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後に、あるCUについてのコーディング木と同様の他の四分木構造にしたがって変換ユニット(TU)へとそのCUを区分化してもよい。
複数の実施形態においては、例えば、多目的ビデオコーディング(VVC)と称される現時点で開発中の最新のビデオコーディング規格によれば、コーディングブロックを区分化するのに4分木及び2分木(QTBT)区分化を使用する。そのQTBTブロック構造においては、CUは、正方形形状又は矩形形状のうちのいずれかを有していてもよい。例えば、コーディング木ユニット(CTU)は、最初に、4分木構造によって区分化される。その4分木葉ノードは、さらに、2分木構造又は3つ組の(又は、3重の)木構造によって区分化される。区分化木葉ノードは、コーディングユニット(CU)と呼ばれ、その細分化は、それ以上のいかなる区分化も伴うことなく予測処理及び変換処理のために使用される。このことは、CU、PU、及びTUが、QTBTコーディングブロック構造の中で同じブロックサイズを有するということを意味する。同時に、例えば、3分木区分化等の複数区分化が、また、QTBTブロック構造と共に使用するように提案されている。
ある1つの例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書において説明されている複数の区分化技術のいずれかの組み合わせを実行するように構成されてもよい。
上記で説明されているように、ビデオエンコーダ20は、(あらかじめ決定されている)複数の予測モードのあるセットから最良の予測モード又は最適な予測モードを決定し又は選択するように構成される。予測モードのそのセットは、例えば、フレーム内予測モード及び/又はフレーム間予測モードを含んでもよい。
フレーム内予測
フレーム内予測モードのセットは、例えば、DC(又は、平均)モード及び平面モード等の非指向性モード、又は、例えば、HEVCにおいて定義されている指向性モード等の35個の異なるフレーム内予測モードを含んでもよく、或いは、例えば、DC(又は、平均)モード及び平面モード等の非指向性モード、或いは、例えば、VVCにおいて定義されている指向性モード等の67個の異なるフレーム内予測モードを含んでもよい。
フレーム内予測ユニット254は、フレーム内予測モードのセットのうちのあるフレーム内予測モードにしたがって、同じの現在の映像の複数の隣接するブロックの複数の再構成されているサンプルを使用して、フレーム内予測ブロック265を生成するように構成される。
フレーム内予測ユニット254(又は、一般的に、モード選択ユニット260)は、さらに、(図1Aの符号化されている映像データ21に対応する)符号化されている映像データ271に含めるために、構文要素266の形態で、エントロピー符号化ユニット270にフレーム内予測パラメータ(又は、一般的に、そのブロックのために選択されているフレーム内予測モードを示す情報)を出力するように構成され、それによって、例えば、ビデオデコーダ30は、復号化のためにその予測パラメータを受信し及び使用してもよい。
フレーム間予測
フレーム間予測モードのセット(又は、可能なフレーム間予測モード)は、利用可能な基準映像(すなわち、例えば、DBP230の中に格納されている以前の少なくとも部分的に復号化されている映像)、及び、例えば、基準映像の現在のブロックのエリアの周囲の探索ウィンドウエリア等のその基準映像の全体又は一部のみが、最良のマッチング基準ブロックを探索するのに使用されるか否か、及び/又は、例えば、半ペル/準ペル及び/又は4分の1ペル内挿補完等のピクセル内挿補完が適用されるか否か等の他のフレーム間予測パラメータに依存する。
上記の予測モードのほかに、スキップモード及び/又は直接モードを適用してもよい。
フレーム間予測ユニット244は、(双方とも図2には示されていない)動き推定(ME)ユニット及び動き補償(MC)ユニットを含んでもよい。動き推定ユニットは、動き推定のために、映像ブロック201(現在の映像17の現在の映像ブロック201)、及び、復号化されている映像231、又は、例えば、1つ又は複数の他の/異なる以前に復号化されている映像231の再構成されているブロック等の少なくとも1つ又は複数の以前に再構成されているブロックを受信し又は取得するように構成されてもよい。例えば、ビデオシーケンスは、現在の映像及び以前に復号化されている映像231を含んでもよい、言い換えると、現在の映像及び以前に復号化されている映像231は、ビデオシーケンスを形成する映像のシーケンスの一部であってもよく、又は、ビデオシーケンスを形成する映像のシーケンスを形成してもよい。
エンコーダ20は、例えば、複数の他の映像のうちの同じ映像又は異なる映像の複数の基準ブロックから基準ブロックを選択し、そして、動き推定ユニットへのフレーム間予測パラメータとして、基準映像(又は、基準映像インデックス)、及び/又は、基準ブロックの位置(x座標、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を提供する、ように構成されてもよい。このオフセットは、また、動きベクトル(MV)と呼ばれる。
動き補償ユニットは、例えば、フレーム間予測パラメータを受信するといったように、フレーム間予測パラメータを取得し、そして、そのフレーム間予測パラメータに基づいて又はそのフレーム間予測パラメータを使用して、フレーム間予測を実行し、それにより、フレーム間予測ブロック265を取得する、ように構成される。動き補償ユニットが実行する動き補償は、動き推定によって決定される動きベクトル/ブロックベクトルに基づいて予測ブロックを取り出し又は生成することを含んでもよく、サブピクセル精度への内挿補間を実行することが可能である。内挿補間フィルタリングは、既知のピクセルサンプルから追加的なピクセルサンプルを生成することが可能であり、したがって、映像ブロックを符号化するのに使用されてもよい候補予測ブロックの数を潜在的に増加させる。現在の映像ブロックのPUについての動きベクトルを受信すると、動き補償ユニットは、その動きベクトルが基準映像リストのうちの1つにおいて指し示す予測ブロックを位置決めすることが可能である。
動き補償ユニットは、また、ビデオデコーダ30がビデオスライスの映像ブロックを復号化する際に使用するように、複数のブロック及びそのビデオスライスと関連する構文要素を生成してもよい。本開示において、フレーム間予測の際に、(例えば、SBTコーディングツールを適用するとき等の)サブブロック変換(SBT)を有効化しているときに、コーディングブロックは複数の変換ブロックに分割される。
エントロピーコーディング
エントロピー符号化ユニット270は、例えば、量子化係数209、フレーム間予測パラメータ、フレーム内予測パラメータ、ループフィルタパラメータ及び/又は他の構文要素に対して、(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CAVLC)、演算コーディングスキーム、2値化、コンテキスト適応2値演算コーディング(CABAC)、構文ベースのコンテキスト適応2値演算コーディング(SBAC)、確率的間隔区分化エントロピー(PIPE)コーディング、又は他のエントロピー符号化方法又は技術等の)エントロピー符号化アルゴリズム又はスキーム、或いは、バイパス(非圧縮)を適用して、例えば、符号化されているビットストリーム21の形態で出力272を介して出力されてもよい(符号化されている映像データ21に対応する)符号化されている映像データ271を取得するように構成され、それによって、例えば、ビデオデコーダ30は、復号化のためにそれらのパラメータを受信し及び使用することが可能である。その符号化されているビットストリーム21は、ビデオデコーダ30に送信されてもよく、或いは、ビデオデコーダ30による後の送信又は検索のためにメモリの中に格納されてもよい。本開示においては、cu_sbt_flag及びcu_sbt_horizontal_flag等の複数の構文要素を符号化して、ビットストリーム21としてもよい。
ビデオエンコーダ20の他の構造的変形を使用して、ビデオストリームを符号化してもよい。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームについて、変換処理ユニット206を使用することなく、直接的に、残差信号を量子化してもよい。他の実装においては、エンコーダ20は、単一のユニットとなるように組み合わせられている量子化ユニット208及び逆量子化ユニット210を有してもよい。
デコーダ及び復号化方法
図3は、ビデオデコーダ30のある1つの例を示し、そのビデオデコーダ30は、この出願の複数の技術を実装するように構成される。そのビデオデコーダ30は、例えば、エンコーダ20が符号化する(例えば、符号化されているビットストリーム21等の)(符号化されている映像データ21に対応する)符号化されている映像データ271を受信して、復号化されている映像331を取得するように構成される。符号化されている映像データ又はビットストリームは、例えば、符号化されているビデオスライスの映像ブロック及び関連する構文要素を表すデータ等の符号化されている映像データを復号化するための情報を含む。
図3の例では、デコーダ300は、エントロピー復号化ユニット304、逆量子化ユニット310、逆変換処理ユニット312、(例えば、総和を求める加算器314等の)再構成ユニット314、ループフィルタ320、復号化されている映像バッファ330、フレーム間予測ユニット344、及びフレーム内予測ユニット354を含む。フレーム間予測ユニット344は、動き補償ユニットであってもよく又は動き補償ユニットを含んでもよい。ビデオデコーダ300は、複数の例のうちのいくつかにおいて、図2からのビデオエンコーダ200に関して説明されている符号化パスとおおむね逆向きの復号化パスを実行してもよい。
エンコーダ200に関して説明されているように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号化されている映像バッファ(DPB)230、フレーム間予測ユニット344、及びフレーム内予測ユニット354は、また、ビデオエンコーダ20の"組み込み型のデコーダ"を形成するものとみなされる。したがって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同じであってもよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同じであってもよく、再構成ユニット314は、再構成ユニット214と機能的に同じであってもよく、ループフィルタ320は、ループフィルタ220と機能的に同じであってもよく、復号化されている映像バッファ330は、復号化されている映像バッファ230と機能的に同じであってもよい。したがって、ビデオエンコーダ200のそれぞれのユニット及び機能に提供した説明は、対応して、ビデオデコーダ30のそれぞれのユニット及び機能に適用される。
エントロピー復号化
エントロピー復号化ユニット304は、ビットストリーム21(又は、一般的に、(符号化されている映像データ21に対応する)符号化されている映像データ271)を解析し、そして、例えば、(符号化されている映像データ21に対応する)符号化されている映像データ271に対してエントロピー復号化を実行して、例えば、(例えば、基準映像インデックス及び動きベクトル等の)フレーム間予測パラメータ、(例えば、フレーム内予測モード又はインデックス等の)フレーム内予測パラメータ、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、及び/又は他の構文要素のうちのいずれか又はすべて等の量子化された係数309及び/又は(図3には示されていない)復号化されているコーディングパラメータを取得するように構成される。エントロピー復号化ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明されているように、符号化スキームに対応する復号化アルゴリズム又はスキームを適用するように構成されてもよい。エントロピー復号化ユニット304は、さらに、モード選択ユニット360にフレーム間予測パラメータ、フレーム内予測パラメータ、及び/又は他の構文要素を提供するとともに、デコーダ30の他のユニットに他のパラメータを提供するように構成されてもよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルで構文要素を受信してもよい。
逆量子化
逆量子化ユニット310は、(例えば、エントロピー復号化ユニット304によって、例えば、解析し及び/又は復号化することによって)(符号化されている映像データ21に対応する)符号化されている映像データ271から量子化パラメータ(QP)(又は、一般的に、逆量子化に関する情報)及び量子化されている係数を受信し、そして、それらの量子化パラメータに基づいて、量子化され復号化されている係数309に逆量子化を適用して、また、変換係数311と称されてもよい量子化解除されている係数311を取得する、ように構成されてもよい。逆量子化プロセスは、ビデオスライスの中の各々のビデオブロックについてビデオエンコーダ20が決定する量子化パラメータを使用して、量子化の程度、及び、同様に、適用される必要がある逆量子化の程度を決定することを含んでもよい。
逆変換
逆変換処理ユニット312は、また、変換係数311と称される量子化解除されている係数311を受信し、そして、サンプル領域において、再構成されている残差ブロック213を取得するために、それらの量子化解除されている係数311に変換を適用する、ように構成されてもよい。それらの再構成されている残差ブロック213は、また、変換ブロック313と称されてもよい。変換は、例えば、逆DCT、逆DST、逆整数変換、又は概念的に同様の逆変換プロセス等の逆変換であってもよい。逆変換処理ユニット312は、さらに、(例えば、エントロピー復号化ユニット304によって、例えば、解析し及び/又は復号化することによって)(符号化されている映像データ21に対応する)符号化されている映像データ271から変換パラメータ又は対応する情報を受信して、量子化解除されている係数311に適用される変換を決定するように構成されてもよい。
再構成
(例えば、加算器又は総和を求める加算器314等の)再構成ユニット314は、例えば、再構成されている残差ブロック313のサンプル値及び予測ブロック365のサンプル値を加算することによって、予測ブロック365に、再構成されている残差ブロック313を加算して、サンプル領域において、再構成されているブロック315を取得するように構成されてもよい。
フィルタリング
(コーディングループの中又はコーディングループの後のうちのいずれかに存在する)ループフィルタユニット320は、再構成されているブロック315をフィルタリングして、フィルタリングされているブロック321を取得するように構成され、その結果、例えば、ピクセル遷移を平滑化するか、又は、そうでない場合には、ビデオ品質を改善する。ループフィルタユニット320は、非ブロック化フィルタ、サンプル適応オフセット(SAO)フィルタ、或いは、例えば、双方向フィルタ、適応ループフィルタ(ALF)、鮮明化フィルタ、平滑化フィルタ、又は協調フィルタ等の1つ又は複数の他のフィルタ、或いは、それらのいずれかの組み合わせ等の1つ又は複数のループフィルタを含んでもよい。ループフィルタユニット320は、図3においてはインループフィルタであるとして示されているが、他の構成においては、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。本開示においては、改良されたループフィルタ、特に、改良された非ブロック化フィルタ装置が提供され、後に詳細に説明されるであろう。
復号化されている映像バッファ
映像の復号化されているビデオブロック321は、その次に、復号化されている映像バッファ330の中に格納され、その復号化されている映像バッファ330は、他の映像及び/又は出力のそれぞれの表示ためのその後の動き補償のために、基準映像として、復号化されている映像331を格納している。
デコーダ30は、ユーザへの提示又は視聴のために、例えば、出力312を介して、復号化されている映像311を出力するように構成される。
予測
フレーム内予測ユニット344は、フレーム間予測ユニット244と(特に、動き補償ユニットと)と同じであってもよく、フレーム内予測ユニット354は、機能的に、フレーム間予測ユニット254と同じであってもよく、(例えば、エントロピー復号化ユニット304によって、例えば、解析し及び/又は復号化することによって)(符号化されている映像データ21に対応する)符号化されている映像データ271から受信した区分化パラメータ及び/又は予測パラメータ或いはそれぞれの情報に基づいて、分配の決定又は区分化の決定及び予測を実行する。モード選択ユニット360は、(フィルタリングされている又はフィルタリングされていない)再構成されている映像、ブロック、又はそれぞれのサンプルに基づいて、ブロックごとに予測(フレーム内予測又はフレーム間予測)を実行して、予測ブロック365を取得するように構成されてもよい。
ビデオスライスがフレーム内コーディング(I)スライスとしてコーディングされるときに、モード選択ユニット360のフレーム内予測ユニット354は、現在の映像の以前に復号化されているブロックからのデータ及びシグナリングされているフレーム内予測モードに基づいて、現在のビデオスライスの映像ブロックのための予測ブロック365を生成するように構成される。ビデオ映像がフレーム間コーディング(すなわち、B又はP)スライスとしてコーディングされるときに、モード選択ユニット360の(例えば、動き補償ユニット等の)フレーム間予測ユニット344は、エントロピー復号化ユニット304から受信する動きベクトル及び他の構文要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロック365を生成するように構成される。フレーム間予測のために、予測ブロックは、複数の基準映像リストのうちの1つのリストの中の複数の基準映像のうちの1つから生成されてもよい。ビデオデコーダ30は、DPB330の中に格納されている基準映像に基づいてデフォルトの構築技術を使用して、基準フレームリスト、リスト0及びリスト1を構築してもよい。例えば、I、P又はBタイルグループ及び/又はタイルを使用してビデオをコーディングすることが可能であるといったように、(例えば、ビデオスライス等の)スライスに加えて又は(例えば、ビデオスライス等の)スライスの代替として、(例えば、ビデオタイルグループ等の)複数のタイルグループ及び/又は(例えば、ビデオタイル等の)複数のタイルを使用して、複数の実施形態のために又はそれらの複数の実施形態が同じこと又は同様のことを適用してもよい。
モード選択ユニット360は、動きベクトル及び他の構文要素を解析することによって、現在のビデオスライスのビデオブロックについての予測情報を決定するように構成され、その予測情報を使用して、復号化されている現在のビデオブロックについての予測ブロックを生成する。例えば、モード選択ユニット360は、複数の受信した構文要素のうちのいくつかを使用して、ビデオスライスの複数のビデオブロックをコーディングするのに使用される(例えば、フレーム内予測又はフレーム間予測等の)予測モード、(例えば、Bスライス、Pスライス、又はGPBスライス等の)フレーム間予測スライスタイプ、そのスライスのための複数の基準映像リストのうちの1つ又は複数のリストのための構築情報、そのスライスの各々のフレーム間コーディングされているビデオブロックのための動きベクトル、そのスライスの各々のフレーム間コーディングされているビデオブロックのためのフレーム間予測状態、及び現在のビデオスライスの中のビデオブロックを復号化するための他の情報を決定する。例えば、I、P又はBタイルグループ及び/又はタイルを使用してビデオをコーディングすることが可能であるといったように、(例えば、ビデオスライス等の)スライスに加えて又は(例えば、ビデオスライス等の)スライスの代替として、(例えば、ビデオタイルグループ等の)複数のタイルグループ及び/又は(例えば、ビデオタイル等の)タイルを使用して、複数の実施形態のために又はそれらの複数の実施形態が同じこと又は同様のことを適用してもよい。
図3に示されているビデオデコーダ30の複数の実施形態は、(また、ビデオスライスと称される)複数のスライスを使用することによって映像を区分化し及び/又は復号化するように構成されてもよく、映像は、(典型的には、重複していない)1つ又は複数のスライスに区分化されてもよく又はそれらの1つ又は複数のスライスを使用して復号化されてもよく、各々のスライスは、(例えば、CTU等の)1つ又は複数のブロックを含んでもよい。
図3に示されているビデオデコーダ300の複数の実施形態は、(また、ビデオタイルグループと称される)タイルグループ及び/又は(また、ビデオタイルと称される)複数のタイルを使用することによって、映像を区分化し及び/又は復号化するように構成されてもよく、映像は、(典型的には、重複していない)1つ又は複数のタイルグループに区分化されてもよく又はそれらの1つ又は複数のタイルグループを使用して復号化されてもよく、各々のタイルグループは、例えば、(例えば、CTU等の)1つ又は複数のブロック又は1つ又は複数のタイルを含んでもよく、各々のタイルは、例えば、矩形の形状であってもよく、例えば、完全なブロック又は断片的なブロック等の(例えば、CTU等の)1つ又は複数のブロックを含んでもよい。
ビデオデコーダ30の複数の他の変形を使用して、(符号化されている映像データ21に対応する)符号化されている映像データ271を復号化してもよい。例えば、デコーダ30は、ループフィルタリングユニット320を使用することなく、出力ビデオストリームを生成してもよい。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームについて、逆変換処理ユニット312を使用することなく、直接的に、残差信号を逆量子化してもよい。他の実装においては、ビデオデコーダ30は、単一のユニットに組み合わされている逆量子化ユニット310及び逆変換処理ユニット312を有してもよい。
エンコーダ20及びデコーダ30においては、現在のステップの処理結果をさらに処理し、そして、その次に、次のステップに処理結果を出力してもよいということを理解すべきである。例えば、内挿補間フィルタリング、動きベクトルの導出、又はループフィルタリングの後に、内挿補間フィルタリング、動きベクトルの導出、又はループフィルタリングの処理結果に対して、クリップ又はシフト等のさらなる操作を実行してもよい。
(これらに限定されないが、アフィンモードの制御点動きベクトル、アフィン、平面、ATMVPモードのサブブロック動きベクトル、及び時間動きベクトル等を含む)現在のブロックの導出された動きベクトルにさらなる操作を適用してもよいということに留意すべきである。例えば、動きベクトルの値は、その表現ビットにしたがって、あらかじめ定義されている範囲に制限される。動きベクトルの表現ビットが、bitDepthである場合に、その範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1となり、"^"は、指数関数を意味する。例えば、bitDepthが16に等しく設定されている場合に、その範囲は、-32768~32767であり、bitDepthが18に等しく設定されている場合に、その範囲は、-131072~131071である。例えば、(例えば、1つの8×8ブロックの中の4つの4×4サブブロックのMV等の)導出された動きベクトルの値は、それらの4つの4×4サブブロックのMVの整数部分の間の差のうちの最大差が、1ピクセル以下といったようにNピクセル以下となるように制約される。
図4は、本開示のある1つの実施形態にしたがったビデオコーディングデバイス400の概略的な図である。そのビデオコーディングデバイス400は、本明細書において説明されているように、複数の開示されている実施形態を実装するのに適している。ある1つの実施形態においては、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30等のデコーダ又は図1Aのビデオエンコーダ20等のエンコーダであってもよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410(又は、入力ポート410)及び受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(CPU)430、データを送信するための送信機ユニット(Tx)440及び出口ポート450(又は、出力ポート450)、及び、データを格納するためのメモリ460を含む。ビデオコーディングデバイス400は、また、光信号又は電気信号の出口又は入口のために、入口ポート410、受信機ユニット420、送信機ユニット440、及び出口ポート450に結合されている光電気(OE)構成要素及び電気光(EO)構成要素を含んでもよい。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ又は複数のCPUチップ、(例えば、マルチコアプロセッサ等の)コア、FPGA、ASIC、及びDSPとして実装されてもよい。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上記で説明されているように、複数の開示されている実施形態を実装する。例えば、コーディングモジュール470は、さまざまなコーディング操作を実装し、処理し、準備し、又は提供する。したがって、コーディングモジュール470を含めることは、ビデオコーディングデバイス400の機能に実質的な改善を提供し、ビデオコーディングデバイス400の異なる状態への変換をもたらす。代替的に、コーディングモジュール470は、メモリ460の中に格納されている命令として実装され、プロセッサ430によって実行される。
メモリ460は、1つ又は複数のディスク、テープドライブ、及びソリッドステートドライブを含んでもよく、オーバーフローデータ記憶デバイスとして使用されて、実行のためにプログラムを選択するときに、そのようなプログラムを格納し、そして、プログラムの実行の際に読み出される命令及びデータを格納してもよい。メモリ460は、例えば、揮発性であってもよく及び/又は不揮発性であってもよく、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値コンテンツアドレス指定可能メモリ(TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)であってもよい。
図5は、ある1つの例示的な実施形態にしたがった図1の発信元デバイス12及び宛先デバイス14のうちのいずれか又は双方として使用されてもよい装置500の簡略化されたブロック図である。
装置500の中のプロセッサ502は、中央処理ユニットであってもよい。代替的に、プロセッサ502は、情報を操作し又は処理することが可能であるとともに、現時点で存在する又はのちに開発されるいずれかの他のタイプのデバイス又は複数のデバイスであってもよい。開示されている実装は、示されているように、例えば、プロセッサ502等の単一のプロセッサを使用して実現されてもよいが、1つよりも多くのプロセッサを使用して、速度及び効率における利点を達成してもよい。
装置500の中のメモリ504は、ある1つの実装においては、読み取り専用メモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスであってもよい。メモリ504として、いずれかの他の適切なタイプの記憶デバイスを使用してもよい。メモリ504は、プロセッサ502がバス512を使用してアクセスするコード及びデータ506を含んでもよい。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510をさらに含んでもよく、アプリケーションプログラム510は、少なくとも1つのプログラムを含み、それらの少なくとも1つのプログラムは、プロセッサ502が本明細書において説明されている方法を実行するのを可能とする。例えば、アプリケーションプログラム510は、アプリケーション1乃至Nを含んでもよく、それらのアプリケーション1乃至Nは、本明細書において説明されている方法を実行するビデオコーディングアプリケーションをさらに含む。
装置500は、また、ディスプレイ518等の1つ又は複数の出力デバイスを含んでもよい。ディスプレイ518は、ある1つの例では、タッチ入力を検知するように動作可能であるタッチセンシティブ要素とディスプレイを組み合わせるタッチセンシティブディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合されてもよい。
本明細書においては、単一のバスとして示されているが、装置500のバス512は、複数のバスから構成されてもよい。さらに、二次記憶装置514は、装置500の他の構成要素に直接的に結合されてもよく、或いは、ネットワークを介してアクセスされてもよく、メモリカード等の単一の集積されているユニット又は複数のメモリカード等の複数のユニットを含んでもよい。このようにして、装置500は、多種多様な構成で実装されてもよい。
組み合わせフレーム間フレーム内予測(CIIP)
従来、コーディングユニットは、フレーム内予測(すなわち、同じ映像の中の基準サンプルを使用する)又はフレーム間予測(すなわち、複数の他の映像の中の基準サンプルを使用する)のうちのいずれかである。組み合わせフレーム間フレーム内予測は、これらの2つの予測アプローチを組み合わせたものである。したがって、その予測アプローチは、また、組み合わせフレーム間フレーム内予測(CIIP)と呼ばれることがある。組み合わせフレーム間フレーム内予測を有効化しているときに、フレーム内予測されたサンプル及びフレーム間予測されたサンプルに重みを適用し、重み付け平均サンプルとして最終的な予測を導出する。
フラグ、CIIPフラグは、組み合わせフレーム間フレーム内予測がブロックに適用される時点を示すのに使用される。
サブブロック変換(SBT)コーディングツールは、2つの変換ブロックへとフレーム間予測ブロック(すなわち、フレーム間予測モードでコーディングされる現在のコーディングブロックの略称であるフレーム間コーディングブロック)を区分化し(すなわち、分配し又は分割し)、それらの変換ブロックのうちの一方についてのみ変換を実行するが、他方については変換を実行しない。それらの2つの変換ブロックは、対称(すなわち、2つの同じサイズの変換ブロック)であってもよく又は非対称(すなわち、例えば、同じ幅を有するが1:3の高さを有する2つの変換ブロック、又は、例えば、同じ高さを有するが1:3の幅を有する2つの変換ブロック)であってもよい。そのような部分的な変換は、それらの2つの変換ブロックの間の境界に沿ったブロックアーティファクトを生じる場合がある。一方で、SBTを有効化しているときに主観的品質を損なう従来技術においては、それらの境界をフィルタリングすることは考慮されていない。
SBTが引き起こす変換ブロック境界のブロックアーティファクトを減少させるために、改良したフィルタリングプロセスが提案される。フィルタリングすることを考慮されるであろうそれらの境界を検出するときに、SBTが引き起こす複数の変換ブロックの間の内部境界を考慮する。さらに、従来技術は、8×8グリッドと重複する境界のみを考慮する。本発明においては、非対称区分化(すなわち、分配又は分割)を適用するときに、SBT内部境界が8×8グリッドと整列していない場合であっても、その内部境界は、フィルタリング候補として考慮されるであろう。また、SBT内部境界をもフィルタリングすることによって、SBTが引き起こすブロックアーティファクトを減少させる。
図6に示されているように、さらに、CIIPを適用されるブロック600をいくつかのサブブロックへと分割してもよい。図6においては、CUの中のサブブロック境界のすべては、組み合わせフレーム間フレーム内予測(CIIP)を適用される。ある1つの例においては、そのサブブロック601は、水平方向にブロックを分割することによって導き出され、各々のサブブロックは、元のブロックと同じ幅を有するが、高さは、元のブロックの高さの1/4となる。
ある1つの例においては、そのサブブロック602は、鉛直方向にブロックを分割することによって導き出され、各々のサブブロックは、元のブロックと同じ高さを有するが、幅は、元のブロックの幅の1/4となる。図6に示されている例においては、鉛直区分602による細区分化及び対応する境界をラベル付けする。ここでは、フレーム内ブロック600は、sub0、sub1、sub2、及びsub3の4つの細区分に分割される。3つの細区分化境界、すなわち、細区分0と細区分1との間の細区分化境界A、細区分1と細区分2との間の細区分化境界B、及び細区分2と細区分3との間の細区分化境界Cがラベル付けされ、同様の定義は、水平区分601の例において使用されてもよい。
ブロッキングアーティファクトは、通常、より多くの残差信号を有するフレーム内予測に伴う結果を引き起こすので、CIIP予測に起因して、ブロッキングアーティファクトを取り込む場合がある。それらのブロッキングアーティファクトは、CIIPブロックの境界においてのみならず、図6におけるCIIPブロックの内側の鉛直サブブロックエッジA、B、C等のサブブロックエッジにおいても生起する。上記の場合に対応して、水平サブブロックエッジを識別することが可能である。
ブロックアーティファクトは、CIIP境界及びCIIPブロックの内側のサブブロックエッジの双方において発生する場合があるが、それらの2つの境界が引き起こす歪みは、異なっている場合があり、異なる境界強度が必要となる場合がある。
例えば、CIIPブロックのフレーム内予測モードが水平モードであり、図6に示されている鉛直区分が適用される場合に、CIIPそれ自体が複数のサブブロックエッジを生じさせる場合があり、3つのサブブロックが生成される。
図7に示されているように、ブロックアーティファクトを減少させるために、コーディングブロック700のサブブロック701への水平方向の区分化の後に、又は、コーディングブロック700のサブブロック702への鉛直方向の区分化の後に、サブブロック境界は、非ブロック化フィルタリングされる。図7は、組み合わせフレーム間フレーム内予測(CIIP)を適用されるCUの中のサブブロックエッジのすべての非ブロック化を示す。
図8は、ある1つの例にしたがったCUの左上のサンプルから開始していない8×8のサンプルグリッドと重複している(と整列されている)CUの中のサブブロックTU境界のすべての非ブロック化を示す。図8に示されているように、コーディングブロック800のサブブロック801への水平方向の区分化の後に、又は、コーディングブロック800のサブブロック802への鉛直方向の区分化の後に、8×8のサンプルグリッドと重複するサブブロック境界のみが非ブロック化され、サブブロックエッジの残りは非ブロック化されない。この非ブロック化は、わずかなエッジのみが非ブロック化されるため、計算の複雑さが減少するという利点がある。
図9は、他の代替案を示している。図9は、4×4のサンプルグリッドと重複しているCUの中のサブブロックエッジのすべての非ブロック化を示す。この場合には、コーディングブロック900のサブブロック901への水平方向の区分化の後に、又は、コーディングブロック900のサブブロック902への鉛直方向の区分化の後に、4×4のサンプルグリッドと重複しているサブブロック境界のすべてが非ブロック化される。
図10は、サブブロックサイズが非ブロック化の方向に直交して8サンプルよりも小さい場合に、決定の際に3サンプルのみを使用し、且つ、1サンプルを修正する弱いフィルタを使用することを示している。鉛直方向の区分を使用する図6の例は、Wが16サンプルである場合に、各々のサブブロックは4サンプル幅となる。この場合には、図10に示されているように、サブブロック1031とサブブロック1033との間のサブブロック境界1032に沿って最大で1つのサンプル10314又は10331のみを修正する弱いフィルタを使用してもよい。図10に示されている例においては、フィルタリングは、例えば、サブブロック1031とサブブロック1033との間のサブブロック境界1032に直交しているとともに、そのサブブロック境界1032に隣接しているサブブロック1031及び1033の各々の行において実行される。図10に示されているように、隣接ブロック1010と現在のブロック1030との間のエッジ1020に沿って最大で1つのサンプル1108又は10311のみを修正する弱いフィルタを使用してもよい。図10に示されている他の例においては、フィルタリングは、例えば、ブロック1030のサブブロック1031と隣接ブロック1010との間のエッジ1020に直交しているとともに、そのエッジ1020に隣接しているサブブロック1031又は隣接ブロック1010の各々の行において実行される。
一方で、サブブロックエッジは、また、TUサイズの制限によって引き起こされる場合がある。VTM3.0においては、最大のTUサイズは、64×64サンプルである。図11に示されているように、CU1100が128×128サンプルである場合に、CU1100は、4つのTU1101に分割され、その結果、4つのTU境界1102を生じる。最大TUサイズが64であるときに、組み合わせフレーム間フレーム内予測を使用するCUは、128×128であり、そのCUは、4つのTu1101に分割され、変換は、64×64の粒度で適用される。破線により強調されるTU境界1102を非ブロック化する必要がある。
図12は、コーディングユニット1200を示し、そのコーディングユニット1200は、CIIPを適用され、そして、さらに複数の変換ユニット1201へと分割される。破線により強調されるTU境界1202を非ブロック化する必要がある。
図13は、CU1300の左上のサンプルから開始する8×8のサンプルグリッドと重複している(整列されている)CU1300の中の複数のTU1301の間のサブブロックTU境界1302のすべての非ブロック化を図示している。
コーディングユニットの内側のTU境界
(例えば、サブブロック変換, SBT等の)特定のコーディングツールを適用するときに、図14に示されているように、複数のTU1401の間のTUエッジ1402は、CU1400の内側に生じる場合がある。コーディングユニット1400は、さらに、サブブロック変換ツールにしたがって、複数の変換ユニット1401へと分割される。そのような場合に、また、コーディングユニット1400の内側のそれらの内部TUエッジ1402を非ブロック化する必要がある場合がある。
フレーム間コーディングされているCU1400にSBTを使用するときに、ビットストリームの中で、SBTタイプ及びSBT位置情報をシグナリングにより送る。図14に示されているように、2つのSBTタイプ及び2つのSBT位置が存在する。SBT-V(又は、SBT-H)について、TU幅(又は、高さ)は、CU幅(又は、高さ)の半分に等しくてもよく又はCU幅(又は、高さ)の1/4に等しくてもよく、2:2の分配又は1:3/3:1の分配を生じてもよい。2:2の分配は、2分木(BT)分配と同様であり、一方で、1:3/3:1分配は、非対称2分木(ABT)分配と同様である。ABT分配においては、小さな領域のみが、非ゼロ残差を含む。CUのある1つの次元が、輝度サンプルで8である場合に、その次元に沿った1:3/3:1の分配は、許可されない。あるCUについて最大で8つのSBTモードが存在する。
SBT-V及びSBT-Hの場合の輝度変換ブロックに位置依存変換コア選択を適用する(彩度TBは、常に、DCT-2を使用する)。SBT-H及びSBT-Vの2つの位置は、複数の異なるコア変換と関連している。より具体的には、各々のSBT位置についての水平変換及び鉛直変換は、図14において指定されている。例えば、SBT-V位置0の場合の水平変換及び鉛直変換は、それぞれ、DCT-8及びDST-7である。残差TU1401の一方の側が32よりも大きいときに、双方の次元についての変換は、DCT-2に設定される。したがって、サブブロック変換は、TUタイリング、cbf、及び、残差ブロックの水平及び垂直コア変換タイプを共同で指定する。
変数maxSbtSizeは、SPSによってシグナリングにより送られて、SBTを適用することが可能である最大のCUサイズを指定する。VTM7基準ソフトウェアにおいては、HDシーケンス及び4Kシーケンスについて、エンコーダによってmaxSbtSizeを64に設定し、他のより小さな解像度シーケンスについては、maxSbtSizeを32に設定する。
SBTは、組み合わせフレーム間フレーム内モード又はTPMモードを使用してコーディングされるCUには適用されない。
同様に、図15は、コーディングユニット1500を示し、そのコーディングユニット1500は、さらに、サブブロック変換と同様の残差4分木(RQT)にしたがって、複数の変換ユニット1501(A、B、C)へと分割される。
この出願の残りの部分においては、
CIIPブロック: CIIP予測を適用することによって予測されるコーディングブロック;
フレーム内ブロック: CIIP予測ではなく、フレーム内予測を適用することによって予測されるコーディングブロック;
フレーム間ブロック: CIIP予測ではなく、フレーム間予測を適用することによって予測されるコーディングブロック;
の語を使用する。
非ブロック化フィルタ及び境界強度
上記で説明しているように、本発明は、特に、第1の態様及び第2の態様において、少なくとも、境界強度パラメータの値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の変換ブロック境界に対して、非ブロック化フィルタリングプロセスを実行することを含む。その境界強度パラメータは、さらに、以下の記載において、説明され及び定義される(表1を参照するものとする)。
HEVC及びVVC等のビデオコーディングスキームは、ブロックベースのハイブリッドビデオコーディングの成功を収めた原理に沿って設計されている。この原理を使用すると、映像は、最初に、複数のブロックに分割され、そして、その次に、各々のブロックは、フレーム内予測又はフレーム間予測を使用することによって予測される。それらの複数のブロックは、複数の隣接するブロックから相対的にコーディングされ、そして、ある程度の類似性を有するように、元の信号に近似させる。コーディングされているブロックは、元の信号に近似しているにすぎないので、それらの近似する信号の間の差異は、予測及び変換ブロック境界において不連続性を引き起こす場合がある。これらの不連続性は、非ブロック化フィルタによって減衰させられる。
あるブロック境界をフィルタリングするか否かの決定は、予測モード及び動きベクトル等のビットストリーム情報を使用する。複数のコーディング条件のうちのいくつかは、強力なブロックアーティファクトを生成する可能性がより高く、それらの強力なブロックアーティファクトは、いわゆる境界強度(Bs又はBS)変数によって表され、その境界強度変数は、ブロック境界ごとに割り当てられるとともに、表1のように決定される。
非ブロック化は、輝度成分については、Bs が0よりも大きなブロック境界にのみ適用され、彩度成分については、Bsが1よりも大きなブロック境界にのみ適用される。より大きな値のBsは、より大きなクリッピングパラメータ値を使用することによって、より強力なフィルタリングを可能とする。Bsの導出条件は、最も強いブロックアーティファクトが、フレーム内予測されたブロック境界に現れる確率を反映する。
通常、境界の2つの隣接するブロック1601及び1602は、図16に示されているように、P及びQという表示を付されている。図16は、鉛直方向の境界の場合を示している。水平方向の境界を考慮する場合には、時計回りに90度だけ図16を回転させる必要があり、その場合、Pは、上側に存在し、Qは、下側に存在するであろう。
本発明の第1の態様にしたがった方法は、フローチャート図17に図示されている。その方法は、画像符号化及び/又は画像復号化においてコーディングブロックの中の変換ブロック境界を非ブロック化するための非ブロック化方法であって、コーディングブロックは、フレーム間予測モードでコーディングされ、コーディングブロックは、第1の変換ブロック及び第1の変換ブロックに隣接する第2の変換ブロックを含む変換ブロックに分割され、当該方法は、第1の変換ブロックと第2の変換ブロックとの間の境界が、変換ブロック境界となっており、且つ、第1の変換ブロック及び第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度(BS)パラメータの値を決定するステップ1701と、少なくとも境界強度パラメータの値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の境界に対して非ブロック化フィルタリングプロセスを実行するさらなるステップ1702と、を含む。
本発明の第2の態様にしたがった方法は、図18のフローチャートに図示されている。その方法は、画像符号化及び/又は画像復号化においてコーディングブロックの中のブロック境界を非ブロック化するための非ブロック化方法であって、コーディングブロックは、フレーム間予測モードでコーディングされ、コーディングブロックは、第1の変換ブロック及び第1の変換ブロックに隣接する第2の変換ブロックを含む変換ブロックに分割され、当該方法は、第1の変換ブロックと第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、第1の変換ブロックと第2の変換ブロックとの間の境界が、サブブロック変換SBT境界となっており、且つ、第1の変換ブロック及び第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度パラメータの値を決定するステップ1801と、少なくとも境界強度パラメータの値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行するステップ1802と、を含む。
図19は、第3の態様にしたがったデバイスを図示している。そのデバイス1900は、コーディングブロックの中の変換ブロック境界を非ブロック化するように構成される非ブロック化フィルタ1901を含み、(コーディングブロックは、フレーム間予測プロセスの際に、複数の変換ブロックに分割され(分配され)、例えば、サブブロック変換を有効化しているときに、現在のコーディングユニットは、2つの変換ユニットに分割されるといったように)コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)、コーディングブロックは、複数の変換ブロックを含み、それらの複数の変換ブロックは、第1の変換ブロック及び第1の変換ブロックに隣接する第2の変換ブロックを含む。非ブロック化フィルタ1901は、第1の変換ブロックと第2の変換ブロックとの間の境界が、変換ブロック境界となっており、且つ、第1の変換ブロック及び第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度パラメータの値を決定するように構成される決定モジュール1902と、少なくとも境界強度パラメータの第1の値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の境界に対して非ブロック化フィルタリングプロセスを実行するように構成される非ブロック化フィルタリングモジュール1903と、を含む。
ある1つの例では、非ブロック化フィルタ1901は、図2のループフィルタ220に対応していてもよい。他の例では、非ブロック化フィルタ1901は、図3のループフィルタ320に対応していてもよい。対応して、ある1つの例では、デバイス1900の例示的な構成は、図2におけるエンコーダ200に対応していてもよい。他の例では、デバイス1900の例示的な構成は、図3のデコーダ300に対応していてもよい。
図20は、第4の態様にしたがったデバイスを図示している。そのデバイス2000は、コーディングブロック(コーディングユニット)の中のブロック境界を非ブロック化するように構成される非ブロック化フィルタ2001を含み、コーディングブロックは、フレーム間予測モードでコーディングされ(予測され)(特に、コーディングブロックは、サブブロック変換SBTモードでコーディングされ)、(例えば、サブブロック変換を有効化しているときに、現在のコーディングユニットは、2つ又はそれよりも多くの変換ユニットに分割されるといったように、フレーム間予測されるコーディングブロックは、フレーム間予測プロセスにおいて、複数の変換ブロックに分割され(分配され))(例えば、変換ブロックは、鉛直方向又は水平方向において隣接するp0及びq0を含むといったように)コーディングブロックは、第1の変換ブロック及び第1の変換ブロックに隣接する第2の変換ブロックを含む。非ブロック化フィルタ2001は、(例えば、第1の変換ブロックと第2の変換ブロックとの間の変換ブロック境界をフィルタリングする必要があるという決定に応答して、といったように、第1の変換ブロックと第2の変換ブロックとの間の境界が、サブブロック変換SBT境界となっており、且つ、第1の変換ブロック及び第2の変換ブロックのうちの少なくとも1つが、1つ又は複数の非ゼロ変換係数を有するときに、第1の値となるように第1の変換ブロックと第2の変換ブロックとの間の境界についての境界強度パラメータの値を決定するように構成される決定モジュール2002と、少なくとも、境界強度パラメータの値に基づいて、第1の変換ブロックと第2の変換ブロックとの間の変換ブロック境界に対して非ブロック化フィルタリングプロセスを実行するように構成される非ブロック化モジュール2003と、を含む。
ある1つの例では、非ブロック化フィルタ2001は、図2のループフィルタ220に対応していてもよい。他の例では、非ブロック化フィルタ2001は、図3のループフィルタ320に対応していてもよい。対応して、ある1つの例では、デバイス2000の例示的な構成は、図2のエンコーダ200に対応していてもよい。他の例では、デバイス2000の例示的な構成は、図3のデコーダ300に対応していてもよい。
参考文献 多目的ビデオコーディング(Draft 3)は、VVC Draft 3.0として定義され、リンク:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v13.zip
を介して発見することが可能である。
ある1つの例では、VVC Draft 3.0 v9の8.6.2.5によれば、
8.6.2.5 境界フィルタリング強度の導出プロセス
このプロセスへの入力は、
- 映像サンプル配列recPicture、
- 現在の映像の左上のサンプルに対する現在のコーディングブロックの左上のサンプルを指定する位置(xCb,yCb)、
- 現在のコーディングブロックの幅を指定する変数nCbW、
- 現在のコーディングブロックの高さを指定する変数nCbH、
- 鉛直(EDGE_VER)エッジをフィルタリングするか又は水平エッジ(EDGE_HOR)をフィルタリングするかを指定する変数edgeType、
- 2次元(nCbW)×(nCbH)配列のedgeFlags、
である。
このプロセスの出力は、境界フィルタリング強度を指定する2次元(nCbW)×(nCbH)配列bSである。
変数xDi、yDj、xN、yNは、
- edgeTypeがEDGE_VERに等しい場合に、xDiは、(i<<3)に設定され、yDjは、(j<<2)に設定され、xNは、Max(0,(nCbW/8)-1)に設定され、yNは、(nCbH/4)-1に設定される、
- それ以外の場合(edgeTypeが、EDGE_HORに等しい場合)には、xDiは、(i<<2)に設定され、yDjは、(j<<3)に設定され、xNは、(nCbW/4)-1に設定され、yNは、Max(0,(nCbH/8)-1)に設定される、
として導き出される。
xDi(i=0…xN)及びyDj(j=0…yN)については、
- edgeFlags[xDi][yDj]が0である場合には、変数bS[xDi][yDj]は、0に設定される、
という導出プロセスが適用される。
- それ以外の場合には、以下のようになる。
- サンプル値p0及びq0は、
- edgeTypeがEDGE_VERに等しい場合には、p0は、recPicture [xCb+xDi-1][yCb+yDj]に設定され、q0は、recPicture [xCb+xDi][yCb+yDj]に設定される、
- それ以外の場合(edgeTypeが、EDGE_HORに等しい場合)には、p0は、recPicture [xCb+xDi][yCb+yDj-1]に設定され、q0は、recPicture [xCb+xDi][yCb+yDj]に設定される、
として導き出される。
- 変数bS[xDi][yDj]は、以下のように導き出される。
- サンプルp0又はq0が、フレーム内予測モードを使用してコーディングされるコーディングユニットのコーディングブロックの中に存在する場合に、bS[xDi][yDj]は、2に設定される。
- それ以外の場合で、ブロックエッジが、また、変換ブロックエッジとなっており、サンプルp0又はq0が、1つ又は複数の非ゼロ変換係数レベルを含む変換ブロックの中に存在する場合に、bS[xDi][yDj]は、1に設定される。
- それ以外の場合で、以下の条件のうちの1つ又は複数が真である場合に、bS[xDi][yDj]
は、1に設定される。
- サンプルp0を含むコーディングサブブロックの予測については、サンプルq0を含むコーディングサブブロックの予測のための基準映像又は動きベクトとは異なる基準映像又は異なる数の動きベクトルを使用する。
注1 - 2つのコーディングサブロックのために使用される基準映像が同じであるか又は異なっているかの決定は、予測が、基準映像リスト0へのインデックスを使用して形成されるか、又は、基準映像リスト1へのインデックスを使用して形成されるかに関係なく、また、基準映像リストの中のインデックス位置が異なるか否かに関係なく、いずれの画像が参照されるかにのみ基づいている。
注2 - (xSb,ySb)を占める左上のサンプル有するコーディングサブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
- ある1つの動きベクトルを使用して、サンプルp0を含むコーディングサブブロックを予測し、ある1つの動きベクトルを使用して、サンプルq0を含むコーディングサブブロックを予測し、それらの使用されている動きベクトルの水平成分又は鉛直成分の間の絶対差は、1/4輝度サンプルの単位で4以上である。
- サンプルp0を含むコーディングサブブロックを予測するのに、2つの動きベクトル及び2つの異なる基準映像を使用し、サンプルq0を含むコーディングサブブロックを予測するのに、同じ2つの基準映像についての2つの動きベクトルを使用し、同じ基準映像についてのそれらの2つのコーディングサブブロックの予測に使用される2つの動きベクトルの水平成分又は鉛直成分の間の絶対差は、1/4輝度のサンプルの単位で4以上である。
- サンプルp0を含むコーディングサブブロックを予測するのに同じ基準映像の2つの動きベクトルを使用し、サンプルq0を含むコーディングサブブロックを予測するのに同じ基準映像の2つの動きベクトルを使用し、以下の条件の双方が真である。
- 2つのコーディングサブブロックの予測に使用されるリスト0動きベクトルの水平成分又は鉛直成分の間の絶対差は、1/4輝度サンプルで4以上であり、又は、2つのコーディングサブブロックの予測に使用されるリスト1動きベクトルの水平成分又は鉛直成分の間の絶対差は、1/4輝度サンプルで4以上である。
- サンプルp0を含むコーディングサブブロックの予測に使用されるリスト0動きベクトルの水平成分又は鉛直成分と、サンプルq0を含むコーディングサブブロックの予測に使用されるリスト1動きベクトルの水平成分又は鉛直成分との間の絶対差は、1/4輝度サンプルの単位で4以上であり、又は、サンプルp0を含むコーディングサブブロックの予測に使用されるリスト1動きベクトルの水平成分又は鉛直成分と、サンプルq0を含むコーディングサブブロックの予測に使用されるリスト0動きベクトルの水平成分又は鉛直成分との間の絶対差は、1/4輝度サンプルの単位で4以上である。
- それ以外の場合に、変数bS[xDi][yDj]は、0に設定される。
さらに、VVC文書は、以下のように"コーディング木意味論"及び"サブブロック変換(SBT)"に言及している。
7.4.9.4 コーディング木意味論
…
…
1に等しいcu_sbt_flagは、現在のコーディングユニットについて、サブブロック変換を使用するということを指定する。0に等しいcu_sbt_flagは、現在のコーディングユニットについて、サブブロック変換を使用しないということを指定する。
cu_sbt_flagが存在しないときは、その値は、0に等しいと推定される。
注記 - サブブロック変換を使用するときに、コーディングユニットは、2つの変換ユニットに分割され、一方の変換ユニットは、残差データを有し、他方の変換ユニットは、残差データを有さない。
1に等しいcu_sbt_horizontal_flagは、2つの変換ユニットへと現在のコーディングユニットを水平方向に分割するということを指定する。0に等しいcu_sbt_horizontal_flag[x0][y0]は、2つの変換ユニットへと現在のコーディングユニットを鉛直方向に分割するということを指定する。
この出願のある1つの実施形態によれば、CUが複数のサブブロックに分割され、且つ、変換がサブブロックの粒度で適用される場合には、CUの内側のサブブロックTU境界を非ブロック化する必要がある。この実施形態は、適切な手法により、CUの内側のサブブロックTU境界を非ブロック化することを提案する。
この実施形態においては、図16に示されているように両側を有する境界(各々の側にある空間的に隣接する複数のブロックは、ブロックP及びブロックQとして示される)について、境界強度は以下のように導き出される。
● ブロックP及びQの双方が同じCUの中に存在し、ブロックPとブロックQとの間の境界がサブブロックTU境界となっている場合には、図14又は図15に示されているように、その境界の境界強度パラメータは、以下の条件にしたがって設定される。
■ 隣接するブロックP及びQのうちの少なくとも1つが少なくとも1つの非ゼロ変換係数を有する場合に、その境界の境界強度パラメータは、例えば、1のような非ゼロ値に設定される。
■ それ以外の場合で、ブロックP及びQの双方が非ゼロ変換係数を有していない場合に、この境界の境界強度パラメータは、0に設定される。
● それ以外の場合には、境界強度は、上記の例、すなわち、VVC Draft 3.0 v9の8.6.2.5節において定義されている境界強度導出プロセスのように導き出される。
● ブロックQ及びブロックPの中に含まれるピクセルサンプルは、決定された境界強度にしたがって、非ブロック化フィルタを適用してフィルタリングされる。
ある1つの例では、サブブロックTU境界が、N×Mグリッドと整列されているときに、上記の実施形態において定義されているように、それらのサブブロックTU境界は、非ブロック化される。ある1つの例では、Nは8であり、Mは8である。他の例では、Nは4であり、Mは4である。それ以外の場合(それらのサブブロックTU境界がN×Mグリッドと整列していない場合)には、それらのサブブロックTU境界は非ブロック化されない。
ある1つの例では、その左上の位置が(図13に示されているように)8×8グリッドと整列されていないCUの場合には、上記の実施形態において定義されているように、その8×8グリッドと整列されているサブブロックTU境界は、非ブロック化される。それ以外の場合(それらのサブブロックTU境界は、8×8グリッドとは整列されていない場合)には、それらのサブブロックTU境界は、非ブロック化されない。
ある1つの例では、(図13に示されているように)その左上の位置が8×8グリッドと整列されているCUについて、上記の実施形態において定義されているように、その8×8グリッドと整列されているサブブロックTU境界は、非ブロック化される。それ以外の場合(それらのサブブロックTU境界は、8×8グリッドとは整列されていない場合)には、それらのサブブロックTU境界は、非ブロック化されない。
ある1つの例では、上記の実施形態で定義されているように、サブブロックTU境界の位置にかかわらず、CUの内側のサブブロックTU境界のすべては、非ブロック化される。
本発明は、以下のさらなる実施形態を提供する。
コーディング方法であって、コーディングは、復号化又は符号化を含み、当該方法は、第1のサブブロック及び第2のサブブロックを含む少なくとも2つのサブブロックへと、コーディングユニット又はコーディングブロックを分割するステップと、第1のサブブロックと第2のサブブロックとの間の境界が、サブブロック変換ユニットの境界と整列されているときに、第1のサブブロックの1つ又は複数の変換係数又は第2のサブブロックの1つ又は複数の変換係数にしたがって、第1のサブブロックと第2のサブブロックとの間の境界に対応する境界強度パラメータの値を設定するステップと、を含み、第1のサブブロック及び第2のサブブロックは、変換ブロックである、コーディング方法。
コーディングユニット又はコーディングブロックは、水平方向に又は鉛直方向に分割されてもよい。
第1のサブブロックの1つ又は複数の変換係数の値が0に等しくないときに、又は、第2のサブブロックの1つ又は複数の変換係数の値が0に等しくないときに、境界強度パラメータの値は、第1の値に設定されてもよい。第1の値は、0に等しくなくてもよく、特に、第1の値は、1又は2であってもよい。
第1のサブブロックの変換係数のすべての値が0に等しく、且つ、第2のサブブロックの変換係数のすべての値が0に等しいときに、境界強度パラメータの値は、第2の値に設定されてもよい。第2の値は、0であってもよい。
エンコーダ(20)は、上記の方法を実行するための処理回路を含んでもよい。デコーダ(30)は、上記の方法を実行するための処理回路を含んでもよい。
コンピュータプログラムは、上記の方法を実行するためのプログラムコードを含んでもよい。
ある1つの態様によれば、デコーダは、1つ又は複数のプロセッサ、及び、それらのプロセッサに結合されて、それらのプロセッサによる実行のためにプログラミングを格納する非一時的な且つコンピュータ読み取り可能な記憶媒体を含んでもよく、それらのプロセッサが実行するときに、プログラミングは、上記で説明されている方法を実行するように当該デコーダを構成する。
ある1つの態様によれば、エンコーダは、1つ又は複数のプロセッサ、及び、それらのプロセッサに結合されて、それらのプロセッサによる実行のためにプログラミングを格納する非一時的な且つコンピュータ読み取り可能な記憶媒体を含んでもよく、それらのプロセッサが実行するときに、プログラミングは、上記で説明されている方法を実行するように当該エンコーダを構成する。
以下の記載は、上記で言及されている複数の実施形態によって示されている符号化方法とともに復号化方法及びそれらを使用するシステムの複数の適用例の説明である。
図21は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉デバイス3102及び端末デバイス3106を含み、随意的に、ディスプレイ3126を含む。捕捉デバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。その通信リンクは、上記で説明されている通信チャネル13を含んでもよい。通信リンク3104は、これらには限定されないが、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB、又はそれらのいずれかの種類の組み合わせ等を含む。
捕捉デバイス3102は、データを生成し、そして、上記の複数の実施形態によって示されている符号化方法によってデータを符号化してもよい。代替的に、捕捉デバイス3102は、(図には示されていない)ストリーミングサーバにデータを配信してもよく、そのサーバは、そのデータを符号化し、そして、端末デバイス3106にその符号化されているデータを送信する。捕捉デバイス3102は、これらには限定されないが、カメラ、スマートフォン又はPad、コンピュータ又はラップトップ、ビデオ会議システム、PDA、車載型デバイス、又はそれらのいずれかの組み合わせ等を含む。例えば、捕捉デバイス3102は、上記で説明されている発信元デバイス12を含んでもよい。データがビデオを含むときに、捕捉デバイス3102の中に含まれるビデオエンコーダ20は、実際に、ビデオ符号化処理を実行してもよい。データがオーディオ(すなわち、音声)を含むときに、捕捉デバイス3102の中に含まれるオーディオエンコーダは、実際に、オーディオ符号化処理を実行してもよい。いくつかの実際上のシナリオの場合には、捕捉デバイス3102は、それらを一体として多重化することによって、符号化されているビデオ及びオーディオデータを配信する。他の実際上のシナリオの場合には、例えば、ビデオ会議システムにおいては、符号化されているオーディオデータ及び符号化されているビデオデータは、多重化されない。捕捉デバイス3102は、端末デバイス3106に、符号化されているオーディオデータ及び符号化されているビデオデータを個別に配信する。
コンテンツ供給システム3100において、端末デバイス3106は、符号化されているデータを受信し及び再生する。端末デバイス3106は、上記で言及されている符号化されたデータを復号化することが可能であるスマートフォン又はPad3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(NVR)/ディジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルディジタルアシスタント(PDA)3122、車載型デバイス3124、又はこれらのいずれかの組み合わせ等のデータ受信能力及び復号能力を有するデバイスであってもよい。例えば、端末デバイス3106は、上記で説明されている宛先デバイス14を含んでもよい。符号化されているデータがビデオを含むときは、端末デバイスの中に含まれるビデオデコーダ30は、ビデオ復号化を実行するために優先される。符号化されているデータがオーディオを含むときは、端末デバイスの中に含まれるオーディオデコーダは、オーディオ復号化処理を実行するために優先される。
例えば、スマートフォン又はPad3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(NVR)/ディジタルビデオレコーダ(DVR)3112、TV3114、パーソナルディジタルアシスタント(PDA)3122、又は車載型デバイス3124等の自身のディスプレイを有する端末デバイスの場合には、その端末デバイスは、自身のディスプレイへとその復号化されているデータを供給してもよい。例えば、STB 3116、ビデオ会議システム3118、又はビデオ監視システム3120等のディスプレイを装備していない端末デバイスの場合には、外部ディスプレイ3126に連絡を取って、その端末デバイスにおいてその復号化されているデータを受信し及び示す。
このシステムにおける各々のデバイスが符号化又は復号化を実行するときに、上記で言及されている複数の実施形態に示されている映像符号化デバイス又は映像復号化デバイスを使用してもよい。
図22は、端末デバイス3106のある1つの例の構成を示す図である。端末デバイス3106が、捕捉デバイス3102からのストリームを受信した後に、プロトコル処理ユニット3202は、そのストリームの送信プロトコルを分析する。そのプロトコルは、これらには限定されないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージプロトコル(RTMP)、又はそれらのいずれかの種類の組み合わせ等を含む。
プロトコル処理ユニット3202がそのストリームを処理した後に、ストリームファイルを生成する。そのファイルは、逆多重化ユニット3204に出力される。その逆多重化ユニット3204は、その多重化されているデータを分離して、符号化されているオーディオデータ及び符号化されているビデオデータとしてもよい。上記で説明しているように、複数の実際上のシナリオのうちのいくつかの場合に、例えば、ビデオ会議システムにおいては、符号化されているオーディオデータ及び符号化されているビデオデータは、多重化されない。この状況においては、符号化されているデータは、逆多重化ユニット3204を経由せずに、ビデオデコーダ3206及びオーディオデコーダ3208に送信される。
逆多重化処理によって、ビデオ要素のストリーム(ES)、オーディオES、及び随意的に字幕を生成する。上記で言及されている複数の実施形態において説明されているように、ビデオデコーダ30を含むビデオデコーダ3206は、上記で言及されている複数の実施形態に示されているように、復号化方法によってビデオESを復号化して、ビデオフレームを生成し、そして、同期ユニット3212にこのデータを供給する。オーディオデコーダ3208は、オーディオESを復号化して、オーディオフレームを生成し、そして、同期ユニット3212にこのデータを供給する。代替的に、同期ユニット3212にビデオフレームを供給する前に、(図22には示されていない)バッファの中にそのビデオフレームを格納してもよい。同様に、同期ユニット3212にオーディオフレームを供給する前に、(図22には示されていない)バッファの中にそのオーディオフレームを格納してもよい。
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期させ、そして、ビデオ/オーディオディスプレイ3214にビデオ/オーディオを供給する。例えば、同期ユニット3212は、ビデオ情報及びオーディオ情報の提示を同期させる。情報は、コーディングされているオーディオデータ及び視覚的データの提示に関するタイムスタンプとデータストリームそれ自体の配信に関するタイムスタンプとを使用して、構文にしたがってコーディングされてもよい。
字幕がストリームの中に含まれている場合に、字幕デコーダ3210は、その字幕を復号化し、ビデオフレーム及びオーディオフレームと、復号化した字幕を同期させ、そして、ビデオ/オーディオ/字幕ディスプレイ3216へとビデオ/オーディオ/字幕を供給する。
本発明は、上記で言及されているシステムには限定されず、例えば、車両システム等の他のシステムに、上記で言及されている複数の実施形態における映像符号化デバイス又は映像復号化デバイスのうちのいずれかを組み込んでもよい。
本発明は、本明細書においてさまざまな実施形態と関連して説明されてきた。しかしながら、開示されている複数の実施形態への他の変形は、図面、開示、及び添付の請求の範囲を検討することにより、請求項に記載されている発明を実用化する際に当業者によって理解されそして達成されてもよい。それらの請求項において、"含む"の語は、他の要素又はステップを除外するものではなく、また、不定冠詞"a"又は"an"は、複数を除外するものではない。単一のプロセッサ又は他のユニットは、それらの請求項に記載されているいくつかの項目の機能を実現させることが可能である。複数の手段が複数の異なる従属請求項に記載されているという単なる事実は、通常は、利益をもたらすのにそれらの複数の手段の組み合わせを使用することが不可能であるということを示すものではない。コンピュータプログラムは、他のハードウェアと共に又は他のハードウェアの一部として供給される光記憶媒体又は固体媒体等の適切な媒体に格納され/分配されてもよく、また、インターネット又は他の有線の又は無線の通信システムを介してといったように他の形態で分配されてもよい。
当業者は、さまざまな図面の(方法及び装置の)"ブロック"("ユニット")が、(必ずしもハードウェア又はソフトウェアにおける個々の"ユニット"ではなく)本発明の複数の実施形態の機能を表現し又は説明し、したがって、装置の実施形態のみならず方法の実施形態の機能又は特徴を同様に説明している(ユニット=ステップ)ということを理解するであろう。
"ユニット"の語は、エンコーダ/デコーダの複数の実施形態の機能の説明の目的のために使用されるにすぎず、本開示を限定することを意図してはいはない。
この出願によって提供される複数の実施形態のうちのいくつかにおいては、他の方式によって、それらの開示されているシステム、装置、及び方法を実装してもよいということを理解すべきである。例えば、説明されている装置の実施形態は、例示的なものであるにすぎない。例えば、ユニットの分割は、論理的な機能の分割であるにすぎず、実際の実装においては他の分割であってもよい。例えば、複数のユニット又は構成要素を組み合わせ又は一体化して、他のシステムとしてもよく、或いは、いくつかの特徴を無視し又は実行しなくてもよい。加えて、いくつかのインターフェイスを使用することによって、それらの示され又は説明されている相互結合、直接結合、又は通信接続を実装してもよい。電子的な形態、機械的な形態、又は他の形態によって、複数の装置又は複数のユニットの間の間接的な結合又は通信接続を実装してもよい。
複数の個別の部分として説明される複数のユニットは、物理的に分離していてもよく又は物理的に分離していなくてもよく、また、複数のユニットとして示される複数の部分は、複数の物理的なユニットとなっていてもよく又は複数の物理的なユニットとなっていなくてもよく、1つの場所に位置していてもよく、又は、複数のネットワークユニットに分散されていてもよい。実際の要件にしたがって、それらの複数のユニットのうちの一部又はすべてを選択して、それらの複数の実施形態の複数の技術的解決方法の目的を達成してもよい。
加えて、本発明の複数の実施形態における複数の機能ユニットを一体化して、1つの処理ユニットとしてもよく、又は、それらの複数のユニットの各々は、物理的に単独で存在していてもよく、或いは、2つ又はそれ以上のユニットを一体化して、1つのユニットとしてもよい。
本発明の複数の実施形態は、主として、ビデオコーディングに基づいて説明されてきたが、コーディングシステム10、エンコーダ20、及びデコーダ30(及び対応するシステム10)の実施形態、及び、本明細書において説明されている複数の他の実施形態は、また、静止映像処理又はコーディング、すなわち、ビデオコーディングにおけるようにいずれかの先行する又は連続する映像とは無関係の個々の映像の処理又はコーディングのために構成されてもよいということに留意すべきである。一般的に、映像処理コーディングが単一の映像17に限定される場合には、フレーム間予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用可能ではない場合がある。ビデオエンコーダ20及びビデオデコーダ30の、例えば、残差算出204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、区分化262/362、フレーム内予測254/354、及び/又はループフィルタリング220、320、及びエントロピー符号化270及びエントロピー復号化304等の(また、ツール又は技術と称される)他の機能のすべては、静止映像処理のために等しく使用されてもよい。
ハードウェア、ソフトウェア、ファームウェア、又はそれらのいずれかの組み合わせによって、例えば、エンコーダ20及びデコーダ30の複数の実施形態、及び、例えば、エンコーダ20及びデコーダ30を参照して本明細書において説明されている複数の機能を実装してもよい。ソフトウェアによって実装される場合に、それらの複数の機能は、コンピュータ読み取り可能な媒体に格納されるか、1つ又は複数の命令又はコードとして通信媒体を介して送信され、そして、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な記憶媒体を含んでもよく、そのコンピュータ読み取り可能な記憶媒体は、データ記憶媒体等の有体の媒体に対応し、又は、コンピュータ読み取り可能な媒体は、通信媒体を含んでもよく、その通信媒体は、例えば、通信プロトコルにしたがって、一方の場所から他方の場所へのコンピュータプログラムの転送を容易にするいずれかの媒体を含む。このようにして、コンピュータ読み取り可能な媒体は、一般的に、(1) 非一時的である有体のコンピュータ読み取り可能な記憶媒体に対応していてもよく、又は、(2) 信号又は搬送波等の通信媒体に対応していてもよい。データ記憶媒体は、いずれかの利用可能な媒体であってもよく、そのいずれかの利用可能な媒体は、1つ又は複数のコンピュータ或いは1つ又は複数のプロセッサによってアクセスされてもよく、それらの1つ又は複数のコンピュータ或いは1つ又は複数のプロセッサは、本開示によって説明されている複数の技術の実装のための命令、コード及び/又はデータ構成を検索する。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含んでもよい。
例として、限定するものではないが、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶デバイス、フラッシュメモリ、或いは、命令又はデータ構造の形態で要求されるプログラムコードを格納するのに使用されてもよく、また、コンピュータによってアクセスされてもよい他のいずれかの媒体を含んでもよい。また、いずれの接続も、厳密にはコンピュータ読み取り可能な媒体と呼ばれる。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、ディジタル加入者線、又は、赤外線、無線、及びマイクロ波等の無線技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから命令を送信する場合に、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波等の無線技術は、媒体の定義に含まれる。一方で、コンピュータ読み取り可能な記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、むしろ、非一時的な且つ有体的な記憶媒体に関しているということを理解するべきである。本明細書において使用されている磁気ディスク及びディスクは、コンパクトディスク(CD)、レーザディスク、光ディスク、ディジタル多用途ディスク(DVD)、フロッピーディスク及びブルーレイディスクを含み、磁気ディスクは、通常、磁気的にデータを再生し、一方で、ディスクは、レーザによって光学的にデータを再生する。上記の組み合わせは、また、コンピュータ読み取り可能媒体の範囲の中に含まれるべきである。
命令は、1つ又は複数のディジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積回路又は個別論理回路等の1つ又は複数のプロセッサによって実行されてもよい。したがって、本明細書において使用されている"プロセッサ"の語は、上記の構成のうちのいずれか又は本明細書において説明されている技術の実装に適する他の構造を指してもよい。加えて、複数の態様のうちのいくつかにおいて、本明細書において説明されている機能は、符号化及び復号化のために構成される専用ハードウェア及び/又はソフトウェアモジュールの中で提供されてもよく、又は、組み合わされたコーデックの中に組み込まれてもよい。また、その技術は、1つ又は複数の回路又は論理素子によって完全に実装されてもよい。
本開示の技術は、多種多様なデバイス又は装置によって実装されてもよく、それらのデバイス又は装置は、無線ハンドセット、集積回路(IC)、又は(例えば、チップセット等の)ICのセットを含む。本開示においては、さまざまな構成要素、モジュール、又はユニットを説明して、それらの開示されている技術を実行するように構成されるデバイスの機能的側面を強調しているが、実現の際には、必ずしも、複数の異なるハードウェアユニットを必要とはしない。むしろ、上記のように、さまざまなユニットは、コーデックハードウェアユニットの中で組み合わされてもよく、或いは、適切なソフトウェア及び/又はファームウェアと共に、上記で説明されている1つ又は複数のプロセッサを含む相互運用的なハードウェアユニットの集合体によって提供されてもよい。