KR20150083429A - Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 - Google Patents
Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 Download PDFInfo
- Publication number
- KR20150083429A KR20150083429A KR1020150000758A KR20150000758A KR20150083429A KR 20150083429 A KR20150083429 A KR 20150083429A KR 1020150000758 A KR1020150000758 A KR 1020150000758A KR 20150000758 A KR20150000758 A KR 20150000758A KR 20150083429 A KR20150083429 A KR 20150083429A
- Authority
- KR
- South Korea
- Prior art keywords
- media
- attribute
- type
- name
- metadata
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006978 adaptation Effects 0.000 claims description 80
- 239000012092 media component Substances 0.000 claims description 15
- 241000023320 Luma <angiosperm> Species 0.000 claims description 9
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 9
- 238000009877 rendering Methods 0.000 claims description 7
- 230000003190 augmentative effect Effects 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 3
- 238000002716 delivery method Methods 0.000 claims 11
- 230000003044 adaptive effect Effects 0.000 abstract description 13
- 238000012545 processing Methods 0.000 description 12
- 230000011664 signaling Effects 0.000 description 10
- 238000013499 data model Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 208000024891 symptom Diseases 0.000 description 2
- 208000010415 Low Vision Diseases 0.000 description 1
- 101100386623 Mus musculus Amd2 gene Proteins 0.000 description 1
- 206010047571 Visual impairment Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 208000016354 hearing loss disease Diseases 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000004303 low vision Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 208000029257 vision disease Diseases 0.000 description 1
- 230000004393 visual impairment Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25825—Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
-
- 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/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
-
- 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/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
미디어 콘텐츠에 대한 메타데이터를 사용하는 적응형 HTTP 스트리밍 서비스를 위한 방법 및 장치가 개시된다. 미디어 콘텐츠는 하나 이상의 주기들의 일련으로 구성된다. 각 주기는 하나 이상의 레프리젠테이션들을 포함할 수 있다. 메타데이터는 레프리젠테이션들 간의 관계를 설명하는 정보를 포함하며, 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 정보를 포함한다.
Description
본 발명의 기술 분야는 스트리밍 콘텐츠 제공 기술에 관한 것으로, 특히, 재생되는 비디오의 비트 깊이 표현에 관한 것이다.
스트리밍(streaming)은 소리 및 동영상 등의 멀티미디어 콘텐츠를 전송 및 재생하기 위한 방식 중 하나이다. 클라이언트는 스트리밍을 통해 콘텐츠을 수신하는 동시에 상기의 콘텐츠를 재생할 수 있다.
적응적 스트리밍 서비스는, 클라이언트의 요청 및 상기의 요청에 대한 서버의 응답으로 구성되는 통신 방식을 통해 스트리밍 서비스를 제공하는 것을 의미한다.
클라이언트는 적응적 스트리밍 서비스를 통해 자신의 환경(예컨대, 자신의 전송 채널)에 적합한 미디어 시퀀스를 요청할 수 있으며, 서버는 자신이 갖고 있는 다양한 퀄리티의 미디어 시퀀스들 중 클라이언트의 요청에 부합하는 미디어 시퀀스를 제공할 수 있다.
적응적 스트리밍 서비스는 다양한 프로토콜에 기반하여 제공될 수 있다. HTTP 적응적 스트리밍 서비스는 HTTP 프로코콜에 기반하여 제공되는 적응적 스트리밍 서비스를 의미한다. HTTP 적응적 스트리밍 서비스의 클라이언트는 HTTP 프로토콜을 사용하여 서버로부터 콘텐츠를 제공받을 수 있으며, 스트리밍 서비스와 관련된 요청을 서버에게 전송할 수 있다.
본 발명의 일 실시예는 접근성 정보를 포함하는 레프리젠테이션들을 사용하여 미디어 콘텐츠를 재생하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시예는 미디어 콘텐츠의 레프리젠테이션들 간의 관계를 설명하는 정보를 사용하여 미디어 콘텐츠를 재생하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시예는 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션들의 정보를 사용하여 미디어 콘텐츠를 재생하는 장치 및 방법을 제공할 수 있다.
일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계 및 상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계를 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상기 미디어 콘텐츠를 지각함에 있어서 곤란함을 겪는 장애인들을 지원하기 위한 정보를 포함하는, 미디어 제공 방법이 제공된다.
상기 레프리젠테이션의 미디어 컴포넌트는 장애자의 문제에 대처하기 위해 증대되고, 상기의 증대는 명암 대비의 증대 및 컬러의 보정의 증대 중 하나 이상인, 미디어 제공 방법.
상기 정보는 레프리젠테이션이 의도된 사용을 나타내고, 상기 의도된 사용은 수화, 자막, 캡션 및 설명 중 하나 이상인, 미디어 제공 방법.
상기 정보는 외부의 MPEG-21 디지털 아이템 적응(Digital Item Adaptation; DIA)로의 참조를 제공하는 속성을 포함할 수 있다.
다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계 및 상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계를 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 상기 메타데이터는 상기 하나 이상의 레프리젠테이션들 간의 관계를 설명하는 속성을 포함하는, 미디어 제공 방법이 제공될 수 있다.
상기 하나 이상의 레프리젠테이션들 중 제1 레프리젠테이션은 상기 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함할 수 있고, 상기 제1 레프리젠테이션은 상기 일부의 레프리젠테이션들 중 하나와 함께 사용될 수 있다.
상기 제1 레프리젠테이션은 오디오 설명을 위한 레프리젠테이션일 수 있다.
상기 일부의 레프리젠테이션들은 각각 비디오 컴포넌트의 레프리젠테이션일 수 있다.
상기 하나 이상의 레프리젠테이션들 중 제1 레프리젠테이션은 상기 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함할 수 있다.
상기 일부의 레프리젠테이션들 중 하나의 레프리젠테이션은 상기 제1 레프리젠테이션에 대체되어 사용될 수 있다.
또 다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계 및 상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계를 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션을 선택하기 위해 사용되는 비트 깊이 속성을 포함하는, 미디어 제공 방법이 제공될 수 있다.
상기 비트 깊이 속성은 시각적 콘텐츠의 루마/크로마 샘플을 나타내기 위한 비트들의 개수를 가리킬 수 있다.
또 다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진 및 상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진을 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상기 미디어 콘텐츠를 지각함에 있어서 곤란함을 겪는 장애인들을 지원하기 위한 정보를 포함하는, 단말이 제공될 수 있다.
또 다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진 및 상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진을 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 상기 메타데이터는 상기 하나 이상의 레프리젠테이션들 간의 관계를 설명하는 속성을 포함하는, 단말이 제공될 수 있다.
또 다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진 및 상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진을 포함하고, 각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션을 선택하기 위해 사용되는 비트 깊이 속성을 포함하는, 단말이 제공될 수 있다.
본 발명의 일 실시예에 따른 방법 및 장치는 접근성 정보를 포함하는 레프리젠테이션들을 사용하여 미디어 콘텐츠를 재생할 수 있다.
본 발명의 일 실시예에 따른 방법 및 장치는 미디어 콘텐츠의 레프리젠테이션들 간의 관계를 설명하는 정보를 사용하여 미디어 콘텐츠를 재생할 수 있다.
본 발명의 일 실시예에 따른 방법 및 장치는 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션들의 정보를 사용하여 미디어 콘텐츠를 재생할 수 있다.
도 1은 DASH의 고-레벨 데이터 모델을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 콘텐츠 처리 방법의 신호 흐름도이다.
도 3은 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.
도 4는 본 발명의 일 예에 따른 콘텐츠 디비전(division)의 계층 및 시그널링 정보의 레벨들(levels)을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 단말의 구조도이다.
도 2는 본 발명의 일 실시예에 따른 콘텐츠 처리 방법의 신호 흐름도이다.
도 3은 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.
도 4는 본 발명의 일 예에 따른 콘텐츠 디비전(division)의 계층 및 시그널링 정보의 레벨들(levels)을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 단말의 구조도이다.
2014년 10월 24일에 간행된 ISO/IEC DIS 23009-1의 "Dynamic adaptive streaming over HTTP (DASH) - Part 1: Media presentation description and segment formats/ Amd 2" 문서 전체가 본 출원서의 참고문헌으로 인용될 수 있으며, 하기의 실시예들을 설명하기 위해 참조될 수 있다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
하기에서, "명세한다"는 "나타낸다" 또는 "의미한다"와 동일한 의미로 사용될 수 있다. 용어 "유일 자원 지시기(Uniform Resource Locator; URL)" 및 "통합 자원 식별자(Uniform Resource Identifier; URI)"는 동일한 의미로 사용되며, 상호 대체될 수 있다.
특정한 요소의 인덱스가 1 내지 N 또는 0 내지 N인 경우, 상기의 요소는 하나 이상일 수 있다. N은 0 이상의 정수를 나타낼 수 있다.
하기에서, 실시예들에서 사용되는 용어의 일 예가 설명된다.
- HTTP 상의 동적 적응적 스트리밍(Dynamic Adaptive Streaming over HTTP; DASH)는 1) 표준(standard) HTTP 서버로부터 HTTP 클라이언트로의 미디어 콘텐츠의 전달을 가능하게 하고, 2) 표준 HTTP 캐쉬(cache)들에 의한 콘텐츠의 캐슁(caching)을 가능하게 하는 포맷(format)들을 명세(specifies)할 수 있다. 상기의 포멧은 XML 포멧 또는 이진(binary) 포멧일 수 있다.
- 미디어 콘텐츠는 하나의 미디어 콘텐츠 주기(period) 또는 미디어 콘텐츠 주기들의 계속되는(contiguous) 시퀀스(sequence)일 수 있다. 하기에서, 미디어 콘텐츠, 미디어 및 콘텐츠는 서로간에 동일한 의미로 사용될 수 있다. 미디어 콘텐츠는, 예컨대 비디오, 오디오 및 자막과 같은, 공통(common) 타임라인(timeline)을 갖는 미디어 콘텐츠 컴포넌트들의 집합일 수 있다. 또한, 미디어 컴포넌트들은 프로그램 또는 영화로서 어떻게(예를 들면, 개별적으로(individually), 결합하여(jointly) 또는 상호 배타적(mutually exclusive)으로 미디어 컴포넌트들이 상연(present)될 지에 대한 관계(relationships)를 가질 수 있다. 미디어 콘텐츠는 요청(demand)에 따른 콘텐츠 또는 라이브(live) 콘텐츠일 수 있다.
콘텐츠는 하나 이상의 인터벌(interval)들로 나뉘어질 수 있다. 즉, 콘텐츠는 하나 이상의 인터벌들을 포함할 수 있다. 이하, 인터벌 및 주기(period)는 동일한 의미로 사용될 수 있다. 특히, 주기는 3GPP(Generation Partnership Project) 적응적 HTTP 스트리밍에서 사용되는 용어일 수 있다. 주기는 미디어 프리젠테이션의 인터벌일 수 있다. 모든 주기들의 연속적인 시퀀스는 미디어 프리젠테이션을 구성할 수 있다.
하나 이상의 인터벌들은 기본적인 유닛일 수 있다. 하나 이상의 인터벌들은 메타데이터를 시그널링함에 의해 설명될 수 있다. 즉, 메타데이터는 하나 이상의 인터벌들 각각을 설명할 수 있다. 상기의 메타데이터는 후술될 MPD일 수 있다.
- 미디어 콘텐츠 컴포넌트는 할당된(assigned) 미디어 컴포넌트 타입(type)을 갖는 미디어 콘텐츠의 계속되는 컴포넌트일 수 있다. 미디어 콘텐츠 컴포넌트는 개별적인 미디어 스트림으로 인코드될 수 있다. 미디어 컴포넌트(media component)는, 예컨대 대역폭(bandwidth), 언어(language) 또는 해상도(resolution)와 같은, 특정한 속성(attribute)들을 갖는 오디오(audio), 비디오(video) 또는 자막(timed text)과 같은 개별(individual) 미디어 타입(type)들의 인코드된(encoded) 버전(version)일 수 있다.
- 미디어 스트림은 미디어 콘텐츠 컴포넌트의 인코드된 버전일 수 있다.
- 미디어 컴포넌트 타입은 오디오(audio), 비디오(video) 또는 텍스트(text)와 같은 미디어 콘텐츠의 단일한 타입일 수 있다.
- 미디어 프리젠테이션은 미디어 콘텐츠의 바운드되거나(bounded) 바운드되지 않은(unbounded) 프리젠테이션을 설립(establish)하는 데이터의 컬렉션일 수 있다. 미디어 프리젠테이션은 사용자에게 스트리밍 서비스를 제공하기 위해 DASH의 클라이언트가 접근 가능한 데이터의 컬렉션일 수 있다.
- 미디어 프리젠테이션 설명(Media Presentation Description; MPD)은 스트리밍 서비스를 제공하기 위한 미디어 프리젠테이션의 양식화된(formalize) 설명일 수 있다. MPD는, 세그먼트에 접근하기 위한 적합한 HTTP-URL을 구성하고, 사용자에게 스트리밍 서비스를 제공하기 위해, DASH의 클라이언트가 요구하는 메타데이터를 포함하는 문서일 수 있다. 미디어 프리젠테이션은, MPD의 가능한 업데이트들(possible updates)을 포함할 있고, MPD에 의해 설명될 수 있다.
MPD는 1) 세그먼트들을 접근하고, 2) 사용자에게 스트리밍 서비스를 제공하기 위해 적합한(appropriate) HTTP-URL들을 구성하기 위해 DASH 클라이언트에게 요구되는 메타데이터를 포함하는 문서일 수 있다. HTTP-URL들은 절대적이거나 상대적일 수 있다. MPD는 XML-문서일 수 있다.
MPD는 세그먼트를 위한 자원 식별자들을 알리기 위한 포맷을 정의할 수 있다. MPD는 미디어 프리젠테이션 내에서의 식별된 자원들에 대한 컨텍스트(context)를 제공할 수 있다. 자원 식별자들은 HTTP-URL일 수 있다. URL들은 바이트 범위(byte range) 속성에 의해 제한될 수 있다.
- 주기(period)는 미디어 프리젠테이션의 인터벌(interval)일 수 있다. 모든 주기들의 계속되는 시퀀스는 미디어 프리젠테이션을 구성할 수 있다. 즉, 미디어 프리젠테이션은 하나 이상의 주기들을 포함할 수 있다. 또는, 미디어 프리젠테이션은 하나 이상의 주기들의 시퀀스로 구성될 수 있다.
- 레프리젠테이션(representation)은 전달 포멧(delivery format)으로 된 하나 이상의 미디어 스트림들 컬렉션 및 캡슐화(encapsulation)일 수 있으며, 설명적인(descriptive) 메타데이터와 연관될 수 있다. 레프리젠테이션은 하나의 주기 내의 하나 이상의 미디어 콘텐츠 컴포넌트들의 구조화된(structured) 컬렉션일 수 있다. 즉, 레프리젠테이션은 정의된 주기 동안의 미디어 콘텐츠를 구성하는 미디어 콘텐츠 컴포넌트들의 완전한 집합 또는 부분 집합의 대안적인 선택사항들(alternative choices) 중 하나일 수 있다. 레프리젠테이션은 하나 이상의 미디어 스트림들을 포함할 수 있다.
레프리젠테이션은 주기(즉, 자신을 포함하는 주기)의 시작점에서 시작할 수 있고, 상기의 주기의 종료점까지 지속할 수 있다.
레프리젠테이션은, 비트레이트(bitrate), 해상도(resolution), 언어(language) 및 코덱(codec) 등과 같은 인코딩(encoding) 선택(choice)이 상이한, 미디어 콘텐츠 또는 미디어 콘텐츠의 부분집합의 대안적인(alternative) 선택(choice)들 중 하나일 수 있다.
MPD(또는, MPD 요소)는 클라이언트가 하나 이상의 레프리젠테이션을 선택하는 것을 가능하게 하는 설명적인 정보를 제공할 수 있다.
하기에서, 레프리젠테이션 및 미디어 레프리젠테이션은 동일한 의미로 사용될 수 있다.
하나의 인터벌에 대응하는 2 개 이상의 세그먼트들의 집합들이 존재할 수 있으며, 상기의 집합이 레프리젠테이션 또는 대안(alternative)으로 명명될 수 있다.
- 세그먼트(segment)는 정의된 포멧을 갖는 MPD 내의 최소 접근가능한 유닛일 수 있다. 하기에서, 세그먼트 및 미디어 세그먼트는 동일한 의미로 사용될 수 있다.
각 인터벌은 세그먼트(segment)들로 나뉘어질 수 있다. 하기에서, 세그먼트 및 프래그먼트(fragment)는 동일한 의미로 사용될 수 있다. 세그먼트는 3GPP(Generation Partnership Project) 적응적 HTTP 스트리밍의 용어일 수 있다.
세그먼트는, 예컨대 RFC 2616에서 정의된, HTTP-URL에 대한 HTTP/1.1 GET 요청(또는, 바이트 범위(range)에 의해 가리켜진(indicated) 일부에 대한 GET 요청)에 대한 응답(response)의 객체(entity) 바디(body)를 의미할 수 있다.
단말은, 수신된 바이트들(즉, 세그먼트)을 사용하여 미디어 콘텐츠를 재생할 수 있다.
- 서브-세그먼트는 세그먼트 레벨에서의 세그먼트 인덱스(index)에 의해 인덱스될 수 있는 세그먼트들 내의 가장 작은(smallest) 유닛(unit)을 의미할 수 있다.
- 서브-레프리젠테이션(sub-representation)은 전체 주기에서 상연된 MPD 내에서 설명된 레프리젠테이션의 일부일 수 있다.
- 임의 접근 포인트(Random Access Point; RAP)는 미디어 세그먼트 내의 특정한 위치이다. RAP는 단지 미디어 세그먼트 내에 포함된 정보만을 사용하여 RAP의 위치로부터 계속하여 재생(playback)을 시작할 수 있는 위치인 것으로 식별된다.
HTTP 상의 동적 적응적 스트리밍(Dynamic Adaptive Streaming over HTTP; DASH)는 미디어 콘텐츠의 전달을 위한 미디어-스트리밍 모델을 제공할 수 있다. 클라이언트는 상기의 전달의 세션을 독점적으로 제어할 수 있다. 클라이언트는 HTTP 프로토콜을 사용하여 DASH-특유의 기능들을 갖지 않는 표준의 웝 서버에게 데이터를 요청할 수 있다. 따라서, DASH 표준은 DASH 미디어 프리젠테이션을 제공하기 위해 사용되는 데이터 포멧에 초점이 맞춰질 수 있다.
미디어 콘텐츠의 인코드되고 전달가능한 버전들의 컬렉션 및 이러한 버전들에 대한 적절한 설명은 미디어 프리젠테이션을 형성할 수 있다. 미디어 콘텐츠는 시간에 따라 계속되는 하나 이상의 미디어 콘텐츠 주기들로 구성될 수 있다. 각 미디어 콘텐츠 주기는 하나 이상의 미디어 콘텐츠 컴포넌트들로 구성될 수 있다. 예컨대, 다양한 언어로 된 오디오 컴포넌트들 및 비디오 컴포넌트가 하나 이상의 미디어 콘텐츠 컴포넌트들의 예가 될 수 있다. 각 미디어 콘텐츠 컴포넌트에게는 미디어 콘텐츠 컴포넌트 타입이 할당될 수 있다. 미디어 콘텐츠 컴포넌트 타입의 예로 오디오 또는 비디오가 있을 수 있다.
각 미디어 콘텐츠 컴포넌트는 하나 이상의 인코드된 버전을 가질 수 있다. 미디어 콘텐츠 컴포넌트의 인코드된 버전은 미디어 스트림으로 명명될 수 있다. 각 미디어 스트림은 미디어 콘텐츠, 미디어 콘텐츠 주기 또는 미디어 스트림의 인코딩을 위해 사용된 미디어 콘텐츠의 속성을 상속받을 수 있다. 또한, 미디어 스트림은, 예컨대 서브-샘플링, 코덱 파라미터(parameter), 인코딩 비트레이트 등과 같은 인코딩 프로세스의 속성을 할당 받을 수 있다. 따라서, 메타데이터는 미디어 콘텐츠 컴포넌트들 및 미디어 스트림들에 대한 정적 또는 동적인 선택에 따라 변경될 수 있다.
도 1은 DASH의 고-레벨 데이터 모델을 나타낸다.
DASH는 도 1에서 도시된 것과 같은 계층적인 데이터 모델에 기반할 수 있다.
DASH 미디어 프리젠테이션은 MPD 문서에 의해 설명될 수 있다. MPD는 시간에 따른 주기들의 시퀀스를 설명할 수 있다. 주기들의 시퀀스는 미디어 프리젠테이션을 만들 수 있다. 주기는 일반적으로 미디어 콘텐츠의 인코드된 버전들의 일관된(consistent) 집합이 가용한 동안의 미디어 콘텐츠 주기를 나타낼 수 있다. 즉, 하나의 주기 동안에는 비트레이트(bitrate)들, 언어(language), 캡션(caption) 및 서브타이틀(subtitle) 등이 변경되지 않을 수 있다.
주기는 하나 이상의 어댑테이션 세트(Adapatation Set)들을 포함할 수 있다. 어댑테이션 세트는 하나 이상의 미디어 콘텐츠 컴포넌트들의 교체가능한 인코드된 버전들의 집합을 나타낼 수 있다. 예컨대, 주 비디오 컴포넌트에 대한 하나의 어댑테이션 세트가 있을 수 있고, 주 오디오 컴포넌트에 대한 분리된 하나의 어댑테이션 세트가 있을 수 있다. 예컨대, 캡션 및 오디오 설명과 같은, 다른 가용한 재료(material)가 있다면, 상기의 다른 가용한 재료는 분리된 어댑테이션 세트를 가질 수 있다.
어댑테이션 세트는 하나 이상의 레프리젠테이션들을 포함할 수 있다. 레프리젠테이션은 하나 이상의 미디어 콘텐츠 컴포넌트들의 전달가능한 인코드된 버전을 설명할 수 있다. 레프리젠테이션은 하나 이상의 미디어 스트림들을 포함할 수 있다. 어댑테이션 세트 내의 임의의 단일한 레프리젠테이션은 포함된 미디어 콘텐츠 컴포넌트들을 렌더(render)하기에 충분할 수 있다. 일반적으로 클라이언트는 하나의 주기 내에서, 네트워크 상태(condition) 또는 다른 팩터(factor)들에 적응(adapt)하기 위해, 하나의 레프리젠테이션으로부터 다른 레프리젠테이션으로 스위치할 수 있다. 클라이언트는 클라이언트 자신이 지원하지 않거나, 다른 이유에 의해 적합하지 않은 코덱(codec) 또는 다른 렌더링(rendering) 기술들에 의존하는 레프리젠테이션을 묵살(ignore)할 수 있다.
레프리젠테이션 내에서, 콘텐츠는 시간에 따라 세그먼트들로 분리될 수 있다. 즉, 레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다. 세그먼트는, MPD에서 나타나는, 데이터의 기본 유닛일 수 있다. 각 세그먼트의 URL이 제공될 수 있다. 세그먼트의 URL이 제공된다는 것은, 세그먼트가 단일한 HTTP 요청에 의해 추출(retrieve)될 수 있는 데이터의 최대 유닛이라는 것을 의미할 수 있다. 한편, MPD는 URL과 함께 상기의 URL의 바이트 범위(byte range)를 포함할 수 있다. 따라서, 세그먼트는 다른 더 큰 자원의 바이트 범위 내에 포함될 수도 있다.
하기에서, 전술된 데이터 모델의 구성 요소들 간의 관계가 설명된다.
- MPD는 하나 이상의 주기들의 연쇄를 포함할 수 있다.
- 각 주기들은 하나 이상의 어댑테이션 세트들을 포함할 수 있다. 어댑테이션 세트가 하나 이상의 미디어 콘텐츠 컴포넌트들을 포함하면, 각 미디어 콘텐츠 컴포넌트는 개별적으로 정의될 수 있다.
- 각 어댑테이션 세트는 하나 이상의 레프리젠테이션들을 포함할 수 있다.
- 각 레프리젠테이션은 하나 이상의 서브-레프리젠테이션들을 포함할 수 있다.
- 각 레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다.
- 세그먼트는 미디어 데이터 및/또는 세그먼트를 포함하는 미디어 콘텐츠를 접근, 디코드 및 상연하기 위한 메타데이터를 포함할 수 있다.
- 어댑테이션 세트, 레프리젠테이션 및 서브-레프리젠테이션은 공통 속성 및 요소를 공유할 수 있다.
- 각 세그먼트는 하나 이상의 서브세그먼트들을 포함할 수 있다.
MPD를 나타내는 MPD 문서는 MPD 요소를 포함할 수 있다.
하기의 표 1은 일 예에 따른 MPD의 XML 스키마를 나타낼 수 있다.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:mpeg:DASH:schema:MPD:2011" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="urn:mpeg:DASH:schema:MPD:2011"> <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.w3.org/1999/xlink.xsd"/> <xs:annotation> <xs:appinfo>Media Presentation Description</xs:appinfo> <xs:documentation xml:lang="en"> This Schema defines the Media Presentation Description for MPEG-DASH. </xs:documentation> </xs:annotation> <!-- MPD: main element --> <xs:element name="MPD" type="MPDtype"/> ... </xs:schema> |
표 1은 MPD의 XML 스키마의 초기 일부를 나타낼 수 있다. 상기의 초기 일부는 네임스페이스(namespace) 및 다른 정의들을 포함할 수 있다.
지역(local) MPD로부터 원격(remote) 요소들을 참조하기 위한 메커니즘이 정의될 수 있다. 1) 제한된 신택스 및 시맨틱을 갖고, 2) 프로세싱 모델을 갖는 W3C XLINK 단순(simple) 링크의 부분 집합이 정의될 수 있다.
ISO/IEC 23009의 일부로서 사용되는 XLINK 속성들은 하기와 같을 수 있다.
- xlink:type 속성은 사용되는 W3C XLINK의 타입을 정의할 수 있다.
- xlink:href 속성은 IETF RFC 3986에서 정의된 것과 같이, URI를 사용하여 원격 요소를 식별할 수 있다.
- xlink:show 속성은 W3C XLINK에서 정의된 것과 같이, MPD 내에서 일단 원격 요소가 역참조(deference)되었을 때의 희망된(desired) 행위(behavior)를 정의할 수 있다.
- xlink:actuate 속성은 W3C XLINK에서 정의된 것과 같이, MPD 내에서 원격 객체가 피참조되는 희망된 타이밍(timing)을 정의할 수 있다.
하기의 표 2는 일 예에 따른 XLINK의 XML 스키마를 나타낼 수 있다.
<?xml version='1.0' encoding='UTF-8'?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"> <xs:attribute name="type" type="xs:token" fixed="simple"/> <xs:attribute name="href" type="xlink:hrefType"/> <xs:simpleType name="hrefType"> <xs:restriction base="xs:anyURI"/> </xs:simpleType> <xs:attribute name="show" type="xs:token" fixed="embed"/> <xs:attribute name="actuate" type="xlink:actuateType" default="onRequest"/> <xs:simpleType name="actuateType"> <xs:restriction base="xs:token"> <xs:enumeration value="onLoad"/> <xs:enumeration value="onRequest"/> </xs:restriction> </xs:simpleType> </xs:schema> |
상기의 스키마에서, 각 요소 또는 각 속성의 네임스페이스, 명칭, 타입 및 디폴트 값이 설명될 수 있다. 또한, 요소들 및 속성들 간의 계층 관계가 설명될 수 있다.
xlink:href 속성에서 URI 참조를 처리하기 위한 규칙은 하기와 같을 수 있다.
- 해결(resolve)될 수 없는 원격 요소로의 URI 참조는 유효하지 않은(invalid) 참조로 취급(treat)될 수 있고, MPD를 유효하지 않게 할 수 있다(invalidate).
- 주어진 참조에 대해 부적합한 타겟(target)인 원격 요소로의 URI 참조는 유효하지 않은 참조로 취급될 수 있고, MPD를 유효하지 않게 할 수 있다.
- 직접적 또는 간접적으로 스스로를 참조하는 URI 참조는 유효하지 않은 순환 참조로 취급될 수 있고, MPD를 유효하지 않게 할 수 있다.
- 원격 요소로의 임의의 참조는 HTTP-URL일 수 있다.
- URI 참조가 상대적(relative)이면, 참조 해(reference resolution)가 적용될 수 있다.
하기에서 MPD 요소의 시맨틱이 설명된다.
1) MPD 요소는 하기와 같은 속성을 가질 수 있다.
- id 속성은 미디어 프리젠테이션의 식별자를 명세할 수 있다. id 속성은 발행(publish)되는 미디이 프리젠테이션 내의 범위 내에서 고유한 식별자일 수 있다.
- type 속성은 MPD가 갱신될 수 있는지 여부를 명세할 수 있다.
- mediaPresentationDuration 속성은 전체 미디어 프리젠테이션의 지속시간을 명세할 수 있다. 만약, mediaPresentationDuration 속성이 부재이면, 미디어 프리젠테이션의 지속시간은 알려지지 않을 수 있다(unknown).
- maxSegmentDuration 속성은 미디어 프리젠테이션 내의 임의의 레프리젠테이션 내의 임의의 세그먼트의 최대 지속시간을 명세할 수 있다.
2) MPD 요소는 하기와 같은 요소를 가질 수 있다.
- ProgramInformation 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 프로그램에 대한 설명적인 정보를 명세할 수 있다. N의 인덱스를 가질 수 있다는 것은, 요소의 인스턴스들의 개수가 무제한까지 될 수 있음을 의미할 수 있다. 0의 인덱스를 가질 수 있다는 것은, 요소가 선택적인(optional) 것을 의미할 수 있다. 최소 1의 인덱스를 가질 수 있다는 것은, 요소가 의무적인(mandatory) 것을 나타낼 수 있다. 즉, 인덱스의 범위는 발생횟수(occurrence) 또는 카디널리티(cardinality)를 나타낼 수 있다.
- BaseURL 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 참조 해(reference resolution) 및 대안적인(alternative) URL 선택을 위해 사용될 수 있는 베이스 URL을 명세할 수 있다.
- Location 요소는, 0 내지 N의 인덱스를 가질 수 있으며, MPD가 가용한 위치를 명세할 수 있다.
- Period 요소는, 1 내지 N의 인덱스를 가질 수 있으며, 주기의 정보를 명세할 수 있다.
- Metrics 요소는, 0 내지 N의 인덱스를 가질 수 있으며, DASH 메트릭스(Metrics)를 명세할 수 있다.
하기의 표 3은 일 예에 따른 MPD 요소의 XML 신택스를 나타낼 수 있다.
<!-- MPD Type --> <xs:complexType name="MPDtype"> <xs:sequence> <xs:element name="ProgramInformation" type="ProgramInformationType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/> <xs:element name="Metrics" type="MetricsType" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:string"/> <xs:attribute name="profiles" type="xs:string"/> <xs:attribute name="type" type="PresentationType" default="static"/> <xs:attribute name="availabilityStartTime" type="xs:dateTime"/> <xs:attribute name="availabilityEndTime" type="xs:dateTime"/> <xs:attribute name="mediaPresentationDuration" type="xs:duration"/> <xs:attribute name="minimumUpdatePeriod" type="xs:duration"/> <xs:attribute name="minBufferTime" type="xs:duration" use="required"/> <xs:attribute name="timeShiftBufferDepth" type="xs:duration"/> <xs:attribute name="suggestedPresentationDelay" type="xs:duration"/> <xs:attribute name="maxSegmentDuration" type="xs:duration"/> <xs:attribute name="maxSubsegmentDuration" type="xs:duration"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <!-- Presentation Type enumeration --> <xs:simpleType name="PresentationType"> <xs:restriction base="xs:string"> <xs:enumeration value="static"/> <xs:enumeration value="dynamic"/> </xs:restriction> </xs:simpleType> |
미디어 프리젠테이션은 하나 이상의 주기들을 포함할 수 있다. 주기는 MPD 요소 내의 Period 요소에 의해 정의될 수 있다.
주기는, 정규(regular) 주기 및 조기 가용(early available) 주기로 구분될 수 있다. 정규 주기의 PeriodStart 시각은 하기와 같이 정의될 수 있다.
- 주기 요소 내에 start 속성이 있는 경우, 주기는 정규 주기일 수 있으며, PeriodStart 시각은 start 속성의 값과 동일할 수 있다.
- 주기 요소 내에 start 속성이 부재이고, 이전의 Period 요소가 duration 속성을 포함하는 경우, 주기는 정규 주기일 수 있다. 주기의 시작 시간 PeriodStart는 이전 주기의 시작 시각 및 이전 주기의 duration 속성의 값의 합일 수 있다.
- 1) start 속성이 부재이고, 2) Period 요소가 MPD 내에서의 첫 번째이고, 3) MPD의 타입 속성이 '정적(static)'이면 PeriodStart 시각은 0이 될 수 있다.
- 1) start 속성이 부재이고, 2) 이전의 Period 요소가 duration 속성을 포함하지 않거나, Period 요소가 MPD 내에서의 첫 번째이고, 3) MPD의 타입 속성이 '동적(dynamic)'이면, 주기는 조기 가용 주기일 수 있다.
하기에서 Period 요소의 시맨틱이 설명된다.
1) Period 요소는 하기와 같은 속성을 가질 수 있다.
- xlink:href 속성은 외부의 Period 요소로의 참조를 명세할 수 있다.
- xlink:actuate 속성은 프로세싱 명령들을 명세할 수 있다. link:actuate 속성의 값은 "onload" 또는 "onRequest"일 수 있다.
- id 속성은 주기의 식별자를 명세할 수 있다. id 속성은 미디이 프리젠테이션 내의 범위 내에서 고유한 식별자일 수 있다.
- start 속성은 주기의 PeriodStart 시각을 명세할 수 있다. PeriodStart 시각은 각 미디어 세그먼트의 MPD 시작 시각을 결정하기 위한 앵커(anchor)로서 사용될 수 있으며, 미디어 프리젠테이션 타임라인 내의 각 접근 유닛의 프리젠테이션 시각을 결정하기 위해 사용될 수 있다.
- duration 속성은 다음 주기의 PeriodStart 시각을 결정하기 위한 주기의 지속시간을 명세할 수 있다.
2) Period 요소는 하기와 같은 요소를 가질 수 있다.
- BaseURL 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 참조 해 및 대안적인 URL 선택을 위해 사용될 수 있다.
- AdaptationSet 요소는, 1 내지 N의 인덱스를 가질 수 있으며, 어댑테이션 세트의 정보를 명세할 수 있다.
- Subset 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 서브세트를 명세할 수 있다.
하기의 표 4는 일 예에 따른 Period 요소의 XML 신택스를 나타낼 수 있다.
<!-- Period --> <xs:complexType name="PeriodType"> <xs:sequence> <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> <xs:element name="AdaptationSet" type="AdaptationSetType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Subset" type="SubsetType" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute ref="xlink:href"/> <xs:attribute ref="xlink:actuate" default="onRequest"/> <xs:attribute name="id" type="xs:string" /> <xs:attribute name="start" type="xs:duration"/> <xs:attribute name="duration" type="xs:duration"/> <xs:attribute name="bitstreamSwitching" type="xs:boolean" default="false"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
각 주기는 하나 이상의 어댑테이션 세트들을 포함할 수 있다. 어댑테이션 세트는 Period 요소 내에 포함된 AdaptationSet 요소에 의해 설명될 수 있다.
어댑테이션 세트는 하나 이상의 미디어 컴포넌트들의 대안적인 인코딩들을 포함할 수 있다. 각 대안적인 인코딩은 레프리젠테이션 내에 포함될 수 있다. 하나의 어댑테이션 세트 내에 포함된 하나 이상의 레프리젠테이션들은 동일한 미디어 콘텐츠 컴포넌트를 나타낼 수 있으며, 지각적으로(perceptually) 동일한 것으로 간주되는 하나 이상의 미디어 스트림들을 포함할 수 있다.
하나 이상의 레프리젠테이션들은 상기의 하나 이상의 레프리젠테이션 내에서 상연된 미디어 콘텐츠 컴포넌트 프로퍼티(property)들에 따라 어댑테이션 세트 내에서 배열될 수 있다. 미디어 콘텐츠 컴포넌트 프로퍼티는, 1) lang 속성에 의해 설명되는 언어, 2) contentType 속성에 의해 설명되는 미디어 콘텐츠 타입, 3) par 속성에 의해 설명되는 사진 길이 비율(picture aspect ratio), 4) Role 요소에 의해 설명되는 롤(role) 프로퍼티, 5) Accessibility 요소에 의해 설명되는 접근성 프로퍼티, 6) ViewPoint 요소에 의해 설명되는 뷰포인트 프로퍼티 및 7) Rating 요소에 의해 설명되는 등급 속성 등을 포함할 수 있다.
AdaptationSet 요소는 어댑테이션 세트가 포함하는 하나 이상의 레프리젠테이션들에 연관된 요소들 및 속성들의 기본 값들을 포함할 수 있다. AdaptationSet 요소 및 Representation 요소에 공통적으로 가능한 상연(present) 요소들 및 속성들의 목록(list)이 하기에서 설명된다.
Adaptation 요소는 어댑테이션 세트가 포함하는 하나 이상의 레프리젠테이션들에 연관된 bandwidth 속성, width 속성, height 속성 및 framerate 속성에 대한 범위의 설명을 지원할 수 있다. 상기의 설명은 어댑테이션 세트가 포함하는 하나 이상의 레프리젠테이션들 모두에 대한 모든 값들의 요약(summary)을 제공할 수 있다. 어댑테이션 세트가 포함하는 하나 이상의 레프리젠테이션들은 어댑테이션 세트 내에서 정의된 범위 밖의 값을 갖지 못할 수 있다.
어댑테이션 세트는 group 속성을 사용함으로써 그룹들로 분류될 수 있다.
하기에서 AdaptationSet 요소의 시맨틱이 설명된다.
1) AdaptationSet 요소는 하기와 같은 속성을 가질 수 있다.
- xlink:href 속성은 외부의 AdaptationSet 요소로의 참조를 명세할 수 있다.
- xlink:actuate 속성은 프로세싱 명령들을 명세할 수 있다. link:actuate 속성의 값은 "onload" 또는 "onRequest"일 수 있다.
- id 속성은 주기의 범위 내에서 어댑테이션 세트의 식별자를 명세할 수 있다. id 속성은 주기를 포함하는 내의 범위 내에서 고유한 식별자일 수 있다. id 속성은 원격 요소 내에서는 부재일 수 있다.
- group 속성은 주기의 범위 내에서 고유한, 그룹에 대한 식별자일 수 있다.
- lang 속성은 어댑테이션 세트의 언어 코드(들)을 선언할 수 있다. IETF RFC 5646에 따른 신택스 및 시맨틱이 사용될 수 있다.
- contentType 속성은 어댑테이션 세트의 미디어 콘텐츠 컴포넌트 타입을 명세할 수 있다. 최고-레벨 콘텐츠-타입인 "type"의 값은 RFC1521에서 정의될 수 있다.
- par 속성은 사진 길이 비율을 명세할 수 있다. par 속성은 2 개의 정수들을 포함할 수 있다. par 속성이 존재할 경우, 레프리젠테이션들의 width 속성 및 height 속성도 존재할 수 있다.
- minBandWidth 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최소 bandwidth 속성 값을 명세할 수 있다.
- maxBandWidth 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최대 bandwidth 속성 값을 명세할 수 있다.
- minWidth 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최소 width 속성 값을 명세할 수 있다.
- maxWidth 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최대 width 속성 값을 명세할 수 있다.
- minHeight 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최소 height 속성 값을 명세할 수 있다.
- maxHeight 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최대 height 속성 값을 명세할 수 있다.
- minFrameRate 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최소 frameRate 속성 값을 명세할 수 있다.
- maxFrameRate 속성은 어댑테이션 세트 내의 모든 레프리젠테이션들의 최대 frameRate 속성 값을 명세할 수 있다.
2) AdaptationSet 요소는 하기와 같은 요소를 가질 수 있다.
- Accessibility 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 접근성 스킴에 대한 정보를 명세할 수 있다.
- Role 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 롤 주석(annotation) 스킴에 대한 정보를 명세할 수 있다.
- Rating 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 등급(rating) 스킴에 대한 정보를 명세할 수 있다.
- Viewpoint 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 뷰포인트 주석 스킴에 대한 정보를 명세할 수 있다.
- ContentComponent 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 어댑테이션 세트가 포함하는 미디어 콘텐츠 컴포넌트의 프로퍼티들을 명세할 수 있다.
- BaseURL 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 참조 해 및 대안적인 URL 선택을 위해 사용될 수 있다.
- Representation 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 레프리젠테이션을 명세할 수 있다. 각 어댑테이션 세트 내에는 적어도 하나의 레프리젠테이션 요소가 있을 수 있다. Representation 요소는 원격 요소의 일부일 수 있다.
하기의 표 5는 일 예에 따른 AdaptationSet 요소의 XML 신택스를 나타낼 수 있다.
<!-- Adaptation Set --> <xs:complexType name="AdaptationSetType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:sequence> <xs:element name="Accessibility" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Role" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Rating" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Viewpoint" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="ContentComponent" type="ContentComponentType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> <xs:element name="Representation" type="RepresentationType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute ref="xlink:href"/> <xs:attribute ref="xlink:actuate" default="onRequest"/> <xs:attribute name="id" type="xs:unsignedInt"/> <xs:attribute name="group" type="xs:unsignedInt"/> <xs:attribute name="lang" type="xs:language"/> <xs:attribute name="contentType" type="xs:string"/> <xs:attribute name="par" type="xs:string"/> <xs:attribute name="minBandwidth" type="xs:unsignedInt"/> <xs:attribute name="maxBandwidth" type="xs:unsignedInt"/> <xs:attribute name="minWidth" type="xs:unsignedInt"/> <xs:attribute name="maxWidth" type="xs:unsignedInt"/> <xs:attribute name="minHeight" type="xs:unsignedInt"/> <xs:attribute name="maxHeight" type="xs:unsignedInt"/> <xs:attribute name="minFrameRate" type="xs:string"/> <xs:attribute name="maxFrameRate" type="xs:string"/> <xs:attribute name="segmentAlignment" type="ConditionalUintType" default="false"/> <xs:attribute name="subsegmentAlignment" type="ConditionalUintType" default="false"/> <xs:attribute name="subsegmentStartsWithSAP" type="SAPType" default="0"/> <xs:attribute name="bitstreamSwitching" type="xs:boolean"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Conditional Unsigned Integer (unsignedInt or boolean) --> <xs:simpleType name="ConditionalUintType"> <xs:union memberTypes="xs:unsignedInt xs:boolean"/> </xs:simpleType> |
어댑테이션 세트는 하나 이상의 미디어 콘텐츠 컴포넌트들을 포함할 수 있다. 각 미디어 콘텐츠 컴포넌트의 프로퍼티들은 ContentComponet 요소에 의해 설명될 수 있으며, 어댑테이션 세트 내에 하나의 미디어 콘텐츠 컴포넌트가 존재하면 AdaptationSet 요소에 의해 직접적으로 설명될 수 있다.
하기에서 ContentComponent 요소의 시맨틱이 설명된다.
1) ContentComponent 요소는 하기와 같은 속성을 가질 수 있다.
- id 속성은 미디어 컴포넌트의 식별자를 명세할 수 있다. id 속성은 어댑테이션 세트의 범위 내에서 고유할 수 있다.
- lang 속성은 미디어 콘텐츠 컴포넌트의 언어 코드(들)을 선언할 수 있다. IETF RFC 5646에 따른 신택스 및 시맨틱이 사용될 수 있다.
- contentType 속성은 미디어 콘텐츠 컴포넌트의 타입을 명세할 수 있다. 최고-레벨 콘텐츠-타입인 "type"의 값은 RFC1521에서 정의될 수 있다.
- par 속성은 사진 길이 비율을 명세할 수 있다. par 속성은 2 개의 정수들을 포함할 수 있다. par 속성이 존재할 경우, 레프리젠테이션들의 width 속성 및 height 속성도 존재할 수 있다.
2) ContentComponent 요소는 하기와 같은 요소를 가질 수 있다.
- Accessibility 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 접근성 스킴에 대한 정보를 명세할 수 있다.
- Role 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 롤 주석(annotation) 스킴에 대한 정보를 명세할 수 있다.
- Rating 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 등급(rating) 스킴에 대한 정보를 명세할 수 있다.
- Viewpoint 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 뷰포인트 주석 스킴에 대한 정보를 명세할 수 있다.
하기의 표 6은 일 예에 따른 ContentComponent 요소의 XML 신택스를 나타낼 수 있다.
<!-- Content Component --> <xs:complexType name="ContentComponentType"> <xs:sequence> <xs:element name="Accessibility" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Role" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Rating" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Viewpoint" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:unsignedInt"/> <xs:attribute name="lang" type="xs:language"/> <xs:attribute name="contentType" type="xs:string"/> <xs:attribute name="par" type="xs:string"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
레프리젠테이션은 Representation 요소에 의해 설명될 수 있다. AdaptationSet 요소는 하나 이상의 Representation 요소들을 포함할 수 있다.
레프리젠테이션은 정의된 주기 동안의 미디어 콘텐츠를 구성하는 미디어 콘텐츠 컴포넌트들의 완전한 세트 또는 서브세트의 대안적인 선택들 중 하나일 수 있다.
레프리젠테이션은 주기의 PeriodStart의 시작에서 시작할 수 있고, 주기의 끝(end)까지 계속될 수 있다. 주기의 끝은 다음 주기의 시작 또는 미디어 프리젠테이션의 끝일 수 있다.
각 레프리젠테이션은 하나 이상의 미디어 스트림들을 포함할 수 있다. 각 미디어 스트림은 미디어 콘텐츠 컴포넌트의 인코드된 버전일 수 있다.
레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다.
하기에서 Representation 요소의 시맨틱이 설명된다.
1) Representation 요소는 하기와 같은 속성을 가질 수 있다.'
- id 속성은 레프리젠테이션의 식별자를 명세할 수 있다. id 속성은, 레프리젠테이션이 동일한 주기 내의 다른 레프리젠테이션과 기능적으로 동일하지 않으면, 주기의 범위 내에서 고유할 수 있다. id 속성은 공백(whitespace) 문자를 포함하지 않을 수 있다.
- bandwidth 속성은 레프리젠테이션의 데이터 비율 및 데이터 비율 분산(variation)의 경계를 명세할 수 있다.
- qualityRanking 속성은, 동일한 어댑테이션 세트 내의 다른 레프리젠테이션들에 상대적인, 레프리젠테이션의 품질(quality) 랭킹을 명세할 수 있다.
- dependencyID 속성은 디코딩 및/또는 프리젠테이션 프로세스에 있어서 의존하는 모든 보완적인(complementary) 레프리젠테이션들을 명세할 수 있다. dependencyID 속성은 id 속성들의 값들의 공백으로 분리된 목록일 수 있다.
2) Representation 요소는 하기와 같은 요소를 가질 수 있다.
- BaseURL 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 참조 해 및 대안적인 URL 선택을 위해 사용될 수 있다.
- SubRepresentation 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 레프리젠테이션 내에 임베드된 서브-레프리젠테에션에 대한 정보를 명세할 수 있다.참조 해 및 대안적인 URL 선택을 위해 사용될 수 있다.
하기의 표 7은 일 예에 따른 Representation 요소의 XML 신택스를 나타낼 수 있다.
<!-- Representation --> <xs:complexType name="RepresentationType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:sequence> <xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SubRepresentation" type="SubRepresentationType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SegmentBase" type="SegmentBaseType" minOccurs="0"/> <xs:element name="SegmentList" type="SegmentListType" minOccurs="0"/> <xs:element name="SegmentTemplate" type="SegmentTemplateType" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="bandwidth" type="xs:unsignedInt" use="required"/> <xs:attribute name="qualityRanking" type="xs:unsignedInt"/> <xs:attribute name="dependencyId" type="StringVectorType"/> <xs:attribute name="mediaStreamStructureId" type="StringVectorType"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Whitespace-separated list of strings --> <xs:simpleType name="StringVectorType"> <xs:list itemType="xs:string"/> </xs:simpleType> |
서브-레프리젠테이션은 정규의 레프리젠테에션 내에 임베드될 수 있으며, SubRepresentation 요소에 의해 설명될 수 있다. Representation 요소는 SubRepresentation 요소를 포함할 수 있다. SubRepresentation 요소는 레프리젠테이션 내에 임베드된 하나 이상의 미디어 콘텐츠 컴포넌트들의 프로퍼티들을 설명할 수 있다. 레프리젠테이션 및 서브-레프리젠테이션은 공통의 속성 및 요소를 공유할 수 있다.
하기에서 SubRepresentation 요소의 시맨틱이 설명된다.
SubRepresentation 요소는 하기와 같은 속성을 가질 수 있다.
- level 속성은 서브-레프리젠테이션의 레벨을 명세할 수 있다.
- dependency 속성은 서브-레프리젠테이션이 디코딩 및 프리젠테이션 프로세스에 있어서 의존하는 레프리젠테이션 내의 서브-레프리젠테이션들의 세트를 level 속성의 값들의 공백으로 분리된 목록으로써 명세할 수 있다.
- bandwidth 속성은 레프리젠테이션의 bandwidth 속성과 동일하지만, 서브-레프리젠테이션에 적용될 수 있다.
- contentComponet 속성은, 서브-레프리젠테이션 내에 포함된 모든 미디어 콘텐츠 컴포넌트들의 집합을 ContentComponent 요소의 id 속성의 값들의 공백으로 분리된 목록으로써 명세할 수 있다.
하기의 표 8은 일 예에 따른 SubRepresentation 요소의 XML 신택스를 나타낼 수 있다.
<!-- SubRepresentation --> <xs:complexType name="SubRepresentationType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:attribute name="level" type="xs:unsignedInt"/> <xs:attribute name="dependencyLevel" type="UIntVectorType"/> <xs:attribute name="bandwidth" type="xs:unsignedInt"/> <xs:attribute name="contentComponent" type="StringVectorType"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Whitespace-separated list of unsigned integers --> <xs:simpleType name="UIntVectorType"> <xs:list itemType="xs:unsignedInt"/> </xs:simpleType> |
하기에서 AdaptationSet 요소, Representation 요소 및 SubRepresentation 요소의 공통 속성들 및 요소들이 설명된다.
1) AdaptationSet 요소, Representation 요소 및 SubRepresentation 요소는 하기와 같은 속성을 공통적으로 가질 수 있다.
- profile 속성은 미디어 프리젠테이션 프로파일들에 따르는 연관된 레프리젠테이션(들) 간의 프로파일을 명세할 수 있다. profile 속성의 값은 문서 계층(레프리젠테이션, 어댑테이션 세트 및 MPD)의 임의의 상위 레벨의 값의 부분 집합일 수 있다. profile 속성이 부재이면, profile 속성의 값은 문서 계층의 다음 상위 레벨의 값과 동일한 것으로 간주될 수 있다. 예컨대, 레프리젠테이션에 대한 profile 속성이 부재이면, 어댑테이션 세트에 대한 profile 속성이 레프리젠테이션에 대해 유효할 수 있다.
- width 속성은 sar 속성에 의해 결정되는 그리드(grid) 상에서의 비디오 미디어 타입의 수평의 시각적인 프리젠테이션 크기를 명세할 수 있다. sar 속성이 부재인 경우 넓이 및 높이는 마치 sar 속성의 값이 "1:1"인 것과 같이 명세될 수 있다.
- height 속성은 sar 속성에 의해 결정되는 그리드 상에서의 비디오 미디어 타입의 수직의 시각적인 프리젠테이션 크기를 명세할 수 있다.
- sar 속성은 비디오 미디어 컴포넌트 타입의 예시적인(sample) 길이 비율을 명세할 수 있다. sar 속성은 ":"에 의해 분리되는 2 개의 정수들을 포함하는 문자열(string)의 형식을 가질 수 있다. 제1 정수는 인코드된 비디오 픽셀들의 임의의 단위를 기준으로 한 수평 크기를 명세할 수 있다. 제2 정수는 인코드된 비디오 픽셀들의 임의의 단위를 기준으로 한 수직 크기를 명세할 수 있다.
- frameRate 속성은 레프리젠테이션 내의 비디오 미디어 타입의 출력 프레임 레이트를 명세할 수 있다. 만약, 프레임 또는 프레임 레이트가 변동한다면, frameRate 속성의 값은 레프리젠테이션의 전체 지속시간에 걸친 평균 프레임 또는 평균 프레임 비율의 절반 값일 수 있다.
- audioSampleRate 속성은 오디오 미디어 컴포넌트 타입의 셈플링 비율을 명세하는 10진 정수 값일 수 있으며, 오디오 미디어 컴포넌트 타입의 최소 셈플링 비율 및 최대 샘플링 비율을 각각 나타내는 공백으로 분리된 10진 정수 값들의 쌍일 수 있다. audioSamplingRate 속성의 값은 초 당 샘플들일 수 있다.
- mimeType 속성은 초기 내용 설정(initialisation) 세그먼트의 연쇄(concatenation)의 MIME 타입을 명세할 수 있다.
- codecs 속성은 레프리젠테이션 내에서 상연되는 코덱(codec)들을 명세할 수 있다.
2) AdaptationSet 요소, Representation 요소 및 SubRepresentation 요소는 하기와 같은 요소를 공통적으로 가질 수 있다.
- FramePacking 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 비디오 미디어 컴포넌트 타입의 프레임-패킹(frame-packing) 배치(arrangement) 정보를 명세할 수 있다.
- AudioChannelConfiguration 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 오디오 미디어 컴포넌트 타입의 오디오 채널 구성(configuration)을 명세할 수 있다.
- ContentProtection 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 연관된 레프리젠테이션을 위해 사용되는 콘텐츠 보호(protection) 스킴들에 대한 정보를 명세한다.
하기의 표 9는 일 예에 따른 AdaptationSet 요소, Representation 요소 및 SubRepresentation 요소의 공통 XML 신택스를 나타낼 수 있다.
<!-- Representation base (common attributes and elements) --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> <xs:element name="FramePacking" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="AudioChannelConfiguration" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="ContentProtection" type="DescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="profiles" type="xs:string"/> <xs:attribute name="width" type="xs:unsignedInt"/> <xs:attribute name="height" type="xs:unsignedInt"/> <xs:attribute name="sar" type="xs:string"/> <xs:attribute name="frameRate" type="xs:string"/> <xs:attribute name="audioSamplingRate" type="xs:string"/> <xs:attribute name="mimeType" type="xs:string"/> <xs:attribute name="segmentProfiles" type="xs:string"/> <xs:attribute name="codecs" type="xs:string"/> <xs:attribute name="maximumSAPPeriod" type="xs:double"/> <xs:attribute name="startWithSAP" type="SAPType"/> <xs:attribute name="maxPlayoutRate" type="xs:double"/> <xs:attribute name="codingDependency" type="xs:boolean"/> <xs:attribute name="scanType" type="VideoScanType"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <!-- Stream Access Point type enumeration --> <xs:simpleType name="SAPType"> <xs:restriction base="xs:unsignedInt"> <xs:minInclusive value="0"/> <xs:maxInclusive value="6"/> </xs:restriction> </xs:simpleType> <!-- Video Scan type enumeration --> <xs:simpleType name="VideoScanType"> <xs:restriction base="xs:string"> <xs:enumeration value="progressive"/> <xs:enumeration value="interlaced"/> <xs:enumeration value="unknown"/> </xs:restriction> </xs:simpleType> |
세그먼트는 정의된 포멧을 갖고 MPD에 의해 설명되는 최소 지정가능(addressable) 유닛일 수 있다.
세그먼트는 MPD 내에 포함된 HTTP-URL에 의해 참조될 수 있다. 여기서, HTTP-URL은 RFC 3986에 따른 <absolute-URI>로서 정의될 수 있다. HTTP-URL은 고정된 스킴 "http://" 또는 "https://"를 가질 수 있으며, URL에 range 속성이 제공될 경우 바이트 범위에 의해 제한될 수 있다. 바이트 범위는 RFC 2616에서 정의된 byte-range-spec로서 표현될 수 있다. 바이트 범위는 바이트들의 계속적인 범위를 식별하는 단일 표현(expression)으로 제한될 수 있다.
레프리젠테이션은 BaseURL 요소, SegmentBase 요소, SegmentTemplate 요소 및/또는 SegmentList 요소의 존재(presence)를 통해 세그먼트 정보를 할당받을 수 있다. 세그먼트 정보는 레프리젠테이션이 포함하는 하나 이상의 세그먼트들 모두의 위치, 가용성 및 프로퍼티들에 대한 정보를 제공할 수 있다. 특히, 초기 내용 설정, 미디어, 인덱스 및 비트스트림 스위칭 세그먼트들의 존재 및 위치가 제공될 수 있다.
SegmentBase 요소, SegmentTemplate 요소 및 SegmentList 요소는 Representation 요소 내에 존재할 수 있다. 또한, SegmentBase 요소, SegmentTemplate 요소 및 SegmentList 요소는, 디폴트 값들을 나타내기 위해, Period 요소 또는 AdaptationSet 요소 내에 존재할 수 있다. 만약, 계층의 한 레벨에 SegmentTemplate 요소 또는 SegmentList 요소가 존재하면 더 하위의 계층 레벨에는 상연되지 않을 수 있다. SegmentBase 요소, SegmentTemplate 요소 및 SegmentList 요소는 더 상위 레벨의 동일한 요소의 속성들 및 요소들을 상속받을 수 있다. 양 레벨들에 동일한 속성 또는 요소가 존재하면, 더 하위 레벨의 속성 또는 요소가 더 상위 레벨의 속성 또는 요소에 비해 우선권(precedence)을 가질 수 있다.
SegmentBase 요소는 레프리젠테이션 당 단일 미디어 세그먼트가 제공되고, BaseURL 요소 내에 미디어 세그먼트 URL이 포함될 경우에 충분한 정보를 포함할 수 있다. 다중 미디어 세그먼트들이 상연되면, 다중 세그먼트 베이스 정보를 공유하는 SegmentList 요소 또는 Segment Template 요소가 사용될 수 있다.
레프리젠테이션이 하나 이상의 미디어 세그먼트들을 포함할 경우, duration 속성 또는 SegmentTimeLine 요소가 상연될 수 있다.
세그먼트 리스트는 하나 이상의 SegmentList 요소들에 의해 정의될 수 있다. 각 SegmentList 요소는 세그먼트 URL들의 연쇄적인 목록에 대한 SegmentURL 요소들의 목록을 포함할 수 있다. 각 세그먼트 URL은 미디어 세그먼트 URL을 포함할 수 있으며, 바이트 범위를 포함할 수 있다. Segment URL 요소는 인덱스 세그먼트를 포함할 수 있다.
세그먼트 탬플릿은 SegmentTemplate 요소에 의해 정의될 수 있다. 세그먼트들의 목록을 생성하기 위해 동적 값들에 의해 대체된(substituted) 특정한 식별자들이 세그먼트들에게 할딩될 수 있다.
세그먼트 정보는 하기의 정보를 제공할 수 있다.
- 초기 내용 설정, 인덱스 및 비트스트림 스위칭 세그먼트 정보의 존재 또는 부재.
- 각 레프리젠테이션 내의 각 접근 가능한 세그먼트의 HTTP-URL 및 바이트 범위.
- MPD에서 선언된 모든 유효한 세그먼트 URL들.
- MPD의 type 속성이 "dynamic"인 서비스들에 대한, 각 주기의 세그먼트 가용성 시작 시각 및 세그먼트 가용성 종료 시각.
- 주기 내의 미디어 프리젠테이션 타임라인 내의 각 미디어 세그먼트의 근사적인 미디어 프리젠테이션 시작 시각.
segment 요소 또는 segment 요소의 하위 요소는 하기의 속성들을 포함할 수 있다.
- duration 요소는 고정된(constant) 근사의(approximate) 세그먼트 지속시간을 나타낼 수 있다. Representation 요소 내의 모든 세그먼트들은 동일한 지속시간을 가질 수 있다. 단, 주기 내의 마지막 세그먼트는 상이한 지속시간을 가질 수 있다.
- sourceURL 속성은 소스 URL의 일부를 명세할 수 있다. sourceURL은 RFC 3986에 따른 <absolute-URI>의 형식을 가질 수 있다. sourceURL은 "http://", "https://" 또는 RFC 3986에 따른 <relative-ref>의 고정된(fixed) 스킴을 가질 수 있다. 만약, sourceURL 속성이 존재하지 않으면, 임의의 BaseURL 요소가 sourceURL 속성에 사상될 수 있다(mapped). 또한, sourceURL 속성이 존재하지 않으면 range 속성이 제공될 수 있다.
- range 속성은 HTTP-URL의 바이트 범위의 제한(restricting)을 명세할 수 있다. 바이트 범위는 RFC 2616에서 정의된 byte-range-spec에 따라 표현 및 포멧될 수 있다. 만약, range 속성이 부재이면, 요소는 sourceURL 속성 내에서 참조된 전체의 자원을 참조할 수 있다.
하기의 표 10은 일 예에 세그먼트와 관련된 정보에 대한 XML 신택스를 나타낼 수 있다.
<!-- Segment information base --> <xs:complexType name="SegmentBaseType"> <xs:sequence> <xs:element name="Initialisation" type="URLType" minOccurs="0"/> <xs:element name="RepresentationIndex" type="URLType" minOccurs="0"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="timescale" type="xs:unsignedInt"/> <xs:attribute name="presentationTimeOffset" type="xs:unsignedInt"/> <xs:attribute name="indexRange" type="xs:string"/> <xs:attribute name="indexRangeExact" type="xs:boolean"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <!-- Multiple Segment information base --> <xs:complexType name="MultipleSegmentBaseType"> <xs:complexContent> <xs:extension base="SegmentBaseType"> <xs:sequence> <xs:element name="SegmentTimeline" type="SegmentTimelineType" minOccurs="0"/> <xs:element name="BitstreamSwitching" type="URLType" minOccurs="0"/> </xs:sequence> <xs:attribute name="duration" type="xs:unsignedInt"/> <xs:attribute name="startNumber" type="xs:unsignedInt"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Segment Info item URL/range --> <xs:complexType name="URLType"> <xs:sequence> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="sourceURL" type="xs:anyURI"/> <xs:attribute name="range" type="xs:string"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <xs:enumeration value="progressive"/> <xs:enumeration value="interlaced"/> <xs:enumeration value="unknown"/> </xs:restriction> </xs:simpleType> |
하기에서, 사용자 및 단말 특성들에 기반하여 레프리젠테이션을 선택하기 위한 추가적인 구성이 설명된다.
DASH를 위한 상술된 솔루션에 따르면, 레프리젠테이션들은 다양한 메타데이터에 의해 설명될 수 있다. 레프리젠테이션의 특성들은 대부분 단말의 특성들에 기반하여 레프리젠테이션들을 선택하기 위한 것일 수 있다. 예를들면, 단말의 특성들은 해상도(resolution) 및 연결 대역폭(connection bandwidth) 등을 포함할 수 있다.
레프리젠테이션의 접근성 특성은, 멀티미디어 콘텐츠를 지각(perceive)함에 있어서 곤란함(difficulties)을 겪는 장애인(disabled user)들을 지원하기 위해 사용될 수 있다. 접근성을 지원하기 위한 하기의 실시예는 1) MPEG-21 디지털 아이템 적응(Digital Item Adaptation; DIA) 접근성 설명(description) 및 2) 콘텐츠 컴포넌트들의 증대(enhancement)/교체(replacement)를 가능하게 하기 위한(facilitate) 몇몇 힌트들을 포함할 수 있다. 본질적으로, ISO/IEC 21000-7의 VisualImpairmentType(시각적 장애 타입) 및/또는 AuditoryImpairmentType(청각적 장애 타입) 요소들을 포함하는, MPEG-21 DIA 접근성 설명은 사용자의 시각적 또는 청각적인 장애(impairment)들의 다양한 증상들을 설명하는 것을 가능하게 한다. 사용자의 시각적 또는 청각적인 장애는 색맹(colour deficiency) 또는 약시(low vision)를 포함할 수 있다.
하기의 규칙이 특정한 접근성 스킴들을 식별하기 위해 URI에 적용될 수 있다. 예컨대, 스킴들은 전술된 Accessibility 요소 내에 포함될 수 있다.
비디오 및/또는 오디오 콘텐츠를 포함하는 레프리젠테이션들을 위한 URI는 하기의 표 11와 같이 정의될 수 있다.
urn:mpeg:mpegB;dash:dash:mp21accessibility:<value> |
상기의 URI는 ISO/IEC 21000-7의 접근성 정의에 기반한 접근성 스킴들을 가리킬 수 있다.
만약, <value>가 "s0"이면, 적합한 레프리젠테이션이 사전에 준비되며, 연관된 접근성 설명이 Accessibility 요소에 의해 설명될 수 있다. 상기의 설명을 전달하기(convey) 위해 상이한 방식들이 사용될 수 있다. 예컨대, 접근성 설명은 MP21Access 요소에 의해 전달될 수 있고, 하기에서 정의되는 xlink:href 속성에 의해 참조될 수 있다.
만약, <value>가 "s1"이면, 제공자는 장애 사용자의 접근성 설명을 어떠한 방식으로든 획득할 수 있으며, 장애 사용자에게 적절한 콘텐츠를 제공할 수 있다.
DASH의 컨텍스트 있어서, 만약, 레프리젠테이션이 접근성 정보와 연관되면, 상기의 레프리젠테이션은 장애자의 특정한 증상들이 접근성 설명에 의해 설명되는 상기의 장애자를 위해 사용될 수 있다. 일반적으로, 상기의 레프리젠테이션의 미디어는 장애자의 문제에 대처(cope)하기 위해 증대될 수 있다. 여기서, 레프리젠테이션의 증대는 명암 대비(contrast) 또는 컬러의 보정(adjusting)일 수 있다.
전술된 Accessibility 요소는 하기와 같이 확장될 수 있다. 새로운 자식 요소 "MP21Access"는 MPEG-21 DIA 접근성 설명을 위한 컨테이너로서 사용될 수 있다. 또한, 부가적인 xlink:href 속성이 MPEG-21 DIA 접근성 요소들을 포함하는 외부의(external) 설명을 참조하기 위해 Accessibility 요소에 추가될 수 있다.
나아가, 새로운 속성 "use"가 클라이언트가 접근성의 목적을 위한 레프리젠테이션의 의도된 사용을 알리기 위한 힌트로서 채용(employ)될 수 있다. 이러한 새로운 요소 및 속성들은 레프리젠테에션 그룹(또는, 어댑테이션 세트), 레프리젠테이션 및 서브레프리젠테이션에 적용될 수 있다.
하기에서 접근성을 지원하기 위한 요소 및 속성의 시맨틱이 설명된다.
1) Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소는 접근성을 지원하기 위해 하기와 같은 속성을 더 가질 수 있다.
- use 속성은 레프리젠테이션(들)의 의도된 사용을 나타낼 수 있다. use 속성의 값은 signLang, subtitle, caption, description 또는 plusDes 등일 수 있다. signLang은 수화로서 사용함을 가리킬 수 있다. subtitle은 자막으로서 사용함을 가리킬 수 있다. caption은 캡션으로서 사용함을 가리킬 수 있다. 캡션은 추가적인 설명을 갖는 자막일 수 있다. description은, 예컨대 영화의 오디오 설명과 같은, 설명으로서 사용함을 가리킬 수 있다. plusDesc는 해당하는 레프리젠테이션의 콘텐츠는 설명을 포함하여 증대되었음을 가리킬 수 있다. 예컨대, 오디오 설명을 포함하여 증대된 사운드 트랙을 가리킬 수 있다.
- xlink:href 속성은 ISO/IEC IS 21000-7 요소의 AuditoryImpairmentType 및/또는 VisualImpairmentType 요소를 포함하는 외부의 MPEG-21 DIA로의 참조를 제공할 수 있다. 상기의 설명과 연관된 상기의 레프리젠테이션 또는 레프리젠테이션 그룹은 상기의 설명에 의해 설명되는 문제들을 갖는 장애인들에게 적합할 수 있다.
- xlink:actuate 속성은 처리 명령들을 제공할 수 있다. 처리 명령들은 "onLoad" 또는 "onRequest"일 수 있다. xlink:actuate 속성은 xlink:href 속성이 부재이면 존재할 수 없다.
2) Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소는 접근성을 지원하기 위해 하기와 같은 요소를 더 가질 수 있다.
- Accessibility 요소는, 0 내지 N의 인덱스를 가질 수 있으며, 접근성 정보 스킴에 대한 정보를 제공할 수 있다.
- MP21Access 요소는, 0 내지 1의 인덱스를 가질 수 있으며, ISO/IEC 21000-7의 AuditoryImpairmentType and/or VisualImpairmentType 요소들과 함께 MPEG-21 DIA 설명을 포함할 수 있다. 상기의 설명과 연관된 레프리젠테이션들 또는 레프리젠테이션 그룹은 상기의 설명에 의해 설명된 문제들을 갖는 장애자들에게 적합할 수 있다.
하기의 표 12는 일 예에 따른 Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소의 접근성을 지원하기 위한 요소들 각각의 XML 신택스를 나타낼 수 있다.
<!-- RepresentationBase type; extended by other Representation-related types --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> <xs:element name="ContentProtection" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Accessibility" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Rating" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Viewpoint" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="MultipleViews" type="MultipleViewsType" minOccurs="0"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="group" type="xs:unsignedInt"/> <xs:attribute name="width" type="xs:unsignedInt"/> <xs:attribute name="height" type="xs:unsignedInt"/> <xs:attribute name="parx" type="xs:unsignedInt"/> <xs:attribute name="pary" type="xs:unsignedInt"/> <xs:attribute name="lang" type="LangVectorType"/> <xs:attribute name="mimeType" type="xs:string"/> <xs:attribute name="startWithRAP" type="xs:boolean"/> <xs:attribute name="frameRate" type="xs:double"/> <xs:attribute name="maximumRAPPeriod" type="xs:double"/> <xs:attribute name="numberOfChannels" type="StringVectorType"/> <xs:attribute name="samplingRate" type="StringVectorType"/> <xs:attribute name="use" type="UseType"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <xs:simpleType name="UseType"> <xs:restriction base="xs:string"> <xs:enumeration value="signLang"/> <xs:enumeration value="subtitle"/> <xs:enumeration value="caption"/> <xs:enumeration value="description"/> <xs:enumeration value="plusDesc"/> </xs:restriction> </xs:simpleType> <!-- Generic named descriptive information about the content --> <xs:complexType name="ContentDescriptorType"> <xs:sequence> <xs:element minOccurs="0" name="SchemeInformation" type="xs:string"/> <xs:element minOccurs="0" name="MP21Access" type="xs:string"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/> <xs:attribute ref="xlink:href"/> <xs:attribute ref="xlink:actuate" default="onRequest"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
하기에서, 레프리젠테이션들 간의 관계를 설명하는 메타데이터가 설명된다.
레프리젠테이션 그룹들 간의 관계를 설명하는 메타데이터는 상대적으로 드물다. 예컨대, 클라이언트에게 주어진 오디오 설명이 어떤 비디오 스트림과 연관되는 것인지를 알려주는 것은 어렵다. 몇몇 경우들에 있어서, 2 개의 레프리젠테이션 그룹들이 개념상으로(semantically) 동등할 수 있고, 단지 하나의 레프리젠테이션 그룹이 컨텍스트에 따라서 선택되어야 할 수도 있다. 하기에서, 2 개의 단순한 속성들이 상술된 목적을 위해 제안된다. 하기에서 설명되는 메타데이터는, 접근성뿐만 아니라 일반적인 적응성(adaptivity)를 위해서도 유용할 수 있다.
Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소는 레프리젠테이션들 간의 관계를 설명하기 위해 하기와 같은 속성을 더 가질 수 있다.
- usedWith 속성은 하나 이상의 레프리젠테이션 또는 레프리젠테이션 그룹의 목록을 가리킬 수 있다. 만약, 현재의 레프리젠테이션 또는 레프리젠테이션 그룹이 사용되면, usedWith 속성은 상기의 리스트의 임의의 아이템과 함께 사용될 수 있다. 예컨대, 오디오 설명을 위한 레프리젠테이션 그룹은 비디오 컴포넌트의 특정한 레프리젠테이션 그룹과 함께 사용될 수 있다. usedWith 속성의 값은 공백으로 분리된(whitespace-separated) 목록일 수 있다. 공백으로 분리된 목록의 각 아이템은 하나의 레프리젠테이션 그룹 또는 하나의 레프리젠테이션의 식별(identification)일 수 있다. 레프리젠테이션 그룹의 식별은 group 속성 또는 adaptationSet 속성의 값일 수 있다. 레프리젠테이션의 식별은 repid 속성의 포맷을 가질 수 있다. repid 속성은 레프리젠테이션의 id 속성의 값일 수 있다.
- equivalentTo 속성은 하나 이상의 레프리젠테이션 또는 레프리젠테이션 그룹의 목록을 가리킬 수 있다. 현재의 레프리젠테이션은 상기의 목록의 임의의 아이템 대신 사용될 수 있다. 예컨대, 자막을 위한 레프리젠테이션 그룹은 오디오 컴포넌트의 특정한 레프리젠테이션 그룹 대신 사용될 수 있다. equivalentTo 속성의 포멧은 usedWith 속성의 포멧과 동일할 수 있다.
하기의 표 13은 일 예에 따른 Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소의 레프리젠테이션들 간의 관계를 설명하기 위한 XML 신택스를 나타낼 수 있다.
<!-- RepresentationBase type; extended by other Representation-related types --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> <xs:element name="ContentProtection" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Accessibility" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Rating" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Viewpoint" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="MultipleViews" type="MultipleViewsType" minOccurs="0"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="group" type="xs:unsignedInt"/> <xs:attribute name="width" type="xs:unsignedInt"/> <xs:attribute name="height" type="xs:unsignedInt"/> <xs:attribute name="parx" type="xs:unsignedInt"/> <xs:attribute name="pary" type="xs:unsignedInt"/> <xs:attribute name="lang" type="LangVectorType"/> <xs:attribute name="mimeType" type="xs:string"/> <xs:attribute name="startWithRAP" type="xs:boolean"/> <xs:attribute name="frameRate" type="xs:double"/> <xs:attribute name="maximumRAPPeriod" type="xs:double"/> <xs:attribute name="numberOfChannels" type="StringVectorType"/> <xs:attribute name="samplingRate" type="StringVectorType"/> <xs:attribute name="usedWith" type="StringVectorType"/> <xs:attribute name="equivalentTo" type="StringVectorType"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <!-- Type for space delimited list of strings --> <xs:simpleType name="StringVectorType"> <xs:list itemType="xs:string"/> </xs:simpleType> |
하기에서, 비트 깊이에 대한 메타데이터가 설명된다.
상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션들을 선택하기 위해, 레프리젠테이션 및 레프리젠테이션 그룹을 위해 하기의 속성들이 사용될 수 있다. 비트 깊이는, 시각적 콘텐츠의 루마(luma)/크로마(chroma) 샘플을 나타내기 위해 사용되는 비트들의 개수를 의미할 수 있다.
하기에서 비트 깊이에 대한 속성의 시맨틱이 설명된다.
Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소는 비트 깊이를 제공하기 위해 하기와 같은 속성을 더 가질 수 있다.
- bitDepth 속성은 시각적 콘텐츠의 루마/크로마 샘플을 나타내기 위한 비트들의 개수를 가리킬 수 있다. 만약, 예컨대 서로 다른 비디오 사진들에서, 비트 깊이가 변동하면 bitDepth 속성의 값은 비트 깊이들의 최대 값이 될 수 있다.
하기의 표 14은 일 예에 따른 Group 요소, Adaptation Set 요소, Representation 요소 또는 SubRepresentation 요소의 비트 깊이를 지원하기 위한 XML 신택스를 나타낼 수 있다.
<!-- RepresentationBase type; extended by other Representation-related types --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> <xs:element name="ContentProtection" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Accessibility" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Rating" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Viewpoint" type="ContentDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="MultipleViews" type="MultipleViewsType" minOccurs="0"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="group" type="xs:unsignedInt"/> <xs:attribute name="width" type="xs:unsignedInt"/> <xs:attribute name="height" type="xs:unsignedInt"/> <xs:attribute name="parx" type="xs:unsignedInt"/> <xs:attribute name="pary" type="xs:unsignedInt"/> <xs:attribute name="lang" type="LangVectorType"/> <xs:attribute name="mimeType" type="xs:string"/> <xs:attribute name="startWithRAP" type="xs:boolean"/> <xs:attribute name="frameRate" type="xs:double"/> <xs:attribute name="maximumRAPPeriod" type="xs:double"/> <xs:attribute name="numberOfChannels" type="StringVectorType"/> <xs:attribute name="samplingRate" type="StringVectorType"/> <xs:attribute name="use" type="UseType"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <xs:simpleType name="UseType"> <xs:restriction base="xs:string"> <xs:enumeration value="signLang"/> <xs:enumeration value="subtitle"/> <xs:enumeration value="caption"/> <xs:enumeration value="description"/> <xs:enumeration value="plusDesc"/> </xs:restriction> </xs:simpleType> <!-- Generic named descriptive information about the content --> <xs:complexType name="ContentDescriptorType"> <xs:sequence> <xs:element minOccurs="0" name="SchemeInformation" type="xs:string"/> <xs:element minOccurs="0" name="MP21Access" type="xs:string"/> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="schemeIdUri" type="xs:anyURI" use="required"/> <xs:attribute ref="xlink:href"/> <xs:attribute ref="xlink:actuate" default="onRequest"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
상술된 설명에 대응하기 위해, Representation Group 요소 또는 Adaptation Set 요소에 2 개의 속성들 minBitDepth 및 maxBitDepth가 추가될 수 있다.
하기에서, 최대 비트 깊이 및 최소 비트 깊이를 설명하는 속성들의 시맨틱들이 설명된다.
Representation Group 요소, Group 요소 또는 Adaptation Set 요소는 최대 비트 깊이 및 최소 비트 깊이를 설명하기 위해 하기와 같은 속성을 더 가질 수 있다.
- xlink:href 속성은 외부의 Group 요소 또는 Adaptation Set 요소로의 참조를 나타낼 수 있다.
- xlink:actuate 속성은 처리 명령들을 제공할 수 있다. 처리 명령들은 "onLoad" 또는 "onRequest"일 수 있다.
- minBitDepth 속성은 그룹 또는 어댑테이션 세트 내의 모든 레프리젠테이션들에게 있어서의, 최소 비트 깊이 값을 나타낼 수 있다.
- maxBitDepth 속성은 그룹 또는 어댑테이션 세트 내의 모든 레프리젠테이션들에게 있어서의, 최대 비트 깊이 값을 나타낼 수 있다.
하기의 표 15는 일 예에 따른 Representation Group 요소, Group 요소 또는 Adaptation Set 요소의 최소 비트 깊이 값 및 최대 비트 깊이 값을 지원하기 위한 XML 신택스를 나타낼 수 있다.
<!-- Group to contain information common to a group; extends RepresentationBaseType --> <xs:complexType name="GroupType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:sequence> <xs:element name="Representation" type="RepresentationType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SegmentInfoDefault" type="SegmentInfoDefaultType" minOccurs="0"/> </xs:sequence> <xs:attribute ref="xlink:href"/> <xs:attribute ref="xlink:actuate" default="onRequest"/> <xs:attribute name="minBandwidth" type="xs:unsignedInt"/> <xs:attribute name="maxBandwidth" type="xs:unsignedInt"/> <xs:attribute name="minWidth" type="xs:unsignedInt"/> <xs:attribute name="maxWidth" type="xs:unsignedInt"/> <xs:attribute name="minHeight" type="xs:unsignedInt"/> <xs:attribute name="maxHeight" type="xs:unsignedInt"/> <xs:attribute name="minFrameRate" type="xs:double"/> <xs:attribute name="maxFrameRate" type="xs:double"/> <xs:attribute name="minBitDepth" type="xs:unsignedInt"/> <xs:attribute name="maxBitDepth" type="xs:unsignedInt"/> <xs:attribute name="subsegmentAlignment" type="xs:boolean" default="false"/> <xs:attribute name="segmentAlignmentFlag" type="xs:boolean"/> <xs:attribute name="bitStreamSwitchingFlag" type="xs:boolean"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:extension> </xs:complexContent> </xs:complexType> |
도 2는 본 발명의 일 실시예에 따른 콘텐츠 처리 방법의 신호 흐름도이다.
단말(200)은 전술된 DASH의 클라이언트일 수 있다.
DASH의 클라이언트는 RFC 2616에 명세된 클라이언트와 호환될 수 있다.
DASH의 클라이언트는, 세그먼트들 또는 세그먼트들의 일부들에 접근하기 위해, RFC 2616에서 명세된 것처럼, 일반적으로 HTTP GET 메쏘드(method) 또는 HTTP partial GET 메쏘드를 사용할 수 있다.
서버(210)는 DASH의 세그먼트들을 호스팅(hosting)할 수 있다. 서버(210)는 RFC 2616에서 명세된 서버와 호환될 수 있다.
단계(220)에서, 단말(200)은 서버(210)로부터 미디어 콘텐츠의 메타데이터를 수신할 수 있다. 즉, 서버(210)는 단말(200)에게 미디어 콘텐츠에 대한 메타데이터를 전송한다. 미디어 콘텐츠는 하나 이상의 주기들을 포함할 수 있다.
메타데이터는 MPD일 수 있다.
MPD는 단말(200)이 정의된 자원들의 스킴 내에서 명세된 프로토콜을 통해 세그먼트들을 접근함으로써 사용자에게 스트리밍 서비스를 제공하기에 충분한 정보를 제공할 수 있다. 여기서, 명세된 프로토콜은 HTTP/1.1일 수 있다. 서버(210)는 MPD 전달 기능을 제공할 수 있다. MPD는 DASH 미디어 프리젠테이션 준비(preparation)에 따라 생성될 수 있다.
단계(230)에서, 단말(200)은 수신된 메타데이터를 처리할 수 있다. 단계(230)에서, 단말(200)은 메타데이터가 제공하는 정보 또는 메타데이터 내에 포함된 정보를 추출할 수 있다.
단계들(240 내지 250)에서, 단말(200)은 메타데이터가 제공하는 정보에 기반하여 미디어 콘텐츠의 세그먼트에 접근(access)할 수 있다. 서버(210)는 DASH 세그먼트 전달 기능(function)을 제공하는 HTTP 서버일 수 있다.
여기서, 각 주기는 하나 이상의 그룹들을 포함할 수 있고, 각 그룹은 미디어 콘텐츠의 하나 이상의 레프리젠테이션을 포함할 수 있다. 즉, 각 주기는 미디어 콘텐츠의 하나 이상의 레프리젠테이션을 포함할 수 있다. 따라서, 각 레프리젠테이션은 자신을 포함하는 주기의 시작점에서 시작하고, 상기의 주기의 종료점까지 지속할 수 있다.. 각 레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다.
단계(240)에서, 단말(200)은 서버(210)에게 미디어 콘텐츠의 세그먼트를 세그먼트의 URL을 사용하여 요청할 수 있다. 여기서, URL은 전술된 베이스 URL 요소에 상관되어 해석될 수 있다. 예컨대, 세그먼트의 URL은 베이스 URL 요소에 기반하여 생성될 수 있다.
MPD는 1) 서버(210)에게 세그먼트들을 요청하고, 2) 세그먼트 내에 포함된 미디어 스트림들을 디멀티플렉싱(demultiplexing), 디코딩 및 렌더링함으로써 사용자에게 스트리밍 서비스를 제공하기에 충분한 정보를 단말(200)에게 제공할 수 있다.
단말(200)은 상기의 메타데이터 처리에 기반하여 특정 주기에 대한 적합한 세그먼트를 서버(210)에게 요청할 수 있다. 즉, 요청되는 세그먼트는 메타데이터에 기반하여 선택된 것일 수 있다. 단말(200) 은 HTTP GET 메쏘드(method)를 실행함으로써 세그먼트를 서버(210)에게 요청할 수 있다.
메타데이터는 "범위" 속성을 포함할 수 있다. 상기의 요청은 URL이 가리키는 자원의, "범위' 속성이 지정하는 바이트들에 대한 요청일 수 있다.
세그먼트의 URL은 절대적 URL 또는 상대적 URL일 수 있다.
단말(200)은 상기의 메타데이터가 포함하는 요소 또는 속성을 사용하여 주기, 어댑테이션 세트 및 레프리젠테이션 등을 선택할 수 있고, 선택된 주기, 어댑테이션 세트 또는 레프리젠테이션의 요소 및 속성에 기반하여 요청할 세그먼트를 선택할 수 있다.
예컨대, 주기가 포함하는 하나 이상의 레프리젠테이션들에 있어서, 각 레프리젠테이션은 미디어 콘텐츠를 지각함에 있어서 곤란함을 겪는 장애인들을 지원하기 위한 정보를 포함할 수 있다. 레프리젠테이션의 미디어 컴포넌트는 장애자의 문제에 대처하기 위해 증대될 수 있다. 증대는 명암 대비의 증대 및 컬러의 보정의 증대 중 하나 이상일 수 있다. 또한, 상기의 정보는 레프리젠테이션이 의도된 사용을 나타낼 수 있다. 여기서, 의도된 사용이란, 수화, 자막, 캡션 및 설명 중 하나 이상일 수 있다. 또한, 상기의 정보는 외부의 MPEG-21 디지털 아이템 적응(Digital Item Adaptation; DIA)로의 참조를 제공하는 속성을 포함할 수 있다.
예컨대, 메타데이터는 하나 이상의 레프리젠테이션들 간의 관계를 설명하는 속성을 포함할 수 있다. 하나 이상의 레프리젠테이션들 중 제1 레프리젠테이션은 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함할 수 있고, 제1 레프리젠테이션은 상기 일부의 레프리젠테이션들 중 하나와 함께 사용될 수 있다. 여기서, 제1 레프리젠테이션은 오디오 설명을 위한 레프리젠테이션일 수 있고, 일부의 레프리젠테이션들은 각각 비디오 컴포넌트의 레프리젠테이션일 수 있다. 또한, 하나 이상의 레프리젠테이션들 중 제2 레프리젠테이션은 상기의 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함할 수 있고, 상기의 일부의 레프리젠테이션들 중 하나의 레프리젠테이션은 제2 레프리젠테이션에 대체되어 사용될 수 있다.
예컨데, 주기가 포함하는 하나 이상의 레프리젠테이션들에 있어서, 각 레프리젠테이션은 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션을 선택하기 위해 사용되는 비트 깊이 속성을 포함할 수 있다.
비트 깊이 속성은 시각적 콘텐츠의 루마/크로마 샘플을 나타내기 위한 비트들의 개수를 가리킬 수 있다.
단계(245)에서, 몇몇 경우에 있어서, 서버(210)는 미디어 콘텐츠(예컨대, SVC를 위한 MP4 파일)를 파스(parse)할 필요가 있고, 상기 요청된 세그먼트에 적합한 데이터 파트를 추출할 수 있다.
단계(250)에서, 서버(210)는 단말(200)로부터의 각 요청에 대해 적합한 세그먼트들을 단말(200)로 전송할 수 있다. 단말(200)은 서버(210)로부터 세그먼트들을 수신할 수 있다.
단계(260)에서, 단말(200)은 세그먼트 내에 포함된 미디어 콘텐츠의 데이터를 디코딩 및 렌더링함으로써 미디어 콘텐츠를 재생할 수 있다.
단말(200)은, 단계들(220 내지 260)을 반복함으로써 수신된 세그먼트를 사용하여 미디어 콘텐츠를 재생할 수 있다.
앞서 도 1을 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 3은 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.
시그널링 정보(즉, 메타데이터)는 하기의 카테고리들 1) 내지 4)로 나뉘어질 수 있다..
1) 일반 정보(general information)(310) : 일반 정보는, 예컨대 지속시간(duration) 및 시작 시각과 같은, 콘텐츠의 일반 설명(description) 및 각 인터벌의 일반 설명을 포함할 수 있다.
2) 서비스의 품질 정보(QoS information)(320) : 비트레이트(bitrate), 해상도(resolution), 품질(quality)와 같은, 각 대안의 특성들(characteristics)을 설명할 수 있다. 즉, 서비스의 품질 정보는 콘텐츠의 대안들 각각의 특성들을 설명할 수 있다.
대안은 물리적(physical)(즉, 미리 생성된)일 수 있고, 가상(virtual)(즉, 온-더-플라이(on the fly)로 생성될)일 수 있다. 대안들의 정보에 기반하여, 클라이언트는 적합한 대안의 프래그먼트를 선택할 수 있다. 따라서, 단말들 및 네트워크들의 문맥(context)들에 대한 적합성(adaptivity)을 지원할 수 있다.
3) 매핑 정보(Mapping Information)(330) : 콘텐츠를 추출(retrieve)할 위치들(locations)을 설명할 수 있다. 특정 경우들(cases)에 의존하여, 상이한 대안들은 동일하거나 상이한 위치들을 가질 수 있다.
4) 클라이언트 요청(Client request)(340) : 이러한 종류의 시그널링 정보는 HTTP 1.1 요청(request) 메시지의 포멧을 따를 수 있다(conform). 클라이언트에 의해서 요청된 파라미터들은 상기의 1) 내지 3) 카테고리들의 정보로부터 비롯할 수 있다(derive).
도 4는 본 발명의 일 예에 따른 콘텐츠 디비전(division)의 계층 및 시그널링 정보의 레벨들(levels)을 나타낸다.
본 발명의 일시예들에 따른 메타데이터의 시그널링은 콘텐츠-레벨 정보(410), 인터벌 레벨 정보(420), QoS 정보(430) 및 매핑(440) 정보로 물리적으로 분리될(separated) 수 있다. 콘텐츠-레벨 정보(310), 인터벌 레벨 정보(420), QoS 정보(430) 및 매핑(440)의 관련된 부분들의 링킹(linking)은 참조(referencing)에 의해 이루어질 수 있다.
시그널링 정보의 이러한 부분들은 유연성을 지원하기 위한 상이한 방법들(ways)으로 조합(combine)될 수 있다.
예를 들면, 단지 콘텐츠-레벨 정보(410) 및 인터벌 레벨 정보(420)만이 클라이언트로 전송될 때, 모든 대안들의 결정 및 위치들의 해결(resolve)을 위한 계산들은 서버에 의해 수행될 수 있다. 따라서, 콘텐츠-레벨 정보(310) 및 인터벌 레벨 정보(420)만이 클라이언트로 전송될 때 의 프로세싱 모델은 "서버-기반"이일 수 있다.
만약, 콘텐츠-레벨 정보(410), 인터벌-레벨 정보(420) 및 QoS 정보(430)가 클라이언트로 전송되면, 모든 대안들의 결정 및 위치들의 해결(resolve)을 위한 계산들은 클라이언트 및 서버에 의해 분산하여 수행될 수 있다. 따라서, 콘텐츠-레벨 정보(410), 인터벌-레벨 정보(420) 및 QoS 정보(430)가 클라이언트로 전송될 때, 상기의 모델은 "분산된"이 될 수 있다.
모든 시그널링 정보들(콘텐츠-레벨 정보(410), 인터벌-레벨 정보(320), QoS 정보(430) 및 매핑 정보(440))이 클라이언트로 전송될 때, 이러한 모델에서 대부분(또는, 전부)의 프로세싱(즉, 대안들의 결정 및 위치들의 해결을 위한 계산)은 클라이언트에서 되기 수행 때문에, 상기 모델은 클라이언트-기반(client-based)일 수 있다.
메타데이터 파트들의 분리는 저장 및 전달에 있어서 효율성을 가능하게 할 수 있다. 예를 들면, 세션 동안, 콘텐츠-레벨 정보(410)의 메타데이터는 1회 보내질 수 있고, 인터벌 레벨 정보(420)만이 주기적으로 갱신될 수 있다. 유사하게, QoSInfo 파트(430)를 포함하는 하나의 파일이 상이한 인터벌들 및 상이한 콘텐츠를 위해 사용될 수 있다.
도 5는 본 발명의 일 실시예에 따른 단말의 구조도이다.
하기에서 설명될 단말(100)의 구조는 개념적인 DASH 클라이언트 모델의 논리적인 구성 요소들을 나타낼 수 있다.
단말(100)는 접근 엔진(510) 및 미디어 엔진(520)을 포함할 수 있다.
접근 엔진(510)은 DASH 접근 엔진일 수 있다.
접근 엔진(510)은 서버(110)로부터, 메타데이터(예컨대, MPD)를 수신할 수 있다.
접근 엔진(510)은, 요청(request)들을 구성들을 구성할 수 있고, 구성된 요청들을 서버(110)에게 발행(issue)할 수 있다.
접근 엔진(510)은, 콘텐츠(예켄더, 세그먼트들 또는 세그먼트들의 일부들)을 서버(110)로부터 수신할 수 있다.
접근 엔진(510)은 콘텐츠를 미디어 엔진(520)에게 제공할 수 있다.
접근 엔진(510)의 출력은, MPEG 컨테니어(container)(예컨대, ISO/IEC 14492-12 ISO 베이스 미디어 파일 포멧 또는 ISO/IEC 13818-2 MPEG-2 트랜스포트 스트림)의 미디어(또는, 미디어의 일부들)을 포함할 수 있다. 또한, 접근 엔진(510)의 출력은 상기 미디어의 내부적(internal) 타이밍을 미디어 프리젠테이션의 타임 라인으로 사상(map)하는 타이밍 정보를 포함할 수 있다.
또한, 접근 엔진(510)은 도 2를 참조하여 전술된 단계들(220 내지 260)에서, 단말(200)이 수행하는 것으로 설명된 기능들을 수행할 수 있다.
미디어 엔진(520)은 제공된 콘텐츠를 재생할 수 있다. 즉, 미디어 엔진(520)은 접근 엔진(510)으로부터 출력된 미디어 및 타이밍 정보를 사용하여 미디어를 출력할 수 있다.
앞서 도 1 내지 도 4를 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
하기에서, 비트 깊이 속성이 설명된다.
Dynamic and Adaptive HTTP Streaming of MPEG (DASH)에서 레프리젠테이션은 단말기와 콘텐츠의 특성을 (해상도, 대역폭 등) 기반으로 하는 여러 가지 메타데이터로 기술된다. 이 중 비트 깊이(bit depth)는 콘텐츠의 특성 중 하나로 Media Presentation description (MPD)에 포함될 수 있다. 이하에서는 미디어의 비트 깊이를 기술하는 메타데이터에 대하여 정의하며 기술한다.
비트 깊이(Bit depth)는 미디어 콘텐츠의 샘플을 표현하는데 사용하는 비트의 수를 나타낸다. 예를 들어 콘텐츠는 각기 다른 bit depth를 사용하여 인코딩 될 수 있다. (AVC의 일부 프로파일은 bit depth가 8비트에서 16비트까지 변동한다.) 다른 한 편으로는 각각의 단말기는 각기 다른 bit depth를 수용할 수 있다. 이러한 단말들이 각 단말들에게 적합한 bit depth를 표현하는 레프리젠테이션(representation)을 선택할 수 있도록 레프리젠테이션(representation)의 adaptation set에 아래와 같이 attribute을 추가한다.
옵션1 (Option 1)은 하나의 attribute을 사용하여 여러 가지 bit depth를 표현하는 방식이며, 옵션2 (Option 2)는 각각의 bit depth를 표현하기 위하여 그에 상응하는 attribute을 사용하는 방식이다.
1. 옵션 1
하기의 표 16은 common adaptation set, representation 및 sub-representation attributes 및 elements를 나타낸다.
Element or Attribute Name | Use | Description |
Common attributes and elements | ||
@bitDepth | O | 미디어 콘텐츠 샘플의 bit depth를 나타낸다. Bit depth가 변동할 경우 이 attribute은 bit depth 값 중 최대 값을 나타낸다. |
하기의 표 17은 bit depth를 설명하는 attribute의 syntax를 나타낸다.
<!-- RepresentationBase type; extended by other Representation-related types --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> ... </xs:sequence> ... <xs:attribute name="bitDepth" type="xs:unsignedInt"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
Bit depth에 맞춰 minBitDepth와 MaxBitDepth의 두 개의 attribute가 Adaptation Set에 추가된다.
하기의 표 18은 maximum bit depths 및 minimum bit depths를 설명하는 attributes의 semantics이다.
Element or Attribute Name | Use | Description | ||
Adaptation Set | Adaptation Set 설명 | |||
@xlink:href | O | type AdaptationSet의 정확히 하나의 element를 포함해야 하는 원격 요소 개체에 대한 참조를 명세한다.(specifies a reference to a remote element entity that shall contain exactly one element of type AdaptationSet) | ||
@xlink:actuate | OD default:"onRequest" |
"onLoad" 또는 "onRequest"일 수 있는 instructions의 처리를 제공한다.(provides the processing instructions, which can be either "onLoad" or "onRequest".) | ||
CommonAttributesElements | - | |||
... | ||||
@minBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 bit depth 범위 중 최소 bit depth 값을 나타낸다. | ||
@maxBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 bit depth 범위 중 최대 bit depth 값을 나타낸다. |
하기의 표 19는 maximum bit depth 및 minimum bit depth를 설명하는 attribute의 syntax를 나타낸다.
<!-- Adaptation Set --> <xs:complexType name="AdaptationSetType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:sequence> ... </xs:sequence> ... <xs:attribute name="minBitDepth" type="xs:unsignedInt"/> <xs:attribute name="maxBitDepth" type="xs:unsignedInt"/> ... <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:extension> </xs:complexContent> </xs:complexType> |
2. 옵션 2
옵션 2에서 루마(luma)와 크로마(chroma)의 bit depth 정보가 각기 다르게 표시된다.
하기의 표 20은 common adaptation set, representation 및 sub-representation attributes 및 elements를 나타낸다.
Element or Attribute Name | Use | Description |
Common attributes and elements | ||
@lumaBitDepth | O | 비디오 luma component 샘플의 bit depth를 나타낸다. bit depth가 변동 할 경우 이 값은 bit depth 값들 중 최대 값을 표시한다. |
@chromaBitDepth | O | 비디오 chroma component 샘플의 bit depth를 나타낸다. bit depth가 변동 할 경우 이 값은 bit depth 값들 중 최대 값을 표시한다. |
하기의 표 21은 bit depth를 설명하는 attribute의 syntax를 나타낸다.
<!-- RepresentationBase type; extended by other Representation-related types --> <xs:complexType name="RepresentationBaseType"> <xs:sequence> ... </xs:sequence> ... <xs:attribute name="lumaBitDepth" type="xs:unsignedInt"/> <xs:attribute name="chromaBitDepth" type="xs:unsignedInt"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> |
상기 attribute에 맞춰 minLumaBitDepth, maxLumaBitDepth, minChromaBitDepth 와 maxBitDepth 등 네 개의 attribute이 Adaptation Set에 추가된다.
하기의 표 22는 maximum bit depths 및 minimum bit depths를 설명하는 attributes의 semantics이다.
Element or Attribute Name | Use | Description | ||
Adaptation Set | Adaptation Set 설명 | |||
@xlink:href | O | type AdaptationSet의 정확히 하나의 element를 포함해야 하는 원격 요소 개체에 대한 참조를 명세(specifies a reference to a remote element entity that shall contain exactly one element of type AdaptationSet) | ||
@xlink:actuate | OD default:"onRequest" |
"onLoad" 또는 "onRequest"일 수 있는 instructions의 처리를 제공(provides the processing instructions, which can be either "onLoad" or "onRequest".) | ||
CommonAttributesElements | - | |||
... | ||||
@ minLumaBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 luma bit depth 범위 중 최소 bit depth 값을 나타낸다. | ||
@ maxLumaBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 luma bit depth 범위 중 최대 bit depth 값을 나타낸다. | ||
@ minChromaBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 chroma bit depth 범위 중 최소 bit depth 값을 나타낸다. | ||
@ maxChromaBitDepth | O | 이 Adaptation Set이 포함하는 모든 Representation 들의 chroma bit depth 범위 중 최대 bit depth 값을 나타낸다. |
하기의 표 23은 maximum bit depth 및 minimum bit depth를 설명하는 attribute의 syntax를 나타낸다.
<!-- Adaptation Set --> <xs:complexType name="AdaptationSetType"> <xs:complexContent> <xs:extension base="RepresentationBaseType"> <xs:sequence> ... </xs:sequence> ... <xs:attribute name="minLumaBitDepth" type="xs:unsignedInt"/> <xs:attribute name="maxLumaBitDepth" type="xs:unsignedInt"/> <xs:attribute name="minChromaBitDepth" type="xs:unsignedInt"/> <xs:attribute name="maxChromaBitDepth" type="xs:unsignedInt"/> ... <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:extension> </xs:complexContent> </xs:complexType> |
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 단말
210: 서버
210: 서버
Claims (16)
- 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계;
상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계; 및
상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계
를 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상기 미디어 콘텐츠를 지각함에 있어서 곤란함을 겪는 장애인들을 지원하기 위한 정보를 포함하는,
미디어 제공 방법. - 제1항에 있어서,
상기 레프리젠테이션의 미디어 컴포넌트는 장애인의 문제에 대처하기 위해 증대되고, 상기의 증대는 명암 대비의 증대 및 컬러의 보정의 증대 중 하나 이상을 포함하는,
미디어 제공 방법. - 제1항에 있어서,
상기 장애인들을 지원하기 위한 정보는 레프리젠테이션이 의도된 사용을 나타내고, 상기 의도된 사용은 수화, 자막, 캡션 및 설명 중 하나 이상을 포함하는,
미디어 제공 방법. - 제1항에 있어서,
상기 장애인들을 지원하기 위한 정보는 외부의 MPEG-21 디지털 아이템 적응(Digital Item Adaptation; DIA)으로의 참조를 제공하는 속성을 포함하는,
미디어 제공 방법. - 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계;
상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계; 및
상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계
를 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 상기 메타데이터는 상기 하나 이상의 레프리젠테이션들 간의 관계를 설명하는 속성을 포함하는,
미디어 제공 방법 - 제5항에 있어서,
상기 하나 이상의 레프리젠테이션들 중 제1 레프리젠테이션은 상기 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함하고, 상기 제1 레프리젠테이션은 상기 일부의 레프리젠테이션들 중 하나와 함께 사용되는,
미디어 제공 방법. - 제6항에 있어서,
상기 제1 레프리젠테이션은 오디오 설명을 위한 레프리젠테이션인,
미디어 제공 방법. - 제6항에 있어서,
상기 일부의 레프리젠테이션들은 각각 비디오 컴포넌트의 레프리젠테이션인,
미디어 제공 방법. - 제5항에 있어서,
상기 하나 이상의 레프리젠테이션들 중 제1 레프리젠테이션은 상기 하나 이상의 레프리젠테이션들 중 일부의 레프리젠테이션들의 목록을 가리키는 속성을 포함하는,
미디어 제공 방법. - 제9항에 있어서,
상기 일부의 레프리젠테이션들 중 하나의 레프리젠테이션은 상기 제1 레프리젠테이션에 대체되어 사용되는,
미디어 제공 방법. - 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하는 단계;
상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들에 접근하는 단계; 및
상기 세그먼트들 내에 포함된 상기 미디어 콘텐츠의 데이터를 디코딩 및 렌더링하는 단계를 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션을 선택하기 위해 사용되는 비트 깊이 속성을 포함하는,
미디어 제공 방법 - 제11항에 있어서,
상기 비트 깊이 속성은 시각적 콘텐츠의 루마(luma) 또는 크로마(chroma) 샘플을 나타내기 위한 비트들의 개수를 가리키는,
미디어 제공 방법. - 제11항에 있어서,
상기 비트 깊이 속성은 모든 레프리젠테이션들의 비트 깊이 범위 중 최소 또는 최대 깊이 속성 중 하나 이상을 포함하는,
미디어 제공 방법. - 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진; 및
상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진
을 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상기 미디어 콘텐츠를 지각함에 있어서 곤란함을 겪는 장애인들을 지원하기 위한 정보를 포함하는,
미디어 제공 단말. - 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진; 및
상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진
을 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 상기 메타데이터는 상기 하나 이상의 레프리젠테이션들 간의 관계를 설명하는 속성을 포함하는,
미디어 제공 단말. - 하나 이상의 주기들을 포함하는 미디어 콘텐츠의 메타데이터를 수신하고, 상기 메타데이터가 제공하는 정보에 기반하여 상기 미디어의 세그먼트들을 수신하고, 상기 세그먼트들 내에 포함된 상기 미디어의 데이터를 디코딩하는 접근 엔진; 및
상기 접근 엔진으로부터 상기 미디어의 데이터를 제공받아 상기 미디어를 출력하는 미디어 엔진
을 포함하고,
각 주기는 상기 미디어의 하나 이상의 레프리젠테이션들을 포함하고, 각 레프리젠테이션은 상이한 디스플레이 비트 깊이들을 갖는 단말들을 위한 상이한 레프리젠테이션을 선택하기 위해 사용되는 비트 깊이 속성을 포함하는,
미디어 제공 단말.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/110,500 US20160337679A1 (en) | 2014-01-08 | 2015-01-07 | Method for displaying bit depth for playing video using dash |
CN201580004175.2A CN106063279A (zh) | 2014-01-08 | 2015-01-07 | 用于播放使用dash视频的位深表现方法 |
PCT/KR2015/000137 WO2015105327A1 (ko) | 2014-01-08 | 2015-01-07 | Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 |
EP15735102.4A EP3094097A4 (en) | 2014-01-08 | 2015-01-07 | Method for displaying bit depth for playing video using dash |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20140002487 | 2014-01-08 | ||
KR1020140002487 | 2014-01-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150083429A true KR20150083429A (ko) | 2015-07-17 |
Family
ID=53873510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150000758A KR20150083429A (ko) | 2014-01-08 | 2015-01-05 | Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160337679A1 (ko) |
EP (1) | EP3094097A4 (ko) |
KR (1) | KR20150083429A (ko) |
CN (1) | CN106063279A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170133274A (ko) * | 2016-05-25 | 2017-12-05 | 톰슨 라이센싱 | 목록을 설정하기 위한 방법 및 네트워크 장비 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9780891B2 (en) * | 2016-03-03 | 2017-10-03 | Electronics And Telecommunications Research Institute | Method and device for calibrating IQ imbalance and DC offset of RF tranceiver |
US10515194B2 (en) | 2016-08-29 | 2019-12-24 | Electronics And Telecommunications Research Institute | Key rotation scheme for DRM system in dash-based media service |
US20180146019A1 (en) * | 2016-11-21 | 2018-05-24 | International Business Machines Corporation | Light-weight resolution switching for online video streaming |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3581000D1 (de) * | 1984-05-19 | 1991-02-07 | British Aerospace | Industrielle verarbeitungs- und herstellungsverfahren. |
US4949248A (en) * | 1988-07-15 | 1990-08-14 | Caro Marshall A | System for shared remote access of multiple application programs executing in one or more computers |
ES2507642T3 (es) * | 2002-10-15 | 2014-10-15 | Verance Corporation | Sistema de supervisión de medios, de gestión y de información |
US8914835B2 (en) * | 2009-10-28 | 2014-12-16 | Qualcomm Incorporated | Streaming encoded video data |
EP2615841B1 (en) * | 2010-09-06 | 2017-12-13 | Electronics And Telecommunications Research Institute | Apparatus and method for providing streaming content |
KR101206698B1 (ko) * | 2010-10-06 | 2012-11-30 | 한국항공대학교산학협력단 | 스트리밍 콘텐츠 제공 장치 및 방법 |
EP2924989A1 (en) * | 2011-03-16 | 2015-09-30 | Electronics and Telecommunications Research Institute | Apparatus and method for providing streaming content using representations |
US8856283B2 (en) * | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
JP5829758B2 (ja) * | 2011-10-20 | 2015-12-09 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ビデオ等化のための方法およびシステム |
EP2769578B8 (en) * | 2011-10-21 | 2023-07-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Radio resource management concept for transferring media content from a server to a client |
US8977704B2 (en) * | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
CN109905728A (zh) * | 2012-01-19 | 2019-06-18 | Vid拓展公司 | 使用移动设备接收多媒体内容的方法及该移动设备 |
EP2880624B1 (en) * | 2012-03-26 | 2019-05-08 | Koninklijke Philips N.V. | Brightness region-based apparatuses and methods for hdr image encoding and decoding |
US9584793B2 (en) * | 2012-04-09 | 2017-02-28 | Intel Corporation | Signaling three-dimensional video information in communication networks |
US8923880B2 (en) * | 2012-09-28 | 2014-12-30 | Intel Corporation | Selective joinder of user equipment with wireless cell |
CN105027567A (zh) * | 2013-01-07 | 2015-11-04 | 诺基亚技术有限公司 | 用于视频编码和解码的方法和装置 |
US9438654B2 (en) * | 2013-04-18 | 2016-09-06 | Futurewei Technologies, Inc. | Fragment interface into dynamic adaptive streaming over hypertext transfer protocol presentations |
US20150006621A1 (en) * | 2013-07-01 | 2015-01-01 | Futurewei Technologies, Inc. | Adaptive Video Streaming for Information Centric Networks |
EP2962469A1 (en) * | 2013-07-15 | 2016-01-06 | Huawei Technologies Co., Ltd. | Just-in-time dereferencing of remote elements in dynamic adaptive streaming over hypertext transfer protocol |
JP6064251B2 (ja) * | 2013-07-19 | 2017-01-25 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 動的適応型ハイパーテキスト転送プロトコルストリーミングにおけるメタデータ情報のシグナリングおよび搬送 |
-
2015
- 2015-01-05 KR KR1020150000758A patent/KR20150083429A/ko not_active Application Discontinuation
- 2015-01-07 US US15/110,500 patent/US20160337679A1/en not_active Abandoned
- 2015-01-07 CN CN201580004175.2A patent/CN106063279A/zh active Pending
- 2015-01-07 EP EP15735102.4A patent/EP3094097A4/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170133274A (ko) * | 2016-05-25 | 2017-12-05 | 톰슨 라이센싱 | 목록을 설정하기 위한 방법 및 네트워크 장비 |
Also Published As
Publication number | Publication date |
---|---|
EP3094097A1 (en) | 2016-11-16 |
EP3094097A4 (en) | 2017-09-13 |
US20160337679A1 (en) | 2016-11-17 |
CN106063279A (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101924987B1 (ko) | 레프리젠테이션을 사용하는 스트리밍 콘텐츠 제공 장치 및 방법 | |
US10356145B2 (en) | Method and device for providing streaming content | |
KR101206111B1 (ko) | 스트리밍 콘텐츠 제공 장치 및 방법 | |
US20170026451A1 (en) | Apparatus and method for providing streaming content | |
KR102042213B1 (ko) | 스트리밍 컨텐츠 제공 장치 및 방법 | |
KR20150083429A (ko) | Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |