1. 23 Jul, 2013 1 commit
  2. 19 Jul, 2013 1 commit
  3. 16 Jul, 2013 2 commits
    • Dmitry Kovalev's avatar
      Changing signature of vp9_get_pred_probs_tx_size. · 5b65a71c
      Dmitry Kovalev authored
      Removing VP9_COMMON* argument and adding struct tx_probs* instead of
      MACROBLOCKD*.
      
      Change-Id: Idf61074631a90ec51eac22c8dcd977f44ac0757c
      5b65a71c
    • Dmitry Kovalev's avatar
      Rewriting vp9_set_pred_flag_{seg_id, mbskip}. · 863138a2
      Dmitry Kovalev authored
      Making implementation of vp9_set_pred_flag_{seg_id, mbskip} consistent
      with vp9_get_segment_id without using confusing sub(a, b) macro. Passing
      mi_row and mi_col to functions explicitly instead of replying on
      mb_to_right_edge and mb_to_bottom_edge.
      
      Change-Id: I54c1087dd2ba9036f8ba7eb165b073e807d00435
      863138a2
  4. 13 Jul, 2013 1 commit
  5. 12 Jul, 2013 2 commits
  6. 10 Jul, 2013 1 commit
    • Jim Bankoski's avatar
      removing case statements around prediction entropy coding · fb027a76
      Jim Bankoski authored
      Removes SEG_ID
      Removes MBSKIP
      Removes SWITCHABLE_INTERP
      Removes INTRA_INTER
      Removes COMP_INTER_INTER
      Removes COMP_REF_P
      Removes SINGLE_REF_P1
      Removes SINGLE_REF_P2
      Removes TX_SIZE
      
      Change-Id: Ie4520ae1f65c8cac312432c0616cc80dea5bf34b
      fb027a76
  7. 27 Jun, 2013 1 commit
    • Dmitry Kovalev's avatar
      Decoder's code cleanup. · 3231da0a
      Dmitry Kovalev authored
      Using vp9_set_pred_flag function instead of custom code, adding
      decode_tokens function which is now called from decode_atom,
      decode_sb_intra, and decode_sb.
      
      Change-Id: Ie163a7106c0241099da9c5fe03069bd71f9d9ff8
      3231da0a
  8. 26 Jun, 2013 1 commit
  9. 21 Jun, 2013 1 commit
  10. 10 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      New probs for filters/tx_size and a few others · a43ff153
      Deb Mukherjee authored
      * New probs for subpel filters/tx_count
      * Makes a change to not reset to defaults for the tx_size
      probs if an intermediate frame reverts to using a fixed tx_size.
      * A few updates to the parameters for backward adaptation for mode/mv
      * some cosmetic cleanups
      
      derf300: +0.06%
      
      Change-Id: I22994d659bc31ca7a4fc8820fde24001e64a2920
      a43ff153
  11. 08 Jun, 2013 2 commits
    • Deb Mukherjee's avatar
      TX_SIZE contexts simplification. · 17da2cab
      Deb Mukherjee authored
      Reduces TX_SIZE contexts to 2 for each kind. The code is
      cleaner and there is hardly any performance difference with
      more than two contexts.
      
      Results: almost neutral
      
      Change-Id: I17656bd6db76224ae2856adf882504560e7dbaa4
      17da2cab
    • Deb Mukherjee's avatar
      Minor fix in TX_SIZE contexts · 67cb1f09
      Deb Mukherjee authored
      Change-Id: I9e81f84877e18ba7e55d66389ed60e64a5b7abcc
      67cb1f09
  12. 07 Jun, 2013 3 commits
    • Deb Mukherjee's avatar
      Coding tx-size selection by use of spatial context · 21401942
      Deb Mukherjee authored
      Adds coding of transform size within a frame by use of context
      of transform sizes selected in left and above blocks.
      
      Also incorporates code for generating stats.
      
      TODO: generate and incorporate new default stats
      
      Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
      21401942
    • Deb Mukherjee's avatar
      Cleans up mbskip encoding · 869a39ba
      Deb Mukherjee authored
      Refactors mbskip coding to be compatible with coding of the rest of
      the symbols. Adds forward/backward adaptation and removes a lot of
      the legacy code.
      
      Results:
      fast50: +1.6%
      derfraw300: +0.317%
      
      Change-Id: I395a2976d15af044d3b8ded5acfa45f6f065f980
      869a39ba
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  13. 26 Apr, 2013 1 commit
  14. 25 Apr, 2013 1 commit
  15. 24 Apr, 2013 1 commit
  16. 23 Apr, 2013 2 commits
  17. 19 Apr, 2013 1 commit
  18. 11 Apr, 2013 1 commit
  19. 05 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      Code cleanup. · 7f99c3c5
      Dmitry Kovalev authored
      Removing redundant 'extern' keywords, fixing formatting and #include order,
      code simplification.
      
      Change-Id: I0e5fdc8009010f3f885f13b5d76859b9da511758
      7f99c3c5
  20. 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
  21. 08 Jan, 2013 1 commit
  22. 06 Jan, 2013 1 commit
  23. 12 Dec, 2012 1 commit
    • Ronald S. Bultje's avatar
      Consistently use get_prob(), clip_prob() and newly added clip_pixel(). · 4d0ec7aa
      Ronald S. Bultje authored
      Add a function clip_pixel() to clip a pixel value to the [0,255] range
      of allowed values, and use this where-ever appropriate (e.g. prediction,
      reconstruction). Likewise, consistently use the recently added function
      clip_prob(), which calculates a binary probability in the [1,255] range.
      If possible, try to use get_prob() or its sister get_binary_prob() to
      calculate binary probabilities, for consistency.
      
      Since in some places, this means that binary probability calculations
      are changed (we use {255,256}*count0/(total) in a range of places,
      and all of these are now changed to use 256*count0+(total>>1)/total),
      this changes the encoding result, so this patch warrants some extensive
      testing.
      
      Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
      4d0ec7aa
  24. 30 Nov, 2012 1 commit
    • Deb Mukherjee's avatar
      Adds switchable filters with superblocks · 66323307
      Deb Mukherjee authored
      Allows switchbale filters to be used without mismatch when the
      superblock experiment is on.
      
      Also removes a spurious clamping code in decodemv.c which causes
      rare encode/decode mismatches.
      
      Change-Id: I809d9ee0b2859552b613500b539a615515b863ae
      66323307
  25. 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
  26. 16 Nov, 2012 1 commit
    • Deb Mukherjee's avatar
      Compound inter-intra experiment · 0c917fc9
      Deb Mukherjee authored
      A patch on compound inter-intra prediction.
      
      In compound inter-intra prediction, a new predictor for
      16x16 inter coded MBs are obtained by combining a single
      inter predictor with a 16x16 intra predictor, in a manner
      that the weight varies with distance from the top/left
      boundary. The current search strategy is to combine the best
      inter mode with the best intra mode obtained independently.
      
      Results so far:
      
      derf +0.31%
      yt +0.32%
      std-hd +0.35%
      hd +0.42%
      
      It is conceivable that the results would improve somewhat
      with a more thorough search strategy where all intra modes
      are searched given the best mv, or even a joint search for
      the best mv and the best intra mode.
      
      Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
      0c917fc9
  27. 13 Nov, 2012 1 commit
  28. 01 Nov, 2012 2 commits
  29. 31 Oct, 2012 2 commits
  30. 30 Oct, 2012 2 commits
  31. 29 Oct, 2012 1 commit
    • Paul Wilkins's avatar
      Name space clean up. · a99a2c36
      Paul Wilkins authored
      Preparation for project restructuring.
      Added vp9_ prefix on some function names that have global scope.
      Added static declaration on some that dont.
      
      Change-Id: If072f78b4300e8c17cfeed82c5d17b59946dcc5e
      a99a2c36