1. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  2. 20 Jun, 2017 3 commits
  3. 19 Jun, 2017 2 commits
    • Joe Young's avatar
      [intra-edge] Convert 4x4 VP9 to ext-intra; upsample edge samples · 830d4ce4
      Joe Young authored
      Updates to intra-edge experiment
      
      - Convert VP9-style intra pred to Ext-intra style
      - Upsample edge predictors by 2x based on angle and edge size
      
      BD-rate, 1-kf AWCY
        360p:  -0.11%
        720p:  -0.54
        1080p: -0.96
      
      Change-Id: Ib73805d31d5d286e607a7ee7470fcbdf11edbbff
      830d4ce4
    • Luc Trudeau's avatar
      [CFL] Compute Luma Average Over Partition Unit · 3e18e4ae
      Luc Trudeau authored
      Extract the compution of the luma reconstructed average out of cfl_load
      and into cfl_compute_average. The reconstructed luma average is stored
      in the CFL_CONTEXT to avoid computing it for each transform block and
      for each plane.
      
      Results on subset1 (compared to 803bea26 with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0474 | -0.1486 | -0.2931 |  -0.0358 | -0.0397 | -0.0127 |    -0.1162
      
      Change-Id: I9e34af0fe5961ce8dbe70cb80aea2a16221d0d92
      3e18e4ae
  4. 14 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Fix always use partition size to compute DC_PRED · 803bea26
      Luc Trudeau authored
      plane_bsize is now computed properly. This also includes support for the
      special case of blocks < 4X4
      
      Results on subset1 (compared to 8e689e4b with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0218 | -0.2328 | -0.2555 |  -0.0230 | -0.0379 | -0.0723 |    -0.1205
      
      Change-Id: I6ec87d818d8df6a40ecf3bb1b86954e59c952930
      803bea26
  5. 06 Jun, 2017 1 commit
    • Urvang Joshi's avatar
      Add a new experiment "rect-intra-pred". · 766a389b
      Urvang Joshi authored
      Earlier, intra prediction for rectangular blocks was performed by
      running two steps of prediction on square sub-blocks.
      
      With this experiment, we do proper intra prediction for rectangular
      blocks. This ensures that we make use of all available neighboring
      pixels especially for directional modes. For this, all the intra
      predictors were updated to work with rectangular transform block sizes.
      
      Performance improvements are small but free of cost:
      
      All Intra frames:
      lowres: -0.126
      midres: -0.154
      
      Video Overall:
      lowres: -0.043
      midres: -0.100
      
      [Could not get AWCY results due to a backlog.]
      
      BUG=aomedia:551
      
      Change-Id: I7936e91b171d5c246cb0a4ea470a981a013892e6
      766a389b
  6. 02 Jun, 2017 1 commit
    • Joe Young's avatar
      [intra-edge] Use 5-tap filter · 3be70f72
      Joe Young authored
      For intra edge filtering experiment, replace the 2x iteration
      (5-6-5) filter with a 5-tap filter (2-4-4-4-2).
      
      BDrate (1 key-frame) for this change:
      cif:    +0.02%
      midres: +0.04
      720p:   -0.01
      1080p:  -0.03
      4k:     -0.01
      
      BDrate (1 key-frame) for intra-edge experiment:
      (05/31, disable rect-tx, ext-tx, delta-q, ext-delta-q)
      
                1 key-frame     60 frames
               PSNR   SSIM     PSNR  SSIM
      cif:    -0.02   -0.01   -0.03  -0.01
      midres: -0.02   -0.02   -0.05  -0.10
      720p:   -0.36   -0.39   -0.05  -0.06
      1080p:  -0.75   -0.88   -0.22  -0.27
      4k:     -0.91   -1.12   -0.45  -0.54
      
      Change-Id: I834037e662b4483d4d6bdceb1c1624d56ba293a4
      3be70f72
  7. 01 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
  8. 21 May, 2017 4 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Elide special cases cb4x4 doesn't need · 9edb72c9
      Timothy B. Terriberry authored
      These conditions in has_top_right() are never true when cb4x4 is
      enabled.
      
      The corresponding check in has_bottom_left() is already behind a
      similar #if.
      
      This is needed by a subsequent patch to move sub-4x4 block sizes
      behind their own configuration flag, since that changes the value
      of bw_unit, which might cause the condition to become true when it
      should not be.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I648654dfc265f911d83668d94dc927ebc0c70771
      9edb72c9
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in has_bottom_left() · 47de4660
      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: Iff437425f2c5abd02a82ff1c7c8002aefc2f75a6
      47de4660
    • 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
      31bc29f6
    • hui su's avatar
      filter-intra: fix memory overflow · 9ef435ac
      hui su authored
      BUG=aomedia:545
      
      Change-Id: I8beacce0f87b52dfd614bcd8c88426839c4ba51d
      9ef435ac
  9. 19 May, 2017 1 commit
  10. 17 May, 2017 1 commit
  11. 16 May, 2017 2 commits
    • hui su's avatar
      Palette: use uint16_t to store palette colors · fa4ff85b
      hui su authored
      Harmonize the low-bitdepth and high-bitdepth.
      
      Change-Id: I533f717ca189a5e577719821ea5aea940e3b6223
      fa4ff85b
    • Joe Young's avatar
      [intra-edge] Filter intra edge samples · 12c0bc03
      Joe Young authored
      For ext-intra directional modes, filter intra edge samples
      dependent on block size and prediction angle.
      
      Congiguration:
      ./configure --enable-experimental --enable-ext-intra
        --enable-internal-stats --disable-cdef --disable-delta-q
      
      Coding gain (1 frame Intra):
      cif:    -0.03%
      midres: -0.01
      720p:   -0.65
      1080p:  -0.83
      4k:     -1.19
      
      Change-Id: I372bfc7614f6a07fe1d8e7b61bd0b6660f9fb4a1
      12c0bc03
  12. 15 May, 2017 1 commit
    • Yue Chen's avatar
      Fix filter_intra overflow · 7bfa8677
      Yue Chen authored
      (1) clipping output of intra filter right away to stop
      unreasonable pixel values from propogating.
      (2) fix wrong filter coefficients
      
      Bug=aomedia:418
      
      Change-Id: I2620034ad03b499afb64da6cadb17fc1aa221c44
      7bfa8677
  13. 12 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] move cfl_idx_to_alpha to header · 04120190
      Luc Trudeau authored
      Move cfl_idx_to_alpha in the header to facilitate inlining.
      Remove the forward MB_MODE_INFO forward declaration
      
      Change-Id: Id33fb0228d88b6285252843e2345a0d3ae875cd2
      04120190
  14. 11 May, 2017 1 commit
  15. 08 May, 2017 1 commit
    • Urvang Joshi's avatar
      Add a new experiment SMOOTH_HV. · e6ca8e83
      Urvang Joshi authored
      This experiment extends ALT_INTRA by adding two new modes:
      smooth horizontal and smooth vertical.
      
      Improvement on *intra frames* in BDRate (PSNR):
      ===============================================
      
      AWCY (high latency): -0.46%
      (Also, -1.0% or more on PSNR Cb,Cr and APSNR Cb,Cr).
      
      AWCY (low latency): -0.43%
      (Also, -0.88% to -0.94% on PSNR Cb,Cr and APSNR Cb,Cr).
      
      Google sets:
      lowres: -0.454
      midres: -0.484
      hdres:  -0.525
      
      Improvement on *video overall* in BDRate (PSNR):
      ================================================
      
      AWCY (high latency): -0.15%
      
      Google sets:
      lowres: -0.085
      midres: -0.079
      
      Change-Id: I9f4e7c1b8ded1fe244c72838f336103ccc715d50
      e6ca8e83
  16. 06 May, 2017 1 commit
  17. 05 May, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Alpha signaling · f533400a
      Luc Trudeau authored
      Writes and reads alpha to and from the bitstream.
      
      A special case is needed on the encoder side to handle prediction block
      skips. Since whether or not a prediction block is skipped during CfL, a
      rollback is required if the block was skipped and the alpha index was
      not zero. The advantage of this is that no signaling is required when
      the prediction block is skipped as it is assumed tha the alpha index is
      zero.
      
      A encode facade is added to the intra prediction facade as CfL requires
      special encoder side operations.
      
      Change-Id: Ic3b11d0fdbd51389d862112eb09d8785127a6b06
      f533400a
  18. 03 May, 2017 1 commit
    • Jingning Han's avatar
      Account for sub8x8 chroma intra boundary condition · 3da18d60
      Jingning Han authored
      Properly account for the intra boundary condition for sub8x8
      chroma components in the modified chroma-2x2 framework. This fixes
      a rare enc/dec mismatch issue when chroma-sub8x8 is turned on.
      
      Change-Id: I058a2fb855a491bf604277f4c82169c1b55424fa
      3da18d60
  19. 02 May, 2017 1 commit
  20. 29 Apr, 2017 2 commits
  21. 28 Apr, 2017 1 commit
  22. 27 Apr, 2017 1 commit
    • hui su's avatar
      Refactor ext-intra · 0a6731f5
      hui su authored
      Remove the code about block size dependent angle steps and deltas,
      as they are modefied to be the same for all blocks in c81ea6e0.
      
      BUG=aomedia:442
      
      Change-Id: I54607dd752ef895c1418f979410b14c02fc9ce22
      0a6731f5
  23. 24 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Custom block-level DC_PRED · f8164157
      Luc Trudeau authored
      Adds the CfL experiment flag and computes a block-level DC_PRED that is
      required by CfL in order to compute alpha_cb and alpha_cr.
      
      The rate-distorsion impact of computing DC_PRED at the prediction block level
      for chroma planes is rather small
      
      Subset 1:
      master_no_cdef@2017-04-18T20:37:05.712Z
        -> block_DCPRED_no_cdef@2017-04-18T20:38:07.381
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0712 |  0.0337 | -0.1692 |   0.0693 | 0.0814 |  0.0710 |    -0.0063
      Note: CDEF was disabled because of problematic asserts.
      
      Change-Id: I44d1cde8605b108366f4bd4cedbf5159dbbb5880
      f8164157
  24. 12 Apr, 2017 1 commit
  25. 11 Apr, 2017 2 commits
  26. 10 Apr, 2017 1 commit
    • Angie Chiang's avatar
      Use block_idx rather than block_raster_idx · 752ccce7
      Angie Chiang authored
      1) block_raster_idx is actually raster order only when tx_size
      is TX_4x8.
      It's very specific, so we should put it near to the place it's
      actually used.
      
      2) Sync the meaning of block_idx on encoder/decoder sides
      
      Change-Id: I7d37a992cb773503e29f9c0d9d2586e580aa6173
      752ccce7
  27. 07 Apr, 2017 2 commits
  28. 06 Apr, 2017 1 commit
    • Urvang Joshi's avatar
      av1_has_bottom() Bugfix. · 1c247974
      Urvang Joshi authored
      This function was incorrectly using transform width instead of height.
      The bug wasn't caught yet, because all calls to this function currently
      use square transform sizes only.
      
      Change-Id: Id206c64aa26a8deecbbf90844220ad2f93230c15
      1c247974
  29. 03 Apr, 2017 1 commit
  30. 20 Mar, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add config flags and macros to control ext-inter · 37f6fe61
      Debargha Mukherjee authored
      Adds a dependent config flag 'interintra' to turn on/off interintra
      modes altogether.
      Adds a dependent config flag 'wedge' to turn on/off wedge compound
      for both interinter and interintra.
      
      Adds another macro to change wedge predictors to use
      only 0, 1/2, or 1 weights.
      
      From now, use
      --enable-ext-inter --enable-wedge --enable-interintra to get the
      same behavior as the old --enable-ext-inter.
      
      Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
      37f6fe61