KR20150144458A - Method and device for delivery of scalable digital content - Google Patents

Method and device for delivery of scalable digital content Download PDF

Info

Publication number
KR20150144458A
KR20150144458A KR1020140073171A KR20140073171A KR20150144458A KR 20150144458 A KR20150144458 A KR 20150144458A KR 1020140073171 A KR1020140073171 A KR 1020140073171A KR 20140073171 A KR20140073171 A KR 20140073171A KR 20150144458 A KR20150144458 A KR 20150144458A
Authority
KR
South Korea
Prior art keywords
data segments
layer data
base layer
server
enhancement layer
Prior art date
Application number
KR1020140073171A
Other languages
Korean (ko)
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 알까뗄 루슨트
Priority to KR1020140073171A priority Critical patent/KR20150144458A/en
Publication of KR20150144458A publication Critical patent/KR20150144458A/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • 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/2385Channel allocation; Bandwidth allocation
    • 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/2405Monitoring of the internal components or processes of the server, e.g. server load

Landscapes

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

Abstract

The present invention relates to a method for requesting a digital content including the steps of: setting a first communications connection with a server; setting a second communications connection with the server; transmitting a first request regarding a plurality of basic layer data segments through the first communications connection; and transmitting at least one second request regarding at least one enhanced layer data segment through the second communications connection, wherein at least one layer data segment and at least a portion of the basic layer data segments form at least a portion of the encoded stream of the digital content.

Description

스케일러블 디지털 콘텐츠의 전달을 위한 방법 및 디바이스{METHOD AND DEVICE FOR DELIVERY OF SCALABLE DIGITAL CONTENT}[0001] METHOD AND DEVICE FOR DELIVERY OF SCALABLE DIGITAL CONTENT [0002]

본 개시내용은 일반적으로 스케일러블(scalable) 디지털 콘텐츠의 스트리밍에 관한 것이다.This disclosure relates generally to the streaming of scalable digital content.

통신 기술의 최근 진보는 단순한 텍스트 및 음성 통신을 넘어 멀티미디어 통신의 증가를 초래했다. 특히, 인터넷의 급증으로, 넷플릭스(Netflix), 훌루(Hulu), 유튜브(YouTube) 등과 같은 다양한 온라인 멀티미디어 콘텐츠 제공자들이 최근 몇년 사이에 급속히 생겨났다. 이에 더해, 디지털 멀티미디어 및 다른 관련 기술들의 개발로 인해, 이러한 온라인 멀티미디어 콘텐츠 제공자들로부터의 콘텐츠를 수신할 수 있는 최종-사용자 디바이스들(end-user devices)의 범위는 몇몇 예를 들자면, 개인용 컴퓨터로부터 스마트폰, 디지털 텔레비전, 및 비디오 게임 콘솔로 확대되었다. 최근, 멀티미디어 트래픽은 인터넷의 대역폭의 전부는 아니더라도 적어도 상당한 부분을 차지한다.Recent advances in communication technology have resulted in an increase in multimedia communications beyond simple text and voice communications. In particular, with the surge in the Internet, a variety of online multimedia content providers such as Netflix, Hulu, and YouTube have emerged in recent years. In addition, due to the development of digital multimedia and other related technologies, the range of end-user devices capable of receiving content from such on-line multimedia content providers may range, for example, from a personal computer Smart phones, digital televisions, and video game consoles. In recent years, multimedia traffic occupies at least a substantial portion of the bandwidth of the Internet, if not all of it.

위 전개에 발맞추어, 온라인 멀티미디어 콘텐츠 제공자들에 의해 제공되는 서비스를 이용하는 최종-사용자가 최선의 경험을 할 수 있도록 인터넷을 통한 디지털 콘텐츠의 전달을 최적화하기 위한 지속적인 노력이 있어왔다. 멀티미디어 콘텐츠는 가변적인 품질로 그 최종-사용자들에게 제공될 수 있다. 예를 들어, 유튜브는 현재 360p, 480p, 720p와 같은 다양한 디스플레이 해상도로 비디오 콘텐츠를 제공한다. 그러나, 전달되는 콘텐츠의 품질은 콘텐츠를 요청하는 최종-사용자 디바이스의 성능(예를 들어, 최종-사용자 디바이스의 처리 능력 및 디스플레이의 크기) 및 디지털 콘텐츠 전달 당시의 이용가능한 네트워크 대역폭과 같은 다양한 인자들에 따라 각각의 전달시 마다 달라질 수 있고, 심지어 콘텐츠를 전달하는 동안에도 일정한 조정이 필요할 수 있다.In keeping with the above developments, there has been a continuing effort to optimize the delivery of digital content over the Internet so that end-users using the services provided by online multimedia content providers may have the best experience. The multimedia content can be provided to the end-users with variable quality. For example, YouTube currently offers video content at various display resolutions such as 360p, 480p, and 720p. However, the quality of the content delivered may depend on various factors such as the performance of the end-user device requesting the content (e.g., the processing power of the end-user device and the size of the display) and the available network bandwidth at the time of digital content delivery , And may require some adjustment even during delivery of the content.

개시된 내용의 실시예들은 통신 네트워크의 대역폭을 낭비하지 않으면서 빠르고 효율적인 방식으로 통신 네트워크를 통해 전달되는 디지털 콘텐츠의 품질을 동적으로 조정하는 방법들 및 디바이스들을 제공하는 것에 관한 것이다. 후속하는 요약은 개시된 내용의 다양한 실시예의 일부 측면의 기본적인 이해를 제공하기 위해서 개시된 내용을 간략하게 요약한 것이다. 이 요약은 개시된 내용을 빠짐 없이 요약한 것이 아니다. 그것은 개시된 내용의 핵심 또는 중요 요소를 식별하기 위한 것도 아니고, 개시된 내용의 범위를 기술하기 위한 것도 아니다. 그 유일한 목적은 추후 논의되는 더욱 상세한 설명에 대한 서문으로서 간략화된 형태로 일부 개념들을 제시하는 것이다.Embodiments of the disclosed subject matter relate to providing methods and devices for dynamically adjusting the quality of digital content delivered over a communications network in a fast and efficient manner without wasting bandwidth of the communications network. The following summary is a brief summary of the disclosure in order to provide a basic understanding of some aspects of the various embodiments of the disclosure. This summary is not an exhaustive summary of the disclosure. It is not intended to identify key or critical elements of the disclosed subject matter nor to delineate the scope of the disclosed subject matter. Its sole purpose is to present some concepts in a simplified form as a preface to a more detailed explanation to be discussed later.

일부 실시예들은 예를 들어, 디지털 콘텐츠를 요청하기 위한 방법을 제공한다. 그러한 실시예들에 있어서, 위 방법은 서버와의 제1 통신 접속을 설정하는 단계; 상기 서버와의 제2 통신 접속을 설정하는 단계; 상기 제1 통신 접속을 통해 복수의 기본 계층 데이터 세그먼트에 대한 제1 요청을 상기 서버로 송신하는 단계; 및 상기 제2 통신 접속을 통해 하나 이상의 향상 계층 데이터 세그먼트에 대한 하나 이상의 제2 요청을 상기 서버로 송신하는 단계 - 상기 하나 이상의 향상 계층 데이터 세그먼트와 상기 복수의 기본 계층 데이터 세그먼트의 적어도 일부는 상기 디지털 콘텐츠의 인코딩된 스트림의 적어도 일부를 구성함 - 를 포함할 수 있다.Some embodiments provide a method for requesting digital content, for example. In such embodiments, the method comprises: establishing a first communication connection with the server; Establishing a second communication connection with the server; Sending a first request for a plurality of base layer data segments over the first communication connection to the server; And transmitting at least one second request for one or more enhancement layer data segments over the second communication connection to the server, wherein the at least a portion of the one or more enhancement layer data segments and the plurality of base layer data segments comprises the digital And configure at least a portion of the encoded stream of content.

위 실시예들에 있어서, 상기 하나 이상의 향상 계층 데이터 세그먼트를 상기 복수의 기본 계층 데이터 세그먼트의 상기 적어도 일부와 함께 수신해서 디코딩하여 상기 인코딩된 스트림의 디코딩된 스트림을 제공하는 단계를 더 포함할 수 있다. 상기 제1 및 제2 통신 접속은 각각 상기 기본 계층 및/또는 향상 계층 데이터 세그먼트들의 순서화되고, 오류-검사되고 그리고/또는 신뢰가능한 전달을 제공하는 전송층 접속일 수 있다. 상기 제1 요청을 송신하는 단계는 프로그레시브 스트리밍 모드로 상기 제1 통신 접속을 통해 상기 복수의 데이터 세그먼트를 송신한도록 하는 요청을 상기 서버로 송신하는 단계를 포함할 수 있다. 위 방법은 상기 기본 계층 및 향상 계층 데이터 세그먼트들을 버퍼에 저장하는 단계; 상기 버퍼의 풀니스(fullness) 레벨을 결정하는 단계; 및 상기 버퍼의 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계를 더 포함할 수 있다. 상기 서버와 통신하는 단계는 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하는 단계 - 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신됨 - 를 포함할 수 있다. 상기 서버와 통신하는 단계는 상기 버퍼의 풀니스 레벨에 반비례하도록 상기 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계를 포함할 수 있다. 상기 하나 이상의 제2 요청을 송신하는 단계는 적응적 스트리밍 방식에 기초해서 상기 제2 통신 접속을 통해 상기 하나 이상의 제2 요청을 송신하는 단계를 포함할 수 있다. 위 방법은 상기 기본 계층 및 향상 계층 데이터 세그먼트들을 버퍼에 저장하는 단계; 이용가능한 네트워크 대역폭을 추정하는 단계; 상기 추정된 이용가능한 네트워크 대역폭 및 상기 버퍼의 풀니스 레벨에 기초하여, 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계를 더 포함할 수 있다. 상기 이용가능한 네트워크 대역폭을 추정하는 단계는 상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하는 단계를 포함할 수 있다. 상기 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계는 상기 추정된 이용가능한 네트워크 대역폭에 기초하여 상기 제2 통신 접속에 할당될 네트워크 대역폭을 결정하는 단계를 포함할 수 있다.In the above embodiments, the method may further comprise receiving and decoding the one or more enhancement layer data segments along with the at least a portion of the plurality of base layer data segments to provide a decoded stream of the encoded stream . The first and second communication connections may each be a transport layer connection that provides ordered, error-checked, and / or reliable delivery of the base layer and / or enhancement layer data segments. The transmitting the first request may include sending a request to the server to transmit the plurality of data segments via the first communication connection in a progressive streaming mode. The method includes storing the base layer and enhancement layer data segments in a buffer; Determining a fullness level of the buffer; And communicating with the server to limit the transfer rate of the plurality of base layer data segments based on the level of integrity of the buffer. Wherein communicating with the server comprises modulating a temporal spacing between a plurality of acknowledgments (ACKs) to be sent to the server, each of the plurality of acknowledgments responding to successful receipt of at least some of the plurality of base layer data segments Transmitted < / RTI > Communicating with the server may include communicating with the server to limit the transfer rate to inversely proportionate to the level of integrity of the buffer. Wherein transmitting the one or more second requests may include transmitting the one or more second requests over the second communication connection based on an adaptive streaming scheme. The method includes storing the base layer and enhancement layer data segments in a buffer; Estimating an available network bandwidth; And determining one or more enhancement layer data segments to be subsequently received based on the estimated available network bandwidth and the integrity level of the buffer. Estimating the available network bandwidth may include estimating available network bandwidth using the first communication connection. The step of determining the one or more enhancement layer data segments to be subsequently received may comprise determining a network bandwidth to be allocated to the second communication connection based on the estimated available network bandwidth.

다른 실시예들은, 예를 들어, 디지털 콘텐츠를 제공하기 위한 방법을 제공할 수 있다. 상기 방법은 제1 통신 접속을 통해 클라이언트로부터 복수의 기본 계층 데이터 세그먼트에 대한 제1 요청을 수신하는 단계; 상기 제1 요청에 응답하여 상기 클라이언트에 상기 제1 통신 접속을 통해 상기 복수의 기본 계층 데이터 세그먼트를 순차적으로 송신하는 단계; 제2 통신 접속을 통해 상기 클라이언트로부터 하나 이상의 향상 계층 데이터 세그먼트에 대한 적어도 하나의 제2 요청을 수신하는 단계 - 상기 하나 이상의 향상 계층 데이터 세그먼트와 상기 복수의 기본 계층 데이터 세그먼트의 적어도 일부는 상기 디지털 콘텐츠의 인코딩된 스트림의 적어도 일부를 구성함 - ; 및 상기 적어도 하나의 제2 요청에 응답하여 상기 클라이언트에 상기 제2 통신 접속을 통해 상기 하나 이상의 향상 계층 데이터 세그먼트를 송신하는 단계를 포함하할 수 있다. Other embodiments may provide a method for providing digital content, for example. The method includes receiving a first request for a plurality of base layer data segments from a client over a first communication connection; Sequentially transmitting the plurality of base layer data segments via the first communication connection to the client in response to the first request; Receiving at least one second request for one or more enhancement layer data segments from the client over a second communication connection, the at least one enhancement layer data segment and at least a portion of the plurality of base layer data segments being associated with the digital content ≪ / RTI > And transmitting the one or more enhanced layer data segments over the second communication connection to the client in response to the at least one second request.

위 실시예들에 있어서, 상기 제1 통신 접속 및 제2 통신 접속은 각각 상기 기본 계층 및/또는 향상 계층 데이터 세그먼트들의 순서화되고, 오류-검사되고 그리고/또는 신뢰가능한 전달을 제공하는 전송층 접속일 수 있다. 상기 복수의 기본 계층 데이터 세그먼트를 송신하는 단계는 프로그레시브 스트리밍 모드로 상기 복수의 기본 계층 데이터 세그먼트를 송신하는 단계를 포함할 수 있다. 상기 하나 이상의 향상 계층 데이터 세그먼트를 송신하는 단계는 적응적 스트리밍 모드로 상기 하나 이상의 향상 계층 데이터 세그먼트를 송신하는 단계를 포함할 수 있다. In the above embodiments, the first communication connection and the second communication connection are each a transport layer connection number that provides ordered, error-checked and / or reliable delivery of the base layer and / or enhancement layer data segments, have. The transmitting of the plurality of base layer data segments may comprise transmitting the plurality of base layer data segments in a progressive streaming mode. The transmitting of the one or more enhancement layer data segments may comprise transmitting the one or more enhancement layer data segments in an adaptive streaming mode.

또 다른 실시예들은, 예를 들어, 디지털 콘텐츠를 수신하기 위한 방법을 제공할 수 있다. 위 방법은 서버로부터 수신한 복수의 기본 계층 데이터 세그먼트 및 하나 이상의 향상 계층 데이터 세그먼트를 저장하기 위한 버퍼의 풀니스 레벨을 결정하는 단계; 및 상기 버퍼의 상기 풀니스 레벨에 기초해서 상기 복수의 기본 계층 데이터 세그먼트 및 상기 하나 이상의 향상 계층 데이터 세그먼트 중 적어도 하나에 이용가능한 네트워크 대역폭을 할당하는 단계를 포함할 수 있다.Still other embodiments may provide a method for receiving digital content, for example. The method comprising: determining a level of integrity of a buffer for storing a plurality of base layer data segments received from a server and one or more enhancement layer data segments; And allocating available network bandwidth to at least one of the plurality of base layer data segments and the one or more enhancement layer data segments based on the level of vulnerability of the buffer.

위 실시예들에 있어서, 상기 이용가능한 네트워크 대역폭을 할당하는 단계는, 상기 버퍼의 상기 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계를 더 포함할 수 있다. 상기 이용가능한 네트워크 대역폭을 할당하는 단계는, 상기 버퍼의 풀니스 레벨에 기초하여 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계를 더 포함할 수 있다. 상기 서버와 통신하는 단계는 상기 기본 계층 액세스 유닛은 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하는 단계 - 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신되는 것임 - 를 포함할 수 있다. 상기 서버와 통신하는 단계는 상기 버퍼의 풀니스 레벨에 반비례하여 상기 전송 레이트를 제한하도록 상기 서버와 통신하는 단계를 포함할 수 있다. 위 방법은 상기 복수의 기본 계층 데이터 세그먼트를 수신하기 위한 제1 통신 접속 및 상기 하나 이상의 향상 계층 데이터 세그먼트를 수신하기 위한 제2 통신 접속을 설정하는 단계를 더 포함할 수 있다. 위 방법은 상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하는 단계를 더 포함할 수 있다.In the above embodiments, allocating the available network bandwidth may further comprise communicating with the server to limit the transfer rate of the plurality of base layer data segments based on the level of vulnerability of the buffer . The step of allocating the available network bandwidth may further comprise determining one or more enhancement layer data segments to be subsequently received based on the level of integrity of the buffer. Wherein communicating with the server comprises modulating the temporal spacing between a plurality of acknowledgments (ACKs) to be sent to the base layer access unit, each of the plurality of acknowledgments including at least some of the plurality of base layer data segments Lt; / RTI > is received in response to successful receipt of the request. Communicating with the server may include communicating with the server to limit the transfer rate in inverse proportion to the level of the integrity of the buffer. The method may further comprise establishing a first communication connection for receiving the plurality of base layer data segments and a second communication connection for receiving the one or more enhancement layer data segments. The method may further include estimating an available network bandwidth using the first communication connection.

또다른 실시예들은, 예를 들어, 디지털 콘텐츠를 요청하기 위한 디바이스를 제공할 수 있다. 위 디바이스는 서버와의 제1 통신 접속을 설정하고 상기 제1 통신 접속을 통해 순차적인 복수의 기본 계층 데이터 세그먼트에 대한 제1 요청을 수신하도록 구성되는 기본 계층 액세스 유닛; 및 상기 서버와의 제2 통신 접속을 설정하고 상기 제2 통신 접속을 통해 하나 이상의 향상 계층 데이터 세그먼트에 대한 적어도 하나의 제2 요청을 송신하도록 구성되는 향상 계층 액세스 유닛 - 상기 하나 이상의 향상 계층 데이터 세그먼트와 상기 복수의 기본 계층 데이터 세그먼트의 적어도 일부는 상기 디지털 콘텐츠의 인코딩된 스트림의 적어도 일부를 구성함 - 을 포함할 수 있다.Still other embodiments may provide, for example, a device for requesting digital content. Wherein the device is configured to establish a first communication connection with a server and receive a first request for a plurality of sequential base layer data segments over the first communication connection; And an enhancement layer access unit configured to establish a second communications connection with the server and to transmit at least one second request for one or more enhancement layer data segments over the second communications connection, And at least a portion of the plurality of base layer data segments constitute at least a portion of an encoded stream of the digital content.

위 실시예들에 있어서, 위 디바이스는 상기 하나 이상의 향상 계층 데이터 세그먼트를 상기 복수의 기본 계층 데이터 세그먼트 중 상기 적어도 일부와 함께 디코딩하여 상기 인코딩된 스트림의 상기 적어도 일부의 디코딩된 스트림을 제공하도록 구성되는 디코더를 더 포함할 수 있다. 상기 제1 및 제2 통신 접속들은 각각 상기 기본 계층 및/또는 향상 계층 데이터 세그먼트들의 순서화되고, 오류-검사되고 그리고/또는 신뢰가능한 전달을 제공하는 전송층 접속일 수 있다. 상기 제1 요청은 프로그레시브 스트리밍 모드로 상기 제1 통신 접속을 통해 상기 복수의 기본 계층 데이터 세그먼트를 송신하도록 하는 요청을 포함할 수 있다. 상기 디바이스는 상기 기본 계층 및 향상 계층 데이터 세그먼트들을 저장하기 위한 버퍼를 더 포함하고, 상기 통신 유닛은 상기 버퍼의 풀니스 레벨을 결정하도록 구성되는 버퍼 풀리스 할당 유닛 및 상기 버퍼의 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하도록 구성된 스로틀링 유닛을 더 포함할 수 있다. 상기 스로틀링 유닛은 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하도록 구성되고, 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신되는 것일 수 있다. 상기 스로틀링 유닛은 상기 버퍼의 풀니스 레벨에 반비례하여 상기 전송 레이트를 제한하도록 상기 서버와 통신하도록 구성될 수 있다. 상기 향상 계층 액세스 유닛은 적응적 스트리밍 방식에 기초해서 상기 제2 통신 접속을 통해 상기 하나 이상의 제2 요청을 송신하도록 구성될 수 있다. 상기 디바이스는 상기 기본 계층 및 향상 계층 데이터 세그먼트들을 저장하기 위한 버퍼를 더 포함하고, 상기 통신 유닛은 이용가능한 네트워크를 추정하도록 구성된 대역폭 추정 유닛을 더 포함하고, 상기 향상 계층 액세스 유닛은 상기 추정된 이용가능한 네트워크 대역폭 및 상기 버퍼의 풀니스 레벨에 기초하여 후속해서 수신할 하나 이상의 향상 계층 데이터 세그먼트들를 결정하도록 구성되는 스케쥴링 유닛을 포함할 수 있다. 상기 대역폭 추정 유닛은 상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하도록 구성될 수 있다. In the above embodiments, the device is configured to decode the one or more enhancement layer data segments with the at least a portion of the plurality of base layer data segments to provide the at least a portion of the decoded stream of the encoded stream Decoder. The first and second communication connections may each be a transport layer connection providing ordered, error-checked, and / or reliable delivery of the base layer and / or enhancement layer data segments. The first request may include a request to transmit the plurality of base layer data segments over the first communication connection in a progressive streaming mode. Wherein the device further comprises a buffer for storing the base layer and enhancement layer data segments, the communication unit comprising: a buffer poolless allocation unit configured to determine a level of integrity of the buffer; And a throttling unit configured to communicate with the server to limit the transmission rate of the plurality of base layer data segments. Wherein the throttling unit is configured to modulate the temporal spacing between a plurality of acknowledgments (ACKs) to be sent to the server, each of the plurality of acknowledgments being transmitted in response to successful receipt of at least a portion of the plurality of base layer data segments . The throttling unit may be configured to communicate with the server to limit the transmission rate in inverse proportion to the level of the buffer ' s buffer. The enhancement layer access unit may be configured to transmit the one or more second requests over the second communication connection based on an adaptive streaming scheme. Wherein the device further comprises a buffer for storing the base layer and enhancement layer data segments, wherein the communication unit further comprises a bandwidth estimation unit configured to estimate an available network, the enhancement layer access unit comprising: And a scheduling unit configured to determine one or more enhancement layer data segments to be subsequently received based on a possible network bandwidth and a health level of the buffer. The bandwidth estimation unit may be configured to estimate the available network bandwidth using the first communication connection.

또다른 실시예들은, 예를 들어, 디지털 콘텐츠를 제공하기 위한 디바이스를 제공할 수 있다. 그러한 실시예들에서, 상기 디바이스는 상기 디지털 콘텐츠의 인코딩된 버전을 구성하는 복수의 기본 계층 데이터 세그먼트 및 복수의 향상 계층 데이터 세그먼트을 함께 저장하는 저장 유닛; 및 제1 통신 접속을 통해 클라이언트로부터 상기 복수의 기본 계층 데이터 세그먼트에 대한 제1 요청을 수신하고; 상기 제1 요청에 응답하여 상기 클라이언트에 상기 제1 통신 접속을 통해 상기 복수의 기본 계층 데이터 세그먼트를 순차적으로 송신하고; 제2 통신 접속을 통해 상기 클라이언트로부터 상기 복수의 향상 계층 데이터 세그먼트 중 하나 이상의 세그먼트에 대한 적어도 하나의 제2 요청을 수신하고; 상기 적어도 하나의 제2 요청에 응답하여 상기 클라이언트에 상기 제2 통신 접속을 통해 상기 하나 이상의 향상 계층 데이터 세그먼트를 송신하도록 구성되는 통신 유닛을 포함할 수 있다.Still other embodiments may provide, for example, a device for providing digital content. In such embodiments, the device comprises: a storage unit for storing together a plurality of base layer data segments and a plurality of enhancement layer data segments constituting an encoded version of the digital content; And receive a first request for the plurality of base layer data segments from a client over a first communication connection; Sequentially send the plurality of base layer data segments via the first communication connection to the client in response to the first request; Receive at least one second request for one or more segments of the plurality of enhancement layer data segments from the client over a second communication connection; And a communication unit configured to transmit the one or more enhanced layer data segments over the second communication connection to the client in response to the at least one second request.

위 실시예들에 있어서, 상기 제1 통신 접속 및 상기 제2 통신 접속은 각각 상기 기본 계층 및/또는 향상 계층 데이터 세그먼트들의 순서화되고, 오류-검사되고 그리고/또는 신뢰가능한 전달을 제공하는 전송층 접속일 수 있다. 상기 통신 유닛은 프로그레시브 스트리밍 모드로 상기 복수의 기본 계층 데이터 세그먼트를 송신하도록 구성될 수 있다. 상기 통신 유닛은 적응적 스트리밍 모드로 상기 하나 이상의 향상 계층 데이터 세그먼트들을 송신하도록 구성될 수 있다. In the above embodiments, the first communication connection and the second communication connection are each a transport layer connection that provides ordered, error-checked and / or reliable delivery of the base layer and / or enhancement layer data segments, . The communication unit may be configured to transmit the plurality of base layer data segments in a progressive streaming mode. The communication unit may be configured to transmit the one or more enhancement layer data segments in an adaptive streaming mode.

또 다른 실시예들은, 예를 들어, 디지털 콘텐츠를 수신하기 위한 디바이스를 제공할 수 있다. 상기 디바이스는 복수의 기본 계층 데이터 세그먼트 및 하나 이상의 향상 계층 데이터 세그먼트를 수신하도록 구성되는 통신 유닛; 및 상기 기본 계층 및 향상 계층 데이터 세그먼트들을 저장하도록 구성되는 버퍼를 포함하고, 상기 통신 유닛은 상기 버퍼의 풀니스 레벨에 기초해서 상기 복수의 기본 계층 데이터 세그먼트 및 상기 하나 이상의 향상 계층 데이터 세그먼트 중 적어도 하나에 이용가능한 네크워크 대역폭을 할당하도록 추가적으로 구성될 수 있다.Still other embodiments may provide, for example, a device for receiving digital content. The device comprising: a communication unit configured to receive a plurality of base layer data segments and one or more enhancement layer data segments; And a buffer configured to store the base layer and enhancement layer data segments, wherein the communication unit is configured to store the plurality of base layer data segments and at least one of the one or more enhancement layer data segments based on a level of health of the buffer Lt; RTI ID = 0.0 > network bandwidth. ≪ / RTI >

위 실시예들에 있어서, 상기 통신 유닛은, 상기 버퍼의 상기 풀니스 레벨을 결정하도록 구성되는 버퍼 풀니스 결정 유닛; 및 상기 버퍼의 상기 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하도록 구성되는 기본 계층 액세스 유닛을 더 포함할 수 있다. 상기 통신 유닛은, 상기 버퍼의 상기 풀니스 레벨을 결정하도록 구성되는 버퍼 풀니스 결정 유닛; 및 상기 버퍼의 상기 풀니스 레벨에 기초하여 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하도록 구성되는 향상 계층 액세스 유닛을 더 포함할 수 있다. 상기 기본 계층 액세스 유닛은 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하도록 구성되고, 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신되는 것일 수 있다. 상기 기본 계층 액세스 유닛은 상기 버퍼의 풀니스 레벨에 반비례하여 상기 전송 레이트를 제한하도록 상기 서버와 통신하도록 구성될 수 있다. 상기 통신 유닛은 상기 복수의 기본 계층 데이터 세그먼트를 수신하기 위한 제1 통신 접속 및 상기 하나 이상의 향상 계층 데이터 세그먼트를 수신하기 위한 제2 통신 접속을 설정하도록 구성될 수 있다. 상기 통신 유닛은 상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하도록 구성되는 대역폭 결정 유닛을 더 포함할 수 있다. In the above embodiments, the communication unit may further include: a buffer fullness determination unit configured to determine the level of the flexibility of the buffer; And a base layer access unit configured to communicate with the server to limit the transmission rate of the plurality of base layer data segments based on the level of the security of the buffer. Wherein the communication unit comprises: a buffer fullness determination unit configured to determine the level of the integrity of the buffer; And an enhancement layer access unit configured to determine one or more enhancement layer data segments to be subsequently received based on the level of the security of the buffer. Wherein the base layer access unit is configured to modulate temporal spacing between a plurality of acknowledgments (ACKs) to be transmitted to the server, each of the plurality of acknowledgments responding to successful receipt of at least some of the plurality of base layer data segments May be transmitted. The base layer access unit may be configured to communicate with the server to limit the transmission rate in inverse proportion to the level of the buffer's integrity. The communication unit may be configured to establish a first communication connection for receiving the plurality of base layer data segments and a second communication connection for receiving the one or more enhanced layer data segments. The communication unit may further comprise a bandwidth determination unit configured to estimate an available network bandwidth using the first communication connection.

도 1은 일부 실시예들에 따라 디지털 콘텐츠를 제공하기 위한 시스템의 개략도이다.
도 2는 도 1에 도시된 서버와 같은, 서버를 예시하는 상세화된 블록도이다.
도 3은 일부 실시예들에 따른, H.264/AVC(advanced video coding) 표준의 스케일러블 비디오 코딩 확장의 계층화된 스트림 구조의 비한정적인 예시의 도면이다.
도 4는 도 1에 도시된 클라이언트와 같은 클라이언트 디바이스를 예시하는 상세화된 블록도이다.
도 5는 일부 실시예들에 따른, 이용가능한 네트워크 대역폭의 양에 기초하여 하나 이상의 향상 계층 서브-스트림들을 선택하는 것을 예시하는 도면이다.
도 6은 일부 실시예들에 따른, 디지털 콘텐츠를 수신하기 위한, 도 1의 클라이언트와 같은 클라이언트 디바이스에 의해 수행되는 방법의 흐름도이다.
도 7a는 일부 실시예들에 따른, 프로그레시브 스트리밍 모드에서의 메시지 교환을 예시하는 개념적 시그널링 도면이다.
도 7b는 일부 실시예들에 따른, 적응적 스트리밍 모드에서의 메시지 교환을 예시하는 개념적 시그널링 도면이다.
도 8은 일부 실시예들에 따른, 디지털 콘텐츠를 제공하기 위해 도 1의 서버와 같은 서버 디바이스에 의해 수행되는 방법의 흐름도이다.
도 9는 도 1에 도시된 클라이언트와 같은 클라이언트 디바이스의 또다른 실시예를 예시하는 상세화된 블록도이다.
도 10은 도 9에 도시된 기본 계층(BL) 액세스 유닛의 실시예를 예시하는 상세화된 블록도이다.
도 11은 일부 실시예들에 따른, 버퍼 풀니스(fullness)로부터 스로틀링(throttling) 파라미터를 결정하는 것에 대한 도면이다.
도 12는 도 9에 도시된 향상 계층(EL) 액세스 유닛의 실시예를 예시하는 상세화된 블록도이다.
도 13a 및 13b는 일부 실시예들에 따른, 하나 이상의 향상 계층 데이터 세그먼트들을 선택하는 것을 예시하는 도면이다.
도 14는 일부 실시예들에 따른 기본 계층 및 향상 계층 데이터 세그먼트들에 대한 네트워크 대역폭을 나누기 위해, 도 1의 클라이언트와 같은 클라이언트 디바이스에 의해 수행되는 흐름도이다.
도 15는 본원에 기술된 구성요소들 및 그 프로세스들 중 하나 이상을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템 아키텍쳐를 예시하는 블록도이다.
1 is a schematic diagram of a system for providing digital content in accordance with some embodiments.
2 is a detailed block diagram illustrating a server, such as the server shown in FIG.
3 is a non-limiting illustrative drawing of a layered stream structure of a scalable video coding extension of the H.264 / AVC (Advanced Video Coding) standard, in accordance with some embodiments.
4 is a detailed block diagram illustrating a client device, such as the client shown in FIG.
5 is a diagram illustrating selecting one or more enhancement layer sub-streams based on the amount of available network bandwidth, in accordance with some embodiments.
Figure 6 is a flow diagram of a method performed by a client device, such as the client of Figure 1, for receiving digital content, in accordance with some embodiments.
7A is a conceptual signaling diagram illustrating message exchange in a progressive streaming mode, in accordance with some embodiments.
7B is a conceptual signaling diagram illustrating message exchange in an adaptive streaming mode, in accordance with some embodiments.
Figure 8 is a flow diagram of a method performed by a server device, such as the server of Figure 1, to provide digital content, in accordance with some embodiments.
9 is a detailed block diagram illustrating another embodiment of a client device, such as the client shown in FIG.
10 is a detailed block diagram illustrating an embodiment of a base layer (BL) access unit shown in FIG.
11 is a diagram of determining throttling parameters from buffer fullness, in accordance with some embodiments.
12 is a detailed block diagram illustrating an embodiment of the enhancement layer (EL) access unit shown in FIG.
13A and 13B are diagrams illustrating selecting one or more enhancement layer data segments, in accordance with some embodiments.
FIG. 14 is a flow chart performed by a client device, such as the client of FIG. 1, to divide network bandwidth for base layer and enhancement layer data segments according to some embodiments.
15 is a block diagram illustrating a computing system architecture that may be used to implement one or more of the components and processes thereof described herein.

다양한 실시예들이 이제 도면들과 관련하여 기술되며, 여기서 동일한 참조 번호들은 전반에 걸쳐 동일한 구성요소들을 지칭하는데 사용된다. 후속하는 내용에서, 설명의 목적으로 다수의 특정 상세항목이 하나 이상의 구성요소에 대한 철저한 이해를 제공하기 위해 설명된다. 그러나, 이러한 실시예(들)가 이들 특정 상세항목들 없이도 구현될 수 있다는 점이 명백할 수 있다. 다른 경우들에서, 공지된 구조들 및 디바이스들이 하나 이상의 실시예들의 기재를 용이하게 하기 위해 블록도 형태로 도시되어 있다.Various embodiments are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more of the constituent elements. It may be evident, however, that such embodiment (s) may be implemented without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more embodiments.

본 개시내용의 일부 실시예들에 따르면 도 1은 디지털 콘텐츠를 제공하기 위한 시스템(100)의 개략도이다. 도 1을 참조하면, 시스템(100)은 디지털 콘텐츠를 제공하도록 구성된 서버(110), 통신 네트워크(120), 및 서버(110)에 디지털 콘텐츠를 요청하고 수신하기 위해 통신 네트워크(120)에 통신상으로 연결된 복수의 클라이언트(131-133)(이하에서 집합적으로 클라이언트들(130)로서 지칭될 수 있음)를 포함할 수 있다. 설명의 편의를 위해 도 1에 3개의 클라이언트들(131-133)만이 예시되었지만, 더 적거나 더 많은 수의 클라이언트 디바이스들이 서버(110)에 액세스하기 위해 통신 네트워크(120)에 접속될 수 있다는 점이 인지되어야 한다.According to some embodiments of the present disclosure, Figure 1 is a schematic diagram of a system 100 for providing digital content. Referring to Figure 1, a system 100 includes a server 110 configured to provide digital content, a communications network 120, and a communications link 120 to the communications network 120 for requesting and receiving digital content from the server 110. [ A plurality of clients 131-133 (collectively referred to below as clients 130) that are coupled to the client 130-133. Although only three clients 131-133 are illustrated in FIG. 1 for ease of illustration, fewer or more client devices may be connected to the communications network 120 to access the server 110 Should be recognized.

서버(110)는 통신 네트워크(120)를 통해 클라이언트들(130)과 그리고 선택적으로는 다른 통신 엔티티들(미도시)과 통신하기 위한 하나 이상의 컴퓨팅 디바이스 또는 그 내부에 설치된 소프트웨어 및/또는 하드웨어 모듈(들)로 구성될 수 있다(예를 들어, 웹 서버). 이러한 컴퓨팅 디바이스의 예로서 클라이언트-서버 아키텍쳐 하에서 동작할 수 있는 전용 컴퓨터 또는 복수의 네트워킹된 컴퓨터를 포함하지만 이에 한정되지 않는다.The server 110 may include one or more computing devices for communicating with the clients 130 and optionally other communication entities (not shown) via the communication network 120 or software and / or hardware modules (E. G., A web server). ≪ / RTI > Examples of such computing devices include, but are not limited to, a dedicated computer or a plurality of networked computers capable of operating under a client-server architecture.

일 실시예에서, 서버(110)는 다양한 품질 또는 "스케일러블" 레벨로(예를 들어, 360p, 480p, 760p, 또는 1080p의 디스플레이 해상도로) 전달되도록 인코딩된 디지털 콘텐츠를 저장하도록 구성될 수 있다. 일 실시예에서, 서버(110)는 클라이언트들(131, 132, 및/또는 133)로부터 디지털 콘텐츠에 대한 요청을 수신하고, 그 응답으로, 복수의 상이한 타입의 서브-스트림(예를 들어, 기본 품질의 비디오를 제공하도록 독립적으로 디코딩될 수 있는 기본 계층 서브-스트림 및 개선된 또는 향상된 품질의 디지털 콘텐츠를 제공하기 위해 기본 계층 서브-스트림과 함께 사용(예를 들어, 결합, 디코딩 등)될 수 있는 하나 이상의 향상 계층 서브-스트림들)을 전달할 수 있다. 디지털 콘텐츠의 예들은, 임의의 타입의 오디오(예를 들어, 음악, 잡음 등), 비디오(오디오와 선택적으로 결합된 동영상), 이미지(예를 들어, 정지 화상), 텍스트(예를 들어, 단순 텍스트 메시지, 하이퍼텍스트 메시지, 이메일, 단문 메시지 서비스(SMS) 메시지 등), 및 다른 멀티미디어 콘텐츠를 포함할 수 있지만 이에 한정되지 않는다.In one embodiment, the server 110 may be configured to store the encoded digital content to be delivered at various quality or "scalable" levels (e.g., at a display resolution of 360p, 480p, 760p, or 1080p) . In one embodiment, the server 110 receives a request for digital content from clients 131, 132, and / or 133 and, in response thereto, generates a plurality of different types of sub-streams (e.g., Can be used (e.g., combined, decoded, etc.) with the base layer sub-stream to provide a base layer sub-stream that can be independently decoded to provide quality video and improved or improved quality digital content One or more enhancement layer sub-streams). Examples of digital content include any type of audio (e.g., music, noise, etc.), video (video selectively coupled to audio), images (e.g., still images) Text messages, hypertext messages, email, Short Message Service (SMS) messages, etc.), and other multimedia content.

통신 네트워크(120)는, 이를 통해 접속된 임의의 엔티티들 사이에서(예를 들어, 서버(110) 및 클라이언트들(131, 132 및/또는 133) 사이에서) 통신 접속들을 설정하도록 통신 요청들이 릴레이 및/또는 라우팅될 수 있는, POTS(plain old telephone service) 네트워크, 모바일 네트워크, 데이터 통신 네트워크 등을 포함할 수 있다. 일 실시예에서, 통신 네트워크(120)는 또한 하나 이상의 공중 및/또는 개인 통신 네트워크들로 구성될 수 있다. 이러한 통신 네트워크들의 예들은 PSTN(Public Switched Telephone Network:공중 교환 전화망), PLMN(Public Land Mobile Network : 공중 지상 모바일 네트워크), UMTS(Universal Mobile Telecommunications System: 유니버설 모바일 통신 시스템), LTE(Long-Term Evolution: 롱 텀 에볼루션) 네트워크, 인터넷 등을 포함하지만 이에 한정되지 않는다.Communication network 120 may be configured to allow communication requests to establish communication connections between any entities connected therewith (e.g., between server 110 and clients 131, 132 and / or 133) A plain old telephone service (POTS) network, a mobile network, a data communication network, and the like, which may be routed and / or routed. In one embodiment, communication network 120 may also be comprised of one or more public and / or private communication networks. Examples of such communication networks are Public Switched Telephone Network (PLNN), Public Land Mobile Network (PLMN), Universal Mobile Telecommunications System (UMTS), Long-Term Evolution (LTE) : Long Term Evolution) network, the Internet, and the like.

클라이언트들(130)은 각각 통신 네트워크(120)를 통해 서버(110)와 통신하기 위한 최종-사용자 디바이스 또는 이에 설치된 소프트웨어 및/또는 하드웨어 모듈(들)일 수 있다(예를 들어, 웹 브라우저). 이러한 최종-사용자 디바이스들의 예들은, 개인용 컴퓨터, 개인 디지털 보조 단말(PDA), 스마트 폰, 디지털 텔레비전, 비디오 게임 콘솔, 및 서버(110)로부터 수신된 디지털 콘텐츠를 재생할 수 있는 임의의 타입의 디바이스를 포함하지만 이에 한정되지 않는다.Clients 130 may be end-user devices or software and / or hardware module (s) installed therein (e.g., a web browser) for communicating with server 110 via communications network 120, respectively. Examples of such end-user devices include any type of device capable of playing digital content received from a personal computer, a personal digital assistant (PDA), a smart phone, a digital television, a video game console, But are not limited to.

일 실시예에서, 클라이언트들(130)은 각각 예를 들어, 기본 계층 서브-스트림 및/또는 하나 이상의 향상 계층 서브-스트림의 형태로, 서버(110)로부터 디지털 콘텐츠를 요청하고 수신하도록 구성될 수 있다. 다른 실시예에서, 클라이언트들(130)은 각각 상이한 계층의 서브-스트림들을 요청하고 수신하기 위해 서버(110)와 별도의 통신 접속들을 설정하도록 구성될 수 있다. 예를 들어, 클라이언트들(130) 각각은 기본 계층 서브-스트림에 대한 제1 통신 접속, 및 향상 계층 서브-스트림들의 일부 또는 모두에 대한 하나 이상의 별도의 제2 통신 접속을 설정할 수 있다.In one embodiment, clients 130 may each be configured to request and receive digital content from server 110, for example, in the form of a base layer sub-stream and / or one or more enhancement layer sub- have. In another embodiment, clients 130 may each be configured to establish separate communication connections with server 110 to request and receive different layers of sub-streams. For example, each of the clients 130 may establish a first communication connection to the base layer sub-stream, and one or more separate second communication connections to some or all of the enhancement layer sub-streams.

도 2는 도 1에 도시된 서버(110)를 예시하는 상세화된 블록도이다. 도 2를 참조하면, 서버(110)는, 제한 없이, 저장 유닛(210), 제어 유닛(220), 및 통신 유닛(230)을 포함할 수 있다.2 is a detailed block diagram illustrating the server 110 shown in FIG. 2, the server 110 may include, without limitation, a storage unit 210, a control unit 220, and a communication unit 230.

저장 유닛(210)은 임의의 적절한 임시 및/또는 영구 메모리로 구성될 수 있다. 이러한 메모리의 예는, 고속 랜덤 액세스 메모리(예를 들어, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태 메모리 디바이스), 비휘발성 메모리(예를 들어, 하나 이상의 자기 디스크 저장 디바이스, 광 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 다른 비휘발성 고체 상태 저장 디바이스)를 포함하지만, 이에 한정되지 않는다. 일부 실시예들에서, 저장 유닛(210)은 제어 유닛(220)으로부터 원격으로 위치하는 및/또는 다수의 장소에 원격으로 위치하는 하나 이상의 저장 디바이스를 포함할 수 있다.The storage unit 210 may be configured with any suitable temporary and / or permanent memory. Examples of such memories include, but are not limited to, high speed random access memory (e.g., DRAM, SRAM, DDR RAM or other random access solid state memory devices), non-volatile memory , Flash memory devices, or other non-volatile solid state storage devices). In some embodiments, storage unit 210 may include one or more storage devices remotely located from control unit 220 and / or remotely located at multiple locations.

일 실시예에서, 저장 유닛(210)은 스케일링 코딩 알고리즘에 따라 인코딩된 디지털 콘텐츠를 저장(예를 들어, 디지털 콘텐츠의 인코딩된 스트림을 구성하는 복수의 기본 계층 데이터 세그먼트 및 복수의 향상 계층 세그먼트를 저장)하도록 구성될 수 있다. 여기서, "스케일러블 코딩"은 디지털 콘텐츠의 소스 스트림(예를 들어, 720p의 디스플레이 해상도의 비디오)으로부터 상이하게 스케일링된 변형물(예를 들어, 360p, 480p, 720p, 또는 1080p의 디스플레이 해상도의 비디오)로 디지털 콘텐츠를 제공하는데 사용될 수 있는, 상이한 계층들의 복수의 서브-스트림을 생성하는 하나 이상의 타입의 코딩을 지칭한다. 도 3은 H.264/SVC 스트림(300)의 계층화된 스트림 구조의 비-제한적인 예를 예시한다. 도 3을 참조하면, 소스 비디오 스트림으로부터 인코딩된 H.264/SVC 스트림(300)은: (a) 일련의 기본 계층 데이터 세그먼트(또는 데이터 "청크")(B0, B1, B2,...및 BN -1)로 구성된 기본 계층 서브-스트림(310); 및 (b) 일련의 제1 향상 계층 데이터 세그먼트(E0, E1, E2,... 및 EN -1) 및 일련의 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,... 및 E'N -1)로 각각 구성된 제1 및 제2 향상 계층 서브-스트림(321 및 322)(이하, 향상 계층 서브-스트림들(320)로서 집합적으로 지칭될 수 있음)을 포함할 수 있다.In one embodiment, the storage unit 210 stores the encoded digital content in accordance with a scaling coding algorithm (e.g., storing a plurality of base layer data segments and a plurality of enhancement layer segments constituting an encoded stream of digital content ). Here, the term "scalable coding" refers to a variant (e.g., a video having a display resolution of 360p, 480p, 720p, or 1080p) differently scaled from a source stream of digital content (e.g., video with a display resolution of 720p) Quot; refers to one or more types of coding that produce a plurality of sub-streams of different layers, which can be used to provide digital content with a plurality of sub-streams. FIG. 3 illustrates a non-limiting example of a layered stream structure of H.264 / SVC stream 300. Referring to FIG. 3, an H.264 / SVC stream 300 encoded from a source video stream includes: (a) a set of base layer data segments (or data "chunks") (B 0 , B 1 , B 2 ,. ... and B N -1 ); And (b) a set of the first enhancement layer data segment (E 0, E 1, E 2, ... N -1, and E) and a series of second enhancement layer data segment (E '0, E' 1 , E '2, ..., and E' N -1), respectively consisting of first and second enhancement layer sub-streams (321 and 322) (hereinafter referred to as enhancement layer sub-streams 320 may be referred to collectively as Lt; / RTI >

일 실시예에서, 기본 계층 서브-스트림(310)은 소스 비디오 스트림의 품질 레벨(예를 들어, 760p의 디스플레이 해상도)보다 더 낮은 기본 품질 레벨(예를 들어, 360p의 디스플레이 해상도)의 비디오를 제공하도록 독립적으로 디코딩될 수 있다. 비-제한적인 예시에서, 기본 계층 데이터 세그먼트(B0, B1, B2,...및 BN-1)은 각각 같은 길이의 연속적인 시간 구간들에 대응하는 인코딩된 비디오 데이터를 포함할 수 있다(예를 들어, M초 길이의 비디오에 대해, N개의 기본 계층 데이터 세그먼트(B0, B1, B2,... 및 BN-1)은 각각 비디오의 연속적인 M/N길이의 시간 구간들에 대한 비디오 데이터를 포함할 수 있다).In one embodiment, base layer sub-stream 310 provides video at a base quality level (e.g., a display resolution of 360p) that is lower than the quality level of the source video stream (e.g., a display resolution of 760p) And can be decoded independently. In a non-limiting example, the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) each include encoded video data corresponding to successive time intervals of the same length It may be (e.g., for a video of the second M-length, N of a base layer data segment (B 0, B 1, B 2, ... , and B N-1) are consecutive M / N the length of each video Lt; RTI ID = 0.0 > time periods < / RTI >

일 실시예에서, 제1 향상 계층 서브-스트림(321)은 비디오의 품질 레벨을 개선하도록(예를 들어, 디스플레이 해상도를 480p로 개선하도록) 디지털 콘텐츠를 재구성하기 위해 기본 계층 서브-스트림(310)과 함께 사용될 수 있다. 비-제한적인 예시에서, 제1 향상 계층 데이터 세그먼트(E0)는 첫 M/N초에 대응하는 비디오의 디스플레이 해상도를 480p로 개선하기 위해 기본 계층 데이터 세그먼트(B0)와 함께 사용될 수 있고, 제1 향상 계층 데이터 세그먼트(E1)는 다음 M/N초에 대응하는 비디오의 디스플레이 해상도를 480p로 개선하기 위해 기본 계층 데이터 세그먼트(B1)와 함께 사용될 수 있는 등의 방식이다. 일 실시예에서, 제2 향상 계층 서브-스트림(322)은 비디오의 품질 레벨을 추가로 개선하기 위해(예를 들어, 디스플레이 해상도를 760p로 추가로 개선하기 위해) 기본 계층 서브-스트림(310) 및 제1 향상 계층 서브-스트림(321)과 함께 사용될 수 있다. 비-제한적인 예시에서, 제2 향상 계층 데이터 세그먼트(E'0)는 첫 M/N 초에 대응하는 비디오의 디스플레이 해상도를 760p로 추가로 개선하기 위해 기본 계층 데이터 세그먼트(B0) 및 제1 향상 계층 데이터 세그먼트(E0)와 함께 사용될 수 있고, 제2 향상 계층 데이터 세그먼트(E'1)는 다음 M/N 초에 대응하는 비디오의 디스플레이 해상도를 760p로 추가로 개선하기 위해 기본 계층 데이터 세그먼트(B1) 및 제1 향상 계층 데이터 세그먼트(E1)와 함께 사용될 수 있는 등의 방식이다. 기본 및 향상 계층 서브-스트림들을 인코딩하고 디코딩하기 위해 필요한 기술적 상세항목들은 공지되어 있으며, 본 개시에서의 추가적인 설명 없이도 구현될 수 있다.In one embodiment, the first enhancement layer sub-stream 321 includes a base layer sub-stream 310 for reconstructing digital content to improve the quality level of the video (e.g., to improve the display resolution to 480p) ≪ / RTI > Non-limiting example, the first enhancement layer data segment (E 0) may be used together with the base layer data segment (B 0) in order to improve the display resolution of the video corresponding to the first M / N seconds to 480p, The first enhancement layer data segment E 1 may be used with the base layer data segment B 1 to improve the display resolution of the video corresponding to the next M / N second to 480p, and so on. In one embodiment, the second enhancement layer sub-stream 322 includes a base layer sub-stream 310 to further improve the quality level of the video (e.g., to further improve the display resolution to 760p) And the first enhancement layer sub-stream 321. In a non-limiting example, the second enhancement layer data segment (E ' 0 ) includes a base layer data segment B 0 and a first enhancement layer data segment B 0 to further improve the display resolution of the video corresponding to the first M / And the second enhancement layer data segment (E ' 1 ) may be used with the enhancement layer data segment (E 0 ) to further improve the display resolution of the video corresponding to the next M / N seconds to 760 p, (B 1 ) and the first enhancement layer data segment (E 1 ). The technical details necessary to encode and decode the base and enhancement layer sub-streams are well known and may be implemented without further explanation in this disclosure.

다시 도 2를 참조하면, 저장 유닛(210)은: (a) 하나 이상의 기본 계층 파일[예를 들어, 기본 계층(BL) 파일(211)]; 및 (b) 하나 이상의 향상 계층 파일[예를 들어, 제1 및 제2 향상 계층(EL) 파일(212 및 213)]을 저장하도록 구성될 수 있다. 하나 이상의 기본 계층 파일은 기본 계층 서브-스트림(310)의 일련의 기본 계층 데이터 세그먼트(B0, B1, B2,... 및 BN-1)를 포함할 수 있다. 또한, 하나 이상의 향상 계층 파일은 제1 향상 계층 서브-스트림(321)의 일련의 제1 향상 계층 데이터 세그먼트(E0, E1, E2,... 및 EN -1) 및 제2 향상 계층 서브-스트림(322)의 일련의 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N -1)를 포함할 수 있다.Referring again to Figure 2, the storage unit 210 may include: (a) one or more base layer files (e.g., base layer (BL) files 211); And (b) one or more enhancement layer files (e.g., first and second enhancement layer (EL) files 212 and 213). One or more base layer files may comprise a series of base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) of base layer sub- In addition, one or more enhancement layer files may include a series of first enhancement layer data segments (E 0 , E 1 , E 2 , ..., and E N -1 ) of the first enhancement layer sub- May include a series of second enhancement layer data segments (E ' 0 , E' 1 , E ' 2 , ..., and E' N -1 ) of layer sub-

비-제한적인 예시에서, 저장 유닛(210)은 기본 계층 서브-스트림(310)의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1) 모두를 포함하는 하나의 기본 계층 파일을 저장할 수 있다. 다른 비-제한적인 예에서, 저장 유닛(210)은 복수의 기본 계층 파일을 저장할 수 있고, 복수의 기본 계층 파일 각각은 기본 계층 서브-스트림(310)의 일련의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1) 중 하나의 세그먼트를 포함할 수 있다. 비-제한적인 예시에서, 저장 유닛(210)은 2개의 향상 계층 파일을 포함할 수 있는데, 하나는 제1 향상 계층 서브-스트림(321)의 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., 및 EN -1) 모두를 포함하며, 다른 하나는 제2 향상 계층 서브-스트림(322)의 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N-1)을 포함할 수 있다. 다른 비-제한적인 예에서, 저장 유닛(210)은 복수의 향상 계층 파일을 저장할 수 있는데, 복수의 향상 계층 파일 각각은 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., 및 EN -1) 및 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N -1) 중 하나의 세그먼트를 포함할 수 있다.In a non-limiting example, the storage unit 210 includes all of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N -1 ) of the base layer sub- You can store one base layer file. In another non-limiting example, storage unit 210 may store a plurality of base layer files, each of a plurality of base layer files comprising a set of base layer data segments (B 0 , B 1 , B 2 , ..., and B N -1 ). In a non-limiting example, the storage unit 210 may include two enhancement layer files, one of which is the first enhancement layer data segment E 0 , E 1 , E 2 , ..., and E N -1 ) of the second enhancement layer sub-stream 322 and the other includes the second enhancement layer data segments E ' 0 , E' 1 , E ' 2 , ..., and E ' N-1 ). In another non-limiting example, the storage unit 210 may store a plurality of enhancement layer files, each of which includes a first enhancement layer data segment E 0 , E 1 , E 2 , ... , And E N -1 ) and second enhancement layer data segments (E ' 0 , E' 1 , E ' 2 , ..., and E' N -1 ).

위 실시예에서, 저장 유닛(210)은 기본 계층 및/또는 향상 계층 파일(들) 중 적어도 일부의 위치를 알아내기(locate) 위한 정보[예를 들어, 기본 계층 파일의 URI(Uniform Resource Identifier: 유니폼 자원 식별자) 또는 향상 계층 파일의 URI]를 저장하도록 구성될 수 있다. 이러한 정보의 예는, DASH(Dynamic Adaptive Streaming over HTTP: HTTP를 통한 동적 적응적 스트리밍) 또는 MPEG-DASH에서 정의된 바와 같은 MPD(media presentation description: 미디어 표시 디스크립션)을 포함한지만 이에 한정되지 않는다.The storage unit 210 may store information for locating at least a portion of the base layer and / or enhancement layer file (s) (e.g., a Uniform Resource Identifier (URI) Uniform resource identifier) or the URI of the enhancement layer file. Examples of such information include, but are not limited to, dynamic adaptive streaming over HTTP (DASH) or media description description (MPD) as defined in MPEG-DASH.

저장 유닛(210)은 서버(110)의 전반적인 동작을 제어하고, 서버(110)에 대해 본원에 기술된 프로세스들, 동작들 및 방법들 중 임의의 것을 수행 및/또는 구현하도록 통신 유닛(230)을 제어하기 위해 제어 유닛(220)에 의해 실행되는 명령어들의 세트를 포함하는 임의의 개수의 소프트웨어 프로그램을 추가로 저장하도록 구성될 수 있다. 예를 들어, 저장 유닛(210)은: (a) 다양한 기본 시스템 서비스를 핸들링하고 하드웨어 종속적 작업들을 수행하기 위한 하나 이상의 운영 체제 프로그램 및/또는 (b) 통신 네트워크를 통해 다른 통신 엔티티들과의 통신을 가능하게 하기 위한 하나 이상의 통신 프로그램을 저장할 수 있다.The storage unit 210 controls communication unit 230 to control the overall operation of the server 110 and to perform and / or implement any of the processes, operations and methods described herein with respect to the server 110. [ Or any number of software programs including a set of instructions to be executed by the control unit 220 to control the control unit 220. [ For example, the storage unit 210 may include: (a) one or more operating system programs for handling various base system services and performing hardware dependent tasks, and / or (b) communication with other communication entities Lt; RTI ID = 0.0 > and / or < / RTI >

제어 유닛(220)은 서버(110)의 전체 동작을 관리하기 위한 임의의 개수의 하드웨어 및/또는 소프트웨어 모듈(들)(예를 들어, 특수화된 아날로그 및/또는 디지털 제어 회로 및/또는 하나 이상의 운영 체제 프로그램을 실행하는 하나 이상의 범용 프로세서에 의해 구현될 수 있음)로 구성될 수 있다. 예를 들어, 제어 유닛(220)은 저장 유닛(210) 및 통신 유닛(230)으로의 그리고 저장 유닛(210) 및 통신 유닛(230)으로부터의 데이터 전달을 제어할 수 있다(예를 들어, 통신 유닛(230)으로부터 데이터 전달 요청을 수신할 시에, 저장 유닛(210)으로부터 통신 유닛(230)으로 기본 계층 및 향상 계층 데이터 세그먼트들 중 하나 이상을 검색하여 포워딩한다).The control unit 220 may include any number of hardware and / or software module (s) (e.g., specialized analog and / or digital control circuitry and / or one or more operating Which may be implemented by one or more general purpose processors executing a set program). For example, control unit 220 may control the transfer of data to storage unit 210 and communication unit 230 and from storage unit 210 and communication unit 230 (e.g., communication Retrieves and forwards one or more of the base layer and enhancement layer data segments from storage unit 210 to communication unit 230 upon receiving a data transfer request from unit 230).

통신 유닛(230)은 임의의 개수의 하드웨어 및/또는 소프트웨어 모듈(들)(예를 들어, 특수화된 아날로그 및/또는 디지털 제어 회로 및/또는 하나 이상의 통신 프로그램들을 실행하는 하나 이상의 범용 프로세서에 의해 구현됨)로 구성될 수 있다. 통신 유닛(230)은 통신 네트워크(예를 들어, 도 1의 통신 네트워크(120))를 통해 통신 엔티티들(예를 들어, 도 1의 서버(110) 및 클라이언트들(130)) 사이에서 하나 이상의 통신 접속들을 설정하고, 설정된 통신 접속들을 통해 통신 엔티티들과 정보를 교환하는 것을 보조하도록 구성될 수 있다. 이 목적으로, 통신 유닛(230)은 통신 접속들을 설정하고, 인터넷과 같은 통신 네트워크를 통해 데이터를 전달하기 위해 다양한 공중 및/또는 사설 네트워크 프로토콜들을 지원하도록 구성될 수 있다. 이러한 네트워크 프로토콜들은, 개방 시스템 상호접속(OSI) 모델 하에서, 네트워크층 프로토콜(들)[예를 들어, 인터넷 프로토콜(IP)], 전송층 프로토콜(들)[예를 들어, 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP) 등)] 및 응용층 프로토콜(들)[예를 들어, 하이퍼텍스트 전송 프로토콜(HTTP) 등]을 포함하지만 이에 한정되지 않는다. 또한, 통신 유닛(230)은 통신 네트워크를 통해 데이터의 스트림을 전달하기 위한 하나 이상의 기법들을 지원하도록 구성될 수 있다. 이러한 스트리밍 기법들의 예들은 DASH(Dynamic Adaptive Streaming over HTTP: HTTP를 통한 동적 적응적 스트리밍) 또는 MPEG-DASH와 같은 HAS(HTTP Adaptive Streaming: HTTP 적응적 스트리밍)를 포함하지만 이에 한정되지 않는다.The communication unit 230 may be implemented by any number of hardware and / or software module (s) (e.g., one or more general purpose processors executing specialized analog and / or digital control circuits and / ). ≪ / RTI > The communication unit 230 may communicate with one or more communication entities (e.g., server 110 and clients 130 in FIG. 1) via a communication network (e.g., communication network 120 in FIG. 1) Establish communication connections, and assist in exchanging information with communication entities over established communication connections. For this purpose, the communication unit 230 may be configured to support various public and / or private network protocols for establishing communication connections and for communicating data over a communication network such as the Internet. Such network protocols may be implemented in a network layer protocol (s) (e.g., Internet Protocol (IP)), transport layer protocol (s) (e.g., Transmission Control Protocol , User Datagram Protocol (UDP), etc.) and application layer protocol (s) [e.g., Hypertext Transfer Protocol (HTTP), etc.). The communication unit 230 may also be configured to support one or more techniques for delivering a stream of data over a communication network. Examples of such streaming techniques include, but are not limited to, Dynamic Adaptive Streaming over HTTP (DASH) or HAS (HTTP Adaptive Streaming) such as MPEG-DASH.

일 실시예에서, 통신 유닛(230)은: 서버(110)와 클라이언트(131) 사이의 하나 이상의 통신 접속을 설정하기 위한 하나 이상의 요청을 클라이언트(예를 들어, 도 1의 클라이언트(131))로부터 수신하고, 그 응답으로, 클라이언트와의 통신 접속들을 설정하기 위해 하나 이상의 응답을 생성하여 클라이언트(131)에 송신하도록 구성될 수 있다. 일 실시예에서, 통신 접속들 각각은 기본 계층 및/또는 향상 계층 데이터 세그먼트의 순서화되고, 오류 검사되고 그리고/또는 신뢰성 있는 전달을 제공하는 전송층 접속(즉, 접속-지향, 오류 검사 및/또는 신뢰성 있는 전송 기능들을 제공하는 전송층 프로토콜의 통신 접속)일 수 있다. 이러한 전송층 접속들의 예들은, TCP 3-방향 핸드쉐이크 절차에 따라 설정될 수 있는 TCP 접속을 포함하지만 이에 한정되지 않는다.In one embodiment, communication unit 230 is configured to: send one or more requests to establish one or more communication connections between server 110 and client 131 from a client (e.g., client 131 of FIG. 1) And in response, generate and send one or more responses to the client 131 to establish communication connections with the client. In one embodiment, each of the communication connections includes a transport layer connection (i. E., Connection-oriented, error checking and / or error checking) that provides ordered, error- A communication connection of a transport layer protocol that provides reliable transport functions). Examples of such transport layer connections include, but are not limited to, TCP connections that may be established according to the TCP three-way handshake procedure.

위의 실시예에서, 통신 유닛(230)은 추가로 (a) 기본 계층 및/또는 향상 계층 데이터 세그먼트들 중 하나 이상을 제공하기 위한 하나 이상의 요청(예를 들어, HTTP GET 요청)을 설정된 통신 접속들 중 하나를 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))로부터 수신하고; (b) 제어 유닛(220)의 제어 하에 저장 유닛(210)으로부터 요청된 하나 이상의 기본 계층 및/또는 향상 계층 데이터 세그먼트를 제공받고; 그리고 (c) 설정된 통신 접속들 중 하나를 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))에 하나 이상의 기본 계층 및/또는 향상 계층 데이터 세그먼트를 송신하도록 구성될 수 있다.In the above embodiment, the communication unit 230 further comprises (a) one or more requests (e.g., HTTP GET requests) to provide one or more of the base layer and / or enhancement layer data segments, (E.g., client 131, 132, or 133 in FIG. 1) through one of the client devices (e.g. (b) receiving one or more base layer and / or enhancement layer data segments requested from the storage unit 210 under the control of the control unit 220; And (c) send one or more base layers and / or enhancement layer data segments to a client (e.g., client 131, 132, or 133 in FIG. 1) via one of the established communications connections .

"HTTP GET 요청"(위에서 언급됨)은 HTTP 표준들 하에서 정의된 바와 같이 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))로 하여금 TCP 접속을 통해 서버로부터 데이터를 요청하고 수신하게 하기 위한 요청이다. HTTP GET 요청은 데이터 파일의 URI(uniform resource information:유니폼 자원 정보), 및 선택적으로, 다운로드될 데이터 파일의 일부분을 표시하는 "바이트-범위" 파라미터를 포함할 수 있다. 비-제한적 예시에서, 통신 유닛(230)은: (a) 기본 계층 파일(211)의 URI를 포함하지만 임의의 "바이트-범위" 파라미터들을 포함하지 않는 HTTP GET 요청(즉, "비-바이트-범위" HTTP GET 요청)을 제1 통신 접속을 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))로부터 수신하고; (b) 제1 통신 접속을 통해 클라이언트로부터 수신한 HTTP GET 요청의 성공적 수신 및 인증을 표시하는 HTTP 200 OK 응답을 송신하고; 그리고 (c) 기본 계층 파일(211) 내의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)를 제공받고 제1 통신 접속을 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))에게 순차적으로 송신하도록 구성될 수 있다.An HTTP GET request (discussed above) allows a client (e.g., client 131, 132, or 133 in FIG. 1) to request data from a server over a TCP connection, as defined under HTTP standards Request to receive. The HTTP GET request may include URI (uniform resource information) of the data file and, optionally, a "byte-range" parameter indicating a portion of the data file to be downloaded. In a non-limiting example, communication unit 230 is configured to: (a) send an HTTP GET request (i.e., a "non-byte- Range "HTTP GET request) from a client (e.g., client 131, 132, or 133 in FIG. 1) over a first communication connection; (b) sending an HTTP 200 OK response indicating successful receipt and authentication of the HTTP GET request received from the client over the first communication connection; And (c) receive the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) in the base layer file 211, (E.g., client 131, 132, or 133 in FIG. 1).

다른 비-제한적인 예시에서, 통신 유닛(230)은: (a) 기본 계층 파일(211)의 URI와 함께 기본 계층 파일(211)의 연속하는(contiguous) 부분을 표시하는 "바이트-범위" 파라미터를 포함하는 HTTP GET 요청(즉, "바이트-범위" HTTP GET 요청)을 제1 통신 접속을 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))로부터 수신하고; (b) 제1 통신 접속을 통해 클라이언트(131, 132, 또는 133)에 HTTP 200 OK 응답을 송신하고; 그리고 (c) 제1 통신 접속을 통해 클라이언트(131, 132, 또는 133)에 기본 계층 파일(211)의 연속하는 부분에 포함된 연속적인 번호의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1)을 송신하도록 구성될 수 있다.In another non-limiting example, the communication unit 230 is configured to: (a) provide a "byte-range" parameter that indicates the contiguous portion of the base layer file 211 along with the URI of the base layer file 211 (E.g., a "byte-range" HTTP GET request) from a client (eg, client 131, 132, or 133 of FIG. 1) via a first communication connection; (b) sending an HTTP 200 OK response to the client 131, 132, or 133 via the first communication connection; And (c) transmitting to the client 131, 132, or 133 via the first communication connection a successive number of base layer data segments (B 0 , B 1 , B 2 ) included in successive portions of the base layer file 211 , ..., and B N -1 ).

또다른 비-제한적인 예시에서, 통신 유닛(230)은: (a) 향상 계층 파일들(212 및 213) 중 하나의 URI와 제1 또는 제2 향상 계층 데이터 세그먼트를 포함하는 향상 계층 파일(212 또는 213)의 일부분을 표시하는 "바이트-범위" 파라미터를 포함하는 HTTP GET 요청을 제1 통신 접속과는 상이한 제2 통신 접속을 통해 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))로부터 수신하고; (b) 제2 통신 접속을 통해 클라이언트(131, 132, 또는 133)에 HTTP 200 OK 응답을 송신하고; 그리고 (c) 제2 통신 접속을 통해 클라이언트(131, 132, 또는 133)에 요청된 제1 또는 제2 향상 계층 데이터 세그먼트를 송신하도록 구성될 수 있다.In another non-limiting example, communication unit 230 may include: (a) an enhancement layer file 212, which includes a URI of one of the enhancement layer files 212 and 213 and a first or second enhancement layer data segment Or " 213 "parameter) indicating a portion of a client (e.g., client 131, 132, or 213 in FIG. 1) via a second communication connection that is different than the first communication connection 133), < / RTI > (b) sending an HTTP 200 OK response to the client 131, 132, or 133 via the second communication connection; And (c) send the requested first or second enhancement layer data segment to the client 131, 132, or 133 via the second communication connection.

도 4는 도 1에 도시된 클라이언트(131)를 예시하는 상세화된 블록도이다. 도 4를 참조하면, 클라이언트(131)는, 제한 없이, 저장 유닛(410), 제어 유닛(420), 통신 유닛(430) 및 디코더(440)를 포함할 수 있다.4 is a detailed block diagram illustrating the client 131 shown in FIG. 4, the client 131 may include, without limitation, a storage unit 410, a control unit 420, a communication unit 430, and a decoder 440.

저장 유닛(410)은 하나 이상의 운영 체제 프로그램, 다른 시스템 프로그램, 및/또는 하나 이상의 통신 프로그램을 저장하도록 구성되는 임의의 적절한 임시 및/또는 영구 메모리로 구성될 수 있다. 일 실시예에서, 저장 유닛(410)은 서버(110)에서 디지털 콘텐츠의 기본 계층 및/또는 향상 계층 파일(들)의 위치를 알아내기 위한 정보[예를 들어, 기본 계층 파일의 URI 및/또는 향상 계층 파일의 URI]를 저장하도록 구성될 수 있다. 이러한 정보의 예는, MPEG-DASH에 정의된 바와 같은 MPD(예를 들어, MPD(411))를 포함하지만 이에 한정되지 않는다. 일 실시예에서, 저장 유닛(410)은 디지털 콘텐츠의 데이터(예를 들어, 디지털 콘텐츠의 인코딩된 스트림의 적어도 일부를 구성하는, 통신 유닛(430)으로부터 수신한 기본 및/또는 향상 계층 서브-스트림의 데이터 세그먼트들)를 임시로 저장하도록 구성된 버퍼(412)를 더 포함할 수 있다. 또한, 저장 유닛(410)은 제어 유닛(420)의 동작을 위해 필요한 다른 영구 및/또는 임시 데이터를 포함할 수 있다.The storage unit 410 may be configured with any suitable temporary and / or permanent memory configured to store one or more operating system programs, other system programs, and / or one or more communication programs. In one embodiment, the storage unit 410 may store information (e.g., a URI of the base layer file and / or information for determining the location of the base layer and / or enhancement layer file (s) URI of the enhancement layer file]. Examples of such information include, but are not limited to, an MPD (e.g., MPD 411) as defined in MPEG-DASH. In one embodiment, the storage unit 410 may store data of the digital content (e.g., basic and / or enhancement layer sub-streams received from the communication unit 430 that constitute at least a portion of the encoded stream of digital content (E. G., Data segments of data). ≪ / RTI > The storage unit 410 may also include other permanent and / or temporary data needed for the operation of the control unit 420.

저장 유닛(410)은 미디어 플레이어 프로그램(미도시)을 더 저장할 수 있다. 미디어 플레이어 프로그램은 디지털 콘텐츠를 재생(예를 들어, 노래 재생, 비디오 표시 등)하기 위한 사용자 입력에 응답하도록 구성될 수 있다. 미디어 플레이어 프로그램은 사용자에 의해 선택된 디스플레이 해상도와 일치시키기 위해 향상 계층 데이터 세그먼트들에 대한 하나 이상의 HTTP GET 요청을 생성하고 송신하기 위한 하나 이상의 명령어를 발행하도록 제어 유닛(420)을 작동(invoke)시킴으로써 재생 중인 디지털 콘텐츠의 디스플레이 해상도를 개선하기 위한 사용자 입력에 응답하도록 추가로 구성될 수 있다.The storage unit 410 may further store a media player program (not shown). The media player program can be configured to respond to user input for playing digital content (e.g., playing a song, displaying a video, etc.). The media player program can be invoked by invoking the control unit 420 to issue one or more instructions for generating and sending one or more HTTP GET requests for enhancement layer data segments to match the display resolution selected by the user Lt; / RTI > may be further configured to respond to user input to improve the display resolution of the digital content being played.

제어 유닛(420)은 클라이언트(131)의 전반적인 동작을 관리하기 위한 임의의 개수의 하드웨어 및/또는 소프트웨어 모듈(들)(예를 들어, 특수화된 아날로그 및/또는 디지털 제어 회로 및/또는 하나 이상의 운영 체제 프로그램을 실행하는 하나 이상의 범용 프로세서에 의해 구현됨)로 구성될 수 있다. 예를 들어, 제어 유닛(420)은 저장 유닛(410), 통신 유닛(430) 및 디코더(440) 사이의 데이터(예를 들어, 통신 유닛(430)으로부터 수신한 기본 계층 및 향상 계층 서브-스트림의 데이터 세그먼트들)의 입력 및 출력을 제어할 수 있다.The control unit 420 may include any number of hardware and / or software module (s) (e.g., specialized analog and / or digital control circuitry and / or one or more operating Implemented by one or more general purpose processors executing a set program). For example, the control unit 420 may be configured to receive data (e.g., from the base unit and enhancement layer sub-streams received from the communication unit 430) between the storage unit 410, the communication unit 430 and the decoder 440 Of data segments).

통신 유닛(430)은 임의의 개수의 하드웨어 및/또는 소프트웨어 모듈(들)(예를 들어, 특수화된 아날로그 및/또는 디지털 제어 회로 및/또는 하나 이상의 통신 프로그램을 실행하는 하나 이상의 범용 프로세서에 의해 구현됨)로 구성될 수 있다. 통신 유닛(430)은 통신 네트워크(예를 들어, 도 1의 통신 네트워크(120))를 통해 통신 엔티티들(예를 들어, 도 1의 서버(110) 및 클라이언트들(130)) 사이에서 하나 이상의 통신 접속을 설정하고, 설정된 통신 접속들을 통해 통신 엔티티들과 정보를 교환하는 것을 보조하도록 구성될 수 있다. 이 목적으로, 통신 유닛(430)은 다양한 공중 및/또는 사설 네트워크 프로토콜들(예를 들어, TCP, HTTP 등)을 지원하도록 구성될 수 있다. 또한, 통신 유닛(450)은 DASH와 같은 하나 이상의 스트리밍 기법들을 지원하도록 구성될 수 있다.The communication unit 430 may be implemented by any number of hardware and / or software module (s) (e.g., one or more general purpose processors executing specialized analog and / or digital control circuits and / ). ≪ / RTI > The communication unit 430 may communicate with one or more communication entities (e.g., server 110 and clients 130 in FIG. 1) via a communication network (e.g., communication network 120 in FIG. 1) Establish a communication connection, and assist in exchanging information with communication entities through established communication connections. For this purpose, the communication unit 430 may be configured to support various public and / or private network protocols (e.g., TCP, HTTP, etc.). In addition, the communication unit 450 may be configured to support one or more streaming techniques, such as DASH.

일 실시예에서, 통신 유닛(430)은 예를 들어, 클라이언트(131)의 최종-사용자로부터, 서버(110)에서 이용가능한 디지털 콘텐츠 중 적어도 하나를 표시하는 선택 입력을 수신하고, 서브-스트림들의 상이한 층들의 데이터 세그먼트들을 요청하고 수신하기 위한 별도의 통신 접속을 서버(110)와 설정하도록 구성될 수 있다. 일 실시예에서, 통신 유닛(430)은 (a) 서버(110)와의 제1 통신 접속(예를 들어, 제1 TCP 접속)을 설정하고 그를 통해 기본 계층 서브-스트림을 위한 제1 요청을 송신하도록 구성되는 기본 계층 액세스 유닛(431); 및 (b) 서버(110)와 하나 이상의 제2 통신 접속들(예를 들어, 하나 이상의 제2 TCP 접속들)을 설정하고 그를 통해 하나 이상의 향상 계층 서브-스트림을 위한 적어도 하나의 제2 요청을 송신하도록 구성된 향상 계층 액세스 유닛(432)을 포함할 수 있다.In one embodiment, the communication unit 430 receives a selection input indicating at least one of the digital content available at the server 110 from, for example, the end-user of the client 131, May be configured to establish a separate communication connection with server 110 to request and receive data segments of different layers. In one embodiment, communication unit 430 is configured to: (a) establish a first communication connection (e.g., a first TCP connection) with server 110 and transmit a first request for a base layer sub- A base layer access unit (431) configured to: And (b) establishing one or more second communication connections (e.g., one or more second TCP connections) with the server 110 to establish at least one second request for one or more enhanced layer sub- And an enhancement layer access unit 432 configured to transmit.

비-제한적인 예시에서, 향상 계층 액세스 유닛(432)은 다수의 향상 계층 서브-스트림을 수신하기 위해 서버(110)와 제2 통신 접속을 설정하도록(예를 들어, 도 3의 제1 및 제2 향상 계층 서브-스트림(321 및 322) 모두에 대한 제2 TCP 접속을 설정하도록) 구성될 수 있다. 또다른 비-제한적인 예시에서, 향상 계층 액세스 유닛(432)은 각각의 향상 계층 서브-스트림에 대한 단일의 제2 통신 접속을 설정하도록(예를 들어, 도 3에 도시된 바와 같이 하나가 제1 향상 계층 서브-스트림(321)에 대한 것이고, 다른 하나가 제2 향상 계층 서브-스트림(322)에 대한 것인, 2개의 제2 TCP 접속들을 설정하도록) 구성될 수 있다.In a non-limiting example, the enhancement layer access unit 432 may be configured to establish a second communications connection with the server 110 to receive multiple enhancement layer sub-streams (e.g., 2 enhancement layer sub-streams 321 and 322). In another non-limiting example, the enhancement layer access unit 432 may be configured to establish a single second communication connection for each enhancement layer sub-stream (e.g., 1 enhancement layer sub-stream 321 and the other for the second enhancement layer sub-stream 322).

일 실시예에서, 기본 계층 액세스 유닛(431)은 프로그레시브 스트리밍 모드에서 설정된 제1 통신 접속을 통해 기본 계층 서브-스트림을 스트리밍 하기 위한 요청을 서버(110)에 송신하도록 구성될 수 있다. 여기서 "프로그레시브 스트리밍 모드"는 클라이언트[예를 들어, 클라이언트(131, 132, 또는 133)]로부터 서버[예를 들어, 서버(110)]로의 단일 요청에 의해 서버로부터 클라이언트로 서브-스트림의 전체의 또는 적어도 미리 규정된 수의 연속적인 데이터 세그먼트들이 클라이언트(131, 132, 또는 133)로 연속적으로 스트리밍되는 모드를 지칭한다.In one embodiment, the base layer access unit 431 may be configured to send a request to the server 110 to stream the base layer sub-stream over the first communication connection established in the progressive streaming mode. Herein, the "progressive streaming mode" means that the entirety of the sub-stream from the server to the client by a single request from the client (e.g., client 131, 132, or 133) Or at least a predefined number of contiguous data segments are streamed continuously to the client 131, 132, or 133.

비-제한적인 예시에서, 기본 계층 액세스 유닛(431)은, 서버(110)로부터 기본 계층 파일 내의 기본 계층 데이터 세그먼트들 모두를 연속적으로 수신하기 위해, 제1 TCP 접속을 통해 서버(110)에 (기본 계층 파일의 URI를 포함하지만 "바이트-범위" 파라미터는 포함하지 않는) "비-바이트-범위" HTTP GET 요청을 송신하도록 구성될 수 있다. 위의 예에서, 기본 계층 액세스 유닛(431)은 HTTP GET 요청을 생성하기 위해 저장 유닛(410) 내의 MPD(411)로부터 기본 계층 파일의 URI를 검색할 수 있다. 또다른 비-제한적인 예에서, 기본 계층 액세스 유닛(431)은, 서버(110)로부터 기본 계층 파일의 연속하는 부분 내의 기본 계층 데이터 세그먼트들을 연속적으로 수신하도록, 제1 TCP 접속을 통해 서버(110)에 (기본 계층 파일의 URI를 포함하고 "바이트-범위" 파라미터도 포함하는) "바이트-범위" HTTP GET 요청을 송신하도록 구성될 수 있다.In a non-limiting example, the base layer access unit 431 may communicate with the server 110 over a first TCP connection to continuously receive all of the base layer data segments in the base layer file from the server 110 Quot; non-byte-range "HTTP GET request that includes the URI of the base layer file but does not include the" byte-range "parameter). In the above example, the base layer access unit 431 may retrieve the URI of the base layer file from the MPD 411 in the storage unit 410 to generate an HTTP GET request. In another non-limiting example, the base layer access unit 431 is configured to receive base layer data segments in successive portions of the base layer file from the server 110 over a first TCP connection, Quot; HTTP GET request (including the URI of the base layer file and also including a "byte-range" parameter)

일 실시예에서, 향상 계층 액세스 유닛(432)은 적응적 스트리밍 모드에서 하나 이상의 설정된 제2 통신 접속을 통해 하나 이상의 향상 계층 서브-스트림을 스트리밍하기 위한 하나 이상의 요청을 서버(110)에 송신하도록 구성될 수 있다. 여기서 "적응적 스트리밍 모드"는 디지털 콘텐츠의 서브-스트림의 데이터 세그먼트들 중 선택된 것들만이 일련의 요청(각각의 요청은 전체 데이터 세그먼트 중 적어도 하나를 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))가 서버로 요청해서 디지털 콘텐츠의 품질 레벨을 동적으로 조정할 수 있도록 함)에 의해 서버로부터 클라이언트(131, 132, 또는 133)로 스트리밍되는 모드를 지칭한다.. In one embodiment, the enhancement layer access unit 432 is configured to send one or more requests to the server 110 for streaming one or more enhancement layer sub-streams over one or more established second communications connections in an adaptive streaming mode . Herein, the term "adaptive streaming mode" means that only selected ones of the data segments of the sub-stream of digital content are transmitted as a series of requests (each request including at least one of the entire data segments to the client 132, or 133) to request from the server to dynamically adjust the quality level of the digital content) to the client 131, 132, or 133.

비-제한적인 예시에서, 향상 계층 액세스 유닛(432)은: (a) 서버(110)로부터 다운로드될 하나 이상의 향상 계층 데이터 세그먼트를 적응적으로 선택하고; 그리고 (b) 선택된 향상 계층 세그먼트들 각각에 대한 별도의 HTTP GET 요청을 송신하도록 구성될 수 있다. 위의 예에서, 향상 계층 액세스 유닛(432)은 적응적 스트리밍을 위해 제공되는 다양한 적응 알고리즘 중 임의의 것에 따라 하나 이상의 향상 계층 데이터 세그먼트를 선택할 수 있다.In a non-limiting example, the enhancement layer access unit 432 may: (a) adaptively select one or more enhancement layer data segments to be downloaded from the server 110; And (b) send a separate HTTP GET request for each of the selected enhancement layer segments. In the example above, the enhancement layer access unit 432 may select one or more enhancement layer data segments according to any of the various adaptation algorithms provided for adaptive streaming.

일 예에서, 향상 계층 액세스 유닛(432)은 디지털 콘텐츠에 대해 이용가능한 네트워크 대역폭의 양에 기초하여 하나 이상의 향상 계층 데이터 세그먼트를 선택할 수 있다. 위의 예에서, 향상 계층 액세스 유닛(432)은 이용가능한 네트워크 대역폭을 다양한 방식 중 하나 이상의 방식에 따라 결정하도록 구성되는 대역폭 결정 유닛(미도시)을 포함할 수 있다. 예를 들어, 대역폭 결정 유닛은: 서버(110)에 규정된 길이의 하나 이상의 데이터 세그먼트를 송신하고, 서버(110)로부터 하나 이상의 데이터 세그먼트의 성공적 수신을 확인하는 하나 이상의 응답을 수신하는데 소요된 시간을 측정함으로써, 이용가능한 네트워크 대역폭을 추정할 수 있다. 또한, 위의 예에서, 향상 계층 액세스 유닛(432)은 추정된 이용가능한 네트워크 대역폭 및 규정된 임계 값들에 기초하여 수신하고자 하는 하나 이상의 향상 계층 데이터 세그먼트를 선택할 수 있다.In one example, enhancement layer access unit 432 may select one or more enhancement layer data segments based on the amount of network bandwidth available for digital content. In the example above, the enhancement layer access unit 432 may include a bandwidth determination unit (not shown) configured to determine the available network bandwidth according to one or more of various manners. For example, the bandwidth determination unit may be configured to: determine the amount of time it takes to send one or more data segments of a defined length to the server 110 and to receive one or more responses from the server 110 to confirm successful receipt of one or more data segments , The available network bandwidth can be estimated. Further, in the example above, the enhancement layer access unit 432 may select one or more enhancement layer data segments to receive based on the estimated available network bandwidth and prescribed thresholds.

도 5는 이용가능한 네트워크 대역폭의 양에 기초하여 하나 이상의 향상 계층 서브-스트림을 선택하는 것을 예시하는 도면이다. 도 5를 참조하면, 향상 계층 액세스 유닛(432)은: (a) 이용가능한 네트워크 대역폭이 제1 임계 값 (TH0) 미만일 때 향상 계층 데이터 세그먼트를 수신하지 않고; (b) 이용가능한 네트워크 대역폭이 제1 임계 값(TH0)과 제2 임계 값(TH1) 사이에 있을 때 제1 향상 계층 서브-스트림에 속하는 1개의 향상 계층 세그먼트를 수신하고; 그리고 (c) 이용가능한 네트워크 대역폭이 제2 임계 값(TH1) 이상일 때, 하나가 제1 향상 계층 서브-스트림에 속하고 다른 하나는 제2 향상 계층 서브-스트림에 속하는 2개의 향상 계층 세그먼트룰 수신하도록 선택할 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 기본 계층 액세스 유닛(431)이 제1 통신 접속을 통해 서버(110)로부터 기본 계층 세그먼트들(B0, B1, 및 B2)을 수신하는 반면, 향상 계층 액세스 유닛(432)은 제2 통신 접속을 통해 서버(110)로부터 제1 향상 계층 세그먼트들(E1 및 E2) 및 제2 향상 계층 세그먼트(E'1)를 수신하도록 선택할 수 있다. 전술된 적응 알고리즘은 단지 하나의 예시에 불과하고, 마이크로소프트의 실버라이트(Microsoft Silverlight)에서 사용알고리즘 등, 임의의 다른 적응 알고리즘 및 다른 공지된 알고리즘이 사용될 수 있다는 점이 이해되어야 한다.5 is a diagram illustrating selecting one or more enhancement layer sub-streams based on the amount of available network bandwidth. Referring to FIG. 5, the enhancement layer access unit 432 is configured to: (a) receive no enhancement layer data segments when the available network bandwidth is below a first threshold TH 0 ; (b) receive one enhancement layer segment belonging to a first enhancement layer sub-stream when the available network bandwidth is between a first threshold (TH 0 ) and a second threshold (TH 1 ); And (c) when the available network bandwidth is greater than or equal to a second threshold value TH 1 , one of the enhancement layer segments belongs to the first enhancement layer sub-stream and the other belongs to the second enhancement layer sub- Can be selected. For example, as shown in FIG. 5, a base layer access unit 431 receives base layer segments (B 0 , B 1 , and B 2 ) from a server 110 over a first communication connection , an enhancement layer access unit 432 may be selected to receive the first enhancement layer segments from the server (110) (E 1 and E 2) and the second enhancement layer segments (E '1) on a second communication connection . It should be understood that the adaptation algorithm described above is only one example, and that any other adaptation algorithm, such as the algorithm used in Microsoft's Silverlight, and other known algorithms may be used.

일 실시예에서, 통신 유닛(430)은 제어 유닛(420)의 제어 하에서, 기본 계층 및 향상 계층 액세스 유닛들(431 및 432)에 의해 수신한 기본 계층 및/또는 향상 계층 세그먼트들의 일부 또는 전부를 저장하기 위해 저장 유닛(410) 내의 버퍼(412)에 포워딩하도록 구성될 수 있다. 예를 들어, 도 5에 관해 기술된 예에서, 통신 유닛(430)은 기본 계층 세그먼트들(B0, B1, 및 B2), 제1 향상 계층 세그먼트들(E1 및 E2), 및 제2 향상 계층 세그먼트(E'1)를 저장을 위해 버퍼(412)에 포워딩할 수 있다.In one embodiment, the communication unit 430 is capable of receiving, under control of the control unit 420, some or all of the base layer and / or enhancement layer segments received by the base layer and enhancement layer access units 431 and 432 To buffer 412 in storage unit 410 for storage. For example, in the example described with respect to FIG. 5, the communication unit 430 may include base layer segments B 0 , B 1 , and B 2 , first enhancement layer segments E 1 and E 2 , The second enhancement layer segment (E ' 1 ) may be forwarded to the buffer 412 for storage.

디코더(440)는 제어 유닛(420)의 제어 하에, 디코딩을 위해 저장 유닛(410)의 버퍼(412)로부터 기본 계층 및/또는 향상 계층 세그먼트들을 수신하도록 구성될 수 있다. 일 실시예에서, 디코더(440)는 기본 계층 데이터 세그먼트들 및/또는 그것에 대응하는 향상 계층 데이터 세그먼트들을 버퍼(412)로부터 불러오고(fetch) 디코딩하여, 이로부터 디지털 콘텐츠를 예를 들어, 가변적인 품질 레벨로 생성하도록 구성될 수 있다. 버퍼(412)가 기본 계층 세그먼트들(B0, B1, 및 B2), 제1 향상 계층 세그먼트들(E1 및 E2) 및 제2 향상 계층 세그먼트(E'1)를 저장하고 있는 전술된 예에서, 디코더(440)는: (a) 기본 계층 세그먼트(B0)를 불러와서 디코딩하여 360p 해상도에서 비디오의 첫 M/N초를 생성하고; (b) 기본 계층 세그먼트(B1) 및 제1 및 제2 향상 계층 세그먼트들(E1 및 E'1) 불러와서 디코딩하여 760p 해상도에서 비디오의 다음 M/N초를 생성하고; 그리고 (c) 기본 계층 세그먼트(B2) 및 제1 향상 계층 세그먼트들(E2) 불러와서 디코딩하여 480p 해상도에서 비디오의 다음 M/N초를 생성할 수 있다. 기본 계층 및/또는 향상 계층 데이터 세그먼트들을 디코딩하기 위해 필요한 기술적 상세항목들은 공지되어 있으며, 추가적인 설명 없이도 구현될 수 있다.Decoder 440 may be configured to receive base layer and / or enhancement layer segments from buffer 412 of storage unit 410 for decoding under control of control unit 420. [ In one embodiment, the decoder 440 fetches and decodes the base layer data segments and / or the corresponding enhancement layer data segments from the buffer 412 to derive the digital content therefrom, for example, Quality level. ≪ / RTI > Buffer 412 described above is that stores the base layer segments (B 0, B 1, and B 2), the the first enhancement layer segments (E 1 and E 2) and the second enhancement layer segments (E '1) In the illustrated example, the decoder 440: (a) invokes and decodes the base layer segment B 0 to generate the first M / N seconds of video at 360p resolution; (b) recall and decode the base layer segment (B 1 ) and the first and second enhancement layer segments (E 1 and E ' 1 ) to produce the next M / N seconds of video at 760p resolution; And (c) recall and decode the base layer segment B 2 and the first enhancement layer segments E 2 to generate the next M / N seconds of video at 480p resolution. The technical details necessary to decode the base layer and / or enhancement layer data segments are well known and may be implemented without further explanation.

위의 실시예들에서, 상이한 타입들의 계층들의 데이터 세그먼트들을 수신하기 위해 별도의 통신 접속들(예를 들어, TCP 접속들)을 설정함으로써, 클라이언트(131)는 제1 통신 접속을 통해 최소의 오버헤드와 더욱 양호한 대역폭 이용율로 기본 계층 서브-스트림 모두를 끊김 없이 수신할 수 있고(단일 HTTP GET 요청만으로 제1 통신 접속을 통해 기본 계층 서브-스트림의 프로그레시브 스트리밍을 개시할 수 있고, 기본 계층 데이터 세그먼트들에 대한 다수의 HTTP GET 요청들을 송신함으로써 발생하는 시간 지연을 제거할 수 있음), 동시에 하나 이상의 별도의 제2 통신 접속을 통해 수신한 하나 이상의 향상 계층 데이터 세그먼트로 현재 상황 하에서 최적으로 맞추어진 레벨로 디지털 콘텐츠의 품질을 적응적으로 조정할 수 있다.In the above embodiments, by setting up separate communication connections (e. G., TCP connections) to receive data segments of different types of tiers, the client 131 can establish a minimum over Stream (with a single HTTP GET request can initiate progressive streaming of the base layer sub-stream over the first communication connection only with the head and better bandwidth utilization), and the base layer data segment To one or more enhancement layer data segments received over one or more separate second communication connections at the same time, The quality of the digital contents can be adaptively adjusted.

도 6은 디지털 콘텐츠를 수신하기 위해 예를 들어 클라이언트(131)와 같은 클라이언트 디바이스에 의해 수행되는 방법의 흐름도이다. 도 6을 참조하면, 예를 들어, 클라이언트(131)의 기본 계층 액세스 유닛(431)에 의해 수행되는 단계 610에서, 서버(예를 들어, 도 1의 서버(110))와의 제1 TCP 접속이 설정되며, 예를 들어, 클라이언트(131)의 기본 계층 액세스 유닛(431)에 의해 수행되는 단계 620에서, 기본 계층 서브-스트림을 제1 TCP 접속을 통해 서버(110)로부터 프로그레시브 스트리밍 모드로 수신하도록 제1 요청이 서버(110)로 송신된다. 도 7a는 프로그레시브 스트리밍 모드에서의 메시지 교환을 위한 개념적 시그널링 도면이다. 도 7a를 참조하면, 클라이언트(131)의 기본 계층 액세스 유닛(431)은 TCP-3방향 핸드쉐이크 절차를 수행함으로써(예를 들어, 특정한 규정된 값들로 설정되는 동기화(SYN) 및/또는 확인응답(ACK) 제어 비트 플래그들을 포함하는 일련의 TCP 세그먼트를 교환함으로써) 서버(110)와의 제1 TCP 접속을 설정할 수 있다. 이하에서, 클라이언트(131)의 기본 계층 액세스 유닛(431)은 설정된 제1 TCP 접속을 통해 서버(110)에 기본 계층 파일의 URI를 포함하는 "비-바이트-범위" HTTP GET 요청을 송신할 수 있다. 서버(110)는, HTTP GET 요청을 성공적으로 수신할 시에, 먼저, 제1 TCP 접속을 통해 클라이언트(131)로부터 수신한 HTTP GET 요청의 성공적 수신 및 인증을 표시하는 HTTP 200 OK 응답을 송신하고, 연속하여, 제1 TCP 접속을 통해 클라이언트(131)에 요청된 기본 계층 파일 내의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1)를 송신한다.6 is a flow diagram of a method performed by a client device, e.g., client 131, to receive digital content. 6, in step 610 performed by the base layer access unit 431 of the client 131, a first TCP connection with the server (e.g., the server 110 of FIG. 1) Stream is received from the server 110 in the progressive streaming mode via the first TCP connection, for example, at step 620 performed by the base layer access unit 431 of the client 131 A first request is sent to the server 110. 7A is a conceptual signaling diagram for message exchange in a progressive streaming mode. 7A, the base layer access unit 431 of the client 131 may perform a TCP-3 directional handshake procedure (e.g., by using a synchronization (SYN) and / or acknowledgment (E. G., By exchanging a series of TCP segments including acknowledgment (ACK) control bit flags). In the following, the base layer access unit 431 of the client 131 can send a "non-byte-range" HTTP GET request containing the URI of the base layer file to the server 110 via the established first TCP connection have. Upon successful receipt of the HTTP GET request, the server 110 first transmits an HTTP 200 OK response indicating successful reception and authentication of the HTTP GET request received from the client 131 via the first TCP connection (B 0 , B 1 , B 2 , ..., and B N -1 ) in the base layer file requested to the client 131 over the first TCP connection.

일 실시예에서, 클라이언트(131)의 기본 계층 액세스 유닛(431)은 서버(110)로부터 미리 결정된 개수의 기본 계층 데이터 세그먼트를 성공적으로 수신한 이후 TCP ACK를 송신할 수 있다. 또한, 위의 실시예에서, 서버(100)는, 미리 결정된 개수의 기본 계층 데이터 세그먼트를 송신한 이후, 이전에 송신된 기본 계층 데이터 세그먼트들에 대한 TCP ACK를 수신한 때에만 후속하는 기본 계층 데이터 세그먼트를 송신할 수 있다. 비-제한적인 예시에서, 도 7a에 도시된 바와 같이, 서버(110)는 이전 기본 계층 데이터 세그먼트(예를 들어, B0)에 대한 TCP ACK를 수신한 때에만 후속하는 기본 계층 데이터 세그먼트들(예를 들어, B1)을 송신할 수 있다.In one embodiment, the base layer access unit 431 of the client 131 may send a TCP ACK after successfully receiving a predetermined number of base layer data segments from the server 110. In addition, in the above embodiment, after transmitting a predetermined number of base layer data segments, the server 100 only transmits subsequent base layer data (hereinafter referred to as base layer data) only when receiving a TCP ACK for previously transmitted base layer data segments Segment can be transmitted. The limiting example, as shown in Figure 7a, server 110 before the base layer data segment base layer data only subsequently, when receiving the TCP ACK for the (e. G., B 0) segment (non- For example, B 1 ).

일 실시예에서, 클라이언트(131)의 기본 계층 액세스 유닛(431)은, TCP ACK들이 클라이언트(131)로부터 서버(110)로 송신되는 레이트를 조정함으로써 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송 레이트(즉, 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)가 서버로부터 클라이언트(131)로 송신되는 레이트)를 간접적으로 조정할 수 있다. 예를 들어, 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))는 기본 계층 데이터 세그먼트들의 전송 레이트를 감소시키거나 증가시키기 위해 TCP ACK들의 전송을 지연시키거나 신속처리(expedite)할 수 있다. 클라이언트(예를 들어, 도 1의 클라이언트(131, 132, 또는 133))가 서버의 전송 레이트를 간접적으로 조정하기 위한 이러한 방식은 "ACK 페이싱"으로 지칭될 수 있다.In one embodiment, the base layer access unit 431 of the client 131 is configured to determine the base layer data segments B 0 , B 1 , B (B 1 , B 1 , B 2 ) by adjusting the rate at which TCP ACKs are sent from the client 131 to the server 110 2, ..., and a transmission rate (that is, the base layer data segment (B 0, B 1, B 2, ..., and B N-1) by the client 131 from the server of the B N-1) The transmission rate) can be indirectly adjusted. For example, a client (e.g., client 131, 132, or 133 in FIG. 1) may delay the transmission of TCP ACKs to reduce or increase the transmission rate of base layer data segments, )can do. This manner for a client (e.g., client 131, 132, or 133 in FIG. 1) to indirectly adjust the server's transfer rate may be referred to as "ACK paging ".

기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1) 중 마지막 세그먼트의 성공적 수신 시에, 클라이언트(131)의 기본 계층 액세스 유닛(431)은 마지막 TCP ACK를 송신하고 서버(110)와의 제1 TCP 접속을 종료한다. 위의 기재들로부터 알 수 있는 바와 같이, 프로그레시브 스트리밍 모드에서, 오직 하나의 HTTP GET 요청 및 후속하는 HTTP 200 OK 응답만이 서버(110)로부터 클라이언트(131)로 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN -1) 모두를 전달하는데 필요한 오버헤드로서 요구된다.Upon successful reception of the last one of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N -1 ), the base layer access unit 431 of the client 131 sends a final TCP ACK And terminates the first TCP connection with the server 110. As can be seen from the above description, in the progressive streaming mode, only one HTTP GET request and the subsequent HTTP 200 OK response are transmitted from the server 110 to the client 131 as the base layer data segments B 0 , B 1 , B 2 , ..., and B N -1 ).

도 6을 다시 참조하면, 단계 630에서, 예를 들어, 클라이언트(131)의 향상 계층 액세스 유닛(432)에 의해, 서버(예를 들어, 도 1의 서버(110))와의 하나 이상의 제2 TCP 접속들이 설정되고, 예를 들어, 클라이언트(131)의 향상 계층 액세스 유닛(432)에 의해 수행되는 단계 640에서, 하나 이상의 향상 계층 서브-스트림을 하나 이상의 제2 TCP 접속을 통해 서버(110)로부터 적응적 스트리밍 모드에서 수신하도록 적어도 하나의 제2 요청을 송신한다.6, at step 630, the enhanced layer access unit 432 of the client 131 sends one or more second TCP (s) to the server (e. G., The server 110 of FIG. 1) Connections are established and at step 640 performed by, for example, the enhancement layer access unit 432 of the client 131, one or more enhancement layer sub-streams are transmitted from the server 110 via one or more second TCP connections And transmits at least one second request to receive in an adaptive streaming mode.

도 7b는 적응적 스트리밍 모드에서의 메시지 교환을 예시하는 개념적 시그널링 도면이다. 도 7b를 참조하면, 클라이언트(131)의 향상 계층 액세스 유닛(432)은 TCP 3-방향 핸드쉐이크 절차를 수행함으로써 서버(110)와의 제2 TCP 접속을 설정할 수 있다. 이후, 클라이언트(131)의 향상 계층 액세스 유닛(432)은 비디오의 향상 계층 데이터 세그먼트들 중 하나(예를 들어, E1)를 선택하고 선택된 향상 계층 데이터 세그먼트를 포함하는 향상 계층 파일의 URI를 포함하는 HTTP GET 요청을 서버에 송신할 수 있다. 향상 계층 파일이 선택된 향상 계층 데이터 세그먼트 뿐만 아니라 다른 데이터 세그먼트들을 포함하는 경우, 선택된 향상 계층 데이터 세그먼트를 포함하는 향상 계층 파일의 일부분을 표시하는 바이트-범위 파라미터를 HTTP GET 요청에 포함시킬 수 있다. 서버(110)는, HTTP GET 요청을 성공적으로 수신할 시에, 먼저 제2 TCP 접속을 통해 클라이언트(131)에 수신된 HTTP GET 요청의 성공적인 수신 및 인증을 표시하는 HTTP 200 OK 응답을 송신하고, 요청된 향상 계층 데이터 세그먼트(E1)를 송신한다. 이후, 서버(110)는, 전송된 향상 계층 데이터 세그먼트(E1)에 대한 TCP ACK를 수신할 때, 전송을 종료하고, 클라이언트(131)로부터 수신될 또다른 HTTP GET 요청을 기다린다. 클라이언트(131)의 향상 계층 액세스 유닛(432)은 필요한 경우 다음 향상 계층 데이터 세그먼트들을 계속 선택 및 요청하고, 비디오 전송의 완료 시에, 서버(110)와의 제2 TCP 접속을 종료한다.7B is a conceptual signaling diagram illustrating message exchange in an adaptive streaming mode. Referring to FIG. 7B, the enhancement layer access unit 432 of the client 131 can establish a second TCP connection with the server 110 by performing a TCP three-way handshake procedure. Thereafter, the enhancement layer access unit 432 of the client 131 selects one of the video enhancement layer data segments (e.g., E 1 ) and includes the URI of the enhancement layer file including the selected enhancement layer data segment An HTTP GET request can be sent to the server. If the enhancement layer file includes other enhancement layer data segments as well as other enhancement layer data segments, a byte-range parameter indicating a portion of the enhancement layer file containing the selected enhancement layer data segment may be included in the HTTP GET request. Upon successful receipt of the HTTP GET request, the server 110 first transmits an HTTP 200 OK response indicating successful reception and authentication of the HTTP GET request received at the client 131 via the second TCP connection, And sends the requested enhancement layer data segment (E 1 ). Thereafter, when the server 110 receives the TCP ACK for the transmitted enhancement layer data segment E 1 , the server 110 terminates the transmission and waits for another HTTP GET request to be received from the client 131. The enhancement layer access unit 432 of the client 131 continues to select and request the next enhancement layer data segments if necessary and terminates the second TCP connection with the server 110 upon completion of the video transmission.

도 8은 디지털 콘텐츠를 제공하기 위해 예를 들어, 서버(110)와 같은 서버에 의해 수행되는 방법의 흐름도이다. 도 8을 참조하면, 예를 들어, 서버(110)의 통신 유닛(230)에 의해 수행되는 단계 810에서, 일련의 기본 계층 데이터 세그먼트에 대한 제1 요청(예를 들어, 기본 계층 데이터 세그먼트들 모두에 대한 HTTP GET 요청)을 제1 통신 접속을 통해 클라이언트(예를 들어, 도 1의 클라이언트(131))로부터 수신한다. 예를 들어, 서버(110)의 통신 유닛(230)에 의해 수행되는 단계 820에서, 제1 요청에 응답하여 일련의 기본 계층 데이터 세그먼트를 클라이언트 디바이스(131)로 제1 통신 접속을 통해 전송한다. 예를 들어, 서버(110)의 통신 유닛(230)에 의해 수행되는 단계 830에서, 하나 이상의 향상 계층 데이터 요청에 대한 적어도 하나의 제2 요청(예를 들어, 향상 계층 데이터 세그먼트들 중 하나 이상에 대한 HTTP GET 요청(들))을 제2 통신 접속을 통해 클라이언트(131)로부터 수신한다. 예를 들어, 서버(110)의 통신 유닛(230)에 의해 수행되는 단계 840에서, 적어도 하나의 제2 요청에 응답하여 요청된 하나 이상의 향상 계층 데이터 세그먼트들을 클라이언트(131)에 제2 통신 접속을 통해 전송한다.Figure 8 is a flow diagram of a method performed by a server, e.g., server 110, to provide digital content. 8, in step 810 performed by, for example, the communication unit 230 of the server 110, a first request for a series of base layer data segments (e.g., all of the base layer data segments (E.g., an HTTP GET request for the client 131) from the client (e.g., client 131 of FIG. 1) over the first communication connection. For example, in step 820 performed by the communication unit 230 of the server 110, a series of base layer data segments are transmitted to the client device 131 via the first communication connection in response to the first request. For example, at step 830 performed by the communication unit 230 of the server 110, at least one second request for one or more enhancement layer data requests (e. G., One or more enhancement layer data segments) (E.g., HTTP GET request (s)) from the client 131 via the second communication connection. For example, in step 840 performed by the communication unit 230 of the server 110, the client 131 may request the one or more enhancement layer data segments requested in response to the at least one second request, Lt; / RTI >

본 개시에 기술된 시스템, 디바이스, 및 방법은 기본 계층 서브-스트림 및/또는 하나 이상의 향상 계층 서브-스트림에 할당된 네트워크 대역폭을 적응적으로 조정하는데 사용될 수 있다. 예를 들어, 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭은 클라이언트 측의 버퍼(예를 들어, 도 4의 클라이언트(131)의 버퍼(412))의 풀니스(fullness)와 같은 다양한 인자들 중 하나 이상의 인자에 기초하여 기본 계층 서브-스트림 및 하나 이상의 향상 계층 서브-스트림들 사이에서 나누어질 수 있다.The systems, devices, and methods described in this disclosure may be used to adaptively adjust network bandwidth allocated to base layer sub-streams and / or one or more enhancement layer sub-streams. For example, the total network bandwidth available for transmission of the requested digital content may be determined by various factors such as the fullness of the client side buffer (e.g., buffer 412 of client 131 of FIG. 4) Streams and one or more enhancement layer sub-streams based on one or more factors of the enhancement layer sub-streams.

도 9는 도 1에 도시된 클라이언트(131)의 다른 실시예를 예시하는 상세화된 블록도이다. 도 9를 참조하면, 클라이언트(131)는, 제한 없이, 저장 유닛(910)(MPD(911) 및 버퍼(912)를 포함함); 제어 유닛(920); 통신 유닛(930); 및 디코더(940)를 포함할 수 있다. 저장 유닛(910)(MPD(911) 및 버퍼(912)를 포함함), 제어 유닛(920) 및 디코더(940)의 구조 및 기능은 도 4에 도시된 저장 유닛(410)(MPD(411) 및 버퍼(412)를 포함함), 제어 유닛(420) 및 디코더(440)와 유사하다. 따라서, 간략함을 위해, 저장 유닛(910)(MPD(911) 및 버퍼(912)를 포함함), 제어 유닛(920) 및 디코더(940)에 대한 내용은 더 이상 상세하게 설명되지 않을 것이다.FIG. 9 is a detailed block diagram illustrating another embodiment of the client 131 shown in FIG. 9, client 131 includes, without limitation, storage unit 910 (including MPD 911 and buffer 912); A control unit 920; A communication unit 930; And a decoder 940. The structure and function of the storage unit 910 (including the MPD 911 and the buffer 912), the control unit 920 and the decoder 940 are similar to those of the storage unit 410 (MPD 411) And a buffer 412), a control unit 420 and a decoder 440. Thus, for simplicity, the contents of storage unit 910 (including MPD 911 and buffer 912), control unit 920 and decoder 940 will not be described in further detail.

도 4의 통신 유닛(430)과 유사한 통신 유닛(930)은 서버(110)로부터 디지털 콘텐츠의 일련의 기본 계층 세그먼트(예를 들어, 도 3의 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1))를 요청하고 수신하기 위해 제1 통신 접속(예를 들어, 제1 TCP 접속)을 설정하도록 구성되는 기본 계층(BL) 액세스 유닛(931); 및 서버(110)로부터 동일한 디지털 콘텐츠의 하나 이상의 향상 계층 데이터 세그먼트(예를 들어, 도 3의 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., 및 EN -1) 및 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N -1)) 중 적어도 일부)를 요청하고 수신하기 위해 하나 이상의 제2 통신 접속(예를 들어, 하나 이상의 제2 TCP 접속)을 설정하도록 구성되는 향상 계층(EL) 액세스 유닛(932)을 포함할 수 있다. 기본 계층 액세스 유닛(931) 및 향상 계층 액세스 유닛(932)은 도 4의 기본 계층 액세스 유닛(431) 및 향상 계층 액세스 유닛(432)에 대해 기술된 것과 동일하거나 유사한 방식으로 제1 및 제2 통신 접속을 설정할 수 있다.The communication unit 930 is similar to the communication unit 430 of Fig. 4 is a server (110) a set of the base layer segment (e.g., a digital content example, a set of the base layer of FIG segment (B 0, B 1, from B (BL) access unit 931 configured to set up a first communication connection (e.g., a first TCP connection) for requesting and receiving a plurality (e.g., 2 , ..., and B N-1 ) And one or more enhancement layer data segments (e.g., the first enhancement layer data segments E 0 , E 1 , E 2 , ..., and E N -1 ) of the same digital content from the server 110 and a second enhancement layer data segment (E '0, E' 1 , E '2, ..., and E' N -1)) of at least one to request a part of it) to receive one of the second communication connection (e.g. (EL) access unit 932 that is configured to set up one or more second TCP connections (e.g., one or more second TCP connections). The base layer access unit 931 and the enhancement layer access unit 932 are the same as or similar to those described for the base layer access unit 431 and the enhancement layer access unit 432 of FIG. You can set up a connection.

일 실시예에서, 통신 유닛(930)은 기본 계층 데이터 세그먼트들 및 저장 유닛(910) 내의 버퍼(912)의 풀니스 레벨을 참조해서 디지털 콘텐츠의 전송을 위해 이용가능한 네트워크 대역폭을 기본 계층 데이터 세그먼트들과 하나 이상의 향상 계층 데이터 세그먼트 사이에 나누도록 추가로 구성될 수 있다. 이러한 목적으로, 통신 유닛(930)은: (a) 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭 또는 전체 전송 레이트(예를 들어, 서버(110)가 기본 계층 세그먼트(B0, B1, B2,...,BN -1), 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., EN -1) 및 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N -1)를 전송할 수 있는 전송 레이트들의 합산)를 결정하도록 구성되는 대역폭(BW) 결정 유닛(933); (b) 저장 유닛(910) 내의 버퍼(912)의 풀니스 레벨을 결정하도록 구성되는 버퍼 풀니스(BF) 결정 유닛(934)을 더 포함할 수 있다.In one embodiment, the communication unit 930 refers to the base layer data segments and the integrity level of the buffer 912 in the storage unit 910 to determine the network bandwidth available for transmission of digital content to base layer data segments < RTI ID = 0.0 > And one or more enhancement layer data segments. For this purpose, the communications unit 930 may be configured to: (a) send the entire network bandwidth or total transmission rate available for transmission of the requested digital content (e.g., the server 110 receives the base layer segments B 0 , B 1 , B 2, ..., B N -1), the first enhancement layer data segment (E 0, E 1, E 2, ..., E N -1) and the second enhancement layer data segment (E '0 , E ' 1 , E' 2 , ..., and E ' N -1 ) of the transmission rate (s)); (BF) determination unit 934 configured to determine the level of fitness of the buffer 912 in the storage unit 910 (b).

여기서, "버퍼의 풀니스" 또는 "버퍼 풀니스(BF)"는 버퍼(예를 들어, 버퍼(812))의 전체 용량에 대비해서 버퍼내에 저장된 디지털 콘텐츠의 양을 지칭한다. 일부 실시예들에서, 버퍼의 전체 용량은 버퍼가 완전치 채워졌을 때 버퍼 내의 디지털 콘텐츠를 재생하는데 소요되는 시간(예를 들어, 30초)로 정의될 수 있다. 또한, 버퍼의 풀니스는 버퍼에 현재 저장된 디지털 콘텐츠를 재생하는데 소요되는 시간(예를 들어, 버퍼의 반이 차 있을 때 15초)으로 표현될 수 있다.Refers to the amount of digital content stored in the buffer relative to the total capacity of the buffer (e. G., Buffer 812). ≪ / RTI > In some embodiments, the total capacity of the buffer may be defined as the time (e.g., 30 seconds) required to reproduce the digital content in the buffer when the buffer is fully populated. Also, the bufferiness of the buffer may be expressed as the time required to reproduce the digital content currently stored in the buffer (e.g., 15 seconds when half of the buffer is full).

일 실시예에서, 대역폭 결정 유닛(933)은 전체 이용가능한 네트워크 대역폭을 다양한 방식들 중 하나 이상의 방식에 따라 결정하도록 구성될 수 있다. 일 실시예에서, 대역폭 결정 유닛(933)은: 서버(110)에 규정된 길이의 하나 이상의 데이터 세그먼트를 송신하고, 서버(110)에 의해 하나 이상의 데이터 세그먼트의 성공적 수신을 확인하는 하나 이상의 응답을 수신하는데 소요된 시간을 측정함으로써, 전체 이용가능한 네트워크 대역폭을 추정할 수 있다. 비-제한적인 예시에서, 대역폭 결정 유닛(933)은 예를 들어, (기본 계층 데이터 세그먼트들이 수신되는) 제1 통신 접속을 통해 하나 이상의 데이터 세그먼트를 송신하고 하나 이상의 응답을 수신함으로써, 제1 통신 접속에 기초하여 전체 이용가능한 네트워크 대역폭을 추정할 수 있다. 위의 예에서, 대역폭 결정 유닛(933)은 전체 이용가능한 네트워크 대역폭을 주기적으로 추정하고 전체 이용가능한 대역폭으로서 이전에 추정된 전체 이용가능한 대역폭들의 미리 결정된 수의 이동 평균(MA) 값을 이용가능한 네트워크 대역폭으로 제공하도록 구성될 수 있다.In one embodiment, bandwidth determination unit 933 may be configured to determine the overall available network bandwidth according to one or more of various manners. In one embodiment, the bandwidth determination unit 933 is configured to: send one or more data segments of a defined length to the server 110 and transmit one or more responses to the server 110 to confirm successful reception of one or more data segments By measuring the time taken to receive, the total available network bandwidth can be estimated. In a non-limiting example, the bandwidth determination unit 933 may be configured to determine the bandwidth of the first communication (e. G., The base layer data segments are received) by sending one or more data segments over a first communication connection The total available network bandwidth can be estimated based on the connection. In the above example, the bandwidth determination unit 933 periodically estimates the total available network bandwidth and uses a predetermined number of moving average (MA) values of previously estimated total available bandwidths as the total available bandwidth, Bandwidth < / RTI >

위의 실시예에서, 기본 계층(BL) 액세스 유닛(931)은 다양한 인자들 중 하나 이상의 인자에 기초하여 기본 계층 데이터 세그먼트들이 서버(예를 들어, 도 2의 서버(110)의 통신 유닛(230))에 의해 전송되는 레이트를 조정(예를 들어, 제한 내지 "스로틀링(throttling)")하도록 추가로 구성될 수 있다. 이러한 인자들의 예들은: (a) (예를 들어, 대역폭 결정 유닛(933)에 의해 결정된 바와 같은) 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭; 및 (b) (예를 들어, 버퍼 풀니스 결정 유닛(934)에 의해 결정된 바와 같은) 클라이언트(131)의 저장 유닛(910) 내의 버퍼(912)의 풀니스를 포함하지만 이에 한정되지 않는다. 비-제한적인 예에서, 기본 계층 액세스 유닛(931)은 버퍼(912)의 풀니스에 반비례하도록 기본 계층 세그먼트들(B0, B1, B2,..., 및 BN-1)의 전송 레이트를 제한하도록 구성될 수 있다.In the above embodiment, the base layer (BL) access unit 931 is configured to determine whether the base layer data segments are based on one or more of a variety of factors, such as the server (e.g., (E. G., Limiting or "throttling") the rate that is transmitted by the base station (e. Examples of such factors are: (a) the total network bandwidth available for transmission of the requested digital content (e.g., as determined by bandwidth determination unit 933); And (b) the buffer 912 in the storage unit 910 of the client 131 (e.g., as determined by the buffer availability determination unit 934). In a non-limiting example, the base layer access unit 931 is configured to determine the number of base layer segments B 0 , B 1 , B 2 , ..., and B N-1 to be inversely proportional to the fitness of the buffer 912 And may be configured to limit the transmission rate.

일 실시예에서, 기본 계층 액세스 유닛(931)은 도 7a와 함께 기술된 ACK 페이싱 기법과 같은 다양한 페이싱 기법들 중 하나를 사용함으로써 전송 레이트를 제한하도록 구성될 수 있다. 비-제한적인 예시에서, 기본 계층 액세스 유닛(931)은 TCP ACK들(즉, 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 성공적 수신에 응답하여 클라이언트(131)로부터 서버(110)로 송신되는 TCP ACK들)이 생성되어 클라이언트(131)로부터 서버(110)로 송신되는 레이트를 조정함으로써 전송 레이트를 간접적으로 제한하도록 구성될 수 있다. 기본 계층 액세스 유닛(931)에 관련된 추가적인 상세항목들은 도 10 및 11과 함께 기술된다.In one embodiment, base layer access unit 931 may be configured to limit the transmission rate by using one of a variety of pacing schemes such as the ACK pacing scheme described in conjunction with FIG. 7A. In a non-limiting example, the base layer access unit 931 receives a response to the successful reception of TCP ACKs (i.e., base layer data segments B 0 , B 1 , B 2 , ..., and B N-1 ) (TCP ACKs transmitted from the client 131 to the server 110) are generated and transmitted to the server 110 from the client 131. The transmission rate may be indirectly limited by adjusting the rate at which the TCP ACKs are generated and transmitted from the client 131 to the server 110. Additional detail items related to the base layer access unit 931 are described in conjunction with FIGS. 10 and 11.

일 실시예에서, 향상 계층 액세스 유닛(932)은 하나 이상의 인자들에 기초하여 하나 이상의 향상 계층 데이터 세그먼트들(예를 들어, 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., 및 EN -1) 및 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N-1)) 중 어느 것을 서버(110)로부터 수신할지 여부를 결정하도록 추가로 구성될 수 있다. 이러한 인자들의 예들은, (a) (예를 들어, 전체 대역폭 결정 유닛(833)에 의해 결정되는 바와 같은) 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭; 및 (b) 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위해 할당된 네트워크 대역폭의 양(예를 들어, 버퍼(912)의 풀니스의 견지에서 기본 계층 액세스 유닛(831)에 의해 제한되거나 "스로틀링"되는 바와 같은 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송 레이트)를 포함하지만 이에 한정되지 않는다. 향상 계층 액세스 유닛(932)에 관련된 추가적인 기술적 상세항목들은 도 12 및 13과 함께 기술된다.In one embodiment, enhancement layer access unit 932 may include one or more enhancement layer data segments (e.g., first enhancement layer data segments E 0 , E 1 , E 2 , ...) based on one or more factors. ., N -1, and E) and a second whether received from the enhancement layer data segment (E '0, E' 1 , E '2, ..., and E' N-1)) which the server (110 in) Or < / RTI > Examples of such factors include (a) the total network bandwidth available for transmission of the requested digital content (e.g., as determined by the overall bandwidth determination unit 833); And (b) the amount of network bandwidth allocated for transmission of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) (B 0 , B 1 , B 2 , ..., and B N-1 ) as limited or "throttled" by the base layer access unit 831 But are not limited to. Additional technical details relating to the enhancement layer access unit 932 are described in conjunction with FIGS. 12 and 13. FIG.

도 10은 도 9에 도시된 기본 계층(BL) 액세스 유닛(931)의 실시예를 예시하는 상세화된 블록도이다. 도 10을 참조하면, 기본 계층 액세스 유닛(931)은: 서버(예를 들어, 도 1의 서버(110))로부터 일련의 기본 계층 세그먼트들(예를 들어, 도 3의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN -1))의 전송을 위한 네트워크 대역폭(즉, 전송 레이트)를 결정하도록 구성되는 대역폭(BW) 할당 유닛(1010); 및 결정된 네트워크 대역폭에 기초하여 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1)가 서버(110)로부터 전송되는 레이트를 제한하거나 스로틀링하도록 구성되는 스로틀링 유닛(1020)을 포함할 수 있다.10 is a detailed block diagram illustrating an embodiment of a base layer (BL) access unit 931 shown in FIG. 10, the base layer access unit (931) comprising: a server (e.g., server 110 of FIG. 1) a set of the base layer segments from (e.g., base layer segment of Fig. 3 (B 0 A bandwidth (BW) allocation unit 1010 configured to determine a network bandwidth (i.e., a transmission rate) for transmission of a plurality of data streams (e.g., B 1 , B 2 , ..., and B N -1 ) And a throttle configured to limit or throttle the rate at which a series of base layer segments (B 0 , B 1 , B 2 , ..., and B N-1 ) are transmitted from the server 110 based on the determined network bandwidth. Ring unit 1020 as shown in FIG.

일 실시예에서, 대역폭 할당 유닛(1010)은 예를 들어, 도 9의 버퍼 풀니스 결정 유닛에 의해 결정된 바와 같은, 버퍼 풀니스에 기초하여 서버(110)로부터 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위한 네트워크 대역폭을 결정하도록 구성될 수 있다. 비-제한적인 예시에서, 대역폭 할당 유닛(1010)은 다음 수학식에 따라 네트워크 대역폭을 결정하도록 구성될 수 있다:In one embodiment, bandwidth allocation unit 1010 receives a set of base layer segments (B 0 , B 0 ) from server 110 based on buffer fullness, e.g., as determined by the buffer integrity determination unit of FIG. B 1 , B 2 , ..., and B N-1 ). In a non-limiting example, the bandwidth allocation unit 1010 may be configured to determine the network bandwidth according to the following equation:

BWBL = EBL + α (수학식 1)BW BL = E BL +? (Equation 1)

여기서 "BWBL"는 서버(110)로부터 클라이언트(131)로 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위해 할당된 네트워크 대역폭을 나타내고, "EBL"는 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1)의 인코딩 레이트를 나타내고, "α"는 클라이언트(131)의 저장 유닛(910) 내의 버퍼(912)의 풀니스에 기초하여 결정되고 동적으로 조정될 수 있는 스로틀링 파라미터이다.Here, "BW BL " represents the network bandwidth allocated for the transmission of a series of base layer segments (B 0 , B 1 , B 2 , ..., and B N-1 ) from the server 110 to the client 131 indicates, "E BL" is a set of the base layer segment (B 0, B 1, B 2, ..., and B N-1) indicates the encoding rate of, "α" is the storage unit of the client 131 ( Lt; / RTI > is a throttling parameter that can be determined and dynamically adjusted based on the fitness of the buffer 912 in the memory (e. G.

일 실시예에서, 대역폭 할당 유닛(1010)은 버퍼(812)의 풀니스에 반비례하여 스로틀링 파라미터 α를 결정하도록 구성될 수 있다. 비-제한적인 예시에서, 스로틀링 파라미터 α는 다음 수학식에 따라 결정될 수 있다:In one embodiment, the bandwidth allocation unit 1010 may be configured to determine the throttling parameter a in inverse proportion to the fitness of the buffer 812. In a non-limiting example, the throttling parameter a may be determined according to the following equation:

Figure pat00001
(수학식 2)
Figure pat00001
(2)

여기서, "α"는 스로틀링 파라미터를 나타내고, "BWtotal"는 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭을 나타내고, "EBL"는 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 인코딩 레이트를 나타내고, "λ"는 미리 결정된 상수를 나타내고, "b"는 버퍼 풀니스를 나타낸다.Here, "α" denotes a throttling Parameters, "BW total" represents the total network bandwidth available for transmission of the digital content, "E BL" is the base layer data segment (B 0, B 1, B 2, ..., and B N-1 ), "lambda" represents a predetermined constant, and "b" represents buffer poolness.

도 11은 버퍼 풀니스로부터 스로틀링 파라미터를 결정하기 위한 그래프를 예시한다. 도 11을 참조하면, 그래프(1100)는 제1 및 제2 그래프들(1110 및 1120)을 포함하고, 이들은 상이한 값들을 가지는 상수 "λ"를 가지고 수학식 2에 따라 버퍼 풀니스 "b"에 대해 도식화된 스로틀링 파라미터 "α"의 그래프들이다. 제1 그래프(1110)는 "BWtotal - BWBL" 및 "λ"를 각각 10 Mbit/sec 및 1/2으로, 그리고 제2 그래프(1120)는 10 Mbit/sec 및 1/6로 설정해서 도식화된 그래프들이다(즉, 제1 그래프(1110)는 제2 그래프(1120)보다 더 큰 "λ"를 가지고 도식화된다). 도 11에 예시된 바와 같이, 제1 그래프(1110)에서의 스로틀링 파라미터 "b"의 값은 제2 그래프(1120)에 비해 버퍼 풀니스 "b"가 변함에 따라 더욱 빨리 변경된다(즉, 수학식 2에서의 상수 "λ"의 크기는 스로틀링 파라미터 "b"의 변경의 레이트에 비례한다). 제1 그래프(1110)는 제2 그래프(1120)에 비해 더욱 적응적이지만 덜 안정적인 조정 방식을 나타낸다.Figure 11 illustrates a graph for determining throttling parameters from buffer pulses. 11, the graph 1100 includes first and second graphs 1110 and 1120, which have a constant "[lambda]" with different values, Are the graphs of the throttling parameter "a" The first graph 1110 is graphically displayed by setting "BW total - BW BL " and "λ" at 10 Mbit / sec and 1/2 respectively and the second graph 1120 at 10 Mbit / sec and 1/6 (I.e., the first graph 1110 is plotted with a larger "? &Quot; than the second graph 1120). 11, the value of the throttling parameter "b" in the first graph 1110 changes more rapidly as the buffer clearance "b" changes relative to the second graph 1120 (i.e., The magnitude of the constant "?" In equation (2) is proportional to the rate of change of the throttling parameter "b"). The first graph 1110 exhibits a more adaptive but less stable adjustment scheme than the second graph 1120. [

그래프들(1110 및 1120) 모두에서, 클라이언트(131)의 저장 유닛(910) 내의 버퍼(912)가 거의 또는 완전히 빌 때, 클라이언트 측에서 요청된 디지털 콘텐츠의 끊김 없는 재생을 보장하기 위해 더 높은 레벨의 전송 레이트 또는 네트워크 대역폭(예를 들어, 초당 비트로 표현됨)이 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위해 할당된다. 또한, 그래프들(1110 및 1120) 모두에서, 버퍼(912)가 거의 또는 완전히 찰 때 더 낮은 레벨의 전송 레이트 또는 네트워크 대역폭이 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)에 대해 할당되고, 따라서, 더 많은 네트워크 대역폭이 제1 향상 계층 데이터 세그먼트(E0, E1, E2,..., 및 EN -1) 및/또는 제2 향상 계층 데이터 세그먼트(E'0, E'1, E'2,..., 및 E'N -1)에 할당되고, 이에 의해 재생 중인 디지털 콘텐츠의 품질을 개선할 수 있다.In both graphs 1110 and 1120, when the buffer 912 in the storage unit 910 of the client 131 is nearly or completely empty, a higher level (E.g., expressed in bits per second) are allocated for transmission of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ). Further, in both graphs 1110 and 1120, a lower level transmission rate or network bandwidth may be used for the base layer data segments B 0 , B 1 , B 2 , ..., And B N-1 ), so that more network bandwidth is allocated for the first enhancement layer data segments (E 0 , E 1 , E 2 , ..., and E N -1 ) and / Is assigned to the layer data segments (E ' 0 , E' 1 , E ' 2 , ..., and E' N -1 ), thereby improving the quality of the digital content being played back.

다시 도 10을 참조하면, 스로틀링 유닛(1020)은 기본 계층 세그먼트들(B0, B1, B2,..., 및 BN -1)의 전송 레이트를 제한하기 위해 서버(110)와 통신하도록 구성될 수 있다. 일 실시예에서, 스로틀링 유닛(1020)은 대역폭 할당 유닛(1010)에 의해 결정된 바와 같이, 일련의 기본 계층 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위한 네트워크 대역폭에 기초하여 일련의 TCP ACK들(즉, 기본 계층 데이터 세그먼트들(B0, B1, B2,..., 및 BN-1)의 적어도 일부의 성공적 수신에 응답하여 클라이언트(131)로부터 서버(110)에 송신되는 TCP ACK들) 사이의 시간적 이격을 변조하도록 구성될 수 있다. 비-제한적인 예시에서, 스로틀링 유닛(1020)은 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송 레이트를 대역폭 할당 유닛(1010)에 의해 결정된 전송 레이트 미만으로 유지하기 위해 TCP ACK 들의 전송을 지연시키거나 신속처리할 수 있다. 데이터 세그먼트들의 전송 레이트를 제한하거나 스로틀링하기 위해 필요한 기술적 상세항목들은 공지되어 있으며, 본 개시에서의 추가적인 설명 없이도 구현될 수 있다.Referring again to FIG. 10, the throttling unit 1020 includes a server 110 and a server 110 to limit the transmission rate of the base layer segments (B 0 , B 1 , B 2 , ..., and B N -1 ) Lt; / RTI > In one embodiment, the throttling unit 1020 is operable to determine the number of base layer segments (B 0 , B 1 , B 2 , ..., and B N-1 ) in the sequence, as determined by the bandwidth allocation unit 1010 In response to successful receipt of a series of TCP ACKs (i.e., at least a portion of base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) based on the network bandwidth for transmission And TCP ACKs sent from the client 131 to the server 110). In a non-limiting example, the throttling unit 1020 may be configured to determine the transmission rate of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) by the bandwidth allocation unit 1010 And may delay or expedite the transmission of TCP ACKs to remain below the determined transmission rate. The technical details necessary to limit or throttle the transmission rate of data segments are known and may be implemented without further explanation in this disclosure.

도 12는 도 9에 도시된 향상 계층(EL) 액세스 유닛(932)의 실시예를 예시하는 상세화된 블록도이다. 도 12를 참조하면, 향상 계층 액세스 유닛(832)은 서버(예를 들어, 도 1의 서버(110))로부터 하나 이상의 향상 계층 세그먼트들(예를 들어, 도 3의 제1 향상 계층 데이터 세그먼트들(E0, E1, E2,..., 및 EN -1) 및 제2 향상 계층 데이터 세그먼트들(E'0, E'1, E'2,..., 및 E'N -1))의 전송을 위해 네트워크 대역폭(즉, 전송 레이트)을 결정하도록 구성되는 대역폭 할당 유닛(1210); 및 결정된 네트워크 대역폭에 기초하여 하나 이상의 향상 계층 세그먼트들 중 어느 것이 서버(110)로부터 수신될지를 결정(그리고 이에 의해, 재생될 디지털 콘텐츠의 품질을 결정)하도록 구성되는 스케쥴링 유닛(1220)을 포함할 수 있다.12 is a detailed block diagram illustrating an embodiment of enhancement layer (EL) access unit 932 shown in FIG. 12, the enhancement layer access unit 832 may receive one or more enhancement layer segments (e.g., the first enhancement layer data segments of FIG. 3) from a server (e.g., server 110 of FIG. 1) (E 0, E 1, E 2, ..., N -1, and E) and a second enhancement layer of the data segment (E '0, E' 1 , E '2, ..., and E' N - 1)), the bandwidth assignment unit 1210 configured to determine the network bandwidth (that is, the transmission rate) for transmission; And a scheduling unit 1220 configured to determine which of the one or more enhancement layer segments is to be received from the server 110 based on the determined network bandwidth (and thereby determine the quality of the digital content to be played back) .

일 실시예에서, 대역폭 할당 유닛(1210)은 다양한 인자들 중 하나 이상에 기초하여 하나 이상의 향상 계층 데이터 세그먼트들의 전송을 위한 네트워크 대역폭을 결정하도록 구성될 수 있다. 이러한 인자들의 예는: (a) (예를 들어, 도 9의 대역폭 결정 유닛(933)에 의해 결정된 바와 같은) 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭; 및 (b) 일련의 기본 계층 데이터 세그먼트의 전송을 위해 할당된 네트워크 대역폭의 양(예를 들어, 버퍼(912)의 풀니스의 견지에서 도 9의 기본 계층 액세스 유닛(931)에 의해 제한되거나 "스로틀링되는" 것으로서 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송 레이트)을 포함하지만 이에 한정되지 않는다.In one embodiment, the bandwidth allocation unit 1210 may be configured to determine network bandwidth for transmission of one or more enhancement layer data segments based on one or more of a variety of factors. Examples of such parameters are: (a) the total network bandwidth available for transmission of the requested digital content (e.g., as determined by the bandwidth determination unit 933 of FIG. 9); And (b) the amount of network bandwidth allocated for transmission of a series of base layer data segments (e.g., limited by the base layer access unit 931 of FIG. 9 from the perspective of the buffer 912) But not limited to, the transmission rate of the base layer data segments (B 0 , B 1 , B 2 , ..., and B N-1 ) as being "throttled.

비-제한적인 예로서, 대역폭 할당 유닛(1210)은 아래 수학식에 따라 네트워크 대역폭을 결정하도록 구성될 수 있다:As a non-limiting example, the bandwidth allocation unit 1210 may be configured to determine the network bandwidth according to the following equation:

BWEL = BWtotal - BWBL (수학식 3)BW EL = BW total - BW BL (Equation 3)

여기서, "BWtotal"는 요청된 디지털 콘텐츠의 전송을 위해 이용가능한 전체 네트워크 대역폭을 나타내고, "BWBL"는 서버(110)로부터 클라이언트(131)로 일련의 기본 계층 데이터 세그먼트(B0, B1, B2,..., 및 BN-1)의 전송을 위해 할당된 네트워크 대역폭을 나타낸다."BW BL " represents a series of base layer data segments (B 0 , B 1 ) from the server 110 to the client 131, "BW total " represents the total network bandwidth available for transmission of the requested digital content, , B 2 , ..., and B N-1 ).

일 실시예에서, 대역폭 할당 유닛(1210)은 미리 결정된 일련의 시간 기간 각각에 대한 네트워크 대역폭을 주기적으로 결정하도록 구성될 수 있다. 도 13a 및 13b는 네트워크 대역폭의 결정 및 하나 이상의 향상 계층 데이터 세그먼트의 선택을 예시하는 도면이다. 도 13a 및 13b을 참조하면, 비-제한적 예시에서, 대역폭 할당 유닛(1210)은 0 내지 2초 사이의 시간 구간 동안, 2 내지 8초 사이의 시간 구간들에 대해 할당될 네트워크 대역폭을 결정할 수 있다. 또한, 대역폭 할당 유닛(1010)은 8 내지 10초 사이의 시간 구간 동안 10 내지 16초 사이의 시간 구간들에 대해 할당될 네트워크 대역폭을 결정할 수 있는 등의 방식이다.In one embodiment, bandwidth allocation unit 1210 may be configured to periodically determine network bandwidth for each of a predetermined series of time periods. 13A and 13B are diagrams illustrating the determination of network bandwidth and the selection of one or more enhancement layer data segments. 13A and 13B, in a non-limiting example, the bandwidth allocation unit 1210 may determine the network bandwidth to be allocated for time intervals between 2 and 8 seconds for a time interval between 0 and 2 seconds . In addition, the bandwidth allocation unit 1010 can determine the network bandwidth to be allocated for time intervals between 10 and 16 seconds for a time interval between 8 and 10 seconds.

도 12를 다시 참조하면, 일 실시예에서, 스케쥴링 유닛(1220)은:(a) 네트워크 할당 유닛(1210)에 의해 결정된 네트워크 대역폭에 기초하여 향상 계층 세그먼트들 중 어느 것을 향후에 서버(110)로부터 수신할지를 선택하고; 그리고 (b) 향상 계층 데이터 세그먼트들 중 선택된 세그먼트들에 대한 HTTP GET 요청(들)을 생성 및 송신하도록 구성될 수 있다. 다시 도 13a 및 13b를 참조하면, 비-제한적인 예시에서, 스케쥴링 유닛(1220)은 0 내지 2초 사이의 시간 구간 동안 대역폭 할당 유닛(1210)에 의해 결정되는 바와 같은 네트워크 대역폭을 제공받고, 향상 계층 데이터 세그먼트들 중 어느 것이 2 내지 8초 사이의 시간 구간들 동안 수신될지를 선택할 수 있다(그리고, 따라서, 2 내지 8초 사이의 시간 구간들 동안 재생될 디지털 콘텐츠의 품질을 결정한다). 도 13a 및 13b에 예시된 예에서, 제1 향상 계층 데이터 세그먼트(E1, E2, 및 E3) 및 제2 향상 계층 데이터 세그먼트(E'1, E'2, 및 E'3)의 일부 또는 전부가 2 내지 8초 사이의 시간 구간들 동안 서버(110)로부터 수신되도록 선택될 수 있다.12, in one embodiment, the scheduling unit 1220 is configured to: (a) determine which of the enhancement layer segments will be forwarded from the server 110 in the future based on the network bandwidth determined by the network allocation unit 1210 Select whether to receive; And (b) generate and transmit HTTP GET request (s) for selected ones of the enhancement layer data segments. Referring again to Figures 13A and 13B, in a non-limiting example, the scheduling unit 1220 is provided with network bandwidth as determined by the bandwidth allocation unit 1210 for a time interval between 0 and 2 seconds, (And thus, determines the quality of the digital content to be played during time intervals between 2 and 8 seconds) during which time intervals between 2 and 8 seconds. In the example in Figs. 13a and 13b embodiment, a portion of the first enhancement layer data segment (E 1, E 2, and E 3) and the second enhancement layer data segment (E '1, E' 2 , and E '3) Or all may be selected to be received from the server 110 for time intervals between 2 and 8 seconds.

도 13a에 도시된 바와 같이, 대역폭 할당 유닛(1210)에 의해 할당된 네트워크 대역폭이 3개의 향상 계층 데이터 세그먼트들의 수신을 허용할 만큼 충분한 경우, 스케쥴링 유닛(1220)은 2 내지 8초 사이의 시간 구간 동안 제1 향상 계층 데이터 세그먼트들(E1, E2, 및 E3)을 수신하도록 선택할 수 있다. 대안적으로, 도 13b에 도시된 바와 같이, 스케쥴링 유닛(1220)은 2 내지 8초 사이의 시간 구간들 동안 제1 향상 계층 데이터 세그먼트들(E1 및 E2) 및 제2 향상 계층 데이터 세그먼트(E'1)를 수신하도록 선택할 수 있다. 도 13a에 예시된 예는 도 13b에 예시된 예에 비해 상대적으로 안정된 품질의 디지털 콘텐츠를 제공할 수 있는 반면, 도 13b에 예시된 예는 도 13a에 예시된 예에 비해 적어도 일시적으로 더 높은 레벨의 품질에서 디지털 콘텐츠를 제공할 수 있다.13A, if the network bandwidth allocated by the bandwidth allocation unit 1210 is sufficient to allow reception of three enhancement layer data segments, then the scheduling unit 1220 may determine that the time interval between 2 and 8 seconds while can be selected to receive one of the enhancement layer data segment (E 1, E 2, and E 3). Alternatively, as shown in FIG. 13B, the scheduling unit 1220 may generate the first enhancement layer data segments (E 1 and E 2 ) and the second enhancement layer data segment (E 1 and E 2 ) during time intervals between 2 and 8 seconds E ' 1 ). The example illustrated in FIG. 13A may provide a relatively stable quality of digital content as compared to the example illustrated in FIG. 13B, while the example illustrated in FIG. 13B may be at least temporarily higher in level than the example illustrated in FIG. It is possible to provide digital contents in quality.

일부 실시예들에 따르면, 도 14는 기본 계층 및 향상 계층 데이터 세그먼트들에 대한 네트워크 대역폭을 나누기 위해, 예를 들어, 클라이언트(131)와 같은 클라이언트에 의해 수행되는 방법의 흐름도이다. 도 14를 참조하면, 예를 들어, 클라이언트(131)의 버퍼 풀니스 결정 유닛(934)에 의해 수행되는 단계 1410에서, 서버(예를 들어, 도 1의 서버(110))로부터 수신되는 일련의 기본 계층 데이터 세그먼트 및 하나 이상의 향상 계층 데이터 세그먼트를 임시로 저장하기 위한 버퍼(예를 들어, 도 9의 버퍼(912))의 풀니스 레벨을 결정한다. 예를 들어, 클라이언트(131)의 대역폭 결정 유닛(933)에 의해 수행되는 단계 1420에서, 일련의 기본 계층 세그먼트 및 하나 이상의 향상 계층 세그먼트의 전달을 위해 이용가능한 전체 네트워크 대역폭을 추정한다.According to some embodiments, FIG. 14 is a flow diagram of a method performed by a client, for example, client 131, to divide network bandwidth for base layer and enhancement layer data segments. 14, in step 1410 performed by, for example, the buffer availability determination unit 934 of the client 131, a series of packets received from the server (e.g., the server 110 of FIG. 1) (E.g., buffer 912 of FIG. 9) for temporarily storing a base layer data segment and one or more enhancement layer data segments. For example, in step 1420 performed by the bandwidth decision unit 933 of the client 131, an estimate of the total network bandwidth available for the delivery of a series of base layer segments and one or more enhancement layer segments.

예를 들어, 클라이언트(131)의 기본 계층 액세스 유닛(931)에 의해 수행되는 단계 1430에서, 일련의 기본 계층 데이터 세그먼트의 전송 레이트는 서버(110)와 통신함으로써 버퍼(912)의 풀니스 레벨 및/또는 전체 이용가능한 네트워크 대역폭에 기초하여 간접적으로 조정될 수 있다. 예를 들어, 일련의 기본 계층 데이터 세그먼트의 성공적인 수신에 응답하여 서버(110)에 송신될 일련의 확인응답(ACK)의 시간적 이격은 기본 계층 액세스 유닛(931)에 의해 변조될 수 있다. 예를 들어, 클라이언트(131)의 향상 계층 액세스 유닛(932)에 의해 수행되는 단계 1440에서, 하나 이상의 향상 계층 데이터 세그먼트들 중 어느 것이 수신될지는 버퍼(912)의 풀니스 레벨 및/또는 전체 이용가능한 네트워크 대역폭에 기초하여 결정된다.For example, in step 1430 performed by the base layer access unit 931 of the client 131, the transmission rate of a sequence of base layer data segments may be determined by the level of privacy of the buffer 912 by communicating with the server 110, / RTI > and / or indirectly based on the total available network bandwidth. For example, the temporal spacing of a series of acknowledgments (ACKs) to be sent to the server 110 in response to successful receipt of a series of base layer data segments may be modulated by the base layer access unit 931. [ For example, in step 1440 performed by the enhancement layer access unit 932 of the client 131, it is determined which of the one or more enhancement layer data segments is to be received based on the integrity level of the buffer 912 and / Is determined based on the network bandwidth.

본 개시내용이 바람직한 실시예들과 관련하여 도시되고 기술되었지만, 당업자는 다양한 변경들 및 수정들이 첨부된 청구항들에 정의된 바와 같은 발명의 사상 및 범위로부터의 이탈 없이 이루어질 수 있음을 인지할 것이다. 또한, 본 개시내용의 방법들 및 시스템들이 특정 실시예들에 관해 전술되었지만, 구성요소들 또는 그 동작들의 일부 또는 전무가 범용 하드웨어 아키텍쳐를 가지는 컴퓨터 시스템을 사용하여 구현될 수 있다. 도 15는 본원에 기술된 구성요소들 및 그 프로세스들 중 하나 이상을 구현하기 위해 사용될 수 있는, 컴퓨팅 시스템 아키텍쳐의 블록도를 예시한다. 도 15를 참조하면, 하나의 구현예에서, 하드웨어 시스템(1500)은 프로세서(1502), 캐시 메모리(1504), 및 본원에 기술된 기능들과 관련된 하나 이상의 소프트웨어 애플리케이션들/드라이버들(미도시)을 포함할 수 있다.While this disclosure has been shown and described with respect to preferred embodiments, those skilled in the art will recognize that various changes and modifications can be made without departing from the spirit and scope of the invention as defined in the appended claims. Moreover, although the methods and systems of the present disclosure have been described above with regard to specific embodiments, some or all of the elements or operations thereof may be implemented using a computer system having a general purpose hardware architecture. Figure 15 illustrates a block diagram of a computing system architecture that may be used to implement one or more of the components and processes thereof described herein. 15, in one implementation, a hardware system 1500 includes a processor 1502, a cache memory 1504, and one or more software applications / drivers (not shown) associated with the functions described herein. . ≪ / RTI >

추가로, 하드웨어 시스템(1500)은 고성능 입력/출력(I/O) 버스(1506) 및 표준 I/O 버스(1508)를 포함할 수 있다. 호스트 브리지(1510)는 프로세서(1502)를 고성능 I/O 버스(1506)에 커플링시키는 반면, I/O 버스 브리지(1512)는 2개의 버스들(1506 및 1508)을 서로 커플링시킨다. 시스템 메모리(1514) 및 네트워크/통신 인터페이스(1516)는 버스(1506)에 커플링된다. 하드웨어 시스템(1500)은 비디오 메모리(미도시) 및 비디오 메모리에 커플링된 디스플레이 디바이스(미도시)를 더 포함할 수 있다. 대용량 저장소(1518) 및 I/O 포트들(1520)은 버스(1508)에 커플링된다. 하드웨어 시스템(1500)은 선택적으로 키보드(미도시) 및 포인팅 디바이스(미도시)를 포함할 수 있다. 또한, 그것은 표준 I/O 버스(1508)에 커플링된 디스플레이 디바이스(미도시)를 포함할 수 있다. 집합적으로, 이들 구성요소들은 캘리포니아주, 산타 클라라의 인텔 코오포레이션(Intel Corporation)에 의해 제조된 하나 이상의 프로세서들 뿐만 아니라 임의의 다른 적절한 프로세서에 기반하는 범용 컴퓨터 시스템들을 포함하지만 이에 제한되지 않는 컴퓨터 하드웨어 시스템들의 넓은 카테고리를 나타내도록 의도된다.In addition, the hardware system 1500 may include a high performance input / output (I / O) bus 1506 and a standard I / O bus 1508. Host bridge 1510 couples processor 1502 to high performance I / O bus 1506 while I / O bus bridge 1512 couples two busses 1506 and 1508 to each other. System memory 1514 and network / communication interface 1516 are coupled to bus 1506. The hardware system 1500 may further include a video memory (not shown) and a display device (not shown) coupled to the video memory. Mass storage 1518 and I / O ports 1520 are coupled to bus 1508. The hardware system 1500 may optionally include a keyboard (not shown) and a pointing device (not shown). It may also include a display device (not shown) coupled to the standard I / O bus 1508. Collectively, these components include, but are not limited to, general purpose computer systems based on one or more processors manufactured by Intel Corporation of Santa Clara, California, as well as any other suitable processor And is intended to represent a broad category of computer hardware systems.

하드웨어 시스템(1500)의 구성요소들이 하기에 더욱 상세히 기술된다. 특히, 네트워크 인터페이스(1516)는 하드웨어 시스템(1500) 및 이더넷(예를 들어, IEEE 802.3) 네트워크 등과 같은 광범위한 네트워크들 중 임의의 것 사이의 통신을 제공한다. 서버(110)(도 1 및 2)의 경우, 네트워크 인터페이스(1516)는 하드웨어 시스템(1500)으로 하여금 클라이언트들(130)과 통신하게 하기 위해, 해당 클라이언트들(130)에 접속된 통신 네트워크(120)와 하드웨어 시스템(1500) 사이에서 인터페이싱한다. 유사하게, 클라이언트(130)(도 1, 4 및 8)의 경우, 네트워크 인터페이스(1516)는 하드웨어 시스템(1500)으로 하여금 서버(110)와 통신하게 하기 위해 서버(110)에 통신 시스템(120)과 하드웨어 시스템(1500) 사이에서 인터페이싱한다. 대용량 저장소(1518)는 클라이언트들(130) 또는 서버(110)에서 구현되는 전술된 기능들을 수행하기 위한 데이터 및 프로그래밍 명령들에 대한 영구 저장을 제공하는 반면, 시스템 메모리(1514)(예를 들어, DRAM)는 프로세서(1502)에 의해 실행될 때 데이터 및 프로그래밍 명령들에 대한 임시 저장을 제공한다. I/O 포트들(1520)은, 하드웨어 시스템(1500)에 커플링될 수 있는 추가적인 주변 디바이스들 사이의 통신을 제공하는 하나 이상의 직렬 및/또는 병렬 통신 포트들이다.The components of the hardware system 1500 are described in further detail below. In particular, network interface 1516 provides communication between any of a wide variety of networks, such as hardware system 1500 and Ethernet (e.g., IEEE 802.3) networks. In the case of the server 110 (Figures 1 and 2), the network interface 1516 is connected to the communications network 120 (e.g., the network 130) connected to the clients 130 to allow the hardware system 1500 to communicate with the clients 130 ) And the hardware system 1500. [ Similarly, in the case of client 130 (FIGS. 1, 4 and 8), network interface 1516 provides communication system 120 with server 110 to enable hardware system 1500 to communicate with server 110. [ Lt; / RTI > Mass storage 1518 provides persistent storage of data and programming instructions for performing the aforementioned functions implemented in clients 130 or server 110 while system memory 1514 (e.g., DRAM) provides temporary storage of data and programming instructions when executed by the processor 1502. < RTI ID = 0.0 > I / O ports 1520 are one or more serial and / or parallel communication ports that provide for communication between additional peripheral devices that may be coupled to hardware system 1500.

하드웨어 시스템(1500)은 다양한 시스템 아키텍쳐들을 포함할 수 있다. 또한, 하드웨어 시스템(1500)의 다양한 컴포넌트들이 재배열될 수 있다. 예를 들어, 캐시(1504)는 프로세서(1502)와 함께 온칩(on-chip)화될 수 있다. 대안적으로, 캐시(1504) 및 프로세서(1502)는 "프로세서 모듈"로서 함께 패키지화될 수 있고, 프로세서(1502)는 "프로세서 코어"로서 지칭된다. 또한, 본 개시내용의 특정 구현예들은 위의 컴포넌트들을 모두 요구하지도 포함하지도 않을 수 있다. 예를 들어, 표준 I/O 버스(1508)에 커플링된 것으로 도시된 주변 디바이스들은 고성능 I/O 버스(1506)에 커플링될 수 있다. 추가로, 일부 구현예들에서, 단일 버스만이 존재할 수 있으며, 하드웨어 시스템(1500)의 컴포넌트들이 단일 버스에 커플링된다. 또한, 하드웨어 시스템(1500)은 추가 프로세서들, 저장 디바이스들 또는 메모리들과 같은 추가적인 컴포넌트들을 포함할 수 있다. 하기에 논의된 바와 같이, 일 실시예에서, 본원에 기술된 디지털 콘텐츠를 제공하기 위한 시스템(100)을 포함하는 시스템의 동작들은 하드웨어 시스템(1500)에 의해 실행되는 일련의 소프트웨어 루틴들로서 구현될 수 있다. 이들 소프트웨어 루틴들은 프로세서(1502)와 같은 하드웨어 시스템 내의 프로세서에 의해 실행될 복수의 또는 일련의 명령들을 포함한다. 초기에, 일련의 명령들은 대용량 저장소(1518)와 같은 저장 디바이스 상에 저장된다. 그러나, 일련의 명령들은 디스켓, CD-ROM, ROM, EEPROM 등과 같은 임의의 적절한 저장 매체 상에 저장될 수 있다. 또한, 일련의 명령들은 로컬로 저장될 필요는 없으며, 네트워크 인터페이스(1516)를 통해, 네트워크 상의 서버와 같은 원격 저장 디바이스로부터 수신될 수 있다. 명령들은 대용량 저장소(1518)와 같은 저장 디바이스로부터 메모리(1514) 내로 카피되고, 이후 프로세서(1502)에 의해 액세스되어 실행된다.The hardware system 1500 may include various system architectures. In addition, various components of the hardware system 1500 may be rearranged. For example, the cache 1504 may be on-chip with the processor 1502. Alternatively, the cache 1504 and the processor 1502 may be packaged together as a " processor module ", and the processor 1502 is referred to as a "processor core ". Furthermore, certain implementations of the present disclosure may or may not include all of the above components. For example, peripheral devices shown as being coupled to the standard I / O bus 1508 may be coupled to the high performance I / O bus 1506. Additionally, in some implementations, only a single bus may be present and the components of the hardware system 1500 are coupled to a single bus. In addition, the hardware system 1500 may include additional components such as additional processors, storage devices, or memories. As discussed below, in one embodiment, the operations of the system including the system 100 for providing the digital content described herein may be implemented as a series of software routines executed by the hardware system 1500 have. These software routines include a plurality or series of instructions to be executed by a processor in a hardware system, such as processor 1502. Initially, a series of commands are stored on a storage device, such as mass storage 1518. However, a series of instructions may be stored on any suitable storage medium such as a diskette, CD-ROM, ROM, EEPROM, and the like. Also, the series of commands need not be stored locally, but may be received from a remote storage device, such as a server on the network, via network interface 1516. [ The instructions are copied into the memory 1514 from a storage device, such as mass storage 1518, and then accessed and executed by the processor 1502. [

운영 체제는 소프트웨어 애플리케이션들(미도시)로의 그리고 소프트웨어 애플리케이션들(미도시)로부터의 데이터의 입력 및 출력을 포함하는, 하드웨어 시스템(1500)의 동작을 관리하고 제어한다. 운영 체제는 시스템 상에서 실행되는 소프트에어 애플리케이션들 및 시스템의 하드웨어 컴포넌트들 사이의 인터페이스를 제공한다. 본 발명의 일 실시예에 따르면, 운영 체제는 워싱턴 주, 레드몬드의 마이크로소프트 코오포레이션(Microsoft Corporation)에서 제공하는 Windows® 운영 체제이다. 그러나, 본 발명은 캘리포니아주, 쿠퍼티노의 애플 컴퓨터 인크(Apple Computer Inc.)에서 제공하는 Apple Macintosh 운영 체제, UNIX 운영 체제, LINUX 운영 체제 등과 같은 다른 적절한 운영 체제들과 함께 사용될 수 있다.The operating system manages and controls the operation of the hardware system 1500, including input and output of data to and from software applications (not shown). The operating system provides an interface between the software applications running on the system and the hardware components of the system. According to one embodiment of the present invention, the operating system is a Windows® operating system provided by Microsoft Corporation of Redmond, Washington. However, the present invention may be used with other suitable operating systems such as the Apple Macintosh operating system, UNIX operating system, LINUX operating system, etc., provided by Apple Computer Inc. of Cupertino, CA.

개시된 발명 대상 및 대응하는 상세한 설명의 일부분들은 소프트웨어, 알고리즘, 또는 컴퓨터 메모리 내의 데이터 비트에 대한 심볼적 동작 표현들로 제시된다. 알고리즘은, 그 용어가 본원에 사용된 바와 같이 그리고 일반적으로 사용되는 바와 같이, 원하는 결과를 가져오는 하나 이상의 동작들 또는 단계들을 지칭한다. 동작들 또는 단계들은 물리적 수량들 또는 특징들의 물리적 조작들을 요구하는 것일 수 있다. 통상적으로, 이러한 수량들 또는 특징들은 저장되고, 전달되고, 결합되고, 비교되거나, 또는 다른 방식으로 조작될 수 있는 광학적, 전기적 또는 자기적 신호들의 형태를 취한다. 편의상, 이러한 신호들은 본원에서, 비트, 데이터, 값, 심볼, 문자, 항목, 숫자, 스트림 등으로서 지칭된다.The objects of the disclosed subject matter and corresponding portions of the detailed description are presented in terms of software, algorithms, or symbolic operational representations of data bits in computer memory. An algorithm refers to one or more operations or steps that result in a desired result, as the term is used herein and as generally used. Operations or steps may be those requiring physical manipulations of physical quantities or features. Typically, such quantities or features take the form of optical, electrical, or magnetic signals that can be stored, transmitted, combined, compared, or otherwise manipulated. For convenience, such signals are referred to herein as bits, data, values, symbols, characters, items, numbers, streams,

그러나, 이들 및 유사한 항목들 모두가 적절한 물리적 수량들 및 특징들과 연관될 것이며, 이러한 수량들 및 특징들에 적용되는 단지 편리한 라벨들이라는 점을 염두에 두어야 한다. 구체적으로 달리 언급되거나, 기재로부터 명백하지 않은 한, "프로세싱하는", "컴퓨팅하는", "계산하는", "결정하는", "디스플레이하는", "수신하는", "변조하는", "생성하는", "결합하는", "적용하는", "최대화하는", "최소화하는" 등과 같은 용어들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내에 물리적, 전기적 수량들로서 표현되는 데이터를 컴퓨터 시스템 메모리들, 레지스터들, 또는 다른 이러한 정보, 저장, 전송 또는 디스플레이 디바이스들 내의 물리적 수량들로서 유사하게 표현되는 다른 데이터로 조작하고 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스들을 지칭할 수 있다.It should be borne in mind, however, that all of these and similar items will be associated with appropriate physical quantities and features, and are merely convenient labels applied to such quantities and features. Computing, "" determining, "" determining, "" displaying, "" receiving, "" modulating, "" generating, "" Quot ;, " coupled ", "applying "," maximizing ", "minimizing ", and the like refer to data expressed in physical and electrical quantities in registers and memories of a computer system, Registers, or other such information, storage, transmission, or other data similarly represented as physical quantities within display devices.

또한, 개시된 발명 대상의 소프트웨어 구현 양상들이 통상적으로 일부 형태의 프로그램 저장 매체 상에 저장되거나 일부 타입의 전송 매체를 통해 구현된다는 점이 인지되어야 한다. 프로그램 저장 매체는 하드 드라이브, 테이프, CD-ROM, DVD, 블루레이, RAM, ROM, 플래시 메모리, 고체 상태 드라이브 등과 같은 데이터 또는 신호들을 저장할 수 있는 임의의 적절한 매체일 수 있다. 유사하게, 전송 매체는 연선(twisted wire pair), 동축 케이블, 광섬유, 또는 당해 기술분야에 공지된 임의의 다른 적절한 전송 매체일 수 있다. 개시된 발명 대상은 임의의 주어진 구현예의 이들 양상들에 의해 제한되지 않는다.It should also be appreciated that the software implementation aspects of the disclosed subject matter are typically stored on some form of program storage medium or implemented on some type of transmission medium. Program storage media may be any suitable medium capable of storing data or signals such as hard drives, tapes, CD-ROMs, DVDs, Blu-ray, RAM, ROM, flash memory, Similarly, the transmission medium may be a twisted wire pair, a coaxial cable, an optical fiber, or any other suitable transmission medium known in the art. The disclosed subject matter is not limited by these aspects of any given embodiment.

본 개시내용의 실시예들이 다양한 수정들 및 대안적인 형태들에 대해 용이할 수 있지만, 특정 실시예들은 도면에서 예시에 의해 도시되었으며 본원에 상세하게 기술되었다. 그러나, 본 개시내용의 실시예들이 개시된 특정 형태들에 제한되도록 의도되지 않는다는 점이 이해되어야 한다. 오히려 실시예들은 후속하는 첨부된 청구항들에 의해 정의된 바와 같이 본 개시내용의 사상 및 범위내에 드는 모든 수정들, 등가물들 및 대안들을 커버하도록 의도된다.While the embodiments of the present disclosure may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the embodiments of the present disclosure are not intended to be limited to the specific forms disclosed. Rather, the embodiments are intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure as defined by the following appended claims.

Claims (25)

디지털 콘텐츠를 요청하기 위한 방법으로서,
서버와의 제1 통신 접속을 설정하는 단계;
상기 서버와의 제2 통신 접속을 설정하는 단계;
상기 제1 통신 접속을 통해 복수의 기본 계층 데이터 세그먼트에 대한 제1 요청을 상기 서버로 송신하는 단계;
상기 제2 통신 접속을 통해 하나 이상의 향상 계층 데이터 세그먼트에 대한 하나 이상의 제2 요청을 상기 서버로 송신하는 단계 - 상기 하나 이상의 향상 계층 데이터 세그먼트와 상기 복수의 기본 계층 데이터 세그먼트의 적어도 일부는 상기 디지털 콘텐츠의 인코딩된 스트림의 일부를 구성함 - 를 포함하는 방법.
A method for requesting digital content,
Establishing a first communication connection with the server;
Establishing a second communication connection with the server;
Sending a first request for a plurality of base layer data segments over the first communication connection to the server;
Transmitting one or more second requests for one or more enhancement layer data segments over the second communication connection to the server, wherein the at least one enhancement layer data segment and at least a portion of the plurality of base layer data segments are associated with the digital content Lt; RTI ID = 0.0 > of: < / RTI >
제1항에 있어서,
상기 하나 이상의 향상 계층 데이터 세그먼트를 상기 복수의 기본 계층 데이터 세그먼트의 상기 적어도 일부와 함께 수신해서 디코딩하여 상기 인코딩된 스트림의 디코딩된 스트림을 제공하는 단계를 더 포함하는 방법.
The method according to claim 1,
Receiving and decoding the one or more enhancement layer data segments with the at least a portion of the plurality of base layer data segments to provide a decoded stream of the encoded stream.
제1항에 있어서,
상기 제1 및 제2 통신 접속은 각각 상기 기본 계층 및/또는 향상 계층 데이터 세그먼트들의 순서화되고, 오류-검사되고 그리고/또는 신뢰가능한 전달을 제공하는 전송층 접속인, 방법.
The method according to claim 1,
Wherein the first and second communication connections are transport layer connections each providing ordered, error-checked, and / or reliable delivery of the base layer and / or enhancement layer data segments.
제1항에 있어서,
상기 제1 요청을 송신하는 단계는 프로그레시브 스트리밍 모드로 상기 제1 통신 접속을 통해 상기 복수의 기본 계층 데이터 세그먼트를 송신한도록 하는 요청을 상기 서버로 송신하는 단계를 포함하는, 방법.
The method according to claim 1,
Wherein sending the first request comprises sending to the server a request to transmit the plurality of base layer data segments over the first communication connection in a progressive streaming mode.
제4항에 있어서,
상기 기본 계층 및 향상 계층 데이터 세그먼트들을 버퍼에 저장하는 단계;
상기 버퍼의 풀니스(fullness) 레벨을 결정하는 단계; 및
상기 버퍼의 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계
를 더 포함하는 방법.
5. The method of claim 4,
Storing the base layer and enhancement layer data segments in a buffer;
Determining a fullness level of the buffer; And
Communicating with the server to limit the transfer rate of the plurality of base layer data segments based on a level of integrity of the buffer
≪ / RTI >
제5항에 있어서,
상기 서버와 통신하는 단계는 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하는 단계 - 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신됨 - 를 포함하는, 방법.
6. The method of claim 5,
Wherein communicating with the server comprises modulating a temporal spacing between a plurality of acknowledgments (ACKs) to be sent to the server, each of the plurality of acknowledgments responding to successful receipt of at least some of the plurality of base layer data segments Transmitted < / RTI >
제5항에 있어서,
상기 서버와 통신하는 단계는 상기 버퍼의 풀니스 레벨에 반비례하여 상기 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계를 포함하는, 방법.
6. The method of claim 5,
Wherein communicating with the server comprises communicating with the server to limit the transfer rate in inverse proportion to the level of integrity of the buffer.
제2항에 있어서,
상기 하나 이상의 제2 요청을 송신하는 단계는 적응적 스트리밍 방식에 기초해서 상기 제2 통신 접속을 통해 상기 하나 이상의 제2 요청을 송신하는 단계를 포함하는, 방법.
3. The method of claim 2,
Wherein transmitting the one or more second requests comprises transmitting the one or more second requests over the second communication connection based on an adaptive streaming scheme.
제8항에 있어서,
상기 기본 계층 및 향상 계층 데이터 세그먼트들을 버퍼에 저장하는 단계;
이용가능한 네트워크 대역폭을 추정하는 단계;
상기 추정된 이용가능한 네트워크 대역폭 및 상기 버퍼의 풀니스 레벨에 기초하여, 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계
를 더 포함하는 방법.
9. The method of claim 8,
Storing the base layer and enhancement layer data segments in a buffer;
Estimating an available network bandwidth;
Determining one or more enhancement layer data segments to be subsequently received based on the estimated available network bandwidth and the level of integrity of the buffer
≪ / RTI >
제9항에 있어서,
상기 이용가능한 네트워크 대역폭을 추정하는 단계는 상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하는 단계를 포함하는, 방법.
10. The method of claim 9,
Wherein estimating the available network bandwidth comprises estimating an available network bandwidth using the first communication connection.
제10항에 있어서,
상기 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계는 상기 추정된 이용가능한 네트워크 대역폭에 기초하여 상기 제2 통신 접속에 할당될 네트워크 대역폭을 결정하는 단계를 포함하는, 방법.
11. The method of claim 10,
Wherein determining the one or more enhancement layer data segments to be subsequently received comprises determining a network bandwidth to be allocated to the second communication connection based on the estimated available network bandwidth.
디지털 콘텐츠를 수신하기 위한 디바이스로서, 상기 디바이스는,
복수의 기본 계층 데이터 세그먼트 및 하나 이상의 향상 계층 데이터 세그먼트를 수신하도록 구성되는 통신 유닛; 및
상기 기본 계층 및 향상 계층 데이터 세그먼트들을 일시적으로 저장하도록 구성되는 버퍼를 포함하고,
상기 통신 유닛은 상기 버퍼의 풀니스 레벨에 기초해서 상기 복수의 기본 계층 데이터 세그먼트 및 상기 하나 이상의 향상 계층 데이터 세그먼트 중 적어도 하나에 이용가능한 네크워크 대역폭을 할당하도록 추가적으로 구성되는, 디바이스.
A device for receiving digital content, the device comprising:
A communication unit configured to receive a plurality of base layer data segments and one or more enhancement layer data segments; And
And a buffer configured to temporarily store the base layer and enhancement layer data segments,
Wherein the communication unit is further configured to allocate available network bandwidth to at least one of the plurality of base layer data segments and the one or more enhancement layer data segments based on a level of integrity of the buffer.
제12항에 있어서, 상기 통신 유닛은,
상기 버퍼의 상기 풀니스 레벨을 결정하도록 구성되는 버퍼 풀니스 결정 유닛; 및
상기 버퍼의 상기 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 서버와 통신하도록 구성되는 기본 계층 액세스 유닛을 더 포함하는, 디바이스.
13. The communication system according to claim 12,
A buffer fullness determination unit configured to determine the fullness level of the buffer; And
And a base layer access unit configured to communicate with the server to limit the transfer rate of the plurality of base layer data segments based on the level of integrity of the buffer.
제12항에 있어서, 상기 통신 유닛은,
상기 버퍼의 상기 풀니스 레벨을 결정하도록 구성되는 버퍼 풀니스 결정 유닛; 및
상기 버퍼의 상기 풀니스 레벨에 기초하여 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하도록 구성되는 향상 계층 액세스 유닛을 더 포함하는, 디바이스.
13. The communication system according to claim 12,
A buffer fullness determination unit configured to determine the fullness level of the buffer; And
And an enhancement layer access unit configured to determine one or more enhancement layer data segments to be subsequently received based on the level of integrity of the buffer.
제13항에 있어서,
상기 기본 계층 액세스 유닛은 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하도록 구성되고, 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신되는 것인, 디바이스.
14. The method of claim 13,
Wherein the base layer access unit is configured to modulate temporal spacing between a plurality of acknowledgments (ACKs) to be transmitted to the server, each of the plurality of acknowledgments responding to successful receipt of at least some of the plurality of base layer data segments Lt; / RTI >
제13항에 있어서,
상기 기본 계층 액세스 유닛은 상기 버퍼의 풀니스 레벨에 반비례하여 상기 전송 레이트를 제한하도록 상기 서버와 통신하도록 구성되는, 디바이스.
14. The method of claim 13,
Wherein the base layer access unit is configured to communicate with the server to limit the transfer rate in inverse proportion to a level of integrity of the buffer.
제12항에 있어서,
상기 통신 유닛은 상기 복수의 기본 계층 데이터 세그먼트를 수신하기 위한 제1 통신 접속 및 상기 하나 이상의 향상 계층 세그먼트를 수신하기 위한 제2 통신 접속을 설정하도록 구성되는, 디바이스.
13. The method of claim 12,
Wherein the communication unit is configured to establish a first communication connection for receiving the plurality of base layer data segments and a second communication connection for receiving the one or more enhancement layer segments.
제17항에 있어서, 상기 통신 유닛은
상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하도록 구성되는 대역폭 결정 유닛을 더 포함하는, 디바이스.
18. The communication system according to claim 17, wherein the communication unit
And a bandwidth determination unit configured to estimate an available network bandwidth using the first communication connection.
디지털 콘텐츠를 수신하기 위한 방법으로서,
서버로부터 수신한 복수의 기본 계층 데이터 세그먼트 및 하나 이상의 향상 계층 데이터 세그먼트를 저장하기 위한 버퍼의 풀니스 레벨을 결정하는 단계; 및
상기 버퍼의 상기 풀니스 레벨에 기초해서 상기 복수의 기본 계층 데이터 세그먼트 및 상기 하나 이상의 향상 계층 데이터 세그먼트 중 적어도 하나에 이용가능한 네트워크 대역폭을 할당하는 단계를 포함하는 방법.
A method for receiving digital content,
Determining a level of integrity of a buffer for storing a plurality of base layer data segments received from the server and one or more enhancement layer data segments; And
Allocating available network bandwidth to at least one of the plurality of base layer data segments and the one or more enhancement layer data segments based on the level of integrity of the buffer.
제19항에 있어서, 상기 이용가능한 네트워크 대역폭을 할당하는 단계는,
상기 버퍼의 상기 풀니스 레벨에 기초하여 상기 복수의 기본 계층 데이터 세그먼트의 전송 레이트를 제한하기 위해 상기 서버와 통신하는 단계를 더 포함하는, 방법.
20. The method of claim 19, wherein allocating the available network bandwidth comprises:
Further comprising communicating with the server to limit the transfer rate of the plurality of base layer data segments based on the level of integrity of the buffer.
제19항에 있어서, 상기 이용가능한 네트워크 대역폭을 할당하는 단계는,
상기 버퍼의 풀니스 레벨에 기초하여 후속하여 수신할 하나 이상의 향상 계층 데이터 세그먼트를 결정하는 단계를 더 포함하는, 방법.
20. The method of claim 19, wherein allocating the available network bandwidth comprises:
Further comprising determining one or more enhancement layer data segments to be subsequently received based on a level of integrity of the buffer.
제21항에 있어서,
상기 서버와 통신하는 단계는 상기 서버로 송신될 복수의 확인응답(ACK) 간의 시간적 이격을 변조하는 단계 - 상기 복수의 확인 응답 각각은 상기 복수의 기본 계층 데이터 세그먼트 중 적어도 일부의 성공적 수신에 응답하여 송신되는 것임 - 를 포함하는, 방법.
22. The method of claim 21,
Wherein communicating with the server comprises modulating a temporal spacing between a plurality of acknowledgments (ACKs) to be sent to the server, each of the plurality of acknowledgments responding to successful receipt of at least some of the plurality of base layer data segments The method comprising the steps of:
제22항에 있어서,
상기 서버와 통신하는 단계는 상기 버퍼의 풀니스 레벨에 반비례하여 전송 레이트를 제한하도록 상기 서버와 통신하는 단계를 포함하는, 방법.
23. The method of claim 22,
Wherein communicating with the server comprises communicating with the server to limit the transfer rate in inverse proportion to the level of integrity of the buffer.
제19항에 있어서,
상기 복수의 기본 계층 데이터 세그먼트를 수신하기 위한 제1 통신 접속 및 상기 하나 이상의 향상 계층 데이터 세그먼트를 수신하기 위한 제2 통신 접속을 설정하는 단계를 더 포함하는 방법.
20. The method of claim 19,
Further comprising establishing a first communication connection for receiving the plurality of base layer data segments and a second communication connection for receiving the one or more enhanced layer data segments.
제24항에 있어서,
상기 제1 통신 접속을 사용해서 이용가능한 네트워크 대역폭을 추정하는 단계를 더 포함하는 방법.
25. The method of claim 24,
Further comprising estimating an available network bandwidth using the first communication connection.
KR1020140073171A 2014-06-16 2014-06-16 Method and device for delivery of scalable digital content KR20150144458A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140073171A KR20150144458A (en) 2014-06-16 2014-06-16 Method and device for delivery of scalable digital content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140073171A KR20150144458A (en) 2014-06-16 2014-06-16 Method and device for delivery of scalable digital content

Publications (1)

Publication Number Publication Date
KR20150144458A true KR20150144458A (en) 2015-12-28

Family

ID=55084763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140073171A KR20150144458A (en) 2014-06-16 2014-06-16 Method and device for delivery of scalable digital content

Country Status (1)

Country Link
KR (1) KR20150144458A (en)

Similar Documents

Publication Publication Date Title
US9979771B2 (en) Adaptive variable fidelity media distribution system and method
US10764610B2 (en) Media user client, a media user agent and respective methods performed thereby for providing media from a media server to the media user client
CN107210993B (en) Method and system for dynamic rate adjustment of multimedia content streams in a wireless network
EP2962435B1 (en) Link-aware streaming adaptation
EP2537340B1 (en) Multipath delivery for adaptive streaming
KR102119287B1 (en) Device for obtaining content by choosing the transport protocol according to the available bandwidth
Kaspar et al. Using HTTP pipelining to improve progressive download over multiple heterogeneous interfaces
US9178929B2 (en) Client-side class-of-service-based bandwidth management in over-the-top video delivery
CN104219286B (en) streaming media processing method, device, client, CDN node server and terminal
JP6436772B2 (en) Method for dynamically adapting received bit rate and associated receiver
US20130185399A1 (en) Content delivery
WO2014054988A1 (en) Throttling a media stream for transmission via a radio access network
US20160072864A1 (en) Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer readable mediium
US9131251B2 (en) Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
Evensen et al. Adaptive media streaming to mobile devices: challenges, enhancements, and recommendations
KR102212973B1 (en) Method for providing a content part of a multimedia content to a client terminal, corresponding cache
EP2819368A1 (en) Method for providing a content part of a multimedia content to a client terminal, corresponding cache
KR20150144458A (en) Method and device for delivery of scalable digital content
EP3014835B1 (en) Method for retrieving, by a client terminal, a content part of a multimedia content
US9654533B2 (en) Method of adaptively delivering media based on reception status information from media client and apparatus using the same
Yin et al. Nefis: A network coding based flexible device-to-device video streaming scheme
CN112823527A (en) Method implemented at a device capable of running an adaptive streaming session and corresponding device
KR20170034097A (en) Method for adaptive streaming and Apparatus therefor
CN106713373A (en) File sending method and apparatus

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination