1. 07 May, 2013 4 commits
  2. 06 May, 2013 1 commit
    • John Koleszar's avatar
      Remove heap alloc of FIRSTPASS_STATS · 6462eebb
      John Koleszar authored
      There is only one instance of these structures, no need for them
      to be allocated separately on the heap.
      
      Change-Id: I1333cc92d06bbe21be643c2b2f0e3936f0264cac
      6462eebb
  3. 03 May, 2013 1 commit
    • John Koleszar's avatar
      Separate transform and quant from vp9_encode_sb · 4529c68b
      John Koleszar authored
      This allows removing a large number of transform size specific functions,
      as well as supporting 444/alpha by routing all code through the
      subsampling-aware path.
      
      Change-Id: Ieb085cebe9f37f24fc24de179898b22abfda08a4
      4529c68b
  4. 01 May, 2013 1 commit
  5. 30 Apr, 2013 2 commits
    • Ronald S. Bultje's avatar
      sb8x8 integration in rd loop. · d068d869
      Ronald S. Bultje authored
      Work-in-progress, not yet ready for review. TODO items:
      - bitstream writing (encoder) and reading (decoder)
      - decoder reconstruction
      
      Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
      d068d869
    • Dmitry Kovalev's avatar
      Adding vp9_update_frame_size function. · 15b5e465
      Dmitry Kovalev authored
      Moving common code from encoder and decoder to vp9_update_frame_size.
      
      Change-Id: I6ca758b7d05ffd52821bd3f7ad68089da11e4165
      15b5e465
  6. 29 Apr, 2013 1 commit
  7. 26 Apr, 2013 2 commits
  8. 25 Apr, 2013 2 commits
  9. 24 Apr, 2013 4 commits
    • Jingning Han's avatar
      Move sbsegment out of experimental list · b0e3b3df
      Jingning Han authored
      Move rectangular superblock coding out of experimental list.
      
      Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
      b0e3b3df
    • Paul Wilkins's avatar
      Minor tweak to implicit segmentation experiment. · da04312f
      Paul Wilkins authored
      This minor tweak makes segment 0 neutral and used by
      key frames and also extends beyond 4 segments.
      
      Change-Id: Ife4744602aba66ac9432746db3113cc5cd88a482
      da04312f
    • 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
      Simple implicit segmentation experiment. · 27bb4777
      Paul Wilkins authored
      Change-Id: Iaef16122732c2a81e0927f9862b51b68dc788712
      27bb4777
  10. 22 Apr, 2013 2 commits
    • Deb Mukherjee's avatar
      Removes the code_nonzerocount experiment · 0aa79be7
      Deb Mukherjee authored
      This patch does not seem to give any benefits.
      
      Change-Id: I9d2b4091d6af3dfc0875f24db86c01e2de57f8db
      0aa79be7
    • Deb Mukherjee's avatar
      End of orientation zero group experiment · 70d9f116
      Deb Mukherjee authored
      Adds an experiment that codes an end-of-orientation symbol
      for every eligible zero encountered in scan order.
      
      This cleans out various other sub-experiments that were part
      of the origiinal patch, which will be later included if found
      useful.
      
      Results are slightly positive on all sets (0.1 - 0.2% range).
      
      Change-Id: I57765c605fefc7fb9d1b57f1b356843602abefaf
      70d9f116
  11. 19 Apr, 2013 2 commits
    • 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
      72d8b461
    • 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
      21ff7bdc
  12. 17 Apr, 2013 2 commits
    • Dmitry Kovalev's avatar
      Adding DEFAULT_PRED_PROB_{0, 1, 2} constants. · ecff8d71
      Dmitry Kovalev authored
      Also using ALLOWED_REFS_PER_FRAME instead of 3.
      
      Change-Id: I810dd8521d8138edb9dbd78edede49b62f706554
      ecff8d71
    • Jingning Han's avatar
      Recursive partition syntax coding · 90a91cc6
      Jingning Han authored
      Enable recursive partition information coding from SB64X64 down to
      MB16X16. The bit-stream syntax is now supporting rectangular block
      sizes. It starts from SB64X64 and recursively describes the partition
      type of the current block. If the partition type is PARTITION_NONE,
      the block is coded as a single unit; if it is PARTITION_HORZ or
      PARTITION_VERT, the block is segmented into two independently coded
      rectangular units, with no further partition needed; otherwise, the
      block is segmented into 4 square blocks. i.e., PARTITION_SPLIT case,
      each can be potentially further partitioned.
      
      Forward adaptive probability modeling is used for the partition
      information coding, conditioned on the current block size.
      
      Change-Id: I499365fb547839d555498e3bcc0387d8a3587d87
      90a91cc6
  13. 16 Apr, 2013 2 commits
    • Adrian Grange's avatar
      Move configure_arnr_filter function · 9b84d113
      Adrian Grange authored
      This function is now called from configures the ARNR
      filter so it belongs with the other temporal filter
      functions.
      
      Change-Id: I64211875918364b5b8edfb97743e573c6def1663
      9b84d113
    • John Koleszar's avatar
      Remove the mb_no_coeff_skip flag · e3cfe4e8
      John Koleszar authored
      This flag was added to VP8 to allow a mode where MB-level skipping
      was not allowed, saving a bit per mb. It was never used in practice,
      and hasn't been tested in VP9, so remove it.
      
      Change-Id: Id450ec6904c6d06c1919508e7efc52d05cde5631
      e3cfe4e8
  14. 15 Apr, 2013 3 commits
    • Dmitry Kovalev's avatar
      Removing TRUE and FALSE macro definitions. · a0d9309e
      Dmitry Kovalev authored
      Using regular 0 and 1 constants now.
      
      Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
      a0d9309e
    • Jingning Han's avatar
      Add rectangular block size variance/sad functions. · aaf33d7d
      Jingning Han authored
      With this, the RD loop properly supports rectangular blocks.
      
      Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
      aaf33d7d
    • Adrian Grange's avatar
      Initial addition of multiple ARF frames · c2876cf0
      Adrian Grange authored
      This is work-in-progress, it implements multiple ARF
      encoding behind an experimental flag.
      
      It adds the ability to insert multiple ARF frames into a
      single ARF group. This patch implements the reordering
      of the coded frames, and implements a fixed-length coding
      pattern. It applies a fixed quantizer strategy based on
      where the frame is in the coding sequence.
      
      Further work to modify the rate control strategy is
      ongoing and will be submitted via a set of future patches.
      
      In this first step, each ARF group is recursively
      bisected and an ARF frame added at that position in the
      sequence. The recursion continues until ARF frames are
      within MIN_GF_INTERVAL frames.
      
      The code sits behind the "multiple-arf" experimental
      flag ("CONFIG_MULTIPLE_ARF"). The experimental flag
      "oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled
      for this patch to work correctly.
      
      Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
      c2876cf0
  15. 12 Apr, 2013 1 commit
  16. 11 Apr, 2013 2 commits
  17. 10 Apr, 2013 1 commit
    • Yaowu Xu's avatar
      Remove obselete code · 2da90fdd
      Yaowu Xu authored
      The strategy to run fast loop filter picking for encoder speed-up
      should be revisited at a later stage.
      
      Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
      2da90fdd
  18. 05 Apr, 2013 1 commit
  19. 04 Apr, 2013 1 commit
    • Paul Wilkins's avatar
      Fixed incorrect use of compute_qdelta() · 9b9136f8
      Paul Wilkins authored
      This function expects real Q values as inputs
      not index values.
      
      The use-age her impacts the Q chosen for force key
      frames. Though this is a bug fix I have not yet verified
      whether following the bug fix the q multiplier value used is
      correct.
      
      Change-Id: I49f6da894d90baeb1e86c820c335f02dc80d3b66
      9b9136f8
  20. 03 Apr, 2013 2 commits
    • Yunqing Wang's avatar
      Modify vp9_setup_interp_filters function · 4ca882f3
      Yunqing Wang authored
      Took vp9_setup_scale_factors_for_frame() out from
      vp9_setup_interp_filters(), so that it is only called once per
      frame instead of per macroblock. Decoder tests showed a 1.5%
      performance gain.
      
      Change-Id: I770cb09eb2140ab85132f82aed388ac0bdd3a0aa
      4ca882f3
    • Dmitry Kovalev's avatar
      Renaming sb32_coded and sb64_coded fields. · dca8ad17
      Dmitry Kovalev authored
      Renaming sb32_coded to prob_sb32_coded and sb64_coded to prob_sb64_coded.
      
      Change-Id: I6de5cad00a57c3e066d53467f8c38cb6073dce11
      dca8ad17
  21. 02 Apr, 2013 2 commits
    • Dmitry Kovalev's avatar
      Code cleanup in vp9_onyx_if.c. · 6f53eee5
      Dmitry Kovalev authored
      Using clamp and MIN/MAX functions instead of plain C code. Lower case
      variable names. Removing redundant parenthesis.
      
      Change-Id: Ibf7cc5fbe4fbdb5029049a599af71534176e6f42
      6f53eee5
    • Dmitry Kovalev's avatar
      Code cleanup. · 50e54c11
      Dmitry Kovalev authored
      Adding multiple16 function, removing redundant code, better formatting.
      
      Change-Id: I50195b78ac8ab803e3d05c8fb05a7ca134fab386
      50e54c11
  22. 01 Apr, 2013 1 commit
    • Ronald S. Bultje's avatar
      Calculate SSIM over both reconstruction as well as postproc buffer. · 6dd6ffb0
      Ronald S. Bultje authored
      We used to calculate SSIM only over the postproc buffer, whereas we
      calculate PSNR for both. Compared to postproc-SSIM, this is about 0.3%
      higher for derf, 1.4% lower for hd and 0.5% lower for stdhd, although
      it is highly variable on a per-clip basis.
      
      Change-Id: I8dd491f0f5b4201dedfb15d288c854d5d4caa10f
      6dd6ffb0