KR101638223B1 - 적응적 스트리밍 서비스를 제공하기 위한 방법 - Google Patents

적응적 스트리밍 서비스를 제공하기 위한 방법 Download PDF

Info

Publication number
KR101638223B1
KR101638223B1 KR1020137020597A KR20137020597A KR101638223B1 KR 101638223 B1 KR101638223 B1 KR 101638223B1 KR 1020137020597 A KR1020137020597 A KR 1020137020597A KR 20137020597 A KR20137020597 A KR 20137020597A KR 101638223 B1 KR101638223 B1 KR 101638223B1
Authority
KR
South Korea
Prior art keywords
client
segment
server
request
parameter
Prior art date
Application number
KR1020137020597A
Other languages
English (en)
Other versions
KR20130112936A (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 알까뗄 루슨트
Publication of KR20130112936A publication Critical patent/KR20130112936A/ko
Application granted granted Critical
Publication of KR101638223B1 publication Critical patent/KR101638223B1/ko

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

서버로부터 클라이언트로 스트리밍 서비스를 제공하기 위한 방법은, 클라이언트가 서버로부터 각 연속 세그먼트(SiQ1, S2Q2, SeQ3)를 요청하는 단계를 포함하되, 클라이언트와 서버 사이의 채널 점유(channel occupancy)의 타이밍 파라미터(PipelinEemptyEstimate)에 기초하여 클라이언트에 의해 결정되는 각 타이밍 인스턴스에서 각 연속 세그먼트는 각 타이밍 인스턴스에서 관련된 요청 품질(Q1, Q2, Q3)과 함께 클라이언트에 의해 요청되고, 이로써 다음 세그먼트에 대한 다음 요청이 클라이언트에 의한 이전 세그먼트의 완전한 수신 이전에, 클라이언트에 의해 서버로 전송될 수 있다. 이 방법을 수행하도록 구성된 클라이언트 또한 개시된다.

Description

적응적 스트리밍 서비스를 제공하기 위한 방법{METHOD FOR PROVIDING AN ADAPTIVE STREAMING SERVICE}
본 발명은 서버로부터 클라이언트로 스트리밍 서비스를 제공하는 방법에 관한 것이다.
적응적 스트리밍(adaptive streaming)은 비디오 또는 다른 콘텐츠가 프래그먼트 또는 세그먼트로 분할되는 솔루션으로, 여기서 각 비디오 프래그먼트 또는 세그먼트에 대한 상이한 해상도 또는 품질 레벨이 서버에 의해 사용가능해지며, 예를 들어, N 해상도가 각 비디오 세그먼트에 대하여 사용가능하다. 클라이언트는 지속적으로 사용가능한 대역폭의 양을 모니터링하고, 예를 들어, 클라이언트와 서버 사이의 접속에서 사용가능한 충분한 대역폭이 존재하는 특정 품질 및/또는 비디오 해상도를 나타내는 프래그먼트를 http 요청/다운로드 할 것이다. 가능한 한 상이한 해상도로 교대로 프래그먼트를 요청함으로써, 이는 대역폭이 변하더라도 부드러운 비디오 경험을 야기할 수 있다.
http 적응적 스트리밍에서, 완전한 이전 세그먼트가 수신되고 나면, 전형적으로 HTTP GET 요청은 다음 세그먼트에 대하여 발행되기만 할 것이다.
이러한 접근의 문제점은, 각 세그먼트에 대하여 왕복 시간의 지속기간을 포함하는 기간이 낭비된다는 것이다. 이는 이 기술을 사용할 때 사용될 서버와 클라이언트 사이의 전체 대역폭에 영향을 미친다. 특히 큰 지연의 네트워크에 대하여 이것은 달성될 수 있는 전체 대역폭에 분명한 결과를 가질 것이다. 큰 왕복 시간의 부정적 영향은 큰 대역폭 지연 곱(a high bandwidth-delay product)을 가진 네트워크 및 작은 세그먼트에 대하여 증가하는데, 그 이유는, 이 경우에, 요청 응답의 전체 시간은 그 자체의 고유한 대역폭 제한에 의해서가 아니라 왕복 시간에 의해 지배될 수 있기 때문이다. 그리고 HTTP 적응적 스트리밍 솔루션이 SVC 인코딩된 비디오 세그먼트의 전달을 위해 사용되는 경우, AVC 인코딩된 세그먼트가 SVC 내 하나 이상의 강화 층 세그먼트 및 하나의 베이스 층 세그먼트와 동등할 수 있기 때문에 이 영향은 더 두드러질 것이다.
따라서, 앞서 언급된 문제를 해결하는 솔루션을 제공하는 것이 본 발명의 실시예들의 목적이다.
본 발명의 실시예들에 따라, 이 목적은 서버로부터 클라이언트로 스트리밍 서비스를 제공하기 위한 방법의 수단에 의해 달성되는데, 이 방법은 클라이언트가 서버로부터 각 연속 세그먼트를 요청하는 단계를 포함하되, 클라이언트와 서버 사이의 채널 점유(channel occupancy)와 관련된, 클라이언트에 의해 결정된 타이밍 파라미터(PipelineEemptyEstimate)에 기초하여 각 연속 세그먼트가 클라이언트에 의해 결정된 각 타이밍 인스턴스에서 관련된 요청 품질과 함께 요청되고, 이로써 다음 세그먼트에 대한 다음 요청이 클라이언트에 의한 이전 세그먼트의 완전한 수신 이전에, 클라이언트에 의해 상기 서버로 전송될 수 있다.
클라이언트와 서버 사이의 채널 점유와 관련된 타이밍 파라미터에 의존하는 다음 세그먼트를 요청하는 인스턴스를 생성함으로써, 더 적게 낭비되는 대역폭으로 더 부드러운 전달을 제공하는 파이프라이닝 접근(pipelined approach)이 얻어진다.
다음 세그먼트를 요청하는 인스턴스는 클라이언트 수신 버퍼(a client receipt buffer)의 채움(filling) 또는 점유 레벨(occupancy level)에 더 의존할 수 있다. 변형 실시예에서, 이는 또한 결정된 품질에 대한 경우일 수 있다.
타이밍 파라미터는 서버에 의해 제공된 정보에 기초하여 결정될 수 있다. 대안적으로, 타이밍 파라미터는 클라이언트와 서버 사이의 통신 채널의 적어도 하나의 측정된 파라미터에 기초하여 결정될 수 있다.
다른 실시예에서, 요청된 품질은 또한 서버와 클라이언트 사이의 통신 채널의 적어도 하나의 측정된 파라미터에 기초하여 결정될 수 있다.
이 적어도 하나의 측정된 파라미터는 왕복 시간일 수 있고, 또한 대역폭 관련 파라미터일 수 있다. 후자는 기존 방법에 따라 이전 세그먼트에 대한 요청 발행과 그 세그먼트의 마지막 바이트 수신 사이의 시간 차이로 수신된 세그먼트의 크기를 분할함으로써 획득될 수 있다. 대안적으로, 이 대역폭 관련 파라미터는 또한 이전 수신된 세그먼트의 첫 번째 바이트와 마지막 바이트 사이의 수신 시간 차이로 이전에 수신된 세그먼트의 크기를 분할함으로써 계산될 수 있다.
본 발명은 또한 방법에 관한 앞서 언급된 실시예들을 실현하도록 구성된 클라이언트에 관한 실시예들과 관련된다.
추가 변형들은 첨부된 특허청구범위에서 개시된다.
특허청구범위에서 사용되는 '결합된(coupled)'이라는 용어는 직접 접속에만 한정되는 것으로 해석되어서는 안 된다. 따라서, '디바이스 B에 결합된 디바이스 A'라는 표현의 범주는 디바이스 A의 출력부가 디바이스 B의 입력부에 직접 접속된 시스템 또는 디바이스로 한정되어서는 안 된다. 이는 다른 디바이스 또는 수단을 포함하는 경로일 수 있는 A의 출력부와 B의 입력부 사이의 경로가 존재한다는 것을 의미한다.
특허청구범위에서 사용되는 용어 '포함하는(comprising)'은 이후에 나열되는 수단에 한정적인 것으로 해석되어서는 안 된다. 따라서, '수단 A 및 B를 포함하는 디바이스'라는 표현의 범주는 컴포넌트 A 및 B 만으로 구성된 디바이스로 한정되어서는 안 된다. 이는 본 발명에 관하여, 단지 디바이스와 관련된 컴포넌트가 A 및 B라는 것을 의미한다.
첨부된 도면과 함께 실시된 실시예에 관한 다음의 설명을 참조함으로써, 본 발명의 위의 및 다른 목적 및 피쳐들이 더 명백해지고 본 발명 자체가 가장 잘 이해될 것이다.
도 1은 종래의 적응적 스트리밍 방법에 관한 개략적인 타이밍 다이어그램을 도시한다.
도 2a-b는 본 방법의 두 실시예들로부터 야기하는 개략적인 타이밍 다이어그램들을 도시한다.
도 3은 클라이언트 및 서버 모두에서 도 2a의 타이밍 이벤트를 더 도시한다.
도 4a-b는 연속 비디오 프래그먼트에 대한 연속 요청을 생성하기 위한 타이밍 인스턴스를 결정하는 것에 대한 개략적인 흐름도를 제공한다.
도 5는 AVC 인코딩된 비디오의 세그먼트를 요청하기 위해 구현되는 도 4a의 흐름도에 관한 일 실시예를 제공한다.
도 6은 SVC 인코딩된 비디오의 세그먼트를 요청하기 위해 사용되는 도 4a의 흐름도에 관한 또 다른 실시예를 제공한다.
도 7a-b-c는 전형적인 http 적응적 스트리밍(도 7a) 및 본 방법의 두 개의 http 적응적 스트리밍 실시예들(도 7b-c)의 비교를 보여준다.
도 8은 본 방법의 실시예들을 실현하도록 구성된 클라이언트에 관한 일 실시예를 개략적으로 보여준다.
설명 및 도면은 단지 본 발명의 원리를 예증한다. 따라서 본 기술분야의 당업자들은 본원에 명시적으로 설명되거나 도시되어 있지 않더라도, 본 발명의 원리를 구현하고 본 발명의 정신 및 범주에 포함되는 다양한 장치를 고안할 수 있다는 것을 유념해야 한다. 더욱이, 본원에서 언급되는 모든 예시들은 독자로 하여금 본 기술분야를 발전시키기 위해 발명자(들)에 의해 기여된 개념 및 본 발명의 원리를 이해하는데 도움이 되도록 특별히 교수적 목적만을 위한 것으로 주로 의도되며 그러한 구체적으로 언급된 예시들 및 조건들로 한정되지 않는 것으로 이해되어야 한다. 더욱이, 본 발명의 원리, 양태, 및 실시예들을 언급하는 본원 내 모든 문장, 뿐만 아니라 그것들의 구체적인 예시들은 그것들의 균등물을 포괄하는 것으로 의도된다.
본 기술분야의 당업자는 본원에서의 임의의 블록도가 본 발명의 원리를 포함하는 예증의 회로에 관한 개념적 관점을 나타낸다는 것을 이해해야 한다. 마찬가지로, 임의의 흐름도, 상태 천이도, 의사 코드(pseudo code) 등은, 컴퓨터 또는 프로세서가 명시적으로 도시되어 있는지에 상관없이, 컴퓨터 판독가능 매체 내에서 실질적으로 표현될 수 있고 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스를 표현한다는 것을 유념해야 한다.
HTTP 적응적 스트리밍과 같은 적응적 스트리밍에 대한 현재 기술은, 예를 들어, 비디오 또는 오디오가 다수의 품질로 인코딩되고 각각의 덩어리(chunks)로 세그먼트된다는 접근을 사용하고 있다. 비디오 세그먼트의 지속기간(the duration of a video segment)은 일반적으로 대략 몇 초이다. 이러한 세그먼트는 연속하여, 즉 잇따라서 이를 요청함으로써 클라이언트에 의해 서버로부터 다운로드된다. 이는 세그먼트가 클라이언트에 의해 완전히 수신될 때만, 이 클라이언트는 다음 세그먼트에 대한 HTTP GET 요청을 발행할 것이라는 것을 의미한다. 이는 도 1에 개략적으로 도시되며, 시간 T1에서, 전형적으로 HTTP GET 요청인 제 1 요청이 클라이언트로부터 서버로 송신된다. T2에서, 이 요청은 서버에 의해 수신되고, 수신 시, 서버가 클라이언트에게 제 1 세그먼트(S1Q1)의 첫 번째 바이트를 전송하기 시작한다. 첫 번째 바이트는 시간 T3에서 클라이언트에 수신된다. 클라이언트에 의해 제 1 요청되는 시간과 클라이언트에 의해 이 세그먼트(S1Q1)의 첫 번째 바이트가 수신되는 시간 사이의 차이, 즉 T3-T1은 일반적으로 왕복 시간(round-trip time)이라 하고, 축약하여 RTT라 한다. 시간 T4에서, 세그먼트(S1Q1)의 마지막 바이트가 수신되고, 그 이후 클라이언트는 다음 세그먼트를 위한 다음 GET 요청을 즉시 발행한다. 이 다음 세그먼트(S2Q1)는 그 이후 T5(즉, T4+RTT와 동일한 시간)에서 클라이언트에 수신된다.
이렇게 하여 획득된 사용된 대역폭(BWp1)은, 종래 기술에 따라, 도 1에서 시간차(T4-T1)로 분할된, S1Q1의 바이트 수로 표현된, 이 세그먼트의 측정된/관찰된 크기에 기초하여 결정된다. 실제로, 제 1 세그먼트에 대하여 이 결정된 값은, 예를 들어, 지수 가중 평활 평균 기법(an exponentially weighted smoothing average technique)을 통해 새로운 패킷을 수신하고 나면 일시적으로 저장되고 업데이트될 수 있다. 도 1에서 BWp1로 표시된 이 측정된 대역폭 관련 파라미터는 종래 기술 방법에서 다음 요청된 세그먼트의 품질을 결정하는데 사용된다.
이 접근의 문제점은 각 세그먼트에 대하여 왕복 시간(RTT)의 지속 기간이 낭비된다는 것이다. 이는 Http 적응적 스트리밍 기술을 사용할 때 사용될 서버와 클라이언트 사이의 전체 대역폭에 영향을 미친다. 특히 일부 모바일 기술에서 경험될 수 있는 바와 같은 큰 지연 네트워크(large delay networks)에 대하여, 이는 달성될 수 있는 전체 대역폭에 분명한 결과를 가질 것이다. 이 경우에서 요청 응답의 총 시간이 왕복 시간에 의해 지배될 수 있기 때문에, 큰 왕복 시간의 부정적 영향은 높은 대역폭 지연 곱을 가진 네트워크 및 작은 세그먼트에 대하여 증가한다. 또한, HTTP 적응적 스트리밍 솔루션이 스케일러블 비디오 코딩(Scalable Video Coding: SVC)의 전달 세그먼트에 대하여 사용되는 경우에, AVC 코딩된 세그먼트는 SVC 코딩에서 하나 이상의 강화 층 세그먼트(one or more enhancement layer segment) 및 하나의 베이스 층 세그먼트와 동일하기 때문에, 이 영향은 더 두드러질 것이다. 따라서, 다양한 강화 층이 세그먼트 당 요구되는 경우, RTT 지속기간의 다수의 지연이 단지 하나의 세그먼트에 대해서 손실될 수 있다.
따라서 이러한 지연을 감소시키기 위해, 요청을 파이프라이닝하는 방법이 제안된다. 이는 보통 이전 세그먼트(Si-1 Qi-1)의 마지막 바이트를 수신하고 나서야, 다음 세그먼트(SiQi)에 대한 요청이 클라이언트로부터 서버로 전송되는 방식 대신에 가능한 한 더 일찍 전송되는 방식을 의미한다. 도 2에서, 이는 이전 세그먼트 (S1Q1)를 요청한 시간인 T1로부터 델타 tS2의 거리에 있는 T4에서 발행된 제 2 세그먼트에 대한 요청으로 표시된다. 마찬가지로, 도 2에서, 제 3 세그먼트에 대한 요청이 제 2 세그먼트를 요청한 시간인 T4로부터 델타 tS2의 거리에 있는 T8에서 클라이언트에 의해 발행된다. 이러한 경우들에서, 도 2에 도시되지 않았으나, 이전 세그먼트의 임의의 바이트의 수신 전에, 다음 요청이 클라이언트로부터 전송되는 것이 심지어 가능하다. 따라서 각 세그먼트에 대한 요청의 전송은 이전 세그먼트가 수신되었는지에 상관없이 행해질 수 있다. 이러한 요청의 인스턴스의 결정은 이제 클라이언트에 의한 타이밍 파라미터의 결정에 기초하는데, 여기서 어떤 타이밍 파라미터는 클라이언트와 서버 사이의 채널의 점유와 관련된다. 그러한 타이밍 파라미터를 결정하기 위한 방법은 본 문서의 뒷부분에서 설명될 것이다.
이전 세그먼트를 완전히 수신하기 전에 다음 세그먼트를 요청함으로써, 개선된 세그먼트 기반 전달이 실현될 것이며, 이는 큰 지연 환경에서 특히 유용하다. 따라서, 클라이언트는 이 타이밍 파라미터에 기초하여 다음 연속 세그먼트에 대한 다음 요청을 발행하기 위해 시간을 계산하도록 구성되고, 또한 적어도 하나의 측정된 파라미터, 가령, 클라이언트와 서버 사이의 통신 채널의 대역폭 관련 파라미터 및/또는 왕복 시간에 기초하여 이러한 요청된 세그먼트의 품질을 결정하도록 구성될 수 있다. 따라서 각 요청의 타이밍 인스턴트는 타이밍 파라미터에 기초하여 클라이언트에 의해 결정되는데, 이 타이밍 파라미터는 또한 클라이언트에 의해 결정되며, 클라이언트와 서버 사이의 채널 점유를 대표한다. 따라서, 다음 세그먼트에 대한 다음 요청은, 클라이언트에 의해 이전 세그먼트가 완전히 수신되기 전에, 클라이언트에 의해 서버로 전송될 수 있다.
선택적으로, 타이밍 인스턴스는 서버에 의해 각 세그먼트가 제공되는 클라이언트 수신 버퍼의 점유 레벨에 기초하여 또한 결정될 수 있다. 예를 들어, 클라이언트 버퍼 내 충분히 수신된 세그먼트의 경우, 이는 그 이후 연속 요청들 사이에서 큰 지연을 야기할 수 있고, 이로써 이러한 경우 요청들은 여전히 이전 세그먼트의 완전한 수신 이후에 발행될 수 있다.
바람직한 실시예에서, 타이밍 파라미터는 통신 채널의 적어도 하나의 측정된 파라미터에 기초하여 더 결정된다. 그러나, 이것이 필요하지 않은 다른 실시예들도 존재한다. 예를 들어, 클라이언트와 서버 사이의 클럭이 동기화된 시스템에서, 클라이언트는 서버 파이프라인이 비워진 때에 관한 정보를 직접 수신할 수 있고 이에 기초하여 요청을 송신할 시간을 결정할 수 있다. 이러한 절차는 클라이언트와 서버 사이의 추가의 통신 메시지의 필요성을 수반하는데, 이 메시지 동안, 예를 들어, 요청된 세그먼트의 전달을 위해 예상되는 남은 시간을 표시하는 메시지에 의해 클라이언트는 우선 이 정보에 대하여 서버를 조사하고, 서버는 이 정보를 대답한다.
전술된 바와 같이, 통신 채널의 적어도 하나의 측정된 파라미터는 왕복 시간 및/또는 대역폭 관련 파라미터일 수 있다. 일부 실시예들에서, 이 대역폭 관련 파라미터는 타이밍 파라미터의 계산을 위해 사용되도록, 종래 기술 솔루션에서 사용되는 것과 비교해서 다른 방법으로 얻어질 수 있다. 이 대역폭 관련 파라미터를 계산하는 하나의 방법은, 일반적으로 바이트로 표현되는, 이전에 수신된 세그먼트의 크기를 이전에 수신된 세그먼트의 첫 번째 바이트와 마지막 바이트 사이의 수신 시간 차이로 분할하는 것을 포함한다. 이 시간 차이는 도 2a의 T6-T3이다. 대역폭 관련 파라미터는 도 2a에서 BWn1로 표시된다. 따라서 이는 도 1을 참조하여 도시되고 설명되는 것과 같은 대역폭 BWn1을 결정하는 전통적인 방법과 상이하다.
일부 실시예들에서, 관련된 요청 품질(associated requested quality)은 또한 적어도 하나의 측정된 채널 파라미터에 기초하여 및/또는 클라이언트 수신 버퍼의 점유 레벨에 기초하여 결정될 수 있으나, 두 변형 모두 선택적이다.
대역폭 관련 파라미터를 결정하기 위해, 클라이언트는 들어오는 세그먼트의 타이밍과 크기를 모니터링하기 위해 모니터 모듈을 포함함으로써 앞서 언급된 것 중 하나 또는 심지어 여전히 다른 방법으로 상기 세그먼트의 타이밍과 크기로부터 대역폭 관련 파라미터를 계산한다. 도 8에서, 그러한 모듈은 BW 모니터로 표시된다. 왕복 시간을 측정하기 위해, 특정 모듈이 포함될 수 있는데, 이는 서버에 테스트 신호를 생성하고, 서버가 수신하고 나서 즉시 클라이언트로 다시 전송하도록 구성된다. 이러한 기술은 본 기술분야의 당업자에게 알려진 것이므로 여기서 더 상세히 설명될 필요는 없다. 도 8에서 이 모듈은 RTT 모니터로 표시된다.
하지만, 클라이언트에 관한 다른 구현들이 가능하며, 여기서 그러한 상이한 모듈들 사이의 분명한 묘사는 존재하지 않고, 예를 들어, 중앙 클라이언트 프로세서가 이러한 모든 단계들을 수행하도록 구성된다.
서버 그 자체는, RFC 2616 내 HTTP 1.1에서 설명되는 기술인 요청의 파이프라이닝을 지원하는 것을 의미하는 전통적인 서버일 수 있다.
본 방법의 실시예들에 따라 앞서 언급된 파이프라이닝 기술을 사용하여, 다음 세그먼트에 대한 요청은, 심지어 이미 서버로 전송되었던 더 오래된 많은 요청이 서버에 의해 처리되거나 프로세싱되기 이전에, 클라이언트로부터 서버로 전송될 수 있다. 대역폭 관련 파라미터가 도 2a에서와 같은 방법에 관한 이러한 실시예들에 대하여, 왕복 시간은 더 이상 영향력을 갖지 않을 것이다.
요청을 파이프라이닝하는 것의 영향 및 관련된 장점들은, 도 2a-b 및 도 3에서 도시된다. 이러한 도면들은 따로 설명이 필요 없으며, 두 도면은, 다음 요청을 생성하기 위한 시간이, 이전 세그먼트(Si-1Qi-1)의 첫 번째 바이트의 수신에 관하여, 각 요청된 세그먼트(SiQi)를 위한 델타 ti로 표시된 각 계산된 지연에서 존재한다는 것을 나타낸다. 그러나, 다른 실시예들에서는 각 시간 인스턴스만이 그렇게 계산된다. 서버는, 교대로 세그먼트 하나를 큐잉하고 요청 큐를 처리함으로써, 도 2a-b에 도시된 바와 같이 교대로 세그먼트를 프로세싱하는 것과 같고, 이로써 FIFO 원리에 따라 첫 번째 수신된 요청이 첫 번째로 처리된다. 도 3은, 예를 들어, 서버 내에서 제 1 세그먼트에 대한 요청의 수신 시, 이전 세그먼트의 마지막 바이트가 클라이언트로 전송되자마자 순차적인 방법으로 상기 제 1 세그먼트의 첫 번째 바이트가 서버에 의해 클라이언트로 송신될 것이라는 것을 나타낸다. 제 1 세그먼트는 시간 S_1에서, 이 제 1 세그먼트에 대한 요청의 수신 시, 거의 즉시 서버에 의해 전송될 것이다. 그러나 다음 세그먼트들은, 세그먼트들에 대한 요청을 수신하면 클라이언트와 서버 사이의 채널이 다시 비워지자마자, 서버에 의해 송신될 것이다. 이는 파이프라이닝 방법으로 연속적인 세그먼트를 수신하고 전송하는 클라이언트 및 서버에 의해 도 2a 및 도 3에 개략적으로 표시된다. 따라서 세그먼트(S2Q2)는 서버에 의해 해당 세그먼트에 대한 요청이 수신된 이후 일정 시간 후 시간 S_4로부터 전송될 것이며, 여기서 수신은 S_2의 시간에서 발생한다. 도 3에 표시된 실시예에서는 서버의 일부 파이프라이닝 능력을 포함하며, 이 기술은 RFC2616에서 http 1.1에서 설명된다. 이로써 서버는 파이프라이닝의 최적 사용을 사용하여 이 채널에 요청된 세그먼트의 바이트를 연속하여, 즉 교대로 전송하도록 구성된다. 이 메커니즘과 관련된 TCP/IP 프로토콜을 사용하는 것은, 클라이언트로의 채널의 대역폭 및 잠재적인 혼잡(potential congestion)에 관한 체크를 내포한다.
하지만, 일부 실시예들에서, 요청을 생성하고 전송하기 위한 시간 인스턴스의 클라이언트에 의한 주의 깊은 계산으로, 그리고 요청된 세그먼트를 채널에 즉시 전송함으로써 서버에 의해 즉시 프로세싱되어, 심지어 서버에서 표현되는 기능 없이도 파이프라이닝 접근법이 얻어지는 것이 가능하다. 이는 도 2b에 도시되는데, 이것은 이전 세그먼트의 마지막 바이트가 클라이언트 쪽으로 송신되었을 때 요청이 서버에 도착하는 것과 같이 요청의 주의 깊은 전송에 의해서, 파이프라이닝 접근이 심지어 이 파이프라이닝 능력을 가진 서버 없이도 발생한다는 것을 보여준다.
서버에 의해 교대로 부드러운 전달을 기대하는 것과 같이, 클라이언트에 의해 요청을 생성하고 전송하기 위해 이러한 각 시간 인스턴스에서 주의 깊게 계산함으로써, 채널에 관한 매우 효율적인 사용을 얻을 것이다.
관련된 결정된 품질과 함께 인코딩된 비디오 세그먼트를 요청하기 위해, 이러한 각 시간 인스턴스를 계산하기 위한 방법이 도 4a에 도시된다.
이 실시예는 초기에 결정된 품질(Q1)과 함께 제 1 세그먼트(S1Q1)에 대한 요청을 전송하는 것으로 시작하며, 이는 사용자에 의해 입력되는 즉시 메모리에 저장된 또는 디폴트 파라미터로서의 초기 디폴트 품질(Q1)일 수 있다. 대안적으로, 품질은 보통 대역폭의 이용가능성에 대한 정보, 이전 세션에서 이용가능한 대역폭에 대한 정보 또는 다른 타입의 측정에 기초하여 결정될 수 있다.
일반적으로, 이 초기 품질에 대하여, 클라이언트의 모니터링 모듈은 이전 측정을 고려할 수 없으므로 최저 품질과 함께 많은 세그먼트가 요청될 수 있다.
도 4a에서, 제 1 세그먼트에 대한 요청을 전송하고 난 후에, 클라이언트와 서버 사이의 채널 점유와 관련된 타이밍 파라미터의 초기값이 결정된다. 이 타이밍 파라미터는 도 5 및 도 6에서 "PipelineEmptyEstimate"로 표시되고, 이 타이밍 파라미터의 초기값은 제 1 요청된 세그먼트(S1Q1)의 요청되거나 추정된 크기의 몫(quotient)에 더해진 왕복 시간(RTT1)의 초기 추정 값 및 초기 대역폭 관련 파라이터(BW1)로서 계산된다. 그러나 다른 실시예들에서, 후자의 정보가 "pipelineemptyestimate"을 계산하는데 이용가능하지 않은 경우, 이 타이밍 파라미터는, 다른 방법, 예를 들어, 실제 크기 대신 평균 세그먼트 크기를 사용함으로써, 계산될 수 있다. 또 다른 변형은 클라이언트-서버 통신을 통해 실현될 수 있는데, 여기서 파이프라인 내 무엇이 있는지 그리고 파이프라인이 언제 비어있는지에 관한 추정의 정보가 서버에 의해 클라이언트로 통신될 수 있고, 이 경우 서버가 이 능력을 지원할 수 있다. 이 변형에서, 타이밍 파라미터는 서버에 의해 클라이언트로 단지 통신될 수 있다.
도 4a의 다음 단계에서, 타이밍 파라미터 값과 왕복 시간(RTT)의 실제 측정 값 사이의 차이는 미리 결정된 임계값과 비교된다. 이 임계값은 통상적으로 대략 몇 밀리초 또는 수 밀리초이다. 이 임계값은 다음 세그먼트가 얼마나 빨리 요청될 것인지를 결정할 것이다.
이 차이가 미리 결정된 임계값보다 작아서 채널이 비어있는 것으로 나타날 수 있는 경우, 클라이언트 내 세그먼트 수신 버퍼는 체크될 것이다. 특히, 이 버퍼가 비어있거나, 예를 들어, 미리 결정된 채움 레벨(a predetermined filling level), 예를 들어, 50% 보다 낮다면, 이는 새로운 세그먼트가 요구될 것임을 나타낸다. 이와 반대로, 버퍼가 여전히 50% 이상 채워져 있다면, 새로운 세그먼트가 필요하지 않다. 다른 클라이언트 수신 버퍼에서, 이 채움 레벨은 최대 값의 퍼센티지로 표현되지 않고, 비디오의 수 초(a number of seconds)로 표현된다. 이러한 경우, 20초의 임계값은, 이 버퍼의 채움 레벨의 관점에서, 예를 들어, 새로운 세그먼트가 요구되는지를 결정하기 위해 사용될 수 있다. 하지만, 이는 모두 버퍼의 크기와 관련되며, 따라서 클라이언트로부터 클라이언트로 변할 수 있다.
버퍼의 채움 레벨이 새로운 세그먼트가 필요하지 않은 것으로 나타나면, 예를 들어, AVC 인코딩된 비디오 또는 다른 인코딩된 콘텐츠를 위해 안정적인 플레이아웃을 보장하기에 충분한 세그먼트가 존재하는 것으로 나타나는 경우, 또한 버퍼 차원(beffer dimensions)과 전반적으로 관련되는, 예를 들어, 1ms의 임의의 미리 결정된 웨이팅 시간이 도입된다. 타이밍 파라미터는 이 미리 결정된 웨이팅 시간의 함수로서 더 업데이트된다. 이는, 도면들의 흐름도로부터 볼 수 있는 바와 같이, 다시금 다음의 버퍼 체크 사이클을 통해 빨리 가기 위해, 타이밍 파라미터의 현재 값에서 미리 결정된 웨이팅 시간을 뺄셈(subtracting)함으로써 도 5의 실시예에서 실시된다. 하지만, 타이밍 파라미터에 관한 다른 웨이팅 시간 및 다른 업데이트도 가능하다. 도 4a에서, 요청된 비디오가 SVC를 사용하여 인코딩된 경우, SVC 표준에 따른 추가 층(a extra layer)에 제공될 수 있도록 고품질의 세그먼트이 필요하다면, 추가 체크가 수행된다. 그렇지 않다면, AVC 인코딩된 비디오의 경우와 같이 동일한 웨이팅 시간이 다시금 도입된다.
다음 세그먼트가 요구되는 것으로 판명되는 경우, 클라이언트 버퍼 사용에 관한 체크에서처럼 다음 세그먼트에 대한 품질이 결정된다. 이는 측정된 왕복 시간 및 버퍼 레벨 채움에 기초하는 표준 http 적응적 스트리밍에서 사용된 현재 방법에 의해 실시될 수 있다. 왕복 시간은 전형적으로 내재적으로 고려되고, 시스템은 다음 세그먼트 품질을 계산하기 위해 대역폭 추정 및 버퍼 채움을 사용한다. 예시의 시스템은, 예를 들어, 버퍼 내 많은 임계값에 기초할 수 있다. 예를 들어, 5초 이하가 버퍼 내에 표시되는 경우, 시스템은 항상 최하의 품질을 요청할 것이며 요청 송신을 위해 웨이팅하지 않을 것이다. 버퍼가 5초와 15초 사이를 포함하는 경우, 버퍼는 측정된 대역폭보다 낮은 대역폭에 대응하는 품질을 요청할 수 있을 뿐만 아니라, 이전에 요청된 세그먼트의 품질과 기껏해야 하나의 품질 레벨만이 다르다. 버퍼가 비디오 버퍼의 15초와 20초 사이를 포함한다면, 클라이언트는 측정된 대역폭보다 낮은 대역폭에 대응하는 품질을 요청할 것이다.
대안적인 알고리즘은, 클라이언트가 이용가능한 대역폭에 따라 가능한 만큼 많은 세그먼트를 다운로드하고자 시도하는 경우일 것이다. 이 경우, 클라이언트는, 하나의 세그먼트를 다운로드 한 다음에 이전 세그먼트가 다운로드 되었던 대역폭에 대응하는 품질 레벨에서 다음 세그먼트를 다운로드하는 전략을 따를 수 있다.
두 예시에서, 측정된 대역폭과 품질 사이의 직접적인 관계가 존재한다. 따라서, 예를 들어, 이 관계를 포함하는 룩 업 테이블을 사용하는 것이 요청된 품질을 업데이트하기 위한 구현에서 사용될 수 있다.
그 이후 다음 세그먼트는 이 업데이트된 품질과 함께 요청된다. 타이밍 파라미터는, 예를 들어, 도 5에 개시된 바와 같이, 타이밍 변수의 현재 값에 새롭게 제안된 방법 중 하나에 따른 측정된 대역폭 및 요청된 세그먼트의 크기의 계수를 더함으로써, 또한 업데이트된다. 이 사이클은, 마지막 세그먼트가 요청될 때까지 반복된다.
도 4b는 측정된 파라미터에 기초하여 타이밍 파라미터를 변경하는 추가 단계를 포함하는 대안적인 방법을 도시한다. 여기서 이유(rationale)는 RTT 및 BW가 시간에 걸쳐 변할 때 이는 또한 채널이 비워지는 순간 영향을 줄 것이라는 것이다. 이 함수가 기능할 수 있는 예시의 방법은, 새로운 RTT, 즉 RTT2가 측정될 때, 타이밍 파라미터는 새로운 RTT(RTT2) 및 원래 RTT 사이의 차이로 업데이트될 것이라는 것이다. 대역폭에 대하여, 클라이언트는 요청되었던 세그먼트 및 어디서 바이트가 수신되지 않는지를 추적할 수 있다. 이러한 경우, 세그먼트 크기는 새로운 BW에 의해 분할될 수 있고 오래된 대역폭에 의해 분할된 세그먼트 크기와 비교될 수 있다. 타이밍 파라미터는 그 이후 이러한 두 값 사이의 시간 차이로 업데이트될 것이다. 따라서 업데이트된 품질과 함께 다음 세그먼트를 요청했던 이후에, 타이밍 파라미터는 선택적으로 도 4a에서 실시되었던 바와 같이 또한 업데이트될 수 있다.
도 5는 AVC 인코딩된 비디오에 대하여 사용될 수 있는 도 4a의 구현에 관한 더 상세한 실시예를 도시한다.
스케일러블 비디오 코딩(SVC), 인코딩된 비디오의 경우에 대하여, 방법에 관한 일 실시예는 도 6에서 개시된다. 새로운 세그먼트가 수신된 버퍼에 의해 요구되는지를 체크할 때까지, AVC 인코딩된 비디오와 같은 동일한 단계들이 사용된다. 새로운 세그먼트가 요구된다면, 세그먼트 식별자는 그 이후 증가할 것이고, 기본 품질을 결정하는 제 1 베이스 층이 제로에 놓일 것이다. 새로운 세그먼트 넘버가 요구되지 않는 경우, 예를 들어, 더 높은 해상도를 위해 일부 더 좋은 품질이 바람직할 것인지가 체크된다. 이는, 예를 들어, 플레이아웃에서 다음 세그먼트가 언제 수신될 것인지 및 버퍼 채움의 어떤 값이 그 시점에 있을 것인지를 결정하도록 BW 및 RTT 추정을 사용함으로써 체크된다. 예를 들어, 이 값이 주어진 임계값, 예를 들어, 10초 이하인 경우, 클라이언트는 애플리케이션 그 자체에 따라 새로운 품질 세그먼트를 요청하지 않도록 결정할 수 있다. 애플리케이션은 그 이후 이 강화 층을 다운로드하는 리스크를 취하지 않도록 그리고 다음 일시적 세그먼트를 다운로드하는 것을 이미 시작하도록 결정할 수 있다. 이 전략은 또한 다른 컴포넌트에 의해 결정될 수 있다. 간단한 모바일폰과 같은 제한된 해상도를 가지는 단말의 경우, 알고리즘은 스크린 해상도보다 더 높은 해상도를 다운로드하지 않도록 결정할 수 있다. 리소스 제한된 디바이스에서, 많은 높은 층이 추가 CPU 사이클에 대한 필요를 도입할 수 있기 때문에, 알고리즘은 많은 높은 층을 다운로드하지 않도록 결정할 수 있다. 반면에, 정말 일부 더 좋은 해상도 또는 품질이 현재 세그먼트에 대하여 바람직한 것으로 판명된다면, 방법은 어떤 층을 요청할지 결정할 것이다. 상이한 전략들이 여기서 뒤따를 수 있다. 첫 번째 것은, 마지막 일시적 세그먼트에 대하여 요청/다운로드되었던 마지막 층에서 더 구축하는 다음 강화 층, 아마 일시적 층, 품질 층 또는 공간 층을 요청하는 것이 될 것이다. 각 층은 서버 측에서 각 파일에 포함될 수 있고, 또는 서버가 요청된 층에 대응하는 단일의 파일을 생성하는 능력을 갖는다. SVC http 적응적 스트리밍에서, 일시적 세그먼트에 대하여 이용 가능한 품질 층은 독립적인 것 대신 서로에게 더 구축한다. 장점은 품질 층이 이전에 다운로드된 층을 실제로 강화한다는 것이다. 예를 들어, SiQ2, SiQ1을 나타내는 것이 이용 가능해야 한다. 장점은, 클라이언트 컴포넌트가 큰 SiQ2를 단지 다운로드하도록 결정해서는 안 되지만, 대역폭이 이용 가능한 이상 품질을 점차적으로 증가시킬 수 있을 것이다. 이 경우에서, 전형적으로 SVC 층은 각 AVC 세그먼트 보다 크기 면에서 더 작고 지연의 영향은 더 작은 크기에 대하여 더 클 것이기 때문에, 이 기술의 장점은 훨씬 더 높아질 것이다.
세그먼트의 요청 및 전송을 위해 http/TCP 프로토콜을 사용하는 파이프라이닝의 효과 및 종래 기술의 http/TCP 구현과의 비교가 도 7a-b-c에서 도시된다.
종래 기술의 http/TCP 구현은 서버로의 전송을 위해 클라이언트에서 http GET 요청을 사용하고 있다. 도면을 과적하지 않기 위해, 세그먼트는 단지 이것의 시퀀스 번호 S1, S2, S3로 표시되지만, 요청을 발행할 때 요청된 품질이 또한 표시된다는 것이 이해된다.
이전의 도면들에 관한 또 다른 차이점은 이러한 실시예들에서 세그먼트가 상이한 부분으로서 전달된다는 것이다. 도 7a-c에 도시된 실시예들에서, 각 세그먼트는 3개의 상이한 부분을 포함한다. 따라서, 세그먼트 S1은 S1P1, S1P2, S1P3으로 표시된 3개의 부분으로 전달된다. 이와 마찬가지로, 세그먼트 S2는 S2P1, S2P2, S2P3으로 표시된 3개의 부분으로 또한 전달된다.
모든 종래 기술 및 새로운 실시예들에서, "GET S1"로 표시된 메시지인 제 1 세그먼트에 대한 요청은, 클라이언트로부터 서버로 전송된다. 소정의 시간 이후에, 이 요청을 수신하는 즉시, 서버는 이 요청의 제 1 부분, 즉 S1P1을 전송함으로써 응답한다. 클라이언트는 ACK-S1P1 메시지를 서버로 다시 전송함으로써 이 부분의 수신을 확인하는데, 이 ACK-S1P1 메시지는 제 1 부분이 정확히 수신되었다는 것을 나타낸다. 제 1 부분을 전송한 이후에, 서버는 제 2 부분 S1P2의 전송을 계속하고, 클라이언트에 의한 제 2 부분의 수신 또한 적절한 확인 메시지에 의해 확인된다. 서버가 이 예시에서 부분 S1P3인 마지막 부분을 전송했을 때, 서버는 전송 메시지 내에 이것이 요청된 세그먼트의 마지막 부분에 관한 것이라는 것을 포함한다. 도 7a-b-c에서, 이는 서버로부터 클라이언트로 전송되는 "S1P3-OK"로 표시된다. 또한 이 부분이 클라이언트에 의해 잘 수신되었다면, 후자는 "ACK-S1P3-OK"로 표시된 파이널 확인 메시지에 의해 서버에 응답한다.
종래 솔루션에서, 클라이언트에 의한 확인 메시지 전송 이후에 즉시 "GET S2"로 표시된 다음 세그먼트에 대한 요청이 발행된다. 새로운 GET 요청을 수신하면, 마지막 부분 S2P3가 클라이언트에 의해 성공적으로 수신되고 확인될 때까지, 절차가 이 세그먼트에 대하여 반복된다.
도면에 표시된 바와 같이, 종래 솔루션에서 지연이 존재한다는 것은 도 7a에서 확인될 수 있다. 이 지연은, 도 7b-c에 도시된 바와 같이, 본 발명의 실시예에 따른 실시예들에서 더 이상 존재하지 않는다. 도 7b는 요청이 교대로 전송되는 일 실시예를 도시하는데, 여기서 서버는 이러한 요청들을 순차적으로 처리하는 파이프라이닝 능력을 가지고, 임의의 지연 없이 요청된 순서로 요청된 세그먼트를 전송한다. 도 7c는 서버가 이러한 파이프라이닝 능력을 가질 필요가 없는 일 실시예를 도시하지만, 여기서 클라이언트는 각 시간 인스턴스에서 요청을 생성하고 전송하도록 구성되며 이로써 요청은 서버가 이전 요청의 마지막 부분을 전송하는 시간까지 서버에 도착한다.
양 실시예들에서, 종래 기술 솔루션에서 존재하는 것과 같은 지연이 없다는 것이 확인될 수 있다.
도 8은 수신기 버퍼에 연결된 디코더와 함께 비디오 플레이어를 포함하는 클라이언트에 관한 일 실시예를 보여준다. 수신기 버퍼는, 세그먼트가 수신되는 물리적 채널과의 인터페이스로서 역할하고 세그먼트가 수신되는 특정 프로토콜에 따라 패킷으로부터 유용한 데이터를 추출하는 HTTP/UDP/TCP/IP로 표시된 데이터 추출/캡슐화(encapsulating) 모듈에 연결된다. 잘 알려져 있는 바와 같이, 이러한 프로토콜은 TCP/IP 또는 UDP를 통한 http일 수 있다.
클라이언트는 RTT모니터로 표시된 왕복 시간을 모니터링하기 위해 모니터링 모듈을 더 포함하는데, 이 RTT 모니터는, 서버로 특정 테스트 신호를 송신하고 그 테스트 신호를 다시 수신함으로써 왕복 시간이 획득되는 구현들을 위해, 버퍼뿐만 아니라 데이터 추출 모듈에 연결된다. 클라이언트는 버퍼 및 요청 매니저에 연결되고, 앞서 언급된 방법들 중 하나로 대역폭을 계산하도록 구성된 BW 모니터로 표시된 모듈을 더 포함한다. 요청 매니저는 RTT 모니터, 대역폭 계산기, 수신 버퍼에 기초하여 요청을 생성하도록 구성된다. 따라서, 생성된 요청들은 그 이후 데이터 추출/캡슐화 모듈에 제공되며, 이 데이터 추출/캡슐화 모듈은 선택된 프로토콜에 의해 요청된 바와 같은 요청을 적절한 표준화된 포맷을 가진 요청 패킷으로 캡슐화할 것이다.
물론 많은 대안적인 실시예들이 가능하다. 요청 매니저 자체가 인커밍 세그먼트를 수신하고 이로부터 대역폭 및 RTT를 계산하도록 구성되는 실시예 또한 실현가능하다. 더욱이, 실시예들은 하나의 단일 프로세서에 의해 모든 기능이 수행되는 것으로 존재한다.
본 발명의 원리가 위에서 특정 장치와 관련하여 설명되었으나, 이 설명은 단지 예시로 실시된 것이며 첨부된 특허청구범위에 정의된 바와 같이 본 발명의 범주를 제한하는 것이 아니라는 것이 분명히 이해되어야 한다.

Claims (14)

  1. 서버에서 클라이언트로 http 적응적 스트리밍 서비스(http adaptive streaming service)를 제공하기 위한 방법으로서,
    상기 방법은,
    상기 클라이언트가 상기 서버로부터 각 연속 세그먼트(S1Q1, S2Q2, S3Q3)를 요청하는 단계를 포함하되, 상기 클라이언트와 상기 서버 사이의 채널 점유(channel occupancy)와 관련된 타이밍 파라미터(PipelineEemptyEstimate)에 기초하여 상기 클라이언트에 의해 결정되는 각 타이밍 인스턴스에서 각 연속 세그먼트는 관련된 요청 품질(Q1, Q2, Q3)을 가지도록 상기 클라이언트에 의해 요청되고, 이로써 상기 클라이언트는 다음 세그먼트에 대한 다음 요청을, 상기 클라이언트에 의한 이전 세그먼트의 완전한 수신 이전에, 상기 서버로 전송하며, 상기 타이밍 인스턴스는 상기 서버에 의해 상기 각 연속 세그먼트를 제공받는 클라이언트 수신 버퍼(a client receipt buffer)의 점유 레벨(occupancy level)에 기초하여 더 결정되는
    스트리밍 서비스 제공 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 타이밍 파라미터(PipelineEemptyEstimate)는 통신 채널의 적어도 하나의 측정된 파라미터(BWn1, BWp1, RTT)에 기초하여 더 결정되는
    스트리밍 서비스 제공 방법.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 측정된 파라미터는 왕복 시간(RTT) 및 대역폭 관련 파라미터(BWn1, BWp1) 중 적어도 하나인
    스트리밍 서비스 제공 방법.
  5. 제 4 항에 있어서,
    상기 대역폭 관련 파라미터(BWp1)는, 이전 세그먼트의 첫 번째 바이트(first byte)와 마지막 바이트(last byte)를 수신하는 사이의 시간 차이에 의해 분할된 상기 이전에 수신된 세그먼트의 크기에 따라 획득되는
    스트리밍 서비스 제공 방법.
  6. 제 1 항에 있어서,
    상기 관련된 요청 품질은 상기 클라이언트 수신 버퍼의 점유 레벨(occupancy level)에 기초하여 상기 클라이언트에 의해 더 결정되는
    스트리밍 서비스 제공 방법.
  7. 제 3 항에 있어서,
    상기 관련된 요청 품질은 상기 클라이언트와 상기 서버 사이에서 상기 통신 채널의 상기 적어도 하나의 측정된 파라미터(BWn1, BWp1, RTT)에 기초하여 상기 클라이언트에 의해 더 결정되는
    스트리밍 서비스 제공 방법.
  8. 서버 구성의 http 적응적 스트리밍 서비스를 수신하도록 구성된 클라이언트로서,
    상기 클라이언트는,
    각 시간 인스턴스에서, 상기 서버로부터 각 연속 세그먼트(SiQ1, S2Q2, SeQ3)를 요청하고,
    상기 클라이언트와 상기 서버 사이의 채널 점유와 관련된 타이밍 파라미터(PipelinEemptyEstimate)를 더 결정하고,
    상기 타이밍 파라미터에 기초하여 상기 연속 세그먼트의 각 요청의 타이밍 인스턴스를 결정하도록 구성되되, 이로써 상기 클라이언트는 다음 세그먼트에 대한 다음 요청을 상기 클라이언트에 의한 이전 세그먼트의 완전한 수신 이전에, 상기 서버에 전송할 수 있으며,
    상기 타이밍 인스턴스는 상기 서버에 의해 상기 각 연속 세그먼트를 제공받는 클라이언트 수신 버퍼의 점유 레벨에 기초하여 더 결정되는
    클라이언트.
  9. 삭제
  10. 제 8 항에 있어서,
    통신 채널의 적어도 하나의 측정된 파라미터(BWn1, BWp1, RTT)에 기초하여 상기 타이밍 파라미터(PipelinEemptyEstimate)를 결정하도록 더 구성되는
    클라이언트.
  11. 제 10 항에 있어서,
    상기 적어도 하나의 측정된 파라미터는 왕복 시간(RTT) 및 대역폭 관련 파라미터(BWn1, BWp1) 중 적어도 하나인
    클라이언트.
  12. 제 10 항에 있어서,
    상기 이전에 수신된 세그먼트(S1Q1)의 크기를 측정하고 상기 이전 세그먼트(S1Q1)의 첫 번째 바이트와 마지막 바이트를 수신하는 사이의 시간 차이(T6-T3)에 의해 상기 이전 세그먼트(S1Q1)의 크기를 분할함으로써 대역폭 관련 파라미터(BWn1)를 결정하도록 더 구성되는
    클라이언트.
  13. 제 8 항에 있어서,
    상기 클라이언트 수신 버퍼의 상기 점유 레벨에 기초하여 관련된 요청 품질을 결정하도록 더 구성되는
    클라이언트.
  14. 제 10 항에 있어서,
    상기 통신 채널의 상기 적어도 하나의 측정된 파라미터에 기초하여 상기 각 연속 세그먼트의 관련된 요청 품질을 결정하도록 더 구성되는
    클라이언트.
KR1020137020597A 2011-01-04 2011-12-21 적응적 스트리밍 서비스를 제공하기 위한 방법 KR101638223B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11305008.2 2011-01-04
EP11305008A EP2472866A1 (en) 2011-01-04 2011-01-04 Method for providing an HTTP adaptive streaming service
PCT/EP2011/073674 WO2012093034A1 (en) 2011-01-04 2011-12-21 Method for providing an adaptive streaming service

Publications (2)

Publication Number Publication Date
KR20130112936A KR20130112936A (ko) 2013-10-14
KR101638223B1 true KR101638223B1 (ko) 2016-07-08

Family

ID=43928112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137020597A KR101638223B1 (ko) 2011-01-04 2011-12-21 적응적 스트리밍 서비스를 제공하기 위한 방법

Country Status (6)

Country Link
US (1) US9438653B2 (ko)
EP (1) EP2472866A1 (ko)
JP (1) JP5701400B2 (ko)
KR (1) KR101638223B1 (ko)
CN (1) CN103283255B (ko)
WO (1) WO2012093034A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044489B2 (en) 2010-10-22 2018-08-07 Nokia Solutions And Networks Oy Enhanced inter-network access node scheduling coordination and signaling support for advanced receiver algorithms
US20140108495A1 (en) * 2012-10-11 2014-04-17 Steven A. Benno Adaptive streaming client
JP6171325B2 (ja) * 2012-12-13 2017-08-02 富士通株式会社 分析装置、情報処理システム、分析方法及び分析プログラム
US9019858B2 (en) 2013-02-22 2015-04-28 Nokia Solutions And Networks Oy Generating short term base station utilization estimates for wireless networks
US8850055B1 (en) 2013-09-17 2014-09-30 Google Inc. Intelligently streaming portions of media at higher quality over a limited bandwidth connection
US10476930B2 (en) * 2014-01-06 2019-11-12 Intel IP Corporation Client/server signaling commands for dash
KR101654898B1 (ko) 2015-04-15 2016-09-07 고려대학교 산학협력단 적응형 스트리밍 서비스를 수신하는 방법
WO2017210252A1 (en) * 2016-05-31 2017-12-07 The Trustees Of Princeton University System and method for improving streaming video via better buffer management
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
US20180262790A1 (en) * 2017-03-13 2018-09-13 Honeywell International Inc. Systems and methods for adaptive streaming using jpeg 2000
US10334287B2 (en) * 2017-04-17 2019-06-25 Plex, Inc. Digital data streaming using server driven adaptive bitrate
KR102307447B1 (ko) * 2017-05-02 2021-09-30 삼성전자주식회사 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
KR101982290B1 (ko) * 2018-02-27 2019-05-24 광운대학교 산학협력단 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법
US10581707B2 (en) 2018-04-10 2020-03-03 At&T Intellectual Property I, L.P. Method and apparatus for selective segment replacement in HAS video streaming adaptation
EP3633999A1 (en) 2018-10-05 2020-04-08 InterDigital CE Patent Holdings Method to be implemented at a device able to run one adaptive streaming session, and corresponding device
EP3687176A1 (en) * 2019-01-22 2020-07-29 InterDigital CE Patent Holdings A client and a method for managing, at the client, a streaming session of a multimedia content
JPWO2020184357A1 (ko) 2019-03-08 2020-09-17
US11140060B2 (en) * 2019-11-12 2021-10-05 Hulu, LLC Dynamic variation of media segment durations for optimization of network round trip times
CN111225243B (zh) * 2020-01-20 2021-02-02 中南大学 一种视频块调度方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001052554A1 (en) 2000-01-10 2001-07-19 Koninklijke Philips Electronics N.V. Method of setting a system time clock at the start of an mpeg sequence
US9209934B2 (en) * 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
KR101455161B1 (ko) 2007-01-08 2014-10-28 톰슨 라이센싱 비디오 스트림 스플라이싱을 위한 방법 및 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8904426B2 (en) * 2008-06-30 2014-12-02 Rgb Networks, Inc. Preconditioning ad content for digital program insertion
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
US9419906B2 (en) * 2011-07-05 2016-08-16 Telefonaktiebolaget L M Ericsson Network congestion control with adaptive QoS bit-rate differentiation
US20150163273A1 (en) * 2011-09-29 2015-06-11 Avvasi Inc. Media bit rate estimation based on segment playback duration and segment data length
WO2013044367A1 (en) * 2011-09-29 2013-04-04 Avvasi Inc. Systems and methods for media service delivery
US8751679B2 (en) * 2011-10-07 2014-06-10 Ericsson Television Inc. HTTP adaptive streaming server with automatic rate shaping

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dominik Kaspar et al., "Using HTTP Pipelining to Improve Progressive Download over Multiple Heterogeneous Interfaces", Communications (ICC), 2010 IEEE Int. Conference on, Pages 1-5, 23 May 2010.*
Kristian Evensen et al., "Quality-adaptive scheduling for live streaming over multiple access networks", NOSSDAV '10 Proceedings of the 20th international workshop, Pages 21-26, 02 June 2010.*

Also Published As

Publication number Publication date
US20130282918A1 (en) 2013-10-24
EP2472866A1 (en) 2012-07-04
JP5701400B2 (ja) 2015-04-15
US9438653B2 (en) 2016-09-06
CN103283255B (zh) 2016-12-28
WO2012093034A1 (en) 2012-07-12
JP2014506424A (ja) 2014-03-13
KR20130112936A (ko) 2013-10-14
CN103283255A (zh) 2013-09-04

Similar Documents

Publication Publication Date Title
KR101638223B1 (ko) 적응적 스트리밍 서비스를 제공하기 위한 방법
JP6178523B2 (ja) 要求マネージャおよび接続マネージャの機能を実装するトランスポートアクセラレータ
RU2304364C2 (ru) Устройство и способ для измерения времени задержки на двустороннее распространение для мультимедийных данных с переменной скоростью передачи битов
CN110266605B (zh) 用于速率控制的方法和设备
US9930097B2 (en) Transport accelerator systems and methods
CN110192394B (zh) 通过网络传送媒体内容的方法和服务器
RU2598805C2 (ru) Способ для динамической адаптации частоты следования битов при приеме и соответствующий приемник
US11812114B2 (en) Method and server for audio and/or video content delivery
CN111886875B (zh) 一种通过网络传送媒体内容的方法及服务器
KR20040033319A (ko) 스트림당 이용가능한 대역폭 및 비트 스트림 교환을계산하는 다중 데이터 스트림을 전송하기 위한 데이터통신 방법 및 시스템
EP3560152B1 (en) Determining the bandwidth of a communication link
JP3871661B2 (ja) マルチメディアコンテンツ受信装置及びマルチメディアコンテンツ受信方法
JP4650573B2 (ja) 通信装置、通信システム、プログラム、および通信方法
JP2002027021A (ja) データ送信装置及びデータ受信装置
US9130843B2 (en) Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source
KR102491033B1 (ko) 왕복 시간 추정
US8126049B2 (en) Method and a device for transmitting images
CN114726730A (zh) 应用于cdn的拥塞控制方法、电子设备、介质及产品
Batalla et al. In-segment content server adaptation for dual adaptation mechanism in DASH

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20141230

Effective date: 20160421

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant