IP Library Granted Patent US 11,659,140
Granted Patent B2
US 11,659,140 · App. 17/361,532 · Granted May 23, 2023

Parity-based redundant video storage among networked video cameras

Inventors: Matthew Davidson (Los Altos, CA); Ramy Ayad (East Brunswick, NJ)
Assignee: Western Digital Technologies, Inc.
H04N7/181H04N7/56H04N23/661
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 11,659,140
App. No.
17/361,532
Granted
May 23, 2023
Kind
B2
Abstract

Systems and methods for redundant storage among networked video cameras are described. Video data for a group of video cameras is received by a parity video camera. The parity video camera calculates parity across the peer video data, stores the parity data to one storage location and backup video data for the storage location to another storage location. In some examples, the storage locations are selected from among the non-volatile memory of the group of video cameras or another group of video cameras.

Claims (125)

1. A system, comprising:

a first video camera comprising:

at least one image sensor configured to capture video images;

a network port configured for communication with a first plurality of peer video cameras over a network;

a non-volatile memory configured to store source video data captured by the at least one image sensor; and

an integrated circuit configured to:

determine a chunk synchronization event signaling an end of a data collection time window;

receive, responsive to the chunk synchronization event, peer video data from the first plurality of peer video cameras, wherein the peer video data includes video data chunks corresponding to video stream data generated by each peer video camera during the data collection time window;

determine, based on the video data chunks from the peer video cameras for the data collection time window, parity data for a parity chunk; and

store the parity data in the non-volatile memory.

2. The system of claim 1 , further comprising:

the first plurality of peer video cameras, wherein the first plurality of peer video cameras and the first video camera comprise a first camera group; and

a second plurality of video cameras, wherein:

the second plurality of video cameras comprises a second camera group configured for communication over the network; and

the integrated circuit of the first video camera is further configured to send, to a target video camera among the second plurality of video cameras, first camera group backup data comprising at least one of:

the source video data for the first video camera; or

the parity data for the first camera group.

3. The system of claim 2 , wherein the integrated circuit of the first video camera is further configured to:

receive, from the second camera group, second camera group backup data comprising at least one of:

video data from the second camera group; or

parity data for the second camera group; and

store, in the non-volatile memory of the first video camera, the second camera group backup data.

4. The system of claim 1 , wherein the integrated circuit of the first video camera is further configured to:

establish secure network communication with a video storage server; and

send, to the video storage server, first camera group backup data comprising at least one of:

the source video data for the first video camera; or

the parity data for a first camera group including the first video camera and the first plurality of peer video cameras.

5. The system of claim 1 , further comprising:

the first plurality of peer video cameras, wherein:

the peer video data includes a compressed video stream from each peer video camera of the first plurality of peer video cameras; and

each peer video camera of the first plurality of peer video cameras is configured to:

generate the compressed video stream using variable compression;

determine a parity chunk size;

determine the chunk synchronization event signaling the end of the data collection time window; and

send, responsive to the chunk synchronization event, a video data chunk corresponding to compressed video stream data generated during the data collection time window.

6. The system of claim 5 , wherein the integrated circuit is further configured to pad the video data chunk from each peer video camera to meet the parity chunk size prior to determining the parity data for the parity chunk.

7. The system of claim 5 , wherein:

each peer video camera of the first plurality of peer video cameras is further configured to:

determine a start timestamp for the data collection time window;

buffer, to a data buffer, the compressed video stream starting from the start timestamp;

monitor a valid data size of the compressed video stream in the data buffer; and

selectively send, responsive to the valid data size for that peer video camera meeting the parity chunk size, a chunk synchronization notification to each other peer video camera; and

the chunk synchronization notification:

signals the chunk synchronization event for each peer video camera; and

includes an end timestamp for the data collection time window.

8. The system of claim 5 , wherein:

each peer video camera of the first plurality of peer video cameras is further configured to send, to the first video camera, a valid data size for the video data chunk;

the integrated circuit of the first video camera is further configured to store a parity chunk record for the parity chunk in a parity management log; and

the parity chunk record includes:

a start timestamp for the data collection time window; and

for each video data chunk used to determine the parity chunk, the valid data size for that video data chunk.

9. The system of claim 1 , wherein the integrated circuit of the first video camera is further configured to:

determine, for a first data collection time window, a first parity block for the parity data of the first plurality of peer video cameras;

store the first parity block in the non-volatile memory;

send the source video data for the first data collection time window to a first target peer video camera in the first plurality of peer video cameras;

determine, for a second data collection time window, a second parity block for the parity data of the first plurality of peer video cameras;

send the second parity block to the first target peer video camera; and

send a video data chunk from the first target peer video camera in the second data collection time window to a second target peer video camera in the first plurality of peer video cameras.

10. The system of claim 1 , wherein:

the first plurality of peer video cameras and the first video camera comprise a first camera group;

each video camera in the first camera group is configured to, for a plurality of data collection time windows:

determine, for a selected data collection time window, a parity camera from the first camera group;

store, at the determined parity camera, parity data for the selected data collection time window;

determine, for the selected data collection time window, a backup camera from the first camera group; and

send, from the parity camera to the backup camera, backup data corresponding to the selected data collection time window; and

the first camera group determines:

the parity camera for each data collection time window to distribute the parity data among video cameras in the first camera group; and

the backup camera for each data collection time window to distribute the backup data to a different video camera than a video camera storing corresponding parity data.

11. A computer-implemented method, comprising:

generating, by a first plurality of peer video cameras, peer video data;

storing, by the first plurality of peer video cameras, the peer video data in non-volatile memories of the first plurality of peer video cameras;

determining a chunk synchronization event signaling an end of a data collection time window;

sending, by each peer video camera of the first plurality of peer video cameras and responsive to the chunk synchronization event, a video data chunk corresponding to video stream data generated during the data collection time window;

receiving, by a parity video camera and over a network, peer video data from the first plurality of peer video cameras;

determining, by the parity video camera and based on the video data chunk from each peer video camera for the data collection time window, parity data for a parity chunk for the first plurality of peer video cameras; and

storing, by the parity video camera, the parity data in a non-volatile memory of the parity video camera.

12. The computer-implemented method of claim 11 , further comprising:

sending, to a target video camera among a second plurality of video cameras, first camera group backup data comprising at least one of:

source video data for the parity video camera; or

the parity data for a first camera group;

wherein:

the first plurality of peer video cameras and the parity video camera comprise the first camera group; and

the second plurality of video cameras comprise a second camera group configured for communication over the network.

13. The computer-implemented method of claim 11 , further comprising:

establishing, from the parity video camera, secure network communication with a video storage server; and

sending, by the parity video camera and to the video storage server, first camera group backup data comprising at least one of:

source video data for the parity video camera; or

the parity data for the first plurality of peer video cameras.

14. The computer-implemented method of claim 11 , further comprising:

determining a parity chunk size; and

generating, by each peer video camera of the first plurality of peer video cameras, a compressed video stream using variable compression, wherein the corresponding video data chunk is comprised of video stream data from the compressed video stream.

15. The computer-implemented method of claim 14 , further comprising:

padding the video data chunk from each peer video camera to meet the parity chunk size prior to determining the parity data for the parity chunk.

16. The computer-implemented method of claim 14 , further comprising:

determining a start timestamp for the data collection time window;

buffering, to a data buffer in each peer video camera of the first plurality of peer video cameras, the compressed video stream starting from the start timestamp;

monitoring, by each peer video camera of the first plurality of peer video cameras, a valid data size of the compressed video stream in the data buffer; and

selectively sending, by at least one peer video camera of the first plurality of peer video cameras and responsive to the valid data size for that peer video camera meeting the parity chunk size, a chunk synchronization notification to each other peer video camera, wherein the chunk synchronization notification:

signals the chunk synchronization event for each peer video camera; and

includes an end timestamp for the data collection time window.

17. The computer-implemented method of claim 14 , further comprising:

sending, to the parity video camera by each peer video camera of the first plurality of peer video cameras, a valid data size for the video data chunk; and

storing, by the parity video camera, a parity chunk record for the parity chunk in a parity management log, wherein the parity chunk record includes:

a start timestamp for the data collection time window; and

for each video data chunk used to determine the parity chunk, the valid data size for that video data chunk.

18. The computer-implemented method of claim 11 , further comprising:

determining, by the parity video camera and for a first data collection time window, a first parity block for the parity data of the first plurality of peer video cameras;

storing, by the parity video camera, the first parity block in the non-volatile memory of the parity video camera;

sending, by the parity video camera, source video data generated by the parity video camera for the first data collection time window to a first target peer video camera in the first plurality of peer video cameras;

determining, by the parity video camera and for a second data collection time window, a second parity block for the parity data of the first plurality of peer video cameras;

sending, by the parity video camera, the second parity block to the first target peer video camera; and

sending, by the parity video camera, a video data chunk from the first target peer video camera in the second data collection time window to a second target peer video camera in the first plurality of peer video cameras.

19. The computer-implemented method of claim 11 , further comprising, for a plurality of data collection time windows:

determining the parity video camera for a first camera group comprising the first plurality of peer video cameras and the parity video camera;

determining parity blocks for the first camera group;

distributing the parity blocks among video cameras in the first camera group; and

distributing, based on distributing a parity block to a video camera in the first camera group, backup data for a video data block of that video camera to a different video camera in the first camera group.

20. A video camera, comprising:

at least one image sensor configured to capture video images;

a network interface configured for communication with a first plurality of peer video cameras over a network;

a non-volatile memory configured to store source video data captured by the at least one image sensor;

means for determining a chunk synchronization event signaling an end of a data collection time window;

means for receiving, responsive to the chunk synchronization event, peer video data from the first plurality of peer video cameras, wherein the peer video data includes video data chunks corresponding to video stream data generated by each peer video camera during the data collection time window;

means for determining, based on the video data chunks from the peer video cameras for the data collection time window, parity data for a parity chunk; and

means for storing the parity data in the non-volatile memory.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2021
From: DAVIDSON, MATTHEW; AYAD, RAMY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057136/0681 →
Continuity (1)
Related Publication 20220417473A1 · Dec 29, 2022