Determine reference motion vectors

US9503746B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9503746-B2
Application numberUS-201213647076-A
CountryUS
Kind codeB2
Filing dateOct 8, 2012
Priority dateOct 8, 2012
Publication dateNov 22, 2016
Grant dateNov 22, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for encoding a video stream having a plurality of blocks including a current block. The method includes identifying, from a plurality of previously coded blocks, a plurality of candidate motion vectors; identifying, for the current block, a set of reconstructed pixel values corresponding to a set of previously coded pixel values; determining, for at least one of the plurality of candidate motion vectors, an error value based on the set of reconstructed pixel values and a set of predicted values for the set of previously coded pixel values; and selecting, from the plurality of candidate motion vectors, a reference motion vector for the current block based on the error value.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for encoding a current block of a video stream having a plurality of blocks including the current block, comprising: identifying, from a plurality of blocks coded before the current block, a plurality of candidate motion vectors, each candidate motion vector associated with a respective reference frame; identifying, for the current block of a current frame, a set of reconstructed pixel values for a set of pixel positions within the current frame, but outside of the current block, coded before the current block; for each candidate motion vector of the plurality of candidate motion vectors: generating, by applying the candidate motion vector to the set of pixel positions, a set of predicted pixels for the reconstructed pixels within the respective reference frame associated with the candidate motion vector; and determining an error value between the set of reconstructed pixel values and values of the set of predicted pixels; and selecting, from the plurality of candidate motion vectors, a reference motion vector for the current block based on the error value for each candidate motion vector. 2. The method of claim 1 , wherein the set of pixel positions includes at least one of: one or more rows of pixels above the current block or one or more columns of pixels to the left of the current block. 3. The method of claim 1 , wherein the error value is determined using one of the following metrics: sum of absolute difference (SAD), sum of squared error (SSE) or mean squared error (MSE). 4. The method of claim 1 , wherein the reference motion vector is selected from the plurality of candidate motion vectors as the candidate motion vector associated with the lowest error value. 5. The method of claim 1 , further comprising: encoding, for the current block, a motion vector using the reference motion vector. 6. The method of claim 5 , wherein encoding, for the current block, the motion vector using the reference motion vector includes encoding, for the current block, a difference value based on the reference motion vector and the motion vector for the current block. 7. The method of claim 5 , wherein encoding, for the current block, the motion vector using the reference motion vector includes: identifying a probability distribution based on the reference motion vector; and encoding a magnitude value of the motion vector for the current block based on the probability distribution. 8. The method of claim 1 , wherein the reference motion vector is selected as a motion vector for the current block. 9. A method for decoding a current block of an encoded video stream having a plurality of blocks including the current block, comprising: identifying, from a plurality of blocks decoded before the current block, a plurality of candidate motion vectors, each candidate motion vector associated with a respective reference frame; identifying, for the current block of a current frame, a set of reconstructed pixel values corresponding to a set of pixel positions within the current frame, but outside of the current block, decoded before the current block; for each candidate motion vector of the plurality of candidate motion vectors: generating, by applying the candidate motion vector to the set of pixel positions, a set of predicted pixels within the respective reference frame associated with the candidate motion vector; and determining an error value between the set of reconstructed pixel values and values of the set of predicted pixels; and selecting, from the plurality of candidate motion vectors, a reference motion vector for the current block based on the error value for each candidate motion vector. 10. The method of claim 9 , wherein the set of pixel positions includes at least one of: one or more rows of pixels above the current block or one or more columns of pixels to the left of the current block. 11. The method of claim 9 , wherein the error value is determined using one of the following metrics: sum of absolute difference (SAD), sum of squared error (SSE) or mean squared error (MSE). 12. The method of claim 9 , wherein the reference motion vector is selected from the plurality of candidate motion vectors as the candidate motion vector associated with the lowest error value. 13. The method of claim 9 , further comprising: decoding, for the current block, a motion vector using the reference motion vector. 14. The method of claim 13 , wherein decoding, for the current block, the motion vector using the reference motion vector includes decoding, from the current block, a difference value based on the reference motion vector and the motion vector for the current block; and determining the motion vector for the current block based on a sum of the difference value and the reference motion vector. 15. The method of claim 13 , wherein decoding, for the current block, the motion vector using the reference motion vector includes: identifying a probability distribution based on the reference motion vector; and decoding a magnitude value of the motion vector for the current block based on the probability distribution. 16. The method of claim 9 , wherein the reference motion vector is selected as a motion vector for the current block. 17. An apparatus for encoding a current block of a video stream having a plurality of blocks including the current block, comprising: a memory; a processor configured to execute instructions stored in the memory to: identify, from a plurality of blocks coded before the current block, a plurality of candidate motion vectors, each candidate motion vector associated with a respective reference frame; identify, for the current block of a current frame, a set of reconstructed pixel values for a set of pixel positions within the current frame, but outside of the current block, coded before the current block; for each candidate motion vector of the plurality of candidate motion vectors: generate, by applying the candidate motion vector to the set of pixel positions, a set of predicted pixels within the respective reference frame associated with the candidate motion vector; and determine an error value between the set of reconstructed pixel values and values of the set of predicted pixels; and select, from the plurality of candidate motion vectors, a reference motion vector for the current block based on the error value for each candidate motion vector. 18. The apparatus in claim 17 , wherein the processor is further configured to execute instructions to: encode, for the current block, a motion vector using the reference motion vector.

Assignees

Inventors

Classifications

  • Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion (use of rate-distortion criteria H04N19/147) · CPC title

  • in combination with predictive coding · CPC title

  • H04N19/463Primary

    by compressing encoding parameters before transmission · CPC title

  • Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction · CPC title

  • Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9503746B2 cover?
A method for encoding a video stream having a plurality of blocks including a current block. The method includes identifying, from a plurality of previously coded blocks, a plurality of candidate motion vectors; identifying, for the current block, a set of reconstructed pixel values corresponding to a set of previously coded pixel values; determining, for at least one of the plurality of candid…
Who is the assignee on this patent?
Xu Yaowu, Wilkins Paul Gordon, Grange Adrian, and 2 more
What technology area does this patent fall under?
Primary CPC classification H04N19/463. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 22 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).