KR20190014500A - Http 를 통한 동적 적응형 스트리밍에서의 가상 현실 비디오 시그널링 - Google Patents
Http 를 통한 동적 적응형 스트리밍에서의 가상 현실 비디오 시그널링 Download PDFInfo
- Publication number
- KR20190014500A KR20190014500A KR1020187033505A KR20187033505A KR20190014500A KR 20190014500 A KR20190014500 A KR 20190014500A KR 1020187033505 A KR1020187033505 A KR 1020187033505A KR 20187033505 A KR20187033505 A KR 20187033505A KR 20190014500 A KR20190014500 A KR 20190014500A
- Authority
- KR
- South Korea
- Prior art keywords
- media presentation
- data
- media
- video
- presentation
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 57
- 230000011664 signaling Effects 0.000 title claims description 28
- 238000013507 mapping Methods 0.000 claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 14
- 230000006978 adaptation Effects 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 7
- 239000012634 fragment Substances 0.000 description 53
- 230000000875 corresponding effect Effects 0.000 description 28
- 230000001419 dependent effect Effects 0.000 description 25
- 238000005538 encapsulation Methods 0.000 description 25
- 230000002123 temporal effect Effects 0.000 description 21
- 238000002360 preparation method Methods 0.000 description 18
- 238000000605 extraction Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 239000010410 layer Substances 0.000 description 13
- 238000009877 rendering Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 description 1
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8146—Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234327—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/23439—Processing 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 for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring 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)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
미디어 데이터를 프로세싱하기 위한 디바이스는, 가상 현실 (VR) 비디오 데이터를 포함하는 미디어 데이터를 수신하고; 미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하며; 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하도록 구성된다. 미디어 데이터를 프로세싱하기 위한 디바이스는, VR 비디오 데이터를 포함하는 미디어 데이터를 생성하고; 미디어 데이터에 포함된 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 미디어 데이터에 포함시키며; 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송하도록 구성된다.
Description
이 출원은 2016년 5월 24일 출원된 미국 가 특허 출원 제 62/341,012 호의 이익을 주장하고 그것의 전체 내용은 참조에 의해 본원에 통합된다.
기술분야
이 개시물은 인코딩된 비디오 데이터의 저장 및 전송에 관한 것이다.
디지털 비디오 기능들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말 (PDA) 들, 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 화상 원격회의 디바이스들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 보다 효율적으로 송신 및 수신하기 위해, MPEG-2, MPEG-4, ITU-T H.263, 또는 ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC), ITU-T H.265 - 고 효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 기술된 것들과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 비디오 시퀀스들에서 고유한 중복성 (redundancy) 을 감소시키거나 제거하기 위해 공간적 예측 및/또는 시간적 예측을 수행한다. 블록-기반 비디오 코딩을 위해, 비디오 프레임 또는 슬라이스는 매크로블록들로 파티셔닝될 수도 있다. 각 매크로블록은 추가로 파티셔닝될 수 있다. 인트라-코딩된 (I) 프레임 또는 슬라이스 내의 매크로블록들은 인접 매크로블록들에 대한 공간적 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 프레임 또는 슬라이스 내의 매크로블록들은 동일한 프레임 또는 슬라이스 내의 인접 매크로블록들에 대한 공간적 예측을 이용하거나 다른 기준 프레임들에 대한 시간적 예측을 이용할 수도 있다.
비디오 데이터가 인코딩된 후에, 비디오 데이터는 송신 및 저장을 위하여 패킷화될 수도 있다. 비디오 데이터는 다양한 표준들 중 임의의 것, 예컨대 HEVC 파일 포맷과 같은 ISO (International Organization for Standardization) 기초 미디어 파일 포맷 및 그의 확장들에 따르는 비디오 파일 내로 어셈블링될 수도 있다.
일반적으로, 이 개시물은 가상 현실 (virtual reality; VR) 에 관련된 기법들을 기술한다. 보다 구체적으로, 이 개시물은 HTTP 를 통한 동적 적응형 스트리밍 (dynamic adaptive streaming over HTTP; DASH) 에서 VR 비디오의 시그널링을 위한 기법들을 기술한다.
본 개시의 하나의 예에 따르면, 미디어 데이터를 프로세싱하기 위한 방법은, 미디어 데이터를 수신하는 단계로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 수신하는 단계; 미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션 (media presentation description) 의 적응 셋트 레벨 (adaptation set level) 에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑 (projection mapping) 을 결정하는 단계; 및, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션 (video representation) 의 세그먼트들을 프로세싱하는 단계를 포함한다.
본 개시의 다른 예에 따르면, 미디어 데이터를 프로세싱하기 위한 디바이스는, 미디어 데이터를 저장하도록 구성된 메모리 및 하나 이상의 프로세서들을 포함하고, 이 하나 이상의 프로세서들은, 미디어 데이터를 수신하는 것으로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 수신하는 것을 행하고; 미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하며; 그리고, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하도록 구성된다.
본 개시의 또 다른 예에 따르면, 미디어 데이터를 프로세싱하는 방법은, 미디어 데이터를 생성하는 단계로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 생성하는 단계; 미디어 데이터에 포함된 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 미디어 데이터에 포함시키는 단계; 및, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하는 단계를 포함한다.
본 개시의 또 다른 예에 따르면, 미디어 데이터를 프로세싱하기 위한 디바이스는, 미디어 데이터를 저장하도록 구성된 메모리 및 하나 이상의 프로세서들을 포함하고, 이 하나 이상의 프로세서들은, 미디어 데이터를 생성하는 것으로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 생성하는 것을 행하고; 미디어 데이터에 포함된 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 미디어 데이터에 포함시키며; 그리고, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송하도록 구성된다.
하나 이상의 예들의 상세들이 첨부 도면들 및 이하의 상세한 설명에서 전개된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명, 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1 은 네트워크를 통해 미디어 데이터를 스트리밍하기 위한 기법들을 구현하는 일 예시적인 시스템을 나타내는 블록도이다.
도 2 는 타일 (tile) 기반 가상 현실 (VR) 비디오 부분적 디코딩의 일 예를 나타내는 개념도이다.
도 3 은 제 1 스케일러블 코딩 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 4 는 제 2 스케일러블 코딩 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 5 는 제 1 사이멀캐스트 (simulcast) 코딩 기반 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 6 은 제 2 사이멀캐스트 코딩 기반 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 7 은 취출 유닛의 컴포넌트들의 일 예시적인 셋트를 더 자세히 나타내는 블록도이다.
도 8 은 예시적인 멀티미디어 콘텐츠의 엘리먼트들을 나타내는 개념도이다.
도 9 는 일 예시적인 비디오 파일의 엘리먼트들을 나타내는 블록도이다.
도 10 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다.
도 11 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다.
도 2 는 타일 (tile) 기반 가상 현실 (VR) 비디오 부분적 디코딩의 일 예를 나타내는 개념도이다.
도 3 은 제 1 스케일러블 코딩 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 4 는 제 2 스케일러블 코딩 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 5 는 제 1 사이멀캐스트 (simulcast) 코딩 기반 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 6 은 제 2 사이멀캐스트 코딩 기반 VR 비디오 부분적 디코딩을 나타내는 개념도이다.
도 7 은 취출 유닛의 컴포넌트들의 일 예시적인 셋트를 더 자세히 나타내는 블록도이다.
도 8 은 예시적인 멀티미디어 콘텐츠의 엘리먼트들을 나타내는 개념도이다.
도 9 는 일 예시적인 비디오 파일의 엘리먼트들을 나타내는 블록도이다.
도 10 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다.
도 11 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다.
일반적으로, 이 개시물은 가상 현실 (VR) 에 관련된 기법들을 기술한다. 보다 구체적으로, 이 개시물은 HTTP 를 통한 동적 적응형 스트리밍 (DASH) 에서 VR 비디오의 시그널링을 위한 기법들을 기술한다. DASH 의 일 버전은 ISO/IEC 23009-1 에서 명시된다. 본 개시의 기법들은 ISO 기초 미디어 파일 포맷, 스케일러블 비디오 코딩 (Scalable Video Coding; SVC) 파일 포맷, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC) 파일 포맷, 3 세대 파트너쉽 프로젝트 (Third Generation Partnership Project; 3GPP) 파일 포맷, 및/또는 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC) 파일 포맷, 또는 다른 유사한 비디오 파일 포맷들 중 임의의 것에 따라 인캡슐레이션된 비디오 데이터에 따른 비디오 파일들에 적용될 수도 있다.
HTTP 스트리밍에서, 빈번하게 사용되는 동작들은 HEAD, GET, 및 부분적 GET 을 포함한다. HEAD 동작은 주어진 URL (uniform resource locator) 또는 URN (uniform resource name) 에 연관된 파일의 헤더를, 그 URL 또는 URN에 연관된 페이로드를 취출하는 일 없이, 취출한다. GET 동작은 주어진 URL 또는 URN에 연관된 전체 파일을 취출한다. 부분적 GET 동작은 입력 파라미터로서 바이트 범위를 수신하고 수신된 바이트 범위에 대응하는 파일의 연속하는 수의 바이트들을 취출하는데, 그 바이트들의 수는 수신된 바이트 범위에 대응한다. 따라서, 무비 프래그먼트들이 HTTP 스트리밍을 위해 제공될 수도 있는데, 부분적 GET 동작이 하나 이상의 개개의 무비 프래그먼트들을 얻을 수 있기 때문이다. 무비 프래그먼트에서는, 상이한 트랙들의 여러 트랙 프래그먼트들이 있을 수 있다. HTTP 스트리밍에서, 미디어 프레젠테이션이 클라이언트에 액세스가능한 데이터의 구조화된 컬렉션일 수도 있다. ISO/IEC 23009-1 은 미디어 콘텐츠의 유계 (bounded) 또는 무계 (unbounded) 프레젠테이션을 확립하는 데이터의 컬렉션으로서 미디어 프레젠테이션을 정의한다. 클라이언트는 스트리밍 서비스를 사용자에게 제시하기 위해 미디어 데이터 정보를 요청하고 다운로드할 수도 있다.
HTTP 스트리밍을 사용하여 3GPP 데이터를 스트리밍하는 예에서, 멀티미디어 콘텐츠의 비디오 및/또는 오디오 데이터에 대한 다수의 리프리젠테이션들이 있을 수도 있다. 아래에서 설명되는 바와 같이, 상이한 리프리젠테이션들이 상이한 코딩 특성들 (예컨대, 비디오 코딩 표준의 상이한 프로파일들 또는 레벨들), 상이한 코딩 표준들 또는 코딩 표준들의 확장본들 (이를테면 멀티뷰 및/또는 스케일러블 확장본들), 또는 상이한 비트레이트들에 대응할 수도 있다. 그런 리프리젠테이션들의 매니페스트는 미디어 프레젠테이션 디스크립션 (MPD) 데이터 구조에서 정의될 수도 있다. 미디어 프레젠테이션이 HTTP 스트리밍 클라이언트 디바이스에 액세스가능한 데이터의 구조화된 컬렉션에 대응할 수도 있다. HTTP 스트리밍 클라이언트 디바이스는 스트리밍 서비스를 클라이언트 디바이스의 사용자에게 제시하기 위해 미디어 데이터 정보를 요청하고 다운로드할 수도 있다. 미디어 프레젠테이션이 MPD의 업데이트들을 포함할 수도 있는 MPD 데이터 구조에서 기술될 수도 있다.
미디어 프레젠테이션은 하나 이상의 기간들의 시퀀스를 포함할 수도 있다. ISO/IEC 23009-1 은 미디어 프레젠테이션의 간격을 정의하고, 여기서, 모든 기간들의 연속적인 시퀀스가 미디어 프레젠테이션을 구성한다. 각각의 기간은 다음의 기간의 시작까지, 또는 마지막 기간의 경우에는 미디어 프레젠테이션의 말단까지 연장할 수도 있다. 각각의 기간은 동일한 미디어 콘텐츠에 대해 하나 이상의 리프리젠테이션들을 포함할 수도 있다. 리프리젠테이션은 오디오, 비디오, 타임드 (timed) 텍스트, 또는 다른 이러한 데이터의 다수의 대안적 인코딩된 버전들 중 하나일 수도 있다. 그 리프리젠테이션들은 인코딩 타입들에 의해, 예컨대, 비디오 데이터에 대한 비트레이트, 해상도, 및/또는 코덱과, 오디오 데이터에 대한 비트레이트, 언어, 및/또는 코덱에 의해 상이할 수도 있다. 리프리젠테이션이란 용어는, 멀티미디어 콘텐츠의 특정 기간에 대응하고 특정 방식으로 인코딩되는 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하는데 사용될 수도 있다.
특정 기간의 리프리젠테이션들은 리프리젠테이션들이 속하는 적응 셋트를 나타내는 MPD 에서의 속성에 의해 표시된 그룹에 할당될 수도 있다. ISO/IEC 23009-1 은 설명적 메타데이터와 연관된 그리고 전달 포맷에서의 하나 이상의 미디어 스트림들의 인캡슐레이션 및 컬렉션으로서 리프리젠테이션을 정의하고, 하나 또는 수개의 미디어 콘텐츠 컴포넌트들의 상호교환가능한 인코딩된 버전들의 셋트로서 적응 셋트를 정의한다. 동일한 적응 셋트에서의 리프리젠테이션들은, 클라이언트 디바이스가, 예컨대 대역폭 적응을 수행하기 위해, 이들 리프리젠테이션들 사이를 동적으로 그리고 끊김없이 스위칭할 수 있다는 점에서, 서로에 대한 대안들로서 일반적으로 간주된다. 예를 들어, 특정 기간 동안의 비디오 데이터의 각각의 리프리젠테이션은 동일한 적응 셋트에 할당될 수도 있어서, 그 리프리젠테이션들 중 임의의 리프리젠테이션이 대응하는 기간 동안의 멀티미디어 콘텐츠의 비디오 데이터 또는 오디오 데이터와 같은 미디어 데이터를 제시하기 위한 디코딩을 위해 선택될 수도 있다. 하나의 기간 내의 미디어 콘텐츠는, 일부 예들에서, 그룹 0이 존재한다면, 그 그룹 0 으로부터의 하나의 리프리젠테이션, 또는 각각의 영이 아닌 그룹으로부터의 많아야 하나의 리프리젠테이션의 조합 중 어느 하나에 의해 표현될 수도 있다. 기간의 각각의 리프리젠테이션에 대한 타이밍 데이터는 그 기간의 시작 시간을 기준으로 나타낼 수도 있다.
리프리젠테이션은 하나 이상의 세그먼트들을 포함할 수도 있다. 각각의 리프리젠테이션은 초기화 세그먼트를 포함할 수도 있거나, 또는 리프리젠테이션의 각각의 세그먼트는 자체 초기화될 수도 있다. 존재하는 경우, 초기화 세그먼트는 리프리젠테이션에 액세스하기 위한 초기화 정보를 포함할 수도 있다. 일반적으로, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트가 식별자, 이를테면 URL (uniform resource locator), URN (uniform resource name), 또는 URI (uniform resource identifier) 에 의해 고유하게 참조될 수도 있다. MPD는 각각의 세그먼트에 대해 식별자들을 제공할 수도 있다. 일부 예들에서, MPD는 URL, URN, 또는 URI에 의해 액세스 가능한 파일 내의 세그먼트를 위한 데이터에 대응할 수도 있는 범위 속성의 형태로 바이트 범위들을 제공할 수도 있다. ISO/IEC 23009-1 는 HTTP-URL 및 선택적으로 MPD 에 의해 명시되는 바이트 범위와 연관된 데이터의 유닛으로서 세그먼트를 정의하고, 미디어 세그먼트들에서 인캡슐레이션된 미디어 스트림들을 제시하기 위해 필요한 메타데이터를 포함하는 세그먼트로서 초기화 세그먼트를 정의한다. ISO/IEC 23009-1 은 사용되고 있는 미디어 포맷과 호환되고 0 개 또는 보다 많은 선행 세그먼트들, 및 초기화 세그먼트 (있는 경우) 와 결합될 때 재생을 가능하게 하는 세그먼트로서 미디어 세그먼트를 정의한다.
상이한 리프리젠테이션들이 상이한 타입들의 미디어 데이터에 대한 실질적으로 동시 취출 (retrieval) 을 위해 선택될 수도 있다. 예를 들어, 클라이언트 디바이스가 세그먼트들을 취출하는 타임드 텍스트 리프리젠테이션, 비디오 리프리젠테이션, 및 오디오 리프리젠테이션을 선택할 수도 있다. 일부 예들에서, 클라이언트 디바이스는 대역폭 적응을 수행하기 위한 특정 적응 셋트들을 선택할 수도 있다. 다시 말하면, 클라이언트 디바이스는 비디오 리프리젠테이션들을 포함하는 적응 셋트, 오디오 리프리젠테이션들을 포함하는 적응 셋트, 및/또는 타임드 텍스트를 포함하는 적응 셋트를 선택할 수도 있다. 대안적으로, 클라이언트 디바이스는 특정한 타입들의 미디어 (예컨대, 비디오) 를 위한 적응 셋트들을 선택하고, 다른 타입들의 미디어 (예컨대, 오디오 및/또는 타임드 텍스트) 를 위한 리프리젠테이션들을 직접적으로 선택할 수도 있다.
도 1 은 네트워크를 통해 미디어 데이터를 스트리밍하는 기법들을 구현하는 일 예의 시스템 (10) 을 도시하는 블록도이다. 이 예에서, 시스템 (10) 은 콘텐츠 준비 디바이스 (20), 서버 디바이스 (60), 및 클라이언트 디바이스 (40) 를 포함한다. 클라이언트 디바이스 (40) 와 서버 디바이스 (60) 는 인터넷을 포함할 수도 있는 네트워크 (74) 에 의해 통신적으로 연결된다. 일부 예들에서, 콘텐츠 준비 디바이스 (20) 와 서버 디바이스 (60) 는 또한, 네트워크 (74) 또는 다른 네트워크에 의해 연결될 수도 있거나, 또는 직접 통신적으로 연결될 수도 있다. 일부 예들에서, 콘텐츠 준비 디바이스 (20) 와 서버 디바이스 (60) 는 동일한 디바이스를 포함할 수도 있다.
콘텐츠 준비 디바이스 (20) 는, 도 1 의 예에서, 오디오 소스 (22) 및 비디오 소스 (24) 를 포함한다. 오디오 소스 (22) 는, 예를 들어, 오디오 인코더 (26) 에 의해 인코딩될 캡처된 오디오 데이터를 나타내는 전기적 신호들을 생성하는 마이크로폰을 포함할 수도 있다. 대안으로, 오디오 소스 (22) 는 이전에 레코딩된 오디오 데이터를 저장하는 저장 매체, 컴퓨터화된 신시사이저와 같은 오디오 데이터 생성기, 또는 오디오 데이터의 임의의 다른 소스를 포함할 수도 있다. 비디오 소스 (24) 는 비디오 인코더 (28) 에 의해 인코딩될 비디오 데이터를 생성하는 비디오 카메라, 이전에 레코딩된 비디오 데이터로 인코딩된 저장 매체, 컴퓨터 그래픽 소스와 같은 비디오 데이터 생성 유닛, 또는 비디오 데이터의 임의의 다른 소스를 포함할 수도 있다. 콘텐츠 준비 디바이스 (20) 는 모든 예들에서 서버 디바이스 (60) 에 통신적으로 연결될 필요는 없지만, 서버 디바이스 (60) 에 의해 읽혀지는 별개의 매체에 멀티미디어 콘텐츠를 저장할 수도 있다.
원시 (raw) 오디오 및 비디오 데이터는 아날로그 또는 디지털 데이터를 포함할 수도 있다. 아날로그 데이터는 오디오 인코더 (26) 및/또는 비디오 인코더 (28) 에 의해 인코딩되기 전에 디지털화될 수도 있다. 오디오 소스 (22) 는 발화 (speaking) 참가자가 말을 하는 동안 발화 참가자로부터 오디오 데이터를 획득할 수도 있고, 비디오 소스 (24) 는 동시에 발화 참가자의 비디오 데이터를 획득할 수도 있다. 다른 예들에서, 오디오 소스 (22) 는 저장된 오디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있고, 비디오 소스 (24) 는 저장된 비디오 데이터를 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 이런 방식으로, 본 개시에서 설명된 기법들은 라이브, 스트리밍, 실시간 오디오 및 비디오 데이터에 또는 아카이브된 (archived) 미리 레코딩된 오디오 및 비디오 데이터에 적용될 수도 있다.
비디오 프레임들에 대응하는 오디오 프레임들은 일반적으로 비디오 프레임들 내에 포함되는 비디오 소스 (24) 에 의해 캡처된 (또는 생성된) 비디오 데이터와 동시에 오디오 소스 (22) 에 의해 캡처되었던 (또는 생성된) 오디오 데이터를 포함하는 오디오 프레임들이다. 예를 들어, 발화 참가자가 일반적으로 발화에 의해 오디오 데이터를 생성하는 동안, 오디오 소스 (22) 는 오디오 데이터를 캡처하고, 비디오 소스 (24) 는 동시에, 다시 말하면, 오디오 소스 (22) 가 오디오 데이터를 캡처하고 있는 동안, 발화 참가자의 비디오 데이터를 캡처한다. 그래서, 오디오 프레임이 하나 이상의 특정 비디오 프레임들에 시간적으로 대응할 수도 있다. 따라서, 오디오 프레임이 비디오 프레임에 대응한다는 것은 일반적으로 오디오 데이터 및 비디오 데이터가 동일한 시간에 캡처되었던 상황에 해당하고 그 상황 동안 오디오 프레임 및 비디오 프레임은 동일한 시간에 캡처되었던 오디오 데이터 및 비디오 데이터를 각각 포함한다.
몇몇 예들에서, 오디오 인코더 (26) 는, 인코딩된 오디오 프레임에 대한 오디오 데이터가 레코딩되었던 시간을 나타내는 각각의 인코딩된 오디오 프레임에서의 타임스탬프 (timestamp) 를 인코딩할 수도 있고, 그리고 유사하게, 비디오 인코더 (28) 는 인코딩된 비디오 프레임에 대한 비디오 데이터가 레코딩되었던 시간을 나타내는 각각의 인코딩된 비디오 프레임에서의 타임스탬프를 인코딩할 수도 있다. 이러한 예들에서, 비디오 프레임에 대응하는 오디오 프레임은 타임스탬프를 포함하는 오디오 프레임 및 동일한 타임스탬프를 포함하는 비디오 프레임을 포함할 수도 있다. 콘텐츠 준비 디바이스 (20) 는 내부 클럭을 포함할 수도 있고, 그 내부 클럭으로부터 오디오 인코더 (26) 및/또는 비디오 인코더 (28) 는 타임스탬프들을 생성할 수도 있고, 또는, 오디오 소스 (22) 및 비디오 소스 (24) 는 타임스탬프로 오디오 및 비디오 데이터를 각각 연관시키기 위해 이용할 수도 있다.
몇몇 예들에서, 오디오 소스 (22) 는 오디오 데이터가 레코딩되었던 시간에 대응하는 데이터를 오디오 인코더 (26) 에 전송할 수도 있고, 비디오 소스 (24) 는 비디오 데이터가 레코딩되었던 시간에 대응하는 데이터를 비디오 인코더 (28) 에 전송할 수도 있다. 일부 예들에서, 오디오 인코더 (26) 는, 인코딩된 오디오 데이터의 상대적인 시간적 순서를 나타내기 위해서, 하지만 그 오디오 데이터가 레코딩되었던 절대적 시간을 반드시 나타낼 필요는 없이, 인코딩된 오디오 데이터에서 시퀀스 식별자 (sequence identifier) 를 인코딩할 수도 있고, 그리고 유사하게, 비디오 인코더 (28) 는 또한, 인코딩된 비디오 데이터의 상대적인 시간적 순서를 나타내기 위해 시퀀스 식별자들을 이용할 수도 있다. 유사하게, 일부 예들에서, 시퀀스 식별자는 타임스탬프와 맵핑되거나 그렇지 않으면 상관될 수도 있다.
오디오 인코더 (26) 는 일반적으로 인코딩된 오디오 데이터의 스트림을 생성하는 한편, 비디오 인코더 (28) 는 인코딩된 비디오 데이터의 스트림을 생성한다. 데이터 (오디오든 비디오든) 의 각각의 개별 스트림은 기본 스트림 (elementary stream) 으로서 지칭될 수도 있다. 기본 스트림은 리프리젠테이션의 단일의, 디지털로 코딩된 (가능하게는 압축된) 컴포넌트이다. 예를 들어, 그 리프리젠테이션의 코딩된 비디오 또는 오디오 부분은 기본 스트림일 수 있다. 기본 스트림은 비디오 파일 내에 인캡슐레이션되기 전에 패킷화된 기본 스트림 (packetized elementary stream; PES) 으로 변환될 수도 있다. 동일한 리프리젠테이션 내에서, 스트림 ID 는 하나의 기본 스트림에 속하는 PES-패킷들을 다른 것들로부터 구별하는데 이용될 수도 있다. 기본 스트림의 데이터의 기본 단위는 패킷화된 기본 스트림 (PES) 패킷이다. 따라서, 코딩된 비디오 데이터는 일반적으로 기본 비디오 스트림들에 대응한다. 유사하게, 오디오 데이터는 하나 이상의 각기의 기본 스트림들에 대응한다.
ITU-T H.264/AVC 및 고효율 비디오 코딩 (HEVC) 표준과 같은 많은 비디오 코딩 표준들은, 에러 없는 비트스트림들을 위한 신택스, 시맨틱스, 및 디코딩 프로세스를 정의하고, 그것들 중의 어떤 것은 특정 프로파일 또는 레벨을 따른다. 비디오 코딩 표준들은 통상적으로 인코더를 특정하지 않지만, 인코더는 생성된 비트스트림들이 디코더에 부합하는 표준이라는 것을 보장하는 임무가 주어진다. 비디오 코딩 표준의 측면에서, "프로파일"은 알고리즘들, 특징들 (features), 또는 도구들 및 그것들에 적용되는 제약들의 서브셋트에 대응한다. H.264 표준에 의해 정의된 바와 같이, 예를 들어, "프로파일" 은 H.264 표준에 의해 특정되는 전체 비트스트림 신택스의 서브셋트이다. "레벨" 은 예를 들어, 디코더 메모리 및 컴퓨테이션과 같은 디코더 리소스 소비의 한계들에 대응하며, 이 한계들은 화상들의 해상도, 비트 레이트, 및 블록 프로세싱 레이트에 관련된다. 프로파일은 profile_idc (프로파일 표시자) 값으로 시그널링될 수도 있는 한편, 레벨은 level_idc (레벨 표시자) 값으로 시그널링될 수도 있다.
H.264 표준은, 예를 들어, 주어진 프로파일의 신택스에 의해 부과되는 경계들 내에서, 디코딩된 화상들의 특정된 사이즈와 같이 비트스트림 내의 신택스 엘리먼트들에 의해 취해진 값들에 의존하여 인코더들 및 디코더들의 성능에서의 큰 변화를 요구하는 것이 여전히 가능하다는 것을 인정한다. H.264 표준은 많은 애플리케이션들에서, 특정 프로파일 내에서 신택스의 모든 가정적 사용들을 처리하는 것이 가능한 디코더를 구현하는 것이 실용적이지도 않고 경제적이지도 않다는 것을 추가로 인정한다. 따라서, H.264 표준은 비트스트림에서 신택스 엘리먼트들의 값들에 부과되는 특정된 제약들의 셋트로서 "레벨" 을 정의한다. 이들 제약들은 값들에 대한 단순한 제한들일 수도 있다. 다르게는, 이들 제약들은 값들의 산술적 조합들 (예컨대, 화상 폭 곱하기 화상 높이 곱하기 초당 디코딩되는 화상들의 수) 에 대한 제약들의 형태를 취할 수도 있다. H.264 표준은 개개의 구현예들이 각각의 지원된 프로파일들에 대해 상이한 레벨을 지원할 수도 있다는 것을 추가로 규정한다.
프로파일에 부합하는 디코더는 보통은 프로파일에서 정의된 모든 특징들을 지원한다. 예를 들어, 코딩 특징으로서, B-화상 코딩은 H.264/AVC 의 베이스라인 프로파일에서 지원되지 않지만 H.264/AVC 의 다른 프로파일들에서 지원된다. 레벨에 부합하는 디코더는 그 레벨에서 정의된 한계들을 너머 리소스들을 요구하지 않는 임의의 비트스트림을 디코딩하는 것이 가능해야 한다. 프로파일들 및 레벨들의 정의들은 해석능력 (interpretability) 에 도움이 될 수도 있다. 예를 들어, 비디오 송신 동안, 한 쌍의 프로파일 및 레벨 정의들은 전체 송신 세션 동안에 협상되고 합의될 수도 있다. 보다 구체적으로는, H.264/AVC 에서, 레벨은 예를 들어, 처리될 필요가 있는 매크로블록들의 수, 디코딩된 화상 버퍼 (decoded picture buffer; DPB) 사이즈, 코딩된 화상 버퍼 (coded picture buffer; CPB) 사이즈, 수직 모션 벡터 범위, 2 개의 연속적인 MB 들 당 모션 벡터들의 최대 수, 및 B-블록이 8x8 픽셀들 미만의 서브-매크로블록 파티션들을 가질 수 있는지의 여부에 관한 제한들을 정의할 수도 있다. 이러한 방식으로, 디코더는, 디코더가 비트스트림을 적절히 디코딩하는 것이 가능한지의 여부를 결정할 수도 있다.
도 1 의 예에서, 콘텐츠 준비 디바이스 (20) 의 인캡슐레이션 유닛 (30) 은 코딩된 비디오 데이터를 포함하는 기본 스트림들을 비디오 인코더 (28) 로부터 그리고 코딩된 오디오 데이터를 포함하는 기본 스트림들을 오디오 인코더 (26) 로부터 수신한다. 일부 예들에서, 비디오 인코더 (28) 및 오디오 인코더 (26) 는 각각, 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들 (packetizers) 을 포함할 수도 있다. 다른 예들에서, 비디오 인코더 (28) 및 오디오 인코더 (26) 는 각각, 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 각기의 패킷화기들과 인터페이싱할 수도 있다. 또 다른 예들에서, 인캡슐레이션 유닛 (30) 은 인코딩된 오디오 및 비디오 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들을 포함할 수도 있다.
비디오 인코더 (28) 는 멀티미디어 콘텐츠의 비디오 데이터를 다양한 방식들로 인코딩하여, 다양한 비트레이트들에서 그리고 다양한 특성들, 이를테면 픽셀 해상도들, 프레임 레이트들, 다양한 코딩 표준들에 대한 준수 (conformance), 다양한 코딩 표준들에 대한 다양한 프로파일들 및/또는 프로파일들의 레벨들에 대한 준수, (예컨대, 2차원 또는 3차원 재생을 위한) 하나 또는 다수의 뷰들을 갖는 리프리젠테이션들, 또는 다른 그런 특성들을 갖는 멀티미디어 콘텐츠의 상이한 리프리젠테이션들을 생성할 수도 있다. 리프리젠테이션은, 이 개시물에서 사용된 바와 같이, 오디오 데이터, 비디오 데이터, 텍스트 데이터 (예컨대, 폐쇄된 캡션들에 대해), 또는 다른 이러한 데이터 중 하나를 포함할 수도 있다. 리프리젠테이션은 오디오 기본 스트림 또는 비디오 기본 스트림과 같은 기본 스트림을 포함할 수도 있다. 각각의 PES 패킷은 PES 패킷이 속한 기본 스트림을 식별하는 stream_id 를 포함할 수도 있다. 인캡슐레이션 유닛 (30) 은 기본 스트림들을 다양한 리프리젠테이션들의 비디오 파일들 (예컨대, 세그먼트들) 로 어셈블링하는 것을 담당한다.
인캡슐레이션 유닛 (30) 은 오디오 인코더 (26) 및 비디오 인코더 (28) 로부터 리프리젠테이션의 기본 스트림들을 위한 PES 패킷들을 수신하고 그 PES 패킷들로부터 대응하는 네트워크 추상화 계층 (network abstraction layer; NAL) 단위들을 형성한다. H.264/AVC (Advanced Video Coding) 의 예에서, 코딩된 비디오 세그먼트들은 NAL 유닛들 (units) 로 조직화되며, 그것들은 화상 전화 (video telephony), 스토리지 (storage), 브로드캐스트, 또는 스트리밍과 같은 "네트워크 친화적 (network-friendly)" 비디오 리프리젠테이션 어드레싱 애플리케이션들을 제공한다. NAL 유닛들은 비디오 코딩 계층 (Video Coding Layer; VCL) NAL 유닛들 및 비-VCL NAL 유닛들로 분류될 수 있다. VCL 유닛들은 코어 압축 엔진을 포함할 수도 있고 블록, 매크로블록, 및/또는 슬라이스 레벨 데이터를 포함할 수도 있다. 다른 NAL 유닛들은 비-VCL NAL 유닛들일 수도 있다. 일부 예들에서, 보통 프라이머리 (primary) 코딩된 화상으로서 나타나는 하나의 시간 인스턴스 (time instance) 에서의 코딩된 화상은, 하나 이상의 NAL 유닛들을 포함할 수도 있는, 액세스 유닛 내에 포함될 수도 있다.
비-VCL NAL 유닛들은 무엇보다 파라미터 셋트 NAL 유닛들 및 SEI NAL 유닛들을 포함할 수도 있다. 파라미터 셋트들은 (시퀀스 파라미터 셋트들 (sequence parameter sets; SPS) 에서) 시퀀스-레벨 헤더 정보 및 (화상 파라미터 셋트들 (picture parameter sets; PPS) 에서) 드물게 변화하는 화상-레벨 헤더 정보를 포함할 수도 있다. 파라미터 셋트들 (예컨대, PPS 및 SPS) 에 있어서, 드물게 변화하는 정보는 각 시퀀스 또는 화상에 대해 반복될 필요가 없고, 따라서, 코딩 효율이 향상될 수도 있다. 또한, 파라미터 셋트들의 사용은 중요한 헤더 정보의 대역외 송신을 가능하게 할 수도 있어, 에러 회복을 위한 중복성 송신에 대한 필요성을 회피할 수도 있다. 대역외 송신 예들에서, 파라미터 셋트 NAL 유닛들은 SEI NAL 유닛들과 같은, 다른 NAL 유닛들과는 상이한 채널을 통해 송신될 수도 있다.
또한, 인캡슐레이션 유닛 (30) 은 리프리젠테이션들의 특성들을 기술하는 미디어 프레젠테이션 디스크립터 (MPD) 와 같은, 매니페스트 파일을 형성할 수도 있다. 인캡슐레이션 유닛 (30) 은 확장성 마크업 언어 (extensible markup language; XML) 에 따라 MPD 를 포맷 (format) 할 수도 있다. 인캡슐레이션 유닛 (30) 은 멀티미디어 콘텐츠의 하나 이상의 리프리젠테이션들에 대한 데이터를 매니페스트 파일 (예를 들어, MPD) 과 함께 출력 인터페이스 (32) 에 제공할 수도 있다. 출력 인터페이스 (32) 는 네트워크 인터페이스 또는 저장 매체에 기록하기 위한 인터페이스, 예컨대 범용 직렬 버스 (USB) 인터페이스, CD 또는 DVD 라이터 또는 버너 (burner), 자기적 또는 플래시 저장 매체들로에 대한 인터페이스, 또는 미디어 데이터를 저장하거나 송신하기 위한 다른 인터페이스들을 포함할 수도 있다. 인캡슐레이션 유닛 (30) 은 멀티미디어 콘텐츠의 리프리젠테이션들의 각각의 데이터를 출력 인터페이스 (32) 에 제공할 수도 있는데, 이것은 그 데이터를 네트워크 송신 또는 저장 매체들을 통하여 서버 디바이스 (60) 로 전송할 수도 있다. 도 1 의 예에서, 서버 디바이스 (60) 는 각기의 매니페스트 파일 (66) 및 하나 이상의 리프리젠테이션들 (68A-68N) (리프리젠테이션들 (68)) 을 각각 포함하는 다양한 멀티미디어 콘텐츠 (64) 를 저장하는 저장 매체 (62) 를 포함한다. 일부 예들에서, 출력 인터페이스 (32) 는 또한 데이터를 직접 네트워크 (74) 에 전송할 수도 있다.
일부 예들에서, 리프리젠테이션들 (68) 은 적응 셋트들로 분리될 수도 있다. 즉, 리프리젠테이션들 (68) 의 다양한 서브셋트들은 각기의 특성들의 공통 셋트들, 이를테면 코덱, 프로파일 및 레벨, 해상도, 뷰들의 수, 세그먼트들에 대한 파일 포맷, 디코딩되고 예컨대 스피커들에 의해 제시될 리프리젠테이션 및/또는 오디오 데이터로 디스플레이될 텍스트의 언어 또는 다른 특성들을 식별할 수도 있는 텍스트 타입 정보, 적응 셋트에서 리프리젠테이션들에 대한 장면의 관점에서 카메라 각도 또는 실세계 카메라를 기술할 수도 있는 카메라 각도 정보, 특정 청중들에 대한 콘텐츠 적합성 (suitability) 을 기술하는 등급 정보 등을 포함할 수도 있다.
매니페스트 파일 (66) 은 특정한 적응 셋트들, 및 적응 셋트들에 대한 공통 특성들에 대응하는 리프리젠테이션들 (68) 의 서브셋트들을 나타내는 데이터를 포함할 수도 있다. 매니페스트 파일 (66) 은 또한 적응 셋트들의 개개의 리프리젠테이션들에 대한 개개의 특성들, 이를테면 비트레이트들을 나타내는 데이터를 포함할 수도 있다. 이런 방식으로, 적응 셋트는 단순화된 네트워크 대역폭 적응을 제공할 수도 있다. 적응 셋트에서의 리프리젠테이션들은 매니페스트 파일 (66) 의 적응 셋트 엘리먼트의 자식 (child) 엘리먼트들을 이용하여 나타내어질 수도 있다.
서버 디바이스 (60) 는 요청 프로세싱 유닛 (70) 과 네트워크 인터페이스 (72) 를 포함한다. 일부 예들에서, 서버 디바이스 (60) 는 복수의 네트워크 인터페이스들을 포함할 수도 있다. 더욱이, 서버 디바이스 (60) 의 특징들의 임의의 것 또는 모두는 콘텐츠 전달 네트워크의 다른 디바이스들, 이를테면 라우터들, 브릿지들, 프록시 디바이스들, 스위치들, 또는 다른 디바이스들 상에서 구현될 수도 있다. 일부 예들에서, 콘텐츠 전달 네트워크의 중간 디바이스들은 멀티미디어 콘텐츠 (64) 의 데이터를 캐싱하고, 서버 디바이스 (60) 의 그것들에 실질적으로 부합하는 컴포넌트들을 포함할 수도 있다. 일반적으로, 네트워크 인터페이스 (72) 는 네트워크 (74) 를 통해 데이터를 전송하고 수신하도록 구성된다.
요청 프로세싱 유닛 (70) 은, 저장 매체 (72) 의 데이터에 대해, 클라이언트 디바이스들, 이를테면 클라이언트 디바이스 (40) 로부터 네트워크 요청들을 수신하도록 구성된다. 예를 들어, 요청 프로세싱 유닛 (70) 은, R. Fielding 등의 RFC 2616, "Hypertext Transfer Protocol - HTTP/1.1", Network Working Group, IETF, 1999년 6월에서 기술된 바와 같이, 하이퍼텍스트 전송 프로토콜 (HTTP) 버전 1.1 을 구현할 수도 있다. 다시 말하면, 요청 프로세싱 유닛 (70) 은 HTTP GET 또는 부분적 GET 요청들을 수신하고 그 요청들에 응답하여 멀티미디어 콘텐츠 (64) 의 데이터를 제공하도록 구성될 수도 있다. 그 요청들은 리프리젠테이션들 (68) 중 하나의 리프리젠테이션의 세그먼트를, 예컨대, 그 세그먼트의 URL 을 이용하여 특정할 수도 있다. 일부 예들에서, 요청들은 또한 세그먼트의 하나 이상의 바이트 범위들을 특정할 수도 있고, 따라서, 부분 GET 요청들을 포함할 수도 있다. 요청 프로세싱 유닛 (70) 은 리프리젠테이션들 (68) 중 하나의 리프리젠테이션의 세그먼트의 헤더 데이터를 제공하기 위해 HTTP HEAD 요청들을 서비스하도록 추가로 구성될 수도 있다. 어느 경우에도, 요청 프로세싱 유닛 (70) 은 요청된 데이터를 요청 디바이스, 이를테면 클라이언트 디바이스 (40) 에 제공하기 위해 요청들을 처리하도록 구성될 수도 있다.
추가적으로 또는 대안적으로, 요청 프로세싱 유닛 (70) 은 eMBMS 와 같은 브로드캐스트 또는 멀티캐스트 프로토콜을 통해 미디어 데이터를 전달하도록 구성될 수도 있다. 콘텐츠 준비 디바이스 (20) 는 기술된 것과 실질적으로 동일한 방식으로 DASH 세그먼트들 및/또는 서브-세그먼트들을 형성할 수도 있지만, 서버 디바이스 (60) 는 eMBMS 또는 다른 브로드캐스트 또는 멀티캐스트 네트워크 전송 프로토콜을 이용하여 이들 세그먼트들 또는 서브-세그먼트들을 전달할 수도 있다. 예를 들어, 요청 프로세싱 유닛 (70) 은 클라이언트 디바이스 (40) 로부터 멀티캐스트 그룹 조인 요청을 수신하도록 구성될 수도 있다. 즉, 서버 디바이스 (60) 는, 특정 미디어 콘텐츠 (예컨대, 라이브 이벤트의 브로드캐스트) 와 연관된, 클라이언트 디바이스 (40) 를 포함하는, 클라이언트 디바이스들에 멀티캐스트 그룹과 연관된 인터넷 프로토콜 (Internet protocol; IP) 어드레스를 광고할 수도 있다. 클라이언트 디바이스 (40) 는, 다시, 멀티캐스트 그룹에 조인하기 위한 요청을 제출할 수도 있다. 이 요청은 네트워크 (74), 예컨대, 네트워크 (74) 를 구성하는 라우터들을 통해 전파될 수도 있어, 그 라우터들은 클라이언트 디바이스 (40) 와 같은 가입 클라이언트 디바이스들에 멀티캐스트 그룹과 연관된 IP 어드레스를 목적지로 하는 트래픽을 다이렉팅하도록 야기될 수도 있다.
도 1 의 예에서 도시된 바와 같이, 멀티미디어 콘텐츠 (64) 는, 미디어 프레젠테이션 디스크립션 (MPD) 에 대응할 수도 있는 매니페스트 파일 (66) 을 포함한다. 매니페스트 파일 (66) 은 상이한 대안적 리프리젠테이션들 (68) (예컨대, 상이한 품질들을 갖는 비디오 서비스들) 의 서술들을 포함할 수도 있고, 그 디스크립션 (description) 은, 예컨대, 코덱 정보, 프로파일 값, 레벨 값, 비트레이트, 및 리프리젠테이션들 (68) 의 다른 서술적 특성들을 포함할 수도 있다. 클라이언트 디바이스 (40) 는 미디어 프레젠테이션의 MPD 를 취출하여 리프리젠테이션들 (68) 의 세그먼트들에 어떻게 액세스할 지를 결정할 수도 있다.
특히, 취출 유닛 (52) 은 클라이언트 디바이스 (40) 의 구성 데이터 (configuration data) (미도시) 를 취출하여 비디오 디코더 (48) 의 디코딩 능력들 및 비디오 출력 (44) 의 렌더링 능력들 (rendering capabilities) 을 결정할 수도 있다. 구성 데이터는 클라이언트 디바이스 (40) 의 사용자에 의하여 선택되는 언어 선호도, 클라이언트 디바이스 (40) 의 사용자에 의하여 설정된 심도 선호도들에 대응하는 하나 이상의 카메라 퍼스펙티브들, 및/또는 클라이언트 디바이스 (40) 의 사용자에 의하여 선택된 등급 선호도 중 임의의 것 또는 전부를 또한 포함할 수도 있다. 취출 유닛 (52) 은, 예를 들어, HTTP GET 및 부분 GET 요청들을 제출하도록 구성되는 미디어 클라이언트 또는 웹 브라우저를 포함할 수도 있다. 취출 유닛 (52) 은 클라이언트 디바이스 (40) 의 하나 이상의 프로세서들 또는 프로세싱 유닛들 (미도시) 에 의하여 실행되는 소프트웨어 명령들에 대응할 수도 있다. 몇몇 예들에서, 취출 유닛 (52) 에 대하여 기술된 기능성의 전부 또는 부분들은 하드웨어로, 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합으로 구현될 수도 있는데, 여기서 필요한 하드웨어가 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위하여 제공될 수도 있다.
취출 유닛 (52) 은 클라이언트 디바이스 (40) 의 디코딩 및 렌더링 능력들을 매니페스트 파일 (66) 의 정보에 의하여 표시되는 리프리젠테이션들 (68) 의 특성들과 비교할 수도 있다. 취출 유닛 (52) 은 처음에 적어도 매니페스트 파일 (66) 의 일부를 취출하여 리프리젠테이션들 (68) 의 특성들을 결정할 수도 있다. 예를 들어, 취출 유닛 (52) 은 이 개시의 기법들에 따라, 하나 이상의 적응 셋트들의 특성들을 기술하는 매니페스트 파일 (66) 일부를 요청할 수도 있다. 취출 유닛 (52) 은 클라이언트 디바이스 (40) 의 코딩 및 렌더링 능력들에 의해 만족될 수 있는 특성들을 갖는 리프리젠테이션들 (68) (예컨대, 적응 셋트) 의 서브셋트를 선택할 수도 있다. 취출 유닛 (52) 은 그 다음, 적응 셋트 내의 리프리젠테이션들에 대한 비트레이트들을 결정하고, 네트워크 대역폭의 현재 이용가능한 양을 결정하며, 그리고 네트워크 대역폭에 의하여 만족될 수 있는 비트레이트를 가지는 리프리젠테이션들 중 하나로부터 세그먼트들을 취출할 수도 있다.
일반적으로, 더 높은 비트레이트 리프리젠테이션들은 더 높은 품질의 비디오 재생을 도출할 수도 있는 한편, 더 낮은 비트레이트 리프리젠테이션들은 가용 네트워크 대역폭이 감소할 때 충분한 품질의 비디오 재생을 제공할 수도 있다. 이에 따라, 가용 네트워크 대역폭이 상대적으로 높은 경우에는, 취출 유닛 (52) 은 데이터를 상대적으로 높은 비트레이트 리프리젠테이션들로부터 취출할 수도 있는 반면에, 가용 네트워크 대역폭이 낮은 경우에는, 취출 유닛 (52) 은 데이터를 상대적으로 낮은 비트레이트 리프리젠테이션들로부터 취출할 수도 있다. 이러한 방식으로, 클라이언트 디바이스 (40) 는 네트워크 (74) 의 변동하는 네트워크 대역폭 이용가능성에 적응하면서도 멀티미디어 데이터를 네트워크 (74) 를 통해 스트리밍할 수도 있다.
추가적으로 또는 대안적으로, 취출 유닛 (52) 은 eMBMS 또는 IP 멀티캐스트와 같은, 브로드캐스트 또는 멀티캐스트 네트워크 프로토콜에 따라 데이터를 수신하도록 구성될 수도 있다. 이러한 예들에서, 취출 유닛 (52) 은 특정 미디어 콘텐츠와 연관된 멀티캐스트 네트워크 그룹에 조인하기 위한 요청을 제출할 수도 있다. 멀티캐스트 그룹에 조인한 후에, 취출 유닛 (52) 은 서버 디바이스 (60) 또는 콘텐츠 준비 디바이스 (20) 에 발행된 추가적인 요청들 없이 멀티캐스트 그룹의 데이터를 수신할 수도 있다. 취출 유닛 (52) 은, 멀티캐스트 그룹의 데이터가 더 이상 필요 없을 때 멀티캐스트 그룹을 떠나기 위한, 예컨대 다른 멀티캐스트 그룹으로 채널들을 변경하거나 재생을 중지하기 위한 요청을 제출할 수도 있다.
네트워크 인터페이스 (54) 는, 선택된 리프리젠테이션의 세그먼트들의 데이터를 수신하고 취출 유닛 (52) 에 제공할 수도 있고, 이 취출 유닛 (52) 은 다시 그 세그먼트들을 디캡슐레이션 (decapsulation) 유닛 (50) 에 제공할 수도 있다. 디캡슐레이션 유닛 (50) 은 비디오 파일의 엘리먼트들을 구성성분인 PES 스트림들로 디캡슐레이션하며, PES 스트림들을 패킷해제하여 인코딩된 데이터를 취출하고, 예컨대, 스트림의 PES 패킷 헤더들에 의해 나타내어진 바와 같이, 인코딩된 데이터가 오디오 스트림의 부분인지 또는 비디오 스트림의 부분인지에 따라, 오디오 디코더 (46) 또는 비디오 디코더 (48) 중 어느 일방에 인코딩된 데이터를 전송할 수도 있다. 오디오 디코더 (46) 는 인코딩된 오디오 데이터를 디코딩하고 디코딩된 오디오 데이터를 오디오 출력부 (42) 에 전송하는 한편, 비디오 디코더 (48) 는 인코딩된 비디오 데이터를 디코딩하고 스트림의 복수의 뷰들을 포함할 수도 있는 디코딩된 비디오 데이터를 비디오 출력부 (44) 에 전송한다.
비디오 인코더 (28), 비디오 디코더 (48), 오디오 인코더 (26), 오디오 디코더 (46), 인캡슐레이션 유닛 (30), 취출 유닛 (52), 및 디캡슐레이션 유닛 (50) 각각은 적용가능한 경우에 다양한 적합한 처리 회로들, 예컨대 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 이산 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들 중 임의의 것으로서 구현될 수도 있다. 비디오 인코더 (28) 및 비디오 디코더 (48) 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있는데, 이들 중 어떤 것은 결합된 비디오 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다. 마찬가지로, 오디오 인코더 (26) 및 오디오 디코더 (46) 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있는데, 이들 중 임의의 것은 결합된 코덱의 일부로서 통합될 수도 있다. 비디오 인코더 (28), 비디오 디코더 (48), 오디오 인코더 (26), 오디오 디코더 (46), 인캡슐레이션 유닛 (30), 취출 유닛 (52), 및/또는 디캡슐레이션 유닛 (50) 을 포함하는 장치는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 예컨대 셀룰러 전화기를 포함할 수도 있다.
클라이언트 디바이스 (40), 서버 디바이스 (60), 및/또는 콘텐츠 준비 디바이스 (20) 는 이 개시의 기법들에 따라 동작하도록 구성될 수도 있다. 예시를 위해, 이 개시는 클라이언트 디바이스 (40) 와 서버 디바이스 (60) 에 대해 이들 기법들을 기술한다. 하지만, 콘텐츠 준비 디바이스 (20) 가 서버 디바이스 (60) 대신에 (또는 추가적으로) 이들 기법들을 수행하도록 구성될 수도 있다.
인캡슐레이션 유닛 (30) 은, NAL 유닛이 속하는 프로그램을 식별하는 헤더, 및 예컨대, 오디오 데이터, 비디오 데이터, 또는 NAL 유닛이 대응하는 반송 또는 프로그램 스트림을 기술하는 데이터와 같은 페이로드를 포함하는 NAL 유닛들을 형성할 수도 있다. 예를 들어, H.264/AVC 에서, NAL 유닛은 1-바이트 헤더 및 가변 사이즈의 페이로드를 포함한다. 페이로드에 비디오 데이터를 포함하는 NAL 유닛은 다양한 입도 레벨들 (granularity levels) 의 비디오 데이터를 포함할 수도 있다. 예를 들어, NAL 유닛은 비디오 데이터의 블록, 복수의 블록들, 비디오 데이터의 슬라이스, 또는 비디오 데이터의 전체 화상을 포함할 수도 있다. 인캡슐레이션 유닛 (30) 은 기본 스트림들의 PES 패킷들의 형태로 비디오 인코더 (28) 로부터 인코딩된 비디오 데이터를 수신할 수도 있다. 인캡슐레이션 유닛 (30) 은 각각의 기본 스트림을 대응하는 프로그램과 연관시킬 수도 있다.
인캡슐레이션 유닛 (30) 은 또한 복수의 NAL 유닛들로부터 액세스 유닛들을 어셈블링할 수도 있다. 일반적으로, 액세스 유닛은 비디오 데이터의 프레임, 및 오디오 데이터가 이용가능할 때 그 프레임에 대응하는 오디오 데이터를 나타내기 위한 하나 이상의 NAL 유닛들을 포함할 수도 있다. 액세스 유닛은 일반적으로 하나의 출력 시간 인스턴스에 대한 모든 NAL 유닛들, 예컨대, 하나의 타임 인스턴스에 대한 모든 오디오 및 비디오 데이터를 포함한다. 예를 들어, 각각의 뷰가 20 초당 프레임 (fps) 의 프레임 레이트를 가지는 경우에, 각각의 시간 인스턴스는 0.05 초의 시간 간격에 대응할 수도 있다. 이 시간 간격 동안, 동일한 액세스 유닛 (동일한 시간 인스턴스) 의 모든 뷰들에 대한 특정 프레임들은 동시에 렌더링될 수도 있다. 일 예에서, 액세스 유닛은 하나의 시간 인스턴스에서 코딩된 화상을 포함할 수도 있고, 이는 프라이머리 코딩된 화상으로서 제시될 수도 있다.
이에 따라, 액세스 유닛은 공통 시간 인스턴스의 모든 오디오 및 비디오 프레임들, 예컨대, 시간 X 에 대응하는 모든 뷰들을 포함할 수도 있다. 이 개시는 또한, 특정 뷰의 인코딩된 화상을 "뷰 컴포넌트 (view component)" 로서 지칭한다. 즉, 뷰 컴포넌트는 특정 시간에서 특정 뷰에 대한 인코딩된 화상 (또는 프레임) 을 포함할 수도 있다. 따라서, 액세스 유닛은 공통 시간 인스턴스의 모든 뷰 컴포넌트들을 포함하는 것으로서 정의될 수도 있다. 액세스 유닛들의 디코딩 순서는 반드시 출력 또는 디스플레이 순서와 동일할 필요는 없다.
미디어 프레젠테이션은 미디어 프레젠테이션 디스크립션 (MPD) 을 포함할 수도 있고, 이 미디어 프레젠테이션 디스크립션은 상이한 대안적인 리프리젠테이션들 (예를 들어 상이한 품질들을 갖는 비디오 서비스들) 의 디스크립션을 포함할 수도 있고, 디스크립션은 예를 들어 코덱 정보, 프로파일 값, 및 레벨 값을 포함할 수도 있다. MPD 는 매니페스트 파일 (66) 과 같은 매니페스트 파일의 일 예이다. 클라이언트 디바이스 (40) 는 어떻게 다양한 프레젠테이션들의 무비 프래그먼트들을 액세스할지를 결정하기 위해 미디어 프레젠테이션의 MPD 를 취출할 수도 있다. 무비 프래그먼트들은 비디오 파일들의 무비 프래그먼트 박스들 (moof boxes) 에 로케이팅될 수도 있다.
매니페스트 파일 (66) (이는, 예를 들어, MPD를 포함할 수도 있음) 이 리프리젠테이션들 (68) 의 세그먼트들의 가용성을 광고할 수도 있다. 다시 말하면, MPD 는 리프리젠테이션들 (68) 중 하나의 리프리젠테이션의 첫 번째 세그먼트가 이용가능하게 되는 벽시계 시간을 표시하는 정보, 뿐만 아니라 리프리젠테이션들 (68) 내의 세그먼트들의 지속기간들을 표시하는 정보를 포함할 수도 있다. 이런 방식으로, 클라이언트 디바이스 (40) 의 취출 유닛 (52) 은 특정 세그먼트에 선행하는 세그먼트들의 시작 시간 뿐만 아니라 지속기간들에 기초하여, 각각의 세그먼트가 이용가능한 경우를 결정할 수도 있다.
인캡슐레이션 유닛 (30) 이 수신된 데이터에 기초하여 NAL 유닛들 및/또는 액세스 유닛들을 비디오 파일로 어셈블링한 후에, 인캡슐레이션 유닛 (30) 은 비디오 파일을 출력을 위해 출력 인터페이스 (32) 로 패스 (pass) 할 수도 있다. 일부 예들에서, 인캡슐레이션 유닛 (30) 은 비디오 파일을 로컬로 (locally) 저장할 수도 있고, 또는, 비디오 파일을 직접 클라이언트 디바이스 (40) 에 전송하기보다는 비디오 파일을 출력 인터페이스 (32) 를 통해 원격 서버에 전송할 수도 있다. 출력 인터페이스 (32) 는, 예를 들어, 송신기, 트랜시버, 예컨대 광학 드라이브, 자기 매체 드라이브 (예컨대, 플로피 드라이브) 와 같은 컴퓨터 판독가능 매체에 데이터를 기록하기 위한 디바이스, 범용 직렬 버스 (USB) 포트, 네트워크 인터페이스, 또는 다른 출력 인터페이스를 포함할 수도 있다. 출력 인터페이스 (32) 는 비디오 파일을, 예를 들어 송신 신호, 자기 매체, 광학 매체, 메모리, 플래시 드라이브, 또는 다른 컴퓨터 판독가능 매체와 같은 컴퓨터 판독가능 매체에 출력한다.
네트워크 인터페이스 (54) 는 네트워크 (74) 를 통해 NAL 유닛 또는 액세스 유닛을 수신하고 그 NAL 유닛 또는 액세스 유닛을 취출 유닛 (52) 을 경유하여, 디캡슐레이션 유닛 (50) 에 제공한다. 디캡슐레이션 유닛 (50) 은 비디오 파일의 엘리먼트들을 구성요소적 PES 스트림들로 디캡슐레이션하고, 그 PES 스트림들을 패킷해제하여 인코딩딘 데이터를 취출하며, 그 인코딩된 데이터가 예를 들어 스트림의 PES 패킷 헤더들에 의해 표시되는 바와 같이, 오디오 또는 비디오 스트림의 일부인지 여부에 따라, 오디오 디코더 (46) 또는 비디오 디코더 (48) 중 어느 일방으로 인코딩된 데이터를 전송할 수도 있다. 오디오 디코더 (46) 는 인코딩된 오디오 데이터를 디코딩하고 디코딩된 오디오 데이터를 오디오 출력부 (42) 로 전송하는 한편, 비디오 디코더 (48) 는 인코딩된 비디오 데이터를 디코딩하고 스트림의 복수의 뷰들을 포함할 수도 있는 디코딩된 비디오 데이터를 비디오 출력부 (44) 로 전송한다.
비디오 코딩 표준들은, 스케일러블 비디오 코딩 (SVC) 및 멀티뷰 비디오 코딩 (MVC) 확장들을 포함하는, ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 또는 ISO/IEC MPEG-4 AVC, 및, 스케일러블 코딩 확장 (즉, 스케일러블 고-효율 비디오 코딩, SHVC), 멀티뷰 확장 (즉, 멀티뷰 고 효율 비디오 코딩, MV-HEVC), 및 3D 확장 (즉, 3D 고 효율 비디오 코딩, 3D-HEVC) 을 포함하는, ITU-T H.265 및 ISO/IEC 23008-2 로서 또한 알려진, 고-효율 비디오 코딩 (HEVC) 을 포함한다.
파일 포맷들 및 파일 포맷 표준들이 이제 간략하게 논의될 것이다. 파일 포맷 표준들은, ISO 기초 미디어 파일 포맷 (ISOBMFF, ISO/IEC 14496-12, 이하, "ISO/IEC 14996-12"), 및, MPEG-4 파일 포맷 (ISO/IEC 14496-15), 3GPP 파일 포맷 (3GPP TS 26.244), 및 AVC (ISO/IEC 14496-15, 이하 "ISO/IEC 14996-15") 및 그것의 확장들 뿐만 아니라 HEVC 및 그것의 확장들을 위한 파일 포맷들을 포함하는 ISO/IEC 14496-15 를 포함하는 ISOBMFF 로부터 도출된 다른 파일 포맷 표준들을 포함한다. 따라서, ISO/IEC 14496-12 는 ISO 기초 미디어 파일 포맷을 명시한다. 다른 문서들은 특정 애플리케이션들을 위해 ISO 기초 미디어 파일 포맷을 확장한다. 실례로, ISO/IEC 14496-15 는 ISO 기초 미디어 파일 포맷에서 NAL 유닛 구조화된 비디오의 캐리지를 기술한다. H.264/AVC 및 HEVC, 및 그것들의 확장들은 NAL 유닛 구조화된 비디오의 예들이다. ISO/IEC 14496-15 는 H.264/AVC NAL 유닛들의 캐리지를 기술하는 섹션들을 포함한다. 추가적으로, ISO/IEC 14496-15 의 섹션 8 은 HEVC NAL 유닛들의 캐리지를 기술한다. 따라서, ISO/IEC 14496-15 의 섹션 8 은 HEVC 파일 포맷을 기술하기 위한 것이라고 말할 수 있다. 114 차 MPEG 회의 후에, 수개의 국가 단체들로부터 수신된 코멘트들에 기초하여, ISO/IEC 14496-15 드래프트 명세의 새로운 버전에 적용될 ISO/IEC 14496-15 에 대한 몇몇 변경들을 포함하는 처분 문서가 준비디었다. 이 처분 문서는 "MPEG 아웃풋 문서 N15297" 로서 지칭된다.
ISOBMFF 는 AVC 파일 포맷과 같은 많은 코덱 인캡슐레이션 포맷들에 대한, 그리고 MPEG-4 파일 포맷, 3GPP 파일 포맷 (3GP), 및 DVB 파일 포맷과 같은 많은 멀티미디어 컨테이너 포맷들에 대한 기초로서 사용된다. 오디오 및 비디오와 같은 연속적 미디어에 추가하여, 이미지들 뿐만 아니라 메타데이터와 같은 정적 미디어가 ISOBMFF 를 준수하는 파일에 저장될 수 있다. ISOBMFF 에 따라 구조화된 파일들은, 로컬 미디어 파일 재생, 원격 파일의 진행적 다운로딩, HTTP 를 통한 동적 적응형 스트리밍 (DASH) 를 위한 세그먼트들, 스트리밍될 콘텐츠에 대한 컨테이너들 및 그것의 패킷화 명령들, 및 수신된 실시간 미디어 스트림들의 레코딩을 포함하는, 많은 목적들을 위해 사용될 수도 있다. 따라서, 원래 저장을 위해 설계되었음에도 불구하고, ISOBMFF 는 스트리밍을 위해, 예컨대 진행적 다운로드 또는 DASH 를 위해, 가치 있는 것으로 판명되었다. 스트리밍 목적들을 위해, ISOBMFF 에서 정의된 무비 프래그먼트들이 사용될 수 있다. 오디오 및 비디오와 같은 연속적 미디어에 추가하여, 이미지들 뿐만 아니라 메타데이터와 같은 정적 미디어가 ISOBMFF 를 준수하는 파일에 저장될 수 있다.
HEVC 파일 포맷에 따른 파일은 박스들이라고 불리는 일련의 오브젝트들을 포함할 수도 있다. 박스 (box) 는 고유 타입 식별자 및 길이에 의해 정의된 객체-지향 빌딩 블록일 수도 있다. 박스는, 4-문자 코딩된 박스 타입, 박스의 바이트 카운트, 및 페이로드를 포함하는, ISOBMFF 에서의 기본적 신택스 구조이다. 달리 말하면, 박스는 코딩된 박스 타입, 박스의 바이트 카운트, 및 페이로드를 포함하는 신택스 구조일 수도 있다. 일부 경우들에서, HEVC 파일 포맷에 따른 파일에서의 모든 데이터는 박스들 내에 포함될 수도 있고, 박스에 없는 파일에서의 데이터는 존재하지 않을 수도 있다. 따라서, ISOBMFF 파일은 박스들의 시퀀스로 이루어지고, 박스들은 다른 박스들을 포함할 수도 있다. 실례로, 박스의 페이로드는 하나 이상의 추가적인 박스들을 포함할 수도 있다. 이 개시물에서의 다른 곳에서 상세히 설명되는 도 9 는, 본 개시의 하나 이상의 기법들에 따른, 파일 내에서의 예시적인 박스들을 나타낸다.
ISOBMFF 에 따른 파일은 다양한 타입들의 박스들을 포함할 수도 있다. 예를 들어, ISOBMFF 에 따른 파일은, 파일 타입 박스, 미디어 데이터 박스, 무비 박스, 무비 프래그먼트 박스 등을 포함할 수도 있다. 이 예에서, 파일 타입 박스는 파일 타입 및 호환성 정보를 포함한다. 미디어 데이터 박스는 샘플들 (예컨대, 코딩된 화상들) 을 포함할 수도 있다. 무비 박스 (Movie box) ("moov") 는 파일에 존재하는 연속적 미디어 스트림들에 대한 메타데이터를 포함한다. 연속적 미디어 스트림들의 각각은 트랙으로서 파일에서 표현될 수도 있다. 실례로, 무비 박스는 무비에 관한 메타데이터 (예컨대, 샘플들 사이의 논리적 및 타이밍 관계들, 및 또한 샘플들의 로케이션들에 대한 포인터들) 를 포함할 수도 있다. 무비 박스들은 수개의 타입들의 서브-박스들을 포함할 수도 있다. 무비 박스에서의 서브-박스들은 하나 이상의 트랙 박스들을 포함할 수도 있다. 트랙 박스는 무비의 개별 트랙에 관한 정보를 포함할 수도 있다. 트랙 박스는 단일 트랙의 전체 정보를 명시하는 트랙 헤더 박스를 포함할 수도 있다. 또한, 트랙 박스는 미디어 정보 박스를 포함하는 미디어 박스를 포함할 수도 있다. 미디어 정보 박스는 트랙에서 미디어 샘플들을 인덱싱하는 데이터를 포함하는 샘플 테이블 박스를 포함할 수도 있다. 샘플 테이블 박스에서의 정보는 샘플들을 시간들에서 로케이팅시키고, 그리고 트랙의 샘플들의 각각에 대해, 타입, 사이즈, 컨테이너, 및 샘플의 그 컨테이너 내로의 오프셋을 결정하기 위해 사용될 수도 있다. 따라서, 트랙에 대한 메타데이터는 트랙 박스 (Track box) ("trak") 에서 인클로징되는 한편, 트랙의 미디어 콘텐츠는 미디어 데이터 박스 (Media Data box) ("mdat") 에서 인클로징되거나 아니면 별개의 파일에서 직접적으로 인클로징된다. 트랙들에 대한 미디어 콘텐츠는 오디오 또는 비디오 액세스 유닛들과 같은 샘플들의 시퀀스를 포함하거나 그러한 샘플들의 시퀀스로 이루어진다.
ISOBMFF 는 다음과 같은 타입들의 트랙들을 명시한다: 기본적 미디어 스트림을 포함하는 미디어 트랙, 미디어 송신 명령들을 포함하거나 아니면 수신된 패킷 스트림을 표현하는 힌트 트랙, 및 시간-동기화된 메타데이터를 포함하는 타임드 메타데이터 트랙. 트랙에서 사용되는 코딩 또는 인캡슐레이션 포맷 및 그 포맷을 프로세싱하기 위해 사용되는 초기화 데이터를 각각 제공하는, 각 트랙에 대한 메타데이터는 샘플 디스크립션 엔트리들의 리스트를 포함한다. 각 샘플은 트랙의 샘플 디스크립션 엔트리들 중 하나와 연관된다.
ISOBMFF 는 다양한 메커니즘들로 샘플-특정적 메타데이터를 명시하는 것을 가능하게 한다. 샘플 테이블 박스 (Sample Table box) ("stbl") 내의 특정 박스들은 공통의 필요성들에 응답하도록 표준화되었다. 예를 들어, 싱크 샘플 박스 (Sync Sample box) ("stss") 는 트랙의 랜덤 액세스 샘플들을 리스팅하기 위해 사용된다. 샘플 그룹핑 메커니즘은 파일에서 샘플 그룹 디스크립션 엔트리로서 명시된 동일한 특성을 공유하는 샘플들의 그룹들 내로의 4-문자 그룹핑 타입에 따른 샘플들의 맵핑을 가능하게 한다. 수개의 그룹핑 타입들이 ISOBMFF 에서 명시되었다. 샘플 테이블 박스는 트랙에서 메타데이터 샘플들의 모든 시간 및 데이터 인덱싱을 포함하는 샘플 테이블을 포함한다. 샘플 테이블 박스에서의 테이블들을 이용하면, 샘플들을 시간에서 로케이팅시키고, 그것들의 타입 (예컨대, I-프레임인지 또는 아닌지) 을 결정하고, 그것들의 사이즈, 컨테이너, 및 그 컨테이너 내로의 오프셋을 결정하는 것이 가능할 수도 있다.
예를 들어, 싱크 샘플 박스 ("stss") 는 샘플 테이블 박스 내의 박스이다. 싱크 샘플 박스는 트랙의 랜덤 액세스 샘플들을 리스팅하기 위해 사용된다. 이 개시물은 싱크 샘플 박스에 의해 리스팅된 샘플을 싱크 샘플로서 지칭할 수도 있다. 다른 예에서, 샘플 그룹핑 메커니즘은 파일에서 샘플 그룹 디스크립션 엔트리로서 명시된 동일한 특성을 공유하는 샘플들의 그룹들 내로의 4-문자 그룹핑 타입에 따른 샘플들의 맵핑을 가능하게 한다. 수개의 그룹핑 타입들이 ISOBMFF 에서 명시되었다.
ISOBMFF 명세는 DASH 에 있어서의 사용을 위해 6 가지 타입들의 스트림 액세스 포인트 (Stream Access Point; SAP) 들을 명시한다. 처음 2 개의 SAP 타입들 (타입들 1 및 2) 은 H.264/AVC 및 HEVC 에서의 IDR 화상들에 대응한다. 제 3 SAP 타입 (타입 3) 은 오픈-GOP 랜덤 액세스 포인트들 따라서 HEVC 에서의 BLA 또는 CRA 화상들에 대응한다. 제 4 SAP 타입 (타입 4) 은 GDR 랜덤 액세스 포인트들에 대응한다.
무비 프래그먼트 박스는 최상위-레벨 박스이다. 각각의 무비 프래그먼트 박스는 무비 박스에서 이전부터 있었을 정보를 제공한다. 무비 프래그먼트 박스는 하나 이상의 트랙 프래그먼트 ("traf") 박스들을 포함할 수도 있다. 무비 프래그먼트 내에, 트랙 당 0 개 또는 그보다 많은 트랙 프래그먼트들의 셋트가 존재한다. 트랙 프래그먼트들은 다시, 0 개 또는 그보다 많은 트랙 런들을 포함하고, 이 트랙 런들의 각각은 그 트랙에 대한 샘플들의 연속적인 런을 기록한다. 실례로, 각 트랙 런 (run) 은 디코딩 순서와 같이 소정 순서로 연속적인 화상들의 샘플들을 포함할 수도 있다. 트랙 프래그먼트 박스는 14996-12 명세에서 정의되고, 하나 이상의 트랙 프래그먼트들에 대한 메타데이터를 포함한다. 실례로, 트랙 프래그먼트 박스는 트랙 ID, 베이스 데이터 오프셋, 샘플 디스크립션 인덱스, 디폴트 샘플 지속기간, 디폴트 샘플 사이즈, 및 디폴트 샘플 플래그들을 나타내는 트랙 프래그먼트 헤더 박스를 포함할 수도 있다. 트랙 프래그먼트 박스는, 트랙에 대한 샘플들의 연속적인 셋트를 각각 기록하는 하나 이상의 트랙 프래그먼트 런 박스들을 포함할 수도 있다. 실례로, 트랙 프래그먼트 박스는 샘플 카운트, 데이터 오프셋, 샘플 플래그들, 샘플 지속기간, 샘플 사이즈, 샘플 구성 타임 오프셋 등을 나타내는 신택스 엘리먼트들을 포함할 수도 있다. 이들 구조들 내에서, 많은 필드들이 선택적이고, 디폴트화될 수 있다.
샘플 테이블 박스는 하나 이상의 SampleToGroup 박스들 및 하나 이사으이 샘플 그룹 디스크립션 박스들 (즉, SampleGroupDescription 박스들) 을 포함할 수도 있다. SampleToGroup 박스는, 샘플 그룹의 연관된 디스크립션과 함께, 샘플이 속하는 샘플 그룹을 결정하기 위해 사용될 수도 있다. 달리 말하면, SampleToGroup 박스는 샘플이 속하는 그룹을 나타낼 수도 있다. SampleToGroup 박스는 "sbgp" 의 박스 타입을 가질 수도 있다. SampleToGroup 박스는 그룹핑 타입 엘리먼트 (예컨대, grouping_type) 를 포함할 수도 있다. 일부 경우들에서, 이 개시물에서, 박스의 엘리먼트는 또한 신택스 엘리먼트 (syntax element) 로서 지칭될 수도 있다. 그룹핑 타입 엘리먼트는 샘플 그룹핑의 타입 (즉, 샘플 그룹들을 형성하기 위해 사용되는 기준) 을 식별하는 정수일 수도 있다. 또한, SampleToGroup 박스는 하나 이상의 엔트리들 (즉, 샘플 그룹 엔트리들) 을 포함할 수도 있다. SampleToGroup 박스에서의 각 샘플 그룹 엔트리는 트랙에서의 상이한, 비-중첩적인 일련의 연속적인 샘플들과 연관될 수도 있다. 각 샘플 그룹 엔트리는 샘플 카운트 엘리먼트 (예컨대, sample_count) 및 그룹 디스크립션 인덱스 엘리먼트 (예컨대, group_description_index) 를 나타낼 수도 있다. 샘플 그룹 엔트리의 샘플 카운트 엘리먼트는 샘플 그룹 엔트리와 연관된 다수의 샘플들을 나타낼 수도 있다. 달리 말하면, 샘플 그룹 엔트리의 샘플 카운트 엘리먼트는 동일한 샘플 그룹 디스크립터를 갖는 연속적인 샘플들의 수를 제공하는 정수일 수도 있다. 그룹 디스크립션 인덱스 엘리먼트는, SampleGroupDescription 박스 내에서, 샘플 그룹 엔트리와 연관된 샘플들의 디스크립션을 포함하는 그룹 디스크립션 엔트리를 식별할 수도 있다. 다수의 샘플 그룹 엔트리들의 그룹 디스크립션 인덱스 엘리먼트들은 동일한 SampleGroupDescription 박스들을 식별할 수도 있다.
ISO/IEC 23009-1 에서 명시된 HTTP 를 통한 동적 적응형 스트리밍 (DASH) 은 HTTP (적응형) 스트리밍 애플리케이션들을 위한 표준이다. DASH 는 주로, 매니페스트로서 또한 알려진, 미디어 프레젠테이션 디스크립션 (MPD) 의 포맷, 및 미디어 세그먼트 포맷을 규정한다. MPD 는, 서버 상에서 이용가능한 미디어를 기술하고, DASH 클라이언트가 관심 대상의 미디어 타임에서 미디어 버전을 자율적으로 다운로드하게 한다.
DASH 는 계층적 데이터 모델에 기초한다. 프레젠테이션은 미디어 프레젠테이션을 구성하는 시간에서의 기간들의 시퀀스를 기술하는 MPD 문서에 의해 기술된다. 기간은 통상적으로, 미디어 콘텐츠의 인코딩된 버전들의 일관된 셋트가 이용가능한 미디어 콘텐츠 기간을 나타낸다, 예컨대, 이용가능한 비트레이트들, 언어들, 캡션들, 서브타이틀 등의 셋트는 기간 (Period) 동안 변경되지 않는다.
기간 내에서, 자료가 적응 셋트들 내로 배열된다. 적응 셋트는 하나 또는 수개의 미디어 콘텐츠 컴포넌트들의 상호교환가능한 인코딩된 버전들의 셋트를 나타낸다. 예를 들어, 메인 비디오 컴포넌트에 대해 하나의 적응 셋트 및 메인 오디오 컴포넌트에 대해 별도의 적응 셋트가 존재할 수도 있다. 캡션들 또는 오디오 디스크립션들과 같은 다른 이용가능한 재료는 각각 별개의 적응 셋트를 가질 수도 있다. 자료는 또한 멀티플렉싱된 형태로 제공될 수도 있고, 이 경우에, 멀티플렉스의 상호교환가능한 버전들은 단일의 적응 셋트, 예를 들어, 기간에 대한 메인 오디오 및 메인 비디오 양자를 포함하는 적응 셋트로서 기술될 수도 있다. 멀티플렉싱된 컴포넌트들의 각각은 미디어 콘텐츠 컴포넌트 디스크립션에 의해 개별적으로 기술될 수도 있다.
적응 셋트는 리프리젠테이션들의 셋트를 포함한다. 리프리젠테이션은 하나 또는 수개의 미디어 콘텐츠 컴포넌트들의 전달가능한 인코딩된 버전을 기술한다. 리프리젠테이션은 하나 이상의 미디어 스트림들 (멀티플렉스에서의 각각의 미디어 콘텐츠 컴포넌트에 대해 하나) 을 포함한다. 적응 셋트 내의 임의의 단일 리프리젠테이션은 포함된 미디어 콘텐츠 컴포넌트들을 렌더링하기에 충분하다. 하나의 적응 셋트에서 상이한 리프리젠테이션들을 모음으로써, 미디어 프레젠테이션 저자 (author) 는 리프리젠테이션들이 개념적으로 동등한 콘텐츠를 표현하는 것을 나타낸다. 통상적으로, 이것은, 클라이언트들이 네트워크 상태들 또는 다른 인자들에 적응하기 위해 적응 셋트 내에서 리프리젠테이션에서 리프리젠테이션으로 동적으로 스위칭할 수도 있음을 의미한다. 스위칭은 소정 시간 t 까지의 디코딩된 데이터의 프레젠테이션, 및 시간 t 에서부터 앞으로 다른 리프리젠테이션의 디코딩된 데이터의 프레젠테이션을 지칭한다. 리프리젠테이션들이 하나이 적응 셋트에 포함되고, 클라이언트들이 적절하게 스위칭하는 경우에, 미디어 프레젠테이션은 스위치에 걸쳐 끊임 없는 것으로 감지될 것으로 기대된다. 클라이언트들은 그들이 지원하지 않는 코덱들 또는 다른 렌더링 기술들에 의존하는 또는 그 외에 적합하지 않은 리프리젠테이션들을 무시할 수도 있다. 리프리젠테이션 내에서, 콘텐츠는 적절한 액세스가능성 및 전달을 위해 세그먼트들로 시간에서 분할될 수도 있다. 세그먼트를 액세스하기 위해, URL 이 각각의 세그먼트에 대해 제공된다. 결과적으로, 세그먼트는 단일 HTTP 요청으로 취출될 수 있는 데이터의 최대 단위이다.
DASH 기반 HTTP 스트리밍을 위한 통상적인 절차는 다음과 같은 단계들을 포함한다:
1) 클라이언트는 스트리밍 콘텐츠, 예컨대, 무비의 MPD 를 획득한다. MPD 는 상이한 대안적인 리프리젠테이션들에 관한 정보, 예컨대, 스트리밍 콘텐츠의 비트 레이트, 비디오 해상도, 프레임 레이트, 오디오 언어, 및, HTTP 리소스들 (초기화 세그먼트 및 미디어 세그먼트들) 의 URL 들을 포함한다.
2) MPD 에서의 정보 및 클라이언트의 로컬 정보, 예컨대, 네트워크 대역폭, 디코딩/디스플레이 능력들 및 사용자 선호도에 기초하여, 클라이언트는 요망되는 리프리젠테이션(들)을, 한 번에 하나의 세그먼트 (또는 그것의 부분) 를 요청한다.
3) 클라이언트가 네트워크 대역폭 변경을 검출할 때, 그것은 이상적으로는 랜덤 액세스 포인트로 시작하는 세그먼트로부터 시작하는, 더 잘 매칭되는 비트레이트를 갖는 상이한 리프리젠테이션의 세그먼트들을 요청한다.
HTTP 스트리밍 "세션" 동안, 과거 포지션으로 역방향으로 또는 장래의 포지션으로 순방향으로 찾도록 하는 사용자 요청에 응답하기 위해, 클라이언트는 요망되는 포지션에 가까운 그리고 이상적으로는 랜덤 액세스 포인트로 시작하는 세그먼트로부터 시작하는 과거 또는 장래의 세그먼트들을 요청한다. 사용자는 또한 콘텐츠를 고속 포워딩하도록 요청할 수도 있고, 이는 인트라-코딩된 비디오 화상들만을 또는 비디오 스트림의 시간적 서브셋트만을 디코딩하기 위해 충분히 데이터를 요청함으로써 실현될 수도 있다.
가상 현실 (VR) 은 비-물리적 세계와 상호작용하도록 허용하는 몰입하는 사용자의 움직임들에 의해 상관된 자연적 및/또는 합성적 이미지 및 사운드의 렌더링에 의해 형성된 비-물리적 세계에서 가상적으로 존재하도록 하는 능력이다. 헤드 마운티드 디스플레이 (HMD), 및 (종종 360 도 비디오로서도 지칭되는) VR 비디오와 같은 렌더링 디바이스에서 이루어진 최근의 발전으로, 상당한 품질의 경험이 제공될 수 있다. VR 애플리케이션들은 게이밍, 트레이닝, 교육, 스포츠, 비디오, 온라인 쇼핑, 성인 엔터테인먼트 등을 포함한다.
통상적인 VR 시스템은 다음과 같은 컴포넌트들 및 단계들을 포함할 수도 있다:
a. 상이한 방향들을 가리키고 이상적으로는 카메라 셋트 주위의 모든 뷰포인트들을 총체적으로 커버하는 다수의 개별 카메라들로 통상적으로 이루어지는 카메라 셋트.
b. 이미지 스티칭, 여기서, 다수의 개별 카메라들에 의해 찍힌 비디오 화상은, 구형 비디오로 되지만 (세계 지도와 같이) 등장방형 (equi-rectangular) 또는 정육면체 (cube) 지도와 같은 직사각형 포맷으로 맵핑되도록, 시간 도메인에서 동기화되고 공간 도메인에서 스티칭된다.
c. 맵핑된 직사각형 포맷에서의 비디오는 비디오 코덱, 예컨대, H.265/HEVC 또는 H.264/AVC 를 이용하여 인코딩/압축된다.
d. 압축된 비디오 비트스트림(들)은 미디어 포맷으로 저장 및/또는 인캡슐레이션되고, 수신기에 네트워크를 통해 (가능하게는 사용자에 의해 보이고 있는 영역만을 커버하는 서브셋트만) 전송된다.
e. 수신기는 가능하게는 포맷으로 인캡슐레이션된 그 비디오 비트스트림(들) 또는 그것의 부분을 수신하고, 디코딩된 비디오 신호 또는 그것의 부분을 렌더링 디바이스에 전송한다.
f. 렌더링 디바이스는, 예컨대, HMD 일 수 있고, 그것은, 두부 움직임 및 심지어 눈 이동 모멘트를 추적하고 비디오의 대응하는 부분을 렌더링할 수 있어서, 몰입적인 경험이 사용자에게 전달되도록 한다.
보통의 비디오에 비해 VR 비디오의 구별되는 특징은, VR 에서, 통상적으로, 현재의 시야 (field of view; FOV), 즉 사용자에 의해 현재 보이고 있는 영역에 대응하는, 비디오 화상들에 의해 표현되는 전체 비디오 구역의 서브셋트만이 디스플레이되는 한편, 보통의 비디오 애플리케이션들에서는 통상적으로 전체 비디오 구역이 디스플레이된다. FOV 는 때로는 뷰포트 (viewport) 로서 또한 지칭된다. 이 특징은, 예컨대, 뷰포트 의존적 투영 맵핑 또는 뷰포트 의존적 비디오 코딩을 이용함으로써, VR 비디오 시스템들의 성능을 향상시키기 위해 이용될 수도 있다. 성능 향상은, 사용자에게 제시되는 비디오 부분의 동일한 해상도/품질 하에서 종래의 VR 비디오 시스템들에 비해 더 낮은 송신 대역폭 및 더 낮은 디코딩 복잡도의 어느 일방 또는 양방일 수 있다.
뷰포트 의존적 투영 맵핑은 또한 대칭적 투영 맵핑으로서 지칭될 수도 있다. 하나의 예는 서브-샘플링된 정육면체 지도이다. 통상적인 정육면체 지도는 6 개의 동일한 사이즈의 면들로 이루어진다. 서브-샘플링된 정육면체 지도의 하나의 예에서, 면들 중 하나는 변경되지 않은 채로 유지될 수 있는 한편, 반대 측의 면은 원래의 면 형상의 중앙 영역에 위치된 더 작은 사이즈로 서브-샘플링되거나 다운-스케일링될 수 있고, 다른 면들은 (6 개의 면들을 여전히 유지하면서) 이에 따라 기하학적으로 스케일링된다. 극단적인 것은 반대 측의 면이 단일 포인트가 되도록 다운-스케일링하여 따라서 정육면체가 피라미드가 되게 하는 것이다. 서브-샘플링된 정육면체 지도의 다른 예에서, 일부 면들은 비례하여 예컨대 2x2 비율 (즉, 면의 에지에 대해 평행한 각 방향에서 2:1 로) 다운-사이징된다.
이러한 다운-사이징된 스케일링은 또한 등장방형과 같은 다른 투영 맵핑들에 대해 상이한 구역들에 적용될 수 있다. 하나의 예는 상부 및 하부 구역들 양방 (즉, 폴들) 을 다운-사이징하는 것이다.
뷰포트 의존적 비디오 코딩은 또한, 핵심은 현재의 FOV 또는 뷰포트의 디스플레이를 위해 충분한 정보를 제공하기 위해 전체 인코딩된 비디오 구역을 오직 부분적으로 디코딩하는 것을 가능하게 하는 것이므로, 뷰포트 의존적 부분적 비디오 디코딩으로서 지칭될 수도 있다.
종래에는, VR 비디오는 등장방형 또는 정육면체 지도 투영 맵핑으로 표현된다. 비디오 화상들은 시간적 인터 예측 (temporal inter prediction; TIP) 을 이용하여 단일-계층 비트스트림으로서 인코딩되고, 전체 코딩된 비트스트림은 서버에 저장되고, 필요한 경우, 수신기 측에 송신되며, 디코더에 의해 완전히 디코딩되며, 그리고, 현재의 뷰포트에 대응하는 디코딩된 화상의 구역은 사용자에게 렌더링된다.
VR 비디오 화상들은, 뷰포트를 커버하는 각각의 잠재적인 구역이 시간에 걸쳐 다른 구역들과는 독립적으로 디코딩될 수 있도록, 모션-제약된 타일들을 이용하여 코딩될 수 있다. 특정 현재의 뷰포트에 대해, 그 뷰포트를 커버하는 타일들의 최소 셋트가 클라이언트에 전송되고, 디코딩되며, 렌더링된다. 이 방법은 심플 타일 기반 부분적 디코딩 (Simple Tile based Partial Decoding; STPD) 으로서 지칭되고, 도 2 에 의해 묘사된다.
이러한 접근법의 문제점은, 사용자가 그들의 머리를 현재 전송되고 있는 타일들에 의해 (전체적으로 또는 부분적으로) 커버되지 않는 새로운 뷰포인트로 빨리 돌릴 때, 새로운 뷰포트를 커버하는 타일들이 도달하기 (그리고 데이터가 버퍼링 타임라인에 따라 충분히 버퍼링되기) 전에는 (구 뷰포트에 의해서가 아니라 새로운 뷰포트에 의해 커버되는) 새로운 영역에서의 아무 것도 보일 수 없다는 것이다. 따라서, 이 방법은, 네트워크 라운드 트립 시간이, 느끼지 못할 정도이거나 적어도 오늘 날 또는 가까운 미래에 큰 도전인, 예컨대 10ms 의 크기와 같이 매우 낮은 경우에만 작동할 수 있다.
SLPD#1 및 SLPD#2 로서 지칭되는, 2 가지 스케일러블 코딩 기반 부분적 디코딩 (ScaLable coding based Partial Decoding; SLPD) 스킴들이 이 섹션에서 제시된다. SLDP#1 에서, 도 3 에서 도시된 바와 같이, VR 비디오는 다수의 해상도들로 SHVC (또는 다른 타입의 스케일러블 비디오 코딩) 공간적 스케일러빌러티 (spatial scalability) 를 이용하여 스케일러블-코딩된다. 최저 해상도 비디오, 즉, 베이스 계층 (base layer; BL) 의 비트스트림은, 임의의 뷰포트에 대한 임의의 시간에서 적어도 최저 해상도 비디오는 렌더링을 위해 이용가능하도록 충분히 전송된다. 최저 해상도 비디오는, 비록 그것이 타일들 또는 모션-제약된 타일들을 이용하여 코딩되는 경우에 그것이 또한 작동하지 않을 것임에도 불구하고, 전혀 타일들을 이용하여 코딩될 필요가 없다.
향상 계층 (enhancement layer; EL) 은, 뷰포트를 커버하는 각각의 잠재적 구역이 인터-레이어 예측 (inter-layer prediction; ILP) 이 인에이블된 상태에서 시간에 걸쳐 다른 구역들로부터 독립적으로 디코딩될 수 있도록 모션-제약된 타일들을 이용하여 코딩된다. 특정 현재의 뷰포트에 대해, 뷰포트를 커버하는 타일들의 최소 셋트가 클라이언트에 전송되고, 디코딩되고, 렌더링된다. 저장의 관점에서, 모든 해상도들/계층들의 전체 스트림들이 저장될 필요가 있다.
2 개보다 많은 레이어들이 코딩될 때, 상이한 뷰포트들을 커버하는 타일들이 상이한 해상도들로부터 선택될 수 있다. 현재의 뷰포트에 대해, 타일들은 최고 해상도로부터 선택되고, 현재의 뷰포트에 이웃하는 뷰포트에 대해, 타일들은 다음으로 최고의 해상도로부터 선택되는 등이다.
SLDP#2 에서, 도 4 에 의해 도시된 바와 같이, VR 비디오는 또한 다중 해상도드로 SHVC 공간적 스케일러빌러티를 이용하여 스케일러블-코딩된다. BL 은 SLPD#1 에서와 동일하게 코딩되는 한편, EL 들은, SLPD#1 에서와 유사하게, 하지만 시간적 인터 예측 (TIP) 이 디스에이블된 상태에서 코딩된다.
SMPD#1 및 SMPD#2 로서 지칭되는, 시멀캐스트 코딩 기반 부분적 디코딩 (SiMulcast coding based Partial Decoding; SMPD) 이 이 섹션에서 제시된다. SMPD#1 은 도 5 에 의해 도시된다. 이 방법은, 인터-레이어 예측이 사용되지 않는 점을 제외하고는 SLPD#1 과 동일하다. 달리 말하면, 최저 해상도를 제외하고는 모든 다른 해상도들은 STPD 에서와 동일한 방식으로 코딩된다. SMPD#2 는 도 6 에 의해 도시된다. SMPD#2 와 SMPD#1 사이에 2 가지 차이들이 존재한다: SMPD#2 에서, 최저 해상도는 또한 다른 해상도들과 동일하게 모션-제약된 타일들을 이용하여 코딩된다. SMPD#2 가 사용될 때, 최저 해상도는 또한 완전히 전송되지 않고, 현재 뷰포트로부터 기하학적으로 가장 먼 뷰포트를 커버하는 타일들만 전송되고, 임의의 다른 뷰포트들은 다른 해상도들로부터 전송된 타일들에 의해 커버되지 않는다.
오늘의 시점에서, DASH 에서 VR 시그널링을 지원하는 설계가 부족하다. 예를 들어, DASH 에 기초한 VR 스트리밍 시스템이 잘 작동하도록 하기 위해, 이 개시물은 모든 비디오 리프리젠테이션들 또는 일부 비디오 리프리젠테이션들 중 어느 일방이 보통의 비디오 (즉, 전형적으로, 비-VR 비디오) 대신에 VR 비디오를 포함하는 것을 나타내기 위한 시그너링을 제안한다. 하나의 예에서, 이 시그널링 메커니즘은, VR 비디오 렌더링을 지원하지 않는 레거시 (legacy) DASH 클라이언트들은 VR 비디오 리프리젠테이션을 소비하기를 시도하지 않는다는 면에서 후방 호환가능하다. 다른 예에 대해, VR 비디오의 기본적인 부분인 사용된 투영 맵핑은 효율적으로 시그널링될 수도 있다. 또한, 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴 (scheme) 이 사용 중일 때, DASH 에서의 일부 시그널링은, DASH 클라이언트들로 하여금, (클라이언트 능력 및 사용자 선호도에 기초하여) 처음에 그리고 (변화하는 네트워크 조건들 등에 대한) 스트림 적응을 위한 스트림 세션 동안 양자 동안 특정 리프리젠테이션을 선택하는 것을 가능하게 하기 위해 사용될 수도 있다.
이 개시물은 DASH 에서 VR 비디오의 시그널링을 위한 몇 가지 기법들을 기술한다. 이들 기법들 중 하나 이상은 독립적으로 또는 다른 것들과 조합하여 적용될 수도 있다. 그 기법들은 상이한 레벨들에서 시그널링되는 다양한 데이터와 관련하여 설명될 수도 있다. 상기 소개된 바와 같이, 최고에서부터 최저가지, 이러한 레벨들은 도큐먼트 레벨, MPD 레벨, 기간 레벨, 적응 셋트 레벨, 및 리프리젠테이션 레벨을 포함한다. 각 레벨은, 고유한 시맨틱스 (예컨대, 엘리먼트들 및 속성들의 고유한 조합들) 를 갖는 데이터 구조들을 포함한다. 이러한 맥락에서, 속성은 단일 값을 지칭할 수도 있는 한편, 엘리먼트는 하나 이상의 속성들의 컬렉션을 지칭한다. 엘리먼트는 또한 추가적인 엘리먼트들을 포함할 수도 있다.
MPD 레벨 상에서의 (예컨대, MPD-레벨 엘리먼트 또는 속성을 통한) 시그널링은 다음 중 하나 이상을 나타내도록 제안된다:
a. 미디어 프레젠테이션의 모든 비디오 리프리젠테이션들이 VR 비디오를 포함한다. 이 경우가 후방 호환가능한 방식으로 작동하도록 하기 위해, VR 비디오에 대해 배타적으로 새로운 DASH 프로파일이 정의된다. 이 프로파일에 따른 미디어 프레젠테이션을 위해, 미디어 프레젠테이션의 모든 비디오 리프리젠테이션들은 VR 비디오를 포함할 것이다. 이러한 방식으로, 레거시 DASH 클라이언트들은 전혀 미디어 프레젠테이션을 액세스하기를 시도하지 않도록 구성될 수 있다.
b. 미디어 프레젠테이션의 비디오 리프리젠테이션들 중 적어도 하나는 VR 비디오를 포함하고, 미디어 프레젠테이션의 비디오 리프리젠테이션들 중 적어도 하나는 보통의 비디오를 포함한다. 이 경우에, 보통의 비디오 리프리젠테이션들을 허용하는 기존의 DASH 프로파일이 사용될 수도 있다. 하지만, 비디오 적응 셋트를 위해 모든 리프리젠테이션들이 VR 비디오를 포함하는 각각의 비디오 적응 셋트 또는 VR 비디오를 포함하는 각각의 리프리젠테이션은 그러면, 레거시 DASH 클라이언트들이 VR 비디오를 포함하는 임의의 비디오 리프리젠테이션을 이용하기를 시도하는 것을 금지하기 위해 새로운 DASH 프로파일 또는 무언가 다른 표시에 의해 시그널링되어야 한다.
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는, 미디어 프레젠테이션의 MPD 데이터 구조에서, 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션이 VR 비디오를 포함하는 것을 나타내는 데이터를 시그널링할 수도 있고, 그 디바이스는 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션의 세그먼트들을 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 미디어 프레젠테이션의 MPD 데이터 구조에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션이 VR 비디오를 포함하는 것을 결정하고, 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션의 세그먼트들을 취출할 수도 있다. 세그먼트들을 취출하기 위해, 디바이스는, 그 디바이스가 VR 비디오를 디코딩하도록 구성되는 것에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션의 세그먼트들을 취출할 수도 있다. 클라이언트 디바이스 (40) 와 같은 디바이스는 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션을 디코딩할 수도 있다. 서버 디바이스 (60) 와 같은 디바이스는 적어도 하나의 비디오 리프리젠테이션의 세그먼트들을 클라이언트 디바이스 (40) 와 같은 다른 디바이스에 송신할 수도 있다. 일부 예들에서, 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션이 VR 비디오를 포함하는 것을 결정하기 위해, 디바이스는 MPD 데이터 구조에서 시그널링된 데이터에 기초하여, 미디어 프레젠테이션에서의 모든 비디오 리프리젠테이션들이 VR 비디오를 포함하는 것을 결정할 수도 있다.
데이터는, 예를 들어, MPD-레벨 엘리먼트 또는 MPD-레벨 속성일 수도 있다. 미디어 프레젠테이션은, 미디어 프레젠테이션의 하나 이상의 비디오 리프리젠테이션들을 포함하는 비디오 적응 셋트를 포함할 수도 있다. 비디오 적응 셋트는 VR 비디오를 위한 특정 DASH 프로파일에 따를 수도 있고, 여기서, 그 특정 DASH 프로파일을 따르는 미디어 프레젠테이션들에서의 모든 비디오 리프리젠테이션들은 VR 비디오를 포함한다. 미디어 프레젠테이션에서의 적어도 하나의 비디오 리프리젠테이션은 또한 비-VR 비디오를 포함할 수도 있다.
사용된 투영 맵핑은 기간 레벨 상에서 (예컨대, 기간-레벨 엘리먼트 또는 속성을 통해) 및 적응 셋트 레벨 상에서 (예컨대, 적응-셋트-레벨 엘리먼트 또는 속성을 통해) 양자 상에서 시그널링될 수도 있고, 하지만, VR 비디오 리프리젠테이션 및 비-VR 비디오 리프리젠테이션 사이의 스트림 적응을 위한 리프리젠테이션 스위칭을 좌절시키기 위해 리프리젠테이션 레벨 상에서는 시그널링되지 않을 수도 있다.
a. 기간 레벨 시그널링이 존재할 때, 적응 셋트 레벨 상에서의 시그널링은 선택적이고, 이 경우에, 적응 셋트에 대해 시그널링이 또한 존재하는 경우에, 그것은 기간 레벨 시그널링과 모순되지 않을 것이다.
b. 기간 레벨 시그널링이 존재하지 않을 때, 적응 셋트 레벨 시그널링은 필수적이다 (즉, 존재하여야만 한다).
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는 미디어 프레젠테이션 디스크립션의 기간 레벨 또는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨 중 적어도 하나에서 데이터를 전송할 수도 있고, 그 데이터는 미디어 프레젠테이션에서 사용되는 투영 맵핑을 나타낼 수도 있다. 디바이스는 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 미디어 프레젠테이션 디스크립션의 기간 레벨 또는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨 중 적어도 하나에서 시그널링되는 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하고, 그 결정에 기초하여, 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 취출함으로써, 메타데이터를 취출할 수도 있다. 디바이스는 또한, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 적어도 부분적으로 기초하여, 비디오 리프리젠테이션의 세그먼트들을 취출할지 여부를 결정할 수도 있다. 디바이스는 또한, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 적어도 부분적으로 기초하여, 비디오 리프리젠테이션의 세그먼트들을 어떻게 디코딩할지를 결정할 수도 있다. 투영 맵핑을 시그널링하는 데이터는 미디어 프레젠테이션의 리프리젠테이션 레벨에서 시그널링되지 않는다.
일부 예들에서, 투영 맵핑을 시그널링하는 데이터가 미디어 프레젠테이션의 기간 레벨에서 존재할 때, 미디어 프레젠테이션의 적응 셋트 레벨에서의 투영 맵핑의 시그널링은 선택적일 수도 있다. 일부 예들에서, 투영 맵핑을 시그널링하는 데이터가 미디어 프레젠테이션의 적응 셋트 레벨에서 존재할 때, 미디어 프레젠테이션의 기간 레벨에서 투영 맵핑을 시그널링하는 것은 필수적일 수도 있다. 투영 맵핑을 시그널링하는 데이터는 미디어 프레젠테이션의 리프리젠테이션 레벨에서 시그널링되지 않을 수도 있다.
(예컨대, 적응-셋트-레벨 엘리먼트 또는 속성을 통한) 적응 셋트 레벨 시그널링은, 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 사용 중인지 여부, 및 그러한 경우에, 어느 것인지를 나타내기 위해 사용된다. 예를 들어, 섹션 2.5.2 에서 기술된 바와 같이 3 가지 접근법들 STPD, SLPD#1, 및 SMPD#2 중 하나가 사용될 수도 있는 것이 명시될 수도 있고, 이들 3 개 중 어느 것이 사용 중인지를 나타내기 위해 속성이 사용될 수도 있다, 예컨대, 값 1, 2, 또는 3 은 STPD, SLPD#1, 또는 SMPD#2 가 각각 사용되는 것을 나타낸다.
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는, 미디어 프레젠테이션에 대한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서, 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 미디어 프레젠테이션에서 사용 중인 것을 나타내는 데이터를 전송하고, 그 미디어 프레젠테이션의 세그먼트들을 전송할 수도 있다. 그 데이터는 제 1 데이터일 수도 있고, 디바이스는 또한, 미디어 프레젠테이션의 적응 셋트 레벨에서 시그널링되는, 어느 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 미디어 프레젠테이션에서 사용 중인지를 나타내는 제 2 데이터를 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 미디어 프레젠테이션에 대한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 제 1 데이터에 기초하여, 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 미디어 프레젠테이션에서 사용 중인지 여부를 결정할 수도 있고, 디바이스는 미디어 프레젠테이션의 세그먼트들을 취출할 수도 있다. 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 미디어 프레젠테이션에서 사용 중인 것을 결정하는 것에 응답하여, 디바이스는, 미디어 프레젠테이션의 적응 셋트 레벨에서 시그널링된 제 2 데이터에 기초하여, 어느 모션-제약된 타일들 기반 뷰포트 의존적 VR 코딩 스킴이 미디어 프레젠테이션에서 사용 중인지를 결정할 수도 있다.
제 1 의 모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴에 따라, 디바이스는, 뷰포트를 커버하는 각각의 잠재적 구역이 시간에 걸쳐 다른 구역들로부터 독립적으로 디코딩가능하도록, 모션-제약된 타일들을 이용하여 VR 비디오 화상들을 인코딩 또는 디코딩할 수도 있다. 제 2 의 모션-제약된 타일 기반 뷰포트 의존적 VR 비디오 코딩 스킴에 따라, (1) VR 비디오는 다중 해상도들로 스케일러블 비디오 코딩 공간적 스케일러빌러티를 이용하여 스케일러블-코딩될 수도 있고, (2) 베이스 계층은, 임의의 뷰포트에 대해 임의의 시간에서 적어도 최저 해상도 비디오가 렌더링을 위해 이용가능하도록, 충분히 전송될 수도 있으며, (3) 향상 계층 (EL) 들은, 뷰포트를 커버하는 각각의 잠재적 구역이 인터-레이어 예측이 인에이블된 상태에서 시간에 걸쳐 다른 구역들로부터 독립적으로 디코딩될 수 있도록 모션-제약된 타일들을 이용하여 코딩되고, 그리고 (4) 시간적 인터 예측은 베이스 계층 및 EL 들에서 인에이블된다. 제 3 의 모션-제약된 타일 기반 뷰포트 의존적 VR 비디오 코딩 스킴에 따라, (1) VR 비디오는 다중 해상도들로 스케일러블 비디오 코딩 공간적 스케일러빌러티를 이용하여 스케일러블-코딩될 수도 있고, (2) 베이스 계층은, 임의의 뷰포트에 대해 임의의 시간에서 적어도 최저 해상도 비디오가 렌더링을 위해 이용가능하도록, 충분히 전송될 수도 있으며, (3) EL 들은, 뷰포트를 커버하는 각각의 잠재적 구역이 인터-레이어 예측이 인에이블된 상태에서 시간에 걸쳐 다른 구역들로부터 독립적으로 디코딩될 수 있도록 모션-제약된 타일들을 이용하여 코딩될 수도 있고, 그리고 (4) 시간적 인터 예측은 베이스 계층에서 인에이블되지만 EL 들에서는 디스에이블될 수도 있다. 미디어 프레젠테이션의 적응 셋트 레벨에서 시그널링된 제 2 데이터는 제 1, 제 2, 또는 제 3 모션-제약된 타일 기반 뷰포트 의존적 VR 비디오 코딩 스킴 중 어느 것이 미디어 프레젠테이션에서 사용 중인지를 나타낼 수도 있다.
파일 포맷 레벨 상에서의 타일 기반 뷰포트 의존적 부분적 VR 비디오 인코딩 및 디코딩 스킴의 시그널링은 ISO/IEC 14496-15 의 조항 10 에서 HEVC 및 계층화된 HEVC (L-HEVC) 의 타일링된 스토리지를 이용할 수 있다. 일부 예들에서, 타일 트랙들이 사용되고, 각각의 타일 트랙은, 타일 구역 샘플 그룹 맵핑이 이용될 때 (하나의 트랙에 대응하는) 특정 DASH 리프리젠테이션으로부터 뷰포트를 커버하는 타일들의 요청들을 위해 바이트 범위들의 로트들을 이용할 필요성을 회피하기 위해, 하나의 모션-제약된 타일 또는 타일 구역을 운반한다.
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는, 타일 기반 뷰포트 의존적 VR 비디오 인코딩 및 디코딩 스킴을 나타내는, 미디어 프레젠테이션을 포함하는 파일의 파일 포맷 레벨에서 저장된, 데이터를 전송하고, 미디어 프레젠테이션의 세그먼트들을 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 미디어 프레젠테이션을 포함하는 파일의 파일 포맷 레벨에서 저장된 데이터에 기초하여, 타일 기반 뷰포트 의존적 VR 비디오 인코딩 및 디코딩 스킴을 결정하고, 미디어 프레젠테이션의 세그먼트들을 취출할 수도 있다. 파일은, 예를 들어, 복수의 트랙들을 포함할 수도 있고, 그 복수의 트랙들의 각각의 개별 트랙은 모션-제약된 타일 또는 타일 구역을 포함한다.
ISO/IEC 23008-2 비디오는 타일들이라고 불리는 직사각형 구역의 코딩을 위한 지원을 제공한다. HEVC 타일들은 동일한 코딩된 화상에서의 다른 HEVC 타일들과의 코딩 의존성들을 가지지 않고, 하지만, 이전의 코딩된 화상들로부터의 다른 HEVC 타일들과의 코딩 의존성들을 가질 수도 있거나 독립적으로 디코딩될 수도 있다. ISO/IEC 14496-15 의 조항 10 에서, 직사각형 타일 구역은 다른 HEVC 타일은 포함하지 않는 그리고 하지만 디코딩 순서에서 연속적일 필요는 없을 수도 있는 하나 이상의 슬라이스들에서 인코딩된 직사각형 구역을 형성하는 HEVC 타일들의 임의의 정수 넘버로서 정의된다. ISO/IEC 14496-15 의 조항 10 에서, 제약되지 않는 타일 구역은, 하나 이상의 완전한 HEVC 타일들로 이루어지고 하지만 디코딩 순서에서 연속적일 필요는 없을 수도 있는 완전한 슬라이스들의 임의의 넘버로서 정의된다. ISO/IEC 14496-15 의 조항 10 에서, 제약되지 않는 타일 구역들은 또한 수개의 HEVC 타일들에 걸쳐 확장되는 관심 대상의 구역을 표현하기 위해 사용될 수 있다.
또한, ISO/IEC 14496-15 의 하위조항 10.6 에서 기술된 바와 같이,
상이한 트랙들에서 독립적으로 디코딩가능한 HEVC (각각 L-HEVC) 타일들을 저장하는 것이 비디오 콘텐츠에 대한 빠른 공간적 및 시간적 액세스를 위해 유용할 수도 있는 경우들이 존재한다. 이러한 경우들에 있어서, 트랙들은 HEVCTileSampleEntry (각각 LHEVCTileSampleEntry) 샘플 디스크립션 포맷을 이용하여 생성될 수도 있다.
HEVC (각각 L-HEHC) 타일 트랙은 타일(들)이 속하는 연관된 HEVC 계층의 NALU 들을 운반하는 HEVC (각각 L-HEVC) 트랙에 대한 'tbas' 참조가 존재하는 비디오 트랙이다. HEVC 타일 트랙에 대한 샘플 디스크립션 타입은 'hvt1' 일 것이다. L-HEVC 타일 트랙에 대한 샘플 디스크립션 타입은 'lht1' 일 것이다.
타일 트랙에서의 샘플들 또는 샘플 디스크립션 박스 중 어느 것도 VPS, SPS 또는 PPS NAL 유닛들을 포함하지 않을 것이고, 이들 NAL 유닛들은, 'tbas' 트랙 참조에 의해 식별되는 바와 같이, 연관된 계층을 포함하는 트랙의 샘플 디스크립션 박스에서 또는 샘플들에서 존재할 것이다. 'tbas' 트랙 참조에 의해 표시된 바와 같이, HEVC/L-HEVC 타일 트랙 및 연관된 계층을 포함하는 트랙 양자는 원래의 비트스트림이 어떻게 재구성되는지를 나타내기 위해 A.7 에서 정의된 바와 같이 추출기들을 이용할 수도 있다; 이들 트랙들에서의 추출기들의 존재는 몇몇 애플리케이션 영역들에서 제약될 수도 있다.
타일 트랙에서 저장된 HEVC 또는 L-HEVC 샘플은, ISO/IEC 23008-2 에서 정의된 바와 같이, 하나 이상의 타일들에 대한 슬라이스들의 완전한 셋트이다. 통상적으로, 트랙이 단일의 HEVC 타일로 이루어지는 경우에, 이 타일을 코딩하기 위해 사용되는 슬라이스(들)만이 그 샘플에서 발견될 것이다. 타일 트랙은 통상적으로 하나의 RectTileRegGroupEntry (단일-타일 트랙), 또는 하나의 UnconstrTileRegGroupEntry 및 하나 이상의 의존적 RectTileRegGroupEntry 를 포함하고, 이 제약되지 않는 타일 구역은 (다중-타일 트랙) 으로 이루어진다.
샘플에서의 VCL NAL 유닛들이 순시 디코딩 리프레쉬 (Instantaneous Decoding Refresh; IDR) NAL 유닛들, 클린 랜덤 액세스 (Clean Random Access; CRA) NAL 유닛들, 또는 브로큰 링크 액세스 (Broken Link Access; BLA) NAL 유닛들인 경우에, 타일 트랙에서 저장된 HEVC 샘플은 싱크 샘플로서 고려된다.
샘플에서의 VCL NAL 유닛들이 IRAP NAL 유닛들이고 대응하는 액세스 유닛은 RASL 화상인 경우에, 타일 트랙에서 저장된 L-HEVC 샘플은 싱크 샘플로서 고려된다.
정규 HEVC (각각 L-HEVC) 샘플들에 대해 정의된 서브-샘플 및 샘플 그룹핑은 HEVC (각각 L-HEVC) 타일 샘플에 대해 동일한 정의들을 갖는다.
노트 1: 일 구현은 HEVC 시퀀스의 완전한 타일들의 서브셋트만을 디코딩하도록 결정할 수도 있다. 이 경우에, HEVC 시퀀스를 디코딩하는 동안 필요하지 않은 트랙들을 폐기하거나 일부 추출기들을 무시하기 위해 RectTileRegGroupEntry 및 UnconstrTileRegGroupEntry 샘플 그룹 디스크립션들에서 타일 의존적 정보를 이용할 수도 있다.
노트 2: 특정 HEVC 또는 L-HEVC 타일 트랙에 의해 표현되는 비디오의 일부만이 필요할 때, 파일 파서 (file parser) 는 비디오 디코더에 공급될 출력 비트스트림을 생성하기 위해 다음과 같은 예시적인 프로세스를 이용할 수도 있다: [Ed. (YK): 이것은 HEVC 또는 L-HEVC 타일 트랙들의 특정 셋트가 필요한 경우들에 대해 일반화되어야 한다.]
- 먼저, 샘플 엔트리에서 포함된 파라미터 셋트들 및 SEI NAL 유닛들이 출력되고, 이어서, 리스팅된 순서로, VCK NAL 유닛들 전에 존재하여야만 하는 ('tbas' 트랙 참조에 의해 표시되는 바와 같은) 베이스 트랙에서의 제 1 샘플 firstSampleInBaseTrack 에서의 NAL 유닛들 (예컨대, 파라미터 셋트 NAL 유닛, 프리픽스 SEI NAL 유닛들), 타일 트랙에서 firstSampleInBaseTrack 의 대응하는 샘플에서의 NAL 유닛들, VLC NAL 유닛들 후에 존재하여야만 하는 firstSampleInBaseTrack 에서의 NAL 유닛들 (예컨대, EOS NAL 유닛, EOB NAL 유닛), VLC NAL 유닛들 전에 존재하여야만 하는 베이스 트랙에서의 제 2 샘플 secondSampleInBaseTrack 에서의 NAL 유닛들, 타일 트랙에서 secondSampleInBaseTrack 의 대응하는 샘플에서의 NAL 유닛들, VCL NAL 유닛들 후에 존재하여야만 하는 secondSampleInBaseTrack 에서의 NAL 유닛 등이 뒤따른다.
- 베이스 트랙 및 타일 트랙에서의 샘플들은 디코딩 시간들에 의해 동기화된다. 달리 말하면, 베이스 트랙에서의 샘플 및 타일 트랙에서의 그것의 대응하는 샘플은 동일한 디코딩 시간을 갖는다.
모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 사용 중이고, 14496-15 의 조항 10 에서 명시된 바와 같은 타일 트랙들이 사용될 때, 예컨대, 각각의 모션-제약된 타일 또는 타일 구역이 트랙 또는 DASH 리프리젠테이션에서 배타적으로 운반될 때, 각각의 모션-제약된 타일 또는 타일 구역과 그것을 운반하는 리프리젠테이션 사이의 맵핑을 시그널링하기 위해 적응-셋트-레벨 엘리먼트가 사용된다. 엘리먼트는 엔트리 카운트, 그리고 이어서 {리프리젠테이션 ID, 구역 로케이션, 및 구역 사이즈} 의 값들의 루프를 포함한다. 동일한 VR 비디오가 다수의 공간 해상도들로 표현되고 (각각의 공간 해상되는 다수의 타일 트랙들에 대응할 것이다) 모든 리프리젠테이션들이 하나의 적응 셋트 내에 포함될 때, 각 구역 로케이션 및 구역 사이즈는 최고 해상도에 대해 상대적으로, 또는 대안적으로, 특정 해상도의 전체 화상 구역에 대해 상대적으로 명시될 수도 있고, 여기서, 특정 해상도는 그 특정 해상도와 연관되는 리프리젠테이션 ID 와 동일한 속성에 의해 나타내어진다. 리프리젠테이션 ID 는 그 리프리젠테이션 ID 를 갖는 리프리젠테이션에서 전체적으로 또는 부분적으로 운반되는 화상들의 해상도인 해상도와 연관되는 것이라고 말할 수 있다.
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는, 모션 제약된 타일 또는 타일 구역과 그 모션 제약된 타일 또는 타일 구역을 운반하는 리프리젠테이션 사이의 맵핑을 포함하는 미디어 프레젠테이션의 적응 셋트 레벨 엘리먼트를 전송할 수도 있고, 디바이스는 미디어 프레젠테이션의 세그먼트들을 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 미디어 프레젠테이션의 적응 셋트 레벨 엘리먼트에 기초하여, 모션 제약된 타일 또는 타일 구역과 그 모션 제약된 타일 또는 타일 구역을 운반하는 리프리젠테이션 사이의 맵핑을 결정할 수도 있고, 디바이스는 미디어 프레젠테이션의 세그먼트들을 전송할 수도 있다. 적응 셋트 레벨 엘리먼트는 리프리젠테이션 식별자 값, 구역 로케이션 값, 및 구역 사이즈 값을 포함하는 엔트리들의 셋트에서 각 엔트리를 갖는, 엔트리들의 셋트 및 엔트리 카운트를 포함할 수도 있다. 엔트리 카운트는 엔트리들의 셋트에서의 엔트리들의 수를 나타낼 수도 있다.
모션-제약된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴이 사용 중이고, 14496-15 의 조항 10 에서 명시된 바와 같은 타일 트랙들이 사용될 때, 즉, 각 트랙 또는 DASH 리프리젠테이션이 전체 코딩된 화상들을 운반할 때, 액세스 유닛 레벨 또는 샘플 레벨 바이트 범위들이 DASH 가 특정 모션-제약된 타일 또는 타일 구역을 요청하기 위해 필요하고, 바이트 범위에 의해 참조된 데이터는 특정 모션-제약된 타일 또는 타일 구역에 대해, 또는 모든 모션-제약된 타일 또는 타일 구역들에 대해 배타적일 수도 있다. MPD 가 이러한 바이트 범위들을 포함하기에는 너무 버거울 것이다. 하나의 가능하게 실현가능한 방식은, 가능하게는 상대적인 방식으로 이러한 바이트 범위들을 포함하도록 새로운 박스를 정의하는 것이다, 예컨대, 0 번째 바이트는 그 새로운 박스를 바로 뒤따르는 바이트를 의미하고, 이러한 새로운 박스의 인스턴스 (instance) 는 세그먼트 인덱스 박스에 포함될 수 있고, 그리고, 세그먼트에서의 모든 샘플들 또는 액세스 유닛들의 바이트 범위들은 새로운 박스에서 도큐먼팅된다.
예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 디바이스는, 모션-보상된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴을 이용하는 미디어 프레젠테이션을 저장하는 파일에서의 박스에서, 특정 모션-제약된 타일 또는 타일 구역의 바이트 범위를 전송할 수도 있고, 디바이스는, 특정 모션-제약된 타일 또는 타일 구역의 바이트 범위에 기초하여, 특정 모션-제약된 타일 또는 타일 구역의 데이터를 전송할 수도 있다. 클라이언트 디바이스 (40) 또는 서버 디바이스 (60) 와 같은 디바이스는, 모션-보상된 타일들 기반 뷰포트 의존적 VR 비디오 코딩 스킴을 이용하는 미디어 프레젠테이션을 저장하는 파일에서의 박스에 기초하여, 특정 모션-제약된 타일 또는 타일 구역의 바이트 범위를 결정할 수도 있고, 디바이스는, 특정 모션-제약된 타일 또는 타일 구역의 바이트 범위에 기초하여, 특정 모션-제약된 타일 또는 타일 구역의 데이터를 획득할 수도 있다. 박스는, 예를 들어, 세그먼트 인덱스 박스일 수도 있다. 박스는, 미디어 프레젠테이션의 세그먼트에서 모든 샘플들 또는 액세스 유닛들의 바이트 범위들을 도큐먼팅 (documenting) 하는 데이터를 포함할 수도 있다.
도 7 은 도 1 의 취출 유닛 (52) 의 컴포넌트들의 셋트를 더 자세히 나타내는 블록도이다. 이 예에서, 취출 유닛 (52) 은 eMBMS 미들웨어 유닛 (100), DASH 클라이언트 (110), 및 미디어 애플리케이션 (112) 을 포함한다.
이 예에서, eMBMS 미들웨어 유닛 (100) 은 eMBMS 수신 유닛 (106), 캐시 (104), 및 서버 유닛 (102) 을 더 포함한다. 이 예에서, eMBMS 수신 유닛 (106) 은, 예컨대, http://tools.ietf.org/html/rfc6726 에서 이용가능한, T. Paila 등의 "FLUTE―File Delivery over Unidirectional Transport," Network Working Group, RFC 6726, 2012년 11월에서 기술된 단방향 전송을 통한 파일 전달 (File Delivery over Unidirectional Transport; FLUTE) 에 따라, eMBMS 를 통해 데이터를 수신하도록 구성된다. 즉, eMBMS 수신 유닛 (106) 은 예컨대 BM-SC 로서 작용할 수도 있는 서버 디바이스 (60) 로부터 브로캐스트를 통해 파일들을 수신할 수도 있다.
eMBMS 미들웨어 유닛 (100) 이 파일들에 대해 데이터를 수신함에 따라, eMBMS 미들웨어 유닛은 수신된 데이터를 캐시 (104) 에 저장할 수도 있다. 캐시 (104) 는 플래시 메모리, 하드 디스크, RAM, 또는 임의의 다른 적합한 저장 매체와 같은 컴퓨터-판독가능 저장 매체를 포함할 수도 있다.
로컬 서버 유닛 (102) 은 DASH 클라이언트 (110) 에 대해 서버로서 작용할 수도 있다. 예를 들어, 로컬 서버 유닛 (102) 은 DASH 클라이언트 (110) 에 MPD 파일 또는 다른 매니페스트 파일을 제공할 수도 있다. 로컬 서버 유닛 (102) 은 MPD 파일에서의 세그먼트들, 및 그 세그먼트들이 취출될 수 있는 하이퍼링크들에 대해 이용가능 시간들을 광고할 수도 있다. 이들 하이퍼링크들은 클라이언트 디바이스 (40) 에 대응하는 로컬호스트 어드레스 프리픽스 (예컨대, IPv4 에 대해 127.0.0.1) 를 포함할 수도 있다. 이러한 방식으로, DASH 클라이언트 (110) 는 HTTP GET 또는 부분적 GET 요청들을 이용하여 로컬 서버 유닛 (102) 으로부터 세그먼트들을 요청할 수도 있다. 예를 들어, 링크 http://127.0.0.1/rep1/seg3 로부터 이용가능한 세그먼트에 대해, DASH 클라이언트 (110) 는 http://127.0.0.1/rep1/seg3 에 대한 요청을 포함하는 HTTP GET 요청을 구성하고, 그 요청을 로컬 서버 유닛 (102) 에 제출할 수도 있다. 로컬 서버 유닛 (102) 은 캐시 (104) 로부터 요청된 데이터를 취출하고, 이러한 요청들에 응답하여 DASH 클라이언트 (110) 에 데이터를 제공할 수도 있다.
도 8 은 예시적인 멀티미디어 콘텐츠 (120) 의 엘리먼트들을 예시하는 개념도이다. 멀티미디어 콘텐츠 (120) 는 멀티미디어 콘텐츠 (64) (도 1), 또는 저장 매체 (62) 에 저장된 다른 멀티미디어 콘텐츠에 대응할 수도 있다. 도 8 의 예에서는, 멀티미디어 콘텐츠 (120) 는 미디어 프레젠테이션 디스크립션 (MPD) (122) 및 복수의 리프리젠테이션들 (124A-124N) (리프리젠테이션들 (124)) 을 포함한다. 리프리젠테이션 (124A) 은 선택적인 헤더 데이터 (126) 및 세그먼트들 (128A-128N) (세그먼트들 (128)) 을 포함하는 한편, 리프리젠테이션 (124N) 은 선택적인 헤더 데이터 (130) 및 세그먼트들 (132A-132N) (세그먼트들 (132)) 을 포함한다. 문자 N 은 편의를 위하여 리프리젠테이션들 (124) 의 각각에서 마지막 무비 프래그먼트를 지정하기 위해 이용된다. 일부 예들에서, 리프리젠테이션들 (124) 사이에는 상이한 갯수의 무비 프래그먼트들이 존재할 수도 있다.
MPD (122) 는 리프리젠테이션들 (124) 로부터 별개인 데이터 구조를 포함할 수도 있다. MPD (122) 는 도 1 의 매니페스트 파일 (66) 에 대응할 수도 있다. 마찬가지로, 리프리젠테이션들 (124) 은 도 1 의 리프리젠테이션들 (68) 에 대응할 수도 있다. 일반적으로, MPD (122) 는 리프리젠테이션들 (124) 의 특성들을 일반적으로 기술하는 데이터, 예컨대 코딩 및 렌더링 특성들, 적응 셋트들, MPD (122) 가 대응하는 프로파일, 텍스트 타입 정보, 카메라 각도 정보, 등급 정보, 트릭 모드 정보 (예를 들어, 시간적 서브-시퀀스들을 포함하는 리프리젠테이션들을 표시하는 정보) 및/또는 원격 주기들을 취출하기 위한 (예를 들어, 재생 도중에 미디어 콘텐츠 내로의 타겟화된 광고 삽입을 위한) 정보를 포함할 수도 있다.
존재할 경우에, 헤더 데이터 (126) 는 세그먼트들 (128) 의 특성들, 예를 들어, 랜덤 액세스 포인트들 (RAP) 들 (스트림 액세스 포인트 (SAP) 이라고도 지칭됨) 의 시간적 로케이션들, 세그먼트들 (128) 중 어느 것이 랜덤 액세스 포인트들을 포함하는지, 세그먼트들 (128) 내의 랜덤 액세스 포인트들에 대한 바이트 오프셋들, 세그먼트들 (128) 의 유니폼 리소스 로케이터 (URL) 들, 또는 세그먼트들 (128) 의 다른 양태들을 기술할 수도 있다. 존재할 경우에는, 헤더 데이터 (130) 는 세그먼트들 (132) 에 대한 유사한 특성들을 기술할 수도 있다. 추가적으로 또는 대안적으로, 이러한 특성들은 MPD (122) 내에 완전하게 포함될 수도 있다.
세그먼트들 (128, 132) 은 하나 이상의 코딩된 비디오 샘플들을 포함하는데, 이들 각각은 비디오 데이터의 프레임들 또는 슬라이스들을 포함할 수도 있다. 세그먼트들 (128) 의 코딩된 비디오 샘플들 각각은 유사한 특성들, 예를 들어, 높이, 폭, 및 대역폭 요건들을 가질 수도 있다. 비록 이러한 데이터가 도 8 의 예에서는 예시되지 않지만, 이러한 특성들은 MPD (122) 의 데이터에 의하여 기술될 수도 있다. MPD (122) 는, 이 개시물에서 기술되는 시그널링된 정보 중 임의의 것 또는 전부가 추가된, 3GPP 명세에 의하여 기술되는 바와 같은 특성들을 포함할 수도 있다.
세그먼트들 (128, 132) 각각은 고유한 유니폼 리소스 로케이터 (URL) 와 연관될 수도 있다. 따라서, 세그먼트들 (128, 132) 의 각각은 스트리밍 네트워크 프로토콜, 예컨대 DASH 를 이용하여 독립적으로 취출가능할 수도 있다. 이러한 방식으로, 목적지 디바이스, 예컨대 클라이언트 디바이스 (40) 는, HTTP GET 요청을 이용하여 세그먼트들 (128 또는 1324) 을 취출할 수도 있다. 일부 예들에서, 클라이언트 디바이스 (40) 는 HTTP 부분 GET 요청들을 이용하여 세그먼트들 (128 또는 132) 의 특정 바이트 범위들을 취출할 수도 있다.
도 9 는 리프리젠테이션의 세그먼트, 이를테면 도 8 의 세그먼트들 (128, 132) 중 하나의 세그먼트에 대응할 수도 있는, 예시적인 비디오 파일 (150) 의 엘리먼트들을 도시하는 블록도이다. 세그먼트들 (128, 132) 의 각각은 도 9 의 예에서 도시된 데이터의 배열에 실질적으로 부합하는 데이터를 포함할 수도 있다. 비디오 파일 (150) 은 세그먼트를 인캡슐레이션하는 것으로 말해질 수도 있다. 위에서 설명된 바와 같이, ISO 기반 미디어 파일 포맷 및 그 확장들에 따른 비디오 파일들은 데이터를 "박스들"이라고 지칭되는 일련의 오브젝트들에 저장한다. 도 9 의 예에서, 비디오 파일 (150) 은 파일 타입 (FTYP) 박스 (152), 무비 (MOOV) 박스 (154), 세그먼트 인덱스 (sidx) 박스들 (162), 무비 프래그먼트 (MOOF) 박스들 (164), 및 무비 프래그먼트 랜덤 액세스 (MFRA) 박스 (166) 를 포함한다. 비록 도 9 가 비디오 파일의 일 예를 나타내지만, 다른 미디어 파일들이 ISO 기본 미디어 파일 포맷 및 그것의 확장에 따른, 비디오 파일 (150) 의 데이터와 유사하게 구조화된 다른 타입들의 미디어 데이터 (예컨대, 오디오 데이터, 타임드 텍스트 데이터 등) 을 포함할 수도 있다는 것이 이해되어야 한다.
파일 타입 (FTYP) 박스 (152) 는 비디오 파일 (150) 에 대한 파일 타입을 일반적으로 기술한다. 파일 타입 박스 (152) 는 비디오 파일 (150) 에 대한 최상의 이용을 서술하는 사양을 식별하는 데이터를 포함할 수도 있다. 파일 타입 박스 (152) 는 MOOV 박스 (154), 무비 프래그먼트 박스들 (164), 및/또는 MFRA 박스 (166) 앞에 배치될 수도 있다.
일부 예들에서, 세그먼트, 이를테면 비디오 파일 (150) 은, FTYP 박스 (152) 앞에 MPD 업데이트 박스 (도시되지 않음) 를 포함할 수도 있다. MPD 업데이트 박스는 비디오 파일 (150) 을 포함하는 리프리젠테이션에 대응하는 MPD가 그 MPD를 업데이트하기 위한 정보와 함께 업데이트될 것임을 나타내는 정보를 포함할 수도 있다. 예를 들어, MPD 업데이트 박스는 MPD를 업데이트하는데 사용될 리소스에 대한 URI 또는 URL을 제공할 수도 있다. 다른 예로서, MPD 업데이트 박스는 MPD를 업데이트하기 위한 데이터를 포함할 수도 있다. 일부 예들에서, MPD 업데이트 박스는 비디오 파일 (150) 의 세그먼트 타입 (STYP) 박스 (도시되지 않음) 를 바로 뒤따를 수도 있으며, STYP 박스는 비디오 파일 (150) 에 대한 세그먼트 타입을 정의할 수도 있다.
MOOV 박스 (154) 는, 도 9 의 예에서, 무비 헤더 (MVHD) 박스 (156), 트랙 (TRAK) 박스 (158), 및 하나 이상의 무비 확장 (MVEX) 박스들 (160) 을 포함한다. 대체로, MVHD 박스 (156) 는 비디오 파일 (150) 의 일반 특성들을 기술할 수도 있다. 예를 들어, MVHD 박스 (156) 는 비디오 파일 (150) 이 원래 만들어졌던 때, 비디오 파일 (150) 이 마지막으로 수정되었던 때, 비디오 파일 (150) 에 대한 타임스케일, 비디오 파일 (150) 에 대한 재생의 지속기간을 기술하는 데이터, 또는 비디오 파일 (150) 을 일반적으로 기술하는 다른 데이터를 포함할 수도 있다.
TRAK 박스 (158) 는 비디오 파일 (150) 의 트랙에 대한 데이터를 포함할 수도 있다. TRAK 박스 (158) 는 TRAK 박스 (158) 에 대응하는 트랙의 특성들을 기술하는 트랙 헤더 (TKHD) 박스를 포함할 수도 있다. 일부 예들에서, TRAK 박스 (158) 는 코딩된 비디오 화상들을 포함하는 한편, 다른 예들에서, 트랙의 코딩된 비디오 화상들은 TRAK 박스 (158) 및/또는 sidx 박스들 (162) 의 데이터에 의해 참조될 수도 있는 무비 프래그먼트들 (164) 에 포함될 수도 있다.
일부 예들에서, 비디오 파일 (150) 은 하나를 초과하는 트랙을 포함할 수도 있다. 따라서, MOOV 박스 (154) 는 트랙들의 수와 동일한 수의 TRAK 박스들을 비디오 파일 (150) 내에 포함할 수도 있다. TRAK 박스 (158) 는 비디오 파일 (150) 의 대응하는 트랙의 특성들을 기술할 수도 있다. 예를 들어, TRAK 박스 (158) 는 대응하는 트랙에 대한 시간적 및/또는 공간적 정보를 기술할 수도 있다. MOOV 박스 (154) 의 TRAK 박스 (158) 에 유사한 TRAK 박스가, 인캡슐레이션 유닛 (30) (도 1) 이 비디오 파일, 이를테면 비디오 파일 (150) 에 파라미터 셋트 트랙을 포함시키는 경우, 파라미터 셋트 트랙의 특성들을 기술할 수도 있다. 인캡슐레이션 유닛 (30) 은 파라미터 셋트 트랙을 기술하는 TRAK 박스 내의 파라미터 셋트 트랙에서 시퀀스 레벨 SEI 메시지들의 존재를 시그널링할 수도 있다.
MVEX 박스들 (160) 은, 예컨대, 비디오 파일 (150) 이, 만약 있다면, MOOV 박스 (154) 내에 포함된 비디오 데이터 외에도, 무비 프래그먼트들 (164) 을 포함한다는 것을 시그널링하기 위해, 대응하는 무비 프래그먼트들 (164) 의 특성들을 기술할 수도 있다. 비디오 데이터를 스트리밍하는 맥락에서, 코딩된 비디오 화상들은 MOOV 박스 (154) 내에 보다는 무비 프래그먼트들 (164) 내에 포함될 수도 있다. 따라서, 모든 코딩된 비디오 샘플들은 MOOV 박스 (154) 내가 아니라, 무비 프래그먼트들 (164) 내에 포함될 수도 있다.
MOOV 박스 (154) 는 비디오 파일 (150) 에서의 무비 프래그먼트들 (164) 의 수와 동일한 수의 MVEX 박스들 (160) 을 포함할 수도 있다. MVEX 박스들 (160) 의 각각은 무비 프래그먼트들 (164) 중 대응하는 무비 프래그먼트의 특성들을 기술할 수도 있다. 예를 들어, 각각의 MVEX 박스는 무비 프래그먼트들 (164) 중 대응하는 무비 프래그먼트에 대한 시간적 지속기간을 기술하는 MEHD (movie extends header box) 박스를 포함할 수도 있다.
위에서 언급된 바와 같이, 인캡슐레이션 유닛 (30) 은 실제 코딩된 비디오 데이터를 포함하지 않는 비디오 샘플에 시퀀스 데이터 셋트를 저장할 수도 있다. 비디오 샘플은 특정 시간 인스턴스에서의 코딩된 화상의 리프리젠테이션인 액세스 유닛에 일반적으로 대응할 수도 있다. AVC 및 HEVC 의 맥락에서, 코딩된 화상은 액세스 유닛의 모든 화소들을 구축하기 위한 정보를 포함하는 하나 이상의 VCL NAL 유닛들과, 다른 연관된 비-VCL NAL 유닛들, 이를테면 SEI 메시지들을 포함한다. 따라서, 인캡슐레이션 유닛 (30) 은 시퀀스 레벨 SEI 메시지들을 포함할 수도 있는 시퀀스 데이터 셋트를 무비 프래그먼트들 (164) 중 하나의 무비 프래그먼트에 포함시킬 수도 있다. 인캡슐레이션 유닛 (30) 은 무비 프래그먼트들 (164) 중 하나의 무비 프래그먼트에 존재하는 것으로서의 시퀀스 데이터 셋트 및/또는 시퀀스 레벨 SEI 메시지들의 존재를, 무비 프래그먼트들 (164) 중 상기 하나의 무비 프래그먼트에 대응하는 MVEX 박스들 (160) 중 하나의 MVEX 박스 내에서 추가로 시그널링할 수도 있다.
SIDX 박스들 (162) 은 비디오 파일 (150) 의 옵션적 엘리먼트들이다. 다시 말하면, 3GPP 파일 포맷, 또는 다른 이러한 파일 포맷들에 부합하는 비디오 파일들은 반드시 SIDX 박스들 (162) 을 포함하는 것은 아니다. 3GPP 파일 포맷의 예에 따라, SIDX 박스는 세그먼트 (예컨대, 비디오 파일 (150) 내에 포함된 세그먼트) 의 서브-세그먼트를 식별하는데 사용될 수도 있다. 3GPP 파일 포맷은 서브-세그먼트를 "대응하는 미디어 데이터 박스(들)를 갖는 하나 이상의 연속적인 무비 프래그먼트 박스들의 독립식 셋트"로서 정의하고, "무비 프래그먼트 박스에 의해 참조되는 데이터를 포함하는 미디어 데이터 박스가 그 무비 프래그먼트 박스를 뒤따라야만 하고 동일한 트랙에 관한 정보를 포함하는 다음 무비 프래그먼트 박스에 선행해야만 한다". 3GPP 파일 포맷은 SIDX 박스가 "박스에 의해 기록된 (서브) 세그먼트의 서브세그먼트들에 대한 참조들의 시퀀스를 포함한다"는 것을 또한 표시한다. 참조된 서브세그먼트들은 프레젠테이션 시간에 연속적이다. 마찬가지로, 세그먼트 인덱스 박스에 의해 참조되는 바이트들은 세그먼트 내에서 항상 연속적이다. 참조된 사이즈는 참조된 자료에서의 바이트들의 수의 카운트를 제공한다.
SIDX 박스들 (162) 은 비디오 파일 (150) 에 포함된 세그먼트의 하나 이상의 서브-세그먼트들을 나타내는 정보를 일반적으로 제공한다. 예를 들면, 이러한 정보는 서브-세그먼트들이 시작하며 그리고/또는 종료하는 재생 시간들, 서브-세그먼트들에 대한 바이트 오프셋들, 서브-세그먼트들이 스트림 액세스 포인트 (SAP) 를 포함하는지 (예컨대 그 SAP로 시작하는지) 의 여부, SAP에 대한 타입 (예컨대, SAP가 순간적 디코더 리프레시 (IDR) 화상인지, 클린 랜덤 액세스 (CRA) 화상인지, 브로큰 링크 액세스 (BLA) 화상인지 등), 서브-세그먼트에서의 SAP의 포지션 (재생 시간 및/또는 바이트 오프셋 측면에서임) 등을 포함할 수도 있다.
무비 프래그먼트들 (164) 은 하나 이상의 코딩된 비디오 화상들을 포함할 수도 있다. 일부 예들에서, 무비 프래그먼트들 (164) 은 하나 이상의 화상들의 그룹들 (GOP들) 을 포함할 수도 있으며, 그 GOP들의 각각은 다수의 코딩된 비디오 화상들, 예컨대, 프레임들 또는 화상들을 포함할 수도 있다. 덧붙여서, 위에서 설명된 바와 같이, 무비 프래그먼트들 (164) 은 일부 예들에서 시퀀스 데이터 셋트들을 포함할 수도 있다. 무비 프래그먼트들 (164) 의 각각은 무비 프래그먼트 헤더 박스 (MFHD, 도 9 에는 도시되지 않음) 를 포함할 수도 있다. MVHD 박스는 대응하는 무비 프래그먼트의 특성들, 이를테면 무비 프래그먼트에 대한 시퀀스 번호를 기술할 수도 있다. 무비 프래그먼트들 (164) 은 비디오 파일 (150) 내에 시퀀스 번호의 순서로 포함될 수도 있다.
MFRA 박스 (166) 는 비디오 파일 (150) 의 무비 프래그먼트들 (164) 내의 랜덤 액세스 포인트들을 기술할 수도 있다. 이는 비디오 파일 (150) 에 의해 인캡슐레이션된 세그멘트 내에서 특정한 시간적 로케이션들 (즉, 재생 시간들) 에 대한 탐색들을 수행하는 것과 같은, 트릭 모드들을 수행하는 것을 지원할 수도 있다. MFRA 박스 (166) 는 일반적으로 옵션적이고 일부 예들에서, 비디오 파일들에 포함될 필요가 없다. 비슷하게, 클라이언트 디바이스, 이를테면 클라이언트 디바이스 (40) 는, 비디오 파일 (150) 의 비디오 데이터를 올바르게 디코딩하고 디스플레이하기 위해 MFRA 박스 (166) 를 반드시 참조할 필요는 없다. MFRA 박스 (166) 는 비디오 파일 (150) 의 트랙들의 수와 동일한, 또는 일부 예들에서는, 비디오 파일 (150) 의 미디어 트랙들 (예컨대, 비-힌트 트랙들) 의 수와 동일한 수의 트랙 프래그먼트 랜덤 액세스 (track fragment random access; TFRA) 박스들 (도시되지 않음) 을 포함할 수도 있다.
일부 예들에서, 무비 프래그먼트들 (164) 은 하나 이상의 스트림 액세스 포인트들 (SAP들), 이를테면 IDR 화상들을 포함할 수도 있다. 비슷하게, MFRA 박스 (166) 는 SAP들의 비디오 파일 (150) 내의 로케이션들의 표시들을 제공할 수도 있다. 따라서, 비디오 파일 (150) 의 시간적 서브-시퀀스가 비디오 파일 (150) 의 SAP들로부터 형성될 수도 있다. 시간적 서브-시퀀스는 SAP들에 의존하는 P-프레임들 및/또는 B-프레임들과 같은 다른 화상들을 또한 포함할 수도 있다. 시간적 서브-시퀀스의 프레임들 및/또는 슬라이스들은 서브-시퀀스의 다른 프레임들/슬라이스들에 의존하는 시간적 서브-시퀀스의 프레임들/슬라이스들이 적절히 디코딩될 수 있도록 세그먼트들 내에 배열될 수도 있다. 예를 들어, 데이터의 계층적 배열에서, 다른 데이터에 대한 예측을 위해 사용되는 데이터가 시간적 서브-시퀀스에 또한 포함될 수도 있다.
도 10 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다. 도 10 의 기법들은 일반적인 디바이스와 관련하여 설명될 것이다. 디바이스는, 예를 들어, 서버 디바이스 (60) 와 같은 서버 디바이스, 클라이언트 디바이스 (40) 와 같은 클라이언트 디바이스, 또는 미디어 데이터를 프로세싱하도록 구성된 몇몇 다른 타입의 디바이스에 대응할 수도 있다. 디바이스는 미디어 데이터를 수신한다 (200). 미디어 데이터는 VR 비디오 데이터 및 비-VR 비디오 데이터를 포함할 수도 있다. 디바이스는, 미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 미디어 프레젠테이션에서 사용된 투영 맵핑을 결정한다 (202). 적응 셋트 레벨에서 시그널링된 데이터는, 예를 들어, 적응 셋트에서의 엘리먼트일 수도 있고, 비디오 리프리젠테이션은 그 적응 셋트에 속할 수도 있다.
디바이스는, 미디어 프레젠테이션에서 사용된 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱한다 (204). 서버 디바이스는, 예를 들어, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 적어도 부분적으로 기초하여 비디오 리프리젠테이션의 세그먼트들을 취출할지 여부를 결정함으로써, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱할 수도 있다. 서버 디바이스는, 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 클라이언트 디바이스에 전송할 수도 있다. 클라이언트 디바이스는, 예를 들어, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 적어도 부분적으로 기초하여 비디오 리프리젠테이션의 세그먼트들을 어떻게 디코딩할지를 결정함으로써, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱할 수도 있다. 클라이언트 디바이스는, 예를 들어, 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 디코딩하고, 미디어 프레젠테이션의 비디오 리프리젠테이션의 디코딩된 세그먼트들을 출력할 수도 있다.
일부 구현들에서, 적응 레벨 시그널링은 기간 레벨 시그널링의 존재에 의존하여 선택적일 수도 있다. 일부 예들에서, 디바이스는 또한, 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시가 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하고, 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시가 미디어 프레젠테이션의 기간 레벨에서 존재하지 않는다고 결정하는 것에 응답하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정할 수도 있다. 다른 예들에서, 디바이스는 또한, 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시가 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하고, 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시가 미디어 프레젠테이션의 기간 레벨에서 존재한다고 결정하는 것에 응답하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정할 수도 있다.
디바이스는 또한, 제 2 미디어 프레젠테이션의 기간 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 그리고 그 제 2 미디어 프레젠테이션의 리프리젠테이션 레벨에서의 추가적인 시그널링 없이, 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하고, 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 제 2 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱할 수도 있다.
도 11 은 본 개시의 기법들에 따른, 미디어 데이터를 프로세싱하기 위한 플로우차트이다. 도 11 의 기법들은 일반적인 디바이스와 관련하여 설명될 것이다. 디바이스는, 예를 들어, 콘텐츠 준비 디바이스 (20) 와 같은 콘텐츠 준비 디바이스 또는 미디어 데이터를 전송하도록 구성된 몇몇 다른 타입의 디바이스에 대응할 수도 있다. 디바이스는 미디어 데이터를 생성한다 (210). 미디어 데이터는, 예를 들어, VR 비디오 데이터 및 비-VR 비디오 데이터를 포함할 수도 있다. 디바이스는, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 미디어 데이터에 포함시킨다 (212). 적응 셋트 레벨에서 시그널링된 데이터는, 예를 들어, 적응 셋트에서의 엘리먼트일 수도 있고, 비디오 리프리젠테이션은 그 적응 셋트에 속할 수도 있다. 디바이스는 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송한다 (214).
일부 구현들에서, 적응 레벨 시그널링은 기간 레벨 시그널링의 존재에 의존하여 선택적일 수도 있다. 일부 예들에서, 디바이스는 또한, 미디어 프레젠테이션의 기간 레벨에서 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시를 포함시킬지 여부를 결정하고, 미디어 프레젠테이션의 기간 레벨에서 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시를 포함시키지 않을 것이라는 결정에 응답하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 포함시킬 수도 있다. 다른 예들에서, 디바이스는 또한, 미디어 프레젠테이션의 기간 레벨에서 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시를 포함시킬지 여부를 결정하고, 미디어 프레젠테이션의 기간 레벨에서 미디어 프레젠테이션에서 사용되는 투영 맵핑의 표시를 포함시킬 것이라는 결정에 응답하여, 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 포함시킬 수도 있다.
디바이스는 또한, 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 제 2 미디어 프레젠테이션의 기간 레벨에서 식별되는 데이터를 미디어 데이터에 포함시키고, 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑에 기초하여 제 2 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 또는 그것을 통해 전송될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 (tangible) 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비일시적 (non-transitory) 인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 해당할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
비제한적인 예로, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및 마이크로파를 이용하여 송신되는 경우, 그 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 연결들, 반송파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 대신 비-일시적, 유형의 저장 매체들을 지향하고 있음이 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하는데, 디스트 (disk) 들은 보통 데이터를 자기적으로 재생하지만, 디스크 (disc) 들은 레이저들로 광적으로 데이터를 재생한다. 상기한 것들의 조합들 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서 (DSP) 들, 범용 마이크로프로세서들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 로직 어레이 (FPGA) 들, 또는 다른 동등한 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서" 는 전술한 구조 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중의 어느 것을 지칭할 수도 있다. 덧붙여서, 일부 양태들에서, 본원에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되는, 또는 결합형 코덱으로 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있을 것이다.
본 개시의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 한 셋트의 IC 들 (예컨대, 칩 셋) 을 포함하는, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 그보다는, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.
다양한 예들이 기술되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.
Claims (30)
- 미디어 데이터를 프로세싱하는 방법으로서,
상기 미디어 데이터를 수신하는 단계로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 수신하는 단계;
미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하는 단계; 및
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하는 단계를 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하는 단계는,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 적어도 부분적으로 기초하여, 상기 비디오 리프리젠테이션의 상기 세그먼트들을 취출할지 여부를 결정하는 단계; 및
상기 비디오 리프리젠테이션의 상기 세그먼트들을 취출하는 단계를 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하는 단계는,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 적어도 부분적으로 기초하여, 상기 비디오 리프리젠테이션의 상기 세그먼트들을 어떻게 디코딩할지를 결정하는 단계를 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시가 상기 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하는 단계를 더 포함하고,
상기 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하는 단계는, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시가 상기 미디어 프레젠테이션의 상기 기간 레벨에서 존재하지 않는다고 결정하는 것에 응답하여 수행되는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시가 상기 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하는 단계를 더 포함하고,
상기 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하는 단계는, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시가 상기 미디어 프레젠테이션의 상기 기간 레벨에서 존재한다고 결정하는 것에 응답하여 수행되는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
제 2 미디어 프레젠테이션의 기간 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 그리고 상기 제 2 미디어 프레젠테이션의 리프리젠테이션 레벨에서의 추가적인 시그널링 없이, 상기 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하는 단계;
상기 제 2 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 제 2 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하는 단계를 더 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 적응 셋트 레벨에서 시그널링된 상기 데이터는 적응 셋트에서의 엘리먼트를 포함하고, 상기 비디오 리프리젠테이션은 상기 적응 셋트에 속하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 상기 세그먼트들을 디코딩하는 단계; 및
상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 디코딩된 상기 세그먼트들을 출력하는 단계를 더 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 1 항에 있어서,
상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 상기 세그먼트들을 클라이언트 디바이스에 전송하는 단계를 더 포함하는, 미디어 데이터를 프로세싱하는 방법. - 미디어 데이터를 프로세싱하기 위한 디바이스로서,
상기 미디어 데이터를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 미디어 데이터를 수신하는 것으로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 수신하는 것을 행하고;
미디어 프레젠테이션을 위한 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하며; 그리고
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하도록
구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하기 위해, 상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 적어도 부분적으로 기초하여, 상기 비디오 리프리젠테이션의 상기 세그먼트들을 취출할지 여부를 결정하고, 상기 비디오 리프리젠테이션의 상기 세그먼트들을 취출하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하기 위해, 상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 적어도 부분적으로 기초하여, 상기 비디오 리프리젠테이션의 상기 세그먼트들을 어떻게 디코딩할지를 결정하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시가 상기 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하도록 더 구성되고,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시가 상기 미디어 프레젠테이션의 상기 기간 레벨에서 존재하지 않는다고 결정하는 것에 응답하여, 상기 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시가 상기 미디어 프레젠테이션의 기간 레벨에서 존재하는지 여부를 결정하도록 더 구성되고,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시가 상기 미디어 프레젠테이션의 상기 기간 레벨에서 존재한다고 결정하는 것에 응답하여, 상기 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은,
제 2 미디어 프레젠테이션의 기간 레벨에서 시그널링된 데이터에 적어도 부분적으로 기초하여, 그리고 상기 제 2 미디어 프레젠테이션의 리프리젠테이션 레벨에서의 추가적인 시그널링 없이, 상기 제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑을 결정하고;
상기 제 2 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 제 2 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 프로세싱하도록 더 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 적응 셋트 레벨에서 시그널링된 상기 데이터는 적응 셋트에서의 엘리먼트를 포함하고, 상기 비디오 리프리젠테이션은 상기 적응 셋트에 속하는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은,
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 상기 세그먼트들을 디코딩하고; 그리고
상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 디코딩된 상기 세그먼트들을 출력하도록 더 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션의 상기 비디오 리프리젠테이션의 상기 세그먼트들을 클라이언트 디바이스에 전송하도록 더 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 10 항에 있어서,
상기 미디어 데이터를 수신하도록 구성된 수신기를 더 포함하는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 19 항에 있어서,
상기 디바이스는 무선 통신 디바이스를 포함하고, 상기 수신기는, 무선 통신 표준에 따라, 상기 미디어 데이터를 포함하는 신호를 복조하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 미디어 데이터를 프로세싱하는 방법으로서,
미디어 데이터를 생성하는 단계로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 생성하는 단계;
상기 미디어 데이터에 포함된 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키는 단계; 및
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송하는 단계를 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 21 항에 있어서,
상기 미디어 프레젠테이션의 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시를 포함시킬지 여부를 결정하는 단계를 더 포함하고,
상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키는 단계는, 상기 미디어 프레젠테이션의 상기 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시를 포함시키지 않을 것이라는 결정에 응답하여 수행되는, 미디어 데이터를 프로세싱하는 방법. - 제 21 항에 있어서,
상기 미디어 프레젠테이션의 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시를 포함시킬지 여부를 결정하는 단계를 더 포함하고,
상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키는 단계는, 상기 미디어 프레젠테이션의 상기 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시를 포함시킬 것이라는 결정에 응답하여 수행되는, 미디어 데이터를 프로세싱하는 방법. - 제 21 항에 있어서,
제 2 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 상기 제 2 미디어 프레젠테이션의 기간 레벨에서 식별되는 데이터를 상기 미디어 데이터에 포함시키는 단계; 및
상기 제 2 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 제 2 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송하는 단계를 더 포함하는, 미디어 데이터를 프로세싱하는 방법. - 제 21 항에 있어서,
상기 적응 셋트 레벨에서 시그널링되는 상기 데이터는 적응 셋트에서의 엘리먼트를 포함하고, 상기 비디오 리프리젠테이션은 상기 적응 셋트에 속하는, 미디어 데이터를 프로세싱하는 방법. - 미디어 데이터를 프로세싱하기 위한 디바이스로서,
상기 미디어 데이터를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
미디어 데이터를 생성하는 것으로서, 상기 미디어 데이터는 가상 현실 (VR) 비디오 데이터를 포함하는, 상기 미디어 데이터를 생성하는 것을 행하고;
상기 미디어 데이터에 포함된 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키며; 그리고
상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑에 기초하여 상기 미디어 프레젠테이션의 비디오 리프리젠테이션의 세그먼트들을 전송하도록
구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 26 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션의 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시를 포함시킬지 여부를 결정하도록 더 구성되고,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션의 상기 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시를 포함시키지 않을 것이라는 결정에 응답하여, 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 26 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션의 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 표시를 포함시킬지 여부를 결정하도록 더 구성되고,
상기 하나 이상의 프로세서들은, 상기 미디어 프레젠테이션의 상기 기간 레벨에서 상기 미디어 프레젠테이션에서 사용되는 상기 투영 맵핑의 상기 표시를 포함시킬 것이라는 결정에 응답하여, 상기 미디어 프레젠테이션에서 사용되는 투영 맵핑을 식별하는 미디어 프레젠테이션 디스크립션의 적응 셋트 레벨에서 시그널링되는 데이터를 상기 미디어 데이터에 포함시키도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 26 항에 있어서,
상기 적응 셋트 레벨에서 시그널링된 상기 데이터는 적응 셋트에서의 엘리먼트를 포함하고, 상기 비디오 리프리젠테이션은 상기 적응 셋트에 속하는, 미디어 데이터를 프로세싱하기 위한 디바이스. - 제 26 항에 있어서,
상기 디바이스는, 송신기를 포함하는 무선 통신 디바이스를 포함하고, 상기 송신기는, 무선 통신 표준에 따라, 상기 미디어 데이터를 포함하는 신호를 변조하도록 구성되는, 미디어 데이터를 프로세싱하기 위한 디바이스.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662341012P | 2016-05-24 | 2016-05-24 | |
US62/341,012 | 2016-05-24 | ||
US15/602,887 US10587934B2 (en) | 2016-05-24 | 2017-05-23 | Virtual reality video signaling in dynamic adaptive streaming over HTTP |
US15/602,887 | 2017-05-23 | ||
PCT/US2017/034261 WO2017205504A1 (en) | 2016-05-24 | 2017-05-24 | Virtual reality video signaling in dynamic adaptive streaming over http |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190014500A true KR20190014500A (ko) | 2019-02-12 |
KR102534899B1 KR102534899B1 (ko) | 2023-05-22 |
Family
ID=59014789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187033505A KR102534899B1 (ko) | 2016-05-24 | 2017-05-24 | Http 를 통한 동적 적응형 스트리밍에서의 가상 현실 비디오 시그널링 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10587934B2 (ko) |
EP (1) | EP3466074A1 (ko) |
JP (1) | JP2019521584A (ko) |
KR (1) | KR102534899B1 (ko) |
CN (1) | CN109076238B (ko) |
BR (1) | BR112018073902A2 (ko) |
CA (1) | CA3021215A1 (ko) |
WO (1) | WO2017205504A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230060568A (ko) * | 2021-10-27 | 2023-05-08 | 한국전자기술연구원 | 사용자의 관심영역 추정이 가능한 저지연 360 vr 스트리밍 시스템 및 방법 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3092796B1 (en) * | 2014-01-07 | 2020-06-17 | Canon Kabushiki Kaisha | Method, device, and computer program for encoding inter-layer dependencies |
US10412461B2 (en) * | 2015-06-12 | 2019-09-10 | Cable Television Laboratories, Inc. | Media streaming with latency minimization |
US10587934B2 (en) | 2016-05-24 | 2020-03-10 | Qualcomm Incorporated | Virtual reality video signaling in dynamic adaptive streaming over HTTP |
EP3249929A1 (en) * | 2016-05-25 | 2017-11-29 | Thomson Licensing | Method and network equipment for establishing a manifest |
WO2018011054A1 (en) | 2016-07-15 | 2018-01-18 | Koninklijke Kpn N.V. | Streaming virtual reality video |
TWI599218B (zh) * | 2016-07-29 | 2017-09-11 | 元智大學 | 即時影音傳輸系統 |
CN109891850B (zh) * | 2016-09-09 | 2023-04-04 | Vid拓展公司 | 用于减少360度视区自适应流媒体延迟的方法和装置 |
CN109923867A (zh) * | 2016-09-14 | 2019-06-21 | 皇家Kpn公司 | 流式传输虚拟现实视频 |
WO2018083211A1 (en) * | 2016-11-04 | 2018-05-11 | Koninklijke Kpn N.V. | Streaming virtual reality video |
US11172208B2 (en) * | 2017-02-28 | 2021-11-09 | Nokia Technologies Oy | Method and apparatus for improving the visual quality of viewport-based omnidirectional video streaming |
US10375375B2 (en) * | 2017-05-15 | 2019-08-06 | Lg Electronics Inc. | Method of providing fixed region information or offset region information for subtitle in virtual reality system and device for controlling the same |
US10818087B2 (en) | 2017-10-02 | 2020-10-27 | At&T Intellectual Property I, L.P. | Selective streaming of immersive video based on field-of-view prediction |
US11622153B2 (en) * | 2017-10-04 | 2023-04-04 | Interdigital Madison Patent Holdings, Sas | Customized 360-degree media viewing |
US10659815B2 (en) | 2018-03-08 | 2020-05-19 | At&T Intellectual Property I, L.P. | Method of dynamic adaptive streaming for 360-degree videos |
CN110351492B (zh) * | 2018-04-06 | 2021-11-19 | 中兴通讯股份有限公司 | 一种视频数据处理方法、装置及介质 |
WO2019200227A1 (en) * | 2018-04-13 | 2019-10-17 | Futurewei Technologies, Inc. | Signaling spatial region correspondence between virtual reality viewpoints |
CN110519652B (zh) * | 2018-05-22 | 2021-05-18 | 华为软件技术有限公司 | Vr视频播放方法、终端及服务器 |
KR102073230B1 (ko) * | 2018-06-28 | 2020-02-04 | 주식회사 알파서클 | 특정 영역의 화질을 개선하기 위해 복수의 가상현실영상을 재생하는 가상현실영상재생장치 및 가상현실영상생성방법 |
US12034973B2 (en) * | 2018-07-06 | 2024-07-09 | Nokia Technologies Oy | Apparatus and a method for performing a file encapsulation and decapsulation process for a coded video bitstream |
US11716505B2 (en) * | 2018-08-29 | 2023-08-01 | Zhejiang University | Methods and apparatus for media data processing and transmitting and reference picture specifying |
US10779014B2 (en) | 2018-10-18 | 2020-09-15 | At&T Intellectual Property I, L.P. | Tile scheduler for viewport-adaptive panoramic video streaming |
CN111263191B (zh) * | 2018-11-30 | 2023-06-27 | 中兴通讯股份有限公司 | 视频数据的处理方法、装置、相关设备及存储介质 |
US11546402B2 (en) * | 2019-01-04 | 2023-01-03 | Tencent America LLC | Flexible interoperability and capability signaling using initialization hierarchy |
US11523185B2 (en) | 2019-06-19 | 2022-12-06 | Koninklijke Kpn N.V. | Rendering video stream in sub-area of visible display area |
CN114009032A (zh) * | 2019-06-21 | 2022-02-01 | 瑞典爱立信有限公司 | 视频编码层上切换指示 |
WO2021087843A1 (en) * | 2019-11-07 | 2021-05-14 | Intel Corporation | Heterogeneous real-time streaming and decoding of ultra-high resolution video content |
CN111586414B (zh) * | 2020-04-07 | 2022-04-15 | 南京师范大学 | 一种基于svc和dash的360°视频流调度方法 |
WO2021205061A1 (en) | 2020-04-07 | 2021-10-14 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
JP7467647B2 (ja) | 2020-06-24 | 2024-04-15 | 中興通訊股▲ふん▼有限公司 | ボリュメトリックメディア処理方法および装置 |
US11412283B1 (en) | 2021-04-27 | 2022-08-09 | City University Of Hong Kong | System and method for adaptively streaming video |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014022017A1 (en) * | 2012-08-03 | 2014-02-06 | Intel Corporation | Methods for quality-aware adaptive streaming over hypertext transfer protocol |
WO2015197818A1 (en) * | 2014-06-27 | 2015-12-30 | Koninklijke Kpn N.V. | Hevc-tiled video streaming |
WO2016002513A1 (ja) * | 2014-07-01 | 2016-01-07 | ソニー株式会社 | 情報処理装置および方法 |
US10587934B2 (en) * | 2016-05-24 | 2020-03-10 | Qualcomm Incorporated | Virtual reality video signaling in dynamic adaptive streaming over HTTP |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110297A1 (en) * | 2001-12-12 | 2003-06-12 | Tabatabai Ali J. | Transforming multimedia data for delivery to multiple heterogeneous devices |
EP2526671B1 (en) * | 2010-01-18 | 2016-11-16 | Telefonaktiebolaget LM Ericsson (publ) | Methods and arrangements for http media stream distribution |
US9467493B2 (en) * | 2010-09-06 | 2016-10-11 | Electronics And Telecommunication Research Institute | Apparatus and method for providing streaming content |
WO2012032502A1 (en) * | 2010-09-10 | 2012-03-15 | Nokia Corporation | A method and apparatus for adaptive streaming |
US20130042100A1 (en) * | 2011-08-09 | 2013-02-14 | Nokia Corporation | Method and apparatus for forced playback in http streaming |
US20130278633A1 (en) * | 2012-04-20 | 2013-10-24 | Samsung Electronics Co., Ltd. | Method and system for generating augmented reality scene |
US9438818B2 (en) | 2012-06-20 | 2016-09-06 | Qualcomm Incorporated | Device and method for multimedia communications with picture orientation information |
JP6151798B2 (ja) * | 2013-01-17 | 2017-06-21 | インテル アイピー コーポレイション | Dashアウェア・ネットワークアプリケーションファンクション(d−naf) |
US20140282113A1 (en) * | 2013-03-15 | 2014-09-18 | John Cronin | Personal digital assistance and virtual reality |
US9854017B2 (en) | 2013-03-15 | 2017-12-26 | Qualcomm Incorporated | Resilience in the presence of missing media segments in dynamic adaptive streaming over HTTP |
US9705955B2 (en) * | 2013-04-18 | 2017-07-11 | Futurewei Technologies, Inc. | Period labeling in dynamic adaptive streaming over hypertext transfer protocol |
KR102241672B1 (ko) * | 2013-04-30 | 2021-04-16 | 소니 주식회사 | 송신 장치, 송신 방법, 수신 장치 및 수신 방법 |
KR20150012206A (ko) * | 2013-07-24 | 2015-02-03 | 한국전자통신연구원 | 3차원 콘텐츠의 부호화 방법 및 장치 |
EP3092806A4 (en) * | 2014-01-07 | 2017-08-23 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US20150199498A1 (en) * | 2014-01-10 | 2015-07-16 | Furturewei Technologies, Inc. | Flexible and efficient signaling and carriage of authorization acquisition information for dynamic adaptive streaming |
JP6165997B2 (ja) * | 2014-04-02 | 2017-07-19 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 身体照明装置 |
CN106416239B (zh) | 2014-05-29 | 2019-04-09 | 奈克斯特Vr股份有限公司 | 用于交付内容和/或回放内容的方法和装置 |
US10812546B2 (en) * | 2014-12-24 | 2020-10-20 | Intel IP Corporation | Link-aware streaming adaptation |
US20180176650A1 (en) | 2015-06-12 | 2018-06-21 | Sony Corporation | Information processing apparatus and information processing method |
US9780893B2 (en) * | 2015-07-08 | 2017-10-03 | Litepoint Corporation | Method for testing a radio frequency (RF) data packet signal transceiver packet error rate |
US10065329B2 (en) * | 2015-07-31 | 2018-09-04 | The Boeing Company | Systems and methods for zip-tie cutting |
US10491711B2 (en) * | 2015-09-10 | 2019-11-26 | EEVO, Inc. | Adaptive streaming of virtual reality data |
CN108476324B (zh) * | 2015-10-08 | 2021-10-29 | 皇家Kpn公司 | 增强视频流的视频帧中的感兴趣区域的方法、计算机和介质 |
US10389999B2 (en) * | 2016-02-17 | 2019-08-20 | Qualcomm Incorporated | Storage of virtual reality video in media files |
US9924238B2 (en) * | 2016-03-21 | 2018-03-20 | Screenovate Technologies Ltd. | Method and a system for using a computerized source device within the virtual environment of a head mounted device |
US20170286993A1 (en) * | 2016-03-31 | 2017-10-05 | Verizon Patent And Licensing Inc. | Methods and Systems for Inserting Promotional Content into an Immersive Virtual Reality World |
US10088898B2 (en) * | 2016-03-31 | 2018-10-02 | Verizon Patent And Licensing Inc. | Methods and systems for determining an effectiveness of content in an immersive virtual reality world |
WO2017195881A1 (ja) * | 2016-05-13 | 2017-11-16 | ソニー株式会社 | ファイル生成装置およびファイル生成方法、並びに、再生装置および再生方法 |
GB2578227B (en) * | 2016-05-23 | 2021-09-15 | Canon Kk | Method, device, and computer program for adaptive streaming of virtual reality media content |
GB2550589B (en) * | 2016-05-23 | 2019-12-04 | Canon Kk | Method, device, and computer program for improving streaming of virtual reality media content |
WO2017203098A1 (en) * | 2016-05-24 | 2017-11-30 | Nokia Technologies Oy | Method and an apparatus and a computer program for encoding media content |
EP3249929A1 (en) * | 2016-05-25 | 2017-11-29 | Thomson Licensing | Method and network equipment for establishing a manifest |
US10313763B2 (en) * | 2016-07-29 | 2019-06-04 | Mediatek, Inc. | Method and apparatus for requesting and receiving selected segment streams based on projection information |
CN109362242B (zh) * | 2016-10-10 | 2021-05-14 | 华为技术有限公司 | 一种视频数据的处理方法及装置 |
US10951950B2 (en) * | 2017-07-31 | 2021-03-16 | Nokia Technologies Oy | Method and apparatus for presenting a video loop during a storyline |
-
2017
- 2017-05-23 US US15/602,887 patent/US10587934B2/en active Active
- 2017-05-24 BR BR112018073902-2A patent/BR112018073902A2/pt not_active IP Right Cessation
- 2017-05-24 CN CN201780028785.5A patent/CN109076238B/zh active Active
- 2017-05-24 EP EP17728366.0A patent/EP3466074A1/en active Pending
- 2017-05-24 JP JP2018561472A patent/JP2019521584A/ja active Pending
- 2017-05-24 WO PCT/US2017/034261 patent/WO2017205504A1/en active Search and Examination
- 2017-05-24 CA CA3021215A patent/CA3021215A1/en not_active Abandoned
- 2017-05-24 KR KR1020187033505A patent/KR102534899B1/ko active IP Right Grant
-
2019
- 2019-11-08 US US16/678,698 patent/US11375291B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014022017A1 (en) * | 2012-08-03 | 2014-02-06 | Intel Corporation | Methods for quality-aware adaptive streaming over hypertext transfer protocol |
WO2015197818A1 (en) * | 2014-06-27 | 2015-12-30 | Koninklijke Kpn N.V. | Hevc-tiled video streaming |
WO2016002513A1 (ja) * | 2014-07-01 | 2016-01-07 | ソニー株式会社 | 情報処理装置および方法 |
US10587934B2 (en) * | 2016-05-24 | 2020-03-10 | Qualcomm Incorporated | Virtual reality video signaling in dynamic adaptive streaming over HTTP |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230060568A (ko) * | 2021-10-27 | 2023-05-08 | 한국전자기술연구원 | 사용자의 관심영역 추정이 가능한 저지연 360 vr 스트리밍 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2019521584A (ja) | 2019-07-25 |
KR102534899B1 (ko) | 2023-05-22 |
WO2017205504A1 (en) | 2017-11-30 |
CN109076238B (zh) | 2022-08-05 |
CA3021215A1 (en) | 2017-11-30 |
US11375291B2 (en) | 2022-06-28 |
EP3466074A1 (en) | 2019-04-10 |
US20200351572A1 (en) | 2020-11-05 |
US20170347163A1 (en) | 2017-11-30 |
CN109076238A (zh) | 2018-12-21 |
BR112018073902A2 (pt) | 2019-02-26 |
US10587934B2 (en) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11375291B2 (en) | Virtual reality video signaling in dynamic adaptive streaming over HTTP | |
KR102614207B1 (ko) | Mime 타입 파라미터들을 이용하는 네트워크 비디오 스트리밍에서의 중요 비디오 정보 시그널링 | |
KR102252238B1 (ko) | 이미지에서의 가장 관심있는 영역 | |
KR102342274B1 (ko) | 이미지에서 가장 관심있는 영역의 진보된 시그널링 | |
KR20200030053A (ko) | 미디어 콘텐츠를 위한 영역별 패킹, 콘텐츠 커버리지, 및 시그널링 프레임 패킹 | |
US10567734B2 (en) | Processing omnidirectional media with dynamic region-wise packing | |
KR102434300B1 (ko) | 샘플 엔트리들 및 랜덤 액세스 | |
KR102434299B1 (ko) | 샘플 엔트리들 및 랜덤 액세스 | |
KR102117805B1 (ko) | 전방향성 미디어 포맷을 이용한 미디어 데이터 프로세싱 | |
KR102654999B1 (ko) | 강화된 영역별 패킹 및 뷰포트 독립적 hevc 미디어 프로파일 | |
KR101436267B1 (ko) | 비디오 구성요소들을 멀티플렉싱하기 위한 데이터의 시그널링 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |