1. 15 Nov, 2012 3 commits
    • John Koleszar's avatar
      support building vp8 and vp9 into a single lib · a9c7597a
      John Koleszar authored
      Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
      a9c7597a
    • John Koleszar's avatar
      make: flatten object file directories · b72373de
      John Koleszar authored
      Rather than building an object file directory heirarchy matching the
      source tree's layout, rename the object files so that the object
      file name contains the path in the source file tree. The intent here
      is to allow two files in different parts of the source tree to have
      the same name and still not collide when put into an ar archive.
      
      Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
      b72373de
    • John Koleszar's avatar
      detokenize: use SEG_LVL_EOB feature consistently · 6becad42
      John Koleszar authored
      Update decode_coefs() to break when c >= eob, since it's possible that
      c starts the loop from 1 and eob is 0. The loop won't terminate in that
      case.
      
      Add new get_eob() function to consistently clamp the eob based on the
      segment level EOB and the block size. It's possible to code a segment
      level EOB that's greater than the block size, and that leads to an
      out of bounds access.
      
      Change-Id: I859563b30414615cf1b30dcc2aef8a1de358c42d
      6becad42
  2. 14 Nov, 2012 6 commits
  3. 13 Nov, 2012 5 commits
  4. 12 Nov, 2012 2 commits
    • Paul Wilkins's avatar
      New inter mode context · 2669f42b
      Paul Wilkins authored
      This change is a fix / extension of the newbestrefmv
      experiment. As such it is presented without IFDEF.
      
      The change creates a new context for coding inter modes
      in vp9_find_mv_refs(). This replaces the context that
      was previously calculated in vp9_find_near_mvs().
      The new context is unoptimized and not necessarily
      any better at this stage (results pending), but eliminates
      the need for a legacy call to vp9_find_near_mvs().
      Based on numbers from Scott, this could help decode
      speed by several %.
      
      In a later patch I will add support for forward update of
      context (assuming this helps) and refine the context as
      necessary.
      
      Change-Id: I1cd991b82c8df86cc02237a34185e6d67510698a
      2669f42b
    • Paul Wilkins's avatar
      Restrict ref mv search range. · 6fb8953c
      Paul Wilkins authored
      Experiment to test speed trade off of reducing the
      extent of the ref mv search.
      
      Reducing the maximum number of tested candidates to 9 had
      minimal net effect on quality in any of the tests sets.
      
      Reduction to 7 has a small negative impact (worst was STD-HD
      at about -0.2%).
      
      This change is in response to the apparently high number of
      decode cycles reported in regard to mv-ref selection.
      
      Change-Id: I0e92e92e324337689358495a1ec9ccdeb23dc774
      6fb8953c
  5. 10 Nov, 2012 3 commits
    • Ronald S. Bultje's avatar
      Fix data type for eobs[] array in SB 4x4 IDCT code. · dd9d4f9e
      Ronald S. Bultje authored
      This fixes encoder/decoder mismatches with the superblock experiment
      turned on whenever a superblock is encoded using the 4x4 transform.
      
      Change-Id: Iefec7055e8d25f8efdbba66c4261bbd322d335a3
      dd9d4f9e
    • Ronald S. Bultje's avatar
      Remove 'thismb' data pointer when superblock experiment is on. · 73987d14
      Ronald S. Bultje authored
      This should prevent inconsistent results between identical encodes with
      the superblock experiment turned on.
      
      Change-Id: I41a005fae53f2eb59736cc70041185fb7d63cfca
      73987d14
    • Deb Mukherjee's avatar
      New b-intra mode where direction is contextual · d01357bb
      Deb Mukherjee authored
      Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the
      dominant direction from the context is used to encode. Various decoder
      changes are needed to support decoding of B_CONTEXT_PRED in conjunction
      with hybrid transforms since the scan order and tokenization depends on
      the actual direction of prediction obtained from the context. Currently
      the traditional directional modes are used in conjunction with the
      B_CONTEXT_PRED, which also seems to provide the best results.
      
      The gains are small - in the 0.1% range.
      
      Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
      d01357bb
  6. 09 Nov, 2012 2 commits
    • Deb Mukherjee's avatar
      Build fix in decoder/decodframe.c · 3f7182cb
      Deb Mukherjee authored
      Missing eobs agrument in vp9_dequant_idct_add_16x16_c
      
      Change-Id: I826b1afa0a4ee6398f7373325aa0c75e6a866937
      3f7182cb
    • Vignesh Venkatasubramanian's avatar
      Packing Altref along with succeeding frame and length encoding frames · bc9670ee
      Vignesh Venkatasubramanian authored
      The altref frame is packed along with the next P frame. So that
      outside of the codec there are now only two types of frames P and I.
      Also, now it is one frame in and one frame out with respect to the
      codec. Apart from that, all the frames are length encoded with the
      length of each frame appended to the frame itself. There are
      two categories of frames and each of them will look as follows:
      
        - Packed frames (an altref along with the succeeding p frame)
          - altref_frame_data | altref_lenngth | frame_data | length
        - Unpacked frames (all frames other than the above)
          - frame_data | length
      
      Change-Id: If1eabf5c473f7d46b3f2d026bd30c803588c5330
      bc9670ee
  7. 08 Nov, 2012 3 commits
    • Jim Bankoski's avatar
      remove macros obfuscating mv costing · c72be96b
      Jim Bankoski authored
      cleanup
      
      Change-Id: I565eee40d900e0441ad211b65ac829fc5b93d94a
      c72be96b
    • Ronald S. Bultje's avatar
      Implement tx_select for superblock encoding. · 1d4fbeb3
      Ronald S. Bultje authored
      Also split superblock handling code out of decode_macroblock() into
      a new function decode_superblock(), for easier readability.
      
      Derf +0.05%, HD +0.2%, STDHD +0.1%. We can likely get further gains
      by allowing to select mb_skip_coeff for a subset of the complete SB
      or something along those lines, because although this change allows
      coding smaller transforms for bigger predictors, it increases the
      overhead of coding EOBs to skip the parts where the residual is
      near-zero, and thus the overall gain is not as high as we'd expect.
      
      Change-Id: I552ce1286487267f504e3090b683e15515791efa
      1d4fbeb3
    • Yunqing Wang's avatar
      Optimize 16x16 dequant and idct · 6c17c9fa
      Yunqing Wang authored
      As suggested by Yaowu, simplified 16x16 dequant and idct. In decoder,
      after detoken step, we know the number of non-zero dct coefficients
      (eobs) in a macroblock. Idct calculation can be skipped or simplified
      based on eobs, which improves the decoder performance.
      
      Change-Id: I9ffa1cb134bcb5a7d64fcf90c81871a96d1b4018
      6c17c9fa
  8. 07 Nov, 2012 2 commits
    • Yaowu Xu's avatar
      merge full pixel refmv experiment · 0cedaa36
      Yaowu Xu authored
      Change-Id: Ib39ad47a7d188f3b45416937b7eeb28c3e79b74c
      0cedaa36
    • James Zern's avatar
      Fix variance (signed integer) overflow · 98473443
      James Zern authored
      In the variance calculations the difference is summed and later squared.
      When the sum exceeds sqrt(2^31) the value is treated as a negative when
      it is shifted which gives incorrect results.
      
      To fix this we force the multiplication to be unsigned.
      
      The alternative fix is to shift sum down by 4 before multiplying.
      However that will reduce precision.
      
      For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and
      change).
      
      This change is based on:
      16982342 Missed some variance casts
      fea3556e Fix variance overflow
      
      Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f
      98473443
  9. 06 Nov, 2012 9 commits
  10. 05 Nov, 2012 1 commit
    • James Zern's avatar
      rdopt: fix use of uninitialized value in addition · f2541f8a
      James Zern authored
      rd_pick_intra4x4mby_modes / rd_pick_intra8x8mby_modes would both use the
      input value of 'rate_y' in the return calculation. In many places this
      value is uninitialized. Remove the unneeded sum.
      
      Change-Id: Icbd3df685303000301e69291c0ebc06f74bd548d
      f2541f8a
  11. 03 Nov, 2012 1 commit
  12. 02 Nov, 2012 3 commits