EP1633112B1

A system and method for erasure coding of streaming media

Abstract

This record has no abstract on file.

EP1633112B1, drawing sheet 1
Sheet 1 of 21

Term

Term ended

Expired 31 August 2025, 1.1 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

46 claims: 3 independent, 43 dependent

  1. 1
    A computer-readable medium having computer executable instructions for providing client-driven multimedia streaming in a peer-to-peer, P2P, network, said computer executable instructions comprising:separating an encoded media file into a media header with one or more data packets, and a media body comprising n data packets;separating each data packet into at least one data units;separating each data unit into k original data blocks;erasure encoding the k original data blocks of each data unit to generate from 1 to k erasure coded data blocks for each of a plurality of arbitrary serving peers in a cluster of serving peers, and storing the resultant erasure coded data blocks on those serving peers;using a client computer (210) for retrieving a list (310) of the serving peers (220) in the cluster of available serving peers prior to retrieving any erasure coded data blocks;retrieving an availability vector for each serving peer in the list of serving peers, and wherein the availability vector includes at least an identification of the erasure coding key space and the number of erasure coded data blocks for each data unit for the corresponding serving peer;for each data unit, using the client computer using the availability vectors to retrieve a total of a number k' of erasure coded data blocks from arbitrary serving peers in the cluster, where k' is greater than or equal to k;using the client computer to reconstruct each data unit from the k' retrieved erasure coded data blocks;using the client computer to retrieve the media header from one of the serving peers;and using the client computer to reconstruct the data packets of the media body from the reconstructed data units.
  2. 21
    A method for streaming media to one or more clients in a peer-to peer, P2P, network, comprising using a computing device to:arbitrarily distribute subsets of erasure coded data blocks generated from data packets of an encoded media file to each of a plurality of available serving peers (220);on each serving peer, determine an availability vector which includes at least an identification of an erasure coding key space and defines exact subsets of erasure coded data blocks held by the corresponding serving peer;provide a list of the available serving peers to a client computer (210) following a client request;on the client computer, use the list of available serving peers provided to download the availability vector for each listed serving peer, and to further download a media header of the encoded media file from one or more of the serving peers;on the client computer, request transmission of a specific number of erasure coded data blocks for each data packet from one or more specific serving peers based on a client computer analysis of the availability vectors and on the list of available serving peers;and decode and render each packet received in response to the data block transmission requests to provide real-time streaming media playback on the client computer.
  3. 35
    A system for providing coordinated receiver-driven media streaming to one or more clients (210) from one or more non-cooperating peers (220), comprising modules performing:separating an encoded media file into a media header with one or more data packets, and a media body comprising n data packets and storing the media header on one or more available serving peers;separating each data packet into one or more data units;separating each data unit into k original data blocks;for each available serving peer, erasure coding the k original data blocks of each data packet to generate 1 to k erasure coded data blocks for each data unit, and storing the 1 to k erasure coded data blocks on each of the corresponding serving peers;on each serving peer, determining an availability vector which defines at least an identification of an erasure coding key space and the number of erasure coded data blocks for each data packet held by the corresponding serving peer;providing a list of the available serving peers to a client computer in response to a client request;on the client computer, retrieving the media header from one of the serving peers;on the client computer, downloading the availability vector for each listed serving peer;on the client computer, downloading the media header from one of the serving peers;on the client computer, using the availability vectors for requesting downloads of a total of k' erasure coded data blocks for each data unit from a set of one or more of the available serving peers, where k' is greater than or equal to k;using the client computer to reconstruct each data unit from the k' downloaded erasure coded data blocks;and using the client computer to reconstruct the data packets of the media body from the reconstructed data units.