Skip to main content

Crate oximedia_optimize

Crate oximedia_optimize 

Source
Expand description

Codec optimization and tuning suite for OxiMedia.

oximedia-optimize provides advanced optimization techniques for video encoders:

  • Rate-Distortion Optimization (RDO) - Advanced mode decision based on rate-distortion curves
  • Psychovisual Optimization - Perceptual quality tuning using visual masking models
  • Motion Search Tuning - Advanced algorithms (TZSearch, EPZS, UMH) for motion estimation
  • Intra Prediction Optimization - RDO-based mode selection for intra frames
  • Transform Optimization - Adaptive transform selection (DCT/ADST) and quantization
  • Loop Filter Tuning - Deblocking and Sample Adaptive Offset (SAO) optimization
  • Partition Selection - Complexity-based block size selection
  • Reference Frame Management - Optimal reference frame selection and DPB management
  • Adaptive Quantization - Variance and psychovisual-based AQ modes
  • Entropy Coding Optimization - Context modeling for CABAC/CAVLC
  • ROI Encoding - Region-of-interest based quality allocation via roi_encode
  • Temporal AQ - Frame-level QP adaptation based on temporal complexity via temporal_aq
  • VMAF Prediction - Lightweight VMAF score estimation from pixel features via vmaf_predict
  • Content-Adaptive GOP - GOP structure selection based on content type via gop_optimizer
  • Scene-Aware QP - Lookahead-based scene-cut-aware QP adjustment via scene_encode

§Architecture

The optimization suite is organized into several modules:

  • rdo - Rate-distortion optimization engine and cost functions
  • psycho - Psychovisual optimization and masking models
  • motion - Advanced motion search algorithms
  • intra - Intra mode selection and directional prediction
  • transform - Transform type selection and quantization
  • filter - Loop filter strength tuning
  • partition - Partition decision trees
  • reference - Reference frame management
  • aq - Adaptive quantization strategies
  • entropy - Entropy coding context optimization
  • roi_encode - Region of interest encoding with per-CTU QP maps
  • temporal_aq - Temporal adaptive quantization with AQ bridge
  • vmaf_predict - VMAF score prediction from spatial/temporal features
  • gop_optimizer - Content-adaptive GOP structure selection
  • scene_encode - Lookahead-based scene-aware QP adjustment

§Optimization Levels

Different preset levels balance encoding speed vs. quality:

  • Fast: Simple SAD-based decisions, limited search patterns
  • Medium: SATD-based with moderate RDO
  • Slow: Full RDO with extended search patterns
  • Placebo: Exhaustive search for maximum quality

§Example

use oximedia_optimize::{OptimizerConfig, OptimizationLevel, Optimizer};

let config = OptimizerConfig {
    level: OptimizationLevel::Slow,
    enable_psychovisual: true,
    enable_aq: true,
    lookahead_frames: 40,
    ..Default::default()
};

let optimizer = Optimizer::new(config)?;
let decision = optimizer.optimize_block(&frame_data, block_info)?;

Re-exports§

pub use aq::AqEngine;
pub use aq::AqMode;
pub use aq::AqResult;
pub use benchmark::BenchmarkConfig;
pub use benchmark::BenchmarkResult;
pub use benchmark::BenchmarkRunner;
pub use benchmark::Profiler;
pub use decision::DecisionContext;
pub use decision::DecisionStrategy;
pub use decision::ModeDecision;
pub use decision::ReferenceDecision;
pub use decision::SplitDecision;
pub use entropy::ContextModel;
pub use entropy::ContextOptimizer;
pub use entropy::EntropyStats;
pub use filter::DeblockOptimizer;
pub use filter::FilterDecision;
pub use filter::SaoOptimizer;
pub use gop_optimizer::ContentAdaptiveGop;
pub use gop_optimizer::ContentGopDecision;
pub use gop_optimizer::GopOptimizer;
pub use gop_optimizer::GopPattern;
pub use gop_optimizer::GopPlan;
pub use intra::AngleOptimizer;
pub use intra::IntraModeDecision;
pub use intra::ModeOptimizer;
pub use lookahead::GopStructure;
pub use lookahead::LookaheadAnalyzer;
pub use lookahead::LookaheadFrame;
pub use motion::BidirectionalOptimizer;
pub use motion::MotionOptimizer;
pub use motion::MotionSearchResult;
pub use motion::MotionVector;
pub use motion::MvPredictor;
pub use motion::SubpelOptimizer;
pub use partition::ComplexityAnalyzer;
pub use partition::PartitionDecision;
pub use partition::SplitOptimizer;
pub use presets::OptimizationPresets;
pub use presets::TunePresets;
pub use psycho::ContrastSensitivity;
pub use psycho::PsychoAnalyzer;
pub use psycho::VisualMasking;
pub use rdo::CostEstimate;
pub use rdo::LambdaCalculator;
pub use rdo::RdoEngine;
pub use rdo::RdoResult;
pub use rdo::RdoqOptimizer;
pub use reference::DpbOptimizer;
pub use reference::ReferenceSelection;
pub use roi_encode::QpDeltaMap;
pub use roi_encode::RoiEncoder;
pub use roi_encode::RoiEncoderConfig;
pub use roi_encode::RoiOptimizeResult;
pub use roi_encode::RoiRegion;
pub use scene_encode::LookaheadSceneQp;
pub use scene_encode::SceneEncodeParams;
pub use scene_encode::SceneEncoder;
pub use scene_encode::SceneMetrics;
pub use strategies::BitrateAllocator;
pub use strategies::ContentAdaptiveOptimizer;
pub use strategies::OptimizationStrategy;
pub use strategies::StrategySelector;
pub use strategies::TemporalOptimizer;
pub use temporal_aq::CombinedAqResult;
pub use temporal_aq::TemporalActivity;
pub use temporal_aq::TemporalAqBridge;
pub use temporal_aq::TemporalAqEngine;
pub use transform::QuantizationOptimizer;
pub use transform::TransformSelection;
pub use utils::BlockMetrics;
pub use utils::FrameMetrics;
pub use utils::OptimizationStats;
pub use vmaf_predict::BatchVmafPredictor;
pub use vmaf_predict::VmafFeatures;
pub use vmaf_predict::VmafPrediction;
pub use vmaf_predict::VmafPredictor;
pub use vmaf_predict::VmafPredictorConfig;

Modules§

adaptive_ladder
Adaptive bitrate ladder optimization for streaming workflows.
aq
Adaptive quantization module.
benchmark
Benchmark and profiling utilities for optimization.
bitrate_controller
Advanced bitrate control for video encoding.
bitrate_optimizer
Bitrate optimization for video encoding in OxiMedia.
cache_opt
Cache optimization strategies for encoder working sets.
cache_optimizer
CDN and edge-cache optimization for media asset delivery.
cache_strategy
Caching optimization strategies for OxiMedia.
complexity_analysis
Content complexity analysis for encoder decisions.
crf_sweep
CRF parameter sweep for quality vs. size tradeoff optimization.
decision
Mode decision strategies and helpers.
encode_preset
Encode preset management for oximedia-optimize.
encode_stats
Encoding statistics collection and analysis for multi-pass optimization.
entropy
Entropy coding optimization module.
examples
Usage examples and common patterns.
filter
Loop filter optimization module.
frame_budget
Frame-level bit budget allocation and tracking.
gop_optimizer
GOP structure optimization and analysis.
intra
Intra prediction optimization module.
lookahead
Lookahead analysis for temporal optimization.
media_optimize
High-level media optimization: profiles, complexity analysis, and adaptive bitrate allocation.
motion
Motion estimation optimization module.
parallel_strategy
Parallel processing optimization strategies for OxiMedia.
partition
Partition optimization module.
perceptual_optimization
Perceptual encoding optimization.
prefetch
Content prefetching optimization for media delivery pipelines.
presets
Optimization presets for different use cases.
psycho
Psychovisual optimization module.
quality_ladder
Quality ladder generation for adaptive bitrate streaming.
quality_metric
Quality metric tracking for oximedia-optimize.
quantizer_curve
QP-to-quality curve modeling and analysis.
rdo
Rate-distortion optimization module.
reference
Reference frame management module.
roi_encode
Region of Interest (ROI) encoding optimization.
scene_encode
Scene-aware encoding optimization.
simd_metrics
SIMD-accelerated block difference metrics (SAD, SATD). SIMD-accelerated block difference metrics for motion estimation.
strategies
Advanced optimization strategies.
temporal_aq
Temporal adaptive quantization for video encoding.
transcode_optimizer
Transcode optimization helpers for oximedia-optimize.
transform
Transform optimization module.
two_pass
Two-pass encoding optimization.
utils
Utility functions and helpers for optimization.
vmaf_predict
VMAF score prediction and estimation for encoding optimization.

Structs§

Optimizer
Main optimization engine.
OptimizerConfig
Main optimizer configuration.

Enums§

ContentType
Content type hints for adaptive optimization.
OptimizationLevel
Optimization level presets.