RTCOutboundRtpStreamStats: qpSum-Eigenschaft

Die qpSum-Eigenschaft des RTCOutboundRtpStreamStats-Wörterbuchs ist ein Wert, der durch Addition der Quantisierungsparameter (QP)-Werte für jedes vom Sender bisher produzierte Frame auf dem Videotrack, der diesem RTCOutboundRtpStreamStats-Objekt entspricht, ermittelt wird.

Im Allgemeinen gilt: Je höher dieser Wert ist, desto stärker komprimiert sind die Videodaten.

Wert

Ein nicht-unterbrochener 64-Bit-Ganzzahlenwert, der die Summe der Quantisierungsparameter (QP)-Werte für jedes bisher auf dem von dem RTCOutboundRtpStreamStats-Objekt beschriebenen Track gesendete Frame angibt. Da der QP-Wert typischerweise größer ist, um höhere Komprimierungsfaktoren anzugeben, gilt: Je größer diese Summe ist, desto stärker war der Stream im Allgemeinen komprimiert.

Hinweis: Dieser Wert ist nur für Videomedien verfügbar.

Verwendungshinweise

Quantisierung ist der Prozess der Anwendung verlustbehafteter Komprimierung auf einen Wertebereich, wodurch ein einzelner Quantisierungswert entsteht. Dieser Wert ersetzt den Wertebereich und reduziert dadurch die Anzahl der verschiedenen Werte, die im gesamten Datensatz vorkommen, sodass die Daten leichter komprimierbar werden. Der Quantisierungsprozess und die Menge der Komprimierung können durch einen oder mehrere Parameter gesteuert werden.

Es ist wichtig zu beachten, dass sich der Wert von QP periodisch ändern kann — sogar bei jedem Frame —, sodass es schwierig ist, genau zu wissen, wie erheblich die Komprimierung ist. Das Beste, was Sie tun können, ist eine Schätzung abzugeben. Sie können den Wert von RTCSentRtpStreamStats.framesEncoded verwenden, um die Anzahl der bisher codierten Frames zu ermitteln und daraus einen Durchschnitt zu berechnen. Siehe Berechnung der durchschnittlichen Quantisierung unten für eine Funktion, die dies tut.

Außerdem hängt die genaue Bedeutung des QP-Werts vom verwendeten Codec ab. Zum Beispiel kann der QP-Wert für den VP8-Codec zwischen 1 und 127 liegen und wird im Frame-Header-Element "y_ac_qi" gefunden, dessen Wert in RFC 6386, Abschnitt 19.2 definiert ist. H.264 verwendet einen QP-Wert, der von 0 bis 51 reicht; in diesem Fall ist es ein Index, der verwendet wird, um eine Skalierungsmatrix abzuleiten, die während des Quantisierungsprozesses verwendet wird. Zusätzlich ist QP wahrscheinlich nicht der einzige Parameter, den der Codec verwendet, um die Komprimierung anzupassen. Siehe die einzelnen Codec-Spezifikationen für Details.

Beispiele

Berechnung der durchschnittlichen Quantisierung

Die unten gezeigte Funktion calculateAverageQP() berechnet den durchschnittlichen QP-Wert für das Objekt, das RTP-Stream-Statistiken enthält, und gibt 0 zurück, wenn das Objekt keinen RTP-Stream beschreibt.

js
function calculateAverageQP(stats) {
  let frameCount = 0;

  switch (stats.type) {
    case "inbound-rtp":
    case "remote-inbound-rtp":
      frameCount = stats.framesDecoded;
      break;
    case "outbound-rtp":
    case "remote-outbound-rtp":
      frameCount = stats.framesEncoded;
      break;
    default:
      return 0;
  }

  return status.qpSum / frameCount;
}

Spezifikationen

Specification
Identifiers for WebRTC's Statistics API
# dom-rtcoutboundrtpstreamstats-qpsum

Browser-Kompatibilität

BCD tables only load in the browser