(57)【要約】  コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、動き推定を行うための方法、システム及び装置である。一部の実施では、方法は点群データのセグメンテーションを該点群データの連続性データに基づいて生成することを含む。セグメント化された点群データの表現は、三次元境界ボックスの側面に投影される。セグメント化された点群データの投影された表現に基づいてパッチが生成される。パッチの第１のフレームが生成される。第１のフレーム及び参照フレームを用いて第１及び第２の補助情報が生成される。第１及び第２の補助情報に基づいて、参照フレームからのパッチに一致する第１のパッチが第１のフレームから特定される。第１及び第２の補助情報との間の差分に基づいて、第１及び第２のパッチとの間に動きベクトル候補が生成される。動きベクトル候補を用いて動き補償が行われる。
2022502961.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
１つ以上のプロセッサにより、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成するステップと、
前記１つ以上のプロセッサにより、セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影するステップであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ステップと、
前記１つ以上のプロセッサにより、前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成するステップと、
前記１つ以上のプロセッサにより、前記１つ以上のパッチの第１のフレームを生成するステップと、
前記１つ以上のプロセッサにより、前記第１のフレームのための第１の補助情報を生成するステップと、
前記１つ以上のプロセッサにより、参照フレームのための第２の補助情報を生成するステップと、
前記１つ以上のプロセッサにより、前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定するステップと、
前記１つ以上のプロセッサにより、前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成するステップと、
前記１つ以上のプロセッサにより、前記動きベクトル候補を用いて動き補償を行うステップと、
を含むコンピュータ実施方法。
【請求項２】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記記録された媒体の三次元点群データのセグメンテーションを生成するステップは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記１つ以上のプロセッサにより前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項４】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
前記１つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記１つ以上のパッチのそれぞれのための二次元データ及び前記１つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項４に記載のコンピュータ実施方法。
【請求項７】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための１つ以上のパッチを生成するステップは、
前記１つ以上のプロセッサにより、前記三次元点群データの平滑性基準を各方向から決定することと、
前記１つ以上のプロセッサにより、前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、前記１つ以上のプロセッサにより、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成するステップは、
前記１つ以上のプロセッサにより、前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離を求めることと、
前記１つ以上のプロセッサにより、前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記１つ以上のプロセッサにより、前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項９】
１つ以上のコンピュータと、命令を記憶する１つ以上の記憶装置とを含むシステムであって、該命令は該１つ以上のコンピュータにより実行された場合に、該1つ以上のコンピュータに、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、
前記１つ以上のパッチの第１のフレームを生成することと、
前記第１のフレームのための第１の補助情報を生成することと、
参照フレームのための第２の補助情報を生成することと、
前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定することと、
前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせるよう動作可能である、システム。
【請求項１０】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項９に記載のシステム。
【請求項１１】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項９乃至１０のいずれかに記載のシステム。
【請求項１２】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、請求項９乃至１１のいずれかに記載のシステム。
【請求項１３】
前記１つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項１２のいずれかに記載のシステム。
【請求項１４】
前記１つ以上のパッチのそれぞれのための二次元データ及び前記１つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項１２に記載のシステム。
【請求項１５】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための１つ以上のパッチを生成することは、
前記三次元点群データの平滑性基準を各方向から決定することと、
前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項９乃至１４のいずれかに記載のシステム。
【請求項１６】
前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することは、
前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離を求めることと、
前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項９乃至１５のいずれかに記載のシステム。
【請求項１７】
１つ以上の処理装置により実行可能な命令が記憶された１つ以上の非一時的コンピュータ読み取り可能記憶媒体であって、該命令は実行された場合に、該１つ以上の処理装置に、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、
前記１つ以上のパッチの第１のフレームを生成することと、
前記第１のフレームのための第１の補助情報を生成することと、
参照フレームのための第２の補助情報を生成することと、
前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定することと、
前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせる、１つ以上の非一時的コンピュータ読み取り可能記憶媒体。
【請求項１８】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項１７に記載の１つ以上の非一時的コンピュータ読み取り可能媒体。
【請求項１９】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項１７乃至１８のいずれかに記載の１つ以上の非一時的コンピュータ読み取り可能媒体。
【請求項２０】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、請求項１７乃至１９のいずれかに記載の１つ以上の非一時的コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年１０月２日に出願された米国仮特許出願第６２/７４０２３７号及び２０１９年６月１９日に出願された米国仮特許出願第６２／８６３３６２号に対する優先権を主張し、双方は参照によりそれらの全体が本願に組み込まれる。
【背景技術】
【０００２】
点群処理は、エンターテインメント産業、インテリジェント自動車ナビゲーション、地理空間検査、実世界オブジェクトの三次元（３Ｄ）モデリング及び環境可視化等の用途での広範なアプリケーションの不可欠な一部になっている。
【発明の概要】
【課題を解決するための手段】
【０００３】
一部の実施では、本明細書は、三次元及び二次元補助データを用いて動き推定を行うための技術を説明する。三次元点群データを符号化し且つ送信するために動き推定が行われる。三次元点群データは、人間又は実世界のアイテム等の三次元オブジェクトの外面の輪郭を描くか又は視覚的に表すデータポイントを含む。三次元点群データは、三次元点群データの色、テクスチャ及び深度を示す属性情報も含むことができる。エンコーダ又はデコーダは、動き精密化データを用いて三次元点群データをそれぞれ符号化又は復号化できる。
【０００４】
一部の実施では、エンコーダ又はデコーダは、三次元点群データを囲むために三次元境界ボックスを用い、その後に符号化及び送信に用いられるパッチを生成する。エンコーダは三次元点群データの画像を三次元境界ボックスの側面に投影できる。エンコーダは、画像又はパッチを符号化のために用いるためにフレームにグループ化できる。通常大きい三次元点群データを送信するために通常用いられる帯域幅の量を低減するために、エンコーダは代わりに、現在生成されたフレームからのパッチを先に生成されたフレームのパッチと比較することにより動き精密化データを生成できる。エンコーダは２つのフレーム間のパッチをマッチングさせ、マッチングしたパッチを特定するデータに基づいて動き精密化データを生成できる。例えば、エンコーダは、動き精緻化データとして含めるために、位置座標及びパッチのサイズを定義する補助情報を用いり得る。パッチのフレームを符号化及び送信する代わりに、モーション精緻化データを符号化及び送信のために用いて、全体的な伝送帯域幅を低減し且つメッセージを適切に復号化及び受信することができる。動き精緻化データが一度特定されると、三次元点群データの改善された送信のため、動き精緻化データを既存のビデオ圧縮技術に加えることができる。
【０００５】
１つの一般的な態様では、方法は、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側面に基づいて異なる、ことと、セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、１つ以上のパッチの第１のフレームを生成することと、第１のフレームのための第１の補助情報を生成することと、参照フレームのための第２の補助情報を生成することと、第１の補助情報及び第２の補助情報に基づいて、参照フレームからの第２のパッチに一致する第１のパッチを第１のフレームから特定することと、第１の補助情報と第２の補助情報との間の差分に基づいて、第１のパッチと第２のパッチとの間に動きベクトル候補を生成することと、動きベクトル候補を用いて動き補償を行うことと、を含む。
【０００６】
本開示のこの及び他の態様の他の実施形態は、方法の動作を行うように構成された対応するシステム、装置及びコンピュータ記憶装置に符号化されたコンピュータプログラムを含む。１つ以上のコンピュータのシステムは、動作時にシステムに動作を行わせるソフトウェア、ファームウェア、ハードウェア又はシステムにインストールされたそれらの組み合わせによってそのように構成できる。１つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置に動作を行わせる命令を有することによって、そのように構成できる。
【０００７】
前述の及び他の実施形態は、それぞれ任意で下記に特徴を単独で又は組み合わせで含むことができる。例えば、一実施形態は下記の特徴の全てを組み合わせで含む。
【０００８】
一部の実施では、方法は、参照フレームが第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応することを含む。
【０００９】
一部の実施では、記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む。
【００１０】
一部の実施では、第１の補助情報は、１つ以上のパッチのそれぞれのためのインデックスデータと、１つ以上のパッチのそれぞれのための二次元データと、１つ以上のパッチのそれぞれのための三次元データとを含む。
【００１１】
一部の実施では、１つ以上のパッチのそれぞれのためのインデックスデータは、三次元境界ボックスの対応する側面に対応する。
【００１２】
一部の実施では、１つ以上のパッチのそれぞれのための二次元データ及び１つ以上のパッチのそれぞれのための三次元データは、接続された三次元点群データの部分に対応する。
【００１３】
一部の実施では、三次元点群データの連続性データに基づいて、三次元点群データのための１つ以上のパッチを生成することは、三次元点群データの平滑性基準を各方向から決定することと、三次元点群データの各方向から平滑性基準を比較することと、比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、をさらに含む。
【００１４】
一部の実施では、第１のパッチと第２のパッチとの間に動きベクトル候補を生成することは、第１の補助情報の２次元データと第２の補助情報の２次元データとの間の距離を求めることと、第１の補助情報の２次元データと第２の補助情報の２次元データとの間の距離に基づいて、動きベクトル候補を生成することと、動きベクトル候補を動きベクトル候補リストに加えることと、をさらに含む。
【００１５】
本明細書の主題の１つ以上の実施形態の詳細を添付の図面及び以下の説明で記載する。主題の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１６】
【図１】図１は、ビデオ信号を符号化する例示の方法のフローチャートである。
【図２】図２は、ビデオ符号化のための例示の符号化及び復号化（コーデック）システムの概略図である。
【図３】図３は、例示のビデオエンコーダを示すブロック図である。
【図４】図４は、例示のビデオデコーダを示すブロック図である。
【図５】図５は、単方向相互予測の一例を示す概略図である。
【図６】図６は、双方向相互予測の一例を示す概略図である。
【図７】図７は、ビデオ符号化に用いられる例示のイントラ予測モードを示す概略図である。
【図８】図８は、ビデオ符号化におけるブロックの方向関係の例を示す概略図である。
【図９】図９は、例示のインループフィルタを示すブロック図である。
【図１０】図１０は、ブロック分割で用いられる例示の分割モードを示す。
【図１１】図１１は、例示のビデオ符号化メカニズムの概略図である。
【図１２】図１２は、ビデオ符号化のためのコンピュータ装置の概略図である。
【図１３】図１３は、点群媒体を示すシステムの一例である。
【図１４】図１４は、点群フレームシーケンスを示すシステムの一例である。
【図１５】図１５は、三次元パッチ境界ボックスから二次元パッチ投影への変換プロセスの一例である。
【図１６】図１６は、３Ｄから２Ｄパッチ投影の結果を示すシステムの一例である。
【図１７】図１７は、点群媒体の属性セグメンテーションの一例である。
【図１８】図１８は、属性情報を有する点群媒体のためのパッキングパッチを示すシステムの一例である。
【図１８】図１８は、ビデオベースの点群圧縮（Ｖ−ＰＣＣ）ビットストリーム構造の一例である。
【図１９】図１９は、動き推定を行うためのシステムの一例である。
【図２０】図２０は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。
【図２１】図２１は、マージ候補リスト構築のための導出プロセスを示す。
【図２２】図２２は、空間マージ候補と、空間マージ候補の冗長性チェックのために考慮される候補対の位置のシステムを示す。
【図２３】図２３は、Ｎ×２Ｎ及び２Ｎ×Ｎ分割の第２のＰＵの位置を示すシステムを示す。
【図２４】図２４は、時間的マージ候補のためのスケーリングされた動きベクトルを得ることを示す。
【図２５】図２５は、時間的マージ候補のための候補位置を示すシステムである。
【図２６】図２６は、複合双方向予測マージ候補の例示の表を示す。
【図２７】図２７は、補助データを用いた動き推定パイプラインの変形を含むシステムの一例である。
【図２８】図２８は、Ｖ−ＰＣＣユニットペイロードのパケットストリーム表現の一例である。
【図２９】図２９は、Ｖ−ＰＣＣユニットペイロードのビジュアル表現の別の一例である。
【図３０】図３０は、３Ｄ補助データを用いて動き推定を行うプロセスの一例を示すフロー図である。  様々な図面における同様の参照番号及び指定は同様の要素を示す。
【発明を実施するための形態】
【００１７】
最初に、１つ以上の実施形態の例示の実施が以下で提供されるが、開示のシステム及び／又は方法は、現在知られているか又は存在するかを問わず、任意の数の技術を用いて実施され得ることを理解すべきである。本開示は、本明細書で図示説明する例示の設計及び実施を含む、以下に示す例示の実施、図面及び技術に何ら限定すべきでなく、添付の特許請求の範囲と共にそれらの均等物の範囲全体内で変更され得る。
【００１８】
図１は、ビデオ信号を符号化する例示の方法１００のフローチャートである。具体的には、ビデオ信号はエンコーダで符号化される。符号化プロセスは、ビデオファイルのサイズを低減するために様々なメカニズムを用いることによりビデオ信号を圧縮する。より小さいファイルサイズは、圧縮されたビデオファイルをユーザに向けて送信できるようにしながら、関連する帯域幅オーバーヘッドを低減する。次に、デコーダは圧縮されたビデオファイルを復号化してエンドユーザに表示するために元のビデオ信号を再構成する。復号化プロセスは概してデコーダがビデオ信号を一貫して再構成できるように符号化プロセスに酷似している（mirrors）。
【００１９】
ステップ１０１で、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号はメモリに記憶された非圧縮のビデオファイルであり得る。別の例として、ビデオファイルは、ビデオカメラ等のビデオ取り込み装置によって取り込まれたものでもよく、ビデオのライブストリーミングをサポートするために符号化され得る。ビデオファイルは、オーディオコンポーネント及びビデオコンポーネントの双方を含み得る。ビデオコンポーネントは、連続して視た場合に視覚的に動きの印象を与える一連の画像フレームを含む。フレームは、本明細書ではルマ成分（luma  component）と呼ばれる光と、クロマ成分と呼ばれる色との観点で表されるピクセルを含む。一部の例では、フレームは三次元表示をサポートするために深度値も含み得る。
【００２０】
ステップ１０３で、ビデオはブロックに分割される。分割は、圧縮のために各フレーム内のピクセルを正方形及び／又は長方形のブロックに細分すること（subdividing）を含む。例えば、さらなる符号化をサポートする構成が得られるまでブロックを分割し、再帰的に細分するために符号化木（coding  tree）が用いられ得る。そのため、ブロックは、（Ｈ.２６５及びＭＰＥＧ−Ｈ  Ｐａｒｔ  ２としても知られている）高効率ビデオ符号化（ＨＥＶＣ）における符号化木単位とも呼ばれ得る。例えば、フレームのルマ成分は、個々のブロックが比較的均一な照明値（lighting  value）を含むまで細分され得る。さらに、フレームのクロマ成分は、個々のブロックが比較的均一なカラー値を含むまで細分され得る。したがって、分割メカニズムはビデオフレームのコンテンツに応じて変化し得る。
【００２１】
ステップ１０５で、ステップ１０３において分割された画像ブロックを圧縮するために様々な圧縮メカニズムが用いられる。例えば、相互予測及び／又はイントラ予測が用いられ得る。相互予測は、共通のシーンのオブジェクトは連続したフレームで現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを記述するブロックは、後続のフレームで繰り返し記述する必要がない。具体的には、テーブル等のオブジェクトは複数のフレームにわたって一定の位置に留まり得る。そのため、テーブルは一度記述するだけでよく、後続のフレームは参照フレームを参照できる。複数フレームにわたってオブジェクトをマッチングするためにパターンマッチングメカニズムが用いられ得る。さらに、移動オブジェクトは、例えば、オブジェクトの動き又はカメラの動きにより複数のフレームにわたって表現され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切る自動車を示し得る。そのような動きを記述するために動きベクトルを用いることができる。動きベクトルは、あるフレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する二次元ベクトルである。そのため、相互予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す一組の動きベクトルとして符号化できる。
【００２２】
相互予測は、共通フレーム内のブロックを符号化する。相互予測は、ルマ及びクロマ成分がフレーム内でかたまる傾向があるという事実を利用する。例えば、木の一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。相互予測は、多方向予測モード（例えば、ＨＥＶＣの３３）、平面モード及び直流（ＤＣ）モードを用いる。方向モードは、現在のブロックが対応する方向において隣接ブロックと同様／同一であることを示す。平面モードは、行（例えば、平面）に沿った一連のブロックを行の端にある隣接ブロックに基づいて補間できることを示す。平面モードは、値を変化させる際に比較的一定の傾きを用いることにより、行にわたって光／色の滑らかな遷移を事実上示す。ＤＣモードは境界平滑化のために用いられ、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックに関連する平均値と同様／同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに様々な関係予測モード値として画像ブロックを表すことができる。さらに、相互予測ブロックは、実際の値の代わりに動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては画像ブロックを正確に表さないことがある。差分はいずれも残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために残差ブロックに適用され得る。
【００２３】
ステップ１０７で、様々なフィルタリング技術が適用され得る。ＨＥＶＣでは、フィルタは、インループフィルタスキームに従って適用される。上述のブロックベースの予測は、デコーダでブロックノイズのある画像（blocky  images）の生成をもたらし得る。さらに、ブロックベースの予測スキームはブロックを符号化し、次いで符号化したブロックを後で参照ブロックとして用いるために再構成し得る。インループフィルタスキームは、ブロック／フレームにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びＳＡＯフィルタを反復的に適用する。これらのフィルタは、符号化されたファイルを正確に再構成できるようにそのようなブロッキングアーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロックにおけるアーチファクトを軽減し、アーチファクトが再構成された参照ブロックに基づいて符号化される後続のブロックにおいて追加のアーチファクトを生成する可能性を低減する。インループフィルタ処理について以下で詳細に説明する。
【００２４】
一度ビデオ信号が分割され、圧縮され、フィルタリングされると、結果として得られるデータはステップ１０９でビットストリームに符号化される。ビットストリームは上述のデータに加えて、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意の信号データを含む。例えば、そのようなデータは、分割データ、予測データ、残差ブロック及びデコーダへの符号化命令を提供する様々なフラグを含み得る。ビットストリームは、要求に応じてデコーダに向けて送信するためにメモリに記憶され得る。ビットストリームは複数のデコーダに向けてブロードキャスト及び／又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ１０１、１０３、１０５、１０７及び１０９は、多くのフレーム及びブロックにわたって連続的に及び／又は同時に起こり得る。図１に示す順序は説明を明確にし且つ容易にするために提示されたものであり、ビデオ符号化プロセスを特定の順序に限定することを意図していない。
【００２５】
デコーダはビットストリームを受信し、ステップ１１１で復号化プロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文及びビデオデータに変換するためにエントロピー復号化スキームを用いる。デコーダは、ステップ１１１でフレームのための分割を特定するためにビットストリームからの構文データを用いる。分割は、ステップ１０３でのブロック分割の結果と一致しなければならない。ここで、ステップ１１１で用いられるエントロピー符号化／復号化について説明する。エンコーダは、いくつかの可能な選択肢から入力画像内の値の空間位置に基づいてブロック分割スキームを選択すること等の圧縮プロセスの間に多くの選択を行う。厳密な選択肢を示すことは多数のビンを使用し得る。本明細書で用いるように、ビンは可変として扱われるバイナリ値（例えば、コンテキストに応じて変化し得るビット値）である。エントロピー符号化は、特定の場合において明らかに実行不能な任意のオプションをエンコーダが破棄できるようにして、一組の許容可能なオプションのみが残される。そして、各許容可能なオプションに符号語が割り当てられる。符号語の長さは許容可能なオプションの数に基づく（例えば、２つのオプションに対して１つのビン、３〜４つのオプションに対して２つのビン等）。次に、エンコーダは選択されたオプションに対して符号語を符号化する。このスキームは符号語のサイズを小さくする。なぜなら、符号語は、全ての可能なオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すのに望ましい大きさでしかないからである。次に、デコーダは、エンコーダの場合と同様に許容可能なオプションのセットを決定することにより選択を復号化する。許容可能なオプションのセットを決定することにより、デコーダは符号語を読み取り、エンコーダによってなされた選択を特定できる。
【００２６】
ステップ１１３で、デコーダはブロック復号化を行う。具体的には、デコーダは、残差ブロックを生成するために逆変換を用いる。次に、デコーダは残差ブロック及び対応する予測ブロックを用いて、分割に従って画像ブロックを再構成する。予測ブロックは、ステップ１０５においてエンコーダで生成されたイントラ予測ブロック及び相互予測ブロックの双方を含み得る。次に、再構成された画像ブロックは、ステップ１１１で特定された分割データに従って、再構成されたビデオ信号のフレーム内に配置される。上述したように、ステップ１１３のための構文を、エントロピー符号化を介してビットストリームに信号伝達（signaled）してもよい。
【００２７】
ステップ１１５で、エンコーダでのステップ１０７と同様の方法で再構成されたビデオ信号のフレームに対してフィルタリングが行われる。例えば、ブロッキングアーチファクトを取り除くためにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びＳＡＯフィルタがフレームに適用され得る。一度フレームがフィルタリングされると、エンドユーザによる視聴のためにビデオ信号をステップ１１７でディスプレイに出力できる。
【００２８】
図２は、ビデオ符号化のための例示の符号化及び復号化（コーデック）システム２００の概略図である。具体的には、コーデックシステム２００は、方法１００の実施をサポートする機能を提供する。コーデックシステム２００は、エンコーダ及びデコーダの双方で用いられるコンポーネントを示すために一般化されている。コーデックシステム２００は、方法１００のステップ１０１及び１０３に関連して説明したように、ビデオ信号を受信及び分割し、その結果として分割されたビデオ信号２０１が得られる。次に、コーデックシステム２００は、方法１００のステップ１０５、１０７及び１０９に関連して説明したように、エンコーダの役割を果たす場合は、分割されたビデオ信号２０１を圧縮して符号化されたビットストリームにする。デコーダとしての役割を果たす場合、コーデックシステム２００は、方法１００のステップ１１１、１１３、１１５及び１１７に関連して説明したようにビットストリームから出力ビデオ信号を生成する。コーデックシステム２００は、一般コーダ制御コンポーネント２１１と、変換スケーリング及び量子化コンポーネント２１３と、イントラピクチャ推定コンポーネント２１５と、イントラピクチャ予測コンポーネント２１７と、動き補償コンポーネント２１９と、動き推定コンポーネント２２１と、スケーリング及び逆変換コンポーネント２２９と、フィルタ制御分析コンポーネント２２７と、インループフィルタコンポーネント２２５と、復号化ピクチャバッファコンポーネント２２３と、ヘッダフォーマット化及びＣＡＢＡＣ（context  adaptive  binary  arithmetic  coding）コンポーネント２３１とを含む。そのようなコンポーネントは図示のように連結されている。図２において、黒線は符号化／復号化すべきデータの動きを示すのに対して、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデックシステム２００のコンポーネントの全てはエンコーダ内に存在してもよい。デコーダはコーデックシステム２００のコンポーネントのサブセットを含み得る。例えば、デコーダはイントラピクチャ予測コンポーネント２１７と、動き補償コンポーネント２１９と、スケーリング及び逆変換コンポーネント２２９と、インループフィルタコンポーネント２２５と、復号化ピクチャバッファコンポーネント２２３とを含み得る。これらのコンポーネントをこれから説明する。
【００２９】
分割されたビデオ信号２０１は、符号化木によりピクセルのブロックに分割されている取り込まれたビデオストリームである。符号化木は、ピクセルのブロックをより小さなピクセルのブロックに細分するために様々な分割モードを用いる。次に、これらのブロックをより小さなブロックにさらに細分できる。ブロックは、符号化木上のノードと呼ばれ得る。より大きな親ノードはより小さな子ノードに分割される。ノードが細分される回数はノード／符号化木の深度と呼ばれる。分割されたブロックは、場合によっては符号化ユニット（ＣＵ）と呼ばれる。分割モードは、用いられる分割モードに応じて形状が異なる２つ、３つ又は４つの子ノードにノードを分割するのにそれぞれ用いられるバイナリ木（ＢＴ）、トリプル木（ＴＴ）及びクワッド木（ＱＴ）を含み得る。分割されたビデオ信号２０１は圧縮のために一般コーダ制御コンポーネント２１１、変換スケーリング及び量子化コンポーネント２１３、イントラピクチャ推定コンポーネント２１５、フィルタ制御分析コンポーネント２２７及び動き推定コンポーネント２２１に転送される。
【００３０】
一般コーダ制御コンポーネント２１１は、アプリケーションの制約に従ってビデオシーケンスの画像をビットストリームに符号化することに関連する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント２１１は、再構成品質に対するビットレート／ビットストリームサイズの最適化を管理する。そのような決定は、記憶領域／帯域幅の利用可能性及び画像解像度要求に基づいてなされ得る。一般コーダ制御コンポーネント２１１は、バッファのアンダーラン及びオーバーランの問題を緩和するために、送信速度に照らしてバッファの利用も管理する。これらの問題を管理するために、一般コーダ制御コンポーネント２１１は、他のコンポーネントによる分割、予測及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント２１１は、解像度を高め且つ帯域幅の使用を高めるために圧縮の複雑性を動的に高め得るか又は解像度と帯域幅の使用とを下げるために圧縮の複雑性を下げ得る。そのため、一般コーダ制御コンポーネント２１１は、ビデオ信号の再構成品質とビットレートの懸念とのバランスを取るためにコーデックシステム２００の他のコンポーネントを制御する。一般コーダ制御コンポーネント２１１は、他のコンポーネントの動作を制御する制御データを作成する。制御データは、デコーダでの復号化のためのパラメータを伝達するためビットストリーム内に符号化されるように、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１にも転送される。
【００３１】
分割されたビデオ信号２０１は、相互予測のために動き推定コンポーネント２２１及び動き補償コンポーネント２１９にも送られる。分割されたビデオ信号２０１のフレーム又はスライスは複数のビデオブロックに分割され得る。動き推定コンポーネント２２１及び動き補償コンポーネント２１９は、時間予測（temporal  prediction）を提供するために、１つ以上の参照フレーム内の１つ以上のブロックに対して受信したビデオブロックの相互予測符号化を行う。コーデックシステム２００は、例えばビデオデータの各ブロックのために適切な符号化モードを選択するために複数の符号化パスを行い得る。
【００３２】
動き推定コンポーネント２２１及び動き補償コンポーネント２１９は高度に統合され得るが、概念的な目的のために別個に示している。動き推定コンポーネント２２１によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又は他の符号化ユニット）内で符号化されている現在のブロックに対する、参照フレーム（又は他の符号化ユニット）内の予測ブロックに対するビデオブロックの予測ユニット（ＰＵ）の変位を示し得る。予測ブロックは、ピクセルの差分の観点から符号化すべきブロックに厳密に一致することが見出されたブロックであり、絶対差（ＳＡＤ）の和、二乗差の和（ＳＳＤ）又は他の差分メトリックスにより決定され得る。一部の例では、コーデックシステム２００は、復号化ピクチャバッファ２２３に記憶された参照ピクチャのサブ整数ピクセル位置の値を算出し得る。例えば、ビデオコーデックシステム２００は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置又は他の分数のピクセル位置の値を補間し得る。したがって、動き推定コンポーネント２２１は、全ピクセル位置及び分数ピクセル位置に対する動き探索を行って、分数ピクセル精度を有する動きベクトルを出力し得る。動き推定コンポーネント２２１は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによりインター符号化されたスライス内のビデオブロックのＰＵのための動きベクトルを計算する。動き推定コンポーネント２２１は、計算された動きベクトルを動きデータとしてヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に符号化のために出力し、動き補償コンポーネント２１９に動きを出力する。
動き補償コンポーネント２１９によって行われる動き補償は、動き推定コンポーネント２２１によって決定された動きベクトルに基づいて、予測ブロックをフェッチ又は生成することを伴い得る。再び、一部の例では、動き推定コンポーネント２２１及び動き補償コンポーネント２１９は機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償コンポーネント２１９は、動きベクトルが参照ピクチャリストを指す予測ブロックを特定し得る。次に、符号化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することにより残差ビデオブロックが形成され、ピクセル差分値を形成する。一般に、動き推定コンポーネント２２１はルマ成分に対する動き推定を行い、動き補償コンポーネント２１９はクロマ成分及びルマ成分の双方のためにルマ成分に基づいて計算された動きベクトルを用いる。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント２１３に転送される。
【００３３】
分割されたビデオ信号２０１は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７にも送られる。動き推定コンポーネント２２１及び動き補償コンポーネント２１９の場合と同様に、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は高度に統合され得るが、概念的な目的のために別個に示している。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、上述した動き推定コンポーネント２２１及び動き補償コンポーネント２１９によりフレーム間で行われる相互予測に代えて、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。とりわけ、イントラピクチャ推定コンポーネント２１５は、現在のブロックを符号化するために用いるイントラ予測モードを決定する。一部の例では、イントラピクチャ推定コンポーネント２１５は、複数のテストされたイントラ予測モードから現在のブロックを符号化するのに適切なイントラ予測モードを選択する。次に、選択されたイントラ予測モードが、符号化のためにヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に転送される。
【００３４】
例えば、イントラピクチャ推定コンポーネント２１５は、様々なテストされたイントラ予測モードのためにレート歪み解析を用いてレート歪み値を計算し、テストされたモードの間で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み解析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の非符号化ブロックとの間の歪み（又はエラー）の量に加えて、符号化されたブロックを生成するのに用いられるビットレート（例えば、ビットの数）概して特定する。イントラピクチャ推定コンポーネント２１５は、ブロックにとって最良のレート歪み値を呈するイントラ予測モードがどれか判定するために、様々な符号化されたブロックのための歪み及びレートから比を計算する。加えて、イントラピクチャ推定コンポーネント２１５は、レート歪み最適化（ＲＤＯ）に基づいて深度モデリングモード（ＤＭＭ）を用いて深度マップの深度ブロックを符号化するように構成され得る。
【００３５】
イントラピクチャ予測コンポーネント２１７は、イントラピクチャ推定コンポーネント２１５により決定された選択されたイントラ予測モードに基づいて、予測ブロックから残差ブロックを生成し得る。残差ブロックは、マトリクスとして表される予測ブロックと元のブロックとの間の値の差分を含む。次に、残差ブロックは、変換スケーリング及び量子化コンポーネント２１３に転送される。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、ルマ及びクロマ成分の双方に対して動作し得る。
【００３６】
変換スケーリング及び量子化コンポーネント２１３は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント２１３は、離散コサイン変換（ＤＣＴ）、離散正弦変換（ＤＳＴ）又は概念的に同様の変換等の変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換又は他の種類の変換も使用され得る。変換は、残差情報をピクセル値ドメインから変換ドメインに、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント２１３は、変換された残差情報を例えば周波数に基づいてスケーリングするようにも構成されている。
【００３７】
そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報に倍率を適用することを伴い、それは再構成されたビデオの最終的な視覚品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント２１３は、ビットレートをさらに下げるために変換係数を量子化するようにも構成されている。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することにより変更され得る。一部の例では、変換スケーリング及び量子化コンポーネント２１３は、次いで、量子化された変換係数を含むマトリクスのスキャンを行い得る。量子化された変換係数は、ビットストリームに符号化されるようにヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に転送される。
【００３８】
スケーリング及び逆変換コンポーネント２２９は、動き推定をサポートするために変換スケーリング及び量子化コンポーネント２１３の逆動作を適用する。スケーリング及び逆変換コンポーネント２２９は、例えば、別の現在のブロックのための予測ブロックになり得る参照ブロックとして後で用いるためにピクセルドメイン内の残差ブロックを再構成するのに逆スケーリング、変換及び／又は量子化を適用する。動き推定コンポーネント２２１及び／又は動き補償コンポーネント２１９は、後のブロック／フレームの動き推定で用いるために残差ブロックを対応する予測ブロックに加算することにより参照ブロックを計算し得る。スケーリング、量子化及び変換の間に生じるアーチファクトを緩和するために、再構成された参照ブロックにフィルタが適用される。そうでなければ、そのようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こし(且つさらなるアーチファクトを作り出す）得る。
【００３９】
フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は、残差ブロック及び／又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント２２９からの変換された残差ブロックが、イントラピクチャ予測コンポーネント２１７及び／又は動き補償コンポーネント２１９からの対応する予測ブロックと組み合わされて、元の画像ブロックが再構成され得る。次に、再構成された画像ブロックにフィルタが適用され得る。一部の例では、フィルタは、代わりに、残差ブロックに適用され得る。図２の他のコンポーネントと同様に、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は高度に統合されており、共に実施され得るが、概念的な目的のために別個に示されている。再構成された参照ブロックに適用されるフィルタは特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント２２７は、そのようなフィルタをどこに適用すべきか決定するために再構成された参照ブロックを解析し、対応するパラメータを設定する。そのようなデータは、フィルタ制御データとしてヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に符号化のために転送される。インループフィルタコンポーネント２２５は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、ＳＡＯフィルタ及び適応ループフィルタを含み得る。そのようなフィルタは、例に応じて空間／ピクセルドメインに（例えば、再構成されたピクセルブロックに）又は周波数ドメインに適用され得る。
【００４０】
エンコーダとして動作する場合、フィルタリングされ、再構成された画像ブロック、残差ブロック及び／又は予測ブロックは、上述したように動き推定で後で用いるために復号化画像バッファ２２３に記憶される。デコーダとして動作する場合、復号化画像バッファ２２３は、再構成され、フィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。復号化画像バッファ２２３は、予測ブロック、残差ブロック及び／又は再構成された画像ブロックを記憶可能な任意のメモリ装置であり得る。
【００４１】
ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１は、コーデックシステム２００の様々なコンポーネントからデータを受信し、そのようなデータを符号化してデコーダに向けて伝送するための符号化ビットストリームにする。具体的には、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１は、一般的な制御データ及びフィルタ制御データ等の制御データを符号化するために様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データに加えて、量子化変換係数データの形態の残差データが全てビットストリームに符号化される。最終的なビットストリームは、元の分割されたビデオ信号２０１を再構成するためにデコーダによって望まれる全ての情報を含む。そのような情報は、イントラ予測モードインデックステーブル（符号語マッピングテーブルともいう）、様々なブロックのための符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、分割情報の表示等も含み得る。そのようなデータはエントロピー符号化を用いて符号化され得る。例えば、情報は、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、ＣＡＢＡＣ及びシンタックスベースコンテキスト適応２値算術符号化（ＳＢＡＣ）、確率間隔区分エントロピー符号化（ＰＩＰＥ）又は他のエントロピー符号化技術を用いることにより符号化され得る。エントロピー符号化に続いて、符号化されたビットストリームは別の装置（例えば、ビデオデコーダ）に転送され得るか又は後で転送又は検索するためにアーカイブされ得る。
【００４２】
図３は、例示のビデオエンコーダ３００を示すブロック図である。ビデオエンコーダ３００は、コーデックシステム２００の符号化機能及び／又は方法１００のステップ１０１、１０３、１０５、１０７及び／又は１０９を実施するために用いられ得る。エンコーダ３００は入力ビデオ信号を分割し、分割されたビデオ信号２０１と実質的に同様の分割されたビデオ信号３０１が得られる。次に、分割されたビデオ信号３０１は、エンコーダ３００のコンポーネントにより圧縮され、ビットストリームに符号化される。
【００４３】
具体的には、分割されたビデオ信号３０１は、イントラ予測のためにイントラピクチャ予測コンポーネント３１７に転送される。イントラピクチャ予測コンポーネント３１７は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７と実質的に同様であり得る。分割されたビデオ信号３０１は、復号化ピクチャバッファ３２３内の参照ブロックに基づく相互予測のために動き補償コンポーネント３２１にも転送される。動き補償コンポーネント３２１は、動き推定コンポーネント２２１及び動き補償コンポーネント２１９と実質的に同様であり得る。イントラピクチャ予測コンポーネント３１７及び動き補償コンポーネント３２１からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント３１３に転送される。変換及び量子化コンポーネント３１３は、変換スケーリング及び量子化コンポーネント２１３と実質的に同様であり得る。変換され且つ量子化された残差ブロック及び対応する予測ブロックは（関連する制御データと共に）ビットストリームへの符号化のためにエントロピー符号化コンポーネント３３１に転送される。エントロピー符号化コンポーネント３３１は、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１と実質的に同様であり得る。
【００４４】
変換及び量子化された残差ブロック及び／又は対応する予測ブロックも、動き補償コンポーネント３２１により用いられる参照ブロックに再構成されるために変換及び量子化コンポーネント３１３から逆変換及び量子化コンポーネント３２９に転送される。逆変換及び量子化コンポーネント３２９は、スケーリング及び逆変換コンポーネント２２９と実質的に同様であり得る。インループフィルタコンポーネント３２５内のインループフィルタも、例に応じて残差ブロック及び／又は再構成された参照ブロックに適用される。インループフィルタコンポーネント３２５は、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５と実質的に同様であり得る。インループフィルタコンポーネント３２５は、後述するようにノイズ抑制フィルタを含む複数のフィルタを含み得る。次に、フィルタリングされたブロックは、動き補償コンポーネント３２１により参照ブロックとして用いられるために復号化ピクチャバッファ３２３に記憶される。復号化ピクチャバッファ３２３は、復号化ピクチャバッファ２２３と実質的に同様であり得る。
【００４５】
図４は、例示のビデオデコーダ４００を示すブロック図である。ビデオデコーダ４００は、コーデックシステム２００の復号化機能及び／又は方法１００のステップ１１１、１１３、１１５及び／又は１１７を実施するために用いられ得る。デコーダ４００は、例えばエンコーダ３００からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【００４６】
ビットストリームはエントロピー復号化コンポーネント４３３により受信される。エントロピー復号化コンポーネント４３３は、エントロピー符号化コンポーネント３３１の逆機能を行う。エントロピー復号化コンポーネント４３３は、ＣＡＶＬＣ、ＣＡＢＡＣ、ＳＢＡＣ及びＰＩＰＥ符号化又は他のエントロピー符号化技術等のエントロピー復号化スキームを実施するよう構成されている。例えば、エントロピー復号化コンポーネント４３３は、ビットストリーム内で符号語として符号化された追加のデータを解釈するためにコンテキストを提供するためにヘッダ情報を用いり得る。復号化された情報は、ビデオ信号を復号化するために、一般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ及び残差ブロックからの量子化変換係数等の任意の所望の情報を含む。量子化変換係数は、残差ブロックに再構成するために逆変換及び量子化コンポーネント４２９に転送される。逆変換及び量子化コンポーネント４２９は、逆変換及び量子化コンポーネント３２９と実質的に同様であり得る。
【００４７】
再構成された残差ブロック及び／又は予測ブロックは、イントラ予測動作に基づいて画像ブロックに再構成するために、イントラピクチャ予測コンポーネント４１７に転送される。イントラピクチャ予測コンポーネント４１７は、イントラピクチャ予測コンポーネント３１７と実質的に同様であり得るが、逆に動作し得る。具体的には、イントラピクチャ予測コンポーネント４１７は、フレーム内の参照ブロックを特定するために予測モードを用い、イントラ予測された画像ブロックを再構成するために結果に残差ブロックを適用する。再構成され、イントラ予測された画像ブロック及び／又は残差ブロック及び対応する相互予測データは、復号化ピクチャバッファコンポーネント４２３にインループフィルタコンポーネント４２５を介して（それぞれ復号化ピクチャバッファコンポーネント３２３及びインループフィルタコンポーネント３２５と実質的に同様であり得る）に転送される。インループフィルタコンポーネント４２５は、再構成された画像ブロック、残差ブロック及び／又は予測ブロックをフィルタリングし、そのような情報は復号化ピクチャバッファコンポーネント４２３に記憶される。復号化ピクチャバッファコンポーネント４２３からの再構成された画像ブロックは、相互予測のために動き補償コンポーネント４２１に転送される。動き補償コンポーネント４２１は動き補償コンポーネント３２１と実質的に同様であり得るが、動作が逆であり得る。具体的には、動き補償コンポーネント４２１は、参照ブロックから動きベクトルを用いて予測ブロックを生成し、画像ブロックを再構成するために残差ブロックを結果に適用する。結果として得られた再構成されたブロックは、インループフィルタコンポーネント４２５を介して復号化ピクチャバッファコンポーネント４２３に転送され得る。復号化ピクチャバッファコンポーネント４２３は、分割情報を介してフレームに再構成可能な追加の再構成された画像ブロックの記憶を続ける。そのようなフレームは、シーケンスにも配置され得る。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【００４８】
相互予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスは画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、画像ブロックは相互予測（異なるフレーム内のブロック間の相関関係）又はイントラ予測（同じフレーム内のブロック間の相関関係）により圧縮され得る。
【００４９】
符号化木ユニット（ＣＴＵ）、符号化木ブロック（ＣＴＢ）、符号化ユニット（ＣＵ）、サブＣＵ等の符号化オブジェクトがビデオシーケンスの複数フレームに現れた場合に相互予測が用いられる。各フレーム内の同じオブジェクトを符号化する代わりに、オブジェクトは参照フレーム内で符号化され、オブジェクトの動き軌跡（motion  trajectory）を示すために動きベクトル（ＭＶ）が用いられる。オブジェクトの動き軌跡はオブジェクトの経時的な動きである。ＭＶは、フレーム間で位置変化するオブジェクトの方向及び大きさを示すベクトルである。オブジェクト及びＭＶはビットストリームに符号化でき、デコーダにより復号化される。符号化効率をさらに高め、符号化のサイズを低減するために、ＭＶはビットストリームから省略され、デコーダで導出され得る。例えば、一対の参照フレームが用いられ得る。参照フレームは、関連するフレームを符号化する際に参照により符号化可能なデータを含むビットストリーム内のフレームである。双方の参照フレーム内の符号化オブジェクトの位置を特定するためにバイラテラルマッチング及び／又はテンプレートマッチング等のマッチングアルゴリズムが用いられ得る。バイラテラルマッチングアルゴリズムは、先のフレーム内のブロックを現在のフレーム内のブロックにマッチングさせる。テンプレートマッチングアルゴリズムは隣接するブロックを現在のブロックとマッチングさせ、１つ以上の参照フレーム内で隣接するブロックを現在のブロックとマッチングさせる。双方の参照フレーム内でオブジェクトの位置が特定されると、参照フレーム間のオブジェクトの動きを表すＭＶを決定できる。次に、参照フレーム間のフレーム内にオブジェクトを配置するためにＭＶを用いることができる。具体的な例として、ＣＵ全体のために初期ＭＶを決定できる。そして、初期ＭＶを精緻化するためにローカル検索を用いることができる。さらに、オブジェクトのサブＣＵコンポーネントのためのＭＶは、精密化された初期ＭＶに基づいて決定及び精密化できる。そのようなアプローチは、オブジェクトの動き軌跡が参照フレーム間で連続している限り、オブジェクトの正しい位置を示す。
【００５０】
図５は、例えば、ブロック圧縮ステップ１０５、ブロック復号化ステップ１１３、動き推定コンポーネント２２１、動き補償コンポーネント２１９、動き補償コンポーネント３２１及び／又は動き補償コンポーネント４２１で動きベクトル（ＭＶ）を決定するために行われる一方向相互予測５００の一例を示す概略図である。
【００５１】
一方向相互予測５００は、現在のフレーム５１０内の現在のブロック５１１を予測するために参照ブロック５３１を有する参照フレーム５３０を用いる。参照フレーム５３０は、図示のように現在のフレーム５１０の後に時間的に位置し得るが、一部の例では現在のフレーム５１０の前に時間的に位置し得る。現在のフレーム５１０は、特定の時間に符号化／復号化される例示のフレーム／ピクチャである。現在のフレーム５１０は、参照フレーム５３０の参照ブロック５３１内のオブジェクトとマッチするオブジェクトを現在のブロック５１１内に含む。参照フレーム５３０は、現在のフレーム５１０を符号化するための参照として用いられるフレームであり、参照ブロック５３１は、現在のフレーム５１０の現在のブロック５１１にも含まれるオブジェクトを含む参照フレーム５３０内のブロックである。現在のブロック５１１は、符号化プロセスの特定の時点で符号化／復号化される任意の符号化ユニットである。現在のブロック５１１は、分割されたブロック全体であり得るか又はアフィン相互予測の場合ではサブブロックであり得る。現在のフレーム５１０は、ある時間的距離（ＴＤ）５３３参照フレーム５３０から離れている。ＴＤ５３３は、ビデオシーケンス内で現在のフレーム５１０と参照フレーム５３０との間の時間を示す。ＴＤ５３３により表される期間にわたって、現在のブロック５１１内のオブジェクトは、現在のフレーム５１０内の位置から参照フレーム５３０内の別の位置（例えば、参照ブロック５３１の位置）に移動する。例えば、オブジェクトは、経時的なオブジェクトの動きの方向である動き軌跡５１３に沿って移動し得る。動きベクトル５３５は、ＴＤ５３３にわたる動き軌跡５１３に沿ったオブジェクトの動きの方向及び大きさを記述する。したがって、符号化されたＭＶ５３５及び参照ブロック５３１は、現在のブロック５１１及び現在の現在のフレーム５１０内の現在のブロック５１１の位置を再構成するのに十分な情報を提供する。
【００５２】
図６は、例えば、ブロック圧縮ステップ１０５、ブロック復号化ステップ１１３、動き推定コンポーネント２２１、動き補償コンポーネント２１９、動き補償コンポーネント３２１及び／又は動き補償コンポーネント４２１でＭＶを決定するために行われる双方向相互予測６００の一例を示す概略図である。例えば、相互予測モードにおけるブロックのための動きベクトルを決定するために及び／又はアフィン相互予測モードにおけるサブブロックのための動きベクトルを決定するために双方向相互予測６００を用いることができる。
【００５３】
双方向相互予測６００は一方向相互予測５００と同様であるが、現在のフレーム６１０内の現在のブロック６１１を予測するために一対の参照フレームを用いる。そのため、現在のフレーム６１０及び現在のブロック６１１はそれぞれ、現在のフレーム５１０及び現在のブロック５１１と実質的に同様である。現在のフレーム６１０は、ビデオシーケンスにおいて現在のフレーム６１０の前に起こる先行参照フレーム６２０と、ビデオシーケンスにおいて現在のフレーム６１０の後で起こる後続参照フレーム６３０との間で時間的に位置する。先行参照フレーム６２０及び後続参照フレーム６３０は、それ以外では参照フレーム５３０と実質的に同様である。
【００５４】
現在のブロック６１１は、先行参照フレーム６２０内の先行参照ブロック６２１と、後続参照フレーム６３０内の後続参照ブロック６３１とにマッチングする。そのようなマッチングは、ビデオシーケンスにわたって、オブジェクトは、先行参照ブロック６２１における位置から後続参照ブロック６３１における位置に動き軌跡６１３に沿って現在のブロック６１１を介して移動することを示す。現在のフレーム６１０は先行参照フレーム６２０からある先行時間距離（ＴＤ０）６２３離れており、後続参照フレーム６３０からある後続時間距離（ＴＤ１）６３３離れている。ＴＤ０  ６２３は、ビデオシーケンスにおける先行参照フレーム６２０と現在のフレーム６１０との間の時間を示す。ＴＤｌ  ６３３は、ビデオシーケンスにおける現在のフレーム６１０と後続参照フレーム６３０との間の時間を示す。そのため、オブジェクトは、動き軌跡６３に沿ってＴＤ０  ６２３によって示される期間にわたって先行参照ブロック６２１から現在のブロック６１１に移動する。また、オブジェクトは、動き軌跡6６１３に沿ってＴＤ１  ６３３によって示される期間にわたって現在のブロック６１１から後続参照ブロック６３１に移動する。
【００５５】
先行動きベクトル（ＭＶ０）６２５は、動き軌跡６１３に沿ったＴＤ０  ６２３にわたる（例えば、先行参照フレーム６２０と現在のフレーム６１０との間の）オブジェクトの動きの方向及び大きさを記述する。後続動きベクトル（ＭＶ１）６３５は、動き軌跡６１３に沿ったＴＤ１  ６３３にわたる（例えば、現在のフレーム６１０と後続参照フレーム６３０との間の）オブジェクトの動きの方向及び大きさを記述する。そのため、双方向相互予測６００では、先行参照ブロック６２１及び／又は後続参照ブロック６３１、ＭＶ０  ６２５及びＭＶｌ  ６３５を用いることにより現在のブロック６１１を符号化及び再構成できる。
【００５６】
イントラ予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスが画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、相互予測（異なるフレーム内のブロック間の相関関係）又はイントラ予測（同じフレーム内のブロック間の相関関係）により画像ブロックが圧縮され得る。イントラ予測では、サンプルの参照ライン（reference  line）から現在の画像ブロックが予測される。参照ラインは、隣接ブロックとも呼ばれる近隣画像ブロックからのサンプルを含む。現在のブロックからのサンプルは、最も近いルマ（光）又はクロマ（色）値を有する参照ラインからのサンプルとマッチングされる。現在のブロックは、マッチングサンプルを示す予測モードとして符号化される。予測モードは、角度予測モード、直流（ＤＣ）モード及び平面モード（planer  mode）を含む。予測モードにより予測された値と実際の値との差分は、残差値として残差ブロック内に符号化される。
【００５７】
図７は、ビデオ符号化で用いられる例示のイントラ予測モード７００を示す概略図である。例えば、イントラ予測モード７００は、方法１００のステップ１０５及び１１３、コーデックシステム２００のイントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７、エンコーダ３００のイントラピクチャ予測コンポーネント３１７及び／又はデコーダ４００のイントラピクチャ予測コンポーネント４１７により用いられ得る。具体的には、選択された予測モード及び残りの残差ブロックを含む予測ブロックに画像ブロックを圧縮するためにイントラ予測モード７００を用いることができる。
【００５８】
上述したように、イントラ予測は、現在の画像ブロックを、１つ以上の隣接ブロックの対応するサンプル又は複数のサンプルにマッチングさせることを伴う。次に、現在の画像ブロックは選択された予測モードインデックス及び残差ブロックとして表すことができ、これは現在の画像ブロックに含まれるルマ／クロマ値の全てを表すよりもはるかに小さい。イントラ予測は、利用可能な参照フレームがない場合又は現在のブロック若しくはフレームに相互予測符号化が用いられていない場合に用いることができる。イントラ予測のための参照サンプルは、同じフレーム内の先に符号化された（又は再構成された）隣接ブロックから導出され得る。Ｈ．２６４及びＨ．２６５／ＨＥＶＣとしても知られるアドバンスドビデオ符号化（ＡＶＣ）の双方は、近隣ブロックの境界サンプルの参照ラインをイントラ予測のための参照サンプルとして用いる。異なるテクスチャ又は構造特性を網羅するために、多くの異なるイントラ予測モードが用いられる。Ｈ．２６５／ＨＥＶＣは、現在のブロックを１つ以上の参照サンプルに空間的に関連付ける３５イントラ予測モード７００をサポートする。具体的には、イントラ予測モード７００は、モード２〜３４として索引付けられた（indexed）３３の方向予測モード、モード１として索引付けされたＤＣモード及びモードゼロとして索引付けられた平面モードを含む。
【００５９】
符号化の間、エンコーダは、現在のブロックのルマ／クロマ値を、隣接ブロックの端から端にわたる（across  the  edges  of  neighboring  blocks）参照ライン内の対応する参照サンプルのルマ／クロマ値とマッチングさせる。参照ラインのうちの１つと最良のマッチが見つかった場合、エンコーダは、最良のマッチング参照ラインを指す方向性イントラ予測モード７００の１つを選択する。説明を明確にするために、特定の方向性イントラ予測モード７００を参照するために頭字語が以下で用いられる。ＤｉｒＳは、左下から時計回りにカウントする場合の開始方向性イントラ予測モード（例えば、ＨＥＶＣにおけるモード２）を表す。ＤｉｒＥは左下から時計回りにカウントする場合の終了方向性イントラ予測モード（例えば、ＨＥＶＣにおけるモード３４）を表す。ＤｉｒＤは、左下から時計回りにカウントする場合の中間方向性イントラ符号化モード（例えば、ＨＥＶＣにおけるモード１８）を表す。ＤｉｒＨは水平イントラ予測モード（例えば、ＨＥＶＣにおけるモード１０）を表す。ＤｉｒＶは垂直イントラ予測モード（例えば、ＨＥＶＣにおけるモード２６）を表す。
【００６０】
上述したように、ＤＣモードは平滑化機能として作用し、現在のブロックの予測値を、隣接ブロックを横断する参照ライン内の全ての参照サンプルの平均値として導出する。同じく上述したように、平面モードは、参照サンプルの参照ラインの底部と左上又は左上と右上のサンプル間の滑らかな遷移（例えば、値の一定の勾配）を示す予測値を返す。
【００６１】
ＤｉｒＨからＤｉｒＶまでの平面、ＤＣ及び予測モードの場合、参照ラインの上段及び参照ラインの左列の双方内のサンプルが参照サンプルとして用いられる。（ＤｉｒＳ及びＤｉｒＨを含む）ＤｉｒＳからＤｉｒＨへの予測方向を持つ予測モードの場合、参照ラインの左列の先に符号化され且つ再構成された隣接ブロック内の参照サンプルが参照サンプルとして用いられる。（ＤｉｒＶ及びＤｉｒＥを含む）ＤｉｒＶからＤｉｒＥへの予測方向を持つ予測モードの場合、参照ラインの上段の先に符号化され且つ再構成された隣接ブロックの参照サンプルが参照サンプルとして用いられる。
【００６２】
図８は、ビデオ符号化におけるブロック８００の方向関係の一例を示す概略図である。例えば、イントラ予測モード５００を選択する際にブロック８００が用いられ得る。そのため、ブロック８００は、方法１００のステップ１０５及び１１３、コーデックシステム２００のイントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７、エンコーダ３００のイントラピクチャ予測コンポーネント３１７及び／又はデコーダ４００のイントラピクチャ予測コンポーネント４１７により用いられ得る。ビデオ符号化では、ブロック８００はビデオコンテンツに基づいて分割されるため、様々な形状及びサイズの多くの長方形及び正方形を含み得る。ブロック８００は説明の目的のために正方形として図示されているため、説明の明確性をサポートするために実際のビデオ符号化ブロックから単純化されている。
【００６３】
ブロック８００は現在のブロック８０１及び隣接ブロック８１０を含む。現在のブロック８１０は特定の時間に符号化される任意のブロックである。隣接ブロック８１０は現在のブロック８０１の左端又は上端のすぐそばに近接する任意のブロックである。ビデオ符号化は概して左上から右下に進む。そのため、隣接ブロック８１０は、現在のブロック８０１の符号化の前に符号化され且つ再構成され得る。現在のブロック８０１を符号化する場合、エンコーダは、現在のブロック８０１のルマ／クロマ値を、隣接ブロック８１０の端から端を横切る参照ラインからの参照サンプル（又は複数の参照サンプル）とマッチングさせる。そして、マッチングは、例えば、マッチングされたサンプル（又はＤＣ又は平面モードが選択された場合は複数のサンプル）を指すイントラ予測モード７００からイントラ予測モードを選択するために用いられる。次に、選択されたイントラ予測モードは、現在のブロック８０１のルマ／クロマ値は選択されたイントラ予測モードに対応する参照サンプルと実質的に同様であることを示す。差異があれば残差ブロックで保持できる。次に、選択されたイントラ予測モードはビットストリームに符号化される。デコーダでは、現在のブロック８０１は、選択されたイントラ予測モードに対応する隣接ブロック８１０内の選択された参照ラインにおける参照サンプルのルマ／クロマ値を（残差ブロックからの残差情報と共に）用いることにより再構成できる。
【００６４】
インループフィルタ
ビデオ符号化スキームはビデオ信号を画像フレームに細分し、次いで画像フレームを様々な種類のブロックに細分する。そして、画像ブロックが圧縮される。このアプローチは、圧縮されたビデオ信号が再構成されて表示された場合にビジュアルアーチファクトを作り出し得る。例えば、画像圧縮プロセスはブロック形状を人為的に加えることができる。これはブロッキングとして知られ、ブロック分割境界で概して起こる。加えて、量子化ノイズとして知られる非線形信号依存丸め誤差（non-linear  signal  dependent  rounding  error）も圧縮画像に人為的に加えられ得る。そのようなアーチファクトを補正するために様々なフィルタが用いられ得る。フィルタは再構成されたフレームに後処理で適用され得る。後処理は、圧縮されたビデオ信号の大半の部分が再構成された後で且つユーザに表示される直前に起こる。フィルタは、インループフィルタリングと呼ばれるメカニズムを用いることにより圧縮／解凍プロセスの一部としても適用され得る。インループフィルタリングは、関連する画像の間でより正確な圧縮をサポートするために符号化及び／又は復号化プロセスの間に再構成されたビデオ画像にフィルタを適用するフィルタリングスキームである。例えば、相互予測は先行及び/又は後続の画像フレームに基づいて画像フレームを符号化する。エンコーダでは、圧縮された画像が再構成され、再構成された画像は、相互予測を介して先行する／後続の画像フレームを符号化する際に用いるためにより正確な画像を提供するようにインループフィルタリングを介してフィルタリングされる。デコーダでは、圧縮された画像が再構成され、エンドユーザによる視聴のためにより正確な画像を生成すること及び正確な相互予測をサポートすることの双方のためにインループフィルタリングを介してフィルタリングされる。インループフィルタリングは、デブロッキングフィルタ、サンプル適応オフセット（ＳＡＯ）フィルタ及び適応ループフィルタ等のいくつかのフィルタを用いる。インループフィルタリングはノイズ抑制フィルタも含むことができる。
【００６５】
図９は、例示のインループフィルタ９００を示すブロック図である。インループフィルタ９００は、インループフィルタ２２５、３２５及び／又は４２５を実施するために用いられ得る。インループフィルタ９００はノイズ抑制フィルタ９４１、デブロッキングフィルタ９４３、サンプル適応オフセット（ＳＡＯ）フィルタ９４５及び適応ループフィルタ９４７を含む。インループフィルタ９００のフィルタは、再構成された画像ブロック及び／又は残差ブロックに順次適用される。
【００６６】
ノイズ抑制フィルタ９４１は画像圧縮によって生じる量子化ノイズを除去するように構成されている。具体的には、画像のエッジに生じるアーチファクトを除去するためにノイズ抑制フィルタ９４１が用いられる。例えば、画像圧縮は、画像内の異なる色／光パッチ間のシャープな遷移（エッジ）に隣接して明白で不正確な色／光値を作り得る。これはリンギングと呼ばれ、シャープなエッジに関連する画像データの高周波部分への変換の適用によって生じる。そのようなリンギングアーチファクトを緩和するためにノイズ抑制フィルタ９４１が用いられる。ノイズ抑制フィルタ９４１は、空間領域（例えば、ピクセルの空間方向）及び周波数領域（例えば、ピクセルデータに関する変換係数値の関係）の両方で動作する。エンコーダでは、ノイズ抑制フィルタ９４１は再構成されたフレームを参照マクロブロックに分割する。そのようなブロックは、より小さな参照ブロックに細分することもできる。ノイズ抑制フィルタ９４１は、ブロックにおける量子化ノイズの推定量に基づいてフィルタリングすべきフレームの部分を示すアプリケーションマップを先ず生成する。次に、ノイズ抑制フィルタ９４１は、アプリケーションマップによって示される各参照ブロックに対してマッチングコンポーネントを用いて対応する参照ブロックと同様の一組のパッチを決定する。ここで、同様とは、クロマ／ルマ値が所定の範囲内にあることを示す。次に、ノイズ抑制フィルタ９４１はパッチをクラスタにグループ化し、二次元（２Ｄ）変換を用いてクラスタを周波数領域に変換し、その結果周波数領域パッチが得られる。ノイズ抑制フィルタ９４１は、周波数領域パッチを空間領域に戻すために変換するために逆２Ｄ変換も用いり得る。
【００６７】
デブロッキングフィルタ９４３は、ブロックベースの相互及びイントラ予測によって生じるブロック状のエッジを除去するように構成されている。デブロッキンングフィルタ９４３は、画像部分（例えば、画像スライス）をスキャンして、分割境界で生じるクロマ及び／又はルマ値の不連続部を探す。次に、デブロッキンングフィルタ９４３は、そのような不連続部を除去するために平滑化機能をブロック境界に適用する。デブロッキンングフィルタ９４３の強度は、ブロック境界に隣接する領域で生じる空間アクティビティ（例えば、ルマ／クロマ成分の分散）に応じて変更され得る。
【００６８】
ＳＡＯフィルタ９４５は、符号化プロセスによって引き起こされるサンプル歪みに関連するアーチファクトを除去するように構成されている。エンコーダにおけるＳＡＯフィルタ９４５は、再構成された画像のデブロックされたサンプルを、相対的なデブロッキンングエッジ形状及び／又は方向に基づいていくつかのカテゴリーに分類する。次に、オフセットが決定されて、カテゴリーに基づいてサンプルに加えられる。次に、オフセットがビットストリームに符号化され、デコーダにおいてＳＡＯフィルタ９４５により用いられる。ＳＡＯフィルタ９４５は、バンディングアーチファクト（平滑な遷移の代わりに値のバンド）及びリンギングアーチファクト（シャープなエッジの近傍のスプリアス信号)を除去する。
【００６９】
適応ループフィルタ９４７は、エンコーダにおいて、再構成された画像を元の画像と比較するように構成されている。適応ループフィルタ９４７は、例えばウィナーベースの適応フィルタを介して、再構成された画像と元の画像との間の差分を記述する係数を特定する。そのような係数はビットストリームに符号化され、再構成された画像と元の画像との間の差分を除去するためにエンコーダにおいて適応ループフィルタ９４７で用いられる。適応ループフィルタ９４７はアーチファクトを補正するのに有効であるが、再構成された画像と元の画像との間の差分が大きいほど、シグナリングすべき係数の数がより大きくなる。これは、ひいてはより大きなビットストリームを生成するため、圧縮の有効性が低減される。そのため、適応ループフィルタ９４７を適用する前に他のフィルタによる差分の最小化は改善された圧縮をもたらす。
【００７０】
分割
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。例えば、エンコーダ及びデコーダの双方は、Ｈ．２６５としても知られる高効率ビデオ符号化方式（ＨＥＶＣ）等の符号化規格を用いり得る。エンコーダで、ビデオ信号がフレームに分離される。次に、フレームはピクセルのグループを含む画像ブロックに分割される。次に、画像ブロックが圧縮され、フィルタリングされ、ビットストリームに符号化される。次に、ビットストリームはデコーダに送信され、デコーダはエンドユーザに表示するためにビデオ信号を再構成する。
【００７１】
分割システムは、画像ブロックをサブブロックに分割するように構成されている。例えば、ノード（例えば、ブロック）を子ノード（例えば、サブブロック）に分割するために様々な分割モードを用いる木構造を用いることができる。異なる分割を得るために異なる分割モードを用いることができる。さらに、分割モードは、さらなる細分ノードに再帰的に適用することもできる。分割モードのそのような適用により様々な分割パターンが得られる。
【００７２】
図１０は、ブロック分割に用いられる例示の分割モード１０００を示す。分割モード１０００は、分割の間に親ノード（例えば、画像ブロック）を複数の子ノード（例えば、画像サブブロック）に分割するメカニズムである。分割モード１０００は、四分木（ＱＴ）分割モード１００１、垂直二分木（ＢＴ）分割モード１００３、水平ＢＴ分割モード１００５、垂直三分木（ＴＴ）分割モード１００７及び水平ＴＴ分割モード１００９を含む。ＱＴ分割モード１００１はブロック分割のための木構造であり、４Ｍ×４ＮのサイズのノードがＭ×Ｎのサイズの４つの子ノードに分割され、Ｍはブロック幅を示し、Ｎはブロック高さを示す。垂直ＢＴ分割モード１００３及び水平ＢＴ分割モード１００５はブロック分割のための木構造であり、それぞれ、サイズが４Ｍ×４Ｎのノードがサイズが２Ｍ×４Ｎの２つの子ノードに垂直に分割されるか又はサイズが４Ｍ×２Ｎの２つの子ノードに水平に分割される。垂直ＴＴ分割モード１００７及び水平ＴＴ分割モード１００９はブロック分割のための木構造であり、それぞれ、サイズが４Ｍ×４ＮのノードがサイズがＭ×４Ｎ、２Ｍ×４Ｎ及びＭ×４Ｎの３つの子ノードに垂直に分割されるか又はサイズが４Ｍ×Ｎ、４Ｍ×２Ｎ及び４Ｍ×Ｎの３つの子ノードに水平に分割される。３つの子ノードのうち、最も大きなノードが中心に位置する。
【００７３】
分割モード１０００は、ブロックをさらに分割するためにも再帰的に適用され得る。例えば、ＱＴ分割モード１００１でノードを分割し、次いで垂直ＢＴ分割モード１００３及び／又は水平ＢＴ分割モード１００５で各子ノード（場合によっては４分木葉ノードと呼ばれる）を分割することにより、４分木２分木（ＱＴ−ＢＴ）を作成できる。さらに、４分木分割されたノードを分割し、次いで、得られた子ノードを垂直ＴＴ分割モード１００７及び／又は水平ＴＴ分割モード１００９で分割することにより、４分木３分木（ＱＴ−ＴＴ）を作成できる。
【００７４】
ＨＥＶＣはジョイント探索モデル（ＪＥＶ）アプリケーション上で動作する。ＪＥＭでは、符号化木ユニット（ＣＴＵ）を複数のブロックに分割するためにＱＴ―ＢＴブロック分割が用いられる。ブロック分割の種類をさらに充実させるために、ＴＴブロック分割をＪＥＭに含めることが提案されている。ＱＴ、ＱＴ−ＢＴ、ＱＴ−ＴＴブロック分割モードに基づくビデオ符号化では、深度Ｋにおける符号化又は予測ブロックは、ＢＴ、ＴＴ又はＱＴ分割モードにより深度がＫ＋１の数Ｎのより小さな符号化又は予測ブロックに分割されてもよく、Ｎはそれぞれ２、３又は４に設定される。分割モードの分割パターンを図１０に示し、分割パターンは、親ノードから分割された２つ以上の子ノードのサイズ及び位置を示す。
【００７５】
変換
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。
【００７６】
例えば、エンコーダ及びデコーダの双方は、Ｈ．２６５としても知られる高効率ビデオ符号化方式（ＨＥＶＣ）等の符号化規格を用いり得る。Ｈ.２６５は予測及び変換フレームワークに基づく。エンコーダでは、ビデオファイルがフレームに分離される。次に、フレームは、ピクセル群を含む画像ブロックに細分される。画像ブロックは、予測モード及び動きベクトル情報等の予測情報を含む予測ブロックと、変換モード、変換係数及び量子化パラメータ等の残差情報を含む残差ブロックとにさらに分解される。予測ブロック及び残差ブロックは画像ブロックよりも少ない記憶空間を用いるが、画像ブロックを再構成するためにデコーダにより用いることができる。予測ブロック及び残差ブロックはビットストリームに符号化されデコーダに転送される及び／又は要求に応じて後で転送するために記憶される。デコーダでは、予測情報及び残差情報がパースされる。次に、パースされた予測情報は、イントラ予測又は相互予測を用いることにより予測サンプルを生成するために用いられる。イントラ予測は、同じフレーム内の他の画像ブロックを予測するために再構成された画像ブロックを用いる。相互予測は、隣接フレーム間の他の画像ブロックを予測するために再構成された画像ブロックを用いる。さらに、残差情報は、例えば、逆量子化及び逆変換を連続的に適用することにより残差サンプルを生成するのに用いられる。予測サンプル及び残差サンプルは、（例えば、エンドユーザに対してモニタ上に表示するために）エンコーダにより符号化された画像ブロックに対応する再構成されたサンプルを得るために組み合わされる。
【００７７】
空間的可変変換（ＳＶＴ）はビデオ符号化効率をさらに改善するために用いられるメカニズムである。ＳＶＴは残差ブロックをさらに圧縮するために変換ブロックを用いる。具体的には、矩形の残差ブロックは幅及び高さｈ（例えば、ｗ×ｈ）を含む。残差ブロックよりも小さい変換ブロックが選択される。そのため、変換ブロックは残差ブロックの対応部分を変換するために用いられ、残差ブロックの残りの部分を追加の符号化／圧縮なしで残す。ＳＶＴの背後にある理論的根拠は、残差情報が残差ブロック内で均等に分布していない可能性があるということである。適応位置を持つより小さな変換ブロックを用いることにより、残差ブロック内の残留情報の大半を、残差ブロック全体を変換する必要なしにキャプチャできる。このアプローチは、いくつかの場合において、残差ブロック内の残差情報の全てを変換するよりも良好な符号化効率が得られ得る。変換ブロックは残差ブロックよりも小さいため、ＳＶＴは残差ブロックに対する変換の位置をシグナリングするためのメカニズムを用いる。そのような位置のシグナリングは符号化プロセスの全体的なシグナリングオーバーヘッドを増加させるため、圧縮の効率を低下させる。加えて、全ての場合に同じ種類の変換ブロックを用いることは、場合によっては有益な結果をもたらさない可能性がある。
【００７８】
図１１は、例示のビデオ符号化メカニズム１１００の概略図である。エンコーダは１つ以上のフレームから画像ブロック１１０１を得ることができる。例えば、画像は複数の矩形画像領域に分割され得る。画像の各領域は符号化木ユニット（ＣＴＵ）に対応する。ＣＴＵは、ＨＥＶＣにおける符号化ユニット等の複数のブロックに分割される。次に、ブロック分割情報はビットストリーム１１１１に符号化される。したがって、画像ブロック１１０１は画像の分割された部分であり、画像の対応部分におけるルマ成分及び／又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック１１０１は、イントラ予測のための予測モード及び／又は相互予測のための動きベクトル等の予測情報を含む予測ブロック１１０３として符号化される。次に、予測ブロック１１０３として画像ブロック１１０１を符号化することにより、予測ブロック３０３と画像ブロック３０１との間の差分を示す残差情報を含む残差ブロック１１０５が残され得る。
【００７９】
なお、画像ブロック１１０１は、１つの予測ブロック１１０３及び１つの残差ブロック１１０５を含む符号化ユニットとして分割され得る。予測ブロック１１０３は符号化ユニットの全ての予測サンプルを含んでもよく、残差ブロック１１０５は、符号化ユニットの全ての残差サンプルを含んでもよい。そのような場合では、予測ブロック１１０３は残差ブロック１１０５と同じサイズである。別の例では、画像ブロック１１０１は、２つの予測ブロック１１０３及び１つの残差ブロック１１０５を含む符号化ユニットとして分割され得る。そのような場合では、各予測ブロック１１０３は符号化ユニットの予測サンプルの一部を含み、残差ブロック１１０５は符号化ユニットの残差サンプルの全てを含む。さらに別の例では、画像ブロック１１０１は、２つの予測ブロック１１０３及び４つの残差ブロック１１０５を含む符号化ユニットに分割される。符号化ユニット内の残差ブロック１１０５の分割パターンは、ビットストリーム１１１１内にシグナリングされ得る。そのような位置パターンは、ＨＥＶＣにおける残差四分木（ＲＱＴ）を含み得る。さらに、画像ブロック１１０１は、画像サンプル（又はピクセル）のＹ成分として示されるルマ成分（例えば、光）のみを含み得る。他の場合では、画像ブロック１１０１は画像サンプルのＹ、Ｕ及びＶ成分を含んでもよく、Ｕ及びＶは青色輝度及び赤色輝度（ＵＶ）の色空間におけるクロミナンス成分（例えば、色）を示す。
【００８０】
情報をさらに圧縮するために変換が用いられ得る。具体的には、残差ブロック１１０５をさらに圧縮するために変換ブロック１１０７が用いられ得る。変換ブロック１１０７は、逆離散コサイン変換（ＤＣＴ）及び／又は逆離散サイン変換（ＤＳＴ）等の変換を含む。予測ブロック１１０３と画像ブロック１１０１との間の差分は、変換係数を用いることにより変換に適合される。変換ブロック１１０７の変換モード（例えば、逆ＤＣＴ及び／又は逆ＤＳＴ）及び対応する変換係数を示すことにより、デコーダは残差ブロック１１０５を再構成できる。厳密な再生が要求されない場合、変換係数は、変換のためにより良好な適合を生み出すために特定の値を丸めることによりさらに圧縮できる。このプロセスは量子化として知られ、許容可能な量子化を記述する量子化パラメータに従って行われる。したがって、変換ブロック１１０７の変換モード、変換係数及び量子化パラメータは、場合によっては単に残差ブロックとも呼ばれ得る変換残差ブロック１１０９内に変換残留情報として格納される。
【００８１】
そして、予測ブロック１１０３の予測情報及び変換残差ブロック１１０９の変換残差情報はビットストリーム１１１１に符号化できる。ビットストリーム１１１１は記憶及び／又はデコーダに送信できる。次に、デコーダは画像ブロック１１０１を回復するためにプロセスを逆に行うことができる。具体的には、デコーダは、変換ブロック１１０７を決定するために変換残差情報を用いることができる。次に、変換ブロック１１０７は、残差ブロック１１０５を決定するために変換残差ブロック１１０９と共に用いることができる。次に、残差ブロック１１０５及び予測ブロック１１０３は、画像ブロック１１０１を再構成するために用いることができる。そして、画像ブロック１１０１はフレームを再構成するために他の復号化された画像ブロック１１０１に対して配置され、符号化されたビデオを回復するためにそのようフレームを配置できる。
【００８２】
なお、一部の予測ブロック１１０３は、残差ブロック１１０５をもたらすことなく符号化され得る。しかしながら、そのような場合は変換ブロック１１０７の使用がもたらされないため、さらなる説明はしない。変換ブロック１１０７は、相互予測ブロック又はイントラ予測ブロックのために用いられ得る。さらに、変換ブロック１１０７は、特定の相互予測メカニズム（例えば、並進モデルに基づく動き補償）によって生成される残差ブロック１１０５に対して用いられ得るが、他の特定の相互予測メカニズム（例えば、アフィンモデルに基づく動き補償）によって生成される残差ブロック１１０５には用いられない場合がある。
【００８３】
図１２は、本開示の一実施形態に係るビデオ符号化のための例示のコンピュータ装置１２００の概略図である。コンピュータ装置１２００は、本明細書に記載の開示された実施形態を実施するのに好適である。コンピュータ装置１２００は、データを受信するための入口ポート１２２０及び受信機ユニット（Ｒｘ）１２１０；データを処理するためのプロセッサ、論理ユニット又は中央処理ユニット（ＣＰＵ）１２３０；データを送信するための送信機ユニット（ＴＸ）１２４０及び出口ポート１２５０；データを記憶するためのメモリ１２６０を含む。コンピュータ装置１２００は、光又は電気信号の出入りのために入口ポート１２２０、受信機ユニット１２１０、送信機ユニット１２４０及び出口ポート１２５０に連結される光／電気（ＯＥ）コンポーネント及び電気／光（ＥＯ）コンポーネントも含み得る。コンピュータ装置１２００は、一部の例では無線送信機及び／又は受信機も含み得る。
【００８４】
プロセッサ１２３０はハードウェア及びソフトウェアにより実施される。プロセッサ１２３０は、１つ以上のＣＰＵチップ、コア（例えば、マルチコアプロセッサとして）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）及びデジタル信号プロセッサ（ＤＳＰ）として実施され得る。プロセッサ１２３０は、入口ポート１２２０、受信機ユニット１２１０、送信機ユニット１２４０、出口ポート１２５０及びメモリ１２６０と通信する。プロセッサ１２３０は符号化モジュール１２１４を含む。符号化モジュール１２１４は上述した開示の実施形態を実施する。例えば、符号化モジュール１２１４は様々な符号化動作を実施、処理、準備又は提供する。したがって、符号化モジュール１２１４を含めることは、コンピュータ装置１２００の機能に実質的な改善をもたらし、コンピュータ装置１２００の異なる状態への変換をもたらす。あるいは、符号化モジュール１２１４は、メモリ１２６０に記憶され且つプロセッサ１２３０によって実行される命令として実施される（例えば、非一時的媒体に記憶されるコンピュータプログラム製品として）。
メモリ１２６０は１つ以上のディスク、テープドライブ及びソリッドステートドライブを含み、プログラムが実行のために選択された場合にそのようなプログラムを記憶し、プログラムの実行の間に読み出される命令及びデータを記憶するオーバーフローデータ記憶装置として用いられ得る。メモリ１２６０は揮発性及び／又は不揮発性であってもよく、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、三値連想メモリ（ＴＣＡＭ）及び／又はスタティックランダムアクセスメモリ（ＳＲＡＭ）であり得る。コンピュータ装置１２００は、エンドユーザとやりとりするための入出力（Ｉ／Ｏ）装置も含み得る。例えば、コンピュータ装置１２００は、視覚出力のためのモニタ等のディスプレイ、音声出力のためのスピーカー及びユーザ入力のためのキーボード／マウス／トラックボール等を含み得る。
【００８５】
図１３は、点群媒体（point  cloud  media）を示すシステム１３００の一例である。とりわけ、システム１３００は点群媒体のフレームの様々な例を示す。本例は、男性１３０２、前向きの女性１３０４及び後向きの女性１３０６を含む。一部の実施では、システム１３００はより多い又は少ない点群媒体の例を含むことができる。点群媒体は、三次元（３−Ｄ）空間におけるオブジェクト又は人の仮想表現と、それらに対応する経時的な動きを含むことができる。
【００８６】
通常、点群媒体は、３−Ｄオブジェクトの外面の輪郭を示す、３−Ｄ空間におけるデータ点のセットを含む。例えば、オブジェクトは、人間、製造品目及び実世界のオブジェクトを含むことができる。オブジェクトは、例えばカメラによってリアルタイムに記録でき、ディスプレイ又は投影スクリーン上で三次元空間に仮想的に表現できる。点群媒体のフレームは、特定の時点におけるオブジェクトの３−Ｄ表現を含むことができる。点群媒体の連続フレームは点群媒体の動的表現を表す。
【００８７】
次の頭字語の定義を説明する。グループオブフレーム（ＧｏＦ）−さらなる処理のために用いられる固定の時間（fixed  moment  of  time）に登録された点群のセット。グループオブピクチャ（ＧｏＰ）−ビデオ圧縮符号化のために用いられる点群に由来する投影のセット。点群圧縮（ＰＣＣ）−送信のために点群媒体を圧縮するための技術。
【００８８】
ビデオベースのＰＣＣコーデックソリューションは、３−Ｄ点群データを２−Ｄ投影パッチにセグメンテーションすることに基づく。ビデオベースのＰＣＣは、没入型６自由度、動的ＡＲ／ＶＲオブジェクト、文化遺産、ＧＩＳ、ＣＡＤ、自律ナビゲーション等のコンテンツで幅広く用いられている。
【００８９】
点群媒体は、エンターテイメント産業、インテリジェント自動車ナビゲーション産業、地理空間検査、実世界のオブジェクトの３−Ｄモデリング及び可視化を含む広範な用途で不可欠な一部になっている。これらの用途のそれぞれにおいて、様々なクライアント装置は点群媒体を表示及び示すことができる。非一様サンプリング形状を考慮した場合、そのようなデータの記憶及び送信のためにコンパクトな表現を有することが有益である。
【００９０】
例えば、クライアント装置は、製造部品のために、計測及び品質検査のために及び多数の視覚化、アニメーション、レンダリング及びマスカスタム化用途のために３−Ｄコンピュータアニメ描画（ＣＡＤ）モデルを作成するために点群媒体を用いることができる。一部の例では、骨、腕又は脚等が占める空間の量を可視化する場合等医用画像でしばしば行われるように、点群媒体は容積データ（volumetric  data）を表すのにも用いることができる。
【００９１】
既存の３―Ｄ表示と比較して、人間の輪郭を描く点群面等の不規則な点群面がより一般的であり、より広範囲なセンサ及びデータ収集戦略に適用可能である。例えば、仮想現実世界での３−Ｄ表示や、テレプレゼンス環境でのリモートレンダリングの場合、仮想図形のレンダリングやリアルタイム命令は、高密度の点群データセット（dense  point  cloud  data  sets）として処理される。例えば、テレプレゼンス環境上で男性１３０２、前向きの女性１３０４及び後ろ向きの女性１３０６が仮想現実世界で表示される例では、これらの単一の点群フレームのそれぞれは高密度の点群データセットとして処理される。
【００９２】
システム１３００は、特定の時点における点群媒体のフレームにより表される異なるオブジェクトを示す。クライアント装置等のデバイスは、一定期間にわたって点群媒体の連続フレームを表示できる。一部の例では、デバイスは没入型６自由度（６ＤｏＦ）環境、動的拡張現実（ＡＲ）及び仮想現実（ＶＲ）環境、文化遺産環境、地理情報システム（ＧＩＳ）環境、コンピュータ支援設計（ＣＡＤ）において及び自律ナビゲーションシステムにおいて点群媒体を表示できる。
【００９３】
点群媒体を受信、表示及び送信可能なデバイスは、パーソナルコンピュータ、ハンドヘルドデバイス、テレビ、ナビゲーションシステム又は点群媒体を表示可能な他のデバイス等のクライアント装置を含むことができる。一部の実施では、これらのデバイスは、点群媒体を内部メモリに記憶できるか又は点群媒体を外部記憶装置に記憶できる。点群媒体の記憶には大量の記憶領域が必要になるため、通常、点群媒体は外部記憶装置に記憶され且つアクセスされる。
【００９４】
クライアント装置が点群媒体をキャプチャし且つ中継するために、クライアント装置は点群媒体を記憶及び／又は送信するのに必要な帯域幅を低減するためにマルチサンプリング技術及びデータ圧縮技術に依拠する。ある場合では、点群媒体の動的表現の記憶及び送信は、点群媒体の単一フレームの純然たるサイズにより複雑である。例えば、点群媒体の単一フレームは、例えば数百ギガバイト等の大量のデータを含むことができる。そのため、点群媒体の複数のフレームを記憶すること及び送信することは、データ損失を引き起こし得る様々な媒体にわたって大量の点群媒体のフレームが適切に送信されることを確実にするために、データ圧縮及び符号化技術が必要になる。
【００９５】
図１４は、点群フレームシーケンスを示すシステム１４００の一例である。とりわけ、システム１４００は、異なるタイムスタンプにおける点群媒体のフレームシーケンスを表す動的点群媒体シーケンスを示す。例えば、システム１４００は、第１のタイムスタンプに第１の点群フレーム１４０２を、第２のタイムスタンプに第２の点群フレーム１４０４を、第３のタイムスタンプに第３の点群フレーム１４０４を含む。第１、第２及び第３の点群フレームは、リアルタイムで見た場合に三次元環境において増分タイムスタンプで右足を前に動かす女性１４００を示す動的点群シーケンスを構成する。増分タイムスタンプは、いくつかの例を挙げると秒又はマイクロ秒等の任意の単位の時間で測定できる。
【００９６】
システム１４００は、点群媒体１４０２のフレームのための境界ボックス１４０８、点群媒体１４０４の別のフレームのための境界ボックス１４１０及び点群媒体１４０６の別のフレームのための境界ボックス１４１２を示す。各点群媒体のための境界ボックスは、例えば、ｕ１、ｖ１及びｄ１の位置座標で表されるＸ次元、Ｙ次元及びＺ次元の３次元における固定グリッドを含む。
【００９７】
境界ボックスは、空又はデータで満たされ得る点を含む。一部の例では、空の点はボイド点であり得る。一部の例では、占有点は１つ以上の属性を含むことができる。ボイド点は、属性を持たない点群媒体のフレーム内の位置を含むことができる。他方で、占有点は、少なくとも１つの属性を持つ点群媒体のフレーム内の位置を含むことができる。属性は、例えば、クロマ、ルマ、反射率及びカラーを含むことができる。境界ボックス内の点は特定の座標系により特定できる。例えば、点群媒体１４０２のフレームの境界ボックス１４０８内の点はｕ１、ｖ１及びｄ１座標系により示すことができる。
【００９８】
通常、クライアント装置が点群媒体の１つ以上のフレームをネットワークを介して別のクライアント装置に送信する場合、点群媒体の各フレームは符号化される。符号化は適切な送信を確実にし且つ受信先のクライアント装置で受信した場合にデータが失われないことを確実にする。しかしながら、点群媒体のフレームの符号化は、点群媒体の１フレームのサイズが数百ギガバイトを超え得るため複雑になり得る。例えば、第１の点群フレーム１４０２を符号化しようとするクライアント装置等のシステムは５００ギガバイトのデータを符号化する必要があり得るため、そうするための時間及びリソースが浪費され得る。そのため、点群媒体の特定のフレームを符号化するために境界ボックス、例えば、境界ボックス１４０８に依拠する異なる符号化技術が必要になる。以下で説明するように、境界ボックス表現は、システムが点群媒体の単一フレームを圧縮フォーマットで符号化できるようにする。
【００９９】
一部の実施では、点群媒体のフレームはビデオベースの点群圧縮（Ｖ―ＰＣＣ）コーダを用いて符号化される。Ｖ−ＰＣＣコーダは、点群媒体のフレームを三次元パッチのセットにセグメント化することに基づいて動作する。三次元パッチは三次元の境界ボックスによって提示され、送信のために操作される。これについて以下でさらに説明する。
【０１００】
図１５は、三次元パッチ境界ボックスを二次元パッチ投影にする変換プロセス１５００の一例である。一部の実施では、変換プロセス１５００は、Ｖ−ＰＣＣ符号化ソリューションを用いるＶ−ＰＣＣエンコーダによって行われる。
【０１０１】
Ｖ―ＰＣＣ符号化ソリューションの間、Ｖ―ＰＣＣエンコーダは三次元境界ボックスを用いて点群媒体のフレームを符号化する。一般に、一連の点が繰り返されて境界ボックスに投影され、その後にパッチが平滑連続面基準（smoothness  continuous  surface  criteria）の定義に基づいてセグメント化される。各パッチは特定且つ一意のインデックス及び対応する３−Ｄ座標に対応する。さらに、一致したパッチのリストは、リスト内のそれらの順序が同様であることを確実にするために存在し、このリスト内の一致したパッチは同じインデックスを有する。
【０１０２】
先ず、３−Ｄ点群媒体のフレームが１つ以上の三次元（３−Ｄ）パッチ境界ボックス１５０４等の一組の３−Ｄパッチ境界ボックス又はセグメンテーションにセグメント化される。３−Ｄパッチ境界ボックス１５０４は、ｕ１、ｖ１、ｄ１、ｕ１のサイズ、ｖ１のサイズ及びｄ１のサイズというパラメータを含む。３−Ｄパッチ境界ボックス１５０４のパラメータは、点群３Ｄ境界ボックス１５０２内の３−Ｄパッチ境界ボックス１５０４のサイズ及び配置を示す。一部の実施では、システムは、フレーム内のオブジェクトをカバーするために、点群媒体のフレーム全体のために複数の３−Ｄパッチ境界ボックスを生成する。一部の実施では、各３−Ｄパッチ境界ボックスは互いに近接して配置され得る。一部の実施では、各３−Ｄパッチ境界ボックスは、点群３−Ｄ境界ボックス１５０２内のオブジェクトをカバーする場合に互いに重なり得る。
【０１０３】
次に、Ｖ−ＰＣＣエンコーダは、３−Ｄパッチ境界ボックス１５０４等の３−Ｄパッチ境界ボックスのそれぞれについて、点群３−Ｄ境界ボックス１５０２の側面のうちの１つとして投影面１５０８を定義する。Ｖ−ＰＣＣエンコーダは投影面の選択するための基準を定義する。例えば、基準は、３−Ｄパッチ境界ボックス１５０４の両側の平滑連続面基準の定義を含む。投影面は、平滑連続面基準が３−Ｄ境界ボックス１５０２の側面に投影される投影３−Ｄパッチ境界ボックス１５０４の領域（area）であり、投影のための各方向の間の最大の領域を含む場合に選択される。例えば、平滑連続面は、１つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭な又はブロックされたデータポイントの量が最も少ない面として定義できる。次に、Ｖ−ＰＣＣエンコーダはあらゆる方向から平滑面のそれぞれを比較して、どの方向が３−Ｄ境界ボックス１５０２の側面上で最も大きい領域を含み得る２−Ｄ境界ボックスを生成し得るかを決定する。
【０１０４】
システム１５００に示すように、投影面１５０８は、最大領域を有するように３Ｄパッチ境界ボックス１５０４の平行投影の領域に対応する。別の言い方をすれば、Ｖ−ＰＣＣエンコーダが投影面１５０８と反対の側（例えば、側面１５０５）から３−Ｄパッチ境界ボックス１５０４を見た場合、Ｖ−ＰＣＣエンコーダは、パッチ３−Ｄ境界ボックス１５０４に含まれる属性ポイントが投影面１５０８に投影された場合に、その投影が点群３−Ｄ境界ボックス１５０２の他の側面に投影される際に最大の領域を呈し得ると判定し得る。点群３−Ｄ境界ボックス１５０２内に含まれる点群媒体のフレームは静止し、動いていないため、Ｖ−ＰＣＣエンコーダは、点群３−Ｄ境界ボックス１５０２の両側からの投影を分析して、どの投影が最大領域を含むか特定できる。そのため、Ｖ−ＰＣＣエンコーダは、投影面１５０８が、パッチ３−Ｄ境界ボックス１５０４からの属性の投影のために最大領域を生成し得ると判断する。したがって、投影がパッチ２−Ｄ投影境界ボックス１５０６内に表示される。パッチ２−Ｄ投影境界ボックス１５０６は境界ボックスの近位層及び遠位層（near  layer  and  far  layer）上のｕ及びｖ座標により定義される。例えば、図１７は、深度画像１７０８及び１７１２の近位層１７０４及び遠位層１７０６並びに属性画像１７１０及び１７１４を示す。
【０１０５】
投影面、例えば投影面１５０８が一度選択されると、パッチ３−Ｄ境界ボックス１５０４に垂直な軸が描かれるため、Ｖ−ＰＣＣエンコーダは投影の方向を知っている。例えば、Ｖ−ＰＣＣエンコーダは、投影面１５０８に対して、点群３−Ｄ境界ボックス１５０２内で「ｎ」で示される垂直又は直交する軸を描く。加えて、Ｖ−ＰＣＣエンコーダは、パッチ３−Ｄ境界ボックス１５０４に対して、点群３−Ｄ境界ボックス１５０２内で「ｂｔ」及び「ｔ」で示される接線及び従法線の軸を生成する。Ｖ−ＰＣＣエンコーダが点群３−Ｄ境界ボックス１５０２内に垂直、接線及び従法線の軸を描くことに対応して、パッチ３−Ｄ境界ボックス１５０４上の従法線軸と直交軸との間に右側３−Ｄ座標系が生成される。
【０１０６】
その時点で、Ｖ−ＰＣＣエンコーダは、垂線軸「ｎ」に沿って点群３−Ｄ境界ボックス１５０２の投影面１５０８にパッチ３−Ｄ境界ボックス１５０４を投影する。プロセス１５００に示すように、投影の結果は点群３−Ｄ境界ボックス１５０２の特定の側上への２次元（２−Ｄ）投影１５０６である。
【０１０７】
一部の実施では、点群媒体のフレームの３−Ｄ投影は、点群３−Ｄ境界ボックス１５０２の両側に投影される。フレームが点群３−Ｄ境界ボックス１５０２の側面上に投影されると、２−Ｄ境界ボックスのための一組の座標を得ることができる。２−Ｄ境界ボックスのための一組の座標は、例えばｕ０、ｖ０、ｓｉｚｅ＿ｕ０、ｓｉｚｅ＿ｖ０を含む。境界ボックス１５１０に示すように、Ｖ−ＰＣＣエンコーダは、境界ボックス１５１０内の点群の面を投影面１５１２上に投影する。
【０１０８】
図１６は、３−Ｄから２−Ｄパッチ投影の結果を示すシステム１６００の一例である。システム１６００は、境界ボックス１６０２の両側に２−Ｄパッチ投影がされた境界ボックス１６０２を示す。境界ボックスの両側への投影は、システム１５００に関連して説明したようにパッチの直交方向に基づく。各２−Ｄパッチ投影は、パッチの２−Ｄ投影の２−Ｄ座標を記述するパッチインデックス、ｕ０、ｖ０、ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０を含む。パッチインデックスは、対応する境界ボックス１６０２の特定の側に関連する特定のパッチを特定する。Ｕ０は投影面上のパッチのＸ座標を定義する。Ｖ０は投影面上のパッチのＹ座標を定義する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、パッチｕ０及びｖ０の各座標に対応する大きさをそれぞれ記述する。
【０１０９】
境界ボックス１６０２上に投影されたパッチは「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する特定のパッチに対応する。
【０１１０】
境界ボックス１６０２上に投影マップを生成することに加えて、システムはメモリにパッチ２−Ｄ及び３−Ｄデータを記憶する。例えば、以下に示すコードはパッチを生成し且つ２−Ｄ及び３−Ｄパッチデータをビデオ符号化のための補足データとして記憶するための１つの例示のソリューションを提供する。
【０１１１】
【表１】
2022502961.tif 000003
ビデオ符号化のための補足情報生成
上述のコードは「パッチ」の定義；パッチ３−Ｄ情報がどのように２−Ｄパッチ情報に移行されるか；投影プロセス；及び再構成プロセスを示す。とりわけ、これらのフレームが２−Ｄ投影の観点からどのように解釈されるかを示す。
【０１１２】
加えて、フレーム内の各パッチについて、Ｖ−ＰＣＣエンコーダは投影マップを生成する。投影マップはビデオエンコーダに提供される追加のテキストファイルを含む。特定のパッチのための２−Ｄデータ、例えばｕ０、ｖ０は投影のＸ座標及びＹ座標の左上隅に対応する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、対応するパッチの高さ及び幅に対応する。３−Ｄパッチ投影データでは、投影マップはＸ、Ｙ及びＺ軸に対応するｕ１、ｖ１、ｄ１座標を含む。とりわけ、ｕ１、ｖ１及びｄ１は投影の面のインデックス又は垂直軸に対応する投影の面に対応する。例えば、システム１６００に示すように、境界ボックス１６０２の各側面は自体のインデックスを含む。そのため、各インデックスは特定の投影軸を表す。これに関して、ｕ１、ｖ１及びｄ１は境界ボックス１６０２に示すＸ、Ｙ及びＺ座標の再構成である。
【０１１３】
一部の実施では、ｕ１、ｖ１及びｄ１座標はローカル座標系に対応する。Ｘ、Ｙ及びＺ座標はグローバル座標系に対応する。例えば、垂直軸が決定された場合（投影の軸に対応）、Ｖ−ＰＣＣエンコーダは３−Ｄ空間内でＺ軸と整列させるために投影の軸を回転させることができる。この時点で、Ｖ−ＰＣＣエンコーダはローカル座標系とグローバル座標系との間で変換できる。
【０１１４】
提案したソリューションは、ビデオ圧縮技術におけるビデオ圧縮ソリューションへの追加の入力として用いられる補助情報に基づく動き補償のための追加の動きベクトル候補も提供する。
アルゴリズム：３Ｄデータのための強化動き推定
１．ＰＣＣエンコーダは、パッチインデックスリスト及び対応する３ｄ座標を提供することにより補助情報から追加の参照フレームを生成する。
２．既存のフレーム及び補助ファイルからの対応データを分析することにより、ビデオ圧縮ソリューションにおける２ｄドメインのためにｍｖ候補リストに追加の動きベクトル候補が生成される。
while
patch i in frame k, k, =1, 2,…, GOP-1, do
while
patch j of Patches in reference frame, do
if(occupancymap)
add
patch 3d coordinates to prediction list
do
3D motion search for patches in 3d coordinates list
end
while
end while
３．ＧＯＰフレーム内の各フレームのためにｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｕｒｓ候補を精緻化
４．ＧＯＰフレーム内の各フレームのためにｍｅｒｇｅＣａｎｄｉｄａｔｅＬｉｓｔを精緻化
５．ビデオベース圧縮エンジン
【０１１５】
図１７は、点群媒体の属性セグメンテーションのためのシステム１７００の一例である。各３−Ｄ点群のための２−Ｄパッチが投影から生成されると、一組の画像が、パッチタイルグループ内の２−Ｄパッチのそれぞれのために生成される。システム１７００は、３−Ｄから２−Ｄ投影の間に深度及び属性情報が失われるため、パッチタイルグループ内の２−Ｄパッチのそれぞれパッチのために一組の画像を生成する。一組の画像は、投影が起こる前の点群媒体に対応する深度及び属性情報を保存するために生成される。
【０１１６】
一部の実施では、パッチタイルグループはパッチ１７０２を含む。システムは、特定のパッチ１７０２から２組の画像を生成する。第１の組の画像は近位層１７０４を含む。第２の組の画像は遠位層１７１２を含む。近位層１７０４は、深度データの画像１７０８及び属性データの画像１７１０を含む。加えて、遠位層１７０６は深度データの画像１７１２及び属性データの画像１７１２を含む。そのため、２−Ｄ投影の全て点は、深度情報及び属性情報、例えば、色、テクスチャ、ルマ等を有する。特定の層、例えば、近位層１７０４及び遠位層１７０６は３−Ｄ点群オブジェクトの２−Ｄ投影の両側を示す。
【０１１７】
図１８は、属性情報を有する点群媒体のためのパッキングパッチを示すシステム１８００の一例である。一部の実施では、属性情報はテクスチャ情報、深度情報、カラー情報、ルマ、反射率及びクロマ情報を含むことができる。パッケージ化されたパッチグループ１８０２は、点群媒体１４０２のフレーム等の点群媒体のフレームからの１つ以上の投影されたパッチ、２−Ｄフレームを示す。パッチの集合はパッチタイルグループを形成し、パッチタイルグループは点群媒体の所定のフレームに対してパッチデータグループに組み合わされる。「パッチ」と呼ばれるパッチデータグループの各要素は特定且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する。パッケージ化されたパッチ１８０２は符号化され、その後に送信できる。とりわけ、１つの点群フレーム内のパッチが、参照点群フレーム、例えば、先のフレーム内の対応参照パッチを有する場合、参照パッチタイルグループ内の参照パッチのインデックスがビットストリームに送信される。これについて以下でさらに説明する。
【０１１８】
図１９は、動き推定を行うためのシステム１９００の一例である。従来のビデオ圧縮ソリューションでは、動き推定プロセスを用いて、２−Ｄ投影画像、例えばパッチからのデータが推定される。システム１９００はこの動き推定プロセスを示す。ブロック１９０２に示す符号化及び復号化ブロックはエンコーダを用いて動き推定を生成し、データ遷移チャネル又はストレージを介して動き推定を送信し、送信された動き推定をデコーダで復号化する。結果は新たなに復元されたフレームである。
【０１１９】
ブロック１９０４は動き推定プロセスの説明を示す。例えば、エンコーダは参照フレーム内の同様のパッチ画像の予測因子を生成する。参照フレームは、例えば先のフレームであり得る。一部の実施では、エンコーダは、参照フレームと現在のフレームとの間のサンプルの値を比較することにより類似性を特定する。サンプルの値は、例えば属性及び場所によって異なり得る。このプロセスは動き推定と呼ばれ、現在のフレーム内の画像に似た参照フレーム内の対応する画像を見つけることを目的とする。エンコーダは、参照フレームの隣接ピクセル内でピクセルを探索する。一致する画像が見つかった場合、エンコーダは、現在及び参照フレームから各画像を具体的に符号化することなく、より少ない量の情報を必要とする類似性を符号化する。全体的に、これは送信のための帯域幅を低減する。そのため、エンコーダは、同様の画像について現在及び先のフレームを解析する。現在のフレームと参照（先の）フレームとの間の各画像について属性及び位置情報に関連する精緻化データ（refinement  data）を特定する。次いで、エンコーダは、現在のフレーム及び将来の予測フレームについて精緻化データを符号化する。これは、通常、２−Ｄモーションビデオ又は２−Ｄ画像を送信するために用いられる。
【０１２０】
パッチパッキング法の詳細により、各点群媒体についての投影フレーム内のパッチの位置は大きく異なり得る。そのため、異なるフレーム間で、パッチは、ある位置から別の位置に、例えば３−Ｄ境界ボックスの異なる側にわたってジャンプできる。そのため、２−Ｄモーションビデオ又は２−Ｄ画像のために典型的に用いられる相互予測符号化アルゴリズムにおけるパッチングの位置を用いる予測動き推定は満たすことができないため、適切に符号化及び送信されない。したがって、ブロック１９０２及び１９０４は有用であるが、パッチデータグループを用いて動き推定データを送信するために強化を必要とする。したがって、以下で説明する技術は、動きベクトル候補リストに補助情報を加えることにより、２−Ｄパッチデータのための動き推定を用いる予測の使用を強化する。
【０１２１】
送信すべき２−Ｄパッチ間の時間的予測の場合、送信の間に最大圧縮効率を確実にするために、有効な動きベクトル候補が同様のパッチのために供給される。既存の動きベクトル候補リスト構築法は、以下にさらに説明するように、既存の候補を置き換えるか又はパッチ補助情報から生成される追加の候補を導入することにより改善され得る。
【０１２２】
一部の実施では、フレーム内の特定のパッチは、パッチメタデータにより点群媒体内の３−Ｄ座標に接続される特定の２−Ｄ座標を有する。パッチデータ（「補助情報」ともいう）は、パッチの対応する３−Ｄ位置及び２−Ｄ面上の関連する投影位置に基づく。一部の実施では、補助情報又はパッチメタデータは、パッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含むことができる。ｕ０及びｖ０は、２−Ｄ投影のパッチの左上隅に対応する。ｕ１、ｖ１及びｄ１は、３−Ｄドメイン内のＸ、Ｙ及びＺ座標を表す。そのため、ｕ０及びｖ０の座標は、ｕ１、ｖ１、及びｄ１座標に接続される。接続は、ｕ１、ｖ１、ｄ１座標とｕ０、ｖ０座標との数学的関係に基づく。２−Ｄ及び３−Ｄ座標間のこの接続は、動きベクトル候補の生成、ベクトル候補リストの更新及び動きベクトル探索プロセスの更新のために用いることができる。
【０１２３】
図２０は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。クライアント装置のエンコーダ、例えばＶ−ＰＣＣエンコーダは、先に符号化された参照フレームに対して現在のパッチフレームを解析する。エンコーダは先に符号化された参照フレームを最初に符号化してそれを現在のフレームと比較しなければならない。次に、エンコーダは、予測因子ユニット（ＰＵ）と呼ばれる１つ以上の小さなブロックに現在のパッチフレームを与える。各ＰＵに記憶される情報の量は大きいことから、送信する際の情報量を減らすためにエンコーダは差分符号化方法に依存する。エンコーダは残差フレームを生成する。例えば、（参照フレームのパッチに属する）予測因子ユニットＰＵは、残差フレームを生成するために、（現在のフレームに属する）現在のＰＵから差し引かれる（例えば、現在のＰＵ−予測因子ユニットＰＵ）。その後、エンコーダは送信のために用いられる残差フレームのみを符号化する。例えば、下記のコードはこのプロセスを記述する。
１．現在のフレームをＮ個のＰＵブロックに分割
２．現在の補助フレームからPU_pred候補リストを生成
３．ｉ＝０〜Ｎ−１の場合
PU_cur[i]の左上隅の(x,y)座標を取得し
参照画像内の予測因子PU_predの探索を行い
cost[k]
= max
while
cost[k] > minCost[k-1] do
cost[k]
=  (PU_cur[i] - PU_pred[k]) +  lambda * BitSize
ビットストリームに符号化：
MV
= PU_cur[i](x,y) - PU_pred[k](x,y)
ResidualUnit
= Transform(PU_cur[i]-PU_pred[k])
上記のコードは、レート歪み問題最小化に基づくモード選択の符号化のためのプロセスを記述する。一部の実施では、エンコーダは、先に符号化された参照フレーム内の予測因子ユニットＰＵを探索し、残差を符号化するために必要なビットの量に関して、値を現在のＰＵに一致するための探索を行う。予測因子ユニットＰＵを選択するためのプロセスはレート歪み最小化問題を含み、レートは符号化された残差のビットサイズに対応し、歪みは、残差の原点からの距離に対応する残差のＬ２ノルムに対応する。次に、エンコーダは残差情報及び対応する変位情報を符号化し、これが動きベクトルになる。しかしながら、この実施には点群媒体を符号化し且つ送信する場合に強化が必要となる。
【０１２４】
エンコーダは、パッチデータに含まれる追加の補助情報を見直すことにより強化される。現在のフレームの場合、補助情報は現在の２−Ｄパッチ及び対応する３−Ｄ点群から生成される。参照フレームの場合、補助情報は先に符号化された参照２−Ｄパッチ及び対応する３−Ｄ点群から生成される。エンコーダは、現在のフレームのパッチからの補助情報、例えばｕ０、ｖ０、ｕ１、ｖ１及びｄ１を、参照フレームのパッチからの補助情報、例えばｕ０、ｖ０、ｕ１、ｖ１及びｄ１とを比較することによりブロック位置を予測できる。この比較により、それらの補助的な情報に基づくパッチ間の距離がもたらされる。
【０１２５】
一部の実施では、エンコーダは先ず３−Ｄ差分を決定する。３−Ｄ差分は、ＣＵの開始ピクセルの３−Ｄ位置が異なり得るため、現在の補助情報フレームと参照補助情報フレームとの間の３−Ｄ差分に対応する。方程式は以下を含む。
【０１２６】
【数１】
2022502961.tif 000004
2022502961.tif 000005
次に、エンコーダは２−Ｄ差分を算出する。２―Ｄ差分は、占有ブロック解像度（occupancy
2022502961.tif 000006
block
2022502961.tif 000007
resolution）（ＯＢＲ）を考慮して、現在の補助情報フレームと参照補助情報フレームとの間の２―Ｄ差分に対応する。ＯＢＲは、パッチ投影サイズに対するパッチデータグループ内の座標のスケールに対応する。例えば、パッチ幅は、ＯＢＲを乗じたパッチ投影サイズに等しい。次に、エンコーダは、２−Ｄドメイン内に動きベクトルを生成する。方適式は以下を含む。
【０１２７】
【数２】
2022502961.tif 000008
最終的に導出された動きベクトルは、これら２つ動きベクトル成分の組み合わせである。例えば、最終的に導出された動きベクトルは以下に対応する。
【０１２８】
【数３】
2022502961.tif 000009
非標準的なソリューション（non-normative  solution）では、動きベクトル（ＭＶ）を探索範囲の中心の候補として推定される。導出された推定ＭＶを候補として加えた後、エンコーダは、ＲＤＯを用いて分割２Ｎ×２Ｎから予測ＭＶ、ゼロＭＶ、推定ＭＶ及びＭＶを選択して探索範囲の中心を決定する。推定ＭＶが最小レート歪（Ｒ−Ｄ）コストを有する場合、それがビデオ圧縮のために用いられる。
【０１２９】
図２１は、マージ候補リスト構築のための導出プロセス２１００を示す。一部の実施では、予測ユニットがマージモードを用いて予測される場合、マージ候補リスト内のエントリを指すインデックスがビットストリームからパースされ、動き情報を読み出すために用いられる。このリストの構築はＨＥＶＣ規格で規定されており、以下の一連のステップに従って要約できる。
ステップ１：初期候補の導出
ステップ１．１：空間的候補の導出
ステップ１．２：空間候補のための冗長性チェック
ステップ１．３：時間的候補の導出
ステップ２：追加候補の挿入
ステップ２．１：双方向予測候補の作成
ステップ２．２：ゼロ動き候補の挿入
これらのステップも図２１に概略的に示される。空間的マージ候補の導出の場合、５つの異なる位置に位置する候補の中から最大で４つのマージ候補が選択される。時間的マージ候補導出の場合、２つの候補の中から最大で１つのマージ候補が選択される。各予測ユニットの候補の定数がデコーダで仮定されるため、スライスヘッダにシグナリングされるマージ候補の最大数（ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ）に候補の数が達しない場合に追加候補が生成される。候補の数は一定であるため、トランケートユーナリ符号化（ＴＵ）を用いて最良のマージ候補のインデックスが符号化される。ＣＵのサイズが８に等しい場合、現在のＣＵの全てのＰＵは単一のマージ候補リストを共有し、これは２Ｎ×２Ｎ予測ユニットのマージ候補リストと同一である。
【０１３０】
以下では、上述のステップに関連する動作を詳述する。
【０１３１】
図２２は、空間的マージ候補の冗長性チェックのために考慮される、空間的マージ候補及び候補対の位置のシステム２２００を示す。空間的マージ候補の導出では、図２２に示す位置に位置する候補の中から最大で４つのマージ候補が選択される。導出の順序はＡ１、Ｂ１、Ｂ０、Ａ０及びＢ２である。位置Ｂ２は、位置Ａ１、Ｂ１、Ｂ０、Ａ０のいずれのＰＵも利用できない場合（例えば、それが別のスライス又はタイルに属するため）又はイントラ符号化されている場合にのみ考慮される。位置Ａ１にある候補が追加された後、残りの候補の追加は冗長性チェックの対象となり、これにより同じ動き情報を持つ候補がリストから除外され、符号化効率が改善されることが保証される。計算の複雑性を低減するために、前述の冗長性チェックでは可能性のある全ての候補対が考慮されているわけではない。その代わりに、図２２において矢印でリンクされた対のみが考慮され、冗長性チェックに用いられる対応する候補が同じ動き情報を持たない場合にのみ候補がリストに加えられる。重複動き情報の別のソースは、２Ｎ×２Ｎとは異なるパーティションに関連する「第２のＰＵ」である。一例として、図２２は、それぞれ、Ｎ×２Ｎ及び２Ｎ×Ｎの場合の第２のＰＵをそれぞれ示す。現在のＰＵがＮ×２Ｎとして分割されている場合、位置Ａ１における候補はリスト構築のために考慮されない。実際、この候補を加えることによって、同じ動きの情報を持つ２つの予測ユニットが得られる。これは、符号化ユニットに１つのＰＵを持つだけで冗長である。同様に、現在のＰＵが２Ｎ×Ｎとして分割されている場合、位置Ｂ１は考慮されない。
【０１３２】
図２３は、Ｎ×２Ｎ及び２Ｎ×Ｎパーティションの第２のＰＵのための位置を示すシステム２３００を示す。とりわけ、システム２３００は時間的候補導出プロセスを記述する。このステップでは、１つの候補のみがリストに加えられる。とりわけ、この時間的マージ候補の導出では、所与の参照ピクチャリスト内の現在のピクチャとのＰＯＣ差分が最小のピクチャに属する同一位置にある（co-located）ＰＵに基づいてスケーリングされた動きベクトルが導出される。同一位置にあるＰＵの導出に用いられる参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補のためのスケーリングされた動きベクトルは、図２４（システム２４００）で点線によって示すように得られ、これは、ＰＯＣ距離、ｔｂ及びｔｄを用いて同一位置にあるＰＵの動きベクトルからスケーリングされており、ここで、ｔｂは、現在のピクチャの参照ピクチャと現在のピクチャとの間のＰＯＣ差分として定義され、ｔｄは同一位置にあるピクチャの参照ピクチャと、同一位置にあるピクチャとの間のＰＯＣ差分として定義される。時間的マージ候補の参照ピクチャインデックスはゼロに設定される。Ｂ−スライスの場合、２つの動きベクトル（一方は参照ピクチャリスト０のためのものであり、他方は参照ピクチャリスト１のためのもの）が得られ、組み合わされて双方向予測マージ候補が作成される。
【０１３３】
図２５は、時間的マージ候補の候補位置を示すシステム２５００である。参照フレームに属する同一位置にあるＰＵ（Ｙ）では、システム２５００に示すように、時間的候補のための位置が候補Ｃ０及びＣ１の間で選択される。Ｃ０の位置にあるＰＵが利用可能でないか、イントラ符号化されているか又は現在のＣＴＵの外にある場合には位置Ｃ１が用いられる。それ以外の場合では位置Ｃ０が時間的マージ候補の導出に用いられる。
【０１３４】
空間−時間的マージ候補の他に、複合双方向予測マージ候補（combined  bi-predictive  merge  candidate）及びゼロマージ候補の２つのさらなる種類のマージ候補が存在する。複合双方向予測マージ候補は空間−時間的マージ候補を利用することにより生成される。複合双方向予測マージ候補はＢ−スライスのみに用いられる。複合双方向予測候補は、初期候補の第１の参照ピクチャリスト動きパラメータと、別の候補の第２の参照ピクチャリスト動きパラメータとを組み合わせることにより生成される。これらの２つのタプルが異なる動き仮説を提供する場合、それらは新たな双方向予測候補を形成する。一例として、システム２５００は、ｍｖＬ０及びｒｅｆＩｄｘＬ０又はｍｖＬ１及びｒｅｆＩｄｘＬ１を有する（左側の）元のリスト内の２つの候補が、（右側の）最終リストに加えられた複合双方向予測マージ候補を作成するために用いられる場合を示す。これらの追加のマージ候補を生成すると考えられる組み合わせに関する数多くの規則が存在する。
【０１３５】
図２６は、複合双方向予測マージ候補の例示の表２６００を示す。マージ候補リストの残りのエントリを埋めるためにゼロ動き候補が挿入されるため、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ容量に達している。これらの候補はゼロ空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される毎に増加する参照ピクチャインデックスとを有する。これらの候補によって用いられる参照フレームの数は、一方向及び双方向予測の場合にそれぞれ１及び２である。最後に、これらの候補に対しては冗長性チェックが行われない。
【０１３６】
図２７は、補助データを用いた動き推定パイプラインの変更を含むシステム２７００の一例である。システム２７００は、システム１９００におけるコンポーネント１９０２に示される動き推定パイプラインのエンコーダ部分に対する追加のコンポーネントを示す。例えば、システム２０００は補助フレーム２００２（パッチフレームデータユニット又はパッチフレームデータグループとも呼ばれる）を含む。システム２７００は、新たなフレーム２７０４、動き推定コンポーネント２７０６、動きエントロピーコーダ２７０８、動き補償補間２７１０、減算モジュール２７１２、残差エンコーダ２０１４、残差デコーダ２０１６及び加算器２０１８も含む。
【０１３７】
動き推定コンポーネント２７０６は、残差デコーダ２７１６及び加算器２７１８から、補助フレーム２７０２、新たなフレーム２７０４及び先に符号化された（現在復号化されている）残差フレームを受信する。
【０１３８】
一部の実施では、動き推定コンポーネント２７０６が、フレームのためのパッチデータを含む新たなフレーム２７０４を受信すると、動き推定コンポーネント２７０６は、ａｕｘフレーム２７０２内のパッチに関連する３−Ｄ座標を比較する。これは、各ａｕｘフレーム２７０２は、パッチデータの２−Ｄ座標と境界ボックス内の点群媒体の３−Ｄ座標との間の転移を説明する自身のパッチメタデータ（又は補助データ）を含むからである。とりわけ、動き推定２７０６は、ａｕｘフレーム２７０２内のパッチメタデータを用いて参照フレームを生成する。次に、現在のフレーム、例えば新たなフレーム２７０４からの現在の３−Ｄ情報及び先のフレーム、例えば参照フレームからの３−Ｄ情報を用いてパッチの位置を特定できる。例えば、動き推定２７０６は、新たなフレーム２７０４内のこのパッチは参照フレーム内の別のパッチと同じ３−Ｄ座標内の位置から生じると特定でき、参照フレーム内のパッチは新たなフレーム２７０４内の異なる２−Ｄ位置に位置する。
【０１３９】
次に、動き推定コンポーネント２７０６は新たなフレーム２７０４内の各パッチに対してこのプロセスを実行し、２−Ｄ情報を取り出して対応する３−Ｄ情報を得る。動き推定コンポーネント２７０６は、ａｕｘフレーム２７０２内のパッチのための２−Ｄ情報を取得する。動き推定コンポーネント２７０６は、新たなフレーム２７０４内のパッチの２−Ｄ情報及びａｕｘフレーム２７０２内のパッチの２−Ｄ情報を用いて、例えば、新たなフレーム２７０４からのパッチのｕ０及びｖ０位置座標をａｕｘフレーム２７０２内のパッチのｕ０及びｖ０位置座標と比較することにより、これらの２つのパッチ間の２―Ｄ距離を求め、その後にパッチがどのようにしてａｕｘフレーム２７０２内のその位置から新たなフレーム２７０４内の位置に２−Ｄで移動したかを特定できる。ａｕｘフレーム２７０２内のパッチのｕ０、ｖ０と新たなフレーム２７０４内のパッチのｕ０、ｖ０との間のこの差分は動きベクトル候補に対応する。動き推定コンポーネント２７０６は、この生成された動きベクトル候補を動きベクトル候補リストに挿入する。動き推定コンポーネント２７０６は、新たなフレーム２７０４内の各パッチをａｕｘフレーム２７０２内の各パッチと比較するこのプロセスを行う。一致が起きた場合、これらの一致したパッチ間の２−Ｄ座標間の差分が動きベクトル候補リストに加えられる。
【０１４０】
一部の実施では、動きベクトル候補が動きベクトル候補リストに追加されると、３−Ｄ座標リスト内のパッチに対して３−Ｄ動き探索が行われる。
【０１４１】
一部の実施では、エンコーダはフィールドネイバーの（field  neighbor’s）候補リストを含む。フィールドネイバーの候補リストは、２−Ｄ画像内の動きを見直すための可能な位置を含むことができる。動き推定コンポーネント２７０６は、各パッチフレームのためにフィールドネイバー候補リスト内の位置を精緻化できる。
【０１４２】
補助情報を用いて参照フレーム内で一致するパッチを探すプロセスを下記のコードに示す。例えば、既存のパッチを用いて、補助３−Ｄ情報ファイルからの２−Ｄ及び３−Ｄ情報は、参照フレームのための点群圧縮ソリューションバッファから生成される。例えば、コードは下記を含む。
【０１４３】
【表２】
2022502961.tif 000010
2022502961.tif 000011
上述のコードでは、Ｖ−ＰＣＣエンコーダはビデオエンコーダのために参照フレーム内の一致したパッチを探索する。Ｖ−ＰＣＣエンコーダは、各フレーム内のパッチに対応する同じ２−Ｄ及び３−Ｄ情報並びに図１６に関して説明した投影情報を用いる。このステップでは、Ｖ―ＰＣＣエンコーダは、動き精密化のために新たな候補を生成する。このアルゴリズムは次のように実行される。Ｖ−ＰＣＣエンコーダがフレームグループ内の各フレームをループする。Ｖ−ＰＣＣエンコーダは、特定の参照フレームからのパッチリストからパッチを取り出す。その後、Ｖ−ＰＣＣエンコーダは、現在のフレームから特定のパッチを取り出す。
【０１４４】
Ｖ―ＰＣＣエンコーダは、動きベクトル候補に基づいてレート歪最適化におけるコストを推定する。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小量のコストに対応する。とりわけ、最小量のコストは、Ｘ差分、Ｙ差分及びＺ差分の２乗値の合計に対応する。例えば、参照フレーム内のパッチのＸ座標が現在のフレーム内のパッチのＸ座標から減算されてＸ差分（「Ｘｄｉｆ」）が生成され、参照フレーム内のパッチのＹ座標が現在のフレーム内のパッチのＹ座標から減算されてＹ差分（「Ｙｄｉｆ」）が生成され、参照フレーム内のパッチのＺ座標が現在のフレーム内のパッチのＺ座標から減算されてＺ差分（「Ｚｄｉｆ」）が生成される。次に、ＰＣＣエンコーダは、参照フレーム内のパッチと現在のフレーム内のパッチとの間の特定の距離を生成するために、Ｘｄｉｆ、Ｙｄｉｆ及びＺｄｉｆの２乗を合計する。
【０１４５】
レート歪み最適化におけるコストを推定するこのプロセスは、最小コスト又は距離が見つかるまで繰り返される。最小コスト又は距離が見つかった場合、ｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｒｓ変数は、Ｘ座標、Ｙ座標及び参照フレームからのパッチに関連する正しいパッチに対応する最小コスト値で更新される。
【０１４６】
次に、Ｖ―ＰＣＣエンコーダは、精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための３−Ｄ情報と、投影画像内の対応する２−Ｄパッチ位置とに基づいて更新される。加えて、マージ候補リストは、パッチのための３−Ｄ情報と、投影画像内の対応する２−Ｄ位置とに基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する２−Ｄパッチを受信した場合にＶ−ＰＣＣエンコーダによって生成される。動きベクトル候補リストは、「ビデオ符号化のための補助情報生成」コードセットにしたがって生成される。Ｖ−ＰＣＣエンコーダ及びＶ−ＰＣＣデコーダの双方は、動きベクトル候補リストを生成するために「ビデオ符号化のための補助情報生成」を行う。そのため、Ｖ−ＰＣＣエンコーダとＶ−ＰＣＣデコーダとの間で送信すべき追加の動きベクトル候補リストや他の情報が必要とされない。
【０１４７】
一部の実施では、点群符号化ビットストリームから補助情報ファイルが生成される。点群符号化ビットストリームを以下にさらに説明及び図示する。補助情報は、Ｖ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダが同じ結果を生成することを確実するために双方が同じ方法を用いるＶ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダの双方で新たな動きベクトル候補を生成するために用いられる。補助情報を用いることにより、Ｖ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダは新たな動きベクトル候補及びマージ候補リスト入力を生成した。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化／復号化技術に提供される。
【０１４８】
図２８は、Ｖ−ＰＣＣユニットペイロードを表すパケットストリーム２８００の一例である。パケットストリーム２８００はＶ−ＰＣＣビットストリーム２８０２を含む。Ｖ−ＰＣＣビットストリーム２８０２は１つ以上のＶ−ＰＣＣユニットを含む。例えば、Ｖ−ＰＣＣユニット２８０４はＶ−ＰＣＣユニットヘッダ２８０６及びＶ−ＰＣＣユニットペイロード２８０８を含む。Ｖ−ＰＣＣユニットペイロード２８０８は、シーケンスパラメータセット２８１０、パッチデータグループ２８１２、占有ビデオデータ２８１４、幾何学的ビデオデータ２８１８及び属性ビデオデータ２８１６を含む。占有ビデオデータ２８１４は２−Ｄフレームデータを含む。属性ビデオデータ２８１６は２つの２−Ｄフレームのセット、例えば近位層及び遠位層を含む。幾何学的ビデオデータ２８１８も２つの２−Ｄフレームのセット、例えば近位層及び遠位層を含む。
【０１４９】
パッチデータグループユニットタイプは複数のデータセットを含む。例えば、パッチデータグループユニットタイプ２８１２は、シーケンスパラメータセット２８２０、フレーム幾何学的パラメータセット２８２２、幾何学的パッチパラメータセット２８２６、フレームパラメータセット２８２６、フレーム属性パラメータセット及び属性パッチパラメータセット２８３０を含む。加えて、パッチデータグループユニットタイプ２８１２は複数のパッチタイルグループ２８３２を含む。上述したように、パッチタイルグループは複数のパッチを含む。例えば、パッチデータグループは、Ｔ（ｉ、０）〜Ｔ（ｉ、ｍ）のパッチタイルグループのセットを含む。情報は、Ｖ−ＰＣＣユニットペイロードの占有、属性及び幾何学的コンポーネントから点群フレームを再構成するために必要なものである。「Ｉ」は３−ＤのＰＣＣフレーム「Ｉ」に対応するパッチデータグループインデックスである。「Ｍ＋１」は３−Ｄ点群フレーム「Ｉ」のために生成される３−Ｄパッチの数であり、本明細書ではＴ（ｉ、ｊ）をパッチと呼ぶ。
【０１５０】
図２９は、Ｖ−ＰＣＣユニットペイロードの視覚的表現２９００の別の例である。Ｖ−ＰＣＣユニットペイロードの視覚的表現２９００に示すように、矢印は、参照フレーム／データユニットから現在のデータユニットへの予測フローを表す。近位層と遠位層の間の予測は、データの同じＶ−ＰＣＣフレーム内でのみ可能である。例えば、視覚的表現２９００は３−Ｄ点群、パッチデータグループ、近位及び遠位層の幾何学的ビデオデータ、近位及び遠位層の属性ビデオデータ及び占有ビデオデータを示す。
【０１５１】
図３０は、３Ｄ補助データを用いて動き推定を行うためのプロセス３０００の一例を示すフロー図である。プロセス３０００は、図２７に示すコンポーネントを含むＶ−ＰＣＣエンコーダ又はＶ−ＰＣＣデコーダによって行われ得る。
【０１５２】
Ｖ−ＰＣＣエンコーダは、三次元点群データの連続性データに基づいて、記録された媒体の三次元点群データのセグメンテーションを生成する（３００２）。Ｖ−ＰＣＣエンコーダは、三次元（３−Ｄ）点群データを、３−Ｄパッチ境界ボックス１５０４等の一組の３−Ｄパッチ境界ボックス又はセグメンテーションにセグメント化する。３−Ｄ点群データのフレーム内のオブジェクトをカバーするために、３−Ｄ点群データの全体に対して複数のセグメンテーションが生成され得る。各セグメンテーション又は３−Ｄパッチ境界ボックスは、オブジェクトを３−Ｄ点群データでカバーする場合互いに近接して配置され得るか又は互いに重なり合い得る。
【０１５３】
Ｖ−ＰＣＣエンコーダは、セグメント化された三次元点群データの表現を三次元境界ボックスの１つ以上の側面に投影し、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側に基づいて異なる（３００４）。Ｖ−ＰＣＣは、図１６に示す結果のように、３−Ｄ点群データの画像を３−Ｄ境界ボックスの両側に投影するために３−Ｄ点群データを３−Ｄ境界ボックスで囲む。一部の実施では、Ｖ−ＰＣＣエンコーダは、３−Ｄ境界ボックスの側面上の投影面を選択するための基準を定義する。例えば、基準は平滑連続面基準を含むことができる。そのため、平滑連続面基準が、投影の各方向の中で最大領域となる境界ボックスの側面上のセグメンテーションの投影領域を含む場合に特定の投影面が選択される。平滑連続面は、１つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭又はブロックされたデータポイントが最も少ない表面として定義できる。次に、Ｖ−ＰＣＣエンコーダは、あらゆる方向から平滑面のそれぞれを比較して、どの方向が３−Ｄ境界ボックスの側面に最大領域を含み得る投影を生成し得るかを判定する。特定の投影面が選択された場合、Ｖ−ＰＣＣエンコーダは、３−Ｄ点群データの特定の面を３−Ｄ境界ボックスの特定の投影面に投影する。一部の実施では、Ｖ−ＰＣＣエンコーダは３−Ｄ点群データの様々な面を３−Ｄ境界ボックスの両側に投影する。
【０１５４】
Ｖ−ＰＣＣエンコーダは、セグメント化された三次元点群データの投影表現に基づいて１つ以上のパッチを生成する（３００６）。画像が３−Ｄ境界ボックスの側面に投影されると、Ｖ−ＰＣＣエンコーダは各投影からパッチを生成する。３−Ｄ境界ボックスの側面の２−Ｄ境界ボックスに対応する各パッチは一組の座標を含む。パッチは３−Ｄ境界ボックスの側面の投影の領域に対応する。パッチのための座標は、例えばパッチインデックス、ｕ０、ｖ０、ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０を含む。パッチインデックスは、対応する境界ボックスの特定の側面に関連する特定のパッチを特定する。Ｕ０は投影面上のパッチのＸ座標を定義する。Ｖ０は投影平面上のパッチのＹ座標を定義する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、パッチｕ０及びｖ０の各座標に対応する大きさをそれぞれ記述する。
【０１５５】
一部の実施では、Ｖ−ＰＣＣエンコーダは３−Ｄ境界ボックスの各側面からのパッチとそれらに対応する座標情報とを組み合わせて「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定の且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する特定のパッチに対応する。例えば、パッケージ化されたパッチ１８０２は、パッチデータグループとして知られるパッチタイルグループの群を含む。
【０１５６】
パッチデータグループ内の各パッチの座標情報は投影マップに含まれる。投影マップは、後でＶ−ＰＣＣエンコーダによってビデオ符号化ソリューションに提供される追加ファイルである。投影マップは各パッチのための２−Ｄ及び３−Ｄ位置情報を含む。特定のパッチのための２−Ｄデータ、例えばｕ０、ｖ０は、投影のＸ及びＹ座標の左上隅に対応する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、対応するパッチの高さ及び幅に対応する。３−Ｄパッチ投影データの場合、投影マップはＸ、Ｙ及びＺ軸に対応するｕ１、ｖ１、ｄ１座標を含む。とりわけ、ｕ１、ｖ１及びｄ１は投影の面のインデックス又は法線軸に対応する投影の面に対応する。
【０１５７】
Ｖ−ＰＣＣエンコーダは、１つ以上のパッチの第１のフレームを生成する（３００８）。Ｖ−ＰＣＣエンコーダは、３００６から生成されたパッチデータグループのフレームを生成する。フレームは符号化され、送信のためにビデオ圧縮ソリューションに提供できる。
【０１５８】
Ｖ−ＰＣＣエンコーダは第１のフレームのために第１の補助情報を生成する（３０１０）。第１の補助情報は、第１のフレーム内の特定のパッチのためのパッチメタデータに対応する。例えば、第１の補助情報は、特定のパッチのためのパッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含むことができる。
【０１５９】
Ｖ−ＰＣＣエンコーダは、参照フレームのための第２の補助情報を生成する（３０１２）。Ｖ−ＰＣＣエンコーダは、１つ以上のパッチを含む先に符号化されたフレームである参照フレームを検索する。Ｖ−ＰＣＣエンコーダは参照フレームを復号化した後に参照フレームからパッチを取り出し、参照フレームからそのパッチに関連する補助情報を取り出す。参照フレームからのパッチに関連する補助情報は特定のパッチのためのパッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含む。
【０１６０】
Ｖ−ＰＣＣエンコーダは、第１の補助情報及び第２の補助情報に基づいて、参照フレームからの第２のパッチに一致する第１のフレームからの第１のパッチを特定する（３０１４）。Ｖ−ＰＣＣは、第１のフレームに関連する補助情報を参照からのパッチに関連する補助情報と比較する。例えば、Ｖ−ＰＣＣは、各パッチに関連するパッチインデックス、ｕ０、ｖ０、ｖ１及びｄ１を比較してこの情報間の距離を求める。Ｖ−ＰＣＣエンコーダは第１のフレームからのパッチを参照フレームからの各パッチと比較して、補助情報距離が最小の一致するパッチを見つける。距離が最小であると、Ｖ−ＰＣＣエンコーダは２つのパッチ間の一致するパッチを示す。
【０１６１】
Ｖ−ＰＣＣエンコーダは、第１の補助情報と第２の補助情報との差分に基づいて、第１のパッチと第２のパッチとの間で動きベクトル候補を生成する（３０１６）。動きベクトル候補は、それらの対応する補助情報間の差分が他のパッチと比較して最小である場合に、第１のパッチと第２のパッチとの間で生成される。動きベクトル候補は送信のために用いられる動きベクトル候補のリストに追加される。差分は、レート歪み最適化における推定コストに基づき得る。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小コストに対応する。最小コスト又は距離が見つかった場合、ｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｒｓ変数は、Ｘ座標、Ｙ座標及び参照フレームからのパッチに関連する正確なパッチに対応する最小のコスト値で更新される。
【０１６２】
Ｖ−ＰＣＣエンコーダは、動きベクトル候補を用いて動き補償を行う（３０１８）。次に、Ｖ―ＰＣＣエンコーダは精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために、動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための３−Ｄ情報及び投影画像内の対応する２−Ｄパッチ位置に基づいて更新される。加えて、マージ候補リストはパッチのための３−Ｄ情報及び投影画像内の対応する２−Ｄ位置に基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する２−Ｄパッチを受信した場合にＶ−ＰＣＣエンコーダにより生成される。動きベクトル候補リストは、「ビデオ符号化のための補足情報生成」コードセットに従って生成される。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化／復号化技術に提供される。
【０１６３】
第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間の線、トレース又は別の媒体を除いて、介在するコンポーネントが存在しない場合は第２のコンポーネントに直接連結される。第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間に線、トレース又は他の媒体以外に介在するコンポーネントが存在する場合は間接的に第２のコンポーネントに連結される。「連結される」という用語及びその変形は直接連結及び間接連結の双方を含む。「約」という用の使用は、特段規定がない限り、後続の数字の±１０％を含む範囲を意味する。
【０１６４】
本開示ではいくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく多くの他の特定の形態で実施され得ることが理解され得る。本実施例は例示的なものであって限定的ではないと考えるべきできあり、本明細書で与えられた詳細に限定することを意図していない。例えば、様々な要素又はコンポーネントは他のシステムと組み合わされるか又は統合してもよく又は特定の特徴は省略され得るか又は実施されなくてもよい。
【０１６５】
加えて、様々な実施形態で個別又は別個のものとして説明及び図示した技術、システム、サブシステム及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、技術又は方法と組み合わされ得るか又は統合され得る。変更、置換及び改変の他の例は当業者によって確認可能であり、本明細書に開示の精神及び範囲から逸脱することなく行われ得る。
【０１６６】
本明細書に記載の本発明の実施形態及び機能動作の全てはデジタル電子回路で又は本明細書に開示の構造及びそれらの構造的等価物又はそれらの１つ以上の組み合わせを含む、コンピュータソフトウェア、ファームウェア又はハードウェアで実施され得る。本発明の実施形態は、１つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又は動作を制御するためにコンピュータ読み取り可能媒体上に符号化されたコンピュータプログラム命令の１つ以上のモジュールとして実施され得る。コンピュータ読み取り可能媒体は非一時的なコンピュータ読み取り可能記憶媒体、機械読み取り可能記憶装置、機械読み取り可能記憶基板、記憶装置、機械読み取り可能伝搬信号に影響を与える物質の組成又はそれらの１つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための装置、デバイス及び機械の全てを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの１つ以上の組み合わせを構成するコードを含み得る。伝搬される信号は人工的に生成される信号、例えば、好適な受信器装置に送信するための情報を符号化するために生成される機械生成電気、光学又は電磁信号である。
【０１６７】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる）は、コンパイル又は解釈された言語を含む任意の形態のプログラミング言語で書かれていてもよく、スタンドアローンプログラムとして又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境での使用に適した他のユニットとしての形態を含む任意の形態で配備され得る。コンピュータプログラムは必ずしもファイルシステム内のファイルに対応していない。プログラムは、他のプログラム又はデータ（例えば、マークアップ言語文書に記憶される１つ以上のスクリプト）を保持するファイルの一部に、問題のプログラム専用の単一ファイルに又は複数の協調ファイル（例えば、１つ以上のモジュール、サブプログラム又はコードの部分を記憶するファイル）に記憶され得る。コンピュータプログラムは、１つのコンピュータ上で又は１つのサイトに位置するか又は複数のサイトで分散されて通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように配備され得る。
【０１６８】
本明細書に記載のプロセス及び論理フローは、１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって実行されて、入力データ上で動作し且つ出力を生成することにより機能を行い得る。プロセス及び論理フローは、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）等の専用論理回路により行われてもいいし又は装置は専用論理回路として実施されてもよい。
【０１６９】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用マイクロプロセッサの双方及び任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はその双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための１つ以上のメモリデバイスである。一般に、コンピュータは、例えば、磁気、光磁気ディスク又は光ディスクといったデータを記憶するための１つ以上の大容量記憶装置を含むか又はデータを受信し又はデータを送信するために動作可能に結合されるか又はその両方である。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータは、他の装置、例えば、いくつかの例を挙げると、タブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、モバイルオーディオプレーヤ、グローバルポジショニングシステム（ＧＰＳ）レシーバに埋め込まれ得る。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能媒体は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイス等の半導体メモリデバイス；磁気ディスク、例えば内部ハードディスク又はリムーバブルディスク；光磁気ディスク；ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補完されてもよいし、内蔵されてもよい。
【０１７０】
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えばＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタと、ユーザがコンピュータに入力を提供し得るキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実施され得る。ユーザとの対話を提供するために他の種類の装置を用いてもよく、例えばユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック又は触覚フィードバックであってもよく、ユーザからの入力は音響入力、音声入力又は触覚入力を含む任意の形態で受信され得る。
【０１７１】
本発明の実施形態は、バックエンドコンポーネント、例えばデータサーバを含むか又はミドルウェアコンポーネント、例えばアプリケーションサーバを含むか又はフロントエンドコンポーネント、例えばユーザが本発明の実施とやりとりし得るグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むか又はそのような１つ以上のバックエンド、ミドルウェア又はフロントエンドコンポーネントの任意の組み合わせを含むコンピュータシステムで実施され得る。システムのコンポーネントは任意の形態又は媒体のデジタルデータ通信、例えば通信ネットワークにより相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、例えばインターネットを含む。
【０１７２】
コンピュータシステムはクライアント及びサーバを含み得る。クライアント及びサーバは概して互いに離れており、通信ネットワークを介して通常対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバの関係を有するコンピュータプログラムのおかげで生じる。
【０１７３】
いくつかの実施を上記で詳細に説明してきたが、他の変更も可能である。例えば、デリゲートにアクセスするものとしてクライアントアプリケーションを説明したが、他の実施では、デリゲートは１つ以上のサーバ上で実行するアプリケーション等の１つ以上のプロセッサにより実施される他のアプリケーションにより用いられ得る。加えて、図面に示す論理フローは、所望の結果を得るために図示の特定の順序又は順番を必要としない。加えて、他のアクションが提供され得るか又は記載されたフローからアクションが除去されてもよく、他のコンポーネントが記載されたシステムに追加され得るか又は取り除かれ得る。したがって、他の実施は下記の特許請求の範囲内にある。
【０１７４】
本明細書は、多くの特定の実施の詳細を含むが、これらはいずれかの発明又はクレームされ得るものの範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈すべきである。別々の実施形態の文脈で本明細書に記載の特定の特徴は、組み合わされて単一の実施形態で実施することもできる。反対に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態で別々に又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は特定の組み合わせで作用するものとして上述され、そのように当初クレームされ得るが、クレームされた組み合わせからの１つ以上の特徴は、場合によっては組み合わせから切り出すことができ、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に向けられ得る。
【０１７５】
同様に、動作を特定の順序で図面に記載しているが、これは、所望の結果を得るためにそのような動作を図示の特定の順序で又は順番で行うこと又は記載された動作の全てを行うことを必要すると理解すべきではない。特定の状況下では、マルチタスク及び並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態でそのような分離を必要とするものと理解すべきではなく、記載のプログラムコンポーネント及びシステムは概して単一のソフトウェア製品内に統合され得るか又は複数のソフトウェア製品内にパッケージされ得ることを理解すべきである。
【０１７６】
主題の特定の実施形態を説明してきた。他の実施形態は以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載の動作は異なる順序で行うことができ、依然として所望の結果が得られる。一例として、添付の図面に記載のプロセスは所望の結果を得るために図示の特定の順序又は順番を必ずしも必要としない。特定の実施では、マルチタスク及び並列処理が有利であり得る。
【図１】
2022502961.tif 000012
【図２】
2022502961.tif 000013
【図３】
2022502961.tif 000014
【図４】
2022502961.tif 000015
【図５】
2022502961.tif 000016
【図６】
2022502961.tif 000017
【図７】
2022502961.tif 000018
【図８】
2022502961.tif 000019
【図９】
2022502961.tif 000020
【図１０】
2022502961.tif 000021
【図１１】
2022502961.tif 000022
【図１２】
2022502961.tif 000023
【図１３】
2022502961.tif 000024
【図１４】
2022502961.tif 000025
【図１５】
2022502961.tif 000026
【図１６】
2022502961.tif 000027
【図１７】
2022502961.tif 000028
【図１８】
2022502961.tif 000029
【図１９】
2022502961.tif 000030
【図２０】
2022502961.tif 000031
【図２１】
2022502961.tif 000032
【図２２】
2022502961.tif 000033
【図２３】
2022502961.tif 000034
【図２４】
2022502961.tif 000035
【図２５】
2022502961.tif 000036
【図２６】
2022502961.tif 000037
【図２７】
2022502961.tif 000038
【図２８】
2022502961.tif 000039
【図２９】
2022502961.tif 000040
【図３０】
2022502961.tif 000041
【手続補正書】
【提出日】令和3年5月20日(2021.5.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
エンコーダにより、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成するステップと、
前記エンコーダにより、セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影するステップであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ステップと、
前記エンコーダにより、前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成するステップと、
前記エンコーダにより、前記１つ以上のパッチの第１のフレームを生成するステップと、
前記エンコーダにより、前記第１のフレームのための第１の補助情報を生成するステップと、
前記エンコーダにより、参照フレームのための第２の補助情報を生成するステップと、
前記エンコーダにより、前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定するステップと、
前記エンコーダにより、前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成するステップと、
前記エンコーダにより、前記動きベクトル候補を用いて動き補償を行うステップと、
を含むコンピュータ実施方法。
【請求項２】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記記録された媒体の三次元点群データのセグメンテーションを生成するステップは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記エンコーダにより前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項１又は２に記載のコンピュータ実施方法。
【請求項４】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、請求項１乃至３のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
前記１つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記１つ以上のパッチのそれぞれのための二次元データ及び前記１つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項４に記載のコンピュータ実施方法。
【請求項７】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための１つ以上のパッチを生成するステップは、
前記エンコーダにより、前記三次元点群データの平滑性基準を各方向から決定することと、
前記エンコーダにより、前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、前記エンコーダにより、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項１乃至６のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成するステップは、
前記エンコーダにより、前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離を求めることと、
前記エンコーダにより、前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記エンコーダにより、前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項１乃至７のいずれか一項に記載のコンピュータ実施方法。
【請求項９】
１つ以上のコンピュータと、命令を記憶する１つ以上の記憶装置とを含むシステムであって、該命令は該１つ以上のコンピュータにより実行された場合に、該１つ以上のコンピュータに、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、
前記１つ以上のパッチの第１のフレームを生成することと、
前記第１のフレームのための第１の補助情報を生成することと、
参照フレームのための第２の補助情報を生成することと、
前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定することと、
前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせるよう動作可能である、システム。
【請求項１０】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項９に記載のシステム。
【請求項１１】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項９乃至１０のいずれか一項に記載のシステム。
【請求項１２】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、請求項９乃至１１のいずれか一項に記載のシステム。
【請求項１３】
前記１つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項１２に記載のシステム。
【請求項１４】
前記１つ以上のパッチのそれぞれのための二次元データ及び前記１つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項１２に記載のシステム。
【請求項１５】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための１つ以上のパッチを生成することは、
前記三次元点群データの平滑性基準を各方向から決定することと、
前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項９乃至１４のいずれか一項に記載のシステム。
【請求項１６】
前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することは、
前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離を求めることと、
前記第１の補助情報の２次元データと前記第２の補助情報の２次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項９乃至１５のいずれか一項に記載のシステム。
【請求項１７】
１つ以上の処理装置により実行可能な命令が記憶された非一時的コンピュータ読み取り可能記憶媒体であって、該命令は実行された場合に、該１つ以上の処理装置に、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、
前記１つ以上のパッチの第１のフレームを生成することと、
前記第１のフレームのための第１の補助情報を生成することと、
参照フレームのための第２の補助情報を生成することと、
前記第１の補助情報及び前記第２の補助情報に基づいて、前記参照フレームからの第２のパッチに一致する第１のパッチを前記第１のフレームから特定することと、
前記第１の補助情報と前記第２の補助情報との間の差分に基づいて、前記第１のパッチと前記第２のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせる、１つ以上の非一時的コンピュータ読み取り可能記憶媒体。
【請求項１８】
前記参照フレームは、前記第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項１７に記載の非一時的コンピュータ読み取り可能媒体。
【請求項１９】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項１７乃至１８のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
【請求項２０】
前記第１の補助情報は、前記１つ以上のパッチのそれぞれのためのインデックスデータと、前記１つ以上のパッチのそれぞれのための二次元データと、前記１つ以上のパッチのそれぞれのための三次元データとを含む、請求項１７乃至１９のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年１０月２日に出願された米国仮特許出願第６２/７４０２３７号及び２０１９年６月１９日に出願された米国仮特許出願第６２／８６３３６２号に対する優先権を主張し、双方は参照によりそれらの全体が本願に組み込まれる。
【背景技術】
【０００２】
点群処理は、エンターテインメント産業、インテリジェント自動車ナビゲーション、地理空間検査、実世界オブジェクトの三次元（３Ｄ）モデリング及び環境可視化等の用途での広範なアプリケーションの不可欠な一部になっている。
【発明の概要】
【課題を解決するための手段】
【０００３】
一部の実施では、本明細書は、三次元及び二次元補助データを用いて動き推定を行うための技術を説明する。三次元点群データを符号化し且つ送信するために動き推定が行われる。三次元点群データは、人間又は実世界のアイテム等の三次元オブジェクトの外面の輪郭を描くか又は視覚的に表すデータポイントを含む。三次元点群データは、三次元点群データの色、テクスチャ及び深度を示す属性情報も含むことができる。エンコーダ又はデコーダは、動き精密化データを用いて三次元点群データをそれぞれ符号化又は復号化できる。
【０００４】
一部の実施では、エンコーダ又はデコーダは、三次元点群データを囲むために三次元境界ボックスを用い、その後に符号化及び送信に用いられるパッチを生成する。エンコーダは三次元点群データの画像を三次元境界ボックスの側面に投影できる。エンコーダは、画像又はパッチを符号化のために用いるためにフレームにグループ化できる。通常大きい三次元点群データを送信するために通常用いられる帯域幅の量を低減するために、エンコーダは代わりに、現在生成されたフレームからのパッチを先に生成されたフレームのパッチと比較することにより動き精密化データを生成できる。エンコーダは２つのフレーム間のパッチをマッチングさせ、マッチングしたパッチを特定するデータに基づいて動き精密化データを生成できる。例えば、エンコーダは、動き精緻化データとして含めるために、位置座標及びパッチのサイズを定義する補助情報を用いり得る。パッチのフレームを符号化及び送信する代わりに、モーション精緻化データを符号化及び送信のために用いて、全体的な伝送帯域幅を低減し且つメッセージを適切に復号化及び受信することができる。動き精緻化データが一度特定されると、三次元点群データの改善された送信のため、動き精緻化データを既存のビデオ圧縮技術に加えることができる。
【０００５】
１つの一般的な態様では、方法は、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、セグメント化された三次元点群データの表現を、三次元境界ボックスの１つ以上の側面に投影することであって、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側面に基づいて異なる、ことと、セグメント化された三次元点群データの投影された表現に基づいて１つ以上のパッチを生成することと、１つ以上のパッチの第１のフレームを生成することと、第１のフレームのための第１の補助情報を生成することと、参照フレームのための第２の補助情報を生成することと、第１の補助情報及び第２の補助情報に基づいて、参照フレームからの第２のパッチに一致する第１のパッチを第１のフレームから特定することと、第１の補助情報と第２の補助情報との間の差分に基づいて、第１のパッチと第２のパッチとの間に動きベクトル候補を生成することと、動きベクトル候補を用いて動き補償を行うことと、を含む。
【０００６】
本開示のこの及び他の態様の他の実施形態は、方法の動作を行うように構成された対応するシステム、装置及びコンピュータ記憶装置に符号化されたコンピュータプログラムを含む。１つ以上のコンピュータのシステムは、動作時にシステムに動作を行わせるソフトウェア、ファームウェア、ハードウェア又はシステムにインストールされたそれらの組み合わせによってそのように構成できる。１つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置に動作を行わせる命令を有することによって、そのように構成できる。
【０００７】
前述の及び他の実施形態は、それぞれ任意で下記に特徴を単独で又は組み合わせで含むことができる。例えば、一実施形態は下記の特徴の全てを組み合わせで含む。
【０００８】
一部の実施では、方法は、参照フレームが第２の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応することを含む。
【０００９】
一部の実施では、記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む。
【００１０】
一部の実施では、第１の補助情報は、１つ以上のパッチのそれぞれのためのインデックスデータと、１つ以上のパッチのそれぞれのための二次元データと、１つ以上のパッチのそれぞれのための三次元データとを含む。
【００１１】
一部の実施では、１つ以上のパッチのそれぞれのためのインデックスデータは、三次元境界ボックスの対応する側面に対応する。
【００１２】
一部の実施では、１つ以上のパッチのそれぞれのための二次元データ及び１つ以上のパッチのそれぞれのための三次元データは、接続された三次元点群データの部分に対応する。
【００１３】
一部の実施では、三次元点群データの連続性データに基づいて、三次元点群データのための１つ以上のパッチを生成することは、三次元点群データの平滑性基準を各方向から決定することと、三次元点群データの各方向から平滑性基準を比較することと、比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、をさらに含む。
【００１４】
一部の実施では、第１のパッチと第２のパッチとの間に動きベクトル候補を生成することは、第１の補助情報の２次元データと第２の補助情報の２次元データとの間の距離を求めることと、第１の補助情報の２次元データと第２の補助情報の２次元データとの間の距離に基づいて、動きベクトル候補を生成することと、動きベクトル候補を動きベクトル候補リストに加えることと、をさらに含む。
【００１５】
本明細書の主題の１つ以上の実施形態の詳細を添付の図面及び以下の説明で記載する。主題の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１６】
【図１】図１は、ビデオ信号を符号化する例示の方法のフローチャートである。
【図２】図２は、ビデオ符号化のための例示の符号化及び復号化（コーデック）システムの概略図である。
【図３】図３は、例示のビデオエンコーダを示すブロック図である。
【図４】図４は、例示のビデオデコーダを示すブロック図である。
【図５】図５は、単方向相互予測の一例を示す概略図である。
【図６】図６は、双方向相互予測の一例を示す概略図である。
【図７】図７は、ビデオ符号化に用いられる例示のイントラ予測モードを示す概略図である。
【図８】図８は、ビデオ符号化におけるブロックの方向関係の例を示す概略図である。
【図９】図９は、例示のインループフィルタを示すブロック図である。
【図１０】図１０は、ブロック分割で用いられる例示の分割モードを示す。
【図１１】図１１は、例示のビデオ符号化メカニズムの概略図である。
【図１２】図１２は、ビデオ符号化のためのコンピュータ装置の概略図である。
【図１３】図１３は、点群媒体を示すシステムの一例である。
【図１４】図１４は、点群フレームシーケンスを示すシステムの一例である。
【図１５】図１５は、三次元パッチ境界ボックスから二次元パッチ投影への変換プロセスの一例である。
【図１６】図１６は、３Ｄから２Ｄパッチ投影の結果を示すシステムの一例である。
【図１７】図１７は、点群媒体の属性セグメンテーションの一例である。
【図１８】図１８は、属性情報を有する点群媒体のためのパッキングパッチを示すシステムの一例である。
【図１９】図１９は、動き推定を行うためのシステムの一例である。
【図２０】図２０は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。
【図２１】図２１は、マージ候補リスト構築のための導出プロセスを示す。
【図２２】図２２は、空間マージ候補と、空間マージ候補の冗長性チェックのために考慮される候補対の位置のシステムを示す。
【図２３】図２３は、Ｎ×２Ｎ及び２Ｎ×Ｎ分割の第２のＰＵの位置を示すシステムを示す。
【図２４】図２４は、時間的マージ候補のためのスケーリングされた動きベクトルを得ることを示す。
【図２５】図２５は、時間的マージ候補のための候補位置を示すシステムである。
【図２６】図２６は、複合双方向予測マージ候補の例示の表を示す。
【図２７】図２７は、補助データを用いた動き推定パイプラインの変形を含むシステムの一例である。
【図２８】図２８は、Ｖ−ＰＣＣユニットペイロードのパケットストリーム表現の一例である。
【図２９】図２９は、Ｖ−ＰＣＣユニットペイロードのビジュアル表現の別の一例である。
【図３０】図３０は、３Ｄ補助データを用いて動き推定を行うプロセスの一例を示すフロー図である。  様々な図面における同様の参照番号及び指定は同様の要素を示す。
【発明を実施するための形態】
【００１７】
最初に、１つ以上の実施形態の例示の実施が以下で提供されるが、開示のシステム及び／又は方法は、現在知られているか又は存在するかを問わず、任意の数の技術を用いて実施され得ることを理解すべきである。本開示は、本明細書で図示説明する例示の設計及び実施を含む、以下に示す例示の実施、図面及び技術に何ら限定すべきでなく、添付の特許請求の範囲と共にそれらの均等物の範囲全体内で変更され得る。
【００１８】
図１は、ビデオ信号を符号化する例示の方法１００のフローチャートである。具体的には、ビデオ信号はエンコーダで符号化される。符号化プロセスは、ビデオファイルのサイズを低減するために様々なメカニズムを用いることによりビデオ信号を圧縮する。より小さいファイルサイズは、圧縮されたビデオファイルをユーザに向けて送信できるようにしながら、関連する帯域幅オーバーヘッドを低減する。次に、デコーダは圧縮されたビデオファイルを復号化してエンドユーザに表示するために元のビデオ信号を再構成する。復号化プロセスは概してデコーダがビデオ信号を一貫して再構成できるように符号化プロセスに酷似している（mirrors）。
【００１９】
ステップ１０１で、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号はメモリに記憶された非圧縮のビデオファイルであり得る。別の例として、ビデオファイルは、ビデオカメラ等のビデオ取り込み装置によって取り込まれたものでもよく、ビデオのライブストリーミングをサポートするために符号化され得る。ビデオファイルは、オーディオコンポーネント及びビデオコンポーネントの双方を含み得る。ビデオコンポーネントは、連続して視た場合に視覚的に動きの印象を与える一連の画像フレームを含む。フレームは、本明細書ではルマ成分（luma  component）と呼ばれる光と、クロマ成分と呼ばれる色との観点で表されるピクセルを含む。一部の例では、フレームは三次元表示をサポートするために深度値も含み得る。
【００２０】
ステップ１０３で、ビデオはブロックに分割される。分割は、圧縮のために各フレーム内のピクセルを正方形及び／又は長方形のブロックに細分すること（subdividing）を含む。例えば、さらなる符号化をサポートする構成が得られるまでブロックを分割し、再帰的に細分するために符号化木（coding  tree）が用いられ得る。そのため、ブロックは、（Ｈ.２６５及びＭＰＥＧ−Ｈ  Ｐａｒｔ  ２としても知られている）高効率ビデオ符号化（ＨＥＶＣ）における符号化木単位とも呼ばれ得る。例えば、フレームのルマ成分は、個々のブロックが比較的均一な照明値（lighting  value）を含むまで細分され得る。さらに、フレームのクロマ成分は、個々のブロックが比較的均一なカラー値を含むまで細分され得る。したがって、分割メカニズムはビデオフレームのコンテンツに応じて変化し得る。
【００２１】
ステップ１０５で、ステップ１０３において分割された画像ブロックを圧縮するために様々な圧縮メカニズムが用いられる。例えば、相互予測及び／又はイントラ予測が用いられ得る。相互予測は、共通のシーンのオブジェクトは連続したフレームで現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを記述するブロックは、後続のフレームで繰り返し記述する必要がない。具体的には、テーブル等のオブジェクトは複数のフレームにわたって一定の位置に留まり得る。そのため、テーブルは一度記述するだけでよく、後続のフレームは参照フレームを参照できる。複数フレームにわたってオブジェクトをマッチングするためにパターンマッチングメカニズムが用いられ得る。さらに、移動オブジェクトは、例えば、オブジェクトの動き又はカメラの動きにより複数のフレームにわたって表現され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切る自動車を示し得る。そのような動きを記述するために動きベクトルを用いることができる。動きベクトルは、あるフレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する二次元ベクトルである。そのため、相互予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す一組の動きベクトルとして符号化できる。
【００２２】
相互予測は、共通フレーム内のブロックを符号化する。相互予測は、ルマ及びクロマ成分がフレーム内でかたまる傾向があるという事実を利用する。例えば、木の一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。相互予測は、多方向予測モード（例えば、ＨＥＶＣの３３）、平面モード及び直流（ＤＣ）モードを用いる。方向モードは、現在のブロックが対応する方向において隣接ブロックと同様／同一であることを示す。平面モードは、行（例えば、平面）に沿った一連のブロックを行の端にある隣接ブロックに基づいて補間できることを示す。平面モードは、値を変化させる際に比較的一定の傾きを用いることにより、行にわたって光／色の滑らかな遷移を事実上示す。ＤＣモードは境界平滑化のために用いられ、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックに関連する平均値と同様／同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに様々な関係予測モード値として画像ブロックを表すことができる。さらに、相互予測ブロックは、実際の値の代わりに動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては画像ブロックを正確に表さないことがある。差分はいずれも残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために残差ブロックに適用され得る。
【００２３】
ステップ１０７で、様々なフィルタリング技術が適用され得る。ＨＥＶＣでは、フィルタは、インループフィルタスキームに従って適用される。上述のブロックベースの予測は、デコーダでブロックノイズのある画像（blocky  images）の生成をもたらし得る。さらに、ブロックベースの予測スキームはブロックを符号化し、次いで符号化したブロックを後で参照ブロックとして用いるために再構成し得る。インループフィルタスキームは、ブロック／フレームにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びＳＡＯフィルタを反復的に適用する。これらのフィルタは、符号化されたファイルを正確に再構成できるようにそのようなブロッキングアーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロックにおけるアーチファクトを軽減し、アーチファクトが再構成された参照ブロックに基づいて符号化される後続のブロックにおいて追加のアーチファクトを生成する可能性を低減する。インループフィルタ処理について以下で詳細に説明する。
【００２４】
一度ビデオ信号が分割され、圧縮され、フィルタリングされると、結果として得られるデータはステップ１０９でビットストリームに符号化される。ビットストリームは上述のデータに加えて、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意の信号データを含む。例えば、そのようなデータは、分割データ、予測データ、残差ブロック及びデコーダへの符号化命令を提供する様々なフラグを含み得る。ビットストリームは、要求に応じてデコーダに向けて送信するためにメモリに記憶され得る。ビットストリームは複数のデコーダに向けてブロードキャスト及び／又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ１０１、１０３、１０５、１０７及び１０９は、多くのフレーム及びブロックにわたって連続的に及び／又は同時に起こり得る。図１に示す順序は説明を明確にし且つ容易にするために提示されたものであり、ビデオ符号化プロセスを特定の順序に限定することを意図していない。
【００２５】
デコーダはビットストリームを受信し、ステップ１１１で復号化プロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文及びビデオデータに変換するためにエントロピー復号化スキームを用いる。デコーダは、ステップ１１１でフレームのための分割を特定するためにビットストリームからの構文データを用いる。分割は、ステップ１０３でのブロック分割の結果と一致しなければならない。ここで、ステップ１１１で用いられるエントロピー符号化／復号化について説明する。エンコーダは、いくつかの可能な選択肢から入力画像内の値の空間位置に基づいてブロック分割スキームを選択すること等の圧縮プロセスの間に多くの選択を行う。厳密な選択肢を示すことは多数のビンを使用し得る。本明細書で用いるように、ビンは可変として扱われるバイナリ値（例えば、コンテキストに応じて変化し得るビット値）である。エントロピー符号化は、特定の場合において明らかに実行不能な任意のオプションをエンコーダが破棄できるようにして、一組の許容可能なオプションのみが残される。そして、各許容可能なオプションに符号語が割り当てられる。符号語の長さは許容可能なオプションの数に基づく（例えば、２つのオプションに対して１つのビン、３〜４つのオプションに対して２つのビン等）。次に、エンコーダは選択されたオプションに対して符号語を符号化する。このスキームは符号語のサイズを小さくする。なぜなら、符号語は、全ての可能なオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すのに望ましい大きさでしかないからである。次に、デコーダは、エンコーダの場合と同様に許容可能なオプションのセットを決定することにより選択を復号化する。許容可能なオプションのセットを決定することにより、デコーダは符号語を読み取り、エンコーダによってなされた選択を特定できる。
【００２６】
ステップ１１３で、デコーダはブロック復号化を行う。具体的には、デコーダは、残差ブロックを生成するために逆変換を用いる。次に、デコーダは残差ブロック及び対応する予測ブロックを用いて、分割に従って画像ブロックを再構成する。予測ブロックは、ステップ１０５においてエンコーダで生成されたイントラ予測ブロック及び相互予測ブロックの双方を含み得る。次に、再構成された画像ブロックは、ステップ１１１で特定された分割データに従って、再構成されたビデオ信号のフレーム内に配置される。上述したように、ステップ１１３のための構文を、エントロピー符号化を介してビットストリームに信号伝達（signaled）してもよい。
【００２７】
ステップ１１５で、エンコーダでのステップ１０７と同様の方法で再構成されたビデオ信号のフレームに対してフィルタリングが行われる。例えば、ブロッキングアーチファクトを取り除くためにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びＳＡＯフィルタがフレームに適用され得る。一度フレームがフィルタリングされると、エンドユーザによる視聴のためにビデオ信号をステップ１１７でディスプレイに出力できる。
【００２８】
図２は、ビデオ符号化のための例示の符号化及び復号化（コーデック）システム２００の概略図である。具体的には、コーデックシステム２００は、方法１００の実施をサポートする機能を提供する。コーデックシステム２００は、エンコーダ及びデコーダの双方で用いられるコンポーネントを示すために一般化されている。コーデックシステム２００は、方法１００のステップ１０１及び１０３に関連して説明したように、ビデオ信号を受信及び分割し、その結果として分割されたビデオ信号２０１が得られる。次に、コーデックシステム２００は、方法１００のステップ１０５、１０７及び１０９に関連して説明したように、エンコーダの役割を果たす場合は、分割されたビデオ信号２０１を圧縮して符号化されたビットストリームにする。デコーダとしての役割を果たす場合、コーデックシステム２００は、方法１００のステップ１１１、１１３、１１５及び１１７に関連して説明したようにビットストリームから出力ビデオ信号を生成する。コーデックシステム２００は、一般コーダ制御コンポーネント２１１と、変換スケーリング及び量子化コンポーネント２１３と、イントラピクチャ推定コンポーネント２１５と、イントラピクチャ予測コンポーネント２１７と、動き補償コンポーネント２１９と、動き推定コンポーネント２２１と、スケーリング及び逆変換コンポーネント２２９と、フィルタ制御分析コンポーネント２２７と、インループフィルタコンポーネント２２５と、復号化ピクチャバッファコンポーネント２２３と、ヘッダフォーマット化及びＣＡＢＡＣ（context  adaptive  binary  arithmetic  coding）コンポーネント２３１とを含む。そのようなコンポーネントは図示のように連結されている。図２において、黒線は符号化／復号化すべきデータの動きを示すのに対して、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデックシステム２００のコンポーネントの全てはエンコーダ内に存在してもよい。デコーダはコーデックシステム２００のコンポーネントのサブセットを含み得る。例えば、デコーダはイントラピクチャ予測コンポーネント２１７と、動き補償コンポーネント２１９と、スケーリング及び逆変換コンポーネント２２９と、インループフィルタコンポーネント２２５と、復号化ピクチャバッファコンポーネント２２３とを含み得る。これらのコンポーネントをこれから説明する。
【００２９】
分割されたビデオ信号２０１は、符号化木によりピクセルのブロックに分割されている取り込まれたビデオストリームである。符号化木は、ピクセルのブロックをより小さなピクセルのブロックに細分するために様々な分割モードを用いる。次に、これらのブロックをより小さなブロックにさらに細分できる。ブロックは、符号化木上のノードと呼ばれ得る。より大きな親ノードはより小さな子ノードに分割される。ノードが細分される回数はノード／符号化木の深度と呼ばれる。分割されたブロックは、場合によっては符号化ユニット（ＣＵ）と呼ばれる。分割モードは、用いられる分割モードに応じて形状が異なる２つ、３つ又は４つの子ノードにノードを分割するのにそれぞれ用いられるバイナリ木（ＢＴ）、トリプル木（ＴＴ）及びクワッド木（ＱＴ）を含み得る。分割されたビデオ信号２０１は圧縮のために一般コーダ制御コンポーネント２１１、変換スケーリング及び量子化コンポーネント２１３、イントラピクチャ推定コンポーネント２１５、フィルタ制御分析コンポーネント２２７及び動き推定コンポーネント２２１に転送される。
【００３０】
一般コーダ制御コンポーネント２１１は、アプリケーションの制約に従ってビデオシーケンスの画像をビットストリームに符号化することに関連する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント２１１は、再構成品質に対するビットレート／ビットストリームサイズの最適化を管理する。そのような決定は、記憶領域／帯域幅の利用可能性及び画像解像度要求に基づいてなされ得る。一般コーダ制御コンポーネント２１１は、バッファのアンダーラン及びオーバーランの問題を緩和するために、送信速度に照らしてバッファの利用も管理する。これらの問題を管理するために、一般コーダ制御コンポーネント２１１は、他のコンポーネントによる分割、予測及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント２１１は、解像度を高め且つ帯域幅の使用を高めるために圧縮の複雑性を動的に高め得るか又は解像度と帯域幅の使用とを下げるために圧縮の複雑性を下げ得る。そのため、一般コーダ制御コンポーネント２１１は、ビデオ信号の再構成品質とビットレートの懸念とのバランスを取るためにコーデックシステム２００の他のコンポーネントを制御する。一般コーダ制御コンポーネント２１１は、他のコンポーネントの動作を制御する制御データを作成する。制御データは、デコーダでの復号化のためのパラメータを伝達するためビットストリーム内に符号化されるように、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１にも転送される。
【００３１】
分割されたビデオ信号２０１は、相互予測のために動き推定コンポーネント２２１及び動き補償コンポーネント２１９にも送られる。分割されたビデオ信号２０１のフレーム又はスライスは複数のビデオブロックに分割され得る。動き推定コンポーネント２２１及び動き補償コンポーネント２１９は、時間予測（temporal  prediction）を提供するために、１つ以上の参照フレーム内の１つ以上のブロックに対して受信したビデオブロックの相互予測符号化を行う。コーデックシステム２００は、例えばビデオデータの各ブロックのために適切な符号化モードを選択するために複数の符号化パスを行い得る。
【００３２】
動き推定コンポーネント２２１及び動き補償コンポーネント２１９は高度に統合され得るが、概念的な目的のために別個に示している。動き推定コンポーネント２２１によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又は他の符号化ユニット）内で符号化されている現在のブロックに対する、参照フレーム（又は他の符号化ユニット）内の予測ブロックに対するビデオブロックの予測ユニット（ＰＵ）の変位を示し得る。予測ブロックは、ピクセルの差分の観点から符号化すべきブロックに厳密に一致することが見出されたブロックであり、絶対差（ＳＡＤ）の和、二乗差の和（ＳＳＤ）又は他の差分メトリックスにより決定され得る。一部の例では、コーデックシステム２００は、復号化ピクチャバッファ２２３に記憶された参照ピクチャのサブ整数ピクセル位置の値を算出し得る。例えば、ビデオコーデックシステム２００は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置又は他の分数のピクセル位置の値を補間し得る。したがって、動き推定コンポーネント２２１は、全ピクセル位置及び分数ピクセル位置に対する動き探索を行って、分数ピクセル精度を有する動きベクトルを出力し得る。動き推定コンポーネント２２１は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによりインター符号化されたスライス内のビデオブロックのＰＵのための動きベクトルを計算する。動き推定コンポーネント２２１は、計算された動きベクトルを動きデータとしてヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に符号化のために出力し、動き補償コンポーネント２１９に動きを出力する。
【００３３】
動き補償コンポーネント２１９によって行われる動き補償は、動き推定コンポーネント２２１によって決定された動きベクトルに基づいて、予測ブロックをフェッチ又は生成することを伴い得る。再び、一部の例では、動き推定コンポーネント２２１及び動き補償コンポーネント２１９は機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償コンポーネント２１９は、動きベクトルが参照ピクチャリストを指す予測ブロックを特定し得る。次に、符号化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することにより残差ビデオブロックが形成され、ピクセル差分値を形成する。一般に、動き推定コンポーネント２２１はルマ成分に対する動き推定を行い、動き補償コンポーネント２１９はクロマ成分及びルマ成分の双方のためにルマ成分に基づいて計算された動きベクトルを用いる。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント２１３に転送される。
【００３４】
分割されたビデオ信号２０１は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７にも送られる。動き推定コンポーネント２２１及び動き補償コンポーネント２１９の場合と同様に、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は高度に統合され得るが、概念的な目的のために別個に示している。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、上述した動き推定コンポーネント２２１及び動き補償コンポーネント２１９によりフレーム間で行われる相互予測に代えて、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。とりわけ、イントラピクチャ推定コンポーネント２１５は、現在のブロックを符号化するために用いるイントラ予測モードを決定する。一部の例では、イントラピクチャ推定コンポーネント２１５は、複数のテストされたイントラ予測モードから現在のブロックを符号化するのに適切なイントラ予測モードを選択する。次に、選択されたイントラ予測モードが、符号化のためにヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に転送される。
【００３５】
例えば、イントラピクチャ推定コンポーネント２１５は、様々なテストされたイントラ予測モードのためにレート歪み解析を用いてレート歪み値を計算し、テストされたモードの間で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み解析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の非符号化ブロックとの間の歪み（又はエラー）の量に加えて、符号化されたブロックを生成するのに用いられるビットレート（例えば、ビットの数）概して特定する。イントラピクチャ推定コンポーネント２１５は、ブロックにとって最良のレート歪み値を呈するイントラ予測モードがどれか判定するために、様々な符号化されたブロックのための歪み及びレートから比を計算する。加えて、イントラピクチャ推定コンポーネント２１５は、レート歪み最適化（ＲＤＯ）に基づいて深度モデリングモード（ＤＭＭ）を用いて深度マップの深度ブロックを符号化するように構成され得る。
【００３６】
イントラピクチャ予測コンポーネント２１７は、イントラピクチャ推定コンポーネント２１５により決定された選択されたイントラ予測モードに基づいて、予測ブロックから残差ブロックを生成し得る。残差ブロックは、マトリクスとして表される予測ブロックと元のブロックとの間の値の差分を含む。次に、残差ブロックは、変換スケーリング及び量子化コンポーネント２１３に転送される。イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７は、ルマ及びクロマ成分の双方に対して動作し得る。
【００３７】
変換スケーリング及び量子化コンポーネント２１３は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント２１３は、離散コサイン変換（ＤＣＴ）、離散正弦変換（ＤＳＴ）又は概念的に同様の変換等の変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換又は他の種類の変換も使用され得る。変換は、残差情報をピクセル値ドメインから変換ドメインに、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント２１３は、変換された残差情報を例えば周波数に基づいてスケーリングするようにも構成されている。
【００３８】
そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報に倍率を適用することを伴い、それは再構成されたビデオの最終的な視覚品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント２１３は、ビットレートをさらに下げるために変換係数を量子化するようにも構成されている。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することにより変更され得る。一部の例では、変換スケーリング及び量子化コンポーネント２１３は、次いで、量子化された変換係数を含むマトリクスのスキャンを行い得る。量子化された変換係数は、ビットストリームに符号化されるようにヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に転送される。
【００３９】
スケーリング及び逆変換コンポーネント２２９は、動き推定をサポートするために変換スケーリング及び量子化コンポーネント２１３の逆動作を適用する。スケーリング及び逆変換コンポーネント２２９は、例えば、別の現在のブロックのための予測ブロックになり得る参照ブロックとして後で用いるためにピクセルドメイン内の残差ブロックを再構成するのに逆スケーリング、変換及び／又は量子化を適用する。動き推定コンポーネント２２１及び／又は動き補償コンポーネント２１９は、後のブロック／フレームの動き推定で用いるために残差ブロックを対応する予測ブロックに加算することにより参照ブロックを計算し得る。スケーリング、量子化及び変換の間に生じるアーチファクトを緩和するために、再構成された参照ブロックにフィルタが適用される。そうでなければ、そのようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こし(且つさらなるアーチファクトを作り出す）得る。
【００４０】
フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は、残差ブロック及び／又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント２２９からの変換された残差ブロックが、イントラピクチャ予測コンポーネント２１７及び／又は動き補償コンポーネント２１９からの対応する予測ブロックと組み合わされて、元の画像ブロックが再構成され得る。次に、再構成された画像ブロックにフィルタが適用され得る。一部の例では、フィルタは、代わりに、残差ブロックに適用され得る。図２の他のコンポーネントと同様に、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５は高度に統合されており、共に実施され得るが、概念的な目的のために別個に示されている。再構成された参照ブロックに適用されるフィルタは特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント２２７は、そのようなフィルタをどこに適用すべきか決定するために再構成された参照ブロックを解析し、対応するパラメータを設定する。そのようなデータは、フィルタ制御データとしてヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１に符号化のために転送される。インループフィルタコンポーネント２２５は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、ＳＡＯフィルタ及び適応ループフィルタを含み得る。そのようなフィルタは、例に応じて空間／ピクセルドメインに（例えば、再構成されたピクセルブロックに）又は周波数ドメインに適用され得る。
【００４１】
エンコーダとして動作する場合、フィルタリングされ、再構成された画像ブロック、残差ブロック及び／又は予測ブロックは、上述したように動き推定で後で用いるために復号化画像バッファ２２３に記憶される。デコーダとして動作する場合、復号化画像バッファ２２３は、再構成され、フィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。復号化画像バッファ２２３は、予測ブロック、残差ブロック及び／又は再構成された画像ブロックを記憶可能な任意のメモリ装置であり得る。
【００４２】
ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１は、コーデックシステム２００の様々なコンポーネントからデータを受信し、そのようなデータを符号化してデコーダに向けて伝送するための符号化ビットストリームにする。具体的には、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１は、一般的な制御データ及びフィルタ制御データ等の制御データを符号化するために様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データに加えて、量子化変換係数データの形態の残差データが全てビットストリームに符号化される。最終的なビットストリームは、元の分割されたビデオ信号２０１を再構成するためにデコーダによって望まれる全ての情報を含む。そのような情報は、イントラ予測モードインデックステーブル（符号語マッピングテーブルともいう）、様々なブロックのための符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、分割情報の表示等も含み得る。そのようなデータはエントロピー符号化を用いて符号化され得る。例えば、情報は、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、ＣＡＢＡＣ及びシンタックスベースコンテキスト適応２値算術符号化（ＳＢＡＣ）、確率間隔区分エントロピー符号化（ＰＩＰＥ）又は他のエントロピー符号化技術を用いることにより符号化され得る。エントロピー符号化に続いて、符号化されたビットストリームは別の装置（例えば、ビデオデコーダ）に転送され得るか又は後で転送又は検索するためにアーカイブされ得る。
【００４３】
図３は、例示のビデオエンコーダ３００を示すブロック図である。ビデオエンコーダ３００は、コーデックシステム２００の符号化機能及び／又は方法１００のステップ１０１、１０３、１０５、１０７及び／又は１０９を実施するために用いられ得る。エンコーダ３００は入力ビデオ信号を分割し、分割されたビデオ信号２０１と実質的に同様の分割されたビデオ信号３０１が得られる。次に、分割されたビデオ信号３０１は、エンコーダ３００のコンポーネントにより圧縮され、ビットストリームに符号化される。
【００４４】
具体的には、分割されたビデオ信号３０１は、イントラ予測のためにイントラピクチャ予測コンポーネント３１７に転送される。イントラピクチャ予測コンポーネント３１７は、イントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７と実質的に同様であり得る。分割されたビデオ信号３０１は、復号化ピクチャバッファ３２３内の参照ブロックに基づく相互予測のために動き補償コンポーネント３２１にも転送される。動き補償コンポーネント３２１は、動き推定コンポーネント２２１及び動き補償コンポーネント２１９と実質的に同様であり得る。イントラピクチャ予測コンポーネント３１７及び動き補償コンポーネント３２１からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント３１３に転送される。変換及び量子化コンポーネント３１３は、変換スケーリング及び量子化コンポーネント２１３と実質的に同様であり得る。変換され且つ量子化された残差ブロック及び対応する予測ブロックは（関連する制御データと共に）ビットストリームへの符号化のためにエントロピー符号化コンポーネント３３１に転送される。エントロピー符号化コンポーネント３３１は、ヘッダフォーマット化及びＣＡＢＡＣコンポーネント２３１と実質的に同様であり得る。
【００４５】
変換及び量子化された残差ブロック及び／又は対応する予測ブロックも、動き補償コンポーネント３２１により用いられる参照ブロックに再構成されるために変換及び量子化コンポーネント３１３から逆変換及び量子化コンポーネント３２９に転送される。逆変換及び量子化コンポーネント３２９は、スケーリング及び逆変換コンポーネント２２９と実質的に同様であり得る。インループフィルタコンポーネント３２５内のインループフィルタも、例に応じて残差ブロック及び／又は再構成された参照ブロックに適用される。インループフィルタコンポーネント３２５は、フィルタ制御分析コンポーネント２２７及びインループフィルタコンポーネント２２５と実質的に同様であり得る。インループフィルタコンポーネント３２５は、後述するようにノイズ抑制フィルタを含む複数のフィルタを含み得る。次に、フィルタリングされたブロックは、動き補償コンポーネント３２１により参照ブロックとして用いられるために復号化ピクチャバッファ３２３に記憶される。復号化ピクチャバッファ３２３は、復号化ピクチャバッファ２２３と実質的に同様であり得る。
【００４６】
図４は、例示のビデオデコーダ４００を示すブロック図である。ビデオデコーダ４００は、コーデックシステム２００の復号化機能及び／又は方法１００のステップ１１１、１１３、１１５及び／又は１１７を実施するために用いられ得る。デコーダ４００は、例えばエンコーダ３００からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【００４７】
ビットストリームはエントロピー復号化コンポーネント４３３により受信される。エントロピー復号化コンポーネント４３３は、エントロピー符号化コンポーネント３３１の逆機能を行う。エントロピー復号化コンポーネント４３３は、ＣＡＶＬＣ、ＣＡＢＡＣ、ＳＢＡＣ及びＰＩＰＥ符号化又は他のエントロピー符号化技術等のエントロピー復号化スキームを実施するよう構成されている。例えば、エントロピー復号化コンポーネント４３３は、ビットストリーム内で符号語として符号化された追加のデータを解釈するためにコンテキストを提供するためにヘッダ情報を用いり得る。復号化された情報は、ビデオ信号を復号化するために、一般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ及び残差ブロックからの量子化変換係数等の任意の所望の情報を含む。量子化変換係数は、残差ブロックに再構成するために逆変換及び量子化コンポーネント４２９に転送される。逆変換及び量子化コンポーネント４２９は、逆変換及び量子化コンポーネント３２９と実質的に同様であり得る。
【００４８】
再構成された残差ブロック及び／又は予測ブロックは、イントラ予測動作に基づいて画像ブロックに再構成するために、イントラピクチャ予測コンポーネント４１７に転送される。イントラピクチャ予測コンポーネント４１７は、イントラピクチャ予測コンポーネント３１７と実質的に同様であり得るが、逆に動作し得る。具体的には、イントラピクチャ予測コンポーネント４１７は、フレーム内の参照ブロックを特定するために予測モードを用い、イントラ予測された画像ブロックを再構成するために結果に残差ブロックを適用する。再構成され、イントラ予測された画像ブロック及び／又は残差ブロック及び対応する相互予測データは、復号化ピクチャバッファコンポーネント４２３にインループフィルタコンポーネント４２５を介して（それぞれ復号化ピクチャバッファコンポーネント３２３及びインループフィルタコンポーネント３２５と実質的に同様であり得る）に転送される。インループフィルタコンポーネント４２５は、再構成された画像ブロック、残差ブロック及び／又は予測ブロックをフィルタリングし、そのような情報は復号化ピクチャバッファコンポーネント４２３に記憶される。復号化ピクチャバッファコンポーネント４２３からの再構成された画像ブロックは、相互予測のために動き補償コンポーネント４２１に転送される。動き補償コンポーネント４２１は動き補償コンポーネント３２１と実質的に同様であり得るが、動作が逆であり得る。具体的には、動き補償コンポーネント４２１は、参照ブロックから動きベクトルを用いて予測ブロックを生成し、画像ブロックを再構成するために残差ブロックを結果に適用する。結果として得られた再構成されたブロックは、インループフィルタコンポーネント４２５を介して復号化ピクチャバッファコンポーネント４２３に転送され得る。復号化ピクチャバッファコンポーネント４２３は、分割情報を介してフレームに再構成可能な追加の再構成された画像ブロックの記憶を続ける。そのようなフレームは、シーケンスにも配置され得る。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【００４９】
相互予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスは画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、画像ブロックは相互予測（異なるフレーム内のブロック間の相関関係）又はイントラ予測（同じフレーム内のブロック間の相関関係）により圧縮され得る。
【００５０】
符号化木ユニット（ＣＴＵ）、符号化木ブロック（ＣＴＢ）、符号化ユニット（ＣＵ）、サブＣＵ等の符号化オブジェクトがビデオシーケンスの複数フレームに現れた場合に相互予測が用いられる。各フレーム内の同じオブジェクトを符号化する代わりに、オブジェクトは参照フレーム内で符号化され、オブジェクトの動き軌跡（motion  trajectory）を示すために動きベクトル（ＭＶ）が用いられる。オブジェクトの動き軌跡はオブジェクトの経時的な動きである。ＭＶは、フレーム間で位置変化するオブジェクトの方向及び大きさを示すベクトルである。オブジェクト及びＭＶはビットストリームに符号化でき、デコーダにより復号化される。符号化効率をさらに高め、符号化のサイズを低減するために、ＭＶはビットストリームから省略され、デコーダで導出され得る。例えば、一対の参照フレームが用いられ得る。参照フレームは、関連するフレームを符号化する際に参照により符号化可能なデータを含むビットストリーム内のフレームである。双方の参照フレーム内の符号化オブジェクトの位置を特定するためにバイラテラルマッチング及び／又はテンプレートマッチング等のマッチングアルゴリズムが用いられ得る。バイラテラルマッチングアルゴリズムは、先のフレーム内のブロックを現在のフレーム内のブロックにマッチングさせる。テンプレートマッチングアルゴリズムは隣接するブロックを現在のブロックとマッチングさせ、１つ以上の参照フレーム内で隣接するブロックを現在のブロックとマッチングさせる。双方の参照フレーム内でオブジェクトの位置が特定されると、参照フレーム間のオブジェクトの動きを表すＭＶを決定できる。次に、参照フレーム間のフレーム内にオブジェクトを配置するためにＭＶを用いることができる。具体的な例として、ＣＵ全体のために初期ＭＶを決定できる。そして、初期ＭＶを精緻化するためにローカル検索を用いることができる。さらに、オブジェクトのサブＣＵコンポーネントのためのＭＶは、精密化された初期ＭＶに基づいて決定及び精密化できる。そのようなアプローチは、オブジェクトの動き軌跡が参照フレーム間で連続している限り、オブジェクトの正しい位置を示す。
【００５１】
図５は、例えば、ブロック圧縮ステップ１０５、ブロック復号化ステップ１１３、動き推定コンポーネント２２１、動き補償コンポーネント２１９、動き補償コンポーネント３２１及び／又は動き補償コンポーネント４２１で動きベクトル（ＭＶ）を決定するために行われる一方向相互予測５００の一例を示す概略図である。
【００５２】
一方向相互予測５００は、現在のフレーム５１０内の現在のブロック５１１を予測するために参照ブロック５３１を有する参照フレーム５３０を用いる。参照フレーム５３０は、図示のように現在のフレーム５１０の後に時間的に位置し得るが、一部の例では現在のフレーム５１０の前に時間的に位置し得る。現在のフレーム５１０は、特定の時間に符号化／復号化される例示のフレーム／ピクチャである。現在のフレーム５１０は、参照フレーム５３０の参照ブロック５３１内のオブジェクトとマッチするオブジェクトを現在のブロック５１１内に含む。参照フレーム５３０は、現在のフレーム５１０を符号化するための参照として用いられるフレームであり、参照ブロック５３１は、現在のフレーム５１０の現在のブロック５１１にも含まれるオブジェクトを含む参照フレーム５３０内のブロックである。現在のブロック５１１は、符号化プロセスの特定の時点で符号化／復号化される任意の符号化ユニットである。現在のブロック５１１は、分割されたブロック全体であり得るか又はアフィン相互予測の場合ではサブブロックであり得る。現在のフレーム５１０は、ある時間的距離（ＴＤ）５３３参照フレーム５３０から離れている。ＴＤ５３３は、ビデオシーケンス内で現在のフレーム５１０と参照フレーム５３０との間の時間を示す。ＴＤ５３３により表される期間にわたって、現在のブロック５１１内のオブジェクトは、現在のフレーム５１０内の位置から参照フレーム５３０内の別の位置（例えば、参照ブロック５３１の位置）に移動する。例えば、オブジェクトは、経時的なオブジェクトの動きの方向である動き軌跡５１３に沿って移動し得る。動きベクトル５３５は、ＴＤ５３３にわたる動き軌跡５１３に沿ったオブジェクトの動きの方向及び大きさを記述する。したがって、符号化されたＭＶ５３５及び参照ブロック５３１は、現在のブロック５１１及び現在の現在のフレーム５１０内の現在のブロック５１１の位置を再構成するのに十分な情報を提供する。
【００５３】
図６は、例えば、ブロック圧縮ステップ１０５、ブロック復号化ステップ１１３、動き推定コンポーネント２２１、動き補償コンポーネント２１９、動き補償コンポーネント３２１及び／又は動き補償コンポーネント４２１でＭＶを決定するために行われる双方向相互予測６００の一例を示す概略図である。例えば、相互予測モードにおけるブロックのための動きベクトルを決定するために及び／又はアフィン相互予測モードにおけるサブブロックのための動きベクトルを決定するために双方向相互予測６００を用いることができる。
【００５４】
双方向相互予測６００は一方向相互予測５００と同様であるが、現在のフレーム６１０内の現在のブロック６１１を予測するために一対の参照フレームを用いる。そのため、現在のフレーム６１０及び現在のブロック６１１はそれぞれ、現在のフレーム５１０及び現在のブロック５１１と実質的に同様である。現在のフレーム６１０は、ビデオシーケンスにおいて現在のフレーム６１０の前に起こる先行参照フレーム６２０と、ビデオシーケンスにおいて現在のフレーム６１０の後で起こる後続参照フレーム６３０との間で時間的に位置する。先行参照フレーム６２０及び後続参照フレーム６３０は、それ以外では参照フレーム５３０と実質的に同様である。
【００５５】
現在のブロック６１１は、先行参照フレーム６２０内の先行参照ブロック６２１と、後続参照フレーム６３０内の後続参照ブロック６３１とにマッチングする。そのようなマッチングは、ビデオシーケンスにわたって、オブジェクトは、先行参照ブロック６２１における位置から後続参照ブロック６３１における位置に動き軌跡６１３に沿って現在のブロック６１１を介して移動することを示す。現在のフレーム６１０は先行参照フレーム６２０からある先行時間距離（ＴＤ０）６２３離れており、後続参照フレーム６３０からある後続時間距離（ＴＤ１）６３３離れている。ＴＤ０  ６２３は、ビデオシーケンスにおける先行参照フレーム６２０と現在のフレーム６１０との間の時間を示す。ＴＤｌ  ６３３は、ビデオシーケンスにおける現在のフレーム６１０と後続参照フレーム６３０との間の時間を示す。そのため、オブジェクトは、動き軌跡６３に沿ってＴＤ０  ６２３によって示される期間にわたって先行参照ブロック６２１から現在のブロック６１１に移動する。また、オブジェクトは、動き軌跡6６１３に沿ってＴＤ１  ６３３によって示される期間にわたって現在のブロック６１１から後続参照ブロック６３１に移動する。
【００５６】
先行動きベクトル（ＭＶ０）６２５は、動き軌跡６１３に沿ったＴＤ０  ６２３にわたる（例えば、先行参照フレーム６２０と現在のフレーム６１０との間の）オブジェクトの動きの方向及び大きさを記述する。後続動きベクトル（ＭＶ１）６３５は、動き軌跡６１３に沿ったＴＤ１  ６３３にわたる（例えば、現在のフレーム６１０と後続参照フレーム６３０との間の）オブジェクトの動きの方向及び大きさを記述する。そのため、双方向相互予測６００では、先行参照ブロック６２１及び／又は後続参照ブロック６３１、ＭＶ０  ６２５及びＭＶｌ  ６３５を用いることにより現在のブロック６１１を符号化及び再構成できる。
【００５７】
イントラ予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスが画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、相互予測（異なるフレーム内のブロック間の相関関係）又はイントラ予測（同じフレーム内のブロック間の相関関係）により画像ブロックが圧縮され得る。イントラ予測では、サンプルの参照ライン（reference  line）から現在の画像ブロックが予測される。参照ラインは、隣接ブロックとも呼ばれる近隣画像ブロックからのサンプルを含む。現在のブロックからのサンプルは、最も近いルマ（光）又はクロマ（色）値を有する参照ラインからのサンプルとマッチングされる。現在のブロックは、マッチングサンプルを示す予測モードとして符号化される。予測モードは、角度予測モード、直流（ＤＣ）モード及び平面モード（planer  mode）を含む。予測モードにより予測された値と実際の値との差分は、残差値として残差ブロック内に符号化される。
【００５８】
図７は、ビデオ符号化で用いられる例示のイントラ予測モード７００を示す概略図である。例えば、イントラ予測モード７００は、方法１００のステップ１０５及び１１３、コーデックシステム２００のイントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７、エンコーダ３００のイントラピクチャ予測コンポーネント３１７及び／又はデコーダ４００のイントラピクチャ予測コンポーネント４１７により用いられ得る。具体的には、選択された予測モード及び残りの残差ブロックを含む予測ブロックに画像ブロックを圧縮するためにイントラ予測モード７００を用いることができる。
【００５９】
上述したように、イントラ予測は、現在の画像ブロックを、１つ以上の隣接ブロックの対応するサンプル又は複数のサンプルにマッチングさせることを伴う。次に、現在の画像ブロックは選択された予測モードインデックス及び残差ブロックとして表すことができ、これは現在の画像ブロックに含まれるルマ／クロマ値の全てを表すよりもはるかに小さい。イントラ予測は、利用可能な参照フレームがない場合又は現在のブロック若しくはフレームに相互予測符号化が用いられていない場合に用いることができる。イントラ予測のための参照サンプルは、同じフレーム内の先に符号化された（又は再構成された）隣接ブロックから導出され得る。Ｈ．２６４及びＨ．２６５／ＨＥＶＣとしても知られるアドバンスドビデオ符号化（ＡＶＣ）の双方は、近隣ブロックの境界サンプルの参照ラインをイントラ予測のための参照サンプルとして用いる。異なるテクスチャ又は構造特性を網羅するために、多くの異なるイントラ予測モードが用いられる。Ｈ．２６５／ＨＥＶＣは、現在のブロックを１つ以上の参照サンプルに空間的に関連付ける３５イントラ予測モード７００をサポートする。具体的には、イントラ予測モード７００は、モード２〜３４として索引付けられた（indexed）３３の方向予測モード、モード１として索引付けされたＤＣモード及びモードゼロとして索引付けられた平面モードを含む。
【００６０】
符号化の間、エンコーダは、現在のブロックのルマ／クロマ値を、隣接ブロックの端から端にわたる（across  the  edges  of  neighboring  blocks）参照ライン内の対応する参照サンプルのルマ／クロマ値とマッチングさせる。参照ラインのうちの１つと最良のマッチが見つかった場合、エンコーダは、最良のマッチング参照ラインを指す方向性イントラ予測モード７００の１つを選択する。説明を明確にするために、特定の方向性イントラ予測モード７００を参照するために頭字語が以下で用いられる。ＤｉｒＳは、左下から時計回りにカウントする場合の開始方向性イントラ予測モード（例えば、ＨＥＶＣにおけるモード２）を表す。ＤｉｒＥは左下から時計回りにカウントする場合の終了方向性イントラ予測モード（例えば、ＨＥＶＣにおけるモード３４）を表す。ＤｉｒＤは、左下から時計回りにカウントする場合の中間方向性イントラ符号化モード（例えば、ＨＥＶＣにおけるモード１８）を表す。ＤｉｒＨは水平イントラ予測モード（例えば、ＨＥＶＣにおけるモード１０）を表す。ＤｉｒＶは垂直イントラ予測モード（例えば、ＨＥＶＣにおけるモード２６）を表す。
【００６１】
上述したように、ＤＣモードは平滑化機能として作用し、現在のブロックの予測値を、隣接ブロックを横断する参照ライン内の全ての参照サンプルの平均値として導出する。同じく上述したように、平面モードは、参照サンプルの参照ラインの底部と左上又は左上と右上のサンプル間の滑らかな遷移（例えば、値の一定の勾配）を示す予測値を返す。
【００６２】
ＤｉｒＨからＤｉｒＶまでの平面、ＤＣ及び予測モードの場合、参照ラインの上段及び参照ラインの左列の双方内のサンプルが参照サンプルとして用いられる。（ＤｉｒＳ及びＤｉｒＨを含む）ＤｉｒＳからＤｉｒＨへの予測方向を持つ予測モードの場合、参照ラインの左列の先に符号化され且つ再構成された隣接ブロック内の参照サンプルが参照サンプルとして用いられる。（ＤｉｒＶ及びＤｉｒＥを含む）ＤｉｒＶからＤｉｒＥへの予測方向を持つ予測モードの場合、参照ラインの上段の先に符号化され且つ再構成された隣接ブロックの参照サンプルが参照サンプルとして用いられる。
【００６３】
図８は、ビデオ符号化におけるブロック８００の方向関係の一例を示す概略図である。例えば、イントラ予測モード５００を選択する際にブロック８００が用いられ得る。そのため、ブロック８００は、方法１００のステップ１０５及び１１３、コーデックシステム２００のイントラピクチャ推定コンポーネント２１５及びイントラピクチャ予測コンポーネント２１７、エンコーダ３００のイントラピクチャ予測コンポーネント３１７及び／又はデコーダ４００のイントラピクチャ予測コンポーネント４１７により用いられ得る。ビデオ符号化では、ブロック８００はビデオコンテンツに基づいて分割されるため、様々な形状及びサイズの多くの長方形及び正方形を含み得る。ブロック８００は説明の目的のために正方形として図示されているため、説明の明確性をサポートするために実際のビデオ符号化ブロックから単純化されている。
【００６４】
ブロック８００は現在のブロック８０１及び隣接ブロック８１０を含む。現在のブロック８１０は特定の時間に符号化される任意のブロックである。隣接ブロック８１０は現在のブロック８０１の左端又は上端のすぐそばに近接する任意のブロックである。ビデオ符号化は概して左上から右下に進む。そのため、隣接ブロック８１０は、現在のブロック８０１の符号化の前に符号化され且つ再構成され得る。現在のブロック８０１を符号化する場合、エンコーダは、現在のブロック８０１のルマ／クロマ値を、隣接ブロック８１０の端から端を横切る参照ラインからの参照サンプル（又は複数の参照サンプル）とマッチングさせる。そして、マッチングは、例えば、マッチングされたサンプル（又はＤＣ又は平面モードが選択された場合は複数のサンプル）を指すイントラ予測モード７００からイントラ予測モードを選択するために用いられる。次に、選択されたイントラ予測モードは、現在のブロック８０１のルマ／クロマ値は選択されたイントラ予測モードに対応する参照サンプルと実質的に同様であることを示す。差異があれば残差ブロックで保持できる。次に、選択されたイントラ予測モードはビットストリームに符号化される。デコーダでは、現在のブロック８０１は、選択されたイントラ予測モードに対応する隣接ブロック８１０内の選択された参照ラインにおける参照サンプルのルマ／クロマ値を（残差ブロックからの残差情報と共に）用いることにより再構成できる。
【００６５】
インループフィルタ
ビデオ符号化スキームはビデオ信号を画像フレームに細分し、次いで画像フレームを様々な種類のブロックに細分する。そして、画像ブロックが圧縮される。このアプローチは、圧縮されたビデオ信号が再構成されて表示された場合にビジュアルアーチファクトを作り出し得る。例えば、画像圧縮プロセスはブロック形状を人為的に加えることができる。これはブロッキングとして知られ、ブロック分割境界で概して起こる。加えて、量子化ノイズとして知られる非線形信号依存丸め誤差（non-linear  signal  dependent  rounding  error）も圧縮画像に人為的に加えられ得る。そのようなアーチファクトを補正するために様々なフィルタが用いられ得る。フィルタは再構成されたフレームに後処理で適用され得る。後処理は、圧縮されたビデオ信号の大半の部分が再構成された後で且つユーザに表示される直前に起こる。フィルタは、インループフィルタリングと呼ばれるメカニズムを用いることにより圧縮／解凍プロセスの一部としても適用され得る。インループフィルタリングは、関連する画像の間でより正確な圧縮をサポートするために符号化及び／又は復号化プロセスの間に再構成されたビデオ画像にフィルタを適用するフィルタリングスキームである。例えば、相互予測は先行及び/又は後続の画像フレームに基づいて画像フレームを符号化する。エンコーダでは、圧縮された画像が再構成され、再構成された画像は、相互予測を介して先行する／後続の画像フレームを符号化する際に用いるためにより正確な画像を提供するようにインループフィルタリングを介してフィルタリングされる。デコーダでは、圧縮された画像が再構成され、エンドユーザによる視聴のためにより正確な画像を生成すること及び正確な相互予測をサポートすることの双方のためにインループフィルタリングを介してフィルタリングされる。インループフィルタリングは、デブロッキングフィルタ、サンプル適応オフセット（ＳＡＯ）フィルタ及び適応ループフィルタ等のいくつかのフィルタを用いる。インループフィルタリングはノイズ抑制フィルタも含むことができる。
【００６６】
図９は、例示のインループフィルタ９００を示すブロック図である。インループフィルタ９００は、インループフィルタ２２５、３２５及び／又は４２５を実施するために用いられ得る。インループフィルタ９００はノイズ抑制フィルタ９４１、デブロッキングフィルタ９４３、サンプル適応オフセット（ＳＡＯ）フィルタ９４５及び適応ループフィルタ９４７を含む。インループフィルタ９００のフィルタは、再構成された画像ブロック及び／又は残差ブロックに順次適用される。
【００６７】
ノイズ抑制フィルタ９４１は画像圧縮によって生じる量子化ノイズを除去するように構成されている。具体的には、画像のエッジに生じるアーチファクトを除去するためにノイズ抑制フィルタ９４１が用いられる。例えば、画像圧縮は、画像内の異なる色／光パッチ間のシャープな遷移（エッジ）に隣接して明白で不正確な色／光値を作り得る。これはリンギングと呼ばれ、シャープなエッジに関連する画像データの高周波部分への変換の適用によって生じる。そのようなリンギングアーチファクトを緩和するためにノイズ抑制フィルタ９４１が用いられる。ノイズ抑制フィルタ９４１は、空間領域（例えば、ピクセルの空間方向）及び周波数領域（例えば、ピクセルデータに関する変換係数値の関係）の両方で動作する。エンコーダでは、ノイズ抑制フィルタ９４１は再構成されたフレームを参照マクロブロックに分割する。そのようなブロックは、より小さな参照ブロックに細分することもできる。ノイズ抑制フィルタ９４１は、ブロックにおける量子化ノイズの推定量に基づいてフィルタリングすべきフレームの部分を示すアプリケーションマップを先ず生成する。次に、ノイズ抑制フィルタ９４１は、アプリケーションマップによって示される各参照ブロックに対してマッチングコンポーネントを用いて対応する参照ブロックと同様の一組のパッチを決定する。ここで、同様とは、クロマ／ルマ値が所定の範囲内にあることを示す。次に、ノイズ抑制フィルタ９４１はパッチをクラスタにグループ化し、二次元（２Ｄ）変換を用いてクラスタを周波数領域に変換し、その結果周波数領域パッチが得られる。ノイズ抑制フィルタ９４１は、周波数領域パッチを空間領域に戻すために変換するために逆２Ｄ変換も用いり得る。
【００６８】
デブロッキングフィルタ９４３は、ブロックベースの相互及びイントラ予測によって生じるブロック状のエッジを除去するように構成されている。デブロッキンングフィルタ９４３は、画像部分（例えば、画像スライス）をスキャンして、分割境界で生じるクロマ及び／又はルマ値の不連続部を探す。次に、デブロッキンングフィルタ９４３は、そのような不連続部を除去するために平滑化機能をブロック境界に適用する。デブロッキンングフィルタ９４３の強度は、ブロック境界に隣接する領域で生じる空間アクティビティ（例えば、ルマ／クロマ成分の分散）に応じて変更され得る。
【００６９】
ＳＡＯフィルタ９４５は、符号化プロセスによって引き起こされるサンプル歪みに関連するアーチファクトを除去するように構成されている。エンコーダにおけるＳＡＯフィルタ９４５は、再構成された画像のデブロックされたサンプルを、相対的なデブロッキンングエッジ形状及び／又は方向に基づいていくつかのカテゴリーに分類する。次に、オフセットが決定されて、カテゴリーに基づいてサンプルに加えられる。次に、オフセットがビットストリームに符号化され、デコーダにおいてＳＡＯフィルタ９４５により用いられる。ＳＡＯフィルタ９４５は、バンディングアーチファクト（平滑な遷移の代わりに値のバンド）及びリンギングアーチファクト（シャープなエッジの近傍のスプリアス信号)を除去する。
【００７０】
適応ループフィルタ９４７は、エンコーダにおいて、再構成された画像を元の画像と比較するように構成されている。適応ループフィルタ９４７は、例えばウィナーベースの適応フィルタを介して、再構成された画像と元の画像との間の差分を記述する係数を特定する。そのような係数はビットストリームに符号化され、再構成された画像と元の画像との間の差分を除去するためにエンコーダにおいて適応ループフィルタ９４７で用いられる。適応ループフィルタ９４７はアーチファクトを補正するのに有効であるが、再構成された画像と元の画像との間の差分が大きいほど、シグナリングすべき係数の数がより大きくなる。これは、ひいてはより大きなビットストリームを生成するため、圧縮の有効性が低減される。そのため、適応ループフィルタ９４７を適用する前に他のフィルタによる差分の最小化は改善された圧縮をもたらす。
【００７１】
分割
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。例えば、エンコーダ及びデコーダの双方は、Ｈ．２６５としても知られる高効率ビデオ符号化方式（ＨＥＶＣ）等の符号化規格を用いり得る。エンコーダで、ビデオ信号がフレームに分離される。次に、フレームはピクセルのグループを含む画像ブロックに分割される。次に、画像ブロックが圧縮され、フィルタリングされ、ビットストリームに符号化される。次に、ビットストリームはデコーダに送信され、デコーダはエンドユーザに表示するためにビデオ信号を再構成する。
【００７２】
分割システムは、画像ブロックをサブブロックに分割するように構成されている。例えば、ノード（例えば、ブロック）を子ノード（例えば、サブブロック）に分割するために様々な分割モードを用いる木構造を用いることができる。異なる分割を得るために異なる分割モードを用いることができる。さらに、分割モードは、さらなる細分ノードに再帰的に適用することもできる。分割モードのそのような適用により様々な分割パターンが得られる。
【００７３】
図１０は、ブロック分割に用いられる例示の分割モード１０００を示す。分割モード１０００は、分割の間に親ノード（例えば、画像ブロック）を複数の子ノード（例えば、画像サブブロック）に分割するメカニズムである。分割モード１０００は、四分木（ＱＴ）分割モード１００１、垂直二分木（ＢＴ）分割モード１００３、水平ＢＴ分割モード１００５、垂直三分木（ＴＴ）分割モード１００７及び水平ＴＴ分割モード１００９を含む。ＱＴ分割モード１００１はブロック分割のための木構造であり、４Ｍ×４ＮのサイズのノードがＭ×Ｎのサイズの４つの子ノードに分割され、Ｍはブロック幅を示し、Ｎはブロック高さを示す。垂直ＢＴ分割モード１００３及び水平ＢＴ分割モード１００５はブロック分割のための木構造であり、それぞれ、サイズが４Ｍ×４Ｎのノードがサイズが２Ｍ×４Ｎの２つの子ノードに垂直に分割されるか又はサイズが４Ｍ×２Ｎの２つの子ノードに水平に分割される。垂直ＴＴ分割モード１００７及び水平ＴＴ分割モード１００９はブロック分割のための木構造であり、それぞれ、サイズが４Ｍ×４ＮのノードがサイズがＭ×４Ｎ、２Ｍ×４Ｎ及びＭ×４Ｎの３つの子ノードに垂直に分割されるか又はサイズが４Ｍ×Ｎ、４Ｍ×２Ｎ及び４Ｍ×Ｎの３つの子ノードに水平に分割される。３つの子ノードのうち、最も大きなノードが中心に位置する。
【００７４】
分割モード１０００は、ブロックをさらに分割するためにも再帰的に適用され得る。例えば、ＱＴ分割モード１００１でノードを分割し、次いで垂直ＢＴ分割モード１００３及び／又は水平ＢＴ分割モード１００５で各子ノード（場合によっては４分木葉ノードと呼ばれる）を分割することにより、４分木２分木（ＱＴ−ＢＴ）を作成できる。さらに、４分木分割されたノードを分割し、次いで、得られた子ノードを垂直ＴＴ分割モード１００７及び／又は水平ＴＴ分割モード１００９で分割することにより、４分木３分木（ＱＴ−ＴＴ）を作成できる。
【００７５】
ＨＥＶＣはジョイント探索モデル（ＪＥＶ）アプリケーション上で動作する。ＪＥＭでは、符号化木ユニット（ＣＴＵ）を複数のブロックに分割するためにＱＴ―ＢＴブロック分割が用いられる。ブロック分割の種類をさらに充実させるために、ＴＴブロック分割をＪＥＭに含めることが提案されている。ＱＴ、ＱＴ−ＢＴ、ＱＴ−ＴＴブロック分割モードに基づくビデオ符号化では、深度Ｋにおける符号化又は予測ブロックは、ＢＴ、ＴＴ又はＱＴ分割モードにより深度がＫ＋１の数Ｎのより小さな符号化又は予測ブロックに分割されてもよく、Ｎはそれぞれ２、３又は４に設定される。分割モードの分割パターンを図１０に示し、分割パターンは、親ノードから分割された２つ以上の子ノードのサイズ及び位置を示す。
【００７６】
変換
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。
【００７７】
例えば、エンコーダ及びデコーダの双方は、Ｈ．２６５としても知られる高効率ビデオ符号化方式（ＨＥＶＣ）等の符号化規格を用いり得る。Ｈ.２６５は予測及び変換フレームワークに基づく。エンコーダでは、ビデオファイルがフレームに分離される。次に、フレームは、ピクセル群を含む画像ブロックに細分される。画像ブロックは、予測モード及び動きベクトル情報等の予測情報を含む予測ブロックと、変換モード、変換係数及び量子化パラメータ等の残差情報を含む残差ブロックとにさらに分解される。予測ブロック及び残差ブロックは画像ブロックよりも少ない記憶空間を用いるが、画像ブロックを再構成するためにデコーダにより用いることができる。予測ブロック及び残差ブロックはビットストリームに符号化されデコーダに転送される及び／又は要求に応じて後で転送するために記憶される。デコーダでは、予測情報及び残差情報がパースされる。次に、パースされた予測情報は、イントラ予測又は相互予測を用いることにより予測サンプルを生成するために用いられる。イントラ予測は、同じフレーム内の他の画像ブロックを予測するために再構成された画像ブロックを用いる。相互予測は、隣接フレーム間の他の画像ブロックを予測するために再構成された画像ブロックを用いる。さらに、残差情報は、例えば、逆量子化及び逆変換を連続的に適用することにより残差サンプルを生成するのに用いられる。予測サンプル及び残差サンプルは、（例えば、エンドユーザに対してモニタ上に表示するために）エンコーダにより符号化された画像ブロックに対応する再構成されたサンプルを得るために組み合わされる。
【００７８】
空間的可変変換（ＳＶＴ）はビデオ符号化効率をさらに改善するために用いられるメカニズムである。ＳＶＴは残差ブロックをさらに圧縮するために変換ブロックを用いる。具体的には、矩形の残差ブロックは幅及び高さｈ（例えば、ｗ×ｈ）を含む。残差ブロックよりも小さい変換ブロックが選択される。そのため、変換ブロックは残差ブロックの対応部分を変換するために用いられ、残差ブロックの残りの部分を追加の符号化／圧縮なしで残す。ＳＶＴの背後にある理論的根拠は、残差情報が残差ブロック内で均等に分布していない可能性があるということである。適応位置を持つより小さな変換ブロックを用いることにより、残差ブロック内の残留情報の大半を、残差ブロック全体を変換する必要なしにキャプチャできる。このアプローチは、いくつかの場合において、残差ブロック内の残差情報の全てを変換するよりも良好な符号化効率が得られ得る。変換ブロックは残差ブロックよりも小さいため、ＳＶＴは残差ブロックに対する変換の位置をシグナリングするためのメカニズムを用いる。そのような位置のシグナリングは符号化プロセスの全体的なシグナリングオーバーヘッドを増加させるため、圧縮の効率を低下させる。加えて、全ての場合に同じ種類の変換ブロックを用いることは、場合によっては有益な結果をもたらさない可能性がある。
【００７９】
図１１は、例示のビデオ符号化メカニズム１１００の概略図である。エンコーダは１つ以上のフレームから画像ブロック１１０１を得ることができる。例えば、画像は複数の矩形画像領域に分割され得る。画像の各領域は符号化木ユニット（ＣＴＵ）に対応する。ＣＴＵは、ＨＥＶＣにおける符号化ユニット等の複数のブロックに分割される。次に、ブロック分割情報はビットストリーム１１１１に符号化される。したがって、画像ブロック１１０１は画像の分割された部分であり、画像の対応部分におけるルマ成分及び／又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック１１０１は、イントラ予測のための予測モード及び／又は相互予測のための動きベクトル等の予測情報を含む予測ブロック１１０３として符号化される。次に、予測ブロック１１０３として画像ブロック１１０１を符号化することにより、予測ブロック３０３と画像ブロック３０１との間の差分を示す残差情報を含む残差ブロック１１０５が残され得る。
【００８０】
なお、画像ブロック１１０１は、１つの予測ブロック１１０３及び１つの残差ブロック１１０５を含む符号化ユニットとして分割され得る。予測ブロック１１０３は符号化ユニットの全ての予測サンプルを含んでもよく、残差ブロック１１０５は、符号化ユニットの全ての残差サンプルを含んでもよい。そのような場合では、予測ブロック１１０３は残差ブロック１１０５と同じサイズである。別の例では、画像ブロック１１０１は、２つの予測ブロック１１０３及び１つの残差ブロック１１０５を含む符号化ユニットとして分割され得る。そのような場合では、各予測ブロック１１０３は符号化ユニットの予測サンプルの一部を含み、残差ブロック１１０５は符号化ユニットの残差サンプルの全てを含む。さらに別の例では、画像ブロック１１０１は、２つの予測ブロック１１０３及び４つの残差ブロック１１０５を含む符号化ユニットに分割される。符号化ユニット内の残差ブロック１１０５の分割パターンは、ビットストリーム１１１１内にシグナリングされ得る。そのような位置パターンは、ＨＥＶＣにおける残差四分木（ＲＱＴ）を含み得る。さらに、画像ブロック１１０１は、画像サンプル（又はピクセル）のＹ成分として示されるルマ成分（例えば、光）のみを含み得る。他の場合では、画像ブロック１１０１は画像サンプルのＹ、Ｕ及びＶ成分を含んでもよく、Ｕ及びＶは青色輝度及び赤色輝度（ＵＶ）の色空間におけるクロミナンス成分（例えば、色）を示す。
【００８１】
情報をさらに圧縮するために変換が用いられ得る。具体的には、残差ブロック１１０５をさらに圧縮するために変換ブロック１１０７が用いられ得る。変換ブロック１１０７は、逆離散コサイン変換（ＤＣＴ）及び／又は逆離散サイン変換（ＤＳＴ）等の変換を含む。予測ブロック１１０３と画像ブロック１１０１との間の差分は、変換係数を用いることにより変換に適合される。変換ブロック１１０７の変換モード（例えば、逆ＤＣＴ及び／又は逆ＤＳＴ）及び対応する変換係数を示すことにより、デコーダは残差ブロック１１０５を再構成できる。厳密な再生が要求されない場合、変換係数は、変換のためにより良好な適合を生み出すために特定の値を丸めることによりさらに圧縮できる。このプロセスは量子化として知られ、許容可能な量子化を記述する量子化パラメータに従って行われる。したがって、変換ブロック１１０７の変換モード、変換係数及び量子化パラメータは、場合によっては単に残差ブロックとも呼ばれ得る変換残差ブロック１１０９内に変換残留情報として格納される。
【００８２】
そして、予測ブロック１１０３の予測情報及び変換残差ブロック１１０９の変換残差情報はビットストリーム１１１１に符号化できる。ビットストリーム１１１１は記憶及び／又はデコーダに送信できる。次に、デコーダは画像ブロック１１０１を回復するためにプロセスを逆に行うことができる。具体的には、デコーダは、変換ブロック１１０７を決定するために変換残差情報を用いることができる。次に、変換ブロック１１０７は、残差ブロック１１０５を決定するために変換残差ブロック１１０９と共に用いることができる。次に、残差ブロック１１０５及び予測ブロック１１０３は、画像ブロック１１０１を再構成するために用いることができる。そして、画像ブロック１１０１はフレームを再構成するために他の復号化された画像ブロック１１０１に対して配置され、符号化されたビデオを回復するためにそのようフレームを配置できる。
【００８３】
なお、一部の予測ブロック１１０３は、残差ブロック１１０５をもたらすことなく符号化され得る。しかしながら、そのような場合は変換ブロック１１０７の使用がもたらされないため、さらなる説明はしない。変換ブロック１１０７は、相互予測ブロック又はイントラ予測ブロックのために用いられ得る。さらに、変換ブロック１１０７は、特定の相互予測メカニズム（例えば、並進モデルに基づく動き補償）によって生成される残差ブロック１１０５に対して用いられ得るが、他の特定の相互予測メカニズム（例えば、アフィンモデルに基づく動き補償）によって生成される残差ブロック１１０５には用いられない場合がある。
【００８４】
図１２は、本開示の一実施形態に係るビデオ符号化のための例示のコンピュータ装置１２００の概略図である。コンピュータ装置１２００は、本明細書に記載の開示された実施形態を実施するのに好適である。コンピュータ装置１２００は、データを受信するための入口ポート１２２０及び受信機ユニット（Ｒｘ）１２１０；データを処理するためのプロセッサ、論理ユニット又は中央処理ユニット（ＣＰＵ）１２３０；データを送信するための送信機ユニット（ＴＸ）１２４０及び出口ポート１２５０；データを記憶するためのメモリ１２６０を含む。コンピュータ装置１２００は、光又は電気信号の出入りのために入口ポート１２２０、受信機ユニット１２１０、送信機ユニット１２４０及び出口ポート１２５０に連結される光／電気（ＯＥ）コンポーネント及び電気／光（ＥＯ）コンポーネントも含み得る。コンピュータ装置１２００は、一部の例では無線送信機及び／又は受信機も含み得る。
【００８５】
プロセッサ１２３０はハードウェア及びソフトウェアにより実施される。プロセッサ１２３０は、１つ以上のＣＰＵチップ、コア（例えば、マルチコアプロセッサとして）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）及びデジタル信号プロセッサ（ＤＳＰ）として実施され得る。プロセッサ１２３０は、入口ポート１２２０、受信機ユニット１２１０、送信機ユニット１２４０、出口ポート１２５０及びメモリ１２６０と通信する。プロセッサ１２３０は符号化モジュール１２１４を含む。符号化モジュール１２１４は上述した開示の実施形態を実施する。例えば、符号化モジュール１２１４は様々な符号化動作を実施、処理、準備又は提供する。したがって、符号化モジュール１２１４を含めることは、コンピュータ装置１２００の機能に実質的な改善をもたらし、コンピュータ装置１２００の異なる状態への変換をもたらす。あるいは、符号化モジュール１２１４は、メモリ１２６０に記憶され且つプロセッサ１２３０によって実行される命令として実施される（例えば、非一時的媒体に記憶されるコンピュータプログラム製品として）。
【００８６】
メモリ１２６０は１つ以上のディスク、テープドライブ及びソリッドステートドライブを含み、プログラムが実行のために選択された場合にそのようなプログラムを記憶し、プログラムの実行の間に読み出される命令及びデータを記憶するオーバーフローデータ記憶装置として用いられ得る。メモリ１２６０は揮発性及び／又は不揮発性であってもよく、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、三値連想メモリ（ＴＣＡＭ）及び／又はスタティックランダムアクセスメモリ（ＳＲＡＭ）であり得る。コンピュータ装置１２００は、エンドユーザとやりとりするための入出力（Ｉ／Ｏ）装置も含み得る。例えば、コンピュータ装置１２００は、視覚出力のためのモニタ等のディスプレイ、音声出力のためのスピーカー及びユーザ入力のためのキーボード／マウス／トラックボール等を含み得る。
【００８７】
図１３は、点群媒体（point  cloud  media）を示すシステム１３００の一例である。とりわけ、システム１３００は点群媒体のフレームの様々な例を示す。本例は、男性１３０２、前向きの女性１３０４及び後向きの女性１３０６を含む。一部の実施では、システム１３００はより多い又は少ない点群媒体の例を含むことができる。点群媒体は、三次元（３−Ｄ）空間におけるオブジェクト又は人の仮想表現と、それらに対応する経時的な動きを含むことができる。
【００８８】
通常、点群媒体は、３−Ｄオブジェクトの外面の輪郭を示す、３−Ｄ空間におけるデータ点のセットを含む。例えば、オブジェクトは、人間、製造品目及び実世界のオブジェクトを含むことができる。オブジェクトは、例えばカメラによってリアルタイムに記録でき、ディスプレイ又は投影スクリーン上で三次元空間に仮想的に表現できる。点群媒体のフレームは、特定の時点におけるオブジェクトの３−Ｄ表現を含むことができる。点群媒体の連続フレームは点群媒体の動的表現を表す。
【００８９】
次の頭字語の定義を説明する。グループオブフレーム（ＧｏＦ）−さらなる処理のために用いられる固定の時間（fixed  moment  of  time）に登録された点群のセット。グループオブピクチャ（ＧｏＰ）−ビデオ圧縮符号化のために用いられる点群に由来する投影のセット。点群圧縮（ＰＣＣ）−送信のために点群媒体を圧縮するための技術。
【００９０】
ビデオベースのＰＣＣコーデックソリューションは、３−Ｄ点群データを２−Ｄ投影パッチにセグメンテーションすることに基づく。ビデオベースのＰＣＣは、没入型６自由度、動的ＡＲ／ＶＲオブジェクト、文化遺産、ＧＩＳ、ＣＡＤ、自律ナビゲーション等のコンテンツで幅広く用いられている。
【００９１】
点群媒体は、エンターテイメント産業、インテリジェント自動車ナビゲーション産業、地理空間検査、実世界のオブジェクトの３−Ｄモデリング及び可視化を含む広範な用途で不可欠な一部になっている。これらの用途のそれぞれにおいて、様々なクライアント装置は点群媒体を表示及び示すことができる。非一様サンプリング形状を考慮した場合、そのようなデータの記憶及び送信のためにコンパクトな表現を有することが有益である。
【００９２】
例えば、クライアント装置は、製造部品のために、計測及び品質検査のために及び多数の視覚化、アニメーション、レンダリング及びマスカスタム化用途のために３−Ｄコンピュータアニメ描画（ＣＡＤ）モデルを作成するために点群媒体を用いることができる。一部の例では、骨、腕又は脚等が占める空間の量を可視化する場合等医用画像でしばしば行われるように、点群媒体は容積データ（volumetric  data）を表すのにも用いることができる。
【００９３】
既存の３―Ｄ表示と比較して、人間の輪郭を描く点群面等の不規則な点群面がより一般的であり、より広範囲なセンサ及びデータ収集戦略に適用可能である。例えば、仮想現実世界での３−Ｄ表示や、テレプレゼンス環境でのリモートレンダリングの場合、仮想図形のレンダリングやリアルタイム命令は、高密度の点群データセット（dense  point  cloud  data  sets）として処理される。例えば、テレプレゼンス環境上で男性１３０２、前向きの女性１３０４及び後ろ向きの女性１３０６が仮想現実世界で表示される例では、これらの単一の点群フレームのそれぞれは高密度の点群データセットとして処理される。
【００９４】
システム１３００は、特定の時点における点群媒体のフレームにより表される異なるオブジェクトを示す。クライアント装置等のデバイスは、一定期間にわたって点群媒体の連続フレームを表示できる。一部の例では、デバイスは没入型６自由度（６ＤｏＦ）環境、動的拡張現実（ＡＲ）及び仮想現実（ＶＲ）環境、文化遺産環境、地理情報システム（ＧＩＳ）環境、コンピュータ支援設計（ＣＡＤ）において及び自律ナビゲーションシステムにおいて点群媒体を表示できる。
【００９５】
点群媒体を受信、表示及び送信可能なデバイスは、パーソナルコンピュータ、ハンドヘルドデバイス、テレビ、ナビゲーションシステム又は点群媒体を表示可能な他のデバイス等のクライアント装置を含むことができる。一部の実施では、これらのデバイスは、点群媒体を内部メモリに記憶できるか又は点群媒体を外部記憶装置に記憶できる。点群媒体の記憶には大量の記憶領域が必要になるため、通常、点群媒体は外部記憶装置に記憶され且つアクセスされる。
【００９６】
クライアント装置が点群媒体をキャプチャし且つ中継するために、クライアント装置は点群媒体を記憶及び／又は送信するのに必要な帯域幅を低減するためにマルチサンプリング技術及びデータ圧縮技術に依拠する。ある場合では、点群媒体の動的表現の記憶及び送信は、点群媒体の単一フレームの純然たるサイズにより複雑である。例えば、点群媒体の単一フレームは、例えば数百ギガバイト等の大量のデータを含むことができる。そのため、点群媒体の複数のフレームを記憶すること及び送信することは、データ損失を引き起こし得る様々な媒体にわたって大量の点群媒体のフレームが適切に送信されることを確実にするために、データ圧縮及び符号化技術が必要になる。
【００９７】
図１４は、点群フレームシーケンスを示すシステム１４００の一例である。とりわけ、システム１４００は、異なるタイムスタンプにおける点群媒体のフレームシーケンスを表す動的点群媒体シーケンスを示す。例えば、システム１４００は、第１のタイムスタンプに第１の点群フレーム１４０２を、第２のタイムスタンプに第２の点群フレーム１４０４を、第３のタイムスタンプに第３の点群フレーム１４０６を含む。第１、第２及び第３の点群フレームは、リアルタイムで見た場合に三次元環境において増分タイムスタンプで右足を前に動かす女性１４００を示す動的点群シーケンスを構成する。増分タイムスタンプは、いくつかの例を挙げると秒又はマイクロ秒等の任意の単位の時間で測定できる。
【００９８】
システム１４００は、点群媒体１４０２のフレームのための境界ボックス１４０８、点群媒体１４０４の別のフレームのための境界ボックス１４１０及び点群媒体１４０６の別のフレームのための境界ボックス１４１２を示す。各点群媒体のための境界ボックスは、例えば、ｕ１、ｖ１及びｄ１の位置座標で表されるＸ次元、Ｙ次元及びＺ次元の３次元における固定グリッドを含む。
【００９９】
境界ボックスは、空又はデータで満たされ得る点を含む。一部の例では、空の点はボイド点であり得る。一部の例では、占有点は１つ以上の属性を含むことができる。ボイド点は、属性を持たない点群媒体のフレーム内の位置を含むことができる。他方で、占有点は、少なくとも１つの属性を持つ点群媒体のフレーム内の位置を含むことができる。属性は、例えば、クロマ、ルマ、反射率及びカラーを含むことができる。境界ボックス内の点は特定の座標系により特定できる。例えば、点群媒体１４０２のフレームの境界ボックス１４０８内の点はｕ１、ｖ１及びｄ１座標系により示すことができる。
【０１００】
通常、クライアント装置が点群媒体の１つ以上のフレームをネットワークを介して別のクライアント装置に送信する場合、点群媒体の各フレームは符号化される。符号化は適切な送信を確実にし且つ受信先のクライアント装置で受信した場合にデータが失われないことを確実にする。しかしながら、点群媒体のフレームの符号化は、点群媒体の１フレームのサイズが数百ギガバイトを超え得るため複雑になり得る。例えば、第１の点群フレーム１４０２を符号化しようとするクライアント装置等のシステムは５００ギガバイトのデータを符号化する必要があり得るため、そうするための時間及びリソースが浪費され得る。そのため、点群媒体の特定のフレームを符号化するために境界ボックス、例えば、境界ボックス１４０８に依拠する異なる符号化技術が必要になる。以下で説明するように、境界ボックス表現は、システムが点群媒体の単一フレームを圧縮フォーマットで符号化できるようにする。
【０１０１】
一部の実施では、点群媒体のフレームはビデオベースの点群圧縮（Ｖ―ＰＣＣ）コーダを用いて符号化される。Ｖ−ＰＣＣコーダは、点群媒体のフレームを三次元パッチのセットにセグメント化することに基づいて動作する。三次元パッチは三次元の境界ボックスによって提示され、送信のために操作される。これについて以下でさらに説明する。
【０１０２】
図１５は、三次元パッチ境界ボックスを二次元パッチ投影にする変換プロセス１５００の一例である。一部の実施では、変換プロセス１５００は、Ｖ−ＰＣＣ符号化ソリューションを用いるＶ−ＰＣＣエンコーダによって行われる。
【０１０３】
Ｖ―ＰＣＣ符号化ソリューションの間、Ｖ―ＰＣＣエンコーダは三次元境界ボックスを用いて点群媒体のフレームを符号化する。一般に、一連の点が繰り返されて境界ボックスに投影され、その後にパッチが平滑連続面基準（smoothness  continuous  surface  criteria）の定義に基づいてセグメント化される。各パッチは特定且つ一意のインデックス及び対応する３−Ｄ座標に対応する。さらに、一致したパッチのリストは、リスト内のそれらの順序が同様であることを確実にするために存在し、このリスト内の一致したパッチは同じインデックスを有する。
【０１０４】
先ず、３−Ｄ点群媒体のフレームが１つ以上の三次元（３−Ｄ）パッチ境界ボックス１５０４等の一組の３−Ｄパッチ境界ボックス又はセグメンテーションにセグメント化される。３−Ｄパッチ境界ボックス１５０４は、ｕ１、ｖ１、ｄ１、ｕ１のサイズ、ｖ１のサイズ及びｄ１のサイズというパラメータを含む。３−Ｄパッチ境界ボックス１５０４のパラメータは、点群３Ｄ境界ボックス１５０２内の３−Ｄパッチ境界ボックス１５０４のサイズ及び配置を示す。一部の実施では、システムは、フレーム内のオブジェクトをカバーするために、点群媒体のフレーム全体のために複数の３−Ｄパッチ境界ボックスを生成する。一部の実施では、各３−Ｄパッチ境界ボックスは互いに近接して配置され得る。一部の実施では、各３−Ｄパッチ境界ボックスは、点群３−Ｄ境界ボックス１５０２内のオブジェクトをカバーする場合に互いに重なり得る。
【０１０５】
次に、Ｖ−ＰＣＣエンコーダは、３−Ｄパッチ境界ボックス１５０４等の３−Ｄパッチ境界ボックスのそれぞれについて、点群３−Ｄ境界ボックス１５０２の側面のうちの１つとして投影面１５０８を定義する。Ｖ−ＰＣＣエンコーダは投影面の選択するための基準を定義する。例えば、基準は、３−Ｄパッチ境界ボックス１５０４の両側の平滑連続面基準の定義を含む。投影面は、平滑連続面基準が３−Ｄ境界ボックス１５０２の側面に投影される投影３−Ｄパッチ境界ボックス１５０４の領域（area）であり、投影のための各方向の間の最大の領域を含む場合に選択される。例えば、平滑連続面は、１つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭な又はブロックされたデータポイントの量が最も少ない面として定義できる。次に、Ｖ−ＰＣＣエンコーダはあらゆる方向から平滑面のそれぞれを比較して、どの方向が３−Ｄ境界ボックス１５０２の側面上で最も大きい領域を含み得る２−Ｄ境界ボックスを生成し得るかを決定する。
【０１０６】
システム１５００に示すように、投影面１５０８は、最大領域を有するように３Ｄパッチ境界ボックス１５０４の平行投影の領域に対応する。別の言い方をすれば、Ｖ−ＰＣＣエンコーダが投影面１５０８と反対の側（例えば、側面１５０５）から３−Ｄパッチ境界ボックス１５０４を見た場合、Ｖ−ＰＣＣエンコーダは、パッチ３−Ｄ境界ボックス１５０４に含まれる属性ポイントが投影面１５０８に投影された場合に、その投影が点群３−Ｄ境界ボックス１５０２の他の側面に投影される際に最大の領域を呈し得ると判定し得る。点群３−Ｄ境界ボックス１５０２内に含まれる点群媒体のフレームは静止し、動いていないため、Ｖ−ＰＣＣエンコーダは、点群３−Ｄ境界ボックス１５０２の両側からの投影を分析して、どの投影が最大領域を含むか特定できる。そのため、Ｖ−ＰＣＣエンコーダは、投影面１５０８が、パッチ３−Ｄ境界ボックス１５０４からの属性の投影のために最大領域を生成し得ると判断する。したがって、投影がパッチ２−Ｄ投影境界ボックス１５０６内に表示される。パッチ２−Ｄ投影境界ボックス１５０６は境界ボックスの近位層及び遠位層（near  layer  and  far  layer）上のｕ及びｖ座標により定義される。例えば、図１７は、深度画像１７０８及び１７１２の近位層１７０４及び遠位層１７０６並びに属性画像１７１０及び１７１４を示す。
【０１０７】
投影面、例えば投影面１５０８が一度選択されると、パッチ３−Ｄ境界ボックス１５０４に垂直な軸が描かれるため、Ｖ−ＰＣＣエンコーダは投影の方向を知っている。例えば、Ｖ−ＰＣＣエンコーダは、投影面１５０８に対して、点群３−Ｄ境界ボックス１５０２内で「ｎ」で示される垂直又は直交する軸を描く。加えて、Ｖ−ＰＣＣエンコーダは、パッチ３−Ｄ境界ボックス１５０４に対して、点群３−Ｄ境界ボックス１５０２内で「ｂｔ」及び「ｔ」で示される接線及び従法線の軸を生成する。Ｖ−ＰＣＣエンコーダが点群３−Ｄ境界ボックス１５０２内に垂直、接線及び従法線の軸を描くことに対応して、パッチ３−Ｄ境界ボックス１５０４上の従法線軸と直交軸との間に右側３−Ｄ座標系が生成される。
【０１０８】
その時点で、Ｖ−ＰＣＣエンコーダは、垂線軸「ｎ」に沿って点群３−Ｄ境界ボックス１５０２の投影面１５０８にパッチ３−Ｄ境界ボックス１５０４を投影する。プロセス１５００に示すように、投影の結果は点群３−Ｄ境界ボックス１５０２の特定の側上への２次元（２−Ｄ）投影１５０６である。
【０１０９】
一部の実施では、点群媒体のフレームの３−Ｄ投影は、点群３−Ｄ境界ボックス１５０２の両側に投影される。フレームが点群３−Ｄ境界ボックス１５０２の側面上に投影されると、２−Ｄ境界ボックスのための一組の座標を得ることができる。２−Ｄ境界ボックスのための一組の座標は、例えばｕ０、ｖ０、ｓｉｚｅ＿ｕ０、ｓｉｚｅ＿ｖ０を含む。境界ボックス１５１０に示すように、Ｖ−ＰＣＣエンコーダは、境界ボックス１５１０内の点群の面を投影面１５１２上に投影する。
【０１１０】
図１６は、３−Ｄから２−Ｄパッチ投影の結果を示すシステム１６００の一例である。システム１６００は、境界ボックス１６０２の両側に２−Ｄパッチ投影がされた境界ボックス１６０２を示す。境界ボックスの両側への投影は、システム１５００に関連して説明したようにパッチの直交方向に基づく。各２−Ｄパッチ投影は、パッチの２−Ｄ投影の２−Ｄ座標を記述するパッチインデックス、ｕ０、ｖ０、ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０を含む。パッチインデックスは、対応する境界ボックス１６０２の特定の側に関連する特定のパッチを特定する。Ｕ０は投影面上のパッチのＸ座標を定義する。Ｖ０は投影面上のパッチのＹ座標を定義する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、パッチｕ０及びｖ０の各座標に対応する大きさをそれぞれ記述する。
【０１１１】
境界ボックス１６０２上に投影されたパッチは「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する特定のパッチに対応する。
【０１１２】
境界ボックス１６０２上に投影マップを生成することに加えて、システムはメモリにパッチ２−Ｄ及び３−Ｄデータを記憶する。例えば、以下に示すコードはパッチを生成し且つ２−Ｄ及び３−Ｄパッチデータをビデオ符号化のための補足データとして記憶するための１つの例示のソリューションを提供する。
【０１１３】
【表１】
2022502961.tif 000042
ビデオ符号化のための補足情報生成
上述のコードは「パッチ」の定義；パッチ３−Ｄ情報がどのように２−Ｄパッチ情報に移行されるか；投影プロセス；及び再構成プロセスを示す。とりわけ、これらのフレームが２−Ｄ投影の観点からどのように解釈されるかを示す。
【０１１４】
加えて、フレーム内の各パッチについて、Ｖ−ＰＣＣエンコーダは投影マップを生成する。投影マップはビデオエンコーダに提供される追加のテキストファイルを含む。特定のパッチのための２−Ｄデータ、例えばｕ０、ｖ０は投影のＸ座標及びＹ座標の左上隅に対応する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、対応するパッチの高さ及び幅に対応する。３−Ｄパッチ投影データでは、投影マップはＸ、Ｙ及びＺ軸に対応するｕ１、ｖ１、ｄ１座標を含む。とりわけ、ｕ１、ｖ１及びｄ１は投影の面のインデックス又は垂直軸に対応する投影の面に対応する。例えば、システム１６００に示すように、境界ボックス１６０２の各側面は自体のインデックスを含む。そのため、各インデックスは特定の投影軸を表す。これに関して、ｕ１、ｖ１及びｄ１は境界ボックス１６０２に示すＸ、Ｙ及びＺ座標の再構成である。
【０１１５】
一部の実施では、ｕ１、ｖ１及びｄ１座標はローカル座標系に対応する。Ｘ、Ｙ及びＺ座標はグローバル座標系に対応する。例えば、垂直軸が決定された場合（投影の軸に対応）、Ｖ−ＰＣＣエンコーダは３−Ｄ空間内でＺ軸と整列させるために投影の軸を回転させることができる。この時点で、Ｖ−ＰＣＣエンコーダはローカル座標系とグローバル座標系との間で変換できる。
【０１１６】
提案したソリューションは、ビデオ圧縮技術におけるビデオ圧縮ソリューションへの追加の入力として用いられる補助情報に基づく動き補償のための追加の動きベクトル候補も提供する。
アルゴリズム：３Ｄデータのための強化動き推定
１．ＰＣＣエンコーダは、パッチインデックスリスト及び対応する３ｄ座標を提供することにより補助情報から追加の参照フレームを生成する。
２．既存のフレーム及び補助ファイルからの対応データを分析することにより、ビデオ圧縮ソリューションにおける２ｄドメインのためにｍｖ候補リストに追加の動きベクトル候補が生成される。
while
patch i in frame k, k, =1, 2,…, GOP-1, do
while
patch j of Patches in reference frame, do
if(occupancymap)
add
patch 3d coordinates to prediction list
do
3D motion search for patches in 3d coordinates list
end
while
end while
３．ＧＯＰフレーム内の各フレームのためにｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｕｒｓ候補を精緻化
４．ＧＯＰフレーム内の各フレームのためにｍｅｒｇｅＣａｎｄｉｄａｔｅＬｉｓｔを精緻化
５．ビデオベース圧縮エンジン
【０１１７】
図１７は、点群媒体の属性セグメンテーションのためのシステム１７００の一例である。各３−Ｄ点群のための２−Ｄパッチが投影から生成されると、一組の画像が、パッチタイルグループ内の２−Ｄパッチのそれぞれのために生成される。システム１７００は、３−Ｄから２−Ｄ投影の間に深度及び属性情報が失われるため、パッチタイルグループ内の２−Ｄパッチのそれぞれパッチのために一組の画像を生成する。一組の画像は、投影が起こる前の点群媒体に対応する深度及び属性情報を保存するために生成される。
【０１１８】
一部の実施では、パッチタイルグループはパッチ１７０２を含む。システムは、特定のパッチ１７０２から２組の画像を生成する。第１の組の画像は近位層１７０４を含む。第２の組の画像は遠位層１７１２を含む。近位層１７０４は、深度データの画像１７０８及び属性データの画像１７１０を含む。加えて、遠位層１７０６は深度データの画像１７１２及び属性データの画像１７１２を含む。そのため、２−Ｄ投影の全て点は、深度情報及び属性情報、例えば、色、テクスチャ、ルマ等を有する。特定の層、例えば、近位層１７０４及び遠位層１７０６は３−Ｄ点群オブジェクトの２−Ｄ投影の両側を示す。
【０１１９】
図１８は、属性情報を有する点群媒体のためのパッキングパッチを示すシステム１８００の一例である。一部の実施では、属性情報はテクスチャ情報、深度情報、カラー情報、ルマ、反射率及びクロマ情報を含むことができる。パッケージ化されたパッチグループ１８０２は、点群媒体１４０２のフレーム等の点群媒体のフレームからの１つ以上の投影されたパッチ、２−Ｄフレームを示す。パッチの集合はパッチタイルグループを形成し、パッチタイルグループは点群媒体の所定のフレームに対してパッチデータグループに組み合わされる。「パッチ」と呼ばれるパッチデータグループの各要素は特定且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する。パッケージ化されたパッチ１８０２は符号化され、その後に送信できる。とりわけ、１つの点群フレーム内のパッチが、参照点群フレーム、例えば、先のフレーム内の対応参照パッチを有する場合、参照パッチタイルグループ内の参照パッチのインデックスがビットストリームに送信される。これについて以下でさらに説明する。
【０１２０】
図１９は、動き推定を行うためのシステム１９００の一例である。従来のビデオ圧縮ソリューションでは、動き推定プロセスを用いて、２−Ｄ投影画像、例えばパッチからのデータが推定される。システム１９００はこの動き推定プロセスを示す。ブロック１９０２に示す符号化及び復号化ブロックはエンコーダを用いて動き推定を生成し、データ遷移チャネル又はストレージを介して動き推定を送信し、送信された動き推定をデコーダで復号化する。結果は新たなに復元されたフレームである。
【０１２１】
ブロック１９０４は動き推定プロセスの説明を示す。例えば、エンコーダは参照フレーム内の同様のパッチ画像の予測因子を生成する。参照フレームは、例えば先のフレームであり得る。一部の実施では、エンコーダは、参照フレームと現在のフレームとの間のサンプルの値を比較することにより類似性を特定する。サンプルの値は、例えば属性及び場所によって異なり得る。このプロセスは動き推定と呼ばれ、現在のフレーム内の画像に似た参照フレーム内の対応する画像を見つけることを目的とする。エンコーダは、参照フレームの隣接ピクセル内でピクセルを探索する。一致する画像が見つかった場合、エンコーダは、現在及び参照フレームから各画像を具体的に符号化することなく、より少ない量の情報を必要とする類似性を符号化する。全体的に、これは送信のための帯域幅を低減する。そのため、エンコーダは、同様の画像について現在及び先のフレームを解析する。現在のフレームと参照（先の）フレームとの間の各画像について属性及び位置情報に関連する精緻化データ（refinement  data）を特定する。次いで、エンコーダは、現在のフレーム及び将来の予測フレームについて精緻化データを符号化する。これは、通常、２−Ｄモーションビデオ又は２−Ｄ画像を送信するために用いられる。
【０１２２】
パッチパッキング法の詳細により、各点群媒体についての投影フレーム内のパッチの位置は大きく異なり得る。そのため、異なるフレーム間で、パッチは、ある位置から別の位置に、例えば３−Ｄ境界ボックスの異なる側にわたってジャンプできる。そのため、２−Ｄモーションビデオ又は２−Ｄ画像のために典型的に用いられる相互予測符号化アルゴリズムにおけるパッチングの位置を用いる予測動き推定は満たすことができないため、適切に符号化及び送信されない。したがって、ブロック１９０２及び１９０４は有用であるが、パッチデータグループを用いて動き推定データを送信するために強化を必要とする。したがって、以下で説明する技術は、動きベクトル候補リストに補助情報を加えることにより、２−Ｄパッチデータのための動き推定を用いる予測の使用を強化する。
【０１２３】
送信すべき２−Ｄパッチ間の時間的予測の場合、送信の間に最大圧縮効率を確実にするために、有効な動きベクトル候補が同様のパッチのために供給される。既存の動きベクトル候補リスト構築法は、以下にさらに説明するように、既存の候補を置き換えるか又はパッチ補助情報から生成される追加の候補を導入することにより改善され得る。
【０１２４】
一部の実施では、フレーム内の特定のパッチは、パッチメタデータにより点群媒体内の３−Ｄ座標に接続される特定の２−Ｄ座標を有する。パッチデータ（「補助情報」ともいう）は、パッチの対応する３−Ｄ位置及び２−Ｄ面上の関連する投影位置に基づく。一部の実施では、補助情報又はパッチメタデータは、パッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含むことができる。ｕ０及びｖ０は、２−Ｄ投影のパッチの左上隅に対応する。ｕ１、ｖ１及びｄ１は、３−Ｄドメイン内のＸ、Ｙ及びＺ座標を表す。そのため、ｕ０及びｖ０の座標は、ｕ１、ｖ１、及びｄ１座標に接続される。接続は、ｕ１、ｖ１、ｄ１座標とｕ０、ｖ０座標との数学的関係に基づく。２−Ｄ及び３−Ｄ座標間のこの接続は、動きベクトル候補の生成、ベクトル候補リストの更新及び動きベクトル探索プロセスの更新のために用いることができる。
【０１２５】
図２０は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。クライアント装置のエンコーダ、例えばＶ−ＰＣＣエンコーダは、先に符号化された参照フレームに対して現在のパッチフレームを解析する。エンコーダは先に符号化された参照フレームを最初に符号化してそれを現在のフレームと比較しなければならない。次に、エンコーダは、予測因子ユニット（ＰＵ）と呼ばれる１つ以上の小さなブロックに現在のパッチフレームを与える。各ＰＵに記憶される情報の量は大きいことから、送信する際の情報量を減らすためにエンコーダは差分符号化方法に依存する。エンコーダは残差フレームを生成する。例えば、（参照フレームのパッチに属する）予測因子ユニットＰＵは、残差フレームを生成するために、（現在のフレームに属する）現在のＰＵから差し引かれる（例えば、現在のＰＵ−予測因子ユニットＰＵ）。その後、エンコーダは送信のために用いられる残差フレームのみを符号化する。例えば、下記のコードはこのプロセスを記述する。
１．現在のフレームをＮ個のＰＵブロックに分割
２．現在の補助フレームからPU_pred候補リストを生成
３．ｉ＝０〜Ｎ−１の場合
PU_cur[i]の左上隅の(x,y)座標を取得し
参照画像内の予測因子PU_predの探索を行い
cost[k]
= max
while
cost[k] > minCost[k-1] do
cost[k]
=  (PU_cur[i] - PU_pred[k]) +  lambda * BitSize
ビットストリームに符号化：
MV
= PU_cur[i](x,y) - PU_pred[k](x,y)
ResidualUnit
= Transform(PU_cur[i]-PU_pred[k])
上記のコードは、レート歪み問題最小化に基づくモード選択の符号化のためのプロセスを記述する。一部の実施では、エンコーダは、先に符号化された参照フレーム内の予測因子ユニットＰＵを探索し、残差を符号化するために必要なビットの量に関して、値を現在のＰＵに一致するための探索を行う。予測因子ユニットＰＵを選択するためのプロセスはレート歪み最小化問題を含み、レートは符号化された残差のビットサイズに対応し、歪みは、残差の原点からの距離に対応する残差のＬ２ノルムに対応する。次に、エンコーダは残差情報及び対応する変位情報を符号化し、これが動きベクトルになる。しかしながら、この実施には点群媒体を符号化し且つ送信する場合に強化が必要となる。
【０１２６】
エンコーダは、パッチデータに含まれる追加の補助情報を見直すことにより強化される。現在のフレームの場合、補助情報は現在の２−Ｄパッチ及び対応する３−Ｄ点群から生成される。参照フレームの場合、補助情報は先に符号化された参照２−Ｄパッチ及び対応する３−Ｄ点群から生成される。エンコーダは、現在のフレームのパッチからの補助情報、例えばｕ０、ｖ０、ｕ１、ｖ１及びｄ１を、参照フレームのパッチからの補助情報、例えばｕ０、ｖ０、ｕ１、ｖ１及びｄ１とを比較することによりブロック位置を予測できる。この比較により、それらの補助的な情報に基づくパッチ間の距離がもたらされる。
【０１２７】
一部の実施では、エンコーダは先ず３−Ｄ差分を決定する。３−Ｄ差分は、ＣＵの開始ピクセルの３−Ｄ位置が異なり得るため、現在の補助情報フレームと参照補助情報フレームとの間の３−Ｄ差分に対応する。方程式は以下を含む。
【０１２８】
【数１】
2022502961.tif 000043
2022502961.tif 000044
次に、エンコーダは２−Ｄ差分を算出する。２―Ｄ差分は、占有ブロック解像度（occupancy
2022502961.tif 000045
block
2022502961.tif 000046
resolution）（ＯＢＲ）を考慮して、現在の補助情報フレームと参照補助情報フレームとの間の２―Ｄ差分に対応する。ＯＢＲは、パッチ投影サイズに対するパッチデータグループ内の座標のスケールに対応する。例えば、パッチ幅は、ＯＢＲを乗じたパッチ投影サイズに等しい。次に、エンコーダは、２−Ｄドメイン内に動きベクトルを生成する。方適式は以下を含む。
【０１２９】
【数２】
2022502961.tif 000047
最終的に導出された動きベクトルは、これら２つ動きベクトル成分の組み合わせである。例えば、最終的に導出された動きベクトルは以下に対応する。
【０１３０】
【数３】
2022502961.tif 000048
非標準的なソリューション（non-normative  solution）では、動きベクトル（ＭＶ）を探索範囲の中心の候補として推定される。導出された推定ＭＶを候補として加えた後、エンコーダは、ＲＤＯを用いて分割２Ｎ×２Ｎから予測ＭＶ、ゼロＭＶ、推定ＭＶ及びＭＶを選択して探索範囲の中心を決定する。推定ＭＶが最小レート歪（Ｒ−Ｄ）コストを有する場合、それがビデオ圧縮のために用いられる。
【０１３１】
図２１は、マージ候補リスト構築のための導出プロセス２１００を示す。一部の実施では、予測ユニットがマージモードを用いて予測される場合、マージ候補リスト内のエントリを指すインデックスがビットストリームからパースされ、動き情報を読み出すために用いられる。このリストの構築はＨＥＶＣ規格で規定されており、以下の一連のステップに従って要約できる。
ステップ１：初期候補の導出
ステップ１．１：空間的候補の導出
ステップ１．２：空間候補のための冗長性チェック
ステップ１．３：時間的候補の導出
ステップ２：追加候補の挿入
ステップ２．１：双方向予測候補の作成
ステップ２．２：ゼロ動き候補の挿入
これらのステップも図２１に概略的に示される。空間的マージ候補の導出の場合、５つの異なる位置に位置する候補の中から最大で４つのマージ候補が選択される。時間的マージ候補導出の場合、２つの候補の中から最大で１つのマージ候補が選択される。各予測ユニットの候補の定数がデコーダで仮定されるため、スライスヘッダにシグナリングされるマージ候補の最大数（ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ）に候補の数が達しない場合に追加候補が生成される。候補の数は一定であるため、トランケートユーナリ符号化（ＴＵ）を用いて最良のマージ候補のインデックスが符号化される。ＣＵのサイズが８に等しい場合、現在のＣＵの全てのＰＵは単一のマージ候補リストを共有し、これは２Ｎ×２Ｎ予測ユニットのマージ候補リストと同一である。
【０１３２】
以下では、上述のステップに関連する動作を詳述する。
【０１３３】
図２２は、空間的マージ候補の冗長性チェックのために考慮される、空間的マージ候補及び候補対の位置のシステム２２００を示す。空間的マージ候補の導出では、図２２に示す位置に位置する候補の中から最大で４つのマージ候補が選択される。導出の順序はＡ１、Ｂ１、Ｂ０、Ａ０及びＢ２である。位置Ｂ２は、位置Ａ１、Ｂ１、Ｂ０、Ａ０のいずれのＰＵも利用できない場合（例えば、それが別のスライス又はタイルに属するため）又はイントラ符号化されている場合にのみ考慮される。位置Ａ１にある候補が追加された後、残りの候補の追加は冗長性チェックの対象となり、これにより同じ動き情報を持つ候補がリストから除外され、符号化効率が改善されることが保証される。計算の複雑性を低減するために、前述の冗長性チェックでは可能性のある全ての候補対が考慮されているわけではない。その代わりに、図２２において矢印でリンクされた対のみが考慮され、冗長性チェックに用いられる対応する候補が同じ動き情報を持たない場合にのみ候補がリストに加えられる。重複動き情報の別のソースは、２Ｎ×２Ｎとは異なるパーティションに関連する「第２のＰＵ」である。一例として、図２２は、それぞれ、Ｎ×２Ｎ及び２Ｎ×Ｎの場合の第２のＰＵをそれぞれ示す。現在のＰＵがＮ×２Ｎとして分割されている場合、位置Ａ１における候補はリスト構築のために考慮されない。実際、この候補を加えることによって、同じ動きの情報を持つ２つの予測ユニットが得られる。これは、符号化ユニットに１つのＰＵを持つだけで冗長である。同様に、現在のＰＵが２Ｎ×Ｎとして分割されている場合、位置Ｂ１は考慮されない。
【０１３４】
図２３は、Ｎ×２Ｎ及び２Ｎ×Ｎパーティションの第２のＰＵのための位置を示すシステム２３００を示す。とりわけ、システム２３００は時間的候補導出プロセスを記述する。このステップでは、１つの候補のみがリストに加えられる。とりわけ、この時間的マージ候補の導出では、所与の参照ピクチャリスト内の現在のピクチャとのＰＯＣ差分が最小のピクチャに属する同一位置にある（co-located）ＰＵに基づいてスケーリングされた動きベクトルが導出される。同一位置にあるＰＵの導出に用いられる参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補のためのスケーリングされた動きベクトルは、図２４（システム２４００）で点線によって示すように得られ、これは、ＰＯＣ距離、ｔｂ及びｔｄを用いて同一位置にあるＰＵの動きベクトルからスケーリングされており、ここで、ｔｂは、現在のピクチャの参照ピクチャと現在のピクチャとの間のＰＯＣ差分として定義され、ｔｄは同一位置にあるピクチャの参照ピクチャと、同一位置にあるピクチャとの間のＰＯＣ差分として定義される。時間的マージ候補の参照ピクチャインデックスはゼロに設定される。Ｂ−スライスの場合、２つの動きベクトル（一方は参照ピクチャリスト０のためのものであり、他方は参照ピクチャリスト１のためのもの）が得られ、組み合わされて双方向予測マージ候補が作成される。
【０１３５】
図２５は、時間的マージ候補の候補位置を示すシステム２５００である。参照フレームに属する同一位置にあるＰＵ（Ｙ）では、システム２５００に示すように、時間的候補のための位置が候補Ｃ０及びＣ１の間で選択される。Ｃ０の位置にあるＰＵが利用可能でないか、イントラ符号化されているか又は現在のＣＴＵの外にある場合には位置Ｃ１が用いられる。それ以外の場合では位置Ｃ０が時間的マージ候補の導出に用いられる。
【０１３６】
空間−時間的マージ候補の他に、複合双方向予測マージ候補（combined  bi-predictive  merge  candidate）及びゼロマージ候補の２つのさらなる種類のマージ候補が存在する。複合双方向予測マージ候補は空間−時間的マージ候補を利用することにより生成される。複合双方向予測マージ候補はＢ−スライスのみに用いられる。複合双方向予測候補は、初期候補の第１の参照ピクチャリスト動きパラメータと、別の候補の第２の参照ピクチャリスト動きパラメータとを組み合わせることにより生成される。これらの２つのタプルが異なる動き仮説を提供する場合、それらは新たな双方向予測候補を形成する。一例として、システム２５００は、ｍｖＬ０及びｒｅｆＩｄｘＬ０又はｍｖＬ１及びｒｅｆＩｄｘＬ１を有する（左側の）元のリスト内の２つの候補が、（右側の）最終リストに加えられた複合双方向予測マージ候補を作成するために用いられる場合を示す。これらの追加のマージ候補を生成すると考えられる組み合わせに関する数多くの規則が存在する。
【０１３７】
図２６は、複合双方向予測マージ候補の例示の表２６００を示す。マージ候補リストの残りのエントリを埋めるためにゼロ動き候補が挿入されるため、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ容量に達している。これらの候補はゼロ空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される毎に増加する参照ピクチャインデックスとを有する。これらの候補によって用いられる参照フレームの数は、一方向及び双方向予測の場合にそれぞれ１及び２である。最後に、これらの候補に対しては冗長性チェックが行われない。
【０１３８】
図２７は、補助データを用いた動き推定パイプラインの変更を含むシステム２７００の一例である。システム２７００は、システム１９００におけるコンポーネント１９０２に示される動き推定パイプラインのエンコーダ部分に対する追加のコンポーネントを示す。例えば、システム２７００は補助フレーム２７０２（パッチフレームデータユニット又はパッチフレームデータグループとも呼ばれる）を含む。システム２７００は、新たなフレーム２７０４、動き推定コンポーネント２７０６、動きエントロピーコーダ２７０８、動き補償補間２７１０、減算モジュール２７１２、残差エンコーダ２７１４、残差デコーダ２７１６及び加算器２７１８も含む。
【０１３９】
動き推定コンポーネント２７０６は、残差デコーダ２７１６及び加算器２７１８から、補助フレーム２７０２、新たなフレーム２７０４及び先に符号化された（現在復号化されている）残差フレームを受信する。
【０１４０】
一部の実施では、動き推定コンポーネント２７０６が、フレームのためのパッチデータを含む新たなフレーム２７０４を受信すると、動き推定コンポーネント２７０６は、ａｕｘフレーム２７０２内のパッチに関連する３−Ｄ座標を比較する。これは、各ａｕｘフレーム２７０２は、パッチデータの２−Ｄ座標と境界ボックス内の点群媒体の３−Ｄ座標との間の転移を説明する自身のパッチメタデータ（又は補助データ）を含むからである。とりわけ、動き推定２７０６は、ａｕｘフレーム２７０２内のパッチメタデータを用いて参照フレームを生成する。次に、現在のフレーム、例えば新たなフレーム２７０４からの現在の３−Ｄ情報及び先のフレーム、例えば参照フレームからの３−Ｄ情報を用いてパッチの位置を特定できる。例えば、動き推定２７０６は、新たなフレーム２７０４内のこのパッチは参照フレーム内の別のパッチと同じ３−Ｄ座標内の位置から生じると特定でき、参照フレーム内のパッチは新たなフレーム２７０４内の異なる２−Ｄ位置に位置する。
【０１４１】
次に、動き推定コンポーネント２７０６は新たなフレーム２７０４内の各パッチに対してこのプロセスを実行し、２−Ｄ情報を取り出して対応する３−Ｄ情報を得る。動き推定コンポーネント２７０６は、ａｕｘフレーム２７０２内のパッチのための２−Ｄ情報を取得する。動き推定コンポーネント２７０６は、新たなフレーム２７０４内のパッチの２−Ｄ情報及びａｕｘフレーム２７０２内のパッチの２−Ｄ情報を用いて、例えば、新たなフレーム２７０４からのパッチのｕ０及びｖ０位置座標をａｕｘフレーム２７０２内のパッチのｕ０及びｖ０位置座標と比較することにより、これらの２つのパッチ間の２―Ｄ距離を求め、その後にパッチがどのようにしてａｕｘフレーム２７０２内のその位置から新たなフレーム２７０４内の位置に２−Ｄで移動したかを特定できる。ａｕｘフレーム２７０２内のパッチのｕ０、ｖ０と新たなフレーム２７０４内のパッチのｕ０、ｖ０との間のこの差分は動きベクトル候補に対応する。動き推定コンポーネント２７０６は、この生成された動きベクトル候補を動きベクトル候補リストに挿入する。動き推定コンポーネント２７０６は、新たなフレーム２７０４内の各パッチをａｕｘフレーム２７０２内の各パッチと比較するこのプロセスを行う。一致が起きた場合、これらの一致したパッチ間の２−Ｄ座標間の差分が動きベクトル候補リストに加えられる。
【０１４２】
一部の実施では、動きベクトル候補が動きベクトル候補リストに追加されると、３−Ｄ座標リスト内のパッチに対して３−Ｄ動き探索が行われる。
【０１４３】
一部の実施では、エンコーダはフィールドネイバーの（field  neighbor’s）候補リストを含む。フィールドネイバーの候補リストは、２−Ｄ画像内の動きを見直すための可能な位置を含むことができる。動き推定コンポーネント２７０６は、各パッチフレームのためにフィールドネイバー候補リスト内の位置を精緻化できる。
【０１４４】
補助情報を用いて参照フレーム内で一致するパッチを探すプロセスを下記のコードに示す。例えば、既存のパッチを用いて、補助３−Ｄ情報ファイルからの２−Ｄ及び３−Ｄ情報は、参照フレームのための点群圧縮ソリューションバッファから生成される。例えば、コードは下記を含む。
【０１４５】
【表２】
2022502961.tif 000049
2022502961.tif 000050
上述のコードでは、Ｖ−ＰＣＣエンコーダはビデオエンコーダのために参照フレーム内の一致したパッチを探索する。Ｖ−ＰＣＣエンコーダは、各フレーム内のパッチに対応する同じ２−Ｄ及び３−Ｄ情報並びに図１６に関して説明した投影情報を用いる。このステップでは、Ｖ―ＰＣＣエンコーダは、動き精密化のために新たな候補を生成する。このアルゴリズムは次のように実行される。Ｖ−ＰＣＣエンコーダがフレームグループ内の各フレームをループする。Ｖ−ＰＣＣエンコーダは、特定の参照フレームからのパッチリストからパッチを取り出す。その後、Ｖ−ＰＣＣエンコーダは、現在のフレームから特定のパッチを取り出す。
【０１４６】
Ｖ―ＰＣＣエンコーダは、動きベクトル候補に基づいてレート歪最適化におけるコストを推定する。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小量のコストに対応する。とりわけ、最小量のコストは、Ｘ差分、Ｙ差分及びＺ差分の２乗値の合計に対応する。例えば、参照フレーム内のパッチのＸ座標が現在のフレーム内のパッチのＸ座標から減算されてＸ差分（「Ｘｄｉｆ」）が生成され、参照フレーム内のパッチのＹ座標が現在のフレーム内のパッチのＹ座標から減算されてＹ差分（「Ｙｄｉｆ」）が生成され、参照フレーム内のパッチのＺ座標が現在のフレーム内のパッチのＺ座標から減算されてＺ差分（「Ｚｄｉｆ」）が生成される。次に、ＰＣＣエンコーダは、参照フレーム内のパッチと現在のフレーム内のパッチとの間の特定の距離を生成するために、Ｘｄｉｆ、Ｙｄｉｆ及びＺｄｉｆの２乗を合計する。
【０１４７】
レート歪み最適化におけるコストを推定するこのプロセスは、最小コスト又は距離が見つかるまで繰り返される。最小コスト又は距離が見つかった場合、ｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｒｓ変数は、Ｘ座標、Ｙ座標及び参照フレームからのパッチに関連する正しいパッチに対応する最小コスト値で更新される。
【０１４８】
次に、Ｖ―ＰＣＣエンコーダは、精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための３−Ｄ情報と、投影画像内の対応する２−Ｄパッチ位置とに基づいて更新される。加えて、マージ候補リストは、パッチのための３−Ｄ情報と、投影画像内の対応する２−Ｄ位置とに基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する２−Ｄパッチを受信した場合にＶ−ＰＣＣエンコーダによって生成される。動きベクトル候補リストは、「ビデオ符号化のための補助情報生成」コードセットにしたがって生成される。Ｖ−ＰＣＣエンコーダ及びＶ−ＰＣＣデコーダの双方は、動きベクトル候補リストを生成するために「ビデオ符号化のための補助情報生成」を行う。そのため、Ｖ−ＰＣＣエンコーダとＶ−ＰＣＣデコーダとの間で送信すべき追加の動きベクトル候補リストや他の情報が必要とされない。
【０１４９】
一部の実施では、点群符号化ビットストリームから補助情報ファイルが生成される。点群符号化ビットストリームを以下にさらに説明及び図示する。補助情報は、Ｖ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダが同じ結果を生成することを確実するために双方が同じ方法を用いるＶ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダの双方で新たな動きベクトル候補を生成するために用いられる。補助情報を用いることにより、Ｖ―ＰＣＣエンコーダ及びＶ―ＰＣＣデコーダは新たな動きベクトル候補及びマージ候補リスト入力を生成した。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化／復号化技術に提供される。
【０１５０】
図２８は、Ｖ−ＰＣＣユニットペイロードを表すパケットストリーム２８００の一例である。パケットストリーム２８００はＶ−ＰＣＣビットストリーム２８０２を含む。Ｖ−ＰＣＣビットストリーム２８０２は１つ以上のＶ−ＰＣＣユニットを含む。例えば、Ｖ−ＰＣＣユニット２８０４はＶ−ＰＣＣユニットヘッダ２８０６及びＶ−ＰＣＣユニットペイロード２８０８を含む。Ｖ−ＰＣＣユニットペイロード２８０８は、シーケンスパラメータセット２８１０、パッチデータグループ２８１２、占有ビデオデータ２８１４、幾何学的ビデオデータ２８１８及び属性ビデオデータ２８１６を含む。占有ビデオデータ２８１４は２−Ｄフレームデータを含む。属性ビデオデータ２８１６は２つの２−Ｄフレームのセット、例えば近位層及び遠位層を含む。幾何学的ビデオデータ２８１８も２つの２−Ｄフレームのセット、例えば近位層及び遠位層を含む。
【０１５１】
パッチデータグループユニットタイプは複数のデータセットを含む。例えば、パッチデータグループユニットタイプ２８１２は、シーケンスパラメータセット２８２０、フレーム幾何学的パラメータセット２８２２、幾何学的パッチパラメータセット２８２４、フレームパラメータセット２８２６、フレーム属性パラメータセット及び属性パッチパラメータセット２８３０を含む。加えて、パッチデータグループユニットタイプ２８１２は複数のパッチタイルグループ２８３２を含む。上述したように、パッチタイルグループは複数のパッチを含む。例えば、パッチデータグループは、Ｔ（ｉ、０）〜Ｔ（ｉ、ｍ）のパッチタイルグループのセットを含む。情報は、Ｖ−ＰＣＣユニットペイロードの占有、属性及び幾何学的コンポーネントから点群フレームを再構成するために必要なものである。「Ｉ」は３−ＤのＰＣＣフレーム「Ｉ」に対応するパッチデータグループインデックスである。「Ｍ＋１」は３−Ｄ点群フレーム「Ｉ」のために生成される３−Ｄパッチの数であり、本明細書ではＴ（ｉ、ｊ）をパッチと呼ぶ。
【０１５２】
図２９は、Ｖ−ＰＣＣユニットペイロードの視覚的表現２９００の別の例である。Ｖ−ＰＣＣユニットペイロードの視覚的表現２９００に示すように、矢印は、参照フレーム／データユニットから現在のデータユニットへの予測フローを表す。近位層と遠位層の間の予測は、データの同じＶ−ＰＣＣフレーム内でのみ可能である。例えば、視覚的表現２９００は３−Ｄ点群、パッチデータグループ、近位及び遠位層の幾何学的ビデオデータ、近位及び遠位層の属性ビデオデータ及び占有ビデオデータを示す。
【０１５３】
図３０は、３Ｄ補助データを用いて動き推定を行うためのプロセス３０００の一例を示すフロー図である。プロセス３０００は、図２７に示すコンポーネントを含むＶ−ＰＣＣエンコーダ又はＶ−ＰＣＣデコーダによって行われ得る。
【０１５４】
Ｖ−ＰＣＣエンコーダは、三次元点群データの連続性データに基づいて、記録された媒体の三次元点群データのセグメンテーションを生成する（３００２）。Ｖ−ＰＣＣエンコーダは、三次元（３−Ｄ）点群データを、３−Ｄパッチ境界ボックス１５０４等の一組の３−Ｄパッチ境界ボックス又はセグメンテーションにセグメント化する。３−Ｄ点群データのフレーム内のオブジェクトをカバーするために、３−Ｄ点群データの全体に対して複数のセグメンテーションが生成され得る。各セグメンテーション又は３−Ｄパッチ境界ボックスは、オブジェクトを３−Ｄ点群データでカバーする場合互いに近接して配置され得るか又は互いに重なり合い得る。
【０１５５】
Ｖ−ＰＣＣエンコーダは、セグメント化された三次元点群データの表現を三次元境界ボックスの１つ以上の側面に投影し、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側に基づいて異なる（３００４）。Ｖ−ＰＣＣは、図１６に示す結果のように、３−Ｄ点群データの画像を３−Ｄ境界ボックスの両側に投影するために３−Ｄ点群データを３−Ｄ境界ボックスで囲む。一部の実施では、Ｖ−ＰＣＣエンコーダは、３−Ｄ境界ボックスの側面上の投影面を選択するための基準を定義する。例えば、基準は平滑連続面基準を含むことができる。そのため、平滑連続面基準が、投影の各方向の中で最大領域となる境界ボックスの側面上のセグメンテーションの投影領域を含む場合に特定の投影面が選択される。平滑連続面は、１つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭又はブロックされたデータポイントが最も少ない表面として定義できる。次に、Ｖ−ＰＣＣエンコーダは、あらゆる方向から平滑面のそれぞれを比較して、どの方向が３−Ｄ境界ボックスの側面に最大領域を含み得る投影を生成し得るかを判定する。特定の投影面が選択された場合、Ｖ−ＰＣＣエンコーダは、３−Ｄ点群データの特定の面を３−Ｄ境界ボックスの特定の投影面に投影する。一部の実施では、Ｖ−ＰＣＣエンコーダは３−Ｄ点群データの様々な面を３−Ｄ境界ボックスの両側に投影する。
【０１５６】
Ｖ−ＰＣＣエンコーダは、セグメント化された三次元点群データの投影表現に基づいて１つ以上のパッチを生成する（３００６）。画像が３−Ｄ境界ボックスの側面に投影されると、Ｖ−ＰＣＣエンコーダは各投影からパッチを生成する。３−Ｄ境界ボックスの側面の２−Ｄ境界ボックスに対応する各パッチは一組の座標を含む。パッチは３−Ｄ境界ボックスの側面の投影の領域に対応する。パッチのための座標は、例えばパッチインデックス、ｕ０、ｖ０、ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０を含む。パッチインデックスは、対応する境界ボックスの特定の側面に関連する特定のパッチを特定する。Ｕ０は投影面上のパッチのＸ座標を定義する。Ｖ０は投影平面上のパッチのＹ座標を定義する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、パッチｕ０及びｖ０の各座標に対応する大きさをそれぞれ記述する。
【０１５７】
一部の実施では、Ｖ−ＰＣＣエンコーダは３−Ｄ境界ボックスの各側面からのパッチとそれらに対応する座標情報とを組み合わせて「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定の且つ一意のインデックスを含み、３−Ｄ点群フレーム内の一意の３−Ｄ境界ボックスに対応する特定のパッチに対応する。例えば、パッケージ化されたパッチ１８０２は、パッチデータグループとして知られるパッチタイルグループの群を含む。
【０１５８】
パッチデータグループ内の各パッチの座標情報は投影マップに含まれる。投影マップは、後でＶ−ＰＣＣエンコーダによってビデオ符号化ソリューションに提供される追加ファイルである。投影マップは各パッチのための２−Ｄ及び３−Ｄ位置情報を含む。特定のパッチのための２−Ｄデータ、例えばｕ０、ｖ０は、投影のＸ及びＹ座標の左上隅に対応する。ｓｉｚｅ＿ｕ０及びｓｉｚｅ＿ｖ０は、対応するパッチの高さ及び幅に対応する。３−Ｄパッチ投影データの場合、投影マップはＸ、Ｙ及びＺ軸に対応するｕ１、ｖ１、ｄ１座標を含む。とりわけ、ｕ１、ｖ１及びｄ１は投影の面のインデックス又は法線軸に対応する投影の面に対応する。
【０１５９】
Ｖ−ＰＣＣエンコーダは、１つ以上のパッチの第１のフレームを生成する（３００８）。Ｖ−ＰＣＣエンコーダは、３００６から生成されたパッチデータグループのフレームを生成する。フレームは符号化され、送信のためにビデオ圧縮ソリューションに提供できる。
【０１６０】
Ｖ−ＰＣＣエンコーダは第１のフレームのために第１の補助情報を生成する（３０１０）。第１の補助情報は、第１のフレーム内の特定のパッチのためのパッチメタデータに対応する。例えば、第１の補助情報は、特定のパッチのためのパッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含むことができる。
【０１６１】
Ｖ−ＰＣＣエンコーダは、参照フレームのための第２の補助情報を生成する（３０１２）。Ｖ−ＰＣＣエンコーダは、１つ以上のパッチを含む先に符号化されたフレームである参照フレームを検索する。Ｖ−ＰＣＣエンコーダは参照フレームを復号化した後に参照フレームからパッチを取り出し、参照フレームからそのパッチに関連する補助情報を取り出す。参照フレームからのパッチに関連する補助情報は特定のパッチのためのパッチインデックス、ｕ０、ｖ０、ｕ１、ｖ１及びｄ１を含む。
【０１６２】
Ｖ−ＰＣＣエンコーダは、第１の補助情報及び第２の補助情報に基づいて、参照フレームからの第２のパッチに一致する第１のフレームからの第１のパッチを特定する（３０１４）。Ｖ−ＰＣＣは、第１のフレームに関連する補助情報を参照からのパッチに関連する補助情報と比較する。例えば、Ｖ−ＰＣＣは、各パッチに関連するパッチインデックス、ｕ０、ｖ０、ｖ１及びｄ１を比較してこの情報間の距離を求める。Ｖ−ＰＣＣエンコーダは第１のフレームからのパッチを参照フレームからの各パッチと比較して、補助情報距離が最小の一致するパッチを見つける。距離が最小であると、Ｖ−ＰＣＣエンコーダは２つのパッチ間の一致するパッチを示す。
【０１６３】
Ｖ−ＰＣＣエンコーダは、第１の補助情報と第２の補助情報との差分に基づいて、第１のパッチと第２のパッチとの間で動きベクトル候補を生成する（３０１６）。動きベクトル候補は、それらの対応する補助情報間の差分が他のパッチと比較して最小である場合に、第１のパッチと第２のパッチとの間で生成される。動きベクトル候補は送信のために用いられる動きベクトル候補のリストに追加される。差分は、レート歪み最適化における推定コストに基づき得る。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小コストに対応する。最小コスト又は距離が見つかった場合、ｐｃＭｖＦｉｅｌｄＮｅｉｇｈｂｏｒｓ変数は、Ｘ座標、Ｙ座標及び参照フレームからのパッチに関連する正確なパッチに対応する最小のコスト値で更新される。
【０１６４】
Ｖ−ＰＣＣエンコーダは、動きベクトル候補を用いて動き補償を行う（３０１８）。次に、Ｖ―ＰＣＣエンコーダは精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために、動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための３−Ｄ情報及び投影画像内の対応する２−Ｄパッチ位置に基づいて更新される。加えて、マージ候補リストはパッチのための３−Ｄ情報及び投影画像内の対応する２−Ｄ位置に基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する２−Ｄパッチを受信した場合にＶ−ＰＣＣエンコーダにより生成される。動きベクトル候補リストは、「ビデオ符号化のための補足情報生成」コードセットに従って生成される。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化／復号化技術に提供される。
【０１６５】
第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間の線、トレース又は別の媒体を除いて、介在するコンポーネントが存在しない場合は第２のコンポーネントに直接連結される。第１のコンポーネントは、第１のコンポーネントと第２のコンポーネントとの間に線、トレース又は他の媒体以外に介在するコンポーネントが存在する場合は間接的に第２のコンポーネントに連結される。「連結される」という用語及びその変形は直接連結及び間接連結の双方を含む。「約」という用の使用は、特段規定がない限り、後続の数字の±１０％を含む範囲を意味する。
【０１６６】
本開示ではいくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく多くの他の特定の形態で実施され得ることが理解され得る。本実施例は例示的なものであって限定的ではないと考えるべきできあり、本明細書で与えられた詳細に限定することを意図していない。例えば、様々な要素又はコンポーネントは他のシステムと組み合わされるか又は統合してもよく又は特定の特徴は省略され得るか又は実施されなくてもよい。
【０１６７】
加えて、様々な実施形態で個別又は別個のものとして説明及び図示した技術、システム、サブシステム及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、技術又は方法と組み合わされ得るか又は統合され得る。変更、置換及び改変の他の例は当業者によって確認可能であり、本明細書に開示の精神及び範囲から逸脱することなく行われ得る。
【０１６８】
本明細書に記載の本発明の実施形態及び機能動作の全てはデジタル電子回路で又は本明細書に開示の構造及びそれらの構造的等価物又はそれらの１つ以上の組み合わせを含む、コンピュータソフトウェア、ファームウェア又はハードウェアで実施され得る。本発明の実施形態は、１つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又は動作を制御するためにコンピュータ読み取り可能媒体上に符号化されたコンピュータプログラム命令の１つ以上のモジュールとして実施され得る。コンピュータ読み取り可能媒体は非一時的なコンピュータ読み取り可能記憶媒体、機械読み取り可能記憶装置、機械読み取り可能記憶基板、記憶装置、機械読み取り可能伝搬信号に影響を与える物質の組成又はそれらの１つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための装置、デバイス及び機械の全てを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの１つ以上の組み合わせを構成するコードを含み得る。伝搬される信号は人工的に生成される信号、例えば、好適な受信器装置に送信するための情報を符号化するために生成される機械生成電気、光学又は電磁信号である。
【０１６９】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる）は、コンパイル又は解釈された言語を含む任意の形態のプログラミング言語で書かれていてもよく、スタンドアローンプログラムとして又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境での使用に適した他のユニットとしての形態を含む任意の形態で配備され得る。コンピュータプログラムは必ずしもファイルシステム内のファイルに対応していない。プログラムは、他のプログラム又はデータ（例えば、マークアップ言語文書に記憶される１つ以上のスクリプト）を保持するファイルの一部に、問題のプログラム専用の単一ファイルに又は複数の協調ファイル（例えば、１つ以上のモジュール、サブプログラム又はコードの部分を記憶するファイル）に記憶され得る。コンピュータプログラムは、１つのコンピュータ上で又は１つのサイトに位置するか又は複数のサイトで分散されて通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように配備され得る。
【０１７０】
本明細書に記載のプロセス及び論理フローは、１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって実行されて、入力データ上で動作し且つ出力を生成することにより機能を行い得る。プロセス及び論理フローは、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）等の専用論理回路により行われてもいいし又は装置は専用論理回路として実施されてもよい。
【０１７１】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用マイクロプロセッサの双方及び任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はその双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための１つ以上のメモリデバイスである。一般に、コンピュータは、例えば、磁気、光磁気ディスク又は光ディスクといったデータを記憶するための１つ以上の大容量記憶装置を含むか又はデータを受信し又はデータを送信するために動作可能に結合されるか又はその両方である。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータは、他の装置、例えば、いくつかの例を挙げると、タブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、モバイルオーディオプレーヤ、グローバルポジショニングシステム（ＧＰＳ）レシーバに埋め込まれ得る。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能媒体は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイス等の半導体メモリデバイス；磁気ディスク、例えば内部ハードディスク又はリムーバブルディスク；光磁気ディスク；ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補完されてもよいし、内蔵されてもよい。
【０１７２】
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えばＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタと、ユーザがコンピュータに入力を提供し得るキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実施され得る。ユーザとの対話を提供するために他の種類の装置を用いてもよく、例えばユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック又は触覚フィードバックであってもよく、ユーザからの入力は音響入力、音声入力又は触覚入力を含む任意の形態で受信され得る。
【０１７３】
本発明の実施形態は、バックエンドコンポーネント、例えばデータサーバを含むか又はミドルウェアコンポーネント、例えばアプリケーションサーバを含むか又はフロントエンドコンポーネント、例えばユーザが本発明の実施とやりとりし得るグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むか又はそのような１つ以上のバックエンド、ミドルウェア又はフロントエンドコンポーネントの任意の組み合わせを含むコンピュータシステムで実施され得る。システムのコンポーネントは任意の形態又は媒体のデジタルデータ通信、例えば通信ネットワークにより相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、例えばインターネットを含む。
【０１７４】
コンピュータシステムはクライアント及びサーバを含み得る。クライアント及びサーバは概して互いに離れており、通信ネットワークを介して通常対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバの関係を有するコンピュータプログラムのおかげで生じる。
【０１７５】
いくつかの実施を上記で詳細に説明してきたが、他の変更も可能である。例えば、デリゲートにアクセスするものとしてクライアントアプリケーションを説明したが、他の実施では、デリゲートは１つ以上のサーバ上で実行するアプリケーション等の１つ以上のプロセッサにより実施される他のアプリケーションにより用いられ得る。加えて、図面に示す論理フローは、所望の結果を得るために図示の特定の順序又は順番を必要としない。加えて、他のアクションが提供され得るか又は記載されたフローからアクションが除去されてもよく、他のコンポーネントが記載されたシステムに追加され得るか又は取り除かれ得る。したがって、他の実施は下記の特許請求の範囲内にある。
【０１７６】
本明細書は、多くの特定の実施の詳細を含むが、これらはいずれかの発明又はクレームされ得るものの範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈すべきである。別々の実施形態の文脈で本明細書に記載の特定の特徴は、組み合わされて単一の実施形態で実施することもできる。反対に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態で別々に又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は特定の組み合わせで作用するものとして上述され、そのように当初クレームされ得るが、クレームされた組み合わせからの１つ以上の特徴は、場合によっては組み合わせから切り出すことができ、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に向けられ得る。
【０１７７】
同様に、動作を特定の順序で図面に記載しているが、これは、所望の結果を得るためにそのような動作を図示の特定の順序で又は順番で行うこと又は記載された動作の全てを行うことを必要すると理解すべきではない。特定の状況下では、マルチタスク及び並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態でそのような分離を必要とするものと理解すべきではなく、記載のプログラムコンポーネント及びシステムは概して単一のソフトウェア製品内に統合され得るか又は複数のソフトウェア製品内にパッケージされ得ることを理解すべきである。
【０１７８】
主題の特定の実施形態を説明してきた。他の実施形態は以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載の動作は異なる順序で行うことができ、依然として所望の結果が得られる。一例として、添付の図面に記載のプロセスは所望の結果を得るために図示の特定の順序又は順番を必ずしも必要としない。特定の実施では、マルチタスク及び並列処理が有利であり得る。
【国際調査報告】
2022502961.tif 000051
2022502961.tif 000052