# US 12,003,607 B2 · Systems and methods for packet-based file compression and storage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,607 B2
- Document ID: US12003607B2
- Status: Granted
- Kind: B2
- Application number: 17/818,393
- Filed: 2022-08-09
- Published: 2022-12-08
- Granted: 2024-06-04
- Earliest claimed: 2020-11-18
- Assignees: Verizon Patent and Licensing Inc.
- Applicants: Verizon Patent and Licensing Inc.
- Inventors: Viraj C. Mantri; Ramasubramanian Radhakkrishnan
- Web page: https://patentgrep.com/patent/US12003607B2

## CPC

- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H04L 69/04: Protocols for data compression, e.g. ROHC
- H03M 7/3059: {Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression}
- H04L 9/0656: {Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher}
- H04L 2209/30: Compression, e.g. Merkle-Damgard construction
- H04L 2209/34: Encoding or coding, e.g. Huffman coding or error correction
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system described herein may provide a technique for compressing sets of files using a packet-based conversion algorithm. The algorithm may compress and decompress files using a packet-based approach, whereby packet-sized sections of file data are compressed and arranged in a specified order such that the sections may be retrieved, decompressed, and reassembled to restore the original files as needed. The packet-based approach may allow for the size of a file set to be dramatically reduced, while the resulting compressed data may not be easily accessed by unauthorized entities. Compression and decompression may utilize a pointer associated with each file in the set of files. The pointer may be generated based on data associated with a file, such as file name, size, and/or other attributes or metadata. The compressed packets may be arranged relative to the pointer within a compressed file such that the packets may be identified and decompressed.

## Claims

### Claim 1

A method, comprising:
generating a first value for a first input file, of a plurality of input files, based on a first set of properties of the first input file;
generating a second value for a second input file, of the plurality of input files, based on a second set of properties of the second input file;
generating a first plurality of packets that each include a respective portion of the first input file;
generating a second plurality of packets that each include a respective portion of the second input file;
generating an output file that includes:
the first plurality of packets that are based on the first input file,
the second plurality of packets that are based on the second input file,
the first set of properties of the first input file, and
the second set of properties of the second input file,
wherein a sequence of the packets of the first and second pluralities of packets in the output file is based on the first and second values; and
providing the output file to a device, wherein the device:
determines the first and second values based on the first and second sets of properties of the first and second input files, as included in the output file,
determines the sequence of the packets in the output file based on the first and second values,
extracts the first plurality of packets from the output file based on the determined sequence of the packets in the output file, and
restores the first input file based on the extracted first plurality of packets and the determined sequence.

### Claim 2 (depends on 1)

The method of claim 1, wherein the output file includes a plurality of addresses, wherein the sequence of the packets indicates particular addresses at which respective packets, of the first and second pluralities of packets, are located within the output file.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first value includes a first random sequence identifier, and wherein the second value includes a different second random sequence identifier.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
identifying header data associated with the first input file; and
identifying content data associated with the first input file,
wherein generating the output file includes:
arranging a first portion of the first plurality of packets, that corresponds to the header data associated with the first input file, in a first arrangement in the output file; and
arranging a second portion of the first plurality of packets, that corresponds to the content data associated with the first input file, in a second arrangement in the output file.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
generating filler data,
wherein generating the output file further includes placing the filler data in the output file.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining a pattern based on the first value, wherein generating the output file includes distributing packets, of the first plurality of packets, within the output file based on the determined pattern.

### Claim 7

A first device, comprising:
one or more processors configured to:
generate a first value for a first input file, of a plurality of input files, based on a first set of properties of the first input file;
generate a second value for a second input file, of the plurality of input files, based on a second set of properties of the second input file;
generate a first plurality of packets that each include a respective portion of the first input file;
generate a second plurality of packets that each include a respective portion of the second input file;
generate an output file that includes:
the first plurality of packets that are based on the first input file,
the second plurality of packets that are based on the second input file,
the first set of properties of the first input file, and
the second set of properties of the second input file,
wherein a sequence of the packets of the first and second pluralities of packets in the output file is based on the first and second values; and
provide the output file to a second device, wherein the second device:
determines the first and second values based on the first and second sets of properties of the first and second input files, as included in the output file,
determines the sequence of the packets in the output file based on the first and second values,
extracts the first plurality of packets from the output file based on the determined sequence of the packets in the output file, and
restores the first input file based on the extracted first plurality of packets and the determined sequence.

### Claim 8 (depends on 7)

The first device of claim 7, wherein the output file includes a plurality of locations, wherein the sequence of the packets indicates particular locations at which respective packets, of the first and second pluralities of packets, are located within the output file.

### Claim 9 (depends on 8)

The first device of claim 8, wherein the plurality of locations of the output file include a plurality of bit or byte addresses.

### Claim 10 (depends on 7)

The first device of claim 7, wherein the first value includes a first random sequence identifier, and wherein the second value includes a different second random sequence identifier.

### Claim 11 (depends on 7)

The first device of claim 7, wherein the one or more processors are further configured to:
identify header data associated with the first input file; and
identify content data associated with the first input file,
wherein generating the output file includes:
arranging a first portion of the first plurality of packets, that corresponds to the header data associated with the first input file, in a first arrangement in the output file; and
arranging a second portion of the first plurality of packets, that corresponds to the content data associated with the first input file, in a second arrangement in the output file.

### Claim 12 (depends on 7)

The first device of claim 7, wherein the one or more processors are further configured to:
generate filler data,
wherein generating the output file further includes placing the filler data in the output file.

### Claim 13 (depends on 7)

The first device of claim 7, wherein the one or more processors are further configured to:
determine a pattern based on the first value, wherein generating the output file includes distributing packets, of the first plurality of packets, within the output file based on the determined pattern.

### Claim 14

A non-transitory computer-readable medium, storing a plurality of processor-executable instructions to:
generate a first value for a first input file, of a plurality of input files, based on a first set of properties of the first input file;
generate a second value for a second input file, of the plurality of input files, based on a second set of properties of the second input file;
generate a first plurality of packets that each include a respective portion of the first input file;
generate a second plurality of packets that each include a respective portion of the second input file;
generate an output file that includes:
the first plurality of packets that are based on the first input file,
the second plurality of packets that are based on the second input file,
the first set of properties of the first input file, and
the second set of properties of the second input file,
wherein a sequence of the packets of the first and second pluralities of packets in the output file is based on the first and second values; and
provide the output file to a device, wherein the device:
determines the first and second values based on the first and second sets of properties of the first and second input files, as included in the output file,
determines the sequence of the packets in the output file based on the first and second values,
extracts the first plurality of packets from the output file based on the determined sequence of the packets in the output file, and
restores the first input file based on the extracted first plurality of packets and the determined sequence.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the output file includes a plurality of locations, wherein the sequence of the packets indicates particular locations at which respective packets, of the first and second pluralities of packets, are located within the output file.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the plurality of locations of the output file include a plurality of bit or byte addresses.

### Claim 17 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the first value includes a first random sequence identifier, and wherein the second value includes a different second random sequence identifier.

### Claim 18 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the plurality of processor-executable instructions further include processor-executable instructions to:
identify header data associated with the first input file; and
identify content data associated with the first input file,
wherein generating the output file includes:
arranging a first portion of the first plurality of packets, that corresponds to the header data associated with the first input file, in a first arrangement in the output file; and
arranging a second portion of the first plurality of packets, that corresponds to the content data associated with the first input file, in a second arrangement in the output file.

### Claim 19 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the plurality of processor-executable instructions further include processor-executable instructions to:
generate filler data,
wherein generating the output file further includes placing the filler data in the output file.

### Claim 20 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the plurality of processor-executable instructions further include processor-executable instructions to:
determine a pattern based on the first value, wherein generating the output file includes distributing packets, of the first plurality of packets, within the output file based on the determined pattern.
