1. 01 Sep, 2016 2 commits
  2. 29 Aug, 2016 1 commit
    • Sarah Parker's avatar
      Implement global motion parameter computation · 4dc0f1b1
      Sarah Parker authored
      This computes global motion parameters between 2 frames by
      matching corresponding points using FAST feature and then
      fitting a model using RANSAC.
      
      Change-Id: Ib6664df44090e8cfa4db9f2f9e0556931ccfe5c8
      4dc0f1b1
  3. 26 Aug, 2016 1 commit
    • Geza Lore's avatar
      Use rectangular transforms for >= 8x8 blocks · d21982c8
      Geza Lore authored
      For rectangular blocks between 8x8 and 32x32, we can now code the
      transform size as one bigger than the largest square that fits in
      the block (eg, for 16x8, we can code a transform size of 16x16
      rather than the previous maximum of 8x8), when this oversized
      transform is coded in the bitstream, the codec will use the full
      size rectangular transform for that block (eg 16x8 transform in
      the above example).
      
      Also fixes a scaling bug in 16x8/8x16 transforms.
      
      Change-Id: I62ce75f1b01c46fe2fbc727ce4abef695f4fcd43
      d21982c8
  4. 24 Aug, 2016 1 commit
  5. 23 Aug, 2016 2 commits
  6. 22 Aug, 2016 2 commits
  7. 19 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Insert extra ARFs' in a gf group · 41d5d52d
      Wei-ting Lin authored
      Insert multiple arfs in a gf group to emulate multi-layer backward
      reference frames structure. At maximum, two extra ARF's are inserted
      in a gf group.
      
      It improves the RD performance by 0.317% in Avg in lowres dataset.
      
      Change-Id: I62c32e1b0f25b978484dd113b319bebcd959bf60
      41d5d52d
  8. 12 Aug, 2016 1 commit
  9. 09 Aug, 2016 1 commit
    • Sarah Parker's avatar
      Add interface to compute gm parameters in encodeframe · d616a5ce
      Sarah Parker authored
      This patch just creates the interface for global motion computation
      and calls it from encodeframe. Currently, the function
      compute_global_motion_feature_based is empty and the work to do
      the actual parameter calculation will be added in a future patch.
      
      Change-Id: Ife142742140079e1c1743b66f180aeb2ecea29ae
      d616a5ce
  10. 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
  11. 02 Aug, 2016 1 commit
  12. 29 Jul, 2016 1 commit
  13. 21 Jul, 2016 1 commit
  14. 19 Jul, 2016 1 commit
    • 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
  15. 18 Jul, 2016 1 commit
  16. 14 Jul, 2016 1 commit
  17. 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
  18. 29 Jun, 2016 1 commit
  19. 28 Jun, 2016 1 commit
    • Geza Lore's avatar
      Remove skip_txfm optimization. · 92922be8
      Geza Lore authored
      Commit 0d6980d7 removed some use
      of the skip_txfm optimization, and the rest are not productive.
      
      The current use of this optimization is only used with --good
      and --cpu-used >= 3, however the overhead of this is higher than the
      speedup it yields.
      
      Removing this, and subsequently simplifying model_rd_for_sb yields
      a net encoder speedup:
      --cpu-used=0    ~1.5% faster
      --cpu-used=3    ~2.0% faster
      
      The code simplification is also significant.
      
      Change-Id: I1dd668c32de15a2e912c59c42379d0f9e1032ff8
      92922be8
  20. 23 Jun, 2016 1 commit
  21. 17 Jun, 2016 2 commits
    • 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
    • Geza Lore's avatar
      Make variance based partitioning compatible with SEG_LVL_SKIP · 169431b8
      Geza Lore authored
      Inter blocks that have SEG_LVL_SKIP active must be at least 8x8 in
      size for bitstream conformance (see read_inter_block_mode_info in
      decodemv.c).
      
      This patch makes the variance based partitioning scheme stop at 8x8
      blocks in inter frames. This satisfies the SEG_LVL_SKIP constraint
      and is more in line with the original implementation of this function
      (before it got extended for 128x128 superblocks).
      
      BUG=webm:1234
      
      Change-Id: I1fdd894569a9c0817713a77daabe4c8b8e1d00c0
      169431b8
  22. 14 Jun, 2016 6 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
      Remove now superfluous argument from predict_b_extend. · 7faae780
      Geza Lore authored
      Change-Id: I7a76756842af9ce806c6e0e1f98f294af748e8bd
      7faae780
    • 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
      Re-initialise quantiser after changing segment. · 9e959194
      Geza Lore authored
      When using VARIANCE_AQ, we can change the segment assignment after
      initialising the quantiser in set_offsets, so re-initialise it when
      we do so.
      
      Change-Id: I1f168553aaf0ade419f0d4bf05820cd591b87659
      9e959194
    • Geza Lore's avatar
      Refactor variance aq. · d60523bc
      Geza Lore authored
      Explicitly signal when the segment map is being refreshed when
      using VARIANE_AQ. This simplifies decisions about when the segment id
      needs to be set from the previous segment map vs based on the current
      variance.
      
      Change-Id: Ieb12c950e9cfbc3f53f4d184880071dea805563c
      d60523bc
    • Geza Lore's avatar
      Pass segment id explicitly to quantizer init. · 2a588555
      Geza Lore authored
      This is purely refactoring in preparation of fixing supertx segment
      handling
      
      Change-Id: I74bcae34241fdf2b592e1cd45b67af77b9e16c9a
      2a588555
  23. 10 Jun, 2016 1 commit
  24. 08 Jun, 2016 2 commits
    • Jingning Han's avatar
      Take out skip_recode speed feature · 025fa11c
      Jingning Han authored
      The assumption doesn't hold true in the current codebase. Remove
      this speed feature to simplify the codebase.
      
      Change-Id: I9b69f484c9b7cd612b825047cc5b2fce63ee0af7
      025fa11c
    • Jingning Han's avatar
      Remove swap buffer speed feature · 0d6980d7
      Jingning Han authored
      The inter prediction residual can undergo different transform types
      during the rate-distortion optimization search. The assumption used
      in this speed feature no longer holds true. This commit removes the
      related code to clean up the codebase and clear out unit test
      failure in higher speed setting.
      
      Change-Id: I7f7cd4df2345ed3e607c9fae75b38cd2dbde0cac
      0d6980d7
  25. 03 Jun, 2016 1 commit
  26. 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
  27. 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
  28. 18 May, 2016 1 commit
    • Jingning Han's avatar
      Account sub8x8 block reference filter type for prob context · 9161464f
      Jingning Han authored
      If a reference block is coded with sub8x8 block size, and if it
      has sub-pixel level motion vectors, its prediction filter type
      should be used as context information.
      
      The coding performance gains of dual filter type coding scheme are
      lowres  0.57%
      hdres   0.88%
      
      Change-Id: I68b98f2518d02f11c29d0256aeb45b2580fe5cac
      9161464f
  29. 16 May, 2016 2 commits