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
    • Yaowu Xu's avatar
      Change to do LPF in SB64 order · cb3192b7
      Yaowu Xu authored
      Change-Id: I41b3f5932ecd6256e8207369ad19aa81e7987be1
    • 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
  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
    • 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
    • Dmitry Kovalev's avatar
      Adding mv_joint_vertical and mv_joint_horizontal functions. · fd61b7ea
      Dmitry Kovalev authored
      Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
    • 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
    • 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
    • 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
  4. 12 Apr, 2013 4 commits
    • Dmitry Kovalev's avatar
      Intra code cleanup. · 78ddf964
      Dmitry Kovalev authored
      Removing redundant code.
      Change-Id: I71bfc40a1fb06d8e3149ed5400aa4dfd87a51aac
    • 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
    • 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
      Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
    • Yaowu Xu's avatar
      Rename B_PRED to I4X4_PRED · 7de5edd1
      Yaowu Xu authored
      So it is consistent with I8x8_PRED.
      Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
  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
    • 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
    • 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
  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
    • 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
  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
    • Ronald S. Bultje's avatar
      Don't use BLOCKD in vp9_invtrans.c. · f42bee7e
      Ronald S. Bultje authored
      Change-Id: I40524170334109e2864b06e3c73c8b34e5aa8b0f
    • 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
    • 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
  9. 05 Apr, 2013 1 commit