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

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

▶ ソニー株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184727
(43)【公開日】2023-12-28
(54)【発明の名称】画像処理装置および方法
(51)【国際特許分類】
   H04N 19/117 20140101AFI20231221BHJP
   H04N 19/597 20140101ALI20231221BHJP
   H04N 19/80 20140101ALI20231221BHJP
   H04N 19/85 20140101ALI20231221BHJP
【FI】
H04N19/117
H04N19/597
H04N19/80
H04N19/85
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023191707
(22)【出願日】2023-11-09
(62)【分割の表示】P 2020530095の分割
【原出願日】2019-06-27
(31)【優先権主張番号】P 2018131295
(32)【優先日】2018-07-11
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】矢野 幸司
(72)【発明者】
【氏名】加藤 毅
(72)【発明者】
【氏名】隈 智
(72)【発明者】
【氏名】中神 央二
(57)【要約】
【課題】ポイントクラウドデータに対するフィルタ処理の処理時間の増大を抑制することができるようにする。
【解決手段】ポイントクラウドデータに対して、3次元空間を分割した局所領域毎のそのポイントクラウドデータの代表値を用いて、フィルタ処理を行い、そのフィルタ処理が行われたポイントクラウドデータが投影された2次元平面画像を符号化し、ビットストリームを生成する。本開示は、例えば、情報処理装置、画像処理装置、電子機器、情報処理方法、またはプログラム等に適用することができる。
【選択図】図2
【特許請求の範囲】
【請求項1】
ポイントクラウドを2次元平面に投影し、パッチに分解するパッチ分解部と、
位置情報のパッチおよび属性情報のパッチをビデオフレームとしてパッキングするパッキング部と、
前記ビデオフレームに対応するオキュパンシーマップを生成するオキュパンシーマップ生成部と、
前記オキュパンシーマップの現在地が前記パッチの端部にあるポイントのみをトリリニアフィルタリングの処理対象ポイントとして判定する処理対象領域設定部と、
グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するフィルタ処理部と
を備える画像処理装置。
【請求項2】
前記処理対象領域設定部は、前記現在地が前記オキュパンシーマップの端であるかに基づいて前記処理対象ポイントを判定するように構成される
請求項1に記載の画像処理装置。
【請求項3】
前記処理対象領域設定部は、前記オキュパンシーマップの幅と高さに基づいて、前記現在地が前記オキュパンシーマップの端であるかを判定するように構成される
請求項2に記載の画像処理装置。
【請求項4】
前記フィルタ処理部は、一部の前記代表値を用いて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するように構成される
請求項1に記載の画像処理装置。
【請求項5】
前記フィルタ処理部は、前記グリッドで分割された、前記処理対象ポイントが属する処理対象領域に隣接する周辺領域における前記代表値を用いて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するように構成される
請求項4に記載の画像処理装置。
【請求項6】
前記フィルタ処理部は、前記ビデオフレームにパッキングされた前記処理対象ポイントの位置情報に対し前記トリリニアフィルタリングを適用するように構成される
請求項1に記載の画像処理装置。
【請求項7】
前記フィルタ処理部は、前記ビデオフレームにパッキングされた前記処理対象ポイントの属性情報に対し前記トリリニアフィルタリングを適用するように構成される
請求項1に記載の画像処理装置。
【請求項8】
前記位置情報のパッチがパッキングされ、前記処理対象ポイントに対し前記トリリニアフィルタリングが適用された第1のビデオフレームを符号化する第1の符号化部と、
前記属性情報のパッチがパッキングされ、前記処理対象ポイントに対し前記トリリニアフィルタリングが適用された第2のビデオフレームを符号化する第2の符号化部と、
前記オキュパンシーマップを符号化する第3の符号化部と、
前記第1のビデオフレームの符号化データ、前記第2のビデオフレームの符号化データ、および前記オキュパンシーマップの符号化データを多重化する多重化部と
をさらに備える請求項1に記載の画像処理装置。
【請求項9】
前記トリリニアフィルタリングに関する伝送情報を生成する伝送情報生成部をさらに備え、
前記多重化部は、生成された前記伝送情報の符号化データをさらに多重化するように構成される
請求項8に記載の画像処理装置。
【請求項10】
ポイントクラウドを2次元平面に投影し、パッチに分解し、
位置情報のパッチおよび属性情報のパッチをビデオフレームとしてパッキングし、
前記ビデオフレームに対応するオキュパンシーマップを生成し、
前記オキュパンシーマップの現在地が前記パッチの端部にあるポイントのみをトリリニアフィルタリングの処理対象ポイントとして判定し、
グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用する
画像処理方法。
【請求項11】
トリリニアフィルタリングに関する伝送情報に基づいて、オキュパンシーマップの現在地が前記オキュパンシーマップに対応するビデオフレームとしてパッキングされた位置情報のパッチの端部にあるポイントのみを前記トリリニアフィルタリングの処理対象ポイントとして判定する処理対象領域設定部と、
グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するフィルタ処理部と、
前記処理対象ポイントに対し前記トリリニアフィルタリングを適用された前記位置情報に属性情報を合成する属性情報合成部と
を備え、
前記パッチは、ポイントクラウドを2次元平面に投影し、分解したものである
画像処理装置。
【請求項12】
前記処理対象領域設定部は、前記現在地が前記オキュパンシーマップの端であるかに基づいて前記処理対象ポイントを判定するように構成される
請求項11に記載の画像処理装置。
【請求項13】
前記処理対象領域設定部は、前記伝送情報に含まれる前記オキュパンシーマップの幅と高さを示す情報に基づいて、前記現在地が前記オキュパンシーマップの端であるかを判定するように構成される
請求項12に記載の画像処理装置。
【請求項14】
前記フィルタ処理部は、一部の前記代表値を用いて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するように構成される
請求項11に記載の画像処理装置。
【請求項15】
前記フィルタ処理部は、前記グリッドで分割された、前記処理対象ポイントが属する処理対象領域に隣接する周辺領域における前記代表値を用いて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するように構成される
請求項14に記載の画像処理装置。
【請求項16】
ビットストリームを逆多重化し、前記伝送情報の符号化データ、前記位置情報のパッチがパッキングされた第1のビデオフレームの符号化データ、前記属性情報のパッチがパッキングさた第2のビデオフレームの符号化データ、および、前記オキュパンシーマップの符号化データを生成する逆多重化部と、
前記第1のビデオフレームの符号化データを復号する第1の復号部と、
前記第2のビデオフレームの符号化データを復号する第2の復号部と、
前記オキュパンシーマップの符号化データを復号する第3の復号部と
をさらに備える請求項11に記載の画像処理装置。
【請求項17】
復号された前記第1のビデオフレーム、前記第2のビデオフレーム、および前記オキュパンシーマップをアンパッキングするアンパッキング部をさらに備える
請求項16に記載の画像処理装置。
【請求項18】
アンパッキングされた前記位置情報のパッチを用いて前記ポイントクラウドの位置情報を再構築するジオメトリポイントクラウド生成部をさらに備え、
前記フィルタ処理部は、前記3次元空間において、再構築された前記ポイントクラウドの位置情報の、前記代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するように構成される
請求項17に記載の画像処理装置。
【請求項19】
前記伝送情報の符号化データを復号する伝送情報復号部をさらに備え、
前記処理対象領域設定部は、復号された前記伝送情報に基づいて、前記処理対象ポイントを判定する
請求項16に記載の画像処理装置。
【請求項20】
トリリニアフィルタリングに関する伝送情報に基づいて、オキュパンシーマップの現在地が前記オキュパンシーマップに対応するビデオフレームとしてパッキングされた位置情報のパッチの端部にあるポイントのみを前記トリリニアフィルタリングの処理対象ポイントとして判定し、
グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用し、
前記処理対象ポイントに対し前記トリリニアフィルタリングを適用された前記位置情報に属性情報を合成し、
前記パッチは、ポイントクラウドを2次元平面に投影し、分解したものである
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置および方法に関し、特に、ポイントクラウドデータに対するフィルタ処理の処理時間の増大を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【0002】
従来、例えばポイントクラウド(Point cloud)のような3次元構造を表す3Dデータの符号化方法として、例えばOctree等のような、ボクセル(Voxel)を用いた符号化があった(例えば非特許文献1参照)。
【0003】
近年、その他の符号化方法として、例えば、ポイントクラウドの位置と色情報それぞれを、小領域毎に2次元平面に投影し、2次元画像用の符号化方法で符号化するアプローチ(以下、ビデオベースドアプローチ(Video-based approach)とも称する)が提案されている(例えば、非特許文献2乃至非特許文献4参照)。
【0004】
このような符号化において、復号された2次元画像から復元されたポイントクラウドを画像化した場合の主観的な画質の低減を抑制するために、最近傍探索(Nearest Neighbor)により周辺のポイントを取得して3次元の平滑化フィルタをかける方法が考えられた。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】R. Mekuria, Student Member IEEE, K. Blom, P. Cesar., Member, IEEE, "Design, Implementation and Evaluation of a Point Cloud Codec for Tele-Immersive Video",tcsvt_paper_submitted_february.pdf
【非特許文献2】Tim Golla and Reinhard Klein, "Real-time Point Cloud Compression ," IEEE, 2015
【非特許文献3】K. Mammou, “Video-based and Hierarchical Approaches Point Cloud Compression” , MPEG m41649, Oct. 2017
【非特許文献4】K. Mammou,“PCC Test Model Category 2 v0,” N17248 MPEG output document, October 2017
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、一般的にポイントクラウドのポイント数は多く、最近傍探索の処理の負荷が非常に大きくなってしまっていた。そのため、この方法では処理時間が増大するおそれがあった。
【0007】
本開示は、このような状況に鑑みてなされたものであり、ポイントクラウドデータに対するフィルタ処理を従来の方法よりも高速に行うことができるようにし、その処理時間の増大を抑制することができるようにするものである。
【課題を解決するための手段】
【0008】
本技術の一側面の画像処理装置は、ポイントクラウドを2次元平面に投影し、パッチに分解するパッチ分解部と、位置情報のパッチおよび属性情報のパッチをビデオフレームとしてパッキングするパッキング部と、前記ビデオフレームに対応するオキュパンシーマップを生成するオキュパンシーマップ生成部と、前記オキュパンシーマップの現在地が前記パッチの端部にあるポイントのみをトリリニアフィルタリングの処理対象ポイントとして判定する処理対象領域設定部と、グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するフィルタ処理部とを備える画像処理装置である。
【0009】
本技術の一側面の画像処理方法は、ポイントクラウドを2次元平面に投影し、パッチに分解し、位置情報のパッチおよび属性情報のパッチをビデオフレームとしてパッキングし、前記ビデオフレームに対応するオキュパンシーマップを生成し、前記オキュパンシーマップの現在地が前記パッチの端部にあるポイントのみをトリリニアフィルタリングの処理対象ポイントとして判定し、グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用する画像処理方法である。
【0010】
本技術の他の側面の画像処理装置は、トリリニアフィルタリングに関する伝送情報に基づいて、オキュパンシーマップの現在地が前記オキュパンシーマップに対応するビデオフレームとしてパッキングされた位置情報のパッチの端部にあるポイントのみを前記トリリニアフィルタリングの処理対象ポイントとして判定する処理対象領域設定部と、グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用するフィルタ処理部と、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用された前記位置情報に属性情報を合成する属性情報合成部とを備え、前記パッチは、ポイントクラウドを2次元平面に投影し、分解したものである画像処理装置である。
【0011】
本技術の他の側面の画像処理方法は、トリリニアフィルタリングに関する伝送情報に基づいて、オキュパンシーマップの現在地が前記オキュパンシーマップに対応するビデオフレームとしてパッキングされた位置情報のパッチの端部にあるポイントのみを前記トリリニアフィルタリングの処理対象ポイントとして判定し、グリッドで分割された3次元空間において、前記処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用し、前記処理対象ポイントに対し前記トリリニアフィルタリングを適用された前記位置情報に属性情報を合成し、前記パッチは、ポイントクラウドを2次元平面に投影し、分解したものである画像処理方法である。
【0012】
本技術の一側面の画像処理装置および方法においては、ポイントクラウドが2次元平面に投影され、パッチに分解され、位置情報のパッチおよび属性情報のパッチがビデオフレームとしてパッキングされ、そのビデオフレームに対応するオキュパンシーマップが生成され、そのオキュパンシーマップの現在地がパッチの端部にあるポイントのみがトリリニアフィルタリングの処理対象ポイントとして判定され、グリッドで分割された3次元空間において、その処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、処理対象ポイントに対しトリリニアフィルタリングが適用される。
【0013】
本技術の他の側面の画像処理装置および方法においては、トリリニアフィルタリングに関する伝送情報に基づいて、オキュパンシーマップの現在地がそのオキュパンシーマップに対応するビデオフレームとしてパッキングされた位置情報のパッチの端部にあるポイントのみがトリリニアフィルタリングの処理対象ポイントとして判定され、グリッドで分割された3次元空間において、その処理対象ポイントの周辺にある周辺ポイントの代表値に基づいて、処理対象ポイントに対しトリリニアフィルタリングが適用され、その処理対象ポイントに対しトリリニアフィルタリングが適用された位置情報に属性情報が合成される。
【発明の効果】
【0014】
本開示によれば、画像を処理することができる。特に、ポイントクラウドデータに対するフィルタ処理の処理時間の増大を抑制することができる。
【図面の簡単な説明】
【0015】
図1】平滑化処理の例を説明する図である。
図2】本技術に関する主な特徴をまとめた図である。
図3】最近傍探索について説明する図である。
図4】本技術を用いたフィルタ処理の概要の一例を説明する図である。
図5】処理時間の比較例を説明する図である。
図6】局所領域分割方式の例を説明する図である。
図7】局所領域に関するパラメータについて説明する図である。
図8】情報の伝送について説明する図である。
図9】フィルタ処理の対象について説明する図である。
図10】代表値の導出方法について説明する図である。
図11】フィルタ処理の演算について説明する図である。
図12】フィルタ処理の対象範囲について説明する図である。
図13】最近傍探索を用いたフィルタ処理に適用する場合について説明する図である。
図14】局所領域毎の代表値を用いたフィルタ処理に適用する場合について説明する図である。
図15】処理時間の比較例を説明する図である。
図16】符号化装置の主な構成例を示すブロック図である。
図17】パッチ分解部の主な構成例を説明する図である。
図18】3次元位置情報平滑化処理部の主な構成例を説明する図である。
図19】符号化処理の流れの例を説明するフローチャートである。
図20】パッチ分解処理の流れの例を説明するフローチャートである。
図21】平滑化処理の流れの例を説明するフローチャートである。
図22】平滑化範囲設定処理の流れの例を説明するフローチャートである。
図23】復号装置の主な構成例を示すブロック図である。
図24】3D再構築部の主な構成例を説明する図である。
図25】3次元位置情報平滑化処理部の主な構成例を説明する図である。
図26】復号処理の流れの例を説明するフローチャートである。
図27】ポイントクラウド再構築処理の流れの例を説明するフローチャートである。
図28】平滑化処理の流れの例を説明するフローチャートである。
図29】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.フィルタ処理の高速化
2.第1の実施の形態(符号化装置)
3.第2の実施の形態(復号装置)
4.変形例
5.付記
【0017】
<1.フィルタ処理の高速化>
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【0018】
非特許文献1:(上述)
非特許文献2:(上述)
非特許文献3:(上述)
非特許文献4:(上述)
非特許文献5:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献6:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
非特許文献7:Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
【0019】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献6に記載されているQuad-Tree Block Structure、非特許文献7に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【0020】
<ポイントクラウド>
従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウドや、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ等のデータが存在した。
【0021】
例えばポイントクラウドの場合、立体構造物を多数の点の集合(点群)として表現する。つまり、ポイントクラウドのデータは、この点群の各点の位置情報や属性情報(例えば色等)により構成される。したがってデータ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造を十分な精度で表現することができる。
【0022】
<ビデオベースドアプローチの概要>
このようなポイントクラウドの位置と色情報それぞれを、小領域毎に2次元平面に投影し、2次元画像用の符号化方法で符号化するビデオベースドアプローチ(Video-based approach)が提案されている。
【0023】
このビデオベースドアプローチでは、入力されたポイントクラウド(Point cloud)が複数のセグメンテーション(領域とも称する)に分割され、領域毎に2次元平面に投影される。なお、ポイントクラウドの位置毎のデータ(すなわち、各ポイントのデータ)は、上述のように位置情報(Geometry(Depthとも称する))と属性情報(Texture)とにより構成され、それぞれ、領域毎に2次元平面に投影される。
【0024】
そして、この2次元平面に投影された各セグメンテーション(パッチとも称する)は、2次元画像に配置され、例えば、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)等といった、2次元平面画像用の符号化方式により符号化される。
【0025】
<オキュパンシーマップ>
ビデオベースドアプローチにより、3Dデータを2次元平面に投影する場合、上述のように位置情報が投影された2次元平面画像(ジオメトリ(Geometry)画像とも称する)と、属性情報が投影された2次元平面画像(テクスチャ(Texture)画像とも称する)との他に、オキュパンシーマップが生成される。オキュパンシーマップは、2次元平面の各位置における、位置情報および属性情報の有無を示すマップ情報である。より具体的には、オキュパンシーマップでは、その位置情報および属性情報の有無が、プレシジョン(Precision)と称する領域毎に示される。
【0026】
ポイントクラウド(の各ポイント)は、このオキュパンシーマップのプレシジョンで定義されるブロック単位で復元されるため、このブロックのサイズが大きい程、ポイントの解像度が粗くなる。そのため、このプレシジョンのサイズが大きいことにより、ビデオベースドアプローチにより符号化・復号したポイントクラウドを画像化する場合の主観的な画質が低減してしまうおそれがあった。
【0027】
例えば、ビデオベースドアプローチにより符号化・復号したポイントクラウドを画像化した場合に、プレシジョンのサイズが大きいと、図1のAのように、白の部分と黒の部分との境界において、鋸の歯のような細かい刻み目が形成され、主観的な画質が低減してしまうおそれがあった。
【0028】
そこで、最近傍探索(NN(NearestNeighbor)とも称する)により処理対象のポイントの周辺のポイントを取得し、それらを用いて処理対象のポイントに3次元の平滑化フィルタをかける方法が考えられた。このような3次元の平滑化フィルタをかけることにより、図1のBのように、白の部分と黒の部分との境界の刻み目が抑制されて滑らかな線状となり、主観的な画質の低減を抑制することができる。
【0029】
しかしながら、一般的にポイントクラウドのポイント数は多く、最近傍探索の処理の負荷が非常に大きくなってしまっていた。そのため、この方法では処理時間が増大するおそれがあった。
【0030】
この処理時間の増大により、例えば、上述のようなビデオベースドアプローチを即時的(リアルタイム)に行う(例えば毎秒60フレームの動画像として符号化する)ことが困難であった。
【0031】
一般的なNNの高速化手法として、近似で探す方法(Approximate NN)や、より高速な処理が可能なハードウエアを用いる方法等が考えられているが、それらを用いても即時的な処理は現実的に困難であった。
【0032】
<3次元のフィルタ処理の高速化>
<#1.局所領域毎の代表値を用いた高速化>
そこで3次元の平滑化フィルタ処理を高速化する。例えば図2の#1の段に示されるように、3次元空間を局所領域に分割し、その局所領域毎にポイントクラウドの代表値を求め、フィルタ処理における参照値としてその局所領域毎の代表値を用いるようにする。
【0033】
例えば、図3のAに示されるようにポイントが分布しており、中央の黒色のポイント(curPoint)に対して3次元の平滑化フィルタをかける場合、その周辺のグレーのポイント(nearPoint)のデータを参照して(参照値として用いて)平滑化が行われる。
【0034】
従来の方法の疑似コードを図3のBに示す。従来の場合、処理対象ポイント(curPoint)の周辺ポイント(nearPoint)は、最近傍探索(NN)を用いて決定し(nearPoint = NN(curPoint))、全ての周辺ポイントが互いに同一のパッチに属さない場合(if(! all same patch(nearPoints)))、すなわち、処理対象ポイントがパッチの端部に位置する場合、周辺ポイントのデータの平均を用いて処理対象ポイントの平滑化が行われた(curPoint = average(nearPoints))。
【0035】
これに対して、図4のAの四角形のように、3次元空間を局所領域に分割し、その局所領域毎にポイントクラウドの代表値(×)を導出し、その代表値を用いて処理対象ポイント(黒点)の平滑化を行うようにする。その疑似コードを図4のBに示す。この場合、まず、局所領域(グリッド)毎の代表値として、局所領域内のポイントの平均値(AveragePoint)を導出する。そして、処理対象ポイントが属するグリッド(処理対象グリッド)の周辺に位置する周辺グリッド(near grid)を特定する。
【0036】
周辺グリッドには、処理対象グリッドに対して予め定められた所定の位置関係にあるグリッドが選択される。例えば、処理対象グリッドに隣接するグリッドを周辺グリッドとするようにしてもよい。例えば、図4のAの例の場合、中央の四角を処理対象グリッドとすると、その周囲の8個のグリッドが周辺グリッドとされる。
【0037】
そして、全ての周辺ポイントが互いに同一のパッチに属さない場合(if(! all same patch(nearPoints)))、すなわち、処理対象ポイントがパッチの端部に位置する場合、それらの周辺グリッドの代表値の集合(averagePoints = AveragePoint(near grid))を用いたトリリニアフィルタリングにより処理対象ポイントに対して3次元の平滑化フィルタ処理を行う(curPoint = trilinear(averagePoints))。
【0038】
このようにすることにより、負荷の大きい最近傍探索(NN)を行わずにフィルタ処理(3次元の平滑化フィルタ処理)を実現することができる。したがって、従来の3次元の平滑化フィルタと同等の平滑化効果を実現することができるとともに、その処理時間を大幅に削減することができる。図5に最近傍探索を用いる場合の3次元の平滑化フィルタ(NN)の処理時間と、本技術を適用した3次元の平滑化フィルタ(trilinear)の処理時間との比較例を示す。つまり、本技術を適用することにより、図5の左側のグラフのようにかかっていた処理時間を、図5の右側のグラフのように短縮することができる。
【0039】
以下、図6乃至図15を参照して、図2の各段について説明する。
【0040】
<#1-1.局所領域分割方式>
3次元空間の分割の仕方(局所領域の分割方式)は、任意である。例えば図6の表のID欄が「1」の行のように、3次元空間を一様にN×N×Nの立方体領域に分割するようにしてもよい。このようにすることにより、3次元空間を容易に局所領域に分割することができるので、フィルタ処理の処理時間の増大を抑制する(フィルタ処理をより高速化する)ことができる。
【0041】
また、例えば図6の表のID欄が「2」の行のように、3次元空間を一様にM×N×Lの直方体領域に分割するようにしてもよい。このようにすることにより、3次元空間を容易に局所領域に分割することができるので、フィルタ処理の処理時間の増大を抑制する(フィルタ処理をより高速化する)ことができる。また、3次元空間を立方体領域に分割する場合よりも、局所領域の形状の自由度が向上するので、各局所領域の処理の負荷をより平滑化することができる(負荷の偏りを抑制することができる)。
【0042】
さらに、例えば図6の表のID欄が「3」の行のように、3次元空間を、各局所領域内のポイント数が一定となるように分割するようにしてもよい。このようにすることにより、3次元空間を立方体領域や直方体領域に分割する場合よりも、各局所領域の処理の重さやリソース使用量を平滑化することができる(負荷の偏りを抑制することができる)。
【0043】
また、例えば図6の表のID欄が「4」の行のように、3次元空間の任意の位置に、任意の形状およびサイズの局所領域を設定するようにしてもよい。このようにすることにより、上述の各方法の場合よりも、複雑な3次元形状のものに対しても、よりその形状に適した平滑化処理(smooth処理)を行うことができ、より平滑化することができる。
【0044】
さらに、例えば図6の表のID欄が「5」の行のように、上述のIDが「1」乃至「4」の各方法を選択することができるようにしてもよい。このようにすることにより、より多様な状況に対して、より適切な平滑化処理(smooth処理)を行うことができ、より平滑化することができる。なお、この選択をどのように行うか(何に基づいて選択するか)は、任意である。また、いずれの方法を選択したかを示す情報を、符号化側から復号側に伝送するようにしてもよい(方法選択情報のシグナル)。
【0045】
<#1-2.局所領域パラメータ設定>
また、このような局所領域のパラメータの設定方法および内容は、任意である。例えば図7の表のID欄が「1」の行のように、3次元空間を分割する局所領域の形状やサイズ(例えば、図6のL、M、N等)を固定値としてもよい。例えば、規格等によりこの値を予め設定するようにしてもよい。このようにすることにより、局所領域の形状やサイズの設定を省略することができるので、フィルタ処理をより高速化することができる。
【0046】
また、例えば図7の表のID欄が「2」の行のように、ポイントクラウドや状況に応じて局所領域の形状やサイズを設定することができるようにしてもよい。すなわち、局所領域のパラメータを可変としてもよい。このようにすることにより、状況に応じてより適切な局所領域を形成することができるので、フィルタ処理をより適切に行うことができる。例えば、処理をより高速化したり、処理の偏りを抑制したり、より平滑化したりすることができる。
【0047】
例えば、図7の表のID欄が「2-1」の行のように、局所領域のサイズ(例えば、図6のL、M、N等)を可変とするようにしてもよい。また、例えば、ID欄が「2-2」の行のように、局所領域が包含するポイント数を可変とするようにしてもよい。さらに、例えば、ID欄が「2-3」の行のように、局所領域の形状や位置を可変とするようにしてもよい。また、例えば、ID欄が「2-4」の行のように、局所領域の設定方法の選択をユーザ等が行うことができるようにしてもよい。例えば図6の表のIDが「1」乃至「4」のいずれの方法を選択するかをユーザ等が決定することができるようにしてもよい。
【0048】
<#1-3.シグナル>
また、フィルタ処理についての情報は、符号化側から復号側に伝送するようにしてもよいし、伝送しなくてもよい。例えば図8の表のID欄が「1」の行のように、フィルタ処理に関する全てのパラメータが規格等により予め設定されているようにし、フィルタ処理についての情報の伝送は行わないようにしてもよい。このようにすることにより、伝送する情報量が低減するので、符号化効率を向上させることができる。また、パラメータの導出がふようであるので、フィルタ処理の負荷を軽減させることができ、フィルタ処理をより高速化することができる。
【0049】
また、例えば図8の表のID欄が「2」の行のように、フィルタ処理に関する全てのパラメータについて、内部の他のパラメータ(例えばオキュパンシーマップのプレシジョン等)から最適な値を導出可能とし、フィルタ処理についての情報の伝送は行わないようにしてもよい。このようにすることにより、伝送する情報量が低減するので、符号化効率を向上させることができる。また、状況により適した局所領域の設定が可能になる。
【0050】
さらに、例えば図8の表のID欄が「3」の行のように、フィルタ処理に関する情報をビットストリームのヘッダで伝送するようにしてもよい。その場合、そのビットストリーム内でパラメータは固定値となる。このようにすることにより、伝送する情報量は比較的少なくて済むので、符号化効率の低減を抑制することができる。また、ビットストリーム内でパラメータが固定値となるので、フィルタ処理の負荷の増大を抑制することができる。
【0051】
また、例えば図8の表のID欄が「4」の行のように、フィルタ処理に関する情報をフレームのヘッダで伝送するようにしてもよい。その場合、フレーム毎にパラメータを可変とすることができる。したがって、状況により適した局所領域の設定が可能になる。
【0052】
<#1-4.フィルタ処理対象>
フィルタ処理の対象は任意である。例えば図9の表のID欄が「1」の行のように、ポイントクラウドの位置情報を対象としてもよい。つまり、処理対象ポイントの位置情報に対して3次元の平滑化フィルタ処理を行うようにする。このようにすることにより、ポイントクラウドの各ポイントの位置の平滑化を実現することができる。
【0053】
また、例えば、例えば図9の表のID欄が「2」の行のように、ポイントクラウドの属性情報(色等)を対象としてもよい。つまり、処理対象ポイントの属性情報に対して3次元の平滑化フィルタ処理を行うようにする。このようにすることにより、ポイントクラウドの各ポイントの色等の平滑化を実現することができる。
【0054】
<#1-5.代表値導出方法>
各局所領域の代表値の導出方法は任意である。例えば図10の表のID欄が「1」の行のように、局所領域内部の(局所領域が包含する)ポイントのデータの平均値(average)を代表値とするようにしてもよい。平均(average)の算出は容易な演算により可能であるので、このようにすることにより、より高速に代表値を算出することができる。すなわち、フィルタ処理をより高速化することができる。
【0055】
また、例えば図10の表のID欄が「2」の行のように、局所領域内部の(局所領域が包含する)ポイントのデータの中央値(median)を代表値とするようにしてもよい。中央値(median)は、特異なデータの影響を受けにくいので、ノイズがある場合であってもより安定した結果を得ることができる。すなわち、より安定したフィルタ処理結果が得られる。
【0056】
もちろん、代表値の導出方法は、これらの例以外であってもよい。また、例えば、複数の方法で代表値を導出し、より好適な値の方を選択するようにしてもよい。さらに、例えば、局所領域毎に導出方法を変えることができるようにしてもよい。例えば、ポイントクラウドが表す3次元構造体の特徴に応じて導出方法を選択するようにしてもよい。例えば、髪の毛のように形状が細かくノイズを多く含む部分に対しては中央値(median)により代表値を導出し、洋服のように境界が明確な部分に対しては平均値(average)により代表値を導出するようにしてもよい。
【0057】
<#1-6.フィルタ処理演算>
フィルタ処理(3次元の平滑化フィルタ)の演算は任意である。例えば図11の表のID欄が「1」の行のように、トリリニア(Trilinear)補間を用いるようにしてもよい。トリリニア補間は、処理速度と処理結果の質のバランスが良い。また、例えば図11の表のID欄が「2」の行のように、トリキュービック(Tricubic)補間を用いるようにしてもよい。トリキュービック補間は、トリリニア補間よりも質の高い処理結果を得ることができる。さらに、例えば図11の表のID欄が「3」の行のように、最近傍探索(NN)を用いるようにしてもよい。この方法は、トリリニア補間よりも高速に処理結果を得ることができる。もちろん、これら以外の任意の演算により3次元の平滑化フィルタを実現するようにしてもよい。
【0058】
<#2.3次元のフィルタ処理の簡略化>
また、図2の#2の段に示されるように、部分領域に限定してフィルタ処理を行うようにしてもよい。図12はオキュパンシーマップの例を示す図である。図12に示されるオキュパンシーマップ51において、白色の部分が、ポイントクラウドの位置情報を2次元平面に投影したジオメトリ画像や、ポイントクラウドの属性情報を2次元平面に投影したテクスチャ画像におけるデータが存在する領域(プレシジョン)を示し、黒色の部分が、ジオメトリ画像やテクスチャ画像におけるデータが存在しない領域を示す。つまり、白色の部分が、ポイントクラウドのパッチが投影された領域を示し、黒色の部分が、ポイントクラウドのパッチが投影されていない領域を示す。
【0059】
図1のAに示されるような刻み目は、図12の矢印52が指し示すような、パッチの境界部分において発生する。そこで、図2の#2-1の段に示されるように、そのようなパッチの境界部分(オキュパンシーマップにおけるパッチの端)に対応するポイントに対してのみ、3次元の平滑化フィルタ処理を行うようにしてもよい。つまり、オキュパンシーマップにおけるパッチの端部を、3次元の平滑化フィルタ処理を行う部分領域としてもよい。
【0060】
このようにすることにより、一部の領域に対してのみ3次元の平滑化フィルタ処理を行うようにすることができる。つまり、3次元の平滑化フィルタ処理を行う領域を低減させることができるので、3次元の平滑化フィルタ処理をより高速化することができる。
【0061】
この方法は、図13のAに示されるような従来の最近傍探索と組み合わせることができる。つまり、図13のBに示される疑似コードのように、処理対象ポイントの位置がパッチの端に対応する場合(if(is_Boundary(curPos)))のみ、最近傍探索(k-NearestNeighbor)を含む3次元の平滑化フィルタ処理を行うようにしてもよい。
【0062】
また、図14のAに示されるように、#1において上述した本技術を適用したフィルタ処理と組み合わせて用いるようにしてもよい。つまり、図14のBに示される疑似コードのように、処理対象ポイントの位置がパッチの端に対応する場合(if(is_Boundary(curPos)))のみ、局所領域の代表値を用いたトリリニア補間による3次元の平滑化フィルタ処理を行うようにしてもよい。
【0063】
各方法の処理時間の比較例を図15に示す。左から1番目のグラフは、従来の最近傍探索を用いた平滑化フィルタ処理の処理時間を示す。左から2番目のグラフは、局所領域の代表値を用いたトリリニア補間による3次元の平滑化フィルタ処理の処理時間を示す。左から3番目のグラフは、従来の最近傍探索を用いた平滑化フィルタ処理を、オキュパンシーマップにおけるパッチの端部に対応するポイントに対してのみ行う場合の処理時間を示す。左から4番目のグラフは、局所領域の代表値を用いたトリリニア補間による3次元の平滑化フィルタ処理を、オキュパンシーマップにおけるパッチの端部に対応するポイントに対してのみ行う場合の処理時間を示す。このように、3次元の平滑化フィルタを一部の領域に対してのみ行うようにすることにより、そのフィルタ処理の方法に関わらず、処理時間を低減させることができる。
【0064】
<2.第1の実施の形態>
<符号化装置>
次に、以上のような各手法を実現する構成について説明する。図16は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図16に示される符号化装置100は、ポイントクラウドのような3Dデータを2次元平面に投影して2次元画像用の符号化方法により符号化を行う装置(ビデオベースドアプローチを適用した符号化装置)である。
【0065】
なお、図16においては、処理部やデータの流れ等の主なものを示しており、図16に示されるものが全てとは限らない。つまり、符号化装置100において、図16においてブロックとして示されていない処理部が存在したり、図16において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、符号化装置100内の処理部等を説明する他の図においても同様である。
【0066】
図16に示されるように符号化装置100は、パッチ分解部111、パッキング部112、OMap生成部113、補助パッチ情報圧縮部114、ビデオ符号化部115、ビデオ符号化部116、OMap符号化部117、およびマルチプレクサ118を有する。
【0067】
パッチ分解部111は、3Dデータの分解に関する処理を行う。例えば、パッチ分解部111は、符号化装置100に入力される、3次元構造を表す3Dデータ(例えばポイントクラウド(Point Cloud))を取得する。また、パッチ分解部111は、取得したその3Dデータを複数のセグメンテーションに分解し、そのセグメンテーション毎に3Dデータを2次元平面に投影し、位置情報のパッチや属性情報のパッチを生成する。
【0068】
パッチ分解部111は、生成した各パッチに関する情報をパッキング部112に供給する。また、パッチ分解部111は、その分解に関する情報である補助パッチ情報を、補助パッチ情報圧縮部114に供給する。
【0069】
パッキング部112は、データのパッキングに関する処理を行う。例えば、パッキング部112は、パッチ分解部111から供給される領域毎に3Dデータが投影された2次元平面のデータ(パッチ)を取得する。また、パッキング部112は、取得した各パッチを2次元画像に配置してビデオフレームとしてパッキングする。例えば、パッキング部112は、ポイントの位置を示す位置情報(Geometry)のパッチや、その位置情報に付加される色情報等の属性情報(Texture)のパッチを、それぞれ、ビデオフレームとしてパッキングする。
【0070】
パッキング部112は、生成したビデオフレームをOMap生成部113に供給する。また、パッキング部112は、そのパッキングに関する制御情報をマルチプレクサ118に供給する。
【0071】
OMap生成部113は、オキュパンシーマップの生成に関する処理を行う。例えば、OMap生成部113は、パッキング部112から供給されるデータを取得する。また、OMap生成部113は、位置情報や属性情報に対応するオキュパンシーマップを生成する。OMap生成部113は、生成したオキュパンシーマップや、パッキング部112から取得した各種情報を後段の処理部に供給する。例えば、OMap生成部113は、位置情報(Geometry)のビデオフレームをビデオ符号化部115に供給する。また、例えば、OMap生成部113は、属性情報(Texture)のビデオフレームをビデオ符号化部116に供給する。さらに、例えば、OMap生成部113は、オキュパンシーマップをOMap符号化部117に供給する。
【0072】
補助パッチ情報圧縮部114は、補助パッチ情報の圧縮に関する処理を行う。例えば、補助パッチ情報圧縮部114は、パッチ分解部111から供給されるデータを取得する。補助パッチ情報圧縮部114は、取得したデータに含まれる補助パッチ情報を符号化(圧縮)する。補助パッチ情報圧縮部114は、得られた補助パッチ情報の符号化データをマルチプレクサ118に供給する。
【0073】
ビデオ符号化部115は、位置情報(Geometry)のビデオフレームの符号化に関する処理を行う。例えば、ビデオ符号化部115は、OMap生成部113から供給される位置情報(Geometry)のビデオフレームを取得する。また、ビデオ符号化部115は、その取得した位置情報(Geometry)のビデオフレームを、例えばAVCやHEVC等の任意の2次元画像用の符号化方法により符号化する。ビデオ符号化部115は、その符号化により得られた符号化データ(位置情報(Geometry)のビデオフレームの符号化データ)をマルチプレクサ118に供給する。
【0074】
ビデオ符号化部116は、属性情報(Texture)のビデオフレームの符号化に関する処理を行う。例えば、ビデオ符号化部116は、OMap生成部113から供給される属性情報(Texture)のビデオフレームを取得する。また、ビデオ符号化部116は、その取得した属性情報(Texture)のビデオフレームを、例えばAVCやHEVC等の任意の2次元画像用の符号化方法により符号化する。ビデオ符号化部116は、その符号化により得られた符号化データ(属性情報(Texture)のビデオフレームの符号化データ)をマルチプレクサ118に供給する。
【0075】
OMap符号化部117は、オキュパンシーマップの符号化に関する処理を行う。例えば、OMap符号化部117は、OMap生成部113から供給されるオキュパンシーマップを取得する。また、OMap符号化部117は、その取得したオキュパンシーマップを、例えば算術符号化等の任意の符号化方法により符号化する。OMap符号化部117は、その符号化により得られた符号化データ(オキュパンシーマップの符号化データ)をマルチプレクサ118に供給する。
【0076】
マルチプレクサ118は、多重化に関する処理を行う。例えば、マルチプレクサ118は、補助パッチ情報圧縮部114から供給される補助パッチ情報の符号化データを取得する。また、マルチプレクサ118は、パッキング部112から供給されるパッキングに関する制御情報を取得する。また、マルチプレクサ118は、ビデオ符号化部115から供給される位置情報(Geometry)のビデオフレームの符号化データを取得する。また、マルチプレクサ118は、ビデオ符号化部116から供給される属性情報(Texture)のビデオフレームの符号化データを取得する。また、マルチプレクサ118は、OMap符号化部117から供給されるオキュパンシーマップの符号化データを取得する。
【0077】
マルチプレクサ118は、取得したそれらの情報を多重化して、ビットストリーム(Bitstream)を生成する。マルチプレクサ118は、その生成したビットストリームを符号化装置100の外部に出力する。
【0078】
このような符号化装置100において、パッチ分解部111は、OMap生成部113から、OMap生成部113により生成されたオキュパンシーマップを取得する。また、パッチ分解部111は、ビデオ符号化部115から、ビデオ符号化部115により生成された位置情報(Geometry)のビデオフレーム(ジオメトリ画像とも称する)の符号化データを取得する。
【0079】
そして、パッチ分解部111は、それらのデータを用いて、ポイントクラウドに対する3次元の平滑化フィルタ処理を行う。つまり、パッチ分解部111は、3次元の平滑化フィルタ処理を行った3Dデータを2次元平面に投影し、位置情報のパッチや属性情報のパッチを生成する。
【0080】
<パッチ分解部>
図17は、図16のパッチ分解部111の主な構成例を示すブロック図である。図17に示されるように、パッチ分解部111は、パッチ分解処理部131、ジオメトリ復号部132、3次元位置情報平滑化処理部133、およびテクスチャ補正部134を有する。
【0081】
パッチ分解処理部131は、ポイントクラウド(Point Cloud)を取得し、それを複数のセグメンテーションに分解し、そのセグメンテーション毎にポイントクラウドを2次元平面に投影し、位置情報のパッチ(ジオメトリパッチ)や属性情報のパッチ(テクスチャパッチ)を生成する。パッチ分解処理部131は、生成したジオメトリパッチをパッキング部112に供給する。また、パッチ分解処理部131は、生成したテクスチャパッチをテクスチャ補正部134に供給する。
【0082】
ジオメトリ復号部132は、ジオメトリ画像の符号化データ(ジオメトリ符号化データ)を取得する。このジオメトリ画像の符号化データは、パッチ分解処理部131が生成したジオメトリパッチが、パッキング部112においてビデオフレームにパッキングされ、ビデオ符号化部115において符号化されたものである。ジオメトリ復号部132は、ビデオ符号化部115の符号化方式に対応する復号方式により、そのジオメトリ符号化データを復号する。さらに、ジオメトリ復号部132は、ジオメトリ符号化データを復号して得られたジオメトリ画像からポイントクラウド(の位置情報)を再構築する。ジオメトリ復号部132は、得られたポイントクラウドの位置情報(ジオメトリポイントクラウド)を、3次元位置情報平滑化処理部133に供給する。
【0083】
3次元位置情報平滑化処理部133は、ジオメトリ復号部132から供給されるポイントクラウドの位置情報を取得する。また、3次元位置情報平滑化処理部133は、オキュパンシーマップを取得する。このオキュパンシーマップは、OMap生成部113において生成されたものである。
【0084】
3次元位置情報平滑化処理部133は、ポイントクラウドの位置情報(ジオメトリポイントクラウド)に対して3次元の平滑化フィルタ処理を行う。その際、3次元位置情報平滑化処理部133は、上述したように、3次元空間を分割した局所領域毎の代表値を用いて3次元の平滑化フィルタ処理を行う。また、3次元位置情報平滑化処理部133は、取得したオキュパンシーマップを用いて、そのオキュパンシーマップにおけるパッチの端に対応する部分領域のポイントに対してのみ、3次元の平滑化フィルタ処理を行う。このようにすることにより、3次元位置情報平滑化処理部133は、より高速にフィルタ処理を行うことができる。
【0085】
3次元位置情報平滑化処理部133は、フィルタ処理を行ったジオメトリポイントクラウド(平滑化後ジオメトリポイントクラウドとも称する)をパッチ分解処理部131に供給する。パッチ分解処理部131は、その平滑化後ジオメトリポイントクラウドを複数のセグメンテーションに分解し、そのセグメンテーション毎にポイントクラウドを2次元平面に投影し、位置情報のパッチ(平滑化後ジオメトリパッチ)を生成し、それをパッキング部112に供給する。
【0086】
また、3次元位置情報平滑化処理部133は、平滑化後ジオメトリポイントクラウドをテクスチャ補正部134にも供給する。
【0087】
テクスチャ補正部134は、パッチ分解処理部131から供給されるテクスチャパッチを取得する。また、テクスチャ補正部134は、3次元位置情報平滑化処理部133から供給される平滑化後ジオメトリポイントクラウドを取得する。テクスチャ補正部134は、その平滑化後ジオメトリポイントクラウドを用いて、テクスチャパッチの補正を行う。3次元の平滑化によりポイントクラウドの位置情報が変化すると、2次元平面に投影されたパッチの形状も変化しうる。つまり、テクスチャ補正部134は、3次元の平滑化によるポイントクラウドの位置情報の変化を属性情報のパッチ(テクスチャパッチ)に反映させる。
【0088】
テクスチャ補正部134は、その補正後のテクスチャパッチをパッキング部112に供給する。
【0089】
パッキング部112は、パッチ分解部111から供給される平滑化後ジオメトリパッチおよび補正後テクスチャパッチをそれぞれビデオフレームにパッキングし、位置情報のビデオフレームや属性情報のビデオフレームを生成する。
【0090】
<3次元位置情報平滑化処理部>
図18は、図17の3次元位置情報平滑化処理部133の主な構成例を示すブロック図である。図18に示されるように、3次元位置情報平滑化処理部133は、領域分割部141、領域内代表値導出部142、処理対象領域設定部143、平滑化処理部144、および伝送情報生成部145を有する。
【0091】
領域分割部141は、ジオメトリ復号部132から供給されるポイントクラウドの位置情報(ジオメトリポイントクラウド)を取得する。領域分割部141は、そのジオメトリポイントクラウドを含む3次元空間の領域を分割し、局所領域(グリッド)を設定する。その際、領域分割部141は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法により3次元空間を分割し、局所領域を設定する。
【0092】
領域分割部141は、その設定した局所領域に関する情報(例えば、局所領域の形状やサイズに関する情報等)と、ジオメトリポイントクラウドを領域内代表値導出部142に供給する。また、領域分割部141は、局所領域に関する情報を復号側に伝送する場合、その局所領域に関する情報を伝送情報生成部145に供給する。
【0093】
領域内代表値導出部142は、領域分割部141から供給される局所領域に関する情報やジオメトリポイントクラウドを取得する。領域内代表値導出部142は、それらの情報に基づいて、領域分割部141により設定された各局所領域内のジオメトリポイントクラウドの代表値を導出する。その際、領域内代表値導出部142は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法によりその代表値を導出する。
【0094】
領域内代表値導出部142は、局所領域に関する情報、ジオメトリポイントクラウド、および、導出した局所領域毎の代表値を平滑化処理部144に供給する。また、導出した局所領域毎の代表値を復号側に伝送する場合、その局所領域毎の代表値を示す情報を伝送情報生成部145に供給する。
【0095】
処理対象領域設定部143は、オキュパンシーマップを取得する。処理対象領域設定部143は、そのオキュパンシーマップに基づいて、フィルタ処理をかける領域を設定する。その際、処理対象領域設定部143は、<#2.3次元のフィルタ処理の簡略化>において上述したような方法により領域を設定する。つまり、処理対象領域設定部143は、オキュパンシーマップにおけるパッチの端に対応する部分領域を、フィルタ処理の処理対象領域として設定する。
【0096】
処理対象領域設定部143は、その設定した処理対象領域を示す情報を平滑化処理部144に供給する。また、処理対象領域設定部143は、その処理対象領域を示す情報を復号側に伝送する場合、その処理対象領域を示す情報を伝送情報生成部145に供給する。
【0097】
平滑化処理部144は、領域内代表値導出部142から供給される局所領域に関する情報、ジオメトリポイントクラウド、および局所領域毎の代表値を取得する。また、平滑化処理部144は、処理対象領域設定部143から供給される処理対象領域を示す情報を取得する。
【0098】
平滑化処理部144は、それらの情報に基づいて、3次元の平滑化フィルタ処理を行う。つまり、平滑化処理部144は、<3次元のフィルタ処理の高速化>において上述したように、ジオメトリポイントクラウドの処理対象領域内のポイントに対して、局所領域毎の代表値を参照値として用いて3次元の平滑化フィルタ処理を行う。したがって、平滑化処理部144は、より高速に3次元の平滑化フィルタ処理を行うことができる。
【0099】
平滑化処理部144は、3次元の平滑化フィルタ処理を行ったジオメトリポイントクラウド(平滑化後ジオメトリポイントクラウド)を、パッチ分解処理部131やテクスチャ補正部134に供給する。
【0100】
伝送情報生成部145は、領域分割部141から供給される局所領域に関する情報、領域内代表値導出部142から供給される局所領域毎の代表値を示す情報、および、処理対象領域設定部143から供給される処理対象領域を示す情報を取得する。伝送情報生成部145は、それらの情報を含む伝送情報を生成する。伝送情報生成部145は、生成した伝送情報を、例えば補助パッチ情報圧縮部114に供給し、補助パッチ情報として復号側に伝送させる。
【0101】
<符号化処理の流れ>
次に、符号化装置100により実行される符号化処理の流れの例を、図19のフローチャートを参照して説明する。
【0102】
符号化処理が開始されると、符号化装置100のパッチ分解部111は、ステップS101において、ポイントクラウドを2次元平面に投影し、パッチに分解する。
【0103】
ステップS102において、補助パッチ情報圧縮部114は、ステップS101において生成された補助パッチ情報を圧縮する。
【0104】
ステップS103において、パッキング部112は、ステップS101において生成された位置情報や属性情報の各パッチをビデオフレームとしてパッキングする。また、OMap生成部113は、その位置情報や属性情報のビデオフレームに対応するオキュパンシーマップを生成する。
【0105】
ステップS104において、ビデオ符号化部115は、ステップS103において生成された位置情報のビデオフレームであるジオメトリビデオフレームを、2次元画像用の符号化方法により符号化する。
【0106】
ステップS105において、ビデオ符号化部116は、ステップS103において生成された属性情報のビデオフレームであるカラービデオフレームを、2次元画像用の符号化方法により符号化する。
【0107】
ステップS106において、OMap符号化部117は、ステップS103において生成されたオキュパンシーマップを、所定の符号化方法により符号化する。
【0108】
ステップS107において、マルチプレクサ118は、以上のように生成された各種情報を多重化し、これらの情報を含むビットストリームを生成する。
【0109】
ステップS108において、マルチプレクサ118は、ステップS107において生成したビットストリームを符号化装置100の外部に出力する。
【0110】
ステップS108の処理が終了すると、符号化処理が終了する。
【0111】
<パッチ分解処理の流れ>
次に、図20のフローチャートを参照して、図19のステップS101において実行されるパッチ分解処理の流れの例を説明する。
【0112】
パッチ分解処理が開始されると、パッチ分解処理部131は、ステップS121において、ポイントクラウドをパッチに分解し、ジオメトリパッチとテクスチャパッチを生成する。
【0113】
ステップS122において、ジオメトリ復号部132は、ステップS121において生成されたジオメトリパッチがビデオフレームにパッキングされて符号化されたジオメトリ符号化データを復号し、ポイントクラウドを再構築して、ジオメトリのポイントクラウドを生成する。
【0114】
ステップS123において、3次元位置情報平滑化処理部133は、平滑化処理を実行し、ステップS122において生成されたジオメトリのポイントクラウドに対して、3次元の平滑化フィルタ処理を行う。
【0115】
ステップS124において、テクスチャ補正部134は、ステップS123の処理により得られた平滑化後ジオメトリポイントクラウドを用いて、ステップS121において生成されたテクスチャパッチを補正する。
【0116】
ステップS125において、パッチ分解処理部131は、ステップS123の処理により得られた平滑化後ジオメトリポイントクラウドをパッチに分解し、平滑化後ジオメトリパッチを生成する。
【0117】
ステップS125の処理が終了するとパッチ分解処理が終了し、処理は図19に戻る。
【0118】
<平滑化処理の流れ>
次に、図21のフローチャートを参照して、図20のステップS123において実行される平滑化処理の流れの例を説明する。
【0119】
平滑化処理が開始されると、領域分割部141は、ステップS141において、ポイントクラウドを含む3次元空間を局所領域に分割する。領域分割部141は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法により3次元空間を分割し、局所領域を設定する。
【0120】
ステップS142において、領域内代表値導出部142は、ステップS141において設定された局所領域毎のポイントクラウドの代表値を導出する。領域内代表値導出部142は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法によりその代表値を導出する。
【0121】
ステップS143において、処理対象領域設定部143は、平滑化処理を行う範囲を設定する。処理対象領域設定部143は、<#2.3次元のフィルタ処理の簡略化>において上述したような方法により領域を設定する。つまり、処理対象領域設定部143は、オキュパンシーマップにおけるパッチの端に対応する部分領域を、フィルタ処理の処理対象領域として設定する。
【0122】
ステップS144において、平滑化処理部144は、ステップS143において設定された処理対象範囲に対して、各領域の代表値を参照して平滑化処理を行う。平滑化処理部144は、<3次元のフィルタ処理の高速化>において上述したように、ジオメトリポイントクラウドの処理対象領域内のポイントに対して、局所領域毎の代表値を参照値として用いて3次元の平滑化フィルタ処理を行う。したがって、平滑化処理部144は、より高速に3次元の平滑化フィルタ処理を行うことができる。
【0123】
ステップS145において、伝送情報生成部145は、平滑化に関する伝送情報を生成し、それを例えば補助パッチ情報圧縮部114に供給し、補助パッチ情報として伝送させる。
【0124】
ステップS145の処理が終了すると平滑化処理が終了し、処理は図20に戻る。
【0125】
<平滑化範囲設定処理の流れ>
次に図22のフローチャートを参照して、図21のステップS143において実行される平滑化範囲設定処理の流れの例を説明する。
【0126】
平滑化範囲設定処理が開始されると、処理対象領域設定部143は、ステップS161において、オキュパンシーマップの現在地(x,y)(処理対象ブロック)がオキュパンシーマップの端であるか否かを判定する。例えば、オキュパンシーマップの横幅をwidthとし、縦幅をheightとすると、以下のような判定が行われる。
x!=0 & y!=0 & x!=width-1 & y!=height-1
【0127】
この判定が真である、すなわち、現在地がオキュパンシーマップの端ではないと判定された場合、処理はステップS162に進む。
【0128】
ステップS162において、処理対象領域設定部143は、現在地の周辺部のオキュパンシーマップの値が全て1であるか否かを判定する。現在地の周辺部のオキュパンシーマップの値が全て1である、すなわち、全ての周辺部に位置情報や属性情報が存在し、位置情報や属性情報が存在する部分と存在しない部分との境界付近ではないと判定された場合、処理はステップS163に進む。
【0129】
ステップS163において、処理対象領域設定部143は、現在地の周辺部の属するパッチが全て、現在地が属するパッチと同一であるか否かを判定する。パッチ同士が隣り合うと、オキュパンシーマップの値が1である部分が連続する。したがって、ステップS162において現在地の全ての周辺部にデータが存在すると判定された場合であっても、複数のパッチが隣接する部分である可能性があり、現在地がパッチの端である可能性が残る。そして、異なるパッチ同士では基本的に画像が連続しないので、複数のパッチが隣接する部分においても、オキュパンシーマップのプレシジョンのサイズが大きいことによって、図1のAのような刻み目が形成される可能性がある。そこで、上述のように、現在地の周辺部の属するパッチが全て、現在地が属するパッチと同一であるか否かを判定する。
【0130】
全ての周辺部と現在地とが互いに同一のパッチに属する、すなわち、現在地が、複数のパッチが隣接する部分ではなく、パッチの端部ではないと判定された場合、処理はステップS164に進む。
【0131】
ステップS164において、処理対象領域設定部143は、現在地(x,y)から復元される3次元の点(処理対象ブロックに対応するポイントクラウドのポイント)を、平滑化フィルタ処理しないポイントとして判定する。つまり、現在地を平滑化の処理対処範囲から除外する。ステップS164の処理が終了すると処理はステップS166に進む。
【0132】
また、ステップS161において、上述の判定が偽である、すなわち、現在地がオキュパンシーマップの端であると判定された場合、処理はステップS165に進む。
【0133】
また、ステップS162において、オキュパンシーマップの値が1ではない周辺部が存在する、すなわち、位置情報や属性情報が存在しない周辺部があり、現在地がパッチの端であると判定された場合、処理はステップS165に進む。
【0134】
また、ステップS163において、現在地が属するパッチと異なるパッチに属する周辺部が存在する、すなわち、現在地が複数のパッチが隣接する部分であると判定された場合、処理はステップS165に進む。
【0135】
ステップS165において、処理対象領域設定部143は、現在地(x,y)から復元される3次元の点(処理対象ブロックに対応するポイントクラウドのポイント)を、平滑化フィルタ処理するポイントとして判定する。つまり、現在地を平滑化の処理対処範囲として設定する。ステップS165の処理が終了すると処理はステップS166に進む。
【0136】
ステップS166において、処理対象領域設定部143は、オキュパンシーマップの全ての位置(ブロック)に対して処理を行ったか否かを判定する。未処理の位置(ブロック)が存在すると判定された場合、処理はステップS161に戻り、処理対象ブロックを未処理のブロックに変えて、それ以降の処理が繰り返される。つまり、各ブロックに対してステップS161乃至ステップS166の処理を繰り返す。
【0137】
そして、ステップS166において、オキュパンシーマップの全ての位置(ブロック)を処理したと判定された場合、平滑化範囲設定処理が終了し、処理は図21に戻る。
【0138】
以上のように各処理を実行することにより、ポイントクラウドデータに対するフィルタ処理の処理時間の増大を抑制することができる(フィルタ処理をより高速に行うことができる)。
【0139】
<3.第2の実施の形態>
<復号装置>
次に、以上のような各手法を実現する構成について説明する。図23は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図23に示される復号装置200は、ポイントクラウドのような3Dデータが2次元平面に投影されて符号化された符号化データを、2次元画像用の復号方法により復号し、3次元空間に投影する装置(ビデオベースドアプローチを適用した復号装置)である。例えば、復号装置200は、符号化装置100(図16)がポイントクラウドを符号化して生成したビットストリームを復号し、ポイントクラウドを再構築する。
【0140】
なお、図23においては、処理部やデータの流れ等の主なものを示しており、図23に示されるものが全てとは限らない。つまり、復号装置200において、図23においてブロックとして示されていない処理部が存在したり、図23において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、復号装置200内の処理部等を説明する他の図においても同様である。
【0141】
図23に示されるように復号装置200は、デマルチプレクサ211、補助パッチ情報復号部212、ビデオ復号部213、ビデオ復号部214、OMap復号部215、アンパッキング部216、および3D再構築部217を有する。
【0142】
デマルチプレクサ211は、データの逆多重化に関する処理を行う。例えば、デマルチプレクサ211は、復号装置200に入力されるビットストリームを取得する。このビットストリームは、例えば、符号化装置100より供給される。デマルチプレクサ211は、このビットストリームを逆多重化し、補助パッチ情報の符号化データを抽出し、それを補助パッチ情報復号部212に供給する。また、デマルチプレクサ211は、逆多重化により、ビットストリームから、位置情報(Geometry)のビデオフレームの符号化データを抽出し、それをビデオ復号部213に供給する。さらに、デマルチプレクサ211は、逆多重化により、ビットストリームから、属性情報(Texture)のビデオフレームの符号化データを抽出し、それをビデオ復号部214に供給する。また、デマルチプレクサ211は、逆多重化により、ビットストリームから、オキュパンシーマップの符号化データを抽出し、それをOMap復号部215に供給する。さらに、デマルチプレクサ211は、逆多重化により、ビットストリームから、パッキングに関する制御情報を抽出し、それをアンパッキング部216に供給する。
【0143】
補助パッチ情報復号部212は、補助パッチ情報の符号化データの復号に関する処理を行う。例えば、補助パッチ情報復号部212は、デマルチプレクサ211から供給される補助パッチ情報の符号化データを取得する。また、補助パッチ情報復号部212は、その取得したデータに含まれる補助パッチ情報の符号化データを復号(伸長)する。補助パッチ情報復号部212は、復号して得られた補助パッチ情報を3D再構築部217に供給する。
【0144】
ビデオ復号部213は、位置情報(Geometry)のビデオフレームの符号化データの復号に関する処理を行う。例えば、ビデオ復号部213は、デマルチプレクサ211から供給される位置情報(Geometry)のビデオフレームの符号化データを取得する。また、ビデオ復号部213は、その符号化データを例えばAVCやHEVC等の任意の2次元画像用の復号方法により復号し、位置情報(Geometry)のビデオフレームを得る。ビデオ復号部213は、その位置情報(Geometry)のビデオフレームを、アンパッキング部216に供給する。
【0145】
ビデオ復号部214は、属性情報(Texture)のビデオフレームの符号化データの復号に関する処理を行う。例えば、ビデオ復号部214は、デマルチプレクサ211から供給される属性情報(Texture)のビデオフレームの符号化データを取得する。また、ビデオ復号部214は、その符号化データを例えばAVCやHEVC等の任意の2次元画像用の復号方法により復号し、属性情報(Texture)のビデオフレームを得る。ビデオ復号部214は、その属性情報(Texture)のビデオフレームを、アンパッキング部216に供給する。
【0146】
OMap復号部215は、オキュパンシーマップの符号化データの復号に関する処理を行う。例えば、OMap復号部215は、デマルチプレクサ211から供給されるオキュパンシーマップの符号化データを取得する。また、OMap復号部215は、その符号化データを例えば算術符号化に対応する算術復号等の任意の復号方法により復号し、オキュパンシーマップを得る。OMap復号部215は、そのオキュパンシーマップを、アンパッキング部216に供給する。
【0147】
アンパッキング部216は、アンパッキングに関する処理を行う。例えば、アンパッキング部216は、ビデオ復号部213から位置情報(Geometry)のビデオフレームを取得し、ビデオ復号部214から属性情報(Texture)のビデオフレームを取得し、OMap復号部215からオキュパンシーマップを取得する。また、アンパッキング部216は、パッキングに関する制御情報に基づいて、位置情報(Geometry)のビデオフレームや属性情報(Texture)のビデオフレームをアンパッキングする。アンパッキング部216は、アンパッキングして得られた位置情報(Geometry)のデータ(ジオメトリパッチ等)や属性情報(Texture)のデータ(テクスチャパッチ等)、並びにオキュパンシーマップ等を、3D再構築部217に供給する。
【0148】
3D再構築部217は、ポイントクラウドの再構築に関する処理を行う。例えば、3D再構築部217は、補助パッチ情報復号部212から供給される補助パッチ情報、並びに、アンパッキング部216から供給される位置情報(Geometry)のデータ(ジオメトリパッチ等)、属性情報(Texture)のデータ(テクスチャパッチ等)、およびオキュパンシーマップ等に基づいて、ポイントクラウドを再構築する。3D再構築部217は、再構築したポイントクラウドを復号装置200の外部に出力する。
【0149】
このポイントクラウドは、例えば、表示部に供給されて画像化され、その画像が表示されたり、記録媒体に記録されたり、通信を介して他の装置に供給されたりする。
【0150】
このような復号装置200において、3D再構築部217は、再構築したポイントクラウドに対する3次元の平滑化フィルタ処理を行う。
【0151】
<3D再構築部>
図24は、図23の3D再構築部217の主な構成例を示すブロック図である。図24に示されるように、3D再構築部217は、ジオメトリポイントクラウド(PointCloud)生成部231、3次元位置情報平滑化処理部232、およびテクスチャ合成部233を有する。
【0152】
ジオメトリポイントクラウド生成部231は、ジオメトリポイントクラウドの生成に関する処理を行う。例えば、ジオメトリポイントクラウド生成部231は、アンパッキング部216から供給されるジオメトリパッチを取得する。また、ジオメトリポイントクラウド生成部231は、その取得したジオメトリパッチや、補助パッチ情報等のその他の情報を用いて、ジオメトリポイントクラウド(ポイントクラウドの位置情報)を再構築する。ジオメトリポイントクラウド生成部231は、生成したジオメトリポイントクラウドを3次元位置情報平滑化処理部232に供給する。
【0153】
3次元位置情報平滑化処理部232は、3次元の平滑化フィルタ処理に関する処理を行う。例えば、3次元位置情報平滑化処理部232は、ジオメトリポイントクラウド生成部231から供給されるジオメトリポイントクラウドを取得する。また、3次元位置情報平滑化処理部232は、アンパッキング部216から供給されるオキュパンシーマップを取得する。
【0154】
3次元位置情報平滑化処理部232は、取得したジオメトリポイントクラウドに対して3次元の平滑化フィルタ処理を行う。その際、3次元位置情報平滑化処理部232は、上述したように、3次元空間を分割した局所領域毎の代表値を用いて3次元の平滑化フィルタ処理を行う。また、3次元位置情報平滑化処理部232は、取得したオキュパンシーマップを用いて、そのオキュパンシーマップにおけるパッチの端に対応する部分領域のポイントに対してのみ、3次元の平滑化フィルタ処理を行う。このようにすることにより、3次元位置情報平滑化処理部232は、より高速にフィルタ処理を行うことができる。
【0155】
3次元位置情報平滑化処理部232は、フィルタ処理を行ったジオメトリポイントクラウド(平滑化後ジオメトリポイントクラウド)をテクスチャ合成部233に供給する。
【0156】
テクスチャ合成部233は、ジオメトリとテクスチャの合成に関する処理を行う。例えば、テクスチャ合成部233は、3次元位置情報平滑化処理部232から供給される平滑化後ジオメトリポイントクラウドを取得する。また、テクスチャ合成部233は、アンパッキング部216から供給されるテクスチャパッチを取得する。テクスチャ合成部233は、平滑化後ジオメトリポイントクラウドに、テクスチャパッチ(すなわち属性情報)を合成し、ポイントクラウドを再構築する。平滑化後ジオメトリポイントクラウドは、3次元の平滑化により位置情報が変化している。つまり、厳密には、位置情報と属性情報とが対応しない部分が存在する可能性がある。そこで、テクスチャ合成部233は、テクスチャパッチから得られる属性情報を、3次元の平滑化を行った部分の位置情報の変化を反映させながら、平滑化後ジオメトリポイントクラウドに合成する。
【0157】
テクスチャ合成部233は、再構築したポイントクラウドを復号装置200の外部に出力する。
【0158】
<3次元位置情報平滑化処理部>
図25は、図24の3次元位置情報平滑化処理部232の主な構成例を示すブロック図である。図25に示されるように、3次元位置情報平滑化処理部232は、伝送情報取得部251、領域分割部252、領域内代表値導出部253、処理対象領域設定部254、および平滑化処理部255を有する。
【0159】
伝送情報取得部251は、符号化側から伝送される伝送情報が存在する場合、補助パッチ情報等として供給される伝送情報を取得する。伝送情報取得部251は、必要に応じて、その伝送情報を、領域分割部252、領域内代表値導出部253、および処理対象領域設定部254に供給する。例えば、伝送情報として局所領域に関する情報が供給された場合、伝送情報取得部251は、その局所領域に関する情報を領域分割部252に供給する。また、伝送情報として局所領域毎の代表値を示す情報が供給された場合、伝送情報取得部251は、その局所領域毎の代表値を示す情報を領域内代表値導出部253に供給する。さらに、伝送情報として処理対象領域を示す情報が供給された場合、伝送情報取得部251は、その処理対象領域を示す情報を処理対象領域設定部254に供給する。
【0160】
領域分割部252は、ジオメトリポイントクラウド生成部231から供給されるポイントクラウドの位置情報(ジオメトリポイントクラウド)を取得する。領域分割部252は、そのジオメトリポイントクラウドを含む3次元空間の領域を分割し、局所領域(グリッド)を設定する。その際、領域分割部141は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法により3次元空間を分割し、局所領域を設定する。なお、伝送情報取得部251から、符号化側から伝送された局所領域に関する情報が供給される場合、領域分割部252は、その情報により示される局所領域の設定(例えば、局所領域の形状やサイズ等)を採用する。
【0161】
領域分割部252は、その設定した局所領域に関する情報(例えば、局所領域の形状やサイズに関する情報等)とジオメトリポイントクラウドとを領域内代表値導出部253に供給する。
【0162】
領域内代表値導出部253は、領域分割部252から供給される局所領域に関する情報やジオメトリポイントクラウドを取得する。領域内代表値導出部253は、それらの情報に基づいて、領域分割部252により設定された各局所領域内のジオメトリポイントクラウドの代表値を導出する。その際、領域内代表値導出部253は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法によりその代表値を導出する。なお、伝送情報取得部251から、符号化側から伝送された局所領域毎の代表値を示す情報が供給される場合、領域内代表値導出部253は、その情報により示される局所領域毎の代表値を採用する。
【0163】
領域内代表値導出部142は、局所領域に関する情報、ジオメトリポイントクラウド、および、導出した局所領域毎の代表値を平滑化処理部255に供給する。
【0164】
処理対象領域設定部254は、オキュパンシーマップを取得する。処理対象領域設定部254は、そのオキュパンシーマップに基づいて、フィルタ処理をかける領域を設定する。その際、処理対象領域設定部254は、<#2.3次元のフィルタ処理の簡略化>において上述したような方法により領域を設定する。つまり、処理対象領域設定部254は、オキュパンシーマップにおけるパッチの端に対応する部分領域を、フィルタ処理の処理対象領域として設定する。なお、伝送情報取得部251から、符号化側から伝送された処理対象領域を示す情報が供給される場合、処理対象領域設定部254は、その情報により示される処理対象領域を採用する。
【0165】
処理対象領域設定部254は、その設定した処理対象領域を示す情報を平滑化処理部255に供給する。
【0166】
平滑化処理部255は、領域内代表値導出部253から供給される局所領域に関する情報、ジオメトリポイントクラウド、および局所領域毎の代表値を取得する。また、平滑化処理部255は、処理対象領域設定部254から供給される処理対象領域を示す情報を取得する。
【0167】
平滑化処理部255は、それらの情報に基づいて、3次元の平滑化フィルタ処理を行う。つまり、平滑化処理部255は、<3次元のフィルタ処理の高速化>において上述したように、ジオメトリポイントクラウドの処理対象領域内のポイントに対して、局所領域毎の代表値を参照値として用いて3次元の平滑化フィルタ処理を行う。したがって、平滑化処理部255は、より高速に3次元の平滑化フィルタ処理を行うことができる。
【0168】
平滑化処理部255は、3次元の平滑化フィルタ処理を行ったジオメトリポイントクラウド(平滑化後ジオメトリポイントクラウド)を、テクスチャ合成部233に供給する。
【0169】
<復号処理の流れ>
次に、復号装置200により実行される復号処理の流れの例を、図26のフローチャートを参照して説明する。
【0170】
復号処理が開始されると、復号装置200のデマルチプレクサ211は、ステップS201において、ビットストリームを逆多重化する。
【0171】
ステップS202において、補助パッチ情報復号部212は、ステップS201においてビットストリームから抽出された補助パッチ情報を復号する。
【0172】
ステップS203において、ビデオ復号部213は、ステップS201においてビットストリームから抽出されたジオメトリビデオフレーム(位置情報のビデオフレーム)の符号化データを復号する。
【0173】
ステップS204において、ビデオ復号部214は、ステップS201においてビットストリームから抽出されたカラービデオフレーム(属性情報のビデオフレーム)の符号化データを復号する。
【0174】
ステップS205において、OMap復号部215は、ステップS201においてビットストリームから抽出されたオキュパンシーマップの符号化データを復号する。
【0175】
ステップS206において、アンパッキング部216は、ステップS203において符号化データが復号されて得られたジオメトリビデオフレームをアンパッキングし、ジオメトリパッチを生成する。また、アンパッキング部216は、ステップS204において符号化データが復号されて得られたカラービデオフレームをアンパッキングし、テクスチャパッチを生成する。さらに、アンパッキング部216は、およびステップS205において符号化データが復号されて得られたオキュパンシーマップをアンパッキングし、ジオメトリパッチやテクスチャパッチに対応するオキュパンシーマップを抽出する。
【0176】
ステップS207において、3D再構築部217は、ステップS202において得られた補助パッチ情報、並びに、ステップS206において得られたジオメトリパッチ、テクスチャパッチ、およびオキュパンシーマップ等に基づいて、ポイントクラウドを再構築する。
【0177】
ステップS207の処理が終了すると復号処理が終了する。
【0178】
<ポイントクラウド再構築処理の流れ>
次に、図26のステップS207において実行されるポイントクラウド再構築処理の流れの例を、図27のフローチャートを参照して説明する。
【0179】
ポイントクラウド再構築処理が開始されると、3D再構築部217のジオメトリポイントクラウド生成部231は、ステップS221において、ジオメトリポイントクラウドを再構築する。
【0180】
ステップS222において、3次元位置情報平滑化処理部232は、平滑化処理を実行し、ステップS221において生成されたジオメトリポイントクラウドに対して、3次元の平滑化フィルタ処理を行う。
【0181】
ステップS223において、テクスチャ合成部233は、平滑化後ジオメトリポイントクラウドにテクスチャパッチを合成する。
【0182】
ステップS223の処理が終了するとポイントクラウド再構築処理が終了し、処理は図26に戻る。
【0183】
<平滑化処理の流れ>
次に、図28のフローチャートを参照して、図27のステップS222において実行される平滑化処理の流れの例を説明する。
【0184】
平滑化処理が開始されると、伝送情報取得部251は、ステップS241において、平滑化に関する伝送情報を取得する。なお、伝送情報が存在しない場合、この処理は省略される。
【0185】
ステップS242において、領域分割部252は、ポイントクラウドを含む3次元空間を局所領域に分割する。領域分割部252は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法により3次元空間を分割し、局所領域を設定する。なお、ステップS241において、伝送情報として局所領域に関する情報が取得された場合、領域分割部252は、その情報により示される局所領域の設定(局所領域の形状やサイズ等)を採用する。
【0186】
ステップS243において、領域内代表値導出部253は、ステップS242において設定された局所領域毎のポイントクラウドの代表値を導出する。領域内代表値導出部253は、<#1.局所領域毎の代表値を用いた高速化>において上述した方法によりその代表値を導出する。なお、ステップS241において、伝送情報として局所領域毎の代表値を示す情報が取得された場合、領域内代表値導出部253は、その情報により示される局所領域毎の代表値を採用する。
【0187】
ステップS244において、処理対象領域設定部254は、平滑化処理を行う範囲を設定する。処理対象領域設定部254は、<#2.3次元のフィルタ処理の簡略化>において上述したような方法により領域を設定する。つまり、処理対象領域設定部254は、図22のフローチャートを参照して説明した平滑化範囲設定処理を実行して、フィルタ処理の処理対象範囲を設定する。なお、ステップS241において、伝送情報として処理対象領域を示す情報が取得された場合、処理対象領域設定部254は、その情報により示される処理対象領域の設定を採用する。
【0188】
ステップS245において、平滑化処理部255は、ステップS244において設定された処理対象範囲に対して、各領域の代表値を参照して平滑化処理を行う。平滑化処理部255は、<3次元のフィルタ処理の高速化>において上述したように、ジオメトリポイントクラウドの処理対象領域内のポイントに対して、局所領域毎の代表値を参照値として用いて3次元の平滑化フィルタ処理を行う。したがって、平滑化処理部255は、より高速に3次元の平滑化フィルタ処理を行うことができる。
【0189】
ステップS245の処理が終了すると平滑化処理が終了し、処理は図27に戻る。
【0190】
以上のように各処理を実行することにより、ポイントクラウドデータに対するフィルタ処理の処理時間の増大を抑制することができる(フィルタ処理をより高速に行うことができる)。
【0191】
<4.変形例>
第1の実施の形態および第2の実施の形態においては、3次元の平滑化フィルタ処理をポイントクラウドの位置情報に対して行うように説明したが、3次元の平滑化フィルタ処理は、ポイントクラウドの属性情報に対しても行うことができる。この場合、属性情報が平滑化されるので、例えば、ポイントの色等が変化する。
【0192】
例えば、符号化装置100の場合、パッチ分解部111(図17)において、テクスチャ補正部134に供給されるテクスチャパッチに対して平滑化処理を行う平滑化処理部(例えば、3次元属性情報平滑化処理部)を設けるようにすればよい。
【0193】
また、例えば、復号装置200の場合、3D再構築部217(図24)において、テクスチャ合成部233に供給されるテクスチャパッチに対して平滑化処理を行う平滑化処理部(例えば、3次元属性情報平滑化処理部)を設けるようにすればよい。
【0194】
<5.付記>
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可(または禁止)する範囲(例えばブロックサイズの上限若しくは下限、またはその両方、スライス、ピクチャ、シーケンス、コンポーネント、ビュー、レイヤ等)を指定する制御情報を伝送するようにしてもよい。
【0195】
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0196】
図29は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0197】
図29に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
【0198】
バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
【0199】
入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
【0200】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0201】
コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
【0202】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
【0203】
その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
【0204】
<本技術の適用対象>
以上においては、ポイントクラウドデータの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の3Dデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、3Dデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
【0205】
本技術は、任意の構成に適用することができる。例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に適用され得る。
【0206】
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
【0207】
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
【0208】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0209】
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【0210】
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【0211】
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【0212】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
【0213】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0214】
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0215】
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0216】
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0217】
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0218】
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【符号の説明】
【0219】
100 符号化装置, 111 パッチ分解部, 112 パッキング部, 113 OMap生成部, 114 補助パッチ情報圧縮部, 115 ビデオ符号化部, 116 ビデオ符号化部, 117 OMap符号化部, 118 マルチプレクサ, 131 パッチ分解処理部, 132 ジオメトリ復号部, 133 3次元位置情報平滑化処理部, 134 テクスチャ補正部, 141 領域分割部, 142 領域内代表値導出部, 143 処理対象領域設定部, 144 平滑化処理部, 145 伝送情報生成部, 200 復号装置, 211 デマルチプレクサ, 212 補助パッチ情報復号部, 213 ビデオ復号部, 214 ビデオ復号部, 215 OMap復号部, 216 アンパッキング部, 217 3D再構築部, 231 ジオメトリポイントクラウド生成部, 232 3次元位置情報平滑化処理部, 233 テクスチャ合成部, 251 伝送情報取得部, 252 領域分割部, 253 領域内代表値導出部, 254 処理対象領域設定部, 255 平滑化処理部
図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