1. 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
  2. 19 Oct, 2017 1 commit
    • Rupert Swarbrick's avatar
      Remove RestorationInternal from AV1_COMMON · f88bc049
      Rupert Swarbrick authored
      The bits needed by striped loop restoration are now in
      RestorationInfo (which also gets rid of a rather ugly extra
      index).
      
      The scratch buffer that's used for self-guided restoration has been
      moved up to its own variable (rst_tmpbuf).
      
      All the rest of the fields are now safely hidden inside restoration.c
      
      This patch also does a big cleanup of the initialisation code in
      loop_restoration_rows: it doesn't need to be as repetitive now that
      the fields of YV12_BUFFER_CONFIG can be accessed by plane index.
      
      Change-Id: Iba7edc0f94041fa053cdeb3d6cf35d84a05dbfaf
      f88bc049
  3. 17 Oct, 2017 2 commits
  4. 16 Oct, 2017 2 commits
  5. 14 Oct, 2017 1 commit
  6. 13 Oct, 2017 3 commits
  7. 10 Oct, 2017 1 commit
  8. 08 Oct, 2017 1 commit
    • Yunqing Wang's avatar
      Modify storing and using of the temporal frame MVs · d1d511f3
      Yunqing Wang authored
      Add an experiment "tmp", which includes:
      1. Always use larger block size while storing frame MVs and make
      it consistent for CB4X4 or non-CB4X4 cases. Namely, use 8x8 for
      4x4 mi size and 16x16 for 8x8 mi size.
      2. Allocate smaller buffer for frame MVs and save memory usage.
      3. Use nearby 8x8 or 16x16 location's previous frame MVs, and make
      the logic simple.
      4. Reduce the number of copying for frame MVs, that is very costly
      in decoder.
      
      Baseline decoder got 5+% speedup. Borg test on lowres set showed a
      +0.009% PSNR difference before/after the patch.
      
      Change-Id: I61e14e95fd35bea88f338931b4f43c44f4e4cf1f
      d1d511f3
  9. 07 Oct, 2017 2 commits
    • 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
    • Urvang Joshi's avatar
      Superres: Remove unused variable. · e61923fa
      Urvang Joshi authored
      cm->superres_scale_numerator is used for both keyframes and
      non-keyframes, and is initialized from either
      oxcf->superres_scale_numerator or oxcf->superres_kf_scale_numerator as
      appropriate.
      
      Change-Id: Ie46df576ef3830e181643ae591d836449a4bd38f
      e61923fa
  10. 06 Oct, 2017 2 commits
    • Jingning Han's avatar
      Rework key frame intra mode context model · a45d842d
      Jingning Han authored
      Reduce the context model size for key frame modes from 30240 bits
      to 4500 bits, i.e., less than 1/6 of the original context model.
      The coding performance loss on key frame is 0.14% for lowres and
      noise level difference for video sequence. The loss on key frame
      for midres is 0.05% and noise level for whole video. The change
      on hdres kf coding is 0.015%.
      
      Change-Id: I9e36825e5c5ee6ba35038c3ca349ad1ad3429910
      a45d842d
    • Debargha Mukherjee's avatar
      Avoid large stack allocations · 5d108a36
      Debargha Mukherjee authored
      When ext-partition and ncobmc-adapt-weight is on, avoid too large
      stack allocations.
      
      Change-Id: I8db74e45cac80c4e5dfd9e20cfc73d9978d1578e
      5d108a36
  11. 05 Oct, 2017 1 commit
  12. 04 Oct, 2017 1 commit
    • Cheng Chen's avatar
      LOOPFILTER_LEVEL: add flexibility for EXT_DELTA_Q · 880166ab
      Cheng Chen authored
      When experiment LOOPFILTER_LEVEL is on, there're four base filter levels
      for each frame. This patch enables one to use one delta or four deltas
      to update corresponding filter levels for each superblock in
      EXT_DELTA_Q.
      
      1 bit per frame is sent through bitstream to select one or four deltas.
      Now, we hard code to use one delta.
      
      Change-Id: I9c61a035064fa81878b0575ad21664e2b22a6a45
      880166ab
  13. 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
  14. 02 Oct, 2017 1 commit
  15. 30 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Add a new layout for HORZ/VERT_A/B partitions · 3dd33911
      Rupert Swarbrick authored
      This hides behind --enable-ext_partition_types_ab. When that flag is
      set, the mixed partitions change from
      
         +-+-+---+          +-+-+---+
         |   |   |          | | |   |
         |---+   |    to    | | |   |
         |   |   |          | | |   |
         +-+-+---+          +-+-+---+
      
      (that's PARTITION_VERT_A; other partitions change similarly).
      
      Since 128x32 and 32x128 block support hasn't yet been merged, this
      patch also temporarily disables these partitions for 128x128 blocks.
      
      Change-Id: Ic479c0fc129f590b8ad56d72dc98ba79ae1bd1cf
      3dd33911
  16. 29 Sep, 2017 4 commits
  17. 27 Sep, 2017 2 commits
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: remove compressed header always. · ad667d90
      Thomas Davies authored
      Enable the RESTRICT_COMPRESSED_HDR experiment when
      NEW_MULTISYMBOL is on and apply when there is no
      backward update also.
      
      Change-Id: I5f6812df2cb3f9bc32fe533b2689fd51235aedbc
      ad667d90
    • 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
  18. 26 Sep, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add experiment to restrict compressed header · 2eada612
      Debargha Mukherjee authored
      The compressed header is now used only when the refresh
      type is set as forward, i.e. in error resilience and
      frame parallel modes. As long as backward updates are
      used the header is disabled thereby saving bits.
      
      Change-Id: Iee9f66ffbd30ef3552ea41b75e4b51537cd9ff97
      2eada612
  19. 20 Sep, 2017 2 commits
    • Cheng Chen's avatar
      Search for deblocking filter level for superblock · f572cd30
      Cheng Chen authored
      Search and pick filter level for each superblock after the entire
      frame has been encoded. And then apply loop filtering using
      selected filter levels.
      
      Now it can't work with LOOPFILTER_LEVEL. Y, U, V planes share the
      same filter level.
      
      Per superblock, filter levels are signaled via bitstream.
      
      Future work: move selecting filter level into each superblock
      rather than wait for the whole frame encoded.
      
      Change-Id: I46cb994ec4866abb0456146f7c3cae8813c1d52e
      f572cd30
    • Dominic Symes's avatar
      Add the max-tile tool with uniform tile support · db5d66fe
      Dominic Symes authored
      This adds the tool CONFIG_MAX_TILE
      Uniform tiles are implemented using power of two number of rows or columns.
      Maximum number of rows or columns is 64
      Explicit tiles will follow in a later commit once the command line API is updated for this
      
      Change-Id: Ia8d22e7f4aa779448211496c644937afdf037228
      db5d66fe
  20. 19 Sep, 2017 3 commits
    • RogerZhou's avatar
      Adaptive Motion Vector Resolution · 3b635245
      RogerZhou authored
      Change-Id: Ic3c93a5d2e427ce1ed578389196a265245063821
      3b635245
    • Jingning Han's avatar
      Integrate mfmv with codebase · 94a504af
      Jingning Han authored
      Accomodate recent codebase in the motion field estimation system.
      This solves out of boundary buffer access issues.
      
      Change-Id: Ib99b38940690871b700ceb36cdcc015b52aca113
      94a504af
    • Luc Trudeau's avatar
      [CFL] Refactor includes · 89ff793b
      Luc Trudeau authored
      The cfl_init function is moved out of cfl.h simplifying the includes and
      removing the need for forward declarations.
      
      Change-Id: I47312b25410b718a830b001391e386647005d57e
      89ff793b
  21. 13 Sep, 2017 2 commits
    • David Michael Barr's avatar
      [CFL] Fix typedef-redefinition compiler warnings · 5b2021ea
      David Michael Barr authored
      Instead of forward-declaring AV1_COMMON and MACROBLOCKD,
      move the dependent struct and function prototype closer
      to where they are used and after these types are defined.
      
      Change-Id: I75f005b46ef322a6fcbc01377b8dded1637c5f73
      5b2021ea
    • Rupert Swarbrick's avatar
      Simplify get_partition() implementation · 136d5c17
      Rupert Swarbrick authored
      This function is given a bsize and an mi array and has to figure out
      what partition to use to divide the given bsize in the direction of
      the sizes it finds in the mi array. (Since each block size can be
      reached by only one sequence of partitions, this can be done
      unambiguously)
      
      The previous version was correct, working by looking up entries in the
      partition_lookup array. Unfortunately, that lookup isn't quite enough
      when CONFIG_EXT_PARTITION_TYPES is true, so it then had to do some
      slightly confusing computations to fix things up after the fact.
      
      The new version should be more self-explanatory and doesn't work by
      looking things up in a magic array. It looks up the width and height
      corresponding to bsize and compares them with the width and height
      corresponding to the sb_type at mi_row,mi_col in the mi array. When
      CONFIG_EXT_PARTITION_TYPES is false, this is all you need, and the
      four corresponding cases can be found by a lookup in an array of 4
      elements.
      
      With extended partition types and a sufficiently large block, you have
      to do a bit more searching. For example, if bsize is BLOCK_16X16 and
      the subsize is BLOCK_8X8, the partition might be PARTITION_SPLIT, but
      it might be one of PARTITION_HORZ_A or PARTITION_VERT_A instead. The
      new code adds some comments to explain what's going on.
      
      A nice side-effect of rewriting get_partition in this way is that it
      lets us completely dispense with the partition_lookup array.
      
      The patch also fixes comments for the A/B extended partitions in
      enums.h, which were slightly backwards (a "horizontal split means two
      blocks vertically above one another)
      
      Change-Id: I4b48189103aa63e1859f25a15d7690d53ca7baf5
      136d5c17
  22. 08 Sep, 2017 1 commit
  23. 05 Sep, 2017 1 commit
    • Timothy B. Terriberry's avatar
      Compile fix for f9ef4f6b. · 6577c93e
      Timothy B. Terriberry authored
      Automatic rebasing didn't pick up that an extra instance of the
      EC_SMALLMUL flag was added in commit 8711cf5f.
      
      However, that commit also broke CONFIG_ANS, since the CDF
      probabilities are not inverted in that case. This patch fixes both
      issues.
      
      Change-Id: I85b3eb8a4be5b7a392f2f872fc4a90f3fdbf2727
      6577c93e
  24. 02 Sep, 2017 1 commit
  25. 31 Aug, 2017 2 commits
    • Stanislav Vitvitskyy's avatar
      Using CDFs for read_partition special case · 8711cf5f
      Stanislav Vitvitskyy authored
      Test results:
      akiyo	    -0.05%
      bowing	    -0.072%
      bridge	    -0.042%
      bus	    -0.156%
      coastguard  -0.645%
      container   -0.087%
      deadline     0.007%
      flower       0.02%
      football    -0.009%
      foreman      0.03%
      hall         0.087%
      highway     -0.041%
      husky       -0.031%
      mad900       0.015%
      mobile      -0.007%
      mother       0.012%
      news         0.039%
      pamphlet     0.061%
      paris       -0.003%
      sign        -0.148%
      silent       0.003%
      students    -0.009%
      tempete     -0.061%
      waterfall    0.666
      
      Change-Id: I96c2fd3a6fbc5f8e5cf7f3b881ef89335e58d5ac
      8711cf5f
    • Jingning Han's avatar
      Enable motion field estimation in DRL · ffbb0f91
      Jingning Han authored
      Enable the use of motion field estimation in the dynamic motion
      vector referencing system. With default experiments on, it improves
      the compression performance:
      
      lowres 1.2%
      midres 1.5%
      
      Change-Id: Ifc5b15a7239b5c3212ea50f326ab99d372034658
      ffbb0f91