# US 11,451,866 B2 · Systems and methods for data processing, storage, and retrieval from a server

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

- Number: US 11,451,866 B2
- Document ID: US11451866B2
- Status: Granted
- Kind: B2
- Application number: 17/399,810
- Filed: 2021-08-11
- Published: 2021-12-02
- Granted: 2022-09-20
- Earliest claimed: 2019-10-22
- Assignees: Synamedia Limited
- Applicants: Synamedia Limited
- Inventors: Ian Bastable; Gareth Bowen
- Web page: https://patentgrep.com/patent/US11451866B2

## CPC

- H04N 21/2743: Video hosting of uploaded data from client
- H04N 21/4408: involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L 9/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3271: {using challenge-response}
- H04N 21/232: Content retrieval operation {locally} within server, e.g. reading video streams from disk arrays {(storage management G06F3/0604; details of querying and searching of video data from a database G06F16/739)}
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/4334: {Recording operations (recording of a television signal H04N5/76; arrangements for recording or accumulating broadcast information or broadcast-related information H04H60/27)}
- H04N 21/4335: Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions {(storage management, e.g. defragmentation G06F3/0604; unloading stored programs G06F9/445; storage management in file systems G06F16/10; buffering arrangements in a network node or in an end terminal in packet networks H04L49/90)}
- H04N 21/4405: involving video stream decryption
- H04N 21/658: Transmission by the client directed to the server
- H04L 2209/603: Digital right managament [DRM]
- H04L 2209/605: Copy protection
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of splitting a data stream into a set of data segments may include receiving the data stream, wherein the data stream may include data packets; selecting a segment time period and a time domain; subdividing the time domain into a set of time blocks, each one of the set of time blocks having a duration of the segment time period; identifying a set of starting data packets corresponding to the set of time blocks; identifying a set of finishing data packets corresponding to the set of starting data packets; identifying a last one of the set of finishing data packets being a last data packet of a last one of the set of time blocks; and identifying the set of data segments based on the corresponding set of starting data packets and the corresponding set of finishing data packets.

## Claims

### Claim 1

A method of splitting a data stream into a set of data segments, the method being performed by at least one processor, the method comprising:
receiving the data stream, wherein the data stream comprises data packets, with at least some of the data packets containing time identifiers;
selecting a segment time period and a time domain;
subdividing the time domain into a set of time blocks, each one of the set of time blocks having a duration of the segment time period;
identifying a set of starting data packets corresponding to the set of time blocks, wherein each one of the set of starting data packets comprises a first data packet having a time identifier in a corresponding each one of the set of time blocks;
identifying a set of finishing data packets corresponding to the set of starting data packets, wherein each one of the set of finishing data packets immediately precedes each one, except a first one, of the set of starting data packets;
identifying a last one of the set of finishing data packets being a last data packet of a last one of the set of time blocks; and
identifying the set of data segments based on the corresponding set of starting data packets and the corresponding set of finishing data packets.

### Claim 2 (depends on 1)

The method of claim 1, wherein a data segment from the set of data segments includes a corresponding starting data packet from the set of starting data packets, a corresponding finishing data packet from set of finishing data packets, and all data packets of the data stream located between the starting data packet and the finishing data packet.

### Claim 3 (depends on 1)

The method of claim 1, wherein the segment time period is in a range of one to tens of seconds.

### Claim 4 (depends on 1)

The method of claim 1, wherein the segment time period is determined by a number, such that the segment time period is substantially an exponentiation of two in a power of the number divided by a frequency of a clock.

### Claim 5 (depends on 4)

The method of claim 4, wherein the data stream comprises compressed video data, and wherein the clock is a system time clock associated with a decoder for the compressed video data.

### Claim 6 (depends on 5)

The method of claim 5, wherein the time identifiers identify time positions of the video data, and wherein the time positions substantially match time values obtained from the system time clock.

### Claim 7 (depends on 1)

The method of claim 1, wherein the data stream comprises an MPEG-2 transport stream of the data packets communicated via a network.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining a probability of a data packet being missed from a data segment during the communication of the data stream; and
selecting the segment time period such that a probability of the data packet being missed from the data segment is less than a target probability value.

### Claim 9 (depends on 7)

The method of claim 7, further comprising:
determining an overhead cost associated with a processing of the data segment; and
selecting the segment time period such that the overhead cost is less than a target overhead value.

### Claim 10 (depends on 1)

The method of claim 1, further comprising, for a time segment period:
determining a probability of a data packet being missed from a data segment having the segment time period;
determining an overhead cost associated with a processing of the data segment; and
based on a cost function associated with the probability and the overhead cost, determining a target time segment period that minimizes the cost function.

### Claim 11

A method of splitting a data stream into a set of data segments, the method being performed by at least one processor and comprising:
receiving the data stream, wherein the data stream comprises data packets of a fixed length, with at least some of the data packets containing having bit number identifiers;
selecting a segment length unit and a total length;
subdividing the total length into a set of length blocks, each one of the set of length blocks having a length of the segment length unit;
identifying a set of starting data packets corresponding to the set of length blocks, wherein each one of the set of starting data packets comprises a first data packet having a bit number identifier in a corresponding each one of the set of length blocks;
identifying a set of finishing data packets corresponding to the set of starting data packets, wherein each one of the set of finishing data packets immediately precedes each one, except a first one, of the set of starting data packets;
identifying a last one of the set of finishing data packets as being a last data packet of a last one of the set of length blocks; and
identifying the set of data segments based on the corresponding set of starting data packets and the corresponding set of finishing data packets.

### Claim 12 (depends on 11)

The method of claim 11, wherein a data segment from the set of data segments includes a corresponding starting data packet from the set of starting data packets, a corresponding finishing data packet from set of finishing data packets, and all the data packets of the data stream located between the starting data packet and the finishing data packet.

### Claim 13 (depends on 11)

The method of claim 11, wherein the segment length unit is determined by a number, such that the segment length unit is substantially an exponentiation of two in a power of the number.

### Claim 14 (depends on 11)

The method of claim 11, wherein the data stream comprises a transport stream of the data packets communicated via a network to a user device.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
determining a probability of a data packet being missed from a data segment during the communication of the data stream; and
selecting the segment length unit such that a probability of the data packet being missed from the data segment is less than a target probability value.

### Claim 16 (depends on 14)

The method of claim 14, further comprising:
determining an overhead cost associated with a processing of the data segment; and
selecting the segment length unit such that the overhead cost is less than a target overhead value.

### Claim 17 (depends on 14)

The method of claim 14, further comprising for a segment length unit:
determining a probability of a data packet being missed from a data segment having the segment length unit;
determining an overhead cost associated with a processing of the data segment; and
based on a cost function associated with the probability and the overhead cost, determining a target segment length unit that minimizes the cost function.
