Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PSNR (Y/U/V) for outbound-rtp #794

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions webrtc-stats.html
Original file line number Diff line number Diff line change
Expand Up @@ -1966,6 +1966,8 @@ <h3>
unsigned long framesEncoded;
unsigned long keyFramesEncoded;
unsigned long long qpSum;
record&lt;DOMString, double&gt; psnrSum;
unsigned long long psnrMeasurements;
double totalEncodeTime;
double totalPacketSendDelay;
RTCQualityLimitationReason qualityLimitationReason;
Expand Down Expand Up @@ -2218,6 +2220,40 @@ <h2>
formats have ways to vary the quantizer value within the frame.
</p>
</dd>
<dt>
<dfn>psnrSum</dfn> of type <span class="idlMemberType">
record&lt;DOMString, double&gt;</span>
</dt>
<dd>
<p>
MUST NOT [= map/exist =] for audio.
The cumulative sum of the PSNR values of frames encoded by this sender.
The record includes values for the "y", "u" and "v" components.
The count of measurements is in {{psnrMeasurements}}.
</p>
<p>
PSNR is defined in [[ISO-29170-1:2017]].
</p>
<p class="note">
PSNR metrics should primarily be used as a basis for statistical analysis rather
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Avoid "should" in non-normative notes. How about

Suggested change
PSNR metrics should primarily be used as a basis for statistical analysis rather
Authors are expected to use PSNR metrics primarily as a basis for statistical analysis rather

than be used as an absolute truth on a per-frame basis.
</p>
</dd>
<dt>
<dfn>psnrMeasurements</dfn> of type <span class="idlMemberType">unsigned long long
</span>
</dt>
<dd>
<p>
MUST NOT [= map/exist =] for audio.
The number of times PSNR was measured. The components of {{psnrSum}} are
aggregated with this measurement.
</p>
<p>
The PSNR is defined in [[ISO-29170-1:2017]].
The frequency of PSNR measurements is [=implementation-defined=].
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK with me if for any reasonable value of X (I'm not married to any particular value, as long as we have one that lets us WPT test)

Suggested change
The frequency of PSNR measurements is [=implementation-defined=].
The frequency of PSNR measurements is [=implementation-defined=],
but SHOULD be no less than every X seconds.

</p>
</dd>
<dt>
<dfn>totalEncodeTime</dfn> of type <span class=
"idlMemberType">double</span>
Expand Down
5 changes: 5 additions & 0 deletions webrtc-stats.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ var respecConfig = {
status: "Internet Draft",
publisher: "IETF"
},
"ISO-29170-1:2017": {
title: "Information technology — Advanced image coding and evaluation",
href: "https://www.iso.org/standard/63637.html",
publisher: "ISO",
},
},
postProcess: [
function generateStatsHierarchy(config, doc) {
Expand Down