上記の課題を鑑みて、本発明は、従来のデブロッキングフィルタリングを改善することを目標としている。本発明は、削減された処理時間でデブロッキングフィルタリングを実行することができる画像処理デバイスを提供することを目的とする。更に、デブロッキングは、効率的かつ正確であるべきである。
本発明の実施形態は、独立請求項の特徴によって定義され、実施形態の更なる有利な実施は、従属請求項の特徴によって定義される。
本発明の第1の態様に従って、画像処理デバイスが提供される。画像処理デバイスは、ブロックコードにより符号化された画像の第1コーディングブロック及び第2コーディングブロックの間のブロックエッジをデブロッキングするために、画像符号器及び/又は画像復号器での使用を意図されている。第1コーディングブロックは、ブロックエッジに垂直なブロックサイズSAを有し、一方、第2コーディングブロックは、ブロックエッジに垂直なブロックサイズSBを有する。画像処理デバイスは、
- ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数MAを第1フィルタ出力値として変更し、
- ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数MBを第2フィルタ出力値として変更し、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数IAを第1フィルタ入力値として使用し、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数IBを第2フィルタ入力値として使用するよう構成され、ブロックエッジをフィルタ処理するフィルタを有する。そこで、IA≠IBかつMA≠MBである。
これは、ブロックエッジの2つの側を異なるように扱うことを可能にし、従って、デブロッキングが、コーディングブロックサイズと無関係に、並行して実行され得ることを確かにする。よって、デブロッキングフィルタリングのための処理時間は、大幅に削減される。
画像処理デバイスは、フィルタリング及び変更を実行するよう構成されたプロセッサを含んでよいことが留意されるべきである。
有利なことに、SA≠SBである。
これは、特に、異なるコーディングブロックサイズのブロック間のエッジが並行してデブロッキングされ得ることを確かにする。
望ましくは、画像処理デバイスは、
- 第1フィルタ決定値としての、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数DAと、
- 第2フィルタ決定値としての、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数DBと
に基づいて、ブロックエッジがフィルタ処理されるべきであるかどうか及び/又は強フィルタリング若しくは弱フィルタリングが実行されるべきかどうかを判定するよう構成される判定器を有する。
これは、どのエッジが実際にデブロッキングされるか及びどのエッジがデブロッキングされないかの非常に正確な並列判定を可能にする。
有利なことに、第1フィルタ入力値は、第1フィルタ決定値と同じである。第2フィルタ入力値は、第2フィルタ決定値と同じである。
これは、デブロッキングの効率を更に高める。
望ましくは、SA=4である場合に、フィルタは、
- IAを3に、かつ
- MAを1に
セットするよう構成される。
非常に効率的なデブロッキングが、それによって保証される。
有利なことに、SB=8である場合に、フィルタは、
- IBを4に、かつ
- MBを3又は4に
セットするよう構成される。
これは、特に正確な並列デブロッキングを確かにする。
望ましくは、SB=16である場合に、フィルタは、
- IBを8に、かつ
- MBを7又は8に
セットするよう構成される。
デブロッキング精度の更なる向上は、それによって達成される。
有利なことに、SB>4である場合に、フィルタは、
- IBをSB/2に、かつ
- MBをSB/2又はSB/2-1に
セットするよう構成される。
特に効率的なデブロッキングが、それによって可能である。
望ましくは、SA=8である場合に、フィルタは、
- IAをSA/2に、かつ
- MAをSA/2又はSA/2-1に
セットするよう構成される。
デブロッキング効率及び精度の更なる向上は、それによって達成される。
望ましくは、SB>8である場合に、フィルタは、
- IBをSB/2に、かつ
- MBをSB/2又はSB/2-1に
セットするよう構成される。
これは、デブロッキングの効率及び精度を更に高める。
有利なことに、ブロックエッジが水平ブロックエッジである場合、及びブロックエッジが画像のコーディング・ツリー・ユニット,CTU,ブロックエッジと重なり合う場合、及び第2コーディングブロックが現在のブロックでありかつ第1コーディングブロックがその現在のブロックの隣接ブロックである場合、フィルタは、
- IAを4に、かつ
- MAを3又は4に
セットするよう構成される。
これは、水平コーディングユニットエッジでデブロッキングを実行するために必要な前のコーディングユニットのピクセル値を保持するために必要とされるラインメモリを大いに減らす。
本発明の第2の態様に従って、上記の画像処理デバイスを有する、画像を符号化する符号器が、提供される。
これは、画像の非常に効率的かつ正確な符号化を可能にする。
本発明の第3の態様に従って、上記の画像処理デバイスを有する、画像を復号する復号器が、提供される。
これは、画像の特に正確かつ効率的な復号化を可能にする。
本発明の第4の態様に従って、画像符号化及び/又は画像復号化において、ブロックコードにより符号化された画像の第1コーディングブロック及び第2コーディングブロックの間のブロックエッジをデブロッキングするデブロッキング方法が、提供される。第1コーディングブロックは、ブロックエッジに垂直なブロックサイズSAを有する。第2コーディングブロックは、ブロックエッジに垂直なブロックサイズSBを有する。復号化は、
- ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数MAを第1フィルタ出力値として変更することと、
- ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数MBを第2フィルタ出力値として変更することと、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数IAを第1フィルタ入力値として使用することと、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数IBを第2フィルタ入力値として使用することと
を有するフィルタリングを有する。そこで、IA≠IBかつMA≠MBである。
これは、特に正確かつ効率的なデブロッキングを可能にする。
有利なことに、SA≠SBである。
これは、特に、異なるコーディングブロックサイズのブロック間のエッジが並行してデブロッキングされ得ることを確かにする。
望ましくは、方法は、
- 第1フィルタ決定値としての、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数DAと、
- 第2フィルタ決定値としての、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数DBと
に基づいて、ブロックエッジがフィルタ処理されるべきであるかどうか及び/又は強フィルタリング若しくは弱フィルタリングが実行されるべきかどうかを判定することを有する。
これは、どのエッジが実際にデブロッキングされるか及びどのエッジがデブロッキングされないかの非常に正確な並列判定を可能にする。
有利なことに、第1フィルタ入力値は、第1フィルタ決定値と同じである。第2フィルタ入力値は、第2フィルタ決定値と同じである。
これは、デブロッキングの効率を更に高める。
望ましくは、SA=4である場合に、フィルタリングは、
- IA=3、及び
- MA=1
を使用する。
非常に効率的なデブロッキングが、それによって保証される。
有利なことに、SB=8である場合に、フィルタリングは、
- IB=4、及び
- MB=3又は4
を使用する。
これは、特に正確な並列デブロッキングを確かにする。
望ましくは、SB=16である場合に、フィルタリングは、
- IB=8、及び
- MB=7又は8
を使用する。
デブロッキング精度の更なる向上は、それによって達成される。
有利なことに、SB>4である場合に、フィルタリングは、
- IB=SB/2、及び
- MB=SB/2又はSB/2-1
を使用する。
特に効率的なデブロッキングが、それによって可能である。
望ましくは、SA=8である場合に、フィルタリングは、
- IA=SA/2、及び
- MA=SA/2又はSA/2-1
を使用する。
デブロッキング効率及び精度の更なる向上は、それによって達成される。
望ましくは、SB>8である場合に、フィルタリングは、
- IB=SB/2、及び
- MB=SB/2又はSB/2-1
を使用する。
これは、デブロッキングの効率及び精度を更に高める。
有利なことに、ブロックエッジが水平ブロックエッジである場合、及びブロックエッジが画像のコーディング・ツリー・ユニット,CTU,ブロックエッジと重なり合う場合、及び第2コーディングブロックが現在のブロックでありかつ第1コーディングブロックがその現在のブロックの隣接ブロックである場合、フィルタリングは、
- IA=4、及び
- MA=3又は4
を使用する。
これは、水平コーディングユニットエッジでデブロッキングを実行するために必要な前のコーディングユニットのピクセル値を保持するために必要とされるラインメモリを大いに減らす。
本発明の第5の態様に従って、上記のデブロッキング方法を有する、画像を符号化する符号化方法が、提供される。
これは、画像の非常に効率的かつ正確な符号化を可能にする。
本発明の第6の態様に従って、上記のデブロッキング方法を有する、画像を復号する復号化方法が、提供される。
これは、画像の非常に効率的かつ正確な復号化を可能にする。
本発明の第7の態様に従って、コンピュータプログラムがコンピュータで実行される場合に上記の方法を実行するプログラムコードを有するコンピュータプログラム製品が、提供される。
1つ以上の実施形態の詳細は、添付の図面及び以下の説明において示される。他の特徴、目的、及び利点は、本明細書、図面、及び特許請求の範囲から明らかである。
以下では、本発明の実施形態が、添付の図及び図面を参照して、更に詳細に記載される。
以下では、同じ参照符号は、同一の又は少なくとも機能的に同等の特徴を参照する。部分的に、同じエンティティを参照する異なる参照符号が、異なる図で使用されている。
最初に、図1~3に沿って、画像コーディングの一般概念について示す。図4に沿って、従来のデブロッキングフィルタの欠点が示される。図5~13に関して、発明の装置の異なる実施形態の構成及び機能が図示及び記載される。最後に、図14に関して、発明の方法の実施形態が図示及び記載される。異なる図中の類似したエンティティ及び参照番号は、部分的に省略されている。
以下の記載では、本開示の部分を形成し、実例として、本発明の実施形態の具体的な態様、又は本発明の実施形態が使用され得る具体的な態様を示す添付図面が、参照される。本発明の実施形態は、他の態様で使用され、図に表されていない構造上又は論理上の変更を有してよい、ことが理解される。以下の詳細な説明は、従って、限定の意味で解されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
例えば、記載される方法に関連する開示は、方法を実行するよう構成された対応するデバイス又はシステムにも当てはまり得ることがあり、その逆もしかりである、ことが理解される。例えば、1つ又は複数の具体的な方法ステップが記載される場合に、対応するデバイスは、記載されている1つ又は複数の方法ステップを実行するために1つ又は複数のユニット、例えば機能ユニット(例えば、1つ又は複数のステップを実行する1つのユニット、あるいは、複数のステップのうちの1つ以上を夫々が実行する複数のユニット)を、たとえそのような1つ以上のユニットが図中に明示的に記載又は図示されていないとしても、含んでよい。他方で、例えば、具体的な装置が1つ又は複数のユニット、例えば機能ユニットに基づき記載される場合に、対応する方法は、1つ又は複数のユニットの機能を実行するために1つ又は複数のステップ(例えば、1つ又は複数のユニットの機能を実行する1つのステップ、あるいは、複数のユニットのうちの1つ以上の機能を夫々が実行する複数のステップ)を、たとえそのような1つ又は複数のステップが図中に明示的に記載又は図示されていないとしても、含んでよい。更に、ここで記載される様々な例となる実施形態及び/又は態様の特徴は、特段別なふうに述べられない限りは、互いに組み合わされてよい、ことが理解される。
ビデオコーディングは、通常、ビデオ又はビデオシーケンスを形成するピクチャの連続の処理を指す。ピクチャという語の代わりに、フレーム又は画像という語が、ビデオコーディングの分野では同義語として使用されることがある。ビデオコーディングは、2つの部分、ビデオ符号化及びビデオ復号化、を有する。ビデオ符号化は、ソース側で実行され、通常は、ビデオピクチャを表すために必要とされるデータの量を(より効率的な記憶及び/又は伝送のために)減らすよう元のビデオピクチャを(例えば、圧縮によって)処理することを有する。ビデオ復号化は、あて先側で実行され、通常は、ビデオピクチャを再構成するよう符号器と比較して逆の処理を有する。ビデオピクチャ(又は、後述されるように、ピクチャ全般)の“コーディング”に言及する実施形態は、ビデオピクチャの“符号化”及び“復号化”の両方に関係がある、と理解されるべきである。符号化部分と復号化部分との組み合わせはまた、CODEC(COding and DECoding)とも呼ばれる。
可逆ビデオコーディングの場合に、元のビデオピクチャが再構成可能であり、すなわち、再構成されたビデオピクチャは、(記憶又は伝送中に伝送損失又は他のデータ損失がないと仮定して)元のビデオピクチャと同じ品質を有している。不可逆ビデオコーディングの場合に、例えば量子化による更なる圧縮が、ビデオピクチャを表すデータ量を減らすために行われ、ビデオピクチャは、復号器で完全には再構成不可能であり、すなわち、再構成されたビデオピクチャの品質は、元のビデオピクチャの品質と比較して低いか又は悪い。
H.261以降のいくつかのビデオコーディング標準は、“不可逆ハイブリッドビデオコーデック”のグループに属する(すなわち、サンプル領域での空間及び時間予測と、変換領域での量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常は、重なり合わないブロックの組に分割され、コーディングは、通常は、ブロックレベルで実行される。言い換えると、符号器では、ビデオは、例えば、空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を使用して予測ブロックを生成し、予測ブロックを現在のブロック(現在処理されている/処理されるべきブロック)から減じて残差ブロックを取得し、変換領域で残差ブロックを変換しかつ残差ブロックを量子化して伝送されるべきデータの量を減らすこと(圧縮)によって、ブロック(ビデオブロック)レベルで通常は処理、すなわち、符号化され、一方、復号器では、符号器と比較して逆の処理が、表示のために現在のブロックを再構成するよう、符号化又は圧縮されたブロックに適用される。更に、符号器は、復号器処理ループを再現して、両方ともが、その後のブロックを処理、すなわちコーディングするために、同じ予測(例えば、イントラ及びインター予測)及び/又は再構成を生成するようにする。
ビデオピクチャ処理(動画処理とも呼ばれる)及び静止ピクチャ処理(処理という語はコーディングを含む)は、多くの概念及び技術又はツールを共有するということで、以下では、必要でない場合には、ビデオピクチャと静止ピクチャとの間で不必要な繰り返し及び区別を回避するために、「ピクチャ」という語が、ビデオシーケンスのビデオピクチャ(上記を参照)及び/又は静止ピクチャに言及するために使用される。記載が静止ピクチャ(又は静止画像)のみに言及する場合には、「静止ピクチャ」という語が使用されるべきである。
以下では、符号器100、復号器200及びコーディングシステム300の実施形態が、図4~14に基づき更に詳細に本発明の実施形態について記載する前に、図1乃至3に基づいて記載される。
図3は、コーディングシステム300、例えば、ピクチャコーディングシステム300の実施形態を表す概念又は概略ブロック図であり、コーディングシステム300は、符号化されたデータ330、例えば符号化されたピクチャ330を、例えば、符号化されたデータ330を復号するためにあて先デバイス320へ供給するよう構成されたソースデバイス310を有する。
ソースデバイス310は、符号器100又は符号化ユニット110を有し、更には、すなわち、任意に、ピクチャソース312、前処理ユニット314、例えばピクチャ前処理ユニット314、及び通信インターフェース又は通信ユニット318を有してもよい。
ピクチャソース312は、例えば、現実世界のピクチャを捕捉するためのあらゆる種類のピクチャ捕捉デバイス、及び/又はあらゆる種類のピクチャ生成デバイス、例えば、コンピュータアニメーション化されたピクチャを生成するコンピュータグラフィクスプロセッサ、あるいは、現実世界のピクチャ、コンピュータアニメーション化されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらのあらゆる組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は供給するあらゆる種類のデバイスを有しても、又はそのようなデバイスであってもよい。以下で、それら全ての種類のピクチャ及びあらゆる他の種類のピクチャは、特段別なふうに記載されない限りは、「ピクチャ」又は「画像」と呼ばれ、一方、「ビデオピクチャ」及び「静止ピクチャ」を網羅する「ピクチャ」という語に関する先の説明は、明示的に別に指定されない限りは、依然として当てはまる。
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。アレイ内のサンプルは、ピクセル(ピクチャ要素の略)又はペルとも呼ばれ得る。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、通常は3つの色成分が用いられ、すなわち、ピクチャは、3つのサンプルアレイを表現されるか、又はそれらを含んでよい。RGBフォーマット又は色空間において、ピクチャは、対応する赤、緑、及び青のサンプルアレイを有する。なお、ビデオコーディングでは、各ピクセルは、通常は、ルミナンス/クロミナンスフォーマント又は色空間、例えば、Y(時々Lも代わりに使用される)によって示されるルミナンス成分と、Cb及びCrによって示される2つのクロミナンス成分とを有するYCbCr、において表される。ルミナンス(又は略してルーマ)成分Yは、輝度又はグレーレベル強度(例えば、グレースケールピクチャのような)を表し、一方、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。従って、YCbCrフォーマットでのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイとを有する。RGBフォーマットでのピクチャは、YCbCrフォーマットに変換又は転換されてよく、その逆もしかりであり、プロセスは色転換又は変更としても知られている。ピクチャがモノクロである場合には、ピクチャはルミナンスサンプルアレイしか有さなくてもよい。
ピクチャソース312は、例えば、ピクチャを捕捉するカメラ、前に捕捉又は生成されたピクチャを有するか又は記憶しているメモリ、例えば、ピクチャメモリ、及び/又はピクチャを取得又は受信するあらゆる種類のインターフェース(内部若しくは外部)であってよい。カメラは、例えば、ソースデバイスに組み込まれたローカル又は内蔵のカメラであってよく、メモリは、ローカル又は内蔵のメモリであって、例えば、ソースデバイスに組み込まれてよい。インターフェースは、例えば、外部のビデオソース、例えば、カメラのような外部のピクチャ捕捉デバイス、外部メモリ、又は外部のピクチャ生成デバイス、例えば、外部のコンピュータグラフィクスプロセッサ、コンピュータ若しくはサーバからピクチャを受け取る外部インターフェースであってよい。インターフェースは、あらゆる独自仕様の又は標準化されたインターフェースプロトコルに従うあらゆる種類のインターフェース、例えば、有線若しくは無線インターフェースや、光インターフェースであることができる。ピクチャデータ313を取得するインターフェースは、通信インターフェース318と同じインターフェースであっても、あるいは、その部分であってもよい。
前処理ユニット314及び前処理ユニット314によって実行される処理と区別して、ピクチャ又はピクチャデータ313は、ローピクチャ又はローピクチャデータ313とも呼ばれることがある。
前処理ユニット314は、(ロー)ピクチャデータ313を受け取り、ピクチャデータ313に対して前処理を実行して、前処理されたピクチャ315又は前処理されたピクチャデータ315を取得するよう構成される。前処理ユニット314によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCr)、色補正、又はノイズ除去を有してよい。
符号器100は、前処理されたピクチャデータ315を受け取り、符号化されたピクチャデータ171を供給するよう構成される(更なる詳細は、例えば、図1に基づいて、記載される)。
ソースデバイス310の通信インターフェース318は、符号化されたピクチャデータ171を受け取り、それを他のデバイス、例えば、あて先デバイス320又はあらゆる他のデバイスへ、記憶又は直接の再構成のために、直接送るよう、あるいは、夫々、符号化されたデータ330を記憶すること及び/又は符号化されたデータ330を他のデバイス、例えば、あて先デバイス320若しくはあらゆる他のデバイスへ復号化若しくは記憶のために送信することの前に、符号化されたピクチャデータ171を処理するよう構成されてよい。
あて先デバイス320は、復号器200又は復号化ユニット200を有し、更には、すなわち、任意に、通信インターフェース又は通信ユニット322、後処理ユニット326、及び表示デバイス328を有してもよい。
あて先デバイス320の通信インターフェース322は、符号化されたピクチャデータ171又は符号化されたデータ330を、例えば、ソースデバイス310から直接に、又はあらゆる他のソース、例えばメモリ、例えば符号化ピクチャデータメモリから受け取るよう構成される。
通信インターフェース318及び通信インターフェース322は、ソースデバイス310とあて先デバイス320との間の直接通信リンク、例えば直接の有線又は無線接続を介して、あるいは、あらゆる種類のネットワーク、例えば、有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又はあらゆる種類のプライベート及びパブリックネットワーク、又はあらゆる種類のそれらの組み合わせを介して、符号化されたピクチャデータ171又は符号化されたデータ330を送信又は受信するよう構成されてよい。
通信インターフェース318は、例えば、通信リンク又は通信ネットワーク上での伝送のために、符号化されたピクチャデータ171を適切なフォーマット、例えばパケットにパッケージ化するよう構成されてよく、更には、データ損失保護及びデータ損失回復を有してもよい。
通信インターフェース318の相対物を形成する通信インターフェース322は、例えば、符号化されたピクチャデータ171を取得するよう、符号化されたデータ330のパッケージ化を解除するよう構成されてよく、更には、データ損失保護及び例えばエラー隠蔽を含むデータ損失回復を実行するよう構成されてもよい。
通信インターフェース318及び通信インターフェース322は両方とも、ソースデバイス310からあて先デバイス320へ向かう図3中の符号化されたピクチャデータ330のための矢印によって示されるような一方向の通信インターフェース、又は双方向の通信インターフェースとして構成されてよく、例えば、メッセージを送信及び受信して、例えば、接続をセットアップし、ピクチャデータを含む失われた若しくは遅延されたデータを承認及び/又は再送し、通信リンク及び/又はデータ伝送、例えば符号化ピクチャデータ伝送に関するあらゆる他の情報を交換するよう構成されてよい。
復号器200は、符号化されたピクチャデータ171を受け取り、復号されたピクチャデータ231又は復号されたピクチャ231を供給するよう構成される(更なる詳細は、例えば、図2に基づいて、記載される)。
あて先デバイス320のポストプロセッサ326は、復号されたピクチャデータ231、例えば復号されたピクチャ231を後処理して、後処理されたピクチャデータ327、例えば後処理されたピクチャ327を取得するよう構成される。後処理ユニット326によって実行される後処理は、例えば、色フォーマット変換(例えば、YCbCrからRGB)、色補正、トリミング、若しくは再サンプリング、又は例えば、復号されたピクチャデータ231を、例えば表示デバイス328による表示のために、準備するためのあらゆる他の処理を有してよい。
あて先デバイス320の表示デバイス328は、ピクチャを、例えばユーザ又はビューアーに、表示するために、後処理されたピクチャデータ327を受け取るよう構成される。表示デバイス328は、再構成されたピクチャを表現するためのあらゆる種類のディスプレイ、例えば内蔵された又は外付けのディスプレイ又はモニタであっても、あるいは、それを有してもよい。ディスプレイは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ又はあらゆる種類の他のディスプレイ・・・ビーマー、ホログラム(3D)、・・・を有してよい。
図3は、ソースデバイス310及びあて先デバイス320を別々のデバイスとして表すが、デバイスの実施形態はまた、両方を、すなわち両方の機能、ソースデバイス310又は対応する機能とあて先デバイス320又は対応する機能とを有してもよい。そのような実施形態では、ソースデバイス310又は対応する機能及びあて先デバイス320又は対応する機能は、同じハードウェア及び/又はソフトウェアを用いて、あるいは、別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせによって、実施されてよい。
記載に基づき当業者に明らかなように、異なるユニットの機能、すなわち、図3に示されるソースデバイス310及び/又はあて先デバイス320内の機能の存在及び(正確な)分割は、実際のデバイス及び用途に応じて様々であり得る。
従って、図3に示されるソースデバイス310及びあて先デバイス320は、本発明の実施形態の単なる例であり、本発明の実施形態は、図3に示されるものに制限されない。
ソースデバイス310及びあて先デバイス320は、あらゆる種類の手持ち式又は固定式デバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話機、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ受像機、表示デバイス、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイス、放送受信器デバイス、など(更に、大規模のプロフェッショナルな符号化/復号化のためのサーバ及びワークステーション、例えば、ネットワークエンティティ)を含む広範なデバイスの中のいずれかを有してよく、あらゆる種類のオペレーティングシステムを使用してもしなくてもよい。
図1は、符号器100、例えば、ピクチャ符号器100の実施形態の概略/概念ブロック図を示し、符号器100は、入力部102、残差計算ユニット104、変換ユニット106、量子化ユニット108、逆量子化ユニット110、逆変換ユニット112、再構成ユニット114、バッファ116、ループフィルタ120、復号化ピクチャバッファ(DPB)130、予測ユニット160[インター推定ユニット142、インター予測ユニット144、イントラ推定ユニット152、イントラ予測ユニット154、モード選択ユニット162]、エントロピー符号化ユニット170、及び出力部172を有する。図1に示されるビデオ符号器100は、ハイブリッドビデオ符号器又は、ハイブリッドビデオコーデックに従うビデオ符号器とも呼ばれ得る。
例えば、残差計算ユニット104、変換ユニット106、量子化ユニット108及びエントロピー符号化ユニット170は、符号器100の順方向信号パスを形成し、一方、例えば、逆量子化ユニット110、逆変換ユニット112、再構成ユニット114、バッファ116、ループフィルタ120、復号化ピクチャバッファ(DPB)130、インター予測ユニット144、及びイントラ予測ユニット154は、符号器の戻り信号パスを形成し、符号器の戻り信号パスは、復号器の信号パス(図2の復号器200を参照)に対応する。
符号器は、例えば入力部102によって、ピクチャ101又はピクチャ101のピクチャブロック103、例えば、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスの中のピクチャ、を受け取るよう構成される。ピクチャブロック103は、現在のピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれることがあり、ピクチャ101は、現在のピクチャ又はコーディングされるべきピクチャとも呼ばれることがある(特に、ビデオコーディングでは、現在のピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在のピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するため)。
符号器100の実施形態は、ピクチャ103を複数のブロック、例えば、ブロック103のようなブロックに、通常は、複数の重なり合わないブロックに分割するよう構成された、例えばピクチャパーティショニングユニットとも呼ばれ得るパーティショニングユニット(図1に図示せず)を有してよい。パーティショニングユニットは、ビデオシーケンスの全てのピクチャのための同じブロックサイズと、ブロックサイズを定義する対応するグリッドとを使用するよう、あるいは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変え、各ピクチャを対応するブロックに分割するよう、構成されてよい。
ピクチャ101のように、ブロック103はやはり、ピクチャ101よりも寸法が小さいが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。言い換えると、ブロック103は、適用される色フォーマットに応じて、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ101の場合にルーマアレイ)、又は3つのサンプルアレイ(例えば、カラーピクチャ101の場合にルーマ及び2つのクロマアレイ)、又はあらゆる他の数及び/又は種類のアレイを有してよい。ブロック103の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック103のサイズを定義する。
図1に示される符号器100は、ブロックごとにピクチャ101を符号化するよう構成され、例えば、符号化及び予測は、ブロック103ごとに実行される。
残差計算ユニット104は、例えば、サンプル領域において残差ブロック105を得るようサンプルごとに(ピクセルごとに)予測ブロック165のサンプル値をピクチャブロック103のサンプル値から減じることによって、ピクチャブロック103及び予測ブロック165(予測ブロック165に関する更なる詳細は後で与えられる)に基づいて残差ブロック105を計算するよう構成される。
変換ユニット106は、変換された係数107を変換領域において得るために、残差ブロック105のサンプル値に対して変換、例えば空間周波数変換又は線形空間変換、例えば離散コサイン変換(DCT)又は離散サイン変換(DST)を適用するよう構成される。変換された係数107は、変換された残差係数とも呼ばれ、変換領域において残差ブロック105を表し得る。
変換ユニット106は、HEVC/H.265について規定されているコア変換のような、DCT/DSTの整数近似を適用するよう構成されてよい。正規直交DCT変換と比較して、そのような整数近似は、通常、特定の係数によってスケーリングされる。順方向及び逆変換によって処理される残差ブロックのノルムを保つために、更なるスケーリング係数が変換プロセスの部分として適用される。スケーリング係数は、シフト演算、変換された係数のビットデプス、精度と実施コストとの間のトレードオフ、などのために、スケーリング係数が2の冪であるといった特定の制約に基づいて、通常は選択される。特定のスケーリング係数は、例えば、復号器200での、例えば逆変換ユニット212による、逆変換(及び符号器100での、例えば逆変換ユニット112による、対応する逆変換)のために規定され、符号器100での、例えば変換ユニット106による、順方向変換のための対応するスケーリング係数は、それに応じて規定され得る。
量子化ユニット108は、量子化された係数109を得るように、例えば、スカラー量子化又はベクトル量子化を適用することによって、変換された係数107を量子化するよう構成される。量子化された係数109は、量子化された残差係数109とも呼ばれ得る。例えば、スカラー量子化の場合に、異なるスケーリングが、より細かい又はより粗い量子化を達成するよう適用されてよい。より小さい量子化ステップサイズは、より細かい量子化に対応し、一方、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義された組へのインデックスであってよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、あるいは、その逆もしかりである。量子化は、量子化ステップサイズによる除算を含んでよく、例えば、逆量子化110による対応する又は逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。
HEVCに従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。一般に、量子化ステップサイズは、除算を含む式の固定点近似を用いて量子化パラメータに基づいて計算され得る。更なるスケーリング係数は、量子化ステップサイズ及び量子化パラメータのための式の固定点近似において使用されるスケーリングのために変更されることになる残差ブロックのノルムを回復するように量子化及び逆量子化のために導入されてよい。1つの実施例では、逆変換及び逆量子化のスケーリングは結合されてよい。代替的に、カスタマイズされた量子化テーブルが使用され、符号器から復号器へ、例えばビットストリームにおいて、伝えられてもよい。量子化は不可逆演算であり、損失は、量子化ステップサイズを大きくするにつれて増大する。
符号器100の(又は量子化ユニット108の)実施形態は、例えば、対応する量子化パラメータによって、量子化スキーム及び量子化ステップサイズを出力するよう構成されてよく、それにより、復号器200は受け取って、対応する逆量子化を適用し得る。符号器100(又は量子化ユニット108)の実施形態は、量子化スキーム及び量子化ステップサイズを、例えば、直接に、又はエントロピー符号化ユニット170若しくはあらゆる他のエントロピーコーディングユニットを介してエントロピー符号化して、出力するよう構成されてもよい。
逆量子化ユニット110は、例えば、量子化ユニット108によって適用された量子化スキームの逆を量子化ユニット108と同じ量子化ステップサイズに基づいて又はそれを用いて適用することによって、量子化された係数に対して量子化ユニット108の逆量子化を適用して、逆量子化された係数111を取得するよう構成される。逆量子化された係数111は、逆量子化された残差係数111とも呼ばれ、通常は、量子化による損失により、変換された係数と同じではないが、変換された係数108に対応し得る。
逆変換ユニット112は、変換ユニット106によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)を適用して、逆変換されたブロック113をサンプル領域において取得するよう構成される。逆変換されたブロック113は、逆変換された逆量子化されたブロック113又は逆変換された残差ブロック113とも呼ばれ得る。
再構成ユニット114は、例えば、復号された残差ブロック113のサンプル値と予測ブロック165のサンプル値とをサンプルごとに加算することによって、逆変換されたブロック113及び予測ブロック165を結合して、再構成されたブロック115をサンプル領域において取得するよう構成される。
バッファユニット116(又は略して「バッファ」116)、例えばラインバッファ116は、例えばイントラ推定及び/又はイントラ予測のために、再構成されたブロック及び各々のサンプル値をバッファリング又は格納するよう構成される。更なる実施形態では、符号器は、あらゆる種類の推定及び/又は予測のために、バッファユニット116に格納されているフィルタ処理されていない再構成されたブロック及び/又は各々のサンプル値を使用するよう構成されてよい。
符号器100の実施形態は、例えば、バッファユニット116が、再構成されたブロック115をイントラ推定152及び/又はイントラ予測154のために格納するためだけでなく、ループフィルタユニット120のためにも(図1に図示せず)使用されるように、かつ/あるいは、例えば、バッファユニット116及び復号化ピクチャバッファユニット130が1つのバッファを形成するように、構成されてよい。更なる実施形態は、イントラ推定152及び/又はイントラ予測154のための入力又は基礎として、復号化ピクチャバッファ130からのブロック若しくはサンプル及び/又はフィルタ処理されたブロック121(図1にはいずれも図示せず)を使用するよう構成されてよい。
ループフィルタユニット120(又は略して「ループフィルタ」120)は、例えば、デブロッキングサンプル適応オフセット(SAO)フィルタ又は他のフィルタ、例えば、鮮鋭化若しくは平滑化フィルタ又は協調フィルタを適用することによって、フィルタ処理されたブロック121を取得するように、再構成されたブロック115にフィルタをかけるよう構成される。フィルタ処理されたブロック121は、フィルタ処理された再構成されたブロック121とも呼ばれ得る。ループフィルタ120は、以下で、デブロッキングフィルタとも呼ばれる。
ループフィルタユニット120の実施形態は、フィルタ解析ユニット及び実際のフィルタユニットを有してよく(図1に図示せず)、フィルタ解析ユニットは、実際のフィルタのためのループフィルタパラメータを決定するよう構成される。フィルタ解析ユニットは、固定の、予め決定されたフィルタパラメータを実際のループフィルタに適用するか、所定のフィルタパラメータの組からフィルタパラメータを適応的に選択するか、あるいは、実際のループフィルタのためのフィルタパラメータを適応的に計算するよう構成されてよい。
ループフィルタユニット120の実施形態は、例えば、直列に若しくは並列に接続されているか又はそれらの任意の組み合わせにおける1つ又は複数のフィルタ(ループフィルタコンポーネント/サブフィルタ)、例えば異なる種類又はタイプのフィルタの1つ以上を有してよく(図1に図示せず)、フィルタの夫々は、個別的に又は複数のフィルタの中の他のフィルタとともにまとまって、例えば、前の段落で記載されるような、各々のループフィルタパラメータを決定するフィルタ解析ユニットを有してよい。
符号器100(又はループフィルタユニット120)の実施形態は、ループフィルタパラメータを、例えば、直接に、又はエントロピー符号化ユニット170若しくはあらゆる他のエントロピーコーディングユニットを介してエントロピー符号化して、出力するよう構成されてよく、それにより、例えば、復号器200は、同じループフィルタパラメータを受け取って、復号化のため適用し得る。
復号化ピクチャバッファ(DPB)130は、フィルタ処理されたブロック121を受け取り格納するよう構成される。復号化ピクチャバッファ130は、同じ現在のピクチャの又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタ処理されたブロック、例えば、前に再構成及びフィルタ処理されたブロック121を格納するよう更に構成されてよく、例えば、インター推定及び/又はインター予測のために、完全な、前に再構成された、すなわち復号されたピクチャ(並びに対応する参照ブロック及びサンプル)及び/又は部分的に再構成された現在のピクチャ(並びに対応する参照ブロック及びサンプル)を供給してよい。
本発明の更なる実施形態はまた、あらゆる種類の推定又は予測、例えばイントラ及びインター推定及び予測のために、復号化ピクチャバッファ130の前にフィルタ処理されたブロック及び対応するフィルタ処理されたサンプル値を使用するよう構成されてもよい。
ブロック予測ユニット160とも呼ばれる予測ユニット160は、ピクチャブロック103(現在のピクチャ101の現在のピクチャブロック103)及び復号又は少なくとも再構成されたピクチャデータ、例えば、バッファ116からの同じ(現在の)ピクチャの参照サンプル及び/又は復号化ピクチャバッファ130からの1つ又は複数の前に復号されたピクチャからの復号されたピクチャデータ231を受け取るか又は取得するよう、かつ、そのようなデータを予測のために、すなわち、インター予測されたブロック145又はイントラ予測されたブロック155であってよい予測ブロック165を供給するために、処理するよう構成される。
モード選択ユニット162は、残差ブロック105の計算のために及び再構成されたブロック115の再構成のために、予測モード(例えば、イントラ若しくはインター予測モード)及び/又は予測ブロック165として使用されるべき対応する予測ブロック145若しくは155を選択するよう構成されてよい。
モード選択ユニット162の実施形態は、最良の一致、すなわち、言い換えると、最小限の残差(最小限の残差は、伝送又は記憶のためのより良い圧縮を意味する)、又は最小限のシグナリングオーバーヘッド(最小限のシグナリングオーバーヘッドは、伝送又は記憶のためのより良い圧縮を意味する)をもたらすか、あるいは、両方を考慮するか又はバランスを取る予測モードを(例えば、予測ユニット160によってサポートされるものの中から)選択するよう構成されてよい。モード選択ユニット162は、レート歪み最適化(RDO)に基づいて予測モードを決定し、すなわち、最低限のレート歪み最適化をもたらす予測モード、又はどの関連するレート歪みが少なくとも予測モード選択基準を満たすかを選択するよう構成されてよい。
以下では、例となる符号器100によって実行される予測処理(例えば、予測ユニット160及びモード選択(例えば、モード選択ユニット162による)が、更に詳細に説明される。
上述されたように、符号器100は、(所定の)予測モードの組から最良又は最適な予測モードを決定又は選択するよう構成される。予測モードの組は、例えば、イントラ予測モード及び/又はインター予測モードを有してよい。
イントラ予測モードの組は、32個の異なるイントラ予測モード、例えばDC(又は平均)モード及びプラナーモードのような非指向性モード、又は例えばH.264で定義されるような指向性モードを有してよく、あるいは、65個の異なるイントラ予測モード、例えばDC(又は平均)モード及びプラナーモードのような非指向性モード、又は例えばH.265で定義されるような指向性モードを有してよい。
(可能な)インター予測モードの組は、利用可能な参照ピクチャ(すなわち、例えばDPB230に記憶されている、前の少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照ピクチャの一部分のみ、例えば、参照ピクチャの現在のブロックのエリアの周りの探索ウィンドウエリア、が、最も良く一致する参照ブロックを探すために使用されるかどうか、及び/又は例えば、ピクセル補間、例えば半/準ペル及び/又は4分の1ペル補間、が適用されるか否か、に依存する。
上記の予測モードに加えて、スキップモード及び/又はダイレクトモードが適用されてもよい。
予測ユニット160は、例えば、4分木パーティショニング(QT)、2分木パーティショニング(BT)、若しくは3分木パーティショニング(TT)、又はそれらの任意の組み合わせを繰り返し用いて、ブロック103をより小さいブロックパーティション又はサブブロックに分割するよう、かつ、例えば、ブロックパーティション又はサブブロックの夫々についての予測を実行するよう更に構成されてよく、モード選択は、分割されたブロック103の木構造とブロックパーティション又はサブブロックの夫々に適用される予測モードとの選択を有する。
インターピクチャ推定ユニット142とも呼ばれるインター推定ユニット142は、ピクチャブロック103(現在のピクチャ101の現在のピクチャブロック103)及び復号されたピクチャ213、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ若しくは複数の他の/異なる前に復号されたピクチャ231の再構成されたブロックを、インター推定(又は「インターピクチャ推定」)のために、受け取るか又は取得するよう構成される。例えば、ビデオシーケンスは、現在のピクチャ及び前に復号されたピクチャ231を有してよく、すなわち、言い換えると、現在のピクチャ及び前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの部分であるか、又はピクチャのシーケンスを形成し得る。
符号器100は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(若しくは参照ピクチャインデックスなど)及び/又は参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター推定パラメータ143としてインター予測ユニット144へ供給するよう構成されてよい。このオフセットは、動きベクトル(MV)とも呼ばれる。インター推定は、動き推定(ME)とも呼ばれ、インター予測は、動き予測(MP)とも呼ばれる。
インター予測ユニット144は、インター予測パラメータ143を取得し、例えば、受け取り、インター予測パラメータ143に基づいて又はそれを用いてインター予測を実行してインター予測ブロック145を取得するよう構成される。
図1は、インターコーディングのための2つの異なるユニット(又はステップ)、すなわち、インター推定142及びインター予測144を示すが、両方の機能は、例えば、現在最良のインター予測モード及び各々のインター予測ブロックを記憶しながら繰り返し、可能なインター予測モードの全ての可能な又は所定のサブセットを試験し、現在最良のインター予測モード及び各々のインター予測ブロックを、別なときにインター予測144を実行せずに(最終の)インター予測パラメータ143及びインター予測ブロック145として使用することによって、1つとして実行されてよい(インター推定は、ある/そのインター予測ブロック、すなわち、その又は“一種”のインター予測144を計算することを必要とする/有する)。
イントラ推定ユニット152は、イントラ推定のためにピクチャブロック103(現在のピクチャブロック)及び同じピクチャの1つ若しくは複数の前に再構成されたブロック、例えば、再構成された隣接ブロックを取得する、例えば、受け取るよう構成される。符号器100は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択し、それをイントラ推定パラメータ153としてイントラ予測ユニット154へ供給するよう構成されてよい。
符号器100の実施形態は、最適な基準、例えば、最小限の残差(例えば、現在のピクチャブロック103に最も類似した予測ブロック155を供給するイントラ予測モード)又は最小限のレート歪みに基づいてイントラ予測モードを選択するよう構成されてよい。
イントラ予測ユニット154は、イントラ予測パラメータ153、例えば、選択されたイントラ予測モード153に基づいて、イントラ予測ブロック155を決定するよう構成される。
図1は、イントラコーディングのための2つの異なるユニット(又はステップ)、すなわち、イントラ推定152及びイントラ予測154を示すが、両方の機能は、例えば、現在最良のイントラ予測モード及び各々のイントラ予測ブロックを記憶しながら繰り返し、可能なイントラ予測モードの全ての可能な又は所定のサブセットを試験し、現在最良のイントラ予測モード及び各々のイントラ予測ブロックを、別なときにイントラ予測154を実行せずに(最終の)イントラ予測パラメータ153及びイントラ予測ブロック155として使用することによって、1つとして実行されてよい(イントラ推定は、イントラ予測ブロック、すなわち、その又は“一種”のイントラ予測154を計算することを必要とする/有する)。
エントロピー符号化ユニット170は、エントロピー符号化アルゴリズム又はスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CALVC)、算術コーディングスキーム、コンテキスト適応バイナリ算術コーディング(CABAC))を、量子化された残差係数109、インター予測パラメータ143、イントラ予測パラメータ153、及び/又はループフィルタパラメータに対して個別的に又はまとめて適用して(又は全くなしで)、例えば符号化されたビットストリーム171の形で出力部172によって出力され得る符号化されたピクチャデータ171を取得するよう構成される。
図2は、復号されたピクチャ231を取得するよう、例えば、符号器100によって符号化された、符号化されたピクチャデータ(例えば、符号化されたビットストリーム)171を受け取るよう構成された例示的なビデオ復号器200を示す。
復号器200は、入力部202、エントロピー復号化ユニット204、逆量子化ユニット210、逆変換ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号化ピクチャバッファ230、予測ユニット260、インター予測ユニット244、イントラ予測ユニット254、モード選択ユニット262、及び出力部232を有する。
エントロピー復号化ユニット204は、例えば、量子化された係数209及び/又は復号された符号化パラメータ(図2に図示せず)、例えば、インター予測パラメータ143、イントラ予測パラメータ153、及び/又はループフィルタパラメータの(復号された)いずれか又は全てを取得するために、符号化されたピクチャデータ171に対してエントロピー復号化を実行するよう構成される。
復号器200の実施形態において、逆量子化ユニット210、逆変換ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号化ピクチャバッファ230、予測ユニット260及びモード選択ユニット262は、符号化されたピクチャデータ171を復号するために、符号器100(及び各々の機能ユニット)の逆処理を実行するよう構成される。
特に、逆量子化ユニット210は、逆量子化ユニット110と機能が同じであってよく、逆変換ユニット212は、逆変換ユニット112と機能が同じであってよく、再構成ユニット214は、再構成ユニット114と機能が同じであってよく、バッファ216は、バッファ116と機能が同じであってよく、ループフィルタ220は、(ループフィルタ220が原画像101又はブロック103に基づきフィルタパラメータを決定するフィルタ解析ユニットを通常は有さず、符号化のために使用されるフィルタパラメータを、例えばエントロピー復号化ユニット204から、(明示的又は暗黙的に)受信又は取得するということで、実際のループフィルタに関して)ループフィルタ120と機能が同じであってよく、復号化ピクチャバッファ230は、復号化ピクチャバッファ130と機能が同じであってよい。
予測ユニット260は、インター予測ユニット244及びイントラ予測ユニット254を有してよく、インター予測ユニット244は、インター予測ユニット144と機能が同じであってよく、イントラ予測ユニット254は、イントラ予測ユニット154と機能が同じであってよい。予測ユニット260及びモード選択ユニット262は、通常は、ブロック予測を実行し、かつ/あるいは、符号化されたデータ171のみから(原画像101に関する如何なる更なる情報もなしで)、予測されたブロック265を取得するよう、かつ、予測パラメータ143若しくは153及び/又は選択された予測モードに関する情報を、例えば、エントロピー復号化ユニット204から(明示的又は暗黙的に)受信又は取得するよう構成される。
復号器200は、復号されたピクチャ231をユーザへの提示又はビューイングのために、例えば、出力部232を介して出力するよう構成される。
本発明の実施形態は、主にビデオコーディングに基づいて記載されてきたが、符号器100及び復号器200(並びに相応してシステム300)の実施形態はまた、静止ピクチャ処理又はコーディング、すなわち、如何なる処理からも独立した個々のピクチャ、又はビデオコーディングで見られるような連続ピクチャの処理又はコーディングのためにも構成されてよい、ことが留意されるべきである。一般に、インター推定142、インター予測144、244は、ピクチャ処理コーディングが単一のピクチャ101に制限される場合に利用可能でない。ビデオ符号器100及びビデオ復号器200の全てではないとしてもほとんどの他の機能(ツール又は技術とも呼ばれる)、例えば、パーティショニング、変換(スケーリング)106、量子化108、逆量子化110、逆変換112、イントラ推定152、イントラ予測154、254及び/又はループフィルタリング120、220、並びにエントロピー符号化170及びエントロピー復号化204は、静止ピクチャのために同様に使用され得る。
本発明は、図1及び図2でループフィルタとも呼ばれるデブロッキングフィルタの内部の動きを扱う。
H.264/AVC及びHEVCのようなビデオコーディングスキームは、ブロックベースのハイブリッドビデオコーディングの成功した原理に沿って設計される。この原理を用いると、ピクチャは最初にブロックに分割され、次いで、各ブロックは、イントラピクチャ又はインターピクチャ予測を使用することによって予測される。これらのブロックは、隣接ブロックから相対的にコーディングされ、ある程度の類似性を伴って原信号を近似する。コーディングされたブロックは単に原信号を近似するので、近似間の差は、予測及び変換ブロック境界で不連続性を生じさせることがある。それらの不連続性は、デブロッキングフィルタによって減衰される。HEVCは、H.264/AVCのマクロブロック構造を、最大サイズ64×64ピクセルのコーディング・ツリー・ユニット(CTU)の概念により置換する。CTUは、四分木分解スキームへ、そして、8×8ピクセルの最小サイズに細分可能であるより小さいコーディングユニット(CU)へ更に分割され得る。HEVCはまた、予測ブロック(PB)及び変換ブロック(TB)の概念も導入する。
HEVCでのデブロッキングは、8×8グリッドにより重なり合うコーディングユニット(CU)、予測ユニット(PU)及び変換ユニット(TU)に属する全てのエッジに対して実行される。更に、HEVCでのデブロッキングフィルタは、フィルタ動作が4×4グリッドにわたって実行されるH.264/AVCと比較したときに使いやすい、よりずっと並列な処理である。HEVCでの垂直及び水平なブロック境界は、H.264/AVCとは異なる順序で処理される。HEVCでは、ピクチャ内の全ての垂直ブロック境界が最初にフィルタ処理され、それから、全ての水平ブロック境界がフィルタ処理される。HEVCでの2つの平行なブロック境界の間の最小距離は8サンプルであり、HEVCデブロッキングはブロック境界からの多くても3つのサンプルを変更し、デブロッキング決定のためにブロック境界からの4つのサンプルを使用するから、1つの垂直境界のフィルタリングは、如何なる他の垂直境界のフィルタリングにも影響を及ぼさない。これは、ブロック境界にわたってデブロッキング依存性がないことを意味する。原理上、如何なる垂直ブロック境界も、如何なる他の垂直境界と並行して処理可能である。同じことは水平境界にも当てはまるが、垂直境界のフィルタ処理による変更されたサンプルは、水平境界のフィルタ処理への入力として使用される。
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC標準(スクリーンコンテンツコーディング及び高ダイナミックレンジコーディングのためのその現在の拡張及び今後の拡張を含む)の圧縮能力を大幅に上回る圧縮能力を備えた将来のビデオコーディング技術の標準化に対する潜在的なニーズを研究している。グループは、この分野における専門家によって提案されている圧縮技術設計を評価するために、Joint Video Exploration Team(JVET)として知られている合同協調努力におけるこの探求活動に一丸となって取り組んでいる。
Joint Exploration Model(JEM)は、HEVCの能力を超える潜在的な強化されたビデオコーディング技術として、ITU-T VCEG及びISO/IEC MPEGのJoint Video Exploration Team(JVET)による協同のテストモデル研究の下にある特徴について記載する。
JEM(Joint Exploratory Model)ソフトウェアは、四分木プラス二分木(QTBT)と呼ばれる新しいパーティショニングブロック構造スキームを使用する。
QTBT構造は、複数のパーティションタイプの概念を取り除き、すなわち、コーディングユニット(CU)、予測ユニット(PU)及び変換ユニット(TU)の分離を取り除く。従って、(CU=PU=TU)。QTBTは、より柔軟なCUパーティション形状をサポートし、CUは、正方形又は長方形のどちらかの形状を有することができる。CUの最小の幅及び高さは、4サンプルであることができ、CUのサイズも、Nが[4,8,16,32]の範囲内の値をとることができるとして、4×N又はN×4であることができる。
JEMでの現在のLUMAデブロッキングフィルタは、サイズが4×N及びN×4であるCUに属するエッジを含む全てのCUブロックエッジをフィルタ処理するが、次の欠点をもたらす。
・既にフィルタ処理されたサンプルが、連続するブロック境界のフィルタリング決定に影響を及ぼす可能性がある。
・隣接するブロック境界が並行して処理され得ない。
(QTBTパーティショニングを伴った)JEMのために使用される現在のデブロッキングフィルタ動作は、図4に表される。
P、Q及びRとも呼ばれるコーディングブロック401、402、403は、3つのCUである。CUのサイズは、夫々4×8、4×8及び4×8(N=8)サンプルである。E1とも呼ばれるエッジ404の強フィルタリングは、破線ボックス406においてマークされているサンプルを変更する。E2とも呼ばれるエッジ405の強フィルタリングは、破線ボックス407においてマークされているサンプルを変更する。明らかなように、ボックス406及びボックス407のオーバーラップがあり、そのため、
■エッジE1のフィルタリング中に、ブロックQ内の既にフィルタリングされたサンプルは、連続するブロック境界(エッジE2)のフィルタリング決定に影響を及ぼし、
■隣接するブロック境界(E1及びE2)は、並行して処理され得ない。
従って、デブロッキングフィルタリングを直列に実行する必要がある。これは、不必要に長い処理時間をもたらす。特に、今後のプロセッサ技術により、ますます多くの並列処理構造を用いると、これは必要に長い処理時間をもたらす。並列に作動するようデブロッキングフィルタリングを適応させることによって、大幅な処理時間が節約可能である。
これより図5~図8に沿って、本発明の第1の態様、第2の態様及び第3の態様の異なる実施形態について簡単に説明する。図5~図8に表されている実施形態の詳細な機能は、図9~13に関連して後述される。
図5には、本発明の第1の態様の画像処理デバイスの第1実施形態が示されている。画像処理デバイス501は、ブロックコードにより符号化された画像の第1コーディングブロック及び第2コーディングブロックの間のブロックエッジをフィルタ処理するフィルタを有する。
特に、画像処理デバイス501は、ブロックコードにより符号化された画像の第1コーディングブロック及び第2コーディングブロックの間のブロックエッジをデブロッキングすることを目的とする。第1コーディングブロックは、ブロックエッジに垂直なブロックサイズSAを有し、一方、第2コーディングブロックは、ブロックエッジに垂直なブロックサイズSBを有する。画像処理デバイス501は、ブロックエッジをフィルタ処理するフィルタ502を有する。フィルタは、上述されたように、
- ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数MAを第1フィルタ出力値として変更し、
- ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数MBを第2フィルタ出力値として変更し、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数IAを第1フィルタ入力値として使用し、
- 第1フィルタ出力値及び/又は第2フィルタ出力値を計算するために、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数IBを第2フィルタ入力値として使用するよう構成される。そこで、IAはIBとは異なり、MAはMBとは異なる。
図6には、本発明の第2の態様に従う符号器の実施形態が示されている。符号器600は、同様にしてフィルタ602を有する画像処理デバイス601を有する。画像処理デバイス601は、図5の画像処理デバイス501に対応する。符号器は、図1に示される原理符号器に従って作動する。図1のデブロッキングフィルタとも呼ばれるループフィルタは、ここで示されている画像処理デバイス601によって置換される。
図7には、本発明の第3の態様の実施形態が示されている。復号器700は、同様にしてフィルタ702を有する画像処理デバイス701を有する。画像処理デバイス701は、図5の画像処理デバイス501に対応する。復号器700は、図2に示される原理復号器に従って作動する。図2のデブロッキングフィルタとも呼ばれるループフィルタは、ここで表されている画像処理デバイス701によって置換される。
最後に、図8には、本発明の第1の態様に従う画像処理デバイスの更なる実施形態が示されている。画像処理デバイス801は、フィルタ802及び判定器803を有する。判定器803は、ブロックエッジがフィルタ処理されるべきであるかどうか、及び/又は強フィルタリング若しくは弱フィルタリングが実行されるべきかどうかを判定する。この決定は、第1フィルタ決定値としての、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数DAと、第2フィルタ決定値としての、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数DBとに基づく。
フィルタ決定値は、必ずしも、図5に沿って記載されたフィルタ入力値と同じである必要はない。とはいえ、実際に、それらは同じであることができる。
図8に従う画像処理デバイスは、図5のフィルタ502と同等に動作するフィルタ802を更に有する。
詳細には、デブロッキングフィルタリングを並列化する問題は、図9に示されるアプローチによって解決され得る。そこで、画像900は、3つのコーディングブロック901、902及び903を有する。コーディングブロック901及び902の間には、ブロックエッジ904が存在する。コーディングブロック902及び903の間には、ブロックエッジ905が存在する。エッジ904のフィルタリングを実行するとき、破線906で示されるサンプル値が考慮される。これらは、上述されたように、フィルタ入力値である。同時に、破線907内に表されているサンプル値のみがフィルタリングによって変更される。これらのサンプル値は、上述されたように、フィルタ出力値である。
ブロックエッジ905をフィルタ処理するとき、破線908内のサンプル値はフィルタ入力値として使用され、一方、破線909内のサンプル値のみが変更され、フィルタ出力値を構成する。
破線907で示される、エッジ904のフィルタリングのフィルタ出力値は、破線908内に示される、エッジ905をフィルタ処理することのフィルタ入力値と重なり合わない。逆も又同様に、破線909内に表されている、ブロックエッジ905をフィルタ処理することのフィルタ出力値も、破線906内に表されている、ブロックエッジ904をフィルタ処理することのフィルタ入力値と重なり合わない。2つのブロックエッジ904及び905の処理の間には相互依存関係がないので、両方のブロックエッジのフィルタリングの並列処理が可能である。
更に、フィルタ入力値及びフィルタ出力値として使用されるサンプル値の量は、現在処理されているコーディングブロックのサイズに依存することがここで明らかに分かる。例えば、コーディングブロック901は、8ピクセルのコーディングブロックサイズを有する。従って、フィルタ入力サンプルの数Iは4にセットされる。同時に、変更されるサンプル値の数Mは3にセットされる。Iは、ピクセルP3,x、P2,x、P1,x及びP0,xに対応し、一方、サンプル値Iは、ピクセルP2,x、P1,x及びP0,xに対応する。
同時に、コーディングブロック902は、4のブロックサイズSしか有さず、従って、入力サンプル値の数Iは3にセットされ、一方、変更されるサンプル値の数は1にセットされる。
これは、フィルタ処理されるべきブロックエッジに沿った同じでないブロックサイズの場合に、非対称フィルタが使用されることを意味する。
ブロック901のブロック幅は8サンプルであるから、フィルタ決定はサンプルPi,jを使用することができ、このとき、i∈[0,1,2,3]及びj∈[0,1,2,3,4,5,6,7]である。ブロックQのブロック幅は4サンプルであるから、フィルタ決定はサンプルQi,jのみ使用してもよく、このとき、i∈[3,2,1]及びj∈[0,1,2,3,4,5,6,7]である。
実際のフィルタ動作、すなわち、フィルタ動作中に変更されるサンプルについては、次が適用される:
ブロック901について、そのブロック幅は8サンプルであるから、最大3つのサンプルが変更され得る。従って、i∈[0,1,2]及びj∈[0,1,2,3,4,5,6,7]として、サンプルPi,jが変更可能であり、一方、
ブロック902について、そのブロック幅は4サンプルのみであるから、フィルタオーバーラップがないことを確かにするよう、最大1つのサンプルが変更され得る。従って、i∈[3]及びj∈[0,1,2,3,4,5,6,7]として、サンプルQi,jが変更可能である。
エッジ905については、エッジを共有する2つの隣接するブロックは、ブロック幅が夫々4及び4である902及び903である。
ブロック902のブロック幅は4サンプルであるから、フィルタ決定はサンプルQi,jを使用することができ、このとき、i∈[0,1,2]及びj∈[0,1,2,3,4,5,6,7]である。ブロック903のブロック幅は4サンプルであるから、フィルタ決定はサンプルRi,jのみ使用してもよく、このとき、i∈[3,2,1]及びj∈[0,1,2,3,4,5,6,7]である。
実際のフィルタ動作、すなわち、フィルタ動作中に変更されるサンプルについては、次が適用される:
ブロック902について、そのブロック幅は4サンプルであるから、最大3つのサンプルが変更され得る。従って、i∈[0,1,2]及びj∈[0,1,2,3,4,5,6,7]として、サンプルQi,jが変更可能であり、同じように、ブロックRのブロック幅は4サンプルのみであるから、フィルタオーバーラップがないことを確かにするよう、最大1つのサンプルが変更され得る。従って、i∈[3]及びj∈[0,1,2,3,4,5,6,7]として、サンプルRi,jが変更可能である。
結果として、非対称フィルタは、最大でブロック901では3つのサンプル、ブロック902では1つのサンプル、及びブロック903では1つのサンプルを変更する。
サイズが4サンプルに等しいブロックに対する実際の強フィルタ動作は、次のようにセットされる:
ブロックエッジに隣接するブロックは、サイズが4サンプルに等しい2つのブロックであると仮定して、その場合に:
強フィルタ決定|P3,i-P0,i|+|Q3,i-Q0,i|<β/8は、|P2,i-P0,i|+|Q2,i-Q0,i|<β/8にセットされる。
とはいえ、強フィルタ及び通常フィルタのどちらも1つのピクセルしか変更しないので、その場合に強フィルタが適用されるときだけ、ブロックp内の1つのサンプルは、次のように変更される:
p´0=(p2+2p1+2p0+2q0+q1+4)>>3。
弱フィルタリングの場合に、より少ない数のサンプル値しかフィルタ入力サンプルとして使用されない。特に、次のフィルタ式が使用される:
p0´=p0+Δ0、
q0´=q0-Δ0、
Δ0=Clip3(-tC、tC,δ)、
δ=(9×(q0-p0)-3×(q1-p1)+8)>>4。
上記の非対称フィルタを使用することに代えて、代替の例となる解決法は図10に示される。第1ステップ1000で、現在フィルタ処理されているブロックエッジが8×8符号化サンプルグリッドとアライメントされているかどうかが確かめられる。そうである場合に、第2ステップ1001で、フィルタ処理されるべきブロックエッジが予測ユニット又は変換ユニット間の境界であるかどうかが確かめられる。そうである場合に、第3ステップ1002で、境界強度BS>0であるかどうかが確かめられる。この条件も満足される場合には、第4ステップ1003で、条件7.1が当てはまるかどうかが確かめられる。
条件7.1は、デブロッキングフィルタがブロック境界に適用されるか否かを確かめるために使用される。条件は、特に、ブロック境界の夫々の側での信号が直線(ランプ)からどれくらい外れているかを確認する。
この条件が満足されないか、あるいは、ステップ1000、1001及び1002の確認のいずれかが満たされない場合には、第5ステップ1004で、フィルタリングは実行されない、と決定される。
この場合に、第6ステップ1005で、フィルタ処理されるべきエッジを囲む2つのブロックのうちのいずれかのブロックサイズが4であるかどうかが確かめられる。そうでない場合には、第7ステップ1006で、更なる条件7.2、7.3及び7.4が満足されるかどうかが確かめられる。
条件7.2は、ブロック境界の両側に有意な信号変化がないことを確認する。条件7.3は、両側にある信号がフラットであることを検証する。条件7.4は、ブロック境界の両側にあるサンプル値間のステップが小さいことを確かにする。
これらの条件の全てが当てはまる場合に、第8ステップ1007で、強フィルタリングが実行される。そうでない場合には、第9ステップ1008で、通常のフィルタリングが実行される、と決定される。次いで、第10ステップ1009で通常のフィルタリング処理が続けられる。
万が一、第6のステップ1005の確認により、少なくとも1つのブロックのブロックサイズが4であるとの結果が得られたとしても、ステップ1006、1007及び1008は実行されないが、直接ステップ1009が続けられる。この解決法は、ただ1つのサンプル変更が実行されるように、デブロッキングフローチャートの部分を強行する。
第10ステップ1009で、更なる条件7.12が満足されるかどうかが確かめられる。条件7.12は、ブロック境界での不連続性が、自然のエッジである可能性が高いか、それともブロックアーチファクトによって引き起こされている可能性が高いかを評価する。
この条件が当てはまらない場合に、第11ステップ1010で、フィルタリングは結局のところ実行されない、と決定される。なお、これが当てはまる場合には、第12ステップ1011で、エッジを直接囲むピクセル値p0及びq0が変更される。
更なるステップ1012で、更なる条件7.5が満足されるかどうかが確かめられる。条件7.5は、ブロック境界の側で(すなわち、ブロックPについて)信号がどれくらい滑らかであるかを確かめる。信号が滑らかであるほど、ますますフィルタリングは適用される。
この条件が当てはまる場合に、第14ステップ1013で、ピクセル値p1が変更される。次いで、第15ステップ1014が続けられる。条件7.5が満足されない場合には、直接第15ステップ1014が続けられ、第15ステップ1014で、更なる条件7.6が確かめられる。
条件7.6は、ブロック境界の側で(すなわち、ブロックQについて)信号がどれくらい滑らかであるかを確かめる。信号が滑らかであるほど、ますますフィルタリングは適用される。条件が満足される場合に、第16ステップ1015で、ピクセル値q1が変更される。条件7.6が満足されない場合には、ピクセル値q1は変更されない。
これは、ブロックサイズの少なくとも1つが4である場合に、フィルタリングが実行されるかどうかと、どのタイプのフィルタリングが実行されるかとを決定するために必要な確認の量を大幅に減らすことを可能にする。
上記の標準的な適合条件に関する詳細については、Vivienne Sze, Mudhukar Budagavi, Gary J. Sullivan,“High Efficiency Video Coding (HEVC), Algorithms and Architectures”(特に、条件7.1乃至7.6及び7.12は、第7章の式7.1乃至7.6及び7.12に対応する)を参照されたい。
このアプローチは、図11に沿っても示されている。図11には、3つのブロック1101、1102及び1103を有する画像1100が示されている。ブロックエッジ1104は、ブロック1101及び1102を分ける。ブロックエッジ1105は、ブロック1102及び1103を分ける。ブロック1102はブロックサイズが4であるから、ブロックエッジ1104の処理中のブロックサイズを確認するとき、関連するブロック1101、1102のうちの少なくとも1つはブロックサイズが4である、と決定され、図10に示されるような、フィルタ決定のステップ1005のショートカットが、行われる。従って、直接ブロックエッジ1104にあるサンプル値のみが変更され、一方、ブロックエッジ1104の両側では、2つの連続するサンプル値がフィルタ入力値として使用される。同じことは、ブロックエッジ1105に当てはまる。
従って、図10及び11に表されているオプションは、関連するブロックの少なくとも1つについて4のブロックサイズが検出される場合に、弱フィルタリングを強行することから成る。
特に、次の式が使用される:
p0´=p0+Δ0、
q0´=q0-Δ0、
Δ0=Clip3(-tC、tC,δ)、
δ=(9×(q0-p0)-3×(q1-p1)+8)>>4。
将来のビデオコーディング標準では、3よりも多いサンプルを変更する“ロングタップ”フィルタが使用される可能性がある。以下では、ブロックサイズが16サンプル以上である場合には常に、フィルタ入力値として8個のサンプルを使用しかつ最大7個のサンプルを変更する“ロングタップ”フィルタが使用され得る。
並列デブロッキングがそのようなシナリオで可能であることを確かにするために、2つの解決法が提案される:
解決法1a:現在のブロックサイズが≧16サンプルである場合かつ隣接ブロックサイズも≧16サンプルである場合にのみ、“ロングタップ”フィルタを適用する。
解決法2a:上述されたように“非対称フィルタ”を適用する。
従って、“非対称フィルタ”は、入力値及び変更された値として使用されるサンプルをブロック幅に応じて変更する。
例えば:
・ブロック幅==4の場合、3つのサンプルがフィルタ決定において使用され得、1つのサンプルが変更され得る。
・ブロック幅==8の場合、4つのサンプルがフィルタ決定及び変更において使用され得る。
・ブロック幅>=16の場合、ロングタップフィルタがそのまま適用され得る。
考慮されるべき更なる態様は、符号化された画像に関して各々のブロックエッジがどこにあるかである。特に、現在フィルタ処理されているブロックエッジがコーディング・ツリー・ユニット(CTU)境界とアライメントされており、水平ブロックエッジである場合に、フィルタ入力値及びフィルタ出力値の数は、符号化を実行するためのラインメモリの量に大きく影響する。これは、図12に示される。
図12は、多数のコーディング・ツリー・ユニットCTU1~CTU40を有する画像1200を示す。各コーディング・ツリー・ユニットは、例えば、256×256サンプル値を有する。ロングタップフィルタリングが上述されたように実行される場合に、符号化ブロックエッジに沿った8個のサンプル値が、フィルタ出力値を決定するために考慮される。コーディングユニットCTU1~CTU40は続けざまに処理されるので、これは、必要なメモリラインの量を極めて膨大にしえる。
図12に示されるブロックエッジ1201のデブロッキングフィルタリングを考える。ここで、ブロックエッジ1201は、コーディングユニットCTU17及びCTU25の全幅に沿って描かれている。なお実際には、コーディングがコーディング・ツリー・ユニット規模では実行されないので、コーディングブロックサイズは相当により小さくなる。
コーディング・ツリー・ユニットCTU1~CTU40は続けざまに処理されるので、コードブロックエッジ1201のデブロッキングを実行するために、コーディング・ツリー・ユニットCTU17~CTU24の下側水平境界領域全体をラインメモリ内で保持することが必要である。ここで示される例では、8個のコーディング・ツリー・ユニットCTU17~CTU24及びコーディングユニットの夫々の256サンプルの幅、並びにフィルタ入力値としての8個の関連するサンプル値により、8×256×8=16,384サンプルのラインメモリのメモリサイズが必要である。各水平コーディングブロックエッジについて、この問題は現れる。それは、コーディング・ツリー・ユニットCTU9、CTU17、CTU25及びCTU33について、それらの場合のいずれにおいても、コーディング・ツリー・ユニットの前の行の水平境界領域全体がラインメモリで保持される必要があるので、特に問題である。これは更に、図13で表される。
図13には、画像1300の関連するブロック1301及び1302のみが表されている。画像1300は、図12の画像1200に対応する。ブロック1301は、図12のコーディングユニット17の最下のコーディングブロックに対応し、一方、ブロック1302は、図12のコーディングユニット25の最上のコーディングブロックに対応する。ブロックエッジ1303は、図12のブロックエッジ1201に対応する。
上記の場合に、必要なラインメモリの量を制限するために、前のブロック1301の4のフィルタ入力サンプル値のみが使用され、一方、3のフィルタ出力サンプル数のみが変更される。これは、この場合に8×256×4=8,096サンプルしかラインメモリで保持される必要がないので、必要なラインメモリの量の大幅な削減をもたらす。
最後に、図14には、本発明の第4の態様のデブロッキング方法の実施形態が示される。
第1ステップ1400で、ブロックコードにより符号化された画像の、ブロックエッジにより分離された第1コーディングブロック及び第2コーディングブロックが、供給される。
第2ステップ1401で、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数IAが、第1フィルタ入力値として使用される。第3ステップ1402で、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数IBが、第2フィルタ入力値として使用される。第4ステップ1403で、ブロックエッジに隣接する第1コーディングブロックのサンプル値の多くても数MAが、第1フィルタ出力値として変更される。最後に、第5ステップ1404で、ブロックエッジに隣接する第2コーディングブロックのサンプル値の多くても数MBが、第2フィルタ出力値として変更される。そこで、MAはMBに等しくない。
フィルタ入力値は、ブロックエッジから始まるブロックエッジに垂直な連続値である、ことが留意されるべきである。また、フィルタ出力値は、ブロックエッジから始まって、ブロックエッジに垂直な連続値である。
本発明は、ここで様々な実施形態とともに記載されてきた。なお、開示されている実施形態に対する他の変形は、図面、本開示及び添付の特許請求の範囲の検討から、請求されている発明を実施する際に当業者によって理解及び達成され得る。特許請求の範囲において、「有する」との語は、他の要素又はステップを除外せず、不定冠詞「1つの」又は「1つの」は、複数を除外しない。単一のプロセッサ又は他のユニットが、特許請求の範囲に挙げられているいくつかのアイテムの機能を満たしてもよい。特定の手段が通常異なる従属請求項で挙げられているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないことを示すものではない。コンピュータプログラムは、他のハードウェアとともに又はその部分として供給される光学記憶媒体又は固体状態媒体のような適切な媒体で記憶/分配され得るが、他の形態で、例えば、インターネットまたは他の有線若しくは無線通信システムを介して、分配されてもよい。
実施形態及び明細書が「メモリ」という語に言及する場合は常に、「メモリ」という語は、明示的に別なふうに述べられない限りは、[全ての可能なメモリのリスト]磁気ディスク、光ディスク、リード・オンリー・メモリ(Read-Only Memory,ROM)、又はランダム・アクセス・メモリ(Random Access Memory,RAM)、などと理解されるべきであるか、及び/又はそれらを有するべきである。
実施形態及び明細書が「ネットワーク」という語に言及する場合は常に、「ネットワーク」という語は、明示的に別なふうに述べられない限りは、[全ての可能なネットワークのリスト]などと理解されるべきであるか、及び/又はそれらを有するべきである。
当業者であれば、様々な図(方法及び装置)の「ブロック」(「ユニット」)は、(ハードウェア又はソフトウェアにおける必然的に個々の「ユニット」よりむしろ)本発明の実施形態の機能を表現又は記載し、よって、装置の実施形態及び方法の実施形態の機能又は特徴を同様に記載する(ユニット=ステップ)。
「ユニット」の用語は、符号器/復号器の実施形態の機能の説明のために単に使用され、本開示を制限する意図はない。
本願で提供されるいくつかの実施形態では、開示されるシステム、装置、及び方法は他の様態で実施されてもよいことが理解されるべきである。例えば、記載される装置の実施形態は、単なる例である。例えば、ユニット分割は、単に、論理的な機能分割であり、実際の実施では他の分割であってもよい。例えば、複数のユニット又はコンポーネントは、他のシステムに結合又は一体化されてよく、あるいは、いくつかの特徴は、無視されても又は実行されなくてもよい。その上、表示又は議論されている相互結合又は直接的な結合若しくは通信接続は、いくつかのインターフェースを使用することによって実施されてもよい。装置又はユニット間の間接的な結合又は通信接続は、電子的な、機械的な、又は他の形態で実施されてもよい。
別個の部分として記載されるユニットは、物理的に分離していてもいなくてもよく、ユニットとして表示されている部分は、物理的なユニットであってもなくてもよく、一箇所に位置しても、あるいは、複数のネットワークユニットに分布してもよい。ユニットの一部又は全部は、実施形態の解決法の目的を達成するために、実際のニーズに従って選択されてよい。
更に、本発明の実施形態における機能ユニットは、1つの処理ユニットに一体化されてよく、あるいは、ユニットの夫々は、物理的に単独で存在してよく、あるいは、2つ以上のユニットは1つのユニットに一体化される。
本発明の実施形態は、ここで記載されている方法及び/又はプロセスのいずれかを実行するよう構成された処理回路を有する装置、例えば、符号器及び/又は復号器を更に有してよい。
実施形態は、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組み合わせとして実施されてよい。例えば、符号器/符号化又は復号器/復号化の機能は、ファームウェア又はソフトウェアの有無によらず処理回路、例えば、プロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)などによって実行されてよい。
符号器100(及び対応する符号化方法100)及び/又は復号器200(及び対応する復号化方法200)の機能は、コンピュータ可読媒体に記憶されているプログラム命令によって実施されてもよい。プログラム命令は、実行される場合に、処理回路、コンピュータ、プロセッサなどに、符号化及び/又は復号化方法のステップを実行させる。コンピュータ可読媒体は、ブルーレイディスク、DVD、CD、USB(フラッシュ)ドライブ、ハードディスク、ネットワークを介して利用可能なサーバストレージなどのような、プログラムが記憶されている非一時的な記憶媒体を含む如何なる媒体でもあることができる。
本発明の実施形態は、コンピュータで実行されるときに、ここで記載されている方法のいずれかを実行するプログラムコードを有するコンピュータプログラムを有するか、又はそのようなコンピュータプログラムである。
本発明の実施形態は、プロセッサによって実行されるときに、コンピュータシステムに、ここで記載されている方法のいずれかを実行させるプログラムコードを有するコンピュータ可読媒体を有するか、又はそのようなコンピュータ可読媒体である。