1. 09 Sep, 2016 2 commits
    • Jingning Han's avatar
      Sort header files · 1aab8184
      Jingning Han authored
      cherry-picked #ecd07473 from aom/master
      
      Change-Id: Id8f45d9c11406fc301b39801c5228ccd6aa2d5d6
      1aab8184
    • James Zern's avatar
      s/INTERP_FILTER/InterpFilter/ · 7b9407a8
      James Zern authored
      this matches style guidelines and stabilizes successive runs of
      clang-format across the tree. remaining types should be address in
      successive commits.
      
      Change-Id: I6ad3f69cf0a22cb9a9b895b272195f891f71170f
      7b9407a8
  2. 03 Sep, 2016 1 commit
    • Sarah Parker's avatar
      Fix formatting in internal stats for vp10 · f97b7860
      Sarah Parker authored
      This corrects a formatting error introduced in:
      I1e9d548ce445d29002f0c59ebfd3957a6f15e702
      where spaces were used as delimiters instead of tabs.
      
      The corresponding fixes for vp9 and vp8 are in
      Ibc4eb8fd82e6b926ba259a679dc98557cadba9b1.
      
      Change-Id: Ica3d625d6672b3c47e0e208b45eede29b9004030
      f97b7860
  3. 01 Sep, 2016 3 commits
  4. 30 Aug, 2016 1 commit
  5. 29 Aug, 2016 2 commits
  6. 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
  7. 25 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Separate EXT_ARFs' frame context index · 4c7e1cd9
      Wei-ting Lin authored
      This commit separate the frame index of EXT_ARFs' from other frame
      types in the ext-refs setting.
      
      It improves the average RD performance by
      
      0.206% in the lowres, and
      0.173% in the midres.
      
      The overall gains for the ext-refs compared to the baseline are
      
      5.665% in the lowres, and
      4.883% in the midres.
      
      Change-Id: I6591ad29120880c1aef0bd0b7cf15238c3f3b8f3
      4c7e1cd9
  8. 23 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Allow LF_UPDATE type of frames to use BWDREF · 4e8acca9
      Wei-ting Lin authored
      Originally, only bi-pred type of frames can use BWDREF. When
      extra alt-refs are inserted in a gf group, the closest alt-ref
      serves as ALTREF for the frames within the corresponding
      subgroup. Therefore, the original alt-ref can be used as BWDREF
      for the LF_UPDATE type of frames.
      
      This patch further swaps the virtual indices of BWDREF and ALTREF
      for those frames whose BWDREF is farther than ALTREF. As a result,
      the BWDREF is always the closet backward reference frame, and the
      ALTREF is the farther one.
      
      It improves the average RD performance by
      
      0.132% in lowres, and
      0.030% in midres.
      
      The overall gains for the ext-refs compared to the baseline are
      
      5.486% in lowres, and
      4.666% in midres.
      
      Change-Id: I22e4e5f378f19c4c89196a0a5e9214adb46c3428
      4e8acca9
  9. 22 Aug, 2016 1 commit
  10. 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
  11. 18 Aug, 2016 1 commit
  12. 16 Aug, 2016 2 commits
    • 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
  13. 12 Aug, 2016 1 commit
  14. 11 Aug, 2016 1 commit
    • Angie Chiang's avatar
      Bitstream debug tool · 4de81ee1
      Angie Chiang authored
      This is a debug tool used to detect bitstream error. On encoder side, it pushes
      each bit and probability into a queue before the bit is written into the
      Arithmetic coder. On decoder side, whenever a bit is read out from the
      Arithmetic coder, it pops up the reference bit and probability from the queue as
      well. If the two results do not match, this debug tool will report an error.
      This tool can be used to pin down the bitstream error precisely. By combining
      gdb's backtrace method, we can detect which module causes the bitstream error.
      
      Change-Id: I133a4371fafdd48c488f2ca47f9e395676c401f2
      4de81ee1
  15. 10 Aug, 2016 1 commit
    • James Zern's avatar
      remove SVC · cc73e1fc
      James Zern authored
      spatial/temporal scalability are not supported in VP10 currently.
      + remove the unused vp10/encoder/skin_detection.[hc]
      
      this also enables DatarateTestLarge for VP10 which passes with no
      experiments enabled. these were removed previously when only the SVC
      tests should have been:
      134710af Disable tests not applicable to VP10
      
      Change-Id: I9ee7a0dd5ad3d8cc1e8fd5f0a90260fa43da387c
      cc73e1fc
  16. 08 Aug, 2016 1 commit
    • Sarah Parker's avatar
      Add reconstruction using gm parameters · b659281e
      Sarah Parker authored
      This patch only includes inter frame reconstruction using gm
      parameters when GLOBAL_MOTION and/or VP9_HIGHBITDEPTH are enabled.
      GM is not currently used when EXT_INTER or DUAL_FILTER is enabled.
      This will be added in a followup patch. For now, these experiments
      will take precedence over GLOBAL_MOTION when they are all enabled.
      
      Change-Id: I930ddda529c44d7245dbb56db3c9c5524cf45473
      b659281e
  17. 05 Aug, 2016 1 commit
    • Wei-ting Lin's avatar
      Fix a bug for multi_arf_allowed · c0e55de0
      Wei-ting Lin authored
      The ARF Index was wrong when updating the upsampled reference
      frame buffer.
      
      Compared to the baseline in which multi_arf_allowed is disabled, the
      RD performance drops 2.250% in Avg using Overall PSNR in the derf
      dataset. The performance decrease is especially in the following
      video sequences:
      
      foreman_cif: drops 7.489%
      husky_cif: drops 6.421%
      soccer_cif: drops 4.850%
      
      However, it has a significant gain in the following video sequences:
      
      container_cif: increases 8.043%
      harbour_cif: increases 1.332%
      
      Change-Id: I02472909eb34bd070d7544f57383e72559fa42b3
      c0e55de0
  18. 04 Aug, 2016 2 commits
    • Yaowu Xu's avatar
      Replace variants of 'vp8' and 'vp9' with 'vpx' · fe291b64
      Yaowu Xu authored
      Change-Id: Id6cb96b0b15efdda63348d8bfe59fc0533c85ba1
      fe291b64
    • 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
  19. 02 Aug, 2016 2 commits
  20. 29 Jul, 2016 1 commit
  21. 27 Jul, 2016 1 commit
    • Jingning Han's avatar
      Separate frame context index for different frame types · 8915eb8e
      Jingning Han authored
      This commit makes the encoder to use different frame context index
      for different frame types. In the baseline setting, it sets the
      frame context index of the overlay frame to be different from other
      regular inter frames. In the ext-refs setting, it further allows
      the backward reference frame to use a different index.
      
      It improves the compression performance for both settings.
      
      Baseline
      lowres  0.12%
      
      ext-refs
      lowres  0.50%
      midres  0.56%
      
      Change-Id: I7c63ddec9fc296c56a86353cf2c661a740b97a97
      8915eb8e
  22. 19 Jul, 2016 1 commit
    • Wei-ting Lin's avatar
      Allow OVERLAY frames to use the show_exsiting_frame flag · ccc9e7cf
      Wei-ting Lin authored
      ARF with zero strength temporal filter can be reused by setting the
      show_existing_frame = 1, and in this case, there is no need to
      refresh the reference frame buffer. However, we used the flag
      "refresh_golden_frame" as the identifier for the starting point of a gf
      group.
      
      A new flags "is_arf_filter_off" is used to record if the filter with
      strengrh zero is used.
      
      Change-Id: I25971a760f6e1638d5147fe30488c48125512b1a
      ccc9e7cf
  23. 04 Jul, 2016 1 commit
    • Geza Lore's avatar
      Refactoring in preparation for OBMC optimizations. · 007aa7dd
      Geza Lore authored
      - Use int32_t instead of int in vpx_obmc{variance,sad} functions
      - Remove weigthed_src and obmc mask strides and assume contiguous
        buffers. These inputs can always be packed as contiguous arrays.
      
      Change-Id: I74c09b3fb3337f13d39e13a9cb61e140536f345d
      007aa7dd
  24. 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
  25. 22 Jun, 2016 1 commit
  26. 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
  27. 16 Jun, 2016 1 commit
    • Geza Lore's avatar
      Plug leak of variance tree. · 8192010e
      Geza Lore authored
      The speed features can change per frame, so remove condition on
      releasing the variance tree.
      
      Change-Id: I651c87a1504266d737e6d98f14fd3ed30d84e01d
      8192010e
  28. 14 Jun, 2016 1 commit
    • 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
  29. 07 Jun, 2016 1 commit
    • Zoe Liu's avatar
      Fix a RD performance bug in bipredictive frames · 5414abb4
      Zoe Liu authored
      This patch will make sure the use of the BWDREF_FRAME for the
      encoding of both the two types of bipredictive frames, namely
      LAST_BIPRED_UPDATE and BIPRED_UPDATE. To realize it, the
      updates on the cpi->ref_frame_flags have been moved to before
      the encoding of one frame, instread of originally handled after
      the encoding of one frame.
      
      RD performance has been improved slightly, approximately by 0.17%
      compared to before the applying of this patch:
      
      lowres: Avg -3.474; BDRate -3.324
      derflr: Avg -2.097; BDRate -1.353
      
      Change-Id: I0aa19afd752293e345489fbff104c4351ca5498c
      5414abb4
  30. 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
  31. 24 May, 2016 2 commits
    • 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
    • Zoe Liu's avatar
      Fix --test-decode=warn to test mismatch · a63147ae
      Zoe Liu authored
      This patch always compares the most recent show frames between
      the encoder and the decoder to test the mismatch.
      
      Change-Id: I68a91ad0996a598231450debfd616e24992419b5
      a63147ae
  32. 11 May, 2016 1 commit
    • paulwilkins's avatar
      Added a measure of rc drift. · 45df87ca
      paulwilkins authored
      Added actual and absolute rate miss values to the opsnr.stt
      stats output line.
      
      Changes to the borg graphing may be needed before merge.
      
      Change-Id: I1e9d548ce445d29002f0c59ebfd3957a6f15e702
      45df87ca