Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/media/libvpx/libvpx/vp9/encoder/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  vp9_alt_ref_aq.h   Sprache: C

 
/*
 *  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.
 */


#ifndef VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_
#define VPX_VP9_ENCODER_VP9_ALT_REF_AQ_H_

#include "vpx/vpx_integer.h"

// 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,
                               const struct 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(const struct 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
C=98 H=90 G=94

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.