IP Library Granted Patent US 12,316,721
Granted Patent B2
US 12,316,721 · App. 17/709,329 · Granted May 27, 2025

Data compression techniques for efficient network management

Inventor: Sunilkumar jagdishbhai Prajapati (Bangalore, IN)
Assignee: Itron, Inc.
H04L69/04H03M7/60H04L69/324
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 12,316,721
App. No.
17/709,329
Granted
May 27, 2025
Kind
B2
Abstract

Techniques for data compression for efficient network management are described herein. In one example, group(s) of bytes are formed from among input bytes to be compressed. The groups are formed by including bytes having at least a certain number (e.g., three) zero-valued most significant bits (MSBs). A byte of input data having several zero-valued MSBs may be in several groups. A group having the largest product (number of bytes in the group times number of zero-valued MSBs in all bytes in the group) may be selected. A compressed-bytes array may be formed with data of the selected group of bytes, wherein the number of zero-valued MSBs originally present in all of the bytes of the group of bytes has been removed (to compress the array). An uncompressed-bytes array may be formed with bytes of the input bytes of data not in the selected group of bytes. An address-bit array may be formed to indicate the array in which data associated with each of the input bytes of data is stored.

Claims (83)

1. A method, comprising:

selecting, from among input bytes of data, a group of bytes each having at least two zero-valued most significant bits (MSBs), wherein a product of a number of bytes in the group of bytes multiplied by a number of zero-valued MSBs in all bytes of the group of bytes is greater than a number of the input bytes of data;

forming a compressed-bytes array with data of the group of bytes, wherein the number of zero-valued MSBs originally present in all of the bytes of the group of bytes has been removed;

forming an uncompressed-bytes array with bytes of the input bytes of data not in the selected group of bytes; and

forming an address-bit array to indicate in which array information associated with each of the input bytes of data is stored.

2. The method of claim 1 , additionally comprising:

forming a packet comprising the compressed-bytes array, the uncompressed-bytes array, the address-bit array, and a header; and

recording, in bits of the header, the number of zero-valued MSBs removed from all of the bytes of the compressed-bytes array.

3. The method of claim 1 , wherein selecting the group of bytes comprises:

identifying at least three groups of bytes, wherein each group of bytes is respectively associated with one of at least three different numbers of zero-valued MSBs, and wherein each byte of each group has at least as many zero-valued MSBs as the associated number of zero-valued MSBs;

calculating, for each identified group, a product of the associated number of zero-valued MSBs of the identified group times a number of members of the identified group; and

selecting, from among the at least three groups of bytes, a group of bytes having a product equal to, or larger than, other products calculated.

4. The method of claim 1 , wherein selecting the group of bytes comprises:

selecting, within the input bytes of data, a group of bytes having a first number of group-members, wherein all bytes in the group of bytes have at least a second number of zero-valued MSBs, and wherein a product of the first number times the second number is greater than, or equal to, products of any other groups of the input bytes of data configured to have at least some other number of zero-valued MSBs.

5. The method of claim 1 , wherein selecting the group of bytes comprises:

defining groups of bytes of the input bytes of data, wherein the groups comprise:

a first group having at least 2 zero-valued MSBs;

a second group having at least 3 zero-valued MSBs;

a third group having at least 4 zero-valued MSBs;

a fourth group having at least 5 zero-valued MSBs;

a fifth group having at least 6 zero-valued MSBs; and

a sixth group having at least 7 zero-valued MSBs; and

calculating, for each group, a product of a minimum number of zero-valued MSBs times a number of bytes in the group;

wherein selecting the group of bytes comprises selecting the group having a product larger than products respectively associated with other groups.

6. The method of claim 1 , additionally comprising:

sending a packet comprising the compressed-bytes array, the uncompressed-bytes array, and the address-bit array.

7. The method of claim 1 , additionally comprising:

configuring a header of a packet to indicate a number of MSBs removed from bytes in the compressed-bytes array.

8. The method of claim 1 , additionally comprising decompressing information contained in the compressed-bytes array, the uncompressed-bytes array and the address-bit array, wherein the decompressing comprises:

restoring zero-valued MSBs to data obtained from the compressed-bytes array; and

using the address-bit array to indicate a sequence by which data from the compressed-bytes array and the uncompressed-bytes array is ordered.

9. A network node, comprising:

a processor;

one or more memory devices in communication with the processor;

a data compression application, wherein the data compression application is defined in the one or more memory devices and comprises statements executed by the processor to perform actions comprising:

selecting, from among input bytes of data, a group of bytes having a first number of group-members, wherein all bytes in the group of bytes have at least a second number of zero-valued MSBs, and wherein a product of the first number times the second number is greater than, or equal to, products of any other groups of the input bytes of data configured to have at least some other number of zero-valued MSBs;

forming a compressed-bytes array with data of the group of bytes, wherein the second number of zero-valued MSBs originally present in all of the bytes of the group of bytes has been removed;

forming an uncompressed-bytes array with bytes of the input bytes of data not in the selected group of bytes; and

forming an address-bit array to indicate in which array information associated with each of the input bytes of data is stored.

10. The network node of claim 9 , additionally comprising:

a data compression application, wherein the data compression application is defined in the one or more memory devices and comprises statements executed by the processor to perform actions comprising:

restoring zero-valued MSBs to data obtained from the compressed-bytes array; and

using the address-bit array to indicate a sequence by which data from the compressed-bytes array and the uncompressed-bytes array is ordered.

11. The network node of claim 9 , wherein selecting the group of bytes comprises:

identifying at least three groups of bytes respectively associated with three different minimal numbers of zero-valued MSBs, wherein the three different minimal number of zero-valued MSBs are all between two and six, inclusive;

calculating, for each identified group, a product of the minimal number of zero-valued MSBs of the identified group times a number of members of the identified group; and

selecting the group of bytes that has a product equal to, or larger than, other products calculated.

12. The network node of claim 9 , wherein selecting the group of bytes comprises:

defining groups of bytes of the input bytes of data, wherein the groups of bytes comprise:

a first group having at least 2 zero-valued MSBs;

a second group having at least 3 zero-valued MSBs;

a third group having at least 4 zero-valued MSBs;

a fourth group having at least 5 zero-valued MSBs;

a fifth group having at least 6 zero-valued MSBs; and

a sixth group having at least 7 zero-valued MSBs; and

calculating, for each group, a product of a minimum number of zero-valued MSBs times a number of bytes in the group;

wherein selecting the group of bytes comprises selecting the group having the largest product.

13. The network node of claim 9 , wherein the processor additionally performs actions comprising:

sending a packet comprising the compressed-bytes array, the uncompressed-bytes array, and the address-bit array.

14. The network node of claim 9 , wherein the processor additionally performs actions comprising:

forming a packet comprising the compressed-bytes array, the uncompressed-bytes array and the address-bit array; and

indicating, in a header of the packet, a number of zero-valued MSBs removed from the compressed-bytes array.

15. One or more computer-readable media storing computer-executable instructions that, when executed by one or more processors, configure a computing device to perform acts comprising:

selecting, from among input bytes of data, a group of bytes each having at least two zero-valued most significant bits (MSBs), wherein a product of a number of bytes in the group of bytes multiplied by a number of zero-valued MSBs in all bytes of the group of bytes is greater than a number of the input bytes of data;

forming a compressed-bytes array with data of the group of bytes, wherein the number of zero-valued MSBs originally present in all of the bytes of the group of bytes has been removed;

forming an uncompressed-bytes array with bytes of the input bytes of data not in the selected group of bytes; and

forming an address-bit array to indicate in which array information associated with each of the input bytes of data is stored.

16. One or more computer-readable media as recited in claim 15 , wherein the acts additionally comprise:

forming a packet comprising the compressed-bytes array, the uncompressed-bytes array, the address-bit array, and a header; and

recording, in bits of the header, the number of zero-valued MSBs originally present in all of the bytes of the selected group of bytes.

17. One or more computer-readable media as recited in claim 15 , wherein the acts for selecting the group of bytes additionally comprise:

identifying at least three groups of bytes respectively associated with at least three different minimal numbers of zero-valued MSBs, wherein the at least three different minimal number of zero-valued MSBs are all between two and six, inclusive;

calculating, for each identified group, a product of a minimal number of zero-valued MSBs of the identified group times a number of members of the identified group; and

selecting the group of bytes that has a product equal to, or larger than, other products calculated.

18. One or more computer-readable media as recited in claim 15 , wherein the acts for selecting the group of bytes additionally comprise:

selecting, within the input bytes of data, a group of bytes having a first number of group-members, wherein all bytes in the group of bytes have at least a second number of zero-valued MSBs, and wherein a product of the first number times the second number is greater than, or equal to, products of any other groups of the input bytes configured to have at least some other number of zero-valued MSBs.

19. One or more computer-readable media as recited in claim 15 , wherein the acts additionally comprise:

configuring a header of a packet to indicate that compressed data is contained by a payload of the packet; and

sending a packet comprising the header, the compressed-bytes array, the uncompressed-bytes array, and the address-bit array.

20. One or more computer-readable media as recited in claim 15 , wherein the acts additionally comprise:

decompressing information contained in the compressed-bytes array, the uncompressed-bytes array and the address-bit array, wherein the decompressing comprises:

restoring zero-valued MSBs to data obtained from the compressed-bytes array; and

using the address-bit array to indicate a sequence by which data from the compressed-bytes array and the uncompressed-bytes array is ordered.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2022
From: PRAJAPATI, SUNILKUMAR JAGDISHBHAI
To: ITRON, INC.
Reel/Frame 060042/0917 →
Continuity (1)
Related Publication 20230319167A1 · Oct 5, 2023
References Cited (26)
US 7197142B2 · Alten · 2007 [cited by applicant]
US 8046173B2 · Evans et al. · 2011 [cited by applicant]
US 10044369B1 · Paris · 2018 [cited by examiner]
US 10972126B2 · Fenney et al. · 2021 [cited by applicant]
US 20030039357A1 · Alten · 2003 [cited by applicant]
US 20050093873A1 · Paltashev · 2005 [cited by examiner]
US 20050273274A1 · Evans et al. · 2005 [cited by applicant]
US 20070294531A1 · Alten · 2007 [cited by applicant]
US 20080270439A1 · Evans et al. · 2008 [cited by applicant]
US 20100305449A1 · Wegener et al. · 2010 [cited by applicant]
US 20100331689A1 · Wegener · 2010 [cited by examiner]
US 20130054546A1 · Solihin · 2013 [cited by examiner]
US 20130301890A1 · Kaempfer · 2013 [cited by examiner]
US 20150309650A1 · Ahmed et al. · 2015 [cited by applicant]
US 20190110082A1 · Fenney · 2019 [cited by examiner]
US 20200007150A1 · Lacey et al. · 2020 [cited by applicant]
US 20200007156A1 · Fenney · 2020 [cited by applicant]
US 20200177902A1 · Jun et al. · 2020 [cited by applicant]
US 20200344189A1 · Cui et al. · 2020 [cited by applicant]
US 20210304441A1 · Yang · 2021 [cited by applicant]
US 20220027158A1 · Dasika et al. · 2022 [cited by applicant]
US 20220256164A1 · Bond et al. · 2022 [cited by applicant]
US 20220256178A1 · Bond et al. · 2022 [cited by applicant]
US 20230319166A1 · Prajapati · 2023 [cited by applicant]
WO WO2005122022A2 · 2005 [cited by applicant]
Office Action for U.S. Appl. No. 17/709,316, mailed on Jun. 20, 2023, Sunilkumar jagdishbhai Prajapati, “Data Compression Techniques for Efficient Network Management”, 5 pages. [cited by applicant]