1. 23 Feb, 2017 2 commits
    • Jingning Han's avatar
      Add chroma 2x2 block experiment · 31b6a4f9
      Jingning Han authored
      Support the use of 2x2 prediction and transform block size for
      chroma components. This experiment builds on top of cb4x4. It
      brings back the loss in performance gains due to 4x4 chroma
      component constrain. The coding gains for lowres are up from 1.5%
      to 2.5%.
      
      Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
      31b6a4f9
    • Jingning Han's avatar
      Fix bottom ref condition for intra prediction in cb4x4 · f0179c3c
      Jingning Han authored
      Resolve a rare enc/dec mismatch issue triggered by the 4x4 chroma
      block size in sub8x8 block coding.
      
      To avoid using 2x2 chroma block size, it always uses the top-left
      4x4 luma block coding information to predict the 4x4 chroma block.
      The rest 3 4x4 luma blocks will be coded independently without
      coding the collocated chroma blocks.
      
      The compression performance gains are 1.45% for lowres set (down
      from 2.4% of the original cb4x4 design).
      
      Change-Id: Iff560fcab172ed4219434d5174c4d8dfbbb04135
      f0179c3c
  2. 22 Feb, 2017 1 commit
    • Jingning Han's avatar
      Fix chroma intra prediction reference check · edc62f74
      Jingning Han authored
      Fix the intra prediction boundary availability check for chroma
      components. Such intricacy is due to the re-schedule of sub8x8
      chroma coding block to avoid 2x2 prediction and transform size.
      
      Change-Id: I4a2dff8743cf78af8dfb90265019e8d1222ed734
      edc62f74
  3. 16 Feb, 2017 1 commit
    • Joe Young's avatar
      [ext-intra] fix bug in sample interpolation when dy < 0 · e568e6f0
      Joe Young authored
      When the "dy" variable is between -1 and 0 (base2 == -1)
      we should interpolate between the upper-left(-1,-1) and left(-1,0)
      samples, instead of just taking the left sample.
      
      Coding gain improves a bit with this change.
      
      BUG=aomedia:357
      
      Change-Id: If520f71b22115e79120499c21f8d6925c1fa24be
      e568e6f0
  4. 27 Jan, 2017 1 commit
    • Jingning Han's avatar
      Fix ext-partition/type in cb4x4 mode · 86e27791
      Jingning Han authored
      This commit fixes the encoding/decoding mismatch issue when
      ext-partition and ext-partition-type are both turned on in cb4x4
      mode.
      
      BUG=aomedia:336
      
      Change-Id: I4d6ad5863c9d3bc8e3a41c259b8b39f130164790
      86e27791
  5. 26 Jan, 2017 1 commit
    • Urvang Joshi's avatar
      Palette: Don't store tokens for pixels outside image boundary. · 56ba91bb
      Urvang Joshi authored
      If part of a block falls outside right and/or bottom image boundary,
      then only store tokens for the part of it within the boundary.
      
      Also, consider only the part of the block within the boundary when
      calculating the number of colors in the image, deciding the base
      colors for palette, RD calculation etc.
      
      The part of color map corresponding to pixels outside the image
      boundary is padded with color indices copied from same row/column.
      This behavior is similar to how pixels outside the boundary are padded.
      
      For screen_content set, this is improves compression performance by
      0.038 overall. One clip, in particular, has a significant gain of 0.8.
      
      Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
      56ba91bb
  6. 24 Jan, 2017 1 commit
    • David Barker's avatar
      Make ext-inter use new rectangular intra predictor · 839467f4
      David Barker authored
      Now that https://aomedia-review.googlesource.com/#/c/6729/
      has been merged, build_intra_predictors_for_interintra() is
      now redundant, so replace it by a direct call to
      av1_predict_intra_block() and remove the old function.
      
      Reset rect_interintra back to 1.
      
      To do this, we need to make the intra predictor take a
      BLOCK_SIZE instead of a TX_SIZE. This is because we need to
      be able to predict 32x64 and 64x32 blocks, but there is no
      TX_32X64 or TX_64X32.
      
      No effect on output or performance.
      
      Change-Id: I8c185a211c97a85012cc54ec293c785a693608ed
      839467f4
  7. 23 Jan, 2017 1 commit
    • Jingning Han's avatar
      Support filter-intra in cb4x4 mode · 48b1cb35
      Jingning Han authored
      This commit resolves an enc/dec mismatch issue when both filter-intra
      and cb4x4 modes are enabled.
      
      BUG=aomedia:253
      
      Change-Id: I4026d93c00a819f2ce69aedba9d34a774319acbf
      48b1cb35
  8. 21 Jan, 2017 1 commit
    • Jingning Han's avatar
      Resolve coding failure in var-tx · 07ef967d
      Jingning Han authored
      Fix an encoding failure issue when var-tx is enabled, while ext-tx
      and rect-tx are disabled. This doesn't change coding statistics
      when all are enabled.
      
      Change-Id: I4b32387a0a1497380980f8087832aaf6467cdcbe
      07ef967d
  9. 20 Jan, 2017 2 commits
  10. 18 Jan, 2017 1 commit
    • Urvang Joshi's avatar
      Enable rectangular transforms for Intra also. · feb925fe
      Urvang Joshi authored
      These are under EXT_TX + RECT_TX experiment combo.
      
      Results
      =======
      
      Derf Set:
      --------
      All Intra frames: 1.8% avg improvement (and 1.78% BD-rate improvement)
      Video: 0.230% avg improvement (and 0.262% BD-rate improvement)
      
      Objective-1-fast set
      --------------------
      Video: 0.52 PSNR improvement
      
      Change-Id: I1893465929858e38419f327752dc61c19b96b997
      feb925fe
  11. 16 Dec, 2016 1 commit
  12. 15 Dec, 2016 1 commit
  13. 14 Dec, 2016 1 commit
    • hui su's avatar
      Refactor ext-intra · 45dc597a
      hui su authored
      Miscellaneous changes. Mostly code simplification and cleanup.
      
      Make luma max angle delta depend on block size, which is the
      way it was before the nextgenv2 branch merge.
      
      Also some fixes for compatibility of ext-intra and alt-intra.
      
      Change-Id: I2ce869e6ba7dee765a8dc4802f5e88040db3df22
      45dc597a
  14. 09 Dec, 2016 3 commits
    • hui su's avatar
      Add intra-interp experiment flag · eda3d764
      hui su authored
      intra-interp experiment allows intra prediction to use different
      interpolation filters. It was part of the ext-intra in the nextgenv2
      branch.
      
      Change-Id: I27ab692494dc79bb92e457dbf9a72988577f1c6d
      eda3d764
    • Jingning Han's avatar
      Remove temporary intra condition check in cb4x4 mode · 54e24517
      Jingning Han authored
      The previous refactoring CLs resolve all the potential issue
      related to these two conditions. It is safe to remove them now
      from the cb4x4 mode.
      
      Change-Id: Ieeb1ca2804318c1f46b60c041538f8ca5f6ba0e7
      54e24517
    • Jingning Han's avatar
      Rework av1_has_right() and av1_has_bottom() · 5f7bc741
      Jingning Han authored
      Replace the 4x4 block counting with minimum transform block size
      counting. This retains identical coding statistics.
      
      Change-Id: I13ce6b5b62641304b0ff1c6efd34c6a590195792
      5f7bc741
  15. 07 Dec, 2016 1 commit
  16. 06 Dec, 2016 1 commit
    • Jingning Han's avatar
      Handle the block offset using min transform block size · 81492267
      Jingning Han authored
      Map the block offset to pixel positions in the unit of minimum
      transform block size. This change retains the same coding
      statistics. The encoding speed is slightly faster (<1%).
      
      Change-Id: I2641d2b1e317ef4cdf477718c446ef025b8eef41
      81492267
  17. 02 Dec, 2016 3 commits
  18. 01 Dec, 2016 2 commits
    • Jingning Han's avatar
      Add 2x2 block unit syntax · f1702dde
      Jingning Han authored
      Add 2x2 block size syntax to the codec system. It prepares for the
      4x4 coding block unit for 420 format. This change retains the same
      coding statistics.
      
      Change-Id: If8e9a31bd6b4b75bc994539dc4dd8021d455ba57
      f1702dde
    • hui su's avatar
      Make alt-intra work with ext-intra · 0c628e64
      hui su authored
      Change-Id: I2a814ba878a57c6b73f8f9e29bea6c7edfe7c789
      0c628e64
  19. 28 Nov, 2016 1 commit
    • Urvang Joshi's avatar
      Add a new intra prediction mode "smooth". · 6be4a54b
      Urvang Joshi authored
      This is added as part of ALT_INTRA experiment.
      
      This uses interpolation between top row and estimated bottom row; as
      well as left column and estimated right column to generate the
      predicted block.The interpolation is done using a predefined weight
      array.
      
      Based on experiments, the currently chosen weight array was created
      to represent a quadratic curve, but can be tuned further if needed.
      
      Improvement from baseline on Derf set:
      ALL Keyframes: 1.279%
      
      Improvement from existing ALT_INTRA:
      ALL Keyframes: 1.146%
      
      Change-Id: I12637fa1b91bd836f1c59b27d6caee2004acbdd4
      6be4a54b
  20. 22 Nov, 2016 3 commits
  21. 21 Nov, 2016 1 commit
  22. 12 Nov, 2016 1 commit
  23. 03 Nov, 2016 2 commits
  24. 24 Oct, 2016 2 commits
  25. 21 Oct, 2016 1 commit
  26. 20 Oct, 2016 2 commits
    • hui su's avatar
      Remove av1/common/intra_filters.h · 344b643d
      hui su authored
      Use a single header reconintra.h for all intra prediction
      related codes.
      
      Change-Id: Ib869447f8c482b534c890eab673e81ff830e8d85
      344b643d
    • hui su's avatar
      Seperate FILTER_INTRA from EXT_INTRA experiment · 5db9743f
      hui su authored
      Prepare for the av1/nextgenv2 merge.
      
      Coding gain (%):
      
                     lowres     midres
      ext-intra       0.69       0.97
      filter-intra    0.67       0.83
      both            1.05       1.48
      
      Change-Id: Ia24d6fafb3e484c4f92192e0b7eee5e39f4f4ee6
      5db9743f
  27. 19 Oct, 2016 2 commits
    • Brennan Shacklett's avatar
      Temporary fix for 4X8 block intra prediction. · 7523a7ec
      Brennan Shacklett authored
      Currently the RD loop traverses 4X8 blocks in inverted N order while
      the bitstream stores blocks smaller than 8x8 in Z order. This causes a
      discrepancy where the RD loop reads uninitialized data while
      performing intra prediction.  As a temporary fix simply disable the
      use of the extended right edge for 4X8 blocks, until the bitstream can
      be changed to match the logical structure of the blocks.
      
      Change-Id: I44a9e4fc1a15cd551a7b38c3c1227bc5dac77e9a
      7523a7ec
    • Urvang Joshi's avatar
      Fix warnings reported by -Wshadow: Part2b: more from av1 directory · 368fbc95
      Urvang Joshi authored
      From code only part of nextgenv2 (and not aomedia)
      
      Change-Id: I21f7478a59d525dff23747efe5238ded16b743d2
      368fbc95