KR20080037079A - 피어­투­피어 가입자 공동체를 위한 다중­소스 및장애복구형 주문형 비디오 스트리밍 시스템 - Google Patents

피어­투­피어 가입자 공동체를 위한 다중­소스 및장애복구형 주문형 비디오 스트리밍 시스템 Download PDF

Info

Publication number
KR20080037079A
KR20080037079A KR1020087006035A KR20087006035A KR20080037079A KR 20080037079 A KR20080037079 A KR 20080037079A KR 1020087006035 A KR1020087006035 A KR 1020087006035A KR 20087006035 A KR20087006035 A KR 20087006035A KR 20080037079 A KR20080037079 A KR 20080037079A
Authority
KR
South Korea
Prior art keywords
streaming
peer
streaming data
demand
rate
Prior art date
Application number
KR1020087006035A
Other languages
English (en)
Other versions
KR101275726B1 (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 KR20080037079A publication Critical patent/KR20080037079A/ko
Application granted granted Critical
Publication of KR101275726B1 publication Critical patent/KR101275726B1/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/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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Abstract

중앙집중화된 주문형 비디오(VoD) 시스템들은 제한된 콘텐트와 제한된 보관 능력을 제공한다. 피어-투-피어 네트워크는 사용자들이 피어들 사이에서 직접 콘텐트의 넓은 선택 목록을 공유하도록 허용하지만, 피어들 사이의 접속들이 제한된 업링크 대역폭을 가질 수 있고 신뢰할 수 없을 수 있다. 다양한 실시예들에 따른 본 발명은 상기 문제점들 및 다른 문제점들을 해결하기 위하여 이종의 피어-투-피어 네트워크 내에서 하나 이상의 소스들로부터의 스트리밍 데이터에 대한 고품질의 장애복구형 전송을 위한 시스템들 및 방법들을 구현한다.

Description

피어­투­피어 가입자 공동체를 위한 다중­소스 및 장애복구형 주문형 비디오 스트리밍 시스템 {A MULTI­SOURCE AND RESILIENT VIDEO ON DEMAND STREAMING SYSTEM FOR A PEER­TO­PEER SUBSCRIBER COMMUNITY}
본 발명의 명세서의 기재 내용 중 일부는 저작권 보호에 따른 자료를 포함한다. 저작권자는 미국 특허상표청에서 특허가 공개되면 본 발명의 명세서 또는 공개공보의 누군가에 의한 팩시밀리 복제에 이의를 갖지 않으나, 그렇지 않다면 모든 저작권들은 보호된다.
본 출원에는 2005년 8월 12일자로 제출된 미국 가출원 60/708,020(변호사 도켓2005P14442US)과 2005년 12월 12일자로 제출된 미국 가출원 60/749,730(변호사 도켓 2005P22668US)이 참조로 통합되어 있으며, 상기 가출원들은 모두 "A Multi-Source and Resilient Video Streaming System for Peer-to-Peer Networks"을 명칭으로 하고 본 출원과 동일한 발명자들을 갖는다.
본 발명은 스트리밍 데이터에 관한 것으로, 더욱 상세하게는 피어-투-피어 가입자 공동체 네트워크에서 하나 이상의 소스들로부터의 주문형 스트리밍 데이터에 관한 것이다.
셋톱박스(STB)는 TV 프로그램들을 재생하고 레코딩하는 것과 같은 서비스들 을 위한 서비스 공급자들의 네트워크에 대하여 텔레비전 세트가 사용자 인터페이스가 될 수 있도록 하는 장치이다. STB의 개인용 비디오 레코딩기(PVR) 특징을 이용하여, 사용자는 방송된 콘텐트를 차후에 시청하기 위해 레코딩할 수 있다.
주문형 비디오(VoD) 시스템은 사용자가 STB를 이용해 재생하고 어쩌면 레코딩하길 원하는 특정한 TV 프로그램 또는 다른 비디오 콘텐트를 요청할 수 있도록 한다. 통상적인 VoD 시스템에서, 사용자는 중앙 서비스 공급자의 네트워크에 대한 인터페이스로서 STB를 사용할 수 있고, 서비스 공급자에 의해 제공되는 이용 가능한 콘텐트의 선택 목록을 통해 탐색하고 보기 위한 프로그램을 선택하기 위하여 전자 프로그램 안내(EPG)를 사용할 수 있다. 비디오 데이터는 통상적으로 서비스 공급자의 네트워크를 통해 사용자의 STB에 스트리밍 데이터로서 전송된다.
일반적으로 또한, 피어-투-피어 네트워크는 동일한 네트워킹 프로토콜들과 스프트웨어를 공유하는 사용자들이 서로에 대하여 상호 접속할 수 있고 다른 사용자의 각각의 자원들에 직접 액세스할 수 있도록 한다. 예를 들면, 서비스 공급자는 컴퓨터 사용자들이 그들의 컴퓨터들을 네트워크에 접속시키고 디지털 콘텐트 파일들과 같은 다른 사용자의 각각의 자원들에 직접 액세스할 수 있도록 피어-투-피어 네트워크를 제공할 수 있다. 서비스 공급자는 STB들과 같은 다른 장치들의 사용자들이 그들의 장치들을 네트워크에 접속시키고 저장된 비디오 콘텐트 및 TV 프로그램들을 포함하여 다른 사용자의 각각의 자원들에 직접 액세스할 수 있도록 피어-투-피어 네트워크를 제공할 수 있다. 가입자 공동체 피어-투-피어 네트워크는 가입자들의 공동체가 다른 사용자의 자원들에 직접 액세스할 수 있도록 한다. 사 용자는 하나 이상의 피어들로부터 데이터를 다운로딩할 수 있는데, 통상적으로 스트리밍 데이터로서 다운로딩할 수 있다.
그러나, 서비스 공급자의 네트워크들에 대한 점차 증가하는 대역폭 및 장애복구 요구들은 도전적인데, 그 이유는 통상적인 스트리밍 솔루션들이 이러한 요구들에 부합할 수 없기 때문이다. 도 1에 도시된 바와 같은 현대 VoD 솔루션들은 통상적으로 영화 제목들의 적당한 선택 목록을 제공하고 24시간과 같은 제한된 시간 기간 동안에 프리미엄 콘텐트만을 캐싱할 수 있다. 그러나, VoD 시스템으로의 가입자들이 그들이 보길 원하는 콘텐트 및 보길 원하는 시각을 선택할 수 있다면(즉, 주문형), VoD 접근법은 더욱 빈번하게 사용될 수 있을 것이다. 이는 고객 만족도를 높일 수 있고 서비스 공급자의 입장에서 수익이 증가하고 천(churn)이 감소할 것이다.
따라서, 특히 VoD 시스템을 증대시키기 위하여, 본 발명은 STB들 사이의 피어-투-피어(P2P) 네트워크에 관한 것으로, 특정 실시예들에 따르면 각각의 STB는 상기 네트워크의 한 노드이다. 또한, 본 발명의 특정 실시예들은 서비스 공급자의 네트워크 내 임의의 피어 STB가 네트워크 내 다른 STB들로부터 비디오 콘텐트를 획득하여 시청할 수 있도록 하는 다중-소스 스트리밍 기술, 소위 VoD-투-피어(V2P)에 관한 것이다. 따라서, 본 발명의 실시예들에 따른 이러한 V2P 네트워크는 효과적으로, 임의의 멤버가 임의의 다른 멤버에 의해 다운로딩 및/또는 레코딩된 콘텐트를 획득하여 시청할 수 있는 가입자 공동체를 위한 VoD 시스템이 된다.
통상적으로, 가입자 공동체가 STB들의 집합을 포함하므로, V2P는 STB들로부터의 콘텐트에 대한 주문형 보기를 가능하게 하는 다중-소스 비디오 스트리밍 시스템이다. 본 발명의 원리들에 따라 설계된 V2P 시스템의 아키텍처는 아키텍처의 각각의 구성요소에 대한 기술에 따라 여기에 기재된다. 이러한 V2P 시스템은 고품질의 장애복구형 비디오 스트리밍을 책임진다.
특정 실시예에 따르면, 본 발명은 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 시스템을 제공한다. 상기 시스템은 다운로딩 및 레코딩된 이후에 스트리밍 데이터로서 공급될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 공급하도록 동작하는 서비스 공급자, 및 상기 서비스 공급자에 연관되고 텔레비전 세트와 인터페이싱하도록 적응된 장치들의 가입자 공동체 피어-투-피어 네트워크를 포함한다. 상기 시스템은 또한 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크 내에서 임의의 노드인 수신기, 및 활성 공급자와 백업 공급자들을 포함하는 일련의 공급자들을 포함한다. 각각의 공급자는 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드이고, 각각의 공급자는 서비스 공급자로부터 또는 하나 이상의 다른 노드들로부터 콘텐트를 다운로딩 및/또는 레코딩한 이후에 주문형 스트리밍 데이터를 공급하도록 동작한다. 상기 수신기는 공급자들의 집합 중 하나 이상의 공급자들로부터 상기 수신기에 의해 주문형으로 스트리밍되는 스트리밍 데이터를 수신하도록 동작한다.
다른 특정 실시예에 따르면, 본 발명은 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 방법을 제공한다. 상기 방법은 서비스 공급자의 가입자들을 위해 가입자 공동체 피어-투-피어 네트워크를 제공하는 단계, 다운로딩 및/또는 레코딩될 수 있고 후속하여 스트리밍 데이터로서 주문형으로 공급될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 제공하는 단계, 및 상기 가입자 공동체 피어-투-피어 네트워크에 연관된 검색엔진을 제공하는 단계를 포함한다. 상기 방법은 가입자들을 가입자 공동체 피어-투-피어 네트워크에 접속시키는 단계, 및 가입자 공동체 피어-투-피어 네트워크에 접속된 다른 가입자들에 의해 사전에 다운로딩 또는 레코딩된 콘텐트를 검색하기 위하여 각각의 사용자가 검색엔진을 사용할 수 있도록 하고 상기 다운로딩 및/또는 레코딩된 콘텐트를 스트리밍 데이터로서 하나 이상의 다른 가입자들로부터 주문형으로 수신할 수 있도록 하는 단계를 포함한다.
또 다른 특정한 실시예에 따르면, 본 발명은 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 수신하기 위한 시스템을 제공한다. 상기 시스템은 가입자 공동체 피어-투-피어 네트워크, 상기 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드인 스트리밍 데이터의 수신기, 및 일련의 스트리밍 데이터의 공급자들을 포함한다. 상기 공급자들의 집합은 일련의 활성 공급자들과 일련의 백업 공급자들을 포함하는데, 공급자들의 집합 내 각각의 공급자는 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드이다. 스트리밍 데이터는 다중 블록들을 포함한다. 주문형으로 수신될 스트리밍 데이터의 각각의 블록을 위해, 수신기는 FEC 인코딩 오버헤드 비율을 활용하고, 개별적으로 할당된 데이터 레이트, 적어도 상기 FEC 인코딩 오버헤드 비율로 FEC-인코딩된 블록의 개별적으로 할당된 프랙션(fraction)을 송신하도록 각각의 활성 공급자에 시그널링하고, 각각의 세그먼트가 개별적으로 할당된 프랙션의 적어도 일부를 나타내는 FEC-인코딩된 블록의 세그먼트들을 수신하고, 세그먼트들의 통합에 기초하여 FEC-인코딩된 블록을 디코딩하고 상기 디코딩된 블록을 버퍼에 저장하고, 각각의 활성 공급자와의 네트워크 접속의 성능을 감시하고 네트워크 접속들의 성능 및 버퍼의 조건들에 기초하여 오버플로우 또는 언더플로우를 야기할 수 있는 조건을 상기 버퍼가 검출하는지를 감시하고, 버퍼의 언더플로우 또는 오버플로우에 도달하는 것을 방지하기 위해 품질 적응을 수행하도록 동작한다.
다른 특정 실시예에 따르면, 본 발명은 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 수신하기 위한 방법을 제공한다. 상기 방법은 일련의 후보 공급자들로부터 일련의 활성 공급자들이 될 일련의 공급자들을 가입자 공동체 피어-투-피어 네트워크에서 선택하는 단계, 및 상기 후보 공급자들의 집합으로부터 일련의 백업 공급자들이 될 다른 일련의 공급자들을 선택하는 단계를 포함한다. 수신될 스트리밍 데이터의 각각의 블록을 위해, 상기 방법은 FEC 인코딩 오버헤드 비율을 활용하는 단계, 개별적으로 할당된 데이터 레이트, 적어도 상기 FEC 인코딩 오버헤드 비율로 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 송신하도록 각각의 활성 공급자에 시그널링하는 단계, 각각의 세그먼트가 개별적으로 할당된 프랙션의 적어도 일부를 나타내는 FEC-인코딩된 블록의 세그먼트들을 수신하는 단계, 세그먼트들의 통합에 기초하여 FEC-인코딩된 블록을 디코딩하고 상기 디코딩된 블록을 버퍼에 저장하는 단계, 각각의 활성 공급자와의 네트워크 접속의 성능을 감시하는 단계, 네트워크 접속들의 성능 및 버퍼의 조건들에 기초하여 오버플로우 또는 언더플로우를 야기할 수 있는 조건을 상기 버퍼가 검출하는지를 감시하는 단계, 버퍼의 언더플로우 또는 오버플로우에 도달하는 것을 방지하기 위해 품질 적응을 수행하는 단계를 포함한다.
다른 특정 실시예에 따르면, 본 발명은 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 시스템을 제공한다. 상기 시스템은 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드인 수신기, 및 스트리밍 데이터를 갖는 일련의 공급자들을 포함하는데, 상기 공급자들의 집합에서 각각의 공급자는 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드이다. 스트리밍 데이터는 다중 블록들을 포함하고, 제공될 스트리밍 데이터의 각각의 블록을 위해, 각각의 공급자는 활용될 FEC 인코딩 오버헤드 비율, 개별적으로 할당된 데이터 레이트, 및 상기 FEC 인코딩 오버헤드 비율을 활용하는 블록에 대하여 FEC 인코딩 동작으로부터 야기되는 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 지시하는 신호를 수신기로부터 수신하고, FEC-인코딩된 블록의 할당된 프랙션의 적어도 일부를 개별적으로 할당된 데이터 레이트로 송신하도록 동작한다.
다른 특정 실시예에 따르면, 본 발명은 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 공급하기 위한 방법을 제공한다. 가입자 공동체 피어-투-피어 네트워크에서 수신기에 의해 수신될 스트리밍 데이터의 각각의 블록을 위해, 상기 방법은 활용될 FEC 인코딩 오버헤드 비율, 개별적으로 할당된 데이터 레이트, 및 상기 FEC 인코딩 오버헤드 비율을 활용하는 블록에 대하여 FEC 인코딩 동작으로부터 야기되는 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 지시하는 신호를 수신기로부터 수신하는 단계, 및 FEC-인코딩된 블록의 할당된 프랙션의 적어도 일부를 개별적으로 할당된 데이터 레이트로 송신하는 단계를 포함한다.
다른 특정 실시예에 따르면, 본 발명은 스트리밍 비디오 데이터의 고속 감기 재생 또는 고속 되감기 재생을 시뮬레이션하기 위한 방법을 제공한다. 상기 방법은 임의의 스트리밍 레이트로 스트리밍 비디오 데이터를 수신하는 단계, 정상 속도에 해당하는 재생 레이트로 후속 재생하기 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계, 및 상기 정상 속도보다 더 빠른 속도로 상기 버퍼로부터 상기 저장된 스트리밍 비디오 데이터를 재생하는 단계를 포함한다. 또한, 상기 방법은 언더플로우 조건을 검출함에 기초하여 스트리밍 레이트가 재생 레이트 미만인 언더플로우 조건에 대해 상기 버퍼를 감시하는 단계, 미리 결정된 비디오 클립을 버퍼에 저장된 스트리밍 비디오 데이터 사이에 삽입하는 단계를 포함한다.
다른 특정 실시예에 따르면, 본 발명은 스트리밍 비디오 데이터의 고속 감기 재생 또는 고속 되감기 재생을 시뮬레이션하기 위한 방법을 제공한다. 상기 방법은 비디오 파일로부터 임의의 스트리밍 레이트로 스트리밍 비디오 데이터를 수신하는 단계, 정상 보기 속도에 해당하는 정상 재생 레이트로 후속 재생하기 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계, 및 가속 보기 속도에 해당하는 가속 재생 레이트로 고속 감기 재생을 위한 명령어를 수신하는 단계를 포함한다. 상기 방법은 또한 상기 비디오 파일에서 점프 지점으로부터 시작되는 스트리밍 비디오 데이터를 수신하는 단계, 및 가속 재생 레이트로 재생을 시뮬레이션 하기 위해 상기 정상 재생 속도보다 더 빠른 재생 레이트로 버퍼로부터 상기 저장된 스트리밍 비디오 데이터를 플레이하는 단계를 포함한다.
본 발명의 상기 실시예들 및 다른 실시예들이 하기에서 더욱 상세하게 기술된다.
본 명세서에 통합되어 본 명세서의 일부를 구성하는 도면들은 본 발명의 다양한 측면들을 나타내며, 상세한 설명과 함께 본 발명의 원리들을 설명한다. 편의성을 위해 도면들을 통틀어 동일하거나 유사한 엘리먼트에 대해서는 동일한 참조부호들이 사용될 것이다.
도 1은 종래의 주문형 비디오(VoD) 서비스를 구현하기 위한 시스템에 대한 도면,
도 2는 피어-투-피어 네트워크에 의해 공급되는 추가 콘텐트를 이용한 종래의 주문형 비디오(VoD) 서비스를 증대시키기 위한 시스템의 일실시예 도면,
도 3은 롱 테일(long tail)을 도시한 그래프,
도 4는 VoD-투-피어(V2P) 시스템의 일실시예 도면,
도 5는 V2P 시스템을 이용하여 스트리밍 세션을 수행하기 위한 방법의 흐름도,
도 6은 V2P 시스템의 일실시예를 도시하는 블록도,
도 7은 피어 선택 순위 방정식에 대한 그래프,
도 8은 스트림 관리 모듈의 세부요소들을 포함하는 V2P 수신기를 도시하는 블록도,
도 9는 동적 버퍼 관리 기법이 어떻게 버퍼 오버플로우 또는 언더플로우를 방지할 수 있는지에 관해 도시하는 그래프,
도 10은 버퍼 관리 방식을 도시하는 그래프,
도 11은 접속 감시에 사용되는 간단한 이진 트리에 대한 도면,
도 12는 MPEG 프레임들의 시퀀스에 대한 도면,
도 13은 고속 감기 동작을 시뮬레이션하기 위해 비디오 데이터 사이에 삽입되는 비디오 클립에 대한 도면,
도 14는 V2P 시스템의 한 실시예를 도시하는 블록도,
도 15는 V2P 시스템을 평가하기 위한 예시적 셋업에 대한 도면,
도 16은 고-대역폭 환경에서 구현되는 V2P 시스템에 대한 도면,
도 17은 V2P 시스템의 한 실시예에 대한 블록도,
도 18은 TV 보기 행동 및 롱 테일을 도시하는 그래프,
도 19A는 V2P 시스템이 표준 정의(SD) 품질로 전달할 수 있는 병렬 스트림들의 수를 도시한 그래프,
도 19B는 V2P 시스템이 SD 품질로 전달할 수 있는 스트림들의 최대 개수 또는 누적 개수를 도시한 그래프,
도 20A는 V2P 시스템이 근사 DVD 품질로 전달할 수 있는 병렬 스트림들의 수를 도시한 그래프,
도 20B는 V2P 시스템이 근사 DVD 품질로 전달할 수 있는 병렬 스트림들의 개 수를 도시한 그래프,
도 21A는 V2P 시스템이 근사 DVD 품질로 전달할 수 있는 병렬 스트림들의 수를 도시한 그래프,
도 21B는 V2P 시스템이 근사 DVD 품질로 전달할 수 있는 병렬 스트림들의 수를 도시한 그래프,
도 22는 V2P 시스템의 보관 측면을 도시한 그래프, 및
도 23은 공통 비디오 프레임을 식별하기 위한 방법을 도시한 흐름도.
상기 언급된 바와 같이, 특히 VoD 시스템을 증대시키기 위해, 본 발명은 STB들 사이의 피어-투-피어(P2P) 네트워크에 관한 것으로, 특정 실시예에 따르면 각각의 STB는 네트워크의 한 노드이다. 또한, 본 발명의 특정 실시예들은 서비스 공급자의 네트워크 내 임의의 피어 STB가 상기 네트워크 내 다른 STB들로부터 비디오 콘텐트를 획득하여 시청할 수 있도록 하는 다중-소스 스트리밍 기술, 소위 VoD-투-피어(V2P)에 관한 것이다. 따라서, 본 발명의 실시예들에 따른 이러한 V2P 네트워크는 효과적으로 가입자 공동체를 위한 VoD 시스템이 되고, 상기 VoD 시스템에서 가입자 공동체의 임의의 멤버는 다른 임의의 멤버들에 의해 다운로딩 및/또는 레코딩된 콘텐트를 획득하여 시청할 수 있다.
통상적으로, 가입자 공동체가 일련의 STB들을 포함하므로, V2P는 STB들로부터의 콘텐트에 대한 주문형 보기를 가능하게 하는 다중-소스 비디오 스트리밍 시스템이다. 본 발명의 원리들에 따라 설계된 V2P 시스템의 아키텍처는 상기 아키텍처 의 각각의 구성요소와 함께 여기에서 설명된다. 이러한 V2P 시스템은 고품질의 장애복구형 비디오 스트리밍을 책임진다.
유용하게도, V2P 서비스를 제공하는 서비스 공급자는 자신에 의해 관리되는 P2P 네트워크를 통한 불법적인 비디오 배포를 금지할 수 있을 것이다. 상세하게는, 서비스 공급자는 가입자 STB들에 의해 레코딩된 콘텐트를 서비스 공급자에 의해 제공된 콘텐트로 제한할 수 있으며 그럼으로써 새로운 비디오 콘텐트를 STB들로 도입할 메커니즘이 존재하지 않게 된다(즉, 상기 시스템은 가입자가 관련되는 한 폐쇄되어 있다). 피어 STB들 사이에서 비디오 콘텐트의 임의의 후속 공유는 서비스 공급자의 고객들(가입자들)인 STB 피어들의 폐쇄 공동체로 제한된다. P2P 네트워크는 임의의 개인용 컴퓨터(PC) 또는 다른 적합한 장치들이 콘텐트에 대한 불법적인 공유 없이 상기 P2P 네트워크에 접속되는 것을 허용하도록 확장될 수 있다.
서비스 공급자들에 관한 한, 본 발명은 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 다양한 실시예들의 시스템들 및 방법들을 제공한다. 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 시스템의 한 실시예는 텔레비전 세트와 인터페이싱하도록 적응된 장치들의 가입자 공동체 피어-투-피어 네트워크 그리고 다운로딩 또는 레코딩된 이후에 스트리밍 데이터로서 제공될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 공급하도록 동작하는 서비스 공급자를 포함한다. 상기 시스템에서는, 콘텐트를 제공하는 스트리밍 데이터로서 상기 콘텐트의 수신기 그리고 활성 공급자 및 백업 공급자를 포함하는 일련의 공급자들이 존재한 다. 각각의 공급자는 서비스 공급자로부터 또는 하나 이상의 다른 노드들로부터 콘텐트를 다운로딩 또는 레코딩한 이후에 주문형 스트리밍 데이터를 공급하도록 동작한다. 이러한 시스템 내 수신기는 상기 공급자들의 집합 내 하나 이상의 공급자들로부터 수신기에 의한 주문으로 스트리밍되는 데이터를 수신하도록 동작한다. 수신기 및 공급자들은 각각 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드이고, 각각의 노드는 셋톱박스 또는 텔레비전 세트 및 서비스 공급자의 네트워크와 인터페이싱하도록 적응된 임의의 다른 장치이다. 서비스 공급자는 가입자 공동체에서 노드들에 의해 다운로딩 및 레코딩 가능한 오디오 데이터, 비디오 데이터, 또는 둘 모두와 같은 콘텐트를 공급한다; 상기 다운로딩 및 레코딩 가능 콘텐트는 공급자들로서 작동하는 노드들로부터 스트리밍 데이터로서 공급될 수 있다.
다양한 실시예들에 따르면, 이러한 시스템은 사용자들이 콘텐트 브라우저를 이용해 콘텐트를 탐색하고 콘텐트 권고자로부터 콘텐트 권고안들을 수신할 수 있도록 하는 검색엔진에 의해 향상될 수 있다. 다른 실시예들에 따르면, 상기 시스템은 콘텐트 소유자들에게, 서비스 공급자들에게, 및 스트리밍 세션들에 참여하는 공급자들에게 보상을 제공하는 인센티브 관리자에 의해 더 향상될 수 있다. 다른 실시예들에 따르면, 상기 시스템은 불법적인 콘텐트 배포를 방지하는 디지털 저작권 관리자에 의해 더 향상될 수 있다.
앞의 기재와 관련되어, 특정 실시예에 따르면, 본 발명은 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 방법을 제공하며, 이는 가입자들이 접속된 서비스 공급자의 상기 가입자들에게 가입자 공동체 피어-투-피어 네트워크를 제공한 이후에 제공한다. 상기 방법은 다운로딩 및/또는 레코딩될 수 있고 후속하여 스트리밍 데이터로서 주문형으로 제공될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 제공하는 단계를 포함한다. 또한, 상기 방법은 가입자 공동체 피어-투-피어 네트워크와 연관된 검색엔진을 제공하는 단계와, 각각의 가입자가 검색엔진을 사용하여 선택된 데이터를 주문형으로 수신할 수 있도록 하는 단계를 포함한다. 상세하게는, 가입자들은 가입자 공동체 피어-투-피어 네트워크에 접속된 다른 가입자들에 의해 사전에 다운로딩 또는 레코딩된 콘텐트를 검색하기 위하여 검색엔진을 사용한다. 그런 다음, 가입자들은 하나 이상의 다른 가입자들로부터 스트리밍 데이터로서 이러한 다운로딩 및/또는 레코딩 가능 콘텐트를 주문형으로 수신한다.
주문형 콘텐트의 수신에 관한 한, 본 발명의 다양한 실시예들은 또한 가입자 공동체 피어-투-피어 네트워크에서 하나 이상의 공급자들로부터 주문형 스트리밍 데이터를 수신하기 위한 시스템들 및 방법들을 제공한다. 이러한 한 시스템은 수신기로서 동작하는 한 노드와, 일련의 활성 공급자들 및 일련의 백업 공급자들을 포함하여 스트리밍 데이터의 공급자들로서 동작하는 일련의 노드들을 포함한다. 즉, 수신기 그리고 공급자들의 집합 내 각각의 공급자는 가입자 공동체 피어-투-피어 네트워크 내 임의의 노드이다. 이러한 시스템 내 수신기는 오디오 데이터, 비디오 데이터, 또는 둘 다를 포함하는 스트리밍 데이터를 수신한다. 수신될 스트리밍 데이터의 각각의 블록을 위해, 수신기는 FEC 인코딩 오버헤드 비율을 활용하고, 상기 FEC 인코딩 오버헤드 비율로 FEC-인코딩된 블록의 적어도 개별적으로 할당된 프랙션을 개별적으로 할당된 데이터 레이트로 송신함을 각각의 활성 공급자에 시그널링한다. 수신기는 각각의 세그먼트가 개별적으로 할당된 프랙션들의 적어도 일부를 나타내는 FEC-인코딩된 블록의 세그먼트들을 수신하고, 세그먼트들의 통합에 기초하여 FEC-인코딩된 블록을 디코딩하고, 상기 디코딩된 블록을 버퍼에 저장한다. 수신기는 각각의 활성 공급자와의 네트워크 접속의 성능을 감시하고, 버퍼가 오버플로우 또는 언더플로우를 야기할 수도 있는 조건들을 검출하는지를 감시한다. 접속들의 성능 및 버퍼의 조건들에 기초하여, 수신기는 버퍼가 언더플로우 또는 오부플로우에 이르는 것을 방지하기 위하여 품질 적응을 수행한다. 감시는 스트리밍 세션 중에 공급자 결함 또는 콘텐트 삭제를 검출하고, 활성 집합에 부가하여 백업 피어, 활성 공급자들 간의 레이트 재분포, 및 공급자 결함과 콘텐트 삭제를 다루기 위한 FEC 인코딩 오버헤드 조절과 같은 일련의 기술들을 사용한다.
언급된 바와 같이, 수신기와 공급자들의 각각은 가입자 공동체 피어-투-피어 네트워크의 임의의 노드이고, 각각의 이러한 장치는 텔레비전 세트 및 서비스 공급자의 네트워크와 인터페이싱하도록 적응될 수 있다. 즉, 이러한 장치들은 다양한 실시예들에 따르면 셋톱박스들, 개인용 컴퓨터들 또는 이동 컴퓨팅 장치들일 수 있다. 각각의 장치들은 수신기, 공급자, 또는 둘 다로서 동작할 수 있다. 공급자들은 공급자의 공급 상태 또는 수신 상태, 이용 가능 업링크 대역폭, 프로세싱 파워, 신뢰성 히스토리, 경로 지연, 패킷 손실, 및 공평성을 포함할 수 있는 하나 이상의 메트릭스들의 임의의 조합에 기초하여 선택된다. 특정 실시예들에 따르면, 공급자의 신뢰성 히스토리는 장치 결함률, 네트워크 접속 시간, 및 콘텐트 이용가능성에 기초할 수 있다. 공평성은 부하 조절 및 이전 선택 기록에 기초할 수 있다.
특정 실시예들에 따르면, 이러한 시스템 내 수신기는 공급자가 네트워크 변동, 장치 결함을 경험하였거나, 또는 스트리밍 데이터로서 공급될 콘텐트를 삭제하였는지의 여부를 검출하는 것을 포함하여 각각의 활성 공급자와의 네트워크 접속의 성능을 감시하는 것에 기초해 스트리밍 세션을 적응시키도록 동작한다. 수신기는 또한 각각의 공급자로부터 실제로 수신된 스트리밍 데이터의 메트릭스들에 기초해 수동적으로 각각의 네트워크 접속의 성능을 감시한다. 또한, 수신기는 현재 버퍼 사이즈, 현재 플레이 레이트, 및 현재 스트리밍 레이트를 포함하여 버퍼를 감시하는 것에 기초해 스트리밍 세션을 적응시킨다. 필요하다면, 수신기는 활성 공급자들 간의 레이트 분포를 동적으로 조절할 수 있고, 공급자들의 집합을 조절할 수 있고, 또는 FEC 인코딩 파라미터들을 조절할 수 있다. 또한, 수신기는 새로운 데이터 레이트를 할당함으로써 또는 블록의 새로운 프랙션을 할당함으로써 활성 공급자들 간의 레이트 분포를 조절하도록 동작한다. 다양한 실시예들에 따르면, 수신기는 활성 공급자를 추가하거나 제거하고, 백업 공급자를 활성 공급자들의 집합에 추가하고, 또는 임의의 공급자를 백업 공급자들의 집합에 추가함으로써 활성 공급자들의 집합을 조절할 수 있다. 수신기는 새로운 FEC 인코딩 오버헤드 비율을 활용함으로써 또는 새로운 FEC 인코딩 방식을 활용함으로써 FEC 인코딩 파라미터들을 조절할 수 있다. FEC 인코딩 오버헤드 비율을 활용함으로써, 수신기는 블록의 후속 FEC 인코딩에서 공급자에 의해 사용될 FEC 인코딩 오버헤드 비율을 설정할 수 있거나 또는 특정 FEC 인코딩 오버헤드 비율로 FEC-인코딩된 사전-인코딩 블록을 선택하도록 공급자에게 단순히 시그널링할 수 있다.
또한, 특정 실시예들에 따르면, 이러한 시스템 내 수신기는 활성 공급자들의 집합 중에서 스트리밍 데이터의 소스로서 사용될 미디어 파일의 개별적인 다중 복사본들 내에서 공통 시작점을 결정한다. 수신기는 시간 간격을 정의하고 각각의 활성 공급자로부터 일련의 레퍼런스 객체들(reference objects)을 수신한다. 시간 간격은 가입자 공동체 네트워크에 접속된 장치들의 클록 동기화에 관련될 수 있다. 레퍼런스 객체들의 각각은 상기 시간 간격 동안에 미디어 파일의 개별 복사본 내에서 발생하는 참조 프레임에 해당한다. 수신기는 모든 레퍼런스 객체들의 집합들에 공통적인 공통 레퍼런스 객체를 식별하기 위하여 수신된 레퍼런스 객체들의 집합들을 비교하고 시작점이 공통 레퍼런스 객체에 해당하는 참조 프레임이 되도록 설정한다. 비디오 파일에서, 각각의 참조 프레임은 비디오 프레임일 수 있고, 각각의 레퍼런스 객체는 해쉬 값일 수 있다.
콘텐트를 주문형으로 공급하는 것에 관한 한, 특정 실시예들에 따른 본 발명은 또한 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 공급하기 위한 시스템들 및 방법들을 제공한다. 이러한 한 실시예는 상기 네트워크에서 임의의 노드인 수신기와 스트리밍 데이터의 다중 블록들의 일련의 공급자들을 포함하는데, 여기서 상기 공급자들의 집합 내 각각의 공급자는 또한 상기 네트워크 내 임의의 노드이다. 공급할 스트리밍 데이터의 각각의 블록을 위해, 이러한 시스템 내 각각의 공급자는 활용될 FEC 인코딩 오버헤드 비율, 개별적으로 할당된 데이터 레이트, 및 상기 FEC 인코딩 오버헤드 비율을 활용하는 블록에 대하여 FEC 인코 딩 동작으로부터 야기되는 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 지시하는 신호를 수신기로부터 수신한다. 그러면 각각의 공급자는 FEC-인코딩 블록의 할당된 프랙션의 적어도 일부를 개별적으로 할당된 데이터 레이트로 송신한다.
전술한 내용에 부가하여, 본 발명의 다양한 실시예들은 스트리밍 비디오 데이터의 고속 감기 재생 및 고속 되감기 재생을 시뮬레이션하기 위한 시스템들 및 방법들을 포함한다. 스트리밍 비디오 데이터의 고속 감기 재생 또는 고속 되감기 재생을 시뮬레이션하기 위한 방법의 한 실시예는 스트리밍 비디오 데이터를 스트리밍 레이트로 수신하는 단계, 정상 속도에 해당하는 재생 레이트로 후속 재생하기 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계, 스트리밍 레이트가 재생 레이트 미만이 되는 언더플로우 조건에 대하여 버퍼를 감시하는 단계, 및 미리 결정된 비디오 클립을 버퍼의 저장된 스트리밍 비디오 데이터 사이에 삽입하는 단계를 동반한다.
스트리밍 비디오 데이터의 고속 감기 재생 및 고속 되감기 재생을 시뮬레이션하기 위한 방법의 다른 실시예는 스트리밍 레이트로 비디오 파일로부터 스트리밍 비디오 데이터를 수신하는 단계, 정상 보기 속도에 해당하는 정상 재생 레이트로 후속 재생하기 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계를 동반한다. 본 방법은 가속 보기 속도에 해당하는 가속 재생 레이트로 고속 감기 재생 또는 고속 되감기 재생을 위한 명령어를 수신하는 단계, 비디오 파일 내 점프 지점으로부터 시작하는 스트리밍 비디오 데이터를 수신하는 단계, 및 가속 재생 레이트에서 재생을 시뮬레이션하기 위해 정상 재생 속도보다 더 빠른 재생 레이 트로 버퍼로부터 상기 저장된 스트리밍 비디오 데이터를 플레이하는 단계를 더 동반한다. 이러한 방법은 또한 미리 결정된 비디오 클립을 버퍼의 저장된 스트리밍 비디오 데이터 사이에 삽입하는 단계를 포함할 수 있다.
하기의 상세한 설명에서는, 본 발명을 구현하는 다양한 실시예들과 방식들을 도시하는 도면을 참조한다. 다른 실시예들도 활용될 수 있고 구조적 및 기능적 변경들이 본 발명의 범위를 벗어나지 않고서 이루어질 수 있음은 자명하다.
본 발명의 특정 실시예들에 대한 상세한 설명을 제공하기 위해, 도 1은 종래의 주문형 비디오(VoD) 서비스를 구현하기 위한 시스템을 나타낸다. 인프라구조 기반 미디어 스트리밍, 또는 중앙집중적 주문형 비디오(VoD) 솔루션은 일반적으로 하나 이상의 미디어 서버들과 일련의 클라이언트들, 보통 셋톱박스들(STB들)을 포함한다. 미디어 서버들은 클라이언트들로의 미디어의 주문형 스트리밍을 책임진다. 일부 경우, 이러한 VoD 시스템은 캐싱 프록시들을 더 포함할 수 있다. 도 1에 도시된 바와 같이, 서비스 공급자 VoD 시스템(100)은 관리 인프라구조(100), 미디어 서버(120), 및 콘텐트 라이브러리(130)를 포함한다. 셋톱박스(STB)로서 여기에 도시된 클라이언트 장치(140)는 서비스 공급자(100)와 통신 가능하게 연결되고, 주문형 비디오 서비스의 일부로서 콘텐트 라이브러리(130)로부터 다운로딩된 콘텐트 또는 스트리밍된 콘텐트를 수신한다. 관리 인프라구조(110)는 클라이언트 장치(140)로부터의 다운로딩 및 스트리밍 요청들을 다루고 서비스 공급자(100)와 클라이언트 장치(140) 사이의 제어 및 데이터 접속들을 관리한다. 예를 들면, 미디어 서버(120)는 요청된 미디어의 주문형 스트리밍을 콘텐트 라이브러리(130)로부터 클라이언트 장치(140)로 관리 인프라구조(110)를 통해 수행한다.
앞서 언급된 바와 같이, 도 1에 도시된 바와 같은 종래의 VoD 솔루션들은 통상적으로 영화 제목들의 적당한 선택 목록을 제공하고 24 시간과 같은 제한된 시간 기간 동안에 프리미엄 콘텐트만을 캐싱할 수 있다. 그러나, VoD 시스템에 대한 가입자들이 정확하게 그들이 보길 원하는 콘텐트를 그들이 원하는 시간에 볼 권한이 있을 경우(즉, 주문형), VoD 접근법은 더욱 빈번하게 사용될 가능성이 있다. 이는 고객 만족도를 높이고, 서비스 공급자 입장에서 수익을 높이고 천을 감소시킨다.
셋톱박스(STB)는 STB의 개인용 비디오 레코딩기(PVR) 특징을 이용하여 TV 프로그램들을 플레이 및 레코딩하는 것과 같은 서비스들을 위해 텔레비전 세트가 서비스 공급자의 네트워크에 대한 사용자 인터페이스가 될 수 있도록 하는 장치이다. 본 발명의 한 실시예에 따르면, 모든 가입자의 STB는 서비스 공급자 관리 피어-투-피어(P2P) 네트워크에 접속하고, 따라서 서비스 공급자의 네트워크로의 임의의 가입자가 상기 가입자의 STB 상으로 다운로딩 및/또는 레코딩된 비디오 콘텐트를 다른 이웃의 가입자들에게 스트리밍하는 것이 가능하다.
예를 들면, 임의의 가입자는 자신의 STB에 서비스 공급자에 의해 공급되는 임의의 TV 프로그램 또는 다른 콘텐트를 다운로딩 및/또는 레코딩할 수 있다. 콘텐트는 다른 가입자들에 이용 가능하게 되기 위하여 서비스 공급자의 P2P 네트워크에 자동으로 알려지거나 등록될 수 있다. 네트워크의 임의의 가입자는 상기 콘텐트를 검색할 수 있고 그것을 볼 수 있다. 이러한 시스템, 소위 V2P는 STB들에 의해 형성되는 P2P 네트워크를 위한 다중-소스 비디오 스트리밍 시스템이다. 즉, V2P는 다중 STB들로부터 고품질의 장애복구형 비디오 스트리밍을 제공한다.
이를 위해, 도 2는 본 발명의 한 실시예에 따른 공동체 VoD 시스템을 생성하기 위해 피어-투-피어 네트워크에 의해 공급되는 추가 콘텐트를 이용한 종래의 주문형 비디오(VoD) 서비스를 증대시키기 위한 시스템을 도시한다. 도시된 바와 같이, 서비스 공급자 VoD 시스템(200)은 관리 인프라구조(210), 미디어 서버(220), 콘텐트 라이브러리(230), 및 서비스 공급자 관리 피어-투-피어(P2P) 네트워크(250)를 포함한다. P2P 네트워크(250)는 셋톱박스들(STB들)로서 여기에 도시된, 피어 장치들(260)로서 하기에 식별되는 피어 장치들(260a, 260b, 260c), 및 증대된 콘텐트 라이브러리(270)로서 하기에 식별되는 증대된 콘텐트 라이브러리(270a, 270b)를 더 포함한다. 증대된 콘텐트 라이브러리(270)는 피어 장치들(260) 상에 저장된 다운로딩 및/또는 레코딩된 콘텐트를 포함한다. 예를 들면, 피어 장치들(260)은 콘텐트 라이브러리(230)로부터 관리 인프라구조(210)를 통해 스트리밍된 미디어를 다운로딩 및/또는 레코딩 그리고 저장할 수 있다. P2P 네트워크(250)에 접속된 임의의 가입자에 의해 레코딩된 증대된 콘텐트를 갖는 VoD 시스템의 콘텐트 라이브러리(230)를 증대시키는 것은 콘텐트에 대한 선택성을 증가시키고 공동체 VoD 시스템을 생성한다.
특정 실시예에 따르면, 셋톱박스(STB)로서 여기에 도시된 클라이언트 장치(240)는 서비스 공급자 VoD 시스템(200)에 통신 가능하게 연결되고 콘텐트 라이브러리(230) 또는 증대된 콘텐트 라이브러리(270)로부터 주문형 비디오 서비스의 일부로서 다운로딩된 콘텐트 또는 스트리밍된 콘텐트를 수신한다. 관리 인프라구 조(210)는 클라이언트 장치(240)로부터의 다운로딩 및 스트리밍 요청들을 다루고, 서비스 공급자 VoD 네트워크(200)와 클라이언트 장치(240) 사이의 제어 및 데이터 접속들을 관리한다. 예를 들면, 미디어 서버(220)는 콘텐트 라이브러리(230)로부터 클라이언트 장치(240)로 관리 인프라구조(210)를 통해 요청된 미디어의 주문형 스트리밍을 수행한다. 또한, 클라이언트 장치(240)는 요청된 미디어의 주문형 스트리밍을 증대된 클라이언트 라이브러리(270)로부터 요청할 수 있다. P2P 네트워크(250)는 상기 요청들을 다루고, 요청된 미디어의 주문형 스트리밍을 증대된 콘텐트 라이브러리(250)로부터 클라이언트 장치(240)로 수행하기 위해 P2P 네트워크(250)와 클라이언트 장치(240) 사이에 제어 및 데이터 접속들을 관리한다.
V2P 솔루션은 도 1에 도시된 바와 같은 중앙집중화된 VoD 솔루션으로 교체될 것을 필수적으로 의미하지는 않으나, 도 2에 도시된 바와 같이 이러한 솔루션에 대한 보완적 분산 증대로서 동작할 수 있다. 동반해서, VoD 및 V2P는 큰 부피의 콘텐트를 가입자들에게 가져다줄 수 있다. 중앙집중화된 VoD는 가장 대중적인 콘텐트 프로그램들의 다수로서 계속 동작할 수 있는 반면에, V2P는 소위 "롱 테일" 시장을 제공하기에 더 적합하다.
도 3은 롱 테일을 도시하는 그래프이다. 도 3에 따르면, 커다란 부피의 덜 대중적인 아이템들의 통합이 조직을 위한 상당한 분량의 이익에 추가될 수 있다. 많은 기업체들은 더 작은 독자 그룹들에만 관심 있는 콘텐트 아이템들을 매매함으로써 이득을 벌 수 있다. 이러한 덜 대중적인 콘텐트 아이템들은 이러한 온라인 비지니스들을 위한 롱 테일을 형성할 수 있다. 롱 테일로부터의 콘텐트 아이템들 을 제공하는 것은 고객들이 그들이 사전에 발견하지 못했던 콘텐트를 발견하여 구입하고 참조할 수 있도록 한다. 동일한 방식으로, V2P는 상기 덜 대중적인 쇼들에 대한 반복적인 보기로부터 수익을 내는 서비스 공급자들과 콘텐트 소유자들 모두를 위해 강력한 비즈니스 모델을 가능하게 할 주문형 비디오 시장을 위한 롱 테일 현상에 영향을 준다. 부가하여, V2P는 가입자들에게 그들의 STB 자원들을 공유하는 것에 대해 보상한다.
V2P 기술은 다수의 기술적 요구사항들을 해결하는데, 종래의 스트리밍 솔루션들을 해결할 수 없다 : 상기 종래의 스트리밍 솔루션들은 제한된 업스트림 대역폭과 장애복구성을 갖는다.
현재, DSL 및 케이블 모뎀은 가정용의 두 개의 널리 퍼진 광대역 기술들이다. 두 기술 모두는 비대칭 대역폭 특성을 갖는다. 즉, 다운로딩 대역폭이 업로딩 대역폭보다 더 크다. 각각의 STB를 위해 업로딩 대역폭 제약을 극복하기 위하여, V2P는 스트리밍 소스들로서 다중 STB들을 사용하고, 수신 STB는 상기 다중 공급자들로부터의 스트리밍 세션을 조정한다. 심지어 업로딩 및 다운로딩 대역폭이 모두 증가하므로, V2P는 대칭적 및 비대칭적 대역폭 환경들 모두에서 고품질의 장애복구형 스트리밍을 제공하기 위해 여전히 사용될 수 있다.
네트워크들과 장치들은 여전히 완벽하지 않으며 그러한 것으로서 장애복구 메커니즘들이 반대 조건들을 만족시키도록 설계될 필요가 있다. V2P는 xDSL 또는 케이블 모뎀 접속들을 통해 스트리밍하고 네트워크 그 자체는 신뢰할 수 없으므로, 네트워크 변동들에 대한 장애복구형 스트리밍이 V2P에게 이슈가 된다. 임의의 시 점에서, STB들이 파워 오프될 수 있거나 또는 콘텐트가 스트리밍 세션 동안에 삭제될 수 있다. 지속적이고 평탄한 스트리밍을 공급하기 위해, V2P는 매우 강력한 결함 복구 메커니즘을 요구한다. 특정 실시예들에 따르면, V2P는 장치들 및 링크의 비신뢰성을 해결하고 고품질 스트리밍을 제공하기 위하여 지능형 피어 선택, 순방향 에러 정정(FEC) 코드들, 동적 레이트 분포, 동적 버퍼 관리, 및 네트워크 단층촬영 기반 접속 감시와 같은 메커니즘들의 조합을 사용한다.
도 4는 VoD-투-피어(V2P) 시스템의 실시예를 도시한다. 도시된 바와 같이, V2P 시스템(400)은 수신기(410), 송신기들(420)로서 하기에 식별되는 송신기들(420a, 420b, 420c), 자원 관리 프레임워크(RMF)(430), 인센티브 관리자(440)를 포함한다. 또한, 도 4에 도시된 바와 같이 서비스 공급자(450)와 콘텐트 소유자들(460)을 포함한다. 셋톱박스(STB)로서 여기에 도시된 수신기(410)는 송신기들(420)로부터 스트리밍 미디어를 수신하는 수신 피어이다. 셋톱박스들(STB들)로서 여기에 도시된 송신기들(420)은 스트리밍 미디어의 송신 피어들 또는 공급자들이다. 수신기(410)가 다른 시간에는 송신 피어로서 동작할 수 있음은 자명하다. 유사하게, 송신기들(420) 중 임의의 송신기는 다른 시간에 수신 피어로서 동작할 수 있다. 자원 관리 프레임워크(RMF)(430)는 서비스 공급자에 의해 관리되는 관리 인프라구조이며, 상기 관리 인프라구조는 요청된 미디어의 주문형 스트리밍을 수행하기 위해 수신기(410)와 송신기들(420) 사이에 제어 및 데이터 접속들을 관리한다. RMF(430)는 또한 다운로딩 및/또는 레코딩되어 송신기들(420) 상에 저장된 미디어 파일들과 같은 스트리밍 가능 콘텐트를 위해 수신기(410)가 V2P 시스템(400) 을 검색할 수 있도록 한다. RMF(430)는 또한 수신기(410)가 콘텐트 권고안들을 수신할 수 있도록 한다. 인센티브 관리자(440)는 스트리밍 미디어로서 특정한 콘텐트를 수신하는 수신기에 요금청구하고 스트리밍 미디어의 공급자들에게 보상하고 콘텐트 각각의 스트리밍을 위한 서비스 공급자(450) 및 콘텐트 소유자들(460)에게 보상하는 것을 포함하여 V2P 시스템을 이용하는 것의 회계적 측면을 관리한다.
도 4에 도시된 V2P 시스템은 다중-소스 스트리밍 시스템이다. 이는 각각의 스트리밍 세션이 하나의 수신기와 일련의 송신기들 또는 공급자들을 포함할 것임을 의미한다. 한 가지 기본 가정은 각각의 공급자가 소정의 콘텐트 아이템에 해당하는 미디어 파일의 동일한 복사본을 갖는다는 것이다. 이 경우, 공급자들의 STB들은 동기화되지 않으며 미디어 파일의 그들의 복사본은 완전히 동일하지는 않으나, 특정 실시예에 따른 V2P는 다중 공급자들로부터의 스트리밍 미디어를 동기화하기 위한 메커니즘을 제공한다. 상기 동기화 메커니즘은 하기에서 상세히 기술된다. V2P는 미디어 파일을 일련의 작은 데이터 블록들(예컨대, 1-2초 동안 플레이하기에 적합한 데이터 블록들)로 분할하고, 각각의 소스는 동일한 블록의 프랙션을 공급한다. 그러므로, 모든 공급자들이 파일의 각각의 블록에 기여하게 된다.
예컨대, 특정 실시예에 따르면, 미디어 파일의 각각의 블록은 패킷 손실을 감수하기 위해 순방향 오류 정정(FEC) 코드로 인코딩될 수 있다. FEC 인코딩 방식은 두 개의 파라미터들(n, k)로 표현되고, 데이터 블록당 n개의 패킷들이 k개 대신에 송신되며 여기서 n>k이다. n개의 패킷들의 범위를 넘어서는 임의의 k는 블록을 재구성할 수 있다. 그러므로, 스트리밍 세션은 블록당 (n-k)개의 패킷들을 잃어버 리는 것까지 감수할 수 있다. FEC 인코딩 오버헤드 비율 α은 하기와 같이 정의된다 :
Figure 112008017894045-PCT00001
.
FEC 인코딩 오버헤드 비율 및 인코딩 방식은 스트리밍 세션을 위한 패킷 손실 허용치 및 스트르밍 레이트에 영향을 준다. 따라서, FEC 인코딩 오버헤드 비율은 스트리밍 세션의 특정한 인코딩 방식을 위해 설정될 수 있다. 한 실시예에서, FEC 인코딩 오버헤드 비율은 공급자들에 의해 사용될 인코딩 파라미터들을 설정하는데 사용되고, 다른 실시예에서는 특정한 인코딩 파라미터들에 적합한 FEC-인코딩된 블록의 데이터를 선택하도록 공급자들에 시그널링하는데 사용될 수 있다. 예시로서, 도 5는 본 발명의 한 실시예에 따른 V2P 시스템을 이용하여 스트리밍 세션을 수행하기 위한 방법을 도시하는 흐름도이다. 스트리밍 세션은 특정한 미디어 파일과 같은 특정한 콘텐트를 위한 스트리밍 요청을 생성하는 수신기에 의해 개시된다.
단계 510에서, 수신기는 요청된 미디어 파일을 공급할 수 있는 일련의 후보 공급자들을 획득한다. 후보 공급자들은 요청된 미디어 파일의 복사본을 갖는 피어들이다. 예컨대, 수신기는 V2P 시스템 상에 있는 특정한 콘텐트를 검색하기 위해 검색엔진을 사용할 수 있고 콘텐트의 일련의 후보 공급자들을 획득할 수 있다.
단계 520에서, 수신기는 상기 후보 공급자들의 집합으로부터 일련의 활성 공급자들 및 일련의 백업 공급자들을 선택한다. 활성 공급자들은 요청된 미디어 파일을 수신기에 스트리밍하기 위해 스트리밍 세션 동안에 동시에 동작하는 피어들이 다. 백업 공급자들은 상기 스트리밍 세션 동안에 하나 이상의 활성 공급자들이 네트워크 변동, 장치 결함, 또는 콘텐트 변경이나 콘텐트 삭제를 경험하는 경우 보조할 수 있는 피어들이다. 수신기는 예컨대 피어의 상태, 이용 가능 업링크 대역폭, 프로세싱 파워, 신뢰성 히스토리, 경로 지연, 및 경로 패킷 손실 비율과 공평성 메트릭스들과 같은 다양한 기준에 기초하여 피어들을 선택할 수 있다.
단계 530에서, 수신기는 각각의 활성 공급자와 관련되어 접속을 개시한다. 수신기는 다수의 공지된 기술들 중 임의의 하나를 사용할 수 있다. 예컨대, 수신기는 전송 제어 프로토콜(TCP)을 사용하여 제어 패킷들을 송신할 수 있다.
단계 540에서, 각각의 활성 공급자는 수신기와의 데이터 접속을 개방한다. 수신기는 다수의 공지된 기술들 중 임의의 하나를 사용하여 공급자들로부터 스트리밍 데이터를 수신할 수 있다. 예컨대, 수신기는 사용자 다이어그램 프로토콜(UDP) 기반 방식을 이용하여 스트리밍 데이터를 수신할 수 있다.
단계 550에서, 수신기는 각각의 활성 공급자에 FEC-인코딩된 블록의 적어도 프랙션을 할당된 데이터 레이트로 송신하도록 시그널링함으로써 각각의 활성 공급자로부터 FEC-인코딩된 블록의 프랙션을 요청한다. 할당된 데이터 레이트들의 통합은 목표 스트리밍 레이트를 나타낸다. 각각의 활성 공급자는 특정한 FEC 인코딩 오버헤드 비율을 갖는 특정한 FEC 인코딩 방식에 의해 FEC-인코딩이 수행된 FEC-인코딩된 블록의 일부를 송신한다. 각각의 활성 공급자는 FEC-인코딩된 블록의 적어도 프랙션을 송신하라는 수신기로부터의 신호를 수신한 응답으로 특정한 FEC 인코딩 오버헤드 비율 α을 이용하여 특정한 블록을 FEC-인코딩할 수 있다. 대안적으 로, 각각의 공급자는 하나 이상의 FEC 인코딩 오버헤드 비율들을 이용하여 임의의 블록을 사전 인코딩할 수 있고, 수신기로부터의 신호를 수신한 응답으로 사전 인코딩된 블록의 일부분을 선택할 수 있다.
단계 560에서, 수신기는 FEC-인코딩된 블록의 일부분들 또는 세그먼트들을 수신한다. 네트워크 변동들, 장치 결함들, 및 콘텐트의 변경이나 삭제로 인해, 수신기는 FEC-인코딩된 블록의 요청된 프랙션들의 모두를 실제로 수신할 수는 없다. 수신기가 수신하는 일부분들 또는 프랙션들은 수신기가 단계 550에서 요청했던 FEC-인코딩된 블록의 프랙션들에 해당한다. 실제로 수신된 일부분들 또는 세그먼트들에 기초하여, 수신기는 실제 수신된 데이터 레이트를 결정하기 위해 각각의 활성 공급자와의 접속 성능을 수동적으로 감시한다. 실제 수신된 데이터 레이트들의 통합은 현재 스트리밍 레이트를 나타낸다.
단계 570에서, 인코딩된 블록의 수신된 일부분들 또는 세그먼트들에 기초해 블록을 디코딩하고 상기 디코딩된 블록을 버퍼에 저장한다. 여기서, 블록을 디코딩하는 것은 수신된 일부분들 또는 세그먼트들로부터 FEC-인코딩된 블록을 재구성하고 상기 재구성된 FEC-인코딩된 블록을 FEC 인코딩하고 활용된 특정한 비디오 인코딩 방식(예컨대, MPEG)에 따라 FEC-인코딩된 블록을 추가 디코딩하는 과정을 포함함이 자명하다. 수신기는 현재 플레이 레이트로 플레이하기 위해 버퍼로부터 데이터를 소비한다.
단계 580에서, 수신기는 버퍼의 상태를 검사한다. 버퍼 상태는 예컨대 버퍼의 현재 사이즈, 현재 플레이 레이트, 및 현재 스트리밍 레이트를 감시함으로써 평 가될 수 있다. 상기 메트릭스들에 따라, 버퍼는 세 가지 구역들 중 하나에서 동작할 수 있다 : 가속 구역, 컴포트 구역, 또는 감속 구역. 버퍼가 예컨대 컴포트 구역에서 동작중일 경우, 수신기는 단계 582b로 진행하여 스트리밍 세션을 지속한다. 버퍼가 가속 구역 또는 감속 구역에서 동작중일 경우, 수신기는 단계 582a로 진행한다.
단계 582a에서, 수신기는 버퍼 오버플로우 또는 버퍼 언더플로우를 방지하기 위해 필요한 바와 같이 스트리밍 레이트, 활성 집합 내 공급자들, 인코딩 오버헤드 비율 중에서 하나 이상을 조절한다. 임의의 공급자들이 활성 공급자들의 집합에 추가되는 경우, 단계 530 및 540이 수행된다.
단계 582b에서, 수신기는 스트리밍 세션이 종료되는지의 여부를 결정하기 위해 검사를 수행한다. 스트리밍 세션이 종료되면, 프로세스는 단계 590로 종료된다. 스트리밍 세션이 종료되지 않은 경우, 단계 550으로 재진행된다.
그러므로, V2P에서 스트리밍 세션의 예시는 하기의 단계들을 포함한다 :
1. 초기에, 수신기 피어 P0는 P2P 네트워크의 검색엔진으로부터 일련의 후보 공급자들을 획득한다.
2. 후보 집합으로부터, P0는 활성 공급자들로서 일련의 피어들 P1, P2,...PN을 선택하고 백업 공급자들로서 P1, P2,...PM을 선택한다.
3. P0는 활성 집합 내 각각의 공급자에 대한 제어 접속을 개시함으로써 스트리밍 세션을 시작한다.
4. 제어 접속 수신 후, 각각의 공급자 Pi는 데이터 접속을 수신기 P0에 개방 한다.
5. P0는 특정 α로 인코딩된 특정한 블록의 프랙션을 송신하도록 주기적으로 각각의 공급자에 시그널링한다.
6. 각각의 공급자 Pi는 파일 블록을 인코딩하고 할당된 레이트에 따라 파일의 프랙션을 송신한다.
7. 각각의 블록에 대해 충분한 데이터를 수신한 후, P0는 전체 블록을 디코딩하고 버퍼에 저장한다. 수신기 측 플레이어는 버퍼로부터 데이터를 소비한다.
P0는, 플레이어에 공급하기 위해 버퍼에 항상 데이터가 있다는 것과 버퍼 오버플로우를 방지하기 위해 버퍼가 완전히 채워지지 않는다는 것을 보장하기 위하여 네트워크 변화들 및 장치 결함들에 반응한다. 필요하다면, P0는 하나 이상의 백업 피어들을 활성 집합에 추가하고 새롭게 추가된 임의의 피어들을 위해 단계 3-4를 반복한다.
P0는 세션이 종료되기 전까지 단계 5-7을 반복한다.
도 6은 V2P 시스템의 블록도를 나타내고, 본 발명의 한 실시예에 따른 수신기를 추가로 도시한다. 본 실시예에서, V2P 시스템(600)은 수신기(610), 송신기들(620), 자원 관리 프레임워크(RMF)(630), 및 인센티브 관리자(640)를 포함한다. 수신기(610)는 스트리밍 데이터를 수신하기 위해 송신기들(620)과 상호작용한다. 수신기(610)는 사용자가 P2P 네트워크를 검색할 수 있도록 RMF(630)와 상호작용한다. 수신기(610)는 사용자들에 대한 요금청구 및 적합한 엔티티에 대한 보상 제공을 담당하는 인센티브 관리자(640)와 상호작용한다.
도 6에 따르면, 수신기(610)는 피어 선택 모듈(6110), 스트림 관리 모듈(6120), 양방향성 관리 모듈(플레이어 모듈(6130)로서 여기에 식별됨), 품질 적응 모듈(6140), 콘텐트 탐색 및 콘텐트 권고 모듈(6150), 질의 모듈(6160), 및 데이터 관리 모듈(6170)을 더 포함한다.
간략하게, 피어 선택 모듈(6110)은 활성 피어 및 백업 피어를 선택하기 위해 또는 특정한 콘텐트의 스트리밍 데이터의 공급자들을 선택하기 위해 피어 선택 프로세스를 사용한다. 스트림 관리 모듈(6120)은 활성 공급자들과의 제어 및 데이터 접속들을 관리하고, 활성 공급자들로부터 스트리밍 데이터를 수신하고, 스트리밍 데이터를 디코딩하여 버퍼에 저장한다. 상기 스트림 관리 모듈(6120)은 또한 버퍼를 관리하고, 스트리밍 레이트를 각각의 활성 공급자에 동적으로 분포시키고, 수신기 및 각각의 활성 공급자 사이의 접속들을 감시하고, 사용자로부터의 양방향 재생 요청들을 관리한다. 여기서 플레이어 모듈(6130)로서 식별되는 양방향성 관리 모듈(6130)은 양방향 재생 제어들을 제공하고, 스트림 관리 모듈(6120)과 상호작용하여 사용자가 스트리밍 세션 동안에 중지, 고속 감기, 고속 되감기를 할 수 있도록 한다. 품질 적응 모듈(6140)은 네트워크 변동, 활성 공급자 결함들, 및 콘텐트 변경 또는 콘텐트 삭제 발생시 고품질의 장애복구형 스트리밍을 제공하기 위해 스트림 관리 모듈(6120) 그리고 피어 선택 모듈(6110)과 상호작용한다. 일부 경우, 품질 적응 모듈(6140)은 이러한 상황들을 극복하기 위하여 활성 공급자들이 스트리밍 데이터를 다시 공급하도록 요청할 수 있다.
특정 실시예들에 따르면, 콘텐트 탐색 및 콘텐트 권고 모듈(6150)은 사용자 가 특정한 콘텐트를 검색할 수 있도록 RMF(630)와 상호작용하고, 또한 사용자에게 콘텐트 권고안들을 제공한다. 질의 모듈(6160)은 원격 피어들에 관한 정보를 획득하기 위하여 RMF(630) 그리고 피어 선택 모듈(6110)과 상호작용한다. 데이터 관리 모듈(6170)은 수신기의 로컬 저장소 상에서 수신된 스트리밍 데이터의 저장을 관리한다. 상기 모듈들의 각각이 이제 기술된다.
피어 선택 모듈(6110)은 일련의 활성 공급자들과 일련의 백업 공급자들을 결정하기 위해 피어 선택 프로세스를 사용한다. 활성 공급자들은 스트리밍 세션의 콘텐트를 공급한다. 백업 피어들은 임의의 STB의 결함 동안에 및 네트워크 변동 동안에 현재 활성 피어들이 목표 스트리밍 레이트를 제공할 수 없을 때 활성 상태가 될 수 있다. 백업 피어들은 또한 하나 이상의 활성 피어들이 스트리밍 세션 동안에 콘텐트를 삭제하거나 콘텐트 변경을 경험하는 경우 활성 상태가 될 수 있다.
상기 실시예에서, 피어 선택은 두 단계들로 이루어진다. 제1 단계에서, RMF(630)는 스트림할 콘텐트를 갖는 일련의 후보 공급자들로 되돌아간다. 통상적인 후보 집합의 사이즈는 15-20 피어들이다. 미디어 파일의 더욱 많은 복사본이 네트워크에서 발견되는 경우, 상기 선택 프로세스는 제한된 자원들을 갖는 피어들을 탈락시킨다. RMF(630)로부터 후보 집합을 얻은 후, 피어 선택 모듈(6110)은 다양한 기준에 기초하여 활성 집합 및 백업 집합을 결정한다. 예컨대, 하기의 피어 상태, 대역폭, 장치 명세들, 신뢰성, 지연, 손실률, 및 공평성 기준이 사용될 수 있다 :
1. 피어 상태(S)
피어의 상태는 피어 선택 동안에 고려될 수 있다. 피어가 스트림 수신중일 경우, 업링크가 사용되지 않을 수도 있다. 그러나, 수신중인 피어가 다른 스트리밍 세션을 제공하기로 결정하고 업링크가 상기 서비스를 위해 완전히 사용되는 경우, 수신중인 스트리밍 품질이 떨어질 것인데, 그 이유는 시그널링 프로토콜이 업링크의 작은 부분을 사용하기 때문이다. 그러므로, 유휴 피어를 공급자로서 선택하는 것이 유용하다. 피어의 SERVING 또는 RECEIVING 상태 동안에, 피어 선택 모듈은 피어 i를 위해 Si=ai를 할당하는데, 여기서 a는 이용 가능한 자원들에 기초하여 계산된다. 일반적으로, 피어가 IDLE일 때 Si=1이고, 제공할 자원들을 갖는다.
2. 공급자의 이용 가능 업링크 대역폭(B)
스트리밍 세션을 위해 너무 많거나 너무 적은 피어들을 사용하는 것은 유용하지 못하다. 너무 많은 공급자들이 사용될 경우, 수신기는 많은 접속들을 유지해야만 한다. 하나 이상의 공급자들이 사용되는 경우, 한 공급자의 결함이 스트리밍 품질에 큰 영향을 끼칠 것이다. 스트리밍 레이트가 R0일 경우, 피어 i가 R0/3 이상 공급할 수 있다면 피어 선택 모듈은 Bi=1을 할당하고 피어 i가 RO/4 이상 공급할 수 있다면 Bi=0.75를 할당하는 등이다.
3. CPU, 메모리 스펙들(C)
STB가 합리적인 CPU 및 메모리 스펙들을 갖는다면, 피어 선택 모듈은 피어를 수용할 수 있다. 피어 선택 모듈은 피어 상태가 SERVING 또는 RECEIVING이 아니라 면 피어 i가 CPU 400MHz 또는 그 이상을 갖고 RAM이 128MB 또는 그 이상일 경우 Ci=1을 할당한다. STB가 스트리밍 세션에 참여하기에 충분한 자원들을 갖지 못할 경우 Ci=0을 할당한다.
4. 신뢰성 히스토리(H)
신뢰성 히스토리(H)는 임의의 시각에 파워 오프될 수 있는 STB의 신뢰성을 나타낸다. STB의 콘텐트는 스트리밍 세션 동안에 삭제될 수 있다. 그러므로, STB의 신뢰성 히스토리는 장애복구형 스트리밍을 공급하는데 있어서 상당한 영향력을 갖는다. 피어 선택 모듈은 신뢰성 메트릭에 0 내지 1의 값을 할당한다.
5. 공급자로부터 수신기까지의 경로의 지연(D)
지연, 또는 일방향 지연은 공급자가 수신기로부터 얼마나 멀리 떨어져 있는지를 결정하는데 이용될 수 있다. 공급자가 매우 우수한 자원들을 갖고 있으나 피어가 세계의 외부 측에 위치하고 있을 경우에도, 상기 공급자는 일정한 레이트로 스트리밍을 공급할 수 없다. 수신기의 동일한 서브넷 또는 수신기가 있는 동일한 지역적 위치에 공급자들이 존재한다면, 일반적으로 지연은 매우 낮으며 상기 공급자들은 수신기로부터 멀리 떨어져 있는 것보다 선호될 것이다. 피어 선택 모듈은 피어 i가 50ms 라운드 트립 타임(RTT) 미만으로 떨어져 있을 경우 Di=1을 할당하고, 피어 i가 100ms RTT 미만으로 떨어져 있을 경우 Di=0.5를 할당하며 피어 i가 200ms 초과로 떨어져 있을 경우 Di=0을 할당한다.
6. 경로의 패킷 손실률(L)
패킷 손실률은 네트워크의 신뢰성을 나타낸다. 손실률의 범위는 0<L<1이다.
7. 공평성(F)
피어 선택 메커니즘의 주요 관심은 스트리밍의 품질이고, 그러므로 피어 선택 모듈은 수신기에 적합한 스트리밍 세션을 위해 최선의 피어들 집합을 선택한다. 그러나, 더욱 많은 피어들이 유사한 품질(그들의 자원들, 신뢰성, 및 다른 피어 선택 기준에 있어서)로 이용 가능한 경우, 우선순위는 다른 것들과 비교하여 종종 선택되지 않은 피어들에게 주어질 수 있다.
상기 기준에 기초하여, 피어 선택 모듈은 각각의 피어의 순위를 계산할 수 있다. Ri가 피어 i의 순위를 나타내는 경우, Ri는 하기와 같이 표현될 수 있다 :
Ri=CiSi(BiDi)Hi(1-Li).
피어 선택 프로세스는 그들의 순위에 기초하여 상위 N+M개의 피어들을 선택한다. 여러 피어들이 (N+M)번째 순위를 가질 경우, 피어 선택 프로세스는 낮은 공평성 인덱스(F)를 갖는 피어들을 선택하여, 각각의 가입자가 콘텐트 아이템들을 제공하고 시스템으로부터 보상받을 기회를 얻도록 한다.
도 7은 피어 선택 순위 방정식의 그래프이고, 피어의 순위가 사용된 피어 선택 기준에 따라 어떻게 변화될 수 있는지를 도시한다. 예컨대, 도 7은 고대역폭 피어들(예컨대, 384Kbps 또는 그 이상의 업링크 대역폭) 및 저대역폭 피어들(예컨대, 128Kbps 또는 그 이상의 업링크 대역폭)의 순위에 대한 지연 및 손실 메트릭스 들을 도시한다. 도시된 바와 같이, 수신기로부터 멀리 떨어진 고대역폭 피어는 수신기에 근접해 위치한 저대역폭 피어에 비교하여 더 낮은 순위를 갖는다.
네트워크 내 콘텐트의 검색 동안에, 자원 관리 프레임워크(RMF)(630)(도 6)는 콘텐트를 갖고 있는 긴 목록의 피어들로 돌아갈 수 있다. 피어 선택 알고리즘을 검색 결과들의 전체 목록에 적용하는 것은 실행될 수 없을 수 있다. 예를 들면, 서비스 제공으로 바쁜 피어들 또는 낮은 업링크 용량들을 갖는 피어들 또는 지역적 위치에 있어서 멀리 떨어진 피어들을 폐기함으로써 초기 목록을 필터링하는 것이 효율적일 수 있다. 필터링된 목록으로부터, 일련의 즉 15-20 피어들이 피어 선택 알고리즘을 수행하기 위해 사용될 수 있고 선택 시퀀스가 업링크 용량 및 지역적 위치들에 기초할 수 있다. 피어 선택에 필요한 조치들은 실제 미디어 데이터의 초기 버퍼링 시간 동안에 수행될 수 있다. 예컨대, 첫 10초 동안에, 각각의 피어는 공급자의 품질을 결정하기 위해 미디어 파일의 일부를 줄 수 있다. 하기의 표 1은 피어 선택에 사용되는 부호들 및 그 의미와 통상적인 값을 나타낸다.
Figure 112008017894045-PCT00002
얼마나 많은 피어들이 스트리밍 세션에 요구되는지를 결정하기 위하여, 피어 선택 모듈은 하기의 추정을 사용할 수 있다 :
통합 스트리밍 레이트,
Figure 112008017894045-PCT00003
여기서, 목표 스트리밍 레이트=RO
활성 피어들의 수=N
피어 i에 의해 제공된 레이트=R0 i
피어 i로부터의 초기 스트리밍 레이트, Ri=βR0 i(β는 용량 활용률임, 0<β
Figure 112008017894045-PCT00004
1이며, 따라서 피어 i가 100% 용량 활용률 미만으로 동작함)
FEC 오버헤드=α
FEC를 이용한 패킷 손실 허용치=α/(1+α).
예시와 같이, 스트리밍 레이트가 α=0.20 FEC에서 1.1Mbps일 경우, 요구되는 스트리밍 레이트는 1.32Mbps이다. 각각의 피어가 업링크 스트리밍 대역폭 R0 i=256Kbps을 갖는다고 하자. β=0.8일 때 Ri=248이다. 그러므로, N=7이고, 피어 선택 모듈은 그들의 출력 대역폭에 기초하여 5-7 활성 피어들을 선택할 수 있다.
도 6을 다시 참조하면서 도 8을 참조하면, 특정 실시예에 따른 스트림 관리 모듈(6120)이 기술된다. 도 8은 V2P 수신기의 블록도이고, 본 발명의 한 실시예에 따른 스트림 관리 모듈의 세부요소들을 포함한다. 도 8에 따르면, 수신기(810)는 스트림 관리 모듈(8120)과 플레이어 모듈(8130)을 포함한다. 특정 실시예에 따르면, 스트림 관리 모듈(8120)은 스트림 모듈(8120), 수신 데이터 모듈(8122)(여기서 수신 데이터/FEC 디코딩 모듈(8122)로서 식별됨), 버퍼 관리 모듈(8123), 접속 감시 모듈(8124), 동적 레이트 분포 모듈(8125)을 포함한다.
동작중에, 스트림 모듈(8121)은 모든 활성 공급자들에 대한 제어 및 데이터 접속들을 개폐하고 제어 패킷들을 데이터 블록들의 어느 부분들을 어떤 데이터 레이트로 송신할 것인지를 지시한 활성 공급자들에 송신한다. 여기서 수신 데이터/FEC 디코딩 모듈(8122)로서 식별된 수신 데이터 모듈(8122)은 스트리밍 데이터를 활성 공급자들로부터 수신하고, 스트리밍 데이터를 디코딩하여 버퍼 관리 모듈(8123)에 전달한다. 버퍼 관리 모듈(8123)은 디코딩된 스트리밍 데이터를 수신 데이터 모듈(8122)로부터 수신하고, 사용자가 중지, 고속 감기 및 고속 되감기를 할 수 있도록 플레이어 모듈(8130)과 상호작용하고, 버퍼를 관리하고 버퍼가 완전히 채워지거나 완전히 비워지지 않음을 보장하기 위해 동적 레이트 분포 모듈(8125)과 상호작용한다. 접속 감시 모듈(8124)은 임의의 접속이 혼잡을 경험하고 있는지의 여부 또는 임의의 공급자가 결함인지의 여부를 결정하기 위해 활성 공급자들과 수신기 사이의 접속들을 감시하고, 네트워크 변동들 및 장치 결함들 발생시 동적 레이트 분포 모듈(8125)과 상호작용한다. 동적 레이트 분포 모듈(8125)은 버퍼 관리 모듈(8123)과 접속 감시 모듈(8124)과 상호작용하고, 네트워크 변동들 및 장치 결함들을 극복하기 위하여 스트리밍 레이트를 활성 공급자들에 동적으로 분포시킨다.
스트림 모듈(8121)은 모든 활성 공급자들에 대한 제어 및 데이터 접속들을 개폐한다. 스트림 모듈(8121)은 각각의 공급자에 하나의 제어 접속을 개방함으로써 활성 집합 내 모든 공급 피어들에 대한 통신을 설정하고, 이상적으로는 제어 접속이 신뢰할만한 것으로 예상된다. 예컨대, 전송 제어 프로토콜(TCP)이 사용될 수 있다. 스트림 모듈(8121)은 또한 수신기로의 데이터 경로를 설정하기 위한 제어 정보를 각각의 공급자에 시그널링한다. 스트림 모듈(8121)은 또한 데이터 블록들의 어느 부분들을, 활성 공급자들 중에서 스트리밍 레이트의 동적 레이트 분포를 구성하는 어느 데이터 레이트로 송신할 것인지를 지시한 활성 공급자들에 제어 패킷들을 송신한다. 상기 제어 패킷은 송신할 블록의 프랙션 및 데이터 레이트를 지시한다. 레이트 분포는 동적 레이트 분포 모듈(8125)로부터 도출된다.
여기서 수신 데이터/FEC 디코딩 모듈(8122)로서 식별되는 수신 데이터 모듈(8122)은 스트리밍 데이터를 활성 공급자들로부터 수신하고, 스트리밍 데이터를 디코딩하여 버퍼 관리 모듈(8123)에 전달한다. 수신 데이터 모듈(8122)은 모든 활성 공급자들로부터 데이터를 수신하기 위해 스트림 모듈(8121)에 의해 인스턴스화되고, 활성 공급자들은 상기 모듈로의 데이터 경로를 설정한다. 특정 실시예에 따르면, V2P가 데이터 스트리밍을 위해 사용자 다이어그램 프로토콜(UDP)과 같은 프로토콜을 사용할 수 있음을 알아두라. 대안적으로, 다른 실시예들에서 V2P는 다이어그램 혼잡 제어 프로토콜(DCCP) 또는 유사한 종류와 같은 임의의 UDP-기반 혼잡 제어 프로토콜을 사용할 수 있다. 스트리밍 데이터를 수신하자마자, 수신 데이터 모듈(8122)은 버퍼 관리 모듈(8123)에 넘기기 이전에 스트리밍 데이터를 디코딩한다. 블록을 디코딩하는 것은 수신된 부분들 또는 세그먼트들로부터 FEC-인코딩된 블록을 재구성하고, 상기 재구성된 FEC-인코딩된 블록을 FEC 디코딩하고, 및 활용된 특정한 비디오 인코딩 방식(예컨대, MPEG)에 따라 FEC-디코딩된 블록을 추가 디코딩하는 과정을 포함함이 자명하다.
버퍼 관리 모듈(8123)은 디코딩된 스트리밍 데이터를 수신 데이터 모듈(8122)로부터 수신하고, 사용자가 중지, 고속 감기, 및 고속 되감기 할 수 있도록 하기 위해 플레이어 모듈(8130)과 상호작용한다. 또한, 버퍼 관리 모듈(8123)은 버퍼를 관리하고 버퍼가 완전히 채워지거나 비워지지 않는 것을 보장하기 위해 동적 레이트 분포 모듈(8125)과 상호작용한다. 예컨대, 사용자가 스트리밍 세션을 중지시키기 위한 버튼을 누를 때, 버퍼 관리 모듈(8123)은 스트리밍 레이트를 조절하기 위해 동적 레이트 분포 모듈(8125)과 상호작용한다. 또한, 버퍼 관리 모듈은 미디어 데이터를 재생하기 위해 버퍼에 항상 데이터가 있다는 것을 보장한다. 예컨대, 재생은 초기 버퍼링 시간(예를 들면, 10초) 이후에 또는 짧은 광고 이후에 시작할 수 있다. 그런 이후에, 버퍼 관리 모듈(8123)은 현재 플레이 레이트 및 스트리밍 레이트를 이용하여 버퍼가 조만간 비워지지 않을 것인지 또는 오버플로우 되지 않을 것인지의 여부를 주기적으로 추정한다. 필요하다면, 스트리밍 레이트가 동적 레이트 분포 모듈(8125)에 의해 상응하게 조절될 수 있다.
도 9는 동적 버퍼 관리 기법이 본 발명의 한 실시예에 따라 어떻게 버퍼 오버플로우 또는 버퍼 언더플로우를 방지할 수 있는지에 관해 도시한 그래프이다. 본 그래프에서, B(t)는 버퍼에 저장될 수 있는 최대 누적 데이터를 나타내고, P(t)는 시간 t에서 플레이어에 의해 소비되는 누적 데이터를 나타낸다. 볼 수 있는 바와 같이, 일정 비트 레이트(CBR) 스트리밍 레이트는 쉽게 버퍼 오버플로우 또는 버퍼 언더플로우를 야기한다. 동적 버퍼 관리 알고리즘은 주기적으로 스트리밍 레이트를 조절함으로써 상기 시나리오들을 방지한다.
예컨대, 일정 비트 레이트(CBR) 스트리밍 레이트는 버퍼가 미래에 오버플로우 되지 않을 것인지 또는 비워지게 될 것인지를 보장할 수 없는데, 그 이유는 임의의 시각에 네트워크 조건이 변화하고 피어들이 결함을 일으킬 수 있기 때문이다. 그러므로, 다수의 파라미터들에 기초하여 스트리밍 레이트를 조절하는 동적 버퍼 관리 기법이 사용될 수 있으며, 본 예시에서 상기 파라미터들은 하기를 포함한다 :
a) 현재 버퍼 사이즈,
b) 현재 플레이 레이트, 및
c) 현재 스트리밍 레이트.
도 10은 본 발명의 한 실시예에 따른 버퍼 관리 방식을 도시한 그래프를 나타낸다. 도시된 바와 같이, 버퍼는 세 개의 부분들로 나뉠 수 있다 : 가속 구역(0<버퍼사이즈<Bmin), 컴포트 구역(Bmin<버퍼사이즈<Bmax), 감속 구역(버퍼사이즈>Bmax). Bmin Bmax의 값들은 시스템의 허용 가능한 버퍼 사이즈에 따른다. 예컨대, 시스템이 30초의 버퍼링을 갖는 경우, Bmin=10초 Bmax=20초가 옵션일 수 있다.스트리밍 레이트는 현재 스트리밍 레이트와 플레이 레이트에 의해 계산될 수 있는 버퍼의 변화 및 현재 버퍼 사이즈에 기초해 조절된다. 현재 버퍼 사이즈가 Bmin 미만이 되고 버퍼 사이즈의 변화가 부정적일 경우, 스트림 레이트가 증가한다. 스트림 레이트는 컴포트 구역에서 변화하지 않는다. 버퍼 사이즈가 Bmax 초과가 되면, 스트림 레이트가 감소한다.
현재 스트리밍 레이트를 조절하기 위해 상기 레이트를 계산하기 위하여, 버퍼 관리 모듈(8120)은 순간적인 스트리밍 레이트의 지수 가중 이동 평균(EWMA)을 사용한다. 일반적으로, EWMA는 하기의 방정식으로 표현된다 :
Figure 112008017894045-PCT00005
여기서, 0<w<1은 현재 순간적인 샘플 또는 최근 기록에 가중치를 두기 위해 일정하다.
예컨대, 버퍼 관리 모듈은 버퍼 사이즈의 각각의 구역에 대해 w를 정의한다. 버퍼가 가속 구역에서 동작중일 경우, 스트리밍 레이트를 조절하기 위해 순간적인 스트리밍 레이트가 해결되어야 한다. 그러므로, 더 높은 가중치가 상기 구역에서 w에 주어진다. 버퍼가 컴포트 구역에서 동작중일 경우, 감속 구역에서 스트리밍 레이트를 조절하기 위해 사용될 수 있는 평탄한 스트리밍 레이트를 계산하기 위해 더 낮은 가중치가 w에 주어진다. 감속 구역에서는, 스트리밍 레이트를 훨씬 적극적으로 감속시키기 위해 높은 가중치가 α에 주어진다.
도 8을 다시 참조하면, 접속 감시 모듈(8124)은 임의의 접속이 혼잡을 경험하고 있는지의 여부 또는 임의의 공급자가 결함 상태인지의 여부를 결정하기 위해 활성 공급자들과 수신기 사이의 접속들을 감시하고, 네트워크 변동들 및 장치 결함시 동적 레이트 분포 모듈(8125)과 상호작용한다. 접속 감시는 공급자로부터 수신기로의 임의의 데이터 경로가 혼잡을 경험하고 있는지의 여부 또는 임의의 피어가 결함 상태인지의 여부를 결정하기 위한 유용한 메커니즘이다. 예컨대, 수신기가 특정 시간 프레임 동안 소정의 피어로부터 어떠한 데이터도 수신하지 않을 경우, 상기 피어가 더 이상 살아있지 않은 것으로 가정된다.
네트워크 혼잡의 위치를 정확하게 집어내는 것은 상대적으로 어려울 수 있다. 네트워크 혼잡의 위치가 알려지면, 품질 적응 모듈(도 6의 아이템 6140)은 공급자와 수신기 사이의 각각의 접속을 어떻게 처리할 것인지 결정할 수 있다. 예컨대, 하나의 접속만이 네트워크 혼잡에 의해 영향받을 경우, 다른 접속들이 이를 극복하기 위해 더 높은 레이트로 데이터를 공급할 수 있다. 그러나, 접속들의 대부분이 동시에 혼잡을 경험한다면, 백업 집합으로부터 피어들을 추가하여 상기 피어들로부터의 추가 스트리밍이 혼잡의 영향을 완화할 수 있도록 할 필요가 있다.
접속 감시 모듈(8124)은 혼잡을 경험하는 경로 세그먼트들을 식별하기 위해 네트워크 단층촬영 기법을 사용할 수 있다. 네트워크 단층촬영의 기본 개념은 목적지에서의 스트라이프 내에서 패킷 손실의 계수를 계산함으로써 링크 손실을 추론하기 위해 패킷 "스트라이프"(즉, 백-투-백 시험 패킷들)를 사용하는 것을 동반한다. 손실을 추론하기 위해, 스트라이프로 불리는 순차적인 시험 패킷들이 한 노드로부터 두 개의 다른 노드들로 0 전송 지연으로 송신된다. 패킷이 임의의 수신기에 도달하면, 패킷이 브랜치 포인트에 도달한 것으로 추론될 수 있다. 말단 호스트들에 도달하는 패킷들의 개수에 기초하여, 내부 링크들 모두에 대해 성공적인 전송 확률의 확률을 계산할 수 있다.
접속 감시 모듈(8124)은 접속들을 수동적으로 감시한다. 즉, 스트리밍 동안에 능동적인 시험이 없다. 접속 감시 모듈(8124)은 스트리밍 데이터를 사용한다. 데이터는 동일한 네트워크 단층촬영 기법에서이므로 한 소스로부터 다중 수신기들로부터가 아닌 공급자들로부터 수신기로 이동한다.
스트라이프의 적절한 사이즈를 추정하고 공급자들 사이에서 어떻게 패킷들을 분할하여 수신기가 개별 경로들 및 공유된 경로들 상에서 패킷 손실의 계수를 잡아낼 수 있게 할 것인지를 위한 실험을 수행하는 것이 필요할 수 있다. 공급자들로부터 수신기로의 경로들의 특성들을 추정하는 것이 가능하다. 도 11은 두 개의 공급자들 S1 및 S2로부터 수신기 R로의 단순한 이진 트리를 도시한다. 공급자들이 블록의 패킷들을 송신하기 위한 시간으로 동기화되므로, S1 및 S2로부터의 패킷들은 공유된 경로 세그먼트 k->R에서 유사한 혼잡을 경험할 가능성이 높다. D 패킷들의 스트라이프 D=<D1, D2>가 사용될 수 있고, 여기서 S1은 D1 패킷들을 송신하고 S2는 D2 패킷들을 송신한다. R이 S1으로부터의 스트라이프의 모든 패킷들을 획득하는 경우, R은 S2->k 상에서 패킷들이 손실되기 전까지 S2로부터 D2 패킷들을 수신할 가능성이 높다.
도 8을 다시 참조하면, 동적 레이트 분포 모듈(8125)은 혼잡 및 장치 결함들에 기인한 네트워크 변동들을 극복하기 위하여 버퍼 관리 모듈(8123) 및 접속 감시 모듈(8124)과 상호작용하고 활성 공급자들에 동적으로 스트리밍 레이트를 분포시킨다.
동적 레이트 분포 모듈(8125)은 임의의 시각에 현재 스트리밍 레이트가 변화하도록 허용한다. 스트림 모듈(8121)은 새로운 레이트를 특정하기 위하여 각각의 시간 프레임에 제어 신호를 각각의 활성 공급자에 송신한다. 접속 감시 모듈(8124)은 어느 접속이 혼잡을 경험하고 있는지를 결정하고, 버퍼 관리 모듈(8123)은 현재 스트리밍 레이트가 어떤 값이어야 하는지를 결정하고, 레이트 분포 모듈(8125)은 각각의 공급자가 시간 t에서 스트리밍 해야 하는 레이트를 결정한다. 그런 다음, 레이트 분포 모듈(8125)은 제어 패킷들과 다음 시간 프레임을 통해 공급자가 송신해야 할 파일 세그먼트의 인덱스를 각각의 공급자에 새로운 레이트로 송신하도록 스트림 모듈(8121)에 시그널링한다.
도 8에 따르면, 여기서 플레이어 모듈(8130)로서 식별되는 양방향성 관리 모듈이 특정 실시예에 따라 기술된다. 플레이어 모듈(8130)은 양방향성을 제공하여 사용자가 스트리밍 세션을 중지, 고속 감기(FF), 및 고속 되감기(RW) 할 수 있도록 한다. 하기에 더욱 상세히 기술되는 바와 같은 이러한 이벤트들의 각각 동안에, 플레이어 모듈(6130)은 이벤트에 기초해 적절한 동작을 취하는 버퍼 관리 모듈(8123)에 알려준다.
중지 제어에 관해 기술하도록 한다. 사용자가 스트리밍 세션을 중지시키기 위한 버튼을 누를 경우, 버퍼 관리 모듈(8123)은 새로운 스트리밍 레이트, 예컨대 0Kbps를 분포시키도록 동적 레이트 분포 모듈(8125)에 시그널링한다. 동적 레이트 분포 모듈(8125)은 스트리밍 세션을 중지하도록 스트림 모듈(8121)에 시그널링한다. 스트림 모듈(8121)은 제어 신호를 각각의 활성 공급자에 송신하고, 스트리밍 세션은 그것이 다시 시작되기 전까지 또는 중지 타이머가 만료되기 전까지 중지된다. 스트리밍 세션이 중지되어 있는 동안에, 수신기는 어떠한 추가적 스트리밍 데이터도 활성 공급자들로부터 요청하지 않는다. 스트리밍 세션이 다시 시작될 때, 스트림 모듈(8121)은 스트리밍 세션을 다시 시작하도록 각각의 활성 공급자에 제어 신호를 송신한다. 중지 타이머가 만료되는 경우, 스트리밍 세션은 폐쇄될 것이다.
고속 감기(FF) 및 고속 되감기(RW) 제어를 살펴보면, 수신기가 하드디스크와 같은 로컬 저장소를 갖는 경우, RW 동작은 이미 저장된 콘텐트로부터 수행된다. 그렇지 않다면, RW 및 FF 모두는 유사한 방식으로 구현될 수 있다. 다수의 접근법들이 FF 동작과 연관될 수 있다. 제1 접근법은 VCR형의 평탄한 양방향성을 제공하기 위해 별개의 양방향 스트림을 사용한다; 그러나, 각각의 미디어 파일을 위한 별개의 양방향 스트림에 대한 비용이 요구된다. 제2 접근법은 추가 스트림을 사용하지 않고 지향 메커니즘(seeking mechanism)으로 고속 감기 또는 고속 되감기를 달성하는 솔루션이다.
특히, 양방향 스트림 사용시, FF 동작은 별개의 스트림(즉, 양방향 스트림)과 별개의 버퍼(즉, 양방향 버퍼)를 요구한다. 고속 되감기 동작의 경우, 양방향 스트림이 재생 스트림으로부터 반대 순서로 형성된다. 별개 양방향 스트림이 요구되는데, 그 이유는 고속 감기 및 고속 되감기 동안에 공급자들은 스트림의 부분집합만을 송신해야 하고 원래 스트림을 송신할 수 없기 때문이다. 별개의 양방향 스트림이 없이, 공급자들은 스트림을 디코딩하고 관심 대상의 적절한 프레임들을 송신해야 할 수도 있다. 이를 실시간으로 달성하는 것은 불가능할 수 있다. 그러므로, 상기 기법은 목표 FF 또는 RW 속도를 달성할 수 있는 프레임들을 갖는 별개의 스트림을 활용한다. 예컨대, X의 가속 인자를 달성하기 위해, 플레이어는 X 프레임 중에 한 프레임을 필요로 한다. 그러나, MPEG 기술에서는, B 프레임이 I 및/또는 P 프레임 없이 디코딩될 수 없고, P 프레임이 선행 I 프레임 또는 P 프레임 없이 디코딩될 수 없다. 그러므로, X 프레임들 중 하나를 송신하는 것은 고속 감기 이벤트의 경우 충분치 않다.
도 12는 스트리밍 세션의 MPEG 프레임들의 시퀀스를 나타낸다. 5의 가속 인자를 얻기 위해, 공급자들은 I, (P, B, B, P), (I, B, B, P) 등을 송신할 필요가 있다. 이것은 디코딩하기 위해 B 프레임이 자신의 이웃 프레임들 양쪽 모두를 필요로 하고 P 프레임이 또한 선행 I 프레임 또는 P 프레임을 요구하기 때문이다. 따라서, 프레임들 중 1/5 초과가 공급자들에 의해 스트림을 5배 가속하여 송신될 필요가 있다. 그러므로, 상기 프로세스는 FF 및 RW 동안에 스트리밍 데이터 레이트를 증가시키고, 반면에 정상 스트리밍 레이트를 위해 다운링크 속도만이 종종 충분한 DSL-기반 네트워크에서 스트리밍 레이트를 증가시키는 것은 불가능할 수 있다.
특정 실시예에 따르면, FF 및 RW 동안에 더 낮은 데이터 레이트를 유지하기 위하여, 양방향 스트림이 사용될 수 있다. 양방향 스트림은 하기의 방식으로 생성될 수 있다. 원래 비디오 재료가 압축 이전에 서브-샘플링될 필요가 있다. X배 고속 감기 속도를 위해 매 X번째 비디오 프레임이 MPEG 인코딩 이전에 적절한 장치에 저장될 것이다. 예컨대, 4X 고속 감기 속도를 달성하기 위해, 매 4번째 비디오 프레임이 사용된다. 상기 콘텐트는 그런 다음 정상적인 방식으로 MPEG 인코딩되어 별개 파일에 저장된다. 상기 방법은 매우 부드러운 움직임을 갖는 매우 고품질의 FF 보기를 야기하지만, 서브-샘플링된 압축 해제된 비디오의 중간 저장을 요구한다.
특정 실시예에 따르면, 서브-샘플링 사전처리 및 중간 저장의 추가 작업을 방지하기 위하여, FF는 MPEG 압축된 도메인에서 달성될 수 있다. 각각의 송신기는 FF 동안에 요구사항들을 충족시키기 위해 동적으로 I 프레임들을 트랜스코딩하고, 그런 다음 단 하나의 I 프레임을 갖는 GOP(Group of Pictures)를 생성하기 위해 시퀀스 헤더로 포장한다. 이러한 방식을 구현하기 위하여, 각각의 송신기는 주문시 계산적으로 I 프레임들을 트랜스코딩할 수 있어야만 한다.
도 8을 다시 참조하면, 양방향성을 제공하기 위하여, 버퍼 관리 모듈(8123)은 두 개의 버퍼들을 유지할 필요가 있다 : 정규 스트림을 위한 버퍼 및 양방향 스트림을 위한 버퍼. 정규 재생 동안에, 버퍼 관리 모듈(8123)은 I 프레임들만을 양방향 버퍼에 두어 사용자가 FF 또는 RW를 선택하면 플레이어 모듈(8130)이 즉시 양방향 버퍼로부터 데이터를 수신하도록 한다. 버퍼 관리 모듈(8123)은 사용자가 정상 플레이 모드로 되돌아오기 전까지 양방향 버퍼로부터 플레이어에 공급한다. 스트림 모듈(8121)은 상기 시간 동안에 양방향 스트림으로부터 데이터를 송신하도록 각각의 공급자에 제어 신호를 송신한다. 각각의 공급자는 N개의 I 프레임이 양방향 버퍼에 준비되도록 하나의 I 프레임을 송신할 것이다. 이는 사용자가 한 I 프레임으로부터 다음 차례의 프레임으로 고속 감기 할 수 있도록 할 것이다. 양방향 버퍼가 데이터로 넘칠 경우, 플레이어 모듈(8130)은 사용자가 FF/RW 하도록 허용할 수 없을 것이며 정상 플레이를 다시 시작할 것이다. 사용자가 정상 플레이를 다시 시작할 때, 버퍼 관리 모듈(8123)은 플레이어 모듈(8130)에 정규 버퍼로부터의 데이터를 공급한다. 정규 버퍼가 정상 플레이를 위한 충분한 데이터를 갖고 있지 않을 경우, 정규 버퍼가 완전한 레이트로 플레이하기에 충분한 데이터를 갖기 전까지 몇 초 동안 서브-샘플링된 데이터를 플레이할 수 있다.
특정 실시예에 따르면, FF 및 RW 동작들을 시뮬레이션하기 위한 대안적은 접근법에서, 파일 지향(file seeking)이 별개의 양방향 스트림을 갖는 요구사항을 방지하기 위해 사용될 수 있다. 특히, 사용자가 FF 버튼 또는 RW 버튼을 누를 때, 플레이어 모듈(8130)은 X초의 비디오 데이터를 플레이하고, 그런 다음 가속을 달성하기 위해 파일 내 적절한 위치로 Y초 점프한다. 모든 공급자들은 X초에 해당하는 비디오 데이터를 공급할 것이고 그런 다음에 다음 차례의 비디오 데이터를 가져오기 위해 파일 내에서 Y초를 찾을 것이다.
특정 실시예에 따르면, 변동 가속이 X 및 Y의 값들을 설정함으로써 달성될 수 있으며, 가속 인자가 하기와 같이 계산될 수 있다 :
Figure 112008017894045-PCT00006
.
예컨대, X=2초이고 Y=6초일 경우, 가속 인자는 4이다.
플레이어 모듈(8130)이 정상 속도로 비디오 데이터를 플레이하면, 스트리밍 데이터 내 일시적 위치가 점프 때문에 앞당겨질 것인데, 그러나 사용자는 가속 인자를 인식하지 않는다. 그러므로, 플레이어 모듈(8130)은 정상 속도보다 더 높은 속도로 비디오 데이터를 플레이한다. 공급자들이 정규 스트리밍 레이트로 스트리밍 데이터를 계속 송신하는 경우, 예컨대 DSL 네트워크에서 공급자들이 가속하는 것은 불가능할 수 있으므로, 버퍼는 더 높은 플레이 레이트로 인해 비워질 수 있다. 이를 극복하기 위해, 플레이어 모듈(8130)은 수신기 상에 지역적으로 저장된 짧은 비디오 클립을 플레이할 수 있다. 짧은 비디오 클립은 버퍼에서 스트리밍 데이터의 블록들 사이에 삽입될 수 있다. 예컨대, 삽입된 비디오 클립은 FF 이벤트 또는 RW 이벤트에 기초해 ">>" 또는 "<<"로 애니메이션될 수 있다. 이러한 짧은 애니메이션된 비디오 클립은 보는 사람에게 시스템이 일정 프로세싱을 수행중임을 알릴 수 있다. 상기 클립은 사전에 생성되어 수신기 측에 저장될 수 있으며, 그럼으로써 상기 클립들을 스트리밍할 필요가 없다.
도 13은 순차적인 비디오 데이터 및 삽입된 비디오 클립들을 도시한다. 도시된 바와 같이, 플레이어 모듈(8130)은 삽입된 비디오 클립이 뒤이어지는 비디오를 4초 플레이하고, 12초 점프하고, 삽입된 비디오 클립이 뒤이어지는 비디오 데이터를 4초 플레이하고, 다른 12초 점프하고 비디오 데이터를 4초 플레이한다. 플레이어 모듈은 비디오 데이터 및 비디오 클립들을 두 번째 정상 속도로 플레이한다. 본 예시에서, X=4 및 Y=12이고 삽입된 비디오 클립의 길이가 X=4와 동등할 경우, 가속 인자는 하기의 관계식으로 주어진다 :
Figure 112008017894045-PCT00007
.
상기 기술된 바와 같은 광대역 데이터를 수신하기 위한 데이터 스트리밍의 품질을 향상시키기 위해 사용되는 본 발명의 일 측면은 품질 적응(도 6에 도시된 바와 같은 품질 적응 모듈(6140)을 사용하고 도 8에 도시된 바와 같은 스트림 관리 모듈(8120)을 참조함)을 동반한다. 품질 적응은 고품질의 장애복구형 스트리밍을 제공하기 위해 중요한 요소이다. 스트리밍 품질은 네트워크 변동들 및 장치 결함들 동안에 떨어진다. 두 가지 이슈 모두를 다루기 위해, V2P는 하기와 같은 메커니즘들을 사용한다 :
a) 지능형 버퍼 관리,
b) 접속 감시,
c) 동적 레이트 분포,
d) 동적 FEC 인코딩/디코딩,
e) 활성 피어 선택(N개의 활성 피어들), 및
f) 백업 피어 선택(M개의 백업 피어들).
처음 두 가지의 메커니즘들은 결함 조건들을 검출하고 혼잡의 실제 위치를 식별하기 위해 사용된다. 마지막 네 가지의 메커니즘들은 네트워크 변동들 및 장치 결함을 다루기 위해 사용된다. 상기 두 시나리오들의 각각이 기술된다. 일부 경우, 품질 적응 모듈(6140)은 이러한 상황들을 극복하기 위하여 스트리밍 데이터를 다시 제공하도록 활성 공급자들에게 요구할 수 있다.
네트워크 변동들을 극복하기 위한 품질 적응 프로세스가 특정 실시예에 따라 기술된다. 인터넷은 최선 노력 서비스이고, 임의의 말단-대-말단 경로의 지연, 손실, 및 지터(jitter)와 같은 네트워크 계층 메트릭스들이 시간에 따라 변화할 수 있다. 접속 감시 메커니즘은 네트워크 혼잡의 실제 위치를 식별할 수 있다. 예컨대, K개의 접속들이 임의의 시각에 품질 저하를 경험하도록 하자. 첫 번째로, 품질 적응 모듈(6140)은 통합 스트리밍 레이트가 여전히 목표 스트리밍 레이트를 충족시키는지의 여부를 검사한다. 충족되지 않을 경우, 스트리밍 레이트가 재분포되어 우수한 네트워크 조건들을 갖는 활성 공급자들이 다른 활성 공급자들에 의해 공급되지 않는 레이트를 조절하기 위해 더욱 많이 공급하도록 한다. 이러한 동적 레이트 재분포가 가능한데, 그 이유는 활성 공급자들이 그들의 전체 용량보다 더 낮은 레이트로 스트리밍하는 방식으로 활성 피어 선택이 이루어지기 때문이다. 각각의 활성 공급자로부터의 스트리밍 레이트의 동적 재분포를 위해 레프트 오버 커패시티(left over capacity)가 활용될 수 있다. 활성 공급자들이 목표 스트리밍 레이트를 제공할 수 없을 경우, 품질 적응 모듈(6140)은 피어 선택 모듈(6110)에게 하나 이상의 백업 피어들을 활성 집합에 추가하도록 명령할 수 있다. 모든 백업들이 추가된 이후, 활성 공급자들이 여전히 높은 패킷 손실로 인해 목표 스트리밍 레이트를 충족시키지 못할 경우, 품질 적응 모듈(6140)은 스트림 관리 모듈(6120)에게 현재 손실률에 기초해 FEC 인코딩 오버헤드 비율(α)을 높이도록 명령할 수 있다. 예컨대, α=0.20이고 현재 손실률이 35%인 경우, α의 새로운 값은 미래 변화들을 견디기 위해 손실률을 매칭하도록 조절될 것이다. 손실률이 잠시 후 떨어진다면, 적응 모듈은 그에 따라 α의 값을 감소시킬 것이다.
예를 들어, 하기는 네트워크 변동을 극복하기 위하여 품질 적응 모듈(6140)이 스트리밍 레이트를 조절하고 백업 피어들을 추가하고 인코딩 오버헤드 비율 α을 조절하기 위해 사용할 수 있는 알고리즘(알고리즘 1)을 도시한다. 도시된 알고리즘은 현재 스트리밍 레이트가 목표 스트리밍 레이트 R0보다 살짝 더 높다는 것을 보장하기 위해 δ를 사용하고, 그렇지 않다면 아주 약간의 네트워크 변동에 의해 스트리밍 품질이 퇴보할 것이다. 랩터(raptor) 코드들이 사용되면, δ가 랩터 디코딩을 위해 필요한 여분 데이터를 표현할 것인데, 그 이유는 상기 코드가 디코딩할 원래 콘텐트보다 5% 더 많은 데이터를 요구하기 때문이다.
네트워크 변동을 위한 알고리즘 1 :
1. 시각 t에서 혼잡을 경험중인 K개의 접속들을 식별한다.
2.
Figure 112008017894045-PCT00008
일 경우, 아무것도 하지 않는다 // 현재 레이트를 이용한 우수한 스탠딩.
3. 또는
Figure 112008017894045-PCT00009
일 경우, 목표 레이트를 충족시키기 위해 스트림 레이트를 (N-K)개의 우수한 피어들에 재분포시킨다.
4. 또는 백업 피어를 활성 집합에 추가한다. 단계 3으로 진행한다. 백업이 이용될 수 없을 경우 단계 5로 진행한다.
5, 네트워크에서 패킷 손실을 조절하기 위해 α를 조절한다. 더 많은 백업을 추가한다.
특정 실시예에 따른 상기 알고리즘에서, 단계 1에서, 스트림 관리 모듈(6120)의 (도 8의 접속 감시 모듈(8124)과 같은) 접속 감시 모듈은 N개의 활성 공급자들과의 N개의 접속들을 감시하고 시각 t에서 혼잡을 경험중인 K개의 접속들을 식별한다. 단계 2에서, 현재 통합 스트리밍 레이트(즉, 모든 Ri의 합)가 적어도 δ에 의해 목표 스트리밍 레이트 R0를 초과하는 경우, 즉,
Figure 112008017894045-PCT00010
일 경우, 현재 스트리밍 레이트는 충분하며 품질 적응 모듈(6140)은 아무것도 하지 않는다. 그렇지 않다면, 품질 적응 모듈(6140)은 단계 3에서 혼잡을 경험하지 않는 활성 집합 내 (N-K)개의 "우수한" 피어들 중에서 스트리밍 레이트를 재분포시키기를 시도한다.
상기 (N-K)개의 "우수한" 피어들이 초기에 그들의 전체 용량보다 더 낮은 레이트로 스트리밍하므로, 상기 (N-K)개의 "우수한" 피어들의 레프트 오버 커패시티가 목표 스트리밍 레이트 R0을 달성하기 위해 활용될 수 있다. 즉, (N-K)개의 "우수한" 피어들의 각각은 자신의 전체 용량 R0 i까지 임의의 레이트로 스트리밍할 수 있다. 따라서, 혼잡을 경험중인 K개의 피어들을 위한 현재 통합 스트리밍 레이트(즉, 상기 K개의 피어들을 위한 모든 Ri의 합) 더하기 (N-K)개의 "우수한 피어들"의 전체 용량(즉, 상기 (N-K)개의 피어들을 위한 모든 R0 i의 합)은 적어도 δ에 의해 목표 스트리밍 레이트 R0를 초과하는 경우, 즉
Figure 112008017894045-PCT00011
일 경우, 품질 적응 모듈(6140)은 목표 스트리밍 레이트를 충족시키기 위해 (예컨대, 동적 레이트 분포 모듈을 통해) 스트림 관리 모듈(6120)에게 스트리밍 레이트를 (N-K)개의 우수한 피어들에 재분포시키도록 명령한다. 그렇지 않으면, 단계 4에서, 품질 적응 모듈은 피어 선택 모듈(6110)에게 백업 피어들을 활성 피어들의 집합에 추가시키도록 명령하고, 그럼으로써 갱신된 개수 N의 활성 공급자들이 존재한다.
알고리즘은 단계 3으로 되돌아가고, 품질 적응 모듈(6140)은 목표 스트리밍 레이트를 충족시키기 위해 (예컨대, 동적 레이트 분포 모듈을 통해) 스트림 관리 모듈(6120)에게 스트리밍 레이트를 (N-K)개의 우수한 피어들에 재분포시키도록 명령한다. 단계 4에서 이용 가능한 백업 피어들이 없을 경우, 품질 적응 모듈(6140)은 네트워크 내 패킷 손실을 조절하기 위해 인코딩 오버헤드 비율 α를 조절한다. 품질 적응 모듈(6140)은 또한 피어 선택 모듈(6110)에게 백업 피어들의 집합에 추가하기 위해 추가의 피어들을 선택하도록 명령한다.
다른 측면은 장치 결함을 극복하기 위한 품질 적응 프로세스이다. 특히 특정 실시예에 따르면, 스트리밍 세션이 N개의 활성 피어들을 이용하여 시작되고 각각의 피어는 β 용량 활용률을 갖는다. 피어들 중의 하나(즉, STB들 중의 하나)가 결함 상태일 때 각자의 업로딩 용량 한계치를 초과하지 않고서 스트리밍 레이트가 활성 집합 내 나머지 피어들에 즉시 재분포될 수 있는 방식으로 V2P가 β를 선택한다. 그러므로, 하나의 피어가 임의의 시각에 결함 상태일 경우, 스트리밍 레이트는 활성 공급자들의 나머지에 걸쳐 분포되고 통합 스트리밍 레이트는 목표 레이트 미만이 되지 않는다. 둘 이상의 피어들이 동시에 결함 상태일 경우, 품질 적응 모듈은 백업 피어들을 활성 공급자들의 집합에 추가할 수 있다.
예컨대, 하기는 품질 적응 모듈이 장치 결함을 극복하기 위하여 스트리밍 레이트들을 조절하고 백업 피어들을 추가하고 및 인코딩 오버헤드 비율 α를 조절하기 위해 사용할 수 있는 특정 실시예에 따른 알고리즘(알고리즘 2)을 도시한다. K개의 장치들(즉, STB들)이 결함일 경우, 품질 적응 모듈(6140)은 (동적 레이트 분포 모듈을 통해) 스트림 관리 모듈(6120)에게 활성 집합 내 나머지 공급자들 중에서 스트리밍 레이트를 재분포시키도록 명령한다. 또한, 품질 적응 모듈(6140)은 다음 차례의 장치 결함을 극복하기 위하여 피어 선택 모듈(6110)에게 백업 피어를 활성 공급자들의 집합에 추가하도록 명령한다. 활성 집합 내 나머지 공급자들이 목표 레이트를 제공할 수 없고 네트워크가 높은 손실을 경험하지 않은 경우, 품질 적응 모듈(6140)은 스트림 관리 모듈(6120)에게 현재 손실률을 조절하기 위해 FEC 인코딩 오버헤드 비율 α을 감소시키도록 명령한다. 더욱 많은 공급자들이 필요한 경우, 품질 적응 모듈(6140)은 백업들의 집합으로의 추가 공급자들에 대해 피어 선택 모듈(6110)에 명령한다. 버퍼 관리 모듈이 통상적으로 플레이어 모듈을 위해 이용 가능한 5-10초의 디코딩된 데이터를 유지하므로, 상기 시간은 목표 스트리밍 레이트를 충족시키기 위하여 품질 적응 모듈(6140)이 더 많은 백업 공급자들을 활성 집합에 추가하도록 허용한다.
STB 결함에 대한 알고리즘 2 :
1. 결함된 K개의 STB들을 식별한다.
2.
Figure 112008017894045-PCT00012
일 경우, 아무것도 하지 않는다 // 현재 레이트를 이용한 우수한 스탠딩.
3. 또는
Figure 112008017894045-PCT00013
일 경우, 활성 집합 내 (N-K)개의 피어들에 스트림 레이트를 재분포시킨다. 다음 차례의 결함을 극복하기 위해 백업을 활성 집합에 추가한다.
4. 또는
a. 백업 피어를 활성 집합에 추가한다. 백업이 이용될 수 없다면, 필요한 경우 α를 조절한다.
b. 스트리밍 레이트를 활성 집합에 재분포시킨다.
c. 백업 피어를 발견하고 백업 집합에 추가한다.
d. 단계 4a로 진행한다.
상기에 도시된 바와 같이, 단계 1에서, 접속 감시 모듈은 결함된 K개의 STB들을 식별한다. 단계 2에서, 활성 집합 내 잔여 공급자들의 현재 통합 스트리밍 레이트(즉, 모든 Ri의 합)가 적어도 δ에 의해 목표 스트리밍 레이트 R0를 초과하는 경우, 즉
Figure 112008017894045-PCT00014
일 경우, 현재 스트리밍 레이트는 충분하고 품질 적응 모듈(6140)은 아무것도 하지 않는다. 그렇지 않다면, 품질 적응 모듈(6140)은 단계 3에서 결함되지 않은 활성 집합 내 (N-K)개의 "우수한" 피어들 사이에 스트리밍 레이트를 재분포시키기를 시도한다. 상기 (N-K)개의 "우수한" 피어들이 그들의 전체 용량보다 더 낮은 레이트로 초기에 스트리밍하므로, 상기 (N-K)개의 "우수한" 피어들의 레프트 오버 커패시티가 목표 스트리밍 레이트 R0를 달성하도록 활용될 수 있다. 즉, (N-K)개의 "우수한 피어들"의 각각은 각자의 전체 용량 R0 i까지 스트리밍할 수 있다. 따라서, (N-K)개의 "우수한 피어들"의 전체 용량(즉, 상기 (N-K)개의 피어들을 위한 모든 R0 i의 합)이 적어도 δ에 의해 목표 스트리밍 레이트 R0를 초과하는 경우, 즉
Figure 112008017894045-PCT00015
일 경우, 품질 적응 모듈(6140)은 목표 스트리밍 레이트를 충족시키기 위하여 (동적 레이트 분포 모듈을 통해) 스트림 관리 모듈(6120)에게 (N-K)개의 우수한 피어들에 스트리밍 레이트를 재분포시키도록 명령한다. 품질 적응 모듈(6140)은 피어 선택 모듈(6110)에게 백업 피어를 활성 집합에 추가하도록 명령한다.
그렇지 않으면, 단계 4에서, 품질 적응 모듈(6140)이 피어 선택 모듈(6110)에게 백업 피어를 활성 피어들의 집합에 추가하도록 명령함으로써, 갱신된 개수인 N개의 활성 공급자들이 있게 된다. 단계 4에서, 이용 가능한 백업 피어들이 없을 경우, 품질 적응 모듈(6140)은 네트워크 내 패킷 손실을 조절하기 위해 FEC 인코딩 오버헤드 비율 α을 조절할 수 있다. 품질 적응 모듈(6140)은 목표 스트리밍 레이트를 충족시키기 위해 (동적 레이트 분포 모듈을 통해) 스트림 관리 모듈(6120)에게 활성 집합 내 (N-K)개의 우수한 피어들에 스트리밍 레이트를 재분포시키도록 명령한다. 품질 관리 모듈(6140)은 또한 피어 선택 모듈(6110)에게 백업 피어들의 집합에 추가하기 위한 추가의 피어들을 선택하도록 명령한다.
도 6을 다시 참조하면, 특정 실시예에 따른 콘텐트 탐색 및 콘텐트 권고 모듈(6150)이 기술된다. 콘텐트 탐색 및 콘텐트 권고 모듈은 사용자들이 그들이 관심 있는 콘텐트를 검색할 수 있도록 한다. 사용자 인터페이스(UI)는 하기와 같은 전자 프로그램 가이드(EPG) 데이터에 기초하여 콘텐트를 검색할 수 있도록 할 것이다 :
a) 제목,
b) 배우/여배우,
c) 감독,
d) 년도,
e) 국가,
f) 장르
g) 수상,
h) 스포츠, TV 시리즈, 뉴스, 콘서트와 같은 카테고리, 및
i) 이야기 내 임의의 키워드.
질의 모듈(6160)은 동작에 관해 하기의 상세한 설명에서 제공되는 바와 같은 피어들에 관한 정보를 획득한다. 질의 모듈(6160)은 CPU, 메모리, 업스트림 대역폭과 같은 STB의 자원 정보에 관해 질의하기 위하여 원격 피어에 시험 신호들을 송신한다. 또한, 피어가 현재 업로딩, 다운로딩 중인지의 여부, 또는 유휴 모드인지의 여부, 및 피어의 신뢰성 히스토리와 같은 상태 정보를 질의할 수 있다. 질의 모듈(6160)은 피어 선택 모듈(6110)에 의한 피어 선택 동안에 공평성을 강조하기 위해 사용될 수 있는 피어의 인센티브 기록으로 돌아갈 수 있다.
데이터 관리를 위해, 데이터 관리 모듈은 스트리밍된 데이터를 하드드라이브와 같은 로컬 저장 장치에 저장한다. 스트리밍이 예컨대 UDP를 이용하여 신뢰할 수 없는 채널을 통해 이루어지므로, 일부 패킷들이 세션 동안에 손실될 수 있다. 수신기는 FF 메커니즘의 사용으로 인해 패킷들 모두를 가지지는 않는다. 그러므로, 데이터 관리 모듈(6170)은 상기 잃어버린 세그먼트들을 다운로딩하기 위해 상기 스트리밍 이후에 활성 공급자들에 접촉할 수 있으며, 결과적으로 수신기는 완전한 파일을 갖게 되어 미래에 공급자가 된다.
공급자들이 어떻게 동작하는지를 이해하기 위하여, 도 14는 V2P 시스템의 블록도를 나타내고, 본 발명의 한 실시예에 따른 송신기(공급자)를 또한 도시한다. 도 14에 따르면, V2P 시스템(1400)은 수신기(1410), 송신기(1420), 자원 관리 프레임워크(RMF)(1430), 인센티브 관리자(1440), 전자 프로그램 가이드(EPG)(1450)를 포함한다. 수신기(1410)는 스트리밍 데이터를 수신하기 위해 송신기(1420)와 상호작용한다. 송신기(1420)는 V2P 시스템에 등록하고 콘텐트를 알려주기 위해 RMF(1430)와 상호작용한다. 송신기(1420)는 사용자들에게 요금청구하고 적절한 엔티티에 보상을 제공하는 것을 담당하는 인센티브 관리자(1440)와 상호작용한다. 송신기(1420)는 개인용 비디오 레코딩기(PVR) 확장들을 이용하여 콘텐트 레코딩을 허용하기 위해 전자 프로그램 가이드(EPG)(1450)와 상호작용한다.
도 14에 따르면, 송신기(1420)는 특정 실시예에 따라 등록 모듈(14210), 스트리밍 관리 모듈(14220), FEC 인코더 모듈(14230), 자원 감시 모듈(14240), PVR 확장 모듈(14250)을 더 포함한다. 등록 모듈(14210)은 P2P 네트워크에 STB의 자원들과 통계치들을 등록하고 콘텐트를 알려준다. 스트리밍 관리 모듈(14220)은 데이터를 제공하기 제어 신호들을 수용하기 위해 수신기와 통신한다. FEC 인코더 모듈(14230)은 콘텐트 아이템에 해당하는 미디어 파일 내 블록들을 FEC 인코딩한다. 자원 감시 모듈(14240)은 STB의 현재 상태에 기초하여 새로운 스트리밍 요청을 수용하거나 거부한다. 또한, 자원 감시 모듈(14240)은 스트리밍 세션에 기여한 후 인센티브 관리자(1440)에 보고한다. PVR 확장 모듈(14250)은 전자 프로그램 가이드(EPG)(1450)와 상호작용한다.
등록 모듈(14210)은 자신의 자원들 및 통계치들을 RMF(630)를 통해 P2P 네트워크에 등록한다. 또한, 상기 등록 모듈(14210)은 새로운 미디어 콘텐트를 P2P 네트워크에 등록하고 알려주거나 또는 광고한다.
스트리밍 관리 모듈(14220)은 데이터를 제공하고 제어 신호들을 수용하기 위해 수신기와 통신한다. 송신기가 새로운 스트리밍 요청을 수용한 이후, 스트리밍 관리 모듈(14220)은 수신기로부터 제어 접속을 수용한다. 제어 접속에 따라, 스트리밍 관리 모듈(14220)은 수신기로의 데이터 접속을 설정하고 하드디스크와 같은 로컬 저장 장치로부터 데이터를 읽고 데이터를 데이터 접속을 통해 송신한다. E이터가 사전 인코딩되고 현재 인코딩된 콘텐트의 FEC 인코딩 오버헤드 비율 α가 수신기로부터의 요청된 α와 매칭되는 경우, 스트리밍 관리 모듈(14220)은 단지 데이터를 읽어 수신기에 송신한다.새로운 α로 데이터를 인코딩할 필요가 있다면, 스트리밍 관리 모듈(14220)은 FEC 인코딩을 수행하기 위하여 FEC 인코더 모듈(14230)과 통신한다.
FEC 인코더 모듈(14230)은 스트리밍을 위한 콘텐트 아이템에 해당하는 미디어 파일의 블록을 인코딩한다. 특정 실시예들에 따르면, V2P가 특정된 FEC 인코딩 오버헤드 비율 α로 미디어 데이터를 인코딩하기 위해 사용할 수 있는 두 가지 예시적인 FEC 코드들은 공지된 리드-솔로몬 코드 및 랩터 코드이다. 또한, 다른 실시예들에서, 대수적 연산 대신에 XOR을 사용하고 무제한 필드에서 코쉬 메트릭스들에 기초한 리드-솔로몬 삭제 코드는 종래의 리드-솔로몬 코드에 대한 고속 인코딩 및 디코딩을 달성하기 위해 사용될 수 있다.
표 2는 특정 실시예에 따라 수정된 리드-솔로몬 삭제 코드를 이용한 예시적인 인코딩 및 디코딩 시간들을 나타낸다. 예컨대, 영화 파일은 1.1Mbps에서 1초 블록들 또는 0.5초 블록들로 분할될 수 있고 20% 패킷 손실을 허용하도록 인코딩될 수 있다. 인코딩 및 디코딩 시간들은 2GB의 메모리를 갖는 2.4GHz 리눅스 기계 상에서 리드-솔로몬 삭제 코드를 통상 실행한다.
표 2에 도시된 바와 같이, 인코딩은 디코딩보다 더 많은 시간을 요구한다. 또한, 인코딩 및 디코딩 시간들은 블록의 길이에 관하여 선형적이지 않다. 블록 사이즈가 너무 길면, 수신기는 블록을 디코딩하기 전에 상기 블록의 모든 패킷들을 수신하기 위해 긴 시간을 기다려야 한다. 블록 사이즈가 너무 짧으면, 한 접속 상의 폭주 패킷 손실이 많은 패킷들을 떨어뜨릴 것이고, 다른 접속들로부터의 나머지 패킷들은 블록을 복구하기에 충분한 데이터를 갖고 있지 않을 것이다. 1Mbps에서의 스트리밍을 위해, 1초 블록 사이즈가 통상적일 수 있다. 400MHz 또는 그 이상에서 실행하는 프로세서와 128MB 또는 그 이상의 메모리를 갖는 STB는 네트워크 변동들 및 장치 결함들에 맞추도록 리드-솔로몬 코드를 이용하여 주문형 인코딩을 지원할 수 있다. 하기의 표 2는 리드-솔로몬 삭제 코드의 경우를 이용한 인코딩 및 디코딩 시간들을 나타낸다.
Figure 112008017894045-PCT00016
도 14를 참조하면, 자원 감시 모듈(14240)은 새로운 스트리밍 요청을 수용할 것인지 거부할 것인지를 결정하기 위하여 STB의 로컬 자원들 및 상태를 감시한다. 또한, PVR 확장 모듈(14250)은 레코딩 이벤트들의 스케줄링을 조정하기 위해 전자 프로그램 가이드(EPG)(1450)와 상호작용한다.
도 15는 V2P 시스템의 성능을 평가하기 위한 예시적 설정을 나타낸다. 도 15에 따르면, V2P 시스템(1500)은 수신기(1510), 송신기들(1520), 하기에서 ISP(1580)로서 식별되는 인터넷 서비스 공급자들(ISP들)(1580a, 1580b), 및 인터넷(1590)을 포함한다. 수신기(1510) 및 송신기들(1520)의 각각은 수신기 모듈 및 송신기 모듈 둘 모두로 구성될 수 있고, 그럼으로써 송신기 또는 수신기로서 동작할 수 있다. 개인용 컴퓨터들로서 여기에 도시된 수신기(1510) 및 송신기들(1520)의 각각은 두 개의 상이한 ISP(1580)를 통해 인터넷(1590)에 접속될 수 있다. 일련의 송신기들이 ISP(1580) 모두로부터 선택될 수 있으며, 결과적으로 스트리밍 데이터는 인터넷(1590)을 통과하고 수신기(1510)는 네트워크 변동들을 경험한다. 스트리밍 세션 동안에, 하나 이상의 송신기들(1520)이 장치 결함을 시뮬레이션하기 위해 파워 오프될 수 있다.
특정 실시예에 따르면, 비대칭 디지털 가입자 회선(ADSL) 액세스 네트워크 배포에서 사용될 수 있는데, 여기서 각각의 송신기는 제한된 업링크 용량을 갖고 다중-송신기 솔루션이 일련의 송신기들로부터의 전체 스트리밍 레이트를 통합하기 위해 필요하다. 또한, V2P는 20Mbps-100Mbps 범위의 업링크 대역폭을 갖는 FTTx 및 xDSL 네트워크들과 같은 고대역폭 액세스 네트워크들에서의 사용을 위해 구현될 수 있다. 이러한 환경들에서, 특정 실시예에 따르면, V2P는 1.5Mbps(MPEG-4 품질 비디오 스트림들에 해당) 또는 심지어 3-5Mbps(MPEG-E 품질 비디오 스트림들에 대항)의 스트리밍을 수행하기 위해 다중 송신기들을 필요로 하지 않는다. 한 송신기가 용이하게 전체 스트리밍 레이트를 공급할 수 있다. 그럼에도 불구하고, V2P는 특정 실시예에 따르면 네트워크 변동들 및 피어 결함 발생시 장애복구형 스트리밍을 제공하기 위하여 각각의 스트리밍 세션을 위해 백업 피어들을 활용할 수 있다. 본 시나리오에서, V2P (N+M) 스트리밍 모델은 (1+M)이 되고, 여기서 스트리밍 세션은 하나의 활성 공급자와 M개의 백업 공급자들을 사용한다. 각각의 피어가 높은 이용 가능 업링크 대역폭을 갖기 때문에, 스트리밍 세션은 N개의 활성 공급자들을 더 이상 요구하지 않는다. 그럼에도 불구하고, M개의 백업들은 장애복구형 스트리밍을 제공하기 위해 필요할 수 있다. 각각의 송신기가 다중 스트리밍 세션들을 제공하기에 충분한 용량을 갖기 때문에, 한 세션에 할당된 백업 공급자들은 용이하게 다른 세션의 활성 공급자들이 될 수 있다.
송신기들이 하나 이상의 스트림을 동시에 공급하기에 충분한 업링크 대역폭을 가지므로, V2P는 도 16에 도시된 바와 같은 특정 실시예에 따르면 병렬의 다중 비디오 스트림들을 제공할 수 있다. 한 송신기가 다중 비디오들을 다중 스트리밍 세션들에 공급할 수 있다. 송신기는 심지어 다중 스트리밍 세션들에 비디오의 동일한 복사본을 공급할 수 있으며, 이는 많은 시청자들로부터 희귀 비디오가 요청된 경우 유용하다. 한 공급자에 의해 지원될 수 있는 병렬 비디오 스트림들의 개수는 V2P에 의해 제한되지 않지만, STB의 하드웨어 I/O 프로세싱 용량들 및 이용 가능한 업스트림 대역폭에 제한된다. 고대역폭 환경에서 V2P를 구현하는 것은 하기를 포함하여 일정한 장점들을 갖는다 :
a) 단지 하나의 활성 공급자 더하기 두 개의 백업들만이 스트리밍 세션을 위해 필요하다; 그러므로, 더 많은 스트리밍 세션들이 지원될 수 있다;
b) 공동체에 이용 가능한 특정 비디오의 복사본들의 개수는 한 공급자로부터 제공될 수 있는 병렬 스트림들의 개수만큼 곱해지며, 이는 많은 가입자들에 의해 레코딩되지 않은 비디오들에 대해 특히 유용하다; 및
c) 동일한 장애복구 능력들이 다중 비디오 스트림들을 제공하는 중에도 v2p에 의해 보장된다.
그러므로, V2P가 다양한 상종 네트워크들 및 이종 네트워크 배포들에서 가치를 갖고 있음이 명백하다.
도 16은 본 발명의 한 실시예에 따른 고대역폭 환경에서 구현된 VoD-투-피어(V2P) 시스템을 도시한다. 도 16에 따르면, V2P 시스템(1600)은 하기에서 수신기들(1610)로서 식별되는 수신기들(1610a, 1610b, 및 1610n), 하기에서 송신기들(1620)로서 식별되는 송신기들(1620a, 1620b, 1620c), 자원 관리 프레임워크(RMF)(1630)를 포함한다. STB들로서 여기에 도시된 수신기들(1610)은 송신기(1620a)로부터 스트리밍 미디어를 수신하는 수신 피어들이다. STB로서 여기에 도시된 송신기들(1620)DS 스트리밍 미디어의 송신 피어 또는 공급자이다. 수신기들(1610) 중 임의의 하나가 다른 시각에 송신 피어들로서 동작할 수 있음은 자명하다. 유사하게, 임의의 한 송신기(1620)가 다른 시각에 수신 피어로서 동작할 수 있다. 자원 관리 프레임워크(RMF)(1630)는 서비스 공급자에 의해 관리되는 관리 인프라구조로서 요청된 미디어의 주문형 스트리밍을 수행하기 위해 수신기들(1610)과 송신기들(1620) 사이에 제어 및 데이터 접속들을 관리한다. RMF(1630)는 또한 방송으로부터 레코딩된 미디어 파일들, 송신기들로부터 레코딩된 미디어 파일들, 또는 송신기들(1620) 상에 다운로딩 및 저장된 미디어 파일들과 같은 스트리밍 가능 콘텐트를 위해 수신기들이 V2P 시스템(1600)을 검색할 수 있도록 한다. RMF(1630)는 또한 수신기들(1610)이 콘텐트 권고안들을 수신하도록 한다.
고대역폭 네트워크 환경에서 한 송신기가 스트리밍 세션에 의해 요구된 전체 스트리밍 레이트를 공급하기에 충분하더라도, (N+M)개의 활성 공급자 및 백업 공급자들에 기초한 스트리밍 모델은 (1+M)개의 활성 공급자들 및 백업 공급자들에 비하여 전체 시스템 활용도를 높일 수 있다. (N+M) 스트리밍 모델을 이용하여, 각각의 공급자는 전체를 공급할 능력이 있더라도 스트리밍 레이트 중 프랙션을 공급한다. 하기는 시스템 활용도의 추정치를 제공한다.
예컨대, 하기를 가정하면 :
공동체 사이즈(피어들의 개수)=C,
곱셉 인자(multiplicative factor)(각각의 피어가 공급할 수 있는 스트림들의 개수)=
Figure 112008017894045-PCT00017
,
각각의 스트리밍 세션을 위한 활성 송신기들의 개수=N,
각각의 스트리밍 세션을 위한 백업들의 개수=M,
스트리밍 레이트=R, 및
각각의 피어의 업링크 용량=c,
그러면 가능한 병렬 스트리밍 세션들의 개수(U)가 하기의 관계식에 의해 주어진다 :
Figure 112008017894045-PCT00018
.
(1+M) 모델의 경우 :
C=1200, N=1, M=2, R=2Mbps,
Figure 112008017894045-PCT00019
=5를 가정하면,
U=5(1200/(1+2))=2000
(N+M) 모델의 경우 :
C=1200, N=4, M=2, R=2,
Figure 112008017894045-PCT00020
=20(각각의 피어가 이제 스트림의 사분의 일을 공급하므로
Figure 112008017894045-PCT00021
=4*5=20)이면,
U=20(1200/(4+2))=4000.
분석적 모델링은 고대역폭 환경에서 (N+M)이 (1+M)보다 더 우수한 자원 활용도를 갖는다고 도시한다. (N+M) 또는 (1+M)과 같은 통계 솔루션을 사용하는 대신에, V2P는 적응적 메커니즘을 사용할 수 있다. 예컨대, V2P 시스템이 특정한 자원(즉, 특정한 비디오)의 충분한 복사본을 갖고 있을 경우, 우수한 시스템 활용도를 위해 (N+M) 스트리밍 모델을 사용하는 것이 바람직할 수 있다. 다른 한편으로, V2P 시스템은 특정한 자원의 몇 개만의 복사본을 가질 경우, V2P 시스템은 (1+M) 모델을 이용하여 스트리밍 세션들을 제공할 수 있다.
하기와 같이 시스템의 최대 활용도를 추정하는 것이 가능하다. 백업들이 네트워크 변동 동안에 또는 피어 결함 동안의 공급자 이동 동안에만 데이터의 프랙션을 공급하므로, 각각의 피어는 백업 세션들을 위해 용량을 예약하기보다는 활성 세션들을 위해 용량을 활용할 수 있다. 그러므로, 최대 활용도(U)는 하기의 관계식으로 표현된다 :
Figure 112008017894045-PCT00022
.
상기 예시의 경우, 최대 시스템 활용도는 (1+M) 모델 또는 (N+M) 모델 모두에서 U=6000이다.
V2P 시스템은 고대역폭 및 저대역폭 네트워크 환경 모두의 이종 공동체에서 훨씬 일반적으로 구현될 수 있다. 특정 실시예에 따르면, V2P는 송신기가 다중 스트리밍 세션들에 기여하기에 충분한 자원들을 갖는 경우에만 한 번 이상 소정의 송신기를 활용할 수 있다. 그렇지 않으면, 각각의 송신기는 임의의 소정 시각에 하나의 스트리밍 세션에만 사용될 것이다. 특정 실시예에 따르면, 도 17은 확장된 송신기 아키텍처를 도시하며, 여기서는 한 송신기나 스트림들을 다중 수신기들에 공급할 수 있다. 각각의 스트림을 위해, 송신기는 한 스트림 관리 스레드를 개방한다. 스트림 관리 모듈의 각각의 인스턴스가 수신기와의 통신 및 수신기에 의해 송신된 제어 신호들에 기초한 동작 수행을 책임진다. 또한, 스트림 관리 모듈의 각각의 인스턴스는 스트리밍 비디오 데이터를 수신기에 제공할 책임이 있다. 따라서, V2P는 고대역폭 환경에서 다중 서버형 스트리밍 세션들을 지원할 수 있다. 개괄된 V2P는 다중 소스들을 이용한 P2P 네트워크 환경의 장점들과 한 사용자로부터 다중 스트리밍 세션들을 공급함으로써 서버-클라이언트 환경의 장점들 모두를 물려받는다.
상기 개괄된 다중-소스 환경에서, 송신기는 자신의 이용 가능 자원들에 기초하여 자신이 할 수 있는 한 많은 스트리밍 세션들에 기여할 수 있다. V2P가 지원할 수 있는 병렬 스트림들의 개수는 하기와 같은 다양한 인자들에 따른다 :
a) 요청된 콘텐트 아이템을 갖는 사용자들의 수,
b) 각각의 사용자의 업링크 대역폭, 및
c) 원하는 스트리밍 품질.
예컨대, Cl 저대역폭 피어들 및 Ch 고대역폭 피어들의 공동체를 위한 V2P 시스템은
Figure 112008017894045-PCT00023
고품질 스트리밍 세션들까지 지원할 수 있으며, 여기서
Figure 112008017894045-PCT00024
은 한 공급자가 얼마나 많은 스트림들에 기여할 수 있는지를 나타내는 곱셉 인자이다. 저대역폭 환경에서
Figure 112008017894045-PCT00025
=1m이지만 고대역폭 환경에서는
Figure 112008017894045-PCT00026
또는 그 이상이다.
도 17은 V2P 시스템의 한 실시예의 블록도이며, 본 발명의 한 실시예에 따른 송신기를 또한 도시한다. 도 17에 따르면, V2P 시스템(1700)은 수신기들(1710), 송신기(1720), 자원 관리 프레임워크(RMF)(1730), 인센티브 관리자(1740), 및 전자 프로그램 가이드(EPG)(1750)를 포함한다. 수신기들(1710)은 스트리밍 데이터를 수신하기 위해 송신기(1720)와 상호작용한다. 송신기(1720)는 V2P 시스템에 등록하고 콘텐트를 알려주기 위해 RMF(1730)와 상호작용한다. 송신기(1720)는 사용자들에게 요금청구하고 적절한 엔티티에 보상을 제공하는 것을 책임지는 인센티브 관리자(1740)와 상호작용한다. 송신기(1720)는 개인용 비디오 레코딩기(PVR) 확장을 이용한 콘텐트의 레코딩을 허용하기 위해 전자 프로그램 가이드(EPG)(1750)와 상호작용한다.
도 17에 따르면, 송신기(1720)는 또한 등록 모듈(17210), 스트리밍 관리 모듈들(17220), FEC 인코더 모듈(17230), 자원 감시 모듈(17240), PVR 확장 모듈(17250)을 더 포함한다. 등록 모듈(17210)은 P2P 네트워크에 STB의 자원들 및 통계치들을 등록하고 콘텐트를 알려준다. 스트리밍 관리 모듈들(17220)의 각각은 데이터를 제공하고 제어 신호들을 수용하기 위해 수신기와 통신한다. FEC 인코더 모듈(17230)은 콘텐트 아이템에 해당하는 미디어 파일의 블록들을 인코딩한다. 자원 감시 모듈(17240)은 STB의 현재 상태에 기초하여 새로운 스트리밍 요청을 수용하거나 거부한다. 또한, 자원 감시 모듈(17240)은 스트리밍 세션에 기여한 이후에 인센티브 관리자(1740)에 보고한다. PVR 확장 모듈(17250)은 레코딩 이벤트들의 스케줄링을 조정하기 위해 전자 프로그램 가이드(EPG)(1750)와 상호작용한다.
도 18은 롱 테일을 도시하는 그래프를 나타낸다. 통계적 샘플링이 광시야 행동을 추정하기 위해 사용될 수 있다. 예컨대, 도 18은 방송 쇼들의 인기도가 어떻게 롱 테일을 관찰하는지를 나타낸다.
V2P 배포의 규모를 모델링 및 이해하기 위해 고려할 많은 변수들이 있다. 예컨대, 얼마나 많은 프로그램들이 레코딩될 수 있고, 얼마나 많은 스트림들이 각각의 송신기에 의해 전달될 수 있고, 얼마나 많은 병렬 스트림들이 전달될 수 있고, 얼마나 많은 누적 스트림들이 네트워크에서 전달될 수 있고, 얼마나 멀리 시간상 되돌아가서 V2P 시스템이 콘텐트를 보관할 수 있고, 및 얼마나 큰 디스크 사이즈를 각각의 STB가 가져야 하는지와 같이 이러한 규모들을 결정하기 위하여 소정의 공동체 사이즈에 의해 얼마나 많은 프로그램들이 레코딩되는지를 추정하는 것이 필요할 수 있다. 예컨대, 한 추정치는 가입자들이 시청하길 원하는 방송 콘텐트의 25%를 가입자가 레코딩하는 것일 수 있다. TV 쇼들의 닐슨 시청률과 같은 다른 데이터는 특정한 쇼를 시청하는 소정의 공동체 사이즈의 인구 비율을 식별하기 위해 사용될 수 있다. 예컨대, 상위 500 TV 쇼들을 위한 커버리지를 제공하는 V2P 시스템은 하기와 같이 모델링될 수 있다 :
공동체의 사이즈=C(각각의 사용자가 PVR을 가짐);
쇼 i의 인기도는 pi임; 및
쇼를 시청하는 사용자가 그것을 레코딩할 확률=ri로 두자.
그러므로, 공동체에서 쇼 i가 레코딩될 확률은 xi=piri이고, 및
공동체에서 쇼 i를 위해 레코딩된 복사본들의 평균 개수=Cpiri이다.
하기의 세 가지 시나리오들이 고려된다 :
1. DSL 네트워크를 통한 표준 정의(SD) 품질 스트리밍(N=3, M=2)
2. DSL 네트워크를 통한 근사 DVD 품질 스트리밍(N=5, M=2)
3. 섬유 네트워크를 통한 근사 DVD 또는 DVD 품질 스트리밍(N=1, M=2).
업스트림 대역폭이 제한되고 단일 수신기에 스트리밍될 비디오의 품질이 정규 표준 정의(SD) TV인 DSL 네트워크 배포의 경우, 활성 송신기들의 집합은 최대 3을 요구하고 백업 송신기들의 집합은 최대 2를 요구한다.
도 21A는 3 개의 상이한 공동체 사이즈를 위한 임의의 소정 쇼를 위해 전달될 수 있는 병렬 스트림들의 개수를 도시한 그래프를 나타낸다. 예컨대, 50,000 가정들의 공동체에서, V2P는 상위 순위의 쇼의 375개의 병렬 스트림들을 지원할 수 있다.
도 21B는 소정의 공동체 사이즈를 위해 V2P에 의해 전달될 수 있는 스트림들의 최대 개수 또는 누적 개수를 도시한 그래프를 나타낸다. 예컨대, V2P는 50,000의 공동체 사이즈의 경우 24,000개의 병렬 스트림들을 전달할 수 있다.
업스트림 대역폭이 제한되고, 단일 수신기에 스트리밍될 비디오의 품질이 근사 DVD인 DSL 네트워크 배포의 경우, 활성 송신기들의 집합은 최대 5를 요구하고 백업 송신기들의 집합은 최대 2를 요구한다.
도 20A는 3개의 상이한 공동체 사이즈를 위한 임의의 소정 쇼를 위해 전달될 수 있는 병렬 스트림들의 개수를 도시한 그래프를 나타낸다. 예컨대, 50,000 가정들의 공동체에서, V2P는 상위 순위의 쇼의 200개의 병렬 스트림들을 지원할 수 있다.
도 20B는 소정의 공동체 사이즈를 위해 V2P에 의해 전달될 수 있는 스트림들의 최대 개수 또는 누적 개수를 도시한 그래프를 나타낸다. 예컨대, V2P는 50,000의 공동체 사이즈의 경우 17,000개의 병렬 스트림들을 전달할 수 있다.
업스트림 대역폭이 100Mbps로 제한되고 5개의 수신기들에 스트리밍될 비디오의 품질이 근사 DVD인 섬유 네트워크 배포의 경우, 활성 송신기들의 집합은 최대 1을 요구하고 백업 송신기들의 집합은 최대 2를 요구한다.
특정 실시예에 따르면, 도 21A는 3개의 상이한 공동체 사이즈들을 위한 임의의 소정 쇼를 위해 전달될 수 있는 병렬 스트림들의 개수를 도시한 그래프를 나타낸다. 예컨대, 20,000 가정들의 공동체에서, V2P는 상위 순위의 쇼의 925개의 병렬 스트림들을 지원할 수 있다.
도 21B는 소정의 공동체 사이즈를 위해 V2P에 의해 전달될 수 있는 스트림들의 최대 개수 또는 누적 개수를 도시한 그래프를 나타낸다. 예컨대, V2P는 20,000의 공동체 사이즈를 위해 80,000개의 병렬 스트림들을 전달할 수 있다.
도 21B가 보여주는 바와 같이, V2P는 공동체의 사이즈를 초과하는 총 개수의 병렬 스트림들을 전달할 수 있으며, 이는 단일 가정 내에서 다수 TV들로의 스트리밍에 대한 지원을 가능하게 한다. 또한, 이는 이종 네트워크를 위한 지원을 가능하게 한다. 예컨대, 공동체는 PVR 기능이 있거나 없는 STB들을 포함할 수 있다. PVR 기능이 없는 STB들은 비디오 스트림을 수신할 수만 있으며, 그러나 네트워크에 비디오 스트림들을 공급할 수 없다. 또한, 공동체는 FFTX 또는 DSL 액세스를 이용하는 STB들을 포함할 수도 있다.
특정 실시예에 따르면, V2P에 의해 제공되는 보관 용량의 스케일을 결정하기 위해 많은 파라미터들이 고려될 필요가 있다. 특정 실시예를 위한 일부의 이러한 파라미터들 및 기본 가정들이 아래에 개설된다.
STB 디스크 사이즈 :
1Gb=MPEG-2 SD 비디오의 ~1 시간
1/2Gb=MPEG-4 근사 DVD 비디오의 ~1 TLRKS
1/3Gb=MPEG-4 SD 비디오의 ~1 시간.
일간 사용량 :
PVR을 갖는 가입자들이 매일 TV ~5 시간 청취, 그 중 25%가 레코딩됨(~1.25 시간).
그러므로, 하기의 방정식이 보관 기간을 위해 요구되는 STB 디스크 사이즈를 근사화하는데 도움을 준다 :
STB 디스크 사이즈=개월 수 × 30 × 1.25
STB 디스크 사이즈=개월 수 ×37.5.
따라서, 3개월 보관을 위해 요구되는 디스크 사이즈는 하기가 될 것이다 :
STB 디스크 사이즈~120Gb(MPEG-2 SD)
STB 디스크 사이즈~60Gb(MPEG-4 근사 DVD)
STB 디스크 사이즈~40Gb(MPEG-4 SD).
도 22는 특정 실시예에 따라 V2P 시스템의 보관 측면을 도시한 그래프이다. 예컨대, 도 22에 따르면, V2P 시스템은 공동체 사이즈 M(여기서 M=2000)을 위해 최대 N 레이팅된 쇼들의 전체 커버리지를 가질 수 있다.
V2P는 다중-소스 비디오 스트리밍 기술을 활용한다. 특정 실시예에 따르면, 필수 사전전제조건은 송신 소스들의 각각에 의해 스트리밍될 비디오 파일이 비디오의 인코딩 포맷, 비트 레이트, 및 시작 프레임에 있어서 정확히 동일한 것이다.
V2P의 한 가지 가능한 구현예는 STB/PVR 장치들의 P2P 네트워크 내에 있다. STB/PVR 장치들의 소유자들은 그들이 레코딩하길 원하는 쇼들을 선택하기 위한 여러 메커니즘들을 갖는다. 예컨대, 한 메커니즘은 전자 프로그램 가이드(EPG)를 통해서이다.
STB의 시스템 클록은 서비스 공급자의 클록과 주기적으로 재동기화될 수 있어 몇 초와 같은 미리 결정된 허용치 내에 머물게 된다. 상기 동기화는 STB/PVR 장치가 방송 프로그램들을 레코딩하기 위해 적절하게 스케줄링될 수 있음을 보장한다. 상기 클록 차의 명백한 결과는, 다양한 STB/PVR 장치들의 모두가 정확히 동일 시각에 방송 프로그램을 레코딩하는 것을 시작할 수 없고 따라서 동일한 시작 프레임으로부터 레코딩하기를 시작할 수 없다는 것이다. 그러므로, V2P가 다중 STB/PVR 장치들로부터 레코딩된 프로그램을 스트리밍할 수 있기 이전에, 비디오 파일 내 공통 시작 프레임을 식별하기 위한 메커니즘이 요구된다.
도 23은 본 발명의 한 실시예에 따라 공통 비디오 프레임을 식별하기 위한 방법을 도시하는 흐름도이다. 스트리밍 세션으로부터 스트리밍 비디오 데이터를 수신하기에 앞서, 수신기는 스트리밍 비디오 데이터를 공급할 일련의 공급자들을 획득한다. 각각의 공급자는 방송 프로그램과 같은 특정한 콘텐트 아이템에 해당하는 비디오 파일의 개별 복사본으로부터 스트리밍 비디오 데이터를 공급한다.
본 시퀀스에서, 단계 2310에서, 수신기는 예컨대 시작 시각에 집중되고 미리 결정된 동기화 허용치의 시간만큼 앞뒤로 연장되는 시간 간격일 수 있는 시간 윈도우를 정의한다. 서비스 공급자의 네트워크에 접속된 STB들과 같은 클라이언트 장치들을 위한 클록들은 수 초 내에서 동기화될 수 있으며, 그럼으로써 통상적인 동기화 허용치가 3-5초일 수 있다.
단계 2320에서, 수신기는 정의된 관련 시간 윈도우 동안에 비디오 파일 내에서 발생한 일련의 참조 비디오 프레임들에 해당하는 일련의 레퍼런스 객체들을 각각의 공급자로부터 수신한다. 예컨대, MPEG-코딩된 비디오 파일들의 맥락에서, 참조 비디오 프레임들의 각각은 시간 윈도우 동안에 비디오 파일의 각각의 개별 복사본 내에서 발생하는 모든 I 프레임들에 해당할 수 있다. 각각의 레퍼런스 객체는 참조 비디오 프레임들의 집합 내에서 각각의 비디오 프레임에 포함된 정보의 전부 또는 일부를 나타낼 수 있다. 예컨대, 각각의 레퍼런스 객체는 공지된 해싱 기법들을 사용하여 참조 비디오 프레임들의 집합 내에서 각각의 비디오 프레임에 포함된 정보의 전부 또는 일부를 이용해 계산된 해쉬 값일 수 있다. 해쉬 값들은 스트리밍 세션의 발생에 앞서 공급자들에 의해 사전 계산될 수 있다.
단계 2330에서, 수신기는 수신된 레퍼런스 객체들의 집합들 모두에 공통적인 공통 레퍼런스 객체를 식별하기 위하여 공급자들의 모두로부터 수신된 레퍼런스 객체들의 집합들을 비교한다. 단계 2340에서, 수신기는 단계 2340에서 식별된 공통 레퍼런스 객체에 해당하는 비디오 프레임에 시작 프레임을 설정한다.
예컨대, 수신기는 서비스 공급자의 STB들 중에서 클록들의 동기화 허용치에 관련된 시간_윈도우를 정의한다. 클록들은 통상적으로 3-5초와 같은 수 초의 허용치로 동기화된다. 전자 프로그램 가이드(EPG)의 도움으로, 공급자들은 쇼의 시작 시간을 찾고 그런 다음 공통 시작 지점을 발견하기 위해 비디오 파일 내부에서 얼마나 멀리 앞으로 및 얼마나 멀리 뒤로 탐색할 것인지 결정하기 위해 동기화 허용치를 사용한다. 시간_윈도우는 예컨대 방송의 시작 시각 주위로 집중되고 동기화 허용치의 시간만큼 앞뒤로 연장되는 시간 간격일 수 있다. 공급자들은 시간_윈도우 동안에 비디오 파일 내에서 발생하는 일련의 참조 비디오 프레임들에 해당하는 레퍼런스 객체들을 생성한다. 예컨대, (MPEG-2 및 MPEG-4를 포함하여) MPEG-코딩된 비디오 스트림들의 맥락에서, 각각의 GOP(Group of Picture)는 다른 GOP들에 독립적이다. 공급자들은 I 프레임인 각각의 GOP의 시작을 식별할 수 있다. 그런 다음, 시간_윈도우 동안에 비디오 파일의 각각의 공급자의 복사본에서 발생한 I 프레임들은 비교될 필요가 있다. 송신기들이 I 프레임들을 수신기에 송신하는 경우, 짧은 시간 내에 상기 분량의 데이터를 송신하는 것이 기술적으로 실행되지 않을 수 있다. 각각의 공급자는 I 프레임들의 해쉬 값을 계산할 수 있고 상기 해쉬 값들을 수신기에 송신할 수 있다. 전체 I 프레임의 해쉬를 계산하는 것 대신에, 각각의 I 프레임으로부터의 부분 데이터를 이용한 상기 알고리즘을 지속하는 것이 가능하다. 또한, 해쉬 값들은 오프라인으로 계산될 수 있어 수신기로부터의 요청에 따라 공급될 수 있다. 수신기가 해쉬들의 집합을 수신할 때, 수신기는 용이하게 해쉬들의 집합을 비교할 수 있고 상기 공급자들의 집합 중에서 비디오 파일들의 시작 위치를 나타내는 공통 I 프레임을 찾을 수 있다.
도 23에 도시된 방법은 프로그램의 정확한 시작 프레임을 선택하는 것을 보장하지 않는다. 그러나, STB의 동기화 허용치에 대하여 프로그램의 시작에 근접한 시작 프레임을 선택할 것이다. 특정 실시예에 따르면, 상기 접근법의 장점들은 분산적 솔루션이고 또한 시작 프레임을 결정하기 위해 비디오 장면 분석을 요구하지 않는다는 것이다.
본 명세서에서는, 다양한 실시예들에 따라, STB들에 의해 형성된 P2P 네트워크를 위해 설계된 제안된 비디오 스트리밍 시스템 V2P의 구성요소들이 기재되었다. 특정 실시예들에 따르면, V2P는 업링크 대역폭 제약을 극복할 수 있고, 지능형 피어 선택, 동적 버퍼 관리, 단층촬영 기반 접속 감시, 및 순방향 에러 정정 코드와 같은 기법들을 이용하여 네트워크 변동 및 장치 결함에 대비하여 장애복구를 달성할 수 있다. 특정 실시예들에 따르면, 다-대-일 비디오 스트리밍에서 V2P는 중지, 고속 감기, 및 고속 되감기와 같은 양방향 특징을 제공하기 위한 기술을 제공한다. V2P는 섬유 광 네트워크들에서 비디오 스트리밍을 제공하도록 확장된다. 특정 실시예에 따르면, 섬유 광 네트워크 및 DSL 네트워크 모두에서 제공되는 자원들에 대한 상세한 분석 모델이 또한 제공된다. 또한, 특정 실시예에 따른 알고리즘은 상이한 사용자들에 의해 레코딩된 모든 비디오 콘텐트를 동기화하도록 제공하며, 결과적으로 V2P는 다-대-일 스트리밍 모델에 의해 스트리밍될 수 있다.
요컨대, 다양한 실시예들에 따른 본 발명은 비대칭 대역폭 특징과 어쩌면 신뢰할 수 없는 접속들을 갖는 이종의 피어-투-피어 네트워크에서, 활성 공급자 및 백업 공급자를 포함한 다중 소스들을 이용하여 고품질의 장애복구형 비디오 스트리밍을 구현한다. 다양한 실시예들에 따르면, 본 발명은 지능형 피어 선택, 네트워크 단층촬영 기반 접속 감시, 동적 버퍼 관리, 동적 레이트 분포, 및 동적 FEC 인코딩 및 디코딩을 포함한 다수의 메커니즘들에 의해 고품질의 장애복구형 스트리밍을 달성할 수 있다. 본 발명은 또한 효율적인 방식으로 중지, 고속 감기, 및 고속 되감기와 같은 양방향 재생 제어들을 시뮬레이션한다.
본 기술 분야의 당업자에 명백한 바와 같이 바람직한 실시예들, 다수의 변형예들 및 수정예들과 관련하여 기술 및 도시된 본 발명은 본 발명의 범위 및 정신으로부터 벗어나지 않고서 구현될 수 있으며, 따라서 본 발명은 변형예들 및 수정예들이 본 발명의 범위 내에 포함되도록 의도되므로 전술된 방법적 또는 구성적 상세한 내용들로 제한되지 않는다.

Claims (38)

  1. 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 시스템으로서,
    다운로딩 또는 레코딩된 이후에 스트리밍 데이터로서 제공될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 공급하도록 동작하는 서비스 공급자;
    상기 서비스 공급자와 연관되고 텔레비전 세트와 인터페이싱하도록 적응된 장치들의 가입자 공동체 피어-투-피어 네트워크;
    상기 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 임의의 노드인 수신기; 및
    활성 공급자와 백업 공급자를 포함하는 공급자들의 집합을 포함하고,
    각각의 공급자는 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 임의의 노드이고, 상기 각각의 공급자는 서비스 공급자로부터 또는 하나 이상의 다른 노드들로부터 콘텐트를 다운로딩 및/또는 레코딩한 후 주문형 스트리밍 데이터를 제공하도록 동작하고,
    상기 수신기는 상기 공급자들의 집합 내 하나 이상의 공급자들로부터 상기 수신기에 의해 주문형으로 스트리밍되는 스트리밍 데이터를 수신하도록 동작하는,
    주문형 스트리밍 데이터 제공 시스템.
  2. 제 1 항에 있어서,
    장치들의 각각은 셋톱박스(STB) 또는 개인용 컴퓨터(PC)인,
    주문형 스트리밍 데이터 제공 시스템.
  3. 제 1 항에 있어서,
    스트리밍 데이터는 오디오 데이터, 비디오 데이터, 또는 둘 모두인,
    주문형 스트리밍 데이터 제공 시스템.
  4. 제 1 항에 있어서,
    가입자 공동체 피어-투-피어 네트워크의 검색엔진을 더 포함하는,
    주문형 스트리밍 데이터 제공 시스템.
  5. 제 4 항에 있어서,
    각각의 검색엔진은 콘텐트 탐색기, 콘텐트 권고자, 또는 둘 모두를 더 포함하는,
    주문형 스트리밍 데이터 제공 시스템.
  6. 제 1 항에 있어서,
    인센티브 관리자를 더 포함하는,
    주문형 스트리밍 데이터 제공 시스템.
  7. 제 1 항에 있어서,
    디지털 저작권 관리자를 더 포함하는,
    주문형 스트리밍 데이터 제공 시스템.
  8. 서비스 공급자의 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 방법으로서,
    서비스 공급자의 가입자들을 위한 가입자 공동체 피어-투-피어 네트워크를 제공하는 단계;
    다운로딩 및/또는 레코딩될 수 있고 차후에 스트리밍 데이터로서 주문형으로 제공될 수 있는 다운로딩 및 레코딩 가능 콘텐트를 제공하는 단계;
    상기 가입자 공동체 피어-투-피어 네트워크와 연관된 검색엔진을 제공하는 단계; 및
    가입자들을 가입자 공동체 피어-투-피어 네트워크에 접속시키고, 상기 가입자 공동체 피어-투-피어 네트워크에 접속된 다른 가입자들에 의해 사전에 다운로딩 또는 레코딩된 콘텐트를 검색하기 위하여, 및 하나 이상의 다른 가입자들로부터 스트리밍 데이터로서 이러한 다운로딩 및/또는 레코딩된 콘텐트를 주문형으로 수신하기 위하여, 각각의 가입자가 검색엔진을 사용할 수 있도록 하는 단계를 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  9. 제 8 항에 있어서,
    하나 이상의 가입자가 셋톱박스(STB) 또는 개인용 컴퓨터인,
    주문형 스트리밍 데이터 제공 방법.
  10. 제 8 항에 있어서,
    스트리밍 데이터는 오디오 데이터, 비디오 데이터, 또는 둘 모두인,
    주문형 스트리밍 데이터 제공 방법.
  11. 제 8 항에 있어서,
    검색엔진은 콘텐트 탐색기와 콘텐트 권고자 중에서 하나 이상을 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  12. 제 8 항에 있어서,
    인센티브 관리자를 제공하는 단계를 더 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  13. 제 8 항에 있어서,
    디지털 저작권 관리자를 제공하는 단계를 더 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  14. 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 수신하 기 위한 시스템으로서,
    가입자 공동체 피어-투-피어 네트워크;
    상기 가입자 공동체 피어-투-피어 네트워크에서 임의의 노드인 스트리밍 데이터의 수신기; 및
    활성 공급자들의 집합과 백업 공급자들의 집합을 포함하는 스트리밍 데이터의 공급자들의 집합을 포함하고,
    상기 공급자들의 집합 내 각각의 공급자는 가입자 공동체 피어-투-피어 네트워크에서 임의의 노드이고,
    상기 스트리밍 데이터는 다중 블록들에 포함되고,
    주문형으로 수신될 스트리밍 데이터의 각각의 블록을 위해 수신기는,
    FEC 인코딩 오버헤드 비율을 활용하고;
    FEC 인코딩 오버헤드 비율을 사용하여 FEC-인코딩된 블록의 적어도 개별적으로 할당된 프랙션을 개별적으로 할당된 데이터 레이트로 송신하도록 각각의 활성 공급자에 시그널링하고;
    FEC-인코딩된 블록의 세그먼트들을 수신하고 - 각각의 세그먼트가 개별적으로 할당된 프랙션들의 적어도 일부를 나타냄 -;
    세그먼트들의 통합에 기초하여 FEC-인코딩된 블록을 디코딩하고, 상기 디코딩된 블록을 버퍼에 저장하고;
    각각의 활성 공급자와의 네트워크 접속의 성능을 감시하고;
    오버플로우 또는 언더플로우를 야기할 수도 있는 조건들을 검출하도록 버퍼를 감시하고; 및
    네트워크 접속들의 성능과 버퍼의 조건들에 기초하여, 버퍼의 언더플로우 또는 버퍼의 오버플로우에 도달하는 것을 방지하기 위하여 품질 적응을 수행하도록 동작하는,
    주문형 스트리밍 데이터 수신 시스템.
  15. 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 수신하기 위한 방법으로서,
    가입자 공동체 피어-투-피어 네트워크 내 후보 공급자들의 집합으로부터 활성 공급자들의 집합이 될 공급자들의 집합을 선택하고, 상기 후보 공급자들의 집합으로부터 백업 공급자들의 집합이 될 공급자들의 다른 집합을 선택하는 단계를 포함하고,
    수신될 스트리밍 데이터의 각각의 블록을 위해,
    FEC 인코딩 오버헤드 비율을 활용하는 단계;
    FEC 인코딩 오버헤드 비율을 사용하여 FEC-인코딩된 블록의 적어도 개별적으로 할당된 프랙션을 개별적으로 할당된 데이터 레이트로 송신하도록 각각의 활성 공급자에 시그널링하는 단계;
    FEC-인코딩된 블록의 세그먼트들을 수신하는 단계 - 각각의 세그먼트는 개별적으로 할당된 프랙션들의 적어도 일부를 나타냄 -;
    세그먼트들의 통합에 기초하여 FEC-인코딩된 블록을 디코딩하고, 상기 디코딩된 블록을 버퍼에 저장하는 단계;
    각각의 활동 공급자와의 네트워크 접속의 성능을 감시하는 단계;
    오버플로우 또는 언더플로우를 야기할 수도 있는 조건들을 검출하도록 버퍼를 감시하는 단계; 및
    네트워크 접속들의 성능과 버퍼의 조건들에 기초하여, 버퍼의 언더플로우 또는 버퍼의 오버플로우에 도달하는 것을 방지하기 위하여 품질 적응을 수행하는 단계를 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  16. 제 15 항에 있어서,
    스트리밍 데이터는 오디오 데이터, 비디오 데이터, 또는 둘 모두인,
    주문형 스트리밍 데이터 수신 방법.
  17. 제 15 항에 있어서,
    가압자 공동체 피어-투-피어 네트워크는 셋톱박스들(STB들), 개인용 컴퓨터들(PC들), 또는 이동 컴퓨팅 장치들의 임의의 조합을 포함하고, 각각의 셋톱박스, 개인용 컴퓨터, 또는 이동 컴퓨팅 장치들이 공급자로서, 수신기로서, 또는 둘 모두로서 동작하는,
    주문형 스트리밍 데이터 수신 방법.
  18. 제 15 항에 있어서,
    공급자들의 집합을 선택하는 단계는 공급자의 공급 상태 또는 수신 상태, 이용 가능한 업링크 대역폭, 프로세싱 파워, 신뢰성 히스토리, 경로 지연, 패킷 손실, 및 공평성을 포함하는 하나 이상의 메트릭스들의 임의의 조합에 기초하는,
    주문형 스트리밍 데이터 수신 방법.
  19. 제 18 항에 있어서,
    신뢰성 히스토리는 공급자의 콘텐트 이용 가능성, 장치 결함률, 네트워크 접속 시간의 임의의 조합에 기초하는,
    주문형 스트리밍 데이터 수신 방법.
  20. 제 18 항에 있어서,
    공평성은 공급자의 이전 선택 기록과 부하 조절의 임의의 조합에 기초하는,
    주문형 스트리밍 데이터 수신 방법.
  21. 제 15 항에 있어서,
    각각의 활성 공급자와의 네트워크 접속의 성능을 감시하는 단계는 수동적이고 상기 공급자로부터 실제 수신되는 스트리밍 데이터의 메트릭스들에 기초하는,
    주문형 스트리밍 데이터 수신 방법.
  22. 제 15 항에 있어서,
    각각의 활성 공급자와의 접속의 성능을 감시하는 단계는 활성 공급자가 네트워크 변동을 경험하였는지, 결함이 있는지, 또는 스트리밍 데이터로서 제공될 콘텐트를 삭제하였는지의 여부를 검출하는 것을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  23. 제 15 항에 있어서,
    버퍼를 감시하는 단계는 현재 버퍼 사이즈, 현재 플레이 레이트, 현재 스트리밍 레이트를 감시하는 것을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  24. 제 15 항에 있어서,
    품질 적응을 수행하는 단계는,
    레이트 분포 조절;
    공급자 집합 조절; 및
    FEC 인코딩 파라미터 조절 중에서 하나 이상을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  25. 제 24 항에 있어서,
    레이트 분포 조절은,
    활성 공급자에 대해 새로운 할당된 데이터 레이트를 할당하는 과정; 및
    활성 공급자에 대해 새로운 할당된 프랙션을 할당하는 과정 중에서 하나 이상을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  26. 제 24 항에 있어서,
    공급자 집합 조절은,
    활성 공급자들의 집합으로부터 활성 공급자를 제거하는 과정;
    활성 공급자들의 집합에 백업 공급자를 추가하는 과정; 및
    백업 공급자들의 집합에 후보 공급자를 추가하는 과정 중에서 하나 이상을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  27. 제 24 항에 있어서,
    인코딩 파라미터 조절은,
    새로운 FEC 인코딩 오버헤드 비율을 활용하는 단계; 및
    새로운 FEC 인코딩 방식을 활용하는 단계 중에서 하나 이상을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  28. 제 15 항에 있어서,
    피어-투-피어 네트워크의 검색엔진으로부터 후보 집합의 공급자들을 획득하는 단계를 더 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  29. 제 15 항에 있어서,
    스트리밍 데이터의 활성 공급자들의 집합 중에서 스트리밍 데이터의 소스로서 사용될 미디어 파일의 하나 이상의 복사본들 내에서 공통 시작 지점을 결정하는 단계를 더 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  30. 제 29 항에 있어서,
    활성 공급자들의 집합 중에서 미디어 파일 내에서 공통 시작 지점을 결정하는 단계는,
    시간 간격을 정의하는 과정;
    각각의 활성 공급자로부터 레퍼런스 객체들(reference objects)의 집합을 수신하는 과정 - 각각의 레퍼런스 객체는 시간 간격 동안에 미디어 파일 내에서 발생하는 참조 프레임에 해당됨 -;
    레퍼런스 객체들의 모든 집합에 공통인 공통 레퍼런스 객체를 식별하기 위해 레퍼런스 객체들의 수신된 집합들을 비교하는 과정; 및
    공통 레퍼런스 객체에 해당하는 참조 프레임이 되도록 공통 시작 지점을 설 정하는 과정을 포함하는,
    주문형 스트리밍 데이터 수신 방법.
  31. 제 30 항에 있어서,
    미디어 파일은 비디오 파일이고, 각각의 참조 프레임은 비디오 프레임이고, 각각의 레퍼런스 객체는 해쉬 값인,
    주문형 스트리밍 데이터 수신 방법.
  32. 제 30 항에 있어서,
    시간 간격은 가입자 공동체 피어-투-피어 네트워크에 접속된 장치들의 클록 동기화에 관련된,
    주문형 스트리밍 데이터 수신 방법.
  33. 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 시스템으로서,
    가입자 공동체 피어-투-피어 네트워크에서 임의의 노드인 수신기; 및
    스트리밍 데이터를 갖는 공급자들의 집합을 포함하고,
    상기 공급자들의 집합의 각각의 공급자는 가입자 공동체 피어-투-피어 네트워크에서 임의의 노드이고,
    스트리밍 데이터는 다중 블록들에 포함되고,
    제공될 스트리밍 데이터의 각각의 블록을 위해 각각의 공급자는,
    활용될 FEC 인코딩 오버헤드 비율, 개별적으로 할당된 데이터 레이트, FEC 인코딩 오버헤드 비율을 활용하는 블록에 대한 FEC 인코딩 동작으로부터 도출되는 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 지시하는 신호를 수신기로부터 수신하고; 및
    FEC-인코딩된 블록의 할당된 프랙션의 적어도 일부를 개별적으로 할당된 데이터 레이트로 송신하도록 동작하는,
    주문형 스트리밍 데이터 제공 시스템.
  34. 가입자 공동체 피어-투-피어 네트워크에서 주문형 스트리밍 데이터를 제공하기 위한 방법으로서,
    가입자 공동체 피어-투-피어 네트워크에서 수신기에 의해 수신될 스트리밍 데이터의 각각의 블록을 위해,
    활용될 FEC 인코딩 오버헤드 비율, 개별적으로 할당된 데이터 레이트, FEC 인코딩 오버헤드 비율을 활용하는 블록에 대한 FEC 인코딩 동작으로부터 도출되는 FEC-인코딩된 블록의 개별적으로 할당된 프랙션을 지시하는 신호를 수신기로부터 수신하는 단계; 및
    FEC-인코딩된 블록의 할당된 프랙션의 적어도 일부를 개별적으로 할당된 데이터 레이트로 송신하는 단계를 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  35. 제 34 항에 있어서,
    FEC 인코딩 오버헤드 비율을 활용하는 단계는 블록의 후속 FEC 인코딩을 위해 FEC 인코딩 오버헤드 비율을 설정하거나 또는 사전 인코딩된 블록을 선택하기 위해 FEC 인코딩 오버헤드 비율을 사용하는 것을 포함하는,
    주문형 스트리밍 데이터 제공 방법.
  36. 스트리밍 데이터의 고속 감기 재생 또는 고속 되감기 재생을 시뮬레이션하기 위한 방법으로서,
    임의의 스트리밍 레이트로 스트리밍 비디오 데이터를 수신하는 단계;
    정상 속도에 해당하는 재생 레이트로 후속 재생을 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계;
    정상 속도보다 더 빠른 속도로 상기 버퍼로부터 저장된 스트리밍 비디오 데이터를 플레이하는 단계;
    스트리밍 레이트가 재생 레이트 미만인 언더플로우 조건에 대해 버퍼를 감시하는 단계;
    언더플로우 조건의 검출에 기초하여, 사전 결정된 비디오 클립을 버퍼에 저장된 스트리밍 비디오 데이터 사이에 삽입하는 단계를 포함하는,
    시뮬레이션 방법.
  37. 스트리밍 비디오 데이터의 고속 감기 재생 또는 고속 되감기 재생을 시뮬레이션하기 위한 방법으로서,
    임의의 스트리밍 레이트로 비디오 파일로부터 스트리밍 비디오 데이터를 수신하는 단계;
    정상 보기 속도에 해당하는 정상 재생 레이트로 후속 재생을 위해 상기 수신된 스트리밍 비디오 데이터를 버퍼에 저장하는 단계;
    가속 보기 속도에 해당하는 가속 재생 레이트로 고속 감기 재생을 위한 명령어를 수신하는 단계;
    비디오 파일 내 점프 지점으로부터 시작하는 스트리밍 비디오 데이터를 수신하고, 가속 재생 레이트로 재생을 시뮬레이션하기 위해 정상 재생 속도보다 더 높은 재생 레이트에서 버퍼로부터 수신된 스트리밍 비디오 데이터를 플레이하는 단계를 포함하는,
    시뮬레이션 방법.
  38. 제 37 항에 있어서,
    사전 결정된 비디오 클립을 버퍼에 저장된 스트리밍 비디오 데이터 사이에 삽입하는 단계를 더 포함하는,
    시뮬레이션 방법.
KR1020087006035A 2005-08-12 2006-08-09 피어-투-피어 가입자 공동체를 위한 다중-소스 및 내성 주문형 비디오 스트리밍 시스템 KR101275726B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US70802005P 2005-08-12 2005-08-12
US60/708,020 2005-08-12
US74973005P 2005-12-12 2005-12-12
US60/749,730 2005-12-12
PCT/US2006/031011 WO2007021725A2 (en) 2005-08-12 2006-08-09 A multi-source and resilient video on demand streaming system for a peer-to-peer subscriber community

Publications (2)

Publication Number Publication Date
KR20080037079A true KR20080037079A (ko) 2008-04-29
KR101275726B1 KR101275726B1 (ko) 2013-06-17

Family

ID=37401619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006035A KR101275726B1 (ko) 2005-08-12 2006-08-09 피어-투-피어 가입자 공동체를 위한 다중-소스 및 내성 주문형 비디오 스트리밍 시스템

Country Status (9)

Country Link
US (1) US20080134258A1 (ko)
EP (1) EP1915866A2 (ko)
JP (2) JP5108763B2 (ko)
KR (1) KR101275726B1 (ko)
CN (1) CN101305612B (ko)
AU (1) AU2006280105B9 (ko)
BR (1) BRPI0614565A2 (ko)
CA (1) CA2618328C (ko)
WO (1) WO2007021725A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101117108B1 (ko) * 2008-09-08 2012-02-22 브로드콤 코포레이션 컴퓨터 네트워크-기반 비디오를 제공하기 위한 텔레비전 시스템 및 방법
KR101144331B1 (ko) * 2010-06-28 2012-05-11 강원대학교산학협력단 시간 기반의 메쉬 오버레이 네트워크 시스템 및 이를 이용한 메쉬 오버레이 네트워크 구축 방법

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001266297A1 (en) * 2000-06-20 2002-01-02 Nds Limited Unicast/multicast architecture
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US8190680B2 (en) * 2004-07-01 2012-05-29 Netgear, Inc. Method and system for synchronization of digital media playback
US20060161469A1 (en) 2005-01-14 2006-07-20 Weatherbank, Inc. Interactive advisory system
US20080022343A1 (en) 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US7937379B2 (en) * 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US7698451B2 (en) 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
FR2886494B1 (fr) * 2005-05-24 2007-06-29 Canon Kk Procede et dispositif d'echange de donnees entre des stations mobiles dans un reseau pair a pair
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
US8775655B2 (en) * 2005-10-21 2014-07-08 Roxbeam Media Network Corporation System and method for presenting streaming media content
KR100655600B1 (ko) * 2005-12-06 2006-12-11 한국전자통신연구원 P2p기반 스트리밍 서비스 제공방법 및 장치
US8229467B2 (en) 2006-01-19 2012-07-24 Locator IP, L.P. Interactive advisory system
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
JP5140666B2 (ja) * 2006-06-27 2013-02-06 トムソン ライセンシング パフォーマンスを考慮した、ピアツーピア・コンテンツ・オンデマンド
BRPI0621944A2 (pt) * 2006-07-20 2011-10-18 Thomson Lincensing fluxo contìnuo de vìdeo não-hierárquico cooperativo de múltiplas partes
US8296812B1 (en) * 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US20080098123A1 (en) * 2006-10-24 2008-04-24 Microsoft Corporation Hybrid Peer-to-Peer Streaming with Server Assistance
US9386056B1 (en) 2006-11-14 2016-07-05 Arris Enterprises, Inc. System, method and computer readable medium for providing media stream fragments
US9417758B2 (en) * 2006-11-21 2016-08-16 Daniel E. Tsai AD-HOC web content player
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9569587B2 (en) 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
US11316688B2 (en) 2006-12-29 2022-04-26 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US8180735B2 (en) 2006-12-29 2012-05-15 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway at user premises
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
US8634814B2 (en) 2007-02-23 2014-01-21 Locator IP, L.P. Interactive advisory system for prioritizing content
JP2008250773A (ja) * 2007-03-30 2008-10-16 Brother Ind Ltd 情報配信システム、管理装置用プログラム及び情報処理装置用プログラム
JP5144196B2 (ja) * 2007-05-08 2013-02-13 ソフトバンクBb株式会社 分散処理により膨大なコンテンツの検査を行う装置と方法、およびコンテンツの検査結果にもとづいて利用者間の自律的なコンテンツ流通とコンテンツ利用を制御するコンテンツ配信システム
US20080285577A1 (en) * 2007-05-15 2008-11-20 Yehuda Zisapel Systems and Methods for Providing Network-Wide, Traffic-Aware Dynamic Acceleration and Admission Control for Peer-to-Peer Based Services
US10848811B2 (en) * 2007-07-05 2020-11-24 Coherent Logix, Incorporated Control information for a wirelessly-transmitted data stream
US8776137B2 (en) * 2007-08-10 2014-07-08 At&T Intellectual Property I, Lp System and methods for digital video recorder backup and recovery
US8250191B2 (en) * 2007-09-06 2012-08-21 Pando Networks, Inc. Methods and apparatus for cooperative file distribution with target data delivery rate
US20090125634A1 (en) * 2007-11-08 2009-05-14 Microsoft Corporation Network media streaming with partial syncing
CN101478556B (zh) * 2007-12-31 2014-12-17 突触计算机系统(上海)有限公司 用于下载点对点传输数据分片的方法和装置
EP2077524B1 (en) * 2008-01-07 2016-08-17 Voddler Group AB Push-pull based content delivery system
EP2081363A1 (en) 2008-01-15 2009-07-22 Thomson Licensing, Inc. System and method for selecting a set of serving peers
EP2083554A1 (fr) * 2008-01-28 2009-07-29 Thomson Licensing Procédé de transmission en direct de contenus en vue d'une récupération en différé en mode P2P après découpage, et dispositif de controle et équipements associés
KR101478620B1 (ko) * 2008-04-22 2015-01-05 삼성전자주식회사 녹화된 뉴스 프로그램을 기사별로 구분하는 방법 및 이를위한 장치
GB0807990D0 (en) 2008-05-02 2008-06-11 Pace Micro Tech Plc Peer to peer broadcast content synchronisation
EP2283435B1 (en) * 2008-05-14 2017-01-11 Sony Interactive Entertainment Inc. Broadcast seeding for peer-to-peer networks
US8364838B2 (en) * 2008-05-20 2013-01-29 Htc Corporation Method for playing streaming data, electronic device for performing the same and information storage media for storing the same
US8194756B2 (en) * 2008-05-28 2012-06-05 Broadcom Corporation Using program clock references to assist in transport of video stream to wireless device
US8619775B2 (en) * 2008-07-21 2013-12-31 Ltn Global Communications, Inc. Scalable flow transport and delivery network and associated methods and systems
US8108537B2 (en) * 2008-07-24 2012-01-31 International Business Machines Corporation Method and system for improving content diversification in data driven P2P streaming using source push
US7996546B2 (en) 2008-10-02 2011-08-09 Ray-V Technologies, Ltd. Dynamic allocation of a quota of consumer nodes connecting to a resource node of a peer-to-peer network
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
WO2010042041A1 (en) * 2008-10-09 2010-04-15 Telefonaktiebolaget Lm Ericsson (Publ) Supporting functions for quality-assured p2p vod services
US20100094967A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Large Scale Distributed Content Delivery Network
US8832292B2 (en) * 2008-10-15 2014-09-09 Aster Risk Management Llc Source-selection based internet backbone traffic shaping
US20100115623A1 (en) * 2008-10-30 2010-05-06 Control4 Corporation System and method for enabling distribution of media content using verification
KR101647633B1 (ko) * 2008-11-24 2016-08-11 삼성전자주식회사 P2p 통신 기반의 개인 방송 데이터 송수신 방법 및 이를 위한 장치
GB2478687B (en) 2008-12-22 2014-05-21 Ltn Global Communications Inc A system and method for recovery of packets in overlay networks
US9106569B2 (en) 2009-03-29 2015-08-11 Ltn Global Communications, Inc. System and method that routes flows via multicast flow transport for groups
US8599851B2 (en) 2009-04-03 2013-12-03 Ltn Global Communications, Inc. System and method that routes flows via multicast flow transport for groups
US8374172B2 (en) * 2009-04-03 2013-02-12 At&T Intellectual Property I, L.P. Method and apparatus for managing communication sessions
US8687685B2 (en) 2009-04-14 2014-04-01 Qualcomm Incorporated Efficient transcoding of B-frames to P-frames
CN101562804B (zh) * 2009-05-12 2012-09-05 中兴通讯股份有限公司 一种基于移动p2p的区域管理服务器系统及其调度方法
US11064023B2 (en) 2009-05-27 2021-07-13 Verizon Media Inc. Method for actively sharing available bandwidth to consumer nodes in a peer-to-peer network for delivery of video streams
US8326992B2 (en) * 2009-05-27 2012-12-04 Ray-V Technologies, Ltd. Controlling the provision of resources for streaming of video swarms in a peer-to-peer network
EP2436168A2 (fr) * 2009-05-29 2012-04-04 France Telecom Technique de distribution d'un contenu vers un utilisateur
KR101568288B1 (ko) * 2009-09-21 2015-11-12 삼성전자주식회사 데이터 수신 장치 및 방법
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US20110087915A1 (en) * 2009-10-09 2011-04-14 Meng Zhang Hybrid reliable streaming protocol for peer-to-peer multicasting
KR101678394B1 (ko) * 2009-10-23 2016-11-22 삼성전자 주식회사 Vod 서비스를 제공하는 디지털 방송 시스템에서 데이터 저장 방법 및 그를 수행하는 장치
US8607272B2 (en) * 2009-10-29 2013-12-10 At&T Intellectual Property I, Lp Near-real time internet protocol television
US9054913B1 (en) 2009-11-30 2015-06-09 Dell Software Inc. Network protocol proxy
US8599700B2 (en) * 2010-03-05 2013-12-03 Time Warner Cable Enterprises Llc System and method for using ad hoc networks in cooperation with service provider networks
US8549125B2 (en) * 2010-03-11 2013-10-01 International Business Machines Corporation Environmentally sustainable computing in a distributed computer network
JPWO2011118498A1 (ja) * 2010-03-26 2013-07-04 日本電気株式会社 コンテンツ配信システム、コンテンツ配信方法及びコンテンツ配信プログラム
KR101000063B1 (ko) * 2010-04-27 2010-12-10 엘지전자 주식회사 영상표시기기 및 그 동작방법
CN102158767B (zh) * 2010-09-30 2012-11-07 大连理工大学 一种基于可扩展编码的对等网络流媒体直播系统
US9002826B2 (en) * 2010-10-27 2015-04-07 Qualcomm Incorporated Media file caching for an electronic device to conserve resources
KR101212366B1 (ko) 2010-11-25 2012-12-13 엔에이치엔비즈니스플랫폼 주식회사 P2p 기반의 스트리밍 서비스에서 서버 사용량을 조절하는 시스템 및 방법
JP2012151849A (ja) 2011-01-19 2012-08-09 Nhn Business Platform Corp P2p基盤のストリーミングサービスのデータストリームをパケット化するシステムおよび方法
US8898718B2 (en) * 2011-01-27 2014-11-25 International Business Machines Corporation Systems and methods for managed video services at edge-of-the-network
US8995338B2 (en) 2011-05-26 2015-03-31 Qualcomm Incorporated Multipath overlay network and its multipath management protocol
US9444887B2 (en) 2011-05-26 2016-09-13 Qualcomm Incorporated Multipath overlay network and its multipath management protocol
JP2014522594A (ja) * 2011-05-31 2014-09-04 トムソン ライセンシング マルチメディア・コンテンツをストリーミングする方法および装置
KR20130003544A (ko) * 2011-06-30 2013-01-09 한국전자통신연구원 단말 장치들 사이의 콘텐츠 동기화 방법 및 시스템
US8885502B2 (en) 2011-09-09 2014-11-11 Qualcomm Incorporated Feedback protocol for end-to-end multiple path network systems
US8997137B2 (en) * 2011-12-16 2015-03-31 Verizon Patent And Licensing Inc. Stream control with different trick-mode protocols
US9450997B2 (en) * 2012-02-27 2016-09-20 Qualcomm Incorporated Dash client and receiver with request cancellation capabilities
US9374406B2 (en) * 2012-02-27 2016-06-21 Qualcomm Incorporated Dash client and receiver with a download rate estimator
JP2013219513A (ja) * 2012-04-06 2013-10-24 Sumitomo Electric Ind Ltd 画像データ送信装置、画像データ送信方法および画像データ送信プログラム
US20130290514A1 (en) * 2012-04-27 2013-10-31 Alcatel-Lucent Usa Inc. Dynamic interstitial transitions
US9258127B2 (en) * 2012-07-09 2016-02-09 Cisco Technology, Inc. System and method for providing cryptographic video verification
CN105339922B (zh) * 2013-02-12 2018-10-12 爱立信股份有限公司 个人过顶网络视频记录器
US9230513B2 (en) * 2013-03-15 2016-01-05 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for cooperatively presenting multiple media signals via multiple media outputs
CN104348647B (zh) * 2013-07-31 2019-04-12 腾讯科技(深圳)有限公司 多源带宽调度方法、装置及系统
US9680650B2 (en) * 2013-08-23 2017-06-13 Qualcomm Incorporated Secure content delivery using hashing of pre-coded packets
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
TWI524756B (zh) 2013-11-05 2016-03-01 財團法人工業技術研究院 儲存影音資料的方法與裝置
US10198777B2 (en) * 2013-12-06 2019-02-05 Remote Media, Llc System, method, and application for exchanging content in a social network environment
US9258589B2 (en) 2014-02-14 2016-02-09 Pluto, Inc. Methods and systems for generating and providing program guides and content
CN104202655B (zh) * 2014-03-24 2017-07-07 无锡天脉聚源传媒科技有限公司 一种音视频文件下载方法及装置
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
US20150304719A1 (en) * 2014-04-16 2015-10-22 Yoolod Inc. Interactive Point-Of-View Video Service
KR102177239B1 (ko) * 2014-04-23 2020-11-10 버티고 미디어 인코포레이티드 합성 리브로드캐스트 및 그룹 스트림을 소셜라이징하기 위한 스마트 라우팅 동기화 시스템 및 방법
US10021434B2 (en) * 2014-05-30 2018-07-10 Apple Inc. Movie package file format
CN104469410B (zh) * 2014-11-28 2018-05-22 华中科技大学 一种在p2p-cdn混合视频点播网络中的性能测试方法
EP3228088A4 (en) * 2014-12-04 2018-05-16 Thomson Licensing Method and apparatus for video picture playback
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US9648098B2 (en) 2015-05-28 2017-05-09 Microsoft Technology Licensing, Llc Predictive peer determination for peer-to-peer digital content download
CN106303666A (zh) * 2015-06-24 2017-01-04 中兴通讯股份有限公司 一种iptv节目的处理方法及装置、iptv系统
JP6819041B2 (ja) * 2015-09-10 2021-01-27 ソニー株式会社 サーバシステムおよびサーバ
US10034027B2 (en) 2016-03-10 2018-07-24 Sony Corporation Automatic MSO-based transfer of DVR content to new location of customer
US9712861B1 (en) 2016-03-10 2017-07-18 Sony Corporation Interactive load balancing among DVRs based on customer selection
CN106507202B (zh) * 2016-11-11 2019-12-17 传线网络科技(上海)有限公司 播放控制方法及装置
US10820034B2 (en) * 2017-05-26 2020-10-27 At&T Intellectual Property I, L.P. Providing streaming video from mobile computing nodes
CN109286845B (zh) * 2017-07-21 2021-05-28 上海云熵网络科技有限公司 P2p点播系统及方法
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3767494T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
WO2019209269A1 (en) * 2018-04-24 2019-10-31 Google Llc Methods, systems, and media for synchronized media content playback on multiple devices
WO2019213497A1 (en) * 2018-05-03 2019-11-07 Scotty Labs Virtual vehicle control system
US11159327B2 (en) * 2018-08-06 2021-10-26 Tyson York Winarski Blockchain augmentation of a material exchange format MXF file
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
EP3780557B1 (en) 2019-02-25 2023-02-15 Bright Data Ltd. System and method for url fetching retry mechanism
FR3094597B1 (fr) 2019-03-27 2021-06-11 Streamroot Procédé de diffusion de contenus en streaming dans un réseau pair à pair
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN110533738B (zh) * 2019-09-02 2021-06-18 上海联影医疗科技股份有限公司 重建数据处理方法、装置、医学成像系统及存储介质
KR20210065604A (ko) 2019-11-27 2021-06-04 한국전자통신연구원 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치
US11589104B1 (en) * 2022-06-17 2023-02-21 Userful Corporation Latency compensation for external networks

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678243B2 (en) * 1997-11-14 2004-01-13 Ess Technology, Inc. Variable codec frame length
JP2000059755A (ja) * 1998-08-07 2000-02-25 Matsushita Electric Ind Co Ltd データサーバシステム、データ受信装置およびデータ送信装置
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7254622B2 (en) * 2000-12-15 2007-08-07 Tetsuya Nomura Video-on-demand system
US20020162109A1 (en) * 2001-04-26 2002-10-31 Koninklijke Philips Electronics N.V. Distributed storage on a P2P network architecture
US20020176363A1 (en) * 2001-05-08 2002-11-28 Sanja Durinovic-Johri Method for load balancing in routers of a network using overflow paths
KR20030056701A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법
US20030158958A1 (en) 2002-02-20 2003-08-21 Koninklijke Philips Electronics N.V. Distributed storage network architecture using user devices
JP2003333488A (ja) * 2002-05-09 2003-11-21 Mitsubishi Electric Corp ストリーミングデータ再生方式及びストリーミングデータ再生方法
KR20040013726A (ko) * 2002-08-08 2004-02-14 케이티하이텔 주식회사 온라인 컨텐츠 분배방법 및 장치
JP2004227394A (ja) 2003-01-24 2004-08-12 Nippon Telegr & Teleph Corp <Ntt> P2pコンテンツ配信システムとp2pコンテンツ配信課金方法およびプログラム
US20050055718A1 (en) * 2003-09-05 2005-03-10 Stone Christopher J. Peer-to-peer architecture for sharing video on demand content
AU2003274013A1 (en) * 2003-10-15 2005-05-11 Ntt Docomo, Inc Apparatus and method for controlling an operation of a plurality of communication layers
JP2005135140A (ja) 2003-10-30 2005-05-26 Nippon Telegr & Teleph Corp <Ntt> ピアツーピア型コンテンツ配信方法,サーバ用ピアツーピア型コンテンツ配信プログラムおよびクライアント用ピアツーピア型コンテンツ配信プログラム
JP4500267B2 (ja) * 2003-12-19 2010-07-14 パナソニック株式会社 動画配信システム
US8543723B2 (en) * 2004-07-27 2013-09-24 Sony Corporation Home network system with transmission error recovery
US7633887B2 (en) * 2005-01-21 2009-12-15 Panwar Shivendra S On demand peer-to-peer video streaming with multiple description coding
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101117108B1 (ko) * 2008-09-08 2012-02-22 브로드콤 코포레이션 컴퓨터 네트워크-기반 비디오를 제공하기 위한 텔레비전 시스템 및 방법
KR101144331B1 (ko) * 2010-06-28 2012-05-11 강원대학교산학협력단 시간 기반의 메쉬 오버레이 네트워크 시스템 및 이를 이용한 메쉬 오버레이 네트워크 구축 방법

Also Published As

Publication number Publication date
CN101305612A (zh) 2008-11-12
EP1915866A2 (en) 2008-04-30
AU2006280105A1 (en) 2007-02-22
WO2007021725A3 (en) 2007-07-26
AU2006280105B2 (en) 2011-04-28
JP5528400B2 (ja) 2014-06-25
BRPI0614565A2 (pt) 2009-08-04
KR101275726B1 (ko) 2013-06-17
CA2618328C (en) 2015-12-15
JP2009505502A (ja) 2009-02-05
CA2618328A1 (en) 2007-02-22
CN101305612B (zh) 2010-10-20
JP2011239440A (ja) 2011-11-24
WO2007021725A2 (en) 2007-02-22
US20080134258A1 (en) 2008-06-05
JP5108763B2 (ja) 2012-12-26
AU2006280105B9 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
KR101275726B1 (ko) 피어-투-피어 가입자 공동체를 위한 다중-소스 및 내성 주문형 비디오 스트리밍 시스템
US11743519B2 (en) Fragment server directed device fragment caching
US9462339B2 (en) Systems and methods for distributing video on demand
US8826349B2 (en) Multicast adaptive stream switching for delivery of over the top video content
US9942290B2 (en) Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a shared progressive ABR download pipe
WO2009005747A1 (en) Set-top box peer-assisted video-on-demand
Bouten et al. A multicast-enabled delivery framework for QoE assurance of over-the-top services in multimedia access networks
Oechsner et al. Supporting scalable video codecs in a P2P video-on-demand streaming system
Baik et al. VSync: Cloud based video streaming service for mobile devices
Chakareski et al. Delay-based overlay construction in P2P video broadcast
Habib et al. CommunityPVR: A Service to Deliver the Long Tail for On-Demand TV
Sarkar et al. A measurement study of network coding in peer-to-peer video-on-demand systems
Annie et al. Enhancing scalability in on-demand video streaming services for P2P systems
O’Neill Peer Assisted Multicast Streaming for On-Demand Applications
Thampi P2P Video Streaming
Pan et al. CS237 Project Interactive Movie Streaming Service

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160602

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee