1. 01 Nov, 2017 1 commit
    • Yaowu Xu's avatar
      Correct token allocation size for tiles · e39b3b8b
      Yaowu Xu authored
      With --enable-ext-partition, it is possible to have superblock size at
      both 64x64 and 128x128. But MAX_SB_SIZE_LOG2 is defined to be 7, i.e.
      128x128 size. In get_token_alloc(), the token count for a tile or a
      frame is always computed based on "tokens/superblock * number of
      superblocks", so it should use the actual superblock size, instead of
      128x128.
      
      The segfault in #988 is a result when every tile is defined at one
      single superblock of 64x64, the token size computation for each tile
      was assuming it is 128x128, resulting 4x overestimate of the token
      count for every tile. This caused the pointer for many tiles to go
      beyond the allocated token arrary, which is correctly allocated at
      frame level.
      
      BUG=aomedia:988
      
      Change-Id: I2da21f181446ad7117ce3269f01a43950c379028
      e39b3b8b
  2. 31 Oct, 2017 1 commit
  3. 30 Oct, 2017 1 commit
  4. 25 Oct, 2017 2 commits
    • Rupert Swarbrick's avatar
      Make space for palette tokens in get_token_alloc · ce63e838
      Rupert Swarbrick authored
      The previous computation only had space for transform
      coefficients.
      
      BUG=aomedia:959
      
      Change-Id: I9abd5a39cce9b2254bbdaf27e91a9ed4ee2b3c75
      ce63e838
    • Rupert Swarbrick's avatar
      Simplify the search in pickrst.c · 1a96c3f5
      Rupert Swarbrick authored
      The end results should be essentially the same, except hopefully a
      little better because the previous code got the costing slightly
      wrong if there were multiple tiles.
      
      The code was doing something quite complicated to search for the best
      restoration types; this patch makes it much simpler. Basically,
      av1_pick_filter_restoration loops over the planes in the image. For
      each plane, it loops over the possible restoration types, calling
      search_rest_type for each one.
      
      search_rest_type iterates over the restoration units in the image,
      resetting the current context on tile boundaries and calling
      search_<rest_type> for each restoration unit.
      
      The search_norestore function just computes the SSE error with no
      restoration. The search_wiener and search_sgrproj functions compute
      the best set of coefficients and then the resulting SSE error with
      those coefficients (ignoring the bit cost, so the result can be
      re-used for switchable restoration).
      
      In all cases but search_norestore, the search function has to decide
      what restoration type is best for each restoration unit. For example,
      search_wiener could choose to enable or disable Wiener filtering on
      this unit.
      
      Eventually, search_rest_type calculates the RDCOST after summing bit
      rates and SSE errors over the restoration units. This cost gets
      returned to av1_pick_filter_restoration which can then choose the best
      frame-level restoration type.
      
      Change-Id: I9bc17eb47cc46413adae749a43a440825c41bba6
      1a96c3f5
  5. 23 Oct, 2017 1 commit
    • Yaowu Xu's avatar
      Properly compute token buffer size · 522c989b
      Yaowu Xu authored
      This accounts for border extension necessary when image size is not
      a multiple of SB size in either horizontal or vertical direction.
      
      BUG=aomedia:647
      
      Change-Id: I18ae9edf148a83f8b32a06ca31410e30ebaa5a47
      522c989b
  6. 21 Oct, 2017 1 commit
  7. 20 Oct, 2017 1 commit
    • Debargha Mukherjee's avatar
      Remove CONFIG_CB4X4 config flags · 6ea917ec
      Debargha Mukherjee authored
      Since CB4X4 is adopted and without it the codec does not work,
      it is better to remove it and simplify the code.
      
      Change-Id: I51019312846928069727967e3b2bbb60f0fba80d
      6ea917ec
  8. 19 Oct, 2017 1 commit
  9. 16 Oct, 2017 1 commit
  10. 14 Oct, 2017 1 commit
  11. 11 Oct, 2017 1 commit
    • Yaowu Xu's avatar
      Add ALT_MIN_LAG · 6da42301
      Yaowu Xu authored
      This is the minimum lag-in-frames to allow auto_alt_ref.
      
      BuG=aomedia:648
      
      Change-Id: Idb5eb839463e8257de1cce9c8d6590409d0cc60c
      6da42301
  12. 07 Oct, 2017 1 commit
    • Urvang Joshi's avatar
      FRAME_SUPERRES: Rework to use scale factor of 8/D · de71d142
      Urvang Joshi authored
      Earlier, the superres scale was in the form of:
      N/16, where N ranged from 8 to 16.
      
      We change this to the form:
      8/D, where D ranges from 8 to 16.
      
      This helps on the decoder side, by making it possible to work on 8x8
      blocks at a time.
      
      Change-Id: I6c72d4b3e8d1c830e61d4bb8d7f6337a100c3064
      de71d142
  13. 04 Oct, 2017 1 commit
    • Dominic Symes's avatar
      MAX_TILE: Allow list of tile widths/heights · 26ad0b22
      Dominic Symes authored
      The aomenc API is modified to allow --tile_width and --tile_height to take a list of sizes.
      For example, --tile_width=2,3 will give tiles of widths 2,3,2,3,... until the image width
      is exhausted. --tile_width=2 will still work to gives tiles of width 2.
      
      Change-Id: I2afa14d404557aa8b7341b20f7477590e03e0bdb
      26ad0b22
  14. 03 Oct, 2017 1 commit
    • David Barker's avatar
      Deduplicate use_reference_buffer/frame_id_numbers_present_flag · 5e70a114
      David Barker authored
      These two flags serve essentially the same purpose, so we can
      simplify down to just having one flag. Since the
      frame_id_numbers_present_flag is older and listed in the
      reference-buffer design doc, this is the one we'll keep.
      
      Note that, previously, frame_id_numbers_present_flag was only
      sent when CONFIG_OBU was enabled - otherwise it was always set
      to 1. On the other hand, use_reference_buffer was always signalled
      so that allowed us to disable frame ids even without CONFIG_OBU.
      
      In order to keep the ability to disable frame IDs without
      CONFIG_OBU, we send a "real" sequence header (ie, with the same
      data as in CONFIG_OBU) in-line within the uncompressed header.
      This is sent every keyframe and every intra-only frame, just
      as the use_reference_buffer flag was before this patch.
      
      BUG=aomedia:853
      
      Change-Id: I4bb6c7a222aeddfb6d3737a39d10782d32ee2eee
      5e70a114
  15. 30 Sep, 2017 1 commit
  16. 29 Sep, 2017 2 commits
  17. 28 Sep, 2017 1 commit
    • Debargha Mukherjee's avatar
      Misc. resize fixes along with the resize test · ccb27264
      Debargha Mukherjee authored
      Re-enables most of the previously disabled tests.
      The ones that are still disabled expect resize to be triggered
      through rate control, which is no longer supported in Av1.
      
      Change-Id: Ie5e9ba3eb0843cd44ff1ac988500081470ba0fe2
      ccb27264
  18. 27 Sep, 2017 1 commit
    • Dominic Symes's avatar
      MAX_TILE experiment: add explicit tiles · f58f111f
      Dominic Symes authored
      This patch is designed to complete the CONFIG_MAX_TILE experiment.
      It adds the following features:
      - Explicit tiles of same width can be signalled with command line --tile_width
      - Explicit tiles of same hieght can be signalled with command line --tile_height
      - max_tile now works with the depenedent horizontal tiles experiment
      - additional checking added to ensure maximum number of rows/columns <= 64
      - one fix to the tile group code for when the number of tiles is not a power of two
      
      Change-Id: I749a68fdb3dcdd8d1ced2b3558f3817e4b832c06
      f58f111f
  19. 19 Sep, 2017 1 commit
  20. 16 Sep, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add a q index based frame superres mode · 7166f22a
      Debargha Mukherjee authored
      Refactors and adds superres-mode 3 and associated
      paramters --superres-qthresh and --superres-kf-qthresh
      that are used to trigger superres mode when the qindex
      for any frame exceeds the thresholds provided for non-key
      and key-frames respenctively. The superres scale factor
      numerator is progressively reduced from 16 starting from
      that q threshold following a fixed slope.
      
      Change-Id: If1c782993667a6fbaaa01bbde77c4924008c0d28
      7166f22a
  21. 15 Sep, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder support for multi-layer GF 16 · 8dd1c980
      Zoe Liu authored
      Currently the use of the new multi-layer GF group of 16 is guarded by
      the macro USE_GF16_MULTI_LAYER, which is turned off. Hence this CL
      does not change any of the encoder behavior.
      
      Change-Id: I588cd34e19388337a2ecb0a0cb3f796a37647e24
      8dd1c980
  22. 07 Sep, 2017 1 commit
  23. 06 Sep, 2017 1 commit
    • Zoe Liu's avatar
      Refactor defining the GF group in first pass · f271a950
      Zoe Liu authored
      In the old code, the function of allocate_gf_group_bits() in
      firstpass.c handles both GF group structure design as well as the
      corresponding bit allocation for each coded frame. This CL separates
      the two functionalities.
      
      It has been verified that no coding performance has been incurred by
      this CL.
      
      Change-Id: I544b4fcdc8cb37ec810373f1f820dbd2e400c39b
      f271a950
  24. 02 Sep, 2017 1 commit
  25. 31 Aug, 2017 3 commits
  26. 28 Aug, 2017 1 commit
  27. 26 Aug, 2017 1 commit
  28. 24 Aug, 2017 2 commits
    • Todd Nguyen's avatar
      Turn off bgsprite depending on firstpass metrics. · 71efd848
      Todd Nguyen authored
      Changes:
      - Add block size define.
      - Set default to mean filtering.
      - Add flag in AV1_COMP for bgsprite.
      - Determine to use bgsprite or not based on firstpass metrics in
      define_gf_group.
      - Add outlier removal for bgsprite mean blending (off by default)
      
      Results:
      lowres: -0.009 avg_psnr, -0.029 ovr_psnr, -0.102 ssim
      
      Clips with maximum gain:
      - brdige_far_cif: -2.071 avg_psnr, -2.409 ovr_psnr, -1.977 ssim
      - deadline_cif: -0.148 avg_psnr, -0.137 ovr_psnr, -0.113 ssim
      - brdige_close_cif: +1.741 avg_psnr, -0.258 ovr_psnr, -2.534 ssim
      
      Change-Id: I809406020f7786e49cc80329511e22d25379d7a2
      71efd848
    • Yue Chen's avatar
      Update cdf and mode rate per superblock in RDO · b855b8e8
      Yue Chen authored
      Update cdf after each superblock being finalized, and re-compute
      symbol costs. Affected symbols include prediction parameters,
      tx type, and new motion vector.
      BDRate: -0.121% lowres, -0.089% midres
      
      Change-Id: I005ef382762d6e3423f933cca0a0b7b40288e8bf
      b855b8e8
  29. 21 Aug, 2017 1 commit
    • Zoe Liu's avatar
      Tune the decision on the GF group interval · 4c3d4767
      Zoe Liu authored
      The change is purely an encoder-side tuning, which constrains a GF
      group interval to be either 8, or 12, or a number larger than 12
      (maximum of 16). The change is under ext_refs.
      
      This work has been part of the summer internship effort by chendixi@.
      
      Further, this CL removes the experiment of flex_refs and merges it
      into ext_refs, as flex_refs has been completely focused on the encoder
      side optimization for ext_refs.
      
      On Google test sets, above (stillness + interval enforcement) achieve
      a coding gain in BDRate as follows, compared against the AV1 baseline
      with all tools enabled by default (excluding ext-tx, global-motion,
      and convolve-round for speed concern):
      
      lowres: avg_psnr -0.193%; ovr_psnr -0.370%; ssim -0.332%
      midres: avg_psnr -0.556%; ovr_psnr -0.680%; ssim -0.798%
      
      Change-Id: Ia992d8ef0d82cc0ef2caba5eec9b26f0358e6bde
      4c3d4767
  30. 18 Aug, 2017 1 commit
    • Tom Finegan's avatar
      Make CONFIG_COLORSPACE_HEADERS public API changes unconditional. · 01d43e1f
      Tom Finegan authored
      Avoid changing the public API based on an experiment flag:
      
      - Remove aom_config.h include from aom_image.h.
      - Unconditionally include the existing API additions.
      - Add some missing doc comments (silences Doxygen warnings).
      - Return an error when using ctrl flags that require
        CONFIG_COLORSPACE_HEADERS when it's not enabled.
      - Move colorspace_headers to the correct section of configure.
      - Move CONFIG_COLORSPACE_HEADERS to the correct section of
        aom_config_defaults.cmake.
      - clang-format style check appeasement
      
      Change-Id: I7b5d72c6f9f1a5561409d7813ba59180d98d8805
      01d43e1f
  31. 17 Aug, 2017 1 commit
    • Yushin Cho's avatar
      Add --enable-dist-8x8, rename existing '--tune' as '--tune-metric' · d808bfcf
      Yushin Cho authored
      Added 'cdef-dist' and 'daala-dist' options to --tune-metric'.
      (Actual bodies of the options will be added in later separate commits)
      
      Also, if --tune=cdef-dist or --tune=daala-dist,
      enable-dist-8x8 is automatically turned on.
      
      This commit is a part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: I0790b9537dfaf166cb59741997ae27da10697a33
      d808bfcf
  32. 12 Aug, 2017 1 commit
  33. 10 Aug, 2017 1 commit
    • Urvang Joshi's avatar
      Remove PALETTE flag · c6300aa1
      Urvang Joshi authored
      This experiment is now adopted as it was cleared by Tapas.
      
      Note: Palette use can still be controlled by command-line option
      "--tune-content=..." in 'aomenc'.
      
      Change-Id: I832f49f20f60c34bdef5b424755849c496687e87
      c6300aa1
  34. 08 Aug, 2017 1 commit
  35. 01 Aug, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder support to ALTREF2 · e9b15e2b
      Zoe Liu authored
      This CL adds the use of ALTREF2_FRAME to both single / comp reference
      prediction at the encoder side. In particular, the encoder keeps the
      distant altref as ALTREF, and uses the internal extra altrefs to
      refresh ALTREF2.
      
      Compared with the baseline (ext_tx and global_motion disabled simply
      for speed concern):
      (a) lowres: avg_psnr -0.395% ovr_psnr -0.393% ssim -0.329%
      (b) midres: avg_psnr -0.419% ovr_psnr -0.431% ssim -0.444%
      (c) AWCY High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.6661 | -0.5988 | -0.6669 |  -0.6993 | -0.6988 | -0.7303 | -0.6051
      (d) AWCY Low Latency:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0720 | -0.0505 |  0.1501 |   0.0670 | 0.0842 |  0.0517 |     0.0158
      
      TODO list:
      (1) To have altref2 incorporated with ext-comp-refs;
      (2) To have altref2 fully work with new-multisymbol;
      (3) To re-collect the initial default probs/cdfs;
      (4) To tune the encoder gf group structure design for altref2.
      
      Change-Id: I6ad63fd65afa903d3bba20acdb68e3b67acf7fdf
      e9b15e2b