/* * Copyright (c) 2016 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file in the root of the source tree. An additional * intellectual property rights grant can be found in the file PATENTS. * All contributing project authors may be found in the AUTHORS file in * the root of the source tree.
*/
/* * \file vp9_alt_ref_aq.h * * This file contains public interface for setting up adaptive segmentation * for altref frames. Go to alt_ref_aq_private.h for implmentation details.
*/
// Where to disable segmentation #define ALT_REF_AQ_LOW_BITRATE_BOUNDARY 150
// Last frame always has overall quality = 0, // so it is questionable if I can process it #define ALT_REF_AQ_APPLY_TO_LAST_FRAME 1
// If I should try to compare gain // against segmentation overhead #define ALT_REF_AQ_PROTECT_GAIN 0
// Threshold to disable segmentation #define ALT_REF_AQ_PROTECT_GAIN_THRESH 0.5
#ifdef __cplusplus extern"C" { #endif
// Simple structure for storing images struct MATX_8U { int rows; int cols; int stride;
uint8_t *data;
};
struct VP9_COMP; struct ALT_REF_AQ;
/*!\brief Constructor * * \return Instance of the class
*/ struct ALT_REF_AQ *vp9_alt_ref_aq_create(void);
/*!\brief Upload segmentation_map to self object * * \param self Instance of the class * \param segmentation_map Segmentation map to upload
*/ void vp9_alt_ref_aq_upload_map(struct ALT_REF_AQ *const self, conststruct MATX_8U *segmentation_map);
/*!\brief Return pointer to the altref segmentation map * * \param self Instance of the class * \param segmentation_overhead Segmentation overhead in bytes * \param bandwidth Current frame bandwidth in bytes * * \return Boolean value to disable segmentation
*/ int vp9_alt_ref_aq_disable_if(conststruct ALT_REF_AQ *self, int segmentation_overhead, int bandwidth);
/*!\brief Set number of segments * * It is used for delta quantizer computations * and thus it can be larger than * maximum value of the segmentation map * * \param self Instance of the class * \param nsegments Maximum number of segments
*/ void vp9_alt_ref_aq_set_nsegments(struct ALT_REF_AQ *const self, int nsegments);
/*!\brief Set up LOOKAHEAD_AQ segmentation mode * * Set up segmentation mode to LOOKAHEAD_AQ * (expected future frames prediction * quality refering to the current frame). * * \param self Instance of the class * \param cpi Encoder context
*/ void vp9_alt_ref_aq_setup_mode(struct ALT_REF_AQ *const self, struct VP9_COMP *const cpi);
/*!\brief Set up LOOKAHEAD_AQ segmentation map and delta quantizers * * \param self Instance of the class * \param cpi Encoder context
*/ void vp9_alt_ref_aq_setup_map(struct ALT_REF_AQ *const self, struct VP9_COMP *const cpi);
/*!\brief Restore main segmentation map mode and reset the class variables * * \param self Instance of the class * \param cpi Encoder context
*/ void vp9_alt_ref_aq_unset_all(struct ALT_REF_AQ *const self, struct VP9_COMP *const cpi);
/*!\brief Destructor * * \param self Instance of the class
*/ void vp9_alt_ref_aq_destroy(struct ALT_REF_AQ *const self);
#ifdef __cplusplus
} // extern "C" #endif
#endif// VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
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.