IP Library Granted Patent US 9,715,425
Granted Patent B2
US 9,715,425 · App. 14/954,836 · Granted Jul 25, 2017

Time aligned transmission of concurrently coded data streams

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 9,715,425
App. No.
14/954,836
Granted
Jul 25, 2017
Kind
B2
Abstract

A method includes receiving a plurality of streams of data from a plurality of data sources. During a first time interval of receiving the streams of data, the method further includes dividing each of the plurality of streams into a first time-aligned data segment to produce a set of first time-aligned data segments. The method further includes generating a first data matrix from data blocks of the set of first time-aligned data segments. The method further includes encoding the first data matrix using an encoding matrix to produce a first coded matrix. The method further includes slicing the first coded matrix into a first set of encoded data slices based on the first orientation. The method further includes outputting a first set of encoded data slices of the first coded matrix.

Claims (77)

1. A method for execution by a computing device, the method comprises:

receiving a plurality of streams of data from a plurality of data sources;

during a first time interval of receiving the plurality of streams of data, dividing each of the plurality of streams into a first time-aligned data segment to produce a set of first time-aligned data segments;

generating a first data matrix from data blocks of the set of first time-aligned data segments, wherein a first orientation of the first data matrix includes a first data block from each of the first time-aligned data segments;

encoding the first data matrix using an encoding matrix to produce a first coded matrix;

slicing the first coded matrix into a first set of encoded data slices based on the first orientation; and

outputting a first set of encoded data slices of the first coded matrix.

2. The method of claim 1 further comprises:

during a second time interval of receiving the plurality of streams of data, dividing each of the plurality of streams into a second time-aligned data segment to produce a set of second time-aligned data segments;

generating a second data matrix from data blocks of the set of second time-aligned data segments, wherein the first orientation of the second data matrix includes a first data block from each of the second time-aligned data segments;

encoding the second data matrix using the encoding matrix to produce a second coded matrix;

slicing the second coded matrix into a first set of encoded data slices based on the first orientation; and

outputting a second set of encoded data slices of the first coded matrix.

3. The method of claim 1 further comprises:

outputting the first set of encoded data slices to a set of storage units for storage therein.

4. The method of claim 1 further comprises:

outputting the first set of encoded data slices to a receiving entity for display thereon.

5. The method of claim 1 further comprises:

outputting the first set of encoded data slices via one or more wireless communication channels.

6. The method of claim 1 , wherein generating the first data matrix comprises:

dividing each of the first time-aligned data segments into a set of data blocks to produce a plurality of sets of data blocks, wherein each data block of the set of data blocks is of a given data size, wherein the first data block corresponds to a first time portion of the first time interval and a second data block of each of the plurality of sets of data blocks corresponds to a second time portion of the first time interval.

7. The method of claim 1 , wherein the slicing the first coded matrix into the first set of encoded data slices comprises:

including an encoded representation of each of the first data blocks from each of the first time-aligned data segments in a first encoded data slice of the first set of encoded data slices.

8. The method of claim 1 , wherein the first orientation comprises a row of the first data matrix.

9. The method of claim 1 , wherein each of the plurality of streams of data comprises at least one of:

an audio stream of data;

a video stream of data;

a text stream of data;

a data file; and

a two way radio dispatch audio stream of data.

10. A computing device comprises:

a network interface;

memory; and

a processing module operably coupled to the network interface and the memory, wherein the processing module is operable to:

receive, via the network interface, a plurality of streams of data from a plurality of data sources;

during a first time interval of receiving the plurality of streams of data, divide each of the plurality of streams into a first time-aligned data segment to produce a set of first time-aligned data segments;

generate a first data matrix from data blocks of the set of first time-aligned data segments, wherein a first orientation of the first data matrix includes a first data block from each of the first time-aligned data segments;

encode the first data matrix using an encoding matrix to produce a first coded matrix;

slice the first coded matrix into a first set of encoded data slices based on the first orientation; and

output, via the network interface, a first set of encoded data slices of the first coded matrix.

11. The computing device of claim 10 , wherein the processing module is further operable to:

during a second time interval of receiving the plurality of streams of data, divide each of the plurality of streams into a second time-aligned data segment to produce a set of second time-aligned data segments;

generate a second data matrix from data blocks of the set of second time-aligned data segments, wherein the first orientation of the second data matrix includes a first data block from each of the second time-aligned data segments;

encode the second data matrix using the encoding matrix to produce a second coded matrix;

slice the second coded matrix into a first set of encoded data slices based on the first orientation; and

output, via the interface module, a second set of encoded data slices of the first coded matrix.

12. The computing device of claim 10 further comprises at least one of:

outputting the first set of encoded data slices to a set of storage units for storage therein; and

outputting the first set of encoded data slices to a receiving entity for display thereon.

13. The computing device of claim 10 , wherein the network interface comprises:

a wireless transceiver for wirelessly transmitting the first set of encoded data slices.

14. The computing device of claim 10 , wherein the processing module generates the first data matrix by:

dividing each of the first time-aligned data segments into a set of data blocks to produce a plurality of sets of data blocks, wherein each data block of the set of data blocks is of a given data size, wherein the first data block corresponds to a first time portion of the first time interval and a second data block of each of the plurality of sets of data blocks corresponds to a second time portion of the first time interval.

15. The computing device of claim 10 , wherein the processing module slices the first coded matrix into the first set of encoded data slices by:

including an encoded representation of each of the first data blocks from each of the first time-aligned data segments in a first encoded data slice of the first set of encoded data slices.

16. A non-transitory computer readable storage device comprises:

a first memory section that stores operational instruction that, when executed by a computing device, causes the computing device to:

receive a plurality of streams of data from a plurality of data sources;

a second memory section that stores operational instruction that, when executed by the computing device, causes the computing device to:

during a first time interval of receiving the plurality of streams of data, divide each of the plurality of streams into a first time-aligned data segment to produce a set of first time-aligned data segments;

generate a first data matrix from data blocks of the set of first time-aligned data segments, wherein a first orientation of the first data matrix includes a first data block from each of the first time-aligned data segments;

encode the first data matrix using an encoding matrix to produce a first coded matrix; and

slice the first coded matrix into a first set of encoded data slices based on the first orientation; and

a third memory section that stores operational instruction that, when executed by the computing device, causes the computing device to:

output a first set of encoded data slices of the first coded matrix.

17. The non-transitory computer readable storage device of claim 16 , wherein the second memory section further stores operational instruction that, when executed by the computing device, causes the computing device to:

during a second time interval of receiving the plurality of streams of data, divide each of the plurality of streams into a second time-aligned data segment to produce a set of second time-aligned data segments;

generate a second data matrix from data blocks of the set of second time-aligned data segments, wherein the first orientation of the second data matrix includes a first data block from each of the second time-aligned data segments;

encode the second data matrix using the encoding matrix to produce a second coded matrix; and

slice the second coded matrix into a first set of encoded data slices based on the first orientation.

18. The non-transitory computer readable storage device of claim 16 , wherein the third memory section further stores operational instruction that, when executed by the computing device, causes the computing device to at least one of:

output the first set of encoded data slices to a set of storage units for storage therein; and

output the first set of encoded data slices to a receiving entity for display thereon.

19. The non-transitory computer readable storage device of claim 16 , wherein the second memory section further stores operational instruction that, when executed by the computing device, causes the computing device to generate the first data matrix by:

dividing each of the first time-aligned data segments into a set of data blocks to produce a plurality of sets of data blocks, wherein each data block of the set of data blocks is of a given data size, wherein the first data block corresponds to a first time portion of the first time interval and a second data block of each of the plurality of sets of data blocks corresponds to a second time portion of the first time interval.

20. The non-transitory computer readable storage device of claim 16 , wherein the second memory section further stores operational instruction that, when executed by the computing device, causes the computing device to slice the first coded matrix into the first set of encoded data slices by:

including an encoded representation of each of the first data blocks from each of the first time-aligned data segments in a first encoded data slice of the first set of encoded data slices.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 037831/0834 →