Function uneven_multi_hex_search

Source
fn uneven_multi_hex_search<T: Pixel>(
    fi: &FrameInvariants<T>,
    po: PlaneOffset,
    org_region: &PlaneRegion<'_, T>,
    p_ref: &Plane<T>,
    current: &mut MotionSearchResult,
    bit_depth: usize,
    pmv: [MotionVector; 2],
    lambda: u32,
    mvx_min: isize,
    mvx_max: isize,
    mvy_min: isize,
    mvy_max: isize,
    w: usize,
    h: usize,
    me_range: i16,
)
Expand description

Perform an uneven multi-hexagon search. There are 4 stages:

  1. Unsymmetrical-cross search: Search the horizontal and vertical directions for the general direction of the motion.
  2. A 5x5 full search is done to refine the current candidate.
  3. Uneven multi-hexagon search. See UMH_PATTERN.
  4. Refinement using standard hexagon search.

current provides the initial search location and serves as the output for the final search results.

me_range parameter determines how far these stages can search.