IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

<>
  • 特開-エンコードされた画像データ 図1
  • 特開-エンコードされた画像データ 図2
  • 特開-エンコードされた画像データ 図3
  • 特開-エンコードされた画像データ 図4
  • 特開-エンコードされた画像データ 図5
  • 特開-エンコードされた画像データ 図6
  • 特開-エンコードされた画像データ 図7
  • 特開-エンコードされた画像データ 図8A
  • 特開-エンコードされた画像データ 図8B
  • 特開-エンコードされた画像データ 図9
  • 特開-エンコードされた画像データ 図10
  • 特開-エンコードされた画像データ 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024020330
(43)【公開日】2024-02-14
(54)【発明の名称】エンコードされた画像データ
(51)【国際特許分類】
   H04N 19/82 20140101AFI20240206BHJP
【FI】
H04N19/82
【審査請求】有
【請求項の数】7
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023191237
(22)【出願日】2023-11-09
(62)【分割の表示】P 2022128032の分割
【原出願日】2018-03-29
(31)【優先権主張番号】PCT/EP2018/055979
(32)【優先日】2018-03-09
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】エセンリク、セミ
(72)【発明者】
【氏名】コトラ、アナンド、メハー
(72)【発明者】
【氏名】ツァオ、ツィジェ
(72)【発明者】
【氏名】チェン、ジアンレ
(57)【要約】      (修正有)
【課題】再構築された画像、特にビデオ画像を適応乗算フィルタでフィルタリングするための装置および方法を提供する。
【解決手段】エンコーダ100は、整数で表される適応乗算係数を有するループフィルタ120を使用して画像のサンプルのセットをフィルタリングするために、デコーダにより参照されるエンコードされた画像データ171を生成することを含む。エンコードされた画像データ171は、適応乗算係数を表すコードワードを有する。ループフィルタの各適応乗算係数の値は、許可値のセット内にあり、予め定められた数の2進数を有する各適応乗算係数の絶対値の2進表現は、少なくとも1つの「ゼロ」及び最大で2つの「1」を含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
整数で表される適応乗算係数を有するループフィルタを使用して画像のサンプルのセットをフィルタリングするために、デコーディング方法またはデコーダにより参照されるエンコードされた画像データであって、
前記エンコードされた画像データは、適応乗算係数を表すコードワードを有し、前記ループフィルタの各適応乗算係数の値は、許可値のセット内にあり、予め定められた数の2進数を有する各適応乗算係数の絶対値の2進表現は、少なくとも1つの「ゼロ」、および、最大で2つの「1」を含む、エンコードされた画像データ。
【請求項2】
前記セットの最大絶対値が予め定められた最大値Nmaxに制限される、請求項1に記載のエンコードされた画像データ。
【請求項3】
各適応乗算係数の前記絶対値の前記2進表現が、最大で1つの「1」を含む、請求項1または2に記載のエンコードされた画像データ。
【請求項4】
前記ループフィルタの前記適応乗算係数は、少なくとも2つのグループにグループ化され、
前記グループの1つの前記適応乗算係数は、許可値の前記セットに制限される、
請求項1から3のいずれか1項に記載のエンコードされた画像データ。
【請求項5】
前記グループの他の1つの前記適応乗算係数が、前記絶対値の予め定められた最大値によって定義される範囲内のすべての値を仮定することを許可される、請求項4に記載のエンコードされた画像データ。
【請求項6】
画像のサンプルの前記セットがビデオ画像のサンプルのセットである、請求項1から5のいずれか1項に記載のエンコードされた画像データ。
【請求項7】
前記適応乗算係数は、各画像および各画素に対して個々に適応される、請求項5に記載のエンコードされた画像データ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、例えばビデオ画像および/または静止画像コーディングなどの画像処理の分野に関する。適応乗数フィルタ係数を有するフィルタを用いた画像フィルタリングのための新しい方法および装置が提供される。
【背景技術】
【0002】
ビデオコーディング(ビデオエンコーディングおよびデコーディング)は、例えば、放送デジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、またはビデオチャット、ビデオ会議、DVDおよびブルーレイディスク、ビデオコンテンツの取得と編集システム、セキュリティアプリケーションのカムコーダーなどのリアルタイムの会話型アプリケーションなど、幅広いデジタルビデオアプリケーションで使用される。
【0003】
1990年にH.261標準でブロックベースのハイブリッドビデオコーディングアプローチが開発されて以降、新しいビデオコーディング技術とツールが開発され、新しいビデオコーディング標準の基礎を形成している。ほとんどのビデオコーディング標準の目標の1つは、画質を犠牲にすることなく、以前のバージョンと比較してビットレートの減少を達成することであった。さらなるビデオコーディング標準には、MPEG-1ビデオ、MPEG-2ビデオ、ITU-T・H.262/MPEG-2、ITU-T・H.263、ITU-T・H.264/MPEG-4、パート10、高度なビデオコーディング(AVC)、ITU-T・H.265、高効率ビデオコーディング(HEVC)、およびこれらの標準のスケーラビリティおよび/または3次元(3D)拡張などの拡張が含まれる。
【0004】
コーディングシステム300の実施形態を示す概略ブロック図が図1に示されており、これについては以下でより詳細に説明する。
【0005】
図2は、本発明で実装することができ、以下で同様により詳細に説明されるビデオエンコーダの例示的な構造を示すブロック図である。
【0006】
具体的には、図示されたエンコーダ100は、「ループフィルタ」120を含み、本発明に係るフィルタリング演算を適用することができる。しかしながら、より一般的には、フィルタリング演算はコーデックの他の場所、例えば、補間フィルタで適用できる。さらにより一般的には、本発明は、ビデオだけでなく静止画像コーディングにも適用される。
【0007】
図3は、ビデオデコーダの例示的な構造を示すブロック図であり、本発明で実装することができ、これについても以下でより詳細に説明する。具体的には、本発明は、例えば、ループフィルタ220に適用可能である。以下では、適応フィルタリングについてのいくつかの背景情報を要約する。
【0008】
ビデオコーディングの適応フィルタリングは、ウィーナーベースの適応フィルタを使用して、元のサンプルとデコードされたサンプル間の平均二乗誤差を最小限に抑える働きをする。具体的には、提案されている適応ループフィルタ(ALF)は、各画像の最後の処理段階に位置し、前の段階からのアーティファクトをキャッチして修正するツールと見なすことができる。適切なフィルタ係数は、エンコーダによって決定され、デコーダに明示的にシグナリングされる。
【0009】
適応フィルタリングに関する一般的な情報は、Chia-Yang Tsai, Ching-Yeh Chen, Tomoo Yamakage, In Suk Chong, Yu-Wen Huang, Chih-Ming Fu, Takayuki Itoh, Takashi Watanabe, Takeshi Chujoh, Marta Karczewicz,およびShaw-Min Leiによって、IEEE Journal of Selected Topics in Signal Processing(Volume:7、発行:2013年12月6日)で発行された記事「ビデオコーディングの適応ループフィルタリング」に発見できる。
【0010】
上記の文書で与えられた説明は、適応フィルタ係数を用いたフィルタリング演算の特定の実装を説明している。演算の一般的な原理は以下の通りに説明できる。概して、フィルタリング方程式は次のようになる。
【0011】
【数1】
【0012】
ここで、R(i、j)は、座標(i、j)でフィルタリングする前の画像フレーム内のサンプルである。R'(i,j)は、フィルタリング後の画像フレームのサンプルである。f(k、l)はフィルタ係数である。
【0013】
フィルタカーネルの例を図4に示す。この例では、C20はフィルタカーネルの中心座標(k=0, l=0)であり、Lは8である。この例では、フィルタカーネルは中心に対して対称である。これは一般的には当てはまらない場合がある。整数演算を使用する場合、フィルタリング方程式は次のように記述できる。
【0014】
【数2】
【0015】
ここで、Nは出力のビットシフトの数であり、すなわち、出力は正規化係数で除算される。具体的には、Nは予め定義され得る。「offset」は、整数演算での損失を補償するスカラである。Nによるビットシフトの場合、offsetは2(N-1)になる。上記の方程式では、フィルタリング係数f(k、l)は整数であり、分数ではない値のみを持つことができる。整数演算によるフィルタリング方程式の実装は、ハードウェアでの正確な実装を保証するために重要である。右シフト演算「>>N」は、2による除算とそれに続く切り捨て演算の効果がある。
【0016】
通常(必須ではない)、平均照明レベルの変更が所望されない場合は、以下の方程式が成り立つ。
【0017】
【数3】
【0018】
エンコーダでは、フィルタ係数は、元の画素とフィルタリングされた画素の間のエラーの期待値を最小化することによって推定される。
【0019】
【数4】
【0020】
上記の方程式で、O(i、j)は元の画像のサンプルを示す。
【0021】
図5は、適応フィルタのいくつかの典型的な例示的なフィルタ形状を示す。左側の図は、5×5ダイヤモンドフィルタ(7つの一意の係数を持つ13のタップフィルタ)を示し、中央の図は、7×7ダイヤモンドフィルタ(13の一意の係数を持つ25のタップフィルタ)を示し、および右側の図は、9×9ダイヤモンドフィルタ(21の一意の係数を持つ41のタップフィルタ)を示す。
【0022】
「適応」フィルタリングという用語は、フィルタリングプロセスをエンコーダで調整できる事実を意味する。これは、例えば、フィルタ形状、フィルタサイズ、フィルタリング係数の数、およびフィルタリング係数の値に関係する。「フィルタヒント」とも呼ばれるこれらのデータは、デコーダにシグナリングされる。
【0023】
適応フィルタリングは、乗算を含むフィルタリングの実現に適用される場合、すなわち、フィルタ係数がいわゆる乗法的係数または乗算係数である場合、以下の問題を示唆する。換言すれば、本発明が解決しようとする以下の問題は、適応フィルタ係数を用いたフィルタリングに関するものであり、乗算演算で使用されるフィルタ係数は、個々に適応(変更)することができる。これに関連して、「個々に」は、各画像(画像、フレーム)、および/または各画素、および/または各係数を意味する。
【0024】
問題は、特に専用のハードウェア実装では、乗算演算の実装にコストがかかることである。フィルタアプリケーションは、比較的多数のフィルタリング演算の乗算を要求する(例えば、図4に示すように、9×9のダイヤモンド型フィルタの場合、画素あたり41の乗算)。これについては、以下でより詳細に説明する。
【0025】
2つの符号なし8ビット整数を乗算したいと仮定する。フィルタ係数はCで、サンプル画素はAである。
【0026】
乗算プロセスは、8つの1ビット乗算へ分解でき、各乗算は、2進算術のビットシフト演算と、以下に示す7つの加算演算として実装できる。従って、およそ1つの乗算は7つの加算と同等である。
【0027】
問題は、乗算プロセスで大量の計算が必要になることである。従って、専用のハードウェアに実装するにはコストがかかる。
【0028】
【表1】
【0029】
ここでは、8ビットの符号なしフィルタ係数Cが2進表現で示されており、C[0]は係数Cの最下位ビットで、C[7]は最上位ビットである。同様に、A[7]、A[6]、・・・A[0]は、最上位ビットから最下位ビットに順番に対応するビットである。2進算術の演算P=C*Aが示され、結果が一番下の行に示されている。
【0030】
図4の例では、フィルタカーネルには41のフィルタタップが含まれており、画素サンプルを処理するためには、41の乗算演算が必要であることを意味する。
【0031】
本発明およびそれが解決する上述の問題は、乗数フィルタ係数を用いた適応フィルタリングに特に関連することが指摘される。この問題は、固定フィルタには適用されず、具体的には、複数の固定フィルタを使用するフィルタリング演算には適用されない。
【0032】
複数の固定フィルタを使用する例は、図6に示すように、インター予測の分数画素位置で補間する補間フィルタリングである。
【0033】
多くの知られたコーデックは、固定補間フィルタを用いた補間フィルタリングを使用している。フィルタ係数はフィルタに対して固定されているが、異なる分数位置(図面の1/2画素と1/4画素の位置)には複数のフィルタがある。この例では、フィルタ設定全体が動きベクトルに基づいて適応されるが、フィルタ係数は個々には適応されない。
【0034】
この図では、大きな丸が画像内の実際のサンプル位置に対応し、小さな丸が補間フィルタリング演算の適用によって生成される分数位置である。特定の例では、2つの実際の画像サンプル位置の間の位置に3つの分数位置(左1/4ペル、1/2ペル、および右1/4ペル)がある。図の左手側には、1/2画素(1/2ペル)の位置を補間するために適用される補間フィルタが示されている。図面の右手側は、1/4画素(1/4ペル)の位置に使用される補間フィルタを示している。これらのフィルタは互いに異なるが、各補間フィルタは固定フィルタである。示されているように、図6の例は、例示のみを目的として提供されており、本発明の一部を形成するものではない。
【0035】
本発明は、乗算演算を単純化し、乗算演算の労力を削減することができる乗算適応フィルタリングの改善された概念を提供することを目的とする。
【発明の概要】
【0036】
本発明の実施形態は、独立請求項の特徴および従属請求項の特徴による実施形態のさらに有利な実装によって定義される。
【0037】
本発明の第1の態様によれば、整数によって表される適応乗算係数を有するフィルタを使用して画像のサンプルのセットをフィルタリングするための装置が提供される。装置は、フィルタの少なくとも1つの乗算係数の値が許可値のセット内にあるように決定し、その結果、予め定められた桁数Lを持つ少なくとも1つの乗算係数の絶対値の2進表現が少なくとも1つの「ゼロ」を含むようにして、フィルタで画像のサンプルのセットをフィルタリングするように構成される処理回路を有する。
【0038】
本発明の第2の態様によれば、整数によって表される適応乗算係数を有するフィルタを使用して、画像のサンプルのセットをフィルタリングする方法が提供される。この方法は、フィルタの少なくとも1つの乗算係数の値が許可値のセット内にあるように決定し、その結果、予め定められた桁数Lを持つ少なくとも1つの乗算係数の絶対値の2進表現が少なくとも1つの「ゼロ」を含むようにする段階と、フィルタで画像のサンプルのセットをフィルタリングする段階と、を有する。
【0039】
本開示によれば、画像のサンプルのセットは、例えば、ビデオ信号または静止画像信号のサンプルであり得る。処理回路は、ソフトウェアおよび/またはハードウェアの任意の組み合わせで実装できる。許可値のセットは、具体的には、予め定められた許可値のセットであり得る。概して、本発明は、画像の他の信号サンプルのセット、例えばオーディオデータを含む信号にも適用可能である。
【0040】
本発明の特定のアプローチは、乗算演算が単純化されるように、適応乗算フィルタのフィルタ係数によって仮定できる値を制限することである。具体的には、絶対値を表す予め定められた数の2進数の範囲内で、限られた数の「1」のみが許可されるように、フィルタ係数の許可値が制限される。これは、フィルタリングのための乗算演算の単純化を可能にし、従って、フィルタリング演算をより効率的にする。
【0041】
以下に示すように、予め定められたすべての数の2進数で許可される「1」の数が少ないほど、フィルタリング演算を実行する際の効率利得が向上する。例えば、係数値で仮定できる任意の値に含まれる「1」が最大で1つだけ、すなわち、最大で1つの「1」である場合、最良の効率利得の向上が達成できる。
【0042】
実施形態によれば、許可値のセットの最大絶対値は、予め定められた最大値Nmaxに制限される。
【0043】
実施形態によれば、少なくとも1つの乗算係数の絶対値の2進表現は、最大で2つの「1」を含む。より具体的には、少なくとも1つの乗算係数の絶対値の2進表現は、最大で1つの「1」を含む。上記したように、そして以下で詳細に説明するように、フィルタリングのための乗算演算を実行する際の単純化によって、利得と処理効率は、許可係数値の2進表現にあるゼロが多いほど(従って、1が少ないほど)高くなる。従って、もっとも効率的な場合は、「1」が1つだけの場合であるが、それに対して、例えば、許可された「1」が2つでも良好な結果が得られる。もちろん、何が有益かは状況の詳細に多く依存し、具体的には、大きなフィルタの場合、3つまたはそれより多いの「1」を有することも依然として有益である。
【0044】
概して、許可値のセットは、フィルタの少なくとも1つの乗算係数に適用できる。
【0045】
実施形態によれば、許可値のセットは、フィルタのすべての乗算係数に適用される。
【0046】
代替的な実施形態によれば、乗算係数は、少なくとも2つのグループにさらにグループ化され、1つのグループの乗算係数は、許可値のセットに制限される。他の1または複数のグループの乗算係数は、例えば、予め定められた範囲内のすべての値を仮定することができ、または他の予め定められたルールに従って制限することができる。より具体的には、他の1つのグループの乗算係数は、例えば、絶対値の予め定められた最大値によって定義される範囲内のすべての値を仮定することが許可される。
【0047】
実施形態によれば、画像のサンプルのセットは、ビデオ画像のサンプルのセットを意味する。より具体的には、装置は、各画像および各画素に対して乗算係数を個々に適応させるように構成され得る。
【0048】
本発明のさらなる特定の態様によれば、複数の画素を含む画像のサンプルの現在のセットをエンコーディングするための装置が提供される。この装置は、現在のセットを再構築するためのデコーダを有したエンコーダと、再構築されたセットをフィルタリングするための本発明の第1の態様による装置とを有する。
【0049】
実施形態によれば、上記エンコーディング装置は、乗算係数の値を2進コードワードにマッピングし、デコーディング装置に送信されるビットストリームにコードワードを含めるように構成される処理回路をさらに有する。
【0050】
より具体的には、コードワードの長さは、別個の乗算係数値の数に依存する。換言すれば、可能なフィルタ係数値と同じ数のコードワードがある。コードワードから値へのマッピング(1対1のマッピング)は、固定マッピングにすることができ、またはシグナリングされたサイド情報に応じて変更することができる。
【0051】
実施形態によれば、処理回路は、フィルタの乗算係数の予測を実行し、実際に決定された値を予測の結果から得られた予測値と比較することによって残差乗算係数を決定するようにさらに構成される。その後、2進コードワードへのマッピングが残差乗算係数に適用される。この場合、ビットストリームを受信するデコーディング装置が適用される予測方法を認識し、エンコードされた残差乗算係数からフィルタの乗算係数を再構築できるように、予測制御情報がビットストリームにさらに含まれる場合がある。代替的に、適用された予測方法を予め定義して、従って任意の送信されたサイド情報なしでエンコーダおよびデコーダに同じ方法で適用することもできる。可能な予測方法には、予め定義されたフィルタ予測子を使用した予測、および以前にシグナリングされたフィルタ係数からの予測が含まれ得るが、これらに制限されない。実際のフィルタ係数とそれぞれの予測フィルタ係数との差を表す残差フィルタ係数の値は、一般に絶対値が実際の係数よりも小さいため、コードワードの量、従ってコードワードのサイズを小さくすることができ、これにより、デコーダにシグナリングされる情報を追加的に減少する。
【0052】
代替的に、ビットストリームに含めるための乗算係数のコードワードへのマッピングは、予測処理を実行することなく、本発明の第1の態様に従って決定された乗算係数に対して実行することができる。
【0053】
本発明のさらに他の態様によれば、複数の画素を含む画像のサンプルのデコーディングされた現在のセットをデコードするための装置が提供される。この装置は、現在のセットを再構築するためのデコーダと、再構築されたセットをフィルタリングするための本発明の第1の態様による装置とを有する。
【0054】
実施形態によれば、本発明の第1の態様による装置の処理回路は、マッピング演算を適用することにより、受信されたビットストリームに含まれる2進コードワードから乗算係数を取得するようにさらに構成される。
【0055】
具体的には、取得された乗算係数は、フィルタリングに使用されるフィルタ係数であり得る。代替的に、取得された乗算係数は、実際の係数値と予測スキームに従って予測された乗算係数との間の差を表す残差乗算係数であってもよい。予測スキームは、受信されたビットストリームにさらに含まれる予測制御情報によって示され得る。その場合、処理回路は、取得された残差乗算係数および予測制御情報からフィルタ係数を再構築することによって、フィルタ係数の値を決定するようにさらに構成される。代替的には、予測スキーム(予測方法)を予め定義して、従って、任意の送信された予測制御情報なしでエンコーダおよびデコーダに同じ方法で適用することができる。その後、処理回路は、取得された残差乗算係数からフィルタ係数を再構築することにより、フィルタ係数の値を決定する。
【0056】
実施形態によれば、処理回路による決定は、マッピング演算によって、または取得された残差乗算係数からの再構築によって、受信されたビットストリームから直接取得された少なくとも1つの乗算係数の決定された値が許可値のセット内にあるかの決定を実行し、許可値のセット内にない場合は、決定された値を、許可値のセット内にある最も近い値に変換することをさらに含む。
【0057】
これにより、再構築された画像サンプルに適用されるフィルタ係数が、本発明によるルールに従うことが保証される。
【0058】
1または複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0059】
以下において、本発明の実施形態は、添付の図面を参照してより詳細に説明される。
図1】本発明の実施形態を実装するように構成されたビデオコーディングシステムの例を示すブロック図である。
図2】本発明の実施形態を実装するように構成されたビデオエンコーダの例を示すブロック図である。
図3】本発明の実施形態を実装するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】本発明を適用することができるフィルタカーネルの例を示す。
図5】本発明を適用することができる適応フィルタの典型的なフィルタ形状の例を示す図である。
図6】比較例として、補間フィルタリングに適用される複数の固定フィルタの例を示す図である。
図7】本発明の実施形態の特定の実装例を示す図である。
図8A】フィルタ係数のエンコーディングおよびシグナリングのための例示的なエンコーダ側の処理を示す図である。
図8B】フィルタ係数をデコーディングおよび再構築するための例示的なデコーダ側の処理を示す図である。
図9】本発明の他の実施形態の特定の実装例を示す図である。
図10】本発明のさらに他の実施形態の特定の実装例を示し、本発明の手段によって達成される利点の説明に役立つ。
図11】本発明を適用することができるフィルタカーネルのさらなる例を示す。図面において、同一の参照符号は、同一または少なくとも機能的に同等の特徴を指す。
【発明を実施するための形態】
【0060】
以下の説明では、本開示の一部を形成し、例として、本発明の実施形態の具体的態様または本発明の実施形態が使用され得る具体的態様を示す添付の図面を参照する。本発明の実施形態は他の態様で使用されてもよく、図に示されない構造的または論理的変更を含んでもよいことが理解される。従って、以下の詳細な説明は、制限的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0061】
例えば、説明された方法に関連する開示は、方法を実行するように構成された対応するデバイスまたはシステムにも当てはまり得、逆もまた同様であることが理解される。例えば、1または複数の特定の方法の段階が説明されている場合、対応するデバイスは、記載された1または複数の方法の段階を実行するために1または複数のユニット、例えば機能ユニットを含むことができ(例えば、1または複数の段階を実行する1つのユニット、またはそれぞれが複数の段階の1または複数を実行する複数のユニット)、そのような1または複数のユニットが図に明示的に説明または図示されていない場合であっても同様である。他方、例えば、特定の装置が1または複数のユニット、例えば機能ユニットに基づいて説明される場合、対応する方法は、1または複数のユニットの機能を実行するための1つの段階を含み得(例えば、1または複数のユニットの機能を実行する1つの段階、または複数のユニットの1または複数の機能をそれぞれ実行する複数の段階)、そのような1または複数の段階が図に明示的に説明または図示されていない場合であっても同様である。さらに、特に断りのない限り、本明細書で説明するさまざまな例示的な実施形態および/または態様の特徴を互いに組み合わせることができることが理解される。
【0062】
ビデオコーディングは典型的には、ビデオまたはビデオシーケンスを形成する一連の画像の処理を意味する。画像という用語の代わりに、フレームまたはイメージという用語が、ビデオコーディングの分野での同義語として使用されてもよい。ビデオコーディングは、ビデオエンコーディングとビデオデコーディングの2つの部分で構成される。ビデオエンコーディングはソース側で実行され、典型的には、元のビデオ画像の処理(例えば、圧縮によって)を含み、ビデオ画像を表すために必要なデータ量を削減する(より効率的なストレージおよび/または送信のため)。ビデオデコーディングは宛先側で実行され、典型的には、ビデオ画像を再構築するためのエンコーダと比較して逆の処理を含む。ビデオ画像(または後で説明する一般的な画像)の「コーディング」に言及する実施形態は、ビデオ画像の「エンコーディング」および「デコーディング」の両方に関連すると理解されるべきである。エンコーディング部分とデコーディング部分の組み合わせは、コーデック(コーディングおよびデコーディング)とも称される。
【0063】
無損失ビデオコーディングの場合、元のビデオ画像を再構築でき、すなわち、再構築されたビデオ画像は元のビデオ画像と同じ品質である(保存中または送信中に伝送損失またはその他のデータ損失がないと仮定して)。不可逆ビデオコーディングの場合、例えば量子化などのさらなる圧縮が実行され、デコーダで完全に再構築できないビデオ画像を表すデータ量が削減され、すなわち、再構築されたビデオ画像の品質は、元のビデオ画像の品質と比較して低くなったり悪くなったりする。
【0064】
H.261以降の複数のビデオコーディング標準は、「不可逆ハイブリッドビデオコーデック」のグループに属している(すなわち、サンプル領域での空間および時間予測と、変換領域で量子化を適用するための2D変換コーディングを組み合わせる)。ビデオシーケンスの各画像は、典型的には、非重複ブロックのセットへと分割され、典型的には、コーディングはブロックレベルで実行される。換言すれば、エンコーダでは、ビデオは典型的には、ブロック(ビデオブロック)レベルで処理、すなわち、エンコードされ、例えば、空間(イントラ画像)予測と時間(インター画像)予測を使用して予測ブロックを生成し、現在のブロック(現在処理中/処理予定のブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換し、変換領域で残差ブロックを量子化して、送信するデータ量を削減(圧縮)し、デコーダは、エンコーダと比較して逆の処理をエンコードまたは圧縮されたブロックに適用して、現在のブロックを再構築して表示する。さらに、エンコーダはデコーダ処理ループを複製して、両方が同一の予測(例えば、イントラ予測およびインター予測)および/または後続のブロックの処理、すなわち、コーディングのための再構築を生成するようにする。
【0065】
ビデオ画像処理(動画処理とも称される)と静止画像処理(コーディングを含む処理という用語)は、多くのコンセプトと技術、またはツールを共有し、以下では、「画像」または「イメージ」という用語と同等の「画像データ」または「イメージデータ」という用語は、ビデオシーケンスのビデオ画像(上記で説明)および/または静止画像を指し、不要なビデオ画像と静止画像の不要な繰り返しと区別を回避するために使用される。説明が静止画像(または静止イメージ)のみに言及している場合、「静止画像」という用語が使用されるべきである。
【0066】
エンコーダ100の以下の実施形態では、デコーダ200およびコーディングシステム300は、図1から3に基づいて説明される(図7から9に基づいて本発明の実施形態をより詳細に説明する前に)。
【0067】
図1は、コーディングシステム300、例えば、画像コーディングシステム300の実施形態を示す概念的または概略的なブロック図であり、ここで、コーディングシステム300は、エンコードデータ330、例えば、エンコード画像330を、例えば、エンコードデータ330をデコーディングするための宛先デバイス320に提供するように構成された送信元デバイス310を有する。
【0068】
送信元デバイス310は、エンコーダ100またはエンコーディングユニット100を有し、さらに追加的に、すなわち、任意選択的に、画像ソース312、前処理ユニット314、例えば画像前処理ユニット314、および通信インタフェースまたは通信ユニット318を含む。
【0069】
画像ソース312は、例えば、実世界の画像を取り込むための任意の種類の画像取込デバイス、および/または任意の種類の画像生成デバイス、例えば、コンピュータアニメーション画像を生成するためのコンピュータグラフィックプロセッサ、または、実世界の画像、コンピュータアニメーション画像(例えば、画面コンテンツ、仮想現実(VR)画像)および/またはそれらの任意の組み合わせ(例えば、拡張現実(AR)画像)を取得および/または提供するための任意の種類のデバイスを含み得るか、またはそれらであり得る。以下では、これらの種類のすべての画像またはイメージ、および任意の他の種類の画像またはイメージを、特に明記しない限り、「画像」、「イメージ」、「画像データ」、または「イメージデータ」と称し、一方で、「ビデオ画像」および「静止画像」をカバーする「画像」または「イメージ」という用語に関するこれまでの説明は、明示的に異なる様に指定されない限り、依然として当てはまる。
【0070】
(デジタル)画像は、強度値を持つサンプルの2次元配列またはマトリックスであるか、それとみなされ得る。アレイ内のサンプルは、画素(画像要素の短縮形)またはペルとも称され得る。アレイまたは画像の水平および垂直方向(または軸)のサンプル数は、画像のサイズおよび/または解像度を定義する。色を表現するために、典型的には3つの色成分が使用され、すなわち、画像が表されてもよく、3つのサンプルアレイが含まれる。RGB形式または色空間では、画像は対応する赤、緑、青のサンプルアレイで構成される。しかしながら、ビデオコーディングでは、各画素は典型的には、輝度/クロミナンス形式または色空間で表され、例えば、Y(代わりにLが使用されることもある)で示される輝度成分と、CbおよびCrで示される2つのクロミナンス成分で構成されるYCbCrなどで表される。輝度(または省略してルマ)コンポーネントYは、明度またはグレーレベルの強度(例えば、グレースケールの画像のような)を表し、一方、2つのクロミナンス(または短いクロマ)成分CbおよびCrは、色度または色情報成分を表す。従って、YCbCr形式の画像は、輝度サンプル値(Y)の輝度サンプルアレイ、およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイを含む。RGB形式の画像は、YCbCr形式に転換または変換することができ、その逆もまた同様であり、このプロセスは、色変換または転換とも称される。画像がモノクロの場合、画像は輝度サンプルアレイのみで構成される。
【0071】
画像ソース312は、例えば、画像を取り込むためのカメラ、以前に取り込まれたまたは生成された画像を含むまたは記憶するメモリ、例えば、画像メモリ、および/または画像を取得または受信するための任意の種類のインタフェース(内部または外部)であってもよい。カメラは、例えば、送信元デバイスに統合されたローカルまたは統合カメラであり得、メモリは、ローカルまたは統合メモリであり得、例えば、送信元デバイスに統合される。インタフェースは、例えば、外部ビデオソースから画像を受信するための外部インタフェースであり、例えば、カメラのような外部画像取込デバイス、外部メモリであり、または外部画像生成デバイスであり、例えば、外部コンピュータグラフィックプロセッサ、コンピュータまたはサーバであり得る。インタフェースは、任意の種類のインタフェース、例えば、任意の独自のまたは標準化されたインタフェースプロトコルによる有線または無線インタフェース、光インタフェースであり得る。画像データ313を取得するためのインタフェースは、通信インタフェース318と同じインタフェースであってもよいし、通信インタフェース318の一部であってもよい。
【0072】
各デバイス内のユニット間のインタフェースには、ケーブル接続、USBインタフェースが含まれ、送信元デバイス310と宛先デバイス320間の通信インタフェース318および322には、ケーブル接続、USBインタフェース、無線インタフェースが含まれる。
【0073】
前処理ユニット314および前処理ユニット314によって実行される処理とは異なり、画像または画像データ313は、未処理画像または未処理画像データ313とも称され得る。
【0074】
前処理ユニット314は、(未処理)画像データ313を受信し、画像データ313に対して前処理を実行して、前処理された画像315または前処理された画像データ315を取得するように構成される。前処理ユニット314によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCrへ)、色補正、またはノイズ除去を含み得る。
【0075】
エンコーダ100は、前処理された画像データ315を受信し、エンコード画像データ171を提供するように構成される(さらなる詳細は、例えば、図2に基づいて説明される)。
【0076】
送信元デバイス310の通信インタフェース318は、エンコード画像データ171を受信し、それを他のデバイス、例えば、宛先デバイス320または任意の他のデバイスに、ストレージまたは直接再構築のために直接送信するか、または、それぞれ、エンコードデータ330を記憶する前および/またはエンコードデータ330を他のデバイス、例えば、宛先デバイス320またはデコーディングまたは記憶するための任意の他のデバイスに送信する前に、エンコード画像データ171を処理するように構成され得る。
【0077】
宛先デバイス320は、デコーダ200またはデコーディングユニット200を有し、さらに追加的に、すなわち、任意選択的に、通信インタフェースまたは通信ユニット322、後処理ユニット326およびディスプレイデバイス328を有し得る。
【0078】
宛先デバイス320の通信インタフェース322は、例えば、送信元デバイス310から直接、または任意の他のソース、例えば、メモリ、例えば、エンコード画像データメモリから、エンコード画像データ171またはエンコードデータ330を受信するように構成される。
【0079】
通信インタフェース318および通信インタフェース322は、送信元デバイス310と宛先デバイス320との間の直接通信リンクを介して、例えば、光接続を含む直接有線または無線接続、または任意の種類のネットワーク、例えば、有線または無線ネットワークまたはそれらの任意の組み合わせ、または任意の種類のプライベートおよびパブリックネットワーク、またはそれらの任意の種類の組み合わせを介して、エンコード画像データ171またはエンコードデータ330をそれぞれ送信、受信するように構成され得る。
【0080】
通信インタフェース318は、例えば、通信リンクまたは通信ネットワークを介した送信のために、エンコード画像データ171を適切な形式、例えば、パケットにパッケージ化するように構成でき、データ損失保護をさらに含み得る。
【0081】
通信インタフェース318の相手を形成する通信インタフェース322は、例えば、エンコード画像データ171を取得するためにエンコードデータ330をデパッケージするように構成され、データ損失保護およびデータ損失回復を実行するようにさらに構成され得、例えば、エラー隠蔽を含む。
【0082】
通信インタフェース318および通信インタフェース322の両方は、送信元デバイス310から宛先デバイス320を指す図1のエンコード画像データ330の矢印によって示される単方向通信インタフェース、または双方向通信インタフェースとして構成され得、例えば、メッセージの送受信、例えば接続の設定、画像データを含む失われたデータや遅延したデータの確認および/または再送信、および通信リンクおよび/またはデータ送信、例えば、エンコード画像データ送信に関連する任意の他の情報の交換として構成され得る。
【0083】
デコーダ200は、エンコード画像データ171を受信し、デコード画像データ231またはデコード画像231を提供するように構成される(さらなる詳細は、例えば、図9に基づいて説明される)。
【0084】
宛先デバイス320のポストプロセッサ326は、デコード画像データ231、例えば、デコード画像231を後処理して、後処理された画像データ327、例えば、後処理された画像327を取得するように構成される。後処理ユニット326によって実行される後処理は、例えば、(例えば、YCbCrからRGBへの)色フォーマット変換、色補正、トリミング、または再サンプリング、または、例えば、ディスプレイデバイス328による表示のために、例えば、デコード画像データ231を準備するための任意の他の処理を含み得る。
【0085】
宛先デバイス320のディスプレイデバイス328は、例えば、ユーザまたは視聴者に画像を表示するための後処理された画像データ327を受信するように構成される。ディスプレイデバイス328は、例えば、統合型または外部ディスプレイまたはモニタなど、再構築された画像を表すための任意の種類のディスプレイであるか、またはそれを含むことができる。ディスプレイは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、またはプロジェクタ、ホログラフィックディスプレイ、ホログラムを生成する装置などの任意の種類の他のディスプレイを含み得る。
【0086】
図1は、送信元デバイス310および宛先デバイス320を別個のデバイスとして示しているが、デバイスの実施形態は、両方または両方の機能、送信元デバイス310または対応する機能および宛先デバイス320または対応する機能も含み得る。そのような実施形態では、送信元デバイス310または対応する機能および宛先デバイス320または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアまたはそれらの任意の組み合わせによって実装され得る。
【0087】
説明に基づいて当業者には明らかとなるように、図1に示される送信元デバイス310および/または宛先デバイス320内の異なるユニットまたは機能の機能の存在および(厳密に)分割は、実際のデバイスとアプリケーションに応じて変動する。
【0088】
以下では、コーディングシステム300、送信元デバイス310および/または宛先デバイス320のいくつかの非制限的な例が提供される。スマートフォン、タブレット、または統合ディスプレイを有したハンドヘルドカメラなどのさまざまな電子製品は、コーディングシステム300の例として見ることができる。それらは、ディスプレイデバイス328を含み、それらのほとんどは、統合カメラ、すなわち、画像ソース312も同様に含む。統合カメラでとられた画像データを処理して表示する。処理は、画像データの内部でのエンコーディングおよびデコーディングを含み得る。加えて、エンコード画像データは、統合メモリに記憶されてもよい。
【0089】
代替的に、これらの電子製品は、インターネットや外部カメラなどの外部ソースから画像データを受信したり、エンコード画像データを外部ディスプレイやストレージユニットに送信したりするための有線または無線インタフェースを有し得る。
【0090】
他方、セットトップボックスは、統合カメラやディスプレイを含まず、受信した画像データを画像処理を実行して外部ディスプレイデバイスに表示する。そのようなセットトップボックスは、例えば、チップセットによって具現化されてもよい。
【0091】
代替的に、セットトップボックスと同様のデバイスが、統合ディスプレイを有したTVセットなどのディスプレイデバイスに含まれ得る。
【0092】
統合ディスプレイのない監視カメラは、さらなる例を構成する。これらは、取り込まれたおよびエンコード画像データを外部ディスプレイデバイスまたは外部ストレージデバイスに送信するためのインタフェースを有した送信元デバイスを表す。
【0093】
反対に、例えばARまたはVRに使用されるスマートグラスまたは3Dグラスなどのデバイスは、宛先デバイス320を表す。これらは、エンコード画像データを受信して表示する。
【0094】
従って、図1に示される送信元デバイス310および宛先デバイス320は、本発明の例示的な実施形態にすぎず、本発明の実施形態は、図1に示されるものに制限されない。
【0095】
送信元デバイス310および宛先デバイス320は、任意の種類のハンドヘルドまたは固定デバイス、例えば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイス、放送受信デバイスなどを含む、広範囲のデバイスのいずれかを含み得る。大規模で専門的なエンコーディングおよびデコーディングの場合、送信元デバイス310および/または宛先デバイス320は、大規模ネットワークに含まれ得るサーバおよびワークステーションを追加的に含み得る。これらのデバイスは、オペレーティングシステムをまったく使用しないか、または任意の種類のオペレーティングシステムを使用し得る。
【0096】
[エンコーダおよびエンコーディング方法]
図2は、実施形態の画像エンコーダ100の概略/概念ブロック図を示し、例えば、入力102、残差計算ユニット104、変換ユニット106、量子化ユニット108、逆量子化ユニット110、および逆変換ユニット112、を含むエンコーダ100、再構築ユニット114、バッファ116、ループフィルタ120、デコード画像バッファ(DPB)130、インター推定ユニット142、インター予測ユニット144、イントラ推定ユニット152、イントラ予測ユニット154およびモード選択ユニット162を含む予測ユニット160、エントロピーエンコーディングユニット170、および出力172を示す。図2に示されるビデオエンコーダ100は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。各ユニットは、プロセッサと非一時的メモリで構成され、プロセッサによって非一時的メモリに記憶されたコードを実行することにより、その処理段階を実行する。
【0097】
例えば、残差計算ユニット104、変換ユニット106、量子化ユニット108、およびエントロピーエンコーディングユニット170は、エンコーダ100の順方向信号経路を形成し、それに対して、例えば、逆量子化ユニット110、逆変換ユニット112、再構築ユニット114、バッファ116、ループフィルタ120、デコード画像バッファ(DPB)130、インター予測ユニット144、およびイントラ予測ユニット154は、エンコーダの逆方向信号経路を形成し、ここで、エンコーダの逆方向信号経路は、同一の再構築および予測のための逆の処理を提供するためのデコーダの信号経路に対応する(図3のデコーダ200を参照)。
【0098】
エンコーダは、例えば、入力102によって、画像101または画像101の画像ブロック103、例えば、ビデオまたはビデオシーケンスを形成する一連の画像の画像を受信するように構成される。画像ブロック103はまた、現在の画像ブロックまたはコードされるべき画像ブロックと称され得、画像101は、コードされるべき現在の画像または画像と称され得る(特に、現在の画像を他の画像から区別するためのビデオコーディング、例えば、同じビデオシーケンスの以前のエンコードおよび/またはデコード画像、すなわち、現在の画像も含むビデオシーケンス)。
【0099】
[分割]
エンコーダ100の実施形態は、分割ユニット(図2には示さず)を有することができ、例えば、これは、画像103を複数のブロック、例えばブロック103のようなブロック、典型的には複数の非重複ブロックに分割するように構成された、画像分割ユニットとも称され得る。分割ユニットは、ブロックサイズを定義するビデオシーケンスおよび対応するグリッドのすべての画像に同じブロックサイズを使用するか、画像間またはサブセット間または画像グループ間でブロックサイズを変更し、各画像を対応するブロックに分割するように構成できる。
【0100】
複数のブロックの各ブロックは、正方形の寸法またはより一般的な長方形の寸法を有することができる。長方形以外の形状の画像領域であるブロックは表示されない場合がある。
【0101】
画像101と同様に、ブロック103もまた、画像101よりも小さい寸法であるが、強度値(サンプル値)を有するサンプルの2次元アレイまたはマトリクスであるか、またはそれとみなすことができる。換言すれば、ブロック103は、例えば、1つのサンプルアレイ(例えば、モノクロ画像101の場合はルマアレイ)または3つのサンプルアレイ(例えば、カラー画像101の場合はルマおよび2つのクロマアレイ)または、適用される色形式に応じて、任意の他の数および/または種類のアレイを含み得る。ブロック103の水平および垂直方向(または軸)のサンプルの数は、ブロック103のサイズを定義する。
【0102】
図2に示されるエンコーダ100は、画像101をブロックごとにエンコードするように構成され、例えば、エンコーディングおよび予測は、ブロック103ごとに実行される。
【0103】
[残差計算]
残差計算ユニット104は、画像ブロック103および予測ブロック165に基づいて残差ブロック105を計算するように構成され(予測ブロック165についてのさらなる詳細は後で提供される)、例えば、画像ブロック103のサンプル値から予測ブロック165のサンプル値を減算することにより、サンプルごとに(画素ごとに)サンプル領域内の残差ブロック105を取得する。
【0104】
[変換]
変換ユニット106は、例えば、空間周波数変換または線形空間変換のような変換を適用し、例えば、離散コサイン変換(DCT)または離散サイン変換(DST)を残差ブロック105のサンプル値に適用し、変換領域で変換係数107を取得するように構成される。変換係数107は、変換残差係数とも称され得、変換領域における残差ブロック105を表す。
【0105】
変換ユニット106は、HEVC/H.265に対して指定されたコア変換などのDCT/DSTの整数近似を適用するように構成され得る。正規直交DCT変換と比較すると、そのような整数近似は典型的には、特定の係数によってスケーリングされる。順変換と逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的には、シフト演算の2のべき乗であるスケーリング係数、変換係数のビット深度、精度と実装コストのトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング係数は、例えば、デコーダ200において(および、例えば、エンコーダ100における逆変換ユニット112による、対応する逆変換)、例えば、逆変換ユニット212によって逆変換について指定され、エンコーダ100での、例えば、変換ユニット106による順方向変換のための対応するスケーリング係数は、それに応じて指定され得る。
【0106】
[量子化]
量子化ユニット108は、例えばスカラ量子化またはベクトル量子化を適用することにより、変換係数107を量子化して量子化係数109を取得するように構成される。量子化係数109は、量子化残差係数109とも称され得る。例えば、スカラ量子化の場合、より細かいまたはより粗い量子化を達成するために、異なるスケーリングが適用されてもよい。量子化段階サイズが小さいほど細かい量子化に対応し、量子化段階サイズが大きいほど粗い量子化に対応する。適用可能な量子化段階サイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化段階サイズの予め定義されたセットへのインデックスであり得る。例えば、小さな量子化パラメータは細かい量子化(小さな量子化段階サイズ)に対応し得、大きな量子化パラメータは粗い量子化(大きな量子化段階サイズ)に対応し得るか、または逆もまた同様である。量子化は、量子化段階サイズによる除算を含み、例えば、逆量子化110による対応するまたは逆の逆量子化は、量子化段階サイズによる乗算を含み得る。HEVC(High-Efficiency Video Coding)による実施形態は、量子化パラメータを使用して量子化段階サイズを決定するように構成され得る。概して、量子化段階サイズは、除算を含む方程式の固定小数点近似を使用する量子化パラメータに基づいて算出できる。残差ブロックのノルムを復元するために、量子化と逆量子化に追加のスケーリング係数を導入でき、これは、量子化段階サイズと量子化パラメータの方程式の固定小数点近似で使用されるスケーリングに起因して変更され得る。1つの実装例では、逆変換のスケーリングと逆量子化を組み合わせることができる。代替的に、カスタマイズされた量子化テーブルが使用され得、例えば、ビットストリームで、エンコーダからデコーダへシグナリングされ得る。量子化は不可逆演算であり、損失は量子化段階サイズの増加に伴って増加する。
【0107】
エンコーダ100(またはそれぞれの量子化ユニット108)の実施形態は、量子化スキームおよび量子化段階サイズを含む量子化設定を出力するように構成されてもよく、例えば、対応する量子化パラメータにより、デコーダ200は対応する逆量子化を受信して適用することができる。エンコーダ100(または量子化ユニット108)の実施形態は、量子化スキームおよび量子化段階サイズを、例えば、直接的に、またはエントロピーエンコーディングユニット170または任意の他のエントロピーエンコーディングユニットを介してエントロピーエンコードして出力するように構成され得る。
【0108】
逆量子化ユニット110は、量子化ユニット108の逆量子化を量子化係数に適用して、例えば、量子化ユニット108と同じ量子化段階サイズに基づいて、またはそれを使用して、量子化ユニット108によって適用された量子化スキームの逆を適用することによって、逆量子化係数111を取得するように構成される。逆量子化係数111は、逆量子化残差係数111とも称され得、典型的には、量子化による損失に起因して変換係数と同一ではないが、変換係数108に対応する。
【0109】
逆変換ユニット112は、変換ユニット106によって適用される変換の逆変換を適用するように構成され、例えば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)により、サンプル領域において逆変換ブロック113が取得される。逆変換ブロック113は、逆変換逆量子化ブロック113または逆変換残差ブロック113とも称され得る。
【0110】
再構築ユニット114は、逆変換ブロック113および予測ブロック165を組み合わせて、例えば、デコードされた残差ブロック113のサンプル値と予測ブロック165のサンプル値をサンプルごとに加えることにより、サンプル領域において再構築ブロック115を取得するように構成される。
【0111】
バッファユニット116(または短い「バッファ」116)、例えば、ラインバッファ116は、例えば、イントラ推定および/またはイントラ予測のために、再構築ブロックおよびそれぞれのサンプル値をバッファまたは記憶するように構成される。さらなる実施形態では、エンコーダは、任意の種類の推定および/または予測のために、フィルタリングされていない再構築ブロックおよび/またはバッファユニット116に記憶されたそれぞれのサンプル値を使用するように構成され得る。
【0112】
エンコーダ100の実施形態は、例えば、バッファユニット116が、イントラ推定152および/またはイントラ予測154のために再構築ブロック115を記憶するためだけでなく、ループフィルタユニット120のためにも、および/または、例えば、バッファユニット116とデコード画像バッファユニット130が1つのバッファを形成するようにするために使用されるように構成され得る。さらなる実施形態は、イントラ推定152および/またはイントラ予測154のための入力または基礎として、フィルタリングされたブロック121および/またはデコード画像バッファ130からのブロックまたはサンプル(どちらも図2には示されない)を使用するように構成され得る。
【0113】
ループフィルタユニット120(または短い「ループフィルタ」120)は、例えば、デブロッキングサンプル適応オフセット(SAO)フィルタまたは他のフィルタ、例えば、シャープ化または平滑化フィルタまたは協調フィルタを適用して、再構築ブロック115をフィルタリングして、フィルタリングされたブロック121を取得するように構成される。フィルタリングされたブロック121は、フィルタリングされた再構築ブロック121とも称され得る。
【0114】
ループフィルタユニット120の実施形態は、フィルタ分析ユニットおよび実際のフィルタユニットを有することができ、フィルタ分析ユニットは、実際のフィルタのループフィルタパラメータを決定するように構成される。フィルタ分析ユニットは、固定の予め定められたフィルタパラメータを実際のループフィルタに適用し、予め定められたフィルタパラメータのセットからフィルタパラメータを適応的に選択するか、または実際のループフィルタのフィルタパラメータを適応的に算出するように構成され得る。
【0115】
ループフィルタユニット120の実施形態は、(図2には図示されない)1または複数のフィルタ(ループフィルタコンポーネントおよび/またはサブフィルタなど)を含み得、例えば、1または複数の異なる種類またはタイプのフィルタであって、例えば、直列または並列またはそれらの任意の組み合わせで接続され、それぞれのフィルタは、複数のフィルタの他のフィルタと個々にまたはまとめて、例えば、前の段落で説明したように、それぞれのループフィルタパラメータを決定するためのフィルタ分析ユニットを含み得る。
【0116】
エンコーダ100の実施形態(それぞれループフィルタユニット120)は、例えば、直接またはエントロピーエンコーディングユニット170または任意の他のエントロピーエンコーディングユニットを介してエントロピーエンコードされたループフィルタパラメータを出力するように構成され得、その結果、例えば、デコーダ200は、デコーディングのために同じループフィルタパラメータを受信して適用し得る。
【0117】
デコード画像バッファ(DPB)130は、フィルタリングされたブロック121を受信して記憶するように構成される。デコード画像バッファ130は、同じ現在の画像または異なる画像の、例えば、以前に再構築された画像の、他の以前にフィルタリングされたブロック、例えば、以前に再構築およびフィルタリングされたブロック121を記憶するようにさらに構成され得、例えば、インター推定および/またはインター予測のために、完全に以前に再構築された、すなわち、デコード画像(および対応する参照ブロックおよびサンプル)および/または部分的に再構築された現在の画像(および対応する参照ブロックおよびサンプル)を提供し得る。
【0118】
本発明のさらなる実施形態は、任意の種類の推定または予測、例えば、イントラ推定および予測ならびにインター推定および予測のために、以前にフィルタリングされたブロックおよびデコード画像バッファ130の対応するフィルタリングされたサンプル値を使用するように構成され得る。
【0119】
予測ユニット160は、ブロック予測ユニット160とも称され、画像ブロック103(現在の画像101の現在の画像ブロック103)およびデコードまたは少なくとも再構築された画像データ、例えば、バッファ116からの同じ(現在の)画像の基準サンプルおよび/またはデコード画像バッファ130からの1または複数の以前にデコード画像からのデコード画像データ231、を受信または取得するように構成され得、そのようなデータを予測のために処理する、すなわち、インター予測ブロック145またはイントラ予測ブロック155であり得る予測ブロック165を提供するように構成される。
【0120】
モード選択ユニット162は、予測モード(例えば、イントラまたはインター予測モード)および/または残差ブロック105の計算および再構築ブロック115の再構築のための予測ブロック165として使用される対応する予測ブロック145または155を選択するように構成され得る。
【0121】
モード選択ユニット162の実施形態は、(例えば、予測ユニット160によってサポートされるものから)予測モードを選択するように構成され得、最適な一致、換言すれば最小残差(最小残差とは、送信またはストレージの圧縮率が高いことを意味する)、または、最小のシグナリングオーバヘッド(最小のシグナリングオーバヘッドは、送信またはストレージのための圧縮率が高いことを意味する)を提供し、または両方を考慮またはバランスする。モード選択ユニット162は、レート歪み最適化(RDO)に基づいて予測モードを決定する、すなわち、最小レート歪み最適化を提供する、または関連するレート歪みが少なくとも予測モード選択基準を満たす予測モードを選択するように構成され得る。
【0122】
以下では、例示的なエンコーダ100によって実行される予測処理(例えば、予測ユニット160)およびモード選択(例えば、モード選択ユニット162による)をより詳細に説明する。
【0123】
上記のように、エンコーダ100は、(予め定められた)予測モードのセットから最良または最適な予測モードを決定または選択するように構成される。予測モードのセットは、例えば、イントラ予測モードおよび/またはインター予測モードを含み得る。
【0124】
イントラ予測モードのセットは、32個の異なるイントラ予測モード、例えば、DC(または平均)モードおよび平面モードのような無指向性モード、または、例えばH.264で定義されているような指向性モードを含み得、または、65個の異なるイントラ予測モード、例えば、DC(または平均)モードや平面モードのような無指向性モード、または、例えば、H.265で定義されているような指向性モードを含み得る。
【0125】
インター予測モードのセット(または可能性のある)、例えば、参照画像全体か一部のみであるか、例えば、参照画像の現在のブロックの領域の周囲の検索ウィンドウ領域は、最も一致する参照ブロックを検索するために使用されるかどうか、および/または、例えば画素補間が適用されるかどうか、例えば、1/2/半ペルおよび/または1/4ペル補間かは、利用可能な参照画像(すなわち、以前に少なくとも部分的にデコードされた、例えば、DPB230に記憶された画像)および他のインター予測パラメータに依存する。
【0126】
上記の予測モードに加えて、スキップモードおよび/または直接モードが適用されてもよい。
【0127】
予測ユニット160は、例えば、4分木分割(QT)、2進分割(BT)、3分木分割(TT)、またはそれらの任意の組み合わせを繰り返し使用して、ブロック103をより小さいブロック分割またはサブブロックに分割するようにさらに構成され得、そして、例えば、ブロック分割またはサブブロックのそれぞれについて予測を実行する。ここで、モード選択は、分割されたブロック103のツリー構造の選択と、ブロック分割またはサブブロックのそれぞれに適用される予測モードとを含む。インター画像推定ユニット142とも称される。
【0128】
インター推定ユニット142は、インター推定(または「インター画像推定」)のために、画像ブロック103(現在の画像101の現在の画像ブロック103)およびデコード画像231、または、少なくとも1または複数の以前の再構築ブロック、例えば、1または複数の他の/異なる以前にデコード画像231の再構築ブロックを受信または取得するように構成される。例えば、ビデオシーケンスは、現在の画像および以前にデコード画像231を含むことができ、換言すれば、現在の画像および以前にデコード画像231は、ビデオシーケンスを形成する画像シーケンスの一部であるかまたはそれを形成することができる。
【0129】
エンコーダ100は、例えば、複数の他の画像の同じまたは異なる画像の複数の参照ブロックから参照ブロックを選択(取得/決定)し、参照画像(または参照画像インデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置の間のオフセット(空間オフセット)を、インター推定パラメータ143としてインター予測ユニット144に提供するように構成され得る。このオフセットは、モーションベクトル(MV)とも称される。インター推定は動き推定(ME)とも称され、インター予測は動き予測(MP)とも称される。
【0130】
インター予測ユニット144は、インター予測パラメータ143を取得し、例えば、受信し、インター予測パラメータ143に基づいてまたはそれを使用してインター予測を実行し、インター予測ブロック145を取得するように構成される。
【0131】
図2は、インターコーディングのための2つの別個のユニット(または段階)、つまり、インター推定142およびインター予測144を示しているが、両方の機能は、例えば、現在の最良のインター予測モードとそれぞれのインター予測ブロックを記憶しながら、可能なインター予測モードのすべての可能なまたは予め定められたサブセットを繰り返しテストし、典型的には、インター推定は、インター予測ブロック、すなわち、インター予測ブロックまたは「一種の」インター予測144を算出することを要求する/含む)、インター予測144を再度実行することなく、現在最良のインター予測モードおよびそれぞれのインター予測ブロックを(最終的な)インター予測パラメータ143およびインター予測ブロック145として使用することによって、1つの機能として実行できる。
【0132】
イントラ推定ユニット152は、イントラ推定のために同じ画像の画像ブロック103(現在の画像ブロック)および1または複数の以前の再構築ブロック、例えば、再構築隣接ブロックを取得する、例えば、受信するように構成される。エンコーダ100は、例えば、複数のイントラ予測モードからイントラ予測モードを選択(取得/決定)し、それをイントラ推定パラメータ153としてイントラ予測ユニット154に提供するように構成され得る。
【0133】
エンコーダ100の実施形態は、最適化基準、例えば最小残差(例えば、現在の画像ブロック103にもっとも類似する予測ブロック155を提供するイントラ予測モード)または最小レート歪みに基づいてイントラ予測モードを選択するように構成され得る。
【0134】
イントラ予測ユニット154は、イントラ予測パラメータ153、例えば、選択されたイントラ予測モード153、イントラ予測ブロック155に基づいて決定するように構成される。
【0135】
図2は、イントラコーディングのための2つの別個のユニット(または段階)、つまり、イントラ推定152およびイントラ予測154を示しているが、両方の機能は、例えば、現在の最良のイントラ予測モードとそれぞれのイントラ予測ブロックを記憶しながら、可能なイントラ予測モードのすべての可能なまたは予め定められたサブセットを繰り返しテストし、典型的には、イントラ推定は、イントラ予測ブロック、すなわち、イントラ予測ブロックまたは「一種の」イントラ予測154を算出することを要求する/含む)、イントラ予測154を再度実行することなく、現在最良のイントラ予測モードおよびそれぞれのイントラ予測ブロックを(最終的な)イントラ予測パラメータ153およびイントラ予測ブロック155として使用することによって、1つの機能として実行できる。
【0136】
エントロピーエンコーディングユニット170は、エントロピーエンコーディングアルゴリズムまたはスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CALVC)、算術コーディングスキーム、コンテキスト適応2進算術コーディング(CABAC))を、量子化された残差係数109、インター予測パラメータ143、イントラ予測パラメータ153、および/またはループフィルタパラメータに個々にまたはまとめて適用するように(もしくはいずれも適用せずに)構成され、例えば、エンコードビットストリーム171の形で出力172によって出力され得るエンコード画像データ171を取得する。
【0137】
[デコーダ]
図3は、デコード画像231を取得するために、例えば、エンコーダ100によってエンコードされた、エンコード画像データ(例えば、エンコードビットストリーム)171を受信するように構成される例示的なビデオデコーダ200を示す。
【0138】
デコーダ200は、入力202、エントロピーデコーディングユニット204、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、デコード画像バッファ230、予測ユニット260を含み、予測ユニット260は、インター予測ユニット244、イントラ予測ユニット254、およびモード選択ユニット260、および出力232を含む。
【0139】
エントロピーデコーディングユニット204は、エンコード画像データ171に対してエントロピーデコーディングを実行して、例えば、量子化係数209および/またはデコードされたコードパラメータ(図3には示されない)、例えば、(デコードされた)インター予測パラメータ143、イントラ予測パラメータ153、および/またはループフィルタパラメータのいずれかまたはすべてを取得するように構成される。
【0140】
デコーダ200の実施形態では、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、デコード画像バッファ230、予測ユニット260およびモード選択ユニット260は、エンコーダ100(およびそれぞれの機能ユニット)の逆の処理を実行して、エンコード画像データ171をデコードするように構成される。
【0141】
具体的には、逆量子化ユニット210は、機能において逆量子化ユニット110と同一であり得、逆変換ユニット212は、機能において逆変換ユニット112と同一であり得、再構築ユニット214は、機能において再構築ユニット114と同一であり得、バッファ216は、機能においてバッファ116と同一であり得、ループフィルタ220は、機能においてループフィルタ220と同一であり得(実際のループフィルタに関しては、ループフィルタ220は、典型的には、元の画像101またはブロック103に基づいてフィルタパラメータを決定するフィルタ分析ユニットを有していないが、例えば、エントロピーデコーディングユニット204から、エンコーディングに使用されるフィルタパラメータを受信する(明示的にまたは暗黙的に)か取得する)、デコード画像バッファ230は、機能的においてデコード画像バッファ130と同一であり得る。
【0142】
予測ユニット260は、インター予測ユニット244およびイントラ予測ユニット254を有することができ、インター予測ユニット244は、機能においてインター予測ユニット144と同一であり得、イントラ予測ユニット254は、イントラ予測ユニット154と機能において同一であり得る。予測ユニット260およびモード選択ユニット262は、典型的には、ブロック予測を実行し、および/または(元の画像101に関するさらなる情報なしで)エンコードデータ171のみから予測ブロック265を取得し、(明示的にまたは暗黙的に)予測パラメータ143または153および/または選択された予測モードに関する情報を、例えばエントロピーデコーディングユニット204から受信または取得するように構成される。
【0143】
デコーダ200は、ユーザへの提示または閲覧のために、例えば、出力232を介して、デコード画像231を出力するように構成される。
【0144】
戻って図1を参照すると、デコーダ200から出力されたデコード画像231は、ポストプロセッサ326において後処理され得る。結果として生じる後処理された画像327は、内部または外部ディスプレイデバイス328に送信され、表示され得る。
【0145】
[詳細な実施形態]
本発明は、乗算演算が単純化されるように、適応乗算フィルタのフィルタ係数によって仮定され得る値を制限する。画像の信号サンプルのセットのフィルタリングは、適応乗算係数を持つフィルタを使用し、乗算係数は整数で表される。係数Cの絶対値の最高値がNであるとすると、Nの2進表現にはL=ceil(log2(N))の2進数が必要である。換言すれば、Lの2進数を使用すると、ゼロ(L「ゼロ」)から2-1(L「1」)までの絶対係数値を表現できる(係数の符号は、ここでは説明しないが、別個の符号ビットで表される)。本発明の特定のアプローチによれば、この値のセットは、係数Cによって仮定され得る任意の値が、2進表現において最大でP<Lの「1」(「1」)の数を含むように制限される。例えば、すべて「1」(L「1」)の場合は除く。
【0146】
以下に示すように、許可される「1」の数Pが小さいほど、効率利得が向上し、フィルタリング演算のパフォーマンスが向上する。例えば、係数Cで仮定できる任意の値に含まれる「1」が最大で1つだけ、すなわち、最大で1つの「1」である場合、最良の効率利得の向上が達成できる。
【0147】
以下では、本発明の実装の特定の実施形態を詳細に説明する。
【0148】
以下に示すパラメータの例示的な値は、例示のみを目的とするものであり、当業者は、それらが添付の特許請求の範囲内にある任意の他の可能な値の範囲内で置換され得ることを認識していることに留意されたい。
【0149】
概して、フィルタ係数は有限精度を使用して実装される。フィルタ係数は、Lビットと任意の符号ビットを共に使用して表される。ビットLの量は、係数の最大絶対値に依存する。具体的には、係数Cの絶対値の最高値がNであるとすると、Nの2進表現にはL=ceil(log(N))の2進数が必要である。
【0150】
ceil(x)関数は、「x」またはceiling(x)で示され、xをxより大きいか等しい最小の整数にマッピングする。
【0151】
本発明の第1の例示的な実施形態によれば、フィルタ係数のLビットのうち最大で1つ(すなわち、符号ビットを除く)は、同時に「1」(「1」)であり得る。他の可能性は許可されない。
【0152】
例えば、L=6とし、1ビット(左端のビット)を使用して係数の符号を示す。
【0153】
例えば、次のフィルタ係数が使用できる:0(0000000)、1(0000001)、-1(1000001)、2(0000010)、-2(1000010)、4(0000100)、-4(1000100)、8 (0001000)、-8(1001000)、16(0010000)…、-32(1100000)。
【0154】
例えば、次のフィルタ係数は使用できない:3(0000011)、-15(1001111)、31(0011111)…。
【0155】
この場合、制限により乗算をひとつのビットシフト演算として実装できるので、利点が達成される。
【0156】
ビットシフト演算は数学的に次のように表すことができ:f(X、M)=X、ここで、Mは0より大きいか等しい整数である。上記の実施形態の一般化に従って、フィルタ係数のLビットのうちMは最大で、同時に「1」であり得る。他の可能性は許可されない。
【0157】
例えば、L=6、M=2とし、1ビットを使用して係数の符号を示す。
【0158】
例えば、次のフィルタ係数を使用できる:0(0000000)、3(0000011)、9(0001001)、-4(1000100)、-9(1001001)、18(0010010)、33(0100001)…。
【0159】
例えば、次のフィルタ係数は使用できない:7(0000111)、-19(1010011)、31(0011111)…。
【0160】
この場合、制限により、2つのビットシフトと1つの加算演算で乗算を実装できる。
【0161】
上記で概要を述べたより一般的なケースでは、一般的なM<Lの場合、制限によりMビットシフトとM-1加算演算によって乗算を達成できるので、利点が達成される。
【0162】
上記の例では、絶対値の制限されたセットが、適応フィルタの乗算のすべてのフィルタ係数に適用されると仮定されている。
【0163】
以下では、図7を参照して、より複雑な例示的な実施形態を説明するが、本発明による制限が適用されるが、検討中のフィルタのすべてのフィルタ係数には適用されない。
【0164】
この例では、第1段階で、係数が2つのグループにグループ化される。図において、第1グループは、フィルタの中央部分の白丸で示される係数位置に対応し、第2グループは、フィルタの周辺部分の図中の黒丸で示される係数位置に対応する。
【0165】
第1グループのフィルタ係数は、予め定められた範囲内の任意の値をとると仮定し得る。図示された例では、範囲はセット「S1」に対応すると仮定され、ここで、S1=[-511、…、511]である。これは、L=9の総ビット数(符号ビットを除く)に対応する。
【0166】
第2グループのフィルタ係数は、セット「S2」の任意の値をとると仮定でき、S2はS1のサブセットである。より具体的には、一例では、セットS2は、S2=[-32、-16、-8、-4、-2、-1、0、1、2、4,8、16、32]として定義される。従って、セットS2の許可値は、2進表現でひとつの「1」で表すことができるものに制限される。また、最大絶対許可値は32に制限されており、すなわち、数LはL=6に制限されているとさらに仮定される。概して、数Lは、グループごとに別個に、異なる様に設定できることに留意されたい。さらに、許可値のセットの特定のグループ化と定義は、画像ごとに(フレームごとに)変わる可能性がある。代替的に、セットのグループ化と定義は、異なるフィルタ形状によって異なり得る(例えば、図5で説明するように、5×5ダイヤモンド、7×7ダイヤモンド、9×9ダイヤモンド)。代替的に、グループ化と定義を予め定義し得る。
【0167】
この例の利点は、9ビットの乗算の代わりに、セットS2に1ビットシフトが使用されることである。
【0168】
フィルタ係数も同様にデコーダで正しく決定できるように、それぞれのデータをエンコーダのビットストリームに含め、デコーダにシグナリングする必要がある。もちろん、許可係数値の制限されたセットを適用すると、シグナリングオーバヘッドが削減され、ビットストリームでシグナリングされる係数を表すために必要なビットが少なくなるので、コーディングがより効率的になる。
【0169】
より具体的には、エンコーダによって適用されるフィルタ係数の値は、コード化されてデコーダに送信される必要がある。エンコーダ側では、フィルタ係数の値は、マッピングテーブルまたはマッピング関数を介して2進コードワード(フィルタ係数の値からコードワードへの)に変換される。フィルタ係数を正しく解釈するためには、同じマッピング演算をデコーダ(コードワードからフィルタ係数値まで)で適用する必要がある。
【0170】
マッピング関数またはテーブルは、S1とS2で異なり得る。フィルタ係数セットS1およびS2のマッピング演算の例を以下に示す。
【0171】
以下の例では、S1は(0,1,…,511)で与えられ、S2は(0,2,4,8,16,32)で与えられる(絶対値のみが考慮される)。
【0172】
【表2】
【0173】
デコーダがフィルタ係数値を正しく解釈できるように、エンコーダとデコーダとで順方向(エンコーダで)と逆方向(デコーダで)のマッピング演算を使用する必要がある。上記の例では、S2の別個の値の数がはるかに少なく、S1のマッピングを使用してS2フィルタ係数を表すのは無駄であるので、S2とS1でフィルタ係数のマッピング演算が異なる。従って、ビットストリームにおいてシグナリングされる係数を表すために必要なビットがより少ないので、本発明は、シグナリングオーバヘッドが削減され、従って、より効率的なコーディングをもたらす。
【0174】
以下では、図8を参照して、フィルタ係数のシグナリングの一般的な概要を示す。図8Aは、エンコーダ側の処理を示し、図8Bは、デコーダ側の処理を示している。
【0175】
エンコーダにおいて、再構築されたサンプルに適用されるフィルタ係数は、本発明の特定のアプローチによって決定されるような許可係数値に従って決定される(段階S80)。
【0176】
決定されたフィルタ係数は、再構築された画像サンプルをフィルタリングするために使用される(段階S82)。本発明によれば、再構築された画像サンプルに適用されるフィルタ係数は、本発明によって設定されるルールに従う必要がある。
【0177】
フィルタ係数の予測の次の段階(段階S84)は任意である。フィルタ係数予測は、デコーダにシグナリングされる情報を減らすために、任意選択的に適用できる。可能な予測方法は、予め定義されたフィルタ予測子を使用した予測と、以前にシグナリングされたフィルタ係数からの予測である。しかしながら、予測方法は、ここで例として与えられたものに制限されず、当業者が認識している任意の適切な予測方法を適用することができる。
【0178】
次の段階(S86)では、残差係数の2進コードワードへのマッピングが実行される。前述の予測段階S84は任意であるので、代替的に、マッピングは段階S80で決定されたフィルタ係数に直接適用されることに留意されたい。
【0179】
より具体的には、各整数値のフィルタ係数(フィルタ係数残差)は、ビットストリームに含まれる前に2進コードワードへ変換される。可能なフィルタ係数値(フィルタ係数残差値)と同じ数のコードワードがある。コードワードから値へのマッピング(1対1のマッピング)は、固定マッピングにすることもでき、シグナリングされたサイド情報に応じて変更することもできる。
【0180】
最後の段階S88では、2値化された(任意選択的に残差)フィルタ係数、すなわち、それらがマッピングされたコードワードがビットストリームに含まれる。段階S84で予測が実行される場合、再構築を実行できるようにするために、予測処理に関する必要な情報をデコーダに通知するために、予測制御情報を生成し、ビットストリームに上記予測制御情報を含めることがさらに必要である。
【0181】
概して、エンコーダで適用される演算は、デコーダで逆の順序で適用される。これは、図8Bを参照して以下により詳細に説明される。
【0182】
最初の段階S90では、受信されたビットストリームが解析される。結果として得られる2値化されたフィルタ係数(すなわち、送信されたコードワード)は、任意選択的に残差フィルタ係数を表す(エンコーダ側で予測が適用された場合)。これは、解析されたビットストリームから予測制御情報を追加的に取得することで示される。
【0183】
いずれの場合も、2進コードワードは、段階S92において、逆のマッピング手順(エンコーダと比較して)によってフィルタ係数(または残差フィルタ係数)にマッピングされる。
【0184】
その結果、デコーダ側でフィルタ係数が決定(再構築)される(段階S94)。予測が適用され、段階S92の結果から得られたフィルタ係数が残差フィルタ係数である場合、再構築は追加的に、再構築されたフィルタ係数を取得するために、予測制御情報によって示されるように予測を実行し、予測結果を残差フィルタ係数に加算することを含む。
【0185】
フィルタ係数が再構築された後(該当する場合、予測子情報とフィルタ残差を組み合わせることにより)、それらは再構築された画像サンプルに適用される(段階S96)。
【0186】
本発明によれば、再構築された画像サンプルに適用されるフィルタ係数は、本発明により定義されたルールに従う必要がある。
【0187】
従って、再構築の結果から得られたフィルタ係数に(特に、予測結果と残差結果の組み合わせから)、本発明のルールによる許可フィルタ係数値(許可値のセットに含まれないフィルタ係数値)がない場合、フィルタ係数の再構築プロセスは、丸め演算をさらに実行する。具体的には、丸め演算は、入力フィルタ係数値を最も近い許可係数値に変換し得る。
【0188】
フィルタ係数予測が適用される場合、フィルタリングの目的で再構築された画像サンプルに適用されるフィルタ係数は、予測結果(「予測子」)と残差フィルタ係数(エンコーダおよびデコーダの観点から前の段落で説明したとおり)を加算することによって取得される。特に予測が完全に近い場合(予測されるフィルタ係数が予測子に非常に類似している場合)は明らかに、残差フィルタ係数が存在しない(0に等しい)可能性がある。この場合、本発明によれば、以下の2つのオプションのうちの1つが適用される。
【0189】
1 予測によって取得された係数値は、本発明に従って定義されたルールに従う必要がある。例えば、予め定義されたフィルタからの予測の場合、予め定義されたフィルタのフィルタ係数は、本発明に従って定義されたルールに従う必要がある。
【0190】
2 予測後に取得されるフィルタ係数は、最も近い許可係数値に丸める必要がある。
【0191】
ここでは単純化のために2つのグループの数への分割について説明したが、しかし、2よりも多いグループも可能であり、少なくとも1つのグループについて、許可値のセットは、本発明に従って決定され、すなわち、予め定められたすべての数の2進数内に限られた数の「1」のみを含むことにさらに留意されたい。
【0192】
例えば、図9は、フィルタの係数が3つのグループにグループ化される場合を示している。
【0193】
フィルタカーネルの中心近くに配置された係数の第1グループは、セットS1=[-511、…、511]の許可フィルタ係数値を有する。
【0194】
カーネルの周囲に位置し、破線の丸で示されるフィルタ係数の第2グループにより、フィルタ係数値を変更された制限付きセットS2内に収めることができ、S2はS2=[-128、-64、-32、-16、-8、-4、-2、-1、0、1、2、4、8、16、32、64、128]である。これは、L=8の2進数で、ひとつだけの「1」で表現できるすべての係数値のセットである。
【0195】
第1グループと第2グループの間に位置し、塗りつぶされた円で示されるフィルタ係数の第3グループにより、フィルタ係数値を他の制限されたセットS3内に収めることができる。S3=[-64、-48、-40、・・・、0、1、2、3、4、5、6、8、9、10、12、16、17、18、20、24、32、33、34、36、40、48、64]。
【0196】
換言すれば、セットS3は、L=7の2進数で表すことができるすべての係数のセットであり、係数の絶対値で最大でビットのうちの2つが「1」であり、最大絶対値が64に設定されるという追加の制限が適用される。(それ以外の場合は、例えば、7つの2進数の2つの主要な「1」で表すことができるので、絶対値96も許可する必要がある。)
【0197】
以下では、本発明の特定の利点が、図10に示される他の例示的な実施形態により説明される。
【0198】
図10の例では、図7と同様にグループ化が実行されている。
【0199】
第1グループのフィルタ係数は、9ビットの全ての範囲と符号ビット、すなわち、上述のセットS1=[-511、511]の任意の値を仮定することができる。
【0200】
第2グループのフィルタ係数は、値の制限されたS2の値のセットを仮定することができ、S2はS2=[-128、-64、-32、-16、-8、-4、-2、-1、0、1、2、4、8、16、32、64、128]である。これは、2進表現でひとつの「1」で表すことができる値に対応する。また、最大絶対許可値は128に制限されており、すなわち、Lの数はL=8に制限されているとさらに仮定する。
【0201】
換言すれば、フィルタサイズは、図4に示したサイズ、すなわち、9×9のダイヤモンド型フィルタに対応する。背景技術の欄で示したように、従来の要求では9ビットのフィルタ係数で41回の乗算が必要であった。背景技術の欄で言及したように、1つの乗算は8つの2進加算と同等であるので、画素あたりの追加演算の数は48*8=328の加算演算である。
【0202】
本発明によれば、周辺28係数(すなわち、第2グループのもの)は、ひとつのビットシフト演算として実装することができる。ビットシフト演算の実装は、ハードウェアの複雑さが非常に小さいため、従って計算で省略できる。
【0203】
9ビット係数を使用した13の乗算演算は、画素あたり13*8=104の加算と等しい。画素あたりの演算数は68%低下する。
【0204】
上記の数は概算であり、複雑さが削減される厳密な値は実際の実装に依存して異なる。
【0205】
以下では、少なくとも2つの係数グループを使用した実装の追加の利点について説明する。
【0206】
本発明によれば、すべてのフィルタ係数が粗く量子化されるわけではなく、第1グループのフィルタ係数はより細かい量子化を有する。通常、フィルタ係数の粗い量子化はコーディング損失を引き起こす。しかしながら、大きな値のセットを仮定することを許可された第1グループのフィルタ係数を有することは、エンコーダによるコーディング損失を補償するために使用され得る。
【0207】
可能なエンコーダの実装は以下の通りである。以下の説明では、使用されるフィルタ係数ラベルは図11に示されているものであり、他の図面に関連して以前に使用されたラベルとは異なる場合がある。
【0208】
段階1:係数値に制限がないと仮定して、最小2乗法を使用してすべてのフィルタ係数(C、…、C20)を導出する。
【0209】
段階2:係数(C、…、C20)を最も近い許可値に丸めることによって制限を課す。
【0210】
この段階により、フィルタ係数に量子化ノイズが導入され、従ってコーディング利得が低減する。段階3:量子化誤差を補償するために、自由に選択可能なフィルタ係数(C、…、C)を再推定する。この第3段階では、段階2で導入されたコーディング損失のほとんどを回復できる。
【0211】
より詳細:第1段階では、41のタップフィルタ(21の一意の係数を使用)に対して以下の方程式が解かれる。
【0212】
【数5】
【0213】
上記の方程式は最小2乗方程式と称され、エンコーダでフィルタ係数Cxを見出すために使用される。
【0214】
Xx、yという用語は、R(i+k、j+l)*R(i+m、j+n)の期待値であり、フィルタリング前の2つの再構築されたサンプル間の相関である。インデックスk、l、mおよびnは、適用されるフィルタの形状に応じて選択される。
【0215】
という用語は、R(i+k、j+l)*O(i、j)の期待値を示す。
【0216】
第2段階では、フィルタ係数CからC20に対して、制限を満たす最も近い近似係数が見つかる。
【0217】
【数6】
【0218】
係数C7'からC20'は、本発明で指定されたルールに従う。上記の関数f()は、最小2乗方程式を解くことによって以前に取得されたフィルタ係数CからC20に量子化ノイズを導入することに留意されたい。
【0219】
第2段階で導入される量子化ノイズは、フィルタリング演算のパフォーマンスを低下させることが予想される。フィルタリングのパフォーマンスは通常、PSNR(Peak signal-to-noise ratio)などのメトリックによって測定されるため、段階2の後で、フィルタリングされた画像のPSNRは低下する。
【0220】
第3段階では、13のタップフィルタ(7つの一意の係数を使用)に対して以下の方程式を解く。
【0221】
【数7】
【0222】
第3段階では、第2段階で導入された量子化ノイズを考慮して、フィルタリング係数CからCが再び算出される。第3段階は、段階2の適用によって生じるフィルタリングのパフォーマンスの低下を有利に低減する。
【0223】
一般に、適応乗算フィルタ係数を用いたフィルタリング演算の適用は、再構築された画像サンプルに制限されないことに留意されたい。図2および図3で説明したように、再構築ブロックは通常、逆変換ブロックと予測ブロックの組み合わせ後に取得される画像ブロックに対応する。当該技術分野の当業者には明らかであるように、適応フィルタ係数を用いたフィルタリング演算は、例えば、予測ブロック(265、165)、逆変換ブロック(213、113)、量子化係数(209、109)、逆量子化係数(111、211)、またはデコード画像(231)などのエンコーディングおよびデコーディング演算の他の段階でも適用できる。この場合、本発明は、フィルタリング演算のフィルタ係数に適用される。
【0224】
要約すると、本発明は、再構築された画像、特にビデオ画像を適応乗算フィルタでフィルタリングするための改善された装置および方法に関する。フィルタリング演算の効率は、フィルタ係数の許可値を、2進表現で限られた数の「1」を有する値のみに制限することによって増加する。
【0225】
この明細書は画像(フレーム)の説明を提供するが、インターレース画像信号の場合、分野は画像として置き換えられることに注意されたい。
【0226】
本発明の実施形態は主にビデオコーディングに基づいて説明されたが、エンコーダ100およびデコーダ200(および対応するシステム300)の実施形態はまた、静止画像処理またはコーディング、すなわち、ビデオコーディングのように、任意の先行する画像または連続する画像から独立した個々の画像の処理またはコーディングのために構成され得ることに留意されたい。一般に、画像処理コーディングがひとつの画像101に制限される場合、インター推定142、インター予測144、242のみが利用可能ではない。ビデオエンコーダ100およびビデオデコーダ200のその他の機能(ツールまたは技術とも称される)、例えば、分割、変換(スケーリング)106、量子化108、逆量子化110、逆変換112、イントラ推定142、イントラ予測154、254および/またはループフィルタリング120、220、およびエントロピーコーディング170およびエントロピーデコーディング204、の全部でないにしてもほとんどが静止画像に等しく使用されてもよい。
【0227】
実施形態および明細書が「メモリ」という用語に言及する場合はいつでも、「メモリ」という用語は、特に明記されていない限り、磁気ディスク、光ディスク、ソリッドステートドライブ(SSD)、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、USBフラッシュドライブ、または任意の他の適切な種類のメモリ、と理解されるものとし、および/またはこれらを含むものとする。
【0228】
実施形態および明細書が「ネットワーク」という用語に言及する場合はいつでも、「ネットワーク」という用語は、特に明記されていない限り、例えば、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、イーサネット(登録商標)、インターネット、モバイルネットワーク等、任意の種類の無線ネットワークまたは有線ネットワークと理解されるものとし、および/またはこれらを含むものとする。
【0229】
当該技術分野の当業者は、さまざまな図(方法および装置)の「ブロック」(「ユニット」または「モジュール」)が本発明の実施形態の機能性を表す、または説明することを理解し(必ずしもハードウェアまたはソフトウェアの個々の「ユニット」というよりむしろ)、従って、装置の実施形態ならびに方法の実施形態(ユニット=段階)の機能または特徴を等しく説明する。
【0230】
「ユニット」の用語は、エンコーダ/デコーダの実施形態の機能の例示目的のために単に使用されており、開示を制限することを意図していない。
【0231】
本願にて提供されるいくつかの実施形態においては、開示されるシステム、装置、および方法が、他の複数の方式で実装されてよいことが理解されるべきである。例えば、説明された装置の実施形態は、例示的なものに過ぎない。例えば、ユニット区分は単なる論理的な機能区分に過ぎず、実際の実装では他の区分であってもよい。例えば、複数のユニットまたはコンポーネントを組み合わせるかまたは統合して他のシステムにしてもよいし、いくつかの特徴を無視するかまたは実行しなくてもよい。加えて、表示または議論される相互連結もしくは直接連結または通信接続は、いくつかのインタフェースを使用することにより実装され得る。装置間またはユニット間の間接連結または通信接続は、電子的形態、機械的形態、または他の形態で実装されてよい。
【0232】
別個の部分として説明されるユニットは、物理的に別個のものであってもよく、なくてもよい。また、ユニットとして表示される部分は、物理的なユニットであってもよく、なくてもよく、1つのポジションに位置するものであってもよく、または、複数のネットワークユニットに分散されてもよい。実施形態の解決手段の目的を達成するべく、実際の必要性に応じてユニットのいくつかまたはすべてが選択されてよい。
【0233】
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、それぞれのユニットが物理的に単独で存在してもよいし、2またはそれより多いユニットが1つのユニットに統合されてもよい。
【0234】
本発明の実施形態は、本明細書に記載の方法および/またはプロセスのいずれか1つを実行するように構成された処理回路を有する装置、例えば、エンコーダおよび/またはデコーダをさらに有することができる。エンコーダ100および/またはデコーダ200の実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせとして実装され得る。
【0235】
例えば、エンコーダ/エンコーディングまたはデコーダ/デコーディングの機能は、例えば、プロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)などのファームウェアまたはソフトウェアを伴うまたは伴わない処理回路によって実行され得る。
【0236】
エンコーダ100(および対応するエンコーディング方法100)および/またはデコーダ200(および対応するデコーディング方法200)の機能は、コンピュータ可読媒体に記憶されたプログラム命令によって実装され得る。プログラム命令は、実行されるとき、処理回路、コンピュータ、プロセッサなどに、エンコーディングおよび/またはデコーディング方法の段階を実行させる。コンピュータ可読媒体は、ブルーレイディスク、DVD、CD、USB(フラッシュ)ドライブ、ハードディスク、ネットワーク経由で利用可能なサーバストレージなど、プログラムが記憶される非一時的なストレージメディア等を含む任意の媒体であり得る。本発明の実施形態は、コンピュータ上で実行されたときに、本明細書に記載された方法のいずれか1つを実行するためのプログラムコードを含むコンピュータプログラムを含む、またはコンピュータプログラムである。本発明の実施形態は、プロセッサによって実行されるとき、コンピュータシステムに本明細書に記載の方法のいずれか1つを実行させるプログラムコードを含むコンピュータ可読媒体を含むか、またはコンピュータ可読媒体である。本発明の実施形態は、本明細書に記載される方法のいずれか1つを実行するチップセットを含むか、またはチップセットである。
【符号の説明】
【0237】
100 エンコーダ
102 入力(例えば、入力ポート、入力インタフェース)
103 画像ブロック
104 残差計算[ユニットまたは段階]
105 残差ブロック
106 変換(例えば、追加的にスケーリングを含む)[ユニットまたは段階]
107 変換係数
108 量子化[ユニットまたは段階]
109 量子化係数
110 逆量子化[ユニットまたは段階]
111 逆量子化係数
112 逆変換(例えば、追加的にスケーリングを含む)[ユニットまたは段階]
113 逆変換ブロック
114 再構築[ユニットまたは段階]
115 再構築ブロック
116(ライン)バッファ[ユニットまたは段階]
117 基準サンプル
120 ループフィルタ[ユニットまたは段階]
121 フィルタリングされたブロック
130 デコード画像バッファ(DPB)[ユニットまたは段階]
142 インター推定(またはインター画像推定)[ユニットまたは段階]
143 インター推定パラメータ(例えば、参照画像/参照画像インデックス、動きベクトル/オフセット)
144 インター予測(またはインター画像予測)[ユニットまたは段階]
145 インター予測ブロック
152 イントラ推定(またはイントラ画像推定)[ユニットまたは段階]
153 イントラ予測パラメータ(例えば、イントラ予測モード)
154 イントラ予測(イントラフレーム/画像予測)[ユニットまたは段階]
155 イントラ予測ブロック
162 モード選択[ユニットまたは段階]
165 予測ブロック(インター予測ブロック145またはイントラ予測ブロック155のいずれか)
170 エントロピーエンコーディング[ユニットまたは段階]
171 エンコード画像データ(例えば、ビットストリーム)
172 出力(出力ポート、出力インターフェース)
200 デコーダ
202 入力(ポート/インターフェース)
204 エントロピーデコーディング
209 量子化係数
210 逆量子化
211 逆量子化係数
212 逆変換(スケーリング)
213 逆変換ブロック
214 再構築(ユニット)
215 再構築ブロック
216 (回線)バッファ
217 基準サンプル
220 ループフィルタ(ループフィルタ内)
221 フィルタリングされたブロック
230 デコード画像バッファ(DPB)
231 デコード画像
232 出力(ポート/インタフェース)
244 インター予測(インターフレーム/画像予測)
245 インター予測ブロック
254 イントラ予測(イントラフレーム/画像予測)
255 イントラ予測ブロック
260 モード選択
265 予測ブロック(インター予測ブロック245またはイントラ予測ブロック255)300 コーディングシステム
310 送信元デバイス
312 画像ソース
313 (未処理)画像データ
314 プリプロセッサ/前処理ユニット
315 前処理された画像データ
318 通信ユニット/インタフェース
320 宛先デバイス
322 通信ユニット/インタフェース
326 ポストプロセッサ/後処理ユニット
327 後処理された画像データ
328 ディスプレイデバイス/ユニット
330 送信/受信/通信(エンコード)された画像データ
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9
図10
図11
【外国語明細書】