Systems and methods for image optimization
Abstract
Images are optimized to reduce latency prior to being transmitted to requesting client devices. A request from a client device for an image is analyzed to obtain the attributes of the requesting client device and the network used by the client device for transmitting the request. The parameters of the image to be transmitted are determined based on the attributes in order to reduce data latency at the requesting client device. A requested image that meets the parameters or which has its parameters preset by a provider can be transmitted without any changes. A requested image that does not meet the parameters is transformed in accordance with the parameters so that it is optimized for the combination of the network and the requesting client device.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A method comprising
receiving, by a processor, a request for an image; obtaining, by the processor, attributes of a client device, the attributes comprising the screen size of the client device; obtaining, by the processor, dimensions of the image; comparing, by the processor, the dimensions to the screen size of the client device; setting, by the processor, a scale factor based on the result of the comparing; resizing, by the processor, the image using the scale factor; and transmitting, by the processor, the resized image to the client device as a response to the request.
22 . The method of claim 21 , the receiving the request for the image comprising:
obtaining, by the processor, an Internet Protocol (IP) address associated with the request; identifying, by the processor, network carrier options associated with the IP address, the network carrier options including a carrier identifier and a connection type; retrieving, by the processor, prior network data associated with the carrier identifier and the connection time; and estimating, by the processor, network conditions for the request based on the prior network data.
23 . The method of claim 21 , the obtaining attributes of the client device comprising:
accessing, by the processor, a header included in the request for the image; extracting, by the processor, device parameters from the header; and retrieving, by the processor, the attributes from a device data library.
24 . The method of claim 23 , the extracting the device parameters from the header comprising extracting, by the processor, one or more parameters selected from the group consisting of a type, make, or model parameter.
25 . The method of claim 23 , the retrieving the attributes from a device data library comprising accessing, by the processor, a library of hardware and software specifications for models of client devices.
26 . The method of claim 21 , the setting the scale factor based on the result of the comparing comprising:
setting, by the processor, the scale factor to one if the dimensions are less than two times the screen size; and setting, by the processor, the scale factor to two times the screen size divided by the dimensions if the dimensions are greater than or equal to two times the screen size.
27 . The method of claim 21 , further comprising:
obtaining, by the processor, a maximum file size based on a connection speed associated with the request; determining, by the processor, that compression of the resized image is required if a file size associated with the resized image is greater than the maximum file size; identifying, by the processor, a best quantization lossy compression based on the determination; and compressing, by the processor, the resized image using the best quantization lossy compression.
28 . A non-transitory computer readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining the steps of:
receiving a request for an image; obtaining, by the processor, attributes of a client device, the attributes comprising the screen size of the client device; obtaining, by the processor, dimensions of the image; comparing, by the processor, the dimensions to the screen size of the client device; setting, by the processor, a scale factor based on the result of the comparing; resizing, by the processor, the image using the scale factor; and transmitting, by the processor, the resized image to the client device as a response to the request.
29 . The non-transitory computer readable storage medium of claim 28 , the receiving the request for the image comprising:
obtaining an Internet Protocol (IP) address associated with the request; identifying network carrier options associated with the IP address, the network carrier options including a carrier identifier and a connection type; retrieving prior network data associated with the carrier identifier and the connection time; and estimating network conditions for the request based on the prior network data.
30 . The non-transitory computer readable storage medium of claim 28 , the obtaining attributes of the client device comprising:
accessing a header included in the request for the image; extracting device parameters from the header; and retrieving the attributes from a device data library.
31 . The non-transitory computer readable storage medium of claim 30 , the extracting the device parameters from the header comprising extracting one or more parameters selected from the group consisting of a type, make, or model parameter
32 . The non-transitory computer readable storage medium of claim 30 , the retrieving the attributes from a device data library comprising accessing a library of hardware and software specifications for models of client devices.
33 . The non-transitory computer readable storage medium of claim 28 , the setting the scale factor based on the result of the comparing comprising:
setting the scale factor to one if the dimensions are less than two times the screen size; and setting the scale factor to two times the screen size divided by the dimensions if the dimensions are greater than or equal to two times the screen size.
34 . The non-transitory computer readable storage medium of claim 28 , the computer program instructions further defining the steps of:
obtaining a maximum file size based on a connection speed associated with the request; determining that compression of the resized image is required if a file size associated with the resized image is greater than the maximum file size; identifying a best quantization lossy compression based on the determination; and compressing the resized image using the best quantization lossy compression.
35 . A device comprising:
a processor; a storage medium for tangibly storing thereon program logic for execution by the processor, the stored program logic comprising:
logic, executed by the processor, for receiving a request for an image;
logic, executed by the processor, for obtaining, by the processor, attributes of a client device, the attributes comprising the screen size of the client device;
logic, executed by the processor, for obtaining, by the processor, dimensions of the image;
logic, executed by the processor, for comparing, by the processor, the dimensions to the screen size of the client device;
logic, executed by the processor, for setting, by the processor, a scale factor based on the result of the comparing;
logic, executed by the processor, for resizing, by the processor, the image using the scale factor; and
logic, executed by the processor, for transmitting, by the processor, the resized image to the client device as a response to the request.
36 . The device of claim 35 , the logic for receiving the request for the image comprising:
logic, executed by the processor, for obtaining an Internet Protocol (IP) address associated with the request; logic, executed by the processor, for identifying network carrier options associated with the IP address, the network carrier options including a carrier identifier and a connection type; logic, executed by the processor, for retrieving prior network data associated with the carrier identifier and the connection time; and logic, executed by the processor, for estimating network conditions for the request based on the prior network data.
37 . The device of claim 35 , the logic for obtaining attributes of the client device comprising:
logic, executed by the processor, for accessing a header included in the request for the image; logic, executed by the processor, for extracting device parameters from the header; and logic, executed by the processor, for retrieving the attributes from a device data library.
38 . The device of claim 37 , the logic for extracting the device parameters from the header comprising logic, executed by the processor, for extracting one or more parameters selected from the group consisting of a type, make, or model parameter
39 . The device of claim 35 , the logic for setting the scale factor based on the result of the comparing comprising:
logic, executed by the processor, for setting the scale factor to one if the dimensions are less than two times the screen size; and logic, executed by the processor, for setting the scale factor to two times the screen size divided by the dimensions if the dimensions are greater than or equal to two times the screen size.
40 . The device of claim 35 , the stored program logic further comprising:
logic, executed by the processor, for obtaining a maximum file size based on a connection speed associated with the request; logic, executed by the processor, for determining that compression of the resized image is required if a file size associated with the resized image is greater than the maximum file size; logic, executed by the processor, for identifying a best quantization lossy compression based on the determination; and logic, executed by the processor, for compressing the resized image using the best quantization lossy compression.Join the waitlist — get patent alerts
Track US2019114989A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.