1. 22 Feb, 2016 3 commits
    • Yaowu Xu's avatar
      Cleanup psnr.h · 38cfc45e
      Yaowu Xu authored
      Change-Id: Id026e72ee655ee5bd645a89e378da0d462be367d
      38cfc45e
    • Yaowu Xu's avatar
      Add shift stage in FASTSSIM computation · d1c5cd4a
      Yaowu Xu authored
      This commits adds a shift stage for FASTSSIM computaton when source
      bit depth is different from working bit depth, to make sure metric
      results are calculated in bit_depth consistent with source.
      
      Change-Id: I997799634076ef7b00fd051710544681ed536185
      d1c5cd4a
    • Yaowu Xu's avatar
      Move psnrhvs function declaration to psnr.h · 6e695da2
      Yaowu Xu authored
      From "ssim.h"
      
      Change-Id: Ie53378794149ef8a844b4eb47ad4f08579de4b60
      6e695da2
  2. 17 Feb, 2016 1 commit
  3. 12 Feb, 2016 3 commits
    • 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
    • Yaowu Xu's avatar
      Refactor internal stats code · 1a69cb28
      Yaowu Xu authored
      Also removed the use of postprocessing in computing internal stats.
      
      Change-Id: Ib8fdbdfe7b7ca05cd1a034a373aa7762fa44323c
      1a69cb28
    • James Zern's avatar
      vp10_receive_raw_frame: add missing setjmp · 8628898a
      James Zern authored
      allocations done within this function are protected with
      vpx_internal_error; adding the setjmp fixes a crash in
      vp10_lookahead_push() under low memory conditions.
      
      Change-Id: I5515017cd71b218840c506791b3a517da7ffc93e
      8628898a
  4. 11 Feb, 2016 2 commits
    • Yaowu Xu's avatar
      Enable computing PSNRHVS for hbd build · bb8ca088
      Yaowu Xu authored
      This commit adds computation of PSNRHVS for highbitdepth build, it
      also adds tests to make sure the calculation of psnrhvs metric for
      10 and 12 bit correct.
      
      Change-Id: Iac8a8073d2b3e3ba5d368829d770793212fa63b6
      bb8ca088
    • Yaowu Xu's avatar
      Enable computing of FastSSIM for HBD build · c0874f24
      Yaowu Xu authored
      This commit adds the computation of fastSSIM for highbitdepth build,
      it also modifies the hbdmetric test to be more generic and applicable
      for fastSSIM.
      
      The 255 used for calculating ssim constants c1 and c2 is not exactly
      scaled by 4x and 16x to 1023 and 4095, therefore requries the metric
      test to have a thresold more tolerant than 0, currently at 0.03dB.
      
      Change-Id: I631829da7773de400e77fc36004156e5e126c7e0
      c0874f24
  5. 09 Feb, 2016 1 commit
    • Yaowu Xu's avatar
      Fix a bug in HBD buffer size computation · bb5f9e43
      Yaowu Xu authored
      The value of use_highbitdepth flag is used for compute the size for
      high bit depth buffer allocation, which should take value 0 or 1
      depending on if the buffer is used for high bit depth or not.
      Previously, the values is set to 8 or 0, this commit fixes the issue
      and properly set the value for this flag to 1 or 0.
      
      This cuts the size of highbitdepth buffer memory allocation to 2/9 of
      the size prior to the fix.
      
      Change-Id: I401518b5a6147e5d8a973e54f7ca6bc1892065e0
      bb5f9e43
  6. 08 Feb, 2016 2 commits
  7. 29 Jan, 2016 1 commit
  8. 28 Jan, 2016 1 commit
  9. 27 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Fixes ext-interp experiment · eef57c1e
      Debargha Mukherjee authored
      Fixes integer pel MV usage for the sub8x8 case, which fixes a
      rare mismatch issue.
      
      Also adds some other minor missing code related to filter threshes.
      
      Change-Id: I6b07e6cf9b287ba4b5bd6599af4a7412e50b3bdc
      eef57c1e
  10. 21 Jan, 2016 1 commit
    • 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
  11. 12 Jan, 2016 1 commit
    • Jingning Han's avatar
      Generate compound reference motion vector · 33cc1bd2
      Jingning Han authored
      This commit allows the codec to add motion vector pairs into
      the candidate list. It further improves the compression performance
      by 0.1% across derf, hevcmr, stdhd, and hevchr sets without adding
      encode/decode time.
      
      Change-Id: I88d36da25a2a89bb506d411844af667081eba98b
      33cc1bd2
  12. 08 Jan, 2016 2 commits
  13. 31 Dec, 2015 1 commit
  14. 18 Dec, 2015 1 commit
    • Zoe Liu's avatar
      Restore the flexibility for the new 3 references · ec36a2b0
      Zoe Liu authored
      For the experiment of EXT_REFS, removed the previous special handling
      on the new last 3 references, i.e. LAST2_FRAME, LAST3_FRAME, and
      LAST4_FRAME, at the decoder, so that these new last references are
      treated the same way as the other 3 references (LAST_FRAME,
      GOLDEN_FRAME, and ALTREF_FRAME). Encoder changes have been made
      accordingly to realize this flexibility.
      
      Change-Id: Ic6546f9443b4377bb7e7b101bfa3e70a8b8d1c65
      ec36a2b0
  15. 15 Dec, 2015 1 commit
    • paulwilkins's avatar
      Fixed interval, fixed Q 1 pass test patch. · 99309004
      paulwilkins authored
      For testing implemented a fixed pattern and delta, 1 pass,
      fixed Q, low delay mode.
      
      This has not in any way been tuned or optimized.
      
      Change-Id: Icf9b57c3bb16cc5c0726d5229009212af36eb6d9
      99309004
  16. 08 Dec, 2015 2 commits
    • paulwilkins's avatar
      Changes to exhaustive motion search. · 4e692bbe
      paulwilkins authored
      This change has been imported from VP9 and
      alters the nature and use of exhaustive motion search.
      
      Firstly any exhaustive search is preceded by a normal step search.
      The exhaustive search is only carried out if the distortion resulting
      from the step search is above a threshold value.
      
      Secondly the simple +/- 64 exhaustive search is replaced by a
      multi stage mesh based search where each stage has a range
      and step/interval size. Subsequent stages use the best position from
      the previous stage as the center of the search but use a reduced range
      and interval size.
      
      For example:
        stage 1: Range +/- 64 interval 4
        stage 2: Range +/- 32 interval 2
        stage 3: Range +/- 15 interval 1
      
      This process, especially when it follows on from a normal step
      search, has shown itself to be almost as effective as a full range
      exhaustive search with step 1 but greatly lowers the computational
      complexity such that it can be used in some cases for speeds 0-2.
      
      This patch also removes a double exhaustive search for sub 8x8 blocks
      which also contained  a bug (the two searches used different distortion
      metrics).
      
      For best quality in my test animation sequence this patch has almost
      no impact on quality but improves encode speed by more than 5X.
      
      Restricted use in good quality speeds 0-2 yields significant quality gains
      on the animation test of 0.2 - 0.5 db with only a small impact on encode
      speed. On most natural video clips, however, where the step search
      is performing well, the quality gain and speed impact are small.
      
      Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98
      4e692bbe
    • hui su's avatar
      Bring palette back to nextgenv2 · c93e5cc3
      hui su authored
      It was removed by the master branch merge.
      
      Change-Id: I4b2a524c9e052e41063359afcb4ba22bf78344cf
      c93e5cc3
  17. 03 Dec, 2015 1 commit
    • hui su's avatar
      Remove palette from VP10 · 5d3327e8
      hui su authored
      Store it in nextgenv2 for now.
      
      Change-Id: Iab0af0e15246758e3b6e8bde4a74b13c410576fc
      5d3327e8
  18. 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
  19. 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
  20. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  21. 06 Nov, 2015 1 commit
    • Debargha Mukherjee's avatar
      New interpolation experiment · 85514c40
      Debargha Mukherjee authored
      Adds a new interpolation experiment.
      
      Improves entropy coding to send the filter type only if
      the motion vectors have subpel components.
      Adds one new 8-tap smooth filter, and tweaks the others.
      
      derflr: +0.695%
      hevcmr: +0.305%
      
      About 5% encode slowdown. No visible impact for decoding.
      
      Also makes the interpolation framework flexible to support both
      strictly interpolating filters as well as non-interpolating
      filters that filter integer offsets. This is mainly for
      further experimentation and if not found useful the code will
      be removed.
      
      Change-Id: I8db9cde56ca916be771fe54a130d608bf10786e6
      85514c40
  22. 30 Oct, 2015 1 commit
    • Jingning Han's avatar
      Refactor loop filter mask · 6727943c
      Jingning Han authored
      This commit refactors the loop filter selection process to support
      variable transform block sizes based filter mask. It disables the
      multi-thread loop filter implementation to simplify the experiments.
      The speed impact on speed 0 encoding is negligible.
      
      Change-Id: Ia470b6da9ad833fe6eb72d2cbeda9296b21910ec
      6727943c
  23. 16 Oct, 2015 2 commits
    • Ronald S. Bultje's avatar
      vp10: per-segment lossless coding. · 60c58b52
      Ronald S. Bultje authored
      Some more testing of this patch would probably be useful, but I
      think the basics of it should work fine now.
      
      See issue 1035.
      
      Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
      60c58b52
    • Ronald S. Bultje's avatar
      vp10: make segmentation probs use generic probability model. · 6e5a1165
      Ronald S. Bultje authored
      Locate them (code-wise) in frame_context, and have them be updated
      as any other probability using the subexp forward and adaptive bw
      updates.
      
      See issue 1040 point 1.
      
      TODOs:
      - real-world default probabilities
      - why is counts sometimes NULL in the decoder? Does that mean bw
        adaptivity updates only work on some frames? (I haven't looked
        very closely yet, maybe this is a red herring.)
      
      Change-Id: I23b57b4e5e7574b75f16eb64823b29c22fbab42e
      6e5a1165
  24. 15 Oct, 2015 1 commit
  25. 12 Oct, 2015 2 commits
  26. 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
  27. 26 Sep, 2015 2 commits
    • Ronald S. Bultje's avatar
      vp9/10: improve support for render_width/height. · 812945a8
      Ronald S. Bultje authored
      In the decoder, map this to the output variable vpx_image_t.r_w/h.
      This is intended as an improved version of VP9D_GET_DISPLAY_SIZE,
      which doesn't work with parallel frame decoding. In the encoder,
      map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes
      a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE).
      
      Also add render_size to the encoder_param_get_to_decoder unit test.
      
      See issue 1030.
      
      Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
      812945a8
    • Ronald S. Bultje's avatar
      Rename display_{size,width,height} to render_*. · 36ffe644
      Ronald S. Bultje authored
      The name "display_*" (or "d_*") is used for non-compatible information
      (that is, the cropped frame dimensions in pixels, as opposed to the
      intended screen rendering surface size). Therefore, continuing to use
      display_* would be confusing to end users. Instead, rename the field
      to render_*, so that struct vpx_image can include it.
      
      Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
      36ffe644
  28. 25 Sep, 2015 2 commits