Method and apparatus for adaptively companding data packets in a data communication system
First Claim
1. A method for adaptively compressing data packets for transmission between a first communication device and a second communication device, the method comprising the steps of:
- a) generating, by the first communication device, a plurality of data packets;
b) selecting, by the first communication device, at least one of the plurality of data packets to produce at least one selected data packet, wherein a quantity of the at least one selected data packet is less than the plurality of data packets;
c) performing, by the first communication device, a first compression of each data packet in a first group of the plurality of data packets that includes the at least one selected data packet to produce compressed data packets;
d) transmitting, by the first communication device, the compressed data packets to the second communication device;
e) receiving, by the second communication device, the compressed data packets to produce received compressed data packets;
f) determining, by the second communication device, whether the received compressed data packets include the at least one selected data packet;
g) when the received compressed data packets include the at least one selected data packet, transmitting, by the second communication device, a response packet to the first communication device, the response packet indicating which selected data packets of the at least one selected data packet were received by the second communication device; and
h) upon receipt of the response packet, performing, by the first communication device, a second compression of each data packet in a second group of the plurality of data packets based on the response packet to produce adaptively compressed data packets.
4 Assignments
0 Petitions
Accused Products
Abstract
A data communication system (100) employs a method and apparatus for adaptively companding (compressing and expanding) data packets therein. A first communication device (e.g., 107) generates a plurality of data packets (201-207) and selects one or more, but not all, of the data packets. The first device then performs a compression of each data packet in a first group of data packets that includes the selected data packets (202-205). The first device transmits the compressed data packets to a second communication device (e.g., 108). Upon receiving the compressed data packets, the second device determines whether the received compressed data packets include one or more of the data packets selected by the first device. When the received data packets include one or more of the selected data packets, the second device transmits a response packet (301) to the first device indicating which, if any, of the selected data packets were received. Upon receipt of the response packet, the first device performs an adaptive compression of each data packet in a second group of data packets based on the response packet and transmits the adaptively compressed data packets to the second device. The second device expands the adaptively compressed data packets based on which selected data packets were received in the previous transmission.
145 Citations
30 Claims
-
1. A method for adaptively compressing data packets for transmission between a first communication device and a second communication device, the method comprising the steps of:
-
a) generating, by the first communication device, a plurality of data packets; b) selecting, by the first communication device, at least one of the plurality of data packets to produce at least one selected data packet, wherein a quantity of the at least one selected data packet is less than the plurality of data packets; c) performing, by the first communication device, a first compression of each data packet in a first group of the plurality of data packets that includes the at least one selected data packet to produce compressed data packets; d) transmitting, by the first communication device, the compressed data packets to the second communication device; e) receiving, by the second communication device, the compressed data packets to produce received compressed data packets; f) determining, by the second communication device, whether the received compressed data packets include the at least one selected data packet; g) when the received compressed data packets include the at least one selected data packet, transmitting, by the second communication device, a response packet to the first communication device, the response packet indicating which selected data packets of the at least one selected data packet were received by the second communication device; and h) upon receipt of the response packet, performing, by the first communication device, a second compression of each data packet in a second group of the plurality of data packets based on the response packet to produce adaptively compressed data packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for a first communication device to adaptively compress data packets for transmission to a second communication device, the method comprising the steps of:
-
a) generating a plurality of data packets; b) selecting at least one of the plurality of data packets to produce at least one selected data packet, wherein a quantity of the at least one selected data packet is less than the plurality of data packets; c) performing a first compression of each data packet in a first group of the plurality of data packets that includes the at least one selected data packet to produce compressed data packets; d) transmitting the compressed data packets to the second communication device; e) receiving a response packet from the second communication device, the response packet indicating which selected data packets of the at least one selected data packet were received by the second communication device; and f) performing a second compression of each data packet in a second group of the plurality of data packets based on the response packet to produce adaptively compressed data packets. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method for a first communication device to adaptively decompress data packets received from a second communication device, the method comprising the steps of:
-
a) receiving a plurality of compressed data packets from the second communication device to produce received compressed data packets; b) determining whether the received compressed data packets include at least one data packet selected by the second communication device to produce at least one selected data packet; c) when the received compressed data packets include the at least one selected data packet, storing the at least one selected data packet to produce at least one stored selected data packet and transmitting a response packet to the second communication device, the response packet indicating which selected data packets of the at least one selected data packet were received; d) receiving a plurality of adaptively compressed data packets from the second communication device to produce received adaptively compressed data packets, the plurality of adaptively compressed data packets being compressed based on the response packet; and e) performing an expansion of the received adaptively compressed data packets based on the at least one stored selected data packet. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A communication device for transmitting adaptively compressed data packets, the communication device comprising:
-
a data packet generator; a selector, coupled to the data packet generator, for selecting at least one of a plurality of data packets produced by the data packet generator to produce at least one selected data packet, wherein a quantity of the at least one selected data packet is less than the plurality of data packets; a memory, coupled to the selector, for storing the at least one selected data packet; a database, coupled to the memory, containing data entries that associate particular data strings to corresponding compressed code words, each compressed code word containing fewer bits than a corresponding particular data string; a compressor, coupled to the selector and the database, for comparing portions of a group of the plurality of data packets, that includes the at least one selected data packet, to the data entries in the database and, when particular portions of the group match respective data entries, substituting corresponding compressed code words for those particular portions to produce compressed data packets; a transmitter, coupled to the compressor, for transmitting the compressed data packets to a target communication device; and a receiver, coupled to the database, for receiving a response packet from the target communication device, instructing the database to retrieve, from the memory, selected data packets of the at least one selected data packet identified in the response packet, and instructing the database to create additional data entries corresponding to the selected data packets, thereby allowing the database to be adaptively updated for subsequent compressed data packet transmissions.
-
-
27. A communication device for receiving adaptively compressed data packets, the communication device comprising:
-
a receiver that receives a plurality of compressed data packets from a sending communication device to produce received compressed data packets, the plurality of compressed data packets including at least one data packet selected by the sending communication device prior to transmission to produce at least one selected data packet, wherein a quantity of the at least one selected data packet is less than the plurality of compressed data packets; a database containing data entries that associate compressed code words with corresponding expanded data strings, each of the expanded data strings including more bits than a corresponding compressed code word; a selected packet determiner, coupled to the receiver and the database, that determines which of the received compressed data packets comprise the at least one selected data packet and that instructs the database to create an additional data entry for each selected data packet, thereby adaptively updating the database for use during a subsequent reception of compressed data packets; and an expander, coupled to the receiver and the database, that compares portions of the received compressed data packets to the data entries in the database and, when particular portions of the received compressed data packets match respective data entries, that substitutes corresponding expanded data strings for those particular portions to reproduce original data packets from the received compressed data packets. - View Dependent Claims (28, 29, 30)
-
Specification