1. 25 Feb, 2013 4 commits
    • Paul Wilkins's avatar
    • Jingning Han's avatar
      clean up forward and inverse hybrid transform · 77a3becf
      Jingning Han authored
      Rebased.
      
      Remove the old matrix multiplication transform computation. The 16x16
      ADST/DCT can be switched on/off and evaluated by setting ACTIVE_HT16
      300/0 in vp9/common/vp9_blockd.h.
      
      Change-Id: Icab2dbd18538987e1dc4e88c45abfc4cfc6e133f
      77a3becf
    • Paul Wilkins's avatar
      Minor rate control refactoring and experiments. · 97da8b8c
      Paul Wilkins authored
      Some minor refactoring code relating to estimates of
      bits per MB at a given Q and estimating the allowed Q range.
      
      Most of the changes here were included in a previous commit.
      This commit seeks to separate out the refactoring from more
      the material changes.
      
      Two #define control flags have been added for experimentation.
      
      ONE_SHOT_Q_ESTIMATE force the two pass encoder to
      use its initial Q range estimate for the whole clip even if this results
      in a miss on the target data rate. In effect this tightens the Q range
      seen at the expense of rate control accuracy.
      
      DISABLE_RC_LONG_TERM_MEM is a related flag that disables the
      long term memory in the rate control. Local adjustments are still
      made to try and better hit the rate target on a per frame basis but
      the impact of rate control misses is not propagated to the remainder
      of the clip. This means that for example an overshoot early on will not
      cause frames later in the clip to be starved of bits. Again the result
      of this relaxation amy be less rate control accuracy especially on short
      clips.
      
      The flags are disabled by default for now.
      
      Change-Id: I7482f980146d8ea033b5d50cc689f772e4bd119e
      97da8b8c
    • Yaowu Xu's avatar
      optimize forward 16x16 DCT for accuracy · 499fe05d
      Yaowu Xu authored
      This commit added pre/post scaling for first half of fDCT16x16 to
      reduce error, by simulation of 100,000 blocks for random inputs,
      the average sse reduced from 2.1/block to 0.0498/block.
      
      also enabled tests for 16x16 fDCT and iDCT
      
      Change-Id: Id2a95f0464c6dd4118797d456237ae90274c0f02
      499fe05d
  2. 23 Feb, 2013 5 commits
    • Ronald S. Bultje's avatar
      Split coefficient token tables intra vs. inter. · 0c9e2e9a
      Ronald S. Bultje authored
      Change-Id: I5416455f8f129ca0f450d00e48358d2012605072
      0c9e2e9a
    • Paul Wilkins's avatar
      Further changes to coefficient contexts. · c17672a3
      Paul Wilkins authored
      This patch alters the balance of context between the
      coefficient bands (reflecting the position of coefficients
      within a transform blocks) and the energy of the previous
      token (or tokens) within a block.
      
      In this case the number of coefficient bands is reduced
      but more previous token energy bands are supported.
      
      Some initial rebalancing of the default tables has been
      by running multiple derf clips at multiple data rates using
      the ENTOPY_STATS macro. Further balancing needs to be
      done using larger image formatsd especially in regard to
      the bigger transform sizes which are not as well represented
      in encodings of smaller image formats.
      
      Change-Id: If9736e95c391e711b04aef6393d26f60f36e1f8a
      c17672a3
    • Yaowu Xu's avatar
    • Yaowu Xu's avatar
      8bf1c4dd
    • Yaowu Xu's avatar
      optimize 8x8 fdct rounding for accuracy · 22012ee9
      Yaowu Xu authored
      The commit added a final rounding choice for 8x8 forward dct to get
      rid of a sign bias at DC position and improve the accuracry in term
      of round trip error for 8x8 fDCT/iDCT.
      
      This commit also enabled forward 8x8 dct test.
      
      Change-Id: Ib67f99b0a24d513e230c7812bc04569d472fdc50
      22012ee9
  3. 22 Feb, 2013 7 commits
  4. 21 Feb, 2013 10 commits
  5. 20 Feb, 2013 9 commits
    • Jingning Han's avatar
      Fixed the buffer overflow issue · 232ccc2f
      Jingning Han authored
      The issue that potentially broke the encoding process was due to the fact
      that the length of token link is calculated from the total number of tokens
      coded, while it is possible, in high bit-rate setting, this length is
      greater than the buffer length initially assigned to the cpi->tok.
      
      This patch increases the initially allocated buffer length assigned to
      cpi->tok from
      (mb_rows * mb_cols * 24 * 16) to (mb_rows * mb_cols * (1 + 24 * 16)).
      
      It resolves the buffer overflow problem.
      
      Change-Id: I8661a8d39ea0a3c24303e3f71a170787a1d5b1df
      232ccc2f
    • Dmitry Kovalev's avatar
      Merge "Code cleanup." into experimental · e6c89a1f
      Dmitry Kovalev authored
      e6c89a1f
    • Yaowu Xu's avatar
      441f24de
    • Dmitry Kovalev's avatar
      Code cleanup. · eb6aee50
      Dmitry Kovalev authored
      Change-Id: I7c6e3bebd94856b24dbe2aded7f9e04ef8bb8c08
      eb6aee50
    • Yaowu Xu's avatar
      Merge lossless experiment · d262e26c
      Yaowu Xu authored
      Change-Id: I7b7b8d4fda3a23699e0c920d727f8c15d37d43aa
      d262e26c
    • Paul Wilkins's avatar
      Entropy stats output code. · ef01b956
      Paul Wilkins authored
      Fixes to make Entropy stats code work again
      
      Change-Id: I62e380481a4eb4c170076ac6ab36f0c2b203e914
      ef01b956
    • 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
    • Yaowu Xu's avatar
      6b1b3417
    • Yaowu Xu's avatar
      fixed an enc/dec mis-match issue · b13f38d4
      Yaowu Xu authored
      The issue was caused by a out-of-order merge, which leads to wrong
      functions are called at lossless mode.
      
      Change-Id: If157729abab62954c729e0377e7f53edb7db22ca
      b13f38d4
  6. 19 Feb, 2013 5 commits