KR20160147946A - 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재 - Google Patents

대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재 Download PDF

Info

Publication number
KR20160147946A
KR20160147946A KR1020167033102A KR20167033102A KR20160147946A KR 20160147946 A KR20160147946 A KR 20160147946A KR 1020167033102 A KR1020167033102 A KR 1020167033102A KR 20167033102 A KR20167033102 A KR 20167033102A KR 20160147946 A KR20160147946 A KR 20160147946A
Authority
KR
South Korea
Prior art keywords
segment
bandwidth
media
prediction data
segments
Prior art date
Application number
KR1020167033102A
Other languages
English (en)
Other versions
KR101873969B1 (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 KR20160147946A publication Critical patent/KR20160147946A/ko
Application granted granted Critical
Publication of KR101873969B1 publication Critical patent/KR101873969B1/ko

Links

Images

Classifications

    • 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/75Media network packet handling
    • H04L47/823
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • H04L65/601
    • 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/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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
    • 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/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

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

Abstract

시스템, 장치 및 프로세서는 미디어 스트리밍 동안 클라이언트 장치[120]에서 동작하는 자동 미디어 플레이어[130]에 의해 위치하는 세그먼트 요청들을 조정하는 것에 대해 서술된다. 상기 세그먼트 요청들은 기저(underlying) 비디오 콘텐츠의 변동 때문에 요청되는 세그먼트들에 의해 소비되는 대역폭의 변동을 보상한다. 곧 있을(upcoming) 비디오 세그먼트[106]의 대역폭 소비에 대한 예측 데이터[107]를 제공하여, 클라이언트 장치들은 그에 맞춰 미래 세그먼트에 대한 요청을 조정할 수 있다. 더욱이, 곧 있을 비디오 시퀀스들에 대한 추가 대역폭을 요구하는 플레이어들을 돕기 위해 예측 데이터의 표시[141]가 공유 대역폭 내에서 동작하는 플레이어들 사이에 공유될 수 있다.

Description

대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재{ADAPTIVE DATA SEGMENT DELIVERY ARBITRATION FOR BANDWIDTH OPTIMIZATION}
본 출원은 2014년 6월 30일 출원된 미국 가출원 제62/019,319호에 우선권을 주장한다.
아래의 개시는 일반적으로 인터넷 또는 다른 네트워크를 통한 스트리밍 데이터 콘텐츠와 관련된다. 보다 상세하게는, 아래의 개시는, 스트림에 포함된 기저 콘텐츠의 대역층을 고려함으로써 미디어 플레이어 장치가 적응형 미디어 스트림의 전달을 향상시키는 시스템, 방법 및 장치들과 관련된다.
미디어 스트리밍은 텔레비전, 영화 및 다른 미디어 콘텐츠를 시청자들에게 전송하는 점점 더 인기있는 방법이 되고 있다. 미디어 스트림은 인터넷 또는 유사한 네트워크를 통해 송신될 수 있는 디지털 콘텐츠의 전형적인 점대점(point-to-point) 전송이다. 미디어 스트리밍은 주문형 비디오(video on demand, VOD) 서비스, RSDVR (remote storage digital video recorder) 서비스, placeshift 미디어 시청 및/또는 많은 다른 편리한 서비스를 가능하게 하도록 이용된다. 일반적으로, 플레이어에게 스트림이 계속하여 전송됨으로써 미디어 스트림은 실시간으로 시청자에게 재생된다.
흔히, 미디어 콘텐츠는 다수의 "스트림릿(streamlet)" 세트 또는 개별적으로 요청받고 특정한 클라이언트 장치로 적응하여 전송할 수 있는 다른 작은 세그먼트 파일로 인코딩된다. 네트워크 대역폭의 변화 또는 다른 요소들이 발생하기 때문에, 클라이언트 장치는 필요에 따라 품질을 증가시키거나 감소시키기 위하여 상이한 매개변수(parameter)(예컨대, 더 높거나 더 낮은 비트율(bit rate))로 인코딩된 미래의 세그먼트를 요청함으로써 변화에 반응할 수 있다. 적응형 미디어 스트리밍(adaptive media streaming)은 일반적으로 미디어 플레이어 클라이언트가 스트리밍 프로세스를 많이 제어하는 것에 의존한다. 즉, 서버보다는 일반적으로 미디어 플레이어 클라이언트가 요청되고 플레이어에게 전송될 스트림의 다음 세그먼트를 결정한다. 적응형 스트리밍 시스템, 장치 및 기술의 몇몇 예시는 미국 특허공보 제2008/0195743호에 서술되어 있다.
비디오 스트리밍에서 발생하는 일 과제는 비디오 프레젠테이션 동안 비디오 콘텐츠가 자주 다양한 레벨의 대역폭을 소비하는 것이다. 예를 들어, 폭발을 보여주는 영화 시퀀스는 같은 비트율, 프레임율(frame rate) 및 해상도(resolution)로 인코딩된 덜 드라마틱한 장면보다 더 많은 대역폭을 소비할 수 있다. 폭발이 훨씬 덜 압축가능하기(compressible) 때문이다. 즉, 비디오 이미지는 동종의 이미지 장면보다 더 큰 동적 범위(dynamic range)를 보여준다. 비디오 콘텐츠의 두 세그먼트들이 동일한 비트율, 프레임율 및 해상도로 인코딩되는 경우에도, 두 세그먼트의 크기는 인코딩되는 기저 비디오 이미지들의 압축성 때문에 달라질 수 있다. 이러한 변형은 시청자 경험의 차이에 영향을 미칠 수 있으며, 특히 기저 데이터(underlying data)의 비-압축성(un-compressibility) 때문에 "저대역폭" 세그먼트라 하더라도 상대적으로 많은 데이터를 포함하는 경우에 그러하다.
그러므로 클라이언트 장치가 적응형 스트리밍 프로세스를 더 잘 제어하도록 하는 시스템, 장치 및 방법을 생성하는 것이 바람직하다. 이러한 그리고 다른 바람직한 특징들(feature) 및 특성들(characteristic)은 첨부된 도면 및 배경기술과 함께 차후의 상세한 설명 및 청구범위들로부터 명백하게 될 것이다.
본 발명의 일 목적은 미디어 스트리밍을 하는데 있어 다양한 레벨의 대역폭을 효율적으로 소비하기 위한 적응형 데이터 세그먼트 전송 중재를 제공하는데 있다.
소비된 대역폭을 보상하기 위해 미디어 스트림 세그먼트(media stream segment) 데이터에 대한 요청을 조정하는 방법, 시스템 및 장치의 일부 실시예들이 설명된다. 여기에서, 클라이언트 미디어 플레이어가 곧 있을 미디어 세그먼트(upcoming media segment)의 상대적인 대역폭 소비를 정확하게 예측할 수 있도록, 본 명세서에 기술된 시스템 및 프로세스 중 많은 부분이 미디어 프로그램의 미래 세그먼트를 서술하는 예측 데이터(predictive data)를 미디어 스트림의 일부 또는 전부 데이터 세그먼트로 인코딩한다. 특히 동적인 비디오 시퀀스(dynamic video sequence)가 곧 있을 경우, 미디어 플레이어는 증가된 수요를 인식하고 그에 맞춰 적응할 수 있다.
다양한 실시예들은 상이한 비디오 품질을 가지는 복수의 비디오 스트림들로부터 선택되는 일련의(series)의 세그먼트들로 구성된, 수신된 미디어 프로그램을 처리하기 위한 프로세서와 메모리를 가지는 클라이언트 장치에 의해 실행가능한 방법을 제공한다. 바람직하게는 상기 방법은, 제1 품질을 가지는 제1 미디어 스트림으로부터 비디오 프로그램의 제1 세그먼트를 요청하는 단계 또는 다른 방식으로 획득하는 단계로서, 상기 제1 세그먼트는 동일한 미디어 프로그램의 미래 세그먼트의 대역폭 소비를 서술하는 예측 데이터를 포함하는, 상기 제1 세그먼트를 요청하는 단계 또는 획득하는 단계; 시청자에게 재생하기 위한 비디오 프로그램의 제1 세그먼트를 렌더링(rendering)하는 단계; 및 상기 예측 데이터에 적어도 부분적으로 기초하여 비디오 프로그램의 제2 세그먼트를 선택하는 단계로서, 상기 제2 세그먼트를 선택하는 단계는 동일한 미디어 프로그램의 미래 세그먼트의 대역폭 소비를 나타내는 예측 데이터가 클라이언트 장치가 이용가능한 대역폭을 초과하는 경우, 동일한 미디어 프로그램의 낮은 품질 미디어 스트림으로부터 제2 세그먼트를 선택하는 단계를 포함한다.
다른 실시예들은 모바일 폰, 퍼스널 컴퓨터, 태블릿 컴퓨터, 비디오 게임 플레이어 및/또는 다른 미디어 플레이어 장치를 제공한다. 바람직하게는 미디어 플레이어 장치는 네트워크에 대한 인터페이스, 프로그래밍 명령을 저장하도록 구성된 메모리 및 프로세서를 포함한다. 상기 프로세서는, 상이한 비디오 품질을 가지는 복수의 미디어 스트림들로부터 선택된 일련의 세그먼트들로 구성된, 수신된 미디어 프로그램을 처리하기 위해 상기 메모리에 저장된 프로그래밍 명령들을 실행하도록 프로그램되거나 다른 방식으로 구성된다. 그리고 상기 프로세서는 제1 품질을 가지는 제1 미디어 스트림으로부터 상기 비디오 프로그램의 제1 세그먼트를 요청하거나 다른 방식으로 획득한다. 그리고 상기 제1 세그먼트는 상기 동일한 미디어 프로그램의 미래 세그먼트의 소비 대역폭을 서술하는 예측 데이터를 포함한다. 그리고 상기 예측 데이터가 상기 동일한 미디어 프로그램의 미래 세그먼트의 대역폭 소비가 상기 장치의 이용가능한 대역폭량을 초과할 것을 나타내는 경우, 상기 프로세서는 상기 동일한 미디어 프로그램의 저품질 미디어 스트림으로부터 제2 세그먼트를 선택함으로써 상기 예측 데이터에 적어도 부분적으로 기초하여 상기 비디오 프로그램의 제2 세그먼트를 더 선택한다.
이러한 특성과 함께 추가적이고 대체적인 특성, 측면 및 다른 실시예들이 여기에서 좀 더 자세히 서술된다.
본 발명의 일측면에 따르면, 미디어 세그먼트로 인코딩된 예측 데이터의 사용을 통해 미디어 스트림의 성능을 향상시킬 수 있다. 즉, 곧 있을(upcoming) 미디어 세그먼트의 대역폭 소비에 대한 예측 데이터를 제공하여, 클라이언트 장치들은 그에 맞춰 미래 세그먼트에 대한 요청을 조정할 수 있다.
또한, 곧 있을(upcoming) 비디오 시퀸스 들에 대한 추가 대역폭을 요구하는 플레이어들을 돕기 위해, 네트워크 상의 다른 장치들이 그들의 대역폭 소비를 줄이도록 하는 예측 데이터의 표시가 공유 대역폭 내에서 동작하는 플레이어들 사이에 공유될 수 있다.
그렇게 함으로써 네트워크 대역폭의 과소비를 회피하고 사용자 경험을 향상시킬 수 있다.
예시적인 실시예들은 다음의 도면들과 함께 이후에 설명되고, 유사한 참조번호들은 유사한 요소들을 표시하며,
도 1은 예측 데이터를 가지는 적응형 미디어 스트림을 데이터 네트워크를 통해 제공하는 예시적인 시스템의 블록도;
도 2는 예측 데이터를 가지는 일련의 데이터 세그먼트들의 도면;
도 3은 예측 데이터를 고려하기 위해 세그먼트 데이터의 요청을 조정하는 예시적 프로세스의 흐름도; 그리고
도 4는 예측 데이터를 이용하여 네트워크 상에서 대역폭을 공유하는 예시적인 프로세스의 도면이다.
본 발명에 대한 다음의 상세한 설명은 사실상 단지 예시적인 것이며, 본 발명을 제한하거나 본 발명의 적용 및 용도를 제한하도록 의도되지 않는다. 나아가, 앞의 배경 기술이나 다음의 상세한 설명에서 제시되는 어떠한 이론에 의해 한정될 것을 의도하지 않는다.
다양한 실시예들은 미디어 세그먼트로 인코딩된 예측 데이터의 사용을 통해 미디어 스트림의 성능을 향상시킬 수 있다. 예측 데이터는 곧 있을(upcoming) 미디어 콘텐츠에 의해 소비될 것 같은 대역폭을 표시한다. 만약 미디어 플레이어가 고대역폭 시퀀스(예를 들어, 폭발)가 다가오는 중임을 아는 경우, 보다 낮은 품질의 세그먼트들을 요청함으로써, 네트워크 상의 다른 장치들이 그들의 대역폭 소비를 줄이도록 요청함으로써, 및/또는 적합한 다른 행동을 취함으로써 이에 적응할 수 있다. 예측 데이터를 미디어 세그먼트로 인코딩하여, 미디어 플레이어는 대역폭에 곧 있을(upcoming) 변화에 사전에 적응할 수 있다. 그렇게 함으로써 네트워크 대역폭의 과소비를 회피하고 사용자 경험을 향상시킬 수 있다.
위에서 설명한 바와 같이, 많은 적응형 미디어 인코딩 체계(scheme)는 고정된 시간 구간(예를 들어, 일 실시예에서 2초 정도)을 표현하도록 미디어 콘텐츠의 세그먼트들을 인코딩한다. 각 세그먼트가 공통된 시간 구간을 표현함에도 불구하고, 기저(underlying) 미디어 콘텐츠의 차이(예를 들어, 이미지 데이터의 압축성)는 개별적으로 인코딩된 미디어 세그먼트들의 크기의 상당한 차이를 야기할 수 있다. 예를 들어, 더 정적인 이미지의 2초를 표현하는 세그먼트가 보다 높은 비트율, 프레임율, 해상도 및/또는 다른 품질 매개변수로 인코딩되는 경우에도, 폭발 장면의 2초를 표현하는 "저품질" 미디어 세그먼트가 더 정적인 이미지의 2초를 표현하는 세그먼트보다 더 큰 데이터 파일일 수도 있다. 이러한 차이점들은 이미지 데이터의 압축성에 크게 영향을 줄 수 있는, 기본 데이터의 동적 범위로부터 야기된다. 미디어 스트림이 하나 이상의 미디어 플레이어들에게 제공될 때 이러한 세그먼트 크기의 변동들은 대역폭 소비에 실질적으로 영향을 미칠 수 있다.
그러나, 만약 미디어 플레이어가 세그먼트를 요청하기에 앞서 세그먼트의 실제적인 또는 상대적인 크기를 인식한다면, 미디어 플레이어는 필요하다면 네트워크 상의 하나 이상의 미디어 플레이어들에 대한 서비스 품질을 보존하기 위해 보다 높은 품질 또는 보다 낮은 품질의 세그먼트들을 적응하여 요청할 수 있을 것이다. 그 목적을 달성하기 위해, 다양한 실시예들은 예측 데이터를 하나 이상의 미디어 세그먼트들로 인코딩한다. 상기 미디어 세그먼트들은 미디어 플레이어가 정확하게 다가오는 미디어 세그먼트의 실제 또는 상대적인 크기를 예측하고 그에 맞춰 반응한다.
이제, 도 1에 대한 최초의 참조와 함께 도면들로 돌아가면, 네트워크(125)를 통해 다수의 연결(131, 132, 133)을 사용하여 클라이언트 장치(120)에 미디어 스트림을 적응하여 전송하는 예시적인 시스템(100)이 도시되어 있다. 시스템(100)은 바람직하게 인코더(102)와 미디어 서버(114)를 포함한다. 도 1 에 도시된 다양한 구성요소들은 공통의 서비스 제공자에 의해 공통으로 제공될 수 있다. 또는, 상이한 서비스 제공자들이 시스템(100)의 상이한 구성요소들을 제공하기 위해 함께 일할 수도 있다. 예를 들어, 텔레비전 네트워크 또는 다른 콘텐츠 제공자는 이미 적합한 형식으로 인코딩된 콘텐츠를 제공할 수도 있다. 그렇게 함으로써 일부 실행들에서 분리된 인코더(102)의 필요를 배제할 수 있다. 유사하게, 유니캐스트(unicast) 및/또는 멀티캐스트(multicast) 호스팅(hosting)은 임의의 콘텐츠 전송 네트워크(content delivery network, CDN) 또는 적절한 다른 서비스(114)에 의해 실행될 수 있다.
인코더(102)는 미디어 프로그램들(104)을 하나 이상의 적응형 스트림들(105A-C)로 인코딩할 수 있는 임의의 장치 또는 서비스이다. 도 1에 도시된 예시적인 실시예에서, 인코더(102)는 전부 동일한 미디어 프로그램을 각각 표현하는 다수의 스트림들(105A-C)을 생성하도록 프로그램된 디지털 컴퓨터 시스템이다. 일반적으로, 각 스트림(105A-C)은 프로그램의 작은 부분을 "스트림릿" 또는 다른 개별적으로 어드레스할 수 있는(addressable) 데이터 파일로 표현하는 보다 작은 세그먼트들(106)로 구성되어 있다. 각 스트림(105A-C)은 일반적으로 공통된 시간 인덱스에 기초하여 상이한 스트림들(105A-C)의 세그먼트들(106)이 서로 간에 교환할 수 있도록 인코딩된다. 즉, 클라이언트 미디어 플레이어(120)는 네트워크 환경들 또는 다른 자원 변화에도 불구하고 매끄럽게(seamless) 재생을 계속하도록 상이한 스트림들(105A-C)의 세그먼트들(106)을 혼합하고 일치(match)시킬 수 있다. 만약, 자원들이 제한되는 경우, 플레이어(120)는 저품질 세그먼트들(106)을 요청할 수 있다. 반대로, 만약 자원들이 풍족하다면, 고품질의 세그먼트들(106)이 요청될 수 있다. 특정 시간에 특정 상태에 적합한 임의의 세트(105)의 데이터 세그먼트들을 단순히 요청함으로써, 미디어 플레이어들(120)은 일반적으로 상태가 허용하는 바에 따라 상이한 품질 레벨(106) 간에 "업시프트(upshift)" 및 "다운시프트(downshift)" 할 수 있다.
일반적으로, 각 스트림(105)을 구성하는 세그먼트들(106)의 세트들은 인터넷 또는 다른 네트워크(125)에서의 분배를 위해 CDN 또는 다른 서버(114)에 저장된다. 일반적으로, 하나 이상의 클라이언트 장치(120)에서 실행되는 미디어 플레이어 어플리케이션(130)은 미디어 프로그램(104)을 획득하고 재생하는데 필요한 적합한 세그먼트들(106)을 선택하는 지능 논리(intelligent logic)를 함유한다. 위에서 서술한 것처럼, 네트워크(125)를 통한 전송에 있어 네트워크 또는 다른 상태 변화를 반영하기 위해 보다 높은 대역폭 세그먼트들(106)이 저대역폭 세그먼트들(106)과 매끄럽게 상호혼합될(intermixed) 수도 있도록 세그먼트들(106)은 스트림들(105) 간에 교환될 수도 있다. 일부 실시예들에서, 미디어 플레이어(130)는 요구되는 세그먼트들(106)을 플레이어 스스로 요청할 수 있도록 처음에 다이제스트(digest) 또는 이용가능한 세그먼트들의 다른 설명들을 획득한다. 흔히, 이런 요청들은 네트워크(125) 상에 손쉽게 라우팅할 수 있고(routable) 평범한 CDN 또는 다른 웹-유형 서버들(110)에 의해 제공될 수 있는 평범한 HTTP 구조를 사용하여 처리될 수 있다.
위에서 설명한 바와 같이, 세트들(105A-C) 내의 일부 또는 모든 세그먼트들(106)은 하나 이상의 곧 있을(upcoming) 미디어 세그먼트들(106)의 크기를 나타내는 예측 데이터(107)를 제공하기 위해 인코딩된다. 다양한 실시예들에서, 예측 데이터(107)는 원하는 해상도 레벨을 제공하는 하나 이상의 데이터 비트들로 실행될 수도 있다. 예를 들어, 단일(single) 비트는 미래 세그먼트들(106)이 "저"대역폭인지 "고"대역폭인지 나타낼 수 있거나, 상기 비트는 특히 고대역폭 세그먼트들(106)이 다가오는 있는 경우를 나타내는 신호(flag)로서 사용될 수 있다. 추가 비트들은, 인코딩된 곧 있을(upcoming) 세그먼트(106)의 실제 크기까지 표현되는, 임의의 해상도 레벨을 제공하는데 사용될 수 있다. 예시적인 실시예에서, 4 비트는 16개의 상이한 대역폭 레벨을 나타내는데 사용된다; 다른 실시예들은, 원하는 만큼, 상이한 해상도 레벨을 위해 더 적은 비트들 또는 더 많은 비트들을 사용할 수 있고/있거나 해상도 레벨은 동작 중에 조정될 수 있다.
예측 데이터(107)에 의해 예측되는 거리는 특정 실행에 부합되게 임의의 레벨로 설정될 수 있다. 예측 데이터(107)는 플레이어 어플리케이션(130)이 세그먼트(106)를 수신할 수 있도록, 세그먼트 내에 제한된 예측 데이터(107)를 분석할 수 있도록, 그리고 예측된 세그먼트들(106)에 대한 요청을 하기 이전에 예측 데이터(107)를 고려할 수 있도록, 충분한 선행 시간을 제공해야 한다. 예시적 실시예에서, 데이터(107)는 스트림(105)의 미래를 약 10초(예를 들어, 약 2초 미디어 세그먼트 5개) 정도 예측할 수도 있으나, 다른 실시예들은 원하는 만큼 더 많은 또는 더 적은 선행 시간을 제공할 수도 있다.
예측 데이터(107)는 이용가능한 품질 스트림들(105) 각각에 속하는 세그먼트들(106)로 인코딩될 수도 있다. 미디어 플레이어(130)가 스트림들(105) 사이를 시프트(shift)하더라도, 예측 대역폭 소비는 적어도 상대적인 기간들에서 여전히 유용할 것이다. 따라서, 상이한 스트림들(105)이 상이한 비트율 또는 다른 품질 매개변수들로 인코딩됨에도 불구하고, 미디어 플레이어가 상이한 스트림들(105)의 세그먼트들(106) 사이를 시프팅하더라도, 동일한 스트림들(105) 내의 상이한 세그먼트들(106)의 상대적인 대역폭 소비는 대부분의 사례들에서 여전히 예측할 수 있다.
도 1은 단지 단일 서버(114)를 도시함에도 불구하고, 많은 실시예들이 네트워크(125)에 위치한 장치(120)로 편리하게 전송하기 위해, 스트림들(105) 및/또는 세그먼트들(106)을 임의의 수의 서버들(114)로 퍼뜨릴 수 있다. 다수의 데이터 연결들(131, 132, 133)은 공통 서버 또는 특정 환경에 의존하는 상이한 서버들(114)과 설정될 수 있다.
각 클라이언트 장치(120)는 스트리밍 미디어 콘텐츠를 네트워크(125)를 통해 수신할 수 있는 임의의 장치이다. 다양한 실시예들에서, 클라이언트 장치(120)는 모바일 폰 또는 다른 휴대용(portable) 장치, 미디어 플레이어 어플리케이션(130)을 실행하는 컴퓨터 시스템, 태블릿 또는 노트북 컴퓨터, 비디오 게임 플레이어, 독립형(standalone) 미디어 플레이어, 텔레비전 또는 텔레비전 수신기, 비디오 레코더 및/또는 많은 다른 소비자-제어되는(other consumer-controlled) 장치들로 실행될 수 있다. 이를 위해, 각 클라이언트 장치(120)는 일반적으로 평범한 프로세서(134)와 함께 연관된 메모리(135) 또는 다른 데이터 저장소 등을 가지며 소비자가 소유 및 동작하는 장치이다. 클라이언트 장치(120)는 사용자 상호작용(user interaction), 네트워크 액세스 및 다른 입력/출력 기능을 위한 적절한 인터페이스들(136)을 원하는 만큼 포함한다. 다양한 클라이언트 장치들(120)은 소비자 가전제품 또는 퍼스널 컴퓨팅 제품 등에서 흔히 볼 수 있는 임의의 평범한 하드웨어 또는 소프트웨어 능력을 장착할 수도 있다.
위에서 언급된 것처럼, 각 클라이언트 장치(120)는 일반적으로 그들이 소유하는 미디어 플레이어 소프트웨어(130)를 실행한다. 상기 미디어 플레이어 소프트웨어(130)는 시청자에게 제공되는 프로그램(104)과 연관된 임의의 상이한 스트림들(105A-C)에 속하는 세그먼트들(106)을 요청할 수 있다. 상이한 매개변수들을 사용하여 인코딩된 세그먼트들(106)을 요청함으로써, 미디어 클라이언트(130)에게 제공되는 미디어 스트림이 "온 더 플라이(on the fly)"로 조절될 수 있다. 상태에 따라, 저대역폭 세그먼트들(106)을 요청함으로써, 상이한 서버들(114) 또는 CDN들로 세그먼트 요청들을 리디렉션(redirect)함으로써, 또는 적합한 다른 행동들을 취함으로써, 각 미디어 플레이어(130A-C)는 시스템 자원의 요구를 줄일 수 있다. 추가적인 실시예들에 있어서, 미디어 플레이어(130)는 보다 효율적으로 적시에 필요한 데이터가 전송될 수 있도록 서버들(114)로의 다양한 연결(131, 132, 133)을 관리할 수 있다. 도 1은 세그먼트들(106)을 클라이언트 장치(120A)로 제공하는 3개의 연결(131A, 132A 및 133A) 및 세그먼트들(106)을 클라이언트 장치(120B)로 제공하는 단일 연결(131B)을 도시한다; 다른 실시예들은 공유된 대역폭 내에서 동작하며 각각 임의의 수의 데이터 소스(114)로의 임의의 수의 연결(131,132,133)을 가지는, 임의의 수의 클라이언트 장치들(120)을 통합할 수도 있다.
예측 데이터(107)는 임의의 방법으로 사용될 수도 있다. 일부 실시예들에서, 각 클라이언트 장치(102A-B)는 데이터(107)의 사용에 의해 네트워크 대역폭에 대한 그들 자체의 미래 수요를 보다 정확하게 예측할 수 있다. 예를 들어, 만약 장치(120) 상의 미디어 플레이어가 대역폭이 제한된다는 것을 인식한다면, 그리고 곧 있을(upcoming) 콘텐츠가 추가 대역폭을 요구할 것이란 것을 인식한다면, 저품질 스트림들(105)로부터 세그먼트들(106)을 요청함으로써 미디어 플레이어는 선행하여 대역폭 과부하를 회피할 수 있다. 반대로, 미디어 플레이어(130)는, 상태가 허용하는 경우 고품질 스트림들(105)로부터 세그먼트들(106)을 요청함으로써 추가 대역폭 및/또는 더 압축가능한 미래 콘텐츠를 활용할 수 있다. 그러므로 클라이언트 장치(120)는 통상적으로(ordinarily) 세그먼트들(106)을 선택하는데 고려되거나 스트림들(105) 사이에 시프팅하는데 고려되는 다른 임의의 요소들뿐만 아니라 콘텐츠 자체의 대역폭 수요를 고려할 수 있다.
추가적인 실시예들은 예측 데이터(107)를 동일한 공유 대역폭 내에서 동작하는 다른 클라이언트 장치들(120)과 추가적으로 또는 교대로 공유할 수 있다. 예를 들어, 만약 다수 클라이언트 장치들(120)이 동일한 랜(LAN) 또는 동일한 집 안에서 동작한다면, 이러한 장치들은 서로 적합하게 위치를 찾아내고(locate)(예를 들어, 랜 상에서 서로를 인식함으로써, 네트워크(125) 상의 서비스를 고려함으로써, 임의의 검색(discovery) 프로토콜에 의해, 및/또는 이와 유사한 것) 임의의 방법으로 곧 있을(upcoming) 대역폭 소비의 표시(indicia)(141)를 공유할 수 있다. 예를 들어, 하나의 장치(120A)가 고대역폭 데이터 세그먼트들이 다가오는 중임을 예측 데이터(107)에 의해 인식하는 경우, 그 장치(120A)는 현재 곧 있을(upcoming) 고대역폭을 위한 공간을 만들도록 공유 대역폭 내에서 동작하는 다른 장치들(120B)이 "쓰로틀 백(throttle back)"하는 것을 요청하는 로컬 네트워크 상의 표시(141)를 전송할 수 있다. 이러한 표시(141)는 랜 상에서 또는 다른 공유 네트워크 공간 상에서 전송하는 임의의 방법으로 구성될 수도 있다. 일부 실시예들에서, 다른 장치들(120)이 식별되지 않는 경우에도 표시(141)는 랜 상에서 또는 다른 네트워크 상에서 브로드캐스트(broadcasts)로 전송될 수도 있다. 표시(141)를 수신하는 장치들(120)은 표시(141)를 전송한 장치(120)를 돕기 위해 그들이 가지는 대역폭 소비를 줄이도록(예를 들어, 저품질 세그먼트들(106)을 요청함으로써) 프로그램될 수도 있다. 일부 실시예들에서 표시(141)는 예측 데이터(107)로서 동일한 정보를 제공할 수도 있다; 다른 실시예들은 수신된 세그먼트들(106)에게 제공된 예측 데이터(107)보다 낮은 레벨 해상도를 가지는 신호(flag) 등으로서 표시(141)를 단순히 제공할 수도 있다. 균등한(equivalent) 실시예들은 임의의 방법으로 수정될 수 있다.
도 2는 일련의 순차적인 미디어 세그먼트들(106A-N)의 일 예의 표현을 도시한다. 상기 순차적인 미디어 세그먼트들(106A-N)은 각각 예측 데이터(107A-N)를 함유한다. 각 예측 데이터(107)는 미래 세그먼트의 대역폭을 설명하는 숫자 표현을 포함한다. 이 실시예에서, 예측 데이터는 미디어 세그먼트의 실제 또는 상대적인 크기를 나타낸다. 상기 미디어 세그먼트는 미래의 세그먼트 'N' 개이다. 위에서 나타낸 것처럼, "N"은 실시예와 원하는 선행 시간량에 의존하는, 1부터 10 또는 그 이상의 임의의 정수 값이다. 다른 실시예들은 세그먼트(106) 내에 임의의 수의 데이터 비트를 사용하여 예측 데이터(107)를 표현할 수도 있다. 예를 들어, 단일 비트는 곧 있을(upcoming) 대역폭 소비를 나타내는 신호(flag)로서 사용될 수 있다. 또는 임의의 수의 추가 비트들이 추가 해상도 레벨을 제공하는데 사용될 수 있다. 비록 도 2가 스트림(105) 내의 각 세그먼트(106)로 인코딩된 예측 데이터(107)를 도시함에도 불구하고, 다른 실시예들은 필요에 따라 이의 서브세트(예를 들어, 모든 2, 3, 5, 10 등 세그먼트)에만 예측 데이터(107)를 제공할 수도 있다. 또 다른 실시예들은 필요한 경우에만(예컨대, 고대역폭 콘텐츠가 다가올 경우에만 또는 대역폭 내 실질적인 변화가 다가올 경우에만)에 따라 예측 데이터(107)를 제공할 수 있다. 도 2가 미래의 세그먼트들(106)의 고정된 수의 대역폭을 항상 나타내는 예측 데이터(107)를 도시함에도 불구하고, 다른 실시예들은 데이터(107) 내의 두 표시를 제공할 수 있다 : 대역폭 소비를 표현하는 제1 값과 시간 또는 미래의 세그먼트(106)의 수를 나타내는 제2 값. 이 제2 값은 임박한 대역폭 소비에 대한 다수의 "경고", 또는 필요에 따라 추가적인 유연성을 제공하는데 사용될 수 있다. 예측 데이터(107)는 임의의 방법으로 인코딩되거나 표현될 수도 있다. 그리고 상당(equivalent) 실시예들은 임의의 다른 방법으로 데이터 세그먼트(106) 내의 예측 데이터(107)를 실행할 수 있다.
도 3은 미디어 플레이어 어플리케이션(130) 또는 미디어 장치(120)에 의해 실행되는 다른 논리에 의해 실행되는 예시적인 프로세스(300)를 도시한다. 다양한 실시예들에서, 프로세스(300)는 메모리(135)에 있는 소프트웨어 또는 펌웨어에서 실행되고 미디어 장치(120)의 프로세서(134)에 의해 실행된다. 다른 실시예들은 임의의 방법으로 프로세스(300)를 실행할 수도 있다.
도 3에 도시된 것처럼, 미디어 플레이어(120)는 하나 이상의 미디어 연결(131, 132, 133)을 원하는 만큼 설정한다(기능 302). 이하의 설명은 3개의 동기 연결을 언급하나, 다른 실시예들은 단지 단일 연결을 사용할 수도 있다. 또는 많은 추가 연결(131-133)이 원하는 만큼 설정될 수도 있다. 각 연결은 미디어 플레이어(120)가 미디어 스트림의 세그먼트들(106)을 요청하도록 한다(기능 304). 위에서 언급한 것처럼, 각 세그먼트(106)는 요청된 미디어 스트림의 정해진 시간 부분을 인코딩한 분리된 데이터 파일로서 제공된다. 이런 인코딩된 미디어 콘텐츠는 시청자에게 재생되기 위해 원하는 만큼 추출, 디코딩 및 렌더링 될 수 있다. 추가 세그먼트들(106)은 미디어 스트림의 재생이 완료될 때까지 요청된다(기능 308).
미디어 플레이어 장치(120)는 현재 자원 및 상태에 적합한 미디어 스트림의 세그먼트들(106)을 적합하게 선택하고 요청한다(기능 310). 평범한 적응형 스트리밍 어플리케이션들에서, 다음 세그먼트(106)는 일반적으로 네트워크 대역폭, 이용가능한 프로세싱(processing) 자원들 및 다른 적합한 요소들에 기초하여 다양한 품질(즉, 다양한 크기)의 세그먼트들(106)로부터 선택된다. 그러나, 하나 이상의 수신된 세그먼트들(106)이 예측 데이터(107)를 포함하는 경우, 이 추가 정보가 미래 세그먼트들(106)을 요청함에 있어 고려될 수 있다. 만약 예측 데이터(107)가 상대적으로 고-대역폭 세그먼트가 다가오는 중이라는 것을 나타낸다면, 미디어 플레이어(130)는 선행하여 저품질 세그먼트(106)를 요청하는 것이 적합하다면 이를 바랄 수도 있다. 상이한 품질로 변화하느냐 마느냐의 결정은 많은 요소들에 기초될 수 있다. 일부 실시예들에서, 이용가능한 대역폭량이 예측된 미래 소비보다 적다면, 전환이 발생할 수 있다; 즉, 만약 예측된 대역폭이 현재 이용가능한(또는 이용가능하다고 예측된) 대역폭량을 초과한다면, 다운시프트가 보장될 것이다. 업시프팅 및 다운시프팅에 대해 다른 실시예들은 현재 성능(performance), 과거 또는 현재 대역폭 진동, 및/또는 적합한 다른 요소들을 고려할 수 있다. 일부 실시예들은 자동적으로 곧 있을(upcoming) 고대역폭 장면의 알림에 다운시프트 하는 한편, 다른 실시예들은 현재 또는 예측된 대역폭 유효가능성(bandwidth availability)을 고려할 것이고 만약 예측된 소비가 예측된 유효가능성을 초과하는 경우에만 다운시프트할 것이다. 일부 실시예들은 또한 필요할 경우 예측불가능한 네트워크 변동 또는 다른 상태에 대한 대역폭의 일정량을 보유할 수도 있다.
일부 실시예들에서, 플레이어(130)는 사용자 경험에게 눈에 보이는 충격을 방지하기 위해 저품질 스트림(105)으로 서서히 래챗(ratchet)할 수도 있다. 즉, 고품질 세그먼트(106)에서부터 보다 낮은 품질의 세그먼트(106)로 급격히 변화하는 것보다, 플레이어(130)는 사용자 경험을 원활하게 하기 위해 중간(intervening) 품질 레벨(105)의 세그먼트들(106)을 요청할 수도 있다.
위에서 서술된 것처럼, 예측 데이터(107)는 미디어 플레이어 장치들(120A-B) 사이에 공유될 수 있다. 다양한 실시예들에서, 각 미디어 플레이어(120)는 다른 플레이어(120)가 동일한 네트워크 상에서 동작하고 있다는 것 또는 그렇지 않다면 현재 플레이어(120)와 대역폭을 공유하고 있다는 것을 인식할 수 있다. 이러한 경우, 만약 하나의 플레이어(120)가 곧 있을(upcoming) 고-대역폭 비디오 장면을 가진다면, 더 많은 플레이어(120)를 도와주기 위해 다른 플레이어(120)는 선행하여 공유 대역폭의 소비를 줄일 수 있도록, 플레이어들(120) 사이에서 예측 데이터(107)가 공유될 수 있거나 예측 데이터(107)에 기초한 다른 표시들(141)이 교환될 수 있다. 예를 들어, 만약 하나의 시청자가 대단히 동적인 액션 시퀀스를 가지는 쇼를 시청 중이고 동일한 데이터 네트워크 상의 다른 시청자가 상대적으로 정적인 뉴스 쇼 또는 기타 등을 시청 중이라면, 두 플레이어들(120)은 액션 시퀸스를 시청하는 시청자가 보다 압축가능한 콘텐츠를 시청하는 시청자에 비해 더 많은 공유 대역폭 비율을 수신하도록 협동할 수 있다.
도 4는 공유하는 예측 정보(107)에 대한 예시적인 프로세스(400)의 도면을 도시한다. 도 4에 도시된 것처럼, 각 클라이언트 장치(120A-B)는 적합하게 세그먼트들(106)을 요청하고(기능 402A-B) 요청된 세그먼트들을 서버(114)로부터 수신한다(기능 403A-B). 각 클라이언트(120A-B)는 전송된 세그먼트들(106) 내에 함유된 예측 데이터(107)를 처리하여 가까운 미래에 상대적으로 고대역폭 시퀀스가 다가오는 중인지 아닌지 식별한다(각각 기능 405A-B). 만일 그렇다면, 전송 플레이어(120)가 가까운 미래에 추가 대역폭을 소비할 의도임을 나타내는 알림(406A-B)이 다른 플레이어에게 전송될 수 있다. 알림들(406A-B)은 위에서 설명된 표시(141)와 적합하게 대응될 수도 있다. 여기에서 설명된 것처럼, 예측 데이터(107)는 플레이어들(120) 사이에서 일상적으로 공유될 수도 있다; 만약 원한다면, 플레이어들은 빈번한 곧 있을(upcoming) 대역폭의 표시를 교환할 수도 있다. 또는 플레이어(120)가 그것이 추가 대역폭에 대한 즉각적인 요구를 가지는 것을 인식하는 경우에만 알림들(406A-B)이 교대로 발생한다. 대역폭 알람들(406A-B)은 임의의 프로토콜 내 어드레스드(addressed) 또는 브로드캐스트 네트워크 패킷들로 구성될 수도 있다. 상기 임의의 프로토콜은 랜 또는 다른 기본적인 공유 네트워크 토폴로지(topology)와 호환된다.
각 미디어 플레이어(120A-B)는 요소들에 기초하여 그것의 곧 있을(upcoming) 데이터 세그먼트들(106)을 선택한다(기능 408A-B). 상기 요소들은 다음-이용가능한(then-available) 네트워크 대역폭, 다음-이용가능한 컴퓨팅 자원들, 이전에 요청된 세그먼트들(106)로부터 획득된 예측 데이터(107) 및/또는 임의의 예측 데이터 또는 공유 네트워크 상에서 동작하는 다른 미디어 플레이어들(120)에 의해 제공되는 다른 표시(141) 등이다. 곧 있을(upcoming) 대역폭 요구들에 대한 이런 추가 정보는 각 미디어 플레이어(120)가 이용가능한 대역폭과 일치하는 세그먼트들(106)에 대한 보다 정확한 선택을 적합하게 하도록 한다(기능 410 A-B). 그러므로 선택된 미디어 세그먼트들(106)은 미디어 서버(114) 또는 다른 적합한 소스들로부터 원하는 만큼 요청될 수 있다(기능 402C-D).
그러므로 전술한 설명은 미래 미디어 세그먼트에 대한 예측 데이터의 인코딩과 전송을 통해 하나 이상의 적응형 미디어 스트림의 전송을 향상시키는 몇몇 상이한 시스템들, 장치들 및 방법들을 고려한다. 이러한 일반적인 개념들은 대체적이지만 균등한 임의의 수의 실시예들을 생성하기 위해 확장되거나 수정될 수도 있다.
여기에서 용어 "예시적(exemplary)"은 대체예를 얼마든지 가질 수도 있는 일 예, 사례(instance) 또는 실례(illustration)를 표현하는데 이용된다. 여기에서 예시로서 설명된 모든 실행은 다른 실행들보다 우선되거나 유리하도록 설계되는 것이 필연적이지는 않다. 몇몇 예시적인 실시예들이 본 발명의 상세한 설명 내에 제공되는 동안, 이는 동일한 변형들의 존재가 아닌 많은 수의 대체예의 존재, 여기에서 제공된 예시들은 범위, 적용가능성, 또는 본 발명의 구성에 아무런 제한을 의도하는 것이 아니도록 이해되어야 한다. 이와 대조적으로, 다양한 변화들이 청구항 및 청구항의 법률상 동일한 범위에서 벗어나지 않은 설명된 성분들의 배열 및 기능에서 만들어진다.

Claims (15)

  1. 상이한 비디오 품질을 가지는 복수의 미디어 스트림들(media stream)[105]로부터 선택된 일련의 세그먼트들[106]로 구성되는, 수신된 미디어 프로그램[104]을 처리하기 위하여 클라이언트 장치[120]에 의해 실행가능한 방법으로서, 상기 방법은 :
    제1 품질을 가지는 제1 미디어 스트림[106A]으로부터 비디오 프로그램의 제1 세그먼트를 네트워크[125]를 통해 요청하는 단계로서, 상기 제1 세그먼트는 미래 세그먼트[106N]의 대역폭 소비를 서술하는 예측 데이터[107]를 포함하는, 상기 비디오 프로그램의 제1 세그먼트를 요청하는 단계[304];
    시청자에게 재생하기 위하여 상기 비디오 프로그램의 상기 제1 세그먼트를 렌더링(rendering)하는 단계[306]; 및
    예측 데이터에 적어도 부분적으로 기초하여 상기 비디오 프로그램의 제2 세그먼트를 선택하는 단계[310]를 포함하되, 상기 선택하는 단계는 상기 예측 데이터가 동일한 상기 미디어 프로그램의 미래의 세그먼트의 대역폭 소비가 상기 클라이언트 장치가 이용가능한 대역폭량을 초과할 것임을 나타내는 경우, 동일한 상기 미디어 프로그램의 저품질 미디어 스트림으로부터 상기 제2 세그먼트를 선택하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 예측 데이터는 상기 미래 세그먼트의 크기를 나타내는, 방법.
  3. 제 2 항에 있어서,
    상기 예측 데이터에 의해 나타난 미래 세그먼트(future segment)의 크기는 상기 미래 세그먼트 내에 인코딩된 콘텐츠가 상기 제1 세그먼트 내에 인코딩된 콘텐츠보다 덜 압축가능한 경우에 더 큰, 방법.
  4. 제 1 항에 있어서,
    상기 선택하는 단계는 이용가능한 대역폭량을 결정하는 단계 및 상기 결정된 이용가능한 대역폭량을 상기 예측 데이터에 기초한 예측된 대역폭과 비교하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 선택하는 단계는 상기 예측 데이터에 기초한 예측된 대역폭량이 상기 이용가능한 대역폭량을 초과하는 경우, 저품질 미디어 스트림으로부터 상기 제2 세그먼트를 선택하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 클라이언트 장치가 네트워크 대역폭에 대한 보다 많은 수요를 예상하는 것을 나타내기 위해 상기 네트워크 상에서 상기 예측 데이터의 표시를 전송하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 선택하는 단계는 동일한 상기 네트워크 상에서 동작하는 상이한 클라이언트 장치로부터 수신된 표시에 기초하여 상기 미디어 스트림의 제2 세그먼트에 대한 차후 요청(subsequent request)을 조정하는 단계를 포함하는, 방법.
  8. 제 7 항에 있어서,
    상기 표시는 동일한 상기 네트워크 상에서 동작하는 상이한 클라이언트 장치가 추가 대역폭을 요구하는 것을 나타내는, 방법.
  9. 제 8 항에 있어서,
    상기 차후 요청을 조정하는 단계는, 상기 상이한 클라이언트 장치에 대한 동일한 네트워크 상의 대역폭을 보존하기 위해 저품질 스트림으로부터 상기 제2 세그먼트를 요청하는 단계를 포함하는, 방법.
  10. 제 1 항에 있어서,
    상기 클라이언트 장치는 프로세서 및 메모리를 포함하고, 상기 프로세서는 상기 요청하는 단계, 상기 렌더링하는 단계 및 상기 선택하는 단계를 실행하도록 프로그램된, 방법.
  11. 네트워크[125]에 대한 인터페이스[136];
    프로그래밍 명령들[130]을 저장하도록 구성된 메모리[125]; 및
    상이한 비디오 품질을 가지는 복수의 미디어 스트림들[105]로부터 선택된 일련의 세그먼트들[106]로 구성되는 수신된 미디어 프로그램[104]을 처리하기 위해 상기 메모리에 저장된 상기 프로그래밍 명령들을 실행하도록 구성된 프로세서[134]를 포함하는 미디어 플레이어 장치로서,
    상기 프로세서는, 제1 품질을 가지는 제1 미디어 스트림[105A]으로부터 비디오 프로그램의 제1 세그먼트[106A]를 요청하되, 상기 제1 세그먼트는 동일한 상기 미디어 프로그램의 미래 세그먼트[106N]의 대역폭 소비를 서술하는 예측 데이터[107]를 포함하고, 상기 프로세서는, 상기 예측 데이터가 상기 동일한 미디어 프로그램의 미래 세그먼트의 대역폭 소비가 상기 클라이언트 장치가 이용가능한 대역폭량을 초과하는 것을 나타내는 경우, 상기 동일한 미디어 프로그램의 저품질 미디어 스트림으로부터 제2 세그먼트를 선택함으로써 상기 예측 데이터에 적어도 부분적으로 기초하여 상기 비디오 프로그램의 제2 세그먼트를 더 선택하는 것을 특징으로 하는, 미디어 플레이어 장치.
  12. 제 11 항에 있어서,
    상기 예측 데이터에 의해 나타난 미래 세그먼트의 크기는 상기 미래 세그먼트 내에 인코딩된 콘텐츠가 상기 제1 세그먼트 내에 인코딩된 콘텐츠보다 덜 압축가능한 경우 더 큰, 미디어 플레이어 장치.
  13. 제 11 항에 있어서,
    상기 제2 세그먼트는 이용가능한 대역폭량을 결정하는 단계 및 상기 결정된 이용가능한 대역폭량을 상기 예측 데이터에 기초한 예측된 대역폭과 비교하는 단계에 의해 선택되는, 미디어 플레이어 장치.
  14. 제 11 항에 있어서,
    상기 미디어 스트림의 제2 세그먼트는 동일한 상기 네트워크 상에 동작하는 상이한 클라이언트 장치로부터 수신된 표시에 기초하여 선택된 상기 제2 세그먼트로서, 상기 표시는 상기 동일한 네트워크 상에 동작하는 클라이언트 장치가 추가 대역폭을 요구하는 것을 나타내는, 미디어 플레이어 장치.
  15. 제 14 항에 있어서,
    상기 프로세서는 상기 상이한 클라이언트 장치에 대한 동일한 상기 네트워크 상의 대역폭을 보존하기 위해 저품질 스트림으로부터 상기 제2 세그먼트를 요청함으로써 상기 표시에 대응하는, 미디어 플레이어 장치.
KR1020167033102A 2014-06-30 2015-06-29 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재 KR101873969B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462019319P 2014-06-30 2014-06-30
US62/019,319 2014-06-30
PCT/US2015/038379 WO2016003939A1 (en) 2014-06-30 2015-06-29 Adaptive data segment delivery arbitration for bandwidth optimization

Publications (2)

Publication Number Publication Date
KR20160147946A true KR20160147946A (ko) 2016-12-23
KR101873969B1 KR101873969B1 (ko) 2018-07-04

Family

ID=53719961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033102A KR101873969B1 (ko) 2014-06-30 2015-06-29 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재

Country Status (7)

Country Link
US (2) US9930084B2 (ko)
EP (1) EP3162081B1 (ko)
JP (1) JP6419848B2 (ko)
KR (1) KR101873969B1 (ko)
BR (1) BR112016027656B1 (ko)
CA (1) CA2949380C (ko)
WO (1) WO2016003939A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11997366B2 (en) 2021-12-21 2024-05-28 Electronics And Telecommunications Research Institute Method and apparatus for processing adaptive multi-view streaming

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10367869B2 (en) * 2014-12-30 2019-07-30 Ford Global Technologies, Llc Remote vehicle control and operation
US10567816B2 (en) * 2015-04-30 2020-02-18 Comcast Cable Communications, Llc Delivering content
US20180183845A1 (en) * 2016-12-22 2018-06-28 Facebook, Inc. Systems and methods for providing content
US10693928B2 (en) 2017-01-30 2020-06-23 Wipro Limited Method and device for adaptive streaming of multimedia data
CN109301429B (zh) * 2018-09-27 2021-02-09 江苏赛博防务技术有限公司 一种有耗网络矩阵扩展法及新型六端口结
EP3873097A1 (en) 2020-02-28 2021-09-01 Streamroot Method for playing on a player of a client device a content streamed in a network
EP3886451A1 (en) * 2020-03-26 2021-09-29 Streamroot Method for playing on a player of a client device a content streamed in a network
EP3902275A1 (en) * 2020-04-21 2021-10-27 THEO Technologies A method for estimating bandwidth between a video server and a video client

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269078B1 (en) * 1997-04-04 2001-07-31 T. V. Lakshman Method and apparatus for supporting compressed video with explicit rate congestion control
US6181711B1 (en) * 1997-06-26 2001-01-30 Cisco Systems, Inc. System and method for transporting a compressed video and data bit stream over a communication channel
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US20080133766A1 (en) * 2006-05-05 2008-06-05 Wenjun Luo Method and apparatus for streaming media to a plurality of adaptive client devices
US8752102B2 (en) * 2008-01-03 2014-06-10 Microsoft Corporation Intelligent retransmission of data stream segments
US9167007B2 (en) * 2008-06-06 2015-10-20 Amazon Technologies, Inc. Stream complexity mapping
EP3200423B1 (en) 2008-06-06 2023-05-31 Amazon Technologies, Inc. Media host transmitting media stream with adapted bit rate
JP4618367B2 (ja) * 2008-11-27 2011-01-26 ソニー株式会社 コンテンツ受信装置およびコンテンツ受信方法
US8775665B2 (en) * 2009-02-09 2014-07-08 Citrix Systems, Inc. Method for controlling download rate of real-time streaming as needed by media player
CA2759880C (en) * 2009-03-23 2013-09-24 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
US20110013692A1 (en) * 2009-03-29 2011-01-20 Cohen Robert A Adaptive Video Transcoding
CN102598660B (zh) * 2009-04-20 2015-04-29 杜比实验室特许公司 用于多层视频传输的自适应内插滤波器
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
EP2375680A1 (en) 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
EP2583432B1 (en) * 2010-06-18 2019-02-20 Nokia Technologies Oy Method and apparatus for generating and handling streaming media quality-of-experience metrics
CN102469072A (zh) * 2010-11-08 2012-05-23 华为技术有限公司 流媒体服务方法、***及客户端
CN103650451B (zh) * 2011-07-07 2016-10-19 瑞典爱立信有限公司 网络容量优化的自适应http流播
US9445136B2 (en) * 2011-09-21 2016-09-13 Qualcomm Incorporated Signaling characteristics of segments for network streaming of media data
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9900630B2 (en) * 2011-11-08 2018-02-20 Comcast Cable Communications, Llc Adaptive content selection
US8737824B1 (en) * 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US20130315296A1 (en) * 2012-05-22 2013-11-28 Broadcom Corporation Systems and methods for adaptive selection of video encoding resources
US10063606B2 (en) * 2012-06-12 2018-08-28 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US8910229B2 (en) * 2012-07-05 2014-12-09 Motorola Mobility Llc Methods and devices for efficient adaptive bitrate streaming
US9294531B2 (en) * 2012-07-12 2016-03-22 Futurewei Technologies, Inc. Signaling and processing content with variable bitrates for adaptive streaming
WO2014012015A2 (en) * 2012-07-13 2014-01-16 Vid Scale, Inc. Operation and architecture for dash streaming clients
US9125073B2 (en) * 2012-08-03 2015-09-01 Intel Corporation Quality-aware adaptive streaming over hypertext transfer protocol using quality attributes in manifest file
US9516305B2 (en) * 2012-09-10 2016-12-06 Apple Inc. Adaptive scaler switching
US9462021B2 (en) * 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US9280540B2 (en) * 2012-10-01 2016-03-08 Verizon Patent And Licensing Inc. Content-driven download speed
MX2015003953A (es) * 2012-10-01 2015-07-06 Ericsson Telefon Ab L M Aparato y metodo relativo a la transmision de contenido a uno o mas dispositivos de usuario.
US20140108495A1 (en) 2012-10-11 2014-04-17 Steven A. Benno Adaptive streaming client
EP2920969A4 (en) * 2012-11-13 2016-07-13 Intel Corp VIDEO CODEC ARCHITECTURE FOR VIDEOS OF THE NEXT GENERATION
US9544344B2 (en) * 2012-11-20 2017-01-10 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
TW201421985A (zh) * 2012-11-23 2014-06-01 Inst Information Industry 場景片段傳輸系統、方法及記錄媒體
US9813325B2 (en) * 2012-12-27 2017-11-07 Comcast Cable Communications, Llc Information stream management
US20140215085A1 (en) * 2013-01-25 2014-07-31 Cisco Technology, Inc. System and method for robust adaptation in adaptive streaming
EP2949123A2 (en) * 2013-02-27 2015-12-02 Apple Inc. Adaptive streaming techniques
US9317188B2 (en) * 2013-03-15 2016-04-19 Arris Enterprises, Inc. Devices and methods for providing navigation images associated with adaptive bit rate video content
US9998750B2 (en) * 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9544623B2 (en) * 2013-07-08 2017-01-10 The Trustees Of Princeton University Quota aware video adaptation
US9386308B2 (en) * 2013-07-16 2016-07-05 Cisco Technology, Inc. Quality optimization with buffer and horizon constraints in adaptive streaming
US20150032854A1 (en) * 2013-07-24 2015-01-29 Futurewei Technologies Inc. System and method for network-assisted adaptive streaming
EP2979458A4 (en) * 2013-07-25 2016-03-02 Huawei Tech Co Ltd SYSTEM AND METHOD FOR EFFICIENTLY CONTROLLING CLIENT BEHAVIOR IN ADAPTIVE FLOW DIFFUSION
US8850055B1 (en) * 2013-09-17 2014-09-30 Google Inc. Intelligently streaming portions of media at higher quality over a limited bandwidth connection
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
US9401944B2 (en) * 2013-10-22 2016-07-26 Qualcomm Incorporated Layered adaptive HTTP streaming
US9847951B2 (en) * 2013-11-04 2017-12-19 Ciena Corporation Dynamic bandwidth allocation systems and methods using content identification in a software-defined networking controlled multi-layer network
KR102299004B1 (ko) * 2014-03-10 2021-09-09 삼성전자주식회사 메시지들을 대쉬 클라이언트로 송신하는 방법 및 장치
US20150271233A1 (en) * 2014-03-20 2015-09-24 Samsung Electronics Co., Ltd. Method and apparatus for dash streaming using http streaming
US9584577B2 (en) * 2014-04-03 2017-02-28 Cisco Technology, Inc. Method for enabling use of HLS as a common intermediate format
US9838459B2 (en) * 2014-04-30 2017-12-05 Futurewei Technologies, Inc. Enhancing dash-like content streaming for content-centric networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11997366B2 (en) 2021-12-21 2024-05-28 Electronics And Telecommunications Research Institute Method and apparatus for processing adaptive multi-view streaming

Also Published As

Publication number Publication date
EP3162081A1 (en) 2017-05-03
CA2949380C (en) 2019-11-19
CA2949380A1 (en) 2016-01-07
WO2016003939A1 (en) 2016-01-07
KR101873969B1 (ko) 2018-07-04
BR112016027656A2 (ko) 2017-08-15
US10225305B2 (en) 2019-03-05
BR112016027656B1 (pt) 2023-11-14
EP3162081B1 (en) 2019-09-11
JP2017526025A (ja) 2017-09-07
US9930084B2 (en) 2018-03-27
US20150381686A1 (en) 2015-12-31
JP6419848B2 (ja) 2018-11-07
US20180198835A1 (en) 2018-07-12

Similar Documents

Publication Publication Date Title
KR101873969B1 (ko) 대역폭 최적화를 위한 적응형 데이터 세그먼트 전송 중재
US20230283653A1 (en) Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
US11936469B2 (en) Server selected variable bitrate streaming
US20140223502A1 (en) Method of Operating an IP Client
KR20130005873A (ko) 방송 시스템에서 컨텐츠 수신 방법 및 장치
US11025987B2 (en) Prediction-based representation selection in video playback
WO2021143360A1 (zh) 资源传输方法及计算机设备
KR20120035881A (ko) Http 스트리밍의 표현 스위칭시 자연스런 재생을 위한 스케일러블한 http 스트리밍 전송 방법
US11563990B2 (en) Method and apparatus for automatic HLS bitrate adaptation
US10708667B1 (en) Combining fragments with different encodings
US20140298394A1 (en) Image processing device, image processing method, and computer program
KR20180058219A (ko) 송신 장치, 수신 장치, 및 데이터 처리 방법
EP3360332A1 (en) Client and method for playing a sequence of video streams, and corresponding server and computer program product
KR20090040107A (ko) 실시간 개인 방송 방법
Kim et al. Context-aware multimedia quality adaptation for smart streaming
CN103053170A (zh) 用以在串流重放期间提供特技播放的***和方法
JP2019029931A (ja) 映像送信装置、映像受信装置、映像送受信システム、制御方法、並びにプログラム
US11350160B1 (en) Management of a client device buffer
US20230224521A1 (en) Electronic device and operation method thereof
KR20090040106A (ko) 실시간 개인 방송 방법
JP2024076957A (ja) タイミング要件に基づく最適化されたビデオトランスコーディング

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