以下は、本文について詳細に説明する主題の概要である。本概要は、特許請求の範囲を制限するものではない。
上記技術的問題を解決するために、本発明は、エンコーダのイントラ予測過程における算出の複雑さ、記憶の複雑さおよび記憶オーバヘッドを低減でき、且つ符号化・復号化過程におけるデータ処理遅延を低減できる符号化方法、復号化方法、エンコーダ、デコーダおよび記憶媒体を提供することを目的とする。
本発明の態様は以下のように実現される。
第1態様において、本発明の実施例は、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成することと、符号化ブロックの初期値および第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定することと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得することと、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出することと、イントラ予測モード、フィルタリングパラメータおよび予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むこととを含む画像の符号化方法を提供する。
好ましくは、フィルタリングパラメータは、使用するフィルタのフィルタ係数を指示するためのフィルタパラメータを更に含み、第1予測値をフィルタリング処理してイントラ予測値を取得することは、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
好ましくは、方法は、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定することを更に含む。
好ましくは、符号化ブロックの初期値および第1予測値に基づいてフィルタリングパラメータを確定することは、具体的に、レート歪み最適化の方法を使用し、符号化ブロックの初期値および第1予測値に基づいてフィルタリングパラメータを確定することを含む。
好ましくは、レート歪み最適化の方法を使用してフィルタリングパラメータを確定することは、具体的に、符号化ブロックの初期値と第1予測値との間の誤差を低減することにより、フィルタリングパラメータを確定することを含む。
好ましくは、符号化ブロックの初期値と第1予測値との間の誤差に適用される誤差基準は、少なくとも、数値誤差基準と、人間視覚システム感知誤差基準とを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、少なくとも、固定係数のフィルタと、適応調整可能な係数のフィルタとを含む。
好ましくは、固定係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
好ましくは、適応調整可能な係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理することは、具体的に、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを用いて符号化ブロックの第1予測値をフィルタリング処理することを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理することは、フィルタパラメータに基づいて対応するフィルタを確定し、フィルタの係数を設定することと、フィルタを用いて第1予測値をフィルタリング処理することとを含む。
好ましくは、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出することは、符号化ブロックの初期値とイントラ予測値との差分値を算出し、符号化ブロックの予測差分値を取得することと、予測差分値に対して変換および量子化処理を行い、予測差分値パラメータを取得することとを含む。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
好ましくは、シーケンス層フィルタリング制御パラメータは、ビデオシーケンスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、ビデオシーケンスにおけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第1プリセット値と、ビデオシーケンスにおけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第2プリセット値との少なくとも1つを含む。
好ましくは、画像層フィルタリング制御パラメータは、画像におけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要がある否かを指示する1つまたは複数のフラグビットと、画像におけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第3プリセット値と、画像におけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第4プリセット値との少なくとも1つを含む。
好ましくは、スライス層フィルタリング制御パラメータは、スライスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、スライスにおけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第5プリセット値と、スライスにおけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第6プリセット値との少なくとも1つを含む。
好ましくは、ブロック層フィルタリング制御パラメータは、符号化ブロックの第1予測値をフィルタリング処理するか否かを指示する1つまたは複数のフラグビットと、符号化ブロックのサイズがそれに等しい場合、符号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数の符号化ブロックサイズの第7プリセット値と、符号化ブロックのイントラ予測モードがそれにより指示されたイントラ予測モードと同じである場合、符号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数のイントラ予測モードの第8プリセット値との少なくとも1つを含む。
好ましくは、フィルタリングパラメータを符号化することは、フィルタリングパラメータを符号化してフィルタリングパラメータの符号化ビットを取得することと、符号化ビットを、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含むコードストリームにおけるデータ単位に書き込むこととを含む。
第2態様において、本発明の実施例は、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得することと、イントラ予測モードに基づいて復号化ブロックの第1予測値を構成することと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得することと、予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出することと、イントラ予測値と予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得することと、第1復号化値に基づいて復号化ブロックの復号化復元値を取得することとを含む画像の復号化方法を提供する。
好ましくは、コードストリームを解析して復号化ブロックのフィルタリングパラメータを取得することは、コードストリームにおける1つまたは複数のデータ単位を解析し、フィルタリングパラメータを取得することを含み、データ単位は、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含む。
好ましくは、フィルタリングパラメータはフィルタパラメータを含み、第1予測値をフィルタリング処理してイントラ予測値を取得することは、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
好ましくは、フィルタパラメータにより指示されたフィルタは、固定係数のフィルタと、適応調整可能な係数のフィルタとの少なくとも1つを含む。
好ましくは、固定係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
好ましくは、適応調整可能な係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
好ましくは、フィルタパラメータにより指示されたフィルタは、復号化ブロックの隣接する復号化されたブロックのフィルタを含む。
好ましくは、第1予測値をフィルタリング処理してイントラ予測値を取得することは、復号化ブロックの隣接する復号化されたブロックのフィルタを用いて復号化ブロックの第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
好ましくは、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理することは、フィルタパラメータに基づいて対応するフィルタを確定し、フィルタに対して係数設定を行うことと、フィルタを使用して第1予測値をフィルタリング処理することとを含む。
好ましくは、イントラ予測モードに基づいて復号化ブロックの第1予測値を構成した後、方法は、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定することを更に含む。
好ましくは、予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出することは、予測差分値パラメータに対してスケーリングおよび変換処理を行い、符号化ブロックの予測差分値を取得することを含む。
好ましくは、第1復号化値に基づいて復号化ブロックの復号化復元値を取得することは、第1復号化値をループフィルタリング処理し、復号化ブロックの復号化復元値を取得することを含む。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
好ましくは、シーケンス層フィルタリング制御パラメータは、ビデオシーケンスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、ビデオシーケンスにおけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第1プリセット値と、ビデオシーケンスにおけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第2プリセット値との少なくとも1つを含む。
好ましくは、画像層フィルタリング制御パラメータは、画像におけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、画像におけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第3プリセット値と、画像におけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第4プリセット値との少なくとも1つを含む。
好ましくは、スライス層フィルタリング制御パラメータは、スライスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、スライスにおけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第5プリセット値と、スライスにおけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第6プリセット値との少なくとも1つを含む。
好ましくは、ブロック層フィルタリング制御パラメータは、復号化ブロックの第1予測値をフィルタリング処理するか否かを指示する1つまたは複数のフラグビットと、復号化ブロックのサイズがそれに等しい場合、復号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数の復号化ブロックサイズの第7プリセット値と、復号化ブロックのイントラ予測モードがそれにより指示されたイントラ予測モードと同じである場合、復号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数のイントラ予測モードの第8プリセット値との少なくとも1つを含む。
第3態様において、本発明の実施例は、第1予測値構成ユニットと、フィルタリングパラメータ確定ユニットと、イントラ予測値確定ユニットと、予測差分値パラメータ算出ユニットと、符号化ユニットとを備える画像の符号化装置であって、第1予測値構成ユニットは、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成するために用いられ、フィルタリングパラメータ確定ユニットは、符号化ブロックの初期値および第1予測値構成ユニットにより構成された第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定するために用いられ、イントラ予測値確定ユニットは、フィルタリングパラメータ確定ユニットにより確定されたフィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するために用いられ、予測差分値パラメータ算出ユニットは、符号化ブロックの初期値とイントラ予測値確定ユニットにより取得されたイントラ予測値との差分値に基づいて予測差分値パラメータを算出するために用いられ、符号化ユニットは、イントラ予測モード、フィルタリングパラメータ確定ユニットにより確定されたフィルタリングパラメータ、および予測差分値パラメータ算出ユニットにより算出された予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むために用いられる、画像の符号化装置を提供する。
好ましくは、フィルタリングパラメータは、使用するフィルタのフィルタ係数を指示するためのフィルタパラメータを更に含み、イントラ予測値確定ユニットは、具体的に、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得するために用いられる。
好ましくは、イントラ予測値確定ユニットは、更に、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定するために用いられる。
好ましくは、フィルタリングパラメータ確定ユニットは、具体的に、レート歪み最適化の方法を使用し、符号化ブロックの初期値および第1予測値に基づいてフィルタリングパラメータを確定するために用いられる。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、少なくとも、固定係数のフィルタと、適応調整可能な係数のフィルタとを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを含む。
好ましくは、予測差分値パラメータ算出ユニットは、具体的に、符号化ブロックの初期値とイントラ予測値との差分値を算出し、符号化ブロックの予測差分値を取得し、予測差分値に対して変換および量子化処理を行い、予測差分値パラメータを取得するために用いられる。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
好ましくは、符号化ユニット、具体的に、フィルタリングパラメータを符号化してフィルタリングパラメータの符号化ビットを取得し、符号化ビットを、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含むコードストリームにおけるデータ単位に書き込むために用いられる。
第4態様において、本発明の実施例は、解析ユニットと、第1予測値構成ユニットと、イントラ予測値取得ユニットと、予測差分値算出ユニットと、第1復号化値取得ユニットと、復号化復元値取得ユニットとを備える画像の復号化装置であって、解析ユニットは、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得するために用いられ、第1予測値構成ユニットは、解析ユニットにより解析されたイントラ予測モードに基づいて復号化ブロックの第1予測値を構成するために用いられ、イントラ予測値取得ユニットは、フィルタリング指示パラメータが第1予測値構成ユニットにより構成された第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するために用いられ、予測差分値算出ユニットは、解析ユニットにより解析された予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出するために用いられ、第1復号化値取得ユニットは、イントラ予測値取得ユニットにより取得されたイントラ予測値と予測差分値算出ユニットにより算出された予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得するために用いられ、復号化復元値取得ユニットは、第1復号化値取得ユニットにより取得された第1復号化値に基づいて復号化ブロックの復号化復元値を取得するために用いられる画像の復号化装置を提供する。
好ましくは、解析ユニットは、具体的には、コードストリームにおける1つまたは複数のデータ単位を解析し、フィルタリングパラメータを取得するために用いられ、データ単位は、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含む。
好ましくは、フィルタリングパラメータはフィルタパラメータを含み、イントラ予測値取得ユニットは、具体的に、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得するために用いられる。
好ましくは、フィルタパラメータにより指示されたフィルタは、固定係数のフィルタと、適応調整可能な係数のフィルタとの少なくとも1つを含む。
好ましくは、フィルタパラメータにより指示されたフィルタは、復号化ブロックの隣接する復号化されたブロックのフィルタを含む。
好ましくは、イントラ予測値取得ユニットは、更に、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定するために用いられる。
好ましくは、予測差分値算出ユニットは、具体的に、予測差分値パラメータに対してスケーリングおよび変換処理を行い、復号化ブロックの予測差分値を取得するために用いられる。
好ましくは、復号化復元値取得ユニットは、具体的に、第1復号化値をループフィルタリング処理し、復号化ブロックの復号化復元値を取得するために用いられる。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
第5態様において、本発明の実施例は、第1プロセッサと、第1記憶媒体と、第1通信バスとを備え、第1プロセッサと第1記憶媒体とは第1通信バスを介して接続され、第1プロセッサは、第1記憶媒体に記憶された画像符号化関連プログラムを呼び出し、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成するステップと、符号化ブロックの初期値および第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定するステップと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するステップと、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出するステップと、イントラ予測モード、フィルタリングパラメータおよび予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むステップとを実行するエンコーダを提供する。
第6態様において、本発明の実施例は、第2プロセッサと、第2記憶媒体と、第2通信バスとを備え、第2プロセッサと第2記憶媒体とは第2通信バスを介して接続され、第2プロセッサは、第2記憶媒体に記憶された画像復号化関連プログラムを呼び出し、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得するステップと、イントラ予測モードに基づいて復号化ブロックの第1予測値を構成するステップと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するステップと、予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出するステップと、イントラ予測値と予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得するステップと、第1復号化値に基づいて復号化ブロックの復号化復元値を取得するステップとを実行するデコーダを提供する。
第7態様において、本発明の実施例は、エンコーダに適用され、コンピュータ可読媒体には、1つまたは複数の第1プロセッサにより実行されて上記画像の符号化方法を実現することができる1つまたは複数の符号化関連プログラムが記憶されているコンピュータ記憶媒体を提供する。
第8態様において、本発明の実施例は、デコーダに適用され、コンピュータ可読媒体には、1つまたは複数の第2プロセッサにより実行されて上記画像の復号化方法を実現することができる1つまたは複数の復号化関連プログラムが記憶されているコンピュータ記憶媒体を提供する。
本発明の実施例は、画像の符号化方法、復号化方法、エンコーダ、デコーダおよび記憶媒体を提供し、該方法は、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成することと、符号化ブロックの初期値および第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定することと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得することと、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出することと、イントラ予測モード、フィルタリングパラメータおよび予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むこととを含む。イントラ予測モードに基づいて算出された予測値をフィルタリングすることにより、予測値と初期値との間の偏差をより効果的に補償することができ、且つ、フィルタリング過程に使用される入力データが他に関係なく予測値であるため、上記方法を用いてイントラ予測方向の数を効果的に減少し、イントラ予測モードのオーバヘッドを低減することができ、且つ、イントラ予測参照としての隣接画素数を減少し、バッファの記憶オーバヘッドを低減し、符号化・復号化過程において並列または準並列の方法を効果的に使用してデータ処理効率を向上させることができ、参照画素に対するフィルタリング過程、または簡単なフィルタを用いて参照画素をフィルタリングすることを回避し、データアクセス量を低減し、コーデックの設計中の記憶の複雑さを低減する。
図面および詳細な説明を閲読し理解することで、他の態様も理解できる。
従来技術において、ビデオおよび画像の符号化規格に使用されるイントラ予測方法は、現在符号化しているブロックの左隣および上隣位置に位置する符号化された画素点を用いて現在符号化しているブロックにおける画素点の予測値を構成する。従来の規格には、様々なイントラ予測モードが設計される。イントラ予測モードは、符号化ブロックの隣接画素点を用いて符号化ブロックの画素点の予測値を構成する方法を指示し、例えば、直流(DC)モード、イントラ予測方向等である。イントラ予測の効率を向上させるために、より多くのイントラ予測方向を使用することができる。例えば、H.264/AVC規格では、DCモードおよび8つの異なるイントラ予測方向の予測モードを含むDCモードを使用し、H.265/HEVC規格では、平面モード、DCモードおよび33個の異なるイントラ予測方向の予測モードを使用し、H.264/AVCよりも良好なイントラ圧縮効率を取得する。圧縮効率を更に向上させるために、従来技術は、より多くのイントラ予測方向を増加し、より多くの空間領域における隣接画素を参照として用い、空間領域における隣接画素に対して複雑なフィルタリング処理を行う等の方法を使用する。
実際の適用において、既存の方法は、イントラ予測方法を使用するコーデックの圧縮符号化の効率を向上させることができるが、以下のような主な欠陥が存在する。
(1)イントラ予測方向を増加する方法は、イントラ予測モードの数を増加し、それに対応してビデオコードストリームにおけるイントラ予測モード指示情報の符号化ビットオーバヘッドを増加し、エンコーダが符号化ブロックのためにイントラ予測を確定する過程の算出の複雑さおよび記憶の複雑さも増加する。
(2)空間領域における隣接画素を参照として増加する方法は、メモリのオーバヘッドを増加するとともに、現在のブロックのイントラ予測値を確定するために、これらの参照画素の符号化(エンコーダ)および復号化(デコーダ)が全て完了するまで待つ必要があるため、符号化・復号化過程で、並列または準並列の方法を効果的に用いて処理効率を向上させることができず、符号化・復号化過程におけるデータ処理遅延および算出の複雑さを増加する。
(3)空間領域における隣接画素をフィルタリングする方法は、余計なメモリでフィルタリング過程の関連パラメータを記憶する必要があるとともに、複雑なフィルタリング過程はデータのアクセス量を増加し、これらはいずれもコーデックの設計過程における記憶オーバヘッドを増加する。
以下、本発明の実施例における図面を参照しながら、本発明の実施例の態様を明確かつ完全に説明する。
下記実施例において、ビデオとは、画像からなる画像列である。コードストリームとは、ビデオエンコーダがビデオを符号化して生成したコードストリームであり、ビデオエンコーダがビデオを符号化して生成したコードストリームに対してシステム層の処理を行った後に得られた、ビデオエンコーダがビデオを符号化して生成したコードストリームを含む伝送ストリームおよび/またはメディアファイルでもあり、コードストリームを復号化してビデオを取得することができる。システム層の処理は、ビデオコードストリームに対して行われるパッケージ操作であり、例えば、ビデオコードストリームをデータ荷重として伝送ストリームにパッケージするか、またはビデオコードストリームを荷重としてメディアファイルにパッケージする。システム層の処理は、ビデオコードストリームを含む伝送ストリームまたはメディアファイルをデータ荷重として伝送用のストリームまたは記憶用のファイルにパッケージすることも含む。システム層の処理により生成されるデータ単位は、システム層データ単位とも呼ばれ、システム層の処理でデータ荷重をパッケージする過程において、システム層データ単位に追加される情報(例えば、システム層データ単位のヘッダ情報等)はシステム層情報と呼ばれる。サブコードストリームとは、抽出操作を行ってコードストリームから得られる一部のコードストリームであり、サブコードストリームを復号化してビデオ画像を取得することができ、該ビデオ画像は、コードストリームを復号化して取得したビデオ画像よりも解像度が低い画像であってもよいし、コードストリームを復号化して取得したビデオよりもフレームレートが低い画像であってもよく、該ビデオ画像には、コードストリームを復号化して取得したビデオ画像における一部の内容が含まれてもよい。
図1に示すように、本発明の実施例は、画像の符号化方法を提供し、以下のステップを含む。
ステップ101において、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成する。
ステップ102において、符号化ブロックの初期値および第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定する。
ここで、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
例示的には、シーケンス層フィルタリング制御パラメータは、ビデオシーケンスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、ビデオシーケンスにおけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第1プリセット値と、ビデオシーケンスにおけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第2プリセット値との少なくとも1つを含む。
例示的には、画像層フィルタリング制御パラメータは、画像におけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要がある否かを指示する1つまたは複数のフラグビットと、画像におけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第3プリセット値と、画像におけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第4プリセット値との少なくとも1つを含む。
例示的には、スライス層フィルタリング制御パラメータは、スライスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、スライスにおけるサイズがそれに等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の符号化ブロックサイズの第5プリセット値と、スライスにおけるそれを用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第6プリセット値との少なくとも1つを含む。
例示的には、ブロック層フィルタリング制御パラメータは、符号化ブロックの第1予測値をフィルタリング処理するか否かを指示する1つまたは複数のフラグビットと、符号化ブロックのサイズがそれに等しい場合、符号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数の符号化ブロックサイズの第7プリセット値と、符号化ブロックのイントラ予測モードがそれにより指示されたイントラ予測モードと同じである場合、符号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数のイントラ予測モードの第8プリセット値との少なくとも1つを含む。
好ましくは、ステップ102は、具体的に、レート歪み最適化の方法を使用し、符号化ブロックの初期値および第1予測値に基づいてフィルタリングパラメータを確定することを含む。
実際の適用において、レート歪み最適化の方法を使用してフィルタリングパラメータを確定することは、具体的に、符号化ブロックの初期値と第1予測値との間の誤差を低減することにより、フィルタリングパラメータを確定することを含む。
例示的には、符号化ブロックの初期値と第1予測値との間の誤差を確定するために使用される誤差基準は、少なくとも、数値誤差基準と、人間視覚システム感知誤差基準とを含む。
ステップ103において、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得する。
好ましくは、フィルタリングパラメータは、使用するフィルタのフィルタ係数を指示するためのフィルタパラメータを更に含み、第1予測値をフィルタリング処理してイントラ予測値を取得することは、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
また、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定する。
例示的には、フィルタパラメータにより指示された少なくとも1種のフィルタは、少なくとも、固定係数のフィルタと、適応調整可能な係数のフィルタとを含む。
実際において、固定係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
適応調整可能な係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
例示的には、フィルタパラメータにより指示された少なくとも1種のフィルタは、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを含む。
更に、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理することは、具体的に、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを用いて符号化ブロックの第1予測値をフィルタリング処理することを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理することは、フィルタパラメータに基づいて対応するフィルタを確定し、フィルタの係数を設定することと、フィルタを用いて第1予測値をフィルタリング処理することとを含む。
ステップ104において、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出する。
好ましくは、ステップ104は、符号化ブロックの初期値とイントラ予測値との差分値を算出し、符号化ブロックの予測差分値を取得することと、予測差分値に対して変換および量子化処理を行い、予測差分値パラメータを取得することとを含む。
ステップ105において、イントラ予測モード、フィルタリングパラメータおよび予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込む。
好ましくは、フィルタリングパラメータを符号化することは、フィルタリングパラメータを符号化してフィルタリングパラメータの符号化ビットを取得することと、符号化ビットを、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含むコードストリームにおけるデータ単位に書き込むこととを含む。
図2に示すように、本発明の実施例は、画像の復号化方法を提供し、以下のステップを含む。
ステップ201において、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得する。
ここで、コードストリームを解析して復号化ブロックのフィルタリングパラメータを取得することは、コードストリームにおける1つまたは複数のデータ単位を解析し、フィルタリングパラメータを取得することを含み、データ単位は、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含む。
ここで、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
例示的には、シーケンス層フィルタリング制御パラメータは、ビデオシーケンスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、ビデオシーケンスにおけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第1プリセット値と、ビデオシーケンスにおけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第2プリセット値との少なくとも1つを含む。
例示的には、画像層フィルタリング制御パラメータは、画像におけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、画像におけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第3プリセット値と、画像におけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第4プリセット値との少なくとも1つを含む。
例示的には、スライス層フィルタリング制御パラメータは、スライスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示する1つまたは複数のフラグビットと、スライスにおけるサイズがそれに等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数の復号化ブロックサイズの第5プリセット値と、スライスにおけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示した1つまたは複数のイントラ予測モードの第6プリセット値との少なくとも1つを含む。
例示的には、ブロック層フィルタリング制御パラメータは、復号化ブロックの第1予測値をフィルタリング処理するか否かを指示する1つまたは複数のフラグビットと、復号化ブロックのサイズがそれに等しい場合、復号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数の復号化ブロックサイズの第7プリセット値と、復号化ブロックのイントラ予測モードがそれにより指示されたイントラ予測モードと同じである場合、復号化ブロックの第1予測値をフィルタリング処理することを指示するための1つまたは複数のイントラ予測モードの第8プリセット値との少なくとも1つを含む。
ステップ202において、イントラ予測モードに基づいて復号化ブロックの第1予測値を構成する。ステップ203において、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得する。
好ましくは、フィルタリングパラメータはフィルタパラメータを含み、第1予測値をフィルタリング処理してイントラ予測値を取得することは、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
ここで、フィルタパラメータにより指示されたフィルタは、固定係数のフィルタと、適応調整可能な係数のフィルタとの少なくとも1つを含む。
実際の適用において、固定係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
適応調整可能な係数のフィルタは、1次元フィルタと、2次元フィルタと、多段ニューラルネットワークフィルタとの少なくとも1つを含む。
また、フィルタパラメータにより指示されたフィルタは、復号化ブロックの隣接する復号化されたブロックのフィルタを更に含む。
更に、第1予測値をフィルタリング処理してイントラ予測値を取得することは、復号化ブロックの隣接する復号化されたブロックのフィルタを用いて復号化ブロックの第1予測値をフィルタリング処理し、イントラ予測値を取得することを含む。
好ましくは、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理することは、フィルタパラメータに基づいて対応するフィルタを確定し、フィルタに対して係数設定を行うことと、フィルタを使用して第1予測値をフィルタリング処理することとを含む。
好ましくは、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定する。
ステップ204において、予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出する。
好ましくは、ステップ204は、予測差分値パラメータに対してスケーリングおよび変換処理を行い、復号化ブロックの予測差分値を取得することを含む。
ステップ205において、イントラ予測値と予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得する。
ステップ206において、第1復号化値に基づいて復号化ブロックの復号化復元値を取得する。
好ましくは、ステップ206は、第1復号化値をループフィルタリング処理し、復号化ブロックの復号化復元値を取得することを含む。
図3に示すように、本発明の実施例は、第1予測値構成ユニット3001と、フィルタリングパラメータ確定ユニット3002と、イントラ予測値確定ユニット3003と、予測差分値パラメータ算出ユニット3004と、符号化ユニット3005とを備える画像の符号化装置を提供する。
第1予測値構成ユニット3001は、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成するために用いられる。
フィルタリングパラメータ確定ユニット3002は、符号化ブロックの初期値および第1予測値構成ユニット3001により構成された第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定するために用いられる。
イントラ予測値確定ユニット3003は、フィルタリングパラメータ確定ユニット3002により確定されたフィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するために用いられる。
予測差分値パラメータ算出ユニット3004は、符号化ブロックの初期値とイントラ予測値確定ユニット3003により取得されたイントラ予測値との差分値に基づいて予測差分値パラメータを算出するために用いられる。
符号化ユニット3005は、イントラ予測モード、フィルタリングパラメータ確定ユニット3002により確定されたフィルタリングパラメータ、および予測差分値パラメータ算出ユニット3004により算出された予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むために用いられる。
好ましくは、フィルタリングパラメータは、使用するフィルタのフィルタ係数を指示するためのフィルタパラメータを更に含み、イントラ予測値確定ユニット3003は、具体的に、フィルタパラメータにより指示された少なくとも1種のフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得するために用いられる。
好ましくは、イントラ予測値確定ユニット3003は、更に、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定するために用いられる。
好ましくは、フィルタリングパラメータ確定ユニット3002は、具体的に、レート歪み最適化の方法を使用し、符号化ブロックの初期値および第1予測値に基づいてフィルタリングパラメータを確定するために用いられる。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、少なくとも、固定係数のフィルタと、適応調整可能な係数のフィルタとを含む。
好ましくは、フィルタパラメータにより指示された少なくとも1種のフィルタは、符号化ブロックの隣接する符号化されたブロックが使用するフィルタを含む。
好ましくは、予測差分値パラメータ算出ユニット3004は、具体的に、符号化ブロックの初期値とイントラ予測値との差分値を算出し、符号化ブロックの予測差分値を取得し、予測差分値に対して変換および量子化処理を行い、予測差分値パラメータを取得するために用いられる。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
好ましくは、符号化ユニット3005は、具体的に、フィルタリングパラメータを符号化してフィルタリングパラメータの符号化ビットを取得し、符号化ビットを、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含むコードストリームにおけるデータ単位に書き込むために用いられる。
図4に示すように、本発明の実施例は、解析ユニット4001と、第1予測値構成ユニット4002と、イントラ予測値取得ユニット4003と、予測差分値算出ユニット4004と、第1復号化値取得ユニット4005と、復号化復元値取得ユニット4006とを備える画像の復号化装置を提供する。
解析ユニット4001は、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得するために用いられる。
第1予測値構成ユニット4002は、解析ユニット4001により解析されたイントラ予測モードに基づいて復号化ブロックの第1予測値を構成するために用いられる。
イントラ予測値取得ユニット4003は、フィルタリング指示パラメータが第1予測値構成ユニット4002により構成された第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するために用いられる。
予測差分値算出ユニット4004は、解析ユニット4001により解析された予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出するために用いられる。
第1復号化値取得ユニット4005は、イントラ予測値取得ユニット4003により取得されたイントラ予測値と予測差分値算出ユニット4004により算出された予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得するために用いられる。
復号化復元値取得ユニット4006は、第1復号化値取得ユニット4005により取得された第1復号化値に基づいて復号化ブロックの復号化復元値を取得するために用いられる。
好ましくは、解析ユニット4001は、具体的に、コードストリームにおける1つまたは複数のデータ単位を解析し、フィルタリングパラメータを取得するために用いられ、データ単位は、1つまたは複数のパラメータセットと、スライスヘッダと、ブロック層データ単位との少なくとも1つを含む。
好ましくは、フィルタリングパラメータはフィルタパラメータを含み、イントラ予測値取得ユニット4003は、具体的に、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得するために用いられる。
好ましくは、フィルタパラメータにより指示されたフィルタは、固定係数のフィルタと、適応調整可能な係数のフィルタとの少なくとも1つを含む。
好ましくは、フィルタパラメータにより指示されたフィルタは、復号化ブロックの隣接する復号化されたブロックのフィルタを含む。
好ましくは、イントラ予測値取得ユニット4003は、更に、フィルタリング指示パラメータが第1予測値をフィルタリング処理しないことを指示した場合、第1予測値を用いてイントラ予測値を設定するために用いられる。
好ましくは、予測差分値算出ユニット4004は、具体的に、予測差分値パラメータに対してスケーリングおよび変換処理を行い、復号化ブロックの予測差分値を取得するために用いられる。
好ましくは、復号化復元値取得ユニット4006は、具体的に、第1復号化値をループフィルタリング処理し、復号化ブロックの復号化復元値を取得するために用いられる。
好ましくは、フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
図5に示すように、本発明の実施例に係るエンコーダのシステムアーキテクチャの模式図である。エンコーダの入力はビデオであり、エンコーダの出力は、入力されたビデオを符号化した後に生成したコードストリームである。ビデオが画像からなる画像列であるため、エンコーダの符号化過程は、入力されたビデオにおける画像を符号化順序に従って順次符号化することである。ここで、符号化順序は、エンコーダプロファイルに設定された予測構造等のパラメータにより決定される。なお、ビデオにおける画像の符号化順序(復号化端の復号化順序に対応する)は画像の再生順序と同じであってもよいし、異なってもよい。
分割ユニット201は、入力されたビデオにおける画像を、エンコーダの設定に従って分割する。通常、画像は複数の最大符号化ユニットに分割できる。最大符号化ユニットは1つの正方形の画像領域である。画像は1つまたは複数のスライスに分割でき、各スライスには整数個の最大符号化ユニットが含まれてもよいし、整数個でない最大符号化ユニットが含まれてもよい。好ましくは、画像は更に1つまたは複数のタイル(Tile)に分割でき、各タイルには整数個の最大符号化ユニットが含まれてもよいし、整数個でない最大符号化ユニットが含まれてもよい。分割ユニット201は、固定方式に従って画像を分割するように構成されてもよいし、画像の分割方式を動的に調整するように構成されてもよい。例えば、ネットワークの最大伝送ユニット(Ma×imum Transmission Unit、MTU)に適応するために、動的スライス分割の方法を採用し、各スライスの符号化ビット数がMTUの制限を超えないことを確保する。
予測ユニット202は、符号化ブロックの予測値を確定し、ブロック分割ユニット203と、動き推定ユニット204と、動き補償ユニット205と、イントラ予測ユニット206とを備える。予測ユニット202の入力は、ブロック分割ユニットから出力された最大符号化ユニット、および最大符号化ユニットの画像、スライス、タイルにおける位置等のような該最大符号化ユニットに関連する属性である。予測ユニット202は、最大符号化ユニットを1つまたは複数の符号化ブロックに分割し、分割した符号化ブロックをより多くの符号化ブロックに更に分割することができる。分割方式は、四分木分割、二分木分割、三分木分割のうちの1種または複数種を採用することができる。予測ユニット202は、分割した符号化ブロックに対して予測値を確定する。好ましくは、予測ユニット202は、符号化ブロックを1つまたは複数の予測ブロックに更に分割して予測値を確定することができる。予測ユニット202は、復号化画像バッファ214における復号化された画像を参照として符号化ブロックのインター予測値を確定するか、または加算器212から出力された現在の符号化画像における復元された部分(フィルタリングユニット213により処理されていない)を参照として符号化ブロックのイントラ予測値を確定する。予測ユニット202は、常用のRDOの方法を使用して符号化ブロックの予測値を確定し、該予測値に使用されるインター予測、イントラ予測に関連する出力パラメータを取得することができる。
予測ユニット202におけるブロック分割ユニット203は符号化ブロックのブロック分割方式を確定する。ブロック分割ユニット203は、符号化ブロックを1つまたは複数の符号化ブロックに分割でき、分割した符号化ブロックを更により多くの符号化ブロックに分割することができる。分割方式は、四分木分割、二分木分割、三分木分割のうちの1種または複数種を採用することができる。好ましくは、符号化ブロックに対し、ブロック分割ユニット203は符号化ブロックを更に1つまたは複数の予測ブロックに分割することができる。ブロック分割ユニット203はRDO方法を使用して符号化ブロックの分割方式を確定することができる。ブロック分割ユニットから出力されたパラメータは、符号化ブロックの分割方式パラメータを含み、これらのパラメータは、符号化ブロックの分割方式を指示するために用いられる。
動き推定ユニット204および動き補償ユニット205は、復号化画像バッファ214からの1つまたは複数の復号化された画像を参照画像として用い、符号化ブロックのインター予測値を確定する。動き推定ユニット204は参照画像を用いて1つまたは複数の参照画像リストを構成し、各参照画像リストに1つまたは複数の参照画像が含まれ、符号化ブロックの参照画像におけるマッチングブロックを確定する。動き補償ユニット205はマッチングブロックを用いて符号化ブロックの予測値を構成し、且つ符号化ブロックと予測値との間の差分値を算出する。動き推定ユニット204の出力は、マッチングブロック位置を指示するためのパラメータであり、参照画像リスト指示、参照画像インデックス、動きベクトル(Motion Vector、MV)等を含み、ここで、参照画像リスト指示は、マッチングブロックを含む参照画像の所在参照画像リストを指示するために用いられ、参照画像インデックスは、参照画像リストにおけるマッチングブロックを含む参照画像を指示するために用いられ、MVは、符号化ブロックとマッチングブロックとが同一画像の画素点座標系での相互間の相対位置のオフセット量を指示するために用いられる。動き補償ユニット205の出力は、符号化ブロック予測値を構成するパラメータ、例えば、マッチングブロックに対する加重値、マッチングブロックをフィルタリング処理するフィルタのタイプおよびパラメータ等を更に含む。動き推定ユニット204と動き補償ユニット205とは合わせて常用のRDO方法を用い、符号化ブロックのためにレート歪み性能が最適なマッチングブロックおよび2つのユニットの出力パラメータを確定する。
特に、好ましくは、動き推定ユニット204と動き補償ユニット205とは、符号化ブロックが位置する現在の符号化画像を参照画像として使用し、符号化ブロックのイントラ予測値を取得することができる。ここで、イントラ予測とは、符号化ブロックの所在画像におけるデータのみを参照として用いて得られた予測値である。このような場合、動き推定ユニット204および動き補償ユニット205は、現在の符号化画像における部分的に復元された部分(フィルタリングユニット213により処理されていない)を使用し、入力データは、加算器212から出力されてもよく、例えば、1つの画像バッファを用いて加算器212から出力されたデータを記憶し、好ましくは、この画像バッファは、復号化画像バッファ214における1つの特殊な画像バッファである。
イントラ予測ユニット206は、符号化ブロックの所在画像における部分的に復元された部分(フィルタリングユニット213により処理されていない)を用いて符号化ブロックの予測値を確定する。イントラ予測ユニット206は、符号化ブロックの隣接する復元された画素をフィルタの入力値として符号化ブロックの第1予測値を算出する。ここでのフィルタは補間フィルタであってもよいし、ローパスフィルタ(例えば、DC値を算出するためのフィルタ)であってもよい。特に、イントラ予測ユニット206は、符号化ブロックの所在画像における部分的に復元された部分で符号化ブロックのマッチングブロックを探索し、マッチングブロックを符号化ブロックの第1予測値とする。イントラ予測ユニット206はRDOの方法を用いて符号化ブロックの第1予測値を算出するための方法(即ち、イントラ予測モード)および第1予測値を確定する。
第1予測値を算出した後、イントラ予測ユニット206は、符号化ブロックおよび第1予測値を適応フィルタの入力とし、最小化符号化ブロックと第1予測値との間の誤差を目標とし、RDOの方法を用いてフィルタパラメータおよびフィルタリング指示パラメータを含む適応フィルタのフィルタリングパラメータを算出し、ここで、フィルタリング指示パラメータは、第1予測値に対してフィルタリング操作を実行する必要があるか否かを指示するために用いられ、フィルタパラメータは、使用するフィルタのフィルタ係数を指示する。誤差は、平均二乗誤差(Mean Square Error、MSE)のような数値の誤差基準であってもよいし、人間視覚システム(Human Visual System、HVS)に関連する感知誤差基準であってもよい。好ましくは、適応フィルタが様々なフィルタ候補(例えば、1次元フィルタ、2次元フィルタ、異なる次数の1次元フィルタ、異なる形状の2次元フィルタ等)があれば、フィルタパラメータは、第1予測値をフィルタリングするために使用されるフィルタ候補を更に指示する。好ましくは、適応フィルタは多段ニューラルネットワークであってもよい。
フィルタリング指示パラメータの値が第1予測値をフィルタリング処理することを指示した場合、イントラ予測ユニット206は、フィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得し、逆に、イントラ予測値を第1予測値とする。
イントラ予測ユニット206の出力パラメータは、イントラ予測モードを指示するためのパラメータおよびフィルタリングパラメータを含む。
加算器207は、符号化ブロックの初期値と予測値との間の予測差分値を算出するために用いられる。予測差分値は変換ユニット208の入力値であり、変換ユニット208は、1種または複数種の変換方法を用いて予測差分値を変換することができる。信号処理の観点から、各変換方法はいずれも1つの変換マトリックスで表すことができる。変換ユニット208は、符号化ブロックのサイズおよび形状と同じである矩形ブロック(ここで、正方形は矩形の特例である)を予測差分値の変換ブロックとして用いてもよく、予測差分値を複数の矩形ブロック(高さが1つの画素の場合を含む)に分割して矩形ブロックをそれぞれ順次変換処理してもよい。好ましくは、変換ユニット208は予測差分値を複数回変換することができる。様々な変換方法を用いて予測差分値を分割した複数の矩形ブロックを変換し、予測差分値を複数回変換することができる場合、変換ユニット208は、RDOの方法で予測差分値に対する変換パラメータを確定し、変換パラメータは変換過程の実行方式を指示するために用いられる。変換ユニット208は変換パラメータを出力パラメータとする。変換ユニット208は、予測差分値を変換した後に得られた変換係数を出力する。
量子化ユニット209は、変換ユニット208から出力された予測差分値を変換した後に得られた変換係数を量子化処理するために用いられる。量子化ユニットが使用可能な量子化器は、スカラー量子化器およびベクトル量子化器を含む。通常、ビデオエンコーダにおいて、量子化ユニット209はスカラー量子化器を用いて変換係数を量子化し、量子化器の量子化パラメータ(Quantization Parameter、QP)はエンコーダ制御ユニットにより確定される。例えば、エンコーダ制御ユニットは、既存のコードレート制御方法で量子化器の量子化ステップを確定し、エンコーダにおける量子化ステップとQPとの対応関係に基づいてQPを確定することができる。量子化ユニット209の関連パラメータはQPである。量子化ユニット209は、変換係数の量子化値を出力する。
逆量子化ユニット210は、量子化ユニット209と同じQPを用いて変換係数の量子化値に対してスケーリング(Scaling)操作を行い、変換係数の復元値を取得する。逆変換ユニット211は、変換ユニット208に使用される変換の逆変換を用いて変換係数の復元値を処理し、予測差分値の復元値を取得する。加算器212は、予測差分値の復元値および予測ユニット202から出力された符号化ブロックの予測値を入力として符号化ブロックの復元値を算出し、符号化ブロックの復元値を画像バッファに記憶する。画像バッファは、画像の符号化過程において個別に割り当てられた記憶空間であってもよいし、復号化画像バッファ214における1つの画像バッファであってもよい。
フィルタリングユニット213は、画像バッファにおけるデータをフィルタリング処理し、画像の復号化画像を取得する。フィルタリングユニット213は、1種または複数種のフィルタでカスケード接続されて構成されてもよい。例えば、H.265/HEVC規格において、フィルタリングユニット213は、デブロッキングフィルタリングおよびサンプルアダプティブオフセット補償フィルタ(Sample Adaptive Offset、SAO)という2つのフィルタでカスケード接続されて構成される。フィルタリングユニット213は、ニューラルネットワークフィルタを含んでもよい。好ましくは、フィルタリングユニット213が画像バッファにおけるデータをフィルタリングする操作は、画像層で行うことができ、即ち、画像における全ての符号化ブロックの復元値が全て画像バッファに書き込まれてから、画像バッファにおけるデータをフィルタリング処理する。好ましくは、フィルタリングユニット213が画像バッファにおけるデータをフィルタリングする操作は、ブロック層で行うことができ、即ち、ある符号化ブロックの復元データが後続の符号化ブロックの参照データとして用いられない場合、該符号化ブロックの復元データをフィルタリング処理する。フィルタリングユニット213は、既存のRDO方法でフィルタパラメータを確定し、フィルタリングユニット213の出力パラメータとする。フィルタパラメータは、使用するフィルタの指示情報と、フィルタ係数と、フィルタの制御パラメータとを含む。
エンコーダは、フィルタリングユニット213から出力された復号化画像を復号化画像バッファ214に記憶する。エンコーダは、復号化画像バッファ214のために、復号化画像の管理に関連するパラメータ命令を確定し、復号化画像の復号化画像バッファ214における記憶時間および出力等の操作を制御するために用いることができる。本実施例において、これらのパラメータ命令は復号化画像バッファ214の出力パラメータとすることができる。
エントロピー符号化ユニット215は、画像の符号化データに対して2値化およびエントロピー符号化を行い、パラメータを規格に合致する1つまたは複数の「0」、「1」ビットからなるフィールドに転換し、規格におけるコードストリーム構文構造に基づいてフィールドをコードストリームに編成する。エントロピー符号化データは、画像のテクスチャデータおよび非テクスチャデータを含む。ここで、テクスチャデータは、主に符号化ブロックの変換係数の量子化値であり、非テクスチャデータは、テクスチャデータ以外の他の全てのデータを含み、前述したエンコーダにおける各ユニットの出力パラメータ、およびパラメータセット、ヘッダ情報、補助情報等のパラメータを含む。エントロピー符号化ユニット215は、ビデオ符号化規格のコードストリーム編成形式に基づいてコードストリームを生成する。
図6に示すように、本発明の実施例に係るデコーダのシステムアーキテクチャの模式図であり、前述したエンコーダが生成したコードストリームを復号化するために用いられる。デコーダの入力はコードストリームであり、出力は、入力されたコードストリームを復号化した後に生成した復号化ビデオである。
デコーダにおける解析ユニット301は、入力コードストリームを解析し、規格に規定されたエントロピー復号化方法および2値化方法を用い、コードストリームにおける各フィールドに対応する1つまたは複数の「0」、「1」ビット列を対応するパラメータの値に転換する。解析ユニット301はパラメータの値に基づいて他のパラメータの値を導出し、例えば、コードストリームにおけるフラグビットの値が、復号化ブロックが画像における1つ目の復号化ブロックであることを指示した場合、復号化ブロックの所在スライスにおける1つ目の復号化ブロックの画像におけるアドレスを指示するためのパラメータを0に設定する。
解析ユニット301は、復号化ブロック予測値を構成するためのパラメータを予測ユニット302に伝達する。ここで、復号化ブロック予測値を構成するためのパラメータは、前述したエンコーダにおける分割ユニット201および予測ユニット202の出力パラメータを含む。
解析ユニット301は、復号化ブロック予測差分値の復元値を構成するためのパラメータを逆量子化ユニット305、逆変換ユニット306に伝達する。ここで、復号化ブロック予測差分値の復元値を構成するためのパラメータは、前述したエンコーダにおける変換ユニット208、量子化ユニット209の出力パラメータ、および前述したエンコーダにおける量子化ユニット209から出力された変換係数の量子化値を含む。
予測ユニット302は、復号化ブロック予測値を構成するためのパラメータに基づいて復号化ブロックの予測値を構成する。予測ユニット302は、動き補償ユニット303およびイントラ予測ユニット304を含む。予測ユニットの入力は、加算器307から出力された現在の復号化画像における部分的に復元された部分(フィルタリングユニット308により処理されていない)と、復号化画像バッファ309に記憶された復号化された画像とを更に含む。
パラメータが、復号化ブロックがインター予測を使用することを指示した場合、予測ユニット302は、前述したエンコーダにおける推定予測ユニット204と同じ方法を用いて1つまたは複数の参照画像リストを構成し、各参照画像リストには1つまたは複数の参照画像が含まれ、参照画像は復号化画像バッファ309に由来する。動き補償ユニット303は、解析ユニット301が伝達する参照画像リスト指示、参照画像インデックス、動きベクトルに基づき、参照画像で復号化ブロックの1つまたは複数のマッチングブロックを確定し、前述したエンコーダにおける動き補償ユニット205と同じ方法を用いてインター予測値を確定する。予測ユニット302は、動き補償ユニット303から出力されたインター予測値を復号化ブロックの予測値とする。
特に、好ましくは、動き補償ユニット303は、復号化ブロックが位置する現在の復号化画像を参照画像として用い、復号化ブロックのイントラ予測値を取得することができる。ここで、イントラ予測とは、復号化ブロックの所在画像におけるデータのみを参照として用いて得られた予測値である。このような場合、動き補償ユニット303は、現在の復号化画像における部分的に復元された部分(フィルタリングユニット308により処理されていない)を使用し、入力データは、加算器307から出力されてもよく、例えば、1つの画像バッファを用いて加算器307の出力データを記憶する。好ましくは、この画像バッファは復号化画像バッファ309における1つの特殊の画像バッファである。
パラメータが、復号化ブロックがイントラ予測を使用することを指示した場合、予測ユニット302は、前述したエンコーダにおけるイントラ予測ユニット206同じ方法を用いて復号化ブロックの隣接する復元された画素点を確定し、イントラ予測ユニット304の参照画素点として用いる。イントラ予測ユニット306は、復号化ブロック予測値を構成するためのパラメータに基づいてイントラ予測モードを確定し、前述したエンコーダにおけるイントラ予測ユニット206と同じ方法で復号化ブロックの第1予測値を算出する。特に、復号化ブロック予測値を構成するためのパラメータが復号化ブロックのマッチングブロックの現在の部分的に復号化された画像における位置を指示した場合、マッチングブロックを復号化ブロックの第1予測値とする。復号化ブロック予測値を構成するためのパラメータにフィルタリングパラメータが含まれている場合、フィルタリングパラメータにおけるフィルタリング指示パラメータの値が第1予測値をフィルタリング処理することを指示すると、イントラ予測ユニット206は、フィルタリングパラメータにおけるフィルタパラメータにより指示されたフィルタを用いて第1予測値をフィルタリング処理し、イントラ予測値を取得し、逆に、イントラ予測値を第1予測値とする。予測ユニット302は、イントラ予測ユニット304から出力されたイントラ予測値を復号化ブロックの予測値とする。
デコーダは、復号化ブロック予測差分値の復元値を構成するためのパラメータにおけるQPおよび変換係数の量子化値を逆量子化ユニット305の入力とする。逆量子化ユニット305はQPを用いて変換係数の量子化値に対してスケーリング操作を行い、変換係数の復元値を取得する。従い、デコーダにおける逆量子化ユニットは、スケーリング(Scaling)ユニットと呼ばれてもよい。
デコーダは、逆量子化ユニット305から出力された変換係数の復元値、復号化ブロック予測差分値の復元値を構成するためのパラメータのうちの、前述したエンコーダにおける変換ユニット208が出力した変換パラメータを、逆変換ユニット306の入力値とする。逆変換ユニット306は、前述したエンコーダにおける逆変換ユニット211と同じ方法で復号化ブロックの予測差分値の復元値を算出する。なお、ここでの「逆変換」は、エンコーダにおける「変換」に対するものである。ビデオ符号化規格において、逆変換ユニット306が使用する変換方法、即ち、デコーダが変換係数の復元値を予測差分値の復元値に転換するために使用する変換方法が規定されている。
加算器307は、逆変換ユニット306から出力された予測差分値の復元値および予測ユニット302から出力された復号化ブロックの予測値を入力とし、復号化ブロックの復元値を算出し、復号化ブロックの復元値を画像バッファに記憶する。画像バッファは、画像復号化過程において個別に割り当てられた記憶空間であってもよいし、復号化画像バッファ309における1つの画像バッファであってもよい。
デコーダは、解析ユニット301から出力されたフィルタパラメータをフィルタリングユニット308に伝達する。フィルタパラメータは、前述したエンコーダにおけるフィルタリングユニット213の出力パラメータであり、使用するフィルタの指示情報、フィルタ係数、フィルタの制御パラメータを含む。フィルタリングユニット308は、フィルタパラメータを用いて画像バッファにおけるデータをフィルタリング処理し、画像の復号化画像を取得する。フィルタリングユニット308は、1種または複数種のフィルタでカスケード接続されて構成されてもよい。例えば、H.265/HEVC規格において、フィルタリングユニット308は、デブロッキングフィルタリングおよびサンプルアダプティブオフセット補償フィルタ(Sample Adaptive Offset、SAO)という2つのフィルタでカスケード接続されて構成される。フィルタリングユニット308はニューラルネットワークフィルタを含んでもよい。好ましくは、フィルタリングユニット308が画像バッファにおけるデータをフィルタリングする操作は、画像層で行うことができ、即ち、画像における全ての復号化ブロックの復元値が全て画像バッファに書き込まれてから、画像バッファにおけるデータをフィルタリング処理する。好ましくは、フィルタリングユニット308が画像バッファにおけるデータをフィルタリングする操作は、ブロック層で行うことができ、即ち、ある復号化ブロックの復元データが後続の復号化ブロックの参照データとして用いられない場合、該復号化ブロックの復元データをフィルタリング処理する。
デコーダは、フィルタリングユニット308から出力された復号化画像を復号化画像バッファ309に記憶する。更に、デコーダは、解析ユニット301から出力された復号化画像の管理に関連するパラメータ命令(即ち、前述したエンコーダにおける復号化画像バッファ214の出力パラメータ)を用い、復号化画像の復号化画像バッファ309における記憶時間および出力等の操作を制御する。
図7に示すように、本発明の実施例に係るエンコーダのイントラ予測ユニットの構造模式図である。イントラ予測ユニット206は、第1予測値算出ユニット401と、適応フィルタリングユニット402とを含む。
なお、データストリームとは、ソフトウェアによる実現での関数の入口パラメータおよびリターンパラメータ、ハードウェアによる実現でのバスで伝達されるデータ、記憶ユニット間で共有されるデータ(レジスタ共有データを含む)等である。
第1予測値算出ユニット401の入力データは、データストリーム40およびデータストリーム41を含み、出力データはデータストリーム42である。データストリーム40は、前述したエンコーダにおけるブロック分割ユニット201の出力データであり、符号化ブロックの初期値である。データストリーム41は、前述したエンコーダが該符号化ブロックを符号化する前に加算器212が出力したデータであり、現在の符号化画像における部分的に復元された一部のデータ(前述したエンコーダにおけるフィルタリングユニット213により処理されていない)である。データストリーム42は第1予測値算出ユニット401の出力データであり、符号化ブロックの第1予測値である。
適応フィルタリングユニット402の入力データは、データストリーム40、データストリーム42、およびデータストリーム43であり、出力データはデータストリーム43である。データストリーム43は、データストリーム42を適応フィルタリング処理した後の出力値であり、符号化ブロックのイントラ予測値である。適応フィルタリングユニット402のフィルタリングパラメータ(フィルタパラメータおよびフィルタリング指示パラメータを含む)を確定する過程において、データストリーム43は、フィードバックデータとして適応フィルタリングユニット402に再入力される。特に、適応フィルタリングユニット402がデータストリーム42をフィルタリングしない場合、イントラ予測ユニット206はデータストリーム42を直接適応フィルタリングユニット402の出力データストリーム43とする。
具体的には、第1予測値算出ユニット401は、イントラ予測方法1およびイントラ予測方法2を用いて第1予測値を算出し、データストリーム42を出力することができる。
図7に示すイントラ予測方法1において、「Curr」は符号化ブロックを表し、その隣接する復号化された画素点を格子点で表す。図7において、符号化ブロックの上隣および左隣の復号化された画素点を例示的に示す。複数種の異なる符号化順序で、符号化ブロックの右隣または下隣位置にも復号化された画素点が存在する可能性がある。イントラ予測方法1は、直流予測モード、平面予測モード、方向性補間予測モード等のような1種または複数種のイントラ予測モードを含む。イントラ予測方法1を使用する場合、第1予測値算出ユニット401は、使用するイントラ予測モードを指示するパラメータを出力する。
図7に示すイントラ予測方法2において、「Curr」は符号化ブロックを表し、格子点領域は、符号化ブロックを符号化する前の符号化ブロックの所在画像における部分的に復元された一部のデータを表し、「Ref」は、符号化ブロックのマッチングブロックを表す。イントラ予測方法2を使用する場合、第1予測値算出ユニット401は、マッチングブロックの画像における位置パラメータのようなマッチングブロックの構成を指示するパラメータを出力する。イントラ予測方法2は、ブロックマッチングモード、ストリングマッチングモード等のような1種または複数種のイントラ予測モードを含んでもよい。
通常、第1予測値算出ユニット401はイントラ予測方法1を使用する。第1予測値算出ユニット401がイントラ予測方法2を使用することが許可されるエンコーダにおいて、第1予測値算出ユニット401は、符号化ブロックの第1予測値を算出するためにイントラ予測方法1を使用するかイントラ予測方法2を使用するかを示すために、イントラ予測方法の指示情報を出力する必要がある。
実際の適用において、第1予測値算出ユニット401は、既存のRDOの方法を用いて符号化ブロックのためにイントラ予測モードを選択し、第1予測値を算出してデータストリーム42として適応フィルタリングユニット402に出力する。第1予測値算出ユニット401の出力パラメータは、符号化ブロックのイントラ予測モード指示情報である。
なお、適応フィルタリングユニット402には、固定係数の候補フィルタおよび適応調整可能な係数の候補フィルタを含む1種または複数種の候補フィルタが含まれてもよい。候補フィルタは、1次元フィルタ、2次元フィルタ、異なる次数の1次元フィルタ、異なる形状の2次元フィルタ、多段ニューラルネットワーク等を含んでもよい。
ここで、適応フィルタリングユニット402に固定係数の候補フィルタが含まれている場合、適応フィルタリングユニット402は該候補フィルタを用いて入力されたデータストリーム42をフィルタリング処理してデータストリーム43を取得し、データストリーム43とデータストリーム40との間の誤差および該候補フィルタパラメータ情報の符号化に必要なビットオーバヘッドを算出する。複数の固定係数の候補フィルタが存在している場合、適応フィルタリングユニット402は、既存のRDO方法を用い、複数の候補フィルタからRDOのコスト関数値を最適にし得る固定係数の候補フィルタを選択し、該フィルタを用いてデータストリーム42をフィルタリングした結果をデータストリーム43とする。
適応フィルタリングユニット402に適応調整可能な係数の候補フィルタが含まれている場合、適応フィルタリングユニット402はフィルタを初期化し、該候補フィルタを用いて入力されたデータストリーム42をフィルタリング処理してデータストリーム43を取得し、データストリーム43とデータストリーム40との間の誤差を算出し、誤差に基づいてフィルタパラメータを調整する。誤差は、MSEのような数値誤差基準であってもよいし、HVSに関連する感知誤差基準であってもよい。適応フィルタリングユニット402は、調整後のフィルタパラメータを用いてデータストリーム42を再びフィルタリングし、データストリーム42とデータストリーム43との間の誤差を算出してフィルタパラメータを調整することができる。適応フィルタリングユニット402は、指定された繰り返し回数に達するまで、または誤差が著しく小さくならない(例えば、誤差値が閾値よりも小さくなるか、または繰り返しを1回経た後、誤差値の低下量が閾値よりも小さくなる)まで、上記過程を繰り返し実行することができる。これは、フィルタリング誤差を最小化することを目標とする繰り返しフィルタリング過程である。
好ましくは、適応フィルタリングユニット402は、誤差を算出した後、該候補フィルタパラメータ情報を符号化するために必要なビットオーバヘッドを更に算出し、既存のRDO方法のコスト関数を算出し、コスト関数を最小化することを目標として上記繰り返しフィルタリング過程を実行することができる。複数の異なる適応調整可能な係数の候補フィルタが存在している場合、適応フィルタリングユニットが候補フィルタのフィルタリングパラメータおよびフィルタリング誤差を確定した後、適応フィルタリングユニット402は、既存のRDO方法を用い、複数の候補フィルタからRDOのコスト関数値を最適にし得るフィルタおよびフィルタパラメータを選択し、該フィルタを用いてデータストリーム42をフィルタリングした結果をデータストリーム43とする。
好ましくは、算出の複雑さを低減するために、符号化ブロックの隣接ブロックがイントラ予測モードを用いて符号化し、且つ適応フィルタリングを用いて第1予測値をフィルタリングする場合、適応フィルタリングユニット402は、符号化ブロックのフィルタリングパラメータを確定する過程において、隣接ブロックのフィルタリングパラメータを直接用いてフィルタを初期化し、隣接ブロックのフィルタリングパラメータを用いたフィルタを1つの候補フィルタとして用いることができる。隣接ブロックのフィルタリングパラメータを用いて取得したRDO方法でのコスト関数値が最小になると、適応フィルタリングユニット402の出力パラメータは、「隣接ブロックのフィルタリングパラメータを使用する」ことを指示するものであってもよい。
固定係数の候補フィルタと適応調整可能な係数の候補フィルタとが全て使用可能な場合、適応フィルタリングユニット402は、既存のRDO方法を用い、2種の候補フィルタからRDOのコスト関数値を最適にし得るフィルタおよびフィルタパラメータを選択することが理解できる。適応フィルタリングユニット402は、最適なフィルタを用いてデータストリーム42をフィルタリングした結果をデータストリーム43とする。
適応フィルタリングユニット402の出力パラメータは、フィルタパラメータおよびフィルタリング指示パラメータを含むフィルタリングパラメータである。ここで、フィルタリング指示パラメータは、第1予測値に対してフィルタリング操作を実行する必要があるか否かを指示するために用いられ、フィルタパラメータは、使用するフィルタのフィルタ係数を指示する。
イントラ予測ユニット206は、データストリーム43を符号化ブロックのイントラ予測値とする。イントラ予測ユニット206は、第1予測値算出ユニット401の出力パラメータおよび適応フィルタリングユニット402の出力パラメータを出力する。
なお、前述イントラ予測ユニット206の実施方法において、第1予測値算出ユニット401および適応フィルタリングユニット402に対してそれぞれ既存のRDO方法を用いて最適なイントラ予測モードおよびフィルタリングパラメータを確定する。好ましくは、イントラ予測ユニット206は、既存のグローバル最適化の方法を使用し、同時に第1予測値算出ユニット401および適応フィルタリングユニット402に対して既存のRDO方法を用いて連携最適化なイントラ予測モードおよびフィルタリングパラメータを確定してもよい。
図8に示すように、本発明の実施例に係るエンコーダにおけるエントロピー符号化ユニットがイントラ予測ユニットから出力されたパラメータを符号化するデータ処理のフローチャートである。具体的には、前述したエンコーダにおけるエントロピー符号化ユニット215は、符号化ブロックがイントラ予測モードを用いる場合、イントラ予測ユニット206から出力されたパラメータを符号化する。処理フローの入力は、イントラ予測ユニット206から出力されたパラメータであり、処理フローの出力は、イントラ予測モードおよび適応フィルタのフィルタリングパラメータに対応するコードストリームである。
ステップ501、イントラ予測モードを符号化する。
実際の適用において、エントロピー符号化ユニット215は符号化ブロックのイントラ予測モードを符号化する。具体的には、以下の2種の場合を含む。
場合1:エンコーダは、イントラ予測ユニット206の第1予測値算出ユニット401におけるイントラ予測方法1のみを使用する。
エントロピー符号化ユニット215は、まず、符号化ブロックに隣接する符号化されたブロックのイントラ予測モードに基づき、符号化ブロックが使用可能な1種または複数種の最も使用可能なイントラ予測モードを導出する。
符号化ブロックが使用するイントラ予測モードが最も使用可能なイントラ予測モードのうちの1種のイントラ予測モードであれば、エントロピー符号化ユニット215は、フラグビットを符号化し、フラグビットの値は、「符号化ブロックが使用するイントラ予測モードが最も使用可能なイントラ予測モードのうちのモードである」ことを指示するように構成され、最も使用可能なイントラ予測モードに含まれているモードが1種以上であれば、エントロピー符号化ユニット215は、符号化ブロックが使用するイントラ予測モードの最も使用可能なイントラ予測モードにおけるインデックス番号を符号化する。
符号化ブロックが使用するイントラ予測モードが最も使用可能なイントラ予測モードのうちの1種のイントラ予測モードでなければ、符号化ブロックが使用するイントラ予測モードの最も使用可能なイントラ予測モードのうちのイントラ予測モード以外の他のイントラ予測モードにおけるインデックス番号を符号化する。
場合2:エンコーダは、イントラ予測ユニット206の第1予測値算出ユニット401におけるイントラ予測方法1およびイントラ予測方法2を使用する。
符号化は、符号化ブロックのイントラ予測モードがイントラ予測方法1に属するかイントラ予測方法2に属するかを指示するための識別情報である。1つの好ましい使用方法として、エントロピー符号化ユニット215は1つのフラグビットを符号化して上記情報を指示する。1つの好ましい方法として、符号化ブロックのイントラ予測フラグは、符号化ブロックがイントラ予測方法1におけるイントラ予測モードを使用することを指示するためだけに用いられ、符号化ブロックがイントラ予測方法2を使用すると、エントロピー符号化ユニット215は符号化ブロックのイントラ予測フラグを「NO」に符号化し、符号化ブロックの参照画像インデックスを、「符号化ブロックが使用する参照画像は符号化ブロックの所在画像である」ことを指示するために対応する値に符号化する。好ましくは、エントロピー符号化ユニット215は、イントラ予測方法2に関連するフィールドを更に符号化することができ、符号化ブロックが使用するイントラ予測モードを指示するために用いられ、イントラ予測方法2に含有可能なイントラ予測モードは、ブロックマッチングモード、ストリングマッチングモード等を有し、エントロピー符号化ユニット215は、マッチングブロック、マッチングストリングに関連するパラメータを確定するために符号化し続け、パラメータは、マッチングブロック、マッチングストリングの符号化ブロックの所在画像における位置を確定するために用いられる。
ステップ502、フィルタリング指示パラメータを符号化する。
ここで、フィルタリング指示パラメータは、第1予測値に対してフィルタリング操作を実行する必要があるか否かを指示するために用いられる。フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つの制御パラメータを含む。
なお、シーケンス層フィルタリング制御パラメータは、ビデオ全体における画像に対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。シーケンス層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングすることができ(符号化ブロックをフィルタリングしなくてもよい)、逆に、シーケンス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングしない。エントロピー符号化ユニット215は、有効範囲で、ビデオ全体のパラメータセットでシーケンス層フィルタリング制御パラメータを符号化することができる。シーケンス層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記シーケンス層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、ビデオシーケンスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示することと、前記シーケンス層フィルタリング制御パラメータが1つまたは複数の符号化ブロックサイズの第1プリセット値を含み、前記第1プリセット値が、ビデオシーケンスにおけるサイズが前記第1プリセット値に等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記シーケンス層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第2プリセット値を含み、前記第2プリセット値が、ビデオシーケンスにおける前記第2プリセット値を用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
画像層フィルタリング制御パラメータは、1つの画像に対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。画像層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングすることができ(符号化ブロックをフィルタリングしなくてもよい)、逆に、シーケンス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングしない。エントロピー符号化ユニット215は、有効範囲で、1つの画像のパラメータセットで画像層フィルタリング制御パラメータを符号化することができる。画像層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記画像層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、画像におけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要がある否かを指示することと、前記画像層フィルタリング制御パラメータが1つまたは複数の符号化ブロックサイズの第3プリセット値を含み、前記第3プリセット値が、画像におけるサイズが前記第3プリセット値に等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記画像層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第4プリセット値を含み、前記第4プリセット値が、画像における前記第4プリセット値を用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
スライス層フィルタリング制御パラメータは、1つのスライスに対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。スライス層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングすることができ(符号化ブロックをフィルタリングしなくてもよい)、逆に、スライス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングしない。エントロピー符号化ユニット215は、スライスヘッダでスライス層フィルタリング制御パラメータを符号化する。スライス層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記スライス層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、スライスにおけるイントラ予測モードを用いる符号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示することと、前記スライス層フィルタリング制御パラメータが1つまたは複数の符号化ブロックサイズの第5プリセット値を含み、前記第5プリセット値が、スライスにおけるサイズが前記第5プリセット値に等しい符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記スライス層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第6プリセット値を含み、前記第6プリセット値が、スライスにおける前記第6プリセット値を用いて指示するイントラ予測モードの符号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
ブロック層フィルタリング制御パラメータは、1つのブロックに対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。ブロック層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングし、逆に、スライス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット402は、符号化ブロックの第1予測値をフィルタリングしない。エントロピー符号化ユニット215は、符号化ブロックのデータ単位でブロック層フィルタリング制御パラメータを符号化する。ブロック層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記ブロック層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、前記符号化ブロックの第1予測値をフィルタリング処理することを指示することと、前記ブロック層フィルタリング制御パラメータが1つまたは複数の符号化ブロックサイズの第7プリセット値を含み、前記符号化ブロックのサイズが前記第7プリセット値に等しい場合、前記符号化ブロックの第1予測値をフィルタリング処理することを指示するために用いられることと、前記ブロック層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第8プリセット値を含み、前記符号化ブロックのイントラ予測モードが前記第8プリセット値により指示されたイントラ予測モードと同じである場合、前記符号化ブロックの第1予測値をフィルタリング処理することを指示するために用いられることとの少なくとも1つを含む。
なお、エントロピー符号化ユニット215がステップ502を実行することにより、ブロック層フィルタリング制御パラメータに対する符号化を完了する。エンコーダがシーケンス層フィルタリング制御パラメータ、画像層フィルタリング制御パラメータ、スライス層フィルタリング制御パラメータのうちの1種または複数種を使用すれば、エントロピー符号化ユニット215は、対応するパラメータセットを生成する過程においてシーケンス層フィルタリング制御パラメータ、画像層フィルタリング制御パラメータを符号化する必要があり、エントロピー符号化ユニット215は、スライスヘッダを符号化する過程においてスライス層フィルタリング制御パラメータを符号化する必要がある。エンコーダは、プロファイルに基づいてシーケンス層、画像層、スライス層フィルタリング制御パラメータを設定してもよく、RDO方法を用いて上記制御パラメータの値を動的に確定してもよい。ここで、プロファイルには、エンコーダを初期化する過程用のパラメータ設定が記載されている。
なお、制御範囲の観点から、シーケンス層の範囲は画像層よりも大きく、画像層の範囲はスライス層よりも大きく、スライス層の範囲はブロック層よりも大きい。通常、制御パラメータの制御メカニズムは、制御範囲が大きな制御パラメータが「使用可能」を指示すると、制御範囲が小さい制御パラメータを符号化し、この小さい制御範囲内で「使用可能であるか否か」を指示するために用いられる。特に、ブロック層フィルタリング制御パラメータの場合、1つの符号化ブロックが複数のサブブロックに分割されると、この符号化ブロックのブロック層フィルタリング制御パラメータの制御範囲はサブブロックよりも大きく、即ち、この符号化ブロックのブロック層フィルタリング制御パラメータが「使用しない」ことを指示すると、サブブロックは適応フィルタリングを使用せず、エントロピー符号化ユニット215はサブブロックのブロック層フィルタリング制御パラメータを符号化する必要がない。
好ましくは、エンコーダは、指定されたイントラ予測モードを用いて得られた第1予測値だけをフィルタリング処理するように構成されてもよい。例えば、イントラ予測方法2を用いる符号化ブロックの第1予測値だけをフィルタリング処理するか、または、イントラ予測方法1におけるDCモード、平面モードのような1つまたは複数のイントラ予測モードだけを使用するものをフィルタリング処理する。このような場合、ブロック層で、符号化ブロックがこれらのイントラ予測モードを使用する場合にしか、エントロピー符号化ユニット215はブロック層フィルタリング制御パラメータを符号化しない。または、制御範囲がブロック層よりも大きいフィルタリング制御パラメータが「使用可能」を指示すると、符号化ブロックがこれらのイントラ予測モードを使用する場合、エンコーダは符号化ブロックの第1予測値をフィルタリングし、エントロピー符号化ユニット215はブロック層フィルタリング制御パラメータを符号化する必要がない。
ステップ503において、エントロピー符号化ユニット215は、符号化ブロックのブロック層フィルタリング制御パラメータが符号化ブロックの第1予測値をフィルタリングする必要があることを指示するか否かを判断する。判断結果が「YES」であれば、ステップ504を実行し、逆に、判断結果が「NO」であれば、ステップ507を実行する。
ステップ504において、エントロピー符号化ユニット215は、符号化ブロックのフィルタパラメータが「隣接ブロックの符号化ブロックのフィルタパラメータを使用する」ことを指示したか否かを判断する。判断結果が「YES」であれば、ステップ505を実行し、逆に、判断結果が「NO」であれば、ステップ506を実行する。
ステップ505において、エントロピー符号化ユニット215は、該符号化ブロックのフィルタパラメータにより指示された符号化ブロックの位置情報を符号化する。
ここで、位置情報は、符号化ブロックの左隣接の符号化ブロック、上隣の符号化ブロックのような符号化ブロックの所在画像における符号化されたブロックの位置、符号化ブロックとそのフィルタパラメータにより指示された符号化ブロックとの間の同一座標系での位置オフセット量等であってもよい。
好ましくは、位置情報は、符号化ブロックの時間領域における隣接ブロックの位置であってもよい。時間領域における隣接ブロックは、符号化ブロックと異なる画像に位置する符号化ブロックである。時間領域における隣接ブロックは、固定位置のブロック、例えば、他の符号化された画像における符号化ブロックと同じ位置に位置するブロックであってもよいし、位置オフセット量で指示される符号化ブロックであってもよい。
ステップ506において、エントロピー符号化ユニット215は、該符号化ブロックのフィルタパラメータを符号化する。
ステップ507において、エントロピー符号化ユニット215が符号化ブロックのイントラ予測モードおよびフィルタリングパラメータを符号化する過程は終了する。
エントロピー符号化ユニット215は、該符号化過程において生成したコードストリームを出力コードストリームに書き込む。
図9に示すように、本発明の実施例に係るデコーダのイントラ予測ユニットの構造模式図である。ビデオ画像のコードストリームを復号化する過程で復号化ブロックのイントラ予測値を構成し、復号化ブロックを復号化するために用いることができる。イントラ予測ユニット304は、第1予測値算出ユニット601と適応フィルタリングユニット602とを備える。
第1予測値算出ユニット601の入力データは、データストリーム60およびデータストリーム61を含み、出力データはデータストリーム62である。データストリーム60は、前述したデコーダにおける解析ユニット301の出力データであり、復号化ブロックのイントラ予測モードを指示する。データストリーム61は、前述したデコーダが該復号化ブロックを復号化する前の加算器307の出力データであり、現在の復号化画像における部分的に復元された一部のデータ(前述したデコーダにおけるフィルタリングユニット308により処理されていない)である。データストリーム62は第1予測値算出ユニット601の出力データであり、復号化ブロックの第1予測値である。
適応フィルタリングユニット602の入力データは、データストリーム62およびデータストリーム63であり、出力データはデータストリーム64である。データストリーム64は、データストリーム62を適応フィルタリング処理した後の出力値であり、復号化ブロックのイントラ予測値である。データストリーム63は解析ユニット301の出力データであり、適応フィルタリングユニット602が使用するフィルタパラメータおよびフィルタリング指示パラメータを含むフィルタリングパラメータであり、ここで、フィルタリング指示パラメータは、第1予測値に対してフィルタリング操作を実行する必要があるか否かを指示するために用いられ、フィルタパラメータは、使用するフィルタのフィルタ係数を指示する。特に、適応フィルタリングユニット602がデータストリーム62をフィルタリングしない場合、イントラ予測ユニット304はデータストリーム62を直接適応フィルタリングユニット602の出力データストリーム64とする。
なお、前述したデコーダにおけるイントラ予測ユニット304の第1予測値算出ユニット601は、イントラ予測方法1およびイントラ予測方法2を用いて第1予測値を算出し、データストリーム62を出力することができる。
図9に示すイントラ予測方法1において、「Curr」は復号化ブロックを表し、その隣接する復号化された画素点を格子点で表す。図9において、復号化ブロックの上隣および左隣の復号化された画素点を例示的に示す。様々な異なる復号化順序で、復号化ブロックの右隣または下隣のブロックに、復号化された画素点が存在する可能性もある。イントラ予測方法1は、直流予測モード、平面予測モード、方向性補間予測モード等のような1種または複数種のイントラ予測モードを含む可能性もある。イントラ予測方法1を使用する場合、第1予測値算出ユニット601は、データストリーム60により指示されたイントラ予測モードを用いて取得された復号化ブロックの第1予測値を出力する。
図9に示すイントラ予測方法2において、「Curr」は復号化ブロックを表し、格子点領域は、復号化ブロックを復号化する前の復号化ブロックの所在画像における部分的に復元された一部のデータを表し、「Ref」は復号化ブロックのマッチングブロックを表す。イントラ予測方法2を使用する場合、第1予測値算出ユニット601は、データストリーム60により指示されたマッチングパラメータを用いて取得された復号化ブロックの第1予測値を出力する。マッチングパラメータは、マッチングブロックの画像における位置パラメータのようなマッチングブロックを構成するパラメータを含む。第1予測値算出ユニット601は、マッチングブロックを用いて復号化ブロックの第1予測値を構成する。例えば、マッチングブロックを第1予測値とするか、または、マッチングブロックを加重処理する。イントラ予測方法2は、ブロックマッチングモード、ストリングマッチングモード等のような1種または複数種のイントラ予測モードを含んでもよい。
通常、第1予測値算出ユニット601はイントラ予測方法1を使用する。第1予測値算出ユニット601がイントラ予測方法2を使用することが許可されるデコーダにおいて、第1予測値算出ユニット601は、データストリーム60におけるイントラ予測方法の指示情報に基づき、該復号化ブロックを復号化する過程において復号化ブロックの第1予測値を算出するためにイントラ予測方法1を使用するかイントラ予測方法2を使用するかを確定する。第1予測値算出ユニット601は、得られた第1予測値をデータストリーム62として適応フィルタリングユニット602に出力する。
実際の適用において、適応フィルタリングユニット602には、固定係数の候補フィルタおよび適応調整可能な係数の候補フィルタを含む1種または複数種の候補フィルタが含まれてもよい。候補フィルタは、1次元フィルタ、2次元フィルタ、異なる次数の1次元フィルタ、異なる形状の2次元フィルタ、多段ニューラルネットワーク等を含んでもよい。適応フィルタリングユニット602は、データストリーム63におけるフィルタリングパラメータを用いてデータストリーム62をフィルタリング処理し、データストリーム64を取得する。イントラ予測ユニット304はデータストリーム64を復号化ブロックのイントラ予測値とする。
図10に示すように、本発明の実施例に係るデコーダにおける解析ユニットが復号化ブロックのコードストリームにおけるイントラ予測モードおよびフィルタリングパラメータを解析するデータ処理のフローチャートである。処理フローの入力は、入力されたコードストリームにおけるイントラ予測モードおよび適応フィルタのフィルタリングパラメータに対応するコードストリームであり、出力は、イントラ予測モードおよびフィルタリングパラメータである。前述したデコーダは、イントラ予測モードをイントラ予測ユニット304における第1予測値算出ユニット601の入力データストリーム60とし、前述したデコーダは、フィルタリングパラメータをイントラ予測ユニット304における適応フィルタリングユニット602の入力データストリーム63とする。
ステップ701において、解析ユニット301はコードストリームを解析し、復号化ブロックのイントラ予測モードを取得する。
場合1:デコーダは、イントラ予測ユニット304の第1予測値算出ユニット601におけるイントラ予測方法1のみを用いる。
解析ユニット301は、まず、復号化ブロックの隣接する復号化されたブロックのイントラ予測モードに基づき、復号化ブロックが使用可能な1種または複数種の最も使用可能なイントラ予測モードを導出する。
解析ユニット301はフラグビットを解析し、フラグビットの値は、「復号化ブロックが使用するイントラ予測モードが、最も使用可能なイントラ予測モードのうちのモードであるか否か」を指示する。「YES」であれば、最も使用可能なイントラ予測モードに1種のイントラ予測モードのみが含まれる場合、解析ユニット301は、該イントラ予測モードを復号化ブロックのイントラ予測モードとし、最も使用可能なイントラ予測モードに複数種のイントラ予測モードのみが含まれる場合、解析ユニット301はインデックス番号を解析し、最も使用可能なイントラ予測モードのうちの該インデックス番号に対応するイントラ予測モードを復号化ブロックのイントラ予測モードとする。逆に、フラグビットの値が「NO」を指示すれば、解析ユニット301はインデックス番号を解析し、復号化ブロックが使用するイントラ予測モードを、最も使用可能なイントラ予測モードにおけるイントラ予測モード以外の他のイントラ予測モードのうちの該インデックス番号に対応するイントラ予測モードとする。
場合2:デコーダは、イントラ予測ユニット304の第1予測値算出ユニット601におけるイントラ予測方法1およびイントラ予測方法2を用いる。
解析ユニット301は、復号化ブロックのイントラ予測モードがイントラ予測方法1に属するかイントラ予測方法2に属するかを指示するための識別情報を解析する。1つの好ましい使用方法として、解析ユニット301は、上記情報を指示する1つのフラグビットを解析する。1つの好ましい方法として、解析ユニット301が復号化ブロックのイントラ予測フラグを「NO」と解析し、且つ復号化ブロックの参照画像インデックスが「復号化ブロックが使用する参照画像は復号化ブロックの所在画像である」ことを指示する場合、復号化ブロックのイントラ予測モードをイントラ予測方法2とする。好ましくは、解析ユニット301は、コードストリームにおけるイントラ予測方法2に関連するフィールドを更に解析し、復号化ブロックが使用するイントラ予測モードを確定し、イントラ予測方法2に含有可能なイントラ予測モードは、ブロックマッチングモード、ストリングマッチングモード等を有し、解析ユニット301は、コードストリームを解析し続け、マッチングブロック、マッチングストリングの復号化ブロックの所在画像における位置を確定するためのマッチングブロック、マッチングストリングの確定に関連するパラメータを取得する。
ステップ702、フィルタリング指示パラメータを復号化する。
フィルタリング指示パラメータは、第1予測値に対してフィルタリング操作を実行する必要があるか否かを指示するために用いられる。フィルタリング指示パラメータは、シーケンス層フィルタリング制御パラメータと、画像層フィルタリング制御パラメータと、スライス層フィルタリング制御パラメータと、ブロック層フィルタリング制御パラメータとの少なくとも1つを含む。
シーケンス層フィルタリング制御パラメータは、ビデオ全体における画像に対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。シーケンス層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングすることができ(復号化ブロックをフィルタリングしなくてもよい)、逆に、シーケンス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングしない。解析ユニット301は、有効範囲がビデオ全体のパラメータセットが取得したシーケンス層フィルタリング制御パラメータを解析する。シーケンス層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記シーケンス層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、ビデオシーケンスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示することと、前記シーケンス層フィルタリング制御パラメータが1つまたは複数の復号化ブロックサイズの第1プリセット値を含み、前記第1プリセット値が、ビデオシーケンスにおけるサイズが前記第1プリセット値に等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記シーケンス層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第2プリセット値を含み、前記第2プリセット値が、ビデオシーケンスにおける前記第2プリセット値を用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
画像層フィルタリング制御パラメータは、1つの画像に対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。画像層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングすることができ(復号化ブロックをフィルタリングしなくてもよい)、逆に、シーケンス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングしない。解析ユニット301は、有効範囲が1つの画像のパラメータセットが取得した画像層フィルタリング制御パラメータを解析する。画像層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記画像層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、画像におけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示することと、前記画像層フィルタリング制御パラメータが1つまたは複数の復号化ブロックサイズの第3プリセット値を含み、前記第3プリセット値が、画像におけるサイズが前記第3プリセット値に等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記画像層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第4プリセット値を含み、前記第4プリセット値が、画像におけるそれを用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
スライス層フィルタリング制御パラメータは、1つのスライスに対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。スライス層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングすることができ(復号化ブロックをフィルタリングしなくてもよい)、逆に、スライス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングしない。解析ユニット301は、スライスヘッダが取得したスライス層フィルタリング制御パラメータを解析する。スライス層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記スライス層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、スライスにおけるイントラ予測モードを用いる復号化ブロックの第1予測値をフィルタリング処理する必要があるか否かを指示することと、前記スライス層フィルタリング制御パラメータが1つまたは複数の復号化ブロックサイズの第5プリセット値を含み、前記第5プリセット値が、スライスにおけるサイズが前記第5プリセット値に等しい復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したことと、前記スライス層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第6プリセット値を含み、前記第6プリセット値が、スライスにおける前記第6プリセット値を用いて指示するイントラ予測モードの復号化ブロックの第1予測値をフィルタリング処理する必要があることを指示したこととの少なくとも1つを含む。
ブロック層フィルタリング制御パラメータは、1つのブロックに対して適応フィルタリングを使用する必要があるか否かを指示するために用いられる。ブロック層フィルタリング制御パラメータの値が「YES」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングし、逆に、スライス層フィルタリング制御パラメータの値が「NO」を指示すると、適応フィルタリングユニット602は、復号化ブロックの第1予測値をフィルタリングしない。解析ユニット301は、復号化ブロックのデータ単位が取得したブロック層フィルタリング制御パラメータを解析する。ブロック層フィルタリング制御パラメータに含まれているフィルタリング制御情報は、前記ブロック層フィルタリング制御パラメータが1つまたは複数のフラグビットを含み、前記フラグビットが、前記復号化ブロックの第1予測値をフィルタリング処理するか否かを指示することと、前記ブロック層フィルタリング制御パラメータが1つまたは複数の復号化ブロックサイズの第7プリセット値を含み、前記復号化ブロックのサイズが前記第7プリセット値に等しい場合、前記復号化ブロックの第1予測値をフィルタリング処理することを指示するために用いられることと、前記ブロック層フィルタリング制御パラメータが1つまたは複数のイントラ予測モードの第8プリセット値を含み、前記復号化ブロックのイントラ予測モードが前記第8プリセット値により指示されたイントラ予測モードと同じである場合、前記復号化ブロックの第1予測値をフィルタリング処理することを指示するために用いられることとの少なくとも1つを含む。
なお、解析ユニット301がステップ702を実行することにより、ブロック層フィルタリング制御パラメータを取得する。解析ユニット301がコードストリームを解析することにより、シーケンス層フィルタリング制御パラメータ、画像層フィルタリング制御パラメータ、スライス層フィルタリング制御パラメータのうちの1種または複数種を取得すれば、制御範囲の観点から、シーケンス層の範囲は画像層よりも大きく、画像層の範囲はスライス層よりも大きく、スライス層の範囲はブロック層よりも大きい。通常、制御パラメータの制御メカニズムは、制御範囲が大きな制御パラメータが「使用可能」を指示すると、制御範囲が小さい制御パラメータを、この小さい制御範囲内で「使用可能であるか否か」を指示するために更に解析する必要がある。特に、ブロック層フィルタリング制御パラメータの場合、1つの復号化ブロックが複数のサブブロックに分割されると、復号化ブロックのブロック層フィルタリング制御パラメータの制御範囲はサブブロックよりも大きく、即ち、この復号化ブロックのブロック層フィルタリング制御パラメータが「使用しない」ことを指示すると、サブブロックは適応フィルタリングを使用せず、解析ユニット301はサブブロックのブロック層フィルタリング制御パラメータを解析する必要がない。
好ましくは、デコーダは、指定されたイントラ予測モードを用いて得られた第1予測値だけをフィルタリング処理するように構成されてもよい。例えば、イントラ予測方法2を用いる復号化ブロックの第1予測値だけをフィルタリング処理するか、または、イントラ予測方法1におけるDCモード、平面モードのような1つまたは複数のイントラ予測モードだけを使用してフィルタリング処理する。このような場合、ブロック層で、復号化ブロックがこれらのイントラ予測モードを使用する場合にしか、解析ユニット301はブロック層フィルタリング制御パラメータを解析しない。または、制御範囲がブロック層よりも大きいフィルタリング制御パラメータが「使用可能」を指示すると、復号化ブロックがこれらのイントラ予測モードを使用する場合、デコーダ復号化ブロックの第1予測値をフィルタリングし、解析ユニット301は復号化ブロックのブロック層フィルタリング制御パラメータを解析する必要がない。
ステップ703において、解析ユニット301は、復号化ブロックのブロック層フィルタリング制御パラメータが復号化ブロックの第1予測値をフィルタリングする必要があることを指示するか否かを判断する。判断結果が「YES」であれば、ステップ704を実行し、逆に、判断結果が「NO」であれば、ステップ707を実行する。
ステップ704において、解析ユニット301は、復号化ブロックのフィルタパラメータが「隣接ブロック復号化ブロックのフィルタパラメータを使用する」ことを指示したか否かを判断する。判断結果が「YES」であれば、ステップ705を実行し、逆に、判断結果が「NO」であれば、ステップ706を実行する。
ステップ705、解析ユニット301は、復号化ブロックのフィルタパラメータにより指示された復号化ブロックの位置情報を解析し、フィルタパラメータにより指示された復号化ブロックが使用するフィルタパラメータを復号化ブロックのフィルタパラメータとする。
位置情報は、復号化ブロックの左隣の復号化ブロック、上隣の復号化ブロックのような復号化ブロックの所在画像における復号化されたブロックの位置、復号化ブロックとそのフィルタパラメータにより指示された復号化ブロックとの間の同一座標系での位置オフセット量等を指示することができる。
好ましくは、位置情報は、復号化ブロックの時間領域における隣接ブロックの位置を指示することができる。時間領域における隣接ブロックは、復号化ブロックと異なる画像に位置する復号化ブロックである。時間領域における隣接ブロックは、固定位置のブロック、例えば、他の復号化された画像における復号化ブロックと同じ位置に位置するブロックであってもよいし、位置オフセット量で指示される復号化ブロックであってもよい。
ステップ706において、解析ユニット301は、復号化ブロックのフィルタパラメータを解析する。
ステップ707において、解析ユニット301が復号化ブロックのイントラ予測モードおよびフィルタリングパラメータを解析する過程は終了する。
前述したデコーダは、イントラ予測モードをイントラ予測ユニット304における第1予測値算出ユニット601の入力データストリーム60とし、前述したデコーダは、フィルタリングパラメータをイントラ予測ユニット304における適応フィルタリングユニット602の入力データストリーム63とする。
図11に示すように、本発明の実施例に係るエンコーダを備える電子機器の構造模式図である。
収集ユニット801はビデオまたは画像を収集する。収集ユニット801は、自然映像または自然画像を収集するための少なくとも1つのカメラを含んでもよく、好ましくは、収集ユニット801には、深度映像または深度画像を収集するためのカメラが設けられてもよく、好ましくは、収集ユニットには赤外線カメラが更に設けられてもよく、好ましくは、収集ユニットにはモートセンシングカメラが更に設けられてもよい。収集ユニット801は、放射線透過またはスキャンによりビデオまたは画像を生成する装置または機器を含んでもよい。
好ましくは、収集ユニット801で、入力ビデオまたは画像に対してオートフォーカス、オートホワイトバランス、自動露光、バックライト補正、ノイズ低減、鮮鋭化、スティッチング、画像解像度の向上または低減、ビデオフレームレートの向上または低減、仮想画像合成等のような前処理を行うことができる。
収集ユニット801は、他の機器またはユニットが出力したビデオまたは画像を受信することもでき、例えば、収集ユニット801は、トランスコーダにおける1つの構成ユニットであってもよく、トランスコーダは、部分的に復号化された画像を収集ユニット801に入力する。例えば、収集ユニット801は、データ接続により他の機器から伝達されたビデオまたは画像を受信する。
なお、ビデオまたは画像に加え、収集ユニット801は、音声のような他のメディア情報を収集することもできる。収集ユニット801は、文字、字幕、コンピュータが生成したピクチャまたはビデオ等のような人工的に生成した情報を受信することもできる。
エンコーダ802は、図5に示すエンコーダである。エンコーダ802の入力は、収集ユニット801から出力されたビデオまたは画像である。エンコーダ802は、ビデオまたは画像を符号化し、ビデオまたは画像のコードストリームを出力する。
記憶または送信ユニット803は、エンコーダ802から出力されたビデオまたは画像のコードストリームを受信し、システム層の処理を行い、例えば、伝送プロトコル、メディアファイルのフォーマット等の規格に従ってカプセル化する。記憶または送信ユニット803は、システム層の処理後に得た伝送ストリームまたはメディアファイルを電子機器のメモリに記憶するか、または有線、無線ネットワークを介して送信する。
なお、エンコーダ802が出力したビデオまたは画像のコードストリームに加え、記憶または送信ユニット803の入力は、音声コードストリーム、文字、字幕、ピクチャ等を更に含んでもよい。記憶または送信ユニット803は、メディアファイルのフォーマット、伝送プロトコル等の規格に従ってこれらの入力およびエンコーダ802が出力したコードストリームを伝送ストリームまたはメディアファイルにカプセル化する。
本実施例の電子機器は、ビデオ通信アプリケーションにおいて、ビデオまたは画像のコードストリームを生成または処理できる機器であり、例えば、携帯電話、コンピュータ、メディアサーバ、携帯型移動端末、デジタルビデオカメラ、デジタルカメラ、テレビジョン放送システム装置、コンテンツ配信ネットワーク機器、監視カメラ、会議テレビシステム機器等である。
図12に示すように、本発明の実施例に係るデコーダを備える電子機器の構造模式図である。
受信ユニット901は、ビデオまたは画像のコードストリームを受信する。受信ユニット901は、有線、無線ネットワークからビデオまたは画像のコードストリームを受信するか、または電子機器メモリを読み取ってビデオまたは画像のコードストリームを取得するか、またはデータ接続により他の機器から伝達されたビデオまたは画像のコードストリームを受信する。
受信ユニット901の入力は、ビデオまたは画像のコードストリームを含む伝送ストリームまたはメディアファイルであってもよい。受信ユニット901は、伝送プロトコル、メディアファイルのフォーマット等の規格に基づいて受信した伝送ストリームまたはメディアファイルからビデオまたは画像のコードストリームを抽出する。
受信ユニット901は、ビデオまたは画像のコードストリームをデコーダ902に出力する。
なお、ビデオまたは画像のコードストリームに加え、受信ユニット901の出力は、音声コードストリーム、文字、字幕、ピクチャ等を更に含んでもよい。受信ユニット901は、これらの出力を電子機器における対応する処理ユニットに伝達する。例えば、受信ユニット901は、音声コードストリームを電子機器に含まれている音声デコーダに出力する。
デコーダ902は、図6に示すデコーダである。デコーダ902の入力は、受信ユニット901から出力されたビデオまたは画像のコードストリームである。デコーダ902は、ビデオまたは画像のコードストリームを復号化し、復号化されて復元されたビデオまたは画像を出力する。
提示ユニット903は、デコーダ902が出力した復号化されて復元されたビデオまたは画像を受信する。提示ユニット903は、復号化されて復元されたビデオまたは画像を視聴者に提示する。提示ユニット903は、表示パネルのような電子機器の1つの構成部分であってもよいし、プロジェクタ、ディスプレイ等のようなデータ接続により電子機器に接続された独立した機器であってもよい。好ましくは、提示ユニット903は復号化されて復元されたビデオまたは画像に対してオートフォーカス、オートホワイトバランス、自動露光調整、バックライト補正、ノイズ低減、鮮鋭化、スティッチング、画像解像度の向上または低減、ビデオフレームレートの向上または低減、仮想画像合成等のような後処理を行うことができる。
なお、復号化されて復元されたビデオまたは画像に加え、提示ユニット903の入力は、音声、文字、字幕、ピクチャ等のような電子機器の他のユニットから出力されたメディアデータを更に含んでもよい。提示ユニット903の入力は、遠隔教育アプリケーションでローカル授業者が重点内容に対して付ける下線等の注釈データのような人工的に生成したデータを更に含んでもよい。提示ユニット903は入力されたメディアデータを重ね合わせた後に視聴者に表示する。
本実施例の電子機器は、携帯電話、コンピュータ、セットトップボックス、テレビ、プレーヤ、メディアサーバ、携帯型移動端末、デジタルビデオカメラ、デジタルカメラ、テレビジョン放送システム装置、コンテンツ配信ネットワーク機器、会議テレビシステム機器等のようなビデオ通信アプリケーションでビデオまたは画像のコードストリームを復号化または処理できる機器であってもよい。
図13に示すように、本発明の実施例に係る電子システムのシステムアーキテクチャの模式図である。
ソース機器1001は、図11に示すエンコーダを備える電子機器である。
記憶または伝送ネットワーク1002は、機器または電子システムのメモリ、データ接続によりデータ読み書き操作を行う外部メモリを含んでもよく、有線ネットワーク、無線ネットワークからなるデータ伝送ネットワークを含んでもよい。記憶または伝送ネットワーク1002は、ソース機器1001における記憶または送信ユニット803にメモリまたはデータ伝送ネットワークを提供する。
シンク機器1003は、図12に示すデコーダを備える電子機器である。シンク機器1003における受信ユニット901は、記憶または伝送ネットワーク1002により提供されたビデオまたは画像のコードストリーム、ビデオまたは画像のコードストリームを含む伝送ストリーム、またはビデオまたは画像のコードストリームを含むメディアファイルを受信する。
本実施例の電子システムは、ビデオ通信アプリケーションで、ビデオまたは画像のコードストリームを生成、記憶または伝送および復号化できるシステムまたは機器であってもよく、例えば、携帯電話、コンピュータ、IPTVシステム、OTTシステム、インターネットマルチメディアシステム、デジタルテレビジョン放送システム、監視システム、携帯型移動端末、デジタルビデオカメラ、デジタルカメラ、会議テレビシステム機器等である。
本発明の実施例は、第1プロセッサと、第1記憶媒体と、第1通信バスとを備え、第1プロセッサと第1記憶媒体とは第1通信バスを介して接続され、第1プロセッサは、第1記憶媒体に記憶された画像符号化関連プログラムを呼び出し、符号化ブロックのイントラ予測モードを確定し、イントラ予測モードに基づいて符号化ブロックの第1予測値を構成するステップと、符号化ブロックの初期値および第1予測値に基づき、フィルタリング指示パラメータを含むフィルタリングパラメータを確定するステップと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するステップと、符号化ブロックの初期値とイントラ予測値との差分値に基づいて予測差分値パラメータを算出するステップと、イントラ予測モード、フィルタリングパラメータおよび予測差分値パラメータを符号化し、符号化ビットをコードストリームに書き込むステップとを実行するエンコーダを開示する。
本発明の実施例は、第2プロセッサと、第2記憶媒体と、第2通信バスとを備え、第2プロセッサと第2記憶媒体とは第2通信バスを介して接続され、第2プロセッサは、第2記憶媒体に記憶された画像復号化関連プログラムを呼び出し、コードストリームを解析し、復号化ブロックのイントラ予測モード、フィルタリング指示パラメータを含むフィルタリングパラメータ、および予測差分値パラメータを取得するステップと、イントラ予測モードに基づいて復号化ブロックの第1予測値を構成するステップと、フィルタリング指示パラメータが第1予測値をフィルタリング処理することを指示した場合、第1予測値をフィルタリング処理してイントラ予測値を取得するステップと、予測差分値パラメータに基づいて復号化ブロックの予測差分値を算出するステップと、イントラ予測値と予測差分値との和値を算出し、復号化ブロックの第1復号化値を取得するステップと、第1復号化値に基づいて復号化ブロックの復号化復元値を取得するステップとを実行するデコーダを開示する。
また、本発明の実施例は、エンコーダに適用され、コンピュータ可読媒体には、1つまたは複数の第1プロセッサにより実行されて上記実施例の画像の符号化方法を実現することができる1つまたは複数の符号化関連プログラムが記憶されているコンピュータ記憶媒体を開示する。
本発明の実施例は、デコーダに適用され、コンピュータ可読媒体には、1つまたは複数の第2プロセッサにより実行されて上記実施例の画像の復号化方法を実現することができる1つまたは複数の復号化関連プログラムが記憶されているコンピュータ記憶媒体を開示する。
本発明は、他の様々な実施例を有してもよく、本発明の精神およびその実質から逸脱しない場合、当業者は本発明に基づいて様々な対応する変更および変形を行うことができるが、これらの対応する変更および変形はいずれも本発明に添付される特許請求の範囲に属する。
当業者であれば、本発明の実施例が方法またはコンピュータプログラム製品として提供され得ることを理解すべきである。従って、本発明は、ハードウェア実施例、ソフトウェア実施例、またはソフトウェアとハードウェアとを組み合わせる実施例の形式を採用することができる。更に、本発明は、コンピュータ使用可能プログラムコードが含まれる1つまたは複数のコンピュータ使用可能記憶媒体(磁気ディスクメモリおよび光学メモリ等を含んでもよいが、これらに限定されない)で実施されるコンピュータプログラム製品の形式を採用することができる。
本発明は、本発明の実施例による方法、機器(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。フローチャートおよび/またはブロック図における各フローおよび/またはブロック、およびフローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせがコンピュータプログラム命令で実現できることが理解されるべきである。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組み込み型プロセッサまたは他のプログラマブルデータ処理装置のプロセッサに提供して1つの機械を生成することができ、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサにより実行される命令は、フローチャートの1つのフローまたは複数のフローおよび/またはブロック図の1つのブロックまたは複数のブロックに指定された機能を実現するための装置を生成する。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置を特定方式で動作させることができるコンピュータ可読メモリに記憶されてもよく、該コンピュータ可読メモリに記憶された命令は命令装置を備える製造品を生成し、該命令装置は、フローチャートの1つのフローまたは複数のフローおよび/またはブロック図の1つのブロックまたは複数のブロックに指定された機能を実現する。