KR20240070610A - Cmaf 및 dash 멀티미디어 스트리밍을 위한 주소 지정 가능한 리소스 인덱스 이벤트 - Google Patents

Cmaf 및 dash 멀티미디어 스트리밍을 위한 주소 지정 가능한 리소스 인덱스 이벤트 Download PDF

Info

Publication number
KR20240070610A
KR20240070610A KR1020247013336A KR20247013336A KR20240070610A KR 20240070610 A KR20240070610 A KR 20240070610A KR 1020247013336 A KR1020247013336 A KR 1020247013336A KR 20247013336 A KR20247013336 A KR 20247013336A KR 20240070610 A KR20240070610 A KR 20240070610A
Authority
KR
South Korea
Prior art keywords
media
event
ari
dash
slices
Prior art date
Application number
KR1020247013336A
Other languages
English (en)
Inventor
이라즈 소다가르
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20240070610A publication Critical patent/KR20240070610A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content 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/26258Content 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 스트림을 처리하기 위한 방법, 장치 및 컴퓨터 판독 가능한 저장 매체이다. 미디어 스트림은 DASH 또는 CMAF 표준을 따를 수 있다. 이 방법은 5G 미디어 스트림과 연관된 ARI(addressable resource index) 이벤트를 처리하는 단계를 포함할 수 있으며, ARI 이벤트는 콘텐츠 세트 내의 제1 미디어 슬라이스와 함께 전송되는 인밴드 이벤트 - 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는 MPD(Media Presentation Description) 이벤트 중 적어도 하나를 포함하며; ARI 이벤트는 콘텐츠 세트 내의 하나 이상의 미디어 슬라이스의 구성 정보를 운반한다.

Description

CMAF 및 DASH 멀티미디어 스트리밍을 위한 주소 지정 가능한 리소스 인덱스 이벤트
본 출원은 2022년 7월 12일에 출원된 미국 가출원 제63/388,574호, 2022년 7월 12일에 출원된 미국 가출원 제63/388,568호, 그리고 2022년 4월 19일에 출원된 미국 가출원 제63/332,585호에 기반하고 이에 대한 우선권을 주장하는, 2023년 3월 27일에 출원된 미국 출원 제18/190,713호에 기반하고 이에 대한 우선권을 주장하며, 이들 각각은 그 전체가 참조로 본 명세서에 포함된다.
본 개시는 일반적으로 DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol) 및 CMAF(Common Media Application Format)를 포함하는 미디어 스트리밍 기술에 관한 것이다. 보다 구체적으로, 개시된 기술은 DASH/CMAF 이벤트를 이용하여 주소 지정 가능한 리소스 인덱스(Addressable Resource Index, ARI) 정보를 전달하는 방법 및 장치에 관한 것이다.
여기에서 제공된 이러한 배경 설명은 본 개시의 콘텍스트를 일반적으로 제시하기 위한 것이다. 작업이 배경 섹션에 설명되는 한도 내에서 현재 명명된 발명가의 작업뿐만 아니라 본 출원의 출원 유효 시점에 선행 기술로 인정되지 않을 수 있는 설명의 측면은, 명시적으로나 묵시적으로 본 개시의 선행 기술로 인정되지 않는다.
MPEG(moving picture expert group) DASH(dynamic adaptive streaming over hypertext transfer protocol)는 IP 네트워크를 통해 멀티미디어 콘텐츠를 스트리밍하기 위한 표준을 제공한다. DASH 표준에서는 미디어 프레젠테이션 설명(media presentation description, MPD)을 사용하여 DASH 클라이언트가 DASH 서버로부터 미디어 세그먼트를 다운로드하여 미디어 콘텐츠를 적응적으로 스트리밍하도록 정보를 제공한다. DASH 표준은 다중 레이트(multi-rate) 콘텐츠의 스트리밍을 허용한다. DASH 표준의 한 측면에는 MPD 이벤트 및 인밴드(inband) 이벤트의 운반(carriage)과 이러한 이벤트를 처리하기 위한 클라이언트 처리 모델이 포함된다.
CMAF(Common Media Application Format)는 다양한 형태의 HTTP(Hypertext Transfer Protocol) 기반 미디어를 패키징하고 전달하기(deliver) 위한 표준이다. 이 표준은 예를 들어 HLS(HTTP Live Streaming) 및 DASH 프로토콜을 사용하여 동작하여 균일한 전송 컨테이너(container) 파일 하에서 데이터를 패키징하는 것에 의해 미디어를 재생 디바이스로 전달하는 것을 단순화한다. 또한 청크된(chunked) 인코딩과 청크된 전송 인코딩을 사용하여 레이턴시(latency)를 줄인다. 이로 인해 스토리지 요구(storage need)가 줄어들어 비용이 절감된다.
본 개시의 측면은 미디어 스트림 처리를 위한, 더 구체적으로 DASH/CMAF 이벤트를 사용하여 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 정보를 전달하기 위한 방법 및 장치를 제공한다. 일부 예시적인 구현에서, 미디어 스트림을 처리하는 방법이 개시된다. 이 방법은 미디어 스트림과 연관된 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 이벤트를 처리하는 단계를 포함할 수 있으며, ARI 이벤트는 콘텐츠 세트 내의 제1 미디어 슬라이스(media slice)와 함께 전송되는 인밴드 이벤트 - 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는 MPD(media presentation description) 이벤트 중 적어도 하나를 포함하며; ARI 이벤트는 콘텐츠 세트 내의 하나 이상의 미디어 슬라이스의 구성 정보를 운반한다(carry).
본 개시의 측면은 또한 위의 방법 구현 중 임의의 것을 수행하도록 구성된 회로를 포함하는 미디어 스트림 처리 디바이스 또는 장치를 제공한다.
본 개시의 측면은 또한 비디오 디코딩 및/또는 인코딩을 위해 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 미디어 스트림 처리를 위한 방법을 수행하게 하는 명령어를 저장하는, 컴퓨터가 판독 가능한 비일시적 매체를 제공한다.
개시된 주제의 추가 특징, 특성 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다:
도 1은 본 개시의 실시예에 따른 시스템을 예시한다.
도 2는 본 개시의 실시예에 따른 DASH(Dynamic Adaptive Streaming over HTTP) 시스템을 도시한다.
도 3은 본 개시의 실시예에 따른 DASH 클라이언트 아키텍처를 예시한다.
도 4는 미디어 세그먼트 또는 청크와 함께 운반되는 인밴드 ARI 이벤트의 예를 도시한다.
도 5는 ARI 이벤트를 포스트 처리하기 위한 흐름도를 도시한다.
도 6은 본 개시의 예시적인 실시예에 따른 방법의 흐름도를 도시한다.
도 7은 본 개시의 예시적인 실시예에 따른 컴퓨터 시스템의 개략도를 도시한다.
DASH(Dynamic Adaptive Streaming Over Hypertext Transfer Protocol) 및 MPD(Media Presentation Description)
미디어 스트리밍을 위한 대중적인 포맷 중 하나는 ISO/IEC 23009-1에 정의된 바와 같이 DASH(Dynamic Adaptive Streaming Over Hypertext Transfer Protocol)를 포함한다(include). DASH는 웹 서버, 콘텐츠 전달 네트워크(content delivery network, CDN), 다양한 프록시 및 캐시 등과 같은 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol, HTTP) 인프라를 사용하여 미디어 콘텐츠 스트리밍을 가능하게 하는 적응적 비트레이트 스트리밍 기술이다. DASH는 DASH 서버에서 DASH 클라이언트로의 온디맨드(on-demand) 스트리밍과 라이브(live) 스트리밍을 모두 지원하고 DASH 클라이언트가 스트리밍 세션을 제어할 수 있게 함으로써, DASH 서버는 대규모 배포에서 스트림 적응 관리의 추가 부하에 대처할 필요가 없다. DASH는 또한 DASH 클라이언트가 다양한 DASH 서버로부터 스트리밍을 선택할 수 있게 하며, 따라서 DASH 클라이언트의 이점을 위해 네트워크의 추가 부하 밸런싱을 달성할 수 있다. DASH는 예를 들어 네트워크 조건에 맞게 비트레이트를 변경하는 것에 의해, 상이한 미디어 트랙(media track) 간의 동적 스위칭을 제공한다.
DASH에서 MPD(media presentation description) 파일은 DASH 클라이언트가 DASH 서버로부터 미디어 세그먼트(media segment)를 다운로드하여 미디어 콘텐츠를 적응적으로 스트리밍할 수 있도록 정보를 제공한다. MPD는 XML(Extensible Markup Language) 문서의 형태일 수 있다. MPD 파일은 프래그먼트화되어(fragmented) 부분적으로 전달되어 세션 시작 지연(delay)을 줄일 수 있다. MPD 파일은 또한 스트리밍 세션 중에 업데이트될 수 있다. 일부 예에서, MPD 파일은 콘텐츠 접근성 특징(content accessibility feature), 등급(rating) 및 카메라 뷰(view)의 표현식(expression)을 지원한다. DASH는 또한 멀티뷰 및 확장 가능한(scalable) 코딩된 콘텐츠 제공을 지원한다.
MPD 파일은 하나 이상의 주기(period)의 시퀀스를 함유할(contain) 수 있다. 하나 이상의 주기 각각은 예를 들어 MPD 파일에서 주기 엘리먼트에 의해 정의될 수 있다. MPD 파일에는 MPD에 대한 availableStartTime 속성과 각 주기에 대한 시작 속성이 포함될 수 있다. 동적 유형을 갖는 미디어 프레젠테이션(예: 라이브 서비스에 사용됨)의 경우, 주기의 시작 속성과 MPD 속성 availableStartTime의 합과 미디어 세그먼트의 지속기간(duration)은 협정 세계시(coordinated universal time, UTC) 포맷으로 그 주기의 가용성(availability) 시간을 지시할(indicate) 수 있으며, 특히 대응하는 주기에서 각 표현(representation)의 제1 미디어 세그먼트를 지시할 수 있다. 정적 유형을 갖는 미디어 프레젠테이션(예: 온디맨드 서비스에 사용됨)의 경우, 제1 주기의 시작 속성은 0일 수 있다. 다른 주기의 경우, 시작 속성은 제1 주기의 시작 시간을 기준으로 대응하는 주기의 시작 시간 사이의 시간 오프셋을 지정할(specify) 수 있다. 각 주기는 다음 주기가 시작될 때까지 연장될 수 있으며, 또는 마지막 주기의 경우 미디어 프레젠테이션이 끝날 때까지 연장될 수 있다. 주기 시작 시간은 정확할 수 있으며 모든 이전 주기의 미디어 재생으로 인한 실제 시간을 반영할 수 있다. 예시적인 구현에서, MPD는 다음 주기가 이전 주기, 가능하게는 바로 다음 주기 또는 이후 주기(예: 광고 주기가 삽입된 후)에서 콘텐츠의 연속이 되도록 제공된다.
각 주기는 하나 이상의 적응 세트를 함유할 수 있고, 각 적응 세트는 동일한 미디어 콘텐츠에 대한 하나 이상의 표현을 함유할 수 있다. 표현은 오디오 또는 비디오 데이터의 여러 대체 인코딩 버전 중 하나일 수 있다. 표현은 인코딩 유형별로, 예를 들어 비디오 데이터를 위한 비트레이트, 해상도 및/또는 코덱, 및/또는 오디오 데이터를 위한 코덱별로 상이할 수 있다. 표현이라는 용어는 멀티미디어 콘텐츠의 특정 주기에 대응하고 특정 방식으로 인코딩된, 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하는 데 사용될 수 있다.
특정 주기의 적응 세트가 MPD 파일의 그룹 속성에 의해 지시되는 그룹에 할당될 수 있다. 동일한 그룹의 적응 세트는 일반적으로 서로 대체로서 간주된다. 예를 들어, 특정 주기 동안의 비디오 데이터의 각 적응 세트는 동일한 그룹에 할당될 수 있으므로, 대응하는 주기 동안 멀티미디어 콘텐츠의 비디오 데이터를 디스플레이하기 위해 임의의 적응 세트가 디코딩을 위해 선택될 수 있다. 하나의 주기 내 미디어 콘텐츠는 존재하는 경우 그룹 0으로부터의 하나의 적응 세트 또는 일부 예에서, 0이 아닌 각 그룹으로부터의 최대 하나의 적응 세트의 조합으로서 나타낼 수 있다. 각 주기 표현에 대한 타이밍 데이터는 그 주기의 시작 시간을 기준으로 표현될(expressed) 수 있다.
표현(representation)은 하나 이상의 세그먼트를 포함할 수 있다. 각 표현에는 초기화 세그먼트가 포함될 수 있으며, 또는 표현의 각 세그먼트는 자체 초기화될 수 있다. 존재할 때, 초기화 세그먼트에는 표현에 액세스하기 위한 초기화 정보가 함유될 수 있다. 일부 경우에, 초기화 세그먼트는 미디어 데이터를 함유하지 않는다. 세그먼트는 URL(uniform resource locator), URN(uniform resource name) 또는 URI(uniform resource identifier)와 같은 식별자로 고유하게 참조될 수 있다.
예시적인 구현에서, URL은 예를 들어 "http" 또는 "https"의 고정된 스킴(scheme)을 사용하여 IETF RFC 3986에 따라 <absolute-URI>로 정의될 수 있으며, 범위 속성이 URL과 함께 제공되면 바이트 범위로 제한될 수 있다. 바이트 범위는 예를 들어, IETF RFC 2616에 정의된 바와 같이 byte-range-spec으로 표현될 수 있다. 인접된(contiguous) 바이트 범위를 식별하는 단일 표현식(single expression)으로 제한될 수 있다. 일 실시예에서, 세그먼트는 예를 들어 IETF RFC 2397에 정의된 바와 같이 데이터 URL과 함께 MPD에 포함될 수 있다.
MPD 파일은 각 세그먼트에 대한 식별자를 제공할 수 있다. 일부 예에서, MPD 파일은 URL, URN 또는 URI로 액세스할 수 있는 파일 내의 세그먼트에 대한 데이터에 대응할 수 있는 범위 속성의 형태로 바이트 범위를 제공할 수도 있다.
서브 표현(sub-representation)은 정규 표현(regular representation)에 내장(embedded)(또는 함유)될 수 있으며 서브 표현 엘리먼트(예: SubRepresentation)에 의해 설명될 수 있다. 서브 표현 엘리먼트는 표현에 내장된 하나 이상의 미디어 콘텐츠 컴포넌트의 속성을 설명할 수 있다. 예를 들어, 서브 표현 엘리먼트는 내장된 오디오 컴포넌트(예: 코덱, 샘플링 레이트 등), 내장된 서브 타이틀(sub-title)(예: 코덱)의 속성을 설명할 수 있거나, 서브 표현 엘리먼트는 일부 내장된 낮은 품질 비디오 레이어(예: 일부 낮은 프레임 레이트 등)을 설명할 수 있다. 서브 표현과 표현 엘리먼트는 일부 공통 속성과 엘리먼트를 공유할 수 있다.
각 표현은 또한 하나 이상의 미디어 컴포넌트를 포함할 수 있으며, 여기서 각 미디어 컴포넌트는 오디오, 비디오 또는 시간이 지정된(timed) 텍스트(예: 폐쇄 자막 넣기용)와 같은 하나의 개별 미디어 유형의 인코딩된 버전에 대응할 수 있다. 미디어 컴포넌트는 하나의 표현 내에서 연속적인(consecutive) 미디어 세그먼트의 경계를 넘어 시간 연속적일 수 있다.
일부 예시적인 구현에서, DASH 클라이언트는 DASH 서버로부터 MPD 파일에 액세스하고 다운로드할 수 있다. 즉, DASH 클라이언트는 라이브 세션을 초기화하는(initiate) 데 사용할 MPD 파일을 검색(retrieve)할 수 있다. MPD 파일에 기반하여 그리고 각각의 선택된 표현에 대해, DASH 클라이언트는 서버에서 이용 가능한 최신 세그먼트가 무엇인지 결정하는 것, 다음 세그먼트 및 가능한 향후 세그먼트의 세그먼트 가용성 시작 시간을 결정하는 것, 세그먼트 재생을 시작할 시기와 세그먼트의 어느 타임라인에서 시작하는지를 결정하는 것 및 신규 MPD 파일을 가져오거나 페치(fetch)할 시기를 결정하는 것을 포함하여, 여러 결정을 할 수 있다. 서비스가 재생되면 클라이언트는 라이브 서비스와 자체 재생 간의 드리프트(drift)를 추적할 수 있으며 이를 감지하고 보상해야 한다.
CMAF(Common Media Application Format)
세그먼트화된(segmented) 미디어를 위한 CMAF(Common Media Application Format)는 적응적 멀티미디어 프레젠테이션에서 최종 사용자 디바이스에서의 디코딩 및 전달을 위해 세그먼트화된 미디어 객체의 인코딩 및 패키징을 위한 확장 가능한 표준이다. CMAF 사양은 아래에 설명된 여러 논리적 미디어 객체를 정의한다.
CMAF 트랙은 오디오, 비디오 및 서브 타이틀을 포함하여 인코딩된 미디어 샘플을 함유할 수 있다. 미디어 샘플은 ISO 기본 미디어 파일 포맷(ISO Base Media File Format, ISO_BMFF)으로부터 도출된 CMAF 지정된 컨테이너에 저장된다. 미디어 샘플은 선택적으로 MPEG 공통 암호화로 보호될 수 있다. 트랙에는 CMAF 헤더와 하나 이상의 CMAF 프래그먼트가 포함될 수 있다.
CMAF 스위칭 세트는 동일한 콘텐츠를 상이한 비트 레이트 및 해상도로 적응적으로 스트리밍하기 위해 CMAF 프래그먼트 경계에서 스위칭 및 슬라이스될 수 있는 대체 트랙을 함유할 수 있다. 정렬된 CMAF 스위칭 세트는 대체 인코딩, 예를 들어 상이한 코덱을 사용하여 동일한 소스로부터 인코딩되고 서로 시간 정렬된 두 개 이상의 CMAF 스위칭 세트이다.
CMAF 선택 세트는 대체 콘텐츠(예: 상이한 언어) 또는 대체 인코딩(예: 상이한 코덱)을 포함할 수 있는 동일한 미디어 유형의 스위칭 세트 그룹이다.
CMAF 프레젠테이션은 하나 이상의 프레젠테이션 시간 동기화된 선택된 세트를 포함할 수 있다.
CMAF는 미디어 콘텐츠가 상이한 플랫폼으로 전달될 수 있도록 주소 지정 가능한 객체(Addressable Object)를 지원한다. CMAF 주소 지정 가능한 객체에는 다음이 포함될 수 있다:
CMAF 헤더: 헤더는 트랙을 초기화하기 위한 정보를 포함하는 정보를 함유한다.
CMAF 세그먼트: 동일한 트랙으로부터의 하나 이상의 연속적인 프래그먼트 시퀀스.
CMAF 청크: 청크(chunk)는 프래그먼트로부터의 순차적 샘플 서브 세트를 함유한다.
CMAF 트랙 파일: 하나의 ISO_BMFF 파일에 있는 완전한 트랙(complete track).
DASH 및 CMAF 이벤트
DASH 및 CMAF에서, 이벤트는 DASH/CMAF 클라이언트 및 그의 관련 애플리케이션(들)에 추가 정보를 시그널링기 위한 수단을 제공한다. 예시적인 구현에서, 이벤트는 시간이 정해져 있으므로 시작 시간과 지속기간을 갖는다. 이벤트 정보는 미디어 프레젠테이션의 콘텐츠를 설명하는 메타데이터를 포함할 수 있다. 추가적으로 또는 다르게는, 이벤트 정보는 광고 삽입 큐(cue)와 같이 미디어 프레젠테이션의 재생 중 특정 시간과 연관된 미디어 플레이어에 대한 제어 메시지를 포함할 수 있다. 이벤트는 예를 들어 MPD 이벤트 또는 인밴드 이벤트로 구현될 수 있다. 매니페스트 파일(예: MPD)의 일부이거나 이벤트 메시지(emsg) 박스와 같은 ISOBMFF 기반 미디어 파일에 내장될 수 있다.
MPD(media presentation description) 이벤트는 MPD에서 시그널링될 수 있는 이벤트이다. 미디어 프레젠테이션 시간에 할당된 일련의 이벤트가 주기 레벨로 MPD에서 제공될 수 있다. 동일한 유형의 이벤트는 주기 엘리먼트에서 이벤트 스트림 엘리먼트(예: EventStream)에 의해 지정될 수 있다. 시작 시간이 주기 경계 이후이거나 이벤트의 지속기간이 주기 경계를 넘어 연장되더라도 이벤트는 주기가 끝나면 종료된다. 이벤트 스트림 엘리먼트는 메시지 스킴 식별 정보(예: @schemeIdUri)와 이벤트 스트림 엘리먼트에 대한 선택적 값(예: @value)을 포함한다. 또한 이벤트 스트림은 시간이 지정된 이벤트를 함유하므로, 시간 스케일 속성(예: @timescale)이 제공되어 이벤트를 그 주기 내 특정 미디어 디스플레이 시간에 할당할 수 있다. 시간이 지정된 이벤트 자체는 이벤트 스트림 엘리먼트에 포함된 이벤트 엘리먼트에 의해 설명될 수 있다.
인밴드 이벤트 스트림은 이벤트 메시지를 미디어 세그먼트의 일부로 추가하는 것에 의해 표현과 함께 다중화될 수 있다. 이벤트 스트림은 선택된 표현에 존재할 수도 있고, 하나 또는 여러 개의 선택된 적응 세트에만 존재할 수도 있고, 모든 표현에 존재할 수도 있다. 예를 들어, 하나의 가능한 구성은 오디오 적응 세트에만 인밴드 이벤트가 함유되거나 비디오 적응 세트에만 인밴드 이벤트가 함유되는 구성이다. 표현에 존재하는 인밴드 이벤트 스트림은 적응 세트 레벨, 표현 레벨과 같은 다양한 레벨에서 인밴드 이벤트 스트림 엘리먼트(예: InbandEventStream)에 의해 지시될 수 있다. 또한 하나의 표현에는 여러 개의 인밴드 이벤트 스트림이 함유될 수 있으며, 이는 각각 별도의 인밴드 이벤트 스트림 엘리먼트에 의해 지시된다.
도 1은 본 개시의 실시예에 따른 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 서버(110)와 정보 처리 장치(120)를 포함한다. 콘텐츠 서버(110)는 주요(primary) 콘텐츠(예: 메인 프로그램) 및 하나 이상의 시간이 지정된 메타데이터 트랙(timed metadata track)을 포함하는 콘텐츠 스트림을 제공할 수 있다.
정보 처리 장치(120)는 콘텐츠 서버(110)와 인터페이스할 수 있다. 예를 들어, 정보 처리 장치(120)는 콘텐츠 서버(110)로부터 수신된 콘텐츠를 재생할 수 있다. 콘텐츠의 재생은 정보 처리 장치(120)가(예: 콘텐츠 서버(110)로부터) 수신한 매니페스트 파일(예: MPD)을 기반으로 수행될 수 있다. 매니페스트 파일은 하나 이상의 시간이 지정된 메타데이터 트랙에 대한 시그널링을 더 포함할 수 있다.
예시적인 DASH/CMAF 시스템이 도 2에 예시되어(illustrated) 있다. DASH 시스템(200)은 네트워크(250)에 연결되는 콘텐츠 서버(210), 광고 서버(220) 및 정보 처리 장치(230)를 포함할 수 있다. DASH 시스템(200)은 또한 하나 이상의 보충(supplemental) 콘텐츠 서버를 포함할 수 있다.
콘텐츠 서버(210)는 주요 콘텐츠(예: 메인 프로그램) 및 매니페스트 파일(예: MPD)을 정보 처리 장치(230)에 제공할 수 있다. 매니페스트 파일은 예를 들어 MPD 생성기(generator)(214)에 의해 생성될 수 있다. 다른 실시예에서는 주요 콘텐츠와 매니페스트 파일이 상이한 서버에 의해 제공될 수 있다.
정보 처리 장치(230)는 MPD를 수신하고, MPD에 기반하여 콘텐츠 서버(210)의 HTTP 서버(212)로부터 주요 콘텐츠를 획득할 수 있다. MPD는 정보 처리 장치(230)에서 실행되는 DASH 클라이언트(232)에 의해 처리될 수 있다. 또한, DASH 클라이언트(232)는 광고 서버(220)로부터 광고 콘텐츠를 획득하거나, 하나 이상의 보충 콘텐츠 서버로부터 다른 콘텐츠(예: 대화형 콘텐츠)를 획득할 수 있다. 메인 콘텐츠와 광고 콘텐츠는 DASH 클라이언트(232)에 의해 처리되어 디스플레이를 위해 디스플레이 디바이스(236)에 출력될 수 있다. 디스플레이 디바이스(236)는 정보 처리 장치(230)에 통합되거나 외부에 포함될 수 있다. 또한, DASH 클라이언트(232)는 하나 이상의 시간이 지정된 메타데이터 트랙으로부터 이벤트 정보를 추출하고, 추가 처리를 위해 추출된 이벤트 정보를 애플리케이션(234)에 송신(send)할 수 있다. 애플리케이션(234)은 예를 들어, 이벤트 정보에 기반하여 보충 콘텐츠를 디스플레이하도록 구성될 수 있다.
광고 서버(220)는 메모리와 같은 광고 스토리지에 광고 콘텐츠를 저장할 수 있다. 정보 처리 장치(230)는 이벤트 정보에 기반하여 저장된 광고 콘텐츠를 요청할 수 있다.
도 3은 본 개시의 실시예에 따라 DASH 및 CMAF 이벤트를 처리하기 위한 예시적인 DASH/CMAF 클라이언트 아키텍처를 예시한다. DASH/CMAF 클라이언트(또는 DASH/CMAF 플레이어)는 애플리케이션(390)과 통신하고, (i) MPD 이벤트, (ii) 인밴드 이벤트 및 (iii) 시간이 지정된 메타데이터 이벤트를 포함한 다양한 유형의 이벤트를 처리하도록 구성될 수 있다.
매니페스트 파서(305)는 매니페스트(예: MPD)를 파싱한다. 매니페스트는 예를 들어 콘텐츠 서버(110, 210)에 의해 제공된다. 매니페스트 파서(305)는 MPD 이벤트, 인밴드 이벤트 및 시간이 지정된 메타데이터 트랙에 내장된 시간이 지정된 메타데이터 이벤트에 관한 이벤트 정보를 추출한다. 추출된 이벤트 정보는 DASH 로직(logic)(310)(예: DASH 플레이어 제어, 선택 및 휴리스틱(heuristic) 로직)에 제공될 수 있다. DASH 로직(310)은 이벤트 정보에 기반하여 매니페스트에서 시그널링된 이벤트 스킴을 애플리케이션(390)에 통지할 수 있다.
이벤트 정보는 상이한 이벤트 스트림을 구별하기 위한 이벤트 스킴 정보(event scheme information)를 포함할 수 있다. 애플리케이션(390)은 이벤트 스킴 정보를 사용하여 관심 있는 이벤트 스킴을 구독(subscribe)할 수 있다. 애플리케이션(390)은 하나 이상의 구독(subscription) API를 통해 구독된 스킴 각각에 대해 원하는 디스패치(dispatch) 모드를 추가로 지시할 수 있다. 예를 들어, 애플리케이션(390)은 관심 있는 하나 이상의 이벤트 스킴과 임의의 원하는 대응하는 디스패치 모드를 식별하는 구독 요청을 DASH 클라이언트에 송신할 수 있다.
애플리케이션(390)이 하나 이상의 시간이 지정된 메타데이터 트랙의 일부로서 전달되는 하나 이상의 이벤트 스킴을 구독하면, 인밴드 이벤트 및 'moof' 파서(325)는 하나 이상의 시간이 지정된 메타데이터 트랙을 시간이 지정된 메타데이터 트랙 파서(330)로 스트리밍할 수 있다. 예를 들어, 인밴드 이벤트 및 'moof' 파서(325)는 영화 프래그먼트 박스("moof")를 파싱하고 이어서 DASH 로직(310)으로부터의 제어 정보에 기반하여 시간이 지정된 메타데이터 트랙을 파싱한다.
시간이 지정된 메타데이터 트랙 파서(330)는 시간이 지정된 메타데이터 트랙에 내장된 이벤트 메시지를 추출할 수 있다. 추출된 이벤트 메시지는 이벤트 버퍼(335)(예: 이벤트 버퍼)에 저장될 수 있다. 동기화기/디스패처(synchronizer/dispatcher) 모듈(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 액세스 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)(315)는 HTTP 프로토콜 스택(320)을 통해 미디어 콘텐츠 및 다양한 메타데이터를 포함하는 콘텐츠 스트림(또는 데이터플로(dataflow))의 페치 및 수신을 관리할 수 있다. DASH 액세스 API(315)는 수신된 콘텐츠 스트림을 상이한 데이터플로로 분리할 수 있다. 인밴드 이벤트 및 moof 파서에 제공되는 데이터플로는 미디어 세그먼트, 하나 이상의 시간이 지정된 메타데이터 트랙, 미디어 세그먼트에 포함된 인밴드 이벤트 시그널링을 포함할 수 있다. 일 실시예에서, 매니페스트 파서(305)에 제공되는 데이터플로는 MPD를 포함할 수 있다.
DASH 액세스 API(315)는 매니페스트를 매니페스트 파서(305)에 포워딩할(forward) 수 있다. 이벤트를 설명하는 것 외에도 매니페스트는 미디어 세그먼트에 대한 정보를, 애플리케이션(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)는 애플리케이션이 구독하는 이벤트 스킴에 대응하는 애플리케이션 이벤트 인스턴스(instance)(또는 시간이 지정된 메타데이터 샘플)와 통신할 수 있다. 이벤트 인스턴스는 (예: 특정 이벤트 스킴에 대한) 구독 요청에 의해 지시된 디스패치 모드 또는 디폴트 디스패치 모드에 따라 통신될 수 있다. 예를 들어, 온-수신 디스패치 모드(on-receive dispatch mode)에서, 이벤트 인스턴스는 버퍼(335)에서의 수신 시 애플리케이션(390)으로 송신될 수 있다. 반면에, 온-시작 디스패치 모드(on-start dispatch mode)에서, 이벤트 인스턴스는 예를 들어 미디어 디코더(355)로부터의 타이밍 신호와 동기화되어, 연관된 프레젠테이션 시간에 애플리케이션(390)으로 송신될 수 있다.
DASH/CMAF 주소 지정 가능한 리소스 인덱스
일부 예시적인 구현에서, 적응적 스트리밍 클라이언트(예: DASH 또는 CMAF 클라이언트)는 동일한 적응 세트/스위칭 세트에 존재하는 시간 정렬된 세그먼트 또는 청크의 오프셋, 크기, 지속기간 및 품질과 같은, 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 정보에 대한 정확한 지식을 갖는 것이 바람직하다. 이러한 ARI 정보를 사용하여, DASH/CMAF 클라이언트는 예를 들어 다가오는 청크 또는 세그먼트에 관한 관련 정보를 사용하여 클라이언트 휴리스틱을 도울 수 있다. 주소 지정 가능한 리소스에는 CMAF 콘텍스트 내의 트랙 파일, 세그먼트 또는 청크가 포함될 수 있다. 온디맨드 서비스의 경우, 이러한 정보의 정확한 맵이 세그먼트 인덱스에 의해 제공될 수 있다. 유사한 개념과 구현이 DASH 콘텍스트에도 적용될 수 있음을 유의한다.
일부 예시적인 구현에서, 주소 지정 가능한 인덱스(Addressable Resource Index, ARI)는 다음과 같이 정의될 수 있다:
샘플 엔트리 유형: 'cari'
컨테이너: 샘플 설명 박스('stsd')
필수: 아니요
수량: 0 또는 1
이 메타데이터는 예를 들어 단일 인덱스 트랙에서 ISO/IEC 23000-19에 정의된 바와 같이, CMAF 스위칭 세트의 주소 지정 가능한 리소스 및 서브 세트의 모든 세부 사항을 설명한다.
아래의 표 1은 CMAF 주소 지정 가능한 리소스 인덱스 메타데이터에 대한 예시적인 샘플 엔트리를 도시한다.
ARI 메타데이터 샘플 엔트리

class CmafAriMetaDataSampleEntry()
extends MetaDataSampleEntry ('cari') {
CmafAriConfigurationBox();
}
aligned(8) class CmafAriConfigurationBox
extends FullBox('cari', version = 0, flags = 0) {
unsigned int(32) switching_set_identifier;
unsigned int(16) num_tracks;
unsigned int(16) num_quality_indicators;
for(i=1; i <= num_tracks; i++) {
unsigned int(32) track_id;
// provides the order of the tracks for each sample
}
// additional information on the CMAF Switching Set may be provided
for(i=1; i <= num_quality_indicators; i++) {
string quality_identifier;
}
}
아래 표 2는 ARI 샘플에 대한 예시적인 신택스를 도시한다.
ARI 샘플 신택스

class CmafAriFormatStruct () {
for(i=1; i <= num_tracks; i++) {
// this information may also be provided per track
unsigned int(1) segment_start_flag;
unsigned int(1) marker;
unsigned int(3) SAP_type;
unsigned int(1) emsg_flag;
unsigned int(1) prft_flag;
bit(25) reserved;
unsigned int(32) offset
unsigned int(32) size;
for(i=1; i <= num_quality_indicators; i++) {
unsigned int(32) quality;
}
unsigned int(1) loss;
bit(15) reserved;
unsigned int(8) num_prediction_pairs;
for(i=1; i <= num_prediction_pairs; i++) {
unsigned int(32) prediction_min_window;
unsigned int(32) predicted_max_bitrate;
}
예시적으로, 위의 신택스에 대한 시멘틱스(semantics)는 아래에 설명된다:
switching_set_identifier는 애플리케이션의 콘텍스트에서 스위칭 세트에 대한 고유 식별자를 지정한다.
num_tracks는 ARI 트랙에서 인덱싱된 트랙 수를 지시한다.
track_ID는 track_ID를 사용하여 트랙의 샘플에서 선택 및 정렬(ordering)을 제공한다.
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) 스트링이면, 품질은 부호 없는 정수이며, 값이 증가함에 따라 품질이 증가하는 것으로 선형적으로 해석된다.
loss는 청크의 미디어 데이터가 손실되었음을 지시한다.
num_prediction_pairs는 예상된 예측 값의 쌍이 얼마나 많이 제공되는지를 제공한다.
prediction_min_windows는 MPD 값과 동일한 최소 버퍼 시간(minbuffer time)을 위한 값을 제공한다.
prediction_max_bitrate는 Prediction_min_windows 값의 지속기간 동안 유지되는 MPD 시멘틱스와 동일한 대역폭 값을 제공한다.
이벤트를 갖는 ARI의 운반
DASH/CMAF 하의 일부 예시적인 구현에서, 전용 메타데이터 트랙, 즉 ARI 트랙이 생성되어 동일한 적응 세트/스위칭 세트에 존재하는 시간 정렬된 세그먼트 또는 청크의 오프셋, 크기 및 품질과 같은 ARI 관련 정보를 운반함으로써, 클라이언트는 다가오는 청크 또는 세그먼트에 관한 관련 정보를 가질 수 있어서 클라이언트 휴리틱스를 도울 수 있으며, 예를 들어 클라이언트는 미디어 트랙 또는 표현 간의 동적 스위칭에 이 정보를 사용할 수 있다.
ARI 정보(예: ARI 샘플)를 운반하기 위해 메타데이터 트랙을 사용하는 것의 한 가지 단점은 과도한 시그널링 오버헤드라는 점에 유의한다. 예를 들어, ARI 정보가 필요한 각 세그먼트에 대해, 클라이언트에는 가외의(extra) 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. 유연성(flexibility) - ARI 정보의 관점에서 예를 들어 인밴드 이벤트에 의해 필요한 대로 DASH 적응 세트 또는 CMAF 스위칭 세트 내의 하나, 일부 또는 모든 표현의 이벤트(들)에 의해 운반될 수 있다.
4. 적응성(adaptability) 및 이식성(portability) - ARI 이벤트는 패키저에 의해 (예: 인밴드 이벤트, 또는 인코더로부터 수신된 ARI 트랙으로부터) 파싱될 수 있으며, MPD 이벤트로서 MPD에 추가될 수 있다.
일부 예시적인 구현에서, 청크/세그먼트의 ARI 정보는 동일한 청크/세그먼트에 포함될 수 있다.
일부 예시적인 구현에서, 청크/세그먼트의 ARI 정보는 시간 축에서 배열된 다음 청크/세그먼트에 포함될 수 있다.
일부 예시적인 구현에서, ARI 정보를 운반하기 위해 인밴드 이벤트를 사용하기 보다는, MPD 이벤트가 ARI 정보를 운반하는 데 사용될 수 있다. 특히, 이 구현은 온디맨드 콘텐츠에 적합할 수 있다.
이 실시예에서, ARI 정보는 emsg 박스에서 운반될 수 있다. 각 emsg 박스는 스킴 URN 식별자에 의해 정의되거나 스킴 URN 식별자에 연관된 이벤트 스킴에 속할 수 있다.
예를 들어, 도 4를 참조하면, ARI 이벤트(410)는 미디어 1에서 세그먼트/청크 c(n)과 함께 운반된다. ARI 이벤트(410)로부터의 ARI 정보는 동일한 세그먼트/청크 c(n)에 적용된다. 현재 청크 ARI 정보가 현재 청크 이벤트에 포함되어 있는 경우, 스킴 URN 식별자는 "urn:mpeg:dash:event:ari:2022"로 정의될 수 있다.
또 다른 예를 들어, 도 4를 참조하면, ARI 이벤트(412)는 미디어 2에서 세그먼트/청크 c(n+1)과 함께 운반된다. ARI 이벤트(412)로부터의 ARI 정보는 다음 세그먼트/청크 c(n+2)에 적용된다. 다음 청크 ARI 정보가 현재 청크 이벤트에 포함되어 있는 경우, 스킴 URN 식별자는 "urn:mpeg:dash:event:ari-next:2022"로 정의될 수 있다. 예시적으로, 이벤트의 디스패치 모드는 온-수신으로 설정될 수 있다.
아래의 표 3은 MPD에서 ARI 이벤트에 대한 예시적인 파라미터를 예시한다.
MPD의 ARI 이벤트에 대한 파라미터
속성
EventStream@schemeIdUri/ InbandEventStream@schemeIdUri "urn:mpeg:dash:event:ari:2022" 또는 "urn:mpeg:dash:event:ari-next:2022"
EventStream@value/ InbandEventStream@value 다음 CmafAriMetaDataSampleEntry 필드를 운반:
- switching_set_identifier
- num_tracks
- num_quality_indicators track_ids의 정렬된 리스트
- quality_identifier의 리스트
Event@presentationTime 이벤트의 ARI 정보가 적용되는 주기의 시작부터의 청크 오프셋.
Event@duration ARI 정보가 사용되어야 하는 지속기간(예: 청크의 지속기간 또는 세그먼트의 지속기간).
Event body 표 2에 정의된 CmafAriFormatStrct 필드와 동일, 베이스-64로 인코딩됨:
for(i=1; i <= num_tracks; i++) {
unsigned int(1) segment_start_flag;
unsigned int(1) marker;
unsigned int(3) SAP_type;
unsigned int(1) emsg_flag;
unsigned int(1) prft_flag;
bit(25) reserved;
unsigned int(32) offset
unsigned int(32) size;
for(i=1;i<=num_quality_indicators;i++) {
unsigned int(32) quality;
}
unsigned int(1) loss;
bit(15) reserved;
unsigned int(8) num_prediction_pairs;
for(i=1;I <= num_prediction_pairs;i++){
unsigned int(32)prediction_min_window;
unsigned int(32)predicted_max_bitrate;
}
}
표 3에 도시된 바와 같이, EventStream 및 InbandEventStream의 두 엘리먼트가 ARI 이벤트를 설명하는 데 사용될 수 있다. 두 스트림 모두 값 속성(value attribute)을 포함할 수 있다. 값 속성은 표 1에 설명된 바와 같이, CmafAriMetaDataSampleEntry 필드를 운반할 수 있다. 예를 들어 CmafAriMetaDataSampleEntry 필드는 다음 필드를 포함할 수 있다:
switching_set_identifier
num_tracks
num_quality_indicators
track_ids의 정렬된 리스트
quality_identifier의 리스트
일부 예시적인 구현에서, Event 엘리먼트는 이벤트의 ARI 정보가 적용되는 주기의 시작부터의 청크 오프셋을 지시하는 presentsTime 속성(예: Event@presentationTime)을 포함할 수 있다.
일부 예시적인 구현에서, Event 엘리먼트는 ARI 정보가 사용되어야 하는 주기를 지시하는 주기 속성(예: Event@duration)을 포함할 수 있다. 예를 들어, 이는 청크의 지속기간 또는 세그먼트의 지속기간을 포함할 수 있다.
일부 예시적인 구현에서, 이벤트는 이벤트 바디(event body)를 포함할 수 있다. 이벤트 바디는 표 2에 정의된 CmafAriFormatStruct와 동일한 구성을 공유할 수 있다.
아래의 표 4는 인밴드 ARI 이벤트에 대한 예시적인 emsg 파라미터를 예시한다.
인밴드 ARI 이벤트에 대한 파라미터
속성
scheme_id_uri "urn:mpeg:dash:event:ari:2022" 또는 "urn:mpeg:dash:event:ari-next:2022"
value 다음 CmafAriMetaDataSampleEntry 필드를 운반:
- switching_set_identifier
- num_tracks
- num_quality_indicators track_ids의 정렬된 리스트
- quality_identifier의 리스트
presentation_time_delta/ prsentation_time 일 예로서, presentation_time_delta = 0.
event_duration 이는 예를 들어 청크 또는 세그먼트 지속기간으로 설정될 수 있음.
message_data 표 2에 정의된 CmafAriFormatStruct 필드와 동일, 베이스-64로 인코딩됨:
for(i=1; i <= num_tracks; i++) {
unsigned int(1) segment_start_flag;
unsigned int(1) marker;
unsigned int(3) SAP_type;
unsigned int(1) emsg_flag;
unsigned int(1) prft_flag;
bit(25) reserved;
unsigned int(32) offset
unsigned int(32) size;
for(i=1;i<=num_quality_indicators;i++) {
unsigned int(32) quality;
}
unsigned int(1) loss;
bit(15) reserved;
unsigned int(8) num_prediction_pairs;
for(i=1;I <= num_prediction_pairs;i++){
unsigned int(32)prediction_min_window;
unsigned int(32)predicted_max_bitrate;
}
}
MPD 이벤트의 이벤트 바디와 인밴드 이벤트의 message_data는 동일한 CMAF ARI 샘플 구조인 CmafAriFormatStruct를 공유한다는 점에 유의한다. 따라서 이벤트 디스패처로부터 이벤트를 수신한 후 ARI 샘플을 파싱하고 처리하는 방법은 동일하다. 즉, MPD 이벤트와 인밴드 이벤트에 대해 동일한 파싱 및 처리 로직을 공유할 수 있다.
일부 실시예에서, ARI 이벤트는 예를 들어 ISO/IEC 23009-1의 조항 A.13에 따라 처리되고 디스패치될 수 있다. 예를 들어, ARI 이벤트는 도 3에 예시된 바와 같은 예시적인 DASH/CMAF 클라이언트 아키텍처 하에서 처리되고 디스패치될 수 있다.
일부 실시예에서, ARI 이벤트가 디스패치된 후, 이 ARI 이벤트의 포스트(post) 처리가 발생할 것이다. 포스트 처리는 표 5에 도시된 파라미터에 의존할 수 있다.
이벤트/시간이 지정된 메타데이터 ARI 파라미터 및 데이터 유형
API 파라미터 MPD 이벤트 인밴드 이벤트
scheme_id EventStream@schemeIdUri scheme_id_uri "urn:mpeg:dash:event:ari:2022" 또는 "urn:mpeg:dash:event:ari-next:2022"
EventStream@value 다음 CmafAriMetaDataSampleEntry 필드를 운반:
- switching_set_identifier
- num_tracks
- num_quality_indicators track_ids의 정렬된 리스트
- quality_identifier의 리스트
presentation_time Event@presentationTime presentation_time 이벤트의 ARI 정보가 적용되는 주기의 시작부터의 청크/세그먼트 오프셋.
지속기간 Event@duration 지속기간 ARI 정보가 사용되어야 하는 지속기간(예: 청크의 지속기간 또는 세그먼트의 지속기간).
메시지 Event body message_data 표 2에 정의된 CmafAriFormatStrct 필드와 동일, 베이스-64로 인코딩됨. 세부 사항은 표 2를 참조
도 5는 다음 단계를 포함하는 ARI 이벤트의 포스트 처리를 위한 예시적인 흐름(500)을 도시한다.
단계 510:
ARI 이벤트의 값 필드를 파싱하여 이벤트에 관한 일반 정보를 추출한다. 앞서 설명한 바와 같이, 일반 정보는 Switching_set_identifier, num_tracks, num_quality_indicators, track_ids의 정렬된 리스트 및 quality_identifier의 리스트를 포함할 수 있다.
단계 520:
Presentation_time을 사용하여 정보가 어느 청크 또는 세그먼트에 적용되는지를 식별한다.
단계 530:
이벤트 페이로드(예: 이벤트 바디(event body) 또는 message_data)를 파싱하여 CmafAriFormatStruct를 구성한다.
단계 540:
그의 휴리스틱에서 CmafAriFormatStruct와 값을 처리하여 신규 표현으로 스위칭할지 또는 동일한 표현을 유지할지를 결정한다.
도 6은 미디어 스트림을 처리하기 위한 예시적인 방법(600)을 도시한다. 미디어 스트림은, 예를 들어, 4G 미디어 스트림(4G 네트워크에서 전달되는 미디어 스트림의 경우) 또는 5G 미디어 스트림(5G 네트워크에서 전달되는 미디어 스트림의 경우)을 포함할 수 있다. 이 방법은 예를 들어 이후 섹션에서 설명되는 컴퓨터 시스템에 의해 구현될 수 있다. 미디어 스트림은 DASH 또는 CMAF 표준을 따를 수 있다. 이 방법(600)은 다음 단계 중 일부 또는 모두를 포함할 수 있다: 미디어 스트림과 연관된 주소 지정 가능한 리소스 인덱스(Addressable Resource Index, ARI) 이벤트를 처리하는 단계(610), 여기서 ARI 이벤트는 콘텐츠 세트 내의 제1 미디어 슬라이스와 함께 전송된 인밴드 이벤트 - 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는 MPD(Media Presentation Description) 이벤트 중 적어도 하나를 포함하고; ARI 이벤트는 콘텐츠 세트 내의 하나 이상의 미디어 슬라이스의 구성 정보를 운반한다. 미디어 스트림은 예를 들어 클라우드 컴퓨팅 네트워크, 무선 네트워크(예: 4G LTE(Long-Term Evolution) 네트워크 또는 5G NR(New Radio) 네트워크), Wi-Fi 네트워크에 의해 지원된다. 미디어 스트림은 4G 미디어 스트림, 5G 미디어 스트림, Wi-Fi 미디어 스트림 및 이들의 혼합을 포함할 수 있지만 이에 제한되지는 않는다.
일부 예시적인 구현에서, 인밴드 이벤트 및 MPD 이벤트는 각각 스킴 식별자에 의해 식별되거나 스킴 식별자와 연관되며, 스킴 식별자는 스킴 식별자 URI(Uniform Resource Identifier)를 포함한다.
일부 예시적인 구현에서, 방법(600)에서 하나 이상의 미디어 슬라이스의 구성 정보는 제1 미디어 슬라이스의 구성 정보; 또는 제1 미디어 슬라이스 다음의 제2 미디어 슬라이스의 구성 정보 중 적어도 하나를 포함할 수 있다.
본 개시의 실시예는 DASH 및 CMAF 모두에 적용된다. 방법(600)에서 콘텐츠 세트는 미디어 스트림이 DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)를 따를 때의 적응 세트; 또는 미디어 스트림이 CMAF(Common Media Application Format)를 따를 때의 스위칭 세트 중 적어도 하나를 포함할 수 있고; 제1 미디어 슬라이스는 적응 세트의 제1 표현 내의 미디어 세그먼트; 또는 스위칭 세트의 제1 트랙 내의 미디어 청크 중 적어도 하나를 포함한다.
본 개시의 실시예는 개별적으로 사용될 수도 있고 임의의 순서로 조합될 수도 있다. 또한, 각각의 방법(또는 실시예), DASH 클라이언트, CMAF 클라이언트는 처리 회로(예: 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 컴퓨터가 판독 가능한 비일시적 매체에 저장된 프로그램을 실행한다. 본 개시의 실시예는 DASH 및/또는 CMAF 기술/표준에 적용될 수 있다.
전술한 기술은, 컴퓨터가 판독 가능한 명령어를 사용하고 하나 이상의 컴퓨터가 판독 가능한 매체에 물리적으로 저장된 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 7은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(1800)을 도시한다.
컴퓨터 소프트웨어는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 하나 이상의 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(Graphics Processing Unit, GPU) 등에 의해, 직접 또는 해석(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성하도록 어셈블리, 컴파일, 링킹(linking) 또는 유사한 메커니즘의 적용을 받을 수 있다.
명령어는 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(1800)에 대해 도 7에 도시된 컴포넌트는 본질적으로 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하도록 의도되지 않는다. 컴포넌트의 구성은 컴퓨터 시스템(1800)의 예시적인 실시예에 예시된 컴포넌트 중 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(1800)은 특정한 휴먼 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(예: 키스트로크(keystroke), 스와이프, 데이터 글러브 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득하는 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같이 인간의 의식적 입력과 직접 관련이 없는 특정 미디어를 캡처하는 데 사용될 수도 있다.
입력 휴먼 인터페이스 디바이스는 키보드(1801), 마우스(1802), 트랙패드(1803), 터치 스크린(1810), 데이터 글로브(도시되지 않음), 조이스틱(1805), 마이크(1806), 스캐너(1807), 및 카메라(1808) 중 하나 이상(각 도시된 것 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(1800)은 또한 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는, 촉각 출력 디바이스(예를 들어, 터치 스크린(1810), 데이터 글로브(도시되지 않음) 또는 조이스틱(1805)에 의한 촉각 피드백을 포함하지만, 입력 디바이스로서 기능하지 않는 촉각 피드백 디바이스가 있을 수도 있음), 오디오 출력 디바이스(예: 스피커(1809), 헤드폰(도시되지 않음)), 시각 출력 디바이스(예: CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(1810)를 포함하며, 이들 각각은 터치 스크린 입력 능력을 가지고 있을 수도 없을 수도 있고, 이들 각각은 촉각 피드백 능력을 가지고 있을 수도 없을 수도 있으며, 일부는 2차원 시각 출력 또는 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이 및 스모크 탱크(smoke tank, 도시되지 않음)의 스테레오그래픽 출력과 같은 수단을 통한 3차원 출력이 가능함), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(1800)은 또한 사람이 액세스할 수 있는 저장 디바이스 및 이와 연관된 매체로서, CD/DVD를 가진 CD/DVD ROM/RW(1820) 또는 이와 유사한 매체를 포함하는 광학 매체(1821), 썸 드라이브(thumb-driver)(1822), 탈착식 하드 드라이브 또는 솔리드 스테이트 드라이브(1823), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 디바이스 등을 포함한다.
당업자는 또한 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터가 판독 가능한 매체"가 전송 매체, 반송파, 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1800)은 또한 하나 이상의 통신 네트워크(1855)에 대한 네트워크 인터페이스(1854)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크의 예로는 이더넷과 같은 근거리 네트워크, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CAN 버스를 포함하는 차량 및 산업용 등이 포함된다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변기기 버스(1849)(예를 들어, 컴퓨터 시스템(1800)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 것들은 아래에서 설명된 바와 같이, 일반적으로 시스템 버스에 부착되는 것(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(1800)의 코어에 통합된다. 이러한 네트워크 중 임의의 것을 사용하여 컴퓨터 시스템(1800)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템에 대한, 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 송신 전용(예를 들어, CANbus에서 특정 CANbus 디바이스로) 또는 양방향일 수 있다. 특정 프로토콜 및 프로토콜 스택이 위에서 설명한 바와 같이 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 사람이 액세스할 수 있는 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(1800)의 코어(1840)에 부착될 수 있다.
코어(1840)는 하나 이상의 중앙 처리 유닛(Central Processing Unit, CPU)(1841), 그래픽 처리 유닛(Graphics Processing Unit, GPU)(1842), FPGA(Field Programmable Gate Areas) 형태의 특수 프로그래밍 가능한 처리 유닛(1843), 특정 태스크에 대한 하드웨어 가속기(1844), 그래픽 어댑터(1850) 등을 포함할 수 있다. 읽기 전용 메모리(Read-only memory, ROM)(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)에 저장될 수 있다. 과도기 데이터(Transitional data)는 RAM(1846)에 저장될 수도 있지만 영구(permanent) 데이터는 예를 들어 내부 대용량 스토리지(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))에 배선(hardwired)되거나 구현된 로직의 결과로 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며 적절한 경우에 그 반대도 마찬가지이다. 컴퓨터가 판독 가능한 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시는 몇몇 예시적인 실시예를 설명했지만, 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 여기에서 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 개시의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.

Claims (20)

  1. 5G 미디어 스트림을 처리하는 방법으로서,
    상기 5G 미디어 스트림은 DASH(Dynamic Adaptive Streaming over HTTP) 표준 또는 CMAF(Common Media Application Format)를 따르며, 상기 5G 미디어 스트림을 처리하는 방법은,
    상기 5G 미디어 스트림과 연관된 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 이벤트를 처리하는 단계
    를 포함하고,
    상기 ARI 이벤트는:
    콘텐츠 세트 내의 제1 미디어 슬라이스와 함께 전송되는 인밴드(inband) 이벤트 - 상기 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는
    MPD(Media Presentation Description) 이벤트
    중 적어도 하나를 포함하며,
    상기 ARI 이벤트는 상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보를 운반하는, 5G 미디어 스트림을 처리하는 방법.
  2. 제1항에 있어서,
    상기 인밴드 이벤트 및 상기 MPD 이벤트는 각각 스킴 식별자(scheme identifier)에 의해 식별되거나 스킴 식별자와 연관되며, 상기 스킴 식별자는 스킴 식별자 URI(Uniform Resource Identifier)를 포함하는, 5G 미디어 스트림을 처리하는 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 미디어 슬라이스의 구성 정보는,
    상기 제1 미디어 슬라이스의 구성 정보; 또는
    상기 제1 미디어 슬라이스 다음인 제2 미디어 슬라이스의 구성 정보
    중 적어도 하나를 포함하는, 5G 미디어 스트림을 처리하는 방법.
  4. 제3항에 있어서,
    상기 ARI 이벤트 또는 상기 MPD 이벤트의 스킴 식별자는 상기 구성 정보가 상기 제1 미디어 슬라이스 또는 상기 제2 미디어 슬라이스에 적용되는지를 지시하는, 5G 미디어 스트림을 처리하는 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 콘텐츠 세트는:
    상기 5G 미디어 스트림이 DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)를 따를 때의 적응(adaptation) 세트; 또는
    상기 5G 미디어 스트림이 CMAF(Common Media Application Format)를 따를 때의 스위칭 세트
    중 적어도 하나를 포함하고,
    상기 제1 미디어 슬라이스는:
    상기 적응 세트의 제1 표현 내의 세그먼트; 또는
    상기 스위칭 세트의 제1 트랙 내의 청크
    중 적어도 하나를 포함하는, 5G 미디어 스트림을 처리하는 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 미디어 슬라이스의 구성 정보는:
    상기 콘텐츠 세트를 포함하는 컨테이너의 시작 시간을 기준으로 상기 하나 이상의 미디어 슬라이스 각각의 오프셋 - 상기 컨테이너는 CMAF 프레젠테이션 또는 DASH 주기 중 적어도 하나를 포함함 -;
    상기 하나 이상의 미디어 슬라이스 각각의 크기; 또는
    상기 하나 이상의 미디어 슬라이스 각각의 품질
    중 적어도 하나를 포함하는, 5G 미디어 스트림을 처리하는 방법.
  7. 제5항에 있어서,
    상기 ARI 이벤트는 상기 스위칭 세트 내의 적어도 하나의 청크 또는 상기 적응 세트 내의 적어도 하나의 세그먼트와 연관된 타이밍 정보를 운반하고, 상기 타이밍 정보는 상기 적어도 하나의 청크 각각 또는 상기 적어도 하나의 세그먼트 각각에 대한 시작 시간을 지시하는, 5G 미디어 스트림을 처리하는 방법.
  8. 제5항에 있어서,
    상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보에 기반하여, 상기 제1 표현과 상이한 표현 또는 상기 제1 트랙과 상이한 트랙으로 스위칭할지를 결정하는 단계
    를 더 포함하는 5G 미디어 스트림을 처리하는 방법.
  9. 제5항에 있어서,
    상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보 및 상기 제1 미디어 슬라이스로부터 추출된 정보에 기반하여, 상기 제1 표현과 상이한 표현 또는 상기 제1 트랙과 상이한 트랙으로 스위칭할지를 결정하는 단계
    를 더 포함하는 5G 미디어 스트림을 처리하는 방법.
  10. 제5항에 있어서,
    상기 제1 표현과 상이한 표현 또는 상기 제1 트랙과 상이한 트랙으로부터의 하나 이상의 추가 ARI 이벤트를 수신하는 단계
    를 더 포함하는 5G 미디어 스트림을 처리하는 방법.
  11. 제5항에 있어서,
    상기 ARI 이벤트는 메시지 부분을 포함하며,
    상기 메시지 부분은:
    상기 ARI 이벤트가 인밴드 이벤트일 때의 message_data 필드; 또는
    상기 ARI 이벤트가 MPD 이벤트일 때의 이벤트 바디 필드
    중 하나이고,
    상기 message_data 필드와 상기 이벤트 바디 필드는 각각 하나 이상의 ARI 샘플을 운반하며, 그리고
    상기 message_data 필드 내의 상기 하나 이상의 ARI 샘플과 상기 이벤트 바디 필드 내의 상기 하나 이상의 ARI 샘플은 동일한 데이터 구조를 공유하는, 5G 미디어 스트림을 처리하는 방법.
  12. 제11항에 있어서,
    상기 ARI 이벤트를 파싱하여 상기 ARI 이벤트와 연관된 프레젠테이션 시간을 검색하는 단계;
    상기 프레젠테이션 시간에 기반하여, 상기 ARI 이벤트가 적용되는 타깃 미디어 슬라이스를 결정하는 단계;
    상기 데이터 구조에 기반하여 상기 하나 이상의 ARI 샘플을 구성하는 단계; 및
    상기 하나 이상의 ARI 샘플에 기반하여, 상기 제1 표현과 상이한 표현 또는 상기 제1 트랙과 상이한 트랙으로 스위칭할지를 결정하는 단계
    를 더 포함하는 5G 미디어 스트림을 처리하는 방법.
  13. 5G 미디어 스트림을 처리하는 디바이스로서,
    상기 5G 미디어 스트림은 DASH(Dynamic Adaptive Streaming over HTTP) 표준 또는 CMAF(Common Media Application Format)를 따르며,
    상기 5G 미디어 스트림을 처리하는 디바이스는,
    컴퓨터 명령어를 저장하는 메모리와 상기 메모리와 통신하는 프로세서를 포함하고,
    상기 프로세서가 상기 컴퓨터 명령어를 실행할 때, 상기 프로세서는 상기 5G 미디어 스트림을 처리하는 디바이스가,
    상기 5G 미디어 스트림과 연관된 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 이벤트를 처리하게 하도록 구성되고,
    상기 ARI 이벤트는:
    콘텐츠 세트 내의 제1 미디어 슬라이스와 함께 전송되는 인밴드 이벤트 - 상기 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는
    MPD(Media Presentation Description) 이벤트
    중 적어도 하나를 포함하며,
    상기 ARI 이벤트는 상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보를 운반하는, 5G 미디어 스트림을 처리하는 디바이스.
  14. 제13항에 있어서,
    상기 인밴드 이벤트 및 상기 MPD 이벤트는 각각 스킴 식별자에 의해 식별되거나 스킴 식별자와 연관되며, 상기 스킴 식별자는 스킴 식별자 URI(Uniform Resource Identifier)를 포함하는, 5G 미디어 스트림을 처리하는 디바이스.
  15. 제13항 내지 제14항 중 어느 한 항에 있어서,
    상기 콘텐츠 세트는:
    상기 5G 미디어 스트림이 DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)를 따를 때의 적응 세트; 또는
    상기 5G 미디어 스트림이 CMAF(Common Media Application Format)를 따를 때의 스위칭 세트
    중 적어도 하나를 포함하고,
    상기 제1 미디어 슬라이스는:
    상기 적응 세트의 제1 표현 내의 세그먼트; 또는
    상기 스위칭 세트의 제1 트랙 내의 청크
    중 적어도 하나를 포함하는, 5G 미디어 스트림을 처리하는 디바이스.
  16. 제15항에 있어서,
    상기 하나 이상의 미디어 슬라이스의 구성 정보는:
    상기 콘텐츠 세트를 포함하는 컨테이너의 시작 시간을 기준으로 상기 하나 이상의 미디어 슬라이스 각각의 오프셋 - 상기 컨테이너는 CMAF 프레젠테이션 또는 DASH 주기 중 적어도 하나를 포함함 -;
    상기 하나 이상의 미디어 슬라이스 각각의 크기; 또는
    상기 하나 이상의 미디어 슬라이스 각각의 품질
    중 적어도 하나를 포함하는, 5G 미디어 스트림을 처리하는 디바이스.
  17. 제15항에 있어서,
    상기 프로세서가 상기 컴퓨터 명령어를 실행할 때, 상기 프로세서는 추가로, 상기 5G 미디어 스트림을 처리하는 디바이스가,
    상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보에 기반하여, 상기 제1 표현과 상이한 표현 또는 상기 제1 트랙과 상이한 트랙으로 스위칭할지를 결정하게 하도록 구성되는, 5G 미디어 스트림을 처리하는 디바이스.
  18. 컴퓨터가 판독 가능한 명령어를 저장하는 비일시적 저장 매체로서,
    상기 컴퓨터가 판독 가능한 명령어는 DASH(Dynamic Adaptive Streaming over HTTP) 표준 또는 CMAF(Common Media Application Format)를 따르는 5G 미디어 스트림을 처리하는 디바이스의 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 5G 미디어 스트림과 연관된 주소 지정 가능한 리소스 인덱스(addressable resource index, ARI) 이벤트를 처리하게 하며,
    상기 ARI 이벤트는:
    콘텐츠 세트 내의 제1 미디어 슬라이스와 함께 전송되는 인밴드 이벤트 - 상기 콘텐츠 세트는 하나 이상의 미디어 슬라이스를 포함함 -; 또는
    MPD(Media Presentation Description) 이벤트
    중 적어도 하나를 포함하며,
    상기 ARI 이벤트는 상기 콘텐츠 세트 내의 상기 하나 이상의 미디어 슬라이스의 구성 정보를 운반하는, 비일시적 저장 매체.
  19. 제18항에 있어서,
    상기 인밴드 이벤트 및 상기 MPD 이벤트는 각각 스킴 식별자에 의해 식별되거나 스킴 식별자와 연관되며, 상기 스킴 식별자는 스킴 식별자 URI(Uniform Resource Identifier)를 포함하는, 비일시적 저장 매체.
  20. 제18항 내지 제19항 중 어느 한 항에 있어서,
    상기 콘텐츠 세트는:
    상기 5G 미디어 스트림이 DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)를 따를 때의 적응 세트; 또는
    상기 5G 미디어 스트림이 CMAF(Common Media Application Format)를 따를 때의 스위칭 세트
    중 적어도 하나를 포함하고,
    상기 제1 미디어 슬라이스는:
    상기 적응 세트의 제1 표현 내의 세그먼트; 또는
    상기 스위칭 세트의 제1 트랙 내의 청크
    중 적어도 하나를 포함하는, 비일시적 저장 매체.
KR1020247013336A 2022-04-19 2023-04-14 Cmaf 및 dash 멀티미디어 스트리밍을 위한 주소 지정 가능한 리소스 인덱스 이벤트 KR20240070610A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US202263332585P 2022-04-19 2022-04-19
US63/332,585 2022-04-19
US202263388574P 2022-07-12 2022-07-12
US202263388568P 2022-07-12 2022-07-12
US63/388,574 2022-07-12
US63/388,568 2022-07-12
US18/190,713 US20230336602A1 (en) 2022-04-19 2023-03-27 Addressable resource index events for cmaf and dash multimedia streaming
US18/190,713 2023-03-27
PCT/US2023/065785 WO2023205588A1 (en) 2022-04-19 2023-04-14 Addressable resource index events for cmaf and dash multimedia streaming

Publications (1)

Publication Number Publication Date
KR20240070610A true KR20240070610A (ko) 2024-05-21

Family

ID=88307313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247013336A KR20240070610A (ko) 2022-04-19 2023-04-14 Cmaf 및 dash 멀티미디어 스트리밍을 위한 주소 지정 가능한 리소스 인덱스 이벤트

Country Status (4)

Country Link
US (1) US20230336602A1 (ko)
KR (1) KR20240070610A (ko)
CN (1) CN117256135A (ko)
WO (1) WO2023205588A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866608B2 (en) * 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content
WO2018049221A1 (en) * 2016-09-09 2018-03-15 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
US20180103271A1 (en) * 2016-10-10 2018-04-12 Qualcomm Incorporated Systems and methods for signaling missing or corrupted video data
US11445270B2 (en) * 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
US11765444B2 (en) * 2020-07-01 2023-09-19 Qualcomm Incorporated Streaming media data including an addressable resource index track

Also Published As

Publication number Publication date
CN117256135A (zh) 2023-12-19
US20230336602A1 (en) 2023-10-19
WO2023205588A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
KR102528703B1 (ko) Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들
JP7246508B2 (ja) Httpによる動的適応ストリーミングのための方法及び装置
US11418561B2 (en) Remote link validity interval in media streaming
EP4111675A1 (en) Method and apparatus for media streaming
US20210006871A1 (en) Events in timed metadata tracks
US11451602B2 (en) Methods and apparatuses for dynamic adaptive streaming over HTTP
US11533346B2 (en) Methods and apparatuses for dynamic adaptive streaming over HTTP
US20230336602A1 (en) Addressable resource index events for cmaf and dash multimedia streaming
US20240022792A1 (en) Method for bandwidth switching by cmaf and dash clients using addressable resource index tracks and events
US20230336603A1 (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를 통한 동적 적응 스트리밍을 위한 방법 및 장치
US20230336821A1 (en) Methods, devices, and computer readable medium for processing alternative media presentation description
US20230336599A1 (en) Extensible Request Signaling for Adaptive Streaming Parameterization
WO2024015222A1 (en) Signaling for picture in picture in media container file and in streaming manifest
KR20230154977A (ko) 스택화 속성들을 갖는 프리롤들, 미드롤들 및 엔드롤들을 지원하는 mpeg dash를 위한 보조 mpd들
KR20230006835A (ko) Dash 및 cmaf 대역내 이벤트를 프로세싱하기 위한 확장된 w3c 미디어 확장

Legal Events

Date Code Title Description
A201 Request for examination