AOMedia AV1 Codec
AV1EncRowMultiThreadInfo Struct Reference

Encoder data related to row-based multi-threading. More...

#include <encoder.h>

Data Fields

int allocated_tile_rows
 
int allocated_tile_cols
 
int allocated_rows
 
int allocated_cols
 
int thread_id_to_tile_id [64]
 
int * num_tile_cols_done
 
int allocated_sb_rows
 
bool row_mt_exit
 
bool firstpass_mt_exit
 
bool mb_wiener_mt_exit
 
pthread_mutex_t * mutex_
 
pthread_cond_t * cond_
 
Row synchronization related function pointers.
void(* sync_read_ptr )(AV1EncRowMultiThreadSync *const, int, int)
 
void(* sync_write_ptr )(AV1EncRowMultiThreadSync *const, int, int, int)
 

Detailed Description

Encoder data related to row-based multi-threading.

Field Documentation

◆ allocated_tile_rows

int AV1EncRowMultiThreadInfo::allocated_tile_rows

Number of tile rows for which row synchronization memory is allocated.

◆ allocated_tile_cols

int AV1EncRowMultiThreadInfo::allocated_tile_cols

Number of tile cols for which row synchronization memory is allocated.

◆ allocated_rows

int AV1EncRowMultiThreadInfo::allocated_rows

Number of rows for which row synchronization memory is allocated per tile. During first-pass/look-ahead stage this equals the maximum number of macroblock rows in a tile. During encode stage, this equals the maximum number of superblock rows in a tile.

◆ allocated_cols

int AV1EncRowMultiThreadInfo::allocated_cols

Number of columns for which entropy context memory is allocated per tile. During encode stage, this equals the maximum number of superblock columns in a tile minus 1. The entropy context memory is not allocated during first-pass/look-ahead stage.

◆ thread_id_to_tile_id

int AV1EncRowMultiThreadInfo::thread_id_to_tile_id[64]

thread_id_to_tile_id[i] indicates the tile id assigned to the ith thread.

◆ num_tile_cols_done

int* AV1EncRowMultiThreadInfo::num_tile_cols_done

num_tile_cols_done[i] indicates the number of tile columns whose encoding is complete in the ith superblock row.

◆ allocated_sb_rows

int AV1EncRowMultiThreadInfo::allocated_sb_rows

Number of superblock rows in a frame for which 'num_tile_cols_done' is allocated.

◆ row_mt_exit

bool AV1EncRowMultiThreadInfo::row_mt_exit

Initialized to false, set to true by the worker thread that encounters an error in order to abort the processing of other worker threads.

Referenced by encode_sb_row().

◆ firstpass_mt_exit

bool AV1EncRowMultiThreadInfo::firstpass_mt_exit

Initialized to false, set to true during first pass encoding by the worker thread that encounters an error in order to abort the processing of other worker threads.

◆ mb_wiener_mt_exit

bool AV1EncRowMultiThreadInfo::mb_wiener_mt_exit

Initialized to false, set to true in cal_mb_wiener_var_hook() by the worker thread that encounters an error in order to abort the processing of other worker threads.

◆ mutex_

pthread_mutex_t* AV1EncRowMultiThreadInfo::mutex_

Mutex lock used while dispatching jobs.

Referenced by encode_sb_row().

◆ cond_

pthread_cond_t* AV1EncRowMultiThreadInfo::cond_

Condition variable used to dispatch loopfilter jobs.

◆ sync_read_ptr

void(* AV1EncRowMultiThreadInfo::sync_read_ptr) (AV1EncRowMultiThreadSync *const, int, int)

Reader.

Referenced by encode_frame_internal(), and encode_sb_row().

◆ sync_write_ptr

void(* AV1EncRowMultiThreadInfo::sync_write_ptr) (AV1EncRowMultiThreadSync *const, int, int, int)

Writer.

Referenced by encode_frame_internal(), and encode_sb_row().


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