1. 07 Jun, 2013 25 commits
    • 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
    • Ronald S. Bultje's avatar
      Add slightly more colorspace variations. · 36f02bf3
      Ronald S. Bultje authored
      Change-Id: Ib44541fbbdcf71ec881814bd6715ea1c6bd82cf4
      36f02bf3
    • Ronald S. Bultje's avatar
      Fix ref_frame segment feature when it is intra. · 6462afe0
      Ronald S. Bultje authored
      Change-Id: Ifbf790c14cee0c08a27f6728e3c637404e1f8477
      6462afe0
    • Ronald S. Bultje's avatar
      Fix segment feature data size. · 28164eb9
      Ronald S. Bultje authored
      Change-Id: I4331cfd99a717938f4f970cad81c468cbf287b00
      28164eb9
    • Ronald S. Bultje's avatar
      Fix line that disables the line above it. · d5c2d2dc
      Ronald S. Bultje authored
      Change-Id: I19d5cb60a00a001f6e5b3d90ce2db6e49d6209ad
      d5c2d2dc
    • Ronald S. Bultje's avatar
      Fix segment feature data type. · fb1f6f1d
      Ronald S. Bultje authored
      It has a range of -255,255, so should be int16_t, not int8_t.
      
      Change-Id: I5ef4b6aefb6212b0f35f4754f3c4d73fddbc52a0
      fb1f6f1d
    • Ronald S. Bultje's avatar
      Don't crash if motion vector ref points to out-of-bounds area. · 363dc6ce
      Ronald S. Bultje authored
      This can only happen if partition is partly out-of-frame, in which
      case the referenced mv is either out-of-frame also (and thus has the
      same value as an already-read one), or it is actually uninitialized,
      in which case we don't want to use it.
      
      Change-Id: Icf39fa4d987c7abcbebb9bbdcdd6311e8fb9d3c9
      363dc6ce
    • Ronald S. Bultje's avatar
      Fix static segmentation feature. · 7dbd8a5d
      Ronald S. Bultje authored
      Change-Id: Ia36f626b9b3c2fe7eb89bb9acddf4701db1baef2
      7dbd8a5d
    • 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
    • Dmitry Kovalev's avatar
      Preparation to new frame size encoding. · 514b8ada
      Dmitry Kovalev authored
      Just an intermediate change set to simplify merges. Reordering several
      uncompressed header bits, code restructuring + minor cleanups.
      
      Change-Id: I28272f520762f8c4e3ad230ae39fff5102ba5c0d
      514b8ada
    • Yaowu Xu's avatar
      Remove two un-used entries in mode_lf_delta[] · b097a3ba
      Yaowu Xu authored
      With the removal of i4X4 and SPLIT_MV modes, the two entries for the
      modes are no longer used. This patch remove the coding of the deltas.
      
      Change-Id: Iea4eb500404ebe9706159380a03b8eca542fb4c3
      b097a3ba
    • Yaowu Xu's avatar
      Specify mv neighborhood for block larger than 8x8 · 8b3ad752
      Yaowu Xu authored
      The new neighorbhood adapts to the shape and size of the block type
      cif +.16%
      stdhd +.13%
      
      Change-Id: I978db58278e9ae3fbd6726ef831bdfc5f5f37d02
      8b3ad752
    • Ronald S. Bultje's avatar
      Revert "Align frame size to 8 instead of 16." · e7d306aa
      Ronald S. Bultje authored
      This reverts commit c2574414
      
      Change-Id: Ie9013cb0bb43e639e01b4588f630b1da59295d38
      e7d306aa
    • 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
      Fix bug in segment skip. · 576c2bb0
      Paul Wilkins authored
      Wrong max data size (skip has no data) and use of vp9_get_segdata()
      when it should be vp9_segfeature_active().
      
      Change-Id: I1eb97d33df6e2a42cc589049f704266fe3639902
      576c2bb0
    • 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
    • John Koleszar's avatar
      Add cheap show-buffer operation · 2584a5e5
      John Koleszar authored
      Adds the ability to have the decoder show one of the existing reference
      frames directly, without having to code it indirectly as a series of
      skip blocks.
      
      Change-Id: Ib6c26c5f6a8709863cf304ab890db8559687d25e
      2584a5e5
    • John Koleszar's avatar
      Add bits for colorspace, profile · e5b956f6
      John Koleszar authored
      Adds 3 bits for colorspace (sent on keyframes), 2 bits for version.
      
      Change-Id: Iaa0cf1dcdd085cebb46e2bc4a7c78cd33cf24325
      e5b956f6
    • John Koleszar's avatar
      Add marker bit to bool-coded partition start · a425e2cc
      John Koleszar authored
      Adds a marker bit to allow distinguishing the frame header from its residual
      data.
      
      Change-Id: Id75d47acc9e5a97007e4690c4f8748a4ce63e641
      a425e2cc
    • Yaowu Xu's avatar
      fix a typo · e127bdc0
      Yaowu Xu authored
      Change-Id: I8fd21e3a8435b873c5687d8b273922fc60988295
      e127bdc0
    • Yaowu Xu's avatar
      Fix a merge conflict · 472669be
      Yaowu Xu authored
      ref_frame in MB_Mode_Info was changed in the ref frame coding patch
      to be an array to handle first and second reference frame, this patch
      fix the loop filter code that use the pointer directly as reference
      frame.
      
      Change-Id: I71afa5a49deb50c1bc38029fd07470b984c6dfe9
      472669be
    • Yaowu Xu's avatar
      Removed rectangular intra prediction code · 9470c1a2
      Yaowu Xu authored
      As all intra predictions happen on squared transform block now.
      
      Change-Id: I7ec91e3f0ad01383a03d2bd3099bbf32e87e3466
      9470c1a2
    • Ronald S. Bultje's avatar
      Align frame size to 8 instead of 16. · c2574414
      Ronald S. Bultje authored
      Change-Id: Ic22f416a33de558519d5c30a929f6a954546ade9
      c2574414
    • Ronald S. Bultje's avatar
      Fix FIXME. · bc41af00
      Ronald S. Bultje authored
      Change-Id: I47a9857d35da1bff6153f8090c6b98b689b31a61
      bc41af00
    • 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 11 commits
    • Jim Bankoski's avatar
      fix vp9_wb_write_bit uninitialized variable · c003b97d
      Jim Bankoski authored
      This fixes a valgrind error.
      
      Change-Id: I0e1ef212ba09d65e3d71dd209f0786ae6530d2c8
      c003b97d
    • Dmitry Kovalev's avatar
      Moving segmentation and tile info to uncompressed header. · a2375763
      Dmitry Kovalev authored
      Change-Id: I0ca77329d882a2026f6c1941b8e447d86bc87bda
      a2375763
    • 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
    • Jingning Han's avatar
      Bug fix in rd_pick_inter_mode_sb_ · d03e974f
      Jingning Han authored
      Fix the calculation of step size in height.
      
      Change-Id: I0e0c0175f141f5a41214ae51cef233d13942d3c5
      d03e974f
    • Jim Bankoski's avatar
      signs reverted · b4c4f648
      Jim Bankoski authored
      Change-Id: Ieface458c83eb6e7ee95595d9fc662f372117c9a
      b4c4f648
    • John Koleszar's avatar
      Reimplementation of loop filter · 043d348a
      John Koleszar authored
      This version of the loop filter supports non-4:2:0 subsampling and
      a fourth plane, as well as changing the filtering order to be more
      friendly to hardware implementations.
      
      The filters are applied first to all vertical edges within the
      64x64 SB, followed by the top horizontal edge and any internal
      horizontal edges. Since filtering is applied on each 4x4 edge
      serially, a dependency is created from filtering one block edge
      to the next. It would be possible to remove this depencnecy by
      building all filtering decisions from the unfiltered
      reconstruction data.
      
      Change-Id: I08f3e9683eb7bded8a76651cbc50fc0dfdd05fa7
      043d348a
    • Paul Wilkins's avatar
      Rd thresholds change with block size. · c3316c2b
      Paul Wilkins authored
      Added structures to support independent rd thresholds
      for different block sizes (and set experimental block
      size correction factors).
      
      Added structure to to allow dynamic adaptation of thresholds
      per mode and per block size basis depending on how often
      the mode/block size combination is seen (currently fixed factor).
      
      Removed some unused variables.
      
      TODO
      - Adaptation of thresholds based on how often each mode chosen.
      - The baseline mode values could also be adjusted based on
        the block size (e.g. for a particular intra mode use a low threshold
        for 4x4 prediction blocks but a relatively high value for 64x64.
      
      Change-Id: Iddee65ff3324ee309815ae7c1c5a8584720e7568
      c3316c2b
    • Paul Wilkins's avatar
      Turn off compound inter search refinement for good quality. · c880e02f
      Paul Wilkins authored
      Turn this feature off for some modes in  "good" quality.
      
      Change-Id: I3f262d62cca8f01736b977af1465291e8be29f0a
      c880e02f
    • 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
    • Jingning Han's avatar
      Fix UV intra coding rd loop · f04b1548
      Jingning Han authored
      This commit makes the coding/reconstruction operations of intra
      coding rate-distortion loop for UV components consistent with those
      of the encoding process.
      
      key frame coding gains:
      derf:   0.11%
      stdhd:  0.42%
      
      Change-Id: I8d49f83924a320e3689ef2d60096c49d7f0c7a40
      f04b1548
    • Dmitry Kovalev's avatar
      Moving bits from compressed header to uncompressed one. · 12345cb3
      Dmitry Kovalev authored
      Bits moved: refresh_frame_flags, active_ref_idx[], ref_frame_sign_bias[],
      allow_high_precision_mv, mcomp_filter_type, ref_pred_probs[].
      
      Derf results: +0.040%
      
      Change-Id: I011f43c7eac0371d533b255fd99aee5ed75b85a5
      12345cb3
  3. 05 Jun, 2013 3 commits
  4. 04 Jun, 2013 1 commit
    • Jingning Han's avatar
      Make sb intra rd search consistent with encoding · 51b6e73a
      Jingning Han authored
      This commit makes operations of the superblock intra coding rate
      distortion optimization consistent with those used in the encoding
      process. Given the test prediction mode and transform size, the rd
      optimizer encodes and reconstructs each transformed block of the
      superblock consecutively, then computes the total rate-distortion
      costs accosicated with the current superblock to select the coding
      decisions.
      
      It achieves coding performance gains:
      derf 0.353%
      yt   1.111%
      
      Change-Id: I0da2eb7a71361dfb8c1384927fc536b0c2790d07
      51b6e73a