IP Library › Granted Patent US 10,708,194
Granted Patent B2
US 10,708,194 · App. 16/120,213 · Granted Jul 7, 2020

Dynamic history multistream long range compression

Inventors: Douglas Merrill Dillon (Gaitherburg, MD); Uday R. Bhaskar (North Potomac, MD)
Assignee: HUGHES NETWORKS SYSTEMS, LLC
H04L47/722H04L65/4069H04L65/602H04L65/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,708,194
App. No.
16/120,213
Granted
Jul 7, 2020
Kind
B2
Abstract

Dynamic history multistream long range compression (DHC) techniques are described for efficiently compressing multiple, prioritized data streams received over a channel. A history buffer is associated with each received stream and a DHC compressor dynamically allocates fixed sized history sections to and from each history buffer. In implementations, the DHC compressor makes stream history size adjustments prior to compressing a block of data and sends information identifying the change in history size to a DHC decompressor. The DHC decompressor sends signaling information to the DHC compressor that is used to ensure that the DHC decompressor can operate with a fixed amount of total history memory.

Claims (50)

1. A method, comprising:

receiving a compressed data block associated with a first data stream of a plurality of prioritized data streams, wherein each of the plurality of prioritized data streams is associated with a history buffer comprising one or more allocated history sections;

determining if the compressed data block is tagged with a history size increase;

in response to determining that the compressed data block is tagged with the history size increase, allocating an additional history section to the history buffer associated with the first data stream;

inserting the additional history section into the history buffer associated with the first data stream; and

decompressing the compressed data block using a long range decompressor associated with the first data stream.

2. The method of claim 1 , wherein the additional history section is inserted after a most recently used history section of the history buffer associated with the first data stream.

3. The method of claim 1 , further comprising: after inserting the additional history section, writing data obtained from decompressing the compressed data block into the additional history section.

4. The method of claim 1 , further comprising: decompressing the compressed data block using a short range decompressor associated with the first data stream.

5. A method, comprising:

receiving a compressed data block associated with a first data stream of a plurality of prioritized data streams, wherein each of the plurality of prioritized data streams is associated with a history buffer comprising one or more allocated history sections;

determining if the compressed data block is tagged with a history size increase;

decompressing the compressed data block using a long range decompressor associated with the first data stream;

receiving a stream history decrease signaling message from a compressor, wherein the stream history decrease signaling message is associated with a second data stream of the plurality of prioritized data streams; and

deallocating a history section from the history buffer associated with the second data stream.

6. The method of claim 5 , wherein the deallocated history section is a least recently used history section of the history buffer associated with the second data stream.

7. The method of claim 5 , further comprising:

increasing a count of a number of stream history decrease signaling messages received; and

transmitting a decrease signaling block to a compressor, the decrease signaling block comprising the count.

8. A decompressor, comprising:

a processor; and

a non-transitory computer-readable medium operatively coupled to the processor, and having instructions stored therein that when executed by the processor cause the decompressor to:

receive a compressed data block associated with a first data stream of a plurality of prioritized data streams, wherein each of the plurality of prioritized data streams is associated with a history buffer comprising one or more allocated history sections;

determine if the compressed data block is tagged with a history size increase;

in response to determining that the compressed data block is tagged with the history size increase, allocate an additional history section to the history buffer associated with the first data stream;

insert the additional history section into the history buffer associated with the first data stream; and

decompress the compressed data block using a long range decompressor associated with the first data stream.

9. The decompressor of claim 8 , wherein the additional history section is inserted after a most recently used history section of the history buffer associated with the first data stream.

10. The decompressor of claim 8 , wherein the instructions, when executed by the processor, further cause the decompressor to: after inserting the additional history section, write data obtained from decompressing the compressed data block into the additional history section.

11. The decompressor of claim 8 , wherein the instructions, when executed by the processor, further cause the decompressor to: decompress the compressed data block using a short range decompressor associated with the first data stream.

12. A decompressor, comprising:

a processor; and

a non-transitory computer-readable medium operatively coupled to the processor, and having instructions stored therein that when executed by the processor cause the decompressor to:

receive a compressed data block associated with a first data stream of a plurality of prioritized data streams, wherein each of the plurality of prioritized data streams is associated with a history buffer comprising one or more allocated history sections;

determine if the compressed data block is tagged with a history size increase;

decompress the compressed data block using a long range decompressor associated with the first data stream;

receive a stream history decrease signaling message from a compressor, wherein the stream history decrease signaling message is associated with a second data stream of the plurality of prioritized data streams; and

deallocate a history section from the history buffer associated with the second data stream.

13. The decompressor of claim 12 , wherein the deallocated history section is a least recently used history section of the history buffer associated with the second data stream.

14. The decompressor of claim 12 , wherein the instructions, when executed by the processor, further cause the decompressor to:

increase a count of a number of stream history decrease signaling messages received; and

transmit a decrease signaling block to a compressor, the decrease signaling block comprising the count.

15. A non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to perform a method comprising:

receiving a compressed data block associated with a first data stream of a plurality of prioritized data streams, wherein each of the plurality of prioritized data streams is associated with a history buffer comprising one or more allocated history sections;

determining if the compressed data block is tagged with a history size increase;

in response to determining that the compressed data block is tagged with the history size increase, allocating an additional history section to the history buffer associated with the first data stream;

inserting the additional history section into the history buffer associated with the first data stream; and

decompressing the compressed data block using a long range decompressor associated with the first data stream.

16. The non-transitory computer readable medium of claim 15 , wherein the additional history section is inserted after a most recently used history section of the history buffer associated with the first data stream.

17. The non-transitory computer readable medium of claim 15 , wherein the method further comprises: after inserting the additional history section, writing data obtained from decompressing the compressed data block into the additional history section.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2018
From: DILLON, DOUGLAS MERRILL; BHASKAR, UDAY R.
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 046771/0861 →
Continuity (2)
Division 15162260 · May 23, 2016
Related Publication 20180375786A1 · Dec 27, 2018
Cited By (1)
US 12,348,833