1. 22 Aug, 2017 8 commits
    • Lester Lu's avatar
      Refactor lgt · 918fe698
      Lester Lu authored
      Change get_lgt in order to integrate a later experiment
      lgt_from_pred with lgt. There are two main changes.
      
      The main purpose for this change is to unify get_fwd_lgt and
      get_inv_lgt functions into a get_lgt function so the lgt basis
      functions can always be selected through the same function in
      both forward and inverse transform paths. The structure of those
      functions will also be consistent with the get_lgt_from_pred
      functions that will be added in the lgt-from-pred experiment.
      
      These changes have no impact on the bitstream.
      
      Change-Id: Ifd3dfc1a9e1a250495830ddbf42c201e80aa913e
      918fe698
    • Jingning Han's avatar
      Account for cdf model update in lv-map coding · 8f661605
      Jingning Han authored
      Make the lv-map rate-distortion optimization account for the
      per symbol cdf update. This improves the level map coding
      performance by 0.4%.
      
      Change-Id: I1cbecafbad4e6642abc3782c9741636d92d87eb7
      8f661605
    • Jingning Han's avatar
      Support per symbol cdf update in lv-map encoding · 24b0cf96
      Jingning Han authored
      Allow per symbol cdf probability model update in the lv-map
      encoding process.
      
      Change-Id: Id0c4a659c04ffa981d8f04537eda2f1304d1682a
      24b0cf96
    • Jingning Han's avatar
      Make lv-map decoding support per symbol cdf update · bb72cafa
      Jingning Han authored
      Support the per symbol cdf update at the level map syntax element
      decoding process.
      
      Change-Id: Id58bf86fb1c7c72dd14ddaa3781caaa27f446ef7
      bb72cafa
    • Jingning Han's avatar
      Initialize lv-map syntax probability model · fdaa55ed
      Jingning Han authored
      Initialize the cdf model for level map syntax elements.
      
      Change-Id: I3865e07c126eb4c856803c12485b05782dea6526
      fdaa55ed
    • Debargha Mukherjee's avatar
      Simple upscaler w/ frame superres + loop-rest · 3897e2df
      Debargha Mukherjee authored
      When frame-superres is used with loop-restoration use a 4-tap
      upscaler to reduce complexity.
      
      Change-Id: Idf5712b9a006763c4000e264176b04aa8331b12f
      3897e2df
    • James Zern's avatar
      rdopt: make ADST_FLIP_SVM array static · 67932797
      James Zern authored
      Change-Id: Iec280ba1e314849ac027085f61e62a48dd224be4
      67932797
    • Debargha Mukherjee's avatar
      Adds the option to use 5x5 Wiener for chroma · 1cb757cb
      Debargha Mukherjee authored
      Change-Id: I1b789acc18f1e69fb5db069ccd8bd17815938e9d
      1cb757cb
  2. 21 Aug, 2017 10 commits
    • Yaowu Xu's avatar
      Prevent access of array using -1 index · 38cdce8e
      Yaowu Xu authored
      BUG=aomedia:685
      
      Change-Id: I0698b281fbaff2e77a50f5dc9a10d752de6c6f79
      38cdce8e
    • Debargha Mukherjee's avatar
      Silence a compiler warning in detokenize · 415d82ca
      Debargha Mukherjee authored
      Change-Id: Idcc4c4722bd0379c8667b60115bfd85cf779a6ac
      415d82ca
    • Rupert Swarbrick's avatar
      Obey do_average flag when doing convolve_round · 07089c68
      Rupert Swarbrick authored
      Doing this means that we don't have to memset temporary buffers to
      zero in reconinter.c, which was taking ~5% of cycles in a short
      encoding test (using perf to attach to a running encode).
      
      Change-Id: Ibb6e31920000b876c6ee99f454d89c8a97e9fb31
      07089c68
    • Angie Chiang's avatar
      Let DISABLE_TRELLISQ_SEARCH configurable · 91a1cf91
      Angie Chiang authored
      Change-Id: I48ebf352c6c28e5c0c0e477b24828f0e3fe1dedb
      91a1cf91
    • Angie Chiang's avatar
      Change av1_cost_coeffs_txb's interface · 3627de2c
      Angie Chiang authored
      Change-Id: Ie7c216218bd233e74970b261186df8f08aca6193
      3627de2c
    • 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
    • Angie Chiang's avatar
      Use || to replace && logics in try_level_down() · 0c89dca7
      Angie Chiang authored
      Change-Id: I6e9e1c94f688ed84c49d3b861dbac15c37248827
      0c89dca7
    • 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
    • Zoe Liu's avatar
      Tune the decision on the GF group interval · 4c3d4767
      Zoe Liu authored
      The change is purely an encoder-side tuning, which constrains a GF
      group interval to be either 8, or 12, or a number larger than 12
      (maximum of 16). The change is under ext_refs.
      
      This work has been part of the summer internship effort by chendixi@.
      
      Further, this CL removes the experiment of flex_refs and merges it
      into ext_refs, as flex_refs has been completely focused on the encoder
      side optimization for ext_refs.
      
      On Google test sets, above (stillness + interval enforcement) achieve
      a coding gain in BDRate as follows, compared against the AV1 baseline
      with all tools enabled by default (excluding ext-tx, global-motion,
      and convolve-round for speed concern):
      
      lowres: avg_psnr -0.193%; ovr_psnr -0.370%; ssim -0.332%
      midres: avg_psnr -0.556%; ovr_psnr -0.680%; ssim -0.798%
      
      Change-Id: Ia992d8ef0d82cc0ef2caba5eec9b26f0358e6bde
      4c3d4767
  3. 20 Aug, 2017 2 commits
  4. 19 Aug, 2017 4 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
    • Sarah Parker's avatar
      Prevent bitstream from signaling illegal compound types · 680b9b17
      Sarah Parker authored
      Currently nothing forbids wedge from being signalled when
      the block is > 32X32, even though there is no corresponding wedge
      mask for that block size.
      
      BUG=aomedia:640
      BUG=aomedia:636
      
      Change-Id: I538be0229a12b5ef01b2e5a950c9f16ef9a5c51e
      680b9b17
    • Jonathan Matthews's avatar
      Palette Throughput - don't copy garbage · be984ebb
      Jonathan Matthews authored
      BUG=aomedia:697
      
      Change-Id: Id7e971e515c9faa3df32e162befd57907278549d
      be984ebb
  5. 18 Aug, 2017 6 commits
    • Jingning Han's avatar
      Fix tokenization process in palette when lv-map is on · 13648e75
      Jingning Han authored
      This commit resolves an encoding failure issue due to the
      tokenization in palette when the lv-map experiment is turned on.
      
      BUG=aomedia:689
      
      Change-Id: I8e476ae81e4d5d11c6aab7611dff9deb7fa63e9e
      13648e75
    • 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
  6. 17 Aug, 2017 8 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
    • Angie Chiang's avatar
      Re-write gen_txb_cache · 481c01fc
      Angie Chiang authored
      This speed up lv_map exp by 5%
      
      Change-Id: Ic71e55c9e777031fe671589a96d8f2053f4d65a5
      481c01fc
    • 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
    • Sarah Parker's avatar
      Add rate computation to palette · 9c0e4515
      Sarah Parker authored
      Currently the rate is never computed for the palette color indices.
      The code to compute the rate is inside av1_tokenize_palette_sb
      when dry_run == DRY_RUN_COSTCOEFFS, but av1_tokenize_palette_sb is
      only called when !dry_run.
      
      Change-Id: Ie33eae9e4bcf1997a22dc939f31001334cb2c399
      9c0e4515
    • 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
  7. 16 Aug, 2017 2 commits