이하 첨부된 도면을 참조하여 본 개시의 동작 원리를 상세히 설명한다. 하기에서 본 개시를 설명하기에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
마찬가지 이유로 첨부된 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예를 들면, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 '~부'는 하나 이상의 프로세서를 포함할 수 있다.
본 개시는 다양한 장치 및 XR 서비스에 대해 적용될 수 있다. 예를 들면, 본 개시는 AR, AR 웨어러블 장치(예를 들면, AR 글라스, HMD(head mounted display) 등), 모바일 AR 웨어러블 장치, 독립형(standalone) AR 웨어러블 장치, 3D 객체 모델링, 3D 텔레컨퍼런싱(teleconferencing), XR 서비스를 위한 세션 설정(setup) 및 수립(establishment), XR 서비스를 제공하기 위한 클라우드-보조 세션 관리(cloud assisted session management), VRM 모바일 VR, 또는 TV VR등의 분야에 적용될 수 있다. 물론, 본 개시가 적용될 수 있는 XR 분야는 상기 예시에 제한되지 않고 다양하게 정해질 수 있다.
본 개시에서, 확장 현실(extended reality: XR)이라는 용어는 가상 현실(virtual reality: VR), 증강 현실(augmented reality: AR) 또는 혼합 현실(mixed reality: MR) 중에서 적어도 하나를 포함하는 용어이다. 예를 들면, AR 글라스, AR 객체 및 VR 서비스 등은 각각 XR 글라스, XR 객체 및 XR 서비스로 지칭한다.
본 개시에서 XR 미디어 컨텐트는 다양한 유형의 미디어 컨텐트를 포함할 수 있다. 예를 들면, XR 미디어 컨텐트는 360도 비디오 컨텐트 및 3D 객체 기반 미디어 컨텐트(포인트 클라우드 및 메시)를 포함할 수 있다. 본 개시에서 별도의 설명이 없으면 XR 미디어, XR 미디어 컨텐트, XR 컨텐트, XR 서비스 등은 3D 컨텐트에 관한 것을 의미한다.
본 개시에서 "사용자의 장치"는 사용자 주변에 위치하며 사용자에게 XR 서비스를 제공하기 위해 데이터를 획득, 처리 또는 송수신하는 하나 이상의 장치를 의미한다.
본 개시에서 "XR 장치"는 디스플레이를 포함하며 사용자에게 디스플레이를 이용해 XR 컨텐트를 제공하는 장치를 의미한다. XR 장치의 디스플레이의 형태 및 속성은 다양하게 정해질 수 있다. 예를 들면, 디스플레이는 투명, 반투명 또는 불투명할 수 있고, 플렉서블(flexible) 디스플레이, 폴더블(foldable) 디스플레이 또는 리지드(rigid) 디스플레이일 수 있고, 디스플레이의 소자는 OLED(organic lighting emitting diodes), LED(lighting emitting diodes) 또는 LC(liquid crystal) 등일 수 있다. 물론, XR 장치의 디스플레이의 형태 및 속성은 상술한 것은 예시에 한정되지 않고 다양하게 정해질 수 있다. 또한, XR 장치는 사용자가 착용 가능한 웨어러블(wearable) 장치(예를 들면, HMD, XR 글라스 등)일 수 있다.
본 개시에서 "컴포넌트 장치"는 XR 서비스를 제공하기 위해 "렌더링(rendering)", "비전(vision)" 또는 "캡처링(capturing)" 기능 중에서 적어도 하나의 기능을 수행하는 장치를 의미한다. 컴포넌트 장치는 렌더링 장치, 비전 장치 및 캡처링 장치를 통칭하는 용어일 수 있다. 각 기능들에 대해서는 도 4에서 상세히 설명한다. 컴포넌트 장치는 독립적인 하나의 장치일 수 있고, 또는 다른 장치에 포함되는 장치 블록일 수도 있다.
컴포넌트 장치 간의 통신 및 컴포넌트 장치와 UE 간의 통신에 이용될 수 있는 통신 기술로서는 다양한 통신 기술들 중에서 어느 하나 이상이 이용될 수 있다. 예를 들면, Wi-Fi, Wi-Fi 다이렉트, D2D(device-to-device) 통신, 5G 사이드링크(sidelink), 블루투스, 테더링(tethering), 기타 근거리 통신 기술 등의 장치 간 통신 기술이 이용될 수 있다. 물론, 컴포넌트 장치 간의 통신 및 컴포넌트 장치와 UE 간의 통신에 이용될 수 있는 통신 기술은 상술한 예시에 제한되지 않고 다양하게 정해질 수 있다.
본 개시에서 "UE"는 네트워크를 통해 다른 사용자의 장치와 데이터를 송수신할 수 있는 네트워크 성능(예를 들면, 5G 모뎀 성능)을 가진 장치를 의미한다. 예를 들면, UE는 서버를 통해 다른 UE와 통신할 수 있고, 서버 또는 다른 UE와 통신하기 위한 통신 모듈 또는 통신 어플리케이션을 포함할 수 있다.
UE 간의 통신에 이용될 수 있는 통신 기술로서는 다양한 통신 기술들 중에서 어느 하나 이상이 이용될 수 있다. 예를 들면, UE는 LTE(Long Term Evolution), 5G 등과 같은 3GPP(3rd Generation Partnership Project) 규격의 통신 기술 또는 Wi-Fi 등의 통신 기술을 이용해서 다른 UE와 통신할 수 있다. 물론, UE 간의 통신에 이용될 수 있는 통신 기술은 상술한 예시에 제한되지 않고 다양하게 정해질 수 있다.
본 개시에서 "XR 장치", "컴포넌트 장치" 및 "UE"라는 장치 명칭은 사용자의 장치를 기능에 따라 논리적으로 분류하기 위해 사용되는 것이다. 따라서, 하나의 장치는 하나 이상의 장치 명칭에 따라 지칭될 수 있다. 예를 들면, 제1 장치가 디스플레이를 포함하며 제1 사용자에게 XR 컨텐트를 표시할 수 있고, 제2 사용자의 UE와 데이터를 송수신할 수 있으며, 내장 카메라를 통해 객체를 캡처할 수 있다면, 제1 장치는 상황에 따라서 XR 장치, 캡처링 장치(컴포넌트 장치) 또는 UE 중에서 어느 하나로 지칭될 수 있다.
본 개시에서 제안하는 3D XR 미디어 컨텐트를 제공하는 방법은 아래의 내용을 포함한다.
- XR 서비스를 위한 E2E(end to end) 흐름(flow) 및 아키텍처. XR 서비스를 위한 E2E(end to end) 흐름(flow) 및 아키텍처는, 여러 장치 간 서비스 전반에 걸친 미디어 프로세싱의 분배를 포함할 수 있고, 클라우드 내의 처리 엔티티(하나 이상의 클라우드 서버, 엣지 클라우드, MEC(mobile edge computing) 서버 등)들을 포함할 수 있음.
- XR 서비스를 위한 단말(terminal, 또는 user equipment: UE)의 기능 컴포넌트 아키텍처
- 복수의 장치들을 포함하는 구성(이하, 다중 장치 구성)을 지원하는 단말 아키텍처. 복수의 장치들은, 예를 들면, 유선 테더링(tethered 또는 tethering), 무선 테더링 또는 다른 유무선 네트워크에 의해 연결될 수 있음. 또한, 다중 장치 구성에는 독립형(standalone) 웨어러블 장치(예를 들면, HMD, XR 글라스 등)가 포함될 수 있음.
- 다양한 장치에서의 다양한 XR 서비스를 위한 단말 세션 설정 및 수립 절차
- XR 대화형 서비스의 사용 사례를 가능하게 하기 위한 필요 정보(예를 들면, 장치 자세 정보, 기준점, 장치의 기능 타입(예를 들면, 비전, 캡처 등) 및 미디어 속성(예를 들면, 객체 크기 등))
- 세션 설정을 결정하는 데 이용되는 단말 속성 및 성능(capabilities) 정의
- 서비스, 단말 성능 및 (단말 또는 서비스 관리 엔티티에 따른)요구사항(requirements)에 기초한, 클라우드 지원(cloud assistance) 여부 결정
다만, 상술한 내용들은 이해를 돕기 위한 것일 뿐이며 본 개시에서 제안하는 내용은 본 개시 전반에 걸쳐서 설명된다. 이하 본 개시에 첨부된 도면을 참조하여 본 개시의 방법 및 장치를 설명한다.
도 1a는 2D 비디오 스트리밍 및 2D 비디오 통화(call)를 설명하기 위한 도면이다.
도 1a를 참조하면, 2D 비디오 스트리밍(101)에서는 2D 비디오 컨텐트가 UE에게 직접 전송될 수 있다. 2D 비디오 통화(102)는 제1 UE를 사용하는 제1 사용자가 제2 UE를 사용하는 제2 사용자와 통화할 때, 제1 UE 및 제2 UE 각각의 2D 디스플레이에 제1 사용자 및/또는 제2 사용자의 이미지가 2D 비디오 이미지로서 표시되는 서비스이다. 2D 비디오 통화(102)에서는 각각의 UE의 디스플레이에 제1 UE의 제1 사용자의 2D 비디오 이미지 및 제2 UE의 제2 사용자의 2D 비디오 이미지가 단순히 서로 오버레이될 뿐 두 이미지는 서로 연관성을 갖지 않을 수 있다.
도 1b는 본 개시의 일 실시예에 따른 VR 컨텐트 제공 방법 및 AR 컨텐트 제공 방법을 설명하기 위한 도면이다.
도 1b를 참조하면, VR 컨텐트 제공 방법(103)에서는 UE의 시점(viewpoint)을 기초로 뷰포트(viewport)가 생성되고, 뷰포트를 기초로 VR 컨텐트가 생성될 수 있다. 뷰포트란 공간 영역을 표시하는 폴리곤을 의미하는 것으로서, 객체는 뷰포트 내에서 렌더링될 수 있다. 즉, VR 컨텐트 제공 방법(103)에서는 UE의 시점에 따라서 UE가 보고 있는 영역에 포함되는 객체만 VR 컨텐트로 생성될 수 있다. 생성된 VR 컨텐트는 UE의 디스플레이에 표시되거나 다른 UE로 전송될 수 있다.
AR 컨텐트 제공 방법(104)에서는 UE의 자세(pose)를 기초로 비전(vision) 정보가 생성되고, 비전 정보를 기초로 AR 컨텐트가 생성될 수 있다. 비전 정보란 UE 주변의 환경에 대한 정보이다. 즉, AR 컨텐트 제공 방법(104)에서는 제1 UE의 자세를 기초로 제1 UE 주변의 환경에 대해 제1 UE가 어느 위치에 어떤 방향으로 있는지에 대한 정보를 포함하는 비전 정보가 생성될 수 있고, 제1 UE의 이미지 또는 제1 UE 주변의 객체의 이미지를 제1 UE 주변의 환경을 고려하여 제2 UE에게 제공할 수 있다. 예를 들면, 제1 UE가 소파 위에 놓여 있는 경우, 제2 UE는 제1 UE가 소파 위에 또는 임의의 객체 위에 놓여 있는 이미지를 디스플레이할 수 있다. 즉, AR 컨텐트 제공 방법(104)에서는 비전 정보에 기초해 제1 UE의 환경에 존재하는 객체가 제2 UE의 디스플레이에서 어디에 표시될지(어디에 증강(augmented)될 지)가 결정될 수 있다.
2D 미디어 컨텐트의 사용 사례와 대조적으로, 본 개시는 XR 어플리케이션을 위한 360도 비디오 및 3D 미디어 관련 서비스가 가능하도록 하는 방법을 제공한다. 본 개시의 360도 비디오 및 3D 미디어 관련 서비스는 XR 대화형 서비스(conversational service)를 포함할 수 있다. XR 대화형 서비스는 XR 장치를 사용하는 사용자 간의 실시간 대화(예를 들면, 통화) 중에 미리 생성되었거나 실시간으로 생성되는 AR 객체 또는 VR 객체 등이 실시간으로 사용자에게 제공되는 서비스이다. XR 대화형 서비스에서는 VR 또는 AR 어플리케이션을 지원하기 위해 E2E(end-to-end) 흐름에서 추가적인 전/후 처리가 필요할 수 있다. 또한, 객체의 올바른 렌더링 및 표시를 위해서는 XR 대화형 서비스의 사용 사례에서 사용될 수 있는 장치의 구성 및 설정과 관련된 추가 정보가 필요할 수 있다.
예를 들면, 메타데이터 및 추가적인 전처리(pre-processing) 및 후처리(post-processing)의 요구사항은 다음의 요소에 따라 정해질 수 있다.
- 응용 프로그램 및 사용 사례(사용자 관점에서)
- 사용 사례에서 사용될 수 있는 다양한 장치들의 조합 및 폼 팩터들(form factors)(사용자 관점 및 시스템 관점 모두에서)
- 서비스 체인에서의 소정의 E2E 제한 또는 병목 현상(예를 들면, 네트워크 대역폭 또는 장치의 프로세싱/기능 제한)으로 인해 필요할 수 있는 미디어 조정
360도 비디오 및 3D 미디어를 통해 가능해지는 실시간 서비스(예를 들면, XR 대화식 서비스 등, 컨텐트가 실시간으로 캡처되고 처리되어서 네트워크 프로세싱 엔티티 또는 다른 사용자에게 실시간으로 전달되는 서비스)가 지원되기 위해서는, 메타데이터(예를 들면, 자세(pose), 카메라 타입 등)가 360도 비디오 및 3D 미디어의 처리 및 표시를 위해 필요할 수 있다. 또한, 장치, 서비스 및 네트워크의 요구사항이 모두 충족되도록, E2E 흐름 전체에서 메타데이터와 관련한 처리 단계가 최적화되어야 하는 필요성이 존재할 수 있다.
본 개시의 일 실시예에 따르면, XR 서비스를 위한 UE의 아키텍처가 정의된다. 본 개시의 UE 아키텍처에 의해서, 다양한 네트워크 성능 및 환경(예를 들면, 가변 네트워크 대역폭, MEC(Mobile Edge Computing)/클라우드 처리 성능 등) 하에서 다양한 요구사항(미디어 타입, 미디어 품질, 지연 시간)을 갖는 다양한 서비스(예를 들면, AR 대화형 서비스)가 다양한 장치 구성(또는, 설정) 및 다양한 성능(캡처, 비전, 렌더링, 표시 및 프로세싱 성능, 프로세싱 속도/전력)에 걸쳐서 가능해질 수 있다.
도 2a는 본 개시의 일 실시예에 따른, 제1 UE가 제2 UE에게 3D XR 미디어 컨텐트를 제공하거나 제2 UE로부터 3D XR 미디어 컨텐트를 제공받는 방법을 설명하기 위한 도면이다.
도 2a를 참조하면, UE와 관련된 정보에는 UE의 주변 환경을 나타내는 비전 정보 및 UE의 주변 환경에 포함된 XR 개체에 대한 정보가 있다. 제2 UE가 제1 UE의 주변 환경에 포함된 제1 XR 개체를 3D XR 미디어 컨텐트로서 제2 UE의 사용자에게 제공하기 위해서는 제1 XR 개체에 대한 정보 및 제1 UE의 주변 환경에 대한 제1 비전 정보가 필요할 수 있다. 제1 비전 정보는 제2 UE가 제1 XR 개체를 어디에 표시할지를 결정하는 데에 사용될 수 있다.
본 개시의 일 실시예에 따른 3D XR 컨텐트 제공 방법(201)에 따르면, 제2 UE가 제1 XR 개체 및 제1 비전 정보를 획득하고 제1 XR 개체를 표시할 수 있도록, 제1 UE는 제2 UE에게 제1 UE의 제1 공간 세트(space set) 정보를 제공할 수 있다. 공간 세트 정보는 제1 UE 주변의 공간에 대한 정보로서, 제2 UE는 제1 공간 세트 정보를 이용해 제1 UE 주변의 환경을 인식하고 제1 XR 개체를 표시할 수 있다. 또한, 제2 UE는 제2 UE의 제2 공간 세트 정보를 더 사용하여 제2 UE의 주변 환경 및 제1 UE의 주변 환경을 모두 고려하여 제1 XR 개체를 표시할 수도 있다. 마찬가지로, 제1 UE는 제2 UE로부터 제2 공간 세트 정보를 전달받고, 제2 비전 정보를 기초로 제2 XR 개체를 표시할 수 있다. 또는, 비전 정보의 일부 또는 전체는 각 UE 간 공유되지 않을 수 있고, 각 UE는 전달받은 공간 세트 정보에 기초해 XR 개체를 표시할 수도 있다. 공간 세트 정보에 대해서는 이하 도 6에서 자세히 설명한다.
도 2b는 본 개시의 일 실시예에 따른, 제1 사용자(211)가 제2 사용자(221)와 XR 미디어 컨텐트를 공유하는 방법을 설명하기 위한 도면이다. 물론, 도 2b를 참조하여 설명한 실시예는 일 예일 뿐이며, 본 개시의 3D XR 미디어 컨텐트를 제공하는 방법은 도 2b에 한정되지 않는다. 도 2b에서는 XR 글라스를 XR 장치의 일 예로 들어 설명한다. XR 글라스는 투명, 반투명 또는 불투명할 수 있다. 불투명한 경우를 제외하면, XR 글라스의 사용자는 사용자의 시야에 실제로 존재하는 물체들은 렌즈를 그대로 볼 수 있고, XR 글라스가 표시하는 3D 미디어 객체를 추가적으로 볼 수 있다.
도 2b의 202를 참조하면, 제1 사용자(211)와 제2 사용자(221) 간의 XR 통화(또는, AR 통화) 상황이 도시된다. XR 통화는 제1 UE(214) 및 제2 UE(222) 간의 통화 요청 및 응답에 의해 개시될 수 있다. 제1 사용자(211)는 제1 XR 글라스(212)를 통해서 제2 사용자(221)를 나타내는 3D 비디오 객체(215) 및 공유된 객체(216)를 볼 수 있고, 제2 사용자(221)는 제2 XR 글라스(또는, 제2 UE)(222)를 통해서 제1 사용자(211)를 나타내는 3D 비디오 객체(225) 및 공유된 객체(226)를 볼 수 있다.
제1 사용자(211)의 주변에는 XR 서비스를 위한 장치로서 제1 XR 글라스(212), 제1 카메라(213) 및 제1 UE(214)가 존재할 수 있다. 제1 XR 글라스(212)는 XR 개체를 렌더링하여 제1 XR 글라스(212)의 디스플레이에 표시할 수 있다. 또한, 제1 XR 글라스(2120)는, 비전 카메라를 포함할 수 있고, 비전 카메라를 이용해 제1 사용자(211)의 주변 환경을 촬영할 수 있다. 제1 카메라(213)는 제1 사용자(211)를 실시간으로 촬영할 수 있고, 제2 사용자(221)에게 제1 사용자(211)의 실시간 3D 이미지를 전송하는 데에 이용될 수 있다. 제1 UE(214)는 제2 UE(222)와의 XR 통화를 제어할 수 있고, 제2 UE(222)로부터 데이터를 수신하고 처리하여 제1 XR 글라스(212)에게 전달할 수 있으며 제1 XR 글라스(212) 및 제1 카메라(213)로부터 촬영된 이미지를 전달받고 처리하여 제2 UE(222)에게 전달할 수 있다. 마찬가지로, 제2 사용자(221)의 주변에는 XR 서비스를 위한 정치로서 제2 XR 글라스(또는, 제2 UE)(222) 및 제2 카메라(223)가 존재할 수 있다. 제1 사용자(211) 주변의 장치 구성과의 차이점은, 제2 XR 글라스(222)가 제1 UE(214)와 데이터를 송수신하고 여러 가지 데이터를 관리 및 처리할 수 있는 제2 UE이기도 하다는 점이다.
공유된 객체(216, 226)는 제1 사용자(211) 또는 제2 사용자(221)의 주변에 실제로 존재하는 객체일 수 있고, 제1 사용자(211) 또는 제2 사용자(221)가 가상으로 생성해 공유한 객체일 수도 있다. 또한, 공유된 객체(216)에 대한 제1 사용자(211) 또는 제2 사용자(221)의 조작(또는, 상호작용)이 가능할 수 있다. 예를 들면, 제2 사용자(221)가 제2 XR 글라스(또는, 제2 UE)(222)에 디스플레이된 공유된 객체(226)를 움직이거나 회전시킬 수 있고, 그에 따라 제1 사용자(211)의 제1 XR 글라스(212)의 디스플레이에서도 공유된 객체(216)가 움직이거나 회전될 수 있다.
도 2b의 202 및 203에 도시된 XR 통화 상황에서는 다음과 같은 특성이 존재할 수 있다. 다음과 같은 특성 중에서 적어도 일부의 특성은 도 1a의 2D 비디오 통화의 특성과 상이할 수 있다.
- 두 사용자 간에 하나 이상의 3D 미디어 개체가 전달(및/또는 공유)될 수 있다. 개체들은 실시간 캡처되거나 또는 AR 통화 전에 미리 캡처될 수 있다.
- 사용자는 XR 장치를 사용하여 3D 미디어 객체를 볼 수 있다.
- XR 장치에서 렌더링될 때, 3D 미디어 객체들은 사용자의 환경 또는 배경에 사실적으로 증강될(augmented) 수 있다.
- 사용자의 환경에서 사용자에 의한 3D 미디어 객체의 회전 및 배치와 같은 사용자 상호 작용(user interaction)이 가능하다.
- 3D 미디어 객체는 사전 제작되어서 통화중인 사용자 간에 공유되거나(예를 들면, 공유된 객체(216)의 경우) 또는 실시간 라이브 방식으로 캡처되고 전달될 수 있다(예를 들면, 제1 사용자(211)/제2 사용자(221)를 나타내는 3D 비디오 객체의 경우)
- 사용자의 UE는 프로세싱 역할과 성능이 서로 다른 하나 이상의 하드웨어 장치로 구성되거나 하나 이상의 하드웨어 장치와 연결될 수 있다. 예를 들면, 하나 이상의 하드웨어 장치는 캡처링 카메라, 비전 카메라, 렌더링 XR 글라스, 소정의 프로세싱을 수행하고 5G 성능을 갖는 모바일 장치 등을 포함할 수 있다.
- 하나 이상의 하드웨어 장치는 사용자의 환경에서 서로 다른 위치에 있을 수 있으며, 장치의 위치는 정적이거나 동적일 수 있다.
- 서비스에 필요한 미디어 프로세싱은 E2E(end-to-end) 흐름 내의 다른 장치 및 엔티티(예를 들면, 클라우드 및 MEC 서버 등) 간에 분산될 수 있다.
본 개시의 일 실시예에 따르면, 3D 미디어 객체를 사용자의 환경에 증강하여 표시하기 위해서, XR 글라스, UE 및 카메라는 서로 정보를 송수신할 수 있다. 제2 UE는 제2 사용자(221)에 대한 정보 및 제2 공간 세트를 생성하기 위한 정보 및 제2 공간 세트 내에 존재하는 객체(예를 들면, 제2 사용자(221))에 대한 정보를 제2 카메라를 이용해서 획득할 수 있다. 제1 UE는 제2 UE로부터 제2 UE 주변의 제2 공간 세트에 대한 정보 및 제2 사용자(221)에 대한 정보를 수신할 수 있다. 제1 UE는 제2 UE로부터 수신된 정보를 가공하거나 가공하지 않은 채로 제1 XR 글라스(212)에게 전달할 수 있다. 제1 XR 글라스(212)는 전달받은 정보를 기초로 디스플레이를 이용해 제2 사용자(221)의 3D 미디어 객체 및 공유된 객체(216)를 제1 사용자(211)의 환경에 증강하여 표시할 수 있다. 제1 XR 글라스(212)가 3D 미디어 객체를 증강하여 표시하는 데는 제1 카메라로부터 획득된 제1 사용자(211) 주변에 관한 정보가 더 사용될 수 있다. 마찬가지의 방식을 통해서 제2 XR 기기는 제1 사용자(211) 및 공유된 객체(216)를 제2 사용자(221)의 환경에 증강하여 표시할 수 있다.
도 2의 203은 제1 XR 글라스(212)를 착용한 제1 사용자(211)의 시야를 나타낸다. 제1 XR 글라스(212)의 디스플레이에는 공유된 객체(216)인 책상 및 제2 사용자(221)를 나타내는 3D 비디오 객체(215)가 표시된다. 또한, XR 통화는 세 명의 사용자 이상 간에도 가능할 수 있다. 예를 들면, 도 2의 203에서는 제1 사용자(211)를 포함하여 총 5명의 사용자가 XR 통화에 참여하며, 제1 XR 글라스(212)에는 제2 사용자(221), 제3 사용자 및 제4 사용자가 표시된다. 공유된 객체(216)인 책상 및 제5 사용자(217)는 제1 사용자(211)의 주변에 실제로 존재하므로, 제1 XR 글라스(212)의 투명 또는 반투명 디스플레이에 별도로 표시되지 않고 제1 사용자(211)에게 그대로 보일 수 있다.
이하, 도 3 내지 도 11을 참조하여, 도 2b에서 설명한 XR 통화 등 다양한 3D XR 서비스를 제공하기 위한 본 개시의 3D XR 미디어 컨텐트 제공 방법을 설명한다. 도 3에서는 XR 서비스를 제공하기 위한 미디어 흐름을 설명하고, 도 4에서는 XR 서비스를 제공하는 데에 이용되는 다양한 장치 구성을 설명한다. 도 5에서는 XR 서비스 제공을 위한 XR 서비스 세션 수립 절차를 설명하고, 도 6에서는 XR 서비스 제공을 위해 이용되는 사용자 공간 세트 및 사용자 공간 세트 파라미터를 설명한다. 도 7에서는 XR 서비스 세션에서의 메타데이터 및 미디어 데이터의 흐름을 설명하고, 도 8에서는 XR 서비스 제공을 위한 UE의 XR 미디어 아키텍처를 설명하고, 도 9에서는 XR 서비스 제공 방법을 흐름도를 통해 설명한다. 도 10 및 도 11은 XR 서비스를 제공하기 위한 장치의 구성을 설명한다.
도 3은 본 개시의 일 실시예에 따른, 제1 사용자의 환경에 존재하는 객체(이하, 제1 객체)가 3D 미디어 객체로서 제2 사용자에게 제공되는 XR 서비스 흐름을 설명하기 위한 도면이다.
도 3을 참조하면, 제1 객체는 3D 미디어 프로세스들(300)을 거쳐서 제2 사용자에게 제공될 수 있다. 3D 미디어 프로세스들(300)은 제1 UE를 포함하는 제1 사용자의 장치 및 제2 UE를 포함하는 제2 사용자의 장치에 의해서 수행될 수 있고, 일부의 프로세스는 클라우드 또는 MEC 서버에 의해 수행될 수도 있다. 예를 들면, 캡처링(310)은 제1 사용자의 장치에 의해 수행될 수 있고, 3D 모델링(320), XR 인코딩(330) 또는 XR 포맷팅(340) 중에서 적어도 일부의 프로세스는 제1 사용자의 장치에 의해 수행되거나 클라우드 또는 MEC 서버에 의해 수행될 수 있다. XR 디코딩(360) 또는 XR 렌더링(370) 중에서 적어도 하나의 프로세스는 제2 사용자의 장치에 의해 수행되거나 클라우드 또는 MEC 서버에 의해 수행될 수 있다. 따라서, 엔티티 간 서비스 프로세싱 분배, 즉, 3D 미디어 프로세스들(300) 중에서 어떤 프로세스를 누가 수행할지를 분배하기 위해 XR 서비스 세션의 관리가 필요할 수 있다. 예를 들면, 컴포넌트 장치의 성능, UE의 성능 또는 XR 장치의 성능 중에서 적어도 하나에 기초해서, UE는 3D 미디어 프로세스들(300) 중에서 적어도 일부의 프로세스는 클라우드 또는 MEC 서버에게 프로세싱을 요청(즉, 클라우드-지원 프로세싱 요청)하기로 결정할 수 있다. 또한, 클라우드 또는 MEC 서버가 UE로부터 장치 성능 보고를 수신하고, 컴포넌트 장치의 성능, UE의 성능 또는 XR 장치의 성능 중에서 적어도 하나에 기초해서 적어도 일부의 프로세스에 대한 클라우드-지원 프로세싱 여부를 결정할 수도 있다. 사용자의 장치의 성능을 평가하기 위한 기준은 장치의 저장용량, 초당 처리 가능한 오퍼레이션의 개수, 처리장치의 클록 수 또는 특정 프로세싱에 특화된 하드웨어 장비의 포함 여부 등을 포함할 수 있다. 물론, 사용자의 장치의 성능을 평가하기 위한 기준은 상술한 예시에 한정되지 않고 다양하게 정해질 수 있다.
3D 미디어 프로세스들(300)의 세부 단계의 예시는 다음과 같다.
- 캡처링(또는, 캡처)(310): 하나 이상의 카메라로 컨텐트(예를 들면, 서비스 응용 프로그램에 따라, 장면(scene), 객체(object) 또는 둘의 조합 등)를 실시간으로 캡처하는 단계. 하나 이상의 카메라에는 R, G, B 카메라(2D 비디오를 출력)뿐만 아니라 3D 모델링에 필요한 데이터(예를 들면, 깊이(depth) 맵)를 캡처하는 데 사용될 수 있는 깊이(depth) 속성 및 반사율(reflectance) 등 다른 속성을 캡처할 수 있는 카메라도 포함될 수 있다. 물론, 카메라가 캡처 가능한 속성은 상술한 예시에 한정되지 않고 다양한 속성을 포함할 수 있다. 또한, 캡처된 데이터의 프로세싱을 위해서는 카메라에 의해 캡처된 데이터 외에, 캡처 시 획득될 수 있는 다른 데이터(예를 들면, 카메라의 고유 파라미터 및 외부 파라미터)가 필요할 수도 있다.
- 3D 모델링(320): 캡처링(310) 단계에서 출력된 데이터는, 컨텐트를 3D 모델 데이터 비트 스트림의 형태로 생성하고 출력하기 위해 3D 모델링을 수행하는 데 사용될 수 있다. PLY(polygon file format) 데이터 등의 3D 모델 데이터 비트 스트림은, 3D 미디어 데이터를 포인트 클라우드 또는 메시의 형태로 나타낼 수 있다. 예를 들면, 캡처링 단계에서 출력된 데이터는 다음과 같이 PLY 데이터로 프로세싱될 수 있다.
> 다중 RGB + depth -> 하나의 객체를 나타내는 하나의 PLY
> 다중 RGB + depth -> 복수의 PLY들(복수의 부분 객체들) -> 하나의 객체를 나타내는 하나의 PLY
- XR 인코딩(330): 3D 모델링(320) 단계의 출력은, 대량의 미가공 데이터(raw data)를 압축하기 위해 인코딩될 수 있다. 포인트 클라우드 인코딩 또는 메시 인코딩은 다양한 인코딩 기술(예를 들면, MPEG V-PCC(video based point cloud compression) 또는 Google Draco 등)을 사용하여 수행될 수 있다. 인코딩은 손실(lossy) 인코딩이거나 또는 비손실(lossless) 인코딩일 수 있다. 압축된 데이터의 디코딩을 지원하기 위해서는, XR 인코딩 단계에서 사용된 인코더에 상응하는 디코더가 사용되어야 할 수 있다.
- XR 포맷팅(formatting)(또는, 포맷)(340): 데이터를 5G 등의 네트워크를 통해 전달하려면, XR 인코딩(330) 과정에서 출력된 압축된 데이터는 포맷 및/또는 캡슐화(encapsulate)되어야 할 수 있다. 예를 들면, 포맷 기술로서는 파일 캡슐화를 위한 MPEG(moving picture experts group) ISOBMFF(ISO base file format), MMTP(MPEG media transport protocol)와 같은 다른 페이로드(payload) 포맷 또는 데이터의 전달 전 준비를 위한 RTP(real-time transport protocol) 페이로드 포맷 등이 사용될 수 있다.
- 전달(delivery)(350): 압축 및 포맷된 미디어는 5G 네트워크 등을 통해 HTTP(hypertext transfer protocol), RTP, MPEG DASH(dynamic adaptive streaming over HTTP), 또는 MPEG MMT(MPEG media transport)의 전달 메커니즘 또는 다른 전달 메커니즘을 사용하여 제2 UE에게 전달될 수 있다.
- XR 디코딩(360): 압축된 데이터는 XR 디코딩 엔티티에 의해 수신될 수 있고, XR 디코딩 엔티티는 압축된 비트스트림을 디캡슐화(decapsulate)하고 디코딩해서 압축 전의 PLY 비트스트림을 복구할 수 있다.
- XR 렌더링(370): XR 디코딩(360) 후, 3D 데이터 비트 스트림은 렌더러(renderer)로 전달될 수 있다. 렌더러는 3D 데이터의 2D 뷰포트(viewport)를, 제1 UE로부터 수신된 제1 사용자 또는 제1 UE의 의도 또는 제2 UE의 제2 사용자의 자세 정보(예를 들면, 사용자 오프셋 위치, 포즈, 방향, 뷰 절두체(view frustum), 뷰포트(viewport))에 따라 렌더링할 수 있다. 제1 사용자 또는 제1 UE의 의도는, 예를 들면, 일부 메타데이터를 통해서 제2 UE에게 전달될 수 있다.
도 3에 도시된 3D 미디어 프로세스들(300)은 XR 3D 서비스 흐름의 일 예시일 뿐이며, 3D 미디어 프로세스들(300)과 다소 상이한 미디어 프로세스들을 통해서 3D 미디어가 제공될 수도 있다. 또한, 제1 UE 및 제2 UE는 각각 하나 이상의 컴포넌트 장치를 포함하거나 하나 이상의 컴포넌트 장치와 연결될 수 있다. 예를 들면, 하나 이상의 컴포넌트 장치는 블루투스, Wi-Fi 다이렉트, 5G 사이드링크(sidelink) 또는 기타 통신 기술을 사용하여 제1 UE 또는 제2 UE와 연결되거나 테더링될 수 있다.
도 4는 본 개시의 일 실시예에 따른, 3D XR 미디어를 제공하는 데에 사용될 수 있는 다양한 장치 구성에 대해 설명하기 위한 도면이다.
장치 구성을 설명하기 전에, 먼저 본 개시의 일 실시예에 따른 각 장치의 표현 방식(syntax)을 설명한다. 각 장치는 다음과 같은 표현 방식(syntax) 또는 식별자(identifier)를 사용하여 설명될 수 있다.
- UE ID, 장치 설명, 및 장치 기능 유형 설명 (UEx:devicedescription:devicefunctionalitytypedescription)
여기에서, 각 장치는 해당 장치가 다른 사용자의 장치와 데이터를 송수신할 수 있는 네트워크 성능(이하, 데이터 네트워크 성능)을 가지는 경우 해당 장치 고유의 UE ID를 가질 수 있고, 그렇지 않은 경우에는 해당 장치의 표현 방식에는 해당 장치와 유선 또는 무선 연결된 장치 중에서 데이터 네트워크 성능을 가지는 다른 장치의 UE ID가 포함될 수 있다. 예를 들면, 도 4의 제1 장치 구성(401)에서는 모바일 폰만 데이터 네트워크 성능을 가지므로, 사용자 주변의 모든 장치의 UE ID는 모바일 폰의 UE ID인 "UE1"이다. 반면, 제3 장치 구성(403)에서는 XR 글라스, 제3 카메라 및 모바일 폰이 각각 데이터 네트워크 성능을 가지므로, 각각 UE ID로서 "UE1", "UE2" 및 "UE3"를 가질 수 있다. 본 개시의 일 실시예에 따르면, 5G 시스템에 접속할 수 있는 UE의 경우에는 상기 UE ID로서 SUPI(subscription permanent identifier), PEI(permanent equipment identifier) 또는 5G-GUTI (5G global unique temporary identifier) 중 적어도 하나가 사용될 수 있다. 또한, 별도의 알고리즘으로 생성된 UE ID와 SUPI, PEI 또는 5G-GUTI 간의 상관 관계가 소정의 알고리즘에 따라서 결정될 수 있고, UE는 상술한 상관 관계를 제공받을 수 있다. 상술한 상관 관계는, 예를 들면, UE 또는 서버에 의해 결정될 수 있고, UE 또는 서버에게 제공될 수 있다.
본 개시의 일 실시예에 따르면 장치에 해당하는 "장치 기능 유형 설명"은 장치 구성에서의 역할에 기초하여 분류될 수 있으며 다음과 같이 정의될 수 있다
- 렌더링(rendering): 렌더링 기능 유형에 해당하는 장치는 디스플레이에 XR 객체를 렌더링할 수 있다. 렌더링 장치는 XR 렌더링과 관련된 기능 처리를 위한 필요 정보 및/또는 메타데이터를 이용해 XR 객체를 렌더링할 수 있다. 렌더링과 관련된 기능 처리는, 예를 들면, 2D/3D 미디어 디코딩, 사후 처리(post-processing), 표시(presentation) 및 2D/3D 디스플레이로의 렌더링이 포함될 수 있다. XR 렌더링을 위한 필요 정보는 미디어 데이터뿐만 아니라 렌더링 장치 자체의 자세 정보도 포함될 수 있다.
- 비전(vision): 비전 기능 유형에 해당하는 장치는 XR 서비스를 위한 2D 또는 3D 미디어의 정확한 렌더링을 가능하게 하기 위해 사용자의 주변 환경에 대한 정보(즉, 비전 정보)를 획득 및 제공할 수 있다. 예를 들면, 비전 장치는 사용자의 주변 환경이 인식되고 분석될 수 있도록, RGB 카메라 또는 기타 카메라를 이용하여 SLAM(simultaneous localization and mapping) 등의 컴퓨터 비전 프로세싱을 위한 필수적인 입력 데이터를 획득할 수 있다. XR 환경을 사용자의 환경에 현실적으로 오버레이하려면 3D 미디어 객체뿐만 아니라 사용자의 주변 환경에 대한 정확한 분석이 필요할 수 있다. 오버레이가 현실적으로 표현되는 사용 사례는, 예를 들면, 3D 미디어 포인트 클라우드 개(dog)(3D 미디어 객체)를 바닥(사용자의 주변 환경)의 표면에 놓거나 또는 사용자의 거실 소파(사용자의 주변 환경) 위에 놓는 것 등이 있을 수 있다.
- 캡처링(capturing): 캡처링 기능 유형에 해당하는 장치는 사용자의 환경에서 3D 개체를 캡처하기 위한 필수 입력 데이터(예를 들면, 사용자의 머리(head), 몸(body) 또는 다른 객체의 3D 모델)를 획득 및 제공할 수 있다.
도 4를 참조하면, XR 장치를 이용해 사용자에게 3D 미디어 컨텐트를 제공할 수 있는 세 가지 예시적인 장치 구성이 도시된다. 도시된 여러 가지 장치들의 서로에 대한 상대적 위치는 정적이거나 동적일 수 있다.
도 4를 참조하면, 제1 장치 구성(401)에서는 테더링된(tethered) XR 글라스, XR 글라스에 포함된 제1 카메라 및 3 개의 외부 카메라가 존재한다. 비전 카메라인 UE1:camera1:vision 은 XR 글라스(렌더링 장치)상에 위치하거나 또는 XR 글라스의 내부에 위치할 수 있다. 캡처링 카메라인 UE1:camera3:capturing, UE1:camera4:capturing 및 UE1:camera5:capturing 은 XR 글라스의 외부에 위치하여 사용자 주변의 객체를 캡처할 수 있다. 데이터 네트워크 성능을 가진 모바일 폰은 XR 글라스에 유선으로 연결되거나 또는 무선 통신 방식(예를 들면, 블루투스, 테더링 등)에 따라서 연결될 수 있다. 또한, 모바일 폰은 모바일 폰의 디스플레이에 XR 개체를 렌더링할 수 있고(따라서, "UE1:phone:rendering"으로서 식별될 수 있음), 모바일 폰의 카메라를 통해서 모바일 폰 주변의 객체를 캡처할 수도 있다(따라서, "UE1:camera2:capturing" 으로서 식별될 수 있음).
제2 장치 구성(402)에서는 독립형(standalone) XR 글라스, XR 글라스에 포함된 제1 카메라, 도킹 가능한 제2 카메라 및 외부 카메라가 존재한다. 독립형 XR 글라스는 제1 장치 구성(401)의 경우와 달리 데이터 네트워크 성능을 가져서 별도의 모바일 폰 없이 다른 사용자의 장치와 데이터를 송수신할 수 있다는 의미에서 독립형이라고 지칭된다. 도킹 가능한 제2 카메라는 XR 글라스로부터 탈부착될 수 있는 카메라이다. 즉, 제1 카메라는 XR 글라스에 일부 구성요소로서 부착되거나 포함되어 있는 반면, 제2 카메라는 XR 글라스에 부착될 수도 있고 XR 글라스로부터 탈착되어서 다른 위치에 존재할 수도 있다. 제1 카메라는 비전 기능을 수행할 수 있으며, 제2 카메라는 비전 기능 및 캡처링 기능을 모두 수행할 수 있다.
제3 장치 구성(403)에서는 독립형 XR 글라스, 2 대의 외부 카메라 및 모바일 폰이 존재한다. 제3 장치 구성(403)에서는 데이터 네트워크 성능을 가지는 복수의 장치들(XR 글라스, 제3 카메라 및 모바일 폰)이 존재한다. 따라서, 데이터 네트워크 성능을 가지는 각각의 장치들은 다른 장치들을 통하거나 통하지 않고 XR 서비스와 관련된 데이터를 대상 목적지(destination)(예를 들면, 다른 사용자의 장치 또는 서버)로 직접 전송할 수 있다.
한편, 도 4는 다양한 장치 구성의 3 개의 예시들을 나타낼 뿐이며, 본 개시는 도 4의 예시들에 한정되지 않고 다양한 장치 구성을 포함할 수 있다. 예를 들면, 각각의 장치가 데이터 네트워크 성능을 갖는지 여부는 다양하게 정해질 수 있다. 제1 장치가 데이터 네트워크 성능을 갖더라도 제1 장치는 데이터 네트워크 성능을 갖는 제2 장치에게 데이터를 전송할 수 있고, 제2 장치는 수신된 데이터를 처리하여 서버 또는 다른 장치로 전송할 수 있다. 또한, 장치 구성에 포함될 수 있는 장치의 개수는 도 4에 한정되지 않고 다양하게 정해질 수 있다. 각 장치들이 어떠한 기능(캡처링, 비전 및 렌더링)을 가지는지 또한 다양하게 정해질 수 있다.
도 5는 본 개시의 일 실시예에 따른, XR 서비스 세션이 수립되고 XR 서비스가 제공되는 절차를 설명하기 위한 도면이다.
도 5를 참조하면, UE는 UE의 사용자의 환경에 속한 하나 이상의 컴포넌트 장치 및 XR 서비스 제공자와 통신할 수 있다. UE, 컴포넌트 장치 및 XR 서비스 자공자 간의 통신에 기초해서, XR 서비스 세션이 수립될 수 있다. UE의 사용자는 수립된 XR 서비스 세션을 이용해서 다른 UE의 사용자와 XR 3D 미디어 컨텐트를 실시간으로 송수 도는 수신할 수 있다. XR 서비스 제공자는 적어도 하나의 서버를 포함할 수 있으며, UE에게 XR 서비스 관련 데이터 또는 메타데이터를 전송할 수 있다. 예를 들면, XR 서비스 제공자는 클라우드, MEC 서버 등을 포함할 수 있다.
501 단계에서, 컴포넌트 장치는 컴포넌트 장치의 장치 설명을 초기 성능 보고(initial capability report)로서 UE에게 전송할 수 있다. 컴포넌트 장치는, 예를 들면, AR 글라스, 카메라 등을 포함할 수 있다. 초기 성능 보고는 컴포넌트 장치가 UE에 처음 설치/연결될 때 UE에게 전송될 수 있다.
502 단계에서, UE는 XR 서비스 제공자에게 XR 서비스 리스트를 요청할 수 있다. 예를 들면, XR 서비스 리스트 요청은 UE의 사용자가 UE를 통해 다른 사용자에게 XR 통화를 요청하거나 다른 사용자로부터 XR 통화 요청을 수신할 때 개시될(initiated) 수 있다. UE는 XR 서비스가 장치 성능 또는 네트워크 성능에 따라 객체 또는 장면에 대해 하나 이상의 표현(representation)을 제공할 수 있다고 가정할 수 있다.
503 단계에서, XR 서비스 제공자는 응답으로서 UE에게 XR 서비스 리스트를 제공할 수 있다. XR 서비스 리스트는 각 XR 서비스의 성능 요구사항을 포함할 수 있다. XR 서비스 리스트에 포함될 수 있는 XR 서비스는 다양하게 정해질 수 있다. 예를 들면, XR 서비스는 XR 회의, AR 회의, 영상 통화 등일 수 있다. 또한, XR 서비스는 동일한 종류의 서비스(예를 들면, XR 통화)에 대해 서로 상이한 성능 요구사항을 갖는 복수의 서비스들(예를 들면, 고성능 XR 통화 서비스 및 저성능 XR 통화 서비스)을 포함할 수 있다. 또한, 소정의 XR 서비스에 대해서는 XR 서비스 제공자가 프로세싱 성능이 충분하지 않은 UE를 지원하기 위해 네트워크 미디어 프로세싱을 수행할 수 있다. 예를 들면, XR 서비스 제공자는 XR 미디어 데이터의 인코딩 또는 디코딩 등의 프로세싱을 UE 대신 처리하고 처리된 데이터를 UE에게 전송할 수 있다. XR 서비스 리스트에는 각 XR 서비스별 네트워크 지원 미디어 프로세싱 가능 여부 또는 필요 여부에 대한 정보가 포함될 수도 있다.
504 단계에서, UE는 컴포넌트 장치에게 장치 상태(status) 보고를 요청할 수 있다.
505 단계에서, 컴포넌트 장치는 UE에게 장치 상태 보고를 전송할 수 있다. 예를 들면, 장치 상태 보고는 다음과 같은 장치의 상태 정보 또는 장치의 성능 정보를 포함할 수 있다.
- 장치의 물리적 위치 및 방향(facing direction)(예를 들면, 카메라 자세)
- 장치의 하드웨어 성능(예를 들면, 카메라의 경우, RGB 해상도, 깊이 해상도, FOV (Field of View); XR 글라스의 경우, 인코더 및 디코더 기능, 3D 모델링 기능, 디스플레이 해상도, 디스플레이 FOV 등)
506 단계에서, UE는 502 단계에서 수신된 초기 성능 보고, 503 단계에서 수신된 XR 서비스 리스트 및 505 단계에서 수신된 장치 상태 보고에 기초해서 XR 서비스 리스트 중에서 적어도 하나의 XR 서비스를 선택할 수 있다. UE는 505 단계에서 수신된 하나 이상의 컴포넌트 장치의 장치 상태 보고를 취합하고, 컴포넌트 장치의 상태 또는 성능에 매칭되는 성능 요구사항을 갖는 XR 서비스를 XR 서비스 리스트에서 선택할 수 있다.
507 단계에서, UE는 502 단계에서 수신된 초기 성능 보고 및 505 단계에서 수신된 장치 상태 보고에 기초해, 선택된 XR 서비스에 관련된 장치의 성능 정보 및 상태 정보를 결정하고, 결정된 장치의 성능 정보 및 상태 정보를 장치 성능 보고로서 XR 서비스 제공자에게 전송할 수 있다. 장치 성능 보고에는 카메라 정보, 장치의 처리 성능, 장치의 위치 및 방향 정보 등이 포함될 수 있다. 본 개시의 일 실시예에 따르면, 장치 성능 보고에는 사용자 공간 세트 파라미터가 포함될 수 있다. UE는 502 단계에서 수신된 초기 성능 보고 및 505 단계에서 수신된 장치 상태 보고에 기초해 사용자 공간 세트 파라미터를 결정할 수 있다. 사용자 공간 세트 파라미터의 표현 방식(syntax) 및 의미(semantics)는 도 6을 참조하여 상세히 설명한다. 또한, UE는 컴포넌트 장치의 성능, UE의 성능 또는 XR 장치의 성능 중에서 적어도 하나에 기초해서, 선택된 XR 서비스에 관련된 3D 미디어 프로세스들 중에서 적어도 일부의 프로세스는 XR 서비스 제공자에게 프로세싱을 요청(즉, 네트워크-지원 프로세싱 요청)하기로 결정할 수 있다. 본 개시의 일 실시예에 따르면, 장치 성능 보고에는 선택된 XR 서비스에 관련된 3D 미디어 프로세스들 중에서 적어도 일부의 프로세스에 대한 네트워크-지원 프로세싱을 요청하는 정보가 포함될 수 있다.
508 단계에서, XR 서비스 제공자는 장치 설정 정보 및 서비스 진입점(entry point)(예를 들면, DASH 미디어 프리젠테이션 설명 형태의 매니페스트(manifest) 등)을 UE에게 제공할 수 있다. 장치 설정 정보는 선택된 XR 서비스와 관련된, 장치의 동작 관련 설정 정보(예를 들면, 디스플레이 해상도, 업링크 미디어 프로파일, 필요한 메타데이터 등)를 포함할 수 있다. 서비스 진입점은 UE가 선택된 XR 서비스를 제공받기 위해 접속할 수 있는 데이터 네트워크의 식별 정보(예를 들면, 주소)를 포함할 수 있다. 또한, XR 서비스 제공자는 507 단계에서 수신된 장치 성능 보고 내의 UE의 요청 또는 사용자의 장치의 성능(컴포넌트 장치의 성능, UE의 성능 또는 XR 장치의 성능 등)에 기초해, 선택된 XR 서비스와 관련된 3D 미디어 프로세스들 중에서 적어도 일부의 프로세스를 XR 서비스 제공자가 수행하기로 결정할 수 있다. 본 개시의 일 실시예에 따르면, XR 서비스 제공자는 3D 미디어 프로세서들 중에서 어떠한 프로세스를 네트워크가 지원할 것인지에 대한 정보를 508 단계에서 UE에게 전달할 수 있다.
509 단계에서, UE는 장치 설정 정보를 각 컴포넌트 장치에게 전송할 수 있다.
510 단계에서, 각각의 컴포넌트 장치는 UE에게 설정 확인 응답(acknowledgement: ACK)을 UE에게 전송할 수 있다. 설정 확인 응답은 컴포넌트 장치가 수신된 장치 설정 정보에 따라서 컴포넌트 장치를 설정하였다는 응답 내용 또는 설정할 수 있다는 응답 내용을 포함할 수 있다. 또한, 컴포넌트 장치는 UE에게 선택된 XR 서비스의 세션에 대해 요구되는 미디어 데이터 및 메타데이터를 전송할 수 있다.
511 단계에서, UE는 508 단계에서 수신된 서비스 진입점에 대한 액세스를 통해 XR 서비스 세션을 수립할 수 있다. XR 서비스 세션이 수립되면, 512 단계에서, UE 및 XR 서비스 제공자에 의해 미디어 데이터 및 메타데이터의 업링크/다운링크 스트리밍이 진행될 수 있다.
본 개시의 일 실시예에 따르면, 501 단계 내지 505 단계는 UE가 컴포넌트 장치와 최초 연결될 때에만 수행될 수 있다. 즉, 최초 연결 이후에 UE가 제1 XR 서비스 세션을 수립해 제1 XR 서비스를 사용자에게 제공하고, 제1 XR 서비스 세션이 종료된 후 제2 XR 서비스 세션의 수립이 필요할 때에는 501 단계 내지 505 단계는 생략될 수 있다. 또한, 501 단계에서 초기 보고되는 장치의 설명은 505 단계에서 보고될 수도 있다.
물리적 환경 자체의 중요성뿐만 아니라, 사용자의 물리적 환경에 의존하는 사용자 장치 구성의 다양성 때문에, 고품질 확장 현실 경험을 위해서는 컴포넌트 장치의 사용자의 환경과 관련된 장치 성능 정보 및 메타데이터가 요구될 수 있다. 본 개시에서는 XR 서비스 세션에서 요구되는 컴포넌트 장치의 사용자의 환경과 관련된 장치 성능 정보 및 메타데이터를 정의한다. 장치 성능 정보 및 메타데이터는 XR 서비스 세션에 참여하는 엔티티들에 의해 사용자에게 XR 서비스를 제공하는 데에 이용될 수 있다.
또한, 본 개시는 장치 성능 정보 및 메타데이터와 관련하여, 사용자의 환경이 고려되기 위한 "사용자 공간 세트(user space set)"를 제안한다. 사용자 공간 세트는 사용자 주변에 위치하여 XR 서비스 제공에 이용되는 다양한 장치들의 위치 및 방향에 대한 정보, 장치들의 성능 정보 또는 사용자 주변의 물리적 환경에 대한 정보 중에서 적어도 하나의 정보를 포함하는 정보 집합일 수 있다. 사용자 주변에 위치한 다양한 장치들은 사용자 주변의 물리적 환경과 함께 사용자 공간 세트를 정의하는 데에 이용될 수 있다. 사용자 공간 세트는 사용자별로 존재할 수 있다. 즉, 각각의 사용자에 대응하는 각각의 사용자 공간 세트가 존재할 수 있다.
도 6은 본 개시의 일 실시예에 따른, 사용자 공간 세트(user space set)를 설명하기 위한 도면이다.
본 개시의 일 실시예에 따른 사용자 공간 세트는 사용자 주변의 환경을 나타내는 다양한 파라미터들(이하, 사용자 공간 세트 파라미터)을 포함할 수 있다. 사용자 공간 세트는 사용자 주변에 위치하여 XR 서비스 제공에 이용되는 다양한 장치들에 관한 정보 및 공간에 대한 정보를 포함할 수 있다. XR 서비스 세션에 참여하는 장치 중에서 적어도 일부는(예를 들면, UE) 사용자 공간 세트에 포함되는 다양한 파라미터들에 기초해서 XR 서비스 제공을 위한 필요 정보들을 획득하거나 처리할 수 있다. 예를 들면, UE는 주변 카메라로부터 캡처링된 데이터 또는 비전 데이터를 전달받고, 전달받은 데이터를 사용자 공간 세트에 기초해 처리할 수 있다. 처리된 데이터는 사용자 공간 세트와 함께 서버 또는 다른 UE에게 전달되어서, 사용자의 주변 환경에 관한 3D 미디어 데이터를 다른 사용자에게 제공하는 데에 이용될 수 있다.
도 6을 참조하면, 사용자 공간 세트는 원점이 기준점으로 정의되고 x축 방향이 공간 세트 참조 방향으로 정의되는 오른손 직교 좌표계(right-handed Cartesian coordinate system)를 사용하여 표현될 수 있다. 다만, 이는 일 예시일 뿐, 사용자 공간 세트는 3차원 공간을 표현하는 다양한 표현 방법에 따라서 표현될 수 있다. 본 개시에서는 편의상 오른손 직교 좌표계를 표현 방법의 일 예시로 들어 사용자 공간 세트를 설명한다. 도 6의 예시에서는 사용자 공간 세트 내에 UE로서의 기능, 비전 기능 및 렌더링 기능을 수행하는 XR 글라스(601), 제1 캡처 카메라(602) 및 제2 캡처 카메라(603)가 존재한다.
또한, 사용자 공간 세트는 하나 이상의 서브 공간 세트를 포함할 수 있다. 본 개시의 일 실시예에 따르면, 비전 서브 공간 세트는 3D 미디어가 비전 서브 공간 내에 렌더링되고 현실적으로 증강(realistically augmented)되어서 3D 미디어가 비전 서브 공간 내에 존재하는 장면/배경의 현실적인(realistic) 부분인 것인 것으로 사용자에 의해 경험될 수 있도록 하는 공간을 정의한다. 하나의 사용자 공간 세트 내에는 하나 이상의 비전 서브 공간 세트가 존재할 수 있다. 비전 서브 공간 세트는 시야(field of view: FOV)가 겹치거나 겹치지 않을 수 있는 하나 이상의 비전 카메라를 사용하여 구현될 수 있다. 또한, 비전 기능을 수행하는 각각의 컴포넌트 장치에 대응하는 각각의 비전 서브 공간 세트가 존재할 수 있다.
본 개시의 일 실시예에 따르면, 캡처 서브 공간 세트는 실제 3D 객체가 하나 이상의 캡처 카메라에 의해 체적으로(volumetrically) 캡처될 수 있는 공간을 정의한다. 실제 3D 객체의 일부만이 캡처 서브 공간 세트 내에 존재하는 경우, 실제 3D 객체의 일부만 캡처될 수 있다. 하나의 사용자 공간 세트 내에는 하나 이상의 캡처 서브 공간 세트가 있을 수 있다. 캡쳐 서브 공간 세트는 시야(field of view: FOV)가 겹치거나 겹치지 않는 하나 이상의 캡처 카메라를 사용하여 구현될 수 있다. 또한, 캡처링 기능을 수행하는 각각의 컴포넌트 장치에 대응하는 각각의 캡처 서브 공간 세트가 존재할 수 있다.
또한, 아래에서는 설명의 편의를 위해 사용자 공간 세트 및 서브 공간 세트의 형태 직육면체(cuboid)인 것을 예로 들어 설명하지만, 사용자 공간 세트 및 서브 공간 세트의 형태는 직육면체에 한정되지 않고 다양하게 정해질 수 있다. 또한, 사용자 공간 세트 또는 서브 공간 세트는 정적일 수 있고 또는 동적으로 변형될 수 있다. 예를 들면, 사용자 공간 세트 또는 서브 공간 세트의 모양, 크기, 형태 등은 다양한 이유(예를 들면, 사용자 또는 장치의 재배치 등)에 따라서 변형될 수 있고, 사용자 공간 세트 또는 서브 공간 세트의 위치는 이동될 수 있다.
본 개시의 일 실시예에 따르면, 서브 공간 세트는 장치별 또는 장치의 기능별로 존재할 수 있다. 예를 들면, XR 글라스(601)에 대해 비전 공간 세트(610)가 존재하고, 제1 캡처 카메라(602)에 대해 제1 캡처 서브 공간 세트(620)가 존재하고, 제2 캡처 카메라(603)에 대해 제2 캡처 서브 공간 세트(630)가 존재할 수 있다. 또한, XR 글라스(601)는 캡처링 기능을 더 수행할 수도 있으며, 이 경우 XR 글라스(601)에 대해서도 별도의 캡처 서브 공간 세트가 존재할 수 있다. 사용자 공간 세트(600) 내의 위치 및 방향 정보는 사용자 공간 세트(600)의 기준점(605)에 대해 상대적으로 결정될 수 있다. 또한, 서브 공간 세트 내의 위치 및 방향 정보는 서브 공간 세트의 기준점에 대해 상대적으로 결정될 수 있고, 서브 공간 세트의 기준점은 사용자 공간 세트(600)의 기준점(605)에 대해 상대적으로 결정될 수 있다. 예를 들면, 비전 공간 세트(610)의 기준점(611), 제1 캡처 서브 공간 세트(620)의 기준점(621) 및 제2 캡처 서브 공간 세트(630)의 기준점(631)은 사용자 공간 세트(600)의 기준점(605)에 대해 상대적으로 결정될 수 있다.
본 개시의 일 실시예에 따른 XR 서비스 제공을 위한 필요 정보들은 다음의 정보들 중에서 적어도 하나의 정보를 포함할 수 있다.
- 사용자 공간 세트 내의 장치의 수
- 각 장치에 대한 장치 설명
- 각 장치의 장치 기능 유형. 장치 기능 유형은 각 장치의 자세 정보를 사용하는 데에 기초가 될 수 있음. 각 장치의 장치 기능 유형은, 렌더링, 비전 또는 캡처링 중에서 적어도 하나를 포함할 수 있음.
- 각 장치의 위치 및 방향(예를 들면, 카메라 전면의 위치 및 방향). 즉, 사용자 공간 세트에 정의된 기준점을 기준으로 하는 각 장치의 자세.
- 기준점. 기준점은 다음 중 하나일 수 있음:
o GPS 좌표와 같은 현실 세계(real world) 좌표를 기반으로 하는 임의의 절대 위치 좌표
o 사용자 공간 세트 내의 장치 중 하나에 바인딩된(bound) 기준점
- 장치의 위치 및/또는 방향이 정적인지 또는 동적인지에 대한 표시(indication)
- 카메라 장치의 경우:
o 시야(field of view: FOV) / 시야각(angle of view)
o 센서 깊이(depth) 감도의 최소값 및 최대값
o 고유(intrinsic) 파라미터
o 외부(extrinsic) 파라미터
본 개시의 일 실시예에 따르면 사용자 공간 세트 파라미터는 상술한 바와 같은 XR 서비스를 위한 필요 정보들을 포함할 수 있으며, 아래의 표현 방식(syntax)에 의해 표현될 수 있다. 먼저, 사용자 공간 세트 파라미터는 제1 그룹 파라미터 및 제2 그룹 파라미터로 분류될 수 있다. 본 개시의 일 실시예에 따르면, 제2 그룹 파라미터는 제1 그룹 파라미터에 기초해서 획득될 수 있고, 또는, 제1 그룹 파라미터에 기초하지 않고 획득될 수 있다.
본 개시의 일 실시예에 따르면, 제1 그룹 파라미터의 표현 방식(syntax)은 다음과 같다. 제1 그룹 파라미터는 아래에 설명되는 파라미터들의 전체 또는 일부를 포함할 수 있다. 즉, 일부의 파라미터는 생략될 수 있다. 또한, 아래의 제1 그룹 파라미터의 표현 방식은 일 예시일 뿐이며, 아래의 제1 그룹 파라미터의 의미(semantics)와 동일하거나 유사한 의미를 갖는 파라미터가 다른 표현 방식(syntax)에 따라서 표현될 수도 있다.
class NonDerivedParameters() {
SpaceSetReferenceStruct()
unsigned int() num_components;
for (i=0; i<num_components; i++){
InitialPose()
unsigned int() device_id;
unsigned int() device_description;
unsigned int() dynamic_pose;
unsigned int() num_functionalities;
for (j=0; j<num_functionalities; j++){
unsigned int() pose_functionality_type;
InitialPose()
if (pose_functionality_type=1,2){
signed int() hor_field_of_view;
signed int() ver_field_of_view;
signed int() minimum_depth;
signed int() maximum_depth;
}
if (pose_functionality_type=2){
CameraParameters()
}
}
}
}
class SpaceSetReferenceStruct() {
unsigned int() space_set_reference_type;
if (space_set_reference_type=0){
signed int() gps_latitude;
signed int() gps_longitude;
signed int() world_orientation;
}
if (space_set_reference_type=1){
unsigned int() device_id;
}
unsigned int() dynamic_reference;
}
class InitialPose() {
signed int() initial_position_x;
signed int() initial_position_y;
signed int() initial_position_z;
signed int() initial_orientation_x;
signed int() initial_orientation_y;
signed int() initial_orientation_z;
signed int() initial_orientation_w;
}
class CameraParameters() {
IntrinsicParamters()
ExtrinsicParameters()
}
본 개시의 일 실시예에 따르면, 위와 같은 표현 방식에 따른 각 파라미터의 의미(semantics)는 다음과 같다.
- num_components: 사용자 공간 세트 내의 구성 요소(장치)의 수를 명시한다.
- initial_position_x, initial_position_y, initial_position_z: 사용자 공간 세트 기준점에 대한 컴포넌트 장치의 초기 위치 좌표의 x, y 및 z 좌표값을 명시한다. 좌표값의 단위는, 예를 들면, 센티미터 또는 밀리미터일 수 있으나, 이에 한정되지 않고 다양하게 정해질 수 있다. 컴포넌트 장치가 사용자 공간 세트의 기준 장치(reference device)으로서 사용되는 경우(장치의 device_id가 SpaceSetReference Struct에 space_set_reference_type = 1로 지정된 device_id 값과 일치하는 경우), 세 좌표값은 모두 0으로 설정된다.
- initial_orientation_x, initial_orientation_y, initial_orientation_z, initial_orientation_w: 컴포넌트 장치의 초기 방향을 나타내는 방향 쿼터니언(quaternion; 사원수 또는 해밀턴 수)의 x, y, z 및 w 구성 요소를 각각 명시한다. w는 쿼터니언의 실수 부분이고, x, y 및 z는 쿼터니언의 허수 부분이다. 컴포넌트 장치가 사용자 공간 세트의 기준 장치로서 사용되는 경우, 이 파리미터들의 값은 컴포넌트 장치의 방향에서 회전이 0 인 단위(unit) 쿼터니언을 정의한다. 이 경우, initial_orientation_x는 공간 세트 좌표계(예를 들면, 오른손 직교 좌표계)의 x 축 방향을 나타낼 수 있고, initial_orientation_y는 수직으로 위쪽을 가리키는 y 축 방향을 나타낼 수 있다.
- space_set_reference_type: 사용자 공간 세트의 기준점, 즉, 원점 (0, 0, 0) 및 기준 방향을 정의하는 방법을 명시한다. 제1 그룹 파라미터의 다른 모든 자세 정보는 기준점을 원점으로 하여 정의될 수 있다. 기준 방향은 공간 세트 좌표계(예를 들면, 오른손 직교 좌표계)의 x 축 방향을 정의할 수 있다. space_set_reference_type의 값이 0인 경우, 기준점(지면 수준) 및 기준 방향은 현실 세계(real world)의 GPS 좌표 및 현실 세계의 방향으로써 정의될 수 있다. space_set_reference_type의 값이 1인 컴포넌트 장치의 경우, 해당 컴포넌트 장치의 자세(위치 좌표 및 방향)가 사용자 공간 세트의 기준점 및 기준 방향으로서 사용될 수 있다.
- gps_latitude, gps_longitude: 사용자 공간 세트 좌표계의 기준점(원점)의 GPS 좌표의 위도선 및 경도선을 10진수(decimal degrees: DD) 단위로 명시한다.
- world_orientation: 공간 세트 좌표계에 대한 기준 방향(예를 들면, 오른쪽 직교 좌표계의 x 축)으로서 정의된 실제 세계 나침반 방향(world compass orientation)을 도 단위(0도는 실제 세계의 진북(true north)에 해당)로 명시한다. 좌표계는 y 축이 x 축에 수직이며 위쪽을 가리키는 오른쪽 직교 좌표계일 수 있다. 기본 방향(x 축)은 진북(true north)일 수 있다.
- device_id: 컴포넌트 장치의 고유 식별자를 명시한다.
- dynamic_reference: 사용자 공간 세트의 기준점이 정적인지(값이 0 인 경우) 또는 동적인지(값이 1 인 경우)를 명시하는 플래그이다.
- device_description: 장치의 설명을 명시한다. 장치의 설명은, 1) 기정의된 목록의 설명(예를 들면, "0 = 안경, 1 = 휴대 전화, 2 = 카메라") 또는 2) 설명 문자열 엔트리(entry)로서 명시될 수 있다.
- dynamic_pose: 컴포넌트 장치의 자세가 정적인지(값이 0인 경우) 또는 동적인지(값이 1인 경우)를 지정하는 플래그이다.
- num_functionalities: 컴포넌트 장치 및 컴포넌트 장치의 자세 정보가 사용되기 위한 기능(pose_functionality_type에 의해 정의되는 기능)의 수를 지정한다. 하나의 device_id로써 식별되는 하나의 컴포넌트 장치는 하나 이상의 기능을 포함할 수 있다. 즉, 하나의 컴포넌트는 하나의 기능만을 포함하거나, 캡처링 기능 및 비전 기능을 모두 포함하거나, 캡처링 기능 및 렌더링 기능을 모두 포함하거나, 비전 기능 및 렌더링 기능을 모두 포함하거나, 또는, 캡처링 기능, 비전 기능 및 렌더링 기능을 모두 포함할 수 있다.
- pose_functionality_type: 컴포넌트 장치의 자세 기능 유형을 명시한다. 값이 0이면 렌더링을 위한 자세 기능을 명시하고, 값이 1이면 비전을 위한 포즈 기능을 지정하고, 값이 2이면 캡처링을 위한 포즈 기능을 명시한다.
- hor_field_of_view, ver_field_of_view: 지정된 기능에 대한 컴포넌트 장치(예를 들면, 카메라)의 수평 및 수직 FOV(field of view) 캡처 또는 비전 성능을 각각 명시한다. 단위는, 예를 들면, 라디안(radian)일 수 있다.
- minimum_depth, maximum_depth: 지정된 기능에 대한 컴포넌트 장치(예를 들면, 카메라)의 깊이 캡처 또는 비전 성능의 최소값 및 최대값을 각각 명시한다. 단위는, 예를 들면, 밀리미터일 수 있다.
- IntrinsicParameters(), ExtrinsicParameters(): 각각 컴포넌트 장치(카메라)에 대한 내부 파라미터와 외부 파라미터의 목록을 명시한다. 예를 들면, 내부 파라미터는 카메라 장치 자체에 대한 파라미터로서, 초점 거리(focal length), 주점(principal point) 또는 비대칭 계수(skew coefficient) 등이 있을 수 잇고, 외부 파라미터는 카메라 좌표계와 실제 세계의 좌표계 사이의 변환(transformation) 관계를 설명하기 위한 파라미터로서, 두 좌표계 사이의 회전(rotation) 파라미터 또는 평행이동 파라미터 등이 있을 수 있다.
다음으로, 본 개시의 일 실시예에 따르면, 제2 그룹 파라미터의 표현 방식(syntax)은 다음과 같다. 제2 그룹 파라미터는 아래에 설명되는 파라미터들의 전체 또는 일부를 포함할 수 있다. 즉, 일부의 파라미터는 생략될 수 있다. 또한, 아래의 제2 그룹 파라미터의 표현 방식은 일 예시일 뿐이며, 아래의 제2 그룹 파라미터의 의미(semantics)와 동일하거나 유사한 의미를 갖는 파라미터가 다른 표현 방식(syntax)에 따라서 표현될 수도 있다.
class SpaceSetSizeStruct() {
unsigned int() spacesetsize_cuboid_dx;
unsigned int() spacesetsize_cuboid_dy;
unsigned int() spacesetsize_cuboid_dz;
}
class VisionSubSpaceStruct() {
SubSpaceReferencePointStruct()
unsigned int() visionsubspacesize_cuboid_dx;
unsigned int() visionsubspacesize_cuboid_dy;
unsigned int() visionsubspacesize_cuboid_dz;
}
class CaptureSubSpaceStruct() {
SubSpaceReferencePointStruct()
unsigned int() capturesubspacesize_cuboid_dx;
unsigned int() capturesubspacesize_cuboid_dy;
unsigned int() capturesubspacesize_cuboid_dz;
}
class SubSpaceReferencePointStruct() {
signed int() offset_x;
signed int() offset_y;
signed int() offset_z;
}
본 개시의 일 실시예에 따르면, 위와 같은 표현 방식에 따른 각 파라미터의 의미(semantics)는 다음과 같다.
- spacesetsize_cuboid_dx, spacesetsize_cuboid_dy, spacesetsize_cuboid_dz: 직육면체(cuboid) 형태인 사용자 공간 세트의 직교 좌표계에서의 x, y 및 z축 방향으로의 크기를 명시한다. 사용자 공간 세트의 기준점은, 예를 들면, space_set_reference_type = 0 인 경우 직육면체의 중심일 수 있고, space_set_reference_type = 1 인 경우 직육면체의 바닥면의 중심일 수 있다. 다만, 이는 일 예시일 뿐, 기준점의 위치는 다양하게 정해질 수 있다.
- visionsubspacesize_cuboid_dx, visionsubspacesize_cuboid_dy, visionsubspacesize_cuboid_dz: 직육면체(cuboid) 모양인 비전 서브(sub) 공간 세트의 직교 좌표계에서의 x, y 및 z축 방향으로의 크기를 명시한다. x, y 및 z축 방향으로의 크기는 비전 서브 공간 세트의 기준점을 기준으로 명시된다. 비전 서브 공간 세트의 기준점은 비전 서브 공간 구조에 포함된 SubSpaceReferencePointStruct()에 의해 정의될 수 있다. 예를 들면, 비전 서브 공간 세트의 기준점(또는, 앵커 포인트(anchor point))은, 비전 서브 공간을 나타내는 직육면체의 모서리 중에서 사용자 공간 세트의 기준점에 가장 가까운 모서리로 정해질 수 있다. 물론, 비전 서브 공간 세트의 앵커 포인트는 상술한 예시에 한정되지 않고 다양하게 정해질 수 있다.
- capturesubspacesize_cuboid_dx, capturesubspacesize_cuboid_dy, capturesubspacesize_cuboid_dz:
직육면체(cuboid) 모양인 캡처 서브(sub) 공간 세트의 직교 좌표계에서의 x, y 및 z축 방향으로의 크기를 명시한다. x, y 및 z축 방향으로의 크기는 캡처 서브 공간 세트의 기준점을 기준으로 명시된다. 캡처 서브 공간 세트의 기준점은 캡처 서브 공간 구조에 포함된 SubSpaceReferencePointStruct()에 의해 정의될 수 있다. 예를 들면, 캡처 서브 공간 세트의 기준점(또는, 앵커 포인트(anchor point))은, 비전 서브 공간을 나타내는 직육면체의 모서리 중에서 사용자 공간 세트의 기준점에 가장 가까운 모서리로 정해질 수 있다. 물론, 비전 서브 공간 세트의 앵커 포인트는 상술한 예시에 한정되지 않고 다양하게 정해질 수 있다.
다음으로, 본 개시의 일 실시예에 따라서, 사용자 공간 세트 내에서 캡처 카메라에 의해 캡처된 3D 미디어 객체를 나타내는 제3 그룹 파라미터를 설명한다. 제3 그룹 파라미터는 사용자 공간 세트에 관한 제1 그룹 파라미터 또는 제2 그룹 파라미터 중에서 적어도 하나의 파라미터에 기초해 결정될 수 있다.
본 개시의 일 실시예에 따르면, 제3 그룹 파라미터의 표현 방식(syntax)은 다음과 같다. 제3 그룹 파라미터는 아래에 설명되는 파라미터들의 전체 또는 일부를 포함할 수 있다. 즉, 일부의 파라미터는 생략될 수 있다. 또한, 아래의 제3 그룹 파라미터의 표현 방식은 일 예시일 뿐이며, 아래의 제3 그룹 파라미터의 의미(semantics)와 동일하거나 유사한 의미를 갖는 파라미터가 다른 표현 방식(syntax)에 따라서 표현될 수도 있다.
class ObjectSizeStruct() {
unsigned int() real_size_dx;
unsigned int() real_size_dy;
unsigned int() real_size_dz;
}
class DefaultOrientationStruct() {
unsigned int() object_default_orientation_x;
unsigned int() object_default_orientation_y;
unsigned int() object_default_orientation_z;
unsigned int() object_default_orientation_w;
}
class DefaultRenderingParamStruct() {
unsigned int() min_rendering_distance;
unsigned int() max_rendering distance;
unsigned int() default_rendering _distance;
}
본 개시의 일 실시예에 따르면, 위와 같은 표현 방식에 따른 각 파라미터의 의미(semantics)는 다음과 같다.
- real_size_dx, real_size_dy, real_size_dz: 3D 미디어 데이터를 표현하는 데 사용되는 코딩된 직육면체(예를 들면, V-PCC compressed 포인트 클라우드를 위한 10 비트 바운딩 박스)에 해당하는 3D 미디어의 크기의 실제 x, y, z 크기를 각각 명시한다. 크기의 단위는, 예를 들면, 밀리미터일 수 있다.
- object_default_orientation_x, object_default_orientation_y, object_default_orientation_z, object_default_orientation_w: 3D 미디어 데이터를 표현하는 데 사용되는 코딩된 직육면체(예를 들면, V-PCC compressed 포인트 클라우드를 위한 10 비트 바운딩 박스)와 관련하여, 3D 미디어 객체의 기본 렌더링 방향을 나타내는 방향 쿼터니언의 구성요소를 명시한다. V-PCC coded 데이터의 경우, 기본 렌더링 방향은 pi_front [d] SEI 메시지와 일치할 수 있다(V-PCC specification에서, pi_front [d]는 재구성된 포인트 클라우드 시퀀스의 정면 방향을 2-16 단위로 나타내는 단위 벡터의 d축 값을 나타낸다. pi_front [d]가 존재하지 않으면, 기본 렌더링 방향은 (0.0, 1.0, 0.0)의 단위 벡터를 나타내는 것으로 가정될 수 있다).
- min_rendering_distance는 3D 미디어 객체가 렌더링되고 사용자에게 표시될 수 있는, 사용자 디스플레이와 3D 미디어 객체 사이의 최소 거리를 명시한다. 거리의 단위는, 예를 들면, 센티미터 또는 밀리미터일 수 있다.
- max_rendering_distance는 3D 미디어 객체가 렌더링되고 사용자에게 표시될 수 있는, 사용자 디스플레이와 3D 미디어 객체 사이의 최대 거리를 명시한다. 거리의 단위는, 예를 들면, 센티미터 또는 밀리미터일 수 있다.
- default_rendering _distance는 초기 재생(playback) 시 객체가 렌더링되고 사용자에게 표시되는, 사용자 디스플레이와 3D 미디어 객체 사이의 기본 렌더링 거리를 명시한다. 거리의 단위는, 예를 들면, 센티미터 또는 밀리미터일 수 있다.
도 6에서 설명한 제1 그룹 파라미터, 제2 그룹 파라미터 또는 제3 그룹 파라미터가 사용자 공간 세트 파라미터 또는 서브 공간 세트 파라미터로서 제1 UE, 서버 및/또는 제2 UE 간에 공유됨으로써, 제1 UE/제2 UE 또는 서버는 제2 UE/제1 UE 주변의 공간을 이해하고 제2 UE/제1 UE 주변의 객체를 처리하여 XR 장치에서 3D XR 미디어 객체로서 표시되도록 제어할 수 있다.
도 7은 본 개시의 일 실시예에 따른, 미디어 데이터 및 메타데이터의 흐름을 설명하기 위한 도면이다.
도 7을 참조하면, XR 서비스 세션에 참여하는 엔티티 간의 미디어 데이터 및 메타데이터의 흐름, 사용자 공간 세트 파라미터의 흐름 및 XR 서비스를 위한 추가적인 미디어 메타데이터(예를 들면, 객체 크기, 기본 방향, 또는 사용자 공간 세트 파라미터의 일부 또는 전체 파라미터)의 흐름이 도시된다. 도 7에서는 편의상 클라우드, 서버, MEC 서버 등은 클라우드로 통칭한다. 본 개시의 일 실시예에 따르면, 제1 그룹 파라미터, 제2 그룹 파라미터 또는 제3 그룹 파라미터 내에 포함된 전체 또는 일부 파라미터가 선택되어서 도 7의 메타데이터 흐름에 따라 UE 간에 전달될 수 있다.
본 개시의 일 실시예에 따르면, 미디어 데이터 및 메타데이터의 흐름은 다음의 표현 방식(syntax)을 사용하여 설명될 수 있다.
- UE1:소스 장치 -> UE2:대상 장치
여기에서, 각 사용자는 하나 이상의 UE(즉, 네트워크를 통해 다른 사용자의 장치와 데이터를 송수신할 수 있는 네트워크 성능(예를 들면, 5G 모뎀 성능)을 가진 장치)를 가지고 있을 수 있으나, 설명의 편의를 위해 제1 사용자 및 제2 사용자는 각각 하나의 UE를 가지고 있다고 가정한다. 따라서, UE1 및 UE2는 각각 제1 사용자의 제1 UE 및 제2 사용자의 제2 UE를 의미한다. 본 개시의 일 실시예에 따르면, 상기 표현 방식을 사용하여 설명되는 각각의 미디어 데이터 및 메타데이터의 흐름은 다음과 같다.
(단계 701) 제1 사용자의 자세 정보
- UE1:glasses -> cloud [목적: 스플릿 렌더링(split rendering)]
- UE1:glasses -> UE2:phone [목적: 시각 기반의 부분적 캡처 및 전달(view dependent partial capturing & delivery)/속도 제어(rate adaptation)]
- user_pose_parameters: SpaceSetReferenceStruct(pose_functionality_type=0)
스플릿 렌더링은, 렌더링의 일부 단계가 클라우드에서 수행되는 것을 의미한다.
(단계 701a) 제2 사용자의 자세 정보
- UE2:glasses -> UE1:phone [목적: 시각 기반의 부분적 캡처 및 전달/속도 제어]
- UE2:glasses -> cloud [목적: 스플릿 렌더링]
- user_pose_parameters: SpaceSetReferenceStruct(pose_functionality_type=0)
(단계 702) 3D/2D 미디어 데이터
- UE2:phone -> UE1:phone [3D 데이터]
- cloud -> UE1:glasses [2D 데이터. 목적: 스플릿 렌더링]
(단계 702a) 2D 미디어 데이터
- UE1:camera -> UE1:phone
- UE1:camera -> cloud [목적: 클라우드에서의 3D 모델링]
(단계 702b) 3D 미디어 데이터
- UE1:phone -> UE2:phone
- cloud -> UE2:phone
(단계 703) 제1 사용자의 비전 정보
- UE1:phone -> UE2:phone/glasses [목적: UE2에서의 렌더링 및 속도 제어를 지원]
- UE1:phone -> cloud [목적: 클라우드 기반의 3D 모델링 및 스플릿 렌더링을 지원]
- vision_cam_paramters: SpaceSetReferenceStruct(pose_functionality_type=1) [처리되지 않은 데이터 또는 제1 그룹 파라미터]
- space_set_size: SpaceSetSizeStruct()[비전 처리된 데이터]
- space_set_reference_point: SpaceSetReferenceStruct() [비전 처리된 데이터]
- light_source_direction [비전 처리된 데이터]
- augmentation_type [비전 처리된 데이터]
(단계 703a) 제2 사용자의 비전 정보: 단계 703의 제1 사용자의 비전 정보에서 UE1와 UE2를 서로 교체함으로써 유추될 수 있다.
(단계 704) 3D 모델링 파라미터
- UE1:camera -> UE1:phone [사용자의 장치 간의 정보 전달]
- UE1:camera/phone -> cloud [목적: 클라우드 3D 모델링]
- capture_cam: SpaceSetReferenceStruct(pose_functionality_type=2)
- Intrinsic_param: IntrinsicParamters()
- Extrinsic_param: ExtrinsicParameters()
(단계 705) 3D model information
- UE1:phone-> UE2:phone/glasses [UE에서 3D 모델링되는 경우]
- Cloud -> UE2:phone/glasses [클라우드에서 3D 모델링된 경우]
- Object size, default orientation, default rendering size, priority
제1 사용자의 제1 그룹 파라미터, 제2 그룹 파라미터와 같은 제1 사용자의 자세 정보(또는, 공간 세트 정보)는, 제1 사용자의 공간 세트 내에서의 제1 사용자의 이동이 제2 사용자의 공간 세트에 정확하게 맵핑되어야 할 때(크기 조정되거나(scaled) 또는 조정되지 않은 채로(non-scaled)), 제2 사용자에게 직접 전송 될 수 있고, 제2 사용자에 의한 렌더링을 위해 사용될 수 있다. 또한, 두 사용자 간에 객체가 공유되어서 보일 때, 다른 사용자의 자세 정보 및 비전 정보(공간 세트 등)에 대한 지식을 통해, 두 사용자 모두 다른 사용자가 어떠한 시야로(어떤 방향 및 거리에서) 공유된 객체를 보고 있는지를 정확히 알 수 있다. 각 사용자의 자세 정보가 서로에게 공유되는 것은, 실시간 사용 사례에서 두 사용자가 공유된 객체를 동일한 거리 및 각도로 보아야 하는 경우 등에 유용할 수 있다.
도 8은 본 개시의 일 실시예에 따른, UE의 XR 미디어 아키텍처를 설명하기 위한 도면이다.
도 8을 참조하면, 제1 UE(81)의 XR 상호작용 컨트롤러(XR interaction controller)(830)를 포함하는 XR 미디어 아키텍처가 도시된다. 제1 사용자의 제1 UE(81)는 서버(또는, 제2 UE)(82)와 하나 이상의 인터페이스를 통해 XR 서비스 관련 정보를 송수신할 수 있다. 서버는, 예를 들면, 클라우드, MEC 서버, 데이트 네트워크 진입점 등일 수 있다. 제1 UE(81)는 데이터를 서버로 전송하거나, 제2 UE로 직접 전송하거나 또는 서버를 통해서 제2 UE로 전송할 수 있다.
제1 UE(81)의 XR 미디어 아키텍처 내의 각각의 엔티티는 논리적(logical) 엔티티이거나 하드웨어(hardware) 엔티티일 수 있다. 논리적 엔티티는 다양한 하드웨어 구성에 의해 구현될 수 있다. XR 상호작용 컨트롤러는 컴포넌트 장치들(렌더링 장치, 비전 카메라, 캡처 카메라 등)의 자세 정보를 프로세싱하고 제어할 수 있다. 컴포넌트 장치들의 자세 정보는 XR 미디어 플레이어 또는 XR 미디어 생성기 등의 엔티티에서 사용될 수 있다. 또한, XR 대화식 서비스 내에서 부분적인 전송 또는 부분적인 렌더링을 위해 자세 정보가 필요한 경우, 자세 정보(프로세싱된 것 또는 프로세싱되지 않은 것)의 적어도 일부는 서버로 전송되거나 제2 UE로 직접 전송될 수 있다. 본 개시의 일 실시예에 따른 XR 미디어 아키텍처 내의 각각의 엔티티의 기능은 다음과 같다.
- XR 인식 어플리케이션(810): XR 미디어 아키텍처 내의 다른 XR 엔티티를 제어할 수 있다.
- XR 미디어 세션 핸들러(handler)(820): 서버(또는, 제2 UE)(82)와 통신함으로써, XR 서비스 구성을 위한 성능 협상(capability negotiation)을 수행하고 XR 세션을 수립, 제어(관리) 및 지원할 수 있다. 성능 협상은, 예를 들면, 사용자의 장치의 성능 및 XR 서비스의 요구사항에 기초해, UE 및 서버 간에 사용자의 장치의 성능으로 지원할 수 있는 품질(quality)의 XR 서비스를 결정하거나 또는 XR 서비스와 관련된 3D 미디어 프로세스들 중에서 사용자의 장치의 성능으로 지원할 수 있는 프로세스들만 사용자의 장치에서 수항하고 나머지는 서버에서 수행하기로 결정하는 것일 수 있다.
- XR 상호작용 컨트롤러(830): 서버(또는, 제2 UE)(82)와 통신함으로써 상호작용 기반 서비스를 관리할 수 있다. 상호작용 제어를 위해 XR 인식 어플리케이션(810)에게 관련 데이터를 제공하고, 상호작용 보고 제어를 위해 XR 미디어 세션 핸들러(820)에게 관련 데이터를 제공하고, 비전 기반 상호작용 재생을 위해 XR 미디어 플레이어(840)에게 관련 데이터를 제공하고, 대화식 미디어 생성을 위해 XR 미디어 생성기(850)에게 관련 데이터를 제공할 수 있다.
- XR 미디어 플레이어(840): 서버(또는, 제2 UE)(82)와 통신함으로써 XR 미디어 컨텐트를 수신할 수 있다. 미디어 재생(미디어 액세스, 패키지 해제(depacketisation), 디캡슐화(decapsulation), 디코딩, 렌더링 등)을 위해 XR 인식 어플리케이션(810)에게 관련 데이터를 제공하고, 미디어 세션 제어를 위해 XR 미디어 세션 핸들러(820)에게 관련 데이터를 제공하고, XR 미디어 플레이어(840) 세션 상호작용을 위해 XR 상호작용 컨트롤러(830)에게 관련 데이터를 제공할 수 있다.
- XR 미디어 생성기(850): 서버(또는, 제2 UE)(82)와 통신함으로써 XR 미디어 컨텐츠를 생산할 수 있다. 미디어 생성(캡처, 3D 모델링 및 사전 처리(pre-processing), 인코딩, 캡슐화(encapsulation), 패킷화(packetization) 등)을 위해 XR 인식 어플리케이션(810)에게 관련 데이터를 제공하고, 미디어 세션 제어를 위해 XR 미디어 세션 핸들러(820)에게 관련 데이터를 제공하고, XR 미디어 생성 상호작용을 위해 XR 상호작용 컨트롤러(830)에게 관련 데이터를 제공할 수 있다.
본 개시의 일 실시예에 따르면, XR 미디어 아키텍처 내의 엔티티 간의 인터페이스에서 전송될 수 있는 인터페이스 파라미터(인터페이스들 간에 공유될 수 있는 메타데이터 포함)는 다음과 같다. 다만, 다음은 가능한 메타데이터의 예시일 뿐이다. 예를 들면, 엔티티 간에 전송되는 인터페이스 파리미터에 의해서 본 개시의 일 실시예에 따른 XR 미디어 프로세싱, XR 미디어 흐름, XR 서비스 등이 가능할 수 있다.
· 제1 인터페이스([1])의 파라미터: 데이터가 서버에서 처리되기 위해 필요한 메타데이터. 서버에서 원격 렌더링 및 원격 컨텐트 생성이 모두 지원될 수 있으므로, 제1 사용자에 관한 메타데이터 및 제2 사용자에 관한 메타데이터가 모두 포함될 수 있음.
- User pose information (목적: 원격 렌더링):
> NonDerivedParameters(pose_functionality_type = 0);
- Vision camera information (for remote rendering):
> NonDerivedParameters(pose_functionality_type = 1);
- Capture camera information (for cloud based 3D modeling and encoding):
> NonDerivedParameters(pose_functionality_type = 2);
- User space set information (for remote rendering/3Dmodeling):
> SpaceSetReferenceStruct()
> SpaceSetSizeStruct()
> VisionSubSpaceStruct()
> CaptureSubSpaceStruct()
> SubSpaceReferencePointStruct()
- Media object capture information (uplink: for when most processing done on devices; downlink: for when most rendering is done on device)
> ObjectSizeStruct()
> DefaultOrientationStruct()
> DefaultRenderingParamStruct()
· 제2 인터페이스([2])의 파라미터: XR 상호 작용 컨트롤러와 XR 미디어 플레이어(840) 간에 전달되는 메타데이터. 메타데이터는 일반적으로 제2 사용자에 관련된 메타데이터 정보이다. 다만, XR 미디어 플레이어(840)에서 제2 사용자와 관련된 메타데이터 자체를 재생할 필요는 없을 수 있다. 본 개시의 일 실시예에 따르면, XR 미디어 플레이어(840)에는 일반적으로 공간 세트 관련 처리 성능이 없을 수 있고, 비전 정보 처리 성능은 있을 수 있다. 다만, XR 상호 작용 컨트롤러와 XR 미디어 플레이어(840) 간의 처리 성능 공유는 유연하게 이루어질 수 있다. 즉, XR 상호 작용 컨트롤러 및 XR 미디어 플레이어(840) 간에 서로 정보가 공유됨으로써 각자가 처리하지 못하는 데이터가 협업에 의해 처리될 수 있다.
- User pose information (for media playback):
> NonDerivedParameters(pose_functionality_type = 0);
- Vision camera information (for media playback):
> NonDerivedParameters(pose_functionality_type = 1);
- User space set information (for media playback):
> SpaceSetReferenceStruct()
> SpaceSetSizeStruct()
> VisionSubSpaceStruct()
> (CaptureSubSpaceStruct())
> SubSpaceReferencePointStruct()
- Media object capture information (uplink: 대부분의 프로세싱이 서버가 아니라 사용자의 장치에 의해 수행되는 경우; downlink: 대부분의 렌더링이 서버가 아니라 사용자의 장치에 의해 수행되는 경우)
> ObjectSizeStruct()
> DefaultOrientationStruct()
> DefaultRenderingParamStruct()
· 제3 인터페이스([3])의 파라미터: 본 개시의 일 실시예에 따르면 XR 미디어 생성기(850)는 강력한 프로세싱 성능을 가지지 않을 수 있다. 따라서, XR 미디어 생성기(850)는 3D 미디어 생성 및 인코딩 등을 오프로드(offload)할 수 있다. 본 개시의 일 실시예에 따르면, 메타데이터는 제5 인터페이스([5])를 통해 서버(또는, 제2 UE)(82)로 직접 전송되거나 또는 제3 인터페이스([3])를 통해 XR 상호작용 컨트롤러(830)를 거쳐서 제1 인터페이스([1])를 통해 서버(또는, 제2 UE)(82)로 전송될 수도 있다. 제1 인터페이스([1]) 및 제3 인터페이스([3])를 통해 XR 미디어 생성기(850)에 입력된 제2 사용자의 자세 정보 및 비전 정보는, 제2 사용자의 미디어 데이터를 제1 사용자를 위해 시각 기반 부분 캡처(view based partial capturing), 생성(generation), 전달(delivery) 또는 렌더링(rendering)하는 데에 이용될 수 있다.
- Capture camera information (원격 3D 모델링 및 인코등을 위한 정보):
> NonDerivedParameters(pose_functionality_type = 2);
- User space set information (optional):
> SpaceSetReferenceStruct()
> SpaceSetSizeStruct()
> (VisionSubSpaceStruct())
> CaptureSubSpaceStruct()
> SubSpaceReferencePointStruct()
- Media object capture information (모든 프로세싱이 XR 미디어 생성기(850)에 의해 수행되는 경우)
> ObjectSizeStruct()
> DefaultOrientationStruct()
> DefaultRenderingParamStruct()
· 제4 인터페이스([4])의 파라미터: DASH MPD(media presentation description) 등, 일반적으로 수신되는 미디어 메니페스트(manifests).
· 제5 인터페이스([5])의 파라미터: 지연 시간(latency)이 중요한 경우, 특정 메타데이터가 미디어 생성기와 서버(또는, 제2 UE)(82) 간에 직접 전송될 수 있다. 즉, 미디어 데이터는 XR 상호작용 컨트롤러(830)를 거치지 않고 제5 인터페이스([5])를 통해 서버(또는, 제2 UE)(82)로 직접 전송될 수 있다.
도 9는 본 개시의 일 실시예에 따른, 제1 UE가 3D XR 미디어 데이터를 제2 UE에게 전송하는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 910 단계에서, 제1 UE는 적어도 하나의 컴포넌트 장치로부터 적어도 하나의 컴포넌트 장치의 성능 및 상태 보고를 수신할 수 있다.
920 단계에서, 제1 UE는 성능 및 상태 보고에 기초해 XR 서비스에 관한 장치 성능 보고를 서버에게 전송할 수 있다.
930 단계에서, 제1 UE는 서버로부터 XR 서비스에 관한 장치 설정 정보를 수신할 수 있다.
940 단계에서, 제1 UE는 장치 설정 정보에 기초해 XR 서비스 세션을 수립할 수 있다.
950 단계에서, 제1 UE는 적어도 하나의 컴포넌트 장치를 제어하여 획득되는 XR 서비스에 관한 3D 미디어 데이터 및 메타데이터를 가공(process)할 수 있다.
960 단계에서, 제1 UE는 서버를 통해서 제2 UE에게 가공된 3D 미디어 데이터 및 메타데이터를 전송할 수 있다.
도 10은 본 개시의 일 실시예에 따른 UE 또는 컴포넌트 장치의 구성을 설명하기 위한 도면이다. 도 1a 내지 도 9를 참조하여 설명한 UE, XR 장치 또는 컴포넌트 장치는 도 10의 구성을 가질 수 있다. 또는, 일부의 컴포넌트 장치는 도 10의 구성과 상이한 구성(예를 들면, 카메라, 저전력 프로세서, 디스플레이 등, 근거리 통신 모듈 등)을 가질 수도 있다. 이하에서는 설명의 편의를 위해 UE를 예로 들어 설명한다.
도 10을 참조하면, UE는 트랜시버(1020)와 메모리(1030) 및 프로세서 (1010)로 구성될 수 있다. 다만, UE의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, UE는 전술한 구성 요소들 보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수도 있다. 예를 들면, UE는 메모리(1030)를 포함하지 않을 수 있다. 뿐만 아니라 트랜시버(1020), 메모리(1030) 및 프로세서(1010)가 하나의 칩(chip) 형태로 구현될 수도 있다. 또한, 프로세서(1010)는 하나 이상의 프로세서를 포함할 수 있다.
트랜시버(1020)는 수신부와 송신부를 통칭한 것으로서, 서버, 컴포넌트 장치, XR 장치 또는 다른 UE와 신호를 송수신할 수 있다. 예를 들면, 트랜시버(1020)는 제어 신호, 미디어 데이터 및 메타데이터를 송수신할 수 있다. 이를 위해, 트랜시버(1020)는 전송되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 다만, 이는 트랜시버(1020)의 일 실시예일 뿐이며, 트랜시버(1020)의 구성 요소가 RF 송신기 및 RF 수신기에 한정되는 것은 아니다.
또한, 트랜시버(1020)는 무선 채널을 통해 신호를 수신하여 프로세서(1010)로 출력하고, 프로세서(1010)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
메모리(1030)는 UE의 동작에 필요한 프로그램 및 데이터를 저장할 수 있다. 또한, 메모리(1030)는 UE에서 획득되는 신호에 포함된 미디어 데이터 또는 메타데이터를 저장할 수 있다. 메모리(1030)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(1030)는 별도로 존재하지 않고 프로세서(1010)에 포함되어 구성될 수도 있다.
프로세서(1010)는 상술한 본 개시의 실시예에 따라 UE가 동작할 수 있도록 일련의 과정을 제어할 수 있다. 예를 들면, 프로세서(1010)는 트랜시버(1020)를 통해 제어 신호, 미디어 데이터 및 메타데이터를 수신하고, 수신한 제어 신호, 미디어 데이터 및 메타데이터를 처리할 수 있다. 또한, 프로세서(1010)는 처리한 제어 신호, 미디어 데이터 및 메타데이터를 트랜시버(1020)를 통해 송신할 수 있다. 프로세서(1010)는 복수 개일 수 있으며, 메모리(1030)에 저장된 프로그램을 실행함으로써 UE의 구성 요소 제어 동작을 수행할 수 있다.
도 11은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 도면이다. 도 1a 내지 도 9를 참조하여 설명한 클라우드, 서버 또는 MEC 서버는 도 11의 구성을 가질 수 있다. 이하에서는 설명의 편의를 위해 서버를 예로 들어 설명한다.
도 11을 참조하면, 서버는 트랜시버(1120)와 메모리(1130) 및 프로세서 (1110)로 구성될 수 있다. 다만, 서버의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 서버는 전술한 구성 요소들 보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수도 있다. 예를 들면, 서버는 메모리(1130)를 포함하지 않을 수 있다. 뿐만 아니라 트랜시버(1120), 메모리(1130) 및 프로세서(1110)가 하나의 칩(chip) 형태로 구현될 수도 있다. 또한, 프로세서(1110)는 하나 이상의 프로세서를 포함할 수 있다.
트랜시버(1120)는 수신부와 송신부를 통칭한 것으로서, UE, 컴포넌트 장치, XR 장치 또는 다른 서버와 신호를 송수신할 수 있다. 예를 들면, 트랜시버(1120)는 제어 신호, 미디어 데이터 및 메타데이터를 송수신할 수 있다. 이를 위해, 트랜시버(1120)는 전송되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 다만, 이는 트랜시버(1120)의 일 실시예일 뿐이며, 트랜시버(1120)의 구성 요소가 RF 송신기 및 RF 수신기에 한정되는 것은 아니다.
또한, 트랜시버(1120)는 무선 채널을 통해 신호를 수신하여 프로세서(1110)로 출력하고, 프로세서(1110)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
메모리(1130)는 서버의 동작에 필요한 프로그램 및 데이터를 저장할 수 있다. 또한, 메모리(1130)는 서버에서 획득되는 신호에 포함된 미디어 데이터 또는 메타데이터를 저장할 수 있다. 메모리(1130)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(1130)는 별도로 존재하지 않고 프로세서(1110)에 포함되어 구성될 수도 있다.
프로세서(1110)는 상술한 본 개시의 실시예에 따라 서버가 동작할 수 있도록 일련의 과정을 제어할 수 있다. 예를 들면, 프로세서(1110)는 트랜시버(1120)를 통해 제어 신호, 미디어 데이터 및 메타데이터를 수신하고, 수신한 제어 신호, 미디어 데이터 및 메타데이터를 처리할 수 있다. 또한, 프로세서(1110)는 처리한 제어 신호, 미디어 데이터 및 메타데이터를 트랜시버(1120)를 통해 송신할 수 있다. 프로세서(1110)는 복수 개일 수 있으며, 메모리(1130)에 저장된 프로그램을 실행함으로써 서버의 구성 요소 제어 동작을 수행할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함할 수 있다. 또한, 하나 이상의 프로그램을 저장하는 컴퓨터 프로그램 제품이 제공될 수 있다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 본 개시에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편, 본 명세서와 도면에 개시된 본 개시의 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 즉 본 개시의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 개시의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다. 예를 들면, 본 개시의 일 실시예와 다른 일 실시예의 일부분들이 서로 조합되어 UE, 컴포넌트 장치, XR 장치 및 서버가 운용될 수 있다. 또한, 본 개시의 실시예들은 다른 통신 시스템에서도 적용 가능하며, 실시예의 기술적 사상에 바탕을 둔 다른 변형예들 또한 실시 가능할 것이다.