KR20220131342A - 미디어 장면 설명을 위한 방법 및 장치 - Google Patents

미디어 장면 설명을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220131342A
KR20220131342A KR1020227030732A KR20227030732A KR20220131342A KR 20220131342 A KR20220131342 A KR 20220131342A KR 1020227030732 A KR1020227030732 A KR 1020227030732A KR 20227030732 A KR20227030732 A KR 20227030732A KR 20220131342 A KR20220131342 A KR 20220131342A
Authority
KR
South Korea
Prior art keywords
cbor
binary data
format
data blob
gltf
Prior art date
Application number
KR1020227030732A
Other languages
English (en)
Inventor
솨이 자오
스테판 웽거
산 류
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/499,380 external-priority patent/US11797476B2/en
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20220131342A publication Critical patent/KR20220131342A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Details Of Television Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

미디어 저장 및 전달을 관리하기 위한 시스템들, 방법들, 및 디바이스들은 미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하는 것; glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하는 것; 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하는 것; MAF에 의해 구현된 CBOR 파서 함수를 사용하여 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하는 것; 및 오브젝트에 기초하여 장면에 대응하는 미디어 콘텐츠를 획득하는 것을 포함한다.

Description

미디어 장면 설명을 위한 방법 및 장치
본 개시내용의 실시예들은 3D 모델링 신택스를 사용하여 미디어 오브젝트들을 지원하고, 다양한 미디어 코덱들, 컨테이너들, 및 포맷들을 지원하기 위한 미디어 신택스를 구현하며, 미리 정의된 프로그래밍 인터페이스들을 통해 미디어 저장 및 전달 방법을 관리하고, 미디어 버퍼 제어 및 렌더링 기능들을 제공하는 시스템 설계에 관한 것이다.
glTF(Graphics Language Transmission Format)는 API-중립 런타임 자산 3D 모델링 전달 포맷(API-neutral runtime asset 3D modeling delivery format)이다. 전통적인 3D 모델링 툴들과 비교하여, glTF는 3D 콘텐츠의 송신 및 로딩을 위한 더 효율적이고, 확장가능하며, 상호운용가능한 포맷을 제공한다. glTF2.0은 Khronos 3D Group에 의해 작성된 glTF 사양의 가장 최근의 버전이다. 이 포맷은 "png" 및 "jpeg" 이미지 포맷들을 포함하는, 장면들 내의 정적(비시간설정형) 오브젝트들을 일반적으로 지원할 수 있는 단순한 장면 그래프 포맷을 지원한다. glTF2.0은 glTF 프리미티브들을 사용하여 설명되는 기본 형상들의, 즉, 기하학적 오브젝트들에 대한, 병진, 회전, 및 스케일(scale)에 대한 지원을 포함하는 단순한 애니메이션들을 지원한다. glTF2.0은 시간설정형 미디어(timed media)를 지원하지 않고, 그에 따라, 비디오나 오디오를 지원하지 않는다.
"Information technology - Coding of audiovisual objects - Part 12: ISO base media file format", ISO/IEC 14496-12 (2015년 12월), "Draft of FDIS of ISO/IEC 23000-19 Common Media Application Format for Segmented Media", ISO/IEC JTC1/SC29/WG11 MPEG117/16819 (2017년 4월); 및 "Text of ISO/IEC FDIS 23009-1 4th edition", ISO/IEC JTC 1/SC 29/WG 11 N18609 (2019년 8월), 그리고 glTF2.0 사양은 그 전체가 본 명세서에 참고로 포함된다.
일 실시예에 따르면, 미디어 저장 및 전달을 관리하는 방법이 적어도 하나의 프로세서에 의해 구현되고, 이 방법은 미디어 액세스 기능(media access function, MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하는 단계; glTF 파일로부터 이진 데이터 블롭(binary data blob)을 지시하는 URL(uniform resource locator) 파라미터를 획득하는 단계; 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하는 단계; MAF에 의해 구현된 CBOR 파서 함수를 사용하여 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하는 단계; 및 오브젝트에 기초하여 장면에 대응하는 미디어 콘텐츠를 획득하는 단계를 포함한다.
일 실시예에 따르면, 미디어 저장 및 전달을 관리하기 위한 디바이스는 프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리; 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 프로그램 코드는: 적어도 하나의 프로세서로 하여금, 미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하게 하도록 구성되는 제1 획득 코드; 적어도 하나의 프로세서로 하여금 glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하게 하도록 구성되는 제2 획득 코드; 적어도 하나의 프로세서로 하여금 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하게 하도록 구성되는 결정 코드; 적어도 하나의 프로세서로 하여금 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하게 하도록 구성되는 변환 코드; 및 적어도 하나의 프로세서로 하여금 오브젝트에 기초하여 장면에 대응하는 미디어 콘텐츠를 획득하게 하도록 구성되는 제3 획득 코드를 포함한다.
일 실시예에 따르면, 비일시적 컴퓨터 판독가능 매체는 명령어들을 저장하며, 명령어들은, 미디어 저장 및 전달을 관리하기 위한 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금: 미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하게 하고; glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하게 하고; 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하게 하고; MAF에 의해 구현된 CBOR 파서 함수를 사용하여 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하게 하고; 오브젝트에 기초하여 장면에 대응하는 미디어 콘텐츠를 획득하게 하도록 구성되는 하나 이상의 명령어를 포함한다.
개시된 주제의 추가의 특징들, 본질 및 다양한 이점들이 다음의 상세한 설명 및 첨부 도면들로부터 더 명백할 것이다.
도 1은, 실시예들에 따른, 본 명세서에 설명되는 방법들, 장치들 및 시스템들이 구현될 수 있는 환경의 도면이다.
도 2는, 실시예들에 따른, 도 1의 하나 이상의 디바이스의 예시적인 컴포넌트들의 블록도이다.
도 3은, 실시예들에 따른, glTF 장면 설명 오브젝트(scene description object)들의 개략도이다.
도 4는, 실시예들에 따른, 미디어 장면 설명 시스템 참조 아키텍처의 개략도이다.
도 5는, 실시예들에 따른, glTF JSON(JavaScript Object Notation) 포맷 표현의 예이다.
도 6은, 실시예들에 따른, MPEG glTF 확장의 예이다.
도 7a는, 실시예들에 따른, JSON 포맷을 갖는 파일의 예시이다.
도 7b는, 실시예들에 따른, CBOR 포맷을 갖는 파일의 예시이다.
도 8은, 실시예들에 따른, glTF 신택스의 예의 예시이다.
도 9a 내지 도 9c는 실시예들에 따른 미디어 저장 및 전달을 관리하기 위한 예시적인 프로세스들의 도면들이다.
도 1은, 실시예들에 따른, 본 명세서에 설명되는 방법들, 장치들 및 시스템들이 구현될 수 있는 환경(100)의 도면이다. 도 1에 도시되는 바와 같이, 환경(100)은 사용자 디바이스(110), 플랫폼(120), 및 네트워크(130)를 포함할 수 있다. 환경(100)의 디바이스들은 유선 접속들, 무선 접속들, 또는 유선 접속들과 무선 접속들의 조합을 통해 상호접속할 수 있다.
사용자 디바이스(110)는 플랫폼(120)과 연관된 정보를 수신, 생성, 저장, 처리, 및/또는 제공할 수 있는 하나 이상의 디바이스를 포함한다. 예를 들어, 사용자 디바이스(110)는 컴퓨팅 디바이스(예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버 등), 모바일폰(예를 들어, 스마트폰, 무선전화기 등), 웨어러블 디바이스(예를 들어, 스마트 안경 또는 스마트 시계), 또는 유사한 디바이스를 포함할 수 있다. 일부 구현들에서, 사용자 디바이스(110)는 플랫폼(120)으로부터 정보를 수신하고 및/또는 플랫폼(120)에 정보를 송신할 수 있다.
플랫폼(120)은 본 명세서의 다른 곳에서 설명되는 바와 같은 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 플랫폼(120)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수 있다. 일부 구현들에서, 플랫폼(120)은 모듈형이도록 설계될 수 있어, 소프트웨어 컴포넌트들이 특정 필요에 따라 스왑 인 또는 아웃(swap in or out)될 수 있다. 이와 같이, 플랫폼(120)은 상이한 사용들을 위해 용이하게 및/또는 신속하게 재구성될 수 있다.
일부 구현들에서, 도시되는 바와 같이, 플랫폼(120)은 클라우드 컴퓨팅 환경(122)에서 호스팅될 수 있다. 특히, 본 명세서에 설명되는 구현들은 플랫폼(120)을 클라우드 컴퓨팅 환경(122)에서 호스팅되는 것으로서 설명하지만, 일부 구현들에서, 플랫폼(120)은 클라우드-기반이 아닐 수 있거나(즉, 클라우드 컴퓨팅 환경의 외부에서 구현될 수 있거나) 또는 부분적으로 클라우드-기반일 수 있다.
클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 환경을 포함한다. 클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적 위치 및 구성에 대한 최종-사용자(예를 들어, 사용자 디바이스(110)) 지식을 요구하지 않는 계산, 소프트웨어, 데이터 액세스, 스토리지 등의 서비스들을 제공할 수 있다. 도시되는 바와 같이, 클라우드 컴퓨팅 환경(122)은 컴퓨팅 리소스들(124)의 그룹("컴퓨팅 리소스들(124)"이라고 집합적으로 지칭되고 "컴퓨팅 리소스(124)"라고 개별적으로 지칭됨)을 포함할 수 있다.
컴퓨팅 리소스(124)는 하나 이상의 개인용 컴퓨터, 워크스테이션 컴퓨터, 서버 디바이스, 또는 다른 타입의 계산 및/또는 통신 디바이스를 포함한다. 일부 구현들에서, 컴퓨팅 리소스(124)는 플랫폼(120)을 호스팅할 수 있다. 클라우드 리소스들은 컴퓨팅 리소스(124)에서 실행되는 컴퓨트 인스턴스(compute instance)들, 컴퓨팅 리소스(124)에 제공된 스토리지 디바이스들, 컴퓨팅 리소스(124)에 의해 제공된 데이터 전송 디바이스들 등을 포함할 수 있다. 일부 구현들에서, 컴퓨팅 리소스(124)는 유선 접속들, 무선 접속들, 또는 유선 접속들과 무선 접속들의 조합을 통해 다른 컴퓨팅 리소스들(124)과 통신할 수 있다.
도 1에 추가로 도시된 바와 같이, 컴퓨팅 리소스(124)는 하나 이상의 애플리케이션("APP")(124-1), 하나 이상의 가상 머신("VM")(124-2), 가상화된 스토리지("VS")(124-3), 하나 이상의 하이퍼바이저("HYP")(124-4), 또는 이와 유사한 것과 같은, 클라우드 리소스들의 그룹을 포함한다.
애플리케이션(124-1)은 사용자 디바이스(110) 및/또는 플랫폼(120)에 제공되거나 또는 이에 의해 액세스될 수 있는 하나 이상의 소프트웨어 애플리케이션을 포함한다. 애플리케이션(124-1)은 사용자 디바이스(110) 상에 소프트웨어 애플리케이션들을 설치하고 실행할 필요성을 제거할 수 있다. 예를 들어, 애플리케이션(124-1)은 플랫폼(120)과 연관된 소프트웨어 및/또는 클라우드 컴퓨팅 환경(122)을 통해 제공될 수 있는 임의의 다른 소프트웨어를 포함할 수 있다. 일부 구현들에서, 하나의 애플리케이션(124-1)은 가상 머신(124-2)을 통해 하나 이상의 다른 애플리케이션(124-1)으로/으로부터 정보를 전송/수신할 수 있다. 예를 들어, 애플리케이션(124-1)은 오디오 스트리밍, 비주얼 스트리밍, 오브젝트 설명 스트림, 장면 설명 스트림 등을 포함하지만 이에 제한되지 않는 미디어 스트리밍을 제공할 수 있다. 장면 설명은 일반적으로 장면을 설명하는 디스크립터(descriptor)를 지칭한다. 장면은 일반적으로 임의의 2D, 3D, 및/또는 몰입형 오브젝트들 및 그들의 연관된 속성들, 커맨드들, 및/또는 거동들을 지칭할 수 있다. 장면 설명은 오디오, 비디오 및 그래픽 오브젝트들의 계층적 표현인 장면 그래프의 형태로 송신될 수 있다. 장면 설명은 다른 타입들의 스트림들, 예를 들어, 오디오 스트림, 비주얼 스트림, 오브젝트 설명 스트림 등과는 독립적으로 송신될 수 있다는 점에 유의한다.
가상 머신(124-2)은 물리적 머신과 같이 프로그램들을 실행하는 머신(예를 들어, 컴퓨터)의 소프트웨어 구현을 포함한다. 가상 머신(124-2)은 가상 머신(124-2)에 의한 임의의 실제 머신에 대한 사용 및 대응 정도에 따라 시스템 가상 머신 또는 프로세스 가상 머신일 수 있다. 시스템 가상 머신은 완전한 운영 체제(operating system)("OS")의 실행을 지원하는 완전한 시스템 플랫폼을 제공할 수 있다. 프로세스 가상 머신은 단일 프로그램을 실행할 수 있고, 단일 프로세스를 지원할 수 있다. 일부 구현들에서, 가상 머신(124-2)은 사용자(예를 들어, 사용자 디바이스(110))를 대신하여 실행될 수 있고, 데이터 관리, 동기화, 또는 장기간 데이터 전송들과 같은, 클라우드 컴퓨팅 환경(122)의 인프라스트럭처를 관리할 수 있다.
가상화된 스토리지(124-3)는 컴퓨팅 리소스(124)의 스토리지 시스템들 또는 디바이스들 내에 가상화 기법들을 사용하는 하나 이상의 스토리지 시스템 및/또는 하나 이상의 디바이스를 포함한다. 일부 구현들에서, 스토리지 시스템의 맥락 내에서, 가상화들의 타입들은 블록 가상화(block virtualization) 및 파일 가상화(file virtualization)를 포함할 수 있다. 블록 가상화는 물리적 스토리지 또는 이종 구조(heterogeneous structure)에 상관없이 스토리지 시스템이 액세스될 수 있도록, 물리적 스토리지로부터 논리적 스토리지를 추상화(abstraction)(또는 분리)하는 것을 지칭할 수 있다. 분리는 관리자들이 최종 사용자들을 위한 스토리지를 관리하는 방법에 있어서의 유연성을 스토리지 시스템의 관리자들에게 허가할 수 있다. 파일 가상화는 파일 레벨에서 액세스되는 데이터와 파일들이 물리적으로 저장되는 위치 사이의 의존성들을 제거할 수 있다. 이것은 스토리지 사용, 서버 통합, 및/또는 무중단 파일 마이그레이션들(non-disruptive file migrations)의 성능의 최적화를 가능하게 할 수 있다.
하이퍼바이저(124-4)는 다수의 운영 체제들(예를 들어, "게스트 운영 체제들(guest operating systems)")이, 컴퓨팅 리소스(124)와 같은, 호스트 컴퓨터 상에서 동시에 실행되는 것을 허용하는 하드웨어 가상화 기법들을 제공할 수 있다. 하이퍼바이저(124-4)는 게스트 운영 체제들에 가상 운영 플랫폼을 제시할 수 있고, 게스트 운영 체제들의 실행을 관리할 수 있다. 다양한 운영 체제들의 다수의 인스턴스들이 가상화된 하드웨어 리소스들을 공유할 수 있다.
네트워크(130)는 하나 이상의 유선 및/또는 무선 네트워크를 포함한다. 예를 들어, 네트워크(130)는 셀룰러 네트워크(예를 들어, 5G(fifth generation) 네트워크, LTE(long-term evolution) 네트워크, 3G(third generation) 네트워크, CDMA(code division multiple access) 네트워크 등), PLMN(public land mobile network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 전화 네트워크(예를 들어, PSTN(Public Switched Telephone Network)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유-기반 네트워크, 또는 이와 유사한 것, 및/또는 이러한 또는 다른 타입들의 네트워크들의 조합을 포함할 수 있다.
도 1에 도시된 디바이스들 및 네트워크들의 수 및 배열은 예로서 제공된다. 실제로, 추가적인 디바이스들 및/또는 네트워크들, 더 적은 디바이스들 및/또는 네트워크들, 상이한 디바이스들 및/또는 네트워크들, 또는 도 1에 도시된 것들과는 상이하게 배열된 디바이스들 및/또는 네트워크들이 있을 수 있다. 또한, 도 1에 도시된 둘 이상의 디바이스는 단일 디바이스 내에 구현될 수 있거나, 또는 도 1에 도시된 단일 디바이스는 다수의 분산된 디바이스들로서 구현될 수 있다. 추가적으로, 또는 대안적으로, 환경(100)의 디바이스들의 세트(예를 들어, 하나 이상의 디바이스)는 환경(100)의 디바이스들의 다른 세트에 의해 수행되는 것으로서 설명되는 하나 이상의 기능을 수행할 수 있다.
도 2는 도 1의 하나 이상의 디바이스의 예시적인 컴포넌트들의 블록도이다. 디바이스(200)는 사용자 디바이스(110) 및/또는 플랫폼(120)에 대응할 수 있다. 도 2에 도시된 바와 같이, 디바이스(200)는 버스(210), 프로세서(220), 메모리(230), 스토리지 컴포넌트(240), 입력 컴포넌트(250), 출력 컴포넌트(260), 및 통신 인터페이스(270)를 포함할 수 있다.
버스(210)는 디바이스(200)의 컴포넌트들 사이의 통신을 허가하는 컴포넌트를 포함한다. 프로세서(220)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 프로세서(220)는 CPU(central processing unit), GPU(graphics processing unit), APU(accelerated processing unit), 마이크로프로세서, 마이크로컨트롤러, DSP(digital signal processor), FPGA(field-programmable gate array), ASIC(application-specific integrated circuit), 또는 다른 타입의 처리 컴포넌트이다. 일부 구현들에서, 프로세서(220)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서를 포함한다. 메모리(230)는 RAM(random access memory), ROM(read only memory), 및/또는 프로세서(220)에 의한 사용을 위한 정보 및/또는 명령어들을 저장한 다른 타입의 동적 또는 정적 스토리지 디바이스(예를 들어, 플래시 메모리, 자기 메모리, 및/또는 광 메모리)를 포함한다.
스토리지 컴포넌트(240)는 디바이스(200)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 스토리지 컴포넌트(240)는, 대응하는 드라이브와 함께, 하드 디스크(예를 들어, 자기 디스크, 광 디스크, 광자기 디스크, 및/또는 솔리드 스테이트 디스크), CD(compact disc), DVD(digital versatile disc), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 타입의 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다.
입력 컴포넌트(250)는 디바이스(200)가, 예컨대 사용자 입력(예를 들어, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)을 통해, 정보를 수신하는 것을 허가하는 컴포넌트를 포함한다. 추가적으로, 또는 다른 대안적으로, 입력 컴포넌트(250)는 정보를 감지하는 센서(예를 들어, GPS(global positioning system) 컴포넌트, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수 있다. 출력 컴포넌트(260)는 디바이스(200)(예를 들어, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드(LED))로부터의 출력 정보를 제공하는 컴포넌트를 포함한다.
통신 인터페이스(270)는 디바이스(200)가 예컨대 유선 접속, 무선 접속, 또는 유선 접속과 무선 접속의 조합을 통해, 다른 디바이스들과 통신할 수 있게 하는 트랜시버-유사(transceiver-like) 컴포넌트(예를 들어, 트랜시버 및/또는 별개의 수신기 및 송신기)를 포함한다. 통신 인터페이스(270)는 디바이스(200)가 다른 디바이스로부터 정보를 수신하는 것 및/또는 다른 디바이스에 정보를 제공하는 것을 허가할 수 있다. 예를 들어, 통신 인터페이스(270)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, RF(radio frequency) 인터페이스, USB(universal serial bus) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함할 수 있다.
디바이스(200)는 본 명세서에 설명된 하나 이상의 프로세스를 수행할 수 있다. 디바이스(200)는 프로세서(220)가, 메모리(230) 및/또는 스토리지 컴포넌트(240)와 같은, 비일시적 컴퓨터 판독가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 응답하여 이러한 프로세스들을 수행할 수 있다. 컴퓨터 판독가능 매체는 본 명세서에서 비일시적 메모리 디바이스로서 정의된다. 메모리 디바이스는 단일 물리적 스토리지 디바이스 내의 메모리 공간 또는 다수의 물리적 스토리지 디바이스들에 걸쳐 확산된 메모리 공간을 포함한다.
소프트웨어 명령어들은 다른 컴퓨터 판독가능 매체로부터 또는 통신 인터페이스(270)를 통해 다른 디바이스로부터 메모리(230) 및/또는 스토리지 컴포넌트(240) 내로 판독될 수 있다. 실행될 때, 메모리(230) 및/또는 스토리지 컴포넌트(240)에 저장된 소프트웨어 명령어들은 프로세서(220)로 하여금 본 명세서에 설명된 하나 이상의 프로세스를 수행하게 할 수 있다. 추가적으로, 또는 대안적으로, 본 명세서에 설명된 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 이와 조합하여 하드와이어드 회로(hardwired circuitry)가 사용될 수 있다. 따라서, 본 명세서에 설명된 구현들은 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
도 2에 도시된 컴포넌트들의 수 및 배열은 예로서 제공된다. 실제로, 디바이스(200)는 도 2에 도시된 것들 외의 추가적인 컴포넌트들, 그것들보다 더 적은 컴포넌트들, 그것들과는 상이한 컴포넌트들, 또는 그것들과는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 디바이스(200)의 컴포넌트들의 세트(예를 들어, 하나 이상의 컴포넌트)는 디바이스(200)의 컴포넌트들의 다른 세트에 의해 수행되는 것으로서 설명되는 하나 이상의 기능을 수행할 수 있다.
도 3을 참조하면, glTF(Graphics Language Transmission Format)는 애플리케이션 프로그래밍 인터페이스(API)-중립 런타임 자산 3D 모델링 전달 포맷이다. 전통적인 3D 모델링 툴들과 비교하여, glTF는 3D 콘텐츠의 송신 및 로딩을 위한 더 효율적이고, 확장가능하며, 상호운용가능한 포맷을 제공한다.
glTF 장면은 다수의 glTF 자산들의 조합일 수 있다. glTF 자산들은, 예를 들어, 장면 오브젝트(301), 노드(302), 카메라(303), 메시(304), 라이트(305), 애니메이션(306), 액세서(307), 자료(308), 스킨(309), 버퍼뷰(bufferview)(310), 기법(311), 텍스처(312), 버퍼(313), 프로그램(314), 이미지(315), 샘플러(316), 셰이더(317), 및 외부 데이터 지원을 포함할 수 있는 전체 장면 설명을 포함하는 JSON(JavaScript Object Notation)-포맷화된 파일들일 수 있다.
glTF는 또한 임의의 위에서 언급한 장면 오브젝트들에서 참조될 수 있는 외부 데이터 소스들을 지원한다. 실시예들에서, 애니메이션(306) 또는 다른 버퍼 기반 데이터(313)를 위해 이진 파일이 사용될 수 있다. 이미지 파일은 오브젝트 텍스처들(312)에 사용될 수 있다.
도 5를 참조하면, 위에서 언급한 바와 같이, glTF 장면은 JSON 포맷으로 조직될 수 있다. glTF 자산은 렌더링할 시각적 오브젝트들의 세트일 수 있는 0개 이상의 장면(503)을 포함할 수 있다. 장면들은 장면 어레이에서 정의될 수 있다. 도 5에 예시된 예에서, 단일 노드(501)를 갖는 단일 장면(506)이 있지만, 실시예들은 이에 제한되지 않는다. 다양한 파라미터들이 각각의 노드 오브젝트와 연관될 수 있다. 예를 들어, 이름(502)은 노드 오브젝트의 이름을 특정할 수 있고, 장면 이름(504)은 단일 장면의 이름을 특정할 수 있다.
glTF 장면 자산들은 3D 또는 몰입형 장면을 사용자들에게 렌더링하기 위해 제시 엔진(presentation engine)에 의해 소비될 수 있다. 기존의 glTF 신택스는 정적 또는 컴퓨터-생성 애니메이션들을 포함하는 3D 오브젝트들만을 지원한다. 비디오/오디오 미디어 타입들을 렌더링하는 것은 고사하고, 비디오 또는 오디오와 같은 미디어 타입들에 대한 지원이 없다.
한편, 기존의 glTF는 지리적 좌표계들을 사용하여 장면을 설명할 수 없고, 일부 미디어 제시 시나리오들에서는, 이러한 특징이 요구된다.
따라서, 전통적인 2D 플랫 비디오, 가상 현실(VR), 증강 현실(AR), 확장 현실(XR), 및 공간적 오디오들과 같은 몰입형 미디어 콘텐츠를 포함하는 미디어 타입들을 지원하도록 glTF를 확장할 필요가 있다. 이것은 비디오/오디오 신택스 및 미디어 전달 및 렌더링을 위한 시스템을 지원하기 위한 확장을 필요로 할 수 있다.
MPEG(Moving Picture Experts Group)는 몰입형 미디어 콘텐츠를 지원하기 위해 glTF 사양 외에 일부 확장들을 정의한다. 도 3을 참조하면, 새로운 확장들은 MPEG_media(330), MPEG_scene_dynamic(331), MPEG_texture_video(333), MEPG_animation_timing(332), MPEG_audio_spatial(334), MPEG_accessor_timed(335), MPEG_buffer_circular(336)이다. 도 3에서, 일반적으로, 둥근 윤곽들을 갖는 요소들, 예를 들어, 요소들(301-317)은 glTF 요소들일 수 있고, 정사각형 윤곽들을 갖는 요소들, 예를 들어, 요소들(330-336)은 glTF 사양의 MPEG 기반 확장들에 대응할 수 있지만, 실시예들은 이에 제한되지 않는다.
루트(root) 식별자로 MPEG_media(330)가 지정되면, MPEG_media가 지원될 수 있다. 도 6을 참조하면, MPEG 미디어를 지원하는 신택스가 최상위 레벨 JSON 신택스로서 선언될 수 있다. 도 6에서의 601로부터 604까지의 신택스는 지원되는 경우 도시된 바와 같이 정확히 제시될 수 있다.
장면 업데이트들(Scene Updates)은 JSON 패치 프로토콜을 사용하여 표현될 수 있고, MPEG_scene_dynamic(331)는 JSON 패치 프로토콜을 지원하는데 사용될 수 있다.
MPEG_texture_video(333)에 의해 식별되는 MPEG 텍스처 비디오 확장은 glTF 텍스처 오브젝트를 MPEG_media 오브젝트에 의해 열거되는 MPEG 미디어 및 그 각자의 트랙에 링크시킬 가능성을 제공할 수 있다. MPEG 텍스처 비디오 확장은 또한 MPEG_accessor_timed(335)에 대한 참조를 제공할 수 있고, 여기서 디코딩된 시간설정형 텍스처가 이용가능하게 될 것이다.
MPEG_audio_spatial(334) 확장은 다수의 오디오 타입들을 지원할 수 있다.
시간설정형 데이터 액세스를 지원하기 위해, 버퍼 요소는 원형 버퍼 기능성을 제공하도록 확장될 수 있다. 이 확장은 MPEG_buffer_circular(336)로 명명되고, glTF "버퍼들" 오브젝트들, 예를 들어, 버퍼(313)의 일부로서 포함될 수 있다.
위의 MEPG 확장들은 glTF를 사용하여 몰입형 경험들의 생성을 허용할 수 있다. 결국, MPEG 확장을 갖는 glTF 자산들은 시각화를 위해 렌더링 엔진에 로딩되는 데 사용될 수 있다.
도 4를 참조하면, 참조 미디어 장면 설명 아키텍처(400)는 오디오/비디오와 같은 미디어 타입을 지원하기 위해 MPEG 확장들이 어떻게 사용될 수 있는지의 예를 예시한다. 미디어 콘텐츠는 미디어 클라우드(401)와 같은 외부 소스들로부터 미디어 검색 엔진 및 미디어 액세스 기능들(MAF)(402)을 사용하여 검색되고, 비디오 디코더(403), 오디오 디코더(404), 및 다른 데이터 압축기(405)를 사용하여 처리되고, 비디오 버퍼(406), 오디오 버퍼(407), 및 다른 버퍼(408)에 버퍼링되고, 제시 엔진(409)에 의해 렌더링될 수 있다. 일부 경우들에서, 미디어 콘텐츠는 로컬 스토리지(410)에 저장될 수 있다. MAF들은 여러 MPEG 표준들로부터의 요소들을, 특정적이지만 널리 사용가능한 애플리케이션들에 적합한 단일 사양에 통합하기 위한 프레임워크를 제공한다. 예를 들어, MAF들은 미디어의 교환, 관리, 편집, 및 제시를 용이하게 하는 잘 정의된 포맷으로 제시하기 위해 시간설정형 미디어 정보와 메타데이터를 조합하는 방법을 특정할 수 있다. 제시는 시스템에 '로컬'일 수 있거나 네트워크 또는 다른 스트림 전달 메커니즘을 통해 액세스가능할 수 있다.
도 4를 참조하면, MPEG 장면 설명 확장들은 제시 엔진(409)을 미디어 검색 엔진(402)으로부터 분리시킬 수 있다. 제시 엔진(409)과 미디어 검색 엔진(402)은 미리 정의된 프로그래밍 인터페이스들을 통해 통신할 수 있고, 이를 통해 제시 엔진(409)은 장면의 렌더링을 위해 요구되는 미디어 데이터를 요청할 수 있다. 미디어 검색 엔진(402)은 요청된 미디어를 검색하고 이를 적시에 그리고 제시 엔진(409)에 의해 즉시 처리될 수 있는 포맷으로 이용가능하게 만들 수 있다. 예를 들어, 요청된 미디어 자산은 압축되어 네트워크에 상주할 수 있으므로, 미디어 검색 엔진(402)은 자산을 검색 및 디코딩하고, 결과적인 미디어 데이터를 렌더링을 위해 제시 엔진(409)에 전달할 것이다. 미디어 데이터는 버퍼들의 형태로 미디어 검색 엔진(402)으로부터 제시 엔진(409)으로 전달될 수 있다. 미디어 데이터에 대한 요청들은 제시 엔진(409)으로부터 미디어 검색 엔진(402)으로 미디어 검색 API를 통해 전달될 수 있다. 비디오 디코딩 리소스의 유연한 사용을 위해, 비디오 디코더(403)가 사용될 수 있다. 비디오 디코더(403)가 사용될 때, 제시 엔진(409)은 입력 포맷화 및 출력 포맷화를 위한 정보를 애플리케이션 구성 API들을 통해 비디오 디코더(403)에 제공할 수 있다.
위에서 논의한 바와 같이, glTF 신택스는 JSON 파일로 표현될 수 있다. IETF(Internet Engineering Task Force) CBOR(Concise Binary Object Representation)은 전통적인 JSON 포맷과 비교하여 간결한 데이터 포맷을 나타낼 수 있다. CBOR은 이름/값 쌍 포맷의 JSON과 같은 유사한 데이터 오브젝트들에 관련되지만, 이진 및 콤팩트 방식으로 표현되며, 또한 키-값 타입들을 훨씬 더 많이 지원한다. CBOR 포맷의 파일의 크기는 JSON 포맷의 대응하는 파일보다 작을 수 있다. 일부 경우들에서, CBOR 파일은 대응하는 JSON 파일보다 50%보다 더 많이 작을 수 있다. CBOR은 IANA(Internet Assigned Numbers Authority)에 "application/cbor"로서 등록되어 있다.
CBOR은, 콤팩트 데이터 크기 및 JSON과의 상호교환가능성으로 인해 널리 지원되는 glTF 상호교환가능한 압축된 파일 포맷들 중 하나로서 사용될 수 있다.
CBOR 내의 정보는 이진 형태로 저장된다. 정보에 대한 많은 사용 사례들이 데이터를 이해하기 위한 머신들을 포함하기 때문에, 이진 데이터 포맷은 저장된 데이터를 이해하기 위해 컴퓨터 또는 머신이 사용될 때마다 파싱될 필요가 있을 수 있는 JSON 또는 XML과 같은 인간-판독가능 데이터 포맷들에 비해 속도 이점들을 가질 수 있다.
도 7a는 JSON 포맷의 파일의 예를 예시하고, 도 7b는 CBOR 포맷의 대응하는 파일의 예를 예시한다. 예를 들어, 도 7a의 JSON 포맷화된 파일 내의 문자 "a"(711)는 도 7b의 CBOR 포맷화된 파일 내의 0x61(721)에 대응할 수 있다. 유사하게, 도 7a의 JSON 포맷화된 파일 내의 문자 "b"(712)는 도 7b의 CBOR 포맷화된 파일 내의 0x62(722)에 대응할 수 있고, 도 7a의 JSON 포맷화된 파일 내의 문자 "c"(713)는 도 7b의 CBOR 포맷화된 파일 내의 0x63(723)에 대응할 수 있다.
장면 설명을 위해 JSON과 비교하여 CBOR을 사용하면, 단지 JSON의 스트링 오브젝트 대신에 다수의 키-값 타입들을 지원하고, 데이터 크기가 작다는 관점에서 이점들을 가져올 수 있다. 기능 프로그래밍 인터페이스들은 제시된 미디어 장면 설명 참조 아키텍처에서, 더 정확하게는 미디어 액세스 기능 모듈에서 사용될 수 있다.
glTF에 의한 CBOR의 지원이 인기를 얻고 있기 때문에, 이러한 지원은, 예를 들어, glTF 파일 포맷 상호운용성을 증가시키고, 로컬 스토리지 또는 캐시에 대한 파일 크기를 감소시키고, MAF(402)에서의 최소 처리 능력으로 glTF 파일 전송 레이턴시를 감소시키기 위해 MPEG 장면 설명에 추가될 수 있다.
실시예들에 따른 CBOR 파서 함수는 CBOR 입력을 glTF 네이티브 지원 JSON 포맷으로 변환하기 위해 MAF(402)에 의해 구현될 수 있고, 또한 큰 glTF 파일을 로컬 스토리지 또는 캐시(410)에 저장(save)하기 위한 파일 압축기로서 사용될 수 있다.
CBOR 파서 API는, 이하의 표 1에 나타낸 바와 같이, cbor2Json(), json2Cbor 및 save()와 같은 메소드들 중 하나를 제공한다:
Figure pct00001
상세한 인터페이스 설명은 다음과 같을 수 있다:
Figure pct00002
위의 제안된 함수들은, 예를 들어, 다음과 같은 다양한 시나리오들에서 사용될 수 있다.
도 8을 참조하면, glTF "url" 또는 "uri" 신택스는 CBOR 이진 데이터 블롭을 가리킬 수 있다(802). 실시예들에서, 이진수(binary)가 실제로 CBOR 데이터 포맷인지를 특정하는 2가지 방식이 있을 수 있다. 예 1에 따르면, "mimeTypes"를 "application/cbor"로 특정하는 MIME(Multipurpose Internet Mail Extension) 타입이 시그널링될 수 있다(801).
예 2에 따르면, 프리픽스 "application/cbor;"가 실제 이진 데이터의 앞에 포함될 수 있다. 예 1과 예 2가 함께 사용될 수 있다. 어떤 경우든, CBOR 이진 데이터를 취하는 "cbor2Json(Object)"라고 하는 함수를 호출하여 CBOR 파일 포맷을 JSON으로 파싱할 수 있다.
입력 glTF가 CBOR 포맷이면, 출력은 cbor2Json() API를 사용하여 glTF가 될 수 있다.
입력이 네이티브 glTF 포맷이면, 어떠한 변환도 필요하지 않을 수 있다.
로컬 스토리지 또는 캐시 목적을 위해, json2Cbor() 및 save() 인터페이스를 사용하여 glTF 파일이 CBOR로서 저장될 수 있다.
따라서, 실시예들은 CBOR과의 glTF 파일 포맷 상호운용성을 제공하고, 로컬 스토리지 또는 캐시를 위한 파일 크기를 감소시키고, 데이터 전송 속도를 증가시키고, 파일 전송 레이턴시를 감소시키는 방법들에 관한 것일 수 있다.
도 9a 내지 도 9c를 참조하여, 미디어 저장 및 전달을 관리하기 위한 프로세스들(900A, 900B, 및 900C)이 이하에서 설명된다.
도 9a는 미디어 저장 및 전달을 관리하기 위한 예시적인 프로세스(900A)의 흐름도이다.
도 9a에 도시된 바와 같이, 프로세스(900A)는, 미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF 파일을 획득하는 단계(블록 911)를 포함할 수 있다. 실시예들에서, MAF는 MAF(402)에 대응할 수 있다.
도 9a에 더 도시된 바와 같이, 프로세스(900A)는 glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하는 단계(블록 912)를 포함할 수 있다.
도 9a에 더 도시된 바와 같이, 프로세스(900A)는 이진 데이터 블롭이 CBOR 포맷을 갖는다고 결정하는 단계(블록 913)를 포함할 수 있다.
도 9a에 더 도시된 바와 같이, 프로세스(900A)는 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 이진 데이터 블롭을 JSON 포맷을 갖는 오브젝트로 변환하는 단계(블록 914)를 포함할 수 있다.
도 9a에 도시된 바와 같이, 프로세스(900A)는 오브젝트에 기초하여 장면에 대응하는 미디어 콘텐츠를 획득하는 단계(블록 914)를 포함할 수 있다.
실시예들에서, JSON 포맷을 갖는 오브젝트는 CBOR 포맷을 갖는 이진 데이터 블롭보다 클 수 있다.
실시예들에서, 이진 데이터 블롭은 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입에 기초하여 CBOR 포맷을 갖는 것으로 결정될 수 있다.
실시예들에서, 이진 데이터 블롭은 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 CBOR 포맷을 갖는 것으로 결정될 수 있다.
실시예들에서, 이진 데이터 블롭은 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입 및 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 CBOR 포맷을 갖는 것으로 결정될 수 있다.
실시예들에서, MAF는 MPEG(Moving Picture Experts Group) 장면 설명 아키텍처에 포함될 수 있다.
실시예들에서, CBOR 파서 함수는 MAF와 연관된 애플리케이션 프로그래밍 인터페이스를 사용하여 구현될 수 있다.
도 9b는 미디어 저장 및 전달을 관리하기 위한 예시적인 프로세스(900B)의 흐름도이다. 실시예들에서, 프로세스(900B)의 하나 이상의 블록은 프로세스(900A)의 하나 이상의 블록과 조합하여 수행될 수 있다. 예를 들어, 프로세스(900B)의 하나 이상의 블록은 프로세스(900A)의 하나 이상의 블록 후에 수행될 수 있다.
도 9b에 더 도시된 바와 같이, 프로세스(900B)는 glTF 파일이 CBOR 포맷을 갖는다고 결정하는 단계(블록 921)를 포함할 수 있다.
도 9b에 도시된 바와 같이, 프로세스(900B)는 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 glTF 파일을 JSON 포맷을 갖는 변환된 glTF 파일로 변환하는 단계(블록 922)를 포함할 수 있다. 실시예들에서, 이 CBOR 파서 함수는 블록 914에서 사용되는 CBOR 파서 함수와 상이할 수 있다.
실시예들에서, JSON 포맷을 갖는 변환된 glTF 파일은 CBOR 포맷을 갖는 glTF 파일보다 클 수 있다.
도 9c는 미디어 저장 및 전달을 관리하기 위한 예시적인 프로세스(900C)의 흐름도이다. 실시예들에서, 프로세스(900C)의 하나 이상의 블록은 프로세스들(900A 및/또는 900B)의 하나 이상의 블록과 조합하여 수행될 수 있다. 예를 들어, 프로세스(900C)의 하나 이상의 블록은 프로세스(900A)의 하나 이상의 블록 후에, 또는 프로세스(900B)의 하나 이상의 블록 후에 수행될 수 있다.
도 9c에 도시된 바와 같이, 프로세스(900C)는 MAF에 의해 구현된 JSON 파서 함수를 사용하여 변환된 glTF 파일을 CBOR 포맷을 갖는 재변환된 glTF로 재변환하는 단계(블록 931)를 포함할 수 있다.
도 9c에 더 도시된 바와 같이, 프로세스(900C)는 재변환된 glTF 파일을 로컬 스토리지 또는 캐시 중 적어도 하나에 저장하는 단계(블록 932)를 포함할 수 있다.
도 9a 내지 도 9c는 프로세스들(900A, 900B, 및 900C)의 예시적인 블록들을 도시하지만, 일부 구현들에서, 프로세스들(900A, 900B, 및 900C)은 도 9a 내지 도 9c에 묘사된 것들 외의 추가적인 블록들, 그것들보다 더 적은 블록들, 그것들과는 상이한 블록들, 또는 그것들과는 상이하게 배열된 블록들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 프로세스들(900A, 900B, 및 900C)의 프로세스들의 블록들 중 2개 이상이 병렬로 수행될 수 있다. 실시예들에서, 프로세스들(900A, 900B, 및 900C)의 임의의 하나 이상의 블록은 임의의 순서로 프로세스들(900A, 900B, 및 900C)의 임의의 다른 하나 이상의 블록과 조합될 수 있고, 프로세스들(900A, 900B, 및 900C)의 임의의 블록들 중 임의의 하나 이상의 블록은 원하는 대로 분할되거나 조합될 수 있다.
또한, 제안된 방법들은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 제안된 방법들 중 하나 이상을 수행하기 위해 비일시적 컴퓨터 판독가능 매체에 저장되는 프로그램을 실행한다.
전술한 개시내용은 예시 및 설명을 제공하지만, 포괄적이거나 구현들을 개시된 정확한 형태로 제한하는 것으로 의도되지 않는다. 수정들 및 변경들이 위의 개시내용에 비추어 가능하거나, 구현들의 실시로부터 획득될 수 있다.
본 명세서에 설명된 시스템들 및/또는 방법들은 상이한 형태들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다는 것이 명백할 것이다. 이러한 시스템들 및/또는 방법들을 구현하는 데 사용되는 실제의 특수화된 제어 하드웨어 또는 소프트웨어 코드는 구현들을 제한하지 않는다. 따라서, 소프트웨어 및 하드웨어는 본 명세서에서의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수 있다는 것이 이해되어야 한다.
특징들의 특정한 조합들이 청구항들에서 인용되고/되거나 명세서에 개시되지만, 이들 조합들은 가능한 구현들의 개시내용을 제한하는 것으로 의도되지 않는다. 사실, 이러한 특징들 중 다수는 구체적으로 청구항들에 인용되고/되거나 명세서에 개시되지 않은 방식으로 조합될 수 있다. 아래에 나열된 각각의 종속항은 하나의 청구항에만 직접적으로 의존할 수 있지만, 가능한 구현들의 개시내용은 청구항 세트에서의 모든 다른 청구항과의 조합으로 각각의 종속항을 포함한다.
본 명세서에 사용된 어떠한 요소, 행위, 또는 지침도 이와 같이 명시적으로 설명되지 않는 한 불가결하거나 필수적인 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 사용되는 바와 같이, 단수 표현(articles "a" and "an")은 하나 이상의 항목을 포함하도록 의도되고, "하나 이상"과 상호교환가능하게 사용될 수 있다. 또한, 본 명세서에서 사용되는 바와 같이, 용어 "세트"는 하나 이상의 항목(예를 들어, 관련 항목, 비관련 항목, 관련 항목과 비관련 항목의 조합 등)을 포함하도록 의도되며, "하나 이상"과 상호교환가능하게 사용될 수 있다. 하나의 항목만이 의도되는 경우, 용어 "하나" 또는 유사한 언어가 사용된다. 또한, 본 명세서에서 사용되는 바와 같이, 용어들 "갖다", "갖는" 등은 개방형 용어들인 것으로 의도된다. 또한, "~에 기초하여(based on)"라는 구절은 명백히 달리 지시되지 않는 한 "~에 적어도 부분적으로 기초하여(based, at least in part, on)"를 의미하도록 의도된다.

Claims (20)

  1. 미디어 저장 및 전달(media storage and delivery)을 관리하는 방법으로서, 상기 방법은 적어도 하나의 프로세서에 의해 구현되며,
    미디어 액세스 기능(media access function, MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하는 단계;
    상기 glTF 파일로부터 이진 데이터 블롭(binary data blob)을 지시하는 URL(uniform resource locator) 파라미터를 획득하는 단계;
    상기 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하는 단계;
    상기 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 상기 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하는 단계; 및
    상기 오브젝트에 기초하여 상기 장면에 대응하는 미디어 콘텐츠를 획득하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 JSON 포맷을 갖는 오브젝트는 상기 CBOR 포맷을 갖는 이진 데이터 블롭보다 큰, 방법.
  3. 제1항에 있어서, 상기 이진 데이터 블롭은 상기 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입에 기초하여 CBOR 포맷을 갖는 것으로 결정되는, 방법.
  4. 제1항에 있어서, 상기 이진 데이터 블롭은 상기 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 상기 CBOR 포맷을 갖는 것으로 결정되는, 방법.
  5. 제1항에 있어서, 상기 이진 데이터 블롭은 상기 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입 및 상기 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 상기 CBOR 포맷을 갖는 것으로 결정되는, 방법.
  6. 제1항에 있어서, 상기 MAF는 MPEG(Moving Picture Experts Group) 장면 설명 아키텍처에 포함되는, 방법.
  7. 제1항에 있어서, 상기 CBOR 파서 함수는 상기 MAF와 연관된 애플리케이션 프로그래밍 인터페이스를 사용하여 구현되는, 방법.
  8. 미디어 저장 및 전달을 관리하기 위한 디바이스로서,
    프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서
    를 포함하고,
    상기 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금, 미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하게 하도록 구성되는 제1 획득 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하게 하도록 구성되는 제2 획득 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하게 하도록 구성되는 결정 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 상기 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하게 하도록 구성되는 변환 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 오브젝트에 기초하여 상기 장면에 대응하는 미디어 콘텐츠를 획득하게 하도록 구성되는 제3 획득 코드를 포함하는, 디바이스.
  9. 제8항에 있어서, 상기 JSON 포맷을 갖는 오브젝트는 상기 CBOR 포맷을 갖는 이진 데이터 블롭보다 큰, 디바이스.
  10. 제8항에 있어서, 상기 이진 데이터 블롭은 상기 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입에 기초하여 CBOR 포맷을 갖는 것으로 결정되는, 디바이스.
  11. 제8항에 있어서, 상기 이진 데이터 블롭은 상기 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 상기 CBOR 포맷을 갖는 것으로 결정되는, 디바이스.
  12. 제8항에 있어서, 상기 이진 데이터 블롭은 상기 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입 및 상기 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 상기 CBOR 포맷을 갖는 것으로 결정되는, 디바이스.
  13. 제8항에 있어서, 상기 MAF는 MPEG(Moving Picture Experts Group) 장면 설명 아키텍처에 포함되는, 디바이스.
  14. 제8항에 있어서, 상기 CBOR 파서 함수는 상기 MAF와 연관된 애플리케이션 프로그래밍 인터페이스를 사용하여 구현되는, 디바이스.
  15. 명령어들을 저장한 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어들은, 미디어 저장 및 전달을 관리하기 위한 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    미디어 액세스 기능(MAF)에 의해, 장면에 대응하는 glTF(Graphics Language Transmission Format) 파일을 획득하게 하고;
    상기 glTF 파일로부터 이진 데이터 블롭을 지시하는 URL(uniform resource locator) 파라미터를 획득하게 하고;
    상기 이진 데이터 블롭이 CBOR(Concise Binary Object Representation) 포맷을 갖는다고 결정하게 하고;
    상기 MAF에 의해 구현된 CBOR 파서 함수를 사용하여 상기 이진 데이터 블롭을 JSON(JavaScript Object Notation) 포맷을 갖는 오브젝트로 변환하게 하고;
    상기 오브젝트에 기초하여 상기 장면에 대응하는 미디어 콘텐츠를 획득하게 하도록 구성되는 하나 이상의 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 상기 JSON 포맷을 갖는 오브젝트는 상기 CBOR 포맷을 갖는 이진 데이터 블롭보다 큰, 비일시적 컴퓨터 판독가능 매체.
  17. 제15항에 있어서, 상기 이진 데이터 블롭은 상기 glTF 파일에서 시그널링되는 MIME(Multipurpose Internet Mail Extension) 타입에 기초하여 CBOR 포맷을 갖는 것으로 결정되는, 비일시적 컴퓨터 판독가능 매체.
  18. 제15항에 있어서, 상기 이진 데이터 블롭은 상기 이진 데이터 블롭의 시작부에 포함된 프리픽스에 기초하여 상기 CBOR 포맷을 갖는 것으로 결정되는, 비일시적 컴퓨터 판독가능 매체.
  19. 제15항에 있어서, 상기 MAF는 MPEG(Moving Picture Experts Group) 장면 설명 아키텍처에 포함되는, 비일시적 컴퓨터 판독가능 매체.
  20. 제15항에 있어서, 상기 CBOR 파서 함수는 상기 MAF와 연관된 애플리케이션 프로그래밍 인터페이스를 사용하여 구현되는, 비일시적 컴퓨터 판독가능 매체.
KR1020227030732A 2021-01-06 2021-10-13 미디어 장면 설명을 위한 방법 및 장치 KR20220131342A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163134569P 2021-01-06 2021-01-06
US63/134,569 2021-01-06
US17/499,380 US11797476B2 (en) 2021-01-14 2021-10-12 Method and apparatus for media scene description
US17/499,380 2021-10-12
PCT/US2021/054746 WO2022150080A1 (en) 2021-01-06 2021-10-13 Method and apparatus for media scene description

Publications (1)

Publication Number Publication Date
KR20220131342A true KR20220131342A (ko) 2022-09-27

Family

ID=82358290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227030732A KR20220131342A (ko) 2021-01-06 2021-10-13 미디어 장면 설명을 위한 방법 및 장치

Country Status (5)

Country Link
EP (1) EP4088193A4 (ko)
JP (1) JP7399548B2 (ko)
KR (1) KR20220131342A (ko)
CN (1) CN115280296A (ko)
WO (1) WO2022150080A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797475B2 (en) 2021-01-14 2023-10-24 Tencent America LLC Method and apparatus for media scene description
CN117689789A (zh) * 2023-12-28 2024-03-12 湖南芒果融创科技有限公司 一种实时渲染3d资产文件编解码方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8400497B2 (en) * 2007-09-07 2013-03-19 Samsung Electronics Co., Ltd Method and apparatus for generating stereoscopic file
KR102563795B1 (ko) 2015-07-02 2023-08-07 콘비다 와이어리스, 엘엘씨 자원 구동 동적 권한부여 프레임워크
JP7071161B2 (ja) 2018-02-28 2022-05-18 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10984579B2 (en) 2018-08-27 2021-04-20 Microsoft Technology Licensing, Llc Playback for embedded and preset 3D animations
US11218409B2 (en) * 2018-10-16 2022-01-04 Eluvio, Inc. Decentralized content fabric
US10636209B1 (en) * 2019-09-13 2020-04-28 Bongfish GmbH Reality-based three-dimensional infrastructure reconstruction
JP6746024B1 (ja) 2020-03-31 2020-08-26 株式会社ドワンゴ 3dモデルデータの管理システム、モデル配信サーバ、3dサービスサーバ、3dモデルデータの管理方法、モデル配信サーバのプログラム、および3dサービスサーバのプログラム

Also Published As

Publication number Publication date
CN115280296A (zh) 2022-11-01
EP4088193A1 (en) 2022-11-16
JP7399548B2 (ja) 2023-12-18
JP2023519378A (ja) 2023-05-10
EP4088193A4 (en) 2023-06-28
WO2022150080A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
US20220004405A1 (en) 3D API Redirection for Virtual Desktop Infrastructure
KR20220131342A (ko) 미디어 장면 설명을 위한 방법 및 장치
US20240007708A1 (en) Method and apparatus for media scene description
US20230418783A1 (en) Method and apparatus for media scene description
US20220414984A1 (en) Volumetric data processing using a flat file format
JP7271791B2 (ja) 混合イベントメッセージトラックを含むメディアシステムおよび方法
KR102503119B1 (ko) 트리-기반 포인트 클라우드 압축 미디어 스트림을 위한 방법 및 장치
US11838341B2 (en) Signaling schemes in events message tracks
WO2022225652A1 (en) Extended relationship signaling between events in event message tracks

Legal Events

Date Code Title Description
A201 Request for examination