1. 15 Aug, 2017 6 commits
    • David Barker's avatar
      A few fixes for ext-inter · 9b75e210
      David Barker authored
      * When wedge and compound-segment are disabled, we don't use
        compound_type_cdf, but it still gets copied around, averaged, etc.
        It's slightly nicer to avoid that when it isn't necessary.
      
      * Fix an anomaly with cb4x4: We had (schematically)
        'if (bsize < 8X8 && CB4X4)', which is backwards when compared to
        other similar conditions elsewhere in the code.
        Change this to 'if (bsize < 8X8 && !CB4X4)" to match other code.
      
      Change-Id: If802cf4f305c30cd642d0d5dd6610b547b52a027
      9b75e210
    • hui su's avatar
      Make q_adpt_probs work with CDF · ef125a07
      hui su authored
      Replace probablity tables with CDF tables.
      
      Change-Id: I21e12dce7f1a3fc7aa84805e890342445e68ce29
      ef125a07
    • Urvang Joshi's avatar
      Remove ALT_INTRA flag. · 93b543ab
      Urvang Joshi authored
      This experiment has been adopted as it has been cleared by Tapas.
      
      Change-Id: I0682face60f62dd43091efa0a92d09d846396850
      93b543ab
    • Debargha Mukherjee's avatar
      Miscellaneous fixes for resize/frame-superres · 17e7b081
      Debargha Mukherjee authored
      1. Fixes logic for disabling global motion w/ resize. Turns off
      conditional write/read of global parameters since it does not
      work currenlty. To be fixed later.
      2. Fixes call for av1_scale_if_required in encoder_frame_with_resize
      function
      3. Remove asserts for the scaled convolve functions
      
      Change-Id: I6a0f18b5ab5cc819bc27ef9fc2f28b0e391643a0
      17e7b081
    • Rupert Swarbrick's avatar
      Replace magic 32/64 constants with 8 * MI_SIZE · 57486c5f
      Rupert Swarbrick authored
      These multiplications convert from mi units to subpels (1/8th pixel)
      and weren't correct if MI_SIZE was 4 rather than 8. This patch
      rephrases the multiplications as x * 8 * MI_SIZE or x/2 * 8 *
      MI_SIZE (for obmc calculations where you need the middle of a block).
      
      Change-Id: I7997b1221ac417a223a94f1f26a86b6acd27c5da
      57486c5f
    • Monty Montgomery's avatar
      Add CONFIG_DAALA_DCT32 experiment. · 2cb52baf
      Monty Montgomery authored
      This experiment replaces the 32-point Type-II DCT and 32-point
      Type-IV DST scaling vp9 transforms with the 32-point orthonormal
      Daala transforms.
      
      subset-1:
      
          monty-square-baseline-s1-F3@2017-08-02T11:50:51.375Z ->
            monty-square-dct32-s1-F3@2017-08-02T11:50:18.859Z
      
            PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
          0.0000 |  0.0115 | -0.1044 |  -0.0185 | -0.0069 | -0.0603 |     0.0555
      
      objective-1-fast (4 frames):
      
          monty-square-baseline-o1f-F3-l4-fine@2017-08-12T02:18:05.560Z ->
            monty-square-dct32-o1f-F3-l4-fine@2017-08-12T02:19:44.461Z
      
            PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
         -0.0269 | -0.0715 |     N/A |  -0.0547 | -0.0268 | -0.0590 |        N/A
      
      Change-Id: Ib1bad991d82eb67956e94a6216298a84e908b169
      2cb52baf
  2. 14 Aug, 2017 2 commits
  3. 11 Aug, 2017 3 commits
    • Yunqing Wang's avatar
      Revert "Refactor and generalise OBMC prediction code" · d565529d
      Yunqing Wang authored
      This reverts commit 29824a42.
      
      Unit test failure was seen.
      AV1/AVxEncoderThreadLSTest.EncoderResultTest/2
      AV1/TileIndependenceTestLarge.MD5Match/2
      
      Change-Id: I836b6ef8b8eeac45014a439d1f5d4d45d17110f9
      d565529d
    • Urvang Joshi's avatar
      tx64x64: Use C version for DCT/IDCT transform. · 900643be
      Urvang Joshi authored
      The SSE4 function does not support 64x64 size, and was triggering an
      assertion failure lowbitdepth is disabled.
      
      BUG=aomedia:672
      
      Change-Id: Id14e76b5c180a211a84c2e933b07e8acf72dddbc
      900643be
    • Steinar Midtskogen's avatar
      Add experiment CONFIG_CDEF_SINGLEPASS: Make CDEF single pass · 5978212b
      Steinar Midtskogen authored
      Low latency, cpu-used=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3162 | -0.6719 | -0.6535 |   0.0089 | -0.3890 | -0.1515 |    -0.6682
      
      High latency, cpu-used=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0293 | -0.3556 | -0.5505 |   0.0684 | -0.0862 |  0.0513 |    -0.2765
      
      Low latency, cpu-used=4:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2248 | -0.7764 | -0.6630 |  -0.2109 | -0.3240 | -0.2532 |    -0.6980
      
      High latency, cpu-used=4:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1118 | -0.5841 | -0.7406 |  -0.0463 | -0.2442 | -0.1064 |    -0.4187
      
      Change-Id: I9ca8399c8f45489541a66f535fb3d771eb1d59ab
      5978212b
  4. 10 Aug, 2017 2 commits
    • Yunqing Wang's avatar
      Adjust the sample selection in Warped Motion · 9a7c660e
      Yunqing Wang authored
      This CL follows the original one"Sample selection in warped motion", and
      aims to reduce the number of samples gathered. We only search 1 above row
      and 1 left column instead of 1/2 bsize range in each direction. The gain
      is a little less, but not much.
      
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.225   -0.228  -0.231
      lowres:      -0.081   -0.075  -0.114
      
      The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
      
      Change-Id: Ifb499c80470b2ffe7a40f68fc401589faada7730
      9a7c660e
    • Urvang Joshi's avatar
      Remove PALETTE flag · c6300aa1
      Urvang Joshi authored
      This experiment is now adopted as it was cleared by Tapas.
      
      Note: Palette use can still be controlled by command-line option
      "--tune-content=..." in 'aomenc'.
      
      Change-Id: I832f49f20f60c34bdef5b424755849c496687e87
      c6300aa1
  5. 09 Aug, 2017 3 commits
    • Rupert Swarbrick's avatar
      Refactor and generalise OBMC prediction code · 29824a42
      Rupert Swarbrick authored
      When doing OBMC prediction, the code must iterate over the blocks
      above or to the left of the current block. In reconinter.c and
      rdopt.c, there are several pieces of code that do this. These all work
      in roughly the same way, iterating over the xd->mi array (although
      some are written with for loops and others with do/while). To visit
      each neighbouring block exactly once, each of these loops used an
      "mi_step" variable which was set to the width or height of the
      neighbouring block in mi-units and the loop counter got incremented by
      mi_step to jump to the next block.
      
      This patch unifies the code slightly (just using for loops) and
      simplifies it when the CHROMA_SUB8X8 experiment is enabled. In this
      case, chroma information is stored in the bottom right block of each
      8x8 pixel region. That is, if a block has width 4 and an even mi_col,
      the chroma information we need is actually found in the block
      immediately to its right.
      
      The existing code implemented this by bumping the current column or
      row counter (usually mi_col_offset or mi_row_offset) and duplicating
      the first part of the loop body to do it again with the new
      counter. It also had to double mi_step to avoid visiting the next-door
      block again.
      
      The new code essentially just uses the "continue" keyword to restart
      the loop. There's a little more book-keeping required: we might have
      to increment "ilimit", the maximum loop index, to ensure we don't exit
      the loop too early.
      
      The result is hopefully easier to read, but it's also more general (in
      the CHROMA_SUB8X8 case). The existing code assumed the current block
      never had width or height below 8 and thus mi_col and mi_row were
      always even. As such, whenever the neighbouring block had a width or
      height of 4, we knew that we needed to skip to the next neighbouring
      block to get the required chroma information. This version of the code
      can deal with the current block being smaller. The main difference is
      that it decides whether to skip forward by examining the parity of
      (mi_col + i) or (mi_row + i).
      
      This change will be needed for 16x4/4x16 block support.
      
      Change-Id: I39c1bbc00a6e2ad1ac17b8eed3980a8bcc040074
      29824a42
    • Angie Chiang's avatar
      Add txfm config test · 9c7089a9
      Angie Chiang authored
      This test makes sure two things:
      1) txfm stage range is within desired limit
          (lbd:16 bits hbd:32 bits)
      2) txfm stage range + cos bits is within desired limit
          (lbd:32 bits hbd:32 bits)
      
      Change-Id: Ie2cc3c8265810e034c1461def4717fa9d4c29945
      9c7089a9
    • Angie Chiang's avatar
      Calculate the txfm stage range according to bd · ce3ad286
      Angie Chiang authored
      Change-Id: Ie2f83f2f9369a22b70150ba44ddb6f82d6b6b514
      ce3ad286
  6. 08 Aug, 2017 12 commits
  7. 07 Aug, 2017 6 commits
    • Jingning Han's avatar
      Use the bottom right 4x4 block for 8x8 unit mv reference · 74978fcb
      Jingning Han authored
      When accessing an 8x8 block for motion vector referencing, always
      use the bottom right 4x4 block's motion information.
      
      Change-Id: I95e7235f9645ea3dea83482041b9fbd4e764b13f
      74978fcb
    • Jingning Han's avatar
      Use 4x4 granularity for nearest neighbor mv search · d37b83d8
      Jingning Han authored
      Search the immediate neighbor for reference motion vectors in the
      unit of 4x4 block size. This improves the compression performance
      by 0.05%.
      
      Change-Id: Iaf04aa2c8986de6fbc22fd56e137c1f0bcb38185
      d37b83d8
    • Jingning Han's avatar
      Use 8x8 block mv search for sub8x8 blocks · 7f99477a
      Jingning Han authored
      Use 8x8 block search resolution for reference motion vectors for
      non-nearest neighbors of a sub8x8 coding block. The compression
      performance is slightly up by 0.05%.
      
      Change-Id: I83d99a2232b0bb92f87dd22a77a4005ce0c0c883
      7f99477a
    • David Barker's avatar
      Fix bug in highbd wedge-interintra prediction · b746c3b7
      David Barker authored
      When calling aom_(highbd_)blend_a64_mask for a subsampled plane,
      the mask is subsampled in-place. This means that the mask stride
      passed in needs to be the value before subsampling. Since the
      wedge masks are set up so that mask stride = mask width, this means
      that the stride should equal the width of the current mi block.
      
      However, for the wedge-interintra path in combine_interintra_highbd,
      we subsampled the mask stride, resulting in the wrong stride being
      used for chroma planes if subsampling_x == 1.
      
      The lowbd path already uses the correct stride, so this patch just
      copies the stride calculation over to the highbd path.
      
      Change-Id: I08a4120b11a38912c45d9e637a54e009eddd88ec
      b746c3b7
    • Wei-Ting Lin's avatar
      ncobmc-adapt-weight: remove bitstream for training · 7daf0422
      Wei-Ting Lin authored
      Change-Id: I08340afd1bc667b97d96e5540cf5c126bcfaaab4
      7daf0422
    • Rupert Swarbrick's avatar
      Tidy up and generalise av1_predict_intra_block · 914d53a1
      Rupert Swarbrick authored
      This tidies up the code somewhat, factoring the snapshot/restore of
      rows and columns in the reference frame into a separate function. The
      variable names might also be a little easier to follow.
      
      The generalisation is that av1_predict_intra_block no longer requires
      that a rectangular block is exactly 2:1 or 1:2. The new code will also
      allow tiling a rectangular transform size (say two 1:2 transforms to
      make a 1:4 transform).
      
      Change-Id: Ie03cb01cce4645b49d943533c57a495dddc6e55d
      914d53a1
  8. 04 Aug, 2017 4 commits
  9. 03 Aug, 2017 1 commit
  10. 02 Aug, 2017 1 commit
    • Angie Chiang's avatar
      Add txmg experiment · ad653a39
      Angie Chiang authored
      This experiment aims at merging lbd/hbd txfms
      
      So far this exp uses hbd transform on lbd path.
      The performances I observed are
      lowres -0.089%
      midres  0.065%
      (negative means performance drop)
      
      Started from here, two main things are needed to be done.
      1) Fix overflow due to quantizer noise
      2) Generate a 16-bit version from the hbd txfm
      
      Change-Id: I35bb1fc0cbb78decad2570ff5826ed665f739752
      ad653a39