1. 21 Feb, 2018 3 commits
  2. 19 Feb, 2018 1 commit
    • Hui Su's avatar
      Add cdf_update_mode experiment · 1cb1c002
      Hui Su authored
      Allow the CDF update to operate in different modes, e.g. update vs no
      update.
      
      The update mode is transmitted in the uncompressed frame header of
      every keyframe and intra-only frame.
      
      This patch only adds bitstream signaling and API support. The
      implementation of the update modes will be in later patches.
      
      Change-Id: Ic9fcd60e8a75f9c01f414253823d78cf9b3113dd
      1cb1c002
  3. 09 Feb, 2018 2 commits
  4. 05 Feb, 2018 1 commit
    • Maxym Dmytrychenko's avatar
      Adding config file parsing implementation · cc6e0e16
      Maxym Dmytrychenko authored
      Parameters from config file will be added at --cfg options location to
      be processed
      
      Config file example:
       #ignore comment
       ext-partition   : 1 #ignore as well
       codec           : av1
       psnr            : ON
      
      Note(s):
          - Config file is a simple text file
          - Comment starts with hash(#)
            Can be full line or part of the line, after hash(#) details are
      ignored
          - Format: field : value
            colon(:) as delimeter, otherwise full line will be ignored
            Space(s) and tab(s) can be used, not inside field
          - long names for field are prefered
             existing --long_name option format
          - "no value" fields should contain ON as value
      
      Example of usage:
          aomenc --cfg=some.cfg src_filename
      
      Configurations support matrix:
      enable-ext-partition         : done
      enable-loop-restoration      : wip
      enable-deblocking            : wip
      ...
      
      Change-Id: Iad867c5d2da64271cdafa825c89f7d6444582f61
      cc6e0e16
  5. 01 Feb, 2018 1 commit
  6. 29 Jan, 2018 1 commit
  7. 26 Jan, 2018 1 commit
  8. 24 Jan, 2018 1 commit
  9. 23 Jan, 2018 1 commit
    • Imdad Sardharwalla's avatar
      Don't calculate chroma data in monochrome mode · af8e2648
      Imdad Sardharwalla authored
      Encoder: Prior to this patch, some chroma data was calculated and
      later discarded when in monochrome mode. This patch ensures that
      the chroma planes are left uninitialised and that chroma
      calculations are not performed.
      
      Decoder: Prior to this patch, some chroma calculations were still
      being performed in monochrome mode (e.g. loop filtering). This
      patch ensures that calculations are only performed on the y
      plane, with the chroma planes being set to a constant.
      
      Change-Id: I394c0c9fc50f884e76a65e6131bd6598b8b21b10
      af8e2648
  10. 15 Jan, 2018 2 commits
  11. 11 Jan, 2018 1 commit
  12. 10 Jan, 2018 1 commit
  13. 27 Dec, 2017 1 commit
  14. 19 Dec, 2017 1 commit
    • Lei's avatar
      add new experiment loopfiltering_across_tiles_ext · 7bb501d5
      Lei authored
      based on the latest discussion in the HW working group about how loop
      filter should be integrated with tiles, the following decisions have been
      made:
      1. two seperated flages should be added for
      loop_filter_across_tiles_enabled for horizontal tile boundary and
      vertical tile boundary.
      2. encoder and decoder should only check these two flags to determine
      whether loop filtering (including deblocking, CDEF and loop restoration)
      should cross tile boundaries (vertical and/or horizontal) or not
      regardless the horitontal depepdent tile flag.
      
      This change list implemented the support for two seperated
      loop_filter_across_tiles_enabled flags for vertical and horizontal tile
      boundaries. The new experiment is disabled as default before it is
      adopted.
      
      Change-Id: I814377947517f5419c08b004a3b71b950d01eadd
      7bb501d5
  15. 11 Dec, 2017 1 commit
  16. 10 Dec, 2017 1 commit
    • Imdad Sardharwalla's avatar
      Monochrome control now in colorspace header · 317002fb
      Imdad Sardharwalla authored
      The monochrome bit has been removed from the end
      of the sequence header.
      Monochrome is now coded as a type of colorspace.
      
      Encode in monochrome by using
        aomenc --color-space=monochrome ...
      
      Change-Id: I9550de58eb3d67dae0eb651697cb63dc8b137931
      317002fb
  17. 09 Dec, 2017 1 commit
    • Rostislav Pehlivanov's avatar
      Change q_segmentation to spatial_segmentation · 938710cb
      Rostislav Pehlivanov authored
      Adds spatial prediction to standard segmentation instead of a separate
      segmentation feature.
      When using temporal prediction skipped blocks are flagged as mispredicted.
      
      Change-Id: I0c32281286d3fbce66d339c9247bcc6516f37a63
      938710cb
  18. 07 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Update the experiment of ref-adapt · d4d8b868
      Zoe Liu authored
      This experiment allows two choices for the frame-level reference
      mode flag: SINGLE_REFERENCE and REFERENCE_MODE_SELECT. It removes
      the choice of COMPOUND_REFERENCE, as it has been barely used.
      
      Change-Id: I8af18acd2fe3c0d4928f2b05f35aad0ebcb1556a
      d4d8b868
  19. 05 Dec, 2017 1 commit
  20. 04 Dec, 2017 1 commit
    • Jingning Han's avatar
      Add the speed feature structure for codec dev · b49c6aea
      Jingning Han authored
      This commit re-structures the speed feature setup for the codec
      development purpose. Instead of progressively reducing encoder
      complexity at the expense of incremental coding loss, we allow a
      separate set of speed features, each corresponds to a certain
      category of coding units:
      
      1 << 0: transform coding
      1 << 1: inter prediction
      1 << 2: intra prediction
      1 << 3: block partition
      1 << 4: loop filters
      1 << 5: rd early skip
      
      [6 - 7] are left open for next adjustment.
      
      It is constructed to facilitate the codec development purpose.
      When working on a coding functions, one could choose to turn on
      one or more less related coding units to speed up the evaluation
      process. For example, to test a transform related experiment, one
      could set
      --dev-sf=2, 6, or 22
      which corresponds to turning on:
      2 - inter prediction speed features,
      6 - both inter / intra speed features,
      22 - inter / intra, and loop filter features.
      
      The goal is to allow faster experimental verification during the
      development process. With the experiment in a stable state, we
      can evaluate its performance in speed 0 at higher confidence level.
      
      Change-Id: Ib46c7dea2d2a60204c399dc01f10262c976adf0d
      b49c6aea
  21. 02 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Overwrite frame level skip mode flag if no usage · 8a5d3437
      Zoe Liu authored
      Add a block level usage flag for skip mode. If no block has chosen the
      skip mode, the frame level flag for skip mode will be set off.
      
      This patch also includes a small code cleanup, including the check on
      whether the best RD mode is aligned with skip mode, if yes, the best
      RD mode will be replaced by skip mode.
      
      This patch slightly improves the coding performance of ext-skip.
      
      Change-Id: If06092d5e32f15e63dcb5f35d32e68bc0f827c2b
      8a5d3437
  22. 14 Nov, 2017 2 commits
    • Rupert Swarbrick's avatar
      Don't send chroma data in monochrome mode · dcb3cff5
      Rupert Swarbrick authored
      This is still a rather inefficient black+white encoder, since it carefully
      computes some chroma data, but just doesn't write it. However, at least the
      bitstream is now monochrome.
      
      Change-Id: Ie8a89bf329e7b41441032fb0d9e9011385bc12ff
      dcb3cff5
    • Hui Su's avatar
      intrabc: use its own mv cost table · dfcbfbd4
      Hui Su authored
      To faciliate using intrabc on interframes.
      
      Change-Id: Ibfe376190adf24d15198c5fb548e1050e191a3d6
      dfcbfbd4
  23. 11 Nov, 2017 1 commit
    • Frederic Barbier's avatar
      Remove experimental flag of CDEF · 1aeee2e9
      Frederic Barbier authored
      This experiment has been adopted, we can simplify the code
      by dropping the associated preprocessor conditionals.
      
      Change-Id: I17bd46ebad7796d04fb4065fb36da0e1c4eeaf9b
      1aeee2e9
  24. 10 Nov, 2017 2 commits
    • Rupert Swarbrick's avatar
      Plumb in a "monochrome" flag · e0b15997
      Rupert Swarbrick authored
      This bit appears in the sequence header. At the moment, it does
      nothing, but it will mean that we don't encode (or read) chroma
      planes.
      
      This patch adds the flag to the sequence header, and also adds an
      encoder option (--monochrome) which enables it. At the moment, this
      doesn't do anything except cause the bit to be set correctly in the
      header.
      
      Change-Id: If5598412c1c75101553d7f8f9098f9ed1163514e
      e0b15997
    • Steinar Midtskogen's avatar
      Add command-line -enable-cdef option · e44c6224
      Steinar Midtskogen authored
      Change-Id: Ic061eeab1563c249fd9d3738025aac40bc3ee542
      e44c6224
  25. 09 Nov, 2017 2 commits
    • Hui Su's avatar
      Add flag to indicate if intrabc is used · 8587878c
      Hui Su authored
      Change-Id: If8a4f3d256e619c9efdb66b1d8b8da5b8fc980ab
      8587878c
    • Rostislav Pehlivanov's avatar
      Add the q_segmentation experiment · f624dd5a
      Rostislav Pehlivanov authored
      This experiment implements low-cost delta q signalling on a per-block basis
      for all non-inter frame types, which would allow for more efficient AQ
      which bases its decisions on temporal information.
      
      Based on an Intel proposal from March.
      
      Change-Id: I18e73d8b12f4caa0b165df12c58ab506271bec03
      f624dd5a
  26. 08 Nov, 2017 1 commit
    • Yunqing Wang's avatar
      Make apply_encoding_flags work when lag_in_frames > 0 · f2e7a397
      Yunqing Wang authored
      av1_apply_encoding_flags() was called in encoder_encode(). If
      lag_in_frames > 0, it wouldn't be called for last several frames
      while flushing the encoder, and thus cpi->ref_frame_flags can not
      be set correctly. This patch fixed the issue by adding an extra
      flag cpi->ext_ref_frame_flags to store the external reference
      frame flag, and pass it to cpi->ref_frame_flags correctly.
      
      Change-Id: I9c3f22f92b81c7b4b6241a3f7edcaeabd8d8bbc9
      f2e7a397
  27. 07 Nov, 2017 1 commit
    • Zoe Liu's avatar
      Speed up ref selection by enforcing max 6 frames · f452fdfe
      Zoe Liu authored
      A speedup feature that enforces the maximum number of reference frames
      to evaluate for each arbitrary frame to be 6, as opposed to the maximum
      syntax-allowed number of reference frames which is 7, through the
      following rules:
      
      (1) When all the possible reference frames are availble, we reduce the
          number of reference frames (7) by 1 by removing one reference
          frame;
      (2) Always retain GOLDEN_FARME/ALTEF_FRAME;
      (3) Check the earliest 2 remaining reference frames, and there are two
          options to remove one reference frame:
          (a) Remove the one with the lower quality factor; Otherwise if
          both frames have been coded at the same quality level, remove the
          earliest reference frame;
          (b) Always remove the earliest reference frame.
          Currently set option (a).
      
      This patch has demonstrated an encoder speedup of ~8.5%. It is under
      speed2 with "selective_ref_frame >= 2". (May be considered to move
      to speed1 later once the coding performance impact is evaluated
      further.)
      
      Using the following configure setups, the coding performance has been
      dropped on Google test sets (50 frames) in BDRate by ~0.2% for lowres
      and by ~0.1% for midres:
      --enable-experimental --disable-convolve-round --disable-ext-partition
      --disable-ext-partition-types --disable-txk-sel --disable-txm
      
      Change-Id: I84317bae00bfd90b2c3d301858a849f441974e6f
      f452fdfe
  28. 06 Nov, 2017 1 commit
    • Yunqing Wang's avatar
      Update the encoder flags for reference frames using and updating · 9a50fec3
      Yunqing Wang authored
      Updated the encoder flags for externally setting reference frames using
      and updating to include latest changes in AV1.
      
      1. For what reference frames to use, always initilize
      cpi->ref_frame_flags with AOM_REFFRAME_ALL at the beginning of encoding
      a frame. The internal ref_frame_flags starts from external flags. Added
      AOM_EFLAG_NO_REF_LAST2 and AOM_EFLAG_NO_REF_LAST3 for LAST2 and LAST3.
      
      2. For what reference frames to update, added ext_refresh_bwd_ref_frame
      and ext_refresh_alt2_ref_frame for BWD and ALT2. Also, removed
      AOM_EFLAG_FORCE_GF and AOM_EFLAG_FORCE_ARF since these are never
      actually used. They can be added back if needed later.
      
      Change-Id: I1e4429290f09bfcd1b26f2babc0cf556fc6fbc6c
      9a50fec3
  29. 04 Nov, 2017 1 commit
    • Zoe Liu's avatar
      Speed up one-sided compound mode (ext-comp-refs) · 77fb5be1
      Zoe Liu authored
      One-sided compound ref prediction is used only when all reference
      frames are one-sided.
      
      This patch has demonstrated an encoder speedup of ~28%.
      
      Using the following configure setups, the coding performance has been
      dropped on Google test sets (50 frames) in BDRate by ~0.2% for lowres
      and by ~0.1% for midres (Corresponding performance impact should be
      smaller on AWCY):
      --enable-experimental --disable-convolve-round --disable-ext-partition
      --disable-ext-partition-types --disable-txk-sel --disable-txm
      
      Change-Id: I585bbffb2f8d154e8f52a1e79a84eff8bb4a471d
      77fb5be1
  30. 03 Nov, 2017 1 commit
    • Yunqing Wang's avatar
      Allow to disable the probability update · 0e141b56
      Yunqing Wang authored
      Added the function of allowing to disable the probability update while
      needed. This would be needed while encoding in multiple tiles, and
      enabling/disabling probability update can be set separately for every
      individual tile.
      
      Change-Id: Ic3c64e6cebac89c483d48b874761bd2e902d81e6
      0e141b56
  31. 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
  32. 31 Oct, 2017 1 commit
  33. 30 Oct, 2017 1 commit