1. 21 May, 2017 6 commits
    • 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 7 commits