/* * Copyright (c) 2018, 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.
*/
/*!\file * \brief A table mapping from time to corresponding film grain parameters. * * In order to apply grain synthesis in the decoder, the film grain parameters * need to be signalled in the encoder. The film grain parameters are time * varying, and for two-pass encoding (and denoiser implementation flexibility) * it is common to denoise the video and do parameter estimation before encoding * the denoised video. * * The film grain table is used to provide this flexibility and is used as a * parameter that is passed to the encoder. * * Further, if regraining is to be done in say a single pass mode, or in two * pass within the encoder (before frames are added to the lookahead buffer), * this data structure can be used to keep track of on-the-fly estimated grain * parameters, that are then extracted from the table before the encoded frame * is written.
*/ #ifndef AOM_AOM_DSP_GRAIN_TABLE_H_ #define AOM_AOM_DSP_GRAIN_TABLE_H_
/*!\brief Add a mapping from [time_stamp, end_time) to the given grain * parameters * * \param[in,out] table The grain table * \param[in] time_stamp The start time stamp * \param[in] end_stamp The end time_stamp * \param[in] grain The grain parameters
*/ void aom_film_grain_table_append(aom_film_grain_table_t *table,
int64_t time_stamp, int64_t end_time, const aom_film_grain_t *grain);
/*!\brief Look-up (and optionally erase) the grain parameters for the given time * * \param[in] table The grain table * \param[in] time_stamp The start time stamp * \param[in] end_stamp The end time_stamp * \param[in] erase Whether the time segment can be deleted * \param[out] grain The output grain parameters
*/ int aom_film_grain_table_lookup(aom_film_grain_table_t *t, int64_t time_stamp,
int64_t end_time, int erase,
aom_film_grain_t *grain);
/*!\brief Reads the grain table from a file. * * \param[out] table The grain table * \param[in] filename The file to read from * \param[in] error_info Error info for tracking errors
*/
aom_codec_err_t aom_film_grain_table_read(
aom_film_grain_table_t *table, constchar *filename, struct aom_internal_error_info *error_info);
/*!\brief Writes the grain table from a file. * * \param[out] table The grain table * \param[in] filename The file to read from * \param[in] error_info Error info for tracking errors
*/
aom_codec_err_t aom_film_grain_table_write( const aom_film_grain_table_t *t, constchar *filename, struct aom_internal_error_info *error_info);
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.