KR20190014501A - 이미지에서 가장 관심있는 영역의 진보된 시그널링 - Google Patents

이미지에서 가장 관심있는 영역의 진보된 시그널링 Download PDF

Info

Publication number
KR20190014501A
KR20190014501A KR1020187033697A KR20187033697A KR20190014501A KR 20190014501 A KR20190014501 A KR 20190014501A KR 1020187033697 A KR1020187033697 A KR 1020187033697A KR 20187033697 A KR20187033697 A KR 20187033697A KR 20190014501 A KR20190014501 A KR 20190014501A
Authority
KR
South Korea
Prior art keywords
regions
interesting
data
representing
interesting regions
Prior art date
Application number
KR1020187033697A
Other languages
English (en)
Other versions
KR102342274B1 (ko
Inventor
예-쿠이 왕
프누 헨드리
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20190014501A publication Critical patent/KR20190014501A/ko
Application granted granted Critical
Publication of KR102342274B1 publication Critical patent/KR102342274B1/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/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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • G06K9/00744
    • G06K9/3233
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

비디오 데이터에 대한 정보를 결정하기 위한 디바이스는, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하도록 구성되는, 회로로 구현되는 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하고 요청을 서버 디바이스에 출력하도록 추가로 구성된다.

Description

이미지에서 가장 관심있는 영역의 진보된 시그널링
[0001] 본 출원은 2016년 5월 24일에 출원된 미국 가출원 제62/341,017호의 이익을 주장하며, 이로써 상기 가출원은 그 전체가 인용에 의해 통합된다.
[0002] 본 개시는 인코딩된 비디오 데이터의 저장 및 전송에 관한 것이다.
[0003] 디지털 비디오 능력들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, PDA들(personal digital assistant), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 비디오 화상회의 디바이스들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은, 디지털 비디오 정보를 더 효율적으로 송신 및 수신하기 위해, MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, AVC(Advanced Video Coding), ITU-T H.265(또한 HEVC(High Efficiency Video Coding)로 지칭됨)에 의해 정의된 표준들 및 이러한 표준들의 확장들에서 설명되는 것들과 같은 비디오 압축 기술들을 구현한다.
[0004] 비디오 압축 기술들은 비디오 시퀀스들에 고유한 리던던시를 감소 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 수행한다. 블록 기반 비디오 코딩의 경우, 비디오 프레임 또는 슬라이스는 매크로블록들 또는 CTU(coding tree unit)들로 파티셔닝될 수 있다. 본 문헌의 나머지에서, 매크로블록들 및 CTU들이라는 2개의 용어들은 상호교환가능하게 사용된다. 각각의 매크로블록은 추가로 파티셔닝될 수 있다. 인트라-코딩된(I) 프레임 또는 슬라이스의 매크로블록들은 이웃 매크로블록들에 대한 공간 예측을 사용하여 인코딩된다. 인터-코딩된(P 또는 B) 프레임 또는 슬라이스의 매크로블록들은 동일한 프레임 또는 슬라이스의 이웃 매크로블록들에 대한 공간 예측 또는 다른 기준 프레임들에 대한 시간 예측을 사용할 수 있다.
[0005] 비디오 데이터가 인코딩된 후, 비디오 데이터는 송신 또는 저장을 위해 패킷화될 수 있다. 비디오 데이터는 ISO(International Organization for Standardization) 베이스 미디어 파일 포맷 및 이의 확장들, 예를 들어 AVC 파일 포맷과 같은 다양한 표준들 중 임의의 것을 준수하는 비디오 파일에 어셈블링될 수 있다.
[0006] 비디오 데이터가 송신 또는 저장을 위해 패킷화된 후, 클라이언트 디바이스는 패킷화된 비디오 데이터를 적절한 품질로 요청할 수 있다. 예를 들어, 클라이언트 디바이스는, 클라이언트 디바이스와 패킷화된 비디오를 송신하는 디지털 비디오 디바이스 사이의 대역폭이 높은 경우 그 패킷화된 비디오 데이터를 비교적 높은 품질로 요청할 수 있고, 클라이언트 디바이스와 패킷화된 비디오를 송신하는 디지털 비디오 디바이스 사이의 대역폭이 낮은 경우 그 패킷화된 비디오 데이터를 비교적 낮은 품질로 요청할 수 있다.
[0007] 일반적으로, 본 개시는 비디오 데이터의 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함하는 비트스트림을 생성 및 소비하기 위한 기술들을 설명한다. 이러한 기술들은 특히, 사용자의 FOV(field of view)가 전체 이미지보다 작기 때문에 이미지의 오직 일부만이 사용자에게 제시되는 상황들에 적용가능할 수 있다. 예를 들어, 이러한 기술들은 VR(virtual reality) 시나리오들에 적용될 수 있다. 따라서, 이미지의 오직 일부만이 예를 들어, VR 헤드셋을 통해 사용자에게 제시될 수 있다. 사용자의 FOV는 이미지의 가장 관심있는 영역들 중 하나 이상과 부분적으로 또는 완전히 중첩할 수 있다. 따라서, "이미지의 가장 관심있는 영역들"이라는 어구는 일반적으로, 이미지의 프리젠테이션 시간에 이미지의 다른 영역들에 비해 사용자에게 제시될 가능성이 더 있는 이미지의 영역들을 지칭한다. 디바이스는 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 프리-페치(pre-fetch)하기 위해 하나 이상의 가장 관심있는 영역들을 사용할 수 있어서, 예를 들어, 디바이스는 이미지의 다른 영역들에 대한 비디오 데이터를 요청하기 전에 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 요청하고, 여기서 디바이스는 비디오 디코더를 포함하는 엔티티일 수 있거나 CDN(content delivery network) 노드와 같은 네트워크 엘리먼트일 수 있다.
[0008] 일례에서, 비디오 데이터에 대한 정보를 결정하는 방법은, 회로로 구현된 프로세서인 디바이스의 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계, 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하는 단계, 및 프로세서에 의해, 요청을 서버 디바이스에 출력하는 단계를 포함한다.
[0009] 다른 예에서, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스는 회로로 구현되는 하나 이상의 프로세서들을 포함하며, 하나 이상의 프로세서들은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하고, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하고, 요청을 서버 디바이스에 출력하도록 구성된다.
[0010] 다른 예에서, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스는, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하기 위한 수단, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하기 위한 수단, 및 요청을 서버 디바이스에 출력하기 위한 수단을 포함한다.
[0011] 다른 예에서, 컴퓨터 프로그램 제품은 명령들을 포함하는 컴퓨터 판독가능 저장 매체를 포함하고, 명령들은 실행되는 경우 프로세서로 하여금, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하게 하고, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하게 하고, 요청을 서버 디바이스에 출력하게 한다.
[0012] 다른 예에서, 비디오 데이터에 대한 정보를 시그널링하는 방법은, 회로로 구현되는 프로세서인 소스 디바이스의 프로세서에 의해, 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계를 포함한다. 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함한다. 방법은 프로세서에 의해 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계를 더 포함한다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함된다. 방법은 프로세서에 의해 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하는 단계를 더 포함한다.
[0013] 다른 예에서, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스는 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하도록 구성되는 회로로 구현되는 하나 이상의 프로세서들을 포함한다. 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함한다. 하나 이상의 프로세서들은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하도록 추가로 구성된다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함된다. 하나 이상의 프로세서들은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하도록 추가로 구성된다.
[0014] 다른 예에서, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스는 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하기 위한 수단을 포함한다. 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함한다. 디바이스는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위한 수단을 더 포함한다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함된다. 디바이스는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하기 위한 수단을 더 포함한다.
[0015] 다른 예에서, 컴퓨터 프로그램 제품은 프로세서로 하여금 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하게 하는 명령들을 포함하는 컴퓨터 판독가능 저장 매체를 포함한다. 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함한다. 명령들은 추가로, 프로세서로 하여금 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하게 한다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함된다. 명령들은 추가로, 프로세서로 하여금 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하게 한다.
[0016] 하나 이상의 예들의 세부사항들은 첨부된 도면들 및 아래의 설명에서 기술된다. 다른 특징들, 목적들 및 이점들은 설명 및 도면들로부터 및 청구항들로부터 자명할 것이다.
[0017] 도 1은 네트워크를 통해 미디어 데이터를 스트리밍하기 위한 기술들을 구현하는 예시적인 시스템을 예시하는 블록도이다.
[0018] 도 2는 예시적인 멀티미디어 콘텐츠의 엘리먼트들을 예시하는 개념도이다.
[0019] 도 3은 도 2의 표현에 대응할 수 있는 예시적인 비디오 파일의 엘리먼트들을 예시하는 블록도이다.
[0020] 도 4는 직육면체 투영에서 예시적인 타일 코딩을 예시하는 개념도이다.
[0021] 도 5는 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터에 대한 정보를 결정하기 위한 예시적인 접근법을 예시하는 흐름도이다.
[0022] 도 6은 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터에 대한 정보를 시그널링하기 위한 예시적인 접근법을 예시하는 흐름도이다.
[0023] 도 7은 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터를 프리-페치하기 위한 예시적인 접근법을 예시하는 흐름도이다.
[0024] 본 발명은 VR(virtual reality)에 관한 것이다. 더 구체적으로, 본 발명은 VR 비디오에서 하나 이상의 가장 관심있는 영역들의 세트의 생성, 가장 관심있는 영역들의 정보의 시그널링, 및 VR 비디오 콘텐츠의 인코딩, 스트리밍, 재생 및 관리에서 정보의 사용을 위한 일부 방법들을 개시한다.
[0025] 일반적으로, 본 개시는 비디오 데이터의 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함하는 비디오 콘텐츠를 생성하기 위한 기술들을 설명한다. 예를 들어, 무지향성 비디오 콘텐츠가 스트리밍 서비스를 통해 제공된 경우 사용자들에 의해 어느 영역들이 가장 많이 요청/시청되었는지의 통계를 통해, 디렉터 또는 제작자는 하나 이상의 가장 관심있는 영역들을 선택할 수 있거나 또는 컴퓨팅 디바이스는 서비스 또는 콘텐츠 제공자에 의해 사용자 통계로부터 하나 이상의 가장 관심있는 영역들을 유도할 수 있다. 임의의 경우에, 클라이언트 디바이스는 360 비디오로 또한 지칭되는 가상 현실 비디오와 같은 비디오의 재생을 개선하도록 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 프리-페치하기 위해 하나 이상의 가장 관심있는 영역들을 사용할 수 있다.
[0026] 구체적으로, 클라이언트 디바이스는 예를 들어, 비트스트림의 비디오 코딩 계층 데이터를 송신하기 위해 헤더 또는 메시지에서 수신된 정보를 사용하여, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 결정할 수 있다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 하나 이상의 가장 관심있는 영역들을 결정할 때, 클라이언트 디바이스는 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성할 수 있다. 하나 이상의 가장 관심있는 영역들을 요청한 후, 클라이언트 디바이스는 사용자의 FOV(field of view)를 사용하여 이미지의 하나 이상의 다른 영역들을 요청할 수 있다. 이러한 방식으로, 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터가 프리-페치되어, 가상 현실 비디오와 같은 비디오의 재생을 개선할 수 있다(예를 들어, 사용자의 FOV를 수신하기 전에 요청될 수 있다).
[0027] 본 개시의 기술들은 ISO 베이스 미디어 파일 포맷, SVC(Scalable Video Coding) 파일 포맷, AVC(Advanced Video Coding) 파일 포맷, 3GPP(Third Generation Partnership Project) 파일 포맷 및/또는 MVC(Multiview Video Coding) 파일 포맷 또는 다른 유사한 비디오 파일 포맷들 중 임의의 것에 따라 캡슐화된 비디오 데이터을 준수하는 비디오 파일들에 적용될 수 있다.
[0028] 본 개시의 기술들은 DASH(adaptive streaming over HTTP) 환경과 같은 미디어 데이터를 스트리밍하기 위한 환경에 적용될 수 있다. 이러한 기술들은 HLS(HTTP Live Streaming) 또는 다른 라이브 스트리밍 서비스들을 지원하기 위해 사용될 수 있다. DASH 및 HLS에 대해 일반적으로 논의되지만, 본 개시의 기술들은 다른 네트워크 스트리밍 프로토콜들에 적용가능할 수 있다. DASH는 http://standards.iso.org/ittf/PubliclyAvailableStandards/c057623_ISO_IEC_23009-1_2012.zip에서 입수가능한, 2012년 4월 1일, ISO/IEC 23009-1:2012 "Information technology ― Dynamic adaptive streaming over HTTP (DASH) ― Part 1: Media presentation description and segment formats"에서 특정된다.
[0029] HTTP 스트리밍에서, 빈번하게 사용되는 동작들은 EAD, GET 및 부분적 GET를 포함한다. HEAD 동작은, URL(uniform resource locator) 또는 URN(uniform resource name)과 연관된 페이로드를 리트리브함이 없이, 주어진 URL 또는 URN과 연관된 파일의 헤더를 리트리브한다. GET 동작은 URL 또는 URN과 연관된 전체 파일을 리트리브한다. 부분적 GET 동작은 입력 파라미터로서 바이트 범위를 수신하고, 파일의 연속적인 수의 바이트들을 리트리브하고, 여기서 바이트들의 수는 수신된 바이트 범위에 대응한다. 따라서, 영화 프래그먼트들은 HTTP 스트리밍에 대해 제공될 수 있는데, 이는, 부분적 GET 동작이 하나 이상의 개별적인 영화 프래그먼트들을 획득할 수 있기 때문이다. 영화 프래그먼트에서, 상이한 트랙들의 몇몇 트랙 프래그먼트가 존재할 수 있다. HTTP 스트리밍에서, 미디어 프리젠테이션은 클라이언트가 액세스가능한 데이터의 구조화된 집합물일 수 있다. 클라이언트는 사용자에게 스트리밍 서비스를 제시하기 위해 미디어 데이터 정보를 요청 및 다운로드할 수 있다.
[0030] HTTP 스트리밍을 사용하여 3GPP 데이터를 스트리밍하는 예에서, 멀티미디어 콘텐츠의 비디오 및/또는 오디오 데이터에 대한 다수의 표현들이 존재할 수 있다. 아래에서 설명되는 바와 같이, 상이한 표현들은 상이한 코딩 특성들(예를 들어, 비디오 코딩 표준의 상이한 프로파일들 또는 레벨들), 상이한 코딩 표준들 또는 코딩 표준들의 확장들(예를 들어, 멀티뷰 및/또는 스케일링가능한 확장들) 또는 상이한 비트레이트들에 대응할 수 있다. 이러한 표현들의 매니페스트는 MPD(Media Presentation Description) 데이터 구조에서 정의될 수 있다. 미디어 프리젠테이션은 HTTP 스트리밍 클라이언트 디바이스가 액세스가능한 데이터의 구조화된 집합물에 대응할 수 있다. HTTP 스트리밍 클라이언트 디바이스는 클라이언트 디바이스의 사용자에게 스트리밍 서비스를 제시하기 위해 미디어 데이터 정보를 요청 및 다운로드할 수 있다. 미디어 프리젠테이션은 MPD의 업데이트들을 포함할 수 있는 MPD 데이터 구조에서 설명될 수 있다.
[0031] 미디어 프리젠테이션은 하나 이상의 기간들의 시퀀스를 포함할 수 있다. 각각의 기간은, 다음 기간의 시작까지 또는 마지막 기간의 경우 미디어 프리젠테이션의 종료까지 확장될 수 있다. 각각의 기간은 동일한 미디어 콘텐츠에 대한 하나 이상의 표현들을 포함할 수 있다. 표현은 오디오, 비디오, 타임드 텍스트(timed text) 또는 다른 이러한 데이터의 다수의 대안적인 인코딩된 버전들 중 하나일 수 있다. 표현들은 인코딩 타입들에 의해, 예를 들어, 비디오 데이터에 대한 비트레이트, 해상도 및/또는 코덱, 및 오디오 데이터에 대한 비트레이트, 언어 및/또는 코덱에 의해 상이할 수 있다. 표현이라는 용어는, 멀티미디어 콘텐츠의 특정 기간에 대응하고 특정 방식으로 인코딩되는 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하기 위해 사용될 수 있다.
[0032] 특정 기간의 표현은, 그 표현이 속하는 적응 세트를 표시하는 MPD에서의 속성에 의해 표시되는 그룹에 할당될 수 있다. 동일한 적응 세트의 표현들은, 예를 들어, 클라이언트 디바이스가 대역폭 적응을 수행하기 위해 이러한 표현들 사이에서 동적으로 그리고 끊김없이 스위칭할 수 있다는 점에서 일반적으로 서로에 대한 대안들로 고려된다. 예를 들어, 특정 기간에 대한 비디오 데이터의 각각의 표현은 동일한 적응 세트에 할당될 수 있어서, 표현들 중 임의의 것은 대응하는 기간에 대한 멀티미디어 콘텐츠의 비디오 데이터 또는 오디오 데이터와 같은 미디어 데이터를 제시하도록 디코딩하기 위해 선택될 수 있다. 일 기간 내의 미디어 콘텐츠는, 존재한다면 그룹 0으로부터의 하나의 표현, 또는 일부 예들에서는 각각의 넌-제로 그룹으로부터의 최대 하나의 표현의 조합에 의해 표현될 수 있다. 기간의 각각의 표현에 대한 타이밍 데이터는 기간의 시작 시간에 대해 표현될 수 있다.
[0033] 표현은 하나 이상의 세그먼트들을 포함할 수 있다. 각각의 표현은 초기화 세그먼트를 포함할 수 있거나, 또는 표현의 각각의 세그먼트는 자체-초기화할 수 있다. 존재하는 경우, 초기화 세그먼트는 표현에 액세스하기 위한 초기화 정보를 포함할 수 있다. 일반적으로, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트는 식별자, 예를 들어, URL(uniform resource locator), URN(uniform resource name) 또는 URI(uniform resource identifier)에 의해 고유하게 참조될 수 있다. MPD는 각각의 세그먼트에 대한 식별자들을 제공할 수 있다. 일부 예들에서, MPD는 또한, 범위 속성 형태로 바이트 범위들을 제공할 수 있고, 이는 URL, URN 또는 URI에 의해 액세스가능한 파일 내의 세그먼트에 대한 데이터에 대응할 수 있다.
[0034] 상이한 타입들의 미디어 데이터에 대한 실질적으로 동시적 리트리벌을 위해 상이한 표현들이 선택될 수 있다. 예를 들어, 클라이언트 디바이스는 오디오 표현, 비디오 표현 및 세그먼트들이 리트리브되는 타임드 텍스트 표현을 선택할 수 있다. 일부 예들에서, 클라이언트 디바이스는 대역폭 적응을 수행하기 위한 특정 적응 세트들을 선택할 수 있다. 즉, 클라이언트 디바이스는 비디오 표현들을 포함하는 적응 세트, 오디오 표현들을 포함하는 적응 세트 및/또는 타임드 텍스트를 포함하는 적응 세트를 선택할 수 있다. 대안적으로, 클라이언트 디바이스는 특정 타입들의 미디어(예를 들어, 비디오)에 대한 적응 세트들을 선택할 수 있고 다른 타입들의 미디어(예를 들어, 오디오 및/또는 타임드 텍스트)에 대한 표현들을 직접 선택할 수 있다.
[0035] 도 1은 네트워크를 통해 미디어 데이터를 스트리밍하기 위한 기술들을 구현하는 예시적인 시스템(10)을 예시하는 블록도이다. 이러한 예에서, 시스템(10)은 콘텐츠 준비 디바이스(20), 서버 디바이스(60) 및 클라이언트 디바이스(40)를 포함한다. 클라이언트 디바이스(40) 및 서버 디바이스(60)는, 인터넷을 포함할 수 있는 네트워크(74)에 의해 통신가능하게 커플링된다. 일부 예들에서, 콘텐츠 준비 디바이스(20) 및 서버 디바이스(60)는 또한 네트워크(74) 또는 다른 네트워크에 의해 커플링될 수 있거나, 또는 직접 통신가능하게 커플링될 수 있다. 일부 예들에서, 콘텐츠 준비 디바이스(20) 및 서버 디바이스(60)는 동일한 디바이스를 포함할 수 있다.
[0036] 콘텐츠 준비 디바이스(20)는 도 1의 예에서, 오디오 소스(22) 및 비디오 소스(24)를 포함한다. 오디오 소스(22)는 예를 들어, 오디오 인코더(26)에 의해 인코딩될 캡처된 오디오 데이터를 표현하는 전기 신호들을 생성하는 마이크로폰을 포함할 수 있다. 대안적으로, 오디오 소스(22)는 이전에 레코딩된 오디오 데이터를 저장하는 저장 매체, 컴퓨터화된 합성기와 같은 오디오 데이터 생성기 또는 오디오 데이터의 임의의 다른 소스를 포함할 수 있다. 비디오 소스(24)는, 비디오 인코더(28)에 의해 인코딩될 비디오 데이터를 생성하는 비디오 카메라, 이전에 레코딩된 비디오 데이터로 인코딩된 저장 매체, 컴퓨터 그래픽 소스와 같은 비디오 데이터 생성 유닛 또는 비디오 데이터의 임의의 다른 소스를 포함할 수 있다. 콘텐츠 준비 디바이스(20)는 모든 예들에서 반드시 서버 디바이스(60)에 통신가능하게 커플링될 필요는 없지만, 서버 디바이스(60)에 의해 판독되는 별개의 매체에 멀티미디어 콘텐츠를 저장할 수 있다.
[0037] 원시 오디오 및 비디오 데이터는 아날로그 또는 디지털 데이터를 포함할 수 있다. 아날로그 데이터는 오디오 인코더(26) 및/또는 비디오 인코더(28)에 의해 인코딩되기 전에 디지털화될 수 있다. 오디오 소스(22)는, 스피킹 참여자가 말하고 있는 동안 스피킹 참여자로부터 오디오 데이터를 획득할 수 있고, 동시에, 비디오 소스(24)는 스피킹 참여자의 비디오 데이터를 획득할 수 있다. 다른 예들에서, 오디오 소스(22)는 저장된 오디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있고, 비디오 소스(24)는 저장된 비디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 이러한 방식으로, 본 개시에 설명된 기술들은 라이브, 스트리밍, 실시간 오디오 및 비디오 데이터에, 또는 아카이브되고 미리 레코딩된 오디오 및 비디오 데이터에 적용될 수 있다.
[0038] 비디오 프레임들에 대응하는 오디오 프레임들은 일반적으로, 비디오 프레임들 내에 포함된 비디오 소스(24)에 의해 캡처된(또는 생성된) 비디오 데이터와 동시에 오디오 소스(22)에 의해 캡처된(또는 생성된) 오디오 데이터를 포함하는 오디오 프레임들이다. 예를 들어, 스피킹 참여자가 일반적으로 스피킹에 의해 오디오 데이터를 생성하는 동안, 오디오 소스(22)는 오디오 데이터를 캡처하고, 그와 동시에, 즉, 오디오 소스(22)가 오디오 데이터를 캡처하는 동안 비디오 소스(24)는 스피킹 참여자의 비디오 데이터를 캡처한다. 따라서, 오디오 프레임은 하나 이상의 특정 비디오 프레임들에 시간적으로 대응할 수 있다. 따라서, 비디오 프레임에 대응하는 오디오 프레임은 일반적으로, 오디오 데이터 및 비디오 데이터가 동시에 캡처되었고, 오디오 프레임 및 비디오 프레임이 동시에 캡처된 오디오 데이터 및 비디오 데이터를 각각 포함하는 상황에 대응한다.
[0039] 일부 예들에서, 오디오 인코더(26)는, 인코딩된 오디오 프레임에 대한 오디오 데이터가 레코딩된 시간을 표현하는 각각의 인코딩된 오디오 프레임에서 타임스탬프를 인코딩할 수 있고, 유사하게, 비디오 인코더(28)는 인코딩된 비디오 프레임에 대한 비디오 데이터가 레코딩된 시간을 표현하는 각각의 인코딩된 비디오 프레임에서 타임스탬프를 인코딩할 수 있다. 이러한 예들에서, 비디오 프레임에 대응하는 오디오 프레임은 타임스탬프를 포함하는 오디오 프레임 및 동일한 타임스탬프를 포함하는 비디오 프레임을 포함할 수 있다. 콘텐츠 준비 디바이스(20)는, 오디오 인코더(26) 및/또는 비디오 인코더(28)가 타임스탬프들을 생성할 수 있거나 또는 오디오 및 비디오 데이터를 타임스탬프와 각각 연관시키기 위해 오디오 소스(22) 및 비디오 소스(24)가 사용할 수 있는 내부 클럭을 포함할 수 있다.
[0040] 일부 예에서, 오디오 소스(22)는 오디오 데이터가 레코딩된 시간에 대응하는 데이터를 오디오 인코더(26)에 전송할 수 있고, 비디오 소스(24)는 비디오 데이터가 레코딩된 시간에 대응하는 데이터를 비디오 인코더(28)에 전송할 수 있다. 일부 예들에서, 오디오 인코더(26)는 인코딩된 오디오 데이터의 상대적인 시간적 순서를 표시하기 위해 그러나 오디오 데이터가 레코딩된 절대적 시간을 반드시 표시할 필요는 없이 인코딩된 오디오 데이터에서 시퀀스 식별자를 인코딩할 수 있고, 유사하게, 비디오 인코더(28)는 또한 인코딩된 비디오 데이터의 상대적인 시간적 순서를 표시하기 위해 시퀀스 식별자들을 사용할 수 있다. 유사하게, 일부 예들에서, 시퀀스 식별자는 타임스탬프와 맵핑되거나 그렇지 않으면 상관될 수 있다.
[0041] 오디오 인코더(26)는 일반적으로 인코딩된 오디오 데이터의 스트림을 생성하는 한편, 비디오 인코더(28)는 인코딩된 비디오 데이터의 스트림을 생성한다. (오디오이든 또는 비디오이든) 각각의 개별적인 데이터 스트림은 기본적 스트림으로 지칭될 수 있다. 기본적 스트림은 표현의 단일하고 디지털 코딩된(가능하게는 압축된) 컴포넌트이다. 예를 들어, 표현의 코딩된 비디오 또는 오디오 부분은 기본적 스트림일 수 있다. 기본적 스트림은 비디오 파일 내에서 캡슐화되기 전에 PES(packetized elementary stream)로 변환될 수 있다. 동일한 표현 내에서, 스트림 ID는 하나의 기본적 스트림에 속하는 PES-패킷들을 다른 것으로부터 구별하기 위해 사용될 수 있다. 기본적 스트림의 기본 데이터 유닛은 PES(packetized elementary stream) 패킷이다. 따라서, 코딩된 비디오 데이터는 일반적으로 기본적 비디오 스트림들에 대응한다. 유사하게, 오디오 데이터는 하나 이상의 각각의 기본적 스트림들에 대응한다.
[0042] 많은 비디오 코딩 표준들, 예를 들어, ITU-T H.264/AVC 및 향후의 HEVC(High Efficiency Video Coding) 표준은 에러-없는 비트스트림들에 대한 신택스, 시맨틱스 및 디코딩 프로세스를 정의하고, 이들 중 임의의 것은 특정 프로파일 또는 레벨을 준수한다. 비디오 코딩 표준들은 통상적으로 인코더를 특정하지 않지만, 인코더는 생성된 비트스트림들이 디코더에 대한 표준을 준수하는 것을 보장하는 과제를 갖는다. 비디오 코딩 표준들의 맥락에서, "프로파일"은 이들에 적용되는 알고리즘들, 특징들 또는 툴들 및 제약들의 서브세트에 대응한다. 예를 들어, H.264 표준에 의해 정의되는 바와 같이, "프로파일"은 H.264 표준에 의해 특정된 전체 비트스트림 신택스의 서브세트이다. "레벨"은 예를 들어, 디코더 메모리 및 컴퓨테이션과 같은 디코더 자원 소비의 제한들에 대응하고, 이들은 픽처들의 해상도, 비트 레이트 및 블록 프로세싱 레이트와 관련된다. 프로파일은 profile_idc(프로파일 표시자) 값과 함께 시그널링될 수 있는 한편, 레벨은 level_idc(레벨 표시자) 값과 함께 시그널링될 수 있다.
[0043] H.264 표준은 예를 들어, 주어진 프로파일의 신택스에 의해 부과되는 제한들 내에서, 디코딩된 픽처들의 특정 크기와 같은 비트스트림 내의 신택스 엘리먼트들에 의해 취해진 값들에 따라 인코더들 및 디코더들의 성능에서 큰 변동을 요구하는 것이 여전히 가능함을 인식한다. H.264 표준은, 많은 애플리케이션들에서, 특정 프로파일 내의 신택스의 모든 가설적 사용들을 처리할 수 있는 디코더를 구현하기에는 실용적이거나 경제적이 아님을 추가로 인식한다. 따라서, H.264 표준은 비트스트림의 신택스 엘리먼트들의 값들 상에 부과되는 제약들의 특정 세트로서 "레벨"을 정의한다. 이러한 제약들은 값들에 대한 간단한 제한들일 수 있다. 대안적으로, 이러한 제약들은 값들의 산술적 조합들에 대한 제약들의 형태를 취할 수 있다(예를 들어, 픽처 폭 곱하기 픽처 높이 곱하기 초당 디코딩되는 픽처들의 수). H.264 표준은, 개별적인 구현들이 각각의 지원되는 프로파일에 대해 상이한 레벨을 지원할 수 있음을 추가로 제공한다.
[0044] 프로파일을 준수하는 디코더는 통상적으로 프로파일에 정의된 모든 특징들을 지원한다. 예를 들어, 코딩 특징으로서 B-픽처 코딩은 H.264/AVC의 베이스라인 프로파일에서는 지원되지 않지만 H.264/AVC의 다른 프로파일들에서는 지원된다. 레벨을 준수하는 디코더는 레벨에서 정의된 제한들을 넘는 자원들을 요구하지 않는 임의의 비트스트림을 디코딩할 수 있어야 한다. 프로파일들 및 레벨들의 정의들은 해석가능성에 도움이 될 수 있다. 예를 들어, 비디오 송신 동안, 프로파일 및 레벨 정의들의 쌍이 협상되고 전체 송신 세션에 대해 동의될 수 있다. 더 구체적으로, H.264/AVC에서, 레벨은 프로세싱될 필요가 있는 매크로블록들의 수, DPB(decoded picture buffer) 크기, CPB(coded picture buffer) 크기, 수직 모션 벡터 범위, 2개의 연속적 MB들 당 모션 벡터들의 최대 수, 및 B-블록이 8x8 픽셀들 미만의 서브-매크로블록 파티션들을 가질 수 있는지 여부에 대한 제한들을 정의할 수 있다. 이러한 방식으로, 디코더는, 디코더가 비트스트림을 적절히 디코딩할 수 있는지 여부를 결정할 수 있다.
[0045] 도 1의 예에서, 콘텐츠 준비 디바이스(20)의 캡슐화 유닛(30)은 비디오 인코더(28)로부터 코딩된 비디오 데이터를 포함하는 기본적 스트림들 및 오디오 인코더(26)로부터 코딩된 오디오 데이터를 포함하는 기본적 스트림들을 수신한다. 일부 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 각각 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들을 포함할 수 있다. 다른 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 각각 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 각각의 패킷화기들과 인터페이싱할 수 있다. 또 다른 예들에서, 캡슐화 유닛(30)은 인코딩된 오디오 및 비디오 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들을 포함할 수 있다.
[0046] 비디오 인코더(28)는, 픽셀 해상도들, 프레임 레이트들, 다양한 코딩 표준들에 대한 준수, 다양한 프로파일들에 대한 준수 및/또는 다양한 코딩 표준들에 대한 프로파일들의 레벨들, 하나의 또는 (예를 들어, 2-차원 또는 3-차원 재생을 위한) 다수의 뷰들을 갖는 표현들, 또는 다른 이러한 특성들과 같은 다양한 특성들로 그리고 다양한 비트레이트들에서 멀티미디어 콘텐츠의 상이한 표현들을 생성하기 위해 다양한 방식들로 멀티미디어 콘텐츠의 비디오 데이터를 인코딩할 수 있다. 본 개시에서 사용되는 바와 같은 표현은 오디오 데이터, 비디오 데이터, (예를 들어, 폐쇄 자막에 대한) 텍스트 데이터 또는 다른 이러한 데이터 중 하나를 포함할 수 있다. 표현은 기본적 스트림, 예를 들어, 오디오 기본적 스트림 또는 비디오 기본적 스트림을 포함할 수 있다. 각각의 PES 패킷은, PES 패킷이 속한 기본적 스트림을 식별하는 stream_id를 포함할 수 있다. 캡슐화 유닛(30)은 기본적 스트림들을 다양한 표현들의 비디오 파일들(예를 들어, 세그먼트들)로 어셈블링하는 것을 담당한다.
[0047] 캡슐화 유닛(30)은 오디오 인코더(26) 및 비디오 인코더(28)로부터 표현의 기본적 스트림들에 대한 PES 패킷들을 수신하고, PES 패킷들로부터 대응하는 NAL(network abstraction layer) 유닛들을 형성한다. 코딩된 비디오 세그먼트들은 NAL 유닛들로 체계화될 수 있고, 이는 비디오 텔레포니, 저장, 브로드캐스트 또는 스트리밍과 같은 "네트워크-친화적" 비디오 표현 어드레싱 애플리케이션들을 제공한다. NAL 유닛들은 VCL(Video Coding Layer) NAL 유닛들(예를 들어, VCL 데이터) 및 넌-VCL NAL 유닛들로 카테고리화될 수 있다. VCL 유닛들(또한 VCL 데이터로 지칭됨)은 코어 압축 엔진을 포함할 수 있고, 블록, 매크로블록 및/또는 슬라이스 레벨 데이터를 포함할 수 있다. 다른 NAL 유닛들은 넌-VCL NAL 유닛들일 수 있다. 일부 예들에서, 통상적으로 1차 코딩된 픽처로 제시되는 하나의 시간 인스턴스의 코딩된 픽처는 하나 이상의 NAL 유닛들을 포함할 수 있는 액세스 유닛에 포함될 수 있다.
[0048] 넌-VCL NAL 유닛들은 무엇보다도 파라미터 세트 NAL 유닛들 및 SEI(Supplemental Enhancement Information) NAL 유닛들을 포함할 수 있다. 파라미터 세트들은 시퀀스-레벨 헤더 정보 (SPS(sequence parameter sets) 내에) 및 빈번하지 않게 변하는 픽처-레벨 헤더 정보를 (PPS(picture parameter sets) 내에) 포함할 수 있다. 파라미터 세트들(예를 들어, PPS 및 SPS)에 있어서, 빈번하지 않게 변하는 정보는 각각의 시퀀스 또는 픽처에 대해 반복될 필요가 없고, 따라서 코딩 효율이 개선될 수 있다. 또한, 파라미터 세트들의 사용은 중요한 헤더 정보의 대역 외 송신을 가능하게 하여, 에러 탄력성을 위한 여분의 송신들에 대한 필요성을 회피할 수 있다. 대역 외 송신 예들에서, 파라미터 세트 NAL 유닛들은 SEI NAL 유닛들과 같은 NAL 유닛들 이외의 상이한 채널 상에서 송신될 수 있다.
[0049] SEI 메시지들은 VCL NAL 유닛들로부터 코딩된 픽처 샘플들을 디코딩하기 위해 필요하지 않은 정보를 포함할 수 있지만, 디코딩, 디스플레이, 에러 탄력성 및 다른 목적들과 관련된 프로세스들을 보조할 수 있다. SEI 메시지들은 넌-VCL NAL 유닛들에 포함될 수 있다. SEI 메시지들은 일부 표준 규격들의 규범적 부분이고, 따라서 표준을 준수하는 디코더 구현에 대해 항상 강제적인 것은 아니다. SEI 메시지들은 시퀀스 레벨 SEI 메시지들 또는 픽처 레벨 SEI 메시지들일 수 있다. 일부 시퀀스 레벨 정보는 SEI 메시지들, 예를 들어, SVC의 예에서 스케일링가능성 정보 SEI 메시지들 및 뷰 스케일링가능성 정보 SEI 메시지들에 포함될 수 있다. 이러한 예시적인 SEI 메시지들은 예를 들어, 동작 포인트들의 추출 및 동작 포인트들의 특성들에 대한 정보를 전달할 수 있다. 또한, 캡슐화 유닛(30)은 표현들의 특성들을 설명하는 MPD(media presentation descriptor)와 같은 매니페스트(manifest) 파일을 형성할 수 있다. 캡슐화 유닛(30)은 XML(extensible markup language)에 따라 MPD를 포맷할 수 있다.
[0050] 캡슐화 유닛(30)은 멀티미디어 콘텐츠의 하나 이상의 표현들에 대한 데이터를 매니페스트 파일(예를 들어, MPD)과 함께 출력 인터페이스(32)에 제공할 수 있다. 출력 인터페이스(32)는, 네트워크 인터페이스, 또는 USB(universal serial bus) 인터페이스, CD 또는 DVD 기록기 또는 버너(burner), 자기 또는 플래시 저장 매체들에 대한 인터페이스 또는 미디어 데이터를 저장 또는 송신하기 위한 다른 인터페이스들과 같은 저장 매체에 기록하기 위한 인터페이스를 포함할 수 있다. 캡슐화 유닛(30)은 멀티미디어 콘텐츠의 표현들 각각의 데이터를 출력 인터페이스(32)에 제공할 수 있고, 출력 인터페이스(32)는 네트워크 송신 또는 저장 매체들을 통해 서버 디바이스(60)에 데이터를 전송할 수 있다. 도 1의 예에서, 서버 디바이스(60)는, 각각의 매니페스트 파일(66) 및 하나 이상의 표현들(68A-68N)(표현들(68))을 각각 포함하는 다양한 멀티미디어 콘텐츠(64)를 저장하는 저장 매체(62)를 포함한다. 일부 예들에서, 출력 인터페이스(32)는 또한 데이터를 네트워크(74)에 직접 전송할 수 있다.
[0051] 일부 예들에서, 표현들(68)은 적응 세트들로 분리될 수 있다. 즉, 표현들(68)의 다양한 서브세트들은, 코덱, 프로파일 및 레벨, 해상도, 뷰들의 수, 세그먼트들에 대한 파일 포맷, 표현에 의해 디스플레이될 텍스트의 언어 또는 다른 특성들을 식별할 수 있는 텍스트 타입 정보 및/또는 예를 들어, 스피커들에 의해 디코딩 및 제시될 오디오 데이터, 카메라 각도 또는 적응 세트의 표현들에 대한 장면 관점에서 실세계 카메라를 설명할 수 있는 카메라 각도 정보, 특정 청중들에 대한 콘텐츠 적합성을 설명하는 레이팅 정보 등과 같은 특성들의 각각의 공통 세트들을 포함할 수 있다.
[0052] 매니페스트 파일(66)은 특정 적응 세트들에 대응하는 표현들(68)의 서브세트들 뿐만 아니라 적응 세트들에 대한 공통 특성들을 표시하는 데이터를 포함할 수 있다. 매니페스트 파일(66)은 또한 개별적인 특성들, 예를 들어, 적응 세트들의 개별적인 표현들에 대한 비트레이트들을 표현하는 데이터를 포함할 수 있다. 이러한 방식으로, 적응 세트는 단순화된 네트워크 대역폭 적응을 제공할 수 있다. 적응 세트의 표현들은 매니페스트 파일(66)의 적응 세트 엘리먼트의 자(child) 엘리먼트들을 사용하여 표시될 수 있다.
[0053] 서버 디바이스(60)는 요청 프로세싱 유닛(70) 및 네트워크 인터페이스(72)를 포함한다. 일부 예들에서, 서버 디바이스(60)는 복수의 네트워크 인터페이스들을 포함할 수 있다. 또한, 서버 디바이스(60)의 특징들 중 임의의 것 또는 전부는 라우터들, 브리지들, 프록시 디바이스들, 스위치들 또는 다른 디바이스들과 같은 콘텐츠 전달 네트워크의 다른 디바이스들 상에서 구현될 수 있다. 일부 예들에서, 콘텐츠 전달 네트워크의 중간적 디바이스들은 멀티미디어 콘텐츠(64)의 데이터를 캐시할 수 있고, 서버 디바이스(60)의 컴포넌트들을 실질적으로 준수하는 컴포넌트들을 포함할 수 있다. 일반적으로, 네트워크 인터페이스(72)는 네트워크(74)를 통해 데이터를 전송 및 수신하도록 구성된다.
[0054] 요청 프로세싱 유닛(70)은 저장 매체(62)의 데이터에 대한 네트워크 요청들을 클라이언트 디바이스들, 예를 들어, 클라이언트 디바이스(40)로부터 수신하도록 구성된다. 예를 들어, 요청 프로세싱 유닛(70)은 1999년 6월 Network Working Group, IETF에서 R. Fielding에 의한 RFC 2616, "Hypertext Transfer Protocol ― HTTP/1.1"에서 설명된 바와 같이 HTTP(hypertext transfer protocol) 버전 1.1을 구현할 수 있다. 즉, 요청 프로세싱 유닛(70)은 HTTP GET 또는 부분적 GET 요청들을 수신하고, 요청들에 대한 응답으로 멀티미디어 콘텐츠(64)의 데이터를 제공하도록 구성될 수 있다. 요청들은 예를 들어, 세그먼트의 URL을 사용하여 표현들(68) 중 하나의 세그먼트를 특정할 수 있다. 일부 예들에서, 요청들은 또한 세그먼트의 하나 이상의 바이트 범위들을 특정하고, 따라서 부분적 GET 요청들을 포함할 수 있다. 요청 프로세싱 유닛(70)은 표현들(68) 중 하나의 세그먼트의 헤더 데이터를 제공하기 위해 HTTP 헤드 요청들을 서비스하도록 추가로 구성될 수 있다. 임의의 경우에, 요청 프로세싱 유닛(70)은 요청된 데이터를 클라이언트 디바이스(40)와 같은 요청 디바이스에 제공하기 위해 요청들을 프로세싱하도록 구성될 수 있다.
[0055] 추가적으로 또는 대안적으로, 요청 프로세싱 유닛(70)은 eMBMS와 같은 브로드캐스트 또는 멀티캐스트 프로토콜을 통해 미디어 데이터를 전달하도록 구성될 수 있다. 콘텐츠 준비 디바이스(20)는 설명된 것과 실질적으로 동일한 방식으로 DASH 세그먼트들 및/또는 서브-세그먼트들을 생성할 수 있지만, 서버 디바이스(60)는 eMBMS 또는 다른 브로드캐스트 또는 멀티캐스트 네트워크 전송 프로토콜을 사용하여 이러한 세그먼트들 또는 서브-세그먼트들을 전달할 수 있다. 예를 들어, 요청 프로세싱 유닛(70)은 클라이언트 디바이스(40)로부터 멀티캐스트 그룹 참가 요청을 수신하도록 구성될 수 있다. 즉, 서버 디바이스(60)는 특정 미디어 콘텐츠(예를 들어, 라이브 이벤트의 브로드캐스트)와 연관된, 클라이언트 디바이스(40)를 포함하는 클라이언트 디바이스들에 멀티캐스트 그룹과 연관된 인터넷 프로토콜(IP) 어드레스를 통지할 수 있다. 결국, 클라이언트 디바이스(40)는 멀티캐스트 그룹에 참가하기 위한 요청을 제출할 수 있다. 이러한 요청은 네트워크(74), 예를 들어, 네트워크(74)를 형성하는 라우터들 전반에 걸쳐 전파될 수 있어서, 라우터들은 멀티캐스트 그룹과 연관된 IP 어드레스로 향하는 트래픽을 가입 클라이언트 디바이스들, 예를 들어, 클라이언트 디바이스(40)로 지향시키게 된다.
[0056] 도 1의 예에 예시된 바와 같이, 멀티미디어 콘텐츠(64)는 MPD(media presentation description)에 대응할 수 있는 매니페스트 파일(66)을 포함한다. 매니페스트 파일(66)은 상이한 대안적인 표현들(68)(예를 들어, 상이한 품질들을 갖는 비디오 서비스들)의 설명들을 포함할 수 있고, 설명은, 예를 들어, 코덱 정보, 프로파일 값, 레벨 값, 비트레이트 및 표현들(68)의 다른 설명적 특성들을 포함할 수 있다. 클라이언트 디바이스(40)는 표현들(68)의 세그먼트들에 어떻게 액세스할지를 결정하기 위해 미디어 프리젠테이션의 MPD를 리트리브할 수 있다.
[0057] 특히, 리트리벌 유닛(52)은 비디오 디코더(48)의 디코딩 능력들 및 비디오 출력(44)의 렌더링 능력들을 결정하기 위해 클라이언트 디바이스(40)의 구성 데이터(미도시)를 리트리브할 수 있다. 구성 데이터는 또한 클라이언트 디바이스(40)의 사용자에 의해 선택된 언어 선호도, 클라이언트 디바이스(40)의 사용자에 의해 설정된 깊이 선호도들에 대응하는 하나 이상의 카메라 관점들, 및/또는 클라이언트 디바이스(40)의 사용자에 의해 선택된 레이팅 선호도 중 임의의 것 또는 전부를 포함할 수 있다. 리트리벌 유닛(52)은 예를 들어, HTTP GET 및 부분적 GET 요청들을 제출하도록 구성되는 웹 브라우저 또는 미디어 클라이언트를 포함할 수 있다. 리트리벌 유닛(52)은 클라이언트 디바이스(40)의 하나 이상의 프로세서들 또는 프로세싱 유닛들(미도시)에 의해 실행되는 소프트웨어 명령들에 대응할 수 있다. 일부 예들에서, 리트리벌 유닛(52)에 대해 설명된 기능 중 전부 또는 일부들은 하드웨어, 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있고, 여기서 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위해 필수적 하드웨어가 제공될 수 있다.
[0058] 리트리벌 유닛(52)은 클라이언트 디바이스(40)의 디코딩 및 렌더링 능력들을 매니페스트 파일(66)의 정보에 의해 표시되는 표현들(68)의 특성들과 비교할 수 있다. 리트리벌 유닛(52)은 표현들(68)의 특성들을 결정하기 위해 매니페스트 파일(66)의 적어도 일부를 초기에 리트리브할 수 있다. 예를 들어, 리트리벌 유닛(52)은 하나 이상의 적응 세트들의 특성들을 설명하는 매니페스트 파일(66)의 일부를 요청할 수 있다. 리트리벌 유닛(52)은 클라이언트 디바이스(40)의 코딩 및 렌더링 능력들에 의해 충족될 수 있는 특성들을 갖는 표현들(68)(예를 들어, 적응 세트)의 서브세트를 선택할 수 있다. 그 다음, 리트리벌 유닛(52)은 적응 세트의 표현들에 대한 비트레이트들을 결정할 수 있고, 네트워크 대역폭의 현재 이용가능한 양을 결정할 수 있고, 네트워크 대역폭에 의해 충족될 수 있는 비트레이트를 갖는 표현들 중 하나로부터 세그먼트들을 리트리브할 수 있다.
[0059] 일반적으로, 더 높은 비트레이트의 표현들은 더 높은 품질의 비디오 재생을 도출할 수 있는 한편, 더 낮은 비트레이트 표현들은, 이용가능한 네트워크 대역폭이 감소하는 경우 충분한 품질의 비디오 재생을 제공할 수 있다. 따라서, 이용가능한 네트워크 대역폭이 비교적 높은 경우, 리트리벌 유닛(52)은 비교적 높은 비트레이트 표현들로부터 데이터를 리트리브할 수 있는 한편, 이용가능한 네트워크 대역폭이 낮은 경우, 리트리벌 유닛(52)은 비교적 낮은 비트레이트 표현들로부터 데이터를 리트리브할 수 있다. 이러한 방식으로, 클라이언트 디바이스(40)는 네트워크(74)를 통해 멀티미디어 데이터를 스트리밍할 수 있는 한편, 네트워크(74)의 네트워크 대역폭 이용가능성을 변경하도록 또한 적응될 수 있다.
[0060] 추가적으로 또는 대안적으로, 리트리벌 유닛(52)은 eMBMS 또는 IP 멀티캐스트와 같은 브로드캐스트 또는 멀티캐스트 네트워크 프로토콜에 따라 데이터를 수신하도록 구성될 수 있다. 이러한 예들에서, 리트리벌 유닛(52)은 특정 미디어 콘텐츠와 연관된 멀티캐스트 네트워크 그룹에 참가하기 위한 요청을 제출할 수 있다. 멀티캐스트 그룹에 참가한 후, 리트리벌 유닛(52)은 서버 디바이스(60) 또는 콘텐츠 준비 디바이스(20)에 발행되는 추가적인 요청들 없이 멀티캐스트 그룹의 데이터를 수신할 수 있다. 리트리벌 유닛(52)은, 멀티캐스트 그룹의 데이터가 더 이상 필요하지 않은 경우 멀티캐스트 그룹을 떠나기 위한, 예를 들어, 재생을 중지하거나 상이한 멀티캐스트 그룹으로 채널들을 변경하기 위한 요청을 제출할 수 있다.
[0061] 네트워크 인터페이스(54)는 선택된 표현의 세그먼트들의 데이터를 수신하여 리트리벌 유닛(52)에 제공할 수 있고, 리트리벌 유닛(52)은 결국 캡슐화해제 유닛(50)에 세그먼트들을 제공할 수 있다. 캡슐화해제 유닛(50)은 비디오 파일의 엘리먼트들을 구성 PES 스트림들로 캡슐화해제할 수 있고, 인코딩된 데이터를 리트리브하기 위해 PES 스트림들을 패킷화해제할 수 있고, 예를 들어, 스트림의 PES 패킷 헤더들에 의해 표시된 바와 같이 인코딩된 데이터가 오디오 또는 비디오 스트림의 일부인지 여부에 따라 오디오 디코더(46) 또는 비디오 디코더(48) 중 어느 하나에 인코딩된 데이터를 전송할 수 있다. 오디오 디코더(46)는 인코딩된 오디오 데이터를 디코딩하고, 디코딩된 오디오 데이터를 오디오 출력(42)에 전송하는 한편, 비디오 디코더(48)는 인코딩된 비디오 데이터를 디코딩하고, 스트림의 복수의 뷰들을 포함할 수 있는 디코딩된 비디오 데이터를 비디오 출력(44)에 전송한다.
[0062] 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 리트리벌 유닛(52) 및 캡슐화해제 유닛(50) 각각은, 적용가능한 대로, 하나 이상의 마이크로프로세서들, DSP들(digital signal processors), ASIC들(application specific integrated circuits), FPGA들(field programmable gate arrays), 이산적 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적절한 프로세싱 회로 중 임의의 것으로 구현될 수 있다. 비디오 인코더(28) 및 비디오 디코더(48) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있고, 이들 중 어느 하나는 결합된 비디오 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 유사하게, 오디오 인코더(26) 및 오디오 디코더(46) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있고, 이들 중 어느 하나는 결합된 CODEC의 일부로서 통합될 수 있다. 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 리트리벌 유닛(52) 및/또는 캡슐화해제 유닛(50)을 포함하는 장치는 집적 회로, 마이크로프로세서 및/또는 무선 통신 디바이스, 예를 들어, 셀룰러 전화를 포함할 수 있다.
[0063] 비디오 코딩 표준들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, ITU-T H.264 또는 ISO/IEC MPEG-4 AVC(이의 SVC(Scalable Video Coding) 및 MVC(Multiview Video Coding) 확장들을 포함함), 및 ITU-T H.265 및 ISO/IEC 23008-2로 또한 공지된 HEVC(High-Efficiency Video Coding)(이의 스케일링가능한 코딩 확장(즉, 스케일링가능한 고효율 비디오 코딩, SHVC), 멀티뷰 확장(즉, 멀티뷰 고효율 비디오 코딩, MV-HEVC) 및 3D 확장(즉, 3D 고효율 비디오 코딩, 3D-HEVC)을 포함함)을 포함한다.
[0064] 캡슐화 유닛(30)은 이미지의 하나 이상의 가장 관심있는 영역들을 결정할 수 있다. 본 명세서에 사용되는 바와 같이, 가장 관심있는 영역은 사용자에 의해 뷰잉될 더 높은 가능성을 갖는 이미지의 영역을 지칭할 수 있다. 예를 들어, 가장 관심있는 영역은 디렉터 또는 제작자에 의해 선택되는 이미지의 영역을 지칭할 수 있다. 일부 예들에서, 가장 관심있는 영역은, 서비스 또는 콘텐츠 제공자에 의한 사용자 통계로부터, 예를 들어, 무지향성 비디오 콘텐츠가 스트리밍 서비스를 통해 제공된 경우 사용자들에 의해 어느 영역들이 가장 많이 요청/시청되었는지의 통계를 통해, 컴퓨팅 디바이스에 의해 유도된 이미지의 영역을 지칭할 수 있다.
[0065] 캡슐화 유닛(30)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 캡슐화할 수 있다. 일부 예들에서, 캡슐화 유닛(30)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 캡슐화할 수 있다. 예를 들어, 캡슐화 유닛(30)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함하는 SEI 메시지를 캡슐화할 수 있다. 일부 예들에서, 캡슐화 유닛(30)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함하는 파일 포맷 데이터를 캡슐화할 수 있다. 예를 들어, 캡슐화 유닛(30)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함하는 박스(예를 들어, 샘플 그룹 박스, 샘플 테이블 박스, 트랙 프래그먼트, 세그먼트 인덱스 박스 등)를 캡슐화할 수 있다.
[0066] 캡슐화 유닛(30)은, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 포함하는 비트스트림에 포함되도록 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 캡슐화할 수 있다. 예를 들어, 캡슐화 유닛(30)은 특정 이미지에 대한 비디오 데이터를 출력하기 전에 특정 이미지에 대한 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 파일 포맷 데이터에 캡슐화할 수 있다. 이러한 예에서, 특정 이미지에 대한 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 파일 포맷 데이터에 캡슐화한 후, 캡슐화 유닛(30)은 특정 이미지에 대한 비디오 데이터를 캡슐화할 수 있다.
[0067] 가장 관심있는 영역들에 대한 정보의 생성 및 사용이 이제 논의될 것이다. 2016년 5월 19일에 출원되고 그 전체가 인용에 의해 본 명세서에 통합된 미국 가출원 제62/339,009호는, 예를 들어, VR 비디오 콘텐츠가 스트리밍 서비스를 통해 제공된 경우 사용자들에 의해 어느 영역들이 가장 많이 요청/시청되었는지의 통계를 통해 서비스 또는 콘텐츠 제공자에 의해 사용자 통계에 의한 가장 관심있는 영역들에 대한 정보를 생성하고, VR 비디오 픽처의 가장 관심있는 영역은 픽처의 프리젠테이션 시간에 사용자에게 통계적으로 가장 렌더링된 가능성이 있는 영역들 중 하나인 것을 개시한다. 또한, 다양한 VR 성능 개선 목적들, 예를 들어, 에지 서버들 또는 클라이언트들에 의한 VR 적응형 스트리밍에서 데이터 프리-페치, VR 비디오가 예를 들어 상이한 코덱 또는 투영 맵핑으로 트랜스코딩되는 경우 트랜스코딩 최적화, 에지 서버 또는 캐시에 의한 캐시 관리, 및 VR 비디오 스트리밍 서버에 의한 콘텐츠 관리를 위해 가장 관심있는 영역들에 대한 정보의 사용이 미국 가출원 제62/339,009호에 개시되어 있다. 가장 관심있는 영역들의 시그널링은 또한, 예를 들어, 비디오 비트스트림의 SEI 메시지들, 미디어 파일의 파일 포맷 샘플 그룹 또는 또는 샘플 그룹을 사용하는 DASH(dynamic adaptive streaming over HTTP) MPD(media presentation description) 엘리먼트들 또는 속성들을 사용함으로써 개시되었다.
[0068] VR 비디오 애플리케이션들에 대해, 가장 관심있는 영역들에 대한 정보를 활용하기 위한 방식들을 고려하는 경우, 하기 문제점들 중 적어도 일부를 식별한다. 일례로서, VR 비디오의 가장 관심있는 영역에 대한 정보가, 그 정보에 대한 비디오 픽처들 전에 적응형 스트리밍 클라이언트 또는 에지 서버에 의해 수신될 수 있는 것을 보장하기 위한 어떠한 메커니즘도 이용가능하지 않았다. 미국 가출원 제62/339,009호에서 설명된 바와 같이 SEI 메시지에 포함되는 경우, 정보는 그 정보에 대한 코딩된 픽처들과 함께 할 수 있다. 트랙 프래그먼트에 포함되는 경우, 파일 포맷 샘플 그룹은 그 트랙 프래그먼트의 비디오 샘플들에 대한 정보를 설명한다. 다른 예로, 일부 경우들에서, 예를 들어, 타일 트랙들이 모션-제한된 타일들 또는 타일 영역들을 전달하기 위해 사용되는 경우, 영역들의 위치들 및 크기들을 통해 가장 관심있는 영역들에 대한 정보를 시그널링하는 것은 필요하지 않으며, 오히려 더 간단하고 더 효율적인 시그널링이 사용될 수 있다.
[0069] 본 개시는, VR 비디오의 가장 관심있는 영역에 대한 정보가, 그 정보에 대한 비디오 픽처들 전에 적응형 스트리밍 클라이언트 또는 에지 서버에 의해 수신될 수 있도록, VR 비디오의 하나 이상의 가장 관심있는 영역의 진보된 시그널링을 위한 몇몇 기술들을 설명한다. 달리 말하면, VR 비디오에서 하나 이상의 가장 관심있는 영역의 진보된 시그널링은, VR 비디오의 가장 관심있는 영역들에 대한 정보가 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 포함하는 데이터 세트와는 상이한 데이터 세트에서 수신되도록 허용할 수 있다. 이러한 기술들 중 하나 이상은 독립적으로 또는 다른 것들과 함께 적용될 수 있다.
[0070] 일례에서, 샘플 그룹은 트랙 프래그먼트 박스에 포함되는 경우, 트랙에 샘플 그룹(그룹화 타입의 SampleToGroupBox 및 대응하는 샘플 그룹 설명 박스)을 포함하는 것에 후속하는 후속 트랙 프래그먼트들에 있는 샘플들의 정보를 문서화할 수 있음이 제안된다. 예를 들어, SampleToGroupBox의 새로운 버전이 정의되고, 특정 그룹화 타입의 SampleToGroupBox가 트랙 프래그먼트에 포함되는 경우, SampleToGroupBox의 새로운 버전이 사용되도록 요구되며 동일한 그룹화 타입의 대응하는 샘플 그룹 엔트리에 포함된 정보는 트랙의 샘플 그룹을 포함하는 후속 트랙 프래그먼트들의 샘플들의 정보를 문서화할 수 있다.
[0071] 다른 예에서, 가장 관심있는 영역을 설명하기 위한 샘플 그룹은 적어도 다음 신택스 엘리먼트들 중 하나 이상을 포함할 수 있다.
[0072] 샘플 그룹은 가장 관심있는 영역들의 수를 나타내는 신택스 엘리먼트를 포함할 수 있다.
[0073] 샘플 그룹은 신택스 엘리먼트들의 세트의 루프를 포함할 수 있으며, 각각의 세트는 가장 관심있는 영역의 위치 및 크기를 설명한다. 예를 들어, 각각의 세트는 가장 관심있는 영역인 직사각형의 4개의 코너들의 전체 픽처에 대한 루마(luma) 샘플들의 번호에서 위, 바닥, 좌측 및 우측 오프셋들을 표시하는 4개의 신택스 엘리먼트들을 포함할 수 있다. 가장 관심있는 영역 각각에 대해, 우선순위는 신택스 엘리먼트에 의해 표시될 수 있으며 높은 우선순위는 더 관심있는 영역을 표시한다.
[0074] 일례에서, 각각의 세트는 가장 관심있는 영역인 직사각형의 상부 좌측 코너의 전체 픽처에 대한 루마 샘플들의 번호에서 좌표를 표시하는 2개의 신택스 엘리먼트들 및 직사각형의 폭 및 높이를 표시하는 2개의 신택스 엘리먼트들을 포함할 수 있다.
[0075] 제2 예에서, 각각의 세트는 가장 관심있는 영역의 상부 좌측 코너의 전체 픽처에 대한 루마 샘플들의 번호에서 좌표를 표시하는 2개의 신택스 엘리먼트들을 포함할 수 있다. 이러한 좌표에 의해 포인팅되는 가장 관심있는 영역은 직사각형 형상이 아닐 수 있음을 주목한다. 파일 파서들은 좌표를 뷰포트의 영역과 연관시킬 수 있어야 하며 이러한 영역이 가장 높은 해상도/품질로 코딩되는 트랙/DASH 표현을 찾아야 한다.
[0076] 제3 실시예에서, 가장 관심있는 영역이 폭 및 높이로 설명된 직사각형 형상인지 여부를 표시하기 위해 플래그가 도입되는 제1 및 제2 대안이 병합될 수 있다.
[0077] 제4 예에서, 각각의 세트는 가장 관심있는 영역인 직사각형의 상부 좌측 코너의 구(sphere)에 대한 루마 샘플들의 번호에서 좌표를 표시하는 3개의 신택스 엘리먼트들(예를 들어, 요(yaw) 각도, 피치 각도 및 반경 길이) 및 직사각형의 피치의 폭 및 높이 요를 표시하는 2개의 신택스 엘리먼트들을 포함할 수 있다. 파일 파서들은 구의 설명된 영역을 전체 픽처와 관련하여 영역과 연관시킬 수 있어야 하며, 이러한 영역이 가장 높은 해상도/품질로 코딩되는 트랙/DASH 표현을 찾을 수 있어야 한다.
[0078] 다른 예에서, 가장 관심있는 영역의 위치 및 크기를 직접 시그널링하는 대신, 가장 관심있는 영역을 커버하는 타일들의 HEVC 규격에서 특정된 바와 같이 타일 ID들이 시그널링될 수 있다.
[0079] 다른 예에서, 가장 관심있는 영역의 위치 및 크기를 직접 시그널링하는 대신, 가장 관심있는 영역을 커버하는 타일 영역들의 ISO/IEC 14496-15의 10절에 정의된 바와 같이 타일 영역 ID들 또는 그룹 ID들이 시그널링될 수 있다.
[0080] 다른 예에서, ISO/IEC 14496-15의 10절에 정의된 바와 같은 타일 트랙들이 사용되는 경우, 가장 관심있는 영역의 위치 및 크기를 직접 시그널링하는 대신에, 가장 관심있는 영역을 커버하는 모션-제한된 타일들 또는 타일 영역들을 전달하는 트랙들의 트랙 ID들이 시그널링될 수 있다.
[0081] 다른 예에서, ISO/IEC 14496-15의 10절에 정의된 바와 같은 VR 비디오 타일 트랙들을 스트리밍하기 위해 DASH가 사용되고 각각의 타일 트랙이 하나의 DASH 표현에서 캡슐화되는 경우, NPD 또는 MPD의 업데이트에서 가장 관심있는 영역의 위치 및 크기를 직접 시그널링하는 대신에, 가장 관심있는 영역을 커버하는 모션-제한된 타일들 또는 타일 영역들을 전달하는 트랙들에 대응하는 표현들의 표현 ID들이 시그널링될 수 있다.
[0082] 다른 예에서, ISO/IEC 14496-15의 10절에 정의된 바와 같이 타일 트랙들이 사용되는 경우, 하나 이상의 가장 관심있는 영역들의 정보는 베이스 타일 트랙 또는 비-타일링된 트랙(즉, 'TBAS' 트랙 기준을 통해 다른 트랙들에 의해 참조되는 트랙)에서 시그널링될 수 있거나, 또는 베이스 타일 트랙에서만 시그널링될 수 있다. 이러한 경우, 샘플 그룹이 시그널링에 사용될 때, 샘플 번호들은 현재 트랙과 연관된 타일 트랙들의 번호들이다. 그리고 이러한 경우, 타일 트랙들의 샘플들의 번호가 동일하고 타일 트랙들의 샘플 번호들이 정렬되도록 요구될 수 있다.
[0083] 다른 예에서, 샘플 그룹을 사용하는 대신에, 가장 관심있는 영역들의 정보가 또한 샘플 테이블 박스, 트랙 프래그먼트 박스 및/또는 세그먼트 인덱스 박스에 직접적으로 또는 간접적으로 포함된 새로운 박스에서 시그널링될 수 있고, 새로운 박스가 트랙의 새로운 박스를 포함하는 것에 후속하는 후속 트랙 프래그먼트들 또는 후속 세그먼트들의 샘플들에 대한 정보를 문서화하는 것이 허용된다.
[0084] 다른 예에서, VR 비디오 비트스트림의 픽처들의 특정 세트에 대한 가장 관심있는 영역들에 대한 정보는 SEI 메시지를 사용하여 시그널링될 수 있다. 이러한 SEI 메시지의 인스턴스는 신택스, 시맨틱스 또는 둘 모두에 의해 (하나 이상의) 픽처들의 세트에 적용가능하도록 특정된다. SEI 메시지는 다음 신택스 엘리먼트들 중 하나 이상을 포함할 수 있다.
[0085] SEI 메시지는 가장 관심있는 영역들의 수를 나타내는 신택스 엘리먼트를 포함할 수 있다.
[0086] SEI 메시지는 신택스 엘리먼트들의 세트의 루프를 포함할 수 있으며, 각각의 세트는 가장 관심있는 영역의 위치 및 크기를 설명한다. 예를 들어, 각각의 세트는 가장 관심있는 영역인 직사각형의 4개의 코너들의 전체 픽처에 대한 루마 샘플들의 번호에서 위, 바닥, 좌측 및 우측 오프셋들을 표시하는 4개의 신택스 엘리먼트를 포함할 수 있다. 대안적으로, 각각의 세트는 가장 관심있는 영역인 직사각형의 상부 좌측 코너의 전체 픽처에 대한 루마 샘플들의 번호에서 좌표를 표시하는 2개의 신택스 엘리먼트 및 직사각형의 폭 및 높이를 표시하는 2개의 신택스 엘리먼트들을 포함할 수 있다.
[0087] SEI 메시지는 가장 관심있는 영역 각각에 대해, 신택스 엘리먼트에 의해 표시될 수 있는 우선순위를 포함할 수 있고 높은 우선순위는 더 관심있는 영역을 표시한다.
[0088] SEI 메시지는 디코딩 순서로 이러한 SEI 메시지의 모든 더 앞선 인스턴스들의 영향을 제거할지 여부를 표시하는 신택스 엘리먼트를 포함할 수 있다.
[0089] SEI 메시지는 이러한 SEI 메시지에 의해 설명되는 가장 관심있는 영역들에 대한 정보가 적용되기 시작할 출력 순서에서 장래의 픽처 또는 액세스 유닛을 표시하는 신택스 엘리먼트를 포함할 수 있다. 이러한 표시는 SEI 메시지와 연관된 픽처 또는 액세스 유닛의 POC에 대한 델타 POC(picture order count), 또는 출력 시간의 델타로서 구현될 수 있다.
[0090] SEI 메시지는 이러한 SEI 메시지의 현재 인스턴스들의 정보가 출력 순서에서 다음 픽처, 또는 새로운 코딩된 비디오 시퀀스의 시작 또는 비트스트림의 끝까지 지속되는지 여부를 표시하는 신택스 엘리먼트를 포함할 수 있다.
[0091] 클라이언트 디바이스(40), 서버 디바이스(60) 및/또는 콘텐츠 준비 디바이스(20)는 본 개시의 기술들에 따라 동작하도록 구성될 수 있다. 예시의 목적으로, 본 개시는 클라이언트 디바이스(40) 및 서버 디바이스(60)에 대해 이러한 기술들을 설명한다. 그러나, 서버 디바이스(60) 대신에(또는 이에 추가로), 콘텐츠 준비 디바이스(20)가 이러한 기술들을 수행하도록 구성될 수 있음을 이해해야 한다.
[0092] 캡슐화 유닛(30)은, NAL 유닛이 속하는 프로그램을 식별하는 헤더 뿐만 아니라 페이로드, 예를 들어, 오디오 데이터, 비디오 데이터 또는 NAL 유닛이 대응하는 전송 또는 프로그램 스트림을 설명하는 데이터를 포함하는 NAL 유닛들을 형성할 수 있다. 예를 들어, H.264/AVC에서, NAL 유닛은 1-바이트 헤더 및 가변 크기의 페이로드를 포함한다. 비디오 데이터를 이의 페이로드에 포함하는 NAL 유닛은 비디오 데이터의 다양한 입도 레벨들을 포함할 수 있다. 예를 들어, NAL 유닛은 비디오 데이터의 블록, 복수의 블록들, 비디오 데이터의 슬라이스 또는 비디오 데이터의 전체 픽처를 포함할 수 있다. 캡슐화 유닛(30)은 기본적 스트림들의 PES 패킷들의 형태로 비디오 인코더(28)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 캡슐화 유닛(30)은 각각의 기본적 스트림을 대응하는 프로그램과 연관시킬 수 있다.
[0093] 캡슐화 유닛(30)은 또한 복수의 NAL 유닛들로부터 액세스 유닛들을 어셈블링할 수 있다. 일반적으로, 액세스 유닛은 비디오 데이터의 프레임을 표현하는 하나 이상의 NAL 유닛들, 또한 오디오 데이터가 이용가능한 경우 프레임에 대응하는 이러한 오디오 데이터를 포함할 수 있다. 액세스 유닛은 일반적으로 하나의 출력 시간 인스턴스에 대한 모든 NAL 유닛들, 예를 들어, 하나의 시간 인스턴스에 대한 모든 오디오 및 비디오 데이터를 포함한다. 예를 들어, 각각의 뷰가 20 fps(frames per second)의 프레임 레이트를 가지면, 각각의 시간 인스턴스는 0.05 초의 시간 인터벌에 대응할 수 있다. 이러한 시간 인터벌 동안, 동일한 액세스 유닛(동일한 시간 인스턴스)의 모든 뷰들에 대한 특정 프레임들은 동시에 렌더링될 수 있다. 일례에서, 액세스 유닛은 1차 코딩된 픽처로서 제시될 수 있는 일 시간 인스턴스의 코딩된 픽처를 포함할 수 있다.
[0094] 따라서, 액세스 유닛은 공통의 시간적 인스턴스의 모든 오디오 및 비디오 프레임들, 예를 들어, 시간 X에 대응하는 모든 뷰들을 포함할 수 있다. 본 개시는 또한 특정 뷰의 인코딩된 픽처를 "뷰 컴포넌트"로서 지칭한다. 즉, 뷰 컴포넌트는 특정 시간에 특정 뷰에 대한 인코딩된 픽처(또는 프레임)를 포함할 수 있다. 따라서, 액세스 유닛은 공통의 시간적 인스턴스의 모든 뷰 컴포넌트들을 포함하는 것으로 정의될 수 있다. 액세스 유닛들의 디코딩 순서는 출력 또는 디스플레이 순서와 반드시 동일할 필요는 없다.
[0095] 미디어 프리젠테이션은 MPD(media presentation description)를 포함할 수 있고, 이는 상이한 대안적 표현들(예를 들어, 상이한 품질들을 갖는 비디오 서비스들)의 설명들을 포함할 수 있고, 설명은, 예를 들어, 코덱 정보, 프로파일 값 및 레벨 값을 포함할 수 있다. MPD는 매니페스트 파일, 예를 들어, 매니페스트 파일(66)의 일례이다. 클라이언트 디바이스(40)는 다양한 프리젠테이션들의 영화 프래그먼트들에 어떻게 액세스할지를 결정하기 위해 미디어 프리젠테이션의 MPD를 리트리브할 수 있다. 영화 프래그먼트들은 비디오 파일들의 영화 프래그먼트 박스들(무프(moof) 박스들)에 위치될 수 있다.
[0096] 매니페스트 파일(66)(이는 예를 들어 MPD를 포함할 수 있음)은 표현들(68)의 세그먼트들의 이용가능성을 통지할 수 있다. 즉, MPD는, 표현들(68) 중 하나의 제1 세그먼트가 이용가능하게 되는 벽시계 시간을 표시하는 정보 뿐만 아니라 표현들(68) 내의 세그먼트들의 지속기간들을 표시하는 정보를 포함할 수 있다. 이러한 방식으로, 클라이언트 디바이스(40)의 리트리벌 유닛(52)은, 특정 세그먼트에 선행하는 세그먼트들의 시작 시간 뿐만 아니라 지속기간들에 기초하여, 각각의 세그먼트가 언제 이용가능한지를 결정할 수 있다. 일부 예들에서, 매니페스트 파일(66)은 본 개시의 기술들에 따라 특정 이미지에서 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함할 수 있다.
[0097] 캡슐화 유닛(30)이 수신된 데이터에 기초하여 NAL 유닛들 및/또는 액세스 유닛들을 비디오 파일로 어셈블링한 후, 캡슐화 유닛(30)은 비디오 파일을 출력을 위해 출력 인터페이스(32)에 전달한다. 일부 예들에서, 캡슐화 유닛(30)은 비디오 파일을 로컬로 저장할 수 있거나, 또는 비디오 파일을 클라이언트 디바이스(40)에 직접 전송하기 보다는 비디오 파일을 출력 인터페이스(32)를 통해 원격 서버에 전송할 수 있다. 출력 인터페이스(32)는, 예를 들어, 송신기, 트랜시버, 데이터를, 예를 들어, 광 드라이브, 자기 매체 드라이브(예를 들어, 플로피 드라이브), USB(universal serial bus) 포트, 네트워크 인터페이스 또는 다른 출력 인터페이스와 같은 컴퓨터 판독가능 매체에 기록하기 위한 디바이스를 포함할 수 있다. 출력 인터페이스(32)는 예를 들어, 송신 신호, 자기 매체, 광 매체, 메모리, 플래시 드라이브 또는 다른 컴퓨터 판독가능 매체와 같은 컴퓨터 판독가능 매체에 비디오 파일을 출력한다.
[0098] 네트워크 인터페이스(54)는 네트워크(74)를 통해 NAL 유닛 또는 액세스 유닛을 수신할 수 있고, NAL 유닛 또는 액세스 유닛을 리트리벌 유닛(52)을 통해 캡슐화해제 유닛(50)에 제공할 수 있다. 캡슐화해제 유닛(50)은 비디오 파일의 엘리먼트들을 구성 PES 스트림들로 캡슐화해제할 수 있고, 인코딩된 데이터를 리트리브하기 위해 PES 스트림들을 패킷화해제할 수 있고, 예를 들어, 스트림의 PES 패킷 헤더들에 의해 표시된 바와 같이 인코딩된 데이터가 오디오 또는 비디오 스트림의 일부인지 여부에 따라 오디오 디코더(46) 또는 비디오 디코더(48) 중 어느 하나에 인코딩된 데이터를 전송할 수 있다. 오디오 디코더(46)는 인코딩된 오디오 데이터를 디코딩하고, 디코딩된 오디오 데이터를 오디오 출력(42)에 전송하는 한편, 비디오 디코더(48)는 인코딩된 비디오 데이터를 디코딩하고, 스트림의 복수의 뷰들을 포함할 수 있는 디코딩된 비디오 데이터를 비디오 출력(44)에 전송한다.
[0099] 이러한 방식으로, 콘텐츠 준비 디바이스(20)는 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스의 예를 표현하고, 디바이스는 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하도록 구성된 프로세서를 포함한다. 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함한다. 프로세서는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하도록 추가로 구성된다. 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함된다. 프로세서는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하도록 추가로 구성된다.
[0100] 추가적으로, 클라이언트 디바이스(40)는 비디오 데이터에 대한 정보를 결정하기 위한 디바이스의 예를 표현하고, 디바이스는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하도록 구성된 프로세서를 포함한다. 프로세서는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하고 요청을 서버 디바이스에 출력하도록 추가로 구성된다.
[0101] 도 2는 예시적인 멀티미디어 콘텐츠(120)의 엘리먼트들을 예시하는 개념도이다. 멀티미디어 콘텐츠(120)는 멀티미디어 콘텐츠(64)(도 1) 또는 저장 매체(62)에 저장된 다른 멀티미디어 콘텐츠에 대응할 수 있다. 도 2의 예에서, 멀티미디어 콘텐츠(120)는 MPD(media presentation description)(122) 및 복수의 표현들(124A-124N)(표현들(124))을 포함한다. 표현(124A)은 선택적인 헤더 데이터(126) 및 세그먼트들(128A-128N)(세그먼트들(128))을 포함하는 한편, 표현(124N)은 선택적인 헤더 데이터(130) 및 세그먼트들(132A-132N)(세그먼트들(132))을 포함한다. 문자 N은 표현들(124) 각각의 마지막 영화 프래그먼트를 편의성 문제로 지정하기 위해 사용된다. 일부 예들에서, 표현들(124) 사이에 상이한 수들의 영화 프래그먼트들이 존재할 수 있다.
[0102] 도 2는 시스템(10)(도 1)이 DASH에 대해 구성되는 예를 설명하지만, 일부 예들에서, 시스템(10)은 예를 들어, RTSP(real-time streaming protocol), RTP(real-time transport protocol), RTCP(RTP control protocol), SDP(session description protocol), 다른 미디어 재생 제어 프로토콜 또는 이들의 조합과 같은, 그러나 이에 제한되는 것은 아닌 다른 미디어 재생 제어 프로토콜들에 대해 구성될 수 있다.
[0103] MPD(122)는 표현들(124)과 별개의 데이터 구조를 포함한다. MPD(122)는 도 1의 매니페스트 파일(66)에 대응할 수 있다. 마찬가지로, 표현들(124)은 도 2의 표현들(68)에 대응할 수 있다. 일반적으로, MPD(122)는, 코딩 및 렌더링 특성들, 적응 세트들, MPD(122)가 대응하는 프로파일, 텍스트 타입 정보, 카메라 각도 정보, 레이팅 정보, 트릭 모드 정보(예를 들어, 시간적 서브-시퀀스들을 포함하는 표현들을 표시하는 정보) 및/또는 (예를 들어, 재생 동안 미디어 콘텐츠로의 타겟팅된 광고 삽입에 대한) 원격 기간들을 리트리브하기 위한 정보와 같은 표현들(124)의 특성들을 일반적으로 설명하는 데이터를 포함할 수 있다.
[0104] 헤더 데이터(126)는 존재하는 경우, 세그먼트들(128)의 특성들, 예를 들어, 랜덤 액세스 포인트들(SAP(stream access point)들로 또한 지칭되는 RAP들)의 시간적 위치들, 세그먼트들(128) 중 어느 것이 랜덤 액세스 포인트들을 포함하는지, 세그먼트들(128) 내의 랜덤 액세스 포인트들에 대한 바이트 오프셋들, 세그먼트들(128)의 URL들(uniform resource locators) 또는 세그먼트들(128)의 다른 양상들을 설명할 수 있다. 헤더 데이터(130)는 존재하는 경우, 세그먼트들(132)에 대한 유사한 특성들을 설명할 수 있다. 추가적으로 또는 대안적으로, 이러한 특성들은 MPD(122) 내에 완전히 포함될 수 있다.
[0105] 도시된 바와 같이, 헤더 데이터(126)는 표현(124A)을 식별하기 위해 사용될 수 있는 표현 식별자("ID")(127)를 포함할 수 있다. 예를 들어, 콘텐츠 준비 디바이스(20)는 표현(124A)에 표현 식별자(127)를 할당할 수 있다. 이러한 예에서, 콘텐츠 준비 디바이스(20)는 표현 식별자(127)와 상이한 표현 식별자(131)를 표현(124N)에 할당할 수 있다. 일부 예에서, ID(127, 131)는 URL(uniform resource locator) 프리픽스들에 대응할 수 있다. 예를 들어, 표현(124A)은 "1"의 식별자 값을 가질 수 있고, ID(127)가 "www.example.com/1"의 값을 가질 수 있도록 "www.example.com"으로부터 이용가능할 수 있다. 또한, 세그먼트들(128, 132) 각각은 URL을 완성하기 위해 열거된 식별자와 같은 식별자를 포함할 수 있다. 예를 들어, "example.com"에서 표현 "1"로부터 이용가능한 제1 MP4 세그먼트는 "example.com/1/1.mp4"의 URL을 가질 수 있다. 콘텐츠 준비 디바이스(20)는 표현들(124)의 각각의 하나에 고유의 표현 식별자를 할당할 수 있다.
[0106] 세그먼트들(128, 132)은 하나 이상의 코딩된 비디오 샘플들을 포함하며, 이들 각각은 비디오 데이터의 프레임들 또는 슬라이스들을 포함할 수 있다. 세그먼트들(128)의 코딩된 비디오 샘플들 각각은 유사한 특성들, 예를 들어, 높이, 폭 및 대역폭 요건들을 가질 수 있다. 이러한 특성들은 MPD(122)의 데이터에 의해 설명될 수 있지만, 이러한 데이터는 도 2의 예에 예시되지는 않는다. MPD(122)는 본 개시에 설명된 시그널링된 정보 중 임의의 것 또는 전부의 추가로, 3GPP 규격에 의해 설명되는 바와 같은 특성들을 포함할 수 있다.
[0107] 앞서 언급된 바와 같이, 세그먼트들(128, 132) 각각은 고유의 URL(uniform resource locator)과 연관될 수 있다. 따라서, 세그먼트들(128, 132) 각각은 DASH와 같은 스트리밍 네트워크 프로토콜을 사용하여 독립적으로 리트리브가능할 수 있지만, 다른 스트리밍 네트워크 프로토콜들이 사용될 수 있다. 이러한 방식으로, 목적지 디바이스, 예를 들어, 클라이언트 디바이스(40)는 세그먼트들(128 또는 132)을 리트리브하기 위해 HTTP GET 요청을 사용할 수 있다. 일부 예들에서, 클라이언트 디바이스(40)는 세그먼트들(128 또는 132)의 특정 바이트 범위들을 리트리브하기 위해 HTTP 부분적 GET 요청들을 사용할 수 있다. 예를 들어, 가장 관심있는 영역 데이터가 예를 들어, 파일 포맷 정보의 세그먼트들(128, 132) 내에 포함된다고 가정하여, 클라이언트 디바이스(40)는 세그먼트들(128, 132) 중 하나로부터 가장 관심있는 영역들을 표현하는 데이터를 초기에 리트리브하기 위해 제1 HTTP 부분 GET 요청을 사용하고, 하나 이상의 가장 관심있는 영역들을 결정하고, 그 다음, 세그먼트들(128, 132) 중 하나로부터 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 프리-페치하기 위해 제2 HTTP 부분 GET 요청을 사용할 수 있다.
[0108] 본 개시의 기술들에 따라, MPD(122)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다. 예를 들어, MPD(122)는 세그먼트들(128, 132) 각각에 대해, 베이스 영역에 대한 가장 관심있는 영역의 각각의 위치 및 베이스 영역에 대한 가장 관심있는 영역의 각각의 크기를 표현하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0109] 보다 구체적으로, 예를 들어, MPD(122)는, 세그먼트들(128, 132)(또는 세그먼트들(128, 132) 내의 하나 이상의 픽처들) 각각에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0110] 추가적으로 또는 대안적으로, 하나 이상의 가장 관심있는 영역들의 위치 및 크기를 직접 시그널링하기보다는, MPD(122)는 하나 이상의 가장 관심있는 영역들의 위치 및 크기를 표시하는 식별자를 포함할 수 있다. 예를 들어, MPD(122)는 이미지의 하나 이상의 표현들을 표현하는 하나 이상의 표현 식별자들을 포함할 수 있으며, 하나 이상의 표현들의 각각의 표현은 하나 이상의 가장 관심있는 영역들에 대한 VCL 데이터를 포함한다
[0111] 도 3은 표현의 세그먼트, 예를 들어, 도 2의 세그먼트들(128, 132) 중 하나에 대응할 수 있는 예시적인 비디오 파일(150)의 엘리먼트들을 예시하는 블록도이다. 세그먼트들(128, 132) 각각은 도 3의 예에 예시된 데이터의 배열을 실질적으로 준수하는 데이터를 포함할 수 있다. 비디오 파일(150)은 세그먼트를 캡슐화하는 것으로 지칭될 수 있다. 전술된 바와 같이, ISO 기반 미디어 파일 포맷 및 이의 확장들에 따른 비디오 파일들은 "박스들"로 지칭되는 일련의 오브젝트들에 데이터를 저장한다. 도 3의 예에서, 비디오 파일(150)은 파일 타입(FTYP) 박스(152), 영화(MOOV) 박스(154), 세그먼트 인덱스(SIDX) 박스들(162), 영화 프래그먼트(MOOF) 박스(164), 미디어 데이터(MDAT) 박스(163) 및 영화 프래그먼트 랜덤 액세스(MFRA) 박스(166)를 포함한다. 도 3은 비디오 파일의 예를 표현하지만, 다른 미디어 파일들은 ISO 기반 미디어 파일 포맷 및 이의 확장들에 따른 비디오 파일(150)의 데이터와 유사하게 구조화된 다른 타입들의 미디어 데이터(예를 들어, 오디오 데이터, 타임드 텍스트 데이터 등)를 포함할 수 있음을 이해해야 한다.
[0112] FTYP 박스(152)는 일반적으로 비디오 파일(150)에 대한 파일 타입을 설명한다. 파일 타입 박스(152)는 비디오 파일(150)에 대한 최상의 사용을 설명하는 규격을 식별하는 데이터를 포함할 수 있다. 파일 타입 박스(152)는 대안적으로, MOOV 박스(154), MOOF 박스(164) 및/또는 MFRA 박스(166) 전에 배치될 수 있다.
[0113] 일부 예들에서, 비디오 파일(150)과 같은 세그먼트는 FTYP 박스(152) 전에 MPD 업데이트 박스(미도시)를 포함할 수 있다. MPD 업데이트 박스는, MPD를 업데이트하기 위한 정보와 함께, 비디오 파일(150)을 포함하는 표현에 대응하는 MPD가 업데이트될 것을 표시하는 정보를 포함할 수 있다. 예를 들어, MPD 업데이트 박스는 MPD를 업데이트하기 위해 사용될 자원에 대한 URI 또는 URL을 제공할 수 있다. 다른 예로, MPD 업데이트 박스는 MPD를 업데이트하기 위한 데이터를 포함할 수 있다. 일부 예들에서, MPD 업데이트 박스는 비디오 파일(150)의 세그먼트 타입(STYP) 박스(미도시)에 바로 후속할 수 있고, STYP 박스는 비디오 파일(150)에 대한 세그먼트 타입을 정의할 수 있다.
[0114] 도 3의 예에서, MOOV 박스(154)는 영화 헤더(MVHD) 박스(156) 및 트랙(TRAX) 박스(158)를 포함한다. 일반적으로, MVHD 박스(156)는 비디오 파일(150)의 일반적 특성들을 설명할 수 있다. 예를 들어, MVHD 박스(156)는, 비디오 파일(150)이 언제 원래 생성되었는지, 비디오 파일(150)이 언제 마지막으로 수정되었는지, 비디오 파일(150)에 대한 타임스케일, 비디오 파일(150)에 대한 재생의 지속기간을 설명하는 데이터 또는 일반적으로 비디오 파일(150)을 설명하는 다른 데이터를 포함할 수 있다.
[0115] TRAX 박스(158)는 비디오 파일(150)의 트랙에 대한 데이터를 포함할 수 있다. TRAX 박스(158)는 TRAX 박스(158)에 대응하는 트랙의 특성들을 설명하는 트랙 헤더(TKHD) 박스를 포함할 수 있다. 도시된 바와 같이, TRAX 박스(158)는 트랙 식별자(ID)(160)를 포함할 수 있다. 일부 예들에서, TRAK 박스(158)는 코딩된 비디오 픽처들을 포함할 수 있는 한편, 다른 예들에서, 트랙의 코딩된 비디오 픽처들은 TRAK 박스(158) 및/또는 SIDX 박스들(162)의 데이터에 의해 참조될 수 있는 MDAT 박스(163)에 포함될 수 있다.
[0116] 일부 예들에서, TRAK 박스(158)는 트랙 베이스 'TBAS' 기준(또는 단순히, 베이스 기준)(161)을 포함할 수 있다. 베이스 기준(161)은 VCL NAL 유닛들을 포함하지 않는 HEVC 또는 L-HEVC 타일 베이스 트랙을 지칭한다. 베이스 기준(161)은 TRAK 박스(158)의 박스 내에 포함될 수 있음을 이해해야 한다. 예를 들어, 베이스 기준(161)은, TRAK 박스(158)에 직접 포함되는 트랙 기준 박스('TREF')에 포함될 수 있다.
[0117] 비디오 파일(150)은 비디오 파일(150)에 포함된 각각의 개별적인 트랙에 대한 MOOF 박스(164) 및 MDAT 박스(163)의 각각의 쌍을 포함할 수 있다. 도시된 바와 같이, 도 3의 예에서, 각각의 MDDF 박스(164)는 비디오 파일(150)에 포함된 각각의 개별적인 트랙에 대한 트랙 프래그먼트(TRAF) 박스(165)를 포함한다. 일반적으로, TRAF 박스(165)는 각각의 트랙에 대한 넌-VCL 데이터 및 VCL 데이터를 포함할 수 있다. 추가로, MOOV 박스(154)는 비디오 파일(150)의 트랙들의 수와 동일한 수의 TRAK 박스들을 포함할 수 있다. TRAX 박스(158)는 비디오 파일(150)의 대응하는 트랙의 특성들을 설명할 수 있다. 예를 들어, TRAK 박스(158)는 TRAF 박스(165)의 대응하는 트랙에 대한 시간적 및/또는 공간적 정보를 설명할 수 있다. TRAK 박스(165)는, 캡슐화 유닛(30)(도 1)이 비디오 파일(150)과 같은 비디오 파일의 파라미터 세트 트랙을 포함하는 경우, 파라미터 세트 트랙의 특성들을 설명할 수 있다. 캡슐화 유닛(30)은 파라미터 세트 트랙을 설명하는 TRAK 박스(158) 내의 파라미터 세트 트랙에서 시퀀스 레벨 SEI 메시지들의 존재를 시그널링할 수 있다.
[0118] TRAF 박스(165)는 도 3의 예에서, 샘플 테이블 박스(STBL)(176)를 포함한다. STBL(176)은 샘플 그룹의 특성들을 특정하는 정보를 포함할 수 있다. 예를 들어, 도시된 바와 같이, STBL(176)은 그룹 식별자(174)와 연관된 타일 영역을 특정할 수 있는 타일 영역 그룹 엔트리(TRIF)(177)를 포함할 수 있다.
[0119] 도 3의 예에서, MDAT 박스(163)는 SEI 메시지(178) 및 VCL NAL 유닛(170)을 포함한다. NAL 유닛(170)은 하나 이상의 코딩된 비디오 픽처들을 포함할 수 있다. VCL NAL 유닛(170)은 하나 이상의 타일들을 포함할 수 있다. 도 3의 예에서, VCL NAL 유닛(170)은 VCL NAL 유닛(170)에 포함된 타일을 표현하는 타일 식별자(172)를 포함한다.
[0120] 일부 예들에서, VCL NAL 유닛(170)은 하나 이상의 GOP들(groups of pictures)을 포함할 수 있고, 이들 각각은 다수의 코딩된 비디오 픽처들, 예를 들어, 프레임들 또는 픽처들을 포함할 수 있다. 또한, 앞서 설명된 바와 같이, MDAT 박스(163)는 일부 예들에서 시퀀스 데이터 세트들을 포함할 수 있다. TRAF 박스(165)는 영화 프래그먼트 헤더 박스(MFHD, 도 3에는 미도시)를 포함할 수 있다. MFHD 박스는 대응하는 영화 프래그먼트에 대한 시퀀스 번호와 같은 MDAT 박스(163)의 대응하는 영화 프래그먼트의 특성들을 설명할 수 있다. MDAT 박스(163)는 비디오 파일(150)의 시퀀스 번호의 순서로 포함될 수 있다.
[0121] SIDX 박스들(162)은 비디오 파일(150)의 선택적 엘리먼트들이다. 즉, 3GPP 파일 포맷 또는 다른 이러한 파일 포맷들을 준수하는 비디오 파일들은 반드시 SIDX 박스들(162)을 포함하지는 않는다. 3GPP 파일 포맷의 예에 따르면, SIDX 박스는 세그먼트(예를 들어, 비디오 파일(150) 내에 포함된 세그먼트)의 서브-세그먼트를 식별하기 위해 사용될 수 있다. 3GPP 파일 포맷은 서브-세그먼트를 "대응하는 미디어 데이터 박스(들)를 갖는 하나 이상의 연속적인 영화 프래그먼트 박스들의 자체-포함 세트로서 정의하고, 영화 프래그먼트 박스에 의해 참조되는 데이터를 포함하는 미디어 데이터 박스는 그 영화 프래그먼트 박스를 따라야 하며 동일한 트랙에 대한 정보를 포함하는 다음 영화 프래그먼트 박스에 선행해야 한다." 3GPP 파일 포맷은 또한, SIDX 박스가 "그 박스에 의해 문서화된 (서브)세그먼트의 서브세그먼트들에 대한 참조들의 시퀀스를 포함함을 표시한다. 참조된 서브세그먼트들은 프리젠테이션 시간에서 인접하다. 유사하게, 세그먼트 인덱스 박스에 의해 참조되는 바이트들은 세그먼트 내에서 항상 인접하다. 참조되는 크기는 참조되는 재료의 바이트들의 수의 카운트를 부여한다."
[0122] SIDX 박스들(162)은 일반적으로 비디오 파일(150)에 포함된 세그먼트의 하나 이상의 서브-세그먼트들을 표현하는 정보를 제공한다. 예를 들어, 이러한 정보는, 서브-세그먼트들이 시작 및/또는 종료되는 재생 시간들, 서브-세그먼트들에 대한 바이트 오프셋들, 서브-세그먼트들이 스트림 액세스 포인트(SAP)를 포함하는지(예를 들어, 시작하는지) 여부, SAP에 대한 타입(예를 들어, SAP가 IDR(instantaneous decoder refresh) 픽처, CRA(clean random access) 픽처, BLA(broken link access ) 픽처 등인지 여부), 서브-세그먼트에서 (재생 시간 및/또는 바이트 오프셋의 관점에서) SAP의 위치 등을 포함할 수 있다.
[0123] 앞서 언급된 바와 같이, 캡슐화 유닛(30)은 실제 코딩된 비디오 데이터를 포함하지 않는 비디오 샘플에 시퀀스 데이터 세트를 저장할 수 있다. 비디오 샘플은 일반적으로 특정 시간 인스턴스에서 코딩된 픽처의 표현인 액세스 유닛에 대응할 수 있다. AVC의 상황에서, 코딩된 픽처는 액세스 유닛의 모든 픽셀들 및 SEI 메시지(178)와 같은 다른 연관된 넌-VCL NAL 유닛들을 구성하기 위한 정보를 포함하는 적어도 하나의 VCL NAL 유닛(170)을 포함한다. 따라서, 캡슐화 유닛(30)은 MDAT 박스(163)에서 SEI 메시지(178)를 포함할 수 있는 시퀀스 데이터 세트를 포함할 수 있다. 캡슐화 유닛(30)은 시퀀스 데이터 세트 및/또는 SEI 메시지(178)의 존재를 MDAT 박스(163)에 존재하는 것으로 추가로 시그널링할 수 있다.
[0124] 비디오 파일(150)은 본 개시의 기술들에 따라 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함할 수 있다. 더 구체적으로, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 비디오 파일(150)의 파일 포맷 헤더 정보에 포함할 수 있다. 예를 들어, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들의 정보를 시그널링하는 파일 포맷 정보를 포함할 수 있다. 일부 예들에서, 도 2의 SEI 메시지(178) 및/또는 MPD(122)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 포함할 수 있다.
[0125] SEI 메시지(178)는 H.264/AVC, H.265/HEVC, 또는 다른 비디오 코덱 규격들의 일부로서 포함될 수 있다. 도 3의 예에서, SEI 메시지(178)는 예를 들어 VCL NAL 유닛(170)의 대응하는 픽처에 대해 가장 관심있는 영역들을 표현하는 데이터를 포함할 수 있다. 다른 예에서, 그러한 가장 관심있는 영역 데이터는 1) 파일 포맷으로 정보의 시그널링을 위한 파일 포맷 박스 또는 구조, 다른 박스 또는 구조로 DASH MPD(예를 들어, 도 2의 MPD(122))에서 정보의 시그널링을 위한 DASH MPD 속성 또는 엘리먼트, 또는 이들의 조합에 포함될 수 있다.
[0126] MFRA 박스(166)는 비디오 파일(150)의 영화 프래그먼트들 내의 랜덤 액세스 포인트들을 설명할 수 있다. 이는, 트릭 모드들을 수행하는 것, 예를 들어, 비디오 파일(150)에 의해 캡슐화된 세그먼트 내의 특정한 시간적 위치들(즉, 재생 시간들)에 대한 추구를 수행하는 것을 보조할 수 있다. MFRA 박스(166)는 일반적으로 선택적이고, 일부 예들에서 비디오 파일들에 포함될 필요가 없다. 유사하게, 클라이언트 디바이스, 예를 들어, 클라이언트 디바이스(40)는 비디오 파일(150)의 비디오 데이터를 정확하게 디코딩 및 디스플레이하기 위해 반드시 MFRA 박스(166)를 참조할 필요는 없다. MFRA 박스(166)는 비디오 파일(150)의 트랙들의 수와 동일한 또는 일부 예들에서 비디오 파일(150)의 미디어 트랙들(예를 들어, 넌-힌트 트랙들)의 수와 동일한 다수의 TFRA(track fragment random access) 박스들(미도시)을 포함할 수 있다.
[0127] 일부 예들에서, 영화 프래그먼트들은 IDR 픽처들과 같은 하나 이상의 SAP(stream access point)들을 포함할 수 있다. 마찬가지로, MFRA 박스(166)는 SAP들의 비디오 파일(150) 내의 위치들의 표시들을 제공할 수 있다. 따라서, 비디오 파일(150의 시간적 서브-시퀀스는 비디오 파일(150)의 SAP들로부터 형성될 수 있다. 시간적 서브-시퀀스는 또한 다른 픽처들, 예를 들어, SAP들로부터 의존하는 P-프레임들 및/또는 B-프레임들을 포함할 수 있다. 시간적 서브-시퀀스의 프레임들 및/또는 슬라이스들은 세그먼트들 내에 배열될 수 있어서, 서브-시퀀스의 다른 프레임들/슬라이스들에 의존하는 시간적 서브-시퀀스의 프레임들/슬라이스들은 적절히 디코딩될 수 있다. 예를 들어, 데이터의 계층구조적 배열에서, 다른 데이터에 대한 예측에 사용되는 데이터는 또한 시간적 서브-시퀀스에 포함될 수 있다.
[0128] 본 개시의 기술들에 따라, 비디오 파일(150)의 파일 포맷 정보에서 데이터 구조는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역을 표현하는 가장 관심있는 영역 데이터를 포함할 수 있다.
[0129] 비디오 파일(150)의 파일 포맷 정보 내의 데이터 구조는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역의 위치 및 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들의 표시를 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역의 위치 및 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역의 위치 및 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역의 위치 및 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역의 위치 및 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다.
[0130] 일부 예들에서, 비디오 파일(150)은, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 전체 이미지에 대한 각각의 가장 관심있는 영역의 상부 오프셋을 표현하는 제1 신택스 엘리먼트, 전체 이미지에 대한 각각의 가장 관심있는 영역의 바닥 오프셋을 표현하는 제2 신택스 엘리먼트, 전체 이미지에 대한 각각의 가장 관심있는 영역의 좌측 오프셋을 표현하는 제3 신택스 엘리먼트, 및 전체 이미지에 대한 각각의 가장 관심있는 영역의 우측 오프셋을 표현하는 제4 신택스 엘리먼트를 포함할 수 있다.
[0131] 일부 예들에서, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역인 직사각형의 상부 좌측 코너의, 전체 이미지에 대한 루마 샘플들 내의 좌표를 표현하는 2개의 신택스 엘리먼트들의 제1 세트, 및 각각의 가장 관심있는 영역의 폭 및 높이를 표현하는 2개의 신택스 엘리먼트들의 제2 세트를 포함할 수 있다.
[0132] 일부 예들에서, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역인 직사각형의 상부 좌측 코너의, 전체 이미지에 대한 루마 샘플들 내의 좌표를 표현하는 2개의 신택스 엘리먼트들의 세트를 포함할 수 있다. 일부 예들에서, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역이 각각의 가장 관심있는 영역의 폭 및 높이를 표현하는 2개의 신택스 엘리먼트들의 세트를 포함하는지 여부를 표시하는 플래그를 포함할 수 있다.
[0133] 일부 예들에서, 비디오 파일(150)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 각각의 가장 관심있는 영역인 직사각형의 상부 좌측 코너의, 이미지에 대한 구에 대한 루마 샘플들 내의 좌표를 표시하는 3개의 신택스 엘리먼트들의 세트(예를 들어, 요 각도, 피치 각도 및 반경 길이), 및 각각의 가장 관심있는 영역의 피치의 폭 및 요의 높이를 표현하는 2개의 신택스 엘리먼트들의 세트를 포함할 수 있다.
[0134] TRAF 박스(165)에 포함될 수 있는 샘플 그룹의 상세한 예는 다음과 같다.
[0135] 새로운 샘플 그룹은 VR 비디오의 하나 이상의 가장 관심있는 영역들의 시그널링을 위해 설계된다. 샘플 그룹화 타입은 'mir'이다.
[0136] 하나 이상의 가장 관심있는 영역들의 샘플 그룹은 파일에 표현된 VR 비디오의 하나 이상의 가장 관심있는 영역들을 문서화한다. 일부 예들에서, 하나 이상 가장 관심있는 영역들은, 디렉터 또는 제작자의 의도에 의해, 또는 서비스 또는 콘텐츠 제공자에 의한 사용자 통계에 의해, 예를 들어, VR 비디오 콘텐츠가 스트리밍 서비스를 통해 제공된 경우 사용자들에 의해 어느 영역들이 가장 많이 요청/시청되었는지의 통계를 통해, 결정될 수 있다. VR 비디오 픽처에서 가장 관심있는 영역은 픽처의 프리젠테이션 시간에 통계적으로 사용자에게 렌더링될 가능성이 가장 높은 영역들 중 하나이다.
[0137] 주: 가장 관심있는 영역들의 정보는 에지 서버들 또는 클라이언트들에 의한 VR 적응형 스트리밍에서의 데이터 프리-페치 및/또는 VR 비디오가 트랜스코딩된 경우 트랜스코딩 최적화, 예를 들어, 상이한 코덱에 대한 투영 맵핑을 위해 사용될 수 있다.
[0138] 이러한 예에서, 'mir'과 동일한 grouping_type을 갖는 SampleToGroupBox가 트랙 프래그먼트 박스('TRAF')에 포함된 경우, SampleToGroupBox의 버전은 2와 동일할 것이다.
[0139] 이러한 예에서, SampleToGroupBox의 버전 2는 SampleToGroupBox에 문서화된 샘플들이 하나 이상의 후속 트랙 프래그먼트에 포함된 샘플들을 참조하도록 허용한다. 즉, 버전이 SampleToGroupBox에 대해 2인 경우, 이러한 박스 내의 총 샘플 카운트가 현재 트랙 프래그먼트 박스 내의 샘플들의 총 수보다 큰 것은 에러가 아니지만, 이러한 박스 내의 총 샘플 카운트가 트랙의 현재 트랙 프래그먼트로부터 시작하는 모든 트랙 프래그먼트들 내의 샘플들의 총 수보다 큰 것은 에러이며, 그러한 경우 판독기 거동은 정의되지 않을 것이다.
[0140] 이러한 예에서, 샘플 그룹 엔트리의 신택스는 다음과 같다:
Figure pct00001
[0141] 이러한 예에서, 앞서 논의된 예시적인 신택스에 대한 시맨틱스는 다음과 같다:
[0142] entry_count는 샘플 그룹 엔트리에서 엔트리들의 수를 특정한다.
[0143] left_horizontal_offset, top_vertical_offset, region_width, 및 region_height는 가장 관심있는 영역의 위치 및 크기를 표시하는 정수 값들이다. left_horizontal_offset 및 top_vertical_offset은 이러한 샘플 그룹 엔트리가 적용되는 코딩된 픽처들에서 가장 관심있는 영역의 상부 좌측 코너의 루마 샘플들에서 수평 및 수직 좌표들을 각각 표시한다. region_width 및 region_height는 이러한 샘플 그룹 엔트리가 적용되는 코딩된 픽처들에서 가장 관심있는 영역의 루마 샘플들에서 폭 및 높이를 각각 표시한다.
[0144] 대안적으로, left_horizontal_offset, top_vertical_offset, region_width, 및 region_height의 시맨틱스는 다음과 같다:
[0145] left_horizontal_offset, top_vertical_offset, region_width, 및 region_height는 가장 관심있는 영역의 위치 및 크기를 표시하는 정수 값들이다. left_horizontal_offset 및 top_vertical_offset은, 이러한 샘플 그룹 엔트리가 적용되고 모든 대안적 트랙들 중 가장 높은 해상도를 갖는 코딩된 픽처들에서 가장 관심있는 영역의 상부 좌측 코너의 루마 샘플들에서 수평 및 수직 좌표들을 각각 표시한다. region_width 및 region_height는 이러한 샘플 그룹 엔트리가 적용되고 모든 대안적 트랙들 중 가장 높은 해상도를 갖는 코딩된 픽처들에서 가장 관심있는 영역의 루마 샘플들에서 폭 및 높이를 각각 표시한다.
[0146] 비디오 파일(150)의 파일 포맷 정보 내의 데이터 구조는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들의 표시를 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다.
[0147] 더 구체적으로, 예를 들어, 비디오 파일(150)의 파일 포맷 정보의 데이터 구조는, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다. 일부 예들에서, 비디오 파일(150)은, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 상부 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 바닥 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 오프셋을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 우측 오프셋을 표현하는 제4 신택스 엘리먼트를 포함할 수 있다.
[0148] 예를 들어, STBL(176)은, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0149] 일부 예들에서, TRAF 박스(165)는, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0150] TRAF 박스(165)에 포함될 수 있는 샘플 그룹의 상세한 예는 다음과 같다.
[0151] 새로운 샘플 그룹은 VR 비디오의 하나 이상의 가장 관심있는 영역들의 시그널링을 위해 설계된다. 샘플 그룹화 타입은 'mir'이다.
[0152] 하나 이상의 가장 관심있는 영역들의 샘플 그룹은 파일에 표현된 VR 비디오의 하나 이상의 가장 관심있는 영역들을 문서화한다. 일부 예들에서, 하나 이상 가장 관심있는 영역들은, 디렉터 또는 제작자의 의도에 의해, 또는 서비스 또는 콘텐츠 제공자에 의한 사용자 통계에 의해, 예를 들어, VR 비디오 콘텐츠가 스트리밍 서비스를 통해 제공된 경우 사용자들에 의해 어느 영역들이 가장 많이 요청/시청되었는지의 통계를 통해, 결정될 수 있다. VR 비디오 픽처에서 가장 관심있는 영역은 픽처의 프리젠테이션 시간에 통계적으로 사용자에게 렌더링될 가능성이 가장 높은 영역들 중 하나이다.
[0153] 주: 가장 관심있는 영역들의 정보는 에지 서버들 또는 클라이언트들에 의한 VR 적응형 스트리밍에서의 데이터 프리-페치 및/또는 VR 비디오가 트랜스코딩된 경우 트랜스코딩 최적화, 예를 들어, 상이한 코덱에 대한 투영 맵핑을 위해 사용될 수 있다.
[0154] 이러한 예에서, 'mir'과 동일한 grouping_type을 갖는 SampleToGroupBox가 트랙 프래그먼트 박스('TRAF')에 포함된 경우, SampleToGroupBox의 버전은 2와 동일할 것이다.
[0155] 이러한 예에서, SampleToGroupBox의 버전 2는 SampleToGroupBox에 문서화된 샘플들이 하나 이상의 후속 트랙 프래그먼트에 포함된 샘플들을 참조하도록 허용한다. 즉, 버전이 SampleToGroupBox에 대해 2인 경우, 이러한 박스 내의 총 샘플 카운트가 현재 트랙 프래그먼트 박스 내의 샘플들의 총 수보다 큰 것은 에러가 아니지만, 이러한 박스 내의 총 샘플 카운트가 트랙의 현재 트랙 프래그먼트로부터 시작하는 모든 트랙 프래그먼트들 내의 샘플들의 총 수보다 큰 것은 에러이며, 그러한 경우 판독기 거동은 정의되지 않을 것이다.
[0156] 일례에서, 샘플 그룹 엔트리의 신택스는 다음과 같다:
Figure pct00002
[0157] 그리고 이러한 예에서 시맨틱스는 다음과 같다:
[0158] regionbase_track_id는 하나 이상의 가장 관심있는 영역들의 위치들 및 크기들이 특정되는 베이스 영역의 규격에 대한 트랙을 특정한다. 현재 트랙에 있고 이러한 샘플 그룹 엔트리가 적용되는 샘플들을 타겟 샘플들이라 한다. 샘플들은 regionbase_track_id와 동일한 track_id를 갖는 트랙에 있고 코로케이트된 샘플들로서 타겟 샘플들과 동일한 샘플 번호들을 갖는다. 베이스 영역은 코로케이트된 샘플들에서 전달되는 코딩된 비디오 데이터에 의해 전체적으로 또는 부분적으로 표현되는 픽처들의 전체 영역이다.
[0159] entry_count는 샘플 그룹 엔트리에서 엔트리들의 수를 특정한다.
[0160] left_horizontal_offset, top_vertical_offset, region_width, 및 region_height는 가장 관심있는 영역의 위치 및 크기를 표시하는 정수 값들이다. left_horizontal_offset 및 top_vertical_offset은 베이스 영역에 대한 가장 관심있는 영역의 상부 좌측 코너의 루마 샘플들에서 수평 및 수직 좌표들을 각각 표시한다. region_width 및 region_height는 베이스 영역에 대한 가장 관심있는 영역의 루마 샘플들에서 폭 및 높이를 각각 표시한다.
[0161] 일부 예들에서, SIDX 박스들(162)은, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0162] 추가적으로 또는 대안적으로, SEI 메시지(178)는, 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트, 베이스 영역에 대한 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트, 및 베이스 영역에 대한 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트를, 하나 이상의 가장 관심있는 영역들 각각에 대해 포함하는 엘리먼트들 또는 속성들을 포함할 수 있다.
[0163] 비디오 파일(150)의 파일 포맷 정보 내의 데이터 구조는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들의 표시를 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 특정하는 가장 관심있는 영역 데이터를 포함할 수 있다. 일부 예들에서, 하나 이상의 타일 식별자들에 의해 특정된 이미지의 하나 이상의 타일들은 하나 이상의 가장 관심있는 영역들과 공간적으로 코로케이트된다. 이러한 방식으로, 하나 이상의 타일 식별자들은 하나 이상의 가장 관심있는 영역들에 대한 위치 및 크기를 직접 시그널링하지 않고 하나 이상의 가장 관심있는 영역들을 식별할 수 있다.
[0164] 비디오 파일(150)의 파일 포맷 정보 내의 데이터 구조는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 이미지의 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 포함할 수 있다.
[0165] 비디오 파일(150)의 파일 포맷 정보 내의 데이터 구조는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 포함할 수 있다. 예를 들어, STBL(176)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 포함할 수 있다. 일부 예들에서, TRAF 박스(165)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 포함할 수 있다. 일부 예들에서, SIDX 박스들(162)은 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 포함할 수 있다. 추가적으로 또는 대안적으로, SEI 메시지(178)는 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 포함할 수 있다. 일부 예들에서, 하나 이상의 트랙 식별자들에 의해 특정된 하나 이상의 트랙들은 하나 이상의 가장 관심있는 영역들에 대한 VCL 데이터를 포함한다. 이러한 방식으로, 하나 이상의 트랙 식별자들은 하나 이상의 가장 관심있는 영역들에 대한 위치 및 크기를 직접 시그널링하지 않고 하나 이상의 가장 관심있는 영역들을 식별할 수 있다.
[0166] 비디오 파일(150)의 파일 포맷 정보의 데이터 구조는 하나 이상의 베이스 타일 트랙들을 표현하는 베이스 기준(161)을 포함할 수 있다. 예를 들어, TRAK 박스(158)는 하나 이상의 가장 관심있는 영역들을 특정하는 베이스 타일 트랙을 표현하는 하나 이상의 베이스 타일 트랙 식별자들을 포함할 수 있다.
[0167] SEI 메시지(178)는 이미지 순서 카운트를 표현하는 하나 이상의 신택스 엘리먼트들을 표시하는 신택스 엘리먼트를 포함할 수 있다. 이미지 순서 카운트는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 이미지에 적용됨을 표시할 수 있다.
[0168] 도 4는 직육면체 투영(230)에서 예시적인 타일 코딩을 예시하는 개념도이다. 직육면체 투영(230)은 도시된 바와 같이 큐브 면들(232A, 232B, 232C)을 포함하고, 방해되기 때문에 도시되지 않은 추가적인 큐브 면들을 포함한다. 이러한 예에서, 직육면체 투영(230)의 큐브 면들 각각은 4개의 타일들로 분할되고: 큐브 면(232A)은 4개의 타일들(234A-234D)로 분할되고, 큐브 면(232B)은 4개의 타일들(236A-236D)로 분할되고, 큐브 면(232C)은 4개의 타일들(238A-238D)로 분할된다. 다른 도시되지 않은 큐브 면들은 또한 4개의 각각의 타일들로 분할될 것이어서, 이러한 예에서, 총 24개의 작은 타일들이 된다. 일반적으로, 콘텐츠 준비 디바이스(20)는 타일들(예를 들어, 타일들(234A-234D, 236A-236D, 238A-238D) 및 도시되지 않은 큐브 면들의 타일들) 각각에 대한 비디오 데이터를 제공할 수 있다.
[0169] 또한, 콘텐츠 준비 디바이스(20)는 큐브 면들 각각을 커버할 수 있는 큰 타일들에 대한 비디오 데이터를 제공할 수 있다. 예를 들어, 콘텐츠 준비 디바이스(20)는 큐브 면(232A)을 커버하는 타일에 대한 비디오 데이터, 큐브 면(232B)을 커버하는 타일에 대한 비디오 데이터, 큐브 면(232C)을 커버하는 타일에 대한 비디오 데이터, 및 도시되지 않은 큐브 면들을 커버하는 타일들에 대한 비디오 데이터를 제공할 수 있다. 일부 예들에서, 비디오 인코더(28)는 뷰잉될 가능성이 더 높은 그러한 뷰포인트들에 대해서만 더 큰 타일 크기들을 인코딩할 수 있다. 따라서, 사용자가 위 또는 아래로 볼 가능성이 없으면, 비디오 인코더(28)는 큐브 면들(232B 및 232C)을 커버하는 큰 타일들에 대해 및 큐브 면들(232B 및 232C)(그러나 예를 들어, 큐브 면(232A)은 아님)에 대한 대향하는 큐브 면들에 대해서만 비디오 데이터를 코딩할 수 있다. 선택적으로, 타일들 각각은 스테레오 비디오 데이터에 대한 좌측 및 우측 뷰들을 가질 수 있다.
[0170] VR은 몰입한 사용자의 이동들에 의해 상관된 자연 및/또는 합성 이미지들 및 사운드의 렌더링에 의해 생성된 비-물리적 세계에서 가상으로 존재하여 사용자가 그 세계와 상호작용하도록 허용하는 능력이다. HMD(head mounted display)들과 같은 렌더링 디바이스들 및 VR 비디오 생성(종종 360도 비디오로 또한 지칭됨)에서 행해지는 최신 진보에 따라, 상당한 품질의 경험이 제공될 수 있다. VR 애플리케이션들은 게임, 트레이닝, 교육, 스포츠 비디오, 온라인 쇼핑, 성인 엔트레인먼트 등을 포함한다.
[0171] 통상적 VR 시스템은 하기 컴포넌트들 및 기술들을 포함할 수 있다.
[0172] 통상적으로 상이한 방향들로 향하는 다수의 개별적인 카메라들로 구성되며 이상적으로는 카메라 세트 주위의 모든 뷰포인트들을 집합적으로 커버하는 카메라 세트.
[0173] 다수의 개별적인 카메라들에 의해 취해진 비디오 픽처들이 시간 도메인에서 동기화되고 공간 도메인에서 구형 비디오로 스티칭되지만, 직사각형 포맷, 예를 들어, (세계 맵과 같은) 등장방형 또는 큐브 맵에 맵핑되는 이미지 스티칭.
[0174] 맵핑된 직사각형 포맷의 비디오는 비디오 코덱, 예를 들어, H.265/HEVC 또는 H.264/AVC를 사용하여 인코딩/압축된다.
[0175] 압축된 비디오 비트스트림(들)은 미디어 포맷으로 저장 및/또는 캡슐화될 수 있고 네트워크를 통해 수신기에 (가능하게는 사용자에 의해 시청되고 있는 영역만을 커버하는 서브세트만) 송신될 수 있다.
[0176] 수신기는 가능하게는 포맷으로 캡슐화된 비디오 비트스트림(들) 또는 그 일부를 수신하고, 디코딩된 비디오 신호 또는 그 일부를 렌더링 디바이스에 전송한다.
[0177] 렌더링 디바이스는 예를 들어 HMD일 수 있으며, 이는 머리 이동 및 심지어 눈 이동 순간을 추적할 수 있고 몰입형 경험이 사용자에게 전달되도록 비디오의 대응하는 부분을 렌더링할 수 있다.
[0178] 정규의 비디오와 비교된 VR 비디오의 특징은, VR에서는 일반적으로 뷰포인트로 또한 지칭되는 현재 FOV에 해당하는 비디오 픽처들에 의해 표현되는 전체 비디오 영역의 서브세트, 예를 들어, 사용자가 현재 보고 있는 영역만이 디스플레이되는 한편, 정규의 비디오 애플리케이션에서는 일반적으로 전체 비디오 영역이 디스플레이된다. 이러한 특징은 예를 들어, 뷰포트 종속적 투영 맵핑 또는 뷰포트 종속적 비디오 코딩을 사용함으로써 VR 비디오 시스템들의 성능을 개선하기 위해 활용될 수 있다. 성능 개선은 사용자에게 제시되는 비디오 파트의 동일한 해상도/품질 하에서 종래의 VR 비디오 시스템들에 비해 더 낮은 송신 대역폭 및 더 낮은 디코딩 복잡도 중 하나 또는 둘 모두일 수 있다.
[0179] 뷰포트 종속적 투영 맵핑은 비대칭 투영 맵핑으로 또한 지칭될 수 있다. 일례는 서브 샘플링된 큐브 맵, 예를 들어, 직육면체 투영(230)이다. 일반적인 큐브 맵은 6개의 동일한 크기의 면들을 포함할 수 있다. 서브 샘플링된 큐브 맵의 일례에서, 면들 중 하나는 변경되지 않고 유지될 수 있는 한편, 대향하는 측면 상의 면은 원래의 면 형상의 중앙 영역에 위치하는 더 작은 크기로 서브 샘플링되거나 다운스케일링될 수 있고, 다른 면들은 그에 따라 기하학적으로 스케일링된다(여전히 6개의 면들을 유지한다). 극단적인 것은 대향하는 측면 상의 면을 단일 포인트로 다운스케일링할 수 있고, 따라서 큐브는 피라미드가 된다. 서브 샘플링된 큐브 맵의 다른 예에서, 일부 면들은, 예를 들어, 2x2 비(즉, 면의 에지에 평행한 각각의 방향에서 2:1)만큼 비례하여 다운사이징된다.
[0180] 이러한 다운사이징은 또한 조정은 등장방형과 같은 다른 투영 맵핑들에 대한 상이한 영역들에 적용될 수 있다. 일례는 상부 및 바닥 영역들(즉, 폴(pole)들) 둘 모두를 다운사이징하는 것이다.
[0181] 뷰포트 종속적 비디오 코딩은 또한 현재 FOV 또는 뷰포트의 디스플레이를 위한 충분한 정보를 제공하기 위해 전체 인코딩된 비디오 영역을 부분적으로만 디코딩할 수 있도록 뷰포트 기반 부분적 비디오 디코딩으로 지칭될 수 있다.
[0182] 뷰포트 종속적 비디오 코딩의 일례에서, VR 비디오는 FOV 또는 뷰포트를 커버하는 각각의 잠재적인 영역이 다른 영역들로부터 독립적으로 디코딩될 수 있도록 타일들의 모션-제한된 세트들을 사용하여 코딩된다. 특정한 현재 FOV 또는 뷰포트의 경우, 현재 FOV 또는 뷰포트를 커버하는 독립적으로 디코딩가능한 타일들의 최소 세트의 코딩된 비디오 데이터가 클라이언트로 전송되고, 디코딩되고 디스플레이된다. 이러한 접근법의 단점은, 사용자가 전송된 비디오 데이터에 의해 커버되지 않은 새로운 FOV로 자신의 머리를 신속하게 돌릴 때 새로운 FOV를 커버하는 데이터가 도달되기 전에는 비디오 데이터의 타일들에 의해 커버되지 않은 영역의 어떠한 것도 볼 수 없다는 점이다. 이는, 네트워크의 왕복 시간이 극단적으로 낮지 않으면, 예를 들어, 10 밀리초의 크기에서 쉽게 발생할 수 있고, 이는 오늘날 또는 가까운 미래에 실현불가능하거나 적어도 큰 도전이다.
[0183] 뷰포트 종속적 비디오 코딩의 다른 예는 2016년 6월 28일에 출원된 미국 특허 출원 제15/195,439호에 제안되어 있으며, IMRC(independent multi-resolution coding)로 명명된 그 전체 내용은 본 명세서에 인용에 의해 통합되어 있고, 여기서 구형/파노라마 비디오가 서로 독립적인 다수의 상이한 해상도들로 인코딩되고, 각각의 표현은 타일들의 모션-제한된 세트들을 사용하여 코딩된다. 수신기는 상이한 해상도들로 구형/파노라마 비디오의 상이한 부분들을 디코딩하도록 선택한다. 통상적으로, 사용자에 의해 현재 관찰되고 있는 구형 비디오의 부분, 즉 현재 FOV 또는 현재 뷰포트는 가장 높은 해상도로 코딩된 비디오 비트스트림의 일부이다. 현재 FOV를 둘러싼 영역은 약간 더 낮은 해상도 등을 사용하여 코딩된 비디오 비트스트림의 일부이다. 관찰자의 머리 바로 뒤에 있는 파노라마 부분은 가장 낮은 해상도로 코딩된 비디오 비트스트림의 일부이다. 사용자의 머리 이동의 경우, 대부분의 경우들에서 사용자 경험은 단지 적은 양만큼 저하되고, 품질 저하는 매우 큰 급격한 머리 이동의 경우에서만 가장 많이 악화되며 이는 드문 경우라고 주장된다.
[0184] 뷰포트 종속적 비디오 코딩의 또 다른 예에서, 다수의 해상도들의 비디오 비트스트림들은 SHVC와 같은 스케일링가능한 비디오 코덱을 사용하여 스케일링가능하게 코딩된다. 또한, 가장 낮은 해상도의 비디오(또는 베이스 계층)의 전체 비트스트림은 항상 전송된다. 가장 낮은 해상도의 비디오는 타일들 또는 타일들의 모션-제한된 세트들을 사용하여 코딩될 필요가 없지만, 타일들 또는 타일들의 모션-제한된 세트들을 사용하여 코딩되는 경우에도 또한 작동할 것이다. 다른 양상들의 경우, 앞서 설명된 바와 같은 동일한 전략이 적용된다. 이러한 접근법은, 타일들의 코딩 또는 타일들의 타일 모션-제한된 세트들이 코딩 효율을 감소시키기 때문에 가장 낮은 해상도 비디오의 더 효율적인 코딩 및 또한 계층간 예측의 사용으로 인해 더 높은 해상도들의 스트림들의 더 효율적인 코딩을 허용한다. 또한, 이러한 접근법은 또한 더 효율적인 FOV 스위칭을 허용하는데, 이는, FOV 스위칭이 시작하면, 서버 또는 에지 서버는 (베이스 계층보다) 더 높은 해상도의 비디오 스트림으로부터의 것이며 새로운 FOV의 어떠한 영역도 커버하지 않는 비디오 데이터를 전송하는 것을 즉시 중지할 수 있기 때문이다. 현재 FOV를 커버하는 가장 낮은 해상도의 비디오 데이터가 전송되지 않으면(즉, 현재 FOV를 커버하는 가장 높은 해상도의 비디오 데이터만이 전송되면), FOV 스위칭 동안, 서버는 때때로, 가장 높은 해상도의 비디오 스트림으로부터의 것이며, 사용자가 오래된 FOV 또는 그 일부로 다시 돌리는 경우 적어도 가장 낮은 품질의 비디오를 볼 수 있도록 준비되는 오래된 FOV 또는 그의 일부만을 커버하는 비디오 데이터를 전송하는 것을 계속해야 할 것이다.
[0185] MPEG 기여도 m37819에서, 사용자가 자신의 머리를 돌리거나 다른 UI를 통한 뷰포트를 변경하지 않는 경우에도, 청중이 집중하도록 디렉터가 원하는 동적 변경 뷰포트를 VR 재생이 디스플레이할 수 있도록, 디렉터의 컷에 대한 정보를 시그널링 및 사용하는 것에 대한 사용 사례가 논의되었다. 이러한 뷰포트들에는 장면마다 무지향적 비디오가 제공될 수 있다고 언급되었다.
[0186] 본 명세서에 설명된 하나 이상의 기술들은, 타일들(예를 들어, 타일들(234A-234D, 236A-236D, 238A-238D) 및 도시되지 않은 큐브 면들의 타일들)을 요청하기 위한 품질을 선택하기 위해 반드시 사용자의 시야에만 의존하기 보다는, 클라이언트 디바이스(40) 및/또는 서버 디바이스(60)가 하나 이상의 가장 관심있는 영역들을 포함하는 하나 이상의 타일들에 대한 비디오 데이터를 전송하도록 허용한다. 예를 들어, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가, 타일들(234A-234D)이 하나 이상의 가장 관심있는 영역들을 포함하는 것을 표시하는 경우, 클라이언트 디바이스(40)는 234A-234D에 대한 비디오 데이터를 포함하는 비디오 파일을 수신하기 전에 타일들(234A-234D)을 요청할 수 있다. FOV가 하나 이상의 가장 관심있는 영역들에 포함되지 않은 이미지의 영역들을 포함하는 예에서, 클라이언트 디바이스(40)는 사용자의 FOV를 수신하면 사용자의 FOV를 충족시키기 위해 추가적 타일들(예를 들어, 236A-236D, 238A-238D)을 요청할 수 있다. 이러한 방식으로, 하나 이상의 가장 관심있는 영역들은, 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터가 프리-페치되도록 허용하여 가상 현실 비디오와 같은 비디오의 재생을 개선하기 위해 (예를 들어, 이미지에 대한 비디오 데이터를 포함하는 비디오 파일을 수신하기 전에) 요청될 수 있다.
[0187] 도 5는 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터에 대한 정보를 결정하기 위한 예시적인 접근법을 예시하는 흐름도이다. 도 5의 방법은 도 1의 클라이언트 디바이스(40) 및 서버 디바이스(60)에 대해 설명된다. 그러나, 다른 디바이스들이 이러한 기술들을 수행하도록 구성될 수 있음을 이해해야 한다.
[0188] 초기에, 도 5에 도시되지는 않았지만, 클라이언트 디바이스(40)는 이미지에 대해 가장 관심있는 영역 데이터를 요청할 수 있다. 예를 들어, 클라이언트 디바이스(40)는 MPD(media presentation description), SEI 메시지, 또는 이미지에 대응하는 앞서 논의된 다른 타입들의 데이터 중 임의의 것을 요청할 수 있다. 이러한 요청에 대한 응답으로, 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 전송할 수 있다(300). 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함될 수 있다. 예를 들어, 서버 디바이스(60)는 가장 관심있는 영역들이 정적인 경우 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 SEI 메시지(예를 들어, 도 3의 SEI 메시지(178))를 전송할 수 있다. 일부 예들에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 파일 포맷 헤더 정보(예를 들어, 도 3의 STBL(176), 도 3의 TRAK 박스(158), 도 3의 SIDX 박스들(162) 등)를 전송한다. 일부 예들에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 MPD(예를 들어, 도 2의 MPD(122))를 전송한다.
[0189] 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 이미지의 하나 이상의 가장 관심있는 영역들을 결정할 수 있다(302). 예를 들어, 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들의 각각의 하나에 대해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 각각의 가장 관심있는 영역의 위치 및 가장 관심있는 영역의 크기를 표현하는 신택스 엘리먼트들에 대한 값들을 결정할 수 있다. 일부 예들에서, 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들의 각각의 하나에 대해, 하나 이상의 가장 관심있는 영역들을 표시하는 식별자(예를 들어, 도 3의 타일 식별자(172), 도 3의 그룹 식별자(174), 도 3의 트랙 식별자(160) 등)를 결정할 수 있다.
[0190] 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(304). 예를 들어, 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 비디오 데이터에 대한 요청을 생성할 수 있고 요청을 출력할 수 있다. 이러한 예에서, 클라이언트 디바이스(40)는 비디오 디코더를 포함하는 엔티티일 수 있다. 그러나, 다른 예들에서, 하나 이상의 가장 관심있는 영역들을 특정하고 요청을 출력하는 비디오 데이터에 대한 요청을 생성하는 디바이스는 CDN(content delivery network) 노드와 같은 네트워크 엘리먼트일 수 있다. 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있고(306) 하나 이상의 요청된 영역들에 대한 비디오 데이터를 전송할 수 있다(308). 클라이언트 디바이스(40)는 하나 이상의 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(310).
[0191] 클라이언트 디바이스(40)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(312). 예를 들어, 클라이언트 디바이스(40)는, 하나 이상의 가장 관심있는 영역들이 도 4의 이미지들(238A-D)을 포함하는 경우 및 사용자의 사용자 FOV가 도 4의 이미지들(238A-D 및 234C-D)을 포함하는 경우 도 4의 이미지들(234C-D)에 대한 비디오 데이터에 대해 요청할 수 있다.
[0192] 서버 디바이스(60)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있고(314), 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터에 대한 비디오 데이터를 전송할 수 있다(316). 클라이언트 디바이스(40)는 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(318). 클라이언트 디바이스(40)는 사용자의 FOV를 결정하고(320) 사용자의 FOV에 포함된 영역들에 대한 데이터를 출력할 수 있다(322). 예를 들어, 클라이언트 디바이스(40)는 사용자의 FOV가 도 4의 이미지들(238A-D 및 234C-D)을 포함한다고 결정하고, 높고 낮은 품질 비디오 데이터를 사용한 디스플레이를 위해 도 4의 이미지들(238A-D 및 234C-D)을 출력할 수 있다.
[0193] 이러한 방식으로, 도 5의 방법은 회로로 구현된 프로세서인 디바이스의 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계; 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하는 단계; 및 프로세서에 의해, 요청을 서버 디바이스에 출력하는 단계를 포함하는 방법의 예를 표현한다.
[0194] 마찬가지로, 도 5의 방법은 또한 회로로 구현되는 프로세서인 소스 디바이스의 프로세서에 의해, 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계 ― 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―; 프로세서에 의해 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계를 포함하고, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함되는 방법의 예를 표현한다.
[0195] 도 6은 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터에 대한 정보를 시그널링하기 위한 예시적인 접근법을 예시하는 흐름도이다. 도 6의 방법은 도 1의 클라이언트 디바이스(40) 및 서버 디바이스(60)에 대해 설명된다. 그러나, 다른 디바이스들이 이러한 기술들을 수행하도록 구성될 수 있음을 이해해야 한다.
[0196] 초기에, 도 6에 도시되지는 않았지만, 클라이언트 디바이스(40)는 이미지에 대해 가장 관심있는 영역 데이터를 요청할 수 있다. 예를 들어, 클라이언트 디바이스(40)는 MPD(media presentation description), SEI 메시지, 또는 이미지에 대응하는 앞서 논의된 다른 타입들의 데이터 중 임의의 것을 요청할 수 있다. 이러한 요청에 대한 응답으로, 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들을 결정할 수 있다(330). 예를 들어, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들의 디렉터 또는 제작자에 의한 선택의 표시를 수신할 수 있거나 서버 디바이스(60)(또는 다른 디바이스)는 사용자 통계로부터 하나 이상의 가장 관심있는 영역들을 유도할 수 있다. 임의의 경우에, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 생성할 수 있다(332). 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함될 수 있다. 예를 들어, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 SEI 메시지(예를 들어, 도 3의 SEI 메시지(178))를 생성한다. 일부 예들에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 파일 포맷 헤더 정보(예를 들어, 도 3의 STBL(176), 도 3의 TRAK 박스(158), 도 3의 SIDX 박스들(162) 등)를 생성한다. 일부 예들에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 MPD(예를 들어, 도 2의 MPD(122))를 생성한다. 임의의 경우에, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 전송할 수 있고(334) 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 수신할 수 있다(336).
[0197] 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 수신하는 것에 대한 응답으로, 클라이언트 디바이스(40)는 이미지의 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(338). 예를 들어, 클라이언트 디바이스(40)는 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력할 수 있다. 그러나, 일부 예들에서, 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력하는 디바이스는 CDN(content delivery network) 노드와 같은 네트워크 엘리먼트일 수 있다. 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있고(340) 하나 이상의 요청된 영역들에 대한 비디오 데이터를 전송할 수 있다(342). 클라이언트 디바이스(40)는 하나 이상의 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(344).
[0198] 클라이언트 디바이스(40)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(346). 서버 디바이스(60)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있다(348). 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하는 것에 대한 응답으로, 서버 디바이스(60)는 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터를 전송할 수 있다(350). 클라이언트 디바이스(40)는 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(352). 그 다음, 도 6의 예에는 도시되지 않지만, 클라이언트 디바이스(40)는 예를 들어, 사용자의 시야에 기초하여, 예를 들어, 도 5에 대해 앞서 논의된 바와 같이, 수신된 비디오 데이터의 적어도 일부를 사용자에게 제시하도록 진행할 수 있다.
[0199] 이러한 방식으로, 도 6의 방법은 회로로 구현된 프로세서인 디바이스의 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계; 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하는 단계; 및 프로세서에 의해, 요청을 서버 디바이스에 출력하는 단계를 포함하는 방법의 예를 표현한다.
[0200] 마찬가지로, 도 6의 방법은 또한 회로로 구현되는 프로세서인 소스 디바이스의 프로세서에 의해, 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계 ― 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―; 프로세서에 의해 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 생성하는 단계 ― 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함됨 ―; 및 프로세서에 의해 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력한 후 비디오 데이터를 출력하는 단계를 포함하는 방법의 예를 표현한다.
[0201] 도 7은 본 개시에 설명된 하나 이상의 기술들에 따라 비디오 데이터를 프리-페치하기 위한 예시적인 접근법을 예시하는 흐름도이다. 도 7의 방법은 도 1의 클라이언트 디바이스(40) 및 서버 디바이스(60)에 대해 설명된다. 그러나, 다른 디바이스들이 이러한 기술들을 수행하도록 구성될 수 있음을 이해해야 한다. 도 7의 예에서, 서버 디바이스(60)는, 초기에 오리진(origin) 서버로부터 데이터를 리트리브하고 일시적으로 데이터를 저장하는 CDN 서버로서 구성될 수 있다. 도 7의 예는 클라이언트 디바이스(40) 및 서버 디바이스(60) 중 하나 또는 둘 모두가 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용할 수 있음을 나타낸다는 것을 이해해야 한다.
[0202] 초기에, 도 7에 도시되지는 않았지만, 클라이언트 디바이스(40)는 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 요청할 수 있다. 예를 들어, 클라이언트 디바이스(40)는 MPD(media presentation description), SEI 메시지, 또는 이미지에 대응하는 앞서 논의된 다른 타입들의 데이터 중 임의의 것을 요청할 수 있다. 이러한 요청에 대한 응답으로, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 데이터에 대한 요청을 오리진 디바이스와 같은 업스트림 디바이스에 전송(또는 포워딩)하고, 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 수신할 수 있다(360). 예를 들어, 서버 디바이스(60)는 업스트림 서버(예를 들어, 에지 서버), 콘텐츠 준비 디바이스(20), 또는 다른 디바이스로부터 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 수신할 수 있다.
[0203] 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 비디오 데이터를 포함하는 비트스트림에 포함될 수 있다. 예를 들어, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 SEI 메시지를 수신한다. 일부 예들에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들을 표현하는 가장 관심있는 영역 데이터를 포함하는 파일 포맷 헤더 정보(예를 들어, 도 3의 STBL(176), 도 3의 TRAK 박스(158), 도 3의 SIDX 박스들(162) 등)를 수신한다. 임의의 경우에, 서버 디바이스(60)는 하나 이상의 관심있는 영역들에 대한 비디오 데이터를 프리-페치할 수 있다(362).
[0204] 하나 이상의 관심있는 영역들에 대한 비디오 데이터를 프리-페치할 때, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들에 대한 프리-페치된 비디오 데이터를 저장할 수 있다(364). 서버 디바이스(60)가 비디오 데이터를 저장(예를 들어, 캐싱)하도록 구성된 에지 서버인 예에서, 서버 디바이스(60)는 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 저장할 수 있다. 일부 예들에서, 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터에 기초하여 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터의 저장 지속기간을 결정할 수 있다. 예를 들어, 서버 디바이스(60)는, 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터가 장기 저장을 위해 유지되는 한편, 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터와 유사한 시간에 리트리브된 다른 (예를 들어, 다른 영역들에 대한) 비디오 데이터가 제거되도록, 서버 디바이스(60)가 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 결정하는 경우 그 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 더 높게 랭크할 수 있다.
[0205] 도 7에 도시되지는 않지만, 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 클라이언트 디바이스(40)에 전송할 수 있다. 예를 들어, 서버 디바이스(60)는 MPD(media presentation description), SEI 메시지, 또는 이미지에 대응하는 앞서 논의된 다른 타입들의 데이터 중 임의의 것을 전송할 수 있다.
[0206] 클라이언트 디바이스(40)에 대한 이미지의 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 수신하는 것에 대한 응답으로, 클라이언트 디바이스(40)는 이미지의 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(366). 이러한 예에서, 클라이언트 디바이스(40)는 비디오 디코더를 포함하는 엔티티일 수 있다. 그러나, 다른 예들에서, 이미지의 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 출력하는 디바이스는 CDN(content delivery network) 노드와 같은 네트워크 엘리먼트일 수 있다. 서버 디바이스(60)는 이미지의 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있고(368) 하나 이상의 요청된 영역들에 대한 비디오 데이터를 전송할 수 있다(370). 클라이언트 디바이스(40)는 하나 이상의 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(372).
[0207] 클라이언트 디바이스(40)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 출력할 수 있다(374). 서버 디바이스(60)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신할 수 있다(376). 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하는 것에 대한 응답으로, 서버 디바이스(60)는 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터를 리트리브할 수 있다(378). 예를 들어, 서버 디바이스(60)는 비디오 데이터에 대한 요청을 오리진 디바이스와 같은 업스트림 디바이스에 전송(또는 포워딩)할 수 있다. 중간적 네트워크 디바이스가 요청된 비디오 데이터를 이미 캐싱한 경우들에서, 중간적 네트워크 디바이스는 캐싱된 비디오 데이터를 사용하여 요청에 응답할 수 있다. 일부 경우들에서, 오리진 서버는 요청된 비디오 데이터를 전송함으로써 요청에 응답할 수 있다.
[0208] 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터를 리트리브할 때, 서버 디바이스(60)는 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터를 전송할 수 있다(380). 클라이언트 디바이스(40)는 하나 이상의 다른 요청된 영역들에 대한 비디오 데이터를 수신할 수 있다(382). 그 다음, 도 7의 예에는 도시되지 않지만, 클라이언트 디바이스(40)는 예를 들어, 사용자의 시야에 기초하여, 예를 들어, 도 5에 대해 앞서 논의된 바와 같이, 수신된 비디오 데이터의 적어도 일부를 사용자에게 제시하도록 진행할 수 있다.
[0209] 이러한 방식으로, 도 7의 방법은 회로로 구현된 프로세서인 디바이스의 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계; 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하는 단계; 및 프로세서에 의해, 요청을 서버 디바이스에 출력하는 단계를 포함하는 방법의 예를 표현한다.
[0210] 하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 이를 통해 송신되고 하드웨어-기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체들은, 예를 들어, 통신 프로토콜에 따라, 일 장소에서 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체들을 포함하는 유형의 매체, 예를 들어, 데이터 저장 매체 또는 통신 매체에 대응하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은, 본 개시에 설명된 기술들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은, 컴퓨터 판독가능 매체를 포함할 수 있다.
[0211] 제한이 아닌 예로써, 이러한 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 플래시 메모리 또는 명령들 또는 데이터 구조들의 형태로 요구되는 프로그램 코드를 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL: digital subscriber line), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속들, 캐리어파들, 신호들 또는 다른 일시적 매체를 포함하지 않지만, 그 대신 비일시적 유형의 저장 매체에 관한 것임을 이해해야 한다. 본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 것들의 결합들이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
[0212] 명령들은, 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드 프로그래밍가능 로직 어레이(FPGA)들, 또는 다른 동등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같이, 용어 "프로세서"는, 본 명세서에 설명된 기술들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수 있다. 부가적으로, 몇몇 양상들에서, 본 명세서에 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공되거나, 결합된 코덱으로 포함될 수 있다. 또한, 기술들은 하나 이상의 회로들 또는 로직 엘리먼트로 완전히 구현될 수 있다.
[0213] 본 발명의 기술들은, 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트(예를 들어, 칩셋)를 포함하는 광범위하게 다양한 디바이스들 또는 장치들로 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은, 기재된 기술들을 수행하도록 구성된 디바이스들의 기능 양상들을 강조하기 위해 본 발명에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구할 필요는 없다. 오히려, 상술된 바와 같이, 다양한 유닛들은, 코덱 하드웨어 유닛으로 결합될 수도 있거나, 적절한 소프트웨어 및/또는 펌웨어와 함께 상술된 바와 같은 하나 또는 그 초과의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
[0214] 다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 존재한다.

Claims (56)

  1. 비디오에 대한 정보를 결정하는 방법으로서,
    회로로 구현된 프로세서인 클라이언트 디바이스의 프로세서에 의해, 하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계;
    상기 프로세서에 의해, 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하는 단계;
    상기 프로세서에 의해 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 서버 디바이스에 출력하는 단계;
    상기 프로세서에 의해, 상기 서버 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 수신하는 단계;
    상기 프로세서에 의해, 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력한 후, 상기 이미지의 하나 이상의 다른 영역들을 특정하는 요청을 상기 서버 디바이스에 출력하는 단계; 및
    상기 프로세서에 의해, 상기 서버 디바이스로부터 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 수신하는 단계를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  2. 제1 항에 있어서,
    상기 프로세서에 의해, 사용자의 FOV(field of view)를 사용하여 상기 이미지의 상기 하나 이상의 다른 영역들을 특정하는 요청을 생성하는 단계를 더 포함하는, 비디오에 대한 정보를 결정하는 방법.
  3. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 SEI(supplemental enhancement information) 메시지로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오에 대한 정보를 결정하는 방법.
  4. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 파일 포맷 헤더 정보에 포함된 샘플 그룹 박스로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오에 대한 정보를 결정하는 방법.
  5. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 파일 포맷 헤더 정보에 포함된 샘플 테이블 박스 또는 트랙 프래그먼트로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오에 대한 정보를 결정하는 방법.
  6. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 파일 포맷 헤더 정보에 포함된 세그먼트 인덱스 박스로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오에 대한 정보를 결정하는 방법.
  7. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 DASH(dynamic adaptive streaming over HTTP) MPD(media presentation description)로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오에 대한 정보를 결정하는 방법.
  8. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 결정하는 단계를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  9. 제8 항에 있어서,
    상기 복수의 신택스 엘리먼트들에 대한 복수의 값들을 결정하는 단계는, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해,
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트에 대한 값을 추출하는 단계;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트에 대한 값을 추출하는 단계;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트에 대한 값을 추출하는 단계; 및
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트에 대한 값을 추출하는 단계를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  10. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 상기 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 추출하는 단계를 포함하고, 상기 하나 이상의 타일들은 상기 하나 이상의 가장 관심있는 영역들과 공간적으로 코로케이트되는, 비디오에 대한 정보를 결정하는 방법.
  11. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 상기 이미지의 상기 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 추출하는 단계를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  12. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 추출하는 단계를 포함하고, 상기 하나 이상의 트랙들의 각각의 트랙은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  13. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 상기 이미지의 하나 이상의 표현들을 표현하는 하나 이상의 표현 식별자들을 추출하는 단계를 포함하고, 상기 하나 이상의 표현들의 각각의 표현은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  14. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는,
    하나 이상의 베이스 타일 트랙들을 표현하는 하나 이상의 베이스 타일 트랙 식별자들을 추출하는 단계; 및
    상기 하나 이상의 베이스 타일 트랙 식별자들을 사용하여 상기 하나 이상의 베이스 타일 트랙들로부터 가장 관심있는 영역 데이터를 추출하는 단계를 포함하는, 비디오에 대한 정보를 결정하는 방법.
  15. 제1 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 이미지 순서 카운트를 표현하는 하나 이상의 신택스 엘리먼트들을 결정하는 단계를 포함하고, 상기 이미지 순서 카운트는 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 상기 이미지에 적용됨을 표시하는, 비디오에 대한 정보를 결정하는 방법.
  16. 비디오 데이터에 대한 정보를 결정하기 위한 디바이스로서,
    상기 디바이스는 회로로 구현되는 하나 이상의 프로세서들을 포함하며, 하나 이상의 프로세서들은,
    하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 상기 하나 이상의 가장 관심있는 영역들을 결정하고;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하고;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 서버 디바이스에 출력하고;
    상기 서버 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 수신하고;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력한 후, 상기 이미지의 하나 이상의 다른 영역들을 특정하는 요청을 상기 서버 디바이스에 출력하고;
    상기 서버 디바이스로부터 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 수신하도록 구성되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  17. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은 SEI(supplemental enhancement information) 메시지로부터 가장 관심있는 영역 데이터를 추출하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  18. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은 파일 포맷 헤더 정보에 포함된 샘플 그룹 박스, 샘플 테이블 박스, 트랙 프래그먼트 또는 세그먼트 인덱스 박스로부터 가장 관심있는 영역 데이터를 추출하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  19. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은 DASH(dynamic adaptive streaming over HTTP) MPD(media presentation description)로부터 가장 관심있는 영역 데이터를 추출하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  20. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 결정하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  21. 제20 항에 있어서,
    상기 복수의 신택스 엘리먼트들에 대한 복수의 값들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해,
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트에 대한 값을 추출하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트에 대한 값을 추출하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트에 대한 값을 추출하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트에 대한 값을 추출하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  22. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 추출하도록 추가로 구성되고, 상기 하나 이상의 타일들은 상기 하나 이상의 가장 관심있는 영역들과 공간적으로 코로케이트되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  23. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 상기 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 추출하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  24. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 추출하도록 추가로 구성되고, 상기 하나 이상의 트랙들의 각각의 트랙은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  25. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 하나 이상의 표현들을 표현하는 하나 이상의 표현 식별자들을 추출하도록 추가로 구성되고, 상기 하나 이상의 표현들의 각각의 표현은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  26. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은,
    하나 이상의 베이스 타일 트랙들을 표현하는 하나 이상의 베이스 타일 트랙 식별자들을 추출하고;
    상기 하나 이상의 베이스 타일 트랙 식별자들을 사용하여 상기 하나 이상의 베이스 타일 트랙들로부터 가장 관심있는 영역 데이터를 추출하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  27. 제16 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하기 위해, 상기 하나 이상의 프로세서들은, 이미지 순서 카운트를 표현하는 하나 이상의 신택스 엘리먼트들을 결정하도록 추가로 구성되고, 상기 이미지 순서 카운트는 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 상기 이미지에 적용됨을 표시하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  28. 비디오 데이터에 대한 정보를 결정하기 위한 디바이스로서,
    하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 상기 하나 이상의 가장 관심있는 영역들을 결정하기 위한 수단;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하기 위한 수단;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 서버 디바이스에 출력하기 위한 수단;
    상기 서버 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 수신하기 위한 수단;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력한 후, 상기 이미지의 하나 이상의 다른 영역들을 특정하는 요청을 상기 서버 디바이스에 출력하기 위한 수단; 및
    상기 서버 디바이스로부터 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 수신하기 위한 수단을 포함하는, 비디오 데이터에 대한 정보를 결정하기 위한 디바이스.
  29. 명령들이 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행되는 경우 프로세서로 하여금,
    하나 이상의 가장 관심있는 영역들을 표현하는 데이터로부터 비디오 데이터의 이미지의 복수의 영역들 중 상기 하나 이상의 가장 관심있는 영역들을 결정하게 하고;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 사용하여 상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 생성하게 하고;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 서버 디바이스에 출력하게 하고;
    상기 서버 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 수신하게 하고;
    상기 하나 이상의 가장 관심있는 영역들을 특정하는 요청을 출력한 후, 상기 이미지의 하나 이상의 다른 영역들을 특정하는 요청을 상기 서버 디바이스에 출력하게 하고;
    상기 서버 디바이스로부터 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 수신하게 하는, 컴퓨터 판독가능 저장 매체.
  30. 비디오 데이터에 대한 정보를 시그널링하는 방법으로서,
    회로로 구현되는 프로세서인 소스 디바이스의 프로세서에 의해, 비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하는 단계 ― 상기 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―;
    상기 프로세서에 의해 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 상기 클라이언트 디바이스에 출력하는 단계 ― 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 상기 비디오 데이터를 포함하는 비트스트림에 포함됨 ―;
    상기 프로세서에 의해, 상기 클라이언트 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신하는 단계;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계 이후, 상기 프로세서에 의해 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하는 단계;
    상기 프로세서에 의해, 상기 클라이언트 디바이스로부터 상기 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하는 단계; 및
    상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 출력하는 단계 이후, 상기 프로세서에 의해 상기 이미지의 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하는 단계를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  31. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 가장 관심있는 영역 데이터를 포함하는 SEI(supplemental enhancement information) 메시지를 생성하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  32. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 가장 관심있는 영역 데이터를 포함하는 샘플 그룹 박스, 샘플 테이블 박스, 트랙 프래그먼트 또는 세그먼트 인덱스 박스를 파일 포맷 헤더 정보에서 생성하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  33. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 가장 관심있는 영역 데이터를 포함하는 DASH(dynamic adaptive streaming over HTTP) MPD(media presentation description)를 생성하는 단계를 포함하고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  34. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 생성하는 단계를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  35. 제34 항에 있어서,
    상기 복수의 신택스 엘리먼트들에 대한 복수의 값들을 출력하는 단계는, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해,
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트에 대한 값을 생성하는 단계;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트에 대한 값을 생성하는 단계;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트에 대한 값을 생성하는 단계;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트에 대한 값을 생성하는 단계를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  36. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 상기 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 생성하는 단계를 포함하고, 상기 하나 이상의 타일들은 상기 하나 이상의 가장 관심있는 영역들과 공간적으로 코로케이트되는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  37. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 상기 이미지의 상기 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 생성하는 단계를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  38. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 생성하는 단계를 포함하고, 상기 하나 이상의 트랙들의 각각의 트랙은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  39. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 상기 이미지의 하나 이상의 표현들을 표현하는 하나 이상의 표현 식별자들을 생성하는 단계를 포함하고, 상기 하나 이상의 표현들의 각각의 표현은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  40. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는,
    하나 이상의 베이스 타일 트랙들에서 가장 관심있는 영역 데이터를 생성하는 단계; 및
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터에서, 상기 하나 이상의 베이스 타일 트랙들을 표현하는 하나 이상의 베이스 타일 트랙 식별자들을 생성하는 단계를 포함하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  41. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 단계는 이미지 순서 카운트를 표현하는 하나 이상의 신택스 엘리먼트들을 생성하는 단계를 포함하고, 상기 이미지 순서 카운트는 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 상기 이미지에 적용됨을 표시하는, 비디오 데이터에 대한 정보를 시그널링하는 방법.
  42. 제30 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계는 디렉터의 의도 또는 사용자 통계 중 하나 이상을 사용하여 상기 하나 이상의 가장 관심있는 영역들을 결정하는 단계를 포함하는, 방법.
  43. 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스로서,
    상기 디바이스는 회로로 구현되는 하나 이상의 프로세서들을 포함하며, 하나 이상의 프로세서들은,
    비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하고 ― 상기 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 상기 클라이언트 디바이스에 출력하고 ― 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 상기 비디오 데이터를 포함하는 비트스트림에 포함됨 ―;
    상기 클라이언트 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신하고;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 것 이후, 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하고;
    상기 클라이언트 디바이스로부터 상기 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하고;
    상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 출력하는 것 이후, 상기 이미지의 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하도록 구성되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  44. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 가장 관심있는 영역 데이터를 포함하는 SEI(supplemental enhancement information) 메시지를 생성하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  45. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 가장 관심있는 영역 데이터를 포함하는 샘플 그룹 박스, 샘플 테이블 박스, 트랙 프래그먼트 또는 세그먼트 인덱스 박스를 파일 포맷 헤더 정보에서 생성하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  46. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 가장 관심있는 영역 데이터를 포함하는 DASH(dynamic adaptive streaming over HTTP) MPD(media presentation description)를 생성하도록 추가로 구성되고, 상기 가장 관심있는 영역 데이터는 상기 하나 이상의 가장 관심있는 영역들을 표현하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  47. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 상기 하나 이상의 가장 관심있는 영역들의 각각의 가장 관심있는 영역에 대해, 베이스 영역에 대한 각각의 가장 관심있는 영역의 위치 및 상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 크기를 표현하는 복수의 신택스 엘리먼트들에 대한 복수의 값들을 생성하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  48. 제47 항에 있어서,
    상기 복수의 신택스 엘리먼트들에 대한 복수의 값들을 출력하기 위해, 상기 하나 이상의 프로세서들은,
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 좌측 수평 오프셋을 표현하는 제1 신택스 엘리먼트에 대한 값을 생성하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 최상부 수직 오프셋을 표현하는 제2 신택스 엘리먼트에 대한 값을 생성하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 폭을 표현하는 제3 신택스 엘리먼트에 대한 값을 생성하고;
    상기 베이스 영역에 대한 상기 각각의 가장 관심있는 영역의 높이를 표현하는 제4 신택스 엘리먼트에 대한 값을 생성하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  49. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 하나 이상의 타일들을 표현하는 하나 이상의 타일 식별자들을 생성하도록 추가로 구성되고, 상기 하나 이상의 타일들은 상기 하나 이상의 가장 관심있는 영역들과 공간적으로 코로케이트되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  50. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 상기 복수의 영역들 중 하나 이상의 영역들을 표현하는 하나 이상의 그룹 식별자들을 생성하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  51. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 하나 이상의 트랙들을 표현하는 하나 이상의 트랙 식별자들을 생성하도록 추가로 구성되고, 상기 하나 이상의 트랙들의 각각의 트랙은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  52. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 상기 이미지의 하나 이상의 표현들을 표현하는 하나 이상의 표현 식별자들을 생성하도록 추가로 구성되고, 상기 하나 이상의 표현들의 각각의 표현은 상기 하나 이상의 가장 관심있는 영역들에 대한 VCL(video coding layer) 데이터를 포함하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  53. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은,
    하나 이상의 베이스 타일 트랙들에서 가장 관심있는 영역 데이터를 생성하고;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터에서, 상기 하나 이상의 베이스 타일 트랙들을 표현하는 하나 이상의 베이스 타일 트랙 식별자들을 생성하도록 추가로 구성되는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  54. 제43 항에 있어서,
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하기 위해, 상기 하나 이상의 프로세서들은, 이미지 순서 카운트를 표현하는 하나 이상의 신택스 엘리먼트들을 생성하도록 추가로 구성되고, 상기 이미지 순서 카운트는 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터가 상기 이미지에 적용됨을 표시하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  55. 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스로서,
    비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하기 위한 수단 ― 상기 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 상기 클라이언트 디바이스에 출력하기 위한 수단 ― 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 상기 비디오 데이터를 포함하는 비트스트림에 포함됨 ―;
    상기 클라이언트 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신하기 위한 수단;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 것 이후, 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하기 위한 수단;
    상기 클라이언트 디바이스로부터 상기 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하기 위한 수단; 및
    상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 출력하는 것 이후, 상기 이미지의 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하기 위한 수단을 포함하는, 비디오 데이터에 대한 정보를 시그널링하기 위한 디바이스.
  56. 명령들이 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행되는 경우 프로세서로 하여금,
    비디오 데이터의 이미지의 복수의 영역들 중 하나 이상의 가장 관심있는 영역들을 결정하게 하고 ― 상기 하나 이상의 가장 관심있는 영역들은 클라이언트 디바이스에 의해 리트리브될 가능성이 가장 큰 하나 이상의 영역들을 포함함 ―;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 상기 클라이언트 디바이스에 출력하게 하고 ― 상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터는 상기 비디오 데이터를 포함하는 비트스트림에 포함됨 ―;
    상기 클라이언트 디바이스로부터 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터에 대한 요청을 수신하게 하고;
    상기 하나 이상의 가장 관심있는 영역들을 표현하는 데이터를 출력하는 것 이후, 상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하게 하고;
    상기 클라이언트 디바이스로부터 상기 이미지의 하나 이상의 다른 영역들에 대한 비디오 데이터에 대한 요청을 수신하게 하고;
    상기 하나 이상의 가장 관심있는 영역들에 대한 비디오 데이터를 출력하는 것 이후, 상기 이미지의 상기 하나 이상의 다른 영역들에 대한 비디오 데이터를 상기 클라이언트 디바이스에 출력하게 하는, 컴퓨터 판독가능 저장 매체.
KR1020187033697A 2016-05-24 2017-05-11 이미지에서 가장 관심있는 영역의 진보된 시그널링 KR102342274B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662341017P 2016-05-24 2016-05-24
US62/341,017 2016-05-24
US15/591,805 2017-05-10
US15/591,805 US10565463B2 (en) 2016-05-24 2017-05-10 Advanced signaling of a most-interested region in an image
PCT/US2017/032185 WO2017205069A1 (en) 2016-05-24 2017-05-11 Advanced signaling of a most-interested region in an image

Publications (2)

Publication Number Publication Date
KR20190014501A true KR20190014501A (ko) 2019-02-12
KR102342274B1 KR102342274B1 (ko) 2021-12-22

Family

ID=59034850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033697A KR102342274B1 (ko) 2016-05-24 2017-05-11 이미지에서 가장 관심있는 영역의 진보된 시그널링

Country Status (9)

Country Link
US (1) US10565463B2 (ko)
EP (1) EP3466084A1 (ko)
JP (1) JP2019521583A (ko)
KR (1) KR102342274B1 (ko)
CN (1) CN109155865A (ko)
AU (1) AU2017271981A1 (ko)
BR (1) BR112018073956A2 (ko)
TW (1) TW201742461A (ko)
WO (1) WO2017205069A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220071240A (ko) * 2019-12-03 2022-05-31 지티이 코포레이션 미디어 리소스 재생 및 텍스트 렌더링 방법, 장치, 기기 및 저장 매체

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11108670B2 (en) 2015-09-09 2021-08-31 Vantrix Corporation Streaming network adapted to content selection
US10419770B2 (en) 2015-09-09 2019-09-17 Vantrix Corporation Method and system for panoramic multimedia streaming
US11287653B2 (en) 2015-09-09 2022-03-29 Vantrix Corporation Method and system for selective content processing based on a panoramic camera and a virtual-reality headset
US10694249B2 (en) * 2015-09-09 2020-06-23 Vantrix Corporation Method and system for selective content processing based on a panoramic camera and a virtual-reality headset
US20180176468A1 (en) 2016-12-19 2018-06-21 Qualcomm Incorporated Preferred rendering of signalled regions-of-interest or viewports in virtual reality video
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11290755B2 (en) 2017-01-10 2022-03-29 Qualcomm Incorporated Signaling data for prefetching support for streaming media data
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
KR102332525B1 (ko) * 2017-06-01 2021-11-29 삼성전자주식회사 전자 장치 및 그 동작방법
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10754242B2 (en) * 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
EP3692721A1 (en) 2017-10-04 2020-08-12 VID SCALE, Inc. Customized 360-degree media viewing
CN109996055B (zh) 2017-12-06 2022-08-12 杜比实验室特许公司 位置零时延
CN109996110B (zh) * 2017-12-29 2021-10-22 中兴通讯股份有限公司 一种视频播放方法、终端、服务器及存储介质
CN111937396B (zh) * 2018-04-03 2023-11-17 华为技术有限公司 基于子图像码流视角相关视频编码中的误差抑制的文件格式指示
WO2019199379A1 (en) * 2018-04-13 2019-10-17 Futurewei Technologies, Inc. Immersive media metrics for virtual reality content with multiple viewpoints
US10958987B1 (en) * 2018-05-01 2021-03-23 Amazon Technologies, Inc. Matching based on video data
US10630990B1 (en) 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
KR20190136417A (ko) * 2018-05-30 2019-12-10 삼성전자주식회사 3차원 360도 영상 데이터의 전송 방법, 그에 따른 디스플레이 장치, 및 그에 따른 영상 저장 장치
US10623791B2 (en) 2018-06-01 2020-04-14 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US10812774B2 (en) 2018-06-06 2020-10-20 At&T Intellectual Property I, L.P. Methods and devices for adapting the rate of video content streaming
US11108841B2 (en) 2018-06-19 2021-08-31 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for heterogeneous segmentation of video streaming
US10616621B2 (en) 2018-06-29 2020-04-07 At&T Intellectual Property I, L.P. Methods and devices for determining multipath routing for panoramic video content
US11019361B2 (en) 2018-08-13 2021-05-25 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic view of a camera for capturing video content
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic video content
WO2020068284A1 (en) * 2018-09-26 2020-04-02 Futurewei Technologies, Inc. Virtual reality (vr) viewpoint grouping
US10779014B2 (en) * 2018-10-18 2020-09-15 At&T Intellectual Property I, L.P. Tile scheduler for viewport-adaptive panoramic video streaming
US11323754B2 (en) * 2018-11-20 2022-05-03 At&T Intellectual Property I, L.P. Methods, devices, and systems for updating streaming panoramic video content due to a change in user viewpoint
CN112312159A (zh) * 2019-07-30 2021-02-02 华为技术有限公司 视频的缓存方法和装置
US11417076B2 (en) * 2020-09-01 2022-08-16 Qualcomm Incorporated Detecting a sub-image region of interest in an image using pilot signals
US11698794B2 (en) * 2020-09-02 2023-07-11 Ge Aviation Systems Llc Systems and method for flexible access of a regulated system
WO2023044214A1 (en) * 2021-09-20 2023-03-23 Qualcomm Incorporated Processing video data picture size change request and notification messages
US11924464B2 (en) 2021-09-20 2024-03-05 Qualcomm Incorporated Processing video data picture size change request and notification messages
CN115546652B (zh) * 2022-11-29 2023-04-07 城云科技(中国)有限公司 一种多时态目标检测模型及其构建方法、装置及应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082054A1 (en) * 2012-09-14 2014-03-20 Canon Kabushiki Kaisha Method and device for generating a description file, and corresponding streaming method
KR20160032184A (ko) * 2013-07-29 2016-03-23 코닌클리즈케 케이피엔 엔.브이. 타일 비디오 스트림을 클라이언트에게 제공하는 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233467A (ja) * 1996-02-21 1997-09-05 Fujitsu Ltd 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法
US7613727B2 (en) 2002-02-25 2009-11-03 Sont Corporation Method and apparatus for supporting advanced coding formats in media files
US7058203B2 (en) * 2002-05-14 2006-06-06 Lockheed Martin Corporation Region of interest identification using region of adjacent pixels analysis
JP4111926B2 (ja) * 2004-03-09 2008-07-02 株式会社リコー 画像処理装置、プログラム、記憶媒体及び画像送信方法
US8184153B2 (en) * 2005-09-26 2012-05-22 Electronics And Telecommunications Research Institute Method and apparatus for defining and reconstructing ROIs in scalable video coding
US20070165007A1 (en) * 2006-01-13 2007-07-19 Gerald Morrison Interactive input system
US8606952B2 (en) * 2008-01-15 2013-12-10 International Business Machines Corporation Method and system for optimizing bandwidth usage in remote visualization
JP5039627B2 (ja) * 2008-03-31 2012-10-03 株式会社コナミデジタルエンタテインメント ゲーム画像送信装置、ゲーム画像送信装置の制御方法、及びプログラム
EP2465095A1 (en) * 2009-08-12 2012-06-20 Thomson Licensing System and method for region-of-interest-based artifact reduction in image sequences
CN101699862B (zh) * 2009-11-16 2011-04-13 上海交通大学 Ptz摄像机获取感兴趣区域高分辨率图像的方法
US8571280B2 (en) * 2010-02-22 2013-10-29 Canon Kabushiki Kaisha Transmission of medical image data
JP5763306B2 (ja) * 2010-04-27 2015-08-12 レノボ・イノベーションズ・リミテッド(香港) 動画像通信システム
EP2652641A4 (en) * 2010-12-13 2015-05-06 Intel Corp DEVELOPMENT AND EXTRACTION OF DATA
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
US9262670B2 (en) * 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
JP2015533051A (ja) * 2012-09-18 2015-11-16 ヴィド スケール インコーポレイテッド タイルおよびタイル群を使用した関心領域ビデオ符号化
JP6150011B2 (ja) 2013-07-15 2017-06-21 ソニー株式会社 インタラクティビティのための動き制約タイルセットseiメッセージの拡張
JP6440747B2 (ja) * 2014-06-27 2018-12-19 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ Hevcでタイル化されたビデオ・ストリームに基づく関心領域の決定
US10225546B2 (en) 2016-02-26 2019-03-05 Qualcomm Incorporated Independent multi-resolution coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082054A1 (en) * 2012-09-14 2014-03-20 Canon Kabushiki Kaisha Method and device for generating a description file, and corresponding streaming method
KR20160032184A (ko) * 2013-07-29 2016-03-23 코닌클리즈케 케이피엔 엔.브이. 타일 비디오 스트림을 클라이언트에게 제공하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220071240A (ko) * 2019-12-03 2022-05-31 지티이 코포레이션 미디어 리소스 재생 및 텍스트 렌더링 방법, 장치, 기기 및 저장 매체

Also Published As

Publication number Publication date
US10565463B2 (en) 2020-02-18
KR102342274B1 (ko) 2021-12-22
CN109155865A (zh) 2019-01-04
JP2019521583A (ja) 2019-07-25
BR112018073956A2 (pt) 2019-02-26
AU2017271981A1 (en) 2018-11-01
US20170344843A1 (en) 2017-11-30
WO2017205069A1 (en) 2017-11-30
TW201742461A (zh) 2017-12-01
EP3466084A1 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
KR102342274B1 (ko) 이미지에서 가장 관심있는 영역의 진보된 시그널링
KR102252238B1 (ko) 이미지에서의 가장 관심있는 영역
KR102614207B1 (ko) Mime 타입 파라미터들을 이용하는 네트워크 비디오 스트리밍에서의 중요 비디오 정보 시그널링
KR102534899B1 (ko) Http 를 통한 동적 적응형 스트리밍에서의 가상 현실 비디오 시그널링
US20190020880A1 (en) Region-wise packing, content coverage, and signaling frame packing for media content
US11290755B2 (en) Signaling data for prefetching support for streaming media data
US10567734B2 (en) Processing omnidirectional media with dynamic region-wise packing
KR102247404B1 (ko) 어안 가상 현실 비디오에 대한 향상된 고레벨 시그널링
US10587904B2 (en) Processing media data using an omnidirectional media format
US20190014362A1 (en) Enhanced region-wise packing and viewport independent hevc media profile
AU2023200083B2 (en) Signaling important video information in network video streaming using mime type parameters

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant