1. 02 Nov, 2017 9 commits
    • Debargha Mukherjee's avatar
      Add an expt to remove allow high precision mv flag · b214775d
      Debargha Mukherjee authored
      Change-Id: I3873acafcd9539da96f67328cdb8faf7798be90f
      b214775d
    • David Barker's avatar
      Refactor search_selfguided_restoration · bfbd8b39
      David Barker authored
      Pull the per-unit processing out into a couple of new functions,
      to make the overall logic of search_selfguided_restoration()
      a bit more obvious
      
      Change-Id: Ib4ed9be7d4c76e22dc56f933f3f9d09160242f71
      bfbd8b39
    • David Barker's avatar
      OBU: Fix a few bugs · 01563088
      David Barker authored
      * The function av1_decode_tg_tiles_and_wrapup performs some per-frame
        initialization; some of this was mistakenly being performed
        once per tile group instead, leading to strange behaviour
        (eg, forgetting loop-restoration coefficients, forgetting
        the boundary information for all but the last tile group, etc.)
      
        Fix this by pulling all of the initialization code into its
        own function and calling it only if the initialize_flag is set.
      
      * While fixing the above, I realized that the 'context_updated'
        flag in av1_decode_tg_tile_and_wrapup was not behaving as intended:
        The idea is that, when using frame parallel mode, we save the
        frame context early so that the next frame can start decoding.
        Then we don't need to store the frame context at the end of
        the frame, since we already dealt with it at the start of the frame.
      
        However, this 'context_updated' flag was local to one tile group,
        ie. it got reset to 0 once we started decoding the second tile group.
        So we'd end up storing the frame context again at the end of the frame
        if there was >1 tile group.
      
        This didn't break anything, but it is a bit weird. So, to match
        the original intent, we ditch the 'context_updated' flag and
        directly check if we're in frame parallel mode when necessary.
      
      * Fix a bug where we read one byte too much from a tile group
        OBU when the extended OBU header was used.
      
      BUG=aomedia:892
      
      Change-Id: Ifbe561de0de35525d809e23915ac5263273e8de7
      01563088
    • Rupert Swarbrick's avatar
      Refactor border treatment in loop restoration · 5b401364
      Rupert Swarbrick authored
      Previously we were calling aom_extend_frame_borders to generate
      extended pixels for use in loop-restoration. This generates quite a
      large border, when we only need 3 pixels.
      
      In addition, we were also calling extend_frame, which does the same
      thing but with a smaller border, once (in the decoder) or multiple
      times (in the encoder) per plane.
      
      This patch tidies all of this up so that we only call extend_frame
      once per plane, with the largest border size we need (3px).
      
      It also adds two new #defines. RESTORATION_BORDER is the 3 pixel
      border needed to do filtering for a processing
      unit. RESTORATION_CTX_VERT is the number of rows saved for each stripe
      when doing striped loop restoration.
      
      Change-Id: I2c3ffcc19808f79db195f76d857e2f23da5d8a84
      5b401364
    • Rupert Swarbrick's avatar
      Fix av1_loop_restoration_corners_in_sb for HORZ_FRAME_SUPERRES · 8b68e100
      Rupert Swarbrick authored
      After this patch, we don't scale sb coordinates vertically when using
      HORZ_FRAME_SUPERRES.
      
      Change-Id: I24c652b4b357b132e8b29979a119e7aeb8420e19
      8b68e100
    • Pavel Frolov's avatar
      Increase border when CONFIG_EXT_PARTITION==1 · 902000d8
      Pavel Frolov authored
      Before an increased border of 288 pixels was used when both
      CONFIG_EXT_PARTITION and CONFIG_FRAME_SUPERRES were enabled.
      
      However increased border is also required when only
      CONFIG_EXT_PARTITION is enabled.
      
      For example when:
      1) current frame is 2x smaller than reference frames
      2) block size is 128x128
      
      BUG=aomedia:991
      
      Change-Id: I09dfddfdf6bd0b0efde2556acb924bb563b6da2f
      902000d8
    • Debargha Mukherjee's avatar
      Move superres 1D convolve functions to convolve.c · 97137443
      Debargha Mukherjee authored
      This is to ease integration with striped loop restoration
      
      Change-Id: If10e16656a3fe42bcca3e7238e4e729c962f2bb8
      97137443
    • Nathan E. Egge's avatar
      Fix NaN failure in CfL unit test on x86. · 8fdcf6e3
      Nathan E. Egge authored
      BUG=aomedia:993
      
      Change-Id: I555f430541413a42e9e14310bfde93304dc15cfa
      8fdcf6e3
    • Dake He's avatar
      [level map] simplified context derivation · 03a32926
      Dake He authored
      This CL simplifies context derivation for nz and base level flags in
      level map.
      1. Reduce SIG_COEF_CONTEXTS from 58 to 42.
      2. NZ and base level flags share the same context offsets derived from a
      template of size 5 (down from 7).
      
      In limited runs, compression performance seems neutral if not better.
      Encoding time for a key frame on a local linux machine is reduced by about 25% or more.
      
      Change-Id: Ibd93b21c839154bc5ae26b993f9e66537cbf5942
      03a32926
  2. 01 Nov, 2017 29 commits
    • Luc Trudeau's avatar
      [CFL] 4:4:0 Support · 06b47089
      Luc Trudeau authored
      Change-Id: Ic5cf4c8393a00810700e42a162fbb36a62d9b56f
      06b47089
    • Sarah Parker's avatar
      Rename ZEROMV to GLOBALMV · 2b9ec2ea
      Sarah Parker authored
      This name better reflects the functionality of the mode.
      
      Change-Id: Idc2372e7c7b226f70f63fa4f272a88cb4d857089
      2b9ec2ea
    • 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
    • Debargha Mukherjee's avatar
      Add speed feature to reduce tx size search depth · edc7346f
      Debargha Mukherjee authored
      The speed feature simply restricts the number of depths
      searched. Currently it is turned on by default for speeds>=1.
      The coding efficiency impact (tested on lowres 30 frames) seems
      to be ~0.15% and the speedup is in the order of 15%.
      
      Change-Id: I514832bd7df937292875f73d9c9026e49ac576f2
      edc7346f
    • Linfeng Zhang's avatar
      Remove nz/eob related uncalled functions · fa97083c
      Linfeng Zhang authored
      Change-Id: I12471d18544a9634c28ed139b7211c9af0762927
      fa97083c
    • Zoe Liu's avatar
      Remove redundant macro USE_UNI_COMP_REFS · c6b17d82
      Zoe Liu authored
      USE_UNI_COMP_REFS is always true when ext-comp-refs is enabled and is
      always false otherwise.
      
      Change-Id: Ic6061a4ab88a2ebfeb11f178872ab13909060c0b
      c6b17d82
    • Soo-Chul Han's avatar
      remove writing/parsing superframe index with new HLS · 38427e8e
      Soo-Chul Han authored
      * add build-time option to add/read 4-byte size of every OBU
      * update to R19 by adding forbidden bit to obu header
      * add metadata OBU decoding
      
      Change-Id: I525264f53a8666b7bc29493fb29ae661841eba50
      38427e8e
    • Joe Young's avatar
      Change ext-intra base angle 111 to 113 · 28fcbfe5
      Joe Young authored
      This makes the ext-intra angles symmetric around 135.
      
      Change-Id: I81d4134a69e2de3e740299d66dbb9c28c59b73a5
      Previous: 45, 67, 90, 111, 135, 157, 180, 203
      New:      45, 67, 90, 113, 135, 157, 180, 203
      28fcbfe5
    • Zoe Liu's avatar
      Remove the use of prev_frame_mvs for mfmv · 294f59d0
      Zoe Liu authored
      The experiment of mfmv has already extensively leveraged the use of
      the motion vectors from the reference frames, hence there is no need
      to further add the motion vectors from the previous frame to serve
      as the motion vector reference candidates, let alone such motion
      vectors have not taken into account of the use of frame offsets.
      
      Experimental results collected so far have shown this patch has zero
      coding performance impact.
      
      Change-Id: I57a2f8b60797bd5e8f0a95206689b6e443b28ed1
      294f59d0
    • Pavel Frolov's avatar
      Fix delta_qindex signalling · bfa2b8ce
      Pavel Frolov authored
      BUG=aomedia:992
      
      Change-Id: Ibac542608d9abd669d0e8cf871960b2cf0a6da6a
      bfa2b8ce
    • Debargha Mukherjee's avatar
      Move and rename some macros for resize/upscale · d365d3cc
      Debargha Mukherjee authored
      This is the first step towards moving the upscale convolve function
      to convolve.c
      
      Change-Id: I916a974a881d104b0b3cde861fa8bb898883af01
      d365d3cc
    • Pavel Frolov's avatar
      Signal sb_size for intra-only frames. · ef4af297
      Pavel Frolov authored
      BUG=aomedia:938
      
      Change-Id: Ic730ac1136e915d193f3b48f7788baa093e7ff0f
      ef4af297
    • Sarah Parker's avatar
      Use tx_size 1 level down for transform type search · 90024e44
      Sarah Parker authored
      This addresses an inconsistency between the set used
      to decode the tx_type in the bitstream and the set used
      for the tx_type search. Previously, the set used to
      read/write the tx_type was based on the smallest tx_size
      in the vartx partitioning, but the search uses a set
      based on the largest possible tx_size. This patch
      changes the tx_type search to use the transform type
      set associated with the tx_size 1 recursive level down from
      the max square tx_size to make the search more consistent
      with the bitstream syntax. If a tx_size is selected for an
      invalid tx_type, DCT_DCT is used for that partition instead.
      
      This patch also adds assertions to all exposed transform
      functions to ensure that no illegal transform type/size
      combinations occur.
      
      This currently gets a 0.1% drop in performance on lowres.
      The drop is due to the reduction of the tx_types available
      for 32x16 and 16x32 transform sizes. Before this patch,
      32x16 and 16x32 transforms were getting assigned a
      set of 12 tx_types, some of which we did not intend to
      support for these sizes.
      
      Change-Id: I44aca4876b261c345623cd04ad6235bca4532701
      90024e44
    • Yue Chen's avatar
      Remove CONFIG_INTERINTRA · 670b660d
      Yue Chen authored
      Change-Id: Icbedc16b01adf9b48f0f357ec89143462865d54e
      670b660d
    • Yue Chen's avatar
      Guard the limits in for-loops for setting inter_tx_size · c5252a69
      Yue Chen authored
      Always at least set the first row and the first col, otherwise will
      have unattended entries if we enable 4x16 or 16x4 txs.
      
      Change-Id: I403ea3694ccf8c7ee1584f55bbc3e9b8355d9272
      c5252a69
    • Angie Chiang's avatar
      Assign right ref_stamp int av1_setup_motion_field · c906e65b
      Angie Chiang authored
      Change-Id: Ie9152c5a631cd53ac69cc09469682505a88b045d
      c906e65b
    • Zoe Liu's avatar
      Add decoder support to ext_skip · f704a1c8
      Zoe Liu authored
      At the frame header level, add the checking on whether an inter-coded
      frame allows the use of 'skip_mode'. At the block level, add the
      decoding of 'skip_mode' for all the blocks if 'skip_mode' is allowed
      for the current frame. If 'skip_mode' is set, no further bit needs to
      read out, and the block is set as:
      - Inter-coded in compound mode;
      - With the nearest forward and backward reference frames;
      - In NEAREST_NEARESTMV mode;
      - In SIMPLE_TRANSLATION motion mode;
      - In COMPOUND_AVERAGE compound type; and
      - Skip set for residual.
      
      Change-Id: I50297f63a81135109332c4a51b516bffd7726777
      f704a1c8
    • Arild Fuldseth (arilfuld)'s avatar
      Implement approved version of FRAME_SIZE experiment · 7193f020
      Arild Fuldseth (arilfuld) authored
      Change-Id: I5b7bb9983e1c613321704a579d459925bd6b9b2b
      7193f020
    • Jonathan Matthews's avatar
      ref-mv: Don't stop scanning when ref-mv stack is full. · ca9132d0
      Jonathan Matthews authored
      This would result in certain motion vectors getting
      lower weights than they deserve, so putting them in
      the wrong position in the stack.
      
      BUG=aomedia:981
      
      Change-Id: I8bd106e97f494f5d3debaf967efcabcd39846726
      ca9132d0
    • Steinar Midtskogen's avatar
      Use alternate CDEF weights also for high bitdepths as for 8 bits · bc75305a
      Steinar Midtskogen authored
      Change-Id: Ie1751b111ce8b21424e5e7b8c7407163d4c81b99
      bc75305a
    • Steinar Midtskogen's avatar
      Shift secondary CDEF strength according to bitdepth · 830d2ac9
      Steinar Midtskogen authored
      BUG=aomedia:926
      
      Change-Id: I3ec5ff501e2a6791ed13dcb0a7f4755b86e3910b
      830d2ac9
    • Steinar Midtskogen's avatar
      Reenable CDEF-singlepass by default · ce9ddaba
      Steinar Midtskogen authored
      This reverts commit 1542157b.
      
      The associated bug (#881) was fixed a couple of weeks ago.
      
      Change-Id: If05627fd32ff9be1c4f425159798cfe46b6b2908
      ce9ddaba
    • Jingning Han's avatar
      Reduce the context model size for base level · 819f45a3
      Jingning Han authored
      Further reduce the context model size needed for base levels down
      to 25 per transform size.
      
      Change-Id: I9df4870d2b027cdb1356de0fc4d5bcc22155319e
      819f45a3
    • Jingning Han's avatar
      Re-design base level context modeling · e775b8bc
      Jingning Han authored
      Reduce the context model size required to code the base level
      syntax values from 42 to 32 per transform size.
      
      Change-Id: I08485fdb563bc5c3323b0e147d69b47c286b9bb5
      e775b8bc
    • Yaowu Xu's avatar
      Help msvc 2017 compiler to generate correct code · 64620cd2
      Yaowu Xu authored
      This loop is wrongly vectorized by the MSVC2017 compiler, this change
      is a work-around for the compiler bug.
      
      Change-Id: Ie4c8403965c3e4cd6d70eb3dbc92148f5272f0ab
      (cherry picked from commit 5b33d7184bf319d9c10e34ef0fdcdd244d2fdb56)
      64620cd2
    • Luc Trudeau's avatar
      [CFL] Fix int type in padding function · e67377b3
      Luc Trudeau authored
      Int was used but should have been int16_t. This does not alter the
      encoder/decoder behavior
      
      Change-Id: I6bfd8a3942e9f9b86cccf10c144fec147e996944
      e67377b3
    • Luc Trudeau's avatar
      [CFL] Change CFL DC_PRED from int to int16_t · d3487722
      Luc Trudeau authored
      This changes serves to illustrate that DC_PRED does not
      need 32 bits. It only needs the specified pixel bit depth.
      Which fits inside a signed 16 bit integer.
      
      Change-Id: Ice062c8c4a794cb4f32a3963278f4a99ef326dda
      d3487722
    • Luc Trudeau's avatar
      [CFL] Merge cfl_predict_block and cfl_build_prediction · 6d3befbd
      Luc Trudeau authored
      With the previous addition of cfl_build_prediction_lbd and
      cfl_build_prediction_hbd there's no need for cfl_build_prediction.
      
      Change-Id: I4246a53378f1e85be40c14433a3084d7120ad060
      6d3befbd
    • Debargha Mukherjee's avatar
      Misc. fixes/cleanups in superres upscaling · 138af6ee
      Debargha Mukherjee authored
      Change-Id: I97f7d390e580b6e1b2b471a6f1a95082323d39aa
      138af6ee
  3. 31 Oct, 2017 2 commits