1. 23 Apr, 2013 1 commit
    • John Koleszar's avatar
      Move src_diff to per-plane MACROBLOCK data · cbd1315a
      John Koleszar authored
      First in a series of commits making certain MACROBLOCK members
      addressable per-plane. This commit also refactors the block subtraction
      functions vp9_subtract_b, vp9_subtract_sby_c, etc to be
      loops-over-planes and variable subsampling aware.
      Change-Id: I371d092b914ae0a495dfd852ea1a3d2467be6ec3
  2. 22 Apr, 2013 6 commits
  3. 19 Apr, 2013 23 commits
    • Yaowu Xu's avatar
      make DC_PRED for i4x4 to use real pixels only · e3465a63
      Yaowu Xu authored
      Wherever there are real pixels available before falling back to use
      assumed values 127 and 129.
      This also make DC_PRED for i4x4 consistent with DC_PRED for larger
      Change-Id: I54372924826118da023f402c802ac6ce0caa70c3
    • John Koleszar's avatar
      Move dst to per-plane MACROBLOCKD data · d12376aa
      John Koleszar authored
      First in a series of commits moving the framebuffers pointers to
      per-plane data, so that they can be indexed numerically rather than
      by name.
      Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
    • Dmitry Kovalev's avatar
      Removing get_segment_id function and using existing vp9_get_pred_mb_segid. · c09f6525
      Dmitry Kovalev authored
      Change-Id: Iff35d4b2f8f65511f80c594958c01fb4673fa033
    • Paul Wilkins's avatar
      Clean out some legacy code. · 72d8b461
      Paul Wilkins authored
      Removed some unused legacy code relating to GF activity.
      Change-Id: I0b0fe90a1a5208aaa81d7393ba6cf75ab412dbda
    • John Koleszar's avatar
      Remove vp9_recon_mb{,y} · 9ec0f658
      John Koleszar authored
      Use the common sb functions instead.
      Change-Id: I4fa0a8ee3c6ada56271dd09bf895b97642f55858
    • John Koleszar's avatar
      Remove redundant pointers from void vp9_recon_sb{y,uv} · d747986d
      John Koleszar authored
      Remove the unnecessary _s_ from their names, and add a new
      vp9_recon_sb() that calls the y and uv variants.
      Change-Id: I7ffaa5ff5605a8472cac2a53de8cf889353039a6
    • Dmitry Kovalev's avatar
      Segmentation cleanup, adding {set, get}_segment_id functions. · ce50f911
      Dmitry Kovalev authored
      Change-Id: I55c2688e06ae5d7dfccc1b1983f233ab1c7978db
    • Dmitry Kovalev's avatar
      Renaming vp9_extra_bit_struct to vp9_extra_bit. · 684ddc61
      Dmitry Kovalev authored
      Change-Id: Ie4713da125e954c1d30e1d4cbeb38666fce90ccc
    • John Koleszar's avatar
      Move diff to MACROBLOCKD per-plane data. · 17313c40
      John Koleszar authored
      Change-Id: Ic27af09e38af8317ac4743241883d577a44f1490
    • Dmitry Kovalev's avatar
      Finally removing BOOL_DECODER and using vp9_reader instead. · 0b44624c
      Dmitry Kovalev authored
      Change-Id: I03d5b6f22f0930893709c6db5f1b06762ad3354e
    • John Koleszar's avatar
      make build_inter_predictors block size agnostic (split) · 0053b46d
      John Koleszar authored
      All build_inter_predictors can now be serviced by the same inner
      Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
    • John Koleszar's avatar
      Removing rounding from UV MV calculation for SPLITMV · e0df9b21
      John Koleszar authored
      Similar to the prior change that removed the rounding from non-SPLITMV
      modes. Improves quality by a similar amount (Additional +0.087% on derf)
      Change-Id: I39d80b4a3037a3aa7e285eb2320346ddaf646f52
    • John Koleszar's avatar
      Use SSSE3 for 2d filters larger than 16 · 5b8a7d6e
      John Koleszar authored
      The C code was being used as a fallback for the >16 case, but only for 2D.
      Change-Id: I1e2e6da9e4b28bd88bde9ba4dd32724ce466cf6f
    • Jim Bankoski's avatar
      catch all for new block sizes · afb04eb2
      Jim Bankoski authored
      Just make sure we don't stop them from testing in speed 1.
      Change-Id: Iec9b3dba0a32616ff7a451207e0f54b81bb72575
    • Paul Wilkins's avatar
      Mv ref candidates cut to 2. · de80da39
      Paul Wilkins authored
      Further simplification of mvref search to return
      only the top two candidates. Distance weights removed
      as the test order reflects distance anyway.
      Change-Id: I0518cab7280258fec2058670add4f853fab7b855
    • Jim Bankoski's avatar
      set up a new speed 1 · b6ef0823
      Jim Bankoski authored
      slightly worse results for faster encodes
      Change-Id: I25ea82a18ce20635dbcd328808c1d05ac1f58fd7
    • Paul Wilkins's avatar
      Removal of CONFIG_NEW_MVREF experiment. · aa76bf3d
      Paul Wilkins authored
      This experiment has failed to give much benefit but
      does add complexity so deprecated.
      Change-Id: Ic7b929ba706390b9907ef0b4f965bd401ca799a4
    • Paul Wilkins's avatar
      Remove dummy place holder function. · ac0961b7
      Paul Wilkins authored
      void __attribute__((noinline)) hi(void) { }
      Causes build failure in VS2008
      Change-Id: Ie2f2a09d90bd5502c492e4d9f4983532a0edbc01
    • Paul Wilkins's avatar
      Simplification of MVref search. · 92e8a3f5
      Paul Wilkins authored
      As we are no longer able to sort the candidate
      mvrefs in both encoder and decode and given
      that the cost of explicit signalling has proved
      prohibitive, it no longer makes sense to find more
      than 2 candidates.
      This patch:
      Modifies and simplifies add_candidate_mv()
      Removes the forced addition of a 0 vector in the
      MAX_MV_REF_CANDIDATES-1 position (in preparation
      to reducing MAX_MV_REF_CANDIDATES to 2).
      Re-orders the addition of candidates slightly.
      This actually gives small gains (circa 0.2% on std-hd)
      A subsequent patch will remove NEW_MVREF experiment,
      reduce MAX_MV_REF_CANDIDATES to 2 and remove distance
      weights as these are implicit now in the order.
      Change-Id: I3dbe1a6f8a1a18b3c108257069c22a1141a207a4
    • Paul Wilkins's avatar
      Adjustments to key frame sizing. · 21ff7bdc
      Paul Wilkins authored
      Adjustments take heavier account of the frame near a kf
      in deciding boost and limit the total number that can contribute.
      Also adjusted the minq calculations such that in most cases we
      generate a smaller key frame.
      Modified the code that accounts for how static the sequence is and
      added some adjustment based on image size. This is still very
      crude but smaller images tend to behave better with a larger
      delta between KF Q and other frames than larger image formats.
      Changes give sizable gains in overall PSNR  on all the test sets but the
      biggest gains (~3%) were on the std-hd set.
      The gains were smaller for SSIM but still significant.
      Average PSNR results are mixed because this metric can very easily
      be altered by having a very good / lossless coding of one or two frames.
      Some of the YT and YT-HD clips in particular have blank lead ins and
      allowing lossless coding of these appears to make a big difference to
      average PSNR but it reality does not help much at all.
      Change-Id: I6bfe485a1d330b47c783832f1717c95c535464ec
    • John Koleszar's avatar
      make buid_inter_predictors block size agnostic (chroma) · fc49a377
      John Koleszar authored
      Updates to make non-SPLITMV inter predictors work for all
      plane types.
      Change-Id: I25dbef40b7ffcac30254b43eed1e22fc732378ae
    • John Koleszar's avatar
      Removing rounding from UV MV calculation · 2987fa1d
      John Koleszar authored
      Consider the previous behavior for the MV 1 3/8 (11/8 pel). In the
      existing code, the fractional part of the MV is considered separately,
      and rounded is applied, giving a result of 6/8. Rounding is not required
      in this case, as we're increasing the precision from a q3 to a q4, and
      the correct value 11/16 can be represented exactly.
      Slight gain observed (+.033 average on derf)
      Change-Id: I320e160e8b12f1dd66aa0ce7966b5088870fe9f8
    • John Koleszar's avatar
      make buid_inter_predictors block size agnostic (luma) · 4924934d
      John Koleszar authored
      This commit converts the luma versions of vp9_build_inter_predictors_sb
      to use a common function. Update the convolution functions to support
      block sizes larger than 16x16, and add a foreach_predicted_block walker.
      Next step will be to calculate the UV motion vector and implement SBUV,
      then fold in vp9_build_inter16x16_predictors_mb and SPLITMV.
      At the 16x16, 32x32, and 64x64 levels implemented in this commit, each
      plane is predicted with only a single call to vp9_build_inter_predictor.
      This is not yet called for SPLITMV. If the notion of SPLITMV/I8X8/I4X4
      goes away, then the prediction block walker can go away, since we'll
      always predict the whole bsize in a single step. Implemented using a
      block walker at this stage for SPLITMV, as a 4x4 "prediction block size"
      within the BLOCK_SIZE_MB16X16 macroblock. It would also support other
      rectangular sizes too, if the blocks smaller than 16x16 remain
      implemented as a SPLITMV-like thing. Just using 4x4 for now.
      There's also a potential to combine with the foreach_transformed_block
      walker if the logic for calculating the size of the subsampled
      transform is made more straightforward, perhaps as a consequence of
      supporing smaller macroblocks than 16x16. Will watch what happens there.
      Change-Id: Iddd9973398542216601b630c628b9b7fdee33fe2
  4. 18 Apr, 2013 10 commits