KR20210005855A - 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치 - Google Patents

삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치 Download PDF

Info

Publication number
KR20210005855A
KR20210005855A KR1020207029505A KR20207029505A KR20210005855A KR 20210005855 A KR20210005855 A KR 20210005855A KR 1020207029505 A KR1020207029505 A KR 1020207029505A KR 20207029505 A KR20207029505 A KR 20207029505A KR 20210005855 A KR20210005855 A KR 20210005855A
Authority
KR
South Korea
Prior art keywords
data
dimensional
sub
information
encoding
Prior art date
Application number
KR1020207029505A
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 KR20210005855A publication Critical patent/KR20210005855A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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/05Geographic models
    • 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/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • 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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

삼차원 데이터 부호화 방법은, 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고(S2631), 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 제1 서브 삼차원점군의 헤더에 부가하고, 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 제2 서브 삼차원점군의 헤더에 부가하고(S2632), 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화한다(S2633).

Description

삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
본 개시는, 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치에 관한 것이다.
자동차 혹은 로봇이 자율적으로 동작하기 위한 컴퓨터 비전, 맵 정보, 감시, 인프라 점검, 또는, 영상 전송 등, 폭넓은 분야에 있어서, 향후, 삼차원 데이터를 활용한 장치 또는 서비스의 보급이 전망된다. 삼차원 데이터는, 레인지 파인더 등의 거리 센서, 스테레오 카메라, 또는 복수의 단안(單眼) 카메라의 조합 등 여러 가지 방법으로 취득된다.
삼차원 데이터의 표현 방법 중 하나로서, 삼차원 공간 내의 점군에 의해 삼차원 구조의 형상을 나타낸 포인트 클라우드로 불리는 표현 방법이 있다. 포인트 클라우드에서는, 점군의 위치와 색이 저장된다. 포인트 클라우드는 삼차원 데이터의 표현 방법으로서 주류가 될 것으로 예상되는데, 점군은 데이터량이 매우 크다. 따라서, 삼차원 데이터의 축적 또는 전송에 있어서는 이차원의 동화상(일례로서, MPEG로 규격화된 MPEG-4 AVC 또는 HEVC 등이 있다)과 마찬가지로, 부호화에 의한 데이터량의 압축이 필수가 된다.
또, 포인트 클라우드의 압축에 대해서는, 포인트 클라우드 관련의 처리를 행하는 공개의 라이브러리(Point Cloud Library) 등에 의해 일부 서포트되어 있다.
또, 삼차원의 지도 데이터를 이용해, 차량 주변에 위치하는 시설을 검색하여, 표시하는 기술이 알려져 있다(예를 들면, 특허 문헌 1 참조).
국제 공개 제2014/020663호
삼차원 데이터의 부호화 또는 복호에 있어서 처리 시간을 단축할 수 있는 것이 요망되고 있다.
본 개시는, 처리 시간을 단축할 수 있는 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치 또는 삼차원 데이터 복호 장치를 제공하는 것을 목적으로 한다.
본 개시의 일 양태에 따른 삼차원 데이터 부호화 방법은, 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더에 부가하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더에 부가하고, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화한다.
본 개시의 일 양태에 따른 삼차원 데이터 복호 방법은, 삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득하고, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원한다.
본 개시는, 처리 시간을 단축할 수 있는 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치 또는 삼차원 데이터 복호 장치를 제공할 수 있다.
도 1은, 실시 형태 1에 따른 부호화 삼차원 데이터의 구성을 나타낸 도면이다.
도 2는, 실시 형태 1에 따른 GOS의 최하층 레이어에 속하는 SPC 사이의 예측 구조의 일례를 나타낸 도면이다.
도 3은, 실시 형태 1에 따른 레이어 사이의 예측 구조의 일례를 나타낸 도면이다.
도 4는, 실시 형태 1에 따른 GOS의 부호화순의 일례를 나타낸 도면이다.
도 5는, 실시 형태 1에 따른 GOS의 부호화순의 일례를 나타낸 도면이다.
도 6은, 실시 형태 1에 따른 삼차원 데이터 부호화 장치의 블록도이다.
도 7은, 실시 형태 1에 따른 부호화 처리의 플로차트이다.
도 8은, 실시 형태 1에 따른 삼차원 데이터 복호 장치의 블록도이다.
도 9는, 실시 형태 1에 따른 복호 처리의 플로차트이다.
도 10은, 실시 형태 1에 따른 메타 정보의 일례를 나타낸 도면이다.
도 11은, 실시 형태 2에 따른 SWLD의 구성예를 나타낸 도면이다.
도 12는, 실시 형태 2에 따른 서버 및 클라이언트의 동작예를 나타낸 도면이다.
도 13은, 실시 형태 2에 따른 서버 및 클라이언트의 동작예를 나타낸 도면이다.
도 14는, 실시 형태 2에 따른 서버 및 클라이언트의 동작예를 나타낸 도면이다.
도 15는, 실시 형태 2에 따른 서버 및 클라이언트의 동작예를 나타낸 도면이다.
도 16은, 실시 형태 2에 따른 삼차원 데이터 부호화 장치의 블록도이다.
도 17은, 실시 형태 2에 따른 부호화 처리의 플로차트이다.
도 18은, 실시 형태 2에 따른 삼차원 데이터 복호 장치의 블록도이다.
도 19는, 실시 형태 2에 따른 복호 처리의 플로차트이다.
도 20은, 실시 형태 2에 따른 WLD의 구성예를 나타낸 도면이다.
도 21은, 실시 형태 2에 따른 WLD의 8진 트리 구조의 예를 나타낸 도면이다.
도 22는, 실시 형태 2에 따른 SWLD의 구성예를 나타낸 도면이다.
도 23은, 실시 형태 2에 따른 SWLD의 8진 트리 구조의 예를 나타낸 도면이다.
도 24는, 실시 형태 3에 따른 삼차원 데이터 작성 장치의 블록도이다.
도 25는, 실시 형태 3에 따른 삼차원 데이터 송신 장치의 블록도이다.
도 26은, 실시 형태 4에 따른 삼차원 정보 처리 장치의 블록도이다.
도 27은, 실시 형태 5에 따른 삼차원 데이터 작성 장치의 블록도이다.
도 28은, 실시 형태 6에 따른 시스템의 구성을 나타낸 도면이다.
도 29는, 실시 형태 6에 따른 클라이언트 장치의 블록도이다.
도 30은, 실시 형태 6에 따른 서버의 블록도이다.
도 31은, 실시 형태 6에 따른 클라이언트 장치에 의한 삼차원 데이터 작성 처리의 플로차트이다.
도 32는, 실시 형태 6에 따른 클라이언트 장치에 의한 센서 정보 송신 처리의 플로차트이다.
도 33은, 실시 형태 6에 따른 서버에 의한 삼차원 데이터 작성 처리의 플로차트이다.
도 34는, 실시 형태 6에 따른 서버에 의한 삼차원 맵 송신 처리의 플로차트이다.
도 35는, 실시 형태 6에 따른 시스템의 변형예의 구성을 나타낸 도면이다.
도 36은, 실시 형태 6에 따른 서버 및 클라이언트 장치의 구성을 나타낸 도면이다.
도 37은, 실시 형태 7에 따른 삼차원 데이터 부호화 장치의 블록도이다.
도 38은, 실시 형태 7에 따른 예측 잔차의 예를 나타낸 도면이다.
도 39는, 실시 형태 7에 따른 볼륨의 예를 나타낸 도면이다.
도 40은, 실시 형태 7에 따른 볼륨의 8진 트리 표현의 예를 나타낸 도면이다.
도 41은, 실시 형태 7에 따른 볼륨의 비트열의 예를 나타낸 도면이다.
도 42는, 실시 형태 7에 따른 볼륨의 8진 트리 표현의 예를 나타낸 도면이다.
도 43은, 실시 형태 7에 따른 볼륨의 예를 나타낸 도면이다.
도 44는, 실시 형태 7에 따른 인트라 예측 처리를 설명하기 위한 도면이다.
도 45는, 실시 형태 7에 따른 회전 및 병진 처리를 설명하기 위한 도면이다.
도 46은, 실시 형태 7에 따른 RT 적용 플래그 및 RT 정보의 신택스예를 나타낸 도면이다.
도 47은, 실시 형태 7에 따른 인터 예측 처리를 설명하기 위한 도면이다.
도 48은, 실시 형태 7에 따른 삼차원 데이터 복호 장치의 블록도이다.
도 49는, 실시 형태 7에 따른 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
도 50은, 실시 형태 7에 따른 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다.
도 51은, 실시 형태 8에 따른 전송 시스템의 구성을 나타낸 도면이다.
도 52는, 실시 형태 8에 따른 부호화 삼차원 맵의 비트 스트림의 구성예를 나타낸 도면이다.
도 53은, 실시 형태 8에 따른 부호화 효율의 개선 효과를 설명하기 위한 도면이다.
도 54는, 실시 형태 8에 따른 서버에 의한 처리의 플로차트이다.
도 55는, 실시 형태 8에 따른 클라이언트에 의한 처리의 플로차트이다.
도 56은, 실시 형태 8에 따른 서브 맵의 신택스예를 나타낸 도면이다.
도 57은, 실시 형태 8에 따른 부호화 타입의 전환 처리를 모식적으로 나타낸 도면이다.
도 58은, 실시 형태 8에 따른 서브 맵의 신택스예를 나타낸 도면이다.
도 59는, 실시 형태 8에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 60은, 실시 형태 8에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 61은, 실시 형태 8에 따른 부호화 타입의 전환 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 62는, 실시 형태 8에 따른 부호화 타입의 전환 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 63은, 실시 형태 8에 따른 부호화 타입의 전환 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 64는, 실시 형태 8에 따른 차분치의 산출 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 65는, 실시 형태 8에 따른 차분치의 산출 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 66은, 실시 형태 8에 따른 차분치의 산출 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 67은, 실시 형태 8에 따른 차분치의 산출 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 68은, 실시 형태 8에 따른 볼륨의 신택스예를 나타낸 도면이다.
도 69는, 실시 형태 9에 따른 중요 영역의 예를 나타낸 도면이다.
도 70은, 실시 형태 9에 따른 어큐펀시 부호의 일례를 나타낸 도면이다.
도 71은, 실시 형태 9에 따른 4진 트리 구조의 일례를 나타낸 도면이다.
도 72는, 실시 형태 9에 따른 어큐펀시 부호 및 로케이션 부호의 일례를 나타낸 도면이다.
도 73은, 실시 형태 9에 따른 LiDAR로 얻어진 삼차원점의 예를 나타낸 도면이다.
도 74는, 실시 형태 9에 따른 8진 트리 구조의 예를 나타낸 도면이다.
도 75는, 실시 형태 9에 따른 혼합 부호화의 예를 나타낸 도면이다.
도 76은, 실시 형태 9에 따른 로케이션 부호화와 어큐펀시 부호화의 전환 방법을 설명하기 위한 도면이다.
도 77은, 실시 형태 9에 따른 로케이션 부호화의 비트 스트림의 일례를 나타낸 도면이다.
도 78은, 실시 형태 9에 따른 혼합 부호화의 비트 스트림의 일례를 나타낸 도면이다.
도 79는, 실시 형태 9에 따른 중요 삼차원점의 어큐펀시 부호의 트리 구조를 나타낸 도면이다.
도 80은, 실시 형태 9에 따른 비중요 삼차원점의 어큐펀시 부호의 트리 구조를 나타낸 도면이다.
도 81은, 실시 형태 9에 따른 혼합 부호화의 비트 스트림의 일례를 나타낸 도면이다.
도 82는, 실시 형태 9에 따른 부호화 모드 정보를 포함하는 비트 스트림의 일례를 나타낸 도면이다.
도 83은, 실시 형태 9에 따른 신택스예를 나타낸 도면이다.
도 84는, 실시 형태 9에 따른 부호화 처리의 플로차트이다.
도 85는, 실시 형태 9에 따른 노드 부호화 처리의 플로차트이다.
도 86은, 실시 형태 9에 따른 복호 처리의 플로차트이다.
도 87은, 실시 형태 9에 따른 노드 복호 처리의 플로차트이다.
도 88은, 실시 형태 10에 따른 트리 구조의 일례를 나타내는 도면이다.
도 89는, 실시 형태 10에 따른 각 가지가 갖는 유효 리프의 수의 예를 나타내는 도면이다.
도 90은, 실시 형태 10에 따른 부호화 방식의 적용예를 나타내는 도면이다.
도 91은, 실시 형태 10에 따른 조밀한 가지 영역의 예를 나타내는 도면이다.
도 92는, 실시 형태 10에 따른 조밀한 삼차원점군의 예를 나타내는 도면이다.
도 93은, 실시 형태 10에 따른 성긴 삼차원점군의 예를 나타내는 도면이다.
도 94는, 실시 형태 10에 따른 부호화 처리의 플로차트이다.
도 95는, 실시 형태 10에 따른 복호 처리의 플로차트이다.
도 96은, 실시 형태 10에 따른 부호화 처리의 플로차트이다.
도 97은, 실시 형태 10에 따른 복호 처리의 플로차트이다.
도 98은, 실시 형태 10에 따른 부호화 처리의 플로차트이다.
도 99는, 실시 형태 10에 따른 복호 처리의 플로차트이다.
도 100은, 실시 형태 10에 따른 삼차원점의 분리 처리의 플로차트이다.
도 101은, 실시 형태 10에 따른 신택스예를 나타내는 도면이다.
도 102는, 실시 형태 10에 따른 조밀한 가지의 예를 나타내는 도면이다.
도 103은, 실시 형태 10에 따른 성긴 가지의 예를 나타내는 도면이다.
도 104는, 실시 형태 10의 변형예에 따른 부호화 처리의 플로차트이다.
도 105는, 실시 형태 10의 변형예에 따른 복호 처리의 플로차트이다.
도 106은, 실시 형태 10의 변형예에 따른 삼차원점의 분리 처리의 플로차트이다.
도 107은, 실시 형태 10의 변형예에 따른 신택스예를 나타내는 도면이다.
도 108은, 실시 형태 10에 따른 부호화 처리의 플로차트이다.
도 109는, 실시 형태 10에 따른 복호 처리의 플로차트이다.
도 110은, 실시 형태 11에 따른 트리 구조의 일례를 나타내는 도면이다.
도 111은, 실시 형태 11에 따른 어큐펀시 부호의 일례를 나타내는 도면이다.
도 112는, 실시 형태 11에 따른 삼차원 데이터 부호화 장치의 동작을 모식적으로 나타내는 도면이다.
도 113은, 실시 형태 11에 따른 기하 정보의 일례를 나타내는 도면이다.
도 114는, 실시 형태 11에 따른 기하 정보를 이용한 부호화 테이블의 선택예를 나타내는 도면이다.
도 115는, 실시 형태 11에 따른 구조 정보를 이용한 부호화 테이블의 선택예를 나타내는 도면이다.
도 116은, 실시 형태 11에 따른 속성 정보를 이용한 부호화 테이블의 선택예를 나타내는 도면이다.
도 117은, 실시 형태 11에 따른 속성 정보를 이용한 부호화 테이블의 선택예를 나타내는 도면이다.
도 118은, 실시 형태 11에 따른 비트 스트림의 구성예를 나타내는 도면이다.
도 119는, 실시 형태 11에 따른 부호화 테이블의 일례를 나타내는 도면이다.
도 120은, 실시 형태 11에 따른 부호화 테이블의 일례를 나타내는 도면이다.
도 121은, 실시 형태 11에 따른 비트 스트림의 구성예를 나타내는 도면이다.
도 122는, 실시 형태 11에 따른 부호화 테이블의 일례를 나타내는 도면이다.
도 123은, 실시 형태 11에 따른 부호화 테이블의 일례를 나타내는 도면이다.
도 124는, 실시 형태 11에 따른 어큐펀시 부호의 비트 번호의 일례를 나타내는 도면이다.
도 125는, 실시 형태 11에 따른 기하 정보를 이용한 부호화 처리의 플로차트이다.
도 126은, 실시 형태 11에 따른 기하 정보를 이용한 복호 처리의 플로차트이다.
도 127은, 실시 형태 11에 따른 구조 정보를 이용한 부호화 처리의 플로차트이다.
도 128은, 실시 형태 11에 따른 구조 정보를 이용한 복호 처리의 플로차트이다.
도 129는, 실시 형태 11에 따른 속성 정보를 이용한 부호화 처리의 플로차트이다.
도 130은, 실시 형태 11에 따른 속성 정보를 이용한 복호 처리의 플로차트이다.
도 131은, 실시 형태 11에 따른 기하 정보를 이용한 부호화 테이블 선택 처리의 플로차트이다.
도 132는, 실시 형태 11에 따른 구조 정보를 이용한 부호화 테이블 선택 처리의 플로차트이다.
도 133은, 실시 형태 11에 따른 속성 정보를 이용한 부호화 테이블 선택 처리의 플로차트이다.
도 134는, 실시 형태 11에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 135는, 실시 형태 11에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 136은, 실시 형태 12에 따른 8진 트리 구조에 있어서의 참조 관계를 나타내는 도면이다.
도 137은, 실시 형태 12에 따른 공간 영역에 있어서의 참조 관계를 나타내는 도면이다.
도 138은, 실시 형태 12에 따른 인접 참조 노드의 예를 나타내는 도면이다.
도 139는, 실시 형태 12에 따른 부모 노드와 노드의 관계를 나타내는 도면이다.
도 140은, 실시 형태 12에 따른 부모 노드의 어큐펀시 부호의 예를 나타내는 도면이다.
도 141은, 실시 형태 12에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 142는, 실시 형태 12에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 143은, 실시 형태 12에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 144는, 실시 형태 12에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 145는, 실시 형태 12에 따른 부호화 테이블의 전환예를 나타내는 도면이다.
도 146은, 실시 형태 12의 변형예 1에 따른 공간 영역에 있어서의 참조 관계를 나타내는 도면이다.
도 147은, 실시 형태 12의 변형예 1에 따른 헤더 정보의 신택스예를 나타내는 도면이다.
도 148은, 실시 형태 12의 변형예 1에 따른 헤더 정보의 신택스예를 나타내는 도면이다.
도 149는, 실시 형태 12의 변형예 2에 따른 인접 참조 노드의 예를 나타내는 도면이다.
도 150은, 실시 형태 12의 변형예 2에 따른 대상 노드 및 인접 노드의 예를 나타내는 도면이다.
도 151은, 실시 형태 12의 변형예 3에 따른 8진 트리 구조에 있어서의 참조 관계를 나타내는 도면이다.
도 152는, 실시 형태 12의 변형예 3에 따른 공간 영역에 있어서의 참조 관계를 나타내는 도면이다.
도 153은, 실시 형태 13에 따른 헤더 정보의 신택스예를 나타내는 도면이다.
도 154는, 실시 형태 13에 따른 모드 정보가 1인 경우의 8진 트리의 구성예를 나타내는 도면이다.
도 155는, 실시 형태 13에 따른 모드 정보가 0인 경우의 8진 트리의 구성예를 나타내는 도면이다.
도 156은, 실시 형태 13에 따른 노드의 정보의 신택스예를 나타내는 도면이다.
도 157은, 실시 형태 13에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 158은, 실시 형태 13에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 159는, 실시 형태 13에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 160은, 실시 형태 13에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 161은, 실시 형태 13에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 162는, 실시 형태 13에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 163은, 실시 형태 14에 따른 1비트 점유 위치 및 나머지 비트의 예를 나타내는 도면이다.
도 164는, 실시 형태 14에 따른 점유 위치 부호화를 적용할지 여부의 판정 처리를 설명하기 위한 도면이다.
도 165는, 실시 형태 14에 따른 노드의 정보의 신택스예를 나타내는 도면이다.
도 166은, 실시 형태 14에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 167은, 실시 형태 14에 따른 점유 위치 부호화 처리의 플로차트이다.
도 168은, 실시 형태 14에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 169는, 실시 형태 14에 따른 점유 위치 복호 처리의 플로차트이다.
도 170은, 실시 형태 14에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 171은, 실시 형태 14에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 172는, 실시 형태 14에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 173은, 실시 형태 14에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 174는, 실시 형태 15에 따른 중복점을 설명하기 위한 도면이다.
도 175는, 실시 형태 15에 따른 중복점에 대한 처리를 설명하기 위한 도면이다.
도 176은, 실시 형태 15에 따른 헤더 정보의 신택스예를 나타내는 도면이다.
도 177은, 실시 형태 15에 따른 노드의 정보의 신택스예를 나타내는 도면이다.
도 178은, 실시 형태 15에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 179는, 실시 형태 15에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 180은, 실시 형태 15에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 181은, 실시 형태 15에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 182는, 실시 형태 15에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 183은, 실시 형태 15에 따른 삼차원 데이터 부호화 처리의 변형예의 플로차트이다.
도 184는, 실시 형태 15에 따른 중복점에 대한 처리를 설명하기 위한 도면이다.
도 185는, 실시 형태 16에 따른 인접 노드의 예를 나타내는 도면이다.
도 186은, 실시 형태 16에 따른 탐색 대상이 되는 노드의 예를 나타내는 도면이다.
도 187은, 실시 형태 16에 따른 인접 노드의 탐색 처리를 설명하기 위한 도면이다.
도 188은, 실시 형태 16에 따른 인접 정보의 갱신 처리를 설명하기 위한 도면이다.
도 189는, 실시 형태 16에 따른 인접 정보의 갱신 처리를 설명하기 위한 도면이다.
도 190은, 실시 형태 16에 따른 탐색 역치를 설정한 탐색 처리를 설명하기 위한 도면이다.
도 191은, 실시 형태 16에 따른 모턴 부호를 이용한 인덱스의 예를 나타내는 도면이다.
도 192는, 실시 형태 16에 따른 모턴 부호를 이용한 큐의 예를 나타내는 도면이다.
도 193은, 실시 형태 16에 따른 삼차원 데이터 부호화 장치의 블럭도이다.
도 194는, 실시 형태 16에 따른 삼차원 데이터 복호 장치의 블럭도이다.
도 195는, 실시 형태 16에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 196은, 실시 형태 16에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 197은, 실시 형태 16에 따른 헤더 정보의 신택스예를 나타내는 도면이다.
도 198은, 실시 형태 16에 따른 노드의 정보의 신택스예를 나타내는 도면이다.
도 199는, 실시 형태 16에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 200은, 실시 형태 16에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 201은, 실시 형태 16에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 202는, 실시 형태 16에 따른 삼차원 데이터 복호 처리의 플로차트이다.
도 203은, 실시 형태 17에 따른 트리 구조의 예를 나타내는 도면이다.
도 204는, 실시 형태 17에 따른 서브 삼차원점군의 예를 나타내는 도면이다.
도 205는, 실시 형태 17에 따른 서브 삼차원점군의 예를 나타내는 도면이다.
도 206은, 실시 형태 17에 따른 비트 스트림의 구성예를 나타내는 도면이다.
도 207은, 실시 형태 17에 따른 트리 구조의 예를 나타내는 도면이다.
도 208은, 실시 형태 17에 따른 전병렬 부호화를 설명하기 위한 도면이며, 트리 구조의 예를 나타내는 도면이다.
도 209는, 실시 형태 17에 따른 병렬 처리되는 서브 삼차원점군을 공간적으로 나타내는 도면이다.
도 210은, 실시 형태 17에 따른 비트 스트림의 구성예를 나타내는 도면이다.
도 211은, 실시 형태 17에 따른 병렬 복호 처리를 설명하기 위한 도면이다.
도 212는, 실시 형태 17에 따른 전병렬 부호화 처리의 흐름을 모식적으로 나타내는 도면이다.
도 213은, 실시 형태 17에 따른 전병렬 복호 처리의 흐름을 모식적으로 나타내는 도면이다.
도 214는, 실시 형태 17에 따른 점진 병렬 부호화를 설명하기 위한 도면이며, 트리 구조의 예를 나타내는 도면이다.
도 215는, 실시 형태 17에 따른 점진 병렬 부호화에 있어서의 코어의 동작을 나타내는 도면이다.
도 216은, 실시 형태 17에 따른 점진 병렬 부호화 처리의 흐름을 모식적으로 나타내는 도면이다.
도 217은, 실시 형태 17에 따른 삼차원 데이터 부호화 처리의 플로차트이다.
도 218은, 실시 형태 17에 따른 삼차원 데이터 복호 처리의 플로차트이다.
본 개시의 일 양태에 따른 삼차원 데이터 부호화 방법은, 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더에 부가하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더에 부가하고, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화한다.
이에 의하면, 당해 삼차원 데이터 부호화 방법은, 제1 서브 삼차원점군과 제2 서브 삼차원점군을 독립적으로 복호할 수 있는 부호화 데이터를 생성할 수 있다. 이에 의해, 삼차원 데이터 복호 장치는, 당해 부호화 데이터를 병렬 처리할 수 있다. 또는, 삼차원 데이터 복호 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군 중 한쪽을 선택적으로 복호할 수 있다. 따라서, 삼차원 데이터 복호 장치에서의 처리 시간을 단축할 수 있다.
예를 들면, 상기 분할에서는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 삼차원점에 대응하는 제2 가지를 포함하는 복수의 가지로 분할해도 된다.
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보를 부호화해도 된다.
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층이어도 된다.
예를 들면, 상기 제1 서브 삼차원군과 상기 제2 서브 삼차원점군을 상이한 부호화 테이블을 이용하여 엔트로피 부호화해도 된다.
예를 들면, 상기 제1 서브 삼차원점군을 엔트로피 부호화한 후, 상기 제2 서브 삼차원점군을 엔트로피 부호화하기 전에 부호화 테이블을 초기화해도 된다.
예를 들면, 상기 제1 서브 삼차원점군의 부호화에 있어서, 상기 제2 서브 삼차원점군의 참조를 금지하고, 상기 제2 서브 삼차원점군의 부호화에 있어서, 상기 제1 서브 삼차원점군의 참조를 금지해도 된다.
예를 들면, 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각을 독립적으로 복호 가능하도록 부호화하고, 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각을 독립적으로 복호 가능하도록 부호화해도 된다.
예를 들면, (1) 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 한쪽을 독립적으로 복호 가능하도록 부호화하고, (1) 상기 복수의 제1 삼차원점의 위치 정보와, 상기 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 다른쪽을 의존 관계가 있도록 부호화해도 된다.
예를 들면, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화했는지의 여부를 나타내는 플래그를 부호화해도 된다.
예를 들면, 상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고, 상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내도 된다.
본 개시의 일 양태에 따른 삼차원 데이터 복호 방법은, 삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득하고, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원한다.
이에 의하면, 삼차원 데이터 복호 방법은, 제1 부호화 데이터와 제2 부호화 데이터를 병렬 처리할 수 있다. 또는, 삼차원 데이터 복호 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군 중 한쪽을 선택적으로 복호할 수 있다. 따라서, 삼차원 데이터 복호 장치에서의 처리 시간을 단축할 수 있다.
예를 들면, 상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 서브 삼차원점군에 대응하는 제2 가지의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성되어도 된다.
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보를 복호해도 된다.
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층이어도 된다.
예를 들면, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 상이한 부호 테이블을 이용하여 엔트로피 복호해도 된다.
예를 들면, 상기 제1 서브 삼차원점군을 엔트로피 복호한 후, 상기 제2 서브 삼차원점군을 엔트로피 복호하기 전에 부호화 테이블을 초기화해도 된다.
예를 들면, 상기 제1 서브 삼차원점군의 복호에 있어서, 상기 제2 서브 삼차원점군을 참조하지 않고, 상기 제2 서브 삼차원점군의 복호에 있어서, 상기 제1 서브 삼차원점군을 참조하지 않아도 된다.
예를 들면, 상기 제1 부호화 데이터는, 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보가 부호화됨으로써 생성된 제1 부호화 위치 데이터와, 상기 복수의 제1 삼차원점의 속성 정보가 부호화됨으로써 생성된 제1 부호화 속성 데이터를 포함하고, 상기 제2 부호화 데이터는, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보가 부호화됨으로써 생성된 제2 부호화 위치 데이터와, 상기 복수의 제2 삼차원점의 속성 정보가 부호화됨으로써 생성된 제2 부호화 속성 데이터를 포함하고, 상기 제1 부호화 위치 데이터와 상기 제2 부호화 위치 데이터는, 독립적으로 복호 가능하도록 생성되어 있고, 상기 제1 부호화 속성 데이터와 상기 제2 부호화 속성 데이터는, 독립적으로 복호 가능하도록 생성되어 있어도 된다.
예를 들면, 상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점 및 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보 및 속성 정보 중 한쪽의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성되고, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 한쪽의 각각을 복원하고, 상기 삼차원 데이터 복호 방법은, 또한, 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 다른쪽의 각각이 의존 관계가 있도록 부호화됨으로써 생성된 제3 부호화 데이터 및 제4 부호화 데이터를 취득하고, 상기 제3 부호화 데이터와 상기 제4 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 다른쪽의 각각을 복원해도 된다.
예를 들면, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화되어 있는지의 여부를 나타내는 플래그를 복호해도 된다.
예를 들면, 상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고, 상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내도 된다.
또한, 본 개시의 일 양태에 따른 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 상기 프로세서는, 상기 메모리를 이용하여, 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더에 부가하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더에 부가하고, 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군을 독립적으로 복호할 수 있는 부호화 데이터를 생성할 수 있다. 이에 의해, 삼차원 데이터 복호 장치는, 당해 부호화 데이터를 병렬 처리할 수 있다. 또는, 삼차원 데이터 복호 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군 중 한쪽을 선택적으로 복호할 수 있다. 따라서, 삼차원 데이터 복호 장치에서의 처리 시간을 단축할 수 있다.
또한, 본 개시의 일 양태에 따른 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 상기 프로세서는, 상기 메모리를 이용하여, 삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득하고, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득하고, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원한다.
이에 의하면, 삼차원 데이터 복호 장치는, 제1 부호화 데이터와 제2 부호화 데이터를 병렬 처리할 수 있다. 또는, 삼차원 데이터 복호 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군 중 한쪽을 선택적으로 복호할 수 있다. 따라서, 삼차원 데이터 복호 장치에서의 처리 시간을 단축할 수 있다.
또한, 이들 포괄적 또는 구체적인 양태는, 시스템, 방법, 집적회로, 컴퓨터 프로그램 또는 컴퓨터 판독 가능한 CD-ROM 등의 기록 매체로 실현되어도 되고, 시스템, 방법, 집적회로, 컴퓨터 프로그램 및 기록 매체의 임의인 조합으로 실현되어도 된다.
이하, 실시 형태에 대해, 도면을 참조하면서 구체적으로 설명한다. 또한, 이하에서 설명하는 실시 형태는, 모두 본 개시의 한 구체예를 나타내는 것이다. 이하의 실시 형태에서 나타내어지는 수치, 형상, 재료, 구성 요소, 구성 요소의 배치 위치 및 접속 형태, 단계, 단계의 순서 등은 일례이며, 본 개시를 한정하는 주지는 아니다. 또, 이하의 실시 형태에 있어서의 구성 요소 중, 최상위 개념을 나타내는 독립 청구항에 기재되어 있지 않은 구성 요소에 대해서는, 임의의 구성 요소로서 설명된다.
(실시 형태 1)
우선, 본 실시 형태에 따른 부호화 삼차원 데이터(이하, 부호화 데이터라고도 기재한다)의 데이터 구조에 대해 설명한다. 도 1은, 본 실시 형태에 따른 부호화 삼차원 데이터의 구성을 나타낸 도면이다.
본 실시 형태에서는, 삼차원 공간은, 동화상의 부호화에 있어서의 픽처에 상당하는 스페이스(SPC)로 분할되고, 스페이스를 단위로서 삼차원 데이터가 부호화된다. 스페이스는, 또한, 동화상 부호화에 있어서의 매크로 블록 등에 상당하는 볼륨(VLM)으로 분할되고, VLM을 단위로서 예측 및 변환이 행해진다. 볼륨은, 위치 좌표가 대응지어지는 최소 단위인 복수의 복셀(VXL)을 포함한다. 또한, 예측이란, 이차원 화상에서 행해지는 예측과 마찬가지로, 다른 처리 단위를 참조하여, 처리 대상의 처리 단위와 유사한 예측 삼차원 데이터를 생성하며, 당해 예측 삼차원 데이터와 처리 대상의 처리 단위의 차분을 부호화하는 것이다. 또, 이 예측은, 동일 시각의 다른 예측 단위를 참조하는 공간 예측뿐만 아니라, 상이한 시각의 예측 단위를 참조하는 시간 예측을 포함한다.
예를 들어, 삼차원 데이터 부호화 장치(이하, 부호화 장치라고 기재한다)는, 포인트 클라우드 등의 점군 데이터에 의해 표현되는 삼차원 공간을 부호화할 때에는, 복셀의 사이즈에 따라, 점군의 각 점, 또는, 복셀 내에 포함되는 복수점을 묶어서 부호화한다. 복셀을 세분화하면 점군의 삼차원 형상을 고정밀도로 표현할 수 있고, 복셀의 사이즈를 크게 하면 점군의 삼차원 형상을 대략적으로 표현할 수 있다.
또한, 이하에서는, 삼차원 데이터가 포인트 클라우드인 경우를 예로 설명을 행하는데, 삼차원 데이터는 포인트 클라우드에 한정되지 않으며, 임의 형식의 삼차원 데이터이면 된다.
또, 계층 구조의 복셀을 이용해도 된다. 이 경우, n차의 계층에서는, n-1차 이하의 계층(n차의 계층의 하층)에 샘플점이 존재하는지의 여부를 차례로 나타내도 된다. 예를 들어, n차의 계층만을 복호할 때에 있어서, n-1차 이하의 계층에 샘플점이 존재하는 경우는, n차 계층의 복셀의 중심에 샘플점이 존재한다고 간주하여 복호할 수 있다.
또, 부호화 장치는, 점군 데이터를, 거리 센서, 스테레오 카메라, 단안 카메라, 자이로, 또는 관성 센서 등을 이용하여 취득한다.
스페이스는, 동화상의 부호화와 마찬가지로, 단독으로 복호 가능한 인트라·스페이스(I-SPC), 단방향의 참조만 가능한 프리딕티브·스페이스(P-SPC), 및, 양방향의 참조가 가능한 바이디렉셔널·스페이스(B-SPC)를 포함하는 적어도 3개의 예측 구조 중 어느 하나로 분류된다. 또, 스페이스는 복호 시각과 표시 시각의 2종류의 시각 정보를 갖는다.
또, 도 1에 나타낸 바와 같이, 복수의 스페이스를 포함하는 처리 단위로서, 랜덤 액세스 단위인 GOS(Group Of Space)가 존재한다. 또한, 복수의 GOS를 포함하는 처리 단위로서 월드(WLD)가 존재한다.
월드가 차지하는 공간 영역은, GPS 또는 위도 및 경도 정보 등에 의해, 지구상의 절대 위치와 대응지어진다. 이 위치 정보는 메타 정보로서 저장된다. 또한, 메타 정보는, 부호화 데이터에 포함되어도 되고, 부호화 데이터와는 별도로 전송되어도 된다.
또, GOS 내에서는, 모든 SPC가 삼차원적으로 인접해도 되고, 다른 SPC와 삼차원적으로 인접하지 않는 SPC가 존재해도 된다.
또한, 이하에서는, GOS, SPC 또는 VLM 등의 처리 단위에 포함되는 삼차원 데이터에 대한, 부호화, 복호 또는 참조 등의 처리를, 단순히, 처리 단위를 부호화, 복호 또는 참조하는 등이라고 기재한다. 또, 처리 단위에 포함되는 삼차원 데이터는, 예를 들어, 삼차원 좌표 등의 공간 위치와, 색 정보 등의 특성값 중 적어도 하나의 세트를 포함한다.
다음으로, GOS에 있어서의 SPC의 예측 구조에 대해 설명한다. 동일 GOS 내의 복수의 SPC, 또는, 동일 SPC 내의 복수의 VLM은, 서로 상이한 공간을 차지하나, 동일한 시각 정보(복호 시각 및 표시 시각)를 갖는다.
또, GOS 내에서 복호순으로 선두가 되는 SPC는 I-SPC이다. 또, GOS에는 클로즈드 GOS와 오픈 GOS의 2종류가 존재한다. 클로즈드 GOS는, 선두 I-SPC로부터 복호 개시할 때에, GOS 내의 모든 SPC를 복호할 수 있는 GOS이다. 오픈 GOS에서는, GOS 내에서 선두 I-SPC보다 표시 시각이 앞이 되는 일부의 SPC는 상이한 GOS를 참조하고 있으며, 당해 GOS만으로 복호를 행할 수 없다.
또한, 지도 정보 등의 부호화 데이터에서는, WLD를 부호화순과는 역방향으로 복호하는 경우가 있으며, GOS 사이에 의존성이 있으면 역방향 재생이 어렵다. 따라서, 이러한 경우에는, 기본적으로는 클로즈드 GOS가 이용된다.
또, GOS는, 높이 방향으로 레이어 구조를 갖고, 아래의 레이어의 SPC로부터 차례로 부호화 또는 복호가 행해진다.
도 2는 GOS의 최하층 레이어에 속하는 SPC 사이의 예측 구조의 일례를 나타낸 도면이다. 도 3은 레이어 사이의 예측 구조의 일례를 나타낸 도면이다.
GOS 내에는 1개 이상의 I-SPC가 존재한다. 삼차원 공간 내에는, 사람, 동물, 차, 자전거, 신호, 또는 랜드마크가 되는 건물 등의 오브젝트가 존재하는데, 특히 사이즈가 작은 오브젝트는 I-SPC로서 부호화하면 유효하다. 예를 들어, 삼차원 데이터 복호 장치(이하, 복호 장치라고 기재한다)는, GOS를 저처리량 또는 고속으로 복호할 때에는, GOS 내의 I-SPC만을 복호한다.
또, 부호화 장치는, WLD 내의 오브젝트의 소밀함에 따라 I-SPC의 부호화 간격 또는 출현 빈도를 전환해도 된다.
또, 도 3에 나타낸 구성에 있어서, 부호화 장치 또는 복호 장치는, 복수의 레이어를 하층(레이어 1)으로부터 차례로 부호화 또는 복호한다. 이에 의해, 예를 들어 자동 주행차 등의 경우에는 보다 정보량이 많은 지면 부근의 데이터의 우선도를 올릴 수 있다.
또한, 드론 등에서 이용되는 부호화 데이터에서는, GOS 내에 있어서 높이 방향으로 위의 레이어의 SPC로부터 차례로 부호화 또는 복호해도 된다.
또, 부호화 장치 또는 복호 장치는, 복호 장치가 러프하게 GOS를 파악할 수 있고, 서서히 해상도를 올릴 수 있도록, 복수의 레이어를 부호화 또는 복호해도 된다. 예를 들어, 부호화 장치 또는 복호 장치는, 레이어 3, 8, 1, 9…의 순으로 부호화 또는 복호해도 된다.
다음으로, 정적 오브젝트 및 동적 오브젝트의 취급 방법에 대해 설명한다.
삼차원 공간에는, 건물 또는 도로 등 정적인 오브젝트 또는 씬(이후, 묶음 정적 오브젝트라고 부른다)과, 차 또는 사람 등의 동적인 오브젝트(이후, 동적 오브젝트라고 부른다)가 존재한다. 오브젝트의 검출은, 포인트 클라우드의 데이터, 또는, 스테레오 카메라 등의 카메라 영상 등으로부터 특징점을 추출하거나 하여, 별도 행해진다. 여기에서는, 동적 오브젝트의 부호화 방법의 예에 대해 설명한다.
제1 방법은, 정적 오브젝트와 동적 오브젝트를 구별하지 않고 부호화하는 방법이다. 제2 방법은, 정적 오브젝트와 동적 오브젝트를 식별 정보에 의해 구별하는 방법이다.
예를 들어, GOS가 식별 단위로서 이용된다. 이 경우, 정적 오브젝트를 구성하는 SPC만을 포함하는 GOS와, 동적 오브젝트를 구성하는 SPC를 포함하는 GOS가, 부호화 데이터 내, 또는 부호화 데이터와는 별도 저장되는 식별 정보에 의해 구별된다.
또는, SPC가 식별 단위로서 이용되어도 된다. 이 경우, 정적 오브젝트를 구성하는 VLM만을 포함하는 SPC와, 동적 오브젝트를 구성하는 VLM을 포함하는 SPC가, 상기 식별 정보에 의해 구별된다.
또는, VLM 혹은 VXL이 식별 단위로서 이용되어도 된다. 이 경우, 정적 오브젝트만을 포함하는 VLM 또는 VXL과, 동적 오브젝트를 포함하는 VLM 또는 VXL이 상기 식별 정보에 의해 구별된다.
또, 부호화 장치는, 동적 오브젝트를 1 이상의 VLM 또는 SPC로서 부호화하고, 정적 오브젝트를 포함하는 VLM 또는 SPC와, 동적 오브젝트를 포함하는 SPC를, 서로 상이한 GOS로서 부호화해도 된다. 또, 부호화 장치는, 동적 오브젝트의 사이즈에 따라 GOS의 사이즈가 가변이 되는 경우에는, GOS의 사이즈를 메타 정보로서 별도 저장한다.
또, 부호화 장치는, 정적 오브젝트와 동적 오브젝트를 서로 독립하여 부호화하고, 정적 오브젝트로부터 구성되는 월드에 대해, 동적 오브젝트를 중첩해도 된다. 이때, 동적 오브젝트는 1 이상의 SPC로부터 구성되고, 각 SPC는, 당해 SPC가 중첩되는 정적 오브젝트를 구성하는 1 이상의 SPC에 대응지어진다. 또한, 동적 오브젝트를 SPC가 아닌, 1 이상의 VLM 또는 VXL에 의해 표현해도 된다.
또, 부호화 장치는, 정적 오브젝트와 동적 오브젝트를 서로 상이한 스트림으로서 부호화해도 된다.
또, 부호화 장치는, 동적 오브젝트를 구성하는 1 이상의 SPC를 포함하는 GOS를 생성해도 된다. 또한, 부호화 장치는, 동적 오브젝트를 포함하는 GOS(GOS_M)와, GOS_M의 공간 영역에 대응하는 정적 오브젝트의 GOS를 동일 사이즈(동일한 공간 영역을 차지한다)로 설정해도 된다. 이에 의해, GOS 단위로 중첩 처리를 행할 수 있다.
동적 오브젝트를 구성하는 P-SPC 또는 B-SPC는, 부호화가 완료된 상이한 GOS에 포함되는 SPC를 참조해도 된다. 동적 오브젝트의 위치가 시간적으로 변화하고, 동일한 동적 오브젝트가 상이한 시각의 GOS로서 부호화되는 케이스에서는, GOS에 걸쳐 있는 참조가 압축율의 관점에서 유효해진다.
또, 부호화 데이터의 용도에 따라, 상기의 제1 방법과 제2 방법을 전환해도 된다. 예를 들어, 부호화 삼차원 데이터를 지도로서 이용하는 경우는, 동적 오브젝트를 분리할 수 있는 것이 바람직하기 때문에, 부호화 장치는, 제2 방법을 이용한다. 한편, 부호화 장치는, 콘서트 또는 스포츠 등의 이벤트의 삼차원 데이터를 부호화하는 경우에, 동적 오브젝트를 분리할 필요가 없으면, 제1 방법을 이용한다.
또, GOS 또는 SPC의 복호 시각과 표시 시각은 부호화 데이터 내, 또는 메타 정보로서 저장할 수 있다. 또, 정적 오브젝트의 시각 정보는 모두 동일해도 된다. 이때, 실제의 복호 시각과 표시 시각은, 복호 장치가 결정하는 것으로 해도 된다. 혹은, 복호 시각으로서, GOS, 혹은, SPC마다 상이한 값이 부여되고, 표시 시각으로서 모두 동일한 값이 부여되어도 된다. 또한, HEVC의 HRD(Hypothetical Reference Decoder) 등 동화상 부호화에 있어서의 디코더 모델과 같이, 디코더가 소정 사이즈의 버퍼를 갖고, 복호 시각에 따라 소정의 비트 레이트로 비트 스트림을 읽어들이면 파탄없이 복호할 수 있는 것을 보증하는 모델을 도입해도 된다.
다음으로, 월드 내에 있어서의 GOS의 배치에 대해 설명한다. 월드에 있어서의 삼차원 공간의 좌표는, 서로 직교하는 3개의 좌표축(x축, y축, z축)에 의해 표현된다. GOS의 부호화순으로 소정의 룰을 설정함으로써, 공간적으로 인접하는 GOS가 부호화 데이터 내에서 연속하도록 부호화를 행할 수 있다. 예를 들어, 도 4에 나타낸 예에서는, xz 평면 내의 GOS를 연속적으로 부호화한다. 어느 xz 평면 내의 모든 GOS의 부호화 종료 후에 y축의 값을 갱신한다. 즉, 부호화가 진행됨에 따라, 월드는 y축 방향으로 신장해 간다. 또, GOS의 인덱스 번호는 부호화순으로 설정된다.
여기서, 월드의 삼차원 공간은, GPS, 혹은 위도 및 경도 등의 지리적인 절대 좌표와 1대 1로 대응지어 둔다. 혹은, 미리 설정한 기준 위치로부터의 상대 위치에 의해 삼차원 공간이 표현되어도 된다. 삼차원 공간의 x축, y축, z축의 방향은, 위도 및 경도 등에 의거하여 결정되는 방향 벡터로서 표현되고, 당해 방향 벡터는 메타 정보로서 부호화 데이터와 함께 저장된다.
또, GOS의 사이즈는 고정으로 하고, 부호화 장치는, 당해 사이즈를 메타 정보로서 저장한다. 또, GOS의 사이즈는, 예를 들어, 도시부인지의 여부, 또는, 실내인지 바깥인지 등에 따라 전환되어도 된다. 즉, GOS의 사이즈는, 정보로서의 가치가 있는 오브젝트의 양 또는 성질에 따라 전환되어도 된다. 혹은, 부호화 장치는, 동일 월드 내에 있어서, 오브젝트의 밀도 등에 따라, GOS의 사이즈, 또는, GOS 내의 I-SPC의 간격을 적응적으로 전환해도 된다. 예를 들어, 부호화 장치는, 오브젝트의 밀도가 높을수록, GOS의 사이즈를 작게 하고, GOS 내의 I-SPC의 간격을 짧게 한다.
도 5의 예에서는, 3번째부터 10번째의 GOS의 영역에서는, 오브젝트의 밀도가 높기 때문에, 세세한 입도에서의 랜덤 액세스를 실현하기 위해, GOS가 세분화되어 있다. 또한, 7번째부터 10번째의 GOS는, 각각, 3번째부터 6번째의 GOS의 안쪽에 존재한다.
다음으로, 본 실시 형태에 따른 삼차원 데이터 부호화 장치의 구성 및 동작의 흐름을 설명한다. 도 6은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(100)의 블록도이다. 도 7은, 삼차원 데이터 부호화 장치(100)의 동작예를 나타낸 플로차트이다.
도 6에 나타낸 삼차원 데이터 부호화 장치(100)는, 삼차원 데이터(111)를 부호화함으로써 부호화 삼차원 데이터(112)를 생성한다. 이 삼차원 데이터 부호화 장치(100)는, 취득부(101)와, 부호화 영역 결정부(102)와, 분할부(103)와, 부호화부(104)를 구비한다.
도 7에 나타낸 바와 같이, 우선, 취득부(101)는, 점군 데이터인 삼차원 데이터(111)를 취득한다(S101).
다음으로, 부호화 영역 결정부(102)는, 취득한 점군 데이터에 대응하는 공간 영역 중, 부호화 대상의 영역을 결정한다(S102). 예를 들어, 부호화 영역 결정부(102)는, 유저 또는 차량의 위치에 따라, 당해 위치의 주변의 공간 영역을 부호화 대상의 영역으로 결정한다.
다음으로, 분할부(103)는, 부호화 대상의 영역에 포함되는 점군 데이터를, 각 처리 단위로 분할한다. 여기서 처리 단위란, 상술한 GOS 및 SPC 등이다. 또, 이 부호화 대상의 영역은, 예를 들어, 상술한 월드에 대응한다. 구체적으로는, 분할부(103)는, 미리 설정한 GOS의 사이즈, 또는, 동적 오브젝트의 유무 혹은 사이즈에 의거하여, 점군 데이터를 처리 단위로 분할한다(S103). 또, 분할부(103)는, 각 GOS에 있어서 부호화순으로 선두가 되는 SPC의 개시 위치를 결정한다.
다음으로, 부호화부(104)는, 각 GOS 내의 복수의 SPC를 순차적으로 부호화함으로써 부호화 삼차원 데이터(112)를 생성한다(S104).
또한, 여기서는, 부호화 대상의 영역을 GOS 및 SPC로 분할한 후에, 각 GOS를 부호화하는 예를 나타냈는데, 처리의 순서는 상기에 한정되지 않는다. 예를 들어, 하나의 GOS의 구성을 결정한 후에 그 GOS를 부호화하고, 그 후, 다음의 GOS의 구성을 결정하는 등의 순서를 이용해도 된다.
이와 같이, 삼차원 데이터 부호화 장치(100)는, 삼차원 데이터(111)를 부호화함으로써 부호화 삼차원 데이터(112)를 생성한다. 구체적으로는, 삼차원 데이터 부호화 장치(100)는, 삼차원 데이터를, 랜덤 액세스 단위이며, 각각이 삼차원 좌표에 대응지어져 있는 제1 처리 단위(GOS)로 분할하고, 제1 처리 단위(GOS)를 복수의 제2 처리 단위(SPC)로 분할하며, 제2 처리 단위(SPC)를 복수의 제3 처리 단위(VLM)로 분할한다. 또, 제3 처리 단위(VLM)는, 위치 정보가 대응지어지는 최소 단위인 1 이상의 복셀(VXL)을 포함한다.
다음으로, 삼차원 데이터 부호화 장치(100)는, 복수의 제1 처리 단위(GOS)의 각각을 부호화함으로써 부호화 삼차원 데이터(112)를 생성한다. 구체적으로는, 삼차원 데이터 부호화 장치(100)는, 각 제1 처리 단위(GOS)에 있어서, 복수의 제2 처리 단위(SPC)의 각각을 부호화한다. 또, 삼차원 데이터 부호화 장치(100)는, 각 제2 처리 단위(SPC)에 있어서, 복수의 제3 처리 단위(VLM)의 각각을 부호화한다.
예를 들어, 삼차원 데이터 부호화 장치(100)는, 처리 대상의 제1 처리 단위(GOS)가 클로즈드 GOS인 경우에는, 처리 대상의 제1 처리 단위(GOS)에 포함되는 처리 대상의 제2 처리 단위(SPC)를, 처리 대상의 제1 처리 단위(GOS)에 포함되는 다른 제2 처리 단위(SPC)를 참조하여 부호화한다. 즉, 삼차원 데이터 부호화 장치(100)는, 처리 대상의 제1 처리 단위(GOS)와는 상이한 제1 처리 단위(GOS)에 포함되는 제2 처리 단위(SPC)를 참조하지 않는다.
한편, 처리 대상의 제1 처리 단위(GOS)가 오픈 GOS인 경우에는, 처리 대상의 제1 처리 단위(GOS)에 포함되는 처리 대상의 제2 처리 단위(SPC)를, 처리 대상의 제1 처리 단위(GOS)에 포함되는 다른 제2 처리 단위(SPC), 또는, 처리 대상의 제1 처리 단위(GOS)와는 상이한 제1 처리 단위(GOS)에 포함되는 제2 처리 단위(SPC)를 참조하여 부호화한다.
또, 삼차원 데이터 부호화 장치(100)는, 처리 대상의 제2 처리 단위(SPC)의 타입으로서, 다른 제2 처리 단위(SPC)를 참조하지 않는 제1 타입(I-SPC), 다른 하나의 제2 처리 단위(SPC)를 참조하는 제2 타입(P-SPC), 및 다른 두 개의 제2 처리 단위(SPC)를 참조하는 제3 타입 중 어느 하나를 선택하고, 선택한 타입에 따라 처리 대상의 제2 처리 단위(SPC)를 부호화한다.
다음으로, 본 실시 형태에 따른 삼차원 데이터 복호 장치의 구성 및 동작의 흐름을 설명한다. 도 8은, 본 실시 형태에 따른 삼차원 데이터 복호 장치(200)의 블록의 블록도이다. 도 9는, 삼차원 데이터 복호 장치(200)의 동작예를 나타낸 플로차트이다.
도 8에 나타낸 삼차원 데이터 복호 장치(200)는, 부호화 삼차원 데이터(211)를 복호함으로써 복호 삼차원 데이터(212)를 생성한다. 여기서, 부호화 삼차원 데이터(211)는, 예를 들어, 삼차원 데이터 부호화 장치(100)에서 생성된 부호화 삼차원 데이터(112)이다. 이 삼차원 데이터 복호 장치(200)는, 취득부(201)와, 복호 개시 GOS 결정부(202)와, 복호 SPC 결정부(203)와, 복호부(204)를 구비한다.
우선, 취득부(201)는, 부호화 삼차원 데이터(211)를 취득한다(S201). 다음으로, 복호 개시 GOS 결정부(202)는, 복호 대상의 GOS로 결정한다(S202). 구체적으로는, 복호 개시 GOS 결정부(202)는, 부호화 삼차원 데이터(211) 내, 또는 부호화 삼차원 데이터와는 별도로 저장된 메타 정보를 참조하여, 복호를 개시하는 공간 위치, 오브젝트, 또는, 시각에 대응하는 SPC를 포함하는 GOS를 복호 대상의 GOS로 결정한다.
다음으로, 복호 SPC 결정부(203)는, GOS 내에서 복호하는 SPC의 타입(I, P, B)을 결정한다(S203). 예를 들어, 복호 SPC 결정부(203)는, (1) I-SPC만을 복호할지, (2) I-SPC 및 P-SPC를 복호할지, (3) 모든 타입을 복호할지를 결정한다. 또한, 모든 SPC를 복호하는 등, 미리 복호하는 SPC의 타입이 결정되어 있는 경우는, 본 단계는 행해지지 않아도 된다.
다음으로, 복호부(204)는, GOS 내에서 복호순(부호화순과 동일)으로 선두가 되는 SPC가 부호화 삼차원 데이터(211) 내에서 개시하는 어드레스 위치를 취득하고, 당해 어드레스 위치로부터 선두 SPC의 부호화 데이터를 취득하며, 당해 선두 SPC로부터 차례로 각 SPC를 순차적으로 복호한다(S204). 또한, 상기 어드레스 위치는, 메타 정보 등에 저장되어 있다.
이와 같이, 삼차원 데이터 복호 장치(200)는, 복호 삼차원 데이터(212)를 복호한다. 구체적으로는, 삼차원 데이터 복호 장치(200)는, 랜덤 액세스 단위이며, 각각이 삼차원 좌표에 대응지어져 있는 제1 처리 단위(GOS)의 부호화 삼차원 데이터(211)의 각각을 복호함으로써 제1 처리 단위(GOS)의 복호 삼차원 데이터(212)를 생성한다. 보다 구체적으로는, 삼차원 데이터 복호 장치(200)는, 각 제1 처리 단위(GOS)에 있어서, 복수의 제2 처리 단위(SPC)의 각각을 복호한다. 또, 삼차원 데이터 복호 장치(200)는, 각 제2 처리 단위(SPC)에 있어서, 복수의 제3 처리 단위(VLM)의 각각을 복호한다.
이하, 랜덤 액세스용의 메타 정보에 대해 설명한다. 이 메타 정보는, 삼차원 데이터 부호화 장치(100)에서 생성되고, 부호화 삼차원 데이터(112(211))에 포함된다.
종래의 이차원의 동화상에 있어서의 랜덤 액세스에서는, 지정한 시각의 근방이 되는 랜덤 액세스 단위의 선두 프레임으로부터 복호를 개시하고 있었다. 한편, 월드에 있어서는, 시각에 추가하여, 공간(좌표 또는 오브젝트 등)에 대한 랜덤 액세스가 상정된다.
그래서, 적어도 좌표, 오브젝트, 및 시각의 3개의 요소로의 랜덤 액세스를 실현하기 위해, 각 요소와 GOS의 인덱스 번호를 대응짓는 테이블을 준비한다. 또한, GOS의 인덱스 번호와 GOS의 선두가 되는 I-SPC의 어드레스를 대응짓는다. 도 10은, 메타 정보에 포함되는 테이블의 일례를 나타낸 도면이다. 또한, 도 10에 나타낸 모든 테이블이 이용될 필요는 없고, 적어도 하나의 테이블이 이용되면 된다.
이하, 일례로서, 좌표를 기점으로 하는 랜덤 액세스에 대해 설명한다. 좌표(x2, y2, z2)에 액세스할 때에는, 우선, 좌표-GOS 테이블을 참조하여, 좌표가 (x2, y2, z2)인 지점은 2번째의 GOS에 포함되는 것을 알 수 있다. 다음으로, GOS 어드레스 테이블을 참조하여, 2번째의 GOS에 있어서의 선두의 I-SPC의 어드레스가 addr(2)인 것을 알 수 있기 때문에, 복호부(204)는, 이 어드레스로부터 데이터를 취득하여 복호를 개시한다.
또한, 어드레스는, 논리 포맷에 있어서의 어드레스여도, HDD 또는 메모리의 물리 어드레스여도 된다. 또, 어드레스를 대신하여 파일 세그먼트를 특정하는 정보가 이용되어도 된다. 예를 들어, 파일 세그먼트는, 1개 이상의 GOS 등을 세그먼트화한 단위이다.
또, 오브젝트가 복수의 GOS에 걸쳐 있는 경우에는, 오브젝트-GOS 테이블에 있어서, 오브젝트가 속하는 GOS를 복수 나타내도 된다. 당해 복수의 GOS가 클로즈드 GOS이면, 부호화 장치 및 복호 장치는, 병렬로 부호화 또는 복호를 행할 수 있다. 한편, 당해 복수의 GOS가 오픈 GOS이면, 복수의 GOS가 서로 참조함으로써 보다 압축 효율을 높일 수 있다.
오브젝트의 예로는, 사람, 동물, 차, 자전거, 신호, 또는 랜드마크가 되는 건물 등이 있다. 예를 들어, 삼차원 데이터 부호화 장치(100)는, 월드의 부호화 시에 삼차원의 포인트 클라우드 등으로부터 오브젝트에 특유의 특징점을 추출하고, 당해 특징점에 의거하여 오브젝트를 검출하며, 검출한 오브젝트를 랜덤 액세스 포인트로서 설정할 수 있다.
이와 같이, 삼차원 데이터 부호화 장치(100)는, 복수의 제1 처리 단위(GOS)와, 복수의 제1 처리 단위(GOS)의 각각에 대응지어져 있는 삼차원 좌표를 나타내는 제1 정보를 생성한다. 또, 부호화 삼차원 데이터(112(211))는, 이 제1 정보를 포함한다. 또, 제1 정보는, 또한, 복수의 제1 처리 단위(GOS)의 각각에 대응지어져 있는, 오브젝트, 시각 및 데이터 저장처 중 적어도 하나를 나타낸다.
삼차원 데이터 복호 장치(200)는, 부호화 삼차원 데이터(211)로부터 제1 정보를 취득하고, 제1 정보를 이용하여, 지정된 삼차원 좌표, 오브젝트 또는 시각에 대응하는 제1 처리 단위의 부호화 삼차원 데이터(211)를 특정하며, 당해 부호화 삼차원 데이터(211)를 복호한다.
이하, 그 외의 메타 정보의 예에 대해 설명한다. 랜덤 액세스용의 메타 정보 외에, 삼차원 데이터 부호화 장치(100)는, 이하와 같은 메타 정보를 생성 및 저장해도 된다. 또, 삼차원 데이터 복호 장치(200)는, 이 메타 정보를 복호 시에 이용해도 된다.
삼차원 데이터를 지도 정보로서 이용하는 경우 등에는, 용도에 따라 프로파일이 규정되고, 당해 프로파일을 나타내는 정보가 메타 정보에 포함되어도 된다. 예를 들어, 시가지 혹은 교외용, 또는, 비행 물체용의 프로파일이 규정되고, 각각에 있어서 월드, SPC 또는 VLM의 최대 또는 최소 사이즈 등이 정의된다. 예를 들어, 시가지용에서는, 교외용보다 상세한 정보가 필요하기 때문에, VLM의 최소 사이즈가 작게 설정된다.
메타 정보는, 오브젝트의 종류를 나타내는 태그값을 포함해도 된다. 이 태그값은 오브젝트를 구성하는 VLM, SPC, 또는 GOS와 대응지어진다. 예를 들어, 태그값 「0」은 「사람」을 나타내고, 태그값 「1」은 「차」를 나타내며, 태그값 「2」는 「신호기」를 나타내는, 등 오브젝트의 종류마다 태그값이 설정되어도 된다. 또는, 오브젝트의 종류가 판정하기 어렵거나 또는 판정할 필요가 없는 경우는 사이즈, 또는, 동적 오브젝트나 정적 오브젝트 등의 성질을 나타낸 태그값이 이용되어도 된다.
또, 메타 정보는, 월드가 차지하는 공간 영역의 범위를 나타내는 정보를 포함해도 된다.
또, 메타 정보는, 부호화 데이터의 스트림 전체, 또는, GOS 내의 SPC 등, 복수의 SPC에 공통의 헤더 정보로서, SPC 또는 VXL의 사이즈를 저장해도 된다.
또, 메타 정보는, 포인트 클라우드의 생성에 이용한 거리 센서 혹은 카메라 등의 식별 정보, 또는, 포인트 클라우드 내의 점군의 위치 정밀도를 나타내는 정보를 포함해도 된다.
또, 메타 정보는, 월드가 정적 오브젝트만으로 구성되는지, 동적 오브젝트를 포함하는지를 나타내는 정보를 포함해도 된다.
이하, 본 실시 형태의 변형예에 대해 설명한다.
부호화 장치 또는 복호 장치는, 서로 상이한 2 이상의 SPC 또는 GOS를 병렬로 부호화 또는 복호해도 된다. 병렬로 부호화 또는 복호하는 GOS는, GOS의 공간 위치를 나타내는 메타 정보 등에 의거하여 결정할 수 있다.
삼차원 데이터를 차 또는 비행 물체 등이 이동할 때의 공간 지도로서 이용하거나, 또는 이러한 공간 지도를 생성하는 케이스 등에서는, 부호화 장치 또는 복호 장치는, GPS, 경로 정보, 또는 줌 배율 등에 의거하여 특정되는 공간에 포함되는 GOS 또는 SPC를 부호화 또는 복호해도 된다.
또, 복호 장치는, 자기 위치 또는 주행 경로에 가까운 공간으로부터 차례로 복호를 행해도 된다. 부호화 장치 또는 복호 장치는, 자기 위치 또는 주행 경로로부터 먼 공간을, 가까운 공간에 비해 우선도를 떨어뜨려 부호화 또는 복호해도 된다. 여기서, 우선도를 떨어뜨린다는 것은, 처리순을 내리거나, 해상도를 내리거나(솎아내어 처리하거나), 또는, 화질을 내리는(부호화 효율을 올린다. 예를 들어, 양자화 단계를 크게 한다.) 등이다.
또, 복호 장치는, 공간 내에서 계층적으로 부호화되어 있는 부호화 데이터를 복호할 때는, 저계층만을 복호해도 된다.
또, 복호 장치는, 지도의 줌 배율 또는 용도에 따라, 저계층으로부터 우선적으로 복호해도 된다.
또, 차 또는 로봇의 자율 주행 시에 행하는 자기 위치 추정 또는 물체 인식 등의 용도에서는, 부호화 장치 또는 복호 장치는, 노면으로부터 특정 높이 이내의 영역(인식을 행하는 영역) 이외는 해상도를 떨어뜨려 부호화 또는 복호를 행해도 된다.
또, 부호화 장치는, 실내와 실외의 공간 형상을 표현하는 포인트 클라우드를 각각 개별적으로 부호화해도 된다. 예를 들어, 실내를 표현하는 GOS(실내 GOS)와 실외를 표현하는 GOS(실외 GOS)를 나눔으로써, 복호 장치는, 부호화 데이터를 이용할 때에, 시점 위치에 따라 복호하는 GOS를 선택할 수 있다.
또, 부호화 장치는, 좌표가 가까운 실내 GOS와 실외 GOS를, 부호화 스트림 내에서 인접하도록 부호화해도 된다. 예를 들어, 부호화 장치는, 양자의 식별자를 대응짓고, 부호화 스트림 내, 또는 별도 저장되는 메타 정보 내에 대응지은 식별자를 나타내는 정보를 저장한다. 이에 의해, 복호 장치는, 메타 정보 내의 정보를 참조하여, 좌표가 가까운 실내 GOS와 실외 GOS를 식별할 수 있다.
또, 부호화 장치는, 실내 GOS와 실외 GOS에서, GOS 또는 SPC의 사이즈를 전환해도 된다. 예를 들어, 부호화 장치는, 실내에서는 실외에 비해 GOS의 사이즈를 작게 설정한다. 또, 부호화 장치는, 실내 GOS와 실외 GOS에서, 포인트 클라우드로부터 특징점을 추출할 때의 정밀도, 또는 오브젝트 검출의 정밀도 등을 변경해도 된다.
또, 부호화 장치는, 복호 장치가 동적 오브젝트를 정적 오브젝트와 구별하여 표시하기 위한 정보를 부호화 데이터에 부가해도 된다. 이에 의해, 복호 장치는, 동적 오브젝트와 적색 테두리 또는 설명용의 문자 등을 함께 표시할 수 있다. 또한, 복호 장치는, 동적 오브젝트를 대신하여 적색 테두리 또는 설명용의 문자만을 표시해도 된다. 또, 복호 장치는, 보다 세세한 오브젝트 종별을 표시해도 된다. 예를 들어, 차에는 적색 테두리가 이용되고, 사람에는 황색 테두리가 이용되어도 된다.
또, 부호화 장치 또는 복호 장치는, 동적 오브젝트의 출현 빈도, 또는, 정적 오브젝트와 동적 오브젝트의 비율 등에 따라, 동적 오브젝트와 정적 오브젝트를 상이한 SPC 또는 GOS로서 부호화 또는 복호할지의 여부를 결정해도 된다. 예를 들어, 동적 오브젝트의 출현 빈도 또는 비율이 역치를 초과하는 경우에는, 동적 오브젝트와 정적 오브젝트가 혼재하는 SPC 또는 GOS가 허용되고, 동적 오브젝트의 출현 빈도 또는 비율이 역치를 초과하지 않는 경우에는, 동적 오브젝트와 정적 오브젝트가 혼재하는 SPC 또는 GOS가 허용되지 않는다.
동적 오브젝트를 포인트 클라우드가 아닌, 카메라의 이차원 화상 정보로부터 검출할 때에는, 부호화 장치는, 검출 결과를 식별하기 위한 정보(테두리 또는 문자 등)와 오브젝트 위치를 별도 취득하고, 이들의 정보를 삼차원의 부호화 데이터의 일부로서 부호화해도 된다. 이 경우, 복호 장치는, 정적 오브젝트의 복호 결과에 대해, 동적 오브젝트를 나타내는 보조 정보(테두리 또는 문자)를 중첩하여 표시한다.
또, 부호화 장치는, 정적 오브젝트의 형상의 복잡함 등에 따라, SPC에 있어서의 VXL 또는 VLM의 소밀함을 변경해도 된다. 예를 들어, 부호화 장치는, 정적 오브젝트의 형상이 복잡할수록, VXL 또는 VLM을 조밀하게 설정한다. 또한, 부호화 장치는, 공간 위치 또는 색 정보를 양자화할 때의 양자화 단계 등을 VXL 또는 VLM의 소밀함에 따라 결정해도 된다. 예를 들어, 부호화 장치는, VXL 또는 VLM이 조밀할수록 양자화 단계를 작게 설정한다.
이상과 같이, 본 실시 형태에 따른 부호화 장치 또는 복호 장치는, 좌표 정보를 갖는 스페이스 단위로 공간의 부호화 또는 복호를 행한다.
또, 부호화 장치 및 복호 장치는, 스페이스 내에 있어서, 볼륨 단위로 부호화 또는 복호를 행한다. 볼륨은, 위치 정보가 대응지어지는 최소 단위인 복셀을 포함한다.
또, 부호화 장치 및 복호 장치는, 좌표, 오브젝트, 및 시간 등을 포함하는 공간 정보의 각 요소와 GOP를 대응지은 테이블, 또는 각 요소 사이를 대응지은 테이블에 의해 임의의 요소 사이를 대응지어 부호화 또는 복호를 행한다. 또, 복호 장치는, 선택된 요소의 값을 이용하여 좌표를 판정하고, 좌표로부터 볼륨, 복셀 또는 스페이스를 특정하며, 당해 볼륨 또는 복셀을 포함하는 스페이스, 또는 특정된 스페이스를 복호한다.
또, 부호화 장치는, 특징점 추출 또는 오브젝트 인식에 의해, 요소에 의해 선택 가능한 볼륨, 복셀 또는 스페이스를 판정하고, 랜덤 액세스 가능한 볼륨, 복셀 또는 스페이스로서 부호화한다.
스페이스는, 당해 스페이스 단체로 부호화 또는 복호 가능한 I-SPC와, 임의의 한 개의 처리가 완료된 스페이스를 참조하여 부호화 또는 복호되는 P-SPC와, 임의의 두 개의 처리가 완료된 스페이스를 참조하여 부호화 또는 복호되는 B-SPC의 3종류의 타입으로 분류된다.
1 이상의 볼륨이, 정적 오브젝트 또는 동적인 오브젝트에 대응한다. 정적 오브젝트를 포함하는 스페이스와 동적 오브젝트를 포함하는 스페이스는 서로 상이한 GOS로서 부호화 또는 복호된다. 즉, 정적 오브젝트를 포함하는 SPC와, 동적 오브젝트를 포함하는 SPC가 상이한 GOS에 할당된다.
동적 오브젝트는 오브젝트마다 부호화 또는 복호되고, 정적 오브젝트를 포함하는 1 이상의 스페이스에 대응지어진다. 즉, 복수의 동적 오브젝트는 개별적으로 부호화되고, 얻어진 복수의 동적 오브젝트의 부호화 데이터는, 정적 오브젝트를 포함하는 SPC에 대응지어진다.
부호화 장치 및 복호 장치는, GOS 내의 I-SPC의 우선도를 올리고, 부호화 또는 복호를 행한다. 예를 들어, 부호화 장치는, I-SPC의 열화가 적어지도록(복호 후에 원래의 삼차원 데이터가 보다 충실히 재현되도록) 부호화를 행한다. 또, 복호 장치는, 예를 들어, I-SPC만을 복호한다.
부호화 장치는, 월드 내의 오브젝트의 소밀함 또는 수(양)에 따라 I-SPC를 이용하는 빈도를 바꾸어 부호화를 행해도 된다. 즉, 부호화 장치는, 삼차원 데이터에 포함되는 오브젝트의 수 또는 소밀함에 따라, I-SPC를 선택하는 빈도를 변경한다. 예를 들어, 부호화 장치는, 월드 내의 오브젝트가 조밀할수록 I스페이스를 이용하는 빈도를 올린다.
또, 부호화 장치는, 랜덤 액세스 포인트를 GOS 단위로 설정하고, GOS에 대응하는 공간 영역을 나타내는 정보를 헤더 정보에 저장한다.
부호화 장치는, GOS의 공간 사이즈로서, 예를 들어, 디폴트값을 사용한다. 또한, 부호화 장치는, 오브젝트 또는 동적 오브젝트의 수(양) 또는 소밀함에 따라 GOS의 사이즈를 변경해도 된다. 예를 들어, 부호화 장치는, 오브젝트 혹은 동적 오브젝트가 조밀할수록, 또는 수가 많을수록 GOS의 공간 사이즈를 작게 한다.
또, 스페이스 또는 볼륨은, 뎁스 센서, 자이로, 또는 카메라 등의 센서로 얻어진 정보를 이용하여 도출된 특징점군을 포함한다. 특징점의 좌표는 복셀의 중심 위치에 설정된다. 또, 복셀의 세분화에 의해 위치 정보의 고정밀도화를 실현할 수 있다.
특징점군은, 복수의 픽처를 이용하여 도출된다. 복수의 픽처는, 실제의 시각 정보와, 스페이스에 대응지어진 복수의 픽처와 동일한 시각 정보(예를 들어, 레이트 제어 등에 이용되는 부호화 시각)의 적어도 2종류의 시각 정보를 갖는다.
또, 1 이상의 스페이스를 포함하는 GOS 단위로 부호화 또는 복호가 행해진다.
부호화 장치 및 복호 장치는, 처리가 완료된 GOS 내의 스페이스를 참조하여, 처리 대상의 GOS 내의 P스페이스 또는 B스페이스의 예측을 행한다.
또는, 부호화 장치 및 복호 장치는, 상이한 GOS를 참조하지 않고, 처리 대상의 GOS 내의 처리가 완료된 스페이스를 이용하여 처리 대상의 GOS 내의 P스페이스 또는 B스페이스의 예측을 행한다.
또, 부호화 장치 및 복호 장치는, 1 이상의 GOS를 포함하는 월드 단위로 부호화 스트림을 송신 또는 수신한다.
또, GOS는 적어도 월드 내에서 1방향으로 레이어 구조를 갖고, 부호화 장치 및 복호 장치는, 하위 레이어로부터 부호화 또는 복호를 행한다. 예를 들어, 랜덤 액세스 가능한 GOS는 최하위 레이어에 속한다. 상위 레이어에 속하는 GOS는 동일 레이어 이하에 속하는 GOS를 참조한다. 즉, GOS는, 미리 정해진 방향으로 공간 분할되고, 각각이 1 이상의 SPC를 포함하는 복수의 레이어를 포함한다. 부호화 장치 및 복호 장치는, 각 SPC를, 당해 SPC와 동일 레이어 또는 당해 SPC보다 하층의 레이어에 포함되는 SPC를 참조하여 부호화 또는 복호한다.
또, 부호화 장치 및 복호 장치는, 복수의 GOS를 포함하는 월드 단위 내에서, 연속하여 GOS를 부호화 또는 복호한다. 부호화 장치 및 복호 장치는, 부호화 또는 복호의 순서(방향)를 나타내는 정보를 메타 데이터로서 기입하거나 또는 읽어낸다. 즉, 부호화 데이터는, 복수의 GOS의 부호화순을 나타내는 정보를 포함한다.
또, 부호화 장치 및 복호 장치는, 서로 상이한 2 이상의 스페이스 또는 GOS를 병렬로 부호화 또는 복호한다.
또, 부호화 장치 및 복호 장치는, 스페이스 또는 GOS의 공간 정보(좌표, 사이즈 등)를 부호화 또는 복호한다.
또, 부호화 장치 및 복호 장치는, GPS, 경로 정보, 또는 배율 등, 자기의 위치 또는/및 영역 사이즈에 관한 외부 정보에 의거하여 특정되는 특정 공간에 포함되는 스페이스 또는 GOS를 부호화 또는 복호한다.
부호화 장치 또는 복호 장치는, 자기의 위치로부터 먼 공간은, 가까운 공간에 비해 우선도를 떨어뜨려 부호화 또는 복호한다.
부호화 장치는, 배율 또는 용도에 따라, 월드의 어느 1방향을 설정하고, 당해 방향으로 레이어 구조를 갖는 GOS를 부호화한다. 또, 복호 장치는, 배율 또는 용도에 따라 설정된 월드의 어느 1방향으로 레이어 구조를 갖는 GOS를, 하위 레이어로부터 우선적으로 복호한다.
부호화 장치는, 실내와 실외에서 스페이스에 포함되는 특징점 추출, 오브젝트 인식의 정밀도, 또는 공간 영역 사이즈 등을 변화시킨다. 단, 부호화 장치 및 복호 장치는, 좌표가 가까운 실내 GOS와 실외 GOS를 월드 내에서 인접하여 부호화 또는 복호하고, 이들의 식별자도 대응지어 부호화 또는 복호한다.
(실시 형태 2)
포인트 클라우드의 부호화 데이터를 실제의 장치 또는 서비스에 있어서 사용할 때에는, 네트워크 대역을 억제하기 위해 용도에 따라 필요한 정보를 송수신하는 것이 바람직하다. 그러나, 지금까지, 삼차원 데이터의 부호화 구조에는 그러한 기능이 존재하지 않으며, 그를 위한 부호화 방법도 존재하지 않았다.
본 실시 형태에서는, 삼차원의 포인트 클라우드의 부호화 데이터에 있어서 용도에 따라 필요한 정보만을 송수신하는 기능을 제공하기 위한 삼차원 데이터 부호화 방법 및 삼차원 데이터 부호화 장치, 및, 당해 부호화 데이터를 복호하는 삼차원 데이터 복호 방법 및 삼차원 데이터 복호 장치에 대해 설명한다.
특징량을 일정 이상 갖는 복셀(VXL)을 특징 복셀(FVXL)이라고 정의하고, FVXL로 구성되는 월드(WLD)를 스파스 월드(SWLD)라고 정의한다. 도 11은, 스파스 월드 및 월드의 구성예를 나타낸 도면이다. SWLD에는, FVXL로 구성되는 GOS인 FGOS와, FVXL로 구성되는 SPC인 FSPC와, FVXL로 구성되는 VLM인 FVLM이 포함된다. FGOS, FSPC 및 FVLM의 데이터 구조 및 예측 구조는 GOS, SPC 및 VLM과 동일해도 상관없다.
특징량이란, VXL의 삼차원 위치 정보, 또는 VXL 위치의 가시광 정보를 표현하는 특징량이며, 특히 입체물의 코너 및 에지 등에서 많이 검출되는 특징량이다. 구체적으로는, 이 특징량은, 하기와 같은 삼차원 특징량 또는 가시광의 특징량이지만, 그 외, VXL의 위치, 휘도, 또는 색 정보 등을 나타내는 특징량이면, 어떠한 것이어도 상관없다.
삼차원 특징량으로서, SHOT 특징량(Signature of Histograms of OrienTations), PFH 특징량(Point Feature Histograms), 또는 PPF 특징량(Point Pair Feature)이 이용된다.
SHOT 특징량은, VXL 주변을 분할하여, 기준점과 분할된 영역의 법선 벡터의 내적을 계산하여 히스토그램화함으로써 얻어진다. 이 SHOT 특징량은, 차원수가 높고, 특징 표현력이 높다는 특징을 갖는다.
PFH 특징량은, VXL 근방의 다수의 2점 세트를 선택하고, 그 2점으로부터 법선 벡터 등을 산출하여 히스토그램화함으로써 얻어진다. 이 PFH 특징량은, 히스토그램 특징이므로, 다소의 외란에 대해 로버스트성을 가지며, 특징 표현력도 높다는 특징을 갖는다.
PPF 특징량은, 2점의 VXL마다 법선 벡터 등을 이용하여 산출되는 특징량이다. 이 PPF 특징량에는, 전 VXL이 사용되므로, 오클루전에 대해 로버스트성을 갖는다.
또, 가시광의 특징량으로서, 화상의 휘도 구배 정보 등의 정보를 이용한 SIFT(Scale-Invariant Feature Transform), SURF(Speeded Up Robust Features), 또는 HOG(Histogram of Oriented Gradients) 등을 이용할 수 있다.
SWLD는, WLD의 각 VXL로부터 상기 특징량을 산출하여, FVXL을 추출함으로써 생성된다. 여기서, SWLD는 WLD가 갱신될 때마다 갱신해도 상관없고, WLD의 갱신 타이밍에 상관없이, 일정 시간 경과 후에 정기적으로 갱신하도록 해도 상관없다.
SWLD는 특징량마다 생성해도 상관없다. 예를 들어, SHOT 특징량에 의거한 SWLD1과 SIFT 특징량에 의거한 SWLD2와 같이, 특징량마다 각기 다른 SWLD가 생성되고, 용도에 따라 SWLD를 구분하여 사용하도록 해도 상관없다. 또, 산출한 각 FVXL의 특징량을 특징량 정보로서 각 FVXL에 유지하도록 해도 상관없다.
다음으로, 스파스 월드(SWLD)의 이용 방법에 대해 설명한다. SWLD는 특징 복셀(FVXL)만을 포함하므로, 모든 VXL을 포함하는 WLD에 비해 일반적으로 데이터 사이즈가 작다.
특징량을 이용하여 어떠한 목적을 완수하는 어플리케이션에 있어서는, WLD를 대신하여 SWLD의 정보를 이용함으로써, 하드디스크로부터의 독출 시간, 및 네트워크 전송 시의 대역 및 전송 시간을 억제할 수 있다. 예를 들어, 지도 정보로서, WLD와 SWLD를 서버에 유지해 두고, 클라이언트로부터의 요망에 따라, 송신하는 지도 정보를 WLD 또는 SWLD로 전환함으로써, 네트워크 대역 및 전송 시간을 억제할 수 있다. 이하, 구체적인 예를 나타낸다.
도 12 및 도 13은, SWLD 및 WLD의 이용예를 나타낸 도면이다. 도 12에 나타낸 바와 같이, 차재 장치인 클라이언트(1)가 자기 위치 판정 용도로서 지도 정보를 필요한 경우는, 클라이언트(1)는 서버에 자기 위치 추정용의 지도 데이터의 취득 요망을 보낸다(S301). 서버는, 당해 취득 요망에 따라 SWLD를 클라이언트(1)에 송신한다(S302). 클라이언트(1)는, 수신한 SWLD를 이용하여 자기 위치 판정을 행한다(S303). 이때, 클라이언트(1)는 레인지 파인더 등의 거리 센서, 스테레오 카메라, 또는 복수의 단안 카메라의 조합 등의 여러 가지 방법으로 클라이언트(1) 주변의 VXL 정보를 취득하여, 얻어진 VXL 정보와 SWLD로부터 자기 위치 정보를 추정한다. 여기서 자기 위치 정보는, 클라이언트(1)의 삼차원 위치 정보 및 방향 등을 포함한다.
도 13에 나타낸 바와 같이, 차재 장치인 클라이언트(2)가 삼차원 지도 등의 지도 묘화의 용도로서 지도 정보가 필요한 경우는, 클라이언트(2)는 서버에 지도 묘화용의 지도 데이터의 취득 요망을 보낸다(S311). 서버는, 당해 취득 요망에 따라 WLD를 클라이언트(2)에 송신한다(S312). 클라이언트(2)는, 수신한 WLD를 이용하여 지도 묘화를 행한다(S313). 이때, 클라이언트(2)는, 예를 들어, 자기가 가시광 카메라 등으로 촬영한 화상과, 서버로부터 취득한 WLD를 이용하여 렌더링 화상을 작성하고, 작성한 화상을 카 내비게이션 등의 화면에 묘화한다.
상기와 같이, 서버는, 자기 위치 추정과 같은 각 VXL의 특징량을 주로 필요로 하는 용도에서는 SWLD를 클라이언트에 송신하고, 지도 묘화와 같이 상세한 VXL 정보가 필요한 경우는 WLD를 클라이언트에 송신한다. 이에 의해, 지도 데이터를 효율적으로 송수신하는 것이 가능해진다.
또한, 클라이언트는, 스스로 SWLD와 WLD 중 어느 쪽이 필요한지를 판단하여, 서버에 SWLD 또는 WLD의 송신을 요구해도 상관없다. 또, 서버는, 클라이언트 또는 네트워크의 상황에 맞추어, SWLD나 WLD 중 어느 쪽을 송신해야 할지를 판단해도 상관없다.
다음으로, 스파스 월드(SWLD)와 월드(WLD)의 송수신을 전환하는 방법을 설명한다.
네트워크 대역에 따라 WLD 또는 SWLD를 수신할지를 전환하도록 해도 된다. 도 14는, 이 경우의 동작예를 나타낸 도면이다. 예를 들어, LTE(Long Term Evolution) 환경하 등의 사용할 수 있는 네트워크 대역이 한정되어 있는 저속 네트워크가 이용되고 있는 경우에는, 클라이언트는, 저속 네트워크 경유로 서버에 액세스하여(S321), 서버로부터 지도 정보로서 SWLD를 취득한다(S322). 한편, Wi-Fi(등록상표) 환경하 등의 네트워크 대역에 여유가 있는 고속 네트워크가 이용되고 있는 경우에는, 클라이언트는, 고속 네트워크 경유로 서버에 액세스하여(S323), 서버로부터 WLD를 취득한다(S324). 이에 의해, 클라이언트는, 당해 클라이언트의 네트워크 대역에 따라 적절한 지도 정보를 취득할 수 있다.
구체적으로는, 클라이언트는, 옥외에서는 LTE 경유로 SWLD를 수신하고, 시설 등의 옥내에 들어간 경우는 Wi-Fi(등록상표) 경유로 WLD를 취득한다. 이에 의해, 클라이언트는, 옥내의 보다 상세한 지도 정보를 취득하는 것이 가능해진다.
이와 같이, 클라이언트는, 자신이 이용하는 네트워크의 대역에 따라 서버에 WLD 또는 SWLD를 요구해도 된다. 또는, 클라이언트는, 자신이 이용하는 네트워크의 대역을 나타내는 정보를 서버에 송신하고, 서버는 당해 정보에 따라 당해 클라이언트에 적합한 데이터(WLD 또는 SWLD)를 송신해도 된다. 또는, 서버는, 클라이언트의 네트워크 대역을 판별하여, 당해 클라이언트에 적합한 데이터(WLD 또는 SWLD)를 송신해도 된다.
또, 이동 속도에 따라 WLD 또는 SWLD를 수신할지를 전환하도록 해도 된다. 도 15는, 이 경우의 동작예를 나타낸 도면이다. 예를 들어, 클라이언트가 고속 이동을 하고 있는 경우는(S331), 클라이언트는 SWLD를 서버로부터 수신한다(S332). 한편, 클라이언트가 저속 이동을 하고 있는 경우는(S333), 클라이언트는 WLD를 서버로부터 수신한다(S334). 이에 의해, 클라이언트는, 네트워크 대역을 억제하면서, 속도에 맞는 지도 정보를 취득할 수 있다. 구체적으로는, 클라이언트는, 고속 도로를 주행 중에는 데이터량이 적은 SWLD를 수신함으로써, 대략의 지도 정보를 적절한 속도로 갱신할 수 있다. 한편, 클라이언트는, 일반 도로를 주행 중에는 WLD를 수신함으로써, 보다 상세한 지도 정보를 취득하는 것이 가능해진다.
이와 같이, 클라이언트는, 자신의 이동 속도에 따라 서버에 WLD 또는 SWLD를 요구해도 된다. 또는, 클라이언트는, 자신의 이동 속도를 나타내는 정보를 서버에 송신하고, 서버는 당해 정보에 따라 당해 클라이언트에 적합한 데이터(WLD 또는 SWLD)를 송신해도 된다. 또는, 서버는, 클라이언트의 이동 속도를 판별하여, 당해 클라이언트에 적합한 데이터(WLD 또는 SWLD)를 송신해도 된다.
또, 클라이언트는, 처음에 SWLD를 서버로부터 취득하고, 그 중에서 중요한 영역의 WLD를 취득해도 상관없다. 예를 들어, 클라이언트는, 지도 데이터를 취득할 때에, 처음에 대략의 지도 정보를 SWLD로 취득하고, 거기에서부터 건물, 표지, 또는 인물 등의 특징이 많이 출현하는 영역을 좁혀, 좁힌 영역의 WLD를 나중에 취득한다. 이에 의해, 클라이언트는, 서버로부터의 수신 데이터량을 억제하면서, 필요한 영역의 상세한 정보를 취득하는 것이 가능해진다.
또, 서버는, WLD로부터 물체마다 각기 다른 SWLD를 작성하고, 클라이언트는, 용도에 맞춰, 각각을 수신해도 된다. 이에 의해, 네트워크 대역을 억제할 수 있다. 예를 들어, 서버는, WLD로부터 미리 사람 또는 차를 인식하여, 사람의 SWLD와 차의 SWLD를 작성한다. 클라이언트는, 주위 사람의 정보를 취득하고 싶은 경우에는 사람의 SWLD를, 차의 정보를 취득하고 싶은 경우에는 차의 SWLD를 수신한다. 또, 이러한 SWLD의 종류는 헤더 등에 부가된 정보(플래그 또는 타입 등)에 따라 구별하도록 해도 상관없다.
다음으로, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(예를 들어 서버)의 구성 및 동작의 흐름을 설명한다. 도 16은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(400)의 블록도이다. 도 17은, 삼차원 데이터 부호화 장치(400)에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
도 16에 나타낸 삼차원 데이터 부호화 장치(400)는, 입력 삼차원 데이터(411)를 부호화함으로써 부호화 스트림인 부호화 삼차원 데이터(413 및 414)를 생성한다. 여기서, 부호화 삼차원 데이터(413)는 WLD에 대응하는 부호화 삼차원 데이터이며, 부호화 삼차원 데이터(414)는 SWLD에 대응하는 부호화 삼차원 데이터이다. 이 삼차원 데이터 부호화 장치(400)는, 취득부(401)와, 부호화 영역 결정부(402)와, SWLD 추출부(403)와, WLD 부호화부(404)와, SWLD 부호화부(405)를 구비한다.
도 17에 나타낸 바와 같이, 우선, 취득부(401)는, 삼차원 공간 내의 점군 데이터인 입력 삼차원 데이터(411)를 취득한다(S401).
다음으로, 부호화 영역 결정부(402)는, 점군 데이터가 존재하는 공간 영역에 의거하여, 부호화 대상의 공간 영역을 결정한다(S402).
다음으로, SWLD 추출부(403)는, 부호화 대상의 공간 영역을 WLD라고 정의하고, WLD에 포함되는 각 VXL로부터 특징량을 산출한다. 그리고, SWLD 추출부(403)는, 특징량이 미리 정해진 역치 이상인 VXL를 추출하여, 추출한 VXL을 FVXL이라고 정의하고, 당해 FVXL을 SWLD에 추가함으로써, 추출 삼차원 데이터(412)를 생성한다(S403). 즉, 입력 삼차원 데이터(411)로부터 특징량이 역치 이상인 추출 삼차원 데이터(412)가 추출된다.
다음으로, WLD 부호화부(404)는, WLD에 대응하는 입력 삼차원 데이터(411)를 부호화함으로써 WLD에 대응하는 부호화 삼차원 데이터(413)를 생성한다(S404). 이때, WLD 부호화부(404)는, 부호화 삼차원 데이터(413)의 헤더에, 당해 부호화 삼차원 데이터(413)가 WLD를 포함하는 스트림인 것을 구별하기 위한 정보를 부가한다.
또, SWLD 부호화부(405)는, SWLD에 대응하는 추출 삼차원 데이터(412)를 부호화함으로써 SWLD에 대응하는 부호화 삼차원 데이터(414)를 생성한다(S405). 이때, SWLD 부호화부(405)는, 부호화 삼차원 데이터(414)의 헤더에, 당해 부호화 삼차원 데이터(414)가 SWLD를 포함하는 스트림인 것을 구별하기 위한 정보를 부가한다.
또한, 부호화 삼차원 데이터(413)를 생성하는 처리와, 부호화 삼차원 데이터(414)를 생성하는 처리의 처리순은 상기와 반대여도 된다. 또, 이들 처리의 일부 또는 전부가 병렬로 행해져도 된다.
부호화 삼차원 데이터(413 및 414)의 헤더에 부여되는 정보로서, 예를 들어, 「world_type」라는 파라미터가 정의된다. world_type=0인 경우는 스트림이 WLD를 포함하는 것을 나타내고, world_type=1인 경우는 스트림이 SWLD를 포함하는 것을 나타낸다. 또한 그 외의 다수의 종별을 정의하는 경우에는, world_type=2와 같이 할당하는 수치를 늘리도록 해도 상관없다. 또, 부호화 삼차원 데이터(413 및 414) 중 한쪽에 특정의 플래그가 포함되어도 된다. 예를 들어, 부호화 삼차원 데이터(414)에, 당해 스트림이 SWLD를 포함하는 것을 포함하는 플래그가 부여되어도 된다. 이 경우, 복호 장치는, 플래그의 유무에 따라 WLD를 포함하는 스트림인지, SWLD를 포함하는 스트림인지를 판별할 수 있다.
또, WLD 부호화부(404)가 WLD를 부호화할 때에 사용하는 부호화 방법과, SWLD 부호화부(405)가 SWLD를 부호화할 때에 사용하는 부호화 방법은 달라도 된다.
예를 들어, SWLD에서는 데이터가 솎아내어져 있으므로, WLD에 비해, 주변 데이터와의 상관이 낮아질 가능성이 있다. 따라서, SWLD에 이용되는 부호화 방법에서는, WLD에 이용되는 부호화 방법보다 인트라 예측 및 인터 예측 중 인터 예측이 우선되어도 된다.
또, SWLD에 이용되는 부호화 방법과 WLD에 이용되는 부호화 방법에서는, 삼차원 위치의 표현 수법이 달라도 된다. 예를 들어, SWLD에서는, 삼차원 좌표에 의해 FVXL의 삼차원 위치를 표현하고, WLD에서는, 후술하는 8진 트리에 의해 삼차원 위치가 표현되어도 되고, 그 반대여도 된다.
또, SWLD 부호화부(405)는, SWLD의 부호화 삼차원 데이터(414)의 데이터 사이즈가 WLD의 부호화 삼차원 데이터(413)의 데이터 사이즈보다 작아지도록 부호화를 행한다. 예를 들어, 상술한 바와 같이 SWLD는, WLD에 비해, 데이터간의 상관이 낮아질 가능성이 있다. 이에 의해, 부호화 효율이 내려가, 부호화 삼차원 데이터(414)의 데이터 사이즈가 WLD의 부호화 삼차원 데이터(413)의 데이터 사이즈보다 커질 가능성이 있다. 따라서, SWLD 부호화부(405)는, 얻어진 부호화 삼차원 데이터(414)의 데이터 사이즈가, WLD의 부호화 삼차원 데이터(413)의 데이터 사이즈보다 큰 경우에는, 재부호화를 행함으로써, 데이터 사이즈를 저감한 부호화 삼차원 데이터(414)를 재생성한다.
예를 들어, SWLD 추출부(403)는, 추출하는 특징점의 수를 줄인 추출 삼차원 데이터(412)를 재생성하고, SWLD 부호화부(405)는, 당해 추출 삼차원 데이터(412)를 부호화한다. 또는, SWLD 부호화부(405)에 있어서의 양자화의 정도를 보다 러프하게 해도 된다. 예를 들어, 후술하는 8진 트리 구조에 있어서, 최하층의 데이터를 라운딩함으로써, 양자화의 정도를 러프하게 할 수 있다.
또, SWLD 부호화부(405)는, SWLD의 부호화 삼차원 데이터(414)의 데이터 사이즈를 WLD의 부호화 삼차원 데이터(413)의 데이터 사이즈보다 작게 할 수 없는 경우는, SWLD의 부호화 삼차원 데이터(414)를 생성하지 않아도 된다. 또는, WLD의 부호화 삼차원 데이터(413)가 SWLD의 부호화 삼차원 데이터(414)에 카피되어도 된다. 즉, SWLD의 부호화 삼차원 데이터(414)로서 WLD의 부호화 삼차원 데이터(413)가 그대로 이용되어도 된다.
다음으로, 본 실시 형태에 따른 삼차원 데이터 복호 장치(예를 들어 클라이언트)의 구성 및 동작의 흐름을 설명한다. 도 18은, 본 실시 형태에 따른 삼차원 데이터 복호 장치(500)의 블록도이다. 도 19는, 삼차원 데이터 복호 장치(500)에 의한 삼차원 데이터 복호 처리의 플로차트이다.
도 18에 나타낸 삼차원 데이터 복호 장치(500)는, 부호화 삼차원 데이터(511)를 복호함으로써 복호 삼차원 데이터(512 또는 513)를 생성한다. 여기서, 부호화 삼차원 데이터(511)는, 예를 들어, 삼차원 데이터 부호화 장치(400)에서 생성된 부호화 삼차원 데이터(413 또는 414)이다.
이 삼차원 데이터 복호 장치(500)는, 취득부(501)와, 헤더 해석부(502)와, WLD 복호부(503)와, SWLD 복호부(504)를 구비한다.
도 19에 나타낸 바와 같이, 우선, 취득부(501)는, 부호화 삼차원 데이터(511)를 취득한다(S501). 다음으로, 헤더 해석부(502)는, 부호화 삼차원 데이터(511)의 헤더를 해석하여, 부호화 삼차원 데이터(511)가 WLD를 포함하는 스트림인지, SWLD를 포함하는 스트림인지를 판별한다(S502). 예를 들어, 상술한 world_type의 파라미터가 참조되어, 판별이 행해진다.
부호화 삼차원 데이터(511)가 WLD를 포함하는 스트림인 경우(S503에서 Yes), WLD 복호부(503)는, 부호화 삼차원 데이터(511)를 복호함으로써 WLD의 복호 삼차원 데이터(512)를 생성한다(S504). 한편, 부호화 삼차원 데이터(511)가 SWLD를 포함하는 스트림인 경우(S503에서 No), SWLD 복호부(504)는, 부호화 삼차원 데이터(511)를 복호함으로써 SWLD의 복호 삼차원 데이터(513)를 생성한다(S505).
또, 부호화 장치와 마찬가지로, WLD 복호부(503)가 WLD를 복호할 때에 사용하는 복호 방법과, SWLD 복호부(504)가 SWLD를 복호할 때에 사용하는 복호 방법은 달라도 된다. 예를 들어, SWLD에 이용되는 복호 방법에서는, WLD에 이용되는 복호 방법보다 인트라 예측 및 인터 예측 중 인터 예측이 우선되어도 된다.
또, SWLD에 이용되는 복호 방법과 WLD에 이용되는 복호 방법에서는, 삼차원 위치의 표현 수법이 달라도 된다. 예를 들어, SWLD에서는, 삼차원 좌표에 의해 FVXL의 삼차원 위치를 표현하고, WLD에서는, 후술하는 8진 트리에 의해 삼차원 위치가 표현되어도 되고, 그 반대여도 된다.
다음으로, 삼차원 위치의 표현 수법인 8진 트리 표현에 대해 설명한다. 삼차원 데이터에 포함되는 VXL 데이터는 8진 트리 구조로 변환된 후, 부호화된다. 도 20은, WLD의 VXL의 일례를 나타낸 도면이다. 도 21은, 도 20에 나타낸 WLD의 8진 트리 구조를 나타낸 도면이다. 도 20에 나타낸 예에서는, 점군을 포함하는 VXL(이하, 유효 VXL)인 3개 VXL1~3이 존재한다. 도 21에 나타낸 바와 같이, 8진 트리 구조는 노드와 리프로 구성된다. 각 노드는 최대로 8개의 노드 또는 리프를 갖는다. 각 리프는 VXL 정보를 갖는다. 여기서, 도 21에 나타낸 리프 중, 리프 1, 2, 3은 각각 도 20에 나타낸 VXL1, VXL2, VXL3을 나타낸다.
구체적으로는, 각 노드 및 리프는 삼차원 위치에 대응한다. 노드(1)는, 도 20에 나타낸 전체의 블록에 대응한다. 노드(1)에 대응하는 블록은 8개의 블록으로 분할되고, 8개의 블록 중, 유효 VXL을 포함하는 블록이 노드로 설정되고, 그 이외의 블록은 리프로 설정된다. 노드에 대응하는 블록은, 또한 8개의 노드 또는 리프로 분할되고, 이 처리가 트리 구조의 계층만큼 반복된다. 또, 최하층의 블록은, 모두 리프로 설정된다.
또, 도 22는, 도 20에 나타낸 WLD로부터 생성한 SWLD의 예를 나타낸 도면이다. 도 20에 나타낸 VXL1 및 VXL2는 특징량 추출의 결과, FVXL1 및 FVXL2로 판정되어, SWLD에 추가되어 있다. 한편, VXL3은 FVXL로 판정되지 않고, SWLD에 포함되어 있지 않다. 도 23은, 도 22에 나타낸 SWLD의 8진 트리 구조를 나타낸 도면이다. 도 23에 나타낸 8진 트리 구조에서는, 도 21에 나타낸, VXL3에 상당하는 리프(3)가 삭제되어 있다. 이에 의해, 도 21에 나타낸 노드(3)가 유효 VXL을 갖지 않게 되어, 리프로 변경되어 있다. 이와 같이 일반적으로 SWLD의 리프수는 WLD의 리프수보다 적어지고, SWLD의 부호화 삼차원 데이터도 WLD의 부호화 삼차원 데이터보다 작아진다.
이하, 본 실시 형태의 변형예에 대해 설명한다.
예를 들어, 차재 장치 등의 클라이언트는, 자기 위치 추정을 행하는 경우에, SWLD를 서버로부터 수신하고, SWLD를 이용해 자기 위치 추정을 행하여, 장애물 검지를 행하는 경우는, 레인지 파인더 등의 거리 센서, 스테레오 카메라, 또는 복수의 단안 카메라의 조합 등의 여러 가지 방법을 이용하여 스스로 취득한 주변의 삼차원 정보에 의거하여 장애물 검지를 실시해도 된다.
또, 일반적으로 SWLD에는 평탄 영역의 VXL 데이터가 포함되기 어렵다. 그 때문에, 서버는, 정적인 장애물의 검지용으로, WLD를 서브 샘플한 서브 샘플 월드(subWLD)를 유지하고, SWLD와 subWLD를 클라이언트에 송신해도 된다. 이에 의해, 네트워크 대역을 억제하면서, 클라이언트측에서 자기 위치 추정 및 장애물 검지를 행할 수 있다.
또, 클라이언트가 삼차원 지도 데이터를 고속으로 묘화할 때에는, 지도 정보가 메시 구조인 쪽이 편리한 경우가 있다. 그래서, 서버는, WLD로부터 메시를 생성하여, 메시 월드(MWLD)로서 미리 유지해도 된다. 예를 들어 클라이언트는, 러프한 삼차원 묘화를 필요로 하고 있는 경우에는 MWLD를 수신하고, 상세한 삼차원 묘화를 필요로 하고 있는 경우에는 WLD를 수신한다. 이에 의해, 네트워크 대역을 억제할 수 있다.
또, 서버는, 각 VXL 중, 특징량이 역치 이상인 VXL을 FVXL로 설정하였지만, 다른 방법으로 FVXL을 산출해도 상관없다. 예를 들어, 서버는, 신호 또는 교차점 등을 구성하는 VXL, VLM, SPC, 또는 GOS를, 자기 위치 추정, 운전 어시스트, 또는 자동 운전 등에 필요한 것으로 판단하여, FVXL, FVLM, FSPC, FGOS로서 SWLD에 포함해도 상관없다. 또, 상기 판단은 수동으로 행해져도 된다. 또한, 특징량에 의거하여 설정된 FVXL 등에, 상기 방법으로 얻어진 FVXL 등을 추가해도 된다. 즉, SWLD 추출부(403)는, 또한, 입력 삼차원 데이터(411)로부터 미리 정해진 속성을 갖는 물체에 대응하는 데이터를 추출 삼차원 데이터(412)로서 추출해도 된다.
또, 그들 용도에 필요한 취지를 특징량과는 별도로 라벨링하도록 해도 상관없다. 또, 서버는, SWLD의 상위 레이어(예를 들어 레인 월드)로서, 신호 또는 교차점 등의 자기 위치 추정, 운전 어시스트, 또는 자동 운전 등에 필요한 FVXL을 별도로 유지해도 된다.
또, 서버는, WLD 내의 VXL에도 랜덤 액세스 단위 또는 소정의 단위마다 속성을 부가해도 된다. 속성은, 예를 들어, 자기 위치 추정에 필요 혹은 불필요한지를 나타내는 정보, 또는, 신호 혹은 교차점 등의 교통 정보로서 중요한지의 여부 등을 나타내는 정보를 포함한다. 또, 속성은, 레인 정보(GDF : Geographic Data Files 등)에 있어서의 Feature(교차점 또는 도로 등)와의 대응 관계를 포함해도 된다.
또, WLD 또는 SWLD의 갱신 방법으로서 하기와 같은 방법을 이용해도 상관없다.
사람, 공사, 또는 가로수(트랙용)의 변화 등을 나타내는 갱신 정보가 점군 또는 메타데이터로서 서버에 업로드된다. 서버는, 당해 업로드에 의거하여, WLD를 갱신하고, 그 후, 갱신한 WLD를 이용하여 SWLD를 갱신한다.
또, 클라이언트는, 자기 위치 추정 시에 자신이 생성한 삼차원 정보와 서버로부터 수신한 삼차원 정보의 부정합을 검지한 경우, 자신이 생성한 삼차원 정보를 갱신 통지와 함께 서버에 송신해도 된다. 이 경우, 서버는, WLD를 이용하여 SWLD를 갱신한다. SWLD가 갱신되지 않는 경우, 서버는, WLD 자체가 오래되었다고 판단한다.
또, 부호화 스트림의 헤더 정보로서, WLD인지 SWLD인지를 구별하는 정보가 부가되는 것으로 하였지만, 예를 들어, 메시 월드 또는 레인 월드 등, 다종류의 월드가 존재하는 경우에는, 그들을 구별하는 정보가 헤더 정보로 부가되어도 상관없다. 또, 특징량이 상이한 SWLD가 다수 존재하는 경우에는, 각각을 구별하는 정보가 헤더 정보로 부가되어도 상관없다.
또, SWLD는, FVXL로 구성되는 것으로 하였지만, FVXL로 판정되지 않은 VXL을 포함해도 된다. 예를 들어, SWLD는, FVXL의 특징량을 산출할 때에 사용하는 인접 VXL을 포함해도 된다. 이에 의해, SWLD의 각 FVXL에 특징량 정보가 부가되지 않은 경우여도, 클라이언트는, SWLD를 수신했을 때에 FVXL의 특징량을 산출할 수 있다. 또한, 그때에는, SWLD는 각 VXL이 FVXL인지 VXL인지를 구별하기 위한 정보를 포함해도 된다.
이상과 같이, 삼차원 데이터 부호화 장치(400)는, 입력 삼차원 데이터(411)( 제1 삼차원 데이터)로부터 특징량이 역치 이상인 추출 삼차원 데이터(412)(제2 삼차원 데이터)를 추출하고, 추출 삼차원 데이터(412)를 부호화함으로써 부호화 삼차원 데이터(414)(제1 부호화 삼차원 데이터)를 생성한다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 특징량이 역치 이상인 데이터를 부호화한 부호화 삼차원 데이터(414)를 생성한다. 이에 의해, 입력 삼차원 데이터(411)를 그대로 부호화하는 경우에 비해 데이터량을 삭감할 수 있다. 따라서, 삼차원 데이터 부호화 장치(400)는, 전송하는 데이터량을 삭감할 수 있다.
또, 삼차원 데이터 부호화 장치(400)는, 또한, 입력 삼차원 데이터(411)를 부호화함으로써 부호화 삼차원 데이터(413)(제2 부호화 삼차원 데이터)를 생성한다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 예를 들어, 사용 용도 등에 따라, 부호화 삼차원 데이터(413)와 부호화 삼차원 데이터(414)를 선택적으로 전송할 수 있다.
또, 추출 삼차원 데이터(412)는, 제1 부호화 방법에 의해 부호화되고, 입력 삼차원 데이터(411)는, 제1 부호화 방법과는 다른 제2 부호화 방법에 의해 부호화된다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 입력 삼차원 데이터(411)와 추출 삼차원 데이터(412)에 각각 적합한 부호화 방법을 이용할 수 있다.
또, 제1 부호화 방법에서는, 제2 부호화 방법보다 인트라 예측 및 인터 예측 중 인터 예측이 우선된다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 인접하는 데이터간의 상관이 낮아지기 쉬운 추출 삼차원 데이터(412)에 대해, 인터 예측의 우선도를 올릴 수 있다.
또, 제1 부호화 방법과 제2 부호화 방법에서는, 삼차원 위치의 표현 수법이 상이하다. 예를 들어, 제2 부호화 방법에서는, 8진 트리에 의해 삼차원 위치가 표현되고, 제1 부호화 방법에서는, 삼차원 좌표에 의해 삼차원 위치가 표현된다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 데이터수(VXL 또는 FVXL의 수)가 상이한 삼차원 데이터에 대해, 보다 적합한 삼차원 위치의 표현 수법을 이용할 수 있다.
또, 부호화 삼차원 데이터(413 및 414) 중 적어도 한쪽은, 당해 부호화 삼차원 데이터가 입력 삼차원 데이터(411)를 부호화함으로써 얻어진 부호화 삼차원 데이터인지, 입력 삼차원 데이터(411) 중 일부를 부호화함으로써 얻어진 부호화 삼차원 데이터인지를 나타내는 식별자를 포함한다. 즉, 당해 식별자는, 부호화 삼차원 데이터가 WLD의 부호화 삼차원 데이터(413)인지 SWLD의 부호화 삼차원 데이터(414)인지를 나타낸다.
이에 의하면, 복호 장치는, 취득한 부호화 삼차원 데이터가 부호화 삼차원 데이터(413)인지 부호화 삼차원 데이터(414)인지를 용이하게 판정할 수 있다.
또, 삼차원 데이터 부호화 장치(400)는, 부호화 삼차원 데이터(414)의 데이터량이 부호화 삼차원 데이터(413)의 데이터량보다 작아지도록 추출 삼차원 데이터(412)를 부호화한다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 부호화 삼차원 데이터(414)의 데이터량을 부호화 삼차원 데이터(413)의 데이터량보다 작게 할 수 있다.
또, 삼차원 데이터 부호화 장치(400)는, 또한, 입력 삼차원 데이터(411)로부터 미리 정해진 속성을 갖는 물체에 대응하는 데이터를 추출 삼차원 데이터(412)로서 추출한다. 예를 들어, 미리 정해진 속성을 갖는 물체란, 자기 위치 추정, 운전 어시스트, 또는 자동 운전 등에 필요한 물체이며, 신호 또는 교차점 등이다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 복호 장치에서 필요한 데이터를 포함하는 부호화 삼차원 데이터(414)를 생성할 수 있다.
또, 삼차원 데이터 부호화 장치(400)(서버)는, 또한, 클라이언트의 상태에 따라, 부호화 삼차원 데이터(413 및 414) 중 한쪽을 클라이언트에 송신한다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 클라이언트의 상태에 따라 적절한 데이터를 송신할 수 있다.
또, 클라이언트의 상태는, 클라이언트의 통신 상황(예를 들어 네트워크 대역), 또는 클라이언트의 이동 속도를 포함한다.
또, 삼차원 데이터 부호화 장치(400)는, 또한, 클라이언트의 요구에 따라, 부호화 삼차원 데이터(413 및 414) 중 한쪽을 클라이언트에 송신한다.
이에 의하면, 삼차원 데이터 부호화 장치(400)는, 클라이언트의 요구에 따라 적절한 데이터를 송신할 수 있다.
또, 본 실시 형태에 따른 삼차원 데이터 복호 장치(500)는, 상기 삼차원 데이터 부호화 장치(400)에 의해 생성된 부호화 삼차원 데이터(413 또는 414)를 복호한다.
즉, 삼차원 데이터 복호 장치(500)는, 입력 삼차원 데이터(411)로부터 추출된 특징량이 역치 이상인 추출 삼차원 데이터(412)가 부호화됨으로써 얻어진 부호화 삼차원 데이터(414)를 제1 복호 방법에 의해 복호한다. 또, 삼차원 데이터 복호 장치(500)는, 입력 삼차원 데이터(411)가 부호화됨으로써 얻어진 부호화 삼차원 데이터(413)를, 제1 복호 방법과는 상이한 제2 복호 방법에 의해 복호한다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 특징량이 역치 이상인 데이터를 부호화한 부호화 삼차원 데이터(414)와, 부호화 삼차원 데이터(413)를, 예를 들어, 사용 용도 등에 따라 선택적으로 수신할 수 있다. 이에 의해, 삼차원 데이터 복호 장치(500)는, 전송하는 데이터량을 삭감할 수 있다. 또한, 삼차원 데이터 복호 장치(500)는, 입력 삼차원 데이터(411)와 추출 삼차원 데이터(412)에 각각 적합한 복호 방법을 이용할 수 있다.
또, 제1 복호 방법에서는, 제2 복호 방법보다 인트라 예측 및 인터 예측 중 인터 예측이 우선된다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 인접하는 데이터간의 상관이 낮아지기 쉬운 추출 삼차원 데이터에 대해, 인터 예측의 우선도를 올릴 수 있다.
또, 제1 복호 방법과 제2 복호 방법에서는, 삼차원 위치의 표현 수법이 상이하다. 예를 들어, 제2 복호 방법에서는, 8진 트리에 의해 삼차원 위치가 표현되고, 제1 복호 방법에서는, 삼차원 좌표에 의해 삼차원 위치가 표현된다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 데이터수(VXL 또는 FVXL의 수)가 상이한 삼차원 데이터에 대해, 보다 적합한 삼차원 위치의 표현 수법을 이용할 수 있다.
또, 부호화 삼차원 데이터(413 및 414) 중 적어도 한쪽은, 당해 부호화 삼차원 데이터가 입력 삼차원 데이터(411)를 부호화함으로써 얻어진 부호화 삼차원 데이터인지, 입력 삼차원 데이터(411) 중 일부를 부호화함으로써 얻어진 부호화 삼차원 데이터인지를 나타내는 식별자를 포함한다. 삼차원 데이터 복호 장치(500)는, 당해 식별자를 참조하여, 부호화 삼차원 데이터(413 및 414)를 식별한다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 취득한 부호화 삼차원 데이터가 부호화 삼차원 데이터(413)인지 부호화 삼차원 데이터(414)인지를 용이하게 판정할 수 있다.
또, 삼차원 데이터 복호 장치(500)는, 또한, 클라이언트(삼차원 데이터 복호 장치(500))의 상태를 서버에 통지한다. 삼차원 데이터 복호 장치(500)는, 클라이언트의 상태에 따라, 서버로부터 송신된 부호화 삼차원 데이터(413 및 414) 중 한쪽을 수신한다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 클라이언트의 상태에 따라 적절한 데이터를 수신할 수 있다.
또, 클라이언트의 상태는, 클라이언트의 통신 상황(예를 들어 네트워크 대역), 또는 클라이언트의 이동 속도를 포함한다.
또, 삼차원 데이터 복호 장치(500)는, 또한, 부호화 삼차원 데이터(413 및 414) 중 한쪽을 서버에 요구하고, 당해 요구에 따라, 서버로부터 송신된 부호화 삼차원 데이터(413 및 414) 중 한쪽을 수신한다.
이에 의하면, 삼차원 데이터 복호 장치(500)는, 용도에 따른 적절한 데이터를 수신할 수 있다.
(실시 형태 3)
본 실시 형태에서는, 차량 사이에서의 삼차원 데이터를 송수신하는 방법에 대해 설명한다. 예를 들어, 자차량과 주변 차량의 사이에서의 삼차원 데이터의 송수신이 행해진다.
도 24는, 본 실시 형태에 따른 삼차원 데이터 작성 장치(620)의 블록도이다. 이 삼차원 데이터 작성 장치(620)는, 예를 들어, 자차량에 포함되고, 삼차원 데이터 작성 장치(620)가 작성한 제1 삼차원 데이터(632)에, 수신한 제2 삼차원 데이터(635)를 합성함으로써, 보다 조밀한 제3 삼차원 데이터(636)를 작성한다.
이 삼차원 데이터 작성 장치(620)는, 삼차원 데이터 작성부(621)와, 요구 범위 결정부(622)와, 탐색부(623)와, 수신부(624)와, 복호부(625)와, 합성부(626)를 구비한다.
우선, 삼차원 데이터 작성부(621)는, 자차량이 구비하는 센서로 검지한 센서 정보(631)를 이용하여 제1 삼차원 데이터(632)를 작성한다. 다음으로, 요구 범위 결정부(622)는, 작성한 제1 삼차원 데이터(632) 중에서 데이터가 부족한 삼차원 공간 범위인 요구 범위를 결정한다.
다음으로, 탐색부(623)는, 요구 범위의 삼차원 데이터를 소유하는 주변 차량을 탐색하고, 탐색에 의해 특정한 주변 차량에 요구 범위를 나타내는 요구 범위 정보(633)를 송신한다. 다음으로, 수신부(624)는, 주변 차량으로부터, 요구 범위의 부호화 스트림인 부호화 삼차원 데이터(634)를 수신한다(S624). 또한, 탐색부(623)는, 특정 범위에 존재하는 모든 차량에 대해, 무차별하게 리퀘스트를 보내고, 응답이 있었던 상대로부터 부호화 삼차원 데이터(634)를 수신해도 된다. 또, 탐색부(623)는, 차량에 한정되지 않으며, 신호기 또는 표지 등의 물체에 리퀘스트를 보내어, 당해 물체로부터 부호화 삼차원 데이터(634)를 수신해도 된다.
다음으로, 복호부(625)는, 수신한 부호화 삼차원 데이터(634)를 복호함으로써 제2 삼차원 데이터(635)를 취득한다. 다음으로, 합성부(626)는, 제1 삼차원 데이터(632)와 제2 삼차원 데이터(635)를 합성함으로써, 보다 조밀한 제3 삼차원 데이터(636)를 작성한다.
다음으로, 본 실시 형태에 따른 삼차원 데이터 송신 장치(640)의 구성 및 동작을 설명한다. 도 25는, 삼차원 데이터 송신 장치(640)의 블록도이다.
삼차원 데이터 송신 장치(640)는, 예를 들어, 상술한 주변 차량에 포함되고, 주변 차량이 작성한 제5 삼차원 데이터(652)를 자차량이 요구하는 제6 삼차원 데이터(654)에 가공하여, 제6 삼차원 데이터(654)를 부호화함으로써 부호화 삼차원 데이터(634)를 생성하고, 부호화 삼차원 데이터(634)를 자차량에 송신한다.
삼차원 데이터 송신 장치(640)는, 삼차원 데이터 작성부(641)와, 수신부(642)와, 추출부(643)와, 부호화부(644)와, 송신부(645)를 구비한다.
우선, 삼차원 데이터 작성부(641)는, 주변 차량이 구비하는 센서로 검지한 센서 정보(651)를 이용하여 제5 삼차원 데이터(652)를 작성한다. 다음으로, 수신부(642)는, 자차량에서 송신된 요구 범위 정보(633)를 수신한다.
다음으로, 추출부(643)는, 제5 삼차원 데이터(652)로부터, 요구 범위 정보(633)로 나타내어지는 요구 범위의 삼차원 데이터를 추출함으로써, 제5 삼차원 데이터(652)를 제6 삼차원 데이터(654)로 가공한다. 다음으로, 부호화부(644)는, 제6 삼차원 데이터(654)를 부호화함으로써, 부호화 스트림인 부호화 삼차원 데이터(634)를 생성한다. 그리고, 송신부(645)는, 자차량에 부호화 삼차원 데이터(634)를 송신한다.
또한, 여기서는, 자차량이 삼차원 데이터 작성 장치(620)를 구비하고, 주변 차량이 삼차원 데이터 송신 장치(640)를 구비하는 예를 설명하지만, 각 차량이, 삼차원 데이터 작성 장치(620)와 삼차원 데이터 송신 장치(640)의 기능을 가져도 된다.
(실시 형태 4)
본 실시 형태에서는, 삼차원 맵에 의거한 자기 위치 추정에 있어서의 이상계의 동작에 대해 설명한다.
차의 자동 운전, 또는, 로봇, 혹은 드론 등의 비행체 등의 이동체를 자율적으로 이동시키는 등의 용도가 향후 확대할 것으로 예상된다. 이러한 자율적인 이동을 실현하는 수단의 일례로서, 이동체가 삼차원 맵 내에 있어서의 스스로의 위치를 추정(자기 위치 추정)하면서, 맵에 따라 주행하는 방법이 있다.
자기 위치 추정은, 삼차원 맵과, 자차에 탑재된 레인지 파인더(LiDAR 등) 또는 스테레오 카메라 등의 센서에 의해 취득한 자차 주변의 삼차원 정보(이후, 자차 검지 삼차원 데이터)를 매칭하여, 삼차원 맵 내의 자차 위치를 추정함으로써 실현할 수 있다.
삼차원 맵은, HERE사가 제창하는 HD 맵 등과 같이, 삼차원의 포인트 클라우드뿐만 아니라, 도로 및 교차점의 형상 정보 등 이차원의 지도 데이터, 또는, 정체 및 사고 등의 실시간으로 변화하는 정보를 포함해도 된다. 삼차원 데이터, 이차원 데이터, 실시간으로 변화하는 메타데이터 등 복수의 레이어로 삼차원 맵이 구성되고, 장치는, 필요한 데이터만을 취득, 또는, 참조하는 것도 가능하다.
포인트 클라우드의 데이터는, 상술한 SWLD여도 되고, 특징점이 아닌 점군 데이터를 포함해도 된다. 또, 포인트 클라우드의 데이터의 송수신은, 1개, 또는, 복수의 랜덤 액세스 단위를 기본으로서 행해진다.
삼차원 맵과 자차 검지 삼차원 데이터의 매칭 방법으로서 이하의 방법을 이용할 수 있다. 예를 들어, 장치는, 서로의 포인트 클라우드에 있어서의 점군의 형상을 비교하여, 특징점간의 유사도가 높은 부위가 동일 위치라고 결정한다. 또, 장치는, 삼차원 맵이 SWLD로 구성되는 경우, SWLD를 구성하는 특징점과, 자차 검지 삼차원 데이터로부터 추출한 삼차원 특징점을 비교하여 매칭을 행한다.
여기서, 고정밀도로 자기 위치 추정을 행하기 위해서는, (A) 삼차원 맵과 자차 검지 삼차원 데이터를 취득할 수 있으며, 또한, (B) 그들 정밀도가 미리 정해진 기준을 만족시키는 것이 필요해진다. 그러나, 이하와 같은 이상 케이스에서는, (A) 또는 (B)를 만족시킬 수 없다.
(1) 삼차원 맵을 통신 경유로 취득할 수 없다.
(2) 삼차원 맵이 존재하지 않거나, 또는, 삼차원 맵을 취득하였지만 파손되어 있다.
(3) 자차의 센서가 고장나 있거나, 또는, 악천후 때문에, 자차 검지 삼차원 데이터의 생성 정밀도가 충분하지 않다.
이들 이상 케이스에 대처하기 위한 동작을, 이하에서 설명한다. 이하에서는, 차를 예로 동작을 설명하지만, 이하의 수법은, 로봇 또는 드론 등, 자율적으로 이동하는 동물체 전반에 대해 적용할 수 있다.
이하, 삼차원 맵 또는 자차 검지 삼차원 데이터에 있어서의 이상 케이스에 대응하기 위한, 본 실시 형태에 따른 삼차원 정보 처리 장치의 구성 및 동작을 설명한다. 도 26은, 본 실시 형태에 따른 삼차원 정보 처리 장치(700)의 구성예를 나타낸 블록도이다.
삼차원 정보 처리 장치(700)는, 예를 들어, 자동차 등의 동물체에 탑재된다. 도 26에 나타낸 바와 같이, 삼차원 정보 처리 장치(700)는, 삼차원 맵 취득부(701)와, 자차 검지 데이터 취득부(702)와, 이상 케이스 판정부(703)와, 대처 동작 결정부(704)와, 동작 제어부(705)를 구비한다.
또한, 삼차원 정보 처리 장치(700)는, 이차원 화상을 취득하는 카메라, 또는, 초음파 혹은 레이저를 이용한 일차원 데이터의 센서 등, 자차 주변의 구조물 또는 동물체를 검지하기 위한 도시 생략의 이차원 또는 일차원의 센서를 구비해도 된다. 또, 삼차원 정보 처리 장치(700)는, 삼차원 맵을 4G 혹은 5G 등의 이동체 통신망, 또는, 차와 차간 통신 혹은 도로와 차간 통신에 의해 취득하기 위한 통신부(도시 생략)를 구비해도 된다.
삼차원 맵 취득부(701)는, 주행 경로 근방의 삼차원 맵(711)을 취득한다. 예를 들어, 삼차원 맵 취득부(701)는, 이동체 통신망, 또는, 차와 차간 통신 혹은 도로와 차간 통신에 의해 삼차원 맵(711)을 취득한다.
다음으로, 자차 검지 데이터 취득부(702)는, 센서 정보에 의거하여 자차 검지 삼차원 데이터(712)를 취득한다. 예를 들어, 자차 검지 데이터 취득부(702)는, 자차가 구비하는 센서에 의해 취득된 센서 정보에 의거하여, 자차 검지 삼차원 데이터(712)를 생성한다.
다음으로, 이상 케이스 판정부(703)는, 취득한 삼차원 맵(711) 및 자차 검지 삼차원 데이터(712) 중 적어도 한쪽에 대해 미리 정해진 체크를 실시함으로써 이상 케이스를 검출한다. 즉, 이상 케이스 판정부(703)는, 취득한 삼차원 맵(711) 및 자차 검지 삼차원 데이터(712) 중 적어도 한쪽이 비정상인지를 판정한다.
이상 케이스가 검출된 경우, 대처 동작 결정부(704)는, 이상 케이스에 대한 대처 동작을 결정한다. 다음으로, 동작 제어부(705)는, 삼차원 맵 취득부(701) 등, 대처 동작의 실시에 필요한 각 처리부의 동작을 제어한다.
한편, 이상 케이스가 검출되지 않은 경우, 삼차원 정보 처리 장치(700)는, 처리를 종료한다.
또, 삼차원 정보 처리 장치(700)는, 삼차원 맵(711)과 자차 검지 삼차원 데이터(712)를 이용하여, 삼차원 정보 처리 장치(700)를 갖는 차량의 자기 위치 추정을 행한다. 다음으로, 삼차원 정보 처리 장치(700)는, 자기 위치 추정의 결과를 이용하여, 당해 차량을 자동 운전한다.
이와 같이, 삼차원 정보 처리 장치(700)는, 제1 삼차원 위치 정보를 포함하는 맵 데이터(삼차원 맵(711))를 통신로를 통해 취득한다. 예를 들어, 제1 삼차원 위치 정보는, 삼차원의 좌표 정보를 갖는 부분 공간을 단위로서 부호화되고, 각각이 1 이상의 부분 공간의 집합체이며, 각각을 독립적으로 복호 가능한 복수의 랜덤 액세스 단위를 포함한다. 예를 들어, 제1 삼차원 위치 정보는, 삼차원의 특징량이 소정의 역치 이상이 되는 특징점이 부호화된 데이터(SWLD)이다.
또, 삼차원 정보 처리 장치(700)는, 센서로 검지한 정보로부터 제2 삼차원 위치 정보(자차 검지 삼차원 데이터(712))를 생성한다. 다음으로, 삼차원 정보 처리 장치(700)는, 제1 삼차원 위치 정보 또는 제2 삼차원 위치 정보에 대해 이상 판정 처리를 실시함으로써, 제1 삼차원 위치 정보 또는 상기 제2 삼차원 위치 정보가 비정상인지의 여부를 판정한다.
삼차원 정보 처리 장치(700)는, 제1 삼차원 위치 정보 또는 제2 삼차원 위치 정보가 비정상이라고 판정된 경우, 당해 이상에 대한 대처 동작을 결정한다. 다음으로, 삼차원 정보 처리 장치(700)는, 대처 동작의 실시에 필요한 제어를 실시한다.
이에 의해, 삼차원 정보 처리 장치(700)는, 제1 삼차원 위치 정보 또는 제2 삼차원 위치 정보의 이상을 검지하여, 대처 동작을 행할 수 있다.
(실시 형태 5)
본 실시 형태에서는, 후속 차량으로의 삼차원 데이터 송신 방법 등에 대해 설명한다.
도 27은, 본 실시 형태에 따른 삼차원 데이터 작성 장치(810)의 구성예를 나타낸 블록도이다. 이 삼차원 데이터 작성 장치(810)는, 예를 들어, 차량에 탑재된다. 삼차원 데이터 작성 장치(810)는, 외부의 교통 감시 클라우드, 전주(前走) 차량 또는 후속 차량과 삼차원 데이터의 송수신을 행함과 더불어, 삼차원 데이터를 작성 및 축적한다.
삼차원 데이터 작성 장치(810)는, 데이터 수신부(811)와, 통신부(812)와, 수신 제어부(813)와, 포맷 변환부(814)와, 복수의 센서(815)와, 삼차원 데이터 작성부(816)와, 삼차원 데이터 합성부(817)와, 삼차원 데이터 축적부(818)와, 통신부(819)와, 송신 제어부(820)와, 포맷 변환부(821)와, 데이터 송신부(822)를 구비한다.
데이터 수신부(811)는, 교통 감시 클라우드 또는 전주 차량으로부터 삼차원 데이터(831)를 수신한다. 삼차원 데이터(831)는, 예를 들어, 자차량의 센서(815)로 검지 불가능한 영역을 포함하는, 포인트 클라우드, 가시광 영상, 깊이 정보, 센서 위치 정보, 또는 속도 정보 등의 정보를 포함한다.
통신부(812)는, 교통 감시 클라우드 또는 전주 차량과 통신하여, 데이터 송신 요구 등을 교통 감시 클라우드 또는 전주 차량에 송신한다.
수신 제어부(813)는, 통신부(812)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신처와의 통신을 확립한다.
포맷 변환부(814)는, 데이터 수신부(811)가 수신한 삼차원 데이터(831)에 포맷 변환 등을 행함으로써 삼차원 데이터(832)를 생성한다. 또, 포맷 변환부(814)는, 삼차원 데이터(831)가 압축 또는 부호화되어 있는 경우에는, 신장 또는 복호 처리를 행한다.
복수의 센서(815)는, LiDAR, 가시광 카메라 또는 적외선 카메라 등의, 차량의 외부의 정보를 취득하는 센서군이며, 센서 정보(833)를 생성한다. 예를 들어, 센서 정보(833)는, 센서(815)가 LiDAR 등의 레이저 센서인 경우, 포인트 클라우드(점군 데이터) 등의 삼차원 데이터이다. 또한, 센서(815)는 복수가 아니어도 된다.
삼차원 데이터 작성부(816)는, 센서 정보(833)로부터 삼차원 데이터(834)를 생성한다. 삼차원 데이터(834)는, 예를 들어, 포인트 클라우드, 가시광 영상, 깊이 정보, 센서 위치 정보, 또는 속도 정보 등의 정보를 포함한다.
삼차원 데이터 합성부(817)는, 자차량의 센서 정보(833)에 의거하여 작성된 삼차원 데이터(834)에, 교통 감시 클라우드 또는 전주 차량 등이 작성한 삼차원 데이터(832)를 합성함으로써, 자차량의 센서(815)에서는 검지할 수 없는 전주 차량의 전방의 공간도 포함하는 삼차원 데이터(835)를 구축한다.
삼차원 데이터 축적부(818)는, 생성된 삼차원 데이터(835) 등을 축적한다.
통신부(819)는, 교통 감시 클라우드 또는 후속 차량과 통신하여, 데이터 송신 요구 등을 교통 감시 클라우드 또는 후속 차량에 송신한다.
송신 제어부(820)는, 통신부(819)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신처와 통신을 확립한다. 또, 송신 제어부(820)는, 삼차원 데이터 합성부(817)에서 생성된 삼차원 데이터(832)의 삼차원 데이터 구축 정보와, 통신처로부터의 데이터 송신 요구에 의거하여, 송신 대상의 삼차원 데이터의 공간인 송신 영역을 결정한다.
구체적으로는, 송신 제어부(820)는, 교통 감시 클라우드 또는 후속 차량으로부터의 데이터 송신 요구에 따라, 후속 차량의 센서에서는 검지할 수 없는 자차량의 전방의 공간을 포함하는 송신 영역을 결정한다. 또, 송신 제어부(820)는, 삼차원 데이터 구축 정보에 의거하여 송신 가능한 공간 또는 송신이 완료된 공간의 갱신 유무 등을 판단함으로써 송신 영역을 결정한다. 예를 들어, 송신 제어부(820)는, 데이터 송신 요구로 지정된 영역이며, 또한, 대응하는 삼차원 데이터(835)가 존재하는 영역을 송신 영역으로 결정한다. 그리고, 송신 제어부(820)는, 통신처가 대응하는 포맷, 및 송신 영역을 포맷 변환부(821)에 통지한다.
포맷 변환부(821)는, 삼차원 데이터 축적부(818)에 축적되어 있는 삼차원 데이터(835) 중, 송신 영역의 삼차원 데이터(836)를, 수신측이 대응하고 있는 포맷으로 변환함으로써 삼차원 데이터(837)를 생성한다. 또한, 포맷 변환부(821)는, 삼차원 데이터(837)를 압축 또는 부호화함으로써 데이터량을 삭감해도 된다.
데이터 송신부(822)는, 삼차원 데이터(837)를 교통 감시 클라우드 또는 후속 차량에 송신한다. 이 삼차원 데이터(837)는, 예를 들어, 후속 차량의 사각이 되는 영역을 포함하는, 자차량의 전방의 포인트 클라우드, 가시광 영상, 깊이 정보, 또는 센서 위치 정보 등의 정보를 포함한다.
또한, 여기서는, 포맷 변환부(814 및 821)에서 포맷 변환 등이 행해지는 예를 서술하였지만, 포맷 변환은 행해지지 않아도 된다.
이러한 구성에 의해, 삼차원 데이터 작성 장치(810)는, 자차량의 센서(815)로는 검지할 수 없는 영역의 삼차원 데이터(831)를 외부로부터 취득하여, 삼차원 데이터(831)와 자차량의 센서(815)로 검지한 센서 정보(833)에 의거한 삼차원 데이터(834)를 합성함으로써 삼차원 데이터(835)를 생성한다. 이에 의해, 삼차원 데이터 작성 장치(810)는, 자차량의 센서(815)로 검지할 수 없는 범위의 삼차원 데이터를 생성할 수 있다.
또, 삼차원 데이터 작성 장치(810)는, 교통 감시 클라우드 또는 후속 차량으로부터의 데이터 송신 요구에 따라, 후속 차량의 센서로는 검지할 수 없는 자차량의 전방의 공간을 포함하는 삼차원 데이터를, 교통 감시 클라우드 또는 후속 차량 등으로 송신할 수 있다.
(실시 형태 6)
실시 형태 5에 있어서, 차량 등의 클라이언트 장치가, 다른 차량 또는 교통 감시 클라우드 등의 서버에 삼차원 데이터를 송신하는 예를 설명하였다. 본 실시 형태에서는, 클라이언트 장치는, 서버 또는 다른 클라이언트 장치에 센서로 얻어진 센서 정보를 송신한다.
우선, 본 실시 형태에 따른 시스템의 구성을 설명한다. 도 28은, 본 실시 형태에 따른 삼차원 맵 및 센서 정보의 송수신 시스템의 구성을 나타낸 도면이다. 이 시스템은, 서버(901)와, 클라이언트 장치(902A 및 902B)를 포함한다. 또한, 클라이언트 장치(902A 및 902B)를 특별히 구별하지 않는 경우에는, 클라이언트 장치(902)라고도 기재한다.
클라이언트 장치(902)는, 예를 들어, 차량 등의 이동체에 탑재되는 차재 기기이다. 서버(901)는, 예를 들어, 교통 감시 클라우드 등이며, 복수의 클라이언트 장치(902)와 통신 가능하다.
서버(901)는, 클라이언트 장치(902)에, 포인트 클라우드로 구성되는 삼차원 맵을 송신한다. 또한, 삼차원 맵의 구성은 포인트 클라우드에 한정되지 않으며, 메시 구조 등, 다른 삼차원 데이터를 나타내는 것이어도 된다.
클라이언트 장치(902)는, 서버(901)에, 클라이언트 장치(902)가 취득한 센서 정보를 송신한다. 센서 정보는, 예를 들어, LiDAR 취득 정보, 가시광 화상, 적외 화상, 뎁스 화상, 센서 위치 정보 및 속도 정보 중 적어도 하나를 포함한다.
서버(901)와 클라이언트 장치(902)의 사이에서 송수신되는 데이터는, 데이터 삭감을 위해 압축되어도 되고, 데이터의 정밀도를 유지하기 위해 비압축인 상태여도 상관없다. 데이터를 압축하는 경우, 포인트 클라우드에는 예를 들어 8진 트리 구조에 의거한 삼차원 압축 방식을 이용할 수 있다. 또, 가시광 화상, 적외 화상, 및 뎁스 화상에는 이차원의 화상 압축 방식을 이용할 수 있다. 이차원의 화상 압축 방식이란, 예를 들어, MPEG로 규격화된 MPEG-4 AVC 또는 HEVC 등이다.
또, 서버(901)는, 클라이언트 장치(902)로부터의 삼차원 맵의 송신 요구에 따라 서버(901)에서 관리하는 삼차원 맵을 클라이언트 장치(902)에 송신한다. 또한, 서버(901)는 클라이언트 장치(902)로부터의 삼차원 맵의 송신 요구를 기다리지 않고 삼차원 맵을 송신해도 된다. 예를 들어, 서버(901)는, 미리 정해진 공간에 있는 1개 이상의 클라이언트 장치(902)에 삼차원 맵을 브로드캐스트해도 상관없다. 또, 서버(901)는, 한 번 송신 요구를 받은 클라이언트 장치(902)에, 일정 시간마다 클라이언트 장치(902)의 위치에 적합한 삼차원 맵을 송신해도 된다. 또, 서버(901)는, 서버(901)가 관리하는 삼차원 맵이 갱신될 때마다 클라이언트 장치(902)에 삼차원 맵을 송신해도 된다.
클라이언트 장치(902)는, 서버(901)에 삼차원 맵의 송신 요구를 보낸다. 예를 들어, 클라이언트 장치(902)가, 주행 시에 자기 위치 추정을 행하고 싶은 경우에, 클라이언트 장치(902)는, 삼차원 맵의 송신 요구를 서버(901)에 송신한다.
또한, 다음과 같은 경우에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다. 클라이언트 장치(902)가 유지하는 삼차원 맵이 오래된 경우에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다. 예를 들어, 클라이언트 장치(902)가 삼차원 맵을 취득하고 나서 일정 기간이 경과한 경우에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다.
클라이언트 장치(902)가 유지하는 삼차원 맵으로 나타내어지는 공간으로부터, 클라이언트 장치(902)가 바깥으로 나오는 일정 시각 전에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다. 예를 들어, 클라이언트 장치(902)가, 클라이언트 장치(902)가 유지하는 삼차원 맵으로 나타내어지는 공간의 경계로부터 미리 정해진 거리 이내에 존재하는 경우에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다. 또, 클라이언트 장치(902)의 이동 경로 및 이동 속도를 파악할 수 있는 경우에는, 이들에 의거하여, 클라이언트 장치(902)가 유지하는 삼차원 맵으로 나타내어지는 공간으로부터, 클라이언트 장치(902)가 바깥으로 나오는 시각을 예측해도 된다.
클라이언트 장치(902)가 센서 정보로부터 작성한 삼차원 데이터와 삼차원 맵의 위치 맞춤 시의 오차가 일정 이상인 경우에, 클라이언트 장치(902)는 서버(901)에 삼차원 맵의 송신 요구를 보내도 된다.
클라이언트 장치(902)는, 서버(901)로부터 송신된 센서 정보의 송신 요구에 따라, 서버(901)에 센서 정보를 송신한다. 또한, 클라이언트 장치(902)는 서버(901)로부터의 센서 정보의 송신 요구를 기다리지 않고 센서 정보를 서버(901)에 보내도 된다. 예를 들어, 클라이언트 장치(902)는, 한 번 서버(901)로부터 센서 정보의 송신 요구를 얻은 경우, 일정 기간 동안, 정기적으로 센서 정보를 서버(901)에 송신해도 된다. 또, 클라이언트 장치(902)는, 클라이언트 장치(902)가 센서 정보를 바탕으로 작성한 삼차원 데이터와, 서버(901)로부터 얻은 삼차원 맵의 위치 맞춤 시의 오차가 일정 이상인 경우, 클라이언트 장치(902) 주변의 삼차원 맵에 변화가 생긴 가능성이 있다고 판단하여, 그 취지와 센서 정보를 서버(901)에 송신해도 된다.
서버(901)는, 클라이언트 장치(902)에 센서 정보의 송신 요구를 보낸다. 예를 들어, 서버(901)는, 클라이언트 장치(902)로부터, GPS 등의 클라이언트 장치(902)의 위치 정보를 수신한다. 서버(901)는, 클라이언트 장치(902)의 위치 정보에 의거하여, 서버(901)가 관리하는 삼차원 맵에 있어서 정보가 적은 공간에 클라이언트 장치(902)가 가까워지고 있다고 판단한 경우, 새로운 삼차원 맵을 생성하기 위해 클라이언트 장치(902)에 센서 정보의 송신 요구를 보낸다. 또, 서버(901)는, 삼차원 맵을 갱신하고 싶은 경우, 적설 시 혹은 재해 시 등의 도로 상황을 확인하고 싶은 경우, 정체 상황, 혹은 사건 사고 상황 등을 확인하고 싶은 경우에, 센서 정보의 송신 요구를 보내도 된다.
또, 클라이언트 장치(902)는, 서버(901)로부터 수취하는 센서 정보의 송신 요구의 수신 시에 있어서의 통신 상태 또는 대역에 따라, 서버(901)에 송신하는 센서 정보의 데이터량을 설정해도 된다. 서버(901)에 송신하는 센서 정보의 데이터량을 설정한다는 것은, 예를 들어, 당해 데이터 그 자체를 증감시키는 것, 또는 압축 방식을 적절히 선택하는 것이다.
도 29는, 클라이언트 장치(902)의 구성예를 나타낸 블록도이다. 클라이언트 장치(902)는, 서버(901)로부터 포인트 클라우드 등으로 구성되는 삼차원 맵을 수신하고, 클라이언트 장치(902)의 센서 정보에 의거하여 작성한 삼차원 데이터로부터 클라이언트 장치(902)의 자기 위치를 추정한다. 또, 클라이언트 장치(902)는, 취득한 센서 정보를 서버(901)에 송신한다.
클라이언트 장치(902)는, 데이터 수신부(1011)와, 통신부(1012)와, 수신 제어부(1013)와, 포맷 변환부(1014)와, 복수의 센서(1015)와, 삼차원 데이터 작성부(1016)와, 삼차원 화상 처리부(1017)와, 삼차원 데이터 축적부(1018)와, 포맷 변환부(1019)와, 통신부(1020)와, 송신 제어부(1021)와, 데이터 송신부(1022)를 구비한다.
데이터 수신부(1011)는, 서버(901)로부터 삼차원 맵(1031)을 수신한다. 삼차원 맵(1031)은, WLD 또는 SWLD 등의 포인트 클라우드를 포함하는 데이터이다. 삼차원 맵(1031)에는, 압축 데이터, 및 비압축 데이터 중 어느 쪽이 포함되어 있어도 된다.
통신부(1012)는, 서버(901)와 통신하여, 데이터 송신 요구(예를 들어, 삼차원 맵의 송신 요구) 등을 서버(901)에 송신한다.
수신 제어부(1013)는, 통신부(1012)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신처와의 통신을 확립한다.
포맷 변환부(1014)는, 데이터 수신부(1011)가 수신한 삼차원 맵(1031)에 포맷 변환 등을 행함으로써 삼차원 맵(1032)을 생성한다. 또, 포맷 변환부(1014)는, 삼차원 맵(1031)이 압축 또는 부호화되어 있는 경우에는, 신장 또는 복호 처리를 행한다. 또한, 포맷 변환부(1014)는, 삼차원 맵(1031)이 비압축 데이터이면, 신장 또는 복호 처리를 행하지 않는다.
복수의 센서(1015)는, LiDAR, 가시광 카메라, 적외선 카메라, 또는 뎁스 센서 등, 클라이언트 장치(902)가 탑재되어 있는 차량의 외부의 정보를 취득하는 센서군이며, 센서 정보(1033)를 생성한다. 예를 들어, 센서 정보(1033)는, 센서(1015)가 LiDAR 등의 레이저 센서인 경우, 포인트 클라우드(점군 데이터) 등의 삼차원 데이터이다. 또한, 센서(1015)는 복수가 아니어도 된다.
삼차원 데이터 작성부(1016)는, 센서 정보(1033)에 의거하여 자차량 주변의 삼차원 데이터(1034)를 작성한다. 예를 들어, 삼차원 데이터 작성부(1016)는, LiDAR로 취득한 정보와, 가시광 카메라로 얻어진 가시광 영상을 이용하여 자차량 주변의 색 정보를 갖는 포인트 클라우드 데이터를 작성한다.
삼차원 화상 처리부(1017)는, 수신한 포인트 클라우드 등의 삼차원 맵(1032)과, 센서 정보(1033)로부터 생성한 자차량 주변의 삼차원 데이터(1034)를 이용하여, 자차량의 자기 위치 추정 처리 등을 행한다. 또한, 삼차원 화상 처리부(1017)는, 삼차원 맵(1032)과 삼차원 데이터(1034)를 합성함으로써 자차량 주변의 삼차원 데이터(1035)를 작성하고, 작성한 삼차원 데이터(1035)를 이용하여 자기 위치 추정 처리를 행해도 된다.
삼차원 데이터 축적부(1018)는, 삼차원 맵(1032), 삼차원 데이터(1034) 및 삼차원 데이터(1035) 등을 축적한다.
포맷 변환부(1019)는, 센서 정보(1033)를, 수신측이 대응하고 있는 포맷으로 변환함으로써 센서 정보(1037)를 생성한다. 또한, 포맷 변환부(1019)는, 센서 정보(1037)를 압축 또는 부호화함으로써 데이터량을 삭감해도 된다. 또, 포맷 변환부(1019)는, 포맷 변환을 할 필요가 없는 경우는 처리를 생략해도 된다. 또, 포맷 변환부(1019)는, 송신 범위의 지정에 따라 송신하는 데이터량을 제어해도 된다.
통신부(1020)는, 서버(901)와 통신하여, 데이터 송신 요구(센서 정보의 송신 요구) 등을 서버(901)로부터 수신한다.
송신 제어부(1021)는, 통신부(1020)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신을 확립한다.
데이터 송신부(1022)는, 센서 정보(1037)를 서버(901)에 송신한다. 센서 정보(1037)는, 예를 들어, LiDAR로 취득한 정보, 가시광 카메라로 취득한 휘도 화상, 적외선 카메라로 취득한 적외 화상, 뎁스 센서로 취득한 뎁스 화상, 센서 위치 정보, 및 속도 정보 등, 복수의 센서(1015)에 의해 취득한 정보를 포함한다.
다음으로, 서버(901)의 구성을 설명한다. 도 30은, 서버(901)의 구성예를 나타낸 블록도이다. 서버(901)는, 클라이언트 장치(902)로부터 송신된 센서 정보를 수신하고, 수신한 센서 정보에 의거하여 삼차원 데이터를 작성한다. 서버(901)는, 작성한 삼차원 데이터를 이용하여, 서버(901)가 관리하는 삼차원 맵을 갱신한다. 또, 서버(901)는, 클라이언트 장치(902)로부터의 삼차원 맵의 송신 요구에 따라, 갱신한 삼차원 맵을 클라이언트 장치(902)에 송신한다.
서버(901)는, 데이터 수신부(1111)와, 통신부(1112)와, 수신 제어부(1113)와, 포맷 변환부(1114)와, 삼차원 데이터 작성부(1116)와, 삼차원 데이터 합성부(1117)와, 삼차원 데이터 축적부(1118)와, 포맷 변환부(1119)와, 통신부(1120)와, 송신 제어부(1121)와, 데이터 송신부(1122)를 구비한다.
데이터 수신부(1111)는, 클라이언트 장치(902)로부터 센서 정보(1037)를 수신한다. 센서 정보(1037)는, 예를 들어, LiDAR로 취득한 정보, 가시광 카메라로 취득한 휘도 화상, 적외선 카메라로 취득한 적외 화상, 뎁스 센서로 취득한 뎁스 화상, 센서 위치 정보, 및 속도 정보 등을 포함한다.
통신부(1112)는, 클라이언트 장치(902)와 통신하여, 데이터 송신 요구(예를 들어, 센서 정보의 송신 요구) 등을 클라이언트 장치(902)에 송신한다.
수신 제어부(1113)는, 통신부(1112)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신을 확립한다.
포맷 변환부(1114)는, 수신한 센서 정보(1037)가 압축 또는 부호화되어 있는 경우에는, 신장 또는 복호 처리를 행함으로써 센서 정보(1132)를 생성한다. 또한, 포맷 변환부(1114)는, 센서 정보(1037)가 비압축 데이터이면, 신장 또는 복호 처리를 행하지 않는다.
삼차원 데이터 작성부(1116)는, 센서 정보(1132)에 의거하여 클라이언트 장치(902) 주변의 삼차원 데이터(1134)를 작성한다. 예를 들어, 삼차원 데이터 작성부(1116)는, LiDAR로 취득한 정보와, 가시광 카메라로 얻어진 가시광 영상을 이용하여 클라이언트 장치(902) 주변의 색 정보를 갖는 포인트 클라우드 데이터를 작성한다.
삼차원 데이터 합성부(1117)는, 센서 정보(1132)를 바탕으로 작성한 삼차원 데이터(1134)를, 서버(901)가 관리하는 삼차원 맵(1135)에 합성함으로써 삼차원 맵(1135)을 갱신한다.
삼차원 데이터 축적부(1118)는, 삼차원 맵(1135) 등을 축적한다.
포맷 변환부(1119)는, 삼차원 맵(1135)을, 수신측이 대응하고 있는 포맷으로 변환함으로써 삼차원 맵(1031)을 생성한다. 또한, 포맷 변환부(1119)는, 삼차원 맵(1135)을 압축 또는 부호화함으로써 데이터량을 삭감해도 된다. 또, 포맷 변환부(1119)는, 포맷 변환을 할 필요가 없는 경우는 처리를 생략해도 된다. 또, 포맷 변환부(1119)는, 송신 범위의 지정에 따라 송신하는 데이터량을 제어해도 된다.
통신부(1120)는, 클라이언트 장치(902)와 통신하여, 데이터 송신 요구(삼차원 맵의 송신 요구) 등을 클라이언트 장치(902)로부터 수신한다.
송신 제어부(1121)는, 통신부(1120)를 통해, 대응 포맷 등의 정보를 통신처와 교환하여, 통신을 확립한다.
데이터 송신부(1122)는, 삼차원 맵(1031)을 클라이언트 장치(902)에 송신한다. 삼차원 맵(1031)은, WLD 또는 SWLD 등의 포인트 클라우드를 포함하는 데이터이다. 삼차원 맵(1031)에는, 압축 데이터, 및 비압축 데이터 중 어느 쪽이 포함되어 있어도 된다.
다음으로, 클라이언트 장치(902)의 동작 흐름에 대해 설명한다. 도 31은, 클라이언트 장치(902)에 의한 삼차원 맵 취득 시의 동작을 나타내는 플로차트이다.
우선, 클라이언트 장치(902)는, 서버(901)에 삼차원 맵(포인트 클라우드 등)의 송신을 요구한다(S1001). 이때, 클라이언트 장치(902)는, GPS 등으로 얻어진 클라이언트 장치(902)의 위치 정보를 함께 송신함으로써, 그 위치 정보에 관련된 삼차원 맵의 송신을 서버(901)에 요구해도 된다.
다음으로, 클라이언트 장치(902)는, 서버(901)로부터 삼차원 맵을 수신한다(S1002). 수신한 삼차원 맵이 압축 데이터이면, 클라이언트 장치(902)는, 수신한 삼차원 맵을 복호하여 비압축의 삼차원 맵을 생성한다(S1003).
다음으로, 클라이언트 장치(902)는, 복수의 센서(1015)로 얻어진 센서 정보(1033)로부터 클라이언트 장치(902) 주변의 삼차원 데이터(1034)를 작성한다(S1004). 다음으로, 클라이언트 장치(902)는, 서버(901)로부터 수신한 삼차원 맵(1032)과, 센서 정보(1033)로부터 작성한 삼차원 데이터(1034)를 이용하여 클라이언트 장치(902)의 자기 위치를 추정한다(S1005).
도 32는, 클라이언트 장치(902)에 의한 센서 정보의 송신 시의 동작을 나타낸 플로차트이다. 우선, 클라이언트 장치(902)는, 서버(901)로부터 센서 정보의 송신 요구를 수신한다(S1011). 송신 요구를 수신한 클라이언트 장치(902)는, 센서 정보(1037)를 서버(901)에 송신한다(S1012). 또한, 클라이언트 장치(902)는, 센서 정보(1033)가 복수의 센서(1015)로 얻어진 복수의 정보를 포함하는 경우, 각 정보를, 각 정보에 적합한 압축 방식으로 압축함으로써 센서 정보(1037)를 생성해도 된다.
다음으로, 서버(901)의 동작 흐름에 대해 설명한다. 도 33은, 서버(901)에 의한 센서 정보의 취득 시의 동작을 나타낸 플로차트이다. 우선, 서버(901)는, 클라이언트 장치(902)에 센서 정보의 송신을 요구한다(S1021). 다음으로, 서버(901)는, 당해 요구에 따라 클라이언트 장치(902)로부터 송신된 센서 정보(1037)를 수신한다(S1022). 다음으로, 서버(901)는, 수신한 센서 정보(1037)를 이용하여 삼차원 데이터(1134)를 작성한다(S1023). 다음으로, 서버(901)는, 작성한 삼차원 데이터(1134)를 삼차원 맵(1135)에 반영한다(S1024).
도 34는, 서버(901)에 의한 삼차원 맵의 송신 시의 동작을 나타낸 플로차트이다. 우선, 서버(901)는, 클라이언트 장치(902)로부터 삼차원 맵의 송신 요구를 수신한다(S1031). 삼차원 맵의 송신 요구를 수신한 서버(901)는, 클라이언트 장치(902)에 삼차원 맵(1031)을 송신한다(S1032). 이때, 서버(901)는, 클라이언트 장치(902)의 위치 정보에 맞추어 그 부근의 삼차원 맵을 추출하고, 추출한 삼차원 맵을 송신해도 된다. 또, 서버(901)는, 포인트 클라우드로 구성되는 삼차원 맵을, 예를 들어 8진 트리 구조에 의한 압축 방식 등을 이용하여 압축하고, 압축 후의 삼차원 맵을 송신해도 된다.
이하, 본 실시 형태의 변형예에 대해 설명한다.
서버(901)는, 클라이언트 장치(902)로부터 수신한 센서 정보(1037)을 이용하여 클라이언트 장치(902)의 위치 부근의 삼차원 데이터(1134)를 작성한다. 다음으로, 서버(901)는, 작성한 삼차원 데이터(1134)와, 서버(901)가 관리하는 동 에리어의 삼차원 맵(1135)의 매칭을 행함으로써, 삼차원 데이터(1134)와 삼차원 맵(1135)의 차분을 산출한다. 서버(901)는, 차분이 미리 정해진 역치 이상인 경우는, 클라이언트 장치(902)의 주변에서 어떠한 이상이 발생한 것으로 판단한다. 예를 들어, 지진 등의 자연재해에 의해 지반침하 등이 발생했을 때 등에, 서버(901)가 관리하는 삼차원 맵(1135)과, 센서 정보(1037)를 기초로 작성한 삼차원 데이터(1134)의 사이에 큰 차가 발생하는 것을 생각할 수 있다.
센서 정보(1037)는, 센서의 종류, 센서의 성능, 및 센서의 제품번호 중 적어도 하나를 나타내는 정보를 포함해도 된다. 또, 센서 정보(1037)에, 센서의 성능에 따른 클래스 ID 등이 부가되어도 된다. 예를 들어, 센서 정보(1037)가 LiDAR로 취득된 정보인 경우, 수mm 단위의 정밀도로 정보를 취득할 수 있는 센서를 클래스 1, 수cm 단위의 정밀도로 정보를 취득할 수 있는 센서를 클래스 2, 수m 단위의 정밀도로 정보를 취득할 수 있는 센서를 클래스 3과 같이, 센서의 성능에 식별자를 할당하는 것을 생각할 수 있다. 또, 서버(901)는, 센서의 성능 정보 등을, 클라이언트 장치(902)의 제품번호로부터 추정해도 된다. 예를 들어, 클라이언트 장치(902)가 차량에 탑재되어 있는 경우, 서버(901)는, 당해 차량의 차종으로부터 센서의 스펙 정보를 판단해도 된다. 이 경우, 서버(901)는, 차량의 차종의 정보를 사전에 취득하고 있어도 되고, 센서 정보에 당해 정보가 포함되어도 된다. 또, 서버(901)는 취득한 센서 정보(1037)를 이용하여, 센서 정보(1037)를 이용하여 작성한 삼차원 데이터(1134)에 대한 보정의 정도를 전환해도 된다. 예를 들어, 센서 성능이 고정밀도(클래스 1)인 경우, 서버(901)는, 삼차원 데이터(1134)에 대한 보정을 행하지 않는다. 센서 성능이 저정밀도(클래스 3)인 경우, 서버(901)는, 삼차원 데이터(1134)에, 센서의 정밀도에 따른 보정을 적용한다. 예를 들어, 서버(901)는, 센서의 정밀도가 낮을수록 보정의 정도(강도)를 강하게 한다.
서버(901)는, 어느 공간에 있는 복수의 클라이언트 장치(902)에 동시에 센서 정보의 송신 요구를 보내도 된다. 서버(901)는, 복수의 클라이언트 장치(902)로부터 복수의 센서 정보를 수신한 경우에, 모든 센서 정보를 삼차원 데이터(1134)의 작성에 이용할 필요는 없으며, 예를 들어, 센서의 성능에 따라, 이용하는 센서 정보를 선택해도 된다. 예를 들어, 서버(901)는, 삼차원 맵(1135)을 갱신하는 경우, 수신한 복수의 센서 정보 중에서 고정밀한 센서 정보(클래스 1)를 선별하고, 선별한 센서 정보를 이용하여 삼차원 데이터(1134)를 작성해도 된다.
서버(901)는, 교통 감시 클라우드 등의 서버에만 한정되지 않고, 다른 클라이언트 장치(차재)여도 된다. 도 35는, 이 경우의 시스템 구성을 나타낸 도면이다.
예를 들어, 클라이언트 장치(902C)가 근처에 있는 클라이언트 장치(902A)에 센서 정보의 송신 요구를 보내어, 클라이언트 장치(902A)로부터 센서 정보를 취득한다. 그리고, 클라이언트 장치(902C)는, 취득한 클라이언트 장치(902A)의 센서 정보를 이용하여 삼차원 데이터를 작성하고, 클라이언트 장치(902C)의 삼차원 맵을 갱신한다. 이에 의해, 클라이언트 장치(902C)는, 클라이언트 장치(902A)로부터 취득 가능한 공간의 삼차원 맵을, 클라이언트 장치(902C)의 성능을 살려 생성할 수 있다. 예를 들어, 클라이언트 장치(902C)의 성능이 높은 경우에, 이러한 케이스가 발생한다고 생각할 수 있다.
또, 이 경우, 센서 정보를 제공한 클라이언트 장치(902A)는, 클라이언트 장치(902C)가 생성한 고정밀한 삼차원 맵을 취득할 권리가 부여된다. 클라이언트 장치(902A)는, 그 권리에 따라 클라이언트 장치(902C)로부터 고정밀한 삼차원 맵을 수신한다.
또, 클라이언트 장치(902C)는 근처에 있는 복수의 클라이언트 장치(902)(클라이언트 장치(902A) 및 클라이언트 장치(902B))에 센서 정보의 송신 요구를 보내도 된다. 클라이언트 장치(902A) 또는 클라이언트 장치(902B)의 센서가 고성능인 경우에는, 클라이언트 장치(902C)는, 이 고성능인 센서로 얻어진 센서 정보를 이용하여 삼차원 데이터를 작성할 수 있다.
도 36은, 서버(901) 및 클라이언트 장치(902)의 기능 구성을 나타낸 블록도이다. 서버(901)는, 예를 들어, 삼차원 맵을 압축 및 복호하는 삼차원 맵 압축/복호 처리부(1201)와, 센서 정보를 압축 및 복호하는 센서 정보 압축/복호 처리부(1202)를 구비한다.
클라이언트 장치(902)는, 삼차원 맵 복호 처리부(1211)와, 센서 정보 압축 처리부(1212)를 구비한다. 삼차원 맵 복호 처리부(1211)는, 압축된 삼차원 맵의 부호화 데이터를 수신하고, 부호화 데이터를 복호하여 삼차원 맵을 취득한다. 센서 정보 압축 처리부(1212)는, 취득한 센서 정보로부터 작성한 삼차원 데이터를 대신하여, 센서 정보 그 자체를 압축하고, 압축한 센서 정보의 부호화 데이터를 서버(901)에 송신한다. 이 구성에 의해, 클라이언트 장치(902)는, 삼차원 맵(포인트 클라우드 등)을 복호하는 처리를 행하는 처리부(장치 또는 LSI)를 내부에 유지하면 되고, 삼차원 맵(포인트 클라우드 등)의 삼차원 데이터를 압축하는 처리를 행하는 처리부를 내부에 유지할 필요가 없다. 이에 의해, 클라이언트 장치(902)의 비용 및 소비 전력 등을 억제할 수 있다.
이상과 같이, 본 실시 형태에 따른 클라이언트 장치(902)는, 이동체에 탑재되고, 이동체에 탑재된 센서(1015)에 의해 얻어진, 이동체의 주변 상황을 나타내는 센서 정보(1033)로부터, 이동체 주변의 삼차원 데이터(1034)를 작성한다. 클라이언트 장치(902)는, 작성된 삼차원 데이터(1034)를 이용하여 이동체의 자기 위치를 추정한다. 클라이언트 장치(902)는, 취득한 센서 정보(1033)를 서버(901) 또는 다른 이동체(902)에 송신한다.
이에 의하면, 클라이언트 장치(902)는, 센서 정보(1033)를 서버(901) 등에 송신한다. 이에 의해, 삼차원 데이터를 송신하는 경우에 비해, 송신 데이터의 데이터량을 삭감할 수 있을 가능성이 있다. 또, 삼차원 데이터의 압축 또는 부호화 등의 처리를 클라이언트 장치(902)로 행할 필요가 없으므로, 클라이언트 장치(902)의 처리량을 삭감할 수 있다. 따라서, 클라이언트 장치(902)는, 전송되는 데이터량의 삭감, 또는, 장치의 구성의 간략화를 실현할 수 있다.
또, 클라이언트 장치(902)는, 또한, 서버(901)에 삼차원 맵의 송신 요구를 송신하고, 서버(901)로부터 삼차원 맵(1031)을 수신한다. 클라이언트 장치(902)는, 자기 위치의 추정에서는, 삼차원 데이터(1034)와 삼차원 맵(1032)을 이용하여, 자기 위치를 추정한다.
또, 센서 정보(1033)는, 레이저 센서로 얻어진 정보, 휘도 화상, 적외 화상, 뎁스 화상, 센서의 위치 정보, 및 센서의 속도 정보 중 적어도 하나를 포함한다.
또, 센서 정보(1033)는, 센서의 성능을 나타내는 정보를 포함한다.
또, 클라이언트 장치(902)는, 센서 정보(1033)를 부호화 또는 압축하고, 센서 정보의 송신에서는, 부호화 또는 압축 후의 센서 정보(1037)를, 서버(901) 또는 다른 이동체(902)에 송신한다. 이에 의하면, 클라이언트 장치(902)는, 전송되는 데이터량을 삭감할 수 있다.
예를 들어, 클라이언트 장치(902)는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또, 본 실시 형태에 따른 서버(901)는, 이동체에 탑재되는 클라이언트 장치(902)와 통신 가능하고, 이동체에 탑재된 센서(1015)에 의해 얻어진, 이동체의 주변 상황을 나타내는 센서 정보(1037)를 클라이언트 장치(902)로부터 수신한다. 서버(901)는, 수신한 센서 정보(1037)로부터, 이동체 주변의 삼차원 데이터(1134)를 작성한다.
이에 의하면, 서버(901)는, 클라이언트 장치(902)로부터 송신된 센서 정보(1037)를 이용하여 삼차원 데이터(1134)를 작성한다. 이에 의해, 클라이언트 장치(902)가 삼차원 데이터를 송신하는 경우에 비해, 송신 데이터의 데이터량을 삭감할 수 있을 가능성이 있다. 또, 삼차원 데이터의 압축 또는 부호화 등의 처리를 클라이언트 장치(902)로 행할 필요가 없으므로, 클라이언트 장치(902)의 처리량을 삭감할 수 있다. 따라서, 서버(901)는, 전송되는 데이터량의 삭감, 또는, 장치의 구성의 간략화를 실현할 수 있다.
또, 서버(901)는, 또한, 클라이언트 장치(902)에 센서 정보의 송신 요구를 송신한다.
또, 서버(901)는, 또한, 작성된 삼차원 데이터(1134)를 이용하여 삼차원 맵(1135)을 갱신하고, 클라이언트 장치(902)로부터의 삼차원 맵(1135)의 송신 요구에 따라 삼차원 맵(1135)을 클라이언트 장치(902)에 송신한다.
또, 센서 정보(1037)는, 레이저 센서로 얻어진 정보, 휘도 화상, 적외 화상, 뎁스 화상, 센서의 위치 정보, 및 센서의 속도 정보 중 적어도 하나를 포함한다.
또, 센서 정보(1037)는, 센서의 성능을 나타내는 정보를 포함한다.
또, 서버(901)는, 또한, 센서의 성능에 따라, 삼차원 데이터를 보정한다. 이에 의하면, 당해 삼차원 데이터 작성 방법은, 삼차원 데이터의 품질을 향상시킬 수 있다.
또, 서버(901)는, 센서 정보의 수신에서는, 복수의 클라이언트 장치(902)로부터 복수의 센서 정보(1037)를 수신하고, 복수의 센서 정보(1037)에 포함되는 센서의 성능을 나타내는 복수의 정보에 의거하여, 삼차원 데이터(1134)의 작성에 이용하는 센서 정보(1037)를 선택한다. 이에 의하면, 서버(901)는, 삼차원 데이터(1134)의 품질을 향상시킬 수 있다.
또, 서버(901)는, 수신한 센서 정보(1037)를 복호 또는 신장하고, 복호 또는 신장 후의 센서 정보(1132)로부터, 삼차원 데이터(1134)를 작성한다. 이에 의하면, 서버(901)는, 전송되는 데이터량을 삭감할 수 있다.
예를 들어, 서버(901)는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 7)
본 실시 형태에서는, 인터 예측 처리를 이용한 삼차원 데이터의 부호화 방법 및 복호 방법에 대해 설명한다.
도 37은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1300)의 블록도이다. 이 삼차원 데이터 부호화 장치(1300)는, 삼차원 데이터를 부호화함으로써 부호화 신호인 부호화 비트 스트림(이하, 간단히 비트 스트림이라고도 기재한다)을 생성한다. 도 37에 나타낸 바와 같이, 삼차원 데이터 부호화 장치(1300)는, 분할부(1301)와, 감산부(1302)와, 변환부(1303)와, 양자화부(1304)와, 역양자화부(1305)와, 역변환부(1306)와, 가산부(1307)와, 참조 볼륨 메모리(1308)와, 인트라 예측부(1309)와, 참조 스페이스 메모리(1310)와, 인터 예측부(1311)와, 예측 제어부(1312)와, 엔트로피 부호화부(1313)를 구비한다.
분할부(1301)는, 삼차원 데이터에 포함되는 각 스페이스(SPC)를 부호화 단위인 복수의 볼륨(VLM)으로 분할한다. 또, 분할부(1301)는, 각 볼륨 내의 복셀을 8진 트리 표현화(Octree화)한다. 또한, 분할부(1301)는, 스페이스와 볼륨을 동일 사이즈로 하여, 스페이스를 8진 트리 표현화해도 된다. 또, 분할부(1301)는, 8진 트리화에 필요한 정보(심도 정보 등)를 비트 스트림의 헤더 등에 부가해도 된다.
감산부(1302)는, 분할부(1301)에서 출력된 볼륨(부호화 대상 볼륨)과, 후술 하는 인트라 예측 또는 인터 예측에 의해 생성되는 예측 볼륨의 차분을 산출하고, 산출된 차분을 예측 잔차로서 변환부(1303)에 출력한다. 도 38은, 예측 잔차의 산출예를 나타낸 도면이다. 또한, 여기서 나타내는 부호화 대상 볼륨 및 예측 볼륨의 비트열은, 예를 들어, 볼륨에 포함되는 삼차원점(예를 들어 포인트 클라우드)의 위치를 나타내는 위치 정보이다.
이하, 8진 트리 표현과 복셀의 스캔순에 대해 설명한다. 볼륨은 8진 트리 구조로 변환(8진 트리화)된 후, 부호화된다. 8진 트리 구조는 노드와 리프로 구성된다. 각 노드는 8개의 노드 또는 리프를 가지며, 각 리프는 복셀(VXL) 정보를 갖는다. 도 39는, 복수의 복셀을 포함하는 볼륨의 구조예를 나타낸 도면이다. 도 40은, 도 39에 나타낸 볼륨을 8진 트리 구조로 변환한 예를 나타낸 도면이다. 여기서, 도 40에 나타낸 리프 중, 리프 1, 2, 3은 각각 도 39에 나타낸 복셀 VXL1, VXL2, VXL3을 나타내며, 점군을 포함하는 VXL(이하, 유효 VXL)을 표현하고 있다.
8진 트리는, 예를 들어 0, 1의 2치열로 표현된다. 예를 들어, 노드 또는 유효 VXL을 값 1, 그 이외를 값 0으로 하면, 각 노드 및 리프에는 도 40에 나타낸 2치열이 할당된다. 그리고, 폭 우선 또는 깊이 우선의 스캔순에 따라, 이 2치열이 스캔된다. 예를 들어 폭 우선으로 스캔된 경우, 도 41의 A에 나타낸 2치열이 얻어진다. 깊이 우선으로 스캔한 경우는 도 41의 B에 나타낸 2치열이 얻어진다. 이 스캔에 의해 얻어진 2치열은 엔트로피 부호화에 의해 부호화되어 정보량이 삭감된다.
다음으로, 8진 트리 표현에 있어서의 심도 정보에 대해 설명한다. 8진 트리 표현에 있어서의 심도는, 볼륨 내에 포함되는 포인트 클라우드 정보를, 어느 입도까지 유지할지를 컨트롤하기 위해 사용된다. 심도를 크게 설정하면, 보다 세세한 레벨까지 포인트 클라우드 정보를 재현할 수 있지만, 노드 및 리프를 표현하기 위한 데이터량이 증가한다. 반대로 심도를 작게 설정하면, 데이터량이 감소하지만, 복수의 상이한 위치 및 색이 다른 포인트 클라우드 정보가 동일 위치 또한 동일 색인 것으로 간주되므로, 본래의 포인트 클라우드 정보가 갖는 정보를 잃게 된다.
예를 들어, 도 42는, 도 40에 나타낸 심도=2의 8진 트리를, 심도=1의 8진 트리로 표현한 예를 나타낸 도면이다. 도 42에 나타낸 8진 트리는 도 40에 나타낸 8진 트리보다 데이터량이 적어진다. 즉, 도 42에 나타낸 8진 트리는 도 42에 나타낸 8진 트리보다 2치열화 후의 비트수가 적다. 여기서, 도 40에 나타낸 리프 1과 리프 2가 도 41에 나타낸 리프 1로 표현되게 된다. 즉, 도 40에 나타낸 리프 1과 리프 2가 상이한 위치였다는 정보가 없어진다.
도 43은, 도 42에 나타낸 8진 트리에 대응하는 볼륨을 나타낸 도면이다. 도 39에 나타낸 VXL1과 VXL2가 도 43에 나타낸 VXL12에 대응한다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 도 43에 나타낸 VXL12의 색 정보를, 도 39에 나타낸 VXL1과 VXL2의 색 정보로부터 생성한다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, VXL1과 VXL2의 색 정보의 평균치, 중간치, 또는 가중 평균치 등을 VXL12의 색 정보로서 산출한다. 이와 같이, 삼차원 데이터 부호화 장치(1300)는, 8진 트리의 심도를 바꿈으로써, 데이터량의 삭감을 제어해도 된다.
삼차원 데이터 부호화 장치(1300)는, 8진 트리의 심도 정보를, 월드 단위, 스페이스 단위, 및 볼륨 단위 중 어느 단위로 설정해도 상관없다. 또 그때, 삼차원 데이터 부호화 장치(1300)는, 월드의 헤더 정보, 스페이스의 헤더 정보, 또는 볼륨의 헤더 정보에 심도 정보를 부가해도 된다. 또, 시간이 상이한 모든 월드, 스페이스, 및 볼륨으로 심도 정보로 하여 동일한 값을 사용해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 모든 시간의 월드를 관리하는 헤더 정보에 심도 정보를 부가해도 된다.
복셀에 색 정보가 포함되는 경우에는, 변환부(1303)는, 볼륨 내의 복셀의 색 정보의 예측 잔차에 대해, 직교 변환 등의 주파수 변환을 적용한다. 예를 들어, 변환부(1303)는, 어느 스캔순으로 예측 잔차를 스캔함으로써 일차원 배열을 작성한다. 그 후, 변환부(1303)는, 작성한 일차원 배열에 일차원의 직교 변환을 적용함으로써 일차원 배열을 주파수 영역으로 변환한다. 이에 의해, 볼륨 내의 예측 잔차의 값이 가까운 경우에는 저역의 주파수 성분의 값이 커지고, 고역의 주파수 성분의 값이 작아진다. 따라서, 양자화부(1304)에 있어서 보다 효율적으로 부호량을 삭감할 수 있다.
또, 변환부(1303)는, 일차원이 아니라, 이차원 이상의 직교 변환을 이용해도 된다. 예를 들어, 변환부(1303)는, 어느 스캔순으로 예측 잔차를 이차원 배열로 매핑하여, 얻어진 이차원 배열에 이차원 직교 변환을 적용한다. 또, 변환부(1303)는, 복수의 직교 변환 방식으로부터 사용하는 직교 변환 방식을 선택해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 어느 직교 변환 방식을 이용하였는지를 나타내는 정보를 비트 스트림에 부가한다. 또, 변환부(1303)는, 차원이 다른 복수의 직교 변환 방식으로부터 사용하는 직교 변환 방식을 선택해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 어느 차원의 직교 변환 방식을 이용하였는지를 비트 스트림에 부가한다.
예를 들어, 변환부(1303)는, 예측 잔차의 스캔순을, 볼륨 내의 8진 트리에 있어서의 스캔순(폭 우선 또는 깊이 우선 등)에 맞춘다. 이에 의해, 예측 잔차의 스캔순을 나타내는 정보를 비트 스트림에 부가할 필요가 없으므로, 오버헤드를 삭감할 수 있다. 또, 변환부(1303)는, 8진 트리의 스캔순과는 다른 스캔순을 적용해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 예측 잔차의 스캔순을 나타내는 정보를 비트 스트림에 부가한다. 이에 의해, 삼차원 데이터 부호화 장치(1300)는, 예측 잔차를 효율적으로 부호화할 수 있다. 또, 삼차원 데이터 부호화 장치(1300)는, 8진 트리의 스캔순을 적용할지의 여부를 나타내는 정보(플래그 등)를 비트 스트림에 부가하고, 8진 트리의 스캔순을 적용하지 않는 경우에, 예측 잔차의 스캔순을 나타내는 정보를 비트 스트림에 부가해도 된다.
변환부(1303)는, 색 정보의 예측 잔차뿐만 아니라, 복셀이 갖는 그 밖의 속성 정보를 변환해도 된다. 예를 들어, 변환부(1303)는, 포인트 클라우드를 LiDAR 등으로 취득했을 때에 얻어지는 반사도 등의 정보를 변환하여, 부호화해도 된다.
변환부(1303)는, 스페이스가 색 정보 등의 속성 정보를 갖지 않는 경우는, 처리를 스킵해도 된다. 또, 삼차원 데이터 부호화 장치(1300)는, 변환부(1303)의 처리를 스킵할지의 여부를 나타내는 정보(플래그)를 비트 스트림에 부가해도 된다.
양자화부(1304)는, 변환부(1303)에서 생성된 예측 잔차의 주파수 성분에 대해, 양자화 제어 파라미터를 이용하여 양자화를 행함으로써 양자화 계수를 생성한다. 이에 의해 정보량이 삭감된다. 생성된 양자화 계수는 엔트로피 부호화부(1313)에 출력된다. 양자화부(1304)는, 양자화 제어 파라미터를, 월드 단위, 스페이스 단위, 또는 볼륨 단위로 제어해도 된다. 그때에는, 삼차원 데이터 부호화 장치(1300)는, 양자화 제어 파라미터를 각각의 헤더 정보 등에 부가한다. 또, 양자화부(1304)는, 예측 잔차의 주파수 성분마다, 가중치를 바꾸어 양자화 제어를 행해도 된다. 예를 들어, 양자화부(1304)는, 저주파수 성분은 세세하게 양자화하고, 고주파 성분은 러프하게 양자화해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 각 주파수 성분의 가중치를 나타내는 파라미터를 헤더에 부가해도 된다.
양자화부(1304)는, 스페이스가 색 정보 등의 속성 정보를 갖지 않는 경우는, 처리를 스킵해도 된다. 또, 삼차원 데이터 부호화 장치(1300)는, 양자화부(1304)의 처리를 스킵할지의 여부를 나타내는 정보(플래그)를 비트 스트림에 부가해도 된다.
역양자화부(1305)는, 양자화 제어 파라미터를 이용하여, 양자화부(1304)에서 생성된 양자화 계수에 역양자화를 행함으로써 예측 잔차의 역양자화 계수를 생성하고, 생성한 역양자화 계수를 역변환부(1306)에 출력한다.
역변환부(1306)는, 역양자화부(1305)에서 생성된 역양자화 계수에 대해 역변환을 적용함으로써 역변환 적용 후 예측 잔차를 생성한다. 이 역변환 적용 후 예측 잔차는, 양자화 후에 생성된 예측 잔차이므로, 변환부(1303)가 출력한 예측 잔차와는 완전히는 일치하지 않아도 된다.
가산부(1307)는, 역변환부(1306)에서 생성된 역변환 적용 후 예측 잔차와, 양자화 전의 예측 잔차의 생성에 이용된, 후술하는 인트라 예측 또는 인터 예측에 의해 생성된 예측 볼륨을 가산하여 재구성 볼륨을 생성한다. 이 재구성 볼륨은, 참조 볼륨 메모리(1308), 또는, 참조 스페이스 메모리(1310)에 저장된다.
인트라 예측부(1309)는, 참조 볼륨 메모리(1308)에 저장된 인접 볼륨의 속성 정보를 이용하여, 부호화 대상 볼륨의 예측 볼륨을 생성한다. 속성 정보란, 복셀의 색 정보 또는 반사도를 포함한다. 인트라 예측부(1309)는, 부호화 대상 볼륨의 색 정보 또는 반사도의 예측치를 생성한다.
도 44는, 인트라 예측부(1309)의 동작을 설명하기 위한 도면이다. 예를 들어, 인트라 예측부(1309)는, 도 44에 나타낸, 부호화 대상 볼륨(볼륨 idx=3)의 예측 볼륨을, 인접 볼륨(볼륨 idx=0)으로부터 생성한다. 여기서, 볼륨 idx란 스페이스 내의 볼륨에 대해 부가되는 식별자 정보이며, 각 볼륨에 상이한 값이 할당된다. 볼륨 idx의 할당의 순서는 부호화순과 동일한 순서여도 되고, 부호화순과는 다른 순서여도 된다. 예를 들어, 인트라 예측부(1309)는, 도 44에 나타낸 부호화 대상 볼륨의 색 정보의 예측치로서, 인접 볼륨인 볼륨 idx=0 내에 포함되는 복셀의 색 정보의 평균치를 이용한다. 이 경우, 부호화 대상 볼륨 내에 포함되는 각 복셀의 색 정보로부터, 색 정보의 예측치가 차감됨으로써 예측 잔차가 생성된다. 이 예측 잔차에 대해 변환부(1303) 이후의 처리가 행해진다. 또, 이 경우, 삼차원 데이터 부호화 장치(1300)는, 인접 볼륨 정보와, 예측 모드 정보를 비트 스트림에 부가한다. 여기서 인접 볼륨 정보란, 예측에 이용한 인접 볼륨을 나타내는 정보이며, 예를 들어, 예측에 이용한 인접 볼륨의 볼륨 idx를 나타낸다. 또, 예측 모드 정보란, 예측 볼륨의 생성에 사용한 모드를 나타낸다. 모드란, 예를 들어, 인접 볼륨 내의 복셀의 평균치로부터 예측치를 생성하는 평균치 모드, 또는 인접 볼륨 내의 복셀의 중간치로부터 예측치를 생성하는 중간치 모드 등이다.
인트라 예측부(1309)는, 예측 볼륨을, 복수의 인접 볼륨으로부터 생성해도 된다. 예를 들어, 도 44에 나타낸 구성에 있어서, 인트라 예측부(1309)는, 볼륨 idx=0의 볼륨으로부터 예측 볼륨 0을 생성하고, 볼륨 idx=1의 볼륨으로부터 예측 볼륨 1을 생성한다. 그리고, 인트라 예측부(1309)는, 예측 볼륨 0과 예측 볼륨 1의 평균을 최종적인 예측 볼륨으로서 생성한다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 예측 볼륨의 생성에 사용한 복수의 볼륨의 복수의 볼륨 idx를 비트 스트림에 부가해도 된다.
도 45는, 본 실시 형태에 따른 인터 예측 처리를 모식적으로 나타낸 도면이다. 인터 예측부(1311)는, 어느 시각 T_Cur의 스페이스(SPC)를, 상이한 시각 T_LX의 부호화가 완료된 스페이스를 이용하여 부호화(인터 예측)한다. 이 경우, 인터 예측부(1311)는, 상이한 시각 T_LX의 부호화가 완료된 스페이스에 회전 및 병진 처리를 적용하여 부호화 처리를 행한다.
또, 삼차원 데이터 부호화 장치(1300)는, 상이한 시각 T_LX의 스페이스에 적용한 회전 및 병진 처리에 관련된 RT 정보를 비트 스트림에 부가한다. 상이한 시각 T_LX란, 예를 들어, 상기 어느 시각 T_Cur보다 전의 시각 T_L0이다. 이때, 삼차원 데이터 부호화 장치(1300)는, 시각 T_L0의 스페이스에 적용한 회전 및 병진 처리에 관련된 RT 정보 RT_L0을 비트 스트림에 부가해도 된다.
또는, 상이한 시각 T_LX란, 예를 들어, 상기 어느 시각 T_Cur보다 후의 시각 T_L1이다. 이때, 삼차원 데이터 부호화 장치(1300)는, 시각 T_L1의 스페이스에 적용한 회전 및 병진 처리에 관련된 RT 정보 RT_L1을 비트 스트림에 부가해도 된다.
또는, 인터 예측부(1311)는, 상이한 시각 T_L0 및 시각 T_L1의 양쪽 모두의 스페이스를 참조하여 부호화(쌍예측)를 행한다. 이 경우에는, 삼차원 데이터 부호화 장치(1300)는, 각각의 스페이스에 적용한 회전 및 병진에 관련된 RT 정보 RT_L0 및 RT_L1의 양쪽 모두를 비트 스트림에 부가해도 된다.
또한, 상기에서는 T_L0을 T_Cur보다 전의 시각, T_L1을 T_Cur보다 후의 시각으로 하였지만, 반드시 이것에 한정되지 않는다. 예를 들어, T_L0과 T_L1은 모두 T_Cur보다 전의 시각이어도 된다. 또는, T_L0과 T_L1은 모두 T_Cur보다 후의 시각이어도 된다.
또, 삼차원 데이터 부호화 장치(1300)는, 복수의 상이한 시각의 스페이스를 참조하여 부호화를 행하는 경우에는, 각각의 스페이스에 적용한 회전 및 병진에 관련된 RT 정보를 비트 스트림에 부가해도 된다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 참조하는 복수의 부호화가 완료된 스페이스를 2개의 참조 리스트(L0 리스트 및 L1 리스트)로 관리한다. L0 리스트 내의 제1 참조 스페이스를 L0R0으로 하고, L0 리스트 내의 제2 참조 스페이스를 L0R1로 하고, L1 리스트 내의 제1 참조 스페이스를 L1R0으로 하고, L1 리스트 내의 제2 참조 스페이스를 L1R1로 한 경우, 삼차원 데이터 부호화 장치(1300)는, L0R0의 RT 정보 RT_L0R0과, L0R1의 RT 정보 RT_L0R1과, L1R0의 RT 정보 RT_L1R0과, L1R1의 RT 정보 RT_L1R1을 비트 스트림에 부가한다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 이들 RT 정보를 비트 스트림의 헤더 등에 부가한다.
또, 삼차원 데이터 부호화 장치(1300)는, 복수의 상이한 시각의 참조 스페이스를 참조하여 부호화를 행하는 경우, 참조 스페이스마다 회전 및 병진을 적용할지의 여부를 판정한다. 그때, 삼차원 데이터 부호화 장치(1300)는, 참조 스페이스마다 회전 및 병진을 적용하였는지의 여부를 나타내는 정보(RT 적용 플래그 등)를 비트 스트림의 헤더 정보 등에 부가해도 된다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 부호화 대상 스페이스로부터 참조하는 참조 스페이스마다 ICP(Interactive Closest Point) 알고리즘을 이용하여 RT 정보, 및 ICP 에러치를 산출한다. 삼차원 데이터 부호화 장치(1300)는, ICP 에러치가, 미리 정해진 일정치 이하인 경우는, 회전 및 병진을 행할 필요가 없다고 판정하여 RT 적용 플래그를 오프로 설정한다. 한편, 삼차원 데이터 부호화 장치(1300)는, ICP 에러치가 상기 일정치보다 큰 경우는, RT 적용 플래그를 온으로 설정하여, RT 정보를 비트 스트림에 부가한다.
도 46은, RT 정보 및 RT 적용 플래그를 헤더에 부가하는 신택스예를 나타낸 도면이다. 또한, 각 신택스에 할당하는 비트수는, 그 신택스가 취할 수 있는 범위에서 결정해도 된다. 예를 들어, 참조 리스트 L0 내에 포함되는 참조 스페이스수가 8개인 경우, MaxRefSpc_l0에는 3bit가 할당되어도 된다. 할당하는 비트수를, 각 신택스가 취할 수 있는 값에 따라 가변으로 해도 되고, 취할 수 있는 값에 상관없이 고정으로 해도 된다. 할당하는 비트수를 고정으로 하는 경우는, 삼차원 데이터 부호화 장치(1300)는, 그 고정 비트수를 다른 헤더 정보에 부가해도 된다.
여기서, 도 46에 나타낸, MaxRefSpc_l0은, 참조 리스트 L0 내에 포함되는 참조 스페이스수를 나타낸다. RT_flag_l0[i]는, 참조 리스트 L0 내의 참조 스페이스 i의 RT 적용 플래그이다. RT_flag_l0[i]가 1인 경우, 참조 스페이스 i에 회전 및 병진이 적용된다. RT_flag_l0[i]가 0인 경우, 참조 스페이스 i에 회전 및 병진이 적용되지 않는다.
R_l0[i] 및 T_l0[i]는, 참조 리스트 L0 내의 참조 스페이스 i의 RT 정보이다. R_l0[i]는, 참조 리스트 L0 내의 참조 스페이스 i의 회전 정보이다. 회전 정보는, 적용된 회전 처리의 내용을 나타내며, 예를 들어, 회전 행렬, 또는 쿼터니온 등이다. T_l0[i]는, 참조 리스트 L0 내의 참조 스페이스 i의 병진 정보이다. 병진 정보는, 적용된 병진 처리의 내용을 나타내며, 예를 들어, 병진 벡터 등이다.
MaxRefSpc_l1은, 참조 리스트 L1 내에 포함되는 참조 스페이스수를 나타낸다. RT_flag_l1[i]는, 참조 리스트 L1 내의 참조 스페이스 i의 RT 적용 플래그이다. RT_flag_l1[i]가 1인 경우, 참조 스페이스 i에 회전 및 병진이 적용된다. RT_flag_l1[i]가 0인 경우, 참조 스페이스 i에 회전 및 병진이 적용되지 않는다.
R_l1[i] 및 T_l1[i]는, 참조 리스트 L1 내의 참조 스페이스 i의 RT 정보이다. R_l1[i]는, 참조 리스트 L1 내의 참조 스페이스 i의 회전 정보이다. 회전 정보는, 적용된 회전 처리의 내용을 나타내며, 예를 들어, 회전 행렬, 또는 쿼터니온 등이다. T_l1[i]는, 참조 리스트 L1 내의 참조 스페이스 i의 병진 정보이다. 병진 정보는, 적용된 병진 처리의 내용을 나타내며, 예를 들어, 병진 벡터 등이다.
인터 예측부(1311)는, 참조 스페이스 메모리(1310)에 저장된 부호화가 완료된 참조 스페이스의 정보를 이용하여 부호화 대상 볼륨의 예측 볼륨을 생성한다. 상술한 바와 같이, 인터 예측부(1311)는, 부호화 대상 볼륨의 예측 볼륨을 생성하기 전에, 부호화 대상 스페이스와 참조 스페이스의 전체적인 위치 관계를 가깝게 하기 위해, 부호화 대상 스페이스와 참조 스페이스에서 ICP(Interactive Closest Point) 알고리즘을 이용하여 RT 정보를 구한다. 그리고, 인터 예측부(1311)는, 구한 RT 정보를 이용하여 참조 스페이스에 회전 및 병진 처리를 적용함으로써 참조 스페이스 B를 얻는다. 그 후, 인터 예측부(1311)는, 부호화 대상 스페이스 내의 부호화 대상 볼륨의 예측 볼륨을 참조 스페이스 B 내의 정보를 이용하여 생성한다. 여기서, 삼차원 데이터 부호화 장치(1300)는, 참조 스페이스 B를 얻기 위해 이용된 RT 정보를 부호화 대상 스페이스의 헤더 정보 등에 부가한다.
이와 같이, 인터 예측부(1311)는, 참조 스페이스에 회전 및 병진 처리를 적용함으로써 부호화 대상 스페이스와 참조 스페이스의 전체적인 위치 관계를 가깝게 하고 나서, 참조 스페이스의 정보를 이용하여 예측 볼륨을 생성함으로써 예측 볼륨의 정밀도를 향상시킬 수 있다. 또, 예측 잔차를 억제할 수 있으므로 부호량을 삭감할 수 있다. 또한, 여기서는, 부호화 대상 스페이스와 참조 스페이스를 이용하여 ICP를 행하는 예를 나타내었지만, 반드시 이것에 한정되지 않는다. 예를 들어, 인터 예측부(1311)는, 처리량을 삭감하기 위해, 복셀 또는 포인트 클라우드수를 솎아낸 부호화 대상 스페이스, 및, 복셀 또는 포인트 클라우드수를 솎아낸 참조 스페이스 중 적어도 한쪽을 이용하여 ICP를 행함으로써, RT 정보를 구해도 된다.
또, 인터 예측부(1311)는, ICP의 결과 얻어진 ICP 에러치가, 미리 정해진 제1 역치보다 작은 경우, 즉, 예를 들어 부호화 대상 스페이스와 참조 스페이스의 위치 관계가 가까운 경우에는, 회전 및 병진 처리는 필요없다고 판단하여, 회전 및 병진을 행하지 않아도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, RT 정보를 비트 스트림에 부가하지 않음으로써 오버헤드를 억제해도 된다.
또, 인터 예측부(1311)는, ICP 에러치가, 미리 정해진 제2 역치보다 큰 경우에는, 스페이스간의 형상 변화가 크다고 판단하여, 부호화 대상 스페이스의 모든 볼륨에 인트라 예측을 적용해도 된다. 이하, 인트라 예측을 적용하는 스페이스를 인트라 스페이스라고 부른다. 또, 제2 역치는 상기 제1 역치보다 큰 값이다. 또, ICP에 한정하지 않고, 2개의 복셀 집합, 또는, 2개의 포인트 클라우드 집합으로부터 RT 정보를 구하는 방법이면, 어떠한 수법을 적용해도 된다.
또, 삼차원 데이터에 형상 또는 색 등의 속성 정보가 포함되는 경우에는, 인터 예측부(1311)는, 부호화 대상 스페이스 내의 부호화 대상 볼륨의 예측 볼륨으로서, 예를 들어 참조 스페이스 내에서 부호화 대상 볼륨과 가장 형상 또는 색 등의 속성 정보가 가까운 볼륨을 탐색한다. 또, 이 참조 스페이스는, 예를 들어, 상술한 회전 및 병진 처리가 행해진 후의 참조 스페이스이다. 인터 예측부(1311)는, 탐색에 의해 얻어진 볼륨(참조 볼륨)으로부터 예측 볼륨을 생성한다. 도 47은, 예측 볼륨의 생성 동작을 설명하기 위한 도면이다. 인터 예측부(1311)는, 도 47에 나타낸 부호화 대상 볼륨(볼륨 idx=0)을, 인터 예측을 이용하여 부호화하는 경우, 참조 스페이스 내의 참조 볼륨을 차례로 스캔하면서, 부호화 대상 볼륨과 참조 볼륨의 차분인 예측 잔차가 가장 작은 볼륨을 탐색한다. 인터 예측부(1311)는, 예측 잔차가 가장 작은 볼륨을 예측 볼륨으로서 선택한다. 부호화 대상 볼륨과 예측 볼륨의 예측 잔차가 변환부(1303) 이후의 처리에 의해 부호화된다. 여기서, 예측 잔차란, 부호화 대상 볼륨의 속성 정보와 예측 볼륨의 속성 정보의 차분이다. 또, 삼차원 데이터 부호화 장치(1300)는, 예측 볼륨으로서 참조한 참조 스페이스 내의 참조 볼륨의 볼륨 idx를 비트 스트림의 헤더 등에 부가한다.
도 47에 나타낸 예에서는, 참조 스페이스 L0R0의 볼륨 idx=4의 참조 볼륨이 부호화 대상 볼륨의 예측 볼륨으로서 선택된다. 그리고, 부호화 대상 볼륨과 참조 볼륨의 예측 잔차와, 참조 볼륨 idx=4가 부호화되어 비트 스트림에 부가된다.
또한, 여기서는 속성 정보의 예측 볼륨을 생성하는 예를 설명하였지만, 위치 정보의 예측 볼륨에 대해서도 동일한 처리가 행해져도 된다.
예측 제어부(1312)는, 부호화 대상 볼륨을 인트라 예측, 및 인터 예측 중 어느 것을 이용하여 부호화할지를 제어한다. 여기서, 인트라 예측, 및 인터 예측을 포함하는 모드를 예측 모드라고 부른다. 예를 들어, 예측 제어부(1312)는, 부호화 대상 볼륨을 인트라 예측으로 예측한 경우의 예측 잔차와, 인터 예측으로 예측한 경우의 예측 잔차를 평가치로서 산출하고, 평가치가 작은 쪽의 예측 모드를 선택한다. 또한, 예측 제어부(1312)는, 인트라 예측의 예측 잔차와 인터 예측의 예측 잔차에, 각각 직교 변환, 양자화, 및, 엔트로피 부호화를 적용함으로써 실제의 부호량을 산출하고, 산출한 부호량을 평가치로 하여 예측 모드를 선택해도 된다. 또, 평가치에 예측 잔차 이외의 오버헤드 정보(참조 볼륨 idx 정보 등)를 추가하도록 해도 된다. 또, 예측 제어부(1312)는, 부호화 대상 스페이스를 인트라 스페이스로 부호화한다고 미리 결정되어 있는 경우에는, 항상 인트라 예측을 선택해도 된다.
엔트로피 부호화부(1313)는, 양자화부(1304)로부터의 입력인 양자화 계수를 가변길이 부호화함으로써 부호화 신호(부호화 비트 스트림)를 생성한다. 구체적으로는, 엔트로피 부호화부(1313)는, 예를 들어, 양자화 계수를 2치화하여, 얻어진 2치 신호를 산술 부호화한다.
다음으로, 삼차원 데이터 부호화 장치(1300)에 의해 생성된 부호화 신호를 복호하는 삼차원 데이터 복호 장치에 대해 설명한다. 도 48은, 본 실시 형태에 따른 삼차원 데이터 복호 장치(1400)의 블록도이다. 이 삼차원 데이터 복호 장치(1400)는, 엔트로피 복호부(1401)와, 역양자화부(1402)와, 역변환부(1403)와, 가산부(1404)와, 참조 볼륨 메모리(1405)와, 인트라 예측부(1406)와, 참조 스페이스 메모리(1407)와, 인터 예측부(1408)와, 예측 제어부(1409)를 구비한다.
엔트로피 복호부(1401)는, 부호화 신호(부호화 비트 스트림)를 가변길이 복호한다. 예를 들어, 엔트로피 복호부(1401)는, 부호화 신호를 산술 복호하여 2치 신호를 생성하고, 생성한 2치 신호로부터 양자화 계수를 생성한다.
역양자화부(1402)는, 엔트로피 복호부(1401)로부터 입력된 양자화 계수를, 비트 스트림 등에 부가된 양자화 파라미터를 이용하여 역양자화함으로써 역양자화 계수를 생성한다.
역변환부(1403)는, 역양자화부(1402)로부터 입력된 역양자화 계수를 역변환함으로써 예측 잔차를 생성한다. 예를 들어, 역변환부(1403)는, 역양자화 계수를, 비트 스트림에 부가된 정보에 의거하여 역직교 변환함으로써 예측 잔차를 생성한다.
가산부(1404)는, 역변환부(1403)에서 생성된 예측 잔차와, 인트라 예측 또는 인터 예측에 의해 생성된 예측 볼륨을 가산하여 재구성 볼륨을 생성한다. 이 재구성 볼륨은, 복호 삼차원 데이터로서 출력됨과 더불어, 참조 볼륨 메모리(1405), 또는, 참조 스페이스 메모리(1407)에 저장된다.
인트라 예측부(1406)는, 참조 볼륨 메모리(1405) 내의 참조 볼륨과 비트 스트림에 부가된 정보를 이용하여 인트라 예측에 의해 예측 볼륨을 생성한다. 구체적으로는, 인트라 예측부(1406)는, 비트 스트림에 부가된 인접 볼륨 정보(예를 들어 볼륨 idx)와, 예측 모드 정보를 취득하고, 인접 볼륨 정보로 나타내어지는 인접 볼륨을 이용하여, 예측 모드 정보로 나타내어지는 모드에 의해 예측 볼륨을 생성한다. 또한, 이들 처리의 상세는, 비트 스트림에 부여된 정보가 이용되는 점을 제외하고, 상술한 인트라 예측부(1309)에 의한 처리와 동일하다.
인터 예측부(1408)는, 참조 스페이스 메모리(1407) 내의 참조 스페이스와 비트 스트림에 부가된 정보를 이용하여 인터 예측에 의해 예측 볼륨을 생성한다. 구체적으로는, 인터 예측부(1408)는, 비트 스트림에 부가된 참조 스페이스마다의 RT 정보를 이용하여 참조 스페이스에 대해 회전 및 병진 처리를 적용하고, 적용 후의 참조 스페이스를 이용하여 예측 볼륨을 생성한다. 또한, 참조 스페이스마다의 RT 적용 플래그가 비트 스트림 내에 존재하는 경우에는, 인터 예측부(1408)는, RT 적용 플래그에 따라 참조 스페이스에 회전 및 병진 처리를 적용한다. 또한, 이들 처리의 상세는, 비트 스트림에 부여된 정보가 이용되는 점을 제외하고, 상술한 인터 예측부(1311)에 의한 처리와 동일하다.
예측 제어부(1409)는, 복호 대상 볼륨을 인트라 예측으로 복호할지, 인터 예측으로 복호할지를 제어한다. 예를 들어, 예측 제어부(1409)는, 비트 스트림에 부가된, 사용하는 예측 모드를 나타내는 정보에 따라 인트라 예측 또는 인터 예측을 선택한다. 또한, 예측 제어부(1409)는, 복호 대상 스페이스를 인트라 스페이스로 복호한다고 미리 결정되어 있는 경우는, 항상 인트라 예측을 선택해도 된다.
이하, 본 실시 형태의 변형예에 대해 설명한다. 본 실시 형태에서는 스페이스 단위로 회전 및 병진이 적용되는 예를 설명하였지만, 보다 세세한 단위로 회전 및 병진이 적용되어도 된다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 스페이스를 서브 스페이스로 분할하고, 서브 스페이스 단위로 회전 및 병진을 적용해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 서브 스페이스마다 RT 정보를 생성하고, 생성한 RT 정보를 비트 스트림의 헤더 등에 부가한다. 또, 삼차원 데이터 부호화 장치(1300)는, 부호화 단위인 볼륨 단위로 회전 및 병진을 적용해도 된다. 이 경우, 삼차원 데이터 부호화 장치(1300)는, 부호화 볼륨 단위로 RT 정보를 생성하고, 생성한 RT 정보를 비트 스트림의 헤더 등에 부가한다. 또한, 상기를 조합해도 된다. 즉, 삼차원 데이터 부호화 장치(1300)는, 큰 단위로 회전 및 병진을 적용하고, 그 후, 세세한 단위로 회전 및 병진을 적용해도 된다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 스페이스 단위로 회전 및 병진을 적용하고, 얻어진 스페이스에 포함되는 복수의 볼륨의 각각에 대해, 서로 상이한 회전 및 병진을 적용해도 된다.
또, 본 실시 형태에서는 참조 스페이스에 회전 및 병진을 적용하는 예를 설명하였지만, 반드시 이것에 한정되지 않는다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 예를 들어, 스케일 처리를 적용하여 삼차원 데이터의 크기를 변화시켜도 된다. 또, 삼차원 데이터 부호화 장치(1300)는, 회전, 병진 및 스케일 중, 어느 1개 또는 2개를 적용해도 된다. 또, 상기와 같이 다단계에서 다른 단위로 처리를 적용하는 경우에는, 각 단위에 적용되는 처리의 종류가 상이해도 된다. 예를 들어, 스페이스 단위에서는 회전 및 병진이 적용되고, 볼륨 단위에서는 병진이 적용되어도 된다.
또한, 이들 변형예에 대해서는, 삼차원 데이터 복호 장치(1400)에 대해서도 동일하게 적용할 수 있다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1300)는, 이하의 처리를 행한다. 도 48은, 삼차원 데이터 부호화 장치(1300)에 의한 인터 예측 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치(1300)는, 대상 삼차원 데이터(예를 들어 부호화 대상 스페이스)와 상이한 시각의 참조 삼차원 데이터(예를 들어 참조 스페이스)에 포함되는 삼차원점의 위치 정보를 이용하여 예측 위치 정보(예를 들어 예측 볼륨)를 생성한다(S1301). 구체적으로는, 삼차원 데이터 부호화 장치(1300)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용함으로써 예측 위치 정보를 생성한다.
또한, 삼차원 데이터 부호화 장치(1300)는, 회전 및 병진 처리를 제1 단위(예를 들어 스페이스)로 행하고, 예측 위치 정보의 생성을 제1 단위보다 세세한 제2 단위(예를 들어 볼륨)로 행해도 된다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 회전 및 병진 처리 후의 참조 스페이스에 포함되는 복수의 볼륨 중, 부호화 대상 스페이스에 포함되는 부호화 대상 볼륨과 위치 정보의 차가 최소가 되는 볼륨을 탐색하여, 얻어진 볼륨을 예측 볼륨으로서 이용한다. 또한, 삼차원 데이터 부호화 장치(1300)는, 회전 및 병진 처리와, 예측 위치 정보의 생성을 동일한 단위로 행해도 된다.
또, 삼차원 데이터 부호화 장치(1300)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 제1 단위(예를 들어 스페이스)로 제1 회전 및 병진 처리를 적용하고, 제1 회전 및 병진 처리에 의해 얻어진 삼차원점의 위치 정보에, 제1 단위보다 세세한 제2 단위(예를 들어 볼륨)로 제2 회전 및 병진 처리를 적용함으로써 예측 위치 정보를 생성해도 된다.
여기서, 삼차원점의 위치 정보 및 예측 위치 정보는, 예를 들어 도 41에 나타낸 바와 같이, 8진 트리 구조로 표현된다. 예를 들어, 삼차원점의 위치 정보 및 예측 위치 정보는, 8진 트리 구조에 있어서의 심도와 폭 중, 폭을 우선한 스캔순으로 나타내어진다. 또는, 삼차원점의 위치 정보 및 예측 위치 정보는, 8진 트리 구조에 있어서의 심도와 폭 중, 심도를 우선한 스캔순으로 나타내어진다.
또, 도 46에 나타낸 바와 같이, 삼차원 데이터 부호화 장치(1300)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용할지의 여부를 나타내는 RT 적용 플래그를 부호화한다. 즉, 삼차원 데이터 부호화 장치(1300)는, RT 적용 플래그를 포함하는 부호화 신호(부호화 비트 스트림)를 생성한다. 또, 삼차원 데이터 부호화 장치(1300)는, 회전 및 병진 처리의 내용을 나타내는 RT 정보를 부호화한다. 즉, 삼차원 데이터 부호화 장치(1300)는, RT 정보를 포함하는 부호화 신호(부호화 비트 스트림)를 생성한다. 또한, 삼차원 데이터 부호화 장치(1300)는, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하는 것이 나타내어지는 경우에 RT 정보를 부호화하고, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하지 않는 것이 나타내어지는 경우에 RT 정보를 부호화하지 않아도 된다.
또, 삼차원 데이터는, 예를 들어, 삼차원점의 위치 정보와, 각 삼차원점의 속성 정보(색 정보 등)를 포함한다. 삼차원 데이터 부호화 장치(1300)는, 참조 삼차원 데이터에 포함되는 삼차원점의 속성 정보를 이용하여 예측 속성 정보를 생성한다(S1302).
다음으로, 삼차원 데이터 부호화 장치(1300)는, 대상 삼차원 데이터에 포함되는 삼차원점의 위치 정보를, 예측 위치 정보를 이용하여 부호화한다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 도 38에 나타낸 바와 같이 대상 삼차원 데이터에 포함되는 삼차원점의 위치 정보와 예측 위치 정보의 차분인 차분 위치 정보를 산출한다(S1303).
또, 삼차원 데이터 부호화 장치(1300)는, 대상 삼차원 데이터에 포함되는 삼차원점의 속성 정보를, 예측 속성 정보를 이용하여 부호화한다. 예를 들어, 삼차원 데이터 부호화 장치(1300)는, 대상 삼차원 데이터에 포함되는 삼차원점의 속성 정보와 예측 속성 정보의 차분인 차분 속성 정보를 산출한다(S1304). 다음으로, 삼차원 데이터 부호화 장치(1300)는, 산출된 차분 속성 정보에 변환 및 양자화를 행한다(S1305).
마지막으로, 삼차원 데이터 부호화 장치(1300)는, 차분 위치 정보와, 양자화 후의 차분 속성 정보를 부호화(예를 들어 엔트로피 부호화)한다(S1306). 즉, 삼차원 데이터 부호화 장치(1300)는, 차분 위치 정보와 차분 속성 정보를 포함하는 부호화 신호(부호화 비트 스트림)를 생성한다.
또한, 삼차원 데이터에 속성 정보가 포함되지 않는 경우에는, 삼차원 데이터 부호화 장치(1300)는, 단계 S1302, S1304 및 S1305를 행하지 않아도 된다. 또, 삼차원 데이터 부호화 장치(1300)는, 삼차원점의 위치 정보의 부호화와, 삼차원점의 속성 정보의 부호화 중, 한쪽만을 행해도 된다.
또, 도 49에 나타낸 처리의 순서는 일례이며, 이것에 한정되지 않는다. 예를 들어, 위치 정보에 대한 처리(S1301, S1303)와, 속성 정보에 대한 처리(S1302, S1304, S1305)는 서로 독립되어 있으므로, 임의의 순서로 행해져도 되고, 일부가 병렬 처리되어도 된다.
이상에 의해, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1300)는, 대상 삼차원 데이터와 상이한 시각의 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보를 이용하여 예측 위치 정보를 생성하고, 대상 삼차원 데이터에 포함되는 삼차원점의 위치 정보와 예측 위치 정보의 차분인 차분 위치 정보를 부호화한다. 이에 의해, 부호화 신호의 데이터량을 삭감할 수 있으므로 부호화 효율을 향상시킬 수 있다.
또, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1300)는, 참조 삼차원 데이터에 포함되는 삼차원점의 속성 정보를 이용하여 예측 속성 정보를 생성하고, 대상 삼차원 데이터에 포함되는 삼차원점의 속성 정보와 예측 속성 정보의 차분인 차분 속성 정보를 부호화한다. 이에 의해, 부호화 신호의 데이터량을 삭감할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들어, 삼차원 데이터 부호화 장치(1300)는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
도 48은, 삼차원 데이터 복호 장치(1400)에 의한 인터 예측 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치(1400)는, 부호화 신호(부호화 비트 스트림)로부터, 차분 위치 정보와 차분 속성 정보를 복호(예를 들어 엔트로피 복호)한다(S1401).
또, 삼차원 데이터 복호 장치(1400)는, 부호화 신호로부터, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용할지의 여부를 나타내는 RT 적용 플래그를 복호한다. 또, 삼차원 데이터 복호 장치(1400)는, 회전 및 병진 처리의 내용을 나타내는 RT 정보를 복호한다. 또한, 삼차원 데이터 복호 장치(1400)는, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하는 것이 나타내어지는 경우에 RT 정보를 복호하고, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하지 않는 것이 나타내어지는 경우에 RT 정보를 복호하지 않아도 된다.
다음으로, 삼차원 데이터 복호 장치(1400)는, 복호된 차분 속성 정보에 역양자화 및 역변환을 행한다(S1402).
다음으로, 삼차원 데이터 복호 장치(1400)는, 대상 삼차원 데이터(예를 들어 복호 대상 스페이스)와 상이한 시각의 참조 삼차원 데이터(예를 들어 참조 스페이스)에 포함되는 삼차원점의 위치 정보를 이용하여 예측 위치 정보(예를 들어 예측 볼륨)를 생성한다(S1403). 구체적으로는, 삼차원 데이터 복호 장치(1400)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용함으로써 예측 위치 정보를 생성한다.
보다 구체적으로는, 삼차원 데이터 복호 장치(1400)는, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하는 것이 나타내어지는 경우에, RT 정보로 나타내어지는 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용한다. 한편, RT 적용 플래그에 의해 회전 및 병진 처리를 적용하지 않는 것이 나타내어지는 경우에는, 삼차원 데이터 복호 장치(1400)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 회전 및 병진 처리를 적용하지 않는다.
또한, 삼차원 데이터 복호 장치(1400)는, 회전 및 병진 처리를 제1 단위(예를 들어 스페이스)로 행하고, 예측 위치 정보의 생성을 제1 단위보다 세세한 제2 단위(예를 들어 볼륨)로 행해도 된다. 또한, 삼차원 데이터 복호 장치(1400)는, 회전 및 병진 처리와, 예측 위치 정보의 생성을 동일한 단위로 행해도 된다.
또, 삼차원 데이터 복호 장치(1400)는, 참조 삼차원 데이터에 포함되는 삼차원점의 위치 정보에 제1 단위(예를 들어 스페이스)로 제1 회전 및 병진 처리를 적용하고, 제1 회전 및 병진 처리에 의해 얻어진 삼차원점의 위치 정보에, 제1 단위보다 세세한 제2 단위(예를 들어 볼륨)로 제2 회전 및 병진 처리를 적용함으로써 예측 위치 정보를 생성해도 된다.
여기서, 삼차원점의 위치 정보 및 예측 위치 정보는, 예를 들어 도 41에 나타낸 바와 같이, 8진 트리 구조로 표현된다. 예를 들어, 삼차원점의 위치 정보 및 예측 위치 정보는, 8진 트리 구조에 있어서의 심도와 폭 중, 폭을 우선한 스캔순으로 나타내어진다. 또는, 삼차원점의 위치 정보 및 예측 위치 정보는, 8진 트리 구조에 있어서의 심도와 폭 중, 심도를 우선한 스캔순으로 나타내어진다.
삼차원 데이터 복호 장치(1400)는, 참조 삼차원 데이터에 포함되는 삼차원점의 속성 정보를 이용하여 예측 속성 정보를 생성한다(S1404).
다음으로, 삼차원 데이터 복호 장치(1400)는, 부호화 신호에 포함되는 부호화 위치 정보를 예측 위치 정보를 이용하여 복호함으로써 대상 삼차원 데이터에 포함되는 삼차원점의 위치 정보를 복원한다. 여기서, 부호화 위치 정보란, 예를 들어, 차분 위치 정보이며, 삼차원 데이터 복호 장치(1400)는, 차분 위치 정보와 예측 위치 정보를 가산함으로써 대상 삼차원 데이터에 포함되는 삼차원점의 위치 정보를 복원한다(S1405).
또, 삼차원 데이터 복호 장치(1400)는, 부호화 신호에 포함되는 부호화 속성 정보를 예측 속성 정보를 이용하여 복호함으로써 대상 삼차원 데이터에 포함되는 삼차원점의 속성 정보를 복원한다. 여기서, 부호화 속성 정보란, 예를 들어, 차분 속성 정보이며, 삼차원 데이터 복호 장치(1400)는, 차분 속성 정보와 예측 속성 정보를 가산함으로써 대상 삼차원 데이터에 포함되는 삼차원점의 속성 정보를 복원한다(S1406).
또한, 삼차원 데이터에 속성 정보가 포함되지 않는 경우에는, 삼차원 데이터 복호 장치(1400)는, 단계 S1402, S1404 및 S1406을 행하지 않아도 된다. 또, 삼차원 데이터 복호 장치(1400)는, 삼차원점의 위치 정보의 복호와, 삼차원점의 속성 정보의 복호 중, 한쪽만을 행해도 된다.
또, 도 50에 나타낸 처리의 순서는 일례이며, 이것에 한정되지 않는다. 예를 들어, 위치 정보에 대한 처리(S1403, S1405)와, 속성 정보에 대한 처리(S1402, S1404, S1406)는 서로 독립되어 있으므로, 임의의 순서로 행해져도 되고, 일부가 병렬 처리되어도 된다.
(실시 형태 8)
본 실시 형태에서는, 삼차원 데이터의 부호화에 있어서의 삼차원점(포인트 클라우드)의 표현 수법에 대해 설명한다.
도 51은, 본 실시 형태에 따른 삼차원 데이터의 전송 시스템의 구성을 나타낸 블록도이다. 도 51에 나타낸 전송 시스템은, 서버(1501)와, 복수의 클라이언트(1502)를 포함한다.
서버(1501)는, 기억부(1511)와, 제어부(1512)를 포함한다. 기억부(1511)는, 부호화된 삼차원 데이터인 부호화 삼차원 맵(1513)을 저장하고 있다.
도 52는, 부호화 삼차원 맵(1513)의 비트 스트림의 구성예를 나타낸 도면이다. 삼차원 맵은, 복수의 서브 맵(sub-map)으로 분할되고, 각 서브 맵이 부호화된다. 각 서브 맵에는, 서브 좌표 정보를 포함하는 랜덤 액세스 헤더(RA)가 부가된다. 서브 좌표 정보는, 서브 맵의 부호화 효율을 향상시키기 위해 이용된다. 이 서브 좌표 정보는, 서브 맵의 서브 좌표(sub-coordinate)를 나타낸다. 서브 좌표는, 기준 좌표(reference coordinate)를 기준으로 한 서브 맵의 좌표이다. 또한, 복수의 서브 맵이 포함되는 삼차원 맵을 전체 맵이라고 부른다. 또, 전체 맵에 있어서 기준이 되는 좌표(예를 들어 원점)를 기준 좌표라고 부른다. 즉, 서브 좌표는, 전체 맵의 좌표계에 있어서의 서브 맵의 좌표이다. 바꿔 말하면, 서브 좌표는, 전체 맵의 좌표계와 서브 맵의 좌표계의 오프셋을 나타낸다. 또, 기준 좌표를 기준으로 하는 전체 맵의 좌표계에 있어서의 좌표를 전체 좌표라고 부른다. 서브 좌표를 기준으로 하는 서브 맵의 좌표계에 있어서의 좌표를 차분 좌표라고 부른다.
클라이언트(1502)는, 서버(1501)에 메시지를 송신한다. 이 메시지는, 클라이언트(1502)의 위치 정보를 포함한다. 서버(1501)에 포함되는 제어부(1512)는, 수신한 메시지에 포함되는 위치 정보에 의거하여, 클라이언트(1502)의 위치에 가장 가까운 위치의 서브 맵의 비트 스트림을 취득한다. 서브 맵의 비트 스트림은, 서브 좌표 정보를 포함하고, 클라이언트(1502)에 송신된다. 클라이언트(1502)에 포함되는 디코더(1521)는, 이 서브 좌표 정보를 이용하여, 기준 좌표를 기준으로 한 서브 맵의 전체 좌표를 얻는다. 클라이언트(1502)에 포함되는 어플리케이션(1522)은, 얻어진 서브 맵의 전체 좌표를 이용하여, 자기 위치에 관련된 어플리케이션을 실행한다.
또, 서브 맵은 전체 맵의 일부 영역을 나타낸다. 서브 좌표는 전체 맵의 기준 좌표 공간에 있어서 서브 맵이 위치하는 좌표이다. 예를 들어 A의 전체 맵 중에, AA의 서브 맵 A, 및 AB의 서브 맵 B가 존재하는 것으로 한다. 차량은, AA의 지도를 참조하고 싶은 경우는, 서브 맵 A로부터 복호를 개시하고, AB의 지도를 참조하고 싶은 경우는, 서브 맵 B로부터 복호를 개시한다. 여기서 서브 맵은 랜덤 액세스 포인트이다. 구체적으로는, A는 오사카부, AA는 오사카시, AB는 타카츠키시 등이다.
각 서브 맵은 서브 좌표 정보와 함께 클라이언트에 송신된다. 서브 좌표 정보는 각 서브 맵의 헤더 정보, 또는 송신 패킷 등에 포함된다.
각 서브 맵의 서브 좌표 정보의 기준의 좌표가 되는 기준 좌표는, 전체 맵의 헤더 정보 등 서브 맵보다 상위 공간의 헤더 정보에 부가되어도 된다.
서브 맵은 1개의 스페이스(SPC)로 구성되어도 된다. 또, 서브 맵은 복수의 SPC로 구성되어도 된다.
또, 서브 맵은, GOS(Group of Space)를 포함해도 된다. 또 서브 맵은, 월드로 구성되어도 된다. 예를 들어, 서브 맵 중에 복수의 오브젝트가 있는 경우, 복수의 오브젝트를 각기 다른 SPC에 할당하면 서브 맵은 복수의 SPC로 구성된다. 또 복수의 오브젝트를 1개의 SPC에 할당하면 서브 맵은 1개의 SPC로 구성된다.
다음으로, 서브 좌표 정보를 이용한 경우의 부호화 효율의 개선 효과에 대해 설명한다. 도 53은, 이 효과를 설명하기 위한 도면이다. 예를 들어, 도 53에 나타낸, 기준 좌표로부터 먼 위치의 삼차원점 A를 부호화하기 위해서는, 많은 비트수가 필요해진다. 여기서, 서브 좌표와 삼차원점 A의 거리는, 기준 좌표와 삼차원점 A의 거리보다 짧다. 따라서, 기준 좌표를 기준으로 한 삼차원점 A의 좌표를 부호화하는 경우보다, 서브 좌표를 기준으로 한 삼차원점 A의 좌표를 부호화함으로써, 부호화 효율을 개선할 수 있다. 또, 서브 맵의 비트 스트림은, 서브 좌표 정보를 포함한다. 서브 맵의 비트 스트림과 기준 좌표를 복호측(클라이언트)으로 보냄으로써, 복호측에 있어서 서브 맵의 전체 좌표를 복원할 수 있다.
도 54는, 서브 맵의 송신측인 서버(1501)에 의한 처리의 플로차트이다.
우선, 서버(1501)는, 클라이언트(1502)로부터, 클라이언트(1502)의 위치 정보를 포함하는 메시지를 수신한다(S1501). 제어부(1512)는, 기억부(1511)로부터, 클라이언트의 위치 정보에 의거한 서브 맵의 부호화 비트 스트림을 취득한다(S1502). 그리고, 서버(1501)는, 서브 맵의 부호화 비트 스트림과 기준 좌표를 클라이언트(1502)에 송신한다(S1503).
도 55는, 서브 맵의 수신측인 클라이언트(1502)에 의한 처리의 플로차트이다.
우선, 클라이언트(1502)는, 서버(1501)로부터 송신된 서브 맵의 부호화 비트 스트림과 기준 좌표를 수신한다(S1511). 다음으로, 클라이언트(1502)는, 부호화 비트 스트림을 복호함으로써 서브 맵과 서브 좌표 정보를 취득한다(S1512). 다음으로, 클라이언트(1502)는, 기준 좌표와 서브 좌표를 이용하여 서브 맵 내의 차분 좌표를 전체 좌표에 복원한다(S1513).
다음으로, 서브 맵에 관한 정보의 신택스예를 설명한다. 서브 맵의 부호화에 있어서, 삼차원 데이터 부호화 장치는, 각 포인트 클라우드(삼차원점)의 좌표로부터 서브 좌표를 감산함으로써 차분 좌표를 산출한다. 그리고, 삼차원 데이터 부호화 장치는, 각 포인트 클라우드의 값으로서, 차분 좌표를 비트 스트림으로 부호화한다. 또, 부호화 장치는, 서브 좌표를 나타내는 서브 좌표 정보를 비트 스트림의 헤더 정보로서 부호화한다. 이에 의해, 삼차원 데이터 복호 장치는, 각 포인트 클라우드의 전체 좌표를 얻을 수 있다. 예를 들어, 삼차원 데이터 부호화 장치는 서버(1501)에 포함되고, 삼차원 데이터 복호 장치는 클라이언트(1502)에 포함된다.
도 56은, 서브 맵의 신택스예를 나타낸 도면이다. 도 56에 나타낸 NumOfPoint는, 서브 맵에 포함되는 포인트 클라우드수를 나타낸다. sub_coordinate_x, sub_coordinate_y, 및 sub_coordinate_z는, 서브 좌표 정보이다. sub_coordinate_x는, 서브 좌표의 x좌표를 나타낸다. sub_coordinate_y는, 서브 좌표의 y좌표를 나타낸다. sub_coordinate_z는, 서브 좌표의 z좌표를 나타낸다.
또, diff_x[i], diff_y[i], 및 diff_z[i]는, 서브 맵 내의 i번째 포인트 클라우드의 차분 좌표이다. diff_x[i]는, 서브 맵 내의 i번째 포인트 클라우드의 x좌표와 서브 좌표의 x좌표의 차분치를 나타낸다. diff_y[i]는, 서브 맵 내의 i번째 포인트 클라우드의 y좌표와 서브 좌표의 y좌표의 차분치를 나타낸다. diff_z[i]는, 서브 맵 내의 i번째 포인트 클라우드의 z좌표와 서브 좌표의 z좌표의 차분치를 나타낸다.
삼차원 데이터 복호 장치는, i번째의 포인트 클라우드의 전체 좌표인 point_cloud[i]_x, point_cloud[i]_y, 및 point_cloud[i]_z를 하기 식을 이용하여 복호한다. point_cloud[i]_x는, i번째의 포인트 클라우드의 전체 좌표의 x좌표이다. point_cloud[i]_y는, i번째의 포인트 클라우드의 전체 좌표의 y좌표이다. point_cloud[i]_z는, i번째의 포인트 클라우드의 전체 좌표의 z좌표이다.
point_cloud[i]_x=sub_coordinate_x+diff_x[i]
point_cloud[i]_y=sub_coordinate_y+diff_y[i]
point_cloud[i]_z=sub_coordinate_z+diff_z[i]
다음으로, 8진 트리 부호화의 적용의 전환 처리에 대해 설명한다. 삼차원 데이터 부호화 장치는, 서브 맵 부호화 시에, 각 포인트 클라우드를 8진 트리 표현으로 부호화하는(이하, 8진 트리 부호화(octree 부호화)라고 부른다) 것을 이용할지, 서브 좌표로부터의 차분치를 부호화하는(이하, 비8진 트리 부호화(non-octree 부호화)라고 부른다) 것을 이용할지를 선택한다. 도 57은, 이 동작을 모식적으로 나타낸 도면이다. 예를 들어, 삼차원 데이터 부호화 장치는, 서브 맵 내의 포인트 클라우드수가 미리 정해진 역치 이상인 경우에는, 서브 맵에 8진 트리 부호화를 적용한다. 삼차원 데이터 부호화 장치는, 서브 맵 내의 포인트 클라우드수가 상기 역치보다 작은 경우는, 서브 맵에 비8진 트리 부호화를 적용한다. 이에 의해, 삼차원 데이터 부호화 장치는, 서브 맵 내에 포함되는 오브젝트의 형상 및 밀도에 따라 적절히 8진 트리 부호화를 이용할지, 비8진 트리 부호화를 이용할지를 선택할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
또, 삼차원 데이터 부호화 장치는, 서브 맵에 8진 트리 부호화와 비8진 트리 부호화 중 어느 쪽을 적용했는지를 나타내는 정보(이하, 8진 트리 부호화 적용 정보라고 부른다)를, 서브 맵의 헤더 등에 부가한다. 이에 의해, 삼차원 데이터 복호 장치는, 비트 스트림이, 서브 맵이 8진 트리 부호화됨으로써 얻어진 비트 스트림인지, 서브 맵이 비8진 트리 부호화됨으로써 얻어진 비트 스트림인지를 판별할 수 있다.
또, 삼차원 데이터 부호화 장치는, 8진 트리 부호화와 비8진 트리 부호화의 각각을 동일한 포인트 클라우드에 적용했을 때의 부호화 효율을 산출하여, 부호화 효율이 좋은 부호화 방식을 서브 맵에 적용해도 된다.
도 58은, 이 전환을 행하는 경우의 서브 맵의 신택스예를 나타낸 도면이다. 도 58에 나타낸 coding_type는, 부호화 타입을 나타내는 정보이며, 상기 8진 트리 부호화 적용 정보이다. coding_type=00은, 8진 트리 부호화가 적용된 것을 나타낸다. coding_type=01은, 비8진 트리 부호화가 적용된 것을 나타낸다. coding_type=10 또는 11은, 상기 외의 다른 부호화 방식 등이 적용된 것을 나타낸다.
부호화 타입이 비8진 트리 부호화(non_octree)인 경우, 서브 맵은, NumOfPoint와, 서브 좌표 정보(sub_coordinate_x, sub_coordinate_y, 및 sub_coordinate_z)를 포함한다.
부호화 타입이 8진 트리 부호화(octree)인 경우, 서브 맵은, octree_info를 포함한다. octree_info는, 8진 트리 부호화에 필요한 정보이며, 예를 들어 depth 정보 등을 포함한다.
부호화 타입이 비8진 트리 부호화(non_octree)인 경우, 서브 맵은, 차분 좌표(diff_x[i], diff_y[i], 및 diff_z[i])를 포함한다.
부호화 타입이 8진 트리 부호화(octree)인 경우, 서브 맵은, 8진 트리 부호화에 관한 부호화 데이터인 octree_data를 포함한다.
또한, 여기서는, 포인트 클라우드의 좌표계로서 xyz 좌표계가 이용되는 예를 나타내었지만, 극좌표계가 이용되어도 된다.
도 59는, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 처리 대상의 서브 맵인 대상 서브 맵 내의 포인트 클라우드수를 산출한다(S1521). 다음으로, 삼차원 데이터 부호화 장치는, 산출된 포인트 클라우드수가 미리 정해진 역치 이상인지의 여부를 판정한다(S1522).
포인트 클라우드수가 역치 이상인 경우(S1522에서 Yes), 삼차원 데이터 부호화 장치는, 대상 서브 맵에 8진 트리 부호화를 적용한다(S1523). 또, 삼차원점 데이터 부호화 장치는, 대상 서브 맵에 8진 트리 부호화를 적용한 것을 나타내는 8진 트리 부호화 적용 정보를 비트 스트림의 헤더에 부가한다(S1525).
한편, 포인트 클라우드수가 역치 미만인 경우(S1522에서 No), 삼차원 데이터 부호화 장치는, 대상 서브 맵에 비8진 트리 부호화를 적용한다(S1524). 또, 삼차원점 데이터 부호화 장치는, 대상 서브 맵에 비8진 트리 부호화를 적용한 것을 나타내 는 8진 트리 부호화 적용 정보를 비트 스트림의 헤더에 부가한다(S1525).
도 60은, 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더로부터 8진 트리 부호화 적용 정보를 복호한다(S1531). 다음으로, 삼차원 데이터 복호 장치는, 복호한 8진 트리 부호화 적용 정보에 의거하여, 대상 서브 맵에 적용된 부호화 타입이 8진 트리 부호화인지의 여부를 판정한다(S1532).
8진 트리 부호화 적용 정보에 의해 나타내어지는 부호화 타입이 8진 트리 부호화인 경우(S1532에서 Yes), 삼차원 데이터 복호 장치는, 8진 트리 복호에 의해 대상 서브 맵을 복호한다(S1533). 한편, 8진 트리 부호화 적용 정보에 의해 나타내어지는 부호화 타입이 비8진 트리 부호화인 경우(S1532에서 No), 삼차원 데이터 복호 장치는, 비8진 트리 복호에 의해 대상 서브 맵을 복호한다(S1534).
이하, 본 실시 형태의 변형예에 대해 설명한다. 도 61~도 63은, 부호화 타입의 전환 처리의 변형예의 동작을 모식적으로 나타낸 도면이다.
도 61에 나타낸 바와 같이, 삼차원 데이터 부호화 장치는, 8진 트리 부호화를 적용할지 비8진 트리 부호화를 적용할지를 스페이스마다 선택해도 된다. 이 경우는, 삼차원 데이터 부호화 장치는, 8진 트리 부호화 적용 정보를 스페이스의 헤더에 부가한다. 이에 의해, 삼차원 데이터 복호 장치는, 8진 트리 부호화가 적용되었는지의 여부를 스페이스마다 판단할 수 있다. 또, 이 경우, 삼차원 데이터 부호화 장치는, 스페이스마다 서브 좌표를 설정하고, 스페이스 내의 각 포인트 클라우드의 좌표로부터 서브 좌표의 값을 뺀 차분치를 부호화한다.
이에 의해, 삼차원 데이터 부호화 장치는, 스페이스 내의 오브젝트의 형상 또는 포인트 클라우드수에 따라 8진 트리 부호화를 적용할지의 여부를 적절히 전환할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
또, 도 62에 나타낸 바와 같이, 삼차원 데이터 부호화 장치는, 8진 트리 부호화를 적용할지 비8진 트리 부호화를 적용할지를 볼륨마다 선택해도 된다. 이 경우는, 삼차원 데이터 부호화 장치는, 8진 트리 부호화 적용 정보를 볼륨의 헤더에 부가한다. 이에 의해, 삼차원 데이터 복호 장치는, 8진 트리 부호화가 적용되었는지의 여부를 볼륨마다 판단할 수 있다. 또, 이 경우, 삼차원 데이터 부호화 장치는, 볼륨마다 서브 좌표를 설정하고, 볼륨 내의 각 포인트 클라우드의 좌표로부터 서브 좌표의 값을 뺀 차분치를 부호화한다.
이에 의해, 삼차원 데이터 부호화 장치는, 볼륨 내의 오브젝트의 형상 또는 포인트 클라우드수에 따라 8진 트리 부호화를 적용할지의 여부를 적절히 전환할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
또, 상기 설명에서는, 비8진 트리 부호화로서, 각 포인트 클라우드의 좌표로부터 서브 좌표를 뺀 차분을 부호화하는 예를 나타내었지만, 반드시 이것에 한정되지 않으며, 8진 트리 부호화 이외의 어떠한 부호화 방법으로 부호화해도 된다. 예를 들어, 도 63에 나타낸 바와 같이, 삼차원 데이터 부호화 장치는, 비8진 트리 부호화로서, 서브 좌표로부터의 차분이 아니라, 서브 맵, 스페이스, 또는 볼륨 내의 포인트 클라우드의 값 그 자체를 부호화하는 방식(이하, 원좌표 부호화라고 부른다)을 이용해도 된다.
그 경우는, 삼차원 데이터 부호화 장치는, 대상 공간(서브 맵, 스페이스, 또는 볼륨)에 원좌표 부호화가 적용된 것을 나타내는 정보를 헤더에 저장한다. 이에 의해, 삼차원 데이터 복호 장치는, 대상 공간에 원좌표 부호화가 적용되었는지의 여부를 판단할 수 있다.
또, 원좌표 부호화를 적용하는 경우에는, 삼차원 데이터 부호화 장치는, 원좌표에 양자화 및 산술 부호화를 적용하지 않고 부호화를 행해도 된다. 또, 삼차원 데이터 부호화 장치는, 원좌표를 미리 정해진 고정의 비트 길이로 부호화해도 된다. 이에 의해, 삼차원 데이터 부호화 장치는, 어느 타이밍에 일정한 비트 길이의 스트림을 생성할 수 있다.
또, 상기 설명에서는, 비8진 트리 부호화로서, 각 포인트 클라우드의 좌표로부터 서브 좌표를 뺀 차분을 부호화하는 예를 나타내었지만, 반드시 이것에 한정되지 않는다.
예를 들어, 삼차원 데이터 부호화 장치는, 각 포인트 클라우드의 좌표간의 차분치를 차례로 부호화해도 된다. 도 64는, 이 경우의 동작을 설명하기 위한 도면이다. 예를 들어, 도 64에 나타낸 예에서는, 삼차원 데이터 부호화 장치는, 포인트 클라우드 PA를 부호화할 때에, 서브 좌표를 예측 좌표로서 이용하여, 포인트 클라우드 PA의 좌표와 예측 좌표의 차분치를 부호화한다. 또, 삼차원 데이터 부호화 장치는, 포인트 클라우드 PB를 부호화할 때에는, 포인트 클라우드 PA의 좌표를 예측 좌표로서 이용하여, 포인트 클라우드 PB와 예측 좌표의 차분치를 부호화한다. 또, 삼차원 데이터 부호화 장치는, 포인트 클라우드 PC를 부호화할 때에는, 포인트 클라우드 PB를 예측 좌표로서 이용하여, 포인트 클라우드 PB와 예측 좌표의 차분치를 부호화한다. 이와 같이, 삼차원 데이터 부호화 장치는, 복수의 포인트 클라우드에 스캔순을 설정하고, 처리 대상의 대상 포인트 클라우드의 좌표와, 대상 포인트 클라우드에 대해 스캔순으로 직전의 포인트 클라우드의 좌표의 차분치를 부호화해도 된다.
또, 상기 설명에서는, 서브 좌표는, 서브 맵의 좌측 하단 앞쪽의 모서리의 좌표였지만, 서브 좌표의 위치는 이것에 한정되지 않는다. 도 65~도 67은, 서브 좌표의 위치의 다른 예를 나타낸 도면이다. 서브 좌표는, 서브 좌표의 설정 위치는, 대상 공간(서브 맵, 스페이스, 또는 볼륨) 내의 어느 좌표에 설정되어도 된다. 즉, 서브 좌표는, 상술한 바와 같이, 대상 공간의 좌측 하단 앞쪽의 모서리의 좌표여도 된다. 도 65에 나타낸 바와 같이, 서브 좌표는, 대상 공간의 중심의 좌표여도 된다. 도 66에 나타낸 바와 같이, 서브 좌표는, 대상 공간의 우측 상단 안쪽의 모서리의 좌표여도 된다. 또, 서브 좌표는, 대상 공간의 좌측 하단 앞쪽 또는 우측 상단 안쪽의 모서리의 좌표에 한정되지 않으며, 대상 공간의 어떠한 모서리의 좌표여도 된다.
또, 서브 좌표의 설정 위치는, 대상 공간(서브 맵, 스페이스, 또는 볼륨) 내의 어느 포인트 클라우드의 좌표와 동일해도 된다. 예를 들어, 도 67에 나타낸 예에서는, 서브 좌표의 좌표는, 포인트 클라우드 PD의 좌표와 일치한다.
또, 본 실시 형태에서는, 8진 트리 부호화를 적용할지, 비8진 트리 부호화를 적용할지를 전환하는 예를 나타내었지만, 반드시 이것에 한정되지는 않는다. 예를 들어, 삼차원 데이터 부호화 장치는, 8진 트리 이외의 다른 트리 구조를 적용할지, 당해 트리 구조 이외의 비트리 구조를 적용할지를 전환해도 된다. 예를 들어, 다른 트리 구조란, 좌표축의 하나에 수직인 평면을 사용하여 분할을 행하는 kd 트리 등이다. 또한, 다른 트리 구조로서, 어떠한 방식을 이용해도 된다.
또, 본 실시 형태에서는, 포인트 클라우드가 갖는 좌표 정보를 부호화하는 예를 나타내었지만, 반드시 이것에 한정되지는 않는다. 삼차원 데이터 부호화 장치는, 예를 들어, 색 정보, 삼차원 특징량 또는, 가시광의 특징량 등도 좌표 정보와 동일한 방법으로 부호화해도 된다. 예를 들어, 삼차원 데이터 부호화 장치는, 서브 맵 내의 각 포인트 클라우드가 갖는 색 정보의 평균치를 서브 색 정보(sub-color)로 설정하고, 각 포인트 클라우드의 색 정보와 서브 색 정보의 차분을 부호화해도 된다.
또, 본 실시 형태에서는, 포인트 클라우드의 수 등에 따라 부호화 효율이 좋은 부호화 방식(8진 트리 부호화 또는 비8진 트리 부호화)을 선택하는 예를 나타내었지만, 반드시 이것에 한정되지는 않는다. 예를 들어, 서버측인 삼차원 데이터 부호화 장치는, 8진 트리 부호화에 의해 부호화한 포인트 클라우드의 비트 스트림, 비8진 트리 부호화에 의해 부호화한 포인트 클라우드의 비트 스트림, 및 그 양쪽 모두에 의해 부호화한 포인트 클라우드의 비트 스트림을 유지해 두고, 통신 환경 또는 삼차원 데이터 복호 장치의 처리 능력에 따라, 삼차원 데이터 복호 장치에 송신하는 비트 스트림을 전환해도 된다.
도 68은, 8진 트리 부호화의 적용을 전환하는 경우의 볼륨의 신택스예를 나타낸 도면이다. 도 68에 나타낸 신택스는, 도 58에 나타낸 신택스와 기본적으로는 동일하지만, 각 정보가 볼륨 단위의 정보인 점이 다르다. 구체적으로는, NumOfPoint는, 볼륨에 포함되는 포인트 클라우드수를 나타낸다. sub_coordinate_x, sub_coordinate_y, 및 sub_coordinate_z는, 볼륨의 서브 좌표 정보이다.
또, diff_x[i], diff_y[i], 및 diff_z[i]는, 볼륨 내의 i번째 포인트 클라우드의 차분 좌표이다. diff_x[i]는, 볼륨 내의 i번째 포인트 클라우드의 x좌표와 서브 좌표의 x좌표의 차분치를 나타낸다. diff_y[i]는, 볼륨 내의 i번째 포인트 클라우드의 y좌표와 서브 좌표의 y좌표의 차분치를 나타낸다. diff_z[i]는, 볼륨 내의 i번째 포인트 클라우드의 z좌표와 서브 좌표의 z좌표의 차분치를 나타낸다.
또한, 스페이스에 있어서의 볼륨의 상대 위치를 계산할 수 있는 경우는, 삼차원 데이터 부호화 장치는, 서브 좌표 정보를 볼륨의 헤더에 포함시키지 않아도 된다. 즉, 삼차원 데이터 부호화 장치는, 서브 좌표 정보를 헤더에 포함시키지 않고, 스페이스에 있어서의 볼륨의 상대 위치를 계산하여, 계산한 위치를 각 볼륨의 서브 좌표로서 이용해도 된다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 공간 단위(예를 들어, 서브 맵, 스페이스 또는 볼륨) 중 대상 공간 단위를 8진 트리 구조로 부호화할지의 여부를 판정한다(예를 들어, 도 59의 S1522). 예를 들어, 삼차원 데이터 부호화 장치는, 대상 공간 단위에 포함되는 삼차원점의 수가 미리 정해진 역치보다 많은 경우, 대상 공간 단위를 8진 트리 구조로 부호화한다고 판정한다. 또, 삼차원 데이터 부호화 장치는, 대상 공간 단위에 포함되는 삼차원점의 수가 상기 역치 이하인 경우, 대상 공간 단위를 8진 트리 구조로 부호화하지 않는다고 판정한다.
대상 공간 단위를 8진 트리 구조로 부호화한다고 판정된 경우(S1522에서 Yes), 삼차원 데이터 부호화 장치는, 대상 공간 단위를 8진 트리 구조를 이용하여 부호화한다(S1523). 또, 대상 공간 단위를 8진 트리 구조로 부호화하지 않는다고 판정된 경우(S1522에서 No), 삼차원 데이터 부호화 장치는, 대상 공간 단위를 8진 트리 구조와는 다른 방식으로 부호화한다(S1524). 예를 들어, 삼차원 데이터 부호화 장치는, 다른 방식에서는, 대상 공간 단위에 포함되는 삼차원점의 좌표를 부호화한다. 구체적으로는, 삼차원 데이터 부호화 장치는, 다른 방식에서는, 대상 공간 단위의 기준 좌표와, 대상 공간 단위에 포함되는 삼차원점의 좌표의 차분을 부호화한다.
다음으로, 삼차원 데이터 부호화 장치는, 대상 공간 단위를 8진 트리 구조로 부호화할지의 여부를 나타내는 정보를 비트 스트림에 부가한다(S1525).
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 부호화 신호의 데이터량을 삭감할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들어, 삼차원 데이터 부호화 장치는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 대상 공간 단위(예를 들어, 서브 맵, 스페이스 또는 볼륨) 중 대상 공간 단위를 8진 트리 구조로 복호할지의 여부를 나타내는 정보를 비트 스트림으로부터 복호한다(예를 들어, 도 60의 S1531). 상기 정보에 의해 대상 공간 단위를 8진 트리 구조로 복호한다고 나타내어지는 경우(S1532에서 Yes), 삼차원 데이터 복호 장치는, 대상 공간 단위를 8진 트리 구조를 이용하여 복호한다(S1533).
상기 정보에 의해 상기 대상 공간 단위를 8진 트리 구조로 복호하지 않는다고 나타내어지는 경우(S1532에서 No), 삼차원 데이터 복호 장치는, 대상 공간 단위를 8진 트리 구조와는 다른 방식으로 복호한다(S1534). 예를 들어, 삼차원 데이터 복호 장치는, 다른 방식에서는, 대상 공간 단위에 포함되는 삼차원점의 좌표를 복호한다. 구체적으로는, 삼차원 데이터 복호 장치는, 다른 방식에서는, 대상 공간 단위의 기준 좌표와, 대상 공간 단위에 포함되는 삼차원점의 좌표의 차분을 복호한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 부호화 신호의 데이터량을 삭감할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들어, 삼차원 데이터 복호 장치는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 9)
본 실시 형태에서는, 8진 트리 구조 등의 트리 구조의 부호화 방법에 대해 설명한다.
중요 영역(important area)을 식별하여, 중요 영역의 삼차원 데이터를 우선적으로 복호함으로써, 효율을 향상시킬 수 있다.
도 69는, 삼차원 지도에 있어서의 중요 영역의 예를 나타낸 도면이다. 중요 영역은, 예를 들어 삼차원 지도 중의 삼차원점 중, 특징량의 값이 큰 삼차원점을 일정수 이상 포함하는 영역이다. 또는, 중요 영역은, 예를 들어, 차재 등의 클라이언트가 자기 위치 추정을 행하는 경우에 필요한 삼차원점을 일정수 이상 포함하는 영역이어도 된다. 또는, 중요 영역은, 사람의 삼차원 모델에 있어서의 얼굴의 영역이어도 된다. 이와 같이 중요 영역은, 어플리케이션마다 정의 가능하고, 어플리케이션에 따라 중요 영역을 전환해도 된다.
본 실시 형태에서는 8진 트리 구조 등을 표현하는 방식으로서, 어큐펀시 부호화(어큐펀시 부호화)와, 로케이션 부호화(Location Coding)가 이용된다. 또, 어큐펀시 부호화에 의해 얻어진 비트열을 어큐펀시 부호(Occupancy code)라고 부른다. 로케이션 부호화에 의해 얻어진 비트열을 로케이션 부호(Location code)라고 부른다.
도 70은, 어큐펀시 부호의 일례를 나타낸 도면이다. 도 70은 4진 트리 구조의 어큐펀시 부호의 예를 나타낸다. 도 70에서는, 각 노드에 어큐펀시 부호가 할당된다. 각 어큐펀시 부호는 각 노드의 자식 노드 또는 리프에 삼차원점이 포함되는지의 여부를 나타낸다. 예를 들어 4진 트리의 경우는, 각 노드가 갖는 4개의 자식 노드 또는 리프가 각각 삼차원점을 포함하는지의 여부를 나타내는 정보가 4비트의 어큐펀시 부호로 표시된다. 또, 8진 트리의 경우는, 각 노드가 갖는 8개의 자식 노드 또는 리프가 각각 삼차원점을 포함하는지의 여부를 나타내는 정보가 8비트의 어큐펀시 부호로 표시된다. 또한, 여기서는, 설명의 간략화를 위해 4진 트리 구조를 예로 설명을 행하지만 8진 트리 구조에 대해서도 동일하게 적용할 수 있다. 예를 들어, 도 70에 나타낸 바와 같이, 어큐펀시 부호는, 도 40 등에서 설명한 폭 우선으로 노드와 리프를 스캔한 비트예이다. 어큐펀시 부호에서는, 복수의 삼차원점의 정보를 고정순으로 복호하기 때문에, 임의의 삼차원점의 정보를 우선하여 복호할 수는 없다. 또한, 어큐펀시 부호는, 도 40 등에서 설명한 깊이 우선으로 노드와 리프를 스캔한 비트열이어도 된다.
이하, 로케이션 부호화에 대해 설명한다. 로케이션 부호를 이용함으로써 8진 트리 구조에 있어서의 중요한 부분을 직접적으로 복호할 수 있다. 또, 심층에 있는 중요 삼차원점을 효율적으로 부호화할 수 있다.
도 71은, 로케이션 부호화를 설명하기 위한 도면이며, 4진 트리 구조의 일례를 나타낸 도면이다. 도 71에 나타낸 예에서는, 4진 트리 구조에 의해 삼차원점 A~I가 표시된다. 또, 삼차원점 A 및 C가 중요 영역에 포함되는 중요 삼차원점이다.
도 72는, 도 71에 나타낸 4진 트리 구조에 있어서의 중요 삼차원점 A 및 C를 표시하는 어큐펀시 부호 및 로케이션 부호를 나타낸 도면이다.
로케이션 부호화에서는, 트리 구조에 있어서, 부호화 대상의 삼차원점인 대상 삼차원점이 속하는 리프에 도달할 때까지의 경로에 존재하는 노드의 인덱스와, 리프의 인덱스를 부호화한다. 여기서, 인덱스란, 각 노드 및 리프에 할당하는 수치이다. 바꿔 말하면, 인덱스란, 대상 노드의 복수의 자식 노드를 식별하기 위한 식별자이다. 도 71에 나타낸 바와 같이 4진 트리의 경우에는, 인덱스는 0~3 중 어느 하나를 나타낸다.
예를 들어, 도 71에 나타낸 4진 트리 구조에서는, 리프 A가 대상 삼차원점인 경우, 리프 A는 0→2→1→0→1→2→1로 표현된다. 여기서, 각 인덱스의 최대치가 오른쪽 그림의 경우 4(2bit로 표현 가능)이므로, 리프 A의 로케이션 부호에 필요한 비트수는 7×2bit=14bit이다. 리프 C가 부호화 대상인 경우도 동일하게 필요 비트수는 14bit이다. 또한, 8진 트리의 경우는, 각 인덱스의 최대치는 8(3bit로 표현 가능)이므로, 3bit×리프의 깊이로 필요 비트수를 산출할 수 있다. 또한, 삼차원 데이터 부호화 장치는, 각 인덱스를 바이너리화 후, 엔트로피 부호화하여 데이터량을 삭감해도 된다.
또, 도 72에 나타낸 바와 같이, 어큐펀시 부호에서는, 리프 A 및 C를 복호하기 위해서는, 그 상층의 모든 노드를 복호할 필요가 있다. 한편, 로케이션 부호에서는 리프 A 및 C의 데이터만을 복호할 수 있다. 이에 의해, 도 72에 나타낸 바와 같이, 로케이션 부호를 이용함으로써 어큐펀시 부호에 비해, 비트수를 삭감할 수 있다.
또, 도 72에 나타낸 바와 같이, 로케이션 부호의 일부 또는 모두에 대해, LZ77 등의 사전식 압축을 행함으로써, 또한 부호량을 삭감할 수 있다.
다음으로, LiDAR로 얻어진 삼차원점(포인트 클라우드)에 대해 로케이션 부호화를 적용하는 예를 설명한다. 도 73은, LiDAR로 얻어진 삼차원점의 예를 나타낸 도면이다. LiDAR로 얻어진 삼차원점은, 성기다. 즉, 이 삼차원점을 어큐펀시 부호로 표시한 경우, 값 제로의 수가 많아진다. 또, 이 삼차원점에는, 높은 삼차원 정밀도가 요구된다. 즉, 8진 트리 구조의 계층이 깊어진다.
도 74는, 이러한 성긴 깊은 8진 트리 구조의 예를 나타낸 도면이다. 도 74에 나타낸 8진 트리 구조의 어큐펀시 부호는 136비트(=8비트×17노드)이다. 또, 깊이가 6이며, 삼차원점이 6개 존재하므로, 로케이션 부호는, 3비트×6×6=108비트이다. 즉, 로케이션 부호는 어큐펀시 부호에 대해, 20%의 부호량의 삭감이 가능하다. 이와 같이, 성긴 깊은 8진 트리 구조에 대해 로케이션 부호화를 적용함으로써 부호량을 저감할 수 있다.
이하, 어큐펀시 부호와 로케이션 부호의 부호량에 대해 설명한다. 8진 트리 구조의 깊이가 10인 경우, 삼차원점의 최대수는, 810=1073741824개이다. 또, 8진 트리 구조의 어큐펀시 부호의 비트수 Lo은, 이하로 나타내어진다.
Lo=8+82+…+810=127133512비트
따라서, 1삼차원점당의 비트수는, 1.143비트이다. 또한, 어큐펀시 부호에서는, 이 비트수는, 8진 트리 구조에 포함되는 삼차원점의 수가 변화해도 변화하지 않는다.
한편, 로케이션 부호에서는, 1삼차원점당의 비트수는, 8진 트리 구조의 깊이에 직접 영향을 받는다. 구체적으로는, 1삼차원점당의 로케이션 부호의 비트수는, 3비트×깊이 10=30비트이다.
따라서, 8진 트리 구조의 로케이션 부호의 비트수 Ll은, 이하로 나타내어진다.
Ll=30×N
여기서 N은, 8진 트리 구조에 포함되는 삼차원점의 수이다.
따라서, N<Lo/30=40904450.4인 경우, 즉, 삼차원점의 수가 40904450개보다 적은 경우, 로케이션 부호의 부호량이 어큐펀시 부호의 부호량보다 적어진다(Ll<Lo).
이와 같이, 삼차원점이 적은 경우에는, 어큐펀시 부호의 부호량보다 로케이션 부호의 부호량이 적어지고, 삼차원점이 많은 경우에는, 어큐펀시 부호의 부호량보다 로케이션 부호의 부호량이 많아진다.
따라서, 삼차원 데이터 부호화 장치는, 입력된 삼차원점의 수에 따라, 로케이션 부호화와 어큐펀시 부호화 중 어느 것을 이용할지를 전환해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, 로케이션 부호화와 어큐펀시 부호화 중 어느 쪽으로 부호화를 행하였는지를 나타내는 정보를 비트 스트림의 헤더 정보 등에 부가해도 된다.
이하, 로케이션 부호화와 어큐펀시 부호화를 조합한 혼합 부호화에 대해 설명한다. 조밀한 중요 영역을 부호화하는 경우에는, 로케이션 부호화와 어큐펀시 부호화를 조합한 혼합 부호화가 유효하다. 도 75는, 이 예를 나타낸 도면이다. 도 75에 나타낸 예에서는, 중요 삼차원점이 조밀하게 배치되어 있다. 이 경우, 삼차원 테이터 부호화 장치는, 깊이가 얕은 상층에 대해서는 로케이션 부호화를 행하고, 하층에 대해서는 어큐펀시 부호화를 이용한다. 구체적으로는, 최심 공통 노드까지는 로케이션 부호화가 이용되고, 최심 공통 노드보다 심층에서는 어큐펀시 부호화가 이용된다. 여기서, 최심 공통 노드란, 복수의 중요 삼차원점의 공통의 선조가 되는 노드 중, 가장 심층의 노드이다.
다음으로, 압축 효율을 우선한 혼합 부호화에 대해 설명한다. 삼차원 데이터 부호화 장치는, 8진 트리의 부호화에 있어서 미리 정해진 룰에 따라, 로케이션 부호화와 어큐펀시 부호화를 전환해도 된다.
도 76은, 이 룰의 일례를 나타낸 도면이다. 우선, 삼차원 데이터 부호화 장치는, 각 레벨(깊이)에 있어서의 삼차원점이 포함되는 노드의 비율을 확인한다. 당해 비율이 미리 정해진 역치보다 높은 경우, 삼차원 데이터 부호화 장치는, 대상 레벨의 상층 중 몇 개의 노드를 어큐펀시 부호화한다. 예를 들어, 삼차원 데이터 부호화 장치는, 대상 레벨로부터 최심 공통 노드까지의 레벨에 어큐펀시 부호화를 적용한다.
예를 들어, 도 76에 나타낸 예에서는, 제3 레벨에 있어서의 삼차원점이 포함되는 노드의 비율이 역치보다 높다. 따라서, 삼차원 데이터 부호화 장치는, 당해 제3 레벨로부터 최심 공통 노드까지의 제2 레벨 및 제3 레벨에 대해 어큐펀시 부호화를 적용하고, 그 이외의 제1 레벨 및 제4 레벨에 대해서는 로케이션 부호화를 적용한다.
상기 역치의 산출 방법에 대해 설명한다. 8진 트리 구조의 1층에는, 1개의 루트 노드와 8개의 자식 노드가 존재한다. 따라서, 어큐펀시 부호화에서는, 8진 트리 구조의 1층을 부호화하기 위해 8비트가 필요하다. 한편, 로케이션 부호화에서는, 삼차원점이 포함되는 자식 노드마다 3비트가 필요하다. 따라서, 삼차원점이 포함되는 노드의 수가 2보다 큰 경우, 어큐펀시 부호화가 로케이션 부호화보다 효과적이다. 즉, 이 케이스에서는, 역치는 2이다.
이하, 상술한 로케이션 부호화, 어큐펀시 부호화 또는 혼합 부호화에 의해 생성되는 비트 스트림의 구성예를 설명한다.
도 77은, 로케이션 부호화에 의해 생성되는 비트 스트림의 일례를 나타낸 도면이다. 도 77에 나타낸 바와 같이 로케이션 부호화에 의해 생성되는 비트 스트림은, 헤더와, 복수의 로케이션 부호를 포함한다. 각 로케이션 부호화는, 1개의 삼차원점에 대한다.
이 구성에 의해, 삼차원 데이터 복호 장치는, 복수의 삼차원점을 개별적으로 고정밀도로 복호할 수 있다. 또한, 도 77은 4진 트리 구조의 경우의 비트 스트림의 예를 나타낸다. 8진 트리 구조의 경우에는, 각 인덱스는 0~7의 값을 취할 수 있다.
또, 삼차원 데이터 부호화 장치는, 1개의 삼차원점을 표시하는 인덱스의 열을 바이너리화한 다음 엔트로피 부호화해도 된다. 예를 들어, 인덱스의 열이 0121인 경우, 삼차원 데이터 부호화 장치는, 0121을 00011001로 바이너리화하고, 이 비트열에 산술 부호화를 행해도 된다.
도 78은, 중요 삼차원점을 포함하는 경우의 혼합 부호화에 의해 생성되는 비트 스트림의 일례를 나타낸 도면이다. 도 78에 나타낸 바와 같이, 상층의 로케이션 부호와, 하층의 중요 삼차원점의 어큐펀시 부호와, 하층의 중요 삼차원점 이외의 비중요 삼차원점의 어큐펀시 부호가 이 순서로 배치된다. 또한, 도 78에 나타낸 로케이션 부호길이는, 그 후에 이어지는 로케이션 부호의 부호량을 나타낸다. 또, 어큐펀시 부호량은, 그 후에 이어지는 어큐펀시 부호의 부호량을 나타낸다.
이 구성에 의해, 삼차원 데이터 복호 장치는, 어플리케이션에 따라 상이한 복호 계획을 선택할 수 있다.
또, 중요 삼차원점의 부호화 데이터는, 비트 트스림의 선두 부근에 저장되고, 중요 영역에 포함되지 않는 비중요 삼차원점의 부호화 데이터는 중요 삼차원점의 부호화 데이터의 뒤에 저장된다.
도 79는, 도 78에 나타낸 중요 삼차원점의 어큐펀시 부호에 의해 표시되는 트리 구조를 나타낸 도면이다. 도 80은, 도 78에 나타낸 비중요 삼차원점의 어큐펀시 부호에 의해 표시되는 트리 구조를 나타낸 도면이다. 도 79에 나타낸 바와 같이, 중요 삼차원점의 어큐펀시 부호에 있어서는, 비중요 삼차원점에 관한 정보는 제외되어 있다. 구체적으로는, 깊이 5의 노드 0 및 노드 3에는, 중요 삼차원점이 포함되지 않기 때문에, 노드 0 및 노드 3에는 삼차원점이 포함되지 않는 것을 나타내는 값 0이 할당된다.
한편, 도 80에 나타낸 바와 같이, 비중요 삼차원점의 어큐펀시 부호에 있어서는, 중요 삼차원점에 관한 정보는 제외되어 있다. 구체적으로는, 깊이 5의 노드 1에는, 비중요 삼차원점이 포함되지 않기 때문에, 노드 1에는 삼차원점이 포함되지 않는 것을 나타내는 값 0이 할당된다.
이와 같이, 삼차원 데이터 부호화 장치는, 원래의 트리 구조를, 중요 삼차원점을 포함하는 제1 트리 구조와, 비중요 삼차원점을 포함하는 제2 트리 구조로 분할하고, 제1 트리 구조와 제2 트리 구조를 독립하여 어큐펀시 부호화한다. 이에 의해, 삼차원 데이터 복호 장치는, 중요 삼차원점을 우선하여 복호할 수 있다.
다음으로, 효율을 중시한 혼합 부호화에 의해 생성되는 비트 스트림의 구성예를 설명한다. 도 81은, 효율을 중시한 혼합 부호화에 의해 생성되는 비트 스트림의 구성예를 나타낸 도면이다. 도 81에 나타낸 바와 같이, 서브트리마다, 서브트리 루트 로케이션과, 어큐펀시 부호량과, 어큐펀시 부호가 이 순서로 배치된다. 도 81에 나타낸 서브트리 로케이션은, 서브트리의 루트의 로케이션 부호이다.
상기의 구성에 있어서, 8진 트리 구조에 로케이션 부호화, 및 어큐펀시 부호화 중 한쪽만이 적용되는 경우에는, 이하가 성립된다.
서브트리의 루트의 로케이션 부호화의 길이가, 8진 트리 구조의 깊이와 동일한 경우에는, 서브트리는 자식 노드를 갖지 않는다. 즉, 트리 구조의 모두에 로케이션 부호화가 적용되어 있다.
서브트리의 루트가 8진 트리 구조의 루트와 동일한 경우, 트리 구조의 모두에 어큐펀시 부호화가 적용되어 있다.
예를 들어, 상기의 룰에 의거하여, 삼차원 데이터 복호 장치는, 비트 스트림에 로케이션 부호가 포함되는지 어큐펀시 부호화가 포함되는지를 판별할 수 있다.
또, 비트 스트림은, 로케이션 부호화, 어큐펀시 부호화, 및 혼합 부호화 중 어느 것이 이용되고 있는지를 나타내는 부호화 모드 정보를 포함해도 된다. 도 82는, 이 경우의 비트 스트림의 예를 나타낸 도면이다. 예를 들어, 도 82에 나타낸 바와 같이, 비트 스트림에, 부호화 모드를 나타내는 2비트의 부호화 모드 정보가 부가된다.
또한, (1) 로케이션 부호화에 있어서의 「삼차원점 수」는, 그 후에 이어지는, 삼차원점의 수를 나타낸다. 또, (2) 어큐펀시 부호화에 있어서의 「어큐펀시 부호량」은, 그 후에 이어지는 어큐펀시 부호의 부호량을 나타낸다. 또, (3) 혼합 부호화(중요 삼차원점)에 있어서의 「중요 서브트리 수」는 중요 삼차원점을 포함하는 서브트리의 수를 나타낸다. 또, (4) 혼합 부호화(효율 중시)에 있어서의 「어큐펀시 서브트리 수」는 어큐펀시 부호화된 서브트리의 수를 나타낸다.
다음으로, 어큐펀시 부호화와 로케이션 부호화의 적용을 전환하기 위해 이용하는 신택스예에 대해 설명한다. 도 83은, 이 신택스예를 나타낸 도면이다.
도 83에 나타낸 isleaf는, 대상 노드가 리프인지의 여부를 나타내는 플래그이다. isleaf=1은, 대상 노드가 리프인 것을 나타내고, isleaf=0은, 대상 노드가 리프가 아니라 노드인 것을 나타낸다.
대상 노드가 리프인 경우에, 비트 스트림에 point_flag가 부가된다. point_flag는, 대상 노드(리프)가 삼차원점을 포함하는지의 여부를 나타내는 플래그이다. point_flag=1은, 대상 노드가 삼차원점을 포함하는 것을 나타내고, point_flag=0은, 대상 노드가 삼차원점을 포함하지 않는 것을 나타낸다.
대상 노드가 리프가 아닌 경우, 비트 스트림에 coding_type가 부가된다. coding_type는, 적용되고 있는 부호화 타입을 나타내는 부호화 타입 정보이다. coding_type=00은, 로케이션 부호화가 적용되고 있는 것을 나타내고, coding_type=01은, 어큐펀시 부호화가 적용되고 있는 것을 나타내며, coding_type=10 또는 11은, 다른 부호화 방식 등이 적용되고 있는 것을 나타낸다.
부호화 타입이 로케이션 부호화인 경우, 비트 스트림에, numPoint와, num_idx[i]와, idx[i][j]가 부가된다.
numPoint는, 로케이션 부호화를 행하는 삼차원점의 수를 나타낸다. num_idx[i]는, 대상 노드로부터 삼차원점 i까지의 인덱스의 수(깊이)를 나타낸다. 로케이션 부호화를 행하는 삼차원점이 모두 동일한 깊이에 있는 경우는, num_idx[i]는 모두 동일한 값이 된다. 따라서, 도 83에 나타낸, for 문(for(i=0;i<numPoint;i++){)의 앞에, 공통의 값으로서 num_idx를 정의해도 된다.
idx[i][j]는, 대상 노드로부터 삼차원점 i까지의 인덱스 중 j번째의 인덱스의 값을 나타낸다. 8진 트리의 경우, idx[i][j]의 비트수는 3비트이다.
또한, 상술한 바와 같이, 인덱스란, 대상 노드의 복수의 자식 노드를 식별하기 위한 식별자이다. 8진 트리의 경우, idx[i][j]는, 0~7 중 어느 하나를 나타낸다. 또, 8진 트리의 경우에는, 8개의 자식 노드가 존재하며, 각 자식 노드는, 대상 노드에 대응하는 대상 블록을 공간적으로 8분할함으로써 얻어지는 8개의 서브 블록의 각각에 대응한다. 따라서, idx[i][j]는, 자식 노드에 대응하는 서브 블록의 삼차원 위치를 나타내는 정보여도 된다. 예를 들어, idx[i][j]는, 서브 블록의 x, y, z의 각각의 위치를 나타내는 각 1비트의 정보를 포함하는 합계 3비트 정보여도 된다.
부호화 타입이 어큐펀시 부호화인 경우, 비트 스트림에, occupancy_code가 부가된다. occupancy_code는, 대상 노드의 어큐펀시 부호이다. 8진 트리의 경우, occupancy_code는, 예를 들어 비트열 「00101000」등의 8비트의 비트열이다.
occupancy_code의 (i+1) 비트째의 값이 1인 경우, 자식 노드의 처리로 이행 한다. 즉, 자식 노드가 다음의 대상 노드로 설정되고, 재귀적으로 비트열이 생성된다.
본 실시 형태에서는, 리프 정보(isleaf, point_flag)를 비트 스트림에 부가함으로써, 8진 트리의 말단을 표시하는 예를 나타내었지만, 반드시 이것에 한정되지 않는다. 예를 들어, 삼차원 데이터 부호화 장치는, 어큐펀시 부호의 개시 노드(루트)로부터 삼차원점이 존재하는 말단(리프)까지의 최대 심도(depth)를, 개시 노드의 헤더부에 부가해도 된다. 그리고, 삼차원 데이터 부호화 장치는, 개시 노드로부터 심도를 늘리면서 재귀적으로 자식 노드의 정보를 비트열화하여, 심도가 최대 심도가 된 시점에서 리프에 도달했다고 판정해도 된다. 또, 삼차원 데이터 부호화 장치는, 최대 심도를 나타내는 정보를, coding type가 어큐펀시 부호화가 된 최초의 노드에 부가해도 되고, 8진 트리의 개시 노드(루트)에 부가해도 된다.
상기와 같이, 삼차원 데이터 부호화 장치는, 각 노드의 헤더 정보로서, 어큐펀시 부호화와 로케이션 부호화를 전환하기 위한 정보를 비트 스트림에 부가해도 된다.
또, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 각 노드의 coding_type, numPoint, num_idx, idx, occupancy_code를, 엔트로피 부호화해도 된다. 예를 들어, 삼차원 데이터 부호화 장치는, 각 값을 2치화한 다음 산술 부호화한다.
또, 상기 신택스에서는, 어큐펀시 부호로서 8진 트리 구조의 깊이 우선의 비트열이 이용되는 경우를 예시하였지만, 반드시 이것에 한정되지 않는다. 삼차원 데이터 부호화 장치는, 어큐펀시 부호로서 8진 트리 구조의 폭 우선의 비트열을 이용해도 된다. 삼차원 데이터 부호화 장치는, 폭 우선의 비트열을 이용하는 경우에도 각 노드의 헤더 정보로서 어큐펀시 부호화와 로케이션 부호화를 전환하기 위한 정보를 비트 스트림에 부가해도 된다.
본 실시 형태에서는, 8진 트리 구조를 예로 나타내었지만, 반드시 이것에 한정되지 않으며, 4진 트리 및 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대해, 상기 수법을 적용해도 된다.
이하, 어큐펀시 부호화와 로케이션 부호화의 적용을 전환하는 부호화 처리의 흐름예를 설명한다. 도 84는, 본 실시 형태에 따른 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점을 8진 트리 구조로 표현한다(S1601). 다음으로, 삼차원 데이터 부호화 장치는, 8진 트리 구조에 있어서의 루트를 대상 노드로 설정한다(S1602). 다음으로, 삼차원 데이터 부호화 장치는, 대상 노드에 대한 노드 부호화 처리를 행함으로써, 8진 트리 구조의 비트열을 생성한다(S1603). 다음으로, 삼차원 데이터 부호화 장치는, 생성된 비트열을 엔트로피 부호화함으로써 비트 스트림을 생성한다(S1604).
도 85는, 노드 부호화 처리(S1603)의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 대상 노드가 리프인지의 여부를 판정한다(S1611). 대상 노드가 리프가 아닌 경우(S1611에서 No), 삼차원 데이터 부호화 장치는, 리프 플래그(isleaf)를 0으로 설정하고, 당해 리프 플래그를 비트열에 부가한다(S1612).
다음으로, 삼차원 데이터 부호화 장치는, 삼차원점을 포함하는 자식 노드의 수가, 미리 정해진 역치보다 많은지를 판정한다(S1613). 또한, 삼차원 데이터 부호화 장치는, 이 역치를 비트열에 부가해도 된다.
삼차원점을 포함하는 자식 노드의 수가, 미리 정해진 역치보다 많은 경우(S1613에서 Yes), 삼차원 데이터 부호화 장치는, 부호화 타입(coding_type)을 어큐펀시 부호화로 설정하고, 당해 부호화 타입을 비트열에 부가한다(S1614).
다음으로, 삼차원 데이터 부호화 장치는, 어큐펀시 부호화 정보를 설정하고, 당해 어큐펀시 부호화 정보를 비트열에 부가한다. 구체적으로는, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 생성하고, 당해 어큐펀시 부호를 비트열에 부가한다(S1615).
다음으로, 삼차원 데이터 부호화 장치는, 어큐펀시 부호에 따라, 다음의 대상 노드를 설정한다(S1616). 구체적으로는, 삼차원 데이터 부호화 장치는, 어큐펀시 부호가 「1」인 미처리의 자식 노드로부터 다음의 대상 노드로 설정한다.
다음으로, 삼차원 데이터 부호화 장치는, 새롭게 설정한 대상 노드에 대해 노드 부호화 처리를 행한다(S1617). 즉, 새롭게 설정한 대상 노드에 대해 도 85에 나타내는 처리가 행해진다.
모든 자식 노드의 처리가 완료되어 있지 않는 경우(S1618에서 No), 단계 S1616 이후의 처리가 재차 행해진다. 한편, 모든 자식 노드의 처리가 완료된 경우(S1618에서 Yes), 삼차원 데이터 부호화 장치는, 노드 부호화 처리를 종료한다.
또, 단계 S1613에 있어서, 삼차원점을 포함하는 자식 노드의 수가, 미리 정해진 역치 이하인 경우(S1613에서 No), 삼차원 데이터 부호화 장치는, 부호화 타입을 로케이션 부호화로 설정하고, 당해 부호화 타입을 비트열에 부가한다(S1619).
다음으로, 삼차원 데이터 부호화 장치는, 로케이션 부호화 정보를 설정하고, 당해 로케이션 부호화 정보를 비트열에 부가한다. 구체적으로는, 삼차원 데이터 부호화 장치는, 로케이션 부호를 생성하고, 당해 로케이션 부호화를 비트열에 부가한다(S1620). 로케이션 부호는, numPoint, num_idx 및 idx를 포함한다.
또, 단계 S1611에 있어서, 대상 노드가 리프인 경우(S1611에서 Yes), 삼차원 데이터 부호화 장치는, 리프 플래그를 1로 설정하고, 당해 리프 플래그를 비트열에 부가한다(S1621). 또, 삼차원 데이터 부호화 장치는, 리프가 삼차원점을 포함하는지의 여부를 나타내는 정보인 포인트 플래그(point_flag)를 설정하고, 당해 포인트 플래그를 비트열에 부가한다(S1622).
다음으로, 어큐펀시 부호화와 로케이션 부호화의 적용을 전환하는 복호 처리의 흐름예를 설명한다. 도 85는, 본 실시 형태에 따른 복호 처리의 플로차트이다.
삼차원 데이터 복호 장치는, 비트 스트림을 엔트로피 복호함으로써 비트열을 생성한다(S1631). 다음으로, 삼차원 데이터 복호 장치는, 얻어진 비트열에 노드 복호 처리를 행함으로써 8진 트리 구조를 복원한다(S1632). 다음으로, 삼차원 데이터 복호 장치는, 복원한 8진 트리 구조로부터 삼차원점을 생성한다(S1633).
도 87은, 노드 복호 처리(S1632)의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트열로부터 리프 플래그(isleaf)를 취득(복호)한다(S1641). 다음으로, 삼차원 데이터 복호 장치는, 리프 플래그에 의거하여 대상 노드가 리프인지의 여부를 판정한다(S1642).
대상 노드가 리프가 아닌 경우(S1642에서 No), 삼차원 데이터 복호 장치는, 비트열로부터 부호화 타입(coding_type)을 취득한다(S1643). 삼차원 데이터 복호 장치는, 부호화 타입이 어큐펀시 부호화인지의 여부를 판정한다(S1644).
부호화 타입이 어큐펀시 부호화인 경우(S1644에서 Yes), 삼차원 데이터 복호 장치는, 비트열로부터 어큐펀시 부호화 정보를 취득한다. 구체적으로는, 삼차원 데이터 복호 장치는, 비트열로부터 어큐펀시 부호를 취득한다(S1645).
다음으로, 삼차원 데이터 복호 장치는, 어큐펀시 부호에 따라, 다음의 대상 노드를 설정한다(S1646). 구체적으로는, 삼차원 데이터 복호 장치는, 어큐펀시 부호가 「1」인 미처리의 자식 노드로부터 다음의 대상 노드로 설정한다.
다음으로, 삼차원 데이터 복호 장치는, 새롭게 설정한 대상 노드에 대해 노드 복호 처리를 행한다(S1647). 즉, 새롭게 설정한 대상 노드에 대해 도 87에 나타낸 처리가 행해진다.
모든 자식 노드의 처리가 완료되어 있지 않는 경우(S1648에서 No), 단계 S1646 이후의 처리가 재차 행해진다. 한편, 모든 자식 노드의 처리가 완료된 경우(S1648에서 Yes), 삼차원 데이터 복호 장치는, 노드 복호 처리를 종료한다.
또, 단계 S1644에 있어서 부호화 타입이 로케이션 부호화인 경우(S1644에서 No), 삼차원 데이터 복호 장치는, 비트열로부터 로케이션 부호화 정보를 취득한다. 구체적으로는, 삼차원 데이터 복호 장치는, 비트열로부터 로케이션 부호를 취득한다(S1649). 로케이션 부호는, numPoint, num_idx 및 idx를 포함한다.
또, 단계 S1642에 있어서 대상 노드가 리프인 경우(S1642에서 Yes), 삼차원 데이터 복호 장치는, 비트열로부터, 리프가 삼차원점을 포함하는지의 여부를 나타내는 정보인 포인트 플래그(point_flag)를 취득한다(S1650).
또한, 본 실시 형태에서는 부호화 타입을 노드마다 전환하는 예를 나타내었지만, 반드시 이에 한정되지 않는다. 부호화 타입은, 볼륨, 스페이스 또는 월드 단위로 고정되어도 된다. 그 경우, 삼차원 데이터 부호화 장치는, 부호화 타입 정보를, 볼륨, 스페이스 또는 월드의 헤더 정보에 부가해도 된다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 제1 방식(로케이션 부호화)으로 표시하는 제1 정보를 생성하고, 제1 정보를 포함하는 비트 스트림을 생성한다. 제1 정보는, 복수의 삼차원점의 각각에 대응하는 삼차원점 정보(로케이션 부호)를 포함한다. 각 삼차원점 정보는, N진 트리 구조에 있어서의 복수의 층의 각각에 대응하는 인덱스(idx)를 포함한다. 각 인덱스는, 대응하는 층에 속하는 N개의 서브 블록 중, 대응하는 삼차원점이 속하는 서브 블록을 나타낸다.
바꿔 말하면, 각 삼차원점 정보는, N진 트리 구조에 있어서, 대응하는 삼차원점까지의 경로를 나타낸다. 각 인덱스는, 대응하는 층(노드)에 속하는 N개의 자식 노드 중, 상기 경로에 포함되는 자식 노드를 나타낸다.
이에 의하면, 당해 삼차원 데이터 부호화 방법은, 삼차원점을 선택적으로 복호 가능한 비트 스트림을 생성할 수 있다.
예를 들어, 삼차원점 정보(로케이션 부호)는, 당해 삼차원점 정보에 포함되는 인덱스의 수를 나타내는 정보(num_idx)를 포함한다. 바꿔 말하면, 당해 정보는, N진 트리 구조에 있어서의, 대응하는 삼차원점까지의 깊이(층수)를 나타낸다.
예를 들어, 제1 정보는, 당해 제1 정보에 포함되는 삼차원점 정보의 수를 나타내는 정보(numPoint)를 포함한다. 바꿔 말하면, 당해 정보는, N진 트리 구조에 포함되는 삼차원점의 수를 나타낸다.
예를 들어, N은 8이며, 인덱스는 3비트이다.
예를 들어, 삼차원 데이터 부호화 장치는, 제1 정보를 생성하는 제1 부호화 모드와, N진 트리 구조를 제2 방식(어큐펀시 부호화)으로 표시하는 제2 정보(어큐펀시 부호)를 생성하고, 제2 정보를 포함하는 비트 스트림을 생성하는 제2 부호화 모드를 갖는다. 제2 정보는, N진 트리 구조에 있어서의 복수의 층에 속하는 복수의 서브 블록의 각각에 대응하고, 대응하는 서브 블록에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 복수 포함한다.
예를 들어, 삼차원 데이터 부호화 장치는, 복수의 삼차원점의 수가 미리 정해진 역치 이하인 경우, 제1 부호화 모드를 이용하고, 복수의 삼차원점의 수가 역치보다 많은 경우, 제2 부호화 모드를 이용한다. 이에 의하면, 당해 삼차원 데이터 부호화 장치는, 비트 스트림의 부호량을 저감할 수 있다.
예를 들어, 제1 정보 및 제2 정보는, 당해 정보가 N진 트리 구조를 제1 방식으로 표시하는 정보인지, 제2 방식으로 표시하는 정보인지를 나타내는 정보(부호화 모드 정보)를 포함한다.
예를 들어, 삼차원 데이터 부호화 장치는, 도 75 등에 나타낸 바와 같이, N진 트리 구조의 일부에 제1 부호화 모드를 이용하고, N진 트리 구조의 다른 일부에 제2 부호화 모드를 이용한다.
예를 들어, 삼차원 데이터 부호화 장치는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 제1 방식(로케이션 부호화)으로 표시하는 제1 정보(로케이션 부호)를 취득한다. 제1 정보는, 복수의 삼차원점의 각각에 대응하는 삼차원점 정보(로케이션 부호)를 포함한다. 각 삼차원점 정보는, N진 트리 구조에 있어서의 복수의 층의 각각에 대응하는 인덱스(idx)를 포함한다. 각 인덱스는, 대응하는 층에 속하는 N개의 서브 블록 중, 대응하는 삼차원점이 속하는 서브 블록을 나타낸다.
바꿔 말하면, 각 삼차원점 정보는, N진 트리 구조에 있어서, 대응하는 삼차원점까지의 경로를 나타낸다. 각 인덱스는, 대응하는 층(노드)에 속하는 N개의 자식 노드 중, 상기 경로에 포함되는 자식 노드를 나타낸다.
삼차원 데이터 복호 장치는, 또한, 삼차원점 정보를 이용하여, 당해 삼차원점 정보에 대응하는 삼차원점을 복원한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 비트 스트림으로부터 삼차원점을 선택적으로 복호할 수 있다.
예를 들어, 삼차원점 정보(로케이션 부호)는, 당해 삼차원점 정보에 포함되는 인덱스의 수를 나타내는 정보(num_idx)를 포함한다. 바꿔 말하면, 당해 정보는, N진 트리 구조에 있어서의, 대응하는 삼차원점까지의 깊이(층수)를 나타낸다.
예를 들어, 제1 정보는, 당해 제1 정보에 포함되는 삼차원점 정보의 수를 나타내는 정보(numPoint)를 포함한다. 바꿔 말하면, 당해 정보는, N진 트리 구조에 포함되는 삼차원점의 수를 나타낸다.
예를 들어, N은 8이며, 인덱스는 3비트이다.
예를 들어, 삼차원 데이터 복호 장치는, 또한, 비트 스트림으로부터, N진 트리 구조를 제2 방식(어큐펀시 부호화)으로 표시하는 제2 정보(어큐펀시 부호)를 취득한다. 삼차원 데이터 복호 장치는, 제2 정보를 이용하여, 복수의 삼차원점을 복원한다. 제2 정보는, N진 트리 구조에 있어서의 복수의 층에 속하는 복수의 서브 블록의 각각에 대응하고, 대응하는 서브 블록에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 복수 포함한다.
예를 들어, 제1 정보 및 제2 정보는, 당해 정보가 N진 트리 구조를 제1 방식으로 표시하는 정보인지, 제2 방식으로 표시하는 정보인지를 나타내는 정보(부호화 모드 정보)를 포함한다.
예를 들어, 도 75 등에 나타낸 바와 같이, N진 트리 구조의 일부는 제1 방식으로 표시되고, N진 트리 구조의 다른 일부는 제2 방식으로 표시된다.
예를 들어, 삼차원 데이터 복호 장치는, 프로세서와, 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 10)
본 실시 형태에서는, 8진 트리 구조 등의 트리 구조의 부호화 방법의 다른 예에 대해서 설명한다. 도 88은, 본 실시 형태에 따른 트리 구조의 일례를 나타내는 도면이다. 또한, 도 88은 4진 트리 구조의 예를 나타낸다.
삼차원점이 포함되는 리프를 유효 리프라고 부르고, 삼차원점이 포함되지 않는 리프를 무효 리프라고 부른다. 유효 리프의 수가 역치 이상인 가지(branch)를 조밀한 가지(dense branch)라고 부른다. 유효 리프의 수가 역치보다 작은 가지를 성긴 가지(sparse branch)라고 부른다.
삼차원 데이터 부호화 장치는, 트리 구조의 어느 층(레이어)에 있어서, 각 가지에 포함되는 삼차원점의 수(즉 유효 리프의 수)를 산출한다. 도 88은, 역치가 5인 경우의 예를 나타낸다. 이 예에서는, 층 1에 2개의 가지가 존재한다. 좌측의 가지에는 7개의 삼차원점이 포함되기 때문에, 좌측의 가지는 조밀한 가지로 판정된다. 우측의 가지에는 2개의 삼차원점이 포함되기 때문에, 우측의 가지는 성긴 가지로 판정된다.
도 89는, 예를 들면, 층 5의 각 가지가 갖는 유효 리프의 수(3D points)의 예를 나타내는 도면이다. 도 89의 횡축은, 층 5의 가지의 식별 번호인 인덱스를 나타낸다. 도 89에 나타내는 바와 같이, 특정의 가지에, 다른 가지에 비해 명백히 많은 삼차원점이 포함된다. 이러한 조밀한 가지에는, 성긴 가지에 비해, 어큐펀시 부호화가 보다 유효하다.
이하, 어큐펀시 부호화와 로케이션 부호화의 적용 방법에 대해서 설명한다. 도 90은, 층 5에 있어서의 각 가지에 포함되는 삼차원점의 수(유효 리프의 수)와 적용하는 부호화 방식의 관계를 나타내는 도면이다. 도 90에 나타내는 바와 같이, 삼차원 데이터 부호화 장치는, 조밀한 가지에 대해서는 어큐펀시 부호화를 적용하고, 성긴 가지에 대해서는 로케이션 부호화를 적용한다. 이에 의해, 부호화 효율을 향상시킬 수 있다.
도 91은, LiDAR 데이터에 있어서의 조밀한 가지 영역의 예를 나타내는 도면이다. 도 91에 나타내는 바와 같이, 영역에 따라서, 각 가지에 포함되는 삼차원점의 수로부터 산출되는 삼차원점의 밀도가 상이하다.
또한, 조밀한 삼차원점(가지)과 성긴 삼차원점(가지)을 분리함으로써 이하의 이점이 있다. LiDAR 센서에 가까울수록 삼차원점의 밀도는 높아진다. 따라서, 소밀에 따라 가지를 분리함으로써, 거리 방향의 구획이 가능해진다. 이러한 구획은, 특정의 어플리케이션에서는 유효하다. 또한, 성긴 가지에 대해서는, 어큐펀시 부호화 이외의 수법을 이용하는 것이 유효하다.
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 2개 이상의 서브 삼차원점군으로 분리하고, 각 서브 삼차원점군에 상이한 부호화 방법을 적용한다.
예를 들면, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 조밀한 가지를 포함하는 서브 삼차원점군 A(조밀한 삼차원점군: dense cloud)와, 성긴 가지를 포함하는 서브 삼차원점군 B(성긴 삼차원점군: sparse cloud)로 분리한다. 도 92는, 도 88에 나타내는 트리 구조로부터 분리된, 조밀한 가지를 포함하는 서브 삼차원점군 A(조밀한 삼차원점군)의 예를 나타내는 도면이다. 도 93은, 도 88에 나타내는 트리 구조로부터 분리된, 성긴 가지를 포함하는 서브 삼차원점군 B(성긴 삼차원점군)의 예를 나타내는 도면이다.
다음에, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A를 어큐펀시 부호화로 부호화하고, 서브 삼차원점군 B를 로케이션 부호화로 부호화한다.
또한, 여기에서는, 상이한 부호화 방법으로서, 상이한 부호화 방식(어큐펀시 부호화와 로케이션 부호화)을 적용하는 예를 나타내었지만, 예를 들면, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B에 동일한 부호화 방식을 이용하고, 또한, 서브 삼차원점군 A와 서브 삼차원점군 B에서 부호화에 이용하는 파라미터를 상이하게 해도 된다.
이하, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 흐름에 대해서 설명한다. 도 94는, 본 실시 형태에 따른 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 서브 삼차원점군으로 분리한다(S1701). 삼차원 데이터 부호화 장치는, 이 분리를 자동적으로 행해도 되고, 유저에 의해 입력된 정보에 의거하여 행해도 된다. 예를 들면, 유저에 의해 서브 삼차원점군의 범위 등이 지정되어도 된다. 또한, 자동적으로 행하는 예로서는, 예를 들면, 입력 데이터가 LiDAR 데이터인 경우에는, 삼차원 데이터 부호화 장치는, 각 점군까지의 거리 정보를 이용하여 분리를 행한다. 구체적으로는, 삼차원 데이터 부호화 장치는, 계측 지점으로부터 일정한 범위 내에 있는 점군과 범위 외에 있는 점군을 분리한다. 또한, 삼차원 데이터 부호화 장치는, 중요한 에어리어와 그렇지 않은 에어리어와 같은 정보를 이용하여 분리를 행해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A를 수법 A로 부호화함으로써 부호화 데이터(부호화 비트 스트림)를 생성한다(S1702). 또한, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 B를 수법 B로 부호화함으로써 부호화 데이터를 생성한다(S1703). 또한, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 B를 수법 A로 부호화해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A의 부호화에 이용한 부호화 파라미터와는 상이한 파라미터를 이용하여 서브 삼차원점군 B를 부호화한다. 예를 들면, 이 파라미터는 양자화 파라미터여도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A의 부호화에 이용한 양자화 파라미터보다 큰 양자화 파라미터를 이용하여, 서브 삼차원점군 B를 부호화한다. 이 경우, 삼차원 데이터 부호화 장치는, 각 서브 삼차원점군의 부호화 데이터의 헤더에 당해 서브 삼차원점군의 부호화에 이용한 양자화 파라미터를 나타내는 정보를 부가해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 단계 S1702에서 얻어진 부호화 데이터와, 단계 S1703에서 얻어진 부호화 데이터를 결합함으로써 비트 스트림을 생성한다(S1704).
또한, 삼차원 데이터 부호화 장치는, 비트 스트림의 헤더 정보로서, 각 서브 삼차원점군을 복호하기 위한 정보를 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 하기와 같은 정보를 부호화해도 된다.
헤더 정보는, 부호화된 서브 삼차원점의 수를 나타내는 정보를 포함해도 된다. 이 예에서는, 이 정보는 2를 나타낸다.
헤더 정보는, 각 서브 삼차원점군에 포함되는 삼차원점의 수와 부호화 방법을 나타내는 정보를 포함해도 된다. 이 예에서는, 이 정보는, 서브 삼차원점군 A에 포함되는 삼차원점의 수와, 서브 삼차원점군 A에 적용한 부호화 방법(수법 A)과, 서브 삼차원점군 B에 포함되는 삼차원점의 수와, 서브 삼차원점군 B에 적용한 부호화 방법(수법 B)을 나타낸다.
헤더 정보는, 각 서브 삼차원점군의 부호화 데이터의 개시 위치, 또는 종단 위치를 식별하기 위한 정보를 포함해도 된다.
또한, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 병렬로 부호화해도 된다. 또는, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B로 차례로 부호화해도 된다.
또한, 서브 삼차원점군으로의 분리 방법은, 상기에 한정되지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 분리 방법을 변화시켜, 복수의 분리 방법의 각각을 이용하여 부호화를 행하고, 각 분리 방법을 이용하여 얻어진 부호화 데이터의 부호화 효율을 산출한다. 그리고, 삼차원 데이터 부호화 장치는, 가장 부호화 효율이 높은 분리 방법을 선택한다. 예를 들면, 삼차원 데이터 부호화 장치는, 복수의 층의 각각에서 삼차원점군을 분리하고, 각각의 경우에 있어서의 부호화 효율을 산출하여, 가장 부호화 효율이 높아지는 분리 방법(즉 분리를 행하는 층)을 선택하고, 선택한 분리 방법으로 서브 삼차원점군을 생성하여 부호화를 행해도 된다.
또한, 삼차원 데이터 부호화 장치는, 부호화 데이터를 결합할 때에, 중요한 서브 삼차원점군의 부호화 정보일수록, 비트 스트림의 선두에 가까운 위치에 배치해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 선두의 비트 스트림을 복호하는 것만으로 중요한 정보를 취득할 수 있으므로, 중요한 정보를 빨리 취득할 수 있는 것이 가능해진다.
다음에, 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 흐름에 대해서 설명한다. 도 95는, 본 실시 형태에 따른 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 예를 들면, 상기 삼차원 데이터 부호화 장치에서 생성된 비트 스트림을 취득한다. 다음에, 삼차원 데이터 복호 장치는, 취득한 비트 스트림으로부터 서브 삼차원점군 A의 부호화 데이터와 서브 삼차원점군 B의 부호화 데이터를 분리한다(S1711). 구체적으로는, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보로부터 각 서브 삼차원점군을 복호하기 위한 정보를 복호하고, 당해 정보를 이용하여 각 서브 삼차원점군의 부호화 데이터를 분리한다.
다음에, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A의 부호화 데이터를 수법 A로 복호함으로써 서브 삼차원점군 A를 얻는다(S1712). 또한, 삼차원 데이터 복호 장치는, 서브 삼차원점군 B의 부호화 데이터를 수법 B로 복호함으로써 서브 삼차원점군 B를 얻는다(S1713). 다음에, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 결합한다(S1714).
또한, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 병렬로 복호해도 된다. 또는, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 차례로 복호해도 된다.
또한, 삼차원 데이터 복호 장치는, 필요한 서브 삼차원점군을 복호해도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A를 복호하고, 서브 삼차원점군 B를 복호하지 않아도 되다. 예를 들면, 서브 삼차원점군 A가 LiDAR 데이터의 중요 에어리어에 포함되는 삼차원점군인 경우, 삼차원 데이터 복호 장치는, 그 중요 에어리어의 삼차원점군을 복호한다. 이 중요 에어리어의 삼차원점군을 이용하여 차 등에 있어서의 자기 위치 추정 등이 행해진다.
다음에, 본 실시 형태에 따른 부호화 처리의 구체적인 예를 설명한다. 도 96은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점을 성긴 삼차원점군과 조밀한 삼차원점군으로 분리한다(S1721). 구체적으로는, 삼차원 데이터 부호화 장치는, 8진 트리 구조의 어느 층의 가지가 갖는 유효 리프의 수를 카운트한다. 삼차원 데이터 부호화 장치는, 각 가지의 유효 리프 수에 따라, 각 가지를 조밀한 가지 또는 성긴 가지로 설정한다. 그리고, 삼차원 데이터 부호화 장치는, 조밀한 가지를 모은 서브 삼차원점군(조밀한 삼차원점군)과, 성긴 가지를 모은 서브 삼차원점군(성긴 삼차원점군)을 생성한다.
다음에, 삼차원 데이터 부호화 장치는, 성긴 삼차원점군을 부호화함으로써 부호화 데이터를 생성한다(S1722). 예를 들면, 삼차원 데이터 부호화 장치는, 로케이션 부호화를 이용하여 성긴 삼차원점군을 부호화한다.
또한, 삼차원 데이터 부호화 장치는, 조밀한 삼차원점군을 부호화함으로써 부호화 데이터를 생성한다(S1723). 예를 들면, 삼차원 데이터 부호화 장치는, 어큐펀시 부호화를 이용하여 조밀한 삼차원점군을 부호화한다.
다음에, 삼차원 데이터 부호화 장치는, 단계 S1722에서 얻어진 성긴 삼차원점군의 부호화 데이터와, 단계 S1723에서 얻어진 조밀한 삼차원점군의 부호화 데이터를 결합함으로써 비트 스트림을 생성한다(S1724).
또한, 삼차원 데이터 부호화 장치는, 비트 스트림의 헤더 정보로서, 성긴 삼차원점군과 조밀한 삼차원점군을 복호하기 위한 정보를 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 하기와 같은 정보를 부호화해도 된다.
헤더 정보는, 부호화된 서브 삼차원점군의 수를 나타내는 정보를 포함해도 된다. 이 예에서는, 이 정보는 2를 나타낸다.
헤더 정보는, 각 서브 삼차원점군에 포함되는 삼차원점의 수와 부호화 방법을 나타내는 정보를 포함해도 된다. 이 예에서는, 이 정보는, 성긴 삼차원점군에 포함되는 삼차원점의 수와, 성긴 삼차원점군에 적용한 부호화 방법(로케이션 부호화)과, 조밀한 삼차원점군에 포함되는 삼차원점의 수와, 조밀한 삼차원점군에 적용한 부호화 방법(어큐펀시 부호화)을 나타낸다.
헤더 정보는, 각 서브 삼차원점군의 부호화 데이터의 개시 위치, 또는 종단 위치를 식별하기 위한 정보를 포함해도 된다. 이 예에서는, 이 정보는, 성긴 삼차원점군의 부호화 데이터의 개시 위치 및 종단 위치, 및, 조밀한 삼차원점군의 부호화 데이터의 개시 위치 및 종단 위치 중 적어도 하나를 나타낸다.
또한, 삼차원 데이터 부호화 장치는, 성긴 삼차원점군과 조밀한 삼차원점군을 병렬로 부호화해도 된다. 또는, 삼차원 데이터 부호화 장치는, 성긴 삼차원점군과 조밀한 삼차원점군을 차례로 부호화해도 된다.
다음에, 삼차원 데이터 복호 처리의 구체적인 예에 대해서 설명한다. 도 97은, 본 실시 형태에 따른 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 예를 들면, 상기 삼차원 데이터 부호화 장치에서 생성된 비트 스트림을 취득한다. 다음에, 삼차원 데이터 복호 장치는, 취득한 비트 스트림으로부터 성긴 삼차원점군의 부호화 데이터와 조밀한 삼차원점군의 부호화 데이터로 분리한다(S1731). 구체적으로는, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보로부터 각 서브 삼차원점군을 복호하기 위한 정보를 복호하고, 당해 정보를 이용하여 각 서브 삼차원점군의 부호화 데이터를 분리한다. 이 예에서는, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 성긴 삼차원점군과 조밀한 삼차원점군의 부호화 데이터를 헤더 정보를 이용하여 분리한다.
다음에, 삼차원 데이터 복호 장치는, 성긴 삼차원점군의 부호화 데이터를 복호함으로써 성긴 삼차원점군을 얻는다(S1732). 예를 들면, 삼차원 데이터 복호 장치는, 로케이션 부호화된 부호화 데이터를 복호하기 위한 로케이션 복호를 이용하여 성긴 삼차원점군을 복호한다.
또한, 삼차원 데이터 복호 장치는, 조밀한 삼차원점군의 부호화 데이터를 복호함으로써 조밀한 삼차원점군을 얻는다(S1733). 예를 들면, 삼차원 데이터 복호 장치는, 어큐펀시 부호화된 부호화 데이터를 복호하기 위한 어큐펀시 복호를 이용하여 조밀한 삼차원점군을 복호한다.
다음에, 삼차원 데이터 복호 장치는, 단계 S1732에서 얻어진 성긴 삼차원점군과, 단계 S1733에서 얻어진 조밀한 삼차원점군을 결합한다(S1734).
또한, 삼차원 데이터 복호 장치는, 성긴 삼차원점군과 조밀한 삼차원점군을 병렬로 복호해도 된다. 또는, 삼차원 데이터 복호 장치는, 성긴 삼차원점군과 조밀한 삼차원점군을 차례로 복호해도 된다.
또한, 삼차원 데이터 복호 장치는, 일부의 필요한 서브 삼차원점군을 복호해도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 조밀한 삼차원점군을 복호하고, 성긴 삼차원 데이터를 복호하지 않아도 되다. 예를 들면, 조밀한 삼차원점군이 LiDAR 데이터의 중요 에어리어에 포함되는 삼차원점군인 경우, 삼차원 데이터 복호 장치는, 그 중요 에어리어의 삼차원점군을 복호한다. 이 중요 에어리어의 삼차원점군을 이용하여 차 등에 있어서의 자기 위치 추정 등이 행해진다.
도 98은, 본 실시 형태에 따른 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 성긴 삼차원점군과 조밀한 삼차원점군으로 분리함으로써, 성긴 삼차원점군과 조밀한 삼차원점군을 생성한다(S1741).
다음에, 삼차원 데이터 부호화 장치는, 조밀한 삼차원점군을 부호화함으로써 부호화 데이터를 생성한다(S1742). 또한, 삼차원 데이터 부호화 장치는, 성긴 삼차원점군을 부호화함으로써 부호화 데이터를 생성한다(S1743). 마지막으로, 삼차원 데이터 부호화 장치는, 단계 S1742에서 얻어진 성긴 삼차원점군의 부호화 데이터와, 단계 S1743에서 얻어진 조밀한 삼차원점군의 부호화 데이터를 결합함으로써 비트 스트림을 생성한다(S1744).
도 99는, 본 실시 형태에 따른 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 조밀한 삼차원점군의 부호화 데이터와 성긴 삼차원점군의 부호화 데이터를 추출한다(S1751). 다음에, 삼차원 데이터 복호 장치는, 조밀한 삼차원점군의 부호화 데이터를 복호함으로써 조밀한 삼차원점군의 복호 데이터를 얻는다(S1752). 또한, 삼차원 데이터 복호 장치는, 성긴 삼차원점군의 부호화 데이터를 복호함으로써 성긴 삼차원점군의 복호 데이터를 얻는다(S1753). 다음에, 삼차원 데이터 복호 장치는, 단계 S1752에서 얻어진 조밀한 삼차원점군의 복호 데이터와, 단계 S1753에서 얻어진 성긴 삼차원점군의 복호 데이터를 결합함으로써 삼차원점군을 생성한다(S1754).
또한, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 조밀한 삼차원점군과 성긴 삼차원점군 중 어느 쪽을 먼저 부호화 또는 복호해도 된다. 또한, 복수의 프로세서 등에 의해, 병렬로 부호화 처리 또는 복호 처리가 행해져도 된다.
또한, 삼차원 데이터 부호화 장치는, 조밀한 삼차원점군과 성긴 삼차원점군 중 한쪽을 부호화해도 된다. 예를 들면, 조밀한 삼차원점군에 중요한 정보가 포함되는 경우, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군으로부터 조밀한 삼차원점군과 성긴 삼차원점군을 추출하여, 조밀한 삼차원점군을 부호화하고, 성긴 삼차원점군을 부호화하지 않는다. 이에 의해, 삼차원 데이터 부호화 장치는, 비트량을 억제하면서, 중요한 정보를 스트림에 부가할 수 있다. 예를 들면, 서버와 클라이언트의 사이에서, 서버에 클라이언트로부터 클라이언트 주위의 삼차원점군 정보의 송신 요구가 있었던 경우, 서버는, 클라이언트 주위의 중요한 정보를 조밀한 삼차원점군으로서 부호화하여 클라이언트에 송신한다. 이에 의해, 서버는, 네트워크 대역을 억제하면서, 클라이언트가 요구하는 정보를 송신할 수 있다.
또한, 삼차원 데이터 복호 장치는, 조밀한 삼차원점군과 성긴 삼차원점군 중 한쪽을 복호해도 된다. 예를 들면, 조밀한 삼차원점군에 중요한 정보가 포함되는 경우, 삼차원 데이터 복호 장치는, 조밀한 삼차원점군을 복호하고, 성긴 삼차원점군을 복호하지 않는다. 이에 의해, 삼차원 데이터 복호 장치는, 복호 처리의 처리 부하를 억제하면서, 필요한 정보를 취득할 수 있다.
도 100은, 도 98에 나타내는 삼차원점의 분리 처리(S1741)의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 층(L)과 역치(TH)를 설정한다(S1761). 또한, 삼차원 데이터 부호화 장치는, 설정한 층(L)과 역치(TH)를 나타내는 정보를 비트 스트림에 부가해도 된다. 즉, 삼차원 데이터 부호화 장치는, 설정한 층(L)과 역치(TH)를 나타내는 정보를 포함하는 비트 스트림을 생성해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 처리 대상의 위치를, 8진 트리의 루트로부터 층(L)의 선두의 가지로 이동한다. 즉, 삼차원 데이터 부호화 장치는, 처리 대상의 가지로서, 층(L)의 선두의 가지를 선택한다(S1762).
다음에, 삼차원 데이터 부호화 장치는, 층(L)의 처리 대상의 가지의 유효 리프 수를 카운트한다(S1763). 처리 대상의 가지의 유효 리프 수가 역치(TH)보다 많은 경우(S1764에서 Yes), 삼차원 데이터 부호화 장치는, 처리 대상의 가지를 조밀한 가지로서 조밀한 삼차원점군에 등록한다(S1765). 한편, 처리 대상의 가지의 유효 리프 수가 역치(TH) 이하인 경우(S1764에서 No), 삼차원 데이터 부호화 장치는, 처리 대상의 가지를 성긴 가지로서 성긴 삼차원점군에 등록한다(S1766).
층(L)의 모든 가지의 처리를 완료하지 않은 경우(S1767에서 No), 삼차원 데이터 부호화 장치는, 처리 대상의 위치를, 층(L)의 다음 가지로 이동한다. 즉, 삼차원 데이터 부호화 장치는, 처리 대상의 가지로서, 층(L)의 다음 가지를 선택한다(S1768). 그리고, 삼차원 데이터 부호화 장치는, 선택한 다음 처리 대상의 가지에 대하여 단계 S1763 이후의 처리를 행한다.
상기의 처리가, 층(L)의 모든 가지의 처리를 완료할 때까지(S1767에서 Yes), 반복된다.
또한, 상기 설명에서는 층(L)과 역치(TH)는 미리 설정되어 있지만, 반드시 이에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 층(L)과 역치(TH)의 세트를 복수 패턴 설정하고, 각 세트를 이용하여 조밀한 삼차원점군과 성긴 삼차원점군을 생성하고, 각각을 부호화한다. 삼차원 데이터 부호화 장치는, 복수의 세트 중, 생성된 부호화 데이터의 부호화 효율이 가장 높은 층(L)과 역치(TH)의 세트로 최종적으로 조밀한 삼차원점군과 성긴 삼차원점군을 부호화한다. 이에 의해 부호화 효율을 높일 수 있다. 또한, 삼차원 데이터 부호화 장치는, 예를 들면, 층(L) 및 역치(TH)를 산출해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 트리 구조에 포함되는 층의 최대치의 절반의 값을 층(L)으로 설정해도 된다. 또한, 삼차원 데이터 부호화 장치는, 트리 구조에 포함되는 복수의 삼차원점의 총수의 절반의 값을 역치(TH)로 설정해도 된다.
또한, 상기 설명에서는, 입력 삼차원점군을 조밀한 삼차원점군과 성긴 삼차원점군의 2종류로 분류하는 예를 기술했지만, 삼차원 데이터 부호화 장치는, 입력 삼차원점군을 3종류 이상의 삼차원점군으로 분류해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 처리 대상의 가지의 유효 리프 수가 역치(TH1) 이상인 경우, 처리 대상의 가지를 제1 조밀한 삼차원점군으로 분류하고, 처리 대상의 가지의 유효 리프 수가 제1 역치(TH1) 미만 또한 제2 역치(TH2) 이상인 경우, 처리 대상의 가지를 제2 조밀한 삼차원점군으로 분류한다. 삼차원 데이터 부호화 장치는, 처리 대상의 가지의 유효 리프 수가 제2 역치(TH2) 미만 또한 제3 역치(TH3) 이상인 경우, 처리 대상의 가지를 제1 성긴 삼차원점군으로 분류하고, 처리 대상의 가지의 유효 리프 수가 역치(TH3) 미만인 경우, 처리 대상의 가지를 제2 성긴 삼차원점군으로 분류한다.
이하, 본 실시 형태에 따른 삼차원점군의 부호화 데이터의 신택스예에 대해서 설명한다. 도 101은, 이 신택스예를 나타내는 도면이다. pc_header()는, 예를 들면, 입력된 복수의 삼차원점의 헤더 정보이다.
도 101에 나타내는 num_sub_pc는, 서브 삼차원점군의 수를 나타낸다. numPoint[i]는, i번째의 서브 삼차원점군 중에 포함되는 삼차원점의 수를 나타낸다. coding_type[i]는, i번째의 서브 삼차원점군에 적용되는 부호화 타입(부호화 방식)을 나타내는 부호화 타입 정보이다. 예를 들면, coding_type=00은 로케이션 부호화가 적용되어 있는 것을 나타낸다. coding_type=01은 어큐펀시 부호화가 적용되어 있는 것을 나타낸다. coding_type=10 또는 11은, 다른 부호화 방식이 적용되어 있는 것을 나타낸다.
data_sub_cloud()는, i번째의 서브 삼차원점군의 부호화 데이터이다. coding_type_00_data는, coding_type이 00인 부호화 타입이 적용된 부호화 데이터이고, 예를 들면 로케이션 부호화가 적용된 부호화 데이터이다. coding_type_01_data는, coding_type이 01인 부호화 타입이 적용된 부호화 데이터이고, 예를 들면 어큐펀시 부호화가 적용된 부호화 데이터이다.
end_of_data는, 부호화 데이터의 종단을 나타내는 종단 정보이다. 예를 들면, 이 end_of_data에는, 부호화 데이터에 사용하지 않는 고정 비트열이 할당된다. 이에 의해, 삼차원 데이터 복호 장치는, 예를 들면, end_of_data의 비트열을 비트 스트림으로부터 탐색함으로써, 복호할 필요가 없는 부호화 데이터의 복호 처리를 스킵할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 부호화 데이터를 엔트로피 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 값을 2치화한 다음 산출 부호화한다.
또한, 본 실시 형태에서는, 4진 트리 구조 또는 8진 트리 구조의 예를 나타내었지만, 반드시 이에 한정하지 않으며, 2진 트리, 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대하여, 상기 수법을 적용해도 된다.
[변형예]
상기 설명에서는, 도 93 및 도 94에 나타내는 바와 같이, 조밀한 가지와 그 상층(전체 트리 구조의 루트로부터 조밀한 가지의 루트에 이르는 트리 구조)을 포함하는 트리 구조가 부호화되고, 성긴 가지와 그 상층(전체 트리 구조의 루트로부터 성긴 가지의 루트에 이르는 트리 구조)을 포함하는 트리 구조가 부호화된다. 본 변형예에서는, 삼차원 데이터 부호화 장치는, 조밀한 가지와 성긴 가지를 분리하고, 조밀한 가지와 성긴 가지를 부호화한다. 즉, 부호화하는 트리 구조에는, 상층의 트리 구조는 포함되지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 조밀한 가지에 어큐펀시 부호화를 적용하고, 성긴 가지에 로케이션 부호화를 적용한다.
도 102는, 도 88에 나타내는 트리 구조로부터 분리된, 조밀한 가지의 예를 나타내는 도면이다. 도 103은, 도 88에 나타내는 트리 구조로부터 분리된, 성긴 가지의 예를 나타내는 도면이다. 본 변형예는, 도 102 및 도 103에 나타내는 트리 구조가 각각 부호화된다.
또한, 삼차원 데이터 부호화 장치는, 상층의 트리 구조를 부호화하지 않는 대신에, 가지의 위치를 나타내는 정보를 부호화한다. 예를 들면, 이 정보는, 가지의 루트의 위치를 나타낸다.
예를 들면, 삼차원 데이터 부호화 장치는, 조밀한 가지를 생성한 층을 나타내는 레이어 정보와, 조밀한 가지가 당해 층의 몇 번째 가지인지를 나타내는 가지 정보를, 당해 조밀한 가지의 부호화 데이터로서 부호화한다. 이에 의해, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 레이어 정보 및 가지 정보를 복호하고, 이들 레이어 정보 및 가지 정보를 이용하여, 복호한 조밀한 가지가 어느 층의 몇 번째 가지의 삼차원점군인지를 파악할 수 있다. 또한 마찬가지로, 삼차원 데이터 부호화 장치는, 성긴 가지를 생성한 층을 나타내는 레이어 정보와, 성긴 가지가 당해 층의 몇 번째 가지인지를 나타내는 가지 정보를, 성긴 가지의 부호화 데이터로서 부호화한다.
이에 의해, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 레이어 정보 및 가지 정보를 복호하고, 이들 레이어 정보 및 가지 정보를 이용하여, 복호한 성긴 가지가 어느 층의 몇 번째 가지의 삼차원점군인지를 파악할 수 있다. 이에 의해, 조밀한 가지 및 성긴 가지보다 상위의 층의 정보를 부호화하는 것에 의한 오버헤드를 삭감할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
또한, 가지 정보는, 레이어 정보로 나타내어지는 층 내의 각 가지에 할당된 값을 나타내도 된다. 또한, 가지 정보는, 8진 트리의 루트를 기점으로 하여 각 노드에 할당된 값을 나타내도 된다. 이 경우, 레이어 정보는 부호화되지 않아도 된다. 또한, 삼차원 데이터 부호화 장치는, 조밀한 가지와 성긴 가지를 각각 복수 생성해도 된다.
도 104는, 본 변형예에 있어서의 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군으로부터 1 이상의 성긴 가지와 1 이상의 조밀한 가지를 생성한다(S1771).
다음에, 삼차원 데이터 부호화 장치는, 조밀한 가지를 부호화함으로써 부호화 데이터를 생성한다(S1772). 다음에, 삼차원 데이터 부호화 장치는, 단계 S1771에서 생성한 모든 조밀한 가지의 부호화가 완료되었는지의 여부를 판정한다(S1773).
모든 조밀한 가지의 부호화가 완료되지 않은 경우(S1773에서 No), 삼차원 데이터 부호화 장치는, 다음 조밀한 가지를 선택하고(S1774), 선택한 조밀한 가지를 부호화함으로써 부호화 데이터를 생성한다(S1772).
한편, 모든 조밀한 가지의 부호화가 완료된 경우(S1773에서 Yes), 삼차원 데이터 부호화 장치는, 성긴 가지를 부호화함으로써 부호화 데이터를 생성한다(S1775). 다음에, 삼차원 데이터 부호화 장치는, 단계 S1771에서 생성한 모든 성긴 가지의 부호화가 완료되었는지의 여부를 판정한다(S1776).
모든 성긴 가지의 부호화가 완료되지 않은 경우(S1776에서 No), 삼차원 데이터 부호화 장치는, 다음 성긴 가지를 선택하고(S1777), 선택한 성긴 가지를 부호화함으로써 부호화 데이터를 생성한다(S1775).
한편, 모든 성긴 가지의 부호화가 완료된 경우(S1776에서 Yes), 삼차원 데이터 부호화 장치는, 단계 S1772 및 S1775에서 생성된 부호화 데이터를 결합하여 비트 스트림을 생성한다(S1778).
도 104는, 본 변형예에 있어서의 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 조밀한 가지의 1 이상의 부호화 데이터와 성긴 가지의 1 이상의 부호화 데이터를 추출한다(S1781). 다음에, 삼차원 데이터 복호 장치는, 조밀한 가지의 부호화 데이터를 복호함으로써 조밀한 가지의 복호 데이터를 얻는다(S1782).
다음에, 삼차원 데이터 복호 장치는, 단계 S1781에서 추출한 모든 조밀한 가지의 부호화 데이터의 복호가 완료되었는지의 여부를 판정한다(S1783). 모든 조밀한 가지의 부호화 데이터의 복호가 완료되지 않은 경우(S1783에서 No), 삼차원 데이터 복호 장치는, 다음 조밀한 가지의 부호화 데이터를 선택하고(S1784), 선택한 조밀한 가지의 부호화 데이터를 복호함으로써 조밀한 가지의 복호 데이터를 얻는다(S1782).
한편, 모든 조밀한 가지의 부호화 데이터의 복호가 완료된 경우(S1783에서 Yes), 삼차원 데이터 복호 장치는, 성긴 가지의 부호화 데이터를 복호함으로써 성긴 가지의 복호 데이터를 얻는다(S1785).
다음에, 삼차원 데이터 복호 장치는, 단계 S1781에서 추출한 모든 성긴 가지의 부호화 데이터의 복호가 완료되었는지의 여부를 판정한다(S1786). 모든 성긴 가지의 부호화 데이터의 복호가 완료되지 않은 경우(S1786에서 No), 삼차원 데이터 복호 장치는, 다음 성긴 가지의 부호화 데이터를 선택하고(S1787), 선택한 성긴 가지의 부호화 데이터를 복호함으로써 성긴 가지의 복호 데이터를 얻는다(S1785).
한편, 모든 성긴 가지의 부호화 데이터의 복호가 완료된 경우(S1786에서 Yes), 삼차원 데이터 복호 장치는, 단계 S1782 및 S1785에서 얻어진 복호 데이터를 결합함으로써 삼차원점군을 생성한다(S1788).
또한, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 조밀한 가지와 성긴 가지 중 어느 쪽을 먼저 부호화 또는 복호해도 된다. 또한, 복수의 프로세서 등에 의해, 병렬로 부호화 처리, 또는 복호 처리가 행해져도 된다.
또한, 삼차원 데이터 부호화 장치는, 조밀한 가지와 성긴 가지 중 한쪽을 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 복수의 조밀한 가지의 일부를 부호화해도 된다. 예를 들면, 특정의 조밀한 가지에 중요한 정보가 포함되는 경우, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군으로부터 조밀한 가지와 성긴 가지를 추출하고, 중요한 정보가 포함되는 조밀한 가지를 부호화하고, 다른 조밀한 가지 및 성긴 가지를 부호화하지 않는다. 이에 의해, 삼차원 데이터 부호화 장치는, 비트량을 억제하면서, 중요한 정보를 스트림에 부가할 수 있다. 예를 들면, 서버와 클라이언트의 사이에서, 서버에 클라이언트로부터 클라이언트 주위의 삼차원점군 정보의 송신 요구가 있었던 경우, 서버는, 클라이언트 주위의 중요한 정보를 조밀한 가지로서 부호화하여 클라이언트에 송신한다. 이에 의해, 서버는, 네트워크 대역을 억제하면서, 클라이언트가 요구하는 정보를 송신할 수 있다.
또한, 삼차원 데이터 복호 장치는, 조밀한 가지와 성긴 가지 중 한쪽을 복호해도 된다. 또한, 삼차원 데이터 복호 장치는, 복수의 조밀한 가지의 일부를 복호해도 된다. 예를 들면, 특정의 조밀한 가지에 중요한 정보가 포함되는 경우, 삼차원 데이터 복호 장치는, 그 특정의 조밀한 가지를 복호하고, 다른 조밀한 가지 및 성긴 가지를 복호하지 않는다. 이에 의해, 삼차원 데이터 복호 장치는, 복호 처리의 처리 부하를 억제하면서, 필요한 정보를 취득할 수 있다.
도 106은, 도 104에 나타내는 삼차원점의 분리 처리(S1771)의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 층(L)과 역치(TH)를 설정한다(S1761). 또한, 삼차원 데이터 부호화 장치는, 설정한 층(L)과 역치(TH)를 나타내는 정보를 비트 스트림에 부가해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 처리 대상의 가지로서, 층(L)의 선두의 가지를 선택한다(S1762). 다음에, 삼차원 데이터 부호화 장치는, 층(L)의 처리 대상의 가지의 유효 리프 수를 카운트한다(S1763). 처리 대상의 가지의 유효 리프 수가 역치(TH)보다 많은 경우(S1764에서 Yes), 삼차원 데이터 부호화 장치는, 처리 대상의 가지를 조밀한 가지로 설정하고, 비트 스트림에 레이어 정보와 가지 정보를 부가한다(S1765A). 한편, 처리 대상의 가지의 유효 리프 수가 역치(TH) 이하인 경우(S1764에서 No), 삼차원 데이터 부호화 장치는, 처리 대상의 가지를 성긴 가지로 설정하고, 비트 스트림에 레이어 정보와 가지 정보를 부가한다(S1766A).
층(L)의 모든 가지의 처리를 완료하지 않은 경우(S1767에서 No), 삼차원 데이터 부호화 장치는, 처리 대상의 가지로서, 층(L)의 다음 가지를 선택한다(S1768). 그리고, 삼차원 데이터 부호화 장치는, 선택한 다음 처리 대상의 가지에 대하여 단계 S1763 이후의 처리를 행한다. 상기의 처리가, 층(L)의 모든 가지의 처리를 완료할 때까지(S1767에서 Yes) 반복된다.
또한, 상기 설명에서는 층(L)과 역치(TH)는 미리 설정되어 있지만, 반드시 이에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 층(L)과 역치(TH)의 세트를 복수 패턴 설정하고, 각 세트를 이용하여 조밀한 가지와 성긴 가지를 생성하고, 각각을 부호화한다. 삼차원 데이터 부호화 장치는, 복수의 세트 중, 생성된 부호화 데이터의 부호화 효율이 가장 높은 층(L)과 역치(TH)의 세트로 최종적으로 조밀한 가지와 성긴 가지를 부호화한다. 이에 의해 부호화 효율을 높일 수 있다. 또한, 삼차원 데이터 부호화 장치는, 예를 들면, 층(L) 및 역치(TH)를 산출해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 트리 구조에 포함되는 층의 최대치의 절반의 값을 층(L)으로 설정해도 된다. 또한, 삼차원 데이터 부호화 장치는, 트리 구조에 포함되는 복수의 삼차원점의 총수의 절반의 값을 역치(TH)로 설정해도 된다.
이하, 본 변형예에 따른 삼차원점군의 부호화 데이터의 신택스예에 대해서 설명한다. 도 107은, 이 신택스예를 나타내는 도면이다. 도 107에 나타내는 신택스예에서는, 도 101에 나타내는 신택스예에 대하여, 레이어 정보인 layer_id[i]와 가지 정보인 branch_id[i]가 추가되어 있다.
layer_id[i]는, i번째의 서브 삼차원점군이 속하는 레이어 번호를 나타낸다. branch_id[i]는, i번째의 서브 삼차원점군의 layer_id[i] 내에 있어서의 가지 번호를 나타낸다.
layer_id[i] 및 branch_id[i]는, 예를 들면 8진 트리에 있어서의 가지의 장소를 나타내는 레이어 정보 및 가지 정보이다. 예를 들면, layer_id[i]=2, branch_id[i]=5는, i번째의 가지가 층 2의 5번째 가지인 것을 나타낸다.
또한, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 부호화 데이터를 엔트로피 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 값을 2치화한 다음 산출 부호화한다.
또한, 본 변형예에서는, 4진 트리 구조 또는 8진 트리 구조의 예를 나타내었지만, 반드시 이에 한정하지 않으며, 2진 트리, 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대하여, 상기 수법을 적용해도 된다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 도 108에 나타내는 처리를 행한다.
우선, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 생성한다(S1801).
다음에, 삼차원 데이터 부호화 장치는, N진 트리 구조에 포함되는 복수의 층 중 어느 하나인 제1 층에 포함되는 제1 노드를 루트로 하는 제1 가지를 제1 부호화 처리로 부호화함으로써 제1 부호화 데이터를 생성한다(S1802).
또한, 삼차원 데이터 부호화 장치는, 제1 층에 포함되는, 제1 노드와 상이한 제2 노드를 루트로 하는 제2 가지를 제1 부호화 처리와 상이한 제2 부호화 처리로 부호화함으로써 제2 부호화 데이터를 생성한다(S1803).
다음에, 삼차원 데이터 부호화 장치는, 제1 부호화 데이터와 제2 부호화 데이터를 포함하는 비트 스트림을 생성한다(S1804).
이에 의하면, 삼차원 데이터 부호화 장치는, N진 트리 구조에 포함되는 각각의 가지에 적합한 부호화 처리를 적용할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들면, 제1 가지에 포함되는 삼차원점의 수는, 미리 정해진 역치보다 적고, 제2 가지에 포함되는 삼차원점의 수는, 역치보다 많다. 즉, 삼차원 데이터 부호화 장치는, 처리 대상의 가지에 포함되는 삼차원점의 수가 역치보다 적은 경우, 처리 대상의 가지를 제1 가지로 설정하고, 처리 대상의 가지에 포함되는 삼차원점의 수가 역치보다 많은 경우, 처리 대상의 가지를 제2 가지로 설정한다.
예를 들면, 제1 부호화 데이터는, 제1 가지에 포함되는 복수의 제1 삼차원점의 제1 N진 트리 구조를 제1 방식으로 나타내는 제1 정보를 포함한다. 제2 부호화 데이터는, 제2 가지에 포함되는 복수의 제2 삼차원점의 제2 N진 트리 구조를 제2 방식으로 나타내는 제2 정보를 포함한다. 즉, 제1 부호화 처리와 제2 부호화 처리는, 부호화 방식이 상이하다.
예를 들면, 제1 부호화 처리에서는 로케이션 부호화가 이용되고, 제2 부호화 처리에서는 어큐펀시 부호화가 이용된다. 즉, 제1 정보는, 복수의 제1 삼차원점의 각각에 대응하는 삼차원점 정보를 포함한다. 각 삼차원점 정보는, 제1 N진 트리 구조에 있어서의 복수의 층의 각각에 대응하는 인덱스를 포함한다. 각 인덱스는, 대응하는 층에 속하는 N개의 서브 블록 중, 대응하는 제1 삼차원점이 속하는 서브 블록을 나타낸다. 제2 정보는, 제2 N진 트리 구조에 있어서의 복수의 층에 속하는 복수의 서브 블록의 각각에 대응하고, 대응하는 서브 블록에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 복수 포함한다.
예를 들면, 제2 부호화 처리에서 사용되는 양자화 파라미터는, 제1 부호화 처리에서 사용되는 양자화 파라미터와 상이하다. 즉, 제1 부호화 처리와 제2 부호화 처리는, 부호화 방식은 동일하고, 사용되는 파라미터가 상이하다.
예를 들면, 도 92 및 도 93에 나타내는 바와 같이, 삼차원 데이터 부호화 장치는, 제1 가지의 부호화에서는, N진 트리 구조의 루트로부터 제1 노드에 이르는 트리 구조와, 제1 가지를 포함하는 트리 구조를 제1 부호화 처리로 부호화하고, 제2 가지의 부호화에서는, N진 트리 구조의 루트로부터 제2 노드에 이르는 트리 구조와, 제2 가지를 포함하는 트리 구조를 제2 부호화 처리로 부호화한다.
예를 들면, 제1 부호화 데이터는, 제1 가지의 부호화 데이터와, N진 트리 구조에 있어서의 제1 노드의 위치를 나타내는 제3 정보를 포함한다. 제2 부호화 데이터는, 제2 가지의 부호화 데이터와, N진 트리 구조에 있어서의 제2 노드의 위치를 나타내는 제4 정보를 포함한다.
예를 들면, 제3 정보는, 제1 층을 나타내는 정보(레이어 정보)와, 제1 노드가 제1 층에 포함되는 노드 중 어느 노드인지를 나타내는 정보(가지 정보)를 포함한다. 제4 정보는, 제1 층을 나타내는 정보(레이어 정보)와, 제2 노드가 제1 층에 포함되는 노드 중 어느 노드인지를 나타내는 정보(가지 정보)를 포함한다.
예를 들면, 제1 부호화 데이터는, 제1 가지에 포함되는 삼차원점의 수를 나타내는 정보(numPoint)를 포함하고, 제2 부호화 데이터는, 제2 가지에 포함되는 삼차원점의 수를 나타내는 정보(numPoint)를 포함한다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 실시 형태에 따른 삼차원 데이터 복호 장치는, 도 109에 나타내는 처리를 행한다.
우선, 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 복수의 층 중 어느 하나인 제1 층에 포함되는 제1 노드를 루트로 하는 제1 가지가 부호화됨으로써 얻어진 제1 부호화 데이터와, 제1 층에 포함되는, 제1 노드와 상이한 제2 노드를 루트로 하는 제2 가지가 부호화됨으로써 얻어진 제2 부호화 데이터를 취득한다(S1811).
다음에, 삼차원 데이터 복호 장치는, 제1 부호화 데이터를 제1 복호 처리로 복호함으로써 제1 가지의 제1 복호 데이터를 생성한다(S1812).
또한, 삼차원 데이터 복호 장치는, 제2 부호화 데이터를, 제1 복호 처리와 상이한 제2 복호 처리로 복호함으로써 제2 가지의 제2 복호 데이터를 생성한다(S1813).
다음에, 삼차원 데이터 복호 장치는, 제1 복호 데이터와 제2 복호 데이터를 이용하여 복수의 삼차원점을 복원한다(S1814). 예를 들면, 이 삼차원점은, 제1 복호 데이터로 나타내어지는 복수의 삼차원점과, 제2 복호 데이터로 나타내어지는 복수의 삼차원점을 포함한다.
이에 의하면, 삼차원 데이터 복호 장치는, 부호화 효율을 향상시킨 비트 스트림을 복호할 수 있다.
예를 들면, 제1 가지에 포함되는 삼차원점의 수는, 미리 정해진 역치보다 적고, 제2 가지에 포함되는 삼차원점의 수는, 역치보다 많다.
예를 들면, 제1 부호화 데이터는, 제1 가지에 포함되는 복수의 제1 삼차원점의 제1 N진 트리 구조를 제1 방식으로 나타내는 제1 정보를 포함한다. 제2 부호화 데이터는, 제2 가지에 포함되는 복수의 제2 삼차원점의 제2 N진 트리 구조를 제2 방식으로 나타내는 제2 정보를 포함한다. 즉, 제1 복호 처리와 제2 복호 처리는, 부호화 방식(복호 방식)이 상이하다.
예를 들면, 제1 부호화 데이터에는 로케이션 부호화가 이용되어 있고, 제2 부호화 데이터에는 어큐펀시 부호화가 이용되어 있다. 즉, 제1 정보는, 복수의 제1 삼차원점의 각각에 대응하는 삼차원점 정보를 포함한다. 각 삼차원점 정보는, 제1 N진 트리 구조에 있어서의 복수의 층의 각각에 대응하는 인덱스를 포함한다. 각 인덱스는, 대응하는 층에 속하는 N개의 서브 블록 중, 대응하는 제1 삼차원점이 속하는 서브 블록을 나타낸다. 제2 정보는, 제2 N진 트리 구조에 있어서의 복수의 층에 속하는 복수의 서브 블록의 각각에 대응하고, 대응하는 서브 블록에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 복수 포함한다.
예를 들면, 제2 복호 처리에서 사용되는 양자화 파라미터는, 제1 복호 처리에서 사용되는 양자화 파라미터와 상이하다. 즉, 제1 복호 처리와 제2 복호 처리는, 부호화 방식(복호 방식)은 동일하고, 사용되는 파라미터가 상이하다.
예를 들면, 도 92 및 도 93에 나타내는 바와 같이, 삼차원 데이터 복호 장치는, 제1 가지의 복호에서는, N진 트리 구조의 루트로부터 제1 노드에 이르는 트리 구조와, 제1 가지를 포함하는 트리 구조를 제1 복호 처리로 복호하고, 제2 가지의 복호에서는, N진 트리 구조의 루트로부터 제2 노드에 이르는 트리 구조와, 제2 가지를 포함하는 트리 구조를 제2 복호 처리로 복호한다.
예를 들면, 제1 부호화 데이터는, 제1 가지의 부호화 데이터와, N진 트리 구조에 있어서의 제1 노드의 위치를 나타내는 제3 정보를 포함한다. 제2 부호화 데이터는, 제2 가지의 부호화 데이터와, N진 트리 구조에 있어서의 제2 노드의 위치를 나타내는 제4 정보를 포함한다.
예를 들면, 제3 정보는, 제1 층을 나타내는 정보(레이어 정보)와, 제1 노드가 제1 층에 포함되는 노드 중 어느 노드인지를 나타내는 정보(가지 정보)를 포함한다. 제4 정보는, 제1 층을 나타내는 정보(레이어 정보)와, 제2 노드가 제1 층에 포함되는 노드 중 어느 노드인지를 나타내는 정보(가지 정보)를 포함한다.
예를 들면, 제1 부호화 데이터는, 제1 가지에 포함되는 삼차원점의 수를 나타내는 정보(numPoint)를 포함하고, 제2 부호화 데이터는, 제2 가지에 포함되는 삼차원점의 수를 나타내는 정보(numPoint)를 포함한다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 11)
본 실시 형태에서는, 8진 트리의 어큐펀시 부호에 대한 적응적인 엔트로피 부호화(산술 부호화)에 대해서 설명한다.
도 110은, 4진 트리의 트리 구조의 일례를 나타내는 도면이다. 도 111은, 도 110에 나타내는 트리 구조의 어큐펀시 부호를 나타내는 도면이다. 도 112는, 본 실시 형태에 따른 삼차원 데이터 부호화 장치의 동작을 모식적으로 나타내는 도면이다.
본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 8진 트리에 있어서의 8비트의 어큐펀시 부호화를 엔트로피 부호화한다. 또한, 삼차원 데이터 부호화 장치는, 어큐펀시 부호의 엔트로피 부호화 처리에 있어서, 부호화 테이블을 갱신한다. 또한, 삼차원 데이터 부호화 장치는, 단일의 부호화 테이블을 이용하는 것이 아니라, 삼차원점의 유사성 정보를 이용하기 위해서 적응적인 부호화 테이블을 이용한다. 즉, 삼차원 데이터 부호화 장치는, 복수의 부호화 테이블을 이용한다.
또한, 유사성 정보란, 예를 들면, 삼차원점의 기하 정보, 8진 트리의 구조 정보, 또는, 삼차원점의 속성 정보이다.
또한, 도 110~도 112에서는, 4진 트리를 예로 나타내었지만, 2진 트리, 8진 트리, 16진 트리 등의 N진 트리의 경우에 동일한 수법을 적용해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 8진 트리의 경우는 8비트의 어큐펀시 부호, 4진 트리의 경우는 4비트의 어큐펀시 부호, 16진 트리의 경우는 16비트의 어큐펀시 부호에 대하여, 적응적 테이블(adaptive table: 부호화 테이블이라고도 부른다)을 이용하여 엔트로피 부호화를 행한다.
이하, 삼차원점(포인트 클라우드)의 기하 정보(geometry information)를 이용한 적응적인 엔트로피 부호화 처리에 대해서 설명한다.
트리 구조 내의 2개의 노드에 있어서, 각 노드의 주변의 기하학적인 배치가 유사한 경우, 자식 노드의 점유 상태(즉, 삼차원점이 포함되는지 아닌지의 상태)가 유사할 가능성이 있다. 따라서, 삼차원 데이터 부호화 장치는, 부모 노드의 주변의 기하학적인 배치를 이용하여, 그룹화를 행한다. 이에 의해, 삼차원 데이터 부호화 장치는, 자식 노드의 점유 상태를 그룹화하고, 그룹마다 상이한 부호화 테이블을 이용할 수 있다. 따라서, 엔트로피 부호화의 부호화 효율을 향상시킬 수 있다.
도 113은, 기하 정보의 일례를 나타내는 도면이다. 기하 정보는 대상 노드의 복수의 인접 노드의 각각이 점유되어 있는지의 여부(즉 삼차원점을 포함하는지 아닌지)를 나타내는 정보를 포함한다. 예를 들면, 삼차원 데이터 부호화 장치는, 대상 노드의 주변의 기하학적인 배치(Local geometry)를, 인접 노드에 삼차원점이 포함되는지 여부(occupied or non-occupied)의 정보를 이용하여 산출한다. 인접 노드란, 예를 들면 대상 노드의 공간적으로 주위에 존재하는 노드, 또는, 대상 노드와는 상이한 시간의 동일 위치, 혹은 그 공간적으로 주위에 존재하는 노드이다.
도 113에 있어서, 해칭 입방체는 부호화 대상의 대상 노드를 나타낸다. 흰 입방체는 인접 노드이며, 또한 삼차원점을 포함하는 노드를 나타낸다. 도 113에 있어서, (2)에 나타내는 기하 패턴은 (1)에 나타내는 기하 패턴을 회전한 형태를 나타낸다. 따라서, 삼차원 데이터 부호화 장치는, 이들 기하 패턴은, 기하 유사성(geometry similarity)이 높다고 판단하고, 이들 기하 패턴에 대해서는 동일한 부호화 테이블을 이용하여 엔트로피 부호화를 행한다. 또한, 삼차원 데이터 부호화 장치는, (3) 및 (4)의 기하 패턴에 대해서는 기하 유사성이 낮다고 판단하고, 별개의 부호화 테이블을 이용하여 엔트로피 부호화를 행한다.
도 114는, 도 113에 나타내는 (1)~(4)의 기하 패턴에 있어서의 대상 노드의 어큐펀시 부호와, 엔트로피 부호화에 이용되는 부호화 테이블의 예를 나타내는 도면이다. 삼차원 데이터 부호화 장치는, 상기와 같이 기하 패턴 (1)과 (2)에 대해서는 동일한 기하 그룹에 포함된다고 판단하고, 동일한 부호화 테이블 A를 이용한다. 또한, 삼차원 데이터 부호화 장치는, 기하 패턴 (3) 및 (4)에는 각각 부호화 테이블 B 및 부호화 테이블 C를 이용한다.
또한, 도 114에 나타내는 바와 같이, 동일한 기하 그룹에 포함되는 기하 패턴 (1)과 (2)의 대상 노드의 어큐펀시 부호가 동일해지는 경우가 있다.
다음에, 트리 구조의 구조 정보(structure information)를 이용한 적응적인 엔트로피 부호화 처리에 대해서 설명한다. 예를 들면, 구조 정보는 대상 노드가 속하는 층을 나타내는 정보를 포함한다.
도 115는, 트리 구조의 일례를 나타내는 도면이다. 일반적으로 국소적인 물체의 형상은, 탐색의 척도에 의존한다. 예를 들면, 트리 구조에 있어서, 하층은 상층보다 성기게 되는 경향이 있다. 따라서, 삼차원 데이터 부호화 장치는, 도 115에 나타내는 바와 같이 상층과 하층에서 상이한 부호화 테이블을 이용함으로써, 엔트로피 부호화의 부호화 효율을 향상시킬 수 있다.
즉, 삼차원 데이터 부호화 장치는, 각 층의 어큐펀시 부호를 부호화할 때에, 층마다 상이한 부호화 테이블을 이용해도 된다. 예를 들면, 도 115에 나타내는 트리 구조에 대하여, 삼차원 데이터 부호화 장치는, 층 N(N=0~6)의 어큐펀시 부호의 부호화에는 층 N용 부호화 테이블을 이용하여 엔트로피 부호화를 행해도 된다. 이에 의해, 삼차원 데이터 부호화 장치는, 층마다의 어큐펀시 부호의 출현 패턴에 따라 부호화 테이블을 전환할 수 있으므로 부호화 효율을 향상시킬 수 있다.
또한, 삼차원 데이터 부호화 장치는, 도 115에 나타내는 바와 같이, 층 0부터 층 2까지의 어큐펀시 부호에는 부호화 테이블 A를 이용하고, 층 3부터 층 6까지의 어큐펀시 부호에는 부호화 테이블 B를 이용해도 된다. 이에 의해, 삼차원 데이터 부호화 장치는, 각 층군마다의 어큐펀시 부호의 출현 패턴에 따라 부호화 테이블을 전환할 수 있으므로 부호화 효율을 향상시킬 수 있다. 또한, 삼차원 데이터 부호화 장치는, 각 층에서 이용하는 부호화 테이블의 정보를 비트 스트림의 헤더에 부가해도 된다. 또는, 각 층에서 이용하는 부호화 테이블이 규격 등으로 미리 정해져 있어도 된다.
다음에, 삼차원점의 속성 정보(property information)를 이용한 적응적인 엔트로피 부호화 처리에 대해서 설명한다. 예를 들면, 속성 정보는 대상 노드가 포함되는 물체의 정보, 또는 대상 노드가 유지하는 법선 벡터의 정보를 포함한다.
삼차원점의 속성 정보를 이용하여, 유사한 기하학적인 배치를 갖는 삼차원점을 그룹화할 수 있다. 예를 들면, 삼차원점이 갖는 공통의 속성 정보로서, 각 삼차원점의 방향을 나타내는 법선 벡터(normal vector)를 이용할 수 있다. 법선 벡터를 이용함으로써, 트리 구조 내의 유사한 어큐펀시 부호에 관련하는 기하학적인 배치를 찾아낼 수 있다.
또한, 속성 정보로서, 색 또는 반사율(반사도)이 이용되어도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 삼차원점의 색 또는 반사도를 이용하여, 유사한 기하학적인 배치를 갖는 삼차원점을 그룹화하고, 그룹마다 부호화 테이블을 전환하는 등의 처리를 행한다.
도 116은, 법선 벡터에 의거한 부호화 테이블의 전환을 설명하기 위한 도면이다. 도 116에 나타내는 바와 같이, 대상 노드의 법선 벡터가 속하는 법선 벡터군이 상이한 경우, 상이한 부호화 테이블이 이용된다. 예를 들면, 미리 정해진 범위에 포함되는 법선 벡터가 하나의 법선 벡터군으로 분류된다.
또한, 대상물의 분류가 상이한 경우, 어큐펀시 부호도 상이할 가능성이 높다. 따라서, 삼차원 데이터 부호화 장치는, 대상 노드가 속하는 대상물의 분류에 따라, 부호화 테이블을 선택해도 된다. 도 117은, 대상물의 분류에 의거한 부호화 테이블의 전환을 설명하기 위한 도면이다. 도 117에 나타내는 바와 같이, 대상물의 분류가 상이한 경우, 상이한 부호화 테이블이 이용된다.
이하, 본 실시 형태에 따른 비트 스트림의 구성예에 대해서 설명한다. 도 118은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치에 의해 생성되는 비트 스트림의 구성예를 나타내는 도면이다. 도 118에 나타내는 바와 같이 비트 스트림은, 부호화 테이블군, 테이블 인덱스, 부호화 어큐펀시를 포함한다. 부호화 테이블군은, 복수의 부호화 테이블을 포함한다.
테이블 인덱스는, 후속의 부호화 어큐펀시의 엔트로피 부호화에 이용된 부호화 테이블을 나타내는 인덱스이다. 부호화 어큐펀시는, 엔트로피 부호화 후의 어큐펀시 부호이다. 또한, 도 118에 나타내는 바와 같이 비트 스트림은, 테이블 인덱스와 부호화 어큐펀시의 세트를 복수 포함한다.
예를 들면, 도 118에 나타내는 예의 경우, 부호화 어큐펀시 0은, 테이블 인덱스 0으로 나타내어지는 콘텍스트 모델(이하 콘텍스트라고도 부른다)을 이용하여 엔트로피 부호화된 데이터이다. 또한, 부호화 어큐펀시 1은, 테이블 인덱스 1로 나타내어지는 콘텍스트를 이용하여 엔트로피 부호화된 데이터이다. 또한, 미리 규격 등으로 부호화 어큐펀시 0을 부호화하기 위한 콘텍스트를 규정해 두고, 삼차원 데이터 복호 장치는, 부호화 어큐펀시 0의 복호 시에 그 콘텍스트를 사용해도 된다. 이에 의해, 테이블 인덱스를 비트 스트림에 부가할 필요가 없어지므로, 오버헤드를 삭감할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 헤더 내에 각 콘텍스트를 초기화하기 위한 정보를 부가해도 된다.
삼차원 데이터 부호화 장치는, 대상 노드의 기하 정보, 구조 정보 또는 속성 정보를 이용하여 부호화 테이블을 결정하고, 결정한 부호화 테이블을 이용하여 어큐펀시 부호를 부호화한다. 삼차원 데이터 부호화 장치는, 부호화 결과와 부호화에 이용한 부호화 테이블의 정보(테이블 인덱스 등)를 비트 스트림에 부가하고, 당해 비트 스트림을 삼차원 데이터 복호 장치에 송신한다. 이에 의해, 삼차원 데이터 복호 장치는, 헤더에 부가된 부호화 테이블의 정보를 이용하여 어큐펀시 부호를 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 부호화에 이용한 부호화 테이블의 정보를 비트 스트림에 부가하지 않고, 삼차원 데이터 복호 장치는, 복호 후의 대상 노드의 기하 정보, 구조 정보 또는 속성 정보를 이용하여 부호화 테이블을 삼차원 데이터 부호화 장치와 동일한 방법으로 결정하고, 결정한 부호화 테이블을 이용하여 어큐펀시 부호를 복호해도 된다. 이에 의해, 비트 스트림에 부호화 테이블의 정보를 부가할 필요가 없어지므로, 오버헤드를 삭감할 수 있다.
도 119 및 도 120은, 부호화 테이블의 예를 나타내는 도면이다. 도 119 및 도 120에 나타내는 바와 같이, 1개의 부호화 테이블은, 8비트의 어큐펀시 부호의 값마다, 당해 값에 대응하는 콘텍스트 모델 및 콘텍스트 모델 타입을 나타낸다.
도 119에 나타내는 부호화 테이블과 같이, 복수의 어큐펀시 부호에 동일한 콘텍스트 모델(콘텍스트)이 적용되어도 된다. 또한, 각 어큐펀시 부호에 각기 다른 콘텍스트 모델이 할당되어도 된다. 이에 의해, 어큐펀시 부호의 출현 확률에 따라 콘텍스트 모델을 할당할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
또한, 콘텍스트 모델 타입은, 예를 들면, 콘텍스트 모델이, 어큐펀시 부호의 출현 빈도에 따라 확률 테이블을 갱신하는 콘텍스트 모델인지, 확률 테이블을 고정한 콘텍스트 모델인지 등을 나타낸다.
다음에, 비트 스트림 및 부호화 테이블의 다른 예를 나타낸다. 도 121은, 비트 스트림의 변형예의 구성예를 나타내는 도면이다. 도 121에 나타내는 바와 같이 비트 스트림은, 부호화 테이블군과 부호화 어큐펀시를 포함한다. 부호화 테이블군은, 복수의 부호화 테이블을 포함한다.
도 122 및 도 123은, 부호화 테이블의 예를 나타내는 도면이다. 도 122 및 도 123에 나타내는 바와 같이, 1개의 부호화 테이블은, 어큐펀시 부호에 포함되는 1비트마다, 당해 1비트에 대응하는 콘텍스트 모델 및 콘텍스트 모델 타입을 나타낸다.
도 124는, 어큐펀시 부호와 어큐펀시 부호의 비트 번호의 관계의 일례를 나타내는 도면이다.
이와 같이, 삼차원 데이터 부호화 장치는, 어큐펀시 부호를 바이너리 데이터로서 취급하고, 비트마다 각기 다른 콘텍스트 모델을 할당하여 어큐펀시 부호를 엔트로피 부호화해도 된다. 이에 의해, 어큐펀시 부호의 각 비트의 출현 확률에 따라 콘텍스트 모델을 할당할 수 있으므로, 부호화 효율을 향상시킬 수 있다.
구체적으로는, 어큐펀시 부호의 각 비트는, 대상 노드에 대응하는 공간 블록을 분할한 서브 블록에 대응한다. 따라서, 블록 내의 동일한 공간 위치의 서브 블록에 동일한 경향이 있는 경우에 부호화 효율을 향상시킬 수 있다. 예를 들면, 지면 또는 도로의 표면이 블록 내를 횡단하는 경우, 8진 트리에서는, 아래의 4개의 블록에는 삼차원점이 포함되고, 위의 4개의 블록에는 삼차원점이 포함되지 않는다. 또한, 수평 방향으로 늘어선 복수의 블록에 있어서 동일한 패턴이 나타난다. 따라서, 상기와 같이 비트마다 콘텍스트를 전환함으로써 부호화 효율을 향상시킬 수 있다.
또한, 어큐펀시 부호의 각 비트의 출현 빈도에 따라 확률 테이블을 갱신하는 콘텍스트 모델이 이용되어도 된다. 또한, 확률 테이블을 고정한 콘텍스트 모델이 이용되어도 된다.
다음에, 본 실시 형태에 따른 삼차원 데이터 부호화 처리 및 삼차원 데이터 복호 처리의 흐름을 설명한다.
도 125는, 기하 정보를 이용한 적응적인 엔트로피 부호화 처리를 포함하는 삼차원 데이터 부호화 처리의 플로차트이다.
분해 처리에서는, 삼차원점의 초기 바운더링 박스로부터 8진 트리가 생성된다. 바운더링 박스 내의 삼차원점의 위치에 따라 바운더링 박스는 분할된다. 구체적으로는, 비어 있지 않은 서브 공간은 더 분할된다. 다음에, 서브 공간에 삼차원점이 포함되는지의 여부를 나타내는 정보가 어큐펀시 부호로 부호화된다. 또한, 도 127 및 도 129에 나타내는 처리에서도 동일한 처리가 행해진다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점을 취득한다(S1901). 다음에, 삼차원 데이터 부호화 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1902).
단위 길이의 분해 처리가 완료되지 않은 경우(S1902에서 No), 삼차원 데이터 부호화 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1903).
다음에, 삼차원 데이터 부호화 장치는, 기하 정보를 취득하고(S1904), 취득한 기하 정보에 의거하여 부호화 테이블을 선택한다(S1905). 여기서 기하 정보란, 예를 들면, 상술한 바와 같이, 대상 노드의 주변 블록의 점유 상태의 기하학적인 배치 등을 나타내는 정보이다.
다음에, 삼차원 데이터 부호화 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S1906).
상기 단계 S1903~S1906의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1902에서 Yes), 삼차원 데이터 부호화 장치는, 생성한 정보를 포함하는 비트 스트림을 출력한다(S1907).
삼차원 데이터 부호화 장치는, 대상 노드의 기하 정보, 구조 정보 또는 속성 정보를 이용하여 부호화 테이블을 결정하고, 결정한 부호화 테이블을 이용하여 어큐펀시 부호의 비트열을 부호화한다. 삼차원 데이터 부호화 장치는, 부호화 결과와 부호화에 이용한 부호화 테이블의 정보(테이블 인덱스 등)를 비트 스트림에 부가하고, 당해 비트 스트림을 삼차원 데이터 복호 장치에 송신한다. 이에 의해, 삼차원 데이터 복호 장치는, 헤더에 부가된 부호화 테이블의 정보를 이용하여 어큐펀시 부호를 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 부호화에 이용한 부호화 테이블의 정보를 비트 스트림에 부가하지 않고, 삼차원 데이터 복호 장치는, 복호 후의 대상 노드의 기하 정보, 구조 정보 또는 속성 정보를 이용하여 부호화 테이블을 삼차원 데이터 부호화 장치와 동일한 방법으로 결정하고, 결정한 부호화 테이블을 이용하여 어큐펀시 부호를 복호해도 된다. 이에 의해, 비트 스트림에 부호화 테이블의 정보를 부가할 필요가 없어지므로, 오버헤드를 삭감할 수 있다.
도 126은, 기하 정보를 이용한 적응적인 엔트로피 복호 처리를 포함하는 삼차원 데이터 복호 처리의 플로차트이다.
복호 처리에 포함되는 분해 처리는, 상술한 부호화 처리에 포함되는 분해 처리와 동일하지만, 이하의 점이 상이하다. 삼차원 데이터 복호 장치는, 복호한 어큐펀시 부호를 이용하여, 초기 바운더링 박스를 분할한다. 삼차원 데이터 복호 장치는, 단위 길이의 처리를 종료한 경우, 바운더링 박스의 위치를 삼차원점과 위치로서 보존한다. 또한, 도 128 및 도 130에 나타내는 처리에서도 동일한 처리가 행해진다.
우선, 삼차원 데이터 복호 장치는, 입력된 비트 스트림을 취득한다(S1911). 다음에, 삼차원 데이터 복호 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1912).
단위 길이의 분해 처리가 완료되지 않은 경우(S1912에서 No), 삼차원 데이터 복호 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1913).
다음에, 삼차원 데이터 복호 장치는, 기하 정보를 취득하고(S1914), 취득한 기하 정보에 의거하여 부호화 테이블을 선택한다(S1915). 여기서 기하 정보란, 예를 들면, 상술한 바와 같이, 대상 노드의 주변 블록의 점유 상태의 기하학적인 배치 등을 나타내는 정보이다.
다음에, 삼차원 데이터 복호 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S1916).
상기 단계 S1913~S1916의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1912에서 Yes), 삼차원 데이터 복호 장치는, 삼차원점을 출력한다(S1917).
도 127은, 구조 정보를 이용한 적응적인 엔트로피 부호화 처리를 포함하는 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점을 취득한다(S1921). 다음에, 삼차원 데이터 부호화 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1922).
단위 길이의 분해 처리가 완료되지 않은 경우(S1922에서 No), 삼차원 데이터 부호화 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1923).
다음에, 삼차원 데이터 부호화 장치는, 구조 정보를 취득하고(S1924), 취득한 구조 정보에 의거하여 부호화 테이블을 선택한다(S1925). 여기서 구조 정보란, 예를 들면, 상술한 바와 같이, 대상 노드가 속하는 층 등을 나타내는 정보이다.
다음에, 삼차원 데이터 부호화 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S1926).
상기 단계 S1923~S1926의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1922에서 Yes), 삼차원 데이터 부호화 장치는, 생성한 정보를 포함하는 비트 스트림을 출력한다(S1927).
도 128은, 구조 정보를 이용한 적응적인 엔트로피 복호 처리를 포함하는 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 입력된 비트 스트림을 취득한다(S1931). 다음에, 삼차원 데이터 복호 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1932).
단위 길이의 분해 처리가 완료되지 않은 경우(S1932에서 No), 삼차원 데이터 복호 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1933).
다음에, 삼차원 데이터 복호 장치는, 구조 정보를 취득하고(S1934), 취득한 구조 정보에 의거하여 부호화 테이블을 선택한다(S1935). 여기서 구조 정보란, 예를 들면, 상술한 바와 같이, 대상 노드가 속하는 층 등을 나타내는 정보이다.
다음에, 삼차원 데이터 복호 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S1936).
상기 단계 S1933~S1936의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1932에서 Yes), 삼차원 데이터 복호 장치는, 삼차원점을 출력한다(S1937).
도 129는, 속성 정보를 이용한 적응적인 엔트로피 부호화 처리를 포함하는 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점을 취득한다(S1941). 다음에, 삼차원 데이터 부호화 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1942).
단위 길이의 분해 처리가 완료되지 않은 경우(S1942에서 No), 삼차원 데이터 부호화 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1943).
다음에, 삼차원 데이터 부호화 장치는, 속성 정보를 취득하고(S1944), 취득한 속성 정보에 의거하여 부호화 테이블을 선택한다(S1945). 여기서 속성 정보란, 예를 들면, 상술한 바와 같이, 대상 노드의 법선 벡터 등을 나타내는 정보이다.
다음에, 삼차원 데이터 부호화 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S1946).
상기 단계 S1943~S1946의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1942에서 Yes), 삼차원 데이터 부호화 장치는, 생성한 정보를 포함하는 비트 스트림을 출력한다(S1947).
도 130은, 속성 정보를 이용한 적응적인 엔트로피 복호 처리를 포함하는 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 입력된 비트 스트림을 취득한다(S1951). 다음에, 삼차원 데이터 복호 장치는, 단위 길이의 분해 처리가 완료되었는지의 여부를 판정한다(S1952).
단위 길이의 분해 처리가 완료되지 않은 경우(S1952에서 No), 삼차원 데이터 복호 장치는, 대상 노드에 분해 처리를 행함으로써 8진 트리를 생성한다(S1953).
다음에, 삼차원 데이터 복호 장치는, 속성 정보를 취득하고(S1954), 취득한 속성 정보에 의거하여 부호화 테이블을 선택한다(S1955). 여기서 속성 정보란, 예를 들면, 상술한 바와 같이, 대상 노드의 법선 벡터 등을 나타내는 정보이다.
다음에, 삼차원 데이터 복호 장치는, 선택된 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S1956).
상기 단계 S1953~S1956의 처리가 단위 길이의 분해 처리가 완료될 때까지 반복된다. 단위 길이의 분해 처리가 완료된 경우(S1952에서 Yes), 삼차원 데이터 복호 장치는, 삼차원점을 출력한다(S1957).
도 131은, 기하 정보를 이용한 부호화 테이블의 선택 처리(S1905)의 플로차트이다.
삼차원 데이터 부호화 장치는, 기하 정보로서, 예를 들면 트리 구조의 기하 그룹의 정보를 이용하여 어큐펀시 부호의 엔트로피 부호화에 이용하는 부호화 테이블을 전환해도 된다. 여기서 기하 그룹의 정보란, 대상 노드의 기하 패턴이 포함되는 기하 그룹을 나타내는 정보이다.
도 131에 나타내는 바와 같이, 기하 정보로 나타내어지는 기하 그룹이 기하 그룹 0인 경우(S1961에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 0을 선택한다(S1962). 기하 정보로 나타내어지는 기하 그룹이 기하 그룹 1인 경우(S1963에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 1을 선택한다(S1964). 그 이외의 경우(S1963에서 No), 삼차원 데이터 부호화 장치는 부호화 테이블 2를 선택한다(S1965).
또한, 부호화 테이블의 선택 방법은 상기에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 기하 정보로 나타내어지는 기하 그룹이 기하 그룹 2인 경우에는, 부호화 테이블 2를 이용하는 등, 기하 그룹의 값에 따라 더 부호화 테이블을 전환해도 된다.
예를 들면, 기하 그룹은, 대상 노드에 인접하는 노드에 점군이 포함되는지의 여부를 나타내는 점유 정보를 이용하여 결정된다. 또한, 회전 등의 변환을 적용함으로써 동일한 형상이 되는 기하 패턴은, 동일한 기하 그룹에 포함되어도 된다. 또한, 삼차원 데이터 부호화 장치는, 대상 노드에 인접하거나, 또는 대상 노드의 주위에 위치하는, 대상 노드와 동일 층에 속하는 노드의 점유 정보를 이용하여 기하 그룹을 선택해도 된다. 또한, 삼차원 데이터 부호화 장치는, 대상 노드와는 다른 층에 속하는 노드의 점유 정보를 이용하여 기하 그룹을 선택해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 부모 노드, 또는, 부모 노드에 인접하거나, 혹은 부모 노드의 주위에 위치하는 노드의 점유 정보를 이용하여 기하 그룹을 선택해도 된다.
또한, 삼차원 데이터 복호 장치에 있어서의 기하 정보를 이용한 부호화 테이블의 선택 처리(S1915)도 상기와 동일하다.
도 132는, 구조 정보를 이용한 부호화 테이블의 선택 처리(S1925)의 플로차트이다.
삼차원 데이터 부호화 장치는, 구조 정보로서, 예를 들면 트리 구조의 층의 정보를 이용하여 어큐펀시 부호의 엔트로피 부호화에 이용하는 부호화 테이블을 전환해도 된다. 여기서, 층의 정보는, 예를 들면, 대상 노드가 속하는 층을 나타낸다.
도 132에 나타내는 바와 같이, 대상 노드가 층 0에 속하는 경우(S1971에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 0을 선택한다(S1972). 대상 노드가 층 1에 속하는 경우(S1973에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 1을 선택한다(S1974). 그 이외의 경우(S1973에서 No), 삼차원 데이터 부호화 장치는 부호화 테이블 2를 선택한다(S1975).
또한, 부호화 테이블의 선택 방법은 상기에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 대상 노드가 층 2에 속하는 경우에는, 부호화 테이블 2를 이용하는 등, 대상 노드가 속하는 층에 따라 더 부호화 테이블을 전환해도 된다.
또한, 삼차원 데이터 복호 장치에 있어서의 구조 정보를 이용한 부호화 테이블의 선택 처리(S1935)도 상기와 동일하다.
도 133은, 속성 정보를 이용한 부호화 테이블의 선택 처리(S1945)의 플로차트이다.
삼차원 데이터 부호화 장치는, 속성 정보로서, 예를 들면 대상 노드가 속하는 대상물의 정보, 또는 대상 노드의 법선 벡터의 정보를 이용하여 어큐펀시 부호의 엔트로피 부호화에 이용하는 부호화 테이블을 전환해도 된다.
도 133에 나타내는 바와 같이, 대상 노드의 법선 벡터가 법선 벡터군 0에 속하는 경우(S1981에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 0을 선택한다(S1982). 대상 노드의 법선 벡터가 법선 벡터군 1에 속하는 경우(S1983에서 Yes), 삼차원 데이터 부호화 장치는 부호화 테이블 1을 선택한다(S1984). 그 이외의 경우(S1983에서 No), 삼차원 데이터 부호화 장치는 부호화 테이블 2를 선택한다(S1985).
또한, 부호화 테이블의 선택 방법은 상기에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 대상 노드의 법선 벡터가 법선 벡터군 2에 속하는 경우에는, 부호화 테이블 2를 이용하는 등, 대상 노드의 법선 벡터가 속하는 법선 벡터군에 따라 더 부호화 테이블을 전환해도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 법선 벡터군을, 대상 노드가 갖는 법선 벡터의 정보를 이용하여 선택한다. 예를 들면, 삼차원 데이터 부호화 장치는, 법선 벡터간의 거리가 미리 정해진 역치 이하인 법선 벡터를 동일한 법선 벡터군으로 판정한다.
또한, 대상 노드가 속하는 대상물의 정보란, 예를 들면 인물, 차, 또는 건물 등의 정보여도 된다.
이하, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1900) 및 삼차원 데이터 복호 장치(1910)의 구성을 설명한다. 도 134는, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(1900)의 블럭도이다. 도 134에 나타내는 삼차원 데이터 부호화 장치(1900)는, 8진 트리 생성부(1901), 유사성 정보 산출부(1902), 부호화 테이블 선택부(1903), 엔트로피 부호화부(1904)를 구비한다.
8진 트리 생성부(1901)는, 입력된 삼차원점으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리에 포함되는 각 노드의 어큐펀시 부호를 생성한다. 유사성 정보 산출부(1902)는, 예를 들면, 대상 노드의 기하 정보, 구조 정보, 또는 속성 정보인 유사성 정보를 취득한다. 부호화 테이블 선택부(1903)는, 대상 노드의 유사성 정보에 따라, 어큐펀시 부호의 엔트로피 부호화에 이용할 콘텍스트를 선택한다. 엔트로피 부호화부(1904)는, 선택된 콘텍스트를 이용하여 어큐펀시 부호를 엔트로피 부호화함으로써 비트 스트림을 생성한다. 또한, 엔트로피 부호화부(1904)는, 선택된 콘텍스트를 나타내는 정보를 비트 스트림에 부가해도 된다.
도 135는, 본 실시 형태에 따른 삼차원 데이터 복호 장치(1910)의 블럭도이다. 도 135에 나타내는 삼차원 데이터 복호 장치(1910)는, 8진 트리 생성부(1911), 유사성 정보 산출부(1912), 부호화 테이블 선택부(1913), 엔트로피 복호부(1914)를 구비한다.
8진 트리 생성부(1911)는, 엔트로피 복호부(1914)로부터 얻은 정보를 이용하여, 예를 들면 하층에서 상층으로 차례로 8진 트리를 생성한다. 유사성 정보 산출부(1912)는, 대상 노드의 기하 정보, 구조 정보, 또는 속성 정보인 유사성 정보를 취득한다. 부호화 테이블 선택부(1913)는, 대상 노드의 유사성 정보에 따라, 어큐펀시 부호의 엔트로피 복호에 이용할 콘텍스트를 선택한다. 엔트로피 복호부(1914)는, 선택된 콘텍스트를 이용하여 어큐펀시 부호를 엔트로피 복호함으로써, 삼차원점을 생성한다. 또한, 엔트로피 복호부(1914)는, 비트 스트림에 부가된, 선택된 콘텍스트의 정보를 복호하여 취득하고, 당해 정보로 나타내어지는 콘텍스트를 이용해도 된다.
이상, 도 122~도 124에 나타내는 바와 같이, 어큐펀시 부호의 각 비트에 대하여 복수의 콘텍스트가 설정된다. 즉, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 나타내는 비트열을 복수의 부호화 테이블로부터 선택된 부호화 테이블을 이용하여 엔트로피 부호화한다. 비트열은, N진 트리 구조에 있어서의 노드마다 N비트의 정보를 포함한다. N비트의 정보는, 대응하는 노드의 N개의 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 N개 포함한다. 복수의 부호화 테이블의 각각에 있어서, N비트의 정보의 각 비트에 대하여 콘텍스트가 설정되어 있다. 삼차원 데이터 부호화 장치는, 엔트로피 부호화에서는, N비트의 정보의 각 비트를, 선택된 부호화 테이블에 있어서 당해 비트에 대하여 설정되어 있는 콘텍스트를 이용하여 엔트로피 부호화한다.
이에 의하면, 삼차원 데이터 부호화 장치는, 비트마다 콘텍스트를 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 엔트로피 부호화에서는, 대상 노드에 인접하는 복수의 인접 노드의 각각에 삼차원점이 존재하는지에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 부호화 장치는, 인접 노드에 삼차원점이 존재하는지의 여부에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 엔트로피 부호화에서는, 복수의 인접 노드 중 삼차원점이 존재하는 인접 노드의 배치 위치를 나타내는 배치 패턴에 의거하여 부호화 테이블을 선택하고, 배치 패턴 중, 회전에 의해 동일한 배치 패턴이 되는 배치 패턴에 대해서는, 동일한 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 부호화 장치는, 부호화 테이블의 증가를 억제할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 엔트로피 부호화에서는, 대상 노드가 속하는 층에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 부호화 장치는, 대상 노드가 속하는 층에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 엔트로피 부호화에서는, 대상 노드의 법선 벡터에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 부호화 장치는, 법선 벡터에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 나타내는 비트열을 복수의 부호화 테이블로부터 선택된 부호화 테이블을 이용하여 엔트로피 복호한다. 비트열은, N진 트리 구조에 있어서의 노드마다 N비트의 정보를 포함한다. N비트의 정보는, 대응하는 노드의 N개의 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 1비트의 정보를 N개 포함한다. 복수의 부호화 테이블의 각각에 있어서, N비트의 정보의 각 비트에 대하여 콘텍스트가 설정되어 있다. 삼차원 데이터 복호 장치는, 엔트로피 복호에서는, N비트의 정보의 각 비트를, 선택된 부호화 테이블에 있어서 당해 비트에 대하여 설정되어 있는 콘텍스트를 이용하여 엔트로피 복호한다.
이에 의하면, 삼차원 데이터 복호 장치는, 비트마다 콘텍스트를 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 엔트로피 복호에서는, 대상 노드에 인접하는 복수의 인접 노드의 각각에 삼차원점이 존재하는지에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 복호 장치는, 인접 노드에 삼차원점이 존재하는지의 여부에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 엔트로피 복호에서는, 복수의 인접 노드 중 삼차원점이 존재하는 인접 노드의 배치 위치를 나타내는 배치 패턴에 의거하여 부호화 테이블을 선택하고, 배치 패턴 중, 회전에 의해 동일한 배치 패턴이 되는 배치 패턴에 대해서는, 동일한 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 복호 장치는, 부호화 테이블의 증가를 억제할 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 엔트로피 복호에서는, 대상 노드가 속하는 층에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 복호 장치는, 대상 노드가 속하는 층에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 엔트로피 복호에서는, 대상 노드의 법선 벡터에 의거하여, 복수의 부호화 테이블로부터 사용할 부호화 테이블을 선택한다. 이에 의하면, 삼차원 데이터 복호 장치는, 법선 벡터에 의거하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 12)
본 실시 형태에서는, 어큐펀시 부호의 부호화 시에 있어서의 참조의 제어 방법에 대해서 설명한다. 또한, 이하에서는, 주로 삼차원 데이터 부호화 장치의 동작을 설명하지만, 삼차원 데이터 복호 장치에 있어서도 동일한 처리가 행해져도 된다.
도 136 및 도 137은, 본 실시 형태에 따른 참조 관계를 나타내는 도면이다. 도 136은, 참조 관계를 8진 트리 구조 상에서 나타내는 도면이고, 도 137은, 참조 관계를 공간 영역 상에서 나타내는 도면이다.
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 부호화 대상의 노드(이하, 대상 노드라고 부른다)의 부호화 정보를 부호화할 때에, 대상 노드가 속하는 부모 노드(parent node) 내의 각 노드의 부호화 정보를 참조한다. 단, 부모 노드와 동일층의 다른 노드(이하, 부모 인접 노드) 내의 각 노드의 부호화 정보는 참조하지 않는다. 즉, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 참조를 불가로 설정하거나, 또는 참조를 금지로 한다.
또한, 삼차원 데이터 부호화 장치는, 부모 노드가 속하는 부모 노드(이하, 조부 노드(grandparent node)라고 부른다) 내의 부호화 정보의 참조를 허가해도 된다. 즉, 삼차원 데이터 부호화 장치는, 대상 노드가 속하는 부모 노드 및 조부 노드의 부호화 정보를 참조하여 대상 노드의 부호화 정보를 부호화해도 된다.
여기서 부호화 정보란, 예를 들면 어큐펀시 부호이다. 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화할 때에, 대상 노드가 속하는 부모 노드 내의 각 노드에 점군이 포함되는지의 여부를 나타내는 정보(이하, 점유 정보)를 참조한다. 바꾸어 말하면, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화할 때에, 부모 노드의 어큐펀시 부호를 참조한다. 한편, 삼차원 데이터 부호화 장치는, 부모 인접 노드 내의 각 노드의 점유 정보는 참조하지 않는다. 즉, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 어큐펀시 부호를 참조하지 않는다. 또한, 삼차원 데이터 부호화 장치는, 조부 노드 내의 각 노드의 점유 정보를 참조해도 된다. 즉, 삼차원 데이터 부호화 장치는, 부모 노드 및 부모 인접 노드의 점유 정보를 참조해도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화할 때에, 대상 노드가 속하는 부모 노드 또는 조부 노드의 어큐펀시 부호를 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 부호화할 때에 이용하는 부호화 테이블을 전환한다. 또한, 이 상세는 후술한다. 이때, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 어큐펀시 부호를 참조하지 않아도 된다. 이에 의해, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화할 때에, 부모 노드 또는 조부 노드의 어큐펀시 부호의 정보에 따라 적절히 부호화 테이블을 전환할 수 있으므로, 부호화 효율을 향상시킬 수 있다. 또한, 삼차원 데이터 부호화 장치는, 부모 인접 노드를 참조하지 않음으로써, 부모 인접 노드의 정보의 확인 처리, 및 그들을 기억하기 위한 메모리 용량을 억제할 수 있다. 또한, 8진 트리의 각 노드의 어큐펀시 부호를 깊이 우선순으로 스캔하여 부호화하는 것이 용이해진다.
이하, 부모 노드의 어큐펀시 부호를 이용한 부호화 테이블 전환예에 대해서 설명한다. 도 138은, 대상 노드와 인접 참조 노드의 예를 나타내는 도면이다. 도 139는, 부모 노드와 노드의 관계를 나타내는 도면이다. 도 140은, 부모 노드의 어큐펀시 부호의 예를 나타내는 도면이다. 여기서, 인접 참조 노드란, 대상 노드에 공간적으로 인접하는 노드 중, 대상 노드의 부호화 시에 참조되는 노드이다. 도 138에 나타내는 예에서는, 인접 노드는, 대상 노드와 동일 층에 속하는 노드이다. 또한, 참조 인접 노드로서 대상 블록의 x방향으로 인접하는 노드 X와, y방향으로 인접하는 노드 Y와, z방향으로 인접하는 노드 Z가 이용된다. 즉, x, y, z의 각 방향에 있어서 각각 1개의 인접 블록이 참조 인접 블록으로 설정된다.
또한, 도 139에 나타내는 노드 번호는 일례이며, 노드 번호와 노드의 위치의 관계는 이에 한정하지 않는다. 또한, 도 140에서는, 하위 비트에 노드 0이 할당되고, 상위 비트에 노드 7이 할당되어 있지만, 반대의 순서로 할당이 행해져도 된다. 또한, 각 노드는 임의의 비트에 할당되어도 된다.
삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 엔트로피 부호화할 때의 부호화 테이블을, 예를 들면 하기 식에 의해 결정한다.
CodingTable=(FlagX<<2)+(FlagY<<1)+(FlagZ)
여기서, CodingTable은, 대상 노드의 어큐펀시 부호용 부호화 테이블을 나타내고, 값 0~7 중 어느 하나를 나타낸다. FlagX는, 인접 노드 X의 점유 정보이며, 인접 노드 X가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagY는, 인접 노드 Y의 점유 정보이며, 인접 노드 Y가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagZ는, 인접 노드 Z의 점유 정보이며, 인접 노드 Z가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다.
또한, 인접 노드가 점유인지의 여부를 나타내는 정보는, 부모 노드의 어큐펀시 부호에 포함되어 있기 때문에, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호에 나타내어지는 값을 이용하여 부호화 테이블을 선택해도 된다.
이상에 의해, 삼차원 데이터 부호화 장치는, 대상 노드의 인접 노드에 점군이 포함되는지의 여부를 나타내는 정보를 이용하여 부호화 테이블을 전환함으로써 부호화 효율을 향상시킬 수 있다.
또한, 삼차원 데이터 부호화 장치는, 도 138에 나타내는 바와 같이, 부모 노드 내의 대상 노드의 공간 위치에 따라 인접 참조 노드를 전환해도 된다. 즉, 삼차원 데이터 부호화 장치는, 대상 노드의 부모 노드 내의 공간 위치에 따라, 복수의 인접 노드 중, 참조하는 인접 노드를 전환해도 된다.
다음에, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치의 구성예를 설명한다. 도 141은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(2100)의 블럭도이다. 도 141에 나타내는 삼차원 데이터 부호화 장치(2100)는, 8진 트리 생성부(2101), 기하 정보 산출부(2102), 부호화 테이블 선택부(2103), 엔트로피 부호화부(2104)를 구비한다.
8진 트리 생성부(2101)는, 입력된 삼차원점(포인트 클라우드)으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리에 포함되는 각 노드의 어큐펀시 부호를 생성한다. 기하 정보 산출부(2102)는, 대상 노드의 인접 참조 노드가 점유인지의 여부를 나타내는 점유 정보를 취득한다. 예를 들면, 기하 정보 산출부(2102)는, 대상 노드가 소속된 부모 노드의 어큐펀시 부호로부터 인접 참조 노드의 점유 정보를 취득한다. 또한, 기하 정보 산출부(2102)는, 도 138에 나타내는 바와 같이, 대상 노드의 부모 노드 내의 위치에 따라 인접 참조 노드를 전환해도 된다. 또한, 기하 정보 산출부(2102)는, 부모 인접 노드 내의 각 노드의 점유 정보는 참조하지 않는다.
부호화 테이블 선택부(2103)는, 기하 정보 산출부(2102)에서 산출된 인접 참조 노드의 점유 정보를 이용하여 대상 노드의 어큐펀시 부호의 엔트로피 부호화에 이용할 부호화 테이블을 선택한다. 엔트로피 부호화부(2104)는, 선택된 부호화 테이블을 이용하여 어큐펀시 부호를 엔트로피 부호화함으로써 비트 스트림을 생성한다. 또한, 엔트로피 부호화부(2104)는, 선택된 부호화 테이블을 나타내는 정보를 비트 스트림에 부가해도 된다.
도 142는, 본 실시 형태에 따른 삼차원 데이터 복호 장치(2110)의 블럭도이다. 도 142에 나타내는 삼차원 데이터 복호 장치(2110)는, 8진 트리 생성부(2111), 기하 정보 산출부(2112), 부호화 테이블 선택부(2113), 엔트로피 복호부(2114)를 구비한다.
8진 트리 생성부(2111)는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 8진 트리 생성부(2111)는, 예를 들면, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 대상 노드로서 노드 A0~A7이 차례로 설정된다.
기하 정보 산출부(2112)는, 대상 노드의 인접 참조 노드가 점유인지의 여부를 나타내는 점유 정보를 취득한다. 예를 들면, 기하 정보 산출부(2112)는, 대상 노드가 소속된 부모 노드의 어큐펀시 부호로부터 인접 참조 노드의 점유 정보를 취득한다. 또한, 기하 정보 산출부(2112)는, 도 138에 나타내는 바와 같이, 대상 노드의 부모 노드 내의 위치에 따라 인접 참조 노드를 전환해도 된다. 또한, 기하 정보 산출부(2112)는, 부모 인접 노드 내의 각 노드의 점유 정보는 참조하지 않는다.
부호화 테이블 선택부(2113)는, 기하 정보 산출부(2112)에서 산출된 인접 참조 노드의 점유 정보를 이용하여 대상 노드의 어큐펀시 부호의 엔트로피 복호에 이용할 부호화 테이블(복호 테이블)을 선택한다. 엔트로피 복호부(2114)는, 선택된 부호화 테이블을 이용하여 어큐펀시 부호를 엔트로피 복호함으로써, 삼차원점을 생성한다. 또한, 부호화 테이블 선택부(2113)는, 비트 스트림에 부가된, 선택된 부호화 테이블의 정보를 복호하여 취득하고, 엔트로피 복호부(2114)는, 취득된 정보로 나타내어지는 부호화 테이블을 이용해도 된다.
비트 스트림에 포함되는 어큐펀시 부호(8비트)의 각 비트는, 8개의 소공간 A(노드 A0~노드 A7)에 각각 점군이 포함되는지의 여부를 나타낸다. 또한 다시, 삼차원 데이터 복호 장치는, 소공간 노드 A0을 8개의 소공간 B(노드 B0~노드 B7)로 분할하여 8진 트리를 생성하고, 소공간 B의 각 노드에 점군이 포함되는지의 여부를 나타내는 정보를 어큐펀시 부호를 복호하여 취득한다. 이와 같이, 삼차원 데이터 복호 장치는, 대공간으로부터 소공간으로 8진 트리를 생성하면서 각 노드의 어큐펀시 부호를 복호한다.
이하, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치에 의한 처리의 흐름을 설명한다. 도 143은, 삼차원 데이터 부호화 장치에 있어서의 삼차원 데이터 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군의 일부 또는 전부가 포함되는 공간(대상 노드)을 결정(정의)한다(S2101). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2102). 다음에, 삼차원 데이터 부호화 장치는, 각 노드에 점군이 포함되는지의 여부에 따라 대상 노드의 어큐펀시 부호를 생성한다(S2103).
다음에, 삼차원 데이터 부호화 장치는, 대상 노드의 인접 참조 노드의 점유 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출(취득)한다(S2104). 다음에, 삼차원 데이터 부호화 장치는, 결정한 대상 노드의 인접 참조 노드의 점유 정보에 의거하여, 엔트로피 부호화에 이용할 부호화 테이블을 선택한다(S2105). 다음에, 삼차원 데이터 부호화 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S2106).
또한, 삼차원 데이터 부호화 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 부호화하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2107). 즉, 단계 S2102~S2106까지의 처리가 재귀적으로 반복된다.
도 144는, 삼차원 데이터 복호 장치에 있어서의 삼차원 데이터 복호 방법의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보를 이용하여 복호할 공간(대상 노드)을 결정(정의)한다(S2111). 다음에, 삼차원 데이터 복호 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2112). 다음에, 삼차원 데이터 복호 장치는, 대상 노드의 인접 참조 노드의 점유 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출(취득)한다(S2113).
다음에, 삼차원 데이터 복호 장치는, 인접 참조 노드의 점유 정보에 의거하여 엔트로피 복호에 이용할 부호화 테이블을 선택한다(S2114). 다음에, 삼차원 데이터 복호 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S2115).
또한, 삼차원 데이터 복호 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 복호하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2116). 즉, 단계 S2112~S2115까지의 처리가 재귀적으로 반복된다.
다음에, 부호화 테이블의 전환의 예를 설명한다. 도 145는, 부호화 테이블의 전환예를 나타내는 도면이다. 예를 들면, 도 145에 나타내는 부호화 테이블 0과 같이, 복수의 어큐펀시 부호에 동일한 콘텍스트 모델이 적용되어도 된다. 또한, 각 어큐펀시 부호에 각기 다른 콘텍스트 모델이 할당되어도 된다. 이에 의해, 어큐펀시 부호의 출현 확률에 따라 콘텍스트 모델을 할당할 수 있으므로, 부호화 효율을 향상시킬 수 있다. 또한, 어큐펀시 부호의 출현 빈도에 따라 확률 테이블을 갱신하는 콘텍스트 모델이 이용되어도 된다. 또는, 확률 테이블을 고정한 콘텍스트 모델이 이용되어도 된다.
또한, 도 145에서는, 도 119 및 도 120에 나타내는 부호화 테이블이 이용되는 예를 나타내었지만, 도 122 및 도 123에 나타내는 부호화 테이블이 이용되어도 된다.
이하, 본 실시 형태의 변형예 1에 대해서 설명한다. 도 146은, 본 변형예에서의 참조 관계를 나타내는 도면이다. 상기 실시 형태에서는, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 어큐펀시 부호를 참조하지 않는다고 했지만, 부모 인접 노드의 어큐펀시 부호화를 참조할지의 여부를, 특정 조건에 따라 전환해도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 8진 트리를 폭 우선으로 스캔하면서 부호화를 행할 때는, 부모 인접 노드 내의 노드의 점유 정보를 참조하여, 대상 노드의 어큐펀시 부호를 부호화한다. 한편, 삼차원 데이터 부호화 장치는, 8진 트리를 깊이 우선으로 스캔하면서 부호화할 때는, 부모 인접 노드 내의 노드의 점유 정보의 참조를 금지한다. 이와 같이 8진 트리의 노드의 스캔 순서(부호화 순서)에 따라, 적절히 참조 가능한 노드를 전환함으로써, 부호화 효율의 향상과 처리 부하의 억제를 실현할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 8진 트리를 폭 우선으로 부호화했는지, 깊이 우선으로 부호화했는지 등의 정보를 비트 스트림의 헤더에 부가해도 된다. 도 147은, 이 경우의 헤더 정보의 신택스예를 나타내는 도면이다. 도 147에 나타내는 octree_scan_order는, 8진 트리의 부호화 순서를 나타내는 부호화 순서 정보(부호화 순서 플래그)이다. 예를 들면, octree_scan_order가 0인 경우, 폭 우선을 나타내고, 1인 경우는 깊이 우선을 나타낸다. 이에 의해, 삼차원 데이터 복호 장치는, octree_scan_order를 참조함으로써, 비트 스트림이 폭 우선 및 깊이 우선 중 어느 것으로 부호화되었는지를 알 수 있으므로, 비트 스트림을 적절히 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 참조를 금지하는지의 여부를 나타내는 정보를 비트 스트림의 헤더 정보에 부가해도 된다. 도 148은, 이 경우의 헤더 정보의 신택스예를 나타내는 도면이다. limit_refer_flag는, 부모 인접 노드의 참조를 금지하는지의 여부를 나타내는 금지 전환 정보(금지 전환 플래그)이다. 예를 들면, limit_refer_flag가 1인 경우는 부모 인접 노드의 참조를 금지하는 것을 나타내고, 0인 경우는 참조 제한 없음(부모 인접 노드의 참조를 허가함)을 나타낸다.
즉, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 참조를 금지할지의 여부를 결정하고, 상기 결정의 결과에 의거하여, 부모 인접 노드의 참조를 금지할지, 허가할지를 전환한다. 또한, 삼차원 데이터 부호화 장치는, 상기 결정의 결과로서, 부모 인접 노드의 참조를 금지하는지의 여부를 나타내는 금지 전환 정보를 포함하는 비트 스트림을 생성한다.
또한, 삼차원 데이터 복호 장치는, 부모 인접 노드의 참조를 금지하는지의 여부를 나타내는 금지 전환 정보를 비트 스트림으로부터 취득하고, 금지 전환 정보에 의거하여, 부모 인접 노드의 참조를 금지할지, 허가할지를 전환한다.
이에 의해 삼차원 데이터 부호화 장치는, 부모 인접 노드의 참조를 제어하여 비트 스트림을 생성할 수 있다. 또한, 삼차원 데이터 복호 장치는, 부모 인접 노드의 참조가 금지되어 있는지의 여부를 나타내는 정보를 비트 스트림의 헤더로부터 취득할 수 있다.
또한, 본 실시 형태에서는, 부모 인접 노드의 참조를 금지하는 부호화 처리의 예로서 어큐펀시 부호의 부호화 처리를 예로서 기재했지만, 반드시 이에 한정하지 않는다. 예를 들면, 8진 트리의 노드의 다른 정보를 부호화할 때에도 동일한 수법을 적용 가능하다. 예를 들면, 노드에 부가된 색, 법선 벡터, 또는 반사율 등의 그 외의 속성 정보를 부호화할 때에, 본 실시 형태의 수법을 적용해도 된다. 또한, 부호화 테이블 또는 예측치를 부호화할 때에도 동일한 수법을 적용할 수 있다.
다음에, 본 실시 형태의 변형예 2에 대해서 설명한다. 상기 설명에서는, 도 138에 나타내는 바와 같이, 3개의 참조 인접 노드가 이용되는 예를 나타냈지만 4개 이상의 참조 인접 노드가 이용되어도 된다. 도 149는, 대상 노드 및 참조 인접 노드의 예를 나타내는 도면이다.
예를 들면, 삼차원 데이터 부호화 장치는, 도 149에 나타내는 대상 노드의 어큐펀시 부호를 엔트로피 부호화할 때의 부호화 테이블을, 예를 들면 하기의 식에 의해 산출한다.
CodingTable=(FlagX0<<3)+(FlagX1<<2)+(FlagY<<1)+(FlagZ)
여기서, CodingTable은, 대상 노드의 어큐펀시 부호용 부호화 테이블을 나타내고, 값 0~15 중 어느 하나를 나타낸다. FlagXN은, 인접 노드 XN(N=0..1)의 점유 정보이며, 인접 노드 XN이 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagY는, 인접 노드 Y의 점유 정보이며, 인접 노드 Y가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagZ는, 인접 노드 Z의 점유 정보이며, 인접 노드 Z가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다.
이때, 만일 인접 노드, 예를 들면 도 149의 인접 노드 X0이 참조 불가(참조 금지)인 경우는, 삼차원 데이터 부호화 장치는, 대체값으로서 1(점유), 또는, 0(비점유)과 같은 고정값을 이용하여도 된다.
도 150은, 대상 노드 및 인접 노드의 예를 나타내는 도면이다. 도 150에 나타내는 바와 같이, 인접 노드가 참조 불가(참조 금지)인 경우는, 대상 노드의 조부 노드의 어큐펀시 부호를 참조하여, 인접 노드의 점유 정보를 산출해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 도 150에 나타내는 인접 노드 X0 대신에, 인접 노드 G0의 점유 정보를 이용하여 상기 식의 FlagX0을 산출하고, 산출한 FlagX0을 이용하여 부호화 테이블의 값을 결정해도 된다. 또한, 도 150에 나타내는 인접 노드 G0은, 조부 노드의 어큐펀시 부호로 점유인지 아닌지를 판별할 수 있는 인접 노드이다. 인접 노드 X1은, 부모 노드의 어큐펀시 부호로 점유인지 아닌지를 판별할 수 있는 인접 노드이다.
이하, 본 실시 형태의 변형예 3에 대해서 설명한다. 도 151 및 도 152는, 본 변형예에 따른 참조 관계를 나타내는 도면이다. 도 151은, 참조 관계를 8진 트리 구조 상에서 나타내는 도면이고, 도 152는, 참조 관계를 공간 영역 상에서 나타내는 도면이다.
본 변형예에서는, 삼차원 데이터 부호화 장치는, 부호화 대상의 노드(이하, 대상 노드 2라고 부른다)의 부호화 정보를 부호화할 때에, 대상 노드 2가 속하는 부모 노드 내의 각 노드의 부호화 정보를 참조한다. 즉, 삼차원 데이터 부호화 장치는, 복수의 인접 노드 중, 대상 노드와 부모 노드가 동일한 제1 노드의 자식 노드의 정보(예를 들면 점유 정보)의 참조를 허가한다. 예를 들면, 삼차원 데이터 부호화 장치는, 도 151에 나타내는 대상 노드 2의 어큐펀시 부호를 부호화할 때에, 대상 노드 2가 속하는 부모 노드 내에 존재하는 노드, 예를 들면, 도 151에 나타내는 대상 노드의 어큐펀시 부호를 참조한다. 도 151에 나타내는 대상 노드의 어큐펀시 부호는, 도 152에 나타내는 바와 같이, 예를 들면, 대상 노드 2에 인접하는 대상 노드 내의 각 노드가 점유인지의 여부를 나타내고 있다. 따라서, 삼차원 데이터 부호화 장치는, 대상 노드의 보다 세세한 형상에 따라 대상 노드 2의 어큐펀시 부호의 부호화 테이블을 전환할 수 있으므로 부호화 효율을 향상시킬 수 있다.
삼차원 데이터 부호화 장치는, 대상 노드 2의 어큐펀시 부호를 엔트로피 부호화할 때의 부호화 테이블을, 예를 들면 하기 식에 의해 산출해도 된다.
CodingTable=(FlagX1<<5)+(FlagX2<<4)+(FlagX3<<3)+(FlagX4<<2)+(FlagY<<1)+(FlagZ)
여기서, CodingTable은, 대상 노드 2의 어큐펀시 부호용 부호화 테이블을 나타내고, 값 0~63 중 어느 하나를 나타낸다. FlagXN은, 인접 노드 XN(N=1..4)의 점유 정보이며, 인접 노드 XN이 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagY는, 인접 노드 Y의 점유 정보이며, 인접 노드 Y가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다. FlagZ는, 인접 노드 Y의 점유 정보이며, 인접 노드 Z가 점군을 포함(점유)한다면 1을 나타내고, 그렇지 않다면 0을 나타낸다.
또한, 삼차원 데이터 부호화 장치는, 부호화 테이블의 산출 방법을 부모 노드 내에서의 대상 노드 2의 노드 위치에 따라 변경해도 된다.
또한, 삼차원 데이터 부호화 장치는, 부모 인접 노드의 참조가 금지되지 않은 경우, 부모 인접 노드 내의 각 노드의 부호화 정보를 참조해도 된다. 예를 들면, 부모 인접 노드의 참조가 금지되지 않은 경우, 대상 노드와 부모 노드가 상이한 제3 노드의 자식 노드의 정보(예를 들면 점유 정보)의 참조가 허가된다. 예를 들면, 도 150에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 대상 노드와 부모 노드가 상이한 인접 노드 X0의 어큐펀시 부호를 참조하여, 인접 노드 X0의 자식 노드의 점유 정보를 취득한다. 삼차원 데이터 부호화 장치는, 취득한 인접 노드 X0의 자식 노드의 점유 정보에 의거하여, 대상 노드의 어큐펀시 부호의 엔트로피 부호화에 이용하는 부호화 테이블을 전환한다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보(예를 들면 어큐펀시 부호)를 부호화한다. 도 136 및 도 137에 나타내는 바와 같이, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 대상 노드와 부모 노드가 동일한 제1 노드의 정보(예를 들면 점유 정보)의 참조를 허가하고, 대상 노드와 부모 노드가 상이한 제2 노드의 정보(예를 들면 점유 정보)의 참조를 금지한다. 바꾸어 말하면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 부모 노드의 정보(예를 들면 어큐펀시 부호)의 참조를 허가하고, 부모 노드와 동일층의 다른 노드(부모 인접 노드)의 정보(예를 들면 어큐펀시 부호)의 참조를 금지한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 대상 노드와 부모 노드가 동일한 제1 노드의 정보를 참조함으로써 부호화 효율을 향상시킬 수 있다. 또한, 당해 삼차원 데이터 부호화 장치는, 복수의 인접 노드 중, 대상 노드와 부모 노드가 상이한 제2 노드의 정보의 참조를 하지 않음으로써, 처리량을 저감할 수 있다. 이와 같이, 당해 삼차원 데이터 부호화 장치는, 부호화 효율을 향상시킬 수 있음과 더불어, 처리량을 저감할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 또한, 제2 노드의 정보의 참조를 금지할지의 여부를 결정하고, 상기 부호화에서는, 상기 결정의 결과에 의거하여, 제2 노드의 정보의 참조를 금지할지, 허가할지를 전환한다. 삼차원 데이터 부호화 장치는, 또한, 상기 결정의 결과로서, 제2 노드의 정보의 참조를 금지하는지의 여부를 나타내는 금지 전환 정보(예를 들면, 도 148에 나타내는 limit_refer_flag)를 포함하는 비트 스트림을 생성한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 제2 노드의 정보의 참조를 금지할지의 여부를 전환할 수 있다. 또한, 삼차원 데이터 복호 장치는, 금지 전환 정보를 이용하여 적절히 복호 처리를 행할 수 있다.
예를 들면, 대상 노드의 정보는, 대상 노드에 속하는 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 정보(예를 들면 어큐펀시 부호)이고, 제1 노드의 정보는, 제1 노드에 삼차원점이 존재하는지의 여부를 나타내는 정보(제1 노드의 점유 정보)이고, 제2 노드의 정보는, 제2 노드에 삼차원점이 존재하는지의 여부를 나타내는 정보(제2 노드의 점유 정보)이다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 제1 노드에 삼차원점이 존재하는지의 여부에 의거하여, 부호화 테이블을 선택하고, 선택된 부호화 테이블을 이용하여, 대상 노드의 정보(예를 들면 어큐펀시 부호)를 엔트로피 부호화한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 도 151 및 도 152에 나타내는 바와 같이, 복수의 인접 노드 중, 제1 노드의 자식 노드의 정보(예를 들면 점유 정보)의 참조를 허가한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 인접 노드의 보다 상세한 정보를 참조할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 도 138에 나타내는 바와 같이, 상기 부호화에서는, 대상 노드의 부모 노드 내의 공간 위치에 따라, 복수의 인접 노드 중, 참조하는 인접 노드를 전환한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 대상 노드의 부모 노드 내의 공간 위치에 따라, 적절한 인접 노드를 참조할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보(예를 들면 어큐펀시 부호)를 복호한다. 도 136 및 도 137에 나타내는 바와 같이, 삼차원 데이터 복호 장치는, 상기 복호에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 대상 노드와 부모 노드가 동일한 제1 노드의 정보(예를 들면 점유 정보)의 참조를 허가하고, 대상 노드와 부모 노드가 상이한 제2 노드의 정보(예를 들면 점유 정보)의 참조를 금지한다. 바꾸어 말하면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 부모 노드의 정보(예를 들면 어큐펀시 부호)의 참조를 허가하고, 부모 노드와 동일층의 다른 노드(부모 인접 노드)의 정보(예를 들면 어큐펀시 부호)의 참조를 금지한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 대상 노드와 부모 노드가 동일한 제1 노드의 정보를 참조함으로써 부호화 효율을 향상시킬 수 있다. 또한, 당해 삼차원 데이터 복호 장치는, 복수의 인접 노드 중, 대상 노드와 부모 노드가 상이한 제2 노드의 정보의 참조를 하지 않음으로써, 처리량을 저감할 수 있다. 이와 같이, 당해 삼차원 데이터 복호 장치는, 부호화 효율을 향상시킬 수 있음과 더불어, 처리량을 저감할 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 또한, 제2 노드의 정보의 참조를 금지하는지의 여부를 나타내는 금지 전환 정보(예를 들면, 도 148에 나타내는 limit_refer_flag)를 비트 스트림으로부터 취득하고, 상기 복호에서는, 금지 전환 정보에 의거하여, 제2 노드의 정보의 참조를 금지할지, 허가할지를 전환한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 금지 전환 정보를 이용하여 적절히 복호 처리를 행할 수 있다.
예를 들면, 대상 노드의 정보는, 대상 노드에 속하는 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 정보(예를 들면 어큐펀시 부호)이고, 제1 노드의 정보는, 제1 노드에 삼차원점이 존재하는지의 여부를 나타내는 정보(제1 노드의 점유 정보)이고, 제2 노드의 정보는, 제2 노드에 삼차원점이 존재하는지의 여부를 나타내는 정보(제2 노드의 점유 정보)이다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 제1 노드에 삼차원점이 존재하는지의 여부에 의거하여, 부호화 테이블을 선택하고, 선택된 부호화 테이블을 이용하여, 대상 노드의 정보(예를 들면 어큐펀시 부호)를 엔트로피 복호한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 도 151 및 도 152에 나타내는 바와 같이, 복수의 인접 노드 중, 제1 노드의 자식 노드의 정보(예를 들면 점유 정보)의 참조를 허가한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 인접 노드의 보다 상세한 정보를 참조할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 도 138에 나타내는 바와 같이, 상기 복호에서는, 대상 노드의 부모 노드 내의 공간 위치에 따라, 복수의 인접 노드 중, 참조하는 인접 노드를 전환한다.
이에 의하면, 당해 삼차원 데이터 복호 장치는, 대상 노드의 부모 노드 내의 공간 위치에 따라, 적절한 인접 노드를 참조할 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 13)
이하에서는, 주로 삼차원 데이터 부호화 장치의 동작을 설명하지만, 삼차원 데이터 복호 장치에 있어서도 동일한 처리가 행해져도 된다.
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군(Point Cloud)을 8진 트리 구조로 부호화하는 경우에, 8진 트리에 포함되는 리프가 1개의 삼차원점을 가질 때까지 분할을 반복하여 부호화하는 경우는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하는지, 1개 이상의 삼차원점을 포함하는지를 나타내는 모드 정보를 비트 스트림에 부가한다. 또한, 삼차원 데이터 부호화 장치는, 모드 정보가 참인 경우(8진 트리의 각 리프가 1개의 삼차원점을 포함하는 경우)는, 리프에 관련된 리프 정보를 부호화하지 않고, 모드 정보가 거짓인 경우(8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 경우)는, 리프에 관련된 리프 정보를 부호화한다.
여기서 리프 정보란, 예를 들면, 리프 내에 몇 개의 삼차원점이 포함되는지를 나타내는 정보, 혹은 또는 도 61~도 67에 기재한 바와 같이, 리프에 포함되는 삼차원점의 상대 좌표 등을 나타내는 정보, 또는, 그 양쪽 모두를 포함한다. 이에 의해, 8진 트리의 각 리프가 1개의 삼차원점을 포함하는 경우는, 리프 정보를 리프마다 부호화할 필요가 없으므로, 부호화 효율을 향상시킬 수 있다. 또한, 삼차원 데이터 부호화 장치는, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 경우는, 리프 정보를 적절히 부호화하여 비트 스트림에 부가한다. 이에 의해, 삼차원 데이터 복호 장치는, 리프 정보를 이용하여 리프 내의 삼차원점을 올바르게 복원하는 것이 가능해진다.
도 153은, 본 실시 형태에 따른 비트 스트림의 헤더 정보의 신택스예를 나타내는 도면이다. 이 헤더 정보는, 예를 들면, WLD, SPC 또는 VLM 등의 헤더 정보이다. 도 153에 나타내는 single_point_per_leaf는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하는지, 1개 이상의 삼차원점을 포함하는지를 나타내는 정보이다. 여기서, 8진 트리의 각 리프가 1개의 삼차원점을 포함한다는 것은, 8진 트리에 포함되는 모든 리프가 1개의 삼차원점을 포함하는(즉, 2개 이상의 삼차원점을 포함하는 리프가 존재하지 않는) 것을 의미한다. 또한, 여기에서의 8진 트리란, 예를 들면, 모드 정보가 부가되는 단위의 8진 트리이며, 예를 들면, WLD, SPC 또는 VLM 등에 대응하는 8진 트리이다.
또한, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함한다는 것은, 8진 트리에 포함되는 복수의 리프 중 적어도 하나가 2개 이상의 삼차원점을 포함하는 것을 의미한다. 즉, 복수의 리프 중, 일부의 리프는 2개 이상의 삼차원점을 포함하고, 나머지 리프는 1개의 삼차원점을 포함해도 된다.
예를 들면, 모드 정보의 값이 1인 경우는, 각 리프가 1개의 삼차원점을 포함하는 것을 나타내고, 모드 정보의 값이 0인 경우는, 각 리프가 1개 이상의 삼차원점을 포함하는 것을 나타낸다. 또한, 삼차원 데이터 부호화 장치는, 8진 트리에 포함되는 모든 리프가 1개의 삼차원점을 포함하는 경우에도, 모드 정보(single_point_per_leaf)를 0으로 설정해도 된다.
도 154는, 모드 정보가 1인 경우의 8진 트리의 구성예를 나타내는 도면이다. 도 154에 나타내는 바와 같이, 모드 정보가 1인 경우, 각 리프는 1개의 삼차원점을 포함한다. 도 155는, 모드 정보가 0인 경우의 8진 트리의 구성예를 나타내는 도면이다. 도 155에 나타내는 바와 같이, 모드 정보가 0인 경우, 각 리프는 1개 또는 2개 이상의 삼차원점을 포함한다.
또한, 리프에 2개 이상의 삼차원점이 포함되는 경우, 예를 들면, 리프 내의 삼차원점의 좌표가 각각 상이하다. 또는, 리프 내의 삼차원점의 좌표는 동일하고, 색 또는 반사율 등의 속성 정보(즉 정보의 종류)가 상이하다. 또는, 리프 내의 삼차원점의 좌표와 속성 정보 양쪽 모두가 상이해도 된다.
다음에, 리프 정보의 신택스예를 설명한다. 또한, 상기에서는, 모드 정보가 비트 스트림의 헤더에 부가되는 예를 기술했지만, 모드 정보가 헤더에 부가되지 않고, 규격 또는 규격의 프로파일 혹은 레벨 등에 의해 8진 트리의 각 리프가 1개의 삼차원점을 포함하는지, 1개 이상의 삼차원점을 포함하는지가 규정되어도 된다. 이 경우, 삼차원 데이터 복호 장치는, 예를 들면, 비트 스트림에 포함되는 규격 정보를 참조하여, 8진 트리의 각 리프가 1개의 삼차원점을 포함하는지, 1개 이상의 삼차원점을 포함하는지를 판정함으로써, 비트 스트림을 올바르게 복원할 수 있다.
도 156은, 8진 트리에 포함되는 각 노드의 정보의 신택스예를 나타내는 도면이다. 도 156에 나타내는 isleaf는, 노드가 리프인지의 여부를 나타내는 플래그이다. isleaf가 1인 경우, 노드가 리프인 것을 나타낸다. isleaf가 0인 경우, 노드가 리프가 아닌 것을 나타낸다.
또한, 노드가 리프인지의 여부를 나타내는 정보는 헤더에 부가되지 않아도 된다. 이 경우, 삼차원 데이터 복호 장치는, 다른 방법으로 노드가 리프인지의 여부를 판정한다. 예를 들면, 삼차원 데이터 복호 장치는, 8진 트리의 각 노드를 더 이상 분할할 수 없는 사이즈까지 분할했는지를 판정하고, 참이면 노드가 리프라고 판정해도 된다. 이에 의해, 노드가 리프인지의 여부를 나타내는 플래그를 부호화할 필요가 없어져, 헤더의 부호량을 삭감할 수 있다.
도 156에 나타내는 num_point_per_leaf는, 리프 정보이며, 리프에 포함되는 삼차원점의 수를 나타낸다. 이 num_point_per_leaf는, single_point_per_leaf==0인 경우에 부호화되고, single_point_per_leaf==1인 경우에는 부호화되지 않는다.
또한, 삼차원 데이터 부호화 장치는, num_point_per_leaf를 엔트로피 부호화에 의해 부호화해도 된다. 또한, 그때, 삼차원 데이터 부호화 장치는, 복수의 부호화 테이블을 전환하면서 부호화를 행해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, num_point_per_leaf의 선두 비트를 부호화 테이블 A를 이용하여 산술 부호화하고, 나머지 비트를 부호화 테이블 B를 이용하여 산술 부호화해도 된다.
상기와 같이, 삼차원 데이터 부호화 장치는, 비트 스트림의 헤더에 8진 트리의 각 리프가 1개의 삼차원점을 포함하는지, 1개 이상의 삼차원점을 포함하는지를 나타내는 모드 정보를 부가하고, 모드 정보의 값에 따라 리프 정보(리프에 포함되는 삼차원점의 수를 나타내는 정보)를 부호할지의 여부를 전환해도 된다. 또한, 삼차원 데이터 부호화 장치는, 리프 정보로서, 리프에 포함되는 삼차원점의 위치 정보를 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 single_point_per_leaf, isleaf, 및 num_point_per_leaf를 엔트로피 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 값을 2치화한 다음 산술 부호화한다.
또한, 본 실시 형태에서는, 8진 트리 구조를 예로 나타내었지만, 반드시 이에 한정하지 않으며, 4진 트리, 16진 트리 등의 N진 트리 구조에 상기 수법을 적용해도 된다.
또한, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2개 이상의 삼차원점의 위치 정보를 리프 정보로서 각각 부호화하는 경우에, 각 삼차원점이 갖는 속성 정보(색 또는 반사율 등)도 각각 부호화해도 된다. 이 경우, 각 삼차원점의 위치 정보와 각 삼차원점의 속성 정보가 결합되어도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2점 A, B의 위치 정보를 리프 정보로서 각각 부호화하는 경우는, 2점 A, B의 양쪽 모두의 속성 정보도 부호화하여, 비트 스트림에 부가해도 된다. 즉, 리프 정보는, 점 A의 위치 정보와, 점 A의 속성 정보와, 점 B의 위치 정보와, 점 B의 속성 정보를 포함해도 된다. 또한, 2점 A, B의 위치 정보로 각 속성 정보를 결합시켜도 된다.
또한, 삼차원 데이터 부호화 장치는, 동일 리프 내의 M개 이상의 삼차원점의 위치 정보를 라운딩하여 N개(N<M)의 삼차원점의 위치 정보로서 부호화해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, M개 이상의 삼차원점의 M개 이상의 속성 정보를 예를 들면 평균화 등으로 라운딩하여 N개의 속성 정보를 생성하고, 생성한 N개의 속성 정보를 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2점 A, B의 위치 정보를 라운딩하여 1점으로서 부호화해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, 2점 A, B의 속성 정보를 예를 들면 평균화 등으로 라운딩하여 1점의 속성 정보를 산출하고, 산출한 속성 정보를 부호화해도 된다.
이하, 본 실시 형태에 따른 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치의 처리의 흐름을 설명한다. 도 157은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화를 행할지, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화를 행할지를 결정한다(S2201). 예를 들면, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 로스리스(lossless) 부호화하는지의 여부에 따라, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화를 행할지, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화를 행할지를 결정해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 로스리스 부호화하는 경우에는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화를 행하는 것으로 결정한다. 또는, 삼차원 데이터 부호화 장치는, 입력된 삼차원점의 모든 좌표가 상이하고, 또한, 삼차원점이 각각 각기 다른 리프에 포함되도록 부호화하는지의 여부에 의거하여, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화를 행할지, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화를 행할지를 결정해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 복수의 삼차원점에 좌표가 동일한 삼차원점이 포함되는 경우에는, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화를 행하는 것으로 결정해도 된다.
삼차원 데이터 부호화 장치는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화를 행하는 것으로 결정한 경우(S2201에서 Yes), 모드 정보를 8진 트리의 각 리프가 1개의 삼차원점을 포함하는 것을 나타내는 값(single_point_per_leaf=1)으로 설정하고, 당해 모드 정보를 헤더에 부가한다(S2202).
삼차원 데이터 부호화 장치는, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화를 행하는 것으로 결정한 경우(S2201에서 No), 모드 정보를 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 것을 나타내는 값(single_point_per_leaf=0)으로 설정하고, 당해 모드 정보를 헤더에 부가한다(S2203).
다음에, 삼차원 데이터 부호화 장치는, 루트 노드를 8진 트리로 분할함으로써 8진 트리 구조를 생성한다(S2204). 이때, 삼차원 데이터 부호화 장치는, 모드 정보에 의해 8진 트리의 각 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우에는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 8진 트리를 생성하고, 모드 정보에 의해 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우에는, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 8진 트리를 생성한다.
다음에, 삼차원 데이터 부호화 장치는, 처리 대상의 대상 노드를 선택하고, 대상 노드가 리프인지의 여부를 판정한다(S2205). 대상 노드가 리프이고(S2205에서 Yes), 또한, 모드 정보가 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 것을 나타내는(single_point_per_leaf=0) 경우(S2206에서 Yes), 삼차원 데이터 부호화 장치는, 리프에 포함되는 삼차원점의 수 등을 나타내는 리프 정보를 부호화한다(S2207).
한편, 대상 노드가 리프이고(S2205에서 Yes), 또한, 모드 정보가 8진 트리의 각 리프가 1개의 삼차원점을 포함하는 것을 나타내는(single_point_per_leaf=1) 경우(S2206에서 No), 삼차원 데이터 부호화 장치는, 리프에 포함되는 삼차원점의 수 등을 나타내는 리프 정보를 부호화하지 않는다.
또한, 대상 노드가 리프가 아닌 경우(S2205에서 No), 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화한다(S2208).
모든 노드의 처리가 완료되지 않은 경우(S2209에서 No), 삼차원 데이터 부호화 장치는, 다음 대상 노드를 선택하고, 선택한 대상 노드에 대하여 단계 S2205 이후의 처리를 행한다. 모든 노드의 처리가 완료된 경우(S2209에서 Yes), 삼차원 데이터 부호화 장치는, 처리를 종료한다.
도 158은, 본 실시 형태에 따른 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림에 포함되는 헤더 내의 모드 정보(single_point_per_leaf)를 복호한다(S2211).
다음에 삼차원 데이터 복호 장치는, 비트 스트림에 포함되는 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다(S2212). 예를 들면, 삼차원 데이터 복호 장치는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성한다. 다음에, 삼차원 데이터 복호 장치는, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성함으로써 8진 트리를 생성한다. 삼차원 데이터 복호 장치는, 마찬가지로 노드 A0~A7을 다시 8개의 소공간으로 분할한다. 또한, 삼차원 데이터 복호 장치는, 도 158에 나타내는 처리에 의해, 각 노드의 어큐펀시 부호의 복호와, 리프 정보의 복호를 차례로 행한다.
구체적으로는, 삼차원 데이터 복호 장치는, 처리 대상의 대상 노드를 선택하고, 대상 노드가 리프인지의 여부를 판정한다(S2213). 대상 노드가 리프이고(S2213에서 Yes), 또한, 모드 정보가 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하는 것을 나타내는(single_point_per_leaf=0) 경우(S2214에서 Yes), 삼차원 데이터 복호 장치는, 리프에 포함되는 삼차원점의 수 등을 나타내는 리프 정보를 복호한다(S2215).
한편, 대상 노드가 리프이고(S2213에서 Yes), 또한, 모드 정보가 8진 트리의 각 리프가 1개의 삼차원점을 포함하는 것을 나타내는(single_point_per_leaf=1) 경우(S2214에서 No), 삼차원 데이터 복호 장치는, 리프에 포함되는 삼차원점의 수 등을 나타내는 리프 정보를 복호하지 않는다.
또한, 대상 노드가 리프가 아닌 경우(S2213에서 No), 삼차원 데이터 복호 장치는, 대상 노드의 어큐펀시 부호를 복호한다(S2216).
모든 노드의 처리가 완료되지 않은 경우(S2217에서 No), 삼차원 데이터 복호 장치는, 다음 대상 노드를 선택하고, 선택한 대상 노드에 대하여 단계 S2213 이후의 처리를 행한다. 모든 노드의 처리가 완료된 경우(S2217에서 Yes), 삼차원 데이터 복호 장치는, 처리를 종료한다.
이하, 본 실시 형태에 따른 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치의 구성을 설명한다. 도 159는, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(2200)의 구성을 나타내는 블럭도이다. 도 159에 나타내는 삼차원 데이터 부호화 장치(2200)는, 8진 트리 생성부(2201), 모드 결정부(2202), 엔트로피 부호화부(2203)를 구비한다.
8진 트리 생성부(2201)는, 입력된 삼차원점(포인트 클라우드)으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리에 포함되는 각 노드의 어큐펀시 부호 및 리프 정보를 생성한다. 모드 결정부(2202)는, 8진 트리의 각 리프가 1개의 삼차원점을 포함하도록 부호화할지, 8진 트리의 각 리프가 1개 이상의 삼차원점을 포함하도록 부호화할지를 결정하고, 결정한 결과를 나타내는 모드 정보를 생성한다. 즉, 모드 결정부(2202)는, single_point_per_leaf의 값을 설정한다.
엔트로피 부호화부(2203)는, 모드 정보에 따라 리프 정보의 부호화를 행함으로써 비트 스트림을 생성한다. 또한, 엔트로피 부호화부(2203)는, 리프 정보(single_point_per_leaf)를 비트 스트림에 부가한다.
도 160은, 본 실시 형태에 따른 삼차원 데이터 복호 장치(2210)의 구성을 나타내는 블럭도이다. 도 160에 나타내는 삼차원 데이터 복호 장치(2210)는, 8진 트리 생성부(2211), 모드 정보 복호부(2212), 엔트로피 복호부(2213)를 구비한다.
8진 트리 생성부(2211)는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 예를 들면, 8진 트리 생성부(2211)는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 8진 트리 생성부(2211)는, 마찬가지로 노드 A0~A7의 각각을 다시 8개의 소공간으로 분할한다. 이와 같이, 8진 트리 생성부(2211)는 8진 트리의 생성을 반복한다.
모드 정보 복호부(2212)는, 비트 스트림의 헤더 정보로부터 모드 정보(single_point_per_leaf)를 복호한다. 또한, 모드 정보 복호부(2212)는, 엔트로피 복호부(2213)에 포함되어도 된다.
엔트로피 복호부(2213)는, 복호된 모드 정보에 따라 어큐펀시 부호 및 리프 정보를 복호하고, 복호된 어큐펀시 부호 및 리프 정보를 이용하여 삼차원점을 생성한다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 도 161에 나타내는 처리를 행한다. 우선, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 리프가, 1개의 삼차원점을 포함하는지, 2개 이상의 삼차원점을 포함하는지를 나타내는 제1 정보(모드 정보)를 비트 스트림에 부가한다(S2221). 즉, 삼차원 데이터 부호화 장치는, 제1 정보를 부호화한다.
제1 정보에 의해 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우(S2222에서 Yes), 삼차원 데이터 부호화 장치는, 리프가 1개의 삼차원점을 포함하도록 N진 트리 구조를 생성하고(S2223), 당해 N진 트리 구조를 부호화한다(S2224).
한편, 제1 정보에 의해 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우, 리프가 2개 이상의 삼차원점을 포함하도록 N진 트리 구조를 생성하고(S2225), 당해 N진 트리 구조를 부호화한다(S2226).
이에 의하면, 삼차원 데이터 부호화 장치는, 리프가 1개의 삼차원점을 포함하는 트리 구조와, 리프가 2개 이상의 삼차원점을 포함하는 트리 구조를 선택적으로 이용할 수 있다. 이에 의해, 삼차원 데이터 부호화 장치는, 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 제1 정보에 의해 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우, 리프에 관한 제2 정보(리프 정보)를 비트 스트림에 부가하고, 제1 정보에 의해 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우, 리프 정보를 비트 스트림에 부가하지 않는다.
이에 의하면, 삼차원 데이터 부호화 장치는, 리프가 1개의 삼차원점을 포함하는 경우에는 제2 정보를 비트 스트림에 부가하지 않음으로써, 부호화 효율을 향상시킬 수 있다.
예를 들면, 제2 정보는, 리프에 포함되는 삼차원점의 개수를 나타낸다.
예를 들면, 제1 정보는 복수의 리프에서 공통으로 이용된다. 예를 들면, 제1 정보는 N진 트리 구조에 포함되는 전부 또는 일부의 리프에서 공통으로 이용된다. 즉, 제1 정보는, N진 트리 구조에 포함되는 복수의 리프가, 1개의 삼차원점을 포함하는지, 2개 이상의 삼차원점을 포함하는지를 나타낸다. 삼차원 데이터 부호화 장치는, 제1 정보에 의해 복수의 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우, 복수의 리프가 1개의 삼차원점을 포함하도록 N진 트리 구조를 생성하고, 당해 N진 트리 구조를 부호화한다. 삼차원 데이터 부호화 장치는, 제1 정보에 의해 복수의 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우, 복수의 리프가 2개 이상의 삼차원점을 포함하도록 N진 트리 구조를 생성하고, 당해 N진 트리 구조를 부호화한다.
이에 의하면, 삼차원 데이터 부호화 장치는, 단일의 제1 정보에 의해 복수의 리프의 형식을 제어할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점은 상이한 공간 좌표를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 좌표를 나타내도 된다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점은 동일한 공간 좌표를 갖고, 상이한 속성 정보를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 속성 정보를 나타내도 된다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점의 각각은, 좌표 정보와 속성 정보를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 좌표 및 속성 정보를 나타내도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 도 162에 나타내는 처리를 행한다. 우선, 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 리프가, 1개의 삼차원점을 포함하는지, 2개 이상의 삼차원점을 포함하는지를 나타내는 제1 정보(모드 정보)를 비트 스트림으로부터 복호한다(S2231). 즉, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 제1 정보를 취득한다.
제1 정보에 의해 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우(S2232에서 Yes), 삼차원 데이터 복호 장치는, 리프가 1개의 삼차원점을 포함하도록 N진 트리 구조를 복호한다(S2233). 한편, 제1 정보에 의해 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우(S2232에서 No), 리프가 2개 이상의 삼차원점을 포함하도록 N진 트리 구조를 복호한다(S2234). 여기서, 리프가 1개의 삼차원점을 포함하도록 N진 트리 구조를 복호한다는 것은, 예를 들면, 리프에는 1개의 삼차원점밖에 포함되지 않는다고 하는 전제에 기초하여 생성된 룰에 의거하여, 비트 스트림에 포함되는 정보를 해석하는 것이다. 마찬가지로, 리프가 2개 이상의 삼차원점을 포함하도록 N진 트리 구조를 복호한다는 것은, 예를 들면, 리프에는 2개 이상의 삼차원점을 포함하는 경우가 있다고 하는 전제에 기초하여 생성된 룰에 의거하여, 비트 스트림에 포함되는 정보를 해석하는 것이다.
이에 의하면, 삼차원 데이터 복호 장치는, 리프가 1개의 삼차원점을 포함하는 트리 구조와, 리프가 2개 이상의 삼차원점을 포함하는 트리 구조를 선택적으로 이용할 수 있다. 이에 의해, 삼차원 데이터 복호 장치는, 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 제1 정보에 의해 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우, 리프에 관한 제2 정보(리프 정보)를 비트 스트림으로부터 복호(취득)하고, 제1 정보에 의해 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우, 리프 정보를 비트 스트림으로부터 복호(취득)하지 않는다.
이에 의하면, 리프가 1개의 삼차원점을 포함하는 경우에는 제2 정보가 비트 스트림에 부가되지 않아도 되므로, 부호화 효율을 향상시킬 수 있다.
예를 들면, 제2 정보는, 리프에 포함되는 삼차원점의 개수를 나타낸다.
예를 들면, 제1 정보는 복수의 리프에서 공통으로 이용된다. 예를 들면, 제1 정보는 N진 트리 구조에 포함되는 전부 또는 일부의 리프에서 공통으로 이용된다. 즉, 제1 정보는, N진 트리 구조에 포함되는 복수의 리프가, 1개의 삼차원점을 포함하는지, 2개 이상의 삼차원점을 포함하는지를 나타낸다. 삼차원 데이터 복호 장치는, 제1 정보에 의해 복수의 리프가 1개의 삼차원점을 포함하는 것이 나타내어지는 경우, 복수의 리프가 1개의 삼차원점을 포함하도록 N진 트리 구조를 복호한다. 삼차원 데이터 복호 장치는, 제1 정보에 의해 복수의 리프가 2개 이상의 삼차원점을 포함하는 것이 나타내어지는 경우, 복수의 리프가 2개 이상의 삼차원점을 포함하도록 N진 트리 구조를 복호한다.
이에 의하면, 삼차원 데이터 복호 장치는, 단일의 제1 정보에 의해 복수의 리프의 형식을 제어할 수 있으므로 부호화 효율을 향상시킬 수 있다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점은 상이한 공간 좌표를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 좌표를 나타내도 된다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점은 동일한 공간 좌표를 갖고, 상이한 속성 정보를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 속성 정보를 나타내도 된다.
예를 들면, 리프에 포함되는 2개 이상의 삼차원점의 각각은, 좌표 정보와 속성 정보를 갖는다. 즉, 제2 정보는, 리프에 포함되는 2개 이상의 삼차원점의 각각의 좌표 및 속성 정보를 나타내도 된다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 14)
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 어큐펀시 부호를, 1비트 점유 위치(1bit occupied position)와 나머지 비트(remaining bit)로 표현하고, 1비트 점유 위치와 나머지 비트를 각각을 각기 다른 방법으로 부호화한다.
1비트 점유 위치는, 어큐펀시 부호에 포함되는 각 비트를 왼쪽에서부터 스캔한 경우에 최초로 1이 나타나는 비트의 위치를 나타낸다. 예를 들면, 1비트 점유 위치는, 8진 트리의 경우는 0~7의 범위의 값을 취하고, 16진 트리의 경우는 0~15의 범위의 값을 취한다.
나머지 비트는, 어큐펀시 부호의 1비트 점유 위치보다 우측의 비트열을 나타낸다. 나머지 비트는, 1비트 점유 위치에 따라, 0~7 비트 중 어느 하나이다.
도 163은, 어큐펀시 부호로부터 생성되는 1비트 점유 위치와 나머지 비트의 예를 나타내는 도면이다. 도 163의 (a)에 나타내는 예에서는, 어큐펀시 부호는 01000010이다. 이 어큐펀시 부호를 왼쪽에서부터 스캔한 경우, 제6 비트에서 최초로 1이 나타나기 때문에, 1비트 점유 위치는 6이고, 나머지 비트는 000010이다. 도 163의 (b)에 나타내는 예에서는, 어큐펀시 부호는 00000010이다. 이 어큐펀시 부호를 왼쪽에서부터 스캔한 경우, 제1 비트에서 최초로 1이 나타나기 때문에, 1비트 점유 위치는 1이고, 나머지 비트는 0이다. 도 163의 (c)에 나타내는 예에서는, 어큐펀시 부호는 00000001이다. 이 어큐펀시 부호를 왼쪽에서부터 스캔한 경우, 제0 비트에서 최초로 1이 나타나기 때문에, 1비트 점유 위치는 0이고, 나머지 비트는 존재하지 않는다.
이하, 1비트 점유 위치의 부호화 방법의 예를 설명한다. 삼차원 데이터 부호화 장치는, 8진 트리의 경우, 1비트 점유 위치를 3비트의 값(0~7)으로서 엔트로피 부호화한다. 삼차원 데이터 부호화 장치는, 1비트 점유 위치에, 예를 들면 1개의 부호화 테이블을 이용한 산술 부호화를 적용한다. 또한, 삼차원 데이터 부호화 장치는, 3비트의 비트열인 1비트 점유 위치를 1비트씩 바이너리 부호화(2치의 산술 부호화)해도 된다. 삼차원 데이터 부호화 장치는, 이 경우의 부호화 테이블에 있어서의 0과 1의 발생 확률을 각각 50%로 고정해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 2치의 산술 부호화에 있어서의 바이패스 모드를 적용해도 된다.
다음에, 나머지 비트의 부호화 방법의 예를 설명한다. 예를 들면, 삼차원 데이터 부호화 장치는, 나머지 비트를 2치의 비트열로 간주하여 왼쪽의 비트부터 순서대로 바이너리 부호화를 적용한다. 예를 들면, 나머지 비트가 000010인 경우, 삼차원 데이터 부호화 장치는, 0→0→0→0→1→0의 순서로 0과 1의 값을 산술 부호화로 부호화해도 된다.
예를 들면, 도 163의 (a)에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 1비트 점유 위치의 값 6을 산술 부호화한다. 예를 들면, 삼차원 데이터 부호화 장치는, 값 6을 나타내는 비트열 110을 바이패스 모드로 산술 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 나머지 비트의 비트열 000010을 산술 부호화한다.
또한, 도 163의 (b)에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 1비트 점유 위치의 값 1을 산술 부호화한다. 예를 들면, 삼차원 데이터 부호화 장치는, 값 1을 나타내는 비트열 1을 바이패스 모드로 산술 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 나머지 비트의 비트열 0을 산술 부호화한다.
또한, 도 163의 (c)에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 1비트 점유 위치의 값 0을 산술 부호화한다. 예를 들면, 삼차원 데이터 부호화 장치는, 값 0을 나타내는 비트열 0을 바이패스 모드로 산술 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 나머지 비트가 존재하지 않기 때문에, 나머지 비트를 부호화하지 않는다.
또한, 1비트 점유 위치의 정의는, 어큐펀시 부호의 각 비트를 오른쪽에서부터 스캔한 경우에 최초로 1이 나타나는 비트의 위치여도 된다. 그 경우, 나머지 비트는 어큐펀시 부호의 1비트 점유 위치보다 좌측의 비트열을 나타낸다. 또한 그 경우, 삼차원 데이터 부호화 장치는, 나머지 비트를 오른쪽의 비트부터 순서대로 바이너리 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 어큐펀시 부호의 각 비트를 왼쪽에서부터 스캔할지 오른쪽에서부터 스캔할지를 전환하기 위한 전환 플래그를 부호화해도 된다. 삼차원 데이터 부호화 장치는, 전환 플래그를, 어큐펀시 부호마다 부호화해도 된다. 이에 의해, 어큐펀시 부호마다 스캔 순서를 전환할 수 있다. 또한, 삼차원 데이터 부호화 장치는, 전환 플래그를, 월드, 스페이스, 또는 볼륨 등의 헤더에 부가하고, 월드, 스페이스, 또는 볼륨 단위로 스캔 순서를 전환해도 된다.
또한, 스캔 순서는 미리 정해진 임의의 순서여도 된다. 또한, 스캔 순서로 최초로 1이 나타나는 비트의 위치 대신에, 최초로 0이 나타나는 비트의 위치를 이용해도 된다.
또한, 어큐펀시 부호에 포함되는 복수의 비트 중 1비트만이 값 1인 어큐펀시 부호를 1비트 점유 부호(1bit occupied code)로 정의한다. 예를 들면 8진 트리의 경우, 어큐펀시 부호 「00100000」은 1비트 점유 부호이고, 「00100001」은 1비트 점유 부호가 아니다.
삼차원 데이터 부호화 장치는, 부호화 대상의 대상 어큐펀시 부호가 1비트 점유 부호일 가능성이 높은지의 여부를 판정하여, 판정이 참이면 대상 어큐펀시 부호를, 1비트 점유 위치+나머지 비트라고 하는 표현으로 부호화(이하, 점유 위치 부호화라고 부른다)하고, 거짓이면 어큐펀시 부호의 값을 그대로 부호화(이하, 직접 부호화라고 부른다)해도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 대상 어큐펀시 부호가 속하는 부호화 노드의 부모 노드의 어큐펀시 부호의 값을 이용하여, 대상 어큐펀시 부호가 1비트 점유 부호일 가능성이 높은지의 여부를 판정한다. 예를 들면, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부를 판정하여, 참이면 대상 노드의 어큐펀시 부호에 점유 위치 부호화를 적용하고, 거짓이면 대상 노드의 어큐펀시 부호에 직접 부호화를 적용한다.
여기서, 대상 노드의 대상 어큐펀시 부호가 1비트 점유 부호일 가능성이 높은 경우에, 점유 위치 부호화를 이용한 경우, 나머지 비트의 각 비트의 값이 0이 되기 쉽다. 따라서, 나머지 비트를 2치 산술 부호화함으로써 부호화 효율을 향상시킬 수 있다. 또한, 삼차원 데이터 부호화 장치는, 대상 어큐펀시 부호가 1비트 점유 부호일 가능성이 높은지의 여부를, 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부를 이용하여 효율적으로 판정할 수 있다. 또한, 부모 노드의 어큐펀시 부호를 참조함으로써, 폭 우선이 아니라 깊이 우선의 부호화 순서의 경우에도 동일한 판정 방법을 적용할 수 있다.
도 164는, 상기 처리를 모식적으로 나타내는 도면이다. 도 164에 나타내는 바와 같이, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호가 1비트 점유 부호인 경우에는, 대상 노드에 점유 위치 부호화를 적용한다. 또한, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호가 1비트 점유 부호가 아닌 비(非)1비트 점유 부호인 경우에는, 대상 노드에 직접 부호화를 적용한다.
다음에, 노드의 정보의 신택스예를 설명한다. 도 165는, 노드의 정보의 신택스예를 나타내는 도면이다.
도 165에 나타내는 바와 같이, 노드 정보는, 1bit_occupied_position과 remaining_bit를 포함한다. 1bit_occupied_position은, 상술한 1비트 점유 위치이며, 어큐펀시 부호의 각 비트를 왼쪽에서부터 스캔한 경우에 최초로 1이 나타나는 비트의 위치를 나타낸다. 예를 들면, 1비트 점유 위치는, 8진 트리의 경우는 0~7의 범위의 값을 취하고, 16진 트리의 경우는 0~15의 범위의 값을 취한다.
remaining_bit는, 상술한 나머지 비트이며, 어큐펀시 부호의 1비트 점유 위치보다 우측의 비트열을 나타낸다. 1비트 점유 위치(1bit_occupied_position)가 0인 경우는, 나머지 비트가 존재하지 않기 때문에, 도 165에 나타내는 바와 같이 remaining_bit는 부호화되지 않아도 된다. 또한, 삼차원 데이터 부호화 장치는, remaining_bit를 2치의 비트열로 간주하여, 왼쪽의 비트부터 순서대로 바이너리 부호화를 적용해도 된다. 또한, 삼차원 데이터 부호화 장치는, remaining_bit의 비트열로부터 산출한 10진수의 값을 부호화 테이블을 이용하여 산술 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 나머지 비트의 비트열이 000010인 경우, 값 2를 산술 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호(parent_occupancy_code)가 1비트 점유 부호가 아닌 경우는, 어큐펀시 부호를 직접 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 어큐펀시 부호를 1개의 부호화 테이블을 이용하여 산술 부호화해도 된다.
또한, 본 실시 형태에서는, 8진 트리 구조를 예로 나타내었지만, 반드시 이에 한정하지 않으며, 4진 트리 및 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대하여, 상기 수법을 적용해도 된다. 예를 들면, 4진 트리의 경우는, 1bit_occupied_position의 값은 0~3, 16진 트리의 경우는, 1bit_occupied_position의 값은 0~15의 범위의 값을 취한다. 또한, 삼차원 데이터 부호화 장치는, 1비트 점유 위치에 더하여, 비트열을 스캔하여 2번째로 1이 서는 위치를, 예를 들면 2비트 점유 위치(2bit_occupied_position)로서 부호화하고, 2비트 점유 위치보다 뒤의 비트열을 나머지 비트로서 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 비트열을 스캔하여 N번째로 1이 서는 위치를, 예를 들면 N비트 점유 위치(Nbit_occupied_position)로서 부호화하고, N비트 점유 위치보다 뒤의 비트열을 나머지 비트로서 부호화해도 된다.
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호가 1비트 점유 부호일 가능성이 높은 경우에, 점유 위치 부호화를 적용한다. 즉, 삼차원 데이터 부호화 장치는, 랜덤한 확률로 값 1이 되는 비트 위치를 1비트 점유 위치로서 예를 들면 부호화 테이블 A를 이용하여 산술 부호화하고, 값이 0이 되기 쉬운 나머지 비트열을 나머지 비트로서 예를 들면 부호화 테이블 B를 이용하여 산술 부호화한다. 이와 같이 어큐펀시 부호를 별개 표현으로 나타내고, 산술 부호화에 이용하는 부호화 테이블을 나눔으로써 부호화 효율을 향상시킬 수 있다. 예를 들면, 삼차원 데이터 부호화 장치는, 값 0이 발생하는 확률을 높게 키프한 채 나머지 비트의 비트열을 부호화 테이블 B로 산술 부호화할 수 있다. 또한, 삼차원 데이터 부호화 장치는, 나머지 비트의 원래의 비트열의 길이가 길어도, 결과적으로 적은 비트 수로 부호화하는 것이 가능해진다.
또한, 1비트 점유 부호의 각 비트는 랜덤한 확률로 값 1이 되기 쉽다. 따라서, 삼차원 데이터 부호화 장치는, 0과 1의 발생 확률을 50%로 고정함으로써 발생 확률의 산출을 스킵하는 바이패스 모드로 1비트 점유 부호를 산술 부호화해도 된다. 이에 의해, 처리량을 삭감할 수 있다.
또한, 삼차원 데이터 복호 장치는, 삼차원 데이터 부호화 장치와 동일한 처리에 의해, 점유 위치 부호화와 직접 부호화 중 어느 것이 적용되어 있는지를 판단해도 된다. 또는, 삼차원 데이터 부호화 장치는, 점유 위치 부호화를 적용했는지, 직접 부호화를 적용했는지를 나타내는 정보를 포함하는 비트 스트림을 생성하고, 삼차원 데이터 복호 장치는, 비트 스트림에 포함되는 상기 정보에 의거하여, 점유 위치 부호화가 적용되었는지, 직접 부호화가 적용되었는지를 판단해도 된다. 또한, 이 경우, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호를 참조하는 것이 아니라, 대상 어큐펀시 부호를 참조하고, 대상 어큐펀시 부호가 1비트 점유 부호인 경우에 점유 위치 부호화를 적용하고, 그렇지 않은 경우에 직접 부호화를 적용해도 된다.
또한, 본 실시 형태에서는, 노드 단위로, 점유 위치 부호화와 직접 부호화를 전환하는 예를 설명했지만, 반드시 이에 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 점유 위치 부호화를 적용하는지의 여부를 나타내는 플래그를, 월드 또는 스페이스 등의 헤더에 부가하고, 월드 또는 스페이스 등의 단위로 점유 위치 부호화를 적용할지의 여부를 전환해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 성긴 삼차원점군을 많이 포함하는 월드 또는 스페이스의 경우는, 상기 플래그를 온으로 설정하고, 월드 또는 스페이스 내의 삼차원점군의 어큐펀시 부호의 모두에 점유 위치 부호화를 적용해도 된다. 또한, 삼차원 데이터 부호화 장치는, 조밀한 삼차원점군을 많이 포함하는 월드 또는 스페이스의 경우는, 상기 플래그를 오프로 설정하고, 월드, 또는 스페이스 내의 삼차원점군의 어큐펀시 부호의 모두에 직접 부호화를 적용해도 된다. 이에 의해, 노드마다 전환의 판정이 불필요하게 되어, 처리량을 삭감할 수 있다.
또한, 삼차원 데이터 복호 장치는, 월드 또는 스페이스 등의 헤더에 포함되는 상기 플래그를 복호함으로써, 월드 또는 스페이스 내의 어큐펀시 부호에 점유 위치 부호화 및 직접 부호화 중 어느 것이 적용되어 있는지를 판단할 수 있으므로, 어큐펀시 부호를 적절히 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호에 포함되는 값 1의 비트의 수가 N(임의의 정수)개 이하인 N비트 점유 부호일 가능성이 높은 경우에, 점유 위치 부호화를 적용하고, 그렇지 않은 경우에 직접 부호화를 적용해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호가 N비트 점유 부호인 경우에, 점유 위치 부호화를 적용하고, 그렇지 않은 경우에 직접 부호화를 적용해도 된다.
이하, 삼차원 데이터 부호화 장치에서의 처리의 흐름을 설명한다. 도 166은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 대상 노드의 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부를 판정한다(S2301). 부모 노드의 어큐펀시 부호가 1비트 점유 부호인 경우(S2301에서 Yes), 삼차원 데이터 부호화 장치는, 대상 노드의 대상 어큐펀시 부호에 점유 위치 부호화를 적용한다(S2302).
구체적으로는, 삼차원 데이터 부호화 장치는, 대상 어큐펀시 부호 내의 1비트 점유 위치를 탐색하고(S2304), 얻어진 1비트 점유 위치를 부호화한다(S2305). 다음에, 삼차원 데이터 부호화 장치는, 나머지 비트를 산출하고(S2306), 얻어진 나머지 비트를 부호화한다(S2307).
한편, 부모 노드의 어큐펀시 부호가 1비트 점유 부호가 아닌 경우(S2301에서 No), 삼차원 데이터 부호화 장치는, 대상 어큐펀시 부호를 직접 부호화한다(S2303).
또한, 점유 위치 부호화(S2302)에 포함되는 단계의 순번을 바꾸어도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 1비트 점유 위치를 탐색하고(S2304), 나머지 비트를 산출하고(S2306), 그 후, 1비트 점유 위치와 나머지 비트를 부호화(S2305, S2307)해도 된다.
도 167은, 점유 위치 부호화(S2302)의 구체적인 예를 나타내는 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 1비트 점유 위치를 산출한다(S2304). 구체적으로는, 삼차원 데이터 부호화 장치는, 변수 a에 7을 설정한다(S2311). 다음에, 삼차원 데이터 부호화 장치는, 변수 Diff에 어큐펀시 부호-2a를 설정한다(S2312). 다음에, 삼차원 데이터 부호화 장치는, Diff>-1이 만족되는지의 여부를 판정한다(S2313).
Diff>-1이 만족되지 않는 경우(S2313에서 No), 삼차원 데이터 부호화 장치는, a에 a-1을 설정한다(S2314). Diff>-1이 만족되는 경우(S2313에서 Yes), 삼차원 데이터 부호화 장치는, 1비트 점유 위치에 a를 설정하고, 나머지 비트에 Diff를 설정한다(S2315).
다음에, 삼차원 데이터 부호화 장치는, 산출한 1비트 점유 위치를 부호화한다(S2305).
다음에, 삼차원 데이터 부호화 장치는, 나머지 비트를 산출하고(S2306), 나머지 비트를 바이너리 부호화한다(S2307). 구체적으로는, 삼차원 데이터 부호화 장치는, 변수 b에 1비트 점유 위치-1을 설정한다(S2321). 다음에, 삼차원 데이터 부호화 장치는, 변수 Diff에 나머지 비트-2b를 설정한다(S2322). 다음에, 삼차원 데이터 부호화 장치는, Diff>-1이 만족되는지의 여부를 판정한다(S2323).
Diff>-1이 만족되는 경우(S2323에서 Yes), 삼차원 데이터 부호화 장치는, 「1」을 부호화하고, 나머지 비트에 Diff를 설정하고(S2324), 변수 b에 b-1을 설정한다(S2326). 한편, Diff>-1이 만족되지 않는 경우(S2323에서 No), 삼차원 데이터 부호화 장치는, 「0」을 부호화하고(S2325), 변수 b에 b-1을 설정한다(S2326).
다음에, 삼차원 데이터 부호화 장치는, b<0이 만족되는지의 여부를 판정한다(S2327). b<0이 만족되지 않는 경우(S2327에서 No), 삼차원 데이터 부호화 장치는, 단계 S2322 이후의 처리를 재차 행한다. b<0이 만족되는 경우(S2327에서 Yes), 삼차원 데이터 부호화 장치는, 처리를 종료한다.
다음에, 삼차원 데이터 복호 장치에서의 처리의 흐름을 설명한다. 도 168은, 본 실시 형태에 따른 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부를 판정한다(S2331). 부모 노드의 어큐펀시 부호가 1비트 점유 부호인 경우(S2331에서 Yes), 삼차원 데이터 복호 장치는, 점유 위치 부호화에 의해 부호화된 부호화 데이터를 복호하는 점유 위치 복호를 행한다(S2332).
구체적으로는, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 1비트 점유 위치를 복호하고(S2334), 1비트 점유 위치에 의거하여 어큐펀시 부호의 일부(어큐펀시 부호의 좌단으로부터 1비트 점유 위치까지)를 산출하고(S2335), 나머지 비트를 복호하면서 어큐펀시 부호를 갱신한다(S2336).
한편, 부모 노드의 어큐펀시 부호가 1비트 점유 부호가 아닌 경우(S2331에서 No), 삼차원 데이터 복호 장치는, 직접 부호화에 의해 부호화된 어큐펀시 부호를 복호하는 직접 복호를 이용하여, 비트 스트림으로부터 어큐펀시 부호를 복호한다(S2333).
또한, 점유 위치 복호(S2332)에 포함되는 단계의 순번을 바꾸어도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 1비트 점유 위치를 복호하고(S2334), 그 후, 나머지 비트를 복호하면서 어큐펀시 부호를 갱신하고(S2336), 마지막으로, 갱신된 어큐펀시 부호에, 1비트 점유 위치로부터 산출되는 어큐펀시 부호를 가산해도 된다(S2335).
도 169는, 점유 위치 복호(S2332)의 구체적인 예를 나타내는 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 1비트 점유 위치를 복호하고(S2334), 1비트 점유 위치를 이용하여 어큐펀시 부호의 일부를 산출한다(S2335).
구체적으로는, 삼차원 데이터 복호 장치는, 변수 a에 1비트 점유 위치를 설정한다(S2341). 다음에, 삼차원 데이터 복호 장치는, 어큐펀시 부호에 2a를 설정한다(S2342).
다음에, 삼차원 데이터 복호 장치는, 나머지 비트를 복호하면서 어큐펀시 부호를 갱신한다(S2336). 구체적으로는, 삼차원 데이터 복호 장치는, 변수 b에 a-1을 설정한다(S2351). 다음에, 삼차원 데이터 복호 장치는, 1비트를 복호하고, 변수 c에 복호한 1비트를 설정한다(S2352). 다음에, 삼차원 데이터 복호 장치는, c==1이 만족되는지의 여부를 판정한다(S2353).
c==1이 만족되는 경우(S2353에서 Yes), 삼차원 데이터 복호 장치는, 어큐펀시 부호에 2b를 가산하고(S2354), 변수 b에 b-1을 설정한다(S2355). c==1이 만족되지 않는 경우(S2353에서 No), 삼차원 데이터 복호 장치는, 변수 b에 b-1을 설정한다(S2355).
다음에, 삼차원 데이터 복호 장치는, b<0이 만족되는지의 여부를 판정한다(S2356). b<0이 만족되지 않는 경우(S2356에서 No), 삼차원 데이터 복호 장치는, 단계 S2352 이후의 처리를 재차 행한다. b<0이 만족되는 경우(S2356에서 Yes), 삼차원 데이터 복호 장치는, 처리를 종료한다.
다음에, 삼차원 데이터 부호화 장치의 구성예를 설명한다. 도 170은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(2300)의 블럭도이다. 삼차원 데이터 부호화 장치(2300)는, 8진 트리 생성부(2301)와 엔트로피 부호화부(2302)를 구비한다.
8진 트리 생성부(2301)는, 입력된 삼차원점(포인트 클라우드)으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리의 각 노드의 어큐펀시 부호 및 리프 정보를 생성한다.
엔트로피 부호화부(2302)는, 각 노드의 어큐펀시 부호를 부호화한다. 엔트로피 부호화부(2302)는, 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부에 따라, 어큐펀시 부호의 부호화 방법을 전환한다. 예를 들면, 부모 노드가 1비트 점유 부호인 경우, 엔트로피 부호화부(2302)는, 어큐펀시 부호에 점유 위치 부호화를 적용하고, 그렇지 않은 경우는 어큐펀시 부호의 값을 부호화 테이블을 이용하여 산술 부호화한다.
다음에, 삼차원 데이터 복호 장치의 구성예를 설명한다. 도 171은, 본 실시 형태에 따른 삼차원 데이터 복호 장치(2310)의 블럭도이다. 삼차원 데이터 복호 장치(2310)는, 8진 트리 생성부(2311)와 엔트로피 복호부(2312)를 구비한다.
8진 트리 생성부(2311)는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 예를 들면, 8진 트리 생성부(2311)는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 8진 트리 생성부(2311)는, 마찬가지로 노드 A0~A7의 각각을 다시 8개의 소공간으로 분할한다. 이와 같이, 8진 트리 생성부(2311)는 8진 트리의 생성을 반복한다.
엔트로피 복호부(2312)는, 각 노드의 어큐펀시 부호를 복호한다. 엔트로피 복호부(2312)는, 복호가 완료된 부모 노드의 어큐펀시 부호가 1비트 점유 부호인지의 여부에 따라, 어큐펀시 부호의 복호 방법을 전환한다. 예를 들면, 부모 노드가 1비트 점유 부호인 경우, 엔트로피 복호부(2312)는, 점유 위치 복호로 어큐펀시 부호화를 복호하고, 그렇지 않은 경우는 어큐펀시 부호의 값을 부호화 테이블을 이용하여 산술 복호한다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 도 172에 나타내는 처리를 행한다. 우선, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보로서, 대상 노드에 속하는 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 N비트의 정보를 포함하는 비트열(예를 들면 어큐펀시 부호)을 생성한다(S2361).
다음에, 삼차원 데이터 부호화 장치는, (i) 상기 비트열을 미리 정해진 주사 순서로 주사한 경우에, 미리 정해진 부호가 최초로 나타나는 비트열 중의 위치인 선두 위치(예를 들면 1비트 점유 위치)를 나타내는 위치 정보와, (ii) 상기 비트열 중 상기 주사 순서에 있어서의 상기 선두 위치보다 뒤의 비트열인 나머지 비트를 생성한다(S2362). 여기서, 예를 들면, 상기 미리 정해진 부호는 1이다.
다음에, 삼차원 데이터 부호화 장치는, 대상 노드의 정보로서 상기 위치 정보와 상기 나머지 비트를 부호화한다(S2363). 즉, 삼차원 데이터 부호화 장치는, 대상 노드의 정보로서 상기 위치 정보와 상기 나머지 비트를 포함하는 비트 스트림을 생성한다.
이에 의해, 당해 삼차원 데이터 부호화 장치는, 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 위치 정보와 상기 나머지 비트를 부호화하는 제1 모드(예를 들면 점유 위치 부호화)와, 상기 비트열을 부호화하는 제2 모드(예를 들면 직접 부호화)를 갖고, 대상 노드의 주변 노드에 삼차원점이 포함되는지의 여부에 의거하여, 상기 제1 모드와 상기 제2 모드 중 한쪽을 선택한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 주변의 삼차원점의 상태에 따른 모드를 선택함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 대상 노드의 복수의 주변 노드 중 삼차원점이 포함되는 주변 노드의 수 또는 비율이 미리 정해진 역치보다 적은 경우, 상기 제1 모드를 선택하고, 상기 수 또는 비율이 상기 역치보다 많은 경우, 상기 제2 모드를 선택한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 대상 노드의 부모 노드의 비트열에 의거하여, 상기 제1 모드와 상기 제2 모드 중 한쪽을 선택한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부모 노드의 비트열로 나타내어지는, 상기 부모 노드에 속하는 자식 노드 중 삼차원점이 존재하는 자식 노드의 수가 미리 정해진 역치보다 적은 경우, 상기 제1 모드를 선택하고, 상기 수가 상기 역치보다 많은 경우, 상기 제2 모드를 선택한다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 도 173에 나타내는 처리를 행한다. 우선, 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보로서, (i) 상기 대상 노드에 속하는 자식 노드의 각각에 삼차원점이 존재하는지의 여부를 나타내는 N비트의 정보를 포함하는 비트열(예를 들면 어큐펀시 부호)을 미리 정해진 주사 순서로 주사한 경우에, 미리 정해진 부호가 최초로 나타나는 상기 비트열 중의 위치인 선두 위치(예를 들면 1비트 점유 위치)를 나타내는 위치 정보와, (ii) 상기 비트열 중 상기 주사 순서에 있어서의 상기 선두 위치보다 뒤의 비트열인 나머지 비트를, 비트 스트림으로부터 복호한다(S2371). 즉, 삼차원 데이터 복호 장치는, 비트 스트림으로부터 상기 위치 정보와 상기 나머지 비트를 취득한다. 또한, 예를 들면, 상기 미리 정해진 부호는 1이다.
다음에, 삼차원 데이터 복호 장치는, 상기 위치 정보와 상기 나머지 비트로부터 상기 대상 노드의 상기 비트열을 복원하고(S2372), 상기 비트열을 이용하여, 상기 N진 트리 구조를 복원한다(S2373). 즉, 삼차원 데이터 복호 장치는, 복수의 삼차원점의 위치 정보를 복원한다.
이에 의해, 당해 삼차원 데이터 복호 장치는, 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 비트 스트림으로부터 상기 위치 정보와 상기 나머지 비트를 복호하는 제1 모드(점유 위치 복호)와, 상기 비트 스트림으로부터 상기 비트열을 복호하는 제2 모드(직접 복호)를 갖고, 상기 대상 노드의 주변 노드에 삼차원점이 포함되는지의 여부에 의거하여, 상기 제1 모드와 상기 제2 모드 중 한쪽을 선택한다.
이에 의하면, 당해 삼차원 데이터 부호화 장치는, 주변의 삼차원점의 상태에 따른 모드를 선택함으로써 부호화 효율을 향상시킬 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 대상 노드의 복수의 주변 노드 중 삼차원점이 포함되는 주변 노드의 수 또는 비율이 미리 정해진 역치보다 적은 경우, 상기 제1 모드를 선택하고, 상기 수 또는 비율이 상기 역치보다 많은 경우, 상기 제2 모드를 선택한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 대상 노드의 부모 노드의 비트열에 의거하여, 상기 제1 모드와 상기 제2 모드 중 한쪽을 선택한다.
예를 들면, 상기 부모 노드의 비트열로 나타내어지는, 상기 부모 노드에 속하는 자식 노드 중 삼차원점이 존재하는 자식 노드의 수가 미리 정해진 역치보다 적은 경우, 상기 제1 모드를 선택하고, 상기 수가 상기 역치보다 많은 경우, 상기 제2 모드를 선택한다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 15)
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군(Point Cloud)의 삼차원 위치 정보에 양자화를 적용하여 8진 트리 구조로 부호화한다. 이때, 양자화에 의해 삼차원 위치는 동일하지만 색 또는 반사율 등의 속성 정보가 상이한 점군(이하, 중복점(duplicated point)이라고 부른다)이 발생한다. 삼차원 데이터 부호화 장치는, 이 중복점을 8진 트리의 리프 정보로서 어떻게 부호화할지를 제어하기 위한 정보를 헤더에 부가한다. 이에 의해, 삼차원 데이터 복호 장치는, 올바르게 리프 정보를 복호할 수 있다. 여기서, 양자화에 의해 삼차원 위치가 동일하다는 것은, 도 174에 나타내는 점 A 및 점 B와 같이 원래의 삼차원 위치가 가까운 위치에 있고, 삼차원 위치의 정보가 양자화됨으로써 삼차원 위치의 값이 동일하게 된 것을 포함한다.
예를 들면, 삼차원 데이터 부호화 장치는, 중복점을 머지할지의 여부를 제어하는 플래그인 중복점 머지 플래그(MergeDuplicatedPointFlag)를 헤더 정보에 부가한다. 도 175는, 중복점 머지 플래그에 따른 처리를 모식적으로 나타내는 도면이다.
삼차원 데이터 부호화 장치는, 중복점 머지 플래그가 1인 경우는, 중복점을 1개의 점으로 머지하여 부호화한다. 여기서, 머지란, 예를 들면 점 A와 점 B가 중복점인 경우, 점 A를 남기고 점 B를 삭제하는 것, 또는 그 반대이다. 또한 이때, 삼차원 데이터 부호화 장치는, 점 A와 점 B의 색 또는 반사율 등의 속성 정보로부터 새로운 속성 정보를 산출하고, 산출한 속성 정보를 머지 후의 점에 할당해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A와 점 B의 속성 정보의 평균치를 머지 후의 점에 할당해도 된다.
또한, 중복점 머지 플래그가 1인 경우는, 8진 트리로 부호화할 때의 각 리프는 1개의 점만을 포함하기 때문에, 삼차원 데이터 부호화 장치는, 리프 정보로서 리프가 몇 개의 삼차원점을 포함하는지를 나타내는 정보를 부호화하지 않아도 된다. 또한, 삼차원 데이터 부호화 장치는, 리프 내의 1개의 점의 삼차원 위치 정보와, 색 또는 반사율 등의 속성 정보에 관련된 정보를 부호화해도 된다.
이와 같이, 중복점이 복호 후에 불필요한 경우는, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 1로 설정하여 스트림에 부가하고, 중복점을 머지하여 부호화한다. 이에 의해, 불필요한 중복점의 데이터량을 삭감할 수 있어, 부호화 효율을 향상시킬 수 있다.
중복점 머지 플래그가 0인 경우는, 삼차원 데이터 부호화 장치는, 중복점의 정보를 리프 정보로서 부호화한다. 예를 들면, 각 리프는 1개 이상의 중복점을 포함할 가능성이 있기 때문에, 삼차원 데이터 부호화 장치는, 리프가 몇 개의 삼차원점을 포함하는지를 나타내는 정보를 부호화한다. 또한, 삼차원 데이터 부호화 장치는, 중복점의 각 속성 정보를 각각 부호화해도 된다. 예를 들면 리프 내에 점 A와 점 B가 중복점으로서 존재하는 경우, 삼차원 데이터 부호화 장치는, 2개의 점이 리프 내에 존재하는 것을 나타내는 정보를 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 점 A와 점 B의 각각의 속성 정보를 부호화해도 된다.
이와 같이, 중복점이 복호 후에 필요한 경우는, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 0으로 설정하여 스트림에 부가하고, 중복점을 부호화한다. 이에 의해, 삼차원 데이터 복호 장치는, 올바르게 중복점에 관련된 정보를 복호할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 삼차원 위치의 양자화로서, 예를 들면, 삼차원 위치(x, y, z)를 양자화 파라미터(qx, qy, qz)로 나눔으로써 양자화 위치(x/qx, y/qy, z/qz)를 산출한다.
중복점 머지 플래그는, 비트 스트림의 헤더 정보에 포함되어도 된다. 예를 들면, 중복점 머지 플래그는, WLD, SPC 또는 VLM 등의 비트 스트림의 헤더에 포함된다.
또한, 상기에서는, 속성 정보로서 색 또는 반사율을 예로 들었지만, 속성 정보는 반드시 이에 한정하지 않는다. 예를 들면, 속성 정보는, 점의 법선 벡터, 점의 중요도를 나타내는 정보, 점이 갖는 삼차원 특징량, 또는, 점의 위도, 경도 및 고도 등의 위치 정보 등을 포함해도 된다.
또한, 머지란, 2개 이상의 점을 1개의 점으로 통합하는 것을 나타낸다. 또한, 머지란, M개 이상의 점을 N개(M>N)의 점으로 통합하는 것을 나타내도 된다.
상술한 바와 같이, 양자화에 의해, 삼차원점군의 좌표는 동일하지만, 색 또는 반사율 등의 속성 정보가 상이한 중복점이 발생한다. 예를 들면, 양자화 전에는 점 A와 점 B의 삼차원 위치는 상이하지만, 양자화에 의해 점 A와 점 B의 삼차원 위치가 동일하게 되고, 속성 정보가 상이한 케이스가 발생한다. 즉, 점 A와 점 B가 중복점이다.
또한, 양자화에 한정하지 않으며, LiDAR 등의 센서로 동일 물체의 점군의 삼차원 위치 및 속성 정보를, 시간 또는 방향을 바꾸어 취득함으로써, 중복점이 발생하는 케이스도 있다.
또한, 삼차원 위치가 동일하다는 것은, 삼차원 위치가 완전히 일치하는 케이스만으로 한정하지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A와 점 B의 삼차원 위치의 차이가 미리 정해진 역치 α 이하인 경우에, 점 A와 점 B는 삼차원 위치가 동일한 것으로 간주하여, 점 A와 점 B를 중복점으로 판정해도 된다. 또한, 삼차원 데이터 부호화 장치는, 역치 α를 스트림에 부가하여, 삼차원 데이터 복호 장치에 역치 α 이하의 점은 중복점으로서 취급된 것을 전해도 된다.
또한, 삼차원 데이터 부호화 장치는, 중복점의 삼차원 위치로서 점 A의 삼차원 위치를 이용해도 된다. 또는, 삼차원 데이터 부호화 장치는, 중복점의 삼차원 위치로서 점 B의 삼차원 위치를 이용해도 된다. 또는, 삼차원 데이터 부호화 장치는, 중복점의 삼차원 위치로서 점 A의 삼차원 위치와 점 B의 삼차원 위치로부터 산출한 삼차원 위치를 이용해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A의 삼차원 위치와 점 B의 삼차원 위치의 평균치를 이용해도 된다.
또한, 삼차원 데이터 부호화 장치는, 중복점 중, 삼차원 위치가 동일하고 또한 속성 정보도 일치하는 점에 대해서는, 중복점 머지 플래그의 값에 관계없이, 머지를 행해도 되고, 어느 한쪽의 점을 삭제해도 된다.
또한, 중복점 머지 플래그가 1인 경우에, 삼차원 데이터 부호화 장치는, 리프 내의 M점을 N점(M>N)으로 머지해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, N점의 삼차원 위치 정보와 속성 정보를 각각 리프 정보로서 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, M개의 속성 정보를 이용하여 N개의 속성 정보를 산출해도 된다.
또한, 삼차원 데이터 부호화 장치는, 머지 후의 리프 내의 점의 수(N)를 헤더에 부가하여 삼차원 데이터 복호 장치에 알려도 된다. 또한, 규격 등으로 N의 값이 고정값으로서 미리 설정되어 있어도 된다. 이에 의해, 리프마다 N개라고 하는 정보를 부가할 필요가 없어져, 발생 부호화량을 억제할 수 있다. 상기에 의해, 삼차원 데이터 복호 장치는 N개의 점을 올바르게 복호할 수 있다.
중복점 머지 플래그가 1인 경우는, 중복점이 1개의 점으로 머지된다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A와 점 B를 동일한 삼차원 위치 정보를 갖는 점 C로 머지해도 된다. 또한, 삼차원 데이터 부호화 장치는, 점 A와 점 B의 색 또는 반사율 등의 속성 정보의 평균치를 점 C에 할당해도 된다. 또한, 삼차원 데이터 부호화 장치는, 점 B를 점 A로 머지해도 되고, 점 A를 점 B로 머지해도 된다.
다음에, 중복점 머지 플래그의 신택스예를 설명한다. 도 176은 헤더 정보의 신택스예를 나타내는 도면이다. 도 177은, 노드의 정보의 신택스예를 나타내는 도면이다.
도 176에 나타내는 바와 같이 헤더 정보는, 중복점 머지 플래그(MergeDuplicatedPointFlag)를 포함한다. 중복점 머지 플래그는 중복점을 머지하는지의 여부를 나타내는 정보이다. 예를 들면, 중복점 머지 플래그의 값 1은, 중복점을 머지하는 것을 나타내고, 값 0은 중복점을 머지하지 않는 것을 나타낸다.
또한, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 헤더에 부가하지 않고, 규격, 또는 규격의 프로파일 혹은 레벨 등으로 중복점을 머지하는지의 여부를 규정해도 된다. 이에 의해, 삼차원 데이터 복호 장치는 규격 정보를 참조하여, 중복점이 스트림에 포함되는지의 여부를 판정하여 비트 스트림을 올바르게 복원할 수 있다.
도 177에 나타내는 바와 같이, 노드의 정보는, isleaf와 num_point_per_leaf를 포함한다. isleaf는 대상 노드가 리프인지의 여부를 나타내는 플래그이다. 값 1은 대상 노드가 리프인 것을 나타내고, 값 0은 대상 노드가 리프가 아니라 노드인 것을 나타낸다. 또한, 노드가 리프인지의 여부를 나타내는 정보는 헤더에 부가되지 않아도 된다. 이 경우, 삼차원 데이터 복호 장치는, 다른 방법으로 노드가 리프인지의 여부를 판정한다. 예를 들면, 삼차원 데이터 복호 장치는, 8진 트리의 각 노드를 더 이상 분할할 수 없는 사이즈까지 분할했는지의 여부를 판정하고, 참이면 노드가 리프인 것으로 판정해도 된다. 이에 의해, 노드가 리프인지의 여부를 나타내는 플래그를 부호화할 필요가 없어져, 헤더의 부호량을 삭감할 수 있다.
num_point_per_leaf는, 리프 정보이며, 리프에 포함되는 삼차원점의 수를 나타낸다. 이 num_point_per_leaf는, 중복점 머지 플래그가 0인 경우에 부호화된다. 또한, 중복점 머지 플래그가 1인 경우는 리프 내의 점의 수는 1이기 때문에, num_point_per_leaf는 부호화되지 않는다. 이에 의해, 부호량을 삭감할 수 있다.
또한, 여기에서는, 중복점 머지 플래그에 따라 직접적으로 리프 정보를 부호할지의 여부를 전환하는 예를 나타내지만, 간접적으로 리프 정보를 부호화할지의 여부를 전환해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그에 따라 도 156에 나타내는 single_point_per_leaf를 전환하고, 도 156에 나타내는 신택스에 의거하여, 리프 정보를 부호화할지의 여부를 전환해도 된다. 즉, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그가 1인 경우에는, single_point_per_leaf를 1로 설정하고, 중복점 머지 플래그가 0인 경우에는, single_point_per_leaf를 0으로 설정해도 된다. 또한, 이 경우, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 비트 스트림에 부가하지 않아도 되다.
또한, 삼차원 데이터 부호화 장치는, num_point_per_leaf를 엔트로피 부호화에 의해 부호화해도 된다. 또한, 그때, 삼차원 데이터 부호화 장치는, 복수의 부호화 테이블을 전환하면서 부호화를 행해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 선두 비트를 부호화 테이블 A를 이용하여 산술 부호화하고, 나머지 비트를 부호화 테이블 B를 이용하여 산술 부호화해도 된다.
상기와 같이, 삼차원 데이터 부호화 장치는, 비트 스트림의 헤더에 중복점을 머지하는지의 여부를 나타내는 정보를 부가하고, 그 값에 따라 중복점을 머지할지의 여부를 전환한다. 또한, 삼차원 데이터 부호화 장치는, 중복점을 머지하는 경우는, 리프 정보로서 리프 내에 포함되는 점의 수를 부호화하지 않아도 된다. 또한, 삼차원 데이터 부호화 장치는, 중복점을 머지하지 않는 경우는, 리프 정보로서 리프 내에 포함되는 점의 수를 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 isleaf, MergeDuplicatedPointFlag, 및 num_point_per_leaf를 엔트로피 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 값을 2치화하여 산술 부호화해도 된다.
또한, 본 실시 형태는, 8진 트리 구조를 예로 나타내었지만, 반드시 이에 한정하지 않으며, 4진 트리 및 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대하여, 상기 수법을 적용해도 된다.
중복점 머지 플래그=1로서 부호화한 경우, 원래의 입력 삼차원점군, 또는 양자화 후의 삼차원점군에 중복점이 포함되는 경우는, 불가역 부호화(lossy coding)가 되어, 부호량을 삭감할 수 있다. 또한, 삼차원 데이터 부호화 장치는, 원래의 입력 삼차원점군에 중복점이 포함되지 않고, 또한, 가역 부호화(lossless coding)로 부호화하는(양자화를 스킵하여 부호화하는) 경우에 있어서 중복점 머지 플래그=1로서 부호화해도 된다. 이에 의해, 가역 부호화를 유지하면서, num_point_per_leaf를 부호화하지 않는 만큼의 부호량을 삭감할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2개 이상의 중복점을 리프 정보로서 각각 부호화하는 경우는, 각 점이 갖는 속성 정보(색 또는 반사율 등)도 각각 부호화해도 된다. 이 경우, 각 점의 부호화 순서로 각 점의 속성 정보를 결합시켜도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2점 A, B를 리프 정보로서 각각 부호화하는 경우는, 2점 A, B의 양쪽 모두의 속성 정보도 부호화하여, 비트 스트림에 부가해도 된다. 또한, 2점 A, B의 부호화 순서로 각 속성 정보를 결합시켜도 된다. 예를 들면, 점 A, 점 B의 순서로 각 삼차원 위치를 부호화한 경우는, 점 A, 점 B의 순서로 각각의 속성 정보를 부호화하여, 결합시키는 것을 생각할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 동일 리프 내의 M개 이상의 점군을 머지하여 N점(M>N)으로서 부호화하는 경우는, M개 이상의 점군의 M개 이상의 속성 정보를 예를 들면 평균화 등으로 평활화하여 N점의 속성 정보를 생성하고, 그들을 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 동일 리프 내의 2점 A, B를 머지하여 1점으로서 부호화하는 경우는, 2점 A, B의 속성 정보를 예를 들면 평균화 등으로 평활화하여 1점의 속성 정보를 산출하고, 산출한 속성 정보를 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 점의 중요도 또는 특징량에 따라 속성 정보의 산출 방법을 전환해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 중요도가 높은 점, 또는 특징량이 큰 점의 속성 정보에 높은 가중치를 부여하여 가중 평균치를 산출하고, 산출한 값을 머지 후의 속성 정보로서 이용해도 된다. 또한, 삼차원 데이터 부호화 장치는, 양자화 전후의 삼차원 위치의 변화량에 따라 가중치를 바꾸어도 된다. 예를 들면 변화량이 작을수록 높은 가중치를 부여하여 가중 평균치를 산출하고, 산출한 값을 머지 후의 속성 정보로서 이용해도 된다.
다음에, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 흐름을 설명한다. 도 178 및 도 179는, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 중복점을 머지하여 부호화할지의 여부를 결정한다(S2401). 예를 들면, 삼차원 데이터 부호화 장치는, 부호화 효율을 우선하는 경우는, 중복점을 머지하는 것으로 판단해도 된다. 또한, 삼차원 데이터 부호화 장치는, 삼차원 데이터 복호 장치에서 중복점이 필요하다면, 머지하지 않는 것으로 판단해도 된다. 또한, 삼차원 데이터 부호화 장치는, 입력 삼차원점군에 중복점이 없고, 또한, 로스리스 부호화(가역 부호화), 즉 양자화가 적용되지 않는 경우에 있어서, 중복점 머지 플래그를 1로 설정해도 된다. 이에 의해, 리프 정보로서 리프 내의 점의 수가 부호화되지 않게 되기 때문에, 부호량을 삭감할 수 있다.
중복점을 머지하여 부호화하는 경우(S2401에서 Yes), 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 1로 설정하고, 당해 중복점 머지 플래그를 헤더에 부가한다(S2402).
중복점을 머지하여 부호화하지 않는 경우(S2401에서 No), 삼차원 데이터 부호화 장치는, 중복점 머지 플래그를 0으로 설정하고, 당해 중복점 머지 플래그를 헤더에 부가한다(S2403).
다음에, 삼차원 데이터 부호화 장치는, 입력 삼차원점군의 삼차원 위치를 양자화한다(S2404). 삼차원 데이터 부호화 장치는, 삼차원 위치의 양자화로서, 예를 들면 삼차원 위치(x, y, z)를 양자화 파라미터(qx, qy, qz)로 나눔으로써 양자화 위치(x/qx, y/qy, z/qz)를 산출한다. 또한, 삼차원 데이터 부호화 장치는, 양자화 파라미터를 헤더에 부가하고, 삼차원 데이터 복호 장치는, 당해 양자화 파라미터를 이용하여 역양자화를 행해도 된다. 또한, 삼차원 데이터 부호화 장치는, 로스리스 부호화 시에는 양자화 처리를 스킵해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그가 1인지의 여부를 판정한다(S2405). 중복점 머지 플래그가 1인 경우(S2405에서 Yes), 삼차원 데이터 부호화 장치는, 양자화 후의 삼차원점군 중 중복점을 머지한다(S2406). 또한, 삼차원 데이터 부호화 장치는, 로스리스 부호화, 또한 입력 삼차원점군에 중복점이 포함되지 않는 경우에는, 본 처리를 스킵해도 된다.
또한, 중복점 머지 플래그가 0인 경우(S2405에서 No), 삼차원 데이터 부호화 장치는, 중복점을 머지 처리를 행하지 않는다.
다음에, 삼차원 데이터 부호화 장치는, 노드를 8진 트리로 분할한다(S2411). 예를 들면, 삼차원 데이터 부호화 장치는, 양자화 후의 삼차원점군을 포함하는 대공간(루트 노드)으로부터 8진 트리 분할을 행하면서, 8진 트리의 각 노드의 어큐펀시 부호를 차례로 산출하고, 산출한 어큐펀시 부호를 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 8진 트리 분할을 반복 적용하고, 8진 트리 분할을 적용할 수 없게 된 시점에 리프 정보를 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 사전에 모든 노드의 어큐펀시 부호 및 리프 정보를 산출하고, 그 후에 그들 정보를 부호화해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 다음 노드(대상 노드)가 리프인지의 여부를 판정한다(S2412). 예를 들면, 삼차원 데이터 부호화 장치는, 8진 트리를 더 이상 분할할 수 없는 사이즈까지 분할했는지의 여부를 판정하고, 참이면 노드가 리프인 것으로 판정해도 된다.
대상 노드가 리프인 경우(S2412에서 Yes), 삼차원 데이터 부호화 장치는, 중복점 머지 플래그가 0인지의 여부를 판정한다(S2413). 중복점 머지 플래그가 0인 경우(S2413에서 Yes), 삼차원 데이터 부호화 장치는, 리프에 포함되는 삼차원점의 수(num_point_per_leaf)를 부호화한다(S2414). 중복점 머지 플래그가 1인 경우(S2413에서 No), 삼차원 데이터 부호화 장치는, 리프에 포함되는 삼차원점의 수(num_point_per_leaf)를 부호화하지 않는다.
또한, 대상 노드가 리프가 아닌 경우(S2412에서 No), 삼차원 데이터 부호화 장치는, 대상 노드의 어큐펀시 부호를 부호화한다(S2415).
다음에, 삼차원 데이터 부호화 장치는, 모든 노드의 처리가 완료되었는지의 여부를 판정한다(S2416). 모든 노드의 처리가 완료되지 않은 경우(S2416에서 No), 삼차원 데이터 부호화 장치는, 다음 노드에 대하여 단계 S2412 이후의 처리를 행한다.
모든 노드의 처리가 완료된 경우(S2416에서 Yes), 삼차원 데이터 부호화 장치는, 부호화한 삼차원점에 관련된 속성 정보를 부호화한다(S2417).
또한, 삼차원 데이터 부호화 장치는, 대공간(루트 노드)의 x축, y축 또는 z축의 사이즈를, 각 축에 대하여 항상 균등하게 2분할을 할 수 있도록, 2의 멱승의 사이즈로 조정해도 된다. 또한, 삼차원 데이터 부호화 장치는, 분할 후의 노드가 항상 입방체가 되도록 대공간의 사이즈를 조정해도 된다. 예를 들면, 삼차원점군의 삼차원 위치가 x축에서 0~256, y축에서 0~120, z축에서 0~62의 값의 범위를 취하는 경우, 우선, 삼차원 데이터 부호화 장치는, 각 축의 최소치와 최대치를 비교하여, 모든 점군의 좌표의 최소치와 최대치를 산출한다. 이 경우는, 최소치는 0, 최대치는 256이다. 다음에, 산출한 최소치와 최대치를 포괄하고, 또한, 대공간의 사이즈가 2의 멱승이 되는 값을 산출한다. 이 경우는, 사이즈가 512이며, 공간 내의 좌표의 최소치가 0이고, 최대치가 511이다. 이에 의해, 0~256의 범위의 점군을 포괄할 수 있다. 또한, 이 경우, 삼차원 데이터 부호화 장치는, 512×512×512의 사이즈의 대공간으로부터 8진 트리의 분할을 스타트한다.
다음에, 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 흐름을 설명한다. 도 180은, 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 내의 중복점 머지 플래그를 복호한다(S2421).
다음에, 삼차원 데이터 복호 장치는, 노드를 8진 트리로 분할한다(S2422). 예를 들면, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 예를 들면, 삼차원 데이터 복호 장치는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 삼차원 데이터 복호 장치는, 마찬가지로 노드 A0~A7의 각각을 다시 8개의 소공간으로 분할한다. 이와 같이, 삼차원 데이터 복호 장치는, 본 플로우의 처리를 통해, 각 노드의 어큐펀시 부호의 복호와, 리프 정보의 복호를 차례로 행한다.
다음에, 삼차원 데이터 복호 장치는, 다음 노드(대상 노드)가 리프인지의 여부를 판정한다(S2423). 대상 노드가 리프인 경우(S2423에서 Yes), 삼차원 데이터 복호 장치는, 중복점 머지 플래그가 0인지의 여부를 판정한다(S2424). 중복점 머지 플래그가 0인 경우(S2424에서 Yes), 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 리프에 포함되는 삼차원점의 수(num_point_per_leaf)를 복호한다(S2425). 한편, 중복점 머지 플래그가 1인 경우(S2424에서 No), 삼차원 데이터 복호 장치는, 비트 스트림으로부터, 리프에 포함되는 삼차원점의 수(num_point_per_leaf)를 복호하지 않는다.
또한, 다음 노드가 리프가 아닌 경우(S2423에서 No), 삼차원 데이터 복호 장치는, 비트 스트림으로부터 대상 노드의 어큐펀시 부호를 복호한다(S2426).
다음에, 삼차원 데이터 복호 장치는, 복호한 어큐펀시 부호, 및 8진 트리의 분할 수 등의 정보를 이용하여 리프의 삼차원 위치를 산출한다(S2427). 예를 들면 대공간의 사이즈가 8×8×8인 경우에, 8진 트리 분할을 3회 적용하면 노드의 사이즈가 1×1×1이 된다. 이 사이즈(1×1×1)가 분할할 수 있는 최소 단위(리프)이다. 또한, 삼차원 데이터 복호 장치는, 각 리프에 점이 포함되는지의 여부를, 리프의 부모 노드의, 복호한 어큐펀시 부호로부터 판정한다. 이에 의해, 삼차원 데이터 복호 장치는, 각 리프의 삼차원 위치를 산출할 수 있다.
다음에, 삼차원 데이터 복호 장치는, 산출한 삼차원 위치를 역양자화한다(S2428). 구체적으로는, 삼차원 데이터 복호 장치는, 헤더로부터 복호한 양자화 파라미터를 이용하여 역양자화를 행함으로써, 점군의 삼차원 위치를 산출한다. 예를 들면, 삼차원 데이터 복호 장치는, 삼차원 위치의 역양자화로서, 예를 들면 역양자화 전의 삼차원 위치(x, y, z)에 양자화 파라미터(qx, qy, qz)를 곱함으로써 역양자화 위치(x×qx, y×qy, z×qz)를 산출한다. 또한, 삼차원 데이터 복호 장치는, 로스리스 부호화 시에는 역양자화 처리를 스킵해도 된다. 또한, 삼차원 데이터 복호 장치는, 로스리스 부호화가 아닌(불가역 부호화) 때라도, 스케일을 원래의 스케일로 되돌릴 필요가 없는 경우는, 역양자화 처리를 스킵해도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 삼차원점의 절대적인 위치 관계가 아니라, 상대적인 위치 관계가 필요한 경우는, 역양자화 처리를 스킵해도 된다.
다음에, 삼차원 데이터 복호 장치는, 모든 노드의 처리가 완료되었는지의 여부를 판정한다(S2429). 모든 노드의 처리가 완료되지 않은 경우(S2429에서 No), 삼차원 데이터 복호 장치는, 다음 노드에 대하여 단계 S2423 이후의 처리를 행한다.
모든 노드의 처리가 완료된 경우(S2429에서 Yes), 삼차원 데이터 복호 장치는, 복호한 삼차원점에 관련된 속성 정보를 비트 스트림으로부터 복호한다(S2430). 또한, 중복점 머지 플래그가 1인 경우는, 복호된 상이한 삼차원 위치를 갖는 각 점에 1개의 속성 정보가 복호 후에 결합된다. 또한, 중복점 머지 플래그가 0인 경우는, 복호된 동일한 삼차원 위치를 갖는 복수의 점에, 복수의 상이한 속성 정보가 복호되어 결합된다.
다음에, 삼차원 데이터 부호화 장치의 구성예를 설명한다. 도 181은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(2400)의 블럭도이다. 삼차원 데이터 부호화 장치(2400)는, 양자화부(2401), 8진 트리 생성부(2402), 머지 결정부(2403), 엔트로피 부호화부(2404)를 구비한다.
양자화부(2401)는, 입력된 삼차원점(포인트 클라우드)을 양자화한다. 또한, 가역 부호화의 경우에는 양자화 처리를 생략해도 된다.
8진 트리 생성부(2402)는, 입력된 삼차원점(포인트 클라우드)으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리의 각 노드의 어큐펀시 부호 및 리프 정보를 생성한다.
머지 결정부(2403)는, 중복점을 머지하여 부호화할지의 여부를 판정하고, 판정 결과에 의거하여 중복점 머지 플래그의 값을 설정한다. 예를 들면, 머지 결정부(2403)는, 양자화 후의 삼차원점군의 정보를 이용하여, 중복점 머지 플래그의 값을 결정한다. 예를 들면, 머지 결정부(2403)는, 양자화 후의 삼차원점군에 중복점이 포함되는지의 여부에 의거하여 중복점 머지 플래그의 값을 결정한다.
엔트로피 부호화부(2404)는, 중복점 머지 플래그에 따라 리프 정보의 부호화를 행함으로써 비트 스트림을 생성한다. 엔트로피 부호화부(2404)는, 중복점 머지 플래그를 비트 스트림에 부가해도 된다. 또한, 엔트로피 부호화부(2404)는, 어큐펀시 부호를 부호화해도 된다. 또한, 엔트로피 부호화부(2404)는, 부호화한 삼차원점에 관련된 속성 정보를 부호화해도 된다.
다음에, 삼차원 데이터 복호 장치의 구성예를 설명한다. 도 182는, 본 실시 형태에 따른 삼차원 데이터 복호 장치(2410)의 블럭도이다. 삼차원 데이터 복호 장치(2410)는, 8진 트리 생성부(2411), 머지 정보 복호부(2412), 엔트로피 복호부(2413), 역양자화부(2414)를 구비한다.
8진 트리 생성부(2411)는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 예를 들면, 8진 트리 생성부(2411)는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 8진 트리 생성부(2411)는, 마찬가지로 노드 A0~A7의 각각을 다시 8개의 소공간으로 분할한다. 이와 같이, 8진 트리 생성부(2411)는 8진 트리의 생성을 반복한다.
머지 정보 복호부(2412)는, 비트 스트림의 헤더 정보로부터 중복점 머지 플래그를 복호한다. 또한, 머지 정보 복호부(2412)는, 엔트로피 복호부(2413)에 포함되어도 된다.
엔트로피 복호부(2413)는, 복호한 중복점 머지 플래그의 정보에 따라 리프 정보를 복호하여, 삼차원점군(삼차원 위치)을 생성한다. 또한, 엔트로피 복호부(2413)는, 복호한 삼차원점에 관련된 속성 정보를 복호해도 된다.
역양자화부(2414)는, 복호한 점군의 삼차원 위치에 역양자화를 적용하여, 출력 삼차원점군을 생성한다. 또한, 가역 부호화의 경우는 역양자화 처리를 생략해도 된다. 또한, 삼차원 데이터 복호 장치는, 불가역 부호화의 경우라도, 스케일을 원래의 스케일로 되돌릴 필요가 없는 경우는, 역양자화 처리를 생략해도 된다. 예를 들면, 삼차원점의 절대적인 위치 관계가 아니라, 상대적인 위치 관계가 필요한 경우는, 역양자화 처리를 생략해도 된다.
다음에, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 변형예를 설명한다. 도 183은, 삼차원 데이터 부호화 처리의 변형예의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군의 삼차원 위치를 양자화한다(S2441). 예를 들면, 삼차원 데이터 부호화 장치는, 삼차원 위치의 양자화로서, 예를 들면 삼차원 위치(x, y, z)를 양자화 파라미터(qx, qy, qz)로 나눔으로써 양자화 위치(x/qx, y/qy, z/qz)를 산출한다. 또한, 삼차원 데이터 부호화 장치는, 양자화 파라미터를 헤더에 부가하고, 삼차원 데이터 복호 장치는, 당해 양자화 파라미터를 이용하여 역양자화를 행해도 된다. 또한, 삼차원 데이터 부호화 장치는, 로스리스 부호화 시에는 양자화 처리를 스킵해도 된다.
다음에, 삼차원 데이터 부호화 장치는, 양자화 후의 삼차원점군에 중복점이 포함되는지의 여부를 판정한다(S2442). 예를 들면, 삼차원 데이터 부호화 장치는, 모든 삼차원점군의 삼차원 위치 정보를 비교하여, 동일한 값이 존재하는지로 판정한다. 또는, 삼차원 데이터 부호화 장치는, 모든 삼차원 위치 정보의 차분을 산출하여, 그 차분의 절대치가 미리 정해진 역치보다 큰 경우는, 중복점이 포함되지 않는 것으로 판정해도 된다.
삼차원점군에 중복점이 포함되는 경우(S2442에서 Yes), 삼차원 데이터 부호화 장치는, 중복점을 머지하여 부호할지의 여부를 판정한다(S2443). 예를 들면, 삼차원 데이터 부호화 장치는, 부호화 효율을 우선하는 경우는, 중복점을 머지하는 것으로 판단해도 된다. 또한, 삼차원 데이터 부호화 장치는, 삼차원 데이터 복호 장치에서 중복점이 필요하다면, 머지하지 않는 것으로 판단해도 된다.
삼차원점군에 중복점이 포함되지 않는 경우(S2442에서 No), 또는, 중복점을 머지하는 경우(S2443에서 Yes), 삼차원 데이터 부호 장치는, 중복점 머지 플래그를 1로 설정하고, 당해 중복점 머지 플래그를 헤더에 부가한다(S2444). 한편, 중복점을 머지하지 않는 경우(S2443에서 No), 삼차원 데이터 부호 장치는, 중복점 머지 플래그를 0으로 설정하고, 당해 중복점 머지 플래그를 헤더에 부가한다(S2445).
다음에, 삼차원 데이터 부호 장치는, 중복점 머지 플래그가 1인지의 여부를 판정한다(S2446). 중복점 머지 플래그가 1인 경우(S2446에서 Yes), 삼차원 데이터 부호 장치는, 양자화 후의 삼차원점군에 포함되는 중복점을 머지한다(S2447). 또한, 차원 데이터 부호화 장치는, 로스리스 부호화, 또한 입력 삼차원점군에 중복점이 포함되지 않는 경우는, 본 처리를 스킵해도 된다. 또한, 중복점 머지 플래그가 0인 경우(S2446에서 No), 삼차원 데이터 부호 장치는, 양자화 후의 삼차원점군에 포함되는 중복점을 머지하지 않는다. 그 후의 처리는, 도 179에 나타내는 처리와 동일하다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 리프가 2개의 삼차원점을 포함하고, 또한, 당해 2개의 삼차원점의 삼차원 위치의 차이가 미리 정해진 역치 미만인 경우에, 당해 2개의 삼차원점을 머지할지의 여부를 나타내는 제1 정보(예를 들면 중복점 머지 플래그)를 비트 스트림에 부가하고, 상기 제1 정보에 의해 상기 2개의 삼차원점을 머지하는 것이 나타내어지는 경우, 상기 2개의 삼차원점을 머지하고, 머지한 삼차원점을 부호화하며, 상기 제1 정보에 의해 상기 2개의 삼차원점을 머지하지 않는 것이 나타내어지는 경우, 상기 2개의 삼차원점의 각각을 부호화한다.
이에 의해, 당해 삼차원 데이터 부호화 장치는, 삼차원점을 머지할지의 여부를 전환할 수 있음과 더불어, 삼차원점이 머지되어 있는지의 여부를 삼차원 데이터 복호 장치에 전할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 정보에 의해 상기 2개의 삼차원점을 머지하지 않는 것이 나타내어지는 경우, 상기 리프에 관한 제2 정보(예를 들면 리프 정보)를 상기 비트 스트림에 부가하고, 상기 제1 정보에 의해 상기 2개의 삼차원점을 머지하는 것이 나타내어지는 경우, 상기 리프 정보를 상기 비트 스트림에 부가하지 않는다.
예를 들면, 상기 제2 정보는, 상기 리프에 포함되는 삼차원점의 개수를 나타낸다.
예를 들면, 상기 삼차원 데이터 부호화 장치는, 상기 복수의 삼차원점의 삼차원 위치를, 입력된 복수의 삼차원점의 삼차원 위치를 양자화함으로써 생성한다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 리프가 2개의 삼차원점을 포함하고, 또한, 당해 2개의 삼차원점의 삼차원 위치의 차이가 미리 정해진 역치 미만인 경우에, 당해 2개의 삼차원점을 머지했는지의 여부를 나타내는 제1 정보(예를 들면 중복점 머지 플래그)를 비트 스트림으로부터 복호하고, 상기 제1 정보에 의해 상기 2개의 삼차원점이 머지되어 있지 않은 것이 나타내어지는 경우, 상기 리프에 관한 제2 정보(예를 들면 리프 정보)를 상기 비트 스트림으로부터 복호하고, 상기 제1 정보에 의해 상기 2개의 삼차원점이 머지되어 있는 것이 나타내어지는 경우, 상기 리프 정보를 상기 비트 스트림으로부터 복호하지 않는다.
예를 들면, 상기 제2 정보는, 상기 리프에 포함되는 삼차원점의 개수를 나타낸다.
예를 들면, 상기 삼차원 데이터 복호 장치는, 상기 리프 정보를 이용하여 상기 복수의 삼차원점의 삼차원 위치를 복원하고, 복원한 삼차원 위치를 역양자화한다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 양자화 후의 리프 내에, 중복점과 중복점이 아닌 점이 존재하는 경우에도 본 실시 형태의 방법을 적용해도 된다. 도 184는, 이 처리를 설명하기 위한 도면이다. 예를 들면, 도 184에 나타내는 바와 같이, 양자화 전의 상태에 있어서 점 A, 점 B, 점 D가 리프 내에 존재한다. 양자화에 의해 점 A와 점 B의 삼차원 위치가 동일하게 되어, 점 A와 점 B는 중복점이 된다. 한편, 점 D는 다른 점과 삼차원 위치가 상이하기 때문에 중복점이 되지 않는다. 이러한 케이스는, 8진 트리의 분할을 분할의 최소 단위까지 행하지 않고, 도중의 노드를 리프로서 부호화하는 경우에 발생한다.
이러한 케이스의 경우에, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그(MergeDuplicatedPointsFlag)가 0인 경우에는, 각 리프가 몇 개의 점군을 포함하는지를 나타내는 정보와, 각 점군의 위치 정보와, 속성 정보를 부호화한다. 여기서 위치 정보란, 각 점군의 어느 기준 위치로부터의 절대 좌표여도 되고, 상술한 바와 같이 리프에 포함되는 점의 상대 좌표를 포함해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A, 점 B, 점 D의 합계 3개가 리프에 포함된다고 하는 정보와, 각각의 위치 정보와, 각각의 속성 정보를 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 중복점 머지 플래그가 1인 경우에는, 리프 내의 중복점을 머지한다. 예를 들면, 삼차원 데이터 부호화 장치는, 점 A와 점 B를 머지하고 머지 후의 위치 정보 및 속성 정보를 부호화한다. 이때, 점 D는 머지되지 않기 때문에, 삼차원 데이터 부호화 장치는, 점 D의 위치 정보 및 속성 정보를 별도로 부호화한다.
또한, 삼차원 데이터 부호화 장치는, 리프 내에 포함되는 머지 후의 점의 수를 나타내는 정보를 부호화해도 된다. 도 184에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 점 A와 점 B를 1점으로 머지하고, 점 D를 머지하지 않기 때문에, 리프 내의 점 수를 2개로서 부호화한다.
중복점 머지 플래그가 1인 경우에는, 삼차원 데이터 부호화 장치는, 리프 내의 M점의 중복점을 N점(M>N)으로 머지해도 된다. 이 경우, 삼차원 데이터 부호화 장치는, N점의 삼차원 위치 정보 및 속성 정보와, 머지되지 않은 점의 위치 정보 및 속성 정보를 각각 리프 정보로서 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, M개의 속성 정보를 이용하여 N개의 속성 정보를 산출해도 된다.
또한, 삼차원 데이터 부호화 장치는, 리프 내에 포함되는 점의 수를 나타내는 정보를 부호화해도 된다. 도 184에 나타내는 예에서는, 삼차원 데이터 부호화 장치는, 리프 내에 포함되는 점의 수가 3개인 것을 나타내는 정보를 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 모든 점의 위치 정보 및 속성 정보를 부호화해도 된다.
(실시 형태 16)
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 부모 노드가 상이한 인접 노드의 정보를, 부호화가 완료된 노드를 탐색함으로써 얻는다. 도 185는, 인접 노드의 예를 나타내는 도면이다. 도 185에 나타내는 예에서는, 3개의 인접 노드가 대상 노드와 동일한 부모 노드에 속한다. 삼차원 데이터 부호화 장치는, 이 3개의 인접 노드의 인접 정보를, 부모 노드의 어큐펀시 부호를 확인함으로써 취득한다.
또한, 나머지 3개의 인접 노드는, 대상 노드와는 상이한 부모 노드에 속한다. 삼차원 데이터 부호화 장치는, 이들 3개의 인접 노드의 인접 정보를 부호화 완료 노드의 정보를 확인함으로써 취득한다. 여기서, 인접 정보란, 그 노드가 점군을 포함하는(점유(occupied))지의 여부를 나타내는 정보를 포함한다. 또한, 부호화 완료 노드란, 예를 들면, 8진 트리에 있어서 대상 노드와 동일한 층에 속하는 노드이다.
도 186은, 탐색 대상이 되는 노드의 예를 나타내는 도면이다. 삼차원 데이터 부호화 장치는, 도 186에 나타내는 부호화 완료 노드를 탐색 범위로 하여, 인접 노드의 정보를 탐색한다. 도 187은, 인접 노드의 탐색 처리를 설명하기 위한 도면이다. 도 187에 나타내는 바와 같이, 부호화 완료 노드의 정보는 큐에 저장된다. 삼차원 데이터 부호화 장치는, 복수의 큐를 선두부터 탐색하여, 인접 노드의 정보를 취득한다. 예를 들면, 탐색하는 큐의 순서는, 부호화순이다.
삼차원 데이터 부호화 장치는, 자식 노드가 점유인지의 여부를 나타내는 정보를 산출함으로써 대상 노드의 어큐펀시 부호를 산출한다. 이때, 삼차원 데이터 부호화 장치는, 각 자식 노드의 인접 정보를 갱신한다. 예를 들면, 삼차원 데이터 부호화 장치는, 대상 노드와 부모 노드가 동일한 인접 노드가 점유인지의 여부를, 어큐펀시 부호로부터 판정한다. 또한, 삼차원 데이터 부호화 장치는, 대상 노드와 부모 노드가 상이한 인접 노드가 점유인지의 여부를, 이미 부호화가 완료된 노드의 정보를 저장한 큐로부터 인접 노드의 정보를 탐색하고, 발견된 인접 노드가 점유인지의 여부를 나타내는 정보로부터 판정한다. 또한, 삼차원 데이터 부호화 장치는, 각 자식 노드의 인접 정보를 갱신하고, 다음 노드의 자식 노드의 인접 노드를 산출하기 위해서 갱신 후의 인접 정보를 큐에 저장한다.
삼차원 데이터 부호화 장치는, 각 탐색에 있어서, 대상 노드와 탐색된 노드의 양쪽 모두의 인접 정보를 갱신한다. 도 188 및 도 189는 이 갱신 처리를 설명하기 위한 도면이다. 도 188에 나타내는 바와 같이, 삼차원 데이터 부호화 장치는, 각 탐색에 있어서, 대상 노드와 탐색된 노드의 양쪽 모두의 인접 정보를 갱신한다. 즉, 인접 정보는 쌍방향으로 전달된다. 대상 노드의 정보에는, 탐색된 노드가 인접 노드인 것이 추가되고, 인접 노드의 정보에는 대상 노드가 인접 노드인 것이 추가된다.
또한, 도 189에 나타내는 바와 같이, 탐색 처리에 있어서, 직전의 대상 노드는, 탐색된 노드가 될 수 있다. 이 경우, 직전의 대상 노드의 인접 정보가 갱신된다.
또한, 삼차원 데이터 부호화 장치는, 하드웨어 실장을 위한 최장 처리 시간을 보증하기 위해서, 인접 노드가 발견되기 전에 탐색 처리를 종료해도 된다. 도 190은, 이 동작을 설명하기 위한 도면이다.
도 190에 나타내는 바와 같이, 탐색을 정지하는 역치인 탐색 역치가 미리 정해져 있다. 이 탐색 역치는, 예를 들면, 큐의 선두로부터의 탐색 횟수를 나타낸다.
도 190의 (1)에 나타내는 예에서는, 인접 노드의 큐를 탐색하기 위해서는 탐색 역치보다 많은 탐색 단계가 필요하다. 이 예에서는, 삼차원 데이터 부호화 장치는, 탐색 역치까지의 탐색을 행하고, 탐색 처리를 종료한다.
도 190의 (2)에 나타내는 예에서는, 탐색 역치보다 적은 탐색 단계로 인접 노드의 큐를 탐색할 수 있다. 이 예에서는, 삼차원 데이터 부호화 장치는, 인접 노드를 탐색하고, 탐색 처리를 종료한다.
이와 같이, 삼차원 데이터 부호화 장치는, 탐색 횟수를 제한하기 위한 파라미터(탐색 역치)를 준비해도 된다. 탐색 횟수를 제한함으로써, 탐색의 처리 시간을 일정 시간 내로 억제하면서, 인접 노드를 발견하는 것이 가능해진다. 또한, 삼차원 데이터 부호화 장치는, 탐색 횟수의 제한치(탐색 역치)를 나타내는 정보를 비트 스트림의 헤더 등에 부가해도 된다. 또는, 탐색 횟수는 규격 등으로 규정되어도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 탐색 횟수의 제한치를 헤더 또는 규격의 규정으로부터 결정할 수 있으므로, 올바르게 스트림을 복호할 수 있다.
다음에, 부호화 완료 노드의 큐의 구성의 구체적인 예에 대해서 설명한다. 대상 노드의 근방을 식별하기 위해서, 부호화 완료 노드의 큐의 각 요소는, 삼차원 공간에서의 인덱스를 갖는다. 예를 들면, 이 인덱스에는 모턴 부호(Morton code)가 이용된다.
도 191은, 모턴 부호를 이용한 인덱스의 예를 나타내는 도면이다. 도 192는, 모턴 부호를 이용한 큐의 예를 나타내는 도면이다. 도 191에 나타내는 예에서는, 대상 노드의 인덱스는 3이고, 좌측 노드의 인덱스는 2이고 하측 노드의 인덱스는 1이다. 이와 같이 모턴 부호의 인덱스를 이용함으로써 인접 노드를 판정할 수 있다.
또한, 모턴 부호를 이용함으로써 이하의 효과가 있다. 첫 번째 효과로서, 탐색 처리를 고속화할 수 있다. 여기서, x, y, z좌표를 이용한 탐색 처리는, 단일의 정수인 모턴 부호를 발견하는 처리보다 복잡하다.
두 번째 효과로서, 모턴 부호를 이용함으로써 유지하는 데이터량을 삭감할 수 있다. 구체적으로는, x, y, z를 이용한 경우에는, 3개의 32비트의 데이터가 필요하게 된다. 한편, 모턴 부호를 이용함으로써 1개의 64비트의 데이터로 노드를 식별할 수 있다.
또한, 삼차원 위치를 정수로 변환하는 수법으로서 모턴 부호 이외의 수법이 이용되어도 된다. 예를 들면, 힐버트 곡선(Hilbert curve) 등의, 삼차원 위치를 정수로 변환 가능한 공간 충전 곡선(space filling curve)이 이용되어도 된다.
다음에, 본 실시 형태에 따른 삼차원 데이터 부호화 장치의 구성예를 설명한다. 도 193은, 본 실시 형태에 따른 삼차원 데이터 부호화 장치(2500)의 블럭도이다. 이 삼차원 데이터 부호화 장치(2500)는, 8진 트리 생성부(2501), 부모 노드 정보 취득부(2502), 부호화 모드 선택부(2503), 탐색부(2504), 기하 정보 산출부(2505), 부호화 테이블 선택부(2506), 엔트로피 부호화부(2507)를 구비한다.
8진 트리 생성부(2501)는, 입력된 삼차원점(포인트 클라우드)으로부터, 예를 들면 8진 트리를 생성하고, 8진 트리의 각 노드의 어큐펀시 부호를 생성한다.
부모 노드 정보 취득부(2502)는, 대상 노드의 부모 노드의 어큐펀시 부호로부터 인접 노드의 인접 정보를 취득한다. 즉, 부모 노드 정보 취득부(2502)는, 복수의 인접 노드 중, 예를 들면, 대상 노드와 동일한 부모 노드에 속하는 인접 노드이며, 복수의 인접 노드의 반수에 해당하는 인접 노드의 인접 정보를 취득한다.
부호화 모드 선택부(2503)는, 부호화 모드를 선택한다. 예를 들면, 이 부호화 모드는, 부모 노드의 어큐펀시 부호로부터 인접 정보를 취득하는 처리와, 탐색 처리 중 한쪽을 행하는 모드와, 양쪽 모두를 행하는 모드를 포함한다.
탐색부(2504)는, 탐색 처리에 의해, 부호화 완료 노드의 정보를 이용하여 인접 노드의 인접 정보를 취득한다. 이 탐색 처리는, 처리 시간을 갖지만, 이 탐색 처리에 의해 모든 인접 노드의 인접 정보가 취득 가능하다.
기하 정보 산출부(2505)는, 부모 노드 정보 취득부(2502)에서 얻어진 인접 정보와, 탐색부(2504)에서 얻어진 인접 정보 중 한쪽을 이용하여, 또는, 양쪽 모두를 통합함으로써, 부호화 테이블의 선택에 이용하는 인접 정보(인접 노드의 점유 정보)를 생성한다.
부호화 테이블 선택부(2506)는, 기하 정보 산출부(2505)에서 생성된 인접 노드의 점유 정보를 이용하여 엔트로피 부호화에 이용할 부호화 테이블을 선택한다.
엔트로피 부호화부(2507)는, 선택된 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 부호화함으로써 비트 스트림을 생성한다. 또한, 엔트로피 부호화부(2507)는, 선택된 부호화 테이블을 나타내는 정보를 비트 스트림에 부가해도 된다.
다음에, 본 실시 형태에 따른 삼차원 데이터 복호 장치의 구성예를 설명한다. 도 194는, 본 실시 형태에 따른 삼차원 데이터 복호 장치(2510)의 블럭도이다. 이 삼차원 데이터 복호 장치(2510)는, 8진 트리 생성부(2511), 부모 노드 정보 취득부(2512), 복호 모드 선택부(2513), 탐색부(2514), 기하 정보 산출부(2515), 부호화 테이블 선택부(2516), 엔트로피 복호부(2517)를 구비한다.
8진 트리 생성부(2511)는, 비트 스트림의 헤더 정보 등을 이용하여, 어느 공간(노드)의 8진 트리를 생성한다. 예를 들면, 8진 트리 생성부(2511)는, 헤더 정보에 부가된 어느 공간의 x축, y축, z축 방향의 크기를 이용하여 대공간(루트 노드)을 생성하고, 그 공간을 x축, y축, z축 방향으로 각각 2분할함으로써 8개의 소공간 A(노드 A0~A7)를 생성하여 8진 트리를 생성한다. 또한, 대상 노드로서 노드 A0~A7이 순서대로 설정된다.
부모 노드 정보 취득부(2512)는, 대상 노드의 부모 노드의 어큐펀시 부호로부터 인접 노드의 인접 정보를 취득한다. 즉, 부모 노드 정보 취득부(2512)는, 복수의 인접 노드 중, 예를 들면, 대상 노드와 동일한 부모 노드에 속하는 인접 노드이며, 복수의 인접 노드의 반수에 해당하는 인접 노드의 인접 정보를 취득한다.
복호 모드 선택부(2513)는, 복호 모드를 선택한다. 예를 들면, 이 복호 모드는, 상기 부호화 모드에 대응하며, 부모 노드의 어큐펀시 부호로부터 인접 정보를 취득하는 처리와, 탐색 처리 중 한쪽을 행하는 모드와, 양쪽 모두를 행하는 모드를 포함한다.
탐색부(2514)는, 탐색 처리에 의해, 복호 완료 노드의 정보를 이용하여 인접 노드의 인접 정보를 취득한다. 이 탐색 처리는, 처리 시간을 갖지만, 이 탐색 처리에 의해 모든 인접 노드의 인접 정보가 취득 가능하다.
기하 정보 산출부(2515)는, 부모 노드 정보 취득부(2512)에서 얻어진 인접 정보와, 탐색부(2514)에서 얻어진 인접 정보 중 한쪽을 이용하여, 또는, 양쪽 모두를 통합함으로써, 부호화 테이블의 선택에 이용하는 인접 정보(인접 노드의 점유 정보)를 생성한다.
부호화 테이블 선택부(2516)는, 기하 정보 산출부(2515)에서 산출된 인접 노드의 점유 정보를 이용하여 엔트로피 복호에 이용할 부호화 테이블을 선택한다.
엔트로피 복호부(2517)는, 선택된 부호화 테이블을 이용하여 어큐펀시 부호의 엔트로피 복호를 행함으로써 삼차원점(포인트 클라우드)을 생성한다. 또한, 엔트로피 복호부(2517)는, 선택된 부호화 테이블의 정보를 비트 스트림으로부터 취득하고, 당해 정보로 나타내어지는 부호화 테이블을 이용하여, 대상 노드의 어큐펀시 부호를 엔트로피 복호해도 된다.
또한, 비트 스트림에 포함되는 어큐펀시 부호(8비트)의 각 비트는, 8개의 소공간 A(노드 A0~노드 A7)에 각각 점군이 포함되는지의 여부를 나타낸다. 또한 다시, 삼차원 데이터 복호 장치는, 소공간 노드 A0을 8개의 소공간 B(노드 B0~노드 B7)로 분할하여 8진 트리를 생성하고, 소공간 B의 각 노드에 점군이 포함되는지의 여부를 나타내는 정보를 어큐펀시 부호를 복호하여 산출한다. 이와 같이, 삼차원 데이터 복호 장치는, 대공간으로부터 소공간으로 8진 트리를 생성하면서 각 노드의 어큐펀시 부호를 복호한다.
이하, 본 실시 형태에 따른 삼차원 데이터 부호화 처리 및 삼차원 데이터 복호 처리의 흐름을 설명한다. 도 195는, 삼차원 데이터 부호화 장치에 의한 삼차원 데이터 부호화 처리의 플로차트이다.
우선, 삼차원 데이터 부호화 장치는, 입력 삼차원점군의 일부 또는 전부가 포함되는 공간(대상 노드)을 정의한다(S2501). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2502). 다음에, 삼차원 데이터 부호화 장치는, 각 노드에 점군이 포함되는지의 여부에 따라 대상 노드의 어큐펀시 부호를 생성한다(S2503). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드의 인접 노드의 인접 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출한다(S2504).
다음에, 삼차원 데이터 부호화 장치는, 부호화 모드를 선택한다(S2505). 예를 들면, 삼차원 데이터 부호화 장치는, 탐색 처리를 행하는 부호화 모드를 선택한다. 다음에, 삼차원 데이터 부호화 장치는, 부호화 완료 노드의 정보를 탐색함으로써, 나머지 인접 정보를 취득한다. 또한, 삼차원 데이터 부호화 장치는, 단계 S2504에서 산출한 인접 정보와, 탐색 처리에 의해 취득한 인접 정보를 통합함으로써, 부호화 테이블의 선택에 이용할 인접 정보를 생성한다(S2506).
다음에, 삼차원 데이터 부호화 장치는, 단계 S2506에서 생성한 인접 정보에 의거하여 엔트로피 부호화에 이용할 부호화 테이블을 선택한다(S2507). 다음에, 삼차원 데이터 부호화 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S2508). 다음에, 삼차원 데이터 부호화 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 부호화하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2509). 즉, 단계 S2502~S2508의 처리가 재귀적으로 반복된다.
도 196은, 삼차원 데이터 복호 장치에 의한 삼차원 데이터 복호 처리의 플로차트이다.
우선, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보를 이용하여 복호할 공간(대상 노드)을 정의한다(S2511). 다음에, 삼차원 데이터 복호 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2512). 다음에, 삼차원 데이터 복호 장치는, 대상 노드의 인접 노드의 인접 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출한다(S2513).
다음에, 삼차원 데이터 복호 장치는, 상기 부호화 모드에 대응하는 복호 모드를 선택한다(S2514). 예를 들면, 삼차원 데이터 복호 장치는, 탐색 처리를 행하는 복호 모드를 선택한다. 다음에, 삼차원 데이터 복호 장치는, 복호 완료 노드의 정보를 탐색함으로써, 나머지 인접 정보를 취득한다. 또한, 삼차원 데이터 복호 장치는, 단계 S2513에서 산출한 인접 정보와, 탐색 처리에 의해 취득한 인접 정보를 통합함으로써, 부호화 테이블의 선택에 이용할 인접 정보를 생성한다(S2515).
다음에, 삼차원 데이터 복호 장치는, 단계 S2515에서 생성한 인접 정보에 의거하여 엔트로피 복호에 이용할 부호화 테이블을 선택한다(S2516). 다음에, 삼차원 데이터 복호 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S2517). 다음에, 삼차원 데이터 복호 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 복호하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2518). 즉, 단계 S2512~S2517의 처리가 재귀적으로 반복된다.
다음에, 부호화 모드(복호 모드)에 대해서 설명한다. 부호화 모드는, (1) 탐색 처리를 스킵하는 제1 모드와, (2) 탐색 처리를 행하고, 또한, 상기 탐색 역치에서 처리를 정지하는 제2 모드와, (3) 탐색 처리를 행하고, 또한, 모든 부호화 완료(복호 완료) 노드를 탐색하는 제3 모드 중 적어도 하나를 포함한다.
즉, 삼차원 데이터 복호 장치는, 부호화 모드로서, 인접 노드의 탐색을 스킵할지, 인접 노드의 탐색을 행할지를 전환하도록 해도 된다. 또한, 삼차원 데이터 부호화 장치는, 인접 노드의 탐색을 행하는 경우에, 탐색 횟수를 미리 정해진 역치 이하로 제한해도 된다. 또한, 삼차원 데이터 부호화 장치는, 이 역치를 나타내는 정보를, 비트 스트림의 헤더에 부가해도 된다. 또는, 이 역치는, 규격 등으로 규정되어도 된다. 또한, 삼차원 데이터 부호화 장치는, 이 역치의 값을 노드마다 전환해도 된다. 예를 들면, 8진 트리의 층의 값이 커질(깊어질)수록, 인접 노드의 후보는 증가한다. 따라서, 삼차원 데이터 부호화 장치는, 8진 트리의 층의 값이 커질(깊어질)수록, 역치를 크게 해도 된다. 또한, 노드가 속하는 층마다, 참조 가능한 범위가 바뀌어도 된다. 즉, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 참조 가능한 인접 노드의 범위는, 트리 구조에 있어서 대상 노드가 속하는 층에 따라 상이해도 된다. 여기서, 헤더 등에 설정된 참조 가능한 범위를 나타내는 파라미터의 값이 동일하더라도, 층이 깊어질수록 노드가 나타내는 공간은 작아져 간다. 즉, 층이 깊어질수록 노드가 참조 가능한 공간의 범위가 절대적으로 좁아져도 된다.
또한, 삼차원 데이터 부호화 장치는, 부호화 모드를 나타내는 정보를 비트 스트림의 헤더에 부가해도 된다. 또한, 부호화 모드는, 규격 등으로 규정되어도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 복호한 헤더 또는 규격의 규정으로부터 복호 모드(부호화 모드)를 결정할 수 있으므로 올바르게 스트림을 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 노드마다 부호화 모드를 부호화하고, 노드마다 부호화 모드를 전환해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 일단 모든 부호화 모드로 부호화를 행하고, 삼차원 데이터 복호 장치에게 있어 부호화 효율 및 처리 시간의 관점에서 최적인 부호화 모드를 결정한다. 그리고, 삼차원 데이터 부호화 장치는, 결정한 부호화 모드를 나타내는 정보를 노드마다 부호화해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 노드마다 부호화된 부호화 모드를 복호함으로써 비트 스트림을 올바르게 복호할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 미리 정해진 노드의 집합마다 부호화 모드를 부호화하고, 그 집합 단위로 부호화 모드를 전환해도 된다. 또한, 노드의 집합이란, 예를 들면 8진 트리의 동일 층에 포함되는 복수의 노드의 집합이다.
또한, 삼차원 데이터 복호 장치에 있어서도, 동일한 방법에 의해 복호 모드(부호화 모드)가 결정되어도 된다. 즉, 삼차원 데이터 부호화 장치와 삼차원 데이터 복호 장치는, 동일 방법으로 노드마다 부호화 모드를 추정하고, 노드마다 인접 노드의 탐색을 행할지의 여부를 전환해도 된다. 이에 의해, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드를 판정하고, 판정이 참인 때에 인접 노드의 탐색을 행하고, 판정이 거짓인 때에 인접 노드의 탐색을 스킵할 수 있다. 또한, 부호화 모드를 나타내는 정보를 전송할 필요가 없다. 따라서 부호화 효율을 향상시키면서, 처리량을 억제하는 것이 가능해진다.
예를 들면, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드인지의 여부를, 예를 들면 부모 노드의 어큐펀시 부호로부터 판정한다. 여기서, 부모 노드의 어큐펀시 부호로부터 산출한 3개의 인접 노드의 점유 정보가 모두 1인 경우는, 그 외의 인접 노드도 점유일 가능성이 높다. 따라서, 이 경우, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 것으로 판정한다.
또한, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드인지의 여부를, 8진 트리의 층의 값으로부터 판정해도 된다. 예를 들면, 층의 값이 작은(루트 노드에 가까운) 경우는 8진 트리의 분할이 충분히 행해져 있지 않을 가능성이 높다. 따라서, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드가 점유일 가능성이 높다고 판단하고, 인접 노드의 탐색이 필요한 것으로 판정해도 된다. 이와 같이 삼차원 데이터 부호화 장치와 삼차원 데이터 복호 장치에 있어서 동일 방법으로 부호화 모드를 추정함으로써 부호량을 억제하면서, 올바르게 부호화 및 복호를 행하는 것이 가능해진다.
또한, 삼차원 데이터 부호화 장치와 삼차원 데이터 복호 장치는, 동일 방법으로, 미리 정해진 노드의 집합마다 부호화 모드(복호 모드)를 추정하고, 그 집합 단위로 부호화 모드를 전환해도 된다. 이에 의해, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드의 집합인지의 여부를 판정하고, 판정이 참인 때에 인접 노드의 탐색을 행하고, 판정이 거짓인 때에 인접 노드의 탐색을 스킵할 수 있다. 따라서, 부호화 효율을 향상시키면서, 처리량을 억제하는 것이 가능해진다.
또한, 노드의 집합이란, 예를 들면, 8진 트리의 동일 층에 포함되는 복수의 노드의 집합이다. 이에 의해, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 층마다 인접 노드의 탐색을 행할지의 여부를 전환할 수 있으므로, 처리 시간을 억제하면서, 부호화 효율을 향상시킬 수 있다. 예를 들면, 층의 값이 작은(루트 노드에 가까운) 경우는, 8진 트리의 분할이 충분히 행해져 있지 않을 가능성이 높다. 따라서, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 인접 노드가 점유일 가능성이 높다고 판단하고, 인접 노드의 탐색이 필요한 것으로 판정해도 된다.
다음에, 부호화 모드를 나타내는 정보 등의 신택스예를 설명한다. 도 197은 헤더 정보의 신택스예를 나타내는 도면이다. 도 198은, 노드의 정보의 신택스예를 나타내는 도면이다.
도 197에 나타내는 바와 같이, 헤더 정보는, coding_mode1과 limit_num_of_search를 포함한다. coding_mode1은, 인접 노드의 탐색을 행하는지의 여부를 나타내는 정보이다. 예를 들면, 값 0은 인접 노드의 탐색을 행하지 않는 것을 나타내고, 값 1은 인접 노드의 탐색을 모든 노드에서 행하는 것을 나타내고, 값 2는 인접 노드의 탐색을 노드마다 전환하는 것을 나타낸다.
또한, 삼차원 데이터 부호화 장치는 coding_mode1을 헤더에 부가하지 않고, 규격 또는 규격의 프로파일 또는 레벨 등으로 인접 노드의 탐색을 행하는지의 여부가 규정되어도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 규격 정보를 참조하여, 인접 노드의 탐색을 행할지의 여부를 판정함으로써 비트 스트림을 올바르게 복원할 수 있다.
limit_num_of_search는, 상술한 인접 역치를 나타내는 정보이며, 예를 들면, 인접 노드를 탐색하는 경우의 탐색의 제한수(탐색 역치)를 나타낸다. 예를 들면, 값 0은 제한 없음을 나타내고, 값 1 이상은 제한 횟수를 나타낸다.
이 limit_num_of_search는, coding_mode1의 값이 1 이상인 경우에 헤더 정보에 포함된다. 또한, 삼차원 데이터 부호화 장치는, 탐색의 제한이 항상 필요없는 경우는, limit_num_of_search를 헤더에 포함시키지 않아도 된다. 또한, 삼차원 데이터 부호화 장치는, 8진 트리의 층마다 limit_num_of_search를 설정하고, 헤더에 포함시켜도 된다.
또한, limit_num_of_search의 값은 부호화 전에 결정되어도 된다. 예를 들면, 고성능의 기기로 부호화 또는 복호를 행하는 경우는 제한없이 설정되고, 저성능의 기기로 부호화 또는 복호하는 경우는, 제한이 설정된다.
도 198에 나타내는 바와 같이, 노드의 정보는, coding_mode2와 occupancy_code를 포함한다. 이 coding_mode2는, coding_mode1의 값이 2인 경우에 노드의 정보에 포함된다. coding_mode2는, 노드마다 인접 노드의 탐색을 행하는지의 여부를 나타내는 정보이다. 예를 들면, 값 0은 인접 노드의 탐색을 행하지 않는 것을 나타내고, 값 1은 인접 노드의 탐색을 행하는 것을 나타낸다.
또한, coding_mode2가 1인 때, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, 탐색의 제한수를 헤더에 부가된 limit_num_of_search에 설정해도 된다. 또한, 삼차원 데이터 부호화 장치는, 탐색의 제한수를 노드마다 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, coding_mode2의 값을 부호화하지 않고, 삼차원 데이터 복호 장치는, coding_mode2의 값을 추정해도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 부모 노드의 어큐펀시 부호 또는 8진 트리의 층 정보로부터, coding_mode2의 값을 추정한다.
occupancy_code는, 대상 노드의 어큐펀시 부호이며, 대상 노드의 자식 노드가 점유인지의 여부를 나타내는 정보이다. 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치는, coding_mode2의 값에 따라 인접 노드의 점유 정보를 산출하고, 그 값을 토대로 부호화 테이블을 전환하면서 occupancy_code를 부호화 또는 복호한다.
또한, 삼차원 데이터 부호화 장치는, 상기 방법으로 생성된 coding_mode1, limit_num_of_search, 또는 coding_mode2를 엔트로피 부호화해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 값을 2치화한 다음 산술 부호화한다.
또한, 본 실시 형태에서는, 8진 트리 구조를 예로 나타내었지만, 반드시 이에 한정하지 않으며, 2진 트리, 4진 트리, 16진 트리 등의 N진 트리(N은 2 이상의 정수), 또는, 그 외의 트리 구조에 대하여, 상기 수법을 적용해도 된다.
다음에, 삼차원 데이터 부호화 처리의 상세를 설명한다. 도 199는, 본 실시 형태에 따른 삼차원 데이터 부호화 처리의 플로차트이다. 우선, 삼차원 데이터 부호화 장치는, 입력 삼차원점군의 일부 또는 전부가 포함되는 공간(대상 노드)을 정의한다(S2521). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2522). 다음에, 삼차원 데이터 부호화 장치는, 각 노드에 점군이 포함되는지의 여부에 따라 대상 노드의 어큐펀시 부호를 생성한다(S2523). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드의 인접 노드의 인접 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출한다(S2524).
다음에, 삼차원 데이터 부호화 장치는, 부호화 모드를 확인함으로써 탐색 처리를 행할지의 여부를 판정한다(S2525). 예를 들면, 삼차원 데이터 부호화 장치는, (1) coding_mode1이 1인 경우, 또는, (2) coding_mode1이 2이고, 또한, coding_mode2가 1인 경우, 탐색 처리를 행한다(S2525에서 Yes)고 판정하고, 그 이외의 경우에는, 탐색 처리를 행하지 않는다(S2525에서 No)고 판정한다. 또한, 삼차원 데이터 부호화 장치는, 모든 노드에서 인접 노드의 탐색을 행할(coding_mode1의 값)지의 여부, 및 노드마다 인접 노드의 탐색을 행할지의 여부(coding_mode2의 값)를, 상술한 방법 등으로 결정한다.
예를 들면, 삼차원 데이터 부호화 장치는, 인접 노드의 탐색이 필요한 노드인지의 여부(coding_mode2의 값)를, 부모 노드의 어큐펀시 부호로부터 추정한다. 예를 들면, 부모 노드의 어큐펀시 부호로부터 산출한 3개의 인접 노드의 점유 정보가 모두 1인 경우는, 그 외의 인접 노드도 점유일 가능성이 높다. 따라서, 삼차원 데이터 부호화 장치는, 인접 노드의 탐색이 필요(coding_mode2의 값은 1)한 것으로 판정한다. 또한, 삼차원 데이터 복호 장치에서 coding_mode2를 추정하는 경우는, 삼차원 데이터 부호화 장치는 coding_mode2를 부호화하지 않아도 된다.
탐색 처리를 행하는 경우(S2525에서 Yes), 삼차원 데이터 부호화 장치는, 부호화 완료 노드의 정보를 탐색함으로써, 나머지 인접 정보를 취득한다. 예를 들면, 삼차원 데이터 부호화 장치는, limit_num_of_search의 값이 0(탐색 횟수 제한 없음)이 아닌 경우는, 그 값에 따라 탐색 횟수를 제한하면서 인접 노드를 탐색한다. 또한, 삼차원 데이터 부호화 장치는, limit_num_of_search의 값을 상술한 방법 등을 이용하여 설정한다. 또한, 삼차원 데이터 부호화 장치는, 부모 노드의 어큐펀시 부호로부터 산출한 인접 정보와 탐색 처리로 취득한 인접 정보를 통합한다(S2526). 다음에, 삼차원 데이터 부호화 장치는, 단계 S2526에서 생성한 인접 정보에 의거하여 엔트로피 부호화에 이용할 부호화 테이블을 선택한다(S2527).
한편, 탐색 처리를 행하지 않는 경우(S2525에서 No), 삼차원 데이터 부호화 장치는, 단계 S2524에서 부모 노드의 어큐펀시 부호로부터 산출한 인접 정보에 의거하여 엔트로피 부호화에 이용할 부호화 테이블을 선택한다(S2527).
다음에, 삼차원 데이터 부호화 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 부호화한다(S2528). 또한, 삼차원 데이터 부호화 장치는, 헤더 정보로서, coding_mode1, 및 limit_num_of_search를 부호화한다. 또한, 삼차원 데이터 부호화 장치는, 노드마다 coding_mode2를 부호화한다.
다음에, 삼차원 데이터 부호화 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 부호화하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2529). 즉, 단계 S2522~S2528의 처리가 재귀적으로 반복된다.
다음에, 삼차원 데이터 복호 처리의 상세를 설명한다. 도 200은, 본 실시 형태에 따른 삼차원 데이터 복호 처리의 플로차트이다. 우선, 삼차원 데이터 복호 장치는, 비트 스트림의 헤더 정보를 이용하여 복호할 공간(대상 노드)을 정의한다(S2531). 이때, 삼차원 데이터 복호 장치는, 헤더 정보의 coding_mode1과 limit_num_of_search를 복호한다.
다음에, 삼차원 데이터 복호 장치는, 대상 노드를 8분할하여 8개의 소공간(노드)을 생성한다(S2532). 다음에, 삼차원 데이터 복호 장치는, 대상 노드의 인접 노드의 인접 정보를, 대상 노드의 부모 노드의 어큐펀시 부호로부터 산출한다(S2533).
다음에, 삼차원 데이터 복호 장치는, 부호화 모드에 대응하는 복호 모드를 확인함으로써 탐색 처리를 행할지의 여부를 판정한다(S2534). 예를 들면, 삼차원 데이터 복호 장치는, (1) coding_mode1이 1인 경우, 또는, (2) coding_mode1이 2이고, 또한, coding_mode2가 1인 경우, 탐색 처리를 행한다(S2534에서 Yes)고 판정하고, 그 이외의 경우에는, 탐색 처리를 행하지 않는다(S2534에서 No)고 판정한다. 또한, 삼차원 데이터 복호 장치는, coding_mode2를, 예를 들면, 노드마다 복호한다.
또한, 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드인지의 여부(coding_mode2의 값)를, 삼차원 데이터 부호화 장치에 있어서의 처리와 동일한 처리를 이용하여 판정해도 된다. 예를 들면, 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요한 노드인지의 여부를, 부모 노드의 어큐펀시 부호로부터 추정한다. 예를 들면, 부모 노드의 어큐펀시 부호로부터 산출한 3개의 인접 노드의 점유 정보가 모두 1인 경우는, 그 외의 인접 노드도 점유일 가능성이 높다. 따라서, 삼차원 데이터 복호 장치는, 인접 노드의 탐색이 필요(coding_mode2의 값은 1)한 것으로 판정한다. 또한, 삼차원 데이터 복호 장치는, coding_mode2를 추정하는 경우는, coding_mode2를 복호하지 않아도 된다.
탐색 처리를 행하는 경우(S2534에서 Yes), 삼차원 데이터 복호 장치는, 복호 완료 노드의 정보를 탐색함으로써, 나머지 인접 정보를 취득한다. 예를 들면, 삼차원 데이터 복호 장치는, limit_num_of_search의 값이 0(탐색 횟수 제한 없음)이 아닌 경우는, 그 값에 따라 탐색 횟수를 제한하면서 인접 노드를 탐색한다. 또한, 삼차원 데이터 복호 장치는, 부모 노드의 어큐펀시 부호로부터 산출한 인접 정보와 탐색 처리로 취득한 인접 정보를 통합한다(S2535). 다음에, 삼차원 데이터 복호 장치는, 단계 S2535에서 생성한 인접 정보에 의거하여 엔트로피 복호에 이용할 부호화 테이블을 선택한다(S2536).
한편, 탐색 처리를 행하지 않는 경우(S2534에서 No), 삼차원 데이터 복호 장치는, 단계 S2533에서 부모 노드의 어큐펀시 부호로부터 산출한 인접 정보와 탐색 처리로 취득한 인접 정보에 의거하여 엔트로피 복호에 이용할 부호화 테이블을 선택한다(S2536).
다음에, 삼차원 데이터 복호 장치는, 선택한 부호화 테이블을 이용하여 대상 노드의 어큐펀시 부호를 엔트로피 복호한다(S2537). 다음에, 삼차원 데이터 복호 장치는, 각 노드를 각각 8분할하고, 각 노드의 어큐펀시 부호를 복호하는 처리를, 노드가 분할할 수 없게 될 때까지 반복한다(S2538). 즉, 단계 S2532~S2537의 처리가 재귀적으로 반복된다.
또한, 상기 설명에서는, 탐색 대상의 노드가 부호화 완료 노드인 예를 나타내었지만, 탐색 대상의 노드는 반드시 이에 한정되지 않는다. 예를 들면, 삼차원 데이터 부호화 장치는, 동일한 층에 속하는 모든 노드의 인접 노드의 정보를, 본 실시 형태에 기재된 방법으로 탐색함으로써 취득하고, 그 후, 취득한 인접 노드의 정보를 이용하여 각 노드의 어큐펀시 부호를 부호화해도 된다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 도 201에 나타내는 처리를 행한다. 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보를 부호화한다. 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 참조 가능한 인접 노드의 범위를 나타내는 제1 정보(예를 들면, limit_num_of_search)를 부호화하고(S2541), 상기 범위 내의 인접 노드를 참조하여, 대상 노드를 부호화한다(S2542).
이에 의해, 당해 삼차원 데이터 부호화 장치는, 참조 가능한 인접 노드를 제한할 수 있으므로, 처리량을 저감할 수 있다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 상기 범위 내의 인접 노드에 삼차원점이 존재하는지의 여부에 의거하여, 부호화 테이블을 선택하고, 선택된 부호화 테이블을 이용하여, 대상 노드의 정보(예를 들면 어큐펀시 부호)를 엔트로피 부호화한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 참조 가능한 인접 노드의 정보를 탐색하고, 상기 제1 정보는, 상기 탐색의 범위를 나타낸다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 탐색에서는, 복수의 노드의 정보를 미리 정해진 순서로 탐색하고, 제1 정보는, 상기 탐색을 행하는 노드의 수(예를 들면 탐색 역치)를 나타낸다.
예를 들면, 상기 탐색에서는, 모턴 부호의 인덱스가 이용된다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 부호화에서는, 참조 가능한 인접 노드의 범위에 제한을 두는지의 여부를 나타내는 제2 정보(coding_mode1)를 부호화하고, 제2 정보에 의해 참조 가능한 인접 노드의 범위에 제한을 두는 것이 나타내어지는 경우, 제1 정보를 부호화한다.
예를 들면, 상기 참조 가능한 인접 노드의 범위는, 상기 N진 트리 구조에 있어서 상기 대상 노드가 속하는 층에 따라 상이하다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 도 202에 나타내는 처리를 행한다. 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 대상 노드의 정보를 복호한다. 삼차원 데이터 복호 장치는, 상기 복호에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 참조 가능한 인접 노드의 범위를 나타내는 제1 정보(예를 들면, limit_num_of_search)를 비트 스트림으로부터 복호하고(S2551), 상기 범위 내의 인접 노드를 참조하여, 대상 노드를 복호한다(S2552).
이에 의해, 당해 삼차원 데이터 복호 장치는, 참조 가능한 인접 노드를 제한할 수 있으므로, 처리량을 저감할 수 있다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 상기 범위 내의 인접 노드에 삼차원점이 존재하는지의 여부에 의거하여, 부호화 테이블을 선택하고, 선택된 부호화 테이블을 이용하여, 대상 노드의 정보(예를 들면 어큐펀시 부호)를 엔트로피 복호한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 대상 노드와 공간적으로 인접하는 복수의 인접 노드 중, 참조 가능한 인접 노드의 정보를 탐색하고, 상기 제1 정보는, 상기 탐색의 범위를 나타낸다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 탐색에서는, 복수의 노드의 정보를 미리 정해진 순서로 탐색하고, 제1 정보는, 상기 탐색을 행하는 노드의 수(예를 들면 탐색 역치)를 나타낸다.
예를 들면, 상기 탐색에서는, 모턴 부호의 인덱스가 이용된다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 복호에서는, 참조 가능한 인접 노드의 범위에 제한을 두는지의 여부를 나타내는 제2 정보(coding_mode1)를 복호하고, 제2 정보에 의해 참조 가능한 인접 노드의 범위에 제한을 두는 것이 나타내어지는 경우, 제1 정보를 복호한다.
예를 들면, 상기 참조 가능한 인접 노드의 범위는, 상기 N진 트리 구조에 있어서 상기 대상 노드가 속하는 층에 따라 상이하다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
(실시 형태 17)
본 실시 형태에서는, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 2개 이상의 서브 삼차원점군으로 분리하고, 복수의 서브 삼차원점군에 의존 관계가 발생하지 않도록 각 서브 삼차원점군을 부호화한다. 이에 의해, 삼차원 데이터 부호화 장치는, 복수의 서브 삼차원점군을 병렬로 부호화할 수 있다. 예를 들면, 삼차원 데이터 부호화 장치는, 입력된 삼차원점군을 서브 삼차원점군 A와 서브 삼차원점군 B로 분리하고, 서브 삼차원점군 A와 서브 삼차원점군 B를 병렬로 부호화한다.
또한, 분리의 방법으로서는, 삼차원 데이터 부호화 장치는, 예를 들면, 8진 트리 구조를 이용하여 부호화를 행하는 경우, 8진 트리로 분할한 8개의 자식 노드를 병렬로 부호화한다. 예를 들면, 삼차원 데이터 부호화 장치는, 각 자식 노드를 루트로 하는 복수의 트리 구조를 병렬로 부호화한다.
또한, 삼차원 데이터 부호화 장치는, 복수의 서브 삼차원점군을 반드시 병렬로 부호화할 필요는 없으며, 의존 관계가 발생하지 않도록, 복수의 서브 삼차원점군을 순차적으로 부호화해도 된다. 또한, 8진 트리에 한정되지 않으며, 4진 트리 또는 16진 트리 등의 N진 트리(N은 2 이상의 정수)에 본 실시 형태의 수법을 적용해도 된다. 또한, 삼차원 데이터 부호화 장치는, 점군의 색, 반사율 또는 법선 벡터 등의 속성 정보를 이용하여 분할을 행해도 된다. 또한, 삼차원 데이터 부호화 장치는, 실시 형태 10의 도 92~도 93 등을 이용하여 설명한 바와 같이, 점군의 밀도의 차이에 의해 분할을 행해도 된다.
또한, 삼차원 데이터 부호화 장치는, 부호화한 복수의 서브 삼차원점군의 복수의 부호화 데이터를 1개의 비트 스트림에 결합해도 된다. 이때, 삼차원 데이터 부호화 장치는, 각 서브 삼차원점군의 각 부호화 데이터의 개시 위치를 비트 스트림의 헤더 등에 포함시켜도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 비트 스트림의 선두로부터의 어드레스(비트 위치 또는 바이트 수 등)를 헤더 등에 포함시켜도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 각 서브 삼차원점군의 부호화 데이터의 개시 위치를 비트 스트림의 선두를 복호함으로써 알 수 있다. 또한, 삼차원 데이터 복호 장치는, 복수의 서브 삼차원점군의 부호화 데이터를 병렬로 복호할 수 있으므로, 처리 시간을 삭감할 수 있다.
또한, 삼차원 데이터 부호화 장치는, 복수의 서브 삼차원점군에 의존 관계가 발생하지 않도록 복수의 서브 삼차원점군을 부호화한 것을 나타내는, 또는, 복수의 서브 삼차원점군을 병렬로 부호화한 것을 나타내는 플래그를 비트 스트림의 헤더에 부가해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 헤더를 복호함으로써, 복수의 삼차원점군의 복수의 부호화 데이터를 병렬로 복호 가능한지의 여부를 판단할 수 있다.
여기서, 복수의 서브 삼차원점군에 의존 관계가 발생하지 않는다는 것은, 예를 들면, 복수의 서브 삼차원점군의 복수의 노드의 어큐펀시 부호 또는 리프 정보 등을 부호화하기 위한 부호화 테이블(엔트로피 부호화에 이용되는 확률 테이블 등)을, 각 서브 삼차원점군에 대하여 독립적으로 갖는 것을 의미한다. 예를 들면, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 의존 관계가 발생하지 않도록 부호화하기 위해서, 서브 삼차원점군 A와 서브 삼차원점군 B에 대하여 상이한 부호화 테이블을 이용한다. 또는, 삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B를 순차적으로 처리하는 경우, 서브 삼차원점군 A와 서브 삼차원점군 B에 의존 관계가 발생하지 않도록, 서브 삼차원점군 A를 부호화한 후, 또한 서브 삼차원점군 B를 부호화하기 전에 부호화 테이블을 초기화한다. 이와 같이, 삼차원 데이터 부호화 장치는, 각 서브 삼차원점군의 부호화 테이블을 독립적으로 갖거나, 또는, 부호화 전에 부호화 테이블을 초기화함으로써, 복수의 서브 삼차원점군에 의존 관계가 발생하지 않도록 복수의 서브 삼차원점군을 부호화할 수 있다. 또한, 삼차원 데이터 복호 장치도 마찬가지로, 각 서브 삼차원점군의 부호화 테이블(복호 테이블)을 독립적으로 갖거나, 또는, 각 서브 삼차원점군의 복호 전에 부호화 테이블을 초기화함으로써, 각 서브 삼차원점군을 적절히 복호할 수 있다.
또한, 복수의 서브 삼차원점군에 의존 관계가 발생하지 않는다는 것은, 예를 들면, 복수의 서브 삼차원점군의 복수의 노드의 어큐펀시 부호 또는 리프 정보 등을 부호화할 때에, 서브 삼차원점군 사이에서 참조를 금지하는 것을 의미해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 부호화 대상의 대상 노드의 어큐펀시 부호를 부호화할 때에, 8진 트리에 있어서의 인접 노드의 정보를 이용하여 부호화를 행한다. 이 경우에 있어서, 삼차원 데이터 부호화 장치는, 인접 노드가 다른 서브 삼차원점군에 포함되는 경우, 그 인접 노드를 참조하지 않고 대상 노드를 부호화한다. 이 경우, 삼차원 데이터 부호화 장치는, 인접 노드는 존재하지 않는 것으로 하여 부호화를 행해도 되고, 인접 노드는 존재하지만, 당해 인접 노드가 다른 서브 삼차원점군에 포함된다고 하는 조건하에서 대상 노드를 부호화해도 된다.
마찬가지로, 삼차원 데이터 복호 장치는, 예를 들면, 복수의 서브 삼차원점군의 복수의 노드의 어큐펀시 부호 또는 리프 정보 등을 복호할 때에, 서브 삼차원점군 사이에서 참조를 금지한다. 예를 들면, 삼차원 데이터 복호 장치는, 복호 대상의 대상 노드의 어큐펀시 부호를 복호할 때에, 8진 트리에 있어서의 인접 노드의 정보를 이용하여 복호를 행한다. 이 경우에 있어서, 삼차원 데이터 복호 장치는, 인접 노드가 다른 서브 삼차원점군에 포함되는 경우, 그 인접 노드를 참조하지 않고 대상 노드를 복호한다. 이 경우, 삼차원 데이터 복호 장치는, 인접 노드는 존재하지 않는 것으로 하여 복호를 행해도 되고, 인접 노드는 존재하지만 당해 인접 노드가 다른 서브 삼차원점군에 포함된다고 하는 조건하에서 대상 노드를 복호해도 된다.
또한, 삼차원 데이터 부호화 장치는, 복수의 서브 삼차원점군의 삼차원 위치 정보와 속성 정보(색, 반사율 또는 법선 벡터 등)를 각각 부호화할 때에, 한쪽에 대해서는 의존 관계가 발생하지 않도록 부호화를 행하고, 다른쪽에 대해서는 의존 관계가 있도록 부호화를 행해도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 의존 관계가 발생하지 않도록 삼차원 위치 정보를 부호화하고, 의존 관계가 있도록 속성 정보를 부호화해도 된다. 이에 의해, 삼차원 데이터 부호화 장치는, 삼차원 위치 정보를 병렬로 부호화함으로써 처리 시간을 삭감할 수 있고, 속성 정보를 순차적으로 부호화함으로써 부호화량을 삭감할 수 있다. 또한, 삼차원 데이터 부호화 장치는, 삼차원 위치 정보를 의존 관계가 없도록 부호화했는지의 여부를 나타내는 정보와, 속성 정보를 의존 관계가 없도록 부호화했는지의 여부를 나타내는 정보의 양쪽 모두를 헤더에 부가해도 된다. 이에 의해, 삼차원 데이터 복호 장치는 헤더를 복호함으로써, 삼차원 위치 정보를 의존 관계가 없도록 복호할 수 있는지, 속성 정보를 의존 관계가 없도록 복호할 수 있는지를 각각 판단할 수 있다. 이에 의해, 삼차원 데이터 복호 장치는, 의존 관계가 없는 경우는 병렬로 복호를 행할 수 있다. 예를 들면, 삼차원 데이터 복호 장치는, 삼차원 위치 정보가 의존 관계가 발생하지 않도록 부호화되어 있고, 속성 정보가 의존 관계가 있도록 부호화되어 있는 경우, 삼차원 위치 정보를 병렬로 복호함으로써 처리 시간을 삭감하고, 속성 정보를 순차적으로 복호한다.
도 203은, 트리 구조의 예를 나타내는 도면이다. 또한, 도 203에서는, 4진 트리의 예를 나타내었지만, 8진 트리 등의 다른 트리 구조가 이용되어도 된다. 삼차원 데이터 부호화 장치는, 도 203에 나타내는 트리 구조를, 예를 들면, 도 204에 나타내는 서브 삼차원점군 A와, 도 205에 나타내는 서브 삼차원군 B로 분할한다. 또한, 이 예에서는, 층 1의 유효 노드에서 분할이 행해진다. 즉, 4진 트리의 경우에는, 최대 4개의 서브 삼차원점군이 생성되고, 8진 트리의 경우에는, 최대 8개의 서브 삼차원점군이 생성된다. 또한, 삼차원 데이터 부호화 장치는, 속성 정보, 또는 점군 밀도 등의 정보를 이용하여 분할을 행해도 된다.
삼차원 데이터 부호화 장치는, 서브 삼차원점군 A와 서브 삼차원점군 B에 의존 관계가 발생하지 않도록 부호화를 행한다. 예를 들면, 삼차원 데이터 부호화 장치는, 서브 삼차원점군마다 어큐펀시 부호의 엔트로피 부호화에 이용하는 부호화 테이블을 전환한다. 또는, 삼차원 데이터 부호화 장치는, 각 서브 삼차원점군의 부호화 전에 부호화 테이블을 초기화한다. 또는, 삼차원 데이터 부호화 장치는, 노드의 인접 정보를 산출할 때에, 인접 노드가 상이한 서브 삼차원점군에 포함되는 경우는 당해 인접 노드의 참조를 금지한다.
도 206은, 본 실시 형태에 따른 비트 스트림의 구성예를 나타내는 도면이다. 도 206에 나타내는 바와 같이 비트 스트림은, 헤더와, 서브 삼차원점군 A의 부호화 데이터와, 서브 삼차원점군 B의 부호화 데이터를 포함한다. 헤더는, 점군 수 정보와, 의존 관계 정보와, 선두 어드레스 정보 A 및 선두 어드레스 정보 B를 포함한다.
점군 수 정보는, 비트 스트림에 포함되는 서브 삼차원점군의 개수를 나타낸다. 또한, 점군 수 정보로서, 어큐펀시 부호에 의해 개수가 나타내어져도 된다. 예를 들면, 도 203에 나타내는 예에서는, 층 0의 어큐펀시 부호 「1010」이 이용되고, 어큐펀시 부호에 포함되는 「1」의 수에 의해 서브 삼차원점군의 개수가 나타내어진다.
의존 관계 정보는, 서브 삼차원점군을 의존 관계 없이 부호화했는지의 여부를 나타낸다. 예를 들면, 삼차원 데이터 복호 장치는, 이 의존 관계 정보에 의거하여, 서브 삼차원점군을 병렬로 복호할지의 여부를 판정한다.
선두 어드레스 정보 A는, 서브 삼차원점군 A의 부호화 데이터의 선두 어드레스를 나타낸다. 선두 어드레스 정보 B는, 서브 삼차원점군 B의 부호화 데이터의 선두 어드레스를 나타낸다.
이하, 병렬 부호화의 효과에 대해서 설명한다. 삼차원점군(포인트 클라우드)의 8진 트리 데이터에 있어서, 기하 정보(삼차원 위치 정보) 또는 속성 정보를 분할하고, 병렬 부호화함으로써, 처리 시간을 저감할 수 있다. 부모 노드의 계층에 있어서 노드가 다른 노드로부터 독립되어 있는 경우에 병렬 부호화를 실현할 수 있다. 즉, 인접 부모 노드를 참조하지 않을 필요가 있다. 이 조건은, 자식 노드 및 손자 노드의 모두에 있어서도 만족될 필요가 있다.
도 207은, 트리 구조의 예를 나타내는 도면이다. 도 207에 나타내는 예에 있어서, 깊이 우선의 부호화가 이용되는 경우, 노드 A는, 층 1부터 노드 C와 독립되어 있다. 또한, 노드 C는, 층 2부터 노드 D와 독립되어 있다. 노드 A는, 층 3부터 노드 B와 독립되어 있다.
삼차원 데이터 부호화 장치는, 각 노드의 이 독립된 정보를 이용하여, 하드웨어의 종별, 유저 설정, 알고리즘, 또는 데이터의 적응성 등에 의거하여, 2가지 방식의 병렬 부호화 방법으로부터 사용할 병렬 부호화 방법을 선택한다.
이 2가지 방식이란, 전병렬 부호화(full parallel encoding)와 점진 병렬 부호화(incremental parallel encoding)이다.
우선, 전병렬 부호화에 대해서 설명한다. 병렬 처리 또는 병렬 프로그래밍에서는, 동시에 많은 데이터를 처리할 필요가 있기 때문에, 매우 처리가 무겁다.
GPU(Graphics Processing Unit)에 포함되는 프로세싱 유닛(PU)의 수, CPU에 포함되는 코어의 수, 또는, 소프트웨어 실장에 있어서의 스레드의 수를 이용하여, 병렬 처리 가능한 노드의 수가 결정된다.
여기서, 일반적으로 8진 트리에 포함되는 노드의 수는, 이용 가능한 PU의 수보다 많다. 삼차원 데이터 부호화 장치는, 층에 포함되는 부호화가 완료된 노드의 수를 나타내는 정보를 이용하여, 층에 포함되는 노드의 수가, 이용 가능한 PU의 수에 대응하는 최적 수인지를 판정하고, 층에 포함되는 노드의 수가, 최적 수에 달한 것을 트리거로, 전병렬 부호화를 개시한다. 또한, 병렬 처리에 있어서, 폭 우선 또는 깊이 우선의 처리를 이용할 수 있다.
삼차원 데이터 부호화 장치는, 병렬 부호화 처리를 개시한 노드(층)를 나타내는 정보를 비트 스트림의 헤더에 저장해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 이 정보를 이용하여, 필요하다면 병렬 복호 처리를 행할 수 있다. 또한, 병렬 부호화 처리를 개시한 노드를 나타내는 정보의 형식은 임의이면 되지만, 예를 들면, 로케이션 부호가 이용되어도 된다.
또한, 삼차원 데이터 부호화 장치는, 병렬 부호화를 행하는 각 노드(서브 삼차원점군)에 대하여 부호화 테이블(확률 테이블)을 준비한다. 이 부호화 테이블은, 초기값 또는 노드마다 상이한 값으로 초기화된다. 예를 들면, 노드마다 상이한 값이란, 부모 노드의 어큐펀시 부호에 의거한 값이다. 이 전병렬 부호화에서는, GPU의 초기화가 한 번이면 된다고 하는 이점이 있다.
도 208은, 전병렬 부호화를 설명하기 위한 도면이며, 트리 구조의 예를 나타내는 도면이다. 도 209는, 병렬 처리되는 서브 삼차원점군을 공간적으로 나타내는 도면이다. 삼차원 데이터 부호화 장치는, PU 또는 스레드의 수에 상관되는 노드의 수가 최적점에 달한 것을 트리거로 병렬 처리를 개시한다.
도 208에 나타내는 예에서는, 층 3에 있어서, 당해 층에 포함되는 점유 노드의 수가 9가 되어, 최적 수를 초과한다. 따라서, 삼차원 데이터 부호화 장치는, 층 3 이하의 삼차원점(노드)을, 층 3의 각 점유 노드를 루트로 하는 복수의 서브 삼차원점군으로 분할하고, 각 서브 삼차원점군을 병렬 처리한다. 예를 들면, 도 208에 나타내는 예에서는, 9개의 서브 삼차원점군이 생성된다.
삼차원 데이터 부호화 장치는, 병렬 처리를 시작한 층을 나타내는 레이어 정보를 부호화해도 된다. 또한, 삼차원 데이터 부호화 장치는, 병렬 처리를 시작한 때의 점유 노드의 수(도 208의 예에서는 9)를 나타내는 정보를 부호화해도 된다.
또한, 삼차원 데이터 부호화 장치는, 예를 들면, 복수의 서브 삼차원군을 서로의 참조를 금지하면서 부호화한다. 또한, 삼차원 데이터 부호화 장치는, 예를 들면, 각 서브 삼차원점군의 부호 전에 엔트로피 부호화에 이용할 부호화 테이블(확률 테이블 등)을 초기화한다.
도 210은, 본 실시 형태에 따른 비트 스트림의 구성예를 나타내는 도면이다. 도 210에 나타내는 바와 같이, 비트 스트림은, 헤더, 상층 부호화 데이터, 서브 헤더, 서브 삼차원점군 A의 부호화 데이터, 서브 삼차원점군 B의 부호화 데이터를 포함한다.
헤더는, 공간 최대 사이즈 정보와, 병렬 개시 레이어 정보를 포함한다. 공간 사이즈 정보는, 삼차원점군을 8진 트리로 분할하는 최초의 삼차원 공간을 나타낸다. 예를 들면, 공간 사이즈 정보는, 최초의 삼차원 공간의 최대 좌표(x, y, z)를 나타낸다.
병렬 개시 레이어 정보는, 병렬 처리를 개시 가능한 층인 병렬 개시 레이어를 나타낸다. 여기서는, 병렬 개시 레이어 정보는, 예를 들면 층 N을 나타낸다.
상층 부호화 데이터는, 병렬 처리를 개시하기 전의 층 N까지의 부호화 데이터이며, 층 N까지의 노드 정보이다. 예를 들면, 상층 부호화 데이터는, 층 N까지의 노드의 어큐펀시 부호 등을 포함한다.
서브 헤더는, 층 N 이후를 복호하기 위해 필요한 정보를 포함한다. 예를 들면, 서브 헤더는, 각 서브 삼차원점군의 부호화 데이터의 선두 어드레스 등을 나타낸다. 도 210에 나타내는 예에서는, 서브 헤더는, 선두 어드레스 정보 A와 선두 어드레스 정보 B를 포함한다. 선두 어드레스 정보 A는, 서브 삼차원점군 A의 부호화 데이터의 선두 어드레스를 나타낸다. 선두 어드레스 정보 B는, 서브 삼차원점군 B의 부호화 데이터의 선두 어드레스를 나타낸다.
또한, 삼차원 데이터 부호화 장치는, 헤더에, 선두 어드레스 정보 A 및 선두 어드레스 정보 B를 저장해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 상층 부호화 데이터보다 먼저, 서브 삼차원점군의 부호화 데이터를 병렬로 복호할 수 있다. 이 경우, 서브 헤더는, 각 서브 삼차원점군의 공간을 나타내는 정보를 포함해도 된다. 이 정보는, 각 서브 삼차원점군의 공간의 최대 좌표(x, y, z)를 나타낸다.
도 211은, 병렬 복호 처리를 설명하기 위한 도면이다. 도 211에 나타내는 바와 같이, 삼차원 데이터 복호 장치는, 서브 삼차원점군 A의 부호화 데이터와 서브 삼차원점군 B의 부호화 데이터를 병렬로 복호하고, 서브 삼차원점 A의 복호 데이터와 서브 삼차원점군 B의 복호 데이터를 생성한다. 다음에, 삼차원 데이터 복호 장치는, 생성한 서브 삼차원점 A의 복호 데이터와 서브 삼차원점군 B의 복호 데이터를 통합하여, 삼차원점군의 복호 데이터를 생성한다. 이와 같이, 삼차원 데이터 복호 장치는, 복수의 서브 삼차원점군의 복호 데이터에 포함되는 삼차원 위치 정보 및 속성 정보(색 정보 및 반사율 등)를 통합한다. 또한, 삼차원 데이터 복호 장치는, 통합한 데이터를 1개의 파일로서 출력해도 된다.
또한, 삼차원 데이터 복호 장치는, 반드시 서브 삼차원점군의 모두를 복호할 필요는 없으며, 삼차원 데이터 복호 장치가 필요한 서브 삼차원점군을 선택적으로 복호해도 된다. 예를 들면, 삼차원 데이터 복호 장치가 차재 등의 모빌리티인 경우, 삼차원 데이터 복호 장치는, 복수의 서브 삼차원점군 중, GPS 등으로 취득한 현재의 위치에 가까운 에어리어의 서브 삼차원점군을 복호한다.
또한, 삼차원 데이터 부호화 장치는, 서브 헤더에, 각 서브 삼차원점군의 우선 순위를 나타내는 정보를 저장해도 된다. 이 경우, 삼차원 데이터 복호 장치는, 서브 헤더에 포함되는 정보로 나타내어지는 우선 순위에 따라, 우선 순위가 높은 서브 삼차원점군에 대하여 CPU 등의 연산 자원을 우선적으로 부여하면서 병렬 복호를 실행한다. 이에 의해, 삼차원 데이터 복호 장치는, 삼차원 데이터 복호 장치에게 있어 중요한 에어리어를 포함하는 서브 삼차원점군을 효율적으로 복호할 수 있다.
도 212는, 전병렬 부호화 처리의 흐름을 모식적으로 나타내는 도면이다. 우선, 삼차원 데이터 부호화 장치는, 이용 가능한 PU의 수를 결정한다(S2601). 다음에, 삼차원 데이터 부호화 장치는, 8진 트리를 처리하고, 노드의 위치를 저장한다(S2602). 다음에, 삼차원 데이터 부호화 장치는, 점유 노드의 수가 PU의 수보다 많은지의 여부를 판정한다(S2603).
점유 노드 수가 PU의 수 이하인 경우(S2603에서 No), 삼차원 데이터 부호화 장치는, 다음 노드에 대하여 단계 S2602의 처리를 행한다. 점유 노드의 수가 PU의 수보다 많은 경우(S2603에서 Yes), 삼차원 데이터 부호화 장치는, 현재의 층을 병렬 처리를 개시하는 층인 병렬 개시 레이어로 설정한다(S2604).
다음에, 삼차원 데이터 부호화 장치는, 복수의 부호화 테이블을 초기화하고, 병렬 부호화를 개시한다(S2605). 병렬 부호화가 완료된 후, 삼차원 데이터 부호화 장치는, 단계 S2602에서 저장한 위치에 의거하여, 8진 트리를 재구성한다(S2606). 또한, 삼차원 데이터 부호화 장치는, 8진 트리를 재구성하지 않아도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 병렬 부호화에 의해 얻어진 각 서브 삼차원점군의 부호화 데이터를 비트 스트림에 부가하여 처리를 종료해도 된다.
또한, 삼차원 데이터 부호화 장치는, 병렬 부호화를 개시한 병렬 개시 레이어를 나타내는 병렬 개시 레이어 정보를 비트 스트림의 헤더에 부가해도 된다. 이에 의해, 삼차원 데이터 복호 장치는 헤더를 복호함으로써, 어느 층부터 병렬 복호가 가능한지를 판정할 수 있다.
또한, 어느 층부터 병렬 처리를 시작할지가, 미리 결정되어 있어도 된다. 또한, 병렬화를 개시하는 레이어를 나타내는 병렬 개시 레이어 정보가 비트 스트림에 부가되지 않고, 병렬화를 개시하는 레이어가 규격 등으로 규정되어도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 병렬화하는지의 여부를 나타내는 플래그를 비트 스트림에 부가한다. 삼차원 데이터 복호 장치는, 그 플래그가 온인 경우는, 최초의 레이어부터 병렬 처리를 개시하고, 플래그가 오프인 경우는 순차 처리를 적용해도 된다.
도 213은, 전병렬 복호 처리의 흐름을 모식적으로 나타내는 도면이다. 우선, 삼차원 데이터 복호 장치는, 헤더를 복호함으로써 병렬 처리 가능한 레이어 N을 나타내는 병렬 개시 레이어 정보를 취득한다(S2611). 다음에, 삼차원 데이터 복호 장치는, 어큐펀시 부호를 복호하여 현 노드를 8분할하고, 점유 상태의 서브 노드의 처리로 이행한다(S2612).
다음에, 삼차원 데이터 복호 장치는, 처리 대상의 층이 병렬 개시 레이어 N에 도달했는지의 여부를 판정한다(S2613). 처리 대상의 층이 병렬 개시 레이어 N에 도달하지 않은 경우(S2613에서 No), 삼차원 데이터 복호 장치는, 다음 노드에 대하여 단계 S2612의 처리를 행한다. 처리 대상의 층이 병렬 개시 레이어 N에 도달한 경우(S2613에서 Yes), 삼차원 데이터 복호 장치는, 서브 헤더를 복호하고, 복수의 서브 삼차원점군의 개시 어드레스를 취득한다(S2614).
다음에, 삼차원 데이터 복호 장치는, 복수의 부호화 테이블을 초기화하고, 복수의 서브 삼차원점군의 병렬 복호를 개시한다(S2615). 병렬 복호가 완료된 후, 삼차원 데이터 복호 장치는, 복호한 복수의 서브 삼차원점군의 삼차원 위치 정보와 속성 정보를 통합한다(S2616).
예를 들면, 삼차원 데이터 복호 장치는, 병렬 개시 레이어 정보를 비트 스트림의 헤더로부터 복호한다. 이에 의해 삼차원 데이터 복호 장치는, 어느 층부터 병렬로 복호 가능한지의 여부를 판정할 수 있다.
또한, 병렬화를 개시하는 레이어를 나타내는 병렬 개시 레이어 정보는 비트 스트림에 부가되지 않고, 병렬화를 개시하는 레이어가 규격 등으로 규정되어도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 병렬화하는지의 여부를 나타내는 플래그를 비트 스트림에 부가한다. 삼차원 데이터 복호 장치는, 그 플래그가 온인 경우, 최초의 레이어부터 병렬 처리를 개시하고, 플래그가 오프인 경우는 순차 처리를 적용해도 된다.
다음에, 점진 병렬 부호화에 대해서 설명한다. 도 214 및 도 215는, 이 점진 병렬 부호화를 설명하기 위한 도면이다. 도 214는, 트리 구조에 있어서의 병렬 처리를 나타내는 도면이고, 도 215는, 병렬 처리에 있어서의 시계열의 변화를 나타내는 도면이다.
점진 병렬 부호화에서는, 부모 노드가 1 이상의 자식 노드로 분할된 경우에 있어서, 이용 가능한 PU가 존재하는 경우에는, 병렬 수를 순차적으로 증가시켜 가는 처리이다. 또한, 추가의 PU를 필요로 하는 새로운 노드가 발견될 때마다 부호화 테이블이 미리 정해진 테이블로 설정된다.
도 214에 나타내는 예에서는, 톱(루트)에서 코어 1에 의한 처리가 개시한다. 층 1에 있어서, 우측의 노드의 처리에 코어 2가 이용되고, 코어 1은 좌측의 노드를 처리한다. 층 2에 있어서 코어 1은 좌측의 노드의 처리를 계속한다. 층 3에서는, 코어 1은 노드 A를 처리하고, 새롭게 발견된 노드 B를 코어 4가 처리한다. 또한, 층 1의 우측의 노드에 대해서는, 층 2에서 코어 2는 왼쪽의 노드의 처리를 계속하고, 층 3에서 노드 C를 처리한다. 또한, 층 2에 있어서, 코어 3이 추가되고, 코어 3은 오른쪽의 노드를 처리하고, 층 3에서 노드 D를 처리한다.
또한, 삼차원 데이터 부호화 장치는, 각 노드에 있어서 엔트로피 부호화의 부호화 테이블의 초기화가 필요한지의 여부를 나타내는 플래그를 추가해도 된다. 이에 의해, 삼차원 데이터 복호 장치는, 당해 플래그에 의해 초기화가 온이 된 노드의 다음의 자식 노드를 병렬 처리가 가능한 것으로 판정할 수 있다.
도 216은, 점진 병렬 부호화 처리의 흐름을 모식적으로 나타내는 도면이다. 우선, 삼차원 데이터 부호화 장치는, 8진 트리를 처리하고, 노드의 위치를 저장한다(S2621). 다음에, 삼차원 데이터 부호화 장치는, 대상 노드가 점유 상태의 자식 노드인 점유 자식 노드를 복수 갖는지의 여부를 판정한다(S2622). 대상 노드가 복수의 점유 자식 노드를 갖는 경우(S2613에서 Yes), 삼차원 데이터 부호화 장치는, 병렬 부호화에 이용 가능한 PU가 존재하는지의 여부를 판정한다(S2623).
대상 노드가 복수의 점유 자식 노드를 갖지 않는 경우(S2613에서 No), 또는, 병렬 부호화에 이용 가능한 PU가 존재하지 않는 경우(S2623에서 No), 삼차원 데이터 부호화 장치는, 현재 사용중인 PU를 이용하여 8진 트리의 처리를 계속한다(S2624). 예를 들면, 초기 상태에서는, 삼차원 데이터 부호화 장치는 초기 상태의 하나의 PU를 이용하여 처리를 계속한다. 또한, 대상 노드가 복수의 점유 자식 노드를 갖지 않는 경우란, 대상 노드가 점유 자식 노드를 갖지 않는 경우, 및, 대상 노드가 1개의 점유 자식 노드를 갖는 경우를 포함한다.
한편, 병렬 부호화에 이용 가능한 PU가 존재하는 경우(S2623에서 Yes), 삼차원 데이터 부호화 장치는, 사용하는 PU에 새로운 PU를 추가하고, 복수의 부호화 테이블을 초기화하고, 병렬 부호화를 개시한다(S2625).
모든 노드의 처리가 완료되지 않은 경우(S2626에서 No), 삼차원 데이터 부호화 장치는, 다음 노드에 대하여 단계 S2621의 처리를 행한다. 모든 노드의 처리가 완료된 경우(S2626에서 Yes), 삼차원 데이터 부호화 장치는, 단계 S2602에서 저장한 위치에 의거하여, 8진 트리를 재구성한다(S2627). 또한, 삼차원 데이터 부호화 장치는, 8진 트리를 재구성하지 않아도 된다. 예를 들면, 삼차원 데이터 부호화 장치는, 병렬 부호화에 의해 얻어진 각 서브 삼차원점군의 부호화 데이터를 비트 스트림에 부가하여 처리를 종료해도 된다.
이러한 점진 병렬 부호화에서는, 대상 노드가 복수의 점유 노드를 갖고, 비어 있는 PU가 존재하는 경우에는, 즉시 병렬 처리가 개시된다. 이에 의해, PU의 처리가 짧은 시간에 완료된 경우에는, 다음 처리에 PU를 할당할 수 있으므로, 이상적인 처리 불가의 밸런스를 실현할 수 있다.
한편, 병렬 처리가 요구될 때마다 초기화 처리가 필요하게 된다. 또한, 상하 또는 좌우의 처리 순서에 있어서의 다음의 처리까지, 복수의 PU에 있어서의 처리가 종료된다고는 할 수 없기 때문에, 데이터의 재기입을 위해서, 각 층의 노드 및 자식 노드의 모두를 동기시키는 메커니즘이 필요하게 된다. 바꾸어 말하면, 상술한 전병렬 부호화에서는, 이러한 처리가 필요하지 않기 때문에 처리량을 저감할 수 있다고 하는 효과를 실현할 수 있다.
이상과 같이, 본 실시 형태에서는, 원래의 삼차원점은, 병렬 처리 가능한 가지로 분할된다. 8진 트리에서는, 예를 들면, 노드에 대하여 병렬 처리 가능한 8개의 가지가 생성된다. 또한, 8진 트리의 어느 층부터 병렬 처리 가능한 가지가 개시되는지를 나타내는 새로운 파라미터가 정의된다.
다음의 병렬 처리 가능한 가지로 처리가 이행할 때에, 엔트로피 부호화를 위한 부호화 테이블이 리셋된다. 또는, 복수의 병렬 처리 가능한 가지에 대하여 상이한 부호화 테이블이 이용된다.
예를 들면, 인접 노드의 정보 등, 상이한 병렬 처리 가능한 가지에 포함되는 노드의 참조가 금지된다.
병렬 처리에 관한 복수의 모드가 정의된다. 예를 들면, 모드 0은, 병렬 처리를 행하지 않는 모드이다. 모드 1은, 위치 정보(구조 정보)를 병렬 처리하는 모드이다. 이 모드에서는, 속성 정보에 대해서는, 다른 병렬 처리 가능한 가지를 참조하는 것이 허가된다. 제2 모드는, 위치 정보 및 속성 정보를 병렬 처리하는 모드이다. 즉, 위치 정보 및 속성 정보의 양쪽 모두에 대하여, 다른 병렬 처리 가능한 가지를 참조하는 것이 금지된다.
각 병렬 처리 가능한 가지의 데이터의 개시 어드레스는, 예를 들면 슬라이스 헤더 등의 헤더 내에 부호화된다.
삼차원 데이터 복호 장치는, 모든 병렬 처리 가능한 가지를 병렬 처리해도 되고, 복수의 병렬 처리 가능한 가지의 일부를 병렬 처리해도 된다.
이상과 같이, 본 실시 형태에 따른 삼차원 데이터 부호화 장치는, 도 217에 나타내는 처리를 행한다. 우선, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할한다(S2631). 다음에, 삼차원 데이터 부호화 장치는, 각 서브 삼차원점군의 서브 헤더에, 대응하는 서브 삼차원점군의 공간을 나타내는 정보를 부가한다(S2632). 즉, 삼차원 데이터 부호화 장치는, 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 제1 서브 삼차원점군의 헤더에 부가하고, 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 제2 서브 삼차원점군의 헤더에 부가한다. 다음에, 삼차원 데이터 부호화 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화한다(S2633). 바꾸어 말하면, 삼차원 데이터 부호화 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군을 의존 관계가 없도록 부호화한다. 예를 들면, 삼차원 데이터 부호화 장치는, 제1 서브 삼차원점군과 제2 서브 삼차원점군을 병렬 부호화한다.
또한, 단계 S2632와 S2633의 처리 순서는 일례이며, 역 순서여도 되고, 일부 또는 전부가 병렬로 행해져도 된다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 분할(S2631)에서는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 삼차원점에 대응하는 제2 가지를 포함하는 복수의 가지로 분할한다. 즉, 삼차원 데이터 부호화 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를 제1 가지와 제2 가지로 분리하고(S2631), 상기 제1 가지와 상기 제2 가지의 각각을 독립적으로 복호 가능하도록 부호화해도 된다(S2633).
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보(병렬 개시 레이어 정보)를 부호화한다. 즉, 삼차원 데이터 부호화 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 포함하는 비트 스트림을 생성한다. 예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층이다.
예를 들면, 상기 제1 가지의 루트는, 상기 N진 트리 구조에 있어서의 제1 층에 포함되는 제1 노드이고, 상기 제2 가지의 루트는, 상기 제1 층에 포함되는 상기 제1 노드와는 상이한 제2 노드이다. 즉, 제1 가지의 루트와 제2 가지의 루트는 동일한 층에 속한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 부호화한다. 즉, 삼차원 데이터 부호화 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 포함하는 비트 스트림을 생성한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)을 상이한 부호화 테이블을 이용하여 엔트로피 부호화한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)을 엔트로피 부호화한 후, 상기 제1 서브 삼차원점군(제2 가지)을 엔트로피 부호화하기 전에 부호화 테이블을 초기화한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)의 부호화에 있어서, 상기 제1 서브 삼차원점군(제2 가지)의 참조를 금지하고, 상기 제1 서브 삼차원점군(제2 가지)의 부호화에 있어서, 상기 제1 서브 삼차원점군(제1 가지)의 참조를 금지한다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제1 서브 삼차원점군(제2 가지)에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각을 독립적으로 복호 가능하도록 부호화하고, 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각을 독립적으로 복호 가능하도록 부호화한다. 즉, 삼차원 데이터 부호화 장치는, 위치 정보와 속성 정보의 양쪽 모두에 대하여 의존 관계가 없도록 부호화를 행한다.
예를 들면, 삼차원 데이터 부호화 장치는, (1) 상기 제1 서브 삼차원점군(제1 가지)에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제1 서브 삼차원점군(제2 가지)에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 한쪽을 독립적으로 복호 가능하도록 부호화하고, (1) 상기 복수의 제1 삼차원점의 위치 정보와, 상기 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 다른쪽을 의존 관계가 있도록 부호화한다. 즉, 삼차원 데이터 부호화 장치는, 위치 정보와 속성 정보 중 한쪽에 대하여 의존 관계가 없도록 부호화를 행하고, 위치 정보와 속성 정보 중 다른쪽에 대하여 의존 관계가 있도록 부호화를 행한다. 또한, 의존 관계가 있다는 것은, 예를 들면, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)을 동일한 부호화 테이블을 이용하여 엔트로피 부호화하거나, 또는, 상기 제1 서브 삼차원점군(제1 가지)을 엔트로피 부호화한 후, 상기 제1 서브 삼차원점군(제2 가지)을 엔트로피 부호화하기 전에 부호화 테이블을 초기화하지 않거나, 또는, 상기 제1 서브 삼차원점군(제1 가지)의 부호화에 있어서, 상기 제1 서브 삼차원점군(제2 가지)의 참조를 허가하거나, 또는, 상기 제1 서브 삼차원점군(제2 가지)의 부호화에 있어서, 상기 제1 서브 삼차원점군(제1 가지)의 참조를 허가하는 것이다.
예를 들면, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각을 독립적으로 복호 가능하도록 부호화했는지의 여부를 나타내는 플래그를 부호화한다. 즉, 삼차원 데이터 부호화 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각을 독립적으로 복호 가능하도록 부호화했는지의 여부를 나타내는 플래그를 포함하는 비트 스트림을 생성한다.
예를 들면, 상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고, 상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타낸다.
예를 들면, 삼차원 데이터 부호화 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
또한, 본 실시 형태에 따른 삼차원 데이터 복호 장치는, 도 218에 나타내는 처리를 행한다. 우선, 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득한다(S2641). 예를 들면, 삼차원 데이터 복호 장치는, 제1 부호화 데이터와 제2 부호화 데이터를 비트 스트림으로부터 취득한다.
다음에, 삼차원 데이터 복호 장치는, 비트 스트림에 포함되는 각 서브 삼차원점군의 서브 헤더로부터, 대응하는 서브 삼차원점군의 공간을 나타내는 정보를 취득한다(S2642). 즉, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고, 상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득한다.
다음에, 삼차원 데이터 복호 장치는, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원한다(S2643). 예를 들면, 삼차원 데이터 복호 장치는, 제1 부호화 데이터와 제2 부호화 데이터를 병렬 복호한다. 예를 들면, 삼차원 데이터 복호 장치는, 복원한 상기 제1 서브 삼차원점군 및 상기 제2 서브 삼차원점군과, 상기 제1 정보 및 상기 제2 정보를 이용하여 상기 복수의 삼차원점을 복원한다.
또한, 단계 S2642와 S2643의 처리 순서는 일례이며, 역 순서여도 되고, 일부 또는 전부가 병렬로 행해져도 된다.
예를 들면, 상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 서브 삼차원점군에 대응하는 제2 가지의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된다. 즉, 삼차원 데이터 복호 장치는, 삼차원 데이터에 포함되는 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는 제1 가지와 제2 가지의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득한다(S2641).
예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보(병렬 개시 레이어 정보)를 복호한다. 즉, 삼차원 데이터 복호 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 비트 스트림으로부터 취득한다. 예를 들면, 상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층이다.
예를 들면, 상기 제1 가지의 루트는, 상기 N진 트리 구조에 있어서의 제1 층에 포함되는 제1 노드이고, 상기 제2 가지의 루트는, 상기 제1 층에 포함되는 상기 제1 노드와는 상이한 제2 노드이다. 즉, 제1 가지의 루트와 제2 가지의 루트는 동일한 층에 속한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 복호한다. 즉, 삼차원 데이터 복호 장치는, 상기 제1 층을 나타내는 정보(병렬 개시 레이어 정보)를 비트 스트림으로부터 취득한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)을 상이한 부호 테이블을 이용하여 엔트로피 복호한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군(제1 가지)을 엔트로피 복호한 후, 상기 제1 서브 삼차원점군(제2 가지)을 엔트로피 복호하기 전에 부호화 테이블을 초기화한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군(제1 가지)의 복호에 있어서, 상기 제1 서브 삼차원점군(제2 가지)을 참조하지 않고, 상기 제1 서브 삼차원점군(제2 가지)의 복호에 있어서, 상기 제1 서브 삼차원점군(제1 가지)을 참조하지 않는다.
예를 들면, 상기 제1 부호화 데이터는, 상기 제1 서브 삼차원점군(제1 가지)에 포함되는 복수의 제1 삼차원점의 위치 정보가 부호화됨으로써 생성된 제1 부호화 위치 데이터와, 상기 복수의 제1 삼차원점의 속성 정보가 부호화됨으로써 생성된 제1 부호화 속성 데이터를 포함한다. 상기 제2 부호화 데이터는, 상기 제1 서브 삼차원점군(제2 가지)에 포함되는 복수의 제2 삼차원점의 위치 정보가 부호화됨으로써 생성된 제2 부호화 위치 데이터와, 상기 복수의 제2 삼차원점의 속성 정보가 부호화됨으로써 생성된 제2 부호화 속성 데이터를 포함한다. 상기 제1 부호화 위치 데이터와 상기 제2 부호화 위치 데이터는, 독립적으로 복호 가능하도록 생성되어 있고, 상기 제1 부호화 속성 데이터와 상기 제2 부호화 속성 데이터는, 독립적으로 복호 가능하도록 생성되어 있다. 즉, 삼차원 데이터 부호화 장치는, 위치 정보와 속성 정보의 양쪽 모두에 대하여 의존 관계가 없도록 부호화를 행함으로써, 제1 부호화 데이터와 제2 부호화 데이터를 생성한다.
예를 들면, 상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 제1 서브 삼차원점군(제1 가지)에 포함되는 복수의 제1 삼차원점 및 상기 제1 서브 삼차원점군(제2 가지)에 포함되는 복수의 제2 삼차원점의 위치 정보 및 속성 정보 중 한쪽의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된다. 삼차원 데이터 복호 장치는, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 한쪽의 각각을 복원한다. 삼차원 데이터 복호 장치는, 또한, 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 다른쪽의 각각이 의존 관계가 있도록 부호화됨으로써 생성된 제3 부호화 데이터 및 제4 부호화 데이터를 취득한다. 삼차원 데이터 복호 장치는, 상기 제3 부호화 데이터와 상기 제4 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 다른쪽의 각각을 복원한다. 즉, 삼차원 데이터 부호화 장치는, 위치 정보와 속성 정보 중 한쪽에 대하여 의존 관계가 없도록 부호화를 행하고, 위치 정보와 속성 정보 중 다른쪽에 대하여 의존 관계가 있도록 부호화를 행한다. 예를 들면, 삼차원 데이터 복호 장치는, 2개의 부호화 데이터에 의존 관계가 있는 경우에는, 2개의 부호화 데이터를 동일한 부호화 테이블을 이용하여 엔트로피 복호하거나, 또는, 한쪽의 부호화 데이터를 엔트로피 복호한 후, 다른쪽의 부호화 데이터를 엔트로피 복호하기 전에 부호화 테이블을 초기화하지 않거나, 또는, 한쪽의 부호화 데이터의 복호에 있어서, 다른쪽의 부호화 데이터를 참조한다.
예를 들면, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각이 독립적으로 복호 가능하도록 부호화되어 있는지의 여부를 나타내는 플래그를 복호한다. 즉, 삼차원 데이터 복호 장치는, 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각이 독립적으로 복호 가능하도록 부호화되어 있는지의 여부를 나타내는 플래그를 비트 스트림으로부터 취득한다. 예를 들면, 삼차원 데이터 복호 장치는, 상기 플래그에 의해 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각이 독립적으로 복호 가능하도록 부호화되어 있는 것이 나타내어지는 경우, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터를 병렬 복호하고, 상기 플래그에 의해 상기 제1 서브 삼차원점군(제1 가지)과 상기 제1 서브 삼차원점군(제2 가지)의 각각이 독립적으로 복호 가능하도록 부호화되어 있는 것이 나타내어지지 않는 경우, 상기 제1 부호화 데이터와 상기 제2 부호화 데이터를 순차 복호한다.
예를 들면, 상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고, 상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타낸다.
예를 들면, 삼차원 데이터 복호 장치는, 프로세서와 메모리를 구비하고, 프로세서는, 메모리를 이용하여, 상기의 처리를 행한다.
이상, 본 개시의 실시 형태에 따른 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치 등에 대해 설명하였는데, 본 개시는, 이 실시 형태에 한정되는 것은 아니다.
또, 상기 실시 형태에 따른 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치 등에 포함되는 각 처리부는 전형적으로는 집적 회로인 LSI로서 실현된다. 이들은 개별적으로 1칩화되어도 되고, 일부 또는 모두를 포함하도록 1칩화되어도 된다.
또, 집적 회로화는 LSI에 한정되는 것이 아니며, 전용 회로 또는 범용 프로세서로 실현되어도 된다. LSI 제조 후에 프로그램하는 것이 가능한 FPGA(Field Programmable Gate Array), 또는 LSI 내부의 회로 셀의 접속이나 설정을 재구성 가능한 리컨피규러블·프로세서를 이용해도 된다.
또, 상기 각 실시 형태에 있어서, 각 구성 요소는, 전용의 하드웨어로 구성되거나, 각 구성 요소에 적합한 소프트웨어 프로그램을 실행함으로써 실현되어도 된다. 각 구성 요소는, CPU 또는 프로세서 등의 프로그램 실행부가, 하드 디스크 또는 반도체 메모리 등의 기록 매체에 기록된 소프트웨어 프로그램을 읽어내고 실행함으로써 실현되어도 된다.
또, 본 개시는, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치 등에 의해 실행되는 삼차원 데이터 부호화 방법 또는 삼차원 데이터 복호 방법 등으로서 실현되어도 된다.
또, 블록도에 있어서의 기능 블록의 분할은 일례이며, 복수의 기능 블록을 하나의 기능 블록으로서 실현하거나, 하나의 기능 블록을 복수로 분할하거나, 일부의 기능을 다른 기능 블록으로 옮겨도 된다. 또, 유사한 기능을 갖는 복수의 기능 블록의 기능을 단일 하드웨어 또는 소프트웨어가 병렬 또는 시분할로 처리해도 된다.
또, 플로차트에 있어서의 각 단계가 실행되는 순서는, 본 개시를 구체적으로 설명하기 위해 예시하기 위한 것이며, 상기 이외의 순서여도 된다. 또, 상기 단계의 일부가, 다른 단계와 동시(병렬)에 실행되어도 된다.
이상, 하나 또는 복수의 양태에 따른 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치 등에 대해, 실시 형태에 의거하여 설명하였는데, 본 개시는, 이 실시 형태에 한정되는 것은 아니다. 본 개시의 취지를 벗어나지 않는 한, 당업자가 생각해낸 각종 변형을 본 실시 형태에 실시한 것이나, 상이한 실시 형태에 있어서의 구성 요소를 조합하여 구축되는 형태도, 하나 또는 복수의 양태의 범위 내에 포함되어도 된다.
본 개시는, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치에 적용할 수 있다.
100, 400 : 삼차원 데이터 부호화 장치 101, 201, 401, 501 : 취득부
102, 402 : 부호화 영역 결정부 103 : 분할부
104, 644 : 부호화부 111 : 삼차원 데이터
112, 211, 413, 414, 511, 634 : 부호화 삼차원 데이터
200, 500 : 삼차원 데이터 복호 장치 202 : 복호 개시 GOS 결정부
203 : 복호 SPC 결정부 204, 625 : 복호부
212, 512, 513 : 복호 삼차원 데이터 403 : SWLD 추출부
404 : WLD 부호화부 405 : SWLD 부호화부
411 : 입력 삼차원 데이터 412 : 추출 삼차원 데이터
502 : 헤더 해석부 503 : WLD 복호부
504 : SWLD 복호부
620, 620A : 삼차원 데이터 작성 장치
621, 641 : 삼차원 데이터 작성부 622 : 요구 범위 결정부
623 : 탐색부 624, 642 : 수신부
626 : 합성부 631, 651 : 센서 정보
632 : 제1 삼차원 데이터 633 : 요구 범위 정보
635 : 제2 삼차원 데이터 636 : 제3 삼차원 데이터
640 : 삼차원 데이터 송신 장치 643 : 추출부
645 : 송신부 652 : 제5 삼차원 데이터
654 : 제6 삼차원 데이터 700 : 삼차원 정보 처리 장치
701 : 삼차원 맵 취득부 702 : 자차 검지 데이터 취득부
703 : 이상 케이스 판정부 704 : 대처 동작 결정부
705 : 동작 제어부 711 : 삼차원 맵
712 : 자차 검지 삼차원 데이터 810 : 삼차원 데이터 작성 장치
811 : 데이터 수신부 812, 819 : 통신부
813 : 수신 제어부 814, 821 : 포맷 변환부
815 : 센서 816 : 삼차원 데이터 작성부
817 : 삼차원 데이터 합성부 818 : 삼차원 데이터 축적부
820 : 송신 제어부 822 : 데이터 송신부
831, 832, 834, 835, 836, 837 : 삼차원 데이터
833 : 센서 정보 901 : 서버
902, 902A, 902B, 902C : 클라이언트 장치
1011, 1111 : 데이터 수신부
1012, 1020, 1112, 1120 : 통신부 1013, 1113 : 수신 제어부
1014, 1019, 1114, 1119 : 포맷 변환부 1015 : 센서
1016, 1116 : 삼차원 데이터 작성부 1017 : 삼차원 화상 처리부
1018, 1118 : 삼차원 데이터 축적부 1021, 1121 : 송신 제어부
1022, 1122 : 데이터 송신부 1031, 1032, 1135 : 삼차원 맵
1033, 1037, 1132 : 센서 정보
1034, 1035, 1134 : 삼차원 데이터 1117 : 삼차원 데이터 합성부
1201 : 삼차원 맵 압축/복호 처리부
1202 : 센서 정보 압축/복호 처리부 1211 : 삼차원 맵 복호 처리부
1212 : 센서 정보 압축 처리부
1300 : 삼차원 데이터 부호화 장치 1301 : 분할부
1302 : 감산부 1303 : 변환부
1304 : 양자화부 1305, 1402 : 역양자화부
1306, 1403 : 역변환부 1307, 1404 : 가산부
1308, 1405 : 참조 볼륨 메모리 1309, 1406 : 인트라 예측부
1310, 1407 : 참조 스페이스 메모리 1311, 1408 : 인터 예측부
1312, 1409 : 예측 제어부 1313 : 엔트로피 부호화부
1400 : 삼차원 데이터 복호 장치 1401 : 엔트로피 복호부
1501 : 서버 1502 : 클라이언트
1511 : 기억부 1512 : 제어부
1513 : 부호화 삼차원 맵 1521 : 디코더
1522 : 어플리케이션
1900: 삼차원 데이터 부호화 장치 1901, 1911: 8진 트리 생성부
1902, 1912: 유사성 정보 산출부
1903, 1913: 부호화 테이블 선택부 1904: 엔트로피 부호화부
1910: 삼차원 데이터 복호 장치 1914: 엔트로피 복호부
2100: 삼차원 데이터 부호화 장치 2101, 2111: 8진 트리 생성부
2102, 2112: 기하 정보 산출부
2103, 2113: 부호화 테이블 선택부 2104: 엔트로피 부호화부
2110: 삼차원 데이터 복호 장치 2114: 엔트로피 복호부
2200: 삼차원 데이터 부호화 장치 2201, 2211: 8진 트리 생성부
2202: 모드 결정부 2203: 엔트로피 부호화부
2210: 삼차원 데이터 복호 장치 2212: 모드 정보 복호부
2213: 엔트로피 복호부
2300: 삼차원 데이터 부호화 장치 2301, 2311: 8진 트리 생성부
2302: 엔트로피 부호화부 2310: 삼차원 데이터 복호 장치
2312: 엔트로피 복호부
2400: 삼차원 데이터 부호화 장치 2401: 양자화부
2402, 2411: 8진 트리 생성부 2403: 머지 결정부
2404: 엔트로피 부호화부 2410: 삼차원 데이터 복호 장치
2412: 머지 정보 복호부 2413: 엔트로피 복호부
2414: 역양자화부
2500: 삼차원 데이터 부호화 장치 2501, 2511: 8진 트리 생성부
2502, 2512: 부모 노드 정보 취득부 2503: 부호화 모드 선택부
2504, 2514: 탐색부 2505, 2515: 기하 정보 산출부
2506, 2516: 부호화 테이블 선택부 2507: 엔트로피 부호화부
2510: 삼차원 데이터 복호 장치 2513: 복호 모드 선택부
2517: 엔트로피 복호부

Claims (24)

  1. 삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고,
    상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더에 부가하고,
    상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더에 부가하고,
    상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화하는, 삼차원 데이터 부호화 방법.
  2. 청구항 1에 있어서,
    상기 분할에서는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조를, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 삼차원점에 대응하는 제2 가지를 포함하는 복수의 가지로 분할하는, 삼차원 데이터 부호화 방법.
  3. 청구항 2에 있어서,
    상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보를 부호화하는, 삼차원 데이터 부호화 방법.
  4. 청구항 3에 있어서,
    상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층인, 삼차원 데이터 부호화 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원군과 상기 제2 서브 삼차원점군을 상이한 부호화 테이블을 이용하여 엔트로피 부호화하는, 삼차원 데이터 부호화 방법.
  6. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군을 엔트로피 부호화한 후, 상기 제2 서브 삼차원점군을 엔트로피 부호화하기 전에 부호화 테이블을 초기화하는, 삼차원 데이터 부호화 방법.
  7. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군의 부호화에 있어서, 상기 제2 서브 삼차원점군의 참조를 금지하고,
    상기 제2 서브 삼차원점군의 부호화에 있어서, 상기 제1 서브 삼차원점군의 참조를 금지하는, 삼차원 데이터 부호화 방법.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각을 독립적으로 복호 가능하도록 부호화하고,
    상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각을 독립적으로 복호 가능하도록 부호화하는, 삼차원 데이터 부호화 방법.
  9. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서,
    (1) 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보와, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 한쪽을 독립적으로 복호 가능하도록 부호화하고,
    (1) 상기 복수의 제1 삼차원점의 위치 정보와, 상기 복수의 제2 삼차원점의 위치 정보의 각각, 및, (2) 상기 복수의 제1 삼차원점의 속성 정보와, 상기 복수의 제2 삼차원점의 속성 정보의 각각 중 다른쪽을 의존 관계가 있도록 부호화하는, 삼차원 데이터 부호화 방법.
  10. 청구항 1 내지 청구항 9 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화했는지의 여부를 나타내는 플래그를 부호화하는, 삼차원 데이터 부호화 방법.
  11. 청구항 1 내지 청구항 9 중 어느 한 항에 있어서,
    상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고,
    상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내는, 삼차원 데이터 부호화 방법.
  12. 삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득하고,
    상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고,
    상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득하고,
    상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원하는, 삼차원 데이터 복호 방법.
  13. 청구항 12에 있어서,
    상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 복수의 삼차원점의 N(N은 2 이상의 정수)진 트리 구조에 포함되는, 상기 제1 서브 삼차원점군에 대응하는 제1 가지와, 상기 제2 서브 삼차원점군에 대응하는 제2 가지의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성되는, 삼차원 데이터 복호 방법.
  14. 청구항 13에 있어서,
    상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층을 나타내는 정보를 복호하는, 삼차원 데이터 복호 방법.
  15. 청구항 14에 있어서,
    상기 제1 가지의 루트가 속하는 층과, 상기 제2 가지의 루트가 속하는 층은 동일한 층인, 삼차원 데이터 복호 방법.
  16. 청구항 12 내지 청구항 15 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 상이한 부호 테이블을 이용하여 엔트로피 복호하는, 삼차원 데이터 복호 방법.
  17. 청구항 12 내지 청구항 15 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군을 엔트로피 복호한 후, 상기 제2 서브 삼차원점군을 엔트로피 복호하기 전에 부호화 테이블을 초기화하는, 삼차원 데이터 복호 방법.
  18. 청구항 12 내지 청구항 15 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군의 복호에 있어서, 상기 제2 서브 삼차원점군을 참조하지 않고,
    상기 제2 서브 삼차원점군의 복호에 있어서, 상기 제1 서브 삼차원점군을 참조하지 않는, 삼차원 데이터 복호 방법.
  19. 청구항 12 내지 청구항 18 중 어느 한 항에 있어서,
    상기 제1 부호화 데이터는, 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점의 위치 정보가 부호화됨으로써 생성된 제1 부호화 위치 데이터와, 상기 복수의 제1 삼차원점의 속성 정보가 부호화됨으로써 생성된 제1 부호화 속성 데이터를 포함하고,
    상기 제2 부호화 데이터는, 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보가 부호화됨으로써 생성된 제2 부호화 위치 데이터와, 상기 복수의 제2 삼차원점의 속성 정보가 부호화됨으로써 생성된 제2 부호화 속성 데이터를 포함하고,
    상기 제1 부호화 위치 데이터와 상기 제2 부호화 위치 데이터는, 독립적으로 복호 가능하도록 생성되어 있고,
    상기 제1 부호화 속성 데이터와 상기 제2 부호화 속성 데이터는, 독립적으로 복호 가능하도록 생성되어 있는, 삼차원 데이터 복호 방법.
  20. 청구항 12 내지 청구항 18 중 어느 한 항에 있어서,
    상기 제1 부호화 데이터 및 상기 제2 부호화 데이터는, 상기 제1 서브 삼차원점군에 포함되는 복수의 제1 삼차원점 및 상기 제2 서브 삼차원점군에 포함되는 복수의 제2 삼차원점의 위치 정보 및 속성 정보 중 한쪽의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성되고,
    상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 한쪽의 각각을 복원하고,
    상기 삼차원 데이터 복호 방법은, 또한,
    상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 다른쪽의 각각이 의존 관계가 있도록 부호화됨으로써 생성된 제3 부호화 데이터 및 제4 부호화 데이터를 취득하고,
    상기 제3 부호화 데이터와 상기 제4 부호화 데이터의 각각을 복호함으로써 상기 복수의 제1 삼차원점 및 상기 복수의 제2 삼차원점의 상기 위치 정보 및 상기 속성 정보 중 상기 다른쪽의 각각을 복원하는, 삼차원 데이터 복호 방법.
  21. 청구항 12 내지 청구항 20 중 어느 한 항에 있어서,
    상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화되어 있는지의 여부를 나타내는 플래그를 복호하는, 삼차원 데이터 복호 방법.
  22. 청구항 12 내지 청구항 21 중 어느 한 항에 있어서,
    상기 제1 정보는, 상기 제1 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내고,
    상기 제2 정보는, 상기 제2 서브 삼차원점군의 상기 공간의 최대 좌표를 나타내는, 삼차원 데이터 복호 방법.
  23. 프로세서와,
    메모리를 구비하고,
    상기 프로세서는, 상기 메모리를 이용하여,
    삼차원 데이터에 포함되는 복수의 삼차원점을 제1 서브 삼차원점군과 제2 서브 삼차원점군을 포함하는 복수의 서브 삼차원점군으로 분할하고,
    상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더에 부가하고,
    상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더에 부가하고,
    상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군의 각각을 독립적으로 복호 가능하도록 부호화하는, 삼차원 데이터 부호화 장치.
  24. 프로세서와,
    메모리를 구비하고,
    상기 프로세서는, 상기 메모리를 이용하여,
    삼차원 데이터에 포함되는 복수의 삼차원점이 분할됨으로써 생성된 복수의 서브 삼차원점군에 포함되는 제1 서브 삼차원점군과 제2 서브 삼차원점군의 각각이 독립적으로 복호 가능하도록 부호화됨으로써 생성된 제1 부호화 데이터와 제2 부호화 데이터를 취득하고,
    상기 제1 서브 삼차원점군의 공간을 나타내는 제1 정보를 상기 제1 서브 삼차원점군의 헤더로부터 취득하고,
    상기 제2 서브 삼차원점군의 공간을 나타내는 제2 정보를 상기 제2 서브 삼차원점군의 헤더로부터 취득하고,
    상기 제1 부호화 데이터와 상기 제2 부호화 데이터의 각각을 복호함으로써 상기 제1 서브 삼차원점군과 상기 제2 서브 삼차원점군을 복원하는, 삼차원 데이터 복호 장치.
KR1020207029505A 2018-04-19 2019-04-18 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치 KR20210005855A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862660017P 2018-04-19 2018-04-19
US62/660,017 2018-04-19
PCT/JP2019/016581 WO2019203297A1 (ja) 2018-04-19 2019-04-18 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
KR20210005855A true KR20210005855A (ko) 2021-01-15

Family

ID=68240076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029505A KR20210005855A (ko) 2018-04-19 2019-04-18 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치

Country Status (11)

Country Link
US (2) US11625865B2 (ko)
EP (1) EP3783569A4 (ko)
JP (2) JP7434148B2 (ko)
KR (1) KR20210005855A (ko)
CN (1) CN112041888A (ko)
AU (2) AU2019256021B2 (ko)
BR (1) BR112020020109A2 (ko)
CA (1) CA3096452A1 (ko)
MX (1) MX2020010889A (ko)
SG (1) SG11202009891QA (ko)
WO (1) WO2019203297A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
JP6932205B2 (ja) * 2017-11-30 2021-09-08 三菱電機株式会社 三次元地図生成システム、三次元地図生成方法および三次元地図生成プログラム
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10867414B2 (en) 2018-04-10 2020-12-15 Apple Inc. Point cloud attribute transfer algorithm
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
WO2020075861A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3893204A4 (en) * 2018-12-06 2022-01-26 Panasonic Intellectual Property Corporation of America METHOD OF ENCODING THREE-DIMENSIONAL DATA, METHOD OF DECODING OF THREE-DIMENSIONAL DATA, DEVICE FOR ENCODING OF THREE-DIMENSIONAL DATA, AND DECODER OF DECODING OF THREE-DIMENSIONAL DATA
US11531647B2 (en) * 2019-01-31 2022-12-20 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
US11748197B2 (en) 2019-01-31 2023-09-05 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
EP3944625A4 (en) * 2019-03-20 2022-05-11 Lg Electronics Inc. POINT CLOUD DATA TRANSMITTER DEVICE, POINT CLOUD DATA TRANSMITTER METHOD, POINT CLOUD DATA RECEIVE DEVICE AND POINT CLOUD DATA RECEIVE METHOD
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
CN109993839B (zh) * 2019-04-09 2022-11-25 北京大学深圳研究生院 一种自适应的点云条带划分方法
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11538196B2 (en) * 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11223836B2 (en) * 2019-12-02 2022-01-11 Tencent America LLC Method and apparatus for point cloud coding
WO2021108969A1 (zh) 2019-12-02 2021-06-10 Oppo广东移动通信有限公司 属性信息的预测方法、编码器、解码器、及存储介质
KR102589867B1 (ko) * 2019-12-03 2023-10-16 한국전자통신연구원 플랜옵틱 포인트 클라우드 생성 방법 및 장치
JP7425207B2 (ja) * 2020-01-07 2024-01-30 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
WO2021187561A1 (ja) * 2020-03-19 2021-09-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN115280365A (zh) * 2020-03-19 2022-11-01 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN115443486A (zh) * 2020-04-14 2022-12-06 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
WO2021210549A1 (ja) * 2020-04-14 2021-10-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
MX2022015418A (es) * 2020-06-22 2023-01-11 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo de codificacion de datos tridimensionales y dispositivo de decodificacion de datos tridimensionales.
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
CN115943434A (zh) * 2020-06-25 2023-04-07 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
WO2022025278A1 (ja) * 2020-07-31 2022-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP4199520A4 (en) * 2020-08-16 2024-05-22 Zhejiang University METHOD AND DEVICE FOR ENCODING AND DECODING POINT CLOUD ATTRIBUTES
US11941856B2 (en) * 2020-08-18 2024-03-26 Tencent America LLC Predictive tree-based geometry coding for a point cloud
WO2022071505A1 (ja) * 2020-10-02 2022-04-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
US11227432B1 (en) * 2021-09-27 2022-01-18 Illuscio, Inc. Systems and methods for multi-tree deconstruction and processing of point clouds
US11886199B2 (en) 2021-10-13 2024-01-30 Toyota Motor Engineering & Manufacturing North America, Inc. Multi-scale driving environment prediction with hierarchical spatial temporal attention
WO2024031585A1 (en) * 2022-08-11 2024-02-15 Beijing Xiaomi Mobile Software Co., Ltd. Method for encoding and decoding a 3d point cloud, encoder, decoder
WO2024031586A1 (en) * 2022-08-11 2024-02-15 Beijing Xiaomi Mobile Software Co., Ltd. Method for encoding and decoding a 3d point cloud, encoder, decoder
CN115761023B (zh) * 2022-12-02 2024-08-13 同济大学 一种基于点云矩阵奇异值特征的三维点云压缩系统和方法
WO2024146644A1 (en) * 2023-01-06 2024-07-11 Douyin Vision Co., Ltd. Method, apparatus, and medium for point cloud coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100294926B1 (ko) * 1998-08-29 2001-07-12 윤종용 점진적인 삼차원 메쉬 정보의 부호화/복호화 방법 및 장치
KR100294927B1 (ko) * 1998-08-29 2001-07-12 윤종용 점진적인 삼차원 메쉬 정보의 부호화 방법 및 그 장치
EP1574996A3 (en) * 2004-03-08 2007-03-21 Samsung Electronics Co., Ltd. Adaptive 2n-ary tree generating method, and method and apparatus for encoding and decoding 3D volume data using it
CN100477770C (zh) * 2004-07-06 2009-04-08 松下电器产业株式会社 编解码装置以及记录再生终端
CN1946180B (zh) * 2006-10-27 2010-05-12 北京航空航天大学 一种基于Octree的三维模型压缩编码方法
US20090232355A1 (en) * 2008-03-12 2009-09-17 Harris Corporation Registration of 3d point cloud data using eigenanalysis
WO2010045507A2 (en) * 2008-10-16 2010-04-22 Troy Barnes Remote control of a web browser
EP2489208B1 (en) * 2009-10-15 2024-08-07 InterDigital VC Holdings, Inc. Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model
JP2015216581A (ja) * 2014-05-13 2015-12-03 株式会社日立製作所 転送ノード、センサノード、およびセンサネットワークシステム
JP6826368B2 (ja) * 2016-01-14 2021-02-03 キヤノン株式会社 符号化装置及びその制御方法
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US20180051746A1 (en) * 2016-08-17 2018-02-22 Lippert Components, Inc. Operating mechanism for movable compartment
EP3944196A1 (en) 2016-09-16 2022-01-26 Panasonic Intellectual Property Corporation of America Three-dimensional data creation method and three-dimensional data creation device
US10735826B2 (en) * 2017-12-20 2020-08-04 Intel Corporation Free dimension format and codec

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置

Also Published As

Publication number Publication date
SG11202009891QA (en) 2020-11-27
BR112020020109A2 (pt) 2021-01-26
CN112041888A (zh) 2020-12-04
JPWO2019203297A1 (ja) 2021-04-22
US20230196626A1 (en) 2023-06-22
AU2024205758A1 (en) 2024-08-29
WO2019203297A1 (ja) 2019-10-24
EP3783569A1 (en) 2021-02-24
EP3783569A4 (en) 2021-06-02
AU2019256021A1 (en) 2020-10-29
US11625865B2 (en) 2023-04-11
AU2019256021B2 (en) 2024-05-16
JP2024040314A (ja) 2024-03-25
MX2020010889A (es) 2020-11-09
CA3096452A1 (en) 2019-10-24
JP7434148B2 (ja) 2024-02-20
US20210012538A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
JP7434148B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7273029B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7521088B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7414713B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7374089B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7418531B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7381444B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
KR20210020924A (ko) 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
WO2019182102A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JPWO2019142834A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal