1. 19 Aug, 2017 1 commit
    • Cheng Chen's avatar
      Dual deblocking filter strength thresholds · 179479fe
      Cheng Chen authored
      A new experiment for deblocking filter that separates vertical
      and horizontal filter strengths. This experiment is based on the
      assumption that non-flatness characteristics of vertical and
      horizontal direction may differ. Therefore selecting different
      filter strengths for vertical and horizontal can improve deblocking
      performance.
      
      The process of finding proper filter strength:
      1. Search through the filter level under the constraint that
         (vertical == horizontal), and find the best solution.
      2. Fix vertical level as the best solution found in step 1 and vary
         horizontal level to find the best value.
      3. Fix the selected horizontal level, vary vertical level to find
         its best value.
      
      The experiment is working with UV_LVL, sharing the same config flag.
      The searching for horizontal and vertical filter strength only applies
      on Y plane for now.
      
      The experimental flag should be changed to filter_level later.
      
      Change-Id: I164eec8d3ccb3da7ff109c5c55f4b52c1536ddf1
      179479fe
  2. 27 Jul, 2017 1 commit
    • Cheng Chen's avatar
      Select filter level for U, V planes · e94df5cf
      Cheng Chen authored
      Previously, U, V planes share the same filter level with Y.
      Here, we search and pick the best filter level for U, V planes.
      Selected filter levels are transmitted per frame.
      This works with parallel_deblocking.
      
      Coding gain on Google test set:
      		Avg_psnr	ovr_psnr	ssim
      lowres: 	-0.116		-0.120		-0.339
      midres:		-0.218		-0.228		-0.338
      hdres:		-0.260		-0.264		-0.365
      
      Change-Id: I03d2ac47539f3eea9f3c4b08007bd6d3f4b73572
      e94df5cf
  3. 20 Jul, 2017 1 commit
    • Zoe Liu's avatar
      Add support to the experiment of altref2 · 97ad058e
      Zoe Liu authored
      This CL adds an extra alt-ref reference frame, namely ALTREF2_FRAME,
      and designs the contexts for ALTREF2_FRAME.
      
      Change-Id: I12fe8629b868aebf6c2b54260fca5abc38f90ae6
      97ad058e
  4. 01 Jun, 2017 1 commit
  5. 27 Apr, 2017 1 commit
  6. 13 Feb, 2017 1 commit
  7. 26 Oct, 2016 2 commits
  8. 30 Sep, 2016 1 commit
  9. 28 Sep, 2016 1 commit
  10. 17 Sep, 2016 1 commit
    • Debargha Mukherjee's avatar
      Enable tile-adaptive restoration · 5cd2ab95
      Debargha Mukherjee authored
      Includes a major refactoring/enhancement to support
      tile-adaptive switchable restoration. The framework can be
      readily extended to add more restoration schemes in the
      future. Also includes various cleanups and fixes.
      
      Specifically the framework allows restoration to be conducted
      on tiles such that each tile can be either left unrestored, or
      use bilateral or wiener filtering.
      
      There is a modest improvemnt in coding efficiency (0.1 - 0.2%).
      
      Further enhancements will be added subsequently to improve coding
      efficiency and complexity.
      
      Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
      5cd2ab95
  11. 02 Sep, 2016 1 commit
  12. 01 Sep, 2016 2 commits
  13. 12 Aug, 2016 1 commit
  14. 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
  15. 02 Aug, 2016 1 commit
  16. 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
  17. 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
  18. 31 Mar, 2016 2 commits
    • Geza Lore's avatar
      Refactor loopfilter level arrays to 2D. · 10232eda
      Geza Lore authored
      Change-Id: Id20526d0b6d1371dc9f45cb8b5f24b6974da7bc4
      10232eda
    • Geza Lore's avatar
      Rename MI_BLOCK_SIZE and MI_MASK macros. · 511da8cb
      Geza Lore authored
      Rename MI_BLOCK_SIZE.* -> MAX_MIB_SIZE.* (MIB is for MI Block).
      Rename MI_MASK.* -> MAX_MIB_MASK.*
      
      There are no functional changes.
      
      This is in preparation for coding the superblock size at the frame
      level, which will require some of these constants to become variables.
      The new names better reflect future semantics, and hence make the code
      clearer.
      
      Change-Id: Iee08d97554cf4cc16a5dc166a3ffd1ab91529992
      511da8cb
  19. 30 Mar, 2016 1 commit
    • Geza Lore's avatar
      Extend superblock size fo 128x128 pixels. · 552d5cd7
      Geza Lore authored
      If --enable-ext-partition is used at build time, the superblock size
      (sometimes also referred to as coding unit (CU) size) is extended to
      128x128 pixels.
      
      Change-Id: Ie09cec6b7e8d765b7555ff5d80974aab60803f3a
      552d5cd7
  20. 22 Mar, 2016 2 commits
    • Yaowu Xu's avatar
      vp10/ -> av1/ · cfea7dd7
      Yaowu Xu authored
      Change-Id: Ia055d03656ad1580447eced8687949583fdf4089
      cfea7dd7
    • Yaowu Xu's avatar
      Rename vpx to aom · bf4202ed
      Yaowu Xu authored
      Change-Id: Ibc7933fba85feeb30ef9b14b302d932aff19f54e
      bf4202ed
  21. 12 Feb, 2016 1 commit
    • Debargha Mukherjee's avatar
      Adding loop wiener restoration · 8b0a5b87
      Debargha Mukherjee authored
      Adds a wiener filter based restoration scheme in loop which can
      be optionally selected instead of the bilateral filter.
      
      The LMMSE filter generated per frame is a separable symmetric 7
      tap filter. Three parameters for each of horizontal and vertical
      filters are transmitted in the bitstream. The fourth parameter
      is obtained assuming the sum is normalized to 1.
      Also integerizes the bilateral filters, along with other
      refactoring necessary in order to support the new switchable
      restoration type framework.
      
      derflr: -0.75% BDRATE
      
      [A lot of videos still prefer bilateral, however since many frames
      now use the simpler separable filter, the decoding speed is
      much better].
      
      Further experiments to follow, related to replacing the bilateral.
      
      Change-Id: I6b1879983d50aab7ec5647340b6aef6b22299636
      8b0a5b87
  22. 29 Jan, 2016 1 commit
  23. 28 Jan, 2016 2 commits
  24. 21 Jan, 2016 2 commits
    • Yaowu Xu's avatar
      VP9LfSync->VP10LfSync · 5b5fbade
      Yaowu Xu authored
      Change-Id: I9f55d3e221688a17b23ef40e162b33af12e5693a
      5b5fbade
    • Debargha Mukherjee's avatar
      Loop restoration filter · 84ca7a9f
      Debargha Mukherjee authored
      Current implementation is a bilateral filter whose
      parameters are transmitted in the bitstream.
      
      derflr: -0.647% BDRATE
      hevcmr: -0.794% BDRATE
      
      This is a prelimary patch. Various other variations are to
      be investigated next, that will hopefully be less expensive
      on the decoder side.
      
      Change-Id: I50634ae8f5014ad0bf7432306348908a349d81e1
      84ca7a9f
  25. 21 Nov, 2015 1 commit
    • Zoe Liu's avatar
      Added 3 more reference frames for inter prediction. · 3ec1601e
      Zoe Liu authored
      Under the experiment of EXT_REFS: LAST2_FRAME, LAST3_FRAME, and
      LAST4_FRAME.
      
      Coding efficiency: derflr +1.601%; hevchr +1.895%
      Speed: Encoder slowed down by ~75%
      
      Change-Id: Ifeee5f049c2c1f7cb29bc897622ef88897082ecf
      3ec1601e
  26. 17 Nov, 2015 1 commit
    • hui su's avatar
      Merge MISC_FIXES · 66f2f65e
      hui su authored
      Remove MISC_FIXES flags except for the changes on MV precision, which
      has a 0.1% performance drop.
      
      On derflr, the impact is -0.012%.
      
      Change-Id: I0a74e5a212dd0cb827192a318c92a714c9681e45
      66f2f65e
  27. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  28. 29 Sep, 2015 1 commit
    • Yaowu Xu's avatar
      Merged branch 'master' into nextgenv2 · 7c514e2d
      Yaowu Xu authored
      Resolved Conflicts in the following files:
              configure
              vp10/common/idct.c
              vp10/encoder/dct.c
              vp10/encoder/encodemb.c
              vp10/encoder/rdopt.c
      
      Change-Id: I4cb3986b0b80de65c722ca29d53a0a57f5a94316
      7c514e2d
  29. 26 Sep, 2015 1 commit
    • Ronald S. Bultje's avatar
      vp10: split UV int4x4 loopfilter flag in one for each covered edge. · 034c28b0
      Ronald S. Bultje authored
      In practice, this fixes the issue that if you have an odd number of
      mi_cols, on the full right of the image, the UV int4x4 loopfilter
      will be skipped over odd cols as well as odd rows (because it holds a
      single variable for both edges).
      
      See issue 1016.
      
      Change-Id: Id53b501cbff9323a8239ed4775ae01fe91874b7e
      034c28b0
  30. 20 Aug, 2015 1 commit
  31. 13 Aug, 2015 2 commits
  32. 12 Aug, 2015 2 commits