- From: Peter Thatcher <pthatcher@google.com>
- Date: Wed, 19 Feb 2014 14:51:54 -0800
- To: Chris Wendt <chris-w3c@chriswendt.net>
- Cc: Martin Thomson <martin.thomson@gmail.com>, "public-orca@w3.org" <public-orca@w3.org>
- Message-ID: <CAJrXDUH8gZ0e2LWUhJGwD6rHKKbAqTR5tAWceEOrHMp+HXUwAw@mail.gmail.com>
My question is: under what circumstances does the app care about high resolution, low PSNR vs. low resolution, high PSNR? And the end of the day, does the user see a difference big enough that the app would care to tweak this knob? On Wed, Feb 19, 2014 at 2:45 PM, Chris Wendt <chris-w3c@chriswendt.net>wrote: > I guess i’m a little confused at your specific definition of resolution > vs. quality. > > resolution, to me means pixel dimensions. Quality means PSNR type of > metric. > > On Feb 19, 2014, at 5:38 PM, Peter Thatcher <pthatcher@google.com> wrote: > > So, something like: > > { > frameratePriorty: 0.5, > resolutionPriority: 0.1, > qualityPriority: 1.0 > } > > Meaning "I want really high quality, with good framerate, and I don't care > about resolution." > > I actually had just that in an earlier design, but the complexity didn't > seem worth it. But it's certainly worth discussing. > > > On Wed, Feb 19, 2014 at 2:16 PM, Martin Thomson <martin.thomson@gmail.com>wrote: > >> On 19 February 2014 13:33, Peter Thatcher <pthatcher@google.com> wrote: >> > So, if I may start a TODO list here, I would include: >> > 1. Debate "framerate: 30" vs "bias: framerate" >> > 2. Figure out what "quality" means numerically. >> >> Sounds like a good place to start. >> >> I really only threw the example down as a way to highlight something >> closer to what Chris suggested, which I think was closer to what I >> think is reasonable. I intentionally stole as much as possible from >> your stuff, because I think that it's on the right track. >> >> Maybe there's a simple way to deal with this: >> 1. Priority determines bandwidth allocation (and might have secondary >> effects on things like DSCP, but let's pretend that's not going to >> happen; I'm not going to have to try very hard on that count). >> 2. Everything else is input to the browser in making the >> spatial/temporal/quality tradeoff. >> >> On the latter, here's a strawman: >> >> All "preference" values are between 0 and 1. 0 = don't give me media, >> 1 = please try to retain what the MediaStreamTrack is providing you >> exactly, and anything in between is degrees of the same. Unless we >> are doing raw video, we will never make it to 1 on the quality axis, >> but we might make it on the other axes, but otherwise these can be >> treated fairly similarly at the abstract level. >> >> That forms a three dimensional space. For any given bandwidth, there >> is a surface in that three-dimensional space with [0, 0, 0] on the >> opposite side to [1,1,1]. If the surface passes through [1,1,1], or >> passes the other side of it from the origin, that means it is possible >> to losslessly transmit the video (and we are probably searching for >> work). >> >> Otherwise, there are three modes based on what is provided by the >> application: If an application provides three values, the browser's >> challenge is to find point on that space that minimizes the distance >> to the application-provided point. If the application provides two >> values, the browser either finds the point of minimum distance to the >> implied line, or the point of intersection between the surface and the >> line. If there is only a single value provided, then it is the point >> on the intersection between the surface and the implied plane that is >> closest to [1,1,1]. >> >> Given a definition of each of these axes, I would expect that browsers >> would be able to implement something that approximates consistent, >> subject of course to variations in bandwidth availability testing and >> other constraints. >> >> This also generalizes to more dimensions, but I'd caution against that. >> > > >
Received on Wednesday, 19 February 2014 22:53:03 UTC