1. 31 Jan, 2017 3 commits
    • Sarah Parker's avatar
      Make global_motion work with ext_inter · c2d38715
      Sarah Parker authored
      Change-Id: I2a490e144099d7692296992528192c1f11d2c06f
      c2d38715
    • Thomas Davies's avatar
      EC_MULTISYMBOL: reconfigure coefficient decoding loop. · 0583c984
      Thomas Davies authored
      Preparation for merging EOB into multi-symbol encoding.
      The more_data flag for the first position is moved
      out of the loop, and for remaining positions is
      moved in with the previous coefficient. This way it
      can always be associated with the previous non-zero
      coefficient.
      
      Change-Id: Idfb38058f4c415127b4d9a9beeb8ea2d3a2ec1a2
      0583c984
    • Thomas Davies's avatar
      EC_MULTISYMBOL: merge ZERO_TOKEN into coding scheme. · 0ccefe21
      Thomas Davies authored
      Zero, one, and two or more coded as one symbol (head).
      Remaining tokens coded as a tail symbol.
      
      The pareto CDF distribution is adjusted to cover tokens from
      two onwards.
      
      Change-Id: I98b33fab6b9f52690f6ad618ac55e725a97be056
      0ccefe21
  2. 30 Jan, 2017 2 commits
  3. 27 Jan, 2017 3 commits
  4. 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
    • 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
  5. 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
  6. 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
  7. 23 Jan, 2017 4 commits
    • Fangwen Fu's avatar
      enable explicit temp mv prediction signaling · 8d164de2
      Fangwen Fu authored
      Change-Id: Ieb2922c3df4ef4f8514b8a6df6f9a8fc45ef3cf4
      8d164de2
    • 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
    • Jingning Han's avatar
      Support filter-intra in cb4x4 mode · 48b1cb35
      Jingning Han authored
      This commit resolves an enc/dec mismatch issue when both filter-intra
      and cb4x4 modes are enabled.
      
      BUG=aomedia:253
      
      Change-Id: I4026d93c00a819f2ce69aedba9d34a774319acbf
      48b1cb35
  8. 21 Jan, 2017 2 commits
    • 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
    • Jingning Han's avatar
      Support rectangular tx size in cb4x4 mode · 3daa4fda
      Jingning Han authored
      This commit makes ext-tx and rect-tx experiments supported in the
      cb4x4 mode. It resolves an enc/dec mismatch issue when all the
      transform experiments are enabled.
      
      The coding gains are
              ext-tx + rect-tx   cb4x4    vartx     total
      lowres      4.0%           2.3%      0.5%     6.9%
      
      The encoding speed is about the same when cb4x4 and vartx are
      further enabled.
      
      BUG=aomedia:139
      
      Change-Id: I3fdabc6d5de23ceb78ac0751a9bf7332ebc0a3ac
      3daa4fda
  9. 20 Jan, 2017 7 commits
  10. 19 Jan, 2017 5 commits
  11. 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
  12. 13 Jan, 2017 3 commits
  13. 12 Jan, 2017 3 commits
    • 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
    • Nathan E. Egge's avatar
      Move from Daala accounting to AOM accounting. · cefb4094
      Nathan E. Egge authored
      Replace all instances of Daala's OD_ACCOUNTING with those specified by
       CONFIG_ACCOUNTING.
      
      Change-Id: Ibb59fc5df0ce4b0528b15296bf2f14029c414bc0
      cefb4094
    • Nathan E. Egge's avatar
      Don't include Daala EC headers directly. · cceac33a
      Nathan E. Egge authored
      The generic coder now uses the AOM entropy coder API and no longer
       needs to include the entenc.h and entdec.h headers.
      
      Change-Id: I213acb5b6bd8a3fe60dc096b83d76ae72315e9de
      cceac33a