xpra icon
Bug tracker and wiki

Changes between Version 4 and Version 5 of Encodings


Ignore:
Timestamp:
03/15/13 06:42:43 (7 years ago)
Author:
Antoine Martin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Encodings

    v4 v5  
    3939=== Quality Option ===
    4040What this does should be obvious (in x264 speak, this controls the {{{rc.f_rf_constant}}} parameter), but it is more complicated than you think:
    41 * we support 3 different colourspace modes: YUV420, YUV422 and YUV444 and this affects the quality of the picture too. (YUV420 is used for lowest quality settings). {{{YUV444}}} uses roughly twice as much bandwidth as {{{YUB420}}}.
    42 Switching from one mode to another is expensive, as we then need to send a new key frame and re-initialize both the encoder and the decoder - so the thresholds for going up to the next mode are not the same as the thresholds for going down to the next mode (prevents a yoyo effect).
    43 * not all modes are supported by all profiles, so we need to switch to a different profile to support {{{YUV422}}} (use {{{high422}}} or {{{high444}}}) and {{{YUV444}}} ({{{high444}}} only).
     41* we support 3 different colourspace modes: YUV420, YUV422 and YUV444 and this affects the quality of the picture too. (YUV420 is used for lowest quality settings). {{{YUV444}}} uses roughly twice as much bandwidth as {{{YUB420}}}. Switching from one mode to another is expensive, as we then need to send a new key frame and re-initialize both the encoder and the decoder - so the thresholds for going up to the next mode are not the same as the thresholds for going down to the next mode (prevents a yoyo effect).
     42* not all modes are supported by all profiles, so we need to switch to a different profile to support {{{YUV422}}} ({{{high422}}} or {{{high444}}}) and {{{YUV444}}} ({{{high444}}} only).
    4443* some builds against older versions of libav/ffmpeg only support {{{YUV420}}},
    4544 see [/browser/xpra/trunk/src/patches/x264-limited-csc.patch x264-limited-csc.patch]
     
    5352{{{ultrafast}}} is not available because setting the encoder to this setting has side-effects which prevents other settings from behaving as they should if the option is later changed. And in theory, {{{superfast}}} is almost as good.
    5453To test {{{ultrafast}}}, try [/attachment/wiki/Encodings/x264-allow-ultrafast.patch x264-allow-ultrafast.patch]
     54
     55
     56=== Notes ===
     57When comparing performance, make sure that you use the right metrics... The number of updates per second is not always a good one (if there are more small regions, this can be a good or a bad thing), more examples here: [/wiki/Testing#MisleadingStatistics Misleading Statistics]