1. 08 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      TX_SIZE contexts simplification. · 17da2cab
      Deb Mukherjee authored
      Reduces TX_SIZE contexts to 2 for each kind. The code is
      cleaner and there is hardly any performance difference with
      more than two contexts.
      
      Results: almost neutral
      
      Change-Id: I17656bd6db76224ae2856adf882504560e7dbaa4
      17da2cab
  2. 07 Jun, 2013 9 commits
    • Deb Mukherjee's avatar
      Coding tx-size selection by use of spatial context · 21401942
      Deb Mukherjee authored
      Adds coding of transform size within a frame by use of context
      of transform sizes selected in left and above blocks.
      
      Also incorporates code for generating stats.
      
      TODO: generate and incorporate new default stats
      
      Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
      21401942
    • Deb Mukherjee's avatar
      Cleans up mbskip encoding · 869a39ba
      Deb Mukherjee authored
      Refactors mbskip coding to be compatible with coding of the rest of
      the symbols. Adds forward/backward adaptation and removes a lot of
      the legacy code.
      
      Results:
      fast50: +1.6%
      derfraw300: +0.317%
      
      Change-Id: I395a2976d15af044d3b8ded5acfa45f6f065f980
      869a39ba
    • Jingning Han's avatar
      Handle partition type coding of boundary blocks · 78b8190c
      Jingning Han authored
      The partition types of blocks sitting on the frame boundary are
      constrained by the block size and the position of each sub-block
      relative to the frame. Hence we use truncated probability models
      to handle the coding of such information.
      
      100 frames run:
      yt 0.138%
      
      Change-Id: I85d9b45665c15280069c0234ea6f778af586d87d
      78b8190c
    • Ronald S. Bultje's avatar
      Fix ref_frame segment feature when it is intra. · 6462afe0
      Ronald S. Bultje authored
      Change-Id: Ifbf790c14cee0c08a27f6728e3c637404e1f8477
      6462afe0
    • Paul Wilkins's avatar
      Change to segment ref frame feature. · 340c7a48
      Paul Wilkins authored
      Simplify feature to only support a single reference frame
      instead of a mask.
      
      Change-Id: I5dd3a98c7a224aafb35708850ab82e2f220e68fb
      340c7a48
    • Deb Mukherjee's avatar
      Coding updates for tx-size selection · 3ee1a21a
      Deb Mukherjee authored
      Changes to the coding of transform sizes, along with forward
      and backward probability updates.
      
      Results:
      derf300: +0.241%
      
      Context based coding of transform sizes will be in a separate
      patch.
      
      Change-Id: I97241d60a926f014fee2de21fa4446ca56495756
      3ee1a21a
    • Paul Wilkins's avatar
      Compound inter encoder bug fix. · 653a2556
      Paul Wilkins authored
      In the longer term the encoder should allow compound as long
      as one of the buffers has opposite sign bias and as per the decoder
      this buffer is then set as the fixed reference. However at the moment
      the encoder and RD loop only supports the case where the ALTREF_FRAME
      buffer (or third of the 3 allowed in any given frame) is the odd one out.
      
      This patch fixes a bug that would allow compound inter and set
      fixed ref to ALTREF_FRAME when it is not the odd one out.
      
      Change-Id: Ic83a69486e088a147ba83a4aedc2a0042f6b3721
      653a2556
    • Yaowu Xu's avatar
      fix a typo · e127bdc0
      Yaowu Xu authored
      Change-Id: I8fd21e3a8435b873c5687d8b273922fc60988295
      e127bdc0
    • 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
  3. 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
  4. 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
  5. 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
  6. 30 May, 2013 1 commit
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 20 May, 2013 3 commits
  13. 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
  14. 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
  15. 16 May, 2013 3 commits
  16. 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
  17. 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