IP Library Granted Patent US 9,377,940
Granted Patent B2
US 9,377,940 · App. 13/780,474 · Granted Jun 28, 2016

Predictive pre-decoding of encoded media item

Inventors: Philip McAllister (San Francisco, CA); Shayne Sweeney (San Francisco, CA)
Assignee: Facebook, Inc.
G06F3/0485G06F17/30244
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 9,377,940
App. No.
13/780,474
Granted
Jun 28, 2016
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 (59)

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:

creating an object that does not initially include actual decoded data;

invoking a function call, wherein the function call: obtains a value of a single pixel associated with the object, stores the obtained value of the single pixel in an application heap, the application heap being included in a second memory, and decodes data that is not in bitmap format to generate the actual decoded data that is in bitmap format;

store the pre-decoded media item to the 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

receive an indication that a second scrolling action has begun; and

a display interface coupled to the one or more computer processors, configured to display the pre-decoded media item in response to the second scrolling action.

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 function call includes a function call that generates 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 1 , 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:

creating an object that does not initially include actual decoded data;

invoking a function call, wherein the function call: obtains a value of a single pixel associated with the object, stores the obtained value of the single pixel in an application heap, the application heap being included in a second memory, and decodes data that is not in bitmap format to generate the actual decoded data that is in bitmap format;

storing the pre-decoded media item in the second memory, the second memory having lower latency than the first memory, and the second memory including the application heap and a system heap;

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.

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

the function call includes a function call that generates 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. 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:

creating an object that does not initially include actual decoded data;

invoking a function call, wherein the function call: obtains a value of a single pixel associated with the object, stores the obtained value of the single pixel in an application heap, the application heap being included in a second memory, and decodes data that is not in bitmap format to generate the actual decoded data that is in bitmap format;

storing the pre-decoded media item in the second memory, the second memory having lower latency than the first memory, and the second memory including the application heap and a system heap;

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.

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

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 Jun 4, 2013
From: MCALLISTER, PHILIP; SWEENEY, SHAYNE
To: FACEBOOK, INC.
Reel/Frame 030539/0924 →
Continuity (1)
Related Publication 20140245219A1 · Aug 28, 2014