1. 30 Apr, 2013 1 commit
  2. 27 Apr, 2013 1 commit
  3. 26 Apr, 2013 2 commits
    • Ronald S. Bultje's avatar
      Grow MODE_INFO array to use an 8x8 basis. · 1a46b30e
      Ronald S. Bultje authored
      Change-Id: I087e08e7909a406b71715b8525c104208daa6889
      1a46b30e
    • Scott LaVarnway's avatar
      Removed bmi from blockd · 57f180b3
      Scott LaVarnway authored
      This originally was "Removed update_blockd_bmi()".  Now,
      this patch removed bmi from blockd and uses the bmi found
      in mode_info_context.  Eliminates unnecessary bmi copies between
      blockd and mode_info_context.
      
      Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
      57f180b3
  4. 25 Apr, 2013 1 commit
  5. 24 Apr, 2013 4 commits
    • Yaowu Xu's avatar
      Merge two similar functions into one · bcf82cf5
      Yaowu Xu authored
      Function set_mb_row() and set_mb_col() do similar work and are always
      called together, this commit merged them into a single function for
      clarity and easy maintainence.  This was a TODO item.
      
      Change-Id: I956bd9ed6afb8b2b0469b20fd8bc893b26f8a0f3
      bcf82cf5
    • 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
    • Paul Wilkins's avatar
      Extension of segmentation to 8 segments. · 31ee193a
      Paul Wilkins authored
      Also some further simplification following removal
      of top node code.
      
      There is an issue in regards to the shared file vp8cx.h
      in regard to the roi_map as this interface assumes that
      there are only 4 segments. I have left the value here as
      4 for now meaning that the roi_map interface is broken
      for VP9.
      
      Note that this change would have been easier if I hadn't
      had to search for hard wire instances of the number 4
      and <= 3.
      
      Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
      31ee193a
    • Paul Wilkins's avatar
      Simplify Segment Coding · c77aff12
      Paul Wilkins authored
      Remove top node optimization.
      The improvement this gives is not sufficient to justify
      the extra complexity.
      
      Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
      c77aff12
  6. 23 Apr, 2013 1 commit
  7. 22 Apr, 2013 3 commits
  8. 19 Apr, 2013 5 commits
  9. 18 Apr, 2013 1 commit
  10. 17 Apr, 2013 3 commits
    • Dmitry Kovalev's avatar
      Changing argument type of vp9_get_mv_joint from MV to MV*. · 0db175ff
      Dmitry Kovalev authored
      Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe
      0db175ff
    • 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
    • Dmitry Kovalev's avatar
      Replacing BOOL_DECODER with vp9_reader inside vp9_decodemv. · 1db8fa52
      Dmitry Kovalev authored
      Also a little bit of code cleanup: replacing pbi->common with cm,
      pbi->mb with xd.
      
      Change-Id: I2f70a005704a2833d644dfaafc4cd354e6e8532b
      1db8fa52
  11. 16 Apr, 2013 1 commit
    • John Koleszar's avatar
      Remove the mb_no_coeff_skip flag · e3cfe4e8
      John Koleszar authored
      This flag was added to VP8 to allow a mode where MB-level skipping
      was not allowed, saving a bit per mb. It was never used in practice,
      and hasn't been tested in VP9, so remove it.
      
      Change-Id: Id450ec6904c6d06c1919508e7efc52d05cde5631
      e3cfe4e8
  12. 15 Apr, 2013 1 commit
  13. 12 Apr, 2013 2 commits
  14. 11 Apr, 2013 1 commit
  15. 08 Apr, 2013 1 commit
    • Jingning Han's avatar
      Clamp inferred motion vectors only · 12bf0796
      Jingning Han authored
      Clamp only the motion vectors inferred from neighboring reference
      macroblocks. The motion vectors obtained through motion search in
      NEWMV mode are constrained during the search process, which allows
      a relatively larger referencing region than the inferred mvs.
      Hence further clamping the best mv provided by the motion search may
      affect the efficacy of NEWMV mode.
      
      Synchronized the decoding process. The decoded mvs in NEWMV modes
      should be guaranteed to fit in the effective range. Put a mv range
      clamping function there for security purpose.
      
      This improves the coding performance of high motion sequences, e.g.,
      derf set:
      foreman 0.233%
      husky   0.175%
      icd     0.135%
      mother_daughter 0.337%
      pamphlet        0.561%
      
      stdhd set:
      blue_sky 0.408%
      city     0.455%
      also saw sunflower goes down by -0.469%.
      
      Change-Id: I3fcbba669e56dab779857a8126a91b926e899cb5
      12bf0796
  16. 04 Apr, 2013 1 commit
    • Dmitry Kovalev's avatar
      Motion vector decoder cleanup. · 19fb4df8
      Dmitry Kovalev authored
      Better formatting, shorter code, adding read_switchable_filter_type
      function.
      
      Change-Id: Ib919b529385cae34c2d682b1c3093518b6942fc1
      19fb4df8
  17. 28 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Framework changes in nzc to allow more flexibility · fe9b5143
      Deb Mukherjee authored
      The patch adds the flexibility to use standard EOB based coding
      on smaller block sizes and nzc based coding on larger blocksizes.
      The tx-sizes that use nzc based coding and those that use EOB based
      coding are controlled by a function get_nzc_used().
      By default, this function uses nzc based coding for 16x16 and 32x32
      transform blocks, which seem to bridge the performance gap
      substantially.
      
      All sets are now lower by 0.5% to 0.7%, as opposed to ~1.8% before.
      
      Change-Id: I06abed3df57b52d241ea1f51b0d571c71e38fd0b
      fe9b5143
  18. 27 Mar, 2013 1 commit
  19. 26 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Implicit weighted prediction experiment · 23144d23
      Deb Mukherjee authored
      Adds an experiment to use a weighted prediction of two INTER
      predictors, where the weight is one of (1/4, 3/4), (3/8, 5/8),
      (1/2, 1/2), (5/8, 3/8) or (3/4, 1/4), and is chosen implicitly
      based on consistency of the predictors to the already
      reconstructed pixels to the top and left of the current macroblock
      or superblock.
      
      Currently the weighting is not applied to SPLITMV modes, which
      default to the usual (1/2, 1/2) weighting. However the code is in
      place controlled by a macro. The same weighting is used for Y and
      UV components, where the weight is derived from analyzing the Y
      component only.
      
      Results (over compound inter-intra experiment)
      derf: +0.18%
      yt: +0.34%
      hd: +0.49%
      stdhd: +0.23%
      
      The experiment suggests bigger benefit for explicitly signaled weights.
      
      Change-Id: I5438539ff4485c5752874cd1eb078ff14bf5235a
      23144d23
  20. 21 Mar, 2013 1 commit
  21. 20 Mar, 2013 1 commit
  22. 15 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      Motion vector code cleanup. · 4a0686e7
      Dmitry Kovalev authored
      Moving identical code to separate functions, variable declaration and
      initialization on the same line.
      
      Change-Id: Ifa6474a64189f9d8051e88e19850453b0227752c
      4a0686e7
  23. 09 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Continued experiment with nonzero count · a28139c8
      Deb Mukherjee authored
      Adds probability updates for extra bits for the nzcs, code for
      getting nzc stats, plus some minor cleanups and fixes.
      
      Change-Id: If2814e7f04fb52f5025ad9f400f3e6c50a00b543
      a28139c8
  24. 07 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Coding con-zero count rather than EOB for coeffs · eb6ef241
      Deb Mukherjee authored
      This patch revamps the entropy coding of coefficients to code first
      a non-zero count per coded block and correspondingly remove the EOB
      token from the token set.
      
      STATUS:
      Main encode/decode code achieving encode/decode sync - done.
      Forward and backward probability updates to the nzcs - done.
      Rd costing updates for nzcs - done.
      Note: The dynamic progrmaming apporach used in trellis quantization
      is not exactly compatible with nzcs. A suboptimal approach has been
      used instead where branch costs are updated to account for changes
      in the nzcs.
      
      TODO:
      Training the default probs/counts for nzcs
      
      Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
      eb6ef241
  25. 27 Feb, 2013 3 commits
    • Dmitry Kovalev's avatar
      Motion vectors code cleanup. · 0c0de002
      Dmitry Kovalev authored
      Fixing indentation, removing redundant parenthesis, deciphering single
      letter variable names, better spacing.
      
      Change-Id: I1d447a7d69eddbf1e94e0820423615f40ea2d591
      0c0de002
    • John Koleszar's avatar
      Combined motion compensation with scaled predictors · 77f88e97
      John Koleszar authored
      This patch extends the previous support for using references of a
      different resolution in ZEROMV mode to all inter prediction modes.
      Subpixel based best-mv scoring is disabled when the reference frame
      differs in resolution from the current frame.
      
      Change-Id: Id4dc3e5e6692de98d9857fd56bfad3ac57e944ac
      77f88e97
    • John Koleszar's avatar
      Spatial resamping of ZEROMV predictors · eb939f45
      John Koleszar authored
      This patch allows coding frames using references of different
      resolution, in ZEROMV mode. For compound prediction, either
      reference may be scaled.
      
      To test, I use the resize_test and enable WRITE_RECON_BUFFER
      in vp9_onyxd_if.c. It's also useful to apply this patch to
      test/i420_video_source.h:
      
        --- a/test/i420_video_source.h
        +++ b/test/i420_video_source.h
        @@ -93,6 +93,7 @@ class I420VideoSource : public VideoSource {
      
           virtual void FillFrame() {
             // Read a frame from input_file.
        +    if (frame_ != 3)
             if (fread(img_->img_data, raw_sz_, 1, input_file_) == 0) {
               limit_ = frame_;
             }
      
      This forces the frame that the resolution changes on to be coded
      with no motion, only scaling, and improves the quality of the
      result.
      
      Change-Id: I1ee75d19a437ff801192f767fd02a36bcbd1d496
      eb939f45