1. 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
    • Adrian Grange's avatar
      Fixed overflow test on boost calculation · 82bbb230
      Adrian Grange authored
      Normalization of the frame boost value was being done
      when it reached the value 1028. The intention was to
      keep to a range of 10 bits, so it should have been
      clipped above 1023.
      
      Change-Id: I0afdddc1d2eb9e7822ec4578903cbe6ec0b33b91
      82bbb230
  2. 15 Apr, 2013 1 commit
    • 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
  3. 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
  4. 11 Apr, 2013 15 commits
  5. 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
  6. 09 Apr, 2013 2 commits
  7. 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
  8. 05 Apr, 2013 3 commits
  9. 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
  10. 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
  11. 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
  12. 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
  13. 28 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Framework changes in nzc to allow more flexibility · fe9b5143
      Deb Mukherjee authored
      The patch adds the flexibility to use standard EOB based coding
      on smaller block sizes and nzc based coding on larger blocksizes.
      The tx-sizes that use nzc based coding and those that use EOB based
      coding are controlled by a function get_nzc_used().
      By default, this function uses nzc based coding for 16x16 and 32x32
      transform blocks, which seem to bridge the performance gap
      substantially.
      
      All sets are now lower by 0.5% to 0.7%, as opposed to ~1.8% before.
      
      Change-Id: I06abed3df57b52d241ea1f51b0d571c71e38fd0b
      fe9b5143