1. 21 Aug, 2017 3 commits
    • Angie Chiang's avatar
      Use table lookup for computing base ctx · def11251
      Angie Chiang authored
      This will speed up lv_map by 4.3%
      
      Change-Id: I886f67b9f1ae2e5f567e114fa34cf3ba437b8381
      def11251
    • Joe Young's avatar
      [cb4x4][refmv] scan_row_mbmi/scan_col_mbmi · 8e4c3a74
      Joe Young authored
      For sub-8x8 blocks, scan loop should have at least one iteration.
      Previously, loop would be skipped if col_offset == 1 and n8_w == 1.
      
      This change appears to have neutral effect on bdrate (+0.01).  This could
      mean that extra MV candidates are not helping that much for sub-8x8.
      
      Change-Id: Ic778312b39113ab8f348f5c7c18813593a831b7c
      8e4c3a74
    • Rupert Swarbrick's avatar
      Hide definitions behind #if ! CONFIG_EXT_PARTITION · a74fc4c1
      Rupert Swarbrick authored
      The orders_32x128 and orders_128x32 variables are only used when
      CONFIG_EXT_PARTITION is false. Only define them in that case to avoid
      a compiler warning.
      
      Change-Id: Iebe297eff36b139caa83d039101cf16eb88ca8f8
      a74fc4c1
  2. 20 Aug, 2017 1 commit
    • Angie Chiang's avatar
      Add get_br_count_mag() · ea8183b0
      Angie Chiang authored
      This will speed up lv_map encoder time by 1.5%
      
      Change-Id: Ia9f7634bae221d2fb8fb7dc6f3202c6bacdd5b32
      ea8183b0
  3. 19 Aug, 2017 2 commits
    • Cheng Chen's avatar
      Change experimental flag name · 13fc8194
      Cheng Chen authored
      CONFIG_UV_LVL --> CONFIG_LOOPFILTER_LEVEL
      Change name because the experiment combines filter level search
      in U, V plane, and horizontal, vertical search in Y plane.
      
      Change-Id: Ia05b8f80cd93b60a0305eb94e5783559ef904c13
      13fc8194
    • Cheng Chen's avatar
      Dual deblocking filter strength thresholds · 179479fe
      Cheng Chen authored
      A new experiment for deblocking filter that separates vertical
      and horizontal filter strengths. This experiment is based on the
      assumption that non-flatness characteristics of vertical and
      horizontal direction may differ. Therefore selecting different
      filter strengths for vertical and horizontal can improve deblocking
      performance.
      
      The process of finding proper filter strength:
      1. Search through the filter level under the constraint that
         (vertical == horizontal), and find the best solution.
      2. Fix vertical level as the best solution found in step 1 and vary
         horizontal level to find the best value.
      3. Fix the selected horizontal level, vary vertical level to find
         its best value.
      
      The experiment is working with UV_LVL, sharing the same config flag.
      The searching for horizontal and vertical filter strength only applies
      on Y plane for now.
      
      The experimental flag should be changed to filter_level later.
      
      Change-Id: I164eec8d3ccb3da7ff109c5c55f4b52c1536ddf1
      179479fe
  4. 18 Aug, 2017 5 commits
    • Yaowu Xu's avatar
      Correctly indicate invalid partition context · 88e673d2
      Yaowu Xu authored
      BUG=aomedia:685
      
      Change-Id: I8490af713c53e8c420ef9dffa7c27bb71bbfca54
      88e673d2
    • Hui Su's avatar
      Remove dpcm-intra experiment · 400bf651
      Hui Su authored
      Coding gain becomes tiny on top of other experiments.
      
      Change-Id: Ia89b1c2a2653f3833dff8ac8bb612eaa3ba18446
      400bf651
    • Rupert Swarbrick's avatar
      Only use av1_inv_txfm2d_add_32x32_avx2 for DCT_DCT · f16c3c89
      Rupert Swarbrick authored
      The AVX2 code only supports DCT_DCT. For other transform types, use
      the C fallback.
      
      Change-Id: I6b472ebd7d963c02aae80ff5846b7f2dcaf092ea
      f16c3c89
    • Rupert Swarbrick's avatar
      Fix build with --disable-ext_inter · 94d2a257
      Rupert Swarbrick authored
      In patch 1cfe474b ("Simplify motion var parameters in reconinter.h"),
      I moved some code from the header down into
      reconinter.c. Unfortunately, I managed to drop it inside an #ifdef
      CONFIG_EXT_INTER/#endif pair, which means the build won't work if
      compiled with --disable-ext_inter.
      
      This patch moves the hunk of code to above the #ifdef.
      
      BUG=aomedia:694
      
      Change-Id: I1e83bb500bcb607ee5911027b7c4787184703a57
      94d2a257
    • Tom Finegan's avatar
      Make CONFIG_COLORSPACE_HEADERS public API changes unconditional. · 01d43e1f
      Tom Finegan authored
      Avoid changing the public API based on an experiment flag:
      
      - Remove aom_config.h include from aom_image.h.
      - Unconditionally include the existing API additions.
      - Add some missing doc comments (silences Doxygen warnings).
      - Return an error when using ctrl flags that require
        CONFIG_COLORSPACE_HEADERS when it's not enabled.
      - Move colorspace_headers to the correct section of configure.
      - Move CONFIG_COLORSPACE_HEADERS to the correct section of
        aom_config_defaults.cmake.
      - clang-format style check appeasement
      
      Change-Id: I7b5d72c6f9f1a5561409d7813ba59180d98d8805
      01d43e1f
  5. 17 Aug, 2017 4 commits
    • Angie Chiang's avatar
      Add get_base_count_mag() · 9cde59f0
      Angie Chiang authored
      Compute base level's count/mag together.
      This will speed up lv_map exp by 5%
      
      Change-Id: I479098ed2637fc05d454fb0a7dc9f09aa20401f3
      9cde59f0
    • Steinar Midtskogen's avatar
      Fix compile problem in VS · bbec5d00
      Steinar Midtskogen authored
      Change-Id: Ibe9908fac4920686eaee6e7b261e0ce29241cf4c
      bbec5d00
    • Yushin Cho's avatar
      cdef-dist and daala-dist is runtime switchable · e30a47ca
      Yushin Cho authored
      Use --tune=[cdef-dist|daala-dist] to enable them.
      
      Also, this commit set the use_activity_masking of PVQ as 0 by deafult,
      which means that PVQ assumes daala-dist is not used by default.
      
      Since we're currently not signaling which metric the encoder did use
      in the bitstream, the compile flag AV1_PVQ_ENABLE_ACTIVITY_MASKING will tell PVQ
      whether daala-dist is used or not.
      
      This commit is the last part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: Ia465b4d6fe64aac7f04852c8f9f4bac3409d2435
      e30a47ca
    • David Michael Barr's avatar
      [CFL] Move CFL cost table to struct macroblock · 38e560cc
      David Michael Barr authored
      Also, move body of update_cfl_costs() to av1_fill_mode_rates().
      
      Results on Subset1 (Compared to 1cfe474b with CFL enabled)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      
      No change in bitstream, for an average encode speed-up of 2.3%.
      
      Change-Id: I3948abcd70cfecad8086edfe4c45552b576ae06f
      38e560cc
  6. 16 Aug, 2017 8 commits
    • Angie Chiang's avatar
      Replace stride by bwl in get_level_count() · e97b5ea6
      Angie Chiang authored
      Change-Id: Id191159a851513b6eb3f2ddd104a1299eed59292
      e97b5ea6
    • Angie Chiang's avatar
      Replace stride by bwl in get_nz_count · defa7bf1
      Angie Chiang authored
      Change-Id: Iaa464fdd36c9a97070517757645da68ef009b82c
      defa7bf1
    • Angie Chiang's avatar
      Replace mult by left shift in get_mag() · f76828cf
      Angie Chiang authored
      Change-Id: Idfa722cf2d1ed2f73630c7480ce166286955e1c5
      f76828cf
    • Angie Chiang's avatar
      Replace mult by left shift in get_level_count_mag() · 2ad6ee65
      Angie Chiang authored
      Change-Id: I58cdf4d1260759f085e12e871d48f59a89a346c4
      2ad6ee65
    • Debargha Mukherjee's avatar
      Use only up to 5x5 windows for sgr in loop-rest. · 76be32df
      Debargha Mukherjee authored
      The tables for guided filter in loop-restoration are changed
      to use a max of 5x5 windows (or radius 2).
      The aim is to reduce the gate count for hardware implementation.
      
      Change-Id: I7178d6ac09e4731a626f9bccf5151467c63e00c3
      76be32df
    • Frederic Barbier's avatar
      Fix memory corruption · 94e3856e
      Frederic Barbier authored
      Fix a memory corruption introduced by commit
      f190a165
      
      On some cases, when empty tiles are present,
      av1_set_across_tile_boundary_info() writes beyond mode info array.
      
      Sanity check added.
      
      BUG=aomedia:690
      
      Change-Id: I8d87a2e183c69d0ed039c8b2f77b30434f837974
      94e3856e
    • Zoe Liu's avatar
      Add dependency of ext-comp-refs on one-sided-compound · 5a978838
      Zoe Liu authored
      When ext-comp-refs is enabled, one-sided-compound is enabled by default,
      which ensures the use of ext-comp-refs is an extension of
      one-sided-compound. Both coding tools allow the use of same-sided
      reference frame pairs for compound prediction.
      
      Also, remove the dependency of ext-comp-refs on var-refs, i.e. these two
      coding tools can be independently enabled. They can still work together
      if both are enabled simultaneously.
      
      Change-Id: I3134e7e2956dc35d557fe814f5d801d473683650
      5a978838
    • Rupert Swarbrick's avatar
      Simplify motion var parameters in reconinter.h · 1cfe474b
      Rupert Swarbrick authored
      Before this patch, the functions build_inter_predictors, allow_warp
      and av1_make_inter_predictor took two parameters (if
      CONFIG_MOTION_VAR): mi_col_offset and mi_row_offset. These were used
      for two things: they were used to look up a MODE_INFO structure and
      the code figured out it was doing OBMC if at least one offset was
      nonzero.
      
      This patch slightly simplifies things by passing the relevant mi and a
      flag saying whether we're doing OBMC instead. This means the
      allow_warp function actually loses a parameter.
      
      It also moves all mention of the functions out of the header and into
      reconinter.c since they are only used in that compilation unit.
      
      Change-Id: I8dedad9d7384ee0aa17b977e92ea7bfa83a532ef
      1cfe474b
  7. 15 Aug, 2017 10 commits
    • Monty Montgomery's avatar
      Disable only coding transform SIMD for DAALA_TX · 1d190950
      Monty Montgomery authored
      Rather than disabling MMX (well, all of SIMD) for daala transforms,
      selectively disable the AV1 TX SIMD through
      av1/common/av1_rtcd_defs.pl
      
      This also requires quite a few testing build fixups.
      
      Change-Id: I689eaafbdd3a87e3a8eeef97412a1846ef886055
      1d190950
    • 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
    • Debargha Mukherjee's avatar
      Add scaled convolve functions for convolve_round · 9c5b1088
      Debargha Mukherjee authored
      Change-Id: I343d94520955b6632c2a990af26454859b29a97e
      9c5b1088
    • 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
  8. 14 Aug, 2017 2 commits
  9. 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
  10. 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