IP Library Granted Patent US 10,223,472
Granted Patent B2
US 10,223,472 · App. 14/969,543 · Granted Mar 5, 2019

Systems and methods for providing progressive images based on data range requests

Inventors: David Andrew Sacerdote (Palo Alto, CA); Georges Edouard Maurice Berenger (Menlo Park, CA); Federico Daniel Larumbe (Mountain View, CA)
Assignee: Facebook, Inc.
G06F17/30905
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,223,472
App. No.
14/969,543
Granted
Mar 5, 2019
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable media can request a lower quality version of an image. The image can correspond to a progressive image. A first quantity of progressive image scans included in the progressive image can be acquired. The first quantity of progressive image scans can represent the lower quality version of the image. A command to access a higher quality version of the image can be acquired. A data range associated with a second quantity of progressive image scans included in the progressive image can be identified. The second quantity of progressive image scans can be combinable with the first quantity of progressive image scans to represent the higher quality version of the image. The second quantity of progressive image scans can be acquired based on the data range. The higher quality version of the image can be generated based on combining the first quantity and the second quantity.

Claims (76)

1. A computer-implemented method comprising:

requesting, by a computing system, a lower quality version of an image, the image corresponding to a progressive image;

acquiring, by the computing system, a first quantity of progressive image scans included in the progressive image, the first quantity of progressive image scans representing the lower quality version of the image;

acquiring, by the computing system, a command to access a higher quality version of the image;

identifying, by the computing system, a data range associated with a second quantity of progressive image scans included in the progressive image, wherein the data range indicates at least a last scan in the first quantity of progressive image scans, and wherein the second quantity of progressive image scans is combinable with the first quantity of progressive image scans to represent the higher quality version of the image;

transmitting, by the computing system, to a content providing system, a data range request that specifies the data range;

acquiring, by the computing system, from the content providing system, the second quantity of progressive image scans based on the data range; and

generating, by the computing system, the higher quality version of the image based on combining the first quantity and the second quantity.

2. The computer-implemented method of claim 1 , wherein identifying the data range associated with the second quantity of progressive image scans included in the progressive image further comprises:

acquiring information included in an image header for the image;

identifying, based on the information included in the image header, a last scan in the first quantity of progressive image scans;

identifying a starting scan in the second quantity of progressive image scans, the starting scan in the second quantity being subsequent to the last scan in the first quantity; and

identifying an ending scan in the second quantity of progressive image scans based on at least one of the information included in the image header, a system configuration, a device property, a network condition, a defined setting, or a user preference, the starting scan and the ending scan being respectively associated with a start and an end for the data range.

3. The computer-implemented method of claim 2 , wherein the image header includes a proprietary header, and wherein at least some of the information included in the image header is incorporated in the proprietary header.

4. The computer-implemented method of claim 1 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating a uniform resource locator (URL) that indicates the data range, wherein the data range request comprises a request for the second quantity of progressive image scans, and wherein the data range request for the second quantity of progressive image scans is associated with the URL; and

receiving, from the content providing system, the second quantity of progressive image scans.

5. The computer-implemented method of claim 1 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating the data range request, wherein the data range request is a Hypertext Transfer Protocol (HTTP) range request that includes a byte range corresponding to the data range, the byte range being incorporated into a HTTP header associated with the HTTP range request; and

receiving, from the content providing system, data corresponding to the byte range, the data representing the second quantity of progressive image scans.

6. The computer-implemented method of claim 1 , wherein generating the higher quality version of the image based on combining the first quantity and the second quantity further comprises:

removing a first terminator element subsequent to the first quantity of progressive image scans;

appending the second quantity of progressive image scans to the first quantity of progressive image scans; and

adding a second terminator element subsequent to the second quantity that has been appended to the first quantity.

7. The computer-implemented method of claim 1 , wherein the command to access the higher quality version of the image is associated with at least one of a user interaction, a change in network connectivity, a social engagement trigger, or a time trigger.

8. The computer-implemented method of claim 1 , wherein the lower quality version of the image is lower in resolution than the higher quality version of the image.

9. The computer-implemented method of claim 1 , wherein the lower quality version of the image is associated with at least one of a preview version of the image or a thumbnail version of the image, and wherein the higher quality version of the image is associated with at least one of a full-screen displayable version of the image or an original resolution version of the image.

10. The computer-implemented method of claim 1 , wherein the progressive image corresponds to a progressive Joint Photographic Experts Group (JPEG) image, and wherein each progressive image scan in the first quantity and in the second quantity corresponds to a respective progressive JPEG scan included in the progressive JPEG image.

11. A system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the system to perform:

requesting a lower quality version of an image, the image corresponding to a progressive image;

acquiring a first quantity of progressive image scans included in the progressive image, the first quantity of progressive image scans representing the lower quality version of the image;

acquiring a command to access a higher quality version of the image;

identifying a data range associated with a second quantity of progressive image scans included in the progressive image, wherein the data range indicates at least a last scan in the first quantity of progressive image scans, and wherein the second quantity of progressive image scans is combinable with the first quantity of progressive image scans to represent the higher quality version of the image;

transmitting, to a content providing system, a data range request that specifies the data range;

acquiring, from the content providing system, the second quantity of progressive image scans based on the data range; and

generating the higher quality version of the image based on combining the first quantity and the second quantity.

12. The system of claim 11 , wherein identifying the data range associated with the second quantity of progressive image scans included in the progressive image further comprises:

acquiring information included in an image header for the image;

identifying, based on the information included in the image header, a last scan in the first quantity of progressive image scans;

identifying a starting scan in the second quantity of progressive image scans, the starting scan in the second quantity being subsequent to the last scan in the first quantity; and

identifying an ending scan in the second quantity of progressive image scans based on at least one of the information included in the image header, a system configuration, a device property, a network condition, a defined setting, or a user preference, the starting scan and the ending scan being respectively associated with a start and an end for the data range.

13. The system of claim 11 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating a uniform resource locator (URL) that indicates the data range, wherein the data range request comprises a request for the second quantity of progressive image scans, and wherein the data range request for the second quantity of progressive image scans is associated with the URL; and

receiving, from the content providing system, the second quantity of progressive image scans.

14. The system of claim 11 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating the data range request, wherein the data range request is a Hypertext Transfer Protocol (HTTP) range request that includes a byte range corresponding to the data range, the byte range being incorporated into a HTTP header associated with the HTTP range request; and

receiving, from the content providing system, data corresponding to the byte range, the data representing the second quantity of progressive image scans.

15. The system of claim 11 , wherein generating the higher quality version of the image based on combining the first quantity and the second quantity further comprises:

removing a first terminator element subsequent to the first quantity of progressive image scans;

appending the second quantity of progressive image scans to the first quantity of progressive image scans; and

adding a second terminator element subsequent to the second quantity that has been appended to the first quantity.

16. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

requesting a lower quality version of an image, the image corresponding to a progressive image;

acquiring a first quantity of progressive image scans included in the progressive image, the first quantity of progressive image scans representing the lower quality version of the image;

acquiring a command to access a higher quality version of the image;

identifying a data range associated with a second quantity of progressive image scans included in the progressive image, wherein the data range indicates at least a last scan in the first quantity of progressive image scans, and wherein the second quantity of progressive image scans is combinable with the first quantity of progressive image scans to represent the higher quality version of the image;

transmitting, to a content providing system, a data range request that specifies the data range;

acquiring, from the content providing system, the second quantity of progressive image scans based on the data range; and

generating the higher quality version of the image based on combining the first quantity and the second quantity.

17. The non-transitory computer-readable storage medium of claim 16 , wherein identifying the data range associated with the second quantity of progressive image scans included in the progressive image further comprises:

acquiring information included in an image header for the image;

identifying, based on the information included in the image header, a last scan in the first quantity of progressive image scans;

identifying a starting scan in the second quantity of progressive image scans, the starting scan in the second quantity being subsequent to the last scan in the first quantity; and

identifying an ending scan in the second quantity of progressive image scans based on at least one of the information included in the image header, a system configuration, a device property, a network condition, a defined setting, or a user preference, the starting scan and the ending scan being respectively associated with a start and an end for the data range.

18. The non-transitory computer-readable storage medium of claim 16 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating a uniform resource locator (URL) that indicates the data range, wherein the data range request comprises a request for the second quantity of progressive image scans, and wherein the data range request for the second quantity of progressive image scans is associated with the URL; and

receiving, from the content providing system, the second quantity of progressive image scans.

19. The non-transitory computer-readable storage medium of claim 16 , wherein acquiring the second quantity of progressive image scans based on the data range further comprises:

generating the data range request, wherein the data range request is a Hypertext Transfer Protocol (HTTP) range request that includes a byte range corresponding to the data range, the byte range being incorporated into a HTTP header associated with the HTTP range request; and

receiving, from the content providing system, data corresponding to the byte range, the data representing the second quantity of progressive image scans.

20. The non-transitory computer-readable storage medium of claim 16 , wherein generating the higher quality version of the image based on combining the first quantity and the second quantity further comprises:

removing a first terminator element subsequent to the first quantity of progressive image scans;

appending the second quantity of progressive image scans to the first quantity of progressive image scans; and

adding a second terminator element subsequent to the second quantity that has been appended to the first quantity.

Assignments (2)
CHANGE OF NAME Recorded Nov 24, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058250/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2016
From: SACERDOTE, DAVID ANDREW; BERENGER, GEORGES EDOUARD MAURICE; LARUMBE, FEDERICO DANIEL
To: FACEBOOK, INC.
Reel/Frame 037536/0491 →
Continuity (1)
Related Publication 20170169019A1 · Jun 15, 2017