JPWO2020071116A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
JPWO2020071116A1
JPWO2020071116A1 JP2020550270A JP2020550270A JPWO2020071116A1 JP WO2020071116 A1 JPWO2020071116 A1 JP WO2020071116A1 JP 2020550270 A JP2020550270 A JP 2020550270A JP 2020550270 A JP2020550270 A JP 2020550270A JP WO2020071116 A1 JPWO2020071116 A1 JP WO2020071116A1
Authority
JP
Japan
Prior art keywords
block
data
information
unit
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020550270A
Other languages
English (en)
Other versions
JP7415937B2 (ja
Inventor
弘幸 安田
弘幸 安田
央二 中神
央二 中神
智 隈
智 隈
幸司 矢野
幸司 矢野
加藤 毅
毅 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2020071116A1 publication Critical patent/JPWO2020071116A1/ja
Application granted granted Critical
Publication of JP7415937B2 publication Critical patent/JP7415937B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

本開示は、3Dデータの部分的な復号をより容易に行うことができるようにする画像処理装置および方法に関する。3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する。また、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックを選択し、その選択されたブロック内の3Dデータの符号化データを復号する。本開示は、例えば、画像処理装置、電子機器、画像処理方法、またはプログラム等に適用することができる。

Description

本開示は、画像処理装置および方法に関し、特に、3Dデータの部分的な復号をより容易に行うことができるようにした画像処理装置および方法に関する。
従来、例えばポイントクラウド(Point cloud)のような3次元構造を表す3Dデータの符号化方法として、例えばOctreeを用いた符号化があった(例えば非特許文献1参照)。
Octreeは、位置情報を量子化したボクセル(voxel)を木構造化したものであり、ノード間に依存関係が生じるので、その一部を復号する場合であっても、全体を探索してOctree全体の構成を再現してから所望の領域を切り出す必要が有り、処理量やメモリ等リソース使用量が不要に増大する。
ところで、2次元画像の符号化の場合、処理の分散化を目的として、フレームをスライスやタイルに分割する手法がある。3Dデータの場合もこのようなスライスやタイルと同様に、3次元空間領域を小領域に分割し、それぞれ独立に符号化することにより、容易に、その小領域毎に独立に復号することができる。
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
しかしながら、このような領域全体を分割した小領域毎に復号する手法では、各小領域の位置、形状、大きさ等に制限が生じるため、任意の位置、形状、大きさの部分領域を独立に復号することは困難であった。また、不要な領域の3Dデータの復号が必要になる等、処理量やメモリ等リソース使用量が不要に増大するおそれがあった。
本開示は、このような状況に鑑みてなされたものであり、3Dデータの部分的な復号をより容易に行うことができるようにするものである。
本技術の一側面の画像処理装置は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部を備える画像処理装置である。
本技術の一側面の画像処理方法は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する画像処理方法である。
本技術の他の側面の画像処理装置は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを復号する復号部とを備える画像処理装置である。
本技術の他の側面の画像処理方法は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、選択された前記ブロック内の前記3Dデータの符号化データを復号する画像処理方法である。
本技術の一側面の画像処理装置および方法においては、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報が生成される。
本技術の他の側面の画像処理装置および方法においては、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックが選択され、その選択されたブロック内の3Dデータの符号化データが復号される。
符号化装置の主な構成例を示すブロック図である。 ブロックの例を説明する図である。 ビットストリームの構造例について説明する図である。 管理情報の内容の例について説明する図である。 ブロック情報の例について説明する図である。 全体領域情報の例について説明する図である。 符号化部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 ブロック符号化処理の流れの例を説明するフローチャートである。 復号装置の主な構成例を示すブロック図である。 復号の様子の例について説明する図である。 復号部の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 ブロック復号処理の流れの例を説明するフローチャートである。 ユースケースについて説明する図である。 符号化装置の主な構成例を示すブロック図である。 符号化装置の主な構成例を示すブロック図である。 復号装置の主な構成例を示すブロック図である。 復号装置の主な構成例を示すブロック図である。 コンピュータの主な構成例を示すブロック図である。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(符号化装置)
2.第2の実施の形態(復号装置)
3.ユースケース
4.第3の実施の形態(符号化装置)
5.第4の実施の形態(復号装置)
6.付記
<1.第1の実施の形態>
<技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
非特許文献1:(上述)
非特許文献2:Ohji Nakagami, Phil Chou, Maja Krivokuca, Khaled Mammou, Robert Cohen, Vladyslav Zakharchenko, Gaelle Martin-Cocher, "Second Working Draft for PCC Categories 1, 3",ISO/IEC JTC1/SC29/WG11, MPEG 2018/N17533, April 2018, San Diego, US
非特許文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献4:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
非特許文献5: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
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献4に記載されているQuad-Tree Block Structure、非特許文献5に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
<ポイントクラウド>
従来、点群の位置情報や属性情報等により3次元構造を表すポイントクラウド(Point cloud)や、頂点、エッジ、面で構成され、多角形表現を使用して3次元形状を定義するメッシュ(Mesh)等の3Dデータが存在した。
例えばポイントクラウドの場合、立体構造物(3次元形状のオブジェクト)を多数の点の集合(点群)として表現する。つまり、ポイントクラウドのデータ(ポイントクラウドデータとも称する)は、この点群の各点の位置情報や属性情報(例えば色等)により構成される。したがってデータ構造が比較的単純であるとともに、十分に多くの点を用いることにより任意の立体構造物を十分な精度で表現することができる。
<ボクセルを用いた位置情報の量子化>
このようなポイントクラウドデータはそのデータ量が比較的大きいので、符号化等によるデータ量を圧縮するために、ボクセル(Voxel)を用いた符号化方法が考えられた。ボクセルは、符号化対象の位置情報を量子化するための3次元領域である。つまり、ポイントクラウドを内包する3次元領域をボクセルと称する小さな3次元領域に分割し、そのボクセル毎に、ポイントを内包するか否かを示す。このようにすることにより、各ポイントの位置はボクセル単位に量子化される。したがって、ポイントクラウド(Point cloud)データをこのようなボクセルのデータ(ボクセル(Voxel)データとも称する)に変換することにより、情報量の増大を抑制する(典型的には情報量を削減する)ことができる。
<Octree>
さらに、このようなボクセル(Voxel)データを用いてOctreeを構築することが考えられた。Octreeは、ボクセルデータを木構造化したものである。Octreeの各ノードは、8ビットのデータにより構成され、各ビットの値は、2×2×2の小領域のそれぞれにおけるポイントの有無を示す。つまり、Octreeは、3次元領域を再帰的に分割し、階層化された小領域毎にデータの有無を示す。Octreeの最下位のノードの各ビットは、ボクセル(Voxel)のポイントの有無を示す。そのため、Octreeはノード間で依存関係が生じるので、その一部を復号する場合であっても、全体を探索してOctree全体の構成を再現してから所望の領域を切り出す必要が有り、処理量やメモリ等リソース使用量が不要に増大する。
ところで、2次元画像の符号化の場合、処理の分散化を目的として、フレームをスライスやタイルに分割する手法がある。3Dデータの場合もこのようなスライスやタイルと同様に、3次元空間領域を小領域に分割し、それぞれ独立に符号化することにより、容易に、その小領域毎に独立に復号することができる。
しかしながら、このような領域全体を分割した小領域毎に復号する手法では、各小領域の位置、形状、大きさ等に制限が生じる。例えば、領域全体の位置、形状、大きさや、分割数、分割方向等によって各小領域の位置、形状、大きさ等が決まる場合もある。そのため、任意の位置、形状、大きさの部分領域を独立に復号することは困難であった。
また、このような小領域単位で復号を行う場合、所望の範囲を含む小領域を全て復号することになるが、その場合、所望の範囲外の3Dデータの復号が必要になる等、処理量やメモリ等リソース使用量が不要に増大するおそれがあった。
<部分領域の管理情報のシグナル>
そこで、エンコーダが、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成するようにする。例えば、エンコーダ(画像処理装置)において、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部を備えるようにする。
このようにすることにより、エンコーダは、任意の位置、形状、大きさのブロックを設定し、その管理情報を生成することができる。そして、エンコーダは、そのブロックを管理する管理情報を復号側に伝送する(シグナルする)ことができるので、デコーダは、その管理情報に基づいて、より容易にそのブロックの3Dデータを復号することができる。すなわち、デコーダは、任意の位置、形状、大きさの部分領域の3Dデータをより容易に復号することができる。
<符号化装置>
図1は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図1に示される符号化装置100は、ポイントクラウドのような3Dデータをボクセル(Voxel)およびOctreeを用いて符号化する装置である。
なお、図1においては、処理部やデータの流れ等の主なものを示しており、図1に示されるものが全てとは限らない。つまり、符号化装置100において、図1においてブロックとして示されていない処理部が存在したり、図1において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、符号化装置100内の処理部等を説明する他の図においても同様である。
図1に示されるように符号化装置100は、ブロック設定部101、管理情報生成部102、符号化部103、およびビットストリーム生成部104を有する。
ブロック設定部101は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの設定に関する処理を行う。3次元空間領域やブロックについての説明は後述する。例えばブロック設定部101は、符号化装置100に入力されるポイントクラウドデータを取得する。
また、ブロック設定部101は、例えばユーザや符号化装置100の外部の装置等から入力されるブロックに関する指定情報を受け付ける。この指定情報は、どのようなブロックを設定するかを指定する情報である。この指定情報では、例えば、位置、サイズ、形状等、任意のパラメータを用いて、設定するブロックが指定される。
さらに、ブロック設定部101は、入力されたポイントクラウドを含む3次元空間領域に、指定されたブロックを設定する。また、ブロック設定部101は、入力されたポイントクラウドからそのブロックに含まれるポイントクラウドを抽出し、そのデータ(ブロックポイントクラウドデータとも称する)を符号化部103に供給する。さらに、ブロック設定部101は、設定したブロックに関する情報を管理情報生成部102に供給する。換言するに、ブロック設定部101は、管理情報生成部102により生成される管理情報により管理されるブロックを設定する。なお、ブロック設定部101が、さらに、ポイントクラウドを含む3次元空間領域に関する情報を管理情報生成部102に供給するようにしてもよい。
管理情報生成部102は、ブロックの管理情報の生成に関する処理を行う。例えば、管理情報生成部102は、ブロック設定部101からブロックに関する情報を取得する。また、管理情報生成部102は、その情報に基づいて管理情報を生成する。つまり、管理情報生成部102は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する。この管理情報については後述する。なお、ブロック設定部101からポイントクラウドを含む3次元空間領域(全体領域とも称する)に関する情報が供給される場合、管理情報生成部102は、その情報も用いて管理情報を生成する。さらに、管理情報生成部102は、生成した管理情報をビットストリーム生成部104に供給する。
符号化部103は、符号化に関する処理を行う。例えば、符号化部103は、ブロック設定部101から供給されるブロックポイントクラウドデータを取得する。また、符号化部103は、そのブロックポイントクラウドデータを所定の方法で符号化し、その符号化データ(ブロックポイントクラウド符号化データとも称する)を生成する。つまり、符号化部103は、ブロック毎に独立してポイントクラウドデータを符号化することができる。この符号化については後述する。さらに、符号化部103は、生成したブロックポイントクラウド符号化データをビットストリーム生成部104に供給する。
ビットストリーム生成部104は、ビットストリームの生成に関する処理を行う。例えば、ビットストリーム生成部104は、管理情報生成部102から供給される管理情報を取得する。また、ビットストリーム生成部104は、符号化部103から供給されるブロックポイントクラウド符号化データを取得する。さらに、ビットストリーム生成部104は、その管理情報およびブロックポイントクラウド符号化データを含むビットストリームを生成する。つまり、ビットストリーム生成部104は、ブロック単位のポイントクラウドの符号化データと、その管理情報を含むビットストリームを生成する。このビットストリームについては後述する。また、ビットストリーム生成部104は、生成したビットストリームを符号化装置100の外部に出力する。このビットストリームは、例えば、所定の媒体(例えば通信媒体若しくは記録媒体またはその両方等)を介してデコーダ(復号側)に伝送される。
なお、これらの処理部(ブロック設定部101、管理情報生成部102、符号化部103、およびビットストリーム生成部104)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
<ブロック>
次にブロックについて説明する。2次元画像の符号化におけるスライスやタイルは、画像全体を分割したものである。3次元空間に当てはめると、ポイントクラウド全体を内包する3次元空間領域121(図2のA)を処理対象とし、その処理対象の3次元空間領域を表す3次元空間領域121を複数に分割することによりスライスやタイルが形成される。その場合、スライスやタイルの位置、形状、大きさ等は、3次元空間領域121の位置、形状、大きさ等に依存することになる。
一般的に、ポイントクラウドは、3次元空間領域121内に一様に分布しないので、3次元空間領域121を分割することと、ポイントクラウドを分割することとは、必ずしも等価ではない。例えば、1つのスライス・タイル内にポイントクラウド全体が内包されることもあり得る。また、ポイントを内包しないスライス・タイルが存在することもあり得る。したがって、このようにポイントクラウドを分割するために3次元空間領域121を分割する方法は、非効率な制御となってしまうおそれがあった。
これに対して、ブロックは、3次元空間領域121内の任意の位置、形状、大きさの部分領域である。管理情報生成部102がブロックについての管理情報を生成するので、ブロック設定部101は、任意の位置、形状、大きさでブロックを設定することができる。
ブロックは任意の領域に設定することができるので、例えば、スライスやタイルのように、3次元空間領域121全体にわたって互いに隣接して並ぶようにブロックを形成することもできる。図2のBの場合、ブロック122が、互いに隣接するように並べられ、3次元空間領域121の全体を埋めるように配置されている。このようにすると、スライスやタイルの場合と同様に、ブロック122が、3次元空間領域121を分割した部分領域となるようにすることができる。
換言するに、この場合、ブロック122を並べることにより、3次元空間領域121が形成される。したがって、ポイントクラウド全体を含む3次元空間領域121を、容易に任意の形状とすることができる。例えば、図2のBの場合、矢印123や矢印124の部分のように、ポイントが存在しない部分のブロック122を省略する(形成しない)ことも可能である。このように、図2のAのような矩形の3次元空間領域121だけでなく、より複雑な形状の3次元空間領域121もより容易に形成することができる。
また、3次元空間領域121全体をブロックで埋める必要はない。例えば図2のCの場合、3次元空間領域121にブロック125およびブロック126が形成されているが、その他の領域にはブロックは存在しない。
さらに、他のブロックの領域と重なるようにブロックを設定することもできる。例えば、図2のDの例の場合、ブロック127とブロック128は、互いに領域が一部重複している(グレーの部分)。また、ブロック128は、ブロック129を内包している。
以上のように、必要な部分にのみ適切なブロックを形成することができる。したがって、不要なブロックの形成を抑制することができるので、不要な情報量の増大を抑制し、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大を抑制することができる。
また、管理情報によりブロック毎に情報を管理することができる。例えば、解像度や圧縮率等をブロック毎に管理することができる。同一領域に複数のブロックを設定することができるため、例えば、このような管理情報により管理されるパラメータについてスケーラビリティを実現することができる。例えば、同一領域に対して、解像度や圧縮率等、任意のパラメータについて値が互いに異なるブロックを設定することにより、ブロックの選択によりそのパラメータの値を選択することができるようになる。つまり、そのパラメータについてのスケーラビリティを実現することができる。
また、データの更新日時や信頼度等の情報をブロック毎に管理することもできる。ブロックは、任意の位置、形状、大きさで、所望の範囲にのみ設定することができるので、更新情報のみを含むブロックを設定することができる。これにより、ポイントクラウドの更新(情報の差し替え、追加、削除等)をブロック単位で行うことができる。また、ブロックは、任意の位置、形状、大きさで設定することができるので、不要な領域をできるだけ含まないようにブロックを設定することができる。すなわち、追加のデータ量の増大やその処理の負荷の増大を抑制することができる。また、デコーダが適宜デコード処理(データアクセス)をしているときも、最小限の排他処理でデータをアップデートすることができる。
また、部分領域であるブロックサイズは、全体領域である3次元空間領域121のサイズよりも小さい。そのため、ブロックを復号する場合の方が、3次元空間領域121を符号化する場合に比べて、符号化時に必要なメモリ量(リソース使用量)を低減させることができる。
また、ブロック毎に独立に符号化することができるので、符号化処理の並列化を容易に実現することができる。その際、ブロックは任意の位置、形状、大きさで設定することができるので、符号化処理の負荷の分散をより適切に行う(所望する分散方法により近似させる)ことができる。
また、ブロック毎に符号化処理が独立に行われるため、ポイントクラウドの更新(情報の差し替え、追加、削除等)をブロック単位で行うことができる。例えば、情報の更新部分に新たなブロックを形成することにより、その更新情報を独立に符号化・復号することができるので、より容易にその更新情報のデータを更新前のデータに追加することができる。
また、符号化がブロック毎に独立に行われることにより、ビットストリームにおいて各ブロックのデータが互いに独立している。そのため、復号の際は、所望の領域を含むブロックのみを復号すればよい。したがって、復号処理の負荷の増大を抑制することができる。例えば、復号処理の処理時間を低減させることができる。また、例えば、占有メモリ量等のリソース使用量を低減させることができる。
また、同一領域を含むブロックが複数存在する場合、管理情報に基づいて必要なブロックを選択することでデコード効率を向上させることができる。例えば、必要な解像度が判る場合、その解像度までを含むブロックを選択し、復号することにより、デコーダは、容易に所望の解像度の復号結果を得ることができる。また、更新時刻が判る場合、より新しいブロックを選択し、復号することにより、デコーダは、容易に最新の情報の復号結果を得ることができる。さらに、デコーダは、例えば色情報の有り無し等、任意のパラメータに基づいてブロックを選択し、復号することができ、より多様な処理結果を得ることができる。
また、図2のDの例のように、複数のブロックを互いの領域が重複するように設定することができる。例えば2次元画像の場合、このように領域が重複すると、それぞれの領域のデータは、その重複部分について冗長となる。つまり、2次元画像の場合、同一アドレスにおいて必要な情報は、常に1つである。したがって領域が重なる場合はどちらかの点が選択される。
しかしながら、3Dデータであるポイントクラウドの場合、データの重なりの意味が異なる。ポイントクラウドの場合、データ表現領域(voxel直方体)の内部の全ての格子点にデータが存在するわけでは無い。また同一位置アドレスの点(の表現)が2つ以上存在することが可能である(その複数の点の利用方法はアプリケーションによる)。
したがって複数のブロックの領域が重なっている場合、いずれか1つのブロックのデータを選択することもできるし、複数のブロックのデータを選択することもできる(領域が重複する全てのブロックのデータを選択することもできる)。
例えば、同一の領域に対して2つのブロックが設定されていても、それぞれのブロックに含まれるポイントの位置が一致しない場合がある。そのような場合に、例えば、復号の際に、いずれか一方のブロック(のポイント)のデータを選択して復号するようにしてもよいし、両方のブロック(のポイント)のデータを選択して復号するようにしてもよい。両方のブロックを選択する場合、両方のブロックに含まれるポイントを全て復元するようにしてもよいし、互いのブロックのポイントを演算により統合し、新たなポイントを生成するようにしてもよい。
また、同一の領域に対して設定された2つのブロックに含まれるポイントの位置が互いに一致していても、各ポイントの属性情報が互いに異なる場合がある。そのような場合に、例えば、復号の際に、いずれか一方のブロック(のポイント)の属性情報を選択して復号するようにしてもよいし、両方のブロック(のポイント)の属性情報を選択して復号するようにしてもよい。両方のブロックを選択する場合、両方のブロックに含まれる属性情報を全て復元するようにしてもよいし、互いのブロックの属性情報を演算により統合し、新たな属性情報を生成するようにしてもよい。
さらに、同一の領域に対して設定された2つのブロックに含まれるポイントの位置が互いに一致していても、管理情報で管理されるパラメータが互いに異なる場合がある。そのような場合に、例えば、復号の際に、そのパラメータに基づいていずれか一方のブロック(のポイント)を選択して復号するようにしてもよいし、両方のブロック(のポイント)を選択して復号するようにしてもよい。両方のブロックを選択する場合、パラメータを更新するようにしてもよい。
<ビットストリーム>
次に、ビットストリームについて説明する。符号化装置100は、例えば、図3のAに示されるようなデータ構造を有するビットストリームを生成する。図3のAにおいて、ビットストリーム141は、符号化装置100により生成されるビットストリームであり、スタートコード(start_code)、シーケンスヘッダ(Seq_Header_info)、並びに、ブロックデータ(Block_data(0)、Block_data(1)、・・・、Block_data(n))を有する。
スタートコード(start_code)は、当該シーケンスの開始位置を示す識別情報であり、所定のビット列が設定される。シーケンスヘッダ(Seq_Header_info)は、シーケンス毎のヘッダ情報であり、当該シーケンスに関する情報が格納される。ブロックデータ(Block_data(0)、Block_data(1)、・・・、Block_data(n))には、各ブロックのデータが格納される。
シーケンスヘッダ(Seq_Header_info)は、例えば、図3のBに示されるようなデータ構造を有する。図3のBにおいて、シーケンスヘッダ142は、シーケンス情報(Seq_info)、ブロックモードフラグ(Block_mode_flag)、並びに、各ブロックのブロック情報(Block(0)_info、・・・、Block(n)_info)を有する。
シーケンス情報(Seq_info)には、当該シーケンスについての情報が格納される。ブロックモードフラグ(Block_mode_flag)は、当該シーケンスにおいてブロックが設定されているか否か(すなわち、ブロックモードであるか否か)を示すフラグ情報である。この値を参照することにより、当該シーケンスにブロックが設定されているか否かを容易に把握することができる。ブロック情報(Block(0)_info、・・・、Block(n)_info)には、対応するブロックに関する情報が格納される。
ブロック情報(Block(0)_info、・・・、Block(n)_info)は、例えば、図3のCに示されるようなデータ構造を有する。図3のBにおいて、ブロック情報143は、ブロック番号(block_no)、ポイントクラウドアドレス(Point cloud address (x,y,z))、ポイントクラウドサイズ(Point cloud size (x,y,z))、データロケーション(data_location(offset/address))、追加情報(additional_info)を有する。
ブロック番号(block_no)は、当該ブロックを識別するための番号(識別情報)である。ポイントクラウドアドレス(Point cloud address (x,y,z))は、当該ブロックの位置情報(x,y,z)である。ポイントクラウドサイズ(Point cloud size (x,y,z))は、当該ブロックのサイズ情報である。データロケーション(data_location(offset/address))、当該ブロックのデータのビットストリームにおける位置情報である。この位置情報により、例えば、当該ブロックのデータの先頭位置が示される。例えば、データロケーション(data_location(offset/address))には、ビットストリームの所定の基準位置からのオフセット(offset)、または、アドレス(address)が格納される。追加情報(additional_info)には、上述した以外のブロックに関する任意の情報が格納される。
ブロックデータ(Block_data(0)、Block_data(1)、・・・、Block_data(n))は、例えば、図3のDに示されるようなデータ構造を有する。図3のDにおいて、ブロックデータ144は、スタートコード(start_code)、ヘッダ情報(Header_info)、ポイントクラウド位置情報(Point cloud Position info)、および、ポイントクラウド属性情報(Point cloud Attribute info)を有する。また、オプションで当該ブロックのブロック情報(Block_info)を有することもできる。
スタートコード(start_code)は、当該ブロックの開始位置を示す識別情報であり、所定のビット列が設定される。ヘッダ情報(Header_info)は、ブロック毎のヘッダ情報であり、当該ブロックに関する情報が格納される。ポイントクラウド位置情報(Point cloud Position info)には、当該ブロックに含まれるポイントクラウドの位置情報が格納される。ポイントクラウド属性情報(Point cloud Attribute info)には、当該ブロックに含まれるポイントクラウドの属性情報が格納される。ブロック情報(Block_info)には、ブロック情報143と同様の情報が格納される。
ビットストリーム生成部104は、管理情報生成部102により生成される管理情報(ブロックを管理するための管理情報)は、このようなビットストリームの任意の位置に格納することができる。例えば、この管理情報が、シーケンスヘッダ142のシーケンス情報(Seq_info)に格納されるようにしてもよい。また、この管理情報が、ブロック毎に分けて、ブロック情報143の追加情報(additional_info)に格納されるようにしてもよい。さらに、この管理情報が、ブロック毎に分けて、ブロックデータ144のブロック情報(Block_info)に格納されるようにしてもよい。また、管理情報が、さらに上位のレイヤ概念としてビットストリーム141に付加されるようにしてもよい。
<管理情報>
次に、管理情報生成部102により生成される管理情報について説明する。管理情報には、各ブロックの具体的な領域情報を含み、さらに付加的情報(解像度等)を含めることができる。例えば、管理情報には、図4の表151に示されるような各種情報を含めることができる。
例えば、管理情報には、ブロックに関する情報であるブロック情報が格納される。また、管理情報には、ブロックに含まれる3Dデータ(例えばポイントクラウド)の位置情報に関する情報であるポイント情報が含まれるようにしてもよい。さらに、管理情報には、ブロックに含まれる3Dデータ(例えばポイントクラウド)の属性情報に関する情報である属性情報が含まれるようにしてもよい。また、管理情報には、3Dデータ(例えばポイントクラウド)の取得(生成)に関する情報である取得情報が含まれるようにしてもよい。
<ブロック情報>
ブロック情報は必須の情報である。ブロック情報は、例えば図4の表151に示されるような、ブロック識別情報、ブロック位置、ブロックサイズ、およびデータ位置等の情報の内の少なくともいずれか1つを含む。もちろん、ブロック情報は、ブロックに関する情報であればよく、上述の情報以外の情報が含まれていてもよい。
ブロック識別情報は、ブロックを識別するための情報であり、例えば、識別番号やインデックス等により構成される。このブロック識別情報を復号側に伝送することにより、符号化装置100は、デコーダがこのブロック識別情報を参照してより容易にブロックを特定することができるようにすることができる。
ブロック位置は、ポイントクラウドが存在する3次元空間におけるブロックの位置を示す情報である。例えば、ブロック位置は、World座標を用いて示される。もちろん、ブロック位置の表現方法は任意であり、World座標に限定されない。
ブロックサイズは、ブロックの大きさや形状等を示す情報である。ブロックの大きさや形状の表現方法は任意である。例えば図5に示されるような矩形のブロック0(block0)の場合、x0sのように各辺の長さによりブロックの大きさを表すようにしてもよいし、(x0a,y0a,z0a)と(x0b,y0b,z0b)のように、頂点座標によりブロックの大きさを表すようにしてもよい。この場合、対角位置にある2頂点の座標によってブロック0の領域の範囲を特定することにより、ブロックの大きさを表現している。
これらのブロック位置やブロックサイズを復号側に伝送することにより、符号化装置100は、デコーダがこれらの情報に基づいて、例えば、指定範囲に基づくブロックの選択をより容易に行うことができるようにすることができる。
データ位置は、ビットストリームにおける当該ブロックのデータの位置を示す情報である。このデータ位置の表現方法は任意である。例えば、オフセットやアドレス等により示されるようにしてもよい。なお、この情報は、管理情報以外のヘッダ情報としてビットストリームに含めるようにしてもよい。
このデータ位置を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、より容易に、選択したブロックのデータをビットストリームから抽出することができるようにすることができる。
<ポイント情報>
ポイント情報は、例えば、図4の表151に示されるように、解像度、構造物、および信頼度等の情報の内の少なくともいずれか1つを含む。
解像度は、ブロック内の3Dデータの解像度(例えばポイントクラウドの場合ポイントの間隔)を示す情報である。この解像度の表現方法は任意である。直接的な数値で解像度を表すようにしてもよいし、インデックス等を用いて間接的に解像度を表すようにしてもよい。また、ブロック内において解像度が均一でない場合、その最小値(ポイントクラウドの場合、点間距離の最小値)を用いるようにしてもよいし、最大値(ポイントクラウドの場合、点間距離の最大値)を用いるようにしてもよいし、平均値(ポイントクラウドの場合、点間距離の平均値)や中央値(ポイントクラウドの場合、点間距離の中央値)等を用いるようにしてもよい。
この解像度を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、必要解像度によるブロックの選択をより容易に行うことができるようにすることができる。例えば、パラメータ「解像度」についてのスケーラビリティ(解像度スケーラビリティとも称する)を実現することができる。
構造物は、ブロック内の3Dデータ(例えばポイントクラウド)が示す立体構造物を説明する情報である。例えば、自然物、人工物、動物体、静止物体、動物、植物、人間、手、足、頭、髪等のように文字を用いて直接的に表現するようにしてもよいし、予め定めたインデックス等を用いて間接的に表現するようにしてもよい。または、柔らかい、固い、大きい、小さい等、立体構造物の特徴を表現するようにしてもよい。
この構造物を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、立体構造物の指定によるブロックの選択をより容易に行うことができるようにすることができる。
信頼度は、ブロック内の3Dデータ(例えばポイントクラウド)のデータとしての信頼度を表す情報であり、例えばデータ作成時の状況や更新による劣化等による誤差の可能性を表現する。この信頼度の表現方法は任意である。例えば、絶対値により表現するようにしてもよいし、相対値により表現するようにしてもよい。また、これらのような直接的な表現以外にも、例えば、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
この信頼度を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、必要信頼度によるブロックの選択をより容易に行うことができるようにすることができる。例えば、パラメータ「信頼度」についてのスケーラビリティ(信頼度スケーラビリティとも称する)を実現することができる。
なお、ポイント情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、ポイント情報は、ブロックに含まれるポイントクラウドの位置情報に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
<属性情報>
属性情報は、例えば、図4の表151に示されるように、色、法線、および反射率等の情報の内の少なくともいずれか1つを含む。
色は、ブロック内に存在するポイントクラウドの属性情報に色情報が含まれるか否かを示すフラグ情報である。また、色情報が含まれる場合、さらに、その色数や何色であるか等を示すようにしてもよい。
この色を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、色情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
法線は、ブロック内に存在するポイントクラウドの属性情報に法線情報が含まれるか否かを示すフラグ情報である。また、法線情報が含まれる場合、さらに、その法線の数や向き等を示すようにしてもよい。
この法線を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、法線情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
反射率は、ブロック内に存在するポイントクラウドの属性情報に反射率情報が含まれるか否かを示すフラグ情報である。また、反射率情報が含まれる場合、さらに、その反射率の数や値等を示すようにしてもよい。
この反射率を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、反射率情報の有無によるブロックの選択をより容易に行うことができるようにすることができる。
属性情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、属性情報は、ブロックに含まれるポイントクラウドの属性情報に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
<取得情報>
取得情報は、例えば、図4の表151に示されるように、時刻、計算手法、センサ、取得位置、および取得者等の情報の内の少なくともいずれか1つを含む。
時刻は、ブロック内に存在する3Dデータ(例えばポイントクラウド)の取得(生成)時期を示す情報である。直接的に時刻で示すようにしてもよい。その場合、年、月、日、時、分、秒等、単位は任意である。また、基準時刻(例えば取得時刻)から現在時刻までの時間により表現するようにしてもよい。さらに、例えばバージョンや更新回数等のように、時刻や時間以外の情報を用いて間接的に表現するようにしてもよい。
この時刻を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、最新データや指定記事のデータを含むブロックの選択をより容易に行うことができるようにすることができる。
計算手法は、ブロック内に存在する3Dデータ(例えばポイントクラウド)の取得(生成)手法を示す情報である。例えば、3DデータがLiDAR(Light Detection and Ranging)データより生成されたものである、3Dデータがステレオマッチング手法により算出されたものである等のように、立体構造物からどのようにして3Dデータが取得(生成)されたかを表現する。さらに、その取得(生成)において用いられた計算式、パラメータの値等を表現するようにしてもよい。これらは、文章や等により直接的に手法を表現するようにしてもよいし、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
この計算手法を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、指定手法のデータを含むブロックの選択をより容易に行うことができるようにすることができる。
センサは、ブロック内に存在する3Dデータ(例えばポイントクラウド)の取得(生成)に用いられたセンサに関する情報である。例えば、センサ種類(例えば、LiDARセンサ、CMOS(Complementary Metal Oxide Semiconductor)センサ等)、性能(解像度や周波数等)、数、使用方法等を示す。直接的に示してもよいし、インデックス等を用いて間接的に表現するようにしてもよい。
このセンサを復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、指定センサにより取得したデータを含むブロックの選択をより容易に行うことができるようにすることができる。
取得位置は、ブロック内に存在する3Dデータ(例えばポイントクラウド)の取得(生成)位置を示す情報である。この取得位置の表現方法は任意である。例えば、GPSデータを用いて取得位置を表すようにしてもよい。また、例えば日本、米国、欧州等のように、国名や地域名により取得位置を表すようにしてもよい。さらに、住所や郵便番号等を用いて取得位置を表すようにしてもよい。もちろん、これら以外の情報を用いて取得位置を表すようにしてもよい。
この取得位置を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、指定位置において取得されたデータを含むブロックの選択をより容易に行うことができるようにすることができる。
取得者は、ブロック内に存在する3Dデータ(例えばポイントクラウド)を取得(生成)したユーザ(取得者)を示す情報である。この取得者の表現方法は任意である。例えば、人名や役職等により取得者を表すようにしてもよい。また、予め定められたインデックス等を用いて間接的に取得者を表現するようにしてもよい。さらに、取得者の権限(管理者、一般ユーザ、ゲスト等)を表現するようにしてもよい。
この取得者を復号側に伝送することにより、符号化装置100は、デコーダがこの情報に基づいて、例えば、指定取得者により取得されたデータを含むブロックの選択をより容易に行うことができるようにすることができる。
取得情報は必須ではないので省略することもできる。つまり、上述の情報の一部または全部が省略されてもよい。また、取得情報は、ブロックに含まれるポイントクラウドの取得に関する情報であればよく、上述の情報例に限定されない。例えば、上述の情報以外の情報が含まれていてもよい。
<全体領域情報>
また、管理情報には、ポイントクラウド全体を含む3次元空間領域全体(全体領域とも称する)に関する情報である全体領域情報が含まれるようにしてもよい。
全体領域情報は、例えば、図6の表161に示されるように、位置サイズ、ブロック情報、および共通情報等の情報の内の少なくともいずれか1つを含む。
位置サイズは、全体領域の大きさ(サイズ)、位置(座標)、形状等を示す情報である。上述したブロック位置やブロックサイズの場合と同様に、これらの表現方法は任意である。例えば、World座標を用いて位置、形状、大きさ等を表すようにしてもよい。また、各辺の長さを用いて大きさや形状を表現するようにしてもよい。
ブロック情報は、ブロックのタイプ、総数、分割数等、全体領域に含まれるブロックに関する情報である。これらの表現方法は任意である。文字や数値を用いて直接的に表現するようにしてもよいし、予め定められたインデックス等を用いて間接的に表現するようにしてもよい。
共通情報は、全体領域に形成される全ブロックに共通の管理情報である。共通情報には、どのような内容情報が含まれていてもよい。この共通情報に含まれる情報は、全てのブロックに適用される。
<符号化部>
図7は、符号化部103(図1)の主な構成例を示すブロック図である。図7に示される世に、符号化部103は、Voxel生成部181、Octree生成部182、および可逆符号化部183を有する。
Voxel生成部181は、ボクセル(Voxel)の生成に関する処理を行う。例えば、Voxel生成部181は、ブロック設定部101から供給されるブロックポイントクラウドデータを取得する。また、Voxel生成部181は、その取得したブロックポイントクラウドデータを含む領域に対してバウンディングボックスを設定し、さらにそのバウンディングボックスを分割し、ボクセルを設定することにより、そのブロックポイントクラウドデータの位置情報を量子化する。Voxel生成部181は、このようにして生成したボクセル(Voxel)データ(ブロックボクセルデータとも称する)をOctree生成部182に供給する。
Octree生成部182は、Octreeの生成に関する処理を行う。例えば、Octree生成部182は、Voxel生成部181から供給されるブロックボクセルデータを取得する。また、Octree生成部182は、そのブロックボクセルデータからOctree(ブロックOctreeとも称する)を生成する。Octree生成部182は、生成したブロックOctreeのデータ(ブロックOctreeデータとも称する)を可逆符号化部183に供給する。
可逆符号化部183は、可逆符号化に関する処理を行う。例えば、可逆符号化部183は、Octree生成部182から供給されるブロックOctreeデータを取得する。可逆符号化部183は、そのブロックOctreeデータを符号化し、符号化データを生成する。可逆符号化部183は、生成した符号化データを、ブロックポイントクラウド符号化データとしてビットストリーム生成部104に供給する。
なお、これらの処理部(Voxel生成部181、Octree生成部182、および可逆符号化部183)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
以上のような構成を有することにより、符号化装置100は、任意の位置に、任意の大きさおよび形状のブロックを設定し、その管理情報を生成することができる。したがって、符号化装置100は、デコーダが3Dデータの部分的な復号をより容易に行うことができるようにすることができる。
<符号化処理の流れ>
次に、符号化装置100により実行される符号化処理の流れの例を、図8のフローチャートを参照して説明する。
符号化処理が開始されると、ブロック設定部101は、ステップS101において、ポイントクラウドデータを取得する。
ステップS102において、ブロック設定部101は、設定するブロックの条件(例えば、位置、大きさ、形状、その他のパラメータについての条件等)を指定する指定情報を受け付ける。
ステップS103において、ブロック設定部101は、その指定情報に基づいて、その指定情報に示される条件を満たすブロックを設定する。
ステップS104において、管理情報生成部102は、ステップS103において設定されたブロックを管理する管理情報を生成する。すなわち、管理情報生成部102は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する。
ステップS105において、符号化部103は、ブロック符号化処理を行い、ステップS103において設定されたブロックのデータ(ブロックポイントクラウドデータ)を符号化し、ブロックポイントクラウド符号化データを生成する。
ステップS106において、ビットストリーム生成部104は、ステップS104において生成された管理情報、並びに、ステップS105において生成されたブロックポイントクラウド符号化データを含むビットストリームを生成する。
ステップS107において、ビットストリーム生成部104は、ステップS106において生成されたビットストリームを符号化装置100の外部に出力する(復号側に伝送する)。
ステップS107の処理が終了すると、符号化処理が終了する。
<ブロック符号化処理の流れ>
次に、図8のステップS105において実行されるブロック符号化処理に流れの例を、図9のフローチャートを参照して説明する。
ブロック符号化処理が開始されると、Voxel生成部181は、ステップS121において、未処理のブロックの中から処理対象ブロックを選択する。
ステップS122において、Voxel生成部181は、処理対象ブロックのブロックポイントクラウドデータを用いて、処理対象ブロックに含まれるポイントの位置情報を量子化(Voxel化)し、Voxelデータを生成する。
ステップS123において、Octree生成部182は、ステップS122において生成されたブロックボクセルデータから処理対象ブロックのOctree(ブロックOctree)を生成する。
ステップS124において、可逆符号化部183は、ステップS123において生成された処理対象ブロックのOctreeデータを符号化し、ブロックポイントクラウド符号化データを生成する。
ステップS125において、符号化部103は、設定したブロックを全て処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理はステップS121に戻り、それ以降の処理を繰り返す。
また、ステップS125において、全てのブロックを処理したと判定された場合、ブロック符号化処理が終了し、処理は、図8に戻る。
以上のように各処理を実行することにより、符号化装置100は、任意の位置に、任意の大きさおよび形状のブロックを設定し、その管理情報を生成することができる。したがって、符号化装置100は、デコーダが3Dデータの部分的な復号をより容易に行うことができるようにすることができる。
<2.第2の実施の形態>
<復号装置>
図10は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図10に示される復号装置200は、図1の符号化装置100に対応する復号装置であり、例えばこの符号化装置100により生成された3Dデータ(例えばポイントクラウド)の符号化データ(ビットストリーム)を復号し、3Dデータを復元する装置である。
なお、図10においては、処理部やデータの流れ等の主なものを示しており、図10に示されるものが全てとは限らない。つまり、復号装置200において、図10においてブロックとして示されていない処理部が存在したり、図10において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、復号装置200内の処理部等を説明する他の図においても同様である。
図10に示されるように復号装置200は、制御部201、ビットストリームバッファ202、復号部203、および編集部204を有する。
制御部201は、復号の制御に関する処理を行う。例えば、制御部201は、ビットストリームバッファ202から供給されるビットストリームを取得する。制御部201は、取得したビットストリームに含まれる管理情報を抽出する。なお、ビットストリームバッファ202から、ビットストリームから抽出された管理情報のみが供給されるようにしてもよい。その場合、制御部201は、管理情報を取得する。
また、制御部201は、ユーザにより復号装置200に入力される指定情報を受け付ける。この指定情報は、ユーザにより設定された、復号するブロックの選択に関する条件を指定する情報である。例えば、管理情報に含まれるいずれかのパラメータについて、ブロック選択のための条件がこの指定情報により指定される。
制御部201は、それらの情報に基づいて、ビットストリームバッファ202乃至編集部204を適宜制御する。制御部201は、例えば、ブロック選択部211、復号制御部212、および編集制御部213を有する。
ブロック選択部211は、復号するブロックの選択に関する処理を行う。例えば、ブロック選択部211は、制御部201が取得したビットストリームから管理情報を抽出し、その抽出した管理情報(または制御部201が取得した管理情報)と、制御部201が取得した指定情報とに基づいて、復号するブロックを選択する。つまり、ブロック選択部211は、3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たすブロックを選択する。
例えば、指定情報によりポイントクラウドの符号化データを復号する3次元空間領域の範囲が指定されると、ブロック選択部211は、管理情報を参照し、ブロック情報の「ブロック位置」および「ブロックサイズ」に基づいて、その指定された範囲を含むブロックを選択する。このように管理情報として「ブロック位置」や「ブロックサイズ」が伝送されることにより、ブロック選択部211は、指定された範囲を含むブロックの選択を行うことができる。
また、例えば、指定情報により必要解像度が指定されると、ブロック選択部211は、管理情報を参照し、ポイント情報の「解像度」に基づいて、その指定された必要解像度以上の解像度の3Dデータを含むブロックを選択する。このように管理情報として「解像度」が伝送されることにより、ブロック選択部211は、必要解像度によるブロックの選択を行うことができる。例えば、同一の領域に3Dデータの解像度が互いに異なる複数のブロックを設定し、このような必要解像度によるブロックの選択を可能とすることにより、解像度スケーラビリティを実現することができる。
さらに、例えば、指定情報により立体構造物が指定されると、ブロック選択部211は、管理情報を参照し、ポイント情報の「構造物」に基づいて、その指定された立体構造物の3Dデータを含むブロックを選択する。このように管理情報として「構造物」が伝送されることにより、ブロック選択部211は、指定立体構造物のデータを含むブロックの選択を行うことができる。
また、例えば、指定情報により必要信頼度が指定されると、ブロック選択部211は、管理情報を参照し、ポイント情報の「信頼度」に基づいて、その指定された必要信頼度以上の信頼度の3Dデータを含むブロックを選択する。このように管理情報として「信頼度」が伝送されることにより、ブロック選択部211は、必要信頼度によるブロックの選択を行うことができる。例えば、同一の領域に3Dデータの信頼度が互いに異なる複数のブロックを設定し、このような必要信頼度によるブロックの選択を可能とすることにより、信頼度スケーラビリティを実現することができる。
さらに、例えば、指定情報により3Dデータの属性情報における色情報の有無が指定されると、ブロック選択部211は、管理情報を参照し、属性情報の「色」に基づいて、3Dデータの属性情報に色情報が存在する(または存在しない)ブロックを選択する。このように管理情報として「色」が伝送されることにより、ブロック選択部211は、色情報の有無等によるブロックの選択を行うことができる。
また、例えば、指定情報により3Dデータの属性情報における法線情報の有無が指定されると、ブロック選択部211は、管理情報を参照し、属性情報の「法線」に基づいて、3Dデータの属性情報に法線情報が存在する(または存在しない)ブロックを選択する。このように管理情報として「法線」が伝送されることにより、ブロック選択部211は、法線情報の有無等によるブロックの選択を行うことができる。
さらに、例えば、指定情報により3Dデータの属性情報における反射率情報の有無が指定されると、ブロック選択部211は、管理情報を参照し、属性情報の「反射率」に基づいて、3Dデータの属性情報に反射率情報が存在する(または存在しない)ブロックを選択する。このように管理情報として「反射率」が伝送されることにより、ブロック選択部211は、反射率情報の有無等によるブロックの選択を行うことができる。
また、例えば、指定情報により時期(時刻やバージョン等)に関する条件が指定されると、ブロック選択部211は、管理情報を参照し、取得情報の「時刻」に基づいて、指定情報により指定された3Dデータの取得時期に関する条件を満たすブロックを選択する。このように管理情報として「時刻」が伝送されることにより、ブロック選択部211は、例えば、最新データを含むブロックの選択や、指定された時期に取得されたデータを含むブロックの選択等を行うことができる。
さらに、例えば、指定情報により3Dデータの取得・計算手法に関する条件が指定されると、ブロック選択部211は、管理情報を参照し、取得情報の「計算手法」に基づいて、指定情報により指定された3Dデータの取得・計算手法に関する条件を満たすブロックを選択する。このように管理情報として「計算手法」が伝送されることにより、ブロック選択部211は、例えば、指定された取得・計算手法により取得された3Dデータを含むブロックの選択等を行うことができる。
さらに、例えば、指定情報により3Dデータの取得に用いられたセンサに関する条件が指定されると、ブロック選択部211は、管理情報を参照し、取得情報の「センサ」に基づいて、指定情報により指定された3Dデータの取得に用いられたセンサに関する条件を満たすブロックを選択する。このように管理情報として「センサ」が伝送されることにより、ブロック選択部211は、例えば、指定されたセンサにより取得された3Dデータを含むブロックの選択等を行うことができる。
また、例えば、指定情報により3Dデータの取得位置に関する条件が指定されると、ブロック選択部211は、管理情報を参照し、取得情報の「取得位置」に基づいて、指定情報により指定された取得位置に関する条件を満たすブロックを選択する。このように管理情報として「取得位置」が伝送されることにより、ブロック選択部211は、例えば、指定位置において取得された3Dデータを含むブロックの選択等を行うことができる。
さらに、例えば、指定情報により3Dデータの取得者に関する条件が指定されると、ブロック選択部211は、管理情報を参照し、取得情報の「取得者」に基づいて、指定情報により指定された取得者に関する条件を満たすブロックを選択する。このように管理情報として「取得者」が伝送されることにより、ブロック選択部211は、例えば、指定されたユーザにより取得された3Dデータを含むブロックの選択等を行うことができる。
以上のように、ブロック選択部211は、管理情報に含まれる各種パラメータについて、指定情報により指定される条件を満たすブロックを選択することができる。
ブロックを選択すると、ブロック選択部211は、管理情報のブロック情報の「ブロック識別情報」に基づいてその選択したブロックの識別情報を特定し、ブロック選択情報として、その特定した識別情報(すなわち、選択したブロックの識別情報)をビットストリームバッファ202に供給する。また、ブロック選択部211が、必要に応じて、管理情報のブロック情報の「データ位置」を参照して、選択したブロックのデータ位置を示す情報もビットストリームバッファ202に供給するようにしてもよい。
このようにすることにより、ブロック選択部211は、ビットストリームバッファ202を制御し、選択したブロックのデータを抽出させることができる。
復号制御部212は、復号制御に関する処理を行う。例えば、復号制御部212は、制御部201が取得したビットストリームから管理情報を抽出し、その抽出した管理情報(または制御部201が取得した管理情報)と、制御部201が取得した指定情報とに基づいて、復号を制御する。つまり、復号制御部212は、管理情報や指定情報に基づいて、復号方法を設定し、復号制御情報を復号部203に供給することにより、その復号を制御する。例えば、復号制御部212は、復号に用いられるパラメータを制御したり、復号方法を選択したりする。
編集制御部213は、復号したブロックのデータに対する編集に関する処理を行う。例えば、編集制御部213は、制御部201が取得したビットストリームから管理情報を抽出し、その抽出した管理情報(または制御部201が取得した管理情報)と、制御部201が取得した指定情報とに基づいて、復号したブロックのデータに対する編集を制御する。つまり、編集制御部213は、管理情報や指定情報に基づいて、編集内容を設定し、編集制御情報を編集部204に供給することにより、その編集を制御する。
(19)
ビットストリームバッファ202は、ビットストリームに関する処理を行う。例えば、ビットストリームバッファ202は、復号装置200に入力されるビットストリームを取得し、保持する。また、ビットストリームバッファ202は、その保持しているビットストリームを制御部201に供給する。なお、ビットストリームバッファ202は、保持しているビットストリームから管理情報を抽出し、その抽出した管理情報を制御部201に供給するようにしてもよい。また、ビットストリームバッファ202は、ブロック選択部211から供給されるブロック選択情報を取得する。さらに、ビットストリームバッファ202は、そのブロック選択情報に基づいて、保持しているビットストリームから、ブロック選択部211により選択されたブロック(ブロック選択情報により指定されるブロック)のビットストリーム(ブロックビットストリーム)を抽出し、それを復号部203に供給する。
(16)
復号部203は、復号に関する処理を行う。例えば、復号部203は、ビットストリームバッファ202から供給されるブロックビットストリームを取得する。復号部203は、そのブロックビットストリームを復号し、ブロック選択部211により選択されたブロックのポイントクラウドデータ(ブロックポイントクラウドデータ)を生成する。なお、復号制御部212から復号制御情報が供給される場合、復号部203は、その復号制御情報を取得し、その情報に従って復号を行う。復号部203は、生成したブロックポイントクラウドデータを編集部204に供給する。
(18)
編集部204は、復号部203による復号の結果であるブロックポイントクラウドデータに対する編集に関する処理を行う。例えば、編集部204は、復号部203から供給されるブロックポイントクラウドデータを取得する。また、編集部204は、編集制御部213から供給される編集制御情報を取得する。さらに、編集部204は、その編集制御情報に基づいてブロックポイントクラウドデータを編集する。
この編集として、例えば編集部204は、ブロックポイントクラウドデータに対して、情報を削除したり、追加したり、更新したりする。例えば、編集部204は、複数のブロックのブロックポイントクラウドデータを合成したり、ブロックポイントクラウドデータの一部を切り取って削除したりする。
編集部204は、適宜編集したポイントクラウドデータを復号装置200の外部に出力する。
<復号例>
例えば、図11のAにしめされるような矩形のブロック231が設定され、このブロック231が図11のBのように3×3×3個並べて配置された3次元空間領域が設定されているとする。
図11のCに示されるような、この3次元空間領域232の一部の領域233を復号するとする。この領域233は、図11のDに示されるように、3次元空間領域232の全てのブロック231にかかっている。したがって、この場合、ブロック選択部211は、3次元空間領域232の全てのブロック231を選択し、復号部は、その3次元空間領域232の全てのブロック231を復号する。ただし、必要な情報は、図11のDに示される領域233内の3Dデータである。したがって、この場合、編集部204が、復号部203の復号により得られた3次元空間領域232全体の3Dデータから、領域233内の3Dデータを抽出する。
なお、復号部203が、部分領域復号に対応し、ブロックビットストリームの一部の領域のみを復号することができる場合、復号制御部212の制御によって、復号部203に領域233内の3Dデータのみを復号させるようにしてもよい。
<復号部>
図12は、図10の復号部203の主な構成例を示すブロック図である。図12に示されるように復号部203は、可逆復号部251、Octree復号部252、およびVoxel復号部253を有する。
可逆復号部251は、符号化データの可逆復号に関する処理を行う。例えば、可逆復号部251は、ビットストリームバッファ202から供給されるブロックビットストリームを取得する。また、可逆復号部251は、そのブロックビットストリームを復号し、選択されたブロックのOctreeデータ(ブロックOctreeデータとも称する)を生成する。なお、復号制御部212から復号制御情報が供給される場合、可逆復号部251は、その復号制御情報に従って復号を行う。さらに、可逆復号部251は、そのブロックOctreeデータをOctree復号部252に供給する。
Octree復号部252は、Octreeの復号に関する処理を行う。例えば、Octree復号部252は、可逆復号部251から供給されるブロックOctreeデータを取得する。また、Octree復号部252は、そのブロックOctreeデータから選択されたブロックのOctree(ブロックOctreeとも称する)を構築し、そのブロックOctreeから選択されたブロックのボクセル(Voxel)データ(ブロックボクセルデータとも称する)を生成する。Octree復号部252は、生成したブロックボクセルデータをVoxel復号部253に供給する。
Voxel復号部253は、ボクセル(Voxel)データの復号に関する処理を行う。例えば、Voxel復号部253は、Octree復号部252から供給されるブロックボクセルデータを取得する。また、Voxel復号部253は、その取得したブロックボクセルデータから選択されたブロックのポイントクラウド(ブロックポイントクラウドデータ)を復元する。Voxel復号部253は、このようにして生成したブロックポイントクラウドデータを編集部204(図10)に供給する。
なお、これらの処理部(可逆復号部251、Octree復号部252、およびVoxel復号部253)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
以上のような構成を有することにより、復号装置200は、管理情報に基づいて、3Dデータの部分的な復号をより容易に行うことができる。
<復号処理の流れ>
次に、この復号装置200により実行される復号処理の流れの例を、図13のフローチャートを参照して説明する。
復号処理が開始されると、復号装置200のビットストリームバッファ202は、ステップS201において、ビットストリームを取得する。
ステップS202において、制御部201は、指定情報を受け付ける。
(20)
ステップS203において、ブロック選択部211は、ステップS201の処理により取得されたビットストリームから抽出された管理情報と、ステップS202において受け付けた指定情報とに基づいて、復号するブロックを選択する。
ステップS204において、ビットストリームバッファ202は、ステップS203において選択されたブロックのビットストリームを、ステップS201において取得されたビットストリームから抽出する。
ステップS205において、復号制御部212は、ステップS201の処理により取得されたビットストリームから抽出された管理情報と、ステップS202において受け付けた指定情報とに基づいて、復号方法を設定する。
(20)
ステップS206において、復号部203は、ブロック復号処理を実行し、ステップS205において設定された復号方法で、ステップS204において抽出されたブロックのビットストリームを復号し、そのブロックのポイントクラウドデータを生成する。
ステップS207において、編集制御部213は、ステップS201の処理により取得されたビットストリームから抽出された管理情報と、ステップS202において受け付けた指定情報とに基づいて、編集方法を設定する。
ステップS208において、編集部204は、ステップS207において設定された編集方法で、ステップS206において生成されたポイントクラウドデータを編集する。
ステップS209において、編集部204は、ステップS208において編集したポイントクラウドデータを復号装置200の外部に出力する。
ステップS209の処理が終了すると復号処理が終了する。
<ブロック復号処理の流れ>
図13のステップS206において実行されるブロック復号処理の流れの例を、図14のフローチャートを参照して説明する。
ブロック復号処理が開始されると、可逆復号部251は、ステップS221において、未処理のブロックの中から処理対象ブロックを選択する。
ステップS222において、可逆復号部251は、処理対象ブロックのビットストリームを復号し、処理対象ブロックのOctreeデータを生成する。
ステップS223において、Octree復号部252は、ステップS222において生成された処理対象ブロックのOctreeデータから処理対象ブロックのOctreeを構築し、処理対象ブロックのボクセルデータを生成する。
ステップS224において、Voxel復号部253は、ステップS223において生成された処理対象ブロックのボクセルデータから処理対象ブロックのポイントクラウドデータを生成する。
ステップS225において、復号部203は、選択されたブロックを全て処理したか否かを判定する。未処理のブロックが存在すると判定された場合、処理はステップS221に戻り、それ以降の処理を繰り返す。
また、ステップS225において、すべてのブロックを処理したと判定された場合、ブロック復号処理が終了し、処理は図13に戻る。
以上のように各処理を実行することにより、復号装置200は、管理情報に基づいて、3Dデータの部分的な復号をより容易に行うことができる。
<3.ユースケース>
次に、上述の符号化装置100および復号装置200のユースケースについて説明する。例えば、図15のAに示されるようなブロックB0乃至ブロックB4が設定されているとする。ブロックのWorld座標での位置をBn(add)(= (x,y,z))とし、サイズをBn(size)(= size)とする。この場合、ブロックB0乃至ブロックB4の位置およびサイズは、図15のBの各式のように設定されている。同様の式を以下にも示す。
B0(add) = (0,0,0), B0(size) = 10
B1(add) = (10,0,0), B1(size) = 10
B2(add) = (0,10,0), B2(size) = 10
B3(add) = (10,10,0), B3(size) = 10
B4(add) = (5,5,5), B4(size) = 10
このような各ブロックが符号化されているとする。
<ケース1>
例えば、図15のCに示されるような領域の3Dデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
Bd(loc) = (5,5,0 - 15,15,5)
まず、ブロック選択部211は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0乃至ブロックB3が該当する。そして、ブロック同士で領域が重複しないので、ブロック選択部211は、ブロックB0乃至ブロックB3を全て選択する。復号部203は、ブロック選択部により選択されたブロックB0乃至ブロックB3の符号化データを復号し、3Dデータ(例えばポイントクラウドデータ)を生成する。
<ケース2>
例えば、図15のDに示されるような領域の3Dデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
Bd(loc) = (5,5,5 - 15,15,10)
まず、ブロック選択部211は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0乃至ブロックB4が該当する。そして、ブロックB4がその他のブロックと重複している。Bd(loc)に対して占める割合は、ブロックB4が100%であり、ブロックB0乃至ブロックB4が25%である。したがって、ブロック選択部211は、ブロックB4を選択する。復号部203は、ブロック選択部により選択されたブロックB4の符号化データを復号し、3Dデータ(例えばポイントクラウドデータ)を生成する。
<ケース3>
例えば、図15のEに示されるような領域の3Dデータの復号が指定情報により指定されるとする。この範囲を以下にも示す。
Bd(loc) = (5,5,5 - 10,10,10)
まず、ブロック選択部211は、Bd(loc)からこの領域を含んでいるブロックを特定する。この場合、ブロックB0とブロックB4が該当する。そして、ブロックB0とブロックB4が重複している。Bd(loc)に対して占める割合は、ブロックB0もブロックB4がともに100%である。したがって、ブロック選択部211は、これらの該当ブロックにおいて別要素(付加情報)で優先順位を決定して重複を避けて選択するようにしてもよい。例えば更新時刻などから新しい方を選択するようにしてもよい。復号部203は、ブロック選択部により選択されたブロックの符号化データを復号し、3Dデータ(例えばポイントクラウドデータ)を生成する。
以上のように、復号装置200は、管理情報に基づいて、任意の位置、大きさ、形状のブロックを容易に復号することができる。つまり、復号装置200は、管理情報に基づいて、3Dデータの部分的な復号をより容易に行うことができる。
<4.第3の実施の形態>
<符号化装置の他の構成例1>
なお、符号化装置100の構成は、任意であり、<1.第1の実施の形態>において説明した構成例(図1)に限定されない。例えば、図16に示されるように、符号化装置100が、符号化部103の代わりに、互いに並列に処理を実行可能な複数の符号化部103−Nを有するようにしてもよい。この場合、ブロック設定部101において複数のブロックが設定されると、各ブロックのポイントクラウドデータ(ブロックポイントクラウドデータ)は互いに異なる符号化部103−Nに供給され、互いに独立に符号化される。そして、ビットストリーム生成部104は、各符号化部103−Nから供給されるブロックポイントクラウド符号化データを取得し、それらのブロックポイントクラウド符号化データと、管理情報とを含むビットストリームを生成する。
このようにすることにより、符号化の並列処理が可能である。なお、図1の符号化部103が、複数のブロックポイントクラウドデータの復号を互いに並行に実行することができるようにしてもよい。
<符号化装置の他の構成例2>
また、図17に示されるように、図16の構成例からさらにビットストリーム生成部を省略するようにしてもよい。この場合、各符号化部103−Nにおいて生成されたブロックポイントクラウドビットストリームと、管理情報生成部102において生成された管理情報とは、それぞれ個別の情報として出力される。
<5.第4の実施の形態>
<復号装置の他の構成例1>
符号化装置100の場合と同様に復号装置200も、その構成は、任意であり、<2.第2の実施の形態>において説明した構成例(図10)に限定されない。例えば、図18に示されるように、復号装置200が、復号部203の代わりに、互いに並列に処理を実行可能な複数の復号部203−Nを有するようにしてもよい。この場合、制御部201において複数のブロックが復号対象として設定されると、各ブロックのビットストリーム(ブロックビットストリーム)は互いに異なる復号部203−Nに供給され、互いに独立に復号される。そして、編集部204は、各復号部203−Nから供給されるブロックポイントクラウドデータを取得し、それらを編集してポイントクラウドデータを生成する。
このようにすることにより、復号の並列処理が可能である。なお、図10の復号部203が、複数のブロックビットストリームの復号を互いに並行に実行することができるようにしてもよい。
<復号装置の他の構成例2>
また、図18に示されるように、複数のブロックビットストリームと管理情報が復号装置200に入力されるようにしてもよい。この場合、ビットストリームバッファ202は、復号装置200に入力される複数のブロックビットストリームと管理情報を取得し、保持する。そして、ビットストリームバッファ202は、取得した管理情報を制御部201に供給し、ブロック選択情報に従って、制御部201により選択されたブロックのブロックビットストリームを読み出し、復号部203−Nに供給する。
<6.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図20は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図20に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
<本技術の適用対象>
以上においては、ポイントクラウドデータの符号化・復号に本技術を適用する場合について説明したが、本技術は、これらの例に限らず、任意の規格の3Dデータの符号化・復号に対して適用することができる。つまり、上述した本技術と矛盾しない限り、符号化・復号方式等の各種処理、並びに、3Dデータやメタデータ等の各種データの仕様は任意である。また、本技術と矛盾しない限り、上述した一部の処理や仕様を省略してもよい。
本技術は、任意の構成に適用することができる。例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に適用され得る。
また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
<本技術を適用可能な分野・用途>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
なお、本技術は以下のような構成も取ることができる。
(1) 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部
を備える画像処理装置。
(2) 前記管理情報は、前記ブロックに関する情報であるブロック情報を含む
(1)に記載の画像処理装置。
(3) 前記ブロック情報は、前記ブロックの識別情報、前記ブロックの位置、前記ブロックのサイズ、および前記ブロックのデータの位置の内の少なくといずれか1つを含む
(2)に記載の画像処理装置。
(4) 前記管理情報は、前記ブロック内の前記3Dデータの位置情報に関する情報である位置情報を含む
(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記位置情報は、前記3Dデータの解像度、前記3Dデータが表す前記3次元構造、および前記3Dデータの信頼度の内の少なくともいずれか1つを含む
(4)に記載の画像処理装置。
(6) 前記管理情報は、前記ブロック内の前記3Dデータの属性情報に関する情報である属性情報を含む
(1)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記属性情報は、前記3Dデータの色、法線、および反射率の内の少なくともいずれか1つを含む
(6)に記載の画像処理装置。
(8) 前記管理情報は、前記3Dデータの取得に関する情報である取得情報を含む
(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記取得情報は、前記3Dデータの取得時刻、前記3Dデータの計算手法、前記3Dデータの取得に用いたセンサ、前記3Dデータの取得位置、および前記3Dデータの取得者の内の少なくともいずれか1つを含む
(8)に記載の画像処理装置。
(10) 前記管理情報は、3次元空間領域全体に関する情報である全体領域情報を含む
(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記全体領域情報は、前記3次元空間領域全体の位置、前記3次元空間領域全体のサイズ、前記3次元空間領域に含まれるブロックに関する情報、前記3次元空間領域に含まれる全ブロックに共通の管理情報の内の少なくともいずれか1つを含む
(10)に記載の画像処理装置。
(12) 前記3Dデータの符号化データと、前記管理情報生成部により生成された前記管理情報とを含むビットストリームを生成するビットストリーム生成部
をさらに備える(1)乃至(11)のいずれかに記載の画像処理装置。
(13) 前記管理情報生成部により生成された前記管理情報により管理される前記ブロックを設定するブロック設定部
をさらに備える(1)乃至(12)のいずれかに記載の画像処理装置。
(14) 前記ブロック設定部により設定された前記ブロック内の前記3Dデータを符号化する符号化部
をさらに備える(13)に記載の画像処理装置。
(15) 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する
画像処理方法。
(16) 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、
前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを復号する復号部と
を備える画像処理装置。
(17) 前記管理情報と前記ユーザによる指示とに基づいて、前記復号部による前記符号化データの復号を制御する復号制御部
をさらに備える(16)に記載の画像処理装置。
(18) 前記管理情報と前記ユーザによる指示とに基づいて、前記3Dデータの編集を制御する編集制御部と、
前記編集制御部の制御に従って、前記復号部により前記符号化データが復号されて生成された前記3Dデータを編集する編集部と
をさらに備える(16)または(17)に記載の画像処理装置。
(19) 前記3次元空間領域の全体の前記3Dデータの符号化データから、前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを抽出する抽出部をさらに備え、
前記復号部は、前記抽出部により抽出された、前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを復号する
(16)乃至(18)のいずれかに記載の画像処理装置。
(20) 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、
選択された前記ブロック内の前記3Dデータの符号化データを復号する
画像処理方法。
100 符号化装置, 101 ブロック設定部, 102 管理情報生成部, 103 符号化部, 104 ビットストリーム生成部, 181 Voxel生成部, 182 Octree生成部, 183 可逆符号化部, 200 復号装置, 201 制御部, 202 ビットストリームバッファ, 203 復号部, 204 編集部, 211 ブロック選択部, 212 復号制御部, 213 編集制御部, 251 可逆復号部,252 Octree復号部, 253 Voxel復号部

Claims (20)

  1. 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する管理情報生成部
    を備える画像処理装置。
  2. 前記管理情報は、前記ブロックに関する情報であるブロック情報を含む
    請求項1に記載の画像処理装置。
  3. 前記ブロック情報は、前記ブロックの識別情報、前記ブロックの位置、前記ブロックのサイズ、および前記ブロックのデータの位置の内の少なくといずれか1つを含む
    請求項2に記載の画像処理装置。
  4. 前記管理情報は、前記ブロック内の前記3Dデータの位置情報に関する情報である位置情報を含む
    請求項1に記載の画像処理装置。
  5. 前記位置情報は、前記3Dデータの解像度、前記3Dデータが表す前記3次元構造、および前記3Dデータの信頼度の内の少なくともいずれか1つを含む
    請求項4に記載の画像処理装置。
  6. 前記管理情報は、前記ブロック内の前記3Dデータの属性情報に関する情報である属性情報を含む
    請求項1に記載の画像処理装置。
  7. 前記属性情報は、前記3Dデータの色、法線、および反射率の内の少なくともいずれか1つを含む
    請求項6に記載の画像処理装置。
  8. 前記管理情報は、前記3Dデータの取得に関する情報である取得情報を含む
    請求項1に記載の画像処理装置。
  9. 前記取得情報は、前記3Dデータの取得時刻、前記3Dデータの計算手法、前記3Dデータの取得に用いたセンサ、前記3Dデータの取得位置、および前記3Dデータの取得者の内の少なくともいずれか1つを含む
    請求項8に記載の画像処理装置。
  10. 前記管理情報は、3次元空間領域全体に関する情報である全体領域情報を含む
    請求項1に記載の画像処理装置。
  11. 前記全体領域情報は、前記3次元空間領域全体の位置、前記3次元空間領域全体のサイズ、前記3次元空間領域に含まれるブロックに関する情報、前記3次元空間領域に含まれる全ブロックに共通の管理情報の内の少なくともいずれか1つを含む
    請求項10に記載の画像処理装置。
  12. 前記3Dデータの符号化データと、前記管理情報生成部により生成された前記管理情報とを含むビットストリームを生成するビットストリーム生成部
    をさらに備える請求項1に記載の画像処理装置。
  13. 前記管理情報生成部により生成された前記管理情報により管理される前記ブロックを設定するブロック設定部
    をさらに備える請求項1に記載の画像処理装置。
  14. 前記ブロック設定部により設定された前記ブロック内の前記3Dデータを符号化する符号化部
    をさらに備える請求項13に記載の画像処理装置。
  15. 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報を生成する
    画像処理方法。
  16. 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択するブロック選択部と、
    前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを復号する復号部と
    を備える画像処理装置。
  17. 前記管理情報と前記ユーザによる指示とに基づいて、前記復号部による前記符号化データの復号を制御する復号制御部
    をさらに備える請求項16に記載の画像処理装置。
  18. 前記管理情報と前記ユーザによる指示とに基づいて、前記3Dデータの編集を制御する編集制御部と、
    前記編集制御部の制御に従って、前記復号部により前記符号化データが復号されて生成された前記3Dデータを編集する編集部と
    をさらに備える請求項16に記載の画像処理装置。
  19. 前記3次元空間領域の全体の前記3Dデータの符号化データから、前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを抽出する抽出部をさらに備え、
    前記復号部は、前記抽出部により抽出された、前記ブロック選択部により選択された前記ブロック内の前記3Dデータの符号化データを復号する
    請求項16に記載の画像処理装置。
  20. 3次元構造を表す3Dデータを含む所定の3次元空間領域の部分領域であるブロックの管理情報に基づいて、ユーザにより指定された条件を満たす前記ブロックを選択し、
    選択された前記ブロック内の前記3Dデータの符号化データを復号する
    画像処理方法。
JP2020550270A 2018-10-02 2019-09-18 画像処理装置および方法 Active JP7415937B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018187489 2018-10-02
JP2018187489 2018-10-02
PCT/JP2019/036471 WO2020071116A1 (ja) 2018-10-02 2019-09-18 画像処理装置および方法

Publications (2)

Publication Number Publication Date
JPWO2020071116A1 true JPWO2020071116A1 (ja) 2021-09-24
JP7415937B2 JP7415937B2 (ja) 2024-01-17

Family

ID=70055885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020550270A Active JP7415937B2 (ja) 2018-10-02 2019-09-18 画像処理装置および方法

Country Status (4)

Country Link
US (1) US20220038674A1 (ja)
JP (1) JP7415937B2 (ja)
CN (1) CN112789658A (ja)
WO (1) WO2020071116A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022137537A1 (ja) * 2020-12-25 2022-06-30 日本電信電話株式会社 復号方法、復号装置及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6577310B1 (en) 1998-12-01 2003-06-10 Samsung Electronics Co., Ltd. 3D mesh coding/decoding method and apparatus for error resilience and incremental rendering
KR100703715B1 (ko) * 2005-05-17 2007-04-06 한국전자통신연구원 다시점 3차원 동영상 송수신 시스템
EP1968017A1 (en) 2005-12-27 2008-09-10 NEC Corporation Data compression method and device, data decompression method and device and program
US7990397B2 (en) * 2006-10-13 2011-08-02 Leica Geosystems Ag Image-mapped point cloud with ability to accurately represent point coordinates
US9524773B2 (en) * 2013-09-14 2016-12-20 Peter Wung Lee Multi-task concurrent/pipeline NAND operations on all planes
US9756359B2 (en) * 2013-12-16 2017-09-05 Qualcomm Incorporated Large blocks and depth modeling modes (DMM'S) in 3D video coding
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
CN109906608B (zh) * 2016-11-01 2021-03-12 松下电器(美国)知识产权公司 显示方法以及显示装置
CN108833927B (zh) * 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法

Also Published As

Publication number Publication date
US20220038674A1 (en) 2022-02-03
CN112789658A (zh) 2021-05-11
JP7415937B2 (ja) 2024-01-17
WO2020071116A1 (ja) 2020-04-09

Similar Documents

Publication Publication Date Title
US11910026B2 (en) Image processing apparatus and method
JP7384159B2 (ja) 画像処理装置および方法
WO2019198523A1 (ja) 画像処理装置および方法
JP7327166B2 (ja) 画像処理装置および方法
US11699248B2 (en) Image processing apparatus and method
WO2021065536A1 (ja) 情報処理装置および方法
KR20200140256A (ko) 화상 처리 장치 및 방법
WO2019142665A1 (ja) 情報処理装置および方法
JP7415937B2 (ja) 画像処理装置および方法
JP7396302B2 (ja) 画像処理装置および方法
US20220044448A1 (en) Image processing device and method
WO2021193088A1 (ja) 画像処理装置および方法
WO2021010200A1 (ja) 情報処理装置および方法
WO2021002214A1 (ja) 情報処理装置および方法
US20220353493A1 (en) Information processing apparatus and method
WO2020145140A1 (ja) 情報処理装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231218

R151 Written notification of patent or utility model registration

Ref document number: 7415937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151