IP Library Granted Patent US 10,204,598
Granted Patent B2
US 10,204,598 · App. 15/169,137 · Granted Feb 12, 2019

Predictive pre-decoding of encoded media item

Inventors: Philip McAllister (San Francisco, CA); Shayne Sweeney (San Francisco, CA)
Assignee: Facebook, Inc.
G09G5/346G06F3/0485G06F3/0488G06F17/30244G09G2340/02G09G2340/14G09G2354/00
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,204,598
App. No.
15/169,137
Granted
Feb 12, 2019
Kind
B2
Abstract

Displaying a plurality of encoded media items on a device includes: detecting that a first scrolling action has been completed; determining a predicted next encoded media item to be displayed; obtaining the predicted next encoded media item from a first memory; pre-decoding the predicted next encoded media item to generate a pre-decoded media item; storing the pre-decoded media item in a second memory, the second memory having lower latency than the first memory; receiving an indication that a second scrolling action has begun; and in response to the second scrolling action, displaying the pre-decoded media item via a display interface.

Claims (57)

1. A system, comprising:

an input interface configured to detect that a first scrolling action has been completed;

one or more computer processors coupled to the input interface, configured to:

determine a predicted next encoded media item to be displayed;

obtain the predicted next encoded media item from a first memory;

pre-decode, using the one or more computer processors, the predicted next encoded media item to generate a pre-decoded media item, the pre-decoding including:

obtaining a value of a single pixel associated with an object, wherein the object does not initially include decoded data, and the object includes pixel data created based on a predicted next encoded media item, and

storing the obtained value of the single pixel in an application heap, the application heap being included in a second memory, the second memory having lower latency than the first memory and the second memory including the application heap and a system heap; and

storing the pre-decoded media item to the second memory; and

a display interface coupled to the one or more computer processors, configured to display the pre-decoded media item.

2. The system of claim 1 , wherein the input interface and the display interface comprise a touch-sensitive screen.

3. The system of claim 1 , wherein to determine the predicted next encoded media item includes to:

determine a last decoded media item that was last decoded in response to the first scrolling action;

detect a direction of the first scrolling action; and

based on a location of the last decoded media item, identify a next media item in the direction of the first scrolling action as the predicted next encoded media item.

4. The system of claim 1 , wherein the predicted next encoded media item includes a Joint Photographic Experts Group (JPEG) file.

5. The system of claim 1 , wherein the pre-decoded media item includes a bitmap.

6. The system of claim 1 , wherein:

the object includes a Bitmap object created based on the predicted next encoded media item; and

the obtaining a value of a single pixel associated with an object includes generating an actual decoded bitmap image data for the Bitmap object.

7. The system of claim 6 , wherein the actual decoded bitmap image data is stored on the second memory.

8. The system of claim 6 , wherein the predicted next encoded media item is one of M predicted next encoded media items that are determined.

9. The system of claim 8 , wherein M is determined based at least on a probability that a last decoded media item is evicted from the second memory.

10. The system of claim 1 , wherein the first memory from which the predicted next encoded media item is obtained and the second memory to which the pre-decoded media item is stored are located on one device.

11. A method, comprising:

detecting, via an input interface, that a first scrolling action has been completed;

determining a predicted next encoded media item to be displayed;

obtaining the predicted next encoded media item from a first memory;

pre-decoding, using one or more computer processors, the predicted next encoded media item to generate a pre-decoded media item, the pre-decoding including:

obtaining a value of a single pixel associated with an object, wherein the object does not initially include decoded data and the object includes pixel data created based on a predicted next encoded media item, and

storing the obtained value of the single pixel in an application heap, the application heap being included in a second memory, the second memory having lower latency than the first memory and the second memory including the application heap and a system heap;

storing the pre-decoded media item in the second memory; and

displaying the pre-decoded media item via a display interface.

12. The method of claim 11 , wherein determining the predicted next encoded media item includes:

determining a last decoded media item that was last decoded in response to the first scrolling action;

detecting a direction of the first scrolling action; and

based on a location of the last decoded media item, identifying a next media item in the direction of the first scrolling action as the predicted next encoded media item.

13. The method of claim 11 , wherein the predicted next encoded media item includes a Joint Photographic Experts Group (JPEG) file.

14. The method of claim 11 , wherein the pre-decoded media item includes a bitmap.

15. The method of claim 11 , wherein:

the object includes a Bitmap object based on the predicted next encoded media item; and

obtaining a value of a single pixel associated with an object includes generating an actual decoded bitmap image data for the Bitmap object.

16. The method of claim 15 , wherein the actual decoded bitmap image data is stored on the second memory.

17. The method of claim 11 , wherein the predicted next encoded media item is one of M predicted next encoded media items that are determined.

18. The method of claim 17 , wherein M is determined based at least on a probability that a last decoded media item is evicted from the second memory.

19. The method of claim 11 , wherein the first memory from which the predicted next encoded media item is obtained and the second memory to which the pre-decoded media item is stored are located on one device.

20. The method of claim 11 , wherein the decoded data is stored in the system heap included in the second memory.

21. The method of claim 11 , further comprising: receiving an indication that a second scrolling action has begun, wherein the displaying is in response to the second scrolling action.

22. A computer program product for displaying a plurality of encoded media items on a device, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

detecting, via an input interface, that a first scrolling action has been completed;

determining a predicted next encoded media item to be displayed;

obtaining the predicted next encoded media item from a first memory;

pre-decoding, using one or more computer processors, the predicted next encoded media item to generate a pre-decoded media item, the pre-decoding including:

obtaining a value of a single pixel associated with an object, wherein the object does not initially include decoded data, and the object includes pixel data created based on a predicted next encoded media item, and

storing the obtained value of the single pixel in an application heap, the application heap being included in a second memory, the second memory having lower latency than the first memory and the second memory including the application heap and a system heap;

storing the pre-decoded media item in the second memory; and

displaying the pre-decoded media item via a display interface.

Assignments (2)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059855/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2022
From: MCALLISTER, PHILLIP; SWEENEY, SHAYNE
To: FACEBOOK, INC.
Reel/Frame 058532/0077 →
Continuity (2)
Continuation 13780474 · Feb 28, 2013
Related Publication 20160275917A1 · Sep 22, 2016