1. 07 Jun, 2013 1 commit
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  2. 06 Jun, 2013 2 commits
    • Ronald S. Bultje's avatar
      New intra mode and partitioning probabilities. · ad343687
      Ronald S. Bultje authored
      Split partition probabilities between keyframes and non-keyframes,
      since they are fairly different. Also have per-blocksize interframe
      y intramode probabilities, since these vary heavily between different
      blocksizes.
      
      Lastly, replace default probabilities for partitioning and intra modes
      with new ones generated from current codec. Replace counts with actual
      probabilities also.
      
      Change-Id: I77ca996e25e4a28e03bdbc542f27a3e64ca1234f
      ad343687
    • Jim Bankoski's avatar
      don't tokenize & encode tokens for blocks in UMV · 5a88271b
      Jim Bankoski authored
      This avoids encoding tokens for blocks that are entirely
      in the UMV border. This changes the bitstream.
      
      Change-Id: I32b4df46ac8a990d0c37cee92fd34f8ddd4fb6c9
      5a88271b
  3. 05 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      Clean-ups on switchable interpolation and mv_ref · 83885235
      Deb Mukherjee authored
      Adds backward adaptation and differential forward updates of switchable
      interpolation filter probabilities. Also adds some cosmetic cleanups
      and minor fixes on mv_ref probabilities.
      
      derfraw300: +0.353% (with most coming from switchable interp changes)
      
      Change-Id: Ie2718be73528c945fd0d80cfd63ca2d9cb3032de
      83885235
  4. 31 May, 2013 5 commits
    • Dmitry Kovalev's avatar
      Replacing memcpy with struct assignment. · 3b9ec31e
      Dmitry Kovalev authored
      Change-Id: Ib557cc6351404b9e178e95a545883eb3666f11f0
      3b9ec31e
    • Dmitry Kovalev's avatar
      Adding new encode_txfm function. · 75cf80ee
      Dmitry Kovalev authored
      Moving some code from vp9_pack_bitstream to encode_txfm function.
      
      Change-Id: Icc25d6083e54f09886216fea632ceac002042d7f
      75cf80ee
    • Ronald S. Bultje's avatar
      Merge all various transform size data trackers into single variables. · e9d68a5e
      Ronald S. Bultje authored
      Change-Id: I2dfc569106b29fbe4da20585a0e85e5e9ea6a4db
      e9d68a5e
    • Jim Bankoski's avatar
      Creates a new speed 1: · ced21bd6
      Jim Bankoski authored
      This speed 1 - uses variance threshold stolen from static-thresh
      to determine split.  Any superblock with greater than the variance
      set by static thresh * quantizer index squared is split. In addition
      transform size is set to largest size less than or equal to partition
      size, sub pixel filter is set to normal,  and only 12 modes are used
      at all.
      
      Change-Id: If7a2858ee70f96d1eb989c04fd87a332b147abef
      ced21bd6
    • Ronald S. Bultje's avatar
      Remove splitmv. · e6485581
      Ronald S. Bultje authored
      We leave it in rdopt.c as a local define for now - this can be removed
      later. In all other places, we remove it, thereby slightly decreasing
      the size of some arrays in the bitstream.
      
      Change-Id: Ic2a9beb97a4eda0b086f62c039d994b192f99ca5
      e6485581
  5. 30 May, 2013 1 commit
  6. 29 May, 2013 1 commit
    • Scott LaVarnway's avatar
      Moved use_prev_in_find_mv_refs check to frame level · 353642bc
      Scott LaVarnway authored
      This patch checks at the frame level to see if the previous
      mode info context can be used.  This patch eliminates the
      flag check that was done for every mode and removes another
      check that was done prior to every vp9_find_mv_refs().
      
      Change-Id: I9da5e18b7e7e28f8b1f90d527cad087073df2d73
      353642bc
  7. 26 May, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove splitmv. · 5cac6607
      Ronald S. Bultje authored
      Also do per-partition motion vector referencing in <sb8x8 partitions,
      and adjust mvref finding for sub8x8 partitions.
      
      Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
      5cac6607
  8. 24 May, 2013 3 commits
    • Jingning Han's avatar
      Fix transform size coding mismatch · d0930277
      Jingning Han authored
      This commit fixes a transform size enc/dec mismatch issue in the
      key frame coding.
      
      Change-Id: I0c4f40464a367b33dd91ace84506650b1aec2873
      d0930277
    • Yaowu Xu's avatar
      Fix two bugs · a2db88fc
      Yaowu Xu authored
      1) Added an initialization of rd_tx_select_threshs[].
      2) Made updating transform size counts to be consistent
      
      Change-Id: Iaa9d6c6be825b0364c9d61a9802873d01356815c
      a2db88fc
    • Yaowu Xu's avatar
      update txfm size counting · f116abf7
      Yaowu Xu authored
      Change-Id: I3a26baf8b2f945fea4f1aea156e60fa79f620f86
      f116abf7
  9. 23 May, 2013 1 commit
    • Jingning Han's avatar
      Merge 4x4 block level partition into codebase · 7ac5ac52
      Jingning Han authored
      Move 4x4/4x8/8x4 partition coding out of experimental list.
      
      This commit fixed the unit test failure issues. It also resolved
      the merge conflicts between 4x4 block level partition and iterative
      motion search for comp_inter_inter.
      
      Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
      7ac5ac52
  10. 22 May, 2013 3 commits
    • Yaowu Xu's avatar
      changes intra coding to be based on txfm block · 8ba92a0b
      Yaowu Xu authored
      This commit changed the encoding and decoding of intra blocks to be
      based on transform block. In each prediction block, the intra coding
      iterates thorough each transform block based on raster scan order.
      
      This commit also fixed a bug in D135 prediction code.
      
      TODO next:
      The RD mode/txfm_size selection should take this into account when
      computing RD values.
      
      Change-Id: I6d1be2faa4c4948a52e830b6a9a84a6b2b6850f6
      8ba92a0b
    • Yaowu Xu's avatar
      Generalized intra 4x4 encoding for all sizes · 232d90d8
      Yaowu Xu authored
      Change-Id: I1b86744fa247233c8df031b3f4b87b212c8dd094
      232d90d8
    • Jingning Han's avatar
      Make the intra rd search support 8x4/4x8 · f153a5d0
      Jingning Han authored
      This commit allows the rate-distortion optimization of intra coding
      capable of supporting 8x4 and 4x8 partition settings.
      
      It enables the entropy coding of intra modes in key frame using a
      unified contextual probability model conditioned on its above/left
      prediction modes.
      
      Coding performance:
      derf 0.464%
      
      Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
      f153a5d0
  11. 20 May, 2013 3 commits
  12. 19 May, 2013 1 commit
    • Jingning Han's avatar
      Enable bit-stream support to 8x4 and 4x8 partition · 810b612c
      Jingning Han authored
      The recursive partition type search is enabled down to 4x4, 4x8 and
      8x4, followed by the corresponding rate-distortion optimization for
      the per-partition encoding mode decisions.
      
      The bit-stream writing/reading synchronized in supporting the
      rectangular partition of 8x8 block.
      
      This provides above 1% coding performance gains on derf.
      
      To do next:
      1. re-design the rate-distortion loop for inter prediction below 8x8.
      2. re-design the rate-distortion loop for intra prediction below 4x4.
      3. make the loop-filter aware of rectangular partition of 8x8 block.
      4. clean the unused probability models.
      5. update default probability values.
      
      Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
      810b612c
  13. 17 May, 2013 2 commits
    • Paul Wilkins's avatar
      Remove MODE_STATS flag and code · 51bc4bf4
      Paul Wilkins authored
      Change-Id: I6c70a8a8a4633399842ac74792003ae5f7859ffa
      51bc4bf4
    • John Koleszar's avatar
      Initial version of alpha channel support · 679e4abd
      John Koleszar authored
      This is a mostly-working implementation of an extra channel in the
      bitstream. Configure with --enable-alpha to test. Notable TODOs:
      
       - Add extra channel to all mismatch tests, PSNR, SSIM, etc
       - Configurable subsampling
       - Variable number of planes (currently always uses all 4)
       - Loop filtering
       - Per-plane lossless quantizer
       - ARNR support
      
      This implementation just uses the same contents as the Y channel
      for the A channel, due to lack of content and general pain in
      playing back 4 channel content. A later patch will use the actual
      alpha channel passed in from outside the codec.
      
      Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
      679e4abd
  14. 16 May, 2013 3 commits
  15. 14 May, 2013 1 commit
    • Jingning Han's avatar
      Enable recursive partition down to 4x4 · 1f26840f
      Jingning Han authored
      This commit allows the rate-distortion optimization recursion
      at encoder to go down to 4x4 block size. It deprecates the use
      of I4X4_PRED and SPLITMV syntax elements from bit-stream
      writing/reading. Will remove the unused probability models in
      the next patch.
      
      The partition type search and bit-stream are now capable of
      supporting the rectangular partition of 8x8 block, i.e., 8x4
      and 4x8. Need to revise the rate-distortion parts to get these
      two partition tested in the rd loop.
      
      Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
      1f26840f
  16. 11 May, 2013 2 commits
    • Jingning Han's avatar
      Use consistent partition context setup in enc/dec · 6910f178
      Jingning Han authored
      Move set_partition_seg_context_ to common file. Use consistent
      context setup conditions for partition probability model update at
      encoder and decoder.
      
      Change-Id: I24b7ed3b1c48e3d2568191a46b70136b99b67b1a
      6910f178
    • Jingning Han's avatar
      Move get_sb_index to vp9_blockd.h · 2117d4ee
      Jingning Han authored
      Use common function to fetch/assign sb_index in rd loop, bit-stream
      writing and reading.
      
      Change-Id: I1d8a214a57ed9cbcd026040436ef33e5e39d65b7
      2117d4ee
  17. 10 May, 2013 2 commits
    • Jingning Han's avatar
      Enable recursive partition type search · e44678c0
      Jingning Han authored
      This commit enables the search for the optimal superblock
      partition types in the recursion form. The intention is to
      make the optimization process more concise and ready to
      support partition down to 4x4 block size next.
      
      Change-Id: Iae279a67df3a7cc372553c84c775bc4d2f3e4336
      e44678c0
    • John Koleszar's avatar
      Subsampling aware allocs and bitstream · da58436f
      John Koleszar authored
      Make framebuffer allocations according to the chroma subsamping
      factors in use. A bit is placed in the raw part of the frame header for
      each of the two subsampling factors. This will be moved in a future
      commit to make them part of the TBD feature set bits, probably only set
      on keyframes, etc.
      
      Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
      da58436f
  18. 08 May, 2013 1 commit
    • Jingning Han's avatar
      Extend left/above partition context to per mi(8x8) · 4a88ad89
      Jingning Han authored
      Update and buffer left/above partition information context per 8x8
      block. This allows to further enable recursive partition down to
      4x4 block size, and hence deprecating I4X4_PRED and SPLITMV.
      
      This commit also fixes a context buffer swap/restore issue in 32x32
      partition type search. This gives 0.1% performance gain for derf/yt.
      Will refactor the superblock partition type search into recursion
      form.
      
      Change-Id: Ib61975aca5f12b78d8018481d7fa1393d085689b
      4a88ad89
  19. 07 May, 2013 4 commits
  20. 06 May, 2013 1 commit
    • Scott LaVarnway's avatar
      Removed vp9_setup_intra_recon() · cb7955d8
      Scott LaVarnway authored
      This setup is now handled by vp9_build_intra_predictors()
      when left_available and/or up_available is zero.
      
      Change-Id: I59cec0ab95f8be69ce885fd20727510e4deef8a0
      cb7955d8
  21. 03 May, 2013 1 commit
    • John Koleszar's avatar
      Separate transform and quant from vp9_encode_sb · 4529c68b
      John Koleszar authored
      This allows removing a large number of transform size specific functions,
      as well as supporting 444/alpha by routing all code through the
      subsampling-aware path.
      
      Change-Id: Ieb085cebe9f37f24fc24de179898b22abfda08a4
      4529c68b