1. 21 May, 2017 8 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in skip context indexing. · 5e81643d
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      Change-Id: Ibc55671aa5bc3ad272cb8a036f9c4f9621df85ab
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in predict_square_intra_block() · 31bc29f6
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      Change-Id: I86057b85b7d4cd810d87da28f5eedc5b27597e29
    • Timothy B. Terriberry's avatar
      cb4x4: Fix reset_skip_context() without chroma_2x2 · a2d5cdef
      Timothy B. Terriberry authored
      reset_skip_context() was always clearing the entropy contexts for
      all three color planes, using a block size that corresponded with
      the luma plane.
      However, when chroma_2x2 is disabled, then for sub-8x8 luma block
      sizes, the corresponding chroma block size is always 4x4, and the
      skip flag only affects the chroma blocks corresponding to the
      upper-left luma block.
      This patch makes reset_skip_context() reset the contexts that
      actually correspond to the chroma blocks that are skipped (if any).
      It also moves reset_skip_context() to av1_reset_skip_context() in
      blockd.c, because blockd.h gets included before onyx_int.h, which
      declares the required is_chroma_reference() function.
      reset_skip_context() was too large and used in too many places to
      be a reasonable candidate for inlining, anyway.
      AWCY results on objective-1-fast:
      cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0301 |  0.1068 |  0.1463 |   0.0359 | 0.0260 |  0.0347 |     0.0479
      A regression (near the noise range), but without this fix, the line
      buffer size required by the entropy contexts will be doubled.
      Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
    • Timothy B. Terriberry's avatar
      cb4x4: Fix indexing of tx_size counts. · fe0fb1d9
      Timothy B. Terriberry authored
      Create named constants for the minimum TX_SIZE used in the luma
      plane, as well as the minimum allowed TX_SIZE for which we have to
      explicitly code a selection (i.e., one larger than the minimum luma
      Then, use these constants consistently with tx_size_to_depth() to
      index the tx_size counts in FRAME_COUNTS, and also consistently use
      TX_SIZE named constants to index the tx_size_implied counts.
      Failing to index these counts correctly can, e.g., cause tx_mode to
      be chosen incorrectly.
      Change-Id: I706a62a33e2282e67c97a68bade87fb8023ec13b
    • Jingning Han's avatar
      Silent clang warnings on variable init value assignment · 2af277a4
      Jingning Han authored
      Clear the clang warnings when var-tx is enabled.
      Change-Id: I6b005124159b0607ec3284cc2e5ba287745a2541
    • hui su's avatar
      filter-intra: fix memory overflow · 9ef435ac
      hui su authored
      Change-Id: I8beacce0f87b52dfd614bcd8c88426839c4ba51d
    • Debargha Mukherjee's avatar
      Cleans ups and refactoring · d48f573d
      Debargha Mukherjee authored
      Unifies the chroma and luma paths for estimation of the
      restoration parameters.
      No change in bit-stream or results.
      Change-Id: I9998c269cc00ded8b94d0e660b5441a4f9b94848
    • Jingning Han's avatar
      Support level map coeffs in var-tx encoding · 4fe5f67f
      Jingning Han authored
      Use recursive transform block coding order.
      Change-Id: I6d4671fe669e8a1897e034973de181078272cbfd
  2. 20 May, 2017 5 commits
    • hui su's avatar
      DPCM intra coding experiment · b8a6fd6b
      hui su authored
      Encode a block line by line, horizontally or vertically. In the vertical
      mode, each row is predicted by the reconsturcted row above;
      in the horizontal mode, each column is predicted by the reconstructed
      column to the left.
      The DPCM modes are enabled automatically for blocks with horizontal or
      vertical prediction mode, and 1D transform types (ext-tx).
      Change-Id: I133ab6b537fa24a6e314ee1ef1d2fe9bd9d56c13
    • Timothy B. Terriberry's avatar
      new_tokenset: Add missing blockzero_probs for cb4x4. · 90ed98f9
      Timothy B. Terriberry authored
      cb4x4 adds a new TX_2X2 to the TX_SIZES enum, which offsets the
      indexing of blockzero_probs. Add a set of default probabilities for
      this case (simply copied from the TX_4X4 probabilities).
      These will only be used if chroma_2x2 is enabled (though moving the
      other probabilities back to their correct offset will affect all
      other sizes).
      This is an encoder-only change.
      AWCY results on objective-1-fast:
      cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z -> cb4x4-fix-blockzero_probs@2017-05-11T06:29:26.242Z
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1520 | -0.2682 | -0.0972 |  -0.2342 | -0.1638 | -0.1701 |    -0.3278
      Change-Id: I5594f19af2935c8a8d43105a27ad33f6222ed7f2
    • Nathan E. Egge's avatar
      Replace EC_MULTISYMBOL with DAALA_EC || ANS. · cd539518
      Nathan E. Egge authored
      Change-Id: Ia0eb3a3694fdbe9d33548ff4014b704b2f3db86a
    • Thomas Daede's avatar
      Remove SOURCE_VAR_BASED_PARTITION. · 2e300633
      Thomas Daede authored
      Change-Id: I8271a3c18ac9fa53b6304eb5e2a07ba787b05724
    • Jingning Han's avatar
      Resolve enc/dec mismatch in global-motion and chroma-sub8x8 · 11a07949
      Jingning Han authored
      Always use translational motion predictor for sub8x8 blocks.
      Change-Id: I82bbf6c9d2a2e91783774966336f5e2bc87c3d13
  3. 19 May, 2017 22 commits
    • Timothy B. Terriberry's avatar
      chroma_sub8x8: Disable if chroma_2x2 is enabled · 47868079
      Timothy B. Terriberry authored
      Since chroma_sub8x8 is a subset of chroma_2x2, both of these
      experiments should not be turned on at the same time.
      Change-Id: If54e0a3005d6fe26ade274700678558baf977f9c
    • Fergus Simpson's avatar
      frame_superres: Refactor pre-encode frame size set · bc189939
      Fergus Simpson authored
      Before this commit set_frame_size decided on the frame size to use and
      then set it. It has been changed to just take an arbitrary size to make
      it more flexible.
      The decision of what size to use has been moved to the new
      set_scaled_size and existing av1_calculate_superres_size.
      setup_frame_size implements the old logic of getting the scaled size,
      then superres size, then setting the frame to use it.
      This change will make post-encode upscaling possible using
      set_frame_size since it can now be given a target resolution.
      Change-Id: I2f0f20740a54f751bc9963f279d6bcfdfb2722c2
    • Jingning Han's avatar
      Fix compiler errors when tempal signaling is on · 3c4556ce
      Jingning Han authored
      Change-Id: I6d3cdcc3ee39e82edb201833da20b7412cc29038
    • Jingning Han's avatar
      Prevent obmc access 2x2 level prediction block · 90edf660
      Jingning Han authored
      When the above and left neighbor blocks are coded in the sub8x8
      block size, use 4x4 level prediction block to produce the reference
      for obmc.
      Change-Id: Ic19f6e3b3880cebd153078823a3b77b04e28053b
    • Jonathan Matthews's avatar
      Fix highbd DCT and ADST data overwriting issue · 362d0c7b
      Jonathan Matthews authored
      Exposed by Change-Id: I048c6e9cc790520247cc21ae9b92a9c8d84d00a7
      Change-Id: Ia83f8a8efcf0eac4912f247f38887c0dd533da85
    • Jingning Han's avatar
      Fix inter predictor route condition · f28b8cfe
      Jingning Han authored
      Fix a bug introduced in the previous commit that effectively
      disables chroma-sub8x8.
      Change-Id: I521fdc1f15f5bed5272081217e70d1e2549c7ecd
    • Urvang Joshi's avatar
      Add transform test for 64x64. · d4668821
      Urvang Joshi authored
      This is similar to the ones for 32x32, 32x16 etc.
      Change-Id: Iec97f4dc2b0109d39a14e9d8e2d5241a79b9e529
    • Fergus Simpson's avatar
      frame_superres: Set superres scale to 1:1 at init · dac6aff9
      Fergus Simpson authored
      The superres scale was not initialized correctly, which prevented
      regular resizing if CONFIG_FRAME_SUPERRES was set. This patch
      initializes superres scaling to 1:1 so it won't interfere with anything
      Change-Id: I9e3c89e91a4eb66146b9b924e8c19d0ed44a8dc4
    • Debargha Mukherjee's avatar
      Extend color restoration to support guided filters · d23ceead
      Debargha Mukherjee authored
      Frame level guided filters are now used as an option for
      chroma components in addition to the Wiener filter.
      Change-Id: Ie33299d22c15b69741ede55686177b7b8ce8e2b3
    • Jingning Han's avatar
      Unify tokenize_b_arg struct · 6171ae77
      Jingning Han authored
      Use a single struct for tokenization and level map coding.
      Change-Id: Id685992b7db5964ee204c4b0b90379df50c56546
    • Jingning Han's avatar
      Make var-tx support YUV444 format · 52d2b405
      Jingning Han authored
      Properly scale the chroma block size accroding to the YUV format.
      Change-Id: I2c42763394eea6383f81443bf1098fe05f448bd5
    • hui su's avatar
      Filter-intra: make filter tap arrays static · 42b903f6
      hui su authored
      Change-Id: Id6078c5e3c82bc382af7b576133beb9026797a9b
    • Fangwen Fu's avatar
      tempmv_signaling as default · f288951c
      Fangwen Fu authored
      Change-Id: Ib0bb35ff31bf317bb7eb09a1738649137f791589
    • Fangwen Fu's avatar
      dependent tile set to default · 05c38874
      Fangwen Fu authored
      * set dependent tile to be default
      * make dependent tile to work with supertx
      Change-Id: I2bcc73c6e6df46ca0c2fbdae7c4f2944738fff79
    • David Barker's avatar
      ext-inter: Better motion search for compound modes · 8dd9b576
      David Barker authored
      Use a variant of joint_motion_search to improve the motion search
      for compound blocks (both average and masked types) with only one
      NEWMV component.
      Change-Id: I7cae812dced24acde638ae49869e6986557ce7dd
    • Sarah Parker's avatar
      Add configurations for hbd identity transform · 3eed4175
      Sarah Parker authored
      This adds the proper cfgs to av1_{inv/fwd}_txfm1d_cfg for
      the identity transform so all hbd transforms can use
      the same codepath. This has no impact on performance
      since the new identity transforms that correspond with
      the cfgs are not yet being called. Once this is checked in,
      we should be able to delete all deprecated transform functions
      and have a single code flow for all hbd transforms.
      Change-Id: I3d1bfbc8bc29b367e8ddf7dcd27525af0bd31067
    • Jingning Han's avatar
      Remove unused macro defs · f2b87bd3
      Jingning Han authored
      Change-Id: I33e78f2677083df7b7385f4a2989e9d599bbf5c7
    • Jingning Han's avatar
      Remove sub8x8_mc experimental flag · 110f7d4e
      Jingning Han authored
      The re-designed sub8x8 coding block system settles. As part of the
      research attempt, the sub8x8-mc experiment can now be removed.
      Change-Id: Icb1bf52471c560c1357e9121fbc5aa78ed854421
    • Jingning Han's avatar
      Resolve compiler errors in lv-map and var-tx · 5ab7ed41
      Jingning Han authored
      Change-Id: I1939cfe48570d9c797fd29d12ebcc9213388951a
    • Fergus Simpson's avatar
      resize-refactor: Make av1_set_size_literal use int · 0a30c882
      Fergus Simpson authored
      av1_set_size_literal took unsigned ints as its size inputs. This was
      inconsistent with elsewhere in the code base so this change makes it
      take signed ints instead.
      Change-Id: I5f39f813714f5d6cb1fc93f928f33b3633b653ec
    • Jingning Han's avatar
      Guard the OBMC not to use 2x2 level prediction block · 6247103b
      Jingning Han authored
      Limit the minimum prediction block size for chroma component to
      be 4x4 in OBMC. This resolves an enc/dec mismatch when all the
      experiments are turned on.
      Change-Id: I3151912387943b03ef5c9aa2d10fe13d15c79cf7
    • Yue Chen's avatar
      Enable 1:4/4:1 transform for 8x16 and 16x8 luma blocks · 56e226e3
      Yue Chen authored
      It gives 0.1% gain on lowres and midres
      Change-Id: I555a492a68571c525713840d73aa5614fe80a87d
  4. 18 May, 2017 5 commits
    • David Barker's avatar
      ext-inter: Use joint_motion_search for masked compounds · c155e018
      David Barker authored
      Add functions which take both components of a masked compound and
      compute the resulting SAD/SSE. Extend joint_motion_search to understand
      masked compounds, and use it to evaluate NEW_NEWMV modes.
      Change-Id: I782199a20d119a6c61c6567df157508125ac7ce7
    • Alex Converse's avatar
      intrabc: Allow displacement to the left in the same superblock row · 861d7071
      Alex Converse authored
      -9.1 BD-RATE PSNR on wikipedia_420 1st keyframe
      -1.04 BD-RATE PSNR on twitch-1 set 1st keyframe
      Change-Id: Ia9cc5b26bc587bcc2375d137768ac3af3238fe0c
    • Yue Chen's avatar
      Remove full interintra mode set & adjust probs of the simplified set · 94d84461
      Yue Chen authored
      Improved the performance a little bit compared to using the full set
      Change-Id: I28a96459fa77d7e1d5c101d162faa2effd525341
    • Sarah Parker's avatar
      Refactor hbd txfm configurations to be 1D · eec47e65
      Sarah Parker authored
      The hbd transform configurations were originally written for all possible
      2d transforms. Now that there are many more possible 2d transforms
      due to EXT_TX and RECT_TX, it is simpler to write the cfg for the
      4 1D transform types and compose them to make all new possible transform
      types. This will allow for an easier integration of the identity transform
      for EXT_TX and rectangular transforms for RECT_TX into the current
      hbd transform codepath and facilitate the removal of obsolete transforms.
      This has no impact on performance.
      Change-Id: I1e217bcd217fd637b1df94fae62d9c59a0523c1a
    • Debargha Mukherjee's avatar
      Remove NEAREST_NEARMV / NEAR_NEARESTMV modes · bb6e1343
      Debargha Mukherjee authored
      Change-Id: I640cf08ac583ff5092a18e81cd0e33f05609db6b