pub struct HexagonalSearch {
pub inner: [(i32, i32); 6],
pub outer: [(i32, i32); 6],
pub max_iterations: u32,
}Expand description
Hexagonal search pattern (HEX) for motion estimation.
A 6-point pattern inspired by the H.264 HEX search:
* *
* O *
* *Hexagonal patterns often outperform diamond patterns for complex motion because they cover 6 equidistant directions simultaneously.
Fields§
§inner: [(i32, i32); 6]Inner hex (6 points, radius ≈ 2).
outer: [(i32, i32); 6]Outer hex (6 points, radius ≈ 4).
max_iterations: u32Maximum iterations before refinement.
Implementations§
Source§impl HexagonalSearch
impl HexagonalSearch
Sourcepub const INNER_PATTERN: [(i32, i32); 6]
pub const INNER_PATTERN: [(i32, i32); 6]
Standard inner hexagon offsets (radius ≈ 2).
Sourcepub const OUTER_PATTERN: [(i32, i32); 6]
pub const OUTER_PATTERN: [(i32, i32); 6]
Standard outer hexagon offsets (radius ≈ 4).
Sourcepub const fn max_iterations(self, max: u32) -> Self
pub const fn max_iterations(self, max: u32) -> Self
Set maximum iterations.
Trait Implementations§
Source§impl Clone for HexagonalSearch
impl Clone for HexagonalSearch
Source§fn clone(&self) -> HexagonalSearch
fn clone(&self) -> HexagonalSearch
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HexagonalSearch
impl Debug for HexagonalSearch
Source§impl Default for HexagonalSearch
impl Default for HexagonalSearch
Source§impl MotionSearch for HexagonalSearch
impl MotionSearch for HexagonalSearch
Source§fn search(&self, ctx: &SearchContext<'_>, config: &SearchConfig) -> BlockMatch
fn search(&self, ctx: &SearchContext<'_>, config: &SearchConfig) -> BlockMatch
Performs motion search and returns the best match.
Source§fn search_with_predictor(
&self,
ctx: &SearchContext<'_>,
config: &SearchConfig,
predictor: MotionVector,
) -> BlockMatch
fn search_with_predictor( &self, ctx: &SearchContext<'_>, config: &SearchConfig, predictor: MotionVector, ) -> BlockMatch
Performs motion search with a starting point prediction.
impl Copy for HexagonalSearch
Auto Trait Implementations§
impl Freeze for HexagonalSearch
impl RefUnwindSafe for HexagonalSearch
impl Send for HexagonalSearch
impl Sync for HexagonalSearch
impl Unpin for HexagonalSearch
impl UnsafeUnpin for HexagonalSearch
impl UnwindSafe for HexagonalSearch
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more