IP Library Granted Patent US 9,426,459
Granted Patent B2
US 9,426,459 · App. 13/865,242 · Granted Aug 23, 2016

Managing multi-reference picture buffers and identifiers to facilitate video data coding

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,426,459
App. No.
13/865,242
Granted
Aug 23, 2016
Kind
B2
Abstract

Encoding and decoding is accomplished herein using a multi-reference picture buffer. Reference frames are assigned to reference picture buffers when used for encoding and are identified with picture IDs unique relative to other picture IDs currently associated with the reference picture buffers. The maximum picture number used as the picture ID can be based on a number of reference picture buffers available to encode and decode the frames plus a value based on an expected error rate. The picture IDs can be assigned based on a least recently used policy. When a reference frame is no longer needed for encoding and decoding, a picture ID number associated with the reference frame can be released for re-assignment to a new reference frame.

Claims (50)

1. A method for encoding a video stream having a plurality of frames, comprising:

identifying an allocated number of reference frame buffers;

calculating a maximum number of picture IDs as equal to or greater than the allocated number;

assigning, using a processor, a picture ID to a respective reference frame assigned to a respective reference frame buffer of a plurality of reference frame buffers to no higher than the maximum number of picture IDs, each picture ID having a value not assigned to any other reference frames assigned to the plurality of reference frame buffers;

freeing the picture ID when its associated reference frame is no longer assigned to the reference frame buffer;

re-using a freed picture ID when assigning the picture IDs such that the freed picture ID is not re-used within a number of encoded frames that is equal to the maximum number of picture IDs;

encoding one or more frames of the plurality of frames using the reference frames assigned to the plurality of reference frame buffers; and

including the picture IDs in the video stream.

2. The method of claim 1 wherein re-using the freed picture ID when assigning the picture IDs comprises assigning a least recently used picture ID for a new reference frame assigned to one of the plurality of reference frame buffers.

3. The method of claim 1 wherein assigning a least recently used picture ID is performed using a first-in-first-out array having an array size equal to the maximum number of picture IDs.

4. A method for encoding a video stream having a plurality of frames, comprising:

identifying an allocated number of reference frame buffers;

calculating a maximum number of picture IDs as equal to or greater than the allocated number;

estimating an expected error value representing possible frame errors; wherein the maximum number of picture IDs is equal to the allocated number plus the expected error value;

assigning, using a processor, a picture ID to a respective reference frame assigned to a respective reference frame buffer of a plurality of reference frame buffers to no higher than the maximum number of picture IDs, each picture ID having a value not assigned to any other reference frames assigned to the plurality of reference frame buffers;

freeing the picture ID when its associated reference frame is no longer assigned to the reference frame buffer;

periodically re-using a freed picture ID when assigning the picture IDs;

encoding one or more frames of the plurality of frames using the reference frames assigned to the plurality of reference frame buffers; and

including the picture IDs in the video stream.

5. The method of claim 1 , further comprising:

encoding one or more frames of the plurality of frames using the reference frames assigned to the plurality of reference frame buffers to perform motion prediction.

6. The method of claim 1 wherein including the picture IDs in the video stream further comprises:

encoding the picture ID in a sequence header, picture header, slice header or segment header.

7. An apparatus for encoding a video stream having a plurality of frames, comprising:

a memory;

a processor configured to execute instructions stored in the memory to:

identify an allocated number of reference frame buffers;

calculate a maximum number of picture IDs as greater than the allocated number;

assign a picture ID to a respective reference frame assigned to a respective reference frame buffer of a plurality of reference frame buffers to no higher than the maximum number of picture IDs, each picture ID having a value not assigned to any other reference frames assigned to the plurality of reference frame buffers;

free the picture ID when its associated reference frame is no longer assigned to the reference frame buffer;

re-use a freed picture ID when assigning the picture IDs;

encode one or more frames of the plurality of frames using the reference frames assigned to the plurality of reference frame buffers; and

include the picture IDs in the video stream.

8. The apparatus of claim 7 wherein the processor is configured to re-use the freed picture ID when assigning the picture IDs by assigning a least recently used picture ID for a new reference frame assigned to one of the plurality of reference frame buffers.

9. The apparatus of claim 7 wherein the processor is configured to assign a least recently used picture ID using a first-in-first-out array.

10. The apparatus of claim 7 wherein the processor is configured to:

estimate an expected error value representing possible frame errors; and wherein the maximum number of picture IDs is equal to the allocated number plus the expected error value.

11. The apparatus of claim 7 wherein the processor is configured to:

encode one or more frames of the plurality of frames using the reference frames assigned to the plurality of reference frame buffers to perform motion prediction.

12. The apparatus of claim 7 wherein the processor is configured to include the picture IDs in the video stream by:

encoding the picture ID in a sequence header, picture header, slice header or segment header.

13. The apparatus of claim 7 wherein the processor is configured to free the picture ID by assigning it to a first-in-first-out array having a size equal to the maximum number of picture IDs; and wherein the processor is configured to re-use a freed picture ID by selecting a next available picture ID from the first-in-first-out array.

14. The apparatus of claim 7 wherein the processor is configured to re-use a freed picture ID only after a number of frames that is equal to the maximum number of picture IDs is encoded.

15. The apparatus of claim 7 wherein the maximum number of picture IDs is equal to the allocated number plus a positive value.

16. The apparatus of claim 15 wherein the positive value is equal to an expected error value representing possible frame errors.

17. The method of claim 1 wherein the maximum number of picture IDs is equal to the allocated number plus a positive value such that the maximum number of picture IDs is greater than the allocated number.

18. The method of claim 7 wherein the positive value is equal to an expected error value representing possible frame errors.

19. The method of claim 1 , further comprising:

assigning the picture ID to a first-in-first-out array having a size equal to the maximum number of picture IDs after freeing the picture ID; and

re-using a freed picture ID by selecting a next available picture ID from the first-in-first-out array.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2013
From: GU, QUNSHAN; PANICONI, MARCO
To: GOOGLE INC.
Reel/Frame 030363/0421 →