|
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