KR20240112312A - 어드레싱가능한 자원 인덱스 트랙 및 이벤트를 이용한 cmaf 및 dash 클라이언트에 의한 대역폭 전환을 위한 방법 - Google Patents
어드레싱가능한 자원 인덱스 트랙 및 이벤트를 이용한 cmaf 및 dash 클라이언트에 의한 대역폭 전환을 위한 방법 Download PDFInfo
- Publication number
- KR20240112312A KR20240112312A KR1020247020457A KR20247020457A KR20240112312A KR 20240112312 A KR20240112312 A KR 20240112312A KR 1020247020457 A KR1020247020457 A KR 1020247020457A KR 20247020457 A KR20247020457 A KR 20247020457A KR 20240112312 A KR20240112312 A KR 20240112312A
- Authority
- KR
- South Korea
- Prior art keywords
- media
- track
- slice
- chunk
- ari
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000003044 adaptive effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 description 67
- 238000006243 chemical reaction Methods 0.000 description 25
- 230000006978 adaptation Effects 0.000 description 19
- 230000010365 information processing Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000013499 data model Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000000153 supplemental effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000012092 media component Substances 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4621—Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6402—Address allocation for clients
-
- 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 Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
미디어 스트림을 프로세싱하기 위한 방법, 장치, 및 컴퓨터 판독가능 저장 매체. 미디어 스트림은 DASH 또는 CMAF 표준을 따를 수 있다. 방법은, 제1 미디어 청크 및 제2 미디어 청크를 포함하는 복수의 미디어 청크, 및 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI) 정보를 포함하는 미디어 스트림 데이터를 수신하는 단계; ARI 정보에 기초하여 트랙 전환 정보를 결정하는 단계; 트랙 전환 정보에 기초하여, 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하는 단계; 및 개개의 미디어 트랙을 통해 제1 미디어 청크 및 제2 미디어 청크를 수신하는 단계 - 제1 미디어 청크 및 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 스트리밍 클라이언트 디바이스로 전달됨 - 를 포함할 수 있다.
Description
참조에 의한 통합
이 출원은, 2022년 7월 12일자로 출원된 미국 가출원 제63/388,577호에 기초하고 이에 대한 우선권의 이익을 주장하는, 2023년 6월 27일자로 출원된 미국 정규 출원 제18/342,230호에 기초하고 이에 대한 우선권의 이익을 주장하고, 상기 미국 출원은 그 전체적으로 참조로 본 명세서에 통합된다.
이 개시내용은 일반적으로, 동적 적응적 스트리밍 오버 하이퍼텍스트 전송 프로토콜(DASH : Dynamic Adaptive Streaming over Hypertext transfer protocol) 및 공통 미디어 애플리케이션 포맷(CMAF : Common Media Application Format)을 포함하는 미디어 스트리밍 기술에 관한 것이다. 더 구체적으로, 개시된 기술은 어드레싱가능한 자원 인덱스(ARI : Addressable Resource Index) 트랙 및/또는 ARI 이벤트에서 제공되는 정보에 기초하여 대역폭(또는 미디어 트랙(media track))을 전화하기 위한 방법 및 장치를 수반한다.
본 명세서에서 제공되는 배경 설명은 개시내용의 맥락을 일반적으로 제시하는 목적을 위한 것이다. 이 배경 섹션에서 설명되는 한도까지의, 현재 거명된 발명자의 작업 뿐만 아니라, 이 출원의 출원 시에 종래 기술로서 이와 다르게 자격부여하지 않을 수 있는 설명의 측면은 본 개시내용에 대하여 종래 기술로서 명백히 또는 묵시적으로 인정되지 않는다.
동화상 전문가 그룹(MPEG : moving picture expert group) 동적 적응적 스트리밍 오버 하이퍼텍스트 전송 프로토콜(DASH)은 IP 네트워크 상에서 멀티미디어 컨텐츠를 스트리밍하기 위한 표준을 제공한다. DASH 표준에서, 미디어 프레젠테이션 설명(MPD : media presentation description)은 DASH 서버로부터 미디어 세그먼트를 다운로딩함으로써 DASH 클라이언트가 미디어 컨텐츠를 적응적으로 스트리밍하기 위한 정보를 제공하기 위하여 이용된다. DASH 표준은 멀티-레이트 컨텐츠의 스트리밍을 허용한다. DASH 표준의 하나의 측면은 MPD 이벤트 및 인밴드 이벤트(inband event)의 운반, 및 이 이벤트를 이와 같이 핸들링하기 위한 클라이언트 프로세싱 모델을 포함한다.
공통 미디어 애플리케이션 포맷(CMAF)은 다양한 형태의 하이퍼텍스트 전송 프로토콜(HTTP : Hypertext transfer protocol) 기반 미디어를 패키징하고 전달하기 위한 표준이다. 이 표준은 균일한 전송 컨테이너 파일 하에서 데이터를 패키징하기 위하여 예를 들어, HTTP 라이브 스트리밍(HLS : HTTP Live Streaming) 및 DASH 프로토콜로 작업함으로써 재생 디바이스로의 미디어의 전달을 단순화한다. 그것은 또한, 레이턴시(latency)를 낮추기 위하여 청크된(chunked) 인코딩 및 청크된 전송 인코딩을 채용한다. 이것은 감소된 저장 필요성의 결과로서 더 낮은 비용을 초래한다.
개시내용의 측면은 미디어 스트림 프로세싱, 및 더 구체적으로, ARI 트랙 및/또는 AR 이벤트에서 제공되는 정보에 기초하여 대역폭(또는 미디어 트랙)을 전환하기 위한 방법 및 장치를 제공한다. 일부 예시적인 구현예에서는, 미디어 스트림을 프로세싱하기 위한 방법이 개시된다. 미디어 스트림은 적어도 2개의 미디어 트랙을 포함할 수 있고, 동적 적응적 스트리밍 오버 HTTP(DASH) 표준 또는 공통 미디어 애플리케이션 포맷(CMAF)을 따를 수 있다. 방법은 예를 들어, 스트리밍 클라이언트 디바이스에 의해 수행될 수 있고, 제1 미디어 청크(media chunk) 및 제2 미디어 청크를 포함하는 복수의 미디어 청크, 및 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI) 정보를 포함하는 미디어 스트림 데이터를 수신하는 단계; ARI 정보에 기초하여 트랙 전환 정보를 결정하는 단계; 트랙 전환 정보에 기초하여, 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하는 단계; 및 개개의 미디어 트랙을 통해 제1 미디어 청크 및 제2 미디어 청크를 수신하는 단계를 포함할 수 있다. 일부 구현예에서, 제1 미디어 청크 및 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 스트리밍 클라이언트 디바이스로 전송된다.
일부 예시적인 구현예에서, 미디어 스트림을 프로세싱하기 위한 또 다른 방법이 개시되고, 이 방법은 스트리밍 클라이언트에 의해 수행되고, 미디어 스트림은 적어도 2개의 미디어 트랙을 포함하고, 동적 적응적 스트리밍 오버 HTTP(DASH) 표준 또는 공통 미디어 애플리케이션 포맷(CMAF)을 따르고, 방법은, 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스와 연관되는 ARI 트랙으로부터의 어드레싱가능한 자원 인덱스(ARI) 샘플; 또는 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스 내에 내장되는 미디어 스트림과 연관되는 ARI 이벤트 중의 하나를 수신하는 단계 - ARI 이벤트는, 제1 미디어 트랙 내의 제1 미디어 슬라이스; 및 미디어 스트림의 다른 미디어 트랙 내에 있으며 제1 미디어 슬라이스와 정렬되는 제1 병렬 미디어 슬라이스; 또는 제1 미디어 트랙 내에 있으며 제1 미디어 슬라이스에 후속하는 제2 미디어 슬라이스; 및 미디어 스트림의 다른 미디어 트랙 내에 있으며 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스 중의 적어도 하나에 대한 특성 정보를 제공함 -; 및 특성 정보에 기초하여, 다른 미디어 트랙 중 하나의 미디어 트랙으로 전환이 필요한지를 결정하는 단계를 포함한다.
개시내용의 측면은 또한, 위의 방법 구현예 중의 임의의 방법 구현예를 수행하도록 구성되는 회로부를 포함하는 미디어 스트 프로세싱 디바이스 또는 장치를 제공한다.
개시내용의 측면은 또한, 비디오 디코딩 및/또는 인코딩을 위한 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 미디어 스트림 프로세싱을 위한 방법을 수행하게 하는 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체를 제공한다.
개시된 발명 요지의 추가의 특징, 본질, 및 다양한 장점은 다음의 상세한 설명 및 첨부 도면으로부터 더 분명할 것이다:
도 1은 본 개시내용의 실시예에 따른 시스템을 예시한다.
도 2는 본 개시내용의 실시예에 따른 동적 적응적 스트리밍 오버 HTTP(DASH) 시스템을 예시한다.
도 3은 본 개시내용의 실시예에 따른 DASH 클라이언트 아키텍처를 예시한다.
도 4는 본 개시내용의 실시예에 따른 예시적인 DASH 데이터 모델을 도시한다.
도 5는 본 개시내용의 실시예에 따른 예시적인 CMAF 데이터 모델을 도시한다.
도 6은 본 개시내용의 실시예에 따른, 세그먼트/청크 레벨에서 미디어 트랙을 전환하기 위한 예를 도시한다.
도 7은 전환 보조 정보를 운반하는 ARI 트랙/ARI 샘플에 기초한 예시적인 외삽 전환(extrapolate switching) 및 보간 전환(interpolate switching)을 도시한다.
도 8은 전환 보조 정보를 운반하는 ARI 이벤트에 기초한 예시적인 외삽 전환을 도시한다.
도 9는 래그(lag)를 갖는 전환 보조 정보를 운반하는 ARI 이벤트에 기초한 예시적인 외삽 전환 및 보간 전환을 도시한다.
도 10은 개시내용의 예시적인 실시예에 따른 방법의 순서도를 도시한다.
도 11은 개시내용의 예시적인 실시예에 따라, 컴퓨터 시스템의 개략적인 예시도를 도시한다.
도 1은 본 개시내용의 실시예에 따른 시스템을 예시한다.
도 2는 본 개시내용의 실시예에 따른 동적 적응적 스트리밍 오버 HTTP(DASH) 시스템을 예시한다.
도 3은 본 개시내용의 실시예에 따른 DASH 클라이언트 아키텍처를 예시한다.
도 4는 본 개시내용의 실시예에 따른 예시적인 DASH 데이터 모델을 도시한다.
도 5는 본 개시내용의 실시예에 따른 예시적인 CMAF 데이터 모델을 도시한다.
도 6은 본 개시내용의 실시예에 따른, 세그먼트/청크 레벨에서 미디어 트랙을 전환하기 위한 예를 도시한다.
도 7은 전환 보조 정보를 운반하는 ARI 트랙/ARI 샘플에 기초한 예시적인 외삽 전환(extrapolate switching) 및 보간 전환(interpolate switching)을 도시한다.
도 8은 전환 보조 정보를 운반하는 ARI 이벤트에 기초한 예시적인 외삽 전환을 도시한다.
도 9는 래그(lag)를 갖는 전환 보조 정보를 운반하는 ARI 이벤트에 기초한 예시적인 외삽 전환 및 보간 전환을 도시한다.
도 10은 개시내용의 예시적인 실시예에 따른 방법의 순서도를 도시한다.
도 11은 개시내용의 예시적인 실시예에 따라, 컴퓨터 시스템의 개략적인 예시도를 도시한다.
동적 적응적 스트리밍 오버 하이퍼텍스트 전송 프로토콜(DASH) 및 미디어 프레젠테이션 설명(MPD)
미디어 스트리밍을 위한 하나의 대중적인 포맷은 ISO/IEC 23009-1에서 정의된 바와 같이, 동적 적응적 스트리밍 오버 하이퍼텍스트 전송 프로토콜(DASH)을 포함한다. DASH는 웹 서버, 컨텐츠 전달 네트워크(CDN : content delivery network), 다양한 프록시 및 캐시 등과 같은 하이퍼텍스트 전송 프로토콜(HTTP) 기반구조를 이용한 미디어 컨텐츠의 스트리밍을 가능하게 하는 적응적 비트레이트 스트리밍 기법(adaptive bitrate streaming technique)이다. DASH는 DASH 서버로부터 DASH 클라이언트로의 온-디맨드(on-demand) 및 라이브(live) 스트리밍의 둘 모두를 지원하고, DASH 클라이언트가 스트리밍 세션을 제어하는 것을 허용하여, 이로써 DASH 서버는 대규모 전개에서 스트림 적응 관리의 추가적인 부하를 처리할 필요가 없다. DASH는 또한, DASH 클라이언트가 다양한 DASH 서버로부터의 스트리밍의 선택을 허용하고, 그러므로, DASH 클라이언트의 이익을 위하여 네트워크 추가의 부하-균형화를 달성한다. DASH는 예를 들어, 네트워크 조건에 적응시키기 위하여 비트-레이트를 변동시킴으로써, 상이한 미디어 트랙 사이의 동적 전환을 제공한다.
DASH에서, 미디어 프레젠테이션 설명(MPD) 파일은 DASH 서버로부터 미디어 세그먼트를 다운로딩함으로써 DASH 클라이언트가 미디어 컨텐츠를 적응적으로 스트리밍하기 위한 정보를 제공한다. MPD는 확장가능한 마크업 언어(XML : Extensible Markup Language) 문서의 형태일 수 있다. MPD 파일은 세션 기동 지연을 감소시키기 위하여 부분적으로 프래그먼트화(fragment)되고 전달될 수 있다. MPD 파일은 또한, 스트리밍 세션 동안에 업데이트될 수 있다. 일부 예에서, MPD 파일은 컨텐츠 액세스가능성 특징, 등급, 및 카메라 뷰의 표현을 지원한다. DASH는 또한, 멀티-뷰 및 확장가능한 코딩된 컨텐츠의 전달을 지원한다.
MPD 파일은 하나 이상의 주기(period)의 시퀀스(sequence)를 포함할 수 있다. 하나 이상의 주기의 각각은 예를 들어, MPD 파일 내의 주기 엘리먼트에 의해 정의될 수 있다. MPD 파일은 MPD에 대한 availableStartTime 속성 및 각각의 주기에 대한 시작 속성을 포함할 수 있다. 동적 유형(예컨대, 라이브 서비스를 위하여 이용됨)을 갖는 미디어 프레젠테이션에 대하여, 주기의 시작 속성 및 MPD 속성 availableStartTime 및 미디어 세그먼트의 기간의 합은 조정된 세계 시간(UTC : universal time) 포맷으로 주기의 이용가능성 시간, 특히, 대응하는 주기 내의 각각의 표현의 제1 미디어 세그먼트를 지시할 수 있다. 정적 유형(예컨대, 온-디맨드 서비스를 위하여 이용됨)을 갖는 미디어 프레젠테이션에 대하여, 제1 주기의 시작 속성은 0일 수 있다. 임의의 다른 주기에 대하여, 시작 속성은 제1 주기의 시작 시간에 대한 대응하는 주기의 시작 시간 사이의 시간 오프셋을 특정할 수 있다. 각각의 주기는 다음 주기의 시작까지, 또는 마지막 주의 경우에 미디어 프레젠테이션의 종료까지 연장될 수 있다. 주기 시작 시간은 정밀할 수 있고, 모든 이전의 주기의 미디어를 플레이하는 것으로부터 기인하는 실제적인 타이밍을 반영할 수 있다. 예시적인 구현예에서는, 다음 주기가 이전 주기, 아마도 바로 후속하는 주기에서, 또는 더 이후의 주기(예컨대, 광고 주기가 삽입된 후)에서의 컨텐츠의 연속이 되도록 MPD가 제공된다.
각각의 주기는 하나 이상의 적응 세트(adaptations set)를 포함할 수 있고, 적응 세트의 각각은 동일한 미디어 컨텐츠에 대한 하나 이상의 표현을 포함할 수 있다. 표현은 오디오 또는 비디오 데이터의 다수의 대안적인 인코딩된 버전 중의 하나일 수 있다. 표현은 인코딩 유형에 의해, 예컨대, 비디오 데이터에 대한 비트레이트, 해상도, 및/또는 코덱, 및 오디오 데이터에 대한 비트레이트 및/또는 코덱에 의해 상이할 수 있다. 용어 표현은 멀티미디어 커텐츠의 특정한 주기에 대응하며 특정한 방식으로 인코딩되는 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하기 위하여 이용될 수 있다.
특정한 주기의 적응 세트는 MPD 파일 내의 그룹 속성에 의해 지시되는 그룹에 배정될 수 있다. 동일한 그룹 내의 적응 세트는 일반적으로, 서로에 대한 대안으로 간주된다. 예를 들어, 특정한 주기에 대한 비디오 데이터의 각각의 적응 세트는 동일한 그룹에 배정될 수 있어서, 임의의 적응 세트는 대응하는 주기에 대한 멀티미디어 컨텐츠의 비디오 데이터를 디스플레이하도록 디코딩하기 위하여 선택될 수 있다. 하나의 주기 내의 미디어 컨텐츠는 일부 예에서, 존재할 경우에, 그룹 0으로부터의 하나의 적응 세트, 또는 각각의 비-제로(non-zero) 그룹으로부터의 최대 하나의 적응 세트의 조합의 어느 하나에 의해 표현될 수 있다. 주기의 각각의 표현에 대한 타이밍 데이터는 주기의 시작 시간에 대하여 표현될 수 있다.
표현은 하나 이상의 세그먼트를 포함할 수 있다. 각각의 표현은 초기화 세그먼트를 포함할 수 있거나, 표현의 각각의 세그먼트는 자체-초기화할 수 있다. 존재할 때, 초기화 세그먼트는 표현을 액세스하기 위한 초기화 정보를 포함할 수 있다. 일부 경우에는, 초기화 세그먼트가 미디어 데이터를 포함하지 않는다. 세그먼트는 균일 자원 로케이터(URL : uniform resource locator), 균일 자원 명칭(URN : uniform resource name), 또는 균일 자원 식별자(uniform resource identifier)와 같은 식별자에 의해 고유하게 참조될 수 있다.
예시적인 구현예에서, URL은 예를 들어, 범위 속성이 URL과 함께 제공되는 경우에 바이트 범위에 의해 아마도 한정되는 "http" 또는 "https"의 고정된 방식으로, IETF RFC 3986에 따라 <absolute-URI>로서 정의될 수 있다. 바이트 범위는 예를 들어, IETF RFC 2616에서 정의된 바와 같이 byte-range-spec로서 표현될 수 있다. 그것은 바이트의 인접 범위를 식별하는 단일 표현으로 한정될 수 있다. 실시예에서, 세그먼트는 예를 들어, IETF RFC 2397에서 정의된 바와 같이, 데이터 URL을 갖는 MPD 내에 포함될 수 있다.
MPD 파일은 각각의 세그먼트에 대한 식별자를 제공할 수 있다. 일부 예에서, MPD 파일은 또한, URL, URN, 또는 URI에 의해 액세스가능한 파일 내의 세그먼트에 대한 데이터에 대응할 수 있는, 범위 속성의 형태인 바이트 범위를 제공할 수 있다.
하위-표현(sub-representation)은 규칙적 표현 내에 내장(또는 포함)될 수 있고, 하위-표현 엘리먼트(예컨대, SubRepresentation)에 의해 설명될 수 있다. 하위-표현 엘리먼트는 표현 내에 내장되는 하나 또는 몇몇 미디어 컨텐츠 컴포넌트의 성질을 설명할 수 있다. 예를 들어, 하위-표현 엘리먼트는 내장된 오디오 컴포넌트(예컨대, 코덱, 샘플링 레이트 등), 내장된 서브-타이틀(예컨대, 코덱)의 성질을 설명할 수 있거나, 하위-표현 엘리먼트는 일부 내장된 더 낮은 품질의 비디오 계층(예컨대, 일부 더 낮은 프레임 레이트 등)을 설명할 수 있다. 하위-표현 및 표현 엘리먼트는 일부 공통 속성 및 엘리먼트를 공유할 수 있다.
각각의 표현은 또한, 하나 이상의 미디어 컴포넌트를 포함할 수 있고, 여기서, 각각의 미디어 컴포넌트는 오디오, 비디오, 또는 (예컨대, 자막 방송을 위한) 시간 지정된 텍스트와 같은 하나의 개별적인 미디어 유형의 인코딩된 버전에 대응할 수 있다. 미디어 컴포넌트는 하나의 표현 내에서의 연속 미디어 세그먼트의 경계에 걸쳐 시간-연속적일 수 있다.
일부 예시적인 구현예에서, DASH 클라이언트는 DASH 서버로부터 MPD 파일을 액세스할 수 있고 이를 다운로딩할 수 있다. 즉, DASH 클라이언트는 라이브 세션을 초기화할 시의 이용을 위하여 MPD 파일을 인출(retrieve)할 수 있다. MPD 파일에 기초하면, 그리고 각각의 선택된 표현에 대하여, DASH 클라이언트는 서버 상에서 이용가능한 최근의 세그먼트가 어떤 것인지를 결정하는 것, 다음 세그먼트 및 아마도 미래의 세그먼트의 세그먼트 이용가능성 시작 시간을 결정하는 것, 세그먼트의 플레이아웃(playout)을 언제 그리고 세그먼트 내의 어느 타임라인(timeline)으로부터 시작할 것인지를 결정하는 것, 및 새로운 MPD 파일을 언제 얻고/페치(fetch)할 것인지를 결정하는 것을 포함하는 몇몇 판정을 행할 수 있다. 일단 서비스가 플레이 아웃되면, 클라이언트는 라이브 서비스와 그 자신의 플레이아웃 사이의 드리프트(drift)를 추적할 수 있고, 이것은 검출되고 보상될 필요가 있다.
공통 미디어 애플리케이션 포맷(CMAF)
세그먼트화된 미디어에 대한 공통 미디어 애플리케이션 포맷(CMAF)은 적응적 멀티미디어 프레젠테이션에서 최종 사용자 디바이스 상에서의 전달 및 디코딩을 위한 세그먼트화된 미디어 객체의 인코딩 및 패키징을 위한 확장가능한 표준이다. CMAF 사양은 이하에서 설명되는 몇몇 논리적 미디어 객체를 정의한다.
CMAF 트랙은, 오디오, 비디오, 및 서브타이틀(subtitle)을 포함하는 인코딩된 미디어 샘플을 포함할 수 있다. 미디어 샘플은 ISO 기본 미디어 파일 포맷(ISO_BMFF)으로부터 도출되는 CMAF 특정된 컨테이너 내에 저장된다. 미디어 샘플은 임의적으로, MPEG 공통 암호화(MPEG Common Encryption)에 의해 보호될 수 있다. 트랙은 CMAF 헤더 및 하나 이상의 CMAF 프래그먼트(fragment)를 포함할 수 있다.
CMAF 전환 세트는 상이한 비트 레이트 및 해상도에서 동일한 컨텐츠를 적응적으로 스트리밍하기 위하여 CMAF 프래그먼트 경계에서 전환되고 스플라이싱(splice)될 수 있는 대안적인 트랙을 포함할 수 있다. 정렬된 CMAF 전환 세트는 대안적인 인코딩, 예를 들어, 상이한 코덱, 및 서로에 정렬되는 시간으로 동일한 소스로부터 인코딩되는 2개 이상의 CMAF 전환 세트이다.
CMAF 선택 세트는 대안적인 컨텐츠(예컨대, 상이한 언어) 또는 대안적인 인코딩(예컨대, 상이한 코덱)을 포함할 수 있는 동일한 미디어 유형의 전환 세트의 그룹이다.
CMAF 프레젠테이션은 하나 이상의 프레젠테이션 시간 동기화된 선택 세트를 포함할 수 있다.
CMAF는 미디어 컨텐츠가 상이한 플랫폼(platform)으로 전달될 수 있도록, 어드레싱가능한 객체를 지원한다. CMAF 어드레싱가능한 객체는 다음을 포함할 수 있다:
CMAF 헤더: 헤더는 트랙을 초기화하기 위한 정보를 포함하는 정보를 포함한다.
CMAF 세그먼트: 동일한 트랙으로부터의 하나 이상의 연속 프래그먼트(fragment)의 시퀀스.
CMAF 청크: 청크는 프래그먼트로부터의 샘플의 순차적인 서브세트를 포함한다.
CMAF 트랙 파일: 하나의 ISO_BMFF 파일 내의 완전한 트랙.
DASH 및 CMAF 이벤트
DASH 및 CMAF에서, 이벤트는 추가적인 정보를 DASH/CMAF 클라이언트 및 그 연관된 애플리케이션(들)으로 시그널링하기 위한 수단을 제공한다. 예시적인 구현예에서, 이벤트는 시간 지정되고, 그러므로, 시작 시간 및 기간을 가진다. 이벤트 정보는 미디어 프레젠테이션의 컨텐츠를 설명하는 메타데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, 이벤트 정보는 광고 삽입 큐(advertisement insertion cue)와 같은, 미디어 프레젠테이션의 재생 동안에 특정 시간과 연관되는 미디어 플레이어에 대한 제어 메시지를 포함할 수 있다. 이벤트는 예를 들어, MPD 이벤트 또는 인밴드 이벤트로서 구현될 수 있다. 이들은 매니페스트 파일(manifest file)(예컨대, MPD)의 일부일 수 있거나, 이벤트 메시지(emsg) 박스와 같은 ISOBMFF-기반 미디어 파일 내에 내장될 수 있다.
미디어 프레젠테이션 설명(MPD) 이벤트는 MPD에서 시그널링될 수 있는 이벤트이다. 미디어 프레젠테이션 시간에 배정되는 이벤트의 시퀀스는 주기 레벨 상에서 MPD에서 제공될 수 있다. 동일한 유형의 이벤트는 주기 엘리먼트 내의 이벤트 스트림 엘리먼트(예컨대, EventStream)에 의해 특정될 수 있다. 시간 시간이 주기 경계 이후이거나, 이벤트의 기간이 주기 경계를 지나서 연장되더라도, 이벤트는 주기의 종료 시에 종결된다. 이벤트 스트림 엘리먼트는 메시지 방식 식별 정보(예컨대, @schemeIdUri), 및 이벤트 스트림 엘리먼트에 대한 임의적인 값(예컨대, @value)을 포함한다. 추가로, 이벤트 스트림이 시간 지정된 이벤트를 포함하므로, 시간 스케일 속성(예컨대, @timescale)은 이벤트를 주기 내의 특정 미디어 프레젠테이션 시간에 배정하기 위하여 제공될 수 있다. 시간 지정된 이벤트 자체는 이벤트 스트림 엘리먼트 내에 포함되는 이벤트 이벤트에 의해 설명될 수 있다.
이벤트 메시지를 미디어 세그먼트의 일부로서 추가함으로써, 인밴드 이벤트 스트림은 표현과 다중화될 수 있다. 이벤트 스트림은 선택된 표현 내에, 하나 또는 몇몇 선택된 적응 세트 내에만, 또는 모든 표현 내에 존재할 수 있다. 예를 들어, 하나의 가능한 구성은, 오디오 적응 세트만이 인밴드 이벤트를 포함하거나, 비디오 적응 세트만이 인밴드 이벤트를 포함하는 구성이다. 표현 내에 존재하는 인밴드 이벤트 스트림은 적응 세트 레벨, 또는 표현 레벨과 같은 다양한 레벨 상에서 인밴드 이벤트 스트림 엘리먼트(예컨대, InbandEventStream)에 의해 지시될 수 있다. 추가로, 하나의 표현은, 별도의 인밴드 이벤트 스트림 엘리먼트에 의해 각각 지시되는 다수의 인밴드 이벤트 스트림을 포함할 수 있다.
도 1은 본 개시내용의 실시예에 따른 시스템(100)을 예시한다. 시스템(100)은 컨텐츠 서버(110) 및 정보 프로세싱 장치(120)를 포함한다. 컨텐츠 서버(110)는, 주 컨텐츠(예컨대, 메인 프로그램) 및 하나 이상의 시간 지정된 메타데이터 트랙을 포함하는 컨텐츠 스트림을 제공할 수 있다.
정보 프로세싱 장치(120)는 컨텐츠 서버(110)와 인터페이싱할 수 있다. 예를 들어, 정보 프로세싱 장치(120)는 컨텐츠 서버(110)로부터 수신되는 컨텐츠를 재생할 수 있다. 컨텐츠의 재생은 (예컨대, 컨텐츠 서버(110)로부터) 정보 프로세싱 장치(120)에 의해 수신되는 매니페스트 파일(예컨대, MPD)에 기초하여 수행될 수 있다. 매니페스트 파일은 하나 이상의 시간 지정된 메타데이터 트랙에 대한 시그널링을 더 포함할 수 있다.
예시적인 DASH/CMAF 시스템이 도 2에 예시되어 있다. DASH 시스템(200)은 컨텐츠 서버(210), 광고 서버(220), 및 네트워크(250)에 접속되는 정보 프로세싱 장치(230)를 포함할 수 있다. DASH 시스템(200)은 또한, 하나 이상의 보충적 컨텐츠 서버를 포함할 수 있다.
컨텐츠 서버(210)는 주 컨텐츠(예컨대, 메인 프로그램) 및 매니페스트 파일(예컨대, MPD)을 정보 프로세싱 장치(230)에 제공할 수 있다. 매니페스트 파일은 예를 들어, MPD 생성기(214)에 의해 생성될 수 있다. 주 컨텐츠 및 매니페스트 파일은 다른 실시예에서, 상이한 서버에 의해 제공될 수 있다.
정보 프로세싱 장치(230)는 MPD를 수신하고, MPD에 기초하여 컨텐츠 서버(210)의 HTTP 서버(212)로부터 주 컨텐츠를 취득할 수 있다. MPD는 정보 프로세싱 장치(230) 상에서 실행되는 DASH 클라이언트(232)에 의해 프로세싱될 수 있다. 추가로, DASH 클라이언트(232)는 광고 서버(220)로부터 광고 컨텐츠를, 또는 하나 이상의 보충적 컨텐츠 서버로부터 다른 컨텐츠(예컨대, 대화형 컨텐츠)를 취득할 수 있다. 메인 컨텐츠 및 광고 컨텐츠는 DASH 클라이언트(232)에 의해 프로세싱될 수 있고, 디스플레이 디바이스(236) 상에서의 디스플레이를 위하여 출력될 수 있다. 디스플레이 디바이스(236)는 정보 프로세싱 장치(230) 내에 통합될 수 있거나, 이에 대해 외부적일 수 있다. 추가로, DASH 클라이언트(232)는 하나 이상의 시간 지정된 메타데이터 트랙으로부터 이벤트 정보를 추출할 수 있고, 추출된 이벤트 정보를 추가의 프로세싱을 위하여 애플리케이션(234)으로 전송할 수 있다. 애플리케이션(234)은 예를 들어, 이벤트 정보에 기초하여 보충적 컨텐츠를 디스플레이하도록 구성될 수 있다.
광고 서버(220)는 메모리와 같은 광고 스토리지 내에 광고 컨텐츠를 저장할 수 있다. 정보 프로세싱 장치(230)는 이벤트 정보에 기초하여 저장된 광고 컨텐츠를 요청할 수 있다.
도 3은 본 개시내용의 실시예에 따른, DASH 및 CMAF 이벤트를 프로세싱하기 위한 예시적인 DASH/CMAF 클라이언트 아키텍처를 예시한다. DASH/CMAF 클라이언트(또는 DASH/CMAF 플레이어)는 애플리케이션(390)과 통신하고, (i) MPD 이벤트, (ii) 인밴드 이벤트, 및 (iii) 시간 지정된 메타데이터 이벤트를 포함하는 다양한 유형의 이벤트를 프로세싱하도록 구성될 수 있다.
매니페스트 파서(305)는 매니페스트(예컨대, MPD)를 파싱한다. 매니페스트는 예를 들어, 컨텐츠 서버(110, 210)에 의해 제공된다. 매니페스트 파서(305)는 MPD 이벤트, 인밴드 이벤트, 및 시간 지정된 메타데이터 트랙 내에 내장되는 시간 지정된 메타데이터 이벤트에 대한 이벤트 정보를 추출한다. 추출된 이벤트 정보는 DASH 로직(310)(예컨대, DASH 플레이어 제어, 선택, 및 휴리스틱 로직(heuristic logic))에 제공될 수 있다. DASH 로직(310)은 이벤트 정보에 기초하여 매니페스트에서 시그널링되는 이벤트 방식을 애플리케이션(390)에 통지할 수 있다.
이벤트 정보는 상이한 이벤트 스트림 사이를 구별하기 위한 이벤트 방식 정보를 포함할 수 있다. 애플리케이션(390)은 관심 있는 이벤트 방식을 구독하기 위하여 이벤트 방식 정보를 이용할 수 있다. 애플리케이션(390)은 추가로, 하나 이상의 구독 API를 통해 구독된 방식의 각각에 대한 희망된 디스패치 모드(dispatch mode)를 지시할 수 있다. 예를 들어, 애플리케이션(390)은 구독 요청을, 관심 잇는 하나 이상의 이벤트 방식 및 임의의 희망된 대응하는 디스패치 모드를 식별하는 DASH 클라이언트로 전송할 수 있다.
애플리케이션(390)이 하나 이상의 시간 지정된 메타데이터 트랙의 일부로서 전달되는 하나 이상의 이벤트 방식을 구독하는 경우에, 인밴드 이벤트 및 'moof' 파서(325)는 하나 이상의 시간 지정된 메타데이터 트랙을 시간 지정된 메타데이터 트랙 파서(330)로 스트리밍할 수 있다. 예를 들어, 인밴드 이벤트 및 'moof' 파서(325)는 영화 프래그먼트 박스("moof")를 파싱하고, DASH 로직(310)으로부터의 제어 정보에 기초하여 시간 지정된 메타데이터 트랙을 추후에 파싱한다.
시간 지정된 메타데이터 트랙 파서(330)는 시간 지정된 메타데이터 트랙 내에 내장되는 이벤트 메시지를 추출할 수 있다. 추출된 이벤트 메시지는 이벤트 및 시간 지정된 메타데이터 버퍼(335) 내에 저장될 수 있다. 동기화기/디스패처 모듈(340)(예컨대, 이벤트 및 시간 지정된 메타데이터 동기화기 및 디스패처)은 구독된 이벤트를 애플리케이션(390)으로 디스패치(또는 전송)할 수 있다.
MPD에서 설명되는 MPD 이벤트는 매니페스트 파서(305)에 의해 파싱될 수 있고, 버퍼(335) 내에 저장될 수 있다. 예를 들어, 매니페스트 파서(305)는 MPD의 각각의 이벤트 스트림 엘리먼트를 파싱하고, 각각의 이벤트 스트림 엘리먼트에서 설명되는 각각의 이벤트를 파싱한다. MPD에서 시그널링되는 각각의 이벤트에 대하여, 프레젠테이션 시간 및 이벤트 기간과 같은 이벤트 정보는 이벤트와 연관시켜서 버퍼(335) 내에 저장될 수 있다.
인밴드 이벤트 및 'moof' 파서(325)는 인밴드 이벤트 메시지를 추출하기 위하여 미디어 세그먼트를 파싱할 수 있다. 임의의 이러한 식별된 인밴드 이벤트 및 연관된 프레젠테이션 시간 및 기간은 버퍼(335) 내에 저장될 수 있다.
따라서, 버퍼(335)는 MPD 이벤트, 인밴드 이벤트, 및/또는 시간 지정된 메타데이터 이벤트를 그 안에 저장할 수 있다. 버퍼(335)는 예를 들어, 선입선출(FIFO : First-In-First-Out) 버퍼일 수 있다. 버퍼(335)는 미디어 버퍼(350)에 대응하여 관리될 수 있다. 예를 들어, 미디어 세그먼트가 미디어 버퍼(350) 내에 존재하는 한, 그 미디어 세그먼트에 대응하는 임의의 이벤트 또는 시간 지정된 메타데이터는 버퍼(335) 내에 저장될 수 있다.
DASH 액세스 애플리케이션 프로그래밍 인터페이스(API : Application Programming Interface)(315)는 HTTP 프로토콜 스택(320)을 통해, 미디어 컨텐츠 및 다양한 메타데이터를 포함하는 컨텐츠 스트림(또는 데이터흐름)의 페치 및 수신을 관리할 수 있다. DASH 액세스 API(315)는 수신된 컨텐츠 스트림을 상이한 데이터흐름으로 분리할 수 있다. 인밴드 이벤트 및 moof 파서에 제공되는 데이터흐름은 미디어 세그먼트, 하나 이상의 시간 지정된 메타데이터 트랙, 및 미디어 세그먼트 내에 포함되는 인밴드 이벤트 시그널링을 포함할 수 있다. 실시예에서, 매니페스트 파서(305)에 제공되는 데이터흐름은 MPD를 포함할 수 있다.
DASH 액세스 API(315)는 매니페스트를 매니페스트 파서(305)로 포워딩할 수 있다. 이벤트를 설명하는 것 외에, 매니페스트는 또한, 미디어 세그먼트에 관한 정보를, 애플리케이션(390) 및 인밴드 및 moof 파서(325)와 통신할 수 있는 DASH 로직(310)에 제공할 수 있다. 애플리케이션(390)은 DASH 클라이언트에 의해 프로세싱되는 미디어 컨텐츠와 연관될 수 있다. 애플리케이션(390), DASH 로직(310), 매니페스트 파서(305), DASH 액세스 API(315) 사이에서 교환되는 제어/동기화 신호는 매니페스트에서 제공되는 미디어 세그먼트에 관한 정보에 기초하여 HTTP 스택(320)으로부터 미디어 세그먼트의 페치를 제어할 수 있다.
인밴드 이벤트 및 moof 파서(325)는 미디어 데이터흐름을, 미디어 컨텐츠, 시간 지정된 메타데이터 트랙 내의 시간 지정된 메타데이터, 및 미디어 세그먼트 내의 임의의 시그널링된 인밴드 이벤트를 포함하는 미디어 세그먼트로 파싱할 수 있다. 미디어 컨텐츠를 포함하는 미디어 세그먼트는 파일 포맷 파서(345)에 의해 파싱될 수 있고, 미디어 버퍼(350) 내에 저장될 수 있다.
버퍼(335) 내에 저장되는 이벤트는 동기화기/디스패처(340)가 이벤트/메타데이터 API를 통해, 애플리케이션에 관련되는 이용가능한 이벤트(또는 관심 있는 이벤트)를 애플리케이션으로 통신하는 것을 허용할 수 있다. 애플리케이션은 이용가능한 이벤트(예컨대, MPD 이벤트, 인밴드 이벤트, 또는 시간 지정된 메타데이터 이벤트)를 프로세싱하고, 동기화기/디스패처(340)에 통지함으로써 특정한 이벤트 또는 시간 지정된 메타데이터를 구독하도록 구성될 수 있다. 애플리케이션에 관련되는 것이 아니라, 그 대신에, DASH 클라이언트 자체에 관련되는, 버퍼(335) 내에 저장되는 임의의 이벤트는 동기화기/디스패처(340)에 의해 추가의 프로세싱을 위하여 DASH 로직(310)으로 포워딩될 수 있다.
애플리케이션(390)이 특정한 이벤트를 구독하는 것에 응답하여, 동기화기/디스패처(340)는 애플리케이션이 구독한 이벤트 방식에 대응하는 이벤트 사례(또는 시간 지정된 메타데이터 샘플)를 애플리케이션으로 통신할 수 있다. 이벤트 사례는 (예컨대, 특정 이벤트 방식에 대한) 구독 요청에 의해 지시되는 디스패치 모드 또는 디폴트 디스패치 모드에 따라 통신될 수 있다. 예를 들어, 수신시 디스패치 모드(on-receive dispatch mode)에서, 이벤트 사례는 버퍼(335)에서의 수신 시에 애플리케이션(390)으로 전송될 수 있다. 다른 한편으로, 시작시 디스패치 모드(on-start dispatch mode)에서, 이벤트 사례는 그 연관된 프레젠테이션 시간에, 예를 들어, 미디어 디코더(355)로부터의 타이밍 신호와 동기되어 애플리케이션(390)으로 전송될 수 있다.
DASH/CMAF 미디어 트랙 전환
DASH 및 CMAF에서는, 다수의 전환가능한 미디어 트랙이 지원된다. 이 미디어 트랙은 동일한 미디어 컨텐츠에 대하여 제공될 수 있지만, 상이한 해상도 및 상이한 송신 대역폭 조건을 지원하기 위하여, 상이한 비트-레이트를 각각 가질 수 있다. 미디어 스트리밍 세션에서, 클라이언트(예컨대, DASH 클라이언트 또는 CMAF 클라이언트)는 예를 들어, 어떤 대역폭 조건, 클라이언트에 할당된 대역폭 자원 등에 적응하기 위하여, 하나의 트랙으로부터 또 다른 트랙으로 전환하도록 선택할 수 있다.
일부 예시적인 구현예에서, 미디어 트랙은 또한, 미디어 표현으로서 지칭될 수 있다.
도 4는 예시적인 DASH 데이터 모델을 도시한다. 도 4에서 도시된 바와 같이, 적응 세트 3은 상이한 비트 레이트를 갖는 상이한 트랙을 각각 나타내는 4 개의 표현을 포함한다. 표현 2는 2 Mbps(초 당 메가비트) 비트 레이트를 가지고, 하나 이상의 미디어 세그먼트에 의해 형성된다. 실험적으로, 도 4에서 도시된 DASH 데이터 모델에서는, 가장 작은 미디어 슬라이스 유닛이 "세그먼트"이다.
도 5는 예시적인 CMAF 데이터 모델을 도시한다. 도 5에서 도시된 바와 같이, 전환 세트 3은 상이한 비트 레이트를 각각 나타내는 4개의 CMAF 트랙을 포함한다. CMAF 트랙 2는 2개의 Mbps 비트 레이트를 가지고, 하나 이상의 청크에 의해 형성된다. 실험적으로, 도 5에서 도시된 CMAF 데이터 모델에서는, 가장 작은 미디어 슬라이스 유닛이 "청크"이다.
DASH/CMAF 어드레싱가능한 자원 인덱스
일부 예시적인 구현예에서는, 적응적 스트리밍 클라이언트(예컨대, DASH 또는 CMAF 클라이언트)가 예를 들어, 메타데이터 트랙에서 ISO/IEC 23000-19에서 정의된 바와 같은 CMAF 전환 세트의 서브-세트 및 어드레싱가능한 자원의 모든 세부사항을 설명하는 어드레싱가능한 자원 인덱스(ARI) 정보의 정확한 지식을 가지는 것이 바람직하다. ARI 정보는 또한, DASH 적응 세트의 서브-세트의 모든 세부사항을 설명할 수 있다. ARI 정보는 동일한 적응 세트/전환 세트에서 존재하는 시간 지정된 정렬된 세그먼트 또는 청크의 오프셋, 크기, 기간, 및 품질을 포함할 수 있다. 이러한 ARI 정보로, DASH/CMAF 클라이언트는 클라이언트 휴리스틱을 돕기 위하여, 예를 들어, 당면한 청크 또는 세그먼트에 대한 상대적인 정보를 이용할 수 있다. 어드레싱가능한 자원은 CMAF 컨텍스트에서 트랙 파일, 세그먼트, 또는 청크를 포함할 수 있다. 온-디맨드 서비스를 위하여, 이러한 정보의 정확한 맵은 세그먼트 인덱스에 의해 제공될 수 있다. 유사한 개념 및 구현예가 또한, DASH 컨텍스트(context)에 적용될 수 있다는 것에 주목한다.
일부 예시적인 구현예에서, ARI 정보는 ARI 트랙 내의 ARI 샘플, 또는 ARI 이벤트에서 운반될 수 있다.
일부 예시적인 구현예에서, 어드레싱가능한 자원 인덱스(ARI)는 다음과 같이 정의될 수 있다:
샘플 엔트리 유형:
'cari'
컨테이너:
샘플 설명 박스 ('stsd')
의무적:
아니오
수량:
0 또는 1
이 메타데이터는 예를 들어, 단일 인덱스 트랙에서 ISO/IEC 23000-19에서 정의된 바와 같이, CMAF 전환 세트의 서브세트 및 어드레싱가능한 자원의 모든 세부사항을 설명한다.
이하의 표 1은 CMAF 어드레싱가능한 자원 인덱스 메타데이터에 대한 예시적인 샘플 엔트리를 도시한다.
이하의 표 2는 ARI 샘플에 대한 예시적인 신택스(syntax)를 도시한다.
예시적으로, 위의 신택스에 대한 시맨틱(semantics)은 이하에서 설명된다:
switching_set_identifier는 출원의 맥락에서 전환 세트에 대한 고유 식별자를 특정한다.
num_tracks는 ARI 트랙에서 인덱싱되는 트랙의 수를 지시한다.
track_ID는 track_ID를 이용하여 트랙의 샘플에서의 선택 및 순서화를 제공한다.
num_quality_indicators는 청크의 품질을 식별하기 위하여 이용되는 품질 지시자의 수를 특정한다.
quality_identifier는 샘플이 내의 품질 값이 어떻게 해독되는 것으로 예상되는지를 말하는 식별자를 특정한다. 이것은 등록될 수 있는 4CC 코드이다.
segment_start_flag는 청크가 세그먼트의 시작인지 여부를 지시한다.
marker는 이 청크가 적어도 하나의 styp 박스를 포함하는지를 식별한다.
SAP_type은 청크의 SAP 유형을 식별한다.
emsg_flag는 이 청크가 적어도 하나의 emsg 박스를 제공하는지 여부를 지시한다.
prft_flag는 이 청크가 적어도 하나의 prft 박스를 포함하는지 여부를 지시한다.
offset은 세그먼트의 시작으로부터의 청크의 오프셋을 식별한다.
size는 청크의 옥테트(octet)에 있어서의 크기를 제공한다.
quality는 주어진 품질 방식 식별자에 따라 청크의 품질을 제공한다. 품질 값의 데이터 유형(정수 또는 부동)은 품질 방식에 의해 정의된다. 품질 방식 식별자가 널 스트링(null string)인 경우에, 증가하는 값을 갖는 품질 증가로 선형적으로 해독되는 무부호 정수(unsigned integer)이다.
loss는 청크의 미디어 데이터가 손실된다는 것을 지시한다.
num_prediction_pairs는 얼마나 많은 쌍의 예상된 예측 값이 제공되는지를 제공한다.
prediction_min_windows는 MPD 값과 동일한 minbuffer 시간에 대한 값을 제공한다.
predicted_max_bitrate는 prediction_min_windows 값의 기간에 대하여 유효한 MPD 시맨틱과 동일한 대역폭에 대한 값을 제공한다.
이벤트에 의한 ARI의 운반
DASH/CMAF 하의 예시적인 구현예에서는, 동일한 적응 세트/전환 세트에서 존재하는 시간 지정된 정렬된 세그먼트 또는 청크의 오프셋, 크기, 및 품질과 같은 ARI 관련된 정보를 운반하기 위하여, 전용 메타데이터 트랙, 즉, ARI 트랙이 생성되어, 이로써 클라이언트는 클라이언트 휴리스틱을 돕기 위하여 당면한 청크 또는 세그먼트에 대한 상대적인 정보를 가질 수 있고, 예를 들어, 클라이언트는 미디어 트랙 또는 표현 사이의 동적 전환 시의 정보를 이용할 수 있다.
ARI 정보(예컨대, ARI 샘플)를 운반하기 위한 메타데이터 트랙을 이용하는 하나의 단점은 과도한 시그널링 오버헤드(signaling overhead)인 것에 주목한다. 예를 들어, ARI 정보를 요구하는 각각의 세그먼트에 대하여, 클라이언트는 여분의 HTTP GET 요청을 필요로 한다.
본 개시내용에서의 실시예는 ARI 메타데이터 트랙을 이용하지 않으면서 ARI(또는 ARI 정보, ARI 샘플)를 운반하기 위한 방법을 포함한다. 즉, (ARI 샘플이 미디어 세그먼트/청크와 별도로 전송되므로) 여분의 HTTP GET 요청을 취하는, ARI를 운반하기 위한 메타데이터 트랙을 이용하는 것이 아니라, 이 개시내용에서는, ARI 샘플이 인밴드 이벤트 또는 MPD 이벤트와 같은 이벤트를 통해 전송될 수 있다. ARI 샘플은 미디어 세그먼트/청크와 함께 전송되므로, ARI 샘플을 운반하기 위한 이러한 접근법은 "미디어 세그먼트/청크 연관된 ARI 송신"인 것으로 간주된다. ARI를 운반하는 이벤트는 ARI 이벤트로서 지칭된다. ARI 이벤트를 이용하는 것은 적어도 다음의 장점을 제공할 수 있다:
1. 여분의 메타데이터 트랙에 대한 필요성이 없고, 이것은 추가적인 ARI 정보를 필요로 하는 각각의 세그먼트/청크에 대한 CMAF/DASH 클라이언트에 의한 하나 더 적은 HTTP GET 요청으로 귀착된다. 예를 들어, CMAF/DASH 클라이언트는 세그먼트/청크를 프로세싱하는 것을 돕기 위하여 추가적인 ARI 정보를 필요로 할 수 있다. 이 경우에, ARI 정보는 세그먼트/청크와 함께 운반되는 ARI 이벤트로부터 직접적으로 인출될 수 있다.
2. 이벤트 프로세싱 모델은 이벤트 메시지의 프로세스 및 이들의 DASH/CMAF 클라이언트로의 디스패치를 허용한다. 프로세싱 모델은 ARI 샘플의 타이밍이 이벤트 타이밍 모델의 일부로서 운반되는 것을 허용한다.
3. 유연성 - ARI 정보의 측면에서, 예를 들어, 인밴드 이벤트에 의해 필요한 바와 같이, DASH 적응 세트 또는 CMAF 전환 세트 내의 하나, 일부, 또는 모드느 표현에서의 이벤트(들)에 의해 운반될 수 있다.
4. 적응성 및 휴대성 - ARI 이벤트는 (예컨대, 인밴드 이벤트, 또는 인코더로부터의 수신된 ARI 트랙으로부터) 패키저에 의해 파싱될 수 있고, MPD 이벤트로서 MPD에 추가될 수 있다.
일부 예시적인 구현예에서, 청크/세그먼트의 ARI 정보는 동일한 청크/세그먼트 내에 포함될 수 있다.
일부 예시적인 구현예에서, 청크/세그먼트의 ARI 정보는 시간적 축에서 배열되는 다음의 청크/세그먼트 내에 포함될 수 있다.
일부 예시적인 구현예에서는, ARI 정보를 운반하기 위하여 인밴드 이벤트를 이용하는 것이 아니라, MPD 이벤트가 ARI 정보를 운반하기 위하여 이용될 수 있다. 특히, 이 구현예는 온-디맨드 컨텐츠에 대하여 적당할 수 있다.
일부 예시적인 구현예에서, ARI 정보는 emsg 박스에서 운반될 수 있다. 각각의 emsg 박스는, 방식 URN 식별자에 의해 정의되거나 이와 연관되는 이벤트 방식에 속할 수 있다.
이하의 표 3은 MPD에서의 ARI 이벤트에 대한 예시적인 파라미터를 예시한다.
표 3에서 도시된 바와 같이, 2개의 엘리먼트인, EventStream 및 InbandEventStream은 ARI 이벤트를 설명하기 위하여 이용될 수 있다. 두 스트림은 값 속성을 포함할 수 있다. 값 속성은 표 1에서 설명된 바와 같이, CmafAriMetaDataSampleEntry 필드를 운반할 수 있다. 예를 들어, CmafAriMetaDataSampleEntry 필드는 다음의 필드를 포함할 수 있다:
switching_set_identifier
num_tracks
num_quality_indicators
track_ids의 순서화된 리스트
quality_identifier의 리스트
일부 예시적인 구현예에서, 이벤트 엘리먼트는, 이벤트 내의 ARI 정보가 적용되는 주기의 시작으로부터 청크 오프셋을 지시하는 presentaionTime 속성(예컨대, Event@presentationTime)을 포함할 수 있다.
일부 예시적인 구현예에서, 이벤트 엘리먼트는, ARI 정보가 이용되어야 하는 기간을 지시하는 기간 속성(예컨대, Event@duration)을 포함할 수 있다. 예를 들어, 이것은 청크의 기간 또는 세그먼트의 기간을 포함할 수 있다.
일부 예시적인 구현예에서, 이벤트는 이벤트 본문을 포함할 수 있다. 이벤트 본문은 표 2에서 정의되는 CmafAriFormatStruct와 동일한 구성을 공유할 수 있다.
이하의 표 4는 인밴드 ARI 이벤트에 대한 예시적인 emsg 파라미터를 예시한다.
MPD 이벤트 내의 이벤트 본문 및 인밴드 이벤트 내의 message_data는 동일한 CMAF ARI 샘플 구조인 CmafAriFormatStruct를 공유한다는 것에 주목한다. 그러므로, 이벤트 디스패처로부터 이벤트를 수신한 후의 ARI 샘플의 파싱 및 프로세싱은 동일할 것이다. 즉, 동일한 파싱 및 프로세싱 로직은 MPD 이벤트 및 인밴드 이벤트에 대하여 공유될 수 있다.
일부 실시예에서, ARI 이벤트는 예를 들어, ISO/IEC 23009-1의 조항 A. 13에 따라 프로세싱되고 디스패치될 수 있다. 예를 들어, ARI 이벤트는 도 3에서 예시된 바와 같은 예시적인 DASH/CMAF 클라이언트 아키텍처 하에서 프로세싱되고 디스패치될 수 있다.
일부 실시예에서, ARI 이벤트가 디스패치된 후에, 이 ARI의 포스트-프로세싱이 발생할 것이다. 포스트-프로세싱은 표 5에서 도시되는 파라미터에 의존할 수 있다.
이 개시내용에서, 다양한 실시예는 ARI 이벤트 또는 ARI 트랙 샘플을 채용함으로써 미디어 트랙 전환을 강화하기 위하여 설명된다. 예를 들어, ARI 이벤트(또는 ARI 트랙 샘플)는 동일한 전환 세트/적응 세트 내의 임의의 또는 모든 트랙의 임의의 또는 모드느 정렬된 청크(병렬 청크)의 크기, 품질, 및 오프셋 정보를 운반할 수 있다. CMAF/DASH 클라이언트는 관련된 청크 경계에서 또 다른 트랙/표현으로 전환하기 위하여 ARI 트랙 샘플 또는 ARI 이벤트에서 운반되는 정보를 이용할 수 있다.
도 6은 세그먼트/청크 레벨에서 미디어 트랙을 전환하기 위한 예를 도시한다. 도 6에서 도시된 바와 같이, 예를 들어, 상이한 비트 레이트를 나타내는 3개의 트랙/표현이 있다. 각각의 트랙 내의 청크는 다른 트랙 내의 개개의 청크와 시간 정렬된다. 예를 들어, 각각의 트랙 내의 청크 C1은 시간 정렬된다. 상이한 트랙 내의 이 시간 정렬된 청크는 병렬 청크로서 지칭될 수 있다. 예를 들어, 모든 C1 청크는 병렬 청크이고; 모든 C2 청크는 병렬 청크이다. 도 6에서, 예시적인 청크 레벨 전환은 다음의 방식으로 수행된다:
C1(610) 후에, C2(612)로 전환하고; C3(614) 후에, C4(616)로 전환하고; C4(616) 후에, C5(618)로 전환함.
도 6에서, 트랙 전환은 DASH 또는 CMAF에서 지원되는 최소 미디어 데이터 유닛 레벨에서 행해진다. 예를 들어, 유닛은 CMAF에서의 청크, 또는 DASH에서의 세그먼트일 수 있다. DASH 표현 레벨 또는 CMAF 트랙 레벨과 같은 상이한 레벨에서의 전환이 또한 지원될 수 있다.
트랙/표현 전환에서는, 전환 판정에 관한 2개의 중요한 시간 포인트가 있다. 클라이언트가 전환에 대한 판정을 행할 때이고, 제2 시간 포인트는 전환이 일어날 때(예컨대, 어느 청크로부터)이다. 예를 들어, 전환 판정은 도 6에서의 C1 청크와 같은, 청크의 시작, 종료, 또는 그 동안에 행해질 수 있다. 판정은 예를 들어, C2 청크로부터 시작하는 트랙 2로의 전환(따라서, C2 청크는 전환 포인트임); 또는 C1 청크로부터 시작하는 트랙 3으로의 전환(C1 청크가 전환 포인트임); 또는 C3 청크로부터 시작하는 트랙 2로의 전환(C3 청크가 전환 포인트임)일 수 있다.
일부 실시예에서, 청크 i에서 행해지는 전환 판정은 청크 i+n에서 전환하기 위한 판정이고, 여기서, i 및 n은 비-음수 정수이다.
일부 실시예에서, 전환을 위한 보조 정보는 ARI 이벤트 또는 ARI 트랙 샘플에서 운반될 수 있다. DASH/CMAF 클라이언트는 상이한 트랙/표현으로의 전환에 관한 판정을 행하기 위하여 최근의 이용가능한 보조 정보를 이용할 수 있다.
일부 실시예에서는, 각각의 트랙/표현에 대하여, 보조 정보가 다음을 포함할 수 있다:
현재(또는 다음) 청크의 오프셋 및 크기.
현재(또는 다음) 청크의 품질. 품질은 미디어의 해상도를 포함할 수 있다.
일부 실시예에서, 보조 정보는 묵시적일 수 있고, DASH/CMAF 클라이언트는 전환 포인트를 도출하기 위하여 보조 정보를 이용할 수 있다.
일부 실시예에서, 보조 정보는 명시적일 수 있다. 예를 들어, 보조 정보는 전환 포인트의 명시적 지시(예컨대, 청크 및 그 대응하는 트랙)를 운반할 수 있고, DASH/CMAF 클라이언트는 전환을 행하기 위하여 보조 정보를 단지 따를 수 있다.
이 개시내용에서, DASH/CMAF 클라이언트가 스트리밍 세션 중일 때, 몇몇 상이한 접근법이 트랙/표현 전환에 대하여 이용될 수 있다. 예를 들어, 클라이언트는 다음 청크/세그먼트(예컨대, 현재 청크는 C1이고, C2에서 전환)에서, 또는 다음의 n 번째 청크/세그먼트(예컨대, 현재 청크는 C1이고, C4에서 전환)에서 전환이 필요한 것으로 판정할 수 있다. 또 다른 예를 들어, 클라이언트는 현재 청크에 대하여 즉각적인 전환이 필요한 것으로 판정할 수 있다. 조기 전환 판정은, 클라이언트가 미디어 데이터를 더 일찍 요청/수신/버퍼링하기 시작할 수 있다는 의미에서 유익할 수 있다. 그러나, 현재 대역폭 조건에 대한 신속산 적응이 필요한 경우에는, 즉각적인 전환에 대한 판정이 바람직할 수 있다. 클라이언트는 필요한 바와 같이 적절한 접근법을 이용할 수 있다.
일부 실시예에서, 클라이언트가 청크 전송을 이용하여 표현을 스트리밍하고 있는 경우에는, 그것은 스트리밍 시에 청크/세그먼트 뿐만 아니라 ARI 트랙 또는 ARI 이벤트를 얻고 있다. 예를 들어, DASH/CMAF 클라이언트는 미디어 트랙과는 상이한 트랙을 통해 ARI 샘플을 수신할 수 있거나; DASH/CMAF 클라이언트는, 미디어 청크와 다중화되거나 미디어 청크 내에 내장되는 ARI 이벤트를 수신할 수 있다.
도 7 내지 도 9는 DASH/CMAF 클라이언트가 ARI 정보를 수신하는 예시적인 타이밍을 도시한다. ARI 정보는 전환 보조 정보만을 운반할 수 있거나, 전환 보조 정보와 함께 다른 정보를 운반할 수 있다. 논의 및 예시를 단순화하기 위하여, 인코더와 클라이언트 사이의 제로 전송 지연이 이 도면에서 가정된다. 이 가정 하에서, 패키저의 출력, 즉, 청크/세그먼트, 그 청크/세그먼트에 대한 ARI 샘플, 또는 이벤트가 내장된 청크/세그먼트는 일단 이들이 패키저에서 준비되면, 클라이언트와 동시에 이용가능하다. 동일한 기초적인 원리는 전송 지연이 고려될 때에 여전히 적용될 것이라는 것에 주목한다. 이하의 실시예에서, 미디어 유닛 "청크"는 예시의 목적을 위하여 이용된다. 이 실시예는 또한, 세그먼트와 같은 다른 미디어 유닛에 적용된다.
도 7 내지 도 9에서, T1, T2와 같은 각각의 시간 포인트에 대한 점선 수직 라인 정보의 이용가능성을 도시한다.
일부 실시예에서, 도 7에서 도시된 바와 같이, 대역폭 전환을 지원하기 위한 ARI 정보는 예를 들어, ARI 샘플을 통해 ARI 트랙에서 운반된다. ARI 트랙은 미디어 청크 또는 미디어 세그먼트를 포함하는 미디어 트랙과는 상이한 트랙인 것에 주목한다.
도 7에서 도시된 바와 같이, ARI 샘플 1에 의해 운반되는 청크 C1에 대한 ARI 정보(예컨대, 위치, 크기, 및 품질)는 T1에서 이용가능하다(DASH/CMAF 클라이언트에 의해 수신됨). 그 다음으로, 클라이언트는 C1의 (또는 C1과 연관되는) ARI 정보를 이용할 수 있고, C2에서의 전환하기 위한 판정을 행할 수 있다. 즉, T1에서, C1 ARI 정보에 기초하면, 클라이언트는 C2 청크(즉, C1의 다음 청크)를 수신하기 전에 전환하도록 판정할 수 있다. ARI 정보는 수신된 청크 C1에 대한 것이거나 이와 연관되고, 전환 판정은 다음 청크에 대한 것이므로, 이 방법은 외삽 전환으로서 지칭된다. 즉, 전환 판정은 다음 청크에서의 전환을 위한 과거의 청크의 ARI 정보에 기초하여 행해지고, 그러므로, 전환 판정은 추정/예측에 기초한다. ARI 정보는 미래의 청크에서의 전환을 결정하기 위하여 이용되고, 그 미래의 청크의 특성은 추정 또는 예측이다. 예를 들어, C1에 대한 ARI 정보는 청크 C2의 특성을 추정하고/예측하기 위하여 이용된다. 일단 전환 판정이 ARI 정보에 기초하여 행해지면, 클라이언트는 C2 청크에 대하여 또 다른 트랙으로 전환할 것이다.
일부 예시적인 구현예에서, 클라이언트는 일단 전환 판정이 행해지면, 희망된 청크의 C2 청크를 수신하고 및/또는 버퍼링하기 시작할 수 있다.
일부 예시적인 구현예에서, 도 7에서의 ARI 샘플 1은 부분적인 또는 모든 병렬 청크(예컨대, 도 6에서 도시된 바와 같은 모든 트랙 내의 C1 청크)의 전환 보조 정보(위치, 크기, 및 품질)를 운반할 수 있다. 예를 들어, ARI 정보는 모든 병렬 C1 청크에 대한 전환 보조 정보를 운반할 수 있다.
위에서 설명된 바와 같은 외삽 전환 해결책에 추가적으로, 이 개시내용의 실시예는 ARI 트랙이 이용될 때에 보간 전환 해결책을 추가로 제공할 수 있다. 도 7에서 도시된 바와 같이, C1 청크에 대한 ARI 샘플 2에 의해 운반되는 ARI 정보는 T2에서 클라이언트에 의해 이용가능하게 될 것이다. 즉, 클라이언트는 C2의 ARI 정보를 얻기 위하여 T2까지 대기할 필요가 있을 것이다. 그 다음으로, C2 ARI 정보에 기초하면, 클라이언트는 C2 상에서 전환하기 위한 판정(즉, 전환 포인트가 C2 청크이거나, 또 다른 트랙의 병렬 C2 청크로의 전환)을 행할 수 있다. 이 경우에, 클라이언트가 C2 청크에서 전환할 것인지 여부에 대한 판정을 행하기 위하여, C2 청크 자체에 대한 ARI 정보가 이용되고, ARI 정보는 정확하다. 이 경우에, 전환 판정은 전환 판정이 이전의 청크(들)로부터의 추정에 기초하는 외삽 해결책보다 정확한 정보에 기초한다.
예시적으로, ARI 샘플 2에 의해 운반되는 ARI 정보는 하나 이상의 병렬 C2 청크 또는 모든 병렬 C2 청크에 대한 것일 수 있다.
비교로서, 위에서 논의된 바와 같은 외삽 전환 방법 및 보간 전환 방법의 둘 모두는 C2 청크에서 전환하도록 선택한다. 외삽 전환에서는, C1 청크에 대한 ARI 정보로부터의 추정/예측에 기초하여, 전환 판정이 T1에서 행해진다. 추정/예측은 다음 중의 적어도 하나를 추가로 참조하여 수행될 수 있다:
DASH/CMAF 클라이언트에 의해 이용가능한 대역폭과 같은 현재 네트워크 조건;
미디어 품질, 미디어 크기, 및 미디어 오프셋과 같은 현재 재생 요건.
DASH/CMAF 클라이언트는, C1 청크에 대한 ARI 정보로부터의 추정/예측을 이용함으로써, 전환이 필요한지 여부 및 어느 C2 청크가 전환을 위하여 선택될 것인지(전환이 필요한 경우)에 대해 판정을 행할 수 있다.
다른 한편으로, 보간 전환에서는, 전환 판정을 위하여 정확한 C2 청크에 대한 ARI 정보에 기초하여, 전환 판정이 T2에서 행해진다. 전환 판정은 현재 네트워크 조건, 및/또는 현재 재생 요건을 참조하여 ARI 정보에 기초하여 행해질 수 있다.
그러므로, 외삽 전환은 더 빠른 전환 판정(T2보다 빠른 T1에서의 판정)을 얻을 수 있지만, 판정은 추정/예측 기반이다. 보간 전환은 더 정확한 전환 판정을 얻을 수 있지만, 판정은 예를 들어, 하나의 청크만큼 더 이후에 행해진다(즉, 하나의 청크만큼 T1보다 더 이후인 T2에서의 판정). 일단 전환 판정이 행해지면, 클라이언트는 선택 청크를 요청/수신/버퍼링하기 시작할 수 있다.
일부 예시적인 구현예에서, 보간 전환 방법 하에서는, 클라이언트가 먼저, (예컨대, 청크 C2에 대한) ARI 샘플을 수신할 수 있고, 그 다음으로, 하나의 청크 지연으로, 대응하는 청크를 수신할 수 있다.
일부 실시예에서, 대역폭 전환/트랙 전환은 (래그를 갖지 않는) ARI 이벤트에 기초하여 수행된다. 도 8에서 도시된 바와 같이, 대역폭 전환을 지원하기 위한 ARI 정보(즉, 전환 보조 정보)는 청크(들)와 다중화되거나 이에 내장되는 ARI 이벤트(들)에서 운반된다.
도 8에서 도시된 바와 같이, ARI 이벤트 1(810으로 라벨 붙여짐)에 의해 운반되는 청크 C1에 대한 전환 보조 정보(예컨대, 위치, 크기, 및 품질)는 T1에서 클라이언트에 의해 이용가능하다(클라이언트에 의해 수신됨). 이벤트는 청크 C1과 "인밴드"이므로, 이벤트 1 및 청크 1의 둘 모두는 T1에서 DASH/CMAF 클라이언트에 의해 수신된다는 것에 주목한다. 이 경우에, 위에서 논의된 바와 같은 외삽 전환 방법이 이용될 수 있다. 즉, 청크 C1에 대한 ARI 정보에 기초하면, 클라이언트는 현재 네트워크 조건, 및/또는 현재 재생 요건을 추가로 참조하여, 예측/추정을 이용하여 전환 판정을 행할 수 있다. 전환이 C2에서 희망되는 경우에, 클라이언트는 병렬 C2 청크 중에서 특정한 C2 청크를 추가로 선택할 수 있다.
이 시나리오에서는, 보간 전환 방법이 적당하지 않다는 것에 주목한다. 보간 전환에서와 같이, 현재 청크 내의 ARI 이벤트는 현재 청크에서의 전환을 (직접적으로 또는 간접적으로) 지시하기 위하여 이용되는 것으로 추정되지만, 청크가 이미 수신되므로, 전환을 행하기가 너무 늦다. 예를 들어, ARI 이벤트 1이 수신될 때, 청크 C1이 또한 수신되고, 그러므로, 전환을 행하기 위한 가장 빠른 시간은 T2일 것이다.
일부 실시예에서, 대역폭 전환/트랙 전환은 래그를 갖는 ARI 이벤트에 기초하여 수행된다. 도 9에서 도시된 바와 같이, 대역폭 전환을 지원하기 위한 ARI 정보(즉, 전환 보조 정보)는 하나의 청크 지연으로 ARI 이벤트(들)에서 운반된다. 이 경우에, 청크 i는 청크 i+1에 대한 ARI 청크를 가지고, 여기서, i는 정수이다. 이하에서 도 9를 참조하여 예가 주어진다.
도 9에서, ARI 이벤트 2(910으로 라벨 붙여짐)는 C2 청크에 대한 전환 보조 정보를 운반하고, C2 청크가 인코더 측으로부터 준비된 후에 오직 컴파일링될 수 있다. 그러므로, 패키저 측 상에서는, 하나의 청크 지연이 있고: 인코더의 출력과 병렬로(또는 동기하여) 청크 C1을 패키징하는 것이 아니라, 패키저는 C2 청크가 인코더에 의해 생성되게 하고 ARI 이벤트 2가 C2 청크에 기초하여 컴파일링되게 하기 위하여, 하나의 청크의 기간을 대기해야 할 것이고, 그 다음으로, ARI 이벤트 2를 C1 청크와 다중화할 것이다. 이 경우에, C1과 같은 현재 청크는 다음의 청크에 대한 ARI 이벤트를 운반한다(예컨대, 청크 i는 청크 i+n에 대한 ARI 이벤트를 운반하고, 여기서, i 및 n은 정수임).
도 9는 위에서 논의된 지연 패턴을 예시한다. 도 9에서 도시된 바와 같이, 동일한 청크에 대하여, 패키저를 위한 타임라인은 하나의 청크만큼 우측으로 시프트된다.
도 9에서, C2 청크의 전환 보조 정보는 C1 청크와 함께 T2에서 이용가능하다.
일부 예시적인 구현예에서, 외삽 전환 방법은 전환 판정을 행하기 위하여 이용될 수 있다. 예를 들어, T2에서, C1 청크에서 운반되는 C2 청크에 대한 전환 보조 정보에 기초하면, 클라이언트는 현재 네트워크 조건, 및/또는 현재 재생 요건을 추가로 참조하여, 예측/추정을 이용하여 C3 청크에서 전환할 것인지 여부에 대한 전환 판정을 행할 수 있다. 전환이 희망되는 경우에, 클라이언트는 병렬 C3 청크 중에서 특정한 C3 청크를 추가로 선택할 수 있다. 외삽 전환 방법을 이용하면, 전환 판정은 다음 청크(또는 미래의 청크)에서 전환하기 위한 과거의 청크에 기초하고, 예를 들어, 전환 판정은 C3 청크에서 전환하기 위한 C1 청크에 기초하여 행해진다.
일부 예시적인 구현예에서, 보간 전환 방법은 전환 판정을 행하기 위하여 이용될 수 있다. 예를 들어, T2에서, C1 청크에서 운반되는 C2 청크에 대한 전환 보조 정보에 기초하면, 클라이언트는 현재 네트워크 조건, 및/또는 현재 재생 요건을 추가로 참조하여, C2 청크에서 전환할 것인지 여부에 대한 전환 판정을 행할 수 있다. 전환이 희망되는 경우에, 클라이언트는 병렬 C2 청크 중에서 특정한 C2 청크를 추가로 선택할 수 있다. 보간 전환 방법을 이용하면, 전환 판정은 전환되어야 할 청크에 대한 정확한 전환 보정 정보에 기초한다. 예를 들어, C1 청크에서 운반되는 전환 보조 정보가 C2 청크에 대한 것이므로, 전환 보조 정보는 C2 청크에서의 전환 시에 전환 판정을 행하기에 정확하다. 전환 판정이 T2에서 행해지고, C2 청크가 아직 페치되지 않았을 때에 주목한다.
도 10은 미디어 스트림을 프로세싱하기 위한 예시적인 방법(1000)을 도시한다. 미디어 스트림은 예를 들어, (4G 네트워크에서 전달되는 미디어 스트림에 대한) 4G 미디어 스트림, 또는 (5G 네트워크에서 전달되는 미디어 스트림에 대한) 5G 미디어 스트림을 포함할 수 있다. 방법은 예를 들어, 더 이후의 섹션에서 설명되는 컴퓨터 시스템; 인코더 및/또는 디코더의 일부일 수 있거나 이와 통합될 수 있는 클라이언트 디바이스에 의해 구현될 수 있다. 미디어 스트림은 DASH 또는 CMAF 표준을 따를 수 있다. 방법(1000)은 다음의 단계의 부분 또는 전부를 포함할 수 있다: 제1 미디어 청크 및 제2 미디어 청크를 포함하는 복수의 미디어 청크, 및 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI) 정보를 포함하는 미디어 스트림 데이터를 수신하는 단계(1010); ARI 정보에 기초하여 트랙 전환 정보를 결정하는 단계(1020); 트랙 전환 정보에 기초하여, 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하는 단계(1030); 및 개개의 미디어 트랙을 통해 제1 미디어 청크 및 제2 미디어 청크를 수신하는 단계(1040).
일부 예시적인 구현예에서, 단계(1040)에서는, 개개의 미디어 트랙을 통해 제1 미디어 청크 및 제2 미디어 청크를 수신할 때, 제1 미디어 청크 및 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 스트리밍 클라이언트 디바이스로 전달된다.
일부 예시적인 구현예에서, ARI 정보는 다음 중의 하나를 포함할 수 있거나, 다음 중의 하나를 통해 운반될 수 있다: ARI 샘플(들), 또는 ARI 이벤트(들). 방법(1000)은, ARI 정보가 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스와 연관되는 ARI 트랙으로부터의 ARI 샘플; 또는 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스 내에 내장되는 미디어 스트림과 연관되는 ARI 이벤트 중의 적어도 하나를 포함한다는 것을 더 포함할 수 있다.
일부 예시적인 구현예에서, 방법(1000)은, 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스와 연관되는 ARI 트랙으로부터의 어드레싱가능한 자원 인덱스(ARI) 샘플; 또는 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스 내에 내장되는 미디어 스트림과 연관되는 ARI 이벤트 중의 하나를 수신하는 것을 더 포함할 수 있고, 여기서, ARI 이벤트는, 제1 미디어 트랙 내의 제1 미디어 슬라이스; 및 미디어 스트림의 다른 미디어 트랙 내에 있으며 제1 미디어 슬라이스와 정렬되는 제1 병렬 미디어 슬라이스; 또는 제1 미디어 트랙 내에 있으며 제1 미디어 슬라이스에 후속하는 제2 미디어 슬라이스; 및 미디어 스트림의 다른 미디어 트랙 내에 있으며 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스 중의 적어도 하나에 대한 특성 정보를 제공한다.
이 개시내용에서의 실시예는 DASH 및 CMAF의 둘 모두 뿐만 아니라, 유사한 기초적인 원리를 적용함으로써 다른 미디어 스트리밍 기술에 적용된다.
개시내용에서의 실시예는 별도로 이용될 수 있거나 임의의 순서로 조합될 수 있다. 위에서 설명된 방법(1000)과 같은, 이 개시내용에서의 방법은 열거된 단계의 전부 또는 단지 부분을 포함할 수 있다. 추가로, 방법(또는 실시예), DASH 클라이언트, CMAF 클라이언트의 각각은 프로세싱 회로부(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 하나의 예에서, 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능 매체 내에 저장되는 프로그램을 실행한다. 개시내용에서의 실시예는 DASH 및/또는 CMAF 기술/표준에 적용될 수 있다. 예시적으로, 방법(또는 실시예)의 각각은 DASH/CMAF 클라이언트에 의해 수행될 수 있고, 클라이언트는 프로세싱 회로부를 포함하는 컴퓨터 디바이스에서 작동하고 있을 수 있다. 예를 들어, 클라이언트는 인코더 및/또는 디코더에서 작동하고 있을 수 있다.
위에서 설명된 기법은 컴퓨터-판독가능 명령을 이용하고 하나 이상의 컴퓨터-판독가능 매체 내에 물리적으로 저장된 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 11은 개시된 발명 요지의 어떤 실시예를 구현하기 위하여 적당한 컴퓨터 시스템(1800)을 도시한다.
컴퓨터 소프트웨어는, 하나 이상의 컴퓨터 중앙 프로세싱 유닛(CPU : central processing unit), 그래픽 프로세싱 유닛(GPU : Graphics Processing Unit) 등에 의해 직접적으로, 또는 해독, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위하여 어셈블리(assembly), 컴파일링(compilation), 링크(linking) 등의 대상이 될 수 있는 임의의 적당한 머신 코드 또는 컴퓨터 언어를 이용하여 코딩될 수 있다.
명령은 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트 상에서 실행될 수 있다.
컴퓨터 시스템(1800)에 대하여 도 11에서 도시된 컴포넌트는 본질적으로 예시적이고, 본 개시내용의 실시예를 구현하는 컴퓨터 소프트웨어의 이용 또는 기능성의 범위에 대한 임의의 제한을 제안하도록 의도되지는 않는다. 컴포넌트의 구성은 컴퓨터 시스템(1800)의 예시적인 실시예에서 예시된 컴포넌트의 임의의 하나 또는 그 조합에 관련되는 임의의 종속성 또는 요건을 가지는 것으로서 해독되지 않아야 한다.
컴퓨터 시스템(1800)은 어떤 인간 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는 예를 들어, (키스트로크(keystroke), 스와이프(swipe), 데이터 글러브(data glove) 이동과 같은) 촉각적 입력, (보이스, 클랩핑(clapping)과 같은) 오디오 입력, (제스처(gesture)와 같은) 시각적 입력, 후각적 입력(도시되지 않음)을 통한 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는 또한, (음성, 음악, 주변 사운드와 같은) 오디오, (스캐닝된 이미지, 스틸 이미지 카메라로부터 획득된 사진 이미지와 같은) 이미지, (2 차원 비디오, 입체적 비디오를 포함하는 3 차원 비디오와 같은) 비디오와 같은, 인간에 의한 지각적 입력에 반드시 직접적으로 관련되지 않은 어떤 미디어를 캡처하기 위하여 이용될 수 있다.
입력 인간 인터페이스 디바이스는 키보드(1801), 마우스(1802), 트랙패드(1803), 터치 스크린(1810), 데이터-글러브(도시되지 않음), 조이스틱(1805), 마이크로폰(1806), 스캐너(1807), 카메라(1808) 중의 하나 이상(각각의 도시된 것의 오직 하나)을 포함할 수 있다.
컴퓨터 시스템(1800)은 또한, 어떤 인간 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스는 예를 들어, 촉각적 출력, 사운드, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각을 자극하는 것일 수 있다. 이러한 인간 인터페이스 출력 디바이스는 촉각적 출력 디바이스(예를 들어, 터치-스크린(1810), 데이터-글로브(도시되지 않음), 또는 조이스틱(1805)에 의한 촉각적 피드백이지만, 입력 디바이스로서 역할을 하지 않는 촉각적 피드백 디바이스가 또한 있을 수 있음), (스피커(1809), 헤드폰(도시되지 않음)과 같은) 오디오 출력 디바이스, (각각이 터치-스크린 입력 능력을 갖거나 갖지 않고, 각각이 촉각적 피드백 능력을 갖거나 갖지 않고, 그 일부는 입체적 출력, 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이, 및 연기 탱크(smoke tank)(도시되지 않음)와 같은 수단을 통해 2 차원 시각적 출력 또는 3 차원 초과 출력을 출력하는 것이 가능할 수 있는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하기 위한 스크린(1810)과 같은) 시각적 출력 디바이스, 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(1800)은 또한, CD/DVD 또는 유사한 매체(1821)를 갖는 CD/DVD ROM/RW(1820)를 포함하는 광학 매체, 썸-드라이브(thumb-drive)(1822), 분리가능 하드 드라이브 또는 솔리드 스테이트 드라이브(1823), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(security dongle)(도시되지 않음)과 같은 특화된 ROM/ASIC/PLD 기반 디바이스 등과 같은 인간 액세스가능한 저장 디바이스 및 그 연관된 매체를 포함할 수 있다.
본 기술분야에서의 통상의 기술자는 또한, 현재 개시된 발명 요지와 관련하여 이용된 바와 같은 용어 "컴퓨터 판독가능 매체"가 송신 매체, 반송파, 또는 다른 일시적 신호를 망라하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1800)은 또한, 하나 이상의 통신 네트워크(1855)에 대한 인터페이스(1854)를 포함할 수 있다. 네트워크는 예를 들어, 무선, 유선, 광학일 수 있다. 네트워크는 추가로, 로컬, 광역, 대도시, 차량 및 산업, 실시간, 내지연성(delay-tolerant) 등일 수 있다. 네트워크의 예는 이더넷(Ethernet), 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하기 위한 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상 방송 TV를 포함하기 위한 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하기 위한 차량 및 산업 등과 같은 로컬 영역 네트워크를 포함한다. 어떤 네트워크는 (예를 들어, 컴퓨터 시스템(1800)의 USB 포트와 같은) 어떤 범용 데이터 포트 또는 주변 버스(1849)에 연결된 외부 네트워크 인터페이스 어댑터를 통상적으로 요구하고; 다른 것은 통상적으로, 이하에서 설명된 바와 같은 시스템 버스로의 연결(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스, 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(1800)의 코어로 통합된다. 이 네트워크 중의 임의의 네트워크를 이용하여, 컴퓨터 시스템(1800)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향성 수신 단독(예를 들어, 방송 TV), 단방향성 전송-단독(예를 들어, 어떤 CANbus 디바이스로의 CANbus), 또는 예를 들어, 로컬 또는 광역 디지털 네트워크를 이용하는 다른 컴퓨터 시스템으로의 양방향성일 수 있다. 어떤 프로토콜 및 프로토콜 스택(protocol stack)은 위에서 설명된 바와 같은 그 네트워크 및 네트워크 인터페이스의 각각 상에서 이용될 수 있다.
전술한 인간 인터페이스 디바이스, 인간-액세스가능한 저장 디바이스, 및 네트워크 인터페이스는 컴퓨터 시스템(1800)의 코어(1840)에 연결될 수 있다.
코어(1840)는 하나 이상의 중앙 프로세싱 유닛(CPU : Central Processing Unit)(1841), 그래픽 프로세싱 유닛(GPU : Graphics Processing Unit)(1842), 필드 프로그래밍가능 게이트 어레이(FPGA : Field Programmable Gate Area)의 형태인 특화된 프로그래밍가능 프로세싱 유닛(1843), 어떤 태스크를 위한 하드웨어 가속기(1844), 그래픽 어댑터(1850) 등을 포함할 수 있다. 이 디바이스는 판독-전용 메모리(ROM : Read-only memory)(1845), 랜덤-액세스 메모리(1846), 내부 비-사용자 액세스가능한 하드 드라이브와 같은 내부 대용량 스토리지, SSD(1847) 등과 함께, 시스템 버스(1848)를 통해 접속될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(1848)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하기 위하여 하나 이상의 물리적 플러그의 형태로 액세스가능할 수 있다. 주변 디바이스는 직접적으로 코어의 시스템 버스(1848)에, 또는 주변 버스(1849)를 통해 연결될 수 있다. 예에서, 스크린(1810)은 그래픽 어댑터(1850)에 접속될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등을 포함한다.
CPU(1841), GPU(1842), FPGA(1843), 및 가속기(1844)는 전술한 컴퓨터 코드를 조합으로 구성할 수 있는 어떤 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(1845) 또는 RAM(1846) 내에 저장될 수 있다. 과도적 데이터는 또한, RAM(1846) 내에 저장될 수 있는 반면, 영구적 데이터는 예를 들어, 내부 대용량 스토리지(1847) 내에 저장될 수 있다. 메모리 디바이스 중의 임의의 것에 대한 고속 저장 및 인출은 하나 이상의 CPU(1841), GPU(1842), 대용량 스토리지(1847), ROM(1845), RAM(1846) 등과 밀접하게 연관될 수 있는 캐시 메모리의 이용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터-구현된 동작을 수행하기 위하여 그 상에서 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위하여 특수하게 설계되고 구성된 것일 수 있거나, 이들은 컴퓨터 소프트웨어 기술분야에서 통상의 기술자에게 널리 공지되고 이용가능한 종류일 수 있다.
비-제한적인 예로서, 아키텍처(1800) 및 구체적으로 코어(1840)를 가지는 컴퓨터 시스템은 (CPU, GPU, FPGA, 가속기 등을 포함하는) 프로세서(들)가 하나 이상의 유형의 컴퓨터-판독가능 매체 내에 내장된 소프트웨어를 실행하는 결과로서, 기능성을 제공할 수 있다. 이러한 컴퓨터-판독가능 매체는 위에서 도입된 바와 같은 사용자-액세스가능한 대용량 스토리지 뿐만 아니라, 코어-내부 대용량 스토리지(1847) 또는 ROM(1845)과 같은, 비-일시적 본질인 코어(1840)의 어떤 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스 내에 저장될 수 있고 코어(1840)에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 특정한 필요성에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1840) 및 구체적으로, (CPU, GPU, FPGA 등을 포함하는) 그 안의 프로세서로 하여금, RAM(1846) 내에 저장된 데이터 구조를 정의하는 것, 및 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하는, 본 명세서에서 설명된 특정한 프로세스 또는 특정한 프로세스의 특정한 부분을 실행하게 할 수 있다. 추가적으로 또는 대안으로서, 컴퓨터 시스템은 본 명세서에서 설명된 특정한 프로세스 또는 특정한 프로세스의 특정한 부분을 실행하기 위하여 소프트웨어 대신에 또는 소프트웨어와 함께 동작할 수 있는, 회로(예를 들어, 가속기((1844))에서 배선되거나 또는 그렇지 않을 경우에 구체화된 로직의 결과로서의 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 망라할 수 있고, 적절할 경우에 그 반대도 마찬가지이다. 컴퓨터-판독가능 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 (집적 회로(IC : integrated circuit)와 같은) 회로, 실행을 위한 로직을 구체화하는 회로, 또는 적절할 경우에 둘 모두를 망라할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적당한 조합을 망라한다.
이 개시내용은 몇몇 예시적인 실시예를 설명하였지만, 개시내용의 범위 내에 속하는 개조, 치환, 다양한 적당한 등가물이 있다. 본 기술분야에서의 통상의 기술자는, 본 명세서에서 명시적으로 도시되거나 설명되지 않았지만, 개시내용의 원리를 구체화하고, 이에 따라, 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있을 것이라는 것이 이에 따라 인식될 것이다.
Claims (20)
- 미디어 스트림을 프로세싱하기 위한 방법으로서,
상기 방법은 스트리밍 클라이언트 디바이스에 의해 수행되고, 상기 미디어 스트림은 적어도 2개의 미디어 트랙(media track)을 포함하고, 동적 적응적 스트리밍 오버 HTTP(DASH : Dynamic Adaptive Streaming over HTTP) 표준 또는 공통 미디어 애플리케이션 포맷(CMAF : Common Media Application Format)을 따르고, 상기 방법은,
제1 미디어 청크(media chunk) 및 제2 미디어 청크를 포함하는 복수의 미디어 청크; 및 상기 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI : Addressable Resource Index) 정보를 포함하는 미디어 스트림 데이터를 수신하는 단계;
상기 ARI 정보에 기초하여 트랙 전환 정보를 결정하는 단계;
상기 트랙 전환 정보에 기초하여, 상기 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하는 단계; 및
개개의 미디어 트랙을 통해 상기 제1 미디어 청크 및 상기 제2 미디어 청크를 수신하는 단계 - 상기 제1 미디어 청크 및 상기 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 상기 스트리밍 클라이언트 디바이스로 전달됨 -
를 포함하는, 방법. - 제1항에 있어서,
상기 ARI 정보는,
상기 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스와 연관되는 ARI 트랙으로부터의 ARI 샘플; 또는
상기 미디어 스트림의 상기 제1 미디어 트랙 내에 있는 상기 제1 미디어 슬라이스 내에 내장되는 상기 미디어 스트림과 연관되는 ARI 이벤트
중의 적어도 하나를 포함하는, 방법. - 제2항에 있어서,
상기 미디어 스트림은 DASH 표준을 따르고, 상기 제1 미디어 슬라이스는 상기 미디어 스트림 내의 세그먼트이거나,
상기 미디어 스트림은 CMAF 포맷을 따르고, 상기 제1 미디어 슬라이스는 상기 미디어 스트림 내의 청크인, 방법. - 제2항 또는 제3항에 있어서,
상기 ARI 정보는,
상기 제1 미디어 트랙 내의 상기 제1 미디어 슬라이스; 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며, 상기 제1 미디어 슬라이스와 정렬되는 제1 병렬 미디어 슬라이스; 또는
상기 제1 미디어 트랙 내에 있으며, 상기 제1 미디어 슬라이스에 후속하는 제2 미디어 슬라이스; 및 상기 미디어 스트림의 상기 다른 미디어 트랙 내에 있으며, 상기 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스
중의 적어도 하나에 대한 특성 정보를 제공하는, 방법. - 제4항에 있어서,
상기 특성 정보는,
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 오프셋;
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 크기;
상기 제1 병렬 미디어 슬라이스 각각의 오프셋;
상기 제1 병렬 미디어 슬라이스 각각의 크기;
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 품질; 또는
상기 제1 병렬 미디어 슬라이스 각각의 품질
중의 적어도 하나를 포함하는, 방법. - 제4항에 있어서,
상기 트랙 전환 정보에 기초하여, 상기 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하는 단계는,
상기 특성 정보 및 상기 스트리밍 클라이언트 디바이스에 의해 이용가능한 대역폭에 기초하여, 상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지를 결정하는 단계를 포함하는, 방법. - 제4항에 있어서,
상기 ARI 이벤트가 수신되고, 상기 ARI 이벤트는, 상기 제1 미디어 트랙 내의 상기 제1 미디어 슬라이스, 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며 상기 제1 미디어 슬라이스와 시간 정렬되는 상기 제1 병렬 미디어 슬라이스에 대한 특성 정보를 제공하고,
상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지 여부를 결정하는 단계는,
상기 특성 정보를 이용한 추정에 기초하여 상기 제2 병렬 미디어 슬라이스 중 하나를 선택하는 단계; 및
상기 제1 미디어 슬라이스 후에 상기 제2 병렬 미디어 슬라이스 중 하나의 제2 병렬 미디어 슬라이스로 전환하는 단계
를 포함하는, 방법. - 제7항에 있어서,
상기 미디어 스트림은 실시간으로 인코딩되고 송신되고, 상기 ARI 이벤트는 상기 제2 미디어 슬라이스 및 상기 제2 병렬 미디어 슬라이스의 고려 없이 구성되는, 방법. - 제4항에 있어서,
상기 ARI 이벤트가 수신되고, 상기 ARI 이벤트는, 상기 제1 미디어 트랙 내에 있으며 상기 제1 미디어 슬라이스에 후속하는 상기 제2 미디어 슬라이스; 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며 상기 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스에 대한 특성 정보를 제공하고,
상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지 여부를 결정하는 단계는,
상기 특성 정보에 기초하여 상기 제2 병렬 미디어 슬라이스 중 하나를 선택하는 단계; 및
상기 제1 미디어 슬라이스 후에 상기 제2 병렬 미디어 슬라이스 중 하나의 제2 병렬 미디어 슬라이스로 전환하는 단계
를 포함하는, 방법. - 제4항에 있어서,
상기 ARI 이벤트가 수신되고, 상기 ARI 이벤트는, 상기 제1 미디어 트랙 내에 있으며 상기 제1 미디어 슬라이스에 후속하는 상기 제2 미디어 슬라이스; 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며 상기 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스에 대한 특성 정보를 제공하고,
상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지 여부를 결정하는 단계는,
상기 특성 정보를 이용한 추정에 기초하여 상기 제2 병렬 미디어 슬라이스의 하나 다음에 있는 타깃 미디어 슬라이스를 선택하는 단계; 및
상기 제2 미디어 슬라이스 후에 상기 타깃 미디어 슬라이스로 전환하는 단계
를 포함하는, 방법. - 제10항에 있어서,
상기 미디어 스트림은 실시간으로 인코딩되고 송신되고, 상기 ARI 이벤트는 상기 제2 미디어 슬라이스 및 상기 제2 병렬 미디어 슬라이스를 고려하여 구성되는, 방법. - 제4항에 있어서,
ARI 샘플이 수신되고, 상기 ARI 샘플은, 상기 제1 미디어 트랙 내의 상기 제1 미디어 슬라이스, 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며 상기 제1 미디어 슬라이스와 시간 정렬되는 상기 제1 병렬 미디어 슬라이스에 대한 특성 정보를 제공하고,
상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지 여부를 결정하는 단계는,
상기 특성 정보를 이용한 추정에 기초하여 상기 제2 병렬 미디어 슬라이스 중 하나를 선택하는 단계; 및
상기 제1 미디어 슬라이스 후에 상기 제2 병렬 미디어 슬라이스 중 하나의 제2 병렬 미디어 슬라이스로 전환하는 단계
를 포함하는, 방법. - 제4항에 있어서,
상기 ARI 샘플이 수신되고, 상기 ARI 샘플은, 상기 제1 미디어 트랙 내의 상기 제1 미디어 슬라이스, 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며 상기 제1 미디어 슬라이스와 시간 정렬되는 상기 제1 병렬 미디어 슬라이스에 대한 특성 정보를 제공하고,
상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지 여부를 결정하는 단계는,
상기 특성 정보에 기초하여 상기 제1 병렬 미디어 슬라이스 중 하나를 선택하는 단계; 및
상기 제1 병렬 미디어 슬라이스 중 하나의 제1 병렬 미디어 슬라이스로 전환하는 단계
를 포함하는, 방법. - 디바이스로서,
컴퓨터 명령을 저장하기 위한 메모리, 및 상기 메모리와 통신하는 프로세서
를 포함하고,
상기 프로세서가 상기 컴퓨터 명령을 실행할 때, 상기 프로세서는, 상기 디바이스로 하여금,
미디어 스트림의 미디어 스트림 데이터를 수신하게 하고 - 상기 미디어 스트림은 적어도 2개의 미디어 트랙을 포함하고, 동적 적응적 스트리밍 오버 HTTP(DASH) 표준 또는 공통 미디어 애플리케이션 포맷(CMAF)를 따르고, 상기 미디어 스트림 데이터는, 제1 미디어 청크 및 제2 미디어 청크를 포함하는 복수의 미디어 청크; 및 상기 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI) 정보를 포함함 -,
상기 ARI 정보에 기초하여 트랙 전환 정보를 결정하게 하고,
상기 트랙 전환 정보에 기초하여, 상기 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하게 하고,
개개의 미디어 트랙을 통해 상기 제1 미디어 청크 및 상기 제2 미디어 청크를 수신하게 하도록 - 상기 제1 미디어 청크 및 상기 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 상기 디바이스로 전달됨 -
구성되는, 디바이스. - 제14항에 있어서,
상기 ARI 정보는,
상기 미디어 스트림의 제1 미디어 트랙 내에 있는 제1 미디어 슬라이스와 연관되는 ARI 트랙으로부터의 ARI 샘플; 또는
상기 미디어 스트림의 상기 제1 미디어 트랙 내에 있는 상기 제1 미디어 슬라이스 내에 내장되는 상기 미디어 스트림과 연관되는 ARI 이벤트
중의 적어도 하나를 포함하는, 디바이스. - 제15항에 있어서,
상기 미디어 스트림은 DASH 표준을 따르고, 상기 제1 미디어 슬라이스는 상기 미디어 스트림 내의 세그먼트이거나,
상기 미디어 스트림은 CMAF 포맷을 따르고, 상기 제1 미디어 슬라이스는 상기 미디어 스트림 내의 청크인, 디바이스. - 제15항 또는 제16항에 있어서,
상기 ARI 정보는,
상기 제1 미디어 트랙 내의 상기 제1 미디어 슬라이스; 및 상기 미디어 스트림의 다른 미디어 트랙 내에 있으며, 상기 제1 미디어 슬라이스와 정렬되는 제1 병렬 미디어 슬라이스; 또는
상기 제1 미디어 트랙 내에 있으며, 상기 제1 미디어 슬라이스에 후속하는 제2 미디어 슬라이스; 및 상기 미디어 스트림의 상기 다른 미디어 트랙 내에 있으며, 상기 제2 미디어 슬라이스와 시간 정렬되는 제2 병렬 미디어 슬라이스
중의 적어도 하나에 대한 특성 정보를 제공하는, 디바이스. - 제17항에 있어서,
상기 특성 정보는,
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 오프셋;
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 크기;
상기 제1 병렬 미디어 슬라이스 각각의 오프셋;
상기 제1 병렬 미디어 슬라이스 각각의 크기;
상기 제1 미디어 트랙의 상기 제1 미디어 슬라이스의 품질; 또는
상기 제1 병렬 미디어 슬라이스 각각의 품질
중의 적어도 하나를 포함하는, 디바이스. - 제17항에 있어서,
상기 프로세서가, 상기 디바이스로 하여금, 상기 트랙 전환 정보에 기초하여, 상기 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하게 하도록 구성될 때, 상기 프로세서는, 상기 디바이스로 하여금,
상기 특성 정보 및 상기 디바이스에 의해 이용가능한 대역폭에 기초하여, 상기 다른 미디어 트랙 중 하나의 미디어 트랙으로의 전환이 필요한지를 결정하게 하도록 구성되는, 디바이스. - 컴퓨터 판독가능 명령을 저장하기 위한 비-일시적 저장 매체로서,
상기 컴퓨터 판독가능 명령은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
미디어 스트림의 미디어 스트림 데이터를 수신하게 하고 - 상기 미디어 스트림은 적어도 2개의 미디어 트랙을 포함하고, 동적 적응적 스트리밍 오버 HTTP(DASH) 표준 또는 공통 미디어 애플리케이션 포맷(CMAF)를 따르고, 상기 미디어 스트림 데이터는, 제1 미디어 청크 및 제2 미디어 청크를 포함하는 복수의 미디어 청크; 및 상기 제1 미디어 청크와 연관되는 어드레싱가능한 자원 인덱스(ARI) 정보를 포함함 -,
상기 ARI 정보에 기초하여 트랙 전환 정보를 결정하게 하고,
상기 트랙 전환 정보에 기초하여, 상기 제2 미디어 청크에서의 상이한 미디어 트랙으로의 전환이 필요한지를 결정하게 하고,
개개의 미디어 트랙을 통해 상기 제1 미디어 청크 및 상기 제2 미디어 청크를 수신하게 하는 - 상기 제1 미디어 청크 및 상기 제2 미디어 청크의 각각은 하나의 청크 이하인 전달 지연으로 디바이스로 전달됨 -, 비-일시적 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263388577P | 2022-07-12 | 2022-07-12 | |
US63/388,577 | 2022-07-12 | ||
US18/342,230 | 2023-06-27 | ||
US18/342,230 US20240022792A1 (en) | 2022-07-12 | 2023-06-27 | Method for bandwidth switching by cmaf and dash clients using addressable resource index tracks and events |
PCT/US2023/027077 WO2024015256A1 (en) | 2022-07-12 | 2023-07-07 | Method for bandwidth switching by cmaf and dash clients using addressable resource index tracks and events |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240112312A true KR20240112312A (ko) | 2024-07-18 |
Family
ID=89509476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247020457A KR20240112312A (ko) | 2022-07-12 | 2023-07-07 | 어드레싱가능한 자원 인덱스 트랙 및 이벤트를 이용한 cmaf 및 dash 클라이언트에 의한 대역폭 전환을 위한 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240022792A1 (ko) |
KR (1) | KR20240112312A (ko) |
CN (1) | CN118202345A (ko) |
WO (1) | WO2024015256A1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212334B2 (en) * | 2015-06-23 | 2021-12-28 | Convida Wireless, Llc | Mechanisms to support adaptive constrained application protocol (CoAP) streaming for Internet of Things (IoT) systems |
US10924822B2 (en) * | 2017-04-04 | 2021-02-16 | Qualcomm Incorporated | Segment types as delimiters and addressable resource identifiers |
US11695817B2 (en) * | 2019-03-20 | 2023-07-04 | Qualcomm Incorporated | Methods and apparatus to facilitate using a streaming manifest including a profile indication |
US11973817B2 (en) * | 2020-06-23 | 2024-04-30 | Tencent America LLC | Bandwidth cap signaling using combo-index segment track in media streaming |
-
2023
- 2023-06-27 US US18/342,230 patent/US20240022792A1/en active Pending
- 2023-07-07 CN CN202380014306.XA patent/CN118202345A/zh active Pending
- 2023-07-07 WO PCT/US2023/027077 patent/WO2024015256A1/en active Application Filing
- 2023-07-07 KR KR1020247020457A patent/KR20240112312A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
CN118202345A (zh) | 2024-06-14 |
US20240022792A1 (en) | 2024-01-18 |
WO2024015256A1 (en) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102501184B1 (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
US11310303B2 (en) | Methods and apparatuses for dynamic adaptive streaming over HTTP | |
US11418561B2 (en) | Remote link validity interval in media streaming | |
KR20220131314A (ko) | 미디어 스트리밍을 위한 방법 및 장치 | |
KR20220129622A (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
KR20240112312A (ko) | 어드레싱가능한 자원 인덱스 트랙 및 이벤트를 이용한 cmaf 및 dash 클라이언트에 의한 대역폭 전환을 위한 방법 | |
US20230336602A1 (en) | Addressable resource index events for cmaf and dash multimedia streaming | |
US12058414B2 (en) | Methods, devices, and computer readable medium for processing alternative media presentation description | |
US12058191B2 (en) | Processing model for dash client processing model to support handling of dash event updates | |
US12034789B2 (en) | Extensible request signaling for adaptive streaming parameterization | |
KR102659938B1 (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법 및 장치 | |
KR102718059B1 (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
CN113364728B (zh) | 媒体内容接收方法、装置、存储介质和计算机设备 | |
KR20240151210A (ko) | 대안 미디어 프레젠테이션 설명을 처리하기 위한 방법, 디바이스 및 컴퓨터로 판독 가능한 매체 | |
WO2022150073A1 (en) | Methods and apparatuses for dynamic adaptive streaming over http | |
WO2024015222A1 (en) | Signaling for picture in picture in media container file and in streaming manifest |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |