1. 27 Apr, 2012 1 commit
    • Adrian Grange's avatar
      Removed MV costing from ARNR filtering · 393440db
      Adrian Grange authored
      The ARNR filter uses a motion compensated temporal filter,
      but the motion estimation implementation accounts for the
      cost of the mv in its decision making process. The ARNR
      filter uses a dummy cost table initialized to 0 as a way
      to ignore the mv costs (which are irrelevant to the filter).
      
      This CL modifies the ARNR filter implementation to so that
      the mv costing is ignored without the requirement for
      dummy tables.
      
      Change-Id: I0dd9620c3b70682f938b2a70912c11d4d7c9284c
      393440db
  2. 25 Apr, 2012 2 commits
    • Yaowu Xu's avatar
      Merge QIMODE experiment · a16608ab
      Yaowu Xu authored
      This commit merge the QI mode experiment. As the experiment affects
      the encoding of intra coding modes on key frame only, the overall
      effect of the experiment on encoding tests is insignificant.
      
      Change-Id: I9e4e3933adface88867ad429cee3986e529c511d
      a16608ab
    • Yaowu Xu's avatar
      Merge UVINTRA experiment · c1814d26
      Yaowu Xu authored
      The commit merges the UVINTRA experiment and removed the related
      macros. The overall effect of the experiment is a small gain (.1%
      on derf)
      
      Change-Id: Ia34b3312fb9b5b34c9ba111bf0fa78c6f78ac80b
      c1814d26
  3. 24 Apr, 2012 3 commits
  4. 20 Apr, 2012 3 commits
    • Ronald S. Bultje's avatar
      Hide some code behind CONFIG_COMP_INTRA_PRED. · 2210767c
      Ronald S. Bultje authored
      Change-Id: I7c0597dede20cc71145c053f76bd99aaf759d144
      2210767c
    • Yaowu Xu's avatar
      change to allow 8x8 transform always · ade43d91
      Yaowu Xu authored
      This commit changed to enable the usage 8x8 transform for all frame
      type, all resolution and all quantizer range. This has an overall
      benefit .2% to .3% in term of compression, but more importantly,
      the difficult clips benefits much more, up to 2% to 3% on clips
      like football, harbour and so on.
      
      We observed some weird humps on very high end on a couple of youtube
      clips, but have determined the underly cause was the aggressive zbin
      having an effect of lowering rate with lower quality, which have
      an impact on slide show clips around 60DB.
      
      The commit does not change the association between prediction mode
      and transform size.
      
      Change-Id: I33043bdce6207528ae00b4a4b26d8ff63cfea1f4
      ade43d91
    • Yaowu Xu's avatar
      added reset of rate estimates for each mode · ecc28cda
      Yaowu Xu authored
      This is to prevent the evaluation of a mode from using values left
      over from a mode evaluated prior in the loop.
      
      Change-Id: Ife2c6ceb76d2f7365fd262515d3ae48229033c2d
      ecc28cda
  5. 19 Apr, 2012 1 commit
  6. 18 Apr, 2012 3 commits
  7. 17 Apr, 2012 2 commits
  8. 16 Apr, 2012 1 commit
  9. 13 Apr, 2012 1 commit
    • Adrian Grange's avatar
      Added save coding context & modified MV bounds · fa589adc
      Adrian Grange authored
      Added code to save the coding context in vp8_rd_pick_inter_mode
      when the coding mode is forced to ARF(0,0).
      
      Also, modified the MV bounds computation to comply with the
      change in MV border from 32 to 64 pixels.
      
      Change-Id: I96963a6f5f4d04ce84c807ae11e0635177c3ad6c
      fa589adc
  10. 12 Apr, 2012 4 commits
    • Deb Mukherjee's avatar
      Turning off interpolation filter selection · 237718dc
      Deb Mukherjee authored
      Turning off the interpolation filter selection based on edge
      proportion. This heuristics has not been working as well as
      expected and I have started a more rigorous investigation into
      this. We can turn this off for now since it is unnecessarily
      slowing things down.
      
      Rebase.
      
      Change-Id: Ic5958b2b3a35ec2d8eb73b6d81617ca8fbe07e74
      237718dc
    • Yaowu Xu's avatar
      a set of minor fixes · 636b2f38
      Yaowu Xu authored
      This commit tries to address an issue related to the oddity shown on
      HD _mobcal clip, where some rather ugly blocks shown in the second
      frame at low-mid bit rates if the third frame is not made a key frame
      by he encoder. The fixes include: 1)  made calls to sad_16x16 to be
      consistent with function prototype. 2) remove the error bias to intra
      and golden in mbgraph search. 3) changed the error accumulation on
      inter_segment encoding to avoid potential out-of-range. 1) has no
      effect on encoding results.
      
      Encoding test show that the overall effect of the commit helps about
      .2%(HD) to .3%(cif)
      
      Change-Id: I930975a2d0c06252f01c39e0a02351529774e30b
      636b2f38
    • Yaowu Xu's avatar
      Adjust the key frame placement condition · d6f4b71d
      Yaowu Xu authored
      The commit removed a limit on key frame detection, which caused a big
      drop in all metric measurements for standard HD clip such as _mobcal.
      
      This single change helps two standard HD clips by a huge amount, which
      help the overall std-hd set by 2.4% (glb psnr), 0.9% (avg_psnr), 2.1%
      (vpxssim).
      
      In the result page:
      http://pafr9.prod.google.com:26163/?/cns/rc-d/home/on2-prod/sunkaras/borg-test/yaowu
      
      2012_04_02_1649_yaowu_bugfix_std-hd
      2012_04_03_1452_yaowu_hump_std-hd
      represent the encoding test results and std-hd set prior and after this
      commit respectively.
      
      Change-Id: Ie4313e317c737ea0e699c3a7919c1376744baa1a
      d6f4b71d
    • Yaowu Xu's avatar
      changed function prototype for macro_block_yrd · d56acae6
      Yaowu Xu authored
      This commit has made macro_block_yrd_8x8 and macro_block_yrd_8x8 to
      take same parameters. It also removed a few unnecessary shifts that
      has the potential to create out-of-range distortion values.
      
      Change-Id: I4ec5afb307c3685c2a67a07c2850f0927d214455
      d56acae6
  11. 11 Apr, 2012 5 commits
    • Paul Wilkins's avatar
      Delete unused function. · d6ac213c
      Paul Wilkins authored
      Deleted check_gf_quality().
      
      Change-Id: If75fbd84accb1f6471ad6ea6ff2b65ae99976f5d
      d6ac213c
    • Paul Wilkins's avatar
      Refactoring of encode loop and bitstream packing · 13c6d1a8
      Paul Wilkins authored
      Some code re-factored / moved to allow the main
      pack operation inside the recode loop so  that the
      size estimate is accurate.
      
      Deletion of some redundant code relating to one pass.
      
      Aproximate improvement over March 27 code base:
      Derf 0.0%, YT 0.5%, YThd 0.3% Std_hd 0.25%
      
      Change-Id: Id2d071794ab44f0b52935f6fcdb5733d09a6bb86
      13c6d1a8
    • Paul Wilkins's avatar
      Changes to costing of skip. · f2ec452f
      Paul Wilkins authored
      Update the costing of skip in the recode loop and rd code.
      
      Change-Id: I2e5ebbd7ddf201212b32441321e12626cd0423e9
      f2ec452f
    • Paul Wilkins's avatar
      T8x8 zbin and rate control changes. · a3392d57
      Paul Wilkins authored
      Some adjustments to zbin for t8x8.
      Changes to rules for sizing forced key frames.
      Some extra stats output in tmp.stt.
      
      Approximate  gain on YT-hd set 0.5%
      
      There are still issues in sizing key frames and gf/arf frames
      when the image is largely static. These in part relate to
      problems with cost estimates in the recode loop.
      
      Change-Id: I6f0159dc8a8faeab4115a19c668d442491619a68
      a3392d57
    • Adrian Grange's avatar
      Superblock encoding order · 9daf3154
      Adrian Grange authored
      This is the first patch to add superblock (32x32) coding
      order capabilities. It does not yet do any mode selection
      at the SB level, that will follow in a further patch.
      
      This patch encodes rows of SBs rather than
      MBs, each SB contains 2x2 MBs.
      
      Two intra prediction modes have been disabled since they
      require reconstructed data for the above-right MB which
      may not have been encoded yet (e.g. for the bottom right
      MB in each SB).
      
      Results on the one test clip I have tried (720p GIPS clip)
      suggest that it is somewhere around 0.2dB worse than the
      baseline version, so there may be bugs.
      
      It has been tested with no experiments enabled and with
      the following 3 experiments enabled:
        --enable-enhanced_interp
        --enable-high_precision_mv
        --enable-sixteenth_subpel_uv
      in each case the decode buffer matches the recon buffer
      (using "cmp" to compare the dumped/decoded frames).
      Note: Testing these experiments individually created
      errors.
      
      Some problems were found with other experiments but it
      is unclear what state these experiments are in:
        --enable-comp_intra_pred
        --enable-newentropy
        --enable-uvintra
      
      This code has not been extensively tested yet, so there
      is every likelihood that further bugs remain. I also
      intend to do some code cleanup & refactoring in tandem
      with the next patch that adds the 32x32 modes.
      
      Change-Id: I1eba7f740a70b3510df58db53464535ef881b4d9
      9daf3154
  12. 29 Mar, 2012 1 commit
    • Deb Mukherjee's avatar
      Bug fix in probability update savings computation · 78ecbc98
      Deb Mukherjee authored
      Found this bug while tracking down some anomalies in my experiments.
      Since vp8_cost_one and vp8_cost_zero return unsigned int, the
      bit shift by 8 will be incorrect if the value is negative.
      I am cautiously optimistic that this fix will make the prob
      updates more correct and somewhat improve results across the board.
      But the update probabilities will need to be retuned I think.
      
      Patch 2: Adding more of the same fixes using a macro.
      
      Change-Id: I1a168f040e74e8c67e7225103b1c2af9a611da49
      78ecbc98
  13. 22 Mar, 2012 1 commit
  14. 21 Mar, 2012 5 commits
    • Yaowu Xu's avatar
      enable 8x8 transform for MBs in intra frames · 2823173e
      Yaowu Xu authored
      When ac_yquant>171, a key frame is enabled to use 8x8 transform. In
      such case, MBs with DC_PRED or TM_PRED are selected to use T8x8. This
      change helped the full STD-HD set by ~.1% or so, which is reasonable
      considering how often key frame occurs in these encodings.
      
      Change-Id: Id17009ef6327252177b19e6bf0d6628827febaf1
      2823173e
    • Paul Wilkins's avatar
      Only support improved quant · c88d335f
      Paul Wilkins authored
      Deprecate fast quant and strict_quant code.
      Small effect on quality as fast was used in first pass but the
      effect is basically neutral across the derf set.
      
      The rationale here is to reduce the number of code paths for
      now to make experimentation easier. Optimized and fast code
      options can be re-introduced later along with other  encode
      speed options.
      
      Change-Id: Ia30c5daf3dbc52e72c83b277a1d281e3c934cdad
      c88d335f
    • Paul Wilkins's avatar
      Merge Exact Quant · 36af2035
      Paul Wilkins authored
      Change-Id: Id2412a7f24a7c1016ec9fc3b9b0fbd16871f374a
      36af2035
    • Deb Mukherjee's avatar
      Making subpel filters switchable at frame level · 475d5d56
      Deb Mukherjee authored
      Various refactoring to make the subpel motion compensation
      filters switchable by a frame level field.
      Two types of 8-tap filters are supported in addition to the existing
      bilinar and sixtap filters. One is the default 8-tap and the
      other has a sharper cut-off for use with frames with substantial
      edge content.
      
      Patch 2: Added a preliminary strategy for filter selection based on
      edginess detecton. Also includes some filter changes.
      
      Change-Id: I866085bda5ae143cfdf2ec88157feaabdf7bd63a
      475d5d56
    • Deb Mukherjee's avatar
      Adding contextual coding of mb_skip_coeff flag. · 57d95347
      Deb Mukherjee authored
      Using contextual coding of the mkb_skip_coeff flag using the
      values of this flag from the left and above. There is a small
      improvement of about 0.15% on Derf:
      http://www.corp.google.com/~debargha/vp8_results/mbskipcontext.html
      
      Refactored to use pred_common.c by adding a new context type.
      
      Results on HD set (about 0.66% improvement):
      http://www.corp.google.com/~debargha/vp8_results/mbskipcontext_hd.html
      
      Incliding missing refactoring to use the pred_common utilities.
      
      Change-Id: I95373382d429b5a59610d77f69a0fea2be628278
      57d95347
  15. 15 Mar, 2012 3 commits
    • Yaowu Xu's avatar
      added clamp for 2nd motion vector · 21d3612a
      Yaowu Xu authored
      The commit added a clamp to the 2nd motion vector used in compound
      prediction to insure mv within UMV borders. The clamp is similar to
      that of the first motion vector except that No SPLITMV is ever used
      for the 2nd motion vector.
      
      Change-Id: I26dd63c304bd66b2e03a083749cc98c641667116
      21d3612a
    • Yaowu Xu's avatar
      Added encode/decode recon buffer match test to vpxenc · f798f9e4
      Yaowu Xu authored
      The commit added a new command line option --test-decode to vpxenc.
      The option enables encoder to decode compressed frames and test recon
      buffers from the decode against those from encode for mismatch.
      
      There are a few limitations on this option currently, one of them
      being the match test is not done on a number of lagged frames at
      the end of an encoding.
      
      Change-Id: I80c29b46dcdcea9f48107a506b235743068862fe
      f798f9e4
    • Yaowu Xu's avatar
      fixed a bug of context overwritten by key frame recoding · ea43ba4a
      Yaowu Xu authored
      The recoding loop save and restore frame coding context for recodes.
      However in recoding of key frames, some of the coding context saved
      was stale from last encoded inter frame. The save/restore sometimes
      overwrites the re-inintialized coding context with saved context
      from last frame, resulting in encoder/decoder mismatch
      
      Change-Id: I354ae2f71074d142602d51d06544c05a2462caaf
      ea43ba4a
  16. 14 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      Added option to skip first n frame to vpxenc · 03d5d693
      Yaowu Xu authored
      this commit added a command line option to skip first n frames from
      input file to facilitate debugging and testing.
      
      Change-Id: I4ffc5f85fa7e193ea4bdee08cb236717de8beef1
      03d5d693
  17. 12 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      fixed .mk files to reflect add/remove of a header file · 3f5feb7d
      Yaowu Xu authored
      In a previous commit, the duplicate of headerfile defaultcoefcounts.h
      was identified. This commit updates the .mk file to ensure configure
      and make works properly for all platforms.
      
      Change-Id: I31a39c809a734ba438ee53db700f252e9a03eddd
      3f5feb7d
  18. 08 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      Changed MAX_PSNR to be consistent with internal stats · 8cf28d34
      Yaowu Xu authored
      The maximum psnr has a marginal impact on the overall output in high
      quality encodings, the change will make sure the psnr output to be
      consistent with encoder internal stats.
      
      Change-Id: I35cf2f85008ec127a7d91c9eb69fa7811798ae32
      8cf28d34
  19. 07 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      removed duplicate a head file · 64439c2b
      Yaowu Xu authored
      Removed the copy in encoder and changed to use the one in common
      
      Change-Id: Ief0985a50ffd6053a269638fd4816b055ca273ec
      64439c2b