1. 12 Feb, 2013 - 1 commit
  2. 11 Feb, 2013 - 1 commit
    • Jingning Han's avatar
      butterfly inverse 4x4 ADST · 57e995ff
      Jingning Han authored
      fixed format issues.
      
      Implement the inverse 4x4 ADST using 9 multiplications. For this
      particular dimension, the original ADST transform can be
      factorized into simpler operations, hence is retained.
      
      Change-Id: Ie5d9749942468df299ab74e90d92cd899569e960
      57e995ff
  3. 08 Feb, 2013 - 2 commits
    • John Koleszar's avatar
      Initial support for resolution changes on P-frames · 393b4856
      John Koleszar authored
      Allows inter-frames to change resolution. Currently these are
      almost equivalent to keyframes, as only intra prediction modes
      are allowed, but without the other context resets that occur on
      keyframes.
      
      Change-Id: Icd1a2a5af0d9462cc792588427b0a1f5b12e40d3
      393b4856
    • Paul Wilkins's avatar
      Nearest / Zero Mv default entropy tweak. · bbede82f
      Paul Wilkins authored
      Tweak to default mode context to account for the fact
      that when there are no non zero motion candidates
      Nearest is now the preferred mode for coding a 0,0
      vector.
      
      Also resolve duplicate function name and typos.
      
      Change-Id: I76802788d46c84e3d1c771be216a537ab7b12817
      bbede82f
  4. 07 Feb, 2013 - 1 commit
    • Jingning Han's avatar
      Butterfly ADST based hybrid transform · d15e1da4
      Jingning Han authored
      Refactor the 8x8 inverse hybrid transform. It is now consistent
      with the new inverse DCT. Overall performance loss (due to the
      use of this variant ADST, and the rounding errors in the butterfly
      implementation) for std-hd is -0.02.
      
      Fixed BUILD warning.
      
      Devise a variant of the original ADST, which allows butterfly
      computation structure. This new transform has kernel of the
      form: sin((2k+1)*(2n+1) / (4N)). One of its butterfly structures
      using floating-point multiplications was reported in Z. Wang,
      "Fast algorithms for the discrete W transform and for the discrete
      Fourier transform", IEEE Trans. on ASSP, 1984.
      
      This patch includes the butterfly implementation of the inverse
      ADST/DCT hybrid transform of dimension 8x8.
      
      Change-Id: I3533cb715f749343a80b9087ce34b3e776d1581d
      d15e1da4
  5. 05 Feb, 2013 - 2 commits
    • 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 vect...
      1407bdc2
    • Scott LaVarnway's avatar
      Added vp9_short_idct1_32x32_c · 5780c4cb
      Scott LaVarnway authored
      and called this function in vp9_dequant_idct_add_32x32_c when
      eob == 1.  For the test clip used, the decoder performance improved
      by 21+%.  Based on Yaowu's 16 point idct work.
      
      Change-Id: Ib579a90fed531d45777980e04bf0c9b23c093c43
      5780c4cb
  6. 04 Feb, 2013 - 1 commit
    • Yaowu Xu's avatar
      re-write 8 point idct · 1eb79dc1
      Yaowu Xu authored
      to be consistent with idct16 and idct32.
      
      Change-Id: Ie89dbd32b65c33274b7fecb4b41160fcf1962204
      1eb79dc1
  7. 01 Feb, 2013 - 1 commit
    • Yaowu Xu's avatar
      Changes 16 point idct · 91e0e801
      Yaowu Xu authored
      This commit changes the inverse 16 point dct to use the same algorithm
      as the one for 32 point idct. In fact, now 16 point dct uses the exact
      version of the souce code for even portion of the 32 point idct.
      
      Tests showed current implementation has significant better accuracy
      than the previous version. With this implementation and the minor bug
      fix on forward 16 point dct, encoding tests showed about 0.2% better
      compression of CIF set, test results on std-hd setting pending.
      
      Change-Id: I68224b60c816ba03434e9f08bee147c7e344fb63
      91e0e801
  8. 30 Jan, 2013 - 2 commits
  9. 28 Jan, 2013 - 1 commit
    • Paul Wilkins's avatar
      Segment Skip Flag · 0ff9b033
      Paul Wilkins authored
      First step in simplifying the segment mode and
      segment EOB flags into a simpler segment skip
      flag that implies 0,0 mv and EOB at position 0.
      
      Change-Id: Ib750cac31a7a02dc21082580498efd9f7d8d72a5
      0ff9b033
  10. 26 Jan, 2013 - 1 commit
    • Deb Mukherjee's avatar
      Adding a frame parallel decoding mode · dfd89f2e
      Deb Mukherjee authored
      Adds a flag to disable features that would inhibit frame parallel
      decoding. This includes backward adaptation and MV sorting based
      on search in ref frame buffer.
      
      Also includes some minor clean-ups.
      
      Change-Id: I434846717a47b7bcb244b37ea670c5cdf776f14d
      dfd89f2e
  11. 25 Jan, 2013 - 1 commit
    • Scott LaVarnway's avatar
      Added eob == 0 check to vp9_dequant_idct_add_32x32_c · 9d4c2653
      Scott LaVarnway authored
      Added a quick eob == 0 check.  Once the integer version of the dct32x32 is
      complete, we can check for other eob cases.
      
      For the 1080p clip used, the decoder performance improved by 4%.
      
      Change-Id: I9390b6ed3c8be0c0c0a0c44c578d9a031d6e026e
      9d4c2653
  12. 24 Jan, 2013 - 1 commit
    • Deb Mukherjee's avatar
      Adds an error-resilient mode with test · 01cafaab
      Deb Mukherjee authored
      Adds an error-resilient mode where frames can be continued
      to be decoded even when there are errors (due to network losses)
      on a prior frame. Specifically, backward updates are turned off
      and probabilities of various symbols are reset to defaults at
      the beginning of each frame. Further, the last frame's mvs are
      not used for the mv reference list, and the sorting of the
      initial list based on search on previous frames is turned off
      as well.
      
      Also adds a test where an arbitrary set of frames are skipped
      from decoding to simulate errors. The test verifies (1) that if
      the error frames are droppable - i.e. frame buffer updates have
      been turned off - there are no mismatch errors for the remaining
      frames after the error frames; and (2) if the error-frames are non
      droppable, there are not only no decoding errors but the mismatch
      PSNR between the decoder's version of the post-error frames and the
      encoder's version is at least 20 dB.
      
      Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
      01cafaab
  13. 16 Jan, 2013 - 5 commits
    • John Koleszar's avatar
      Preserve the previous golden frame on golden updates · 26bd81b9
      John Koleszar authored
      This commit restores the quality lost when the buffer-to-buffer copy
      logic was removed. Note that this is specific to the current use of
      golden frames and will need rework when RTC functionality is added.
      
      Change-Id: I7324a75acd96eafd9e0f9b8633d782e390d5dc21
      26bd81b9
    • John Koleszar's avatar
      Generalize and increase frame coding contexts · 4b65837b
      John Koleszar authored
      Previously there were two frame coding contexts tracked, one for normal
      frames and one for alt-ref frames. Generalize this by signalling the
      context to use in the bitstream, rather than tieing it to the alt ref
      refresh bit. Also increase the number of contexts available to 4, which
      may be useful for temporal scalability.
      
      Change-Id: I7b66daaddd55c535c20cd16713541fab182b1662
      4b65837b
    • John Koleszar's avatar
      Start to anonymize reference frames · da832a80
      John Koleszar authored
      Remove lst_fb_idx, gld_fb_idx, alt_fb_idx, refresh_last_frame,
      refresh_golden_frame, refresh_alt_ref_frame from common. Gold/Alt are
      encode side conventions. From the decoder's perspective, we want to be
      dealing with numbered references.
      
      Updates to active_ref 2 signal mode context switches, vestigial from
      refresh_alt_ref_frame. This needs some clean up to make sense with
      increased numbers of reference frames, as well as reimplementing the
      swapping of alt/golden which was previously done using the
      buffer-to-buffer copy mechanism removed in an earlier commit.
      
      Change-Id: I7334445158b7666f9295d2a2dd22aa03f4485f58
      da832a80
    • John Koleszar's avatar
      Update encoder to use fb_idx_ref_cnt · 394b0a6a
      John Koleszar authored
      Do reference counting the same way on the encoder as the decoder does,
      rather than maintaining the 'flags' member of YV12_BUFFER_CONFIG.
      
      Change-Id: I91dc210ffca081acaf9d5c09a06e7461b3c3139c
      394b0a6a
    • John Koleszar's avatar
      Remove buffer-to-buffer copy logic · b8e02798
      John Koleszar authored
      This is the first in a series of commits to add additional reference
      frames to the codec. Each frame will be able to update any of the
      available references, but copying between references is not
      supported.
      
      Change-Id: I5945b5ce6cc3582c495102b4e7eed4f08c44d5a1
      b8e02798
  14. 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
  15. 10 Jan, 2013 - 2 commits
  16. 09 Jan, 2013 - 1 commit
    • Adrian Grange's avatar
      New prediction filter · 7d6b5425
      Adrian Grange authored
      This patch removes the old pred-filter experiment and replaces it
      with one that is implemented using the switchable filter framework.
      
      If the pred-filter experiment is enabled, three interopolation
      filters are tested during mode selection; the standard 8-tap
      interpolation filter, a sharp 8-tap filter and a (new) 8-tap
      smoothing filter.
      
      The 6-tap filter code has been preserved for now and if the
      enable-6tap experiment is enabled (in addition to the pred-filter
      experiment) the original 6-tap filter replaces the new 8-tap smooth
      filter in the switchable mode.
      
      The new experiment applies the prediction filter in cases of a
      fractional-pel motion vector. Future patches will apply the filter
      where the mv is pel-aligned and also to intra predicted blocks.
      
      Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
      7d6b5425
  17. 08 Jan, 2013 - 3 commits
    • Ronald S. Bultje's avatar
      Merge superblocks (32x32) experiment. · 4455036c
      Ronald S. Bultje authored
      Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
      4455036c
    • Yaowu Xu's avatar
      reset segement map on key frame · c14439c3
      Yaowu Xu authored
      This is to fix a decoder crash when decoder skips a number of frame to
      continue decoding from a later key frame.
      
      Change-Id: I3ba116eba6c3440e0528a21f53745f694302e4ad
      c14439c3
    • Yaowu Xu's avatar
      minor loop filter refactoring and cleanup · d278d018
      Yaowu Xu authored
      This commit did a couple of minor cleanup/refactoring to prepare for
      futher loop filter experiments. It merged y_only version of loop filter
      function into the regular one, which makes sure that same logic is used
      for functions for picking level and for actual loop filtering.
      
      Change-Id: Id10c94dccd45f58e5310bacfdf6ee63cbb60b86f
      d278d018
  18. 06 Jan, 2013 - 1 commit
  19. 02 Jan, 2013 - 1 commit
  20. 28 Dec, 2012 - 1 commit
    • Yunqing Wang's avatar
      Skip finding best ref_mvs when the mode is ZEROMV · 0f4de157
      Yunqing Wang authored
      Read mode before calling vp9_find_best_ref_mvs(). If the mode is
      ZEROMV, the best ref_mvs are not needed. Then, we can skip calling
      vp9_find_best_ref_mvs().
      
      Change-Id: I5baa3658dd3f1c7107211cbbbcf919b4584be2e2
      0f4de157
  21. 26 Dec, 2012 - 1 commit
  22. 20 Dec, 2012 - 1 commit
    • Deb Mukherjee's avatar
      New previous coef context experiment · 08f0c7cc
      Deb Mukherjee authored
      Adds an experiment to derive the previous context of a coefficient
      not just from the previous coefficient in the scan order but from a
      combination of several neighboring coefficients previously encountered
      in scan order.  A precomputed table of neighbors for each location
      for each scan type and block size is used. Currently 5 neighbors are
      used.
      
      Results are about 0.2% positive using a strategy where the max coef
      magnitude from the 5 neigbors is used to derive the context.
      
      Change-Id: Ie708b54d8e1898af742846ce2d1e2b0d89fd4ad5
      08f0c7cc
  23. 19 Dec, 2012 - 1 commit
    • John Koleszar's avatar
      Use boolcoder API instead of inlining · 05ec800e
      John Koleszar authored
      This patch changes the token packing to call the bool encoder API rather
      than inlining it into the token packing function, and similarly removes
      a special get_signed case from the detokenizer. This allows easier
      experimentation with changing the bool coder as a whole.
      
      Change-Id: I52c3625bbe4960b68cfb873b0e39ade0c82f9e91
      05ec800e
  24. 18 Dec, 2012 - 3 commits
  25. 17 Dec, 2012 - 1 commit
  26. 14 Dec, 2012 - 1 commit
    • Yaowu Xu's avatar
      reset segement map on key frame · 6247b239
      Yaowu Xu authored
      This is to fix a decoder crash when decoder skips a number of frame to
      continue decoding from a later key frame.
      
      Change-Id: I3ba116eba6c3440e0528a21f53745f694302e4ad
      6247b239
  27. 13 Dec, 2012 - 1 commit
  28. 12 Dec, 2012 - 1 commit
    • Scott LaVarnway's avatar
      Improved vp9_ihtllm_c · b575394e
      Scott LaVarnway authored
      As suggested by Yaowu, we can use eob to reduce the complexity
      of the vp9_ihtllm_c function.  For the 1080p test clip used, the decoder
      performance improved by 17%.
      
      Change-Id: I32486f2f06f9b8f60467d2a574209aa3a3daa435
      b575394e