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. 19 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
  3. 13 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder/decoder pipeline to support single ref comp modes · 85b66463
      Zoe Liu authored
      Now the single ref comp mode should work with WEDGE and
      COMPOUND_SEGMENT. For motion_var, the OBMC_CAUSAL mode uses the 2nd
      predictor if the neighboring block is single ref comp mode predicted.
      
      This patch removes the mode of SR_NEAREST_NEWMV and leaves four
      single ref comp modes in total:
      
      SR_NEAREST_NEARMV
      SR_NEAR_NEWMV
      SR_ZERO_NEWMV
      SR_NEW_NEWMV
      
      Change-Id: If6140455771f0f1a3b947766eccf82f23cc6b67a
      85b66463
  4. 12 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder/decoder support for var-refs · 7b1ec7a9
      Zoe Liu authored
      Check the availability of the reference frames at the frame level at
      both encoder and decoder, and if a reference frame is not available
      for a specific video frame, remove the signaling of such reference
      frame info at the block level.
      
      This patch adds the consideration of the bit saving inside the RD
      optimization loop.
      
      Change-Id: I4c22f1b843b21c7d2b47e118c99c3ad615a3d4e4
      7b1ec7a9
  5. 08 Jun, 2017 1 commit
    • Yushin Cho's avatar
      Refactor sub8x8 tx size RD for daala-dist · 30a2c5f2
      Yushin Cho authored
      For a tx size RD search with partition size >= 8x8 and tx size < 8x8,
      daala-dist function is applied to the whole partition after all tx blocks are encoded
      instead of each 8x8 sub block of the partition.
      
      Change-Id: I27d9e2960aa641f550096e32ebcdf8dfb4de79a6
      30a2c5f2
  6. 01 Jun, 2017 2 commits
    • Yushin Cho's avatar
      Fix daala-dist for cb4x4 · 63927c43
      Yushin Cho authored
      The place where av1_daala_dist() is applied for sub8x8 partition is
      moved from sub8x8 mode decision functions to rd_pick_partition().
      
      BD-Rate change by daala-dist with '--disable-var-tx' is:
      (AWCY, objective-1-fast, high delay mode)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686
      
      In MSE probe mode:
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546
      
      Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
      63927c43
    • 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
  7. 31 May, 2017 1 commit
    • Jingning Han's avatar
      Rework txfm_above and txfm_left context offset · 331662e9
      Jingning Han authored
      Make the txfm_above and txfm_left be processed in the unit of
      miniumum transform block size. Scale the transform block step
      size with respect to the mode_info step size.
      
      Change-Id: Iee4421e005db742cd4ff7899215560063e5f68e5
      331662e9
  8. 24 May, 2017 1 commit
    • Thomas Davies's avatar
      AOM_QM: redesign matrices and support CB_4X4 and RECT-TX. · 6675adff
      Thomas Davies authored
      All matrices are derived by subsampling 32x32 and 32x16 matrices.
      Inter and intra matrices now use the same matrix set.
      
      BUG=aomedia:520
      
      AWCY results for default setting (qm-min=5, qm-max=9):
      
        PSNR  | PSNR Cb | PSNR Cr | PSNR HVS | SSIM  | MS SSIM | CIEDE 2000
         2.75 |  7.98   |    -    |  -3.52   |  0.73 |   -2.21 |   4.22
      
      Change-Id: I8414d19eaf50cfe80d4fe2290da6cdf4ebb406cb
      6675adff
  9. 23 May, 2017 1 commit
  10. 21 May, 2017 2 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
      a2d5cdef
    • 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
      TX_SIZE).
      
      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
      fe0fb1d9
  11. 19 May, 2017 1 commit
  12. 18 May, 2017 1 commit
  13. 17 May, 2017 2 commits
  14. 16 May, 2017 1 commit
  15. 15 May, 2017 1 commit
    • Yi Luo's avatar
      Integrate partial IDCT to adapt_scan · 2ab63cb7
      Yi Luo authored
      - Add eob delivery in av1_first_pass().
      - Fix eob threshold pointer copy.
      - Change local functions in IDCT to static.
      
      Change-Id: I1c95e8f899088773f063fe6be7f26a5f96864644
      2ab63cb7
  16. 11 May, 2017 2 commits
  17. 10 May, 2017 2 commits
  18. 09 May, 2017 2 commits
    • Alex Converse's avatar
      intrabc: Allow ext_tx transforms · daa15e4e
      Alex Converse authored
      objective-1-fast results:
      
      sequence       PSNR    PSNR HVS    SSIM    CIEDE   APSNR   MS SSIM VMAF
      average        -0.02    0.01       -0.02   -0.03   -0.02    0.00    0.06
      1080p           0.02    0.01        0.03    0.00    0.01    0.02    0.09
      1080p-screen   -0.32   -0.28       -0.32   -0.44   -0.31   -0.27    0.00
      360p            0.06    0.14        0.10    0.10    0.08    0.11    0.22
      720p            0.00    0.04       -0.05    0.01    0.00   -0.01   -0.10
      wikipedia_420  -1.04   -0.95       -1.05   -1.30   -1.03   -0.88   -0.29
      
      Change-Id: I30ce8a869daf1c3ed539ffed552786cbb785e7d0
      daa15e4e
    • Zoe Liu's avatar
      Remove the incorrect comment · dd0d4264
      Zoe Liu authored
      The element of "idx" in the data structure of RefBuffer is a
      connection between AV1_COMMON::RefBuffer and
      AV1_COMMON::BufferPool::RefCntBuffer.
      
      It is being used currently in many places in both the encoder and the
      decoder. "idx" is not only used to track whether a reference buffer is
      alive, but also serve as the connection to RefCntBuffer which contains
      info that RefBuffer itself cannot access.
      
      Change-Id: I5ccdb9c2afe840d04a025da359a704f5fc216ddd
      dd0d4264
  19. 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
  20. 05 May, 2017 2 commits
    • 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
    • Sebastien Alaiwan's avatar
      Merge ref-mv into codebase · e140c508
      Sebastien Alaiwan authored
      Change-Id: I96e386678f6227f3ca735c9be2725cb9795b3296
      e140c508
  21. 04 May, 2017 3 commits
  22. 03 May, 2017 2 commits
  23. 02 May, 2017 1 commit
  24. 29 Apr, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Load luma as prediction for chroma · baeb3758
      Luc Trudeau authored
      Loads the stored reconstructed luma pixels for each trasnform block
      inside a prediction block. Supports 4:4:4 and 4:2:0 chroma subsampling
      modes.
      
      The CFL_CTX struct is now in cfl.h with appropriate forward declarations
      
      Change-Id: I44c117899414a10a8318d14ecaed402f803de97d
      baeb3758
  25. 28 Apr, 2017 1 commit
  26. 27 Apr, 2017 4 commits
    • Zoe Liu's avatar
      Add new compound modes using single reference · 239f06b3
      Zoe Liu authored
      The hookup with the encoder-decoder pipeline will be in the following
      CLs. This is under the experiment of compound-singleref, with ext-
      inter enabled.
      
      Change-Id: I6523a1a6525539eb7c6aa6c5e11724a694e8bf6c
      239f06b3
    • 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
    • Thomas Daede's avatar
      Cleanup unused variable with ext-tx experiment. · b7e72f38
      Thomas Daede authored
      BUG=aomedia:446
      
      Change-Id: I85433af2295c9610184ab5df812eabd8522689f6
      b7e72f38
    • Luc Trudeau's avatar
      [CFL] Store luma as prediction for chroma · e3980281
      Luc Trudeau authored
      Stores the reconstructed luma pixels for each transform block inside a
      prediction block. Rectangular transform blocks are supported.
      
      As for RDO, after all the modes have been tested for luma, an extra
      encoding is perform in order to store the reconstructed pixel values of
      the best mode. These values are then used for RDO on the chromatic
      planes.
      
      Change-Id: I354d9827e32fd41065f1b2ce02832d943a6fa156
      e3980281
  27. 26 Apr, 2017 1 commit