/* * Copyright (c) 2020, Alliance for Open Media. All rights reserved. * * This source code is subject to the terms of the BSD 2 Clause License and * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License * was not distributed with this source code in the LICENSE file, you can * obtain it at www.aomedia.org/license/software. If the Alliance for Open * Media Patent License 1.0 was not distributed with this source code in the * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
// Denoiser is used in non svc real-time mode which does not use alt-ref, so no // need to allocate for it, and hence we need MAX_REF_FRAME - 1 #define NONSVC_REF_FRAMES REF_FRAMES - 1
// Number of frame buffers when SVC is used. [0] for current denoised buffer and // [1..8] for REF_FRAMES #define SVC_REF_FRAMES 9
void av1_denoiser_update_frame_info(
AV1_DENOISER *denoiser, YV12_BUFFER_CONFIG src, struct RTC_REF *rtc_ref, struct SVC *svc, FRAME_TYPE frame_type, int refresh_alt_ref_frame, int refresh_golden_frame, int refresh_last_frame, int alt_fb_idx, int gld_fb_idx, int lst_fb_idx, int resized, int svc_refresh_denoiser_buffers, int second_spatial_layer);
void av1_denoiser_denoise(struct AV1_COMP *cpi, MACROBLOCK *mb, int mi_row, int mi_col, BLOCK_SIZE bs, PICK_MODE_CONTEXT *ctx,
AV1_DENOISER_DECISION *denoiser_decision, int use_gf_temporal_ref);
int av1_denoiser_realloc_svc(AV1_COMMON *cm, AV1_DENOISER *denoiser, struct RTC_REF *rtc, struct SVC *svc, int svc_buf_shift, int refresh_alt, int refresh_gld, int refresh_lst, int alt_fb_idx, int gld_fb_idx, int lst_fb_idx);
int av1_denoiser_alloc(AV1_COMMON *cm, struct SVC *svc, AV1_DENOISER *denoiser, int use_svc, int noise_sen, int width, int height, int ssx, int ssy, int use_highbitdepth, int border);
#if CONFIG_AV1_TEMPORAL_DENOISING // This function is used by both c and sse2 denoiser implementations. // Define it as a static function within the scope where av1_denoiser.h // is referenced. staticinlineint total_adj_strong_thresh(BLOCK_SIZE bs, int increase_denoising) { return (1 << num_pels_log2_lookup[bs]) * (increase_denoising ? 3 : 2);
} #endif
void av1_denoiser_free(AV1_DENOISER *denoiser);
void av1_denoiser_set_noise_level(struct AV1_COMP *const cpi, int noise_level);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.