1. 09 Feb, 2012 - 2 commits
    • Paul Wilkins's avatar
      Dual pred flag · 8266abfe
      Paul Wilkins authored
      Further changes to make experiments with the context
      used for coding the dual pred flag easier.
      
      Current best performing method tested on derf is a two
      element context based on reference frame. I also tried
      various combinations of mode and reference frame as
      shown in commented out case using up to 6 contexts.
      
      Derf +0.26 overall psnr +0.15% ssim vs original method.
      
      Change-Id: I64c21ddec0abbb27feaaeaa1da2e9f164ebaca03
      8266abfe
    • Paul Wilkins's avatar
      Changes to coding of dual_pred flag. · 59a200f1
      Paul Wilkins authored
      Further use of common prediction functions and experiments
      with alternate contexts based on mode and reference frame.
      
      For the Derf set using reference frame as basis of context
      gives +0.18% Overall Psnr and +0.08 SSIM
      
      Change-Id: Ie7eb76f329f74c9c698614f01ece31de0b6bfc9e
      59a200f1
  2. 08 Feb, 2012 - 3 commits
    • Ronald S. Bultje's avatar
      Fix dual prediction recode loop. · 915f13bd
      Ronald S. Bultje authored
      We should only change the dual prediction mode if we actually entered
      the recode branch. Else, it may potentially undo beneficial changes
      to the dual prediction mode in the first encode iteration.
      
      Change-Id: I79fc53e5fd0bb551092ed422c797619f1566f002
      915f13bd
    • Ronald S. Bultje's avatar
      Remove write-only variable "mbs_dual_count". · 3adcbe2f
      Ronald S. Bultje authored
      Change-Id: Icf7a6749ca2f8ad6a032f86c34540d1c5880cf68
      3adcbe2f
    • Ronald S. Bultje's avatar
      Fix dual prediction recode loop. · c8ec59d8
      Ronald S. Bultje authored
      Some conditions were conditional under a threshold, whereas they should
      always execute. Also, some conditions were testing an array instead of
      the values within it.
      
      Change-Id: Ia6892945cfbbe07322e6af6be42cd864bf9479c1
      c8ec59d8
  3. 06 Feb, 2012 - 5 commits
    • Paul Wilkins's avatar
      Move update of ref frame probabilities in encode loop. · e1050bd3
      Paul Wilkins authored
      The existing code updated the reference frame probabilities before
      the test to evaluate the impact of using updated probabilities
      in vp8_estimate_entropy_savings().
      
      The estimate of cost and savings is still basic and does not reflect
      the new prediction code but this would require per MB costings
      and the benefit is probably marginal, as this is really just used for
      rate estimation in the loop.
      
      Change-Id: Id6ba88ae6e11c273b3159deff70980363ccd8ea1
      e1050bd3
    • Paul Wilkins's avatar
      Merged NEWNEAR experiment · 9c9300f5
      Paul Wilkins authored
      This commit merges the NEWNEAR experiment such that it
      is effectively always on.
      
      The fact that there were changes in the threading code again
      highlights the need to strip out such features during the
      bitstream development phase as trying to maintain this code
      (especially as it is not being tested) slows the development cycle.
      
      Change-Id: I8b34950a1333231ced9928aa11cd6d6459984b65
      9c9300f5
    • Paul Wilkins's avatar
      Coding the hybrid dual prediction signal. · 82b865da
      Paul Wilkins authored
      Initial modifications to make limited use of common prediction
      functions.
      
      The only functional change thus far is that updates to the probabilities are
      no longer "damped". This was a testing convenience but in fact seems to
      help by a little over 0.1% over the derf set.
      
      Change-Id: I8b82907d9d6b6a4a075728b60b31ce93392a5f2e
      82b865da
    • Paul Wilkins's avatar
      Moved prob_dualpred to common. · c98e9d28
      Paul Wilkins authored
      Moved the prob_dualpred[] sturcture to common.
      Created common prediction entry for Dual flag.
      
      Change-Id: I9ac3d128bae6114f09e5c18216d4b95cf36453d5
      c98e9d28
    • Paul Wilkins's avatar
      Modified prediction behavior for reference frame. · 58ec6fe8
      Paul Wilkins authored
      Trial of a modified prediction function that ranks each possible
      reference frame based on a combination of local usage and
      frame level probability. The code is a bit cleaner and simpler.
      
      In direct comparison with old unpredicted method with segment level
      coding turned off for mode,ref & EOB the prediction gives a gain on derf
      of around 0.4%. There is some further gain from bug fixes over earlier code.
      
      With segment coding on the prediction method is slightly -ve on some very
      easy clips (at low rates) due to slightly higher overheads, but better on harder
      clips. Overall neutral on derf in direct comparison on latest code base, but
      compared to earlier code without bug fixes about +0.7% overall psnr
      +0.3% SSIM.
      
      Change-Id: I5b8474658b208134d352d24f6517f25795490789
      58ec6fe8
  4. 03 Feb, 2012 - 1 commit
    • Paul Wilkins's avatar
      Reference frame prediction: · f0459549
      Paul Wilkins authored
      Extended prediction and coding of reference frame where
      a subset of options are flagged as available at the segment level.
      
      Updated copyright notices.
      
      Switch to SAD in mbgraph code as SATD problematic for the
      foreground and background separation as it can ignore large DC shifts.
      
      Change-Id: I661dbbb2f94f3ec0f96bb928c1655e5e415a7de1
      f0459549
  5. 02 Feb, 2012 - 2 commits
    • Adrian Grange's avatar
      Added encoding in Superblock Order · 5d0b5a17
      Adrian Grange authored
      As a precursor to encoding 32x32 blocks this cl adds the
      ability to encode the frame superblock (=32x32 block) at
      a time. Within a SB the 4 indiviual MBs are encoded in
      raster-order (NW,NE,SW,SE).
      
      This functionality is added as an experiment which can be
      enabled by ispecifying --enable-superblocks in the
      command line specified to configure (CONFIG_SUPERBLOCKS
      macro in the code).
      
      To make this work I had to disable the two intra
      prediction modes that use data from the top-right of the
      MB.
      
      On the tests that I have run the results produce
      almost exactly the same PSNRs & SSIMs with a very
      slightly higher average data rate (and slightly higher
      data rate than just disabling the two intra modes in
      the original code).
      
      NOTE: This will also break the multi-threaded code.
      
      This replaces the abandoned change:
      Iebebe0d1a50ce8c15c79862c537b765a2f67e162
      
      Change-Id: I1bc1a00f236abc1a373c7210d756e25f970fcad8
      5d0b5a17
    • Paul Wilkins's avatar
      Comment out segref segmentation filter changes. · 92ffb17c
      Paul Wilkins authored
      Commented out changes from earlier checking:
      
      "Change Iab7f1eff: vpnext use segref segmentation filter"
      
      Which in its current state breaks the decoder.
      
      Change-Id: I9185098aeda8ce65310f338c4c9375f4a39005d3
      92ffb17c
  6. 01 Feb, 2012 - 3 commits
  7. 31 Jan, 2012 - 8 commits
  8. 30 Jan, 2012 - 1 commit
  9. 27 Jan, 2012 - 3 commits
  10. 26 Jan, 2012 - 2 commits
  11. 24 Jan, 2012 - 2 commits
    • Yaowu Xu's avatar
    • Jim Bankoski's avatar
      vpn common -> implicit segmentation · 91325b8f
      Jim Bankoski authored
      This introduces base functions for introducing implicit segmentation.
      The code that actually stores the results to the segment map isn't
      here yet.   This just prints out the segmentation map results
      if you call it.
      
      Uses connected component labeling technique on mbmi info so that only
      if 2 mbs are horizontally or vertically touching do they get the same
      segment.
      
      vp8next - plumbing for rotation
      
      code to produce taps for rotation ( tapify. py ),  code
      for predicting using rotation ( predict_rotated.c ) ,  code
      for finding the best rotation find_rotation.c.
      
      didn't checkin code that uses this in the codec.   still work
      in progress.
      
      Fixed copyright notice
      
      Change-Id: I450c13cfa41ab2fcb699f3897760370b4935fdf8
      91325b8f
  12. 20 Jan, 2012 - 3 commits
    • Yaowu Xu's avatar
      changed loop filter for MBs using 8x8 transform · aebb16bf
      Yaowu Xu authored
      This commit added a set of loop filter functions for macroblocks
      using 8x8 transform. First we turned off the regular loop filtering
      on 4x4 block boundaries that do not exist in macroblocks using 8x8
      transform. Second, we change to use the same loop filter(mask and
      7 tap filter) that used for macroblock edge filtering.
      
      Change-Id: I3a00460b7674ced116917d86812ffc32578c1d3a
      aebb16bf
    • Yaowu Xu's avatar
      Added code to prevent I8X8_PRED mode for MBs using 8x8 transform · 5aab0c3f
      Yaowu Xu authored
      This fixed a conflict introduced by the change of adding 8x8 intra
      prediction modes. The 8x8 intra prediction mode code assumed the
      use of 4x4 transform, and causes encoder crashes when the codec is
      configured with --enable-t8x8.
      
      Change-Id: I00cc94df63e9725377ffba9eb51be6b77fe3fcf9
      5aab0c3f
    • Yaowu Xu's avatar
      reverted an accidental code deleting · be9af16e
      Yaowu Xu authored
      commit cf561bad accidentally deleted a line of code that sets the
      base_qindex for each frame, which leads to every frame is encoded
      at Q of 0.
      
      Change-Id: Ib5f8022e856bf3b3bd0d4147405e46241e3dcf2d
      be9af16e
  13. 18 Jan, 2012 - 3 commits
  14. 17 Jan, 2012 - 1 commit
    • Paul Wilkins's avatar
      Rate control on static scenes plus Y2dc delta Q fix. · cf561bad
      Paul Wilkins authored
      A problem can arise on static clips with force key frames where
      attempts to avoid popping lead to a progressive reduction in key
      frame Q that ultimately may lead to unexpected overspend against
      the  rate target.
      
      The changes in this patch help to insure that in such clips the
      quality of the key frames across the clip is more uniform (rather
      than starting bad and getting better - especially at low target rates).
      
      This patch also includes a fix that removes a delta on the Y2DC
      when the baseline q index < 4 as this is no longer needed.
      
      There is also a fix to try and prevent repeat single step Q adjustment in
      the recode loop leading to lots of recodes, especially where the use
      of forced skips as part of segmentation has made the impact of Q on
      the number of bits generated much smaller.
      
      Patch 2: Amend "last_boosted_qindex" calculation for arf overlay frames.
      
      Change-Id: Ia1feeb79ed8ed014e4239994fcf5e58e68fd9459
      cf561bad
  15. 11 Jan, 2012 - 1 commit