1. 22 Feb, 2017 6 commits
  2. 18 Feb, 2017 1 commit
  3. 17 Feb, 2017 2 commits
    • Debargha Mukherjee's avatar
      Support trapezoidal models for global motion · 5dfa9300
      Debargha Mukherjee authored
      Adds functinoality for least-squares, RANSAC as well as encoding and
      decoding with new constrained homographies that warp blocks to horizontal
      and/or vertical trapezoids. This is for future experimentation. None
      of the models are actually enabled in the code.
      
      Change-Id: I1936018c6b11587d6fd83c3a2c63548cb641b33f
      5dfa9300
    • Yushin Cho's avatar
      Remove PVQ_CHROMA_RD codes · 5c207296
      Yushin Cho authored
      Which was a workaround to balance the quality between
      luma and chroma when PVQ is enabled, by
      1) skipping PVQ DC RDO for chroma and
      2) using smaller lambda value (x0.5) for intra prediction of chroma,
      intended to spend more bits and thus improve quality for chroma.
      
      The change in metric for 5 frames of objective-1-fast is:
      PSNR  PSNR-HVS  SSIM  CIEDE-2000  PSNR Cb PSNR Cr  MS-SSIM
      -1.45 -1.54     -1.46 4.62        13.71   14.87     -1.47
      
      For still images (subset1)
      PSNR  PSNR-HVS  SSIM  CIEDE-2000  PSNR Cb PSNR Cr  MS-SSIM VMAF
      -1.52 -1.54     -1.60 2.56        11.92   12.17     -1.52  -1.66
      
      Change-Id: I31c4d7a7de2939f6004c112649f7303f0e944156
      5c207296
  4. 16 Feb, 2017 2 commits
  5. 13 Feb, 2017 2 commits
  6. 08 Feb, 2017 1 commit
  7. 03 Feb, 2017 2 commits
    • Yue Chen's avatar
      Remove interp filter for non-translation global mv · 19e7aa82
      Yue Chen authored
      BDRATE results:
      lowres: -0.880% (up from -0.844%)
      
      Change-Id: I017c0beddcc687148fed33c1e9963e05f1eaf6ea
      19e7aa82
    • David Michael Barr's avatar
      Correlate od_compute_dist_8x8 with sum of squared error · d091b809
      David Michael Barr authored
      Piecewise linear fit without activity masking on subset3 intra
      and objective-1-fast inter, by simple linear regression.
      
      In combination with 79c0f32c "Remove DCT from od_compute_dist_8x8",
      this gives a even trade between perceptual and non-perceptual metrics.
      
      av1_daala_dist_30f@2017-01-23T21:32:27.902Z
       -> daala_dist_scale10_30f@2017-01-31T21:52:07.635Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      2.1080 |  2.9645 |  3.4697 |  -2.2086 | 0.2541 | -2.5232 |     2.1645
      
      Piecewise linear-quadratic fit with activity masking, by same method.
      
      The total effect of activity masking and daala-dist changes, with PVQ:
      
      av1_pvq_5f@2017-01-31T01:05:24.219Z
       -> av1_float_pvq_dist_scale_AM_5f_Jan31_crfix@2017-02-02T15:14:40.477Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM |  MS SSIM | CIEDE 2000
      22.5041 | 42.6349 | 40.8516 | -10.3510 | -6.8030 | -16.9057 |    21.2613
      
      Change-Id: I9b513509a03aa058dc5c1479c01d62c8fc363a34
      d091b809
  8. 31 Jan, 2017 3 commits
    • Urvang Joshi's avatar
      Bugfix: Fix an assert being triggered because of palette. · 451e0f22
      Urvang Joshi authored
      rd_pick_palette_intra_sby() was being passed a dummy 'best_mbmi' in
      one case, and later that dummy value could be assigned to 'mbmi'
      causing invalid values in 'mbmi'.
      
      This bug was introduced by:
      de0c70a2: Refactor rd_pick_intra_sby_mode()
      
      See the referenced bug for a repro case.
      
      BUG=aomedia:337
      
      Change-Id: If6b0aa329f4e4902cd4de8a5e09bc5d9196492a1
      451e0f22
    • David Barker's avatar
      Fix ext-inter + compound-segment + supertx · 426a997e
      David Barker authored
      Allow the above combination of experiments to work together
      correctly, fixing an encode/decode mismatch bug when they
      were all enabled.
      
      This change causes build_masked_compound(_highbd) to only
      ever be called if CONFIG_SUPERTX is off, so wrap these functions
      in an '#if !CONFIG_SUPERTX' block.
      
      BUG=aomedia:313
      
      Change-Id: Ic3886bc69ba9624b8fcb0a4c2d71fc64d2c0f22c
      426a997e
    • Sarah Parker's avatar
      Make global_motion work with ext_inter · c2d38715
      Sarah Parker authored
      Change-Id: I2a490e144099d7692296992528192c1f11d2c06f
      c2d38715
  9. 30 Jan, 2017 3 commits
  10. 27 Jan, 2017 2 commits
  11. 26 Jan, 2017 2 commits
    • Urvang Joshi's avatar
      Palette: Don't store tokens for pixels outside image boundary. · 56ba91bb
      Urvang Joshi authored
      If part of a block falls outside right and/or bottom image boundary,
      then only store tokens for the part of it within the boundary.
      
      Also, consider only the part of the block within the boundary when
      calculating the number of colors in the image, deciding the base
      colors for palette, RD calculation etc.
      
      The part of color map corresponding to pixels outside the image
      boundary is padded with color indices copied from same row/column.
      This behavior is similar to how pixels outside the boundary are padded.
      
      For screen_content set, this is improves compression performance by
      0.038 overall. One clip, in particular, has a significant gain of 0.8.
      
      Change-Id: I745ca032f313c5041aacc98c03ae4bfc33d840de
      56ba91bb
    • Debargha Mukherjee's avatar
      Fix mismatch w/ ext-inter/warped-motion/motion-var · 8b613216
      Debargha Mukherjee authored
      Fixes a mismatch issue with ext-inter+motion-var+warped-motion
      due to unset num_proj_ref values.
      
      BUG=aomedia:311
      
      Change-Id: I042551f6c53e8cc005f2133704a03b243c98c12a
      8b613216
  12. 25 Jan, 2017 3 commits
  13. 24 Jan, 2017 2 commits
    • David Barker's avatar
      Make ext-inter use new rectangular intra predictor · 839467f4
      David Barker authored
      Now that https://aomedia-review.googlesource.com/#/c/6729/
      has been merged, build_intra_predictors_for_interintra() is
      now redundant, so replace it by a direct call to
      av1_predict_intra_block() and remove the old function.
      
      Reset rect_interintra back to 1.
      
      To do this, we need to make the intra predictor take a
      BLOCK_SIZE instead of a TX_SIZE. This is because we need to
      be able to predict 32x64 and 64x32 blocks, but there is no
      TX_32X64 or TX_64X32.
      
      No effect on output or performance.
      
      Change-Id: I8c185a211c97a85012cc54ec293c785a693608ed
      839467f4
    • Jingning Han's avatar
      Fix conflicts between ext-inter and cb4x4 modes · 61418bbd
      Jingning Han authored
      Resolve the broken coding pipeline in ext-inter experiment when
      cb4x4 mode is enabled. Turn off rectangular inter-intra mode.
      This needs some more work to hook up. Given that it gives fairly
      limited coding performance gains, disable it for the moment.
      
      BUG=aomedia:309
      
      Change-Id: I9b406df6183f75697bfd4eed5125a6e9436d84b0
      61418bbd
  14. 23 Jan, 2017 2 commits
    • Emil Keyder's avatar
      Rename NONE to NONE_FRAME. · 01770b3e
      Emil Keyder authored
      This follows the naming for the other frame types, and allows libaom
      to be compiled against other libraries that also #define NONE.
      
      Change-Id: Ic2e2814587bbc5ea67385a9af775396d29b7dde0
      01770b3e
    • Yushin Cho's avatar
      Add a new experiment, DAALA_DIST · 7a428ba2
      Yushin Cho authored
      This commit adds a new experiment, Daala's distortion function,
      which is designed to better approximate perceptual distortion
      in 8x8 pixel blocks.
      
      This experiment is expected to work best with PVQ.
      
      It measures the variance of overlapped 4x4 regions in the 8x8 area,
      then uses these variances to scale the MSE of weighted frequency domain
      distortion of 8x8 block.
      
      Since AV1 calculates distortion in blocks as small as 4x4, it is not possible to
      directly replace the existing distortion functions of AV1,
      such as dist_block() and block_rd_txf().
      Hence, there has been substantial changes in order to apply
      Daala's 8x8 distortion function.
      The daala distortion function is applied
      after all 4x4 tx blocks in a 8x8 block are encoded (during RDO),
      as in below two cases:
      1) intra/inter sub8x8 predictions and
      2) 4x4 transform with prediction size >= 8.
      
      To enable this experiment, add '--enable-daala-dist' with configure.
      
      TODO: Significant tuning of parameters is required since the function has
      originally came from Daala thus most parameters would not work
      correctly outside Daala.
      The fact that chroma distortion is added to the distortion of AV1's RDO is
      also critical since Daala's distortion function is applied to luma only
      and chroma continues to use MSE.
      
      Change-Id: If35fdd3aec7efe401f351ba1c99891ad57a3d957
      7a428ba2
  15. 22 Jan, 2017 1 commit
  16. 19 Jan, 2017 3 commits
    • Sarah Parker's avatar
      Do masked motion search based on COMPOUND_TYPE · 2e604887
      Sarah Parker authored
      Change-Id: I2d1b5f57a3bb19eb8c00eb4c2e6c7835047dc4ac
      2e604887
    • hui su's avatar
      Speed up keyframe encoding with model RD · 308a6397
      hui su authored
      model_rd_for_sb() can quickly compute an approximated RD cost. We
      use the estimated RD cost to skip running full RD for some bad
      mode candidates.
      
      This only affects keyframe encoding. Observed 22% encoding time
      reduction, and 0.03% compression loss.
      
      Change-Id: I793f1eda98d67e8da9bc1648dcf272222b30a556
      308a6397
    • Jingning Han's avatar
      Remove an outdated assertion · 25f2f7d9
      Jingning Han authored
      The check condtion on block size is deprecated. No need to keep
      this assertion around.
      
      Change-Id: Icf2dde2a678cbbce837798877634b7be54e86e67
      25f2f7d9
  17. 18 Jan, 2017 3 commits
    • Yue Chen's avatar
      Add rd loop of NCOBMC · f27b1605
      Yue Chen authored
      At the final round of encoding of each superblock, will go through
      each prediction block to check if ncobmc mode is better than non-
      overlapped prediction. Note that causal obmc mode is dumped here.
      
      PSNR gain (MOTION_VAR + NCOBMC): -2.845% lowres
      
      Change-Id: Ibe504f7f1882446a08ba426e1e9824bca73bf655
      f27b1605
    • Yunqing Wang's avatar
      Fix the transform size/type search condition · 2615d6ea
      Yunqing Wang authored
      While encoding a key frame with quantizer = 0 and aq-mode = 1,
      for some segment_ids, the quantizer got modified and could be
      > 0, and lossless[segment_id] might be 0 or 1 depending on the
      segment_id. Namely, blocks with lossless[segment_id] = 0 were
      allowed to choose transform sizes other than 4x4. This conflicted
      with tx_mode which was a frame-level decision. In this patch,
      the transform search condition was modified so that the transform
      choice was consistent with tx_mode of that frame.
      
      BUG=aomedia:104
      
      Change-Id: Ia39127b5dee129283a133cf5e4000da62d9e0f1c
      2615d6ea
    • Urvang Joshi's avatar
      Enable rectangular transforms for Intra also. · feb925fe
      Urvang Joshi authored
      These are under EXT_TX + RECT_TX experiment combo.
      
      Results
      =======
      
      Derf Set:
      --------
      All Intra frames: 1.8% avg improvement (and 1.78% BD-rate improvement)
      Video: 0.230% avg improvement (and 0.262% BD-rate improvement)
      
      Objective-1-fast set
      --------------------
      Video: 0.52 PSNR improvement
      
      Change-Id: I1893465929858e38419f327752dc61c19b96b997
      feb925fe