1. 27 Mar, 2017 1 commit
  2. 25 Mar, 2017 1 commit
  3. 24 Mar, 2017 5 commits
  4. 23 Mar, 2017 2 commits
    • David Barker's avatar
      Re-enable av1_nmv_ctx() when ext-inter is enabled · 9620bcd5
      David Barker authored
      Currently, mbmi->ref_mv_idx can be set to a nonzero value
      on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
      NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
      decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
      has previously been disabled when ext-inter is enabled, to
      prevent a mismatch due to this.
      
      This patch changes the encoder behaviour to match the decoder
      behaviour.
      
      Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
      9620bcd5
    • Debargha Mukherjee's avatar
      Split current block samples for warp estimation · e8e6cad7
      Debargha Mukherjee authored
      Change-Id: Iebc74024475c7cb88650b65df9f23b1a5e70021c
      e8e6cad7
  5. 22 Mar, 2017 1 commit
  6. 21 Mar, 2017 2 commits
    • Thomas Daede's avatar
      Remove "best" deadline parameter from aomenc. · 6eca835f
      Thomas Daede authored
      This option increases runtime by 20% and is only marginally
      better than good cpu-used=0:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3382 | -0.3911 | -0.4875 |  -0.2982 | -0.2992 | -0.3164 |    -0.3686
      
      It is also not well integrated with speed_features.c, which is
      the main reason for the removal.
      
      Change-Id: If88c50367f63b860ad57f650869b978ec7734aad
      6eca835f
    • Fergus Simpson's avatar
      handle_inter_mode: Motion mode RD calc to function · 10fb9fb2
      Fergus Simpson authored
      Refactors the end of handle_inter_mode into a new funciton. This code
      is responsible for calculating an accurate RD for the SIMPLE_TRANSLATION
      motion mode in the simplest case, and does the same for other motion
      modes as their experiments are enabled.
      
      This patch aims to do as little as possible to the code inside the
      function - that is left to later patches to reduce the complexity of
      this diff.
      
      Change-Id: I62bf5aae34594b0a1dc4813aeba99e675d6db374
      10fb9fb2
  7. 20 Mar, 2017 3 commits
    • Debargha Mukherjee's avatar
      Add config flags and macros to control ext-inter · 37f6fe61
      Debargha Mukherjee authored
      Adds a dependent config flag 'interintra' to turn on/off interintra
      modes altogether.
      Adds a dependent config flag 'wedge' to turn on/off wedge compound
      for both interinter and interintra.
      
      Adds another macro to change wedge predictors to use
      only 0, 1/2, or 1 weights.
      
      From now, use
      --enable-ext-inter --enable-wedge --enable-interintra to get the
      same behavior as the old --enable-ext-inter.
      
      Change-Id: I2e787e6994163b6b859a9d6431b87c4217834ddc
      37f6fe61
    • hui su's avatar
      Add av1 prefix to inv_txfm_add · bb9c73b0
      hui su authored
      Change-Id: Id7cbb89ba344770297ef42bf1b09a2b9ba5a1378
      bb9c73b0
    • Alex Converse's avatar
      Disable OD_ASSERTS asserts when NDEBUG is set · 76b89631
      Alex Converse authored
      Change-Id: I3d411ef4a6a1be5e7e644f210a5296dbe18807eb
      76b89631
  8. 17 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Macro to disable warped/obmc_causal with global motion · 19234cc2
      Sarah Parker authored
      Enabling SEPARATE_GLOBAL_MOTION will remove the ability for
      a block that uses zeromv with global motion to pick warped_causal
      or obmc_causal as the motion mode. When this is enabled there is:
      
      0.05% drop on lowres for global + warped enabled
      0.15% drop on midres for global + warped enabled
      
      0.12% drop on lowres with global + motion var enabled
      0.07% drop on midres with global + motion var enabled
      No performance change for global, warped, or motion var individually.
      
      Change-Id: Idbfb8dd7a93da14902438504b06a08e5212e48cb
      19234cc2
  9. 16 Mar, 2017 1 commit
    • Alex Converse's avatar
      Account for elided extrabits during rate cost calculation. · da3d94fe
      Alex Converse authored
      Fixes some rd-debug mismatches coding cat6 tokens with tx size < 32x32.
      For these tokens the high extrabits are elided during tokenization and
      detokenization, but the rd cost was computed with the old tables from
      VP9 where these high extrabits are always coded.
      
      Change-Id: I4a9a6ea822ff821e1932c351d43a57bdb4d6d466
      da3d94fe
  10. 15 Mar, 2017 1 commit
    • Thomas Davies's avatar
      NEW_TOKENSET: improve RDO. · 10525758
      Thomas Davies authored
      Modify av1_coef_cost to reflect that EOB values are sent
      with each non-zero coefficient, and modify chroma weight
      to preserve original chroma balance.
      
      AWCY, objective-1-fast, new_token+ec_adapt vs ec_multisymbol:
      
      PSNR YCbCr:     -0.43%      -0.52%      -0.58%
      PSNRHVS:        -0.81%
      SSIM:           -0.73%
      MSSSIM:         -0.93%
      CIEDE2000:      -0.36%
      
      This change:
      
      PSNR YCbCr:     -0.15%      0.83%      0.77%
      PSNRHVS:        -0.24%
      SSIM:           -0.23%
      MSSSIM:         -0.24%
      CIEDE2000:       0.24%
      
      Change-Id: I7f2dd9f3cd24bb64eb4131cba94dda466b9691b0
      10525758
  11. 14 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Fix sub8x8 rd costing to include global motion prediction · b3ebed1c
      Sarah Parker authored
      One codepath originally skipped a function which forks between
      gm prediction and regular inter prediction. This change fixes this
      for both high bit depth and regular bit depth.
      
      Change-Id: I741d67a7c89eb6eb0cd35c02219739dc3ddb3841
      b3ebed1c
  12. 11 Mar, 2017 1 commit
    • Fergus Simpson's avatar
      handle_inter_mode: rename opt_args to args · 9f7ca0b7
      Fergus Simpson authored
      The addition of a 2D array to the HandleInterModeArgs struct means there
      is now a non-optional member in the opt_args struct passed to
      handle_inter_mode and its child functions. Since opt_args no longer
      consists solely of optional members I've renamed it args.
      
      Change-Id: I7f3b22188777d8fdac2c244746638c34b5d8636c
      9f7ca0b7
  13. 10 Mar, 2017 2 commits
    • Fergus Simpson's avatar
      rdopt: move/remove 2d arrays in pick_inter_mode_sb · 3424c2de
      Fergus Simpson authored
      Two 2D arrays were passed to HandleInterMode and not used elsewhere.
      
      One has been added to the HandleInterModeArgs struct to
      simplify handle_inter_mode's signature and the the calling function.
      
      The other has been unread since commit
      beacb3ff. That patch removed the
      "skip_txfm optimization" but left the single_skippable array in place,
      even though it was no longer read. Since the array's only usage has been
      removed, this patch removes the variable outright.
      
      Change-Id: I6e680a9ddc6f67961153819a62009751252757a8
      3424c2de
    • Sebastien Alaiwan's avatar
      Rename a macro · d16a8365
      Sebastien Alaiwan authored
      Change-Id: I4d6db116692b9a236ae8555e4d4e5d0c403f6c13
      d16a8365
  14. 09 Mar, 2017 1 commit
    • Fergus Simpson's avatar
      rdopt: refactor interpolation_filter_search() · de18e2b5
      Fergus Simpson authored
      The interpolation filter search used to be performed in a code block in
      handle_inter_mode(). This change breaks that code out into its own
      function to reduce the length of handle_inter_mode and ecapsulate its
      functionality, making both functions more readable.
      
      Attention has been paid to make as many arguments constants as can be.
      
      Change-Id: I3fd484137fc0d16a47dba0b18ce0e2b349d24446
      de18e2b5
  15. 08 Mar, 2017 4 commits
    • Fergus Simpson's avatar
      hbd: remove unused variable "use_hbd" · f80a0581
      Fergus Simpson authored
      The variable "use_hbd" was defined but not used in four places in the
      codebase. The warning that it wasn't used was missed by Jenkins
      because it only tries one experimental flag at a time, but these
      definitions were inside nested experimental flag conditions. Both
      CONFIG_WARPED_MOTION and CONFIG_AOM_HIGHBITDEPTH had to be set for the
      variables to be defined.
      
      This patch deletes the unused definitions to remove the unused variable
      warnings when the AV1 encoder and/or decoder are built with warped
      motion and high bitdepth configured.
      
      Change-Id: I9e80523db05a7a19cebe3ec8085a4a1e4b198c52
      f80a0581
    • Yaowu Xu's avatar
      localize the use of CONFIG_DEPENDENT_HORZTILES · 531d6afd
      Yaowu Xu authored
      This commit changes is_inside() function to reduce the code polution
      of CONFIG_DEPENDENT_HORZTILES.
      
      Change-Id: Ic065cc337e0246379d87966a49ddeb48b975c5be
      531d6afd
    • Fergus Simpson's avatar
      rdopt: fix wrong #endif · 0b96b479
      Fergus Simpson authored
      The comment after the affected #endif was incorrect. This patch updates
      it so that it reflects the condition that it ends.
      
      Change-Id: Ib5c39a9444e72b2582301d9e4b03d3c56f9cf304
      0b96b479
    • Fergus Simpson's avatar
      handle_inter_mode: add handle_newmv() · 4550963b
      Fergus Simpson authored
      Refactors newmv handling code in handle_inter_mode into its own
      function. This makes handle_inter_mode shorter and easier to
      understand.
      
      Change-Id: I152a61ee8a7f323936b4a772f14f8e286724443d
      4550963b
  16. 07 Mar, 2017 1 commit
    • Fergus Simpson's avatar
      handle_inter_mode: loop mv rate calculation · efbbe700
      Fergus Simpson authored
      In two cases the bit cost of a movement vector was calculated twice
      and summed when there were mutliple refs. The first result was
      assigned and the second was added. Now they are both added in a loop
      to reduce duplication.
      
      Change-Id: Iadcaec1dc4c2583fbb5cfd07bea6480756692a01
      efbbe700
  17. 04 Mar, 2017 1 commit
  18. 03 Mar, 2017 2 commits
    • Yue Chen's avatar
      Restrict the number of neighbors in obmc mode · 5329a2bf
      Yue Chen authored
      Enable obmc mode only when there are <= 2 left neighbors and <=2
      above neighbors. Also disable it when there is no overlappable
      neighbors.
      
      Gain in AWCY test: 1.60%, was 1.64% when there is no restriction
      
      Change-Id: I2d82ef4fb4daa9b0843ac8844f99b9f412c4f379
      5329a2bf
    • Fergus Simpson's avatar
      rdopt.c: add comments to #endif's · 4063a68b
      Fergus Simpson authored
      Fixes missing and wrong comments for all of the #endif's in rdopt.c to
      improve readability.
      
      Change-Id: Idd557a9e6244bbc335c2a646d150ed59074ee7a1
      4063a68b
  19. 02 Mar, 2017 1 commit
    • Sarah Parker's avatar
      Turn off global motion for sub8x8 blocks · ae7c458a
      Sarah Parker authored
      Lowres: 0.03% improvement, 1% improvement on waterfall_cif.y4m
      Midres: 0.085% overall improvement, 1.253% improvement on station2_480p25.y4m
      Change-Id: I3872934d978bb4ca828c6b9acd2fdb951d9da299
      ae7c458a
  20. 01 Mar, 2017 2 commits
    • Jingning Han's avatar
      Fix compiling warnings in var-tx and pvq · ab77e73b
      Jingning Han authored
      Change-Id: Ie836a113978028f3bde2acd31061d9a663547087
      ab77e73b
    • Fergus Simpson's avatar
      handle_inter_mode: add arguments struct · 073c6f33
      Fergus Simpson authored
      Adds the arguments struct HandleInterModeArgs to hold arguments that
      are conditional on compiled features. This means that there are no
      longer #if's in the function's argument list.
      
      Some of the array pointers that were optional arguments have been
      made array members in the new struct, but not all. This is due to the
      function being called with either references to arrays that are
      maintained between trying different modes OR with references to
      "dummy" arrays initialized to zero. The arrays that are always used
      are now members of the HandleInterModeArgs struct.
      
      Change-Id: I3076fd53c3cddf5a6d14bbe7d23a889465ed716d
      073c6f33
  21. 28 Feb, 2017 3 commits
    • Debargha Mukherjee's avatar
      Assign offsets correctly to compute warped motion · 246d2737
      Debargha Mukherjee authored
      Offsets for the least-squares for affine motion computation
      are now set at the top left corner of the current block.
      
      Improves stability and performance a little.
      
      Change-Id: I68ca7e74c6102502daa8ca3373af2b2dd59400c3
      246d2737
    • Jingning Han's avatar
      Disable compound mode in sub8x8 coding blocks · c41a549a
      Jingning Han authored
      Disable the support of compound prediction modes for sub8x8 codking
      blocks. Make the rate-distortion optimizations process account for
      such constraints.
      
      With the use 2x2 chroma prediction block, this makes the wrost case
      number of inter predictors same as vp9. It affects the coding
      gains by 0.35% for lowres, 0.17% for midres, and 0.08% for hdres.
      
      The encoding speed is up by 10%.
      
      Change-Id: Ieb2a83030676911baa403e586f1f800cbf485d81
      c41a549a
    • Yaowu Xu's avatar
      Use correct segment · 1e2aae1a
      Yaowu Xu authored
      Segmment based lossless flag is used in select transform size, this
      commit fixes a bug where wrong segment_id is used in such selection.
      
      BUG=aomedia:350
      
      Change-Id: Ibc981c779739849bac00447155180abbd319eb28
      1e2aae1a
  22. 27 Feb, 2017 3 commits
    • Debargha Mukherjee's avatar
      Better block center in gm_get_motion_vector fn · f6dd3c68
      Debargha Mukherjee authored
      Also supports homography models for future experiments.
      
      Change-Id: I4510540f54133e063891ed491c95c087222f7810
      f6dd3c68
    • Debargha Mukherjee's avatar
      Adds macro to test cb4x4 w/o sub8x8 txtype search · 094c9439
      Debargha Mukherjee authored
      USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 macro added to turn
      tx_type search on/off for sub8x8 in cb4x4 mode.
      
      The purpose is mainly to analyze the coding gains from cb4x4
      but this later can be made into a speed feature as well.
      
      Change-Id: Ic22026c373eebba87f324689ac5686a2844315b6
      094c9439
    • Debargha Mukherjee's avatar
      Integerize warped motion computation · e6eb3b53
      Debargha Mukherjee authored
      Integerizes computation of the least squares for warped motion.
      The model is restricted to only Affine. Affine seems easiest
      to compute and integerize since it can be split into two 3-dim
      least squares problems, as opposed to rotation-zoom which needs
      a 4-dim least-squares problem to be solved.
      The current implementation requires only one division per block.
      
      BDRATE impact is mminimal. The upgrade to the affine model improves
      coding efficiency but integerization also degrades efficiency a
      little. Overall there is a net gain of about -0.07% BDRATE on
      the lowres set.
      BDRATE lowres: -1.113% with ----enable-warped-motion vs. without
      (up from -1.044%).
      
      Change-Id: I6b9216ac0737d76f59054293eabee48e17739ec4
      e6eb3b53