KR20230153468A - 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램 - Google Patents

3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램 Download PDF

Info

Publication number
KR20230153468A
KR20230153468A KR1020237034136A KR20237034136A KR20230153468A KR 20230153468 A KR20230153468 A KR 20230153468A KR 1020237034136 A KR1020237034136 A KR 1020237034136A KR 20237034136 A KR20237034136 A KR 20237034136A KR 20230153468 A KR20230153468 A KR 20230153468A
Authority
KR
South Korea
Prior art keywords
information
client
server
geometry
alpha
Prior art date
Application number
KR1020237034136A
Other languages
English (en)
Inventor
솔로르자노 루이스 오스카 라미레즈
알렉산드르 미하일로비치 보리소프
Original Assignee
마와리 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마와리 코포레이션 filed Critical 마와리 코포레이션
Publication of KR20230153468A publication Critical patent/KR20230153468A/ko

Links

Classifications

    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Abstract

서버로부터 클라이언트로, 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 송신하는 본 개시에 의한 방법은, 상기 서버상의 상기 3D 오브젝트로부터 컬러 정보, 알파 정보 및 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보를 단순화하는 것과, 상기 서버로부터 상기 클라이언트로, 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는 것을 포함한다.

Description

3D 오브젝트의 스트리밍 방법, 장치, 및 프로그램
본 개시는, 3D(3차원) 오브젝트의 스트리밍 방법, 장치 및 프로그램에 관한 것이다.
종래부터 3D 화상을 서버로부터 클라이언트로 송신하여 표시한다는 기술은 있지만, 이 경우, 예를 들면, 서버 측에서, 3D 화상을 2D 화상으로 변환한다는 수법을 사용하고 있었다(특허문헌).
미국특허공개공보 제2010/0134494호
해결하려고 하는 종래의 문제점은, 3D 화상의 전송에 있어서, 화질을 유지하면서, 데이터 전송에 사용하는 대역폭을 감소시키는 것이다.
본 개시의 일 양태인 방법은, 서버로부터 클라이언트로, 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 송신하는 방법으로서, 상기 서버상의 상기 3D 오브젝트로부터 컬러 정보, 알파 정보 및 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보를 단순화하는 것과, 상기 서버로부터 상기 클라이언트로, 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는 것을 포함한다.
본 개시의 일 양태인 방법은, 서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 상기 클라이언트상에서 재현하는 방법으로서, 상기 서버로부터 상기 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하는 것과, 상기 스트림을 복호하고, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하는 것과, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는 것을 포함한다.
본 개시의 일 양태인 서버는, 1개 이상의 프로세서 및 메모리를 포함하는 서버로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 상기 서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트로부터 알파 정보 및 지오메트리 정보를 추출하고, 상기 지오메트리 정보를 단순화하며, 상기 서버로부터 클라이언트로, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신한다.
본 개시의 일 양태인 클라이언트는, 1개 이상의 프로세서 및 메모리를 포함하는 클라이언트로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 서버로부터 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하고, 상기 스트림을 복호하여, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하고, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성한다.
본 개시의 일 양태에 의한 프로그램은, 상술한 어느 하나의 방법을 프로세서에 의하여 실행하기 위한 명령을 포함한다.
또한, 이들의 포괄적 또는 구체적인 양태는, 시스템, 장치, 방법, 집적 회로, 컴퓨터 프로그램, 또는, 기록 매체로 실현되어도 되고, 시스템, 장치, 방법, 집적 회로, 컴퓨터 프로그램 및 기록 매체의 임의의 조합으로 실현되어도 된다.
클라이언트상에서 3D 화상을 표시하기 위하여 서버로부터 클라이언트로 비디오 데이터 또는 픽셀을 송신하는 대신에 본 개시에 의한 컨테이너 스트림을 송신함으로써, 서버로부터 클라이언트로 송신되는 시간당 데이터양이 줄어들고, 클라이언트상에서의 3D 화상의 표시 품질 및 응답성이 향상된다.
본 개시의 일 실시예에 있어서의 추가적인 이점 및 효과는, 명세서 및 도면으로부터 명확해진다. 이러한 이점 및/또는 효과는, 몇 개의 실시형태 및 명세서 및 도면에 기재된 특징에 의하여 각각 제공되지만, 하나 또는 그 이상의 동일한 특징을 얻기 위하여 반드시 전부가 제공될 필요는 없다.
본 명세서에 있어서, 설명의 편의상 서버와 클라이언트 간에서의 3D 화상(동영상 및/또는 정지화면을 포함한다) 전송을 예로 설명했지만, 본 개시의 적용은, 클라이언트 서버 시스템에 한정되지 않고, 1대의 컴퓨터로부터 다른 컴퓨터로의 전송에 적용 가능하며, 다른 컴퓨터는, 단수여도 되고 복수여도 된다.
도 1은, 본 개시에 의한 서버 및 클라이언트의 기능 블록도이다.
도 2는, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 서버 측에서의 처리를 설명한 플로 차트이다.
도 3은, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 클라이언트 측에서 데이터의 처리를 설명한 플로 차트이다.
도 4는, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 클라이언트 측에서 커맨드의 처리를 설명한 플로 차트이다.
도 5는, 본 개시를 적용한 클라이언트 서버 시스템에서, 3D 씬 또는 3D 오브젝트를 클라이언트 측에서 표시하기 위한 데이터의 흐름을 기재한 도이다.
도 6은, 본 개시에 의한 지오메트리 정보의 부호화 및 복호의 프로세스를 나타내는 도이다.
도 7은, 본 개시에 의한 컬러 정보/텍스처 정보의 부호화 및 복호의 프로세스를 나타내는 도이다.
도 8은, 본 개시에 의한 지오메트리, 컬러 패킷, 메타데이터, 및 커맨드의 사이의 데이터 동기를 나타내는 도이다.
도 9는, 본 개시에 의한 데칼 방법을 나타내는 도이다.
도 10은, 본 개시에 의한 클라이언트의 하드웨어 구성예를 나타내는 개략도이다.
도 11은, 본 개시에 의한 서버의 하드웨어 구성예를 나타내는 개략도이다.
도 12는, 본 개시에 관한 정보 처리 시스템의 구성의 일례를 나타내는 개략도이다.
도 13a는, 본 개시에 의한 서버 측의 처리의 플로를 나타내는 개략도이다.
도 13b는, 본 개시에 의한 서버 측의 처리의 플로를 나타내는 개략도이다.
도 14는, 본 개시에 의한 클라이언트 측의 처리의 플로를 나타내는 개략도이다.
도 15는, 본 개시에 사용되는 카메라의 배치를 나타내는 도이다.
도 16은, 본 개시에서 사용되는 ARGB 시스템에 있어서의 픽셀 구성을 나타내는 도이다.
도 17은, 클라이언트가 이동한 경우의 위치 정보의 변화에 대하여 나타낸 도이다.
도 18은, 화상 뷰에 있어서의 움직임 예측과 오차 검출의 설명도이다.
<1. 3D 스트리밍·시스템·아키텍처>
도 1은, 본 개시에 의한 서버 및 클라이언트의 기능 블록도이다. 3D 스트리밍 서버(100)는, 3차원(3D) 스트리밍 서버 내의 기능 구성을 포함하고, 3D 스트리밍 클라이언트(150)는, 3D 스트리밍 클라이언트 내의 기능 구성을 포함한다. 네트워크(120)는, 서버(100)와 클라이언트(150)의 사이에 있는 유선 또는 무선의 네트워크를 나타낸다.
본 개시의 대상이 되는 1개의 시스템은, 서버 측에서 3D 화상을 생성하고, 클라이언트 측에서 서버로부터 수신한 3D 화상의 특징량에 근거하여 3D 화상을 재구성하여, 표시한다. 클라이언트 기기로서는, 스마트폰, 휴대전화, 태블릿, 노트북 컴퓨터, 스마트 글래스, 헤드 마운트 디스플레이, 헤드셋 등의 표시 및 통신 기능을 갖는 모든 기기가 대상이 된다. 여기에서, 특징량은, 3D 화상의 컬러(색) 정보, 알파 정보 또는 지오메트리 정보를 포함한다.
<1.2 3D 스트리밍 서버 측의 처리>
도 1의 상반분은, 3D 스트리밍 서버(100)에서의 처리를 설명하는 기능 블록도이다. 네트워크 패킷 수신 유닛(108)은, 유선 또는 무선의 네트워크(120)를 통하여, 클라이언트(150)로부터 명령 및/또는 데이터를 포함하는 패킷을 수신한다. 네트워크 패킷 수신 유닛(108)은, 클라이언트로부터 수신한 명령 및/또는 데이터를 패킷으로부터 추출하고, 클라이언트로부터의 명령 및/또는 데이터를 처리하는 수신 데이터 처리 유닛(101)에 추출한 데이터를 송신한다. 추출된 클라이언트로부터의 명령 및/또는 데이터를 수신한 수신 데이터 처리 유닛(101)은, 수신한 데이터로부터 필요한 명령 및/또는 데이터를 다시 추출하고, 그들을 3D 씬 데이터 생성 유닛(102)에 보낸다. 다음으로, 3D 씬 데이터 생성 유닛(102)은, 클라이언트(150)로부터 보내져 온 요구에 따라, 서버가 갖는 그 클라이언트로부터의 요구에 대응하는 3D 씬(또는 3D 오브젝트)의 데이터를 가공·수정 등 한다. 다음으로, 3D 씬 데이터 생성 유닛(102)으로부터 명령 및/또는 데이터를 수취한 추출 유닛(103)은, 클라이언트로부터의 명령에 따라 갱신한 3D 씬 데이터로부터 필요한 데이터를 추출하고, 그들을 3D 스트림 변환/부호화 유닛(104)으로 보낸다. 3D 스트림 변환/부호화 유닛(104)은, 추출 유닛(103)으로부터 수취한 데이터를 3D 스트림으로 변환하고, 부호화함으로써 3D 스트림(105)을 생성한다. 3D 스트림(105)은, 다음으로 네트워크 패킷 구성 유닛(106)에 보내지고, 네트워크 패킷 구성 유닛(106)에 의하여 네트워크 패킷이 생성된다. 네트워크 패킷은, 네트워크 패킷 전송 유닛(107)으로 송신된다. 네트워크 패킷 전송 유닛(107)은, 수신한 네트워크 패킷을 유선 또는 무선 네트워크(120)를 통하여, 1개 이상의 클라이언트(150)로 송신한다.
<1.3 3D 스트리밍 클라이언트 측의 처리>
도 1의 하반분은, 3D 스트리밍 클라이언트(150)에서의 처리를 설명하는 기능 블록도이다. 유선 또는 무선 네트워크(120)를 통하여 서버(100)로부터 패킷을 수신한 네트워크 패킷 수신 유닛(152)은, 패킷으로부터 부호화된 3D 스트림을 추출하고, 그것을 3D 스트림 복호 유닛(154)으로 보낸다. 부호화 3D 스트림을 수신한 3D 스트림 복호 유닛(154)은, 3D 스트림을 복호하고, 복호된 3D 스트림을 3D 씬 재구성 유닛(155)으로 보낸다. 복호된 3D 스트림을 수신한 3D 씬 재구성 유닛(155)은, 서버(100)로부터 수신하여 복호된 3D 스트림으로부터 3D 씬(또는 3D 오브젝트)을 재구성하고, 재구성된 3D 씬을 표시 유닛(156)으로 보낸다. 표시 유닛(156)은, 재구성된 3D 씬을 표시하고, 유저에게 제시한다.
한편, 3D 스트리밍 클라이언트(150)로부터의 3D 표시(갱신) 요구는, 앱 데이터 출력 유닛(153)으로부터 네트워크 패킷 전송 유닛(151)으로 보내진다. 앱 데이터 출력 유닛(153)에서 생성되는 3D 표시(갱신) 요구 데이터로서는, 예를 들면, 유저 입력 또는 카메라/디바이스의 포지션 변경, 또는 표시의 갱신을 요구하는 등의 커맨드가 생각된다. 3D 표시 요구를 수신한 네트워크 패킷 전송 유닛(151)은, 부호화 및 패킷화 등의 필요한 처리를 행한 3D 표시(갱신) 요구를 유선 또는 무선 네트워크(120)를 통하여, 3D 스트리밍 서버(100)에 보낸다.
상술한 서버(100)에 포함되는 네트워크 패킷 구성 유닛(106), 및 네트워크 패킷 전송 유닛(107), 상술한 클라이언트(150)에 포함되는 네트워크 패킷 수신 유닛(152), 및 네트워크 패킷 전송 유닛(151)은, 예를 들면, 기존의 오픈 소스 소프트웨어의 대응하는 송수신 모듈에 근거하여 필요한 개량을 실시해도 되고, 처음부터 전용으로 작성해도 된다.
도 2는, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 서버 측에서의 처리를 설명한 플로 차트이다. 개시(901)에서 처리를 개시한다. 먼저, 도 1에서 설명한 네트워크 패킷 수신 유닛(108)이, 클라이언트로부터 3D 씬의 개서 커맨드 등을 포함하는 패킷을 수신한다(902). 다음으로, 도 1에서 설명한 수신 데이터 처리 유닛(101)이, 수신한 커맨드 등을 처리하여, 그 결과를 출력한다(903). 다음으로, 도 1에서 설명한 3D 씬 데이터 생성 유닛(102)이, 수신한 커맨드 등에 따른 3D 씬 데이터를 생성한다(904). 다음으로, 도 1의 추출 유닛(103)이, 3D 씬의 특징량을 추출한다(905). 여기에서, 특징량이란, 후술하는 컨테이너 스트림에 포함되는, 지오메트리, 컬러, 메타데이터, 사운드, 커맨드 등의 데이터를 가리킨다. 다음으로, 도 1의 3D 스트림 변환/부호화 유닛(104)이, 3D 특징량을 포함하는 데이터를 3D 스트림으로 변환하고, 부호화한다(906). 다음으로, 도 1의 네트워크 패킷 구성 유닛(106)이, 3D 스트림으로부터 네트워크 패킷을 구성한다(907). 다음으로, 도 1의 네트워크 패킷 전송 유닛(107)이, 네트워크 패킷을 송신한다(908). 이것으로 서버 측의 일련의 데이터 송신 처리는, 종료한다(909).
도 2에서는, 일례로서, 스텝 902에서 903까지의 처리와 스텝 904에서 908까지의 처리가 순차적으로 실행되도록 기재되어 있지만, 스텝 902에서 903까지의 처리와 스텝 904에서 908까지의 처리가 병행하여 실행되어도 되고, 스텝 904의 처리부터 개시되어도 된다. 여기에서, 클라이언트로부터 수신한 위치 정보를 기술하고, 서버상에서 메시의 지오메트리 정보를 갱신하기 위하여 사용할 수 있다. 그리고, 이 단계에서 다음의 프레임에 대한 예측 및 움직임 모델의 갱신을 실장해도 된다. 움직임 정보/위치 정보를 클라이언트로부터 수신해도 된다. 포즈 정보를 사용하여 포즈의 이력을 축적하고, 다음의 프레임에서의 꼭짓점 데이터의 움직임을 예측할 수 있다. 이 갱신된 포즈는, 다음으로 클라이언트로부터 제공되는 데이터 세트와 비교되고, 예측을 검증하며, 필요에 따라, 추정된 움직임 모델을 수정해도 된다.
도 3은, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 클라이언트 측에서의 데이터의 처리를 설명한 플로 차트이다. 개시(1001)에서 처리를 개시한다. 먼저, 도 1에서 설명한 네트워크 패킷 수신 유닛(152)이, 서버(100)로부터 보내져 온 패킷을 수신한다(1002). 다음으로, 도 1에서 설명한 3D 스트림 복호 유닛(154)이 수신한 패킷을 복호하고(1003), 3D 씬의 특징량을 추출한다. 다음으로, 도 1에서 설명한 3D 씬 재구성 유닛(155)이, 3D 씬의 특징량 등을 사용하여, 클라이언트상에서 3D 씬을 재구성하고(1004), 3D 씬 데이터를 생성한다(1005). 다음으로, 도 1에서 설명한 표시 유닛(156)이, 재구성된 3D 씬을 표시하여, 유저에게 제시한다(1006). 이것으로 클라이언트 측에서의 데이터 처리는, 종료된다(1007).
도 3에서는, 일례로서, 스텝 1002에서 1004까지의 처리와 스텝 1005에서 1006까지의 처리가 순차적으로 실행되도록 기재되어 있지만, 스텝 1002에서 1004까지의 처리와 스텝 1005에서 1006까지의 처리가 병행하여 실행되어도 되고, 스텝 1005의 처리부터 개시되어도 된다.
도 4는, 도 1에서 설명한 서버와 클라이언트 간의 데이터의 흐름 중 클라이언트 측에서 커맨드의 처리를 설명한 플로 차트이다. 개시(1101)에서 처리를 개시한다. 도 1에서 설명한 앱 데이터 출력 유닛(153)이, 화상 처리 앱 등으로부터의 3D 씬의 개서 커맨드 등을 출력한다(1102). 도 1에서 설명한 네트워크 패킷 전송 유닛(151)은, 앱 데이터 출력 유닛(153)으로부터 커맨드 등을 수취하여, 패킷으로 변환하고, 변환한 패킷을 유선 또는 무선 네트워크(120)로 전송한다(1103). 이것으로 클라이언트 측에서의 데이터 처리는, 종료된다(1104).
도 4에서는, 일례로서, 스텝 1102의 처리와 스텝 1103의 처리가 순차적으로 실행되도록 기재되어 있지만, 스텝 1102의 처리와 스텝 1103의 처리가 병행하여 실행되어도 된다.
<2. 본 개시의 3D 스트림 포맷>
본 개시에 의한 3D 스트림의 포맷의 특징으로서는, 주로 이하의 것이 있다. 클라이언트 측에서 표시되는 3D 화상의 품질을 떨어뜨리지 않고, 한정된 네트워크의 대역폭을 사용하여, 이들을 실현하고 있는 곳에 본 개시의 의의가 있다.
(1) 서버 측에서 3D 스트림을 생성한다.
서버 측에서 3D 스트림을 생성할 때에, UE4 또는 Unity 등의 이용 가능한 엔진을 사용한다. 여기에서, UE란, Epic Games사에 의하여 개발되고 있는 게임 엔진, 언리얼·엔진(Unreal Engine)을 말하며, 2020년 5월에는 UE5가 발표되었다.
(2) 네트워크를 통한 효율적인 전송이 서포트되고 있다.
따라서, 종래의 방법에 비하여, 서버로부터 클라이언트로 전송되는 데이터양이 적다. 이것을 실현하기 위하여, 본 개시에서는, 컨테이너 스트림을 사용한다.
(3) 다양한 디바이스에서 동작 가능하다.
대상으로 하는 장치는, 예를 들면, Unity(Android, Windows, iOS), WebGL, UE4 또는 5(Android, iOS, Windows)를 이용할 수 있는 장치이다.
(4) 현대의 AR(확장 현실) 디바이스에 대하여 비교적 경량이다.
즉, 종래의 방법과 비교하여, 클라이언트 측에서의 처리의 부하가 작다. 이것은, 본 개시의 컨테이너 스트림의 사용에 기인한다.
(5) 인터랙션(즉, 쌍방향 통신)을 서포트한다.
즉, 스트리밍이 인터랙티브이다. 이것은, 커맨드가 클라이언트와 서버 상호 간에서 송수신 가능한 것에 기인한다.
상술한 특징을 실현하기 위하여, 본 개시는 서버와 클라이언트 간에서 전송하는 3D 스트림으로서 독자적인 컨테이너 스트림을 개발했다. 이 독자적인 컨테이너 스트림은, 이하와 같은, 지오메트리, 컬러, 메타데이터, 사운드, 및 커맨드 중 몇 개를 포함한다. 스트림은, 서버 및/또는 클라이언트의 위치 정보를 더 포함해도 된다.
(1) 지오메트리: 서버상에서의 3D 씬의 스트리밍된 오브젝트의 외형에 관한 단순화된 3D 데이터이다. 지오메트리의 데이터는, 예를 들면, 오브젝트의 형상을 나타내기 위하여 사용되는 폴리곤의 꼭짓점의 어레이이다.
(2) 컬러: 특정 위치에 있는 카메라로 촬영한 오브젝트의 색 데이터이다.
(3) 메타데이터: 3D 씬, 환경, 개별의 오브젝트, 스트림 중의 데이터 등을 설명하는 데이터이다.
(4) 사운드: 서버 측 또는 클라이언트 측의 3D 씬에서 발생하는 사운드(음성) 데이터이다. 사운드는, 서버와 클라이언트 상호 간에서 쌍방향 통신 가능하다.
(5) 커맨드: 커맨드는, 서버 측 또는 클라이언트 측의 3D 씬, 시스템 이벤트, 스테이터스 메시지, 카메라 및 유저 인풋, 및 클라이언트의 애플리케이션 이벤트 등을 포함하는 명령 등이다. 커맨드는, 서버와 클라이언트 상호 간에서 쌍방향 통신 가능하다.
종래의 시스템에서는, 본 개시에 의한 상술한 컨테이너 스트림 대신에, 비디오 데이터 자체 또는 각 프레임의 픽셀 데이터를 보내고 있었다. 여기에서 컨테이너 스트림이란, 서버와 클라이언트의 사이에서 전송되는 데이터의 한 덩어리를 말하고, 데이터 스트림이라고도 말한다. 컨테이너 스트림은, 패킷 스트림으로서 네트워크를 경유하여 전송된다.
종래부터 사용되고 있는 이들 비디오 데이터 자체 또는 각 프레임의 픽셀 데이터는, 비록 압축되어 있었다고 해도, 시간당 전송되는 용량이 매우 커서, 서버와 클라이언트 간의 네트워크의 대역폭이 크지 않으면 전송이 늦어져, 레이턴시가 발생하고, 클라이언트 측에서의 3D 화상의 재생이 스무스하게 행해지지 않는다는 문제점이 있었다. 한편, 본 개시의 시스템에서, 서버와 클라이언트 간에서의 전송에서 사용되는 데이터 컨테이너는, 데이터 사이즈가 종래의 시스템보다 충분히 작기 때문에, 서버와 클라이언트 간의 네트워크의 대역폭을 그다지 신경쓰지 않고, 단위시간당 프레임 수를 최저한 확보할 수 있으므로, 클라이언트 측에서의 매끄러운 3D 화상의 재생이 가능해진다.
도 5는, 본 개시를 적용한 클라이언트 서버 시스템에서, 3D 씬 또는 3D 오브젝트를 클라이언트 측에서 표시하기 위한 데이터의 흐름을 기재한 도이다. 클라이언트 측은, 스마트폰 등의 단말 장치(1221)가 기재되어 있고, 단말 장치(1221)와 스마트 글래스(1210)가 무선 LAN 또는 블루투스(등록 상표) 등으로 무선 통신 또는 유선 통신(1222)을 경유하여 접속되어 있다. 스마트 글래스(1210)는, 유저가 앞 측에서 본 도를 나타내고 있다. 클라이언트의 스마트 글래스의 좌안에는 사람(1211-1)과 커서(1212-1)가 투영되어 있고, 스마트 글래스의 우안에는 사람(1211-2)과 커서(1212-2)가 투영되어 있다. 스마트 글래스의 유저에게는, 우안 및 좌안의 상(像)이 겹쳐 입체적인 사람(1214)이 조금 떨어진 곳에 보이고 있다. 클라이언트 측의 스마트 글래스(1210)의 유저는, 커서(1212) 또는 다른 입력 수단을 사용하여, 클라이언트 측의 스마트 글래스(1210) 중에 표시된 사람(1214)에 대하여 이동, 회전, 축소·확대, 색(컬러)·텍스처의 변경, 또는 사운드 등의 조작을 행할 수 있다. 이와 같은 클라이언트상의 오브젝트(또는 씬)에 대한 조작이 행해지면, 클라이언트로부터 서버에 네트워크(120) 경유로 커맨드(또는 사운드)(1213) 등이 송신된다.
클라이언트로부터 네트워크(120) 경유로 커맨드 등을 수신한 서버는, 서버 내의 앱 내의 가상적인 화면(1201)상의 대응하는 사람(1202)의 화상에 대하여, 수신한 커맨드 등에 따른 조작을 행한다. 여기에서, 서버는, 통상 표시 장치를 갖고 있을 필요가 없고, 가상적인 공간 내의 가상적인 화상을 취급한다. 다음으로, 서버는, 이 커맨드 등의 조작을 행한 후의 3D 씬 데이터(또는 3D 오브젝트 데이터)를 생성하고, 그것으로부터 추출한 특징량을 컨테이너 스트림(1203)으로서 네트워크(120) 경유로 클라이언트로 송신한다. 서버로부터 보내진 컨테이너 스트림(1203)을 수신한 클라이언트는, 컨테이너 스트림(1203)에 포함되는 지오메트리, 컬러·텍스처, 메타데이터, 사운드, 및 커맨드에 따라, 클라이언트의 가상 화면 중의 대응하는 사람(1214)의 데이터를 개서하여, 재표시 등 한다. 이 예에 있어서, 오브젝트는 사람이지만, 오브젝트는, 빌딩, 자동차, 동물, 또는 정물 등의 사람 이외여도 되고, 씬은, 1개 이상의 오브젝트를 포함한다.
이하에서 도 6~8을 참조하여, 상술한 컨테이너 스트림에 포함되는 「지오메트리」 데이터와 「컬러」 데이터가 어떻게 처리되는지를 설명한다.
<3. 지오메트리의 부호화 및 복호 프로세스>
도 6은, 본 개시에 의한, 지오메트리 데이터의 부호화 및 복호의 프로세스를 나타내는 도이다. 도 6에 있어서, 201~205의 처리는, 서버에 의하여 행해지고, 207~211의 처리는, 클라이언트에 의하여 행해진다.
도 6 및 후술하는 도 7 및 8에 기재된 각 처리는, CPU 및/또는 GPU 등의 프로세서 등에 의하여 관련된 프로그램을 사용하여 실행된다. 본 개시의 대상이 되는 시스템은, CPU 또는 GPU 중 어느 일방만을 구비하고 있어도 되지만, 이하에서는, 설명의 간단화를 위하여, CPU와 GPU를 통합하여 CPU라고 기재한다.
<3.1 서버 측의 처리>
여기에서 오브젝트를 갖는 씬이 있다고 가정한다. 각 오브젝트는, 1개 이상의 뎁스 카메라로 촬영되고 있다. 여기에서, 뎁스 카메라란, 안깊이 정보를 취득하는 심도(뎁스) 센서를 내장한 카메라를 말한다. 뎁스 카메라를 사용하면, 통상의 카메라가 취득하는 2차원(2D)의 화상에, 안깊이 정보를 추가하여, 3D의 입체적인 정보를 취득할 수 있다. 여기에서는, 씬의 완전한 지오메트리 데이터를 취득하기 위하여, 예를 들면 6대의 뎁스 카메라가 사용된다. 촬영 시의 카메라의 구성에 대해서는, 후술한다.
서버 측에서 촬영한 화상으로부터 스트림화 3D 오브젝트를 생성하고, 카메라의 뎁스(심도) 정보를 출력한다(201). 다음으로, 카메라의 뎁스 정보를 처리하여 점군을 생성하고, 점의 어레이를 출력한다(202). 이 점군은, 오브젝트의 실제의 지오메트리를 나타내는 삼각형(삼각형의 꼭짓점의 어레이)으로 변환되고, 삼각형의 군이 서버에 의하여 생성된다(203). 여기에서는, 일례로서 지오메트리를 나타내는 도형으로서 삼각형을 사용했지만, 삼각형 이외의 다각형을 사용해도 된다.
그리고, 삼각형의 군의 각 꼭짓점의 어레이의 데이터를 사용하여 지오메트리 데이터를 스트림에 추가하고, 압축한다(204).
서버는, 압축된 지오메트리 데이터를 포함하는 컨테이너 스트림을, 네트워크(120)를 통하여 송신한다(205).
<3.2 클라이언트 측의 처리>
클라이언트는, 서버로부터 송신된 압축된 데이터, 즉 지오메트리 데이터를 포함하는 컨테이너 스트림을, 네트워크(120)를 통하여 서버로부터 수신한다(207). 클라이언트는, 수신된 압축된 데이터를 해동하고, 꼭짓점의 어레이를 추출한다(208).
클라이언트는, 해동된 데이터의 꼭짓점의 어레이를, 관리된 지오메트리 데이터 큐에 넣고, 네트워크 경유로 전송되고 있는 동안에 무너진 프레임 시퀀스의 순번을 올바르게 정렬시킨다(209). 클라이언트는, 올바르게 정렬된 프레임 시퀀스에 근거하여, 씬의 오브젝트를 재구성한다(210). 클라이언트는, 재구성된 클라이언트 측의 3D 오브젝트를 디스플레이에 표시한다(211).
지오메트리 데이터는, 관리된 지오메트리 데이터 큐에 저장되고, 스트림 내에서 수신한 다른 데이터와 동기된다(209). 이 동기에 대해서는, 도 8을 사용하여 후술한다.
본 개시가 적용된 클라이언트는, 수신한 꼭짓점의 어레이에 근거하여 메시를 생성한다. 바꾸어 말하면, 서버로부터 클라이언트에는, 지오메트리 데이터로서, 꼭짓점의 어레이만이 송신되므로, 통상, 꼭짓점의 어레이의 시간당 데이터양은 비디오 데이터 및 프레임 데이터와 비교하여 상당히 적다. 한편, 종래의 다른 옵션은, 대량의 삼각형을 소정 메시의 데이터에 적용하는 것이고, 이 방법은 클라이언트 측에서의 대량의 처리를 필요로 하는 것이며, 문제가 있었다.
본 개시가 적용되는 서버는, 씬(통상은 1개 이상의 오브젝트를 포함한다) 중 변경이 필요한 부분(예를 들면, 특정 오브젝트)의 데이터만을 클라이언트로 보내고, 씬 중 변경이 없는 부분의 데이터를 클라이언트로 보내지 않기 때문에, 이 점에서도 씬 변경에 따르는 서버로부터 클라이언트로의 전송 데이터의 양을 삭감하는 것이 가능해진다.
본 개시를 적용한 시스템 및 방법에서는, 폴리곤 메시의 꼭짓점의 어레이를 서버로부터 클라이언트로 송신하는 것을 전제로 하고 있다. 그리고, 이 폴리곤으로서 삼각형의 폴리곤을 전제로 하여 설명했지만, 폴리곤의 형상은, 삼각형에 한정되지 않고 사각형 또는 다른 형상이어도 된다.
<4. 컬러/텍스처의 부호화 및 복호 처리>
도 7은, 본 개시에 의한, 컬러 정보/텍스처 정보의 부호화 및 복호의 프로세스를 나타내는 도이다. 도 7에 있어서, 301~303의 처리는, 서버에 의하여 행해지고, 305~308의 처리는, 클라이언트에 의하여 행해진다.
<4.1 컬러의 서버 측의 처리>
오브젝트를 갖는 씬이 있다고 가정한다. 카메라로부터의 뷰를 사용하여, 서버는, 씬의 컬러 데이터, 알파 데이터, 및 뎁스 데이터를 추출한다(301). 여기에서, 알파 데이터(또는 알파값)는, 컬러 정보와는 별도로, 화소(픽셀)마다 마련된 부가 정보를 나타내는 수치이다. 알파 데이터는, 특히 투명도로서 이용되는 경우가 많다. 또, 알파 데이터의 집합은, 알파 채널이라고도 불린다.
다음으로, 서버는, 컬러 데이터, 알파 데이터, 및 뎁스 데이터의 각각을 스트림에 추가하고, 압축한다(302-1, 302-2, 302-3). 서버는, 압축한 카메라 데이터를 컨테이너 스트림의 일부로서, 네트워크(120)를 경유하여 클라이언트로 송신한다(303).
<4.2 컬러의 클라이언트 측의 처리>
클라이언트는, 네트워크(120)를 경유하여 압축된 카메라 데이터·스트림을 포함하는 컨테이너 스트림을 수신한다(305). 클라이언트는, 프레임의 세트를 준비하는 것과 동일하게, 수신한 카메라 데이터를 해동한다(306). 다음으로, 클라이언트는, 해동한 카메라 데이터로부터 비디오 스트림의 컬러 데이터, 알파 데이터, 및 뎁스 데이터를 각각 처리한다(306-1, 306-2, 306-3). 여기에서, 이들 원시의 특징량 데이터는, 재구성된 3D 씬에 적용하기 위하여 준비되고, 큐에 넣어진다. 컬러 데이터는, 텍스처를 갖는 재구성된 3D 씬의 메시를 랩(wrap: 싼다)하기 위하여 사용된다.
또, 뎁스 데이터 및 알파 데이터를 갖는 추가의 상세 정보가 사용된다. 다음으로, 클라이언트는, 비디오 스트림의 컬러 데이터, 알파 데이터, 및 뎁스 데이터를 동기시킨다(309). 클라이언트는, 동기한 컬러 데이터, 알파 데이터, 및 뎁스 데이터를 큐에 저장하고, 컬러 데이터 큐를 관리한다(307). 다음으로, 클라이언트는, 컬러/텍스처 정보를 지오메트리로 투사한다(308).
도 8은, 본 개시에 의한 지오메트리 패킷, 컬러 패킷, 메타데이터, 및 커맨드의 사이의 데이터 동기를 나타내는 도이다.
클라이언트 측에서 데이터를 이용할 수 있도록 하기 위해서는, 클라이언트 측에서 수신한 3D 화상을 재생하면서 스트림 중인 데이터의 올바른 내용을 제공하는 방법으로 데이터를 관리할 필요가 있다. 네트워크를 경유하는 데이터 패킷은 반드시 신뢰성이 높은 방법으로 전송되는 것은 아니며, 패킷의 지연 및/또는 패킷의 순번의 변경이 발생할 가능성이 있다. 따라서, 데이터의 컨테이너 스트림을 클라이언트에서 수신하고 있는 동안, 클라이언트의 시스템은 어떻게 데이터의 동기를 관리할지를 생각할 필요가 있다. 본 개시의 지오메트리, 컬러, 메타데이터, 및 커맨드를 동기하기 위한 기본적인 스킴은, 이하와 같다. 이 스킴은, 네트워크·애플리케이션이나 스트림용으로 작성된 데이터·포맷에 대하여 표준적인 것이어도 된다.
도 8을 참조하여, 서버 측으로부터 송신되는 3D 스트림(401)은, 지오메트리 패킷, 컬러 패킷, 메타데이터, 및 커맨드를 포함하고 있다. 3D 스트림에 포함되는 지오메트리 패킷, 컬러 패킷, 메타데이터, 및 커맨드는, 서버상에서 3D 스트림이 작성된 시점에서는, 프레임 시퀀스(410)에 나타나는 바와 같이 서로 동기되어 있다.
이 프레임 시퀀스(410)에 있어서, 시간은 왼쪽에서 오른쪽으로 흐른다. 그런데, 서버로부터 송신된 프레임 시퀀스(410)가, 클라이언트에서 수신되었을 때에는, 네트워크를 경유하는 동안에 상호의 동기를 취할 수 없게 되는 경우나 랜덤한 지연이 발생하는 경우가 있어, 그것이 클라이언트 측에서 수신된 3D 스트림(401)에 나타나 있다. 즉, 클라이언트에서 수신된 3D 스트림(401) 내에서는, 지오메트리 패킷, 컬러 패킷, 메타데이터, 및 커맨드가, 클라이언트에서 작성되었을 때의 3D 스트림(401)과는, 시퀀스 내의 순서 또는 위치가 상이한 장소가 있는 것을 알 수 있다.
클라이언트에서 수신된 3D 스트림(401)은, 패킷 큐 매니저(402)에 의하여 본래의 동기로 되돌아가도록 처리되어, 프레임 시퀀스(403)가 생성된다. 패킷 큐 매니저(402)에 의하여 동기가 부활되고, 또한 서로 상이한 지연이 해소된 프레임 시퀀스(403)에서는, 지오메트리 패킷 1, 2, 3이 올바른 순서·배치가 되며, 컬러 패킷 1, 2, 3, 4, 5가 올바른 순서·배치가 되고, 메타데이터 1, 2, 3, 4, 5가 올바른 순서·배치가 되며, 커맨드 1, 2가 올바른 순서·배치가 된다. 즉, 클라이언트 내에서 정렬 후의 프레임 시퀀스(403)는, 서버 내에서 작성된 프레임 시퀀스(410)와 동일한 배열이 된다.
다음으로, 동기된 현재의 프레임에 대한 데이터를 사용하여, 씬이 재구성된다(404). 다음으로, 재구성된 프레임을 렌더링하고(405), 클라이언트는 씬을 표시 장치 상에 표시한다(406).
도 9는, 시퀀스 갱신 플로 500의 예를 나타낸다. 도 9에서는, 시간은 왼쪽에서 오른쪽으로 진행한다. 도 9를 참조하여, 먼저 지오메트리가 갱신된다(501). 여기에서는, 그것과 동기하여(즉, 횡방향의 위치가 일치하여) 컬러/텍스처가 갱신된다(505). 다음으로, 컬러/텍스처가 갱신되지만(506), 지오메트리는, 갱신되지 않는다(예를 들면, 컬러는 바뀌었지만, 움직임이 없는 경우). 다음으로, 지오메트리가 갱신되고(502), 그것과 동기하여 컬러/텍스처가 갱신된다(507). 다음으로, 컬러/텍스처가 갱신되지만(508), 지오메트리는, 갱신되지 않는다. 다음으로, 지오메트리가 갱신되고(503), 그것과 동기하여 컬러/텍스처가 갱신된다(509).
도 9에서 알 수 있는 바와 같이, 컬러/텍스처가 갱신될 때마다, 지오메트리가 갱신될 필요는 없고, 반대로, 지오메트리가 갱신될 때마다, 컬러/텍스처가 갱신될 필요도 없다. 지오메트리의 갱신과 컬러/텍스처의 갱신이 동기해도 된다. 또, 컬러/텍스처의 갱신은, 반드시 컬러 및 텍스처가 갱신될 필요는 없으며, 컬러 또는 텍스처 중 어느 일방의 갱신이어도 된다. 이 도면에서는, 컬러/텍스처 갱신 2회에 대하여, 지오메트리 갱신이 1회의 빈도로 기재되어 있지만, 이것은 일례이며, 다른 빈도여도 된다.
도 10은, 본 개시에 의한 클라이언트의 하드웨어 구성예를 나타내는 개략도이다. 클라이언트(150)는, 스마트폰이나 휴대전화 등의 단말이어도 된다. 클라이언트(150)는, CPU/GPU(601)와, 표시부(602)와, 입출력부(603)와, 메모리(604)와, 네트워크 인터페이스(605)와, 기억 장치(606)를 통상 구비하고 있고, 이들 구성 요소는, 버스(607)로 서로 통신 가능하게 접속되어 있다.
CPU/GPU(601)는, CPU 단체 또는 GPU 단체여도 되고, CPU와 GPU가 협동하여 동작하게 되어 있는 1개 또는 복수의 부품으로 구성되어도 된다. 표시부(602)는, 통상 컬러로 화상을 표시하기 위한 장치이며, 본 개시에 의한 3D 화상을 표시하고, 유저에게 제시한다. 도 5를 참조하여, 상술한 바와 같이, 클라이언트는, 클라이언트 단말과 스마트 글래스의 조합이어도 되고, 그 경우는, 스마트 글래스가 표시부(602)의 기능을 갖는다.
입출력부(603)는, 유저 등의 외부와의 인터랙션을 행하기 위한 장치이며, 클라이언트(150)의 내부 또는 외부에 있는 키보드, 스피커, 버튼, 터치 패널에 접속되어도 된다. 메모리(604)는, CPU/GPU(601)의 동작에 필요한 소프트웨어 및 데이터를 기억하기 위한 휘발성 메모리이다. 네트워크 인터페이스(605)는, 클라이언트(150)가 외부의 네트워크에 접속하고, 통신하기 위한 기능을 갖는다. 기억 장치(606)는, 클라이언트(150)에서 필요한 소프트웨어, 펌웨어, 데이터 등을 기억하기 위한 불휘발성 메모리이다.
도 11은, 본 개시에 의한 서버의 하드웨어 구성예를 나타내는 개략도이다. 서버(100)는, 통상은, 클라이언트보다 고기능의 CPU를 구비하고, 통신 속도도 빠르며, 보다 대용량의 기억 장치를 구비한다. 서버(100)는, CPU/GPU(701)와, 입출력부(703)와, 메모리(704)와, 네트워크 인터페이스(705)와, 기억 장치(706)를 통상 구비하고 있고, 이들 구성 요소는, 버스(707)로 서로 통신 가능하게 접속되어 있다.
CPU/GPU(701)는, CPU 단체 또는 GPU 단체여도 되고, CPU와 GPU가 협동하여 동작하게 되어 있는 1개 또는 복수의 부품으로 구성되어도 된다. 도 10에 기재된 클라이언트 장치는, 표시부(602)를 구비하고 있었지만, 서버의 경우는, 표시부는 필수는 아니다. 입출력부(703)는, 유저 등과의 인터랙션을 행하기 위한 장치이며, 키보드, 스피커, 버튼, 터치 패널에 접속되어도 된다. 메모리(704)는, CPU/GPU(701)의 동작에 필요한 소프트웨어 및 데이터를 기억하기 위한 휘발성 메모리이다. 네트워크 인터페이스(705)는, 클라이언트가 외부의 네트워크에 접속하고, 통신하기 위한 기능을 갖는다. 기억 장치(706)는, 클라이언트에서 필요한 소프트웨어, 펌웨어, 데이터 등을 기억하기 위한 불휘발성 기억 장치이다.
도 12는, 본 개시에 관한 정보 처리 시스템의 구성의 일례를 나타내는 개략도이다. 서버(100)와, 클라이언트(150-1)와, 클라이언트(150-2)가 네트워크(120)에 의하여 서로 통신 가능하게 접속되어 있다.
서버(100)는, 예를 들면, 서버 등의 컴퓨터 장치이며, 클라이언트(150-1)와 클라이언트(150-2)로부터의 화상 표시 요구 등에 따라, 동작하여, 클라이언트(150-1)와 클라이언트(150-2)에서 표시하기 위한 화상에 관련된 정보를 생성하고, 송신한다. 이 예에서는, 클라이언트는 2대 기재되어 있지만, 1대 이상이면 몇 대여도 된다.
네트워크(120)는, 유선 또는 무선의 LAN(Local Area Network)이어도 되고, 클라이언트(150-1)와 클라이언트(150-2)는, 스마트폰, 휴대전화, 슬레이트 PC, 또는 게임 단말 등이어도 된다.
도 13a는, 본 개시에 의한 서버 측의 처리의 플로를 나타내는 개략도이다. 서버 측의 씬(1301)에 있는 오브젝트(1302)로부터, RGB 카메라를 사용하여 컬러 정보(1303)를 추출한다(1310). 서버 측의 씬(1301)에 있는 오브젝트(1302)로부터, RGB 카메라를 사용하여 알파 정보(1304)를 추출한다(1320). 서버 측의 씬(1301)에 있는 오브젝트(1302)로부터, 뎁스 카메라를 사용하여 점군(1305)의 정보를 추출한다(1330). 다음으로, 점군(1305)의 정보를 간략화하여, 지오메트리 정보(1306)를 얻는다(1331).
다음으로, 얻어진 컬러 정보(1303), 알파 정보(1304) 및 지오메트리 정보(1306)는, 스트림 데이터 포맷으로 처리되고(1307), 3D 스트림의 컨테이너 스트림으로서 네트워크를 경유하여 클라이언트로 송신된다(1340).
도 13b는, 본 개시에 의한 서버 측의 처리의 플로를 나타내는 개략도이다. 도 13b의 도면의 1305 및 1306은, 낮은 주파수 성분을 나타내는 메시의 공간 주파수를 낮춘다는 개념을 나타내고 있다. 엉성한 메시(1306)는, 그 표면의 상세를 나타낼 수 있는 고주파 성분 정보(1308, 1309)와 관련지어진다. 뎁스 카메라의 필요성을 회피하기 위하여, z 버퍼는, 렌더링하는 면을 선택하기 위하여 사용할 수 있다. 렌더링되는 표면은 사실상 무한원에 있기 때문에, z 버퍼는 알파(투명) 채널을 추출하기 위해서도 사용할 수 있다. 고해상도 메시(또는 점군)는, 고주파수 성분과 함께 저해상도 메시로 분해 가능하다. 고해상도 메시(1305)로부터 고주파수 성분을 제거함으로써 평활화된 저해상도 메시(1306)를 얻을 수 있는 것에 유의하기 바란다.
도 14는, 본 개시에 의한 클라이언트 측의 처리의 플로를 나타내는 개략도이다. 도 14는, 본 개시에 의한 데칼 방법에 관련된다. 여기에서, 데칼이란, 오브젝트상에 텍스처나 머티리얼을 첩부하는 처리이다. 여기에서, 텍스처란, 3D(3차원)CG 모델의 질감, 모양, 요철 등을 표현하기 위하여 이용하는 데이터 등을 가리킨다. 또, 머티리얼이란, 오브젝트의 재질 등이며, 3DCG에서는, 예를 들면, 물체의 광학적 특성, 재질감을 가리킨다.
본 개시의 데칼 방법이, 종래의 UV 매핑보다 프로세서의 처리로서 가벼운 이유를 이하에서 설명한다. 현시점에서, 메시에 색을 설정하기 위해서는 몇 가지 방법이 있다. 여기에서, UV란, 3DCG 모델에 텍스처를 매핑할 때, 첩부하는 위치나 방향, 크기 등을 지정하기 위하여 사용하는 좌표계이다. 2차원의 직교좌표계에서, 횡방향의 축이 U, 종방향의 축이 V가 된다. UV 좌표계를 사용한 텍스처 매핑을 UV 매핑이라 부른다.
<5.1 각 꼭짓점에 색을 설정하는 방법(종래의 방법 1)>
대상이 되는 클라우드 내의 모든 삼각형에 대하여, 색의 값을 꼭짓점에 저장한다. 그러나, 꼭짓점의 밀도가 낮은 경우, 해상도가 낮은 텍스처링이 되어, 유저·익스피리언스가 저하한다. 반대로, 꼭짓점의 밀도가 높은 경우, 화면상의 모든 픽셀에 색을 보내는 것과 동일하게 되어, 서버로부터 클라이언트로 전송하는 데이터양이 증가한다. 한편, 이것은 추가/기본 컬러링의 스텝으로서 사용할 수 있다.
<5.2 메시의 UV에 올바른 텍스처를 설정하는 방법(종래의 방법 2)>
올바른 텍스처를 UV 매핑으로 설정하기 위해서는, 삼각형의 군의 텍스처를 생성할 필요가 있다. 그 후, 현재의 메시의 UV 맵을 생성하고, 스트림에 추가할 필요가 있다. 모델의 오리지널 텍스처는, 씬의 번개 등의 정보가 포함되어 있지 않고, 고품질이며 상세한 3D 모델을 위해서는, 대량의 텍스처가 필요해지기 때문에, 실질적으로 사용할 수 없다. 이 방법이 채용되지 않는 다른 하나의 이유는, 서버상에서 렌더링된 3D 모델로 작성된 UV에서 오리지널 텍스처가 동작하는 것이다. 일반적으로는, 삼각형의 군을 사용하고, 상이한 뷰로부터 컬러링 텍스처를 투영하며, 수신한 UV 텍스처를 저장하여 송신한다. 또한, UV 텍스처와 동일한 빈도로 메시의 지오메트리나 토폴로지를 갱신할 필요가 있기 때문에, 서버와 클라이언트 간에서 송수신하는 데이터양이 증가한다.
<5.3 메시에 텍스처를 투영하는(데칼) 방법(본 개시에 의한 방법)>
스트림의 특정 위치로부터의 컬러/텍스처가, 그 위치에 관한 메타 정보와 함께 서버로부터 클라이언트에 송신된다. 클라이언트는, 이 텍스처를 지정된 위치로부터 메시에 투영한다. 이 경우, UV 맵은 불필요하다. 이 방법에서는, 스트리밍된 측(즉, 클라이언트 측)에는 UV 생성이 로드되지 않는다. 이 데칼에 의한 어프로치는, 데이터 플로의 최적화의 여지를 제공할 수 있다(예를 들면, 지오메트리와 컬러의 갱신은, 상이한 빈도로 연속하여 행할 수 있다).
도 14에 기재된 클라이언트 측의 처리는, 기본적으로, 도 13에 기재된 서버 측의 처리와 반대의 처리를 행한다. 먼저, 클라이언트는, 네트워크를 통하여 서버가 송신한 3D 스트림인 컨테이너 스트림을 수신한다. 다음으로, 수신한 3D 스트림으로부터 데이터를 복호하고, 오브젝트를 재구성하기 위하여, 컬러 정보, 알파 정보, 지오메트리 정보를 복원한다(1410).
다음으로, 먼저, 컬러 정보(1431)와 알파 정보(1432)가 결합되고, 그 결과로서 텍스처 데이터가 생성된다. 다음으로, 이 텍스처 데이터를 지오메트리 데이터(1433)에 적용한다(1420). 이렇게 함으로써, 서버상에 있던 오브젝트가 클라이언트상에서 재구성된다(1440). 서버 측의 씬에 복수의 오브젝트가 있는 경우는, 오브젝트마다 이와 같은 처리를 적용한다.
도 15는, 본 개시에 사용되는 카메라의 배치를 나타내는 도이다. 대상이 되는 씬(1510)에 있는 오브젝트의 지오메트리 정보를 취득하기 위해서는, 1대 이상의 뎁스 카메라가 사용된다. 뎁스 카메라는, 매프레임, 뎁스 맵을 취득하고, 다음으로, 이들 뎁스 맵은, 점군으로 처리된다. 다음으로, 점군은, 단순화를 위하여 소정의 삼각형의 메시로 분할된다. 뎁스 카메라의 해상도를 변경함으로써, 삼각형으로 분할된 메시의 상세도(미세도의 레벨, 입도)를 제어하는 것이 가능하다. 예를 들면, 상정하는 표준적인 설정에서는, 256Х256 해상도의 6대의 뎁스 카메라를 사용한다(1521~1526). 그러나, 필요한 뎁스 카메라의 대수와 각 카메라의 해상도는, 더 최적화하여, 줄이는 것도 가능하며, 뎁스 카메라의 대수 및 그 해상도에 따라, 퍼포먼스, 즉 화질 및 전송 데이터양이 변화한다.
도 15에는, 일례로서, 6대의 뎁스 카메라(1521~1526)와 1대의 통상의 카메라(1530)를 배치한 구성이 기재되어 있다. 통상의 카메라(즉 RGB 카메라)(1530)는, 대상이 되는 씬(1510)에 있는 오브젝트의 컬러 정보 및 알파 정보를 취득하기 위하여 사용된다.
대체안으로서, 뎁스 카메라를 사용하지 않고 통상의 RGB 카메라만을 사용하는 방법도 있을 수 있다. 이 경우는, RGB 카메라로 취득한 화상으로부터 오브젝트의 위치를 추정하고, 지오메트리 정보를 작성한다. 또한, 가상 카메라의 개념을 바이패스하여, 메시를 직접 처리하는 방법도 있다. 즉, 데이터 캡처 스텝, 점군 처리, 및 테셀레이션을 바이패스하고, 테셀레이션된 데이터를 직접 사용하여, 그래픽스 엔진 고유의 셰이더를 이용하여 지오메트리 정보를 관리하는 방법이다.
도 16은, 본 개시에서 사용되는 ARGB 시스템에 있어서의 픽셀 구성을 나타내는 도이다. ARGB 시스템은, 종래의 RGB(적, 녹, 청)의 색 정보에, 투명도를 나타내는 알파 정보 (A)를 추가한 것이다. 도 16에 나타낸 예에서는, 알파, 청, 녹, 적의 각각이, 8비트(즉, 256단계)로 나타나고, 즉, ARGB 전체에서, 32비트의 구성으로 되어 있다. 도 16의 1601이 각 색 또는 알파의 비트 수를 나타내고, 1602가 각각의 색 또는 알파를 나타내며, 1603은, 전체로서 32비트의 구성을 나타내고 있다. 이 예에서는, 각 색 및 알파가 8비트 구성이며, 전체적으로 32비트인 ARGB 시스템을 설명하고 있지만, 이들 비트 수는, 원하는 화질 및 전송 데이터양에 따라, 변경할 수 있다.
알파 정보는, 컬러 이미지에 대하여, 마스크/세컨더리 레이어로서 사용할 수 있다. 현재의 하드웨어 인코더의 제약에 의하여, 알파 정보를 갖는 컬러 정보에 대하여 비디오 스트림을 부호화하는 것은 시간이 걸린다. 또, 비디오 스트림에 대한 컬러 및 알파의 소프트웨어 인코더는, 리얼타임으로 부호화할 수 없어 지연이 발생하며, 본 개시의 목적을 달성할 수 없기 때문에, 현시점에서는 본 개시의 대체안이 될 수는 없다.
<6.1 본 개시에 의한 3D 스트림·씬의 지오메트리의 재구성의 이점>
본 개시의 방법을 이용한 3D 스트림·씬의 지오메트리 재구성의 이점은 이하와 같다. 본 개시의 방법은, 「삼각형의 군(cloud of triangles)」을 이용하여 씬을 재구성함으로써, 클라이언트 측에서 각 씬을 재구성한다. 이 혁신적인 아이디어의 중요한 점은, 클라이언트 측에서 대량의 삼각형을 사용할 준비가 되어 있다는 것이다. 이 경우, 삼각형의 군에 포함되는 삼각형의 수는, 수 십만 개여도 된다.
클라이언트는, 스트림으로부터 정보를 취득하면 바로 3D 씬의 형상을 만들기 위하여 각 삼각형을 적절한 장소에 배치할 준비가 되어 있다. 본 개시의 방법에서는, 서버로부터 클라이언트에, 종래보다 적은 데이터밖에 전송하지 않기 때문에, 이 방법의 이점은, 처리에 필요한 전력과 시간을 삭감할 수 있는 것이다. 프레임마다 메시를 생성한다는 종래의 방법이 아니라, 기존의 지오메트리의 위치를 변경한다. 그러나, 기존의 지오메트리의 위치를 변경함으로써, 씬 내에서 한 번 생성된 삼각형의 군의 위치를 변경할 수 있다. 따라서, 지오메트리 데이터는, 각 삼각형의 좌표를 제공하고, 오브젝트의 이 위치의 변경은, 동적이다.
<6.2 본 개시에 의한 3D 스트리밍의 이점>
본 개시의 3D 스트리밍의 이점은, 6개의 자유도(DoF: Degree of Freedom)에서도 네트워크의 지연이 보다 적은 것이다. 3D 스트리밍·포맷의 이점의 하나는, 클라이언트 측에도 3D 씬이 있는 것이다. 믹스·리얼리티(MR)에서 내비게이트하거나, 또는 화상 내를 보며 돌 때, 중요한 부분은, 어떻게 3D 콘텐츠가 현실 세계와 접속되어 있는지, 그리고 어떻게 「거기에 실제의 위치가 느껴지는지」이다. 바꾸어 말하면, 유저가 몇 개의 표시된 오브젝트의 주위를 돌고 있을 때에, 디바이스에 의한 위치 갱신의 지연을 인식하지 않는 경우, 인간의 뇌는 이 오브젝트가 정말로 그 장소에 있다고 착각한다.
현재, 클라이언트 측의 디바이스는 70~90FPS(1초당 프레임 수)를 목표로 하여, 유저에게 이것을 「진짜」라고 생각하게 하기 위하여, 디스플레이 상의 3D 콘텐츠를 갱신한다. 오늘날에는, 12ms 이하의 대기 시간으로, 리모트 서버상에서 프레임 갱신의 풀 사이클을 제공하는 것은 불가능하다. 실제로, AR 디바이스의 센서는, 1,000FPS 이상의 정보를 제공하고 있다. 그리고, 클라이언트 측에서 3D 콘텐츠를 동기시키는 것은, 현대의 디바이스에서는 이미 가능하므로, 본 개시의 방법에서는, 클라이언트 측에서 3D 콘텐츠를 동기시킬 수 있다. 그 때문에, 3D 씬을 재구성한 후, 클라이언트 측에서 확장 콘텐츠의 위치 정보를 처리하는 것은 클라이언트 측의 일이며, 리얼리티에 영향을 주지 않는 것 같은 합리적인 네트워크상의 문제(예를 들면, 전송 지연)가 있으면, 그것을 해결할 수 있다.
도 17은, 클라이언트가 이동한 경우의 위치 정보의 변화에 대하여 나타낸 도이다. 클라이언트가 이동한 경우의 추정 위치와 실제의 위치의 사이의 보정을 설명하는 도이다. 서버는, 클라이언트 단말로부터 움직임·위치 정보를 수신한다. 클라이언트의 움직임은, 도 17에 나타내는 바와 같다. 클라이언트의 움직임은 타겟의 역운동으로서 표현할 수 있기 때문에, 타겟의 특징의 위치를 추정할 수 있다(도 17 및 후술하는 도 18 참조). 이 위치 정보를 이용하여 위치의 이력을 축적함으로써, 다음의 프레임에서의 꼭짓점 데이터의 움직임을 예측할 수 있다. 이 갱신된 위치는, 클라이언트로부터 제공되는 다음의 데이터 세트와 비교되고, 예측을 검증하며, 필요하다면, 추정된 움직임 모델을 수정한다. 도 17에 있어서 관찰자(클라이언트)의 위치의 변화가, 검출된 꼭짓점의 위치의 변화로 이어지는 것을 알 수 있다. 점 X에서 본 직선 PP'는, 위치 X'에서 보면 직선 aa'에 사상(像)되고, 위치 X''에서 보면 bb'에 사상된다. 이 궤적 P-a-b는, 시각 t에 있어서의 특징점의 위치를 P로 하면, 이력 궤적 P(t)를 정의하고, 꼭짓점의 움직임의 모델을 정의하는 것이다. 이 모델을 이용하여 P(t+1)을 추정함으로써, 점c, c'를 예측할 수 있다.
도 18은, 화상 뷰에 있어서의 움직임 예측과 오차 검출의 설명도이다. 도 17에 기재된 방법에서는, 클라이언트는 위치만이 아니라 방향을 바꿀 수 있기 때문에, 이 추정값에는 오차가 생길 가능성이 있다. 그래서, P(t+1)과 실제의 검출 위치(화살표 1801, 1802)의 오차를 계산하고, P(t)의 갱신에 이용할 수 있는 오차δP(t)를 유도한다.
도 17은, 타겟(정육면체)의 둘레의 클라이언트의 움직임에 주목하고, 화상 평면상의 점이 어떻게 이동하는지를 나타낸 것이다. 그리고, 도 18에서는, (관찰자가 아니라) 회전·병진하는 타겟의 움직임을 상정함으로써, 동일한 움직임이 예측되는 것을 나타낸다.
<본 개시의 정리>
이하에 본 개시의 정리로서 몇 개의 실시예를 부기(付記)한다.
서버로부터 클라이언트로, 3D 오브젝트를 송신하는 방법으로서, 상기 서버상의 상기 3D 오브젝트로부터 컬러 정보, 알파 정보 및 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보를 단순화하는 것과, 상기 서버로부터 상기 클라이언트로, 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는 것을 포함하는, 본 개시에 의한 방법.
상기 지오메트리 정보를 단순화하는 것은, 상기 3D 오브젝트로부터 추출된 점군으로부터 삼각형의 꼭짓점의 정보로 변환하는 것인, 본 개시에 의한 방법.
상기 스트림은, 메타데이터, 사운드 데이터, 및 커맨드 중 적어도 1개를 더 포함하는, 본 개시에 의한 방법.
상기 서버가, 상기 클라이언트로부터, 상기 서버상의 3D 오브젝트를 개서하는 커맨드를 수신하는, 본 개시에 의한 방법.
상기 서버가 상기 클라이언트로부터 3D 오브젝트를 개서하는 커맨드를 수신한 경우, 상기 서버는 상기 서버상의 3D 오브젝트를 개서하고, 상기 개서한 3D 오브젝트로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보를 단순화하고, 상기 서버로부터 상기 클라이언트로 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 본 개시에 의한 방법.
상기 컬러 정보 및 상기 알파 정보는, RGB 카메라로 취득되고, 상기 지오메트리 정보는, 뎁스 카메라로 취득되는, 본 개시에 의한 방법.
서버상에 있는 3D 오브젝트를 클라이언트상에서 재현하는 방법으로서, 상기 서버로부터 상기 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하는 것과, 상기 스트림을 복호하고, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하는 것과, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는 것을 포함하는, 본 개시에 의한 방법.
상기 재구성된 3D 오브젝트를 표시 장치 상에 표시하는, 본 개시에 의한 방법.
상기 표시 장치가 스마트 글래스인, 본 개시에 의한 방법.
1개 이상의 프로세서 및 메모리를 포함하는 서버로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 상기 서버상의 3D 오브젝트로부터 알파 정보 및 지오메트리 정보를 추출하고, 상기 지오메트리 정보를 단순화하며, 상기 서버로부터 클라이언트로, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 본 개시에 의한 서버.
1개 이상의 프로세서 및 메모리를 포함하는 클라이언트로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 서버로부터 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하고, 상기 스트림을 복호하여, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하고, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는, 본 개시에 의한 클라이언트.
본 개시에 의한 상기 방법을 프로세서에 의하여 실행하기 위한 명령을 포함하는, 프로그램.
서버로부터 클라이언트로, 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 송신하는 방법으로서, 상기 서버상의 상기 3D 오브젝트로부터 컬러 정보, 알파 정보 및 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보를 단순화하는 것과, 상기 서버로부터 상기 클라이언트로, 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는 것을 포함하는, 본 개시에 의한 방법.
상기 지오메트리 정보를 단순화하는 것은, 상기 지오메트리 정보로부터 고주파수 성분을 제거하는 것을 포함하는, 본 개시에 의한 방법.
상기 스트림은, 상기 클라이언트의 위치 정보, 메타데이터, 사운드 데이터, 및 커맨드 중 적어도 1개를 더 포함하는, 본 개시에 의한 방법.
상기 서버가, 상기 클라이언트로부터, 상기 서버상의 3D 오브젝트를 개서하는 커맨드를 수신하고, 상기 커맨드는 상기 클라이언트의 위치 정보를 포함하는, 본 개시에 의한 방법.
상기 서버가 상기 클라이언트로부터 3D 오브젝트를 개서하는 커맨드를 수신한 경우, 상기 서버는, 상기 커맨드에 포함되는 상기 클라이언트의 위치 정보에 근거하여 상기 서버상의 3D 오브젝트를 개서하고, 상기 개서한 3D 오브젝트로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보를 단순화하고, 상기 서버로부터 상기 클라이언트로 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 본 개시에 의한 방법.
상기 컬러 정보, 상기 알파 정보, 및 상기 지오메트리 정보는, RGB 카메라에 의하여 취득된 화상에 근거하여 생성되는, 본 개시에 의한 방법.
서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 상기 클라이언트상에서 재현하는 방법으로서, 상기 서버로부터 상기 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하는 것과, 상기 스트림을 복호하고, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하는 것과, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하는 것과, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는 것을 포함하는, 본 개시에 의한 방법.
상기 재구성된 3D 오브젝트를 표시 장치 상에 표시하는, 본 개시에 의한 방법.
상기 표시 장치가 스마트 글래스인, 본 개시에 의한 방법.
1개 이상의 프로세서 및 메모리를 포함하는 서버로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 상기 서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트로부터 알파 정보 및 지오메트리 정보를 추출하고, 상기 지오메트리 정보를 단순화하며, 상기 서버로부터 클라이언트로, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 본 개시에 의한 서버.
1개 이상의 프로세서 및 메모리를 포함하는 클라이언트로서, 상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써, 서버로부터 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하고, 상기 스트림을 복호하여, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하고, 상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는, 본 개시에 의한 클라이언트.
본 개시의 어느 하나의 방법을 프로세서에 의하여 실행하기 위한 명령을 포함하는, 본 개시의 프로그램.
본 개시는 소프트웨어, 하드웨어, 또는, 하드웨어와 연계한 소프트웨어로 실현하는 것이 가능하다.
2021년 3월 9일 출원된 특원 2021-037507의 일본 출원에 포함되는 명세서, 도면 및 요약서의 개시 내용은, 모두 본원에 원용된다.
본 개시는, 소프트웨어, 프로그램, 시스템, 장치, 클라이언트 서버 시스템, 단말 등에 적용 가능하다.
100 서버
101 수신 데이터 처리 유닛
102 3D 씬 데이터 생성 유닛
103 추출 유닛
104 3D 스트림 변환/부호화 유닛
105 3D 스트림
106 네트워크 패킷 구성 유닛
107 네트워크 패킷 전송 유닛
108 네트워크 패킷 수신 유닛
120 유선 또는 무선 네트워크
150 클라이언트
150-1 클라이언트
150-2 클라이언트
151 네트워크 패킷 전송 유닛
152 네트워크 패킷 수신 유닛
153 앱 데이터 출력 유닛
154 3D 스트림 복호 유닛
155 3D 씬 재구성 유닛
156 표시 유닛
602 표시부
603 입출력부
604 메모리
605 네트워크 인터페이스
606 기억 장치
607 버스
703 입출력부
704 메모리
705 네트워크 인터페이스
706 기억 장치
707 버스
1201 화면
1202 사람
1203 컨테이너 스트림
1210 스마트 글래스
1211-1 사람
1211-2 사람
1212-1 커서
1212-2 커서
1213 커맨드
1214 사람
1221 단말 장치
1521~1526 뎁스 카메라
1530 RGB 카메라

Claims (12)

  1. 서버로부터 클라이언트로, 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 송신하는 방법으로서,
    상기 서버상의 상기 3D 오브젝트로부터 컬러 정보, 알파 정보 및 지오메트리 정보를 추출하는 것과,
    상기 지오메트리 정보를 단순화하는 것과,
    상기 서버로부터 상기 클라이언트로, 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는 것
    을 포함하는 방법.
  2. 제1항에 있어서,
    상기 지오메트리 정보를 단순화하는 것은, 상기 지오메트리 정보로부터 고주파수 성분을 제거하는 것을 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 스트림은, 상기 클라이언트의 위치 정보, 메타데이터, 사운드 데이터, 및 커맨드 중 적어도 1개를 더 포함하는, 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 서버가, 상기 클라이언트로부터, 상기 서버상의 3D 오브젝트를 개서하는 커맨드를 수신하고, 상기 커맨드는 상기 클라이언트의 위치 정보를 포함하는, 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 서버가 상기 클라이언트로부터 3D 오브젝트를 개서하는 커맨드를 수신한 경우, 상기 서버는, 상기 커맨드에 포함되는 상기 클라이언트의 위치 정보에 근거하여 상기 서버상의 3D 오브젝트를 개서하고, 상기 개서한 3D 오브젝트로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며, 상기 지오메트리 정보를 단순화하고, 상기 서버로부터 상기 클라이언트로 상기 컬러 정보, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 컬러 정보, 상기 알파 정보, 및 상기 지오메트리 정보는, RGB 카메라에 의하여 취득된 화상에 근거하여 생성되는, 방법.
  7. 서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트를 상기 클라이언트상에서 재현하는 방법으로서,
    상기 서버로부터 상기 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하는 것과,
    상기 스트림을 복호하고, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하는 것과,
    상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하는 것과,
    상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는 것
    을 포함하는 방법.
  8. 제7항에 있어서,
    상기 재구성된 3D 오브젝트를 표시 장치 상에 표시하는, 방법.
  9. 제8항에 있어서,
    상기 표시 장치가 스마트 글래스인, 방법.
  10. 1개 이상의 프로세서 및 메모리를 포함하는 서버로서,
    상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써,
    상기 서버상의 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트로부터 알파 정보 및 지오메트리 정보를 추출하고,
    상기 지오메트리 정보를 단순화하며,
    상기 서버로부터 클라이언트로, 상기 알파 정보 및 상기 단순화된 지오메트리 정보를 포함하는 스트림을 부호화하여 송신하는, 서버.
  11. 1개 이상의 프로세서 및 메모리를 포함하는 클라이언트로서,
    상기 1개 이상의 프로세서가, 상기 메모리에 기억된 명령을 실행함으로써,
    서버로부터 상기 클라이언트의 위치 정보에 근거하여 생성된 3D 오브젝트의 컬러 정보, 알파 정보 및 지오메트리 정보를 포함하는 부호화된 스트림을 수신하고,
    상기 스트림을 복호하여, 거기로부터 상기 컬러 정보, 상기 알파 정보 및 상기 지오메트리 정보를 추출하며,
    상기 지오메트리 정보에 근거하여 상기 3D 오브젝트의 형상을 재현하고,
    상기 재현된 3D 오브젝트의 형상 위에, 상기 컬러 정보와 상기 알파 정보를 합성한 정보를 투영함으로써 상기 3D 오브젝트를 재구성하는, 클라이언트.
  12. 제1항, 제2항, 제7항, 제8항 또는 제9항 중 어느 한 항에 기재된 방법을 프로세서에 의하여 실행하기 위한 명령을 포함하는, 프로그램.
KR1020237034136A 2021-03-09 2022-03-04 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램 KR20230153468A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2021-037507 2021-03-09
JP2021037507A JP2022137826A (ja) 2021-03-09 2021-03-09 3dオブジェクトのストリーミング方法、装置、及びプログラム
PCT/JP2022/009411 WO2022191070A1 (ja) 2021-03-09 2022-03-04 3dオブジェクトのストリーミング方法、装置、及びプログラム

Publications (1)

Publication Number Publication Date
KR20230153468A true KR20230153468A (ko) 2023-11-06

Family

ID=83226770

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237034135A KR20230153467A (ko) 2021-03-09 2021-04-21 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램
KR1020237034136A KR20230153468A (ko) 2021-03-09 2022-03-04 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램
KR1020237034137A KR20230153469A (ko) 2021-03-09 2022-03-08 3d 오브젝트에 관한 유저 입력의 해석 방법, 장치, 및 프로그램

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237034135A KR20230153467A (ko) 2021-03-09 2021-04-21 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237034137A KR20230153469A (ko) 2021-03-09 2022-03-08 3d 오브젝트에 관한 유저 입력의 해석 방법, 장치, 및 프로그램

Country Status (6)

Country Link
US (1) US20230401785A1 (ko)
EP (3) EP4290465A1 (ko)
JP (3) JP2022137826A (ko)
KR (3) KR20230153467A (ko)
CN (3) CN117043824A (ko)
WO (3) WO2022190398A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100134494A (ko) 2009-06-15 2010-12-23 엘지전자 주식회사 발광 다이오드 패키지 및 이를 포함하는 백라이트 유닛과 디스플레이장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09200599A (ja) * 1996-01-22 1997-07-31 Sanyo Electric Co Ltd 画像撮影方法
JP4229398B2 (ja) * 2003-03-28 2009-02-25 財団法人北九州産業学術推進機構 3次元モデリング・プログラム、3次元モデリング制御プログラム、3次元モデリング・データ伝送プログラム、記録媒体および3次元モデリング方法
JP2005259097A (ja) 2004-03-15 2005-09-22 Katsunori Kondo 3次元cgインタラクティブバナー
JP5103590B2 (ja) 2007-12-05 2012-12-19 倫也 佐藤 情報処理装置および情報処理方法
US20100134494A1 (en) 2008-12-02 2010-06-03 Electronics And Telecommunications Research Institute Remote shading-based 3d streaming apparatus and method
EP2461587A1 (en) * 2010-12-01 2012-06-06 Alcatel Lucent Method and devices for transmitting 3D video information from a server to a client
JP5864474B2 (ja) * 2013-05-01 2016-02-17 株式会社ディジタルメディアプロフェッショナル 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
CN110891659B (zh) 2017-06-09 2021-01-29 索尼互动娱乐股份有限公司 对注视点渲染系统中的粒子和模拟模型的优化的延迟照明和中心凹调适
CN110832553A (zh) * 2017-06-29 2020-02-21 索尼公司 图像处理装置和图像处理方法
WO2019039282A1 (ja) * 2017-08-22 2019-02-28 ソニー株式会社 画像処理装置および画像処理方法
US11290758B2 (en) 2017-08-30 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus of point-cloud streaming
JP6778163B2 (ja) 2017-08-31 2020-10-28 Kddi株式会社 オブジェクト情報の複数面への投影によって視点映像を合成する映像合成装置、プログラム及び方法
EP3462415A1 (en) * 2017-09-29 2019-04-03 Thomson Licensing Method and device for modifying attributes of points of a 3d scene
JP7277372B2 (ja) 2017-10-27 2023-05-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル符号化装置、三次元モデル復号装置、三次元モデル符号化方法、および、三次元モデル復号方法
US10529129B2 (en) 2018-04-20 2020-01-07 Hulu, LLC Dynamic selection mechanism for interactive video
US10497180B1 (en) * 2018-07-03 2019-12-03 Ooo “Ai-Eksp” System and method for display of augmented reality
WO2020050222A1 (ja) * 2018-09-07 2020-03-12 シャープ株式会社 画像再生装置、画像生成装置、画像生成方法、制御プログラム及び記録媒体
JP2020113094A (ja) * 2019-01-15 2020-07-27 株式会社シーエスレポーターズ 拡張現実空間に配置される3dオブジェクトを生成する方法
JP6647433B1 (ja) * 2019-02-19 2020-02-14 株式会社メディア工房 点群データ通信システム、点群データ送信装置および点群データ送信方法
JP2021037507A (ja) 2019-08-29 2021-03-11 日本国土開発株式会社 濾過用カートリッジ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100134494A (ko) 2009-06-15 2010-12-23 엘지전자 주식회사 발광 다이오드 패키지 및 이를 포함하는 백라이트 유닛과 디스플레이장치

Also Published As

Publication number Publication date
EP4290869A1 (en) 2023-12-13
CN117121493A (zh) 2023-11-24
JP7430411B2 (ja) 2024-02-13
WO2022190398A1 (ja) 2022-09-15
JP2024045258A (ja) 2024-04-02
CN117043824A (zh) 2023-11-10
JP2022138158A (ja) 2022-09-22
CN117063473A (zh) 2023-11-14
US20230401785A1 (en) 2023-12-14
WO2022191200A1 (ja) 2022-09-15
WO2022191070A1 (ja) 2022-09-15
JP2022137826A (ja) 2022-09-22
KR20230153467A (ko) 2023-11-06
EP4290465A1 (en) 2023-12-13
EP4290868A1 (en) 2023-12-13
KR20230153469A (ko) 2023-11-06

Similar Documents

Publication Publication Date Title
EP3695383B1 (en) Method and apparatus for rendering three-dimensional content
Shi et al. A survey of interactive remote rendering systems
CN110226316A (zh) 用于对虚拟现实视频执行转换及流传输的系统及方法
CN113099204B (zh) 一种基于vr头戴显示设备的远程实景增强现实方法
CN106716490A (zh) 用于视频译码的同时定位与地图构建
CN113661471A (zh) 混合渲染
CN115802076A (zh) 一种三维模型分布式云端渲染方法、系统及电子设备
US20230319328A1 (en) Reference of neural network model for adaptation of 2d video for streaming to heterogeneous client end-points
KR102598603B1 (ko) 이기종 클라이언트 종단점에 대한 스트리밍을 위한 2d 비디오의 적응
US11570227B2 (en) Set up and distribution of immersive media to heterogenous client end-points
KR20230153468A (ko) 3d 오브젝트의 스트리밍 방법, 장치, 및 프로그램
CN114788287A (zh) 对体积图像数据上的视图进行编码和解码
TWI817273B (zh) 即時多視像視訊轉換方法和系統
JP7472298B2 (ja) 没入型メディアの設置、及び没入型メディアから異種クライアントエンドポイントへの配信
US20230370666A1 (en) Streaming scene prioritizer for immersive media
US11943271B2 (en) Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
CN117397243A (zh) 用于沉浸式媒体的流式传输场景优先级排序器
KR20240052837A (ko) 몰입형 미디어를 위한 스트리밍 장면 우선순위화기
WO2023280623A1 (en) Augmenting video or external environment with 3d graphics
Wu et al. Virtual walk-through of Dunhuang Panorama-based on web
Aumüller D5. 3.4–Remote hybrid rendering: revision of system and protocol definition for exascale systems