KR20200140824A - 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치 - Google Patents

3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200140824A
KR20200140824A KR1020207028658A KR20207028658A KR20200140824A KR 20200140824 A KR20200140824 A KR 20200140824A KR 1020207028658 A KR1020207028658 A KR 1020207028658A KR 20207028658 A KR20207028658 A KR 20207028658A KR 20200140824 A KR20200140824 A KR 20200140824A
Authority
KR
South Korea
Prior art keywords
information
depth
depth information
point cloud
projection plane
Prior art date
Application number
KR1020207028658A
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
Priority claimed from EP18306132.4A external-priority patent/EP3614672A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20200140824A publication Critical patent/KR20200140824A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

적어도 하나의 실시예는, 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보와 연관되는지를 나타내는 점유 정보를 획득하는 단계; 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 단계; 및 상기 이미지를 인코딩하는 단계를 포함하는 방법에 관한 것이다.

Description

3D 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치
본 원리는 대체로 3D 객체를 나타내는 포인트 클라우드의 코딩 및 디코딩에 관한 것이다. 특히, 전적으로 그런 것은 아니지만, 본 원리의 기술 분야는 포인트 클라우드의 투사 기반 인코딩/디코딩에 관한 것이다.
본 절은, 이하에서 설명되고 및/또는 청구되는 본 원리의 다양한 양태에 관련될 수 있는 기술의 다양한 양태를 독자에게 소개하기 위함이다. 본 논의는, 본 원리의 다양한 양태의 더 양호한 이해를 용이화하기 위해 독자에게 배경 정보를 제공하는데 있어서 도움이 될 것으로 믿어진다. 따라서, 이들 설명은 이러한 점에 비추어 읽혀져야 하고, 종래 기술로서의 인정으로서 받아들여져서는 안 된다.
포인트 클라우드는, 대개 3D 객체의 외부 표면뿐만 아니라, 메시와 같은 다른 데이터 포맷에 의해 효율적으로 표현되지 않을 수도 있는 머리카락이나 털 등의 더 복잡한 지오메트리도 나타내기 위한 한 세트의 포인트이다. 포인트 클라우드의 각각의 포인트는, 종종, 3D 공간적 위치(3D 공간에서 X, Y 및 Z 좌표) 및 아마도 RGB 또는 YUV 색상 공간으로 표현되는 색상 등의 기타의 연관된 속성, 예를 들어, 투명도, 반사율, 법선 벡터 등에 의해 정의된다.
채색된 포인트 클라우드는 한 세트의 6-성분 포인트(X, Y, Z, R, G, B) 또는 동등하게 (X, Y, Z, Y, U, V)일 수 있고, 여기서 (X, Y, Z)는 3D 공간에서 포인트의 공간적 위치를 정의하며 (R, G, B) 또는 (Y, U, V)는 이 포인트의 색상을 정의한다.
이하에서, "포인트 클라우드"라는 용어는 채색된 포인트 클라우드를 포함한 임의의 포인트 클라우드를 지칭한다.
채색된 포인트 클라우드는 포인트 클라우드가 시간에 관해 진화하는지 여부에 따라 정적이거나 동적일 수 있다. 동적 포인트 클라우드의 경우 포인트 수가 반드시 일정할 필요는 없지만, 반면에 일반적으로 시간에 따라 진화한다는 점에 유의해야 한다. 따라서, 동적 포인트 클라우드는 포인트 세트의 시간-정렬된 목록이다.
실제로, 채색된 포인트 클라우드는, 객체를 보내거나 방문하지 않고 객체의 공간적 구성을 공유하기 위해 조각상이나 건물 등의 객체가 3D로 스캔될 수 있는 문화유산/건물 등의 다양한 목적에 이용될 수 있다. 또한, 이것은, 파괴될 수 있는 경우; 예를 들어, 지진에 의한 사원의 파괴에 대비하여 객체에 대한 지식 보존을 보장하는 방법이다. 이러한 채색된 포인트 클라우드는 전형적으로 정적이고 거대하다.
또 다른 이용 사례는, 3D 표현을 이용함으로써, 맵이 평면으로 제한되지 않고 부조를 포함할 수 있는 지형 및 지도 제작이다.
자동차 산업과 자율주행 자동차도 역시 포인트 클라우드가 이용될 수 있는 영역이다. 자율주행 자동차는, 주변의 현실에 기초하여 안전한 운전 결정을 내리기 위해 주변 환경을 "탐색(probe)"할 수 있어야 한다. 전형적인 센서는 의사결정 엔진에 의해 이용되는 동적 포인트 클라우드를 생성한다. 이들 포인트 클라우드는 사람이 보도록 의도된 것은 아니다. 이들은 전형적으로 작고, 반드시 채색된 것은 아니며, 캡처 빈도가 높으며 동적이다. 이들은 감지된 객체의 물리적 표면의 재료에 상관된 귀중한 정보인 반사율 등의 다른 속성을 가질 수 있으며 결정을 도울 수 있다.
가상 현실(VR)과 몰입형 세계는 최근 인기 주제가 되었으며 2D 평면 비디오의 미래로서 많은 사람들이 예견했다. 기본 아이디어는, 시청자가 자신의 앞에 있는 가상 세계만 볼 수 있는 표준 TV와 대조적으로 시청자를 그 주변 환경에 몰입시키는 것이다. 환경 내의 시청자의 자유에 따라 몰입감에는 몇 가지 그라데이션이 있다. 채색된 포인트 클라우드는 VR 세계를 배포하기에 양호한 포맷 후보이다. 이들은 정적이거나 동적일 수 있고, 전형적으로 평균 크기이며, 한 번에 수백만 포인트를 넘지 않는다.
포인트 클라우드 압축은, 비트스트림의 크기가 최종 사용자로의 실질적인 저장/전송을 허용할만큼 충분히 낮은 경우에만 몰입형 세계를 위한 3D 객체를 저장/전송하는데 성공할 것이다.
수락가능한(또는 바람직하게는 매우 우수한) 체험의 품질을 유지하면서 합리적인 대역폭 소비로 동적 포인트 클라우드를 최종 사용자에게 배포할 수 있는 것도 중요하다. 비디오 압축과 유사하게, 시간적 상관관계의 양호한 이용이 동적 포인트 클라우드를 효율적으로 압축하는데 중요한 요소로 생각된다.
널리 알려진 접근법은, 3D 객체의 지오메트리와 색상을 나타내는 채색된 포인트 클라우드를 3D 객체를 포함하는 큐브의 면에 투사하여 포인트 클라우드의 색상 정보를 나타내는 텍스처와 포인트 클라우드의 지오메트리 정보를 나타내는 깊이 정보를 포함하는 비디오를 획득하고, 3D-HEVC(ITU 웹사이트, T 권고안, H 시리즈, h265, https://www.itu.int/rec/T-REC-H.265-201802-I annex I에서 그 명세를 찾아볼 수 있는 HEVC의 확장판) 등의 레거시 인코더를 이용하여 텍스처와 깊이 비디오를 코딩한다.
압축 성능은 각각의 투사된 포인트에 대한 비디오 압축과 가깝지만 일부 콘텐츠는 동적 포인트 클라우드를 고려할 때 폐색, 중복성 및 시간적 안정성으로 인해 더 복잡할 수 있다. 결과적으로, 포인트 클라우드 압축은 비트 레이트 측면에서 비디오 압축보다 더 까다롭다.
폐색과 관련하여, 많은 투사를 이용하지 않고 복잡한 토폴로지의 전체 지오메트리를 획득하는 것은 사실상 불가능하다. 따라서 이들 모든 투사를 인코딩/디코딩하기 위해 요구되는 자원(컴퓨팅 능력, 저장 메모리)은 일반적으로 너무 높다.
최근 120차 MPEG 회의에서 텍스처 및 깊이 투사 방식을 이용하는 포인트 클라우드 코덱이 제안되었다. 이 방식은, 문서 ISO/IEC JTC1/SC29 WG11 Doc. N17248, Macau, CN, October 2017에서 설명되고 있으며, 여기서, 제안된 방식은 "Point cloud compression Test Model Category 2 version 0.0 (TMC2v0)"라 불린다.
이 코덱은, 본질적으로 동적 포인트 클라우드 데이터를 한 세트의 상이한 비디오 시퀀스로 변환함으로써, 기존의 비디오 코덱을 활용하여 동적 포인트 클라우드의 지오메트리 및 텍스처 정보를 압축한다.
특히, 2개의 비디오 시퀀스, 즉, 포인트 클라우드 데이터의 지오메트리 정보를 캡처하기 위한 비디오 시퀀스와, 텍스처 정보, 즉, 포인트의 색상을 캡처하기 위한 비디오 시퀀스가 생성되어 기존의 비디오 코덱, 예를 들어, HEVC 메인 프로파일 인코더를 이용하여 압축된다.
2개의 비디오 시퀀스를 해석하는데 필요한 추가적인 메타데이터, 즉, 점유 맵과 보조 패치/블록 정보도 별도로 생성되고 압축된다. 생성된 비디오 비트스트림과 메타데이터는 함께 멀티플렉싱되어 최종 포인트 클라우드 비트스트림을 생성한다. 메타데이터는 산술 코덱 등의 엔트로피 코덱에 의해 추가로 인코딩된다.
이 포인트 클라우드 코덱의 예시적인 인코더(2)의 구조는 도 1에 나와 있다.
인코더(2)는 3개의 주요 블록: 지오메트리 압축 블록(4), 메타데이터 압축 블록(6), 및 텍스처 압축 블록(8)을 포함한다.
지오메트리 압축 블록(4)은 입력 포인트 클라우드를 깊이 패치(depth patch)로 분해하는 깊이 패치 생성 블록(10)을 포함한다.
깊이 패치 생성 프로세스(10)는 포인트 클라우드를 매끄러운 경계를 가진 최소 개수의 깊이 패치들로 분해하는 한편, 재구성 에러를 최소화하는 것을 목표로 한다. 깊이 패치는 깊이 값과 연관된 한 그룹의 픽셀 그룹에 의해 포인트 클라우드의 한 부분을 나타낸다.
한 예로서, 도 2에 상세히 설명된 다음과 같은 접근법이 구현된다.
첫째, 모든 포인트에서의 법선은, Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle, "Surface reconstruction from unorganized points". ACM SIGGRAPH 1992 Proceedings, 71-78 에서 설명된 바와 같이 102에서 추정된다.
포인트 클라우드의 초기 클러스터링은 각각의 포인트를 대응하는 법선에 의해 정의된 다음 6개의 배향된 평면 중 하나와 연관시킴으로써 104에서 획득된다.
- (1.0, 0.0, 0.0),
- (0.0, 1.0, 0.0),
- (0.0, 0.0, 1.0),
- (-1.0, 0.0, 0.0),
- (0.0, -1.0, 0.0), 및
- (0.0, 0.0, -1.0).
더 정확하게는, 각각의 포인트는 가장 가까운 법선을 갖는 평면과 연관된다(즉, 포인트 법선과 평면 법선의 내적(dot product)을 최대화).
한 실시예에 따르면, 전술된 6개의 배향된 평면은 다음과 같이 인덱싱된다:
- (1.0, 0.0, 0.0)은 클러스터 인덱스 0에 의해 인덱싱된다;
- (0.0, 1.0, 0.0)은 클러스터 인덱스 1에 의해 인덱싱된다;
- (0.0, 0.0, 1.0)은 클러스터 인덱스 2에 의해 인덱싱된다;
- (-1.0, 0.0, 0.0)은 클러스터 인덱스 0에 의해 인덱싱된다;
- (0.0, -1.0, 0.0)은 클러스터 인덱스 1에 의해 인덱싱된다;
- (0.0, 0.0, -1.0)은 클러스터 인덱스 2에 의해 인덱싱된다.
그 다음, 각각의 포인트는 대응하는 클러스터의 인덱스와 연관된다.
그 다음 초기 클러스터링은, 그 법선 및 가장 가까운 이웃의 클러스터 인덱스에 기초하여 각각의 포인트와 연관된 클러스터 인덱스를 반복적으로 업데이트함으로써 개선된다. 한 실시예에 따르면, 고려된 포인트에 대해, 모든 이웃 포인트, 예를 들어 3D 공간에서 현재의 포인트까지의 거리가 2 미만인 모든 포인트가 ClusterA로 표시된 하나의 클러스터에 할당되고 고려된 포인트는 또 다른 클러스터에 할당된다면, 고려된 포인트의 클러스터 인덱스는 ClusterA로 업데이트된다.
그 다음, 106에서, 접속된 컴포넌트 추출 절차를 적용함으로써, 즉, 접속된 컴포넌트를 형성하는 동일한 클러스터 인덱스를 갖는 이웃 포인트들을 추출함으로써 깊이 패치가 추출된다. 한 실시예에 따르면, 다음과 같은 2개의 조건을 동시에 충족하는 모든 포인트를 그룹화함으로써 하나의 접속된 컴포넌트가 구축된다:
- 모든 포인트는 동일한 클러스터 인덱스를 갖는다.
- 관련 접속된 컴포넌트 내의 각각의 포인트에 대해, 현재 포인트까지의 거리가, 예를 들어 1과 동일한 미리정의된 임계값보다 작은 동일한 접속된 컴포넌트에는 적어도 하나의 포인트가 있다.
각각의 접속된 컴포넌트는, 그 클러스터 인덱스(즉, 그에 속하는 포인트의 클러스터 인덱스)에 따라 투사 평면과 연관된다. 한 실시예는 다음과 같다:
- 클러스터 인덱스 0을 갖는 접속된 컴포넌트에 대한 YOZ 평면;
- 클러스터 인덱스 1을 갖는 접속된 컴포넌트에 대한 XOZ 평면;
- 클러스터 인덱스 2를 갖는 접속된 컴포넌트에 대한 XOY 평면.
동일한 투사 라인을 따라 복수의 포인트가 있는 경우를 더 잘 처리하기 위해, (투사 라인이 3개의 좌표(X, Y, Z) 중 2개의 동일한 좌표를 갖는 포인트를 포함하는 경우; 예를 들어, 투사 라인은 동일한 (X, Y) 좌표를 가진 모든 포인트로 구성될 수 있고, 각각의 접속된 컴포넌트에 대해 2개의 깊이 패치가 생성되고, 대응하는 픽셀의 최소 및 최대 깊이 값에 대응하고 D1-D0 <= SurfaceThickness를 충족하는(여기서 SurfaceThickness는 예를 들어 4와 동일한 최대 표면 두께임) 깊이 값 D0 및 D1을 기록한다.
더 정확하게는, {H(u, v)}를 동일한 픽셀(u, v)에 투사되는 현재 접속된 컴포넌트의 포인트 세트라고 하자. 가까운 층이라고도 불리는 첫 번째 깊이 패치는 가장 낮은 깊이 D0를 갖는 {H(u, v)}에 포인트의 깊이를 저장한다. 먼 층이라고 불리는 2번째 깊이 패치는, 간격 [D0, D0 + SurfaceThickness] 내에서 가장 높은 깊이를 갖는 {H(u, v)} 내의 포인트를 캡처한다.
깊이 패치 생성 블록(10) 다음에는, 미사용 공간을 최소화하려고 시도하면서 격자의 모든 TxT(예를 들어, 16x16) 블록이 고유의 투사된 접속된 컴포넌트와 연관되는 것을 보장하며, 모든 투사된 접속된 컴포넌트를 2D 격자 상으로 매핑하는 패킹 블록(12)이 뒤따르며, 여기서 T는, 비트스트림으로 인코딩되어 디코더에 전송되는 사용자-정의형 파라미터이다. 2D 격자 상의 각각의 포인트는 이미지 상의 픽셀에 대응한다.
패킹은 패치를 WxH 격자에 삽입하려고 반복적으로 시도하는 간단한 패킹 전략을 이용하며, 여기서 W와 H는 사용자-정의형 파라미터, 예를 들어, 인코딩될 지오메트리/텍스처 이미지의 해상도에 대응하는 1028x1028이다. 패치 위치는 래스터 스캔 순서로 수행되는 철저한 검색을 통해 결정된다. 패치의 중첩없는 삽입을 보장할 수 있는 첫 번째 위치가 선택되고 패치에 의해 커버된 격자 셀은 이용중으로 마킹된다. 현재 이미지 해상도의 어떠한 빈 공간도 패치에 맞지 않다면, 격자의 높이 H가 일시적으로 2배가 되고 검색이 다시 적용된다. 프로세스의 끝에서, 이용된 격자 셀에 맞도록 H가 클립된다. 2D 격자에서 각각의 패치의 투사된 영역 경계-박스 좌측 상단 코너 위치인 패킹 위치와 각각의 패치의 투사된 영역 크기는 압축된 비트스트림으로 시그널링된다.
점유 맵은 패킹 블록(12)으로부터 메타데이터 압축 블록(6)으로 출력된다. 점유 맵은 격자의 각각의 셀에 대해 이것이 빈 공간에 속하는지, 즉, 비점유되어 있는지, 또는 포인트 클라우드에 속하는지, 즉 점유되어 있는지를 나타내는 2진 맵으로 구성되며 연속적이지만(즉, 여기서 2D 격자의 한 셀은 이미지 생성 프로세스 동안에 깊이 또는 색상 정보를 운반하는 픽셀을 생성할 것이다.
지오메트리 압축 블록(4)은 또한, 패킹 프로세스(12) 동안 계산된 3D 대 2D 매핑, 더 구체적으로 각각의 접속된 컴포넌트의 투사된 영역의 패킹 위치 및 크기를 활용하여 포인트 클라우드의 지오메트리를 이미지로서 저장하는 이미지 생성 블록(14)을 포함한다.
각각의 접속된 컴포넌트에 대해 2개의 깊이 패치가 생성된다는 사실에 대응하여, DepthImg0 및 DepthImg1이라고 불리는, 포인트 클라우드의 지오메트리를 저장하는 2개의 이미지가 생성된다.
인코더(2)의 이미지 생성 블록(14)은 도 3을 참조하여 더 상세히 설명된다.
이미지 생성은 패킹 프로세스(Depth D0 패킹)를 포함하고, 여기서, 각각의 패치의 투사된 영역의 패킹 위치에 따라, 각각의 패치의 D0 값이 2번째 격자의 대응하는 부분에 복사된다.
이미지 생성은 또한 델타 깊이 결정을 포함하고, 여기서, depthImage0의 각각의 점유된 픽셀에 대해 delta_depth = D1 - D0(D1 및 D0은 동일한 투사 라인에 있음)이고, delta_depth는 대응하는 D0 값이 저장되어 있는 곳과 동일한 위치에 저장된다.
이미지 생성은 또한, 다음과 같이 시간 인터리빙을 포함한다: (depthImage0_0, depthImage1_0, … depthImage0_i, depthImage1_i, …, depthImage0_n, depthImage1_n), 여기서 depthImage0_i 및 depthImage1_i는 포인트 클라우드 프레임 i로부터 생성된다.
이미지 생성은 또한, 비디오 압축에 적합한 부분적으로 매끄러운 이미지(smooth image)를 생성하기 위해 패치들 사이의 빈 공간을 채우는 것을 목표로 하는 패딩 프로세스(20)를 포함한다. 다음과 같이 진행되는 간단한 패딩 전략을 이용한다:
● TxT(예를 들어, 16x16) 픽셀의 각각의 블록은 독립적으로 처리된다.
● 블록이 비어 있다면(즉, 모든 픽셀이 빈 공간에 속함), 블록의 픽셀들은 이전 TxT 블록의 마지막 행 또는 열을 래스터 순서로 복사함으로써 채워진다.
● 블록이 가득 차면(즉, 빈 픽셀이 없음), 아무 것도 수행되지 않는다.
● 블록이 빈 픽셀과 채워진 픽셀 양쪽 모두를 갖는다면, 빈 픽셀은 비어 있지 않은 이웃의 평균 값으로 반복적으로 채워진다.
이미지 생성 블록(14) 다음에는 깊이 비디오 인코딩 블록(21)이 뒤따르고, 여기서 생성된 깊이 이미지는 비디오 프레임으로서 저장되고 파라미터로 제공된 HM 구성에 따라 HM16.16 비디오 코덱 등의 임의의 레거시 비디오 코덱을 이용하여 압축된다.
인코더 2의 메타데이터 압축 블록(6)에서, 패치/접속된 컴포넌트별 메타데이터라고 불리는, 뒤따르는 메타데이터가 수집된 다음, 다음과 같이 모든 접속된 컴포넌트에 대해 인코딩된다:
● 투사 평면의 인덱스
o 평면(1.0, 0.0, 0.0) 및 (-1.0, 0.0, 0.0)에 대한 인덱스 0;
o 평면(0.0, 1.0, 0.0) 및 (0.0, -1.0, 0.0)에 대한 인덱스 1;
o 평면(0.0, 0.0, 1.0) 및 (0.0, 0.0, -1.0)에 대한 인덱스 2.
● 패킹된 지오메트리/텍스처 이미지 상의 2D 경계 박스(u0, v0, u1, v1);
● 깊이 변위(depth shift) δ0, 접선 변위 s0 및 양접선 변위(bi-tangential shift) r0으로 표현된 접속된 컴포넌트의 3D 위치(x0, y0, z0). 선택된 투사 평면에 따라, (δ0, s0, r0)은 다음과 같이 계산된다:
o 인덱스 0, δ0 = x0, s0 = z0 및 r0 = y0;
o 인덱스 1, δ0 = y0, s0 = z0 및 r0 = x0;
o 인덱스 2, δ0 = z0, s0 = x0 및 r0 = y0.
또한, 블록-대-패치 맵이라고 불리는, 각각의 TxT 블록에 대해 그 연관된 패치/접속된 컴포넌트 인덱스를 제공하는 매핑 정보가 생성되고 다음과 같이 인코딩된다:
● 각각의 TxT 블록에 대해, L을 2D 경계 박스가 그 블록을 포함하도록 하는 패치 인덱스들의 정렬된 목록이라고 하자. 목록에서의 순서는 2D 경계 박스를 인코딩하는데 이용되는 순서와 동일하다. L은 후보 패치들의 목록이라고 불린다.
● 지오메트리/텍스처 이미지 상의 패치들 사이의 빈 공간은 패치로서 간주되고, 모든 블록의 후보 패치 목록에 추가되는 특수 인덱스 0을 할당받는다.
● I을, 현재의 TxT 블록을 점유하는 패치의 인덱스라 하고 J를 L에서의 I의 위치라고 하자. 인덱스 I를 명시적으로 인코딩하는 것 대신에, 위치 J가 산술적으로 인코딩되어, 더 양호한 압축 효율로 이어진다.
또한, 메타데이터 압축 블록(6)은, 패킹 블록(12)으로부터 생성된 점유 맵의 인코딩(22)을 구현한다.
점유 맵 압축은, 빈 TxT 블록(즉, 패치 인덱스가 0인 블록)을 검출하기 위해 전술된 블록-대-패치 매핑 정보를 활용한다. 나머지 블록은, 23에서, 다음과 같이 인코딩된다.
점유 맵은, 22에서, B0xB0 블록의 정밀도로 인코딩될 수 있고, 여기서 B0은 사용자-정의형 파라미터이다. 무손실 인코딩을 달성하기 위해, B0은 1로 설정되어야 한다. 실제로, B0 = 2 또는 B0 = 4는 시각적으로 수락가능한 결과를 가져 오면서 점유 맵을 인코딩하는데 요구되는 비트 수를 크게 감소시킨다.
블록-대-패치 맵 인코딩(23)은 다음과 같이 진행한다:
● 2진 값은 동일한 TxT 블록에 속하는 B0xB0 서브블록과 연관된다. 서브블록이 적어도 하나의 패딩되지 않은 픽셀을 포함한다면 값 1이 그 서브블록과 연관되고, 그렇지 않으면 0이 연관된다. 서브블록이 값 1을 갖는다면, 가득 차 있다고 말하고, 그렇지 않으면 빈 서브블록이다.
● TxT 블록의 모든 서브블록이 가득 차 있다면(즉, 값 1을 갖는다면), 그 블록은 가득 차 있다고 말할 수 있다. 그렇지 않으면, 그 블록은 가득차 있지 않다고 말할 수 있다.
● 각각의 TxT 블록에 대해 2진 정보가 인코딩되어 가득 차 있는지 여부를 나타낸다.
● 블록이 가득 차 있지 않다면, 가득 찬/빈 서브블록의 위치를 나타내는 추가 정보가 다음과 같이 인코딩된다:
o 서브블록에 대해 상이한 순회 순서가 정의된다. 도 4는 고려된 4개의 순회 순서를 도시한다.
o 인코더는 순회 순서들 중 하나를 선택하고 비트스트림에서 그 인덱스를 명시적으로 시그널링한다.
o 서브블록과 연관된 2진 값은 실행-길이 인코딩 전략을 이용하여 인코딩된다.
■ 초기 서브블록의 2진 값이 인코딩된다.
■ 인코더에 의해 선택된 순회 순서를 따르는 동안 0과 1의 연속적인 실행이 검출된다.
■ 검출된 실행 횟수가 인코딩된다.
■ 마지막 실행을 제외한, 각각의 실행의 길이도 역시 인코딩다.
점유 맵 스트림은 점유 맵 인코딩(22)으로부터 출력되고 블록-대-패치 맵 스트림은 점유 맵(23)으로부터 출력된다. 블록-대-패치 인덱스 및 점유 맵은 블록별 메타데이터라고 불린다.
텍스처 압축 블록(8)은, 3D-HEVC(ITU 웹사이트, T recommendation, H series, h265, https://www.itu.int/rec/T-REC-H.265-201802-I annex I에서 그 명세를 찾아 볼 수 있는 HEVC의 확장판) 등의 레거시 디코더에 의한 깊이 비디오 디코딩과, 그에 후속하여, 재구성된 지오메트리 이미지에서 점유된 픽셀을 검출하기 위해 점유 맵 정보를 활용하는 지오메트리 재구성 프로세스(24)를 포함한다. 점유된 픽셀과 연관된 포인트의 3D 위치는 메타데이터와 지오메트리 이미지를 활용함으로써 계산된다. 더 정확하게는, P를 점유된 픽셀(u, v)로부터 재구성되는 포인트라 하고, (δ0, s0, r0)을 그 픽셀이 속하는 접속된 컴포넌트의 3D 위치라 하고, (u0, v0, u1, v1)를 대응하는 깊이 패치의 2D 경계 박스라고 하자. P는, 깊이 δ(u, v), 접선 변위 s(u, v) 및 양접선 변위 r(u, v)로 다음과 같이 표현할 수 있다:
δ(u, v) = δ0 + g(u, v)
s(u, v) = s0 - u0 + u
r(u, v) = r0 - v0 + v,
여기서, g(u, v)는 재구성된 지오메트리 이미지의 루마 성분이다.
포인트 클라우드 지오메트리 재구성 프로세스(24)는 또한, 각각의 재구성된 포인트에 대해, 현재의 포인트를 재구성하는 깊이 값을 저장하는 픽셀의 위치, 즉, (i, u, v)를 출력한다, 여기서 i는 깊이 이미지, 즉, DepthImg0 또는 DepthImg1을 나타내고, 및 (u, v)는 i번째 깊이 이미지에서의 픽셀의 좌표이다.
텍스처 압축 블록(8)은 또한, 각각의 재구성된 포인트에 대해 코딩될, 색상 및/또는 기타의 속성 값이, 색상 및/또는 기타의 속성 정보 코딩 에러를 최소화하는 방식으로 결정되는 3D 색상 전송 블록(26)을 포함한다. 한 실시예에 따르면, 각각의 재구성된 포인트에 대해, 입력/원래의 포인트 클라우드 내의 가장 가까운 포인트의 색상이 그 코딩될 색상으로서 할당된다.
3D 색상 전송 블록(26) 다음에는, 지오메트리 이미지에서와 동일한 위치, 즉, (i, u, v)에서의 각각의 재구성된 포인트에 대해 코딩될 색상 정보를 저장함으로써 코딩될 텍스처 이미지를 생성하는 텍스처 이미지(들) 생성 블록(28)이 뒤따른다.
텍스처 이미지(들) 생성 블록(28) 다음에는, 3D-HEVC(그 명세가, ITU 웹사이트, T recommendation, H series, h265, https://www.itu.int/rec/T-REC-H.265-201802-I annex I에서 발견되는 HEVC의 확장판) 등의 레거시 인코더를 이용한 텍스처 비디오 인코딩이 뒤따른다.
지오메트리 압축 블록(4)으로부터 생성된 깊이 비디오 스트림, 메타데이터 압축 스트림(6)으로부터 생성된 블록별 및 패치별 메타데이터 스트림, 및 텍스처 압축 블록(8)으로부터 생성된 색상 비디오 스트림은, 인코더(2)로부터 출력된 압축된 스트림에서 멀티플렉싱된다.
도 5는 포인트 클라우드의 재구성을 위한 인코더(2)에 대응하는 디코더(30)를 나타낸다.
디코더(30)에서, 인코더(2)로부터 출력된 압축된 스트림은, 깊이 비디오 스트림, 블록별 메타데이터 스트림, 패치별 메타데이터 스트림, 및 색상 비디오 스트림으로 디멀티플렉싱된다.
디코더(30)는, 3D-HEVC(그 명세가, ITU 웹사이트, T recommendation, H series, h265, https://www.itu.int/rec/T-REC-H.265-201802-I annex I에서 발견되는 HEVC의 확장판) 등의 레거시 디코더에 의한 깊이 비디오 디코딩을 포함하는 지오메트리 재구성 블록(31)을 포함한다.
이미지 재구성 블록(31)은 또한, 도 6에 상세히 설명된 이미지 재구성 블록(32)을 포함한다. 이 블록(32)은 다음을 포함한다:
재구성된 깊이 비디오 스트림으로부터의 시간 디인터리빙 재구성된 depthImage0 및 재구성된 depthImage1;
재구성된 depthImage0에 저장된 재구성된 D0 값 회수; 및
reconstructed_D0 + reconstructed_Delta_Depth를 이용하여 D1 값을 재구성, 여기서 reconstructed_Delta_Depth 값은 depthImage1에 저장된다.
이미지 재구성 블록(31)은 또한, 인코더(2)의 포인트 클라우드 지오메트리 재구성 블록(24)과 동일한 방식으로 동작하는 포인트 클라우드 지오메트리 재구성 블록(33)을 포함한다.
디코더(30)는 또한, 다음을 포함하는 메타데이터 재구성 블록(34)을 포함한다:
- 점유 맵 스트림을 디코딩하기 위한 점유 맵 디코딩 블록(35). 이 블록(35)으로부터 출력된 점유 맵은 깊이 이미지 재구성 블록(32)에 전송된다.
- 블록-대-패치 맵 스트림을 디코딩하기 위한 블록-대-패치 맵 디코딩 블록(36). 이 블록(36)으로부터 출력된 블록-대-패치 맵은, 포인트 클라우드 지오메트리 재구성 블록(33)에 전송된다.
- 패치별 메타데이터 스트림을 디코딩하기 위한 패치별 메타데이터 디코딩 블록(37). 이 블록(37)으로부터 출력된 패치별 메타데이터는 포인트 클라우드 지오메트리 재구성 블록(33)에 전송된다.
디코더(30)는, 3D-HEVC(그 명세가, ITU 웹사이트, T recommendation, H series, h265, https://www.itu.int/rec/T-REC-H.265-201802-I annex I에서 발견되는 HEVC의 확장판) 등의 레거시 디코더에 의한 텍스처 비디오 디코딩 스테이지를 포함하는 텍스처 재구성 프로세스를 더 포함한다.
텍스처 재구성 프로세스는 또한, 재구성된 패치별 및 블록별 메타데이터를 이용하여 텍스처 패치가 재구성되는 텍스처 패치 재구성 스테이지를 포함한다.
또한, 텍스처 재구성 프로세스는, 각각의 포인트를 재구성하는 픽셀의 위치를 이용하여 재구성된 텍스처 이미지로부터 각각의 재구성된 포인트의 색상을 가져오는 포인트 클라우드 텍스처 재구성 스테이지(35)를 포함한다.
도 1의 인코더 2의 무손실 변형이, 문서 ISO/IEC JTC1/SC29/WG11 MPEG2018/m42170, January 2018, Gwangju, Korea에서 제안되었다.
도 7에 나타낸 이 무손실 인코더(50)의 기본 아이디어는, 인코더(2)에 의해 구축된 접속된 컴포넌트에 의해 누락된 모든 포인트로 구성된 특별한 접속된 컴포넌트를 구성하는 것이다. 그 다음, 누락된 포인트 패치에 대응하는 추가 깊이 패치 및 추가 텍스처 패치가 깊이 및 텍스처 이미지에서 패킹된다.
2D 비디오 프레임 상으로 투사되지 않는 입력 포인트 클라우드 내의 포인트를 누락된 포인트라고 부른다. 이들 누락된 포인트는, 하나의 투사 라인을 따른 최소 및 최대 깊이 값을 갖는 2개의 포인트 사이에 위치한 포인트, 잡음이 있는 포인트로서 간주되는 포인트, 투사하기에 너무 작은 것으로 간주되는 컴포넌트에 속하는 포인트를 손상시킨다. 모든 누락된 포인트는, missedPointsPatch라고 불리는 특별한 접속된 컴포넌트를 구성한다. 모든 누락된 포인트의 (x, y, z) 좌표는, 별개로 저장되거나 다른 깊이 값과 함께 하나의 3D 비디오 프레임에 저장되는 하나의 2D 패치에 저장된다.
도 1과 도 7의 손실 및 무손실 코딩 모드 양쪽 모두에서, 패킹된 깊이 이미지와 텍스처 이미지 외에도, 압축된 비트스트림의 상당한 부분은 패킹된 이미지로부터 포인트 클라우드를 재구성하는데 도움이 되는 보조 정보를 포함하며, 다음을 포함한다:
● 법선 축, 법선 방향의 변위, 패킹된 이미지 상의 위치 등을 포함한 패치별 메타데이터,
● 패킹된 이미지의 각각의 블록이 어느 패치에 의해 점유되는지를 나타내는 블록-대-패치 맵, 및
● 픽셀이 점유되었는지 여부를 나타내는 점유 맵.
도 7의 무손실 포인트 클라우드 코딩에서, 다음과 같은 이유로 포인트 클라우드를 재구성하는데 점유 맵이 여전히 필요하다:
● 0과 동일한 코딩될 값을 가진 점유된 픽셀은, 0과 동일한 값을 역시 가질 수 있는 비점유된 픽셀과 구별될 필요가 있다.
● 압축 성능을 향상시키기 위해 패킹된 이미지의 비점유된 부분이 채워진다. 이 동작을 이미지 패딩이라고 부른다.
그러나, 점유 맵 자체는, 특히 무손실 모드에서, 압축되기에 대개는 너무 비싸다. 도 7의 무손실 인코더(50)에서, 점유 맵을 코딩하는 비용은 이미지 패딩이 가져다 주는 이득보다 훨씬 크다.
2016년 12월 21일 출원되고 EP3340629로서 공개된 유럽 특허 출원 n°16306764.8은, 코딩될 깊이 값에 풋룸(foot-room), 즉, 코드워드의 하위 2 비트를 예약하여 점유 맵을 저장할 것을 제안한다. 이것은, 소정 수의 비트들을 좌측으로 시프트하여, 예를 들어, 2 비트를 좌측으로 시프트하여, 코딩될 원래의 깊이 데이터를 업스케일링함으로써 달성된다. 그러나, 업스케일링 동작은 데이터 범위를 극적으로 증가시키므로, 깊이 이미지는 코딩하기에 훨씬 더 많이 비싸다.
무손실 코딩 모드의 경우, 이 업스케일링 동작은 점유 맵 코딩을 제거하는 과도한 솔루션이다. 또한, 업스케일링은 값 "0"을 갖는 점유된 픽셀과 비점유된 픽셀을 구별하는 문제를 해결하지 못한다.
이하에서는, 본 원리의 일부 양태에 대한 기본적인 이해를 제공하는 본 원리의 간략한 요약이다. 이 요약은 본 원리의 광범위한 개요는 아니다. 이것은, 본 원리의 핵심 또는 중요한 요소를 식별하기 위한 것도 아니다. 이하의 요약은 아래에서 제공되는 더 상세한 설명에 대한 서두로서 간략화된 형태로 본 원리의 일부 양태를 제공한다.
일반적으로 말하면, 본 개시내용은 상황을 개선하기 위한 솔루션을 제안한다.
본 개시내용은, 코딩될 데이터 범위를 변경하지 않고 유지하면서 점유 맵 코딩을 제거함으로써 디코딩 복잡성을 감소시키고 무손실 포인트 클라우드 코딩의 비트레이트를 절약할 것을 제안한다.
유리하게는, 점유 맵 코딩이 인코더 및 디코더 측 양쪽 모두에서 제거된다.
유리하게는, 점유 정보는, 예를 들어 다음과 같은 방식으로, 코딩될 깊이 이미지들 중 하나에 임베딩된다:
- 점유 정보가, 투사 라인을 따른 최소 깊이 값을 저장하는 DepthImg0에 임베딩된다면, 깊이 패치 생성 단계는, 코딩될 모든 깊이 값, 특히 깊이 D0이, 0보다 큰지 확인하도록 수정된다.
- 점유 정보가 DepthImg1에 임베딩된다면, DepthImg1이 투사 라인을 따른 최소 깊이 값과 최대 깊이 값 사이의 차이 delta_depth를 저장할 때, 코딩될 모든 delta_depth 값에 1이 추가된다.
- 점유 정보가 DepthImg1에 임베딩된다면, DepthImg1이 투사 라인을 따른 최대 깊이 값을 저장할 때, 깊이 패치 생성 단계는, 모든 깊이 값, 특히 깊이 D1이 0보다 큰지 확인하도록 수정된다.
따라서, 본 개시내용은 다음을 포함하는 방법을 제공한다:
- 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 획득하는 단계;
- 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 단계; 및
- 상기 이미지를 인코딩하는 단계.
본 개시내용은 또한, 다음을 위한 수단을 포함하는 디바이스를 제공한다:
- 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 결과적인 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 획득하기 위한 수단;
- 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하기 위한 수단; 및
- 상기 이미지를 인코딩하기 위한 수단.
유리하게는, 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 것은 저장될 깊이 정보를 시프트하는 것을 포함한다.
한 실시예에 따르면, 이 방법은 깊이 정보가 시프트되었음을 나타내는 정보를 전송하는 단계를 더 포함한다.
한 실시예에 따르면, 상기 이미지는 투사 평면으로부터 가장 작은 거리를 갖는 포인트 클라우드의 포인트의 깊이 정보를 저장한다.
한 실시예에 따르면, 상기 이미지는 투사 평면으로부터 가장 큰 거리를 갖는 포인트 클라우드의 포인트의 깊이 정보를 저장한다.
한 실시예에 따르면, 상기 이미지는, 투사 평면으로부터 가장 큰 거리를 갖는 포인트 클라우드의 포인트들의 깊이 정보와, 투사 평면으로부터 가장 작은 거리를 갖는 포인트 클라우드의 포인트들의 깊이 정보 사이의 차이를 나타내는 깊이 정보를 저장한다.
본 개시내용은 또한, 다음을 포함하는 방법을 제공한다:
- 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 저장하는 이미지를 디코딩하는 단계;
- 디코딩된 깊이 이미지로부터 점유 정보를 도출하는 단계 ― 상기 점유 정보는, 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 디코딩된 깊이 정보와 연관되어 있는지를 표시함 ―.
본 개시내용은 또한, 다음을 위한 수단을 포함하는 디바이스를 제공한다:
- 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 저장하는 이미지를 디코딩하기 위한 수단; 및
- 디코딩된 깊이 이미지로부터 점유 정보를 도출하하기 위한 수단 ― 상기 점유 정보는, 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 디코딩된 깊이 정보와 연관되어 있는지를 표시함 ―.
인코더/디코더 모듈은, 유리하게는, 인코더/디코더 내의 하나 이상의 프로세서에 의해 구현된다.
본 개시내용에 따른 방법은 프로그램가능한 장치 상의 소프트웨어로 구현될 수 있다. 이들은 하드웨어만으로 또는 소프트웨어만으로 또는 이들의 조합으로 구현될 수 있다.
본 발명은 소프트웨어로 구현될 수 있으므로, 본 발명은, 임의의 적합한 캐리어 매체 상에서 프로그램가능한 장치에 제공하기 위한 컴퓨터 판독가능한 코드로서 구현될 수 있다. 캐리어 매체는, 플로피 디스크, CD-ROM, 하드 디스크 드라이브, 자기 테이프 디바이스 또는 고체 상태 메모리 디바이스 등의 저장 매체를 포함할 수 있다.
따라서, 본 개시내용은 컴퓨터로 하여금 본 발명의 인코딩/디코딩 방법을 수행할 수 있게 하는 컴퓨터-실행가능한 명령어를 포함하는 컴퓨터 판독가능한 프로그램을 제공한다.
도면들에서, 본 원리의 예가 예시된다. 도면에서:
- 전술된 도 1은 인코더를 도시한다;
- 전술된 도 2는 도 1의 인코더의 깊이 패치 생성 프로세스를 나타낸다;
- 전술된 도 3은 도 1의 인코더의 이미지 생성 프로세스를 나타낸다.
- 전술된 도 4는 도 1의 인코더에서 이용된 서브블록 순회의 예를 도시한다;
- 전술된 도 5는 디코더를 도시한다;
- 전술된 도 6은 도 5의 디코더의 이미지 재구성 프로세스를 나타낸다;
- 도 7은 본 원리가 유리하게 구현될 수 있는 무손실 인코더를 도시한다;
- 도 8은 본 개시내용의 한 실시예에 따른 도 7의 무손실 인코더의 수정을 도시한다;
- 도 9는 본 개시내용의 한 실시예에 따른 도 5의 디코더의 수정을 도시한다;
- 도 10은 본 개시내용의 제1 실시예에 따른 수정된 지오메트리 압축 블록을 나타낸다;
- 도 11은 본 개시내용의 제2 실시예에 따른 수정된 지오메트리 압축 블록을 나타낸다;
- 도 12는 본 개시내용의 제3 실시예에 따른 수정된 지오메트리 압축 블록을 나타낸다;
- 도 13은 본 개시내용의 한 실시예에 따른 강화된-델타-깊이(enhanced-delta-depth)(EDD) 코드의 한 예를 나타낸다;
- 도 14는 본 개시내용의 제4 실시예에 따른 수정된 지오메트리 압축 블록을 나타낸다;
- 도 15는 본 개시내용의 제5 실시예에 따른 수정된 지오메트리 압축 블록을 나타낸다;
- 도 16은 본 원리의 한 예에 따른 디바이스의 아키텍처의 한 예를 도시한다;
- 도 17은 본 원리의 한 예에 따른 통신 네트워크를 통해 통신하는 2개의 원격 디바이스를 도시한다;
- 도 18은 본 원리의 한 예에 따른 신호의 신택스를 도시한다.
유사하거나 동일한 요소는 동일한 참조 번호로 참조된다.
본 원리가, 본 원리의 예가 도시되어 있는 첨부된 도면들을 참조하여 이하에서 더 완전하게 설명될 것이다. 그러나, 본 원리는 많은 다른 형태로 구현될 수 있으며, 본 명세서에서 개시된 예로 제한되는 것으로 해석되어서는 안된다. 따라서, 본 원리는 다양한 수정 및 대안적인 형태가 가능하지만, 그 특정한 예가 도면에서 예로서 도시되고 여기서 상세히 설명될 것이다. 그러나, 본 원리를 개시된 특정한 형태로 제한하려는 의도는 없지만, 한편으로, 본 개시내용은 청구항들에 의해 정의된 본 원리의 사상 및 범위 내에 있는 모든 수정, 균등물, 및 대안을 포함하는 것임을 이해해야 한다.
본 명세서에서 사용된 용어는 특정한 예를 설명하기 위한 목적으로만 이용되며 본 원리를 제한하려는 의도가 아니다. 본 명세서에서 사용될 때, 단수 형태, "a", "an", "the"는, 문맥상 명확하게 달리 표시하지 않는 한, 복수 형태도 역시 포함하는 것을 의도한다. 본 명세서에서 사용될 때 "포함하다", "포함하는", "내포하다" 및/또는 "내포하는"이라는 용어는, 언급된 피처, 완전체, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 피처, 완전체, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것을 이해할 것이다. 더욱이, 한 요소가 또 다른 요소에 "반응하는" 또는 "접속되는" 것으로 언급될 때, 그 요소는 다른 요소에 직접 반응 또는 접속될 수 있거나, 중간 요소가 존재할 수도 있다. 대조적으로, 한 요소가 다른 요소에 "직접 반응"하거나 "직접 접속되는" 것으로 언급될 때, 어떠한 중간 요소도 존재하지 않는다. 본 명세서에서 사용될 때, 용어 "및/또는"은 연관된 나열 항목들 중 하나 이상의 임의의 조합 및 모든 조합을 포함하며, "/"로 축약 표기될 수 있다.
용어, 제1, 제2 등이 다양한 요소들을 설명하기 위해 사용될 수도 있지만, 이들 요소들은 이들 용어에 의해 제한되어서는 안 된다는 것을 이해할 것이다. 이들 용어들은 한 요소를 또 다른 요소로부터 구분하기 위해서만 사용된다. 예를 들어, 본 원리의 교시를 벗어나지 않고, 제1 요소는 제2 요소라고 명명될 수 있고, 마찬가지로 제2 요소는 제1 요소라고 명명될 수 있다.
도면들 중 일부는 통신 경로 상에 화살표를 포함하여 통신의 1차 방향을 나타내지만, 통신은 도시된 화살표와는 반대 방향으로 발생할 수 있다는 것을 이해해야 한다.
일부 예는 블록도 및 동작 플로차트에 관하여 설명되며, 여기서, 각각의 블록은, 회로 요소, 모듈, 또는 명시된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능한 명령어를 포함하는 코드의 일부를 나타낸다. 다른 구현에서, 블록에서 언급된 기능(들)은 언급된 순서를 벗어나 발생할 수 있다는 점에도 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은, 사실상, 포함된 기능에 따라, 실질적으로 동시에 실행되거나, 블록들은 때때로 역순으로 실행될 수도 있다.
본 명세서에서 "한 예에 따라" 또는 "한 예에서"라는 언급은, 그 예와 관련하여 설명된 특정한 피처, 구조 또는 특성이 본 원리의 적어도 하나의 구현에 포함될 수 있다는 것을 의미한다. 명세서의 다양한 곳에서 "한 예에 따른" 또는 "한 예에서"라는 문구의 등장은, 반드시 모두 동일한 예를 지칭하는 것은 아니며, 반드시 다른 예를 서로 배제하는 별개의 또는 대안적인 예도 아니다.
청구항들에 나타나는 참조 번호들은 단지 예시를 위한 것이며, 청구항의 범위에 어떠한 제한적인 영향을 미쳐서는 안 된다.
명시적으로 설명되지는 않았지만, 본 예와 그 변형들은 임의의 조합 또는 하위-조합으로 채용될 수도 있다.
본 원리는 채색된 포인트 클라우드를 인코딩/디코딩하기 위해 설명되지만, 시퀀스의 각각의 채색된 포인트 클라우드가 아래에서 설명된 바와 같이 순차적으로 인코딩/디코딩되기 때문에 채색된 포인트 클라우드 시퀀스의 인코딩/디코딩으로 확장된다.
한 실시예에 따르면, 이미 설명된 무손실 인코더(50) 및 디코더(30)는 본 원리의 구현에 이용된다.
본 개시내용의 한 실시예에 따른 수정된 무손실 인코더(51)를 나타내는 도 8에 명확하게 나타난 바와 같이, 점유 맵 코딩이 제거되었다. 대신에, 점유 정보는 코딩될 깊이 이미지에 임베딩되고, 링크(52)는 유리하게는 이미지 생성 블록(14)과 메타데이터 압축 블록(6) 사이에 생성된다.
대응적으로, 디코더(30)를 나타내는 도 9에 나타난 바와 같이, 디코더(30)에 의해 수신된 압축된 스트림에는 어떠한 점유 맵 스트림도 없고 점유 맵(35)의 디코딩 블록이 억제된다.
이미지 생성 블록(14)을 나타내는 도 3을 참조하여 설명된 바와 같이, 압축된 비트스트림에서, 각각의 투사 라인을 따라 최소 및 최대 깊이 값을 생성하는 2개의 포인트가 기록된다. 대응적으로, 인코더(51)는, 각각의 포인트 클라우드 프레임에 대해 2개의 깊이 이미지 DepthImg0 및 DepthImg1을 인코딩한다. 각각의 투사 라인을 따른 절대 최소 깊이 값과 투사 라인이 속하는 접속된 컴포넌트의 최소 깊이 값 사이의 차이인 상대 최소 깊이 값(D0)은 DepthImg0에서 시그널링되는 반면 DeltaD=(D1-D0)은 DepthImg1에서 시그널링된다, 여기서 D1은 상대 최대 깊이 값, 즉, 각각의 투사 라인을 따른 절대 최대 깊이 값과 투사 라인이 속하는 접속된 컴포넌트의 최소 깊이 값 사이의 차이이다.
각각의 패치의 최소 깊이 값은 패치별 메타데이터에서 시그널링된다는 점에 유의할 가치가 있다.
도 10에 나타난 제1 실시예에 따르면, 점유 정보는 DepthImg0에 임베딩된다.
모든 D0 값을 0보다 크게 만들고 DepthImg0의 패딩 단계(20)를 제거함으로써, 도 3에 표시된 바와 같이, 무손실 디코딩된 D0 값도 역시 점유 정보를 드러낼 수 있다.
모든 D0 값을 0보다 크게 만들기 위해, 깊이 패치 검증 블록(54)이 추가된다. 이 새로운 블록은 2개의 스테이지를 포함한다.
제1 스테이지 동안에, 접속된 컴포넌트는 필요하다면 분할된다. D0 깊이 패치가 가장 큰 가능한 범위 [0, N-1]보다 큰 데이터 범위를 갖는다면, 대응하는 접속된 컴포넌트는 2개로 분할된다. N의 값은 코딩 비트에 의존한다. 8 비트 HEVC가 이용된다면, N = 255이다. 10 비트 HEVC가 이용된다면, N = 1023이다.
그 다음, 제2 스테이지 동안에, 각각의 D0 패치에 대해, 코딩될 D0 값 또는 D0 패치의 최소 깊이 값이 다음과 같은 프로세스에 따라 변환된다:
● D0 패치 또는 대응하는 접속된 컴포넌트의 최소 깊이가 0보다 크다면, 현재 최소 패치 깊이가 1만큼 감소된다. 결과적으로, 코딩될 모든 관련 D0 값에 1이 추가된다. 이 경우, 재구성된 D0 값을 포인트 클라우드 지오메트리 재구성에 이용하기 전에 변경할 필요가 없다.
● D0 패치 또는 대응하는 접속된 컴포넌트의 최소 깊이가 이미 0이라면, 현재 최소 패치 깊이가 변경되지 않은 상태로 유지된다. 그 다음, 현재의 D0 패치의 코딩될 모든 D0 값에 1이 추가된다. 이 경우, 포인트 클라우드 지오메트리를 재구성하기 전에 재구성된 D0 값을 1만큼 감소시킬 필요가 있다.
필요하다면, 패치 당, 즉, 접속된 컴포넌트 당 1 비트가 추가되어 재구성된 D0 값이 이용되기 전에 수정될 필요가 있는지를 나타낸다.
도 11에 나타낸 제2 실시예에 따르면, 점유 정보는 DeltaD 값을 저장할 때 DepthImg1에 임베딩된다.
이 실시예에 따르면, 코딩될 모든 DeltaD 값은 56에서 DpethImg1을 패킹하기 전에 1만큼 증가된다. 많은 수의 점유된 픽셀의 DelatD 값이 0이므로, 코딩 전에 DeltaD의 변환 스테이지(58)가 추가된다. 대응적으로, 재구성된 DeltaD 값은 디코더 측에서 포인트 클라우드를 재구성하는데 이용되기 전에 1만큼 감소된다.
도 12에 나타낸 제3 실시예에 따르면, 점유 정보는 최대 깊이 값 D1을 저장할 때 DepthImg1에 임베딩된다.
모든 D1 값을 0보다 크게 만들고 DepthImg1의 패딩 단계를 제거함으로써, 무손실 디코딩된 D1 값도 역시 점유 정보를 드러낼 수 있다.
모든 D1 값을 0보다 크게 만들기 위해, 깊이 패치 검증 블록(60)이 추가된다. 이 새로운 블록은 2개의 스테이지를 포함한다.
제1 스테이지 동안에, 접속된 컴포넌트는 필요하다면 분할된다. D1 깊이 패치가 가장 큰 가능한 범위 [0, N-1]보다 큰 데이터 범위를 갖는다면, 대응하는 접속된 컴포넌트는 2개로 분할된다. N의 값은 코딩 비트에 의존한다. 8 비트 HEVC가 이용된다면, N = 255이다. 10 비트 HEVC가 이용된다면, N = 1023이다.
그 다음, 제2 스테이지 동안에, 각각의 D1 패치에 대해, 코딩될 D1 값이 다음과 같은 프로세스에 따라 변환된다:
● D1 패치에서 코딩될 최소 D1이 0보다 크다면, 재구성된 D1 값을 포인트 클라우드 지오메트리 재구성에 이용하기 전에 변경할 필요가 없다.
● D1 패치에서 코딩될 최소 D1이 0이면, 현재의 D1 패치의 코딩될 모든 D1 값에 1이 추가된다. 이 경우, 포인트 클라우드 지오메트리를 재구성하기 전에 재구성된 D1 값을 1만큼 감소시킬 필요가 있다.
패치 당, 즉, 접속된 컴포넌트 당 1 비트가 추가되어 재구성된 D1 값이 이용되기 전에 수정될 필요가 있는지를 나타낸다.
또 다른 가능성은, 도 13에 나타낸 바와 같이, DeltaD 또는 D1 대신에, 깊이 D0과 깊이 D1 사이의 투사 라인을 따른 각각의 위치 ― 이 위치가 점유되어 있든 아니든 관계없이 ― 를 나타내는 비트를 연결하는 코드워드인 EDD(Enhanched-delta-depth) 코드를 DepthImg1에 저장하는 것이다.
도 14에 나타낸 제4 실시예에 따르면, 점유 정보는 제1 실시예에서 설명한 것과 동일한 방식으로 DepthImg0에 임베딩되고, DepthImg1은 이들 EDD 코드를 저장한다.
도 15에 나타낸 제5 실시예에 따르면, 점유 정보는 EDD 코드를 저장할 때 DepthImg1에 임베딩된다. 이 실시예에 따르면, 코딩될 모든 EDD 코드는 62에서 DepthImg1을 패킹하기 전에 1만큼 증가된다. 점유된 픽셀의 EDD 코드의 대부분이 0이므로, 코딩 전 EDD 코드의 변환 스테이지(64)가 추가된다. 대응적으로, 재구성된 EDD 코드는 디코더 측에서 포인트 클라우드를 재구성하는데 이용되기 전에 1만큼 감소된다.
유리하게는, 다음과 같은 메타데이터가, 도 7의 인코더(50)와 비교하여, 인코더(51)에 의해 출력되는 비트스트림에 추가된다:
● 점유 맵이 비트스트림에서 시그널링되는지 여부를 나타내는 1 비트. 예를 들어, 1은 예를 의미하고 0은 아니오를 의미한다.
● 첫 번째 비트가 0과 같다면, 어떤 깊이 이미지가 점유 정보를 포함하는지 나타내는 1 비트. 예를 들어, 0은 DepthImg0을 의미하고 1은 DepthImg1을 의미한다.
● DepthImg1에 어떤 데이터가 저장되어 있는지를 나타내는 여러 개의 비트. 예를 들어, 2비트로서, 0은 DepthImg1이 D1을 저장함을 의미하고, 1은 DepthImg1이 DeltaD = D1-D0을 저장함을 의미하며, 2는 DepthImg1이 EDD 코드를 저장함을 의미한다.
● DepthImg0이 점유 정보를 운반하는 경우, 패치별 1 비트 메타데이터가 패치별 메타데이터와 함께 시그널링되는지를 나타내는, 즉, 현재 패치의 재구성된 D0 값이 포인트 클라우드 지오메트리를 재구성하는데 이용하기 전에 수정될 필요가 있는지의 여부를 나타내는 1 비트.
● DepthImg1이 점유 정보를 운반하고 DepthImg1이 D1 값을 저장한다면, 현재 패치의 재구성된 D1 값이 포인트 클라우드 지오메트리를 재구성하는데 이용되기 전에 수정될 필요가 있는지의 여부를 나타내는 1 비트 패치별 메타데이터.
상기 새로운 메타데이터는 전체 비트스트림에 대해 한 번 또는 함께 압축되는 각각의 프레임 또는 각각의 프레임 그룹에 대해 여러 번 시그널링될 수 있으므로, 각각의 프레임 또는 프레임 그룹에 대해 상이한 코딩 방식의 선택을 허용한다. 상기 메타데이터의 데이터 필드(들) 기록 값(들)은, 압축된 비트스트림(들)으로 직접 출력되거나, 압축된 비트스트림(들)으로의 출력 전에 추가 엔트로피 코딩될 수 있다.
도 9의 디코더(30)는 도 10 내지 도 15를 참조하여 설명된 인코더(51)의 실시예에 따라 수정된다.
점유 정보가 DepthImg0에 임베딩되는 제1 실시예의 경우, 점유 맵은 다음에 따라 생성된다:
Figure pct00001
또한, 깊이 패치는 필요할 때마다 D0 값을 1만큼 감소시킴으로써 재구성된다.
점유 정보가 DepthImg1에 임베딩되는 제2 실시예의 경우, 점유 맵은 다음에 따라 생성된다:
Figure pct00002
또한, 모든 DeltaD 값을 1만큼 감소시킴으로써 깊이 패치가 재구성된다.
점유 정보가 DepthImg1에 임베딩되고 DepthImg1이 D1 값을 저장하는 제3 실시예의 경우, 점유 맵은 다음에 따라 생성된다:
Figure pct00003
D1 깊이 패치는 필요하다면 관련 D1 값을 1만큼 감소시킴으로써 재구성된다.
점유 정보가 DepthImg0에 임베딩되는 제4 실시예의 경우, 점유 맵은 다음에 따라 생성된다:
Figure pct00004
또한, 깊이 패치는, 필요할 때마다 D0 값을 1만큼 감소시키고 EDD 코드로부터서 깊이 값을 재구성함으로써 재구성된다.
점유 정보가 DepthImg1에 임베딩되는 제5 실시예의 경우, 점유 맵은 다음에 따라 생성된다:
Figure pct00005
또한, 깊이 패치는, 모든 EDD 코드를 1만큼 감소시킴으로써 재구성된다.
도 1 내지 도 15에서, 모듈은 기능 유닛으로서, 구별가능한 물리적 유닛과 관련이 있을 수도 있고 그렇지 않을 수도 있다. 예를 들어, 이들 모듈 또는 이들 중 일부는 고유한 컴포넌트 또는 회로에서 함께 통합되거나 소프트웨어 기능에 기여할 수 있다. 반대로, 일부 모듈은 잠재적으로 별개의 물리적 엔티티로 구성될 수 있다. 본 원리와 호환되는 장치는 순수 하드웨어를 이용하여, 예를 들어 각각 ≪Application Specific Integrated Circuit≫, ≪Field-Programmable Gate Array≫, ≪Very Large Scale Integration≫을 의미하는 ASIC 또는 FPGA 또는 VLSI 등의 전용 하드웨어를 이용하여, 또는 디바이스에 임베딩된 여러 집적된 전자 컴포넌트로, 또는 하드웨어와 소프트웨어 컴포넌트의 혼합으로 구현된다.
도 16은 도 1 내지 도 15과 관련하여 설명된 방법을 구현하도록 구성될 수 있는 디바이스(1100)의 예시적인 아키텍처를 나타낸다.
디바이스(1100)는 데이터 및 주소 버스(1101)에 의해 함께 링크되는 다음과 같은 요소들을 포함한다:
- 예를 들어 DSP(또는 디지털 신호 프로세서)인 마이크로프로세서(1102)(또는 CPU);
- ROM(또는 판독 전용 메모리)(1103);
- RAM(또는 랜덤 액세스 메모리)(1104);
- 애플리케이션으로부터의, 전송할 데이터의 수신을 위한 I/O 인터페이스(1105); 및
- 배터리(1106).
한 예에 따르면, 배터리(1106)는 디바이스 외부에 있다. 언급된 각각의 메모리에서, 본 명세서에서 사용된 ≪레지스터(register)≫라는 용어는, 작은 용량의 영역(일부 비트) 또는 매우 큰 영역(예를 들어, 전체 프로그램 또는 많은 양의 수신되거나 디코딩된 데이터)에 대응할 수 있다. ROM(1103)은 적어도 하나의 프로그램 및 파라미터를 포함한다. ROM(1103)은 본 원리에 따른 기술을 수행하기 위한 알고리즘 및 명령어를 저장할 수 있다. 스위치 온될 때, CPU(1102)는 프로그램을 RAM에 업로드하고 대응하는 명령어를 실행한다.
RAM(1104)은, 레지스터에서, CPU(1102)에 의해 실행되고 디바이스(1100)의 스위치 온 후에 업로드되는 프로그램, 레지스터에서 입력 데이터, 레지스터에서 방법의 상이한 상태들의 중간 데이터, 및 레지스터에서 방법의 실행에 이용되는 기타의 변수를 포함한다.
여기서 설명된 구현들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의되었지만(예를 들어, 방법 또는 디바이스로서만 논의되었지만), 논의된 피처들의 구현은 다른 형태(예를 들어, 프로그램)로도 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수도 있다. 방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능한 로직 디바이스를 포함한, 일반적으로 처리 디바이스를 지칭하는, 예를 들어 프로세서 등의 장치로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 전화기들, "PDA"(portable/personal digital assistant)들, 및 엔드 유저들간 정보의 통신을 용이화하는 기타의 디바이스들 등의, 통신 디바이스들을 포함한다.
인코딩 또는 인코더의 한 예에 따르면, 입력 포인트 클라우드는 소스로부터 획득된다. 예를 들어, 소스는 다음을 포함하는 세트에 속한다:
- 로컬 메모리(1103 또는 1104), 예를 들어, 비디오 메모리 또는 RAM(또는 랜덤 액세스 메모리), 플래시 메모리, ROM(또는 판독 전용 메모리), 하드 디스크;
- 스토리지 인터페이스(1105), 예를 들어, 대용량 스토리지, RAM, 플래시 메모리, ROM, 광 디스크 또는 자기 디스크 지원을 갖춘 인터페이스;
- 통신 인터페이스(1105), 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 근거리 통신망 인터페이스) 또는 (IEEE 802.11 인터페이스 또는 Bluetooth® 인터페이스 등의) 무선 인터페이스; 및
- 이미지 캡처 회로(예컨대, 예를 들어, CCD(즉, Charge-Coupled Device) 또는 CMOS(즉, Complementary Metal-Oxide-Semiconductor) 등의 센서).
디코딩 또는 디코더의 한 예에 따르면, 디코딩된 포인트 클라우드는 목적지에 전송된다; 구체적으로, 목적지는 다음을 포함하는 세트에 속한다:
- 로컬 메모리(1103 또는 1104), 예를 들어, 비디오 메모리 또는 RAM, 플래시 메모리, 하드 디스크;
- 스토리지 인터페이스(1105), 예를 들어, 대용량 스토리지, RAM, 플래시 메모리, ROM, 광 디스크 또는 자기 디스크 지원을 갖춘 인터페이스;
- 통신 인터페이스(1105), 예를 들어, 유선 인터페이스(예를 들어, 버스 인터페이스(예를 들어, USB(즉, Universal Serial Bus)), 광역 네트워크 인터페이스, 근거리 통신망 인터페이스, HDMI(High Definition Multimedia Interface) 인터페이스) 또는 (IEEE 802.11 인터페이스, WiFi® 또는 Bluetooth® 인터페이스 등의) 무선 인터페이스;
- 렌더링 디바이스; 및
- 디스플레이.
인코딩 또는 인코더의 예에 따르면, 비트스트림(압축된 스트림)이 목적지에 전송된다. 예를 들어, 비트스트림은, 로컬 또는 원격 메모리, 예를 들어, 비디오 메모리(1104) 또는 RAM(1104), 하드 디스크(1103)에 저장된다. 한 변형에서, 비트스트림은, 스토리지 인터페이스(1105)에, 예를 들어, 대용량 스토리지, 플래시 메모리, ROM, 광 디스크 또는 자기 지원을 갖춘 인터페이스에 전송되거나, 및/또는 통신 인터페이스(1105)를 통해, 포인트 대 포인트 링크, 통신 버스, 포인트 대 다중 포인트 링크 또는 브로드캐스트 네트워크에 대한 인터페이스를 통해 전송된다.
디코딩 또는 디코더의 예에 따르면, 비트스트림(압축된 스트림)은 소스로부터 획득된다. 예시적으로, 비트스트림은, 로컬 메모리로부터, 예를 들어, 비디오 메모리(1104), RAM(1104), ROM(1103), 플래시 메모리(1103) 또는 하드 디스크(1103)로부터 판독된다. 한 변형에서, 비트스트림은, 스토리지 인터페이스(1105)로부터, 예를 들어, 대용량 스토리지, RAM, ROM, 플래시 메모리, 광 디스크 또는 자기 지원을 갖춘 인터페이스로부터 수신되거나, 및/또는 통신 인터페이스(1105)로부터, 예를 들어, 포인트 대 포인트 링크, 버스, 포인트 대 다중 포인트 링크 또는 브로드캐스트 네트워크에 대한 인터페이스로부터 수신된다.
예에 따르면, 도 1 및 도 9와 관련하여 설명된 인코딩 방법을 구현하도록 구성된 디바이스(1100)는 다음을 포함하는 세트에 속한다:
- 모바일 디바이스;
- 3D 캡처 능력을 갖춘 스마트폰 또는 TV 세트;
- 통신 디바이스;
- 게임 디바이스;
- 태블릿(또는 태블릿 컴퓨터);
- 랩탑;
- 스틸 이미지 카메라;
- 비디오 카메라;
- 인코딩 칩;
- 스틸 이미지 서버; 및
- 비디오 서버(예를 들어, 브로드캐스트 서버, 주문형 비디오 서버 또는 웹 서버).
예에 따르면, 도 3 및 도 10과 관련하여 설명된 디코딩 방법을 구현하도록 구성된 디바이스(1100)는 다음을 포함하는 세트에 속한다:
- 모바일 디바이스;
- HMD(Head Mounted Display);
- (혼합 현실) 스마트안경;
- 홀로그래픽 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 셋탑 박스;
- TV 세트;
- 태블릿(또는 태블릿 컴퓨터);
- 랩탑;
- 디스플레이;
- 입체 디스플레이; 및
- 디코딩 칩.
도 17에 나타낸 본 원리의 한 예에 따르면, 통신 네트워크 NET을 통한 2개의 원격 디바이스 A와 B 사이의 전송 정황에서, 디바이스 A는 도 8과 관련하여 설명된 채색된 포인트 클라우드를 인코딩하기 위한 방법을 구현하도록 구성된 메모리 RAM 및 ROM과 관련된 프로세서를 포함하고, 디바이스 B는 도 9와 관련하여 설명된 디코딩하기 위한 방법을 구현하도록 구성된 메모리 RAM 및 ROM과 관련된 프로세서를 포함한다.
한 예에 따르면, 네트워크는, 인코딩된 채색된 포인트 클라우드를 디바이스 A로부터 디바이스 B를 포함하는 디코딩 디바이스에 브로드캐스트하도록 구성된 브로드캐스트 네트워크이다.
디바이스 A에 의해 전송되도록 의도된 신호는 비트스트림을 운반한다.
도 18은, 데이터가 패킷-기반의 전송 프로토콜을 통해 전송될 때 이러한 신호의 신택스의 한 예를 도시한다. 각각의 전송된 패킷 P는, 헤더 H와 페이로드 PAYLOAD를 포함한다.
여기서 설명된 다양한 프로세스 및 피처의 구현은 다양한 상이한 장비 또는 애플리케이션으로 구현될 수 있다. 이러한 장비의 예는, 인코더, 디코더, 디코더로부터의 출력을 처리하는 포스트 프로세서, 인코더에 입력을 제공하는 프리 프로세서 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋탑 박스, 랩탑, 개인용 컴퓨터, 셀 전화, PDA, HMD, 스마트 안경, 및 이미지 또는 비디오를 처리하기 위한 기타 임의의 디바이스 또는 기타의 통신 디바이스를 포함한다. 명백한 바와 같이, 장비는 이동형이거나 이동 차량에 설치될 수도 있다.
추가적으로, 방법은, 프로세서에 의해 수행되는 명령어에 의해 구현될 수 있고, 이러한 명령어(및/또는 구현에 의해 생성된 데이터 값)는 컴퓨터 판독가능한 저장 매체에 저장될 수 있다. 컴퓨터 판독가능한 저장 매체는, 하나 이상의 컴퓨터판독가능한 매체(들)로 구현되고 컴퓨터에 의해 실행가능한 컴퓨터 판독가능한 프로그램 코드가 구현되어 있는 컴퓨터판독가능한 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 이용되는 컴퓨터판독가능한 저장 매체는, 내부에 정보를 저장하는 고유 능력뿐만 아니라 정보 회수를 제공하는 고유 능력을 고려하여 비일시적인 저장 매체로서 간주된다. 컴퓨터 판독가능한 저장 매체는, 예를 들어, 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만, 이것으로 제한되는 것은 아니다. 이하에서는, 본 원리가 적용될 수 있는 컴퓨터 판독가능한 저장 매체의 더 구체적인 예를 제공하지만, 본 기술분야의 통상의 기술자라면 용이하게 이해하는 바와 같이, 이들은 단지 예시적인 것이고 빠짐없는 철저한 목록은 아님을 이해해야 한다: 휴대형 컴퓨터 디스켓; 하드 디스크; 판독 전용 메모리(ROM); 소거가능하고 프로그램가능한 판독 전용 메모리(EPROM 또는 플래시 메모리); 휴대형 컴팩트 디스크 판독 전용 메모리(CD-ROM); 광 저장 디바이스; 자기 저장 디바이스; 또는 이들의 임의의 적절한 조합.
명령어는 프로세서-판독가능한 매체에 유형적으로 구현된 애플리케이션 프로그램을 형성할 수 있다.
명령어는, 예를 들어, 하드웨어, 펌웨어, 소프트웨어 또는 조합일 수 있다. 명령어는, 예를 들어, 운영 체제, 별개의 애플리케이션, 또는 이들 둘의 조합에서 찾을 수 있다. 따라서, 프로세서는, 예를 들어 프로세스를 실행하도록 구성된 디바이스 및 프로세스를 실행하기 위한 명령어를 갖는 (저장 디바이스 등의) 프로세서-판독가능한 매체를 포함하는 디바이스 양쪽 모두로서 특징규정될 수 있다. 또한, 프로세서-판독가능한 매체는, 명령어에 추가하여 또는 명령어 대신에, 구현에 의해 생성된 데이터 값을 저장할 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현은, 예를 들어, 저장되거나 전송될 수 있는 정보를 운반하도록 포맷된 다양한 신호를 생성할 수 있다. 이 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 본 원리의 설명된 예의 신택스를 기입하거나 판독하기 위한 규칙을 데이터로서 운반하거나, 본 원리의 설명된 예에 의해 기입된 실제 신택스 값을 데이터로서 운반하도록 포맷팅될 수 있다. 이러한 신호는, 예를 들어 전자기파(예를 들어, 스펙트럼의 무선 주파수 부분을 이용) 또는 기저대역 신호로서 포맷될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 캐리어를 인코딩된 데이터 스트림으로 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 공지된 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 전송될 수 있다. 신호는 프로세서-판독가능한 매체에 저장될 수 있다.
다수의 구현이 설명되었다. 그럼에도 불구하고, 다양한 수정이 이루어질 수 있다는 점을 이해할 것이다. 예를 들어, 상이한 구현들의 요소들이 결합, 보완, 수정 또는 제거되어 다른 구현을 생성할 수 있다. 추가적으로, 통상의 기술자라면, 다른 구조 및 프로세스가 개시된 것들을 대체할 수 있고, 결과적인 구현은 적어도 실질적으로 동일한 기능(들)을 적어도 실질적으로 동일한 방식(들)으로 수행하여, 개시된 구현과 적어도 실질적으로 동일한 결과(들)를 달성할 것임을 이해할 것이다. 따라서, 이들 및 다른 구현들은 본 출원에 의해 고려된다.

Claims (14)

  1. 방법으로서,
    - 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 획득하는 단계;
    - 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 단계; 및
    - 상기 이미지를 인코딩하는 단계
    를 포함하는 방법.
  2. 디바이스로서,
    - 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 결과적인 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 획득하고;
    - 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하며;
    - 상기 이미지를 인코딩하기 위한
    수단을 포함하는 디바이스.
  3. 제1항의 방법 또는 제2항의 디바이스에 있어서, 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 것은, 저장될 상기 깊이 정보를 시프트하는 것을 포함하는, 방법 또는 디바이스.
  4. 제3항의 방법 또는 디바이스에 있어서, 상기 방법은 상기 깊이 정보가 시프트되었음을 나타내는 정보를 전송하는 단계를 더 포함하는, 방법 또는 디바이스.
  5. 제3항의 방법 또는 디바이스에 있어서, 상기 이미지는 상기 투사 평면으로부터 가장 작은 거리들을 갖는 상기 포인트 클라우드의 포인트들의 깊이 정보를 저장하는, 방법 또는 디바이스.
  6. 제3항의 방법 또는 디바이스에 있어서, 상기 이미지는 상기 투사 평면으로부터 가장 큰 거리들을 갖는 상기 포인트 클라우드의 포인트들의 깊이 정보를 저장하는, 방법 또는 디바이스.
  7. 제3항의 방법 또는 디바이스에 있어서, 상기 이미지는 상기 투사 평면으로부터 가장 큰 거리들을 갖는 상기 포인트 클라우드의 포인트들의 깊이 정보와, 상기 투사 평면으로부터 가장 작은 거리들을 갖는 상기 포인트 클라우드의 포인트들의 깊이 정보 사이의 차이를 나타내는 깊이 정보를 저장하는, 방법 또는 디바이스.
  8. 방법으로서,
    - 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 저장하는 이미지를 디코딩하는 단계;
    - 상기 디코딩된 깊이 이미지로부터 점유 정보를 도출하는 단계 ― 상기 점유 정보는 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 디코딩된 깊이 정보와 연관되어 있는지를 표시함 ―
    를 포함하는 방법.
  9. 디바이스로서,
    - 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 저장하는 이미지를 디코딩하고;
    - 상기 디코딩된 깊이 이미지로부터 점유 정보를 도출하기 위한 ― 상기 점유 정보는 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 디코딩된 깊이 정보와 연관되어 있는지를 표시함 ―
    수단을 포함하는 디바이스.
  10. 제8항의 방법 또는 제9항의 디바이스에 있어서, 상기 방법은 상기 깊이 정보가 시프트되어야 하는지를 나타내는 정보를 수신하고, 상기 수신된 정보에 따라 상기 디코딩된 깊이 정보를 시프트하는 단계를 더 포함하고, 또는 상기 디바이스는 이렇게 하기 위한 수단을 더 포함하는, 방법 또는 디바이스.
  11. 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 포함하는 비트스트림을 운반하는 신호로서, 상기 깊이 정보는 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 임베딩하는, 신호.
  12. 명령어들을 포함하는 비일시적인 프로세서-판독가능한 매체로서, 상기 명령어들은 하나 이상의 프로세서로 하여금:
    - 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 획득하는 단계;
    - 상기 깊이 정보를 저장하는 이미지에 상기 점유 정보를 임베딩하는 단계;
    - 상기 이미지를 인코딩하는 단계
    를 수행하게 하는, 비일시적인 프로세서-판독가능한 매체.
  13. 명령어들을 포함하는 비일시적인 프로세서-판독가능한 매체로서, 상기 명령어들은 하나 이상의 프로세서로 하여금:
    - 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 저장하는 이미지를 디코딩하는 단계;
    - 상기 디코딩된 깊이 이미지로부터 점유 정보를 도출하는 단계 ― 상기 점유 정보는 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 디코딩된 깊이 정보와 연관되어 있는지를 표시함 ―
    를 수행하게 하는, 비일시적인 프로세서-판독가능한 매체.
  14. 투사 평면 상으로의 포인트 클라우드의 적어도 하나의 포인트의 직교 투사의 깊이 정보를 포함하는 비일시적인 컴퓨터-판독가능한 매체로서, 상기 깊이 정보는 상기 투사 평면에 관해 정의된 2D 규칙적인 격자의 블록들이 상기 깊이 정보와 연관되어 있는지를 나타내는 점유 정보를 임베딩하는, 비일시적인 컴퓨터-판독가능한 매체.
KR1020207028658A 2018-04-11 2019-04-03 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치 KR20200140824A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP18305431.1 2018-04-11
EP18305431 2018-04-11
EP18306132.4 2018-08-23
EP18306132.4A EP3614672A1 (en) 2018-08-23 2018-08-23 A method and apparatus for encoding/decoding a point cloud representing a 3d object
PCT/US2019/025485 WO2019199531A1 (en) 2018-04-11 2019-04-03 A method and apparatus for encoding/decoding a point cloud representing a 3d object

Publications (1)

Publication Number Publication Date
KR20200140824A true KR20200140824A (ko) 2020-12-16

Family

ID=66102830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028658A KR20200140824A (ko) 2018-04-11 2019-04-03 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US20210183109A1 (ko)
EP (1) EP3777182A1 (ko)
JP (1) JP7431742B2 (ko)
KR (1) KR20200140824A (ko)
CN (1) CN111971967A (ko)
CA (1) CA3096819A1 (ko)
SG (1) SG11202008973TA (ko)
WO (1) WO2019199531A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210266575A1 (en) * 2018-07-18 2021-08-26 Telefonaktiebolaget Lm Ericsson (Publ) Video-based coding of point cloud occcupancy map
KR102640235B1 (ko) * 2019-01-11 2024-02-23 삼성전자주식회사 3차원 데이터 부호화 방법 및 장치 및 3차원 데이터 복호화 방법 및 장치
US11823421B2 (en) * 2019-03-14 2023-11-21 Nokia Technologies Oy Signalling of metadata for volumetric video
CN113785590A (zh) * 2019-05-10 2021-12-10 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
WO2020242077A1 (ko) * 2019-05-30 2020-12-03 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
US11315289B2 (en) * 2019-09-30 2022-04-26 Nokia Technologies Oy Adaptive depth guard band
US20210211703A1 (en) * 2020-01-07 2021-07-08 Apple Inc. Geometry information signaling for occluded points in an occupancy map video
US11430179B2 (en) 2020-02-24 2022-08-30 Microsoft Technology Licensing, Llc Depth buffer dilation for remote rendering
US11417063B2 (en) * 2020-09-01 2022-08-16 Nvidia Corporation Determining a three-dimensional representation of a scene
US11606556B2 (en) * 2021-07-20 2023-03-14 Tencent America LLC Fast patch generation for video based point cloud coding
WO2023050432A1 (zh) * 2021-09-30 2023-04-06 浙江大学 编解码方法、编码器、解码器以及存储介质
CN115904294B (zh) * 2023-01-09 2023-06-09 山东矩阵软件工程股份有限公司 一种环境可视化方法、系统、存储介质和电子设备
US11710258B1 (en) 2023-01-25 2023-07-25 Illuscio, Inc. Systems and methods for compressing three-dimensional image data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450823B1 (ko) * 2001-11-27 2004-10-01 삼성전자주식회사 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조
US20110007072A1 (en) * 2009-07-09 2011-01-13 University Of Central Florida Research Foundation, Inc. Systems and methods for three-dimensionally modeling moving objects
JP2014112748A (ja) * 2011-03-18 2014-06-19 Sharp Corp 画像符号化装置および画像復号装置
US11509880B2 (en) * 2012-11-14 2022-11-22 Qualcomm Incorporated Dynamic adjustment of light source power in structured light active depth sensing systems
GB2516424A (en) * 2013-07-15 2015-01-28 Nokia Corp A method, an apparatus and a computer program product for video coding and decoding
CN106662749B (zh) * 2014-07-15 2020-11-10 奥斯坦多科技公司 用于全视差光场压缩的预处理器
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds
US9530215B2 (en) * 2015-03-20 2016-12-27 Qualcomm Incorporated Systems and methods for enhanced depth map retrieval for moving objects using active sensing technology
US10165275B2 (en) * 2016-01-26 2018-12-25 Dolby Laboratories Licensing Corporation Content-adaptive reshaping for high dynamic range images
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
EP3301926A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing A method and a device for reconstructing a point cloud representative of a scene using light-field data
EP3340629A1 (en) 2016-12-21 2018-06-27 Thomson Licensing Method and apparatus for embedding key information in an image
CN107025673B (zh) * 2017-04-11 2020-02-21 太原科技大学 虚拟结构光3d数据压缩算法的局部误差抑制方法
TWI815842B (zh) * 2018-01-16 2023-09-21 日商索尼股份有限公司 影像處理裝置及方法

Also Published As

Publication number Publication date
CA3096819A1 (en) 2019-10-17
US20210183109A1 (en) 2021-06-17
WO2019199531A1 (en) 2019-10-17
EP3777182A1 (en) 2021-02-17
JP7431742B2 (ja) 2024-02-15
SG11202008973TA (en) 2020-10-29
JP2021518694A (ja) 2021-08-02
CN111971967A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
KR20200140824A (ko) 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치
KR102358759B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113615204B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
JP7488189B2 (ja) 点群の幾何学的形状をコーディングする方法およびデバイス
KR102406845B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR102609776B1 (ko) 포인트 클라우드 데이터 처리 방법 및 장치
RU2767771C1 (ru) Способ и оборудование для кодирования/декодирования облака точек, представляющего трехмерный объект
US20200302652A1 (en) A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
JP2015504545A (ja) 予測位置符号化
KR20200141450A (ko) 투사 평면의 적어도 한 이미지 영역 내로 직교 투사된 한 세트의 3d 포인트의 깊이 값들을 인코딩하기 위한 방법
CN114097229A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
EP3614672A1 (en) A method and apparatus for encoding/decoding a point cloud representing a 3d object
CN111971969B (zh) 用于对点云的几何形状进行编码的方法和装置
EP3614673A1 (en) A method and apparatus for encoding/decoding a point cloud representing a 3d object
CN116033186A (zh) 一种点云数据处理方法、装置、设备以及介质
KR20240047385A (ko) 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
CN116635904A (zh) 用于动态网格压缩的方法和装置