|
| int | av1_cyclic_refresh_estimate_bits_at_q (const struct AV1_COMP *cpi, double correction_factor) |
| | Estimate the bits, incorporating the delta-q from the segments. More...
|
| |
| int | av1_cyclic_refresh_rc_bits_per_mb (const struct AV1_COMP *cpi, int i, double correction_factor) |
| | Estimate the bits per mb, for given q = i and delta-q. More...
|
| |
| void | av1_cyclic_reset_segment_skip (const struct AV1_COMP *cpi, MACROBLOCK *const x, int mi_row, int mi_col, BLOCK_SIZE bsize, RUN_TYPE dry_run) |
| | Update segment_id for blocks are skipped. More...
|
| |
| void | av1_cyclic_refresh_update_segment (const struct AV1_COMP *cpi, MACROBLOCK *const x, int mi_row, int mi_col, BLOCK_SIZE bsize, int64_t rate, int64_t dist, int skip, RUN_TYPE dry_run) |
| | Update segment_id for block based on mode selected. More...
|
| |
| void | av1_init_cyclic_refresh_counters (MACROBLOCK *const x) |
| | Initialize counters used for cyclic refresh. More...
|
| |
| void | av1_accumulate_cyclic_refresh_counters (CYCLIC_REFRESH *const cyclic_refresh, const MACROBLOCK *const x) |
| | Accumulate cyclic refresh counters. More...
|
| |
| void | av1_cyclic_refresh_set_golden_update (struct AV1_COMP *const cpi) |
| | Set golden frame update interval nased on cyclic refresh. More...
|
| |
| void | av1_cyclic_refresh_update_parameters (struct AV1_COMP *const cpi) |
| | Set the global/frame level parameters for cyclic refresh. More...
|
| |
| void | av1_cyclic_refresh_setup (struct AV1_COMP *const cpi) |
| | Setup the cyclic background refresh. More...
|
| |
This module describes the cyclic refresh (aq-mode=3) in AV1. More details will be added.
◆ av1_cyclic_refresh_estimate_bits_at_q()
| int av1_cyclic_refresh_estimate_bits_at_q |
( |
const struct AV1_COMP * |
cpi, |
|
|
double |
correction_factor |
|
) |
| |
Estimate the bits, incorporating the delta-q from the segments.
For the just encoded frame, estimate the bits, incorporating the delta-q from non-base segment(s). Note this function is called in the postencode (called from rc_update_rate_correction_factors()).
- Parameters
-
| [in] | cpi | Top level encoder structure |
| [in] | correction_factor | rate correction factor |
- Returns
- Return the estimated bits at given q.
Referenced by av1_rc_update_rate_correction_factors().
◆ av1_cyclic_refresh_rc_bits_per_mb()
| int av1_cyclic_refresh_rc_bits_per_mb |
( |
const struct AV1_COMP * |
cpi, |
|
|
int |
i, |
|
|
double |
correction_factor |
|
) |
| |
Estimate the bits per mb, for given q = i and delta-q.
Prior to encoding the frame, estimate the bits per mb, for a given q = i and a corresponding delta-q (for segment 1). This function is called in the rc_regulate_q() to set the base qp index. Note: the segment map is set to either 0/CR_SEGMENT_ID_BASE (no refresh) or to 1/CR_SEGMENT_ID_BOOST1 (refresh) for each superblock, prior to encoding.
- Parameters
-
| [in] | cpi | Top level encoder structure |
| [in] | i | q index |
| [in] | correction_factor | rate correction factor |
- Returns
- Return the estimated bits for q = i and delta-q (segment 1).
◆ av1_cyclic_reset_segment_skip()
| void av1_cyclic_reset_segment_skip |
( |
const struct AV1_COMP * |
cpi, |
|
|
MACROBLOCK *const |
x, |
|
|
int |
mi_row, |
|
|
int |
mi_col, |
|
|
BLOCK_SIZE |
bsize, |
|
|
RUN_TYPE |
dry_run |
|
) |
| |
Update segment_id for blocks are skipped.
After encoding a given prediction block, of size bsize at (mi_row, mi_col), check if we should reset the segment_id based on skip_txfm, and update the cyclic_refresh map and segmentation counters.
- Parameters
-
| [in] | cpi | Top level encoder structure |
| [in] | x | Pointer to MACROBLOCK structure |
| [in] | mi_row | Row coordinate of the block in a step size of MI_SIZE |
| [in] | mi_col | Col coordinate of the block in a step size of MI_SIZE |
| [in] | bsize | Block size |
| [in] | dry_run | A code indicating whether it is part of the final pass for reconstructing the superblock |
◆ av1_cyclic_refresh_update_segment()
| void av1_cyclic_refresh_update_segment |
( |
const struct AV1_COMP * |
cpi, |
|
|
MACROBLOCK *const |
x, |
|
|
int |
mi_row, |
|
|
int |
mi_col, |
|
|
BLOCK_SIZE |
bsize, |
|
|
int64_t |
rate, |
|
|
int64_t |
dist, |
|
|
int |
skip, |
|
|
RUN_TYPE |
dry_run |
|
) |
| |
Update segment_id for block based on mode selected.
Prior to coding a given prediction block, of size bsize at (mi_row, mi_col), check if we should reset the segment_id (based on mode/motion/skip selected for that block) and update the cyclic_refresh map and segmentation map.
- Parameters
-
| [in] | cpi | Top level encoder structure |
| [in] | x | Pointer to MACROBLOCK structure |
| [in] | mi_row | Row coordinate of the block in a step size of MI_SIZE |
| [in] | mi_col | Col coordinate of the block in a step size of MI_SIZE |
| [in] | bsize | Block size |
| [in] | rate | Projected block rate from pickmode |
| [in] | dist | Projected block dist from pickmode |
| [in] | skip | Skip flag set from picmode |
| [in] | dry_run | A code indicating whether it is part of the final pass for reconstructing the superblock |
◆ av1_init_cyclic_refresh_counters()
| void av1_init_cyclic_refresh_counters |
( |
MACROBLOCK *const |
x | ) |
|
Initialize counters used for cyclic refresh.
Initializes cyclic refresh counters actual_num_seg1_blocks and actual_num_seg2_blocks.
- Parameters
-
| [in] | x | Pointer to MACROBLOCK structure |
◆ av1_accumulate_cyclic_refresh_counters()
Accumulate cyclic refresh counters.
Accumulates cyclic refresh counters actual_num_seg1_blocks and actual_num_seg2_blocks from MACROBLOCK strcture to CYCLIC_REFRESH strcture.
- Parameters
-
| [in] | cyclic_refresh | Pointer to CYCLIC_REFRESH structure |
| [in] | x | Pointer to MACROBLOCK structure |
◆ av1_cyclic_refresh_set_golden_update()
| void av1_cyclic_refresh_set_golden_update |
( |
struct AV1_COMP *const |
cpi | ) |
|
Set golden frame update interval nased on cyclic refresh.
- Parameters
-
| [in] | cpi | Top level encoder structure |
◆ av1_cyclic_refresh_update_parameters()
| void av1_cyclic_refresh_update_parameters |
( |
struct AV1_COMP *const |
cpi | ) |
|
Set the global/frame level parameters for cyclic refresh.
First call to the cyclic refresh, before encoding the frame. Sets the flag on whether cyclic refresh should be applied, sets the amount/percent of refresh, and the amount of boost applied to the two segments (set by rate_ratio_qdelta and rate_boost_fac).
- Parameters
-
| [in] | cpi | Top level encoder structure |
Referenced by av1_encode_strategy().
◆ av1_cyclic_refresh_setup()
| void av1_cyclic_refresh_setup |
( |
struct AV1_COMP *const |
cpi | ) |
|
Setup the cyclic background refresh.
Set the delta q for the segment(s), and set the segmentation map.
- Parameters
-
| [in] | cpi | Top level encoder structure |