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

int AV1EncRowMultiThreadInfo::allocated_tile_rows

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

int AV1EncRowMultiThreadInfo::allocated_tile_cols

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

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.

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.

int AV1EncRowMultiThreadInfo::thread_id_to_tile_id[64]

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

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.

int AV1EncRowMultiThreadInfo::allocated_sb_rows

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

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().

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.

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.

pthread_mutex_t* AV1EncRowMultiThreadInfo::mutex_

Mutex lock used while dispatching jobs.

Referenced by encode_sb_row().

pthread_cond_t* AV1EncRowMultiThreadInfo::cond_

Condition variable used to dispatch loopfilter jobs.

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

Reader.

Referenced by encode_frame_internal(), and encode_sb_row().

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: