1. 05 Jan, 2018 1 commit
    • paulwilkins's avatar
      Fix bug in use of zoom metric as part of arf breakout. · 0226ce79
      paulwilkins authored
      The in/out (or zoom metrics) in accumulate_frame_motion_stats()
      are in effect a % of the blocks that have a motion vector pointing
      either towards or away from the center. As such they are already
      normalized in terms of image size and the thresholds against which
      these are tested should be image size independent.
      In practice a zoom either in or out is an indicator for a shorter group
      length so the abs value is more important as a breakout clause.
      This patch fixes the threshold test. Clips without noticeable zoom show
      no effect but some  with strong zooms such as "station" show a big
      gain (5-10%). Average psnr-hvs gain on hdres set was 0.292%
      Change-Id: I4f97a72b0e273e4e844ade15285749c32cd81c1c
  2. 21 Dec, 2017 5 commits
    • Scott LaVarnway's avatar
      Add vp9_quantize_fp_nz_c() -- 2 · 8a4336ed
      Scott LaVarnway authored
      This c version uses the shortcuts found in the x86
      vp9_quantize_fp functions.
      The test was updated to use the correct quant/round range.
      Change-Id: Ie5871f710d9eb39047d8d9f48b907c0633e1f830
    • James Zern's avatar
    • Ralph Giles's avatar
      Don't force inlining for msvc targets. · 117893a7
      Ralph Giles authored
      INLINE is defined as __forceinline for vs* configs, but is the
      normal, compiler-discretion inline for gcc/clang configs. This
      makes many functions very large when building for windows targets,
      much larger than they are elsewhere.
      Use '__inline' as a consistent definition to get consistent function
      sizes. Although Visual Studio documentation says that 'inline' is
      only available in C+ code. This is probably incorrect, since Visual
      Studio 2017 accepts C99 'inline' even when passed /TC. Nevertheless,
      this commit uses the recommended '__inline' for consistency.
      Thanks to David Major for the diagnosis.
      Change-Id: Ib0b31a3afcea77822c84fe3c6cd452add66d825a
    • James Zern's avatar
      vp9_quantize_ssse3_x86_64: fix out of bounds write · 84a7263d
      James Zern authored
      eob is a pointer to a uint16_t. previously the code would store 64-bits
      causing a crash or test failure with the right stack layout.
      Change-Id: Ibd653baf323db114f2444951b9d8b00c596bf15a
    • James Zern's avatar
      Revert "Add vp9_quantize_fp_nz_c()" · 7a245adb
      James Zern authored
      This reverts commit 86842855.
      SSSE3/VP9QuantizeTest.EOBCheck/1 fails on Mac and the build breaks under
      visual studio due to a #if within another macro.
      Change-Id: I475095a04aafcc714fade2b24e4df7b682be2cd1
  3. 20 Dec, 2017 3 commits
  4. 19 Dec, 2017 3 commits
    • Scott LaVarnway's avatar
      Add vp9_quantize_fp_nz_c() · 86842855
      Scott LaVarnway authored
      This c version uses the shortcuts found in the x86
      vp9_quantize_fp functions.
      The test was updated to use the correct quant/round range.
      Change-Id: I5d19f8af2fddda8e50910249eafb740acb29415b
    • Marco's avatar
      vp9: Reset buffer level on large bitrate changes. · a2127236
      Marco authored
      For a large change in the target avg_frame_bandwidth,
      via the update in change_config()), reset the buffer_level
      to optimal_level.
      This fix prevents possible frame drops, where for example,
      encoder suddenly goes from lower to higher bitrate.
      Change-Id: I2f844c41d04c01240e85f574e59d2b9075c7eb6d
    • James Zern's avatar
      lpf_test: correct threshold ranges · 5203b40a
      James Zern authored
      the random number generator creates values from [0, range) add 1 to all
      and make hev more realistic by mirroring its calculation of level >> 4,
      i.e., [0, 3]
      Change-Id: Ic19be5d7ba668deb17c96f143b739116a4b5d21c
  5. 15 Dec, 2017 2 commits
  6. 14 Dec, 2017 10 commits
  7. 13 Dec, 2017 4 commits
    • Marco's avatar
      vp9: Update to SVC datarate tests. · c58f0172
      Marco authored
      With recent fixes to rate control for SVC the
      buffer underrun in the tests does not happen,
      so comment and TODO can be removed.
      Also, in some of these SVC tests, replace the HD clip
      with the corresponding VGA clip, which has > 400 frames.
      For the (niklas) HD clip: it has only 60 frames but the
      test was running up to 300 frames. Fixed it to 60 frames.
      Keep some tests with the HD clip, needed for the 4 thread
      and 5 level scaling test.
      Change-Id: I0a2356a908e8b2271c7a422eb8b15c0d56eec968
    • Marco Paniconi's avatar
    • Marco's avatar
      vp9: Cleanup/remove TODO comment. · e9ad5d2a
      Marco authored
      Change-Id: I2bd43e996909ad688b7e00b81ee19a5fc4df460b
    • Marco's avatar
      vp9: Reset rc flags on some configuration changes. · a40fa1f9
      Marco authored
      For large dynamic changes in target avg_frame_bandwidth, or
      a change in resolution, via the update in change_config()),
      reset the under/overshoot flags (rc_1_frame, rc_2_frame)
      to prevent constraining the QP for the first few frames
      following the change.
      For SVC use the spatial stream avg_frame_bandwidth in
      reset condition.
      For the avg_frame_bandwidth condition, use fairly large
      threshold (~50%) for now in reset.
      This allows for better/faster QP response if, for example,
      application dynamically changes bitrate by large amount.
      Change-Id: Ib6e3761732d956949d79c9247e50dba744a535c0
  8. 12 Dec, 2017 2 commits
  9. 11 Dec, 2017 2 commits
  10. 08 Dec, 2017 1 commit
    • paulwilkins's avatar
      Bug fix for second reference stats. · f1ce050f
      paulwilkins authored
      Immediately following a key frame the trailing second reference
      error in the first pass stats will be based on a reference frame from
      the prior key frame group and will thus usually be much larger.
      This fix eliminates that effect (which typically triggers a short arf
      group immediately after a key frame). It also changes the accounting
      for the first frame in each new arf group.
      This change gives large gains on a couple of clips that contain mid
      sequence key frames (e.g. 6% on 1080P tennis). Overall there was
      a net gain in PSNR and PSNR-HVS ~(0.05- 0.4%) and mixed results for
      SSIM (+/- 0.2%).
      Change-Id: I8e00538ac2c0b5c2e7e637903cac329ce5c2a375
  11. 07 Dec, 2017 1 commit
  12. 06 Dec, 2017 6 commits