# US 10,375,196 B2 · Image transformation in hybrid sourcing architecture

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

- Number: US 10,375,196 B2
- Document ID: US10375196B2
- Status: Granted
- Kind: B2
- Application number: 15/365,761
- Filed: 2016-11-30
- Published: 2018-02-01
- Granted: 2019-08-06
- Earliest claimed: 2016-07-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jose Emmanuel Miranda-Steiner; Victor Magidson
- Web page: https://patentgrep.com/patent/US10375196B2

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 16/51: Indexing; Data structures therefor; Storage structures
- G06T 5/10: using non-spatial domain filtering
- G06T 5/94: based on local image properties, e.g. for local contrast enhancement
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04N 21/2183: Cache memory {(caches in web servers or browsers G06F16/9574; intermediate storage and caching in data networks H04L67/568)}
- H04N 21/234309: {by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo (conversion of standards in analog television systems H04N7/01)}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/8153: {comprising still images, e.g. texture, background image}
- G06T 2207/20182: Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
- G06T 2207/20201: Motion blur correction
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Image transformation for use in a hybrid distribution architecture with improved performance characteristics is provided herein. The hybrid distribution architecture provides content to clients via a dual source system using a central cloud service and a Content Distribution Network, which uses the cloud service as its source. A client that requests a new rendition of an image provided by a chosen source of the hybrid distribution architecture will have that request handled by the source, and the source may maintain that rendition for future provision. By allowing the client to choose the source and letting that source handle the request, rather than requiring a central service hand the request, the amount of data needed to be transmitted is reduced and the speed of provision of content, modified or not, is improved for the client.

## Claims

### Claim 1

A method for providing clients with image transformations when using a hybrid distribution architecture, comprising:
receiving, at a content distribution network (CDN) that is part of the hybrid distribution architecture, a request from a client device for a transformed image based on an original image;
determining whether the CDN stores the transformed image; and
in response to determining that the CDN does not store the transformed image:
transmitting the request from the CDN to a cloud service that is part of the hybrid distribution architecture that is used by the CDN as a source for the original image;
receiving, at the CDN from the cloud service, a redirect response for the request identifying an image transformation service to handle the request;
transmitting the original image and the request from the CDN to the image transformation service according to the redirect response;
receiving, at the CDN from the image transformation service, the transformed image based on the original image according to the request; and
transmitting the transformed image from the CDN to the client device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
in response to determining that the CDN does not store the transformed image, determining whether the CDN stores the original image;
in response to determining that the CDN does not store the original image, requesting the original image from the cloud service;
receiving, at the CDN from the cloud service, the original image; and
caching the original image in the CDN.

### Claim 3 (depends on 2)

The method of claim 2, wherein the transformed image is stored in a transformation array with other transformed images associated with the original image.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
in response to receiving at the CDN from the cloud service a cache clear command for the original image, marking the original image and the transformation array for overwriting.

### Claim 5 (depends on 1)

The method of claim 1, wherein in response to determining that the CDN does store the transformed image, transmitting the transformed image from the CDN to the client device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the image transformation service is configured to apply to the original image at least one transformation selected from the group consisting of:
a hue filters;
saturation filters;
luminosity filters;
color channel filters;
shadow effects;
pixilation effects;
blur effects;
overlays; and
artistic effects.

### Claim 7 (depends on 1)

The method of claim 1, wherein the image transformation service is configured to remove from the original image at least one transformation selected from the group consisting of:
a hue filters;
saturation filters;
luminosity filters;
color channel filters;
shadow effects;
pixilation effects;
blur effects;
overlays; and
artistic effects.

### Claim 8 (depends on 1)

The method of claim 1, wherein the image transformation service is configured to:
adjust a transparency of the original image;
soften the original image;
sharpen the original image;
adjust a brightness of the original image;
adjust a contrast of the original image;
resize the original image;
crop the original image;
provide a border to the original image;
color swapping the original image;
tilt a perspective of the original image;
change a compression rate of the original image; or
change a file format of the original image.

### Claim 9 (depends on 1)

The method of claim 1, wherein the request for the transformed image includes multiple transformations to apply to the original image.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
in response to determining that the CDN does not store the transformed image, determining whether the CDN stores an intermediary transformed image, wherein the intermediary transformed image is based on the original image and includes one or more of the multiple transformations;
in response to determining that the CDN stores the intermediary transformed image:
transmitting the intermediary transformed image and the request from the CDN to the image transformation service according to the redirect response;
receiving, at the CDN from the image transformation service, the transformed image based on the intermediary transformed image according to the request; and
transmitting the transformed image from the CDN to the client device.

### Claim 11

A system for providing clients with image transformations when using a hybrid distribution architecture, comprising:
a cloud service, hosting an original image; and
a content distribution network (CDN) in communication with the cloud service, a client device, and an image transformation service, wherein the CDN is configured to:
provide content assets, including the original image, in conjunction with the cloud service, wherein the CDN uses the cloud service as a source from which to cache and tier the content assets;
cache the content assets for provision to the client device without requiring authentication of a client;
receive from the client device a request for an image transformation of the original image;
in response to determining that the CDN does not store a transformed image that corresponds to the request:
transmit the request from the CDN to the cloud service;
receive, at the CDN from the cloud service, a redirect response for the request identifying the image transformation service to handle the request;
forward the request and the original image from the CDN to the image transformation service according to the redirect response;
receive, at the CDN from the image transformation service, a transformed image based on the original image according to the request; and
transmit the transformed image from the CDN to the client device.

### Claim 12 (depends on 11)

The system of claim 11, wherein the CDN is further operable to:
determine whether the cloud service stores the transformed image;
in response to the request and determining that the cloud service stores the transformed image:
request the transformed image from the cloud service;
receive the transformed image from the cloud service; and
transmit the transformed image to the client device; and
in response to the request and determining that the cloud service does not store the transformed image, forward the request and the original image to the image transformation service.

### Claim 13 (depends on 11)

The system of claim 11, wherein the transformed image is cached by the CDN in a transformation array associated with the original image and other transformed images based on the original image.

### Claim 14 (depends on 11)

The system of claim 11, wherein the CDN is further operable to:
in response to the request, determine whether the CDN caches the original image;
in response to determining that the CDN does not cache the original image,
request the original image from the cloud service;
receive the original image from the cloud service; and
cache the original image.

### Claim 15

A method for providing clients with an arbitrary number of transformed images when using a hybrid distribution architecture, comprising a cloud service and a content distribution network (CDN), wherein the CDN uses the cloud service as a source for an original image, and both the cloud service and the CDN are configured to provide the original image to a client device, the method comprising:
receiving, at the CDN, a request for a transformed image based on the original image from the client device;
determining whether the CDN caches the transformed image;
in response to determining that the CDN caches the transformed image, transmitting the transformed image from the CDN to the client device;
in response to determining that the CDN does not cache the transformed image, transmitting the request from the CDN to the cloud service; and
in response to the cloud service not caching the transformed image:
receiving, at the CDN, a redirect response from the cloud service identifying an image transformation service to handle the request;
transmitting the original image and the request from the CDN to the image transformation service according to the redirect response;
receiving, at the CDN from the image transformation service, the transformed image based on the original image according to the request;
transmitting the transformed image from the CDN to the client device; and
caching the transformed image with the original image in the CDN.

### Claim 16 (depends on 15)

The method of claim 15, wherein the transformed image is cached with the original image in a transformation array with other transformed images based on the original image.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
determining whether an intermediary image is cached in the transformation array, wherein the intermediary image includes one or more transformations specified in the request;
in response to determining that the intermediary image is cached in the transformation array, transmitting the intermediary image to the image transformation service to produce the transformed image according to the request; and
in response to determining that the intermediary image is not cached in the transformation array, transmitting the original image to the image transformation service to produce the transformed image according to the request.

### Claim 18 (depends on 16)

The method of claim 16, further comprising:
in response to receiving, at the CDN from the cloud service, a cache clear command for the original image, marking the original image and the transformation array for overwriting.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
in response to determining that the CDN does not store the transformed image, determining whether the CDN stores the original image;
in response to determining that the CDN does not store the original image, requesting the original image from the cloud service;
receiving, at the CDN from the cloud service, the original image; and
caching the original image in the CDN.

### Claim 20 (depends on 15)

The method of claim 15, in response to the cloud service caching the transformed image:
receiving the transformed image from the cloud service;
transmitting the transformed image to the client device; and
caching the transformed image with the original image in the CDN.
