# US 11,442,979 B1 · Flexible image repository for customer premises equipment

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

- Number: US 11,442,979 B1
- Document ID: US11442979B1
- Status: Granted
- Kind: B1
- Application number: 16/809,513
- Filed: 2020-03-04
- Granted: 2022-09-13
- Earliest claimed: 2020-03-04
- Assignees: CSC Holdings, LLC
- Applicants: Csc Holdings, LLC
- Inventors: Jaison P. Antony; Heitor J. Almeida; John Markowski; Peter Caramanica; Alejandro Hoyos
- Web page: https://patentgrep.com/patent/US11442979B1

## CPC

- G06F 16/51: Indexing; Data structures therefor; Storage structures
- G06F 16/2393: {Updating materialised views}
- G06F 16/5866: {using information manually generated, e.g. tags, keywords, comments, manually generated location and time information}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure describes an autonomous mechanism for implementing a flexible image repository that includes an image retrieval service and an image repository management application. The flexible image repository performs delta processing to provide a subset of stored images to a subscriber device when the image retrieval service receives an image update request. The subscriber device thus receives updates to the image repository in a manner that reduces bandwidth requirements at both the server and the client, allowing client-side images to be updated more frequently. A content manager may update the flexible image repository via the image repository management application, which tags images according to a naming convention prior to inserting the images in the image repository. The tags allowing the image retrieval service to serve a multitude of subscriber devices across disparate platforms, which may provide different interfaces and have disparate access requirements, API calls, or functional behaviors. The flexible image repository employs a caching layer to further optimize the retrieval and display of the images and further optimize the delta processing.

## Claims

### Claim 1

A method comprising:
storing, by one or more processors, a plurality of images in an image repository, wherein the plurality of images are displayed in an electronic programming guide provided by a service provider to a subscriber device that receives a service from the service provider, wherein the subscriber device has a local cache that stores the plurality of images;
tagging, by the one or more processors, each image in the plurality of images with a logical path comprising a client type, an image type, and an entity name, wherein the client type defines an aspect ratio, wherein the image type specifies a dimension and a resolution, and wherein the entity name identifies a specific screen in the electronic programming guide where the image displays;
receiving, by the one or more processors, from the subscriber device an image update request comprising a last fetch timestamp and a subscriber identifier;
examining, by the one or more processors, each image in the plurality of images to determine a subset of the plurality of images modified since the last fetch timestamp by comparing the last fetch timestamp to a last modified timestamp of the image;
transmitting, by the one or more processors, the subset of the plurality of images from a caching layer that stores the plurality of images in memory to the subscriber device identified by the subscriber identifier using the logical path for each image as a cache key in the caching layer; and
causing, by the one or more processors, the subscriber device to update the local cache based on the subset of the plurality of images.

### Claim 2 (depends on 1)

The method of claim 1, wherein the caching layer stores the plurality of images in memory, further comprising:
transmitting, by the one or more processors, the subset of the plurality of images to the subscriber device directly from the caching layer without accessing the image repository.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
receiving, by the one or more processors, a refresh interval from a content manager that indicates when to update the caching layer with changes from the image repository; and
refreshing, by the one or more processors, the caching layer periodically based on the refresh interval.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
selecting, by the one or more processors, a display image from the plurality of images based on the client type, a device type, the dimension, and the resolution; and
causing, by the one or more processors, the subscriber device to display the display image in the electronic programming guide.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
receiving, by the one or more processors, a resize of a screen display; and
causing, by the one or more processors, the subscriber device to resize the display image in the electronic programming guide based on the change.

### Claim 6 (depends on 1)

The method of claim 1, the transmitting further comprising:
compressing, by the one or more processors, the subset of the plurality of images prior to the transmitting; and
causing, by the one or more processors, the subscriber device to decompress the compressed subset of the plurality of images after the receiving.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
providing, by the one or more processors, an image repository management application to a content manager that allows the content manager to upload an additional image;
tagging, by the one or more processors, the additional image; and
adding, by the one or more processors, the additional image to the plurality of images.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
sending, by the one or more processors, a notification to the subscriber device to alert the subscriber device about the additional image; and
causing, by the one or more processors, the subscriber device to perform the image update request.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving, by the one or more processors, a notification from the subscriber device that indicates that a factory reset was performed on the subscriber device;
retrieving, by the one or more processors, the last modified timestamp for the subscriber device from a database;
examining, by the one or more processors, each image in the plurality of images to determine the subset of the plurality of images modified since the retrieved last fetch timestamp for the subscriber device; and
transmitting, by the one or more processors, the subset of the plurality of images to the subscriber device.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
causing, by the one or more processors, the subscriber device to perform the image update request in accordance with a request interval that indicates a frequency.

### Claim 11 (depends on 1)

The method of claim 1, wherein the service provides video on demand content.

### Claim 12

A service provider system comprising:
physical layer circuitry configured to:
store a plurality of images in an image repository, wherein the plurality of images are displayed in an electronic programming guide provided by a service provider to a subscriber device that receives a service from the service provider;
processor circuitry configured to:
tag each image in the plurality of images with a logical path comprising a client type, an image type, and an entity name, wherein the client type defines an aspect ratio, wherein the image type specifies a dimension and a resolution, and wherein the entity name identifies a specific screen in the electronic programming guide where the image displays;
receive from the subscriber device an image update request comprising a last fetch timestamp and a subscriber identifier;
examine each image in the plurality of images to determine a subset of the plurality of images modified since the last fetch timestamp by comparing the last fetch timestamp to a last modified timestamp of the image; and
transmit the subset of the plurality of images from a caching layer that stores the plurality of images in memory to the subscriber device identified by the subscriber identifier using the logical path for each image as a cache key in the caching layer, wherein the subscriber device has a local cache that stores the plurality of images and updates the local cache based on the subset of the plurality of images.

### Claim 13 (depends on 12)

The service provider system of claim 12, wherein the caching layer stores the plurality of images in memory, the processor circuitry further configured to:
transmit the subset of the plurality of images to the subscriber device directly from the caching layer without accessing the image repository.

### Claim 14 (depends on 13)

The service provider system of claim 13, the processor circuitry further configured to:
refresh the caching layer periodically based on a refresh interval that indicates a frequency.

### Claim 15 (depends on 12)

The service provider system of claim 12, the processor circuitry further configured to:
provide an image repository management application to a content manager that allows the content manager to upload an additional image;
tag the additional image with a tag; and
add the additional image to the plurality of images.

### Claim 16

A subscriber device that receives a service from a service provider, comprising:
physical layer circuitry configured to:
access a local cache that stores a plurality of images, wherein the plurality of images are displayed in an electronic programming guide provided by the service provider to the subscriber device, wherein the service provider tags each image in the plurality of images with a logical path comprising a client type that defines an aspect ratio, an image type that specifies a dimension and a resolution, and an entity name that identifies a specific screen in the electronic programming guide where the image displays;
processor circuitry configured to:
send an image update request comprising a last fetch timestamp and a subscriber identifier to the service provider, wherein the service provider examines each image in the plurality of images in an image repository to determine a subset of the plurality of images modified since the last fetch timestamp by comparing the last fetch timestamp to a last modified timestamp of the image;
receive the subset of the plurality of images from the service provider, wherein the service provider transmits the subset of the plurality of images using the logical path for each image as a cache key in the caching layer; and
update the local cache based on the subset of the plurality of images.

### Claim 17 (depends on 16)

The subscriber device of claim 16, the processor circuitry further configured to:
decompress the subset of the plurality of images.

### Claim 18 (depends on 12)

The service provider system of claim 12, the processor circuitry further configured to:
receive a notification from the subscriber device that indicates that a factory reset was performed on the subscriber device;
retrieve the last modified timestamp for the subscriber device from a database;
examine each image in the plurality of images to determine the subset of the plurality of images modified since the retrieved last fetch timestamp for the subscriber device; and
transmit the subset of the plurality of images to the subscriber device.

### Claim 19 (depends on 16)

The subscriber device of claim 16, the processor circuitry further configured to:
send a notification to the service provider that indicates that a factory reset was performed on the subscriber device; and
receive the subset of the plurality of images from the service provider that includes images modified since the last fetch timestamp for the subscriber device.

### Claim 20 (depends on 16)

The subscriber device of claim 16, wherein the service provides video on demand content.
