KR101956113B1 - Apparatus and method for providing streaming contents - Google Patents

Apparatus and method for providing streaming contents Download PDF

Info

Publication number
KR101956113B1
KR101956113B1 KR1020180077815A KR20180077815A KR101956113B1 KR 101956113 B1 KR101956113 B1 KR 101956113B1 KR 1020180077815 A KR1020180077815 A KR 1020180077815A KR 20180077815 A KR20180077815 A KR 20180077815A KR 101956113 B1 KR101956113 B1 KR 101956113B1
Authority
KR
South Korea
Prior art keywords
type
name
media
attribute
content
Prior art date
Application number
KR1020180077815A
Other languages
Korean (ko)
Other versions
KR20180082381A (en
Inventor
탕쯔엉꽁
이진영
배성준
강정원
정순흥
박상택
류원
김재곤
Original Assignee
아이디어허브 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아이디어허브 주식회사 filed Critical 아이디어허브 주식회사
Publication of KR20180082381A publication Critical patent/KR20180082381A/en
Application granted granted Critical
Publication of KR101956113B1 publication Critical patent/KR101956113B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

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

Abstract

콘텐츠에 대한 메타데이터를 사용하는 적응형 HTTP 스트리밍 서비스를 위한 방법 및 장치가 개시된다. 상기의 메타데이터는 초기의 버퍼된 미디어 콘텐츠의 최소 양을 가리키는 최소 버퍼 시간 속성을 포함한다. 단말은 콘텐츠의 재생 전에 서버로부터 콘텐츠를 전송받아 적어도 상기의 최소 양만큼 버퍼링한다. 상기의 메타데이터는 URL이 가리키는 대상의 범위를 지정하는 범위 속성을 포함한다. 단말은 상기 URL로부터 상기 범위 속성이 지정하는 바이트들을 수신하고, 수신된 바이트들을 사용하여 콘텐츠를 재생한다.A method and apparatus for an adaptive HTTP streaming service using metadata for content is disclosed. The metadata includes a minimum buffer time attribute indicating a minimum amount of initial buffered media content. The terminal receives the content from the server before reproducing the content and buffers the content by at least the minimum amount. The meta data includes a range attribute specifying a range of an object pointed to by the URL. The terminal receives the bytes specified by the range attribute from the URL, and reproduces the contents using the received bytes.

Description

스트리밍 컨텐츠 제공 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING STREAMING CONTENTS}[0001] APPARATUS AND METHOD FOR PROVIDING STREAMING CONTENTS [0002]

본 발명의 기술 분야는 스트리밍 컨텐츠 제공 기술에 관한 것으로, 특히, 적응적 스트리밍을 이용한 미디어 콘텐츠 제공 장치 및 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a streaming content providing technology, and more particularly, to an apparatus and method for providing media content using adaptive streaming.

스트리밍(streaming)은 소리 및 동영상 등의 멀티미디어 콘텐츠를 전송 및 재생하기 위한 방식 중 하나이다. 클라이언트는 스트리밍을 통해 콘텐츠을 수신하는 동시에 상기의 콘텐츠를 재생할 수 있다.Streaming is one of the methods for transmitting and reproducing multimedia contents such as sound and video. The client can play the above content while receiving the content through streaming.

적응적 스트리밍 서비스는, 클라이언트의 요청 및 상기의 요청에 대한 서버의 응답으로 구성되는 통신 방식을 통해 스트리밍 서비스를 제공하는 것을 의미한다.The adaptive streaming service means providing a streaming service through a communication method composed of a client's request and a server's response to the request.

클라이언트는 적응적 스트리밍 서비스를 통해 자신의 환경(예컨대, 자신의 전송 채널)에 적합한 미디어 시퀀스를 요청할 수 있으며, 서버는 자신이 갖고 있는 다양한 퀄리티의 미디어 시퀀스들 중 클라이언트의 요청에 부합하는 미디어 시퀀스를 제공할 수 있다.A client may request a media sequence suitable for its environment (e.g., its own transport channel) through an adaptive streaming service, and the server may request a media sequence corresponding to the client's request among various quality media sequences of its own .

적응적 스트리밍 서비스는 다양한 프로토콜에 기반하여 제공될 수 있다.Adaptive streaming services can be provided based on various protocols.

HTTP 적응적 스트리밍 서비스는 HTTP 프로코콜에 기반하여 제공되는 적응적 스트리밍 서비스를 의미한다. HTTP 적응적 스트리밍 서비스의 클라이언트는 HTTP 프로토콜을 사용하여 서버로부터 콘텐츠를 제공받을 수 있으며, 스트리밍 서비스와 관련된 요청을 서버에게 전송할 수 있다.The HTTP adaptive streaming service means an adaptive streaming service provided based on the HTTP protocol. The client of the HTTP adaptive streaming service can receive the content from the server using the HTTP protocol and can transmit the request related to the streaming service to the server.

본 발명의 일 실시예는 콘텐츠를 재생함에 있어 초기에 버퍼링되는 미디어의 최소 양을 지정하는 장치 및 방법을 제공할 수 있다.One embodiment of the present invention may provide an apparatus and method for specifying a minimum amount of media initially buffered in playing back content.

본 발명의 일 실시예는 URL이 가리키는 대상으로부터 특정한 범위 내의 바이트들을 수신하여 콘텐츠를 재생하는 장치 및 방법을 제공할 수 있다.An embodiment of the present invention can provide an apparatus and method for reproducing contents by receiving bytes within a specific range from a target point indicated by a URL.

본 발명의 일 측에 따르면, 클라이언트가 하나 이상의 주기들을 포함하는 미디어 콘텐츠를 제공하는 방법에 있어서, 서버로부터 상기 미디어 콘텐츠에 대한 메타데이터를 수신하는 단계 - 상기 메타데이터는 상기 미디어 콘텐츠를 재생하기 위해 필요한 초기의 버퍼된 미디어 콘텐츠의 최소 양을 가리키는 최소 버퍼 시간 속성을 포함함 -, 상기 서버로부터 상기 미디어 콘텐츠를 전송받아 적어도 상기 최소 양만큼 버퍼링하는 단계 및 상기 미디어 콘텐츠를 재생하는 단계를 포함하는, 콘텐츠 제공 방법이 제공된다.According to an aspect of the invention, there is provided a method of providing media content, the client including one or more periods, the method comprising: receiving metadata from the server for the media content, The method comprising: receiving a media content from the server; buffering at least the minimum amount of media content from the server; and playing the media content. A content providing method is provided.

상기 메타데이터는 상기 미디어 콘텐츠의 미디어 정보(media presentation description; MPD)일 수 있다.The metadata may be a media presentation description (MPD) of the media content.

상기 최소 버퍼 시간 속성은 상기 콘텐츠가 상기 메타데이터의 대역폭 속성의 값 또는 상기 대역폭 속성의 값 이상으로 연속적으로 전송될 때 상기 콘텐츠 미디어를 재생하기 위해 필요한 초기의 버퍼된 미디어의 최소 양을 가리킬 수 있다. The minimum buffer time attribute may indicate a minimum amount of initial buffered media needed to play the content media when the content is continuously transmitted at or above the value of the bandwidth attribute of the metadata or the value of the bandwidth attribute .

각 주기는 상기 미디어 콘텐츠 하나 이상의 레프리젠테이션(representation)들을 포함할 수 있다. - 상기 레프리젠테이션은 상기 주기 내의 하나 이상의 미디어 컴포넌트들의 구조화된 컬렉션임 -Each cycle may include one or more representations of the media content. The representation being a structured collection of one or more media components within the period;

상기 대역폭 속성은 상기 레프리젠테이션에 대한 속성일 수 있다.The bandwidth attribute may be an attribute for the presentation.

상기 대역폭 속성은 상기 클라이언트가 적어도 상기 최소 버퍼 시간만큼 상기 레프리젠테이션을 버퍼링한 후, 상기 레프리젠테이션이 연속적으로 전송될 수 있는 가상적인 상수 비트레이트 채널의 최소 대역폭일 수 있다.The bandwidth attribute may be the minimum bandwidth of a virtual constant bit rate channel in which the presentation can be continuously transmitted after the client has buffered the presentation by at least the minimum buffer time.

상기 레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다.The representation may include one or more segments.

본 발명의 다른 일 측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠를 제공하는 단말에 있어서, 상기 미디어 콘텐츠에 대한 메타데이터를 수신하고 - 상기 메타데이터는 상기 미디어 콘텐츠를 재생하기 위해 필요한 초기의 버퍼된 미디어 콘텐츠의 최소 양을 가리키는 최소 버퍼 시간 속성을 포함함 -, 상기 서버로부터 상기 미디어 콘텐츠를 전송받아 적어도 상기 최소 양만큼 버퍼링하는, 접근 엔진 및 상기 접근 엔진으로부터 상기 미디어 콘텐츠를 제공받아 상기 미디어 콘텐츠를 재생하는 미디어 엔진을 포함하는 단말이 제공된다.According to another aspect of the present invention there is provided a terminal for providing media content comprising one or more periods, the method comprising: receiving metadata about the media content, the metadata comprising an initial buffer An access engine for receiving the media content from the server and at least buffering the media content for at least the minimum amount; and a processor for receiving the media content from the access engine, And a media engine for reproducing the media engine.

본 발명의 또 다른 일측에 따르면, 클라이언트가 하나 이상의 주기들을 포함하는 미디어 콘텐츠를 제공하는 방법에 있어서, 서버로부터 상기 미디어 콘텐츠에 대한 메타데이터를 수신하는 단계 - 상기 메타데이터는 URL 속성 및 범위 속성을 포함함 -, 상기 URL 속성이 가리키는 URL로부터 상기 범위 속성이 지정하는 바이트들을 수신하는 단계 및 상기 수신된 바이트들을 사용하여 상기 미디어 콘텐츠를 재생하는 단계를 포함하는, 콘텐츠 제공 방법이 제공된다.According to another aspect of the present invention, there is provided a method of providing media content, the client including one or more periods, the method comprising: receiving metadata for the media content from a server, the metadata including a URL attribute and a range attribute - receiving the bytes specified by the range attribute from the URL pointed to by the URL attribute, and playing the media content using the received bytes.

상기 바이트 범위가 지정하는 바이트들은 상기 미디어 콘텐츠의 세그먼트를 지정하할 수 있다.The bytes specified by the byte range may specify a segment of the media content.

상기 범위 속성은 다중의 바이트 범위들을 가리킬 수 있다.The range attribute may indicate multiple byte ranges.

상기 바이트들은 상기 URL에 대한 상기 바이트 범위에 의해 지시되는 부분 HTTP GET 명령에 의해 수신될 수 있다.The bytes may be received by a partial HTTP GET command indicated by the byte range for the URL.

본 발명의 또 다른 일측에 따르면, 하나 이상의 주기들을 포함하는 미디어 콘텐츠를 제공하는 단말에 있어서, 상기 미디어 콘텐츠에 대한 메타데이터를 수신하고 - 상기 메타데이터는 URL 속성 및 범위 속성을 포함함 -, 상기 URL 속성이 가리키는 URL로부터 상기 범위 속성이 지정하는 바이트들을 수신하는, 접근 엔진; 및 상기 수신된 바이트들을 사용하여 상기 미디어 콘텐츠를 재생하는 미디어 엔진을 포함하는 단말이 제공된다.According to another aspect of the present invention, there is provided a terminal for providing media content including one or more periods, the method comprising: receiving metadata about the media content, the metadata including a URL attribute and a range attribute; An access engine that receives the bytes specified by the scope attribute from the URL pointed to by the URL attribute; And a media engine for reproducing the media content using the received bytes.

상기 바이트 범위가 지정하는 바이트들은 상기 미디어 콘텐츠의 세그먼트를 지정할 수 있다.The bytes specified by the byte range may specify a segment of the media content.

상기 범위 속성은 다중의 바이트 범위들을 가리킬 수 있다.The range attribute may indicate multiple byte ranges.

상기 바이트들은 상기 URL에 대한 상기 바이트 범위에 의해 지시되는 부분 HTTP GET 명령에 의해 수신될 수 있다, 단말.The bytes may be received by a partial HTTP GET command indicated by the byte range for the URL.

본 발명의 또 다른 일 측에 따르면, 클라이언트가 하나 이상의 인터벌을 포함하는 콘텐츠를 처리하는 방법에 있어서, 서버로부터 상기 콘텐츠의 인터벌에 대한 메타데이터를 수신하는 단계, 상기 메타데이터를 처리하고, 상기 처리에 기반하여 상기 인터벌에 대해 적합한 프래그먼트를 서버에게 요청하는 단계 및 상기 서버로부터 상기 프래그먼트를 수신하는 단계를 포함하는 콘텐츠 처리 방법이 제공된다.According to another aspect of the present invention, there is provided a method for a client to process content comprising one or more intervals, the method comprising: receiving metadata about an interval of the content from a server; processing the metadata; Requesting a suitable fragment for the interval based on the received fragment, and receiving the fragment from the server.

상기 콘텐츠는 요청에 따른 콘텐츠 또는 라이브 콘텐츠일 수 있다.The content may be content on demand or live content.

상기 메타데이터는 일반 정보를 포함할 수 있고, 상기 일반 정보는 상기 콘텐츠의 일반 설명 및 상기 인터벌의 일반 설명을 포함할 수 있다.The metadata may include general information, and the general information may include a general description of the content and a general description of the interval.

상기 콘텐츠의 일반 설명은 지속시간 및 시작 시각 중 하나 이상을 포함할 수 있다.The general description of the content may include one or more of a duration and a start time.

상기 메타데이터는 서비스의 품질 정보를 포함할 수 있고, 상기 서비스의 품질 정보는 상기 콘텐츠의 대안들 각각의 특성들을 설명할 수 있다.The metadata may include quality information of the service, and the quality information of the service may describe characteristics of each of the alternatives of the content.

상기 특성들은 비트레이트, 해상도 및 품질 중 하나 이상을 포함할 수 있다.The characteristics may include one or more of bit rate, resolution and quality.

상기 대안들 각각은 물리적 또는 가상일 수 있다.Each of the alternatives may be physical or virtual.

상기 적합한 프래그먼트는 상기 대안들의 정보에 기반하여 선택될 수 있다.The appropriate fragment may be selected based on the information of the alternatives.

상기 메타데이터는 매핑 정보를 포함할 수 있고, 상기 매핑 정보는 상기 콘텐츠를 추출할 위치들을 설명할 수 있다.The meta data may include mapping information, and the mapping information may describe locations from which the content is to be extracted.

상기 메타데이터는 콘텐츠-레벨 정보 및 인터벌 레벨 정보를 포함할 수 있고, 모든 대안들의 결정 및 위치들의 해결을 위한 계산은 상기 서버에 의해 수행될 수 있다.The metadata may include content-level information and interval level information, and calculations for resolution of all alternatives decisions and locations may be performed by the server.

상기의 요청은 상기 인터벌 내에서 상기 프래그먼트의 순서 값 및 상기 인터벌 내에서 상기 프래그먼트의 시작 시각을 정의할 수 있다.The request may define an order value of the fragment within the interval and a start time of the fragment within the interval.

상기 메타데이터는 콘텐츠-레벨 정보, 인터벌 레벨 정보 및 QoS 정보를 포함할 수 있고, 모든 대안들의 결정 및 위치들의 해결을 위한 계산은 상기 클라이언트 및 상기 서버에 의해 분산하여 수행될 수 있다.The metadata may include content-level information, interval level information, and QoS information, and calculations for resolution of all alternatives and locations may be performed by the client and the server in a distributed manner.

상기의 요청은 대안의 순서 값 - 상기 대안은 상기 순서 값에 따라 QoS 정보 내에서 나타남 -, 상기 QoS 정보 내에서 나타나는 적응 연산자의 값들, 상기 QoS 정보 내에서 나타나는 자원의 값들 중 하나를 포함할 수 있다.The request may include an alternative order value, the alternative appears in the QoS information according to the order value, values of the adaptation operator appearing in the QoS information, and one of the values of the resource appearing in the QoS information have.

상기 적응 연산자는 버려질 확장가능한 오디오 레이어들의 개수, 버려질 확장가능한 비디오의 템포럴 레이어들의 개수, 버려질 확장가능한 비디오의 공간적 레이어들의 개수, 버려질 확장가능한 비디오의 품질 레이어들의 개수, 버려질 확장가능한 비디오의 우선순위 레이어들의 개수 중 하나 이상을 포함할 수 있다.The adaptation operator may include a number of audio layers to be discarded, a number of temporal layers of discardable scalable video, a number of spatial layers of discardable scalable video, a number of quality layers of discardable scalable video, Lt; RTI ID = 0.0 > possible < / RTI > priority layers of video.

상기 자원의 타입은 상기 대안의 평균 비트레이트, 상기 대안의 수직 해상도, 상기 대안의 수평 해상도 및 상기 대안의 프레임레이트 중 하나 이상을 포함할 수 있다.The type of resource may include one or more of an average bit rate of the alternative, the alternate vertical resolution, the alternate horizontal resolution, and the alternate frame rate.

상기 메타데이터는 콘텐츠-레벨 정보, 인터벌 레벨 정보, QoS 정보 및 매핑 정보를 포함할 수 있고, 모든 대안들의 결정 및 위치들의 해결을 위한 계산은 상기 클라이언트에 의해 수행될 수 있다.The metadata may include content-level information, interval level information, QoS information and mapping information, and calculations for resolution of all alternatives decisions and locations may be performed by the client.

상기 요청은 MPEG-2 TS 경계를 위한 파라미터, ISO 미디어 파일 경계를 위한 파라미터, 로(raw) 바이크-시퀀스로서 간주되는 파일을 위한 파라미터들 중 하나 이상을 포함할 수 있다.The request may include one or more of parameters for MPEG-2 TS boundaries, parameters for ISO media file boundaries, and files considered as raw bike-sequences.

상기 메타데이터는 콘텐츠-레벨 정보, 인터벌 레벨 정보, QoS 정보 및 매핑 정보로 물리적으로 분리되여, 상기 콘텐츠-레벨 정보, 상기 인터벌 레벨 정보, 상기 QoS 정보 및 상기 매핑 정보의 관련된 부분들의 링킹은 참조에 의해 이루어질 수 있다.The metadata is physically separated into content-level information, interval level information, QoS information, and mapping information, and the linking of the content-level information, the interval level information, the QoS information, ≪ / RTI >

본 발명의 또 다른 일 측에 따르면, 서버가 하나 이상의 인터벌을 포함하는 콘텐츠를 제공하는 방법에 있어서, 상기 콘텐츠의 인터벌에 대한 메타데이터를 클라이언트에게 전송하는 단계, 상기 클라이언트로부터 프래그먼트의 요청을 수신하는 단계 - 상기 프래그먼트는 상기 메타데이터에 기반하여 선택된 상기 인터벌에 적합한 프래그먼트임 -, 상기 콘텐츠를 파스하고, 상기 프래그먼트에 적합한 데이터 파트를 추출하는 단계 및 상기 프래그먼트를 상기 클라이언트에게 전송하는 단계를 포함하는, 콘텐츠 서비스 제공 방법이 제공된다.According to another aspect of the present invention there is provided a method of providing a content comprising one or more intervals, the method comprising the steps of: sending metadata to an interval of the content; receiving a request for fragments from the client; Wherein the fragment is a fragment suitable for the interval selected based on the metadata; parsing the content; extracting a data part suitable for the fragment; and transmitting the fragment to the client. A content service providing method is provided.

본 발명의 또 다른 일측에 따르면, 하나 이상의 인터벌을 포함하는 콘텐츠를 처리하는 클라이언트에 있어서, 서버로부터 상기 콘텐츠의 인터벌에 대한 메타데이터를 수신하고, 상기 인터벌에 대해 적합한 프래그먼트를 서버에게 요청하고, 상기 서버로부터 상기 프래그먼트를 수신하는 송수신부 및 상기 메타데이터를 처리하고, 상기 처리에 기반하여 상기 인터벌에 대해 적합한 상기 프래그먼트를 선택하는 제어부를 포함하는, 클라이언트가 제공된다.According to another aspect of the present invention, there is provided a client for processing content including one or more intervals, the client for receiving metadata about the interval of the content from a server, requesting a suitable fragment for the interval from the server, A transmitter and receiver for receiving the fragment from a server and a controller for processing the metadata and selecting the fragment suitable for the interval based on the processing.

본 발명의 일 실시예에 따른 방법 및 장치는 콘텐츠를 재생함에 있어 초기에 버퍼링되는 미디어의 최소 양을 지정할 수 있다.The method and apparatus according to an embodiment of the present invention may specify a minimum amount of media initially buffered in playing back the content.

본 발명의 일 실시예에 따른 방법 및 장치는 URL이 가리키는 대상으로부터 특정한 범위 내의 바이트들을 수신하여 콘텐츠를 재생할 수 있다.A method and an apparatus according to an embodiment of the present invention can receive contents of bytes within a specific range from an object indicated by a URL and reproduce the contents.

도 1은 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.
도 2는 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.
도 3은 본 발명의 일 예에 따른 콘텐츠 디비전(division)의 계층 및 시그널링 정보의 레벨들(levels)을 나타낸다.
도 4는 본 발명의 일 예에 따른 MPEG-2 TS 내에서의 가상 경계들의 감지를 설명한다.
도 5는 본 발명의 일 실시예에 따른 클라이언트(100)의 구조도이다.
도 6은 본 발명의 일 실시예에 따른 클라이언트(100)의 구조도이다.
Figure 1 illustrates categories of signaling information according to an example of the present invention.
FIG. 2 illustrates categories of signaling information according to an example of the present invention.
FIG. 3 illustrates the layers of a content division and levels of signaling information according to an example of the present invention.
Figure 4 illustrates the detection of virtual boundaries within an MPEG-2 TS according to an example of the present invention.
5 is a structural diagram of a client 100 according to an embodiment of the present invention.
6 is a structural diagram of a client 100 according to an embodiment of the present invention.

이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

HTTP 상의 동적 적응적 스트리밍(Dynamic Adaptive Streaming over HTTP; DASH)는 1) HTTP 서버로부터 HTTP 클라이언트로의 미디어 콘텐츠의 전달을 가능하게 하고, 2) 표준(standard) HTTP 캐쉬(cache)들에 의한 콘텐츠의 캐슁(caching)을 가능하게 하는 포맷(format)들을 명세한다.Dynamic Adaptive Streaming over HTTP (DASH) enables the delivery of media content from an HTTP server to an HTTP client, and 2) the content of content by standard HTTP caches. Specifies the formats that enable caching.

도 1은 본 발명의 일 실시예에 따른 콘텐츠 처리 방법의 신호 흐름도이다.1 is a signal flow diagram of a content processing method according to an embodiment of the present invention.

미디어 컴포넌트(media component)는, 예컨대 대역폭(bandwidth), 언어(language) 또는 해상도(resolution)와 같은, 특정한 속성(attribute)들을 갖는 오디오(audio), 비디오(video) 또는 자막(timed text)과 같은 개별(individual) 미디어 타입(type)들의 인코드된(encoded) 버전(version)이다.A media component may be any audio, video, or timed text having certain attributes, such as, for example, bandwidth, language or resolution. Is an encoded version of an individual media type.

미디어 콘텐츠는, 예컨대 비디오, 오디오 및 자막과 같은, 공통(common) 타임라인(timeline)을 갖는 미디어 컴포넌트들의 집합이다. 또한, 미디어 컴포넌트들은 프로그램 또는 영화로서 어떻게(예를 들면, 개별적으로(individually), 결합하여(jointly) 또는 상호 배타적(mutually exclusive)으로) 미디어 컴포넌트들이 상연(present)될 지에 대한 관계(relationships)를 갖는다.Media content is a collection of media components that have a common timeline, such as video, audio, and subtitles. In addition, the media components may include relationships (e.g., individually, jointly, or mutually exclusive) as to whether the media components will be presented as a program or movie .

미디어 콘텐츠 및 콘텐츠는 동일한 의미로 사용될 수 있다.The media content and the content may be used in the same sense.

미디어 프리젠테이션은 연속적인 미디어의 컴포넌트들로 구성된 미디어 콘텐츠의 제한되거나(bounded) 제한되지 않은(unbounded) 프리젠테이션(presentation)을 설정하는(establish) 데이터의 구조화된(structured) 컬렉션(collection)이다.A media presentation is a structured collection of data that establishes bounded, unbounded presentation of media content composed of components of continuous media.

즉, 미디어 프리젠테이션은 스트리밍 서비스를 사용자에게 제공하기 위해, DASH 클라이언트에게 접근 가능한 데이터의 구조화된 컬렉션이다.That is, the media presentation is a structured collection of data accessible to the DASH client to provide the streaming service to the user.

미디어 정보(media presentation description; MPD)는 미디어 프리젠테이션의 양식화된(formalized) 설명(description)일 수 있다.A media presentation description (MPD) may be a formalized description of a media presentation.

미디어 프리젠테이션은, MPD의 가능한 업데이트들(possible updates)을 포함하여, MPD에 의해 설명될 수 있다.The media presentation may be described by the MPD, including possible updates of the MPD.

콘텐츠는 요청(demand)에 따른 콘텐츠 또는 라이브(live) 콘텐츠일 수 있다.The content may be content on demand or live content.

콘텐츠는 하나 이상의 인터벌들(interval)로 나뉘어질 수 있다. 즉, 콘텐츠는 하나 이상의 인터벌들을 포함할 수 있다.The content may be divided into one or more intervals. That is, the content may include one or more intervals.

인터벌 및 주기(period)는 동일한 의미로 사용될 수 있다. 주기는 3GPP(Generation Partnership Project) 적응적 HTTP 스트리밍의 용어일 수 있다.Interval and period can be used in the same sense. The period may be a term of 3GPP (Generation Partnership Project) adaptive HTTP streaming.

주기는 미디어 프리젠테이션의 인터벌일 수 있다. 모든 주기들의 연속적인 일련(sequence)은 미디어 프리젠테이션을 구성한다.The period may be the interval of the media presentation. A sequence of all the cycles constitutes a media presentation.

즉, 미디어 프리젠테이션은 하나 이상의 주기들을 포함할 수 있다.That is, the media presentation may include one or more periods.

하나 이상의 인터벌들은 기본 유닛일 수 있다. 하나 이상의 인터벌들은 메타데이터를 시그널링함에 의해 설명될 수 있다. 즉, 메타데이터는 하나 이상의 인터벌들 각각을 설명할 수 있다.The one or more intervals may be a base unit. The one or more intervals may be described by signaling the metadata. That is, the metadata may describe each of one or more intervals.

상기의 메타데이터는 MPD일 수 있다.The above metadata may be MPD.

MPD는 세그먼트를 위한 자원 식별자들을 알리기 위한 포맷을 정의할 수 있다. MPD는 미디어 프리젠테이션 내에서의 식별된 자원들에 대한 컨텍스트(context)를 제공할 수 있다. 자원 식별자들은 HTTP-URL일 수 있다. URL들은 바이트 범위(byte range) 속성에 의해 제한될 수 있다.The MPD may define a format for announcing resource identifiers for the segment. The MPD can provide a context for the identified resources within the media presentation. The resource identifiers may be HTTP-URLs. URLs may be limited by byte range attributes.

각 인터벌은 프래그먼트(fragment)들로 나뉘어질 수 있다.Each interval can be divided into fragments.

프래그먼트 및 세그먼트(segment)는 동일한 의미로 사용될 수 있다. 세그먼트는 3GPP(Generation Partnership Project) 적응적 HTTP 스트리밍의 용어일 수 있다.Fragments and segments may be used interchangeably. The segment may be a term of 3GPP (Generation Partnership Project) adaptive HTTP streaming.

세그먼트는, 예컨대 RFC 2616에서 정의된, HTTP-URL에 대한 HTTP/1.1 GET 요청(또는, 바이트 범위(range)에 의해 가리켜진(indicated) 일부에 대한 GET 요청)에 대한 응답(response)의 객체(entity) 바디(body)를 의미할 수 있다.메타데이터는 URL 속성 및 범위 속성을 포함할 수 있다. 클라이언트는 URL 속성이 가리키는 URL로부터, 범위 속성이 지정하는 바이트들을 수신할 수 있다. 즉, 상기 바이트들은 URL에 대한, 바이트 범위에 지시되는 부분(partial HTTP GET 명령에 의해 수신될 수 있다. 여기서, 범위 속성이 지정하는 바이트들은 전술된 세그먼트를 나타낼 수 있다.The segment may be an object of a response to an HTTP / 1.1 GET request (or a GET request for a portion indicated by the byte range) to an HTTP-URL as defined in RFC 2616, entity body. Metadata can include URL attributes and scope attributes. The client can receive the bytes specified by the scope attribute from the URL pointed to by the URL attribute. That is, the bytes may be received by the partial HTTP GET command for the URL, indicated by the byte range, where the bytes specified by the range attribute may represent the segment described above.

범위 속성은 다중의 바이트 범위들을 가리킬 수 있다.The range attribute may indicate multiple byte ranges.

클라이언트는, 수신된 바이트들(즉, 세그먼트)을 사용하여 미디어 콘텐츠를 재생할 수 있다.The client can play the media content using the received bytes (i.e., segments).

부(sub)-세그먼트는 세그먼트 레벨에서의 세그먼트 인덱스(index)에 의해 인덱스될 수 있는 세그먼트들 내의 가장 작은(smallest) 유닛(unit)을 의미할 수 있다.A sub-segment may mean a smallest unit in segments that can be indexed by a segment index at the segment level.

하나의 인터벌에 대응하는 두 개 이상의 프래그먼트의 집합들이 있을 수 있다. 프래그먼트의 집합들 각각을 대안(alternative)으로 명명한다.There can be a set of two or more fragments corresponding to one interval. Each of the sets of fragments is named as an alternative.

대안 및 레프리젠테이션(representation)(또는, 표현)은 동일한 의미로 사용될 수 있다.Alternatives and representations (or expressions) may be used interchangeably.

각 주기는 하나 이상의 그룹들을 포함할 수 있다.Each cycle may include one or more groups.

각 그룹은 동일한 미디어 콘텐츠의 하나 이상의 레프리젠테이션들을 포함할 수 있다.Each group may contain one or more representations of the same media content.

레프리젠테이션은 하나의 주기 내의 하나 이상의 미디어 컴포넌트들의 구조화된(structured) 컬렉션이다.A representation is a structured collection of one or more media components in a cycle.

MPD(또는, MPD 요소)는 클라이언트가 하나 이상의 레프리젠테이션을 선택하는 것을 가능하게 하는 설명적인 정보를 제공한다.The MPD (or MPD element) provides descriptive information that enables the client to select one or more presentations.

임의 접근 포인트(Random Access Point; RAP)는 미디어 세그먼트 내의 특정한 위치이다. RAP는 단지 미디어 세그먼트 내에 포함된 정보만을 사용하여 RAP의 위치로부터 계속하여 재생(playback)을 시작할 수 있는 위치인 것으로 식별된다.A random access point (RAP) is a specific location within a media segment. The RAP is identified as being the location where it can only continue to play back from the location of the RAP using only the information contained within the media segment.

각 레프리젠테이션은 하나 이상의 세그먼트들로 구성될 수 있다. 즉, 레프리젠테이션은 하나 이상의 세그먼트들을 포함할 수 있다.Each representation may consist of one or more segments. That is, the representation may include one or more segments.

MPD는 1) 세그먼트들을 접근하고, 2) 사용자에게 스트리밍 서비스를 제공하기 위해 적합한(appropriate) HTTP-URL들을 구성하기 위해 DASH 클라이언트에게 요구되는 메타데이터를 포함하는 문서이다. HTTP-URL들은 절대적이거나 상대적일 수 있다.MPD is a document that contains metadata required by a DASH client to 1) access segments and 2) configure the appropriate HTTP-URLs to provide a streaming service to a user. HTTP-URLs can be absolute or relative.

MPD는 XML-문서일 수 있다.MPD can be an XML-document.

MPD는 MPD 요소(element)를 포함할 수 있다. MPD는 단지 1 개의 MPD 요소만을 포함할 수 있다.The MPD may include an MPD element. The MPD may contain only one MPD element.

*클라이언트(100)는 DASH 클라이언트일 수 있다.The client 100 may be a DASH client.

DASH 클라이언트는 RFC 2616에 명세된 클라이언트와 호환될 수 있다.DASH clients are compatible with the clients specified in RFC 2616.

DASH 클라이언트는, 세그먼트들 또는 세그먼트들의 일부들에 접군하기 위해, RFC 2616에서 명세된 것처럼, 일반적으로 HTTP GET 메쏘드(method) 또는 HTTP partial GET 메쏘드를 사용할 수 있다.A DASH client can use the HTTP GET method or HTTP partial GET method, as specified in RFC 2616, to contact segments or portions of segments.

서버(110)는 DASH 세그먼트들을 호스팅(hosting)할 수 있다. 서버(110)는 RFC 2616에 명세된 서버와 호환될 수 있다.Server 110 may host DASH segments. The server 110 may be compatible with the server specified in RFC 2616.

단계(120)에서, 클라이언트(100)는 서버(110)로부터 1) 콘텐츠에 대한 메타데이터 또는 2) 콘텐츠의 특정 인터벌에 대한 메타데이터를 수신한다. 즉, 서버(110)는 클라이언트(100)에게 1) 콘텐츠에 대한 메타데이터 또는 콘텐츠의 특정 인터벌에 대한 메타데이터를 전송한다. 특정 인터벌은 콘텐츠를 구성하는 하나 이상의 인터벌들 중 현재 처리되는 인터벌을 나타낸다.At step 120, the client 100 receives 1) metadata for the content or 2) metadata for a particular interval of content from the server 110. [ That is, the server 110 transmits 1) metadata about the content or metadata about a specific interval of the content to the client 100. A specific interval indicates an interval currently processed among one or more intervals constituting the content.

단계(130)에서, 클라이언트(100)는 특정인터벌에 대한 메타데이터를 처리한다.In step 130, the client 100 processes the metadata for a particular interval.

단계(140)에서, 클라이언트(100)는 프래그먼트를 서버(110)에게 요청한다. 클라이언트(100)는 상기의 메타데이터 처리에 기반하여 특정 인터벌에 대한 적합한 프래그먼트들을 서버(110)에게 요청할 수 있다. 즉, 요청되는 프래그먼트들은 메타데이터에 기반하여 선택된 것이다.In step 140, the client 100 requests the server 110 for a fragment. The client 100 may request the server 110 for appropriate fragments for a specific interval based on the above metadata processing. That is, the requested fragments are selected based on the metadata.

단계(145)에서, 몇몇 경우에 있어서, 서버는 콘텐츠(예컨대, SVC를 위한 MP4 파일)를 파스(parse)할 필요가 있고, 상기 요청된 프래그먼트에 적합한 데이터 파트를 추출할 필요가 있다.In step 145, in some cases, the server needs to parse the content (e.g., an MP4 file for the SVC) and needs to extract the appropriate data part for the requested fragment.

단계(150)에서, 서버(110)는 클라이언트로(100)부터의 각 요청에 대해 적합한 프래그먼트를 클라이언트(100)로 전송한다. 클라이언트(100)는 서버로부터 프래그먼트를 수신한다.At step 150, the server 110 sends a suitable fragment to the client 100 for each request from the client 100. [ The client 100 receives the fragment from the server.

다음, 전체 프로세스가 처음부터 실행된다. 즉, 특정 인터벌의 다음 인터벌에 대해 단계(120)가 반복된다.Next, the entire process is executed from the beginning. That is, step 120 is repeated for the next interval of the specific interval.

클라이언트(100)는, 단계들(120 내지 150)이 반복됨에 따라 수신된 프래그먼트를 사용하여, 콘텐츠를 재생할 수 있다.The client 100 may play the content using the received fragment as the steps 120 through 150 are repeated.

도 2는 본 발명의 일 예에 따른 시그널링 정보의 카테고리들을 도시한다.FIG. 2 illustrates categories of signaling information according to an example of the present invention.

시그널링 정보(즉, 메타데이터)는 하기의 카테고리들 1) 내지 4)로 나뉘어진다.The signaling information (i.e., metadata) is divided into the following categories 1) to 4).

1) 일반 정보(general information)(210) : 일반 정보는, 예컨대 지속시간(duration) 및 시작 시각과 같은, 콘텐츠의 일반 설명(description) 및 각 인터벌의 일반 설명을 포함한다.1) General information 210: General information includes a general description of the content and a general description of each interval, such as, for example, duration and start time.

2) 서비스의 품질 정보(QoS information)(220) : 비트레이트(bitrate), 해상도(resolution), 품질(quality)와 같은, 각 대안의 특성들(characteristics)을 설명한다. 즉, 서비스의 품질 정보는 콘텐츠의 대안들 각각의 특성들을 설명한다.2) Quality of Service (QoS) information 220: Describes characteristics of each alternative, such as bitrate, resolution, and quality. That is, the quality information of the service describes the characteristics of each of the alternatives of the content.

대안은 물리적(physical)(즉, 미리 생성된)일 수 있고, 가상(virtual)(즉, 온-더-플라이(on the fly)로 생성될)일 수 있다. 대안들의 정보에 기반하여, 클라이언트는 적합한 대안의 프래그먼트를 선택한다. 따라서, 단말들 및 네트워크들의 문맥(context)들에 대한 적합성(adaptivity)을 지원한다.  The alternative can be physical (i.e., pre-generated) and virtual (i.e., to be generated on-the-fly). Based on the information of the alternatives, the client selects a suitable alternative fragment. Thus, it supports adaptability to the contexts of terminals and networks.

3) 매핑 정보(Mapping Information)(230) : 콘텐츠를 추출(retrieve)할 위치들(locations)을 설명한다. 특정 경우들(cases)에 의존하여, 상이한 대안들은 동일하거나 상이한 위치들을 가질 수 있다.3) Mapping Information 230: Describes locations to retrieve contents. Depending on the particular cases, the different alternatives may have the same or different positions.

4) 클라이언트 요청(Client request)(240) : 이러한 종류의 시그널링 정보는 HTTP 1.1 요청(request) 메시지의 포멧을 따른다(conform). 도 1에서 도시된 것과 같이, 클라이언트에 의해서 요청된 파라미터들은 상기의 1) 내지 3) 카테고리들의 정보로부터 비롯한다(derive).4) Client request 240: This kind of signaling information conforms to the format of the HTTP 1.1 request message. As shown in FIG. 1, the parameters requested by the client derive from the information of the above categories 1) to 3).

시그널링의 목표들은 하기의 1) 내지 4)와 같다.The objectives of the signaling are the same as the following 1) to 4).

1) 상이한 미디어 스토리지(storage)/전달(delivery) 접근방법들(approaches)에 대한 지원 : 시그널링 정보는, 예컨대 진화한 비디오 코딩(Advanced Video Coding; AVC)/스케일러블 비디오 코딩(Scalable Video Coding; SVC) 대안들(alternatives)을 포함하는 MPEG-2 트랜스포트 스트림(Transport Stream; TS)와 같은, MP4 파일 스토리지 및 전달의 전형적인(typical)(또한, 다양한(various)) 경우들(cases)을 지원할 수 있도록 충분히 일반적이다. 또한, 멀티-채널 전송은 진화한 시나리오들을 위해 필요하다.(예를 들면, 하나의 HTTP 연결(connection) 내에서의 SVC 레이어(layer))1) Support for different media storage / delivery approaches: Signaling information may include, for example, Advanced Video Coding (AVC) / Scalable Video Coding (SVC) (And various) cases of MP4 file storage and delivery, such as the MPEG-2 Transport Stream (TS), which includes alternatives. It is general enough to be. In addition, multi-channel transmission is necessary for evolving scenarios (for example, SVC layer within one HTTP connection)

2) 적응성(adaptivity)를 위한 디시전-메이킹(decision-making)의 상이한 경우들에 대한 지원 : 시그널링 정보는, 예컨대 클라이언트-기반, 분산된(distributed) 및 서버-기반과 같은, 디시전-메이킹의 상이한 위치들을 지원할 수 있도록 유연(flexible)하다.2) Support for different cases of decision-making for adaptivity: Signaling information can be used for decision-making, such as client-based, distributed and server- To be able to support different positions of the device.

3) 효율성 : 또한, 시그널링 정보의 포맷은 적은 데이터 크기를 허용하고, 용이한 핸들링(예를 들면, 파싱(parsing), 수정(modifying))3) Efficiency: In addition, the format of the signaling information allows small data sizes and allows easy handling (eg parsing, modifying)

4) 표준적인(standard) HTTP 요청과의 호환성 : 시그널링 정보는, 요청 파라미터들이 어떤 확장들(extensions)(예를 들면, 새로운 헤더(header) 필드들(fields))을 요구함이 없이 HTTP 1.1 요청 메시지 내에 넣어질 수 있도록, 적절한(appropriate) 설명(description) 아이템들(items)을 제공한다.4) Compatibility with standard HTTP requests: The signaling information is used to indicate that the request parameters are not HTTP 1.1 request messages (for example, new header fields) without requiring some extensions (e.g., new header fields) To provide appropriate description items so that they can be placed within the user interface.

도 3은 본 발명의 일 예에 따른 콘텐츠 디비전(division)의 계층 및 시그널링 정보의 레벨들(levels)을 나타낸다.FIG. 3 illustrates the layers of a content division and levels of signaling information according to an example of the present invention.

본 발명의 일시예들에 따른 메타데이터의 시그널링은 콘텐츠-레벨 정보(310), 인터벌 레벨 정보(320), QoS 정보(330) 및 매핑(340) 정보로 물리적으로 분리될(separated) 수 있다. 콘텐츠-레벨 정보(310), 인터벌 레벨 정보(320), QoS 정보(330) 및 매핑(340)의 관련된 부분들의 링킹(linking)은 참조(referencing)에 의해 이루어진다.The signaling of the metadata according to the temporal examples of the present invention may be physically separated into content-level information 310, interval level information 320, QoS information 330 and mapping 340 information. Linking of the content-level information 310, the interval level information 320, the QoS information 330 and the relevant portions of the mapping 340 is done by referencing.

시그널링 정보의 이러한 부분들은 유연성을 지원하기 위한 상이한 방법들(ways)으로 조합(combine)될 수 있다.These portions of the signaling information may be combined into different ways to support flexibility.

예를 들면, 단지 콘텐츠-레벨 정보(310) 및 인터벌 레벨 정보(320)만이 클라이언트로 전송될 때, 모든 대안들의 결정 및 위치들의 해결(resolve)을 위한 계산들은 서버에 의해 수행된다. 따라서, 콘텐츠-레벨 정보(310) 및 인터벌 레벨 정보(320)만이 클라이언트로 전송될 때 의 프로세싱 모델은 "서버-기반"이다.For example, when only content-level information 310 and interval level information 320 are sent to the client, calculations for all alternatives and resolutions of locations are performed by the server. Thus, the processing model when only content-level information 310 and interval level information 320 are transmitted to the client is " server-based ".

만약, 콘텐츠-레벨 정보(310), 인터벌-레벨 정보(320) 및 QoS 정보(330)가 클라이언트로 전송되면, 모든 대안들의 결정 및 위치들의 해결(resolve)을 위한 계산들은 클라이언트 및 서버에 의해 분산하여 수행된다. 따라서, 콘텐츠-레벨 정보(310), 인터벌-레벨 정보(320) 및 QoS 정보(330)가 클라이언트로 전송될 때, 상기의 모델은 "분산된"이 될 것이다.If the content-level information 310, the interval-level information 320 and the QoS information 330 are transmitted to the client, the calculations for all of the alternatives and resolutions of the locations are distributed by the client and the server . Thus, when the content-level information 310, the interval-level information 320 and the QoS information 330 are transmitted to the client, the model will be " distributed ".

모든 시그널링 정보들(콘텐츠-레벨 정보(310), 인터벌-레벨 정보(320), QoS 정보(330) 및 매핑 정보(340))이 클라이언트로 전송될 때, 이러한 모델에서 대부분(또는, 전부)의 프로세싱(즉, 대안들의 결정 및 위치들의 해결을 위한 계산)은 클라이언트에서 되기 수행 때문에, 상기 모델은 클라이언트-기반(client-based)이다.When all of the signaling information (content-level information 310, interval-level information 320, QoS information 330 and mapping information 340) is sent to the client, most (or all) Because processing (i. E., Determination of alternatives and computations for solving locations) is performed at the client, the model is client-based.

메타데이터 파트들의 분리는 저장 및 전달에 있어서 효율성을 가능하게 한다. 예를 들면, 세션 동안, 콘텐츠-레벨 정보(310)의 메타데이터는 1회 보내질 수 있고, 인터벌 레벨 정보(320)만이 주기적으로 갱신될 수 있다. 유사하게, QoSInfo 파트(330)를 포함하는 하나의 파일이 상이한 인터벌들 및 상이한 콘텐츠를 위해 사용될 수 있다.Separation of metadata parts enables efficiency in storage and delivery. For example, during a session, the metadata of the content-level information 310 may be sent once, and only the interval level information 320 may be periodically updated. Similarly, one file containing the QoSInfo part 330 may be used for different intervals and for different content.

XML, 슈도-코드(pseudo-code), 세션 설명 프로토콜(Session Description Protocol; SDP) 등과 같은, 메타데이터의 집합을 표현(represent)하기 위한 상이한 방법들이 있다.There are different ways to represent a collection of metadata, such as XML, pseudo-code, Session Description Protocol (SDP), and the like.

XML은 설명을 위한 일반적인 언어이다. XML은 거의 모든 것을 설명하기 위한 풍부한 툴들(tools)을 제공한다. XML은 또한 매우 잘-구성되고(well-structured), 데이터베이스(database)를 구축(building)하기에 적합하다. 그러나, XML의 단점들은 큰 데이터사이즈(datasize) 및 복잡도이다. 특히, XML 내에서의 설명은 메타데이터를 파스 및 처리(process)하기 위해 특별한 소프트웨어(예컨대, 문서 객체 모델(Document Object Model; DOM), XML을 위한 단순 어플리케이션 프로그래밍 인터페이스(Simple Application Programming Interface for XML; SAX))를 요한다. XML은 비트스트림(bitstream)(MPEG-1, MPEG-2 비디오 비트스트림 및 파일 포멧들)의 신택스를 위해 종종 사용된다. 이러한 접근방법(approach)의 장점은 설명의 간결성(compactness)이지만, 신택스 요소(element)의 다양한 타입들을 설명하기에 매우 유연하지는 않다.XML is a common language for describing. XML provides a wealth of tools to describe almost everything. XML is also well-structured and suitable for building databases. However, the disadvantages of XML are large data size (datasize) and complexity. In particular, the description in XML can be used to provide special software (e.g., a Document Object Model (DOM), Simple Application Programming Interface (XML) for XML, and the like) for parsing and processing metadata. SAX). XML is often used for the syntax of bitstreams (MPEG-1, MPEG-2 video bitstreams and file formats). The advantage of this approach is the compactness of the description, but it is not very flexible to describe the various types of syntax elements.

본 발명의 실시예들은 시그널링 신택스를 나타내기 위해 XML 및 슈도-코드 양자를 사용할 수 있다. XML 신택스는 MPEG-21 및 그와 유사한 스키마를 기반으로 하는 XLM 프로파일을 지원하는 클라이언트들을 위해 사용될 수 있다. 반면, 슈도-코드 신택스는 ISO 베이스 미디어 파일 포멧 등의 "언어(language)"에 기반할 수 있으며, 비-XML 클라이언트들 내에서 사용될 수 있다. 특히, 슈도-코드 신택스의 프로파일은 파일-포멧 파싱의 파싱 모듈과 유사한 파실 모듈을 채용(employ)할 수 있다. 이러한 목적을 위한 신택스를 설계하기 위해서, 하기의 실시예들에서 공통 요소들의 테이블(table)이 정의될 것이고, 각 포멧 내의 요소들이 나타내어질 것이다.Embodiments of the present invention may use both XML and pseudo-code to represent the signaling syntax. XML syntax can be used for clients that support XLM profiles based on MPEG-21 and similar schemas. On the other hand, the pseudo-code syntax can be based on a " language " such as ISO base media file format and can be used in non-XML clients. In particular, the profile of the pseudo-code syntax may employ a parasitic module similar to the parsing module of file-format parsing. To design the syntax for this purpose, a table of common elements will be defined in the following embodiments, and the elements in each format will be represented.

이러한 제안된 신택스들은, 임의의 다른 언어들에 의해서도 표현될 수 있다.These proposed syntaxes can also be expressed by any other languages.

하기에서 일반 신택스 요소들의 테이블이 설명된다.A table of general syntax elements is described below.

하기의 표들에서, 신택스 요소들은 계층적으로 설명된다. 즉, 자식(child) 요소는 그것의 부모(parent) 요소의 우측에 있는 열(column) 내에서 보인다. "리프"-레벨 요소들은 이텔릭체(italic)로 보인다. 부모 요소들은 볼드체(bold letters)로 보인다. 부모 요소는 대응하는 XML 타입 및 파일 박스로 나타내어진다. In the following tables, the syntax elements are described hierarchically. That is, a child element appears in the column to the right of its parent element. "Leaf" - The level elements appear italic. The parent elements appear as bold letters. The parent element is represented by the corresponding XML type and file box.

발생횟수(occurrence)의 열 내에서, "0...N"은 발생횟수 요소의 인스턴스들의 개수가 0으로부터 "무제한(unbounded)"까지일 수 있음을 의미한다. 그러나, 0의 최소 발생횟수는 요소가 선택적인(optional)(즉, 존재하지 않음)일 수 있음을 의미한다. 1 아상의 최소 발생횟수는 요소가 신택스 내에서 의무적임(mandatory)을 의미한다.In the column of occurrences, " 0 ... N " means that the number of instances of the occurrences element can range from zero to " unbounded ". However, the minimum number of occurrences of zero means that the element may be optional (i.e., not present). 1 The minimum number of occurrences of a hypothesis implies that the element is mandatory in the syntax.

발생횟수(occurrence)는 카디널리티(cardinality)와 동일한 의미로 사용될 수 있다.Occurrences can be used in the same sense as cardinality.

타입 행에서, A는 속성을 나타내고, E는 요소를 나타낸다. 선택성(optionality) 행에서, M은 의무적인 것을 의미하고, O는 선택적인 것을 의미한다. 속성에 있어서, M은 의무적인 것을 의미하고, O는 선택적인 것을 의미하고, OD는 디폴트(default) 값을 갖는 선택적인 것을 의미하고, CM은 조건적으로(conditionally) 의무적인 것을 의미한다. 요소에 있어서, 요소는 <최소 발생들(minOccurs)> ... <최대 발생들(maxOccurs)>과 같이 표현될 수 있다. 이때, N은 무제한(unbounded)를 나타낸다.In the type row, A represents an attribute and E represents an element. In the optionality line, M means mandatory and O means optional. In the attribute, M means mandatory, O means optional, OD means optional with default value, CM means conditionally mandatory. For an element, the element can be expressed as < minOccurs > ... < maxOccurs >. At this time, N represents unbounded.

이러한 의미는, 본 명세서의 다른 표들에서도 동일하다. This meaning is the same in other tables of this specification.

또한, QoSInfo는 더 특정하게는, AdaptationInfo로 불릴 수 있다. 더욱이, 몇몇 요소들은 신택스의 유동성(flexibility)을 높이기 위해 개정(revise)되었다.In addition, the QoSInfo may more specifically be referred to as AdaptationInfo. Moreover, some elements have been revised to increase the flexibility of the syntax.

하기의 표 1은 일반 정보를 설명한다.Table 1 below describes general information.

      발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(MPEG-21 기반)
XML syntax syntax
(Based on MPEG-21)
슈도-코드
(파일 포멧 박스)
Pseudo-code
(File format box)
HttpStrHttpStr     1One HTTP 스트리밍을 위한 메타데이터의 시그널링의 최상위-레벨(top-level) 요소Top-level elements of signaling metadata for HTTP streaming HttpStreamingType(HTTP스트리밍타입)HttpStreamingType (HTTP streaming type) 'htps' box(박스)'htps' box   GeneralInfoGeneralInfo   0...N0 ... N 설명된 콘텐츠의 일반 정보를 포함Contains general information about the described content GeneralInfoType(일반정보타입)GeneralInfoType (general information type) 'geni' box'broad' box     TimeScaleTimeScale 0...10 ... 1 1 초 내의 타임 유닛들의 개수.
이 값은, 시간 유닛이 명세되지 않았을 때, time-related 요소들과 함께 사용됨.
The number of time units within a second.
This value is used with time-related elements when a time unit is not specified.
integer(정수)integer (integer) unsigned int(부호없는정수)(32)unsigned int (unsigned integer) (32)
    LiveStartTimeLiveStartTime 0...10 ... 1 LiveStartTime 요소가 없으면, 콘텐츠는 Vod 타입임.
LiveStartTime 요소가 존재한다는 것은 LiveStartTime의 시각 값에 디스플레이될 라이브 콘텐츠를 가리킴.
만약, LiveStartTime의 시각 값이 0이면, 상기 디스플레이 시각은 알려지지 않음.
If there is no LiveStartTime element, the content is of type Vod.
The existence of the LiveStartTime element indicates that live content will be displayed in LiveStartTime's time value.
If the time value of LiveStartTime is 0, the display time is not known.
dateTimedateTime unsigned int(64)unsigned int (64)
    DurationDuration 0...10 ... 1 만약 있다면, 콘텐츠의 지속시간(duration)을 가리킴. 그렇지 않으면 지속시간은 알려지지 않음.If present, indicates the duration of the content. Otherwise the duration is unknown. integerinteger unsigned int(32)unsigned int (32) DefaultIntDurationDefaultIntDuration 0...10 ... 1 만약 있다면, 콘텐츠의 각 인터벌의 기본(default) 지속시간을 가리킴.If present, indicates the default duration of each interval of content. integerinteger unsigned int(32)unsigned int (32)     MinUpdateTimeMinUpdateTime 0...10 ... 1 만약 있다면, 주 설명 파일을 다시 요청하기 전에 최소 대기 시간을 가리킴.If present, indicates the minimum wait time before requesting the main description file again. integerinteger unsigned int(32)unsigned int (32)     ConsistentQoSInfoConsistentQoSInfo 0...10 ... 1 True(참)일 때, QoS 정보는 전체(whole) 콘텐츠 지속시간과 동일함을 가리킴.When True, the QoS information is the same as the whole content duration. Boolean(이진)Boolean (binary) flag of the box
(박스의 플레그)
flag of the box
(Flags in the box)
    DefaultContentLocDefaultContentLoc 0...10 ... 1 콘텐츠의 기본 위치를 제공함.Provide the default location of the content. anyURI(임의의 URI)anyURI (any URI) string of URL
(URL의 문자열)
string of URL
(A string of URLs)
  IntervalsRefIntervalsRef   0...N0 ... N Interval 요소의 하나 이상의 인스턴스를 포함하는 설명에 대한 참조(reference)를 제공함.
Interval 요소의 하나 이상의 인스턴스는 잇달은(consecutive) 인터벌(들)의 시퀀스(sequence)을 나타냄..
Interval Provides a reference to a description containing one or more instances of an element.
One or more instances of the Interval element represent a sequence of consecutive interval (s).
IntervalsRefType(인터벌참조타입)IntervalsRefType (Interval Reference Type) 'iref' box'iref' box
  IntervalInterval   0...N0 ... N 콘텐츠의 인터벌의 정보를 제공.
인터벌의 정보는 Interval 요소의 인스턴스로서 포함될 수 있고, IntervalsRef 요소에 의해 참조될 수 있음
Provide information on the interval of content.
Interval information can be included as an instance of the Interval element, and can be referenced by the IntervalsRef element.
IntervalType(인터벌타입)IntervalType (Interval Type) 'intv' box'intv' box
    IntervalInfoIntervalInfo 0...10 ... 1 인터벌의 일반 정보를 제공.Provide general information of interval. IntervalInfoType(인터벌정보타입)IntervalInfoType (interval information type) 'inti' box'inti' box     QoSInfoRefQoSInfoRef 0...10 ... 1 QoSInfo 요소에 의해 표현된 설명으로의 참조를 제공.
만약 QosInfoRef 요소가 있다면, 동일한 레벨에서 QoSInfo 요소는 표현되지 않아야 함.
Provides a reference to the description represented by the QoSInfo element.
If there is a QosInfoRef element, the QoSInfo element should not be represented at the same level.
dia:ReferenceTypedia: ReferenceType 'qref' box'qref' box
    QoSInfoQoSInfo 0...10 ... 1 자원 특성들(characteristics) 및 품질(quality)/유용성(utility)과 같은, 콘텐츠의 대안들에 관한 정보를 제공.
QoSInfo 요소가 있으면 QoSInfoRef 요소는 있지 않음.
Provide information about alternatives to content, such as resource characteristics and quality / utility.
If there is a QoSInfo element, there is no QoSInfoRef element.
QoSInfoType
(QoS정보타입)
QoSInfoType
(QoS information type)
'QoSi' box'QoSi' box
    MappingInfoRefMappingInfoRef 0...10 ... 1 MappingInfo 요소에 의해 표현된 설명으로의 참조를 제공.
MappingInfoRef 요소가 있다면, 동일한 레벨에서 MappingInfo 요소는 표현되지 않아야 함.
Provides a reference to the description represented by the MappingInfo element.
If there is a MappingInfoRef element, the MappingInfo element should not be represented at the same level.
dia:ReferenceTypedia: ReferenceType 'mref' box'mref' box
    MappingInfoMappingInfo 0...10 ... 1 콘텐츠 대안들의 위치들에 대한 정보를 제공함.
만약 이 정보가 제공되지 않으면, DefaultContentIntLoc(만약 아니면, DefaultContentLoc) 요소가 콘텐츠를 추출(retrieve)하기 위해 사용될 수 있음.
MappingInfo 요소가 있으면 MappingINfoRef 요소는 있지 않음.
Provide information about the locations of content alternatives.
If this information is not provided, the DefaultContentIntLoc (or DefaultContentLoc, if present) element can be used to retrieve the content.
If there is a MappingInfo element, there is no MappingINfoRef element.
MappingInfoType
(매핑정보타입)
MappingInfoType
(Mapping information type)
'mapi' box'mapi' box
    NextIntervalsRefNextIntervalsRef 0...10 ... 1 다음 인터벌(들)의 정보로의 참조를 제공.
다음 인터벌(들)의 정보는 인터벌 요소의 하나 이상의 인스턴스를 포함하는 설명임.
다음 인터벌들의 정보는 Interval 요소에 의해 표현된 설명임.
NextIntervalsRef 요소를 사용함으로써, 클라이언트는 HttpStr 요소에 의해 표현되는 주 설명을 리로드(reload)할 필요가 없음.
현재 타임 윈도우(time window) 내에서, 단지 마지막의 인터벌만이 NextIntervalsRef 요소를 포함할 수 있음.
Provide a reference to the information of the next interval (s).
The information of the next interval (s) is an explanation that includes one or more instances of the interval element.
The information of the next interval is the description expressed by the Interval element.
By using the NextIntervalsRef element, the client does not need to reload the main description represented by the HttpStr element.
Within the current time window, only the last interval can contain the NextIntervalsRef element.
IntervalsRefType, dia:ReferenceType으로부터 확장될 수 있음.
IntervalsRefType, can be extended from dia: ReferenceType.
'nref' box'nref' box
PreviousIntervalsRefPreviousIntervalsRef 0...10 ... 1 이전 인터벌(들)의 정보로의 참조를 제공.
다음 인터벌(들)의 정보는 인터벌 요소의 하나 이상의 인스턴스를 포함하는 설명임.
다음 인터벌들의 정보는 Interval 요소에 의해 표현된 설명임.
PreviousIntervalsRef 요소를 사용함으로써, 클라이언트는 HttpStr 요소에 의해 표현되는 주 설명을 리로드(reload)할 필요가 없음.
현재 타임 윈도우(time window) 내에서, 단지 최초의 인터벌만이 NextIntervalsRef 요소를 포함할 수 있음.
Provide a reference to the information of the previous interval (s).
The information of the next interval (s) is an explanation that includes one or more instances of the interval element.
The information of the next interval is the description expressed by the Interval element.
By using the PreviousIntervalsRef element, the client does not need to reload the main description represented by the HttpStr element.
Within the current time window, only the first interval can contain the NextIntervalsRef element.
IntervalsRefType, dia:ReferenceType으로부터 확장될 수 있음.
IntervalsRefType, can be extended from dia: ReferenceType.
'nref' box'nref' box

하기의 표 2는 IntervalsRef, NextIntervalsRef, PreviousIntervalsRef, QoSInfoRef, MappingInfoRef a및 IntervalInfo 요소를 설명한다.Table 2 below describes the IntervalsRef, NextIntervalsRef, PreviousIntervalsRef, QoSInfoRef, MappingInfoRef a, and IntervalInfo elements.

발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(MPEG-21 기반)
XML syntax syntax
(Based on MPEG-21)
슈도-코드
(파일 포멧 박스)
Pseudo-code
(File format box)
QoSInfoRef,
MappingInfoRef
QoSInfoRef,
MappingInfoRef
IndexIndex 1One 다음 Location 요소에 의해 참조되는 설명 파일 내의 참조 설명 또는 박스(Interval, QoSInfo, MappingINfo)의 순서(1부터 시작)를 가리킴Indicates the order of the reference description or box (Interval, QoSInfo, MappingInfo) in the description file referenced by the following Location element (starting at 1). not applicable
(적용 불가)
not applicable
(Not applicable)
unsigned int(8)unsigned int (8)
LocationLocation 1One Interval, QoSInfo 또는 MappingInfo에 의해 표현되는 설명에 대한 참조를 제공.Provides a reference to the description represented by Interval, QoSInfo, or MappingInfo. dia:ReferenceType 내의 uri 요소dia: uri element in ReferenceType string (representing url)string (representing url) IntervalInfoIntervalInfo TimeScaleTimeScale 0...10 ... 1 1 초 내의 시간 유닛들의 개수. 이 값은 시간 유닛이 명세되지 않았을 때 시간-관련된 요소들과 함께 사용됨.
TimeScale 요소가, 만약 있다면, GeneralInfo에 의해 제공되는 타임 스케일(time scale)을 오버라이드(override)함.
The number of time units within a second. This value is used with time-related elements when a time unit is not specified.
The TimeScale element, if any, overrides the time scale provided by GeneralInfo.
integerinteger unsigned int(32)unsigned int (32)
StartTimeStartTime 0...10 ... 1 인터벌의 시작 시각을 가리킴.Indicates the start time of the interval. DurationDuration 0...10 ... 1 인터벌의 지속시간을 가리킴.Indicates the duration of the interval. integerinteger unsigned int(32)unsigned int (32) DefaultFragDurationDefaultFragDuration 0...10 ... 1 인터벌의 프래그먼트들의 기본 지속시간을 가리킴. (마지막 프래그먼트 예외)Indicates the default duration of fragments of the interval. (Last fragment exception) integerinteger unsigned int(32)unsigned int (32) DefaultContentIntLocDefaultContentIntLoc 0...10 ... 1 콘텐츠 인터벌을 위한 기본 위치를 제공함.Provide a default location for the content interval. anyURI typeanyURI type stringstring LastLast 0...10 ... 1 만약 참이면, 콘텐츠의 최후의 인터벌임을 가리킴. If true, indicates the last interval of the content. boolean boolean by flag
(플래그로)
by flag
(With flag)
IntervalsRef,
PreviousIntervalsRef
NextIntervalRef
IntervalsRef,
PreviousIntervalsRef
NextIntervalRef
startTimestartTime 콘텐츠의 시작 시각(라이브 콘텐츠를 위한 LiveStartTime 및 온-디맨드 콘텐츠를 위한 0)에 대해 상대적인 인터벌들/주기들의 참조된 시퀀스의 시작 시각을 가리킴.The start time of the referenced sequence of intervals / periods relative to the start time of the content (LiveStartTime for live content and 0 for on-demand content). xs:duration
(xs:지속시간)
xs: duration
(xs: duration)
AvailableTimeAvailableTime 0...10 ... 1 다음 인터벌의 설명이 가용한 시각을 가리킴. 이 시각은 콘텐츠의 시작 시각으로부터의 상대적인 시각임.The following description of the interval indicates the available time. This time is a relative time from the start time of the content. integerinteger unsigned int(32)unsigned int (32) IndexIndex 1One 다음 Location 요소에 의해 참조되는 설명 파일 내의 참조된 인터벌 설명(또는, 박스)의 순서(1부터 시작)을 가리킴.Indicates the sequence (1-based) of the interval descriptions (or boxes) referenced in the description file referenced by the following Location element. not applicablenot applicable unsigned int(8)unsigned int (8) LocationLocation 1One Interval 설명들을 포함하는 설명 파일에 대한 참조를 제공함.Interval Provides a reference to a description file containing descriptions. sx:anyURI type 또는 dia:ReferenceType 내의 uri 요소uri element in sx: anyURI type or dia: ReferenceType string (representing url)(url을 표현)string (representing url) (express url)

하기의 표 3은 QoSInfo 요소를 설명한다.Table 3 below describes the QoSInfo element.

발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(MPEG-21 기반)
XML syntax syntax
(Based on MPEG-21)
슈도-코드
(파일 포멧 박스)
Pseudo-code
(File format box)
QoSInfoQoSInfo 1One 자원 특성들 및 품질/유용성과 같은, 콘텐츠 대안들의 리스트에 대한 정보를 제공함. Provides information on a list of content alternatives, such as resource characteristics and quality / usability. QoSInfoType containing a UtilityFunction of dia:AdaptiveQoSType
(dia:AdaptiveQoSType의 UtilityFunction을 포함하는 QoS정보타입)
Contains QoSInfoType containing a UtilityFunction of dia: AdaptiveQoSType
(dia: QoS information type including UtilityFunction of AdaptiveQoSType)
'QoSi' box'QoSi' box
ClassSchemeRefClassSchemeRef 0...10 ... 1 분류(Classification) 스킴들(Schemes)의 리스트를 제공함.
분류 스킴들은 몇몇 용어 또는 명칭을 위한 시맨틱스를 제공함.
Provide a list of Classification Schemes.
Classification schemes provide semantics for some terms or names.
dia:DescriptionMetadataType
(dia:설명메타데이터타입)
dia: DescriptionMetadataType
(dia: description metadata type)
'csmr' box'csmr' box
schemescheme 1...N1 ... N 분류 스킴에 대한 참조Reference to classification scheme Attr. alias & href in dia:DescriptionMetadataType
(dia:DescriptionMetadataType 내의 속성 앨리어스 및 href)
Attr. alias & href in dia: DescriptionMetadataType
(dia: Property alias and href in DescriptionMetadataType)
a url string a url string
(1)(One) ResourceResource 0...N0 ... N Resource 요소의 각 인스턴스들은, 대안들의 리스트를 위해, 어떤(certain) 자원 타입(예컨대, 비트레이트)의 특성 값들을 설명함. Each instance of the Resource element describes a property value of a certain resource type (e.g., bit rate) for a list of alternatives. Element Constraint of dia:UFDataType in DIA Utility-FunctionType
(DIA 유틸리티-평션타입 내의 dia:UF데이터타입의 요소 제약)
Element Constraint of dia: UFDataType in DIA Utility-FunctionType
(Element constraint of dia: UF data type within DIA utility-function type)
'resi' box'resi' box
(2)(2) AdaptationOperatorAdaptationOperator 0...N0 ... N AdaptationOperator 요소의 각 인스턴스들은, 대안들의 리스트를 위해, 어떤 적응 타입(예컨대, 템포럴(temporal) 레이어들을 제거)의 값들을 설명함.Each instance of the AdaptationOperator element describes the values of some adaptation type (e.g., remove temporal layers), for a list of alternatives. dia:UFDataTypedia: UFDataType 'adpo' box'adpo' box (3)(3) UtilityUtility 0...N0 ... N Utility 요소의 각 인스턴스들은, 대안들의 리스트를 위해, 어떤 품질/유용성 타입(예컨대, MOS) 내의 값들을 설명함.Each instance of the Utility element describes values within a certain quality / usability type (e.g., MOS) for a list of alternatives. dia:UFDataTypedia: UFDataType 'util' box'util' box UtilityRankUtilityRank 0...10 ... 1 대안들의 리스트를 위한 품질 랭킹을 설명함.Describe the quality ranking for a list of alternatives. dia:UtilityRankType
(유용성순위타입)
dia: UtilityRankType
(Usability ranking type)
'utir' box'utir' box
ValueValue 1...N1 ... N 대안의 품질/유용성 순위를 가리킴.
Value 요소의 인스턴스들의 개수는 대안들의 개수와 같음.
Indicates the quality / usability ranking of alternatives.
The number of instances of the Value element is equal to the number of alternatives.
integerinteger unsigned int(16)unsigned int (16)

하기의 표 4는 표 3의 (1) Resource, (2) AdaptationOperator 및 (3) Utility 요소들의 공통 시맨틱을 나타낸다.Table 4 below shows the common semantics of (1) Resource, (2) AdaptationOperator and (3) Utility elements in Table 3.

Element (1), (2), (3)The elements (1), (2), (3) 시맨틱스Semantics XML 신택스 syntax
(MPEG-21 기반)
XML syntax syntax
(Based on MPEG-21)
슈도-코드
(파일 포멧 박스)
Pseudo-code
(File format box)
NameName 1One 요소의 특정 타입에 대한 식별자.
이 식별자가 이 실시예에 의해 의미론적으로 정의되지 않은 경우, 다음 3 개의 요소들이 분류 스킴 내에서 식별자의 시맨틱스를 찾기 위해 사용됨.
An identifier for a particular type of element.
If this identifier is not semantically defined by this embodiment, the following three elements are used to find the semantics of the identifier in the classification scheme.
Att. 'iOPinRef', ref. a CS term('iOPinRef" 속성, CS 텀 참조)Att. 'iOPinRef', ref. a CS term (see 'iOPinRef' attribute, CS term) unsigned int(32)unsigned int (32)
CSref_indCSref_ind 0...10 ... 1 ClassSchemeRef 요소에 의해 제공되는 리스트 내의 분류 스킴의 참조 인덱스를 가리킴Points to the reference index of the classification scheme in the list provided by the ClassSchemeRef element. Not applicableNot applicable unsigned int(16)unsigned int (16) LevelNumLevelNum 0...10 ... 1 레벨들의 개수를 가리킴.Indicates the number of levels. Not applicable Not applicable unsigned int(16) unsigned int (16) LevelIndexLevelIndex 1...N1 ... N LevelIndex 요소의 각 인스턴스는 분류 스킴의 레벨에서의 인덱스 값을 나타냄. Each instance of the LevelIndex element represents an index value at the level of the classification scheme. Not applicableNot applicable unsigned int(16)unsigned int (16) ValueValue 1...N1 ... N 대안의 자원(적응 연산자 또는 유용성) 타입의 값을 가리킴.
Value 요소의 인스턴스들의 개수는 대안들의 개수와 같다.
A value of an alternative resource (adaptive operator or usability) type.
The number of instances of the Value element is equal to the number of alternatives.
a component in dia:VectorDataType
(dia:벡터데이터타입 내 콤포넌트)
a component in dia: VectorDataType
(dia: a component in the vector data type)
unsigned int(32)unsigned int (32)

하기의 표 5는 매핑 정보를 나타낸다.Table 5 below shows mapping information.

발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(MPEG-21 기반)
XML syntax syntax
(Based on MPEG-21)
슈도-코드
(파일 포멧 박스)
Pseudo-code
(File format box)
MappingInfoMappingInfo 0...10 ... 1 MappingInfoTypeMappingInfoType 'mapi'box'mapi'box AlterLocIDAlterLocID 0...10 ... 1 QoSInfo 내에 설명된 각 대안에 대한 위치 ID를 제공함.
만약 AlterLocID 요소가 없으면, 위치 리스트 내의 제1 위치가 모든 대안들을 위해 사용됨.
Provide a location ID for each alternative described in QoSInfo.
If there is no AlterLocID element, the first position in the location list is used for all alternatives.
dia:IntegerVectorTypedia: IntegerVectorType 'aloc' box'aloc' box
ValueValue 1...N1 ... N 대안을 위한 위치 ID를 가리킴.
The number of instances of this element is equal to the number of alternatives.
Value 요소의 n 번째 인스턴스는 QoSInfo 설명의 n 번째 대안에 대응함.
Points to an alternate location ID.
The number of instances of this element is equal to the number of alternatives.
The nth instance of the Value element corresponds to the nth alternative of the QoSInfo description.
integerinteger unsigned int(16)unsigned int (16)
ReqQoSParaReqQoSPara 0...N0 ... N 클라이언트에 의해 서버로 보내지는 (대안에 대한) 요청 내에 넣어지는 QoSInfo의 파라미터를 가리킴.
파라미터는 Resource, AdaptationOperator, Utility 또는 UtilityRank 요소의 인스턴스일 수 있다.
Indicates the QoSInfo parameter that is put in the request (to the alternative) sent by the client to the server.
The parameter can be an instance of the Resource, AdaptationOperator, Utility, or UtilityRank element.
ReqQoSParaType that extends dia:BooleanVectorType
(dia:BooleanVectorType을 확장하는 ReqQoSParaType)
ReqQoSParaType that extends dia: BooleanVectorType
(ReqQoSParaType that extends dia: BooleanVectorType)
'reqp' box'reqp' box
RefIndexRefIndex 1One Resource, AdaptationOperator, Utility 및 UtilityRank 요소들의 인스턴스 리스트 내의 인스턴스 인덱스/참조를 가리킨다.Indicates an instance index / reference in the instance list of Resource, AdaptationOperator, Utility and UtilityRank elements. represented by attribute 'iOPinRef' that references an IOPin in QoSInfo
(QoSInfo 내의 IOPin을 참조하는 'iOPinRef'속성에 의해 표현됨)
represented by attribute 'iOPinRef' that references an IOPin in QoSInfo
(Represented by the 'iOPinRef' attribute referencing IOPin in QoSInfo)
unsigned int(16)unsigned int (16)
AllAll 1One 참일 때, 파라미터는 모든 대안들 및 생략(skip)될 수 있는 ReqFlag에 대해 요청됨.When true, the parameter is requested for all alternatives and a ReqFlag that can be skipped. booleanboolean flagflag ReqFlagReqFlag 0...N0 ... N ReqFlag 요소의 각 인스턴스는 대안에 대응함.
ReqFlag의 값이 참일 때, 대응하는 대안에 대한 요청은 상기에서 식별된 파라미터를 가짐.
Each instance of the ReqFlag element corresponds to an alternative.
When the value of ReqFlag is true, the request for the corresponding alternative has the parameters identified above.
component of BooleanVectorType
(BooleanVectorType의 콤포넌트)
component of BooleanVectorType
(A component of BooleanVectorType)
unsigned int(8)unsigned int (8)
LocationListLocationList 1One 콘텐츠 대안들을 추출하기 위한 위치들의 목록을 제공함.Provides a list of locations for extracting content alternatives. LocationListTypeLocationListType 'locl' 박스'locl' box LocationLocation 1...N1 ... N 위치 정보를 제공함.Provide location information. LocationTypeLocationType 'loca' 박스'loca' box

Location 요소들의 시맨틱스는 하기의 표 6과 같이 더 제공될 수 있다.The semantics of the Location elements may be further provided as shown in Table 6 below.

발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(DIA 기반)
XML syntax syntax
(DIA based)
슈도-코드
(MP4)
Pseudo-code
(MP4)
LocationLocation 0...N0 ... N LocationType
(위치타입)
LocationType
(Position type)
'loca' box'loca' box
LocIDLocID 1One Location 요소의 인스턴스의 ID를 가리킨다. 위치 요소는 AlterLocID에 의해 참조된다.Indicates the ID of the instance of the Location element. The location element is referenced by the AlterLocID. integerinteger unsigned int(16)unsigned int (16) StrLocationStrLocation 0...N0 ... N 콘텐츠 인터벌의 스트림의 위치 정보를 제공한다.
각 스트림은 스트림 URL 또는 다수의 프래그먼트 URL들에 의해 제공된다..
And provides the position information of the stream of the content interval.
Each stream is provided by a stream URL or multiple fragment URLs.
StrLocationTypeStrLocationType 'stlo' box 'stlo' box
FragNumFragNum 0...10 ... 1 프래그먼트들의 개수를 제공함.Provide the number of fragments. integerinteger unsigned int(16)unsigned int (16) StreamUrlStreamUrl 0...10 ... 1 스트림의 URL을 설명한다.Describes the URL of the stream. anyURI typeanyURI type stringstring FragmentUrlFragmentUrl 0...N0 ... N 프래그먼트의 URL을 설명한다. FragmentUrl 요소의 인스턴스들의 개수는 프래그먼트들의 개수이다.Describe the URL of the fragment. The number of instances of the FragmentUrl element is the number of fragments. anyURI typeanyURI type stringstring FragTimeFragTime 0...10 ... 1 프래그맨트들의 지속시간을 제공한다. Provides the duration of the fragments. dia:VectorDataTypedia: VectorDataType 'frtm' box 'frtm' box ValueValue 1...N1 ... N 프래그먼트의 지속시간을 가리킨다.
Value 요소의 인스턴스들의 개수는 프래그먼트들의 개수이다.
Indicates the duration of the fragment.
The number of instances of the Value element is the number of fragments.
integerinteger unsigned int(32)unsigned int (32)
RandAccessRandAccess 0...10 ... 1 임의 접근(random access)을 지원하는 프래그먼트들을 설명한다.Describes fragments that support random access. dia:VectorDataTypedia: VectorDataType 'rdac' box 'rdac' box ValueValue 1...N1 ... N 임의 접근 프래그먼트의 순서를 가리킨다.Indicates the sequence of random access fragments. integerinteger unsigned int(16)unsigned int (16) MP2TSParaMP2TSPara 0...10 ... 1 MPEG-2 TS 스트림 내의 콘텐츠/프로그램의 정확한 위치를 찾기(locating)위한 추가적인 파라미터들(URL 외의)을 설명한다.Additional parameters (other than URL) for locating the exact location of the content / program within the MPEG-2 TS stream are described. MP2TSParaType
(MP2TS파라미터타입)
MP2TSParaType
(MP2TS parameter type)
'mp2p' box'mp2p' box
PIDPID 0...N0 ... N MPEG-2 TS 스트림 내의 콘텐츠/프로그램의 PID들의 값들을 설명한다.The values of the PIDs of the contents / programs in the MPEG-2 TS stream are described. dia:VectorDataTypedia: VectorDataType unsigned int(16)unsigned int (16) FragBoundariesFragBoundaries 0...10 ... 1 스트림 내 (가상) 프래그먼트들의 경계들을 설명한다.
FragBoundaries 요소의 인스턴스들의 개수는 스트림의 프래그먼트들의 개수와 같다.
하기의 요소들 중 하나의 타입만이 FragBoundaries 인스턴스 내에서 나타난다.
Describes the boundaries of (virtual) fragments in the stream.
The number of instances of the FragBoundaries element is equal to the number of fragments in the stream.
Only one of the following types appears in the FragBoundaries instance.
FragBoundariesTypeFragBoundariesType 'frbd' box 'frbd' box
MP2TSBoundaryMP2TSBoundary 0...N0 ... N MPEG-2 TS 스트림 내의 (가상) 프래그먼트 경계를 감지하기 위한 파라미터들을 설명한다.
만약 MP2TSBoundary 요소의 2 개의 인스턴스들이 있다면, 2 개의 인스턴스들은 프래그먼트의 시작 및 끝의 경계들이다.
만약 MP2TSBoundary 요소의 단지 1 개의 인스턴스만이 있다면, 1 개의 인스턴스는 시작 경계이다. 끝 경계는 다음 프래그먼트의 시작 경계의 바로 이전이다.
Parameters for detecting (virtual) fragment boundaries within the MPEG-2 TS stream are described.
If there are two instances of the MP2TSBoundary element, then the two instances are the boundaries of the beginning and end of the fragment.
If there is only one instance of the MP2TSBoundary element, then one instance is the start boundary. The end boundary is immediately before the start boundary of the next fragment.
MP2TSBoundaryType
(MP2TS경계타입)
MP2TSBoundaryType
(MP2TS boundary type)
'mp2b' box'mp2b' box
ISOFileBoundaryISOFileBoundary 1...21 ... 2 ISO 베이스 미디어 파일 포멧에 기반한 파일 내의 (가상) 프래그먼트 경계를 감지하기 위한 파라미터들을 설명한다.
만약 ISOFileBoundary 요소의 2 개의 인스턴스들이 있다면, 2 개의 인스턴스들은 프래그먼트의 시작 및 끝의 경계들이다.
만약 ISOFileBoundary 요소의 단지 1 개의 인스턴스만이 있다면, 1 개의 인스턴스는 시작 경계이다. 끝 경계는 다음 프래그먼트의 시작 경계의 바로 이전이다.
Describes parameters for detecting (virtual) fragment boundaries within a file based on the ISO base media file format.
If there are two instances of the ISOFileBoundary element, then the two instances are the boundaries of the beginning and end of the fragment.
If there is only one instance of the ISOFileBoundary element, then one instance is the start boundary. The end boundary is immediately before the start boundary of the next fragment.
ISOFileBoundaryType
(ISO파일경계타입)
ISOFileBoundaryType
(ISO file boundary type)
'isfb' box'isfb' box
ByteRangesByteRanges 1One 파일의 파트/프래그먼트를 식별하는 바이트 범위들(ranges)을 설명함.
ByteRanges 요소에 의해 제공되는 파라미터들은 HTTP 요청 내의 바이트 범위 옵션들을 위해 사용될 수 있음.
Describes the byte ranges that identify the part / fragment of the file.
The parameters provided by the ByteRanges element can be used for byte range options in an HTTP request.
ByteRangesTypes
(바이트범위들타입)
ByteRangesTypes
(Byte ranges type)
'brag' box'brag' box

MP2TSBoundary, ISOFileBoundary 및 ByteRanges 요소들의 시맨틱스는 하기의 표 7과 같이 더 제공될 수 있다.The semantics of the MP2TSBoundary, ISOFileBoundary, and ByteRanges elements may be further provided as shown in Table 7 below.

발생횟수Number of occurrences 시맨틱Semantic XML 신택스 syntax
(DIA 기반)
XML syntax syntax
(DIA based)
슈도-코드
(MP4)
Pseudo-code
(MP4)
MP2TSBoundaryMP2TSBoundary MP2TSBoundaryType
(MP2TS경계타입)
MP2TSBoundaryType
(MP2TS boundary type)
'mp2b' box'mp2b' box
PCR_PIDPCR_PID 1One 연관된 콘텐츠/프로그램의 PCR을 나르는(carring) PID를 설명함.Describes the PID that carries the PCR of the associated content / program. integerinteger unsigned int(16)unsigned int (16) PCR_basePCR_base 1One PCR 베이스 필드의 값을 기술함Describe the value of the PCR base field longlong unsigned int(40)unsigned int (40) PCR_extPCR_ext 1One PCR 확장(extension) 필드의 값을 기술함.Describe the value of the PCR extension field. integerinteger unsigned int(16)unsigned int (16) AppearanceAppearance 1One 상기의 두 요소들에 의해 식별되는 PCR 값을 포함하는 TS 패킷의 출현(appearance) 순서(예컨대, 제1, 제2)를 설명함.
PCR의 리셋팅(resetting)/불연속성(discontinuity)가 있을 때, PCR 값은 인터벌 동안 한 번 이상 출현할 수 있음.
Describes the appearance order (e.g., first and second) of the TS packet including the PCR value identified by the above two factors.
When there is resetting / discontinuity of the PCR, the PCR value may appear more than once during the interval.
integerinteger unsigned int(16)unsigned int (16)
Media_PIDMedia_PID 1...N1 ... N 프로그램의 미디어(예컨대, 비디오)의 PID를 설명함.
Media_PID 요소의 개수는 프로그램/콘텐츠의 미디어의 개수와 같음.
Describes the PID of the program's media (eg, video).
The number of Media_PID elements is equal to the number of media in the program / content.
integerinteger unsigned int(16)unsigned int (16)
Media_OffsetMedia_Offset 1...N1 ... N 상기의 식별된 PCR 패킷으로부터 프래그먼트의 첫 번째 미디어 패킷으로의, (동일한 미디어 PID의 TS 패킷 내의) 옵셋을 설명함.
Media_Offset의 n 번째 인스턴스는 Media_PID의 n 번째 인스턴스와 연관됨.
Describe the offset (in the TS packet of the same media PID) from the identified PCR packet to the first media packet of the fragment.
The nth instance of Media_Offset is associated with the nth instance of Media_PID.
integerinteger unsigned int(16)unsigned int (16)
ISOFileBoundaryISOFileBoundary ISOFileBoundaryType
(ISO파일경계타입)
ISOFileBoundaryType
(ISO file boundary type)
'isfb' box'isfb' box
SequenceNoSequenceNo 1One mfhd 박스 내에서 제공되는 시퀀스 번호를 설명함.
mfhd 박스는 MP4 파일의 프래그먼트를 정의함.
SequenceNo 값이 0인 것은 파일의 시작(beginning)을 가리킴.
Describes the sequence number provided in the mfhd box.
The mfhd box defines the fragment of the MP4 file.
A SequenceNo value of 0 indicates the start of the file.
integerinteger unsigned int(16)unsigned int (16)
ByteRangesByteRanges ByteRangesType
(바이트범위타입)
ByteRangesType
(Byte range type)
'brag' box'brag' box
StartStart 1...N1 ... N 바이트 범위의 시작 값을 설명
'-1'의 값은 HTTP 요- 내에서 값이 없음을(missing)을 의미함.
Describes the start value of the byte range.
A value of '-1' means that there is no value in the HTTP request.
integerinteger unsigned int(32)unsigned int (32)
EndEnd 1...N1 ... N 바이터 범위의 끝 값을 설명.
'-1'의 값은 HTTP 요- 내에서 값이 없음을(missing)을 의미함.
Start-End 인스턴스들은 쌍으로 있다. End의 n 번째 인스턴스는 Start의 n 번째 인스턴스와 연관됨.
Describes the end value of the range of the vital.
A value of '-1' means that there is no value in the HTTP request.
Start-End instances are in pairs. The nth instance of End is associated with the nth instance of Start.
integerinteger unsigned int(32)unsigned int (32)
Media_Media_ PIDPID 0...N0 ... N 상기의 Start-End 쌍의 바이트 범위로부터 추출될 미디어(예컨대, 비디오)의 PID를 설명함.
Media_ PID 요소는 바이트 범위가 MPEG-2 TS의 세그먼트(segment)일 때 사용되며, 모든 PID가 전달될 필요는 없음.
Describes the PID of the media (e.g., video) to be extracted from the byte range of the above Start-End pair.
Media_ PID element is used when the segment (segment) of the byte range of MPEG-2 TS, need not be all the PID is transmitted.
integerinteger unsigned int(16)unsigned int (16)

하기에서 클라이언트 요청이 설명된다.The client request is described below.

클라이언트에 의해 획득된 메타데이터의 시그널링은 시그널링 정보의 상이한 파트들 또는 레벨들을 포함할 수 있다. 따라서, 클라이언트로부터 서버로의 요청은 세부사항(detail)의 상이한 레벨들의 파라미터들을 포함할 수 있다.The signaling of the metadata obtained by the client may comprise different parts or levels of the signaling information. Thus, a request from a client to a server may include different levels of parameters of detail.

클라이언트의 주 파라미터들은 URI이고, 주 파라미터들은 쿼리 파트와 연관되었다.The client's main parameters are URIs, and the main parameters are associated with the query part.

하기에서 3개의 주요한 시나리오들을 검토한다.We review three major scenarios below.

1) 서버-기반 시나리오1) Server-based scenario

이 경우, 서버로부터 클라이언트로 제공되는 메타데이터는 일반 콘텐츠 정보(310) 및 일반 인터벌 정보(320)로 구성된다.In this case, the metadata provided from the server to the client is composed of the general content information 310 and the general interval information 320.

요청된 콘텐츠의 URI에 대해, DefaultContentIntLoc(만약 아니라면, DefaultContentIntLoc)가 사용된다. 클라이언트가 콘텐츠의 특정 프래그먼트를 요청하는 것을 가능하게 하기 위해, (단계(140)의 요청의) 쿼리 부분 내에서 하기의 파라미터들 a) 및 b)가 정의된다.For the URI of the requested content, DefaultContentIntLoc (if not, DefaultContentIntLoc) is used. In order to enable the client to request a particular fragment of content, the following parameters a) and b) are defined within the query portion (of the request of step 140).

a) "fragno" : 상기의 인터벌 내에서, 프래그먼트의 순서 값a) "fragno": Within the interval above, the order value of the fragment

b) "fragti" : 상기의 인터벌 내에서, 프래그먼트의 시작 시각b) "fragti": Within the above interval, the start time of the fragment

예컨대, 요청 URI는 "HTTP://server.com/file.mp4?fragno=5"가 될 수 있다.For example, the request URI may be "HTTP://server.com/file.mp4?fragno=5".

2) 분산된 시나리오2) Distributed scenarios

이 경우, 서버로부터 클라이언트로 제공되는 메타데이터는 일반 콘텐츠 정보(310), 일반 인터벌 정보(320) 및 QoS 정보(330)를 포함한다.In this case, the metadata provided from the server to the client includes the general content information 310, the general interval information 320, and the QoS information 330.

상기의 파라미터들에 더해, 클라이언트가 적합한 대안을 요청하는 것을 가능하게 하기 위해 하기의 QoS-관련 파라미터들 a) 내지 c)가 (단계(140)의 요청의) 쿼리(query) 파트에서 정의된다.In addition to the above parameters, the following QoS-related parameters a) to c) are defined in the query part (of the request of step 140) to enable the client to request a suitable alternative.

a) "alter" : 대안의 순서 값이다. 대안의 순서 값에 따라 대안은 QoS 정보 내에서 나타난다.a) "alter" is the order value of the alternative. Depending on the order value of the alternatives, an alternative appears within the QoS information.

b) "oper1", "oper2", ... "operN" : "operi"는 QoS 정보 내에서 나타나는 i 번째 적응 연산자(operation)의 값을 나른다(carry).b) "oper1", "oper2", ... "operN": "oper i " carries the value of the ith adaptation operation appearing in the QoS information.

c) "res1", "res2", ... "resN" : "resi"는 QoS 정보 내에서 나타나는 i 번째 자원의 값을 나른다.c) "res1", "res2", ... "resN": "res i " carries the value of the i-th resource represented in the QoS information.

하나의 요청 내에서, 상기의 3 개의 옵션들 중 하나만이 사용될 수 있다.Within one request, only one of the above three options may be used.

전형적인 적응 연산자들 및 자원 타입들과 함께, 더 낳은 명료성(intelligibility) 및 상호운용성(interoperability) 특별 파라미터 명칭들이 정의될 수 있다.Better intelligibility and interoperability special parameter names can be defined, along with typical adaptation operators and resource types.

적응 연산자들은 하기의 a) 내지 e)와 같다.The adaptation operators are as follows a) to e).

a) 오디오레이어들(audiolayers) : 버려질 확장가능한 오디오 레이어들의 개수를 가리킴.a) Audio layers (audiolayers): Indicates the number of scalable audio layers to be discarded.

b) 템포럴레이어들(temporallayers) : 버려질 확장가능한 비디오의 템포럴 레이어들의 개수를 가리킴.b) Temporalayers: The number of temporal layers of scalable video to be discarded.

c) 공간적레이어들(spatiallayers) : 버려질 확장가능한 비디오의 공간적 레이어들의 개수를 가리킴.c) Spatiallayers: the number of spatial layers of extensible video to be discarded.

d) 품질레이어들(qualitylayers) : 버려질 확장가능한 비디오의 공간적 레이어들의 개수를 가리킴.d) qualitylayers: refers to the number of spatial layers of extensible video to be discarded.

e) 우선순위레이어들(prioritylayers) : 버려질 확장가능한 비디오의 우선순위 레이어들의 개수를 가리킴.e) prioritylayers: indicates the number of priority layers of extensible video to be discarded.

자원 타입들은 하기의 a) 내지 d)와 같다.The resource types are as follows a) to d).

a) 비트레이트(bitrate) : 요청된 대안의 평균 비트레이트(Kbps 단위로)를 가리킴.a) bitrate: the average bit rate (in Kbps) of the requested alternative.

b) 수직해상도(vertresolution) : 요청된 대안의 수직 해상도를 가리킴.b) Vertresolution: Indicates the vertical resolution of the requested alternative.

c) 수평해상도(horiresolution) : 요청된 대안의 수평 해상도를 가리킴.c) Horizontal resolution: indicates the horizontal resolution of the requested alternative.

d) 프레임레이트(framerate): 요청된 대안의 프레임레이트를 가리킴.d) Frame rate: indicates the frame rate of the requested alternative.

이러한 미리 정의된 파라미터들을 사용하는 것으로서, "http://server.com/file.mp4?fragno=5&bitrate=550"이 bitrate에 기반한 URI 요청의 일 예가 될 수 있다.Using these predefined parameters, "http://server.com/file.mp4?fragno=5&bitrate=550" can be an example of a URI request based on a bitrate.

3) 클라이언트-기반 시나리오3) Client-based scenario

이 경우, 서버로부터 클라이언트로 제공되는 메타데이터는 일반 콘텐츠, 일반 인터벌 정보, QoS 정보 및 매핑 정보를 포함한다.In this case, the metadata provided from the server to the client includes general contents, general interval information, QoS information, and mapping information.

요청 내에서 사용되는 QoS-관련 파라미터들은 QoSInfo 메타데이터의 ReqQoSPara 파트에 의해 가리켜진다. 만약, ReqQoSPara의 RefIndex가 0 또는 널(null)이면, "alter" 파라미터가 다른 옵션들 대신에 사용된다.The QoS-related parameters used in the request are indicated by the ReqQoSPara part of the QoSInfo metadata. If the RefIndex of ReqQoSPara is 0 or null, the "alter" parameter is used instead of the other options.

QoSInfo 메타데이터 내에 ReqQoSPara가 없으면, QoS-연관 파라미터들이 사용되지 않는다. 이 경우에서의 대안들은 MappingInfo의 위치들에 의해 암시된다.If there is no ReqQoSPara in the QoSInfo metadata, QoS-related parameters are not used. The alternatives in this case are implied by the locations of MappingInfo.

콘텐츠의 URI는 MappingInfo의 풍부한 설명으로부터 유래한다. 콘텐츠/프로그램이 MPEG-2 TS 스트림 내에서 운반될 때, 하나 이상의 PID가 상기 스트림 내에서 콘텐츠의 위치를 찾기 위해 사용된다.The URI of the content comes from the rich description of MappingInfo. When the content / program is transported within the MPEG-2 TS stream, one or more PIDs are used to locate the content within the stream.

프래그먼트 경계들을 감지하기 위한 추가적인 정보가 제공될 때, (단계(140)의 요청의) 쿼리 파트를 위한 하기의 파라미터들 1) 내지 3)이 사용될 수 있다.The following parameters 1) through 3) for the query part (of the request of step 140) may be used when additional information is provided to detect fragment boundaries.

1) MPEG-2 TS 경계를 위해, Apperance, PCR_PID, PCR_base, PCR_ext, Media_PID 및 Media_Offset1) For MPEG-2 TS boundaries, Apperance, PCR_PID, PCR_base, PCR_ext, Media_PID, and Media_Offset

2) ISO 미디어 파일 경계를 위해, SequenceNo2) For ISO media file boundaries, SequenceNo

3) 로(raw) 바이트-시퀀스로서 간주되는 파일을 위해, Start 및 End3) For files considered as raw byte-sequences, Start and End

이러한 파라미터들의 시맨틱스는 FragBoundaries 요소의 시맨틱스 내에서 제공된다.The semantics of these parameters are provided in the semantics of the FragBoundaries element.

Start-End 페어들은 HTTP 요청 메시지의 범위 헤더에 의해 사용될 수 있다. 예컨대, 만약 {(Start=0, End=99); (Start=200, End=299)}이면, 헤더는 "Range: bytes=0-99,200-299"일 수 있다.Start-End pairs can be used by the scope header of the HTTP request message. For example, if {(Start = 0, End = 99); (Start = 200, End = 299)}, the header may be " Range: bytes = 0-99,200-299 ".

하기에서, XML 포멧의 신택스 레프리젠테이션(representation)이 설명된다. 하기에서, 상기의 신택스 요소들의 레프리젠테이션이 XML 포멧으로 제공된다. 각 요소의 시맨틱스는 상기의 표 1 내지 표 7 내에서 추적(trace back)될 수 있다.In the following, a syntax representation of the XML format is described. In the following, the presentation of the above syntax elements is provided in XML format. The semantics of each element can be traced back within Tables 1 to 7 above.

몇몇 요소들은 MPEG-21 DIA 내에서 정의된 몇몇 타입들의 확장일 수 있다. 몇몇 요소들은 MPEG-21 DIA 내에서 정의된 몇몇 타입들을 취할 수 있다.Some elements may be extensions of some types defined within the MPEG-21 DIA. Some elements may take some types defined within the MPEG-21 DIA.

하기의 표 8은 HTTPStreamingType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 8 below is a syntax representation using the XML format of HTTPStreamingType.

<complexType name="HTTPStreamingType">
<complexContent>
<extension base="dia:DIADescriptionType">
<sequence>
<element name="GeneralInfo" type="GeneralInfoType" minOccurs="0"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="IntervalsRef" type="IntervalsRefType"/>
<element name="Interval" type="IntervalType"/>
</choice>
</sequence> </complexContent>
</complexType>
<complexType name = "HTTPStreamingType">
<complexContent>
<extension base = "dia: DIADescriptionType">
<sequence>
<element name = "GeneralInfo" type = "GeneralInfoType" minOccurs = "0"/>
<choice minOccurs = "0" maxOccurs = "unbounded">
<element name = "IntervalsRef" type = "IntervalsRefType"/>
<element name = "Interval" type = "IntervalType"/>
</ choice>
</ sequence></complexContent>
</ complexType>

하기의 표 9는 GeneralInfoType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 9 below is a syntax representation using the XML format of GeneralInfoType.

<complexType name="GeneralInfoType">
<complexContent>
<extension base="dia:DIADescriptionType">
<sequence>
<element name="TimeScale" type="integer" minOccurs="0"/>
<element name="LiveStartTime" type="dateTime" minOccurs="0"/>
<element name="Duration" type="integer" minOccurs="0"/>
<element name="DefaultIntDuration" type="integer" minOccurs="0"/>
<element name="MinUpdateTime" type="integer" minOccurs="0"/>
<element name="ConsistentQoSInfo" type="boolean" minOccurs="0"/>
<element name="DefaultContentLoc" type="anyURI" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name = "GeneralInfoType">
<complexContent>
<extension base = "dia: DIADescriptionType">
<sequence>
<element name = "TimeScale" type = "integer" minOccurs = "0"/>
<element name = "LiveStartTime" type = "dateTime" minOccurs = "0"/>
<element name = "Duration" type = "integer" minOccurs = "0"/>
<element name = "DefaultIntDuration" type = "integer" minOccurs = "0"/>
<element name = "MinUpdateTime" type = "integer" minOccurs = "0"/>
<element name = "ConsistentQoSInfo" type = "boolean" minOccurs = "0"/>
<element name = "DefaultContentLoc" type = "anyURI" minOccurs = "0"/>
</ sequence>
</ extension>
</ complexContent>
</ complexType>

하기의 표 10은 IntervalRefType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 10 below is a syntax representation using the XML format of IntervalRefType.

<complexType name="IntervalsRefType">
<complexContent>
<extension base="dia:ReferenceType">
<sequence>
<element name="AvaliableTime" type="integer" minOccurs="0"/>
</sequence>
<attribute name="startTime" type="xs:duration" use="optional"/>
</extension>
</complexContent>
</complexType>
<complexType name = "IntervalsRefType">
<complexContent>
<extension base = "dia: ReferenceType">
<sequence>
<element name = "AvaliableTime" type = "integer" minOccurs = "0"/>
</ sequence>
<attribute name = "startTime" type = "xs: duration" use = "optional"/>
</ extension>
</ complexContent>
</ complexType>

하기의 표 11은 IntervalType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 11 below is a syntax representation using XML format of IntervalType.

<complexType name="IntervalType">
<complexContent>
<extension base="dia:DIADescriptionType">
<sequence>
<element name="IntervalInfo" type="IntervalInfoType" minOccurs="0"/>
<choice minOccurs="0">
<element name="QoSInfo" type="QoSInfoType"/>
<element name="QoSInfoRef" type="dia:ReferenceType"/>
</choice>
<choice minOccurs="0">
<element name="MappingInfo" type="MappingInfoType"/>
<element name="MappingInfoRef" type="dia:ReferenceType"/>
</choice>
<element name="PreviousIntervalsRef" type="IntervalsRefType" minOccurs="0"/>
<element name="NextIntervalsRef" type="IntervalsRefType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name = "IntervalType">
<complexContent>
<extension base = "dia: DIADescriptionType">
<sequence>
<element name = "IntervalInfo" type = "IntervalInfoType" minOccurs = "0"/>
<choice minOccurs = "0">
<element name = "QoSInfo" type = "QoSInfoType"/>
<element name = "QoSInfoRef" type = "dia: ReferenceType"/>
</ choice>
<choice minOccurs = "0">
<element name = "MappingInfo" type = "MappingInfoType"/>
<element name = "MappingInfoRef" type = "dia: ReferenceType"/>
</ choice>
<element name = "PreviousIntervalsRef" type = "IntervalsRefType" minOccurs = "0"/>
<element name = "NextIntervalsRef" type = "IntervalsRefType" minOccurs = "0"/>
</ sequence>
</ extension>
</ complexContent>
</ complexType>

하기의 표 12는 IntervalInfoType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 12 below is a syntax representation using the XML format of IntervalInfoType.

<complexType name="IntervalInfoType">
<sequence>
<element name="TimeScale" type="integer" minOccurs="0"/>
<element name="StartTime" type="dateTime" minOccurs="0"/>
<element name="Duration" type="integer" minOccurs="0"/>
<element name="DefaultFragDuration" type="integer" minOccurs="0"/>
<element name="DefaultContentIntLoc" type="anyURI" minOccurs="0"/>
<element name="Last" type="boolean" minOccurs="0"/>
</sequence>
</complexType>
<complexType name = "IntervalInfoType">
<sequence>
<element name = "TimeScale" type = "integer" minOccurs = "0"/>
<element name = "StartTime" type = "dateTime" minOccurs = "0"/>
<element name = "Duration" type = "integer" minOccurs = "0"/>
<element name = "DefaultFragDuration" type = "integer" minOccurs = "0"/>
<element name = "DefaultContentIntLoc" type = "anyURI" minOccurs = "0"/>
<element name = "Last" type = "boolean" minOccurs = "0"/>
</ sequence>
</ complexType>

하기의 표 13은 QoSInfoType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 13 below is a syntax representation using the XML format of QoSInfoType.

<complexType name="QoSInfoType">
<complexContent>
<extension base="dia:DIADescriptionType">
<sequence>
<element name="DescriptionMetadata" type="dia:DescriptionMetadataType" minOccurs="0"/>
<element name="Description" type="dia:AdaptationQoSType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name = "QoSInfoType">
<complexContent>
<extension base = "dia: DIADescriptionType">
<sequence>
<element name = "DescriptionMetadata" type = "dia: DescriptionMetadataType" minOccurs = "0"/>
<element name = "Description" type = "dia: AdaptationQoSType"/>
</ sequence>
</ extension>
</ complexContent>
</ complexType>

하기의 표 14는 MappingInfoType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 14 below is a syntax representation using the XML format of MappingInfoType.

<complexType name="MappingInfoType">
<complexContent>
<extension base="dia:DIADescriptionType">
<sequence>
<element name="AlterLocIDs" type="IntegerVectorType" minOccurs="0"/>
<element name="ReqQoSPara" type="ReqQoSParaType" minOccurs="0" maxOccurs="unbounded"/>
<element name="LocationList" type="LocationListType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name = "MappingInfoType">
<complexContent>
<extension base = "dia: DIADescriptionType">
<sequence>
<element name = "AlterLocIDs" type = "IntegerVectorType" minOccurs = "0"/>
<element name = "ReqQoSPara" type = "ReqQoSParaType" minOccurs = "0" maxOccurs = "unbounded"/>
<element name = "LocationList" type = "LocationListType"/>
</ sequence>
</ extension>
</ complexContent>
</ complexType>

하기의 표 15는 ReqQoSParaType 의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 15 below is a syntax representation using the XML format of ReqQoSParaType.

<complexType name="ReqQoSParaType">
<complexContent>
<extension base="dia:BooleanVectorType">
<attribute name="all" type="boolean" use="optional"/>
<attribute name="iOPinRef" type="anyURI" use="required"/>
</extension>
</complexContent>
</complexType>
<complexType name = "ReqQoSParaType">
<complexContent>
<extension base = "dia: BooleanVectorType">
<attribute name = "all" type = "boolean" use = "optional"/>
<attribute name = "iOPinRef" type = "anyURI" use = "required"/>
</ extension>
</ complexContent>
</ complexType>

하기의 표 16은 LocationListType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 16 below is a syntax representation using XML format of LocationListType.

<complexType name="LocationListType">
<sequence>
<element name="Location" type="LocationType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name = "LocationListType">
<sequence>
<element name = "Location" type = "LocationType" maxOccurs = "unbounded"/>
</ sequence>
</ complexType>

하기의 표 17은 LocationType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 17 below is a syntax representation using XML format of LocationType.

<complexType name="LocationType">
<sequence>
<element name="StrLocation" type="StrLocationType" maxOccurs="unbounded"/>
</sequence>
<attribute name="locID" type="integer" use="required"/>
</complexType>
<complexType name = "LocationType">
<sequence>
<element name = "StrLocation" type = "StrLocationType" maxOccurs = "unbounded"/>
</ sequence>
<attribute name = "locID" type = "integer" use = "required"/>
</ complexType>

하기의 표 18은 StrLocationType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 18 below is a syntax representation using the XML format of StrLocationType.

<complexType name="StrLocationType">
<sequence>
<element name="FragNum" type="integer" minOccurs="0" />
<choice>
<element name="StreamUrl" type="anyURI"/>
<element name="FragmentUrl" type="anyURI" maxOccurs="unbounded"/>
</choice>
<element name="FragTime" type="dia:IntegerVectorType" minOccurs="0" />
<element name="RandAccess" type="dia:IntegerVectorType" minOccurs="0" />
<element name="MP2TSPara" type="MP2TSParaType" minOccurs="0"/>
<element name="FragBoundaries" type="FragBoundariesType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name = "StrLocationType">
<sequence>
<element name = "FragNum" type = "integer" minOccurs = "0"/>
<choice>
<element name = "StreamUrl" type = "anyURI"/>
<element name = "FragmentUrl" type = "anyURI" maxOccurs = "unbounded"/>
</ choice>
<element name = "FragTime" type = "dia: IntegerVectorType" minOccurs = "0"/>
<element name = "RandAccess" type = "dia: IntegerVectorType" minOccurs = "0"/>
<element name = "MP2TSPara" type = "MP2TSParaType" minOccurs = "0"/>
<element name = "FragBoundaries" type = "FragBoundariesType" maxOccurs = "unbounded"/>
</ sequence>
</ complexType>

하기의 표 19는 MP2TSParaType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 19 below is a syntax representation using the XML format of MP2TSParaType.

<complexType name="MP2TSParaType">
<sequence>
<element name="PID" type="integer" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name = "MP2TSParaType">
<sequence>
<element name = "PID" type = "integer" maxOccurs = "unbounded"/>
</ sequence>
</ complexType>

하기의 표 20은 FragBoundariesType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 20 below is a syntax representation using the XML format of FragBoundariesType.

<complexType name="FragBoundariesType">
<sequence>
<choice>
<element name="MP2TSBoundary" type="MP2TSBoundaryType" maxOccurs="2"/>
<element name="ISOFileBoundary" type="ISOFileBoundaryType" maxOccurs="2"/>
<element name="ByteRanges" type="ByteRangesType"/>
</choice>
</sequence>
</complexType>
<complexType name = "FragBoundariesType">
<sequence>
<choice>
<element name = "MP2TSBoundary" type = "MP2TSBoundaryType" maxOccurs = "2"/>
<element name = "ISOFileBoundary" type = "ISOFileBoundaryType" maxOccurs = "2"/>
<element name = "ByteRanges" type = "ByteRangesType"/>
</ choice>
</ sequence>
</ complexType>

하기의 표 21은 MP2TSBoundaryType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 21 below is a syntax representation using the MP2TSBoundaryType XML format.

<complexType name="MP2TSBoundaryType">
<sequence>
<element name="PCR_PID" type="integer"/>
<element name="PCR_base" type="long"/>
<element name="PCR_ext" type="integer"/>
<element name="Appearance" type="integer"/>
<element name="Media_PID" type="integer" maxOccurs="unbounded"/>
<element name="Media_Offset" type="integer" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name = "MP2TSBoundaryType">
<sequence>
<element name = "PCR_PID" type = "integer"/>
<element name = "PCR_base" type = "long"/>
<element name = "PCR_ext" type = "integer"/>
<element name = "Appearance" type = "integer"/>
<element name = "Media_PID" type = "integer" maxOccurs = "unbounded"/>
<element name = "Media_Offset" type = "integer" maxOccurs = "unbounded"/>
</ sequence>
</ complexType>

하기의 표 22는 ISOFileBoundaryType 및 ByteRangesType의 XML 포멧을 사용한 신택스 레프리젠테이션이다.Table 22 below is a syntax representation using the XML format of ISOFileBoundaryType and ByteRangesType.

<complexType name="ISOFileBoundaryType">
<sequence>
<element name="SequenceNo" type="integer" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="ByteRangesType">
<sequence maxOccurs="unbounded">
<element name="Start" type="integer"/>
<element name="End" type="integer"/>
<element name="Media_PID" type="integer" minOccurs="0"/>
</sequence>
</complexType>
<complexType name = "ISOFileBoundaryType">
<sequence>
<element name = "SequenceNo" type = "integer" maxOccurs = "unbounded"/>
</ sequence>
</ complexType>
<complexType name = "ByteRangesType">
<sequence maxOccurs = "unbounded">
<element name = "Start" type = "integer"/>
<element name = "End" type = "integer"/>
<element name = "Media_PID" type = "integer" minOccurs = "0"/>
</ sequence>
</ complexType>

하기에서, MP4 슈도-코드 포멧의 신택스 레프리젠테이션이 설명된다. 하기에서, 상기의 신택스 요소들의 레프리젠테이션이 MP4 슈도-코드로 제공된다.In the following, the syntax representation of the MP4 pseudo-code format will be described. In the following, the representation of the above syntax elements is provided in the MP4 pseudo-code.

하기의 표 23은 HTTPStreamingBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 23 below is a syntax representation using the MP4 pseudo-code of the HTTPStreamingBox.

HTTPStreamingBox
Box Type: 'htps'
Container: Signaling file
Mandatory: Yes
Quantity: One
Aligned(8) class HTTPStreamingBox extends Box('htps') {
}
HTTPStreamingBox
Box Type: 'htps'
Container: Signaling file
Mandatory: Yes
Quantity: One
Aligned (8) class HTTPStreamingBox extends Box ('htps') {
}

하기의 표 24는 GeneralInfoBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 24 below is a syntax representation using the MP4 pseudo-code of GeneralInfoBox.

GeneralInfoBox
Box Type: 'geni'
Container: 'htps'
Mandatory: No
Quantity: One
Aligned(8) class GeneralInfoBox extends Box('geni') {
bit(1) consistentQoSInfo_flag;
bit(1) timescale_flag;
bit(1) live_start_time_flag;
bit(1) duration_flag;
bit(1) default_interval_duration_flag;
bit(1) min_update_time_flag;
bit(1) default_content_loc_flag;
bit(1) reserved;
if (timescale_flag==1) { unsigned int(32) timescale;}
if (live_start_time_flag==1) { unsigned int(64) live_start_time;}
if (duration_flag==1) {unsigned int(32) duration;}
if (default_interval_duration_flag==1) {unsigned int(32) default_interval_duration;}
if (min_update_time==1) {unsigned int(32) min_update_time;}
if (default_content_loc_ref ==1) {string default_content_loc_ref;}
}
GeneralInfoBox
Box Type: 'geni'
Container: 'htps'
Mandatory: No
Quantity: One
Aligned (8) class GeneralInfoBox extends Box ('geni') {
bit (1) consistentQoSInfo_flag;
bit (1) timescale_flag;
bit (1) live_start_time_flag;
bit (1) duration_flag;
bit (1) default_interval_duration_flag;
bit (1) min_update_time_flag;
bit (1) default_content_loc_flag;
bit (1) reserved;
if (timescale_flag == 1) {unsigned int (32) timescale;
if (live_start_time_flag == 1) {unsigned int (64) live_start_time;}
if (duration_flag == 1) {unsigned int (32) duration;
if (default_interval_duration_flag == 1) {unsigned int (32) default_interval_duration;
if (min_update_time == 1) {unsigned int (32) min_update_time;
if (default_content_loc_ref == 1) {string default_content_loc_ref;}
}

하기에서, 인터벌-레벨 정보가 설명된다.In the following, interval-level information is described.

하기의 표 25는 IntervalBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 25 below is a syntax representation using the MP4 pseudo-code of IntervalBox.

IntervalBox
Box Type: 'intv'
Container: 'htps'
Mandatory: No
Quantity: One or more
Aligned(8) class IntervalBox extends Box('intv') {
}
IntervalBox
Box Type: 'intv'
Container: 'htps'
Mandatory: No
Quantity: One or more
Aligned (8) class IntervalBox extends Box ('intv') {
}

하기의 표 26은 IntervalRefBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 26 below is a syntax representation using the MP4 pseudo-code of IntervalRefBox.

IntervalRefBox
Box Type: 'iref'
Container: 'htps'
Mandatory: No
Quantity: One or more
Aligned(8) class IntervalRefBox extends Box('iref') {
unsigned int(8) index;
string location;
}
IntervalRefBox
Box Type: 'iref'
Container: 'htps'
Mandatory: No
Quantity: One or more
Aligned (8) class IntervalRefBox extends Box ('iref') {
unsigned int (8) index;
string location;
}

하기의 표 27은 QoSInfoRefBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 27 below is a syntax representation using the MP4 pseudo-code of QoSInfoRefBox.

QoSInfoRefBox
Box Type: 'qref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned(8) class QoSInfoRef extends Box('qref') {
unsigned int(8) index;
string location;
}
QoSInfoRefBox
Box Type: 'qref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned (8) class QoSInfoRef extends Box ('qref') {
unsigned int (8) index;
string location;
}

하기의 표 28은 MappingInfoRefBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 28 below is a syntax representation using the MP4 pseudo-code of MappingInfoRefBox.

MappingInfoRefBox
Box Type: 'mref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned(8) class MappingInfoRef extends Box('mref') {
unsigned int(8) index;
string location;
}
MappingInfoRefBox
Box Type: 'mref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned (8) class MappingInfoRef extends Box ('mref') {
unsigned int (8) index;
string location;
}

하기의 표 29는 IntervalInfoBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 29 below is a syntax representation using the MP4 pseudo-code of IntervalInfoBox.

IntervalInfoBox
Box Type: 'inti'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned(8) class IntervalInfoBox extends Box('geni') {
bit(1) last_flag;
bit(1) timescale_flag;
bit(1) start_time_flag;
bit(1) duration_flag;
bit(1) default_frag_duration_flag;
bit(1) default_content_interval_loc_flag;
bit(2) reserved;
if (timescale_flag==1) {unsigned int(32) timescale;}
if (start_time_flag==1) {unsigned int(32) start_time;}
if (duration_flag==1) {unsigned int(32) duration;}
if (default_frag_duration==1) {unsigned int(32) default_frag_duration;}
if (default_content_interval_loc_flag==1) {string default_content_interval_loc;}
}
IntervalInfoBox
Box Type: 'inti'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned (8) class IntervalInfoBox extends Box ('geni') {
bit (1) last_flag;
bit (1) timescale_flag;
bit (1) start_time_flag;
bit (1) duration_flag;
bit (1) default_frag_duration_flag;
bit (1) default_content_interval_loc_flag;
bit (2) reserved;
if (timescale_flag == 1) {unsigned int (32) timescale;
if (start_time_flag == 1) {unsigned int (32) start_time;}
if (duration_flag == 1) {unsigned int (32) duration;
if (default_frag_duration == 1) {unsigned int (32) default_frag_duration;
if (default_content_interval_loc_flag == 1) {string default_content_interval_loc;}
}

하기의 표 30은 NextIntervalRefBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 30 below is a syntax representation using the MP4 pseudo-code of NextIntervalRefBox.

NextIntervalRefBox
Box Type: 'nref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned(8) class NextIntervalRef extends Box('nref') {
unsigned int(32) available_time;
unsigned int(8) index;
string location;
}
NextIntervalRefBox
Box Type: 'nref'
Container: 'intv'
Mandatory: No
Quantity: Zero or more
Aligned (8) class NextIntervalRef extends Box ('nref') {
unsigned int (32) available_time;
unsigned int (8) index;
string location;
}

하기에서 QoS 정보가 설명된다.QoS information will be described below.

하기의 표 31은 QoSInfoBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 31 below is a syntax representation using the MP4 pseudo-code of the QoSInfoBox.

QoSInfoBox
Box Type: 'QoSi'
Container: 'intv' or 'htps'
Mandatory: No
Quantity: Zero or more
Note: when a 'QoSi' box is stored separately from other signaling metadata, it will stay directly in 'htps' box for the purpose of easy referencing.

Aligned(8) class QoSInfoBox extends Box('QoSi') {
}
QoSInfoBox
Box Type: 'QoSi'
Container: 'intv' or 'htps'
Mandatory: No
Quantity: Zero or more
Note: when a 'QoSi' box is stored separately from other signaling metadata, it will directly in 'htps' box for the purpose of easy referencing.

Aligned (8) class QoSInfoBox extends Box ('QoSi') {
}

하기의 표 32는 ClassSchemeRefBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 32 below is a syntax representation using the MP4 pseudo-code of ClassSchemeRefBox.

ClassSchemeRefBox
Box Type: 'csmr'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class ClassSchemeRef extends Box('csmr') {
unsigned int(32) entry_count;
for (i=1; i <= entry_count ; i++) {
string scheme; //URL
}
}
ClassSchemeRefBox
Box Type: 'csmr'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class ClassSchemeRef extends Box ('csmr') {
unsigned int (32) entry_count;
for (i = 1; i <= entry_count; i ++) {
string scheme; // URL
}
}

하기의 표 33은 ResourceBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 33 below is a syntax representation using the MP4 pseudo-code of the ResourceBox.

ResourceBox
Box Type: 'resi'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class ResouceBox extends Box('resi') {
unsigned int(32) name;
if (name=="r000"||name=="r001"||name=="r002"||name=="r003"||name=="r004"||
name=="r005"||name=="r006"||name=="r007"||name=="r008"||name=="r009")
{
unsigned int(16) csref_ind;
unsigned int(16) level_num;
for (i=1; i <= level_num ; i++) {
unsigned int(32) level_index;
}
}
for (i=1; ; i++) {
unsigned int(32) value;
}
}

We define some typical names of resource types as follows
o 'bitr' means average bitrate of the content
o "frar" means frame rate of video content
o "verr" means vertical resolution of video frame
o "horr" means horizontal resolution of video frame

When a resource type defined in some Classification Scheme should be used, the resource takes a "dummy name" among {'r000', 'r001', ...., 'r009'} and some special parameters (csref_ind, level_num, level_index) are used to associate that "dummy name" with a term of semantics in the Classification Scheme.
ResourceBox
Box Type: 'resi'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class ResouceBox extends Box ('resi') {
unsigned int (32) name;
if (name == "r000" || name == "r001" || name == "r002" || name == "r003" || name == "r004" ||
name == "r005" || name == "r006" || name == "r007" || name == "r008" || name == "r009"
{
unsigned int (16) csRef_ind;
unsigned int (16) level_num;
for (i = 1; i <= level_num; i ++) {
unsigned int (32) level_index;
}
}
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

We define some types of resource types as follows
o 'bitr' means the average bitrate of the content
o "frar" means frame rate of video content
o "verr" means vertical resolution of video frame
o "horr" means horizontal resolution of video frame

R009 ', and' r009 '} and some special parameters (csref_ind, level_num, level_index). ) are used to associate that "dummy name" with a term of semantics in the Classification Scheme.

하기의 표 34는 AdaptationOperatorBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 34 below is a syntax representation using the MP4 pseudo-code of the AdaptationOperatorBox.

AdaptationOperatorBox
Box Type: 'adpo'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class AdaptationOperatorBox extends Box('adpo') {
unsigned int(32) name;
if (name=="a000"||name=="a001"||name=="a002"||name=="a003"||name=="a004"||
name=="a005"||name=="a006"||name=="a007"||name=="a008"||name=="a009")
{
unsigned int(16) csref_ind;
unsigned int(16) level_num;
for (i=1; i <= level_num ; i++) {
unsigned int(32) level_index;
}
}
for (i=1; ; i++) {
unsigned int(32) value;
}
}

We define some typical names of adaptation operator types as follows
o 'spals' means the number of spatial layers to be discarded, from the highest one.
o 'quls' means the number of quality layers to be discarded, from the highest one.
o 'tmls' means the number of temporal layers to be discarded, from the highest one.

When a adaptation operator type defined in some Classification Scheme (outside this standard) should be used, the operator takes a "dummy name" among {'a000', 'a001', ..., 'a009'} and some special parameters (csref_ind, level_num, level_index) are used to associate that "dummy name" with a term of semantics in the Classification Scheme.
AdaptationOperatorBox
Box Type: 'adpo'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class AdaptationOperatorBox extends Box ('adpo') {
unsigned int (32) name;
if (name == "a000" || name == "a001" || name == "a002" || name == "a003" || name == "a004" ||
name == "a005" || name == "a006" || name == "a007" || name == "a008" || name == "a009"
{
unsigned int (16) csRef_ind;
unsigned int (16) level_num;
for (i = 1; i <= level_num; i ++) {
unsigned int (32) level_index;
}
}
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

We define some typical names of adaptation operator types as follows
o 'spals' means the number of spatial layers to be discarded, from the highest one.
o 'quls' means the number of quality layers to be discarded, from the highest one.
o 'tmls' means the number of temporal layers to be discarded, from the highest one.

A009 ', and' a009 '} and some special parameters ((a), (b), and (c) csref_ind, level_num, level_index) are used to associate that "dummy name" with a semantics in the Classification Scheme.

하기의 표 35는 UtilityBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 35 below is a syntax representation using the MP4 pseudo-code of UtilityBox.

UtilityBox
Box Type: 'util'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class UtilityBox extends Box('util') {
unsigned int(32) name;
if (name=="u000"||name=="u001"||name=="u002"||name=="u003"||name=="u004"||
name=="u005"||name=="u006"||name=="u007"||name=="u008"||name=="u009")
{
unsigned int(16) csref_ind;
unsigned int(16) level_num;
for (i=1; i <= level_num ; i++) {
unsigned int(32) level_index;
}
}
for (i=1; ; i++) {
unsigned int(32) value;
}
}

We define some typical names of utilities as follows
o 'psnr'
o 'mos '

When a utility type defined in some Classification Scheme (outside this standard) should be used, the operator takes a "dummy name" among {'u000', 'u001', ..., 'u009'} and some special parameters (csref_ind, level_num, level_index) are used to associate that "dummy name" with a term of semantics in the Classification Scheme.
UtilityBox
Box Type: 'util'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class UtilityBox extends Box ('util') {
unsigned int (32) name;
if (name == "u000" || name == "u001" || name == "u002" || name == "u003" || name == "u004" ||
name == "u005" || name == "u006" || name == "u007" || name == "u008" || name == "u009"
{
unsigned int (16) csRef_ind;
unsigned int (16) level_num;
for (i = 1; i <= level_num; i ++) {
unsigned int (32) level_index;
}
}
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

We define some typical names of utilities as follows
o 'psnr'
o 'mos'

U001 ', ...,' u009 '} and some special parameters (csref_ind ()), and the operator takes a "dummy name" , level_num, level_index) are used to associate that "dummy name" with a semantics in the Classification Scheme.

하기의 표 36은 UtilityRankBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 36 below is a syntax representation using the MP4 pseudo-code of the UtilityRankBox.

UtilityRankBox
Box Type: 'utir'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class UtilityRankBox extends Box('utir') {
for (i=1; ; i++) {
unsigned int(32) value;
}
}
UtilityRankBox
Box Type: 'utir'
Container: 'QoSi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class UtilityRankBox extends Box ('utir') {
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

하기에서, 매핑 정보가 설명된다.In the following, the mapping information is described.

*하기의 표 37은 MappingInfoBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.* Table 37 below is a syntax representation using MP4 pseudo-code of MappingInfoBox.

MappingInfoBox
Box Type: 'mapi'
Container: 'intv' or 'htps'
Mandatory: No
Quantity: Zero or more
Note: when a 'mapi' box is stored separately from other signaling metadata, it will stay directly in 'htps' box for the purpose of easy referencing.

Aligned(8) class MappingInfoBox extends Box('mapi') {
}
MappingInfoBox
Box Type: 'mapi'
Container: 'intv' or 'htps'
Mandatory: No
Quantity: Zero or more
Note: when a 'mapi' box is stored separately from other signaling metadata, it will directly in 'htps' box for the purpose of easy referencing.

Aligned (8) class MappingInfoBox extends Box ('mapi') {
}

하기의 표 38은 AlterLocIDBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 38 below is a syntax representation using the MP4 pseudo-code of AlterLocIDBox.

AlterLocIDBox
Box Type: 'aloc'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class AlterLocIDBox extends Box('aloc') {
for (i=1; ; i++) {
unsigned int(32) value;
}
}
AlterLocIDBox
Box Type: 'aloc'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class AlterLocIDBox extends Box ('aloc') {
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

하기의 표 39는 ReqQoSParaBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 39 below is a syntax representation using the MP4 pseudo-code of ReqQoSParaBox.

ReqQoSParaBox
Box Type: 'reqp'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class ReqQoSParaBox extends Box('reqp') {
bit(1) all_flag;
bit(7) reserved;
unsigned int(32) refindex;
if ( all_flag == 0 ) {
for (i=1; ; i++) {
unsigned int(8) req_flag;
}
}
}
ReqQoSParaBox
Box Type: 'reqp'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class ReqQoSParaBox extends Box ('reqp') {
bit (1) all_flag;
bit (7) reserved;
unsigned int (32) refindex;
if (all_flag == 0) {
for (i = 1;; i ++) {
unsigned int (8) req_flag;
}
}
}

하기의 표 40은 ReqQoSParaBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 40 below is a syntax representation using the MP4 pseudo-code of ReqQoSParaBox.

ReqQoSParaBox
Box Type: 'locl'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned(8) class LocationListBox extends Box('locl') {
}
ReqQoSParaBox
Box Type: 'locl'
Container: 'mapi'
Mandatory: No
Quantity: Zero or more
Aligned (8) class LocationListBox extends Box ('locl') {
}

하기의 표 41은 LocationBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 41 below is a syntax representation using the MP4 pseudo-code of LocationBox.

LocationBox
Box Type: 'loca'
Container: 'locl'
Mandatory: Yes
Quantity: One or more
Aligned(8) class LocationBox extends Box('loca') {
unsigned int(16) frag_num;
unsigned int(16) locID;
}
LocationBox
Box Type: 'loca'
Container: 'locl'
Mandatory: Yes
Quantity: One or more
Aligned (8) class LocationBox extends Box ('loca') {
unsigned int (16) frag_num;
unsigned int (16) locID;
}

하기의 표 42는 FragTimeBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 42 below is a syntax representation using the MP4 pseudo-code of FragTimeBox.

FragTimeBox
Box Type: 'frtm'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned(8) class FragTimeBox extends Box('frtm') {
for (i=1; ; i++) {
unsigned int(32) value;
}
}
FragTimeBox
Box Type: 'frtm'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned (8) class FragTimeBox extends Box ('frtm') {
for (i = 1;; i ++) {
unsigned int (32) value;
}
}

하기의 표 43은 RandAccessBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 43 below is a syntax representation using the MP4 pseudo-code of the RandAccessBox.

RandAccessBox
Box Type: 'rdac'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned(8) class RandAccessBox extends Box('rdac') {
for (i=1; ; i++) {
unsigned int(16) value;
}
}
RandAccessBox
Box Type: 'rdac'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned (8) class RandAccessBox extends Box ('rdac') {
for (i = 1;; i ++) {
unsigned int (16) value;
}
}

하기의 표 44는 StrLocationBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 44 below is a syntax representation using the MP4 pseudo-code of StrLocationBox.

StrLocationBox
Box Type: 'stlo'
Container: 'loca'
Mandatory: Yes
Quantity: One or more
Aligned(8) class StrLocationBox extends Box('stlo') {
bit(1) stream_url_flag;
bit(7) reserved;
if (stream_url_flag == 1) {
string stream_url;
} else {
for (i=1; ; i++) {
string fragment_url;
}
}
}
StrLocationBox
Box Type: 'stlo'
Container: 'loca'
Mandatory: Yes
Quantity: One or more
Aligned (8) class StrLocationBox extends Box ('stlo') {
bit (1) stream_url_flag;
bit (7) reserved;
if (stream_url_flag == 1) {
string stream_url;
} else {
for (i = 1;; i ++) {
string fragment_url;
}
}
}

하기의 표 45는 MP2TSParaBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 45 below is a syntax representation using the MP4 pseudo-code of MP2TSParaBox.

MP2TSParaBox
Box Type: 'mp2p'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned(8) class MP2TSParaBox extends Box('mp2p') {
for (i=1; ; i++) {
unsigned int(16) PID;
}
}
MP2TSParaBox
Box Type: 'mp2p'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned (8) class MP2TSParaBox extends Box ('mp2p') {
for (i = 1;; i ++) {
unsigned int (16) PID;
}
}

하기의 표 46은 FragBoundariesBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 46 below is a syntax representation using the MP4 pseudo-code of FragBoundariesBox.

FragBoundariesBox
Box Type: 'frbd'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned(8) class FragBoundariesBox extends Box('frbd') {
}
FragBoundariesBox
Box Type: 'frbd'
Container: 'loca'
Mandatory: No
Quantity: Zero or more
Aligned (8) class FragBoundariesBox extends Box ('frbd') {
}

하기의 표 47은 MP2TSBoundaryBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 47 below is a syntax representation using the MP4 pseudo-code of the MP2TSBoundaryBox.

MP2TSBoundaryBox
Box Type: 'mp2b'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned(8) class MP2TSBoundaryBox extends Box('mp2b') {
unsigned int(16) appearance;
unsigned int(16) PCR_ID;
unsigned int(40) PCR_base;
unsigned int(16) PCR_ext;
for (i=1; ; i++) {
unsigned int(16) media_PID;
}
for (i=1; ; i++) {
unsigned int(16) media_offset;
}
}
MP2TSBoundaryBox
Box Type: 'mp2b'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned (8) class MP2TSBoundaryBox extends Box ('mp2b') {
unsigned int (16) appearance;
unsigned int (16) PCR_ID;
unsigned int (40) PCR_base;
unsigned int (16) PCR_ext;
for (i = 1;; i ++) {
unsigned int (16) media_PID;
}
for (i = 1;; i ++) {
unsigned int (16) media_offset;
}
}

하기의 표 48은 ISOFileBoundaryBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 48 below is a syntax representation using the MP4 pseudo-code of ISOFileBoundaryBox.

ISOFileBoundaryBox
Box Type: 'isfb'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned(8) class ISOFileBoundaryBox extends Box('isfb') {
unsigned int(16) sequence_no;
}
ISOFileBoundaryBox
Box Type: 'isfb'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned (8) class ISOFileBoundaryBox extends Box ('isFB') {
unsigned int (16) sequence_no;
}

하기의 표 49는 ISOFileBoundaryBox의 MP4 슈도-코드를 사용한 신택스 레프리젠테이션이다.Table 49 below is a syntax representation using the MP4 pseudo-code of ISOFileBoundaryBox.

ByteRangesBox
Box Type: 'isfb'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned(8) class ByteRangesBox extends Box('brag') {
for (i=1; ; i++) {
unsigned int(32) start;
unsigned int(32) end;
}
}
ByteRangesBox
Box Type: 'isfb'
Container: 'frbd'
Mandatory: No
Quantity: Zero or more
Aligned (8) class ByteRangesBox extends Box ('brag') {
for (i = 1;; i ++) {
unsigned int (32) start;
unsigned int (32) end;
}
}

도 4는 본 발명의 일 예에 따른 MPEG-2 TS 내에서의 가상 경계들의 감지를 설명한다.Figure 4 illustrates the detection of virtual boundaries within an MPEG-2 TS according to an example of the present invention.

TS 스트림에서, 주어진 프로그램의 PCR 패킷은 고정된 PID(즉, PCR_PID)와 함께 수송(carry)되며, 적어도 매 100ms 마다 삽입된다.In the TS stream, a PCR packet of a given program is carried with a fixed PID (i.e., PCR_PID) and inserted at least every 100 ms.

PCR 패킷들은 (증가하는 값들과 함께) 프로그램의 앵커 포인트들로서 간주될 수 있다. 다른 한 편으로, 프로그램의 각 미디어들은 주어진 PID(즉, Media_PID)의 패킷들에 의해 수송될 수 있다.PCR packets (with increasing values) can be considered as program anchor points. On the other hand, each media in the program may be transported by packets of a given PID (i.e., Media_PID).

따라서, 미디어 스트림의 프래그먼트 경계는 1) 특정 앵커 포인트 및 2) 상기 앵커로부터 경계에 있는 패킷까지의 옵셋에 의해 정의 또는 식별될 수 있다.Thus, the fragment boundary of the media stream can be defined or identified by 1) a specific anchor point and 2) an offset from the anchor to a packet at the border.

옵셋은 동일한 Media_PID의 패킷들에 의해 카운트될 수 있다..The offset can be counted by packets of the same Media_PID.

때때로 PCR 값들은 리셋(불연속성)될 수 있다. 이 경우, 인터벌 내에 동일한 PCR 값의 하나 이상의 PCR 패킷들이 있는 경우, 앵커로서 사용되는 PCR 패킷의 출현 순서가 가리진다..Sometimes PCR values can be reset (discontinuous). In this case, if there is more than one PCR packet of the same PCR value in the interval, the order of appearance of the PCR packet used as the anchor is covered.

따라서, MPEG-2 TS 스트림 내의 미디어 스트림의 프래그먼트 경계는 하기의 표 50의 파라미터들에 의해 식별될 수 있다.Thus, the fragment boundary of the media stream in the MPEG-2 TS stream can be identified by the parameters in Table 50 below.

PCR_PIDPCR_PID 관련된 콘텐츠/프로그램의 PCR을 나르는 PID를 설명Describe the PID that carries the PCR of the related content / program PCR_basePCR_base PCR 베이스 필드의 값을 설명 Describe the value of the PCR base field PCR_extPCR_ext PCR 베이스 확장의 값을 설명Describe the value of the PCR base extension AppearanceAppearance 상기 2 개의 요소들에 의해 식별되는 PCR 값을 포함하는 TS 패킷의 출현 순서(예컨대, 제1, 제2)를 설명.
PCR의 리셋팅/불연속성이 있는 경우, PCR 값은 인터벌 동안 한 번 이상 나타날 수 있음.
Describes the order of appearance (e.g., first and second) of TS packets containing the PCR value identified by the two elements.
PCR reset / discontinuity, the PCR value may appear more than once during the interval.
Media_PIDMedia_PID 프로그램의 미디어(예컨대, 비디오)의 PID를 설명. Describes the PID of the program's media (e.g., video). Media_OffsetMedia_Offset 상기 식별된 PCR 패킷으로부터 프래그먼트의 제1 미디어 패킷까지의 (동일한 Media_Pid의 TS 패킷들 내에서의) 옵셋을 설명. Describe the offset (within TS packets of the same Media_Pid) from the identified PCR packet to the first media packet of the fragment.

하기에서 3GPP 적응적 HTTP 스트리밍 스키마 내에서의 몇몇 신택스 요소들의 매핑 및 확장들을 설명한다. In the following 3GPP The mapping and extensions of some syntax elements within the adaptive HTTP streaming schema are described.

3GPP에 의해 적응적 HTTP 스트리밍을 위한 표준이 표준화되었다. 상기의 몇몇 신택스 요소들의 3GPP 적응적 HTTP 스트리밍의 스키마로의 매핑이 개시된다.A standard for adaptive HTTP streaming by 3GPP has been standardized. The mapping of the 3GPP adaptive HTTP streaming of some of the above syntax elements to the schema is disclosed.

하기의 실시예 내에서의 아이디어를 나타내기 위해 몇몇 다른 상이한 신택스들이 사용될 수 있다.Several different syntaxes may be used to represent the idea in the following embodiments.

이 스키마에서, 용어 Period는 상기에서 논의된 Interval에서와 동일하다. 추가된 요소들/속성들의 시맨틱스는 하기의 표 51과 같다.In this schema, the term Period is the same as in Interval discussed above. The semantics of the added elements / attributes are shown in Table 51 below.

PeriodsRefPeriodsRef 상기의 신택스의 IntervalsRef 요소와 동등하다(equivalent). 자식 요소들(Location, startTime 및 availableTime)은 상기의 테이블에서 이미 정의되었다.
Period의 start 및 duration 속성들의 변화와 일관성 있게 만들기 위해, 동일한 Period의 duration 속성이 PeriodsRef 내에서 사용될 수 있다.
Equivalent to the IntervalsRef element of the above syntax. The child elements (Location, startTime and availableTime) are already defined in the table above.
To ensure consistency with changes in the start and duration properties of the Period, the duration attribute of the same Period can be used within the PeriodsRef.
NextPeriodRefNextPeriodRef 상기의 신택스의 PreviousIntervalsRef와 동등하다.Equivalent to PreviousIntervalsRef of the above syntax. PreviousPeriodsRefPreviousPeriodsRef 상기의 신택스의 PreviousIntervalsRef와 동등하다.Equivalent to PreviousIntervalsRef of the above syntax. lastPeriodFlaglastPeriodFlag 상기의 신택스의 Last 요소와 동등하다.This is equivalent to the Last element of the above syntax. QualityQuality 상기의 신택스의 AdaptationInfo(또는 QoSInfo)의 Utility 요소와 동등하다.
Quality 요소는 하기의 2 개의 요소들을 갖는다.
1) name : 퀄리티 타입(예컨데, MOS, PSNR)을 설명한다. 이 속성은 QualityNameType의 타입을 갖는다. QualityNameType 내에 열거된 품질 명칭들의 시맨틱스는 MPEG-21 DIA의 분류 스킴 AdaptationQoSCS에 의해 정의된다.
2) value : 품질 값을 설명한다.
This is equivalent to the Utility element of AdaptationInfo (or QoSInfo) of the above syntax.
The Quality element has the following two elements.
1) name: Describes the quality type (for example, MOS, PSNR). This attribute has a type of QualityNameType. The semantics of the quality names listed in the QualityNameType are defined by the classification scheme AdaptationQoSCS of the MPEG-21 DIA.
2) value: Describes the quality value.
requestPararequestPara 상기의 신택스의 ReqQoSPara 요소와 동등하다. 이 속성은 하기에서 정의된 포멧을 갖는 텍스트 스트링이다.
만약 스트링이 "?"로 시작하지 않으면, 스트링은 공백문자(space)로 분리된 값들의 시퀀스로 구성된다.
각 값은 질의 내의 파라미터로서 사용되는 Representation의 속성의 순서를 가리킨다.
질의 파라미터의 명칭 및 값은 대응하는 속성의 명칭 및 값이다.
예컨대, 스트링이 "2 3"이고 Representation의 제2 및 제3 속성이 [...with="320" height="240" ...]이면, 질의 파트는 "with=320&height=240"이다.
만약, 스트링이 "?"로 시작되면, 예컨대, "bandwidth=1000&with=320&height=240"과 같이, 주어진 Representation의 요청을 위한 정확한 질의 문자열이 제공된다.
URL 인코딩(RFC 2616에서 정의된 것과 같이)이 특별한 문자들(characters)을 지원하기 위해 여기서 적용될 수 있다. 하기에서 정의될 몇몇 특별한 문자들은 이 문자열 내에서도 사용될 수 있다.
Equivalent to the ReqQoSPara element of the above syntax. This attribute is a text string with the format defined below.
If the string does not begin with a "?", The string consists of a sequence of values separated by whitespace.
Each value indicates the order of the attributes of the Representation used as parameters in the query.
The name and value of the query parameter are the name and value of the corresponding attribute.
For example, if the string is "2 3" and the second and third attributes of Representation are [... with = "320" height = "240" ...], then the query part is "with = 320 & height = 240".
If the string begins with a?, An exact query string is provided for a given Representation request, e.g., " bandwidth = 1000 & with = 320 & height = 240 &quot;.
URL encoding (as defined in RFC 2616) can be applied here to support special characters. Some special characters that will be defined below can also be used within this string.
randAccessrandAccess 상기의 신택스의 RandAccess 요소와 동등하다.
이 속송은 공백문자들에 의해 분리된 값들의 시쿤스로 구성되는 텍스트 문자열이다.
각 값은 Representation의 세그먼트의 순서를 가리킨다.
이 속성에 의해 식별되는 세그먼트들은 임의 접근을 지원한다.
It is equivalent to the RandAccess element of the above syntax.
This is a text string consisting of a sequence of values separated by whitespace characters.
Each value indicates the order of the segments in the Representation.
Segments identified by this attribute support arbitrary access.

더욱이, UrlType의 range 속성의 시맨틱스는, 예컨데 "0-500,1000-1500"와 같은, 다중 바이트 범위들을 지원하기 위해 확장될 수 있다. 이러한 변형은 range 속성을 상기의 신택스의 ByteRanges 요소와 동등하게 만든다.Moreover, the semantics of the range attribute of UrlType can be extended to support multi-byte ranges, such as " 0-500,1000-1500 ". This variant makes the range property equal to the ByteRanges element of the syntax above.

추가적으로, sourceURL 속성은 요구되는 것에서 선택적인 것으로 변경될 수 있다. 이는, baseURL이 이미 완전한 URL을 제공하기 때문이다. sourceURL은 요구되지 않을 수 있다.In addition, the sourceURL attribute may be changed from required to optional. This is because the baseURL already provides the complete URL. sourceURL may not be required.

다중 바이트 범위들의 사용은 "가상 세그먼트들"을 다운로딩함에 있어서 유동성을 제공한다. 예컨대, (트릭모드(trickmode)에서 사용될 수 있는) 저(low) 프레임 레이트의 세그먼트는 스트림 또는 원 세그먼트로부터 온-더-플라이로 추출될 수 있다.The use of multi-byte ranges provides flexibility in downloading " virtual segments ". For example, a segment of a low frame rate (which can be used in trickmode) can be extracted on-the-fly from a stream or a circle segment.

추가로, Representation을 위해 다중 URL을 사용하는 것을 지원하기 위해, 하기의 변형이 3GPP 적응적 HTTP 스트리밍의 스키마에 가해질 수 있다.In addition, to support the use of multiple URLs for Representation, the following variant may be applied to the schema of 3GPP adaptive HTTP streaming.

하기에서, 동일한 자원/콘텐츠를 위한 다중 위치들이 설명된다.In the following, multiple locations for the same resource / content are described.

설명의 각 레벨(톱(top)-레벨, Period 레벨, Representation 레벨)은 설명으로부터 절대 URL들을 구축하기 위한 단지 단일한 베이스 URL을 제공한다.Each level of description (top-level, Period level, Representation level) provides only a single base URL for constructing absolute URLs from the description.

각 설명 레벨에, 다중의 베이스 URL들이 제공될 수 있다. 다중 베이스 URL들은 다중 위치에서의 자원들의 가용성을 시그널한다.At each level of description, multiple base URLs may be provided. Multiple base URLs signal availability of resources at multiple locations.

클라이언트의 실제 위치에 의존하여, 클라이언트는 자원을 추출하는 절차에 있어서의 하나 이상의 베이스 URL을 선택할 수 있다.Depending on the actual location of the client, the client may select one or more base URLs in the procedure for extracting resources.

이러한 변형은 상이한 방식들로 구현될 수 있다. 하나의 방식은 "morebaseURLs"라고 불리는 추가적인 속성 또는 "BaseURLs"라 불리는 요소를 사용하는 것이다.These variations can be implemented in different ways. One approach is to use an additional attribute called "morebaseURLs" or an element called "BaseURLs".

이러한 속성 또는 요소는 다중 (베이스) URL들로 구성된 문자열일 수 있다. 문자열은, 예컨대 "; "(즉, 세미콜론 및 공백문자)와 같은, 몇몇 특별 문자들에 의해 분리될 수 있다.These attributes or elements may be strings consisting of multiple (base) URLs. The string may be separated by some special characters, such as "; " (i.e., semicolon and space characters).

만약, 임의의 세미콜론 또는 공백 문자가 URL 내에서 나타나면, 세미콜론 또는 공백 문자는 RFC 2616의 규칙에 의해 인코드될 수 있다.If any semicolon or whitespace character appears in the URL, semicolons or whitespace characters can be encoded by the rules of RFC 2616.

더 낮은 설명 레벨의 morebaseURL의 속성(또는 BaseURLs 요소)는 더 높은 설명 레벨의 동일한 속성(요소)를 오버라이드한다.A lower description level morebaseURL attribute (or BaseURLs element) overrides the same attribute (element) at a higher description level.

명확성을 위해, morebaseURLs 속성 및 BaseURLs 요소는 상호 배제인 것으로 제한될 수 있다. 즉, 전체 설명 내에서 하나의 타입 만이 존재할 수 있다.For clarity, the morebaseURLs attribute and the BaseURLs element may be restricted to mutual exclusion. That is, there can be only one type in the entire description.

각 인스턴스가 베이스 URL을 제공할 때, 또 다른 방식은, 다중 인스턴스들과 함께 임의의 URI 타입의 MoreBaseURL 요소를 사용하는 것이다. When each instance provides a base URL, another approach is to use the MoreBaseURL element of any URI type with multiple instances.

이러한 상이한 방식들은 단지 다중 베이스 URL들을 제공하기 위한 아이디어의 일 예일 뿐이다. 이러한 아이디어는 많은 상이한 방식들 또는 상이한 언어들로서 구현될 수 있다.These different approaches are merely an example of the idea of providing multiple base URLs. This idea can be implemented in many different ways or in different languages.

하기에서 자윈/콘텐츠 구성요소들을 위한 다중 In the following, multiple location들을locations 설명한다. Explain.

자원/콘텐츠는 하나 이상의 콤포넌트/스트림으로 나뉘어질 수 있다. 하나 이상의 콤포넌트/스트림 각각은 location로부터 전달된다. 이러한 전달은, UriTemplate 요소의 다중 인스턴스들 또는 SegmentInfoType 내의 Url 요소 집합을 허용함으로써 지원될 수 있다. SegmentInfoType 내에서의 변경 "<xs:choice maxOccurs="unbounded">"이 이러한 목적을 위해 사용될 수 있다.The resource / content may be divided into one or more components / streams. Each of the one or more components / streams is delivered from a location. This transfer can be supported by allowing multiple instances of the UriTemplate element or a set of Url elements in the SegmentInfoType. Change within SegmentInfoType "<xs: choice maxOccurs =" unbounded ">" can be used for this purpose.

UrlTemplate 인스턴스 또는 Url 집합 인스턴스의 출현 순서는 그것의 "location/stream"의 중요성을 가리킬 수 있다. 더 중요한 location이 덜 중요한 location 전에 나타날 수 있다. 예컨대, 비디오 Representation은 2 개의 스트림들(공간적 베이스 레이어 및 공간적 향상(enhancement) 레이어)로 구성될 수 있다. 각각은 UrlTemplate에 의해 설명된 location로부터 전달된다. 그 다음, UrlTemplate의 첫 인스턴스가 공간적 베이스 레이어를 위한 location이 된다.The order of appearance of a UrlTemplate instance or a Url set instance can indicate the importance of its "location / stream". More important locations may appear before less important locations. For example, the Video Representation may be composed of two streams (a spatial base layer and a spatial enhancement layer). Each is passed from the location described by UrlTemplate. Next, the first instance of the UrlTemplate becomes the location for the spatial base layer.

더욱이, InitialisationSegmentURL의 다중 인스턴스들이 허용될 수 있다. InitialisationSegmentURL의 n 번째 인스턴스는 (UrlTemplate 요소 또는 Url 요소 집합에 의해) location의 n 번째 인스턴스에 대응한다.Furthermore, multiple instances of InitialisationSegmentURL may be allowed. The nth instance of InitialisationSegmentURL corresponds to the nth instance of location (by UrlTemplate element or Url element set).

만약, InitialisationSegmentURL의 단 하나의 인스턴스만 있으면, 상기 인스턴스는 모든 location들을 위해 사용될 수 있다.If there is only one instance of InitialisationSegmentURL, then the instance can be used for all locations.

하기의 표 52 내지 표 55은 3GPP의 AdaptiveHTTPStreaming의 스키마를 나타낸다.Tables 52 to 55 below show the schema of 3GPP AdaptiveHTTPStreaming.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
<xs:annotation>
<xs:appinfo>Media Presentation Description</xs:appinfo>
<xs:documentation xml:lang="en">
This Schema defines 3GPP Media Presentation Description!
</xs:documentation>
</xs:annotation> <!-- MPD: main element -->
<xs:element name="MPD" type="MPDtype"/>

<!-- MPD Type -->
<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element minOccurs="0" name="ProgramInformation" type="ProgramInformationType"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="Period" type="PeriodType"/>
<xs:element name="PeriodsRef" type="PeriodsRefType"/>
</xs:choice>
<xs:element minOccurs="0" name="BaseUrls" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="MoreBaseUrl" type="xs:anyURI"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute default="OnDemand" name="type" type="PresentationType"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="required"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseUrl" type="xs:anyURI"/>
<xs:attribute name="morebaseUrls" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="PeriodsRefType">
<xs:sequence>
<xs:element name="Location" type="xs:anyURI"/>
</xs:sequence>
<xs:attribute name="startTime" type="xs:duration"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="availableTime" type="xs:duration"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
<xs: annotation>
<xs: appinfo> Media Presentation Description </ xs: appinfo>
<xs: documentation xml: lang = "en">
This Schema defines 3GPP Media Presentation Description!
</ xs: documentation>
</ xs: annotation><! - MPD: main element ->
<xs: element name = "MPD" type = "MPDtype"/>

<! - MPD Type ->
<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element minOccurs = "0" name = "ProgramInformation" type = "ProgramInformationType"/>
<xs: choice maxOccurs = "unbounded">
<xs: element name = "Period" type = "PeriodType"/>
<xs: element name = "PeriodsRef" type = "PeriodsRefType"/>
</ xs: choice>
<xs: element minOccurs = "0" name = "BaseUrls" type = "xs: string"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "MoreBaseUrl" type = "xs: anyURI"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute default = "OnDemand" name = "type" type = "PresentationType"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "required"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseUrl" type = "xs: anyURI"/>
<xs: attribute name = "morebaseUrls" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "PeriodsRefType">
<xs: sequence>
<xs: element name = "Location" type = "xs: anyURI"/>
</ xs: sequence>
<xs: attribute name = "startTime" type = "xs: duration"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "availableTime" type = "xs: duration"/>
</ xs: complexType>

<!-- Type of presentation - live or on-demand -->
<xs:simpleType name="PresentationType">
<xs:restriction base="xs:string">
<xs:enumeration value="OnDemand"/>
<xs:enumeration value="Live"/>
</xs:restriction>
</xs:simpleType>
<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element minOccurs="0" name="SegmentInfoDefault" type="SegmentInfoDefaultType"/>
<xs:element maxOccurs="unbounded" name="Representation" type="RepresentationType"/>
<xs:element minOccurs="0" name="PreviousPeriodsRef" type="xs:PeriodsRef"/>
<xs:element minOccurs="0" name="NextPeriodsRef" type="xs:PeriodsRef"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="start" type="xs:duration"/>
<xs:attribute default="false" name="segmentAlignmentFlag" type="xs:boolean"/>
<xs:attribute default="false" name="bitStreamSwitchingFlag" type="xs:boolean"/>
<xs:attribute default="false" name="lastPeriodFlag" type="xs:boolean"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Program information for a presentation -->
<xs:complexType name="ProgramInformationType">
<xs:sequence>
<xs:element minOccurs="0" name="Title" type="xs:string"/>
<xs:element minOccurs="0" name="Source" type="xs:string"/>
<xs:element minOccurs="0" name="Copyright" type="xs:string"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="moreInformationURL" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<! - Type of presentation - live or on-demand ->
<xs: simpleType name = "PresentationType">
<xs: restriction base = "xs: string">
<xs: enumeration value = "OnDemand"/>
<xs: enumeration value = "Live"/>
</ xs: restriction>
</ xs: simpleType>
<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element minOccurs = "0" name = "SegmentInfoDefault" type = "SegmentInfoDefaultType"/>
<xs: element maxOccurs = "unbounded" name = "Representation" type = "RepresentationType"/>
<xs: element minOccurs = "0" name = "PreviousPeriodsRef" type = "xs: PeriodsRef"/>
<xs: element minOccurs = "0" name = "NextPeriodsRef" type = "xs: PeriodsRef"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "start" type = "xs: duration"/>
<xs: attribute default = "false" name = "segmentAlignmentFlag" type = "xs: boolean"/>
<xs: attribute default = "false" name = "bitStreamSwitchingFlag" type = "xs: boolean"/>
<xs: attribute default = "false" name = "lastPeriodFlag" type = "xs: boolean"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Program information for presentation ->
<xs: complexType name = "ProgramInformationType">
<xs: sequence>
<xs: element minOccurs = "0" name = "Title" type = "xs: string"/>
<xs: element minOccurs = "0" name = "Source" type = "xs: string"/>
<xs: element minOccurs = "0" name = "Copyright" type = "xs: string"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "moreInformationURL" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<!-- Default Segment access information -->
<xs:complexType name="SegmentInfoDefaultType">
<xs:sequence>
<xs:element minOccurs="0" name="BaseUrls" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="MoreBaseUrl" type="xs:anyURI"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="morebaseUrls" type="xs:string"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="sourceUrlTemplatePeriod" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!-- A Representation of the presentation content for a specific Period -->
<xs:complexType name="RepresentationType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element minOccurs="0" name="ContentProtection" type="ContentProtectionType"/>
<xs:element minOccurs="0" name="TrickMode" type="TrickModeType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Quality" type="QualityType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="bandwidth" type="xs:unsignedInt" use="required"/>
<xs:attribute default="0" name="group" type="xs:unsignedInt"/>
<xs:attribute name="width" type="xs:unsignedInt"/>
<xs:attribute name="height" type="xs:unsignedInt"/>
<xs:attribute name="lang" type="xs:string"/>
<xs:attribute name="mimeType" type="xs:string" use="required"/>
<xs:attribute default="false" name="startWithRAP" type="xs:boolean"/>
<xs:attribute name="qualityRanking" type="xs:unsignedInt"/>
<xs:attribute name="requestPara" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="QualityType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:QualityNameType"/>
<xs:attribute name="value" type="xs:float"/>
</xs:complexType>
<! - Default Segment access information ->
<xs: complexType name = "SegmentInfoDefaultType">
<xs: sequence>
<xs: element minOccurs = "0" name = "BaseUrls" type = "xs: string"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "MoreBaseUrl" type = "xs: anyURI"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "baseURL" type = "xs: anyURI"/>
<xs: attribute name = "morebaseUrls" type = "xs: string"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "sourceUrlTemplatePeriod" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<! - A Representation of the presentation content for a specific Period ->
<xs: complexType name = "RepresentationType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element minOccurs = "0" name = "ContentProtection" type = "ContentProtectionType"/>
<xs: element minOccurs = "0" name = "TrickMode" type = "TrickModeType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "Quality" type = "QualityType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "bandwidth" type = "xs: unsignedInt" use = "required"/>
<xs: attribute default = "0" name = "group" type = "xs: unsignedInt"/>
<xs: attribute name = "width" type = "xs: unsignedInt"/>
<xs: attribute name = "height" type = "xs: unsignedInt"/>
<xs: attribute name = "lang" type = "xs: string"/>
<xs: attribute name = "mimeType" type = "xs: string" use = "required"/>
<xs: attribute default = "false" name = "startWithRAP" type = "xs: boolean"/>
<xs: attribute name = "qualityRanking" type = "xs: unsignedInt"/>
<xs: attribute name = "requestPara" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "QualityType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "name" type = "xs: QualityNameType"/>
<xs: attribute name = "value" type = "xs: float"/>
</ xs: complexType>

<xs:simpleType name="QualityNameType">
<xs:restriction base="xs:string">
<xs:enumeration value="PSNR"/>
<xs:enumeration value="MOS"/>
<xs:enumeration value="ODG"/>
<xs:enumeration value="DI"/>
</xs:restriction>
</xs:simpleType>
<!-- Segment access information -->
<xs:complexType name="SegmentInfoType">
<xs:sequence>
<xs:element minOccurs="0" name="BaseUrls" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="MoreBaseUrl" type="xs:anyURI"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="InitialisationSegmentURL" type="UrlType"/>
<xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" name="UrlTemplate" type="UrlTemplateType"/>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Url" type="UrlType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="morebaseUrls" type="xs:string"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="randAccess" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- A Segment URL -->
<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" use="optional"/>
<xs:attribute name="range" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs: simpleType name = "QualityNameType">
<xs: restriction base = "xs: string">
<xs: enumeration value = "PSNR"/>
<xs: enumeration value = "MOS"/>
<xs: enumeration value = "ODG"/>
<xs: enumeration value = "DI"/>
</ xs: restriction>
</ xs: simpleType>
<! - Segment access information ->
<xs: complexType name = "SegmentInfoType">
<xs: sequence>
<xs: element minOccurs = "0" name = "BaseUrls" type = "xs: string"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "MoreBaseUrl" type = "xs: anyURI"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "InitialisationSegmentURL" type = "UrlType"/>
<xs: choice maxOccurs = "unbounded">
<xs: element minOccurs = "0" name = "UrlTemplate" type = "UrlTemplateType"/>
<xs: sequence>
<xs: element maxOccurs = "unbounded" name = "Url" type = "UrlType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: choice>
</ xs: sequence>
<xs: attribute name = "baseURL" type = "xs: anyURI"/>
<xs: attribute name = "morebaseUrls" type = "xs: string"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "randAccess" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - A Segment URL ->
<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" use = "optional"/>
<xs: attribute name = "range" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<!-- A URL template -->
<xs:complexType name="UrlTemplateType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="sourceURL" type="xs:anyURI"/>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute default="1" name="startIndex" type="xs:unsignedInt"/>
<xs:attribute name="endIndex" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!-- Gives information about the content protection -->
<xs:complexType name="ContentProtectionType">
<xs:sequence>
<xs:element minOccurs="0" name="SchemeInformation" type="xs:string"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="schemeIdUri" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Gives information about trick mode -->
<xs:complexType name="TrickModeType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="alternatePlayoutRate" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

</xs:schema>
<! - A URL template ->
<xs: complexType name = "UrlTemplateType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "sourceURL" type = "xs: anyURI"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute default = "1" name = "startIndex" type = "xs: unsignedInt"/>
<xs: attribute name = "endIndex" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<! - Gives information about the content protection ->
<xs: complexType name = "ContentProtectionType">
<xs: sequence>
<xs: element minOccurs = "0" name = "SchemeInformation" type = "xs: string"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "schemeIdUri" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Gives information about trick mode ->
<xs: complexType name = "TrickModeType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "alternatePlayoutRate" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

</ xs: schema>

하기에서 In PeriodsRefPeriodsRef 요소의 몇몇 다른 옵션들이 설명된다. Several other options of the element are described.

XInclude는 XML 문서들을 병합하기 위한 포함(inclusion) 매커니즘을 제공하는 W3C 기술(technology)이다.XInclude is a W3C technology that provides an inclusion mechanism for merging XML documents.

상기의 PeriodsRef 및 XInclude는 자원/설명을 참조하기 위해 임의의 URI 타입(Location 요소 및 href 속성과 함께)을 사용한다는 점에서 유사하다. 그러나 이러한 두 접근방법들 간에는 주요한 차이가 있다.The above PeriodsRef and XInclude are similar in that they use any URI type (with the Location element and href attribute) to refer to the resource / description. However, there are major differences between these two approaches.

XInclude는 XML 문서들을 병합하기 위해 사용될 수 있다. : 이는 병합된 문서가 임의의 그 이상의 처리 이전에 획득되어야 한다는 것을 의미할 수 있다. 반면, PeriodsRef는 과거 또는 미래의 주기들을 참조하기 위해 사용된다. 과거 또는 미래의 주기들은 항상 병합될 필요가 있는 것은 아니다. PeriodsRef의 의도는 단지 사용자가 원할 때 적절한 주기 정보를 추출할 수 있도록 허용하는 것일 수 있다.XInclude can be used to merge XML documents. : This may mean that the merged document must be obtained before any further processing. The PeriodsRef, on the other hand, is used to refer to past or future periods. Past or future cycles do not always have to be merged. The intent of the PeriodsRef may simply be to allow the user to extract appropriate period information when desired.

특정한(specific) 속성들/요소들에 대해서, PeriodsRef의 startTime 및 availableTime는 주기 정보 추출(retrieval)에 대해 고유할 수 있다. XInclude의 속성들/요소들 중, "fallback" 및 "xpointer"는 PeriodsRef의 기능성(functionality)을 향상시키기 위해 사용될 수가 있다. 반면, "parse", "encoding", "accept", "accept-language"는 PeriodsRef에 대해 불필요할 수 있다.For specific properties / elements, the startTime and availableTime of the PeriodsRef may be unique for periodic information retrieval. Of the XInclude attributes / elements, "fallback" and "xpointer" can be used to enhance the functionality of the PeriodsRef. On the other hand, "parse", "encoding", "accept" and "accept-language" may be unnecessary for PeriodsRef.

상기의 설명에 기반하여, Period들을 참조함에 있어서 2 개의 추가적인 선택사항들이 제안될 수 있다. : 1) 향상된(enhanced) PeroidsRef 및 2) XInclude-확장(extending) PeriodsRef.Based on the above description, two additional options may be proposed in referring to Periods. : 1) enhanced PeroidsRef and 2) XInclude-extending PeriodsRef.

향상된 PeroidsRef : 이 선택 사항에서, 현존하는(existing) PeriodsRef는 XInclude의 fallback 요소 및 xpointer 속성에 의해 향상될 수 있다. 이 선택사항의 하나의 이점(advantage)은 신택스 및 처리에 있어서의 단순성(simplicity)이다. 변형된 PeriodsRef의 신택스는 하기의 표 57에서 제공된다.Improved PeroidsRef: With this option, existing PeriodsRefs can be enhanced by the XInclude fallback element and the xpointer attribute. One advantage of this option is the simplicity in syntax and processing. The syntax of the modified PeriodsRef is provided in Table 57 below.

XInclude-확장 PeriodsRef : 이 선택사항에서 PeriodRef는 XInclude를 startTime 및 availableTime 속성에 관하여 단순히 확장함으로써 구축될 수 있다. 이 선택사항의 이점은 표준적인(standard) XInclude를 사용한다는 것이다. 항상 초기에 문서들을 병합하는 것을 피하기 위해, "클라이언트는 병합이 이루어져야 할지 아니면 그렇지 않은지 여부에 대해 결정하도록 허락된다"는 것이 PeriodsRef의 시맨틱스에 있어서 의무적이다. 이러한 PeriodsRef의 신택스는 하기의 표 58에서 제공된다.XInclude - Extended PeriodsRef: In this option, the PeriodRef can be constructed by simply extending XInclude with respect to the startTime and availableTime properties. The advantage of this option is that it uses the standard XInclude. In order to avoid merging documents at all times, it is mandatory for the semantics of the PeriodsRef that "the client is allowed to decide whether merging should or should not be done". The syntax of this PeriodsRef is provided in Table 58 below.

이러한 신택스들에서, ids 속성이 현재의 미디어 프리젠테이션(media presentation) 내에서 참조되는 Period들의 id들을 가리키기 위해 부가될 수 있다. 또한, XInclude의 href 속성과 일관성을 갖기 위해, Location 요소는 선택적인 location 속성으로 변경될 수 있다.In these syntaxes, the ids attribute may be added to indicate the id of the Periods referenced in the current media presentation. Also, to be consistent with the href attribute of XInclude, the Location element can be changed to an optional location attribute.

<xs:complexType name="PeriodsRefType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded" name="fallback" type="fallbackType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="ids" type="xs:string"/>
<xs:attribute name="location" type="xs:anyURI"/>
<xs:attribute name="xpointer" type="xs:string"/>
<xs:attribute name="startTime" type="xs:duration"/>
<xs:attribute name="availableTime" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="fallbackType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="PeriodsRef" type="PeriodsRefType"/>
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
<xs: complexType name = "PeriodsRefType">
<xs: choice minOccurs = "0" maxOccurs = "unbounded">
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "fallback" type = "fallbackType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: choice>
<xs: attribute name = "ids" type = "xs: string"/>
<xs: attribute name = "location" type = "xs: anyURI"/>
<xs: attribute name = "xpointer" type = "xs: string"/>
<xs: attribute name = "startTime" type = "xs: duration"/>
<xs: attribute name = "availableTime" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "fallbackType">
<xs: choice minOccurs = "0" maxOccurs = "unbounded">
<xs: element name = "PeriodsRef" type = "PeriodsRefType"/>
<xs: any namespace = "## other" processContents = "lax"/>
</ xs: choice>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs:schema
...
xmlns:xi="http://www.w3.org/2001/XInclude"
...
<xs:complexType name="PeriodsRefType">
<xs:complexContent>
<xs:extension base="xi:includeType">
<xs:attribute name="ids" type="xs:string"/>
<xs:attribute name="startTime" type="xs:duration"/>
<xs:attribute name="availableTime" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs: schema
...
xmlns: xi = "http://www.w3.org/2001/XInclude"
...
<xs: complexType name = "PeriodsRefType">
<xs: complexContent>
<xs: extension base = "xi: includeType">
<xs: attribute name = "ids" type = "xs: string"/>
<xs: attribute name = "startTime" type = "xs: duration"/>
<xs: attribute name = "availableTime" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>

상기의 요소들/속성들의 시맨틱은 하기의 표 59와 같이 제공될 수 있다.The semantics of the above elements / attributes can be provided as shown in Table 59 below.

요소 또는 속성 명칭 Element or attribute name 타입
(속성 또는 요소)
type
(Attribute or element)
발생횟수Number of occurrences 선택성
(optionality)
Selectivity
(optionality)
설명Explanation
MPD MPD EE 1One MM 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 전달하는 루트 요소이다.Is a root element for delivering Media Presentation Description (MPD) for media presentation. ............    ............ Period   Period EE 1...N1 ... N OO Period의 정보를 제공한다.Provides information on the period. PeriodsRef   PeriodsRef EE 1...N1 ... N OO Period 요소의 하나 이상의 인스턴스를 포함하는 설명에 대한 참조를 제공한다. Period 요소의 하나 이상의 인스턴스는 연속적인(consecution) Period(들)의 일련(sequence)를 나타낸다. Period의 정보는 Period 요소의 인스턴스로서 포함될 수 있으며, 또는 PeriodsRef 요소에 의해 참조될 수 있다.Provides a reference to a description containing one or more instances of the Period element. One or more instances of the Period element represent a sequence of consecutive Period (s). The information in the Period can be included as an instance of the Period element, or can be referenced by the PeriodsRef element. ids     ids AA O.O. 참조되는 Period(들)의 id(들)을 제공한다. 다중의 연속적인 Period들이 참조될 때, id는 세미콜론으로 분리된 이 문자열에 의해 전달된다(conveyed).Provides the id (s) of the referenced Period (s). When multiple consecutive Periods are referenced, id is conveyed by this string, separated by a semicolon. locatoin    locatoin AA O.O. Period(들)의 설명에 대한 참조를 제공한다.Provides a reference to the description of the Period (s). xpointer     xpointer AA O.O. 참조되는 설명의 부분을 식별하기 위한 XPointer를 제공한다. 이 속성이 부재하면, location 속성이 존재한다.Provides an XPointer to identify the portion of the referenced description. If this attribute is absent, the location attribute is present. startTime     startTime AA 0...10 ... 1 O.O. 콘텐츠의 시작 시간에 상대적으로, Period들의 참조된 일련의 시작 시각을 가리킨다. startTime 요소는 클라이언트가 이 참조된 정보가 추출되어야 할지 그렇지 않은지 여부를 결정하는데 도움을 준다.Relative to the start time of the content, the start time of the referenced series of Periods. The startTime element helps the client determine whether this referenced information should be extracted or not. availableTime     availableTime AA 0...10 ... 1 O.O. 참조된 Period(들)의 설명이 가용한 시간을 가리킨다. 상기 시간은 콘텐츠의 시작 시각으로부터 상대적인 시간이다. 만약, 이 속성이 부재하면, 설명은 이미 가용하다.The description of the referenced Period (s) indicates the available time. The time is a time relative to the start time of the content. If this attribute is not present, the description is already available.

하기에서, Period Timeline을 설명한다.In the following, the Period Timeline will be described.

각 주기는 주기의 시작 시각을 가리키는 start 속성을 가질 수 있다. 그러나, 이러한 접근방법은 주기들의 타임라인을 변경(modify)하기에 유동성있지 않을 수 있다.Each cycle may have a start attribute indicating the start time of the cycle. However, this approach may not be fluid enough to modify the timeline of the cycles.

예컨대, VOD를 위한 MPD 내에 광고 주기를 삽입하기 위해, 삽입된 주기 이후의 모든 주기들의 시작 시각들이 변경되어야 한다. 더욱이, 동일한 광고 주기가 반복적으로(예컨대, 매 1 시간 마다) 재생된다면, 이 주기는 계속하여 삽입된다. 동일한 방식으로, 하나 이상의 주기가 MPD로부터 제거될 때, 시공간상 제거된 주기 이후의 남은 주기들의 시작 시각이 변경된다. For example, to insert an advertisement period in the MPD for VOD, the start times of all periods after the inserted period must be changed. Moreover, if the same ad cycle is repeated (e.g., every hour), this cycle is continuously inserted. In the same way, when one or more periods are removed from the MPD, the start time of the remaining periods after the spatiotemporally removed period is changed.

본 실시예에서, 주기 관리에 있어서의 유동성을 위해, 하기와 같은 변형들이 제안될 수 있다.In this embodiment, for the flowability in period management, the following modifications may be proposed.

1) Period에 새 속성 "duration" 추가1) Add a new attribute "duration" to Period

2) Period의 현 start 속성을 선택적인 것으로 변경2) Change the current start attribute of the period to optional

3) MPD 타입에 새로운 PeriodTimeline 요소 추가3) Adding a new PeriodTimeline element to the MPD type

PeriodTimeline 요소는 타임라인에 따른 주기들의 프리젠테이션에 대한 정보를 제공할 수 있다. PeriodTimeline 요소의 시맨틱스 및 신택스가 하기의 표 60 내지 표 62에서 제공된다.The PeriodTimeline element may provide information about the presentation of periods along the timeline. The semantics and syntax of the PeriodTimeline element are provided in Tables 60-62 below.

PeriodTimeline을 사용함에 의해, Period의 설명은 프리젠테이션 시간에 독립적일 수 있다.. 따라서, Period는 (전적 또는 부분적으로) 동일한 미디어 프리젠테이션 또는 다른 미디어 프리젠테이션 내에서 재사용될 수 있다. 프리젼테이션 시간을 변형할 때, 단지 Period Timeline이 변경될 필요가 있다.By using the PeriodTimeline, the description of the Period can be independent of the presentation time. Thus, the Period can be reused (entirely or partially) within the same media presentation or other media presentation. When modifying the presentation time, only the Period Timeline needs to be changed.

추가로, PartialPlay 요소는 Period의 하나 이상의 부분을 (다시)재생((re)play)하는 것을 허용할 수 있다. 예컨대, 광고 Period가 상연(present)된 후, (beginning 및 ending에 의해 나타내어진(denoted)) 그 Period의 일 부분이 전체 세션(session) 동안 때때로 반복될 수 있다.In addition, the PartialPlay element may allow (re) play back one or more parts of the Period. For example, after the advertisement Period is presented, some portion of the Period (denoted by beginning and ending) may be repeated occasionally during the entire session.

PeriodTimeline 요소는 Period들의 명시적인(explicit) 타임라인을 가할 수 있다(impose). PeriodTimeline 요소 없이, Period들의 묵시적인(implicit) 타임라인은 Period들의 순서가 정해진(ordered) 연쇄(sequence)로부터 추론(infer)될 수 있다. 묵시적인 타임라인의 경우에 있어서, Period의 다시재생을 지원하기 위해, PartialPlay 요소는 Period 요소의 자식 요소로서도 제공될 수 있다.The PeriodTimeline element can impose an explicit timeline of Periods. Without the PeriodTimeline element, the implicit timeline of Periods can be inferred from an ordered sequence of Periods. In the case of implicit timelines, the PartialPlay element can also be provided as a child element of the Period element to support the replay of the Period.

요소 또는 속성 명칭 Element or attribute name 타입
(속성 또는 요소)
type
(Attribute or element)
발생횟수Number of occurrences 선택성
(optionality)
Selectivity
(optionality)
설명Explanation
MPD MPD EE 1One MM 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............    ............ PeriodTimeline  PeriodTimeline EE 0...10 ... 1 OO 미디어 프리젠테이션의 Period들의 프리젠테이션 타임라인을 제공한다.Provides a presentation timeline of the periods of the media presentation. PeriodsTime    PeriodsTime EE 1...N1 ... N OO Period를 상연하기 위한 시간 정보를 제공한다.Provides time information for staging the Period. id      id AA O.O. 미디어 프리젠테이션의 Period의 id를 가리킨다. 이 값은 Period의 id 속성이 있을 경우, Period의 id 속성의 값과 동일하다. 만약, id 속성들이 없다면, 이 값은 MPD 내의 Period의 등장(appearance) 순서와 동일하다.Indicates the id of the period of the media presentation. This value is the same as the value of the Period's id attribute, if any. If there are no id attributes, this value is the same as the Appearance order of Period in the MPD. start      start AA O.O. 미디어 프리젠테이션의 availabilityStart 시각 속성의 값에 상대적인 Period의 정확한 시작 시각을 제공한다.
이 속성은 대응하는 Period(즉, Period 요소의 인스턴스)의 start 속성을 오버라이드(override)한다. 이 속은 타임라인의 제1 Period를 위해 존재해야한다. 다른 Period들에 있어서, 이전 Period들의 상연 지속시간에 대한 정보가 가용하다면, 이 값은 추론될 수 있으며, 속성은 부재할 수 있다.
Provides an accurate start time of the Period relative to the value of the availabilityStart time attribute of the media presentation.
This attribute overrides the start attribute of the corresponding Period (ie, an instance of the Period element). This genus must exist for the first period of the timeline. In other Periods, if the information about the duration of the previous Periods is available, this value can be inferred and the attribute may be absent.
PartialPlay      PartialPlay EE 0...N0 ... N O.O. Period의 (임시) 일부를 상연하기 위한 정보를 제공한다.Provide information to stage a (temporary) part of the Period. beginning        beginning AA O.O. Period의 일부의 시작 점을 가리킨다. 이 시각 값은 Period의 시작에 상대적이다.Points to the start of a part of the Period. This time value is relative to the beginning of the Period. ending        ending AA O.O. Period의 일부의 종료 점을 가리킨다. 이 시각 값은 Period의 시작에 상대적이다.Indicates the end of a part of the Period. This time value is relative to the beginning of the Period. Period    Period EE 1...N1 ... N MM Period의 정보를 제공한다.Provides information on the period. start      start AA OO id      id AA OO Period의 ID를 가리킨다. 이 Period가 다른 Period의 (부분적인) 반복일 때, 이 속성의 값은 참조되는 Period의 ID 또는 등장 순서이다.Indicates the ID of the Period. When this Period is a (partial) repetition of another Period, the value of this attribute is the ID or order of appearance of the referenced Period. duration      duration AA O.O. Period의 지속시간을 가리킨다. start 속성이 부재 일 때, 이 속성은 있다. 또한, 미디어 프리젠테이션의 마지막 Period에 대해, availabilityEndTime 및 SegmentTimeline이 가용하지 않다면, 이 Period의 duration 속성은 있다.Indicates the duration of the Period. This attribute is present when the start attribute is absent. Also, for the last Period of a media presentation, if availabilityEndTime and SegmentTimeline are not available, then the duration attribute of this Period is. PartialPlay      PartialPlay EE 0...N0 ... N O.O. Period의 (임시) 일부를 상연하기 위한 정보를 제공한다.Provide information to stage a (temporary) part of the Period. beginning        beginning AA O.O. Period의 일부의 시작 점을 가리킨다. 이 시각 값은 Period의 시작에 상대적이다.Points to the start of a part of the Period. This time value is relative to the beginning of the Period. ending        ending AA O.O. Period의 일부의 종료 점을 가리킨다. 이 시각 값은 Period의 시작에 상대적이다.Indicates the end of a part of the Period. This time value is relative to the beginning of the Period. Representation      Representation EE 0...N0 ... N Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
...
<!-- MPD Type -->
<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element minOccurs="0" name="ProgramInformation" type="ProgramInformationType"/>
<xs:element minOccurs="0" name="PeriodTimeline" type="PeriodTimelineType"/>
<xs:element maxOccurs="unbounded" name="Period" type="PeriodType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute default="OnDemand" name="type" type="PresentationType"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="required"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseUrl" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Type of presentation - live or on-demand -->
<xs:simpleType name="PresentationType">
<xs:restriction base="xs:string">
<xs:enumeration value="OnDemand"/>
<xs:enumeration value="Live"/>
</xs:restriction>
</xs:simpleType>

<!-- Period Timeline -->
<xs:complexType name="PeriodTimelineType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="PeriodTime" type="PeriodTimeType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
...
<! - MPD Type ->
<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element minOccurs = "0" name = "ProgramInformation" type = "ProgramInformationType"/>
<xs: element minOccurs = "0" name = "PeriodTimeline" type = "PeriodTimelineType"/>
<xs: element maxOccurs = "unbounded" name = "Period" type = "PeriodType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute default = "OnDemand" name = "type" type = "PresentationType"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "required"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseUrl" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Type of presentation - live or on-demand ->
<xs: simpleType name = "PresentationType">
<xs: restriction base = "xs: string">
<xs: enumeration value = "OnDemand"/>
<xs: enumeration value = "Live"/>
</ xs: restriction>
</ xs: simpleType>

<! - Period Timeline ->
<xs: complexType name = "PeriodTimelineType">
<xs: sequence>
<xs: element maxOccurs = "unbounded" name = "PeriodTime" type = "PeriodTimeType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs:complexType name="PeriodTimeType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PartialPlay" type="PartialPlayType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="start" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="PartialPlayType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="beginning" type="xs:duration"/>
<xs:attribute name="ending" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element minOccurs="0" name="SegmentInfoDefault" type="SegmentInfoDefaultType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PartialPlay" type="PartialPlayType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Representation" type="RepresentationType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="start" type="xs:duration"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute default="false" name="segmentAlignmentFlag" type="xs:boolean"/>
<xs:attribute default="false" name="bitStreamSwitchingFlag" type="xs:boolean"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
...
...
</xs:schema>
<xs: complexType name = "PeriodTimeType">
<xs: sequence>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "PartialPlay" type = "PartialPlayType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string" use = "required"/>
<xs: attribute name = "start" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "PartialPlayType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "beginning" type = "xs: duration"/>
<xs: attribute name = "ending" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element minOccurs = "0" name = "SegmentInfoDefault" type = "SegmentInfoDefaultType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "PartialPlay" type = "PartialPlayType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "Representation" type = "RepresentationType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "start" type = "xs: duration"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute default = "false" name = "segmentAlignmentFlag" type = "xs: boolean"/>
<xs: attribute default = "false" name = "bitStreamSwitchingFlag" type = "xs: boolean"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
...
...
</ xs: schema>

반복되는 Period가 어떤 Representation 설명을 다시 포함하지 않는 것과 같이, Representation 인스턴스들의 최소 개수는 0으로 변경될 수 있다.The minimum number of Representation instances can be changed to 0, just as a repeated Period does not include any Representation descriptions again.

id 속성을 직접적으로 사용하는 것 대신, 반복되어야 하는 이전의 Period의 id 값을 가리키기 위해 특별한(special) 속성을 사용할 수 있다.Instead of using the id attribute directly, you can use a special attribute to indicate the id value of the previous Period to be repeated.

하기에서 보충 정보(Supplementary Info)를 설명한다.The Supplementary Info will be described below.

전문적인(professional) 서비스 공급(provisioning)을 위해, 제공자는 클라이언트들이, 예컨대 제공자의 로고(logo) 또는 광고 배너들(banners)과 같은, 보충적인 정보를 (주 콘텐츠와 함께) 화면에 나타나게 할 필요가 있다. 이 정보는 Period의 타임라인에 독립적일 수 있다.For professional service provisioning, the provider needs to allow clients to display supplemental information (along with the main content) on the screen, such as, for example, the sponsor's logo or advertising banners . This information can be independent of the Timeline of the Period.

각 보충적인 아이템은 콘텐츠의 가장 높은 해상도를 위해 제공될 수 있다. 만약, 콘텐츠가 몇몇 작은 단말들을 위해 다운스케일(downscale)된다면, 보충적인 아이템 및 그것의 위치 파라미터들(xOffset, yOffset)도 비례하여 다운-스케일될 수 있다.Each supplemental item can be provided for the highest resolution of the content. If the content is downscaled for some small terminals, the supplementary item and its location parameters (xOffset, yOffset) may also be proportionally down-scaled.

SupplementaryInfo의 시맨틱스 및 신택스는 하기의 표 63 내지 표 65에 의해 제공된다.The semantics and syntax of SupplementaryInfo are provided by Tables 63 to 65 below.

요소 또는 속성 명칭 Element or attribute name 타입
(속성 또는 요소)
type
(Attribute or element)
발생횟수Number of occurrences 선택성
(optionality)
Selectivity
(optionality)
설명Explanation
MPD MPD EE 1One MM 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............    ............ SupplementaryInfo  SupplementaryInfo EE 0...10 ... 1 OO 미디어 프리젠테이션을 위한 보충적인 정보 및 그것의 프리젠테이션을 제공한다.Provides supplementary information for media presentation and its presentation. SupplementaryItem    SupplementaryItem EE 1...N1 ... N MM 미디어 프리젠테이션을 위한 보충적인 아이템 및 그것의 프리젠테이션을 제공한다.It provides supplementary items for media presentation and its presentation. itemURL      itemURL AA O.O. 보충적인 아이템의 URL을 제공한다.Provide the URL of the supplementary item. mime      mime AA O.O. 아이템의 MIME 타입을 제공한다.Provides the MIME type of the item. Presentation      Presentation EE 0...N0 ... N O.O. 아이템을 상연하기 위한 정보를 제공한다. On 및 Off 요소들 양자가 부재이면, 아이템은 언제나 있다. On 및 Off 요소들은 양자택일으로(alternatively) 나타난다(aapear).Provide information to stage the item. If both the On and Off elements are absent, the item is always there. The On and Off elements alternatively appear (aapear). On        On EE 0...N0 ... N O.O. 보충적인 아이템이 상연될 때의 시간 지속(time duration)을 가리킨다.Indicates the time duration when a supplemental item is staged. Off        Off EE 0...N0 ... N O.O. 보충적인 아이템이 상연되지 않을 때의 시간 지속(time duration)을 가리킨다.Indicates the time duration when a supplemental item is not staged. xOffset        xOffset AA OO 클라이언트의 화면(screen) 상에서의 아이템의 수평 위치를 가리킨다. 수평 위치는 픽셀 단위로 계수되며(counted in pixels), 상단-좌측 코너(corner)에 상대적이다.Indicates the horizontal position of the item on the client's screen. The horizontal position is counted in pixels and is relative to the top-left corner. yOffset        yOffset AA OO 클라이언트의 화면(screen) 상에서의 아이템의 수직 위치를 가리킨다. 수직 위치는 픽셀 단위로 계수되며, 상단-좌측 코너에 상대적이다.Indicates the vertical position of the item on the client's screen. The vertical position is counted in pixels and is relative to the top-left corner. transparency        transparency AA OO 보충적인 아이템의 투명도(transparency degree) (%)를 가리킨다.Indicates the transparency degree (%) of the supplemental item.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
...
<!-- MPD Type -->
<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element minOccurs="0" name="ProgramInformation" type="ProgramInformationType"/>
<xs:element minOccurs="0" name="SupplementaryInfo" type="SupplementaryInfoType"/>
<xs:element maxOccurs="unbounded" name="Period" type="PeriodType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute default="OnDemand" name="type" type="PresentationType"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="required"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseUrl" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Type of presentation - live or on-demand -->
<xs:simpleType name="PresentationType">
<xs:restriction base="xs:string">
<xs:enumeration value="OnDemand"/>
<xs:enumeration value="Live"/>
</xs:restriction>
</xs:simpleType>

<!-- Supplementary Info -->
<xs:complexType name="SupplementaryInfoType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="SupplementaryItem" type="SupplementaryItemType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
...
<! - MPD Type ->
<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element minOccurs = "0" name = "ProgramInformation" type = "ProgramInformationType"/>
<xs: element minOccurs = "0" name = "SupplementaryInfo" type = "SupplementaryInfoType"/>
<xs: element maxOccurs = "unbounded" name = "Period" type = "PeriodType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute default = "OnDemand" name = "type" type = "PresentationType"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "required"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseUrl" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Type of presentation - live or on-demand ->
<xs: simpleType name = "PresentationType">
<xs: restriction base = "xs: string">
<xs: enumeration value = "OnDemand"/>
<xs: enumeration value = "Live"/>
</ xs: restriction>
</ xs: simpleType>

<! - Supplementary Info ->
<xs: complexType name = "SupplementaryInfoType">
<xs: sequence>
<xs: element maxOccurs = "unbounded" name = "SupplementaryItem" type = "SupplementaryItemType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs:complexType name="SupplementaryItemType">
<xs:sequence>
<xs:element minOccurs="0" name="Presentation" type="PresentationType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="itemURL" type="xs:anyURL"/>
<xs:attribute name="mime" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="PresentationType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="On" type="xs:duration"/>
<xs:element name="Off" type="xs:duration"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:sequence>
<xs:attribute name="xOffset" type="xs:unsignedInt"/>
<xs:attribute name="yOffset" type="xs:unsignedInt"/>
<xs:attribute name="transparency" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element minOccurs="0" name="SegmentInfoDefault" type="SegmentInfoDefaultType"/>
<xs:element maxOccurs="unbounded" name="Representation" type="RepresentationType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="start" type="xs:duration"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute default="false" name="segmentAlignmentFlag" type="xs:boolean"/>
<xs:attribute default="false" name="bitStreamSwitchingFlag" type="xs:boolean"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
...
...
</xs:schema>
<xs: complexType name = "SupplementaryItemType">
<xs: sequence>
<xs: element minOccurs = "0" name = "Presentation" type = "PresentationType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "itemURL" type = "xs: anyURL"/>
<xs: attribute name = "mime" type = "xs: string"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "PresentationType">
<xs: sequence>
<xs: choice minOccurs = "0" maxOccurs = "unbounded">
<xs: element name = "On" type = "xs: duration"/>
<xs: element name = "Off" type = "xs: duration"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: choice>
<xs: sequence>
<xs: attribute name = "xOffset" type = "xs: unsignedInt"/>
<xs: attribute name = "yOffset" type = "xs: unsignedInt"/>
<xs: attribute name = "transparency" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element minOccurs = "0" name = "SegmentInfoDefault" type = "SegmentInfoDefaultType"/>
<xs: element maxOccurs = "unbounded" name = "Representation" type = "RepresentationType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "start" type = "xs: duration"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute default = "false" name = "segmentAlignmentFlag" type = "xs: boolean"/>
<xs: attribute default = "false" name = "bitStreamSwitchingFlag" type = "xs: boolean"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
...
...
</ xs: schema>

하기에서 버퍼링 양(buffering amount)의 정의들이 설명된다.The definitions of the buffering amount are described below.

클라이언트의 초기의(initially) 버퍼되는(buffered) 미디어의 최소 양은 시간 단위로 정의될 수 있다. 몇몇 경우에는, 클러이언트는 버퍼된 미디어의 임시(temporal) 지속시간(duration)이 충분한가를 확신하기 어렵다. 초기의 버퍼되는 미디어가 데이터크기(datasize) 유닛으로 명세될 수 있게 하기 위해 다른 선택사항이 제공될 수 있다.The minimum amount of client's initially buffered media can be defined in hours. In some cases, it is difficult for the client to be sure that the temporal duration of the buffered media is sufficient. Other options may be provided to allow the initial buffered media to be specified as a datasize unit.

만약 두 선택사항들(시간 유닛 단위 및 데이터크기 유닛 단위)가 동시에 제공되면, 제공자는 각 선택사항의 우선순위를 명세할 수 있다. 선택사항을 선택하는 것이 클라이언트에게 부여(up to)될 수 있다.If both options (unit of time unit and unit of data size unit) are provided at the same time, the provider can specify the priority of each choice. Choosing an option can be up to the client.

이 아이디어는, 하기의 표 66 및 표 67에서 나타난 것처럼, minBufferSize로 명명되는 다른 선택적인 속성을 MPD에 부가함으로써 구현될 수 있다. 2 개의 속성들(minBufferTime 및 minBufferSize) 중 적어도 하나가 있어야 한다.This idea can be implemented by adding to MPD another optional attribute named minBufferSize, as shown in Tables 66 and 67 below. There must be at least one of two properties (minBufferTime and minBufferSize).

표 66은 minBufferSize의 시맨틱스다.Table 66 shows the semantics of minBufferSize.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation MPD MPD 1One 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............    ............ minBufferTime  minBufferTime 선택적Selective 각 Representation이 Representation의 bandwidth 값 또는 그 이상의 값으로 전달될 경우, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다. Representation의 bandwidth 값은 버퍼된 미디어의 이 양에 상응한다. 이 속성의 값은 시간 지속 단위로 표현된다.Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a bandwidth value of Representation or greater. The bandwidth value of the representation corresponds to this amount of buffered media. The value of this attribute is expressed in units of time duration. minBufferSize  minBufferSize 선택적Selective 각 Representation이, Representation의 bandwidth 값 또는 그 이상의 값으로 전달될 경우, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다. Representation의 bandwidth 값은 버퍼된 미디어의 이 양에 상응한다. 이 속성의 값은 데이터크기 단위(킬로 바이트)로 표현된다.Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a bandwidth value of Representation or greater. The bandwidth value of the representation corresponds to this amount of buffered media. The value of this attribute is expressed in units of data size (kilobytes).

표 67은 minBufferSize의 XML 신택스이다.Table 67 shows the XML syntax for minBufferSize.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">

... ...
<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element name="ProgramInformation" type="ProgramInformationType" minOccurs="0"/>
<xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/>
<xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/>
<!-- NEW: Alternate base URL specifications -->
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="PresentationType" default="OnDemand"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="optional"/>
<xs:attribute name="minBufferSize" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

...

</xs:schema>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">

... ...
<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element name = "ProgramInformation" type = "ProgramInformationType" minOccurs = "0"/>
<xs: element name = "Period" type = "PeriodType" maxOccurs = "unbounded"/>
<xs: element name = "BaseURL" type = "BaseURLType" minOccurs = "0" maxOccurs = "unbounded"/>
<! - NEW: Alternate base URL specifications ->
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "type" type = "PresentationType" default = "OnDemand"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "optional"/>
<xs: attribute name = "minBufferSize" type = "xs: unsignedInt" use = "optional"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseURL" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

...

</ xs: schema>

하기에서 초기에 버퍼된 미디어의 상이한 양들에 대한 대역폭(bandwidth) 정보를 설명한다. The following describes bandwidth information for different amounts of buffered media initially .

각 representation의 대역폭 정보는 초기에 버퍼된 미디어의 주어진 최소 양에 대해 제공될 수 있다. 그러나, 상이한 클라이언트들은 초기에 버퍼된 미디어의 서로 상이한 미리-설정된(pre-set) 양들을 가질 수 있다. 이는, 상이한 클라이언트들에 대해 상이한 대역폭 정보를 필요로 하는 것을 결과로서 낳는다.The bandwidth information of each representation may initially be provided for a given minimum amount of buffered media. However, different clients may initially have different pre-set amounts of buffered media. This results in requiring different bandwidth information for different clients.

하기에서, 각 representation에 대해, 초기에 버퍼된 미디어의 상이한 최소 양들에 대응하는 상이한 대역폭 값들이 설명된다. In the following, for each representation, different bandwidth values corresponding to different minimum quantities of initially buffered media are described.

이러한 해법의 이점은 초기에 버퍼된 미디어의 다중 최소 양들에 대응하는 다중 MPD들이 필요하지 않다는 것이다.The advantage of this solution is that initially multiple MPDs corresponding to multiple minimum quantities of buffered media are not needed.

*이러한 목적을 위해 MPEG DASH의 스키마가 하기와 같이 변경될 수 있다.* For this purpose, the schema of MPEG DASH can be changed as follows.

1) 초기에 버퍼된 미디어의 최소 양들을 위해 더 많은 값들을 MPD에 더한다. 전술된 것과 유사하게, 버퍼링의 양은 시간 단위 또는 데이터크기 단위가 될 수 있다.1) Initially add more values to the MPD for minimum amounts of buffered media. Similar to the above, the amount of buffering may be a unit of time or a unit of data size.

2) 각 representation에 대해, 상기의 초기에 버퍼된 미디어의 최소 양들에 대응하는 대역폭 값들을 제공한다.2) For each representation, provide the bandwidth values corresponding to the smallest quantities of the buffered media initially.

이러한 변경들은 MPDtype 내의 MinBUffer 요소 또는 RepresentationType 내의 BandwidthInfo@repBandwidth 요소 의해 구현될 수 있다.These changes can be implemented by the MinBUffer element in MPDtype or the BandwidthInfo @ repBandwidth element in RepresentationType.

하기의 표 68은 MinBuffer의 시맨틱스를 나타낸다.Table 68 below shows the semantics of MinBuffer.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation MPD MPD 1One 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............    ............ BaseURL  BaseURL 0...N0 ... N MPD 레벨에서, baseURL 속성에 대신하거나, baseURL 속성에 추가하여 사용될 수 있는 URL이다.At the MPD level, this is a URL that can be used instead of or in addition to the baseURL attribute. MinBuffer   MinBuffer 0...N0 ... N 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다.And provides a minimum amount of initially buffered media needed to ensure smooth reproduction. id    id MM MinBuffer 요소의 ID를 제공한다. 이 속성의 값은 0보다 크다.Provides the ID of the MinBuffer element. The value of this attribute is greater than zero. minBufferTime  minBufferTime 선택적Selective 각 Representation이 Representation의 bandwidth 값 또는 그 이상의 값으로 전달될 경우, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다. Representation의 bandwidth 값은 버퍼된 미디어의 이 양에 상응한다. 이 속성의 값은 시간 지속 단위로 표현된다.Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a bandwidth value of Representation or greater. The bandwidth value of the representation corresponds to this amount of buffered media. The value of this attribute is expressed in units of time duration. minBufferSize  minBufferSize 선택적Selective 각 Representation이, Representation의 bandwidth 값 또는 그 이상의 값으로 전달될 경우, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다. Representation의 bandwidth 값은 버퍼된 미디어의 이 양에 상응한다. 이 속성의 값은 데이터크기 단위(킬로 바이트)로 표현된다.
minBufferTime 및 minBufferSize 중 적어도 하나의 속성이 MinBuffer 요소 내에 있다.
Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a bandwidth value of Representation or greater. The bandwidth value of the representation corresponds to this amount of buffered media. The value of this attribute is expressed in units of data size (kilobytes).
At least one of minBufferTime and minBufferSize is in the MinBuffer element.

하기의 표 69는 BandwidthInfo의 시맨틱스를 나타낸다.Table 69 below shows the semantics of BandwidthInfo.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation Representation     Representation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. ............    ............ SegmentInfo      SegmentInfo 1One Segnent 접근 정보를 제공한다.Segnent Provides access information. BandwidthInfo      BandwidthInfo 0...N0 ... N 초기에 버퍼된 미디어의 특정 양에 대응하는 대역폭 정보를 제공한다.Initially providing bandwidth information corresponding to a particular amount of buffered media. id        id MM MPD의 MinBuffer 요소의 ID를 가리킨다. 이 속성의 값이 0이면, 그것은 MPD의 minBufferTime 또는 minBufferSize에 의해 제공되는 초기에 버퍼된 미디어의 최소 양에 대응한다.Indicates the ID of the MinBuffer element of the MPD. If the value of this attribute is 0, it corresponds to the minimum amount of initially buffered media provided by MPD's minBufferTime or minBufferSize. repBandwidth        repBandwidth OO 연관된 MinBuffer 요소 내에서 제공되는 초기에 버퍼된 미디어의 최소 양에 대응하는 representation을 위한 대역폭 값을 제공한다.
상기의 id 속성의 값이 0이면, 이 속성은 부재한다.
And provides a bandwidth value for a representation corresponding to the minimum amount of initially buffered media provided within the associated MinBuffer element.
If the value of the id attribute is zero, then this attribute is absent.

표 70 및 표 71은 Bandwidth Info의 XML 신택스이다.Tables 70 and 71 are XML syntax of Bandwidth Info.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
......

<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element name="ProgramInformation" type="ProgramInformationType" minOccurs="0"/>
<xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/>
<xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="MinBuffer" type="MinBufferType" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="PresentationType" default="OnDemand"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="optional"/>
<xs:attribute name="minBufferSize" type="xs:unsignedInt" use="optional"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseUrl" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="MinBufferType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="minBufferTime" type="xs:duration"/>
<xs:attribute name="minBufferSize" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

...
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
......

<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element name = "ProgramInformation" type = "ProgramInformationType" minOccurs = "0"/>
<xs: element name = "Period" type = "PeriodType" maxOccurs = "unbounded"/>
<xs: element name = "BaseURL" type = "BaseURLType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: element name = "MinBuffer" type = "MinBufferType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "type" type = "PresentationType" default = "OnDemand"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "optional"/>
<xs: attribute name = "minBufferSize" type = "xs: unsignedInt" use = "optional"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseUrl" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "MinBufferType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string" use = "required"/>
<xs: attribute name = "minBufferTime" type = "xs: duration"/>
<xs: attribute name = "minBufferSize" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

...

<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="BandwidthInfo" type="BandwidthInfoType"/>
<xs:element name="TrickMode" type="TrickModeType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Bandwidth Info -->
<xs:complexType name="BandwidthInfoType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="repBandwidth" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

</xs:schema>
<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "BandwidthInfo" type = "BandwidthInfoType"/>
<xs: element name = "TrickMode" type = "TrickModeType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>
<! - Bandwidth Info ->
<xs: complexType name = "BandwidthInfoType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "repBandwidth" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

</ xs: schema>

하기에서 In 세그먼트Segment 대역폭이 설명된다. The bandwidth is described.

bandwidth 속성은 period의 전체 지속시간에 걸쳐 각 representation을 위해 제공될 수 있다. 그러나, 품질 일관성(consistence)을 위해, 인코드된 비디오의 비트레이트는 보통 버스티(busty) 특성들(characteristics)을 갖는다. 한 세그먼트의 비트레이트는 다른 세그먼트의 비트레이트 보다 몇 배 높을 수 있다. 클라이언트가 네트워크 변동들(variations)에 더 효율적으로 적응(adapt)할 수 있게 하기 위해, 각 세그 먼트의 대역폭 정보가 추가적으로 제공될 수 있다.The bandwidth attribute can be provided for each representation over the entire duration of the period. However, for quality consistency, the bit rate of the encoded video usually has busty characteristics. The bit rate of one segment may be several times higher than the bit rate of the other segment. In order to allow the clients to more efficiently adapt to network variations, bandwidth information of each segment may be additionally provided.

표 72는 SegmentBandwidth의 시맨틱스를 설명한다.Table 72 describes the semantics of SegmentBandwidth.

요소 또는 속성 명칭 Element or attribute name 타입
(속성 또는 요소)
type
(Attribute or element)
발생횟수Number of occurrences 선택성
(optionality)
Selectivity
(optionality)
설명Explanation
MPD MPD EE 1One MM 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............    ............ Representation  Representation SegmentInfo    SegmentInfo SegmentBandwidth      SegmentBandwidth EE 0...10 ... 1 O.O. representation의 세그먼트들에 대한 대역폭 정보를 제공한다.Provides bandwidth information for segments of representation. Range        Range EE 1...N1 ... N M.M. representation의 연속적인 세그먼트들의 범위에 대한 대역폭 정보를 제공한다. 제1 범위는 representation의 제1 세그먼트로부터 시작한다.Provides bandwidth information for a range of consecutive segments of representation. The first range starts from the first segment of the representation. offset          offset representation 대역폭 밋 세그먼트 대역폭 간의 차이를 가리킨다. 음(비-음) 값은 세그먼트 대역폭이 representation 대역폭 보다 더 작음(큼)을 의미한다. 세그먼트의 대역폭은 오프셋 값 및 representation 대역폭의 합이다.representation indicates the difference between the bandwidth and the mid-segment bandwidth. A negative (non-negative) value means that the segment bandwidth is smaller (larger) than the representation bandwidth. The bandwidth of the segment is the sum of the offset value and the representation bandwidth. repeat          repeat 동일한 대역폭을 갖는 연속적인 세그먼트들의 개수를 가리킨다.Indicates the number of consecutive segments having the same bandwidth.

표 73 및 표 74는 SegmentBandwidth의 신택스이다.Tables 73 and 74 are the syntax of SegmentBandwidth.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
......

<!-- Segment access information -->
<xs:complexType name="SegmentInfoType">
<xs:sequence>
<xs:element minOccurs="0" name="InitialisationSegmentURL" type="UrlType"/>
<xs:choice minOccurs="0">
<xs:element minOccurs="0" name="UrlTemplate" type="UrlTemplateType"/>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Url" type="UrlType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:choice>
<xs:element minOccurs="0" name="SegmentBandwidths" type="SegmentBandwidthsType"/>
</xs:sequence>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute default="1" name="startIndex" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
......

<! - Segment access information ->
<xs: complexType name = "SegmentInfoType">
<xs: sequence>
<xs: element minOccurs = "0" name = "InitialisationSegmentURL" type = "UrlType"/>
<xs: choice minOccurs = "0">
<xs: element minOccurs = "0" name = "UrlTemplate" type = "UrlTemplateType"/>
<xs: sequence>
<xs: element maxOccurs = "unbounded" name = "Url" type = "UrlType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0"
maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0"
maxOccurs = "unbounded"/>
</ xs: choice>
<xs: element minOccurs = "0" name = "SegmentBandwidths" type = "SegmentBandwidthsType"/>
</ xs: sequence>
<xs: attribute name = "baseURL" type = "xs: anyURI"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute default = "1" name = "startIndex" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<!-- Segment Bandwidths -->
<xs:complexType name="SegmentBandwidthsType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Range" type="RangeType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="RangeType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="offset" type="xs:integer"/>
<xs:attribute name="repeat" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

...

</xs:schema>
<! - Segment Bandwidths ->
<xs: complexType name = "SegmentBandwidthsType">
<xs: sequence>
<xs: element maxOccurs = "unbounded" name = "Range" type = "RangeType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "RangeType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "offset" type = "xs: integer"/>
<xs: attribute name = "repeat" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

...

</ xs: schema>

세그먼트가 길어서, 상기 세그먼트의 지속시간 내에 대역폭의 큰 변동들(fluctuations)이 있는 경우, 대역폭들의 부-세그먼트를 설명할 필요가 있다. 상기의 설명은, 세그먼트들 대신에 부-세그먼트들의 인터벌(interval)을 가리키기 위해, repeat 속성을 duration 속성(타입 = "xs:duration")로 변경함으로써 구현될 수 있다.If the segment is long, and there are large fluctuations in bandwidth within the duration of the segment, it is necessary to account for the sub-segments of the bandwidths. The above description can be implemented by changing the repeat attribute to the duration attribute (type = " xs: duration ") to indicate the interval of sub-segments instead of the segments.

상기의 아이디어는 하기와 같이 IntervalBandwidth 요소를 사용함으로써 더 일반적인 방식으로 나타내어질 수 있다. 이 방석의 장점은 인터벌이 세그먼트 경계들과 정렬될 필요가 없다는 것이다. 이 신택스에서 최소 초기의 버퍼링의 다중 값들이 고려된다.The above idea can be represented in a more general manner by using the IntervalBandwidth element as follows. The advantage of this cushion is that the interval need not be aligned with the segment boundaries. Multiple values of minimum initial buffering are considered in this syntax.

표 75는 IntervalBandwidth의 시맨틱스다.Table 75 shows the semantics of IntervalBandwidth.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation Representation    Representation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. ............    ............ SegmentInfo      SegmentInfo 1One Segment 접근 정보를 제공한다.Provide segment access information. BandwidthInfo      BandwidthInfo 0...N0 ... N 초기에 버퍼된 미디어의 특정 양에 관련된 대역폭 정보를 제공한다.It initially provides bandwidth information related to a specific amount of buffered media. id        id MM MPD의 MinBuffer 요소의 ID를 가리킨다. 이 속성의 값이 0이면, id는 MPD의 minBufferTime 또는 minBufferSize 속성에 의해 제공되는 초기에 버퍼된 미디어의 최소 양에 대응한다.Indicates the ID of the MinBuffer element of the MPD. If the value of this attribute is 0, id corresponds to the minimum amount of initially buffered media provided by the MPD's minBufferTime or minBufferSize attribute. repBandwidth        repBandwidth OO MinBuffer 요소 내에서 제공되는 초기에 버퍼된 미디어의 최소 양에 대응하는 representation를 위한 bandwidth 값을 제공한다. 상기 id 속성의 값이 0이면 repBandwidth 속성은 부재한다.Provides a bandwidth value for a representation corresponding to the minimum amount of initially buffered media provided in the MinBuffer element. If the value of the id attribute is 0, the repBandwidth attribute is absent. IntervalBandwidth        IntervalBandwidth 0...N0 ... N representation의 인터벌에 대한 대역폭 정보를 제공한다. 이 대역폭 정보는 상기의 id 속성에 의해 식별된 초기에 버퍼된 미디어의 최소 양에 대응한다. 제1 인터벌은 representation의 처음(beginning)에서부터 시작한다.Provides bandwidth information for the interval of representation. This bandwidth information corresponds to the minimum amount of initially buffered media identified by the id attribute above. The first interval starts at the beginning of the representation. offset        offset MM representation 대역폭 밋 세그먼트 대역폭 간의 차이를 가리킨다. 음(비-음) 값은 세그먼트 대역폭이 representation 대역폭 보다 더 작음(큼)을 의미한다. 세그먼트의 대역폭은 오프셋 값 및 representation 대역폭의 합이다.representation indicates the difference between the bandwidth and the mid-segment bandwidth. A negative (non-negative) value means that the segment bandwidth is smaller (larger) than the representation bandwidth. The bandwidth of the segment is the sum of the offset value and the representation bandwidth. duration        duration MM 인터벌의 지속시간을 가리킨다.Indicates the duration of the interval.

표 76은 IntervalBandwidth의 신택스를 나타낸다.Table 76 shows the syntax of IntervalBandwidth.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:MPEG:ns:DASH"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="urn:MPEG:ns:DASH">
......
<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="BandwidthInfo" type="BandwidthInfoType"/>
<xs:element name="TrickMode" type="TrickModeType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Bandwidth Info, taken from the above Section -->
<xs:complexType name="BandwidthInfoType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="IntervalBandwidth" type="IntervalBandwidthType"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="repBandwidth" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="IntervalBandwidthType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="offset" type="xs:integer"/>
<xs:attribute name="duration" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
...
</xs:schema>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: MPEG: ns: DASH"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns: xlink = "http://www.w3.org/1999/xlink"
xmlns = "urn: MPEG: ns: DASH">
......
<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "BandwidthInfo" type = "BandwidthInfoType"/>
<xs: element name = "TrickMode" type = "TrickModeType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>
<! - Bandwidth Info, taken from the above Section ->
<xs: complexType name = "BandwidthInfoType">
<xs: sequence>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "IntervalBandwidth" type = "IntervalBandwidthType"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "repBandwidth" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "IntervalBandwidthType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "offset" type = "xs: integer"/>
<xs: attribute name = "duration" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
...
</ xs: schema>

하기에서 가상 In the following, 세그먼트들을Segments 지원하기 위한 확장을 설명한다. Explain the extensions to support.

미디어는 전달 전 준비(prepared)된다. 특히, 원본 미디어 파일은 세그먼트되어야 하고, 몇몇 밴드 내(in-band) 메타데이터 신호는 미디어 데이터 내로 삽입된다.The media is prepared for delivery. In particular, the original media file must be segmented, and some in-band metadata signals are inserted into the media data.

미디어 조작(manipulation)에 대한 요구(demand)를 최소화하는, 상이한 representation들을 설명하는 "가상 세그먼트들"이 설명된다. 가상 세그먼트는 스트림(또는, 세그먼트) 내의 데이터 파트(들)의 집합으로서 정의될 수 있다.&Quot; Virtual segments " describing different representations are described, which minimizes the demand for media manipulation. A virtual segment may be defined as a collection of data part (s) in a stream (or segment).

가상 세그먼트의 목적은 하기의 목적 1) 내지 목적 2)를 포함할 수 있다. :The purpose of the virtual segment may include the following objectives 1) to 2). :

1) 미디어 파일들의 생성 및 관리에 있어서의 용이 : 명백히 가상 세그먼트들을 사용함으로서, 물리적 파일들의 개수는 작아질 수 있다. 또한, 원본 미디어 파일들은 변경되지 않을 수 있고, 밴드 외(out-of-band) 메타데이터 신호(signaling)에 의해 인자전달(augment)될 수 있다.1) Ease in creating and managing media files: By explicitly using virtual segments, the number of physical files can be reduced. In addition, the source media files may not be modified and may be augmented by out-of-band metadata signaling.

2) 세그먼트 공급에 있어서의 유동성 : 세그먼트들의 상이한 타입들이 스트림으로부터 획득될 수 있다.2) Fluidity in Segment Supply: Different types of segments can be obtained from the stream.

MPEG DASH에서, 클라이언트에 의해 요청되는 미디어 세그먼트는 URL 및 바이트 범위(range)에 의해 지정될 수 있다. 특히 미디어 스트림이 상이한 representation들을 내부에 포함할 때, 미디어 세그먼트는 미디어 스트림의 상이한 일부들로 구성될 수 있기 때문에, 이러한 지정은 다소 제한될 수 있다. 가상 세그먼트를 식별하기 위해 다중 바이트 범위들과 함께 URL이 사용될 수 있다. 또한, 상이한 기법들(techniques)이 다중 바이트 범위들을 사용함으로써 야기되는 증가된 메타데이터 크기를 감소시키기 위해 사용될 수 있다.In MPEG DASH, a media segment requested by a client may be specified by a URL and a byte range. This designation may be somewhat limited, especially since the media segment may comprise different parts of the media stream, especially when the media stream contains different representations internally. The URL may be used with multiple byte ranges to identify the virtual segment. In addition, different techniques may be used to reduce the increased metadata size caused by using multi-byte ranges.

MPD의 UrlType의 시맨틱스는 하기와 같이 변경될 수 있다.The semantics of the UrlType of MPD can be changed as follows.

range 속성: [...]. 이 문자열의 포맷은 다중 바이트 범위들을 지원할 수 있다. (예컨대, "0-500, 1000-1500")range property: [...]. The format of this string can support multi-byte ranges. (E.g., " 0-500, 1000-1500 "),

바이트 범위들에 의해 획득된 representation을 디코딩할 때, 미디어 헤더 박스들(예컨대, moov 또는 moof 박스들)의 몇몇 일부는 representation 설명과 상이한 정보를 포함할 수 있다. 이러한 경우, 상기의 정보는 무시될 수 있다.When decoding a representation obtained by byte ranges, some of the media header boxes (e.g., moov or moof boxes) may contain different information than the representation description. In this case, the above information can be ignored.

바이트 범위들을 컴팩트한 방식으로 표현하기 위해 새 요소 MoreAddressingInfo가 추가될 수 있다. 메타데이터 프래그맨테이션이 초기의 MPD의 크기를 감소시키기 위해 MoreAddressingInfo 요소에 가해질 수 있다..A new element MoreAddressingInfo may be added to represent the byte ranges in a compact manner. The metadata fragmentation can be applied to the MoreAddressingInfo element to reduce the size of the initial MPD.

질 수 있다세그먼트 인덱스 박스들을 가리키기 위해할 수 있다Can be done to point to segment index boxes

MoreAddressInfo 요소에 의해 향상되는 SegmentInfo 요소가 하기의 표 77에서 설명된다.The SegmentInfo element enhanced by the MoreAddressInfo element is described in Table 77 below.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation SegmentInfoSegmentInfo MM 세그먼트 접근 정보를 제공한다.Provides segment access information. ............  ............ UrlListUrlList 0...N0 ... N 세그먼트들을 위한 명시적인 URL(들)의 목록을 제공한다.Provides a list of explicit URL (s) for the segments. MoreAddressingInfoMoreAddressingInfo 0...10 ... 1 상기의 URLTemplate, Url들 또는 UrlList에 의해 식별되는 세그먼트들로부터 추출될 수 있는 상이한 representation들에 대한 더 많은 어드레싱 정보들을.제공한다.And provides more addressing information for different representations that can be extracted from the URLTemplate, Url or UrlList identified segments. baseURL  baseURL OO 더 많은 어드레싱 정보를 위한 베이스 URL을 제공한다.Provide a base URL for more addressing information. xlink:href  xlink: href OO 외부의 MoreAddressingInfo 요소에 대한 참조이다.A reference to an external MoreAddressingInfo element. ByteRangesByteRanges 0...10 ... 1 상이한 representations에 대한 바이트 범위들을 제공한다.Provide byte ranges for different representations. xlink:href    xlink: href 외부의 ByteRanges 요소에 대한 참조이다.A reference to an external ByteRanges element. sameRep    sameRep OO 만약 sameRep의 값이 참이면, 이는 각 Ranges 요소들이 representation의 상이한 세그먼터들의 바이트 범위들을 포함한다는 것을 가리킨다. 만약, sameRep의 값이 거짓이면, 이는 각 Ranges 요소가 상이한 representation들의 동일한 세그먼트 순서를 같는 세그먼트들의 바이트 범위들을 포함한다는 것을 가리킨다. 세그먼트들/representation들의 순서는 대응하는 representation 설명 내에서의 순서와 동일하다.
sameRep 속성이 부재면, 각 Ranges 요소가 representation의 세그먼트에 대한 바이트 범위들을 포함한다는 것을 가리킨다. segment들/representation들의 순서는 대응하는 representation 설명에서의 순서와 동일하다.
제1 representation이 바이트 범위들을 필요로하지 않을 때, 그 representation에 대응하는 Ranges 요소들은 부재일 수 있다.
If the value of sameRep is true, it indicates that each Ranges element contains byte ranges of different segments of the representation. If the value of sameRep is false, this indicates that each Ranges element contains byte ranges of segments with the same segment order of different representations. The order of the segments / representations is the same as the order in the corresponding representation description.
If the sameRep attribute is absent, it indicates that each Ranges element contains byte ranges for the segment of representation. The order of the segments / representations is the same as the order in the corresponding representation description.
When the first representation does not require byte ranges, the Ranges elements corresponding to that representation may be absent.
RangesRanges 0...N0 ... N (다중 세그먼트들로 구성될 수 있는) representation들의 바이트 범위들을 제공한다. Ranges 요소는 바이트 범위들의 일련을 나타내는 문자열 타입에 기반한다. x 및 y가 시작 값 및 끝 값일 때, 바이트 범위는 "x-y"로 표기된다. 상기한 세그먼트들의 바이트 범위들은 (만약, 있다면) 세미콜론 문자(character)(";")로 분리된다. 세그먼트 내의 상이한 바이트 범위들은 콤마 문자(",")에 의해 분리된다.
동일한 세그먼트 순서에 대응하는 2 개 이상의 바이트 범위들이 동일한 x/y 값들을 가질 때, 하나 이상의 x/y 값들은 부재일 수 있으며, 존재하는(present) 대응하는 값으로부터 참조된다.
(Which may consist of multiple segments). The Ranges element is based on a string type representing a series of byte ranges. When x and y are the start and end values, the byte range is denoted by "xy". The byte ranges of the above segments are separated by a semicolon character (&quot;;&quot;) (if present). The different byte ranges in a segment are separated by a comma character (",").
When two or more byte ranges corresponding to the same segment sequence have the same x / y values, one or more of the x / y values may be absent and referenced from the corresponding corresponding present value.
xlink:href       xlink: href 외부의 ByteRanges 요소에 대한 참조이다.A reference to an external ByteRanges element. IdxBoxesIdxBoxes 0...10 ... 1 세그먼트들의 세그먼트 인덱스 박스들의 주소를 제공한다. IdxBoxes 요소는 버이트 범위들의 일련을 나타내는 문자열 타입에 기반한다. x 및 y가 시작 값 및 끝 값일 때, 바이트 범위는 "x-y"로 표기된다. 상기한 세그먼트들의 바이트 범위들은 (만약, 있다면) 세미콜론 문자(character)(";")로 분리된다. 세그먼트 내의 상이한 바이트 범위들은 콤마 문자(",")에 의해 분리된다.
세그먼트 인덱스 박스가 밴드-외(예컨대, 미디어 세그먼트 내가 아님)로 사용될 때,인덱스 박스의 reference_offset 값은 세그먼트의 제1 바이트로부터 참조된다.
Provides the address of the segment index boxes of the segments. The IdxBoxes element is based on a string type representing a series of boolean ranges. When x and y are the start and end values, the byte range is denoted by "xy". The byte ranges of the above segments are separated by a semicolon character (&quot;;&quot;) (if present). The different byte ranges in a segment are separated by a comma character (",").
When the segmented index box is used out-of-band (e.g., not in the media segment), the reference_offset value of the indexed box is referenced from the first byte of the segment.
idxFileUrl    idxFileUrl OO 세그먼트의 인덱스 박스들을 포함하는 파일의 URL을 제공한다.Provides the URL of the file containing the indexed boxes of the segment.

여기서, 조건들은 xlink:href가 사용되지 않을 때만 유지된다(hold). 링킹이 사용되면 모든 속성들은 "선택적인"이며, <minOccurs= 0> 이다.Here, the conditions hold only when xlink: href is not used. If linking is used, all attributes are "optional" and <minOccurs = 0>.

요소들은 볼드(bold)체, 속성들은 비-볼드(non-bold)체이다.Elements are bold, attributes are non-bold.

하기의 표 78 및 표 79는 MoreAddressingInfo 요소의 XML 신택스를 나타낸다.Tables 78 and 79 below represent the XML syntax of the MoreAddressingInfo element.

<!-- Segment access information -->
<xs:complexType name="SegmentInfoType">
<xs:sequence>
<xs:element name="InitialisationSegmentURL" type="UrlType" minOccurs="0"/>
<xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="SegmentTimeline" type="SegmentTimelineType" minOccurs="0"/>
<xs:choice minOccurs="0">
<xs:element name="UrlTemplate" type="UrlTemplateType" minOccurs="0"/>
<xs:sequence>
<xs:element name="Url" type="UrlType" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:element name="UrlList" type="UrlListType" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:choice>
<xs:element name="MoreAddressingInfo" type="MoreAddressingInfoType" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="SegmentInfoAttrGroup"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="MoreAddressingInfoType">
<xs:sequence>
<xs:element name="ByteRanges" type="ByteRangesType" minOccurs="0"/>
<xs:element name="IdxBoxes" type="IdxBoxesType" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:actuate" default="onRequest"/>
<xs:attribute name="baseURL" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ByteRangesType">
<xs:sequence>
<xs:element name="Ranges" type="RangesType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:actuate" default="onRequest"/>
<xs:attribute name="sameRep" type="xs:boolean"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<! - Segment access information ->
<xs: complexType name = "SegmentInfoType">
<xs: sequence>
<xs: element name = "InitializationSegmentURL" type = "UrlType" minOccurs = "0"/>
<xs: element name = "BaseURL" type = "BaseURLType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: element name = "SegmentTimeline" type = "SegmentTimelineType" minOccurs = "0"/>
<xs: choice minOccurs = "0">
<xs: element name = "UrlTemplate" type = "UrlTemplateType" minOccurs = "0"/>
<xs: sequence>
<xs: element name = "Url" type = "UrlType" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0"
maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: element name = "UrlList" type = "UrlListType" minOccurs = "0"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0"
maxOccurs = "unbounded"/>
</ xs: choice>
<xs: element name = "MoreAddressingInfo" type = "MoreAddressingInfoType" minOccurs = "0"/>
</ xs: sequence>
<xs: attributeGroup ref = "SegmentInfoAttrGroup"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "MoreAddressingInfoType">
<xs: sequence>
<xs: element name = "ByteRanges" type = "ByteRangesType" minOccurs = "0"/>
<xs: element name = "IdxBoxes" type = "IdxBoxesType" minOccurs = "0"/>
</ xs: sequence>
<xs: attribute ref = "xlink: href"/>
<xs: attribute ref = "xlink: actuate" default = "onRequest"/>
<xs: attribute name = "baseURL" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "ByteRangesType">
<xs: sequence>
<xs: element name = "Ranges" type = "RangesType" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute ref = "xlink: href"/>
<xs: attribute ref = "xlink: actuate" default = "onRequest"/>
<xs: attribute name = "sameRep" type = "xs: boolean"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs:complexType name="RangesType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:actuate" default="onRequest"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="IdxBoxesType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="idxFileUrl" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs: complexType name = "RangesType">
<xs: simpleContent>
<xs: extension base = "xs: string">
<xs: attribute ref = "xlink: href"/>
<xs: attribute ref = "xlink: actuate" default = "onRequest"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: extension>
</ xs: simpleContent>
</ xs: complexType>
<xs: complexType name = "IdxBoxesType">
<xs: simpleContent>
<xs: extension base = "xs: string">
<xs: attribute name = "idxFileUrl" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: extension>
</ xs: simpleContent>
</ xs: complexType>

MoreAddressingInfo 요소의 크기를 더 줄이기 위해, MoreAddressingInfo 요소는 슈도-코드 포맷에 의해 표현될 수 있다.To further reduce the size of the MoreAddressingInfo element, the MoreAddressingInfo element may be represented by a pseudo-code format.

ByteRanges 요소를 슈도-코드로 나타낸 예는 하기의 표 80과 같다.An example pseudo-code of the ByteRanges element is shown in Table 80 below.

aligned(8) class ByteRangesBox extends FullBox('brgb', 0, 0) {
bit(1) same_rep;
unsigned int(31) segment_count;
unsigned int(8) rep_count;
if (same_rep){
for( i=0; i < rep_count; i++)
for ( j=0; j < segment_count; j++){
unsigned int(8) range_count;
for ( k=0; k < range_count; k++){
unsigned int(32) start;
unsigned int(32) end;
}
}
}
}

if (!same_rep){
for( i=0; i < segment_count; i++)
unsigned int(32) segment_offset;
for ( j=0; j < rep_count; j++){
unsigned int(7) range_count;
bit(1) same_start;
if (!same_start){
for ( k=0; k < range_count; k++){
unsigned int(32) start;
unsigned int(32) end;
}
}
if (same_start){
for ( k=0; k < range_count; k++)
unsigned int(32) end;
}
}
}
}
}
aligned (8) class ByteRangesBox extends FullBox ('brgb', 0, 0) {
bit (1) same_rep;
unsigned int (31) segment_count;
unsigned int (8) rep_count;
if (same_rep) {
for (i = 0; i <rep_count; i ++)
for (j = 0; j <segment_count; j ++) {
unsigned int (8) range_count;
for (k = 0; k <range_count; k ++) {
unsigned int (32) start;
unsigned int (32) end;
}
}
}
}

if (! same_rep) {
for (i = 0; i <segment_count; i ++)
unsigned int (32) segment_offset;
for (j = 0; j &lt;rep_count; j ++) {
unsigned int (7) range_count;
bit (1) same_start;
if (! same_start) {
for (k = 0; k <range_count; k ++) {
unsigned int (32) start;
unsigned int (32) end;
}
}
if (same_start) {
for (k = 0; k <range_count; k ++)
unsigned int (32) end;
}
}
}
}
}

여기서, same_rep는 아래의 바이트 범위들의 각 시퀀스가 동일한 representation의 세그먼트들 또는 상이한 representation들 내에서 동일한 순서를 갖는 세그먼트들을 위한 것인지 여부를 가리킬 수 있다.Where same_rep may indicate whether each sequence of the following byte ranges is for segments of the same representation or for segments having the same order in different representations.

segment_count는 각 representation 내의 세그먼트들의 개수를 나타낸다.segment_count represents the number of segments in each representation.

rep_count는 representation들의 개수를 나타낸다.rep_count represents the number of representations.

range_count는 바이트 범위들의 개수를 나타낸다.range_count represents the number of byte ranges.

start 및 end는 바이트 범위들의 시작 및 끝 값들을 나타낸다.start and end represent the start and end values of the byte ranges.

same_start는 하기의 바이트 범위들의 집합이 이전의 바이트 범위들의 집합과 동일한 시작 값들을 갖는지 여부를 가리킨다.same_start indicates whether the following set of byte ranges has the same starting value as the previous set of byte ranges.

MoreAddressingInfo 요소에 의해 제공되는 representation들의 특성을 설명하기 위해, 상이한 방식들이 사용될 수 있다. 하기에서, 2 개의 일반적인 방식들이 설명된다. : 1) representation 그룹의 representation들을 사용하는 방식 및 2) representation의 부-representations들을 사용하는 방식.Different schemes can be used to describe the properties of representations provided by the MoreAddressingInfo element. In the following, two general schemes are described. : 1) a method of using representations of a representation group and 2) a method of using subrepresentations of representation.

representation 그룹의 representation group representation들을representations 사용하는 방식 How you use it

이 방식에서, RepresentationGroup 요소의 SegmentInfoDefaultType는 하기의 표 81에서처럼, 상기의 SegmentInfo 타입으로부터 직접적으로 확장될 수 있다. RepresentationGroup 요소의 SegmentInfoDefault 요소가 세그먼트들의 주소를 가리키는(addressing) 정보를 전달하기 위해 사용되면, Representation 요소의 SegmentInfo 요소는 부재이다. representation 그룹의 각 representation은 MoreAddressingInfo의 Ranges 요소에 의해 지시되는 (대응하는) 식별자 값과 동일한 식별자 값을 가질 수 있다.In this manner, the SegmentInfoDefaultType of the RepresentationGroup element can be extended directly from the SegmentInfo type above, as shown in Table 81 below. If the SegmentInfoDefault element of the RepresentationGroup element is used to pass information addressing the segments, the SegmentInfo element of the Representation element is absent. Each representation of the representation group may have the same identifier value as the (corresponding) identifier value indicated by the Ranges element of MoreAddressingInfo.

<xs:complexType name="SegmentInfoDefaultType">
<xs:complexContent>
<xs:extension base="SegmentInfoType">
<xs:attribute name="sourceURLTemplatePeriod" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs: complexType name = "SegmentInfoDefaultType">
<xs: complexContent>
<xs: extension base = "SegmentInfoType">
<xs: attribute name = "sourceURLTemplatePeriod" type = "xs: string"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>

representation 내의 부-representation을 사용하는 방식How to use sub-representation in representation

이 방식에서, SubReps로 불리는 새 요소가 (부모) representation의 상이한 (부-)representation을 설명하기 위해 사용된다. 부모 representation의 SegmentInfo 요소는 (상기에서 설명된 것과 같이) 주소를 가리키는 정보를 전달하기 위해 사용될 수 있다.In this way, a new element called SubReps is used to describe the different (sub-) representation of the (parent) representation. The SegmentInfo element of the parent representation may be used to convey information indicating an address (as described above).

표 82는 SubReps의 시맨틱스를 설명한다.Table 82 describes the semantics of SubReps.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation RepresentationRepresentation 1One 세그먼트 접근 정보를 제공한다.Provides segment access information. ............  ............ SegmentInfoSegmentInfo 1One 세그먼트 접근 정보를 제공한다. (상기에서처럼 변경되었다.)Provides segment access information. (Changed as above.) SubRepsSubReps 0...10 ... 1 representation의 부-representation들에 대한 정보를 제공한다.Provides information about minor repre- sentations of representation. SubRepSubRep 0...N0 ... N representation의 부-representation에 관한 정보를 제공한다. SubRep 요소는 RepresentationType이다. 부-representation의 식별자는 SegmentInfo 요소 내의 대응하는 RepRanges의 식별자와 동일하다.
부-representation의 속성들은 (만약, 존재한다면) 부모 representation의 속성들을 오버라이드한다.
Provides information about the minor -representation of representation. The SubRep element is a RepresentationType. The identifier of the sub-representation is the same as the identifier of the corresponding RepRanges in the SegmentInfo element.
The attributes of the subrepresentation (if any) override the attributes of the parent representation.

표 83은 SubReps 요소의 XML 신택스를 나타낸다.Table 83 shows the XML syntax of the SubReps element.

<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element name="TrickMode" type="TrickModeType" minOccurs="0"/>
<xs:element name="SubReps" type="SubRepsType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubRepsType">
<xs:sequence>
<xs:element name="SubRep" type="RepresentationType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element name = "TrickMode" type = "TrickModeType" minOccurs = "0"/>
<xs: element name = "SubReps" type = "SubRepsType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>
<xs: complexType name = "SubRepsType">
<xs: sequence>
<xs: element name = "SubRep" type = "RepresentationType" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

하기에서, 적응 힌트(adaptation hint)를 설명한다.In the following, an adaptation hint is described.

몇몇 경우, 품질(quality) 값들을 측정하는 것은 많은 비용이 들 수 있다. 따라서, 명시적으로 품절 정보를 제공하는 대신에, 제공자는 상이한 representation들을 선택함에 있어서, 몇몇 힌트들을 제공할 수 있다.In some cases, measuring quality values can be costly. Thus, instead of explicitly providing out-of-stock information, the provider may provide some hints in selecting different representations.

하기에서, 주어진 컨텍스트(context)(예컨대, 1Mbps의 대역폭 제한)에 있어서 선택된 representation들을 제안하는 적응 힌트가 설명된다. 이러한적응 힌트의 요소 및 시맨틱스는 하기에서 개시된다. 적응 힌트는 Period 또는 Subset의 자식 요소가 될 수 있다. SubSet 내에서 사용될 때, AdaptationHint는 그 SubSet에 속하는 representation들만을 고려할 수 있다.In the following, an adaptive hint is described that suggests selected representations in a given context (e.g., a bandwidth limit of 1 Mbps). The elements and semantics of such an adaptation hint are described below. The adaptation hint can be a child element of a Period or a Subset. When used in a SubSet, AdaptationHint can only consider representations belonging to that SubSet.

실질적으로, 클라이언트는 설명된 컨텍스트 내에서 representation들을 선택하기 위해서뿐만 아니라, 다른 가능한 컨텍스트들 내에서 representation들을 추론(infer)(예컨대, 보간(interpolate))하기 위해서 사용할 수 있다.In effect, the client may use it to infer (e.g., interpolate) representations within other possible contexts as well as to select representations within the context described.

표 84는 AdaptationHint의 시맨틱스를 나타낸다.Table 84 shows the semantics of AdaptationHint.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation PeriodPeriod MM Period의 정보를 제공한다.Provides information on the period. ............  ............ AdaptationHintAdaptationHint 0...10 ... 1 적응성(adaptivity)을 지원하기 위해 representation들을 선택하기 위한 힌트를 제공한다. 힌트는 노드들의 목록을 포함한다. 노드들 각각은 제약(constraint)들(예컨대, 대역폭 및 디스플레이(display) 크기)의 주어진 집합을 설명하고, 대응하는 선택된 representation들을 설명한다.It provides a hint to select representations to support adaptability. The hint includes a list of nodes. Each of the nodes describes a given set of constraints (e.g., bandwidth and display size) and describes the corresponding selected representations. xlink:href  xlink: href 외부의 AdaptationHint 요소에 대한 참조를 제공한다.Provides a reference to an external AdaptationHint element. NodeNode 1...N1 ... N 주어진 컨텍스트(예컨대, 대역폭 및 디스플레이 크기) 및 대응하는 선택된 representation들을 설명한다.Describes a given context (e.g., bandwidth and display size) and corresponding selected representations. bandwidth  bandwidth OO 대역폭 제약을 설명한다.Describe bandwidth constraints. width  width OO 폭(width) 제약을 설명한다.Explain the width constraint. height  height OO 높이(height) 제약을 설명한다.Describe height constraints. frameRate  frameRate OO 프레임 율(frame rate) 제역을 설명한다.Describes the frame rate gamut. SelectedRepSelectedRep 1...N1 ... N 선택된 representation을 설명한다.Describes the selected representation. id    id MM 선택된 representation의 식별자를 설명한다.Describes the identifier of the selected representation. SubsetSubset 0...N0 ... N Subset은 Subset의 설명을 포함하는 요소이다.A Subset is an element containing a description of a Subset. AdaptationHintAdaptationHint OO .적응성을 위한 선택 representation들에 대한 힌트를 제공한다.
힌트는 노드들의 목록을 포함한다. 노드들 각각은 SubSet 내에서의 1) 제약(constraint)들(예컨대, 대역폭 및 디스플레이(display) 크기)의 주어진 집합 및 2) 대응하는 선택된 representation들을 설명한다.
Provides hints to selection representations for adaptability.
The hint includes a list of nodes. Each of the nodes describes a given set of constraints (e.g., bandwidth and display size) and 2) corresponding selected representations within the SubSet.

표 85 및 표 86은 AdaptationHint의 신택스를 나타낸다.Tables 85 and 86 show the syntax of AdaptationHint.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
......
<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element name="SegmentInfoDefault" type="SegmentInfoDefaultType" minOccurs="0"/>
<xs:element name="Representation" type="RepresentationType" minOccurs="1" maxOc-curs="unbounded"/>
<xs:element name="RepresentationGroup" type="RepresentationGroupType" minOccurs="0" maxOc-curs="unbounded"/>
<xs:element name="Subset" type="SubsetType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AdaptationHint" type="AdaptationHintType" minOccurs="0"/>
<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="start" type="xs:duration"/>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="segmentAlignmentFlag" type="xs:boolean" default="false"/>
<xs:attribute name="bitStreamSwitchingFlag" type="xs:boolean" default="false"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="SubsetType">
<xs:sequence>
<xs:element name="Contains" type="ContainsType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="AdaptationHint" type="AdaptationHintType" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Adaptation Hint -->
<xs:complexType name="AdaptationHintType">
<xs:sequence>
<xs:element name="Node" type="NodeType" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
......
<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element name = "SegmentInfoDefault" type = "SegmentInfoDefaultType" minOccurs = "0"/>
<xs: element name = "Representation" type = "RepresentationType" minOccurs = "1" maxOc-curs = "unbounded"/>
<xs: element name = "RepresentationGroup" type = "RepresentationGroupType" minOccurs = "0" maxOc-curs = "unbounded"/>
<xs: element name = "Subset" type = "SubsetType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: element name = "AdaptationHint" type = "AdaptationHintType" minOccurs = "0"/>
<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 = "start" type = "xs: duration"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "segmentAlignmentFlag" type = "xs: boolean" default = "false"/>
<xs: attribute name = "bitStreamSwitchingFlag" type = "xs: boolean" default = "false"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "SubsetType">
<xs: sequence>
<xs: element name = "Contains" type = "ContainsType" minOccurs = "1" maxOccurs = "unbounded"/>
<xs: element name = "AdaptationHint" type = "AdaptationHintType" minOccurs = "0"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Adaptation Indian ->
<xs: complexType name = "AdaptationHintType">
<xs: sequence>
<xs: element name = "Node" type = "NodeType" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<!-- Node -->
<xs:complexType name="NodeType">
<xs:sequence>
<xs:element name="SelectedRep" type="SelectedRepType" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="bandwidth" type="xs:unsignedInt"/>
<xs:attribute name="width" type="xs:unsignedInt"/>
<xs:attribute name="height" type="xs:unsignedInt"/>
<xs:attribute name="frameRate" type="xs:double"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!-- Selected Rep -->
<xs:complexType name="SelectedRepType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

</xs:schema>
<! - Node ->
<xs: complexType name = "NodeType">
<xs: sequence>
<xs: element name = "SelectedRep" type = "SelectedRepType" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "bandwidth" type = "xs: unsignedInt"/>
<xs: attribute name = "width" type = "xs: unsignedInt"/>
<xs: attribute name = "height" type = "xs: unsignedInt"/>
<xs: attribute name = "frameRate" type = "xs: double"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<! - Selected Rep ->
<xs: complexType name = "SelectedRepType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string" use = "required"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

</ xs: schema>

하기에서 부-In the following, representation들의representation 그룹에 대한 대역폭 범위를 설명한다. Describe the bandwidth range for the group.

사용자 장치(device)들의 다양한 제약들을 만족시키는(meet) 부-스트림들을 추출함에 있어서의 유동성에 기인하여, 확장가능한(scalable) 콘텐츠는 점점 더 대중적이 된다. 파일 포맷은 풀(full) (확장가능한) 스트림으로부터 부-스트림을 추출하는 툴에 대한 폭넓은 다양성을 제공할 수 있다. DASH에서 확장가능한 콘텐츠를 제공하기 위해, Representation을 위한 bandwidthRange로 불리는 새로운 속성이 제안된다. bandwithRange 속성은 풀 스트림/representation으로부터 추출가능한 부-스트림들(또는, 부-representation)의 대역폭 값들을 제공한다.Due to the flexibility in extracting sub-streams that meet various constraints of user devices, scalable content becomes more and more popular. The file format can provide a wide variety of tools for extracting sub-streams from a full (extensible) stream. To provide scalable content in DASH, a new property called bandwidthRange for Representation is proposed. The bandwithRange attribute provides the bandwidth values of the sub-streams (or sub-preparations) that can be extracted from the full stream / representation.

풀 representation의 세그먼트들을 다운로드하기 위해, 클라이언트는 representation 설명과 함께 제공된 URL만을 사용할 수 있다. 그러나, 부-representation의 세그먼트들을 다운로드하기 위해, 클라이언트는 각 URL에 대해 "bandwith"로 불리는 질의 파라미터(query parameter)를 포함한다. (예컨대, "?bandwitdh=1000")To download segments of full representation, the client may use only the URL provided with the representation description. However, in order to download the segments of the sub-representation, the client includes a query parameter called " bandwith " for each URL. (E.g., "? Bandwitdh = 1000 "),

표 87은 bandwidthRange의 시맨틱스를 설명한다.Table 87 describes the semantics of bandwidthRange.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation RepresentationRepresentation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. id  id MM Period 내의 이 Representation을 위한 고유한 식별자.
문자열은 RFC1738에 따른 유효한 http-URL을 형성하도록 허용된 문자들만을 포함한다. 확장가능한 콘텐츠를 위해, 이 문자열은 대역폭 값들이 bandwidthRanges 속성 내에서 제공되는 부-representation들에 대응하는 id들의 목록(세미콜론 문자 ";"에 의해 분리되는)을 포함할 수 있다. 목록의 제1 id는 (풀) representation의 id이다.
A unique identifier for this Representation within the Period.
The string contains only those characters allowed to form a valid http-URL according to RFC1738. For scalable content, this string may contain a list of id's (separated by a semicolon character &quot;;&quot;) whose bandwidth values correspond to sub-representations provided within the bandwidthRanges attribute. The first id in the list is the id of the (full) representation.
bandwidth  bandwidth OO 클라이언트가, 정확하게 minBufferTime 동안 버퍼링한 후, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장할 수 있도록, Representation(즉, Representation의 모든 세그먼트들의 콜렉션(collection))이 전달될 수 있는 초당 비트들(bits per second; bps) 단위의 가상적인(hypothetical) 상수(constant) 비트레이트 채널의 최소 대역폭.Bits per second to which a Representation (i. E., A collection of all segments of a Representation) can be delivered, such that a client can buffer correctly for minBufferTime and then ensure that it has sufficient data for subsequent playout The hypothetical constant bit rate in bits per second (bps). The minimum bandwidth of the channel. bandwidthRange  bandwidthRange OO 이 representation으로부터 추출가능한 부-representations들의 대역폭 값들(세미콜론 문자 ";"에 의해 분리된)의 목록을 포함하는 문자열. 부-representation을 요청하기 위해 "bandwidth" 질의 파리미터를 그것의 요청 내에 포함시킨다. "bandwidth"의 값은 클라이언트는 필요한 부-representation의 대역폭 값이다.A string containing a list of the bandwidth values (separated by the semicolon character ";") of the minus -representations extractable from this representation. Include the "bandwidth" query parameter in its request to request the negative-representation. The value of "bandwidth" is the bandwidth value of the client-side required update.

bandwidthRange는 RepresentationGroup를 위해서도 사용될 수 있다. 여기서, 부-representation들은 RepresentationGroup의 representation들이 될 수 있다.The bandwidthRange can also be used for a RepresentationGroup. Here, subrepresentations can be representations of a RepresentationGroup.

대역폭과 유사하게, resolution, frame rate와 같은 다른 속성들도 대응하는 resoultionRange 및 framerateRange에 의해 인자전달될 수 있다.Similar to bandwidth, other properties such as resolution and frame rate can also be passed by the corresponding resoultionRange and framerateRange.

하기에서 대역폭 정보에 대해 For the bandwidth information below 추가적으로Additionally 설명한다. Explain.

대역폭 및 초기의 버퍼링 지연에 대한 설명은 적응성을 지원함에 있어서 유동성 및 정확성을 가능하게 하기 위해 향상될 수 있다.The description of bandwidth and initial buffering delay can be improved to enable flexibility and accuracy in supporting adaptability.

MPDMPD 레벨에서의  Level minBufferTimeminBufferTime

각 representation의 대역폭 값은 어떤(certain) 초기의 버퍼링 시간 값(minBufferTime)에 대하여 정의될 수 있다. 초기의 버퍼링 시간은 MPD 레벨에 대해서 제공될 수 있다. 그러나, 이 minBufferTime이 미디어 프리젠테이션의 처음에만 적용되는지, 또는 임의의 RAP들에 적용되는지 여부는 불명확할 수 있다.The bandwidth value of each representation may be defined for a certain initial buffering time value (minBufferTime). The initial buffering time may be provided for the MPD level. However, it may be unclear whether this minBufferTime applies only to the beginning of the media presentation or to any RAPs.

MPD 레벨에서의 minBufferTime의 시맨틱스는 하기의 선택사항들 중 하나로 수정(revise)될 수 있다.The semantics of minBufferTime at the MPD level can be revised to one of the following options.

*1) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 시작에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.* 1) Provides the minimum amount of buffered media initially needed (at the beginning of the media presentation) to ensure smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above.

2) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 임의의 Period의 시작에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.2) Provide the minimum amount of buffered media initially needed (at the beginning of any Period of the media presentation) to ensure smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above .

3) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 임의의 RAP들에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.3) Provide the minimum amount of buffered media initially (in any RAPs of the media presentation) needed to guarantee smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above.

*Period 레벨에서의 minBufferTime * MinBufferTime at Period level

만약, MPD 레벨에서의 minBufferTime 속성이 프리젠테이션의 시작 점에 특별할 때, 각 Period에 minBufferTime이 더해질 수 있다. 각 Period에 minBufferTime을 더하는 것은 MPD 레벨에서의 minBufferTime 값을 오버라이드할 수 있다. 이러한 오버라이드는 Period가 시작하기 이전에 적절한 초기의 버퍼링을 가능하게 한다.If the minBufferTime property at the MPD level is special to the starting point of the presentation, minBufferTime can be added to each Period. Adding minBufferTime to each Period can override the minBufferTime value at the MPD level. This override allows proper initial buffering before the Period starts.

우선, 표 88에서, MPD 레벨에서의 minBufferTime이 선택적인 속성으로 변경될 수 있다.First, in Table 88, minBufferTime at the MPD level can be changed to a selective attribute.

표 88은 minBufferTime을 설명한다.Table 88 describes minBufferTime.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation MPDMPD 1One 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............  ............ minBufferTime  minBufferTime OO 각 Representation이 Representation의 bandwidth 속성 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다.Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a value of the bandwidth property or greater of the Representation.

다음으로, Period 레벨에서의 minBufferTime 속성의 시맨틱스 및 신택스는 하기의 표 89 및 표 90과 같다.Next, the semantics and syntax of the minBufferTime attribute at the Period level are shown in Tables 89 and 90 below.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation PeriodPeriod 1One Period의 정보를 제공한다.Provides information on the period. ............  ............ minBufferTime  minBufferTime OO 시맨틱스의 선택사항들 :
1) 현재 Period의 각 Representation이 Representation의 bandwidth 속성 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (현재 Period의 시작에서의) 초기에 버퍼된 미디어의 최소 양을 제공한다. minBufferTime 속성은, 존재할 경우, MPD 레벨에서의 minBufferTime 속성을 오버라이드한다.
1) 현재 Period의 각 Representation이 Representation의 bandwidth 속성 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (현재 Period의 임의의 RAP들에서의) 초기에 버퍼된 미디어의 최소 양을 제공한다. minBufferTime 속성은, 존재할 경우, MPD 레벨에서의 minBufferTime 속성을 오버라이드한다.
Semantic Options:
1) Provides the minimum amount of initially buffered media (at the beginning of the current Period) needed to guarantee smooth playback when each Representation of the current Period is delivered with the value of the bandwidth attribute or greater of the Representation. The minBufferTime property, if present, overrides the minBufferTime attribute at the MPD level.
1) Provides the minimum amount of initially buffered media (in any RAPs of the current Period) needed to guarantee smooth playback when each Representation of the current Period is delivered with the value of the bandwidth attribute or greater of the Representation. do. The minBufferTime property, if present, overrides the minBufferTime attribute at the MPD level.

<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element name="SegmentInfoDefault" type="SegmentInfoDefaultType" minOccurs="0"/>
<xs:element name="Representation" type="RepresentationType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="RepresentationGroup" type="RepresentationGroupType" 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="start" type="xs:duration"/>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="optional"/>
<xs:attribute name="segmentAlignmentFlag" type="xs:boolean" default="false"/>
<xs:attribute name="bitStreamSwitchingFlag" type="xs:boolean" default="false"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element name = "SegmentInfoDefault" type = "SegmentInfoDefaultType" minOccurs = "0"/>
<xs: element name = "Representation" type = "RepresentationType" minOccurs = "1" maxOccurs = "unbounded"/>
<xs: element name = "RepresentationGroup" type = "RepresentationGroupType" 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 = "start" type = "xs: duration"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "optional"/>
<xs: attribute name = "segmentAlignmentFlag" type = "xs: boolean" default = "false"/>
<xs: attribute name = "bitStreamSwitchingFlag" type = "xs: boolean" default = "false"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

하기에서, bandwidth의 변경된 정의를 설명한다.In the following, the changed definition of bandwidth will be described.

bandwidth의 정의는 Period 내의 representation의 연속적인 재생을 보장할 수 있다. 그러나, (만약, 존재한다면) 다음 Period 내의 representation(들)이 representation이 시작하기 전에 충분히 버퍼될 것인지에 대한 보장이 없다. Peroid들을 걸치는(across) 연속적인 재생을 보장하기 위해, bandwidth 속성의 시맨틱스가 하기의 표 91과 같이 변경될 수 있다.The definition of bandwidth can guarantee continuous reproduction of representations within a Period. However, there is no guarantee that the representation (s) in the next Period (if any) will be buffered sufficiently before the representation begins. To ensure continuous playback across the peroids, the semantics of the bandwidth attribute can be changed as shown in Table 91 below.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation RepresentationRepresentation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. id  id MM Period 내의 이 Representation을 위한 고유한 식별자.
문자열은 RFC1738에 따른 유효한 http-URL을 형성하도록 허용된 문자들만을 포함한다.
A unique identifier for this Representation within the Period.
The string contains only those characters allowed to form a valid http-URL according to RFC1738.
bandwidth  bandwidth MM 클라이언트가, 정확하게 minBufferTime 동안 버퍼링한 후, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장할 수 있도록, Representation(즉, Representation의 모든 세그먼트들의 콜렉션(collection))이 전달될 수 있는 초당 비트들(bits per second; bps) 단위의 가상적인(hypothetical) 제약 비트레이트 채널의 최소 대역폭. 또한, bandwidth의 값은 1) 현재 Period 및 다음 Period 간의 투명한 스플라이씽(splicing) 및 2) 다음 Period에서의 연속적인 재쟁을 가능하게 한다.Bits per second to which a Representation (i. E., A collection of all segments of a Representation) can be delivered, such that a client can buffer correctly for minBufferTime and then ensure that it has sufficient data for subsequent playout The minimum bandwidth of a hypothetical constrained bitrate channel in bits per second (bps). In addition, the value of bandwidth enables transparent splicing between the current Period and the next Period, and 2) subsequent contests in the next Period.

현재 Period의 모든 미디어 데이터가 다음 Period의 시작 전에 잘 수신될 수 있다. 따라서, 다음 Period의 모든 미디어 데이터는 다음 Period의 시작 이전에 (연속적인 재생을 위해) 충분히 버퍼될 수 있다.All media data of the current Period can be received well before the start of the next Period. Therefore, all media data of the next Period can be buffered sufficiently (for continuous playback) before the beginning of the next Period.

하기에서 bandwidth-The bandwidth- minBufferTime의minBufferTime 다중 쌍(pair)들이 설명된다. Multiple pairs are described.

동일한 MPD를 수신하는 상이한 장치들은 MPD 내의 minBufferTime을 존중(respect)한다. 그러나, 상이한 장치들은 초기에 버퍼된 미디어(또는, 상이한 최소 초기의 버퍼링 지연(delay)들)의 상이한 양을 필요로할 수 있다.Different devices receiving the same MPD respect the minBufferTime in the MPD. However, different devices may require different amounts of initially buffered media (or different minimal initial buffering delays).

예를 들어, 한 장치는 (고 대역폭을 지불(cost)하여) 적은 지연을 선호할 수 있고, 반면 저-대역폭 연결을 갖는 다른 장치는 큰 지연을 용인할 수 있다.For example, one device may prefer a low delay (by costing high bandwidth), while another device with a low-bandwidth connection may tolerate a large delay.

bandwidth-minBufferTime의 다중 쌍들을 갖는 것은 QoS 레벨들을 선택함에 있어서 큰 유동성을 제공할 수 있다.Having multiple pairs of bandwidth-minBufferTime can provide great flexibility in choosing QoS levels.

하기에서 1) minBufferTime의 상이한 값들/인스턴스들 및 2) minBufferTime의 상이한 값들에 대응하는 (각 representation에 대한) 상이한 대역폭 값들이 설명된다. 이러한 해법의 이점은 minBufferTime의 다중 값들에 대응하는 다증 MPD들이 필요하지 않다는 것에 있다.Different bandwidth values (for each representation) corresponding to 1) different values / instances of minBufferTime and 2) different values of minBufferTime are described below. The advantage of this solution is that no more MPDs corresponding to multiple values of minBufferTime are required.

이러한 목적을 위한 MPEG DASH의 스키마의 변경은 하기의 선택사항들과 같을 수 있다.Changes to the schema of the MPEG DASH for this purpose may be the same as the following options.

1) MPD의 최소 초기의 버퍼링 지연을 위한 더 많은 값들을 추가한다.1) Add more values for MPD's minimum initial buffering delay.

2) 각 representation에 대해, 상기의 최소 초기의 버퍼링 지연의 값들에 대응하는 대역폭 값들을 제공한다.2) For each representation, provide the bandwidth values corresponding to the values of the minimum initial buffering delay.

이러한 변경은 1) MPD 및 Period 레벨에서의 MinBufferTime 요소들 및 2) Representation 내의 BandwidthInfo 요소에 의해 구현될 수 있다.This change can be implemented by 1) the MinBufferTime elements at the MPD and Period level, and 2) the BandwidthInfo element in the Representation.

bandwidth-minBufferTime의 다른 쌍들도 bandwidth-minBufferTime의 쌍들을 제공하기 위해 보간될 수 있다.Other pairs of bandwidth-minBufferTime can also be interpolated to provide pairs of bandwidth-minBufferTime.

표 92는 MPD 레벨에서의 MinBufferTime의 시맨틱스다.Table 92 shows the semantics of MinBufferTime at the MPD level.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation MPDMPD 1One 미디어 프리젠테이션(Media Presentation)을 위한 미디어 정보(Media Presentation Description; MPD)를 나르는 루트 요소이다.Is a root element that carries Media Presentation Description (MPD) for media presentation. ............  ............ BaseURLBaseURL 0...N0 ... N baseURL 속성에 대신 또는 부가하여 MPD 레벨에서 사용될 수 있는 URL.A URL that can be used at the MPD level instead of or in addition to the baseURL attribute. minBufferTimeminBufferTime 0...N0 ... N 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다.And provides a minimum amount of initially buffered media needed to ensure smooth reproduction. id  id MM MinBufferTime 요소의 ID를 제공한다. id 속성의 값은 0보다 크다.Provides the ID of the MinBufferTime element. The value of the id attribute is greater than zero. vaule  vaule OO 1) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 시작에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.
2) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 임의의 Period의 시작에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.
3) 각 Representation이 Representation의 bandwidth 속성의 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 (미디어 프리젠테이션의 임의의 RAP들에서) 초기에 버퍼된 미디어의 최소 양을 제공한다.
1) Provide the minimum amount of buffered media initially required (at the beginning of the media presentation) to ensure smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above.
2) Provide the minimum amount of buffered media initially needed (at the beginning of any Period of the media presentation) to ensure smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above .
3) Provide the minimum amount of buffered media initially (in any RAPs of the media presentation) needed to guarantee smooth playback when each Representation is delivered with a value of the bandwidth attribute of the Representation or above.

표 93는 Period 레벨에서의 MinBufferTime의 시맨틱스다.Table 93 shows the semantics of MinBufferTime at the Period level.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation PeriodPeriod 1One Period의 정보를 제공한다.Provides information on the period. ............    ............ minBufferTimeminBufferTime 0...N0 ... N 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다. MinBufferTime이 있으면 MPD 레벨에서의 MinBufferTime 요소들은 무시된다.And provides a minimum amount of initially buffered media needed to ensure smooth reproduction. If MinBufferTime is present, the MinBufferTime elements at the MPD level are ignored. id  id MM MinBufferTime 요소의 ID를 제공한다. id 속성의 값은 0보다 크다.Provides the ID of the MinBufferTime element. The value of the id attribute is greater than zero. vaule  vaule OO 각 Representation이 Representation의 bandwidth 속성 값 또는 그 이상의 값으로 전달될 때, 부드러운 재생을 보장하기 위해 필요한 초기에 버퍼된 미디어의 최소 양을 제공한다.Provides the minimum amount of initially buffered media needed to ensure smooth playback when each Representation is delivered with a value of the bandwidth property or greater of the Representation.

표 94는 BandwidthInfo의 시맨틱스다.Table 94 shows the semantics of BandwidthInfo.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation RepresentationRepresentation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. ............    ............ SegmentInfoSegmentInfo 0101 Segment 접근 정보를 제공한다.Provide segment access information. BandwidthInfoBandwidthInfo 0...N0 ... N (minBufferTime 속성 또는 MinBufferTime 요소에 의해 제공되는) 초기에 버퍼된 미디어의 특정한 양에 대응하는 대역폭 정보를 제공한다.and provides bandwidth information corresponding to a particular amount of initially buffered media (provided by the minBufferTime attribute or the MinBufferTime element). id  id 0101 MPD의 MinBufferTime 요소의 ID를 가리킨다. 만약, id 속성의 값이 0이면, id 속성은 minBufferTime 속성에 의해 제공되는 초기에 버퍼된 미디어의 최소 양에 대응한다.Indicates the ID of the MinBufferTime element of the MPD. If the value of the id attribute is zero, the id attribute corresponds to the minimum amount of initially buffered media provided by the minBufferTime attribute. repBandwidth  repBandwidth 0...N0 ... N 연관된 MinBufferTime 요소 내에서 제공되는 초기에 버퍼된 미디어의 최소 양에 대응하는 representation을 위한 대역폭 값을 제공한다. 만약, 상기의 id 속성의 값이 0이면, Representation의 bandwidth 속성이 repBandwidth 속성 대신 사용된다.And provides a bandwidth value for a representation corresponding to the minimum amount of initially buffered media provided within the associated MinBufferTime element. If the value of the id attribute is 0, the bandwidth property of Representation is used instead of the repBandwidth property.

표 95 내지 표 97은 MinBufferTime 및 BandwidthInfo의 신택스이다.Tables 95 to 97 are the syntax of MinBufferTime and BandwidthInfo.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
......
<xs:complexType name="MPDtype">
<xs:sequence>
<xs:element name="ProgramInformation" type="ProgramInformationType" minOccurs="0"/>
<xs:element name="Period" type="PeriodType" maxOccurs="unbounded"/>
<xs:element name="BaseURL" type="BaseURLType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="MinBufferTime" type="MinBufferTimeType" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="PresentationType" default="OnDemand"/>
<xs:attribute name="availabilityStartTime" type="xs:dateTime"/>
<xs:attribute name="availabilityEndTime" type="xs:dateTime"/>
<xs:attribute name="mediaPresentationDuration" type="xs:duration"/>
<xs:attribute name="minimumUpdatePeriodMPD" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="optional"/>
<xs:attribute name="timeShiftBufferDepth" type="xs:duration"/>
<xs:attribute name="baseUrl" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="MinBufferTimeType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">
......
<xs: complexType name = "MPDtype">
<xs: sequence>
<xs: element name = "ProgramInformation" type = "ProgramInformationType" minOccurs = "0"/>
<xs: element name = "Period" type = "PeriodType" maxOccurs = "unbounded"/>
<xs: element name = "BaseURL" type = "BaseURLType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: element name = "MinBufferTime" type = "MinBufferTimeType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "type" type = "PresentationType" default = "OnDemand"/>
<xs: attribute name = "availabilityStartTime" type = "xs: dateTime"/>
<xs: attribute name = "availabilityEndTime" type = "xs: dateTime"/>
<xs: attribute name = "mediaPresentationDuration" type = "xs: duration"/>
<xs: attribute name = "minimumUpdatePeriodMPD" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "optional"/>
<xs: attribute name = "timeShiftBufferDepth" type = "xs: duration"/>
<xs: attribute name = "baseUrl" type = "xs: anyURI"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
<xs: complexType name = "MinBufferTimeType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string" use = "required"/>
<xs: attribute name = "value" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<!-- Period of a presentation -->
<xs:complexType name="PeriodType">
<xs:sequence>
<xs:element name="SegmentInfoDefault" type="SegmentInfoDefaultType" minOccurs="0"/>
<xs:element name="MinBufferTime" type="MinBufferTimeType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Representation" type="RepresentationType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="RepresentationGroup" type="RepresentationGroupType" 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="start" type="xs:duration"/>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="minBufferTime" type="xs:duration" use="optional"/>
<xs:attribute name="segmentAlignmentFlag" type="xs:boolean" default="false"/>
<xs:attribute name="bitStreamSwitchingFlag" type="xs:boolean" default="false"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
...
<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="BandwidthInfo" type="BandwidthInfoType"/>
<xs:element name="TrickMode" type="TrickModeType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<! - Period of a presentation ->
<xs: complexType name = "PeriodType">
<xs: sequence>
<xs: element name = "SegmentInfoDefault" type = "SegmentInfoDefaultType" minOccurs = "0"/>
<xs: element name = "MinBufferTime" type = "MinBufferTimeType" minOccurs = "0" maxOccurs = "unbounded"/>
<xs: element name = "Representation" type = "RepresentationType" minOccurs = "1" maxOccurs = "unbounded"/>
<xs: element name = "RepresentationGroup" type = "RepresentationGroupType" 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 = "start" type = "xs: duration"/>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: attribute name = "minBufferTime" type = "xs: duration" use = "optional"/>
<xs: attribute name = "segmentAlignmentFlag" type = "xs: boolean" default = "false"/>
<xs: attribute name = "bitStreamSwitchingFlag" type = "xs: boolean" default = "false"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
...
<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "BandwidthInfo" type = "BandwidthInfoType"/>
<xs: element name = "TrickMode" type = "TrickModeType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>

<!-- Bandwidth Info -->
<xs:complexType name="BandwidthInfoType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="repBandwidth" type="xs:unsignedInt"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:schema>
<! - Bandwidth Info ->
<xs: complexType name = "BandwidthInfoType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "repBandwidth" type = "xs: unsignedInt"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
</ xs: schema>

하기에서 각 RAP를 위한 bandwidth-The bandwidth- minBufferTime의minBufferTime 다중 쌍들이 설명된다. Multiple pairs are described.

일반적으로 representation의 각 RAP는 bandwidth-minBufferTime의 다중 쌍들을 제공받을 수 있다. 이러한 정보는 클라이언트가 (예컨대, 임의 접근(random accessing)의 경우에) RAP로부터 재생하기 전에 충분한 초기의 데이터를 버퍼하는 것을 가능하게 한다.In general, each RAP in the representation can be provided with multiple pairs of bandwidth-minBufferTime. This information enables the client to buffer sufficient initial data before playing back from the RAP (e.g., in the case of random accessing).

표 98은 RAPInfo의 시맨틱스를 설명한다.Table 98 describes the semantics of RAPInfo.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation RepresentationRepresentation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. ............  ............ SegmentInfoSegmentInfo 1One 세그먼트 접근 정보를 제공한다.Provides segment access information. RAPInfo  RAPInfo 0...10 ... 1 representation의 RAP에서의 대역폭 및 초기의 지연에 대한 정보를 제공한다.and provides information on the bandwidth and initial delay in the RAP of the representation. xlink:href  xlink: href OO 외부의 RAPInfo 요소에 대한 참조이다.It is a reference to an external RAPInfo element. RAPPointRAPPoint 1...N1 ... N RAP에서의 대역폭 및 초기의 지연의 쌍들을 제공한다.Provides pairs of bandwidth and initial delay in the RAP. timePoint    timePoint MM RAP의 시각 점을 제공한다. 이 시각 점은 representation의 시작에 상대적이다.Provides a visual point of RAP. This visual point is relative to the beginning of the representation. BandwidthDelayPairBandwidthDelayPair 1...N1 ... N RAP의 대역폭 및 초기의 지연의 쌍을 제공한다.Provides a pair of RAP's bandwidth and initial delay. id    id MM 쌍의 id를 제공한다.Provide the id of the pair. delay    delay MM RAP로부터 재생 이전에 가능한 초기의 지연을 제공한다.And provides an initial delay as early as possible from the RAP. bandwidth    bandwidth MM 상기 delay 값에 대응하는 대역폭을 제공한다.And provides a bandwidth corresponding to the delay value.

표 99 및 표 100은 RAPInfo의 신택스를 설명한다.Table 99 and Table 100 describe the syntax of RAPInfo.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">

<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="BandwidthInfo" type="BandwidthInfoType"/>
<xs:element name="TrickMode" type="TrickModeType" minOccurs="0"/>
<xs:element name="RAPInfo" type="RAPInfoType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns = "urn: 3GPP: ns: PSS: AdaptiveHTTPStreamingMPD: 2009">

<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element minOccurs = "0" maxOccurs = "unbounded" name = "BandwidthInfo" type = "BandwidthInfoType"/>
<xs: element name = "TrickMode" type = "TrickModeType" minOccurs = "0"/>
<xs: element name = "RAPInfo" type = "RAPInfoType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>

<xs:complexType name="RAPInfoType">
<xs:sequence>
<xs:element name="RAPPoint" type="RAPPointType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xlink:href"/>
</xs:complexType>
<xs:complexType name="RAPPointType">
<xs:sequence>
<xs:element name="BandwidthDelayPair" type="BandwidthDelayPairType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="timePoint" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- Bandwidth-Delay Pair -->
<xs:complexType name="BandwidthDelayPairType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="bandwidth" type="xs:unsignedInt"/>
<xs:attribute name="delay" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:schema>
<xs: complexType name = "RAPInfoType">
<xs: sequence>
<xs: element name = "RAPPoint" type = "RAPPointType" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute ref = "xlink: href"/>
</ xs: complexType>
<xs: complexType name = "RAPPointType">
<xs: sequence>
<xs: element name = "BandwidthDelayPair" type = "BandwidthDelayPairType" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "timePoint" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<! - Bandwidth-Delay Pair ->
<xs: complexType name = "BandwidthDelayPairType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "id" type = "xs: string"/>
<xs: attribute name = "bandwidth" type = "xs: unsignedInt"/>
<xs: attribute name = "delay" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>
</ xs: schema>

RAPInfo 요소 및 RAPInfo 요소의 자식 요소들은 컴팩트함을 위해 슈도-코드 포맷/박스들로 변환될 수 있다. 나아가, RAPInfo 요소 및 RAPInfo 요소의 자식 요소들의 슈도-코드 박스들은 분리되어 저장되거나 (예컨대, 각 RAP의 앞) 미디어 비트스트림 내로 삽입될 수 있다.The child elements of the RAPInfo element and the RAPInfo element can be converted into pseudo-code format / boxes for compactness. Furthermore, the pseudo-code boxes of the RAPInfo element and the child elements of the RAPInfo element may be stored separately (e.g., before each RAP) or inserted into the media bitstream.

하기에서, 재생 커브(In the following, PlayoutPlayout Curve)가 설명된다. Curve) is described.

각 RAP에 대한 bandwidth-delay 정보를 제공하는 것은 많은 비용을 소모할 수 있다. 또 다른 해법은 representation의 재생 커브의 근사를 표현하는 것이다. 재생 커브(또는 재생 커브의 근사) 및 (특정한 초기의 지연에 대응하는) 선택된 대역폭을 알면, 각 RAP의 초기 지연은 재생 커브의 타임 오프셋 및 선택된 대역폭을 표현하는 커브로서 쉽게 계산될 수 있다..Providing bandwidth-delay information for each RAP can be costly. Another solution is to express an approximation of the reproduction curve of the representation. Knowing the playback bandwidth (or approximation of the playback curve) and the selected bandwidth (corresponding to a particular initial delay), the initial delay of each RAP can be easily calculated as a curve representing the time offset and the selected bandwidth of the playback curve.

표 101은 AppPlayoutCurve의 시맨틱스를 설명한다.Table 101 describes the semantics of AppPlayoutCurve.

요소 또는 속성 명칭 Element or attribute name 사용use 설명Explanation Representation  Representation MM Representation 요소는 Representation의 설명을 포함한다.The Representation element contains a description of the Representation. ............    ............ SegmentInfoSegmentInfo 0...N0 ... N Segment 접근 정보를 제공한다.Provide segment access information. AppPlayoutCurveAppPlayoutCurve 0...10 ... 1 representation의 (예컨대 누적적인(cumulative) 데이터 대(vs.) 시간의) 재생 커브의 조각-별(piece-wise) 근사치 커브를 제공한다.wise approximation curve of the playback curve (e.g., of cumulative data versus time) of the representation. xlink:href    xlink: href OO 외부의 AppPlayoutCurve 요소에 대한 참조이다.A reference to the external AppPlayoutCurve element. shift    shift OO 근사 커브의 시작 시각을 제공한다. 이 시각은 실제의 재생 커브의 시작에 상대적이다.Provides the start time of the approximate curve. This time is relative to the start of the actual reproduction curve. IntervalInterval 1...N1 ... N 근사 커브의 인터벌을 설명한다.The interval of the approximate curve will be described. datasize      datasize MM 인터벌의 증가된 데이터 크기를 설명한다.Describe the increased data size of the interval. duration      duration MM 인터벌의 지속시간을 가리킨다.Indicates the duration of the interval.

표 102는 IntervalBandwidth의 신택스를 나타낸다.Table 102 shows the syntax of IntervalBandwidth.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:MPEG:ns:DASH"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="urn:MPEG:ns:DASH">
......
<xs:complexType name="RepresentationType">
<xs:complexContent>
<xs:extension base="RepresentationBaseType">
<xs:sequence>
<xs:element name="SegmentInfo" type="SegmentInfoType"/>
<xs:element name="AppPlayoutCurve" type="AppPlayoutCurveType" minOccurs="0"/>
<xs:element name="TrickMode" type="TrickModeType" 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="depid" type="StringVectorType"/>
<xs:attribute name="default" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AppPlayoutCurveType">
<xs:sequence>
<xs:element name="Interval" type="IntervalType" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xlink:href"/>
<xs:attribute name="shift" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<xs:complexType name="IntervalType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="datasize" type="xs:unsignedInt"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

</xs:schema>
<? xml version = "1.0" encoding = "UTF-8"?>
<xs: schema targetNamespace = "urn: MPEG: ns: DASH"
attributeFormDefault = "unqualified"
elementFormDefault = "qualified"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
xmlns: xlink = "http://www.w3.org/1999/xlink"
xmlns = "urn: MPEG: ns: DASH">
......
<xs: complexType name = "RepresentationType">
<xs: complexContent>
<xs: extension base = "RepresentationBaseType">
<xs: sequence>
<xs: element name = "SegmentInfo" type = "SegmentInfoType"/>
<xs: element name = "AppPlayoutCurve" type = "AppPlayoutCurveType" minOccurs = "0"/>
<xs: element name = "TrickMode" type = "TrickModeType" 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 = "depid" type = "StringVectorType"/>
<xs: attribute name = "default" type = "xs: boolean"/>
</ xs: extension>
</ xs: complexContent>
</ xs: complexType>
<xs: complexType name = "AppPlayoutCurveType">
<xs: sequence>
<xs: element name = "Interval" type = "IntervalType" maxOccurs = "unbounded"/>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute ref = "xlink: href"/>
<xs: attribute name = "shift" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

<xs: complexType name = "IntervalType">
<xs: sequence>
<xs: any namespace = "## other" processContents = "lax" minOccurs = "0" maxOccurs = "unbounded"/>
</ xs: sequence>
<xs: attribute name = "datasize" type = "xs: unsignedInt"/>
<xs: attribute name = "duration" type = "xs: duration"/>
<xs: anyAttribute namespace = "## other" processContents = "lax"/>
</ xs: complexType>

</ xs: schema>

도 5는 본 발명의 일 실시예에 따른 클라이언트(100)의 구조도이다.5 is a structural diagram of a client 100 according to an embodiment of the present invention.

제어부(510)는 단계(130) 및 단계(140)을 수행한다. 즉, 제어부(510)는 인터벌에 대한 메타데이터를 처리하고, 처리에 기반하여 인터벌에 대해 적합한 상기 프래그먼트를 선택하는The control unit 510 performs steps 130 and 140. [ That is, the control unit 510 processes the metadata for the interval, and selects the fragment suitable for the interval based on the process

송수신부(520)는 단계(120), 단계(140) 및 단계(150)을 수행한다. 즉, 송수신부(520)는 서버(110)로부터 콘텐츠의 인터벌에 대한 메타데이터를 수신하고, 인터벌에 대해 적합한 프래그먼트를 서버에게 요청하고, 서버로부터 상기 프래그먼트를 수신한다.The transceiver 520 performs step 120, step 140 and step 150. That is, the transceiver 520 receives the metadata of the interval of the content from the server 110, requests the server for the appropriate fragment for the interval, and receives the fragment from the server.

도 6은 본 발명의 일 실시예에 따른 클라이언트(100)의 구조도이다.6 is a structural diagram of a client 100 according to an embodiment of the present invention.

클라이언트(100)는 접근 엔진(610) 및 미디어 엔진(620)을 포함한다.The client 100 includes an access engine 610 and a media engine 620.

*접근 엔진(610)은 DASH 접근 엔진일 수 있다.The access engine 610 may be a DASH access engine.

접근 엔진(610)은 서버(110)로부터, 메타데이터(예컨대, MPD)를 수신한다.The access engine 610 receives metadata (e.g., MPD) from the server 110.

접근 엔진(610)은, 요청들을 구성하고, 구성된 요청들을 서버(110)에게 발행(issue)한다.The access engine 610 configures the requests and issues the configured requests to the server 110.

접근 엔진(610)은, 콘텐츠(예켄더, 세그먼트들 또는 세그먼트들의 일부들)을 서버(110)로부터 수신한다.The access engine 610 receives content (e.g., kender, segments, or segments) from the server 110.

접근 엔진(610)은 콘텐츠를 미디어 엔진(620)에게 제공한다.The access engine 610 provides the content to the media engine 620.

접근 엔진(610)의 출력은, MPEG 컨테니어(container)(예컨대, ISO/IEC 14492-12 ISO 베이스 미디어 파일 포멧 또는 ISO/IEC 13818-2 MPEG-2 트랜스포트 스트림)의 미디어(또는, 미디어의 일부들)을 포함할 수 있다. 또한, 접근 엔진(610)의 출력은 상기 미디어의 내부적(internal) 타이밍을 미디어 프리젠테이션의 타임 라인으로 사상(map)하는 타이밍 정보를 포함할 수 있다.The output of the access engine 610 is stored in the media (or media) of an MPEG container (e.g., ISO / IEC 14492-12 ISO Base Media File Format or ISO / IEC 13818-2 MPEG-2 Transport Stream) &Lt; / RTI &gt; In addition, the output of the access engine 610 may include timing information to map the internal timing of the media to the timeline of the media presentation.

미디어 엔진(610)은 제공된 콘텐츠를 재생한다. 즉, 미디어 엔진(610)은 접근 엔진(610)으로부터 출력된 미디어 및 타이밍 정보를 사용하여 미디어를 출력할 수 있다.The media engine 610 plays the provided content. That is, the media engine 610 may output the media using the media and timing information output from the access engine 610. [

앞서 도 1 내지 도 4를 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.The technical contents according to one embodiment of the present invention described above with reference to Figs. 1 to 4 can be directly applied to this embodiment as well. Therefore, a more detailed description will be omitted below.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment of the present invention can be implemented in the form of a program command which can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

100: 클라이언트
110: 서버
100: Client
110: Server

Claims (14)

클라이언트를 위한 미디어 콘텐츠 제공 방법에 있어서,
미디어 콘텐츠와 관련된 미디어 프리젠테이션의 양식화된(formalized) 설명(description)인 미디어 정보(media presentation description; MPD)를 획득하는 단계;
상기 미디어 정보에 기초하여 미디어 콘텐츠에 대한 요청을 서버에 전달하는 단계
상기 서버로부터 스트리밍 형태로 미디어 콘텐츠의 세그먼트를 수신하는 단계
를 포함하고,
상기 미디어 프리젠테이션은, 하나 이상의 주기, 하나 이상의 레프리젠테이션 및 하나 이상의 세그먼트를 포함하고,
상기 미디어 정보는, 클라이언트가, 최소 버퍼 시간(minBufferTime) 이후에, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장하기 위한 대역폭 속성을 포함하는 미디어 콘텐츠 제공 방법.
A method of providing media content for a client,
Obtaining a media presentation description (MPD) that is a formalized description of a media presentation associated with the media content;
Delivering a request for media content to the server based on the media information
Receiving a segment of media content in streaming form from the server
Lt; / RTI &gt;
Wherein the media presentation comprises one or more periods, one or more representations and one or more segments,
Wherein the media information comprises a bandwidth attribute to ensure that the client has sufficient data for subsequent playout after a minimum buffer time (minBufferTime).
삭제delete 제1항에 있어서,
상기 미디어 정보는,
세그먼트를 위한 자원 식별자들인 HTTP-URL을 알리기 위한 포맷을 정의하며, 식별된 자원들에 대한 컨텍스트를 제공하고, URL은 바이트 범위에 의해 제한되는 미디어 콘텐츠 제공 방법.
The method according to claim 1,
The media information includes:
Defining a format for announcing HTTP-URLs, resource identifiers for segments, providing a context for identified resources, and wherein the URL is limited by a byte range.
제1항에 있어서,
상기 미디어 정보는, (i) 프레임 레이트, (ii) 비디오의 템포럴레이어, (iii) 초당 시간 유닛의 개수를 나타내는 타임스케일, 및 (iv) 연속적인 세그먼트들의 개수 중 적어도 하나를 포함하는 미디어 콘텐츠 제공 방법.
The method according to claim 1,
Wherein the media information comprises at least one of: (i) a frame rate, (ii) a temporal layer of video, (iii) a time scale representing the number of time units per second, and (iv) Delivery method.
제1항에 있어서,
상기 최소 버퍼 시간은 상기 미디어 콘텐츠가 상기 미디어 정보의 대역폭 속성의 값 또는 상기 대역폭 속성의 값 이상으로 연속적으로 전송될 때 상기 미디어 콘텐츠를 재생하기 위해 필요한 초기의 버퍼된 미디어의 최소 양을 가리키는, 미디어 콘텐츠 제공 방법.
The method according to claim 1,
The minimum buffer time indicating a minimum amount of initial buffered media needed to play the media content when the media content is continuously transmitted at or above the value of the bandwidth attribute of the media information or the value of the bandwidth attribute. Content providing method.
제5항에 있어서,
상기 대역폭 속성은 초당 비트들(bits per second; bps) 단위의 가상적인(hypothetical) 상수(constant) 비트레이트 채널의 대역폭인, 미디어 콘텐츠 제공 방법.
6. The method of claim 5,
Wherein the bandwidth property is a bandwidth of a hypothetical constant bit rate channel in units of bits per second (bps).
미디어 콘텐츠를 제공하는 서버가 수행하는 미디어 콘텐츠 제공 방법에 있어서,
클라이언트로부터 미디어 콘텐츠와 관련된 미디어 프리젠테이션의 양식화된(formalized) 설명(description)인 미디어 정보(media presentation description; MPD)에 기초하여 미디어 콘텐츠에 대한 요청을 수신하는 단계;
상기 요청에 대응하여 스트리밍 형태로 미디어 콘텐츠의 세그먼트를 클라이언트에 제공하는 단계
를 포함하고,
상기 미디어 프리젠테이션은, 하나 이상의 주기, 하나 이상의 레프리젠테이션 및 하나 이상의 세그먼트를 포함하고,
상기 미디어 정보는, 클라이언트가, 최소 버퍼 시간(minBufferTime) 이후에, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장하기 위한 대역폭 속성을 포함하는 미디어 콘텐츠 제공 방법.
A media content providing method performed by a server for providing a media content,
The method comprising: receiving a request for media content based on a media presentation description (MPD) that is a formalized description of a media presentation associated with the media content from a client;
Providing a segment of media content to a client in streaming form in response to the request
Lt; / RTI &gt;
Wherein the media presentation comprises one or more periods, one or more representations and one or more segments,
Wherein the media information comprises a bandwidth attribute to ensure that the client has sufficient data for subsequent playout after a minimum buffer time (minBufferTime).
삭제delete 제7항에 있어서,
상기 미디어 정보는,
세그먼트를 위한 자원 식별자들인 HTTP-URL을 알리기 위한 포맷을 정의하며, 식별된 자원들에 대한 컨텍스트를 제공하고, URL은 바이트 범위에 의해 제한되는 미디어 콘텐츠 제공 방법.
8. The method of claim 7,
The media information includes:
Defining a format for announcing HTTP-URLs, resource identifiers for segments, providing a context for identified resources, and wherein the URL is limited by a byte range.
제7항에 있어서,
상기 미디어 정보는, (i) 프레임 레이트, (ii) 비디오의 템포럴레이어, (iii) 초당 시간 유닛의 개수를 나타내는 타임스케일, 및 (iv) 연속적인 세그먼트들의 개수 중 적어도 하나를 포함하는 미디어 콘텐츠 제공 방법.
8. The method of claim 7,
Wherein the media information comprises at least one of: (i) a frame rate, (ii) a temporal layer of video, (iii) a time scale representing the number of time units per second, and (iv) Delivery method.
제7항에 있어서,
상기 최소 버퍼 시간은 상기 미디어 콘텐츠가 상기 미디어 정보의 대역폭 속성의 값 또는 상기 대역폭 속성의 값 이상으로 연속적으로 전송될 때 상기 미디어 콘텐츠를 재생하기 위해 필요한 초기의 버퍼된 미디어의 최소 양을 가리키는, 미디어 콘텐츠 제공 방법.
8. The method of claim 7,
The minimum buffer time indicating a minimum amount of initial buffered media needed to play the media content when the media content is continuously transmitted at or above the value of the bandwidth attribute of the media information or the value of the bandwidth attribute. Content providing method.
제11항에 있어서,
상기 대역폭 속성은 초당 비트들(bits per second; bps) 단위의 가상적인(hypothetical) 상수(constant) 비트레이트 채널의 대역폭인, 미디어 콘텐츠 제공 방법.
12. The method of claim 11,
Wherein the bandwidth property is a bandwidth of a hypothetical constant bit rate channel in units of bits per second (bps).
미디어 콘텐츠를 수신하는 클라이언트에 있어서,
미디어 콘텐츠와 관련된 미디어 프리젠테이션의 양식화된(formalized) 설명(description)인 미디어 정보(media presentation description; MPD)를 획득하고, 상기 미디어 정보에 기초하여 미디어 콘텐츠에 대한 요청을 서버에 전달하고, 상기 서버로부터 스트리밍 형태로 미디어 콘텐츠의 세그먼트를 수신하는 프로세서를 포함하고,
상기 미디어 프리젠테이션은, 하나 이상의 주기, 하나 이상의 레프리젠테이션 및 하나 이상의 세그먼트를 포함하고,
상기 미디어 정보는, 클라이언트가, 최소 버퍼 시간(minBufferTime) 이후에, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장하기 위한 대역폭 속성을 포함하는 클라이언트.
A client for receiving media content,
Acquiring a media presentation description (MPD), which is a formalized description of a media presentation associated with the media content, delivering a request for media content to the server based on the media information, And a processor for receiving a segment of media content in streaming form from the processor,
Wherein the media presentation comprises one or more periods, one or more representations and one or more segments,
Wherein the media information includes a bandwidth attribute to ensure that the client has sufficient data for subsequent playout after a minimum buffer time (minBufferTime).
미디어 콘텐츠를 제공하는 서버에 있어서,
클라이언트로부터 미디어 콘텐츠와 관련된 미디어 프리젠테이션의 양식화된(formalized) 설명(description)인 미디어 정보(media presentation description; MPD)에 기초하여 미디어 콘텐츠에 대한 요청을 수신하고, 상기 요청에 대응하여 스트리밍 형태로 미디어 콘텐츠의 세그먼트를 클라이언트에 제공하는 프로세서
를 포함하고,
상기 미디어 정보는, 하나 이상의 주기와 하나 이상의 레프리젠테이션 및 하나 이상의 세그먼트를 포함하고,
상기 미디어 정보는, 클라이언트가, 최소 버퍼 시간(minBufferTime) 이후에, 연속적인 재생(playout)을 위한 충분한 데이터를 갖는 것을 보장하기 위한 대역폭 속성을 포함하는 서버.
A server for providing media content,
Receiving a request for media content based on a media presentation description (MPD), which is a formalized description of a media presentation associated with the media content from a client, and in response to the request, A processor for providing a segment of content to a client
Lt; / RTI &gt;
Wherein the media information comprises one or more periods, one or more representations and one or more segments,
Wherein the media information includes a bandwidth attribute to ensure that the client has sufficient data for subsequent playout after a minimum buffer time (minBufferTime).
KR1020180077815A 2010-07-20 2018-07-04 Apparatus and method for providing streaming contents KR101956113B1 (en)

Applications Claiming Priority (18)

Application Number Priority Date Filing Date Title
US36586010P 2010-07-20 2010-07-20
US61/365,860 2010-07-20
US36620310P 2010-07-21 2010-07-21
US61/366,203 2010-07-21
US37526210P 2010-08-20 2010-08-20
US61/375,262 2010-08-20
US38027710P 2010-09-06 2010-09-06
US61/380,277 2010-09-06
US39032810P 2010-10-06 2010-10-06
US61/390,328 2010-10-06
US40567410P 2010-10-22 2010-10-22
US61/405,674 2010-10-22
US41446210P 2010-11-17 2010-11-17
US61/414,462 2010-11-17
US41793110P 2010-11-30 2010-11-30
US61/417,931 2010-11-30
US201161434036P 2011-01-19 2011-01-19
US61/434,036 2011-01-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180015874A Division KR101877007B1 (en) 2010-07-20 2018-02-08 Apparatus and method for providing streaming contents

Publications (2)

Publication Number Publication Date
KR20180082381A KR20180082381A (en) 2018-07-18
KR101956113B1 true KR101956113B1 (en) 2019-03-12

Family

ID=50644275

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020140002413A KR101829445B1 (en) 2010-07-20 2014-01-08 Apparatus and method for providing streaming contents
KR1020140125870A KR101829448B1 (en) 2010-07-20 2014-09-22 Apparatus and method for providing streaming contents
KR1020180015874A KR101877007B1 (en) 2010-07-20 2018-02-08 Apparatus and method for providing streaming contents
KR1020180077815A KR101956113B1 (en) 2010-07-20 2018-07-04 Apparatus and method for providing streaming contents

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020140002413A KR101829445B1 (en) 2010-07-20 2014-01-08 Apparatus and method for providing streaming contents
KR1020140125870A KR101829448B1 (en) 2010-07-20 2014-09-22 Apparatus and method for providing streaming contents
KR1020180015874A KR101877007B1 (en) 2010-07-20 2018-02-08 Apparatus and method for providing streaming contents

Country Status (1)

Country Link
KR (4) KR101829445B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017007230A1 (en) * 2015-07-07 2017-01-12 엘지전자(주) Broadcast signal transmission and reception device and method
KR20220132155A (en) * 2021-03-23 2022-09-30 삼성전자주식회사 Electronic device to encode video with max quantum parameter control and the method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Universal Mobile Telecommunications System (UMTS); LTE; Transparent end-to-end Packet-switched Streaming Service (PSS); Protocols and codecs(3GPP TS 26.234 version 9.3.0 Release 9), 18 June 2010.*

Also Published As

Publication number Publication date
KR101829448B1 (en) 2018-03-29
KR20180082381A (en) 2018-07-18
KR20180019624A (en) 2018-02-26
KR20140131487A (en) 2014-11-13
KR101877007B1 (en) 2018-07-12
KR101829445B1 (en) 2018-03-29
KR20140033182A (en) 2014-03-17

Similar Documents

Publication Publication Date Title
US10819815B2 (en) Apparatus and method for providing streaming content
KR101206698B1 (en) Apparatus and method for providing streaming contents
KR101206111B1 (en) Apparatus and method for providing streaming contents
US20180288125A1 (en) Apparatus and method for providing streaming content
KR20190128120A (en) Apparatus and method for providing streaming contents
KR101956113B1 (en) Apparatus and method for providing streaming contents
KR102272853B1 (en) Apparatus and method for providing streaming contents

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant