IP Library Granted Patent US 9,288,484
Granted Patent B1
US 9,288,484 · App. 13/598,682 · Granted Mar 15, 2016

Sparse coding dictionary priming

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,288,484
App. No.
13/598,682
Granted
Mar 15, 2016
Kind
B1
Abstract

A method and apparatus for performing sparse coding dictionary priming are disclosed. Sparse coding dictionary priming may include iteratively training a coding dictionary, which may include a plurality of codewords or bases. Iteratively training the coding dictionary may include identifying a sampling index cardinality, identifying a portion of a video stream, decomposing the portion of the video stream, and updating the codeword based on the portion of the video stream. Decomposing the portion of the video stream may include randomly identifying a set of codewords from the plurality of codewords wherein a cardinality of the set of codewords is the sampling index cardinality and wherein the sampling index cardinality is less a cardinality of the plurality of codewords, and determining a codeword having a maximum correlation with the portion of the video stream from the set of codewords.

Claims (48)

1. A method for use in video coding, the method comprising:

iteratively training a coding dictionary using a processor, wherein the coding dictionary includes a plurality of codewords, by:

identifying a sampling index cardinality;

identifying a portion of a video stream;

decomposing the portion by:

randomly identifying a set of codewords from the plurality of codewords wherein a cardinality of the set of codewords is the sampling index cardinality and wherein the sampling index cardinality is less than a cardinality of the plurality of codewords, and

determining a codeword from the set of codewords, the codeword having a maximum correlation with the portion; and

updating the codeword based on the portion,

wherein the iteratively training the coding dictionary includes increasing the sampling index cardinality in response to an event indicating an expiration of a time period.

2. The method of claim 1 , wherein the iteratively training the coding dictionary includes maintaining an iteration counter and the event indicates that the iteration counter crossed a threshold.

3. The method of claim 1 , wherein the iteratively training the coding dictionary includes decomposing a plurality of portions of a plurality of video streams including the portion of the video stream.

4. The method of claim 1 , further comprising:

generating an encoded video stream by encoding the portion using the codeword; and

transmitting the video stream portion.

5. The method of claim 1 , wherein the iteratively training the coding dictionary includes storing the coding dictionary in a non-transitory machine readable medium.

6. The method of claim 1 , wherein the iteratively training the coding dictionary includes increasing the sampling index cardinality to equal the cardinality of the coding dictionary.

7. The method of claim 1 , further comprising transmitting the coding dictionary to an encoder.

8. The method of claim 1 , further comprising transmitting the coding dictionary to a decoder.

9. An apparatus for decoding a frame in a video stream, the frame having a plurality of blocks, the apparatus comprising:

a memory; and

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

iteratively train a coding dictionary, wherein the coding dictionary includes a plurality of codewords, by:

identify a sampling index cardinality;

identify a portion of a video stream;

decompose the portion by:

randomly identifying a set of codewords from the plurality of codewords wherein a cardinality of the set of codewords is the sampling index cardinality and wherein the sampling index cardinality is less a cardinality of the plurality of codewords, and

determining a codeword from the set of codewords, the codeword having a maximum correlation with the portion; and

update the codeword based on the portion,

wherein iteratively training the coding dictionary includes maintaining a timer and increasing the sampling index cardinality in response to an event indicating an expiration of the timer.

10. The apparatus of claim 9 , wherein the processor is configured to iteratively train the coding dictionary by maintaining an iteration counter and the event indicates that the iteration counter crossed a threshold.

11. The apparatus of claim 9 , wherein the processor is configured to iteratively train the coding dictionary by decomposing a plurality of portions of a plurality of video streams including the portion of the video stream.

12. The apparatus of claim 9 , wherein the processor is configured to:

generate an encoded video stream by encoding the portion using the codeword; and

transmit the video stream portion.

13. The apparatus of claim 9 , wherein the processor is configured to store the coding dictionary in a non-transitory machine readable medium.

14. The apparatus of claim 9 , wherein the processor is configured to iteratively train the coding dictionary by increasing the sampling index cardinality to equal the cardinality of the coding dictionary.

15. The apparatus of claim 9 , wherein the processor is configured to transmit the coding dictionary to an encoder.

16. The apparatus of claim 9 , wherein the processor is configured to transmit the coding dictionary to a decoder.

17. The method of claim 1 , wherein determining a codeword from the set of codewords comprises:

for each codeword of the set of codewords, determining a correlation between the portion of the video stream and the codeword; and

selecting the codeword of the set of codewords having the maximum correlation with the portion of the video stream.

18. The method of claim 1 , wherein updating the codeword based on the portion comprises:

updating the codeword based on a difference between the portion and a weighted combination of the set of codewords.

19. The apparatus of claim 9 , wherein the processor is configured to determine a codeword from the set of codewords by:

for each codeword of the set of codewords, determining a correlation between the portion of the video stream and the codeword; and

selecting the codeword of the set of codewords having the maximum correlation with the portion of the video stream.

20. The apparatus of claim 9 , wherein the processor is configured to update the codeword based on the portion by:

updating the codeword based on a difference between the portion and a weighted combination of the set of codewords.

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 Sep 10, 2012
From: IOFFE, SERGEY; MASSAMINO, PASCAL
To: GOOGLE INC.
Reel/Frame 028923/0785 →