Re: [webrtc-stats] Add PSNR (Y/U/V) for outbound-rtp (#794)

> Those don't seem like great examples as they're blocked on [exposing hardware is allowed](https://www.w3.org/TR/webrtc-stats/#dfn-exposing-hardware-is-allowed), unless we're suggesting adding that requirement here? What are the other examples?

Other examples... If it's "powerEfficient = false" then it's essentially a SW implementation and the implementation will follow from browser type and version. If "powerEfficient = true" it's going to be a hardware encoder, and then in 99.99% of cases map exactly to the GPU used. The GPU can be found in a number of different ways, e.g. using https://developer.mozilla.org/en-US/docs/Web/API/GPUAdapterInfo

Another way I mentioned was using WebCodecs. Simplest example: take a known (non-zero) input image and encode it using a known bitrate, then take the resulting bitstream data array that came out of the encoder and create hash from it. That will basically give you a per-implementation unique signature.

Even if we try to forcefully add some noise to screw with that identification mechanism, there are other aspects that can be used to detected the implementation - e.g. which selection of coding tools that were used, filter parameter selection, cropping behavior, etc etc. You can of course do this with webrtc as well, capturing the bitstream data with an encoded transform instead, it's just a little more unwieldy. 

Once you know which encoder implementation the user has, a bunch of data can inferred (e.g. feature capabilities, performance characteristics, etc) - but that data doesn't add any more fingerprinting surface compared to just knowing the implementation. Behavior when it comes to PSNR implementation would fall into this category as well.


-- 
GitHub Notification of comment by sprangerik
Please view or discuss this issue at https://github.com/w3c/webrtc-stats/pull/794#issuecomment-2863392345 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 8 May 2025 15:05:00 UTC