1. 05 Jun, 2013 2 commits
  2. 31 May, 2013 4 commits
  3. 30 May, 2013 2 commits
    • Ronald S. Bultje's avatar
      Remove i4x4_pred. · 1efa79d3
      Ronald S. Bultje authored
      It remains as a local define in rdopt.c so we can distinguish between
      split and non-split modes in the RD loop, but disappears outside that
      scope in the codec.
      
      Change-Id: I98c18fe5ab7e4fbd1d6620ec5695e2ea20513ce9
      1efa79d3
    • Ronald S. Bultje's avatar
      Merge all intra mode coding trees into a single one. · 98c192ae
      Ronald S. Bultje authored
      Also merge all counters. This removes a few unused probability updates
      from the bitstream.
      
      Change-Id: I20f58853e9dac84d8c0d9703ae012c55917516eb
      98c192ae
  4. 29 May, 2013 1 commit
  5. 27 May, 2013 1 commit
    • Yaowu Xu's avatar
      a few clean-ups · 2b96ffe0
      Yaowu Xu authored
      1. remove prediction mode conversion
      2. unified bmode, same for key and non-key frame
      3. set I4X4_PRED count for pdf to 0, as I4X4_PRED is no longer
      coded ever. It is determined by ref_frame and block partition
      
      Change-Id: If5b282957c24339b241acdb9f2afef85658fe47d
      2b96ffe0
  6. 26 May, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove splitmv. · 5cac6607
      Ronald S. Bultje authored
      Also do per-partition motion vector referencing in <sb8x8 partitions,
      and adjust mvref finding for sub8x8 partitions.
      
      Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
      5cac6607
  7. 23 May, 2013 1 commit
    • Jingning Han's avatar
      Merge 4x4 block level partition into codebase · 7ac5ac52
      Jingning Han authored
      Move 4x4/4x8/8x4 partition coding out of experimental list.
      
      This commit fixed the unit test failure issues. It also resolved
      the merge conflicts between 4x4 block level partition and iterative
      motion search for comp_inter_inter.
      
      Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
      7ac5ac52
  8. 22 May, 2013 1 commit
    • Jingning Han's avatar
      Make the intra rd search support 8x4/4x8 · f153a5d0
      Jingning Han authored
      This commit allows the rate-distortion optimization of intra coding
      capable of supporting 8x4 and 4x8 partition settings.
      
      It enables the entropy coding of intra modes in key frame using a
      unified contextual probability model conditioned on its above/left
      prediction modes.
      
      Coding performance:
      derf 0.464%
      
      Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
      f153a5d0
  9. 19 May, 2013 1 commit
    • Jingning Han's avatar
      Enable bit-stream support to 8x4 and 4x8 partition · 810b612c
      Jingning Han authored
      The recursive partition type search is enabled down to 4x4, 4x8 and
      8x4, followed by the corresponding rate-distortion optimization for
      the per-partition encoding mode decisions.
      
      The bit-stream writing/reading synchronized in supporting the
      rectangular partition of 8x8 block.
      
      This provides above 1% coding performance gains on derf.
      
      To do next:
      1. re-design the rate-distortion loop for inter prediction below 8x8.
      2. re-design the rate-distortion loop for intra prediction below 4x4.
      3. make the loop-filter aware of rectangular partition of 8x8 block.
      4. clean the unused probability models.
      5. update default probability values.
      
      Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
      810b612c
  10. 17 May, 2013 2 commits
    • Paul Wilkins's avatar
      Replace default counts with default probs. · 99c4b1ee
      Paul Wilkins authored
      Replace vp9_kf_default_bmode_counts structure with
      direct default probabilities. The probability structure is
      smaller and it removes the need to specify in the bitstream
      how to convert the counts to probabilities.
      
      Note that I have concerns still about the size and value of
      the large intra mode context. This may cause problems for
      HW but it also means we rely heavily on reverse update as
      forwards update of a structure this size is problematic. I
      intend to review this more generally in the next few days to
      see if we can come up with a competitive solution that does
      not rely on such a large context.
      
      Change-Id: I0a36071079d5d26a57ab0e9fbf91af4199aa7984
      99c4b1ee
    • Paul Wilkins's avatar
      Remove MODE_STATS flag and code · 51bc4bf4
      Paul Wilkins authored
      Change-Id: I6c70a8a8a4633399842ac74792003ae5f7859ffa
      51bc4bf4
  11. 14 May, 2013 1 commit
    • Jingning Han's avatar
      Enable recursive partition down to 4x4 · 1f26840f
      Jingning Han authored
      This commit allows the rate-distortion optimization recursion
      at encoder to go down to 4x4 block size. It deprecates the use
      of I4X4_PRED and SPLITMV syntax elements from bit-stream
      writing/reading. Will remove the unused probability models in
      the next patch.
      
      The partition type search and bit-stream are now capable of
      supporting the rectangular partition of 8x8 block, i.e., 8x4
      and 4x8. Need to revise the rate-distortion parts to get these
      two partition tested in the rd loop.
      
      Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
      1f26840f
  12. 07 May, 2013 4 commits
  13. 03 May, 2013 1 commit
    • Adrian Grange's avatar
      Extend number of reference buffers to 8. · d7eea782
      Adrian Grange authored
      The number of reference buffers is extended to 8 and
      a reference sign-bias added for the LAST_FRAME.
      
      Whilst the number of reference buffers used by an
      individual frame remains unchanged at 3, these may
      now be selected from 8 possible buffers.
      
      Change-Id: I2d247b9c1c2b3a339d6c9fac125e81ba373f75a7
      d7eea782
  14. 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
  15. 26 Apr, 2013 1 commit
  16. 25 Apr, 2013 1 commit
  17. 24 Apr, 2013 2 commits
    • Jingning Han's avatar
      Move sbsegment out of experimental list · b0e3b3df
      Jingning Han authored
      Move rectangular superblock coding out of experimental list.
      
      Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
      b0e3b3df
    • Jingning Han's avatar
      Contextual entropy coding of partition syntax · ff2b8aa2
      Jingning Han authored
      This commit enables selecting probability models for recursive block
      partition information syntax, depending on its above/left partition
      information, as well as the current block size. These conditional
      probability models are reasonably stationary and consistent across
      frames, hence the backward adaptive approach is used to maintain and
      update the contextual models.
      
      It achieves coding performance gains (on top of enabling rectangular
      block sizes):
      derf:   0.242%
      yt:     0.391%
      hd:     0.376%
      stdhd:  0.645%
      
      Change-Id: Ie513d9673337f0d27abd65fb566b711d0844ec2e
      ff2b8aa2
  18. 23 Apr, 2013 2 commits
  19. 19 Apr, 2013 2 commits
    • Scott LaVarnway's avatar
      Eliminated prev_mip memsets/memcpys · 9662531d
      Scott LaVarnway authored
      For 1080 material, this buffer is currently 2,270,928 bytes.  This patch swaps
      ptrs instead of copying and uses the last show_frame flag instead of setting
      the entire buffer to zero.  For the test clip used, the decoder improved by up
      to 1%.
      
      
      Change-Id: I686825712ad56043e09ada9808dc489f875a6ce0
      9662531d
    • Paul Wilkins's avatar
      Removal of CONFIG_NEW_MVREF experiment. · aa76bf3d
      Paul Wilkins authored
      This experiment has failed to give much benefit but
      does add complexity so deprecated.
      
      Change-Id: Ic7b929ba706390b9907ef0b4f965bd401ca799a4
      aa76bf3d
  20. 17 Apr, 2013 3 commits
    • Dmitry Kovalev's avatar
      Adding DEFAULT_PRED_PROB_{0, 1, 2} constants. · ecff8d71
      Dmitry Kovalev authored
      Also using ALLOWED_REFS_PER_FRAME instead of 3.
      
      Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554
      ecff8d71
    • Yaowu Xu's avatar
      make lf_deltas dependent on filter_lvl · 888d0c82
      Yaowu Xu authored
      Change-Id: Idb0d11e3ae9afabe667a9f327bf4d3aa84f63649
      888d0c82
    • Jingning Han's avatar
      Recursive partition syntax coding · 90a91cc6
      Jingning Han authored
      Enable recursive partition information coding from SB64X64 down to
      MB16X16. The bit-stream syntax is now supporting rectangular block
      sizes. It starts from SB64X64 and recursively describes the partition
      type of the current block. If the partition type is PARTITION_NONE,
      the block is coded as a single unit; if it is PARTITION_HORZ or
      PARTITION_VERT, the block is segmented into two independently coded
      rectangular units, with no further partition needed; otherwise, the
      block is segmented into 4 square blocks. i.e., PARTITION_SPLIT case,
      each can be potentially further partitioned.
      
      Forward adaptive probability modeling is used for the partition
      information coding, conditioned on the current block size.
      
      Change-Id: I499365fb547839d555498e3bcc0387d8a3587d87
      90a91cc6
  21. 12 Apr, 2013 2 commits
    • Yaowu Xu's avatar
      Reorder enum i4X4 predcition modes · c2ad69bc
      Yaowu Xu authored
      To match the order of  directional intra prediction modes for larger
      blocks, also renamed the i4x4 prediction modes to mirror the larger
      variants.
      
      Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
      c2ad69bc
    • Yaowu Xu's avatar
      Rename B_PRED to I4X4_PRED · 7de5edd1
      Yaowu Xu authored
      So it is consistent with I8x8_PRED.
      
      Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
      7de5edd1
  22. 11 Apr, 2013 1 commit
  23. 26 Mar, 2013 1 commit
  24. 10 Mar, 2013 1 commit
    • John Koleszar's avatar
      Optimize vp9_tree_probs_from_distribution · bd84685f
      John Koleszar authored
      The previous implementation visited each node in the tree multiple times
      because it used each symbol's encoding to revisit the branches taken and
      increment its count. Instead, we can traverse the tree depth first and
      calculate the probabilities and branch counts as we walk back up. The
      complexity goes from somewhere between O(nlogn) and O(n^2) (depending on
      how balanced the tree is) to O(n).
      
      Only tested one clip (256kbps, CIF), saw 13% decoding perf improvement.
      
      Note that this optimization should port trivially to VP8 as well. In VP8,
      the decoder doesn't use this function, but it does routinely show up
      on the profile for realtime encoding.
      
      Change-Id: I4f2848e4f41dc9a7694f73f3e75034bce08d1b12
      bd84685f
  25. 21 Feb, 2013 1 commit
    • Deb Mukherjee's avatar
      Refactoring of switchable filter search for speed · 28b1db92
      Deb Mukherjee authored
      Refactors the switchable filter search in the rd loop to
      improve encode speed.
      
      Uses a piecewise approximation to a closed form expression to estimate
      rd cost for a Laplacian source with a given variance and quantization
      step-size.
      
      About 40% encode time reduction is achieved.
      
      Results (on a feb 12 baseline) show a slight drop:
      
      derf: -0.019%
      yt: +0.010%
      std-hd: -0.162%
      hd: -0.050%
      
      Change-Id: Ie861badf5bba1e3b1052e29a0ef1b7e256edbcd0
      28b1db92