1. 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
  2. 22 May, 2013 5 commits
    • Yunqing Wang's avatar
      Optimize variance functions · f4fcfe30
      Yunqing Wang authored
      Added SSE2 version of variance functions for super blocks.
      
      Change-Id: Ibeaae8771ca21c99d41dd74067574a51e97b412d
      f4fcfe30
    • Deb Mukherjee's avatar
      Using 128 entry look up table for coef models · de4d682c
      Deb Mukherjee authored
      Reverts to using 128 bit LUT for the coef models rather than 48
      to ease hardware implementation.
      
      Also incorporates some cleanups including removing various
      hooks to support different lookup tables based on block_type and
      ref_type.
      
      Change-Id: I54100c120cca07a2ebd3a7776bc4630fa6a153f6
      de4d682c
    • 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
  3. 21 May, 2013 5 commits
    • Scott LaVarnway's avatar
      Removed unused idct functions · a1431526
      Scott LaVarnway authored
      No longer used.
      
      Change-Id: Id28c9247cebba183c6fa786dff96824ae100132c
      a1431526
    • Deb Mukherjee's avatar
      Merging the model coef prob experiment · 7a645e4e
      Deb Mukherjee authored
      Merges the experiment.
      
      Change-Id: I4eb19af6de6df6aa3a96a2e82f231d47ed9b3ae9
      7a645e4e
    • Scott LaVarnway's avatar
      Removed diff from macroblockd_plane · 3d0110fd
      Scott LaVarnway authored
      No longer used.
      
      Change-Id: I171c5fa33a7600ad45b9466af23a46ccbdfe0480
      3d0110fd
    • Scott LaVarnway's avatar
      Removed vp9_recon functions · 0c3f3bf1
      Scott LaVarnway authored
      No longer used.
      
      Change-Id: Ica5166f7117f4693dffdf7633dcfc1b263103d0d
      0c3f3bf1
    • Deb Mukherjee's avatar
      Refinements on modelcoef expt to reduce storage · 07443f15
      Deb Mukherjee authored
      Uses more aggrerssive interpolation to reduce storage for the
      model tables by almost more than half. Only 48 lists of probs are
      stored (as opposed to 128 before), corresponding to ONE_NODE
      probabilities of:
      1,
      3, 7, 11, ..., 115, 119,
      127, 135, ..., 247, 255.
      
      Besides, only 1 table is used as opposed to 2 before. So the overall
      memory needed for the tables is just 48 * 8 = 384 bytes.
      
      The table currently used is based on a new Pareto distribution with
      heavier tail than a generalized Gaussian - which improves results on
      derf by about 0.1% over a single table Generaized Gaussian.
      
      Results overall on derfraw300 is -0.14%.
      
      Change-Id: I19bd03559cbf5894a9f8594b8023dcc3e546f6bd
      07443f15
  4. 20 May, 2013 2 commits
    • Deb Mukherjee's avatar
      Updating the model coef experiment · 39a90bc8
      Deb Mukherjee authored
      Cleans up the experiment. Actually uses reduced counts for backward
      updates, and reduced number of probabilities in the context.
      
      No change in bitstream when the experiment is on.
      
      Between expt on and off:
      derfraw300 is down only -0.062% (which is better than when expts
      were run previously).
      
      Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
      39a90bc8
    • Scott LaVarnway's avatar
      WIP: 4x4 idct/recon merge · ba48a111
      Scott LaVarnway authored
      This patch eliminates the intermediate diff buffer usage by
      combining the short idct and the add residual into one function.
      The encoder can use the same code as well.
      
      Change-Id: I296604bf73579c45105de0dd1adbcc91bcc53c22
      ba48a111
  5. 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
  6. 17 May, 2013 5 commits
    • Dmitry Kovalev's avatar
      Removing clamp_type from the bitstream. · 498b6460
      Dmitry Kovalev authored
      Change-Id: Ica75bdd4905c4a04b7f92795d0b8ce6836a99ef4
      498b6460
    • Paul Wilkins's avatar
      Replace default counts with default probs. · 99c4b1ee
      Paul Wilkins authored
      Replace vp9_kf_default_bmode_counts structure with
      direct default probabilities. The probability structure is
      smaller and it removes the need to specify in the bitstream
      how to convert the counts to probabilities.
      
      Note that I have concerns still about the size and value of
      the large intra mode context. This may cause problems for
      HW but it also means we rely heavily on reverse update as
      forwards update of a structure this size is problematic. I
      intend to review this more generally in the next few days to
      see if we can come up with a competitive solution that does
      not rely on such a large context.
      
      Change-Id: I0a36071079d5d26a57ab0e9fbf91af4199aa7984
      99c4b1ee
    • Jim Bankoski's avatar
      holds utility debugging functions · b67e46b3
      Jim Bankoski authored
      This one prints out a visual version of the partitioning for human
      eyes to follow...
      
      Change-Id: Iba434589a2f55eb069484686d99a382db93b9548
      b67e46b3
    • 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
  7. 16 May, 2013 6 commits
    • Yaowu Xu's avatar
      Removed Q threshold in the usage of ADST · e3869e9c
      Yaowu Xu authored
      Test on cif set showed small but consistent compression gain for
      almost all encodings with overall impact of .08%. The gains average
      aournd .12% combined with D63 adst change.
      
      Test encoding on std-hd set is ongoing..
      
      Change-Id: If4d94799cf0486fb9c770b193e5c386d13d99d59
      e3869e9c
    • John Koleszar's avatar
      Remove vp9_extend_mb_row() · 16ac5a5c
      John Koleszar authored
      This code is no longer needed for correct intra prediction.
      
      Change-Id: I822d1a8b0ad0a00e7c4c6e7b2931790c39d1267d
      16ac5a5c
    • Scott LaVarnway's avatar
      WIP: 8x8 idct/recon merge · 794a7bed
      Scott LaVarnway authored
      This patch eliminates the intermediate diff buffer usage by
      combining the short idct and the add residual into one function.
      The encoder can use the same code as well.
      
      Change-Id: Iacfd57324fbe2b7beca5d7f3dcae25c976e67f45
      794a7bed
    • Jingning Han's avatar
      Add building blocks for 4x8/8x4 rd search · 8e3d0e4d
      Jingning Han authored
      These building blocks enable rate-distortion optimization search
      over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse
      forms.
      
      Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
      8e3d0e4d
    • Paul Wilkins's avatar
      New inter mode context. · 6ff3eb16
      Paul Wilkins authored
      This patch creates a new inter mode contest that avoids
      a dependence on the reconstructed motion vectors from
      neighboring blocks. This was a change requested by
      a hardware vendor to improve decode performance.
      
      As part of this change I have also made some modifications
      to stats output code (under a flag) to allow accumulation of
      inter mode context flags over multiple clips
      
      Some further changes will be required to accommodate the
      deprecation of the split mv mode over the next few days.
      
      Performance as stands is around -0.25% on derf and
      std-hd but up on the YT and YT-HD sets. With further tuning
      or some adjustment to the context criteria it should be
      possible to make this change broadly neutral.
      
      Change-Id: Ia15cb4470969b9e87332a59c546ae0bd40676f6c
      6ff3eb16
    • John Koleszar's avatar
      Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0 · 501ae348
      John Koleszar authored
      Remove an assumption about chroma size, and the number of planes.
      
      Change-Id: I286a7fac296ec334c6a8ad847f663f3adbb9f43e
      501ae348
  8. 15 May, 2013 5 commits
  9. 14 May, 2013 6 commits
  10. 13 May, 2013 2 commits
    • Dmitry Kovalev's avatar
      Preparing vp9_deblock and vp9_denoise to alpha support. · a9333111
      Dmitry Kovalev authored
      Change-Id: Id1cc1c2663b9c2219cb830ffb4b0c6ab3468dc04
      a9333111
    • Paul Wilkins's avatar
      Change to band calculation. · e5f71520
      Paul Wilkins authored
      Change band calculation back to simpler model based
      on the order in which coefficients are coded in scan order
      not the absolute coefficient positions.
      
      With the scatter scan experiment enabled the results were
      appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134).
      
      Without the scatterscan experiment on the results were up derf as well.
      
      Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791
      e5f71520
  11. 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