Methods and systems for determining motion vectors in a motion estimation process of a video encoder
AssigneeEcole De Technologie Superieure
InventorsLuc Trudeau, Stéphane Coulombe, Christian Desrosiers
Life of this patent
Estimating the term…
Abstract
Methods and systems for determining motion vectors in a motion estimation process of a video encoder are provided. Embodiments of the present invention provide a solution for the problem of unnecessary cost function evaluations, found when combining the successive elimination method with a predetermined list of candidate motion vectors search ordering. In order to solve this problem, embodiments of the present invention provide an adaptive scan ordering of block matching candidates within a search area. Advantageously, embodiments of the present invention will only evaluate necessary cost functions, without impacting rate-distortion.
Claims20
A method for determining a best motion vector in a motion estimation process of a video encoder, the method comprising:
- using a hardware processor for:
- determining a sorted list of candidate motion vectors having an order determined by a respective approximate block similarity metric value of each of the candidate motion vectors;
- determining the best motion vector, comprising:
- sequentially determining respective block similarity metric values of a corresponding candidate motion vector in the sorted list as one of the Rate Constrained Absolute Difference of Sums (RCADS) values and Rate Constrained Sum of Absolute Differences (RCSAD) values, until the respective approximate block similarity metric value is greater than or equal to a termination threshold corresponding to a smallest block similarity metric value among determined respective block similarity metric values;
- from the sorted list, selecting the best motion vector having the smallest block similarity metric value among the determined respective block similarity metric values;
- and
- using the best motion vector in the motion estimation process of the video encoder.
A method for determining a best motion vector in a motion estimation process of a video encoder, the method comprising:
- using a hardware processor for:
- determining a sorted list of candidate motion vectors, comprising:
- determining a respective approximate block similarity metric value for each candidate motion vector in a predetermined list of candidate motion vectors;
- determining a subset of the predetermined list of candidate motion vectors wherein the respective approximate block similarity metric value for each candidate motion vector in the subset is less than or equal to a block similarity metric value of a predicted motion vector;
- and
- determining the sorted list of candidate motion vectors, comprising sorting the predetermined list of candidate motion vectors according to the respective approximate block similarity metric value;
- determining the best motion vector, comprising:
- sequentially determining respective block similarity metric values of the candidate motion vectors in the sorted list until the respective approximate block similarity metric value is greater than or equal to a termination threshold corresponding to a smallest block similarity metric value among the determined respective block similarity metric values;
- from the sorted list, selecting the best motion vector having the smallest block similarity metric value of the determined respective block similarity metric values;
- and
- using the best motion vector in the motion estimation process of the video encoder.
A system for determining a best motion vector in a motion estimation process of a video encoder, the system comprising:
- a non-transitory computer readable storage medium having instructions stored thereon that, when executed, cause a processor to:
- determine a sorted list of candidate motion vectors having an order determined by a respective approximate block similarity metric value of each of the candidate motion vectors;
- sequentially determine respective block similarity metric values of a corresponding candidate motion vector in the sorted list as one of the Rate Constrained Absolute Difference of Sums (RCADS) values and Rate Constrained Sum of Absolute Differences (RCSAD) values, until the respective approximate block similarity metric value is greater than or equal to a termination threshold corresponding to a smallest block similarity metric value among determined respective block similarity metric values;
- from the sorted list, select the best motion vector as the best motion vector having the smallest block similarity metric value among the determined respective block similarity metric values;
- and
- use the best motion vector in the motion estimation process of the video encoder.
A system for determining a best motion vector in a motion estimation process of a video encoder, the system comprising:
- a non-transitory computer readable storage medium having instructions stored thereon that, when executed, cause a processor to:
- determine a sorted list of candidate motion vectors, comprising:
- determine a respective approximate block similarity metric value for each candidate motion vector in a predetermined list of candidate motion vectors;
- determine a subset of the predetermined list of candidate motion vectors wherein the respective approximate block similarity metric value for each candidate motion vector in the subset is less than or equal to a block similarity metric value of a predicted motion vector;
- and
- determine the sorted list of candidate motion vectors comprising sorting the predetermined list of candidate motion vectors according to the respective approximate block similarity metric value;
- sequentially determine a respective block similarity metric value of a corresponding candidate motion vector in the sorted list, until the respective approximate block similarity metric value is greater than or equal to a termination threshold corresponding to a smallest block similarity metric value among determined respective block similarity metric values;
- from the sorted list, select the best motion vector as the best motion vector having the smallest block similarity metric value among the determined respective block similarity metric values;
- use the best motion vector in a motion estimation process of a video encoder.
Dependencies are inferred from the claim text.