Encoding and decoding optimisations

US9729624B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9729624-B2
Application numberUS-9798006-A
CountryUS
Kind codeB2
Filing dateDec 4, 2006
Priority dateDec 22, 2005
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The invention provides methods of encoding content for distribution over a network and methods for decoding encoded content which has been distributed over the network. In a first example in which the content is divided into a plurality of segments and each segment comprising a plurality of blocks of data, the method comprises selecting a segment from the plurality of segments and selecting at least two blocks of the selected segment from a store of blocks. A new encoded block is created from a linear combination of the selected blocks.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: encoding content for distribution over a network, the content being divided into a plurality of segments and each segment comprising a plurality of un-encoded blocks of data, wherein encoding content for distribution over the network comprises: selecting a segment from the plurality of segments stored in memory; selecting a target degree for a new encoded block, wherein a degree of an encoded block is a quantity of un-encoded blocks that correspond to the encoded block; selecting, from a store of previously-encoded blocks, at least two previously-encoded blocks corresponding to the selected segment, wherein each of the at least two previously-encoded blocks has a degree less than or equal to the target degree; and creating the new encoded block having a degree equal to the target degree from a linear combination of the selected at least two previously-encoded blocks using a processor. 2. A method according to claim 1 , wherein selecting a segment comprises an infrequent but periodic step of selecting all of the plurality of segments. 3. A method according to claim 1 , wherein selecting a segment comprises: randomly selecting a segment from the plurality of segments. 4. A method according to claim 1 , wherein selecting a segment comprises: selecting a segment from the plurality of segments according to a specified sequence. 5. A method according to claim 1 , wherein selecting at least two previously-encoded blocks comprises: selecting all available previously-encoded blocks of the selected segment from a store of encoded blocks. 6. A method according to claim 1 , further comprising: storing the new encoded block. 7. A method according to claim 6 , wherein creating a new encoded block uses a pre-computed look up table. 8. A method according to claim 1 , wherein the content comprises a software update file, and the software update file is to be distributed over the network. 9. A method according to claim 8 , wherein the software update file is to be distributed to nodes in the network. 10. A method according to claim 1 , wherein the content comprises a patch file to be distributed over the network. 11. One or more computer-readable memory to store executable instructions, when the executable instructions are executed by a processor, the processor implements acts for encoding content for distribution over a network, the content being divided into a plurality of un-encoded blocks of data, the acts comprising: selecting a target degree for a new encoded block, wherein a degree of an encoded block is a number of un-encoded blocks corresponding to the encoded block; attempting to select a plurality of previously-encoded blocks from a store of previously-encoded blocks to create the new encoded block, the new encoded block and each selected previously-encoded block having a degree which is less than or equal to the target degree; increasing, if the attempt fails, the target degree by one and repeating the attempting step; and creating, if the attempt succeeds, the new encoded block from a linear combination of the selected plurality of previously-encoded blocks. 12. The computer-readable memory according to claim 11 , wherein the selected plurality of previously-encoded blocks comprises a maximum number of previously-encoded blocks from which the new encoded block can be created. 13. The computer-readable memory according to claim 12 , the acts further comprising: storing the new encoded block. 14. The computer-readable memory according to claim 13 , wherein creating the new encoded block uses a pre-computed look up table. 15. A method of encoding content for distribution over a network, the content being divided into a plurality of un-encoded blocks of data, the method comprising: selecting a plurality of encoded blocks from a store of encoded blocks in the network, each encoded block having a degree that is less than or equal to a target degree, the degree being a number of un-encoded blocks from which each of the encoded blocks are created; creating a new encoded block from a linear combination of the selected plurality of encoded blocks; and storing the new encoded block in memory. 16. A method according to claim 15 , wherein the new encoded block is stored in a cache. 17. A method according to claim 16 , wherein storing comprises: storing the new encoded block for a predetermined period of time. 18. A method according to claim 17 , wherein the store of encoded blocks comprises a first part located in a main memory of a node and a second part located in a cache of the node. 19. A method according to claim 18 , wherein creating the new encoded block uses a pre-computed look up table.

Assignees

Inventors

Classifications

  • H04L67/104Primary

    Peer-to-peer [P2P] networks · CPC title

  • using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes · CPC title

  • characterised by resources being split in blocks or fragments · CPC title

  • Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network · CPC title

  • H04N19/184Primary

    the unit being bits, e.g. of the compressed video stream · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9729624B2 cover?
The invention provides methods of encoding content for distribution over a network and methods for decoding encoded content which has been distributed over the network. In a first example in which the content is divided into a plurality of segments and each segment comprising a plurality of blocks of data, the method comprises selecting a segment from the plurality of segments and selecting at …
Who is the assignee on this patent?
Gkantsidis Christos, Miller John, Costa Manuel, and 3 more
What technology area does this patent fall under?
Primary CPC classification H04L67/104. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).