KR20220131976A - Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 - Google Patents
Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 Download PDFInfo
- Publication number
- KR20220131976A KR20220131976A KR1020227029144A KR20227029144A KR20220131976A KR 20220131976 A KR20220131976 A KR 20220131976A KR 1020227029144 A KR1020227029144 A KR 1020227029144A KR 20227029144 A KR20227029144 A KR 20227029144A KR 20220131976 A KR20220131976 A KR 20220131976A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- request
- class
- url
- value pair
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000003044 adaptive effect Effects 0.000 title description 9
- 238000012545 processing Methods 0.000 claims abstract description 54
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 24
- 230000006978 adaptation Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000153 supplemental effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 239000012092 media component Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 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
- 239000000779 smoke Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- 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/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
-
- 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
- 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/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1108—Web based protocols, e.g. webRTC
-
- 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
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4722—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
- H04N21/4725—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content using interactive regions of the image, e.g. hot spots
-
- 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/84—Generation or processing of descriptive data, e.g. content descriptors
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Filters That Use Time-Delay Elements (AREA)
- Television Systems (AREA)
- Picture Signal Circuits (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 개시내용의 양태들은 미디어 데이터를 수신하기 위한 방법들, 장치들, 및 비일시적 컴퓨터 판독가능 저장 매체들을 제공한다. 하나의 장치는 세션 기반 디스크립션(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터를 포함하는 미디어 프레젠테이션 디스크립션(MPD) 파일을 수신하는 처리 회로를 포함한다. 필수 프로퍼티 디스크립터는 자원을 요청하는 데 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함한다. 클래스는 요청된 자원의 타입을 식별한다. 처리 회로는 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 클래스 및 SBD 파일에 기초하여 URL 요청을 생성한다. 처리 회로는 URL 요청을 서버에 전송하여 URL 요청의 클래스에 기초하여 타입이 식별되는 자원을 요청한다.
Description
인용에 의한 통합
본 출원은, 2021년 1월 5일자로 출원된 미국 가출원 제63/134,049호, "A METHOD FOR EXTENDING THE SESSION-BASED DASH OPERATIONS TO DIFFERENT URL CLASSES"에 대한 우선권의 이익을 주장하는, 2021년 9월 16일자로 출원된 미국 특허 출원 제17/477,288호, "METHODS AND APPARATUSES FOR DYNAMIC ADAPTIVE STREAMING OVER HTTP"에 대한 우선권의 이익을 주장한다. 이전 출원들의 개시내용들은 그 전체가 본 명세서에 참조로 포함된다.
기술분야
본 개시내용은 일반적으로 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(dynamic adaptive streaming over hypertext transfer protocol)(DASH)을 위한 방법들 및 장치들에 관련된 실시예들을 설명한다.
본 명세서에 제공된 배경 설명은 본 개시내용의 맥락을 일반적으로 제시하기 위한 것이다. 본 배경기술 부분에 설명되어 있는 현재 등록된 발명자의 연구 및 출원 시점에 종래 기술로서 달리 간주되지 않을 수 있는 설명의 양태는 명시적으로도 암시적으로도 본 개시내용에 대한 종래 기술로 인정되지 않는다.
동영상 전문가 그룹(Moving Picture Expert Group)(MPEG) 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(dynamic adaptive streaming over hypertext transfer protocol)(DASH)은 IP 네트워크들을 통해 멀티미디어 콘텐츠를 스트리밍하기 위한 표준을 제공한다. DASH 표준은 미디어 세그먼트들에서 이벤트 메시지 상자들을 운반하는 것을 허용한다.
본 개시내용의 양태들은 미디어 데이터를 수신하기 위한 장치들을 제공한다. 하나의 장치는 세션 기반 디스크립션(session-based description)(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터(essential property descriptor)를 포함하는 미디어 프레젠테이션 디스크립션(media presentation description)(MPD) 파일을 수신하는 처리 회로를 포함한다. 필수 프로퍼티 디스크립터는 자원을 요청하는 데 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함한다. 클래스는 요청된 자원의 타입을 식별한다. 처리 회로는 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 클래스 및 SBD 파일에 기초하여 URL 요청을 생성한다. 처리 회로는 URL 요청을 서버에 전송하여 URL 요청의 클래스에 기초하여 타입이 식별되는 자원을 요청한다.
일 실시예에서, URL 요청의 클래스는 URL 요청이 미디어 세그먼트 요청, XLink 해상도 요청(XLink resolution request), MPD 요청, 콜백 이벤트에 의해 트리거되는 콜백 요청, 체인드-투 MPD에 대한 체이닝 요청(chaining request for a chained-to MPD), 또는 폴백 MPD에 대한 폴백 요청(fallback request for a fallback MPD) 중 하나인 것을 표시한다.
일 실시예에서, 처리 회로는 SBD 파일에 포함된 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하고 제1 키-값 쌍에 기초하여 URL 요청을 생성한다.
일 실시예에서, 복수의 키-값 쌍들은 SBD 파일에서 순서대로 배열된다. 복수의 키-값 쌍들 각각은 각자의 순서 번호를 갖는다. SBD 파일은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초하는지 여부를 표시하는 속성을 포함한다.
일 실시예에서, SBD 파일에 포함된 속성은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초한다는 것을 표시한다. 처리 회로는 복수의 키-값 쌍들에서 제2 키-값 쌍을 결정한다. 제2 키-값 쌍은 URL 요청과 동일한 클래스를 갖는 이전 URL 요청을 생성하기 위해 사용된다. 처리 회로는 제2 키-값 쌍의 순서 번호에 기초하여 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택한다.
일 실시예에서, SBD 파일에 포함된 속성은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초하지 않는다는 것을 표시한다. 처리 회로는 복수의 키-값 쌍들에서 제3 키-값 쌍을 결정하며, 제3 키-값 쌍은 가장 최근의 이전 URL 요청을 생성하기 위해 사용된다. 처리 회로는 제3 키-값 쌍의 순서 번호에 기초하여 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택한다.
일 실시예에서, 필수 프로퍼티 디스크립터에 포함된 속성의 디폴트 값은 URL 요청의 클래스가 미디어 세그먼트 요청 클래스라는 것을 표시한다.
본 개시내용의 양태들은 미디어 데이터를 수신하기 위한 방법들을 제공한다. 방법들은 장치들에 의해 수행되는 단계들 중 하나 또는 그 조합을 포함할 수 있다. 하나의 방법에서, 미디어 프레젠테이션 디스크립션(MPD) 파일이 수신된다. MPD 파일은 세션 기반 디스크립션(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터를 포함한다. 필수 프로퍼티 디스크립터는 자원을 요청하는 데 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함한다. 클래스는 요청된 자원의 타입을 식별한다. URL 요청은 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 클래스 및 SBD 파일에 기초하여 생성된다. URL 요청은 서버에 전송되어 URL 요청의 클래스에 기초하여 타입이 식별되는 자원을 요청한다.
본 개시내용의 양태들은, 미디어 데이터를 수신하기 위해 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 미디어 데이터를 수신하기 위한 방법들 중 어느 하나 또는 그 조합을 수행하게 하는 명령어들을 저장한 비일시적 컴퓨터 판독가능 매체들을 또한 제공한다.
개시된 주제의 추가의 특징들, 본질 및 다양한 이점들이 다음의 상세한 설명 및 첨부 도면들로부터 더 명백할 것이다.
도 1은 본 개시내용의 실시예에 따른 예시적인 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(dynamic adaptive streaming over hypertext transfer protocol)(DASH) 시스템을 도시한다.
도 2는 본 개시내용의 실시예에 따른 다른 예시적인 세션 기반 DASH 시스템을 도시한다.
도 3은 본 개시내용의 실시예에 따른 예시적인 DASH 클라이언트 아키텍처를 도시한다.
도 4는 일부 실시예들에 따른 프로세스 예를 약술하는 흐름도를 도시한다.
도 5는 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 1은 본 개시내용의 실시예에 따른 예시적인 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(dynamic adaptive streaming over hypertext transfer protocol)(DASH) 시스템을 도시한다.
도 2는 본 개시내용의 실시예에 따른 다른 예시적인 세션 기반 DASH 시스템을 도시한다.
도 3은 본 개시내용의 실시예에 따른 예시적인 DASH 클라이언트 아키텍처를 도시한다.
도 4는 일부 실시예들에 따른 프로세스 예를 약술하는 흐름도를 도시한다.
도 5는 일 실시예에 따른 컴퓨터 시스템의 개략도이다.
I. 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(DASH) 및 미디어 프레젠테이션 디스크립션(MPD)
하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(DASH)은 웹 서버들, 콘텐츠 전달 네트워크들(content delivery networks)(CDN들), 다양한 프록시들 및 캐시들, 및 이와 유사한 것과 같은 하이퍼텍스트 전송 프로토콜(HTTP) 인프라스트럭처들을 사용하여 미디어 콘텐츠의 스트리밍을 가능하게 하는 적응 비트레이트 스트리밍 기법이다. DASH는 DASH 서버로부터 DASH 클라이언트로의 온-디맨드 및 라이브 스트리밍 둘 다를 지원하고, DASH 클라이언트가 스트리밍 세션을 제어하는 것을 허용하여, DASH 서버가 대규모 배치들에서의 스트림 적응 관리의 추가 부하에 대처할 필요가 없게 된다. DASH는 또한 DASH 클라이언트가 다양한 DASH 서버들로부터의 스트리밍을 선택하는 것을 허용하고, 따라서 DASH 클라이언트의 이익을 위해 네트워크의 추가 부하 밸런싱(load-balancing)을 달성한다. DASH는, 예를 들어, 네트워크 조건들에 적응되도록 비트레이트들을 변경함으로써 상이한 미디어 트랙들(media tracks) 사이의 동적 전환을 제공한다.
DASH에서, 미디어 프레젠테이션 디스크립션(MPD) 파일은 DASH 클라이언트가 DASH 서버로부터 미디어 세그먼트들을 다운로드함으로써 미디어 콘텐츠를 적응적으로 스트리밍하기 위한 정보를 제공한다. 세션 스타트업 지연(session start-up delay)을 줄이기 위해, MPD 파일은 조각화(fragment)되어 부분들로 전달될 수 있다. MPD 파일은 또한 스트리밍 세션 동안 업데이트될 수 있다. 일부 예들에서, MPD 파일은 콘텐츠 액세스가능성 특징들, 등급들, 및 카메라 뷰들의 표현을 지원한다. DASH는 또한 멀티-뷰 및 스케일가능한 코딩된 콘텐츠의 전달을 지원한다.
MPD 파일은 하나 이상의 주기의 시퀀스를 포함할 수 있다. 하나 이상의 주기 각각은 MPD 파일 내의 주기 요소에 의해 정의될 수 있다. MPD 파일은 MPD에 대한 availableStartTime 속성, 및 각각의 주기에 대한 시작 속성을 포함할 수 있다. (예를 들어, 라이브 서비스들을 위해 사용되는) 동적 타입을 갖는 미디어 프레젠테이션들에 대해, 미디어 세그먼트의 지속기간(duration) 및 MPD 속성 availableStartTime 및 주기의 시작 속성의 합은 협정 세계시(coordinated universal time)(UTC) 포맷의 주기의 가용성 시간, 특히 대응하는 주기 내의 각각의 표현의 제1 미디어 세그먼트를 표시할 수 있다. (예를 들어, 온-디맨드 서비스들을 위해 사용되는) 정적 타입을 갖는 미디어 프레젠테이션들에 대해, 제1 주기의 시작 속성은 0일 수 있다. 임의의 다른 주기에 대해, 시작 속성은 제1 주기의 시작 시간에 대한 대응하는 주기의 시작 시간 사이의 시간 오프셋을 특정할 수 있다. 각각의 주기는 다음 주기의 시작까지, 또는 마지막 주기의 경우에는 미디어 프레젠테이션의 끝까지 연장될 수 있다. 주기 시작 시간들은 정확할 수 있으며, 모든 이전 주기들의 미디어 재생으로 인한 실제 타이밍을 반영할 수 있다.
각각의 주기는 하나 이상의 적응 세트를 포함할 수 있고, 적응 세트들 각각은 동일한 미디어 콘텐츠에 대한 하나 이상의 표현(representation)을 포함할 수 있다. 표현은 오디오 또는 비디오 데이터의 다수의 대안적인 인코딩된 버전들 중 하나일 수 있다. 표현들은 인코딩 타입들에 따라, 예를 들어, 비트레이트, 해상도, 및/또는 비디오 데이터를 위한 코덱 및 비트레이트, 및/또는 오디오 데이터를 위한 코덱에 따라 다를 수 있다. 표현(representation)이라는 용어는 멀티미디어 콘텐츠의 특정 주기에 대응하고 특정 방식으로 인코딩되는, 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하기 위해 사용될 수 있다.
MPD 파일에서 그룹 속성에 의해 표시되는 그룹에 대해, 특정 주기의 적응 세트들이 할당될 수 있다. 동일한 그룹 내의 적응 세트들은 일반적으로 서로에 대한 대안들로 고려된다. 예를 들어, 특정 주기에 대한 비디오 데이터의 각각의 적응 세트가 동일한 그룹에 할당될 수 있으며, 그에 의해, 대응하는 주기 동안 멀티미디어 콘텐츠의 비디오 데이터를 디스플레이하기 위한 디코딩을 위해, 적응 세트 중 임의의 것이 선택될 수 있다. 일부 예들에서, 하나의 주기 내의 미디어 콘텐츠는, 존재하는 경우 그룹 0으로부터의 하나의 적응 세트, 또는 각각의 0이 아닌 그룹으로부터의 최대 하나의 적응 세트의 조합에 의해 표현될 수 있다. 주기의 각각의 표현에 대한 타이밍 데이터는 주기의 시작 시간에 대해 표현될 수 있다.
표현은 하나 이상의 세그먼트를 포함할 수 있다. 각각의 표현은 초기화 세그먼트를 포함할 수 있거나, 또는 표현의 각각의 세그먼트가 자체 초기화(self-initializing)될 수 있다. 존재하는 경우, 초기화 세그먼트는 표현에 액세스하기 위한 초기화 정보를 포함할 수 있다. 일부 경우들에서, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트는 URL(uniform resource locator), URN(uniform resource name), 또는 URI(uniform resource identifier)와 같은 식별자에 의해 고유하게 참조될 수 있다. MPD 파일은 각각의 세그먼트에 대한 식별자들을 제공할 수 있다. 일부 예들에서, MPD 파일은 또한 URL, URN, 또는 URI에 의해 액세스가능한 파일 내의 세그먼트에 대한 데이터에 대응할 수 있는 범위 속성(range attribute)의 형태로 바이트 범위들(byte ranges)을 제공할 수 있다.
각각의 표현은 또한 하나 이상의 미디어 컴포넌트를 포함할 수 있고, 여기서 각각의 미디어 컴포넌트는 오디오, 비디오, 또는 시간 지정 텍스트(timed text)(예를 들어, 폐쇄 자막용)와 같은 하나의 개별 미디어 타입의 인코딩된 버전에 대응할 수 있다. 미디어 컴포넌트들은 하나의 표현 내에서 연속적인 미디어 세그먼트들의 경계들에 걸쳐 시간-연속적일 수 있다.
일부 실시예들에서, DASH 클라이언트는 DASH 서버로부터 MPD 파일에 액세스하여 이를 다운로드할 수 있다. 즉, DASH 클라이언트는 라이브 세션을 시작하는 데 사용할 MPD 파일을 검색할 수 있다. MPD 파일에 기초하여, 그리고 각각의 선택된 표현에 대해, DASH 클라이언트는 서버에서 이용가능한 최신 세그먼트가 무엇인지를 결정하는 것, 다음 세그먼트 및 가능하게는 장래 세그먼트들의 세그먼트 가용성 시작 시간을 결정하는 것, 세그먼트의 플레이아웃(playout)을 언제 시작할지 그리고 세그먼트 내의 어느 타임라인인지를 결정하는 것, 및 새로운 MPD 파일을 언제 가져오거나/페치할지를 결정하는 것을 포함하여, 몇몇 결정을 행할 수 있다. 서비스가 플레이 아웃되면, 클라이언트는 라이브 서비스와 자체 플레이아웃 사이의 드리프트를 추적할 수 있으며, 이는 검출되고 보상될 필요가 있다.
II. 세션 기반 DASH 동작 및 세션 기반 디스크립션(SBD)
MPD 파일은 모든 DASH 클라이언트에 대해 일반적일 수 있음에 유의한다. MPD 파일을 DASH 클라이언트의 세션에 특정하게 만들기 위해, MPEG(moving picture expert group)는 세션 기반 DASH 동작들을 제공한다. 세션 기반 DASH 동작들에서, DASH 클라이언트는 세션 기반 디스크립션(SBD) 파일과 같은 부가 파일을 수신할 수 있고, 이것은 DASH 클라이언트가 세션별로, 그리고 가능하게는 클라이언트별로 MPD 파일을 맞춤화하기 위한 명령어들을 제공한다. 그러나, 일부 관련 예들에서, 세션 기반 DASH 동작은 애플리케이션 특정적이다. 즉, 각각의 새로운 애플리케이션에 대해, 새로운 SBD 포맷이 요구된다.
본 개시내용은 SBD 정보를 사용하여 세그먼트 URL들을 넘어 상이한 클래스들의 URL들을 맞춤화하기 위해 SBD 세션을 확장하기 위한 방법들을 포함한다.
도 1은 본 개시내용의 실시예에 따른 예시적인 DASH 시스템(100)을 도시한다. DASH 시스템(100)에서, MPD 파일은 DASH 서버(101)(예를 들어, 콘텐츠 서버)로부터 DASH 클라이언트(102)에 전송된다. DASH 클라이언트(102)는 MPD 파일에 기초하여 DASH 서버(101)로부터 미디어 세그먼트들을 수신할 수 있다. DASH 클라이언트(102)는 MPD 파일을 업데이트하기 위한 요청을 DASH 서버(101)에 전송할 수 있다. DASH 서버(101)는 1차 콘텐츠(예를 들어, 메인 프로그램) 및 하나 이상의 시간 지정 메타데이터 트랙을 포함하는 콘텐츠 스트림을 제공할 수 있다. 추가로, DASH 클라이언트(102)는 DASH 서버(101) 또는 제3자(예를 들어, 세션 제어기)로부터 SBD 파일을 수신할 수 있다.
본 개시내용의 양태들에 따르면, SBD 파일은 추가 메타데이터와 함께, 복수의 시간 범위들 및 대응하는 키-값 쌍들(또는 이름-값 쌍들)을 포함할 수 있다. SBD 파일은, 예를 들어, URL에 의해 MPD 파일에서 참조될 수 있다. SBD 파일은 DASH 클라이언트(102)에 의해 수신된 MPD 파일을 DASH 클라이언트(102)의 세션에 대해 특정적이 되도록 맞춤화하기 위해 사용될 수 있다. 예를 들어, SBD 파일은 고유한 세션별 MPD들을 생성하지 않고도 세그먼트 URL들에 세션 특정 요소들을 추가하는 것을 허용할 수 있다.
도 2는 본 개시내용의 실시예에 따른 다른 예시적인 세션 기반 DASH 동작 아키텍처(200)를 도시한다. 세션 기반 DASH 동작 아키텍처(200)에서, 멀티미디어 콘텐츠는 오디오 소스(예를 들어, 마이크로폰) 및 비디오 소스(예를 들어, 비디오 카메라)를 포함할 수 있는 콘텐츠 생성 디바이스(201)(예를 들어, 스마트폰)에 의해 준비되고 생성된다. 멀티미디어 콘텐츠는 콘텐츠 생성 디바이스(201)에 의해 저장되거나 다양한 멀티미디어 콘텐츠를 저장할 수 있는 콘텐츠 서버(202)에 전송될 수 있다. 콘텐츠 서버(202)는 멀티미디어 콘텐츠의 하나 이상의 미디어 세그먼트에 대해, DASH 액세스 클라이언트(203)와 같은 클라이언트 디바이스들로부터의 요청을 수신할 수 있다. 멀티미디어 콘텐츠는, 콘텐츠 서버(202)에 의해 저장 및 업데이트될 수 있고 미디어 세그먼트들을 검색하기 위해 DASH 액세스 클라이언트(203)를 포함하는 클라이언트 디바이스들에 의해 액세스될 수 있는, MPD 파일에 의해 설명된다.
세션 특정 미디어 세그먼트를 검색하기 위해, DASH 액세스 클라이언트(203)는 SBD 클라이언트(204)에 의해 수신되고 현재 세션에 대한 복수의 시간 범위들 및 대응하는 키-값 쌍들을 포함하는 SBD 파일에 액세스하기 위한 요청을 SBD 클라이언트(204)(예를 들어, 세션 클라이언트)에 전송할 수 있다. 예를 들어, DASH 액세스 클라이언트(203)는 키 이름(key name) 및 시간 범위(time range)를 SBD 클라이언트(204)에 전송할 수 있으며, 그러면 SBD 클라이언트는 키 이름 및 시간 범위를 파싱하고 키 이름 및 시간 범위에 대응하는 값을 DASH 액세스 클라이언트(203)에 반환한다. DASH 액세스 클라이언트(203)는 세그먼트 요청이 HTTP GET 또는 부분 GET 요청일 때 세션 특정 미디어 세그먼트를 요청하기 위해 콘텐츠 서버(202)에 전송될 수 있는 세그먼트 URL의 쿼리에 그 값을 포함시킬 수 있다.
SBD 클라이언트(204)는 세션 제어기(205) 및 세션 제어기(206)와 같은 상이한 세션 제어기들로부터 다수의 SBD 파일들을 수신할 수 있다는 점에 유의한다.
본 개시내용의 양태들에 따르면, 콘텐츠 서버(202)(예를 들어, DASH 서버)의 임의의 또는 모든 특징은 라우터들, 브리지들, 프록시 디바이스들, 스위치들, 또는 다른 디바이스들과 같은 콘텐츠 전달 네트워크(CDN)의 하나 이상의 디바이스에서 구현된다. 콘텐츠 서버(202)는 클라이언트 디바이스들(예를 들어, DASH 액세스 클라이언트(203))로부터 네트워크 요청들을 수신하도록 구성되는 요청 처리 유닛을 포함할 수 있다. 예를 들어, 요청 처리 유닛은 HTTP GET 또는 부분 GET 요청들을 수신하고 요청들에 응답하여 멀티미디어 콘텐츠의 데이터를 제공하도록 구성될 수 있다. 요청들은 세그먼트의 URL을 사용하여 세그먼트를 특정할 수 있다. 일부 예들에서, 요청들은 또한 세그먼트의 하나 이상의 바이트 범위를 특정할 수 있고, 따라서 부분 GET 요청들을 포함한다. 요청 처리 유닛은 세그먼트의 헤더 데이터를 제공하기 위해 HTTP HEAD 요청들을 서비스하도록 추가로 구성될 수 있다.
일부 실시예들에서, 콘텐츠 생성 디바이스(201) 및 콘텐츠 서버(202)는 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있거나, 직접 통신가능하게 결합될 수 있다.
일부 실시예들에서, 콘텐츠 생성 디바이스(201) 및 콘텐츠 서버(202)는 동일한 디바이스에 포함될 수 있다.
일부 실시예들에서, 콘텐츠 서버(202) 및 세션 제어기들(205-206)은 동일한 디바이스에 포함될 수 있다.
일부 실시예들에서, 콘텐츠 서버(202) 및 DASH 액세스 클라이언트(203)는 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있다.
일부 실시예들에서, SBD 클라이언트(204) 및 세션 제어기들(205-206)은 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있거나, 직접 통신가능하게 결합될 수 있다.
일부 실시예들에서, DASH 액세스 클라이언트(203) 및 SBD 클라이언트(204)는 동일한 디바이스에 포함될 수 있다.
본 개시내용의 양태들에 따르면, 다수의 SBD들을 MPD에 링크하기 위해, 세션 기반 DASH에 대한 하나 이상의 필수 프로퍼티 디스크립터가 MPD 레벨에서 사용될 수 있으며, 세션 기반 DASH에 대한 각각의 필수 프로퍼티 디스크립터는 유사한 또는 동일한 필수 프로퍼티 디스크립터 속성들을 포함한다.
도 3은 본 개시내용의 실시예에 따른 예시적인 DASH 클라이언트 아키텍처를 도시한다. DASH 클라이언트(또는 DASH 플레이어)는 애플리케이션(312)과 통신하고, (i) MPD 이벤트들, (ii) 인밴드 이벤트들(inband events), 및 (iii) 시간 지정 메타데이터 이벤트들(timed metadata events)을 포함하는 다양한 타입들의 이벤트들을 처리하도록 구성될 수 있다.
매니페스트 파서(manifest parser)(310)는 매니페스트(예를 들어, MPD)를 파싱할 수 있다. 예를 들어, 매니페스트는 DASH 서버(101)에 의해 제공될 수 있다. 매니페스트 파서(310)는 MPD 이벤트들, 인밴드 이벤트들, 및 시간 지정 메타데이터 트랙들에 내장된 시간 시정 메타데이터 이벤트들에 관한 이벤트 정보를 추출할 수 있다. 추출된 이벤트 정보는 DASH 로직(311)(예를 들어, DASH 플레이어 제어, 선택, 및 휴리스틱 로직)에 제공될 수 있다. DASH 로직(311)은 이벤트 정보에 기초하여 매니페스트에서 시그널링된 이벤트 스킴들을 애플리케이션(312)에 통지할 수 있다.
이벤트 정보는 상이한 이벤트 스트림들 사이를 구별하기 위한 이벤트 스킴 정보를 포함할 수 있다. 애플리케이션(312)은 이벤트 스킴 정보를 사용하여 관심 있는 이벤트 스킴들에 가입할 수 있다. 애플리케이션(312)은 하나 이상의 가입 애플리케이션 프로그래밍 인터페이스(API)를 통해 가입된 스킴들 각각에 대한 원하는 디스패치 모드를 추가로 표시할 수 있다. 예를 들어, 애플리케이션(312)은 관심 있는 하나 이상의 이벤트 스킴 및 임의의 원하는 대응하는 디스패치 모드들을 식별하는 가입 요청을 DASH 클라이언트에 전송할 수 있다.
애플리케이션(312)이 하나 이상의 시간 지정 메타데이터 트랙의 일부로서 전달되는 하나 이상의 이벤트 스킴에 가입하면, 인밴드 이벤트 및 'moof' 파서(303)가 하나 이상의 시간 지정 메타데이터 트랙을 시간 지정 메타데이터 트랙 파서(304)에 스트리밍할 수 있다. 예를 들어, 인밴드 이벤트 및 'moof' 파서(303)는 DASH 로직(311)으로부터의 제어 정보에 기초하여 무비 조각 상자(movie fragment box)("moof")를 파싱하고 후속하여 시간 지정 메타데이터 트랙을 파싱한다.
시간 지정 메타데이터 트랙 파서(304)는 시간 지정 메타데이터 트랙에 내장된 이벤트 메시지들을 추출할 수 있다. 추출된 이벤트 메시지들은 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장될 수 있다. 동기화기/디스패처 모듈(308)(예를 들어, 이벤트 및 시간 지정 메타데이터 동기화기 및 디스패처)은 가입된 이벤트들을 애플리케이션(312)으로 디스패치(또는 전송)할 수 있다.
MPD에 설명된 MPD 이벤트들은 매니페스트 파서(310)에 의해 파싱되고 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장될 수 있다. 예를 들어, 매니페스트 파서(310)는 MPD의 각각의 이벤트 스트림 요소를 파싱하고, 각각의 이벤트 스트림 요소에 설명된 각각의 이벤트를 파싱한다. MPD에서 시그널링되는 각각의 이벤트에 대해, 프레젠테이션 시간 및 이벤트 지속기간과 같은 이벤트 정보가 이벤트와 연관하여 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장될 수 있다.
인밴드 이벤트 및 'moof' 파서(303)는 미디어 세그먼트들을 파싱하여 인밴드 이벤트 메시지들을 추출할 수 있다. 임의의 이러한 식별된 인밴드 이벤트들과, 연관된 프레젠테이션 시간들 및 지속기간들은 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장될 수 있다.
따라서, 이벤트 및 시간 지정 메타데이터 버퍼(306)는 그 안에 MPD 이벤트들, 인밴드 이벤트들, 및/또는 시간 지정 메타데이터 이벤트들을 저장할 수 있다. 예를 들어, 이벤트 및 시간 지정 메타데이터 버퍼(306)는 선입선출(First-In-First-Out)(FIFO) 버퍼일 수 있다. 이벤트 및 시간 지정 메타데이터 버퍼(306)는 미디어 버퍼(307)와 대응하여 관리될 수 있다. 예를 들어, 미디어 세그먼트가 미디어 버퍼(307)에 존재하는 한, 그 미디어 세그먼트에 대응하는 임의의 이벤트들 또는 시간 지정 메타데이터는 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장될 수 있다.
DASH 액세스 API(302)는 HTTP 프로토콜 스택(201)을 통해 미디어 콘텐츠 및 다양한 메타데이터를 포함하는 콘텐츠 스트림(또는 데이터 흐름)의 페치 및 수신을 관리할 수 있다. DASH 액세스 API(302)는 수신된 콘텐츠 스트림을 상이한 데이터 흐름들로 분리할 수 있다. 인밴드 이벤트 및 'moof' 파서(303)에 제공되는 데이터 흐름은 미디어 세그먼트들, 하나 이상의 시간 지정 메타데이터 트랙, 및 미디어 세그먼트들에 포함된 인밴드 이벤트 시그널링을 포함할 수 있다. 일 실시예에서, 매니페스트 파서(310)에 제공되는 데이터 흐름은 MPD를 포함할 수 있다.
DASH 액세스 API(302)는 매니페스트를 매니페스트 파서(310)에 포워딩할 수 있다. 이벤트들을 설명하는 것 외에, 매니페스트는 또한 미디어 세그먼트들에 관한 정보를 DASH 로직(311)에 제공할 수 있고, DASH 로직(311)은 애플리케이션(312) 및 인밴드 이벤트 및 'moof' 파서(303)와 통신할 수 있다. 애플리케이션(312)은 DASH 클라이언트에 의해 처리된 미디어 콘텐츠와 연관될 수 있다. 애플리케이션(312), DASH 로직(311), 매니페스트 파서(310), 및 DASH 액세스 API(302) 사이에서 교환되는 제어/동기화 신호들은 매니페스트에서 제공되는 미디어 세그먼트들에 관한 정보에 기초하여 HTTP 스택(201)으로부터의 미디어 세그먼트들의 페치를 제어할 수 있다.
인밴드 이벤트 및 'moof' 파서(303)는 미디어 데이터 흐름을 미디어 콘텐츠, 시간 지정 메타데이터 트랙 내의 시간 지정 메타데이터, 및 미디어 세그먼트들 내의 임의의 시그널링된 인밴드 이벤트들을 포함하는 미디어 세그먼트들로 파싱할 수 있다. 미디어 콘텐츠를 포함하는 미디어 세그먼트들은 파일 포맷 파서(305)에 의해 파싱되고 미디어 버퍼(307)에 저장될 수 있다.
이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장된 이벤트들은 동기화기/디스패처(308)가 이벤트/메타데이터 API를 통해 애플리케이션(312)에 관련된 이용가능한 이벤트들(또는 관심 있는 이벤트들)을 애플리케이션(312)에 통신하게 할 수 있다. 애플리케이션(312)은 이용가능한 이벤트들(예를 들어, MPD 이벤트들, 인밴드 이벤트들, 또는 시간 지정 메타데이터 이벤트들)을 처리하고, 동기화기/디스패처(308)에 통지함으로써 특정 이벤트들 또는 시간 지정 메타데이터에 가입하도록 구성될 수 있다. 애플리케이션(312)에 관련되지 않지만, 대신에 DASH 클라이언트 자체에 관련되는 이벤트 및 시간 지정 메타데이터 버퍼(306)에 저장된 임의의 이벤트들은 추가 처리를 위해 동기화기/디스패처(308)에 의해 DASH 로직(311)에 포워딩될 수 있다.
애플리케이션(312)이 특정 이벤트들에 가입한 것에 응답하여, 동기화기/디스패처(308)는 애플리케이션(312)이 가입한 이벤트 스킴들에 대응하는 이벤트 인스턴스들(또는 시간 지정 메타데이터 샘플들)을 애플리케이션(312)에 통신할 수 있다. 이벤트 인스턴스들은 (예를 들어, 특정 이벤트 스킴에 대한) 가입 요청에 의해 표시된 디스패치 모드, 또는 디폴트 디스패치 모드에 따라 통신될 수 있다. 예를 들어, 수신시 디스패치 모드(on-receive dispatch mode)에서, 이벤트 인스턴스들은 이벤트 및 시간 지정 메타데이터 버퍼(306)에서의 수신시에 애플리케이션(312)에 전송될 수 있다. 한편, 시작시 디스패치 모드(on-start dispatch mode)에서, 이벤트 인스턴스들은, 예를 들어, 미디어 디코더(309)로부터의 타이밍 신호들과 동기화하여, 그들의 연관된 프레젠테이션 시간에 애플리케이션(312)에 전송될 수 있다.
DASH 클라이언트 아키텍처에서, 두꺼운 데이터 흐름 라인들은 미디어 데이터 흐름을 표시하고, 좁은 데이터 흐름 라인들은 이벤트 및 시간 지정 메타데이터 데이터 흐름을 표시하며, 파선 데이터 흐름 라인들은 제어 및 동기화를 표시한다는 점에 유의한다. 추가로, CMAF 이벤트들을 위해 동일한 처리 모델이 사용될 수 있다.
III. URL에 대한 URL 클래스의 시그널링
세션 기반 DASH 동작은 세션별로 그리고 가능하게는 클라이언트별로 MPD를 맞춤화하는 중요한 접근법이다. 그러나, 일부 관련 예들에서, 세그먼트 요청 URL들만이 SBD 세션에서 맞춤화되도록 허용될 수 있다.
본 개시내용은 SBD 정보를 사용하여 세그먼트 요청 URL들을 넘어 상이한 클래스들의 URL들을 맞춤화하기 위해 SBD 세션을 확장하는 방법들을 포함한다.
본 개시내용의 양태들에 따르면, 맞춤화될 URL의 클래스들은 SBD 동작들(쿼리 또는 URL 맞춤화 또는 둘 다)로부터 세그먼트 요청들 이외의 URL 요청들의 상이한 클래스들로 일반화되거나 확장될 수 있다.
따라서, SBD 동작들은 다음과 같은 URL 요청들의 클래스들 중 하나 이상에 적용되도록 허용될 수 있다: (i) 세그먼트 요청들; (ii) XLink(extensible markup language linking language) 해상도 요청들; (iii) MPD 요청들; (iv) DASH 콜백 이벤트들에 의해 트리거되는 모든 요청들; (v) 체인드-투 MPD들에 대한 모든 요청들; 및 (vi) 폴백 MPD들에 대한 모든 요청들.
각각의 URL 클래스는 세그먼트들, XLink 해상도들 등과 같은 동일한 목적으로 자원들을 요청하기 위해 DASH 클라이언트에 의해 사용되는 하나 이상의 URL을 정의할 수 있다.
DASH 콜백 이벤트들은 DASH 클라이언트에 의해 주어진 URL에 HTTP GET 요청을 발행하고 HTTP 응답을 무시할 것으로 예상되는 콘텐츠 내의 표시들이다. 콘텐츠 저자는 미디어 경로에 포함되지 않은 서버 상의 특정 콘텐츠의 플레이백을 추적하기 위해 이러한 이벤트를 사용할 수 있다.
MPD 체이닝은, 하나의 미디어 프레젠테이션의 끝에서, 새로운 미디어 프레젠테이션이 시작됨을 표시하는 메커니즘을 제공한다. 종료는 정규 종료, 또는 에러 조건으로 인한 조기 종료일 수 있다. 이 메커니즘을 가능하게 하기 위해, "체인드-프롬(chained-from)" MPD는 "체인드-투(chained-to)" MPD 위치를 가리키는 필수 또는 보충 디스크립터를 포함할 수 있다.
MPD 체이닝은 2가지 경우: 정규 체이닝 및 폴백 체이닝을 포함할 수 있다. 정규 체이닝은 "체인드-투" MPD가 "체인드-프롬" MPD의 끝에서 플레이되는 동작을 지칭한다. 폴백 체이닝은 "체인드-프롬" MPD가 에러 조건들로 인해 조기에 종료될 때에만 "체인드-투" MPD가 플레이되는 동작을 지칭한다.
본 개시내용의 양태들에 따르면, URL에 대한 URL 클래스는 MPD 파일에 포함된 필수 프로퍼티 디스크립터에 표시될 수 있다. 필수 프로퍼티 디스크립터는 세션 기반 DASH 동작에 사용되고, SBD 세션에 대한 SBD 파일을 표시한다. 프레젠테이션 디스크립터가 필수 프로퍼티 디스크립터 또는 보충 프로퍼티 디스크립터일 수 있다는 점에 유의한다. 필수 프로퍼티에 대해, 미디어 프레젠테이션 저자는, 요소가 다른 EssentialProperty 요소와 동일한 @id를 공유하지 않는 한, 이 디스크립터를 포함하는 부모 요소 내의 정보를 적절히 사용하기 위해 디스크립터의 성공적인 처리가 필수적이라는 것을 표현한다. 대조적으로, 보충 프로퍼티에 대해, 미디어 프레젠테이션 저자는 디스크립터가 최적화된 처리를 위해 DASH 클라이언트에 의해 사용될 수 있는 보충 정보를 포함한다는 것을 표현한다.
표 1은 적용가능한 URL 클래스들을 특정하기 위한 속성을 포함하는 예시적인 필수 프로퍼티 디스크립터를 나타낸 것이다. 표에서, 속성 @urlClass는 어느 URL 클래스가 SBD 처리의 대상이 되는지를 특정할 수 있다. 속성 @urlClass의 상이한 값들은 상이한 허용된 URL 클래스들을 표시할 수 있다. 예를 들어, 속성 @urlClass에 대한 값 "xlink"는 URL의 클래스가 XLink 해상도 요청임을 표시한다. 속성 @urlClass의 디폴트 값은 "segment"이고, 이는 URL의 클래스가 미디어 세그먼트 요청임을 표시한다.
표 1
본 개시내용의 양태들에 따르면, SBD 파일은 그 타임라인에 대한 2개의 모델: 시간 기반 및 순서 기반을 가질 수 있다. 각각의 SBD 파일은 시간 기반 또는 순서 기반 타임라인 중 어느 하나를 사용할 수 있고, 양자 모두를 사용하지 않을 수 있다. 순서 기반 타임라인은 또한 순서라인으로도 지칭된다. SBD 클라이언트는 SBD 파일의 타임라인 또는 순서라인에 기초하여 SBD 처리를 수행할 수 있다.
시간 기반 타임라인의 경우, SBD 파일에 포함된 복수의 키-값 쌍들 중 하나를 식별하기 위해 시간 범위가 사용될 수 있다. 따라서, SBD 클라이언트가 URL 요청을 처리할 때, URL 요청의 URL 클래스는 URL 요청 처리에 어떠한 영향도 미치지 않는다. 즉, 다양한 URL 클래스들을 혼합하는 것은 SBD 클라이언트에 의해 수행되는 URL 처리에 어떠한 영향도 미치지 않는다.
그러나, 순서 기반 타임라인의 경우, 순서 번호는 SBD 파일에 포함된 복수의 키-값 쌍들 중 하나를 식별하기 위해 사용된다. 복수의 키-값 쌍들 중 하나의 순서 번호는 URL 요청의 URL 클래스에 의존할 수 있다. 따라서, URL 요청의 SBD 처리를 위한 2개의 시나리오가 있을 수 있다.
별개의 URL 클래스 처리로 지칭될 수 있는 제1 시나리오에서, URL은 URL의 URL 클래스에 기초하여 처리될 수 있다. SBD 처리는 다른 클래스들이 아니라 동일한 클래스에 속하는 URL들에 대한 순서라인(순서 기반 타임라인)만을 진행시킨다. 일 실시예에서, 각각의 URL 클래스는 각자의 URL 클래스에 대한 키-값 쌍을 가리키는 별개의 가상 포인터에 대응할 수 있다. 예를 들어, 미디어 세그먼트 URL 클래스는 미디어 세그먼트 URL 클래스에 속하는 제1 이전 URL 클래스에 대해 사용되는 제1 키-값 쌍을 가리키는 제1 가상 포인터를 가질 수 있고, XLink 해상도 URL 클래스는 XLink 해상도 URL 클래스에 속하는 제2 이전 URL 클래스에 대해 사용되는 제2 키-값 쌍을 가리키는 제2 가상 포인터를 가질 수 있다. 현재 URL 클래스가 미디어 세그먼트 URL 클래스에 속하면, 제1 가상 포인터는 순서라인에 따라 제1 키-값 쌍 다음의 제3 키-값 쌍으로 이동하고, 제1 가상 포인터가 가리키는 제3 키-값 쌍은 현재 URL 클래스에 대해 사용될 수 있다. 현재 URL 클래스가 XLink 해상도 URL 클래스에 속하면, 제2 가상 포인터는 순서라인에 따라 제2 키-값 쌍 다음의 제4 키-값 쌍으로 이동하고, 제2 가상 포인터가 가리키는 제4 키-값 쌍은 현재 URL 클래스에 대해 사용될 수 있다. 따라서, 이러한 방식으로, 현재 URL의 SBD 처리는 다음 URL이 현재 URL과 상이한 클래스로부터 온 것이면 다음 URL의 SBD 처리에 영향을 미치지 않는다.
집합적 URL 클래스 처리로 지칭될 수 있는 제2 시나리오에서, URL은 URL의 URL 클래스에 관계없이 순서대로 처리될 수 있다. 일 실시예에서, 모든 URL 클래스들은 가장 최근의 이전 URL에 대한 키-값 쌍을 가리키는 동일한 가상 포인터를 공유할 수 있다. 예를 들어, 하나의 키-값 쌍이 가장 최근의 이전 URL에 대해 사용되는 경우, 현재 URL과 가장 최근의 이전 URL이 동일한 URL 클래스에 속하는지 여부에 관계없이, 순서라인에 따라 하나의 키-값 쌍 다음의 다른 키-값 쌍이 현재 URL에 대해 사용될 수 있다. 따라서, 이러한 방식으로, 현재 URL의 SBD 처리는 다음 URL의 URL 클래스에 관계없이 다음 URL의 SBD 처리의 결과들을 변경할 수 있다. 이것은 URL 클래스 고려 없이 각각의 URL 처리에 대한 순서 기반 타임라인의 진보로 인한 것이다.
표 2는 SBD 처리를 위한 별개의 또는 집합적 처리를 표시하는 속성을 포함하는 예시적인 순서라인 모델을 나타낸 것이다. 표 2에서, 속성 collective가 "참"으로 설정될 때, URL은 집합적 URL 클래스 처리에 기초하여 처리될 수 있다. 속성 collective가 "거짓"으로 설정될 때, URL은 별개의 URL 클래스 처리에 기초하여 처리될 수 있다. 속성 collective에 대한 디폴트 값은 "거짓"으로 설정된다.
표 2
본 개시내용의 양태들에 따르면, 세그먼트 요청들 이외의 URL 요청들의 상이한 클래스들로 SBD 처리를 확장하는 방법이 제공된다. 이 방법에서, 확장된 클래스들은 세그먼트 요청들, XLink 해상도 요청들, MPD 요청들, DASH 콜백 이벤트들에 의해 트리거되는 요청들, 체인드-투 MPD들에 대한 요청들, 및 폴백 MPD들에 대한 요청들을 포함할 수 있다. 하나 이상의 URL 클래스는 MPD 파일에 포함된 필수 프로퍼티 디스크립터와 같은 매니페스트에서 시그널링될 수 있어, SBD 클라이언트가 이러한 클래스들에 속하는 URL들에 SBD 처리를 적용할 수 있다. SBD 처리는 URL 맞춤화 및 URL 쿼리들의 추가를 포함한다.
본 개시내용의 양태들에 따르면, URL 클래스들의 순서라인 처리를 위한 제1 방법이 제공된다. 제1 방법에서, 모든 수신된 URL은 순서라인 표를 사용하여 처리될 수 있다. 표는 URL 클래스에 관계없이 다음 엔트리로 진행될 수 있다. 제1 처리 방법은 SBD 파일 내의 속성과 같은 플래그를 사용하여 시그널링될 수 있다.
본 개시내용의 양태들에 따르면, URL 클래스들의 순서라인 처리를 위한 제2 방법이 제공된다. 제2 방법에서, 별개의 클래스의 모든 수신된 URL은 다른 클래스들로부터 분리된 순서라인 표를 사용하여 처리될 수 있다. 표는 동일한 클래스에 속하는 수신된 URL들에 대해서만 다음 엔트리로 진행될 수 있다(다른 클래스들에 대해서는 그렇지 않음). 제2 처리 방법은 SBD 파일 내의 속성과 같은 플래그를 사용하여 시그널링될 수 있다.
IV. 흐름도
도 4는 본 개시내용의 일 실시예에 따른 프로세스(400)를 약술하는 흐름도를 도시한다. 다양한 실시예들에서, 프로세스(400)는 DASH 클라이언트(102) 내의 처리 회로와 같은 처리 회로에 의해 실행된다. 일부 실시예들에서, 프로세스(400)는 소프트웨어 명령어들로 구현되고, 따라서 처리 회로가 소프트웨어 명령어들을 실행할 때, 처리 회로는 프로세스(400)를 수행한다. 프로세스(400)는 (S410)에서 시작하며, 여기서 프로세스(400)는 SBD 파일을 표시하는 필수 프로퍼티 디스크립터를 포함하는 MPD 파일을 수신한다. 필수 프로퍼티 디스크립터는 자원을 요청하는 데 사용되는 URL 요청에 대한 클래스를 표시하는 속성을 포함한다. 클래스는 요청된 자원의 타입을 식별한다. 다음으로, 프로세스(400)는 단계(S420)로 진행한다.
단계(S420)에서, 프로세스(400)는 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 클래스 및 SBD 파일에 기초하여 URL 요청을 생성한다. 다음으로, 프로세스(400)는 단계(S430)로 진행한다.
단계(S430)에서, 프로세스(400)는 URL 요청을 서버에 전송하여 URL 요청의 클래스에 의해 식별된 타입의 자원을 요청한다. 다음으로, 프로세스(400)는 종료된다.
일 실시예에서, URL 요청의 클래스는 URL 요청의 타입이 미디어 세그먼트 요청, XLink 해상도 요청, MPD 요청, 콜백 이벤트에 의해 트리거되는 콜백 요청, 체인드-투 MPD에 대한 체이닝 요청, 또는 폴백 MPD에 대한 폴백 요청 중 하나인 것을 표시한다.
일 실시예에서, 프로세스(400)는 SBD 파일에 포함된 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하고 제1 키-값 쌍에 기초하여 URL 요청을 생성한다.
일 실시예에서, 복수의 키-값 쌍들은 SBD 파일에서 순서대로 배열된다. 복수의 키-값 쌍들 각각은 각자의 순서 번호를 갖는다. SBD 파일은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초하는지 여부를 표시하는 속성을 포함한다.
일 실시예에서, SBD 파일에 포함된 속성은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초한다는 것을 표시한다. 프로세스(400)는 복수의 키-값 쌍들에서 제2 키-값 쌍을 결정한다. 제2 키-값 쌍은 URL 요청과 동일한 클래스를 갖는 이전 URL 요청을 생성하기 위해 사용된다. 프로세스(400)는 제2 키-값 쌍의 순서 번호에 기초하여 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택한다.
일 실시예에서, SBD 파일에 포함된 속성은 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것이 URL 요청의 클래스에 기초하지 않는다는 것을 표시한다. 프로세스(400)는 복수의 키-값 쌍들에서 제3 키-값 쌍을 결정하며, 제3 키-값 쌍은 가장 최근의 이전 URL 요청을 생성하기 위해 사용된다. 프로세스(400)는 제3 키-값 쌍의 순서 번호에 기초하여 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택한다.
일 실시예에서, 필수 프로퍼티 디스크립터에 포함된 속성의 디폴트 값은 URL 요청의 클래스가 미디어 세그먼트 요청 클래스라는 것을 표시한다.
V. 컴퓨터 시스템
위에서 설명된 기법들은 컴퓨터 판독가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현되고 하나 이상의 컴퓨터 판독가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 5는 개시된 주제의 특정 실시예들을 구현하기에 적합한 컴퓨터 시스템(500)을 도시한다.
컴퓨터 소프트웨어는, 하나 이상의 컴퓨터 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU) 등에 의해, 직접, 또는 해석, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일(compilation), 링킹(linking), 또는 유사한 메커니즘들이 수행될 수 있는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어들은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함하여, 다양한 타입의 컴퓨터들 또는 그것의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(500)에 대한 도 5에 도시된 컴포넌트들은 사실상 예시적인 것이고, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 임의의 제한을 암시하도록 의도되지 않는다. 컴포넌트들의 구성이 컴퓨터 시스템(500)의 예시적인 실시예에서 예시된 컴포넌트들 중 임의의 하나 또는 이들의 조합과 관련하여 임의의 종속성 또는 요건을 갖는 것으로 해석되어서도 안 된다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 휴먼 인터페이스 입력 디바이스는, 예를 들어, 촉각 입력(예컨대: 키스트로크, 스와이프, 데이터 글러브 움직임), 오디오 입력(예컨대: 음성, 손뼉), 시각적 입력(예컨대, 제스처), 후각적 입력(묘사되지 않음)을 통한 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스들은 또한 오디오(예컨대: 음성, 음악, 주변 사운드), 이미지들(예컨대: 스캐닝된 이미지들, 스틸 이미지 카메라로부터 획득된 사진 이미지들), 비디오(예컨대 2차원 비디오, 입체적 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적인 입력과 반드시 직접적으로 관련되지는 않는 특정 미디어를 캡처하기 위해 사용될 수 있다.
입력 휴먼 인터페이스 디바이스들은: 키보드(501), 마우스(502), 트랙패드(503), 터치 스크린(510), 데이터-글러브(도시되지 않음), 조이스틱(505), 마이크로폰(506), 스캐너(507), 및 카메라(508) 중 하나 이상(각각의 하나만이 묘사됨)을 포함할 수 있다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 출력 디바이스들을 또한 포함할 수 있다. 그러한 휴먼 인터페이스 출력 디바이스들은, 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각들을 자극하고 있을 수 있다. 그러한 휴먼 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어 터치-스크린(510), 데이터-글러브(도시되지 않음), 또는 조이스틱(505)에 의한 촉각 피드백, 그러나 입력 디바이스들로서 역할을 하지 않는 촉각 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예컨대: 스피커들(509), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예컨대, 각각 터치-스크린 입력 능력이 있거나 없고, 각각 촉각 피드백 능력이 있거나 없는, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(510) - 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원을 초과한 출력을 출력할 수 있음 - ; 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이들 및 스모크 탱크들(묘사되지 않음)), 및 프린터들(묘사되지 않음)을 포함할 수 있다. 이러한 시각적 출력 디바이스들(예컨대 스크린(510))은 그래픽 어댑터(550)를 통해 시스템 버스(548)에 접속될 수 있다.
컴퓨터 시스템(500)은 인간 액세스가능한 저장 디바이스들 및 그의 연관된 매체들, 예컨대 CD/DVD 등의 매체(521)를 갖는 CD/DVD ROM/RW(520)를 포함하는 광학 매체, 썸-드라이브(thumb-drive)(522), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(523), 테이프 및 플로피 디스크(묘사되지 않음)와 같은 레거시 자기 매체, 보안 동글(묘사되지 않음)과 같은 특수화된 ROM/ASIC/PLD 기반 디바이스들 등을 또한 포함할 수 있다.
본 기술분야의 통상의 디스크립터들은 또한, 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독가능 매체"가 송신 매체, 반송파들, 또는 다른 일시적 신호들을 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(500)은 하나 이상의 통신 네트워크(555)에 대한 네트워크 인터페이스(554)를 또한 포함할 수 있다. 하나 이상의 통신 네트워크(555)는 예를 들어 무선, 유선, 광학일 수 있다. 하나 이상의 통신 네트워크(555)는 추가로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연-허용(delay-tolerant) 등일 수 있다. 하나 이상의 통신 네트워크(555)의 예들은 로컬 영역 네트워크들, 예컨대 이더넷, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV 및 지상파 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크들, CANBus를 포함하는 차량 및 산업 등을 포함한다. 특정 네트워크들은 일반적으로 특정 범용 데이터 포트들 또는 주변 버스들(549)(예컨대, 예를 들어, 컴퓨터 시스템(500)의 USB 포트들)에 부착되는 외부 네트워크 인터페이스 어댑터들을 요구하며; 다른 것들은 일반적으로 아래에 설명되는 바와 같은 시스템 버스(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)로의 부착에 의해 컴퓨터 시스템(500)의 코어에 통합된다. 이들 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(500)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 단방향성 수신 전용(예를 들어, 브로드캐스트 TV), 단방향성 송신 전용(예를 들어, CANbus 대 특정 CANbus 디바이스들), 또는 예를 들어 로컬 영역 또는 광역 디지털 네트워크들을 사용하는 다른 컴퓨터 시스템들과의 양방향성일 수 있다. 위에서 설명한 바와 같은 네트워크들 및 네트워크 인터페이스들 각각에 대해 특정 프로토콜들 및 프로토콜 스택들이 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스들, 인간-액세스가능한 저장 디바이스들, 및 네트워크 인터페이스들은 컴퓨터 시스템(500)의 코어(540)에 부착될 수 있다.
코어(540)는 하나 이상의 중앙 처리 유닛(CPU)(541), 그래픽 처리 유닛(GPU)(542), 필드 프로그래머블 게이트 영역(FPGA)(543)의 형태로 된 특수화된 프로그래머블 처리 유닛, 특정 태스크들에 대한 하드웨어 가속기(544) 등을 포함할 수 있다. 이들 디바이스는, 판독 전용 메모리(ROM)(545), 랜덤 액세스 메모리(546), 내부 비-사용자 액세스가능 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(547)와 함께, 시스템 버스(548)를 통해 접속될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(548)는 추가적인 CPU들, GPU들 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스가능할 수 있다. 주변 디바이스들은 코어의 시스템 버스(548)에 직접, 또는 주변 버스(549)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다.
CPU들(541), GPU들(542), FPGA들(543), 및 가속기들(544)은, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(545) 또는 RAM(546)에 저장될 수 있다. 과도적인 데이터가 또한 RAM(546)에 저장될 수 있는 반면, 영구 데이터는, 예를 들어, 내부 대용량 스토리지(547)에 저장될 수 있다. 메모리 디바이스들 중 임의의 것에 대한 고속 저장 및 검색은, 하나 이상의 CPU(541), GPU(542), 대용량 스토리지(547), ROM(545), RAM(546) 등과 밀접하게 연관될 수 있는, 캐시 메모리의 사용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터 구현 동작들을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것들일 수 있거나, 또는 그것들은 컴퓨터 소프트웨어 기술분야의 디스크립터들에게 잘 알려져 있고 이용가능한 종류의 것일 수 있다.
제한이 아니라 예로서, 아키텍처를 갖는 컴퓨터 시스템(500) 및 구체적으로 코어(540)는 프로세서(들)(CPU들, GPU들, FPGA, 가속기들 등을 포함함)가 하나 이상의 유형의(tangible) 컴퓨터 판독가능 매체에 구현된 소프트웨어를 실행하는 결과로서 기능성을 제공할 수 있다. 그러한 컴퓨터 판독가능 매체는 위에 소개된 바와 같은 사용자-액세스가능한 대용량 스토리지뿐만 아니라, 코어-내부 대용량 스토리지(547) 또는 ROM(545)과 같은 비일시적인 본질의 것인 코어(540)의 특정 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어가 그러한 디바이스들에 저장되고 코어(540)에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 특정 필요에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(540) 및 구체적으로 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)로 하여금, RAM(546)에 저장된 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의된 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 그와 함께 동작할 수 있는, 회로(예를 들어: 가속기(544))에 하드와이어링되거나 다른 방식으로 구현된 로직의 결과로서 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독가능 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장한 회로(예컨대 집적 회로(IC)), 실행을 위한 로직을 구현한 회로, 또는 양자 모두를 포함할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시내용이 여러 예시적인 실시예들을 설명하였지만, 본 개시내용의 범위 내에 속하는 변경들, 치환들, 및 다양한 대체 균등물들이 존재한다. 따라서, 본 기술분야의 통상의 디스크립터들은, 비록 본 명세서에 명시적으로 도시되거나 설명되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 그것의 진의 및 범위 내에 있는, 다수의 시스템들 및 방법들을 고안할 수 있을 것이라는 점이 인정될 것이다.
Claims (20)
- 미디어 데이터를 수신하는 방법으로서,
세션 기반 디스크립션(session-based description)(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터(essential property descriptor)를 포함하는 미디어 프레젠테이션 디스크립션(media presentation description)(MPD) 파일을 수신하는 단계 - 상기 필수 프로퍼티 디스크립터는 자원을 요청하기 위해 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함하고, 상기 클래스는 요청된 자원의 타입을 식별함 - ;
상기 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 상기 클래스 및 상기 SBD 파일에 기초하여 상기 URL 요청을 생성하는 단계; 및
상기 URL 요청을 서버에 전송하여 상기 URL 요청의 클래스에 기초하여 상기 타입이 식별되는 자원을 요청하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 URL 요청의 클래스는 상기 URL 요청이 미디어 세그먼트 요청, XLink(extensible markup language linking language) 해상도 요청, MPD 요청, 콜백 이벤트에 의해 트리거되는 콜백 요청, 체인드-투 MPD에 대한 체이닝 요청(chaining request for a chained-to MPD), 또는 폴백 MPD에 대한 폴백 요청(fallback request for a fallback MPD) 중 하나인 것을 표시하는, 방법.
- 제1항에 있어서, 상기 생성하는 단계는:
상기 SBD 파일에 포함된 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 단계; 및
상기 제1 키-값 쌍에 기초하여 상기 URL 요청을 생성하는 단계를 포함하는, 방법. - 제3항에 있어서, 상기 복수의 키-값 쌍들은 상기 SBD 파일 내의 순서로 배열되고, 상기 복수의 키-값 쌍들 각각은 각자의 순서 번호를 갖고, 상기 SBD 파일은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하는지 여부를 표시하는 속성을 포함하는, 방법.
- 제4항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초한다는 것을 표시하고, 상기 선택하는 단계는:
상기 복수의 키-값 쌍들에서 제2 키-값 쌍을 결정하는 단계 - 상기 제2 키-값 쌍은 상기 URL 요청과 동일한 클래스를 갖는 이전 URL 요청을 생성하기 위해 사용됨 - ; 및
상기 제2 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 단계를 포함하는, 방법. - 제4항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하지 않는다는 것을 표시하고, 상기 선택하는 단계는:
상기 복수의 키-값 쌍들에서 제3 키-값 쌍을 결정하는 단계 - 상기 제3 키-값 쌍은 가장 최근의 이전 URL 요청을 생성하기 위해 사용됨 - ; 및
상기 제3 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 필수 프로퍼티 디스크립터에 포함된 상기 속성의 디폴트 값은 상기 URL 요청의 클래스가 미디어 세그먼트 요청 클래스라는 것을 표시하는, 방법.
- 미디어 데이터를 수신하기 위한 장치로서,
처리 회로를 포함하고,
상기 처리 회로는:
세션 기반 디스크립션(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터를 포함하는 미디어 프레젠테이션 디스크립션(MPD) 파일을 수신하고 - 상기 필수 프로퍼티 디스크립터는 자원을 요청하기 위해 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함하고, 상기 클래스는 요청된 자원의 타입을 식별함 - ;
상기 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 상기 클래스 및 상기 SBD 파일에 기초하여 상기 URL 요청을 생성하고;
상기 URL 요청을 서버에 전송하여 상기 URL 요청의 클래스에 기초하여 상기 타입이 식별되는 자원을 요청하도록 구성되는, 장치. - 제8항에 있어서, 상기 URL 요청의 클래스는 상기 URL 요청이 미디어 세그먼트 요청, XLink(extensible markup language linking language) 해상도 요청, MPD 요청, 콜백 이벤트에 의해 트리거되는 콜백 요청, 체인드-투 MPD에 대한 체이닝 요청, 또는 폴백 MPD에 대한 폴백 요청 중 하나인 것을 표시하는, 장치.
- 제8항에 있어서, 상기 처리 회로는:
상기 SBD 파일에 포함된 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하고;
상기 제1 키-값 쌍에 기초하여 상기 URL 요청을 생성하도록 추가로 구성되는, 장치. - 제10항에 있어서, 상기 복수의 키-값 쌍들은 상기 SBD 파일 내의 순서로 배열되고, 상기 복수의 키-값 쌍들 각각은 각자의 순서 번호를 갖고, 상기 SBD 파일은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하는지 여부를 표시하는 속성을 포함하는, 장치.
- 제11항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초한다는 것을 표시하고, 상기 처리 회로는:
상기 복수의 키-값 쌍들에서 제2 키-값 쌍을 결정하고 - 상기 제2 키-값 쌍은 상기 URL 요청과 동일한 클래스를 갖는 이전 URL 요청을 생성하기 위해 사용됨 - ;
상기 제2 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하도록 추가로 구성되는, 장치. - 제11항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하지 않는다는 것을 표시하고, 상기 처리 회로는:
상기 복수의 키-값 쌍들에서 제3 키-값 쌍을 결정하고 - 상기 제3 키-값 쌍은 가장 최근의 이전 URL 요청을 생성하기 위해 사용됨 - ;
상기 제3 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하도록 추가로 구성되는, 장치. - 제8항에 있어서, 상기 필수 프로퍼티 디스크립터에 포함된 상기 속성의 디폴트 값은 상기 URL 요청의 클래스가 미디어 세그먼트 요청 클래스라는 것을 표시하는, 장치.
- 명령어들을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 명령어들은, 미디어 데이터를 수신하기 위해 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금:
세션 기반 디스크립션(SBD) 파일을 표시하는 필수 프로퍼티 디스크립터를 포함하는 미디어 프레젠테이션 디스크립션(MPD) 파일을 수신하는 것 - 상기 필수 프로퍼티 디스크립터는 자원을 요청하기 위해 사용되는 URL(uniform resource locator) 요청에 대한 클래스를 표시하는 속성을 포함하고, 상기 클래스는 요청된 자원의 타입을 식별함 - ;
상기 필수 프로퍼티 디스크립터에 포함된 속성에 표시된 상기 클래스 및 상기 SBD 파일에 기초하여 상기 URL 요청을 생성하는 것; 및
상기 URL 요청을 서버에 전송하여 상기 URL 요청의 클래스에 기초하여 상기 타입이 식별되는 자원을 요청하는 것을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서, 상기 URL 요청의 클래스는 상기 URL 요청이 미디어 세그먼트 요청, XLink(extensible markup language linking language) 해상도 요청, MPD 요청, 콜백 이벤트에 의해 트리거되는 콜백 요청, 체인드-투 MPD에 대한 체이닝 요청, 또는 폴백 MPD에 대한 폴백 요청 중 하나인 것을 표시하는, 비일시적 컴퓨터 판독가능 저장 매체.
- 제15항에 있어서, 상기 저장된 명령어들은 상기 컴퓨터로 하여금:
상기 SBD 파일에 포함된 복수의 키-값 쌍들에서 제1 키-값 쌍을 선택하는 것; 및
상기 제1 키-값 쌍에 기초하여 상기 URL 요청을 생성하는 것을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제17항에 있어서, 상기 복수의 키-값 쌍들은 상기 SBD 파일 내의 순서로 배열되고, 상기 복수의 키-값 쌍들 각각은 각자의 순서 번호를 갖고, 상기 SBD 파일은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하는지 여부를 표시하는 속성을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
- 제18항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초한다는 것을 표시하고, 상기 저장된 명령어들은 상기 컴퓨터로 하여금:
상기 복수의 키-값 쌍들에서 제2 키-값 쌍을 결정하는 것 - 상기 제2 키-값 쌍은 상기 URL 요청과 동일한 클래스를 갖는 이전 URL 요청을 생성하기 위해 사용됨 - ; 및
상기 제2 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제18항에 있어서, 상기 SBD 파일에 포함된 속성은 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것이 상기 URL 요청의 클래스에 기초하지 않는다는 것을 표시하고, 상기 저장된 명령어들은 상기 컴퓨터로 하여금:
상기 복수의 키-값 쌍들에서 제3 키-값 쌍을 결정하는 것 - 상기 제3 키-값 쌍은 가장 최근의 이전 URL 요청을 생성하기 위해 사용됨 - ; 및
상기 제3 키-값 쌍의 순서 번호에 기초하여 상기 복수의 키-값 쌍들에서 상기 제1 키-값 쌍을 선택하는 것을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163134049P | 2021-01-05 | 2021-01-05 | |
US63/134,049 | 2021-01-05 | ||
US17/477,288 US11683355B2 (en) | 2021-01-05 | 2021-09-16 | Methods and apparatuses for dynamic adaptive streaming over HTTP |
US17/477,288 | 2021-09-16 | ||
PCT/US2021/052019 WO2022150073A1 (en) | 2021-01-05 | 2021-09-24 | Methods and apparatuses for dynamic adaptive streaming over http |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220131976A true KR20220131976A (ko) | 2022-09-29 |
KR102718059B1 KR102718059B1 (ko) | 2024-10-17 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
CN115462063B (zh) | 2024-06-14 |
US11683355B2 (en) | 2023-06-20 |
CN115462063A (zh) | 2022-12-09 |
JP7387209B2 (ja) | 2023-11-28 |
US20220217189A1 (en) | 2022-07-07 |
EP4085611A1 (en) | 2022-11-09 |
WO2022150073A1 (en) | 2022-07-14 |
JP2023520318A (ja) | 2023-05-17 |
EP4085611A4 (en) | 2023-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11930064B2 (en) | Query signaling in media presentation description | |
US11785067B2 (en) | Session-based information for dynamic adaptive streaming over HTTP | |
US11418561B2 (en) | Remote link validity interval in media streaming | |
US11451602B2 (en) | Methods and apparatuses for dynamic adaptive streaming over HTTP | |
KR20210118944A (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
US11533346B2 (en) | Methods and apparatuses for dynamic adaptive streaming over HTTP | |
KR102718059B1 (ko) | Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들 | |
JP7387209B2 (ja) | Http上の動的適応ストリーミングのための方法および装置 | |
US11520848B2 (en) | Methods and apparatuses for dynamic adaptive streaming over HTTP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |