Data compressor using hints

US9344528B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9344528-B2
Application numberUS-201113222927-A
CountryUS
Kind codeB2
Filing dateAug 31, 2011
Priority dateAug 31, 2011
Publication dateMay 17, 2016
Grant dateMay 17, 2016

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.

An invention is disclosed for compressing data. In embodiments of the invention, input data is processed to determine one or more hints, or meta-data about how to compress the data. These hints may be produced based on the contents of the data itself, or by the process which generated the data. A hint may comprise an indication that a portion of the data matches another portion of the data, an indication that the portion of the data should not be compressed by an associated compressor, or an indication that the portion of the data should be compressed normally by the associated compressor. The source data and these hints may then be sent to a compressor, which traverses both the source data and the hints, and encodes the source data accordingly to produce an encoded data output stream.

First claim

Opening claim text (preview).

What is claimed: 1. A method for compressing data for transmission in a remote presentation session, comprising: receiving data to be transmitted to a client via a remote presentation session, the data comprising: a first hint based on a first portion of the data, the first hint including an indication to apply a first technique to the first portion of the data, the first technique comprising encoding the first portion of the data as a reference to a third portion of the data that matches the first portion of the data, wherein the first portion of the data is identified based on determining that a chunk of the first portion of the data matches a chunk of the third portion of the data; and a second hint based on a second portion of the data, the second hint including an indication to apply a second technique to the second portion of the data, the second technique comprising copying the second portion of the data without encoding the second portion of data; based on the first hint, applying the first technique to encode the first portion of the data; based on the second hint, applying the second technique to the second portion of the data; and sending an output stream comprising the encoded first portion of data and the copied second portion of data to the client via the remote presentation session. 2. The method of claim 1 , wherein the second hint is based on determining that the second portion of the data has already been compressed. 3. The method of claim 2 , wherein determining that the second portion of the data has already been compressed comprises: determining that the second portion of the data comprises image data in a compressed format. 4. The method of claim 1 , wherein the first hint is based on determining that the first portion of the data matches the third portion of the data using a rolling hash. 5. The method of claim 1 , wherein the second hint is based on determining that an amount of available computing resources has changed since providing the first hint to encode the first portion of the data with the first technique. 6. The method of claim 1 , wherein applying the first technique to the first portion of the data further comprises: writing the first portion of the data into the output stream as a reference to the third portion of the data without sending the first portion of the data to an encoder. 7. The method of claim 1 , wherein applying the first technique to the first portion of the data further comprises: transferring the first portion of the data to an encoder, the encoder writing the first portion of the data into the output stream as a reference to the third portion of the data. 8. The method of claim 1 , further comprising: upon applying the first technique to encode the first portion of the data, advancing to the second hint. 9. The method of claim 1 , the data further comprising: a third hint based on a third portion of the data, the third hint including an indication to apply a third technique to the third portion of the data, the third technique comprising encoding the third portion of the data as a literal. 10. The method of claim 9 , further comprising: upon applying the second technique to copy the second portion of the data, advancing to the third hint. 11. The method of claim 1 , the data further comprising: a fourth portion of data that is not associated with a hint, wherein the fourth portion of data is compressed based on a default technique. 12. A system for compressing data for transmission in a remote presentation session, comprising: a processor; and a memory communicatively coupled to the processor when the system is operational, the memory bearing processor-executable instructions that, when executed on the processor, cause the system to at least: receive data to be transmitted to a client via a remote presentation session, the data comprising: a first hint based on a first portion of the data, the first hint including an indication to apply a first technique to the first portion of the data, wherein the first portion of the data is identified based on determining that a chunk of the first portion of the data matches a chunk of a third portion of the data; and a second hint based on the contents of a second portion of the data, the second hint including an indication to apply a second technique to the second portion of the data, the second technique comprising copying the second portion of the data without encoding the second portion of data; based on the first hint, apply the first technique to the first portion of the data; based on the second hint, apply the second technique to the second portion of the data; and send an output stream to the client via the remote presentation session. 13. The system of claim 12 , wherein the first hint is based on: a determination that a first hash value of the first portion of the data matches a second hash value of the third portion of the data; and a determination that the first technique is indicative of encoding the first portion of the data as a reference to the third portion of the data based on the match between the first hash value and the second hash value. 14. The system of claim 12 , wherein the second hint is based on a determination that the second portion of the data has already been compressed. 15. The system of claim 14 , wherein the determination that the second portion of the data has already been compressed further comprises a determination that the second portion of the data comprises image data in a compressed format. 16. The system of claim 12 , wherein the first technique comprises encoding the first portion of data as a reference to a third portion of data that matches the first portion of the data. 17. The system of claim 12 , wherein the second technique comprises encoding the second portion of data as a literal. 18. The system of claim 12 , further comprising: upon applying the first technique to encode the first portion of the data, advance to the second hint. 19. A computer-readable storage device for compressing data for transmission in a remote presentation session, bearing computer-readable instructions, that when executed on a computer, cause the computer to perform operations comprising: receiving data to be transmitted to a client via a remote presentation session, the data comprising: a first hint based on a first portion of the data, the first hint including an indication to apply a first technique to the first portion of the data wherein the first portion of the data is identified based on determining that a chunk of the first portion of the data matches a chunk of a third portion of the data; and a second hint based on the contents of a second portion of the data, the second hint including an indication to apply a second technique to the second portion of the data, the second technique comprising copying the second portion of the data without encoding the second portion of data; based on the first hint, applying the first technique to the first portion of the data; upon applying the first technique to the first portion of the data, advancing to the second hint; based on the second hint, applying the second technique to the second portion of the data; and sending an output stream to the client via the remote presentation session.

Assignees

Inventors

Classifications

  • H04L69/04Primary

    Protocols for data compression, e.g. ROHC · CPC title

  • H04L67/38Primary

    Electricity · mapped topic

  • H04L67/131Primary

    Protocols for games, networked simulations or virtual reality · 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 US9344528B2 cover?
An invention is disclosed for compressing data. In embodiments of the invention, input data is processed to determine one or more hints, or meta-data about how to compress the data. These hints may be produced based on the contents of the data itself, or by the process which generated the data. A hint may comprise an indication that a portion of the data matches another portion of the data, an …
Who is the assignee on this patent?
Sliger Michael, Albu Voicu Anton, Stoyanov Vladimir K, and 2 more
What technology area does this patent fall under?
Primary CPC classification H04L69/04. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 17 2016 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).