1. 05 Jul, 2017 1 commit
    • Nathan E. Egge's avatar
      Remove the intra probs when EC_ADAPT enabled. · 788ed89f
      Nathan E. Egge authored
      When EC_ADAPT is enabled, this patch removes all probability tables
       associated with coding intra tokens.
      This commit has no change to metrics.
      
      Change-Id: Ie74dd330984fd97b283ef8f8f2c053379f037d9f
      788ed89f
  2. 04 Jul, 2017 1 commit
  3. 03 Jul, 2017 3 commits
    • Luc Trudeau's avatar
      [CFL] Adjust Pixel Buffer for Chroma Sub8x8 · 780d249d
      Luc Trudeau authored
      Adjust row and col offset for sub8x8 blocks to allow the CfL prediction
      to use all available reconstructed luma pixels.
      
      Results on Subset 1 (Compared to b03c2f44 with CfL)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1355 | -0.8517 | -0.4481 |  -0.0579 | -0.0237 | -0.0203 |    -0.2765
      
      Change-Id: Ia91f0a078f0ff4f28bb2d272b096f579e0d04dac
      780d249d
    • Nathan E. Egge's avatar
      Remove the av1_intra_mode_tree const with EC_ADAPT. · 5694aa7b
      Nathan E. Egge authored
      When EC_ADAPT is enabled, this adds const av1_intra_mode_ind and
       av1_intra_mode_inv arrays and removes the av1_intra_mode_tree const.
      This commit has no effect on metrics.
      
      Change-Id: I1de8f4ea91269adacd7fdadbc8426f641ef866f0
      5694aa7b
    • Nathan E. Egge's avatar
      Use CDFs to compute all intra mode related costs. · 693eedd1
      Nathan E. Egge authored
      When EC_ADAPT is enabled, this patch uses the adapted CDF after
       encoding the entire frame to compute the non-adapted costs that are
       used in RDO decision making when coding the following frame.
      Future patches will update these costs periodically while coding the
       frame to keep them in sync with the actual rates used when coding the
       symbols with the adapted CDF.
      
      master@2017-06-30T01:10:29.197Z -> intra_cdfs@2017-06-30T01:09:41.171Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0168 |  0.0031 | -0.0181 |  -0.0018 | -0.0022 | -0.0209 |    -0.0027
      
      Change-Id: Id9e284b429e4d2a31d418141af6935d7ece1180e
      693eedd1
  4. 30 Jun, 2017 2 commits
  5. 29 Jun, 2017 3 commits
    • Luc Trudeau's avatar
      [CFL] Compute DC_PRED until end of frame · e7f9e16a
      Luc Trudeau authored
      When computing CFL's prediction block level DC_PRED,
      We can't assume that the neighbor will use the same
      transform size. As such, we don't know what pixels
      are available outside of the frame. A simple
      solution is to stop computing DC_PRED at the block
      boundary.
      
      Results on Subset 1 ( Compared to 9c6f8547 with CfL enabled)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0015 | -0.0026 | -0.0025 |  -0.0034 | -0.0008 | -0.0044 |     0.0019
      
      Change-Id: I00ed4114e5c5871fdc7222fa2000474eb11d33e0
      e7f9e16a
    • Luc Trudeau's avatar
      [CFL] Better encapsulation · 3dc55e0f
      Luc Trudeau authored
      The function cfl_compute_parameters is added and contains the logic
      related to building the CfL context parameters. As such, many cfl
      functions can now be encapsulated inside of cfl.c and not exposed to the
      rest of AV1.
      
      This also allows for supplemental asserts that validate that the CfL
      context is properly built.
      
      Results on Subset1 (compared to 9c6f8547 with CfL)
      
        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
      
      Change-Id: I6d14a426416b3af5491bdc145db7281b5e988cae
      3dc55e0f
    • Frederic Barbier's avatar
      Cleanup dead inv-txfm functions in HBD data path · 24d565b4
      Frederic Barbier authored
      Cleanup related unit-tests.
      
      Change-Id: Ic756e6bbad80f5b9947ca1cdd55cdef77b985f81
      24d565b4
  6. 28 Jun, 2017 4 commits
  7. 27 Jun, 2017 3 commits
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: Add bitstream syntax · 85a8f70c
      Wei-Ting Lin authored
      Define the syntax and entropy coding templates for
      NCOBMC_ADAPT_WEIGHT. The actual values of the default
      probabilities and the index tree structure need to
      be fine tuned.
      
      In this experiment all mv's in a superblock are sent
      first as in the ncobmc case.
      
      Change-Id: I68d50d3d27346c2847ea449a1168c6a99fbb4d3d
      85a8f70c
    • Debargha Mukherjee's avatar
      Reduce multiplier precision for warp least squares · f053cba2
      Debargha Mukherjee authored
      Includes reordering and other clamping changes, as well as
      changes to reduce multiplier precision.
      
      cam_lowres (60 frames): -0.092% BDRATE improvement in
      --disable-cdef --disable-global-motion --disable-ext-tx
      configuation.
      
      Change-Id: I0660c45b44fcd5a193534d8dadd1aa1ae5c5e27a
      f053cba2
    • Yi Luo's avatar
      Fix inv txfm low/high bitdepth selection logic · 51281095
      Yi Luo authored
      We are going to have several commits to setup new low/high
      bitdepth data path selection logic. This patch is for inverse
      transform. Let me summarize the ideas as following.
      
      - For low/high bitdepth selection, encoder depends on
        input configuration, e.g., video sequence bitdepth,
        profile. Decoder depends on input bitstream. This has
        nothing to do with compiler/build  configuration.
      
      - Typical encoder usage for sampling format 4:2:0.
        1) 8-bit video sequence:
         a) --profile=0
         Fastest encoding/decoding pipeline on speedup.
      
         b) --profile=2 --bit-depth=10
         Image pixels are left shifted by 2 bits. It
         employs 16-bit reference frame buffer and has high
         calculation precision. It usually enjoys higher
         compression performance.
      
        2) 10/12-bit video sequence (HDR):
         --profile=2 --bit-depth=10/12
      
      - Transform coefficient type:
        Lowbitdepth:  int16_t
        Highbitdepth: int32_t
      
      - The type, tran_low_t is still used in codebase,
        Which is int32_t, defining the data path capacity.
        Naturally, it is high bitdepth.
      
      Eventually we shall remove the configuration flags,
      CONFIG_HIGHBITDEPTH/CONFIG_LOWBITDEPTH, and seperate
      low and high bitdepth data path. Two data paths co-exist
      in the same build environment.
      
      Change-Id: I35c06d4d4f19ebf80d909168fdddbae57c3cc884
      51281095
  8. 26 Jun, 2017 1 commit
    • Lester Lu's avatar
      New experiment: LGT · ad8290b8
      Lester Lu authored
      In previous ADSTs, DST-7 and DST-4 are used for length 4 and length
      8/16/32, respectively. In this LGT experiment we explore transforms
      between DST-4 and DST-7. When CONFIG_LGT flag is on, adst4 and adst8
      are replaced by lgt4 and lgt8, the intermediate transforms with
      pre-chosen parameters.
      
      The LGTs applied here are lgt4_160 and lgt8_170, where the numbers
      mean the self-loop weights times 100. The associated values for DST-7
      and DST-4 are 100 and 200.
      
      ovr_psnr:
      lowres: -0.140
      midres: -0.131
      hdres: -0.078
      
      These changes are not applied to the highbd scenario in the
      current version.
      
      Change-Id: I20600456da8766528b2b6b11aa28801e70af498e
      ad8290b8
  9. 24 Jun, 2017 3 commits
    • David Barker's avatar
      Change mv scaling behaviour · 67d968f3
      David Barker authored
      This patch changes the motion vector scaling and clamping to be
      slightly more accurate (removing an occasional 1px offset due to
      multiple roundings) and fixes the border clamping when scaling
      frames.
      
      Change-Id: I032dc0b87854eebafa58f1f803981e23c8cc2d9b
      67d968f3
    • James Zern's avatar
      x86: _mm_set_epi64x -> _mm_{set_epi32,cvtsi32_si128} · d937cdbe
      James Zern authored
      _mm_set_epi64x is incompatible with visual studio x86 configurations
      
      Change-Id: I7986e43d0471699553affeefabae66a512d9d46a
      d937cdbe
    • Angie Chiang's avatar
      Pass mbmi into get_scan() · bd99b38c
      Angie Chiang authored
      This is to facilitate future experiment related to adapt_scan
      
      Change-Id: I51628f3df81bd82db7f8f553d13da0ee5792d7d9
      bd99b38c
  10. 23 Jun, 2017 1 commit
    • David Barker's avatar
      Fix bug with chroma-sub8x8 + resizing · 11132ce3
      David Barker authored
      The special path in build_inter_predictors for chroma blocks
      corresponding to sub8x8 luma blocks would always fetch the
      scale factors from 'xd', which correspond (at least in the
      decoder) to the references of the block for which is_chroma_reference
      returns true.
      
      The correct behaviour is to fetch the scale factors from 'ref_buf',
      which corresponds to the references of the block currently being
      predicted.
      
      This patch fixes some encode/decode mismatches which were caused
      by the above behaviour when the various reference frames had
      different sizes.
      
      Change-Id: I48a0a167ea25d47d08018016cf8b77885b3b5d6b
      11132ce3
  11. 21 Jun, 2017 6 commits
  12. 20 Jun, 2017 10 commits
    • James Zern's avatar
      get_min_tx_size: disable -Warray-bounds · 5d61b609
      James Zern authored
      this warning is covered by an assert and other runtime detection.
      expanding the array, adding a conditional or converting the type to int
      are less desirable.
      
      BUG=aomedia:578
      
      Change-Id: Idb6a1dec5f17db85a0e9c1d0ee372e701f4e1aa4
      5d61b609
    • Angie Chiang's avatar
      Integrate global_motion with convolve_round in lbd · 4e5b8f7c
      Angie Chiang authored
      The performance of convolve_round on top of
      global_motion and warped_motion is
      lowres 0.899%
      
      Change-Id: I3b4a343bbac8ca14d62cae5bca38f4daa7140f28
      4e5b8f7c
    • Yaowu Xu's avatar
      Change left shifts to multiplications · 36b54588
      Yaowu Xu authored
      avoid warnings about left shift of negative numbers.
      
      BUG=aomedia:617
      
      Change-Id: I8793132c562759b0cc9eefb7c7a50fddb3149184
      36b54588
    • Yi Luo's avatar
      Add high bit depth fast path quantizer avx2 · 6faf349a
      Yi Luo authored
      - User level encoder timer reduction ~4.3% with
        following testing: 1080p, 10-bit, 4Mbps, 4 frames,
        profile=2, i7-6700.
      
      Change-Id: Ib4a579d10cbd705cb7b1c4f0d619159a76bb34d7
      6faf349a
    • Angie Chiang's avatar
      Pass conv_params into warp-related functions · 81b2e502
      Angie Chiang authored
      This aims at integrate convolve_round/compound_round
      with global_motion
      
      Change-Id: I1d91ff2de6b075f807eaaaa0a7a66edb2036e57b
      81b2e502
    • Yaowu Xu's avatar
      Avoid left shift of negative values · 31d19279
      Yaowu Xu authored
      changes shifts to multiplications
      
      BUG=aomedia:617
      
      Change-Id: I46a7b3b5d566f8c671e54d8cb876cc53fdc5009d
      31d19279
    • David Michael Barr's avatar
      [CFL] drop skip logic, always write alpha · 23198661
      David Michael Barr authored
      
      
      Results on Subset 1 (Compared to a0f8c145 with CfL)
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0677 | -0.3359 | -0.2115 |   0.0529 | 0.0735 |  0.0495 |    -0.0907
      
      Change-Id: Ib61ff862e8cfbdf0c693a4eba5f2712a6e9ab819
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      23198661
    • David Michael Barr's avatar
      [CFL] Restore missing pair in cfl_alpha_codes · c854bacc
      David Michael Barr authored
      In 84a44dbe
      
      , there was a transcription error in the table.
      Point { 5, 3 } was duplicated and { 5, 0 } was missing.
      
      While we are here, updated the order and CDF from subset3.
      
      Results on subset1 (compared to cab68ae6 with CfL)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
       0.0416 | -0.2732 | -0.3848 |   0.0385 | 0.0309 |  0.0230 |    -0.0178
      
      Change-Id: I3244245792c5ab99b4149ae5f8a2439d4214ed69
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      c854bacc
    • Joe Young's avatar
      [intra-edge] Cosmetic changes · aa2f1c7a
      Joe Young authored
      Change-Id: Ib28bd27d0c2b2e1eb89ef3168b4293f8aa1712bc
      aa2f1c7a
    • Luc Trudeau's avatar
      [CFL] Fix stack smash in cfl_load · 5f3d370b
      Luc Trudeau authored
      The height padding offset was computed from the beginning of the pixel buffer
      and not the current position in the pixel buffer.
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0000 | -0.0001 |  0.0002 |  -0.0000 | -0.0000 | -0.0000 |    -0.0002
      
      Change-Id: Id20ec3a6395b11d0258ec1e100890fe4701b820c
      5f3d370b
  13. 19 Jun, 2017 2 commits
    • Joe Young's avatar
      [intra-edge] Convert 4x4 VP9 to ext-intra; upsample edge samples · 830d4ce4
      Joe Young authored
      Updates to intra-edge experiment
      
      - Convert VP9-style intra pred to Ext-intra style
      - Upsample edge predictors by 2x based on angle and edge size
      
      BD-rate, 1-kf AWCY
        360p:  -0.11%
        720p:  -0.54
        1080p: -0.96
      
      Change-Id: Ib73805d31d5d286e607a7ee7470fcbdf11edbbff
      830d4ce4
    • Jingning Han's avatar
      Revert "Clamp inverse transform coefficients" · 71adf529
      Jingning Han authored
      This reverts commit 79b78b7d.
      
      The transform coefficient range needs some more tuning.
      Before we finalize on that front, directly applying clamping
      would cause multiple unit test failure issues. Hence revert
      this Cl temporarily.
      
      BUG=aomedia:612
      
      Change-Id: I1dd8680dee17289801c4a209275f05a498355c8e
      71adf529