KR20210070271A - 화상 처리 장치 및 방법 - Google Patents

화상 처리 장치 및 방법 Download PDF

Info

Publication number
KR20210070271A
KR20210070271A KR1020217007109A KR20217007109A KR20210070271A KR 20210070271 A KR20210070271 A KR 20210070271A KR 1020217007109 A KR1020217007109 A KR 1020217007109A KR 20217007109 A KR20217007109 A KR 20217007109A KR 20210070271 A KR20210070271 A KR 20210070271A
Authority
KR
South Korea
Prior art keywords
point cloud
intersection
vector
data
image processing
Prior art date
Application number
KR1020217007109A
Other languages
English (en)
Inventor
오지 나카가미
고지 야노
사토루 구마
츠요시 가토
히로유키 야스다
Original Assignee
소니그룹주식회사
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 소니그룹주식회사 filed Critical 소니그룹주식회사
Publication of KR20210070271A publication Critical patent/KR20210070271A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

본 개시는, 메쉬로부터 포인트 클라우드를 생성할 때의 부하의 증대를 억제할 수 있도록 하는 화상 처리 장치 및 방법에 관한 것이다. 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성한다. 예를 들어, 메쉬의 면과 벡터의 교차 판정을 행하여, 교차한다고 판정된 경우, 그 교차점의 좌표를 산출한다. 본 개시는, 예를 들어, 화상 처리 장치, 전자 기기, 화상 처리 방법, 또는 프로그램 등에 적용할 수 있다.

Description

화상 처리 장치 및 방법
본 개시는, 화상 처리 장치 및 방법에 관한 것으로서, 특히, 메쉬로부터 포인트 클라우드를 생성할 때의 부하의 증대를 억제할 수 있도록 한 화상 처리 장치 및 방법에 관한 것이다.
종래, 예를 들어 포인트 클라우드(Point cloud)와 같은 3차원 구조를 나타내는 3D 데이터의 부호화 방법으로서, 예를 들어 Octree를 사용한 부호화가 있었다(예를 들어 비특허문헌 1 참조).
근년, 대상(3D) 오브젝트를 복셀(Voxel)화한 후, Octree 부호화와 메쉬(Mesh) 부호화(Triangle soup)를 조합하여 부호화하는 것이 제안되었다(예를 들어 비특허문헌 2 참조).
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 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
그러나, 종래의 방법에서는, 메쉬(Mesh)로부터 포인트 클라우드를 생성할 때에, 메쉬의 면에 포인트를 밀(密)하게 샘플링하여, 고밀도의 포인트 클라우드를 생성하고, 그 후, 입력과 동일 정도의 해상도의 복셀 데이터에 리샘플링하고 있었다. 그 때문에 처리량도 처리할 데이터양도 많아, 메쉬로부터 포인트 클라우드를 생성할 때의 부하가 증대할 우려가 있었다.
본 개시는, 이러한 상황을 감안하여 이루어진 것이며, 메쉬로부터 포인트 클라우드를 생성할 때의 부하의 증대를 억제할 수 있도록 하는 것이다.
본 기술의 일측면의 화상 처리 장치는, 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는 포인트 클라우드 생성부를 구비하는 화상 처리 장치이다.
본 기술의 일측면의 화상 처리 방법은, 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는 화상 처리 방법이다.
본 기술의 일측면의 화상 처리 장치 및 방법에 있어서는, 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트가 배치됨으로써 포인트 클라우드 데이터가 생성된다.
도 1은 메쉬로부터 포인트 클라우드를 생성하기 위한 처리에 대하여 설명하는 도면이다.
도 2는 메쉬로부터 포인트 클라우드를 생성하기 위한 처리에 대하여 설명하는 도면이다.
도 3은 교차점의 산출의 모습의 예를 설명하는 도면이다.
도 4는 포인트 클라우드 생성 장치의 주된 구성예를 도시하는 블록도이다.
도 5는 포인트 클라우드 생성 처리의 흐름의 예를 설명하는 흐름도이다.
도 6은 교차점 도출의 모습의 예를 설명하는 도면이다.
도 7은 교차점 도출의 모습의 예를 설명하는 도면이다.
도 8은 교차점 도출의 모습의 예를 설명하는 도면이다.
도 9는 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 10은 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 11은 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 12는 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 13은 Triangle soup의 스케일러블화의 모습의 예를 설명하는 도면이다.
도 14는 포인트 생성의 모습의 예를 설명하는 도면이다.
도 15는 포인트 생성의 모습의 예를 설명하는 도면이다.
도 16은 포인트 생성의 모습의 예를 설명하는 도면이다.
도 17은 포인트 생성의 모습의 예를 설명하는 도면이다.
도 18은 포인트 생성의 모습의 예를 설명하는 도면이다.
도 19는 포인트 클라우드 생성 처리의 흐름의 예를 설명하는 흐름도이다.
도 20은 컴퓨터의 주된 구성예를 도시하는 블록도이다.
이하, 본 개시를 실시하기 위한 형태(이하 실시 형태로 한다)에 대하여 설명한다. 또한, 설명은 이하의 순서로 행한다.
1. 포인트 클라우드의 생성
2. 제1 실시 형태(포인트 클라우드 생성 장치)
3. 제2 실시 형태(복호 장치)
4. 제3 실시 형태(부호화 장치)
5. 제4 실시 형태(Triangle soup의 스케일러블화)
6. 부기
<1. 포인트 클라우드의 생성>
<기술 내용·기술 용어를 서포트하는 문헌 등>
본 기술에서 개시되는 범위는, 실시 형태에 기재되어 있는 내용뿐만 아니라, 출원 당시에 있어서 공지로 되어 있는 이하의 비특허문헌에 기재되어 있는 내용도 포함된다.
비특허문헌 1: (전술)
비특허문헌 2: (전술)
비특허문헌 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의 최하위의 노드의 각 비트의 값이, 각 복셀의 포인트의 유무를 나타낸다. 예를 들어, 값 「1」이 포인트를 내포하는 복셀을 나타내고, 값 「0」이 포인트를 내포하지 않는 복셀을 나타낸다. Octree에서는, 1 노드가 8개의 복셀에 대응한다. 즉, Octree의 각 노드는, 8비트의 데이터에 의해 구성되고, 그 8비트가 8개의 복셀의 포인트의 유무를 나타낸다.
그리고, Octree의 상위의 노드는, 그 노드에 속하는 하위 노드에 대응하는 8개의 복셀을 하나로 통합한 영역의 포인트의 유무를 나타낸다. 즉, 하위 노드의 복셀의 정보를 통합함으로써 상위 노드가 생성된다. 또한, 값이 「0」인 노드, 즉, 대응하는 8개의 복셀이 전부 포인트를 내포하지 않는 경우, 그 노드는 삭제된다.
이와 같이 함으로써, 값이 「0」이 아닌 노드을 포함하는 나무 구조(Octree)가 구축된다. 즉, Octree는, 각 해상도의 복셀의 포인트의 유무를 나타낼 수 있다. 따라서, 복셀 데이터를 Octree화하여 부호화함으로써, 복호 시에 보다 다양한 해상도의 복셀 데이터를 보다 용이하게 복원할 수 있다. 즉, 보다 용이하게 복셀의 스케일러빌리티를 실현할 수 있다.
또한, 상술한 바와 같이 값이 「0」의 노드를 생략함으로써, 포인트가 존재하지 않는 영역의 복셀을 저해상도화할 수 있으므로, 더한층의 정보량의 증대의 억제(전형적으로는 정보량의 삭감)를 행할 수 있다.
<Octree와 Mesh의 조합>
근년, 예를 들어 비특허문헌 2에 기재과 같이, 대상(3D) 오브젝트를 복셀(Voxel)화한 후, Octree 부호화와 메쉬(Mesh) 부호화(Triangle soup)를 조합하여 부호화하는 것이 제안되었다.
예를 들어 도 1의 A에 도시한 바와 같이, Octree 데이터가 복호되어서 복셀(Voxel) 데이터가 생성된다. 도 1의 A의 예에서는, 복셀(11-1), 복셀(11-2), 복셀(11-3)이 생성된다.
이어서, 예를 들어 도 1의 B에 도시한 바와 같이, 그 복셀 데이터로부터 메쉬(Mesh) 형상(즉 메쉬의 면)이 복원된다. 도 1의 B의 예에서는, 복셀(11-1), 복셀(11-2), 복셀(11-3)에 기초하여 메쉬의 면(12)이 복원된다.
이어서, 예를 들어 도 1의 C에 도시한 바와 같이, 그 메쉬의 면(12)에 1/(2*blockwidth)의 해상도로 포인트(13)가 배치된다. 또한, blockwidth란, 메쉬를 포함하는 바운딩 박스(Bounding box)의 가장 긴 변을 나타낸다.
그리고, 예를 들어 도 1의 D에 도시한 바와 같이, 포인트(13)를 지정된 해상도 d로 다시 복셀화한다. 그 때, 메쉬 데이터(면(12) 등)는 제거된다. 즉, 메쉬 데이터로부터, 원하는 해상도의 포인트 클라우드 데이터를 생성할 때에, 일단 고해상도로 샘플링된 포인트(13)의 해상도(포인트수)가 저감되도록 리샘플링이 행하여진다.
그러나, 이러한 방법에서는, 샘플링을 2회 행해야 하여, 처리가 용장하다. 또한, 고밀도의 포인트 클라우드를 샘플링하기 때문에, 데이터양이 증대한다. 그 때문에, 메쉬로부터 포인트 클라우드를 생성할 때의 부하가 증대할 우려가 있었다. 그에 따라, 처리 시간의 증대나, 메모리 등의 리소스 사용량이 증대할 우려가 있었다.
<포인트 클라우드의 해상도 제어>
그래서, 출력 포인트 클라우드의 해상도가, 입력 포인트 클라우드를 복셀화한 해상도와 동일한 것을 이용하여, 복셀의 판정 횟수를 한정함으로써 고속으로 포인트 클라우드를 생성하도록 한다.
보다 구체적으로는, 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하도록 한다.
예를 들어, 화상 처리 장치에 있어서, 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는 포인트 클라우드 생성부를 구비하도록 한다.
이와 같이 함으로써, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, 메쉬로부터 포인트 클라우드를 생성할 때의 부하의 증대를 억제할 수 있다. 이에 의해, 처리 시간의 증대나, 메모리 등의 리소스 사용량의 증대를 억제할 수 있다. 전형적으로는, 처리 시간을 저감시켜, 메모리 등의 리소스 사용량을 저감시킬 수 있다. 또한, 보다 고속으로 포인트 클라우드를 생성할 수 있다.
<포인트 클라우드의 도출>
이어서, 이 포인트 클라우드의 도출 방법에 대하여 보다 구체적으로 설명한다. 먼저, 도 2의 예와 같이, 부호화 대상의 데이터를 포함하는 바운딩 박스(Bounding box)의 변과, 동일한 방향 및 동일한 길이를 갖는 벡터 Vi를 간격 k*d로 생성한다. 도 2에 있어서는, 바운딩 박스(21) 내에 존재하는 메쉬의 면(22)에 대하여 화살표(23)로 나타낸 바와 같은 벡터 Vi가 설정된다. d는, 바운딩 박스를 복셀화할 때의 양자화 사이즈이다. k는 임의의 자연수이다. 즉, 지정된 복셀 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터 Vi가 설정된다.
다음으로 설정한 벡터 Vi(화살표(23))와, 디코드한 메쉬의 면(22)(즉 삼각Mesh)의 교차 판정을 행한다. 벡터 Vi와 삼각형의 면(22)이 교차하는 경우에는, 그 교차점(24)의 좌표값을 계산한다.
또한, 이 벡터 Vi의 방향으로서, 서로 수직인 x,y,z 각 방향(바운딩 박스의 각 변에 평행한 방향)에 대하여 정부 2개의 방향을 설정할 수 있다. 즉, 6종류의 방향의 벡터 Vi에 대해서, 각각, 교차 판정을 행하게 해도 된다. 이와 같이, 보다 많은 방향으로 교차 판정을 행함으로써, 보다 확실하게 교차점을 검출할 수 있다.
또한, 벡터 Vi의 개시점은, 삼각 Mesh의 3개의 정점의 범위 내에 한정하게 해도 된다. 이와 같이 함으로써, 처리할 벡터 Vi의 수를 저감시킬 수 있으므로, 부하의 증대를 억제할 수 있다(예를 들어, 처리를 보다 고속화할 수 있다).
또한, 보조 처리로서, 다른 벡터 또는 메쉬(Mesh)에 의해, 교차점의 좌표값이 중복된 경우에는, 1점을 남기고 삭제를 행하게 해도 된다. 이렇게 중복된 점을 제거함으로써, 불필요한 처리의 증대를 억제하여, 부하의 증대를 억제할 수 있다(예를 들어, 처리를 보다 고속화할 수 있다).
또한, 보조 처리로서, 교차점의 좌표값이 바운딩 박스(Bounding box)의 외측이 된 경우, 클립(Clip) 처리에 의해 그 교차점의 위치를 바운딩 박스 내에 클립하도록(이동시키도록) 해도 된다. 또한, 그 교차점을 삭제하게 해도 된다.
이상과 같이, 구해진 좌표값을 갖는 포인트를, 디코드 결과로서 출력한다. 즉, 구해진 좌표값에 포인트가 배치된다. 이와 같이 함으로써, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, 메쉬로부터 포인트 클라우드를 생성할 때의 부하의 증대를 억제할 수 있다.
<교차 판정 및 좌표값 산출>
또한, 교차 판정 및 좌표값 산출의 방법은 임의이다. 예를 들어, 도 3과 같이 크래머의 공식을 사용하여 구하게 해도 된다. 예를 들어, P는 교점 좌표, origin은 레이의 좌표, ray는 방향 벡터, t는 스칼라값으로 하고, 레이를 통과하는 교점을 직선식으로 이하와 같이 나타낸다.
P=origin+ray*t
또한, vo는 삼각형의 정점 좌표, edge1은 좌표 v1로부터 v0을 뺀 벡터, edge2도 동일한 요령으로 좌표 v2로부터 v0을 뺀 벡터. 점 P는 v0으로부터 벡터edge1 방향으로 u(스칼라값)로 하고, 삼각형 상의 교점을 에지의 벡터로 이하와 같이 나타낸다.
P=v0+edge1*u+edge2*v
이 2개의 식을 연결시키면, 연립 방정식이 된다.
origin+ray*t=v0+edge1*u+edge2*v
정리하면 이하와 같이 나타낼 수 있다.
edge1*u+edge2*v·ray*t=origin·v0
이와 같이 3차원 연립 1차원 방정식의 형태가 되므로, 행렬식으로서 크래머의 공식으로 기계적으로 계산할 수 있다.
<2. 제1 실시 형태>
<포인트 클라우드 생성 장치>
이어서, 이상과 같은 처리를 실현하는 구성에 대하여 설명한다. 도 4는, 본 기술을 적용한 화상 처리 장치의 일 양태인 포인트 클라우드 생성 장치의 구성의 일례를 도시하는 블록도이다. 도 4에 도시되는 포인트 클라우드 생성 장치(100)는 <1. 포인트 클라우드의 생성>에 있어서 설명한 바와 같이, 메쉬로부터 포인트 클라우드를 생성하는 장치이다.
또한, 도 4에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 나타내고 있어, 도 4에 도시되는 것이 전부라고는 할 수 없다. 즉, 포인트 클라우드 생성 장치(100)에 있어서, 도 4에 있어서 블록으로서 도시하고 있지 않은 처리부가 존재하거나, 도 4에 있어서 화살표 등으로서 도시하고 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다.
도 4에 도시된 바와 같이 포인트 클라우드 생성 장치(100)는 벡터 설정부(111), 교차 판정부(112), 보조 처리부(113), 및 출력부(114)를 갖는다.
벡터 설정부(111)는 예를 들어 <포인트 클라우드의 도출>에 있어서 상술한 바와 같이, 교차 판정용의 벡터 Vi를 설정(생성)한다. 이 벡터 Vi는, 상술한 바와 같이, 부호화 대상의 데이터를 포함하는 바운딩 박스의 변과, 동일한 방향 및 동일한 길이를 갖는 벡터이다. 벡터 설정부(111)는 설정한 벡터 Vi를 나타내는 벡터 정보를 교차 판정부(112)에 공급한다.
교차 판정부(112)는 포인트 클라우드 생성 장치(100)에 입력된 메쉬(Mesh) 데이터를 취득하고, 또한, 벡터 설정부(111)로부터 공급되는 벡터 정보를 취득한다. 교차 판정부(112)는 예를 들어 <포인트 클라우드의 도출>이나 <교차 판정 및 좌표값 산출> 등에 있어서 상술한 바와 같이, 취득한 메쉬 데이터가 나타내는 메쉬의 면과, 벡터 정보가 나타내는 벡터 Vi의 교차 판정을 행한다. 교차 판정부(112)는 교차점이 검출된 경우, 그 좌표값을 산출한다. 교차 판정부(112)는 산출한 교차점의 좌표값(교차점 좌표)을 보조 처리부(113)에 공급한다.
보조 처리부(113)는 교차 판정부(112)로부터 공급되는 교차점 좌표를 취득하고, 예를 들어 <포인트 클라우드의 도출>에 있어서 상술한 바와 같이, 그 교차점에 대한 보조 처리를 행한다. 보조 처리부(113)는 필요에 따라 보조 처리를 행한 교차점 좌표를 출력부(114)에 공급한다.
출력부(114)는 보조 처리부(113)로부터 공급된 교차점 좌표를 포인트 클라우드 데이터(의 위치 정보)로서 포인트 클라우드 생성 장치(100)의 외부로 출력한다. 즉, 도출된 교차점 좌표에 포인트가 배치된 포인트 클라우드 데이터가 생성되어, 출력된다.
또한, 이들 처리부(벡터 설정부(111) 내지 출력부(114))는 임의의 구성을 갖는다. 예를 들어, 각 처리부가, 상술한 처리를 실현하는 논리 회로에 의해 구성되게 해도 된다. 또한, 각 처리부가, 예를 들어 CPU(Central Processing Unit), ROM(Read Only Memory), RAM(Random Access Memory) 등을 갖고, 그들을 사용하여 프로그램을 실행함으로써, 상술한 처리를 실현하게 해도 된다. 물론, 각 처리부가, 그 양쪽의 구성을 갖고, 상술한 처리의 일부를 논리 회로에 의해 실현하고, 기타를, 프로그램을 실행함으로써 실현하게 해도 된다. 각 처리부의 구성은 서로 독립하고 있어도 되고, 예를 들어, 일부의 처리부가 상술한 처리의 일부를 논리 회로에 의해 실현하고, 다른 일부의 처리부가 프로그램을 실행함으로써 상술한 처리를 실현하고, 또한 다른 처리부가 논리 회로와 프로그램의 실행 양쪽에 의해 상술한 처리를 실현하게 해도 된다.
이러한 구성으로 함으로써, 포인트 클라우드 생성 장치(100)는 <1. 포인트 클라우드의 생성>에 있어서 설명한 바와 같은 효과를 얻을 수 있다. 예를 들어, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, 포인트 클라우드 생성 장치(100)의 제조 비용을 저감시킬 수 있다.
<포인트 클라우드 생성 처리의 흐름>
이어서, 이 포인트 클라우드 생성 장치(100)에 의해 실행되는 포인트 클라우드 생성 처리의 흐름의 예를, 도 5의 흐름도를 참조하여 설명한다.
포인트 클라우드 생성 처리가 개시되면, 교차 판정부(112)는 스텝 S101에 있어서, 메쉬(Mesh) 데이터를 취득한다.
스텝 S102에 있어서, 벡터 설정부(111)는 지정된 복셀(Voxel) 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터 Vi(부호화 대상의 데이터를 포함하는 바운딩 박스의 변과, 동일한 방향 및 동일한 길이를 갖는 벡터)를 설정한다.
스텝 S103에 있어서, 교차 판정부(112)는 스텝 S102에 있어서 설정된 벡터 Vi와, 스텝 S101에 있어서 취득한 메쉬 데이터가 나타내는 메쉬의 면(삼각형)의 교차 판정을 행한다.
스텝 S104에 있어서, 교차 판정부(112)는 스텝 S103에 있어서 검출된 교차점의 좌표를 산출한다.
스텝 S105에 있어서, 보조 처리부(113)는 중복되는 교차점을, 1점을 남기고 삭제한다.
스텝 S106에 있어서, 보조 처리부(113)는 바운딩 박스 외의 교차점을 처리(예를 들어, 클립 처리하거나, 삭제하거나)한다.
스텝 S107에 있어서, 출력부(114)는 이상과 같이 구해진 교차점의 좌표를 포인트 클라우드의 데이터(위치 정보)로서 출력한다.
스텝 S107의 처리가 종료하면, 포인트 클라우드 생성 처리가 종료한다.
또한, 이상의 각 처리는, <1. 포인트 클라우드의 생성>에 있어서 상술한 예와 마찬가지로 행하여진다. 따라서, 이상의 각 처리를 실행함으로써, 포인트 클라우드 생성 장치(100)는 <1. 포인트 클라우드의 생성>에 있어서 설명한 바와 같은 효과를 얻을 수 있다. 예를 들어, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, 포인트 클라우드 생성 장치(100)의 제조 비용을 저감시킬 수 있다.
<면 내부의 교차점의 저감>
또한, 이상과 같은 교차 판정에 있어서, 면의 단부에 대한 교차 판정의 경우보다도 소(疎)한 벡터 Vi를 사용하여, 면의 내부에 대한 교차 판정을 행하게 해도 된다. 예를 들어, 도 6의 예과 같이, 면(201)에 대하여 벡터 Vi(202-1) 내지 벡터 Vi(202-8)를 사용하여 교차 판정을 행하게 해도 된다. 이 예에 있어서, 벡터 Vi(202-1) 내지 벡터 Vi(202-8)의 간격은, 벡터 Vi(202-1) 내지 벡터 Vi(202-3)와, 벡터 Vi(202-6) 내지 벡터 Vi(202-8)가 좁다. 환언하자면, 벡터 Vi(202-3) 내지 벡터 Vi(202-6)의 간격이 기타 벡터 Vi의 간격에 비하여 넓게 설정되어 있다. 즉, 면(201)의 단부에 대한 교차 판정에 사용되는 벡터 Vi(202-1) 내지 벡터 Vi(202-3), 그리고, 벡터 Vi(202-6) 내지 벡터 Vi(202-8)의 간격이 좁게 설정되고(밀함), 면(201)의 내부에 대한 교차 판정에 사용되는 벡터 Vi(202-3) 내지 벡터 Vi(202-6)의 간격이 넓게 설정되어 있다(소함).
이와 같이, 삼각형의 내부에서는, 일부러 소한 폭으로 벡터 Vi의 충돌 판정을 행함(개시 원점의 폭을 성기게 함)으로써, 내부에 있어서 생성되는 점을 적게 할 수 있다. 따라서, 포인트 클라우드의 속성 정보(색 정보 등)의 부호화 비트 레이트의 증대를 억제할 수 있다.
<교차 판정의 생략>
또한, 한번 교차 판정을 행한 좌표는 두번 계산하지 않도록 해도 된다. 예를 들어, 도 7의 예과 같이, 하나의 벡터 Vi(211)에 대하여 복수의 메쉬의 면(면(212) 및 면(213))이 있는 경우에, 하나의 벡터 Vi(211)에 대하여 동시에 교차 판정을 함으로써, 처리를 보다 고속화할 수 있다.
<디노이즈 처리의 추가>
또한, 도 8에 도시한 바와 같이, 하나의 벡터 Vi(221)가 복수의 삼각형(면(222) 및 면(223))과 교차하고, 또한 그 삼각형의 사이에 공간이 있는 경우, 그 공간에 포인트(도면 중, 흑점)를 생성함으로써 구멍 메우기(디노이즈)를 행하게 해도 된다. 이와 같이 함으로써, 보다 고정밀도의 포인트 클라우드를 생성할 수 있다. 즉, 그 표시 화상의 화질의 저감을 억제할 수 있다(전형적으로는, 화질을 향상시킬 수 있다).
<처리의 병렬화>
또한, 이상과 같은 교차 판정은, 복수의 처리를 병렬로 행하도록 해도 된다. 예를 들어, 메쉬의 하나의 면에 대한 복수의 벡터의 교차 판정을 서로 병렬로 처리하도록(병행하여 처리를 행하도록) 해도 된다. 즉, 벡터마다 처리를 독립적으로 행하도록 해도 된다. 이와 같이 함으로써, 보다 고속으로 교차 판정을 행할 수 있다.
또한, 예를 들어, 하나의 벡터에 대한 복수의 면의 각각의 교차 판정을, 서로 병렬로 처리하도록(병행하여 처리를 행하도록) 해도 된다. 즉, 메쉬의 면마다 처리를 독립적으로 행하도록 해도 된다. 이와 같이 함으로써, 보다 고속으로 교차 판정을 행할 수 있다.
<3. 제2 실시 형태>
<복호 장치>
도 9는, 본 기술을 적용한 화상 처리 장치의 일 양태인 복호 장치의 구성의 일례를 도시하는 블록도이다. 도 9에 도시하는 복호 장치(300)는 후술하는 도 11의 부호화 장치(500)에 대응하는 복호 장치이며, 예를 들어 이 부호화 장치(500)에 의해 생성된 비트 스트림을 복호하여, 포인트 클라우드의 데이터를 복원하는 장치이다.
또한, 도 9에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 도시하고 있어, 도 9에 도시하는 것이 전부라고는 할 수 없다. 즉, 복호 장치(300)에 있어서, 도 9에 있어서 블록으로서 도시하고 있지 않은 처리부가 존재하거나, 도 9에 있어서 화살표 등으로서 도시하고 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다.
도 9에 도시한 바와 같이 복호 장치(300)는 가역 복호부(311), Octree 복호부(312), Mesh 형상 복원부(313), Point cloud 생성부(314), 및 Attribute 복호부(315)를 갖는다.
가역 복호부(311)는 복호 장치(300)에 입력되는 비트 스트림을 취득하고, 그 비트 스트림을 복호하여, Octree 데이터를 생성한다. 가역 복호부(311)는 그 Octree 데이터를 Octree 복호부(312)에 공급한다.
Octree 복호부(312)는 가역 복호부(311)로부터 공급되는 Octree 데이터를 취득하고, 그 Octree 데이터로부터 Octree를 구축하고, 그 Octree로부터 복셀(Voxel) 데이터를 생성한다. Octree 복호부(312)는 생성한 복셀 데이터를 Mesh 형상 복원부(313)에 공급한다.
Mesh 형상 복원부(313)는 Octree 복호부(312)로부터 공급되는 복셀 데이터를 사용하여 메쉬 형상을 복원한다. Mesh 형상 복원부(313)는 생성한 메쉬 데이터를 Point cloud 생성부(314)에 공급한다.
Point cloud 생성부(314)는 Mesh 형상 복원부(313)로부터 공급되는 메쉬 데이터로부터, 포인트 클라우드 데이터를 생성하고, 생성한 포인트 클라우드 데이터를 Attribute 복호부(315)에 공급한다. 이 Point cloud 생성부(314)는 포인트 클라우드 생성 장치(100)(도 4)와 마찬가지의 구성을 갖고, 마찬가지의 처리를 행한다. 즉, Point cloud 생성부(314)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 상술한 바와 같은 방법에 의해, 메쉬 데이터로부터 포인트 클라우드 데이터를 생성한다.
따라서, Point cloud 생성부(314)는 포인트 클라우드 생성 장치(100)와 마찬가지의 효과를 얻을 수 있다. 예를 들어, Point cloud 생성부(314)는 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, Point cloud 생성부(314)는 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, Point cloud 생성부(314)는 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, Point cloud 생성부(314)의 제조 비용을 저감시킬 수 있다.
Attribute 복호부(315)는 속성 정보의 복호에 관한 처리를 행한다. 예를 들어, Attribute 복호부(315)는 Point cloud 생성부(314)로부터 공급되는 포인트 클라우드 데이터에 대응하는 속성 정보를 복호한다. 그리고, Attribute 복호부(315)는 복호한 속성 정보를 Point cloud 생성부(314)로부터 공급되는 포인트 클라우드 데이터에 포함하여 복호 장치(300)의 외부로 출력한다.
또한, 이들 처리부(가역 복호부(311) 내지 Attribute 복호부(315))는 임의의 구성을 갖는다. 예를 들어, 각 처리부가, 상술한 처리를 실현하는 논리 회로에 의해 구성되게 해도 된다. 또한, 각 처리부가, 예를 들어 CPU, ROM, RAM 등을 갖고, 그들을 사용하여 프로그램을 실행함으로써, 상술한 처리를 실현하게 해도 된다. 물론, 각 처리부가, 그 양쪽의 구성을 갖고, 상술한 처리의 일부를 논리 회로에 의해 실현하고, 기타를, 프로그램을 실행함으로써 실현하게 해도 된다. 각 처리부의 구성은 서로 독립하고 있어도 되고, 예를 들어, 일부의 처리부가 상술한 처리의 일부를 논리 회로에 의해 실현하고, 다른 일부의 처리부가 프로그램을 실행함으로써 상술한 처리를 실현하고, 또한 다른 처리부가 논리 회로와 프로그램의 실행 양쪽에 의해 상술한 처리를 실현하게 해도 된다.
이러한 구성으로 함으로써, 복호 장치(300)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 설명한 바와 같은 효과를 얻을 수 있다. 예를 들어, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있으므로, 복호 장치(300)는 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, 예를 들어, 복호 장치(300)는 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, 복호 장치(300)의 제조 비용을 저감시킬 수 있다.
<복호 처리의 흐름>
이어서, 도 10의 흐름도를 참조하여, 복호 장치(300)에 의해 실행되는 복호 처리의 흐름의 예를 설명한다.
복호 처리가 개시되면, 가역 복호부(311)는 스텝 S301에 있어서, 비트 스트림을 취득한다.
스텝 S302에 있어서, 가역 복호부(311)는 스텝 S301에 있어서 취득한 비트 스트림을 가역 복호한다.
스텝 S303에 있어서, Octree 복호부(312)는 Octree를 구축하고, 복셀 데이터를 복원한다.
스텝 S304에 있어서, Mesh 형상 복원부(313)는 스텝 S303에 있어서 복원된 복셀 데이터로부터 메쉬 형상을 복원한다.
스텝 S305에 있어서, Point cloud 생성부(314)는 포인트 클라우드 생성 처리(도 5)를 실행하고, <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 상술한 바와 같은 방법에 의해, 스텝 S304에 있어서 복원된 메쉬 형상으로부터 포인트 클라우드를 생성한다.
스텝 S306에 있어서, Attribute 복호부(315)는 속성 정보(Attribute)의 복호를 행한다.
스텝 S307에 있어서, Attribute 복호부(315)는 스텝 S306에 있어서 복호한 속성 정보를 포인트 클라우드 데이터에 포함하여 출력한다.
스텝 S307의 처리가 종료하면 복호 처리가 종료한다.
이상과 같이, 각 처리를 실행함으로써, 복호 장치(300)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 설명한 바와 같은 효과를 얻을 수 있다.
<4. 제3 실시 형태>
<부호화 장치>
도 11은, 본 기술을 적용한 화상 처리 장치의 일 양태인 부호화 장치의 구성의 일례를 도시하는 블록도이다. 도 11에 도시되는 부호화 장치(500)는 포인트 클라우드와 같은 3D 데이터를 복셀(Voxel) 및 Octree를 사용하여 부호화하는 장치이다.
또한, 도 11에 있어서는, 처리부나 데이터의 흐름 등의 주된 것을 도시하고 있어, 도 11에 도시되는 것이 전부라고는 할 수 없다. 즉, 부호화 장치(500)에 있어서, 도 11에 있어서 블록으로서 도시하고 있지 않은 처리부가 존재하거나, 도 11에 있어서 화살표 등으로서 도시하고 있지 않은 처리나 데이터의 흐름이 존재하거나 해도 된다. 이것은, 부호화 장치(500) 내의 처리부 등을 설명하는 그 외의 도면에 있어서도 마찬가지이다.
도 11에 도시되는 바와 같이 부호화 장치(500)는 Voxel 생성부(511), Geometry 부호화부(512), Geometry 복호부(513), Attribute 부호화부(514), 및 비트 스트림 생성부(515)를 갖는다.
Voxel 생성부(511)는 부호화 장치(500)에 입력되는 포인트 클라우드(Point cloud) 데이터를 취득하고, 그 취득한 포인트 클라우드 데이터를 포함하는 영역에 대하여 바운딩 박스를 설정하고, 또한 그 바운딩 박스를 분할하여, 복셀을 설정함으로써, 그 포인트 클라우드 데이터의 위치 정보를 양자화한다. Voxel 생성부(511)는 이와 같이 하여 생성한 복셀(Voxel) 데이터를 Geometry 부호화부(512)에 공급한다.
Geometry 부호화부(512)는 Voxel 생성부(511)로부터 공급되는 복셀 데이터를 부호화하고, 포인트 클라우드의 위치 정보를 부호화한다. Geometry 부호화부(512)는 생성한 포인트 클라우드의 위치 정보의 부호화 데이터를 비트 스트림 생성부(515)에 공급한다. 또한, Geometry 부호화부(512)는 포인트 클라우드의 위치 정보를 부호화할 때에 생성되는 Octree 데이터를 Geometry 복호부(513)에 공급한다.
Geometry 복호부(513)는 그 Octree 데이터를 복호하여, 포인트 클라우드의 위치 정보를 생성한다. Geometry 복호부(513)는 생성한 포인트 클라우드 데이터(위치 정보)를 Attribute 부호화부(514)에 공급한다.
Attribute 부호화부(514)는 입력되는 인코드 파라미터(encode parameter)에 기초하여, 포인트 클라우드 데이터(위치 정보)에 대응하는 속성 정보를 부호화한다. Attribute 부호화부(514)는 생성한 속성 정보의 부호화 데이터를 비트 스트림 생성부(515)에 공급한다.
비트 스트림 생성부(515)는 Geometry 부호화부(512)로부터 공급되는 위치 정보의 부호화 데이터와, Attribute 부호화부(514)로부터 공급되는 속성 정보의 부호화 데이터를 포함하는 비트 스트림을 생성하여, 부호화 장치(500)의 외부로 출력한다.
<Geometry 부호화부>
Geometry 부호화부(512)는 Octree 생성부(521), Mesh 생성부(522), 및 가역 부호화부(523)를 갖는다.
Octree 생성부(521)는 Voxel 생성부(511)로부터 공급되는 복셀 데이터를 사용하여 Octree를 구축하고, Octree 데이터를 생성한다. Octree 생성부(521)는 생성한 Octree 데이터를 Mesh 생성부(522)에 공급한다.
Mesh 생성부(522)는 Octree 생성부(521)로부터 공급된 Octree 데이터를 사용하여 메쉬 데이터를 생성하고, 그것을 가역 부호화부(523)에 공급한다. 또한, Mesh 생성부(522)는 Octree 데이터를 Geometry 복호부(513)에 공급한다.
가역 부호화부(523)는 Mesh 생성부(522)로부터 공급되는 Mesh 데이터를 취득한다. 또한, 가역 부호화부(523)는 부호화 장치(500)의 외부로부터 입력되는 인코드 파라미터를 취득한다. 이 인코드 파라미터는, 적용할 부호화의 타입을 지정하는 정보이며, 예를 들어 유저 조작에 의해 입력되거나, 외부의 장치 등으로부터 공급되거나 한다. 가역 부호화부(523)는 이 인코드 파라미터에 의해 지정되는 타입으로 메쉬 데이터를 부호화하여, 위치 정보의 부호화 데이터를 생성한다. 가역 부호화부(523)는 그 위치 정보를 비트 스트림 생성부(515)에 공급한다.
<Geometry 복호부>
Geometry 복호부(513)는 Octree 복호부(531), Mesh 형상 복원부(532), 및 Point cloud 생성부(533)를 갖는다.
Octree 복호부(531)는 Geometry 부호화부(512)로부터 공급된 Octree 데이터를 복호하여, 복셀 데이터를 생성한다. Octree 복호부(531)는 생성한 복셀 데이터를 Mesh 형상 복원부(532)에 공급한다.
Mesh 형상 복원부(532)는 Octree 복호부(531)로부터 공급된 복셀 데이터를 사용하여 메쉬 형상을 복원하여, 그 메쉬 데이터를 Point cloud 생성부(533)에 공급한다.
Point cloud 생성부(533)는 Mesh 형상 복원부(532)로부터 공급되는 메쉬 데이터로부터, 포인트 클라우드 데이터를 생성하고, 생성한 포인트 클라우드 데이터를 Attribute 부호화부(514)에 공급한다. 이 Point cloud 생성부(533)는 포인트 클라우드 생성 장치(100)(도 4)와 마찬가지의 구성을 갖고, 마찬가지의 처리를 행한다. 즉, Point cloud 생성부(533)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 상술한 바와 같은 방법에 의해, 메쉬 데이터로부터 포인트 클라우드 데이터를 생성한다.
따라서, Point cloud 생성부(533)는 포인트 클라우드 생성 장치(100)와 마찬가지의 효과를 얻을 수 있다. 예를 들어, Point cloud 생성부(533)는 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있다. 따라서, Point cloud 생성부(533)는 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, Point cloud 생성부(533)는 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, Point cloud 생성부(533)의 제조 비용을 저감시킬 수 있다.
또한, 이들 처리부(Voxel 생성부(511) 내지 Attribute 부호화부(514), Octree 생성부(521) 내지 가역 부호화부(523), 그리고, Octree 복호부(531) 내지 Point cloud 생성부(533))는 임의의 구성을 갖는다. 예를 들어, 각 처리부가, 상술한 처리를 실현하는 논리 회로에 의해 구성되게 해도 된다. 또한, 각 처리부가, 예를 들어 CPU, ROM, RAM 등을 갖고, 그들을 사용하여 프로그램을 실행함으로써, 상술한 처리를 실현하게 해도 된다. 물론, 각 처리부가, 그 양쪽의 구성을 갖고, 상술한 처리의 일부를 논리 회로에 의해 실현하고, 기타를, 프로그램을 실행함으로써 실현하게 해도 된다. 각 처리부의 구성은 서로 독립하고 있어도 되고, 예를 들어, 일부의 처리부가 상술한 처리의 일부를 논리 회로에 의해 실현하고, 다른 일부의 처리부가 프로그램을 실행함으로써 상술한 처리를 실현하고, 또한 다른 처리부가 논리 회로와 프로그램의 실행 양쪽에 의해 상술한 처리를 실현하게 해도 된다.
이러한 구성으로 함으로써, 부호화 장치(500)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 설명한 바와 같은 효과를 얻을 수 있다. 예를 들어, 메쉬로부터 1회의 처리로 입력 해상도 상당의 복셀 데이터를 생성할 수 있으므로, 부호화 장치(500)는 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, 예를 들어, 부호화 장치(500)는 보다 고속으로 비트 스트림을 생성할 수 있다. 또한, 예를 들어, 부호화 장치(500)의 제조 비용을 저감시킬 수 있다.
<부호화 처리의 흐름>
이어서, 도 12의 흐름도를 참조하여, 부호화 장치(500)에 의해 실행되는 부호화 처리의 흐름의 예를 설명한다.
부호화 처리가 개시되면, Voxel 생성부(511)는 스텝 S501에 있어서, 포인트 클라우드 데이터를 취득한다.
스텝 S502에 있어서, Voxel 생성부(511)는 그 포인트 클라우드 데이터를 사용하여 복셀 데이터를 생성한다.
스텝 S503에 있어서, Octree 생성부(521)는 그 복셀 데이터를 사용하여 Octree를 구축하고, Octree 데이터를 생성한다.
스텝 S504에 있어서, Mesh 생성부(522)는 그 Octree 데이터에 기초하여, 메쉬 데이터를 생성한다.
스텝 S505에 있어서, 가역 부호화부(523)는 그 메쉬 데이터를 가역 부호화하여, 포인트 클라우드의 위치 정보의 부호화 데이터를 생성한다.
스텝 S506에 있어서, Octree 복호부(531)는 스텝 S503에 있어서 생성된 Octree 데이터를 사용하여 복셀 데이터를 복원한다.
스텝 S507에 있어서, Mesh 형상 복원부(532)는 그 복셀 데이터로부터 Mesh 형상을 복원한다.
스텝 S508에 있어서, Point cloud 생성부(533)는 포인트 클라우드 생성 처리(도 5)를 실행하고, <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 상술한 바와 같은 방법에 의해, 그 메쉬 형상으로부터 포인트 클라우드 데이터를 생성한다.
스텝 S509에 있어서, Attribute 부호화부(514)는 그 포인트 클라우드 데이터를 사용하여 속성 정보를 부호화한다.
스텝 S510에 있어서, 비트 스트림 생성부(515)는 스텝 S505에 있어서 생성된 위치 정보의 부호화 데이터와, 스텝 S509에 있어서 생성된 속성 정보의 부호화 데이터를 포함하는 비트 스트림을 생성한다.
스텝 S511에 있어서, 비트 스트림 생성부(515)는 그 비트 스트림을 부호화 장치(500)의 외부로 출력한다.
스텝 S511의 처리가 종료하면, 부호화 처리가 종료한다.
이상과 같이, 각 처리를 실행함으로써, 부호화 장치(500)는 <1. 포인트 클라우드의 생성>이나 <2. 제1 실시 형태>에 있어서 설명한 바와 같은 효과를 얻을 수 있다.
<5. 제4 실시 형태>
<Triangle soup의 스케일러블화>
이상에 있어서는, Triangle soup에 있어서, 지정된 복셀 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터와 메쉬의 면의 교차점에 포인트가 생성되어, 포인트 클라우드 데이터가 생성되는 것으로 설명하였다. 이에 한정하지 않고, 메쉬로부터 임의의 해상도로 포인트 클라우드 데이터를 생성하도록 해도 된다.
예를 들어, 도 13에 도시한 바와 같이, 보다 저해상도의 계층(LoD=0 내지 2)에 Octree가 적용되고, 그것보다 고해상도의 계층에는 Triangle soup이 적용되어 있는 것으로 한다. Octree가 적용된 계층에 대해서는, 복호에 있어서 해상도의 스케일러빌리티를 실현할(어느 계층의 해상도로 포인트 클라우드 데이터를 생성할지를 선택할) 수 있다.
그것보다 하위의 계층에 대해서는, 벡터 Vi의 간격 d=1로 함으로써, Triangle soup에 의해, LoD=4 상당의 해상도의 포인트 클라우드 데이터가 얻어진다. 예를 들어, 도 13의 경우, LoD=2 상당의 복셀(601)(도면 중 가장 우측의 복셀(601))에는, 메쉬의 하나의 삼각형상의 면(602)이 포함되어 있다.
그리고, 이 복셀(601)의 각 면을 개시 원점으로 하고, 그 면에 대하여 수직인 벡터 Vi(603)가, 이 복셀(601)의 각 변을 4등분하는 간격(d=1)으로 설정된다. 도 13에 있어서는, 1개의 화살표에만 부호를 붙이고 있지만, 복셀(601) 내(복셀(601)의 단을 포함한다)의 모든 화살표가 벡터 Vi(603)이다.
그리고, 이 벡터 Vi(603)와 메쉬의 면(602)의 교차점에 위치하는 포인트(604)가 도출된다. 도 13에 있어서는, 1개의 점에만 부호를 붙이고 있지만, 복셀(601) 내(복셀(601)의 단을 포함한다)에 나타나는 모든 점이 포인트(604)이다.
이와 같이 함으로써, LoD=4 상당의 해상도의 포인트 클라우드 데이터가 얻어진다.
즉, 지정된 복셀 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터 Vi를 설정함으로써, 최종 해상도의 포인트 클라우드 데이터가 얻어진다. 최종 해상도란 미리 정해진 최고 해상도를 나타낸다. 예를 들어, 부호화·복호의 경우, 최고 해상도는, Octree나 메쉬 등을 사용하여 부호화하기 전의 포인트 클라우드 데이터의 해상도를 나타낸다.
여기서, 이렇게 하는 대신, 벡터 Vi(603)의 간격을 d=2로 하면(즉, 벡터 Vi(603)의 간격을 2배로 넓히면), 도 13의 우측으로부터 2번째의 복셀(601)과 같이 포인트(604)(면(602)과 벡터 Vi(603))가 도출된다. 즉, LoD=3 상당의 해상도의 포인트 클라우드 데이터가 얻어진다.
도 14는, 설명의 간략화를 위해서, 복셀(601)의 모습을 평면으로 나타낸 것이다. 복셀(601) 내(복셀(601)의 단도 포함한다)의, 복셀(601)에 4변의 어느 것에 평행한 모든 실선 및 점선은, 최종 해상도(예를 들어 Lod=4)의 간격(d=1)의 벡터 Vi(603)를 나타내고 있다. 이들 벡터 Vi(603)와 메쉬의 면(602)의 교차점에 위치하는 포인트(604)가 도출된다.
도 14에 있어서, 실선으로 나타내어지는 벡터 Vi(603)와, 점선으로 나타내어지는 벡터 Vi(603)가 교대로 배치되어 있다. 즉, 실선으로 나타내어지는 벡터 Vi(603)끼리의 간격은 d=2이다. 즉, 실선으로 나타내어지는 벡터 Vi(603)는, 최종 해상도보다도 하나 위의 계층(예를 들어 Lod=3)의 벡터 Vi(603)이다. 이와 같이, 간격 d를 넓히는 것에 의해, 벡터 Vi(603)의 수가 저감되기 때문에, 교차점에 위치하는 포인트(604)의 수도 저감된다. 즉, 포인트 클라우드 데이터의 해상도가 저감된다.
이상과 같이, 벡터 Vi의 간격 d에 의해, 임의의 해상도의 포인트 클라우드 데이터의 도출이 가능해진다. 따라서, Triangle soup의 해상도의 스케일러빌리티의 실현이 가능해진다.
이 벡터 Vi의 간격 d는, 임의의 값을 설정할 수 있다. 예를 들어, 벡터 Vi의 간격 d가 2의 멱승으로 설정되도록 해도 된다. 이와 같이 함으로써, Octree의 계층마다의 해상도 스케일러빌리티가 실현된다. 즉, Octree의 각 계층에 상당하는 해상도의 포인트 클라우드 데이터의 도출이 가능해진다. 예를 들어, Octree의 원하는 계층(도출되는 계층)과 최하위층(최종 해상도의 계층)의 차분을 L(L은, 음이 아닌 정수)이라 하면, d=2L로 함으로써, 그 원하는 계층에 상당하는 해상도의 포인트 클라우드 데이터의 도출이 가능해진다.
또한, L은, 음의 값이어도 된다. L이 음의 값으로 설정됨으로써, 최종 해상도보다도 고해상도의 포인트 클라우드 데이터의 도출이 가능해진다.
또한, 벡터 Vi의 간격 d의 값은, 2의 멱승 이외여도 된다. 벡터 Vi의 간격 d는, 양의 값이라면, 정수여도 되고, 소수여도 된다. 예를 들어, 벡터 Vi의 간격 d의 값이 2의 멱승 이외로 설정됨으로써, Octree의 계층에 상당하는 해상도 이외의 해상도의 포인트 클라우드 데이터의 도출이 가능해진다. 예를 들어, 벡터 Vi의 간격 d의 값이 3으로 설정됨으로써, LoD=2와 LoD=3의 사이의 해상도의 포인트 클라우드 데이터가 얻어진다.
<개시 원점의 위치의 독립화>
예를 들어, 도 14의 경우, 도면 중 세로 방향의 벡터 Vi(603)도, 도면 중 가로 방향의 벡터 Vi(603)도, 모두, 도면 중에 도시하는 식별 번호 0, 2, 4, 6, 8의 벡터 Vi(603)가, 1 계층 상위의 벡터 Vi(603)로서 채용되어 있다. 환언하자면, 1 계층 상위에 있어서는, 도면 중에 도시하는 식별 번호 1, 3, 5, 7의 벡터 Vi(603)(점선으로 나타내어지는 벡터 Vi(603))가 씨닝되어 있다.
이와 같이 1 계층 상위에 있어서 채용되는 벡터 Vi(603)(환언하자면, 씨닝되는 벡터 Vi(603))가 그 벡터 Vi(603)의 방향마다(즉, 서로 수직인 3축 방향(x,y,z 방향)마다), 독립적으로 설정되도록 해도 된다. 환언하자면, 각 벡터 Vi(603)의 개시 원점의, 서로 수직인 3축 방향(x,y,z 방향)의 위치가, 그 방향마다 서로 독립하고 있어도 된다.
예를 들어, 도 15의 경우, 도면 중 세로 방향의 벡터 Vi(603)는, 도면 중에 도시하는 식별 번호 1, 3, 5, 7의 벡터 Vi(603)가, 1 계층 상위의 벡터 Vi(603)로서 채용되어 있다. 이에 반해, 도면 중 가로 방향의 벡터 Vi(603)는, 도면 중에 도시하는 식별 번호 0, 2, 4, 6, 8의 벡터 Vi(603)가, 1 계층 상위의 벡터 Vi(603)로서 채용되어 있다.
환언하자면, 1 계층 상위에 있어서는, 도면 중에 도시하는 식별 번호 0, 2, 4, 6, 8의 도면 중 세로 방향의 벡터 Vi(603)(점선으로 나타내어지는 벡터 Vi(603))가 씨닝되어 있다. 이에 반해, 1 계층 상위에 있어서는, 도면 중에 도시하는 식별 번호 1, 3, 5, 7의 도면 중 가로 방향의 벡터 Vi(603)(점선으로 나타내어지는 벡터 Vi(603))가 씨닝되어 있다.
이와 같이 함으로써, 도출되는 포인트 클라우드 데이터의 해상도는 바꾸지 않고, 도 14의 경우와 다른 위치에 포인트(604)를 생성시킬 수 있다.
<개시 원점의 간격의 독립화>
예를 들어, 도 14나 도 15의 경우, 1 계층 상위에 있어서는, 도면 중 세로 방향의 벡터 Vi(603)도, 도면 중 가로 방향의 벡터 Vi(603)도, 모두, 반수의 벡터가 씨닝되어 있다. 즉, 벡터 Vi의 간격 d가, 도면 중 세로 방향과 가로 방향에서 서로 동일하다.
이와 같이 1 계층 상위에 있어서 채용되는 벡터 Vi(603)(환언하자면, 씨닝되는 벡터 Vi(603))의 수가, 그 벡터 Vi(603)의 방향마다(즉, 서로 수직인 3축 방향(x,y,z 방향)마다), 독립적으로 설정되도록 해도 된다. 환언하자면, 각 벡터 Vi(603)의 개시 원점의, 서로 수직인 3축 방향(x,y,z 방향)의 간격이, 그 방향마다 서로 독립하고 있어도 된다.
예를 들어, 도 16의 경우, 실선으로 나타내어지는 벡터 Vi(603)만이 채용되어 있는(점선으로 나타내어지는 벡터 Vi(603)가 씨닝되어 있는) 것으로 하면, 도면 중 세로 방향의 벡터 Vi(603)는, 식별 번호 0 내지 8의 모든 벡터 Vi(603)가 채용되어 있는 데 반해, 도면 중 가로 방향의 벡터 Vi(603)는, 도면 중에 도시하는 식별 번호 0, 2, 4, 6, 8의 벡터 Vi(603)만이 채용되어 있다. 즉, 도면 중 세로 방향의 벡터 Vi(603)와 도면 중 가로 방향의 벡터 Vi(603)에서 그 간격이 서로 다르다. 따라서, 생성되는 포인트의 도면 중 세로 방향의 간격과 도면 중 가로 방향의 간격이 서로 다르다. 즉, 도면 중 세로 방향과 도면 중 가로 방향에서, 포인트 클라우드 데이터의 해상도가 서로 다르다.
즉, 이와 같이 함으로써, 벡터 Vi(603)의 방향마다(즉, 서로 수직인 3축 방향(x,y,z 방향)마다) 서로 독립적으로, 포인트 클라우드 데이터의 해상도의 설정이 가능해진다.
<교차점의 일부에 있어서 포인트 생성>
또한, 벡터 Vi와 메쉬의 면의 교차점의 일부에 있어서 포인트를 생성하도록 해도 된다. 환언하자면, 교차점이어도 되고 포인트를 생성하지 않아도 된다. 즉, 포인트를 생성하는 교차점의 수를 저감시킴으로써, 포인트 클라우드의 저해상도화를 실현하도록(즉, 해상도의 스케일러빌리티를 실현하도록) 해도 된다.
포인트를 생성할(또는 포인트를 생성하지 않을) 교차점의 선택 방법은 임의이다. 예를 들어, 도 17에 도시한 바와 같이, 지그재그형으로(3 축방향 각각에 대하여 1개 건너의 교차점에 있어서) 포인트를 생성하도록 해도 된다.
이와 같이 함으로써, 벡터 Vi의 간격(또는 벡터 Vi의 수)에 구애되지 않고 해상도의 스케일러빌리티의 실현이 가능해진다.
<포인트의 추가>
벡터 Vi와 메쉬의 면의 교차점에 위치하지 않는 포인트를 생성하고, 포인트 클라우드 데이터에 포함하도록 해도 된다. 예를 들어, 도 18에 도시한 바와 같이, 교차점이 아니더라도, 벡터 Vi 상의, 메쉬의 면(602)(삼각형)의 각 변에 근사하는 위치에 포인트(611)를 생성하여, 포인트 클라우드 데이터에 포함하도록 해도 된다. 도 18에 있어서, 1개의 점만 부호를 붙이고 있지만, 흰 동그라미로 나타나는 포인트는 전부 상술한 바와 같이 생성된 포인트(611)이다.
또한, 포인트를 생성하는 위치의 판정 방법(도 18의 예의 경우, 각 변으로부터의 근사점의 판정 방법)은 임의이다.
이와 같이 함으로써, 교차점의 위치에 의존하지 않고 포인트를 추가할 수 있으므로, 보다 용이하게, 원하는 부분의 해상도를 향상시킬 수 있다. 예를 들어, 도 18의 경우, 면(602)의 각 변의 근사점을 포인트 클라우드 데이터에 포함함으로써, 면(602)의 각 변의 주변의 해상도를, 다른 부분보다도 향상시킬 수 있다. 이와 같이 함으로써, 포인트 클라우드 데이터에 있어서, 면(602)의 각 변의 구성을 보다 정확하게 표시할 수 있다. 따라서, 메쉬에 의해 표시하는 3차원 구조를, 포인트 클라우드 데이터에 있어서도 보다 정확하게 표시할 수 있다.
<조합>
본 실시 형태에 있어서 상술한 각 방법은, 임의의 복수의 방법을 조합하여 적용할 수 있다. 또한, 본 실시 형태에 있어서 상술한 각 방법은, <포인트 클라우드의 생성>에 있어서 상술한 임의의 방법과도 조합하여 적용할 수 있다.
<방법의 선택>
또한, 본 명세서에 있어서 상술한 각 방법의 일부 또는 전부 중에서 원하는 방법(또는 그 조합)이 선택되어, 적용되게 해도 된다. 그 경우, 그 선택 방법은 임의이다. 예를 들어, 모든 적용 패턴을 평가하여, 최선을 선택하도록 해도 된다. 이와 같이 함으로써, 3차원 구조 등에 가장 적합한 방법에 의해 포인트 클라우드 데이터를 생성할 수 있다.
<포인트 클라우드 생성 장치에의 적용>
본 실시 형태에 있어서 상술한 각 방법도, <1. 포인트 클라우드의 생성>에 있어서 설명한 각 방법과 마찬가지로, 제1 실시 형태에 있어서 상술한 포인트 클라우드 생성 장치(100)에 적용할 수 있다. 그 경우의 포인트 클라우드 생성 장치(100)의 구성은, 도 4를 참조하여 설명한 경우와 마찬가지이다.
이 경우의, 포인트 클라우드 생성 장치(100)에 의해 실행되는 포인트 클라우드 생성 처리의 흐름의 예를, 도 19의 흐름도를 참조하여 설명한다.
포인트 클라우드 생성 처리가 개시되면, 교차 판정부(112)는 스텝 S601에 있어서, 메쉬(Mesh) 데이터를 취득한다.
스텝 S602에 있어서, 벡터 설정부(111)는 복셀의 각 면의, 예를 들어 유저 등에 의해 지정된 해상도에 대응하는 위치 좌표를 개시 원점으로 하는, 그 각 면에 수직인(복셀의 각 변에 평행한) 벡터 Vi를 설정한다.
스텝 S603에 있어서, 교차 판정부(112)는 스텝 S602에 있어서 설정된 벡터 Vi와, 스텝 S601에 있어서 취득한 메쉬 데이터가 나타내는 메쉬의 면(삼각형)의 교차 판정을 행한다.
스텝 S604 내지 스텝 S607의 각 처리는, 스텝 S104 내지 스텝 S107의 각 처리와 마찬가지로 실행된다.
스텝 S607의 처리가 종료하면, 포인트 클라우드 생성 처리가 종료한다.
또한, 이상의 각 처리는, 예를 들어 본 실시 형태에 있어서 상술한 예와 마찬가지로 행하여진다. 따라서, 이상의 각 처리를 실행함으로써, 포인트 클라우드 생성 장치(100)는 예를 들어 본 실시 형태에 있어서 설명한 바와 같은 효과를 얻을 수 있다. 예를 들어, 메쉬로부터 1회의 처리로 임의의 해상도의 복셀 데이터를 생성할 수 있다. 즉, 포인트 클라우드 데이터의 해상도의 스케일러빌리티를 실현할 수 있다.
부언하자면, 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, 포인트 클라우드 생성 장치(100)의 제조 비용을 저감시킬 수 있다.
<복호 장치에의 적용>
또한, 본 실시 형태에 있어서 상술한 각 방법은, <1. 포인트 클라우드의 생성>에 있어서 설명한 각 방법과 마찬가지로, 제2 실시 형태에 있어서 상술한 복호 장치(300)에 적용할 수 있다. 그 경우의 복호 장치(300)의 구성은, 도 9를 참조하여 설명한 경우와 마찬가지이다.
Point cloud 생성부(314)가 본 실시 형태에 있어서 상술한 포인트 클라우드 생성 장치(100)와 마찬가지의 구성을 갖고, 본 실시 형태에 있어서 상술한 바와 같이 메쉬 데이터로부터 포인트 클라우드 데이터를 생성한다.
따라서, Point cloud 생성부(314)는 본 실시 형태의 포인트 클라우드 생성 장치(100)와 마찬가지의 효과를 얻을 수 있다. 예를 들어, Point cloud 생성부(314)는 메쉬로부터 1회의 처리로 임의의 해상도의 복셀 데이터를 생성할 수 있다. 즉, 포인트 클라우드 데이터의 해상도의 스케일러빌리티를 실현할 수 있다.
부언하자면, Point cloud 생성부(314)는 포인트 클라우드 데이터 생성의 부하의 증대를 억제할 수 있다. 따라서, Point cloud 생성부(314)는 예를 들어, 보다 고속으로 포인트 클라우드 데이터를 생성할 수 있다. 또한, 예를 들어, Point cloud 생성부(314)의 제조 비용을 저감시킬 수 있다.
또한, 이 경우, Attribute 복호부(315)가 속성 정보를 스케일러블하게 복호해도 된다. 즉, 속성 정보에 대해서도 해상도의 스케일러빌리티를 실현해도 된다.
또한, 이 경우의 복호 장치(300)에 의해 실행되는 복호 처리는, 제2 실시 형태의 경우(도 10)와 마찬가지의 흐름으로 실행된다. 따라서, 복호 장치(300)는 본 실시 형태에 있어서 상술한 효과(예를 들어, 포인트 클라우드 생성 장치(100)와 마찬가지의 효과)를 얻을 수 있다.
<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)를 구동한다.
이상과 같이 구성되는 컴퓨터에서는, CPU(901)가, 예를 들어, 기억부(913)에 기억되어 있는 프로그램을, 입출력 인터페이스(910) 및 버스(904)를 통하여, RAM(903)에 로드하여 실행함으로써, 상술한 일련의 처리가 행하여진다. RAM(903)에는 또한, CPU(901)가 각종 처리를 실행함에 있어서 필요한 데이터 등도 적절히 기억된다.
컴퓨터(CPU(901))가 실행하는 프로그램은, 예를 들어, 패키지 미디어 등으로서의 리무버블 미디어(921)에 기록하여 적용할 수 있다. 그 경우, 프로그램은, 리무버블 미디어(921)를 드라이브(915)에 장착함으로써, 입출력 인터페이스(910)를 통하여 기억부(913)에 인스톨할 수 있다.
또한, 이 프로그램은, 로컬 에어리어 네트워크, 인터넷, 디지털 위성 방송과 같은, 유선 또는 무선의 전송 매체를 통하여 제공할 수도 있다. 그 경우, 프로그램은, 통신부(914)에서 수신하고, 기억부(913)에 인스톨할 수 있다.
기타, 이 프로그램은, ROM(902)이나 기억부(913)에 미리 인스톨해 둘 수도 있다.
<본 기술의 적용 대상>
이상에 있어서는, 포인트 클라우드 데이터의 부호화·복호에 본 기술을 적용하는 경우에 대하여 설명했지만, 본 기술은, 이들 예에 한하지 않고, 임의의 규격의 3D 데이터의 부호화·복호에 대하여 적용할 수 있다. 즉, 상술한 본 기술과 모순되지 않는 한, 부호화·복호 방식 등의 각종 처리, 그리고, 3D 데이터나 메타데이터 등의 각종 데이터의 사양은 임의이다. 또한, 본 기술과 모순되지 않는 한, 상술한 일부의 처리나 사양을 생략해도 된다.
본 기술은, 임의의 구성에 적용할 수 있다. 예를 들어, 본 기술은, 위성 방송, 케이블 TV 등의 유선 방송, 인터넷 상에서의 배신, 및 셀룰러 통신에 의한 단말기에의 배신 등에 있어서의 송신기나 수신기(예를 들어 텔레비전 수상기 나 휴대 전화기), 또는, 광 디스크, 자기 디스크 및 플래시 메모리 등의 매체에 화상을 기록하거나, 이들 기억 매체로부터 화상을 재생하거나 하는 장치(예를 들어 하드 디스크 레코더나 카메라) 등의, 여러가지 전자 기기에 적용될 수 있다.
또한, 예를 들어, 본 기술은, 시스템 LSI(Large Scale Integration) 등으로서의 프로세서(예를 들어 비디오 프로세서), 복수의 프로세서 등을 사용하는 모듈(예를 들어 비디오 모듈), 복수의 모듈 등을 사용하는 유닛(예를 들어 비디오 유닛), 또는, 유닛에 추가로 기타의 기능을 부가한 세트(예를 들어 비디오 세트) 등, 장치의 일부 구성으로서 실시할 수도 있다.
또한, 예를 들어, 본 기술은, 복수의 장치에 의해 구성되는 네트워크 시스템에도 적용할 수도 있다. 예를 들어, 본 기술을, 네트워크를 통하여 복수의 장치에서 분담, 공동하여 처리하는 클라우드 컴퓨팅으로서 실시하게 해도 된다. 예를 들어, 컴퓨터, AV(Audio Visual) 기기, 휴대형 정보 처리 단말기, IoT(Internet of Things) 디바이스 등의 임의의 단말기에 대하여 화상(동화상)에 관한 서비스를 제공하는 클라우드 서비스에 있어서 본 기술을 실시하게 해도 된다.
또한, 본 명세서에 있어서, 시스템이란, 복수의 구성 요소(장치, 모듈(부품) 등)의 집합을 의미하고, 모든 구성 요소가 동일 하우징 중에 있는지 여부는 묻지 않는다. 따라서, 별개의 하우징에 수납되고, 네트워크를 통하여 접속되어 있는 복수의 장치, 및 하나의 하우징 중에 복수의 모듈이 수납되어 있는 하나의 장치는, 모두, 시스템이다.
<본 기술을 적용 가능한 분야·용도>
본 기술을 적용한 시스템, 장치, 처리부 등은, 예를 들어, 교통, 의료, 방범, 농업, 축산업, 광업, 미용, 공장, 가전, 기상, 자연 감시 등, 임의의 분야에 이용할 수 있다. 또한, 그 용도도 임의이다.
<기타>
또한, 본 명세서에 있어서 「플래그」란, 복수의 상태를 식별하기 위한 정보이며, 참(1) 또는 거짓(0)의 2가지 상태를 식별할 때에 사용하는 정보뿐만 아니라, 3가지 이상의 상태를 식별하는 것이 가능한 정보도 포함된다. 따라서, 이 「플래그」가 취할 수 있는 값은, 예를 들어 1/0의 2치여도 되고, 3치 이상이어도 된다. 즉, 이 「플래그」를 구성하는 bit수는 임의이며, 1bit여도 되고, 복수 bit여도 된다. 또한, 식별 정보(플래그도 포함한다)는 그 식별 정보를 비트 스트림에 포함하는 형태뿐만 아니라, 어떤 기준이 되는 정보에 대한 식별 정보의 차분 정보를 비트 스트림에 포함하는 형태도 상정되기 때문에, 본 명세서에 있어서는, 「플래그」나 「식별 정보」는, 그 정보뿐만 아니라, 기준이 되는 정보에 대한 차분 정보도 포함한다.
또한, 부호화 데이터(비트 스트림)에 관한 각종 정보(메타데이터 등)는 부호화 데이터에 관련지어져 있다면, 어떤 형태로 전송 또는 기록되게 해도 된다. 여기서, 「관련짓는다」라고 하는 용어는, 예를 들어, 한쪽의 데이터를 처리할 때에 다른 쪽의 데이터를 이용할 수 있도록(링크시킬 수 있도록) 하는 것을 의미한다. 즉, 서로 관련지어진 데이터는, 하나의 데이터로서 모아져도 되고, 각각 개별의 데이터로 해도 된다. 예를 들어, 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 전송로 상에서 전송되게 해도 된다. 또한, 예를 들어, 부호화 데이터(화상)에 관련지어진 정보는, 그 부호화 데이터(화상)와는 다른 기록 매체(또는 동일한 기록 매체의 다른 기록 에어리어)에 기록되게 해도 된다. 또한, 이 「관련 지음」은, 데이터 전체가 아니라, 데이터의 일부여도 된다. 예를 들어, 화상과 그 화상에 대응하는 정보가, 복수 프레임, 1 프레임, 또는 프레임 내의 일부분 등의 임의의 단위로 서로 관련지어지게 해도 된다.
또한, 본 명세서에 있어서, 「합성한다」, 「다중화한다」, 「부가한다」, 「일체화한다」, 「포함한다」, 「저장한다」, 「집어 넣는다」, 「끼워 넣는다」, 「삽입한다」 등의 용어는, 예를 들어 부호화 데이터와 메타데이터를 하나의 데이터로 통합한다고 하는, 복수의 물을 하나로 통합함을 의미하고, 상술한 「관련짓는다」의 하나의 방법을 의미한다.
또한, 본 기술의 실시 형태는, 상술한 실시 형태에 한정되는 것은 아니며, 본 기술의 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능하다.
예를 들어, 하나의 장치(또는 처리부)로서 설명한 구성을 분할하여, 복수의 장치(또는 처리부)로서 구성하도록 해도 된다. 반대로, 이상에 있어서 복수의 장치(또는 처리부)로서 설명한 구성을 통합하여 하나의 장치(또는 처리부)로서 구성되게 해도 된다. 또한, 각 장치(또는 각 처리부)의 구성에 상술한 이외의 구성을 부가하도록 해도 물론 된다. 또한, 시스템 전체로서의 구성이나 동작이 실질적으로 동일하면, 어떤 장치(또는 처리부)의 구성의 일부를 다른 장치(또는 다른 처리부)의 구성에 포함하게 해도 된다.
또한, 예를 들어, 상술한 프로그램은, 임의의 장치에 있어서 실행되게 해도 된다. 그 경우, 그 장치가, 필요한 기능(기능 블록 등)을 갖고, 필요한 정보를 얻을 수 있게 하면 된다.
또한, 예를 들어, 하나의 흐름도의 각 스텝을, 하나의 장치가 실행하도록 해도 되고, 복수의 장치가 분담하여 실행하도록 해도 된다. 또한, 하나의 스텝에 복수의 처리가 포함되는 경우, 그 복수의 처리를, 하나의 장치가 실행하도록 해도 되고, 복수의 장치가 분담하여 실행하도록 해도 된다. 환언하자면, 하나의 스텝에 포함되는 복수의 처리를, 복수의 스텝의 처리로서 실행할 수도 있다. 반대로, 복수의 스텝으로서 설명한 처리를 하나의 스텝으로서 통합하여 실행할 수도 있다.
또한, 예를 들어, 컴퓨터가 실행하는 프로그램은, 프로그램을 기술하는 스텝의 처리가, 본 명세서에서 설명하는 순서를 따라서 시계열로 실행되게 해도 되고, 병렬로, 혹은 호출이 행하여졌을 때 등의 필요한 타이밍에 개별로 실행되게 해도 된다. 즉, 모순이 발생하지 않는 한, 각 스텝의 처리가 상술한 순서와 상이한 순서로 실행되게 해도 된다. 또한, 이 프로그램을 기술하는 스텝의 처리가, 다른 프로그램의 처리와 병렬로 실행되게 해도 되고, 다른 프로그램의 처리와 조합하여 실행되게 해도 된다.
또한, 예를 들어, 본 기술에 관한 복수의 기술은, 모순이 생기지 않는 한, 각각 독립적으로 단체로 실시할 수 있다. 물론, 임의의 복수의 본 기술을 병용하여 실시할 수도 있다. 예를 들어, 어느 실시 형태에 있어서 설명한 본 기술의 일부 또는 전부를, 다른 실시 형태에 있어서 설명한 본 기술의 일부 또는 전부와 조합하여 실시할 수도 있다. 또한, 상술한 임의의 본 기술의 일부 또는 전부를, 상술하고 있지 않은 다른 기술과 병용하여 실시할 수도 있다.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1) 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는 포인트 클라우드 생성부
를 구비하는 화상 처리 장치.
(2) 상기 포인트 클라우드 생성부는,
상기 면과 상기 벡터의 교차 판정을 행하고,
교차한다고 판정된 경우, 상기 교차점의 좌표를 산출하는
(1)에 기재된 화상 처리 장치.
(3) 상기 포인트 클라우드 생성부는, 서로 수직인 3축 방향의 정부 각각의 방향의 상기 벡터와, 상기 면의 교차 판정을 행하는
(2)에 기재된 화상 처리 장치.
(4) 상기 포인트 클라우드 생성부는, 복수의 교차점의 좌표값이 중복되는 경우, 중복되는 교차점군 중, 어느 하나의 교차점을 남기고, 기타의 교차점을 삭제하는
(3)에 기재된 화상 처리 장치.
(5) 상기 포인트 클라우드 생성부는, 상기 개시 원점이 상기 면의 각 정점의 범위 내에 위치하는 상기 벡터와, 상기 면의 교차 판정을 행하는
(2) 내지 (4)의 어느 것에 기재된 화상 처리 장치.
(6) 상기 포인트 클라우드 생성부는, 산출한 상기 교차점의 좌표가 바운딩 박스의 밖일 경우, 상기 교차점의 좌표를 상기 바운딩 박스 내에 클립하는
(2) 내지 (5)의 어느 것에 기재된 화상 처리 장치.
(7) 상기 포인트 클라우드 생성부는, 산출한 상기 교차점의 좌표가 바운딩 박스의 밖일 경우, 상기 교차점을 삭제하는
(2) 내지 (6)의 어느 것에 기재된 화상 처리 장치.
(8) 상기 포인트 클라우드 생성부는, 상기 면의 단부에 대한 교차 판정의 경우보다도 소한 상기 벡터를 사용하여, 상기 면의 내부에 대한 교차 판정을 행하는
(2) 내지 (7)의 어느 것에 기재된 화상 처리 장치.
(9) 상기 포인트 클라우드 생성부는, 상기 벡터가 복수의 상기 면과 교차하고, 또한, 복수의 상기 면끼리의 사이에 공간이 존재하는 경우, 상기 공간에 포인트를 추가하는
(2) 내지 (8)의 어느 것에 기재된 화상 처리 장치.
(10) 상기 포인트 클라우드 생성부는, 하나의 상기 면에 대한 복수의 상기 벡터의 각각의 교차 판정을, 서로 병렬로 행하는
(2) 내지 (9)의 어느 것에 기재된 화상 처리 장치.
(11) 상기 포인트 클라우드 생성부는, 하나의 상기 벡터에 대한 복수의 상기 면의 각각의 교차 판정을, 서로 병렬로 행하는
(2) 내지 (10)의 어느 것에 기재된 화상 처리 장치.
(12) 상기 벡터는, 지정된 복셀 해상도에 대응하는 위치 좌표를 개시 원점으로 하는
(2) 내지 (11)의 어느 것에 기재된 화상 처리 장치.
(13) 상기 벡터는, 지정된 복셀 해상도의 2의 멱승에 대응하는 위치 좌표를 개시 원점으로 하는
(2) 내지 (12)의 어느 것에 기재된 화상 처리 장치.
(14)
상기 벡터의 개시 원점의 서로 수직인 3축 방향의 위치는, 서로 독립하고 있는
(2) 내지 (13)의 어느 것에 기재된 화상 처리 장치.
(15) 상기 벡터의 개시 원점의 서로 수직인 3축 방향의 간격은, 서로 독립하고 있는
(2) 내지 (14)의 어느 것에 기재된 화상 처리 장치.
(16) 상기 포인트 클라우드 생성부는, 상기 교차점에 위치하지 않는 포인트를 상기 포인트 클라우드 데이터에 포함하는
(2) 내지 (15)의 어느 것에 기재된 화상 처리 장치.
(17) 복셀 데이터로부터 상기 메쉬의 형상을 복원하는 메쉬 형상 복원부를 더 구비하고,
상기 포인트 클라우드 생성부는, 상기 메쉬 형상 복원부에 의해 복원된 상기 면과 상기 벡터의 교차점을 포인트로 하여 상기 포인트 클라우드 데이터를 생성하는
(2) 내지 (16)의 어느 것에 기재된 화상 처리 장치.
(18) 비트 스트림을 가역 복호하여 Octree 데이터를 생성하는 가역 복호부와,
상기 가역 복호부에 의해 생성된 상기 Octree 데이터를 사용하여 상기 복셀 데이터를 생성하는 Octree 복호부
를 더 구비하고,
상기 메쉬 형상 복원부는, 상기 Octree 복호부에 의해 생성된 상기 복셀 데이터로부터 상기 메쉬의 형상을 복원하는
(17)에 기재된 화상 처리 장치.
(19) 포인트 클라우드 데이터의 위치 정보를 부호화하는 위치 정보 부호화부와,
상기 위치 정보 부호화부가 상기 위치 정보를 부호화할 때에 생성한 Octree 데이터를 사용하여 상기 복셀 데이터를 생성하는 Octree 복호부
를 더 구비하는
(17)에 기재된 화상 처리 장치.
(20) 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는
화상 처리 방법.
100: 포인트 클라우드 생성 장치
111: 벡터 설정부
112: 교차 판정부
113: 보조 처리부
114: 출력부
300: 복호 장치
311: 가역 복호부
312: Octree 복호부
313: Mesh 형상 복원부
314: Point cloud 생성부
315: Attribute 복호부
500: 부호화 장치
511: Voxel 생성부
512: Geometry 부호화부
513: Geometry 복호부
514: Attribute 부호화부
515: 비트 스트림 생성부
521: Octree 생성부
522: Mesh 생성부
523: 가역 부호화부
531: Octree 복호부
532: Mesh 형상 복원부
533: Point cloud 생성부

Claims (20)

  1. 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는 포인트 클라우드 생성부
    를 구비하는 화상 처리 장치.
  2. 제1항에 있어서, 상기 포인트 클라우드 생성부는,
    상기 면과 상기 벡터의 교차 판정을 행하고,
    교차한다고 판정된 경우, 상기 교차점의 좌표를 산출하는
    화상 처리 장치.
  3. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 서로 수직인 3축 방향의 정부 각각의 방향의 상기 벡터와, 상기 면의 교차 판정을 행하는
    화상 처리 장치.
  4. 제3항에 있어서, 상기 포인트 클라우드 생성부는, 복수의 교차점의 좌표값이 중복되는 경우, 중복되는 교차점군 중, 어느 하나의 교차점을 남기고, 기타의 교차점을 삭제하는
    화상 처리 장치.
  5. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 상기 개시 원점이 상기 면의 각 정점의 범위 내에 위치하는 상기 벡터와, 상기 면의 교차 판정을 행하는
    화상 처리 장치.
  6. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 산출한 상기 교차점의 좌표가 바운딩 박스의 밖일 경우, 상기 교차점의 좌표를 상기 바운딩 박스 내에 클립하는
    화상 처리 장치.
  7. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 산출한 상기 교차점의 좌표가 바운딩 박스의 밖일 경우, 상기 교차점을 삭제하는
    화상 처리 장치.
  8. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 상기 면의 단부에 대한 교차 판정의 경우보다도 소한 상기 벡터를 사용하여, 상기 면의 내부에 대한 교차 판정을 행하는
    화상 처리 장치.
  9. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 상기 벡터가 복수의 상기 면과 교차하고, 또한, 복수의 상기 면끼리의 사이에 공간이 존재하는 경우, 상기 공간에 포인트를 추가하는
    화상 처리 장치.
  10. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 하나의 상기 면에 대한 복수의 상기 벡터의 각각의 교차 판정을, 서로 병렬로 행하는
    화상 처리 장치.
  11. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 하나의 상기 벡터에 대한 복수의 상기 면의 각각의 교차 판정을, 서로 병렬로 행하는
    화상 처리 장치.
  12. 제2항에 있어서, 상기 벡터는, 지정된 복셀 해상도에 대응하는 위치 좌표를 개시 원점으로 하는
    화상 처리 장치.
  13. 제2항에 있어서, 상기 벡터는, 지정된 복셀 해상도의 2의 멱승에 대응하는 위치 좌표를 개시 원점으로 하는
    화상 처리 장치.
  14. 제2항에 있어서, 상기 벡터의 개시 원점의 서로 수직인 3축 방향의 위치는, 서로 독립하고 있는
    화상 처리 장치.
  15. 제2항에 있어서, 상기 벡터의 개시 원점의 서로 수직인 3축 방향의 간격은, 서로 독립하고 있는
    화상 처리 장치.
  16. 제2항에 있어서, 상기 포인트 클라우드 생성부는, 상기 교차점에 위치하지 않는 포인트를 상기 포인트 클라우드 데이터에 포함하는
    화상 처리 장치.
  17. 제2항에 있어서, 복셀 데이터로부터 상기 메쉬의 형상을 복원하는 메쉬 형상 복원부를 더 구비하고,
    상기 포인트 클라우드 생성부는, 상기 메쉬 형상 복원부에 의해 복원된 상기 면과 상기 벡터의 교차점을 포인트로 하여 상기 포인트 클라우드 데이터를 생성하는
    화상 처리 장치.
  18. 제17항에 있어서, 비트 스트림을 가역 복호하여 Octree 데이터를 생성하는 가역 복호부와,
    상기 가역 복호부에 의해 생성된 상기 Octree 데이터를 사용하여 상기 복셀 데이터를 생성하는 Octree 복호부
    를 더 구비하고,
    상기 메쉬 형상 복원부는, 상기 Octree 복호부에 의해 생성된 상기 복셀 데이터로부터 상기 메쉬의 형상을 복원하는
    화상 처리 장치.
  19. 제17항에 있어서, 포인트 클라우드 데이터의 위치 정보를 부호화하는 위치 정보 부호화부와,
    상기 위치 정보 부호화부가 상기 위치 정보를 부호화할 때에 생성한 Octree 데이터를 사용하여 상기 복셀 데이터를 생성하는 Octree 복호부
    를 더 구비하는
    화상 처리 장치.
  20. 메쉬의 면과 지정 해상도에 대응하는 위치 좌표를 개시 원점으로 하는 벡터의 교차점에 포인트를 배치함으로써 포인트 클라우드 데이터를 생성하는
    화상 처리 방법.
KR1020217007109A 2018-10-02 2019-09-18 화상 처리 장치 및 방법 KR20210070271A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2018-187482 2018-10-02
JP2018187482 2018-10-02
JPJP-P-2019-114627 2019-06-20
JP2019114627 2019-06-20
PCT/JP2019/036469 WO2020071114A1 (ja) 2018-10-02 2019-09-18 画像処理装置および方法

Publications (1)

Publication Number Publication Date
KR20210070271A true KR20210070271A (ko) 2021-06-14

Family

ID=70054769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007109A KR20210070271A (ko) 2018-10-02 2019-09-18 화상 처리 장치 및 방법

Country Status (13)

Country Link
US (2) US11568602B2 (ko)
EP (1) EP3843046A4 (ko)
JP (1) JP7424299B2 (ko)
KR (1) KR20210070271A (ko)
CN (1) CN112771582B (ko)
AU (1) AU2019355381A1 (ko)
BR (1) BR112021005937A2 (ko)
CA (1) CA3115203A1 (ko)
MX (1) MX2021003538A (ko)
PH (1) PH12021550654A1 (ko)
SG (1) SG11202102923PA (ko)
TW (1) TW202025746A (ko)
WO (1) WO2020071114A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11172224B2 (en) * 2019-09-03 2021-11-09 Tencent America LLC Techniques and apparatus for generalized Trisoup geometry coding
US20220414940A1 (en) * 2019-10-01 2022-12-29 Sony Group Corporation Information processing apparatus and method
US11584448B2 (en) * 2020-11-12 2023-02-21 Rivian Ip Holdings, Llc Systems and methods for joining a vehicle structure
CN114466212A (zh) * 2022-02-07 2022-05-10 百度在线网络技术(北京)有限公司 一种直播方法、装置、电子设备和介质
WO2023167430A1 (ko) * 2022-03-04 2023-09-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0584638A (ja) * 1991-09-26 1993-04-06 Hitachi Ltd 曲面加工における逆オフセツト操作の並列処理方法
US6126603A (en) * 1997-05-07 2000-10-03 General Electric Company Method and apparatus for segmenting color flow mode data using velocity information in three-dimensional ultrasound imaging
KR100298789B1 (ko) * 1998-04-29 2001-09-06 윤종용 그래픽 처리에 있어서 클리핑 처리방법
WO2003031005A2 (en) * 2001-10-09 2003-04-17 Massachusetts Institute Of Technology Methods and apparatus for detecting and correcting penetration between objects
GB0329534D0 (en) * 2003-12-20 2004-01-28 Ibm Method for determining the bounding voxelisation of a 3d polygon
KR100695142B1 (ko) * 2004-03-08 2007-03-14 삼성전자주식회사 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
KR100738107B1 (ko) * 2006-02-15 2007-07-12 삼성전자주식회사 3차원 포인트 기반 모델링 장치 및 방법
KR100797400B1 (ko) * 2006-12-04 2008-01-28 한국전자통신연구원 주성분분석 및 자동상관을 이용한 단백질 구조 비교 장치및 그 방법
US9592408B2 (en) * 2008-04-24 2017-03-14 Koninklijke Philips N.V. Dose-volume kernel generation
US8502818B1 (en) * 2010-07-12 2013-08-06 Nvidia Corporation System and method for surface tracking
JP5337776B2 (ja) * 2010-09-24 2013-11-06 富士フイルム株式会社 ナノインプリント方法およびそれを利用した基板の加工方法
US8849015B2 (en) * 2010-10-12 2014-09-30 3D Systems, Inc. System and apparatus for haptically enabled three-dimensional scanning
US9159162B2 (en) * 2011-12-28 2015-10-13 St. Jude Medical, Atrial Fibrillation Division, Inc. Method and system for generating a multi-dimensional surface model of a geometric structure
JP5806169B2 (ja) * 2012-06-21 2015-11-10 トヨタ自動車株式会社 設計データ生成装置、その生成方法及びプログラム
US9805497B2 (en) * 2013-02-05 2017-10-31 Reuven Bakalash Collision-culling of lines over polygons
US20170109462A1 (en) * 2013-11-27 2017-04-20 Akademia Gorniczo-Hutnicza Im. Stanislawa Staszica W Krakowie System and a method for determining approximate set of visible objects in beam tracing
CN105631936A (zh) * 2014-10-31 2016-06-01 富泰华工业(深圳)有限公司 点云修补方法及系统
KR20160071774A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
JP6361547B2 (ja) * 2015-03-25 2018-07-25 トヨタ自動車株式会社 粒子モデルおよびメッシュモデル間のデータ引き継ぎ方法
US10706608B2 (en) * 2016-01-19 2020-07-07 Nvidia Corporation Tree traversal with backtracking in constant time
US10573091B2 (en) * 2017-02-22 2020-02-25 Andre R. Vincelette Systems and methods to create a virtual object or avatar
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10825244B1 (en) * 2017-11-07 2020-11-03 Arvizio, Inc. Automated LOD construction for point cloud

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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
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

Also Published As

Publication number Publication date
AU2019355381A1 (en) 2021-05-20
EP3843046A4 (en) 2021-10-27
EP3843046A1 (en) 2021-06-30
CA3115203A1 (en) 2020-04-09
CN112771582B (zh) 2024-01-12
US11922579B2 (en) 2024-03-05
WO2020071114A1 (ja) 2020-04-09
SG11202102923PA (en) 2021-04-29
CN112771582A (zh) 2021-05-07
US20220036654A1 (en) 2022-02-03
JPWO2020071114A1 (ja) 2021-09-09
PH12021550654A1 (en) 2022-02-21
TW202025746A (zh) 2020-07-01
BR112021005937A2 (pt) 2021-06-29
US11568602B2 (en) 2023-01-31
JP7424299B2 (ja) 2024-01-30
MX2021003538A (es) 2021-05-27
US20230126000A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
JP7384159B2 (ja) 画像処理装置および方法
JP7424299B2 (ja) 画像処理装置および方法
KR102596507B1 (ko) 화상 처리 장치 및 방법
WO2019198523A1 (ja) 画像処理装置および方法
US20220414940A1 (en) Information processing apparatus and method
US11356690B2 (en) Image processing apparatus and method
WO2019142665A1 (ja) 情報処理装置および方法
KR20210070282A (ko) 화상 처리 장치 및 방법
WO2020145143A1 (ja) 情報処理装置および方法
WO2021002214A1 (ja) 情報処理装置および方法
US11790567B2 (en) Information processing apparatus and method
WO2022230941A1 (ja) 情報処理装置および方法
US20230177735A1 (en) Information processing apparatus and method
US20220353493A1 (en) Information processing apparatus and method