1. 17 Aug, 2017 2 commits
    • Yushin Cho's avatar
      Introduce runtime switch for dist_8x8 · 55104335
      Yushin Cho authored
      Even if 'dist-8x8' is enabled with configure,
      the dist-8x8 is not acutally enabled (so, no change in encoding behaviour)
      until the command line option, '--enable-dist-8x8=1" is used.
      
      The cdef-dist and daala-dist can not be enabled by a command line option yet.
      
      This commit is a part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: I5c2df90f837b32f44e756572a19272dfb4c3dff4
      55104335
    • Yushin Cho's avatar
      Add --enable-dist-8x8, rename existing '--tune' as '--tune-metric' · d808bfcf
      Yushin Cho authored
      Added 'cdef-dist' and 'daala-dist' options to --tune-metric'.
      (Actual bodies of the options will be added in later separate commits)
      
      Also, if --tune=cdef-dist or --tune=daala-dist,
      enable-dist-8x8 is automatically turned on.
      
      This commit is a part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: I0790b9537dfaf166cb59741997ae27da10697a33
      d808bfcf
  2. 16 Aug, 2017 6 commits
  3. 15 Aug, 2017 6 commits
    • Monty Montgomery's avatar
      Add 4-point DST to DAALA_DCT4 experiment · 573cf25f
      Monty Montgomery authored
      CONFIG_DAALA_DCT4 currently force-enables CONFIG_DCT_ONLY due to a
      missing 4-point DST.  The DST had not been included because it was a
      significant coding performance loss; this turned out to be a bug that
      has since been corrected.
      
      This patch adds a 4-point type IV DST to the DAALA_DCT4 experiment.
      There is a small coding performance loss in using the type IV over
      AV1's current type VII.
      
      subset-1:
         monty-newdst4test-baseline-s1-F@2017-07-29T04:58:43.976Z ->
            monty-newdst4test-daala-s1-F@2017-07-29T04:59:56.094Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0336 |  0.1393 |  0.0491 |   0.4118 | -0.0439 |  0.2084 |     0.0476
      
      objective-1-fast:
         monty-newdst4test-baseline-o1f-F@2017-07-29T04:58:10.439Z ->
            monty-newdst4test-daala-o1f-F@2017-07-29T04:59:04.678Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0064 |  0.1071 | -0.0108 |   0.1133 | -0.0035 |  0.0765 |     0.0502
      
      Change-Id: Ie29835edbe0e41bc86f4b09457e88d924cc9bf7e
      573cf25f
    • Monty Montgomery's avatar
      Add CONFIG_DAALA_DCT64 experiment. · a4e245a9
      Monty Montgomery authored
      This experiment replaces the 64-point Type-II DCT and related
      scaling vp9 transforms with the 64-point orthonormal
      Daala transforms.
      
      subset-1:
      
          monty-square-baseline-s1-F2@2017-07-28T03:35:45.962Z ->
            monty-square-dct64-s1-F2@2017-07-29T04:50:58.412Z
      
             PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
          -0.1930 | -0.2037 | -0.0643 |  -0.1917 | -0.2331 | -0.3510 |    -0.1810
      
      objective-1-fast:
      
          monty-square-baseline-o1f-F2@2017-07-28T03:35:35.533Z ->
            monty-square-dct64-o1f-F2@2017-07-29T04:50:28.542Z
      
             PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
          -0.2557 | -0.1743 | -0.4900 |  -0.3028 | -0.4147 | -0.5764 |    -0.2864
      
      Change-Id: I1f944df29e44d2e350c42555af274f2d75a62a92
      a4e245a9
    • 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
    • Thomas Davies's avatar
      AOM_QM: enable by default · 181fc08f
      Thomas Davies authored
      No change to metrics, as quantization matrices are not used
      unless --enable-qm=1 is set on the command line.
      
      Fix no highbitdepth compilation, and fix compile errors and
      warnings for PVQ and NEW_QUANT experiments.
      
      Change-Id: I49aceb5acf6ca6790c81e760e5b208788f87086d
      181fc08f
    • 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
  4. 14 Aug, 2017 2 commits
  5. 12 Aug, 2017 1 commit
  6. 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
    • 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
    • Sarah Parker's avatar
      Fix inter path for mrc-tx · de6f072e
      Sarah Parker authored
      A speed feature was causing the rdloop to skip trying
      MRC_DCT. I've disabled that speed feature when mrc-tx
      is enabled and MRC_DCT is allowed for inter blocks.
      
      Change-Id: I0affa5f26465539414b2957f8ff983f718863ef1
      de6f072e
  7. 10 Aug, 2017 6 commits
    • Jingning Han's avatar
      Refactor lv-map rate cost estimation · dfd72323
      Jingning Han authored
      Use the rate cost to replace the probability fetch. This improves
      the encoding speed of level map by 10%. No coding stats change.
      
      Change-Id: Iab0beac5da291eed50f657549667d4edffb4ead8
      dfd72323
    • 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
    • hui su's avatar
      Remove skip_eob_node from TOKENEXTRA · 51a95933
      hui su authored
      It's not being used anymore.
      
      Change-Id: I866874dcc5485cf3db8c66e8d3e76ac45193e58c
      51a95933
    • Alex Converse's avatar
      palette: Templatize k_means routines · 15aa8c01
      Alex Converse authored
      Drops k_means from 15% of profile to 4.2%.
      
      BUG=aomedia:670
      
      Change-Id: I9c60f024abde9112eec8c32ead482f885ed6e57a
      15aa8c01
    • Urvang Joshi's avatar
      Make palette work correctly with chroma sub8x8 blocks. · c9e71d4d
      Urvang Joshi authored
      The problem was that some functions were using scale_chroma_bsize()
      function to turn sub-8x8 'bsize' to 8x8 'bsize', and then the modified
      'bsize' was being passed to rd_pick_intra_sbuv_mode() for example.
      
      In such cases, we cannot rely on the 'bsize' value passed to the
      function; instead, we need to look at the original mbmi->sb_type
      directly.
      
      Also:
      - Added created a common function can_use_palette() to refactor this
      logic into one place.
      - Added more asserts to easily catch such coding errors in future.
      
      BUG=aomedia:688
      
      Change-Id: I2e9f20c8c5fbc4b3ff41b703a91a02758c3c632f
      c9e71d4d
    • James Zern's avatar
      cosmetics,rdopt.c: fix some typos · 89a015b2
      James Zern authored
      Change-Id: I558106e3e415cbcbb6673d24349daed48b616034
      89a015b2
  8. 09 Aug, 2017 2 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
    • Rupert Swarbrick's avatar
      ext-partition-types: Don't allow 4:1 blocks to use palettes · 6f9cd946
      Rupert Swarbrick authored
      Since there are no CDFs set up for palettes for 4:1/1:4 blocks, we
      should make sure we don't try to use them. Without this patch,
      write_palette_mode_info gets called with a bsize of BLOCK_32X8 and
      reads (and writes) off the end of the palette_y_size_cdf array.
      
      This patch avoids calling it in this context and adds an assertion to
      make sure we don't read off the end of the array in future.
      
      The patch also adds the corresponding logic to rdopt.c.
      
      Change-Id: I4d9aea982d057e305a6b578f35457eada819d38f
      6f9cd946
  9. 08 Aug, 2017 8 commits
    • RogerZhou's avatar
      hash based motion estimation for screen data · cc5d35d8
      RogerZhou authored
      Change-Id: Iec7969ffd8f53ca2f4eefd1d757cfec7b3bde131
      cc5d35d8
    • Sarah Parker's avatar
      Allow the creation of different masks for inter and intra · 3824f8ad
      Sarah Parker authored
      This allows inter and intra modes to use different mask functions.
      The mask functions checked in are still place holders to allow for
      easy experimentation.
      
      Change-Id: Ic20d88200676df81dffee8c43555d0ff0c7bfc28
      3824f8ad
    • Alex Converse's avatar
      Deduplicate lcg_rand16 function. · 9d068c12
      Alex Converse authored
      Change-Id: Idc5fb44309b5aaa132833ebb4007416f9d143e3d
      9d068c12
    • Todd Nguyen's avatar
      Enable segmentation on bgsprite. · dfe49b21
      Todd Nguyen authored
      Changes:
      - Enable segmentation by default on bgsprite.
      - Turn off global motion estimation by default on bgsprite.
      - Segment in 4x4 blocks and use temporal filter on foreground blocks.
      
      Change-Id: I15ccfd908d5772287858ceb7b1aca44e6a9b1071
      dfe49b21
    • Tom Finegan's avatar
      Fix CONFIG_LV_MAP builds with CMake. · e29f1e9a
      Tom Finegan authored
      Add missing source files to the CMake build, and silence a
      warning.
      
      BUG=aomedia:683
      
      Change-Id: I857fce54239d121bc8d47fc805f814890b1b736f
      e29f1e9a
    • Luc Trudeau's avatar
      Esthetic changes to choose_intra_uv_mode · 9d4cbb8b
      Luc Trudeau authored
      Only one call to rd_pick_intra_sbuv_mode and removed
      the unused PICK_MODE_CONTEXT *ctx parameter
      
      Change-Id: Ife0dbdd64cd5a01e5eeed0eab9e08417e768b41d
      9d4cbb8b
    • Thomas Davies's avatar
      AOM_QM: use SIMD for flat matrices and re-enable tests. · 1870382c
      Thomas Davies authored
      When AOM_QM is enabled, by default quantization matrices are
      flat unless enabled with --enable-qm=1. Re-use existing SIMD
      functions when a flat matrix is used, so that there is no
      speed deficit when AOM_QM is enabled.
      
      SIMD for the non-flat case is TBC.
      
      Change-Id: I1bb8da70d3dd5858dac15099610ddf61662e3d0d
      1870382c
    • Thomas Davies's avatar
      Refactor quantization C code. · f3b5ee14
      Thomas Davies authored
      This commit de-duplicates C reference quantization code
      and unifies quantization matrix (QM) and non-QM code
      paths when there is no SIMD.
      
      The reorganisation also will facilitate re-using SIMD quant
      functions for QM when the matrix is flat, as is the
      default when AOM_QM is enabled.
      
      Change-Id: Idbfdac9eb9a31adcffe734aac1877d58b86fab77
      f3b5ee14
  10. 07 Aug, 2017 3 commits
    • Yue Chen's avatar
      Compute mode costs from cdf · ba47c842
      Yue Chen authored
      Previously, a lot of costs are computed from per-frame-updated
      probs, which cannot reflect the actual entropy models even if we
      just consider initial entropy models in cm->fc for each frame.
      For most symbols, cost update is still on per frame basis in this
      patch, unless cdf is updated in RDO.
      
      Performance change: -0.011 lowres
      
      Change-Id: Id2faf88c7638ffe2fa414bac5d0b05cb1f65459a
      ba47c842
    • Cheng Chen's avatar
      Make braces consistent in encodeframe.c · 50b0f6ca
      Cheng Chen authored
      Enable vim to jump to correct corresponding braces, which
      is helpful especially when the function is long.
      
      Change-Id: Ibcf4f11df3e923e12bc33ec1656bb6dbd0451be6
      50b0f6ca
    • Wei-Ting Lin's avatar
      ncobmc-adapt-weight: remove bitstream for training · 7daf0422
      Wei-Ting Lin authored
      Change-Id: I08340afd1bc667b97d96e5540cf5c126bcfaaab4
      7daf0422
  11. 04 Aug, 2017 1 commit