#[repr(C)]
pub struct aom_partition_features {
Show 34 fields pub id: AOM_EXT_PART_FEATURE_ID, pub before_part_none: aom_partition_features_before_none_t, pub after_part_none: aom_partition_features_none_t, pub after_part_split: aom_partition_features_split_t, pub after_part_rect: aom_partition_features_rect_t, pub after_part_ab: aom_partition_features_ab_t, pub sb_features: aom_sb_features_t, pub mi_row: c_int, pub mi_col: c_int, pub frame_width: c_int, pub frame_height: c_int, pub block_size: c_int, pub valid_partition_types: c_int, pub update_type: c_int, pub qindex: c_int, pub rdmult: c_int, pub pyramid_level: c_int, pub has_above_block: c_int, pub above_block_width: c_int, pub above_block_height: c_int, pub has_left_block: c_int, pub left_block_width: c_int, pub left_block_height: c_int, pub block_sse: c_uint, pub block_var: c_uint, pub sub_block_sse: [c_uint; 4], pub sub_block_var: [c_uint; 4], pub horz_block_sse: [c_uint; 2], pub horz_block_var: [c_uint; 2], pub vert_block_sse: [c_uint; 2], pub vert_block_var: [c_uint; 2], pub tpl_intra_cost: i64, pub tpl_inter_cost: i64, pub tpl_mc_dep_cost: i64,
}
Expand description

Features pass to the external model to make partition decisions.

The encoder sends these features to the external model through “func()” defined in …..

NOTE: new member variables may be added to this structure in the future. Once new features are finalized, bump the major version of libaom.

Fields§

§id: AOM_EXT_PART_FEATURE_ID

Feature ID to indicate active features

§before_part_none: aom_partition_features_before_none_t

Features collected before NONE partition

§after_part_none: aom_partition_features_none_t

Features collected after NONE partition

§after_part_split: aom_partition_features_split_t

Features collected after SPLIT partition

§after_part_rect: aom_partition_features_rect_t

Features collected after RECTANGULAR partition

§after_part_ab: aom_partition_features_ab_t

Features collected after AB partition

§sb_features: aom_sb_features_t

Features collected for the super block

§mi_row: c_int

Mi_row position of the block

§mi_col: c_int

Mi_col position of the block

§frame_width: c_int

Frame width

§frame_height: c_int

Frame height

§block_size: c_int

As “BLOCK_SIZE” in av1/common/enums.h

§valid_partition_types: c_int

Valid partition types. A bitmask is used. “1” represents the corresponding type is valid. The bitmask follows the enum order for PARTITION_TYPE in “enums.h” to represent one partition type at a bit. For example, 0x01 stands for only PARTITION_NONE is valid, 0x09 (00…001001) stands for PARTITION_NONE and PARTITION_SPLIT are valid.

§update_type: c_int

Frame update type, defined in ratectrl.h

§qindex: c_int

Quantization index, range: [0, 255]

§rdmult: c_int

Rate-distortion multiplier

§pyramid_level: c_int

The level of this frame in the hierarchical structure

§has_above_block: c_int

Has above neighbor block

§above_block_width: c_int

Width of the above block, -1 if not exist

§above_block_height: c_int

Height of the above block, -1 if not exist

§has_left_block: c_int

Has left neighbor block

§left_block_width: c_int

Width of the left block, -1 if not exist

§left_block_height: c_int

Height of the left block, -1 if not exist

§block_sse: c_uint

SSE of motion compensated residual

§block_var: c_uint

Variance of motion compensated residual

§sub_block_sse: [c_uint; 4]

SSE of sub blocks.

§sub_block_var: [c_uint; 4]

Variance of sub blocks.

§horz_block_sse: [c_uint; 2]

SSE of horz sub blocks

§horz_block_var: [c_uint; 2]

Variance of horz sub blocks

§vert_block_sse: [c_uint; 2]

SSE of vert sub blocks

§vert_block_var: [c_uint; 2]

Variance of vert sub blocks

§tpl_intra_cost: i64

Intra cost, ref to “TplDepStats” in tpl_model.h

§tpl_inter_cost: i64

Inter cost in tpl model

§tpl_mc_dep_cost: i64

Motion compensated dependency cost in tpl model

Trait Implementations§

source§

impl Clone for aom_partition_features

source§

fn clone(&self) -> aom_partition_features

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for aom_partition_features

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for aom_partition_features

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.