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}MbCountfields 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