|
| void | av1_loop_restoration_filter_unit (const RestorationTileLimits *limits, const RestorationUnitInfo *rui, const RestorationStripeBoundaries *rsb, RestorationLineBuffers *rlbs, int plane_w, int plane_h, int ss_x, int ss_y, int highbd, int bit_depth, uint8_t *data8, int stride, uint8_t *dst8, int dst_stride, int32_t *tmpbuf, int optimized_lr, struct aom_internal_error_info *error_info) |
| | Function for applying loop restoration filter to a single unit. More...
|
| |
| void | av1_loop_restoration_filter_frame (YV12_BUFFER_CONFIG *frame, struct AV1Common *cm, int optimized_lr, void *lr_ctxt) |
| | Function for applying loop restoration filter to a frame. More...
|
| |
| void | av1_pick_filter_restoration (const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi) |
| | Algorithm for AV1 loop restoration search and estimation. More...
|
| |
This module describes the loop restoration search and estimation algorithm in AV1. More details will be added.
◆ av1_loop_restoration_filter_unit()
| void av1_loop_restoration_filter_unit |
( |
const RestorationTileLimits * |
limits, |
|
|
const RestorationUnitInfo * |
rui, |
|
|
const RestorationStripeBoundaries * |
rsb, |
|
|
RestorationLineBuffers * |
rlbs, |
|
|
int |
plane_w, |
|
|
int |
plane_h, |
|
|
int |
ss_x, |
|
|
int |
ss_y, |
|
|
int |
highbd, |
|
|
int |
bit_depth, |
|
|
uint8_t * |
data8, |
|
|
int |
stride, |
|
|
uint8_t * |
dst8, |
|
|
int |
dst_stride, |
|
|
int32_t * |
tmpbuf, |
|
|
int |
optimized_lr, |
|
|
struct aom_internal_error_info * |
error_info |
|
) |
| |
Function for applying loop restoration filter to a single unit.
This function applies the loop restoration filter to a single loop restoration unit.
- Parameters
-
| [in] | limits | Limits of the unit |
| [in] | rui | The parameters to use for this unit and its coefficients |
| [in] | rsb | Deblocked pixels to use for stripe boundaries |
| [in] | rlbs | Space to use as a scratch buffer |
| [in] | ss_x | Horizontal subsampling for plane |
| [in] | ss_y | Vertical subsampling for plane |
| [in] | plane_w | Width of the current plane |
| [in] | plane_h | Height of the current plane |
| [in] | highbd | Whether high bitdepth pipeline is used |
| [in] | bit_depth | Bit-depth of the video |
| [in] | data8 | Frame data (pointing at the top-left corner of the frame, not the restoration unit). |
| [in] | stride | Stride of data8 |
| [out] | dst8 | Buffer where the results will be written. Like data8, dst8 should point at the top-left corner of the frame |
| [in] | dst_stride | Stride of dst8 |
| [in] | tmpbuf | Scratch buffer used by the sgrproj filter which should be at least SGRPROJ_TMPBUF_SIZE big. |
| [in] | optimized_lr | Whether to use fast optimized Loop Restoration |
| [in,out] | error_info | Error info for reporting errors |
◆ av1_loop_restoration_filter_frame()
Function for applying loop restoration filter to a frame.
This function applies the loop restoration filter to a frame.
- Parameters
-
| [in,out] | frame | Compressed frame buffer |
| [in,out] | cm | Pointer to top level common structure |
| [in] | optimized_lr | Whether to use fast optimized Loop Restoration |
| [in] | lr_ctxt | Loop restoration context |
◆ av1_pick_filter_restoration()
Algorithm for AV1 loop restoration search and estimation.
This function determines proper restoration filter types and associated parameters for each restoration unit in a frame.
- Parameters
-
| [in] | sd | Source frame buffer |
| [in,out] | cpi | Top-level encoder structure |
- The following fields in each
rst_info[ p], p = 0, 1, 2 are populated:
rst_info[ p ].frame_restoration_type
rst_info[ p ].unit_info[ u ], for each u in 0, 1, ..., n( p ) - 1, where n( p ) is the number of restoration units in plane p.
- The following fields in each
rst_info[ p ].unit_info[ u ], p = 0, 1, 2 and u = 0, 1, ..., n( p ) - 1, of type RestorationUnitInfo are populated:
rst_info[ p ].unit_info[ u ].restoration_type
rst_info[ p ].unit_info[ u ].wiener_info OR rst_info[ p ].unit_info[ u ].sgrproj_info OR neither, depending on rst_info[ p ].unit_info[ u ].restoration_type