1. 26 Aug, 2013 1 commit
  2. 24 Aug, 2013 1 commit
  3. 20 Aug, 2013 2 commits
  4. 14 Aug, 2013 1 commit
    • Paul Wilkins's avatar
      Renaming in MB_MODE_INFO · 26fead7e
      Paul Wilkins authored
      The macro block mode info context originally contained an
      entry for each 16x16 macroblock. In VP9 each entry refers
      to an 8x8 region not a macro block, so the naming is misleading.
      
      This first stage clean up changes the names of 3 entries in the
      structure to remove the mb_ prefix.
      
      TODO clean up the nomenclature more widely in respect of
      mbmi and bmi.
      
      Change-Id: Ia7305c6d0cb805dfe8cdc98dad21338f502e49c6
      26fead7e
  5. 13 Aug, 2013 1 commit
  6. 05 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Changing the order switchable filter enum constants. · 3f611555
      Dmitry Kovalev authored
      This changeset allows to remove vp9_switchable_interp and
      vp9_switchable_interp_map arrays and make code much clear. Actually we
      still have to use these mapping but only inside read_interp_filter_type and
      write_interp_filter_type functions.
      
      Change-Id: I4026c6f8c4acefba6c81421b7bacbaa52cc45f50
      3f611555
  7. 02 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Adding is_inter_block function. · 680ec32d
      Dmitry Kovalev authored
      Using it instead of long unclear verbose check
      "mbmi->ref_frame[0] != INTRA_FRAME".
      
      Change-Id: I9c7b4b3797942fa962bf3ba7460fff3084beabe9
      680ec32d
  8. 01 Aug, 2013 1 commit
  9. 23 Jul, 2013 2 commits
    • Paul Wilkins's avatar
      Renaming of segment constants. · 32042af1
      Paul Wilkins authored
      Renamed:
        MAX_MB_SEGMENTS to MAX_SEGMENTS
        MB_SEG_TREE_PROBS to SEG_TREE_PROBS
      
      The minimum unit for segmentation in the segment map
      is now 8x8 so it is misleading to use MB_ as macro-block
      traditionally refers to a 16x16 region.
      
      Change-Id: I0b55a6f0426bb46dd13435fcfa5bae0a30a7fa22
      32042af1
    • Dmitry Kovalev's avatar
      Cleanup inside vp9_get_pred_context_tx_size. · 0ad079e5
      Dmitry Kovalev authored
      Using max_txsize_lookup to get max transform size.
      
      Change-Id: If4b39beba3c06a581effd8cab698ea90727dc2c9
      0ad079e5
  10. 19 Jul, 2013 1 commit
  11. 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
  12. 13 Jul, 2013 1 commit
  13. 12 Jul, 2013 2 commits
  14. 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
  15. 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
  16. 26 Jun, 2013 1 commit
  17. 21 Jun, 2013 1 commit
  18. 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
  19. 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
  20. 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
  21. 26 Apr, 2013 1 commit
  22. 25 Apr, 2013 1 commit
  23. 24 Apr, 2013 1 commit
  24. 23 Apr, 2013 2 commits
  25. 19 Apr, 2013 1 commit
  26. 11 Apr, 2013 1 commit
  27. 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
  28. 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
  29. 08 Jan, 2013 1 commit
  30. 06 Jan, 2013 1 commit
  31. 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
  32. 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