IP Library Granted Patent US 9,918,102
Granted Patent B1
US 9,918,102 · App. 14/745,728 · Granted Mar 13, 2018

Inter-prediction candidate selection in a mode decision

Inventors: Leslie D. Kohn (Saratoga, CA); Peter Verplaetse (Redwood City, CA)
Assignee: Ambarella, Inc.
H04N19/513
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,918,102
App. No.
14/745,728
Granted
Mar 13, 2018
Kind
B1
Abstract

An apparatus having a first circuit and a second circuit is disclosed. The first circuit may be configured to (i) fetch a plurality of reference samples from a memory to a plurality of slots in a buffer and (ii) motion estimate a plurality of current sample units of a current picture to generate a plurality of motion vectors. The motion vectors may be stored in a plurality of lines of a table. Each line generally identifies a corresponding slot in the buffer. Duplicates among the lines may be consolidated. The second circuit may be configured to evaluate the reference samples in the buffer based on the motion vectors to select a prediction sample unit.

Claims (34)

1. An apparatus comprising:

a first circuit configured to (i) fetch a plurality of reference samples from a memory to a plurality of slots in a buffer, (ii) motion estimate a plurality of current sample units of a current picture to generate a plurality of motion vectors and (iii) store a plurality of candidates of said current sample units and a plurality of slot numbers in a first table, wherein (a) said motion vectors are stored in a plurality of lines of a second table, (b) each of said lines in said second table identifies a corresponding one of said slots in said buffer and (c) at least two of said slot numbers stored in said first table identify a same slot in said buffer; and

a second circuit configured to evaluate said reference samples in said buffer based on said motion vectors to select a prediction sample unit made of said reference samples.

2. The apparatus according to claim 1 , wherein said prediction sample unit represents a winning candidate of a mode decision in a video compression.

3. The apparatus according to claim 1 , wherein (i) said candidates of said current sample units comprise a plurality of components, (ii) each of said components comprises a direction and a number of a reference picture, (iii) said components are stored in said lines of said second table and (iv) said reference samples are fetched in response to said components.

4. The apparatus according to claim 1 , wherein (i) said first table has a plurality of additional lines and (ii) each of said additional lines (a) identifies up to two of said slots in said buffer, (b) indicates an inter-picture prediction direction and (c) indicates a candidate type.

5. The apparatus according to claim 1 , where each of said candidates comprise one of (i) a unidirectional candidate, (ii) a zero motion vector candidate, (iii) a bidirectional candidate and (iv) a zero motion vector difference candidate that matches a motion vector predictor.

6. The apparatus according to claim 1 , wherein said first circuit is further configured to (i) allocate a credit to a given one of said candidates, (ii) consume a portion of said credit where said reference samples are fetched from said memory in response to a given component of said given candidate and (iii) stop additional fetches of said reference samples in response to said given candidate once said credit is exhausted.

7. The apparatus according to claim 6 , wherein said credit of said given candidate is not consumed where said given component is already in said second table.

8. The apparatus according to claim 1 , wherein said first circuit is further configured to snoop a given fetch of said reference samples from said memory in response to a non-zero motion vector type of said candidates to determine if said given fetch includes said reference samples of a zero motion vector type of said candidates.

9. The apparatus according to claim 1 , wherein a credit allocated to a zero motion vector type of said candidates is not consumed where said reference samples of said zero motion vector type candidate are part of a given fetch of a non-zero motion vector type of said candidates.

10. The apparatus according to claim 1 , wherein said first circuit and said second circuit are part of a digital camera.

11. A method for inter-prediction candidate selection in a mode decision, comprising the steps of:

fetching a plurality of reference samples from a memory to a plurality of slots in a buffer;

motion estimating a plurality of current sample units of a current picture to generate a plurality of motion vectors;

storing a plurality of candidates of said current sample unit and a plurality of slot numbers in a first table, wherein (i) said motion vectors are stored in a plurality of lines of a second table, (ii) each of said lines in said second table identifies a corresponding one of said slots in said buffer and (iii) at least two of said slot numbers stored in said first table identify a same slot in said buffer; and

evaluating said reference samples in said buffer based on said motion vectors to select a prediction sample unit with a circuit made of said reference samples.

12. The method according to claim 11 , wherein said prediction sample unit represents a winning candidate of said mode decision in a video compression.

13. The method according to claim 11 , wherein (i) said candidates of said current sample units comprise a plurality of components, (ii) each of said components comprises a direction and a number of a reference picture, (iii) said components are stored in said lines of said second table and (iv) said reference samples are fetched in response to said components.

14. The method according to claim 11 , wherein (a) said first table has a plurality of additional lines and (b) each of said additional lines (i) identifies up to two of said slots in said buffer, (ii) indicates an inter-picture prediction direction and (iii) indicates a candidate type.

15. The method according to claim 11 , where each of said candidates comprise one of (i) a unidirectional candidate, (ii) a zero motion vector candidate, (iii) a bidirectional candidate and (iv) a zero motion vector difference candidate that matches a motion vector predictor.

16. The method according to claim 11 , further comprising the steps of:

allocating a credit to a given one of said candidates;

consuming a portion of said credit where said reference samples are fetched from said memory in response to a given component of said given candidate; and

stopping additional fetches of said reference samples in response to said given candidate once said credit is exhausted.

17. The method according to claim 16 , wherein said credit of said given candidate is not consumed where said given component is already in said table.

18. The method according to claim 11 , further comprising the step of:

snooping a given fetch of said reference samples from said memory in response to a unidirectional motion vector type of said candidates to determine if said given fetch includes said reference samples of a zero motion vector difference type of said candidates.

19. The method according to claim 11 , wherein a credit allocated to a zero motion vector difference type of said candidates is not consumed where said reference samples of said zero motion vector difference type candidate are part of a given fetch of a unidirectional type of said candidates.

20. An apparatus comprising:

means for fetching a plurality of reference samples from a memory to a plurality of slots in a buffer;

means for motion estimating a plurality of current sample units of a current picture to generate a plurality of motion vectors;

means for storing a plurality of candidates of said current sample unit and a plurality of slot numbers in a first table, wherein (i) said motion vectors are stored in a plurality of lines of a second table, (ii) each of said lines in said second table identifies a corresponding one of said slots in said buffer and (iii) at least two of said slot numbers stored in said first table identify a same slot in said buffer; and

means for evaluating said reference samples in said buffer based on said motion vectors to select a prediction sample unit made of said reference samples.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: AMBARELLA, INC.
To: AMBARELLA INTERNATIONAL LP
Reel/Frame 051831/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2015
From: KOHN, LESLIE D.; VERPLAETSE, PETER
To: AMBARELLA, INC.
Reel/Frame 035875/0278 →