1. 14 Sep, 2017 1 commit
    • Hui Su's avatar
      VP9 level targeting: add a new AUTO mode · c3a6943c
      Hui Su authored
      In the new AUTO mode, restrict the minimum alt-ref interval and max column
      tiles adaptively based on picture size, while not applying any rate control
      constraints.
      
      This mode aims to produce encodings that fit into levels corresponding to
      the source picture size, with minimum compression quality lost. However, the
      bitstream is not guaranteed to be level compatible, e.g., the average bitrate
      may exceed level limit.
      
      BUG=b/64451920
      
      Change-Id: I02080b169cbbef4ab2e08c0df4697ce894aad83c
      c3a6943c
  2. 05 Jul, 2017 1 commit
    • paulwilkins's avatar
      Respond more rapidly to excessive local overshoot. · 5b44ef0c
      paulwilkins authored
      This patch attempts to address a bug reported for 4K video.
      https://b.corp.google.com/issues/62215394
      
      In this instance a perfect storm of a moderate complexity section
      followed by a much easier section where a CGI overlay helped to
      suppress film grain noise, followed by a much harder and very grainy
      section at the end, cause a massive local rate spike that pushed a chunk
      over the upper allowed rate limit.
      
      This patch detects cases where the rate for a frame is much higher than
      expected and allows, in this special case, for rapid adjustment of the active
      Q range.
      
      For the example chunk in the bug report the target rate was 18Mb/s and the
      observed rate was over 37 Mb/s with a surge for the last few frames to over
      100Mb/s. This patch brings the overall chunk rate right back down to ~18.2 Mbit/s
      and  almost completely eliminates the rate spike at the end. (See graphs appended
      to bug report)
      
      Also see  I108da7ca42f3bc95c5825dd33c9d84583227dac1 which fixes a bug
      unearthed during testing of this patch and also has a bearing on high rate
      encodes such as 4K.
      
      This patch does have a negative impact on some metrics. Most notably there are
      clips in our standard test set where it hurts global psnr (though in many cases it
      conversely helps SSIM, FAST SSIM and PSNR-HVS). It is also worth noting that
      the clips (and data rates) where there is a big metric impact, are almost all cases
      where there is currently a significant overshoot vs the target rate and overall rate
      accuracy is greatly improved.
      
      Change-Id: I692311a709ccdb6003e705103de9d05b59bf840a
      5b44ef0c
  3. 26 Jun, 2017 1 commit
    • hui su's avatar
      level tests: allow level undershoot · d4595de5
      hui su authored
      Obtaining a level that is lower than the target should be tolerated.
      
      Change-Id: I90a55ee6d7142e9f6cc525ebbd1e0501defcbe28
      d4595de5
  4. 11 Jan, 2017 1 commit
  5. 06 Jan, 2017 1 commit
    • hui su's avatar
      Add support for VP9 level targeting · 337ad83e
      hui su authored
      Constraints on encoder config:
      -target_bandwidth is no larger than 80% of level bitrate limit
      -target_bandwidth * (1 + max_over_shoot_pct) is no larger than
      88% of level bitrate limit
      -min_gf_interval is no smaller than level limit
      -tile_columns is no larger than level limit
      
      Constraints on rate control:
      -current frame size plus previous three frames' size is no larger
      than the CPB level limit
      -current frame size is no larger than 50%/40%/20% of the CPB
      level limit if it's a key/alt-ref/other frame.
      
      Change-Id: I84d1a2d6d6e3c82bfd533b3309ce999cfaba2c8b
      337ad83e
  6. 27 Jul, 2016 1 commit
  7. 15 Jun, 2016 1 commit
  8. 16 May, 2016 1 commit