RTCInboundRtpStreamStats: qpSum-Eigenschaft
Die qpSum
Eigenschaft des
RTCInboundRtpStreamStats
-Wörterbuchs ist ein Wert, der durch Addition der
Quantisierungsparameter (QP) Werte für jedes bisher gesendete oder empfangene Frame auf dem Videotrack, der diesem
RTCInboundRtpStreamStats
-Objekt entspricht, generiert wird.
Im Allgemeinen gilt: Je höher dieser Wert ist, desto stärker komprimiert sind die Videodaten.
Wert
Ein unsignierter 64-Bit-Integer-Wert, der die Summe der Quantisierungsparameter
(QP) Werte für jedes bisher auf dem durch das
RTCInboundRtpStreamStats
-Objekt beschriebenen Track gesendete oder empfangene Frame angibt. Da der QP-Wert in der Regel größer ist, um höhere Komprimierungsfaktoren anzuzeigen, ist diese Summe umso größer, je stärker der Stream im Allgemeinen komprimiert wurde.
Hinweis: Dieser Wert ist nur für Videomedien verfügbar.
Nutzungshinweise
Quantisierung ist der Prozess der Anwendung verlustbehafteter Komprimierung auf einen Wertebereich, was zu einem einzigen Quantwert führt. Dieser Wert ersetzt den Wertebereich, wodurch die Anzahl der verschiedenen Werte, die im gesamten Datensatz erscheinen, reduziert wird, was die Daten besser komprimierbar macht. Der Quantisierungsprozess und das Ausmaß der Komprimierung können durch einen oder mehrere Parameter gesteuert werden.
Es ist wichtig zu beachten, dass sich der QP-Wert regelmäßig ändern kann—sogar bei jedem
Frame—, sodass es schwierig ist, mit Sicherheit zu wissen, wie erheblich die Komprimierung ist. Das Beste, was man tun kann, ist eine Schätzung. Sie können beispielsweise den Wert von
RTCReceivedRtpStreamStats.framesDecoded
verwenden, wenn Sie die Medien empfangen, oder
RTCSentRtpStreamStats.framesEncoded
, wenn Sie sie senden, um die Anzahl der
bisher verarbeiteten Frames zu erhalten und daraus einen Durchschnitt zu berechnen. Siehe Berechnung der durchschnittlichen Quantisierung unten für eine Funktion, die dies tut.
Auch die genaue Bedeutung des QP-Wertes hängt von dem verwendeten Codec ab. Beim VP8-Codec kann der QP-Wert beispielsweise zwischen 1 und 127 liegen und wird im Frame-Header-Element "y_ac_qi"
angegeben, dessen Wert in
RFC 6386, Abschnitt 19.2 definiert ist. H.264 verwendet einen QP, der von 0 bis 51 reicht; in diesem Fall handelt es sich um einen Index, der verwendet wird, um eine Skalierungsmatrix abzuleiten, die während des Quantisierungsprozesses verwendet wird.
Zusätzlich ist es unwahrscheinlich, dass QP der einzige Parameter ist, den der Codec zur Anpassung der
Komprimierung verwendet. Einzelheiten finden Sie in den jeweiligen Codec-Spezifikationen.
Beispiele
Berechnung der durchschnittlichen Quantisierung
Die Funktion calculateAverageQP()
, die unten gezeigt wird, berechnet den durchschnittlichen QP für
das gegebene RTCStatsReport
-Objekt, das RTP-Stream-Statistiken enthält, und gibt 0 zurück, wenn das Objekt keinen RTP-Stream beschreibt.
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-rtcinboundrtpstreamstats-qpsum |
Browser-Kompatibilität
BCD tables only load in the browser