KR20200037442A - 포인트-클라우드 스트리밍을 위한 방법 및 장치(method and apparatus for point-cloud streaming) - Google Patents

포인트-클라우드 스트리밍을 위한 방법 및 장치(method and apparatus for point-cloud streaming) Download PDF

Info

Publication number
KR20200037442A
KR20200037442A KR1020207009218A KR20207009218A KR20200037442A KR 20200037442 A KR20200037442 A KR 20200037442A KR 1020207009218 A KR1020207009218 A KR 1020207009218A KR 20207009218 A KR20207009218 A KR 20207009218A KR 20200037442 A KR20200037442 A KR 20200037442A
Authority
KR
South Korea
Prior art keywords
view field
client device
node
bandwidth
level
Prior art date
Application number
KR1020207009218A
Other languages
English (en)
Other versions
KR102602380B1 (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 KR20200037442A publication Critical patent/KR20200037442A/ko
Application granted granted Critical
Publication of KR102602380B1 publication Critical patent/KR102602380B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하는 시스템 및 방법. 방법은 클라이언트 장치의 뷰 필드를 표시하는 정보를 수신하는 단계 및 클라이언트 장치에 3D 콘텐츠를 스트리밍하는 데 사용할 수 있는 대역폭의 양을 식별하는 단계를 포함한다. 방법은 물체 각각에 대해 각 물체의 위치를 기반으로 하여 각 물체가 클라이언트 장치의 뷰 필드 내에 있는지 여부를 결정하고 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 큰 대역폭을 할당함으로써 대역폭을 하나 이상의 물체에 할당하는 단계를 포함한다. 방법은 할당된 대역폭에 따라 클라이언트 장치에 3D 콘텐츠를 스트리밍하는 단계를 포함한다.

Description

포인트-클라우드 스트리밍을 위한 방법 및 장치(METHOD AND APPARATUS FOR POINT-CLOUD STREAMING)
본 개시는 일반적으로 뷰 필드 인식 포인트 클라우드 스트리밍(view field-aware point cloud streaming)에 관한 것이다. 보다 구체적으로, 본 개시는 물체 및/또는 노드가 클라이언트 장치의 뷰 필드 내에 존재하는지 여부를 결정하는 방법 및 뷰 필드 내의 물체 및 뷰 필드 밖의 물체를 포함하여 복수의 물체에 비트율(대역폭)을 할당하는 방법에 관한 것이다.
가상 현실(virtual reality, VR) 체험이 두드러지고 있다. 예를 들어, 스마트폰과 같은 강력한 핸드헬드 장치의 손쉬운 가용성으로 인해 몰입형 비디오를 체험하는 새로운 방법으로 360° 비디오가 떠오르고 있다. VR 관련 기술의 발달로, 사용자는 다양한 장치를 사용하여 360°콘텐츠를 볼 수 있다. 비디오 및 이미지와 같은 360° 콘텐츠를 보는 사용자는 그들이 평면 이미지를 볼 때보다 더 몰입감을 느낀다. 360° 비디오는 세계의 360° 뷰를 캡처하여 소비자에게 실감나는 "실제' 경험을 제공한다.
본 개시는 뷰 필드 인식 포인트 클라우드 스트리밍을 위한 방법 및 장치를 제공한다.
제1 실시 예에서는 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 서버가 제공된다. 서버는 3D 콘텐츠 내에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하도록 구성된 메모리; 3D 콘텐츠에 대한 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하도록 구성된 통신 인터페이스; 및 3D 콘텐츠를 클라이언트 장치로 스트리밍하는 데 사용 가능한 대역폭의 양을 식별하고, 3D 포인트 클라우드 데이터를 스트리밍할 사용 가능한 대역폭을 하나 이상의 물체에 할당하도록 구성된 프로세서를 포함하고, 사용 가능한 대역폭을 할당하기 위해, 프로세서는 하나 이상의 물체 각각에 대해, 각 물체의 위치를 기반으로 하여 각 물체가 클라이언트 장치의 뷰 필드 내에 존재하는지 여부를 결정하고; 클라이언트 장치의 뷰 필드 내에 존재하지 않는 물체보다 클라이언트 장치의 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 대역폭을 할당하도록 구성되고, 통신 인터페이스는 할당된 대역폭에 따라 클라이언트 장치로 3D 콘텐츠를 스트리밍하도록 더 구성된다.
제2 실시 예에서는 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 방법이 제공된다. 방법은 3D 콘텐츠 내에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하는 단계; 3D 콘텐츠에 대한 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하는 단계; 3D 콘텐츠를 클라이언트 장치로 스트리밍하는 데 사용 가능한 대역폭의 양을 식별하는 단계; 하나 이상의 물체에 대해 3D 포인트 클라우드 데이터를 스트리밍할 대역폭을 할당하는 단계를 포함하고, 하나 이상의 물체 각각에 대해 대역폭을 할당하는 단계는 각 물체의 위치를 기반으로 하여 각 물체가 클라이언트 장치의 뷰 필드 내에 존재하는지 여부를 결정하는 단계; 클라이언트 장치의 뷰 필드 내에 존재하지 않는 물체보다 클라이언트 장치의 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 대역폭을 할당하는 단계; 및 할당된 대역폭에 따라 클라이언트 장치로 3D 콘텐츠를 스트리밍하는 단계를 포함한다.
제3 실시 예에서, 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 프로그램 코드를 포함하는 비일시적 컴퓨터 판독 가능한 매체가 제공되고, 상기 프로그램 코드는 프로세서에 의해 실행될 때 프로세서로 하여금 3D 콘텐츠 내에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하고, 통신 인터페이스를 통해 3D 콘텐츠에 대한 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하고, 3D 콘텐츠를 클라이언트 장치로 스트리밍하는 데 사용할 수 있는 대역폭의 양을 식별하고, 하나 이상의 물체에 대해 3D 포인트 클라우드 데이터를 스트리밍할 대역폭을 할당하도록 하고, 대역폭을 할당하는 단계는 하나 이상의 물체 각각에 대해 각 물체의 위치를 기반으로 하여 각 물체가 클라이언트 장치의 뷰 필드 내에 존재하는지 여부를 결정하는 단계, 클라이언트 장치의 뷰 필드 내에 존재하지 않는 물체보다 클라이언트 장치의 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 대역폭을 할당하는 단계; 및 할당된 대역폭에 따라 3D 콘텐츠를 클라이언트 장치에 스트리밍하는 단계를 포함한다.
다른 기술적인 특징은 다음의 도면, 설명 및 청구 범위로부터 당업자에게 쉽게 명백해질 수 있다.
본 개시는 뷰 필드 인식 포인트 클라우드 스트리밍을 위한 방법 및 장치를 제공한다.
본 개시 및 본 개시의 장점에 대한 보다 완전한 이해를 위해, 이제 첨부 도면과 함께 제공된 다음의 설명을 참조한다.
도 1은 본 개시의 다양한 실시 예에 따른 예시적인 컴퓨팅 시스템을 도시한다.
도 2 및 도 3은 본 개시의 다양한 실시 예에 따른 컴퓨팅 시스템에서의 예시적인 장치를 도시한다.
도 4는 본 개시의 일 실시 예에 따른 3차원(three dimensional, 3D) 스트리밍 서비스를 위한 시스템(400)의 예시적인 개요를 도시한다.
도 5는 본 개시의 실시 예에 따른 3D 포인트 클라우드의 계층 구조의 예시적인 복수 레벨을 도시한다.
도 6은 본 개시의 일 실시 예에 따른, 서버에 의해 수행될 수 있는, 각 노드가 뷰 필드 영역 내에 존재하는지 여부를 결정하는 방법의 예시적인 흐름도(600)를 도시한다.
도 7a 및 도 7b는 본 개시의 실시 예에 따른 가시 포인트(visible point)를 결정하는 방법을 설명하기 위한 예시적인 다이어그램을 도시한다.
도 8은 본 개시의 일 실시 예에 따른 포인트의 (x,y,z) 윈도우를 계산하는 방법의 예시적인 흐름도를 도시한다.
도 9는 본 개시의 일 실시 예에 따른 복수 물체의 노드의 계층 레벨이 뷰 필드 범위 내에 존재하는지 여부를 결정하는 방법을 설명하기 위한 예시적인 다이어그램을 도시한다.
도 10은 본 개시의 일 실시 예에 따른 복수 물체에 대한 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 예시적인 흐름도이다.
도 11은 본 개시의 일 실시 예에 따른 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 다른 예시적인 흐름도를 도시한다.
도 12a 내지 도 12c는 본 개시의 일 실시 예에 따른 단일 물체의 계층 노드가 뷰 필드 범위 내에 존재하는지 여부를 결정하는 방법을 설명하기 위한 예시적인 다이어그램을 도시한다.
도 13은 본 개시의 일 실시 예에 따른 복수 노드로 구성된 포인트 클라우드 물체에 대한 예시적인 다이어그램(1300)을 도시한다.
도 14는 본 개시의 일 실시 예에 따른 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 예시적인 흐름도(1400)를 도시한다.
도 15는 본 개시의 일 실시 예에 따른 클라이언트 장치로부터의 피드백을 기반으로 하는 뷰 필드 인식 포인트 클라우드 스트리밍에 대한 다른 예시적인 흐름도(1500)를 도시한다.
도 16은 본 개시의 일 실시 예에 따른 비트율 피드백을 기반으로 하여 물체에 비트율(또는 대역폭)을 할당하는 방법의 예시적인 흐름도를 도시한다.
아래에서 상세한 설명을 시작하기 전에, 본 특허 문서 전반에 걸쳐서 사용된 특정 단어 및 구문의 정의들을 규정하는 것이 유리할 수 있다. 용어 "결합(couple)" 및 그 파생어들은 서로 물리적으로 접촉하든 아니든 두 개 이상의 요소 간의 직접 또는 간접 통신을 의미한다. 용어 "전송하다", "수신하다", "통신하다" 및 그 파생어들은 직접 및 간접 통신 모두를 포함한다. 용어 "포함하다(include)", "포함하다(comprise)" 및 그 파생어들은 제한없는 포함을 의미한다. 용어 "또는"은 "및/또는"을 의미하는 포함이다. 구문 "~와 관련된" 및 그 파생어들은 포함하는(include), ~내에 포함되는(be included within), ~와 상호 연결하는, 포함하는(contain), ~ 내에 포함되는(be contained within), ~와 또는 ~에 연결하는, ~와 또는 ~에 결합하는, ~와 통신할 수 있는, ~와 협력하는, 인터리브하는, 나란히 놓는, ~에 인접하는, ~에 또는 ~와 바인딩하는, 갖는, ~의 속성이 있는, ~에 또는 ~와 관계가 있는 등을 의미한다. 용어 "제어기"는 적어도 하나의 동작을 제어하는 장치, 시스템 또는 그 일부를 의미한다. 그러한 제어기는 하드웨어 또는 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 특정 제어기와 관련된 기능은 국부적으로든 원격으로든 중앙 집중화되거나 분산될 수 있다. 항목들의 목록과 함께 사용될 때 "~의 적어도 하나"라는 구문은 나열된 항목들 중 하나 이상의 상이한 조합들이 사용될 수도 있고, 목록에 있는 하나의 항목만 요구될 수도 있다는 것을 의미한다. 예를 들어, "A, B 및 C 중 적어도 하나"는 다음의 조합, 즉 A, B, C, A와 B, A와 C, B와 C, 및 A와 B와 C 중 어느 하나를 포함한다.
또한, 후술되는 다양한 기능들은 각각 컴퓨터 판독 가능 프로그램 코드로부터 형성되고 컴퓨터 판독 가능 매체에 내장되어 있는 하나 이상의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있다. 용어 "어플리케이션" 및 "프로그램"은 적절한 컴퓨터 판독 가능 프로그램 코드로 구현하기 위해 적응된 하나 이상의 컴퓨터 프로그램, 소프트웨어 구성 요소, 일련의 명령, 절차, 기능, 오브젝트, 클래스, 인스턴스, 관련 데이터, 또는 이들의 일부를 의미한다. "컴퓨터 판독 가능 코드"는 소스 코드, 목적 코드 및 실행 가능 코드를 포함하여 모든 유형의 컴퓨터 코드를 포함한다. "컴퓨터 판독 가능 매체"는 읽기 전용 메모리(read only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 하드 디스크 드라이브, 콤팩트 디스크(compact disc, CD), 디지털 비디오 디스크(digital video disc, DVD), 또는 모든 다른 유형의 메모리와 같이, 컴퓨터에 의해 액세스될 수 있는 모든 유형의 매체를 포함한다. "비일시적" 컴퓨터 판독 가능 매체는 유선, 무선, 광학, 또는 일시적인 전기 신호 또는 다른 신호를 전달하는 다른 통신 링크들을 제외한다. 비일시적 컴퓨터 판독 가능 매체는 데이터를 영구적으로 저장할 수 있는 매체 및 재기록 가능한 광 디스크 또는 소거 가능한 메모리 장치와 같이 데이터를 저장하고 나중에 겹쳐쓸 수 있는 매체를 포함한다.
다른 특정 단어 및 구문들에 대한 정의가 본 특허 문서 전체에 걸쳐서 제공된다. 당업자는 대부분의 경우는 아니지만 많은 경우에 그러한 정의들이 그러한 정의된 단어 및 구문들의 이전 및 이후 사용에 적용된다는 것을 이해해야 한다.
본 특허 문서에서 본 개시의 원리들을 설명하기 위해 사용한 다양한 실시 예 및 아래에서 논의되는 도 1 내지 도 16은 단지 예시를 위한 것이고, 어떠한 방식으로든 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다. 당업자는 본 개시의 원리들이 모든 적절하게 배치된 무선 통신 시스템에서 구현될 수 있음을 이해할 것이다.
1. 시스템 개요
도 1은 본 개시에 따른 예시적인 컴퓨팅 시스템(100)을 도시한다. 도 1에 도시된 컴퓨팅 시스템(100)의 실시 예는 단지 예시를 위한 것이다. 본 개시의 범위에서 벗어나지 않고 컴퓨팅 시스템(100)의 다른 실시 예들이 사용될 수 있다.
도 1에 도시된 바와 같이, 시스템(100)은 시스템(100)의 다양한 구성 요소들 간의 통신을 용이하게 하는 네트워크(102)를 포함한다. 예를 들어, 네트워크(102)는 인터넷 프로토콜(internet protocol, IP) 패킷들, 프레임 중계 프레임들, 비동기식 전송 모드(asynchronous transfer mode, ATM) 셀들, 또는 네트워크 주소들 간의 다른 정보를 통신할 수 있다. 네트워크(102)는 하나 이상의 근거리 통신망(local area network, LAN), 도시권 통신망(metropolitan area network, MAN), 광역 통신망(wide area network, WAN), 인터넷과 같은 글로벌 네트워크 전체 또는 일부, 또는 하나 이상의 위치에 있는 다른 통신 시스템 또는 시스템들을 포함할 수 있다.
네트워크(102)는 적어도 하나의 서버(104)와 다양한 클라이언트 장치(106 내지 115) 간의 통신을 용이하게 한다. 각 서버(104)는 하나 이상의 클라이언트 장치에 컴퓨팅 서비스를 제공할 수 있는 모든 적합한 컴퓨팅 또는 처리 장치를 포함한다. 각 서버(104)는 예를 들어, 하나 이상의 처리 장치, 명령 및 데이터를 저장하는 하나 이상의 메모리, 및 네트워크(102)를 통한 통신을 용이하게 하는 하나 이상의 네트워크 인터페이스를 포함할 수 있다.
각 클라이언트 장치(106 내지 115)는 네트워크(102)를 통해 적어도 하나의 서버 또는 다른 컴퓨팅 장치(들)과 상호작용하는 모든 적합한 컴퓨팅 또는 처리 장치를 나타낸다. 이러한 예에서, 클라이언트 장치(106 내지 115)는 데스크톱 컴퓨터(106), 휴대폰 또는 스마트폰(108), 개인용 정보 단말기(personal digital assistant, PDA)(110), 랩톱 컴퓨터(112), 태블릿 컴퓨터(114), 및 헤드 장착 디스플레이(head-mounted display, HMD)(115)를 포함한다. 그러나, 다른 또는 추가 클라이언트 장치가 컴퓨팅 시스템(100)에 사용될 수 있다.
이러한 예에서, 일부 클라이언트 장치(108 내지 115)는 네트워크(102)와 간접적으로 통신한다. 예를 들어, 클라이언트 장치(108 및 110)는 셀룰러 기지국 또는 eNodeB와 같은 하나 이상의 기지국(116)을 통해 통신한다. 또한, 클라이언트 장치(112 내지 115)는 IEEE 802.11 무선 액세스 지점과 같은 하나 이상의 무선 액세스 지점(118)을 통해 통신한다. 이들은 단지 예시를 위한 것이고, 각 클라이언트 장치는 적합한 중간 장치(들) 또는 네트워크(들)을 통해 네트워크(102)와 직접적으로 또는 네트워크(102)와 간접적으로 통신할 수 있음을 유의해야 한다.
이러한 예시적인 실시 예에서, 컴퓨팅 시스템(100)은 뷰 필드 인식 포인트 클라우드 스트리밍 서비스를 제공한다. 예를 들어, 서버(104)는 3D 콘텐츠의 물체/노드가 클라이언트 장치의 뷰 필드 내에 있는지 여부를 결정하고 결정에 따라 3D 콘텐츠를 스트리밍하는 비디오 프로세서를 나타낼 수 있다. 스마트폰(108)은 예를 들어, 가상 현실 또는 증강 현실 모드에서 헤드업 디스플레이어로 3D 콘텐츠를 재생하는 비디오 플레이어를 나타낼 수 있다.
도 1은 컴퓨팅 시스템(100)의 일 예를 도시하지만, 도 1에 대해 다양한 변경들이 이루어질 수 있다. 예를 들어, 시스템(100)은 각 구성 요소를 얼마든지 적절한 배열로 포함할 수 있다. 일반적으로, 컴퓨팅 시스템 및 통신 시스템은 다양한 구성으로 제공되며, 도 1은 본 개시의 범위를 특정 구성으로 제한하지 않는다. 도 1은 본 특허 문서에 개시된 다양한 특징들이 사용될 수 있는 하나의 운용 환경을 도시하지만, 이들 특징은 다른 적합한 시스템에서 사용될 수 있다.
도 2 및 도 3은 본 개시의 일 실시 예에 따른 뷰 필드 인식 포인트 클라우드 스트리밍 서비스를 위한 컴퓨팅 시스템의 예시적인 장치를 도시한다. 특히, 도 2는 예시적인 서버(200)를 도시하고, 도 3은 예시적인 클라이언트 장치(300)를 도시한다. 서버(200)는 도 1의 서버(104)를 나타낼 수 있고, 클라이언트 장치(300)는 도 1의 클라이언트 장치(106 내지 115) 중 하나 이상을 나타낼 수 있다.
도 2에 도시된 바와 같이, 서버(200)는 적어도 하나의 프로세서(210), 적어도 하나의 저장 장치(215), 적어도 하나의 통신 인터페이스(220) 및 적어도 하나의 입력/출력(input/output, I/O) 유닛(225) 사이의 통신을 지원하는 버스 시스템(205)을 포함한다.
프로세서(210)는 뷰 필드 인식 포인트 클라우드 스트리밍을 수행하는 명령과 같이 메모리(230)에 로딩될 수 있는 명령을 실행한다. 프로세서(210)는 적합한 배열로 적절한 개수(들) 및 적절한 유형(들)의 프로세서 또는 다른 장치를 포함할 수 있다. 프로세서(들)(210)의 예시적인 유형으로는 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, FPGA(field programmable gate array), 주문형 반도체(application specific integrated circuit, ASIC), 및 이산 회로가 포함된다. 프로세서(210)는 인증된 웨어러블 장치로 전자 장치를 잠금 해제하는 작업을 수행하도록 구성된다.
메모리(230) 및 영구 저장 장치(235)는 (데이터, 프로그램 코드 및/또는 일시적 또는 영구적인 다른 적합한 정보와 같은) 정보의 검색을 용이하게 하고 저장할 수 있는 구조(들)을 나타내는 저장 장치(215)의 예이다. 메모리(230)는 랜덤 액세스 메모리 또는 다른 적합한 휘발성 또는 비휘발성 저장 장치(들)을 나타낼 수 있다. 영구 저장 장치(235)는 읽기 전용 메모리, 하드 드라이브, 플래시 메모리 또는 광 디스크와 같은 데이터의 장기 저장을 지원하는 하나 이상의 구성 요소 또는 장치를 포함할 수 있다.
통신 인터페이스(220)는 다른 시스템 또는 장치와의 통신을 지원한다. 예를 들어, 통신 인터페이스(220)는 네트워크(102)를 통한 통신을 용이하게 하는 무선 송수신기 또는 네트워크 인터페이스 카드를 포함할 수 있다. 통신 인터페이스(220)는 적합한 물리적 또는 무선 통신 링크(들)을 통한 통신을 지원할 수 있다.
I/O 유닛(225)은 데이터의 입력 및 출력을 가능하게 한다. 예를 들어, I/O 유닛(225)은 키보드, 마우스, 키패드, 터치스크린, 또는 다른 적합한 입력 장치를 통해 사용자 입력을 위한 연결을 제공할 수 있다. 또한, I/O 유닛(225)은 디스플레이, 프린터 또는 다른 적합한 출력 장치에 출력을 전송할 수 있다.
이러한 예시적인 실시 예에서, 서버(200)는 아래에서 더 상세히 논의되는 바와 같이, 뷰 필드 인식 포인트 클라우드 스트리밍을 제공하는 장치를 구현할 수 있다. 도 2는 도 1의 서버(104)를 나타내는 것으로 기술되지만, 클라이언트 장치(106 내지 115) 중 하나 이상에서 동일하거나 유사한 구조가 사용될 수 있음을 유의해야 한다. 예를 들어, 렙톱 또는 데스크톱 컴퓨터는 도 2에 도시된 것과 동일하거나 유사한 구조를 가질 수 있다.
도 3에 도시된 바와 같이, 클라이언트 장치(300)는 안테나(305), 무선 주파수(radio frequency, RF) 송수신기(310), 송신(transmit, TX) 처리 회로(315), 마이크로폰(320) 및 수신(receive, RX) 처리 회로(325)를 포함한다. 또한, 클라이언트 장치(300)는 스피커(330), 하나 이상의 프로세서(340), 입력/출력(input/output, I/O) 인터페이스(interface, IF)(345), 터치스크린(350), 디스플레이(355) 및 메모리(360)를 포함한다. 메모리(360)는 기본 운영 체계(operating system, OS) 프로그램(361) 및 하나 이상의 어플리케이션(362)을 포함한다.
RF 송수신기(310)는 시스템의 다른 구성 요소에 의해 전송된 입력 RF 신호를 안테나(305)로부터 수신한다. RF 송수신기(310)는 입력 RF 신호를 다운 컨버팅하여 중간 주파수(intermediate frequency, IF) 또는 기저대역 신호를 생성한다. 중간 주파수(intermediate frequency, IF) 또는 기저대역 신호는 기저대역 또는 IF 신호를 필터링, 디코딩 또는 디지털화하여 처리된 기저대역 신호를 생성하는 RX 처리 회로(325)에 전송된다. RX 처리 회로(325)는 처리된 기저대역 신호를 (예를 들어, 음성 데이터용) 스피커(330)에 전송하거나 (예를 들어, 웹 브라우징 데이터용) 추가 처리용 프로세서(들)(340)에 전송한다.
TX 처리 회로(315)는 마이크로폰(320)으로부터 아날로그 또는 디지털 음성 데이터를 수신하거나 프로세서(들)(340)로부터의 (웹 데이터, 이메일, 또는 대화형 비디오 게임 데이터와 같은) 다른 출력 기저대역 데이터를 수신한다. TX 처리 회로(315)는 출력 기저대역 데이터를 인코딩, 멀티플렉싱, 디지털화하여 처리된 기저대역 또는 IF 신호를 생성한다. RF 송수신기(310)는 TX 처리 회로(315)로부터 출력 처리된 기저대역 또는 IF 신호를 수신하고, 기저대역 또는 IF 신호를 안테나(305)를 통해 전송되는 RF 신호로 업컨버팅한다.
프로세서(들)(340)은 하나 이상의 프로세서 또는 다른 처리 장치를 포함할 수 있고, 클라이언트 장치(300)의 전반적인 작업을 제어하기 위해 메모리(360)에 저장된 기본 OS 프로그램(361)을 실행할 수 있다. 예를 들어, 프로세서(들)(340)은 잘 알려진 원리에 따라 RF 송수신기(310), RX 처리 회로(325), 및 TX 처리 회로(315)에 의해 순방향 채널 신호의 수신 및 역방향 채널 신호의 전송을 제어할 수 있다. 일부 실시 예에서, 프로세서(들)(340)은 적어도 하나의 마이크로프로세서 또는 마이크로제어기를 포함한다.
또한, 프로세서(들)(340)은 메모리(360)에 상주하는 다른 프로세스 및 프로그램을 실행할 수 있다. 프로세서(들)(340)은 실행하는 프로세스의 요구에 따라 데이터를 메모리(360)의 안으로 또는 밖으로 이동시킬 수 있다. 일부 실시 예에서, 프로세서(들)(340)은 오퍼레이터 또는 외부 장치로부터 수신된 신호에 응답하여 또는 OS 프로그램(361)을 기반으로 하여 어플리케이션(362)을 실행하도록 구성된다. 또한, 프로세서(들)(340)은 클라이언트 장치(300)가 랩톱 컴퓨터 및 핸드헬드 컴퓨터와 같은 다른 장치에 연결될 수 있도록 하는 I/O 인터페이스(345)에 결합된다. I/O 인터페이스(345)는 이들 부속 장치와 프로세서(들)(340) 간의 통신 경로이다.
또한, 프로세서(들)(340)은 터치스크린(350) 및 디스플레이(355)에 결합된다. 클라이언트 장치(300)의 오퍼레이터는 클라이언트 장치(300)에 데이터를 입력하기 위해 터치스크린(350)을 사용할 수 있다. 디스플레이(355)는 액정 디스플레이(liquid crystal display, LCD), 또는 예를 들어, 웹사이트로부터 텍스트 및/또는 적어도 제한된 그래픽을 렌더링할 수 있는 다른 디스플레이일 수 있다.
메모리(360)는 프로세서(들)(340)에 결합된다. 메모리(360)의 일부는 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있고, 메모리(360)의 다른 일부는 플래시 메모리 또는 다른 읽기 전용 메모리(read-only memory, ROM)를 포함할 수 있다.
아래에서 더 상세히 후술하겠지만, 본 예시적인 실시 예에서, 클라이언트 장치(300)는 평면 프레임의 관심 영역 및 기하학적 프레임의 형상을 표시하는 신호를 수신한다. 도 2 및 도 3은 컴퓨팅 시스템의 예시적인 장치를 도시하지만, 도 2 및 도 3에 다양한 변형들이 이루어질 수 있다. 예를 들어, 도 2 및 도 3의 다양한 구성 요소들은 결합, 추가 분할 또는 생략될 수 있고, 특정 요구에 따라 추가 구성 요소들이 추가될 수 있다. 특정 예로서, 프로세서(들)(340)은 하나 이상의 중앙 처리 장치(central processing unit, CPU) 및 하나 이상의 그래픽 처리 장치(graphics processing unit, GPU)와 같은 복수의 프로세서들로 나뉠 수 있다. 또한, 도 3은 휴대폰 또는 스마트폰으로서 구성된 클라이언트 장치(300)를 도시하지만, 클라이언트 장치는 다양한 유형의 휴대 또는 고정 장치로서 작동 가능하도록 구성될 수 있다. 또한, 컴퓨팅 및 통신 네트워크와 마찬가지로, 클라이언트 장치 및 서버는 다양한 구성을 가질 수 있고, 도 2 및 도 3은 특정 클라이언트 장치 또는 서버로 본 개시를 제한하지 않는다.
포인트 클라우드는 수백개의 포인트들로 구성되는 3D 모델이다. 포인트 클라우드는 가장 일반적으로 다양한 스캐닝 방법(예를 들어, 레이저 스캐닝 및 사진 측량)을 통해 현실 세계를 스캐닝한 결과로 획득된다. 포인트 클라우드는 3D 지도(예를 들어, 구글맵, 세슘(Cesium) 등)의 생성, 움직임 및 포즈 캡처(예를 들어, Kinect) 및 게임 및 영화용 3D 자산 생성을 포함한 일련의 작업을 위한 어플리케이션에서 널리 사용된다.
옥트리(octree)는 3D 포인트 클라우드 데이터를 나타내는 재귀적 데이터(recursive data) 구조이다. 3D 정점들의 옥트리 구조는 각각의 3D 셀을 동시에 8개로 세분화함으로써 쉽게 형성될 수 있다. 옥트리 코딩 접근 방법[1]에서, 자식 셀(child cell)이 비어 있는지 여부를 표시하기 위해 각각의 자식 셀에 대해 1 비트가 사용된다. 비어 있지 않은 셀은 최고의 해상도에 도달할 때까지 재귀적으로 세분화될 것이고, 비어 있는 셀은 더 이상 세분화되지 않을 것이다. 분할(partitioning) 절차 이후, 서버는 복수 레벨의 계층 구조(예를 들어, 옥트리)를 가질 수 있고, 각 레벨은 상이한 노드 밀도/해상도를 갖는다.
셀 세분 결과를 기반으로 하여, (1) 해당 코덱(codex)으로 각각의 자식 셀과 관련된 비트(예를 들어, 1은 비어 있지 않은 자식 셀 표시, 0은 비어 있는 자식 셀 표시)를 획득하고; (2) 특정 방법으로 세분된 부분 전부에 대한 출력 비트스트림(예를 들어, 각각의 셀 세분에 대해, 왼쪽 상단 자식 셀부터 시작하여 시계 방향으로 모든 자식 셀에 대한 비트 출력)을 획득함으로써 인코딩 절차가 수행된다. 이러한 방식으로, 포인트 클라우드는 공간 분해에 대한 강한 장점을 가지고 인코딩될 수 있다.
스트리밍 기술은 지난 수십 년 동안 지속적으로 개발되었다. 우리는 전통적인 TV, 인터넷 프로토콜 TV(internet protocol television, IPTV), 화상 회의, 라이브 및 모바일 스트리밍 서비스와 같은 다양한 멀티미디어 서비스의 빠른 융합을 보고 있다. 동시에, 인터넷은 멀티미디어 전송을 위한 표준 매체가 되었다. 전송 제어 프로토콜(transmission control protocol, TCP)뿐만 아니라 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol, HTTP)이 인터넷을 통한 멀티미디어 콘텐츠 전송을 위한 기본 프로토콜이 되었다. 비디오와 같은 멀티미디어 콘텐츠의 스트리밍 기술이 많이 개발되었다. 그러나, 포인트 클라우드의 스트리밍은 여전히 연구자들이 연구하고 탐험할 완전 새로운 분야이다.
도 4는 본 개시의 일 실시 예에 따른 3차원(three dimensional, 3D) 스트리밍 서비스를 위한 시스템(400)의 예시적인 개요를 도시한다. 도 4에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
시스템(410)은 3D 포인트 클라우드 데이터를 저장하는 서버를 포함하고, 다양한 클라이언트 장치 예를 들어, 랩톱, 패드, 스마트폰, 헤드 장착 디스플레이(head-mounted display, HMD), 안경 기반 디스플레이 등에 효율적인 포인트 클라우드 스트리밍을 제공한다.
클라이언트 장치(420)는 사용자 신체(예를 들어, 머리 또는 눈)의 움직임, 위치 또는 방향을 검출하기 위해 하나 이상의 센서가 장착되어 있을 수 있다. 센서는 예를 들어, 관성 센서, 다축 자이로스코프(multi-axis gyroscopic) 센서, 또는 가속 센서를 포함할 수 있다. 클라이언트 장치는 사용자의 머리 움직임을 추적하여, 뷰 필드(view field)에 해당하는, 사용자가 바라보고 있는 위치를 결정한다. 뷰 필드는 클라이언트 장치를 통해 3차원 환경에서 볼 수 있는 필드를 지칭할 수 있다. 뷰 필드는 뷰포트(viewport) 및 뷰포인트(viewpoint)를 기반으로 하여 결정될 수 있다.
서버(410)와 클라이언트 장치(420) 사이의 스트리밍 세션 초기화를 완료한 후에, 클라이언트 장치(420)는 뷰포트, 뷰 필드 및/또는 가용 스크리밍 세션 비트율(또는 대역폭) 중 적어도 하나에 대한 정보를 포함하는 피드백을 전송한다. 일 실시 예에서, 피드백은 채널 상태 정보(channel state information, CSI)를 또한 포함하고, 서버는 채널 상태 정보를 기반으로 하여 가용 비트율 또는 대역폭을 결정할 수 있다.
이후, 서버(410)는 흐름 제어 및 뷰 필드 의존 선택기(view field-dependent selector)(412)라고 불리는 절차를 통해 포인트 클라우드 데이터를 전송하기 시작한다. 이러한 절차는 뷰 필드 및 대역폭/CSI 피드백을 기반으로 하여 포인트 클라우드 데이터(옥트리의 노드)를 선택하도록 설계된다. 또한, 절차는 적절한 대역폭을 유지하기 위해 스트림의 흐름 제어를 제공한다. 다음으로, 클라이언트 장치(420)는 뷰 필드 의존성 적응형 콘텐츠를 수신하여 렌더링하고, 그것을 클라이언트 장치 화면에 디스플레이한다. 마지막으로, 이러한 절차는 사용자에게 양호한 스트리밍 서비스를 제공하기 위해 계속 반복된다.
2. 뷰 필드 인식 포인트 클라우드 스트리밍
계층 노드가 뷰 필드 범위 내에 있는지 여부를 결정하는 방법을 본 섹션에서 제공할 것이다. 방법은 계층적으로 구조화된 포인트 클라우드에서 노드의 경계 박스 및 가상 카메라 뷰 필드 정보에 따라 수행될 수 있다. 이를 통해 서버는 뷰 필드 내의 영역을 스트리밍할 수 있고, 뷰 필드 밖에 있는 영역은 축소되거나 폐기될 것이다. 복수의 물체를 처리하는 방법에서, 결정 절차는 복수의 물체에서 노드의 복수의 경계 박스 및 카메라의 뷰 필드 정보에 따라 수행될 수 있다.
2.1 MPEG 미디어 전송 프로토콜(MPEG media transport protocol, MMT) 시그널링
6DoF 어플리케이션 별 시그널링 메시지는 urn 값이 "urn:mpeg:mmt:app:6dof:2017" 또는 대안적으로 "urn:mpeg:mmt:app:6dof:2018"인 어플리케이션 식별자를 갖는다.
ViewfieldFeedback의 구문을 아래 표에 도시한다.
<표 1>
ViewfieldFeedback 및 BandwidthFeedback
Figure pct00001
표 1의 필드를 다음에서 설명한다.
Application_type: 본 필드는 본 메시지의 내용을 소비할 어플리케이션을 고유하게 식별하는 urn으로 어플리케이션-유형을 정의한다. 본 필드의 길이는 16 비트이다.
message_type: 본 필드는 표 1에 제공된 바와 같은 메시지 유형을 정의한다. 본 필드의 길이는 8 비트이다.
p11, p13, p22, p23, p33, p34: 본 필드는 4x4 투영 행렬(projection matrix)의 6개 요소들을 정의하고, 모든 요소들은 [-32768, 32767] 범위 내에 있다. 본 필드의 길이는 16 비트이고 65536까지 확장된다.
ModelViewMatrix: 본 필드는 4x4 ModelView 행렬에 16개 요소들을 정의하고, 모든 요소들은 [-32768, 32767] 범위 내에 있다. 본 필드의 길이는 16 비트이고 65536까지 확장된다.
BitrateValue: 본 필드는 클라이언트 측에서 현재의 스트리밍 세션에 할당된 비트율 값을 정의하고, [-32768, 32767] 범위 내에 있다. 본 필드의 길이는 16 비트이고 65536까지 확장된다.
투영 행렬(projection matrix): 원근 투영(perspective projection)에서, 각뿔대(truncated pyramid) 절두체(frustum)의 3D 포인트(시각 좌표)는 큐브(NDC); [l,r]부터 [-1,1]까지의 x 좌표 범위, [b,t]부터 [-1,1]까지의 y 좌표 범위, [n,f]부터 [-1,1]까지의 z 좌표 범위에 매핑된다. 투영 행렬은 OpenGL 변환 함수를 사용하여 다음과 같이 획득될 수 있다. 본 개시에서, 6개의 비-상수 요소들은 p11, p13, p22, p23, p33, p34를 사용하여 표시된다. 일 실시 예에서, 하나의 OpenGL 투영 행렬은 다음의 수학식 1과 같을 수 있다.
<수학식 1>
수학식 1
Figure pct00002
ModelView 행렬: 투영 행렬은 OpenGL 변환 함수를 사용하여 다음과 같이 획득될 수 있다. 투영 행렬 내의 모든 16개 요소들은 ModelViewMatrix를 사용하여 표시된다.
아래의 표 2 및 표 3은 MMT 웹소켓을 사용하는 6DoF 어플리케이션 별 시그널링 방법을 설명한다.
<표 2>
포인트 클라우드 스트리밍을 위한 MMT 웹소켓 하위 프로토콜 명령
Figure pct00003
<표 3>
6DoF 어플리케이션 별 JSON 매개변수
Figure pct00004
뷰 필드 인식 스트리밍 방법에서, 뷰 필드 내에 있는지 여부의 결정은 물체 포인트 레벨 대신 노드 레벨에서 달성될 수 있다.
도 5는 본 개시의 실시 예에 따른 3D 포인트 클라우드의 계층 구조(500)의 예시적인 복수 레벨을 도시한다. 도 5에 계층 구조의 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
도 5에 도시된 바와 같이, 레벨 1(510), 레벨 2(520) 및 레벨 3(530)에서 노드 및 그들의 경계 박스는 각각 도시된다. 각각의 레벨에 대해, 노드의 크기는 줄어드는 반면에 포인트 밀도는 증가한다. 물체의 노드의 계층 레벨은 다음과 같이 즉, 물체 자체를 근 노드로 설정하는 단계 및 각 계층 레벨에 대해 각 레벨 노드를 근 노드부터 복수의 하위 레벨 노드로 분할하는 단계를 통해 생성될 수 있다.
분할 절차 후, 서버는 L개 레벨의 계층 구조를 가질 수 있고, 각 레벨은 상이한 노드 밀도/해상도를 갖는다. 일 실시 예에서, 기존 데이터 집합의 각 포인트는 정확하게 하나의 옥트리 노드에 할당되고, 새로운 포인트들 또는 복제본은 생성되지 않는다. 다른 실시 예에서, 기존 데이터의 포인트는 상이한 계층 레벨에서 복수의 옥트리 노드에 할당될 수 있다. 낮은 계층 레벨의 노드에 있는 포인트들은 높은 계층 레벨의 노드에 제공될 수 있다. 뷰 필드 내에 있는지 여부의 결정은 포인트들 레벨 대신 노드 레벨 및/또는 물체 레벨에서 처리되고, 이는 시간 소비 및 계산 비용을 크게 줄일 수 있음을 유의해야 한다.
각각의 물체/노드가 뷰 필드 영역 내에 있는지 여부를 결정하는 하나의 알고리즘은 다음과 같다. 알고리즘의 입력은 주어진 물체/노드의 경계 박스의 8개 정점들{p1,p2,…,p8}의 위치 및 뷰 필드 피드백으로 MModelView 및 Mprojection을 포함하는 카메라 행렬이고, 여기서 pi=(xi,yi,zi)이고 i=1,2,…,8이다. 알고리즘의 출력은 전체 또는 부분 물체/노드가 뷰 필드 내에 있음을 나타내는 NodeInView 값 = TRUE; 물체/노드가 뷰 필드 밖에 있음을 나타내는 NodeInView 값 = FALSE이다. 각각의 물체는 근 노드에서 최대 레벨의 노드까지 복수 계층 레벨의 노드로 구성된다. 일 실시 예에서, 근 노드는 물체 그 자체일 수 있다.
이러한 알고리즘을 구현하기 위한 3 단계는 다음과 같다:
단계 1에서, 알고리즘은 포인트(x,y,z)가 뷰 필드 내에 있는 경우에는 '1'로 돌아가고, 포인트(x,y,z)가 뷰 필드 밖에 있는 경우에는 "0"으로 돌아가는 함수 PointInView(x,y,z)를 정의한다. 다음의 수학식 2에서, (xobj,yobj,zobj,wobj)는 물체 좌표를 나타내고, (xe,ye,ze,we)는 시각 좌표를 나타내고, (xclip,yclip,zclip,wclip)은 클립 좌표를 나타내고, (xndc,yndc,zndc)는 정규화된 장치 좌표(normalized device coordinates, NDC)를 표시한다.
<수학식 2>
Figure pct00005
상기 수학식 2로부터, 알고리즘은 입력에 따라 클립 좌표(xclip,yclip,zclip) 값을 획득할 수 있다. 그것을 기반으로 하여, 다음의 수학식 3과 같이 정규화된 장치 좌표(xndc,yndc,zndc)를 계산할 수 있다.
<수학식 3>
Figure pct00006
이후, 다음의 수학식 4와 같이 PointInView(x,y,z)를 획득한다.
<수학식 4>
Figure pct00007
단계 2에서, 알고리즘은 주어진 물체/노드의 8개 정점들{p1, p2,…,p8} 모두에 대한 PointInView(x,y,z) 값을 계산한다, 여기서 pi=(xi,yi,zi)이고 i=1,2,3…,8이다.
단계 3에서, 알고리즘은 8개의 PointInView(xi,yi,zi)(i=1,2,3…,8) 중 어느 하나가 1인 경우(즉, 뷰 절두체 내에 적어도 하나의 정점이 존재하는 경우)에는 주어진 물체/노드가 뷰 필드 내에 있음을 의미하는 NodeInView = TRUE를 획득하고, 그렇지 않은 경우에는 주어진 물체/노드가 뷰 필드 밖에 있음을 의미하는 NodeInView = FALSE를 획득한다. NodeInView 값은 다음의 수학식 5로 계산할 수 있다.
<수학식 5>
Figure pct00008
도 6은 본 개시의 일 실시 예에 따른, 서버에 의해 수행될 수 있는 바와 같이, 각 노드가 뷰 필드 영역 내에 있는지 여부를 결정하는 방법의 예시적인 흐름도(600)를 도시한다. 도 6에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로서 도시되었지만, 다양한 단계가 중첩될 수 있고, 동시에 발생할 수 있고, 상이한 순서로 발생할 수 있고, 여러 번 발생할 수 있고, 또는 특정 실시 예에서는 수행되지 않을 수 있다.
방법은 입력 준비 단계(610)에서 시작할 수 있다. 현재 레벨의 각 노드에 대해, 방법은 그 경계 박스의 8개 정점들 위치를 pi=(xi,yi,zi), i=1,2,…8로 나타낸다. 또한, MModelView 및 Mprojection을 포함하는 카메라 행렬이 뷰 필드 피드백으로서 클라이언트 장치로부터 수신된다.
단계 620에서, 각 노드에 대해, 함수 PointInView(x,y,z)에 따라, 주어진 노드에서 8개의 정점들 {p1,p2,…,p8}(여기서, pi=(xi,yi,zi), i=1,2,…8) 모두에 대한 PointInView(x,y,z) 값을 계산하고 이후, NodeInView 값을 계산할 수 있다.
단계 630에서, NodeInView = TRUE인 경우, 방법은 주어진 노드가 뷰 필드 내에 있다(두 가지 경우 즉, 전적으로 내에 있는 경우 및 부분적으로 내에 있는 경우 포함)고 결정하고; 달리 NodeInView = FALSE인 경우, 방법은 주어진 노드가 뷰 필드 밖에 있다고 결정한다.
단계 640에서, 계층 구조(예를 들어, 옥트리)에서 현재 레벨의 각 노드에 대해 단계 620 및 단계 630을 반복하고, 레벨의 모든 노드들에 대해 노드가 뷰 필드 내에 있는지 여부를 결정할 수 있다. 일 실시 예에서, 뷰 필드 내의 노드만 서버에서 클라이언트 장치로 전송될 것이다. 이러한 접근 방법은 물체가 뷰 필드 내에 부분적으로 존재하는 시나리오를 처리할 수 있다. 그러한 시나리오에서, 뷰 필드 내에 부분적으로 존재하는 물체는 뷰 필드 내에 전적으로 존재하는 일부 노드, 뷰 필드 내 부분적으로 존재하는 일부 노드, 및 뷰 필드 밖에 존재하는 다른 노드를 포함한다. 노드가 뷰 필드 내에 있는 것으로 결정될 때(즉, 뷰 필드 내에 부분적으로 존재하는 노드의 NodeInView를 TRUE로 설정), 서버는 뷰 필드 내에 부분적으로 존재하는 노드를 스트리밍할 것이다.
노드가 뷰 필드 내에 존재하는지 여부를 결정할 때, 방법은 다음과 같은 결정 기준을 사용한다 즉, 8개의 PointInView(xi,yi,zi), i=1,2,3…8 중 어느 하나가 1인 경우, NodeInView는 TRUE이고, 이는 주어진 노드가 뷰 필드 내에 있다는 의미이고, 그렇지 않은 경우, NodeInView는 FALSE이고, 주어진 노드가 뷰 필드 밖에 있다는 의미이다.
노드가 뷰 필드 내에 부분적으로 존재하는 경우, 8개의 정점들 중 하나 이상은 뷰 필드 내에 존재해야 하기 때문에, 이러한 노드는 뷰 필드 내에 있다고 결론내린다.
컴퓨터 그래픽 렌더링에서, 사용자가 포인트 클라우드를 바라보는 경우 폐색(occlusion)이 종종 발생한다. 따라서, 가시적 포인트(visible point)들은 사용자의 가상 카메라를 향한 측면의 포인트들로서, 상응하여 비가시적 포인트들은 사용자 뷰의 가시적 포인트들에 의해 차폐된 다른 측면의 포인트들로서 정의된다.
도 7a 및 도 7b는 본 개시의 실시 예에 따른 가시적 포인트를 결정하는 방법을 설명하는 예시적인 다이어그램을 도시한다. 도 7a 및 도 7b에 도시된 방법의 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
도 7a에서, 포인트(x,y,z) 및 포인트(x',y',z')는 가상 카메라 위치 포인트를 통해 동일 선(710) 상에 놓여서 (x',y',z')는 가시적 포인트가 되고 (x,y,z)는 비가시적 포인트가 된다. 마찬가지로, 도 7b에서, 점선(720)은 포인트 클라우드의 가시적 부분을 나타내고, 점선(730)은 포인트 클라우드의 비가시적 부분을 나타낸다.
포인트 클라우드의 어느 부분이 폐색(occlusion) 내에 존재하는지를 결정하는 일 실시 예가 다음과 같이 기술된다. 여기서, (포인트 클라우드 파일에 기록된) 좌표 정보 및 카메라 행렬은 가시적인 포인트 클라우드의 포인트 인덱스를 결정하기 위한 입력이다.
제일 먼저, 포인트 클라우드의 모든 포인트는 고유 포인트 인덱스 및 좌표 정보를 갖는다. 각각의 포인트 좌표 정보 및 카메라 행렬 정보의 경우, 방법은 (x,y,z)window라고 불리는 사용자의 윈도우 공간에서 그 좌표를 계산한다.
따라서, 룩업 테이블(lookup table)은 일반적으로 모든 포인트들에 (x,y,z)window를 사용하여 키워드로 (x,y)window를 사용하여 작성된다. 그것을 작성하는 프로세스 동안, (x,y)window가 룩업 테이블에 대해 새로운 것인 경우, 방법은 그 zwindow 정보 및 포인트 인덱스를 룩업 테이블에 남겨둔다. 달리, (x,y)window가 언급되어 있다면, 방법은 해당하는 2개의 zwindow(하나는 현재의 포인트로부터의 것, 다른 하나는 룩업 테이블에 남겨진 것)를 비교한 후 더 작은(즉, 카메라에 더 가까이 있는) zwindow를 사용하여 룩업 테이블을 업데이트할 것이다.
마지막으로, 방법은 룩업 테이블에서 일련의 zwindow 정보 및 포인트 인덱스를 획득할 수 있다. 이들 포인트 인덱스는 모든 가시적 포인트들의 인덱스를 기록하기 때문에, 가시적 포인트 결정 결과를 보여준다.
그러나, 포인트들이 가시적인지 여부를 결정하는 전술한 방법은 룩업 테이블에 저장된 저장된 깊이와 비교하여 각 포인트를 확인하기 때문에 시간이 오래 걸리고 비효율적인 프로세스일 수 잇다.
하나의 스트리밍 방법의 다른 실시 예에서, 스트리밍 될 포인트 클라우드 부분을 결정하는 작업은 서버 측에서 처리될 수 있다. 클라이언트는 지속적으로 또는 클라이언트 뷰 필드 변화가 특정 임계값보다 높아지는 이벤트가 발생할 때 서버에 카메라 행렬을 피드백한다.
카메라 행렬 및 (x,y,z)object(즉, 물체 공간에서의 좌표)를 기반으로 하여 포인트의 (x,y,z)window(즉, 사용자의 윈도우 공간에서의 좌표)를 계산하는 일 실시 예를 다음과 같이 기술한다. 후자는 입력으로 포인트 클라우드에 기록된다.
도 8은 본 개시의 일 실시 예에 따른 포인트의 (x,y,z)window를 계산하는 방법의 예시적인 흐름도(800)를 도시한다. 도 8에 도시된 실시 예는 단지 예시이다. 도 8에 도시된 구성 요소 중 하나 이상은 언급된 기능을 수행하도록 구성된 특수 회로에서 구현될 수 있고, 또는 구성 요소 중 하나 이상은 언급된 기능을 수행하기 위해 명령을 실행하는 하나 이상의 프로세서에 의해 구현될 수 있다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
도 8에 도시된 바와 같이, 방법은 ModelView 행렬 MModelView을 사용하여 물체 공간(805)을 시각 공간(810)으로 변환한다. 이후, 방법은 시각 공간(810)을 클립 공간(815)으로 변환하기 위해 투영 행렬 Mprojection을 사용한다. 이어서, 클립 공간(815)은 투시 분할(perspective dividing) MDivide을 사용하여 정규화된 장치 좌표(normalized device coordinates, NDC) 공간(820)으로 변환되고, 윈도우 공간(825)으로의 뷰 필드 변환 MViewport을 수행한다. 수학적으로, 포인트 좌표(x,y,z)의 경우, 물체 공간(805)에서 윈도우 공간(825)으로의 변환 절차는 다음의 수학식 6으로 나타낼 수 있다.
<수학식 6>
Figure pct00009
구체적으로, 사용자가 가상 카메라 방향을 변경하는 경우, 투영 행렬 Mprojection이라고 불리는 카메라 행렬 중 하나만 변경될 것이다. 투영 행렬은 카메라 위치 및 카메라의 방향을 기록하는 4x4 행렬이고, 이러한 여러 카메라 행렬은 웹 브라우저에서 렌더링 기계로부터 쉽게 획득된다. 이러한 방식으로, 방법은 (x,y,z)object로부터 성공적으로 (x,y,z)window를 획득할 수 있다.
2.2 복수의 물체 - 복수 물체의 계층 노드가 뷰 필드 범위 내에 있는지 여부 결정
도 9는 본 개시의 일 실시예에 따른, 복수 물체의 노드의 계층(예를 들어, 옥트리) 레벨이 뷰 필드 범위 내에 있는지 여부를 결정하는 방법을 설명하기 위한 예시적인 다이어그램(900)을 도시한다. 도 9에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예들이 사용된다.
도 9에 도시된 바와 같이, 물체 'a'(910)는 뷰 필드 내에서 전적으로 렌더링되고, 물체 'b'(920)는 뷰 필드 내에서 부분적으로 렌더링되고, 물체 'c'(930)는 뷰 필드 밖에서 전적으로 렌더링된다. 각각의 포인트 클라우드 물체는 그 물체에 대한 경계 박스를 갖고, 경계 박스는 그 공간에 노드의 모든 포인트들을 포함한다.
이들 8개 정점들이 모두 뷰 필드 내에서 렌더링되지 않는 경우, 물체의 포인트들은 모두 뷰 필드 범위에서 렌더링되지 않을 것이다. 이는 큐브의 토폴로지를 기반으로 하는 수학적 결론이다. 각각의 포인트 클라우드 물체는 다수의 포인트들을 포함한다.
일 실시 예에서, 서버는 뷰 필드 내에서 렌더링되는 전적으로 또는 부분적으로 렌더링되는 영역만 전송할 수 있고, 뷰 필드 밖에서 렌더링되는 다른 영역은 완전히 폐기될 수 있다. 이는 필요한 대역폭을 줄이고(즉, 전송할 콘텐츠를 감소시키고) 대기 시간 단축(즉, 전송, 렌더링 및 디스플레이 시간 단축)을 제공할 것이다.
도 10은 본 개시의 일 실시 예에 따른 복수 물체에 대한 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 예시적인 흐름도(1000)이다. 도 10에 도시된 흐름도(1000)는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로 도시되어 있지만, 다양한 단계가 중첩되거나, 동시에 발생하거나, 상이한 순서로 발생하거나, 여러 번 발생하거나, 특정 실시 예에서는 수행되지 않을 수 있다.
방법은 단계 1010에서 시작된다. 단계 1010에서, 방법은 처리할 제1 물체를 설정하고 계층 레벨 중 최저 레벨(즉, 최대 해상도 레벨)을 제1 레벨로 설정한다.
단계 1020에서, 현재의 물체의 경우, 주어진 레벨의 각 노드에 대해, 그 경계 박스의 8개 정점들의 위치는 pi=(xi,yi,zi), i=1,2,…8로 표시된다. 또한, MModelView 및 Mprojection를 포함하는 카메라 행렬은 전술한 바와 같이 뷰 필드 피드백으로서 클라이언트로부터 수신된다.
단계 1030에서, 현재의 물체의 경우, NodeInView 값은 해당 계층 구조의 각 노드로 계산된다. 일 실시 예에서, 초기 노드는 해당 계층 구조의 근 노드(root node)일 수 있다. 각 물체에 해당하는 NodeInView가 FALSE인 경우, 이러한 물체는 뷰 필드에 밖에 있는 것으로 결정되고, 그렇지 않은 경우, 물체는 뷰 필드 내에 있는 것으로 결정된다.
단계 1040에서, 뷰 필드 내에 있는 것으로 결정된 각각의 물체에 대해, 흐름도는 계층 구조(예를 들어, 옥트리)에서 선택된 레벨의 각 노드에 대해 NodeInView 값을 계산한다.
단계 1050에서, 방법은 레벨이 최대 레벨 이하이면 하나씩 레벨을 증가시키고, 할당되지 않은 대역폭이 존재하면 단계 1020, 단계 1030 및 단계 1040을 계속 반복한다. 일 실시 예에서, 가용 대역폭이 증가된 계층 레벨의 노드를 수용하는 한 이러한 반복 과정은 계속될 수 있다. 그렇지 않은 경우, 방법은 단계 1060을 진행한다.
단계 1060에서, 방법은 처리할 다음 포인트 클라우드 물체를 선택하고, 처리되지 않은 물체가 존재하는 경우 단계 1020으로 돌아간다. 달리, 계층 노드가 뷰 필드 내에 있는지 여부를 결정하기 위해 모든 물체가 처리되면 방법은 다음 단계 1060을 진행한다.
단계 1060에서, 방법은 아래의 "비트율 피드백 기반 물체 비율 할당"이라는 제목의 섹션 3에서 기술되는 비트율 피드백 기반 비율 할당 알고리즘을 처리한다.
단계 1070에서, 화면의 모든 물체들에 대해, 서버는 제1 레벨에서부터 섹션 3, 비트율 피드백 기반 물체 비율 할당 알고리즘에서 결정된 상위 레벨까지의 레벨을 반복 실행하고, 서버는 클라이언트에 결정된 레벨에 대한 뷰 필드 내에 있는 노드를 전송한다. 이러한 방식으로, 노드가 뷰 필드 내에 있는지 여부에 관계없이, 계층 노드의 레벨의 상한이 결정된다.
도 11은 본 개시의 일 실시 예에 따른 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 다른 예시적인 흐름도(1100)를 도시한다. 도 11에 도시된 흐름도(1100)는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로 도시되었지만, 다양한 단계가 중첩될 수 있고, 동시에 발생할 수 있고, 상이한 순서로 발생할 수 있고, 여러 번 발생할 수 있고, 또는 특정 실시 예에서는 수행되지 않을 수 있다.
이러한 실시 예에서, 방법은 뷰 필드 밖의 물체에 대해 거친 레벨(더 낮은 계층 레벨)을 할당하는 것을 제외하고 흐름도(1000)와 대부분이 유사하다. 단계 1110, 단계 1120, 단계 1130, 단계 1140, 단계 1150, 단계 1160, 단계 1170, 단계 1180은 도 10에 도시된 단계 1010, 단계 1020, 단계 1030, 단계 1040, 단계 1050, 단계 1060, 단계 1070 및 단계 1080과 동일하다. 차이점은 흐름도(1100)가 뷰 필드 밖의 물체에 대해 추가로 단계 1185 및 단계 1190을 갖는다는 것이다.
단계 1185에서, 뷰 필드 밖에 존재하는 것으로 결정된 물체 각각에 대해, 방법은 주어진 노드에서 경계 박스 중심{pc}(여기서, pc=(xi,yi,zi))의 정점에 대한 정규화된 장치 좌표(xndc, yndc, zndc) 값을 계산한다.
단계 1190에서, 뷰 필드 밖의 물체 각각에 대해, 방법은 정규화된 장치 좌표의 xndc, yndc, zndc 중 어느 하나가 [-1-Δ, 1+Δ]의 범위 내에 있는 경우, 포인트 클라우드 물체 각각에 대해, 뷰 필드 내의 물체/노드에 할당된 대역폭보다 작은 대역폭 또는 거친 레벨을 할당한다. 델타(Δ)((또는 임계값)은 클라이언트 장치에서의 버퍼링 양, 사용자의 움직임 속도, 또는 가용 대역폭의 크기 중 적어도 하나를 기반으로 하여 결정될 수 있는 변수이다. 달리, 정규화된 장치 좌표의 xndc, yndc, zndc 중 어느 것도 [-1-Δ, 1+Δ]의 범위 내에 없는 경우, 상기 물체에 대한 포인트는 전송되지 않는다. 대안적으로, 정규화된 장치 좌표의 xndc, yndc, zndc에 따라 상이한 대역폭 레벨을 할당하기 위해 여러 델타 범위가 사용된다. 델타 값이 클수록 델타 기간 내의 물체에 할당된 대역폭은 작아진다.
2.3 단일 물체 - 단일 물체의 계층 노드가 뷰 필드 범위 내에 있는지 여부 결정
도 12a 내지 도 12c는 본 개시의 일 실시 예에 따른 단일 물체의 계층 노드가 뷰 필드 범위 내에 있는지 여부를 결정하는 방법을 설명하기 위한 예시적인 다이어그램을 도시한다. 도 12a 내지 도 12c에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
도 12a는 전적으로 뷰 절두체 내에 있는 물체 'a'(1205)를 도시하고, 도 12b는 부분적으로 뷰 절두체 내에 있는 물체 'b'(1210)를 도시하고, 도 12c는 전적으로 뷰 절두체 밖에 있는 물체 'c'(1215)를 도시한다.
일 실시 예에서, 서버는 뷰 절두체 내의 영역을 전송할 수 있고, 뷰 절두체 밖에 있는 영역은 완전히 폐기될 수 있다. 결과적으로, 필요한 대역폭이 줄어들고(즉, 전송할 콘텐츠가 감소하고) 대기 시간이 단축(즉, 전송, 렌더링 및 디스플레이할 시간 단축)될 것이다.
계층 구조, 예를 들어 옥트리 구조에서, 각각의 노드는 많은 포인트들을 포함하고 그 고유 공간 분포를 갖는다. 각각의 노드는 경계 박스를 갖고, 그 공간에 노드의 모든 포인트들을 포함한다. 모든 경계 박스는 8개의 정점들을 갖는다. 이들 8개 정점들이 모두 뷰 절두체 내에 존재하지 않는 경우, 이들 노드의 포인트들은 모두 뷰 절두체 내에 없을 것이다. 이는 큐브의 토폴로지를 기반으로 하는 수학적 결론이다.
도 13은 본 개시의 일 실시 예에 따른 복수의 노드로 구성된 포인트 클라우드 물체에 대한 예시적인 다이어그램(1300)을 도시한다. 도 13에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다.
도 13에 도시된 바와 같이, 물체(1310)는 부분적으로 뷰 필드 내에 있다. 물체(1310)는 노드 'a'(1320), 노드 'b'(1330), 노드 'c'(1340)를 포함하여 복수의 노드를 포함한다. 상기 도면에서, 노드 'a'(1320), 노드 'b'(1330), 노드 'c'(1340)는 각각 뷰 필드 영역과 각 노드의 경계 박스 사이의 상이한 관계를 나타낸다. 도 13은 노드 'a'(1320)의 경계 박스가 뷰 필드 영역 내에 있는 반면에 노드 'b'(1330)는 노드의 경계 박스가 뷰 필드 영역 내에 부분적으로 렌더링됨을 도시한다는 것을 보여준다. 노드 'c'(1340)의 전체 경계 박스는 뷰 영역을 벗어난다.
도 14은 본 개시의 일 실시 예에 따른 뷰 필드 인식 포인트 클라우드 스트리밍 방법에 대한 예시적인 흐름도(1400)를 도시한다. 도 14에 도시된 흐름도(1400)는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로 도시되었지만, 다양한 단계가 중첩될 수 있고, 동시에 발생할 수 있고, 상이한 순서로 발생할 수 있고, 여러 번 발생할 수 있고, 또는 특정 실시 예에서는 수행되지 않을 수 있다.
방법은 단계 1410에서 시작된다. 단계 1410에서, 서버는 대역폭 피드백뿐만 아니라 MModelView 및 Mprojection을 포함하는 가상 카메라 행렬을 포함하는 뷰 필드 피드백을 수신한다. 현재의 대역폭 조건을 기반으로 하여, 서버는 다음 섹션에서 기술되는 바와 같이 물체 또는 노드가 뷰 필드 내에 있는지 여부를 결정하는 가용 대역폭을 기반으로 하여 스트리밍할 3D 물체 포인트 클라우드 콘텐츠의 레벨을 선택한다.
단계 1420에서, 3D 물체 포인트 클라우드의 선택된 레벨에 대해, 서버는 선택된 레벨에서 노드의 모든 경계 박스를 획득한다.
단계 1430에서, 현재 레벨의 모든 노드에 대해, 서버는 노드가 뷰 필드 영역 내에 있는지 여부를 결정하기 위해 진행한다.
단계 1440에서, 서버는 현재 레벨이 계층 레벨의 최대 레벨 이하인 경우에는 현재 레벨을 하나씩 증가시키고, 할당되지 않은 대역폭이 존재하는 경우에는 단계 1410, 단계 1420 및 단계 1430을 계속 반복한다. 달리, 현재 레벨이 최대 레벨보다 큰 경우에는 다음 작업을 처리한다.
단계 1450에서, 섹션 3에 기술된 비트율 피드백 기반 비율 할당 알고리즘을 처리한다.
단계 1460에서, 화면의 현재 물체에 대해, 서버는 제1 레벨에서 비트율 피드백 기반 물체 비율 할당 방법이라는 제목의 섹션 3에서 결정된 결정된 상위 레벨까지의 레벨을 반복하고, 서버는 클라이언트에 처리된 레벨(들)에 대한 뷰 필드 내 노드를 전송한다.
도 15는 본 개시의 일 실시 예에 따른 클라이언트 장치로부터의 피드백을 기반으로 하는 뷰 필드 인식 포인트 클라우드 스트리밍에 대한 다른 예시적인 흐름도(1500)를 도시한다. 도 15에 도시된 흐름도(1500)는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로 도시되었지만, 다양한 단계가 중첩될 수 있고, 동시에 발생할 수 있고, 상이한 순서로 발생할 수 있고, 여러 번 발생할 수 있고, 또는 특정 실시 예에서는 수행되지 않을 수 있다.
이러한 실시 예에서, 단계 1510, 단계 1520, 단계 1530, 단계 1540, 단계 1550, 및 단계 1560은 도 14에 도시된 흐름도(1400)의 해당 단계 1410, 단계 1420, 단계 1430, 단계 1440, 단계 1450, 및 단계 1460과 동일하다.
차이점은 노드가 뷰 필드 밖에 있는 경우에는 단계 1570에서 서버가 주어진 노드의 경계 박스 중심{pc}(여기서, pc=xi,yi,zi)의 정점에 대한 정규화된 장치 좌표(xndc,yndc,zndc) 값을 계산한다는 것이다.
단계 1580에서, 뷰 필드 밖의 노드에 대해, 노드의 정규화된 장치 좌표의 xndc,yndc,zndc 중 어느 하나가 [-1-Δ, 1+Δ]의 범위 내에 있는 경우, 서버는 포인트 클라우드 물체의 노드에 대해 거친 레벨을 할당한다. 전술한 바와 같이, 델타는 클라이언트 장치에서의 버퍼링 양, 사용자의 움직임 속도, 또는 가용 대역폭의 크기 중 적어도 하나를 기반으로 하여 결정될 수 있는 변수이다. 달리, 노드의 정규화된 장치 좌표의 xndc,yndc,zndc 중 어느 것도 [-1-Δ, 1+Δ]의 범위 내에 없는 경우, 노드는 전송되지 않는다. 이후, 단계 1540, 단계 1550, 및 단계 1560을 계속 처리한다.
3. 비트율 피드백 기반 물체 비율 할당
다음에서, 뷰 필드 내의 물체 및 뷰 필드 밖의 물체를 포함하는 복수 개체에 비트율(대역폭)을 할당하는 단계를 포함하는, 물체 비율 할당을 기반으로 하는 비트율 피드백 방법을 기술할 것이다.
도 16은 본 개시의 일 실시 예에 따른 비트율 피드백을 기반으로 하여 물체에 비트율(또는 대역폭)을 할당하는 방법의 예시적인 흐름도(1600)를 도시한다. 도 16에 도시된 실시 예는 단지 예시이다. 본 개시의 범위를 벗어나지 않고 다른 실시 예가 사용된다. 예를 들어, 일련의 단계로 도시되었지만, 다양한 단계가 중첩될 수 있고, 동시에 발생할 수 있고, 상이한 순서로 발생할 수 있고, 여러 번 발생할 수 있고, 또는 특정 실시 예에서는 수행되지 않을 수 있다.
방법은 단계 1610에서 시작된다. 단계 1610에서, 초기화를 위해, 서버는 전술한 바와 같이 클라이언트로부터 전송되는 Br로 표시된 비트율 피드백을 수신하고, 최대 레벨(lmax) 및 프레임률(f)을 포함하는 매개변수 설정, 뷰 필드 내의 물체, 및 뷰 필드 밖의 물체를 식별한다.
단계 1620에서, 서버는 할당 규칙에 따라 뷰 필드 내의 물체 및 뷰 필드 밖의 물체에 스트리밍 세션 비트율을 할당한다. 일 실시 예에서, 하나의 할당 규칙은 특정 비율, 예를 들어 70:30으로 비트율을 할당할 수 있다. 이러한 예에서, 서버는 뷰 필드 내의 물체에는 세션 비트율(또는 대역폭)의 70%를 할당하고, 뷰 필드 밖의 물체에는 세션 비트율(대역폭)의 30%를 할당할 수 있다. 다른 실시 예에서는 할당 비율이 65:35, 75:25 등과 같이 달라질 수 있다.
단계 1630에서, 서버는 뷰 필드 내의 물체에 대한 할당 규칙에 따라 물체들 사이에서, 뷰 필드 내의 물체에 할당되는 비트율을 할당한다. 일 실시 예에서, 할당 규칙은 뷰 필드 내의 각 포인트 클라우드 물체에 할당된 비트율을 균일하게 할당할 수 있다. 대안적으로, 할당 규칙은 뷰 필드 내의 모든 물체의 총 비트율 및 현재 물체의 비트율 비율에 따라 포인트 클라우드 물체에 할당된 비트율을 할당할 수 있다. 이후, 다음과 같이 뷰 필드 내의 각 물체에 대해 상위 레벨이 도출된다. 물체의 하나의 프레임에 할당된 비트는 비트율을 프레임 비율로 나눔으로써 도출된다. 하나의 프레임의 비트를 도출할 때, 비트 누적이 도출된 하나의 프레임 비트에 도달할 때까지 레벨의 상한은 각 레벨의 노드의 비트를 축적함으로써 결정되고, 비트 누적은 제1 레벨에서 상위 레벨까지 처리된다. 그러한 방법으로, 상위 레벨은 뷰 필드 내의 각 물체에 대해 도출된다.
단계 1640에서, 서버는 뷰 필드 밖의 물체에 대해 할당 규칙에 따라 물체 사이에서 뷰 필드 밖의 물체에 할당되는 비트율을 할당한다. 일 실시 예에서, 규칙은 뷰 필드 밖의 포인트 클라우드 물체 각각에 할당된 비트율을 균일하게 할당할 수 있다. 대안적으로, 할당 규칙은 뷰 필드 밖의 모든 물체의 총 비트율 및 현재 물체의 비트율 비율에 따라 포인트 클라우드 물체에 할당된 비트율을 할당할 수 있다. 이후, 뷰 필드 내의 각 물체의 할당된 비트율을 기반으로 하여 뷰 필드 밖의 각 물체에 대해 상위 레벨이 도출된다. 여기서, 상위 레벨이 0이라는 것은 뷰 필드 밖의 상기 물체에 대해 노드가 전혀 전송되지 않음을 표시한다. 뷰 필드 밖의 물체에 대한 상위 레벨을 설정하는 프로세스는 상기 섹션 2에 기술된다.
상기 실시 예는 서버가 뷰 필드 내에 렌더링된 영역 또는 표시된 계층 노드만을 전송할 수 있게 하고, 뷰 필드 밖에 렌더링되는 계층 노드는 완전히 폐기될 수 있고, 또는 대안적으로, 뷰 필드 내의 노드만을 전송하고 거친 방식으로 뷰 필드 밖의 노드를 전송한다(예를 들어, 사용자에 의한 갑작스러운 뷰 필드 변화를 처리하기 위한 백업으로서 낮은 레벨의 노드). 또한, 실시 예는 시스템이 네트워크 대역폭을 크게 절약하고 포인트 클라우드 프리젠테이션 품질을 향상시킬 수 있게 한다.
뷰 필드 내에 있는지 여부의 결정은 포인트들 레벨 대신 노드 레벨 및/또는 포인트 클라우드 물체 레벨에서 처리되기 때문에 계산 비용 및 시간 소비를 크게 절약할 수 있다. 그에 반해서, 포인트들이 가시적인지 여부를 결정하는 전통적인 광선 추적 방법(raytracing way)은 룩업 테이블에 저장되어 있는 저장된 깊이와 비교하여 각 포인트를 확인하기 때문에 시간이 많이 걸리고 비효율적인 프로세스이다.
본 출원의 어떠한 설명도 특정 요소, 단계 또는 기능이 청구 범위에 포함되어야 하는 필수 요소임을 의미하는 것으로 해석되어서는 안된다. 특허 대상 범위는 청구 범위에 의해서만 정의된다.
본 개시는 예시적인 실시 예로 기술되었지만, 다양한 변경 및 수정이 당업자에게 제안될 수 있다. 본 개시는 첨부된 청구 범위 내에 속하는 그러한 변경 및 수정을 포함하는 것으로 의도된다.

Claims (15)

  1. 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 서버로서, 상기 서버는
    상기 3D 콘텐츠 내에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하도록 구성된 메모리;
    상기 3D 콘텐츠에서 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하도록 구성된 통신 인터페이스; 및
    상기 3D 콘텐츠를 상기 클라이언트 장치로 스트리밍하는 데 사용할 수 있는 대역폭의 양을 식별하고,
    상기 3D 포인트 클라우드 데이터를 스트리밍할 상기 대역폭을 상기 물체 중 하나 이상에 할당하도록 구성된 프로세서를 포함하고,
    상기 대역폭을 할당하기 위해, 상기 프로세서는 상기 하나 이상의 물체 각각에 대해,
    상기 각 물체의 위치를 기반으로 하여 상기 각 물체가 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는지 여부를 결정하고;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하지 않는 물체보다 상기 클라이언트 장치의 상기 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 대역폭을 할당하도록 구성되고,
    상기 통신 인터페이스는 상기 할당된 대역폭에 따라 상기 클라이언트 장치에 상기 3D 콘텐츠를 스트리밍하도록 더 구성되는 서버.
  2. 제1 항에 있어서, 상기 프로세서는
    상기 각 물체의 모든 정점들이 아니라 적어도 하나가 상기 뷰 필드 범위 내에 존재하는 경우, 상기 각 물체는 상기 뷰 필드 내에 부분적으로 존재하는 것으로 결정되고;
    상기 각 물체의 모든 정점들이 상기 뷰 필드 범위 내에 존재하지 않는 경우, 상기 각 물체는 상기 뷰 필드를 벗어난 것으로 결정되도록 더 구성되는 클라이언트 장치.
  3. 제1 항에 있어서, 상기 뷰 필드를 표시하는 상기 정보는 투영 행렬 또는 모델 뷰 행렬 중 적어도 하나인 클라이언트 장치.
  4. 제1 항에 있어서, 상기 3D 포인트 클라우드 데이터는 복수의 물체를 포함하고, 상기 각각의 물체는 근 노드부터 최대 레벨의 노드까지 노드의 하나 이상의 계층 레벨을 포함하고, 물체의 노드의 상기 계층 레벨은 상기 물체를 근 노드로 설정하고, 각각의 계층 레벨에 대해 각각의 레벨 노드를 상기 근 노드부터 복수의 하위 레벨 노드로 분할함으로써 생성되는 클라이언트 장치.
  5. 제4 항에 있어서, 상기 프로세서는
    상기 3D 포인트 클라우드 데이터를 스트리밍할 상기 대역폭을 상기 근 노드부터 상위 레벨의 노드에 할당하도록 더 구성되고,
    상기 대역폭을 할당하기 위해, 상기 프로세서는 상기 근 노드의 레벨부터 시작하는 주어진 레벨의 노드 각각에 대해,
    상기 각 노드의 위치를 기반으로 하여 상기 각 노드가 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는지 여부를 결정하고;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하지 않는 노드보다 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는 노드에 더 많은 양의 대역폭을 할당하고;
    상기 클라이언트 장치의 상기 뷰 필드 밖에 있는 상기 노드 각각에 대해,
    상기 각 노드가 상기 클라이언트 장치의 상기 뷰 필드로부터 상기 임계 거리 내에 존재하는지 여부를 결정하고;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는 노드보다 상기 클라이언트 장치의 상기 뷰 필드로부터 상기 임계 거리 내에 존재하는 노드에 더 적은 양의 대역폭을 할당하고;
    할당되지 않은 대역폭이 존재하는 경우, 상기 최대 레벨까지 한 레벨씩 상기 주어진 레벨을 증가시키도록 구성되는 클라이언트 장치.
  6. 제5 항에 있어서,
    상기 각 노드의 정점들 중 적어도 하나가 상기 뷰 필드 범위 내에 있는 경우, 상기 각 노드는 상기 뷰 필드 내에 있는 것으로 결정되고; 상기 노드의 정점들 모두가 상기 뷰 필드 범위 내에 없는 경우, 상기 각 노드는 상기 뷰 필드를 벗어난 것으로 결정되는 클라이언트 장치.
  7. 제5 항에 있어서, 상기 프로세서는
    상기 클라이언트 장치의 상기 뷰 필드를 벗어난 상기 물체 각각에 대해,
    상기 각 물체가 상기 클라이언트 장치의 상기 뷰 필드로부터 임계 거리 내에 있는지 여부를 결정하고;
    상기 뷰 필드 내의 상기 물체보다 상기 뷰 필드로부터 상기 임계 거리 내에 있는 물체에 더 적은 양의 상기 대역폭을 할당하도록 더 구성되는 클라이언트 장치.
  8. 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 방법으로서, 상기 방법은
    상기 3D 콘텐츠에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하는 단계;
    상기 3D 콘텐츠에서 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하는 단계;
    상기 클라이언트 장치로 상기 3D 콘텐츠를 스트리밍하는 데 사용할 수 있는 대역폭의 양을 식별하는 단계;
    상기 3D 포인트 클라우드 데이터를 스트리밍할 상기 대역폭을 상기 물체의 하나 이상에 할당하는 단계를 포함하고,
    상기 대역폭을 할당하는 단계는 상기 하나 이상의 물체 각각에 대해
    상기 각 물체의 위치를 기반으로 하여 상기 각 물체가 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는지 여부를 결정하는 단계;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하지 않는 물체보다 상기 클라이언트 장치의 상기 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 대역폭을 할당하는 단계; 및
    상기 할당된 대역폭에 따라 상기 클라이언트 장치에 상기 3D 콘텐츠를 스트리밍하는 단계를 포함하는 방법.
  9. 제8 항에 있어서, 상기 방법은
    상기 각 물체의 모든 정점들이 아니라 적어도 하나가 상기 뷰 필드 범위 내에 존재하는 경우, 상기 각 물체가 상기 뷰 필드 내에 부분적으로 존재한다고 결정하는 단계; 및
    상기 각 물체의 모든 정점들이 상기 뷰 필드 범위 내에 존재하지 않는 경우, 상기 각 물체가 상기 뷰 필드를 벗어난 것으로 결정하는 단계를 더 포함하는 방법.
  10. 제8 항에 있어서, 상기 뷰 필드를 표시하는 상기 정보는 투영 행렬 또는 모델 뷰 행렬 중 적어도 하나인 방법.
  11. 제8 항에 있어서, 상기 3D 포인트 클라우드 데이터는 복수의 물체를 포함하고, 상기 각 물체는 근 노드부터 최대 레벨의 노드까지 노드의 하나 이상의 계층 레벨을 포함하고, 물체의 노드의 상기 계층 레벨은 상기 물체 자체를 근 노드로 설정하고, 각 계층 레벨에 대해 각 레벨 노드를 상기 근 노드부터 복수의 하위 레벨 노드로 분할함으로써 생성되는 방법.
  12. 제11 항에 있어서, 상기 방법은
    상기 3D 포인트 클라우드 데이터를 스트리밍할 상기 대역폭을 상기 근 노드부터 상위 레벨의 노드에 할당하는 단계를 더 포함하고,
    상기 대역폭을 할당하는 단계는 상기 근 노드의 레벨부터 시작하는 주어진 레벨의 노드 각각에 대해,
    상가 각 노드의 위치를 기반으로 하여 상기 각 노드가 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는지 여부를 결정하는 단계;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하지 않는 노드보다 상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는 노드에 더 많은 양의 대역폭을 할당하는 단계; 및
    상기 클라이언트 장치의 상기 뷰 필드 밖에 존재하는 상기 노드 각각에 대해,
    상기 각 노드가 상기 클라이언트 장치의 상기 뷰 필드로부터 상기 임계 거리 내에 존재하는지 여부를 결정하는 단계;
    상기 클라이언트 장치의 상기 뷰 필드 내에 존재하는 노드보다 상기 클라이언트 장치의 상기 뷰 필드로부터 상기 임계 거리 내에 존재하는 노드에 더 적은 양의 대역폭을 할당하는 단계; 및
    할당되지 않은 대역폭이 존재하는 경우, 상기 최대 레벨까지 한 레벨씩 상기 주어진 레벨을 증가시키는 단계를 포함하는 방법.
  13. 제12 항에 있어서, 상기 방법은
    상기 각 노드의 정점들 중 적어도 하나가 상기 뷰 필드 범위 내에 있는 경우, 상기 각 노드가 상기 뷰 필드 내에 있는 것으로 결정되는 결정 단계; 및
    상기 노드의 모든 정점들이 상기 뷰 필드 범위 내에 없는 경우, 상기 각 노드는 상기 뷰 필드 밖에 있는 것으로 결정되는 결정 단계를 더 포함하는 방법.
  14. 제12 항에 있어서, 상기 방법은
    상기 클라이언트 장치의 상기 뷰 필드 밖에 있는 상기 물체 각각에 대해,
    상기 각 물체가 상기 클라이언트 장치의 상기 뷰 필드로부터 임계 거리 내에 존재하는지 여부를 결정하는 단계; 및
    상기 뷰 필드 내에 있는 상기 물체보다 상기 뷰포인트로부터 상기 임계 거리 내에 있는 물체에 더 적은 양의 상기 대역폭을 할당하는 단계를 더 포함하는 방법.
  15. 스트리밍할 3차원(three dimensional, 3D) 콘텐츠를 식별하기 위한 프로그램 코드를 포함하는 비일시적 컴퓨터 판독 가능한 매체로서, 상기 프로그램 코드는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금
    상기 3D 콘텐츠에 존재하는 복수의 물체에 대한 3D 포인트 클라우드 데이터를 저장하고;
    통신 인터페이스를 통해 상기 3D 콘텐츠에서 클라이언트 장치의 뷰 필드를 표시하는 정보를 클라이언트 장치로부터 수신하고;
    상기 클라이언트 장치로 상기 3D 콘텐츠를 스트리밍하는 데 사용할 수 있는 대역폭의 양을 식별하고;
    상기 3D 포인트 클라우드 데이터를 스트리밍할 상기 대역폭을 상기 물체의 하나 이상에 할당하도록 하고,
    상기 대역폭을 할당하기 위한 상기 프로그램 코드는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 상기 하나 이상의 물체 각각에 대해
    상기 각 물체의 위치를 기반으로 하여 상기 각 물체가 상기 클라이언트 장치의 상기 뷰 필드 내에 있는지 여부를 결정하고;
    상기 클라이언트 장치의 상기 뷰 필드 내에 없는 물체보다 상기 클라이언트 장치의 상기 뷰 필드 내에 적어도 부분적으로 존재하는 물체에 더 많은 양의 상기 대역폭을 할당하고;
    상기 할당된 대역폭에 따라 상기 클라이언트 장치에 상기 3D 콘텐츠를 스트리밍하도록 하는 프로그램 코드를 포함하는 비일시적 컴퓨터 판독 가능한 매체.
KR1020207009218A 2017-08-30 2018-08-30 포인트-클라우드 스트리밍을 위한 방법 및 장치(method and apparatus for point-cloud streaming) KR102602380B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762552094P 2017-08-30 2017-08-30
US62/552,094 2017-08-30
US16/113,855 2018-08-27
US16/113,855 US11290758B2 (en) 2017-08-30 2018-08-27 Method and apparatus of point-cloud streaming
PCT/KR2018/010037 WO2019045473A1 (en) 2017-08-30 2018-08-30 METHOD AND APPARATUS FOR CONTINUOUS DIFFUSION OF POINT CLOUD

Publications (2)

Publication Number Publication Date
KR20200037442A true KR20200037442A (ko) 2020-04-08
KR102602380B1 KR102602380B1 (ko) 2023-11-16

Family

ID=65438038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009218A KR102602380B1 (ko) 2017-08-30 2018-08-30 포인트-클라우드 스트리밍을 위한 방법 및 장치(method and apparatus for point-cloud streaming)

Country Status (5)

Country Link
US (1) US11290758B2 (ko)
EP (1) EP3669547B1 (ko)
KR (1) KR102602380B1 (ko)
CN (1) CN111052750B (ko)
WO (1) WO2019045473A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023068754A1 (ko) * 2021-10-18 2023-04-27 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163863B (zh) * 2018-11-06 2022-11-04 腾讯科技(深圳)有限公司 三维物体分割方法、设备和介质
US10694239B1 (en) 2018-12-12 2020-06-23 Sling Media Pvt Ltd Systems, methods, and devices for optimizing streaming bitrate based on multiclient display profiles
WO2020189982A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
WO2020189943A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
EP3926962A4 (en) * 2019-03-16 2022-04-20 LG Electronics Inc. DEVICE AND METHOD FOR PROCESSING POINT CLOUD DATA
US11825135B2 (en) * 2019-03-20 2023-11-21 Sony Group Corporation Information processing apparatus, information processing method, reproduction processing apparatus, and reproduction processing method
WO2020190075A1 (ko) * 2019-03-20 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020246689A1 (ko) * 2019-06-05 2020-12-10 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021025546A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11363330B2 (en) 2019-10-01 2022-06-14 Samsung Electronics Co., Ltd. Method, apparatus and computer-readable recording medium for transmitting or receiving VPCC data
GB2590422B (en) * 2019-12-17 2024-03-06 Sony Interactive Entertainment Inc Content generation system and method
JP2021100222A (ja) 2019-12-23 2021-07-01 ソニーグループ株式会社 端末装置、アプリケーションサーバ、受信方法及び送信方法
US11240570B1 (en) * 2020-10-08 2022-02-01 International Business Machines Corporation Object-based video loading
US11800184B2 (en) 2021-01-06 2023-10-24 Tencent America LLC Method and apparatus for media scene description
CN116724556A (zh) * 2021-01-06 2023-09-08 Lg电子株式会社 点云数据发送装置和方法、点云数据接收装置和方法
JP2022137826A (ja) 2021-03-09 2022-09-22 株式会社Mawari 3dオブジェクトのストリーミング方法、装置、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118456A (en) * 1998-04-02 2000-09-12 Adaptive Media Technologies Method and apparatus capable of prioritizing and streaming objects within a 3-D virtual environment
CN106874409A (zh) * 2017-01-19 2017-06-20 苏州中科图新网络科技有限公司 点云数据的存储方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773343B2 (en) 2010-12-24 2017-09-26 Institute Of Automation, Chinese Academy Of Sciences Method for real-time and realistic rendering of complex scenes on internet
US9201495B2 (en) 2012-04-24 2015-12-01 Mobitv, Inc. Control of perspective in multi-dimensional media
US9846960B2 (en) 2012-05-31 2017-12-19 Microsoft Technology Licensing, Llc Automated camera array calibration
JP6156770B2 (ja) * 2013-08-08 2017-07-05 国立研究開発法人産業技術総合研究所 キシロースの発酵能が強化された酵母とその利用
US9396586B2 (en) 2014-03-14 2016-07-19 Matterport, Inc. Processing and/or transmitting 3D data
US20160198140A1 (en) 2015-01-06 2016-07-07 3DOO, Inc. System and method for preemptive and adaptive 360 degree immersive video streaming
US10049495B2 (en) * 2015-01-14 2018-08-14 Hashplay Inc. System and method for providing virtual reality content
GB2536025B (en) 2015-03-05 2021-03-03 Nokia Technologies Oy Video streaming method
CN107409203A (zh) 2015-05-27 2017-11-28 谷歌公司 减小用户头戴式耳机的球形视频带宽的方法和设备
US10484621B2 (en) 2016-02-29 2019-11-19 Gopro, Inc. Systems and methods for compressing video content
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US10223810B2 (en) 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US11297346B2 (en) 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
CN106485772B (zh) 2016-09-30 2019-10-15 北京百度网讯科技有限公司 全景切换方法及系统
US10712555B2 (en) * 2016-11-04 2020-07-14 Koninklijke Kpn N.V. Streaming virtual reality video
US10595069B2 (en) * 2016-12-05 2020-03-17 Adobe Inc. Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
US10231014B2 (en) * 2017-03-14 2019-03-12 Futurewei Technologies, Inc. Virtual reality (VR) video distribution using edge resources
US10198829B2 (en) * 2017-04-25 2019-02-05 Symbol Technologies, Llc Systems and methods for extrinsic calibration of a plurality of sensors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118456A (en) * 1998-04-02 2000-09-12 Adaptive Media Technologies Method and apparatus capable of prioritizing and streaming objects within a 3-D virtual environment
CN106874409A (zh) * 2017-01-19 2017-06-20 苏州中科图新网络科技有限公司 点云数据的存储方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023068754A1 (ko) * 2021-10-18 2023-04-27 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Also Published As

Publication number Publication date
EP3669547B1 (en) 2022-09-28
US20190069000A1 (en) 2019-02-28
EP3669547A1 (en) 2020-06-24
WO2019045473A1 (en) 2019-03-07
US11290758B2 (en) 2022-03-29
CN111052750A (zh) 2020-04-21
EP3669547A4 (en) 2020-10-21
KR102602380B1 (ko) 2023-11-16
CN111052750B (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
KR102602380B1 (ko) 포인트-클라우드 스트리밍을 위한 방법 및 장치(method and apparatus for point-cloud streaming)
EP3695383B1 (en) Method and apparatus for rendering three-dimensional content
AU2017232207B2 (en) Bandwidth efficient vr video streaming
CN108702454B (zh) 用于视频显示的方法、系统和计算设备
US20180165830A1 (en) Method and device for determining points of interest in an immersive content
CN107667534A (zh) 在有限的带宽连接中播放球形视频
KR102502794B1 (ko) 가상 현실 데이터를 맞춤화하기 위한 방법들 및 시스템들
US11595630B2 (en) Depth codec for real-time, high-quality light field reconstruction
GB2557416A (en) Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
CN110996097B (zh) Vr多媒体的体验质量确定方法及装置
US20230319328A1 (en) Reference of neural network model for adaptation of 2d video for streaming to heterogeneous client end-points
JP2020522801A (ja) バーチャル・リアリティ・メディア・コンテンツ内に含める目的での現実世界シーンのカスタマイズされるビューの仮想化プロジェクションを生成するための方法及びシステム
US11570227B2 (en) Set up and distribution of immersive media to heterogenous client end-points
US20230042078A1 (en) Encoding and decoding views on volumetric image data
EP3564905A1 (en) Conversion of a volumetric object in a 3d scene into a simpler representation model
EP4085397B1 (en) Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
US12003792B2 (en) Adaptation of 2D video for streaming to heterogenous client end-points
US20220182597A1 (en) Adaptation of 2d video for streaming to heterogenous client end-points
Tian et al. Quantization Parameter and Lagrange Multiplier Determination for Virtual Reality 360 Video Source Coding
KR20230153468A (ko) 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램
CN116916028A (zh) 使用虚拟分辨率调整的视频流缩放

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right