Vp8FrameStats class

Per-frame encoder telemetry surfaced on EncodedVp8Frame.stats. Useful for VC operations (bitrate dashboards, ABR drivers, etc.) and for unit tests that need to assert on encoder decisions.

Constructors

Vp8FrameStats({required int frameIndex, required bool isKeyframe, required int qi, required int filterLevel, required int totalMbCount, required int intraMbCount, required int zeroMvMbCount, required int nearestMvMbCount, required int nearMvMbCount, required int newMvMbCount, required int newMvLastMbCount, required int newMvGoldenMbCount, required int newMvAltrefMbCount, required int goldenRefMbCount, required int altrefRefMbCount, required int denoisedMbCount, required int staticShortCircuitMbCount, required int bytesEmitted, required double meanAbsMvQuarterPel, required int maxAbsMvQuarterPel, required int encodeDurationMicros, required double psnrY})

Properties

altrefRefMbCount → int
MBs whose final pick references the ALTREF reconstruction (via Vp8Encoder.tryAltrefZeroMv). ALTREF is a long-term recovery anchor distinct from GOLDEN.
final
bytesEmitted → int
Size of the encoded frame in bytes (== EncodedVp8Frame.bytes.length). Exposed in stats so dashboards / loggers can consume one struct rather than touching the byte buffer.
final
denoisedMbCount → int
MBs blended toward the previous reconstruction by the temporal denoiser this frame. 0 on keyframes (no reference yet).
final
encodeDurationMicros → int
Wall-clock time spent inside Vp8Encoder.encodeFrame producing this frame, measured by a monotonic Stopwatch in microseconds. Includes motion search, entropy coding, in-loop filter -- everything between the input planes and the returned bitstream. 0 for dropped frames (which never reach this point).
final
filterLevel → int
In-loop deblocking filter level emitted in the frame header.
final
frameIndex → int
0-based sequence number of this frame within the encoder's lifetime (since construction or last Vp8Encoder.reset). Dropped frames do NOT advance this counter, so consecutive emitted frames are always contiguous (prev.frameIndex + 1).
final
goldenRefMbCount → int
MBs whose final pick references the GOLDEN reconstruction (via Vp8Encoder.tryGoldenZeroMv / tryGoldenNewMv).
final
hashCode → int
The hash code for this object.
no setterinherited
interMbCount → int
MBs coded as inter (= totalMbCount - intraMbCount). Always 0 on keyframes.
no setter
intraMbCount → int
MBs coded as intra (DC_PRED). On keyframes this equals totalMbCount; on inter frames it counts the cyclic-intra-refresh MBs forced by Vp8Encoder.cyclicRefreshPercent.
final
isKeyframe → bool
True iff this frame was encoded as a keyframe (mirrors EncodedVp8Frame.isKey; convenient when only the stats object is retained, e.g. by a metrics sink).
final
maxAbsMvQuarterPel → int
Maximum of max(|mv.row|, |mv.col|) across non-intra MBs this frame, in 1/4-pel units. 0 when every MB is intra or on keyframes.
final
meanAbsMvQuarterPel → double
Mean of max(|mv.row|, |mv.col|) across non-intra MBs this frame, in 1/4-pel units (the native VP8 MV resolution). 0 when every MB is intra or on keyframes. Useful as a cheap proxy for motion intensity in ABR / activity dashboards.
final
nearestMvMbCount → int
final
nearMvMbCount → int
final
newMvAltrefMbCount → int
Subset of newMvMbCount whose final ref is ALTREF.
final
newMvGoldenMbCount → int
Subset of newMvMbCount whose final ref is GOLDEN.
final
newMvLastMbCount → int
Subset of newMvMbCount whose final ref is LAST. The three newMv{Last,Golden,Altref}MbCount fields sum to newMvMbCount.
final
newMvMbCount → int
final
psnrY → double
Peak signal-to-noise ratio of the reconstructed Y plane vs the source Y plane, in dB. Capped at 99.0 for an exact match (avoiding the infinity from MSE==0). A pure-Dart cheap proxy for visual quality; useful in ABR drivers and regression dashboards. U/V are not measured.
final
qi → int
Final quantizer index actually used to encode this frame.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
staticShortCircuitMbCount → int
MBs whose per-MB decision was short-circuited to LAST-ZEROMV by Vp8Encoder.staticMbSadThreshold (saving motion search + GOLDEN evaluation work). 0 on keyframes.
final
totalMbCount → int
Total number of MBs in the frame ((width>>4) * (height>>4)).
final
zeroMvMbCount → int
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toMap() → Map<String, num>
JSON-friendly snapshot of every field. 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