1. 06 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Renaming constants. · 0d4b8d7e
      Dmitry Kovalev authored
      NUM_YV12_BUFFERS        => FRAME_BUFFERS
      ALLOWED_REFS_PER_FRAME  => REFS_PER_FRAME
      NUM_REF_FRAMES_LOG2     => REF_FRAMES_LOG2
      NUM_REF_FRAMES          => REF_FRAMES
      NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2
      NUM_FRAME_CONTEXTS      => FRAME_CONTEXTS
      
      Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
      0d4b8d7e
  2. 27 Nov, 2013 2 commits
    • Deb Mukherjee's avatar
      Fixing inadvertent change · e924057d
      Deb Mukherjee authored
      Fixes an inadvertant change made in a previous patch while doing
      some experiments.
      
      Change-Id: I9961f2157c803676491a3d6daf056ff8a37367b3
      e924057d
    • Deb Mukherjee's avatar
      Continued rate control clean-ups · d17ac4fe
      Deb Mukherjee authored
      Moves all post encode rate control updates to a separate function
      plus other cleanups.
      
      Change-Id: I70e8eccf666c88d8b649b969997fd84d27e4baaa
      d17ac4fe
  3. 26 Nov, 2013 2 commits
  4. 25 Nov, 2013 1 commit
    • Paul Wilkins's avatar
      In frame Q adjustment experiment. · 644bd87e
      Paul Wilkins authored
      The idea here is to allow "in frame" adjustment of the final Q
      value used to encode each SB64, using segmentation.
      
      There is also adjustment of the rd mult in regions of overspend.
      
      Activated using aq_mode=2
      
      Change-Id: I2f140cd898c9f877c32cd6d2e667f5e11ada4b1c
      644bd87e
  5. 22 Nov, 2013 1 commit
    • Deb Mukherjee's avatar
      Refactoring of rate control - part 1 · f1781e86
      Deb Mukherjee authored
      Moves all rate control variables to a separate structure,
      removes some currently unused variables,
      moves some rate control functions to vp9_ratectrl.c,
      and splits the encode_frame_to_data_rate function.
      
      Change-Id: I4ed54c24764b3b6de2dd676484f01473724ab52b
      f1781e86
  6. 19 Oct, 2013 1 commit
    • Paul Wilkins's avatar
      Modified no memory rate control. · eec3def7
      Paul Wilkins authored
      This 2-pass rate control setting allocates bits based
      on first pass stats to each kf group, gf group and individual
      frame but does not correct the bits left and allocation after
      each frame.
      
      In other words it recommends a bit allocation for each frame
      but does not try and correct any over or under spend on a
      frame over the remainder of the clip. This reduces the accuracy
      of rate control in terms of hitting an average bitrate but prevents
      problems that may arise because early frames either use to many
      or too few bits. This mode is currently more inclined to undershoot
      than overshoot (particularly at higher data rates).
      
      Also minor changes to rate of adaption when recode loop is not
      enabled.
      
      This mode is currently enabled by default for VBR.
      It gives the following % performance gains.
      
      derf +0.467, +1.072
      yt 2.962, 2.645
      stdhd 1.682, 1.595,
      yt-hd 2.3, 2.174
      
      Change-Id: I3c84a9bf8884e5b345698ff0e19187f792c2f3a0
      eec3def7
  7. 07 Oct, 2013 2 commits
  8. 27 Sep, 2013 1 commit
  9. 15 Aug, 2013 1 commit
  10. 09 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving loopfilter struct to VP9_COMMON. · 816d6c98
      Dmitry Kovalev authored
      Loop filter configuration doesn't belong to macroblock, so moving it from
      MACROBLOCKD to VP9_COMMON. Also moving the declaration of loopfilter struct
      from vp9_blockd.h to vp9_loopfilter.h.
      
      Change-Id: I4b3e34be9623b47cda35f9b1f9951f8c5b1d5d28
      816d6c98
  11. 19 Jul, 2013 2 commits
  12. 16 Jul, 2013 1 commit
  13. 12 Jul, 2013 1 commit
  14. 11 Jul, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving segmentation related vars into separate struct. · c4ad3273
      Dmitry Kovalev authored
      Adding segmentation struct to vp9_seg_common.h. Struct members are from
      macroblockd and VP9Common structs. Moving segmentation related constants
      and enums to vp9_seg_common.h.
      
      Change-Id: I23fabc33f11a359249f5f80d161daf569d02ec03
      c4ad3273
  15. 01 Jul, 2013 1 commit
  16. 10 Jun, 2013 1 commit
    • Adrian Grange's avatar
      Implement intra-coded frames · eac344ef
      Adrian Grange authored
      Implements ability to signal and decode frames that are
      encoded using only intra coding modes. Only the decode
      side has been implemented here.
      
      Change-Id: I53ac6a8d90422cd08ba389e5236e15b45f9e93de
      eac344ef
  17. 07 Jun, 2013 4 commits
    • Deb Mukherjee's avatar
      Coding tx-size selection by use of spatial context · 21401942
      Deb Mukherjee authored
      Adds coding of transform size within a frame by use of context
      of transform sizes selected in left and above blocks.
      
      Also incorporates code for generating stats.
      
      TODO: generate and incorporate new default stats
      
      Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
      21401942
    • Deb Mukherjee's avatar
      Cleans up mbskip encoding · 869a39ba
      Deb Mukherjee authored
      Refactors mbskip coding to be compatible with coding of the rest of
      the symbols. Adds forward/backward adaptation and removes a lot of
      the legacy code.
      
      Results:
      fast50: +1.6%
      derfraw300: +0.317%
      
      Change-Id: I395a2976d15af044d3b8ded5acfa45f6f065f980
      869a39ba
    • Deb Mukherjee's avatar
      Coding updates for tx-size selection · 3ee1a21a
      Deb Mukherjee authored
      Changes to the coding of transform sizes, along with forward
      and backward probability updates.
      
      Results:
      derf300: +0.241%
      
      Context based coding of transform sizes will be in a separate
      patch.
      
      Change-Id: I97241d60a926f014fee2de21fa4446ca56495756
      3ee1a21a
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  18. 05 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      Clean-ups on switchable interpolation and mv_ref · 83885235
      Deb Mukherjee authored
      Adds backward adaptation and differential forward updates of switchable
      interpolation filter probabilities. Also adds some cosmetic cleanups
      and minor fixes on mv_ref probabilities.
      
      derfraw300: +0.353% (with most coming from switchable interp changes)
      
      Change-Id: Ie2718be73528c945fd0d80cfd63ca2d9cb3032de
      83885235
  19. 31 May, 2013 1 commit
  20. 30 May, 2013 1 commit
  21. 26 May, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove splitmv. · 5cac6607
      Ronald S. Bultje authored
      Also do per-partition motion vector referencing in <sb8x8 partitions,
      and adjust mvref finding for sub8x8 partitions.
      
      Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
      5cac6607
  22. 17 May, 2013 1 commit
  23. 07 May, 2013 3 commits
  24. 30 Apr, 2013 1 commit
    • 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
  25. 26 Apr, 2013 3 commits
  26. 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
  27. 17 Apr, 2013 1 commit
    • 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
  28. 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