// Copyright (c) the JPEG XL 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.
// explicit distances for extra channels (defaults to butteraugli_distance // when not set; value of -1 can be used to represent 'default')
std::vector<float> ec_distance;
// Try to achieve a maximum pixel-by-pixel error on each channel. bool max_error_mode = false; float max_error[3] = {0.0, 0.0, 0.0};
bool disable_perceptual_optimizations = false;
SpeedTier speed_tier = SpeedTier::kSquirrel; int brotli_effort = -1;
// Put center groups first in the bitstream. bool centerfirst = false;
// Pixel coordinates of the center. First group will contain that center.
size_t center_x = static_cast<size_t>(-1);
size_t center_y = static_cast<size_t>(-1);
int progressive_dc = -1;
// If on: preserve color of invisible pixels (if off: don't care) // Default: on
Override keep_invisible = Override::kDefault;
// Force usage of CfL when doing JPEG recompression. This can have unexpected // effects on the decoded pixels, while still being JPEG-compliant and // allowing reconstruction of the original JPEG. bool force_cfl_jpeg_recompression = true;
// Use brotli compression for any boxes derived from a JPEG frame. bool jpeg_compress_boxes = true;
// Preserve this metadata when doing JPEG recompression. bool jpeg_keep_exif = true; bool jpeg_keep_xmp = true; bool jpeg_keep_jumbf = true;
// Set the noise to what it would approximately be if shooting at the nominal // exposure for a given ISO setting on a 35mm camera. float photon_noise_iso = 0;
// TODO(eustas): use Override? int responsive = -1; int colorspace = -1; int move_to_front_from_channel = -1;
// Use Global channel palette if #colors < this percentage of range float channel_colors_pre_transform_percent = 95.f; // Use Local channel palette if #colors < this percentage of range float channel_colors_percent = 80.f; int palette_colors = 1 << 10; // up to 10-bit palette is probably worthwhile bool lossy_palette = false;
// Returns whether these params are lossless as defined by SetLossless(); bool IsLossless() const { return modular_mode && ModularPartIsLossless(); }
bool ModularPartIsLossless() const { if (modular_mode) { // YCbCr is also considered lossless here since it's intended for // source material that is already YCbCr (we don't do the fwd transform) if (butteraugli_distance != 0 ||
color_transform == jxl::ColorTransform::kXYB) returnfalse;
} for (float f : ec_distance) { if (f > 0) returnfalse; if (f < 0 && butteraugli_distance != 0) returnfalse;
} // all modular channels are encoded at distance 0 returntrue;
}
// Sets the parameters required to make the codec lossless. void SetLossless() {
modular_mode = true;
butteraugli_distance = 0.0f; for (float& f : ec_distance) f = 0.0f;
color_transform = jxl::ColorTransform::kNone;
}
// Down/upsample the image before encoding / after decoding by this factor. // The resampling value can also be set to <= 0 to automatically choose based // on distance, however EncodeFrame doesn't support this, so it is // required to call PostInit() to set a valid positive resampling // value and altered butteraugli score if this is used. int resampling = -1; int ec_resampling = -1; // Skip the downsampling before encoding if this is true. bool already_downsampled = false; // Butteraugli target distance on the original full size image, this can be // different from butteraugli_distance if resampling was used. float original_butteraugli_distance = -1.0f;
float quant_ac_rescale = 1.0;
// Codestream level to conform to. // -1: don't care int level = -1;
// See JXL_ENC_FRAME_SETTING_BUFFERING option value. int buffering = -1; // See JXL_ENC_FRAME_SETTING_USE_FULL_IMAGE_HEURISTICS option value. bool use_full_image_heuristics = true;
// If not empty, this tree will be used for dc global section. // Used in jxl_from_tree tool.
Tree custom_fixed_tree; // If not empty, these custom splines will be used instead of the computed // ones. Used in jxl_from_tee tool.
Splines custom_splines; // If not null, overrides progressive mode settings. Used in decode_test. const ProgressiveMode* custom_progressive_mode = nullptr;
// Tile size for encoder-side processing. Must be equal to color tile dim in the // current implementation. static constexpr size_t kEncTileDim = 64; static constexpr size_t kEncTileDimInBlocks = kEncTileDim / kBlockDim;
} // namespace jxl
#endif// LIB_JXL_ENC_PARAMS_H_
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 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.