1. 24 Apr, 2013 4 commits
    • Ronald S. Bultje's avatar
      Change chroma loopfilter to skip inner SB edges for tx16x16 also. · 5b57580c
      Ronald S. Bultje authored
      Change-Id: I6ea9e110b5c5b07ab7d092886dbd51a6eccc0217
      5b57580c
    • Paul Wilkins's avatar
      Extension of segmentation to 8 segments. · 31ee193a
      Paul Wilkins authored
      Also some further simplification following removal
      of top node code.
      
      There is an issue in regards to the shared file vp8cx.h
      in regard to the roi_map as this interface assumes that
      there are only 4 segments. I have left the value here as
      4 for now meaning that the roi_map interface is broken
      for VP9.
      
      Note that this change would have been easier if I hadn't
      had to search for hard wire instances of the number 4
      and <= 3.
      
      Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
      31ee193a
    • Paul Wilkins's avatar
      Simplify Segment Coding · c77aff12
      Paul Wilkins authored
      Remove top node optimization.
      The improvement this gives is not sufficient to justify
      the extra complexity.
      
      Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
      c77aff12
    • Paul Wilkins's avatar
      Simple implicit segmentation experiment. · 27bb4777
      Paul Wilkins authored
      Change-Id: Iaef16122732c2a81e0927f9862b51b68dc788712
      27bb4777
  2. 23 Apr, 2013 11 commits
  3. 22 Apr, 2013 8 commits
  4. 19 Apr, 2013 17 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
      blocks.
      
      Change-Id: I54372924826118da023f402c802ac6ce0caa70c3
      e3465a63
    • 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
      d12376aa
    • Scott LaVarnway's avatar
      Eliminated prev_mip memsets/memcpys · 9662531d
      Scott LaVarnway authored
      For 1080 material, this buffer is currently 2,270,928 bytes.  This patch swaps
      ptrs instead of copying and uses the last show_frame flag instead of setting
      the entire buffer to zero.  For the test clip used, the decoder improved by up
      to 1%.
      
      
      Change-Id: I686825712ad56043e09ada9808dc489f875a6ce0
      9662531d
    • Dmitry Kovalev's avatar
      Removing get_segment_id function and using existing vp9_get_pred_mb_segid. · c09f6525
      Dmitry Kovalev authored
      Change-Id: Iff35d4b2f8f65511f80c594958c01fb4673fa033
      c09f6525
    • John Koleszar's avatar
      Remove vp9_recon_mb{,y} · 9ec0f658
      John Koleszar authored
      Use the common sb functions instead.
      
      Change-Id: I4fa0a8ee3c6ada56271dd09bf895b97642f55858
      9ec0f658
    • 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
      d747986d
    • Dmitry Kovalev's avatar
      Renaming vp9_extra_bit_struct to vp9_extra_bit. · 684ddc61
      Dmitry Kovalev authored
      Change-Id: Ie4713da125e954c1d30e1d4cbeb38666fce90ccc
      684ddc61
    • John Koleszar's avatar
      Move diff to MACROBLOCKD per-plane data. · 17313c40
      John Koleszar authored
      Change-Id: Ic27af09e38af8317ac4743241883d577a44f1490
      17313c40
    • 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
      function.
      
      Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
      0053b46d
    • 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
      e0df9b21
    • 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
      5b8a7d6e
    • 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
      de80da39
    • 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
      aa76bf3d
    • 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
      92e8a3f5
    • 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
      fc49a377
    • 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
      2987fa1d
    • 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
      4924934d