# US 9,883,158 B2 · Systems, methods, and software for improved video data recovery effectiveness

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

- Number: US 9,883,158 B2
- Document ID: US9883158B2
- Status: Granted
- Kind: B2
- Application number: 14/604,915
- Filed: 2015-01-26
- Published: 2015-07-23
- Granted: 2018-01-30
- Earliest claimed: 2010-10-06
- Assignees: Verint Americas Inc.
- Applicants: Verint Americas Inc.
- Inventors: Mortimer Hubin; Sylvain Ouellet
- Web page: https://patentgrep.com/patent/US9883158B2

## CPC

- G06F 16/71: Indexing; Data structures therefor; Storage structures
- H04N 5/765: Interface circuits between an apparatus for recording and another apparatus
- H04N 5/93: Regeneration of the television signal or of selected parts thereof
- H04N 9/8205: {involving the multiplexing of an additional signal and the colour video signal}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Methods, systems, and software are provided herein that allow for storing a data file in a storage device. The storage system splits a video data file into a plurality of data segments, generates a plurality of recovery headers for the data segments, and combines ones of the recovery headers with ones of the data segments to form a plurality of storage packets.

## Claims

### Claim 1

A method of operating a storage system, the method comprising:
splitting a data file into data segments for storage in non-contiguous slots of a storage device; and
generating a recovery header for storage with each of the data segments, wherein the recovery header comprises data segment recovery information such that it is possible to, without any information from a file index, find and link the data segments together from the non-contiguous slots to reconstruct the data file, wherein the recovery header comprises at least Magic identifier (ID), Object ID, Sequence Number, and Chunk Size elements, wherein the Object ID comprises a Primary Object ID and a Format ID, wherein the Format ID comprises a counter which increments each time a format of the storage device occurs, and wherein the Primary Object ID comprises a counter that (a) resets to zero each time a format of the storage device occurs, and (b) increases when a new object is stored in the storage device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
locating empty slots on the storage device for the storage of the data segments and recovery headers; and
storing the data segments and recovery headers in the empty slots.

### Claim 3 (depends on 2)

The method of claim 2, wherein the locating of the empty slots comprises:
identifying potential storage slots in the storage device;
identifying a portion of the potential storage slots as a storage slot for a first data segment of the data segments; and
storing both the first data segment and the recovery header associated with the first data segment in the storage slot.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
scanning the storage device for recovery flags associated with the recovery headers; and
retrieving the data segments and the recovery headers from the storage device based on the recovery flags.

### Claim 5 (depends on 4)

The method of claim 4, further comprising reconstructing the data file from the data segments based on the recovery headers associated with the data segments.

### Claim 6 (depends on 5)

The method of claim 5, wherein reconstructing the data file from the data segments comprises ordering the data segments based on the recovery headers.

### Claim 7 (depends on 1)

The method of claim 1, wherein splitting the data file into data segments comprises splitting a video data file into the plurality of data segments based on video data content of the video data file.

### Claim 8

A non-transitory computer-readable medium having program instructions stored thereon for operating a storage system, that when executed by the storage system, direct the storage system to:
split a data file into data segments for storage in non-contiguous slots of a storage device; and
generate a recovery header for storage with each of the data segments, wherein the recovery header comprises data segment recovery information such that it is possible to, without any information from a file index, find and link the data segments together from the non-contiguous slots to reconstruct the data file, wherein the recovery header comprises at least Magic identifier (ID), Object ID, Sequence Number, and Chunk Size elements, wherein the Object ID comprises a Primary Object ID and a Format ID, wherein the Format ID comprises a counter which increments each time a format of the storage device occurs, and wherein the Primary Object ID comprises a counter that (a) resets to zero each time a format of the storage device occurs, and (b) increases when a new object is stored in the storage device.

### Claim 9 (depends on 8)

The non-transitory computer-readable medium of claim 8 further having stored thereon instructs that, when executed by a processor, direct the processor to:
locate empty slots on the storage device for the storage of the data segments and recovery headers; and
store the data segments and recovery headers in the empty slots.

### Claim 10 (depends on 9)

The method of claim 9, further having stored thereon instructs that, when executed by a processor, direct the processor to:
scan the storage device for recovery flags associated with the recovery headers; and
retrieve the data segments and the recovery headers from the storage device based on the recovery flags.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, further having stored thereon instructs that, when executed by a processor, direct the processor to:
reconstruct the data file from the data segments based on the recovery headers associated with the data segments.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein reconstructing the data file from the data segments comprises ordering the data segments based on the recovery headers.

### Claim 13 (depends on 8)

The non-transitory computer-readable medium of claim 8, wherein splitting the data file into data segments comprises splitting a video data file into the plurality of data segments based on video data content of the video data file.

### Claim 14

A storage system comprising:
a storage device;
a processing system configured to split a data file into data segments for storage in non-contiguous slots of the storage device, and to generate a recovery header for storage with each of the data segments, wherein the recovery header comprises data segment recovery information such that it is possible to, without any information from a file index, find and link the data segments together from the non-contiguous slots to reconstruct the data file, wherein the recovery header comprises at least Magic identifier (ID), Object ID, Sequence Number, and Chunk Size elements, wherein the Object ID comprises a Primary Object ID and a Format ID, wherein the Format ID comprises a counter which increments each time a format of the storage device occurs, and wherein the Primary Object ID comprises a counter that (a) resets to zero each time a format of the storage device occurs, and (b) increases when a new object is stored in the storage device.

### Claim 15 (depends on 14)

The system of claim 14, wherein the processing system is further configured to locate empty slots on the storage device for the storage of the data segments and recovery headers, and the storage device is configured to store the data segments and recovery headers in the empty slots.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processing system is further configured to:
scan the storage device for recovery flags associated with the recovery headers;
retrieve the data segments and the recovery headers from the storage device based on the recovery flags; and
reconstruct the data file from the data segments based on the recovery headers associated with the data segments.

### Claim 17 (depends on 16)

The system of claim 16, wherein reconstructing the data file from the data segments comprises ordering the data segments based on the recovery headers.
