1. 31 Oct, 2011 - 1 commit
    • Paul Wilkins's avatar
      Segmentation Entropy and tweaks. · 795c6dd2
      Paul Wilkins authored
      Some correction for entropy impact of segment signaled (EOB and ref frame)
      
      Other slight tweaks.
      
      Derf VBR average gain now over 1% (best over 7%)
      One YT test clip has gains of circa 30% (VBR)
      
      There is still an issue with noisy clips where making the background static
      and coded with 0,0 can have a negative effect, especially at low Q.
      This is probably because of the loss of smoothing by fractional pixel filters.
      
      Change-Id: I7a225613c98067b96f8fc7a7e36f95d465b2b834
      795c6dd2
  2. 27 Oct, 2011 - 1 commit
    • Paul Wilkins's avatar
      Resolve build problem · afb52f65
      Paul Wilkins authored
      Resolved experimental branch build problem when seg_features not configured.
      
      Change-Id: Ia0f9b460a26dc3eac9844ee595a7b196e9faf6a5
      afb52f65
  3. 25 Oct, 2011 - 1 commit
  4. 24 Oct, 2011 - 3 commits
    • Yaowu Xu's avatar
      added a last stage rounding for 8x8 inverse dct · a66c945c
      Yaowu Xu authored
      Prior to the added rounding, tests on randomly generated data showed
      that forward-inverse transform round trip errors are about 3.02/block
      for input range [-10,10] and 2.68/block for input range [-256, 255].
      The added rounding reduced the errors to 0.031/block for input range
      [-10,10] and 0.037/block for input range [-256, 255].
      
      Maximum round trip error on for any pixel position is 1.
      
      The average errors are calculated based on 100,000 blocks of randomly
      with the specified ranges.
      
      Paul mentioned in discussion that the change was not clear on why we
      need change the rounding, so Patch 2 intends to make the rationale
      obvious in code, it merged the two separate shifts into one, and the
      two separate rounding factors into one. Patch 1 and 2 have same
      numerical test results.
      
      Change-Id: Ic5e2f5463de17253084d8b2398c4a210194b20de
      a66c945c
    • Paul Wilkins's avatar
      Segmentation Features; · 23701f4f
      Paul Wilkins authored
      Only encode sign bit for feature data that can have a sign.
      
      Tweaks to the test segmentation rules so that it now actually gives
      a net benefit on the derf set of about 0.4% though much higher
      on some clips at the low end.
      
      Change-Id: I8e61f1aebf41c9037db7e67e2f8975aa18a0c986
      23701f4f
    • Paul Wilkins's avatar
      Further segment feature extensions. · 01ce04bc
      Paul Wilkins authored
      This quite large check in includes the following:
      
      Merge in some code from Ronald (mbgraph.c) that scans a Gf/arf group.
      This is used as a basis for a simple segmentation for the normal frames
      in a gf/arf group. This code also uses satd functions from Yaowu.
      
      Adds functionality for coding the latest possible position of an EOB for
      blocks in the segment. (Currently 0-15 only, hence just for 4x4 dct).
      Where the EOB position is 0 this acts like "skip" and the normal coding
      of skip at the per mb level is disabled.
      
      Added functions (seg_common.c) for setting and reading segment feature
      elements. These may want to be optimized away at some point but while the
      mecahnism is in a state of flux they provide a single location for making
      changes and keep things a bit cleaner.
      
      This is still proof of concept code. Currently the tested feature set:-
      
      Quantizer,
      Loop Filter level,
      Reference frame,
      Prediction Mode,
      EOB end stop.
      
      TBD:-
      
      Add functions for setting and reading the feature...
      01ce04bc
  5. 14 Oct, 2011 - 1 commit
    • Yaowu Xu's avatar
      fixed the wrong rounding in inverse haar transform · 152ce6b2
      Yaowu Xu authored
      Given the current forward haar transform:
       f0 = I0 + I1 + I2 + I3
       f1 = I0 + I1 - I2 - I3
       f2 = I0 - I1 + I2 - I3
       f3 = I0 - I1 - I2 + I3
      the output of the inverse haar prior rounding:
       i0 = f0 + f1 + f2 + f3 = I0 * 4;
       i1 = f0 + f1 - f2 - f3 = I1 * 4;
       i2 = f0 - f1 + f2 - f3 = I2 * 4;
       i3 = f0 - f1 - f2 + f3 = I3 * 4;
      As all the numbers are 4 multiples, simply >>2 always produces prefect
      results in term of forward-inverse transform round trip error.
      
      Change-Id: Id6658b00ea819ee61cfeef8c5985d4cd3e77f44e
      152ce6b2
  6. 08 Oct, 2011 - 1 commit
    • Yaowu Xu's avatar
      fixed a decoder bug · 3ca84969
      Yaowu Xu authored
      When 8x8 transform is enabled, the decoder does an extra reconstruct
      on MBs that are coded using 8x8. This commit fixed the logic around
      the decoding of mb encoded with 8x8 transform.
      
      Change-Id: I6926557c9ef00eecb375f62946f7e140c660bf6f
      3ca84969
  7. 30 Sep, 2011 - 2 commits
    • Paul Wilkins's avatar
      Segment coding of mode and reference frame. · 156b221a
      Paul Wilkins authored
      Proof of concept test code that encodes mode and reference
      frame data at the segment level.
      
      Decode-able bit stream but some issues not yet resolved.
      As it this helps a little on a couple of clips but hurts on most as
      the basis for segmentation is unsound.
      
      To build and test, configure with
      --enable-experimental --enable-segfeatures
      
      Change-Id: I22a60774f69273523fb152db8c31f4b10b07c7f4
      156b221a
    • Paul Wilkins's avatar
      Experimental: segfeature added. · 45e49e6e
      Paul Wilkins authored
      New setting added to configure script
      45e49e6e
  8. 22 Sep, 2011 - 1 commit
  9. 21 Sep, 2011 - 3 commits
  10. 20 Sep, 2011 - 10 commits
  11. 19 Sep, 2011 - 3 commits
    • Stefan Holmer's avatar
      Fix necessary for input partitions iface to match the RTP profile · e529a825
      Stefan Holmer authored
      These changes fixes a glitch between the RTP profile and the input
      partitions interface. Since there's no way for the user to know the
      actual number of partitions, the decoder have to read the
      multi_token_paritition bits also when input partitions mode is
      enabled.
      
      Included are also a couple of fixes for issues with independent
      partitions and uninitialized memory reads.
      
      Change-Id: I6f93b15287d291169ed681898ed3fbcc5dc81837
      e529a825
    • Tero Rintaluoma's avatar
      Updated ARMv6 forward transforms to match C · 4c3ad66b
      Tero Rintaluoma authored
      - Updated walsh transform to match C
        (based on Change Id24f3392)
      - Changed fast_fdct4x4 and 8x4 to short_fdct4x4 and 8x4
        correspondingly
      
      Change-Id: I704e862f40e315b0a79997633c7bd9c347166a8e
      4c3ad66b
    • Tero Rintaluoma's avatar
      NEON walsh transform updated to match C · 2a4b2a00
      Tero Rintaluoma authored
      Modified original patch If2f07220885c4c3a0cae0dace34ea0e36124f001
      according to comments. Scheduled code a little bit to prevent some
      interlocks.
      
      Change-Id: I338f02b881098782f82af63d97f042b85e63e902
      2a4b2a00
  12. 18 Sep, 2011 - 1 commit
  13. 17 Sep, 2011 - 3 commits
  14. 16 Sep, 2011 - 8 commits
    • Yaowu Xu's avatar
      enable selecting&transmitting to for intra mode entropy · 1d44e7ce
      Yaowu Xu authored
      This commit added a 3 bit index to the bitstream, the index is used to
      look into the intra mode coding entropy context table. The commit uses
      the mode stats to calculate the cost of transmitting modes using 8
      possible entropy distributions, and selects the distribution that
      provides the lowest cost to do the actual mode coding.
      
      Initial test show this provides additional .2%~.3% gain over quantizer
      adaptive intra mode coding. So the adaptive intra mode coding provides
      a total of .5%(psnr) to .6% gain(ssim) combined for all-key-encoding
      
      To build and test, configure with
      --enable-experimental --enable-qimode
      
      Change-Id: I7c41cd8bfb352bc1fe7c5da1848a58faea5ed74a
      1d44e7ce
    • Yaowu Xu's avatar
      add quantizer adaptive intra mb mode encoding · aac2c126
      Yaowu Xu authored
      make intra mode coding entropy distribution adaptive to baseQindex, an
      encoding test on hd clips with all key frame shows universal gain on
      all clips in both .2%(psnr) and (ssim).3%.
      
      To build and test, configure with
      --enable-experimental --enable-qimode
      
      Change-Id: Iaa69241b984d4fdd8baa6d77ee78c0140f5ac00a
      aac2c126
    • Yaowu Xu's avatar
      add 8x8 intra prediction modes · ca6b85aa
      Yaowu Xu authored
      Patch 1 to Patch 3 is an initial implementation of 8x8 intra prediction
      modes, here are with the following assumptions:
      a. 8x8 has 4 prediction modes DC, H, V and TM
      b. UV 4x4 block use the same mode as corresponding 8x8 area
      c. i8x8 modes are enabled for key frame only for now
      Patch 4:
      d. removed debug code from previous patches
      Patch 5:
      e. added stats code to collect entropy stats and further cleaned up
      Patch 6:
      f. changed mode stats code to collect finer stats of modes
      Patch 7:
      g. normalized i8x8 modes distribution to total at 256 (8bits).
      Patch 8:
      h. fixed a bug in decoder and removed debug printf output.
      Patch 9:
      i. more cleanups to address paul's comment
      Patch 10:
      j. messy rebase/merges to bring the commit up to date.
      
      Tests on HD clips encoded with all key frame showing consistent gain
      on all clips and all metrics:~0.5%(psnr) and 0.6%(ssim):
      http://www.corp.google.com/~yaowu/no_crawl/i8x8hd_allkey_fixedq.html
      
      To build and test, configure with:
      --enable-experimental --enable-i8x8
      
      Change-Id: I9813fe07ae48cab5fdb5d904bca022514ad01e7f
      ca6b85aa
    • John Koleszar's avatar
    • John Koleszar's avatar
      Merge remote branch 'internal/upstream' into HEAD · 62371d38
      John Koleszar authored
      Conflicts:
      	vp8/decoder/decodframe.c
      	vp8/encoder/encodeframe.c
      	vp8/encoder/encodemb.c
      
      Change-Id: I6e0d1669e4409a2dfd73ba2c7038d730842d3953
      62371d38
    • John Koleszar's avatar
    • John Koleszar's avatar
      Merge remote branch 'origin/master' into experimental · 1158bcd8
      John Koleszar authored
      Change-Id: I20df6781013786cbf56ded31e1c726de6c34bc42
      1158bcd8
    • Stefan Holmer's avatar
      Fixes the boundary checks for extrapolated and interpolated MVs. · b854bbd8
      Stefan Holmer authored
      Change-Id: I5b47d39d1604f2650d2f2d1ca2a3f40843c8e1ea
      b854bbd8
  15. 15 Sep, 2011 - 1 commit
    • Paul Wilkins's avatar
      Segment Feature Signaling · ceb51742
      Paul Wilkins authored
      Plumbing for tuning new segment features on and off.
      
      Change-Id: If86cd6f103296b73030e8af7cf85c5b9bbffdbaf
      ceb51742