KR20230154979A - 렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(itmf) 사양의 맵핑 아키텍처 - Google Patents

렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(itmf) 사양의 맵핑 아키텍처 Download PDF

Info

Publication number
KR20230154979A
KR20230154979A KR1020237034380A KR20237034380A KR20230154979A KR 20230154979 A KR20230154979 A KR 20230154979A KR 1020237034380 A KR1020237034380 A KR 1020237034380A KR 20237034380 A KR20237034380 A KR 20237034380A KR 20230154979 A KR20230154979 A KR 20230154979A
Authority
KR
South Korea
Prior art keywords
scene
file data
itmf
processor
graph
Prior art date
Application number
KR1020237034380A
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 US18/075,037 external-priority patent/US11985381B2/en
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20230154979A publication Critical patent/KR20230154979A/ko

Links

Images

Classifications

    • 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/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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Abstract

방법은, 장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하는 단계; 관련 장면 파일 데이터를 변환기에 전송하는 단계; 변환기에 의해, 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환하는 단계; 각자의 렌더링 엔진을 사용하여 변환된 장면 파일 데이터를 장면 표현으로 맵핑하는 단계를 포함하고, 장면 표현은 몰입형 기술 미디어 포맷(ITMF)과 호환가능하다.

Description

렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(ITMF) 사양의 맵핑 아키텍처
관련 출원에 대한 교차 참조
본 출원은 2022년 1월 10일자로 출원된 미국 특허 출원 제63/298,110호 및 2022년 12월 5일자로 출원된 미국 특허 출원 제18/075,037호에 기초하고 그에 대한 우선권을 주장하며, 그 개시내용들은 그 전체가 참고로 본 명세서에 포함된다.
기술분야
본 개시내용은 다양한 렌더링 엔진들의 장면 표현들을 갖는 ITMF 사양의 아키텍처 맵핑(architectural mapping)에 관한 것이다.
몰입형 미디어(immersive media)는, 디지털 시뮬레이션을 통해 물리적 세계를 생성하거나 모방하려고 시도함으로써, 임의의 또는 모든 인간 감각계를 시뮬레이션하여 사용자가 장면 내부에 물리적으로 존재한다는 인식을 생성하는, 몰입형 기술들을 포함한다.
현재 사용되고 있는 상이한 타입들의 몰입형 미디어 기술들이 있다: 가상 현실(Virtual Reality, VR), 증강 현실(Augmented Reality, AR), 혼합 현실(Mixed Reality, MR), 라이트 필드/홀로그래픽(Light Field/Holographic) 등. VR은 컴퓨터-생성 세계(computer-generated world)에 사용자를 배치하기 위해 헤드셋을 사용함으로써 사용자의 물리적 환경을 대체하는 디지털 환경을 지칭한다. 한편, AR은 클리어 비전(clear vision) 또는 스마트폰을 사용하여 디지털 미디어를 취하고 그것들을 주변의 실세계에 겹쳐 놓는다. MR은 실세계와 디지털 세계를 융합하여 기술과 물리적 세계가 공존할 수 있는 환경을 생성하는 것을 지칭한다.
라이트필드/홀로그래픽 기술들은 3D 공간 내의 광선들(light rays)로 구성되고 광선들은 각각의 지점 및 방향으로부터 나온다. 이는, 주위에 보이는 모든 것이, 임의의 소스로부터 나오고 공간을 통해 이동하여 오브젝트의 표면에 부딪치는 광에 의해 조명되고, 여기서 광은 부분적으로는 흡수되고 부분적으로는 우리의 눈에 도달하기 전에 다른 표면으로 반사된다는 개념에 기초한다. 라이트 필드를 적절하게 재현하면, 사용자에게 양안성(binocularity) 및 연속 모션 시차(continuous motion parallax)와 같은 3D 효과들을 제공할 것이다. 라이트필드 디스플레이들 아래의 기본 개념은, 홀로그래픽 스크린 상에 광선들을 투사하여 약간 상이한 방향들로 상이하지만 일관된 정보를 보여줌으로써 라이트필드의 근사치를 재현하는 투사 모듈들의 거대 어레이이다.
ORBX에 기초하고 IDEA(Immersive Digital Experience Alliance)에 의해 지정되는 오픈-소스 몰입형 기술 미디어 포맷(Immersive Technologies Media Format, ITMF)은 몰입형 미디어를 위한 포토리얼리스틱 애플리케이션(photorealistic application)을 중심으로 한 강력한 장면 설명(robust scene description)이다. ITMF는 미디어 인식 네트워크(media-aware network)를 통한 네트워크 기반 렌더링, 몰입형 미디어를 위한 점진적 다운로드 및/또는 스트리밍을 위한 콘텐츠 구성 작업흐름과 송신 둘 다에 초점을 두고 있다. ITMF는, 장면 그래프(Scene Graph) 내에서 가져오기(import) 전에 텍스처들 및 메시들과 같은 개별 자산(asset)들이 완성되는 DCC 툴들 내에서 사용하기 위한 것이다. 상이한 렌더링 엔진들을 갖는 ITMF 사양을 맵핑하기 위한 방법론이 필요하다.
이하에서는, 이러한 실시예들의 기본적인 이해를 제공하기 위해 본 개시내용의 하나 이상의 실시예의 간략화된 요약을 제시한다. 이 요약은 모든 고려된 실시예들의 광범위한 개요가 아니며, 모든 실시예들의 핵심적인 또는 중요한 요소들을 식별하거나 임의의 또는 모든 실시예들의 범위를 기술하도록 의도되지 않는다. 그것의 유일한 목적은, 나중에 제시되는 더 상세한 설명에 대한 서두로서 본 개시내용의 하나 이상의 실시예의 일부 개념들을 간략화된 형태로 제시하는 것이다.
클라우드 플랫폼에서의 병렬 처리를 위한 세그먼트화된 미디어 메타데이터를 위한 와이어 포맷들을 위한 방법들, 장치들, 및 비일시적 컴퓨터 판독가능 매체들이 본 개시내용에 의해 개시된다.
일부 실시예들에 따르면, 적어도 하나의 프로세서에 의해 실행되는 방법이 제공되어 있다. 이 방법은 장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하는 단계를 포함한다. 방법은 관련 장면 파일 데이터를 변환기에 전송하는 단계를 추가로 포함한다. 방법은, 변환기에 의해, 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환(translating)하는 단계를 추가로 포함한다. 방법은 각자의 렌더링 엔진을 사용하여 변환된 장면 파일 데이터를 장면 표현(scene representation)으로 맵핑하는 단계를 추가로 포함하고, 장면 표현은 몰입형 기술 미디어 포맷(Immersive Technologies Media Format, ITMF)과 호환가능하다.
일부 실시예들에 따르면, 장치는, 프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리, 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금 장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하게 하도록 구성되는 파싱 코드를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금 관련 장면 파일 데이터를 변환기에 전송하게 하도록 구성되는 전송 코드를 추가로 포함한다. 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 변환기에 의해, 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환하게 하도록 구성되는 변환 코드를 추가로 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금 각자의 렌더링 엔진을 사용하여 변환된 장면 파일 데이터를 장면 표현으로 맵핑하게 하도록 구성되는 맵핑 코드를 추가로 포함하고, 장면 표현은 몰입형 기술 미디어 포맷(Immersive Technologies Media Format, ITMF)과 호환가능하다.
일부 실시예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하게 하는 명령어들을 저장한다. 명령어들은 추가로 적어도 하나의 프로세서로 하여금 관련 장면 파일 데이터를 변환기에 전송하게 한다. 명령어들은 추가로, 적어도 하나의 프로세서로 하여금, 변환기에 의해, 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환하게 한다. 명령어들은 추가로 적어도 하나의 프로세서로 하여금 각자의 렌더링 엔진을 사용하여 변환된 장면 파일 데이터를 장면 표현으로 맵핑하게 하며, 장면 표현은 몰입형 기술 미디어 포맷(ITMF)과 호환가능하다.
추가적인 실시예들은 뒤따르는 설명에 열거될 것이고, 부분적으로, 설명으로부터 명백할 것이고/거나, 본 개시내용의 제시된 실시예들의 실시에 의해 학습될 수 있다.
본 개시내용의 실시예들의 위의 및 다른 양태들, 특징들, 및 양태들은 첨부 도면들과 함께 취해지는 다음의 설명으로부터 명백할 것이다.
도 1은 일부 실시예들에 따른 예시적인 ITMF 컨테이너이다.
도 2는 일부 실시예들에 따른 예시적인 ITMF 맵핑 아키텍처이다.
도 3은 본 명세서에 설명된 시스템들 및/또는 방법들이 구현될 수 있는 예시적인 환경의 다이어그램이다.
도 4는 일부 실시예들에 따른 통신 시스템의 단순화된 블록도이다.
도 5는 일부 실시예들에 따른 컴퓨터 시스템의 다이어그램이다.
예시적인 실시예들의 이하의 상세한 설명은 첨부 도면들을 참조한다. 상이한 도면들에서의 동일한 참조 번호들은 동일하거나 유사한 요소들을 식별할 수 있다.
전술한 개시내용은 예시 및 설명을 제공하지만, 포괄적이거나 구현들을 개시된 정확한 형태로 제한하는 것으로 의도되지 않는다. 수정들 및 변경들이 위의 개시내용에 비추어 가능하거나, 구현들의 실시로부터 획득될 수 있다. 또한, 하나의 실시예의 하나 이상의 특징 또는 컴포넌트는 다른 실시예(또는 다른 실시예의 하나 이상의 특징)에 포함되거나 그와 조합될 수 있다. 추가적으로, 아래에 제공되는 동작들의 흐름도들 및 설명들에서, 하나 이상의 동작이 생략될 수 있고, 하나 이상의 동작이 추가될 수 있고, 하나 이상의 동작이 (적어도 부분적으로) 동시에 수행될 수 있고, 하나 이상의 동작의 순서가 스위칭될 수 있다는 것이 이해된다.
본 명세서에 설명된 시스템들 및/또는 방법들은 상이한 형태들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다는 것이 명백할 것이다. 이러한 시스템들 및/또는 방법들을 구현하는 데 사용되는 실제의 특수화된 제어 하드웨어 또는 소프트웨어 코드는 구현들을 제한하지 않는다. 따라서, 시스템들 및/또는 방법들의 동작 및 거동은 특정 소프트웨어 코드를 참조하지 않고 본 명세서에서 설명되었으며, 소프트웨어 및 하드웨어는 본 명세서에서의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수 있다는 것이 이해되어야 한다.
특징들의 특정한 조합들이 청구항들에서 인용되고/되거나 명세서에 개시되지만, 이들 조합들은 가능한 구현들의 개시내용을 제한하는 것으로 의도되지 않는다. 사실, 이러한 특징들 중 다수는 구체적으로 청구항들에 인용되고/되거나 명세서에 개시되지 않은 방식으로 조합될 수 있다. 아래에 나열된 각각의 종속항은 하나의 청구항에만 직접적으로 의존할 수 있지만, 가능한 구현들의 개시내용은 청구항 세트에서의 모든 다른 청구항과의 조합으로 각각의 종속항을 포함한다.
본 명세서에 사용된 어떠한 요소, 행위, 또는 지침도 이와 같이 명시적으로 설명되지 않는 한 불가결하거나 필수적인 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 사용되는 바와 같이, 단수 표현(articles "a" and "an")은 하나 이상의 항목을 포함하도록 의도되고, "하나 이상"과 상호교환가능하게 사용될 수 있다. 하나의 항목만이 의도되는 경우, 용어 "하나" 또는 유사한 언어가 사용된다. 또한, 본 명세서에서 사용되는 바와 같이, 용어들 "갖다", "갖는", "포함한다", "포함하는" 등은 개방형 용어들인 것으로 의도된다. 또한, "~에 기초하여(based on)"라는 구절은 명백히 달리 지시되지 않는 한 "~에 적어도 부분적으로 기초하여(based, at least in part, on)"를 의미하도록 의도된다. 또한, "[A] 및 [B] 중 적어도 하나" 또는 "[A] 또는 [B] 중 적어도 하나"와 같은 표현들은 A만을, B만을, 또는 A와 B 둘 다를 포함하는 것으로서 이해되어야 한다.
본 명세서 전반에 걸쳐 "일 실시예", "실시예", 또는 유사한 언어에 대한 언급은, 표시된 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 본 해결책의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 "일 실시예에서", "실시예에서", 및 유사한 언어의 문구들은 모두 동일한 실시예를 지칭할 수 있지만, 반드시 그러한 것은 아니다.
또한, 본 개시내용의 설명된 특징들, 이점들, 및 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 관련 기술분야의 통상의 기술자는, 본 명세서의 설명에 비추어, 본 개시내용이 특정 실시예의 특정 특징들 또는 이점들 중 하나 이상 없이도 실시될 수 있다는 것을 인식할 것이다. 다른 경우들에서, 본 개시내용의 모든 실시예들에 존재하지 않을 수 있는 추가적인 특징들 및 이점들이 특정 실시예들에서 인식될 수 있다.
ITMF는 입력 핀과 출력 핀 둘 다를 갖는 노드들을 이용한 노드 기반 계층적 장면 그래프이다. 핀들은 노드들 사이의 관계들을 가능하게 한다. 추가로, 노드들은 오브젝트의 고유하고 불변적인 특성들을 정의하는 속성들을 갖는다. 노드들은 렌더 타깃 노드에 공급되는 카메라들, 지오메트리(geometry), 조명, 머티리얼들(materials), 텍스처들 등을 포함한 많은 타입들을 갖는다. 각각의 노드는, 연결들이 생성되고 지원될 수 있게 하는 입력 및 출력 핀들을 갖는다. 렌더 타깃 노드는 바이어스되지 않은 렌더링 애플리케이션(unbiased rendering application) 내에서 포토리얼리스틱 렌더링(photorealistic rendering)을 위한 광선 추적을 가능하게 하는 파라미터들을 갖는다. 미디어 및 디바이스 인식 네트워크 내에서, 렌더 타깃을 갖는 렌더 타깃 노드의 설계는, 레거시 2D/3D 디스플레이들, 가상 및 증강 현실 헤드셋뿐만 아니라 신흥의 체적 및 라이트 필드 디스플레이들을 포함하는 타깃 디바이스에 적응될 수 있다.
전체 장면 콘텐츠는 이진 마크업 언어(Binary Markup Language, BML) 컨테이너 내에서 이진 인코딩될 수 있고, 장면의 설명은 XML 기반 장면 그래프에서 고유 노드 식별자들 및 연결 관계들로 직렬화될 수 있다. 컨테이너 내에서, 디렉토리 및 인덱스 단위들로 나열된 지오메트리, 텍스처, 및 더 많은 가져온(imported) 자산들을 인코딩하는 논리 단위들은 개별 단위들의 랜덤 액세스 및 압축/암호화를 가능하게 한다. 컨테이너의 설계는, 디코딩을 위해 그리고 필요에 따라 논리 단위들 내에서 추가적인 파일 타입들이 인코딩될 수 있게 한다.
일부 실시예들에서, ITMF 장면 그래프는 장면 내의 시각적 오브젝트들 사이의 논리적, 시간적, 및 공간적 관계들을 설명하는 노드 기반의 방향성 비사이클 그래프(node-based, directed acyclic graph)일 수 있다. 그래프는 전적으로 인간 판독가능 XML 파일로서 표현될 수 있다. ITMF 장면 그래프를 이용하여 레거시 및 신흥의 진보된 이미징(예를 들어, 체적, 홀로그래픽, 라이트 필드) 디스플레이 기술들을 둘 다 지원할 수 있다. 도 1에서, 장면 그래프(110)가 참조하는 장면 요소들(120) 각각, 및 그래프 자체에 대한 XML 파일이 집계되어 ITMF 컨테이너(100)에 저장될 수 있다.
ITMF 장면 파일이 엔드 클라이언트에 렌더링된 후; 엔드 클라이언트의 렌더러 엔진(renderer engine)이 장면 파일을 지원하지 않는 경우, ITMF 장면 파일은 엔드 포인트의 지원된 파일의 장면 그래프에 맵핑될 필요가 있을 것이다.
ITMF 사양을 다양한 엔드 포인트의 표현으로 변환하기 위한 아키텍처 프레임워크가 도 2에 도시되어 있다. ITMF 사양(201)은 언리얼(가상) 변환기(204)에 맵핑될 수 있다. ITMF 장면 파서(202)는 장면 파일을 파싱하는 것, 예를 들어, 장면 그래프 및 장면 요소들을 파싱함으로써 ITMF 컨테이너로부터 장면 자산들, 머티리얼들, 지오메트리, 렌더링 경로와 같은 관련 정보를 추출하는 것을 담당할 수 있다. 파싱된 데이터는 이어서 변환기에 전송되고, 변환기는 데이터를 각자의 렌더링 엔진에 의해 이해되는 포맷으로 변환한다. ITMF 장면 파서(202)는, ITMF 사양 모듈들(209, 210, 211, 212, 213, 214, 215, 및 216)로부터 데이터를 수신한 후, ITMF 사양(201)을 관련 렌더링 엔진 포맷으로 변환하기 위해 구조적 방식으로 ITMF 사양(201)을 파싱할 수 있다. 언리얼 변환기(204)는, 렌더링 엔진 변환기들(217 및 218)과 함께, 파싱된 ITMF 파일을 등가의 렌더링 엔진 포맷으로 변환한다.
렌더링 엔진 변환기들(217 및 218)을 포함하여, 언리얼 변환기(204)는 파싱된 ITMF 장면을 등가의 언리얼 장면 표현(206)으로 맵핑하는 것을 담당할 수 있으며, 여기서 데이터는 렌더링 엔진 변환기들(217 및 218)에 의해 이해되는 바와 같은 언리얼 프라이머리 장면 클래스들(207) 및 언리얼 머티리얼 클래스들(208)과 같은 다양한 장면 표현 클래스들로 배열된다.
도 3은 일부 실시예들에 따른 하나 이상의 디바이스의 예시적인 컴포넌트들의 블록도이다.
디바이스(300)는 사용자 디바이스 및/또는 플랫폼에 대응할 수 있다. 도 3에 도시된 바와 같이, 디바이스(300)는 버스(310), 프로세서(320), 메모리(330), 스토리지 컴포넌트(340), 입력 컴포넌트(350), 출력 컴포넌트(360), 및 통신 인터페이스(370)를 포함할 수 있다.
버스(310)는 디바이스(300)의 컴포넌트들 사이의 통신을 허용하는 컴포넌트를 포함할 수 있다. 프로세서(320)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 프로세서(320)는 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), 또는 다른 타입의 처리 컴포넌트이다. 일부 실시예들에서, 프로세서(320)는 동작을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서를 포함할 수 있다. 메모리(330)는 RAM(random access memory), ROM(read only memory), 및/또는 프로세서(320)에 의한 사용을 위한 정보 및/또는 명령어들을 저장한 다른 타입의 동적 또는 정적 스토리지 디바이스(예를 들어, 플래시 메모리, 자기 메모리, 및/또는 광 메모리)를 포함할 수 있다.
스토리지 컴포넌트(340)는 디바이스(300)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 스토리지 컴포넌트(340)는, 대응하는 드라이브와 함께, 하드 디스크(예를 들어, 자기 디스크, 광 디스크, 광자기 디스크, 및/또는 솔리드 스테이트 디스크), CD(compact disc), DVD(digital versatile disc), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 타입의 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다.
입력 컴포넌트(350)는, 예컨대 사용자 입력을 통해, 디바이스(300)가 정보를 수신하는 것을 허가하는 컴포넌트(예를 들어, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)를 포함할 수 있다. 추가적으로, 또는 다른 대안적으로, 입력 컴포넌트(350)는 정보를 감지하는 센서(예를 들어, GPS(global positioning system) 컴포넌트, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수 있다. 출력 컴포넌트(360)는 디바이스(300)로부터의 출력 정보를 제공하는 컴포넌트(예를 들어, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드(LED))를 포함할 수 있다.
통신 인터페이스(370)는 디바이스(300)가 예컨대 유선 접속, 무선 접속, 또는 유선 접속과 무선 접속의 조합을 통해, 다른 디바이스들과 통신할 수 있게 하는 트랜시버-유사(transceiver-like) 컴포넌트(예를 들어, 트랜시버 및/또는 별개의 수신기 및 송신기)를 포함할 수 있다. 통신 인터페이스(370)는 디바이스(300)가 다른 디바이스로부터 정보를 수신하는 것 및/또는 다른 디바이스에 정보를 제공하는 것을 허가할 수 있다. 예를 들어, 통신 인터페이스(370)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, RF(radio frequency) 인터페이스, USB(universal serial bus) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함할 수 있다.
디바이스(300)는 본 명세서에 설명된 하나 이상의 프로세스를 수행할 수 있다. 디바이스(300)는 프로세서(320)가, 메모리(330) 및/또는 스토리지 컴포넌트(340)와 같은, 비일시적 컴퓨터 판독가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 기초하여 이러한 프로세스들을 수행할 수 있다. 컴퓨터 판독가능 매체는 본 명세서에서 비일시적 메모리 디바이스로서 정의된다. 메모리 디바이스는 단일 물리적 스토리지 디바이스 내의 메모리 공간 또는 다수의 물리적 스토리지 디바이스들에 걸쳐 확산된 메모리 공간을 포함할 수 있다.
소프트웨어 명령어들은 다른 컴퓨터 판독가능 매체로부터 또는 통신 인터페이스(370)를 통해 다른 디바이스로부터 메모리(330) 및/또는 스토리지 컴포넌트(340) 내로 판독될 수 있다. 실행될 때, 메모리(330) 및/또는 스토리지 컴포넌트(340)에 저장된 소프트웨어 명령어들은 프로세서(320)로 하여금 본 명세서에 설명된 하나 이상의 프로세스를 수행하게 할 수 있다. 추가적으로, 또는 대안적으로, 본 명세서에 설명된 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 이와 조합하여 하드와이어드 회로(hardwired circuitry)가 사용될 수 있다. 따라서, 본 명세서에 설명된 실시예들은 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
도 3에 도시된 컴포넌트들의 수 및 배열은 예로서 제공된다. 실제로, 디바이스(300)는 도 3에 도시된 것들 외의 추가적인 컴포넌트들, 그것들보다 더 적은 컴포넌트들, 그것들과는 상이한 컴포넌트들, 또는 그것들과는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 디바이스(300)의 컴포넌트들의 세트(예를 들어, 하나 이상의 컴포넌트)는 디바이스(300)의 컴포넌트들의 다른 세트에 의해 수행되는 것으로서 설명되는 하나 이상의 동작을 수행할 수 있다.
도 4는 본 개시내용의 일부 실시예들에 따른 통신 시스템(400)의 단순화된 블록도를 예시한다. 통신 시스템(400)은 네트워크(450)를 통해 상호접속되는 적어도 2개의 단말(410-420)을 포함할 수 있다. 데이터의 단방향 송신을 위해, 제1 단말(410)은 네트워크(450)를 통해 다른 단말(420)로 송신하기 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(420)은 네트워크(450)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고, 복구된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 송신은 미디어 서빙 응용들(media serving applications) 등에서 일반적일 수 있다.
도 4는, 예를 들어, 영상 회의 동안 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하기 위해 제공되는 제2 쌍의 단말들(430, 440)을 예시한다. 데이터의 양방향 송신을 위해, 각각의 단말(430, 440)은 네트워크(450)를 통해 다른 단말로 송신하기 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(430, 440)은 또한 다른 단말에 의해 송신된 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 복구된 비디오 데이터를 로컬 디스플레이 디바이스에서 디스플레이할 수 있다.
도 4에서, 단말들(410-440)은 서버들, 개인용 컴퓨터들 및 스마트폰들로서 예시될 수 있지만, 본 개시내용의 원리들은 이에 제한되지 않는다. 본 개시내용의 실시예들은 랩톱 컴퓨터들, 태블릿 컴퓨터들, 미디어 플레이어들 및/또는 전용 영상 회의 장비에서 응용된다. 네트워크(450)는, 예를 들어 유선 및/또는 무선 통신 네트워크들을 포함하여, 단말들(410-440) 사이에 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크들을 나타낸다. 통신 네트워크(450)는 회선 교환 및/또는 패킷 교환 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들은 통신 네트워크들, 로컬 영역 네트워크들, 광역 네트워크들, 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(450)의 아키텍처 및 토폴로지는 아래에서 본 명세서에서 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
컴퓨터 시스템(500)에 대한 도 5에 도시된 컴포넌트들은 예시적인 것이고, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 임의의 제한을 암시하도록 의도되지 않는다. 마찬가지로, 컴포넌트들의 구성은 컴퓨터 시스템(500)의 예시적인 실시예에 예시된 컴포넌트들 중 어느 하나 또는 이들의 조합에 관한 임의의 종속성 또는 요건을 갖는 것으로서 해석되도록 제한되어서는 안 된다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 휴먼 인터페이스 입력 디바이스는, 예를 들어, 촉각 입력(예컨대 키스트로크, 스와이프, 데이터 글러브 모션), 오디오 입력(예컨대 음성, 손뼉), 시각적 입력(예컨대 제스처), 후각적 입력(묘사되지 않음)을 통한 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스들은 또한 오디오(예컨대 음성, 음악, 주변 사운드), 이미지들(예컨대 스캐닝된 이미지들, 스틸 이미지 카메라로부터 획득된 사진 이미지들), 비디오(예컨대 2차원 비디오, 입체적 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적인 입력과 반드시 직접적으로 관련되는 것은 아닌 특정 미디어를 캡처하기 위해 사용될 수 있다.
입력 휴먼 인터페이스 디바이스들은: 키보드(505), 마우스(510), 트랙패드(515), 터치 스크린(545), 데이터-글러브(묘사되지 않음), 조이스틱(520), 마이크로폰(525), 스캐너(530), 카메라(535) 중 하나 이상(각각의 하나만이 묘사됨)을 포함할 수 있다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 출력 디바이스들을 또한 포함할 수 있다. 그러한 휴먼 인터페이스 출력 디바이스들은, 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각들을 자극하고 있을 수 있다. 이와 같이, 휴먼 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어 터치-스크린(545), 데이터-글러브(묘사되지 않음), 또는 조이스틱(520)에 의한 촉각 피드백, 그러나 입력 디바이스들로서 역할을 하지 않는 촉각 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예컨대: 스피커들(540), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예컨대, 각각 터치-스크린 입력 능력이 있거나 없고, 각각 촉각 피드백 능력이 있거나 없는, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(545) - 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원을 초과한 출력을 출력할 수 있음 - ; 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이들 및 스모크 탱크들(묘사되지 않음)), 및 프린터들(묘사되지 않음)을 포함할 수 있다.
컴퓨터 시스템(500)은 인간 액세스가능한 저장 디바이스들 및 그의 연관된 매체들, 예컨대 CD/DVD 등의 매체(555)를 갖는 CD/DVD ROM/RW(Z20)를 포함하는 광학 매체, 썸-드라이브(thumb-drive)(560), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(565), 테이프 및 플로피 디스크(묘사되지 않음)와 같은 레거시 자기 매체, 보안 동글(묘사되지 않음)과 같은 특수화된 ROM/ASIC/PLD 기반 디바이스들 등을 또한 포함할 수 있다.
본 기술분야의 통상의 디스크립터들은 또한, 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독가능 매체"가 송신 매체, 반송파들, 또는 다른 일시적 신호들을 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(500)은 하나 이상의 통신 네트워크에 대한 인터페이스를 또한 포함할 수 있다. 네트워크들은, 예를 들어, 무선(wireless), 유선(wireline), 광학(optical)일 수 있다. 네트워크들은 추가로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연-허용(delay-tolerant) 등일 수 있다. 네트워크들의 예들은 로컬 영역 네트워크들, 예컨대 이더넷, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV 및 지상파 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크들, CANBus를 포함하는 차량 및 산업 등을 포함한다. 특정 네트워크들은 일반적으로 특정 범용 데이터 포트들 또는 주변 버스들(589)(예컨대, 예를 들어, 컴퓨터 시스템(500)의 USB 포트들)에 부착되는 외부 네트워크 인터페이스 어댑터들을 요구하며; 다른 것들은 일반적으로 아래에 설명되는 바와 같은 시스템 버스(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)로의 부착에 의해 컴퓨터 시스템(500)의 코어에 통합된다. 이들 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(500)은 다른 엔티티들과 통신할 수 있다. 통신은 단방향성 수신 전용(예를 들어, 브로드캐스트 TV), 단방향성 송신 전용(예를 들어, CANbus 대 특정 CANbus 디바이스들), 또는 예를 들어 로컬 영역 또는 광역 디지털 네트워크들을 사용하는 다른 컴퓨터 시스템들과의 양방향성일 수 있다. 위에서 설명한 바와 같은 네트워크들 및 네트워크 인터페이스들 각각에 대해 특정 프로토콜들 및 프로토콜 스택들이 또한 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스들, 인간-액세스가능한 저장 디바이스들, 및 네트워크 인터페이스들은 컴퓨터 시스템(500)의 코어(580)에 부착될 수 있다.
코어(580)는 하나 이상의 중앙 처리 유닛(CPU)(581), 그래픽 처리 유닛(GPU)(582), 필드 프로그래머블 게이트 영역(FPGA)(583)의 형태로 된 특수화된 프로그래머블 처리 유닛, 특정 태스크들에 대한 하드웨어 가속기(584) 등을 포함할 수 있다. 이들 디바이스는, 판독 전용 메모리(ROM)(585), 랜덤 액세스 메모리(586), 내부 비-사용자 액세스가능 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(587)와 함께, 시스템 버스(588)를 통해 접속될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(588)는 추가적인 CPU들, GPU들 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스가능할 수 있다. 주변 디바이스들은 또한 코어의 시스템 버스(588)에 직접, 또는 주변 버스(589)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다.
CPU들(581), GPU들(582), FPGA들(583), 및 가속기들(584)은, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 그러한 컴퓨터 코드는 RAM(586)에 저장될 수 있다. 과도적인 데이터는 또한 RAM(586)에 저장될 수 있는 반면, 영구 데이터는, 예를 들어, 내부 대용량 스토리지(587)에 저장될 수 있다. 메모리 디바이스들 중 임의의 것에 대한 고속 저장 및 검색은, 하나 이상의 CPU(581), GPU(582), 대용량 스토리지(587), ROM(585), RAM(586) 등과 밀접하게 연관될 수 있는, 캐시 메모리의 사용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터 구현 동작들을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것들일 수 있거나, 또는 그것들은 컴퓨터 소프트웨어 기술분야의 기술자들에게 잘 알려져 있고 이용가능한 종류의 것일 수 있다.
제한이 아니라 예로서, 컴퓨터 시스템(500), 및 구체적으로 코어(580)에 대응하는 아키텍처는 프로세서(들)(CPU들, GPU들, FPGA, 가속기들 등을 포함함)가 하나 이상의 유형의(tangible) 컴퓨터 판독가능 매체에 구현된 소프트웨어를 실행한 결과로서 기능성을 제공할 수 있다. 그러한 컴퓨터 판독가능 매체는 위에 소개된 바와 같은 사용자-액세스가능한 대용량 스토리지뿐만 아니라, 코어-내부 대용량 스토리지(587) 또는 ROM(585)과 같은 비일시적인 본질의 것인 코어(580)의 특정 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어가 그러한 디바이스들에 저장되고 코어(580)에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 특정 필요에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(580) 및 구체적으로 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)로 하여금, RAM(586)에 저장된 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의된 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 그와 함께 동작할 수 있는, 회로(예를 들어, 가속기(584))에 하드와이어링되거나 다른 방식으로 구현된 로직의 결과로서 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독가능 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장한 회로(예컨대 집적 회로(IC)), 실행을 위한 로직을 구현한 회로, 또는 양자 모두를 포함할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적합한 조합을 포함한다.
전술한 개시내용은 예시 및 설명을 제공하지만, 포괄적이거나 구현들을 개시된 정확한 형태로 제한하는 것으로 의도되지 않는다. 수정들 및 변경들이 위의 개시내용에 비추어 가능하거나, 구현들의 실시로부터 획득될 수 있다.
본 명세서에 개시된 프로세스들/흐름도들에서의 블록들의 특정 순서 또는 계층구조는 예시적인 접근법들의 예시라는 점이 이해된다. 설계 선호도들에 기초하여, 프로세스들/흐름도들에서의 블록들의 특정 순서 또는 계층구조가 재배열될 수 있다는 점이 이해된다. 또한, 일부 블록들은 결합되거나 생략될 수 있다. 첨부된 방법 청구항들은 다양한 블록들의 요소들을 샘플 순서로 제시하며, 제시된 특정 순서 또는 계층구조로 제한되도록 의도되지 않는다.
일부 실시예들은 임의의 가능한 기술적 상세 통합 레벨에서 시스템, 방법, 및/또는 컴퓨터 판독가능 매체에 관련될 수 있다. 또한, 위에서 설명한 위의 컴포넌트들 중 하나 이상은 컴퓨터 판독가능 매체 상에 저장되고 적어도 하나의 프로세서에 의해 실행가능한 명령어들로서 구현될 수 있다(및/또는 적어도 하나의 프로세서를 포함할 수 있다). 컴퓨터 판독가능 매체는 프로세서로 하여금 동작들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령어들을 갖는 컴퓨터 판독가능 비일시적 저장 매체(또는 매체들)를 포함할 수 있다.
컴퓨터 판독가능 저장 매체는 명령어 실행 디바이스에 의한 이용을 위한 명령어들을 보유하고 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 컴퓨터 판독가능 저장 매체는, 예를 들어, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광학 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 임의의 적합한 조합일 수 있지만, 이에 제한되지는 않는다. 컴퓨터 판독가능 저장 매체의 더 구체적인 예들의 비포괄적인 리스트는 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거가능한 프로그램가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다기능 디스크(DVD), 메모리 스틱, 플로피 디스크, 명령어들이 기록된 홈(groove) 내의 상승된 구조들(raised structures) 또는 펀치 카드들(punch-cards)과 같은 기계적으로 인코딩된 디바이스, 및 전술한 것들의 임의의 적합한 조합을 포함한다. 본 명세서에서 사용되는 바와 같이, 컴퓨터 판독가능 저장 매체는, 무선파들(radio waves) 또는 다른 자유롭게 전파되는 전자기파들, 도파관 또는 다른 송신 매체를 통해 전파되는 전자기파들(예를 들어, 광섬유 케이블을 통과하는 광 펄스들), 또는 와이어를 통해 송신되는 전기 신호들과 같은, 일시적 신호들 그 자체로서 해석되어서는 안 된다.
본 명세서에 설명된 컴퓨터 판독가능 프로그램 명령어들은 네트워크, 예를 들어, 인터넷, 근거리 네트워크, 광역 네트워크 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 스토리지 디바이스에 또는 컴퓨터 판독가능 저장 매체로부터 각자의 컴퓨팅/처리 디바이스들에 다운로드될 수 있다. 네트워크는 구리 송신 케이블들, 광 송신 섬유들, 무선 송신, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 에지 서버들을 포함할 수 있다. 각각의 컴퓨팅/처리 디바이스 내의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독가능 프로그램 명령어들을 수신하고, 각자의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독가능 저장 매체에 저장하기 위해 컴퓨터 판독가능 프로그램 명령어들을 포워딩한다.
동작들을 수행하기 위한 컴퓨터 판독가능 프로그램 코드/명령어들은 어셈블러 명령어들, ISA(instruction-set-architecture) 명령어들, 머신 명령어들, 머신 종속 명령어들, 마이크로코드, 펌웨어 명령어들, 상태 설정 데이터, 집적 회로를 위한 구성 데이터, 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드 또는 오브젝트 코드일 수 있다. 컴퓨터 판독가능 프로그램 명령어들은, 완전히 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로는 사용자의 컴퓨터 상에서 그리고 부분적으로는 원격 컴퓨터 상에서 또는 완전히 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)를 포함하는 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 또는 (예를 들어, 인터넷 서비스 제공자(Internet Service Provider)를 사용하여 인터넷을 통해) 외부 컴퓨터에 대해 연결이 이루어질 수 있다. 일부 실시예들에서, 예를 들어, 프로그램가능 로직 회로, 필드 프로그램가능 게이트 어레이(FPGA), 또는 프로그램가능 로직 어레이(PLA)를 포함하는 전자 회로는, 양태들 또는 동작들을 수행하기 위해, 컴퓨터 판독가능 프로그램 명령어들의 상태 정보를 활용하여 전자 회로를 개인화함으로써 컴퓨터 판독가능 프로그램 명령어들을 실행할 수 있다.
이러한 컴퓨터 판독가능 프로그램 명령어들은 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신을 제작할 수 있고, 그에 의해 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행되는 명령어들은 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능들/작용들을 구현하기 위한 수단을 생성하게 된다. 이러한 컴퓨터 판독가능 프로그램 명령어들은 또한, 컴퓨터, 프로그램가능 데이터 처리 장치, 및/또는 다른 디바이스들에게 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 저장 매체에 저장될 수 있고, 그에 의해, 명령어들이 저장된 컴퓨터 판독가능 저장 매체는, 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/작용의 양태들을 구현하는 명령어들을 포함한 제조 물품을 포함한다.
컴퓨터 판독가능 프로그램 명령어들은 또한, 일련의 동작 단계들이 컴퓨터 구현 프로세스를 제작하기 위해 컴퓨터, 다른 프로그램가능 장치 또는 다른 디바이스 상에서 수행되게 하기 위해 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스 상에 로딩될 수 있고, 그에 의해 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령어들이 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능들/작용들을 구현하게 한다.
도면들 내의 흐름도 및 블록도들은 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 판독가능 매체의 가능한 구현들의 아키텍처, 기능성, 및 동작을 예시한다. 이와 관련하여, 흐름도 또는 블록도들에서의 각각의 블록은, 지정된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어를 포함한 모듈, 세그먼트, 또는 명령어들의 부분을 나타낼 수 있다. 방법, 컴퓨터 시스템, 및 컴퓨터 판독가능 매체는 도면들에 묘사된 것들 외의 추가적인 블록들, 그것들보다 더 적은 블록들, 그것들과는 상이한 블록들, 또는 그것들과는 상이하게 배열된 블록들을 포함할 수 있다. 일부 대안적인 구현들에서, 블록들에서 언급된 기능들은 도면들에서 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속하여 도시된 2개의 블록은, 사실상, 동시에 또는 실질적으로 동시에 실행될 수 있거나, 수반된 기능성에 따라 블록들이 때때로 역순으로 실행될 수 있다. 블록도들 및/또는 흐름도 예시의 각각의 블록, 및 블록도들 및/또는 흐름도 예시에서의 블록들의 조합들은, 지정된 기능들 또는 작용들을 수행하거나 특수 목적 하드웨어와 컴퓨터 명령어들의 조합들을 수행하는 특수 목적 하드웨어 기반 시스템들에 의해 구현될 수 있다는 점에도 주목한다.
본 명세서에 설명된 시스템들 및/또는 방법들은 상이한 형태들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다는 것이 명백할 것이다. 이러한 시스템들 및/또는 방법들을 구현하는 데 사용되는 실제의 특수화된 제어 하드웨어 또는 소프트웨어 코드는 구현들을 제한하지 않는다. 따라서, 시스템들 및/또는 방법들의 동작 및 거동은 특정 소프트웨어 코드를 참조하지 않고 본 명세서에서 설명되었으며, 소프트웨어 및 하드웨어는 본 명세서에서의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수 있다는 것이 이해되어야 한다.
본 개시내용이 여러 예시적인 실시예들을 설명하였지만, 본 개시내용의 범위 내에 속하는 변경들, 치환들, 및 다양한 대체 균등물들이 존재한다. 따라서, 본 기술분야의 통상의 기술자들은, 비록 본 명세서에 명시적으로 도시되거나 설명되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 그것의 진의 및 범위 내에 있는, 다수의 시스템들 및 방법들을 고안할 수 있을 것이라는 점이 인정될 것이다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 실행되는 방법으로서,
    장면 파일(scene file)을 파싱(parsing)하여 관련 장면 파일 데이터를 추출하는 단계;
    상기 관련 장면 파일 데이터를 변환기에 전송하는 단계;
    상기 변환기에 의해, 상기 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환(translating)하는 단계; 및
    상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현(scene representation)으로 맵핑하는 단계를 포함하고, 상기 장면 표현은 몰입형 기술 미디어 포맷(Immersive Technologies Media Format, ITMF)과 호환가능한, 방법.
  2. 제1항에 있어서, 몰입형 기술 미디어 포맷(ITMF) 장면 그래프를 사용하여 상기 각자의 렌더링 엔진과 호환가능한 다양한 장면 표현 클래스들(scene representation classes)로 상기 장면 파일 데이터를 배열하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서, 상기 추출된 관련 장면 파일 데이터는 장면 자산들, 머티리얼들(materials), 지오메트리(geometry), 렌더링 경로, 및 장면 요소들을 포함하는, 방법.
  4. 제1항에 있어서, 상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현으로 맵핑하는 단계는 상기 변환된 장면 파일 데이터를 복수의 언리얼 프라이머리 장면 클래스(unreal primary scene class) 및 복수의 언리얼 머티리얼 클래스(unreal material class)로 맵핑하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 상기 ITMF 장면 그래프는 상기 장면 파일 내의 복수의 시각적 오브젝트들 사이의 시간적 및 공간적 관계들을 설명하는 노드 기반의 방향성 비사이클 그래프(node-based, directed acyclic graph)를 포함하는, 방법.
  6. 제4항에 있어서, 상기 ITMF 장면 그래프는 인간 판독가능 XML 파일로서 표현되는, 방법.
  7. 제4항에 있어서, 상기 ITMF 장면 그래프는 레거시 및 신흥의 진보된 이미징 디스플레이 기술들 둘 다를 지원하는, 방법.
  8. 제1항에 있어서,
    상기 ITMF 장면 그래프에 의해 장면 자산들을 참조하는 단계;
    상기 ITMF 장면 그래프에 의해 참조되는 상기 장면 자산들을 인간 판독가능 XML 파일로 집계(aggregating)하는 단계; 및
    상기 집계된 장면 자산들 및 상기 인간 판독가능 XML 파일을 ITMF 컨테이너에 저장하는 단계를 추가로 포함하는, 방법.
  9. 장치로서,
    프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금 장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하게 하도록 구성되는 파싱 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 관련 장면 파일 데이터를 변환기에 전송하게 하도록 구성되는 전송 코드;
    상기 적어도 하나의 프로세서로 하여금, 상기 변환기에 의해, 상기 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환하게 하도록 구성되는 변환 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현으로 맵핑하게 하도록 구성되는 맵핑 코드를 포함하고, 상기 장면 표현은 몰입형 기술 미디어 포맷(ITMF)과 호환가능한, 장치.
  10. 제9항에 있어서, 상기 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금 몰입형 기술 미디어 포맷(ITMF) 장면 그래프를 사용하여 상기 각자의 렌더링 엔진과 호환가능한 다양한 장면 표현 클래스들로 상기 장면 파일 데이터를 배열하게 하도록 구성되는 배열 코드를 추가로 포함하는, 장치.
  11. 제9항에 있어서, 상기 추출된 관련 장면 파일 데이터는 장면 자산들, 머티리얼들, 지오메트리, 렌더링 경로, 및 장면 요소들을 포함하는, 장치.
  12. 제9항에 있어서, 상기 적어도 하나의 프로세서로 하여금 상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현으로 맵핑하게 하도록 구성되는 맵핑 코드는 추가로 상기 적어도 하나의 프로세서로 하여금 상기 변환된 장면 파일 데이터를 복수의 언리얼 프라이머리 장면 클래스 및 복수의 언리얼 머티리얼 클래스로 맵핑하게 하는, 장치.
  13. 제9항에 있어서, 상기 ITMF 장면 그래프는 상기 장면 파일 내의 복수의 시각적 오브젝트들 사이의 시간적 및 공간적 관계들을 설명하는 노드 기반의 방향성 비사이클 그래프를 포함하는, 장치.
  14. 제12항에 있어서, 상기 ITMF 장면 그래프는 인간 판독가능 XML 파일로서 표현되는, 장치.
  15. 제12항에 있어서, 상기 ITMF 장면 그래프는 레거시 및 신흥의 진보된 이미징 디스플레이 기술들 둘 다를 지원하는, 장치.
  16. 제9항에 있어서, 상기 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금 상기 ITMF 장면 그래프에 의해 장면 자산들을 참조하게 하도록 구성되는 참조 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 ITMF 장면 그래프에 의해 참조되는 상기 장면 자산들을 인간 판독가능 XML 파일로 집계하게 하도록 구성되는 집계 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 집계된 장면 자산들 및 상기 인간 판독가능 XML 파일을 ITMF 컨테이너에 저장하게 하도록 구성되는 저장 코드를 추가로 포함하는, 장치.
  17. 명령어들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    장면 파일을 파싱하여 관련 장면 파일 데이터를 추출하게 하고;
    상기 관련 장면 파일 데이터를 변환기에 전송하게 하고;
    상기 변환기에 의해, 상기 관련 장면 파일 데이터를 각자의 렌더링 엔진과 호환가능한 포맷으로 변환하게 하고;
    상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현으로 맵핑하게 하며, 상기 장면 표현은 몰입형 기술 미디어 포맷(ITMF)과 호환가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서, 상기 명령어는 추가로 상기 적어도 하나의 프로세서로 하여금 몰입형 기술 미디어 포맷(ITMF) 장면 그래프를 사용하여 상기 각자의 렌더링 엔진과 호환가능한 다양한 장면 표현 클래스들로 상기 장면 파일 데이터를 배열하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제17항에 있어서, 상기 추출된 관련 장면 파일 데이터는 장면 자산들, 머티리얼들, 지오메트리, 렌더링 경로, 및 장면 요소들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 제17항에 있어서, 상기 각자의 렌더링 엔진을 사용하여 상기 변환된 장면 파일 데이터를 장면 표현으로 맵핑하는 것은 상기 변환된 장면 파일 데이터를 복수의 언리얼 프라이머리 장면 클래스 및 복수의 언리얼 머티리얼 클래스로 맵핑하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020237034380A 2022-01-10 2022-12-15 렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(itmf) 사양의 맵핑 아키텍처 KR20230154979A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263298110P 2022-01-10 2022-01-10
US63/298,110 2022-01-10
US18/075,037 2022-12-05
US18/075,037 US11985381B2 (en) 2022-12-05 Mapping architecture of immersive technologies media format (ITMF) specification with rendering engines
PCT/US2022/052944 WO2023132921A1 (en) 2022-01-10 2022-12-15 Mapping architecture of immersive technologies media format (itmf) specification with rendering engines

Publications (1)

Publication Number Publication Date
KR20230154979A true KR20230154979A (ko) 2023-11-09

Family

ID=87069241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237034380A KR20230154979A (ko) 2022-01-10 2022-12-15 렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(itmf) 사양의 맵핑 아키텍처

Country Status (6)

Country Link
JP (1) JP2024513005A (ko)
KR (1) KR20230154979A (ko)
CN (1) CN116897541A (ko)
AU (1) AU2022431638A1 (ko)
CA (1) CA3211285A1 (ko)
WO (1) WO2023132921A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020064888A (ko) * 1999-10-22 2002-08-10 액티브스카이 인코포레이티드 객체 지향형 비디오 시스템
US11277598B2 (en) * 2009-07-14 2022-03-15 Cable Television Laboratories, Inc. Systems and methods for network-based media processing
US8878912B2 (en) * 2009-08-06 2014-11-04 Qualcomm Incorporated Encapsulating three-dimensional video data in accordance with transport protocols
CN108616731B (zh) * 2016-12-30 2020-11-17 艾迪普科技股份有限公司 一种360度vr全景图形图像及视频实时生成方法
US10559126B2 (en) * 2017-10-13 2020-02-11 Samsung Electronics Co., Ltd. 6DoF media consumption architecture using 2D video decoder
US20210392386A1 (en) * 2020-06-12 2021-12-16 Tencent America LLC Data model for representation and streaming of heterogeneous immersive media

Also Published As

Publication number Publication date
JP2024513005A (ja) 2024-03-21
CN116897541A (zh) 2023-10-17
CA3211285A1 (en) 2023-07-13
AU2022431638A1 (en) 2023-09-21
WO2023132921A1 (en) 2023-07-13
US20230224533A1 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
JP7392136B2 (ja) ビデオコンテンツを表示するための方法、コンピュータシステム、およびコンピュータプログラム
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
KR20230156788A (ko) 라이트필드/홀로그래픽 미디어를 위한 자산 재이용가능성
KR20230154979A (ko) 렌더링 엔진들을 갖는 몰입형 기술 미디어 포맷(itmf) 사양의 맵핑 아키텍처
US11985381B2 (en) Mapping architecture of immersive technologies media format (ITMF) specification with rendering engines
EP4085397B1 (en) Reference of neural network model by immersive media for adaptation of media for streaming to heterogenous client end-points
US20240104803A1 (en) Scene graph translation
KR20230141816A (ko) 자산 포맷들의 변환을 위한 몰입형 미디어 데이터 복잡도 분석기
KR20230146643A (ko) 에지 클라우드 아키텍처 및 p2p 스트리밍을 사용하는 라이트필드/몰입형 미디어를 위한 분할 렌더링
KR20230152130A (ko) 클라이언트 질의를 이용한 중복 자산의 재사용
CN117043750A (zh) 用于使用代理边缘云架构对光场/沉浸式媒体进行分割渲染的方法和装置

Legal Events

Date Code Title Description
A201 Request for examination