1. 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
  2. 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
  3. 30 Sep, 2017 1 commit
  4. 29 Sep, 2017 2 commits
  5. 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
  6. 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
  7. 19 Sep, 2017 1 commit
  8. 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
  9. 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
  10. 07 Sep, 2017 1 commit
  11. 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
  12. 02 Sep, 2017 1 commit
  13. 31 Aug, 2017 3 commits
  14. 28 Aug, 2017 1 commit
  15. 26 Aug, 2017 1 commit
  16. 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
  17. 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
  18. 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
  19. 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
  20. 12 Aug, 2017 1 commit
  21. 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
  22. 08 Aug, 2017 1 commit
  23. 01 Aug, 2017 2 commits
    • 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
    • Thomas Daede's avatar
      Add new experiment: frame_context_signaling. · da4d8b9c
      Thomas Daede authored
      This stores frame contexts alongside a reference frame, and always
      uses the frame in reference slot 0 (LAST_FRAME) as the source of
      the frame context.
      
      The encoder could then reorder reference frames as to control
      which frame context is used, however currently it does not.
      
      Low Latency AWCY result:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1438 |  0.4161 |     N/A |   0.0386 | -0.0281 |  0.0453 |     0.2514
      
      https://arewecompressedyet.com/?job=before-frame-context-signaling%402017-06-07T23%3A20%3A49.473Z&job=after-frame-context-signaling%402017-06-07T23%3A21%3A36.117Z
      
      Change-Id: I4f6f9b12cb403573efbf9e5c3077d62f5dedc467
      da4d8b9c
  24. 31 Jul, 2017 1 commit
    • Yue Chen's avatar
      Move mode costs that can be updated inside a frame to MACROBLOCK · b23d00a0
      Yue Chen authored
      It is a refactoring patch, which aims to make the code ready for
      implementation of in-frame mode cost update in RDO.
      Also add mode cost update per sb row, but it won't affect coding
      results because cdf update in RDO is not there.
      Mode cost arrays are moved to MACROBLOCK because in multi-thread
      coding, threads share the same AV1_COMP.
      
      This patch does not have impact on coding results.
      
      Change-Id: I2e8f7d7d066b23ebfbfc998269023781f359a6ff
      b23d00a0
  25. 26 Jul, 2017 2 commits
    • Luc Trudeau's avatar
      [CFL] UV_PREDICTION_MODE · d6d9eeeb
      Luc Trudeau authored
      A separate prediction mode struct is added to allow
      for uv-only modes (like CfL). Note: CfL will be
      added as a separate mode in an upcoming commit.
      
      Results on Subset1 (Compared to 4266a7ed with CfL enabled)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      Change-Id: Ie80711c641c97f745daac899eadce6201ed97fcc
      d6d9eeeb
    • Di Chen's avatar
      Disable extra altref and bwdref for still gf group · 53a04f66
      Di Chen authored
      Use three metrics to identify the still gf group.
      Performance:
      lowres: pamphlet_cif -1.395; bowing_cif -0.989;
              others remain same. Overall -0.064
      midres: snow_mnt_480p -0.827. others remain same.
              Overall -0.028
      
      Change-Id: I22a6429c7ebdad2c36ec73c7a69cabc07e8208b7
      53a04f66
  26. 21 Jul, 2017 1 commit
  27. 18 Jul, 2017 2 commits
    • Alex Converse's avatar
      Don't clobber |allow_screen_content_tools|. · 74ad0917
      Alex Converse authored
      Screen content tools can be forced on or inferred by color counting.
      This prevents the inferred status of the tools from getting clobbered
      when controls are evaluated.
      
      BUG=aomedia:656
      
      This also fixes the build with --disable-palette --enable-intrabc
      
      Change-Id: If815a1eff2f9419117477f14cda143dd669c87c6
      74ad0917
    • Alex Converse's avatar
      Revert "aomenc: remove config control of "allow_screen_content_tools"" · 2f7d37bf
      Alex Converse authored
      This reverts commit 1b5328e0.
      
      This commit has some pretty negative consequences with block copy. I
      need to be able to force block copy on for arbitrary sequences while it
      is still in development, and I need to be able to keep the palette
      enable status between block copy and non-block copy runs.
      
      Change If815a1eff2f9419117477f14cda143dd669c87c6 will prevent
      allow_screen_content_tools from getting clobbered and still allow us to
      force it on.
      BUG=aomedia:656
      
      Change-Id: I7a2f4207b5d2da35aec7870250e8b330c58a0e13
      2f7d37bf
  28. 14 Jul, 2017 2 commits
    • hui su's avatar
      aomenc: remove config control of "allow_screen_content_tools" · 1b5328e0
      hui su authored
      Always let the encoder decide if "allow_screen_content_tools" should be set.
      
      -The screen content detector(is_screen_content()) works fairly well.
      
      -Keeping the config control may lead to mismatches. For example, user
      may encode the 1st frame with the flag on, then turn the flag off for
      the 2nd frame via config control. On the decoder side, the flag is on
      for both frames, because the flag is only transmitted in the header of
      all-intra frame, i.e. the 1st frame in this example.
      
      BUT=aomedia:656
      
      Change-Id: I0652fe2b9f8df19bfbf7ed7d3513205c80ea9c61
      1b5328e0
    • Yunqing Wang's avatar
      Make EXT_TILE compatible with TILE_GROUPS · eeb08a9b
      Yunqing Wang authored
      Added a 1-bit flag 'large_scale_tile'. If it is 0 that is the default value,
      use normal tile coding in TILE_GROUPS. If it is 1, use large-scale tile
      coding in EXT_TILE.
      
      At large_scale_tile=1 case, if single-tile-decoding is required, then the
      loopfilter is disabled.
      
      Related API and unit tests were modified.
      
      Change-Id: I3ba12dc3d80ccf1ab21543ab3b16c02282c34e3b
      eeb08a9b
  29. 13 Jul, 2017 1 commit
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: add motion mode cdf · 9bcff194
      Wei-Ting Lin authored
      Add a new default motion_mode_cdf supporting this
      experiment.
      Also define the costs for the ncobmc mode tokens.
      
      Change-Id: Iebab044e4a34e3d2a94c18893107d82055cc9c77
      9bcff194
  30. 12 Jul, 2017 2 commits
    • hui su's avatar
      Automatically turn on/off screen content tools · d9a812bd
      hui su authored
      Turn "allow_screen_content_tools" on when the source video has many blocks
      with only few different colors. The automatic detection is enabled by
      defualt (or with command line flag "--tune-content=default"). With
      "--tune-content=screen", the screen content tools are always turned on.
      
      On the screen_content test set, the "default" setting is less than 0.3%
      worse than the "screen" setting on keyframe encoding.
      
      Change-Id: Iac7ab8952c96531d1fae84da1823291f5987519c
      d9a812bd
    • Rupert Swarbrick's avatar
      ext-partition-types: Add 4:1 partitions · 93c39e91
      Rupert Swarbrick authored
      This patch adds support for 4:1 rectangular blocks to various common
      data arrays, and adds new partition types to the EXT_PARTITION_TYPES
      experiment which will use them.
      
      This patch has the following restrictions, which can be lifted in
      future patches:
      
        * ext-partition-types is incompatible with fp_mb_stats and supertx
          for the moment
      
        * Currently only 32x32 superblocks can use the new partition types
      
      There's a slightly odd restriction about when we allow
      PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the
      EXT_PARTITION_TYPES CDF, read_partition() can only return them if both
      has_rows and has_cols is true. This means that at least half of the
      width and height of the block must be visible. It might be nice to
      relax that restriction but that would imply a change to how we encode
      partition types, which seems already to be in a state of flux, so
      maybe it's better to wait until that has settled down.
      
      Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
      93c39e91
  31. 11 Jul, 2017 1 commit
    • Nathan E. Egge's avatar
      Remove the EC_ADAPT experimental flags. · 6bdc40f1
      Nathan E. Egge authored
      Removing these flags make the EC_ADAPT experiment an integral part of
       the draft AV1 bitstream definition
      This commit has no effect on metrics.
      
      Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
      6bdc40f1