1. 11 Jul, 2017 2 commits
    • Sarah Parker's avatar
      Remove SEPARATE_GLOBAL_MOTION macro · 0eea89f3
      Sarah Parker authored
      Global_motion, obmc and warped_motion are now permanently
      mutually exclusive.
      
      Change-Id: Ib1a1207cc7caa6459a2027c6c4a50fcf4c451e76
      0eea89f3
    • Nathan E. Egge's avatar
      Remove the EC_ADAPT experimental flags. · 6bdc40f1
      Nathan E. Egge authored
      Removing these flags make the EC_ADAPT experiment an integral part of
       the draft AV1 bitstream definition
      This commit has no effect on metrics.
      
      Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
      6bdc40f1
  2. 10 Jul, 2017 1 commit
    • Lester Lu's avatar
      Inter and intra LGTs · 708c1ec5
      Lester Lu authored
      Here we have an LGT to replace ADST for intra residual blocks, and
      another LGT to replace ADST for inter residual blocks. The changes
      are only applied to transform length 4 and 8, and only for the
      lowbitdepth path.
      
      lowres: -0.18%
      
      Change-Id: Iadc1e02b53e3756b44f74ca648cfa8b0e8ca7af4
      708c1ec5
  3. 06 Jul, 2017 6 commits
  4. 05 Jul, 2017 2 commits
  5. 03 Jul, 2017 1 commit
    • 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
  6. 29 Jun, 2017 1 commit
    • 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
  7. 28 Jun, 2017 3 commits
  8. 27 Jun, 2017 2 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
    • Jingning Han's avatar
      Rework recursive transform block partition search · e3b81bcf
      Jingning Han authored
      Support transform block level kernel selection in the recursive
      transform block partitioning search.
      
      Change-Id: I511c39705ee636b0c9fabbe4720fe5a9764b964a
      e3b81bcf
  9. 26 Jun, 2017 3 commits
    • Yushin Cho's avatar
      daala-dist: high bit depth support · 8ab875d6
      Yushin Cho authored
      Change-Id: Idafef140d3425a9a9f66cb8864a804c4d2a89a70
      8ab875d6
    • Yushin Cho's avatar
      Fix daala-dist for var-tx · 0474912c
      Yushin Cho authored
      The var-tx has its own suite of tx size/type RD search functions,
      which recursively split the partition into square tx blocks.
      
      The Daala-dist requires access to 8x8 pixels (both decoded and predicted)
      since it measures the distortion for multiple of a 8x8 pixels.
      Thus, if tx block is smaller than 8x8, it waits until all of sub8x8 blocks
      are RD searched (with MSE) then replaces the MSE of 8x8 pixels with
      daala-dist's calculated distortion for 8x8 pixels.
      
      It is also applied to luma pixels only.
      
      Change-Id: Ic4891e89b4ef05cf880aa26781d2d06ccf3142de
      0474912c
    • Yushin Cho's avatar
      Fix daala_dist to handle visible pixels only · 75b01004
      Yushin Cho authored
      - If invisible pixels, av1_daala_dist() simply use source pixles for dst.
      - Added av1_daala_dist_diff() which inputs diff signal instead of dst.
      
      - Refactored daala_dist code so that av1_daala_dist() and _diff()
      is called inside av1's distortion calculation functions, pixel_sse() and
      sum_squares_visible().
      
      Change-Id: Id857db52fe19856d92c46a9e84ac2962c01ae045
      75b01004
  10. 24 Jun, 2017 4 commits
    • Sebastien Alaiwan's avatar
      Fix double definition of 'pd' · d94476d1
      Sebastien Alaiwan authored
      This reverts commit a3d70911.
      
      Reason for revert: this was fixed in cb637674 which moved the
      definition to a different line causing this change to merge
      cleanly, resulting in a duplicate.
      
      Change-Id: I2d8763f0e2af320f043a1417ba33e82f82163592
      d94476d1
    • James Zern's avatar
      {decodeframe,rdopt}.c: fix asserts with strings · 88896734
      James Zern authored
      lead with '0 &&' to avoid string to bool conversion warnings
      
      BUG=aomedia:621
      
      Change-Id: I2cd6618377f9ed94f4d9dbc252f6f5cfc81efea4
      88896734
    • 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
    • Yushin Cho's avatar
      Fix compile warning · a3d70911
      Yushin Cho authored
      Fixed the compile warning when both global-motion
      and warped-motion are disabled.
      
      Change-Id: Ie3ac036fc6c0a15e54a56427452682d7ea7864db
      a3d70911
  11. 22 Jun, 2017 2 commits
    • Jingning Han's avatar
      Fix compiler warning in joint_motion_search · cb637674
      Jingning Han authored
      Avoid compiler warning when global-motion is off.
      
      Change-Id: Ie6a0d3e4efc0e06b263e8c8c0c0dc153738c3804
      cb637674
    • Yushin Cho's avatar
      Fix daala-dist, rd tx search · 04eb9594
      Yushin Cho authored
      Previously, for block >=8x8, and tx < 8x8,
      we skipped setting the early-exit flag in block_rd_txfm() because
      distortion for sub8x8 tx block is from MSE but reference (best)
      is from daala-dist.
      However, not setting early-exit flag turned out to be the reason
      for a regression in MSE probe mode of daala-dist because
      it loses the chance to set rd_stats properly.
      
      On the other hand, there is still a small regression, say 0.05% psnr bd-rate,
      which seems to occur in the case that a tx block in a partition has chosen
      the skipped rd_cost since it is smaller than non-skip rd_cost and
      set the early-exit flag to 0 (so, not exit), but the daala-dist applied
      to the whole partition cannot access the same info but can choose from
      two kinds of rd_costs:
      1) all tx blocks are skipped (even if a tx block has non-zero coeff) and 0 bits
      2) sum of final distortion of all tx blocks (i.e. non-zero coeff decoded)
      and bits to encode coeffs.
      
      Change-Id: I2ec69972aa1f22d465293cb9e8d5e18ef2c6f7f3
      04eb9594
  12. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  13. 20 Jun, 2017 2 commits
    • Yunqing Wang's avatar
      Declare rate_mv_bmc in warped motion · 562a3937
      Yunqing Wang authored
      A motion refining was added in warped motion, which required the
      declaration of rate_mv_bmc in warped motion.
      
      BUG=aomedia:613
      
      Change-Id: I74dfc396f915a5cc4599bfbdccad758fa630505f
      562a3937
    • Luc Trudeau's avatar
      [CFL] RDO Loop Rework · 14fc5045
      Luc Trudeau authored
      CfL performs an extra loop iteration during luma mode selection. Recent
      changes have broken the extra iteration. Remove previous approach.
      
      New approach adds the extra iteration right before uv parameter
      selection. Interesting fact, If the best luma intra mode already has
      worse RD performance than the best inter mode found so far (if any),
      then the entire chroma intra search is skipped, including the extra 
      iteration.
      
      Results on Subset1 (compared to 3e18e4ae with CfL)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3090 | -2.7271 | -2.3521 |  -0.3369 | -0.3463 | -0.3525 |    -1.1868
      
      Change-Id: If67b0badd2c8ea25c61685483d39d622c1729b18
      14fc5045
  14. 19 Jun, 2017 4 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
    • Timothy B. Terriberry's avatar
      encoder: Remove 64x upsampled reference buffers · 5d24b6f0
      Timothy B. Terriberry authored
      They do not handle border extension correctly (interpolation and
      border extension do not commute unless you upsample into the
      border), nor do they handle crop dimensions that are not a multiple
      of 8 (the upsampled version is not sufficiently large), in addition
      to using massive amounts of memory and being a criminal waste of
      cache (1 byte used for every 8 bytes fetched).
      
      This commit reimplements use_upsampled_references by computing the
      subpixel samples on the fly. This implementation not only corrects
      the border handling, but is also faster, while maintaining the
      same quality.
      
      HL AWCY results are basically noise:
          PSNR | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
        0.0188 |   0.0187 | 0.0045 |  0.0063 |     0.0228
      
      Change-Id: I7527db9f83b87a7bb8b35342f7e6457cd0bef9cd
      5d24b6f0
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
    • Sarah Parker's avatar
      Add macro to disable trellis optimization in rdopt · 345366ac
      Sarah Parker authored
      Turning off the trellis optimization gives a performance
      drop of 0.726% on the lowres set.
      
      Change-Id: I4fdd1e20fb6f671162cd32b3abe699cd2aee1919
      345366ac
  15. 17 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      var_tx: Remove custom distortion calculations. · d62e2a3a
      Timothy B. Terriberry authored
      Although this does not fully convert var-tx to using
      av1_block_dist(), it does make it use the same distortion functions
      av1_block_dist() uses: pixel_sse() and sum_squares_visible().
      
      Change-Id: I1173bc6941a3b895381b9fcb73b533b5afc31aab
      d62e2a3a
  16. 16 Jun, 2017 1 commit
  17. 15 Jun, 2017 2 commits
    • Urvang Joshi's avatar
      Remove 'rddiv' member from various structs. · 70006e46
      Urvang Joshi authored
      This was initialized from a const and never modified. But was still
      passed around and stored in multiple structs.
      
      Removed these 'rddiv' member variables and now RDOPT() and RDOPT_DBL()
      always use the const RDDIV_BITS directly.
      
      Change-Id: I1a8dfd2c8fa857d466ad1207b4f0dd6ec07eafb8
      70006e46
    • Zoe Liu's avatar
      Add the new coding tool "speed_refs" · d1ac0321
      Zoe Liu authored
      This patch will not cause any performance change regardless of whether
      speed_refs is on or off.
      
      This coding tool is targeted to speed up the encoder side reference
      frame selection process. The essential idea is to have two scanning
      passes for each superblock of size 64x64 and this CL lays out the
      initial framework but no reference frame selection is done yet:
      
      First scanning pass - To simplify the partition and the mode
      candidates (e.g. considering nearestmv / nearmv / zeromv only) and
      identify the best reference frame prediction candidates;
      
      Second scanning pass - Use the best reference frame candidate(s)
      obtained from the first pass to encode the current superblock.
      
      Change-Id: I11266d468de3077271a5e866eebd341a8014d136
      d1ac0321
  18. 14 Jun, 2017 2 commits