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.

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

- av1/encoder/block.h