AOMedia AV1 Codec
Collaboration diagram for CDEF:

Functions

void av1_cdef_frame (YV12_BUFFER_CONFIG *frame, AV1_COMMON *const cm, MACROBLOCKD *xd, cdef_init_fb_row_t cdef_init_fb_row_fn)
 Function for applying CDEF to a frame.
 
void av1_cdef_search (struct MultiThreadInfo *mt_info, const YV12_BUFFER_CONFIG *frame, const YV12_BUFFER_CONFIG *ref, AV1_COMMON *cm, MACROBLOCKD *xd, CDEF_PICK_METHOD pick_method, int rdmult, int skip_cdef_feature, CDEF_CONTROL cdef_control, const int is_screen_content, int non_reference_frame, int rtc_ext_rc)
 AV1 CDEF parameter search.
 
void av1_pick_cdef_from_qp (AV1_COMMON *const cm, int skip_cdef, int is_screen_content)
 AV1 CDEF level from QP.
 

Detailed Description

This module describes the CDEF parameter search algorithm in AV1. More details will be added.

Function Documentation

◆ av1_cdef_frame()

void av1_cdef_frame ( YV12_BUFFER_CONFIG * frame,
AV1_COMMON *const cm,
MACROBLOCKD * xd,
cdef_init_fb_row_t cdef_init_fb_row_fn )

Function for applying CDEF to a frame.

This function applies CDEF to a frame.

Parameters
[in,out]frameCompressed frame buffer
[in,out]cmPointer to top level common structure
[in]xdPointer to common current coding block structure
[in]cdef_init_fb_row_fnFunction Pointer
Remarks
Nothing is returned. Instead, the filtered frame is output in frame.

Referenced by cdef_restoration_frame().

◆ av1_cdef_search()

void av1_cdef_search ( struct MultiThreadInfo * mt_info,
const YV12_BUFFER_CONFIG * frame,
const YV12_BUFFER_CONFIG * ref,
AV1_COMMON * cm,
MACROBLOCKD * xd,
CDEF_PICK_METHOD pick_method,
int rdmult,
int skip_cdef_feature,
CDEF_CONTROL cdef_control,
const int is_screen_content,
int non_reference_frame,
int rtc_ext_rc )

AV1 CDEF parameter search.

Searches for optimal CDEF parameters for frame

Parameters
[in]mt_infoPointer to multi-threading parameters
[in]frameCompressed frame buffer
[in]refSource frame buffer
[in,out]cmPointer to top level common structure
[in]xdPointer to common current coding block structure
[in]pick_methodThe method used to select params
[in]rdmultrd multiplier to use in making param choices
[in]skip_cdef_featureSpeed feature to skip cdef
[in]cdef_controlParameter that controls CDEF application
[in]is_screen_contentWhether it is screen content type
[in]non_reference_frameIndicates if current frame is non-reference
[in]rtc_ext_rcIndicate if external RC is used for testing
Remarks
Nothing is returned. Instead, optimal CDEF parameters are stored in the cdef_info structure of type CdefInfo inside cm:
  • cdef_bits: Bits of strength parameters
  • nb_cdef_strengths: Number of strength parameters
  • cdef_strengths: list of nb_cdef_strengths strength parameters for the luma plane.
  • uv_cdef_strengths: list of nb_cdef_strengths strength parameters for the chroma planes.
  • damping_factor: CDEF damping factor.

Referenced by cdef_restoration_frame().

◆ av1_pick_cdef_from_qp()

void av1_pick_cdef_from_qp ( AV1_COMMON *const cm,
int skip_cdef,
int is_screen_content )

AV1 CDEF level from QP.

Calculates CDEF levels from frame QP. Only used for speed 7+ with RT mode.

Parameters
[in,out]cmPointer to top level common structure
[in]skip_cdefFlag to skip CDEF filtering
[in]is_screen_contentFlag indicating screen content