1. 15 Apr, 2013 7 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
    • Ronald S. Bultje's avatar
      Fix lingering x->skip settings if static_threshold is used. · 33a8df08
      Ronald S. Bultje authored
      Keyframes don't set this variable, so it would use the last set
      values from inter frames.
      
      Change-Id: Ie1ef45ece2c44b21b5d55f6cea9f7d6e7a445692
      33a8df08
    • 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
    • Ronald S. Bultje's avatar
      Make filter RD code and encode breakout variance size-independent. · 15eac18c
      Ronald S. Bultje authored
      Static threshold results slightly up (+0.1% on derf), probably b/c
      we now take the filter (sharp/lowpass) into account for the breakout
      decision.
      
      Change-Id: I9f597601da434205142afd05f32690e7ba8fd690
      15eac18c
    • Ronald S. Bultje's avatar
      Fix width/height switch-up in U/V SB quantize code. · f551c2d1
      Ronald S. Bultje authored
      Change-Id: I697514efd6024e1b4153bbde58ae5e323b030981
      f551c2d1
    • Ronald S. Bultje's avatar
      Removed unused structs in vp9_onyx_int.h. · aa53ae05
      Ronald S. Bultje authored
      Change-Id: I1f2dbf04a0140a7cc2060b0a9efb4ed8e5270d3d
      aa53ae05
    • 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
  2. 12 Apr, 2013 3 commits
    • Jingning Han's avatar
      Enable inter predictor for rectangular block size · 3ba9dd41
      Jingning Han authored
      Combine superblock inter predictors into a unified function that
      allows configurable block width and height. The inter predictions
      of block sizes smaller than 16x16 are handled differently. To be
      continued on merging them later.
      
      Change-Id: I14075959dd5e221f00c205c99ca35c1c31ef728e
      3ba9dd41
    • Yaowu Xu's avatar
      Rename B_PRED to I4X4_PRED · 7de5edd1
      Yaowu Xu authored
      So it is consistent with I8x8_PRED.
      
      Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
      7de5edd1
    • Ronald S. Bultje's avatar
      Move prediction hit counting to update_state(). · 79fd8c29
      Ronald S. Bultje authored
      The probabilities derived from these statistics are used in bitstream
      writing; therefore, we should only do this when we actually decide to
      use macroblock coding (over superblock coding). Derf gains +0.15%.
      
      Change-Id: I196814c070a7c79889590658ce10a6eb07454389
      79fd8c29
  3. 11 Apr, 2013 17 commits
  4. 10 Apr, 2013 3 commits
    • Ronald S. Bultje's avatar
      Make RD superblock mode search size-agnostic. · b4f6098e
      Ronald S. Bultje authored
      Merge various super_block_yrd and super_block_uvrd versions into one
      common function that works for all sizes. Make transform size selection
      size-agnostic also. This fixes a slight bug in the intra UV superblock
      code where it used the wrong transform size for txsz > 8x8, and stores
      the txsz selection for superblocks properly (instead of forgetting it).
      Lastly, it removes the trellis search that was done for 16x16 intra
      predictors, since trellis is relatively expensive and should thus only
      be done after RD mode selection.
      
      Gives basically identical results on derf (+0.009%).
      
      Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
      b4f6098e
    • 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
    • Ronald S. Bultje's avatar
      Make SB coding size-independent. · a3874850
      Ronald S. Bultje authored
      Merge sb32x32 and sb64x64 functions; allow for rectangular sizes. Code
      gives identical encoder results before and after. There are a few
      macros for rectangular block sizes under the sbsegment experiment; this
      experiment is not yet functional and should not yet be used.
      
      Change-Id: I71f93b5d2a1596e99a6f01f29c3f0a456694d728
      a3874850
  5. 09 Apr, 2013 2 commits
  6. 08 Apr, 2013 1 commit
    • Jingning Han's avatar
      Clamp inferred motion vectors only · 12bf0796
      Jingning Han authored
      Clamp only the motion vectors inferred from neighboring reference
      macroblocks. The motion vectors obtained through motion search in
      NEWMV mode are constrained during the search process, which allows
      a relatively larger referencing region than the inferred mvs.
      Hence further clamping the best mv provided by the motion search may
      affect the efficacy of NEWMV mode.
      
      Synchronized the decoding process. The decoded mvs in NEWMV modes
      should be guaranteed to fit in the effective range. Put a mv range
      clamping function there for security purpose.
      
      This improves the coding performance of high motion sequences, e.g.,
      derf set:
      foreman 0.233%
      husky   0.175%
      icd     0.135%
      mother_daughter 0.337%
      pamphlet        0.561%
      
      stdhd set:
      blue_sky 0.408%
      city     0.455%
      also saw sunflower goes down by -0.469%.
      
      Change-Id: I3fcbba669e56dab779857a8126a91b926e899cb5
      12bf0796
  7. 05 Apr, 2013 3 commits
  8. 04 Apr, 2013 4 commits
    • John Koleszar's avatar
      Move qcoeff, dqcoeff from BLOCKD to per-plane data · 4c05a051
      John Koleszar authored
      Start grouping data per-plane, as part of refactoring to support
      additional planes, and chroma planes with other-than 4:2:0
      subsampling.
      
      Change-Id: Idb76a0e23ab239180c818025bae1f36f1608bb23
      4c05a051
    • Yaowu Xu's avatar
      make one_shot_q an experiment · 9780d58e
      Yaowu Xu authored
      so it is configurable to faciliate testings
      
      Change-Id: I247b62736c3a08ec2934793959d1ae605a05efa3
      9780d58e
    • Deb Mukherjee's avatar
      Bugfix in encode_inter_mb_segment_8x8 · 73031aaa
      Deb Mukherjee authored
      Fixes an indexing bug. Looks like the bug has been there for a while.
      
      Change-Id: I9fc04b0c30754bcb47366ad94a08112925600c4d
      73031aaa
    • 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