特表2022-502961(P2022-502961A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 華為技術有限公司の特許一覧
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2022-502961(P2022-502961A)
(43)【公表日】2022年1月11日
(54)【発明の名称】3D補助データを用いた動き推定
(51)【国際特許分類】
   H04N 19/52 20140101AFI20211217BHJP
   H04N 19/85 20140101ALI20211217BHJP
【FI】
   H04N19/52
   H04N19/85
【審査請求】有
【予備審査請求】未請求
【全頁数】101
(21)【出願番号】特願2021-518178(P2021-518178)
(86)(22)【出願日】2019年10月2日
(85)【翻訳文提出日】2021年5月20日
(86)【国際出願番号】US2019054194
(87)【国際公開番号】WO2020072579
(87)【国際公開日】20200409
(31)【優先権主張番号】62/740,237
(32)【優先日】2018年10月2日
(33)【優先権主張国】US
(31)【優先権主張番号】62/863,362
(32)【優先日】2019年6月19日
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザハルチェンコ,ブラディスラフ
(72)【発明者】
【氏名】チェン,ジェンレェ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LA02
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN21
5C159PP03
5C159PP04
5C159PP13
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、動き推定を行うための方法、システム及び装置である。一部の実施では、方法は点群データのセグメンテーションを該点群データの連続性データに基づいて生成することを含む。セグメント化された点群データの表現は、三次元境界ボックスの側面に投影される。セグメント化された点群データの投影された表現に基づいてパッチが生成される。パッチの第1のフレームが生成される。第1のフレーム及び参照フレームを用いて第1及び第2の補助情報が生成される。第1及び第2の補助情報に基づいて、参照フレームからのパッチに一致する第1のパッチが第1のフレームから特定される。第1及び第2の補助情報との間の差分に基づいて、第1及び第2のパッチとの間に動きベクトル候補が生成される。動きベクトル候補を用いて動き補償が行われる。
【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
1つ以上のプロセッサにより、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成するステップと、
前記1つ以上のプロセッサにより、セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影するステップであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ステップと、
前記1つ以上のプロセッサにより、前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成するステップと、
前記1つ以上のプロセッサにより、前記1つ以上のパッチの第1のフレームを生成するステップと、
前記1つ以上のプロセッサにより、前記第1のフレームのための第1の補助情報を生成するステップと、
前記1つ以上のプロセッサにより、参照フレームのための第2の補助情報を生成するステップと、
前記1つ以上のプロセッサにより、前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定するステップと、
前記1つ以上のプロセッサにより、前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成するステップと、
前記1つ以上のプロセッサにより、前記動きベクトル候補を用いて動き補償を行うステップと、
を含むコンピュータ実施方法。
【請求項2】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記記録された媒体の三次元点群データのセグメンテーションを生成するステップは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記1つ以上のプロセッサにより前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項4】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項5】
前記1つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項4に記載のコンピュータ実施方法。
【請求項6】
前記1つ以上のパッチのそれぞれのための二次元データ及び前記1つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項4に記載のコンピュータ実施方法。
【請求項7】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための1つ以上のパッチを生成するステップは、
前記1つ以上のプロセッサにより、前記三次元点群データの平滑性基準を各方向から決定することと、
前記1つ以上のプロセッサにより、前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、前記1つ以上のプロセッサにより、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項8】
前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成するステップは、
前記1つ以上のプロセッサにより、前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離を求めることと、
前記1つ以上のプロセッサにより、前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記1つ以上のプロセッサにより、前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、先行する請求項のいずれか一項に記載のコンピュータ実施方法。
【請求項9】
1つ以上のコンピュータと、命令を記憶する1つ以上の記憶装置とを含むシステムであって、該命令は該1つ以上のコンピュータにより実行された場合に、該1つ以上のコンピュータに、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、
前記1つ以上のパッチの第1のフレームを生成することと、
前記第1のフレームのための第1の補助情報を生成することと、
参照フレームのための第2の補助情報を生成することと、
前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定することと、
前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせるよう動作可能である、システム。
【請求項10】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項9に記載のシステム。
【請求項11】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項9乃至10のいずれかに記載のシステム。
【請求項12】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、請求項9乃至11のいずれかに記載のシステム。
【請求項13】
前記1つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項12のいずれかに記載のシステム。
【請求項14】
前記1つ以上のパッチのそれぞれのための二次元データ及び前記1つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項12に記載のシステム。
【請求項15】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための1つ以上のパッチを生成することは、
前記三次元点群データの平滑性基準を各方向から決定することと、
前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項9乃至14のいずれかに記載のシステム。
【請求項16】
前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することは、
前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離を求めることと、
前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項9乃至15のいずれかに記載のシステム。
【請求項17】
1つ以上の処理装置により実行可能な命令が記憶された1つ以上の非一時的コンピュータ読み取り可能記憶媒体であって、該命令は実行された場合に、該1つ以上の処理装置に、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、
前記1つ以上のパッチの第1のフレームを生成することと、
前記第1のフレームのための第1の補助情報を生成することと、
参照フレームのための第2の補助情報を生成することと、
前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定することと、
前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせる、1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
【請求項18】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項17に記載の1つ以上の非一時的コンピュータ読み取り可能媒体。
【請求項19】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項17乃至18のいずれかに記載の1つ以上の非一時的コンピュータ読み取り可能媒体。
【請求項20】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、請求項17乃至19のいずれかに記載の1つ以上の非一時的コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年10月2日に出願された米国仮特許出願第62/740237号及び2019年6月19日に出願された米国仮特許出願第62/863362号に対する優先権を主張し、双方は参照によりそれらの全体が本願に組み込まれる。
【背景技術】
【0002】
点群処理は、エンターテインメント産業、インテリジェント自動車ナビゲーション、地理空間検査、実世界オブジェクトの三次元(3D)モデリング及び環境可視化等の用途での広範なアプリケーションの不可欠な一部になっている。
【発明の概要】
【課題を解決するための手段】
【0003】
一部の実施では、本明細書は、三次元及び二次元補助データを用いて動き推定を行うための技術を説明する。三次元点群データを符号化し且つ送信するために動き推定が行われる。三次元点群データは、人間又は実世界のアイテム等の三次元オブジェクトの外面の輪郭を描くか又は視覚的に表すデータポイントを含む。三次元点群データは、三次元点群データの色、テクスチャ及び深度を示す属性情報も含むことができる。エンコーダ又はデコーダは、動き精密化データを用いて三次元点群データをそれぞれ符号化又は復号化できる。
【0004】
一部の実施では、エンコーダ又はデコーダは、三次元点群データを囲むために三次元境界ボックスを用い、その後に符号化及び送信に用いられるパッチを生成する。エンコーダは三次元点群データの画像を三次元境界ボックスの側面に投影できる。エンコーダは、画像又はパッチを符号化のために用いるためにフレームにグループ化できる。通常大きい三次元点群データを送信するために通常用いられる帯域幅の量を低減するために、エンコーダは代わりに、現在生成されたフレームからのパッチを先に生成されたフレームのパッチと比較することにより動き精密化データを生成できる。エンコーダは2つのフレーム間のパッチをマッチングさせ、マッチングしたパッチを特定するデータに基づいて動き精密化データを生成できる。例えば、エンコーダは、動き精緻化データとして含めるために、位置座標及びパッチのサイズを定義する補助情報を用いり得る。パッチのフレームを符号化及び送信する代わりに、モーション精緻化データを符号化及び送信のために用いて、全体的な伝送帯域幅を低減し且つメッセージを適切に復号化及び受信することができる。動き精緻化データが一度特定されると、三次元点群データの改善された送信のため、動き精緻化データを既存のビデオ圧縮技術に加えることができる。
【0005】
1つの一般的な態様では、方法は、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側面に基づいて異なる、ことと、セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、1つ以上のパッチの第1のフレームを生成することと、第1のフレームのための第1の補助情報を生成することと、参照フレームのための第2の補助情報を生成することと、第1の補助情報及び第2の補助情報に基づいて、参照フレームからの第2のパッチに一致する第1のパッチを第1のフレームから特定することと、第1の補助情報と第2の補助情報との間の差分に基づいて、第1のパッチと第2のパッチとの間に動きベクトル候補を生成することと、動きベクトル候補を用いて動き補償を行うことと、を含む。
【0006】
本開示のこの及び他の態様の他の実施形態は、方法の動作を行うように構成された対応するシステム、装置及びコンピュータ記憶装置に符号化されたコンピュータプログラムを含む。1つ以上のコンピュータのシステムは、動作時にシステムに動作を行わせるソフトウェア、ファームウェア、ハードウェア又はシステムにインストールされたそれらの組み合わせによってそのように構成できる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置に動作を行わせる命令を有することによって、そのように構成できる。
【0007】
前述の及び他の実施形態は、それぞれ任意で下記に特徴を単独で又は組み合わせで含むことができる。例えば、一実施形態は下記の特徴の全てを組み合わせで含む。
【0008】
一部の実施では、方法は、参照フレームが第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応することを含む。
【0009】
一部の実施では、記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む。
【0010】
一部の実施では、第1の補助情報は、1つ以上のパッチのそれぞれのためのインデックスデータと、1つ以上のパッチのそれぞれのための二次元データと、1つ以上のパッチのそれぞれのための三次元データとを含む。
【0011】
一部の実施では、1つ以上のパッチのそれぞれのためのインデックスデータは、三次元境界ボックスの対応する側面に対応する。
【0012】
一部の実施では、1つ以上のパッチのそれぞれのための二次元データ及び1つ以上のパッチのそれぞれのための三次元データは、接続された三次元点群データの部分に対応する。
【0013】
一部の実施では、三次元点群データの連続性データに基づいて、三次元点群データのための1つ以上のパッチを生成することは、三次元点群データの平滑性基準を各方向から決定することと、三次元点群データの各方向から平滑性基準を比較することと、比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、をさらに含む。
【0014】
一部の実施では、第1のパッチと第2のパッチとの間に動きベクトル候補を生成することは、第1の補助情報の2次元データと第2の補助情報の2次元データとの間の距離を求めることと、第1の補助情報の2次元データと第2の補助情報の2次元データとの間の距離に基づいて、動きベクトル候補を生成することと、動きベクトル候補を動きベクトル候補リストに加えることと、をさらに含む。
【0015】
本明細書の主題の1つ以上の実施形態の詳細を添付の図面及び以下の説明で記載する。主題の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0016】
図1図1は、ビデオ信号を符号化する例示の方法のフローチャートである。
図2図2は、ビデオ符号化のための例示の符号化及び復号化(コーデック)システムの概略図である。
図3図3は、例示のビデオエンコーダを示すブロック図である。
図4図4は、例示のビデオデコーダを示すブロック図である。
図5図5は、単方向相互予測の一例を示す概略図である。
図6図6は、双方向相互予測の一例を示す概略図である。
図7図7は、ビデオ符号化に用いられる例示のイントラ予測モードを示す概略図である。
図8図8は、ビデオ符号化におけるブロックの方向関係の例を示す概略図である。
図9図9は、例示のインループフィルタを示すブロック図である。
図10図10は、ブロック分割で用いられる例示の分割モードを示す。
図11図11は、例示のビデオ符号化メカニズムの概略図である。
図12図12は、ビデオ符号化のためのコンピュータ装置の概略図である。
図13図13は、点群媒体を示すシステムの一例である。
図14図14は、点群フレームシーケンスを示すシステムの一例である。
図15図15は、三次元パッチ境界ボックスから二次元パッチ投影への変換プロセスの一例である。
図16図16は、3Dから2Dパッチ投影の結果を示すシステムの一例である。
図17図17は、点群媒体の属性セグメンテーションの一例である。
図18図18は、属性情報を有する点群媒体のためのパッキングパッチを示すシステムの一例である。
図18図18は、ビデオベースの点群圧縮(V−PCC)ビットストリーム構造の一例である。
図19図19は、動き推定を行うためのシステムの一例である。
図20図20は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。
図21図21は、マージ候補リスト構築のための導出プロセスを示す。
図22図22は、空間マージ候補と、空間マージ候補の冗長性チェックのために考慮される候補対の位置のシステムを示す。
図23図23は、N×2N及び2N×N分割の第2のPUの位置を示すシステムを示す。
図24図24は、時間的マージ候補のためのスケーリングされた動きベクトルを得ることを示す。
図25図25は、時間的マージ候補のための候補位置を示すシステムである。
図26図26は、複合双方向予測マージ候補の例示の表を示す。
図27図27は、補助データを用いた動き推定パイプラインの変形を含むシステムの一例である。
図28図28は、V−PCCユニットペイロードのパケットストリーム表現の一例である。
図29図29は、V−PCCユニットペイロードのビジュアル表現の別の一例である。
図30図30は、3D補助データを用いて動き推定を行うプロセスの一例を示すフロー図である。 様々な図面における同様の参照番号及び指定は同様の要素を示す。
【発明を実施するための形態】
【0017】
最初に、1つ以上の実施形態の例示の実施が以下で提供されるが、開示のシステム及び/又は方法は、現在知られているか又は存在するかを問わず、任意の数の技術を用いて実施され得ることを理解すべきである。本開示は、本明細書で図示説明する例示の設計及び実施を含む、以下に示す例示の実施、図面及び技術に何ら限定すべきでなく、添付の特許請求の範囲と共にそれらの均等物の範囲全体内で変更され得る。
【0018】
図1は、ビデオ信号を符号化する例示の方法100のフローチャートである。具体的には、ビデオ信号はエンコーダで符号化される。符号化プロセスは、ビデオファイルのサイズを低減するために様々なメカニズムを用いることによりビデオ信号を圧縮する。より小さいファイルサイズは、圧縮されたビデオファイルをユーザに向けて送信できるようにしながら、関連する帯域幅オーバーヘッドを低減する。次に、デコーダは圧縮されたビデオファイルを復号化してエンドユーザに表示するために元のビデオ信号を再構成する。復号化プロセスは概してデコーダがビデオ信号を一貫して再構成できるように符号化プロセスに酷似している(mirrors)。
【0019】
ステップ101で、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号はメモリに記憶された非圧縮のビデオファイルであり得る。別の例として、ビデオファイルは、ビデオカメラ等のビデオ取り込み装置によって取り込まれたものでもよく、ビデオのライブストリーミングをサポートするために符号化され得る。ビデオファイルは、オーディオコンポーネント及びビデオコンポーネントの双方を含み得る。ビデオコンポーネントは、連続して視た場合に視覚的に動きの印象を与える一連の画像フレームを含む。フレームは、本明細書ではルマ成分(luma component)と呼ばれる光と、クロマ成分と呼ばれる色との観点で表されるピクセルを含む。一部の例では、フレームは三次元表示をサポートするために深度値も含み得る。
【0020】
ステップ103で、ビデオはブロックに分割される。分割は、圧縮のために各フレーム内のピクセルを正方形及び/又は長方形のブロックに細分すること(subdividing)を含む。例えば、さらなる符号化をサポートする構成が得られるまでブロックを分割し、再帰的に細分するために符号化木(coding tree)が用いられ得る。そのため、ブロックは、(H.265及びMPEG−H Part 2としても知られている)高効率ビデオ符号化(HEVC)における符号化木単位とも呼ばれ得る。例えば、フレームのルマ成分は、個々のブロックが比較的均一な照明値(lighting value)を含むまで細分され得る。さらに、フレームのクロマ成分は、個々のブロックが比較的均一なカラー値を含むまで細分され得る。したがって、分割メカニズムはビデオフレームのコンテンツに応じて変化し得る。
【0021】
ステップ105で、ステップ103において分割された画像ブロックを圧縮するために様々な圧縮メカニズムが用いられる。例えば、相互予測及び/又はイントラ予測が用いられ得る。相互予測は、共通のシーンのオブジェクトは連続したフレームで現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを記述するブロックは、後続のフレームで繰り返し記述する必要がない。具体的には、テーブル等のオブジェクトは複数のフレームにわたって一定の位置に留まり得る。そのため、テーブルは一度記述するだけでよく、後続のフレームは参照フレームを参照できる。複数フレームにわたってオブジェクトをマッチングするためにパターンマッチングメカニズムが用いられ得る。さらに、移動オブジェクトは、例えば、オブジェクトの動き又はカメラの動きにより複数のフレームにわたって表現され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切る自動車を示し得る。そのような動きを記述するために動きベクトルを用いることができる。動きベクトルは、あるフレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する二次元ベクトルである。そのため、相互予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す一組の動きベクトルとして符号化できる。
【0022】
相互予測は、共通フレーム内のブロックを符号化する。相互予測は、ルマ及びクロマ成分がフレーム内でかたまる傾向があるという事実を利用する。例えば、木の一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。相互予測は、多方向予測モード(例えば、HEVCの33)、平面モード及び直流(DC)モードを用いる。方向モードは、現在のブロックが対応する方向において隣接ブロックと同様/同一であることを示す。平面モードは、行(例えば、平面)に沿った一連のブロックを行の端にある隣接ブロックに基づいて補間できることを示す。平面モードは、値を変化させる際に比較的一定の傾きを用いることにより、行にわたって光/色の滑らかな遷移を事実上示す。DCモードは境界平滑化のために用いられ、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックに関連する平均値と同様/同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに様々な関係予測モード値として画像ブロックを表すことができる。さらに、相互予測ブロックは、実際の値の代わりに動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては画像ブロックを正確に表さないことがある。差分はいずれも残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために残差ブロックに適用され得る。
【0023】
ステップ107で、様々なフィルタリング技術が適用され得る。HEVCでは、フィルタは、インループフィルタスキームに従って適用される。上述のブロックベースの予測は、デコーダでブロックノイズのある画像(blocky images)の生成をもたらし得る。さらに、ブロックベースの予測スキームはブロックを符号化し、次いで符号化したブロックを後で参照ブロックとして用いるために再構成し得る。インループフィルタスキームは、ブロック/フレームにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びSAOフィルタを反復的に適用する。これらのフィルタは、符号化されたファイルを正確に再構成できるようにそのようなブロッキングアーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロックにおけるアーチファクトを軽減し、アーチファクトが再構成された参照ブロックに基づいて符号化される後続のブロックにおいて追加のアーチファクトを生成する可能性を低減する。インループフィルタ処理について以下で詳細に説明する。
【0024】
一度ビデオ信号が分割され、圧縮され、フィルタリングされると、結果として得られるデータはステップ109でビットストリームに符号化される。ビットストリームは上述のデータに加えて、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意の信号データを含む。例えば、そのようなデータは、分割データ、予測データ、残差ブロック及びデコーダへの符号化命令を提供する様々なフラグを含み得る。ビットストリームは、要求に応じてデコーダに向けて送信するためにメモリに記憶され得る。ビットストリームは複数のデコーダに向けてブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ101、103、105、107及び109は、多くのフレーム及びブロックにわたって連続的に及び/又は同時に起こり得る。図1に示す順序は説明を明確にし且つ容易にするために提示されたものであり、ビデオ符号化プロセスを特定の順序に限定することを意図していない。
【0025】
デコーダはビットストリームを受信し、ステップ111で復号化プロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文及びビデオデータに変換するためにエントロピー復号化スキームを用いる。デコーダは、ステップ111でフレームのための分割を特定するためにビットストリームからの構文データを用いる。分割は、ステップ103でのブロック分割の結果と一致しなければならない。ここで、ステップ111で用いられるエントロピー符号化/復号化について説明する。エンコーダは、いくつかの可能な選択肢から入力画像内の値の空間位置に基づいてブロック分割スキームを選択すること等の圧縮プロセスの間に多くの選択を行う。厳密な選択肢を示すことは多数のビンを使用し得る。本明細書で用いるように、ビンは可変として扱われるバイナリ値(例えば、コンテキストに応じて変化し得るビット値)である。エントロピー符号化は、特定の場合において明らかに実行不能な任意のオプションをエンコーダが破棄できるようにして、一組の許容可能なオプションのみが残される。そして、各許容可能なオプションに符号語が割り当てられる。符号語の長さは許容可能なオプションの数に基づく(例えば、2つのオプションに対して1つのビン、3〜4つのオプションに対して2つのビン等)。次に、エンコーダは選択されたオプションに対して符号語を符号化する。このスキームは符号語のサイズを小さくする。なぜなら、符号語は、全ての可能なオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すのに望ましい大きさでしかないからである。次に、デコーダは、エンコーダの場合と同様に許容可能なオプションのセットを決定することにより選択を復号化する。許容可能なオプションのセットを決定することにより、デコーダは符号語を読み取り、エンコーダによってなされた選択を特定できる。
【0026】
ステップ113で、デコーダはブロック復号化を行う。具体的には、デコーダは、残差ブロックを生成するために逆変換を用いる。次に、デコーダは残差ブロック及び対応する予測ブロックを用いて、分割に従って画像ブロックを再構成する。予測ブロックは、ステップ105においてエンコーダで生成されたイントラ予測ブロック及び相互予測ブロックの双方を含み得る。次に、再構成された画像ブロックは、ステップ111で特定された分割データに従って、再構成されたビデオ信号のフレーム内に配置される。上述したように、ステップ113のための構文を、エントロピー符号化を介してビットストリームに信号伝達(signaled)してもよい。
【0027】
ステップ115で、エンコーダでのステップ107と同様の方法で再構成されたビデオ信号のフレームに対してフィルタリングが行われる。例えば、ブロッキングアーチファクトを取り除くためにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びSAOフィルタがフレームに適用され得る。一度フレームがフィルタリングされると、エンドユーザによる視聴のためにビデオ信号をステップ117でディスプレイに出力できる。
【0028】
図2は、ビデオ符号化のための例示の符号化及び復号化(コーデック)システム200の概略図である。具体的には、コーデックシステム200は、方法100の実施をサポートする機能を提供する。コーデックシステム200は、エンコーダ及びデコーダの双方で用いられるコンポーネントを示すために一般化されている。コーデックシステム200は、方法100のステップ101及び103に関連して説明したように、ビデオ信号を受信及び分割し、その結果として分割されたビデオ信号201が得られる。次に、コーデックシステム200は、方法100のステップ105、107及び109に関連して説明したように、エンコーダの役割を果たす場合は、分割されたビデオ信号201を圧縮して符号化されたビットストリームにする。デコーダとしての役割を果たす場合、コーデックシステム200は、方法100のステップ111、113、115及び117に関連して説明したようにビットストリームから出力ビデオ信号を生成する。コーデックシステム200は、一般コーダ制御コンポーネント211と、変換スケーリング及び量子化コンポーネント213と、イントラピクチャ推定コンポーネント215と、イントラピクチャ予測コンポーネント217と、動き補償コンポーネント219と、動き推定コンポーネント221と、スケーリング及び逆変換コンポーネント229と、フィルタ制御分析コンポーネント227と、インループフィルタコンポーネント225と、復号化ピクチャバッファコンポーネント223と、ヘッダフォーマット化及びCABAC(context adaptive binary arithmetic coding)コンポーネント231とを含む。そのようなコンポーネントは図示のように連結されている。図2において、黒線は符号化/復号化すべきデータの動きを示すのに対して、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデックシステム200のコンポーネントの全てはエンコーダ内に存在してもよい。デコーダはコーデックシステム200のコンポーネントのサブセットを含み得る。例えば、デコーダはイントラピクチャ予測コンポーネント217と、動き補償コンポーネント219と、スケーリング及び逆変換コンポーネント229と、インループフィルタコンポーネント225と、復号化ピクチャバッファコンポーネント223とを含み得る。これらのコンポーネントをこれから説明する。
【0029】
分割されたビデオ信号201は、符号化木によりピクセルのブロックに分割されている取り込まれたビデオストリームである。符号化木は、ピクセルのブロックをより小さなピクセルのブロックに細分するために様々な分割モードを用いる。次に、これらのブロックをより小さなブロックにさらに細分できる。ブロックは、符号化木上のノードと呼ばれ得る。より大きな親ノードはより小さな子ノードに分割される。ノードが細分される回数はノード/符号化木の深度と呼ばれる。分割されたブロックは、場合によっては符号化ユニット(CU)と呼ばれる。分割モードは、用いられる分割モードに応じて形状が異なる2つ、3つ又は4つの子ノードにノードを分割するのにそれぞれ用いられるバイナリ木(BT)、トリプル木(TT)及びクワッド木(QT)を含み得る。分割されたビデオ信号201は圧縮のために一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227及び動き推定コンポーネント221に転送される。
【0030】
一般コーダ制御コンポーネント211は、アプリケーションの制約に従ってビデオシーケンスの画像をビットストリームに符号化することに関連する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント211は、再構成品質に対するビットレート/ビットストリームサイズの最適化を管理する。そのような決定は、記憶領域/帯域幅の利用可能性及び画像解像度要求に基づいてなされ得る。一般コーダ制御コンポーネント211は、バッファのアンダーラン及びオーバーランの問題を緩和するために、送信速度に照らしてバッファの利用も管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによる分割、予測及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、解像度を高め且つ帯域幅の使用を高めるために圧縮の複雑性を動的に高め得るか又は解像度と帯域幅の使用とを下げるために圧縮の複雑性を下げ得る。そのため、一般コーダ制御コンポーネント211は、ビデオ信号の再構成品質とビットレートの懸念とのバランスを取るためにコーデックシステム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データは、デコーダでの復号化のためのパラメータを伝達するためビットストリーム内に符号化されるように、ヘッダフォーマット化及びCABACコンポーネント231にも転送される。
【0031】
分割されたビデオ信号201は、相互予測のために動き推定コンポーネント221及び動き補償コンポーネント219にも送られる。分割されたビデオ信号201のフレーム又はスライスは複数のビデオブロックに分割され得る。動き推定コンポーネント221及び動き補償コンポーネント219は、時間予測(temporal prediction)を提供するために、1つ以上の参照フレーム内の1つ以上のブロックに対して受信したビデオブロックの相互予測符号化を行う。コーデックシステム200は、例えばビデオデータの各ブロックのために適切な符号化モードを選択するために複数の符号化パスを行い得る。
【0032】
動き推定コンポーネント221及び動き補償コンポーネント219は高度に統合され得るが、概念的な目的のために別個に示している。動き推定コンポーネント221によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(又は他の符号化ユニット)内で符号化されている現在のブロックに対する、参照フレーム(又は他の符号化ユニット)内の予測ブロックに対するビデオブロックの予測ユニット(PU)の変位を示し得る。予測ブロックは、ピクセルの差分の観点から符号化すべきブロックに厳密に一致することが見出されたブロックであり、絶対差(SAD)の和、二乗差の和(SSD)又は他の差分メトリックスにより決定され得る。一部の例では、コーデックシステム200は、復号化ピクチャバッファ223に記憶された参照ピクチャのサブ整数ピクセル位置の値を算出し得る。例えば、ビデオコーデックシステム200は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置又は他の分数のピクセル位置の値を補間し得る。したがって、動き推定コンポーネント221は、全ピクセル位置及び分数ピクセル位置に対する動き探索を行って、分数ピクセル精度を有する動きベクトルを出力し得る。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによりインター符号化されたスライス内のビデオブロックのPUのための動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを動きデータとしてヘッダフォーマット化及びCABACコンポーネント231に符号化のために出力し、動き補償コンポーネント219に動きを出力する。
動き補償コンポーネント219によって行われる動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて、予測ブロックをフェッチ又は生成することを伴い得る。再び、一部の例では、動き推定コンポーネント221及び動き補償コンポーネント219は機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが参照ピクチャリストを指す予測ブロックを特定し得る。次に、符号化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することにより残差ビデオブロックが形成され、ピクセル差分値を形成する。一般に、動き推定コンポーネント221はルマ成分に対する動き推定を行い、動き補償コンポーネント219はクロマ成分及びルマ成分の双方のためにルマ成分に基づいて計算された動きベクトルを用いる。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。
【0033】
分割されたビデオ信号201は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217にも送られる。動き推定コンポーネント221及び動き補償コンポーネント219の場合と同様に、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は高度に統合され得るが、概念的な目的のために別個に示している。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、上述した動き推定コンポーネント221及び動き補償コンポーネント219によりフレーム間で行われる相互予測に代えて、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。とりわけ、イントラピクチャ推定コンポーネント215は、現在のブロックを符号化するために用いるイントラ予測モードを決定する。一部の例では、イントラピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックを符号化するのに適切なイントラ予測モードを選択する。次に、選択されたイントラ予測モードが、符号化のためにヘッダフォーマット化及びCABACコンポーネント231に転送される。
【0034】
例えば、イントラピクチャ推定コンポーネント215は、様々なテストされたイントラ予測モードのためにレート歪み解析を用いてレート歪み値を計算し、テストされたモードの間で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み解析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の非符号化ブロックとの間の歪み(又はエラー)の量に加えて、符号化されたブロックを生成するのに用いられるビットレート(例えば、ビットの数)概して特定する。イントラピクチャ推定コンポーネント215は、ブロックにとって最良のレート歪み値を呈するイントラ予測モードがどれか判定するために、様々な符号化されたブロックのための歪み及びレートから比を計算する。加えて、イントラピクチャ推定コンポーネント215は、レート歪み最適化(RDO)に基づいて深度モデリングモード(DMM)を用いて深度マップの深度ブロックを符号化するように構成され得る。
【0035】
イントラピクチャ予測コンポーネント217は、イントラピクチャ推定コンポーネント215により決定された選択されたイントラ予測モードに基づいて、予測ブロックから残差ブロックを生成し得る。残差ブロックは、マトリクスとして表される予測ブロックと元のブロックとの間の値の差分を含む。次に、残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、ルマ及びクロマ成分の双方に対して動作し得る。
【0036】
変換スケーリング及び量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(DCT)、離散正弦変換(DST)又は概念的に同様の変換等の変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換又は他の種類の変換も使用され得る。変換は、残差情報をピクセル値ドメインから変換ドメインに、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント213は、変換された残差情報を例えば周波数に基づいてスケーリングするようにも構成されている。
【0037】
そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報に倍率を適用することを伴い、それは再構成されたビデオの最終的な視覚品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント213は、ビットレートをさらに下げるために変換係数を量子化するようにも構成されている。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することにより変更され得る。一部の例では、変換スケーリング及び量子化コンポーネント213は、次いで、量子化された変換係数を含むマトリクスのスキャンを行い得る。量子化された変換係数は、ビットストリームに符号化されるようにヘッダフォーマット化及びCABACコンポーネント231に転送される。
【0038】
スケーリング及び逆変換コンポーネント229は、動き推定をサポートするために変換スケーリング及び量子化コンポーネント213の逆動作を適用する。スケーリング及び逆変換コンポーネント229は、例えば、別の現在のブロックのための予測ブロックになり得る参照ブロックとして後で用いるためにピクセルドメイン内の残差ブロックを再構成するのに逆スケーリング、変換及び/又は量子化を適用する。動き推定コンポーネント221及び/又は動き補償コンポーネント219は、後のブロック/フレームの動き推定で用いるために残差ブロックを対応する予測ブロックに加算することにより参照ブロックを計算し得る。スケーリング、量子化及び変換の間に生じるアーチファクトを緩和するために、再構成された参照ブロックにフィルタが適用される。そうでなければ、そのようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こし(且つさらなるアーチファクトを作り出す)得る。
【0039】
フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は、残差ブロック及び/又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックが、イントラピクチャ予測コンポーネント217及び/又は動き補償コンポーネント219からの対応する予測ブロックと組み合わされて、元の画像ブロックが再構成され得る。次に、再構成された画像ブロックにフィルタが適用され得る。一部の例では、フィルタは、代わりに、残差ブロックに適用され得る。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は高度に統合されており、共に実施され得るが、概念的な目的のために別個に示されている。再構成された参照ブロックに適用されるフィルタは特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント227は、そのようなフィルタをどこに適用すべきか決定するために再構成された参照ブロックを解析し、対応するパラメータを設定する。そのようなデータは、フィルタ制御データとしてヘッダフォーマット化及びCABACコンポーネント231に符号化のために転送される。インループフィルタコンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ及び適応ループフィルタを含み得る。そのようなフィルタは、例に応じて空間/ピクセルドメインに(例えば、再構成されたピクセルブロックに)又は周波数ドメインに適用され得る。
【0040】
エンコーダとして動作する場合、フィルタリングされ、再構成された画像ブロック、残差ブロック及び/又は予測ブロックは、上述したように動き推定で後で用いるために復号化画像バッファ223に記憶される。デコーダとして動作する場合、復号化画像バッファ223は、再構成され、フィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。復号化画像バッファ223は、予測ブロック、残差ブロック及び/又は再構成された画像ブロックを記憶可能な任意のメモリ装置であり得る。
【0041】
ヘッダフォーマット化及びCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、そのようなデータを符号化してデコーダに向けて伝送するための符号化ビットストリームにする。具体的には、ヘッダフォーマット化及びCABACコンポーネント231は、一般的な制御データ及びフィルタ制御データ等の制御データを符号化するために様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データに加えて、量子化変換係数データの形態の残差データが全てビットストリームに符号化される。最終的なビットストリームは、元の分割されたビデオ信号201を再構成するためにデコーダによって望まれる全ての情報を含む。そのような情報は、イントラ予測モードインデックステーブル(符号語マッピングテーブルともいう)、様々なブロックのための符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、分割情報の表示等も含み得る。そのようなデータはエントロピー符号化を用いて符号化され得る。例えば、情報は、コンテキスト適応可変長符号化(CAVLC)、CABAC及びシンタックスベースコンテキスト適応2値算術符号化(SBAC)、確率間隔区分エントロピー符号化(PIPE)又は他のエントロピー符号化技術を用いることにより符号化され得る。エントロピー符号化に続いて、符号化されたビットストリームは別の装置(例えば、ビデオデコーダ)に転送され得るか又は後で転送又は検索するためにアーカイブされ得る。
【0042】
図3は、例示のビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200の符号化機能及び/又は方法100のステップ101、103、105、107及び/又は109を実施するために用いられ得る。エンコーダ300は入力ビデオ信号を分割し、分割されたビデオ信号201と実質的に同様の分割されたビデオ信号301が得られる。次に、分割されたビデオ信号301は、エンコーダ300のコンポーネントにより圧縮され、ビットストリームに符号化される。
【0043】
具体的には、分割されたビデオ信号301は、イントラ予測のためにイントラピクチャ予測コンポーネント317に転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と実質的に同様であり得る。分割されたビデオ信号301は、復号化ピクチャバッファ323内の参照ブロックに基づく相互予測のために動き補償コンポーネント321にも転送される。動き補償コンポーネント321は、動き推定コンポーネント221及び動き補償コンポーネント219と実質的に同様であり得る。イントラピクチャ予測コンポーネント317及び動き補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント313に転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様であり得る。変換され且つ量子化された残差ブロック及び対応する予測ブロックは(関連する制御データと共に)ビットストリームへの符号化のためにエントロピー符号化コンポーネント331に転送される。エントロピー符号化コンポーネント331は、ヘッダフォーマット化及びCABACコンポーネント231と実質的に同様であり得る。
【0044】
変換及び量子化された残差ブロック及び/又は対応する予測ブロックも、動き補償コンポーネント321により用いられる参照ブロックに再構成されるために変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329に転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に同様であり得る。インループフィルタコンポーネント325内のインループフィルタも、例に応じて残差ブロック及び/又は再構成された参照ブロックに適用される。インループフィルタコンポーネント325は、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225と実質的に同様であり得る。インループフィルタコンポーネント325は、後述するようにノイズ抑制フィルタを含む複数のフィルタを含み得る。次に、フィルタリングされたブロックは、動き補償コンポーネント321により参照ブロックとして用いられるために復号化ピクチャバッファ323に記憶される。復号化ピクチャバッファ323は、復号化ピクチャバッファ223と実質的に同様であり得る。
【0045】
図4は、例示のビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200の復号化機能及び/又は方法100のステップ111、113、115及び/又は117を実施するために用いられ得る。デコーダ400は、例えばエンコーダ300からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【0046】
ビットストリームはエントロピー復号化コンポーネント433により受信される。エントロピー復号化コンポーネント433は、エントロピー符号化コンポーネント331の逆機能を行う。エントロピー復号化コンポーネント433は、CAVLC、CABAC、SBAC及びPIPE符号化又は他のエントロピー符号化技術等のエントロピー復号化スキームを実施するよう構成されている。例えば、エントロピー復号化コンポーネント433は、ビットストリーム内で符号語として符号化された追加のデータを解釈するためにコンテキストを提供するためにヘッダ情報を用いり得る。復号化された情報は、ビデオ信号を復号化するために、一般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ及び残差ブロックからの量子化変換係数等の任意の所望の情報を含む。量子化変換係数は、残差ブロックに再構成するために逆変換及び量子化コンポーネント429に転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と実質的に同様であり得る。
【0047】
再構成された残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づいて画像ブロックに再構成するために、イントラピクチャ予測コンポーネント417に転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ予測コンポーネント317と実質的に同様であり得るが、逆に動作し得る。具体的には、イントラピクチャ予測コンポーネント417は、フレーム内の参照ブロックを特定するために予測モードを用い、イントラ予測された画像ブロックを再構成するために結果に残差ブロックを適用する。再構成され、イントラ予測された画像ブロック及び/又は残差ブロック及び対応する相互予測データは、復号化ピクチャバッファコンポーネント423にインループフィルタコンポーネント425を介して(それぞれ復号化ピクチャバッファコンポーネント323及びインループフィルタコンポーネント325と実質的に同様であり得る)に転送される。インループフィルタコンポーネント425は、再構成された画像ブロック、残差ブロック及び/又は予測ブロックをフィルタリングし、そのような情報は復号化ピクチャバッファコンポーネント423に記憶される。復号化ピクチャバッファコンポーネント423からの再構成された画像ブロックは、相互予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は動き補償コンポーネント321と実質的に同様であり得るが、動作が逆であり得る。具体的には、動き補償コンポーネント421は、参照ブロックから動きベクトルを用いて予測ブロックを生成し、画像ブロックを再構成するために残差ブロックを結果に適用する。結果として得られた再構成されたブロックは、インループフィルタコンポーネント425を介して復号化ピクチャバッファコンポーネント423に転送され得る。復号化ピクチャバッファコンポーネント423は、分割情報を介してフレームに再構成可能な追加の再構成された画像ブロックの記憶を続ける。そのようなフレームは、シーケンスにも配置され得る。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【0048】
相互予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスは画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、画像ブロックは相互予測(異なるフレーム内のブロック間の相関関係)又はイントラ予測(同じフレーム内のブロック間の相関関係)により圧縮され得る。
【0049】
符号化木ユニット(CTU)、符号化木ブロック(CTB)、符号化ユニット(CU)、サブCU等の符号化オブジェクトがビデオシーケンスの複数フレームに現れた場合に相互予測が用いられる。各フレーム内の同じオブジェクトを符号化する代わりに、オブジェクトは参照フレーム内で符号化され、オブジェクトの動き軌跡(motion trajectory)を示すために動きベクトル(MV)が用いられる。オブジェクトの動き軌跡はオブジェクトの経時的な動きである。MVは、フレーム間で位置変化するオブジェクトの方向及び大きさを示すベクトルである。オブジェクト及びMVはビットストリームに符号化でき、デコーダにより復号化される。符号化効率をさらに高め、符号化のサイズを低減するために、MVはビットストリームから省略され、デコーダで導出され得る。例えば、一対の参照フレームが用いられ得る。参照フレームは、関連するフレームを符号化する際に参照により符号化可能なデータを含むビットストリーム内のフレームである。双方の参照フレーム内の符号化オブジェクトの位置を特定するためにバイラテラルマッチング及び/又はテンプレートマッチング等のマッチングアルゴリズムが用いられ得る。バイラテラルマッチングアルゴリズムは、先のフレーム内のブロックを現在のフレーム内のブロックにマッチングさせる。テンプレートマッチングアルゴリズムは隣接するブロックを現在のブロックとマッチングさせ、1つ以上の参照フレーム内で隣接するブロックを現在のブロックとマッチングさせる。双方の参照フレーム内でオブジェクトの位置が特定されると、参照フレーム間のオブジェクトの動きを表すMVを決定できる。次に、参照フレーム間のフレーム内にオブジェクトを配置するためにMVを用いることができる。具体的な例として、CU全体のために初期MVを決定できる。そして、初期MVを精緻化するためにローカル検索を用いることができる。さらに、オブジェクトのサブCUコンポーネントのためのMVは、精密化された初期MVに基づいて決定及び精密化できる。そのようなアプローチは、オブジェクトの動き軌跡が参照フレーム間で連続している限り、オブジェクトの正しい位置を示す。
【0050】
図5は、例えば、ブロック圧縮ステップ105、ブロック復号化ステップ113、動き推定コンポーネント221、動き補償コンポーネント219、動き補償コンポーネント321及び/又は動き補償コンポーネント421で動きベクトル(MV)を決定するために行われる一方向相互予測500の一例を示す概略図である。
【0051】
一方向相互予測500は、現在のフレーム510内の現在のブロック511を予測するために参照ブロック531を有する参照フレーム530を用いる。参照フレーム530は、図示のように現在のフレーム510の後に時間的に位置し得るが、一部の例では現在のフレーム510の前に時間的に位置し得る。現在のフレーム510は、特定の時間に符号化/復号化される例示のフレーム/ピクチャである。現在のフレーム510は、参照フレーム530の参照ブロック531内のオブジェクトとマッチするオブジェクトを現在のブロック511内に含む。参照フレーム530は、現在のフレーム510を符号化するための参照として用いられるフレームであり、参照ブロック531は、現在のフレーム510の現在のブロック511にも含まれるオブジェクトを含む参照フレーム530内のブロックである。現在のブロック511は、符号化プロセスの特定の時点で符号化/復号化される任意の符号化ユニットである。現在のブロック511は、分割されたブロック全体であり得るか又はアフィン相互予測の場合ではサブブロックであり得る。現在のフレーム510は、ある時間的距離(TD)533参照フレーム530から離れている。TD533は、ビデオシーケンス内で現在のフレーム510と参照フレーム530との間の時間を示す。TD533により表される期間にわたって、現在のブロック511内のオブジェクトは、現在のフレーム510内の位置から参照フレーム530内の別の位置(例えば、参照ブロック531の位置)に移動する。例えば、オブジェクトは、経時的なオブジェクトの動きの方向である動き軌跡513に沿って移動し得る。動きベクトル535は、TD533にわたる動き軌跡513に沿ったオブジェクトの動きの方向及び大きさを記述する。したがって、符号化されたMV535及び参照ブロック531は、現在のブロック511及び現在の現在のフレーム510内の現在のブロック511の位置を再構成するのに十分な情報を提供する。
【0052】
図6は、例えば、ブロック圧縮ステップ105、ブロック復号化ステップ113、動き推定コンポーネント221、動き補償コンポーネント219、動き補償コンポーネント321及び/又は動き補償コンポーネント421でMVを決定するために行われる双方向相互予測600の一例を示す概略図である。例えば、相互予測モードにおけるブロックのための動きベクトルを決定するために及び/又はアフィン相互予測モードにおけるサブブロックのための動きベクトルを決定するために双方向相互予測600を用いることができる。
【0053】
双方向相互予測600は一方向相互予測500と同様であるが、現在のフレーム610内の現在のブロック611を予測するために一対の参照フレームを用いる。そのため、現在のフレーム610及び現在のブロック611はそれぞれ、現在のフレーム510及び現在のブロック511と実質的に同様である。現在のフレーム610は、ビデオシーケンスにおいて現在のフレーム610の前に起こる先行参照フレーム620と、ビデオシーケンスにおいて現在のフレーム610の後で起こる後続参照フレーム630との間で時間的に位置する。先行参照フレーム620及び後続参照フレーム630は、それ以外では参照フレーム530と実質的に同様である。
【0054】
現在のブロック611は、先行参照フレーム620内の先行参照ブロック621と、後続参照フレーム630内の後続参照ブロック631とにマッチングする。そのようなマッチングは、ビデオシーケンスにわたって、オブジェクトは、先行参照ブロック621における位置から後続参照ブロック631における位置に動き軌跡613に沿って現在のブロック611を介して移動することを示す。現在のフレーム610は先行参照フレーム620からある先行時間距離(TD0)623離れており、後続参照フレーム630からある後続時間距離(TD1)633離れている。TD0 623は、ビデオシーケンスにおける先行参照フレーム620と現在のフレーム610との間の時間を示す。TDl 633は、ビデオシーケンスにおける現在のフレーム610と後続参照フレーム630との間の時間を示す。そのため、オブジェクトは、動き軌跡63に沿ってTD0 623によって示される期間にわたって先行参照ブロック621から現在のブロック611に移動する。また、オブジェクトは、動き軌跡6613に沿ってTD1 633によって示される期間にわたって現在のブロック611から後続参照ブロック631に移動する。
【0055】
先行動きベクトル(MV0)625は、動き軌跡613に沿ったTD0 623にわたる(例えば、先行参照フレーム620と現在のフレーム610との間の)オブジェクトの動きの方向及び大きさを記述する。後続動きベクトル(MV1)635は、動き軌跡613に沿ったTD1 633にわたる(例えば、現在のフレーム610と後続参照フレーム630との間の)オブジェクトの動きの方向及び大きさを記述する。そのため、双方向相互予測600では、先行参照ブロック621及び/又は後続参照ブロック631、MV0 625及びMVl 635を用いることにより現在のブロック611を符号化及び再構成できる。
【0056】
イントラ予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスが画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、相互予測(異なるフレーム内のブロック間の相関関係)又はイントラ予測(同じフレーム内のブロック間の相関関係)により画像ブロックが圧縮され得る。イントラ予測では、サンプルの参照ライン(reference line)から現在の画像ブロックが予測される。参照ラインは、隣接ブロックとも呼ばれる近隣画像ブロックからのサンプルを含む。現在のブロックからのサンプルは、最も近いルマ(光)又はクロマ(色)値を有する参照ラインからのサンプルとマッチングされる。現在のブロックは、マッチングサンプルを示す予測モードとして符号化される。予測モードは、角度予測モード、直流(DC)モード及び平面モード(planer mode)を含む。予測モードにより予測された値と実際の値との差分は、残差値として残差ブロック内に符号化される。
【0057】
図7は、ビデオ符号化で用いられる例示のイントラ予測モード700を示す概略図である。例えば、イントラ予測モード700は、方法100のステップ105及び113、コーデックシステム200のイントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217、エンコーダ300のイントラピクチャ予測コンポーネント317及び/又はデコーダ400のイントラピクチャ予測コンポーネント417により用いられ得る。具体的には、選択された予測モード及び残りの残差ブロックを含む予測ブロックに画像ブロックを圧縮するためにイントラ予測モード700を用いることができる。
【0058】
上述したように、イントラ予測は、現在の画像ブロックを、1つ以上の隣接ブロックの対応するサンプル又は複数のサンプルにマッチングさせることを伴う。次に、現在の画像ブロックは選択された予測モードインデックス及び残差ブロックとして表すことができ、これは現在の画像ブロックに含まれるルマ/クロマ値の全てを表すよりもはるかに小さい。イントラ予測は、利用可能な参照フレームがない場合又は現在のブロック若しくはフレームに相互予測符号化が用いられていない場合に用いることができる。イントラ予測のための参照サンプルは、同じフレーム内の先に符号化された(又は再構成された)隣接ブロックから導出され得る。H.264及びH.265/HEVCとしても知られるアドバンスドビデオ符号化(AVC)の双方は、近隣ブロックの境界サンプルの参照ラインをイントラ予測のための参照サンプルとして用いる。異なるテクスチャ又は構造特性を網羅するために、多くの異なるイントラ予測モードが用いられる。H.265/HEVCは、現在のブロックを1つ以上の参照サンプルに空間的に関連付ける35イントラ予測モード700をサポートする。具体的には、イントラ予測モード700は、モード2〜34として索引付けられた(indexed)33の方向予測モード、モード1として索引付けされたDCモード及びモードゼロとして索引付けられた平面モードを含む。
【0059】
符号化の間、エンコーダは、現在のブロックのルマ/クロマ値を、隣接ブロックの端から端にわたる(across the edges of neighboring blocks)参照ライン内の対応する参照サンプルのルマ/クロマ値とマッチングさせる。参照ラインのうちの1つと最良のマッチが見つかった場合、エンコーダは、最良のマッチング参照ラインを指す方向性イントラ予測モード700の1つを選択する。説明を明確にするために、特定の方向性イントラ予測モード700を参照するために頭字語が以下で用いられる。DirSは、左下から時計回りにカウントする場合の開始方向性イントラ予測モード(例えば、HEVCにおけるモード2)を表す。DirEは左下から時計回りにカウントする場合の終了方向性イントラ予測モード(例えば、HEVCにおけるモード34)を表す。DirDは、左下から時計回りにカウントする場合の中間方向性イントラ符号化モード(例えば、HEVCにおけるモード18)を表す。DirHは水平イントラ予測モード(例えば、HEVCにおけるモード10)を表す。DirVは垂直イントラ予測モード(例えば、HEVCにおけるモード26)を表す。
【0060】
上述したように、DCモードは平滑化機能として作用し、現在のブロックの予測値を、隣接ブロックを横断する参照ライン内の全ての参照サンプルの平均値として導出する。同じく上述したように、平面モードは、参照サンプルの参照ラインの底部と左上又は左上と右上のサンプル間の滑らかな遷移(例えば、値の一定の勾配)を示す予測値を返す。
【0061】
DirHからDirVまでの平面、DC及び予測モードの場合、参照ラインの上段及び参照ラインの左列の双方内のサンプルが参照サンプルとして用いられる。(DirS及びDirHを含む)DirSからDirHへの予測方向を持つ予測モードの場合、参照ラインの左列の先に符号化され且つ再構成された隣接ブロック内の参照サンプルが参照サンプルとして用いられる。(DirV及びDirEを含む)DirVからDirEへの予測方向を持つ予測モードの場合、参照ラインの上段の先に符号化され且つ再構成された隣接ブロックの参照サンプルが参照サンプルとして用いられる。
【0062】
図8は、ビデオ符号化におけるブロック800の方向関係の一例を示す概略図である。例えば、イントラ予測モード500を選択する際にブロック800が用いられ得る。そのため、ブロック800は、方法100のステップ105及び113、コーデックシステム200のイントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217、エンコーダ300のイントラピクチャ予測コンポーネント317及び/又はデコーダ400のイントラピクチャ予測コンポーネント417により用いられ得る。ビデオ符号化では、ブロック800はビデオコンテンツに基づいて分割されるため、様々な形状及びサイズの多くの長方形及び正方形を含み得る。ブロック800は説明の目的のために正方形として図示されているため、説明の明確性をサポートするために実際のビデオ符号化ブロックから単純化されている。
【0063】
ブロック800は現在のブロック801及び隣接ブロック810を含む。現在のブロック810は特定の時間に符号化される任意のブロックである。隣接ブロック810は現在のブロック801の左端又は上端のすぐそばに近接する任意のブロックである。ビデオ符号化は概して左上から右下に進む。そのため、隣接ブロック810は、現在のブロック801の符号化の前に符号化され且つ再構成され得る。現在のブロック801を符号化する場合、エンコーダは、現在のブロック801のルマ/クロマ値を、隣接ブロック810の端から端を横切る参照ラインからの参照サンプル(又は複数の参照サンプル)とマッチングさせる。そして、マッチングは、例えば、マッチングされたサンプル(又はDC又は平面モードが選択された場合は複数のサンプル)を指すイントラ予測モード700からイントラ予測モードを選択するために用いられる。次に、選択されたイントラ予測モードは、現在のブロック801のルマ/クロマ値は選択されたイントラ予測モードに対応する参照サンプルと実質的に同様であることを示す。差異があれば残差ブロックで保持できる。次に、選択されたイントラ予測モードはビットストリームに符号化される。デコーダでは、現在のブロック801は、選択されたイントラ予測モードに対応する隣接ブロック810内の選択された参照ラインにおける参照サンプルのルマ/クロマ値を(残差ブロックからの残差情報と共に)用いることにより再構成できる。
【0064】
インループフィルタ
ビデオ符号化スキームはビデオ信号を画像フレームに細分し、次いで画像フレームを様々な種類のブロックに細分する。そして、画像ブロックが圧縮される。このアプローチは、圧縮されたビデオ信号が再構成されて表示された場合にビジュアルアーチファクトを作り出し得る。例えば、画像圧縮プロセスはブロック形状を人為的に加えることができる。これはブロッキングとして知られ、ブロック分割境界で概して起こる。加えて、量子化ノイズとして知られる非線形信号依存丸め誤差(non-linear signal dependent rounding error)も圧縮画像に人為的に加えられ得る。そのようなアーチファクトを補正するために様々なフィルタが用いられ得る。フィルタは再構成されたフレームに後処理で適用され得る。後処理は、圧縮されたビデオ信号の大半の部分が再構成された後で且つユーザに表示される直前に起こる。フィルタは、インループフィルタリングと呼ばれるメカニズムを用いることにより圧縮/解凍プロセスの一部としても適用され得る。インループフィルタリングは、関連する画像の間でより正確な圧縮をサポートするために符号化及び/又は復号化プロセスの間に再構成されたビデオ画像にフィルタを適用するフィルタリングスキームである。例えば、相互予測は先行及び/又は後続の画像フレームに基づいて画像フレームを符号化する。エンコーダでは、圧縮された画像が再構成され、再構成された画像は、相互予測を介して先行する/後続の画像フレームを符号化する際に用いるためにより正確な画像を提供するようにインループフィルタリングを介してフィルタリングされる。デコーダでは、圧縮された画像が再構成され、エンドユーザによる視聴のためにより正確な画像を生成すること及び正確な相互予測をサポートすることの双方のためにインループフィルタリングを介してフィルタリングされる。インループフィルタリングは、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ及び適応ループフィルタ等のいくつかのフィルタを用いる。インループフィルタリングはノイズ抑制フィルタも含むことができる。
【0065】
図9は、例示のインループフィルタ900を示すブロック図である。インループフィルタ900は、インループフィルタ225、325及び/又は425を実施するために用いられ得る。インループフィルタ900はノイズ抑制フィルタ941、デブロッキングフィルタ943、サンプル適応オフセット(SAO)フィルタ945及び適応ループフィルタ947を含む。インループフィルタ900のフィルタは、再構成された画像ブロック及び/又は残差ブロックに順次適用される。
【0066】
ノイズ抑制フィルタ941は画像圧縮によって生じる量子化ノイズを除去するように構成されている。具体的には、画像のエッジに生じるアーチファクトを除去するためにノイズ抑制フィルタ941が用いられる。例えば、画像圧縮は、画像内の異なる色/光パッチ間のシャープな遷移(エッジ)に隣接して明白で不正確な色/光値を作り得る。これはリンギングと呼ばれ、シャープなエッジに関連する画像データの高周波部分への変換の適用によって生じる。そのようなリンギングアーチファクトを緩和するためにノイズ抑制フィルタ941が用いられる。ノイズ抑制フィルタ941は、空間領域(例えば、ピクセルの空間方向)及び周波数領域(例えば、ピクセルデータに関する変換係数値の関係)の両方で動作する。エンコーダでは、ノイズ抑制フィルタ941は再構成されたフレームを参照マクロブロックに分割する。そのようなブロックは、より小さな参照ブロックに細分することもできる。ノイズ抑制フィルタ941は、ブロックにおける量子化ノイズの推定量に基づいてフィルタリングすべきフレームの部分を示すアプリケーションマップを先ず生成する。次に、ノイズ抑制フィルタ941は、アプリケーションマップによって示される各参照ブロックに対してマッチングコンポーネントを用いて対応する参照ブロックと同様の一組のパッチを決定する。ここで、同様とは、クロマ/ルマ値が所定の範囲内にあることを示す。次に、ノイズ抑制フィルタ941はパッチをクラスタにグループ化し、二次元(2D)変換を用いてクラスタを周波数領域に変換し、その結果周波数領域パッチが得られる。ノイズ抑制フィルタ941は、周波数領域パッチを空間領域に戻すために変換するために逆2D変換も用いり得る。
【0067】
デブロッキングフィルタ943は、ブロックベースの相互及びイントラ予測によって生じるブロック状のエッジを除去するように構成されている。デブロッキンングフィルタ943は、画像部分(例えば、画像スライス)をスキャンして、分割境界で生じるクロマ及び/又はルマ値の不連続部を探す。次に、デブロッキンングフィルタ943は、そのような不連続部を除去するために平滑化機能をブロック境界に適用する。デブロッキンングフィルタ943の強度は、ブロック境界に隣接する領域で生じる空間アクティビティ(例えば、ルマ/クロマ成分の分散)に応じて変更され得る。
【0068】
SAOフィルタ945は、符号化プロセスによって引き起こされるサンプル歪みに関連するアーチファクトを除去するように構成されている。エンコーダにおけるSAOフィルタ945は、再構成された画像のデブロックされたサンプルを、相対的なデブロッキンングエッジ形状及び/又は方向に基づいていくつかのカテゴリーに分類する。次に、オフセットが決定されて、カテゴリーに基づいてサンプルに加えられる。次に、オフセットがビットストリームに符号化され、デコーダにおいてSAOフィルタ945により用いられる。SAOフィルタ945は、バンディングアーチファクト(平滑な遷移の代わりに値のバンド)及びリンギングアーチファクト(シャープなエッジの近傍のスプリアス信号)を除去する。
【0069】
適応ループフィルタ947は、エンコーダにおいて、再構成された画像を元の画像と比較するように構成されている。適応ループフィルタ947は、例えばウィナーベースの適応フィルタを介して、再構成された画像と元の画像との間の差分を記述する係数を特定する。そのような係数はビットストリームに符号化され、再構成された画像と元の画像との間の差分を除去するためにエンコーダにおいて適応ループフィルタ947で用いられる。適応ループフィルタ947はアーチファクトを補正するのに有効であるが、再構成された画像と元の画像との間の差分が大きいほど、シグナリングすべき係数の数がより大きくなる。これは、ひいてはより大きなビットストリームを生成するため、圧縮の有効性が低減される。そのため、適応ループフィルタ947を適用する前に他のフィルタによる差分の最小化は改善された圧縮をもたらす。
【0070】
分割
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。例えば、エンコーダ及びデコーダの双方は、H.265としても知られる高効率ビデオ符号化方式(HEVC)等の符号化規格を用いり得る。エンコーダで、ビデオ信号がフレームに分離される。次に、フレームはピクセルのグループを含む画像ブロックに分割される。次に、画像ブロックが圧縮され、フィルタリングされ、ビットストリームに符号化される。次に、ビットストリームはデコーダに送信され、デコーダはエンドユーザに表示するためにビデオ信号を再構成する。
【0071】
分割システムは、画像ブロックをサブブロックに分割するように構成されている。例えば、ノード(例えば、ブロック)を子ノード(例えば、サブブロック)に分割するために様々な分割モードを用いる木構造を用いることができる。異なる分割を得るために異なる分割モードを用いることができる。さらに、分割モードは、さらなる細分ノードに再帰的に適用することもできる。分割モードのそのような適用により様々な分割パターンが得られる。
【0072】
図10は、ブロック分割に用いられる例示の分割モード1000を示す。分割モード1000は、分割の間に親ノード(例えば、画像ブロック)を複数の子ノード(例えば、画像サブブロック)に分割するメカニズムである。分割モード1000は、四分木(QT)分割モード1001、垂直二分木(BT)分割モード1003、水平BT分割モード1005、垂直三分木(TT)分割モード1007及び水平TT分割モード1009を含む。QT分割モード1001はブロック分割のための木構造であり、4M×4NのサイズのノードがM×Nのサイズの4つの子ノードに分割され、Mはブロック幅を示し、Nはブロック高さを示す。垂直BT分割モード1003及び水平BT分割モード1005はブロック分割のための木構造であり、それぞれ、サイズが4M×4Nのノードがサイズが2M×4Nの2つの子ノードに垂直に分割されるか又はサイズが4M×2Nの2つの子ノードに水平に分割される。垂直TT分割モード1007及び水平TT分割モード1009はブロック分割のための木構造であり、それぞれ、サイズが4M×4NのノードがサイズがM×4N、2M×4N及びM×4Nの3つの子ノードに垂直に分割されるか又はサイズが4M×N、4M×2N及び4M×Nの3つの子ノードに水平に分割される。3つの子ノードのうち、最も大きなノードが中心に位置する。
【0073】
分割モード1000は、ブロックをさらに分割するためにも再帰的に適用され得る。例えば、QT分割モード1001でノードを分割し、次いで垂直BT分割モード1003及び/又は水平BT分割モード1005で各子ノード(場合によっては4分木葉ノードと呼ばれる)を分割することにより、4分木2分木(QT−BT)を作成できる。さらに、4分木分割されたノードを分割し、次いで、得られた子ノードを垂直TT分割モード1007及び/又は水平TT分割モード1009で分割することにより、4分木3分木(QT−TT)を作成できる。
【0074】
HEVCはジョイント探索モデル(JEV)アプリケーション上で動作する。JEMでは、符号化木ユニット(CTU)を複数のブロックに分割するためにQT―BTブロック分割が用いられる。ブロック分割の種類をさらに充実させるために、TTブロック分割をJEMに含めることが提案されている。QT、QT−BT、QT−TTブロック分割モードに基づくビデオ符号化では、深度Kにおける符号化又は予測ブロックは、BT、TT又はQT分割モードにより深度がK+1の数Nのより小さな符号化又は予測ブロックに分割されてもよく、Nはそれぞれ2、3又は4に設定される。分割モードの分割パターンを図10に示し、分割パターンは、親ノードから分割された2つ以上の子ノードのサイズ及び位置を示す。
【0075】
変換
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。
【0076】
例えば、エンコーダ及びデコーダの双方は、H.265としても知られる高効率ビデオ符号化方式(HEVC)等の符号化規格を用いり得る。H.265は予測及び変換フレームワークに基づく。エンコーダでは、ビデオファイルがフレームに分離される。次に、フレームは、ピクセル群を含む画像ブロックに細分される。画像ブロックは、予測モード及び動きベクトル情報等の予測情報を含む予測ブロックと、変換モード、変換係数及び量子化パラメータ等の残差情報を含む残差ブロックとにさらに分解される。予測ブロック及び残差ブロックは画像ブロックよりも少ない記憶空間を用いるが、画像ブロックを再構成するためにデコーダにより用いることができる。予測ブロック及び残差ブロックはビットストリームに符号化されデコーダに転送される及び/又は要求に応じて後で転送するために記憶される。デコーダでは、予測情報及び残差情報がパースされる。次に、パースされた予測情報は、イントラ予測又は相互予測を用いることにより予測サンプルを生成するために用いられる。イントラ予測は、同じフレーム内の他の画像ブロックを予測するために再構成された画像ブロックを用いる。相互予測は、隣接フレーム間の他の画像ブロックを予測するために再構成された画像ブロックを用いる。さらに、残差情報は、例えば、逆量子化及び逆変換を連続的に適用することにより残差サンプルを生成するのに用いられる。予測サンプル及び残差サンプルは、(例えば、エンドユーザに対してモニタ上に表示するために)エンコーダにより符号化された画像ブロックに対応する再構成されたサンプルを得るために組み合わされる。
【0077】
空間的可変変換(SVT)はビデオ符号化効率をさらに改善するために用いられるメカニズムである。SVTは残差ブロックをさらに圧縮するために変換ブロックを用いる。具体的には、矩形の残差ブロックは幅及び高さh(例えば、w×h)を含む。残差ブロックよりも小さい変換ブロックが選択される。そのため、変換ブロックは残差ブロックの対応部分を変換するために用いられ、残差ブロックの残りの部分を追加の符号化/圧縮なしで残す。SVTの背後にある理論的根拠は、残差情報が残差ブロック内で均等に分布していない可能性があるということである。適応位置を持つより小さな変換ブロックを用いることにより、残差ブロック内の残留情報の大半を、残差ブロック全体を変換する必要なしにキャプチャできる。このアプローチは、いくつかの場合において、残差ブロック内の残差情報の全てを変換するよりも良好な符号化効率が得られ得る。変換ブロックは残差ブロックよりも小さいため、SVTは残差ブロックに対する変換の位置をシグナリングするためのメカニズムを用いる。そのような位置のシグナリングは符号化プロセスの全体的なシグナリングオーバーヘッドを増加させるため、圧縮の効率を低下させる。加えて、全ての場合に同じ種類の変換ブロックを用いることは、場合によっては有益な結果をもたらさない可能性がある。
【0078】
図11は、例示のビデオ符号化メカニズム1100の概略図である。エンコーダは1つ以上のフレームから画像ブロック1101を得ることができる。例えば、画像は複数の矩形画像領域に分割され得る。画像の各領域は符号化木ユニット(CTU)に対応する。CTUは、HEVCにおける符号化ユニット等の複数のブロックに分割される。次に、ブロック分割情報はビットストリーム1111に符号化される。したがって、画像ブロック1101は画像の分割された部分であり、画像の対応部分におけるルマ成分及び/又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック1101は、イントラ予測のための予測モード及び/又は相互予測のための動きベクトル等の予測情報を含む予測ブロック1103として符号化される。次に、予測ブロック1103として画像ブロック1101を符号化することにより、予測ブロック303と画像ブロック301との間の差分を示す残差情報を含む残差ブロック1105が残され得る。
【0079】
なお、画像ブロック1101は、1つの予測ブロック1103及び1つの残差ブロック1105を含む符号化ユニットとして分割され得る。予測ブロック1103は符号化ユニットの全ての予測サンプルを含んでもよく、残差ブロック1105は、符号化ユニットの全ての残差サンプルを含んでもよい。そのような場合では、予測ブロック1103は残差ブロック1105と同じサイズである。別の例では、画像ブロック1101は、2つの予測ブロック1103及び1つの残差ブロック1105を含む符号化ユニットとして分割され得る。そのような場合では、各予測ブロック1103は符号化ユニットの予測サンプルの一部を含み、残差ブロック1105は符号化ユニットの残差サンプルの全てを含む。さらに別の例では、画像ブロック1101は、2つの予測ブロック1103及び4つの残差ブロック1105を含む符号化ユニットに分割される。符号化ユニット内の残差ブロック1105の分割パターンは、ビットストリーム1111内にシグナリングされ得る。そのような位置パターンは、HEVCにおける残差四分木(RQT)を含み得る。さらに、画像ブロック1101は、画像サンプル(又はピクセル)のY成分として示されるルマ成分(例えば、光)のみを含み得る。他の場合では、画像ブロック1101は画像サンプルのY、U及びV成分を含んでもよく、U及びVは青色輝度及び赤色輝度(UV)の色空間におけるクロミナンス成分(例えば、色)を示す。
【0080】
情報をさらに圧縮するために変換が用いられ得る。具体的には、残差ブロック1105をさらに圧縮するために変換ブロック1107が用いられ得る。変換ブロック1107は、逆離散コサイン変換(DCT)及び/又は逆離散サイン変換(DST)等の変換を含む。予測ブロック1103と画像ブロック1101との間の差分は、変換係数を用いることにより変換に適合される。変換ブロック1107の変換モード(例えば、逆DCT及び/又は逆DST)及び対応する変換係数を示すことにより、デコーダは残差ブロック1105を再構成できる。厳密な再生が要求されない場合、変換係数は、変換のためにより良好な適合を生み出すために特定の値を丸めることによりさらに圧縮できる。このプロセスは量子化として知られ、許容可能な量子化を記述する量子化パラメータに従って行われる。したがって、変換ブロック1107の変換モード、変換係数及び量子化パラメータは、場合によっては単に残差ブロックとも呼ばれ得る変換残差ブロック1109内に変換残留情報として格納される。
【0081】
そして、予測ブロック1103の予測情報及び変換残差ブロック1109の変換残差情報はビットストリーム1111に符号化できる。ビットストリーム1111は記憶及び/又はデコーダに送信できる。次に、デコーダは画像ブロック1101を回復するためにプロセスを逆に行うことができる。具体的には、デコーダは、変換ブロック1107を決定するために変換残差情報を用いることができる。次に、変換ブロック1107は、残差ブロック1105を決定するために変換残差ブロック1109と共に用いることができる。次に、残差ブロック1105及び予測ブロック1103は、画像ブロック1101を再構成するために用いることができる。そして、画像ブロック1101はフレームを再構成するために他の復号化された画像ブロック1101に対して配置され、符号化されたビデオを回復するためにそのようフレームを配置できる。
【0082】
なお、一部の予測ブロック1103は、残差ブロック1105をもたらすことなく符号化され得る。しかしながら、そのような場合は変換ブロック1107の使用がもたらされないため、さらなる説明はしない。変換ブロック1107は、相互予測ブロック又はイントラ予測ブロックのために用いられ得る。さらに、変換ブロック1107は、特定の相互予測メカニズム(例えば、並進モデルに基づく動き補償)によって生成される残差ブロック1105に対して用いられ得るが、他の特定の相互予測メカニズム(例えば、アフィンモデルに基づく動き補償)によって生成される残差ブロック1105には用いられない場合がある。
【0083】
図12は、本開示の一実施形態に係るビデオ符号化のための例示のコンピュータ装置1200の概略図である。コンピュータ装置1200は、本明細書に記載の開示された実施形態を実施するのに好適である。コンピュータ装置1200は、データを受信するための入口ポート1220及び受信機ユニット(Rx)1210;データを処理するためのプロセッサ、論理ユニット又は中央処理ユニット(CPU)1230;データを送信するための送信機ユニット(TX)1240及び出口ポート1250;データを記憶するためのメモリ1260を含む。コンピュータ装置1200は、光又は電気信号の出入りのために入口ポート1220、受信機ユニット1210、送信機ユニット1240及び出口ポート1250に連結される光/電気(OE)コンポーネント及び電気/光(EO)コンポーネントも含み得る。コンピュータ装置1200は、一部の例では無線送信機及び/又は受信機も含み得る。
【0084】
プロセッサ1230はハードウェア及びソフトウェアにより実施される。プロセッサ1230は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)及びデジタル信号プロセッサ(DSP)として実施され得る。プロセッサ1230は、入口ポート1220、受信機ユニット1210、送信機ユニット1240、出口ポート1250及びメモリ1260と通信する。プロセッサ1230は符号化モジュール1214を含む。符号化モジュール1214は上述した開示の実施形態を実施する。例えば、符号化モジュール1214は様々な符号化動作を実施、処理、準備又は提供する。したがって、符号化モジュール1214を含めることは、コンピュータ装置1200の機能に実質的な改善をもたらし、コンピュータ装置1200の異なる状態への変換をもたらす。あるいは、符号化モジュール1214は、メモリ1260に記憶され且つプロセッサ1230によって実行される命令として実施される(例えば、非一時的媒体に記憶されるコンピュータプログラム製品として)。
メモリ1260は1つ以上のディスク、テープドライブ及びソリッドステートドライブを含み、プログラムが実行のために選択された場合にそのようなプログラムを記憶し、プログラムの実行の間に読み出される命令及びデータを記憶するオーバーフローデータ記憶装置として用いられ得る。メモリ1260は揮発性及び/又は不揮発性であってもよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)及び/又はスタティックランダムアクセスメモリ(SRAM)であり得る。コンピュータ装置1200は、エンドユーザとやりとりするための入出力(I/O)装置も含み得る。例えば、コンピュータ装置1200は、視覚出力のためのモニタ等のディスプレイ、音声出力のためのスピーカー及びユーザ入力のためのキーボード/マウス/トラックボール等を含み得る。
【0085】
図13は、点群媒体(point cloud media)を示すシステム1300の一例である。とりわけ、システム1300は点群媒体のフレームの様々な例を示す。本例は、男性1302、前向きの女性1304及び後向きの女性1306を含む。一部の実施では、システム1300はより多い又は少ない点群媒体の例を含むことができる。点群媒体は、三次元(3−D)空間におけるオブジェクト又は人の仮想表現と、それらに対応する経時的な動きを含むことができる。
【0086】
通常、点群媒体は、3−Dオブジェクトの外面の輪郭を示す、3−D空間におけるデータ点のセットを含む。例えば、オブジェクトは、人間、製造品目及び実世界のオブジェクトを含むことができる。オブジェクトは、例えばカメラによってリアルタイムに記録でき、ディスプレイ又は投影スクリーン上で三次元空間に仮想的に表現できる。点群媒体のフレームは、特定の時点におけるオブジェクトの3−D表現を含むことができる。点群媒体の連続フレームは点群媒体の動的表現を表す。
【0087】
次の頭字語の定義を説明する。グループオブフレーム(GoF)−さらなる処理のために用いられる固定の時間(fixed moment of time)に登録された点群のセット。グループオブピクチャ(GoP)−ビデオ圧縮符号化のために用いられる点群に由来する投影のセット。点群圧縮(PCC)−送信のために点群媒体を圧縮するための技術。
【0088】
ビデオベースのPCCコーデックソリューションは、3−D点群データを2−D投影パッチにセグメンテーションすることに基づく。ビデオベースのPCCは、没入型6自由度、動的AR/VRオブジェクト、文化遺産、GIS、CAD、自律ナビゲーション等のコンテンツで幅広く用いられている。
【0089】
点群媒体は、エンターテイメント産業、インテリジェント自動車ナビゲーション産業、地理空間検査、実世界のオブジェクトの3−Dモデリング及び可視化を含む広範な用途で不可欠な一部になっている。これらの用途のそれぞれにおいて、様々なクライアント装置は点群媒体を表示及び示すことができる。非一様サンプリング形状を考慮した場合、そのようなデータの記憶及び送信のためにコンパクトな表現を有することが有益である。
【0090】
例えば、クライアント装置は、製造部品のために、計測及び品質検査のために及び多数の視覚化、アニメーション、レンダリング及びマスカスタム化用途のために3−Dコンピュータアニメ描画(CAD)モデルを作成するために点群媒体を用いることができる。一部の例では、骨、腕又は脚等が占める空間の量を可視化する場合等医用画像でしばしば行われるように、点群媒体は容積データ(volumetric data)を表すのにも用いることができる。
【0091】
既存の3―D表示と比較して、人間の輪郭を描く点群面等の不規則な点群面がより一般的であり、より広範囲なセンサ及びデータ収集戦略に適用可能である。例えば、仮想現実世界での3−D表示や、テレプレゼンス環境でのリモートレンダリングの場合、仮想図形のレンダリングやリアルタイム命令は、高密度の点群データセット(dense point cloud data sets)として処理される。例えば、テレプレゼンス環境上で男性1302、前向きの女性1304及び後ろ向きの女性1306が仮想現実世界で表示される例では、これらの単一の点群フレームのそれぞれは高密度の点群データセットとして処理される。
【0092】
システム1300は、特定の時点における点群媒体のフレームにより表される異なるオブジェクトを示す。クライアント装置等のデバイスは、一定期間にわたって点群媒体の連続フレームを表示できる。一部の例では、デバイスは没入型6自由度(6DoF)環境、動的拡張現実(AR)及び仮想現実(VR)環境、文化遺産環境、地理情報システム(GIS)環境、コンピュータ支援設計(CAD)において及び自律ナビゲーションシステムにおいて点群媒体を表示できる。
【0093】
点群媒体を受信、表示及び送信可能なデバイスは、パーソナルコンピュータ、ハンドヘルドデバイス、テレビ、ナビゲーションシステム又は点群媒体を表示可能な他のデバイス等のクライアント装置を含むことができる。一部の実施では、これらのデバイスは、点群媒体を内部メモリに記憶できるか又は点群媒体を外部記憶装置に記憶できる。点群媒体の記憶には大量の記憶領域が必要になるため、通常、点群媒体は外部記憶装置に記憶され且つアクセスされる。
【0094】
クライアント装置が点群媒体をキャプチャし且つ中継するために、クライアント装置は点群媒体を記憶及び/又は送信するのに必要な帯域幅を低減するためにマルチサンプリング技術及びデータ圧縮技術に依拠する。ある場合では、点群媒体の動的表現の記憶及び送信は、点群媒体の単一フレームの純然たるサイズにより複雑である。例えば、点群媒体の単一フレームは、例えば数百ギガバイト等の大量のデータを含むことができる。そのため、点群媒体の複数のフレームを記憶すること及び送信することは、データ損失を引き起こし得る様々な媒体にわたって大量の点群媒体のフレームが適切に送信されることを確実にするために、データ圧縮及び符号化技術が必要になる。
【0095】
図14は、点群フレームシーケンスを示すシステム1400の一例である。とりわけ、システム1400は、異なるタイムスタンプにおける点群媒体のフレームシーケンスを表す動的点群媒体シーケンスを示す。例えば、システム1400は、第1のタイムスタンプに第1の点群フレーム1402を、第2のタイムスタンプに第2の点群フレーム1404を、第3のタイムスタンプに第3の点群フレーム1404を含む。第1、第2及び第3の点群フレームは、リアルタイムで見た場合に三次元環境において増分タイムスタンプで右足を前に動かす女性1400を示す動的点群シーケンスを構成する。増分タイムスタンプは、いくつかの例を挙げると秒又はマイクロ秒等の任意の単位の時間で測定できる。
【0096】
システム1400は、点群媒体1402のフレームのための境界ボックス1408、点群媒体1404の別のフレームのための境界ボックス1410及び点群媒体1406の別のフレームのための境界ボックス1412を示す。各点群媒体のための境界ボックスは、例えば、u1、v1及びd1の位置座標で表されるX次元、Y次元及びZ次元の3次元における固定グリッドを含む。
【0097】
境界ボックスは、空又はデータで満たされ得る点を含む。一部の例では、空の点はボイド点であり得る。一部の例では、占有点は1つ以上の属性を含むことができる。ボイド点は、属性を持たない点群媒体のフレーム内の位置を含むことができる。他方で、占有点は、少なくとも1つの属性を持つ点群媒体のフレーム内の位置を含むことができる。属性は、例えば、クロマ、ルマ、反射率及びカラーを含むことができる。境界ボックス内の点は特定の座標系により特定できる。例えば、点群媒体1402のフレームの境界ボックス1408内の点はu1、v1及びd1座標系により示すことができる。
【0098】
通常、クライアント装置が点群媒体の1つ以上のフレームをネットワークを介して別のクライアント装置に送信する場合、点群媒体の各フレームは符号化される。符号化は適切な送信を確実にし且つ受信先のクライアント装置で受信した場合にデータが失われないことを確実にする。しかしながら、点群媒体のフレームの符号化は、点群媒体の1フレームのサイズが数百ギガバイトを超え得るため複雑になり得る。例えば、第1の点群フレーム1402を符号化しようとするクライアント装置等のシステムは500ギガバイトのデータを符号化する必要があり得るため、そうするための時間及びリソースが浪費され得る。そのため、点群媒体の特定のフレームを符号化するために境界ボックス、例えば、境界ボックス1408に依拠する異なる符号化技術が必要になる。以下で説明するように、境界ボックス表現は、システムが点群媒体の単一フレームを圧縮フォーマットで符号化できるようにする。
【0099】
一部の実施では、点群媒体のフレームはビデオベースの点群圧縮(V―PCC)コーダを用いて符号化される。V−PCCコーダは、点群媒体のフレームを三次元パッチのセットにセグメント化することに基づいて動作する。三次元パッチは三次元の境界ボックスによって提示され、送信のために操作される。これについて以下でさらに説明する。
【0100】
図15は、三次元パッチ境界ボックスを二次元パッチ投影にする変換プロセス1500の一例である。一部の実施では、変換プロセス1500は、V−PCC符号化ソリューションを用いるV−PCCエンコーダによって行われる。
【0101】
V―PCC符号化ソリューションの間、V―PCCエンコーダは三次元境界ボックスを用いて点群媒体のフレームを符号化する。一般に、一連の点が繰り返されて境界ボックスに投影され、その後にパッチが平滑連続面基準(smoothness continuous surface criteria)の定義に基づいてセグメント化される。各パッチは特定且つ一意のインデックス及び対応する3−D座標に対応する。さらに、一致したパッチのリストは、リスト内のそれらの順序が同様であることを確実にするために存在し、このリスト内の一致したパッチは同じインデックスを有する。
【0102】
先ず、3−D点群媒体のフレームが1つ以上の三次元(3−D)パッチ境界ボックス1504等の一組の3−Dパッチ境界ボックス又はセグメンテーションにセグメント化される。3−Dパッチ境界ボックス1504は、u1、v1、d1、u1のサイズ、v1のサイズ及びd1のサイズというパラメータを含む。3−Dパッチ境界ボックス1504のパラメータは、点群3D境界ボックス1502内の3−Dパッチ境界ボックス1504のサイズ及び配置を示す。一部の実施では、システムは、フレーム内のオブジェクトをカバーするために、点群媒体のフレーム全体のために複数の3−Dパッチ境界ボックスを生成する。一部の実施では、各3−Dパッチ境界ボックスは互いに近接して配置され得る。一部の実施では、各3−Dパッチ境界ボックスは、点群3−D境界ボックス1502内のオブジェクトをカバーする場合に互いに重なり得る。
【0103】
次に、V−PCCエンコーダは、3−Dパッチ境界ボックス1504等の3−Dパッチ境界ボックスのそれぞれについて、点群3−D境界ボックス1502の側面のうちの1つとして投影面1508を定義する。V−PCCエンコーダは投影面の選択するための基準を定義する。例えば、基準は、3−Dパッチ境界ボックス1504の両側の平滑連続面基準の定義を含む。投影面は、平滑連続面基準が3−D境界ボックス1502の側面に投影される投影3−Dパッチ境界ボックス1504の領域(area)であり、投影のための各方向の間の最大の領域を含む場合に選択される。例えば、平滑連続面は、1つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭な又はブロックされたデータポイントの量が最も少ない面として定義できる。次に、V−PCCエンコーダはあらゆる方向から平滑面のそれぞれを比較して、どの方向が3−D境界ボックス1502の側面上で最も大きい領域を含み得る2−D境界ボックスを生成し得るかを決定する。
【0104】
システム1500に示すように、投影面1508は、最大領域を有するように3Dパッチ境界ボックス1504の平行投影の領域に対応する。別の言い方をすれば、V−PCCエンコーダが投影面1508と反対の側(例えば、側面1505)から3−Dパッチ境界ボックス1504を見た場合、V−PCCエンコーダは、パッチ3−D境界ボックス1504に含まれる属性ポイントが投影面1508に投影された場合に、その投影が点群3−D境界ボックス1502の他の側面に投影される際に最大の領域を呈し得ると判定し得る。点群3−D境界ボックス1502内に含まれる点群媒体のフレームは静止し、動いていないため、V−PCCエンコーダは、点群3−D境界ボックス1502の両側からの投影を分析して、どの投影が最大領域を含むか特定できる。そのため、V−PCCエンコーダは、投影面1508が、パッチ3−D境界ボックス1504からの属性の投影のために最大領域を生成し得ると判断する。したがって、投影がパッチ2−D投影境界ボックス1506内に表示される。パッチ2−D投影境界ボックス1506は境界ボックスの近位層及び遠位層(near layer and far layer)上のu及びv座標により定義される。例えば、図17は、深度画像1708及び1712の近位層1704及び遠位層1706並びに属性画像1710及び1714を示す。
【0105】
投影面、例えば投影面1508が一度選択されると、パッチ3−D境界ボックス1504に垂直な軸が描かれるため、V−PCCエンコーダは投影の方向を知っている。例えば、V−PCCエンコーダは、投影面1508に対して、点群3−D境界ボックス1502内で「n」で示される垂直又は直交する軸を描く。加えて、V−PCCエンコーダは、パッチ3−D境界ボックス1504に対して、点群3−D境界ボックス1502内で「bt」及び「t」で示される接線及び従法線の軸を生成する。V−PCCエンコーダが点群3−D境界ボックス1502内に垂直、接線及び従法線の軸を描くことに対応して、パッチ3−D境界ボックス1504上の従法線軸と直交軸との間に右側3−D座標系が生成される。
【0106】
その時点で、V−PCCエンコーダは、垂線軸「n」に沿って点群3−D境界ボックス1502の投影面1508にパッチ3−D境界ボックス1504を投影する。プロセス1500に示すように、投影の結果は点群3−D境界ボックス1502の特定の側上への2次元(2−D)投影1506である。
【0107】
一部の実施では、点群媒体のフレームの3−D投影は、点群3−D境界ボックス1502の両側に投影される。フレームが点群3−D境界ボックス1502の側面上に投影されると、2−D境界ボックスのための一組の座標を得ることができる。2−D境界ボックスのための一組の座標は、例えばu0、v0、size_u0、size_v0を含む。境界ボックス1510に示すように、V−PCCエンコーダは、境界ボックス1510内の点群の面を投影面1512上に投影する。
【0108】
図16は、3−Dから2−Dパッチ投影の結果を示すシステム1600の一例である。システム1600は、境界ボックス1602の両側に2−Dパッチ投影がされた境界ボックス1602を示す。境界ボックスの両側への投影は、システム1500に関連して説明したようにパッチの直交方向に基づく。各2−Dパッチ投影は、パッチの2−D投影の2−D座標を記述するパッチインデックス、u0、v0、size_u0及びsize_v0を含む。パッチインデックスは、対応する境界ボックス1602の特定の側に関連する特定のパッチを特定する。U0は投影面上のパッチのX座標を定義する。V0は投影面上のパッチのY座標を定義する。size_u0及びsize_v0は、パッチu0及びv0の各座標に対応する大きさをそれぞれ記述する。
【0109】
境界ボックス1602上に投影されたパッチは「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する特定のパッチに対応する。
【0110】
境界ボックス1602上に投影マップを生成することに加えて、システムはメモリにパッチ2−D及び3−Dデータを記憶する。例えば、以下に示すコードはパッチを生成し且つ2−D及び3−Dパッチデータをビデオ符号化のための補足データとして記憶するための1つの例示のソリューションを提供する。
【0111】
【表1】
ビデオ符号化のための補足情報生成
上述のコードは「パッチ」の定義;パッチ3−D情報がどのように2−Dパッチ情報に移行されるか;投影プロセス;及び再構成プロセスを示す。とりわけ、これらのフレームが2−D投影の観点からどのように解釈されるかを示す。
【0112】
加えて、フレーム内の各パッチについて、V−PCCエンコーダは投影マップを生成する。投影マップはビデオエンコーダに提供される追加のテキストファイルを含む。特定のパッチのための2−Dデータ、例えばu0、v0は投影のX座標及びY座標の左上隅に対応する。size_u0及びsize_v0は、対応するパッチの高さ及び幅に対応する。3−Dパッチ投影データでは、投影マップはX、Y及びZ軸に対応するu1、v1、d1座標を含む。とりわけ、u1、v1及びd1は投影の面のインデックス又は垂直軸に対応する投影の面に対応する。例えば、システム1600に示すように、境界ボックス1602の各側面は自体のインデックスを含む。そのため、各インデックスは特定の投影軸を表す。これに関して、u1、v1及びd1は境界ボックス1602に示すX、Y及びZ座標の再構成である。
【0113】
一部の実施では、u1、v1及びd1座標はローカル座標系に対応する。X、Y及びZ座標はグローバル座標系に対応する。例えば、垂直軸が決定された場合(投影の軸に対応)、V−PCCエンコーダは3−D空間内でZ軸と整列させるために投影の軸を回転させることができる。この時点で、V−PCCエンコーダはローカル座標系とグローバル座標系との間で変換できる。
【0114】
提案したソリューションは、ビデオ圧縮技術におけるビデオ圧縮ソリューションへの追加の入力として用いられる補助情報に基づく動き補償のための追加の動きベクトル候補も提供する。
アルゴリズム:3Dデータのための強化動き推定
1.PCCエンコーダは、パッチインデックスリスト及び対応する3d座標を提供することにより補助情報から追加の参照フレームを生成する。
2.既存のフレーム及び補助ファイルからの対応データを分析することにより、ビデオ圧縮ソリューションにおける2dドメインのためにmv候補リストに追加の動きベクトル候補が生成される。
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
3.GOPフレーム内の各フレームのためにpcMvFieldNeighbours候補を精緻化
4.GOPフレーム内の各フレームのためにmergeCandidateListを精緻化
5.ビデオベース圧縮エンジン
【0115】
図17は、点群媒体の属性セグメンテーションのためのシステム1700の一例である。各3−D点群のための2−Dパッチが投影から生成されると、一組の画像が、パッチタイルグループ内の2−Dパッチのそれぞれのために生成される。システム1700は、3−Dから2−D投影の間に深度及び属性情報が失われるため、パッチタイルグループ内の2−Dパッチのそれぞれパッチのために一組の画像を生成する。一組の画像は、投影が起こる前の点群媒体に対応する深度及び属性情報を保存するために生成される。
【0116】
一部の実施では、パッチタイルグループはパッチ1702を含む。システムは、特定のパッチ1702から2組の画像を生成する。第1の組の画像は近位層1704を含む。第2の組の画像は遠位層1712を含む。近位層1704は、深度データの画像1708及び属性データの画像1710を含む。加えて、遠位層1706は深度データの画像1712及び属性データの画像1712を含む。そのため、2−D投影の全て点は、深度情報及び属性情報、例えば、色、テクスチャ、ルマ等を有する。特定の層、例えば、近位層1704及び遠位層1706は3−D点群オブジェクトの2−D投影の両側を示す。
【0117】
図18は、属性情報を有する点群媒体のためのパッキングパッチを示すシステム1800の一例である。一部の実施では、属性情報はテクスチャ情報、深度情報、カラー情報、ルマ、反射率及びクロマ情報を含むことができる。パッケージ化されたパッチグループ1802は、点群媒体1402のフレーム等の点群媒体のフレームからの1つ以上の投影されたパッチ、2−Dフレームを示す。パッチの集合はパッチタイルグループを形成し、パッチタイルグループは点群媒体の所定のフレームに対してパッチデータグループに組み合わされる。「パッチ」と呼ばれるパッチデータグループの各要素は特定且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する。パッケージ化されたパッチ1802は符号化され、その後に送信できる。とりわけ、1つの点群フレーム内のパッチが、参照点群フレーム、例えば、先のフレーム内の対応参照パッチを有する場合、参照パッチタイルグループ内の参照パッチのインデックスがビットストリームに送信される。これについて以下でさらに説明する。
【0118】
図19は、動き推定を行うためのシステム1900の一例である。従来のビデオ圧縮ソリューションでは、動き推定プロセスを用いて、2−D投影画像、例えばパッチからのデータが推定される。システム1900はこの動き推定プロセスを示す。ブロック1902に示す符号化及び復号化ブロックはエンコーダを用いて動き推定を生成し、データ遷移チャネル又はストレージを介して動き推定を送信し、送信された動き推定をデコーダで復号化する。結果は新たなに復元されたフレームである。
【0119】
ブロック1904は動き推定プロセスの説明を示す。例えば、エンコーダは参照フレーム内の同様のパッチ画像の予測因子を生成する。参照フレームは、例えば先のフレームであり得る。一部の実施では、エンコーダは、参照フレームと現在のフレームとの間のサンプルの値を比較することにより類似性を特定する。サンプルの値は、例えば属性及び場所によって異なり得る。このプロセスは動き推定と呼ばれ、現在のフレーム内の画像に似た参照フレーム内の対応する画像を見つけることを目的とする。エンコーダは、参照フレームの隣接ピクセル内でピクセルを探索する。一致する画像が見つかった場合、エンコーダは、現在及び参照フレームから各画像を具体的に符号化することなく、より少ない量の情報を必要とする類似性を符号化する。全体的に、これは送信のための帯域幅を低減する。そのため、エンコーダは、同様の画像について現在及び先のフレームを解析する。現在のフレームと参照(先の)フレームとの間の各画像について属性及び位置情報に関連する精緻化データ(refinement data)を特定する。次いで、エンコーダは、現在のフレーム及び将来の予測フレームについて精緻化データを符号化する。これは、通常、2−Dモーションビデオ又は2−D画像を送信するために用いられる。
【0120】
パッチパッキング法の詳細により、各点群媒体についての投影フレーム内のパッチの位置は大きく異なり得る。そのため、異なるフレーム間で、パッチは、ある位置から別の位置に、例えば3−D境界ボックスの異なる側にわたってジャンプできる。そのため、2−Dモーションビデオ又は2−D画像のために典型的に用いられる相互予測符号化アルゴリズムにおけるパッチングの位置を用いる予測動き推定は満たすことができないため、適切に符号化及び送信されない。したがって、ブロック1902及び1904は有用であるが、パッチデータグループを用いて動き推定データを送信するために強化を必要とする。したがって、以下で説明する技術は、動きベクトル候補リストに補助情報を加えることにより、2−Dパッチデータのための動き推定を用いる予測の使用を強化する。
【0121】
送信すべき2−Dパッチ間の時間的予測の場合、送信の間に最大圧縮効率を確実にするために、有効な動きベクトル候補が同様のパッチのために供給される。既存の動きベクトル候補リスト構築法は、以下にさらに説明するように、既存の候補を置き換えるか又はパッチ補助情報から生成される追加の候補を導入することにより改善され得る。
【0122】
一部の実施では、フレーム内の特定のパッチは、パッチメタデータにより点群媒体内の3−D座標に接続される特定の2−D座標を有する。パッチデータ(「補助情報」ともいう)は、パッチの対応する3−D位置及び2−D面上の関連する投影位置に基づく。一部の実施では、補助情報又はパッチメタデータは、パッチインデックス、u0、v0、u1、v1及びd1を含むことができる。u0及びv0は、2−D投影のパッチの左上隅に対応する。u1、v1及びd1は、3−Dドメイン内のX、Y及びZ座標を表す。そのため、u0及びv0の座標は、u1、v1、及びd1座標に接続される。接続は、u1、v1、d1座標とu0、v0座標との数学的関係に基づく。2−D及び3−D座標間のこの接続は、動きベクトル候補の生成、ベクトル候補リストの更新及び動きベクトル探索プロセスの更新のために用いることができる。
【0123】
図20は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。クライアント装置のエンコーダ、例えばV−PCCエンコーダは、先に符号化された参照フレームに対して現在のパッチフレームを解析する。エンコーダは先に符号化された参照フレームを最初に符号化してそれを現在のフレームと比較しなければならない。次に、エンコーダは、予測因子ユニット(PU)と呼ばれる1つ以上の小さなブロックに現在のパッチフレームを与える。各PUに記憶される情報の量は大きいことから、送信する際の情報量を減らすためにエンコーダは差分符号化方法に依存する。エンコーダは残差フレームを生成する。例えば、(参照フレームのパッチに属する)予測因子ユニットPUは、残差フレームを生成するために、(現在のフレームに属する)現在のPUから差し引かれる(例えば、現在のPU−予測因子ユニットPU)。その後、エンコーダは送信のために用いられる残差フレームのみを符号化する。例えば、下記のコードはこのプロセスを記述する。
1.現在のフレームをN個のPUブロックに分割
2.現在の補助フレームからPU_pred候補リストを生成
3.i=0〜N−1の場合
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])
上記のコードは、レート歪み問題最小化に基づくモード選択の符号化のためのプロセスを記述する。一部の実施では、エンコーダは、先に符号化された参照フレーム内の予測因子ユニットPUを探索し、残差を符号化するために必要なビットの量に関して、値を現在のPUに一致するための探索を行う。予測因子ユニットPUを選択するためのプロセスはレート歪み最小化問題を含み、レートは符号化された残差のビットサイズに対応し、歪みは、残差の原点からの距離に対応する残差のL2ノルムに対応する。次に、エンコーダは残差情報及び対応する変位情報を符号化し、これが動きベクトルになる。しかしながら、この実施には点群媒体を符号化し且つ送信する場合に強化が必要となる。
【0124】
エンコーダは、パッチデータに含まれる追加の補助情報を見直すことにより強化される。現在のフレームの場合、補助情報は現在の2−Dパッチ及び対応する3−D点群から生成される。参照フレームの場合、補助情報は先に符号化された参照2−Dパッチ及び対応する3−D点群から生成される。エンコーダは、現在のフレームのパッチからの補助情報、例えばu0、v0、u1、v1及びd1を、参照フレームのパッチからの補助情報、例えばu0、v0、u1、v1及びd1とを比較することによりブロック位置を予測できる。この比較により、それらの補助的な情報に基づくパッチ間の距離がもたらされる。
【0125】
一部の実施では、エンコーダは先ず3−D差分を決定する。3−D差分は、CUの開始ピクセルの3−D位置が異なり得るため、現在の補助情報フレームと参照補助情報フレームとの間の3−D差分に対応する。方程式は以下を含む。
【0126】
【数1】
次に、エンコーダは2−D差分を算出する。2―D差分は、占有ブロック解像度(occupancy
block
resolution)(OBR)を考慮して、現在の補助情報フレームと参照補助情報フレームとの間の2―D差分に対応する。OBRは、パッチ投影サイズに対するパッチデータグループ内の座標のスケールに対応する。例えば、パッチ幅は、OBRを乗じたパッチ投影サイズに等しい。次に、エンコーダは、2−Dドメイン内に動きベクトルを生成する。方適式は以下を含む。
【0127】
【数2】
最終的に導出された動きベクトルは、これら2つ動きベクトル成分の組み合わせである。例えば、最終的に導出された動きベクトルは以下に対応する。
【0128】
【数3】
非標準的なソリューション(non-normative solution)では、動きベクトル(MV)を探索範囲の中心の候補として推定される。導出された推定MVを候補として加えた後、エンコーダは、RDOを用いて分割2N×2Nから予測MV、ゼロMV、推定MV及びMVを選択して探索範囲の中心を決定する。推定MVが最小レート歪(R−D)コストを有する場合、それがビデオ圧縮のために用いられる。
【0129】
図21は、マージ候補リスト構築のための導出プロセス2100を示す。一部の実施では、予測ユニットがマージモードを用いて予測される場合、マージ候補リスト内のエントリを指すインデックスがビットストリームからパースされ、動き情報を読み出すために用いられる。このリストの構築はHEVC規格で規定されており、以下の一連のステップに従って要約できる。
ステップ1:初期候補の導出
ステップ1.1:空間的候補の導出
ステップ1.2:空間候補のための冗長性チェック
ステップ1.3:時間的候補の導出
ステップ2:追加候補の挿入
ステップ2.1:双方向予測候補の作成
ステップ2.2:ゼロ動き候補の挿入
これらのステップも図21に概略的に示される。空間的マージ候補の導出の場合、5つの異なる位置に位置する候補の中から最大で4つのマージ候補が選択される。時間的マージ候補導出の場合、2つの候補の中から最大で1つのマージ候補が選択される。各予測ユニットの候補の定数がデコーダで仮定されるため、スライスヘッダにシグナリングされるマージ候補の最大数(MaxNumMergeCand)に候補の数が達しない場合に追加候補が生成される。候補の数は一定であるため、トランケートユーナリ符号化(TU)を用いて最良のマージ候補のインデックスが符号化される。CUのサイズが8に等しい場合、現在のCUの全てのPUは単一のマージ候補リストを共有し、これは2N×2N予測ユニットのマージ候補リストと同一である。
【0130】
以下では、上述のステップに関連する動作を詳述する。
【0131】
図22は、空間的マージ候補の冗長性チェックのために考慮される、空間的マージ候補及び候補対の位置のシステム2200を示す。空間的マージ候補の導出では、図22に示す位置に位置する候補の中から最大で4つのマージ候補が選択される。導出の順序はA、B、B、A及びBである。位置Bは、位置A、B、B、AのいずれのPUも利用できない場合(例えば、それが別のスライス又はタイルに属するため)又はイントラ符号化されている場合にのみ考慮される。位置Aにある候補が追加された後、残りの候補の追加は冗長性チェックの対象となり、これにより同じ動き情報を持つ候補がリストから除外され、符号化効率が改善されることが保証される。計算の複雑性を低減するために、前述の冗長性チェックでは可能性のある全ての候補対が考慮されているわけではない。その代わりに、図22において矢印でリンクされた対のみが考慮され、冗長性チェックに用いられる対応する候補が同じ動き情報を持たない場合にのみ候補がリストに加えられる。重複動き情報の別のソースは、2N×2Nとは異なるパーティションに関連する「第2のPU」である。一例として、図22は、それぞれ、N×2N及び2N×Nの場合の第2のPUをそれぞれ示す。現在のPUがN×2Nとして分割されている場合、位置Aにおける候補はリスト構築のために考慮されない。実際、この候補を加えることによって、同じ動きの情報を持つ2つの予測ユニットが得られる。これは、符号化ユニットに1つのPUを持つだけで冗長である。同様に、現在のPUが2N×Nとして分割されている場合、位置Bは考慮されない。
【0132】
図23は、N×2N及び2N×Nパーティションの第2のPUのための位置を示すシステム2300を示す。とりわけ、システム2300は時間的候補導出プロセスを記述する。このステップでは、1つの候補のみがリストに加えられる。とりわけ、この時間的マージ候補の導出では、所与の参照ピクチャリスト内の現在のピクチャとのPOC差分が最小のピクチャに属する同一位置にある(co-located)PUに基づいてスケーリングされた動きベクトルが導出される。同一位置にあるPUの導出に用いられる参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補のためのスケーリングされた動きベクトルは、図24(システム2400)で点線によって示すように得られ、これは、POC距離、tb及びtdを用いて同一位置にあるPUの動きベクトルからスケーリングされており、ここで、tbは、現在のピクチャの参照ピクチャと現在のピクチャとの間のPOC差分として定義され、tdは同一位置にあるピクチャの参照ピクチャと、同一位置にあるピクチャとの間のPOC差分として定義される。時間的マージ候補の参照ピクチャインデックスはゼロに設定される。B−スライスの場合、2つの動きベクトル(一方は参照ピクチャリスト0のためのものであり、他方は参照ピクチャリスト1のためのもの)が得られ、組み合わされて双方向予測マージ候補が作成される。
【0133】
図25は、時間的マージ候補の候補位置を示すシステム2500である。参照フレームに属する同一位置にあるPU(Y)では、システム2500に示すように、時間的候補のための位置が候補C及びCの間で選択される。Cの位置にあるPUが利用可能でないか、イントラ符号化されているか又は現在のCTUの外にある場合には位置Cが用いられる。それ以外の場合では位置Cが時間的マージ候補の導出に用いられる。
【0134】
空間−時間的マージ候補の他に、複合双方向予測マージ候補(combined bi-predictive merge candidate)及びゼロマージ候補の2つのさらなる種類のマージ候補が存在する。複合双方向予測マージ候補は空間−時間的マージ候補を利用することにより生成される。複合双方向予測マージ候補はB−スライスのみに用いられる。複合双方向予測候補は、初期候補の第1の参照ピクチャリスト動きパラメータと、別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることにより生成される。これらの2つのタプルが異なる動き仮説を提供する場合、それらは新たな双方向予測候補を形成する。一例として、システム2500は、mvL0及びrefIdxL0又はmvL1及びrefIdxL1を有する(左側の)元のリスト内の2つの候補が、(右側の)最終リストに加えられた複合双方向予測マージ候補を作成するために用いられる場合を示す。これらの追加のマージ候補を生成すると考えられる組み合わせに関する数多くの規則が存在する。
【0135】
図26は、複合双方向予測マージ候補の例示の表2600を示す。マージ候補リストの残りのエントリを埋めるためにゼロ動き候補が挿入されるため、MaxNumMergeCand容量に達している。これらの候補はゼロ空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される毎に増加する参照ピクチャインデックスとを有する。これらの候補によって用いられる参照フレームの数は、一方向及び双方向予測の場合にそれぞれ1及び2である。最後に、これらの候補に対しては冗長性チェックが行われない。
【0136】
図27は、補助データを用いた動き推定パイプラインの変更を含むシステム2700の一例である。システム2700は、システム1900におけるコンポーネント1902に示される動き推定パイプラインのエンコーダ部分に対する追加のコンポーネントを示す。例えば、システム2000は補助フレーム2002(パッチフレームデータユニット又はパッチフレームデータグループとも呼ばれる)を含む。システム2700は、新たなフレーム2704、動き推定コンポーネント2706、動きエントロピーコーダ2708、動き補償補間2710、減算モジュール2712、残差エンコーダ2014、残差デコーダ2016及び加算器2018も含む。
【0137】
動き推定コンポーネント2706は、残差デコーダ2716及び加算器2718から、補助フレーム2702、新たなフレーム2704及び先に符号化された(現在復号化されている)残差フレームを受信する。
【0138】
一部の実施では、動き推定コンポーネント2706が、フレームのためのパッチデータを含む新たなフレーム2704を受信すると、動き推定コンポーネント2706は、auxフレーム2702内のパッチに関連する3−D座標を比較する。これは、各auxフレーム2702は、パッチデータの2−D座標と境界ボックス内の点群媒体の3−D座標との間の転移を説明する自身のパッチメタデータ(又は補助データ)を含むからである。とりわけ、動き推定2706は、auxフレーム2702内のパッチメタデータを用いて参照フレームを生成する。次に、現在のフレーム、例えば新たなフレーム2704からの現在の3−D情報及び先のフレーム、例えば参照フレームからの3−D情報を用いてパッチの位置を特定できる。例えば、動き推定2706は、新たなフレーム2704内のこのパッチは参照フレーム内の別のパッチと同じ3−D座標内の位置から生じると特定でき、参照フレーム内のパッチは新たなフレーム2704内の異なる2−D位置に位置する。
【0139】
次に、動き推定コンポーネント2706は新たなフレーム2704内の各パッチに対してこのプロセスを実行し、2−D情報を取り出して対応する3−D情報を得る。動き推定コンポーネント2706は、auxフレーム2702内のパッチのための2−D情報を取得する。動き推定コンポーネント2706は、新たなフレーム2704内のパッチの2−D情報及びauxフレーム2702内のパッチの2−D情報を用いて、例えば、新たなフレーム2704からのパッチのu0及びv0位置座標をauxフレーム2702内のパッチのu0及びv0位置座標と比較することにより、これらの2つのパッチ間の2―D距離を求め、その後にパッチがどのようにしてauxフレーム2702内のその位置から新たなフレーム2704内の位置に2−Dで移動したかを特定できる。auxフレーム2702内のパッチのu0、v0と新たなフレーム2704内のパッチのu0、v0との間のこの差分は動きベクトル候補に対応する。動き推定コンポーネント2706は、この生成された動きベクトル候補を動きベクトル候補リストに挿入する。動き推定コンポーネント2706は、新たなフレーム2704内の各パッチをauxフレーム2702内の各パッチと比較するこのプロセスを行う。一致が起きた場合、これらの一致したパッチ間の2−D座標間の差分が動きベクトル候補リストに加えられる。
【0140】
一部の実施では、動きベクトル候補が動きベクトル候補リストに追加されると、3−D座標リスト内のパッチに対して3−D動き探索が行われる。
【0141】
一部の実施では、エンコーダはフィールドネイバーの(field neighbor’s)候補リストを含む。フィールドネイバーの候補リストは、2−D画像内の動きを見直すための可能な位置を含むことができる。動き推定コンポーネント2706は、各パッチフレームのためにフィールドネイバー候補リスト内の位置を精緻化できる。
【0142】
補助情報を用いて参照フレーム内で一致するパッチを探すプロセスを下記のコードに示す。例えば、既存のパッチを用いて、補助3−D情報ファイルからの2−D及び3−D情報は、参照フレームのための点群圧縮ソリューションバッファから生成される。例えば、コードは下記を含む。
【0143】
【表2】
上述のコードでは、V−PCCエンコーダはビデオエンコーダのために参照フレーム内の一致したパッチを探索する。V−PCCエンコーダは、各フレーム内のパッチに対応する同じ2−D及び3−D情報並びに図16に関して説明した投影情報を用いる。このステップでは、V―PCCエンコーダは、動き精密化のために新たな候補を生成する。このアルゴリズムは次のように実行される。V−PCCエンコーダがフレームグループ内の各フレームをループする。V−PCCエンコーダは、特定の参照フレームからのパッチリストからパッチを取り出す。その後、V−PCCエンコーダは、現在のフレームから特定のパッチを取り出す。
【0144】
V―PCCエンコーダは、動きベクトル候補に基づいてレート歪最適化におけるコストを推定する。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小量のコストに対応する。とりわけ、最小量のコストは、X差分、Y差分及びZ差分の2乗値の合計に対応する。例えば、参照フレーム内のパッチのX座標が現在のフレーム内のパッチのX座標から減算されてX差分(「Xdif」)が生成され、参照フレーム内のパッチのY座標が現在のフレーム内のパッチのY座標から減算されてY差分(「Ydif」)が生成され、参照フレーム内のパッチのZ座標が現在のフレーム内のパッチのZ座標から減算されてZ差分(「Zdif」)が生成される。次に、PCCエンコーダは、参照フレーム内のパッチと現在のフレーム内のパッチとの間の特定の距離を生成するために、Xdif、Ydif及びZdifの2乗を合計する。
【0145】
レート歪み最適化におけるコストを推定するこのプロセスは、最小コスト又は距離が見つかるまで繰り返される。最小コスト又は距離が見つかった場合、pcMvFieldNeighbors変数は、X座標、Y座標及び参照フレームからのパッチに関連する正しいパッチに対応する最小コスト値で更新される。
【0146】
次に、V―PCCエンコーダは、精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための3−D情報と、投影画像内の対応する2−Dパッチ位置とに基づいて更新される。加えて、マージ候補リストは、パッチのための3−D情報と、投影画像内の対応する2−D位置とに基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する2−Dパッチを受信した場合にV−PCCエンコーダによって生成される。動きベクトル候補リストは、「ビデオ符号化のための補助情報生成」コードセットにしたがって生成される。V−PCCエンコーダ及びV−PCCデコーダの双方は、動きベクトル候補リストを生成するために「ビデオ符号化のための補助情報生成」を行う。そのため、V−PCCエンコーダとV−PCCデコーダとの間で送信すべき追加の動きベクトル候補リストや他の情報が必要とされない。
【0147】
一部の実施では、点群符号化ビットストリームから補助情報ファイルが生成される。点群符号化ビットストリームを以下にさらに説明及び図示する。補助情報は、V―PCCエンコーダ及びV―PCCデコーダが同じ結果を生成することを確実するために双方が同じ方法を用いるV―PCCエンコーダ及びV―PCCデコーダの双方で新たな動きベクトル候補を生成するために用いられる。補助情報を用いることにより、V―PCCエンコーダ及びV―PCCデコーダは新たな動きベクトル候補及びマージ候補リスト入力を生成した。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化/復号化技術に提供される。
【0148】
図28は、V−PCCユニットペイロードを表すパケットストリーム2800の一例である。パケットストリーム2800はV−PCCビットストリーム2802を含む。V−PCCビットストリーム2802は1つ以上のV−PCCユニットを含む。例えば、V−PCCユニット2804はV−PCCユニットヘッダ2806及びV−PCCユニットペイロード2808を含む。V−PCCユニットペイロード2808は、シーケンスパラメータセット2810、パッチデータグループ2812、占有ビデオデータ2814、幾何学的ビデオデータ2818及び属性ビデオデータ2816を含む。占有ビデオデータ2814は2−Dフレームデータを含む。属性ビデオデータ2816は2つの2−Dフレームのセット、例えば近位層及び遠位層を含む。幾何学的ビデオデータ2818も2つの2−Dフレームのセット、例えば近位層及び遠位層を含む。
【0149】
パッチデータグループユニットタイプは複数のデータセットを含む。例えば、パッチデータグループユニットタイプ2812は、シーケンスパラメータセット2820、フレーム幾何学的パラメータセット2822、幾何学的パッチパラメータセット2826、フレームパラメータセット2826、フレーム属性パラメータセット及び属性パッチパラメータセット2830を含む。加えて、パッチデータグループユニットタイプ2812は複数のパッチタイルグループ2832を含む。上述したように、パッチタイルグループは複数のパッチを含む。例えば、パッチデータグループは、T(i、0)〜T(i、m)のパッチタイルグループのセットを含む。情報は、V−PCCユニットペイロードの占有、属性及び幾何学的コンポーネントから点群フレームを再構成するために必要なものである。「I」は3−DのPCCフレーム「I」に対応するパッチデータグループインデックスである。「M+1」は3−D点群フレーム「I」のために生成される3−Dパッチの数であり、本明細書ではT(i、j)をパッチと呼ぶ。
【0150】
図29は、V−PCCユニットペイロードの視覚的表現2900の別の例である。V−PCCユニットペイロードの視覚的表現2900に示すように、矢印は、参照フレーム/データユニットから現在のデータユニットへの予測フローを表す。近位層と遠位層の間の予測は、データの同じV−PCCフレーム内でのみ可能である。例えば、視覚的表現2900は3−D点群、パッチデータグループ、近位及び遠位層の幾何学的ビデオデータ、近位及び遠位層の属性ビデオデータ及び占有ビデオデータを示す。
【0151】
図30は、3D補助データを用いて動き推定を行うためのプロセス3000の一例を示すフロー図である。プロセス3000は、図27に示すコンポーネントを含むV−PCCエンコーダ又はV−PCCデコーダによって行われ得る。
【0152】
V−PCCエンコーダは、三次元点群データの連続性データに基づいて、記録された媒体の三次元点群データのセグメンテーションを生成する(3002)。V−PCCエンコーダは、三次元(3−D)点群データを、3−Dパッチ境界ボックス1504等の一組の3−Dパッチ境界ボックス又はセグメンテーションにセグメント化する。3−D点群データのフレーム内のオブジェクトをカバーするために、3−D点群データの全体に対して複数のセグメンテーションが生成され得る。各セグメンテーション又は3−Dパッチ境界ボックスは、オブジェクトを3−D点群データでカバーする場合互いに近接して配置され得るか又は互いに重なり合い得る。
【0153】
V−PCCエンコーダは、セグメント化された三次元点群データの表現を三次元境界ボックスの1つ以上の側面に投影し、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側に基づいて異なる(3004)。V−PCCは、図16に示す結果のように、3−D点群データの画像を3−D境界ボックスの両側に投影するために3−D点群データを3−D境界ボックスで囲む。一部の実施では、V−PCCエンコーダは、3−D境界ボックスの側面上の投影面を選択するための基準を定義する。例えば、基準は平滑連続面基準を含むことができる。そのため、平滑連続面基準が、投影の各方向の中で最大領域となる境界ボックスの側面上のセグメンテーションの投影領域を含む場合に特定の投影面が選択される。平滑連続面は、1つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭又はブロックされたデータポイントが最も少ない表面として定義できる。次に、V−PCCエンコーダは、あらゆる方向から平滑面のそれぞれを比較して、どの方向が3−D境界ボックスの側面に最大領域を含み得る投影を生成し得るかを判定する。特定の投影面が選択された場合、V−PCCエンコーダは、3−D点群データの特定の面を3−D境界ボックスの特定の投影面に投影する。一部の実施では、V−PCCエンコーダは3−D点群データの様々な面を3−D境界ボックスの両側に投影する。
【0154】
V−PCCエンコーダは、セグメント化された三次元点群データの投影表現に基づいて1つ以上のパッチを生成する(3006)。画像が3−D境界ボックスの側面に投影されると、V−PCCエンコーダは各投影からパッチを生成する。3−D境界ボックスの側面の2−D境界ボックスに対応する各パッチは一組の座標を含む。パッチは3−D境界ボックスの側面の投影の領域に対応する。パッチのための座標は、例えばパッチインデックス、u0、v0、size_u0及びsize_v0を含む。パッチインデックスは、対応する境界ボックスの特定の側面に関連する特定のパッチを特定する。U0は投影面上のパッチのX座標を定義する。V0は投影平面上のパッチのY座標を定義する。size_u0及びsize_v0は、パッチu0及びv0の各座標に対応する大きさをそれぞれ記述する。
【0155】
一部の実施では、V−PCCエンコーダは3−D境界ボックスの各側面からのパッチとそれらに対応する座標情報とを組み合わせて「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定の且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する特定のパッチに対応する。例えば、パッケージ化されたパッチ1802は、パッチデータグループとして知られるパッチタイルグループの群を含む。
【0156】
パッチデータグループ内の各パッチの座標情報は投影マップに含まれる。投影マップは、後でV−PCCエンコーダによってビデオ符号化ソリューションに提供される追加ファイルである。投影マップは各パッチのための2−D及び3−D位置情報を含む。特定のパッチのための2−Dデータ、例えばu0、v0は、投影のX及びY座標の左上隅に対応する。size_u0及びsize_v0は、対応するパッチの高さ及び幅に対応する。3−Dパッチ投影データの場合、投影マップはX、Y及びZ軸に対応するu1、v1、d1座標を含む。とりわけ、u1、v1及びd1は投影の面のインデックス又は法線軸に対応する投影の面に対応する。
【0157】
V−PCCエンコーダは、1つ以上のパッチの第1のフレームを生成する(3008)。V−PCCエンコーダは、3006から生成されたパッチデータグループのフレームを生成する。フレームは符号化され、送信のためにビデオ圧縮ソリューションに提供できる。
【0158】
V−PCCエンコーダは第1のフレームのために第1の補助情報を生成する(3010)。第1の補助情報は、第1のフレーム内の特定のパッチのためのパッチメタデータに対応する。例えば、第1の補助情報は、特定のパッチのためのパッチインデックス、u0、v0、u1、v1及びd1を含むことができる。
【0159】
V−PCCエンコーダは、参照フレームのための第2の補助情報を生成する(3012)。V−PCCエンコーダは、1つ以上のパッチを含む先に符号化されたフレームである参照フレームを検索する。V−PCCエンコーダは参照フレームを復号化した後に参照フレームからパッチを取り出し、参照フレームからそのパッチに関連する補助情報を取り出す。参照フレームからのパッチに関連する補助情報は特定のパッチのためのパッチインデックス、u0、v0、u1、v1及びd1を含む。
【0160】
V−PCCエンコーダは、第1の補助情報及び第2の補助情報に基づいて、参照フレームからの第2のパッチに一致する第1のフレームからの第1のパッチを特定する(3014)。V−PCCは、第1のフレームに関連する補助情報を参照からのパッチに関連する補助情報と比較する。例えば、V−PCCは、各パッチに関連するパッチインデックス、u0、v0、v1及びd1を比較してこの情報間の距離を求める。V−PCCエンコーダは第1のフレームからのパッチを参照フレームからの各パッチと比較して、補助情報距離が最小の一致するパッチを見つける。距離が最小であると、V−PCCエンコーダは2つのパッチ間の一致するパッチを示す。
【0161】
V−PCCエンコーダは、第1の補助情報と第2の補助情報との差分に基づいて、第1のパッチと第2のパッチとの間で動きベクトル候補を生成する(3016)。動きベクトル候補は、それらの対応する補助情報間の差分が他のパッチと比較して最小である場合に、第1のパッチと第2のパッチとの間で生成される。動きベクトル候補は送信のために用いられる動きベクトル候補のリストに追加される。差分は、レート歪み最適化における推定コストに基づき得る。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小コストに対応する。最小コスト又は距離が見つかった場合、pcMvFieldNeighbors変数は、X座標、Y座標及び参照フレームからのパッチに関連する正確なパッチに対応する最小のコスト値で更新される。
【0162】
V−PCCエンコーダは、動きベクトル候補を用いて動き補償を行う(3018)。次に、V―PCCエンコーダは精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために、動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための3−D情報及び投影画像内の対応する2−Dパッチ位置に基づいて更新される。加えて、マージ候補リストはパッチのための3−D情報及び投影画像内の対応する2−D位置に基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する2−Dパッチを受信した場合にV−PCCエンコーダにより生成される。動きベクトル候補リストは、「ビデオ符号化のための補足情報生成」コードセットに従って生成される。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化/復号化技術に提供される。
【0163】
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間の線、トレース又は別の媒体を除いて、介在するコンポーネントが存在しない場合は第2のコンポーネントに直接連結される。第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間に線、トレース又は他の媒体以外に介在するコンポーネントが存在する場合は間接的に第2のコンポーネントに連結される。「連結される」という用語及びその変形は直接連結及び間接連結の双方を含む。「約」という用の使用は、特段規定がない限り、後続の数字の±10%を含む範囲を意味する。
【0164】
本開示ではいくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく多くの他の特定の形態で実施され得ることが理解され得る。本実施例は例示的なものであって限定的ではないと考えるべきできあり、本明細書で与えられた詳細に限定することを意図していない。例えば、様々な要素又はコンポーネントは他のシステムと組み合わされるか又は統合してもよく又は特定の特徴は省略され得るか又は実施されなくてもよい。
【0165】
加えて、様々な実施形態で個別又は別個のものとして説明及び図示した技術、システム、サブシステム及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、技術又は方法と組み合わされ得るか又は統合され得る。変更、置換及び改変の他の例は当業者によって確認可能であり、本明細書に開示の精神及び範囲から逸脱することなく行われ得る。
【0166】
本明細書に記載の本発明の実施形態及び機能動作の全てはデジタル電子回路で又は本明細書に開示の構造及びそれらの構造的等価物又はそれらの1つ以上の組み合わせを含む、コンピュータソフトウェア、ファームウェア又はハードウェアで実施され得る。本発明の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又は動作を制御するためにコンピュータ読み取り可能媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施され得る。コンピュータ読み取り可能媒体は非一時的なコンピュータ読み取り可能記憶媒体、機械読み取り可能記憶装置、機械読み取り可能記憶基板、記憶装置、機械読み取り可能伝搬信号に影響を与える物質の組成又はそれらの1つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための装置、デバイス及び機械の全てを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの1つ以上の組み合わせを構成するコードを含み得る。伝搬される信号は人工的に生成される信号、例えば、好適な受信器装置に送信するための情報を符号化するために生成される機械生成電気、光学又は電磁信号である。
【0167】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル又は解釈された言語を含む任意の形態のプログラミング言語で書かれていてもよく、スタンドアローンプログラムとして又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境での使用に適した他のユニットとしての形態を含む任意の形態で配備され得る。コンピュータプログラムは必ずしもファイルシステム内のファイルに対応していない。プログラムは、他のプログラム又はデータ(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム又はコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で又は1つのサイトに位置するか又は複数のサイトで分散されて通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように配備され得る。
【0168】
本明細書に記載のプロセス及び論理フローは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されて、入力データ上で動作し且つ出力を生成することにより機能を行い得る。プロセス及び論理フローは、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)等の専用論理回路により行われてもいいし又は装置は専用論理回路として実施されてもよい。
【0169】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用マイクロプロセッサの双方及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はその双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータは、例えば、磁気、光磁気ディスク又は光ディスクといったデータを記憶するための1つ以上の大容量記憶装置を含むか又はデータを受信し又はデータを送信するために動作可能に結合されるか又はその両方である。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータは、他の装置、例えば、いくつかの例を挙げると、タブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤ、グローバルポジショニングシステム(GPS)レシーバに埋め込まれ得る。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能媒体は、例えば、EPROM、EEPROM及びフラッシュメモリデバイス等の半導体メモリデバイス;磁気ディスク、例えば内部ハードディスク又はリムーバブルディスク;光磁気ディスク;CD−ROM及びDVD−ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補完されてもよいし、内蔵されてもよい。
【0170】
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えばCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供し得るキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実施され得る。ユーザとの対話を提供するために他の種類の装置を用いてもよく、例えばユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック又は触覚フィードバックであってもよく、ユーザからの入力は音響入力、音声入力又は触覚入力を含む任意の形態で受信され得る。
【0171】
本発明の実施形態は、バックエンドコンポーネント、例えばデータサーバを含むか又はミドルウェアコンポーネント、例えばアプリケーションサーバを含むか又はフロントエンドコンポーネント、例えばユーザが本発明の実施とやりとりし得るグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むか又はそのような1つ以上のバックエンド、ミドルウェア又はフロントエンドコンポーネントの任意の組み合わせを含むコンピュータシステムで実施され得る。システムのコンポーネントは任意の形態又は媒体のデジタルデータ通信、例えば通信ネットワークにより相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、例えばインターネットを含む。
【0172】
コンピュータシステムはクライアント及びサーバを含み得る。クライアント及びサーバは概して互いに離れており、通信ネットワークを介して通常対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバの関係を有するコンピュータプログラムのおかげで生じる。
【0173】
いくつかの実施を上記で詳細に説明してきたが、他の変更も可能である。例えば、デリゲートにアクセスするものとしてクライアントアプリケーションを説明したが、他の実施では、デリゲートは1つ以上のサーバ上で実行するアプリケーション等の1つ以上のプロセッサにより実施される他のアプリケーションにより用いられ得る。加えて、図面に示す論理フローは、所望の結果を得るために図示の特定の順序又は順番を必要としない。加えて、他のアクションが提供され得るか又は記載されたフローからアクションが除去されてもよく、他のコンポーネントが記載されたシステムに追加され得るか又は取り除かれ得る。したがって、他の実施は下記の特許請求の範囲内にある。
【0174】
本明細書は、多くの特定の実施の詳細を含むが、これらはいずれかの発明又はクレームされ得るものの範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈すべきである。別々の実施形態の文脈で本明細書に記載の特定の特徴は、組み合わされて単一の実施形態で実施することもできる。反対に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態で別々に又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は特定の組み合わせで作用するものとして上述され、そのように当初クレームされ得るが、クレームされた組み合わせからの1つ以上の特徴は、場合によっては組み合わせから切り出すことができ、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に向けられ得る。
【0175】
同様に、動作を特定の順序で図面に記載しているが、これは、所望の結果を得るためにそのような動作を図示の特定の順序で又は順番で行うこと又は記載された動作の全てを行うことを必要すると理解すべきではない。特定の状況下では、マルチタスク及び並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態でそのような分離を必要とするものと理解すべきではなく、記載のプログラムコンポーネント及びシステムは概して単一のソフトウェア製品内に統合され得るか又は複数のソフトウェア製品内にパッケージされ得ることを理解すべきである。
【0176】
主題の特定の実施形態を説明してきた。他の実施形態は以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載の動作は異なる順序で行うことができ、依然として所望の結果が得られる。一例として、添付の図面に記載のプロセスは所望の結果を得るために図示の特定の順序又は順番を必ずしも必要としない。特定の実施では、マルチタスク及び並列処理が有利であり得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
【手続補正書】
【提出日】2021年5月20日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
エンコーダにより、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成するステップと、
前記エンコーダにより、セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影するステップであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ステップと、
前記エンコーダにより、前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成するステップと、
前記エンコーダにより、前記1つ以上のパッチの第1のフレームを生成するステップと、
前記エンコーダにより、前記第1のフレームのための第1の補助情報を生成するステップと、
前記エンコーダにより、参照フレームのための第2の補助情報を生成するステップと、
前記エンコーダにより、前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定するステップと、
前記エンコーダにより、前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成するステップと、
前記エンコーダにより、前記動きベクトル候補を用いて動き補償を行うステップと、
を含むコンピュータ実施方法。
【請求項2】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記記録された媒体の三次元点群データのセグメンテーションを生成するステップは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記エンコーダにより前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項1又は2に記載のコンピュータ実施方法。
【請求項4】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、請求項1乃至3のいずれか一項に記載のコンピュータ実施方法。
【請求項5】
前記1つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項4に記載のコンピュータ実施方法。
【請求項6】
前記1つ以上のパッチのそれぞれのための二次元データ及び前記1つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項4に記載のコンピュータ実施方法。
【請求項7】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための1つ以上のパッチを生成するステップは、
前記エンコーダにより、前記三次元点群データの平滑性基準を各方向から決定することと、
前記エンコーダにより、前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、前記エンコーダにより、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項1乃至6のいずれか一項に記載のコンピュータ実施方法。
【請求項8】
前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成するステップは、
前記エンコーダにより、前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離を求めることと、
前記エンコーダにより、前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記エンコーダにより、前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項1乃至7のいずれか一項に記載のコンピュータ実施方法。
【請求項9】
1つ以上のコンピュータと、命令を記憶する1つ以上の記憶装置とを含むシステムであって、該命令は該1つ以上のコンピュータにより実行された場合に、該1つ以上のコンピュータに、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、
前記1つ以上のパッチの第1のフレームを生成することと、
前記第1のフレームのための第1の補助情報を生成することと、
参照フレームのための第2の補助情報を生成することと、
前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定することと、
前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせるよう動作可能である、システム。
【請求項10】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項9に記載のシステム。
【請求項11】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項9乃至10のいずれか一項に記載のシステム。
【請求項12】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、請求項9乃至11のいずれか一項に記載のシステム。
【請求項13】
前記1つ以上のパッチのそれぞれのためのインデックスデータは、前記三次元境界ボックスの対応する側面に対応する、請求項12に記載のシステム。
【請求項14】
前記1つ以上のパッチのそれぞれのための二次元データ及び前記1つ以上のパッチのそれぞれのための三次元データは、接続された前記三次元点群データの部分に対応する、請求項12に記載のシステム。
【請求項15】
前記三次元点群データの連続性データに基づいて、前記三次元点群データのための1つ以上のパッチを生成することは、
前記三次元点群データの平滑性基準を各方向から決定することと、
前記三次元点群データの各方向から前記平滑性基準を比較することと、
比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、
をさらに含む、請求項9乃至14のいずれか一項に記載のシステム。
【請求項16】
前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することは、
前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離を求めることと、
前記第1の補助情報の2次元データと前記第2の補助情報の2次元データとの間の距離に基づいて、前記動きベクトル候補を生成することと、
前記動きベクトル候補を動きベクトル候補リストに加えることと、
をさらに含む、請求項9乃至15のいずれか一項に記載のシステム。
【請求項17】
1つ以上の処理装置により実行可能な命令が記憶された非一時的コンピュータ読み取り可能記憶媒体であって、該命令は実行された場合に、該1つ以上の処理装置に、
記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、
セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、前記セグメント化された三次元点群データの表現は、前記三次元境界ボックスの投影された側面に基づいて異なる、ことと、
前記セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、
前記1つ以上のパッチの第1のフレームを生成することと、
前記第1のフレームのための第1の補助情報を生成することと、
参照フレームのための第2の補助情報を生成することと、
前記第1の補助情報及び前記第2の補助情報に基づいて、前記参照フレームからの第2のパッチに一致する第1のパッチを前記第1のフレームから特定することと、
前記第1の補助情報と前記第2の補助情報との間の差分に基づいて、前記第1のパッチと前記第2のパッチとの間に動きベクトル候補を生成することと、
前記動きベクトル候補を用いて動き補償を行うことと、
を含む動作を行わせる、1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
【請求項18】
前記参照フレームは、前記第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応する、請求項17に記載の非一時的コンピュータ読み取り可能媒体。
【請求項19】
前記記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、前記三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む、請求項17乃至18のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
【請求項20】
前記第1の補助情報は、前記1つ以上のパッチのそれぞれのためのインデックスデータと、前記1つ以上のパッチのそれぞれのための二次元データと、前記1つ以上のパッチのそれぞれのための三次元データとを含む、請求項17乃至19のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年10月2日に出願された米国仮特許出願第62/740237号及び2019年6月19日に出願された米国仮特許出願第62/863362号に対する優先権を主張し、双方は参照によりそれらの全体が本願に組み込まれる。
【背景技術】
【0002】
点群処理は、エンターテインメント産業、インテリジェント自動車ナビゲーション、地理空間検査、実世界オブジェクトの三次元(3D)モデリング及び環境可視化等の用途での広範なアプリケーションの不可欠な一部になっている。
【発明の概要】
【課題を解決するための手段】
【0003】
一部の実施では、本明細書は、三次元及び二次元補助データを用いて動き推定を行うための技術を説明する。三次元点群データを符号化し且つ送信するために動き推定が行われる。三次元点群データは、人間又は実世界のアイテム等の三次元オブジェクトの外面の輪郭を描くか又は視覚的に表すデータポイントを含む。三次元点群データは、三次元点群データの色、テクスチャ及び深度を示す属性情報も含むことができる。エンコーダ又はデコーダは、動き精密化データを用いて三次元点群データをそれぞれ符号化又は復号化できる。
【0004】
一部の実施では、エンコーダ又はデコーダは、三次元点群データを囲むために三次元境界ボックスを用い、その後に符号化及び送信に用いられるパッチを生成する。エンコーダは三次元点群データの画像を三次元境界ボックスの側面に投影できる。エンコーダは、画像又はパッチを符号化のために用いるためにフレームにグループ化できる。通常大きい三次元点群データを送信するために通常用いられる帯域幅の量を低減するために、エンコーダは代わりに、現在生成されたフレームからのパッチを先に生成されたフレームのパッチと比較することにより動き精密化データを生成できる。エンコーダは2つのフレーム間のパッチをマッチングさせ、マッチングしたパッチを特定するデータに基づいて動き精密化データを生成できる。例えば、エンコーダは、動き精緻化データとして含めるために、位置座標及びパッチのサイズを定義する補助情報を用いり得る。パッチのフレームを符号化及び送信する代わりに、モーション精緻化データを符号化及び送信のために用いて、全体的な伝送帯域幅を低減し且つメッセージを適切に復号化及び受信することができる。動き精緻化データが一度特定されると、三次元点群データの改善された送信のため、動き精緻化データを既存のビデオ圧縮技術に加えることができる。
【0005】
1つの一般的な態様では、方法は、記録された媒体の三次元点群データのセグメンテーションを該三次元点群データの連続性データに基づいて生成することと、セグメント化された三次元点群データの表現を、三次元境界ボックスの1つ以上の側面に投影することであって、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側面に基づいて異なる、ことと、セグメント化された三次元点群データの投影された表現に基づいて1つ以上のパッチを生成することと、1つ以上のパッチの第1のフレームを生成することと、第1のフレームのための第1の補助情報を生成することと、参照フレームのための第2の補助情報を生成することと、第1の補助情報及び第2の補助情報に基づいて、参照フレームからの第2のパッチに一致する第1のパッチを第1のフレームから特定することと、第1の補助情報と第2の補助情報との間の差分に基づいて、第1のパッチと第2のパッチとの間に動きベクトル候補を生成することと、動きベクトル候補を用いて動き補償を行うことと、を含む。
【0006】
本開示のこの及び他の態様の他の実施形態は、方法の動作を行うように構成された対応するシステム、装置及びコンピュータ記憶装置に符号化されたコンピュータプログラムを含む。1つ以上のコンピュータのシステムは、動作時にシステムに動作を行わせるソフトウェア、ファームウェア、ハードウェア又はシステムにインストールされたそれらの組み合わせによってそのように構成できる。1つ以上のコンピュータプログラムは、データ処理装置によって実行されると、装置に動作を行わせる命令を有することによって、そのように構成できる。
【0007】
前述の及び他の実施形態は、それぞれ任意で下記に特徴を単独で又は組み合わせで含むことができる。例えば、一実施形態は下記の特徴の全てを組み合わせで含む。
【0008】
一部の実施では、方法は、参照フレームが第2の補助情報を生成するために送信され且つ復号化された先に符号化されたフレームに対応することを含む。
【0009】
一部の実施では、記録された媒体の三次元点群データのセグメンテーションを生成することは、複数のセグメンテーションのそれぞれのセグメンテーションを後で投影及び符号化するために、三次元点群媒体にわたって複数のセグメンテーションを生成することをさらに含む。
【0010】
一部の実施では、第1の補助情報は、1つ以上のパッチのそれぞれのためのインデックスデータと、1つ以上のパッチのそれぞれのための二次元データと、1つ以上のパッチのそれぞれのための三次元データとを含む。
【0011】
一部の実施では、1つ以上のパッチのそれぞれのためのインデックスデータは、三次元境界ボックスの対応する側面に対応する。
【0012】
一部の実施では、1つ以上のパッチのそれぞれのための二次元データ及び1つ以上のパッチのそれぞれのための三次元データは、接続された三次元点群データの部分に対応する。
【0013】
一部の実施では、三次元点群データの連続性データに基づいて、三次元点群データのための1つ以上のパッチを生成することは、三次元点群データの平滑性基準を各方向から決定することと、三次元点群データの各方向から平滑性基準を比較することと、比較することに応答して、境界ボックスの側面への投影領域がより大きい三次元点群データの平滑性基準の方向を選択することと、をさらに含む。
【0014】
一部の実施では、第1のパッチと第2のパッチとの間に動きベクトル候補を生成することは、第1の補助情報の2次元データと第2の補助情報の2次元データとの間の距離を求めることと、第1の補助情報の2次元データと第2の補助情報の2次元データとの間の距離に基づいて、動きベクトル候補を生成することと、動きベクトル候補を動きベクトル候補リストに加えることと、をさらに含む。
【0015】
本明細書の主題の1つ以上の実施形態の詳細を添付の図面及び以下の説明で記載する。主題の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0016】
図1図1は、ビデオ信号を符号化する例示の方法のフローチャートである。
図2図2は、ビデオ符号化のための例示の符号化及び復号化(コーデック)システムの概略図である。
図3図3は、例示のビデオエンコーダを示すブロック図である。
図4図4は、例示のビデオデコーダを示すブロック図である。
図5図5は、単方向相互予測の一例を示す概略図である。
図6図6は、双方向相互予測の一例を示す概略図である。
図7図7は、ビデオ符号化に用いられる例示のイントラ予測モードを示す概略図である。
図8図8は、ビデオ符号化におけるブロックの方向関係の例を示す概略図である。
図9図9は、例示のインループフィルタを示すブロック図である。
図10図10は、ブロック分割で用いられる例示の分割モードを示す。
図11図11は、例示のビデオ符号化メカニズムの概略図である。
図12図12は、ビデオ符号化のためのコンピュータ装置の概略図である。
図13図13は、点群媒体を示すシステムの一例である。
図14図14は、点群フレームシーケンスを示すシステムの一例である。
図15図15は、三次元パッチ境界ボックスから二次元パッチ投影への変換プロセスの一例である。
図16図16は、3Dから2Dパッチ投影の結果を示すシステムの一例である。
図17図17は、点群媒体の属性セグメンテーションの一例である。
図18図18は、属性情報を有する点群媒体のためのパッキングパッチを示すシステムの一例である。
図19図19は、動き推定を行うためのシステムの一例である。
図20図20は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。
図21図21は、マージ候補リスト構築のための導出プロセスを示す。
図22図22は、空間マージ候補と、空間マージ候補の冗長性チェックのために考慮される候補対の位置のシステムを示す。
図23図23は、N×2N及び2N×N分割の第2のPUの位置を示すシステムを示す。
図24図24は、時間的マージ候補のためのスケーリングされた動きベクトルを得ることを示す。
図25図25は、時間的マージ候補のための候補位置を示すシステムである。
図26図26は、複合双方向予測マージ候補の例示の表を示す。
図27図27は、補助データを用いた動き推定パイプラインの変形を含むシステムの一例である。
図28図28は、V−PCCユニットペイロードのパケットストリーム表現の一例である。
図29図29は、V−PCCユニットペイロードのビジュアル表現の別の一例である。
図30図30は、3D補助データを用いて動き推定を行うプロセスの一例を示すフロー図である。 様々な図面における同様の参照番号及び指定は同様の要素を示す。
【発明を実施するための形態】
【0017】
最初に、1つ以上の実施形態の例示の実施が以下で提供されるが、開示のシステム及び/又は方法は、現在知られているか又は存在するかを問わず、任意の数の技術を用いて実施され得ることを理解すべきである。本開示は、本明細書で図示説明する例示の設計及び実施を含む、以下に示す例示の実施、図面及び技術に何ら限定すべきでなく、添付の特許請求の範囲と共にそれらの均等物の範囲全体内で変更され得る。
【0018】
図1は、ビデオ信号を符号化する例示の方法100のフローチャートである。具体的には、ビデオ信号はエンコーダで符号化される。符号化プロセスは、ビデオファイルのサイズを低減するために様々なメカニズムを用いることによりビデオ信号を圧縮する。より小さいファイルサイズは、圧縮されたビデオファイルをユーザに向けて送信できるようにしながら、関連する帯域幅オーバーヘッドを低減する。次に、デコーダは圧縮されたビデオファイルを復号化してエンドユーザに表示するために元のビデオ信号を再構成する。復号化プロセスは概してデコーダがビデオ信号を一貫して再構成できるように符号化プロセスに酷似している(mirrors)。
【0019】
ステップ101で、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号はメモリに記憶された非圧縮のビデオファイルであり得る。別の例として、ビデオファイルは、ビデオカメラ等のビデオ取り込み装置によって取り込まれたものでもよく、ビデオのライブストリーミングをサポートするために符号化され得る。ビデオファイルは、オーディオコンポーネント及びビデオコンポーネントの双方を含み得る。ビデオコンポーネントは、連続して視た場合に視覚的に動きの印象を与える一連の画像フレームを含む。フレームは、本明細書ではルマ成分(luma component)と呼ばれる光と、クロマ成分と呼ばれる色との観点で表されるピクセルを含む。一部の例では、フレームは三次元表示をサポートするために深度値も含み得る。
【0020】
ステップ103で、ビデオはブロックに分割される。分割は、圧縮のために各フレーム内のピクセルを正方形及び/又は長方形のブロックに細分すること(subdividing)を含む。例えば、さらなる符号化をサポートする構成が得られるまでブロックを分割し、再帰的に細分するために符号化木(coding tree)が用いられ得る。そのため、ブロックは、(H.265及びMPEG−H Part 2としても知られている)高効率ビデオ符号化(HEVC)における符号化木単位とも呼ばれ得る。例えば、フレームのルマ成分は、個々のブロックが比較的均一な照明値(lighting value)を含むまで細分され得る。さらに、フレームのクロマ成分は、個々のブロックが比較的均一なカラー値を含むまで細分され得る。したがって、分割メカニズムはビデオフレームのコンテンツに応じて変化し得る。
【0021】
ステップ105で、ステップ103において分割された画像ブロックを圧縮するために様々な圧縮メカニズムが用いられる。例えば、相互予測及び/又はイントラ予測が用いられ得る。相互予測は、共通のシーンのオブジェクトは連続したフレームで現れる傾向があるという事実を利用するように設計されている。したがって、参照フレーム内のオブジェクトを記述するブロックは、後続のフレームで繰り返し記述する必要がない。具体的には、テーブル等のオブジェクトは複数のフレームにわたって一定の位置に留まり得る。そのため、テーブルは一度記述するだけでよく、後続のフレームは参照フレームを参照できる。複数フレームにわたってオブジェクトをマッチングするためにパターンマッチングメカニズムが用いられ得る。さらに、移動オブジェクトは、例えば、オブジェクトの動き又はカメラの動きにより複数のフレームにわたって表現され得る。特定の例として、ビデオは、複数のフレームにわたって画面を横切る自動車を示し得る。そのような動きを記述するために動きベクトルを用いることができる。動きベクトルは、あるフレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する二次元ベクトルである。そのため、相互予測は、現在のフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す一組の動きベクトルとして符号化できる。
【0022】
相互予測は、共通フレーム内のブロックを符号化する。相互予測は、ルマ及びクロマ成分がフレーム内でかたまる傾向があるという事実を利用する。例えば、木の一部の緑色のパッチは、同様の緑色のパッチに隣接して位置する傾向がある。相互予測は、多方向予測モード(例えば、HEVCの33)、平面モード及び直流(DC)モードを用いる。方向モードは、現在のブロックが対応する方向において隣接ブロックと同様/同一であることを示す。平面モードは、行(例えば、平面)に沿った一連のブロックを行の端にある隣接ブロックに基づいて補間できることを示す。平面モードは、値を変化させる際に比較的一定の傾きを用いることにより、行にわたって光/色の滑らかな遷移を事実上示す。DCモードは境界平滑化のために用いられ、ブロックが方向予測モードの角度方向に関連する全ての隣接ブロックに関連する平均値と同様/同じであることを示す。したがって、イントラ予測ブロックは、実際の値の代わりに様々な関係予測モード値として画像ブロックを表すことができる。さらに、相互予測ブロックは、実際の値の代わりに動きベクトル値として画像ブロックを表すことができる。いずれの場合も、予測ブロックは、場合によっては画像ブロックを正確に表さないことがある。差分はいずれも残差ブロックに記憶される。変換は、ファイルをさらに圧縮するために残差ブロックに適用され得る。
【0023】
ステップ107で、様々なフィルタリング技術が適用され得る。HEVCでは、フィルタは、インループフィルタスキームに従って適用される。上述のブロックベースの予測は、デコーダでブロックノイズのある画像(blocky images)の生成をもたらし得る。さらに、ブロックベースの予測スキームはブロックを符号化し、次いで符号化したブロックを後で参照ブロックとして用いるために再構成し得る。インループフィルタスキームは、ブロック/フレームにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びSAOフィルタを反復的に適用する。これらのフィルタは、符号化されたファイルを正確に再構成できるようにそのようなブロッキングアーチファクトを軽減する。さらに、これらのフィルタは、再構成された参照ブロックにおけるアーチファクトを軽減し、アーチファクトが再構成された参照ブロックに基づいて符号化される後続のブロックにおいて追加のアーチファクトを生成する可能性を低減する。インループフィルタ処理について以下で詳細に説明する。
【0024】
一度ビデオ信号が分割され、圧縮され、フィルタリングされると、結果として得られるデータはステップ109でビットストリームに符号化される。ビットストリームは上述のデータに加えて、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意の信号データを含む。例えば、そのようなデータは、分割データ、予測データ、残差ブロック及びデコーダへの符号化命令を提供する様々なフラグを含み得る。ビットストリームは、要求に応じてデコーダに向けて送信するためにメモリに記憶され得る。ビットストリームは複数のデコーダに向けてブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの生成は反復プロセスである。したがって、ステップ101、103、105、107及び109は、多くのフレーム及びブロックにわたって連続的に及び/又は同時に起こり得る。図1に示す順序は説明を明確にし且つ容易にするために提示されたものであり、ビデオ符号化プロセスを特定の順序に限定することを意図していない。
【0025】
デコーダはビットストリームを受信し、ステップ111で復号化プロセスを開始する。具体的には、デコーダは、ビットストリームを対応する構文及びビデオデータに変換するためにエントロピー復号化スキームを用いる。デコーダは、ステップ111でフレームのための分割を特定するためにビットストリームからの構文データを用いる。分割は、ステップ103でのブロック分割の結果と一致しなければならない。ここで、ステップ111で用いられるエントロピー符号化/復号化について説明する。エンコーダは、いくつかの可能な選択肢から入力画像内の値の空間位置に基づいてブロック分割スキームを選択すること等の圧縮プロセスの間に多くの選択を行う。厳密な選択肢を示すことは多数のビンを使用し得る。本明細書で用いるように、ビンは可変として扱われるバイナリ値(例えば、コンテキストに応じて変化し得るビット値)である。エントロピー符号化は、特定の場合において明らかに実行不能な任意のオプションをエンコーダが破棄できるようにして、一組の許容可能なオプションのみが残される。そして、各許容可能なオプションに符号語が割り当てられる。符号語の長さは許容可能なオプションの数に基づく(例えば、2つのオプションに対して1つのビン、3〜4つのオプションに対して2つのビン等)。次に、エンコーダは選択されたオプションに対して符号語を符号化する。このスキームは符号語のサイズを小さくする。なぜなら、符号語は、全ての可能なオプションの潜在的に大きなセットからの選択を一意に示すのとは対照的に、許容可能なオプションの小さなサブセットからの選択を一意に示すのに望ましい大きさでしかないからである。次に、デコーダは、エンコーダの場合と同様に許容可能なオプションのセットを決定することにより選択を復号化する。許容可能なオプションのセットを決定することにより、デコーダは符号語を読み取り、エンコーダによってなされた選択を特定できる。
【0026】
ステップ113で、デコーダはブロック復号化を行う。具体的には、デコーダは、残差ブロックを生成するために逆変換を用いる。次に、デコーダは残差ブロック及び対応する予測ブロックを用いて、分割に従って画像ブロックを再構成する。予測ブロックは、ステップ105においてエンコーダで生成されたイントラ予測ブロック及び相互予測ブロックの双方を含み得る。次に、再構成された画像ブロックは、ステップ111で特定された分割データに従って、再構成されたビデオ信号のフレーム内に配置される。上述したように、ステップ113のための構文を、エントロピー符号化を介してビットストリームに信号伝達(signaled)してもよい。
【0027】
ステップ115で、エンコーダでのステップ107と同様の方法で再構成されたビデオ信号のフレームに対してフィルタリングが行われる。例えば、ブロッキングアーチファクトを取り除くためにノイズ抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ及びSAOフィルタがフレームに適用され得る。一度フレームがフィルタリングされると、エンドユーザによる視聴のためにビデオ信号をステップ117でディスプレイに出力できる。
【0028】
図2は、ビデオ符号化のための例示の符号化及び復号化(コーデック)システム200の概略図である。具体的には、コーデックシステム200は、方法100の実施をサポートする機能を提供する。コーデックシステム200は、エンコーダ及びデコーダの双方で用いられるコンポーネントを示すために一般化されている。コーデックシステム200は、方法100のステップ101及び103に関連して説明したように、ビデオ信号を受信及び分割し、その結果として分割されたビデオ信号201が得られる。次に、コーデックシステム200は、方法100のステップ105、107及び109に関連して説明したように、エンコーダの役割を果たす場合は、分割されたビデオ信号201を圧縮して符号化されたビットストリームにする。デコーダとしての役割を果たす場合、コーデックシステム200は、方法100のステップ111、113、115及び117に関連して説明したようにビットストリームから出力ビデオ信号を生成する。コーデックシステム200は、一般コーダ制御コンポーネント211と、変換スケーリング及び量子化コンポーネント213と、イントラピクチャ推定コンポーネント215と、イントラピクチャ予測コンポーネント217と、動き補償コンポーネント219と、動き推定コンポーネント221と、スケーリング及び逆変換コンポーネント229と、フィルタ制御分析コンポーネント227と、インループフィルタコンポーネント225と、復号化ピクチャバッファコンポーネント223と、ヘッダフォーマット化及びCABAC(context adaptive binary arithmetic coding)コンポーネント231とを含む。そのようなコンポーネントは図示のように連結されている。図2において、黒線は符号化/復号化すべきデータの動きを示すのに対して、破線は他のコンポーネントの動作を制御する制御データの動きを示す。コーデックシステム200のコンポーネントの全てはエンコーダ内に存在してもよい。デコーダはコーデックシステム200のコンポーネントのサブセットを含み得る。例えば、デコーダはイントラピクチャ予測コンポーネント217と、動き補償コンポーネント219と、スケーリング及び逆変換コンポーネント229と、インループフィルタコンポーネント225と、復号化ピクチャバッファコンポーネント223とを含み得る。これらのコンポーネントをこれから説明する。
【0029】
分割されたビデオ信号201は、符号化木によりピクセルのブロックに分割されている取り込まれたビデオストリームである。符号化木は、ピクセルのブロックをより小さなピクセルのブロックに細分するために様々な分割モードを用いる。次に、これらのブロックをより小さなブロックにさらに細分できる。ブロックは、符号化木上のノードと呼ばれ得る。より大きな親ノードはより小さな子ノードに分割される。ノードが細分される回数はノード/符号化木の深度と呼ばれる。分割されたブロックは、場合によっては符号化ユニット(CU)と呼ばれる。分割モードは、用いられる分割モードに応じて形状が異なる2つ、3つ又は4つの子ノードにノードを分割するのにそれぞれ用いられるバイナリ木(BT)、トリプル木(TT)及びクワッド木(QT)を含み得る。分割されたビデオ信号201は圧縮のために一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227及び動き推定コンポーネント221に転送される。
【0030】
一般コーダ制御コンポーネント211は、アプリケーションの制約に従ってビデオシーケンスの画像をビットストリームに符号化することに関連する決定を行うように構成されている。例えば、一般コーダ制御コンポーネント211は、再構成品質に対するビットレート/ビットストリームサイズの最適化を管理する。そのような決定は、記憶領域/帯域幅の利用可能性及び画像解像度要求に基づいてなされ得る。一般コーダ制御コンポーネント211は、バッファのアンダーラン及びオーバーランの問題を緩和するために、送信速度に照らしてバッファの利用も管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによる分割、予測及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、解像度を高め且つ帯域幅の使用を高めるために圧縮の複雑性を動的に高め得るか又は解像度と帯域幅の使用とを下げるために圧縮の複雑性を下げ得る。そのため、一般コーダ制御コンポーネント211は、ビデオ信号の再構成品質とビットレートの懸念とのバランスを取るためにコーデックシステム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データは、デコーダでの復号化のためのパラメータを伝達するためビットストリーム内に符号化されるように、ヘッダフォーマット化及びCABACコンポーネント231にも転送される。
【0031】
分割されたビデオ信号201は、相互予測のために動き推定コンポーネント221及び動き補償コンポーネント219にも送られる。分割されたビデオ信号201のフレーム又はスライスは複数のビデオブロックに分割され得る。動き推定コンポーネント221及び動き補償コンポーネント219は、時間予測(temporal prediction)を提供するために、1つ以上の参照フレーム内の1つ以上のブロックに対して受信したビデオブロックの相互予測符号化を行う。コーデックシステム200は、例えばビデオデータの各ブロックのために適切な符号化モードを選択するために複数の符号化パスを行い得る。
【0032】
動き推定コンポーネント221及び動き補償コンポーネント219は高度に統合され得るが、概念的な目的のために別個に示している。動き推定コンポーネント221によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(又は他の符号化ユニット)内で符号化されている現在のブロックに対する、参照フレーム(又は他の符号化ユニット)内の予測ブロックに対するビデオブロックの予測ユニット(PU)の変位を示し得る。予測ブロックは、ピクセルの差分の観点から符号化すべきブロックに厳密に一致することが見出されたブロックであり、絶対差(SAD)の和、二乗差の和(SSD)又は他の差分メトリックスにより決定され得る。一部の例では、コーデックシステム200は、復号化ピクチャバッファ223に記憶された参照ピクチャのサブ整数ピクセル位置の値を算出し得る。例えば、ビデオコーデックシステム200は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置又は他の分数のピクセル位置の値を補間し得る。したがって、動き推定コンポーネント221は、全ピクセル位置及び分数ピクセル位置に対する動き探索を行って、分数ピクセル精度を有する動きベクトルを出力し得る。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによりインター符号化されたスライス内のビデオブロックのPUのための動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを動きデータとしてヘッダフォーマット化及びCABACコンポーネント231に符号化のために出力し、動き補償コンポーネント219に動きを出力する。
【0033】
動き補償コンポーネント219によって行われる動き補償は、動き推定コンポーネント221によって決定された動きベクトルに基づいて、予測ブロックをフェッチ又は生成することを伴い得る。再び、一部の例では、動き推定コンポーネント221及び動き補償コンポーネント219は機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが参照ピクチャリストを指す予測ブロックを特定し得る。次に、符号化されている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することにより残差ビデオブロックが形成され、ピクセル差分値を形成する。一般に、動き推定コンポーネント221はルマ成分に対する動き推定を行い、動き補償コンポーネント219はクロマ成分及びルマ成分の双方のためにルマ成分に基づいて計算された動きベクトルを用いる。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。
【0034】
分割されたビデオ信号201は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217にも送られる。動き推定コンポーネント221及び動き補償コンポーネント219の場合と同様に、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は高度に統合され得るが、概念的な目的のために別個に示している。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、上述した動き推定コンポーネント221及び動き補償コンポーネント219によりフレーム間で行われる相互予測に代えて、現在のフレーム内のブロックに対して現在のブロックをイントラ予測する。とりわけ、イントラピクチャ推定コンポーネント215は、現在のブロックを符号化するために用いるイントラ予測モードを決定する。一部の例では、イントラピクチャ推定コンポーネント215は、複数のテストされたイントラ予測モードから現在のブロックを符号化するのに適切なイントラ予測モードを選択する。次に、選択されたイントラ予測モードが、符号化のためにヘッダフォーマット化及びCABACコンポーネント231に転送される。
【0035】
例えば、イントラピクチャ推定コンポーネント215は、様々なテストされたイントラ予測モードのためにレート歪み解析を用いてレート歪み値を計算し、テストされたモードの間で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み解析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の非符号化ブロックとの間の歪み(又はエラー)の量に加えて、符号化されたブロックを生成するのに用いられるビットレート(例えば、ビットの数)概して特定する。イントラピクチャ推定コンポーネント215は、ブロックにとって最良のレート歪み値を呈するイントラ予測モードがどれか判定するために、様々な符号化されたブロックのための歪み及びレートから比を計算する。加えて、イントラピクチャ推定コンポーネント215は、レート歪み最適化(RDO)に基づいて深度モデリングモード(DMM)を用いて深度マップの深度ブロックを符号化するように構成され得る。
【0036】
イントラピクチャ予測コンポーネント217は、イントラピクチャ推定コンポーネント215により決定された選択されたイントラ予測モードに基づいて、予測ブロックから残差ブロックを生成し得る。残差ブロックは、マトリクスとして表される予測ブロックと元のブロックとの間の値の差分を含む。次に、残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、ルマ及びクロマ成分の双方に対して動作し得る。
【0037】
変換スケーリング及び量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成されている。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(DCT)、離散正弦変換(DST)又は概念的に同様の変換等の変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換又は他の種類の変換も使用され得る。変換は、残差情報をピクセル値ドメインから変換ドメインに、例えば周波数ドメインに変換し得る。変換スケーリング及び量子化コンポーネント213は、変換された残差情報を例えば周波数に基づいてスケーリングするようにも構成されている。
【0038】
そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように残差情報に倍率を適用することを伴い、それは再構成されたビデオの最終的な視覚品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント213は、ビットレートをさらに下げるために変換係数を量子化するようにも構成されている。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することにより変更され得る。一部の例では、変換スケーリング及び量子化コンポーネント213は、次いで、量子化された変換係数を含むマトリクスのスキャンを行い得る。量子化された変換係数は、ビットストリームに符号化されるようにヘッダフォーマット化及びCABACコンポーネント231に転送される。
【0039】
スケーリング及び逆変換コンポーネント229は、動き推定をサポートするために変換スケーリング及び量子化コンポーネント213の逆動作を適用する。スケーリング及び逆変換コンポーネント229は、例えば、別の現在のブロックのための予測ブロックになり得る参照ブロックとして後で用いるためにピクセルドメイン内の残差ブロックを再構成するのに逆スケーリング、変換及び/又は量子化を適用する。動き推定コンポーネント221及び/又は動き補償コンポーネント219は、後のブロック/フレームの動き推定で用いるために残差ブロックを対応する予測ブロックに加算することにより参照ブロックを計算し得る。スケーリング、量子化及び変換の間に生じるアーチファクトを緩和するために、再構成された参照ブロックにフィルタが適用される。そうでなければ、そのようなアーチファクトは、後続のブロックが予測されるときに不正確な予測を引き起こし(且つさらなるアーチファクトを作り出す)得る。
【0040】
フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は、残差ブロック及び/又は再構成された画像ブロックにフィルタを適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックが、イントラピクチャ予測コンポーネント217及び/又は動き補償コンポーネント219からの対応する予測ブロックと組み合わされて、元の画像ブロックが再構成され得る。次に、再構成された画像ブロックにフィルタが適用され得る。一部の例では、フィルタは、代わりに、残差ブロックに適用され得る。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225は高度に統合されており、共に実施され得るが、概念的な目的のために別個に示されている。再構成された参照ブロックに適用されるフィルタは特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント227は、そのようなフィルタをどこに適用すべきか決定するために再構成された参照ブロックを解析し、対応するパラメータを設定する。そのようなデータは、フィルタ制御データとしてヘッダフォーマット化及びCABACコンポーネント231に符号化のために転送される。インループフィルタコンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ及び適応ループフィルタを含み得る。そのようなフィルタは、例に応じて空間/ピクセルドメインに(例えば、再構成されたピクセルブロックに)又は周波数ドメインに適用され得る。
【0041】
エンコーダとして動作する場合、フィルタリングされ、再構成された画像ブロック、残差ブロック及び/又は予測ブロックは、上述したように動き推定で後で用いるために復号化画像バッファ223に記憶される。デコーダとして動作する場合、復号化画像バッファ223は、再構成され、フィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。復号化画像バッファ223は、予測ブロック、残差ブロック及び/又は再構成された画像ブロックを記憶可能な任意のメモリ装置であり得る。
【0042】
ヘッダフォーマット化及びCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、そのようなデータを符号化してデコーダに向けて伝送するための符号化ビットストリームにする。具体的には、ヘッダフォーマット化及びCABACコンポーネント231は、一般的な制御データ及びフィルタ制御データ等の制御データを符号化するために様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データに加えて、量子化変換係数データの形態の残差データが全てビットストリームに符号化される。最終的なビットストリームは、元の分割されたビデオ信号201を再構成するためにデコーダによって望まれる全ての情報を含む。そのような情報は、イントラ予測モードインデックステーブル(符号語マッピングテーブルともいう)、様々なブロックのための符号化コンテキストの定義、最も可能性の高いイントラ予測モードの表示、分割情報の表示等も含み得る。そのようなデータはエントロピー符号化を用いて符号化され得る。例えば、情報は、コンテキスト適応可変長符号化(CAVLC)、CABAC及びシンタックスベースコンテキスト適応2値算術符号化(SBAC)、確率間隔区分エントロピー符号化(PIPE)又は他のエントロピー符号化技術を用いることにより符号化され得る。エントロピー符号化に続いて、符号化されたビットストリームは別の装置(例えば、ビデオデコーダ)に転送され得るか又は後で転送又は検索するためにアーカイブされ得る。
【0043】
図3は、例示のビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200の符号化機能及び/又は方法100のステップ101、103、105、107及び/又は109を実施するために用いられ得る。エンコーダ300は入力ビデオ信号を分割し、分割されたビデオ信号201と実質的に同様の分割されたビデオ信号301が得られる。次に、分割されたビデオ信号301は、エンコーダ300のコンポーネントにより圧縮され、ビットストリームに符号化される。
【0044】
具体的には、分割されたビデオ信号301は、イントラ予測のためにイントラピクチャ予測コンポーネント317に転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と実質的に同様であり得る。分割されたビデオ信号301は、復号化ピクチャバッファ323内の参照ブロックに基づく相互予測のために動き補償コンポーネント321にも転送される。動き補償コンポーネント321は、動き推定コンポーネント221及び動き補償コンポーネント219と実質的に同様であり得る。イントラピクチャ予測コンポーネント317及び動き補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために変換及び量子化コンポーネント313に転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様であり得る。変換され且つ量子化された残差ブロック及び対応する予測ブロックは(関連する制御データと共に)ビットストリームへの符号化のためにエントロピー符号化コンポーネント331に転送される。エントロピー符号化コンポーネント331は、ヘッダフォーマット化及びCABACコンポーネント231と実質的に同様であり得る。
【0045】
変換及び量子化された残差ブロック及び/又は対応する予測ブロックも、動き補償コンポーネント321により用いられる参照ブロックに再構成されるために変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329に転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に同様であり得る。インループフィルタコンポーネント325内のインループフィルタも、例に応じて残差ブロック及び/又は再構成された参照ブロックに適用される。インループフィルタコンポーネント325は、フィルタ制御分析コンポーネント227及びインループフィルタコンポーネント225と実質的に同様であり得る。インループフィルタコンポーネント325は、後述するようにノイズ抑制フィルタを含む複数のフィルタを含み得る。次に、フィルタリングされたブロックは、動き補償コンポーネント321により参照ブロックとして用いられるために復号化ピクチャバッファ323に記憶される。復号化ピクチャバッファ323は、復号化ピクチャバッファ223と実質的に同様であり得る。
【0046】
図4は、例示のビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200の復号化機能及び/又は方法100のステップ111、113、115及び/又は117を実施するために用いられ得る。デコーダ400は、例えばエンコーダ300からビットストリームを受信し、エンドユーザに表示するためにビットストリームに基づいて再構成された出力ビデオ信号を生成する。
【0047】
ビットストリームはエントロピー復号化コンポーネント433により受信される。エントロピー復号化コンポーネント433は、エントロピー符号化コンポーネント331の逆機能を行う。エントロピー復号化コンポーネント433は、CAVLC、CABAC、SBAC及びPIPE符号化又は他のエントロピー符号化技術等のエントロピー復号化スキームを実施するよう構成されている。例えば、エントロピー復号化コンポーネント433は、ビットストリーム内で符号語として符号化された追加のデータを解釈するためにコンテキストを提供するためにヘッダ情報を用いり得る。復号化された情報は、ビデオ信号を復号化するために、一般制御データ、フィルタ制御データ、分割情報、動きデータ、予測データ及び残差ブロックからの量子化変換係数等の任意の所望の情報を含む。量子化変換係数は、残差ブロックに再構成するために逆変換及び量子化コンポーネント429に転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と実質的に同様であり得る。
【0048】
再構成された残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づいて画像ブロックに再構成するために、イントラピクチャ予測コンポーネント417に転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ予測コンポーネント317と実質的に同様であり得るが、逆に動作し得る。具体的には、イントラピクチャ予測コンポーネント417は、フレーム内の参照ブロックを特定するために予測モードを用い、イントラ予測された画像ブロックを再構成するために結果に残差ブロックを適用する。再構成され、イントラ予測された画像ブロック及び/又は残差ブロック及び対応する相互予測データは、復号化ピクチャバッファコンポーネント423にインループフィルタコンポーネント425を介して(それぞれ復号化ピクチャバッファコンポーネント323及びインループフィルタコンポーネント325と実質的に同様であり得る)に転送される。インループフィルタコンポーネント425は、再構成された画像ブロック、残差ブロック及び/又は予測ブロックをフィルタリングし、そのような情報は復号化ピクチャバッファコンポーネント423に記憶される。復号化ピクチャバッファコンポーネント423からの再構成された画像ブロックは、相互予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は動き補償コンポーネント321と実質的に同様であり得るが、動作が逆であり得る。具体的には、動き補償コンポーネント421は、参照ブロックから動きベクトルを用いて予測ブロックを生成し、画像ブロックを再構成するために残差ブロックを結果に適用する。結果として得られた再構成されたブロックは、インループフィルタコンポーネント425を介して復号化ピクチャバッファコンポーネント423に転送され得る。復号化ピクチャバッファコンポーネント423は、分割情報を介してフレームに再構成可能な追加の再構成された画像ブロックの記憶を続ける。そのようなフレームは、シーケンスにも配置され得る。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
【0049】
相互予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスは画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、画像ブロックは相互予測(異なるフレーム内のブロック間の相関関係)又はイントラ予測(同じフレーム内のブロック間の相関関係)により圧縮され得る。
【0050】
符号化木ユニット(CTU)、符号化木ブロック(CTB)、符号化ユニット(CU)、サブCU等の符号化オブジェクトがビデオシーケンスの複数フレームに現れた場合に相互予測が用いられる。各フレーム内の同じオブジェクトを符号化する代わりに、オブジェクトは参照フレーム内で符号化され、オブジェクトの動き軌跡(motion trajectory)を示すために動きベクトル(MV)が用いられる。オブジェクトの動き軌跡はオブジェクトの経時的な動きである。MVは、フレーム間で位置変化するオブジェクトの方向及び大きさを示すベクトルである。オブジェクト及びMVはビットストリームに符号化でき、デコーダにより復号化される。符号化効率をさらに高め、符号化のサイズを低減するために、MVはビットストリームから省略され、デコーダで導出され得る。例えば、一対の参照フレームが用いられ得る。参照フレームは、関連するフレームを符号化する際に参照により符号化可能なデータを含むビットストリーム内のフレームである。双方の参照フレーム内の符号化オブジェクトの位置を特定するためにバイラテラルマッチング及び/又はテンプレートマッチング等のマッチングアルゴリズムが用いられ得る。バイラテラルマッチングアルゴリズムは、先のフレーム内のブロックを現在のフレーム内のブロックにマッチングさせる。テンプレートマッチングアルゴリズムは隣接するブロックを現在のブロックとマッチングさせ、1つ以上の参照フレーム内で隣接するブロックを現在のブロックとマッチングさせる。双方の参照フレーム内でオブジェクトの位置が特定されると、参照フレーム間のオブジェクトの動きを表すMVを決定できる。次に、参照フレーム間のフレーム内にオブジェクトを配置するためにMVを用いることができる。具体的な例として、CU全体のために初期MVを決定できる。そして、初期MVを精緻化するためにローカル検索を用いることができる。さらに、オブジェクトのサブCUコンポーネントのためのMVは、精密化された初期MVに基づいて決定及び精密化できる。そのようなアプローチは、オブジェクトの動き軌跡が参照フレーム間で連続している限り、オブジェクトの正しい位置を示す。
【0051】
図5は、例えば、ブロック圧縮ステップ105、ブロック復号化ステップ113、動き推定コンポーネント221、動き補償コンポーネント219、動き補償コンポーネント321及び/又は動き補償コンポーネント421で動きベクトル(MV)を決定するために行われる一方向相互予測500の一例を示す概略図である。
【0052】
一方向相互予測500は、現在のフレーム510内の現在のブロック511を予測するために参照ブロック531を有する参照フレーム530を用いる。参照フレーム530は、図示のように現在のフレーム510の後に時間的に位置し得るが、一部の例では現在のフレーム510の前に時間的に位置し得る。現在のフレーム510は、特定の時間に符号化/復号化される例示のフレーム/ピクチャである。現在のフレーム510は、参照フレーム530の参照ブロック531内のオブジェクトとマッチするオブジェクトを現在のブロック511内に含む。参照フレーム530は、現在のフレーム510を符号化するための参照として用いられるフレームであり、参照ブロック531は、現在のフレーム510の現在のブロック511にも含まれるオブジェクトを含む参照フレーム530内のブロックである。現在のブロック511は、符号化プロセスの特定の時点で符号化/復号化される任意の符号化ユニットである。現在のブロック511は、分割されたブロック全体であり得るか又はアフィン相互予測の場合ではサブブロックであり得る。現在のフレーム510は、ある時間的距離(TD)533参照フレーム530から離れている。TD533は、ビデオシーケンス内で現在のフレーム510と参照フレーム530との間の時間を示す。TD533により表される期間にわたって、現在のブロック511内のオブジェクトは、現在のフレーム510内の位置から参照フレーム530内の別の位置(例えば、参照ブロック531の位置)に移動する。例えば、オブジェクトは、経時的なオブジェクトの動きの方向である動き軌跡513に沿って移動し得る。動きベクトル535は、TD533にわたる動き軌跡513に沿ったオブジェクトの動きの方向及び大きさを記述する。したがって、符号化されたMV535及び参照ブロック531は、現在のブロック511及び現在の現在のフレーム510内の現在のブロック511の位置を再構成するのに十分な情報を提供する。
【0053】
図6は、例えば、ブロック圧縮ステップ105、ブロック復号化ステップ113、動き推定コンポーネント221、動き補償コンポーネント219、動き補償コンポーネント321及び/又は動き補償コンポーネント421でMVを決定するために行われる双方向相互予測600の一例を示す概略図である。例えば、相互予測モードにおけるブロックのための動きベクトルを決定するために及び/又はアフィン相互予測モードにおけるサブブロックのための動きベクトルを決定するために双方向相互予測600を用いることができる。
【0054】
双方向相互予測600は一方向相互予測500と同様であるが、現在のフレーム610内の現在のブロック611を予測するために一対の参照フレームを用いる。そのため、現在のフレーム610及び現在のブロック611はそれぞれ、現在のフレーム510及び現在のブロック511と実質的に同様である。現在のフレーム610は、ビデオシーケンスにおいて現在のフレーム610の前に起こる先行参照フレーム620と、ビデオシーケンスにおいて現在のフレーム610の後で起こる後続参照フレーム630との間で時間的に位置する。先行参照フレーム620及び後続参照フレーム630は、それ以外では参照フレーム530と実質的に同様である。
【0055】
現在のブロック611は、先行参照フレーム620内の先行参照ブロック621と、後続参照フレーム630内の後続参照ブロック631とにマッチングする。そのようなマッチングは、ビデオシーケンスにわたって、オブジェクトは、先行参照ブロック621における位置から後続参照ブロック631における位置に動き軌跡613に沿って現在のブロック611を介して移動することを示す。現在のフレーム610は先行参照フレーム620からある先行時間距離(TD0)623離れており、後続参照フレーム630からある後続時間距離(TD1)633離れている。TD0 623は、ビデオシーケンスにおける先行参照フレーム620と現在のフレーム610との間の時間を示す。TDl 633は、ビデオシーケンスにおける現在のフレーム610と後続参照フレーム630との間の時間を示す。そのため、オブジェクトは、動き軌跡63に沿ってTD0 623によって示される期間にわたって先行参照ブロック621から現在のブロック611に移動する。また、オブジェクトは、動き軌跡6613に沿ってTD1 633によって示される期間にわたって現在のブロック611から後続参照ブロック631に移動する。
【0056】
先行動きベクトル(MV0)625は、動き軌跡613に沿ったTD0 623にわたる(例えば、先行参照フレーム620と現在のフレーム610との間の)オブジェクトの動きの方向及び大きさを記述する。後続動きベクトル(MV1)635は、動き軌跡613に沿ったTD1 633にわたる(例えば、現在のフレーム610と後続参照フレーム630との間の)オブジェクトの動きの方向及び大きさを記述する。そのため、双方向相互予測600では、先行参照ブロック621及び/又は後続参照ブロック631、MV0 625及びMVl 635を用いることにより現在のブロック611を符号化及び再構成できる。
【0057】
イントラ予測
ビデオ符号化プロセスの間にビデオデータを圧縮するために多くのスキームが並行して用いられる。例えば、ビデオシーケンスが画像フレームに分割される。次に、画像フレームは画像ブロックに分割される。次に、相互予測(異なるフレーム内のブロック間の相関関係)又はイントラ予測(同じフレーム内のブロック間の相関関係)により画像ブロックが圧縮され得る。イントラ予測では、サンプルの参照ライン(reference line)から現在の画像ブロックが予測される。参照ラインは、隣接ブロックとも呼ばれる近隣画像ブロックからのサンプルを含む。現在のブロックからのサンプルは、最も近いルマ(光)又はクロマ(色)値を有する参照ラインからのサンプルとマッチングされる。現在のブロックは、マッチングサンプルを示す予測モードとして符号化される。予測モードは、角度予測モード、直流(DC)モード及び平面モード(planer mode)を含む。予測モードにより予測された値と実際の値との差分は、残差値として残差ブロック内に符号化される。
【0058】
図7は、ビデオ符号化で用いられる例示のイントラ予測モード700を示す概略図である。例えば、イントラ予測モード700は、方法100のステップ105及び113、コーデックシステム200のイントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217、エンコーダ300のイントラピクチャ予測コンポーネント317及び/又はデコーダ400のイントラピクチャ予測コンポーネント417により用いられ得る。具体的には、選択された予測モード及び残りの残差ブロックを含む予測ブロックに画像ブロックを圧縮するためにイントラ予測モード700を用いることができる。
【0059】
上述したように、イントラ予測は、現在の画像ブロックを、1つ以上の隣接ブロックの対応するサンプル又は複数のサンプルにマッチングさせることを伴う。次に、現在の画像ブロックは選択された予測モードインデックス及び残差ブロックとして表すことができ、これは現在の画像ブロックに含まれるルマ/クロマ値の全てを表すよりもはるかに小さい。イントラ予測は、利用可能な参照フレームがない場合又は現在のブロック若しくはフレームに相互予測符号化が用いられていない場合に用いることができる。イントラ予測のための参照サンプルは、同じフレーム内の先に符号化された(又は再構成された)隣接ブロックから導出され得る。H.264及びH.265/HEVCとしても知られるアドバンスドビデオ符号化(AVC)の双方は、近隣ブロックの境界サンプルの参照ラインをイントラ予測のための参照サンプルとして用いる。異なるテクスチャ又は構造特性を網羅するために、多くの異なるイントラ予測モードが用いられる。H.265/HEVCは、現在のブロックを1つ以上の参照サンプルに空間的に関連付ける35イントラ予測モード700をサポートする。具体的には、イントラ予測モード700は、モード2〜34として索引付けられた(indexed)33の方向予測モード、モード1として索引付けされたDCモード及びモードゼロとして索引付けられた平面モードを含む。
【0060】
符号化の間、エンコーダは、現在のブロックのルマ/クロマ値を、隣接ブロックの端から端にわたる(across the edges of neighboring blocks)参照ライン内の対応する参照サンプルのルマ/クロマ値とマッチングさせる。参照ラインのうちの1つと最良のマッチが見つかった場合、エンコーダは、最良のマッチング参照ラインを指す方向性イントラ予測モード700の1つを選択する。説明を明確にするために、特定の方向性イントラ予測モード700を参照するために頭字語が以下で用いられる。DirSは、左下から時計回りにカウントする場合の開始方向性イントラ予測モード(例えば、HEVCにおけるモード2)を表す。DirEは左下から時計回りにカウントする場合の終了方向性イントラ予測モード(例えば、HEVCにおけるモード34)を表す。DirDは、左下から時計回りにカウントする場合の中間方向性イントラ符号化モード(例えば、HEVCにおけるモード18)を表す。DirHは水平イントラ予測モード(例えば、HEVCにおけるモード10)を表す。DirVは垂直イントラ予測モード(例えば、HEVCにおけるモード26)を表す。
【0061】
上述したように、DCモードは平滑化機能として作用し、現在のブロックの予測値を、隣接ブロックを横断する参照ライン内の全ての参照サンプルの平均値として導出する。同じく上述したように、平面モードは、参照サンプルの参照ラインの底部と左上又は左上と右上のサンプル間の滑らかな遷移(例えば、値の一定の勾配)を示す予測値を返す。
【0062】
DirHからDirVまでの平面、DC及び予測モードの場合、参照ラインの上段及び参照ラインの左列の双方内のサンプルが参照サンプルとして用いられる。(DirS及びDirHを含む)DirSからDirHへの予測方向を持つ予測モードの場合、参照ラインの左列の先に符号化され且つ再構成された隣接ブロック内の参照サンプルが参照サンプルとして用いられる。(DirV及びDirEを含む)DirVからDirEへの予測方向を持つ予測モードの場合、参照ラインの上段の先に符号化され且つ再構成された隣接ブロックの参照サンプルが参照サンプルとして用いられる。
【0063】
図8は、ビデオ符号化におけるブロック800の方向関係の一例を示す概略図である。例えば、イントラ予測モード500を選択する際にブロック800が用いられ得る。そのため、ブロック800は、方法100のステップ105及び113、コーデックシステム200のイントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217、エンコーダ300のイントラピクチャ予測コンポーネント317及び/又はデコーダ400のイントラピクチャ予測コンポーネント417により用いられ得る。ビデオ符号化では、ブロック800はビデオコンテンツに基づいて分割されるため、様々な形状及びサイズの多くの長方形及び正方形を含み得る。ブロック800は説明の目的のために正方形として図示されているため、説明の明確性をサポートするために実際のビデオ符号化ブロックから単純化されている。
【0064】
ブロック800は現在のブロック801及び隣接ブロック810を含む。現在のブロック810は特定の時間に符号化される任意のブロックである。隣接ブロック810は現在のブロック801の左端又は上端のすぐそばに近接する任意のブロックである。ビデオ符号化は概して左上から右下に進む。そのため、隣接ブロック810は、現在のブロック801の符号化の前に符号化され且つ再構成され得る。現在のブロック801を符号化する場合、エンコーダは、現在のブロック801のルマ/クロマ値を、隣接ブロック810の端から端を横切る参照ラインからの参照サンプル(又は複数の参照サンプル)とマッチングさせる。そして、マッチングは、例えば、マッチングされたサンプル(又はDC又は平面モードが選択された場合は複数のサンプル)を指すイントラ予測モード700からイントラ予測モードを選択するために用いられる。次に、選択されたイントラ予測モードは、現在のブロック801のルマ/クロマ値は選択されたイントラ予測モードに対応する参照サンプルと実質的に同様であることを示す。差異があれば残差ブロックで保持できる。次に、選択されたイントラ予測モードはビットストリームに符号化される。デコーダでは、現在のブロック801は、選択されたイントラ予測モードに対応する隣接ブロック810内の選択された参照ラインにおける参照サンプルのルマ/クロマ値を(残差ブロックからの残差情報と共に)用いることにより再構成できる。
【0065】
インループフィルタ
ビデオ符号化スキームはビデオ信号を画像フレームに細分し、次いで画像フレームを様々な種類のブロックに細分する。そして、画像ブロックが圧縮される。このアプローチは、圧縮されたビデオ信号が再構成されて表示された場合にビジュアルアーチファクトを作り出し得る。例えば、画像圧縮プロセスはブロック形状を人為的に加えることができる。これはブロッキングとして知られ、ブロック分割境界で概して起こる。加えて、量子化ノイズとして知られる非線形信号依存丸め誤差(non-linear signal dependent rounding error)も圧縮画像に人為的に加えられ得る。そのようなアーチファクトを補正するために様々なフィルタが用いられ得る。フィルタは再構成されたフレームに後処理で適用され得る。後処理は、圧縮されたビデオ信号の大半の部分が再構成された後で且つユーザに表示される直前に起こる。フィルタは、インループフィルタリングと呼ばれるメカニズムを用いることにより圧縮/解凍プロセスの一部としても適用され得る。インループフィルタリングは、関連する画像の間でより正確な圧縮をサポートするために符号化及び/又は復号化プロセスの間に再構成されたビデオ画像にフィルタを適用するフィルタリングスキームである。例えば、相互予測は先行及び/又は後続の画像フレームに基づいて画像フレームを符号化する。エンコーダでは、圧縮された画像が再構成され、再構成された画像は、相互予測を介して先行する/後続の画像フレームを符号化する際に用いるためにより正確な画像を提供するようにインループフィルタリングを介してフィルタリングされる。デコーダでは、圧縮された画像が再構成され、エンドユーザによる視聴のためにより正確な画像を生成すること及び正確な相互予測をサポートすることの双方のためにインループフィルタリングを介してフィルタリングされる。インループフィルタリングは、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ及び適応ループフィルタ等のいくつかのフィルタを用いる。インループフィルタリングはノイズ抑制フィルタも含むことができる。
【0066】
図9は、例示のインループフィルタ900を示すブロック図である。インループフィルタ900は、インループフィルタ225、325及び/又は425を実施するために用いられ得る。インループフィルタ900はノイズ抑制フィルタ941、デブロッキングフィルタ943、サンプル適応オフセット(SAO)フィルタ945及び適応ループフィルタ947を含む。インループフィルタ900のフィルタは、再構成された画像ブロック及び/又は残差ブロックに順次適用される。
【0067】
ノイズ抑制フィルタ941は画像圧縮によって生じる量子化ノイズを除去するように構成されている。具体的には、画像のエッジに生じるアーチファクトを除去するためにノイズ抑制フィルタ941が用いられる。例えば、画像圧縮は、画像内の異なる色/光パッチ間のシャープな遷移(エッジ)に隣接して明白で不正確な色/光値を作り得る。これはリンギングと呼ばれ、シャープなエッジに関連する画像データの高周波部分への変換の適用によって生じる。そのようなリンギングアーチファクトを緩和するためにノイズ抑制フィルタ941が用いられる。ノイズ抑制フィルタ941は、空間領域(例えば、ピクセルの空間方向)及び周波数領域(例えば、ピクセルデータに関する変換係数値の関係)の両方で動作する。エンコーダでは、ノイズ抑制フィルタ941は再構成されたフレームを参照マクロブロックに分割する。そのようなブロックは、より小さな参照ブロックに細分することもできる。ノイズ抑制フィルタ941は、ブロックにおける量子化ノイズの推定量に基づいてフィルタリングすべきフレームの部分を示すアプリケーションマップを先ず生成する。次に、ノイズ抑制フィルタ941は、アプリケーションマップによって示される各参照ブロックに対してマッチングコンポーネントを用いて対応する参照ブロックと同様の一組のパッチを決定する。ここで、同様とは、クロマ/ルマ値が所定の範囲内にあることを示す。次に、ノイズ抑制フィルタ941はパッチをクラスタにグループ化し、二次元(2D)変換を用いてクラスタを周波数領域に変換し、その結果周波数領域パッチが得られる。ノイズ抑制フィルタ941は、周波数領域パッチを空間領域に戻すために変換するために逆2D変換も用いり得る。
【0068】
デブロッキングフィルタ943は、ブロックベースの相互及びイントラ予測によって生じるブロック状のエッジを除去するように構成されている。デブロッキンングフィルタ943は、画像部分(例えば、画像スライス)をスキャンして、分割境界で生じるクロマ及び/又はルマ値の不連続部を探す。次に、デブロッキンングフィルタ943は、そのような不連続部を除去するために平滑化機能をブロック境界に適用する。デブロッキンングフィルタ943の強度は、ブロック境界に隣接する領域で生じる空間アクティビティ(例えば、ルマ/クロマ成分の分散)に応じて変更され得る。
【0069】
SAOフィルタ945は、符号化プロセスによって引き起こされるサンプル歪みに関連するアーチファクトを除去するように構成されている。エンコーダにおけるSAOフィルタ945は、再構成された画像のデブロックされたサンプルを、相対的なデブロッキンングエッジ形状及び/又は方向に基づいていくつかのカテゴリーに分類する。次に、オフセットが決定されて、カテゴリーに基づいてサンプルに加えられる。次に、オフセットがビットストリームに符号化され、デコーダにおいてSAOフィルタ945により用いられる。SAOフィルタ945は、バンディングアーチファクト(平滑な遷移の代わりに値のバンド)及びリンギングアーチファクト(シャープなエッジの近傍のスプリアス信号)を除去する。
【0070】
適応ループフィルタ947は、エンコーダにおいて、再構成された画像を元の画像と比較するように構成されている。適応ループフィルタ947は、例えばウィナーベースの適応フィルタを介して、再構成された画像と元の画像との間の差分を記述する係数を特定する。そのような係数はビットストリームに符号化され、再構成された画像と元の画像との間の差分を除去するためにエンコーダにおいて適応ループフィルタ947で用いられる。適応ループフィルタ947はアーチファクトを補正するのに有効であるが、再構成された画像と元の画像との間の差分が大きいほど、シグナリングすべき係数の数がより大きくなる。これは、ひいてはより大きなビットストリームを生成するため、圧縮の有効性が低減される。そのため、適応ループフィルタ947を適用する前に他のフィルタによる差分の最小化は改善された圧縮をもたらす。
【0071】
分割
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。例えば、エンコーダ及びデコーダの双方は、H.265としても知られる高効率ビデオ符号化方式(HEVC)等の符号化規格を用いり得る。エンコーダで、ビデオ信号がフレームに分離される。次に、フレームはピクセルのグループを含む画像ブロックに分割される。次に、画像ブロックが圧縮され、フィルタリングされ、ビットストリームに符号化される。次に、ビットストリームはデコーダに送信され、デコーダはエンドユーザに表示するためにビデオ信号を再構成する。
【0072】
分割システムは、画像ブロックをサブブロックに分割するように構成されている。例えば、ノード(例えば、ブロック)を子ノード(例えば、サブブロック)に分割するために様々な分割モードを用いる木構造を用いることができる。異なる分割を得るために異なる分割モードを用いることができる。さらに、分割モードは、さらなる細分ノードに再帰的に適用することもできる。分割モードのそのような適用により様々な分割パターンが得られる。
【0073】
図10は、ブロック分割に用いられる例示の分割モード1000を示す。分割モード1000は、分割の間に親ノード(例えば、画像ブロック)を複数の子ノード(例えば、画像サブブロック)に分割するメカニズムである。分割モード1000は、四分木(QT)分割モード1001、垂直二分木(BT)分割モード1003、水平BT分割モード1005、垂直三分木(TT)分割モード1007及び水平TT分割モード1009を含む。QT分割モード1001はブロック分割のための木構造であり、4M×4NのサイズのノードがM×Nのサイズの4つの子ノードに分割され、Mはブロック幅を示し、Nはブロック高さを示す。垂直BT分割モード1003及び水平BT分割モード1005はブロック分割のための木構造であり、それぞれ、サイズが4M×4Nのノードがサイズが2M×4Nの2つの子ノードに垂直に分割されるか又はサイズが4M×2Nの2つの子ノードに水平に分割される。垂直TT分割モード1007及び水平TT分割モード1009はブロック分割のための木構造であり、それぞれ、サイズが4M×4NのノードがサイズがM×4N、2M×4N及びM×4Nの3つの子ノードに垂直に分割されるか又はサイズが4M×N、4M×2N及び4M×Nの3つの子ノードに水平に分割される。3つの子ノードのうち、最も大きなノードが中心に位置する。
【0074】
分割モード1000は、ブロックをさらに分割するためにも再帰的に適用され得る。例えば、QT分割モード1001でノードを分割し、次いで垂直BT分割モード1003及び/又は水平BT分割モード1005で各子ノード(場合によっては4分木葉ノードと呼ばれる)を分割することにより、4分木2分木(QT−BT)を作成できる。さらに、4分木分割されたノードを分割し、次いで、得られた子ノードを垂直TT分割モード1007及び/又は水平TT分割モード1009で分割することにより、4分木3分木(QT−TT)を作成できる。
【0075】
HEVCはジョイント探索モデル(JEV)アプリケーション上で動作する。JEMでは、符号化木ユニット(CTU)を複数のブロックに分割するためにQT―BTブロック分割が用いられる。ブロック分割の種類をさらに充実させるために、TTブロック分割をJEMに含めることが提案されている。QT、QT−BT、QT−TTブロック分割モードに基づくビデオ符号化では、深度Kにおける符号化又は予測ブロックは、BT、TT又はQT分割モードにより深度がK+1の数Nのより小さな符号化又は予測ブロックに分割されてもよく、Nはそれぞれ2、3又は4に設定される。分割モードの分割パターンを図10に示し、分割パターンは、親ノードから分割された2つ以上の子ノードのサイズ及び位置を示す。
【0076】
変換
ビデオ符号化は、メディアファイルを圧縮するためのエンコーダと、圧縮されたメディアファイルから元のメディアファイルを再構成するためのデコーダとを用いる。ビデオ符号化は、規格化されたプロセスを用いる任意のデコーダが、規格化されたプロセスを用いる任意のエンコーダによって圧縮されたメディアファイルを整合的に再生できることを確実にするために様々な規格化されたプロセスを用いる。
【0077】
例えば、エンコーダ及びデコーダの双方は、H.265としても知られる高効率ビデオ符号化方式(HEVC)等の符号化規格を用いり得る。H.265は予測及び変換フレームワークに基づく。エンコーダでは、ビデオファイルがフレームに分離される。次に、フレームは、ピクセル群を含む画像ブロックに細分される。画像ブロックは、予測モード及び動きベクトル情報等の予測情報を含む予測ブロックと、変換モード、変換係数及び量子化パラメータ等の残差情報を含む残差ブロックとにさらに分解される。予測ブロック及び残差ブロックは画像ブロックよりも少ない記憶空間を用いるが、画像ブロックを再構成するためにデコーダにより用いることができる。予測ブロック及び残差ブロックはビットストリームに符号化されデコーダに転送される及び/又は要求に応じて後で転送するために記憶される。デコーダでは、予測情報及び残差情報がパースされる。次に、パースされた予測情報は、イントラ予測又は相互予測を用いることにより予測サンプルを生成するために用いられる。イントラ予測は、同じフレーム内の他の画像ブロックを予測するために再構成された画像ブロックを用いる。相互予測は、隣接フレーム間の他の画像ブロックを予測するために再構成された画像ブロックを用いる。さらに、残差情報は、例えば、逆量子化及び逆変換を連続的に適用することにより残差サンプルを生成するのに用いられる。予測サンプル及び残差サンプルは、(例えば、エンドユーザに対してモニタ上に表示するために)エンコーダにより符号化された画像ブロックに対応する再構成されたサンプルを得るために組み合わされる。
【0078】
空間的可変変換(SVT)はビデオ符号化効率をさらに改善するために用いられるメカニズムである。SVTは残差ブロックをさらに圧縮するために変換ブロックを用いる。具体的には、矩形の残差ブロックは幅及び高さh(例えば、w×h)を含む。残差ブロックよりも小さい変換ブロックが選択される。そのため、変換ブロックは残差ブロックの対応部分を変換するために用いられ、残差ブロックの残りの部分を追加の符号化/圧縮なしで残す。SVTの背後にある理論的根拠は、残差情報が残差ブロック内で均等に分布していない可能性があるということである。適応位置を持つより小さな変換ブロックを用いることにより、残差ブロック内の残留情報の大半を、残差ブロック全体を変換する必要なしにキャプチャできる。このアプローチは、いくつかの場合において、残差ブロック内の残差情報の全てを変換するよりも良好な符号化効率が得られ得る。変換ブロックは残差ブロックよりも小さいため、SVTは残差ブロックに対する変換の位置をシグナリングするためのメカニズムを用いる。そのような位置のシグナリングは符号化プロセスの全体的なシグナリングオーバーヘッドを増加させるため、圧縮の効率を低下させる。加えて、全ての場合に同じ種類の変換ブロックを用いることは、場合によっては有益な結果をもたらさない可能性がある。
【0079】
図11は、例示のビデオ符号化メカニズム1100の概略図である。エンコーダは1つ以上のフレームから画像ブロック1101を得ることができる。例えば、画像は複数の矩形画像領域に分割され得る。画像の各領域は符号化木ユニット(CTU)に対応する。CTUは、HEVCにおける符号化ユニット等の複数のブロックに分割される。次に、ブロック分割情報はビットストリーム1111に符号化される。したがって、画像ブロック1101は画像の分割された部分であり、画像の対応部分におけるルマ成分及び/又はクロマ成分を表すピクセルを含む。符号化の間、画像ブロック1101は、イントラ予測のための予測モード及び/又は相互予測のための動きベクトル等の予測情報を含む予測ブロック1103として符号化される。次に、予測ブロック1103として画像ブロック1101を符号化することにより、予測ブロック303と画像ブロック301との間の差分を示す残差情報を含む残差ブロック1105が残され得る。
【0080】
なお、画像ブロック1101は、1つの予測ブロック1103及び1つの残差ブロック1105を含む符号化ユニットとして分割され得る。予測ブロック1103は符号化ユニットの全ての予測サンプルを含んでもよく、残差ブロック1105は、符号化ユニットの全ての残差サンプルを含んでもよい。そのような場合では、予測ブロック1103は残差ブロック1105と同じサイズである。別の例では、画像ブロック1101は、2つの予測ブロック1103及び1つの残差ブロック1105を含む符号化ユニットとして分割され得る。そのような場合では、各予測ブロック1103は符号化ユニットの予測サンプルの一部を含み、残差ブロック1105は符号化ユニットの残差サンプルの全てを含む。さらに別の例では、画像ブロック1101は、2つの予測ブロック1103及び4つの残差ブロック1105を含む符号化ユニットに分割される。符号化ユニット内の残差ブロック1105の分割パターンは、ビットストリーム1111内にシグナリングされ得る。そのような位置パターンは、HEVCにおける残差四分木(RQT)を含み得る。さらに、画像ブロック1101は、画像サンプル(又はピクセル)のY成分として示されるルマ成分(例えば、光)のみを含み得る。他の場合では、画像ブロック1101は画像サンプルのY、U及びV成分を含んでもよく、U及びVは青色輝度及び赤色輝度(UV)の色空間におけるクロミナンス成分(例えば、色)を示す。
【0081】
情報をさらに圧縮するために変換が用いられ得る。具体的には、残差ブロック1105をさらに圧縮するために変換ブロック1107が用いられ得る。変換ブロック1107は、逆離散コサイン変換(DCT)及び/又は逆離散サイン変換(DST)等の変換を含む。予測ブロック1103と画像ブロック1101との間の差分は、変換係数を用いることにより変換に適合される。変換ブロック1107の変換モード(例えば、逆DCT及び/又は逆DST)及び対応する変換係数を示すことにより、デコーダは残差ブロック1105を再構成できる。厳密な再生が要求されない場合、変換係数は、変換のためにより良好な適合を生み出すために特定の値を丸めることによりさらに圧縮できる。このプロセスは量子化として知られ、許容可能な量子化を記述する量子化パラメータに従って行われる。したがって、変換ブロック1107の変換モード、変換係数及び量子化パラメータは、場合によっては単に残差ブロックとも呼ばれ得る変換残差ブロック1109内に変換残留情報として格納される。
【0082】
そして、予測ブロック1103の予測情報及び変換残差ブロック1109の変換残差情報はビットストリーム1111に符号化できる。ビットストリーム1111は記憶及び/又はデコーダに送信できる。次に、デコーダは画像ブロック1101を回復するためにプロセスを逆に行うことができる。具体的には、デコーダは、変換ブロック1107を決定するために変換残差情報を用いることができる。次に、変換ブロック1107は、残差ブロック1105を決定するために変換残差ブロック1109と共に用いることができる。次に、残差ブロック1105及び予測ブロック1103は、画像ブロック1101を再構成するために用いることができる。そして、画像ブロック1101はフレームを再構成するために他の復号化された画像ブロック1101に対して配置され、符号化されたビデオを回復するためにそのようフレームを配置できる。
【0083】
なお、一部の予測ブロック1103は、残差ブロック1105をもたらすことなく符号化され得る。しかしながら、そのような場合は変換ブロック1107の使用がもたらされないため、さらなる説明はしない。変換ブロック1107は、相互予測ブロック又はイントラ予測ブロックのために用いられ得る。さらに、変換ブロック1107は、特定の相互予測メカニズム(例えば、並進モデルに基づく動き補償)によって生成される残差ブロック1105に対して用いられ得るが、他の特定の相互予測メカニズム(例えば、アフィンモデルに基づく動き補償)によって生成される残差ブロック1105には用いられない場合がある。
【0084】
図12は、本開示の一実施形態に係るビデオ符号化のための例示のコンピュータ装置1200の概略図である。コンピュータ装置1200は、本明細書に記載の開示された実施形態を実施するのに好適である。コンピュータ装置1200は、データを受信するための入口ポート1220及び受信機ユニット(Rx)1210;データを処理するためのプロセッサ、論理ユニット又は中央処理ユニット(CPU)1230;データを送信するための送信機ユニット(TX)1240及び出口ポート1250;データを記憶するためのメモリ1260を含む。コンピュータ装置1200は、光又は電気信号の出入りのために入口ポート1220、受信機ユニット1210、送信機ユニット1240及び出口ポート1250に連結される光/電気(OE)コンポーネント及び電気/光(EO)コンポーネントも含み得る。コンピュータ装置1200は、一部の例では無線送信機及び/又は受信機も含み得る。
【0085】
プロセッサ1230はハードウェア及びソフトウェアにより実施される。プロセッサ1230は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)及びデジタル信号プロセッサ(DSP)として実施され得る。プロセッサ1230は、入口ポート1220、受信機ユニット1210、送信機ユニット1240、出口ポート1250及びメモリ1260と通信する。プロセッサ1230は符号化モジュール1214を含む。符号化モジュール1214は上述した開示の実施形態を実施する。例えば、符号化モジュール1214は様々な符号化動作を実施、処理、準備又は提供する。したがって、符号化モジュール1214を含めることは、コンピュータ装置1200の機能に実質的な改善をもたらし、コンピュータ装置1200の異なる状態への変換をもたらす。あるいは、符号化モジュール1214は、メモリ1260に記憶され且つプロセッサ1230によって実行される命令として実施される(例えば、非一時的媒体に記憶されるコンピュータプログラム製品として)。
【0086】
メモリ1260は1つ以上のディスク、テープドライブ及びソリッドステートドライブを含み、プログラムが実行のために選択された場合にそのようなプログラムを記憶し、プログラムの実行の間に読み出される命令及びデータを記憶するオーバーフローデータ記憶装置として用いられ得る。メモリ1260は揮発性及び/又は不揮発性であってもよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)及び/又はスタティックランダムアクセスメモリ(SRAM)であり得る。コンピュータ装置1200は、エンドユーザとやりとりするための入出力(I/O)装置も含み得る。例えば、コンピュータ装置1200は、視覚出力のためのモニタ等のディスプレイ、音声出力のためのスピーカー及びユーザ入力のためのキーボード/マウス/トラックボール等を含み得る。
【0087】
図13は、点群媒体(point cloud media)を示すシステム1300の一例である。とりわけ、システム1300は点群媒体のフレームの様々な例を示す。本例は、男性1302、前向きの女性1304及び後向きの女性1306を含む。一部の実施では、システム1300はより多い又は少ない点群媒体の例を含むことができる。点群媒体は、三次元(3−D)空間におけるオブジェクト又は人の仮想表現と、それらに対応する経時的な動きを含むことができる。
【0088】
通常、点群媒体は、3−Dオブジェクトの外面の輪郭を示す、3−D空間におけるデータ点のセットを含む。例えば、オブジェクトは、人間、製造品目及び実世界のオブジェクトを含むことができる。オブジェクトは、例えばカメラによってリアルタイムに記録でき、ディスプレイ又は投影スクリーン上で三次元空間に仮想的に表現できる。点群媒体のフレームは、特定の時点におけるオブジェクトの3−D表現を含むことができる。点群媒体の連続フレームは点群媒体の動的表現を表す。
【0089】
次の頭字語の定義を説明する。グループオブフレーム(GoF)−さらなる処理のために用いられる固定の時間(fixed moment of time)に登録された点群のセット。グループオブピクチャ(GoP)−ビデオ圧縮符号化のために用いられる点群に由来する投影のセット。点群圧縮(PCC)−送信のために点群媒体を圧縮するための技術。
【0090】
ビデオベースのPCCコーデックソリューションは、3−D点群データを2−D投影パッチにセグメンテーションすることに基づく。ビデオベースのPCCは、没入型6自由度、動的AR/VRオブジェクト、文化遺産、GIS、CAD、自律ナビゲーション等のコンテンツで幅広く用いられている。
【0091】
点群媒体は、エンターテイメント産業、インテリジェント自動車ナビゲーション産業、地理空間検査、実世界のオブジェクトの3−Dモデリング及び可視化を含む広範な用途で不可欠な一部になっている。これらの用途のそれぞれにおいて、様々なクライアント装置は点群媒体を表示及び示すことができる。非一様サンプリング形状を考慮した場合、そのようなデータの記憶及び送信のためにコンパクトな表現を有することが有益である。
【0092】
例えば、クライアント装置は、製造部品のために、計測及び品質検査のために及び多数の視覚化、アニメーション、レンダリング及びマスカスタム化用途のために3−Dコンピュータアニメ描画(CAD)モデルを作成するために点群媒体を用いることができる。一部の例では、骨、腕又は脚等が占める空間の量を可視化する場合等医用画像でしばしば行われるように、点群媒体は容積データ(volumetric data)を表すのにも用いることができる。
【0093】
既存の3―D表示と比較して、人間の輪郭を描く点群面等の不規則な点群面がより一般的であり、より広範囲なセンサ及びデータ収集戦略に適用可能である。例えば、仮想現実世界での3−D表示や、テレプレゼンス環境でのリモートレンダリングの場合、仮想図形のレンダリングやリアルタイム命令は、高密度の点群データセット(dense point cloud data sets)として処理される。例えば、テレプレゼンス環境上で男性1302、前向きの女性1304及び後ろ向きの女性1306が仮想現実世界で表示される例では、これらの単一の点群フレームのそれぞれは高密度の点群データセットとして処理される。
【0094】
システム1300は、特定の時点における点群媒体のフレームにより表される異なるオブジェクトを示す。クライアント装置等のデバイスは、一定期間にわたって点群媒体の連続フレームを表示できる。一部の例では、デバイスは没入型6自由度(6DoF)環境、動的拡張現実(AR)及び仮想現実(VR)環境、文化遺産環境、地理情報システム(GIS)環境、コンピュータ支援設計(CAD)において及び自律ナビゲーションシステムにおいて点群媒体を表示できる。
【0095】
点群媒体を受信、表示及び送信可能なデバイスは、パーソナルコンピュータ、ハンドヘルドデバイス、テレビ、ナビゲーションシステム又は点群媒体を表示可能な他のデバイス等のクライアント装置を含むことができる。一部の実施では、これらのデバイスは、点群媒体を内部メモリに記憶できるか又は点群媒体を外部記憶装置に記憶できる。点群媒体の記憶には大量の記憶領域が必要になるため、通常、点群媒体は外部記憶装置に記憶され且つアクセスされる。
【0096】
クライアント装置が点群媒体をキャプチャし且つ中継するために、クライアント装置は点群媒体を記憶及び/又は送信するのに必要な帯域幅を低減するためにマルチサンプリング技術及びデータ圧縮技術に依拠する。ある場合では、点群媒体の動的表現の記憶及び送信は、点群媒体の単一フレームの純然たるサイズにより複雑である。例えば、点群媒体の単一フレームは、例えば数百ギガバイト等の大量のデータを含むことができる。そのため、点群媒体の複数のフレームを記憶すること及び送信することは、データ損失を引き起こし得る様々な媒体にわたって大量の点群媒体のフレームが適切に送信されることを確実にするために、データ圧縮及び符号化技術が必要になる。
【0097】
図14は、点群フレームシーケンスを示すシステム1400の一例である。とりわけ、システム1400は、異なるタイムスタンプにおける点群媒体のフレームシーケンスを表す動的点群媒体シーケンスを示す。例えば、システム1400は、第1のタイムスタンプに第1の点群フレーム1402を、第2のタイムスタンプに第2の点群フレーム1404を、第3のタイムスタンプに第3の点群フレーム1406を含む。第1、第2及び第3の点群フレームは、リアルタイムで見た場合に三次元環境において増分タイムスタンプで右足を前に動かす女性1400を示す動的点群シーケンスを構成する。増分タイムスタンプは、いくつかの例を挙げると秒又はマイクロ秒等の任意の単位の時間で測定できる。
【0098】
システム1400は、点群媒体1402のフレームのための境界ボックス1408、点群媒体1404の別のフレームのための境界ボックス1410及び点群媒体1406の別のフレームのための境界ボックス1412を示す。各点群媒体のための境界ボックスは、例えば、u1、v1及びd1の位置座標で表されるX次元、Y次元及びZ次元の3次元における固定グリッドを含む。
【0099】
境界ボックスは、空又はデータで満たされ得る点を含む。一部の例では、空の点はボイド点であり得る。一部の例では、占有点は1つ以上の属性を含むことができる。ボイド点は、属性を持たない点群媒体のフレーム内の位置を含むことができる。他方で、占有点は、少なくとも1つの属性を持つ点群媒体のフレーム内の位置を含むことができる。属性は、例えば、クロマ、ルマ、反射率及びカラーを含むことができる。境界ボックス内の点は特定の座標系により特定できる。例えば、点群媒体1402のフレームの境界ボックス1408内の点はu1、v1及びd1座標系により示すことができる。
【0100】
通常、クライアント装置が点群媒体の1つ以上のフレームをネットワークを介して別のクライアント装置に送信する場合、点群媒体の各フレームは符号化される。符号化は適切な送信を確実にし且つ受信先のクライアント装置で受信した場合にデータが失われないことを確実にする。しかしながら、点群媒体のフレームの符号化は、点群媒体の1フレームのサイズが数百ギガバイトを超え得るため複雑になり得る。例えば、第1の点群フレーム1402を符号化しようとするクライアント装置等のシステムは500ギガバイトのデータを符号化する必要があり得るため、そうするための時間及びリソースが浪費され得る。そのため、点群媒体の特定のフレームを符号化するために境界ボックス、例えば、境界ボックス1408に依拠する異なる符号化技術が必要になる。以下で説明するように、境界ボックス表現は、システムが点群媒体の単一フレームを圧縮フォーマットで符号化できるようにする。
【0101】
一部の実施では、点群媒体のフレームはビデオベースの点群圧縮(V―PCC)コーダを用いて符号化される。V−PCCコーダは、点群媒体のフレームを三次元パッチのセットにセグメント化することに基づいて動作する。三次元パッチは三次元の境界ボックスによって提示され、送信のために操作される。これについて以下でさらに説明する。
【0102】
図15は、三次元パッチ境界ボックスを二次元パッチ投影にする変換プロセス1500の一例である。一部の実施では、変換プロセス1500は、V−PCC符号化ソリューションを用いるV−PCCエンコーダによって行われる。
【0103】
V―PCC符号化ソリューションの間、V―PCCエンコーダは三次元境界ボックスを用いて点群媒体のフレームを符号化する。一般に、一連の点が繰り返されて境界ボックスに投影され、その後にパッチが平滑連続面基準(smoothness continuous surface criteria)の定義に基づいてセグメント化される。各パッチは特定且つ一意のインデックス及び対応する3−D座標に対応する。さらに、一致したパッチのリストは、リスト内のそれらの順序が同様であることを確実にするために存在し、このリスト内の一致したパッチは同じインデックスを有する。
【0104】
先ず、3−D点群媒体のフレームが1つ以上の三次元(3−D)パッチ境界ボックス1504等の一組の3−Dパッチ境界ボックス又はセグメンテーションにセグメント化される。3−Dパッチ境界ボックス1504は、u1、v1、d1、u1のサイズ、v1のサイズ及びd1のサイズというパラメータを含む。3−Dパッチ境界ボックス1504のパラメータは、点群3D境界ボックス1502内の3−Dパッチ境界ボックス1504のサイズ及び配置を示す。一部の実施では、システムは、フレーム内のオブジェクトをカバーするために、点群媒体のフレーム全体のために複数の3−Dパッチ境界ボックスを生成する。一部の実施では、各3−Dパッチ境界ボックスは互いに近接して配置され得る。一部の実施では、各3−Dパッチ境界ボックスは、点群3−D境界ボックス1502内のオブジェクトをカバーする場合に互いに重なり得る。
【0105】
次に、V−PCCエンコーダは、3−Dパッチ境界ボックス1504等の3−Dパッチ境界ボックスのそれぞれについて、点群3−D境界ボックス1502の側面のうちの1つとして投影面1508を定義する。V−PCCエンコーダは投影面の選択するための基準を定義する。例えば、基準は、3−Dパッチ境界ボックス1504の両側の平滑連続面基準の定義を含む。投影面は、平滑連続面基準が3−D境界ボックス1502の側面に投影される投影3−Dパッチ境界ボックス1504の領域(area)であり、投影のための各方向の間の最大の領域を含む場合に選択される。例えば、平滑連続面は、1つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭な又はブロックされたデータポイントの量が最も少ない面として定義できる。次に、V−PCCエンコーダはあらゆる方向から平滑面のそれぞれを比較して、どの方向が3−D境界ボックス1502の側面上で最も大きい領域を含み得る2−D境界ボックスを生成し得るかを決定する。
【0106】
システム1500に示すように、投影面1508は、最大領域を有するように3Dパッチ境界ボックス1504の平行投影の領域に対応する。別の言い方をすれば、V−PCCエンコーダが投影面1508と反対の側(例えば、側面1505)から3−Dパッチ境界ボックス1504を見た場合、V−PCCエンコーダは、パッチ3−D境界ボックス1504に含まれる属性ポイントが投影面1508に投影された場合に、その投影が点群3−D境界ボックス1502の他の側面に投影される際に最大の領域を呈し得ると判定し得る。点群3−D境界ボックス1502内に含まれる点群媒体のフレームは静止し、動いていないため、V−PCCエンコーダは、点群3−D境界ボックス1502の両側からの投影を分析して、どの投影が最大領域を含むか特定できる。そのため、V−PCCエンコーダは、投影面1508が、パッチ3−D境界ボックス1504からの属性の投影のために最大領域を生成し得ると判断する。したがって、投影がパッチ2−D投影境界ボックス1506内に表示される。パッチ2−D投影境界ボックス1506は境界ボックスの近位層及び遠位層(near layer and far layer)上のu及びv座標により定義される。例えば、図17は、深度画像1708及び1712の近位層1704及び遠位層1706並びに属性画像1710及び1714を示す。
【0107】
投影面、例えば投影面1508が一度選択されると、パッチ3−D境界ボックス1504に垂直な軸が描かれるため、V−PCCエンコーダは投影の方向を知っている。例えば、V−PCCエンコーダは、投影面1508に対して、点群3−D境界ボックス1502内で「n」で示される垂直又は直交する軸を描く。加えて、V−PCCエンコーダは、パッチ3−D境界ボックス1504に対して、点群3−D境界ボックス1502内で「bt」及び「t」で示される接線及び従法線の軸を生成する。V−PCCエンコーダが点群3−D境界ボックス1502内に垂直、接線及び従法線の軸を描くことに対応して、パッチ3−D境界ボックス1504上の従法線軸と直交軸との間に右側3−D座標系が生成される。
【0108】
その時点で、V−PCCエンコーダは、垂線軸「n」に沿って点群3−D境界ボックス1502の投影面1508にパッチ3−D境界ボックス1504を投影する。プロセス1500に示すように、投影の結果は点群3−D境界ボックス1502の特定の側上への2次元(2−D)投影1506である。
【0109】
一部の実施では、点群媒体のフレームの3−D投影は、点群3−D境界ボックス1502の両側に投影される。フレームが点群3−D境界ボックス1502の側面上に投影されると、2−D境界ボックスのための一組の座標を得ることができる。2−D境界ボックスのための一組の座標は、例えばu0、v0、size_u0、size_v0を含む。境界ボックス1510に示すように、V−PCCエンコーダは、境界ボックス1510内の点群の面を投影面1512上に投影する。
【0110】
図16は、3−Dから2−Dパッチ投影の結果を示すシステム1600の一例である。システム1600は、境界ボックス1602の両側に2−Dパッチ投影がされた境界ボックス1602を示す。境界ボックスの両側への投影は、システム1500に関連して説明したようにパッチの直交方向に基づく。各2−Dパッチ投影は、パッチの2−D投影の2−D座標を記述するパッチインデックス、u0、v0、size_u0及びsize_v0を含む。パッチインデックスは、対応する境界ボックス1602の特定の側に関連する特定のパッチを特定する。U0は投影面上のパッチのX座標を定義する。V0は投影面上のパッチのY座標を定義する。size_u0及びsize_v0は、パッチu0及びv0の各座標に対応する大きさをそれぞれ記述する。
【0111】
境界ボックス1602上に投影されたパッチは「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する特定のパッチに対応する。
【0112】
境界ボックス1602上に投影マップを生成することに加えて、システムはメモリにパッチ2−D及び3−Dデータを記憶する。例えば、以下に示すコードはパッチを生成し且つ2−D及び3−Dパッチデータをビデオ符号化のための補足データとして記憶するための1つの例示のソリューションを提供する。
【0113】
【表1】

ビデオ符号化のための補足情報生成
上述のコードは「パッチ」の定義;パッチ3−D情報がどのように2−Dパッチ情報に移行されるか;投影プロセス;及び再構成プロセスを示す。とりわけ、これらのフレームが2−D投影の観点からどのように解釈されるかを示す。
【0114】
加えて、フレーム内の各パッチについて、V−PCCエンコーダは投影マップを生成する。投影マップはビデオエンコーダに提供される追加のテキストファイルを含む。特定のパッチのための2−Dデータ、例えばu0、v0は投影のX座標及びY座標の左上隅に対応する。size_u0及びsize_v0は、対応するパッチの高さ及び幅に対応する。3−Dパッチ投影データでは、投影マップはX、Y及びZ軸に対応するu1、v1、d1座標を含む。とりわけ、u1、v1及びd1は投影の面のインデックス又は垂直軸に対応する投影の面に対応する。例えば、システム1600に示すように、境界ボックス1602の各側面は自体のインデックスを含む。そのため、各インデックスは特定の投影軸を表す。これに関して、u1、v1及びd1は境界ボックス1602に示すX、Y及びZ座標の再構成である。
【0115】
一部の実施では、u1、v1及びd1座標はローカル座標系に対応する。X、Y及びZ座標はグローバル座標系に対応する。例えば、垂直軸が決定された場合(投影の軸に対応)、V−PCCエンコーダは3−D空間内でZ軸と整列させるために投影の軸を回転させることができる。この時点で、V−PCCエンコーダはローカル座標系とグローバル座標系との間で変換できる。
【0116】
提案したソリューションは、ビデオ圧縮技術におけるビデオ圧縮ソリューションへの追加の入力として用いられる補助情報に基づく動き補償のための追加の動きベクトル候補も提供する。
アルゴリズム:3Dデータのための強化動き推定
1.PCCエンコーダは、パッチインデックスリスト及び対応する3d座標を提供することにより補助情報から追加の参照フレームを生成する。
2.既存のフレーム及び補助ファイルからの対応データを分析することにより、ビデオ圧縮ソリューションにおける2dドメインのためにmv候補リストに追加の動きベクトル候補が生成される。
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
3.GOPフレーム内の各フレームのためにpcMvFieldNeighbours候補を精緻化
4.GOPフレーム内の各フレームのためにmergeCandidateListを精緻化
5.ビデオベース圧縮エンジン
【0117】
図17は、点群媒体の属性セグメンテーションのためのシステム1700の一例である。各3−D点群のための2−Dパッチが投影から生成されると、一組の画像が、パッチタイルグループ内の2−Dパッチのそれぞれのために生成される。システム1700は、3−Dから2−D投影の間に深度及び属性情報が失われるため、パッチタイルグループ内の2−Dパッチのそれぞれパッチのために一組の画像を生成する。一組の画像は、投影が起こる前の点群媒体に対応する深度及び属性情報を保存するために生成される。
【0118】
一部の実施では、パッチタイルグループはパッチ1702を含む。システムは、特定のパッチ1702から2組の画像を生成する。第1の組の画像は近位層1704を含む。第2の組の画像は遠位層1712を含む。近位層1704は、深度データの画像1708及び属性データの画像1710を含む。加えて、遠位層1706は深度データの画像1712及び属性データの画像1712を含む。そのため、2−D投影の全て点は、深度情報及び属性情報、例えば、色、テクスチャ、ルマ等を有する。特定の層、例えば、近位層1704及び遠位層1706は3−D点群オブジェクトの2−D投影の両側を示す。
【0119】
図18は、属性情報を有する点群媒体のためのパッキングパッチを示すシステム1800の一例である。一部の実施では、属性情報はテクスチャ情報、深度情報、カラー情報、ルマ、反射率及びクロマ情報を含むことができる。パッケージ化されたパッチグループ1802は、点群媒体1402のフレーム等の点群媒体のフレームからの1つ以上の投影されたパッチ、2−Dフレームを示す。パッチの集合はパッチタイルグループを形成し、パッチタイルグループは点群媒体の所定のフレームに対してパッチデータグループに組み合わされる。「パッチ」と呼ばれるパッチデータグループの各要素は特定且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する。パッケージ化されたパッチ1802は符号化され、その後に送信できる。とりわけ、1つの点群フレーム内のパッチが、参照点群フレーム、例えば、先のフレーム内の対応参照パッチを有する場合、参照パッチタイルグループ内の参照パッチのインデックスがビットストリームに送信される。これについて以下でさらに説明する。
【0120】
図19は、動き推定を行うためのシステム1900の一例である。従来のビデオ圧縮ソリューションでは、動き推定プロセスを用いて、2−D投影画像、例えばパッチからのデータが推定される。システム1900はこの動き推定プロセスを示す。ブロック1902に示す符号化及び復号化ブロックはエンコーダを用いて動き推定を生成し、データ遷移チャネル又はストレージを介して動き推定を送信し、送信された動き推定をデコーダで復号化する。結果は新たなに復元されたフレームである。
【0121】
ブロック1904は動き推定プロセスの説明を示す。例えば、エンコーダは参照フレーム内の同様のパッチ画像の予測因子を生成する。参照フレームは、例えば先のフレームであり得る。一部の実施では、エンコーダは、参照フレームと現在のフレームとの間のサンプルの値を比較することにより類似性を特定する。サンプルの値は、例えば属性及び場所によって異なり得る。このプロセスは動き推定と呼ばれ、現在のフレーム内の画像に似た参照フレーム内の対応する画像を見つけることを目的とする。エンコーダは、参照フレームの隣接ピクセル内でピクセルを探索する。一致する画像が見つかった場合、エンコーダは、現在及び参照フレームから各画像を具体的に符号化することなく、より少ない量の情報を必要とする類似性を符号化する。全体的に、これは送信のための帯域幅を低減する。そのため、エンコーダは、同様の画像について現在及び先のフレームを解析する。現在のフレームと参照(先の)フレームとの間の各画像について属性及び位置情報に関連する精緻化データ(refinement data)を特定する。次いで、エンコーダは、現在のフレーム及び将来の予測フレームについて精緻化データを符号化する。これは、通常、2−Dモーションビデオ又は2−D画像を送信するために用いられる。
【0122】
パッチパッキング法の詳細により、各点群媒体についての投影フレーム内のパッチの位置は大きく異なり得る。そのため、異なるフレーム間で、パッチは、ある位置から別の位置に、例えば3−D境界ボックスの異なる側にわたってジャンプできる。そのため、2−Dモーションビデオ又は2−D画像のために典型的に用いられる相互予測符号化アルゴリズムにおけるパッチングの位置を用いる予測動き推定は満たすことができないため、適切に符号化及び送信されない。したがって、ブロック1902及び1904は有用であるが、パッチデータグループを用いて動き推定データを送信するために強化を必要とする。したがって、以下で説明する技術は、動きベクトル候補リストに補助情報を加えることにより、2−Dパッチデータのための動き推定を用いる予測の使用を強化する。
【0123】
送信すべき2−Dパッチ間の時間的予測の場合、送信の間に最大圧縮効率を確実にするために、有効な動きベクトル候補が同様のパッチのために供給される。既存の動きベクトル候補リスト構築法は、以下にさらに説明するように、既存の候補を置き換えるか又はパッチ補助情報から生成される追加の候補を導入することにより改善され得る。
【0124】
一部の実施では、フレーム内の特定のパッチは、パッチメタデータにより点群媒体内の3−D座標に接続される特定の2−D座標を有する。パッチデータ(「補助情報」ともいう)は、パッチの対応する3−D位置及び2−D面上の関連する投影位置に基づく。一部の実施では、補助情報又はパッチメタデータは、パッチインデックス、u0、v0、u1、v1及びd1を含むことができる。u0及びv0は、2−D投影のパッチの左上隅に対応する。u1、v1及びd1は、3−Dドメイン内のX、Y及びZ座標を表す。そのため、u0及びv0の座標は、u1、v1、及びd1座標に接続される。接続は、u1、v1、d1座標とu0、v0座標との数学的関係に基づく。2−D及び3−D座標間のこの接続は、動きベクトル候補の生成、ベクトル候補リストの更新及び動きベクトル探索プロセスの更新のために用いることができる。
【0125】
図20は、現在のフレームのパッチと参照フレームのパッチとの間の動きベクトル候補を示すシステムの一例である。クライアント装置のエンコーダ、例えばV−PCCエンコーダは、先に符号化された参照フレームに対して現在のパッチフレームを解析する。エンコーダは先に符号化された参照フレームを最初に符号化してそれを現在のフレームと比較しなければならない。次に、エンコーダは、予測因子ユニット(PU)と呼ばれる1つ以上の小さなブロックに現在のパッチフレームを与える。各PUに記憶される情報の量は大きいことから、送信する際の情報量を減らすためにエンコーダは差分符号化方法に依存する。エンコーダは残差フレームを生成する。例えば、(参照フレームのパッチに属する)予測因子ユニットPUは、残差フレームを生成するために、(現在のフレームに属する)現在のPUから差し引かれる(例えば、現在のPU−予測因子ユニットPU)。その後、エンコーダは送信のために用いられる残差フレームのみを符号化する。例えば、下記のコードはこのプロセスを記述する。
1.現在のフレームをN個のPUブロックに分割
2.現在の補助フレームからPU_pred候補リストを生成
3.i=0〜N−1の場合
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])
上記のコードは、レート歪み問題最小化に基づくモード選択の符号化のためのプロセスを記述する。一部の実施では、エンコーダは、先に符号化された参照フレーム内の予測因子ユニットPUを探索し、残差を符号化するために必要なビットの量に関して、値を現在のPUに一致するための探索を行う。予測因子ユニットPUを選択するためのプロセスはレート歪み最小化問題を含み、レートは符号化された残差のビットサイズに対応し、歪みは、残差の原点からの距離に対応する残差のL2ノルムに対応する。次に、エンコーダは残差情報及び対応する変位情報を符号化し、これが動きベクトルになる。しかしながら、この実施には点群媒体を符号化し且つ送信する場合に強化が必要となる。
【0126】
エンコーダは、パッチデータに含まれる追加の補助情報を見直すことにより強化される。現在のフレームの場合、補助情報は現在の2−Dパッチ及び対応する3−D点群から生成される。参照フレームの場合、補助情報は先に符号化された参照2−Dパッチ及び対応する3−D点群から生成される。エンコーダは、現在のフレームのパッチからの補助情報、例えばu0、v0、u1、v1及びd1を、参照フレームのパッチからの補助情報、例えばu0、v0、u1、v1及びd1とを比較することによりブロック位置を予測できる。この比較により、それらの補助的な情報に基づくパッチ間の距離がもたらされる。
【0127】
一部の実施では、エンコーダは先ず3−D差分を決定する。3−D差分は、CUの開始ピクセルの3−D位置が異なり得るため、現在の補助情報フレームと参照補助情報フレームとの間の3−D差分に対応する。方程式は以下を含む。
【0128】
【数1】
次に、エンコーダは2−D差分を算出する。2―D差分は、占有ブロック解像度(occupancy
block
resolution)(OBR)を考慮して、現在の補助情報フレームと参照補助情報フレームとの間の2―D差分に対応する。OBRは、パッチ投影サイズに対するパッチデータグループ内の座標のスケールに対応する。例えば、パッチ幅は、OBRを乗じたパッチ投影サイズに等しい。次に、エンコーダは、2−Dドメイン内に動きベクトルを生成する。方適式は以下を含む。
【0129】
【数2】
最終的に導出された動きベクトルは、これら2つ動きベクトル成分の組み合わせである。例えば、最終的に導出された動きベクトルは以下に対応する。
【0130】
【数3】
非標準的なソリューション(non-normative solution)では、動きベクトル(MV)を探索範囲の中心の候補として推定される。導出された推定MVを候補として加えた後、エンコーダは、RDOを用いて分割2N×2Nから予測MV、ゼロMV、推定MV及びMVを選択して探索範囲の中心を決定する。推定MVが最小レート歪(R−D)コストを有する場合、それがビデオ圧縮のために用いられる。
【0131】
図21は、マージ候補リスト構築のための導出プロセス2100を示す。一部の実施では、予測ユニットがマージモードを用いて予測される場合、マージ候補リスト内のエントリを指すインデックスがビットストリームからパースされ、動き情報を読み出すために用いられる。このリストの構築はHEVC規格で規定されており、以下の一連のステップに従って要約できる。
ステップ1:初期候補の導出
ステップ1.1:空間的候補の導出
ステップ1.2:空間候補のための冗長性チェック
ステップ1.3:時間的候補の導出
ステップ2:追加候補の挿入
ステップ2.1:双方向予測候補の作成
ステップ2.2:ゼロ動き候補の挿入
これらのステップも図21に概略的に示される。空間的マージ候補の導出の場合、5つの異なる位置に位置する候補の中から最大で4つのマージ候補が選択される。時間的マージ候補導出の場合、2つの候補の中から最大で1つのマージ候補が選択される。各予測ユニットの候補の定数がデコーダで仮定されるため、スライスヘッダにシグナリングされるマージ候補の最大数(MaxNumMergeCand)に候補の数が達しない場合に追加候補が生成される。候補の数は一定であるため、トランケートユーナリ符号化(TU)を用いて最良のマージ候補のインデックスが符号化される。CUのサイズが8に等しい場合、現在のCUの全てのPUは単一のマージ候補リストを共有し、これは2N×2N予測ユニットのマージ候補リストと同一である。
【0132】
以下では、上述のステップに関連する動作を詳述する。
【0133】
図22は、空間的マージ候補の冗長性チェックのために考慮される、空間的マージ候補及び候補対の位置のシステム2200を示す。空間的マージ候補の導出では、図22に示す位置に位置する候補の中から最大で4つのマージ候補が選択される。導出の順序はA、B、B、A及びBである。位置Bは、位置A、B、B、AのいずれのPUも利用できない場合(例えば、それが別のスライス又はタイルに属するため)又はイントラ符号化されている場合にのみ考慮される。位置Aにある候補が追加された後、残りの候補の追加は冗長性チェックの対象となり、これにより同じ動き情報を持つ候補がリストから除外され、符号化効率が改善されることが保証される。計算の複雑性を低減するために、前述の冗長性チェックでは可能性のある全ての候補対が考慮されているわけではない。その代わりに、図22において矢印でリンクされた対のみが考慮され、冗長性チェックに用いられる対応する候補が同じ動き情報を持たない場合にのみ候補がリストに加えられる。重複動き情報の別のソースは、2N×2Nとは異なるパーティションに関連する「第2のPU」である。一例として、図22は、それぞれ、N×2N及び2N×Nの場合の第2のPUをそれぞれ示す。現在のPUがN×2Nとして分割されている場合、位置Aにおける候補はリスト構築のために考慮されない。実際、この候補を加えることによって、同じ動きの情報を持つ2つの予測ユニットが得られる。これは、符号化ユニットに1つのPUを持つだけで冗長である。同様に、現在のPUが2N×Nとして分割されている場合、位置Bは考慮されない。
【0134】
図23は、N×2N及び2N×Nパーティションの第2のPUのための位置を示すシステム2300を示す。とりわけ、システム2300は時間的候補導出プロセスを記述する。このステップでは、1つの候補のみがリストに加えられる。とりわけ、この時間的マージ候補の導出では、所与の参照ピクチャリスト内の現在のピクチャとのPOC差分が最小のピクチャに属する同一位置にある(co-located)PUに基づいてスケーリングされた動きベクトルが導出される。同一位置にあるPUの導出に用いられる参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補のためのスケーリングされた動きベクトルは、図24(システム2400)で点線によって示すように得られ、これは、POC距離、tb及びtdを用いて同一位置にあるPUの動きベクトルからスケーリングされており、ここで、tbは、現在のピクチャの参照ピクチャと現在のピクチャとの間のPOC差分として定義され、tdは同一位置にあるピクチャの参照ピクチャと、同一位置にあるピクチャとの間のPOC差分として定義される。時間的マージ候補の参照ピクチャインデックスはゼロに設定される。B−スライスの場合、2つの動きベクトル(一方は参照ピクチャリスト0のためのものであり、他方は参照ピクチャリスト1のためのもの)が得られ、組み合わされて双方向予測マージ候補が作成される。
【0135】
図25は、時間的マージ候補の候補位置を示すシステム2500である。参照フレームに属する同一位置にあるPU(Y)では、システム2500に示すように、時間的候補のための位置が候補C及びCの間で選択される。Cの位置にあるPUが利用可能でないか、イントラ符号化されているか又は現在のCTUの外にある場合には位置Cが用いられる。それ以外の場合では位置Cが時間的マージ候補の導出に用いられる。
【0136】
空間−時間的マージ候補の他に、複合双方向予測マージ候補(combined bi-predictive merge candidate)及びゼロマージ候補の2つのさらなる種類のマージ候補が存在する。複合双方向予測マージ候補は空間−時間的マージ候補を利用することにより生成される。複合双方向予測マージ候補はB−スライスのみに用いられる。複合双方向予測候補は、初期候補の第1の参照ピクチャリスト動きパラメータと、別の候補の第2の参照ピクチャリスト動きパラメータとを組み合わせることにより生成される。これらの2つのタプルが異なる動き仮説を提供する場合、それらは新たな双方向予測候補を形成する。一例として、システム2500は、mvL0及びrefIdxL0又はmvL1及びrefIdxL1を有する(左側の)元のリスト内の2つの候補が、(右側の)最終リストに加えられた複合双方向予測マージ候補を作成するために用いられる場合を示す。これらの追加のマージ候補を生成すると考えられる組み合わせに関する数多くの規則が存在する。
【0137】
図26は、複合双方向予測マージ候補の例示の表2600を示す。マージ候補リストの残りのエントリを埋めるためにゼロ動き候補が挿入されるため、MaxNumMergeCand容量に達している。これらの候補はゼロ空間変位と、ゼロから始まり、新たなゼロ動き候補がリストに追加される毎に増加する参照ピクチャインデックスとを有する。これらの候補によって用いられる参照フレームの数は、一方向及び双方向予測の場合にそれぞれ1及び2である。最後に、これらの候補に対しては冗長性チェックが行われない。
【0138】
図27は、補助データを用いた動き推定パイプラインの変更を含むシステム2700の一例である。システム2700は、システム1900におけるコンポーネント1902に示される動き推定パイプラインのエンコーダ部分に対する追加のコンポーネントを示す。例えば、システム2700は補助フレーム2702(パッチフレームデータユニット又はパッチフレームデータグループとも呼ばれる)を含む。システム2700は、新たなフレーム2704、動き推定コンポーネント2706、動きエントロピーコーダ2708、動き補償補間2710、減算モジュール2712、残差エンコーダ2714、残差デコーダ2716及び加算器2718も含む。
【0139】
動き推定コンポーネント2706は、残差デコーダ2716及び加算器2718から、補助フレーム2702、新たなフレーム2704及び先に符号化された(現在復号化されている)残差フレームを受信する。
【0140】
一部の実施では、動き推定コンポーネント2706が、フレームのためのパッチデータを含む新たなフレーム2704を受信すると、動き推定コンポーネント2706は、auxフレーム2702内のパッチに関連する3−D座標を比較する。これは、各auxフレーム2702は、パッチデータの2−D座標と境界ボックス内の点群媒体の3−D座標との間の転移を説明する自身のパッチメタデータ(又は補助データ)を含むからである。とりわけ、動き推定2706は、auxフレーム2702内のパッチメタデータを用いて参照フレームを生成する。次に、現在のフレーム、例えば新たなフレーム2704からの現在の3−D情報及び先のフレーム、例えば参照フレームからの3−D情報を用いてパッチの位置を特定できる。例えば、動き推定2706は、新たなフレーム2704内のこのパッチは参照フレーム内の別のパッチと同じ3−D座標内の位置から生じると特定でき、参照フレーム内のパッチは新たなフレーム2704内の異なる2−D位置に位置する。
【0141】
次に、動き推定コンポーネント2706は新たなフレーム2704内の各パッチに対してこのプロセスを実行し、2−D情報を取り出して対応する3−D情報を得る。動き推定コンポーネント2706は、auxフレーム2702内のパッチのための2−D情報を取得する。動き推定コンポーネント2706は、新たなフレーム2704内のパッチの2−D情報及びauxフレーム2702内のパッチの2−D情報を用いて、例えば、新たなフレーム2704からのパッチのu0及びv0位置座標をauxフレーム2702内のパッチのu0及びv0位置座標と比較することにより、これらの2つのパッチ間の2―D距離を求め、その後にパッチがどのようにしてauxフレーム2702内のその位置から新たなフレーム2704内の位置に2−Dで移動したかを特定できる。auxフレーム2702内のパッチのu0、v0と新たなフレーム2704内のパッチのu0、v0との間のこの差分は動きベクトル候補に対応する。動き推定コンポーネント2706は、この生成された動きベクトル候補を動きベクトル候補リストに挿入する。動き推定コンポーネント2706は、新たなフレーム2704内の各パッチをauxフレーム2702内の各パッチと比較するこのプロセスを行う。一致が起きた場合、これらの一致したパッチ間の2−D座標間の差分が動きベクトル候補リストに加えられる。
【0142】
一部の実施では、動きベクトル候補が動きベクトル候補リストに追加されると、3−D座標リスト内のパッチに対して3−D動き探索が行われる。
【0143】
一部の実施では、エンコーダはフィールドネイバーの(field neighbor’s)候補リストを含む。フィールドネイバーの候補リストは、2−D画像内の動きを見直すための可能な位置を含むことができる。動き推定コンポーネント2706は、各パッチフレームのためにフィールドネイバー候補リスト内の位置を精緻化できる。
【0144】
補助情報を用いて参照フレーム内で一致するパッチを探すプロセスを下記のコードに示す。例えば、既存のパッチを用いて、補助3−D情報ファイルからの2−D及び3−D情報は、参照フレームのための点群圧縮ソリューションバッファから生成される。例えば、コードは下記を含む。
【0145】
【表2】
上述のコードでは、V−PCCエンコーダはビデオエンコーダのために参照フレーム内の一致したパッチを探索する。V−PCCエンコーダは、各フレーム内のパッチに対応する同じ2−D及び3−D情報並びに図16に関して説明した投影情報を用いる。このステップでは、V―PCCエンコーダは、動き精密化のために新たな候補を生成する。このアルゴリズムは次のように実行される。V−PCCエンコーダがフレームグループ内の各フレームをループする。V−PCCエンコーダは、特定の参照フレームからのパッチリストからパッチを取り出す。その後、V−PCCエンコーダは、現在のフレームから特定のパッチを取り出す。
【0146】
V―PCCエンコーダは、動きベクトル候補に基づいてレート歪最適化におけるコストを推定する。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小量のコストに対応する。とりわけ、最小量のコストは、X差分、Y差分及びZ差分の2乗値の合計に対応する。例えば、参照フレーム内のパッチのX座標が現在のフレーム内のパッチのX座標から減算されてX差分(「Xdif」)が生成され、参照フレーム内のパッチのY座標が現在のフレーム内のパッチのY座標から減算されてY差分(「Ydif」)が生成され、参照フレーム内のパッチのZ座標が現在のフレーム内のパッチのZ座標から減算されてZ差分(「Zdif」)が生成される。次に、PCCエンコーダは、参照フレーム内のパッチと現在のフレーム内のパッチとの間の特定の距離を生成するために、Xdif、Ydif及びZdifの2乗を合計する。
【0147】
レート歪み最適化におけるコストを推定するこのプロセスは、最小コスト又は距離が見つかるまで繰り返される。最小コスト又は距離が見つかった場合、pcMvFieldNeighbors変数は、X座標、Y座標及び参照フレームからのパッチに関連する正しいパッチに対応する最小コスト値で更新される。
【0148】
次に、V―PCCエンコーダは、精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための3−D情報と、投影画像内の対応する2−Dパッチ位置とに基づいて更新される。加えて、マージ候補リストは、パッチのための3−D情報と、投影画像内の対応する2−D位置とに基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する2−Dパッチを受信した場合にV−PCCエンコーダによって生成される。動きベクトル候補リストは、「ビデオ符号化のための補助情報生成」コードセットにしたがって生成される。V−PCCエンコーダ及びV−PCCデコーダの双方は、動きベクトル候補リストを生成するために「ビデオ符号化のための補助情報生成」を行う。そのため、V−PCCエンコーダとV−PCCデコーダとの間で送信すべき追加の動きベクトル候補リストや他の情報が必要とされない。
【0149】
一部の実施では、点群符号化ビットストリームから補助情報ファイルが生成される。点群符号化ビットストリームを以下にさらに説明及び図示する。補助情報は、V―PCCエンコーダ及びV―PCCデコーダが同じ結果を生成することを確実するために双方が同じ方法を用いるV―PCCエンコーダ及びV―PCCデコーダの双方で新たな動きベクトル候補を生成するために用いられる。補助情報を用いることにより、V―PCCエンコーダ及びV―PCCデコーダは新たな動きベクトル候補及びマージ候補リスト入力を生成した。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化/復号化技術に提供される。
【0150】
図28は、V−PCCユニットペイロードを表すパケットストリーム2800の一例である。パケットストリーム2800はV−PCCビットストリーム2802を含む。V−PCCビットストリーム2802は1つ以上のV−PCCユニットを含む。例えば、V−PCCユニット2804はV−PCCユニットヘッダ2806及びV−PCCユニットペイロード2808を含む。V−PCCユニットペイロード2808は、シーケンスパラメータセット2810、パッチデータグループ2812、占有ビデオデータ2814、幾何学的ビデオデータ2818及び属性ビデオデータ2816を含む。占有ビデオデータ2814は2−Dフレームデータを含む。属性ビデオデータ2816は2つの2−Dフレームのセット、例えば近位層及び遠位層を含む。幾何学的ビデオデータ2818も2つの2−Dフレームのセット、例えば近位層及び遠位層を含む。
【0151】
パッチデータグループユニットタイプは複数のデータセットを含む。例えば、パッチデータグループユニットタイプ2812は、シーケンスパラメータセット2820、フレーム幾何学的パラメータセット2822、幾何学的パッチパラメータセット2824、フレームパラメータセット2826、フレーム属性パラメータセット及び属性パッチパラメータセット2830を含む。加えて、パッチデータグループユニットタイプ2812は複数のパッチタイルグループ2832を含む。上述したように、パッチタイルグループは複数のパッチを含む。例えば、パッチデータグループは、T(i、0)〜T(i、m)のパッチタイルグループのセットを含む。情報は、V−PCCユニットペイロードの占有、属性及び幾何学的コンポーネントから点群フレームを再構成するために必要なものである。「I」は3−DのPCCフレーム「I」に対応するパッチデータグループインデックスである。「M+1」は3−D点群フレーム「I」のために生成される3−Dパッチの数であり、本明細書ではT(i、j)をパッチと呼ぶ。
【0152】
図29は、V−PCCユニットペイロードの視覚的表現2900の別の例である。V−PCCユニットペイロードの視覚的表現2900に示すように、矢印は、参照フレーム/データユニットから現在のデータユニットへの予測フローを表す。近位層と遠位層の間の予測は、データの同じV−PCCフレーム内でのみ可能である。例えば、視覚的表現2900は3−D点群、パッチデータグループ、近位及び遠位層の幾何学的ビデオデータ、近位及び遠位層の属性ビデオデータ及び占有ビデオデータを示す。
【0153】
図30は、3D補助データを用いて動き推定を行うためのプロセス3000の一例を示すフロー図である。プロセス3000は、図27に示すコンポーネントを含むV−PCCエンコーダ又はV−PCCデコーダによって行われ得る。
【0154】
V−PCCエンコーダは、三次元点群データの連続性データに基づいて、記録された媒体の三次元点群データのセグメンテーションを生成する(3002)。V−PCCエンコーダは、三次元(3−D)点群データを、3−Dパッチ境界ボックス1504等の一組の3−Dパッチ境界ボックス又はセグメンテーションにセグメント化する。3−D点群データのフレーム内のオブジェクトをカバーするために、3−D点群データの全体に対して複数のセグメンテーションが生成され得る。各セグメンテーション又は3−Dパッチ境界ボックスは、オブジェクトを3−D点群データでカバーする場合互いに近接して配置され得るか又は互いに重なり合い得る。
【0155】
V−PCCエンコーダは、セグメント化された三次元点群データの表現を三次元境界ボックスの1つ以上の側面に投影し、セグメント化された三次元点群データの表現は、三次元境界ボックスの投影された側に基づいて異なる(3004)。V−PCCは、図16に示す結果のように、3−D点群データの画像を3−D境界ボックスの両側に投影するために3−D点群データを3−D境界ボックスで囲む。一部の実施では、V−PCCエンコーダは、3−D境界ボックスの側面上の投影面を選択するための基準を定義する。例えば、基準は平滑連続面基準を含むことができる。そのため、平滑連続面基準が、投影の各方向の中で最大領域となる境界ボックスの側面上のセグメンテーションの投影領域を含む場合に特定の投影面が選択される。平滑連続面は、1つ以上の平滑連続アルゴリズムを用いることにより決定できる。平滑連続面は、不明瞭又はブロックされたデータポイントが最も少ない表面として定義できる。次に、V−PCCエンコーダは、あらゆる方向から平滑面のそれぞれを比較して、どの方向が3−D境界ボックスの側面に最大領域を含み得る投影を生成し得るかを判定する。特定の投影面が選択された場合、V−PCCエンコーダは、3−D点群データの特定の面を3−D境界ボックスの特定の投影面に投影する。一部の実施では、V−PCCエンコーダは3−D点群データの様々な面を3−D境界ボックスの両側に投影する。
【0156】
V−PCCエンコーダは、セグメント化された三次元点群データの投影表現に基づいて1つ以上のパッチを生成する(3006)。画像が3−D境界ボックスの側面に投影されると、V−PCCエンコーダは各投影からパッチを生成する。3−D境界ボックスの側面の2−D境界ボックスに対応する各パッチは一組の座標を含む。パッチは3−D境界ボックスの側面の投影の領域に対応する。パッチのための座標は、例えばパッチインデックス、u0、v0、size_u0及びsize_v0を含む。パッチインデックスは、対応する境界ボックスの特定の側面に関連する特定のパッチを特定する。U0は投影面上のパッチのX座標を定義する。V0は投影平面上のパッチのY座標を定義する。size_u0及びsize_v0は、パッチu0及びv0の各座標に対応する大きさをそれぞれ記述する。
【0157】
一部の実施では、V−PCCエンコーダは3−D境界ボックスの各側面からのパッチとそれらに対応する座標情報とを組み合わせて「パッチタイルグループ」を形成する。パッチタイルグループの各要素は特定の且つ一意のインデックスを含み、3−D点群フレーム内の一意の3−D境界ボックスに対応する特定のパッチに対応する。例えば、パッケージ化されたパッチ1802は、パッチデータグループとして知られるパッチタイルグループの群を含む。
【0158】
パッチデータグループ内の各パッチの座標情報は投影マップに含まれる。投影マップは、後でV−PCCエンコーダによってビデオ符号化ソリューションに提供される追加ファイルである。投影マップは各パッチのための2−D及び3−D位置情報を含む。特定のパッチのための2−Dデータ、例えばu0、v0は、投影のX及びY座標の左上隅に対応する。size_u0及びsize_v0は、対応するパッチの高さ及び幅に対応する。3−Dパッチ投影データの場合、投影マップはX、Y及びZ軸に対応するu1、v1、d1座標を含む。とりわけ、u1、v1及びd1は投影の面のインデックス又は法線軸に対応する投影の面に対応する。
【0159】
V−PCCエンコーダは、1つ以上のパッチの第1のフレームを生成する(3008)。V−PCCエンコーダは、3006から生成されたパッチデータグループのフレームを生成する。フレームは符号化され、送信のためにビデオ圧縮ソリューションに提供できる。
【0160】
V−PCCエンコーダは第1のフレームのために第1の補助情報を生成する(3010)。第1の補助情報は、第1のフレーム内の特定のパッチのためのパッチメタデータに対応する。例えば、第1の補助情報は、特定のパッチのためのパッチインデックス、u0、v0、u1、v1及びd1を含むことができる。
【0161】
V−PCCエンコーダは、参照フレームのための第2の補助情報を生成する(3012)。V−PCCエンコーダは、1つ以上のパッチを含む先に符号化されたフレームである参照フレームを検索する。V−PCCエンコーダは参照フレームを復号化した後に参照フレームからパッチを取り出し、参照フレームからそのパッチに関連する補助情報を取り出す。参照フレームからのパッチに関連する補助情報は特定のパッチのためのパッチインデックス、u0、v0、u1、v1及びd1を含む。
【0162】
V−PCCエンコーダは、第1の補助情報及び第2の補助情報に基づいて、参照フレームからの第2のパッチに一致する第1のフレームからの第1のパッチを特定する(3014)。V−PCCは、第1のフレームに関連する補助情報を参照からのパッチに関連する補助情報と比較する。例えば、V−PCCは、各パッチに関連するパッチインデックス、u0、v0、v1及びd1を比較してこの情報間の距離を求める。V−PCCエンコーダは第1のフレームからのパッチを参照フレームからの各パッチと比較して、補助情報距離が最小の一致するパッチを見つける。距離が最小であると、V−PCCエンコーダは2つのパッチ間の一致するパッチを示す。
【0163】
V−PCCエンコーダは、第1の補助情報と第2の補助情報との差分に基づいて、第1のパッチと第2のパッチとの間で動きベクトル候補を生成する(3016)。動きベクトル候補は、それらの対応する補助情報間の差分が他のパッチと比較して最小である場合に、第1のパッチと第2のパッチとの間で生成される。動きベクトル候補は送信のために用いられる動きベクトル候補のリストに追加される。差分は、レート歪み最適化における推定コストに基づき得る。レート歪み最適化関数における推定コストによって返されるコスト又は距離、例えばメトリック又はベクトル空間におけるメトリック距離は、動きベクトル候補リストからの最小コストに対応する。最小コスト又は距離が見つかった場合、pcMvFieldNeighbors変数は、X座標、Y座標及び参照フレームからのパッチに関連する正確なパッチに対応する最小のコスト値で更新される。
【0164】
V−PCCエンコーダは、動きベクトル候補を用いて動き補償を行う(3018)。次に、V―PCCエンコーダは精密化された動きベクトル候補及びマージ候補に基づいて動き補償を行う。一部の実施では、マージ候補のリストから新たなエンティティが生成される。このエンティティは、動き推定のためのより良い予測を見つけるために、動き推定を行うための予測因子として用いられる。例えば、動きベクトル候補リストは、パッチのための3−D情報及び投影画像内の対応する2−Dパッチ位置に基づいて更新される。加えて、マージ候補リストはパッチのための3−D情報及び投影画像内の対応する2−D位置に基づいて更新できる。そのため、この情報はビデオ圧縮及び解凍に追加される。この情報は、補助情報に基づいてビデオエンコーダのために作成され、同じ情報がビデオデコーダのために作成される。動きベクトル候補リストは送信又は計算されず、むしろパッチメタデータを有する2−Dパッチを受信した場合にV−PCCエンコーダにより生成される。動きベクトル候補リストは、「ビデオ符号化のための補足情報生成」コードセットに従って生成される。次に、新たな動きベクトル候補及びマージ候補リストが既存のビデオ符号化/復号化技術に提供される。
【0165】
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間の線、トレース又は別の媒体を除いて、介在するコンポーネントが存在しない場合は第2のコンポーネントに直接連結される。第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間に線、トレース又は他の媒体以外に介在するコンポーネントが存在する場合は間接的に第2のコンポーネントに連結される。「連結される」という用語及びその変形は直接連結及び間接連結の双方を含む。「約」という用の使用は、特段規定がない限り、後続の数字の±10%を含む範囲を意味する。
【0166】
本開示ではいくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく多くの他の特定の形態で実施され得ることが理解され得る。本実施例は例示的なものであって限定的ではないと考えるべきできあり、本明細書で与えられた詳細に限定することを意図していない。例えば、様々な要素又はコンポーネントは他のシステムと組み合わされるか又は統合してもよく又は特定の特徴は省略され得るか又は実施されなくてもよい。
【0167】
加えて、様々な実施形態で個別又は別個のものとして説明及び図示した技術、システム、サブシステム及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、技術又は方法と組み合わされ得るか又は統合され得る。変更、置換及び改変の他の例は当業者によって確認可能であり、本明細書に開示の精神及び範囲から逸脱することなく行われ得る。
【0168】
本明細書に記載の本発明の実施形態及び機能動作の全てはデジタル電子回路で又は本明細書に開示の構造及びそれらの構造的等価物又はそれらの1つ以上の組み合わせを含む、コンピュータソフトウェア、ファームウェア又はハードウェアで実施され得る。本発明の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又は動作を制御するためにコンピュータ読み取り可能媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施され得る。コンピュータ読み取り可能媒体は非一時的なコンピュータ読み取り可能記憶媒体、機械読み取り可能記憶装置、機械読み取り可能記憶基板、記憶装置、機械読み取り可能伝搬信号に影響を与える物質の組成又はそれらの1つ以上の組み合わせであり得る。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための装置、デバイス及び機械の全てを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの1つ以上の組み合わせを構成するコードを含み得る。伝搬される信号は人工的に生成される信号、例えば、好適な受信器装置に送信するための情報を符号化するために生成される機械生成電気、光学又は電磁信号である。
【0169】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル又は解釈された言語を含む任意の形態のプログラミング言語で書かれていてもよく、スタンドアローンプログラムとして又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境での使用に適した他のユニットとしての形態を含む任意の形態で配備され得る。コンピュータプログラムは必ずしもファイルシステム内のファイルに対応していない。プログラムは、他のプログラム又はデータ(例えば、マークアップ言語文書に記憶される1つ以上のスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一ファイルに又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム又はコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で又は1つのサイトに位置するか又は複数のサイトで分散されて通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように配備され得る。
【0170】
本明細書に記載のプロセス及び論理フローは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されて、入力データ上で動作し且つ出力を生成することにより機能を行い得る。プロセス及び論理フローは、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)等の専用論理回路により行われてもいいし又は装置は専用論理回路として実施されてもよい。
【0171】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用及び専用マイクロプロセッサの双方及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はその双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータは、例えば、磁気、光磁気ディスク又は光ディスクといったデータを記憶するための1つ以上の大容量記憶装置を含むか又はデータを受信し又はデータを送信するために動作可能に結合されるか又はその両方である。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータは、他の装置、例えば、いくつかの例を挙げると、タブレットコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤ、グローバルポジショニングシステム(GPS)レシーバに埋め込まれ得る。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能媒体は、例えば、EPROM、EEPROM及びフラッシュメモリデバイス等の半導体メモリデバイス;磁気ディスク、例えば内部ハードディスク又はリムーバブルディスク;光磁気ディスク;CD−ROM及びDVD−ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補完されてもよいし、内蔵されてもよい。
【0172】
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えばCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供し得るキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実施され得る。ユーザとの対話を提供するために他の種類の装置を用いてもよく、例えばユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック又は触覚フィードバックであってもよく、ユーザからの入力は音響入力、音声入力又は触覚入力を含む任意の形態で受信され得る。
【0173】
本発明の実施形態は、バックエンドコンポーネント、例えばデータサーバを含むか又はミドルウェアコンポーネント、例えばアプリケーションサーバを含むか又はフロントエンドコンポーネント、例えばユーザが本発明の実施とやりとりし得るグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むか又はそのような1つ以上のバックエンド、ミドルウェア又はフロントエンドコンポーネントの任意の組み合わせを含むコンピュータシステムで実施され得る。システムのコンポーネントは任意の形態又は媒体のデジタルデータ通信、例えば通信ネットワークにより相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、例えばインターネットを含む。
【0174】
コンピュータシステムはクライアント及びサーバを含み得る。クライアント及びサーバは概して互いに離れており、通信ネットワークを介して通常対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバの関係を有するコンピュータプログラムのおかげで生じる。
【0175】
いくつかの実施を上記で詳細に説明してきたが、他の変更も可能である。例えば、デリゲートにアクセスするものとしてクライアントアプリケーションを説明したが、他の実施では、デリゲートは1つ以上のサーバ上で実行するアプリケーション等の1つ以上のプロセッサにより実施される他のアプリケーションにより用いられ得る。加えて、図面に示す論理フローは、所望の結果を得るために図示の特定の順序又は順番を必要としない。加えて、他のアクションが提供され得るか又は記載されたフローからアクションが除去されてもよく、他のコンポーネントが記載されたシステムに追加され得るか又は取り除かれ得る。したがって、他の実施は下記の特許請求の範囲内にある。
【0176】
本明細書は、多くの特定の実施の詳細を含むが、これらはいずれかの発明又はクレームされ得るものの範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈すべきである。別々の実施形態の文脈で本明細書に記載の特定の特徴は、組み合わされて単一の実施形態で実施することもできる。反対に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態で別々に又は任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は特定の組み合わせで作用するものとして上述され、そのように当初クレームされ得るが、クレームされた組み合わせからの1つ以上の特徴は、場合によっては組み合わせから切り出すことができ、クレームされた組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に向けられ得る。
【0177】
同様に、動作を特定の順序で図面に記載しているが、これは、所望の結果を得るためにそのような動作を図示の特定の順序で又は順番で行うこと又は記載された動作の全てを行うことを必要すると理解すべきではない。特定の状況下では、マルチタスク及び並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムモジュール及びコンポーネントの分離は、全ての実施形態でそのような分離を必要とするものと理解すべきではなく、記載のプログラムコンポーネント及びシステムは概して単一のソフトウェア製品内に統合され得るか又は複数のソフトウェア製品内にパッケージされ得ることを理解すべきである。
【0178】
主題の特定の実施形態を説明してきた。他の実施形態は以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載の動作は異なる順序で行うことができ、依然として所望の結果が得られる。一例として、添付の図面に記載のプロセスは所望の結果を得るために図示の特定の順序又は順番を必ずしも必要としない。特定の実施では、マルチタスク及び並列処理が有利であり得る。
【国際調査報告】