AOMedia AV1 Codec: MvCosts Struct Reference

| AOMedia AV1 Codec

MvCosts Struct Reference

Holds mv costs for encoding and motion search. More...

`#include <block.h>`

## Data Fields
Encoding Costs
Here are the entropy costs needed to encode a given mv. nmv_cost_alloc and nmv_cost_hp_alloc are two arrays that holds the memory for holding the mv cost. But since the motion vectors can be negative, we shift them to the middle and store the resulting pointer in nmv_cost and nmv_cost_hp for easier referencing. Finally, mv_cost_stack points to the nmv_cost with the mv precision we are currently working with. In essence, only mv_cost_stack is needed for motion search, the other can be considered private.
int | nmv_joint_cost [4]
| Costs for coding the zero components.
int | nmv_cost_alloc [2][((((1<<(11+1+2)) - 1)<< 1)+1)]
| Allocates memory for 1/4-pel motion vector costs.
int | nmv_cost_hp_alloc [2][((((1<<(11+1+2)) - 1)<< 1)+1)]
| Allocates memory for 1/8-pel motion vector costs.
int * | nmv_cost [2]
| Points to the middle of nmv_cost_alloc.
int * | nmv_cost_hp [2]
| Points to the middle of nmv_cost_hp_alloc.
int ** | mv_cost_stack
| Points to the nmv_cost_hp in use.

## Detailed Description

Holds mv costs for encoding and motion search.

## Field Documentation

## ◆ nmv_joint_cost

int MvCosts::nmv_joint_cost[4]

Costs for coding the zero components.

Referenced by combined_motion_search(), motion_mode_rd(), and search_new_mv().

## ◆ mv_cost_stack

int** MvCosts::mv_cost_stack

Points to the nmv_cost_hp in use.

Referenced by combined_motion_search(), motion_mode_rd(), and search_new_mv().

The documentation for this struct was generated from the following file:

- av1/encoder/block.h