1. 18 Feb, 2017 1 commit
    • Nathan E. Egge's avatar
      Remove tx_size_prob from compressed header with EC_ADAPT. · b353a8ed
      Nathan E. Egge authored
      When run with --enable-ec_adapt, forward updates to the tx_size_prob
       array will not be made.
      
      objective-1-fast:
      
      master-ec_adapt-e568e6f0@2017-02-17T15:30:27.109Z ->
       tx_size-ec_adapt@2017-02-17T15:31:49.504Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0113 | -0.0112 | -0.0113 |  -0.0114 | -0.0114 | -0.0114 |    -0.0112
      
      master-ec_adapt-robust-e568e6f0@2017-02-17T20:29:45.315Z ->
       tx_size-ec_adapt-robust@2017-02-17T20:33:06.405Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0244 | -0.0243 | -0.0243 |  -0.0245 | -0.0245 | -0.0245 |    -0.0243
      
      Change-Id: I5873c5d14e3f3868997775f85fa743d2d55d81b7
      b353a8ed
  2. 17 Feb, 2017 2 commits
    • Yaowu Xu's avatar
      Change to use correct size · 0a79a1b1
      Yaowu Xu authored
      Replace obselete size "4" with correct one "tile_size_bytes". This
      fixes a decoder crash.
      
      BUG=aomedia:352
      
      Change-Id: I5b1c606a4d5be946acc68b3cfe0d0603a5591c44
      0a79a1b1
    • 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
  3. 14 Feb, 2017 1 commit
  4. 13 Feb, 2017 1 commit
  5. 12 Feb, 2017 1 commit
    • Jingning Han's avatar
      Make adapt-scan support multi-thread encoding · 5d0b310b
      Jingning Han authored
      This commit makes the adaptive scan order system support multi-
      thread encoding. It fixes unit test failure issue associated with
      AV1/AVxEncoderThreadTest.EncoderResultTest/0.
      
      BUG=aomedia:353
      
      Change-Id: I61cbf9531c8deab97fb3bb17428d0b2a63cf309a
      5d0b310b
  6. 11 Feb, 2017 1 commit
    • Zoe Liu's avatar
      Add a new experiment of REF_ADAPT · b05e5d10
      Zoe Liu authored
      Noticed that some ALTREF_FRAMEs could have used compound modes for its
      prediction but have been labeled as SINGLE_REFERENCE mode in the frame
      header. This experiment is to remove the COMPOUND_REFERENCE mode from
      the frame-level reference mode choices and only leave SINGLE_REFERENCE
      and REFERENCE_MODE_SELECT the two choices in the frame header.
      
      When turning on both ext-refs and ref-adapt, compared against ext-refs
      itself, a small gain is achieved. In PSNR, the bitrate saving gains are
      as follows:
      
      lowres: Avg -0.120%; BDRate -0.128%
      midres: Avg -0.155%; BDRate -0.128%
      
      Change-Id: I2cfff8a6b7eaa65ef863dbdbc4dd086d3b586f8c
      b05e5d10
  7. 09 Feb, 2017 1 commit
  8. 07 Feb, 2017 1 commit
    • Timothy B. Terriberry's avatar
      Scale PVQ input to OD_COEFF_SHIFT resolution. · e93acb2d
      Timothy B. Terriberry authored
      This ensures we operate at the same precision that Daala uses, which matters
      when activity masking is enabled, because of the gain companding.
      
      Metrics from Patchset 4 (which had slightly incorrect rounding):
      
      With activity masking (5 frames only):
      av1_pvq_AM_ref_5f@2017-02-07T03:37:53.702Z -> av1_pvq_AM_derf_fix2_coeff_scaling_5f@2017-02-07T00:12:24.427Z
      
          PSNR |  PSNR Cb |  PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
        0.6653 | -12.3177 | -12.1858 |   0.3350 | 4.1013 |  2.0964 |    -4.0539
      
      In particular for Netflix_Crosswalk_1920x1080_60fps_8bit_420_60f.y4m
       -5.0589 | -22.3077 | -21.2188 |  -7.0389 | -3.3715 |-5.7794 |   -13.1891
      
      I.e., it fixes the large regression with AM on this sequence, and
       substantially improves chroma (at a lesser cost to other metrics).
      
      Without activity masking (5 frames only):
      av1_pvq_ref_5f@2017-02-07T03:52:51.279Z -> av1_pvq_derf_fix2_coeff_scaling_5f@2017-02-07T00:12:48.873Z
      
          PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
        0.0989 | -0.0322 | -0.0464 |   0.1883 | 0.0795 |  0.0579 |     0.0923
      
      Change-Id: I46b808b7c8e4733465f8bebc8336dfd5b75783ec
      e93acb2d
  9. 06 Feb, 2017 1 commit
    • Alex Converse's avatar
      ec_multisymbol: Split off new new_tokenset experiment · a9598cd6
      Alex Converse authored
      The new_tokenset experiment replaces the unconstrained tokenset with a
      multisymbol alphabet in an inventive way.
      
      Tested configurations:
      new_tokenset + ec_adapt, new_tokenset, ec_multisymbol
      
      Change-Id: I846ab2e51c2a1dc3f2f9904ed8c47a8e98f853c5
      a9598cd6
  10. 04 Feb, 2017 1 commit
  11. 03 Feb, 2017 5 commits
  12. 01 Feb, 2017 1 commit
    • David Barker's avatar
      Fix encode/decode mismatches for supertx + delta-q · 3aec8d6c
      David Barker authored
      This fixes the following mismatch bugs:
      * At the bitstream level, the decoder would not read the delta_qindex
        information for supertx blocks, but the encoder always sent it,
        leading to the encoder and decoder becoming misaligned.
        The delta_qindex information is still required for supertx blocks,
        so change the decoder to read it.
      * In addition, the quantizer was not properly adjusted for supertx
        blocks at the decoder. We copy the quantizer setup code from
        non-supertx blocks.
      
      Since this does not change the encoder, it should not have any
      quality impact.
      
      Change-Id: I9a0f79c3aa66f2a5a353821e2a6f3b526636e7b4
      3aec8d6c
  13. 31 Jan, 2017 2 commits
  14. 27 Jan, 2017 1 commit
  15. 26 Jan, 2017 1 commit
    • ltrudeau's avatar
      Convert PVQ skip variable to enum · e1c0929f
      ltrudeau authored
      Creates the PVQ_SKIP_TYPE enum to encapsulate the different types of
      skipping that can be signaled by PVQ (i.e. skip: AC, DC or both).
      
      There is no impact on the bitstream. However, the decoder will now emit
      an internal error if the decoded skip flag is out of range. The
      block_skip variable is also renamed to ac_dc_coded as it stores the same
      information.
      
      Change-Id: Ib2aadaf99dc1736ea392ae5ed8948c3cdc12da9b
      e1c0929f
  16. 25 Jan, 2017 1 commit
    • hui su's avatar
      Cleanup for the entropy experiment · 0161a932
      hui su authored
      Minor performance changes
      0.03% better on lowres
      0.01% better on midres
      
      Change-Id: I7a7168f3a2a4d17a03353841a416eff6edf1e241
      0161a932
  17. 24 Jan, 2017 1 commit
    • 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
  18. 23 Jan, 2017 2 commits
    • Fangwen Fu's avatar
      enable explicit temp mv prediction signaling · 8d164de2
      Fangwen Fu authored
      Change-Id: Ieb2922c3df4ef4f8514b8a6df6f9a8fc45ef3cf4
      8d164de2
    • 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
  19. 21 Jan, 2017 1 commit
    • Jingning Han's avatar
      Make adapt-scan support rectangular transform block sizes · 758b2ceb
      Jingning Han authored
      This commit enables the adaptive scan order system support
      rectangular trnasform block sizes. It resolves the coding failure
      when rect-tx or var-tx are enabled.
      
      BUG=aomedia:143
      
      Change-Id: Ic565284e811e3f7e0ebf2e08fb3748257ce8a049
      758b2ceb
  20. 20 Jan, 2017 2 commits
  21. 19 Jan, 2017 4 commits
  22. 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
    • 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
    • Alex Converse's avatar
      Add unpoison_partition_ctx experiment · 55c6bdeb
      Alex Converse authored
      At the edges of the picture only a subset of partitions are legal. Add
      new contexts for these borders so they don't distort the probabilities of
      the interior of the image where all partitions are legal.
      
      Only include one context for each block size of each border direction
      because so few blocks fall into these contexts to begin with.
      
      objective-1-fast:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0294 | -0.0911 | -0.2382 |  -0.0481 | -0.0441 | -0.0450 |    -0.0454
      
      derf144: -0.135
      lowres: -0.124
      midres: -0.076
      hdres: -0.078
      
      Change-Id: I909b98eebb7e49273cde90154c8408febe334158
      55c6bdeb
  23. 13 Jan, 2017 1 commit
    • Yue Chen's avatar
      Separate mbmi coding and coeff coding+recon at sb level in NCOBMC · 9ab6d71f
      Yue Chen authored
      In order to use mvs from a future block in obmc, we first send mbmi
      info for the entire superblock, and then call another recursion to
      handle the coeffs and recon.
      
      Note: this change is currently not compatible with SUPERTX, later I
      will move detoken and recon for supertx to a proper place
      
      Change-Id: I19ab77fa137f53a370e68ea777f70d0306e3e303
      9ab6d71f
  24. 12 Jan, 2017 1 commit
    • Yue Chen's avatar
      Refactor write_modes_b() and decode_block() · 64550b6a
      Yue Chen authored
      In order to reduce the code complexity for handling parameter
      coding and recon separately for each 64x64 in non-causal obmc
      experiment, we break them down to two steps calling separate
      functions, one for params, the other dealing with coefficients
      and recon(decoder side).
      Note: actually the non-causal prediction can use the original
      syntax, but right now in the decoder coeff detoken and recon are
      heavily nested.
      
      Change-Id: I72d9c42ab8f38b57850d6b0481551893f1702822
      64550b6a
  25. 11 Jan, 2017 1 commit
  26. 10 Jan, 2017 1 commit
    • Nathan E. Egge's avatar
      Use aom_reader with od_decode_cdf_adapt(). · f25bae44
      Nathan E. Egge authored
      Change the od_decode_cdf_adapt() function to take an aom_reader
       struct instead of an od_ec_dec struct.
      Rename od_decode_cdf_adapt() to aom_decode_cdf_adapt().
      
      Change-Id: I0713d2f56acfea3f67f1b4087c0feee77c2e25cb
      f25bae44
  27. 09 Jan, 2017 1 commit