KR102089023B1 - 진동 네트워크의 대역폭 추정 시스템 및 방법 - Google Patents

진동 네트워크의 대역폭 추정 시스템 및 방법 Download PDF

Info

Publication number
KR102089023B1
KR102089023B1 KR1020187021955A KR20187021955A KR102089023B1 KR 102089023 B1 KR102089023 B1 KR 102089023B1 KR 1020187021955 A KR1020187021955 A KR 1020187021955A KR 20187021955 A KR20187021955 A KR 20187021955A KR 102089023 B1 KR102089023 B1 KR 102089023B1
Authority
KR
South Korea
Prior art keywords
bandwidth
duration
future
average
sliding window
Prior art date
Application number
KR1020187021955A
Other languages
English (en)
Other versions
KR20180116242A (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 KR20180116242A publication Critical patent/KR20180116242A/ko
Application granted granted Critical
Publication of KR102089023B1 publication Critical patent/KR102089023B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

진동 네트워크와 관련하여 대역폭을 추정하는 방법은 대응하는 제1 슬라이딩 윈도우들의 세트 내의 제1 평균 대역폭들의 세트를 결정하는 단계로서, 상기 제 1 슬라이딩 윈도우들 각각은 제1 지속 기간을 가지는, 결정하는 단계를 포함한다. 제2 슬라이딩 윈도우는 제1 슬라이딩 윈도우 세트를 포함하도록 정의되며, 제2 슬라이딩 윈도우는 제1 지속 기간보다 큰 제2 지속 기간을 가진다. 그 다음, 시스템은 제2 슬라이딩 윈도우 내의 제1 평균 대역폭의 제1 세트에 기초하여 대역폭 진동(도시된 바와 같은)이 발생하는 지 여부를 결정한다.

Description

진동 네트워크의 대역폭 추정 시스템 및 방법
본 출원은 2015년 12월 31 출원된 미국 가출원 제62/273,664호에 우선권을 주장한다.
본 개시는 네트워크를 통한 데이터 통신에 관한 것이다. 보다 상세하게는, 아래의 개시는, 이러한 네트워크를 통한 대역폭 변화를 보다 정확하게 추정하기 위한 시스템, 방법 및 장치들과 관련된다.
네트워크들(패킷 교환 네트워크와 같은)은 사용자 경험에 영향을 줄 수 있는 대역폭의 변화를 경험하는 것으로 알려져 있다. 이는 사용자가 3G / 4G 및 손실이 많은 WiFi 네트워크와 같은 네트워크를 통해 미디어 콘텐츠(영화, 텔레비전 프로그램 등과 같은)를 스트리밍하는 경우 가장 두드러진다. 이러한 대역폭 변화는 종종 “진동(oscillating)” 패턴, 즉, 랜덤한 패턴보다는 대략 반복적으로 증가 및 감소하는 패턴을 나타낸다. 이러한 네트워크는 일반적으로 대역폭의 단순 정현 진동(simple sinusoidal oscillations)을 경험하지는 않지만, “진동 네트워크(oscillating network)”라고 할 수 있다.
진동 네트워크에서 대역폭을 추정하기 위한 현재 알려진 방법은 슬라이딩 윈도우 평균(sliding widow averages)을 이용하는 방법이다. 즉, 미리 결정된 시간의 윈도우(예를 들어, 약 10초) 내에 수신된 비트의 수를 보고, 상기 미리 결정된 시간 내의 대역폭의 평균 값을 사용하여 미래의 대역폭을 예측하는 방법이다. 불행하게도, 진동 네트워크는 제1 윈도우의 길이보다 상당히 긴 간격, 예를 들어, 15초 또는 30초 간격 이상으로 변할 수 있다. 이에 따라, 상기 대역폭 추정은 스트리밍 동안 경험된 실제 미래의 대역폭을 정확하게 예측하지 못할 수 있다. 예를 들어, 시스템이 피크에 근접하면, 상기 피크에 대한 비트 레이트를 선택할 수 있다. 반면에, 시스템은 다음 진동으로 감소할 수 있다. 이러한 경우, 시스템은 무언가를 다운로드하기 시작한 다음 지연(stall)하는 것을 시작할 수 있고, 다. 결과적으로, 사용자 환경이 저하된다. 이러한 간단한 단일 창 알고리즘은 진동 네트워크보다는 안정된 네트워크에 보다 적합하다.
따라서, 진동 네트워크의 대역폭을 추정하는 개선된 방법이 필요하다. 이러한 그리고 바람직한 특징 및 특성은 첨부된 도면 및 배경기술과 함께 차후의 상세한 설명과 청구범위들로부터 명백하게 될 것이다.
본 발명의 일 실시예에 따른 네트워크의 대역폭 추정 방법은 대응하는 복수의 제1 슬라이딩 윈도우 내의 복수의 제1 평균 대역폭을 결정하는 단계로서, 상기 제1 슬라이딩 윈도우 각각은 제1 지속 기간을 가지는, 결정하는 단계; 상기 복수의 제1 슬라이딩 윈도우를 포함하는 제2 슬라이딩 윈도우를 정의하는 단계로서, 상기 제2 슬라이딩 윈도우는 상기 제1 지속 기간보다 긴 제2 지속 기간을 가지는, 정의하는 단계; 상기 제2 슬라이딩 윈도우 내의 상기 제1 복수의 제1 평균 대역폭에 기초하여 대역폭 진동이 발생하는 지 여부를 결정하는 단계; 및 상기 진동 결정에 기초하여 미래 시간의 대역폭을 추정하는 단계를 포함한다.
일 실시예에서, 상기 제2 지속 기간은 상기 제1 지속 기간의 약 5배 내지 10배일 수 있다.
일 실시예에서, 상기 제2 지속 기간은 상기 제1 지속 기간의 약 6배일 수 있다.
일 실시예에서, 상기 제1 지속 기간은 10초이고, 상기 제2 지속 기간은 60초일 수 있다.
일 실시예에서, 상기 대역폭 진동이 발생하는 지 여부의 결정은 기계 학습 모델에 의해 수행될 수 있다.
일 실시예에서, 상기 기계 학습 모델은 시계열 예측 모델이고, 상기 기계 학습 모델은 비감독 학습을 통해 훈련될 수 있다.
일 실시예에서, 상기 미래 시간은 상기 제2 슬라이딩 윈도우의 가장 우측 에지보다 클 수 있다.
일 실시예에서, 상기 미래 시간은 상기 제2 슬라이딩 윈도우의 가장 우측 에지와 상기 제2 슬라이딩 윈도우의 지속 기간의 합보다 작을 수 있다.
일 실시예에서, 상기 복수의 제1 슬라이딩 윈도우는 상기 제2 슬라이딩 윈도우 내에서 동일 간격으로 배치될 수 있다.
본 발명의 다른 실시예에 따른 미디어 장치는 기계 판독 가능한 소프트웨어 명령을 실행하도록 구성된 프로세서를 포함하는 미디어 장치로서, 상기 명령은 상기 프로세서가 단계들을 수행하도록 하며, 상기 단계들은, 네트워크 인터페이스를 통해 복수의 패킷을 수신하여 네트워크의 대역폭을 결정하는 단계; 대응하는 복수의 제1 슬라이딩 윈도우 내의 복수의 제1 평균 대역폭을 결정하는 단계로서, 상기 제1 슬라이딩 윈도우 각각은 제1 지속 기간을 가지는, 결정하는 단계; 상기 복수의 제1 슬라이딩 윈도우를 포함하는 제2 슬라이딩 윈도우를 정의하는 단계로서, 상기 제2 슬라이딩 윈도우는 상기 제1 지속 기간보다 긴 제2 지속 기간을 가지는, 정의하는 단계; 상기 제2 슬라이딩 윈도우 내의 상기 제1 복수의 제1 평균 대역폭에 기초하여 대역폭 진동이 상기 네트워크 내에서 발생하는 지 여부를 결정하는 단계; 및 상기 진동 결정에 기초하여 미래 시간의 대역폭을 추정하는 단계를 포함한다.
일 실시예에서, 상기 제2 지속 기간은 상기 제1 지속 기간의 약 5배 내지 10배일 수 있다.
일 실시예에서, 상기 제2 지속 기간은 상기 제1 지속 기간의 약 6배일 수 있다.
일 실시예에서, 상기 제1 지속 기간은 10초이고, 상기 제2 지속 기간은 60초일 수 있다.
일 실시예에서, 상기 대역폭 진동이 발생하는 지 여부의 결정은 기계 학습 모델에 의해 수행될 수 있다.
일 실시예에서, 상기 기계 학습 모델은 시계열 예측 모델이고, 상기 기계 학습 모델은 비감독 학습을 통해 훈련될 수 있다.
일 실시예에서, 상기 미래 시간은 상기 제2 슬라이딩 윈도우의 가장 우측 에지와 상기 제2 슬라이딩 윈도우의 지속 기간의 합보다 작을 수 있다.
일 실시예에서, 상기 복수의 제1 슬라이딩 윈도우는 상기 제2 슬라이딩 윈도우 내에서 동일 간격으로 배치될 수 있다.
본 발명의 또 다른 실시예에 따른 네트워크의 대역폭을 추정하기 위한 컴퓨터-구현 방법은 대응하는 복수의 제1 슬라이딩 윈도우 내의 복수의 제1 평균 대역폭을 결정하는 단계로서, 상기 복수의 제1 슬라이딩 윈도우는 모두 제2 슬라이딩 윈도우 내에 위치하는, 결정하는 단계; 상기 제1 복수의 제1 평균 대역폭에 기초하여 상기 제 2 슬라이딩 윈도우 내에서 대역폭 진동이 발생 하는지 여부를 결정하는 단계; 상기 진동 결정에 기초하여 상기 제2 슬라이딩 윈도우 외부 시간에서 대역폭을 추정하는 단계를 포함한다.
일 실시예에서, 상기 제1 슬라이딩 윈도우의 각각의 지속 기간은 상기 제2 슬라이딩 윈도우의 지속 시간의 약 1/10 내지 1/5일 수 있다.
일 실시예에서, 상기 대역폭 진동의 발생 여부의 결정은 시계열 기계 학습 모델에 의해 수행될 수 있다.
본 발명의 일 실시예에 따른 네트워크의 대역폭을 추정하기 위한 시스템 및 방법은 제1 슬라이딩 윈도우보다 상당히 큰 제2 슬라이딩 윈도우를 이용한다. 슬라이딩 윈도우로부터의 평균 대역폭 값은 제2 슬라이딩 윈도우와 동일한 간격에 걸쳐 조사되어, 그래프의 진동 가능성이 있는지 여부 및 그 정도를 결정 및 예측하여 미래의 스트리밍 이벤트에 이용 가능할 대역폭을 보다 정확하게 추정한다.
예시적인 실시예들은 다음의 도면들과 함께 이후에 설명되고, 유사한 참조번호들은 유사한 요소들을 표시한다.
도 1은 일 실시예에 따라 네트워크를 도시한 개념적 블록도이다.
도 2는 일 예시에 따라 진동 네트워크의 대역폭을 도시한 그래프이다.
도 3은 본 실시예가 구현될 수 있는 예시적인 플레이스쉬프팅 시스템을 도시한 블록도이다.
도 4는 일 실시예에 따른 방법을 단순화된 형태로 도시한 흐름도이다.
네트워크의 대역폭을 추정하기 위한 시스템 및 방법이 제공된다. 다양한 실시예에 따르면, 2개의 슬라이딩 윈도우, 즉 제1의 더 짧은 간격(예를 들어, 약 10초)을 가지는 제1 윈도우 및 제2 의 더 긴 간격(예를 들어, 약 60-90초)을 가지는 제2 윈도우가 채용된다. 상기 시스템은 제1 윈도우의 평균값(예를 들어, 5초 마다)을 캡쳐하고 제2 간격 길이에 걸쳐 이들 값을 사용하여 제2 윈도우 내의 진동을 검출 및 예측한다. 본 발명에 대한 다음의 상세한 설명은 사실상 단지 예시적인 것이며, 본 발명을 제한하거나 본 발명의 적용 및 용도를 제한하도록 의도되지 않는다. 나아가, 앞의 배경 기술이나 다음의 상세한 설명에서 제시되는 어떠한 이론에 의해 한정될 것을 의도하지 않는다.
도 1을 참조하면, 하나 이상의 컴퓨팅 장치(또는 단순히 “장치”)(110)(예를 들어, 장치(111, 112 및 113))는 하나 이상의 콘텐츠 소스(또는 단순히 “소스”)(120)로부터 미디어 콘텐츠를 수신하고 처리하도록 구성된다. 장치(110)는 콘텐츠 소스(예를 들어, 하나 이상의 콘텐츠 서버(120))로부터 미디어 콘텐츠를 수신 및 처리하도록 구성된 하드웨어 및 소프트웨어의 임의의 조합에 대응할 수 있다. 예를 들어, 장치(110)는 모바일 휴대폰, 컴퓨터 시스템(데스크탑 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터 등과 같은), 셋톱 박스, 텔레비전 모니터, 플레이스쉬프팅 장치(place-shifting device), 텔레비전 수신기, 전용 미디어 플레이어 등을 포함할 수 있다. 유사하게, 소스(120)(예를 들어, 121 및 122)는 네트워크(150)를 통해 장치(110)에 콘텐츠(예를 들어, 시청각 콘텐츠)를 제공하도록 구성된 하드웨어 및 소프트웨어의 임의의 조합을 포함한다 도 1에 도시된 환경은 단일 네트워크(150)로 도시되어 있지만, 실제로 환경은 가정, 사무실 또는 다른 구조물의 지리적 근접 내에서 동작하고, 일반적으로 단일 사용자, 가족 또는 운영자의 제어 하에 있는 임의의 수의 유선 및/또는 무선 네트워크(예를 들어, WLAN, 인터넷 등)를 포함할 수 있다.
상기 간략히 언급한 바와 같이, 네트워크(150)는 장치(110)를 통해 미디어 소스(120)로부터 콘텐츠를 스트리밍하는 사용자의 시청 경험에 영향을 미칠 수 있는 시간 경과에 따른 대역폭의 변화를 겪을 수 있다. 도 2는(도 1의 네트워크(150)와 같은) 샘플 네트워크에 의해 경험되는 대역폭 진동의 예를 도시하는 그래프(200)를 나타낸다. 이러한 예시에서, 그래프(200)는, 간략화를 위해, 수신된 바이트들(패킷/ 초 또는 비트/ 비트를 수시한 것과 실질적으로 동일)의 연속 곡선을 시간의 함수로서 나타낸다. 당업자는 그래프(200)가 실제 실시예에서도, 도 2에 도시된 바와 같이, 이산화(discretized) 및/또는 평활(smooth)하지 않음을 인식할 수 있다.
도 2에 도시된 바와 같이, 대역폭 변화는 3개의 피크(peak)(221, 222, 223) 및 피크 사이에 2개의 밸리(valley)(231, 232)을 가진다. 따라서, 대역폭은 221에서 231, 222, 232, 223 등과 같이 시간이 지남에 따라 위 아래로 진동한다. 윈도우(280)는 왼쪽에서 오른쪽으로 슬라이딩되어 280A에서 280B로 그리고 나서 280C로 진행된다. 윈도우(280)은 이러한 예시에서 d1의 폭 또는 간격을 가진다. 간격(d1)은 예를 들어 5 내지 15초 사이일 수 있고, 일 실시예에서 약 10초일 수 있다.
포인트(240A)는 윈도우(280A)에 대한 평균 대역폭을 도시하고, 포인트(240B)는 윈도우(280B)에 대한 평균 대역폭을 도시하고, 포인트(240C)는 윈도우(280C)에 대한 평균 대역폭을 나타낸다. 도시된 바와 같이, 그래프(200)의 진동은 간격(d1)보다 상당히 크다. 이러한 예시에서, 진동은 d1의 길이의 약 8 배의 주기를 갖는다. 그림에서 알 수 있듯이 이것은 예기치 않은 결과를 초래할 수 있다. 예를 들어, 시스템이 포인트(240C)에서 그 시간의 평균 대역폭(피크(222)에 가까움)에 기초하여 미디어 콘텐츠를 스트리밍하기 시작하면, 대역폭이 시간이 지남에 따라(밸리(232)를 향해) 감소되기에, 시스템은 스트리밍에 사용할 수 있는 대역폭을 과대 평가한 것이 되며, 그 결과, 부정적인 사용자 경험이 된다. 반면에, 포인트(240A) 이후에 이용 가능한 대역폭은 과소 평가될 것이다.
따라서, 본 발명에 따른 추정 시스템(도 1의 하나 이상의 서버(120) 내에 위치될 수 있음)은 제1 슬라이딩 윈도우(280)보다 상당히 큰 제2 슬라이딩 윈도우(“진동 윈도우”라고도 함)(290)를 이용한다. 슬라이딩 윈도우(280)로부터의 평균 대역폭 값은 제2 슬라이딩 윈도우(예를 들어, 간격 d2)와 동일한 간격에 걸쳐 조사되어, 그래프(200)의 진동 가능성이 있는지 여부 및 그 정도를 결정한다. 일 실시예에서, d2는 d1의 값의 약 5배 내지 10배일 수 있다. 일 실시예에서, d2는 d1의 값의 약 6배 내지 9배일 수 있다. 특정 실시예에서, d1은 약 10초이고 d2는 60초 내지 90초(바람직하게는 약 80초)이다. 그러나, 본 발명이 이에 한정되는 것은 아니다.
계속해서, 도 2를 참조하면, 추정 시스템은 미리 결정된 간격, 예를 들어 d1 폭의 약 절반(예를 들어, 약 5초)으로 슬라이딩 윈도우(280)에 의해 생성된 평균 값을 캡쳐한다. 이러한 값은 전체 간격 d2에 대해 검사된다. 이러한 값들을 사용하여, 시스템은 네트워크가 진동을 경험하고 있는 지 및 그 정도에 대해 적절한 통계 모델과 알고리즘을 사용하여 예측한다. 이 추정 모델은 다양한 형태를 취할 수 있다. 일 실시예에서, 예를 들어, 시계열 예측 모델이 채용되고, 감독 학습(supervised learning) 또는 비감독 학습(unsupervised learning)을 통해 훈련될 수 있다. 일 실시예에서, 예를 들어 최소 제곱 추정을 통해, 자기-회귀 모델이 결정된다. 예를 들어, 회귀 트리, 랜덤 포레스트, 지원 벡터 회귀, 반복적 신경 네트워크, 베이지안 분석 등을 포함하는 다른 모델 및 기술이 채용될 수도 있다. 일 실시예에서, 미래의 최고점 및 최저점은 기계 학습 모델에 기초하여 예측된다. 즉, 시스템은 232에서 밸리가 발생할 가능성이 있고(약간의 신뢰 수준을 가지고), 223에서 피크가 발생할 가능성이 있음을 예측할 수 있다. 대응하는 다항식, 사인파 또는 다른 함수가 이러한 포인트 사이에서 보간될 수 있다.
일부 실시예에서, 낮은 계산 복잡도를 갖는 결정 트리가 과거 행동에 기초하여 미래의 피크 및 밸리를 신속하게 예측하는데 사용될 수도 있다. 즉, 도 2를 참조하면, 시스템은 포인트(240A)에서의 평균 대역폭이(어떤 기준선에 비해) 매우 낮고 포인트(240B) 및 포인트(240C)에서의 평균 대역폭이(소정의 임계치 내에서) 대략적으로 동일할 때, 포인트(240C)과 포인트(240A) 사이의 시간 차이와 대략적으로 동일한 미래 시간에 밸리(예를 들어, 232)가 발생할 것을 예상할 수 있다. 다른 이러한 휴라스틱스(heuristics)는 당업계에 공지된 바와 같은, 실험 및/또는 모델링을 통해 결정될 수 있다.
도 4는 일 실시예에 따른 방법을 나타내는 간략화된 블록도이다. 단계(401)에서, 시스템은 제1 슬라이딩 윈도우 내의 평균 대역폭을 결정한다. 단계(402)에서, 시스템은 그 값(평균 대역폭)을 제2 슬라이딩 윈도우, 더 큰 슬라이딩 윈도우 내에서 캡쳐된 그러한 값들의 세트에 추가한다(즉, 또한 고려한다). 예를 들어, 제1 슬라이딩 윈도우가 10초 정도의 간격을 갖는 경우, 제2 슬라이딩 윈도우는 약 60초의 간격을 가지며, 값은 5초마다 캡쳐되고, 이들 값 중 약 12개가 제2 슬라이딩 윈도우 내에서 고려된다. 이에 따라, 이러한 캡쳐된 값들의 세트는 진동이 발생하는 지 또는 어느 정도 발생하는 지 여부를 결정하는 데 사용되며, 그 정보를 이용하여 미래의 스트리밍 이벤트에 이용 가능할 대역폭을 보다 정확하게 추정한다(단계 403).
달리 말하면, 네트워크와 관련된 대역폭을 추정하는 방법은 다음의 단계를 포함한다. (1) 대응하는 복수의 제1 슬라이딩 윈도우(예를 들어, 280A-C) 내에서 복수의 제1 평균 대역폭(예를 들어, 240A-C)을 결정하는 단계로서, 상기 제1 슬라이딩 윈도우 각각은 제1 지속 시간(d1)을 가지는, 결정하는 단계; (2) 상기 복수의 제1 슬라이딩 윈도우(280A-C)를 포함하는 제2 슬라이딩 윈도우(예를 들어, 290)를 정의하는 단계로서, 상기 제2 슬라이딩 윈도우는 상기 제1 지속 기간(d1)보다 긴 제2 지속 기간(d2)을 가지는, 정의하는 단계; (3) 상기 제2 슬라이딩 윈도우(290) 내의 상기 제1 복수의 제1 평균 대역폭(240A-C)에 기초하여(도시 된 바와 같은) 대역폭 진동이 발생하는 지 여부를 결정하는 단계; 및 (4) 진동 결정에 기초하여 미래 시간의(즉, 장래의) 대역폭을 추정하는 단계를 포함한다.
여기서, “미래 시간”은 다른 무엇보다도 d1 및 d2에 따라 달라진다. 예를 들어, 예측을 위한 미래 시간은 윈도우(290)의 우측 에지(right edge)일 수 있다. 이와 관련하여, 도면에서 "오른쪽"으로의 이동은 시간의 양의 변화(positive changes)와 일치한다는 것을 알 수 있다.
복수의 제 1 슬라이딩 윈도우(280A-C)는 제2 슬라이딩 윈도우 내의 시간에서 규칙적으로(예를 들어, 동일 간격으로(equispaced)) 또는 불규칙적으로 이격될 수 있다. 또한, 제1 슬라이딩 윈도우(280A-C)는 제2 슬라이딩 윈도우(290) 내에 실질적으로 대칭적으로 배치되거나(도 2에 도시 된 바와 같이) 임의의 적합한 위치에 비대칭적으로 배치될 수 있다.
그러나, 도 2의 화살표에 의해 지시된 바와 같이, 미래 시간은(예를 들어, 232에서의 로컬 최소값을 향해) 더 멀리 연장될 수 있다. 일 실시예에서, 미래 시간은 제2 윈도우(290)의 가장 우측 에지와 윈도우(290)의 폭과 동일한 폭(즉, 시간) 사이에 있다. 또 다른 실시예에서, 미래 시간은 제2 윈도우(290)의 가장 우측 에지와 윈도우(290)의 대략 절반에 해당하는 폭 사이에 있다.
상기 시스템 및 방법은 엔터테인먼트 장치 및 시스템의 다양한 환경에서 구현될 수 있다. 도 3은 하나의 비제한적인 예시로서 시스템(300)을 도시한다. 시스템(300)은 목적 전자 장치(304)의 사용자(또는 시청자)에게 제공하기 위해 소스 전자 장치(308)에서 목적 전자 장치(304)로 네트워크(306)를 통해 미디어 프로그램(또는 미디어 콘텐츠)와 같은 데이터 또는 콘텐츠를 플레이스쉬프팅 또는 다른 방식으로 전송하기 위한 시스템이다. 따라서, 도 1의 서버(121)는 콘텐츠 소스(326)로서 구현될 수 있고, 도 1의 네트워크(150)는 도 3의 네트워크(306)에 대응할 수 있고 도 1의 컴퓨팅 장치(111)는 장치(308)(또는 장치(304))에 대응할 수 있다. 소스 장치(308)는 본 명세서에서 미디어 장치 또는 플레이스쉬프팅 장치로 지칭될 수 있고, 목적 전자 장치(304)는 재생 장치 또는 클라이언트 장치(또는 클라이언트)로 지칭될 수 있으나, 이는 설명을 위한 목적이며, 이에 제한되는 것은 아니다.
플레이스쉬프팅 시스템(300)은 호스트 서버(302)(또는 호스트)를 더 포함한다. 호스트 서버(302)는 네트워크(306)를 통해 장치들(304, 308)과 통신하거나 다른 방식으로 상호 작용하여 네트워크(306)를 통한 피어-투-피어 연결(380)의 설립을 용이하게 하며, 이는 이하에서 상세히 설명하는 바와 같이, 플레이스쉬프팅 세션을 위해 이용될 수 있다. 도 3은 설명의 목적을 위해 플레이스쉬프팅 시스템(300)의 간략하게 표현한 것으로, 본 명세서에 기술된 주제를 어떤 방법으로 제한하는 것은 아니다.
실제로, 클라이언트 장치(304)는 네트워크(306)를 통해 서버(302)와 통신할 수 있는 임의의 장치, 구성 요소, 모듈, 하드웨어 및/또는 유사 장치일 수 있다. 예를 들어, 실시예에 따라, 클라이언트 장치(304)는 종래의 퍼스널 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 워크 스테이션 및/또는 다른 컴퓨팅 시스템, 모바일(또는 셀룰러) 전화기, 스마트 폰, 개인 휴대 정보 단말기, 비디오 게임 플레이어 및/또는 네트워크(306)를 통해 미디어 프로그램을 수신하고 오디오 및/또는 비디오 콘텐츠를 제공 할 수 있는 임의의 다른 장치일 수 있다. 이와 관련하여, 클라이언트 장치(304)는 애플리케이션(305, 307)에 의해 생성되거나 다른 방식으로 제공되고 클라이언트(304)상에서 실행되는 비쥬얼 콘텐츠, 데이터 및/또는 정보를 그래픽으로 표현할 수 있는 모니터, 스크린 또는 다른 종래의 전자 디스플레이와 같은 디스플레이 장치를 포함한다 된다. 클라이언트 장치(304)는 클라이언트 장치(304)의 사용자로부터 입력 데이터 및/또는 다른 정보를 수신할 수 있는 키보드, 마우스, 터치 스크린 등과 같은 사용자 입력 장치를 더 포함 할 수 있다. 또한, 클라이언트 장치(304)는 프로세싱 시스템 및 데이터 저장 요소(또는 메모리)를 더 포함한다. 데이터 저장 요소(또는 메모리)는 프로세싱 시스템과 커플링되거나 다른 방식으로 프로세싱 시스템에 의해 액세스된다. 데이터 저장 요소(또는 메모리)는 프로그래밍 명령어들을 저장한다. 프로그래밍 명령어들은 판독 및 실행될 때, 클라이언트 장치(304)의 프로세싱 시스템이 프로세싱 시스템 상에서 실행되는 하나 이상의 애플리케이션(305, 307, 309)을 생성하고, 다양한 작업, 기능, 프로세스 및/또는 동작을 수행하고 여기서 설명된 내용을 지원하도록 야기한다. 프로세싱 시스템은 임의의 종류의 프로세서, 마이크로 프로세서, 마이크로 제어기, 디지털 신호 프로세서, 또는 임의의 다른 적절한 처리 장치, 또는 이들의 임의의 적절한 조합으로서 구현될 수 있다.
클라이언트(304)는 미디어 장치(308)의 지리적 위치로부터 멀리 떨어진 지리적 위치 또는 다른 방식으로 물리적으로 구별되는 지리적 위치에 존재할 수 있다. 이와 관련하여, 미디어 장치(308)는 기본적으로 고정된 또는 영구적인 지리적 위치를 가질 수 있는 반면 클라이언트(304)의 지리적 위치는 미디어 장치(308)의 위치에 대해 일시적이거나 가변적일 수 있다. 예를 들어, 미디어 장치(308)는 셋톱 박스 또는 사용자의 가정에 상주하여 미디어 콘텐츠를 사용자의 텔레비전 또는 다른 홈 디스플레이 장치(340)에 제공하는 유사한 장치로 구현될 수 있는 반면, 클라이언트(304)는 사용자와 함께 이동하는 이동 전화 또는 다른 이동 컴퓨팅 장치와 같은 휴대용 전자 장치로 구현될 수 있다.
도 3에 도시된 실시예에서, 클라이언트 장치(304)는 종래 브라우저 또는 표준 인터넷, 월드 와이드 웹(WWW), 전송 제어 프로토콜 및/또는 인터넷 프로토콜(TCP/IP) 및/또는 다른 포맷들과 호환 가능한 다른 클라이언트 애플리케이션(305)을 실행한다. 이러한 브라우저는 일반적으로 공개된 프로토콜 및/또는 컴퓨터 언어(예를 들어, HTML, XML, CSS, JavaScript 등)에 따라 서식이 지정된 활성 문서 또는 다른 방식의 문서를 표시할 수 있다. 많은 브라우저는 “플러그인” 응용 프로그램, 애플릿(applets) 등을 실행할 수도 있다. 이러한 플러그인은 ActiveX, JAVA, JavaScript 및/또는 여러 가지 다른 형식에 따라 구성될 수 있다. 일반적으로 사용되는 여러 웹 브라우저는 다양한 컴퓨팅 플랫폼에서 사용할 수 있으며 여기에 설명된 내용은 특정 브라우저 응용 프로그램에만 국한되는 것은 아니다. 도시된 실시 예에서, 클라이언트(304)는 미디어 플레이어 애플리케이션(307)을 더 포함한다. 미디어 플레이어(307)는 독립형 미디어 플레이어일 수 있거나, 미디어 플레이어(307)는 원하는 대로 클라이언트 애플리케이션(305) 내에서 실행되는 플러그인 또는 다른 애플릿으로서 구현될 수 있다. 일부 실시 예에서, 미디어 플레이어(307)는 초기에 서버(302)와 같은 네트워크화 된 호스트로부터 획득된다. 일부 실시예에서 미디어 플레이어(307)는 필요에 따라 검색되거나, 후속 실행을 위해 클라이언트(304)에 저장 될 수 있다
계속해서 도 3을 참조하면, 예시적인 실시예에서, 미디어 장치(308)는 하나 이상의 콘텐츠 소스로부터 미디어 콘텐츠를 수신하고 처리할 수 있는 임의의 형태의 장치, 모듈, 컴포넌트, 하드웨어 및/또는 이와 유사한 장치일 수 있다. 예를 들어, 일부 실시예에서, 미디어 장치(308)는 셋톱 박스(STB)일 수 있다. 또는 미디어 장치(308)는 텔레비전 프로그래밍을 수신 및/또는 텔레비전, 모니터, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 플라즈마 디스플레이 등과 같은 디스플레이 장치(340) 상에 표시되는 특정 프로그램을 녹화할 수 있는 유사한 시스템일 수 있다. 따라서, 미디어 장치(308)의 예시적인 실시예는 방송 소스(312)로부터 위성, 케이블 및/또는 방송 프로그래밍 신호를 수신하기 위한 수신기 인터페이스(342)를 포함하거나 다른 방식으로 이에 결합될 수 있다. 뿐만 아니라, 미디어 장치(308)의 예시적인 실시예는 디지털 비디오 레코더(DVR)의 피쳐(feature) 및/또는 기능(functionality)을 지원하기 위한 데이터 저장 매체(310)(예를 들어, 하드 디스크, 플래시 메모리, 또는 다른 적절한 비휘발성 데이터 저장 요소), 디스플레이 장치(340)에 이미지를 제공하기 위한 디스플레이 인터페이스(344) 및 적절한 미디어 장치(308)의 동작을 지시하는 제어 모듈(346)를 포함하거나 이들에 결합될 수 있다. 본 명세서에서, 설명의 편의를 위해 데이터 저장 매체(310)를 DVR이라 지칭하나, 이에 한정되는 것은 아니다. 미디어 장치(308)는 또한 네트워크(306)에 대한 하나 이상의 인터페이스(348) 및/또는 미디어 장치(308)에 사용자 입력을 적절하게 제공하기 위한 원격 제어 장치 또는 다른 장치에 대한 입력/출력(I/O) 인터페이스(350)를 포함할 수 있다. 예시적으로, 미디어 장치(308)의 네트워크 인터페이스(348)는 유선 통신 계층을 위한 인터페이스 또는 포트(예를 들어, 이더넷 포트 또는 어댑터), 무선 통신 계층을 위한 인터페이스(예를 들어, IEEE 802.11- 호환 송수신기), 및/또는 기타 통신 계층을 위한 인터페이스 등을 포함할 수 있다.
미디어 장치(308)의 구성 요소는 도 3에 도시된 바와 같은 공통 섀시 또는 하우징 내에 제공될 수 있고, 동등한 실시예에서 미디어 장치(308)는 임의의 수의 상호 접속되지만 분리된 구성 요소 또는 시스템을 가지도록 구현될 수 있다. 예를 들어, 일 실시예에서, 미디어 장치(308)는 STB 및 플레이스쉬프팅 장치의 조합으로서 구현 될 수 있다. STB에 의해 실행되는 미디어 장치(308)(예를 들어, DVR(310), 수신기(342), 디스플레이 인터페이스(344) 및/또는 I/O(350))의 몇몇 피쳐들 및 미디어 장치(308)의 다른 피쳐들(예를 들어, 네트워크 인터페이스(348))은 플레이스쉬프팅 장치에 의해 구현된다. 여기서 플레이스쉬프팅 장치는 STB와 함께 동작하여 가정용 텔레비전(예를 들어, 디스플레이 장치(340))으로부터 네트워크(306)를 통해 액세스되는 시청 경험(viewing experience)을 클라이언트 장치(304)상의 시청 디스플레이(viewing display)로 쉬프트한다. 미디어 장치(308)의 일부 실시예들에서 사용될 수 있는 플레이스쉬프팅 장치의 예시들은 캘리포니아 주 포스터 시티의 슬링 미디어(Sling Media)로부터 이용 가능한 다양한 SLINGBOX 제품들 중 임의의 것 또는 다른 실시예들에서 사용될 수 있는 다른 제품들 또는 서버들을 포함할 수 있다. 많고 다양한 유형의 플레이스쉬프팅 장치는 일반적으로 임의의 종류의 DVR 또는 STB, 케이블 또는 위성 프로그래밍 소스, DVD 플레이어 등과 같은 외부 소스로부터 미디어 콘텐츠를 수신할 수 있다. 다른 실시예에서, 플레이스쉬프팅 피쳐는 콘텐츠 수신 또는 다른 기능을 제공하는 동일한 장치 내에 통합된다. 미디어 장치(308)는 예를 들어, 트랜스코딩(transcoding) 및 플레이스쉬프트 피쳐를 또한 제공하는 하이브리드 DVR 및/또는 수신기일 수 있다. 도 3은 미디어 장치(308)의 단지 하나의 예시적인 실시예를 나타내며, 실제로, 미디어 장치(308)는 특정 실시예의 필요성에 부합하는 임의의 방식으로 논리적 및 물리적으로 구현될 수 있다.
도 3에 도시된 예시적인 실시예에서, 미디어 장치(308)는 수신 신호를 수신기(342)에 제공하는 안테나(352)를 사용하여 위성과 같은 방송 소스(312)로부터 송신된 디지털 방송 위성(DBS) 신호를 수신할 수 있다. 다만, 이에 한정되는 것은 아니며, 동등한 실시예에서 미디어 장치(308)는 임의의 종류의 케이블 연결, 방송 소스, 착탈식 매체, 네트워크 서비스, 외부 장치 및/또는 이와 유사한 장치로부터 수신기(342)에 프로그래밍을 수신할 수 있다. 일부 실시예에서, 미디어 장치(308)는 또한 시청자가 주 디스플레이 장치(340)에 제공된 미디어 콘텐츠를 볼 수 있도록 허가된 액세스 카드(360)(또는 뷰잉 카드)를 수신하도록 구성된 액세스 카드 인터페이스 또는 카드 리더(354)를 포함할 수 있다. 이와 관련하여, 액세스 카드(360)는 방송 콘텐츠 소스(312)에 대한 특정 가입자와 관련된 고유 식별 정보를 포함하거나 또는 다른 방식으로 방송 콘텐츠 소스(312)에 의해 제공된 미디어 콘텐츠의 수신 및/또는 디코딩을 용이하게 하는 가입 정보를 포함한다.
DVR(310) 피쳐는 사용자/시청자 프로그래밍 명령들에 응답하여 하드 디스크 드라이브, 메모리, 네트워크화 된 서버 또는 다른 저장 매체 상에 기록된 프로그래밍(예를 들어, 수신기(342)를 통해 수신되고 기록된 방송 프로그래밍)을 저장한다. 기록된 프로그래밍은 네트워크(306)를 통해 디스플레이 장치(340) 또는 클라이언트 장치(304) 상에서 미디어 장치(308)를 통해 순차적으로 시청될 수 있다. DVR(310)에 저장된 콘텐츠는 미디어 장치(308)에 액세스 가능한 임의의 종류의 파일 기반 프로그래밍 또는 다른 콘텐츠일 수 있다. 다양한 실시예들에서, 방송 프로그래밍을 저장하는 것 외에, DVR(310)은 예를 들어 주문형 프로그래밍 소스 또는 온라인 프로그래밍 소스로부터 다운로드된 프로그래밍과 같이, 도 3에 도시되지 않은 다른 소스들로부터 수신된 프로그래밍을 저장할 수도 있다. 또한, DVR(310)의 콘텐츠는 원하는 대로 임의의 종류의 압축 또는 비 압축 포맷으로 저장될 수 있으며, 효과적인 수신, 저장, 검색 및 재생을 위해 원하는 대로 인코딩 또는 트랜스 코딩될 수 있다.
제어 모듈(346)은 임의의 종류의 하드웨어, 회로, 프로세싱 로직 및/또는 미디어 장치(308)의 동작을 지시할 수 있는 다른 컴포넌트이다. 다양한 실시 예에서, 제어 모듈(346)은 임의의 종류의 프로세서, 마이크로 프로세서, 마이크로 컨트롤러, 디지털 신호 프로세서 등과 같은 임의의 종류의 처리 시스템상에서 실행되고 메모리에 상주하는 소프트웨어 또는 펌웨어 로직 및/또는 다른 프로그래밍 명령어를 포함한다. 이러한 명령어들은 판독되고 실행될 때, 제어 모듈(346)로 하여금 다양한 작업, 기능, 처리 및/또는 동작을 수행하게 하고, 본 명세서에서 설명 된 내용을 지원하게 한다. 다양한 실시예에서, 제어 모듈(346)은 메모리, 입력/출력 및 미디어 장치(308)의 다양한 신호 처리 및 다른 동작을 수행하는 다른 피쳐를 갖는 하이브리드 마이크로 컨트롤러를 통합하는 시스템 온 칩(SoC) 구현에 기초한다. 다른 실시예는 원하는 대로 제어 모듈(346) 및/또는 임의의 수의 개별 및/또는 집적 프로세싱 구성 요소(예를 들어, 임의의 종류의 마이크로 프로세서 또는 마이크로 컨트롤러), 메모리, 입력/출력 및/또는 다른 피쳐를 갖는 미디어 장치(308)의 다른 피쳐를 구현할 수 있다. 제어 모듈(346)은 네트워크 인터페이스(348)와 통신하여 네트워크(306)를 통해 클라이언트 장치(304)에 피어-투-피어 연결(380)을 설정한다. 제어 모듈(346)은 네트워크 인터페이스(348)와 통신하여 피어-투-피어 연결(380)을 통한 네트워크(306)를 통해 미디어 프로그램(예를 들어, DVR(310) 또는 수신기(342))에서 클라이언트 장치(304)로의 스트리밍을 지원한다. 이하에서 보다 상세히 이에 대해 설명한다.
도 3의 실시예에서, 네트워크(306)는 시스템(300) 내의 장치들간의 데이터를 전송할 수 있는 임의의 통신 네트워크(또는 통신 네트워크들의 조합)이다. 다양한 실시예에서, 네트워크(306)은 임의의 수의 통신 프로토콜을 지원하는 임의의 수의 공중 또는 개인 데이터 접속, 링크 또는 네트워크를 포함한다. 네트워크(306)는 예를 들어, 인터넷 또는 임의의 다른 네트워크를 포함할 수 있다. 이러한 네트워크는 TCP/IP 또는 다른 종래의 프로토콜에 기초할 수 있지만, 다른 실시예는 원하는 대로 임의의 유형의 대체 프로토콜 또는 후속 프로토콜을 사용할 수 있다. 다양한 실시예에서, 네트워크(306)는 이동 전화, 개인 휴대 정보 단말기 및/또는 기타 통신을 위한 셀룰러 통신 네트워크와 같은 무선 및/또는 유선 전화 네트워크를 포함할 수 있다. 네트워크(306)의 다양한 실시예는 임의 종류의 무선 또는 유선 근거리 통신망(LAN), 광역 통신망(WAN) 등을 포함할 수 있다.
도 3의 도시된 실시예에서, 서버(302)는 하나 이상의 서버 컴퓨터 또는 네트워크(306)에 연결된 다른 장치(들)로서 구현될 수 있다. 서버(302)는 클라이언트 장치(304)와 클라이언트(304)의 사용자 또는 운영자와 관련된 미디어 장치(308) 사이의 통신을 용이하게 하도록 장치들(304, 308)과 상호 작용하도록 구현될 수 있다. 서버(302)는 임의의 프로세서, 아키텍처 및/또는 운영 체제에 기초한 서버 컴퓨터 시스템 또는 데이터 처리 시스템으로 구현될 수 있다. 서버(302)는 전형적으로 프로세싱 시스템(330), 메모리(332), 및 입력/출력(I/O) 피쳐(334)을 사용하여 구현될 수 있다. 다양한 실시예는 전용 또는 공유 하드웨어 서버를 사용하여 구현될 수 있다. 다른 구현은 임의의 수의 제공자에 의해 제공되는 임의의 클라우드 컴퓨팅 서비스와 같은 "클라우드 컴퓨팅"서비스의 일부로서 가상 서버 피쳐를 이용할 수 있다.
도 3은 단일 서버(302)를 도시하지만, 시스템(300)의 많은 실제적인 실시예는 다수의 클라이언트 304) 및/또는 다수의 미디어 장치(308)와의 임의의 바람직한 동시적인 통신을 지원하기 위해 다수의 호스트 서버(302)의 클러스터 또는 다른 집합을 제공할 수 있다. 이러한 클러스터는 적절한 라우팅, 로드 밸런싱, 액세스 및 보안 메커니즘 및 기타 여러 피쳐를 통합할 수도 있다. 다양한 실시예에서, 각각의 서버(302)는 컴퓨터 코어를 제공하기 위해 프로세싱 시스템(330), 메모리(332) 및/또는 I/O 피쳐(334)과 관련하여 운영 시스템(336)을 실행하는 실제 또는 가상 컴퓨터 시스템이다. 상기 컴퓨터 코어는 포탈 애플리케이션(338)뿐만 아니라 임의의 수의 데몬, 프로세스, 애플리케이션 또는 원하는 다른 모듈도 실행할 수 있다. 예를 들어, 포털 애플리케이션(338)은 서버(302)상에서 데몬으로서 실행될 수 있고, 개별 클라이언트(304) 로의 접속은 운영 시스템(336)에 의해 제공되는 피쳐를 사용하여 포털 애플리케이션(338)과 통신하는 별도의 프로세스 또는 인스턴스로서 관리된다. 하나 이상의 실시예에서, 메모리(332)는 판독 및 실행될 때 프로세싱 시스템(330)이 포털 애플리케이션(338)을 생성하거나 다른 방식으로 용이하게 하고 여기에 설명된 다양한 작업, 기능, 프로세스 및/또는 동작을 수행하게 하는 프로그래밍 명령을 저장한다. 이와 관련하여, 메모리(332)는 프로세싱 시스템(330)에 의해 또는 프로세스 시스템(330)상에서 실행하기 위한 프로그래밍 명령을 저장할 수 있는 임의의 비 일시적 단기 또는 장기 데이터 저장 요소 또는 다른 컴퓨터 판독 가능 매체를 나타낸다.
클라이언트(304)의 사용자는 네트워크(306)를 통해 호스트(302)에 의해 지원되는 포털 애플리케이션(338)에 접속할 수 있다. 예를 들어 클라이언트 애플리케이션(305)을 URL 또는 호스트(302) 및/또는 포털 애플리케이션(338)과 관련된 다른 네트워크 어드레스로 향하게 함으로써 접속할 수 있다. 예시적인 실시 예에서, 사용자가 포탈 애플리케이션(338)에 의해 성공적으로 인증 된 후, 장치(308)와 관련된 접속 파라미터를 얻는다. 연결 정보 클라이언트(305)를 사용하여 미디어 데이터를 스트리밍하고 통신하기 위해 사용되는 채널(380)을 설정한다. 그 이후, 클라이언트(304)는 미디어 장치(308)에 저장되고 클라이언트 장치(304)에 플레이스쉬프팅을 위해 이용 가능한 프로그래밍에 관한 정보(예를 들어, DVR(310)에 저장된 미디어 프로그램의 리스트)를 네트워크(306)를 통해 미디어 장치(308)로부터 얻기 위해 연결(380)을 이용한다. 도 3은 네트워크 연결(380)이 호스트(304)와 미디어 장치(308) 사이에 위치하는 것을 도시하지만, 실제로, 플레이스쉬프팅 시스템(300)은 상기 접속(380)을 설정, 촉진 또는 다른 방식으로 지원하도록 구성된 하나 이상의 중간 구성 요소(예를 들어, 하나 이상의 메시지 서버 또는 중계 서버)를 포함할 수 있다.
서버(302)는 네트워크(306)상에서 동작하는 서버, 데이터베이스, 또는 다른 장치로서 실현될 수 있는 전자 프로그램 가이드(EPG)(322)에 결합된다. 전자 프로그램 가이드(322)는 방송 소스(312)로부터 수신 될 수 있는(예를 들어, 수신기(342) 및/또는 안테나(352)를 통해 미디어 장치(308)에 의해) 미디어 프로그램의 현재 및/또는 미래의 방송(또는 에어링(airing))에 관한 정보를 유지한다. 서버(302) 및/또는 포털 애플리케이션(338)은 전자 프로그램 가이드(322)로부터 미디어 프로그램의 현재 및/또는 미래의 방송(또는 에어링(airing))에 관한 정보를 얻을 수 있다. 서버(302) 및/또는 포털 애플리케이션(338)은 클라이언트 장치(304) 상(예를 들어, 클라이언트 애플리케이션(305) 내에)에 프로그램 가이드 그래픽 유저 인터페이스(GUI) 디스플레이를 생성하거나 다른 방식으로 제공할 수 있다. 프로그램 가이드 그래픽 유저 인터페이스(GUI) 디스플레이는 미디어 장치(308)로부터 스트리밍을 위해 사용 가능하거나 또는 사용될 수 있는 미디어 프로그램을 나타낸다. 클라이언트 장치(304)의 사용자는 클라이언트 장치(304)에 스트리밍 및/또는 DVR(310)에 기록하기 위한 미디어 프로그램을 선택하거나 그렇지 않으면 식별하기 위해 그래픽 사용자 인터페이스(또는 이에 포함된 그래픽 사용자 인터페이스 요소)를 조작하거나 또는 다른 방식으로 이용한다. 사용자는 스트리밍된 미디어 프로그램의 프레젠테이션을 일시 중지하거나 또는 다른 방식으로 중지할 수 있다. 사용자는 제3-파티 콘텐츠 소스(326)(예를 들어, 제3-파티 웹 사이트)에 콘텐츠에 대한 요청을 네트워크(306)를 통해 전송 또는 제공하기 위해 클라이언트 애플리케이션(306)을 조작하거나 그렇지 않으면 조종할 수 있다. 제3-파티 콘텐츠 소스(326)은 네트워크(306)를 통해 클라이언트 장치(304)에 콘텐츠를 전송하거나 또는 다른 방식으로 제공함으로써 요청에 응답한다.
도 3의 도시된 실시예에서, 플레이스쉬프팅 시스템(300)은 검증되거나 유효화 된 메타 데이터 및/또는 방대한 미디어 프로그램 배열에 대한 다른 설명 정보를 포함하는 미디어 프로그램 데이터베이스(324)도 포함한다. 예를 들어, 미디어 프로그램 데이터베이스(324)는 플레이스쉬프팅 시스템(300) 내의 하나 이상의 콘텐츠 소스로부터 이용 가능할 수 있는 실질적인 모든 미디어 프로그램에 관한 메타 데이터 및/또는 다른 설명 정보(예를 들어, 방송 소스(312)에 의해 이전에 방송된 임의의 미디어 프로그램에 관한 정보, 극장에서 상영되었거나, 주문형으로 제공되거나, 개인적인 용도를 위해 출시된(예를 들어, 디지털 비디오 디스크(DVD) 등) 임의의 영화에 관한 정보)를 포함할 수 있다. 예시적인 실시예에서, 미디어 프로그램 데이터베이스(324)에 레코드(또는 엔트리)를 갖는 각각의 미디어 프로그램에 대해, 미디어 프로그램 데이터베이스(324)는 미디어 프로그램 레코드를 식별하는데 사용될 수 있는 프로그램 식별자의 하나 이상의 필드와 함께 미디어 프로그램과 관련된 메타 데이터의 하나 이상의 필드를 포함하는 미디어 데이터 오브젝트를 유지한다. 이와 관련하여, 프로그램 가이드(322) 및 미디어 프로그램 데이터베이스(324)는 각각의 미디어 프로그램을 고유하게 식별하기 위해 동일한 프로그램 식별자를 이용할 수 있다.
플레이스쉬프팅 시스템(300)은 도시된 바와 같이, 등록 서버(323)을 더 포함할 수 있다. 인증 및 접속 파라미터가 서버(302)에 의해 제공된 후에, 서버(302 또는 305)는 적절한 등록 정보를 가져올 수 있다. 미디어 장치는 네트워크(306)를 통해 등록 서버(323)에 자신을 등록할 수 있다. 등록의 일부로서, 미디어 장치는 고유한 ID 및 장치가 "수신 대기"하는 포트와 통신한다. 등록 서버(323)는 장치 ID, 그것의 공용 IP 주소 및 수신 대기하는 포트 번호를 알고 있다. 이러한 프로세스는 공용 IP 주소 또는 포트의 임의의 변경이 등록 서버(323)에 반영되도록 주기적으로 수행될 수 있다.
동등한 실시예에서 다수의 다른 수정 및 개선이 다양한 대안으로 제공될 수 있다. 여기에서, 용어 "예시적(exemplary)"은 대체 예를 얼마든지 가질 수도 있는 일예, 사례(instance) 또는 실례(illustration)를 표현하는데 이용된다. 여기에서 예시로서 설명된 모든 실행은 다른 실행들보다 우선되거나 유리하도록 설계되는 것이 필연적이지는 않다. 몇몇 예시적인 실시예들이 본 발명의 상세한 설명 내에 제공되는 동안, 이는 동일한 변형들의 존재가 아닌 많은 수의 대체예의 존재, 여기에서 제공된 예시들은 범위, 적용가능성, 또는 본 발명의 구성에 아무런 제한을 의도하는 것이 아니도록 이해되어야 한다. 이와 대조적으로, 다양한 변화들이 청구항 및 청구항의 법률상 동일한 범위에서 벗어나지 않은 설명된 성분들의 배열 및 기능에서 만들어진다.
306: 네트워크 310: DVR
322: EPG 323: 등록 서버
324: 미디어 프로그램 데이터베이스 326: 콘텐츠 소스
330: 프로세싱 시스템 332: 메모리
334: I/O 336: 운영 시스템
338: 포탈 애플리케이션 340: 디스플레이 장치
342: 수신기 344: 디스플레이
346: 컨트롤 모듈 348: 네트워크 인터페이스
350: I/O 354: 카드 리더
360: 카드

Claims (21)

  1. 네트워크의 미래 대역폭 가용성을 추정하는 방법으로, 상기 방법은 상기 네트워크를 통해 미디어 장치와 통신하는 서버를 이용하여 수행되고, 상기 방법은:
    상기 서버에 포함된 프로세서로, 상기 서버가 미디어 컨텐츠를 상기 미디어 장치에 스트리밍하는 동안 대응하는 복수의 제1 슬라이딩 윈도우 내의 평균 대역폭을 결정하는 단계로서, 상기 제1 슬라이딩 윈도우 각각은 제1 지속 기간을 가지는, 결정하는 단계;
    상기 대응하는 복수의 제1 슬라이딩 윈도우의 대응하는 제1 슬라이딩 윈도우를 포함하는 제2 슬라이딩 윈도우를 정의하는 단계;
    상기 서버의 메모리에, 상기 제2 슬라이딩 윈도우 내에서 하나 이상의 제1 슬라이딩 윈도우의 세트의 복수의 평균 대역폭을 캡쳐하는 단계로서, 상기 제2 슬라이딩 윈도우는 상기 제1 슬라이딩 윈도우의 제1 지속 시간보다 큰 제2 지속 시간을 가지는, 캡쳐하는 단계;
    상기 프로세서로, 네트워크의 대역폭 진동으로 인한 미래 대역폭 밸리 및 미래 대역폭 피크를 예측하기 위한 복수의 평균 대역폭을 분석하는 단계로서, 상기 분석은: 기준선 값보다 작은 값을 가지는 제1 평균 대역폭을 식별하고, 상기 제1 평균 대역폭 이후에 발생하고 상기 제1 평균 대역폭보다 더 높은 값을 가지는 제2 평균 대역폭을 식별하며, 상기 제2 평균 대역폭 이후의 기간에서 상기 미래 대역폭 밸리가 발생하는 시기를 예측하는 것을 포함하되, 상기 기간은 제1 평균 대역폭과 제2 평균 대역폭이 발생한 시간의 차이와 동일한, 분석하는 단계;
    상기 미래 대역폭 피크와 상기 미래 대역폭 밸리 사이의 기능을 보간하는 단계;
    상기 서버가 상기 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍함에 따라 상기 네트워크의 미래 대역폭 가용성을 추정하기 위해 상기 기능을 이용하는 단계; 및
    대역폭이 시간이 지남에 따라 미래 대역폭 밸리로 감소함에 따른 스트리밍 가능한 미래 대역폭의 과대 평가를 방지하기 위해, 상기 서버가 네트워크를 통해 상기 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍할 때 상기 결정, 캡쳐, 분석, 보간 및 이용하는 단계를 반복하는 단계를 포함하는 방법.
  2. 제1 항에 있어서,
    상기 제2 지속 기간은 상기 제1 지속 기간의 5배 내지 10배인 것을 특징으로 하는 방법.
  3. 제2 항에 있어서,
    상기 제2 지속 기간은 상기 제1 지속 기간의 6배인 것을 특징으로 하는 방법.
  4. 제3 항에 있어서,
    상기 제1 지속 기간은 10초이고, 상기 제2 지속 기간은 60초인 것을 특징으로 하는 방법.
  5. 제1 항에 있어서,
    상기 프로세서는 기계 학습 모델을 이용하여 상기 복수의 평균 대역폭을 분석하여 상기 미래 대역폭 피크 및 상기 미래 대역폭 밸리를 예측하는 방법.
  6. 제5 항에 있어서,
    상기 기계 학습 모델은 시계열 예측 모델이고, 상기 기계 학습 모델은 비감독 학습을 통해 훈련되는 것을 특징으로 하는 방법.
  7. 제1 항에 있어서,
    상기 프로세서는 상기 미래 대역폭 피크가 상기 제2 슬라이딩 윈도우의 가장 우측 에지에서의 시간보다 더 큰 미래 시간에서 발생할 것을 예측하는 방법.
  8. 제7 항에 있어서,
    상기 미래 시간은 상기 제2 슬라이딩 윈도우의 가장 우측 에지에서의 시간과 상기 제2 슬라이딩 윈도우의 지속 기간의 길이의 합보다 작은 것을 특징으로 하는 방법.
  9. 삭제
  10. 미디어 장치로서, 상기 미디어 장치는 상기 미디어 장치가 네트워크를 통해 서버와 통신할 수 있도록 구성된 네트워크 인터페이스; 기계 판독 가능한 소프트웨어 명령을 저장하는 메모리; 및 상기 네트워크 인터페이스 및 상기 메모리에 연결되는 프로세서를 포함하고,
    상기 프로세서는 상기 기계 판독 가능한 소프트웨어 명령을 실행할 때, 상기 미디어 장치로 하여금 단계들을 수행하도록 하며,
    상기 단계들은,
    네트워크 인터페이스를 통해 복수의 패킷을 수신하고, 네트워크의 대역폭을 결정하는 단계;
    제1 지속 기간을 가지는 제1 슬라이딩 윈도우 내의 평균 대역폭을 결정하는 단계;
    적어도 하나의 제1 슬라이딩 윈도우를 포함하는 제2 슬라이딩 윈도우를 정의하는 단계;
    상기 메모리에, 상기 제1 지속 시간보다 큰 제2 지속 시간을 가지는 상기 제2 슬라이딩 윈도우 내의 제1 슬라이딩 윈도우의 세트 중 하나 이상에 대해 발생하는 복수의 평균 대역폭을 캡쳐하는 단계;
    네트워크의 대역폭 진동으로 인한 미래 대역폭 밸리 및 미래 대역폭 피크를 예측하기 위한 복수의 평균 대역폭을 상기 제2 슬라이딩 윈도우 내에서 분석하는 단계로서, 상기 분석은: 기준선 값보다 작은 값을 가지는 제1 평균 대역폭을 식별하고, 상기 제1 평균 대역폭 이후에 발생하고 상기 제1 평균 대역폭보다 더 높은 값을 가지는 제2 평균 대역폭을 식별하며, 상기 제2 평균 대역폭 이후의 기간에서 상기 미래 대역폭 밸리가 발생하는 시기를 예측하는 것을 포함하되, 상기 기간은 제1 평균 대역폭과 제2 평균 대역폭이 발생한 시간의 차이와 동일한, 분석하는 단계;
    상기 미래 대역폭 피크와 상기 미래 대역폭 밸리 사이의 기능을 보간하는 단계;
    상기 서버가 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍함에 따라 상기 네트워크의 미래 대역폭 가용성을 추정하기 위해 상기 기능을 이용하는 단계; 및
    대역폭이 시간이 지남에 따라 미래 대역폭 밸리로 감소함에 따른 스트리밍 가능한 미래 대역폭의 과대 평가를 방지하기 위해 상기 서버가 네트워크를 통해 상기 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍할 때 상기 수신, 결정, 캡쳐, 분석, 보간 및 이용하는 단계를 반복하는 단계를 포함하는 미디어 장치.
  11. 제10 항에 있어서,
    상기 제2 지속 기간은 상기 제1 지속 기간의 5배 내지 10배인 것을 특징으로 하는 미디어 장치.
  12. 제11 항에 있어서,
    상기 제2 지속 기간은 상기 제1 지속 기간의 6배인 것을 특징으로 하는 미디어 장치.
  13. 제12 항에 있어서,
    상기 제1 지속 기간은 10초이고, 상기 제2 지속 기간은 60초인 것을 특징으로 하는 미디어 장치.
  14. 제10 항에 있어서,
    상기 프로세서는 상기 기계 판독 가능한 소프트웨어 명령에 의해 실행되는 기계 학습 모델을 이용하여 상기 복수의 평균 대역폭을 분석하여 상기 미래 대역폭 피크 및 상기 미래 대역폭 밸리를 예측하는 미디어 장치.
  15. 제14 항에 있어서,
    상기 기계 학습 모델은 시계열 예측 모델이고, 상기 기계 학습 모델은 비감독 학습을 통해 훈련되는 것을 특징으로 하는 미디어 장치.
  16. 제10 항에 있어서,
    상기 프로세서는 상기 미래 대역폭 피크가 발생하는 미래 시간을 에측하고, 상기 미래 시간은 상기 제2 슬라이딩 윈도우의 가장 우측 에지에서의 시간과 상기 제2 슬라이딩 윈도우의 지속 기간의 길이의 합보다 작은 것을 특징으로 하는 미디어 장치.
  17. 삭제
  18. 네트워크의 대역폭을 추정하기 위한 컴퓨터-구현 방법으로, 상기 방법은:
    미디어 장치에 포함된 프로세서로, 서버가 미디어 컨텐츠를 상기 미디어 장치에 스트리밍하는 동안 대응하는 복수의 제1 슬라이딩 윈도우 내의 평균 대역폭을 결정하는 단계로서, 상기 제1 슬라이딩 윈도우 각각은 제1 지속 기간을 가지는, 결정하는 단계;
    적어도 하나의 제1 슬라이딩 윈도우를 포함하는 제2 슬라이딩 윈도우를 정의하는 단계;
    상기 미디어 장치의 메모리에, 상기 제2 슬라이딩 윈도우 내에서 발생하는 하나 이상의 제1 슬라이딩 윈도우의 세트의 복수의 평균 대역폭을 캡쳐하는 단계로서, 상기 제 2 슬라이딩 윈도우는 상기 제 1 슬라이딩 윈도우의 제 1 지속 시간보다 큰 제 2 지속 시간을 가지는, 캡쳐하는 단계;
    상기 프로세서가, 네트워크의 대역폭 진동으로 인한 미래 대역폭 밸리 및 미래 대역폭 피크를 예측하기 위한 복수의 평균 대역폭을 분석하는 단계로서, 상기 분석은: 기준선 값보다 작은 값을 가지는 제1 평균 대역폭을 식별하고, 상기 제1 평균 대역폭 이후에 발생하고 상기 제1 평균 대역폭보다 더 높은 값을 가지는 제2 평균 대역폭을 식별하며, 상기 제2 평균 대역폭 이후의 기간에서 상기 미래 대역폭 밸리가 발생하는 시기를 예측하는 것을 포함하되, 상기 기간은 제1 평균 대역폭과 제2 평균 대역폭이 발생한 시간의 차이와 동일한, 분석하는 단계;
    상기 프로세서로, 상기 미래 대역폭 피크와 상기 미래 대역폭 밸리 사이의 기능을 보간하는 단계;
    상기 서버가 상기 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍함에 따라 상기 네트워크의 미래 대역폭 가용성을 추정하기 위해 상기 기능을 이용하는 단계; 및
    상기 서버가 네트워크를 통해 상기 미디어 컨텐츠를 상기 미디어 장치로 계속 스트리밍할 때 상기 결정, 캡쳐, 분석, 보간 및 이용하는 단계를 반복하는 단계를 포함하는 컴퓨터-구현 방법.
  19. 제18 항에 있어서,
    상기 제1 슬라이딩 윈도우의 각각의 지속 기간은 상기 제2 슬라이딩 윈도우의 지속 시간의 1/10 내지 1/5인 것을 특징으로 하는 컴퓨터-구현 방법.
  20. 제18 항에 있어서,
    상기 대역폭 진동의 발생 여부의 결정은 시계열 기계 학습 모델에 의해 수행되는 것을 특징으로 하는 컴퓨터-구현 방법.
  21. 제1 항에 있어서,
    상기 보간하는 단계는 상기 미래 대역폭 피크와 상기 미래 대역폭 밸리 사이의 다항식 함수를 보간하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020187021955A 2015-12-31 2016-12-30 진동 네트워크의 대역폭 추정 시스템 및 방법 KR102089023B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562273664P 2015-12-31 2015-12-31
US62/273,664 2015-12-31
PCT/US2016/069387 WO2017117487A1 (en) 2015-12-31 2016-12-30 Systems and methods for bandwidth estimation in oscillating networks

Publications (2)

Publication Number Publication Date
KR20180116242A KR20180116242A (ko) 2018-10-24
KR102089023B1 true KR102089023B1 (ko) 2020-03-16

Family

ID=57861274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187021955A KR102089023B1 (ko) 2015-12-31 2016-12-30 진동 네트워크의 대역폭 추정 시스템 및 방법

Country Status (5)

Country Link
US (1) US10498660B2 (ko)
EP (1) EP3398295B1 (ko)
KR (1) KR102089023B1 (ko)
CA (1) CA3010007C (ko)
WO (1) WO2017117487A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2560515B (en) * 2017-03-13 2019-12-25 British Telecomm Telecommunications network
CN110582990B (zh) 2017-03-13 2022-07-29 英国电讯有限公司 标定通信网络中的链路的方法和装置
CN112564993B (zh) * 2019-09-25 2022-05-24 厦门白山耘科技有限公司 带宽抖动的检测方法、装置、介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140222997A1 (en) * 2013-02-05 2014-08-07 Cisco Technology, Inc. Hidden markov model based architecture to monitor network node activities and predict relevant periods

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810356B1 (en) * 2002-08-30 2004-10-26 Advertising.Com Traffic estimation
US8264962B2 (en) * 2005-06-27 2012-09-11 Cisco Technology, Inc. System and method for dynamically responding to event-based traffic redirection
US8312164B2 (en) * 2010-04-14 2012-11-13 Adobe Systems Incorporated Media quality enhancement among connected media communication devices
KR101231294B1 (ko) * 2011-05-31 2013-02-07 삼성에스디에스 주식회사 데이터의 병렬 수신을 위한 스트림 제어 방법 및 장치
US9615126B2 (en) * 2011-06-24 2017-04-04 Google Technology Holdings LLC Intelligent buffering of media streams delivered over internet
US8396983B1 (en) * 2012-03-13 2013-03-12 Google Inc. Predictive adaptive media streaming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140222997A1 (en) * 2013-02-05 2014-08-07 Cisco Technology, Inc. Hidden markov model based architecture to monitor network node activities and predict relevant periods

Also Published As

Publication number Publication date
CA3010007A1 (en) 2017-07-06
US10498660B2 (en) 2019-12-03
US20170195235A1 (en) 2017-07-06
EP3398295A1 (en) 2018-11-07
CA3010007C (en) 2020-07-14
EP3398295B1 (en) 2021-11-24
KR20180116242A (ko) 2018-10-24
WO2017117487A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
US10999342B2 (en) Caching media in a media fling system
US10225370B2 (en) Systems and methods for compiling and organizing multiple episodes of media content series
US11849174B2 (en) Systems and methods for pre-caching media content
US20160029055A1 (en) Method, system and device for proactive content customization
US20150382061A1 (en) Spoiler mitigation methods and systems
JP2017503228A (ja) コンテンツ配信ネットワーク(cdn)においてコンテンツのデフラグメンテーションを最適化するためのシステムおよび方法
US20090113039A1 (en) Method and system for content handling
US10972581B2 (en) Media processing method and device
KR102089023B1 (ko) 진동 네트워크의 대역폭 추정 시스템 및 방법
US20200084513A1 (en) Systems and methods for displaying video content relevant to application content
EP3041251A1 (en) Systems and methods for collecting episodes of media content series
KR20150016530A (ko) 홈 게이트웨이 환경에서의 부모 모니터링
US20230247244A1 (en) Estimating video resolution delivered by an encrypted video stream
Episkopos Peer-to-Peer video content delivery optimization service in a distributed network
Rodrigues et al. Multimedia content aggregator applied to an IPTV content-zapping service

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant