- From: Chris Wendt <chris-w3c@chriswendt.net>
- Date: Wed, 19 Feb 2014 17:36:53 -0500
- To: Peter Thatcher <pthatcher@google.com>
- Cc: "public-orca@w3.org" <public-orca@w3.org>
- Message-Id: <5FA881A8-B8C0-4293-98C8-42D57145C4FE@chriswendt.net>
Hi Peter, I’m thinking about a slightly different view of the parameters. Traditionally, video encoders usually deal with a 2-dimentional trade off between picture quality and higher temporal framerate; lower framerate with better intra picture quality vs. higher framerate and better motion with reduced overall picture quality. Including resolution in the mix adds a 3rd dimension, making parameterizing the priority of one over the other less straight forward. What about the approach where we consider first resolution/scale and picture quality as an isolated parametric tradeoff or bias, because they relate to overall visual quality of frames. Then having a second bias for overall picture quality vs. temporal framerate. So perhaps something like this: double priority; // remains bit allocation for overall stream double scale; // max scale allowed? (sort of a separate related question of whether this is a max scale or whether you can increase the resolution above the set scale) double maxBitrate; // max bitrate double maxFramerate; // max framerate double pictureQualityBias; // 0.0 to 1.0 for bias toward hitting max resolution vs. max picture quality at lower resolution per frame double temporalBias; // 0.0 to 1.0 to favor hitting max framerate -Chris > > // New Fields > // The higher the value, the more the bits will be given to each > // as available bandwidth goes up. Default is 1.0. > double priority; > > // Do this scale of the input resolution, or die trying. > // 1.0 = full resolution. Default is unconstrained. > double scale; > > // Ramp up resolution/quality/framerate until this bitrate. > // Summed when using dependent layers. > double maxBitrate; > > // Ramp up resolution/quality/framerate until this quality. > double maxQuality; > > // Never send less than this quality. > double minQuality; > > // What to give more bits to, if available. > // Perhaps make it an enum. > DOMString bias; // "resolution" or "framerate" > > // If false, don't send any media right now. > // Disable is different than omitting the encoding; it can keep > // resources available to re-enable more quickly than re-adding. > // Plus, it still sends RTCP. > // Default is active. > bool active;
Received on Wednesday, 19 February 2014 22:37:23 UTC