KR102602375B1 - 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치 - Google Patents

포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102602375B1
KR102602375B1 KR1020207021419A KR20207021419A KR102602375B1 KR 102602375 B1 KR102602375 B1 KR 102602375B1 KR 1020207021419 A KR1020207021419 A KR 1020207021419A KR 20207021419 A KR20207021419 A KR 20207021419A KR 102602375 B1 KR102602375 B1 KR 102602375B1
Authority
KR
South Korea
Prior art keywords
frames
geometry
point cloud
points
pixels
Prior art date
Application number
KR1020207021419A
Other languages
English (en)
Other versions
KR20200092418A (ko
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 KR20200092418A publication Critical patent/KR20200092418A/ko
Application granted granted Critical
Publication of KR102602375B1 publication Critical patent/KR102602375B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3D 포인트 클라우드 데이터를 디코딩하기 위한 디코더, 인코더 및 방법. 디코더는 3D 포인트 클라우드 데이터 및 프로세서를 포함하는 인코딩 된 비트 스트림을 수신하도록 구성된 통신 인터페이스를 포함한다. 프로세서는 복수의 2D 프레임을 식별하기 위해 비트 스트림을 디코딩하고; 2 이상의 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 복수의 2D 프레임에서 2 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하고; 2 이상의 지오메트리 프레임에서 대응하는 픽셀의 깊이 값을 식별하고; 2 이상의 지오메트리 프레임에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 2 개 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하고; 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시한다.

Description

포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치
본 개시는 일반적으로 3차원 대상의 포인트 클라우드 압축에 관한 것으로서, 보다 구체적으로는, 본 개시는 포인 트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치에 관한 것이다.
360도 (360 °) 비디오는 스마트 폰과 같은 강력한 핸드 헬드 장치를 사용할 수 있어 몰입형 비디오를 경험하는 새로운 방법으로 부상하고 있다. 360 ° 비디오는 세계의 360 ° 시야를 캡처하여 소비자에게 몰입형 "현실" 또는 "그곳에 있는" 듯한 경험을 제공한다.
사용자는 상호적으로 시점을 변경하고, 캡처한 장면 또는 원하는 객체의 일부를 동적으로 볼 수 있다. 디스플레이 및 내비게이션 센서는 실시간으로 머리 움직임을 추적하여 사용자가 보기 원하는 360 ° 비디오의 영역을 결정한다. 360 ° 비디오는 3DoF(three Degrees of Freedom) 몰입 경험을 제공한다.
6DoF(Six Degrees of Freedom)는 사용자가 가상/증강 환경에서 머리를 돌리고 움직일 수 있는 다음 레벨의 몰입형 경험이다. 6DoF 경험을 제공하려면 포인트 클라우드와 같은 3D 멀티미디어 데이터가 필요하다.
포인트 클라우드(point clouds)와 메쉬(meshes)는 3D 객체의 표면 모델을 나타내는 3D 포인트 세트이다. 포인트 클라우드는 게임, 3D 맵, 시각화, 의료 애플리케이션, 증강 현실, 가상 현실, 자율 주행, 멀티 뷰 리플레이, 6DoF 몰입 형 미디어와 같은 다양한 애플리케이션에서 일반적이다. 그러나 포인트 클라우드는 압축이 필요한 대량의 데이터로 구성된다.
본 개시는 포인트 클라우드 압축에서 중복 포인트의 처리를 제공한다.
일 실시 예에서, 3D 포인트 클라우드 데이터를 디코딩하기 위한 디코더가 제공된다. 디코더는 3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 수신하도록 구성된 통신 인터페이스와 프로세서를 포함한다.
프로세서는 복수의 2D 프레임을 식별하기 위해 비트 스트림을 디코딩하고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 복수의 2D 프레임에서 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 깊이 값을 식별하고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 2 개 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하고; 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시한다.
다른 실시 예에서, 3D 포인트 클라우드 데이터를 인코딩하기위한 인코더가 제공된다. 인코더는 프로세서 및 통신 인터페이스를 포함한다.
프로세서는 3D 포인트 클라우드 데이터에 대한 제2 세트의 2D 프레임을 인코딩 된 비트 스트림으로 인코딩하고; 3D 포인트 클라우드 데이터에 대한 제2 세트의 2D 프레임을 인코딩 된 비트 스트림으로 인코딩하기 위해 제1 세트의 2D 프레임에 대한 예측을 수행하도록 구성된다.
예측을 수행하기 위해, 프로세서는 또한 비트 스트림을 디코딩하여 복수의 2D 프레임을 생성하도록 구성되고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 복수의 2D 프레임에서 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 깊이 값을 식별하고; 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 2 개 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하고; 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시한다.
통신 인터페이스는 3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 전송하도록 구성된다.
다른 기술적인 특징은 다음의 도면, 발명의 설명 및 청구 범위로부터 통상의기술자에게 명백 할 수 있다.
본 개시는 포인트 클라우드 압축에서 중복 포인트의 처리를 제공한다.
본 개시 내용 및 그 장점에 대한 보다 완전한 이해를 위해, 이제 유사한 참조 번호가 유사한 부분을 나타내는 첨부 도면과 관련하여 취해진 다음의 설명을 참조한다.
도 1은 본 개시에 따른 예시적인 컴퓨팅 시스템을 도시한다.
도 2 및 도 3은 본 개시의 실시 예에 따른 컴퓨팅 시스템의 예시적인 장치를 도시한다.
도 4는 본 개시의 다양한 실시 예에 따른 포인트 클라우드 데이터의 중복 포인트의 예를 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 인코더의 예시적인 블록도를 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 디코더의 예시적인 블록도를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 지오메트리에 기초한 중복 포인트 제거 프로세스에 대한 흐름도를 도시한다.
도 8은 본 개시의 다양한 실시 예에 따른 다중 속성 포인트 클라우드를 위한 인코더의 예시적인 블록도를 도시한다.
도 9는 본 개시의 다양한 실시 예에 따른 지오메트리 및 속성에 기초한 중복 포인트 제거 프로세스에 대한 흐름도를 도시한다. 과
도 10은 본 개시의 다양한 실시 예들에 따라 3D 포인트 클라우드 데이터를 디코딩하기 위한 프로세스의 흐름도를 도시한다.
아래의 상세한 설명을 하기 전에, 본 특허 문서 전체에 걸쳐 사용된 특정 단어 및 어구의 정의를 기술하는 것이 바람직할 수 있다. "포함하다(include)" 및 "구성되다(comprise)" 그리고 이들의 파생어들은 제한없는 포함을 의미한다. "또는"이라는 용어는 포괄적이며, 및/또는을 의미한다. 어구 "연결되다(associated with)"와 "관련되다(associated therewith)" 그 파생어는 포함한다(include), 안에 포함되다(be included within), 상호 연결하다(interconnect with), 포함하다(contain), 안에 포함되다(be contained within), 연결하다(connect to or with), 연결하다(couple to or with), 와 통신할 수 있다(be communicable with), 협력하다(cooperate with), 상호 배치하다(interleave), 병치하다(juxtapose), 근접하다(be proximate to), 묶여있다(be bound to or with), 가지다(have), 속성을 가지다(have a property of) 등을 의미한다.
"제어부"는 적어도 하나의 작동을 제어하는 장치, 시스템 또는 그 일부를 의미할 수 있다. 이러한 장치는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 이들 중 적어도 둘의 조합으로 구현될 수 있다. 특정 제어부와 관련된 기능은 로컬(locally) 또는 원격으로 중앙집중식 또는 분산식이 될 수 있다. "적어도 하나"라는 문구는 항목 목록과 함께 사용될 때 나열된 항목 중 적어도 하나의 다른 조합을 사용할 수 있으며, 목록의 한 항목만 필요할 수 있음을 의미한다. 예를 들어, "A, B 및 C 중 적어도 하나"에는 A, B, C, A 및 B, A 및 C, B 및 C 그리고 A 및 B 및 C 조합 중 하나가 포함된다.
또한, 이하에서 설명되는 다양한 기능들은 적어도 하나의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있으며, 각각의 컴퓨터 프로그램은 컴퓨터 읽기 가능 프로그램 코드로 형성되고 컴퓨터 읽기 가능 매체에 구현된다. 용어 "애플리케이션(application)" 및 "프로그램(program)"은 적절한 컴퓨터 읽기 가능 프로그램 코드에서 구현하기 위해 적응된 적어도 하나의 컴퓨터 프로그램, 소프트웨어 구성요소, 명령어 세트, 과정, 기능, 객체, 클래스(classes), 사례, 관련 데이터 또는 그 일부를 나타낸다. 문구 "컴퓨터 읽기 가능 프로그램 코드"는 소스 코드(source code), 목적 코드(object code) 및 실행 가능 코드를 포함하는 모든 유형의 컴퓨터 코드를 포함한다. 문구 "컴퓨터 읽기 가능 매체"는 읽기 전용 메모리(read only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 하드 디스크 드라이브, 컴팩트 디스크(compact disc, CD), 디지털 비디오 디스크(digital video disc, DVD) 또는 임의의 다른 유형의 메모리와 같은 컴퓨터에 의해 접속될 수 있는 임의의 유형의 매체를 포함한다. "비일시적인(non-transitory)" 컴퓨터 읽기 가능 매체는 일시적인 전기적 신호 또는 다른 신호를 송신하는 유선, 무선, 광학, 또는 다른 통신 링크를 배제한다. 비일시적인 컴퓨터 읽기 가능 매체는 데이터가 영구적으로 저장될 수 있는 매체 및 재기록 가능한 광 디스크 또는 제거 가능한 메모리 장치와 같은 데이터가 저장되고 후에 겹쳐 쓸 수 있는 매체를 포함한다.
특정 단어 및 문구에 대한 정의는 본 특허 문서 전체에 걸쳐 제공된다. 본 개시(disclosure)가 속하는 기술 분야에서 통상의 지식을 가진 자라면 대부분의 경우는 아니지만, 그러한 정의가 그러한 정의된 단어와 문구의 이전 및 이후의 사용에 적용된다는 것을 이해해야 한다.
이하에서 논의되는 도 1 내지 도 10 및 본 특허 문서에서 본 개시의 원리를 설명하기 위해 사용 된 다양한 실시 예는 단지 예시적인 것이며 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다. 통상의 기술자는 본 개시의 원리가 임의의 적절하게 배열된 시스템 또는 장치에서 구현될 수 있다는 것을 이해할 것이다.
본 발명의 실시 예는 3D 객체(object)와 같은 포인트 클라우드 데이터의 디코딩 및 렌더링이 소비되는 자원의 측면에서 비용이 많이 들 수 있음을 인식한다. 예를 들어, 포인트 클라우드를 재구성하는 동안 프로세싱 및 메모리 리소스가 많이 사용될 수 있다. 본 개시의 실시 예는 생성된 중복 및 복제 정점(redundant and duplicate vertices)의 수를 감소시킴으로써, MPEG (moving picture experts group)에 의한 비디오 기반 포인트 클라우드 압축 (video based point clout compression, V-PCC)과 같은 포인트 클라우드 압축에 대한 개선점을 제공하며, 이는 또한 코덱 복잡성을 줄일 수 있다.
본 개시의 실시 예는 포인트 클라우드의 복잡성을 감소시키는 솔루션을 제공한다. 본 개시의 실시 예는 특정 포인트 클라우드 인코딩 기술이 객관적 및 시각적 테스트 모두에서 잘 수행 될 수 있지만, 이들은 원래의 (소스) 포인트 클라우드에 있는 것보다 디코딩 된 포인트 클라우드에서 훨씬 더 많은 포인트를 생성 할 수 있음을 인식한다. 또한, 본 개시의 실시 예는 일부 인코딩 기술이 높은 비율(large percentage)의 중복되는 포인트를 생성 할 수 있으며, 이는 코덱 복잡성을 증가 시킨다는 것을 인식한다.
따라서, 본 개시의 실시 예는 2개의 포인트 중복 소스를 식별하고 중복 및 중복 포인트의 수를 감소시키는 솔루션을 제공한다. 또한, 다양한 실시 예는 재구성된 포인트 클라우드의 시각적 품질을 저하시키지 않으면서 이러한 감소를 제공한다.
도 1은 본 개시에 따른 예시적인 컴퓨팅 시스템 (100)을 도시한다. 도 1에 도시된 시스템 (100)의 실시 예는 단지 예시를 위한 것이다. 시스템 (100)의 다른 실시 예는 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
시스템 (100)은 시스템 (100)의 다양한 구성 요소 사이의 통신을 용이하게 하는 네트워크 (102)를 포함한다. 예를 들어, 네트워크 (102)는 인터넷 프로토콜 (IP) 패킷, 프레임 릴레이 프레임(frame relay frames) 또는 네트워크 주소 사이의 다른 정보를 통신 할 수 있다.
네트워크 (102)는 하나 이상의 LAN (local area network), MAN (metropolitan area network), WAN (wide area network), 인터넷과 같은 글로벌 네트워크의 전부 또는 일부, 또는 하나의 다른 통신 시스템 또는 하나 또는 더 많은 위치의 시스템을 포함한다.
네트워크 (102)는 서버 (104)와 다양한 클라이언트 장치들 (106-116) 사이의 통신을 용이하게한다. 클라이언트 장치 (106-116)는 예를 들어 스마트 폰, 태블릿 컴퓨터, 랩톱, 개인용 컴퓨터, 웨어러블 장치 또는 헤드 마운트 디스플레이 (head mounted disply, HMD) 일 수 있다.
서버 (104)는 하나 이상의 서버를 나타낼 수 있다. 각 서버 (104)는 하나 이상의 클라이언트 장치에 컴퓨팅 서비스를 제공 할 수 있는 임의의 적합한 컴퓨팅 또는 처리 장치를 포함한다. 각각의 서버 (104)는 예를 들어 하나 이상의 처리 장치, 명령어 및 데이터를 저장하는 하나 이상의 메모리, 및 네트워크 (102)를 통한 통신을 용이하게 하는 하나 이상의 네트워크 인터페이스를 포함 할 수 있다.
아래에서 더 상세히 설명되는 바와 같이, 서버 (104)는 중복 포인트를 처리하기 위해 포인트 클라우드를 인코딩 또는 디코딩 할 수 있다. 다양한 실시 예에서, 각각의 서버 (104)는 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 인코더를 포함 할 수 있다.
각각의 클라이언트 장치 (106-116)는 네트워크 (102)를 통해 적어도 하나의 서버 또는 다른 컴퓨팅 장치(들)와 상호 작용하는 임의의 적절한 컴퓨팅 또는 처리 장치를 나타낸다.
이 예에서, 클라이언트 장치 (106-116)는 데스크톱 컴퓨터 (106), 휴대 전화 또는 모바일 장치 (108) (예 : 스마트 폰), 개인 휴대 정보 단말기 (personal digital assistant, PDA) (110), 랩톱 컴퓨터 (112), 태블릿 컴퓨터 (114)를 포함한다. 그러나, 임의의 다른 또는 추가 클라이언트 장치가 시스템 (100)에서 사용될 수 있다.
아래에 더 상세히 설명되는 바와 같이, 각각의 클라이언트 장치 (106-116)는 포인트 클라우드를 인코딩 또는 디코딩하여 중복 포인트를 처리 할 수 있다. 다양한 실시 예에서, 각각의 클라이언트 장치 (106-116)는 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 디코더를 포함 할 수 있다
이 예에서, 일부 클라이언트 장치 (108-116)는 네트워크 (102)와 간접적으로 통신한다. 예를 들어, 클라이언트 장치 (108 및 110) (각각 모바일 장치 (108) 및 PDA (110))는 셀룰러 기지국 또는 eNodeB (eNB)와 같은 하나 이상의 기지국 (118)을 통해 통신한다.
모바일 장치 (108)는 스마트 폰을 포함한다. 또한, 클라이언트 장치 (112, 114 및 116) (각각 랩탑 컴퓨터, 태블릿 컴퓨터 및 HMD)는 IEEE 802.11 무선 액세스 포인트와 같은 하나 이상의 무선 액세스 포인트 (120)를 통해 통신한다.
아래에서 더 상세히 설명되는 바와 같이, HMD (116)는 하나 이상의 포인트 클라우드를 포함하는 360 ° 장면을 표시 할 수 있다. 이들은 단지 예시를위한 것이며, 각각의 클라이언트 장치 (106-116)는 임의의 적절한 중간 장치(들)(intermediate device(s)) 또는 네트워크(들)를 통해 네트워크 (102)와 직접 또는 네트워크 (102)와 간접적으로 통신 할 수 있다는 것을 주목해야한다.
다양한 실시 예에서, 서버 (104) 또는 임의의 클라이언트 장치 (106-114)는 포인트 클라우드를 압축하고 임의의 클라이언트 장치 (106-116)와 같은 다른 클라이언트 장치로 데이터를 전송하는데 사용될 수 있다.
다양한 실시 예에서, 모바일 장치 (108) (또는 임의의 다른 클라이언트 장치 (106-116))는 예를 들어 서버 (104)와 같은 다른 장치에 안전하고 효율적으로 정보를 전송할 수 있다. 모바일 장치 (108) (또는 임의의 다른 클라이언트 장치 (106-116))는 브래킷을 통해 헤드셋에 부착 된 경우 VR(virtual reality) 디스플레이로 작동 할 수 있으며 HMD 116과 유사하게 작동한다.
모바일 장치 (108) (또는 임의의 다른 클라이언트 장치 (106-116))는 자신과 서버 (104) 사이의 정보 전송을 트리거 할 수 있다.
비록 도 1은 시스템 (100)의 일 예를 도시하고 있지만, 도 1에 대한 다양한 변경이 이루어질 수 있다. 예를 들어, 시스템 (100)은 임의의 적절한 배열로 임의의 수의 각 구성 요소를 포함 할 수 있다.
일반적으로, 컴퓨팅 및 통신 시스템은 다양한 구성으로 제공된다. 도 1은 본 개시의 범위를 임의의 특정 구성으로 제한하지 않는다. 도 1은 본 특허 문헌에 개시된 다양한 특징이 사용될 수 있는 하나의 동작 환경을 도시하며, 이들 특징은 임*?*의의 다른 적합한 시스템에서 사용될 수 있다.
본 개시에서 제공되는 프로세스 및 시스템은 클라이언트 장치 (106-116) 또는 서버 (104)가 포인트 클라우드를 인코딩, 압축, 전송, 수신, 렌더링 하는 것, 또는 이들을 조합하는 것을 허용한다. 예를 들어, 서버 (104)는 포인트 클라우드 데이터를 압축, 인코딩 및 전송하여 클라이언트 장치 (106-116)로 전송할 수 있다. 다른 예에서, 임의의 클라이언트 장치 (106-116)는 포인트 클라우드 데이터를 압축하여 임의의 클라이언트 장치 (106-116) 또는 서버 (104)로 전송할 수 있다.
도 2 및 도 3은 본 개시의 실시 예에 따른 컴퓨팅 시스템의 예시적인 장치를 도시한다. 특히, 도 2는 예시적인 서버 (200)를 도시하고, 도 3은 예시적인 전자 장치 (300)를 도시한다. 서버 (200)는 도 1의 서버 (104)를 나타낼 수 있다. 전자 장치 (300)는 도 1의 클라이언트 장치들 (106-116) 중 하나 이상을 나타낼 수 있다.
서버 (200)는 하나 이상의 로컬 서버, 하나 이상의 압축 서버 또는 하나 이상의 인코딩 서버를 나타낼 수 있다. 도 2에 도시된 바와 같이, 서버 (200)는 적어도 하나의 프로세서(들)(210) 사이의 통신을 지원하는 버스 시스템(205), 적어도 하나의 저장 장치 (215), 적어도 하나의 통신 인터페이스 (220) 및 적어도 하나의 입력/출력 (input/output, I/O) 유닛 (225)을 포함한다. 다양한 실시 예들에서, 서버 (200)는 인코더 또는 디코더이다.
프로세서 (210)는 메모리 (230)에 저장 될 수 있는 명령어를 실행한다. 메모리 (230)에 저장된 명령어는 포인트 클라우드를 분해하고 포인트 클라우드를 압축하기 위한 명령어를 포함 할 수 있다. 메모리 (230)에 저장된 명령어는 또한 비트 스트림을 생성하기 위해 포인트 클라우드를 인코딩하기 위한 명령어를 포함 할 수 있다.
메모리 (230)에 저장된 명령은 또한 도 1의 HMD (116)와 같은 VR 헤드셋을 통해 볼 때, 포인트 클라우드 압축에서 중복 포인트의 처리 및/또는 전 방향 360 ° 장면에서 포인트 클라우드의 렌더링을 위한 명령을 포함 할 수 있다.
프로세서 (210)는 임의의 적절한 배열로 임의의 적절한 수(들) 및 유형의 프로세서 또는 다른 장치를 포함 할 수 있다. 프로세서 (들) (210)의 예시적인 유형은 마이크로 프로세서, 마이크로 컨트롤러, 디지털 신호 프로세서, 필드 프로그램 가능 게이트 어레이, 애플리케이션 특정 집적 회로 및 이산 회로를 포함한다.
메모리 (230) 및 영구 저장소 (235)는 정보 (예를 들어, 데이터, 프로그램 코드, 또는 다른 적절한 정보와 같은 일시적 또는 영구적 인 정보)의 검색을 저장하고 용이하게 할 수 있는 임의의 구조 (들)를 나타내는 저장 장치 (215)의 예이다. 메모리 (230)는 랜덤 액세스 메모리 또는 임의의 다른 적합한 휘발성 또는 비 휘발성 저장 장치(들)를 나타낼 수 있다. 영구 저장 장치 (235)는 준비 전용 메모리, 하드 드라이브, 플래시 메모리 또는 광 디스크와 같은 데이터의 장기 저장을 지원하는 하나 이상의 구성 요소 또는 장치를 포함 할 수 있다.
통신 인터페이스 (220)는 다른 시스템 또는 장치와의 통신을 지원한다. 예를 들어, 통신 인터페이스 (220)는 도 1의 네트워크 (102)를 통한 통신을 용이하게 하는 네트워크 인터페이스 카드 또는 무선 트랜시버를 포함 할 수 있다. 통신 인터페이스 (220)는 임의의 적절한 물리적 또는 무선 통신 링크 (들)를 통한 통신을 지원할 수 있다.
I/O 유닛 (225)은 데이터의 입력 및 출력을 허용한다. 예를 들어, I/O 유닛 (225)은 키보드, 마우스, 키패드, 터치 스크린, 모션 센서 또는 임의의 다른 적절한 입력 장치를 통한 사용자 입력을 위한 연결을 제공 할 수 있다. I/O 유닛 (225)은 또한 디스플레이, 프린터 또는 임의의 다른 적절한 출력 장치로 출력을 전송할 수 있다.
다양한 실시 예들에서, 서버 (200)는 아래에서 더 상세히 논의되는 바와 같이 포인트 클라우드 압축에서 포인트 중복을 처리한다. 반면에 도 2는 도 1의 서버 (104)를 나타내는 것으로 설명된다. 도 1에 도시된 바와 같이, 동일하거나 유사한 구조가 하나 이상의 다양한 클라이언트 장치 (106-116)에서 사용될 수 있다. 예를 들어, 데스크탑 컴퓨터 (106) 또는 랩톱 컴퓨터 (112)는 도 1에 도시된 것과 동일하거나 유사한 구조를 가질 수 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 디바이스 (300)를 예시한다. 도 3에 도시된 전자 장치 (300)의 실시 예는 단지 예시를 위한 것이며, 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용될 수 있다. 전자 장치 (300)는 다양한 구성으로 제공 될 수 있다. 도 3은 본 개시의 범위를 전자 장치의 임의의 특정 구현으로 제한하지 않는다. 다양한 실시 예에서, 도 1의 하나 이상의 클라이언트 장치 (106-116)는 전자 장치로서(300) 동일하거나 유사한 구성을 포함할 수 있다. 다양한 실시 예에서, 전자 장치 (300)는 인코더 및/또는 디코더이다.
다양한 실시 예에서, 전자 장치 (300)는 데이터 전송, 이미지 또는 비디오 압축, 이미지 또는 비디오 압축 해제, 인코딩, 디코딩 및 미디어 렌더링 애플리케이션과 함께 사용할 수 있다. 전자 장치 (300)는 모바일 통신 장치일 수 있다. 모바일 통신 장치는 예를 들어 무선 단말기, 데스크탑 컴퓨터 (도 1의 데스크탑 컴퓨터 (106)와 유사), 모바일 장치 (도 1의 모바일 장치 (108)와 유사)와 같은 이동 통신 장치 일 수 있다. PDA (도 1의 PDA (110)와 유사), 랩탑 (도 1의 랩톱 컴퓨터 (112)와 유사), 태블릿 (도 1의 태블릿 컴퓨터 (114)와 유사), 헤드 마운트 디스플레이 (HMD와 유사) 도 1의 116) 등 일 수 있다.
도 3에 도시된 바와 같이. 도 3에 도시된 바와 같이, 전자 장치 (300)는 안테나 (305), 무선 주파수 (RF) 트랜시버 (310), 송신 (TX) 처리 회로 (315), 마이크로폰 (320) 및 수신 (RX) 처리 회로 (325)를 포함한다. 전자 장치 (300)는 또한 스피커 (330), 하나 이상의 프로세서 (340), I/O 인터페이스 (IF) (345), 입력 (350), 디스플레이 (355) 및 메모리 (360)를 포함한다. 메모리 (360)는 운영 체제 (OS) (361), 하나 이상의 애플리케이션 (362) 및 포인트 클라우드 (363)를 포함한다.
RF 트랜시버 (310)는 안테나 (305)로부터 시스템상의 다른 구성 요소에 의해 전송되는 인커밍(incoming) RF 신호를 수신한다. 예를 들어, RF 송수신기 (310)는 네트워크 (102) (예를 들어, WI-FI, BLUETOOTH, 셀룰러, 5G, LTE, LTE-A, WiMAX 또는 기타 유형의 무선 네트워크)의 액세스 포인트 (예를 들어, 기지국, WI-FI 라우터, BLUETOOTH 장치)로부터 BLUETOOTH 또는 WI-FI 신호에 의해 전송된 RF 신호를 수신한다. RF 트랜시버 (310)는 인커밍 RF 신호를 하향 변환하여 중간 주파수 또는 기저 대역 신호를 생성 할 수 있다. 중간 주파수 또는 기저 대역 신호는 기저 대역 또는 중간 주파수 신호, 또는 이들의 조합을 필터링, 디코딩 또는 디지털화함으로써 처리 된 기저 대역 신호를 생성하는 RX 처리 회로 (325)로 전송된다. RX 처리 회로 (325)는 처리 된 기저 대역 신호를 (음성 데이터와 같은) 스피커 (330)로 또는 추가 처리를 위해 (웹 브라우징 데이터와 같은) 프로세서 (340)로 전송한다.
TX 처리 회로 (315)는 마이크로폰 (320)으로부터 아날로그 또는 디지털 음성 데이터 또는 프로세서 (340)로부터 다른 아웃고잉(outgoing) 기저 대역 데이터를 수신한다. 아웃고잉 기저 대역 데이터는 웹 데이터, 이메일 또는 대화식 비디오 게임 데이터를 포함 할 수 있다. TX 처리 회로 (315)는 발신 기저 대역 데이터를 인코딩, 다중화, 디지털화 또는 이들의 조합으로 처리 된 기저 대역 또는 중간 주파수 신호를 생성한다. RF 송수신기 (310)는 TX 처리 회로 (315)로부터 아웃고잉 처리 된 기저 대역 또는 중간 주파수 신호를 수신하고 기저 대역 또는 중간 주파수 신호를 안테나 (305)를 통해 전송되는 RF 신호로 상향 변환한다.
프로세서 (340)는 하나 이상의 프로세서 또는 다른 처리 장치를 포함하고 전자 장치 (300)의 전반적인 동작을 제어하기 위해 메모리 (360)에 저장된 OS (361)를 실행할 수 있다. 예를 들어, 프로세서 (340)는 공지 된 원리에 따라 RF 트랜시버 (310), RX 처리 회로 (325) 및 TX 처리 회로 (315)에 의한 순방향 채널 신호의 수신 및 역방향 채널 신호의 송신을 제어 할 수 있다. 프로세서 (340)는 또한 포인트 클라우드 압축에서 중복 포인트를 처리하기 위해 메모리 (360)에 상주하는 다른 애플리케이션 (362)을 실행할 수 있다.
프로세서 (340)는 메모리 (360)에 저장된 명령을 실행할 수 있다. 프로세서 (340)는 프로세서들 또는 다른 장치들의 임의의 적절한 수(들) 및 유형(들)을 임의의 적절한 배열로 포함한다. 예를 들어, 일부 실시 예들에서, 프로세서 (340)는 적어도 하나의 마이크로 프로세서 또는 마이크로 컨트롤러를 포함한다. 프로세서 (340)의 예시적인 유형은 마이크로 프로세서, 마이크로 컨트롤러, 디지털 신호 프로세서, 필드 프로그램 가능 게이트 어레이, 애플리케이션 특정 집적 회로 및 이산 회로를 포함한다.
프로세서 (340)는 또한 이미지 캡처 및 프로세싱을 제공함으로써 수신, 저장 및 적시에 지시하는 동작과 같은 메모리 (360)에 상주하는 다른 프로세스 및 프로그램을 실행할 수 있다. 프로세서 (340)는 실행 프로세스에 의해 요구되는대로 데이터를 메모리 (360) 내외로 이동할 수 있다. 일부 실시 예에서, 프로세서 (340)는 OS (361)에 기초하거나 eNB (도 1의 기지국 (118)과 유사) 또는 오퍼레이터로부터 수신 된 신호에 응답하여 복수의 애플리케이션 (362)을 실행하도록 구성된다. 프로세서 (340)는 또한 전자 장치 (300)에 클라이언트 장치 (106-116)와 같은 다른 장치에 연결하는 기능을 제공하는 I/O IF (345)에 연결된다. I/O IF (345)는 이들 액세서리와 프로세서 (340) 사이의 통신 경로이다.
프로세서 (340)는 또한 입력 (350)에 연결된다. 전자 장치 (300)의 조작자는 입력 (350)을 사용하여 전자 장치 (300)에 데이터 또는 입력을 입력 할 수 있다. 입력 (350)은 키보드, 터치 스크린, 마우스, 트랙볼, 음성 입력, 또는 사용자가 전자 장치 (300)와 상호 작용할 수 있도록 사용자 인터페이스로서 작용할 수 있는 임의의 다른 장치가 될 수 있다. 예를 들어, 입력 (350)은 음성 인식 처리를 포함하여 사용자가 마이크로폰 (320)을 통해 음성 명령을 입력 할 수 있게한다. 다른 예를 들어, 입력 (350)은 터치 패널, (디지털) 펜 센서, 키 또는 초음파를 포함 할 수 있다. 입력 장치. 터치 패널은, 예를 들어, 용량성 방식, 압력 감지 방식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을 인식 할 수 있다. 예를 들어, 용량성 방식에서, 입력 (350)은 터치 또는 근접성을 인식 할 수 있다. 입력 (350)은 또한 제어 회로를 포함 할 수 있다. 입력 (350)은 프로세서 (340)에 추가적인 입력을 제공함으로써 센서 (들) (365) 및/또는 카메라와 연관 될 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 센서 (365)는 관성 센서 (가속도계, 자이로 스코프 및 자력계와 같은), 광학 센서, 모션 센서, 카메라, 압력 센서, 심박수 센서, 고도계 등을 포함할 수 있다. 예를 들어, 입력 (350)은 3D 비디오를 렌더링 할 때 입력으로서 센서 (365)와 관련된 모션 센서에 의해 검출 된 모션을 이용할 수 있다.
프로세서 (340)는 또한 디스플레이 (355)에 연결된다. 디스플레이 (355)는 액정 디스플레이 (liquid crystal display, LCD), 발광 다이오드 (light-emitting diode, LED) 디스플레이, 유기 LED (organic LED, OLED), 능동 매트릭스 OLED (active matrix OLED, AMOLED), 또는 웹 사이트, 비디오, 게임, 이미지 등과 같은 텍스트 및/또는 그래픽 렌더링을 할 수 있는 다른 디스플레이 일 수 있다. 디스플레이 (355)는 HMD 내에 맞도록 크기가 조정될 수 있다. 디스플레이 (355)는 단일 디스플레이 스크린 또는 입체 디스플레이를 생성 할 수 있는 다중 디스플레이 스크린 일 수 있다. 다양한 실시 예들에서, 디스플레이 (355)는 헤드 업 디스플레이 (head up display, HUD)이다.
메모리 (360)는 프로세서 (340)에 연결된다. 메모리 (360)의 일부는 랜덤 액세스 메모리 (RAM)를 포함 할 수 있고, 메모리 (360)의 다른 일부는 플래시 메모리 또는 다른 판독 전용 메모리 (ROM)를 포함 할 수 있다.
메모리 (360)는 정보 (예를 들어, 데이터, 프로그램 코드, 및/또는 다른 적절한 정보와 같은 일시적 또는 영구적 인 정보)를 저장하고 용이하게 할 수 있는 임의의 구조(들)를 나타내는 영구 저장소를 포함 할 수 있다. 메모리 (360)는 준비 전용 메모리, 하드 드라이브, 플래시 메모리 또는 광 디스크와 같은 장기 데이터 저장을 지원하는 하나 이상의 구성 요소 또는 장치를 포함 할 수 있다. 포인트 클라우드 데이터 (363)는 다양한 3D 포인트 클라우드, 3D 메쉬, 3D 객체 등을 포함 할 수 있다. 다양한 실시 예들에서, 전자 장치 (300)는 포인트 클라우드 데이터 (363)의 압축 또는 압축 해제에서 중복 포인트를 처리한다. 전자 디바이스 (300)는 하나 이상의 3D 객체 또는 3D 장면을 디스플레이 (355) 상에 디스플레이하도록 포인트 클라우드 데이터 (363)를 재구성 할 수 있다.
전자 장치 (300)는 물리량을 측정하거나 전자 장치 (300)의 활성화 상태를 검출하고 계량 또는 검출 된 정보를 전기 신호로 변환하는 하나 이상의 센서 (365)를 더 포함 할 수 있다. 예를 들어, 센서 (들) (365)는 (헤드셋 또는 전자 장치 (300) 상에 위치 된) 터치 입력을위한 하나 이상의 버튼, 하나 이상의 카메라, 제스처 센서, 눈 추적 센서, 자이로 스코프 또는 자이로 센서, 공기압 센서, 자기 센서 또는 자력계, 가속 센서 또는 가속도계, 그립 센서, 근접 센서, 컬러 센서 (RGB (red green blue) 센서 등), 생체 물리 센서, 온도/습도 센서, 조명 센서, 자외선 (UV) 센서, 심전도 (EMG) 센서, 뇌전도 (EEG) 센서, 심전도 (ECG) 센서, 적외선 (IR) 센서, 초음파 센서, 홍채 센서, 지문 센서 등. 센서 (들) (365)는 그 안에 포함 된 센서들 중 적어도 하나를 제어하기 위한 제어 회로를 더 포함 할 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 이들 센서 (들) (365) 중 하나 이상은 사용자 인터페이스 (user interface, UI)를 제어하고, UI 입력을 검출하며, 3 차원 컨텐츠에 대한 사용자의 방향 및 대향을 결정하는데 사용될 수 있다. 이들 센서 (들) (365) 중 임의의 것은 전자 장치 (300) 내에, 전자 장치 (300)에 작동 가능하게 연결된 보조 장치 내에, 전자 장치 (300)를 유지하도록 구성된 헤드셋 내에 또는 단일 장치 내에 위치 될 수 있다. 전자 장치 (300)는 헤드셋을 포함한다.
아래에서 더 상세히 논의 될 바와 같이, 이 예시적인 실시 예에서, 전자 디바이스 (300) 및/또는 서버 (200)는 3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 수신하고, 비트 스트림을 디코딩하여 2D 프레임을 식별하고, 중복 포인트를 식별한다. 깊이 값을 기준으로 프레임을 만들고 3D 포인트 클라우드 데이터를 재구성하는 동안 포인트를 제거하거나 무시한다.
비록 도 2 및 도 3은 컴퓨팅 시스템에서 장치들의 예를 도시하고 있지만, 도 2 및 도 3에 대한 다양한 변경이 이루어질 수 있다. 예를 들어, 도 2 및 도 3의 다양한 구성 요소들은 결합되거나, 더 세분화되거나, 생략 될 수 있고, 특정 요구에 따라 추가 구성 요소가 추가 될 수 있다. 특정 예로서, 프로세서 (340)는 하나 이상의 중앙 처리 장치 (CPU) 및 하나 이상의 그래픽 처리 장치 (GPU)와 같은 다수의 프로세서로 분할 될 수 있다. 또한, 컴퓨팅 및 통신 네트워크와 마찬가지로, 전자 장치 및 서버는 다양한 구성으로 제공 될 수 있다. 도 2 및 도 3은 본 개시를 임의의 특정 전자 장치 또는 서버로 제한하지 않는다.
본 명세서에서 논의되는 바와 같이, 포인트 클라우드는 3D 공간에서 물체 (예를 들어 물체의 외부 표면)를 나타내는데 사용되는 (x, y, z) 좌표 (점 또는 정점이라고도 함)의 세트이다. 포인트 클라우드는 라이다(Lidar), RGB + 깊이(Depth) 카메라를 사용하는 3D 스캔 또는 멀티 뷰 스테레오를 사용하는 여러 이미지에서 3D 재구성을 통해 얻을 수 있다. 포인트 클라우드의 각 포인트는 포인트와 관련된 색상, 재료 속성, 법선, 강도 (스캔 중 포인트를 생성한 레이저 펄스의 리턴 강도 측정) 등과 같은 여러 속성(attribute)을 가질 수 있다. 특히 3D 맵을 나타내는 데 사용되는 포인트 클라우드는 수백만 개의 포인트를 포함 할 수 있으므로 원시 데이터 크기는 일반적으로 방대하므로 압축될 필요가 있다.
예를 들어, 동적 포인트 클라우드를 압축하기 위한 카테고리 2 에 대한 MPEG 테스트 모델(MPEG test model for category 2, TMC2)은 각각의 3D 포인트 클라우드 프레임을 복수의 2D 이미지/비디오 프레임으로 변환함으로써 작동한다. 동적 포인트 클라우드는 시간에 따른 모션/이동 3D 객체를 나타내는 데 사용되는 포인트 클라우드 프레임 세트이다. 예를 들어, 비디오의 이미지, 동적 포인트 클라우드의 정적 포인트 클라우드이다. (what a video is to an image, a dynamic point cloud is to a static point cloud.) TMC2의 경우 한 세트의 이미지/비디오 프레임이 지오메트리(geometry) 캡처에 사용되고 다른 세트는 텍스처에 사용된다. 3D에서 2D로 변환하는 동안 V-PCC(video-based point cloud compression)에서 직교 투영법이 사용되어 3 개의 지오메트리 좌표 중 2 개가 이미지/비디오 프레임에서 투영 된 픽셀의 2D 위치에 내재적으로 인코딩되고 세 번째 좌표 값이 (또는 제 3 좌표로부터 도출 된 일부 값)은 평면으로부터 3D 좌표의 깊이 (즉, 깊이 값)를 나타내는 픽셀의 값으로서 저장된다. 정확하게, 값이 투영 방향 (또는 투영 평면의 방향)에 의존 할 때 x, y 또는 z 좌표 중 어느 것이 저장된다. 그런 다음 이미지/비디오 프레임은 기존 이미지/비디오 코덱 (예 : high efficiency video coding, HEVC)을 사용하여 압축되므로 TMC2는 대량의 압축 프로세스에 기존 코덱을 활용할 수 있다. 디코더에서, 지오메트리 및 텍스쳐에 대한 이미지/비디오 프레임 세트는 압축 된 비트 스트림으로부터 압축 해제된다. 그런 다음 2D 프레임에서 3D 공간으로 포인트를 다시 투영하여 포인트 클라우드가 재구성된다. TMC2는 단지 예이고, 다른 실시 예들 및 좌표 시스템들이 가능하다.
그러나, 그러한 인코딩 기술은 디코딩 된 포인트 클라우드에서 원래의 (소스) 포인트 클라우드에 있는 것보다 훨씬 더 많은 포인트를 생성 할 수 있다. 또한, 재구성 된 포인트 클라우드에서 상당량의 정점(vertices)이 중복 될 수 있다. 종종 포인트 클라우드에는 포인트 당 각 속성 유형의 단일 속성이 포함된다. 예를 들어, 주어진 포인트 클라우드의 유일한 속성 유형이 색상인 경우, 모든 지오메트리 점 (x, y, z)에 대해 3 개의 튜플(tuple) (r, g, b) 색상과 같은 하나의 관련 색상만 존재한다. 또한, 일부 실시 예들에서, 단일의 컬러 또는 속성 만이 포인트 당 렌더링 될 수 있다. 다른 실시 예들에서, 각각의 포인트는 다수의 속성을 가질 수 있다. 이들 실시 예들 중 하나 이상에서, 포인트 클라우드의 중복 포인트는 동일한 (또는 유사한) 지오메트리 값 (x, y, z)을 갖는 포인트이다. 이들 실시 예들 중 다른 것에서, 포인트 클라우드의 중복 포인트는 동일한 (또는 유사한) 지오메트리 값 (, , )을 갖는 포인트이며, 일부 또는 모든 속성 (또는 정점)은 동일 (또는 유사)하다. 여기서 동일하거나 유사한 의미는 상황에 따라 값이 정확히 동일하거나 값이 설정된 임계 값 내에 있음을 의미한다. 예를 들어, 부동 소수점 표현(floating-point representation)이 사용되는 경우, "정확한"비교는 의미가 없을 수 있고 임계 레벨의 유사성이 사용된다.
본 개시의 실시 예는 중복이 시각적 경험을 향상시키는 역할을 하지 않기 때문에 (예를 들어, 시야에 의존하는 컬러 또는 반사율 변조를 제공하는 것과 같이) 포인트 클라우드에서 중복 정점을 생성하는 것의 이점이 거의 없다고 인식한다. 오히려 이러한 중복 포인트는 데이터 크기가 증가하고 전송에 불필요한 오버 헤드가 발생하기 때문에 특히 손실이 많은 PCC 체계의 경우 컴퓨팅 리소스를 낭비하게 된다. 또한 정점 수를 크게 늘리면 처리 체인의 복잡성이 비례적으로 증가한다.
도 4는 본 개시의 다양한 실시 예에 따른 포인트 클라우드 데이터의 중복 포인트의 예를 도시한다. 도 4에 도시된 포인트 클라우드 데이터의 중복 포인트는 단지 예시를 위한 것이다. 다른 실시 예는 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
포인트 클라우드에서 복수의 평면 (깊이 계층)으로 투영하는 동안 발생하는 일반적인 시나리오는 여러 포인트가 2D 평면에서 동일한 픽셀 위치에 투영 될 수 있다는 것이다. 이 시나리오가 발생할 수 있는 경우의 예는, 여러 번 접히거나 쌓일 수 있는 천을 나타내는 포인트 클라우드의 사용에 관한 것이다.. 이러한 점들을 패치로 동화(assimilation)시키기 위해, 패치마다 2 개의 깊이 벡터(patch.depth [0] 및 patch.depth [1])가 사용될 수 있다. 이 벡터는 투영 평면(예 : 깊이 차원(the dimension of depth)을 따라 엇갈린 포인트들의 깊이 값을 저장하는데 사용된다. 각 점의 다른 두 차원은 2D 평면에서의 투영 위치로 인코딩된다.
도 4에서, 포인트 1은 2D 투영 평면상의 픽셀 위치 p [i]로 투영된다. 패치의 최소 깊이 d(1)에 대한 포인트 1의 깊이는 인덱스 위치 p[i]에서 벡터 patch.depth [0]에 저장된다. 점 2, 3, 4 및 5는 투영 후 투영 평면에서 동일한 위치를 공유한다. 마찬가지로 점 6과 7은 투영 평면에서 동일한 위치를 공유한다. 이 예에서, 포인트 2 및 4의 상대 깊이 (각각 d (2) 및 d (4))는 각각 패치의 인덱스 위치 p[i + 1]에서 각각 patch.depth [0] 및 patch.depth [1]에 저장된다. 포인트 3과 포인트 5는 후속 반복에서의 투영을 위해 다시 고려 될 수 있다. 포인트 6으로부터 포인트 7의 깊이는 "surfaceThickness" 매개 변수보다 크기 때문에, 포인트 6과 7 사이에서 포인트 6의 상대 깊이 d(6)만 인덱스 위치 p[i + 2]에서 patch.depth [0]에 저장된다. 이 예에서 벡터 patch.depth [1]의 경우, 세 개의 인덱스 위치 중 하나만 고유 포인트의 깊이 값, 즉 포인트 4부터 저장한다. 벡터 patch.depth [1]의 나머지 위치의 값은 patch.depth [0]에 대응되는 위치와 중복된다. 이어서, 인코딩 파이프 라인에서, 한 쌍의 2D 프레임이 지오메트리를 캡처하기 위해 생성 될 때, patch.depth [1]의 값이 제1 지오메트리 프레임을 생성하는데 사용되며, 차이 값 (또는 델타 값)(즉, patch.depth [1] - patch.depth [0])은 제2 지오메트리 프레임에 저장된다. 다른 실시 예에서, (델타 값 대신에) patch.depth [1]로부터의 실제 값은 제2 지오메트리 프레임에 저장된다.
나중에 포인트 클라우드 지오메트리는 인코딩 된 비트 스트림으로부터 재구성된다. 이 재구성은 또한 인코더에서 중복되며, 재생성된 포인트 클라우드 지오메트리는 인코더에서 색상 근사 및 텍스처 생성을 위해 사용된다. 포인트 클라우드 지오메트리 재구성 중에 패치를 생성하는 동안 patch.depth [0]에서 patch.depth [1]에 여러 값이 중복되었으므로 재구성 된 포인트 클라우드 지오메트리에 여러 개의 중복 포인트가 생성된다. 또한 낮은 비트레이트 설정에서 중복 비율이 증가한다.
낮은 비트 전송률 설정에서 포인트 중복의 증가는 손실 압축의 양자화 결과이다. 이는 재구성 된 포인트 클라우드에서 포인트가 중복되는 2 차 원인이다. 손실이 적은 압축 동안, 특히 저 비트 레이트에 대해, 둘 이상의 지오메트리 프레임에서 대응하는 픽셀 위치에 저장된 값 사이의 차이가 양자화 단계보다 작은 경우, 이들 픽셀 위치에서의 깊이 값은 압축 후에 동일하게 될 수 있다. 이러한 픽셀 위치에서 3D 포인트를 재구성하면 포인트 클라우드에서 포인트가 중복된다.
도 5는 본 개시의 다양한 실시 예에 따른 인코더 (500)의 예시적인 블록도를 도시한다. 도 6은 본 개시의 다양한 실시 예에 따른 디코더 (600)의 예시적인 블록도를 도시한다. 인코더 (500)는 도 1의 서버 (104), 도 1의 임의의 클라이언트 장치 (106-116)와 유사할 수 있고, 도 2의 서버 (200), 도 3의 전자 장치 (300)와 유사한 내부 구성 요소를 포함한다. 디코더 (600)는 도 1의 임의의 클라이언트 장치 (106-116)와 유사 할 수 있고, 도 3의 전자 장치 (300)와 유사한 내부 구성 요소를 포함한다. 인코더 (500)는 네트워크 (102)를 통해 디코더 (750)와 통신 할 수 있다. 인코더 (500) 및 디코더 (600)의 실시 예는 단지 예시를 위한 것이다. 다른 실시 예들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
인코더 (500)는 인코딩 된 비트 스트림 (525)으로서 포인트 클라우드, 메쉬 또는 둘 모두를 압축, 인코딩 및 송신 할 수 있다. 다양한 실시 예에서, 인코더 (500)는 포인트 클라우드 또는 메쉬가 매핑되거나 투영되는 다수의 2D 프레임을 생성한다. 예를 들어 포인트 클라우드는 래핑되지 않고(unwrapped) 여러 2D 프레임에 매핑된다. 예를 들어 포인트 클라우드는 한 축 (예 : Y 축)을 따라 언랩되고 이미지는 나머지 축 (예 : X 및 Z 축)을 따라 매핑된다. 다양한 실시 예들에서, 인코더 (500)는 포인트 클라우드가 2D 프레임 상에 매핑 될 때 포인트 클라의 각각의 픽셀이 어디에 위치하는지를 나타내는 점유 맵 (예를 들어, 점유 맵 (522))을 생성한다. 예를 들어 점유 맵은 각 프레임의 유효 지점과 유효하지 않은 지점을 나타낸다. 유효하지 않은 포인트는 포인트 클라우드의 포인트에 해당하지 않는 프레임의 위치이며, 유효 포인트는 3D 포인트 클라우드의 포인트에 해당하는 프레임의 위치이다. 다양한 실시 예에서, 인코더 (500)는 웹 서버, 관리 서버와 같은 서버 컴퓨터, 또는 포인트 클라우드의 3 차원을 2 차원으로 매핑하고, 프레임을 압축하고, 전송을 위한 이미지를 인코딩 할 수 있는 임의의 다른 전자 컴퓨팅 시스템이다. 다양한 실시 예에서, 인코더 (500)는 하나 이상의 네트워크에 의해 상호 연결된 컴퓨터의 "클라우드"일 수 있으며, 각각은 도 1의 네트워크 (102)를 통해 액세스 될 때 단일 풀(single pool)의 이음매없는 리소스(seamless resources)로서 작용하기 위해 클러스터 된 컴퓨터 및 컴포넌트를 이용하는 컴퓨팅 시스템이다.
디코더 (600)는 포인트 클라우드, 메쉬 또는 둘 모두의 표현을 포함하는 수신된 인코딩 된 비트 스트림 (예컨대,도 5의 인코딩 된 비트 스트림 (525))을 디코딩, 압축 해제 및 생성 할 수 있다. 다양한 실시 예들에서, 디코더 (550)는 다수의 2D 프레임들을 포함하는 수신 된 비트 스트림으로부터 다수의 포인트 클라우드를 생성한다. 예를 들어, 포인트 클라우드의 각 픽셀은 2D 프레임에서 수신된 정보 및 수신된 점유 맵에 기초하여 매핑 될 수 있다.
인코더 (500)는 포인트 클라우드 압축에서 중복 포인트를 처리하는 전자 장치의 본 개시 내용의 실시 예의 개괄적인 개요를 도시한다. 다양한 실시 예들에서, 인코더 (500)는 비트 스트림에 의해 하나 이상의 디코더 (예컨대, 디코더 (600))로 전송하기위한 포인트 클라우드를 패키지화한다. 인코더 (500)는 포인트 클라우드 (502)를 수신 및 인코딩한다. 그렇게하기 위해, 인코더 (500)는 패치 생성 블록 (504), 보조 패치 정보 압축 블록 (506), 프레임 패킹 블록 (512), 지오메트리 재구성 블록 (530), 점유 맵 압축 블록 (532), 이미지 패딩 블록 (534), 비디오 압축 블록 (536), 평활 블록 (538) 및 멀티플렉서 (524)을 포함한다. 인코딩 된 비트 스트림 (525)을 생성 할 때, 인코더 (500)는 다양한 프레임 (예컨대, 지오메트리 프레임 (514) 및 텍스처 프레임 (518)) 및 점유 맵 (522)을 생성한다.
포인트 클라우드 (502)는 인코더 (500)로의 입력을 나타낸다. 포인트 클라우드 (502)는 인코더 (500)와 연관된 메모리에 저장 될 수 있다. 패치 생성 블록 (504)은 포인트 클라우드 (502)를 분해하고 다수의 패치를 생성한다. 패치는 속성으로 구성될 수 있다. 예를 들어, 속성에는 지오메트리와 텍스처가 포함될 수 있다. 지오메트리는 포인트 클라우드 (502)의 각 포인트의 지리적 위치이다. 텍스처는 포인트 클라우드 (502)의 각 포인트의 다양한 양상(aspect), 예컨대 색상, 강도, 법선, 반사 등을 나타낸다. 패치 생성 블록 (504)은 지오메트리 속성 및 텍스처 속성을 클러스터링한다. 클러스터링은 법선 방향, 투사 된 프레임까지의 거리, 연속성 등과 같은 기준에 기초 할 수 있다. 생성된 각 클러스터는 패치로 표시된다.
다양한 실시 예에서, 패치 생성 블록 (504)은 일대일 매핑을 통해 포인트 클라우드의 포인트들을 2D 프레임에 투영하고 매핑한다. 다양한 실시 예에서, 패치 생성 블록 (504)은 포인트를 상이한 평면에 투영함으로써 포인트들의 포인트를 2D 프레임에 투영하고 매핑한다. 다양한 실시 예들에서, 포인트 클라우드의 포인트들을 2D 프레임들에 투영 및 매핑하는 것은 래스터 스캔 매핑, X 지오메트리 좌표에 기초한 매핑, Y 지오메트리 좌표에 기초한 매핑, Z 지오메트리 좌표에 기초한 매핑에 기초 할 수 있고, 컬러에 기초한 맵핑, 법선 방향에 기초한 맵핑 등을 포함한다.
다양한 실시 예들에서, 포인트 클라우드의 포인트들을 2D 프레임 상에 투영 및 매핑 한 후에, 프레임 패킹 블록 (512)은 2D 프레임 내의 포인트들을 분류하고 패킹하여 코딩 효율을 증가시킨다. 프레임 패킹 블록 (512)은 패치 내의 포인트를 분류하고 패킹한다. 다양한 실시 예들에서, 인코더 (500)는 또한 공간적으로 상관된 데이터를 포함하는 이웃하는 포인트들 및 포인트들을 서로 인접하게 배치하는 분류 엔진 (미도시)을 포함 할 수 있다.
패치 생성 블록 (504)은 또한 보조 패치 정보 블록 (506)에 의해 압축되는 보조 패치 정보를 생성한다. 보조 패치 정보 (506)는 각각의 생성된 패치와 관련된 정보이다. 다양한 실시 예에서, 보조 패치 정보는 패치에 관한 메타 데이터이다. 예를 들어, 모든 패치는 (i) 공간 위치 오프셋, (ii) 깊이 오프셋, (iii) 비디오 프레임의 패치 위치, (iv) 패치 크기 (예 : 패치의 높이 및 폭), (v) 투영 평면의 인덱스 등과 같은 보조 정보와 관련이 있다. 보조 패치 정보는 포인트 클라우드를 재구성하기 위한 디코더 (600)와 같은 디코더에 의해 사용된다.
프레임 패킹 블록 (512)은 패치를 지오메트리 프레임 (514) 및 텍스처 프레임 (518)으로 분류하고 패킹한다. 패치 생성 블록 (504)에 의해 생성된 패치에 대응하는 지오메트리 및 텍스처 정보는 지오메트리 프레임 (514) 및 텍스처 프레임 (518)과 같은 별도의 비디오 프레임에 패킹된다. 다양한 실시 예들에서, 프레임 패킹 블록 (512)은 지오메트리 프레임들 (514) 및 텍스처 프레임들 (518)을 생성한다. 프레임 패킹 블록 (512)은 또한 패치들이 프레임으로 배열되고 패킹되는 방법에 기초하여 프레임의 높이 및 폭을 결정한다. 일반 패치는 프레임에서 최소 공간을 차지하도록 배열된다. 즉, 프레임의 크기는 프레임 내의 각 패치의 위치에 기초하여 결정된다. 따라서 프레임은 패치의 방향과 프레임 내 위치에 따라 가능한 가장 작은 크기이다.
프레임 패킹 블록 (512)은 또한 점유 맵 (522)을 생성한다. 점유 맵 (522)은 투영되거나 맵핑 된 포인트 클라우드의 유효 포인트들을 포함하는 프레임 (예를 들어, 지오메트리 프레임 (514) 및 텍스처 프레임 (518))의 픽셀 위치를 나타낸다. 각각의 프레임. 예를 들어, 점유 맵 (522)은 (지오메트리 프레임 (514) 및 텍스처 프레임 (518)과 같은) 각 프레임상의 각각의 픽셀이 유효한 픽셀인지 또는 블랭크인지를 나타낸다. 점유 맵의 유효한 픽셀은 포인트 클라우드의 3D 점에 해당하는 2D 프레임의 픽셀을 나타낸다. 다양한 실시 예에서, 점유 맵 (522)은 지오메트리 프레임 (514) 및 텍스처 프레임 (518)과 같이 각 프레임에 대해 동일 할 수 있다. 다양한 실시 예에서, 점유 맵 (522)은 다수의 점유 맵을 나타내며, 여기서 각 점유 맵은 하나의 프레임(지오메트리 프레임 (514) 및 텍스쳐 프레임 (518)과 같은)에 대응된다. 점유 맵 (522)은 지오메트리 프레임 (514) 또는 텍스처 프레임 (518)의 그것과 유사한 다른 프레임에 포함될 수 있다. 다양한 실시 예에서, 점유 맵 (522)은 별도의 비트 스트림으로서 메타 데이터로서 전송될 수 있다. 이미지 패딩 블록 (534)은 점유 맵 (522)에 의해 지시 된 위치에 기초하여 지오메트리 프레임 (514) 및 텍스쳐 프레임 (518)에 패딩을 추가한다. 비디오 압축 블록 (536)은 예를 들어 비디오 압축 코덱(HEVC 또는 다른 비디오 코덱)을 사용하여 지오메트리 프레임 (514) 및 텍스쳐 프레임 (518)을 압축한다..
다양한 실시 예에서, 지오메트리 재구성 블록 (530)은 현재 지오메트리 프레임 세트 (514) 및/또는 텍스처 프레임 (518)에 대한 포인트 클라우드 데이터를 재구성하고 현재 프레임을 다음 세트의 프레임과 비교함으로써 예측을 수행한다. 이들 실시 예에서, 지오메트리 재구성 블록 (530)은 인코딩 된 비트 스트림에서 상호 관련된 프레임에 대한 추가적인 코딩 효율 또는 개선을 제공하기 위해 프레임 세트 간의 차이 또는 델타 정보를 생성 할 수 있다. 이 차이 또는 델타 정보는 스무딩 블록 (538)에 의해 스무딩이 수행 된 후 다음 세트의 텍스처 프레임 (518)으로 또는 그에 따라 인코딩 될 수 있다. 이와 같이, 다양한 실시 예에서, 지오메트리 재구성 블록 (530)은 포인트 클라우드 압축에서 중복 포인트를 처리하기 위해 제공한다. 아래에서 더 자세히 설명한다. 예를 들어, 지오메트리 재구성 블록 (530)은 포인트 클라우드를 재구성하는데 필요한 컴퓨팅 자원의 양을 감소시키기 위해 예측을 수행하면서 포인트 클라우드의 재구성에서 중복 포인트를 식별 및 무시하거나 제거 할 수 있다.
다양한 실시 예들에서, 보조 패치 정보, 점유 맵 (522) (점유 맵 압축 블록 (532)에 의한 압축 후), 또는 둘 다가 또한 인코딩된다. 그 후, 보조 패치 정보, 인코딩 된 지오메트리 프레임 (514) 및 인코딩 된 텍스처 프레임 (518), 및 점유 맵 (522)은 멀티플렉서 (524)를 통해 멀티플렉싱된다. 멀티플렉서 (524)는 보조 패치 정보 (506), 인코딩 된 지오메트리 프레임 (514), 텍스처 프레임들 (518) 및 점유 맵 (522)은 단일 인코딩 된 비트 스트림 (525)을 생성한다.
도 6은 본 개시의 다양한 실시 예에 따른 디코더 (600)의 개괄적인 개요를 도시한다. 예를 들어, 디코더 (600)는 렌더링을 위해 포인트 클라우드를 디코딩 및 재구성하기 위해 전자 디바이스에 포함될 수 있다. 다양한 실시 예들에서, 디코더는 비트 스트림 (625)으로부터 압축 된 지오메트리 및 속성을 추출한다. 다양한 실시 예에서, 디코더 (600)는 비트 스트림 (625)으로 인코딩 된 지오메트리 및 속성 정보를 포인트 클라우드 (602)를 재생성하기 위해 매핑한다. 디코더 (600)는 디멀티플렉서 (624), 비디오, 점유 맵 및 패치-정보 압축 해제를 위한 압축 해제 블록 (636, 632 및 606) 뿐 아니라, 지오메트리 및 텍스처 재구성 블록 (614 및 618)을 포함한다. 3D 포인트 클라우드를 재구성하기 위해, 디코더 (600)는 다양한 비디오 프레임 (예를 들어, 지오메트리 프레임 (514) 및 텍스쳐 프레임 (518))의 패치 및 패치 메타 데이터 (예 : 보조 패치 정보 및 점유 내에 포함됨) 내의 정보를 사용한다. 맵 (522)은 인코딩 된 비트 스트림 (625)으로부터 역 다중화 및 압축 해제된다.
디코더 (600)는 예를 들어, 인코더 (500)에 의해 인코딩되고 인코더 (500)로부터 수신된 인코딩 된 비트 스트림 (625)을 수신한다. 인코딩 된 비트 스트림 (625)을 수신하면, 디멀티플렉서 (624)는 인코딩 된 비트 스트림 (625)으로부터 다양한 데이터 스트림을 분리한다. 지오메트리 프레임 정보 (원래의 지오메트리 프레임 (514)), 텍스쳐 프레임 정보 (예를 들어, 텍스쳐 프레임 (518)), 점유 맵 정보 (예를 들어, 점유 맵 (522)), 및 보조 패치 정보와 같은 다양한 데이터 스트림을 분리한다. 예를 들어, 디멀티플렉서 (662)는 포인트 클라우드 지오메트리, 텍스처, 다른 속성, 점유 맵 및 패치 정보를 위해 인코딩 된 비트 스트림 (626)을 별도의 압축 된 비트 스트림으로 디멀티플렉싱한다.
점유 맵 압축 해제 블록 (632)에 의해 압축 해제 된 점유 맵 정보는 포인트 클라우드 (602)를 재구성하기 위해 2D 프레임 내의 유효 픽셀 위치를 표시한다. 패치 정보 압축 해제 블록 (606)에 의해 압축 해제 된 디코딩 된 보조 패치 정보로부터 정규 패치의 위치 및 치수가 검색된다. 예를 들어, 패치 오프셋 (디코딩 된 보조 패치 정보로부터)을 비디오의 포인트의 공간 위치에 추가하고 패치의 깊이 오프셋을 공간 위치의 픽셀 값에 추가함으로써 포인트가 정규 패치로부터 재구성된다. 다양한 실시 예들에서, 디코딩 엔진 (672)은 손실이 없거나 손실이 있을 수 있다. 다양한 실시 예들에서, 디코더 (60)는 손실 또는 무손실 인코딩 된 비트 스트림으로부터 포인트 클라우드를 재구성 할 수 있다.
다양한 실시 예에서, 지오메트리 재구성 블록 (614)은 지오메트리 프레임 정보를 디코딩하고, 예를 들어 포인트 지오메트리 및/또는 포인트의 다른 속성, 점유 맵 및/또는 패치 정보에 기초하여 아래에서 더 상세히 논의되는 바와 같이 중복 포인트를 식별한다. 포인트 클라우드 (602)를 재구성 할 때 중복 포인트를 제거하거나 무시한다. 지오메트리 재구성 블록 (614)은 스무딩 블록 (620)에 의해 스무딩 된 2D 지오메트리 프레임으로부터 포인트 클라우드 (602)에서 포인트의 지오메트리를 생성한다. 텍스처 재구성 블록 (618)은 컬러 스무딩 블록 (622)에 의해 스무딩 된 포인트 클라우드 (602)의 포인트들에 텍스처 (예를 들어, 컬러, 뷰 의존적 컬러, 법선, 반사율 등)를 적용한다. 본 발명의 실시 예에 따른 중복 포인트를 식별 및 제거 (또는 무시) 할 때, 지오메트리 및 텍스처 재구성에서의 하드웨어 리소스의 양이 크게 감소된다. 또한, 본 개시의 실시 예에 따르면, 무시되거나 제거 된 포인트는 그 제거가 렌더링 된 3D 포인트 클라우드의 품질에 크게 영향을 미치지 않도록 중복된다.
비록 도 5 및 도 6은 디코더 및 인코더의 예를 도시하지만, 도 5 및 도 6에 대한 다양한 변경이 이루어질 수 있다. 예를 들어,도 5 및 도 6의 다양한 구성 요소는 조합되거나, 더 세분화되거나, 생략 될 수 있고 특정 구성 요소에 따라 추가 구성 요소가 추가되거나 제거 될 수 있다. 예를 들어, MPEG TMC2 (V-PCC)에 대한 인코딩 및 디코딩이 예로서 사용되며, 본 개시의 실시 예는 다른 유형의 포인트 클라우드 인코딩 및 디코딩 기술과 함께 이용 될 수 있다.
도 7은 본 개시의 다양한 실시 예들에 따른 지오메트리에 기초한 중복 포인트 제거 프로세스 (700)에 대한 흐름도를 도시한다. 예를 들어,도 7에 도시된 프로세스는. 도 2의 서버 (200), 도 3의 전자 장치 (300) 또는 일반적으로 여기에서 시스템으로 언급되는 도 5 및 도 6 각각의 지오메트리 재구성 블록 (530 및/또는 614) 에 의해 수행 될 수 있다.
시스템은 지오메트리 프레임에서 첫 번째 픽셀 (i = 0, j = 0)로 시작한다(단계 702). 점유 된 경우(단계 704) (예를 들어, 점유도 맵에 기초하여), 시스템은 2 개의 깊이 계층의 값을 보고(단계 706), 새로운 포인트를 생성하고(단계 708), 포인트를 제1 깊이 계층(D0)에 대한 재구성 된 포인트 클라우드에 추가한다(단계 710).
예를 들어, 도 4를 다시 참조하면, 일 실시 예에서, 인코더 (500)는 포인트 클라우드 프레임 당 지오메트리 및 텍스쳐를 코딩하기 위해 2 개의 프레임을 사용하고, 제1 지오메트리 비디오 프레임에 저장된 값은 제1 깊이 계층 (D0)의 값으로부터 획득되고, 제2 지오메트리 프레임에 저장된 값은 제2 깊이 프레임 (D1)의 대응하는 값으로부터 제1 깊이 층의 값을 뺀 후에 획득된다. 이러한 구현에서, 델타 (i, j)는, 위치 (i, j)에서의 제2 깊이 층 (D1)과 제1 깊이 층 (D0)의 값의 차이로서 정의되며, 압축 된 비트 스트림을 디코딩 한 후, 제2 비디오 프레임의 위치 (i, j)에서 픽셀의 값을 판독함으로써 직접 획득된다. 이 픽셀 인코딩은 실제 값 또는 절대 값 (즉, 단계 (712)에서 플래그 "absolute D1"= 1)이라 칭하여 투영 평면으로부터의 포인트의 실제 깊이 값 (또는 실제 깊이 값에서 오프셋을 뺀 값)으로 지칭된다. 예를 들어, 오프셋은 포인트 그룹 (즉, 패치)에서 모든 포인트의 최소 깊이 값으로 사용된다. 이것은 주로 10 비트 깊이 값이 8 비트 비디오 프레임에 저장하기 위해 "파손(broken up)"될 수 있도록 하기 위해 수행된다. 첫 번째 프레임은 실제 값에서 오프셋을 뺀 값을 저장하는 데 사용된다. 절대 값의 경우 두 번째 프레임에는 실제 값에서 오프셋을 뺀 값도 저장된다.
결과적으로, 델타는 depth 1 - depth 0 (단계 716)의 값으로 계산되고 0보다 크지 않은 경우 (단계 718) (또는 일부 실시 예에서 0의 설정된 임계 값 내에서), 시스템은 포인트를 지오메트리 중복으로 식별한다 시스템이 다음 폭 픽셀을 볼 때 (즉, j = j + 1) 포인트 클라우드로부터 포인트를 제거 (또는 무시/포함/생성하지 않음)한다 (단계 724). 그러나 포인트가 지오메트리 중복이 아닌 경우 시스템은 새 포인트를 작성하고 첫 번째 깊이 (d0) 층의 포인트에 대해 상술한 바와 같이 수행 한 것과 유사하게 새 포인트를 재구성 된 포인트 클라우드에 두 번째 깊이 (d1) 층 (단계 720 및 722)에 대해 추가한다.
다른 실시 예에서, 인코더 (500)는 포인트 클라우드 프레임 당 지오메트리 및 텍스처를 코딩하기 위해 2 개 이상의 프레임을 사용하고, 제1 지오메트리 비디오 프레임에 저장된 값은 제1 깊이 계층 (D0)의 값으로부터 획득되고, 제2 지오메트리 프레임에 저장된 값은 제2 깊이 층 (D1)으로부터 얻어진다. 이러한 구현에서, 델타 (i, j)는 압축 비트 스트림을 디코딩 한 후 위치 (i, j)에서 제1 지오메트리 비디오 프레임의 값을 감산하고 위치 (i, j)에서 제2 지오메트리 비디오 프레임의 값을 감산함으로써 얻어진다. 이 값은 이전 프레임에서의 실제 포인트 깊이와 포인트 깊이 사이의 차이로서 델타 값 (즉, 플래그 "absolute D1"은 단계 712에서 설정되지 않음)으로 지칭된다.
결과적으로, 델타는 픽셀에 대해 저장된 값이고 0보다 크지 않은 경우 (단계 718) (또는 일부 실시 예에서 0의 설정된 임계 값 이내), 시스템은 포인트를 지오메트리 중복으로 식별하고 다음 폭 픽셀(즉, j = j + 1)을 볼 때 포인트 클라우드에서 포인트(또는 무시/포함하지 않음/생성하지 않음)를 제거한다(단계 724). 그러나 포인트가 지오메트리 중복이 아닌 경우 시스템은 새 포인트를 작성하고 첫 번째 포인트에 대해 수행 한 것과 유사하게 새 포인트를 재구성 된 포인트 클라우드에 두 번째 깊이 (d1) 계층 (단계 720 및 722)에 추가한다. 상술 한 바와 같이 깊이 (d0) 층. 그 후, 시스템은 전체 프레임 세트가 처리 될 때까지 모든 프레임 폭 좌표 j (단계 724 및 726) 및 모든 프레임 높이 좌표 i에 대한 프로세스를 계속한다 (단계 728 및 730).
본 명세서에서 논의 된 바와 같이, absoluteD1은 상기 예시 된 2 개의 인코딩 구성을 구별하기위한 플래그이다. 즉, absoluteD1 = 1이면, 제2 비디오 프레임은 제2 깊이 계층 (D1)의 값을 저장하고 (오프셋이 사용되는 경우 오프셋을 뺀 것), 그렇지 않으면, 제2 비디오 프레임은 제2 깊이 층 (D1) 및 제1 깊이 층 (D0)의 값의 차이를 저장한다(오프셋이 사용되는 경우 오프셋을 뺀 것).
이들 실시 예에서, 시스템은 델타의 값을 확인함으로써 이들 지오메트리 중복 포인트를 재구성 된 포인트 클라우드 지오메트리에 추가하는 것을 피하고, 델타가 0보다 큰 경우에만 (즉, 지오메트리 중복이 아닌) 클라우드에 포인트를 추가한다 . 디코딩 된 지오메트리 비디오 프레임의 포인트 클라우드는 GeneratePointCloud ()라는 함수로 재구성된다. 두 번째 프레임에서 포인트를 추가하기위한 의사 코드는 아래에서 설명한다.
2D 지오메트리 프레임에서 모든 위치에 대하여:
---> if (제1 프레임):
------> 2D 프레임과 그 위치에서의 깊이 값으로부터 3D 포인트를 생성한다.
------> 포인트를 포인트 클라우드에 추가한다.
---> if (제2 프레임):
------> if (absoluteD1):
----------> 델타 = 프레임의 현재 위치의 값 - 제1 프레임의 현재 위치의 값
------> else:
----------> 델타 = 프레임의 현재 위치의 값
------> if (델타 > 0):
---------> 2D 프레임의 위치와 그 위치의 깊이 값으로부터 3D 포인트를 생성한다.
도 6에 도시된 실시 예는 일 예로서 들여쓰기 되어있다. 예를 들어, 2 개의 지오메트리 및 텍스쳐 프레임의 비교를 논의하면서, 임의의 수의 지오메트리 및 텍스쳐 프레임이 비교 될 수 있고, 그 안의 중복 지점이 논의 된 바와 같이 처리 될 수 있다. 다른 예에서, (투영 방향, 이웃, 색상 유사성 등에 기초하여) 상관 된 투영 포인트들은 패치 형태로 그룹화된다. 디코딩 된 지오메트리 프레임으로부터 포인트 클라우드를 재구성하는 동안, 패치는 패치 방식으로 지오메트리 프레임으로부터 포인트를 검색한다. 중복 검사는 또한 아래 제공된 의사 코드에 설명 된대로 패치 별 방식으로 수행되며 변수는 아래 표 1에 정의되어 있다.
투영 된 포인트가 지오메트리 프레임 내의 상관 그룹에 저장 될 때 중복 포인트가 어떻게 방지되는지를 나타내는 실시 예의 의사 코드(Pseudocode):
for( p = 0; p <= patch_count_minus1; p++ ) {
patch = patches[p]
for ( v0 = 0; v0 < patch.sizeV0; v0++ ) {
for ( u0 = 0; u0 < patch.sizeU0; u0++ ) {
for ( v1 = 0; v1 < occupancyResolution; v1++ ) {
v = v0 * occupancyResolution + v1;
for ( u1 = 0; u1 < occupancyResolution; u1++ ) {
u = u0 * occupancyResolution + u1;
x = patch.u0 * occupancyResolution + u;
y = patch.v0 * occupancyResolution + v;
occupancy = oFrame[x][y]
if (occupancy == 1){
depth0 = gFrame[0][0][x][y];
point0[patch.normalAxis] = depth0 + patch.d1
point0[patch.tangentAxis] = u + patch.u1;
point0[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(point0) // add the first point to the reconstructed point cloud
if (geometry_absolute_coding_enabled_flag == 1){
for ( l = 1; l <= layer_count_minu1; l++) {
depthl = gFrame[l][0][x][y];
delta = depth0 - depthl;
if (delta > 0){
pointl[patch.normalAxis] = depthl + patch.d1
pointl[patch.tangentAxis] = u + patch.u1;
pointl[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(pointl) // add the point from level l to the reconstructed point cloud
}
}
}
else { // geometry_absolute_coding_enabled_flag is 0
for ( l = 1; l <= layer_count_minu1; l++) {
depthl = gFrame[l][0][x][y];
delta = depthl;
if (delta > 0){
pointl[patch.normalAxis] = depthl + patch.d1
pointl[patch.tangentAxis] = u + patch.u1;
pointl[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(pointl) // add the point from level l to the reconstructed point cloud
}
}
}
}
}
}
}
}
}
표 1 : 위에 제공된 의사 코드의 변수에 대한 설명. 투영 된 점이 지오메트리 프레임 내의 상관 된 그룹에 저장 될 때 중복 포인트가 처리되는 방법을 보여준다.
layer_count_minus1 지오메트리 또는 속성 정보를 인코딩하기 위한 계층 수
patch_count_minus1 지오메트리 (또는 속성) 프레임의 패치 수
geometry_absolute_coding_enabled_flag absolute d1 코딩이 활성화되었는지 여부를 나타내는 플래그
gFrame gFrame [l][c][x][y]로 표시되는 디코드 지오메트리 프레임. 여기서 l = 0?? layer_count_minus1은 깊이 레이어 (지오메트리 비디오 프레임)이고 c = 0은 비디오 지오메트리 비디오 프레임의 첫 번째 색상 평면. x = 0 ... frame_width-1은 열 인덱스이고, y = 0 .. frame_height-1은 해당 레이어의 행 인덱스.
oFrame oFrame [x] [y]로 표현 된 디코딩 된 점유 맵 프레임. 여기서, x = 0 ... frame_width-1은 열 인덱스이고 y = 0 ... frame_height-1은 행 인덱스
recPc 디코딩 된 지오메트리 및 속성 정보로부터 재구성된 포인트 클라우드
patch 포인트를 검색하여 재구성된 포인트 클라우드의 포인트 목록에 추가할 패치
patch.u0 occupancyResolution 단위로 지오메트리 비디오 프레임에서 패치의 열 위치 (아래 참조)
patch.v0 occupancyResolution 단위로 지오메트리 비디오 프레임에서 패치의 행 위치(아래 참조)
patch.u1 지오메트리 비디오 프레임에서 접선 이동 (패치의 맨 위 행)
patch.v1 지오메트리 비디오 프레임의 비트 angential shift (패치의 가장 왼쪽 행)
patch.d1 깊이 이동 (패치의 최소 깊이)
patch.sizeV0 occupancyResolution 단위로 패치 높이 해결 (아래 참조)
patch.sizeU0 occupancyResolution 단위의 패치 너비 해상도 (아래 참조)
patch.normalAxis 패치의 모든 3D 포인트와 함께 축이 투영 평면에 직교 투영되어 있음을 나타내는, 예를 들어 0과 2 사이의 숫자 (포함)
patch.tangentAxis 패치의 2D 평면에서 두 축 중 하나를 나타 내기 위해 예를 들어 0과 2 사이의 숫자 (포함)
patch.bitangentAxis 패치의 2D 평면에서 두 축 중 하나를 나타 내기 위해 예를 들어 0과 2 사이의 숫자 (포함)
occupancyResolution 고유 한 패치에 속하는 비디오 프레임의 최소 블록 단위 (또는 격자) 크기.즉, 서로 다른 두 블록의 픽셀이 동일한 occupancyResolution x occupancyResolution 블록을 차지할 수 없음.
point0, point1 지오메트리 프레임에서 얻은 3D 포인트
addPoint() 지오메트리 좌표로 정의된 포인트를 해당 포인트 클라우드에 추가하는 기능
또 다른 실시 예에서, 투영 된 포인트는 포인트 클라우드 프레임 당 2 개의 지오메트리 비디오 프레임 및 2 개의 속성 비디오 프레임으로 패킹되고 인코딩되는 패치로 그룹화되고, 포인트 클라우드에 존재하는 유일한 속성은 컬러 (또는 텍스처)이다 즉, 디코더에서의 포인트 클라우드는 2 개의 디코딩 된 지오메트리 구조 및 2 개의 디코딩 된 속성 프레임의 패치로부터 재구성된다. 또한,이 실시 예에서, 패치 크기는 보조 패치 정보 (즉, 메타 데이터의 일부)로서 차이 인코딩(difference-encoded)된다.
In this embodiment, first, the patch information is retrieved as follows:
Patch2dShiftU = patch.patch_2d_shift_u * patch.occpancy_packing_block_size
Patch2dShiftV = patch.patch_2d_shift_v * patch.occupancy_packing_block_size
Patch2dSizeU = patch.patch_2d_delta_size_u * patch.occupancy_packing_block_size
Patch2dSizeV = patch.patch_2d_delta_size_v * patch.occupancy_packing_block_size
Patch3dShiftX = patch.patch_3d_shift_tangent_axis
Patch3dShiftY = patch.patch_3d_shift_bitangent_axis
Patch3dShiftZ = patch.patch_3d_shift_normal_axis
where,
occupancy_packing_block_size is the same as occupancyResolution in Table 1.
patch_2d_shift_u specifies the x-coordinate of the top-left corner of the patch bounding box expressed as multiple of occupancy_packing_block_size. The value of patch_2d_shift_u is in the range of 0 to (frame_width/occupancy_packing_block_size -1), inclusive.
patch_2d_shift_v specifies the y-coordinate of the top-left corner of the patch bounding box expressed as multiple of occupancy_packing_block_size. The value of patch_2d_shift_v is in the range of 0 to (frame_height/ occupancy_packing_block_size -1), inclusive.
patch_2d_delta_size_u is the difference of patch width between the current patch and the previous one.
patch_2d_delta_size_v is the difference of patch height between the current patch and the previous one.
patch_3d_shift_tangent_axis is the same as patch.tangentAxis in Table 1.
patch_3d_shift_bitangent_axis is the same as patch.bitangentAxis in Table 1.
patch_3d_shift_normal_axis is the same as patch.normalAxis in Table 1.
이 단계에서, 디코딩 된 프레임 패치 정보 및 디코딩 된 점유 맵과 함께 디코딩 된 지오메트리 프레임으로부터, 색상이 추가되지 않은 포인트 클라우드가 생성된다. 제2 단계에서, 손실 인코딩을 위해, 생성된 (복원 된) 포인트 클라우드는 지오메트리 스무딩 프로세스에 입력된다. 마지막으로, 디코딩 된 텍스처 프레임에서 부드러운 클라우드 포인트에 색상이 추가된다. 디코딩 된 지오메트리 프레임은 포인트 클라우드 당 근거리 및 원거리 계층에 대응하는 2 개의 프레임을 포함하고, 디코딩 된 속성 프레임은 포인트 클라우드 당 근거리 및 원거리 계층에 대응하는 2 개의 프레임을 포함한다. 해당 픽셀의 점유율 값이 1 (가까운 계층에서 1 개, 멀리 계층에서 1 개) 인 경우 픽셀 위치 당 2 개의 점이 생성된다.
x의 Patch2dShiftU에서 (Patch2dShiftU + Patch2dSizeU)까지, y는 Patch2dShiftV에서 (Patch2DShiftV + Patch2dSizeV)까지 패치의 각 픽셀에서 2 개의 점이 생성된다. 픽셀의 점유 값 oFrame [x] [y]가 1 인 경우 첫 번째 점이 다음과 같이 재구성 된 포인트 클라우드에 도출되고 추가된다.
1. Firstly, x_new and y_new are obtained for pixel (x, y) based on the patch packing direction.
2. The coordinates of the point are derived from the geometry frame as follows:
point1[0] = x_new + Patch3dShiftX
point1[1] = y_new + Patch3dShiftY
point1[2] = gFrame[0][x_new][y_new] + Patch3dShiftZ
3. The point is colored by using the attribute frame as follows:
point1[3] = aFrame[0][0][x_new][y_new]
point1[4] = aFrame[0][1][x_new][y_new]
point1[5] = aFrame[0][2][x_new][y_new]
4. The point is then added to the reconstructed point cloud as follows:
addPointToPointCloud(recPc, point1)
The second point is derived as follows:
1. First the coordinates of the point are derived from the geometry frame as follows:
point2[0] = x_new + Patch3dShiftX
point2[1] = y_new + Patch3dShiftY
if(!geometry_absolute_coding_enabled_flag)
point2[2] = gFrame[0][x_new][y_new] + gFrame[1][x_new][y_new] + Patch3dShiftZ
else
point2[2] = gFrame[1][x_new][y_new] + Patch3dShiftZ
2. The point is colored by using the attribute frame as follows:
point2[3] = aFrame[1][0][x_new][y_new]
point2[4] = aFrame[1][1][x_new][y_new]
point2[5] = aFrame[1][2][x_new][y_new]
3. The point is then added to the reconstructed point cloud, if it is not a duplicate of the first point, as follows:
if((point1[0] - point2[0]) && (point1[1] - point2[1] && (point1[2] - point2[2]))
addPointToPointCloud(recPc, point2)
상기 단계들에서 논의 된 실시 예들의 의사 코드 구현이 아래에 제공된다.
투영 포인트가 패치로 그룹화 된 예의 의사 코드, 패치는 포인트 클라우드 프레임 당 2 개의 지오메트리 비디오 프레임과 2 개의 속성 비디오 프레임으로 패킹 및 인코딩되며, 포인트 클라우드에 존재하는 유일한 속성은 색상 (또는 텍스처)이다. 디코더에서의 포인트 클라우드는 2 개의 디코딩 된 지오메트리 구조 및 2 개의 디코딩 된 속성 프레임의 패치로부터 재구성된다.
for (x_new = Patch2dShiftU ; x_new < (Patch2dShiftU + Patch2dSizeU); x_new++)
for (y_new = Patch2dShiftV ; y_new < (Patch2dShiftV + Patch2dSizeV); y_new++)
if (oFrame[x_new][y_new] == 1) {
point[numPtsAdded][0] = x_new + Patch3dShiftX
point[numPtsAdded][1] = y_new + Patch3dShiftY
point[numPtsAdded][2] = gFrame[0][x_new][y_new] + Patch3dShiftZ
for ( i= 0; i < 3; i++)
point[numPtsAdded][3+i] = aFrame[0][i][x_new][y_new]
addPointToPointCloud(recPc, point[numPtsAdded])
numPtsAdded++
point[numPtsAdded][0] = x_new + Patch3dShiftX
point[numPtsAdded][1] = y_new + Patch3dShiftY
if(!geometry_absolute_coding_enabled_flag){}
point[numPtsAdded][2] = gFrame[0][x_new][y_new] + gFrame[1][x_new][y_new] + Patch3dShiftZ
else
point[numPtsAdded][2] = gFrame[1][x_new][y_new] + Patch3dShiftZ
for (i = 0; i < 3; i++)
point[numPtsAdded][3+i] = aFrame[1][i][x_new][y_new]
delta = point[numPtsAdded - 1][2] - point[numPtsAdded][2]
if (delta > 0) {
addPointToPointCloud(recPc, point)
numPtsAdded++
}
}
본 개시의 실시 예는, 낮은 비트 레이트에서, 포인트의 중복이 인코더에서 방지되는 경우 재구성 된 포인트 클라우드에서 약간의 열화가 발생할 수 있음을 인식한다. 따라서, 일부 실시 예들에서, 비트 레이트가 낮은 경우 (즉, 인코더에 또한 주입되지 않음) 중복 포인트 처리가 디코더에서만 구현된다. 디코더에서만 포인트 클라우드 지오메트리 재구성 동안 포인트 중복을 방지하기 위한 의사 코드가 아래에 나와 있다.
디코더에서 포인트의 중복을 피하기 위해 GeneratePointCloud ()의 두 번째 프레임에서 포인트를 추가하기위한 의사 코드 :
for every location in the 2D geometry frame:
---> if (first frame):
------> generate 3D point from the position in 2D frame and value of depth at that location
------> add point to the point cloud
---> if (second frame):
------> if (absoluteD1):
----------> delta = value in the current location in frame - value in the current location in the first frame
------> else:
----------> delta = value in the current location in frame
------> if (encoder)
---------> generate 3D point from the position in the 2D frame and value of the depth at that location
------> else if (decoder and delta > 0):
---------> generate 3D point from the position in the 2D frame and value of the depth at that location
도 8은 본 개시의 다양한 실시 예에 따른 다중 속성 포인트 클라우드를 위한 인코더 (800)의 예시적인 블록도를 도시한다. 인코더 (800)의 실시 예는 단지 예시를 위한 것이다. 다른 실시 예들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
특정 고급 몰입 형 미디어 응용 프로그램(high-end immersive media applications)에서는 동일한 지오메트리 점에 대해 여러 속성 값 (예 :보기 종속 색상, 법선, 반사율 등)이 있는 다중 속성 포인트 클라우드가 사용된다. 이러한 응용 프로그램은 일반적으로 포인트 클라우드와 같은 표면 라이트 필드를 사용하여 뷰 종속 속성을 렌더링한다. 즉, 렌더링되는 (또는 관찰 된) 포인트 클라우드의 포인트 색상은 뷰 방향에 따라 다르다. 레이더로부터 얻은 데이터와 같은 다른 경우에, 소스 포인트 클라우드는 지오메트리 포인트 당 복수의 뷰 의존적 속성을 포함 할 수 있다.
이들 실시 예에서, 소스 포인트 클라우드는 고유하게 정의 된 모든 지오메트리 좌표에 대한 복수의 속성을 포함한다. 즉, 지오메트리 좌표는 소스 포인트 클라우드에서 반복되지 않는다. 디코더 (및 인코더)에서의 이러한 포인트 클라우드 재구성의 경우, 중복 포인트는 도 5 내지 도 7과 관련하여 논의 된 바와 같이 지오메트리 포인트의 재구성 동안 포인트의 지오메트리 값만을 비교함으로써 제거 될 수 있다.다중 속성 인코딩의 경우 포인트 클라우드 지오메트리는 이전과 같이 3D 공간에서 2D 공간으로 투영된다. 본질적으로, 깊이 (투사 방향을 따른 점의 좌표)는 다수의 지오메트리 비디오 프레임에서 다수의 깊이 계층에 저장된다. 포인트의 다른 두 좌표는 다중 지오메트리 비디오 프레임에서 포인트의 2D 위치로 암시적으로 코딩된다. 또한 모든 속성에 대해 별도의 속성 비디오 프레임 세트가 사용된다. 예를 들어, 인코더에서의 패치 생성 블록 (504) 및 프레임 패킹 블록 (512)은 속성 프레임 (8180 내지 818N-1)의 다수의 세트 (n- 세트)를 생성하는데, 세트의 지오메트리 포인트와 관련된 속성의 각각의 상이한 유형에 대해 하나씩 세트 압축 및 다중화는 도 5와 관련하여 논의 된 바와 유사하게 발생한다. 다중 속성 3D 포인트 클라우드 데이터에 대한 인코딩 된 비트 스트림 (825)이 생성된다.
이러한 인코딩 기술을 사용하면, 이것들은 지오메트리의 2D 위치와, 모든 투영 된 포인트에 대한 다수의 지오메트리 및 속성 프레임에 걸친 속성에 해당한다.결과적으로, 소스 (압축되지 않은) 포인트 클라우드에 중복 포인트가 없다는 가정하에 포인트 클라우드의 각 포인트과 연관된 지오메트리는 고유하다.
따라서, 디코더 (600)는 비 압축 및 디코딩 된 비트 스트림으로부터 포인트 클라우드의 재구성 동안 점들의 중복을 검출하기 위해 지오메트리 정보 프레임 (514) 내의 지오메트리 정보만을 사용하여 중복 포인트를 처리 할 수 있다. 결과적으로, 디코더 (600)는 도 6 내지 도 7과 관련하여 설명 된 바와 같이 포인트의 중복을 처리하기 위해 유사한 기술을 사용할 수 있다. 6과 7.
도 9는 본 개시의 다양한 실시 예에 따른 지오메트리 및 속성에 기초한 중복 포인트 제거 프로세스 (900)에 대한 흐름도를 도시한다. 예를 들어, 도 9에 도시된 프로세스는. 도 2의 서버, 도 3의 전자 장치 (300) 또는 일반적으로 여기에서 시스템이라 지칭되고 도 5 및 도 6 각각에 도시된 지오메트리 재구성 블록 (530 및/또는 614)에 의해 수행 될 수 있다.
다양한 실시 예에서, 예를 들어, 동일한 지오메트리 및 속성을 갖는 것으로 중복 포인트를 정의하는 애플리케이션에서, 지오메트리만을 비교하는 것만으로는 포인트가 중복되는 것으로 판단 할 수 없다. 이들 실시 예에서, 지오메트리 및 속성 모두가 중복 포인트를 결정하기 위해 비교된다.도 8에서, 색상이 예로서 사용되었지만, 다른 속성 또는 다수의 속성이 지오메트리와 관련하여 사용되어 포인트가 중복되는지를 판정 할 수 있다. 또한, 위에서 논의 된 바와 같이, 임의의 수의 계층이 2 개 대신 사용될 수 있다.
시스템은 지오메트리 프레임에서 제1 픽셀 (i = 0, j = 0)로 시작한다 (단계 902). 점유 된 경우 (단계 904) (예를 들어, 점유도 맵에 기초하여), 시스템은 2 개의 지오메트리 프레임 및 2 개의 컬러 프레임 (단계 906)의 값을 보고, 새로운 포인트를 생성하고 (단계 908), 포인트를 제1 깊이 계층 (D0)에 대한 재구성 된 포인트 클라우드 (단계 910)에 추가한다.
플래그 "absoluteD1"= 1이 설정되면 (단계 912), 깊이 델타는 depth1 - depth0 에 대한 값으로 계산되고 (단계 916), 0보다 크지 않고 색상 값이 동일하면 (단계 918) (또는 일부 실시 예에서 설정된 임계 값 내 또는 유사한 범위 내)에서, 시스템은 포인트를 지오메트리 중복 및 컬러 중복으로 식별하고, 시스템이 다음 폭 픽셀(즉, j = j + 1)을 볼 때 포인트 클라우드로부터 포인트를 제거(또는 무시/포함하지 않음)한다(단계 924). 그러나, 포인트가 지오메트리 및 색상 중복이 아닌 경우, 시스템은 새로운 포인트를 생성하고 상기 논의 된 바와 같이 제1 깊이 (d0) 층에 대한 포인트에 대해 수행 된 것과 유사하게 제2 깊이 (d1) 계층 (단계 920 및 922)에 대해 재구성 된 포인트 클라우드에 새로운 포인트를 추가한다.
플래그 "absoluteD1"= 1이 설정되지 않은 경우 (단계 912에서), 델타는 픽셀에 대해 저장된 값이며, 0보다 크지 않고 색상 값이 동일하면 (단계 918) (또는 일부 실시 예에서 설정된 임계 값 내 또는 유사한 범위 내), 시스템은 포인트를 지오메트리 중복 및 색상 중복으로 식별하고 시스템이 다음 너비 픽셀 (예 : j= j + 1)을 볼 때 포인트 클라우드에서 포인트를 제거 (또는 무시/포함하지 않음)한다(단계 724). 그러나, 포인트가 지오메트리 및 색상 중복이 아닌 경우, 시스템은 새로운 포인트를 생성하고 포인트에 대해 수행 된 것과 유사하게 제2 깊이 (d1) 계층 (단계 920 및 922)에 대해 재구성 된 포인트 클라우드에 새로운 포인트를 추가한다. 상기 논의 된 바와 같이 제1 깊이 (d0) 층에 대해. 그 후, 시스템은 전체 프레임 세트가 처리 될 때까지 모든 프레임 폭 좌표 j (단계 924 및 926) 및 모든 프레임 높이 좌표 i (단계 928 및 930)에 대한 처리를 계속한다.
다른 실시 예에서, 투영 된 지점은 비디오 프레임에 저장하기 전에 패치 형태로 상관된다. 따라서, 디코딩 된 지오메트리 프레임으로부터 포인트 클라우드를 재구성하는 동안, 패치는 패치 방식으로 지오메트리 및 속성 프레임으로부터 포인트를 검색한다. 중복 검사도 패치별로 수행해야 한다. 이에 대한 의사 코드는 아래에 제공되며 표 2는 의사 코드에 사용 된 변수를 나열하며 의사 코드 자체는 아래에 표시된다.
2D 포인트가 대응하는 프레임에 저장하기 전에 상관 된 패치로 그룹화 될 때 포인트의 중복을 방지하기위한 지오메트리 및 속성 정보를 비교하기 위한 실시 예의 예시 의사 코드:
for( p = 0; p <= patch_count_minus1; p++ ) {
patch = patches[p]
for ( v0 = 0; v0 < patch.sizeV0; v0++ ) {
for ( u0 = 0; u0 < patch.sizeU0; u0++ ) {
for ( v1 = 0; v1 < occupancyResolution; v1++ ) {
v = v0 * occupancyResolution + v1;
for ( u1 = 0; u1 < occupancyResolution; u1++ ) {
u = u0 * occupancyResolution + u1;
x = patch.u0 * occupancyResolution + u;
y = patch.v0 * occupancyResolution + v;
occupancy = oFrame[x][y]
if (occupancy == 1){
depth0 = gFrame[0][0][x][y];
point0[patch.normalAxis] = depth0 + patch.d1
point0[patch.tangentAxis] = u + patch.u1;
point0[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(point0) // add the first point to the reconstructed point cloud
for ( t=0; t < attribute_count; t++) {
redPc.setAttribute(aFrame[0][t][x][y]) // add attributes to the first point
}
if (geometry_absolute_coding_enabled_flag == 1){
for ( l = 1; l <= layer_count_minu1; l++) {
depthl = gFrame[l][0][x][y];
delta = depth0 - depthl;
unique_attributes = compare_attributes(aFrame, x, y);
if ((delta > 0) && (unique_attributes == True)){
pointl[patch.normalAxis] = depthl + patch.d1
pointl[patch.tangentAxis] = u + patch.u1;
pointl[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(pointl) // add the point from level l to the reconstructed point cloud
for ( t=0; t < attribute_count; t++) {
redPc.setAttribute(aFrame[l][t][x][y]) // add attributes to the point from lth level
}
}
}
}
else { // geometry_absolute_coding_enabled_flag is 0
for ( l = 1; l <= layer_count_minu1; l++) {
depthl = gFrame[l][0][x][y];
delta = depthl;
if (delta > 0){
pointl[patch.normalAxis] = depthl + patch.d1
pointl[patch.tangentAxis] = u + patch.u1;
pointl[patch.bitangentAxis] = v + patch.v1;
recPc.addPoint(pointl) // add the point from level l to the reconstructed point cloud
}
}
}
}
}
}
}
}
Table 2: Explanation of variables in the example pseudocode provided above for the embodiment to compare geometry and attribute information for preventing duplication of points when the 2D points are grouped into correlated patches before storing into corresponding frames.
layer_count_minus1 지오메트리 또는 속성 정보를 인코딩하기위한 레이어 수
patch_count_minus1 지오메트리 (또는 속성) 프레임의 패치 수
geometry_absolute_coding_enabled_flag 절대 d1 코딩이 활성화되었는지 여부를 나타내는 플래그
gFrame 디코드 지오메트리 프레임
oFrame 디코딩 된 점유 맵 프레임
recPc 디코딩 된 지오메트리 및 속성 정보로부터 재구성된 포인트 클라우드
occupancyResolution 고유한 패치에 속하는 비디오 프레임의 최소 블록 단위 (또는 격자) 크기.즉, 서로 다른 두 블록의 픽셀이 동일한 occupancyResolution x occupancyResolution block을 차지할 수 없음.
aFrame 디코딩 된 속성 프레임
attribute_count 포인트 클라우드와 연관된 속성 수 (지오메트리 제외)를 나타냄.
다른 실시 예에서, 지오메트리 좌표는 소스 (멀티 속성) 포인트 클라우드에 속성이 있는 횟수만큼 반복된다. 다시 말해, 소스 (압축되지 않은) 포인트 클라우드에서 3D 공간에서 동일한 위치를 나타내는 지오메트리 좌표의 고유 중복이 있다. 이러한 유형의 포인트 클라우드에 대해, 주어진 재구성 된 점이 중복 포인트인지에 대한 결정은 단지 지오메트리 정보를 비교하는 것에 기초하여 이루어질 수 없다. 대신, 지오메트리 및 관련 색상 세트 (및 다른 속성 (있는 경우))를 사용하여 점이 투과 점의 중복인지 여부를 결정한다.
일 실시 예에서, 깊이 층의 수 (도 8의 "d")는 이전의 예시적인 예와 유사한 2 개로 제한 될 수 있다. 이러한 시나리오에서 (서로 다른 속성을 가진) 동일한 3D 포인트가 별도의 패치로 인코딩 될 수 있다. 다른 실시 예에서, 깊이 계층의 수 (도 8의 "d")는 속성의 수 (즉, 소스 포인트 클라우드에서의 지오메트리 중복의 수)보다 크거나 같을 수 있다. 이러한 실시 예에 대해서도, 동일한 3D 포인트 (서로 다른 속성을 갖는)가 별도의 패치로 인코딩 될 수 있다. 따라서, 이들 실시 예들 모두에서, 잠재적으로 동일한 지오메트리 좌표 및/또는 속성 값을 갖는 모든 포인트가 동시에 ( "델타"계산을 위해) 이용 가능하지 않을 가능성이 높다. 결과적으로 먼저 매핑 데이터 구조 (사전 등)를 사용하여 지오메트리 좌표 값과 지오메트리 프레임 정보를 저장한다. 예를 들어, 고유한 해시는 재구성 된 좌표 값으로 구성되고 사전에 키를 사용하고, 포인트가 검색된 프레임 번호는 사전의 키에 해당하는 목록에 저장된다. 사전에서 각 키에 해당하는 목록의 크기 (3D 지오메트리 좌표를 고유하게 식별하는 데 사용할 수 있음)는 동일한 지오메트리 좌표를 공유하는 포인트 수를 나타낸다. 모든 지오메트리 포인트를 재구성 한 후에는 해당 목록 크기가 속성 수보다 큰 해당 포인트 만 가져온다(해시 키 사용). (중복 포인트 생성을 나타냄). 그런 다음 속성 정보는 "n"개의 가장 고유한 포인트들만 유지하는 데 사용된다.
또 다른 실시 예에서, 다중 속성 포인트 클라우드의 지오메트리 및 속성이 어떻게 정의되는지에 관계없이, 재구성 된 포인트 클라우드는 상이한 속성 (포인트 클라우드의 다중 속성 특성에서 유래)을 갖는 지오메트리의 다수의 사본을 포함한다. 이러한 재구성 된 포인트 클라우드에 대해, 다시 말하면, 주어진 재구성 된 점이 중복되는지 여부에 대한 결정은 지오메트리와 속성을 비교함으로써 이루어진다.
위에서 논의되고 반복 된 바와 같이, 재구성 된 포인트 클라우드의 포인트가 중복되는지 여부를 결정하기 위해 비교 된 지오메트리 값 및/또는 속성 값 사이의 정확한 유사성이 필요하지 않다. 일부 실시 예에서, 포인트는 적절한 메트릭을 사용하여 서로 근접한 값이면 중복되어야 한다. 예를 들어, 절대 델타 (위에서 논의한 바와 같이)가 작은 임계 값보다 작은 경우 및/또는 두 포인트 사이의 속성에 대해 계산 된 유클리드 거리가 a보다 작은 경우 포인트는 다른 포인트의 중복물로 정의 될 수 있다. 작은 임계 값. 이러한 전략은 일부 부동 소수점 속성 (예 : 반사율, 법선 벡터 등)이 포인트 클라우드의 각 포인트와 연관 될 때 특히 유용하다.
또 다른 실시 예에서, 단일 지오메트리 비디오 프레임 및 대응하는 단일 속성 비디오 프레임은 포인트 클라우드 프레임 당 2 개의 깊이 계층으로 구성된다. 두 개의 깊이 계층을 단일 비디오 지오메트리 프레임으로 변환하기 위해 몇 가지 보간 기술(interpolation techniques)이 사용될 수 있다. 일 실시 예에서, 디코딩 된 지오메트리 프레임은 포인트 클라우드 당 단일 프레임을 포함하고 디코딩 된 속성 프레임은 포인트 클라우드 당 단일 프레임을 포함한다. 단일 지오메트리 계층에는 지오메트리의 근거리 및 원거리 계층에서 인터리브(interleaved) 된 픽셀이 포함되고 단일 속성 계층에는 근거리 및 원거리 계층의 인터리브 된 픽셀이 포함된다. 인터리브 된 (지오메트리 또는 속성) 프레임은 근거리 계층에서 하나의 픽셀을 가져오고 다음으로 원거리 계층에서 가져온다. 예를 들어, 픽셀 (x, y)에서 (x + y)가 짝수이면 근거리 계층의 값이 사용되고 (x + y)가 홀수이면 원거리 계층의 값이 사용된다.
해당 픽셀의 점유율 값이 1 인 경우 하나는 근거리 계층에서, 하나는 원거리 계층에서 1 인 경우 픽셀 위치 당 2 개의 점이 생성된다. 인터리브 된 프레임은 두 계층 중 하나의 정보만을 포함하기 때문에, 누락 된 계층 값은 이웃을 보간함으로써 예측된다. (x + y)가 짝수이면 근거리 계층의 값을 사용할 수 있으며, 원거리 계층의 값이 보간된다. 마찬가지로 (x + y)가 홀수이면 원거리 계층의 값을 사용할 수 있으며 근거리 계층의 값이 보간된다. 이러한 실시 예에서, 3D 포인트의 깊이 값을 다수의 깊이 층으로 복사하기 때문에 인코더에서 중복이 방지된다. 그러나, 지오메트리 포인트 및/또는 속성 값의 중복은 손실 코딩 및/또는 픽셀 보간 및 외삽 (예측)의 결과로 야기 될 수 있다. 최종 재구성 된 포인트 클라우드에서 포인트의 중복 처리는 도 5 내지도 7과 관련하여 위에서 논의 된 프로세스를 따른다. 보다 구체적으로, 제1 층 또는 제2 층에 대해, 예측 된 지오메트리 및/또는 속성 값은 디코딩 된 지오메트리 및/또는 속성 비디오 프레임으로부터 직접 획득 된 동일한 2D 픽셀 위치에서의 포인트의 대응하는 지오메트리 및/또는 속성 값과 비교된다. 가능한 중복이 감지되는 경우, 즉 예측 된 (외삽 된) 점의 지오메트리 및/또는 속성 값이 해당 지오메트리 및/또는 직접 얻은 점의 속성 값과 정확히 동일하거나 그 임계 값 내에있는 경우, 예측 포인트는 재구성된 포인트 클라우드에 추가되지 않는다.
본 개시의 다양한 실시 예는 다각형 메시 (또는 "메시")의 인코딩 및 디코딩에 적용될 수 있다. 포인트 클라우드처럼, 메쉬는 가상 3D 객체를 나타내는 데 사용될 수 있다. 포인트 클라우드와 마찬가지로 대부분의 메쉬 파일에도 정점 및 속성 목록이 포함되어 있다. 또한 대부분의 메쉬 파일에는 조각 단위 연속 표면을 생성하는 데 사용되는 면 및 모서리 리스트도 포함되어 있다. 본 발명의 실시 예는 성숙한 2D 이미지/비디오 압축 기술을 이용하기 위해 MPEG V-PCC와 같은 깊이 계층 기반 기술을 이용하는 임의의 메시 압축 알고리즘과 관련하여 중복 정점을 처리하는데 사용될 수 있다.
도 10은 본 개시의 다양한 실시 예들에 따라 3D 포인트 클라우드 데이터를 디코딩하기 위한 프로세스 (1000)의 흐름도를 도시한다. 예를 들어,도 10에 도시된 프로세스는. 도 2의 서버 (200), 도 3의 전자 장치 (300) 또는 일반적으로 여기에서 시스템으로 지칭되고, 도 5 및 도 6에 각각 도시된 지오메트리 재구성 블록 (530 및/또는 614)에 의해 수행될 수 있다.
프로세스는 시스템이 3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 수신하는 것으로 시작한다 (단계 1005). 예를 들어, 단계 1005에서, 3D 포인트 클라우드 데이터는 2D 프레임 및 메타 데이터를 압축 할 수 있으며, 여기서 프레임은 3D 포인트 클라우드 데이터를 포함하도록 인코딩된다. 그 후, 시스템은 복수의 2D 프레임을 식별하기 위해 비트 스트림을 디코딩한다 (단계 1010). 예를 들어, 단계 1010에서, 시스템은 전술 한 바와 같이 압축 된 프레임 및 메타 데이터를 압축 해제하고 분리 할 수 있다.
그 후 시스템은 둘 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별한다 (단계 1015). 예를 들어, 단계 1015에서, 시스템은 복수의 2D 프레임으로부터 2 개 이상의 2D 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 대응하는 픽셀을 식별 할 수 있다.
예를 들어, 대응하는 픽셀은 상이한 깊이 또는 층에 대한 프레임들 사이에서 동일한 i, j 픽셀 좌표 값을 가질 수 있다. 일부 실시 예에서, 시스템은 점유 맵을 사용하여 대응하는 픽셀을 식별 할 수 있다. 그 후, 시스템은 대응하는 픽셀의 깊이 값을 식별한다 (단계 1020). 예를 들어, 단계 1020에서, 시스템은 둘 이상의 지오메트리 프레임에서 i, j 좌표 위치에 인코딩 된 값을 판독 할 수 있다.
그 후 시스템은 식별된 깊이 값에 기초하여 중복 포인트를 식별한다 (단계 1025). 예를 들어, 단계 1025에서, 시스템은 동일하거나 유사한 2 개 이상의 지오메트리 프레임에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 중복 포인트를 식별 할 수 있다. 실제 (또는 절대) 깊이 값이 인코딩되는 경우의 하나의 예에서, 시스템은 2 개 이상의 지오메트리 프레임 중 첫 번째에서 대응하는 픽셀 중 첫 번째에 대한 첫 번째 깊이 값을 식별 한 다음 그 값을 두 번째와 비교할 수 있다 두 개 이상의 지오메트리 프레임 중 두 번째부터 해당하는 두 번째 픽셀에 대한 깊이 값. 그 후, 시스템은 비교 된 깊이 값들이 동일하거나 서로의 임계 값 내에있는 경우, 제2 지오메트리 프레임에서 제2 픽셀에 의해 표현 된 포인트가 중복 포인트 인 것으로 결정한다. 여기서, 깊이 값은 포인트가 투영되는 평면으로부터 3D 포인트 클라우드의 포인트 깊이를 나타내며, 실제 깊이 값 또는 실제 깊이 값에서 지오메트리 프레임의 해당 픽셀 위치에서 오프셋을 뺀 값으로 인코딩된다. 델타 값이 인코딩되는 경우에 대한 다른 예에서, 시스템은 2 개 이상의 지오메트리 프레임 중 두 번째에서 대응하는 픽셀 중 두 번째에 대한 깊이 값이 0 또는 임계 값 미만인지를 결정할 수 있다. 그렇다면, 시스템은 제2 지오메트리 프레임에서 제2 픽셀에 의해 표현 된 포인트를 중복 포인트로 결정한다. 여기서, 깊이 값은 포인트가 투영되는 평면으로부터 3D 포인트 클라우드의 포인트 깊이를 나타내며, 제2 지오메트리 프레임의 경우, 제1 지오메트리 프레임에 대한 델타 값 (잠재적으로 오프셋)으로 인코딩된다.
또한, 다양한 실시 예에서, 시스템은 지오메트리 값 외에 텍스쳐 또는 속성 값을 사용하여 포인트가 중복되는지 여부를 결정할 수 있다. 시스템은 대응하는 픽셀의 깊이 값에 기초하여 둘 이상의 지오메트리 프레임 중 제2의 픽셀이 전술 한 바와 같이 지오메트리 중복인지를 결정할 수 있다. 또한, 시스템은 하나 이상의 지오메트리 중복 제2 픽셀에 각각 대응하는 하나 이상의 제2 텍스처 값이 하나 이상의 제1 픽셀에 각각 대응하는 하나 이상의 제1 텍스처 값의 텍스처 중복인지를 결정할 수 있다. 그렇다면, 시스템은 점들이 텍스처 중복이라고 결정한다. 지오메트리와 텍스쳐가 중복되면, 그 점이 중복 포인트이라고 결정하는 단계를 포함한다. 예를 들어, 식별된 중복 포인트 각각은 둘 이상의 지오메트리 프레임으로 표시되는 지오메트리 및 하나 이상의 속성이 하나 이상의 속성 프레임 세트를 표시하며, 시스템은 둘 이상의 지오메트리 프레임 및 하나 이상의 속성 프레임 세트에 기초하여 중복 포인트를 식별한다.
그 후, 시스템은 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시한다 (단계 1030). 예를 들어, 단계 1030에서, 시스템은 하나 이상의 3D 객체를 생성 할 때 포인트 클라우드에 중복 포인트를 생성, 제거 또는 추가하지 않을 수 있다.
다양한 실시 예들에서, 중복 포인트들이 추가되지 않는지 여부는 3D 포인트 클라우드를 재구성하기위한 애플리케이션의 유형에 의존 할 수 있다. 예를 들어, 시스템은 뷰 의존적이지 않은 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시할 수 있지만, 뷰 의존적인 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트 중 적어도 일부를 사용할 수 있다. 예를 들어, 6DoF 애플리케이션과 같은 뷰 의존형 애플리케이션은 다양한 시점 (예를 들어, 사용자가 장면에서 "걸을 수 있는"AR(augmented reality)/VR 애플리케이션)에서 객체를 볼 수 있게한다. 이러한 경우, 다른 각도에서 포인트를 보는 데 추가 속성이 필요할 수 있다 (예 : 뷰 종속 색상 또는 반사율 등). 이들 실시 예에서, 시스템은 3D 포인트 클라우드를 재구성하기 위한 애플리케이션의 유형을 식별하고 (즉, 뷰 의존적이거나 그렇지 않음), 뷰 의존적 애플리케이션에 대해 텍스처 중복 (또는 속성) 중복이 아닌 지오메트리 중복 인 포인트를 제거 또는 무시할 수 있다. 뷰 의존적이지 않은 애플리케이션의 경우, 시스템은 3D 포인트 클라우드 데이터를 재구성하는 동안 텍스처 (또는 속성) 중복되지 않을 수 있는 포인트를 포함하여 지오메트리가 중복 된 포인트를 제거하거나 무시한다.
비록 도 7, 9 및 10은 3D 포인트 클라우드 데이터의 중복 포인트 제거 또는 디코딩을 위한 프로세스의 예를 도시하나, 도 7, 9 및 10에 대한 다양한 변경이 이루어질 수 있다. 예를 들어, 일련의 단계 들로서 도시되어 있지만, 각 도면의 다양한 단계들은 중첩되거나, 병렬로 발생하거나, 다른 순서로 발생하거나, 여러 번 발생할 수 있다.
도면은 사용자 장비의 상이한 예를 도시하지만, 도면에 대해 다양한 변경이 이루어질 수 있다. 예를 들어, 사용자 장비는 임의의 적절한 구성으로 임의의 수의 각 구성 요소를 포함 할 수 있다. 일반적으로, 도면은 본 개시의 범위를 임의의 특정 구성 (들)으로 제한하지 않는다. 또한, 도면은 본 특허 문헌에 개시된 다양한 사용자 장비 특징이 사용될 수 있는 동작 환경을 도시하지만, 이들 특징은 임의의 다른 적합한 시스템에서 사용될 수 있다.
본 발명은 예시적인 실시 예로 설명되었지만, 통상의 기술자에게는 다양한 변경 및 수정이 제안 될 수 있다. 본 개시는 첨부 된 청구 범위의 범주 내에 속하는 그러한 변경 및 수정을 포함하는 것으로 의도된다.

Claims (15)

  1. 3D 포인트 클라우드 데이터를 디코딩하기 위한 디코더에 있어서,
    3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 수신하도록 구성된 통신 인터페이스와,
    복수의 2D 프레임을 식별하도록 상기 비트 스트림을 디코딩하고,
    2 이상의 지오메트리 프레임 내의 대응하는 픽셀의 위치에 기반하여 상기 복수의 2D 프레임의 상기 2 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하고,
    상기 2 이상의 지오메트리 프레임에서 상기 대응하는 픽셀의 깊이 값을 식별하고,
    상기 2 이상의 지오메트리 프레임에서 하나 이상의 속성을 나타내는 하나 이상의 속성 프레임 세트를 식별하고,
    상기 2 이상의 지오메트리 프레임 및 상기 하나 이상의 속성 프레임 세트에서 상기 대응하는 픽셀의 상기 식별된 깊이 값에 기반하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하고,
    3D 포인트 클라우드 데이터를 재구성하는 동안 상기 식별된 중복 포인트를 제거하거나 무시하도록 구성되는 프로세서를 포함하는 디코더.
  2. 제1 항에 있어서,
    상기 식별된 깊이 값에 기반하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나에서 상기 중복 포인트를 식별하기 위해, 상기 프로세서는,
    상기 2 이상의 지오메트리 프레임 중 첫 번째에서, 대응하는 픽셀 중 첫 번째에 대한 제1 깊이 값을 식별하고,
    상기 2 이상의 지오메트리 프레임 중 두 번째에서, 대응하는 픽셀 중 두 번째에 대한 제2 깊이 값을 식별하고, 상기 첫 번째 및 두 번째 픽셀은 각각의 지오메트리 프레임에서 대응하는 위치를 가지며,
    상기 식별된 제1 및 제2 깊이 값이 서로 동일하거나 서로의 임계 값 내에 있는지를 결정하기 위해 상기 식별된 제1 및 제2 깊이 값을 비교하고,
    상기 제1 및 제2 깊이 값이 서로 동일하거나 서로의 임계 값 내에 있다는 결정에 기반하여 상기 2 이상의 지오메트리 프레임 중 상기 두 번째에서 상기 두 번째 픽셀에 의해 표현된 포인트가 중복 포인트 중 하나라고 결정하도록 구성되고,
    상기 깊이 값들은 포인트들이 투영되는 평면으로부터 3D 포인트 클라우드의 포인트들의 깊이를 나타내며, 실제 깊이 값들 또는 실제 깊이 값들로부터 상기 2 이상의 지오메트리 프레임에서 대응하는 픽셀들의 위치들에서의 오프셋을 뺀 것으로 인코딩하는 디코더.
  3. 제1 항에 있어서, 상기 식별된 깊이 값에 기초하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나에서 상기 중복 포인트를 식별하기 위해, 상기 프로세서는:
    두 개 이상의 지오메트리 프레임 중 첫 번째에서 대응하는 픽셀 중 첫 번째에 대한 제1 깊이 값을 식별하고,
    두 개 이상의 지오메트리 프레임 중 두 번째에서 대응하는 픽셀 중 두 번째에 대한 제2 깊이 값이 0 또는 임계 값 미만인지를 결정하고, 첫 번째 및 두 번째 픽셀은 각각의 지오메트리 프레임에서 대응하는 위치를 가지며,
    제2 깊이 값이 0 또는 임계 값 미만이라는 결정에 기반하여, 두 번째 지오메트리 프레임에서 두 번째 픽셀에 의해 표현된 포인트가 중복 포인트 중 하나라고 결정하도록 구성되며,
    상기 깊이 값은, 포인트가 투영되는 평면으로부터 3D 포인트 클라우드의 포인트 깊이를 나타내며, 두 번째 지오메트리 프레임의 경우, 첫 번째 지오메트리 프레임에 대한 델타 값으로 인코딩 되는 디코더.
  4. 제1 항에 있어서,
    상기 2 이상의 지오메트리 프레임에서 대응되는 픽셀들의 깊이 값에 기반하여, 상기 2 이상의 지오메트리 프레임의 두 번째에 대응하는 픽셀들의 하나 이상의 두 번째 픽셀들이 상기 2 이상의 지오메트리 프레임의 첫 번째에 대응하는 픽셀들의 하나 이상의 첫 번째 픽셀들과 지오메트리 중복인지 결정하고,
    하나 이상의 두 번째 픽셀이 지오메트리 중복임을 결정하는 것에 기초하여, 하나 이상의 지오메트리 중복된 두 번째 픽셀에 각각 대응하는 하나 이상의 두 번째 텍스처 값이 하나 이상의 첫 번째 픽셀에 각각 대응하는 하나 이상의 첫 번째 텍스처 값의 텍스처 중복인지를 결정하고,
    하나 이상의 두 번째 픽셀 중 적어도 하나가 하나 이상의 첫 번째 픽셀 중 하나 이상의 지오메트리 및 텍스처 중복 둘 다라는 결정에 기반하여, 하나 이상의 두 번째 픽셀에 의해 표현되는 포인트가 중복 포인트 중 하나인 것으로 결정하도록 구성되고,
    첫 번째 및 두 번째 텍스처 값은 복수의 2D 프레임에서 각각 첫 번째 및 두 번째 텍스처 프레임으로부터 식별되고, 첫 번째 및 두 번째 텍스처 프레임은 각각 첫 번째 및 두 번째 지오메트리 프레임에 대응하는 디코더.
  5. 제1 항에 있어서,
    상기 프로세서는 3D 포인트 클라우드를 재구성하기 위한 애플리케이션의 유형을 식별하도록 구성되고,
    상기 프로세서는 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하기 위해,
    뷰 의존적이 아닌 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하도록 구성되고,
    프로세서는 또한 뷰 의존적인 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하면서 식별된 중복 포인트 중 적어도 일부를 사용하도록 구성되는 디코더.
  6. 제1 항에 있어서,
    프로세서는 3D 포인트 클라우드를 재구성하기 위한 애플리케이션의 유형을 식별하도록 더 구성되며,
    상기 식별된 중복 포인트는 지오메트리 중복이고 식별된 중복 포인트 중 적어도 일부는 지오메트리 중복이지만 텍스처 중복은 아니며,
    3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하기 위해, 상기 프로세서는 또한 뷰 의존적이지 않은 애플리케이션 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 모든 중복 포인트를 제거 또는 무시하도록 구성되고,
    상기 프로세서는 식별된 중복 포인트들 중 적어도 일부가 지오메트리 중복이지만 텍스처 의존적이지 않은 뷰 중복에 의존하는 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하도록 구성되는 디코더.
  7. 삭제
  8. 3D 포인트 클라우드 데이터를 인코딩하기 위한 인코더에 있어서,
    프로세서는,
    3D 포인트 클라우드 데이터에 대한 2 차원 (2D) 프레임의 첫 번째 세트를 인코딩 된 비트 스트림으로 인코딩하고,
    3D 포인트 클라우드 데이터에 대한 제2 세트의 2D 프레임을 인코딩 된 비트 스트림으로 인코딩하기 위해 제1 세트의 2D 프레임에 대한 예측을 수행하도록 구성되고,
    상기 예측을 수행하기 위해 상기 프로세서는
    복수의 2D 프레임을 생성하도록 비트 스트림을 디코딩하고,
    2 이상의 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 복수의 2D 프레임에서 2 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하고,
    2 이상의 지오메트리 프레임에서 대응하는 픽셀의 깊이 값을 식별하고,
    상기 2 이상의 지오메트리 프레임에서 하나 이상의 속성을 나타내는 하나 이상의 속성 프레임 세트를 식별하고,
    2 이상의 지오메트리 프레임 및 상기 하나 이상의 속성 프레임 세트에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 2 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하고,
    3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시하도록 더 구성되며,
    3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 전송하도록 구성된 통신 인터페이스를 더 포함하는 인코더.
  9. 제 8 항에 있어서, 상기 식별된 깊이 값에 기초하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나에서 상기 중복 포인트를 식별하기 위해, 상기 프로세서는,
    2 이상의 지오메트리 프레임 중 첫 번째에서 해당 픽셀 중 첫 번째에 대한 제1 깊이 값을 식별하고,
    2 이상의 지오메트리 프레임 중 두 번째에서, 대응하는 픽셀 중 두 번째에 대한 제2 깊이 값을 식별하고, 첫 번째 및 두 번째 픽셀은 각각의 지오메트리 프레임에서 대응하는 위치를 가지며,
    식별된 제1 및 제2 깊이 값을 비교하여 식별된 제1및 제2 깊이 값이 서로 동일하거나 서로의 임계 값 내에 있는지를 결정하고,
    제1 및 제2 깊이 값이 서로 동일하거나 서로의 임계 값 내에 있다고 결정하는 것에 기초하여 두 번째 지오메트리 프레임에서 두 번째 픽셀에 의해 표현된 포인트가 중복 포인트 중 하나라고 결정하도록 구성되며,
    상기 깊이 값은 포인트가 투영되는 평면으로부터 3D 포인트 클라우드의 포인트 깊이를 나타내며, 실제 깊이 값 또는 실제 깊이 값에서 2 개 이상의 지오메트리 프레임 내의 대응하는 픽셀의 위치에서의 오프셋을 뺀 값으로 인코딩되는 인코더.
  10. 제 8 항에 있어서,
    상기 식별된 깊이 값에 기초하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나에서 상기 중복 포인트를 식별하기 위해, 상기 프로세서는,
    2 이상의 지오메트리 프레임 중 첫 번째에서 해당 픽셀 중 첫 번째에 대한 첫 번째 깊이 값을 식별하고,
    2 이상의 지오메트리 프레임 중 두 번째에서 대응하는 픽셀 중 두 번째에 대한 제2 깊이 값이 0 또는 임계 값 미만인지를 결정하고, 첫 번째 및 두 번째 픽셀은 각각의 지오메트리 프레임에서 대응하는 위치를 가지며,

    제2 깊이 값이 0 또는 임계 값 미만이라는 결정에 기초하여 두 번째 지오메트리 프레임에서 두 번째 픽셀에 의해 표현된 포인트가 중복 포인트 중 하나라고 결정하도록 구성되며,
    상기 깊이 값은 포인트가 투영되는 평면으로부터 3D 포인트 클라우드의 포인트 깊이를 나타내며, 두 번째 지오메트리 프레임의 경우, 첫 번째 지오메트리 프레임에 대한 델타 값으로 인코딩되는 인코더.
  11. 제 8 항에 있어서,
    상기 식별된 깊이 값에 기초하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나에서 상기 중복 포인트를 식별하기 위해, 상기 프로세서는,
    상기 2 이상의 지오메트리 프레임에서 대응되는 픽셀들의 깊이 값에 기반하여, 상기 2 이상의 지오메트리 프레임의 두 번째에 대응하는 픽셀들의 하나 이상의 두 번째 픽셀들이 상기 2 이상의 지오메트리 프레임의 첫 번째에 대응하는 픽셀들의 하나 이상의 첫 번째 픽셀들과 지오메트리 중복인지 결정하고,
    하나 이상의 두 번째 픽셀이 지오메트리 중복임을 결정하는 것에 기초하여, 하나 이상의 지오메트리 중복된 두 번째 픽셀에 각각 대응하는 하나 이상의 두 번째 텍스처 값이 하나 이상의 첫 번째 픽셀에 각각 대응하는 하나 이상의 첫 번째 텍스처 값의 텍스처 중복인지를 결정하고,
    하나 이상의 두 번째 픽셀 중 적어도 하나가 하나 이상의 첫 번째 픽셀 중 하나 이상의 지오메트리 및 텍스처 중복 둘 다라는 결정에 기반하여, 하나 이상의 두 번째 픽셀에 의해 표현되는 포인트가 중복 포인트 중 하나인 것으로 결정하도록 구성되고,
    첫 번째 및 두 번째 텍스처 값은 복수의 2D 프레임에서 각각 첫 번째 및 두 번째 텍스처 프레임으로부터 식별되고, 첫 번째 및 두 번째 텍스처 프레임은 각각 첫 번째 및 두 번째 지오메트리 프레임에 대응하는 인코더.
  12. 제8항에 있어서,
    상기 프로세서는, 3D 포인트 클라우드를 재구성하기 이한 애플리케이션의 유형을 식별하도록 더 구성되고,
    상기 프로세서는 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하기 위해, 뷰 의존적이 아닌 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하도록 구성되고,
    상기 프로세서는, 뷰 의존적 인 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하면서 식별된 중복 포인트 중 적어도 일부를 사용하도록 구성되는 인코더.
  13. 제 8 항에 있어서,
    상기 프로세서는 3D 포인트 클라우드를 재구성하기위한 애플리케이션의 유형을 식별하도록 더 구성되며, 상기 식별된 중복 포인트는 지오메트리 중복이고 식별된 중복 포인트 중 적어도 일부는 지오메트리 중복이지만 텍스처 중복은 아니며,
    3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거 또는 무시하기 위해, 프로세서는 또한 뷰 의존적이지 않은 애플리케이션 유형에 대해 3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 모든 중복 포인트를 제거 또는 무시하도록 구성되고,
    상기 프로세서는 식별된 중복 포인트들 중 적어도 일부가 지오메트리 중복이지만 텍스처 의존적이지 않은 뷰 중복에 의존하는 애플리케이션의 유형에 대해 3D 포인트 클라우드 데이터를 재구성하도록 구성되는 인코더.
  14. 3D 포인트 클라우드 데이터를 디코딩하기 위한 디코더의 동작 방법에 있어서,
    3D 포인트 클라우드 데이터를 포함하는 인코딩 된 비트 스트림을 수신하는 단계;
    복수의 2D 프레임을 식별하도록 상기 비트 스트림을 디코딩하는 단계;
    2 이상의 지오메트리 프레임 내의 대응하는 픽셀의 위치에 기반하여 상기 복수의 2D 프레임의 상기 2 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하는 단계;
    상기 2 이상의 지오메트리 프레임에서 상기 대응하는 픽셀의 깊이 값을 식별하는 단계;
    상기 2 이상의 지오메트리 프레임에서 하나 이상의 속성을 나타내는 하나 이상의 속성 프레임 세트를 식별하는 단계;
    상기 2 이상의 지오메트리 프레임 및 상기 하나 이상의 속성 프레임 세트에서 상기 대응하는 픽셀의 상기 식별된 깊이 값에 기반하여 상기 2 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하는 단계; 및
    3D 포인트 클라우드 데이터를 재구성하는 동안 상기 식별된 중복 포인트를 제거하거나 무시하는 단계를 포함하는 방법.
  15. 3D 포인트 클라우드 데이터를 인코딩하기 위한 인코더의 동작 방법에 있어서,
    3D 포인트 클라우드 데이터에 대한 2 차원 (2D) 프레임의 첫 번째 세트를 인코딩 된 비트 스트림으로 인코딩하는 단계;
    3D 포인트 클라우드 데이터에 대한 제2 세트의 2D 프레임을 인코딩 된 비트 스트림으로 인코딩하기 위해 제1 세트의 2D 프레임에 대한 예측을 수행하는 단계;
    복수의 2D 프레임을 생성하도록 상기 비트 스트림을 디코딩하는 단계;
    2 이상의 지오메트리 프레임에서 대응하는 픽셀의 위치에 기초하여 복수의 2D 프레임에서 2 이상의 지오메트리 프레임에서 대응하는 픽셀을 식별하는 단계;
    2 이상의 지오메트리 프레임에서 대응하는 픽셀의 깊이 값을 식별하는 단계;
    상기 2 이상의 지오메트리 프레임에서 하나 이상의 속성을 나타내는 하나 이상의 속성 프레임 세트를 식별하는 단계;
    2 이상의 지오메트리 프레임 및 상기 하나 이상의 속성 프레임 세트에서 대응하는 픽셀의 식별된 깊이 값에 기초하여 2 이상의 지오메트리 프레임 중 적어도 하나의 중복 포인트를 식별하는 단계; 및
    3D 포인트 클라우드 데이터를 재구성하는 동안 식별된 중복 포인트를 제거하거나 무시하는 단계를 포함하는 방법.
KR1020207021419A 2017-12-22 2018-12-20 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치 KR102602375B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762609716P 2017-12-22 2017-12-22
US62/609,716 2017-12-22
US201862743044P 2018-10-09 2018-10-09
US62/743,044 2018-10-09
US201862774487P 2018-12-03 2018-12-03
US62/774,487 2018-12-03
US16/219,433 US10783668B2 (en) 2017-12-22 2018-12-13 Handling duplicate points in point cloud compression
US16/219,433 2018-12-13
PCT/KR2018/016336 WO2019125010A1 (en) 2017-12-22 2018-12-20 Method and apparatus for handling duplicate points in point cloud compression

Publications (2)

Publication Number Publication Date
KR20200092418A KR20200092418A (ko) 2020-08-03
KR102602375B1 true KR102602375B1 (ko) 2023-11-16

Family

ID=66951374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207021419A KR102602375B1 (ko) 2017-12-22 2018-12-20 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US10783668B2 (ko)
EP (1) EP3721413A4 (ko)
KR (1) KR102602375B1 (ko)
CN (1) CN111512342A (ko)
WO (1) WO2019125010A1 (ko)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805646B2 (en) 2018-06-22 2020-10-13 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
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
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
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
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10867414B2 (en) 2018-04-10 2020-12-15 Apple Inc. Point cloud attribute transfer algorithm
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
KR20200140825A (ko) * 2018-04-11 2020-12-16 인터디지털 브이씨 홀딩스 인코포레이티드 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치
US11756234B2 (en) * 2018-04-11 2023-09-12 Interdigital Vc Holdings, Inc. Method for encoding depth values of a set of 3D points once orthogonally projected into at least one image region of a projection plane
CN110662087B (zh) * 2018-06-30 2021-05-11 华为技术有限公司 点云编解码方法和编解码器
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11044478B2 (en) 2018-07-02 2021-06-22 Apple Inc. Compression with multi-level encoding
US11202098B2 (en) * 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US10911787B2 (en) * 2018-07-10 2021-02-02 Apple Inc. Hierarchical point cloud compression
CN110719497B (zh) * 2018-07-12 2021-06-22 华为技术有限公司 点云编解码方法和编解码器
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11212506B2 (en) 2018-07-31 2021-12-28 Intel Corporation Reduced rendering of six-degree of freedom video
US20200045344A1 (en) * 2018-07-31 2020-02-06 Intel Corporation Video processing mechanism
US10887574B2 (en) 2018-07-31 2021-01-05 Intel Corporation Selective packing of patches for immersive video
US11178373B2 (en) 2018-07-31 2021-11-16 Intel Corporation Adaptive resolution of point cloud and viewpoint prediction for video streaming in computing environments
US10893299B2 (en) 2018-07-31 2021-01-12 Intel Corporation Surface normal vector processing mechanism
US10762394B2 (en) 2018-07-31 2020-09-01 Intel Corporation System and method for 3D blob classification and transmission
US11132818B2 (en) 2018-09-28 2021-09-28 Apple Inc. Predicting attributes for point cloud compression according to a space filling curve
US11386524B2 (en) * 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
SG11202102914PA (en) * 2018-10-02 2021-04-29 Panasonic Ip Corp America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US10853973B2 (en) 2018-10-03 2020-12-01 Apple Inc. Point cloud compression using fixed-point numbers
US11430155B2 (en) * 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
US11057631B2 (en) 2018-10-10 2021-07-06 Intel Corporation Point cloud coding standard conformance definition in computing environments
BR112021007095A2 (pt) * 2018-11-16 2021-07-27 Panasonic Intellectual Property Corporation Of America método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais, e dispositivo de decodificação de dados tridimensionais
US11095900B2 (en) * 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
US11284091B2 (en) 2019-03-25 2022-03-22 Apple Inc. Video based point cloud compression-patch alignment and size determination in bounding box
US11454710B2 (en) 2019-01-08 2022-09-27 Apple Inc. Point cloud compression using a space filling curve for level of detail generation
US11348284B2 (en) 2019-01-08 2022-05-31 Apple Inc. Auxiliary information signaling and reference management for projection-based point cloud compression
US11250594B2 (en) * 2019-01-09 2022-02-15 Tencent America LLC Method and apparatus for geometry smoothing by local geometry projection
US11823421B2 (en) * 2019-03-14 2023-11-21 Nokia Technologies Oy Signalling of metadata for volumetric video
EP3926959A4 (en) * 2019-03-21 2022-03-23 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
CN113785590A (zh) * 2019-05-10 2021-12-10 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置
WO2020235979A1 (ko) 2019-05-23 2020-11-26 삼성전자 주식회사 포인트 클라우드 기반 데이터를 렌더링하는 방법 및 장치
US11393068B2 (en) * 2019-06-20 2022-07-19 Samsung Electronics Co., Ltd. Methods and apparatus for efficient interpolation
US11594014B2 (en) * 2019-06-21 2023-02-28 Nvidia Corporation Annotating high definition map points with measure of usefulness for localization
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
WO2021002657A1 (ko) * 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021025392A1 (ko) * 2019-08-02 2021-02-11 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
US11450030B2 (en) * 2019-09-24 2022-09-20 Apple Inc. Three-dimensional mesh compression using a video encoder
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11202078B2 (en) 2019-09-27 2021-12-14 Apple Inc. Dynamic point cloud compression using inter-prediction
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11409998B2 (en) 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
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
US11682144B2 (en) * 2019-10-06 2023-06-20 Tencent America LLC Techniques and apparatus for inter-channel prediction and transform for point-cloud attribute coding
EP4044603A4 (en) * 2019-10-07 2023-11-29 LG Electronics Inc. POINT CLOUD DATA TRANSMITTING APPARATUS, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING APPARATUS AND POINT CLOUD DATA RECEIVING METHOD
WO2021075681A1 (ko) * 2019-10-17 2021-04-22 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP7397985B2 (ja) * 2019-11-29 2023-12-13 ノキア テクノロジーズ オサケユイチア 映像符号化および映像復号のための方法、装置およびコンピュータプログラム
US20210105451A1 (en) * 2019-12-23 2021-04-08 Intel Corporation Scene construction using object-based immersive media
EP4078530A4 (en) * 2020-01-06 2023-04-05 Huawei Technologies Co., Ltd. PARAMETER REPORTING IN SPOT CLOUD CODING
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11477483B2 (en) 2020-01-08 2022-10-18 Apple Inc. Video-based point cloud compression with variable patch scaling
WO2021141093A1 (ja) * 2020-01-08 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11625866B2 (en) 2020-01-09 2023-04-11 Apple Inc. Geometry encoding using octrees and predictive trees
CN113114608B (zh) * 2020-01-10 2022-06-10 上海交通大学 点云数据封装方法及传输方法
CN115004230A (zh) * 2020-01-14 2022-09-02 华为技术有限公司 用于v-pcc的缩放参数
US20230059625A1 (en) * 2020-01-16 2023-02-23 Lg Electronics Inc. Transform-based image coding method and apparatus therefor
US20210245047A1 (en) 2020-02-10 2021-08-12 Intel Corporation Continuum architecture for cloud gaming
US11710259B2 (en) * 2020-02-10 2023-07-25 Tencent America LLC Predictive tree coding for point cloud coding
US11430179B2 (en) * 2020-02-24 2022-08-30 Microsoft Technology Licensing, Llc Depth buffer dilation for remote rendering
KR102406846B1 (ko) * 2020-03-18 2022-06-10 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021201386A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11310528B2 (en) * 2020-03-30 2022-04-19 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
EP4124032A4 (en) * 2020-04-12 2023-05-31 LG Electronics, Inc. POINT CLOUD DATA TRANSMITTING DEVICE, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING DEVICE, AND POINT CLOUD DATA RECEIVING METHOD
EP4138397A4 (en) * 2020-04-14 2024-03-27 LG Electronics, Inc. POINT CLOUD DATA TRANSMISSION APPARATUS, POINT CLOUD DATA TRANSMISSION METHOD, POINT CLOUD DATA RECEIVING APPARATUS, AND POINT CLOUD DATA RECEIVING METHOD
US11501470B2 (en) 2020-05-27 2022-11-15 Microsoft Technology Licensing, Llc Geometric encoding of data
US10853955B1 (en) 2020-05-29 2020-12-01 Illuscio, Inc. Systems and methods for point cloud encryption
US20210385303A1 (en) * 2020-06-09 2021-12-09 Qualcomm Incorporated Attribute residual coding in g-pcc
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11321878B2 (en) * 2020-06-26 2022-05-03 Sony Group Corporation Decoded tile hash SEI message for V3C/V-PCC
US11580671B2 (en) * 2020-08-17 2023-02-14 Tencent America LLC Hash-based attribute prediction for point cloud coding
US20220058833A1 (en) * 2020-08-21 2022-02-24 Samsung Electronics Co., Ltd. Complexity reduction of video-based point cloud compression encoding using grid-based segmentation
WO2022050650A1 (ko) * 2020-09-03 2022-03-10 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20230328270A1 (en) * 2020-09-09 2023-10-12 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point coud data reception device, and point cloud data reception method
US11651472B2 (en) * 2020-10-16 2023-05-16 Electronics And Telecommunications Research Institute Method for processing immersive video and method for producing immersive video
KR102488423B1 (ko) * 2020-11-18 2023-01-13 광운대학교 산학협력단 포인트 클라우드 압축 방법
KR102447796B1 (ko) * 2020-11-27 2022-09-27 한국전자기술연구원 V-pcc 부호화기를 위한 패치 세그먼트 고속 정제 장치 및 그 방법
CN112565794B (zh) * 2020-12-03 2022-10-04 西安电子科技大学 一种点云孤立点编码、解码方法及装置
WO2022116118A1 (zh) * 2020-12-03 2022-06-09 Oppo广东移动通信有限公司 预测方法、编码器、解码器以及存储介质
CN113011113B (zh) * 2021-03-23 2022-04-05 中国空气动力研究与发展中心计算空气动力研究所 一种离散点云重复点快速查找方法
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
KR102533985B1 (ko) * 2021-05-21 2023-05-17 한국항공대학교산학협력단 포인트 클라우드 복원 시스템 및 방법
WO2022250276A1 (ko) * 2021-05-28 2022-12-01 엘지전자 주식회사 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
CN113111612B (zh) * 2021-06-15 2021-08-10 中国空气动力研究与发展中心计算空气动力研究所 一种基于自适应空间剖分的离散点云重复点快速查找方法
WO2023287220A1 (ko) * 2021-07-15 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
US11734861B2 (en) * 2021-09-22 2023-08-22 Awe Company Limited 2D and 3D floor plan generation
US11386235B1 (en) 2021-11-12 2022-07-12 Illuscio, Inc. Systems and methods for dynamic checksum generation and validation with customizable levels of integrity verification
WO2023158249A1 (ko) * 2022-02-16 2023-08-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN116800970A (zh) * 2022-03-18 2023-09-22 维沃移动通信有限公司 编码、解码方法、装置及设备
CN116847083A (zh) * 2022-03-25 2023-10-03 维沃移动通信有限公司 编码、解码方法、装置及设备
CN116934880A (zh) * 2022-04-08 2023-10-24 维沃移动通信有限公司 编码、解码方法、装置及设备
US11527017B1 (en) 2022-05-03 2022-12-13 Illuscio, Inc. Systems and methods for dynamic decimation of point clouds and data points in a three-dimensional space
US11468583B1 (en) 2022-05-26 2022-10-11 Illuscio, Inc. Systems and methods for detecting and correcting data density during point cloud generation
CN114782564B (zh) * 2022-06-21 2022-09-09 北京大学深圳研究生院 一种点云的压缩方法、装置、电子设备及存储介质
CN117956174A (zh) * 2022-10-19 2024-04-30 维沃移动通信有限公司 网格编码方法、装置、通信设备及可读存储介质
US11710258B1 (en) 2023-01-25 2023-07-25 Illuscio, Inc. Systems and methods for compressing three-dimensional image data
CN116758174B (zh) * 2023-08-16 2023-11-10 北京易控智驾科技有限公司 激光雷达点云数据的压缩传输方法、装置及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
US9245382B2 (en) 2008-10-04 2016-01-26 Microsoft Technology Licensing, Llc User-guided surface reconstruction
WO2013126659A1 (en) 2012-02-22 2013-08-29 Veran Medical Technologies, Inc. Systems, methods, and devices for four dimensional soft tissue navigation
US9191643B2 (en) 2013-04-15 2015-11-17 Microsoft Technology Licensing, Llc Mixing infrared and color component data point clouds
US9305241B2 (en) 2013-07-29 2016-04-05 Google Inc. Systems and methods for reducing a data set
US9858640B1 (en) 2015-07-15 2018-01-02 Hrl Laboratories, Llc Device and method for merging 3D point clouds from sparsely distributed viewpoints
US10482681B2 (en) 2016-02-09 2019-11-19 Intel Corporation Recognition-based object segmentation of a 3-dimensional image
US10373380B2 (en) 2016-02-18 2019-08-06 Intel Corporation 3-dimensional scene analysis for augmented reality operations
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US11113845B2 (en) * 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) * 2017-09-18 2021-02-02 Apple Inc. Point cloud compression

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EDUARDO PAVEZ 외 1명. "Dynamic polygon cloud compression" 2017 IEEE ICASSP, 2017.03.09. 1부.*
SCHWARZ(NOKIA) S. 외 5명, "Nokia's response to CfP for Point Cloud Compression (Category 2)", no. m41779, XP030260370, 2017.10.17. 1부.*

Also Published As

Publication number Publication date
US10783668B2 (en) 2020-09-22
KR20200092418A (ko) 2020-08-03
EP3721413A4 (en) 2021-01-06
CN111512342A (zh) 2020-08-07
US20190197739A1 (en) 2019-06-27
EP3721413A1 (en) 2020-10-14
WO2019125010A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
KR102602375B1 (ko) 포인트 클라우드 압축에서 중복 포인트를 처리하기 위한 방법 및 장치
EP3665658B1 (en) Point cloud compression using hybrid transforms
US10853974B2 (en) Point cloud compression using non-orthogonal projection
US11288843B2 (en) Lossy compression of point cloud occupancy maps
US20220164994A1 (en) Overlapped patches for mesh coding for video based point cloud compression
US11138762B2 (en) Visual quality of video based point cloud compression using one or more additional patches
US11348283B2 (en) Point cloud compression via color smoothing of point cloud prior to texture video generation
US11122279B2 (en) Point cloud compression using continuous surface codes
US11216984B2 (en) Patch splitting for improving video-based point cloud compression performance
US11210812B2 (en) Single-pass boundary detection in video-based point cloud compression
US11665372B2 (en) Fast projection method in video-based point cloud compression codecs
US11922663B2 (en) Decision-making rules for attribute smoothing
US11803987B2 (en) Attribute transfer in V-PCC
US20200112745A1 (en) Prediction for matched patch index coding
KR20210095224A (ko) 포인트 클라우드를 압축 및 압축 해제하기 위한 장치 및 방법
US20240236362A9 (en) Vertex motion vector predictor coding for vertex mesh (v-mesh)
US20240137558A1 (en) Vertex motion vector predictor coding for vertex mesh (v-mesh)

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right