1. 17 Apr, 2013 3 commits
    • Yaowu Xu's avatar
      replace hev_thr_lut[][] with simpler logic · 0d310de9
      Yaowu Xu authored
      Using filter_level/16 instead.
      
      Change-Id: I73a7e83a785d6aa6f9b5d22cf66e22f0a39ed078
      0d310de9
    • Yaowu Xu's avatar
      Change to do LPF in SB64 order · cb3192b7
      Yaowu Xu authored
      Change-Id: I41b3f5932ecd6256e8207369ad19aa81e7987be1
      cb3192b7
    • 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
  2. 16 Apr, 2013 5 commits
  3. 15 Apr, 2013 6 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
    • Dmitry Kovalev's avatar
      Adding mv_joint_vertical and mv_joint_horizontal functions. · fd61b7ea
      Dmitry Kovalev authored
      Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
      fd61b7ea
    • Dmitry Kovalev's avatar
      Code cleanup inside vp9_reconintra4x4.c file. · 64de375e
      Dmitry Kovalev authored
      Using ROUND_POWER_OF_TWO macro, using array initialization syntax for
      less code.
      
      Change-Id: I661453a6b29a9046fcff0a3f18fccb452b5eb39d
      64de375e
    • Scott LaVarnway's avatar
      Removing extra params in dequant functions · 74610b1a
      Scott LaVarnway authored
      Now that the predictor is the dest, we do not need the
      extra parameters.
      
      Change-Id: I78db73d39b5aff62f15303f3d51ad2797eae74b6
      74610b1a
    • 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
  4. 12 Apr, 2013 4 commits
    • Dmitry Kovalev's avatar
      Intra code cleanup. · 78ddf964
      Dmitry Kovalev authored
      Removing redundant code.
      
      Change-Id: I71bfc40a1fb06d8e3149ed5400aa4dfd87a51aac
      78ddf964
    • 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
      Reorder enum i4X4 predcition modes · c2ad69bc
      Yaowu Xu authored
      To match the order of  directional intra prediction modes for larger
      blocks, also renamed the i4x4 prediction modes to mirror the larger
      variants.
      
      Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
      c2ad69bc
    • 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
  5. 11 Apr, 2013 12 commits
  6. 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
  7. 09 Apr, 2013 2 commits
    • Dmitry Kovalev's avatar
      Fixing upper case names. · c34f6fcb
      Dmitry Kovalev authored
      Renaming Y1dequant to y_dequant, UVdequant to uv_dequant, QIndex to qindex.
      
      Change-Id: I1c356e5f886deb3f8807dc212de9799b55b09d58
      c34f6fcb
    • Dmitry Kovalev's avatar
      Cleanup of set_offsets function. · df76a617
      Dmitry Kovalev authored
      Adding ALLOWED_REFS_PER_FRAME constant instead of hard coded number 3.
      
      Change-Id: I46146aa837896936f920c748c7d4aa4c27f026e4
      df76a617
  8. 08 Apr, 2013 4 commits
    • John Koleszar's avatar
      detokenize: use consistent structure for all block sizes · e6deea4e
      John Koleszar authored
      Restructure the code to avoid the majority of per-block-size
      switches, code duplication, etc. All block types (mb/sb32/sb64)
      can be handled by the same code.
      
      Change-Id: I4022718d66e31a15a7074e43f3b98cd0a5124ea7
      e6deea4e
    • Ronald S. Bultje's avatar
      Don't use BLOCKD in vp9_invtrans.c. · f42bee7e
      Ronald S. Bultje authored
      Change-Id: I40524170334109e2864b06e3c73c8b34e5aa8b0f
      f42bee7e
    • 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
    • Ronald S. Bultje's avatar
      Fix typo which breaks 4x4 splitmv compound prediction RD code. · aeefa6e1
      Ronald S. Bultje authored
      0.15% quality increase on derf, particularly noticeable on hard clips
      at the higher bitrate end.
      
      Change-Id: I02415a96eb9bbc361cba923069625fae71844bc9
      aeefa6e1
  9. 05 Apr, 2013 1 commit