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