1. 25 Jun, 2013 1 commit
    • Jingning Han's avatar
      Refactor intra predictor block · d19ea386
      Jingning Han authored
      Remove vp9_intra4x4_predict(). Use the common intra prediction
      function for all block sizes.
      
      Change-Id: Ibd19d51dfa3da8bbdfb79ddeb81530b2e2089560
      d19ea386
  2. 21 Jun, 2013 1 commit
  3. 07 Jun, 2013 1 commit
  4. 31 May, 2013 1 commit
  5. 28 May, 2013 1 commit
    • Jingning Han's avatar
      further clean-ups on intra4x4 coding · 4729a6f3
      Jingning Han authored
      Removed one 4x4 prediction step that was unnessary in the rd loop.
      Removed a unused modecosts estimate from encoder side.
      
      Change-Id: I65221a52719d6876492996955ef04142d2752d86
      4729a6f3
  6. 22 May, 2013 2 commits
    • Yaowu Xu's avatar
      changes intra coding to be based on txfm block · 8ba92a0b
      Yaowu Xu authored
      This commit changed the encoding and decoding of intra blocks to be
      based on transform block. In each prediction block, the intra coding
      iterates thorough each transform block based on raster scan order.
      
      This commit also fixed a bug in D135 prediction code.
      
      TODO next:
      The RD mode/txfm_size selection should take this into account when
      computing RD values.
      
      Change-Id: I6d1be2faa4c4948a52e830b6a9a84a6b2b6850f6
      8ba92a0b
    • Yaowu Xu's avatar
      Generalized intra 4x4 encoding for all sizes · 232d90d8
      Yaowu Xu authored
      Change-Id: I1b86744fa247233c8df031b3f4b87b212c8dd094
      232d90d8
  7. 16 May, 2013 1 commit
  8. 07 May, 2013 3 commits
  9. 04 May, 2013 1 commit
  10. 02 May, 2013 2 commits
  11. 30 Apr, 2013 1 commit
  12. 29 Apr, 2013 3 commits
    • Yaowu Xu's avatar
      fixed new intra code for rectanglar blocks · 4747c6ed
      Yaowu Xu authored
      Also fixed two minor subtle boundary conditions in intra prediction
      code, and replaced memcpy/memset with vpx_ prefixed version.
      
      Change-Id: I9cddff3be831228b628f1f2f065a61feacbcbee6
      4747c6ed
    • Yaowu Xu's avatar
      Enabled i4x4 to use right above pixels · e388251d
      Yaowu Xu authored
      Change-Id: I7442b4600b6812bed13e655ccf68f9ea56cc83a2
      e388251d
    • Yaowu Xu's avatar
      Use same intra prediction for all block size · 3d655805
      Yaowu Xu authored
      The commmit changed to use same intra prediction function for all
      block sizes.
      
      Some details on the changes:
      1. All directional modes except DC/TM/V/H now have built-in filtering
      for all pixels with filter taps either (1, 2, 1)/4 or (1, 1)/2.
      2. Above edge get automatic extended to double width (bw*2), which
      makes a lot of the prediciton mode computation simpler.
      3. Same intra prediction function is called with different size
      for i4x4_pred and all other larger size.
      
      Overall, the change helped keyframe only coding for both cif size
      and std-hd size test sets by .5% consistently on all encodings.
      For normal coding with single/auto key frame, the change now also
      is consistently net positive for all encodings. The overall gains
      is about .15% on std-hd set.
      
      Change-Id: I01ceb31fbc73d49776262e6bdc06853b03bbd1d1
      3d655805
  13. 26 Apr, 2013 2 commits
  14. 24 Apr, 2013 1 commit
  15. 23 Apr, 2013 2 commits
  16. 22 Apr, 2013 1 commit
  17. 19 Apr, 2013 1 commit
    • John Koleszar's avatar
      Move dst to per-plane MACROBLOCKD data · d12376aa
      John Koleszar authored
      First in a series of commits moving the framebuffers pointers to
      per-plane data, so that they can be indexed numerically rather than
      by name.
      
      Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
      d12376aa
  18. 18 Apr, 2013 1 commit
    • Jingning Han's avatar
      Make the use of pred buffers consistent in MB/SB · 6f43ff58
      Jingning Han authored
      Use in-place buffers (dst of MACROBLOCKD) for  macroblock prediction.
      This makes the macroblock buffer handling consistent with those of
      superblock. Remove predictor buffer MACROBLOCKD.
      
      Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
      6f43ff58
  19. 16 Apr, 2013 1 commit
  20. 12 Apr, 2013 2 commits
  21. 11 Apr, 2013 2 commits
    • Jingning Han's avatar
      Make intra predictor support rectangular blocks · 815e95fb
      Jingning Han authored
      The intra predictor supports configurable block sizes. It can handle
      intra prediction down to 4x4 sizes, when enabled in BLOCK_SIZE_TYPE.
      
      Change-Id: I7399ec2512393aa98aadda9813ca0c83e19af854
      815e95fb
    • Scott LaVarnway's avatar
      WIP: removing predictor buffer usage from decoder · 6189f2bc
      Scott LaVarnway authored
      This patch will use the dest buffer instead of the
      predictor buffer.  This will allow us in future commits
      to remove the extra mem copy that occurs in the dequant
      functions when eob == 0.  We should also be able to remove
      extra params that are passed into the dequant functions.
      
      Change-Id: I7241bc1ab797a430418b1f3a95b5476db7455f6a
      6189f2bc
  22. 07 Mar, 2013 1 commit
  23. 20 Feb, 2013 1 commit
    • Tero Rintaluoma's avatar
      Avoid division in intra prediction · 56e6c66b
      Tero Rintaluoma authored
      - Using multiplication and shifting instead of division in
        intra prediction.
      - Maximum absolute difference is 1 for division statements
        in d45, d27, d63 prediction modes. However, errors can
        cumulate for large block sizes when using already predicted
        values.
      - Maximum number of non-matching result values in loops using
        division are:
        4x4        0/16
        8x8        0/64
        16x16     10/256
        32x32     13/1024
        64x64    122/4096
      
        Overall PSNR
        derf:     0.005
        yt:      -0.022
        std-hd:   0.021
        hd:      -0.006
      
      Change-Id: I3979a02eb6351636442c1af1e23d6c4e6ec1d01d
      56e6c66b
  24. 05 Feb, 2013 1 commit
    • Ronald S. Bultje's avatar
      [WIP] Add column-based tiling. · 1407bdc2
      Ronald S. Bultje authored
      This patch adds column-based tiling. The idea is to make each tile
      independently decodable (after reading the common frame header) and
      also independendly encodable (minus within-frame cost adjustments in
      the RD loop) to speed-up hardware & software en/decoders if they used
      multi-threading. Column-based tiling has the added advantage (over
      other tiling methods) that it minimizes realtime use-case latency,
      since all threads can start encoding data as soon as the first SB-row
      worth of data is available to the encoder.
      
      There is some test code that does random tile ordering in the decoder,
      to confirm that each tile is indeed independently decodable from other
      tiles in the same frame. At tile edges, all contexts assume default
      values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode),
      and motion vector search and ordering do not cross tiles in the same
      frame.
      t log
      
      Tile independence is not maintained between frames ATM, i.e. tile 0 of
      frame 1 is free to use motion vectors that point into any tile of frame
      0. We support 1 (i.e. no tiling), 2 or 4 column-tiles.
      
      The loopfilter crosses tile boundaries. I discussed this briefly with Aki
      and he says that's OK. An in-loop loopfilter would need to do some sync
      between tile threads, but that shouldn't be a big issue.
      
      Resuls: with tiling disabled, we go up slightly because of improved edge
      use in the intra4x4 prediction. With 2 tiles, we lose about ~1% on derf,
      ~0.35% on HD and ~0.55% on STD/HD. With 4 tiles, we lose another ~1.5%
      on derf ~0.77% on HD and ~0.85% on STD/HD. Most of this loss is
      concentrated in the low-bitrate end of clips, and most of it is because
      of the loss of edges at tile boundaries and the resulting loss of intra
      predictors.
      
      TODO:
      - more tiles (perhaps allow row-based tiling also, and max. 8 tiles)?
      - maybe optionally (for EC purposes), motion vectors themselves
        should not cross tile edges, or we should emulate such borders as
        if they were off-frame, to limit error propagation to within one
        tile only. This doesn't have to be the default behaviour but could
        be an optional bitstream flag.
      
      Change-Id: I5951c3a0742a767b20bc9fb5af685d9892c2c96f
      1407bdc2
  25. 29 Jan, 2013 1 commit
    • Deb Mukherjee's avatar
      Further improvement on compound inter-intra expt · 3b04d467
      Deb Mukherjee authored
      Adds a special combination mode specific to intra prediciton
      mode D45.
      
      Current results with the compound inter/intra experiment:
      derf: 0.2%
      yt: 0.55%
      std-hd: 0.75%
      hd: 0.74%
      
      Change-Id: I8976bdf3b9b0b66ab8c5c628bbc62c14fc72ca86
      3b04d467
  26. 15 Jan, 2013 1 commit
    • Deb Mukherjee's avatar
      Modifies the comp inter-intra expt · b34838be
      Deb Mukherjee authored
      Uses a single 1D table to implement the weighting of the predictors
      for the compound inter-intra experiment.
      
      Change-Id: I204ffbe4f9fc79d5d43b6c724ad253d800461012
      b34838be
  27. 14 Jan, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove compound intra-intra experiment. · c9071601
      Ronald S. Bultje authored
      This experiment gives little gains and adds relatively much code
      complexity (and it hinders other experiments), so let's get rid of
      it.
      
      Change-Id: Id25e79a137a1b8a01138aa27a1fa0ba4a2df274a
      c9071601
  28. 10 Jan, 2013 1 commit
  29. 08 Jan, 2013 1 commit
  30. 06 Jan, 2013 1 commit