1. 01 Sep, 2016 3 commits
  2. 29 Aug, 2016 1 commit
    • Aamir Anis's avatar
      Tiling in loop restoration + cosmetics · e40e6e57
      Aamir Anis authored
      Frame can be split into rectangular tiles for application of separate
      bilateral or Wiener filters per tile. Some variable names changed for
      better readability.
      
      Change-Id: I13ebc4d0b0baf368e524db5ce276f03ed76af9c8
      e40e6e57
  3. 23 Aug, 2016 1 commit
  4. 22 Aug, 2016 1 commit
  5. 18 Aug, 2016 2 commits
  6. 16 Aug, 2016 3 commits
    • Sarah Parker's avatar
      Switch order of gm parameters for affine model · bec4fbe4
      Sarah Parker authored
      This was originally subtracting 1 from the wrong element in the
      parameter set.
      
      Change-Id: I790aafc505f7a8fe7bb00d7d6c62549487a0980f
      bec4fbe4
    • Yaowu Xu's avatar
      Port dering experiment from aom · 253c001f
      Yaowu Xu authored
      Mannually cherry-picked:
      15791332 Use OD_DIVU for small divisions in temporal_filter.
      03122298 Replace divides by small values with multiplies.
      9c48eec7 Removing divisions from od_dir_find8()
      0950ed82 Merge "Port active map / cyclic refresh fixes to vp10."
      efefdad7 Port active map / cyclic refresh fixes to vp10.
      1eaf748c Port switch to 9-bit rate cost to aom.
      0b1606e7 Only build deringing code when --enable-dering.
      e2511e15 Deringing cleanup: don't hardcode the number of levels
      8fe5c5d6 Rename dering_in to od_dering_in to sync with Daala
      4eb1380d Makes second filters for 45-degree directions horizontal
      7f4c3f58 Removes the superblock variance contribution to the threshold
      3dc56f93 Simplifying arithmetic by using multiply+shift
      cf2aaba9 Return 0 explicitly for OD_ILOG(0).
      49ca22aa Use the Daala implementation of OD_ILOG().
      85187243 Fix compiler warning in od_dering.c.
      485d6a69 Prevent multiple inclusion of odintrin.h.
      51b7a998 Adds the Daala deringing filter as experimental
      
      Note that a few of the changes were already in libvpx codebse.
      
      Change-Id: I1c32ee7694e5ad22c98b06ff97737cd792cd88ae
      253c001f
    • Yaowu Xu's avatar
      Port commits related to clpf and qm experiments · 0818a7c8
      Yaowu Xu authored
      Manually cherry-picked following commits from AOMedia git repository:
      bb2727c2 Sort includess for "clpf.h"
      c297fd00 Add quantisation matrix range parameters.
      0527894f Add encoder option and signaling for quant matrix control.
      4106232b Turn off trellis coding for quantization matrices.
      4017fca3 Modify tests to allow quantization matrices.
      1c122c24 Add quant and dequant functions for new quant matrices.
      95a89994 Enable CLPF
      f72782bb Fix a build issue
      73bae509 Add quantisation matrices and selection functions
      33208d20 Added support for constrained low pass filter (CLPF)
      
      Change-Id: I60fc1ee1ac40e6b9d1d00affd97547ee5d5dd6be
      0818a7c8
  7. 12 Aug, 2016 1 commit
  8. 04 Aug, 2016 1 commit
    • Zoe Liu's avatar
      Code refactoring on Macros related to ref frame numbers · 1af28f02
      Zoe Liu authored
      We have renamed following Macros to avoid name confusion:
      
      REFS_PER_FRAME --> INTER_REFS_PER_FRAME
      (= ALTREF_FRAME - LAST_FRAME + 1)
      MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME
      (= ALTREF_FRAME - INTRA_FRAME + 1)
      
      INTER_REFS_PER_FRAME specifies the maximum number of reference frames
      that each Inter frame may use.
      TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which
      counts the INTRA_FRAME.
      
      Further, at the encoder side, since REF_FRAMES specifies the maximum
      number of the reference frames that the encoder may store, REF_FRAMES
      is usually larger than INTER_REFS_PER_FRAME. For example, in the
      ext-refs experiment, REF_FRAMES == 8, which allows the encoder to
      store maximum 8 reference frames in the buffer, but
      INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may
      use up to 6 frames out of the 8 buffered frames as its references.
      Hence, in order to explore the possibility to store more reference
      frames in future patches, we modified a couple of array sizes to
      accomodate the case that the number of buffered reference frames is
      not always equal to the number of the references that are being used
      by each Inter frame.
      
      Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
      1af28f02
  9. 03 Aug, 2016 1 commit
    • Sarah Parker's avatar
      Adjust gm parameter computation to avoid mismatch · aa810c00
      Sarah Parker authored
      The gm parameters need to have WARPED_PRECISION_BITS precision
      until they are written to the bitstream because functions in
      reconinter use these parameters before they are written to
      the bitstream. Previously, the parameters weren't being converted
      to WARPED_PRECISION_BITS until they were read from the bitstream
      which causes an encode/decode mismatch.
      
      Change-Id: I31e76e9d6f7d24df21af287a72f8c01f1997304d
      aa810c00
  10. 29 Jul, 2016 1 commit
  11. 21 Jul, 2016 2 commits
    • Sarah Parker's avatar
      Add affine model to global motion · e9bd26b8
      Sarah Parker authored
      Change-Id: I9cd355a3ea344ef66a61028efa25d94f54e7e2bd
      e9bd26b8
    • Debargha Mukherjee's avatar
      Rectangular transforms 4x8 & 8x4 · e5848dea
      Debargha Mukherjee authored
      Added a new expt rect-tx to be used in conjunction with ext-tx.
      [rect-tx is a temporary config flag and will eventually be
      merged into ext-tx once it works correctly with all other
      experiments].
      
      Added 4x8 and 8x4 tranforms for use initially with rectangular
      sub8x8 y blocks as part of this experiment.
      
      There is about a -0.2% BDRATE improvement on lowres, others pending.
      
      When var-tx is on rectangular transforms are currently not used.
      That will be enabled in a subsequent patch.
      
      Change-Id: Iaf3f88ede2740ffe6a0ffb1ef5fc01a16cd0283a
      e5848dea
  12. 19 Jul, 2016 2 commits
    • sarahparker's avatar
      Change order of warped motion parameters · 78ea3b3e
      sarahparker authored
      This makes it easier to interface between global motion and warped motion
      
      Change-Id: I850e0a383969a1973f03fb207f100713cda6bb51
      78ea3b3e
    • Sarah Parker's avatar
      Add global motion parameters to compressed header · 5fa46c0b
      Sarah Parker authored
      Currently nothing is implemented to compute GM parameters, this
      just adds the capability to send them in the bitstream if they
      were computed. Still need to implement the reconstruction
      based on the parameters in reconinter.
      
      Change-Id: I72aea3c6a9de9f5a40f96da76c82b54a52781fe2
      5fa46c0b
  13. 18 Jul, 2016 1 commit
  14. 13 Jul, 2016 1 commit
    • Geza Lore's avatar
      Optimize and cleanup obmc predictor and rd search. · 4c4f04ac
      Geza Lore authored
      Use vpx_blend_a64_hmask and vpx_blend_a64_vmask to speed up
      computing the obmc predictor. Clean up calc_target_weighted_pred.
      
      Encoder speedup: 1.3%
      Decoder speedup: 6.5%
      
      Change-Id: I0c774fe53d22399e92a10d1daf3af0010d88d2c5
      4c4f04ac
  15. 01 Jul, 2016 1 commit
    • Wei-ting Lin's avatar
      Remove reference frame buffer update for show_exsiting_frame · f9e38a7b
      Wei-ting Lin authored
      Originally we need to send the refresh flag and the virtual indices
      mapping for the reference frame buffer update for show_existing_frame to
      have the BWDREF_FRAME replace the LAST_FRAME.
      
      To remove sending this information, we update the the virtual indices
      of the reference frame buffer after the last_bipred_frame is encoded,
      and therefore the decoder will receive the updated reference mapping
      at the next non-show-existing frame.
      
      As a result, we can save 4 bytes per show-existing frame, and get 0.12,
      0.2, and 0.07 BDRATE improvement in lowres, derf, and midref test set
      respectively.
      
      Change-Id: I63d41ee6ea99884798f0778b789d2701e2f2d3e0
      f9e38a7b
  16. 29 Jun, 2016 1 commit
  17. 24 Jun, 2016 1 commit
  18. 17 Jun, 2016 1 commit
    • Zoe Liu's avatar
      Merge bi-predictive frames to EXT_REFS · 5805a14c
      Zoe Liu authored
      This patch removed the experiment of BIDIR_PRED and merged the feature
      into the experiment of EXT_REFS:
      
      (1) Each frame now has up to 6 reference frames, namely
          LAST_FRAME, LAST2_FRAME, LAST3_FRAME, GOLDEN_FRAME, (forward) and
          BWDREF_FRAME, ALTREF_FRAME (backward);
          LAST4_FRAME has been removed;
      (2) First pass still keeps the 8 updates:
          KF_UPDATE, LF_UPDATE, GF_UPDATE, ARF_UPDATE, OVERLAY_UPDATE, and
          BRF_UPDATE, LAST_BIPRED_UPDATE, BI_PRED_UPDATE;
      (3) show_existing_frame==1 is supported in the experiment of EXT_REFS;
      (4) New encoding modes are added for both single-ref and compound cases,
          through the use of the 2 extra forward references (LAST2 & LAST3)
          and the 1 extra backward reference (BWDREF).
      
      RD performance wise, using Overall PSNR: Avg/BDRate
              Bipred only      Prev EXT_REFS    Current EXT_REFS with bipred
      lowres: -3.474/-3.324    -1.748/-1.586    -4.613/-4.387
      derflr: -2.097/-1.353    -1.439/-1.215    -3.120/-2.252
      midres: -2.129/-1.901    -1.345/-1.185    -2.898/-2.636
      
      If in vp10/encoder/firstpass.h, change BFG_INTERVAL from 2 to 3, i.e. to
      use 2 bi-predictive frames than 1, a further improvement may be
      obtained:
                       Current EXT_REFS with bipred
              1 bi-predictive frame    2 bi-predictive frames
      lowres: -4.613/-4.387            -4.675/-4.465
      derflr: -3.120/-2.252            -3.333/-2.516
      midres: -2.898/-2.636            -3.406/-3.095
      
      Change-Id: Ib06fe9ea0a5cfd7418a1d79b978ee9d80bf191cb
      5805a14c
  19. 16 Jun, 2016 2 commits
  20. 14 Jun, 2016 3 commits
    • Geza Lore's avatar
      Select segment based loopfilter strength for supertx blocks. · 44b91a0e
      Geza Lore authored
      Segment based loopfilter strength for supertx coded blocks is now
      selected based on the minimum of all segment IDs within a supertx
      coded block (same as the quantiser settings).
      
      Change-Id: Ib056bd0d05f6a1d3b512a76deb4e2ad4db0f7dc4
      44b91a0e
    • Geza Lore's avatar
      Rework supertx segment handling and adaptive quantization. · 7dd90c9d
      Geza Lore authored
      Segment level quantizer settings for supertx coded blocks are now
      selected based on the minimum of all segment IDs within a supertx
      coded block.
      
      This also fixes the 3 adaptive quantization modes with supertx.
      
      Change-Id: Ib5db099539d4f82f240e1d745d6e5264f8b34cde
      7dd90c9d
    • Geza Lore's avatar
      Minor refactor of decode_block for supertx. · 32992fa0
      Geza Lore authored
      Exit early from function when supertx is used, rather than putting
      the bulk of the function body in a single conditional.
      
      Change-Id: I41f388a45bd46e4a6ee1c51f26782ed9bddff4e5
      32992fa0
  21. 10 Jun, 2016 2 commits
  22. 07 Jun, 2016 1 commit
  23. 28 May, 2016 1 commit
    • Zoe Liu's avatar
      Make the bi-predictive frame group interval adjustable · e89ca180
      Zoe Liu authored
      This is for the bidir-pred experiment. Previously the length of the
      bi-predictive frame group interval is fixed at 2, i.e. one
      bi-predictive frame may be inserted every other frame. This patch
      makes the length adjustable, i.e. any positive number may be
      specified, but the use of the backward ref will be turned off if the
      bi-predictive frame group interval is larger than the golden frame
      group.
      
      Further, an additional rate factor level has been added:
      INTER_LOW
      , which applies to LAST_BIPRED_UPDATE frames that are not used as
      references.
      
      Change-Id: I5514d34a64dd486bbb5756c2d0612946f598a789
      e89ca180
  24. 24 May, 2016 1 commit
    • Zoe Liu's avatar
      Added an experiment "bidir_pred" for backward prediction · cf5083d4
      Zoe Liu authored
      Major parts have been implemented as follows:
      (1) Added BRF_UPDATE, LASTNRF_UPDATE, and NRF_UPDATE in firstpass.c;
      (2) Added the handling for the scenario of
      "cpi->common.show_existing_frame == 1" at the encoder;
      (3) Added a new reference frame of BWDREF_FRAME;
      (4) Have bwd-ref work with upsampled references.
      
      Note that when the experiment of "ext_refs" turned on, this experiment
      will be turned off automatically currently.
      
      RD performance in Overall PSNR has been improved, compared against the
      VP10 baseline:
      
      lowres: Avg -3.312; BDRate -3.154
      derflr: Avg -1.927; BDRate -1.176
      midres: Avg -2.149; BDRate -2.001
      hdres : Avg -0.567; BDRate -0.588
      
      Change-Id: I4c06ff51cc20194bffbd4d2346e57ba3dcf6b62c
      cf5083d4
  25. 12 May, 2016 2 commits
    • Jingning Han's avatar
      Refactor the inter predictor for supertx · ddee66f2
      Jingning Han authored
      This commit unifies the inter predictor used in supertx at both
      encoder and decoder sides. It removes the redundant decoder
      implementations related to border extension.
      
      Change-Id: I03985cee52604a518394232fa9258ce057af9c00
      ddee66f2
    • Jingning Han's avatar
      Unify the use of inter predictor in encoder and decoder · d6c88135
      Jingning Han authored
      This commit unifies the inter predictor used in the encoder and
      decoder side for super-tx experiment. This resolves an enc/dec
      mismatch found in nextgenv2 nightly-run unit test.
      
      Change-Id: I16ab8d6063edf9d2fba79473f470f1a592cc10a0
      d6c88135
  26. 11 May, 2016 1 commit
  27. 10 May, 2016 2 commits
    • Jingning Han's avatar
      Fix high bit-depth build with ext-inter and dual-filter exps · f28550d3
      Jingning Han authored
      Change-Id: Ie4a884899d73cafea439ecab6ff4de54652b8c28
      f28550d3
    • Geza Lore's avatar
      Break tile row dependencies. · 9ab9438f
      Geza Lore authored
      When not using ext-tile, there were still dependencies between tile
      rows due to various tools (eg intra predictors) relying on the above
      row or above mode info, which can be in the above tile. This is now
      broken (the same way as it was when ext-tile is enabled) by fixing
      the appropriate predicates.
      
      Change-Id: I107dd0d8481775a792f14e05cfbbd761f16cdc1e
      9ab9438f