/** * @public * Weights driving the transport-stream error aggregation inside the * composite MQA-VIDEO score. All values are non-negative per-event * penalty weights. */ export interface MqaTsErrorWeights { /** Penalty weight for sync-loss / sync-byte errors. */ syncLoss: number; /** Penalty weight for transport-error indicator bits. */ transportErrors: number; /** Penalty weight for TS-packet CRC errors. */ crcErrors: number; /** Penalty weight for continuity-counter errors (duplicate + out-of-order). */ ccErrors: number; /** Penalty weight for PCR-related errors. */ pcrErrors: number; /** Penalty weight for PTS errors. */ ptsErrors: number; /** Penalty weight for PAT/PMT/PID/CAT/unreferenced-pid errors. */ otherErrors: number; } /** * @public * Weights controlling the MQA-VIDEO composite score aggregation. * The score starts at 100 and subtracts a penalty per metric, clamped * to [0..100]. See the PureScript QualityMetrics module for the exact * math. */ export interface MqaVideoWeights { /** Multiplier on PSNR shortfall (0..60 normalised to 0..100). */ psnrWeight: number; /** Multiplier on SSIM shortfall (0..1 normalised to 0..100). */ ssimWeight: number; /** Multiplier on NR-IQA shortfall (0..100). */ nrIqaWeight: number; /** Flat penalty applied when a black frame is detected. */ blackPenalty: number; /** Flat penalty applied when a frozen frame is detected. */ freezePenalty: number; /** Scale factor applied to aggregated TS-error units. */ tsErrorsSensitivity: number; /** Upper bound on the TS-errors penalty contribution. */ tsErrorsMaxPenalty: number; } /** * @public * Weights controlling the MQA-AUDIO composite score aggregation (SVTA * registry 24). Same start-at-100-subtract-penalties model as MQA-VIDEO; * see the PureScript QualityMetrics module for the exact math. */ export interface MqaAudioWeights { /** Flat penalty while silent (silence can be legitimate content). */ silencePenalty: number; /** Multiplier on clip_ratio × 100 (clipping never is). */ clipWeight: number; /** Flat penalty while a channel is dead. */ deadChannelPenalty: number; /** Integrated-loudness target, e.g. -23 (EBU R128) or -24 (ATSC A/85). */ loudnessTargetLufs: number; /** No penalty within target ± tolerance (LU). */ loudnessToleranceLu: number; /** Penalty per LU beyond the tolerance band. */ loudnessWeight: number; /** True-peak ceiling (dBTP); at or below is free. */ truePeakMaxDbtp: number; /** Flat penalty when true peak exceeds the ceiling. */ truePeakPenalty: number; /** Hum energy at/below this is noise floor, ignored. */ humEnergyThreshold: number; /** Multiplier on (hum_energy − threshold) × 100. */ humWeight: number; /** peak_ratio at/below this is normal content. */ toneRatioThreshold: number; /** Multiplier on (peak_ratio − threshold) × 100. */ toneWeight: number; } /** * @public * Tunable aggregation weights for the MQA quality-metrics pipeline. * All sub-objects are optional — the server falls back to the * defaults defined in Avp.Types.QualityMetrics for any missing piece. */ export interface MqaConfig { /** TS-error aggregation weights. */ tsErrorWeights?: MqaTsErrorWeights; /** Composite MQA-VIDEO weights. */ mqaVideoWeights?: MqaVideoWeights; /** Composite MQA-AUDIO weights. */ mqaAudioWeights?: MqaAudioWeights; } //# sourceMappingURL=mqa.d.ts.map