AOMedia AV1 Codec
encoder.h File Reference

Declares top-level encoder structures and functions. More...

#include <stdbool.h>
#include <stdio.h>
#include "config/aom_config.h"
#include "aom/aomcx.h"
#include "av1/common/alloccommon.h"
#include "av1/common/av1_common_int.h"
#include "av1/common/blockd.h"
#include "av1/common/entropymode.h"
#include "av1/common/enums.h"
#include "av1/common/resize.h"
#include "av1/common/thread_common.h"
#include "av1/common/timing.h"
#include "av1/encoder/aq_cyclicrefresh.h"
#include "av1/encoder/av1_quantize.h"
#include "av1/encoder/block.h"
#include "av1/encoder/context_tree.h"
#include "av1/encoder/encodemb.h"
#include "av1/encoder/firstpass.h"
#include "av1/encoder/global_motion.h"
#include "av1/encoder/level.h"
#include "av1/encoder/lookahead.h"
#include "av1/encoder/mcomp.h"
#include "av1/encoder/pickcdef.h"
#include "av1/encoder/ratectrl.h"
#include "av1/encoder/rd.h"
#include "av1/encoder/speed_features.h"
#include "av1/encoder/svc_layercontext.h"
#include "av1/encoder/temporal_filter.h"
#include "av1/encoder/tokenize.h"
#include "av1/encoder/tpl_model.h"
#include "av1/encoder/av1_noise_estimate.h"
#include "aom_dsp/variance.h"
#include "aom_dsp/noise_model.h"
#include "aom/internal/aom_codec_internal.h"
#include "aom_util/aom_thread.h"
Include dependency graph for encoder.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ResizeCfg
 Encoder config related to resize. More...
 
struct  PartitionCfg
 Encoder config for coding block partitioning. More...
 
struct  IntraModeCfg
 Encoder flags for intra prediction. More...
 
struct  TxfmSizeTypeCfg
 Encoder flags for transform sizes and types. More...
 
struct  CompoundTypeCfg
 Encoder flags for compound prediction modes. More...
 
struct  SuperResCfg
 Encoder config related to frame super-resolution. More...
 
struct  KeyFrameCfg
 Encoder config related to the coding of key frames. More...
 
struct  RateControlCfg
 Encoder rate control configuration parameters. More...
 
struct  AlgoCfg
 Algorithm configuration parameters. More...
 
struct  AV1EncoderConfig
 Main encoder configuration data structure. More...
 
struct  FrameProbInfo
 Encoder-side probabilities for pruning of various AV1 tools. More...
 
struct  inter_modes_info
 Struct used to hold inter mode data for fast tx search. More...
 
struct  VarBasedPartitionInfo
 Thresholds for variance based partitioning. More...
 
struct  AV1EncRowMultiThreadSync
 Encoder parameters for synchronization of row based multi-threading. More...
 
struct  AV1EncRowMultiThreadInfo
 Encoder data related to row-based multi-threading. More...
 
struct  MultiThreadInfo
 Encoder parameters related to multi-threading. More...
 
struct  ForceIntegerMVInfo
 Encoder info used for decision on forcing integer motion vectors. More...
 
struct  MBMIExtFrameBufferInfo
 Buffer to store mode information at mi_alloc_bsize (4x4 or 8x8) level. More...
 
struct  GlobalMotionInfo
 Parameters related to global motion search. More...
 
struct  InitialDimensions
 Initial frame dimensions. More...
 
struct  InterpSearchFlags
 Flags related to interpolation filter search. More...
 
struct  MotionVectorSearchParams
 Parameters for motion vector search process. More...
 
struct  RefreshFrameFlagsInfo
 Refresh frame flags for different type of frames. More...
 
struct  ResizePendingParams
 Desired dimensions for an externally triggered resize. More...
 
struct  RefFrameDistanceInfo
 Refrence frame distance related variables. More...
 
struct  WinnerModeParams
 Parameters used for winner mode processing. More...
 
struct  ExtRefreshFrameFlagsInfo
 Frame refresh flags set by the external interface. More...
 
struct  ExternalFlags
 Flags signalled by the external interface at frame level. More...
 
struct  EncSegmentationInfo
 Segmentation related information for the current frame. More...
 
struct  TimeStamps
 Frame time stamps. More...
 
struct  CoeffBufferPool
 
struct  AV1_PRIMARY
 Top level primary encoder structure. More...
 
struct  AV1_COMP
 Top level encoder structure. More...
 
struct  EncodeFrameInput
 Input frames and last input frame. More...
 
struct  EncodeFrameParams
 contains per-frame encoding parameters decided upon by av1_encode_strategy() and passed down to av1_encode(). More...
 

Typedefs

typedef struct AV1EncoderConfig AV1EncoderConfig
 Main encoder configuration data structure.
 
typedef struct inter_modes_info InterModesInfo
 Struct used to hold inter mode data for fast tx search. More...
 
typedef struct MultiThreadInfo MultiThreadInfo
 Encoder parameters related to multi-threading.
 
typedef struct AV1_PRIMARY AV1_PRIMARY
 Top level primary encoder structure.
 
typedef struct AV1_COMP AV1_COMP
 Top level encoder structure.
 
typedef struct EncodeFrameInput EncodeFrameInput
 Input frames and last input frame.
 
typedef struct EncodeFrameParams EncodeFrameParams
 contains per-frame encoding parameters decided upon by av1_encode_strategy() and passed down to av1_encode().
 

Enumerations

enum  COST_UPDATE_TYPE { COST_UPD_SB, COST_UPD_SBROW, COST_UPD_TILE, COST_UPD_OFF }
 This enum controls how often the entropy costs should be updated. More...
 

Functions

int av1_receive_raw_frame (AV1_COMP *cpi, aom_enc_frame_flags_t frame_flags, YV12_BUFFER_CONFIG *sd, int64_t time_stamp, int64_t end_time_stamp)
 Obtain the raw frame data. More...
 
int av1_get_compressed_data (AV1_COMP *cpi, unsigned int *frame_flags, size_t *size, uint8_t *dest, int64_t *time_stamp, int64_t *time_end, int flush, const aom_rational64_t *timebase)
 Encode a frame. More...
 
int av1_encode (AV1_COMP *const cpi, uint8_t *const dest, const EncodeFrameInput *const frame_input, const EncodeFrameParams *const frame_params, EncodeFrameResults *const frame_results)
 Run 1-pass/2-pass encoding.
 
static int has_no_stats_stage (const AV1_COMP *const cpi)
 Check if the current stage has statistics. More...
 

Detailed Description

Declares top-level encoder structures and functions.

Typedef Documentation

◆ InterModesInfo

Struct used to hold inter mode data for fast tx search.

This struct is used to perform a full transform search only on winning candidates searched with an estimate for transform coding RD.

Enumeration Type Documentation

◆ COST_UPDATE_TYPE

This enum controls how often the entropy costs should be updated.

Enumerator
COST_UPD_SB 

Update every sb.

COST_UPD_SBROW 

Update every sb rows inside a tile.

COST_UPD_TILE 

Update every tile.

COST_UPD_OFF 

Turn off cost updates.