1. 06 Jun, 2013 1 commit
    • John Koleszar's avatar
      Reimplementation of loop filter · 043d348a
      John Koleszar authored
      This version of the loop filter supports non-4:2:0 subsampling and
      a fourth plane, as well as changing the filtering order to be more
      friendly to hardware implementations.
      
      The filters are applied first to all vertical edges within the
      64x64 SB, followed by the top horizontal edge and any internal
      horizontal edges. Since filtering is applied on each 4x4 edge
      serially, a dependency is created from filtering one block edge
      to the next. It would be possible to remove this depencnecy by
      building all filtering decisions from the unfiltered
      reconstruction data.
      
      Change-Id: I08f3e9683eb7bded8a76651cbc50fc0dfdd05fa7
      043d348a
  2. 25 May, 2013 1 commit
  3. 08 May, 2013 2 commits
  4. 07 May, 2013 1 commit
    • Jingning Han's avatar
      Merge SB8X8 into the codebase · 776c1482
      Jingning Han authored
      Pull sb8x8 out of experimental list. verified via borg run tests.
      Fixed unit test failures.
      
      Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
      776c1482
  5. 30 Apr, 2013 1 commit
    • Ronald S. Bultje's avatar
      sb8x8 integration in rd loop. · d068d869
      Ronald S. Bultje authored
      Work-in-progress, not yet ready for review. TODO items:
      - bitstream writing (encoder) and reading (decoder)
      - decoder reconstruction
      
      Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
      d068d869
  6. 26 Apr, 2013 1 commit
  7. 24 Apr, 2013 1 commit
  8. 23 Apr, 2013 2 commits
  9. 17 Apr, 2013 3 commits
  10. 12 Apr, 2013 1 commit
  11. 10 Apr, 2013 1 commit
    • Yaowu Xu's avatar
      Remove obselete code · 2da90fdd
      Yaowu Xu authored
      The strategy to run fast loop filter picking for encoder speed-up
      should be revisited at a later stage.
      
      Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
      2da90fdd
  12. 03 Apr, 2013 1 commit
    • Dmitry Kovalev's avatar
      Reimplementation of setup_frame_size. · da0232fd
      Dmitry Kovalev authored
      General code cleanup in loopfilter code. Modification of setup_frame_size,
      so now VP9_COMMON is modified in one place after all width/height checks
      passed.
      
      Change-Id: Iedf32df43a912d7aae788ed276ac6c429973f6fe
      da0232fd
  13. 02 Apr, 2013 1 commit
  14. 26 Mar, 2013 1 commit
    • John Koleszar's avatar
      Add an in-loop deringing experiment · 441e2eab
      John Koleszar authored
      Adds a per-frame, strength adjustable, in loop deringing filter. Uses
      the existing vp9_post_proc_down_and_across 5 tap thresholded blur
      code, with a brute force search for the threshold.
      
      Results almost strictly positive on the YT HD set, either having no
      effect or helping PSNR in the range of 1-3% (overall average 0.8%).
      Results more mixed for the CIF set, (-0.5 min, 1.4 max, 0.1 avg).
      This has an almost strictly negative impact to SSIM, so examining a
      different filter or a more balanced search heuristic is in order.
      
      Other test set results pending.
      
      Change-Id: I5ca6ee8fe292dfa3f2eab7f65332423fa1710b58
      441e2eab
  15. 25 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      Code cleanup. · 7cc14e59
      Dmitry Kovalev authored
      Lower case variable names, code simplification by using already defined
      clamp and read_le16 functions.
      
      Change-Id: I8fd544365bd8d1daed86d7b2ae0843e4ef80df08
      7cc14e59
  16. 24 Jan, 2013 1 commit
    • Deb Mukherjee's avatar
      Adds an error-resilient mode with test · 01cafaab
      Deb Mukherjee authored
      Adds an error-resilient mode where frames can be continued
      to be decoded even when there are errors (due to network losses)
      on a prior frame. Specifically, backward updates are turned off
      and probabilities of various symbols are reset to defaults at
      the beginning of each frame. Further, the last frame's mvs are
      not used for the mv reference list, and the sorting of the
      initial list based on search on previous frames is turned off
      as well.
      
      Also adds a test where an arbitrary set of frames are skipped
      from decoding to simulate errors. The test verifies (1) that if
      the error frames are droppable - i.e. frame buffer updates have
      been turned off - there are no mismatch errors for the remaining
      frames after the error frames; and (2) if the error-frames are non
      droppable, there are not only no decoding errors but the mismatch
      PSNR between the decoder's version of the post-error frames and the
      encoder's version is at least 20 dB.
      
      Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
      01cafaab
  17. 23 Jan, 2013 1 commit
    • Scott LaVarnway's avatar
      Intrinsic version of loopfilter now matches C code · 6a997400
      Scott LaVarnway authored
      Updated the instrinsic code to match Yaowu's latest loopfilter change.
      (I584393906c4f5f948a581d6590959522572743bb)
      
      The decoder performance improved by ~30% for the test clip used.
      
      Change-Id: I026cfc75d5bcb7d8d58be6f0440ac9e126ef39d2
      6a997400
  18. 18 Jan, 2013 1 commit
    • Yaowu Xu's avatar
      a minor change to a portion of loop filtering · b95ed688
      Yaowu Xu authored
      The loop filtering used for MB edge or internal edge of a MB using 8x8
      tranform was reading 5 pixel each side and writting 3 pixel each side.
      With suggestion from Aki and Scott on hardware&software performance,
      this commit changed to read 4 pixel each side and write 3 pixel each
      side.
      
      Change-Id: I584393906c4f5f948a581d6590959522572743bb
      b95ed688
  19. 14 Jan, 2013 2 commits
    • Yaowu Xu's avatar
      Merge experiment "widerlpf" · f7dab600
      Yaowu Xu authored
      Change-Id: I0c94475075e66e13cfe4c20fab7db6474441ae86
      f7dab600
    • Yaowu Xu's avatar
      changed UV plane loop filtering for TX_8X8 · ad9a16ed
      Yaowu Xu authored
      In commit 9a1d73d0, loop filtering was added for UV 4x4 boundaries
      when TX_8X8 is used by a MB. This commit further refined the decision
      to be based on the actual transform used for the UV planes. When
      UV planes use 4x4 transform, i.e. when prediction mode used is either
      I8X8_PRED or SPLITMV, UV planes are filtered on 4x4 boundaries, and no
      filtering is applied on 4x4 block boundaries when UV planes use 8X8
      transform.
      
      Change-Id: Ibb404face0a1d129b4b4abaf67c55d82e8df8bec
      ad9a16ed
  20. 11 Jan, 2013 1 commit
    • Yaowu Xu's avatar
      Reduce the usage of widerlpf · 6c9fb22e
      Yaowu Xu authored
      The commit changed to not to use wider lpf within a superblock when
      32x32 transform is used for the block.
      
      The commit also changed to use the shorter version of loop filtering:
      for UV planes.
      
      Change-Id: I344c1fb9a3be9d1200782a788bcb0b001fedcff8
      6c9fb22e
  21. 10 Jan, 2013 2 commits
  22. 08 Jan, 2013 2 commits
    • Ronald S. Bultje's avatar
      Merge superblocks (32x32) experiment. · 4455036c
      Ronald S. Bultje authored
      Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
      4455036c
    • Yaowu Xu's avatar
      minor loop filter refactoring and cleanup · d278d018
      Yaowu Xu authored
      This commit did a couple of minor cleanup/refactoring to prepare for
      futher loop filter experiments. It merged y_only version of loop filter
      function into the regular one, which makes sure that same logic is used
      for functions for picking level and for actual loop filtering.
      
      Change-Id: Id10c94dccd45f58e5310bacfdf6ee63cbb60b86f
      d278d018
  23. 06 Jan, 2013 1 commit
  24. 18 Dec, 2012 1 commit
  25. 07 Dec, 2012 1 commit
    • Ronald S. Bultje's avatar
      32x32 transform for superblocks. · c456b35f
      Ronald S. Bultje authored
      This adds Debargha's DCT/DWT hybrid and a regular 32x32 DCT, and adds
      code all over the place to wrap that in the bitstream/encoder/decoder/RD.
      
      Some implementation notes (these probably need careful review):
      - token range is extended by 1 bit, since the value range out of this
        transform is [-16384,16383].
      - the coefficients coming out of the FDCT are manually scaled back by
        1 bit, or else they won't fit in int16_t (they are 17 bits). Because
        of this, the RD error scoring does not right-shift the MSE score by
        two (unlike for 4x4/8x8/16x16).
      - to compensate for this loss in precision, the quantizer is halved
        also. This is currently a little hacky.
      - FDCT and IDCT is double-only right now. Needs a fixed-point impl.
      - There are no default probabilities for the 32x32 transform yet; I'm
        simply using the 16x16 luma ones. A future commit will add newly
        generated probabilities for all transforms.
      - No ADST version. I don't think we'll add one for this level; if an
        ADST is desired, transform-size selection can scale back to 16x16
        or lower, and use an ADST at that level.
      
      Additional notes specific to Debargha's DWT/DCT hybrid:
      - coefficient scale is different for the top/left 16x16 (DCT-over-DWT)
        block than for the rest (DWT pixel differences) of the block. Therefore,
        RD error scoring isn't easily scalable between coefficient and pixel
        domain. Thus, unfortunately, we need to compute the RD distortion in
        the pixel domain until we figure out how to scale these appropriately.
      
      Change-Id: I00386f20f35d7fabb19aba94c8162f8aee64ef2b
      c456b35f
  26. 28 Nov, 2012 1 commit
  27. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  28. 01 Nov, 2012 3 commits
  29. 31 Oct, 2012 2 commits
  30. 30 Oct, 2012 1 commit
    • Paul Wilkins's avatar
      Remove old experiment. · e05e6e10
      Paul Wilkins authored
      Delete code relating to featureupdates experiment.
      
      Change-Id: If218762c658bb8cbb3007cf2069123b3e05adcbc
      e05e6e10