1. 11 Apr, 2012 1 commit
    • 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
  2. 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
  3. 22 Mar, 2012 1 commit
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 07 Mar, 2012 2 commits
    • 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
    • Paul Wilkins's avatar
      Snapshot candidate · 68033ca4
      Paul Wilkins authored
      Pulled out super block code for the snapshot as this
      is not quite ready and will need an extensive re-merge.
      
      Change-Id: I436369b511257447a7b0ea064016cb63f5011849
      68033ca4
  10. 06 Mar, 2012 2 commits
  11. 05 Mar, 2012 5 commits
    • Ronald S. Bultje's avatar
      Use per-MB compound intra prediction. · c3f5b293
      Ronald S. Bultje authored
      This gives a modest gain on derf overall, although at low bitrates the
      cost is still too high, so this can be improved further.
      
      Patch 2. Re-base and fix 80 column issues
      
      Change-Id: Ida2f9fa3fe75370669f6a27b37108dc602231c63
      c3f5b293
    • Yaowu Xu's avatar
      Changed how UV r/d estimates are done for Intra Modes · 6898e8b7
      Yaowu Xu authored
      The commit changed to compute UV intra RD estimates for 4x4 and 8x8
      separately to be used in mode decision for MB modes associated with
      the appropriate transform size respectively. Now finally after many
      other changes related 8x8 quantizer zbin boost and zbin_mode_boost,
      this change overall helps the HD(with 8x8) by around ~.13%.
      (avg .13%  glb .13% ssim .17%)
      
      The commit also has a few changes for eliminating compiler warnings.
      
      Change-Id: Ibab35dad44820c87e6b44799c66f8d519cc37344
      6898e8b7
    • Yaowu Xu's avatar
      Fixed zbin_mode_boost initialization · eaa955ba
      Yaowu Xu authored
      The commit added the correct Zbin_mode_boost initialization based on
      Intra Mode before using rate distortion to pick UV intra mode.
      
      Change-Id: I8e57878ff356a06672f6fa2431be860bf9b9a5c7
      eaa955ba
    • Yaowu Xu's avatar
      refactored code that checks if a macroblock is skippable · 848bccab
      Yaowu Xu authored
      Change-Id: I4ea6d819bbbde312792c4f813ab63ea50cf0cd1d
      848bccab
    • Paul Wilkins's avatar
      Allow for frame overheads in min frame bandwidth. · a0be3faa
      Paul Wilkins authored
      Change-Id: I6ade229ff400fe492709010ac5bada37f8afa73e
      a0be3faa
  12. 01 Mar, 2012 4 commits
  13. 29 Feb, 2012 4 commits
  14. 28 Feb, 2012 9 commits
    • Paul Wilkins's avatar
      dc825f1e
    • Deb Mukherjee's avatar
      Initial refactoring of high_precision mv code. · 3e1cad9c
      Deb Mukherjee authored
      This is the first patch for refactoring of the code related to
      high-precision mv, so that 1/4 and 1/8 pel motion vectors can
      co-exist in the same bit-stream by use of a frame level flag.
      The current patch works fine for only use of 1/4th and
      only use of 1/8th pel mv, but there are some issues with the
      mode switching in between. Subsequent patches on this change Id
      will fix the remaining issues.
      
      Patch 2: Adds fixes to make sure that multiple mv precisions can
      co-exist in the bit-stream. Frame level switching has been tested
      to work correctly.
      
      Patch 3: Fixes lines exceeding 80 char
      
      Patch 4:
      http://www.corp.google.com/~debargha/vp8_results/enhinterp.html
      
      Results on derf after ssse3 bugfix, compared to everything
      enabled but the 8-tap, 1/8-subpel and 1/16-subpel uv. Overall the
      gains are about 3% now. Hopefully there are no more bugs lingering.
      Apparently the sse3 bug affected the quartel subpel results more than
      the eighth pel ones (which is understandabale because one bad predictor
      due to the bug, matters less if there are a lot more subpel options
      available as in the 1/8 subpel case).
      The results in the 4th column correspond to the current settings.
      The first two columns correspond to two settings of adaptive switching
      of the 1/4 or 1/8 subpel mode based on initial Q estimate. These
      do not work as good as just using 1/8 all the time yet.
      
      Change-Id: I3ef392ad338329f4d68a85257a49f2b14f3af472
      3e1cad9c
    • Yaowu Xu's avatar
    • Paul Wilkins's avatar
      Merge new loop filter. · 19b9d28f
      Paul Wilkins authored
      Merge of the NEWLPF configuration experiment so it is always on.
      
      Change-Id: I7054772b6eab28bad1ff807bfa54d98f83de9308
      19b9d28f
    • Yaowu Xu's avatar
      Try to enable 8x8 tranform for smaller resolution · 42891098
      Yaowu Xu authored
      The commit overall on derf test is break even to very slightly positive
      comparing to all 4x4 transform.
      
      Change-Id: I2a7c19599aa54c2d3a5b35db0dc891ba8a6a2b26
      42891098
    • Paul Wilkins's avatar
      Experimental branch code clean up. · 25c127f5
      Paul Wilkins authored
      Removal of some further code relating to partitions
      and error resilience.
      
      Spelling correction.
      
      Change-Id: I36067aae67a4a23bec359541dda3400b0bbf26d0
      25c127f5
    • Paul Wilkins's avatar
      Code Simplification · b6f02c85
      Paul Wilkins authored
      Removal of code relating to token partitioning
      
      Change-Id: Iaf3c88d6758639a55bd92c3be5c51e6bed407a3c
      b6f02c85
    • Yaowu Xu's avatar
      fixed a wrong intialization value · eb87b56e
      Yaowu Xu authored
      The "update" variable was used as a flag in coef_prob update dry run
      that tests if a frame should encodes update at all. The wrong init
      value forced the update happening always. fixing this has a minor
      improvement in low bit rate situation when 8x8 transform is allowed.
      
      Change-Id: Icb498e8d6a62fd074dcbc2065b797cba9237cb51
      eb87b56e
    • Paul Wilkins's avatar
      3cdd0a8e