Vp8CumulativeStats class
Lifetime-cumulative encoder telemetry. Updated after every
non-dropped frame (with droppedFrames bumped on drops). Cleared
by Vp8Encoder.reset. Read-only from outside the encoder.
Constructors
- Vp8CumulativeStats({int rollingWindowFrames = 0})
Properties
- altrefRefMbs → int
-
no setter
- altrefRefMbsPercent → double
-
altrefRefMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- bytesEmitted → int
-
no setter
- denoisedMbs → int
-
Lifetime total of Vp8FrameStats.denoisedMbCount across all
encoded frames (MBs whose source was replaced by the spatio-temporal
denoiser before being fed to the encoder).
no setter
- denoisedMbsPercent → double
-
denoisedMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- droppedFrames → int
-
no setter
- dropRatePercent → double
-
Fraction of all attempted frames that were dropped by the rate
controller, expressed as a percent (0.0 .. 100.0). The denominator
is
framesEncoded + droppedFrames. 0.0 when no frames have been attempted yet.no setter - framesEncoded → int
-
Number of non-dropped frames encoded since construction / last
reset.
no setter
- goldenRefMbs → int
-
no setter
- goldenRefMbsPercent → double
-
goldenRefMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- interframeBytes → int
-
Sum of Vp8FrameStats.bytesEmitted across all non-keyframe
frames (= bytesEmitted - keyframeBytes).
no setter
- interframeBytesPercent → double
-
interframeBytes as a percentage of bytesEmitted (0.0 .. 100.0).
0.0 when no bytes have been emitted yet.
no setter
- interframes → int
-
Lifetime count of non-dropped non-keyframe frames
(= framesEncoded - keyframes).
no setter
- interMbs → int
-
Lifetime count of inter-coded MBs (= totalMbs - intraMbs).
no setter
- interMbsPercent → double
-
interMbs as a percentage of totalMbs (0.0 .. 100.0). Always
equals
100.0 - intraMbsPercentonce any frame has been encoded.no setter - intraMbs → int
-
no setter
- intraMbsPercent → double
-
intraMbs as a percentage of totalMbs (0.0 .. 100.0).
0.0 when no frames have been encoded.
no setter
- keyframeBytes → int
-
Sum of Vp8FrameStats.bytesEmitted across all keyframes.
no setter
- keyframeBytesPercent → double
-
keyframeBytes as a percentage of bytesEmitted (0.0 .. 100.0).
0.0 when no bytes have been emitted yet.
no setter
- keyframeRatePercent → double
-
Keyframes as a percentage of all non-dropped encoded frames
(0.0 .. 100.0). 0.0 when no frames have been encoded.
no setter
- keyframes → int
-
no setter
- lifetimeMaxAbsMvQuarterPel → int
-
Largest Vp8FrameStats.maxAbsMvQuarterPel seen since the last
reset, or 0 with no frames yet. Quarter-pel units.
no setter
- maxEncodeMicros → int
-
Largest single-frame encode time in microseconds seen since the
last reset, or 0 with no frames yet.
no setter
- maxFrameBytes → int
-
Largest single-frame encoded size in bytes seen since the last
reset, or 0 with no frames yet.
no setter
- maxFrameFilterLevel → int
-
Largest Vp8FrameStats.filterLevel seen since the last reset, or
0 with no frames yet.
no setter
- maxFrameQi → int
-
Largest Vp8FrameStats.qi seen since the last reset, or 0 with
no frames yet.
no setter
- maxPsnrY → double
-
Largest Vp8FrameStats.psnrY seen since the last reset, or
0.0 with no frames yet.
no setter
- meanEncodeMicros → double
-
Mean per-frame encode time in microseconds, or 0.0 when no
frames have been encoded yet.
no setter
- meanFrameBytes → double
-
Mean encoded bytes per non-dropped frame, or 0.0 when no
frames have been encoded yet.
no setter
- meanFrameFilterLevel → double
-
Arithmetic mean of Vp8FrameStats.filterLevel across all encoded
frames (0.0 when no frames have been encoded yet).
no setter
- meanFrameMeanAbsMvQuarterPel → double
-
Arithmetic mean of Vp8FrameStats.meanAbsMvQuarterPel across all
encoded frames (0.0 with no frames yet). Quarter-pel units.
no setter
- meanFrameQi → double
-
Arithmetic mean of Vp8FrameStats.qi across all encoded frames
(0.0 when no frames have been encoded yet). Reflects the
per-frame QI actually used (after clamps / rate controller).
no setter
- meanInterframeBytes → double
-
Mean interframe byte size (0.0 if no interframes have been emitted).
no setter
- meanKeyframeBytes → double
-
Mean keyframe byte size (0.0 if no keyframes have been emitted).
no setter
- meanPsnrY → double
-
Arithmetic mean of Vp8FrameStats.psnrY across all encoded
frames, or 0.0 when no frames have been encoded yet. Capped
values (99.0 for an exact match) are included verbatim.
no setter
- minFrameBytes → int
-
Smallest single-frame encoded size in bytes seen since the last
reset, or 0 with no frames yet.
no setter
- minFrameFilterLevel → int
-
Smallest Vp8FrameStats.filterLevel seen since the last reset, or
0 with no frames yet.
no setter
- minFrameQi → int
-
Smallest Vp8FrameStats.qi seen since the last reset, or 0 with
no frames yet.
no setter
- minPsnrY → double
-
Smallest Vp8FrameStats.psnrY seen since the last reset, or
0.0 with no frames yet.
no setter
- nearestMvMbs → int
-
no setter
- nearestMvMbsPercent → double
-
nearestMvMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- nearMvMbs → int
-
no setter
- nearMvMbsPercent → double
-
nearMvMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- newMvAltrefMbs → int
-
no setter
- newMvAltrefMbsPercent → double
-
newMvAltrefMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- newMvGoldenMbs → int
-
no setter
- newMvGoldenMbsPercent → double
-
newMvGoldenMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- newMvLastMbs → int
-
Lifetime totals of Vp8FrameStats.newMvLastMbCount /
newMvGoldenMbCount/newMvAltrefMbCountacross all encoded frames. Their sum equals the lifetime NEWMV-MB total.no setter - newMvLastMbsPercent → double
-
newMvLastMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- rollingEncodeFps → double
-
Throughput (frames/sec) computed over the rolling window:
rollingWindowFill * 1e6 / sum(encodeMicros over the window). 0.0 when rolling stats are disabled, the window is empty, or every recorded micros value in the window is zero.no setter - rollingMeanEncodeMicros → double
-
Mean of Vp8FrameStats.encodeDurationMicros across the most
recent up to rollingWindowFrames non-dropped frames. 0.0 when
rolling stats are disabled or no frames have been encoded yet.
no setter
- rollingMeanFrameBytes → double
-
Mean of Vp8FrameStats.bytesEmitted across the most recent
up to rollingWindowFrames non-dropped frames. 0.0 when rolling
stats are disabled or no frames have been encoded yet.
no setter
- rollingMeanPsnrY → double
-
Mean of Vp8FrameStats.psnrY across the most recent up to
rollingWindowFrames non-dropped frames. 0.0 when rolling stats
are disabled or no frames have been encoded yet.
no setter
- rollingWindowFill → int
-
Number of frames currently held in the rolling-stats ring buffer
(
min(framesEncoded, rollingWindowFrames)). 0 when rolling stats are disabled (rollingWindowFrames == 0).no setter - rollingWindowFrames → int
-
Size of the rolling-stats ring buffer (0 = rolling stats
disabled; all
rolling*getters return 0.0). Configured via Vp8Encoder.rollingWindowFrames.final - runningEncodeFps → double
-
Effective long-running encoder throughput in frames per second
(=
framesEncoded * 1e6 / totalEncodeMicros). 0.0 when no frames have been encoded or every recorded frame ran in zero microseconds (Stopwatch granularity floor).no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- staticShortCircuitMbs → int
-
no setter
- staticShortCircuitMbsPercent → double
-
staticShortCircuitMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
- totalEncodeMicros → int
-
Cumulative wall-clock microseconds spent encoding (sum of
Vp8FrameStats.encodeDurationMicros). Useful to derive a
long-running average encode FPS =
framesEncoded * 1e6 / totalEncodeMicros.no setter - totalMbs → int
-
Lifetime total of Vp8FrameStats.totalMbCount across all
non-dropped frames. Acts as the denominator for all the
*MbsPercentgetters; equalsframesEncoded * mbsPerFramefor a fixed-resolution stream.no setter - zeroMvMbs → int
-
Lifetime totals of Vp8FrameStats.zeroMvMbCount /
nearestMvMbCount/nearMvMbCountacross all encoded frames.no setter - zeroMvMbsPercent → double
-
zeroMvMbs as a percentage of totalMbs (0.0 .. 100.0).
no setter
Methods
-
estimatedBitrateBps(
{required double framerate}) → double -
Derived estimate of the steady-state output bitrate in bits/sec,
assuming the supplied
framerate(since dropped frames are excluded from bytesEmitted / framesEncoded, pass the source framerate -- not the post-drop output rate). Returns 0.0 when no frames have been encoded yet.frameratemust be > 0. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
percentileEncodeMicros(
double q) → double -
Linear-interpolation percentile (
qin[0, 100]) of Vp8FrameStats.encodeDurationMicros over the most recent rolling window. Returns 0.0 when rolling stats are disabled or the window is empty. -
percentileFrameBytes(
double q) → double -
Linear-interpolation percentile (
qin[0, 100]) of Vp8FrameStats.bytesEmitted over the most recent up to rollingWindowFrames non-dropped frames. Returns 0.0 when rolling stats are disabled or the window is empty. Uses the standard "linear interpolation between closest ranks" definition: rank = q/100 * (n-1). -
percentilePsnrY(
double q) → double -
Linear-interpolation percentile (
qin[0, 100]) of Vp8FrameStats.psnrY over the most recent rolling window. Returns 0.0 when rolling stats are disabled or the window is empty. -
resetStats(
) → void - Zero every counter, byte total, MB tally, distribution bound, and rolling-window sample in this snapshot. Does NOT touch the owning Vp8Encoder's reference buffers or rate controller -- use Vp8Encoder.reset for that. Useful for ABR drivers that want a fresh per-segment telemetry view without forcing a keyframe.
-
rollingEstimatedBitrateBps(
{required double framerate}) → double -
Derived rolling-window bitrate estimate (bits/sec) using the
supplied
framerate, analogous to estimatedBitrateBps but computed only over the most recent rollingWindowFrames non-dropped frames. 0.0 when rolling stats are disabled or the window is empty.frameratemust be > 0. -
toMap(
) → Map< String, num> - JSON-friendly snapshot of every public counter / derived value. Useful for log lines, metrics exporters, and golden tests. All numeric values are plain nums.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited