1. 27 Nov, 2013 2 commits
  2. 26 Nov, 2013 3 commits
  3. 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
  4. 22 Nov, 2013 3 commits
    • Dmitry Kovalev's avatar
      Using partition counts from FRAME_COUNTS struct in the encoder. · 75e4377d
      Dmitry Kovalev authored
      Change-Id: I6c3d47b00acabe7ffba22ffc73741173aa9a0bff
      75e4377d
    • Jingning Han's avatar
      Separate setup_scale_factor/extend_frame_borders · 86d2a9b9
      Jingning Han authored
      This commit takes out vp9_extend_frame_borders from
      vp9_setup_scale_factors.
      
      The refactoring is for the preparation of the use of lazy border
      extension at decoder. This makes it necessary to handle border
      extension separately at encoder/decoder. The use of
      vp9_extend_frame_borders will be removed, when lazy border extension
      is ready.
      
      Change-Id: Ia3baba3d179d5f11eee1634f19b3b319d2a59186
      86d2a9b9
    • 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
  5. 20 Nov, 2013 1 commit
  6. 15 Nov, 2013 1 commit
  7. 14 Nov, 2013 2 commits
  8. 13 Nov, 2013 1 commit
    • Jingning Han's avatar
      Dual buffer encoding for intra modes · b6b91432
      Jingning Han authored
      Overall change (using dual buffer scheme for superblocks of both inter
      and intra modes) reduces speed 2 runtime:
      bluesky_1080p at 6000kbps:   263553ms -> 257441ms
      riverbed_1080p at 8000kbps:  233230ms -> 225308ms.
      
      Change-Id: Idf8d70f768a4b0d97b2a8506372c57b7b4022119
      b6b91432
  9. 12 Nov, 2013 3 commits
    • Deb Mukherjee's avatar
      Removes conditional statements from band getting · 5ade4237
      Deb Mukherjee authored
      Implements scan order to band map with arrays in both the encoder
      and decoder to remove conditional statements.
      
      Encoding seems to be about 1% faster at speed 0, tested on football.
      Decoding seems to be about 0.5-1% faster on a set of 25 videos.
      
      Change-Id: Idb233ca0b9e0efd790e30880642e8717e1c5c8dd
      5ade4237
    • Jingning Han's avatar
      Enable dual buffer rd search and encoding scheme · 34b6abef
      Jingning Han authored
      This commit enables the dual buffer rate-distortion optimization
      and encoding scheme. It stacks the original transform coefficients,
      quantized levels, and reconstructed coefficients, in the rate-
      distortion optimization search process, hence eliminates the need
      to re-run residual generation, forward transform, and quantization
      in the encoding stage.
      
      Change-Id: I011bfad3a59a380a869ee552e91dae0394ec492e
      34b6abef
    • Jingning Han's avatar
      Allocate dual buffer sets for encoding · 3b3aea68
      Jingning Han authored
      Allocate memory space of dual buffer sets that store the coeff, qcoeff,
      dqcoeff, and eobs. Connect the pointers of macroblock_plane and
      macroblockd_plane to the actual buffer in use accordingly.
      
      Change-Id: I2f0b5f482ca879fae39095013eaf8901db20a5a4
      3b3aea68
  10. 11 Nov, 2013 2 commits
    • Dmitry Kovalev's avatar
      Moving {sb, mb, b, ab}_index from MACROBLOCKD to MACROBLOCK. · 3551e250
      Dmitry Kovalev authored
      We use {sb, mb, b, ab}_index only inside encoder, so moving them into
      appropriate data structure.
      
      Change-Id: Ib5c1036716354d9d321e11a60c1634c1cb8f9716
      3551e250
    • Jingning Han's avatar
      Decouple macroblockd_plane buffer usage · d8b4c792
      Jingning Han authored
      Make the macroblockd_plane contain dynamic buffer pointers instead
      static pointers to the memory space allocated therein. The decoder
      uses the buffer allocated in pbi, while encoder will use a dual
      buffer approach for rate-distortion optimization search.
      
      Change-Id: Ie6f24be2dcda35df7c15b4014e5ccf236fb3f76c
      d8b4c792
  11. 06 Nov, 2013 1 commit
    • Ivan Maltz's avatar
      Move SVC per-frame loop from sample app into libvpx proper · 1ed0e1be
      Ivan Maltz authored
      SVC multiple layer per frame encoding is invoked with vpx_svc_init and
      vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg.
      Additional improvements:
      - make dummy frame handling a bit more explicit
      - fixed bug with single layer encodes
      - track individual frame sizes and psnrs instead of averages
      - parameterized quantizer, 16th scalefactors, more logging,
      - enabled single layer encodes to generate baseline
      - include new mode for 3 layer I frame with 5 total layers
      
      Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
      1ed0e1be
  12. 04 Nov, 2013 2 commits
    • Adrian Grange's avatar
      Remove unused members from VP9_COMP · 44e25155
      Adrian Grange authored
      Removed:
      goldfreq, avg_encode_time, avg_pick_mode_time,
      cpu_freq, interquantizer
      member variables from VP9_COMP since they are no longer
      used in the code.
      
      Change-Id: I010a82c217d0da03c3f53d1858d3462190c12dcf
      44e25155
    • Adrian Grange's avatar
      Remove unused member variables from VP9_COMP · a0a6590e
      Adrian Grange authored
      Removed three members from the VP9_COMP data structure:
      inter_zz_count, gf_bad_count, gf_update_recommended.
      
      These were part of the VP8 real-time mode implementation
      that was removed from the initial VP9 codecbase.
      
      Change-Id: I866b083b88ef02c74837277d50ce532ca88492f3
      a0a6590e
  13. 31 Oct, 2013 1 commit
  14. 30 Oct, 2013 1 commit
    • Marco Paniconi's avatar
      Updates to 1-pass: · b26ce8b1
      Marco Paniconi authored
         -Don't reduce maxQ for gold/alt in CBR mode.
      
         -Fix to min/maxQ for first/initial key frame.
      
         -Add more speeds to datarate test and reduce the starting bitrate for test.
      
      Change-Id: Id2a333d76dd3f6a51b322ca984588e2a22159c58
      b26ce8b1
  15. 25 Oct, 2013 2 commits
  16. 24 Oct, 2013 1 commit
  17. 23 Oct, 2013 1 commit
  18. 22 Oct, 2013 2 commits
    • Dmitry Kovalev's avatar
      Removing quantize_b_4x4 function pointer. · ec414372
      Dmitry Kovalev authored
      The pointer was asigned only once with vp9_regular_quantize_b_4x4, calling
      this function directly now. Also removing unused declarations:
        prototype_quantize_block
        prototype_quantize_block_pair
        prototype_quantize_mb
        vp9_regular_quantize_b_4x4_pair
        vp9_regular_quantize_b_8x8
      
      Change-Id: I14325bc2f082336820671eafbc06126651b79f73
      ec414372
    • James Zern's avatar
      Revert "Merge "SVC improvements"" · cd74a901
      James Zern authored
      This reverts commit a82001b1, reversing
      changes made to f6d870f7.
      
      This commit breaks windows builds and needs some work to fix those and
      some additional comments.
      
      Change-Id: Ic0b0228e36704b127e5e399ce59db26182cfffe7
      cd74a901
  19. 21 Oct, 2013 3 commits
    • Dmitry Kovalev's avatar
      Using stride (# of elements) instead of pitch (bytes) in fdct4x4. · 190c2b45
      Dmitry Kovalev authored
      Just making fdct consistent with iht/idct/fht functions which all use
      stride (# of elements) as input argument.
      
      Change-Id: I0ba3c52513a5fdd194f1e7e2901092671398985b
      190c2b45
    • Ivan Maltz's avatar
      SVC improvements · 663916ce
      Ivan Maltz authored
      These changes were originally made in the Stratacaster team-review repository
      
      commit e114bffcd82ad74c3696ec58e13c0ac895d6c82d
      Author: Charles 'Buck' Krasic <ckrasic@google.com>
      Date:   Mon Oct 14 16:52:13 2013 -0700
      
          Make dummy frame handling a bit more explicit, fixing bug
          with single layer encodes.
      
      Squashed commit of the following:
      
      commit 1ebbfd976c0fadb02bf1ea562a2d0e3f0206daad
      Merge: ac468dde 54e88b7
      Author: Ivan Maltz <ivanmaltz@google.com>
      Date:   Fri Oct 11 17:29:58 2013 -0700
      
          Move SVC code from vp9_spatial_scalable_encoder to libvpx module accessible from ffmpeg
      
      commit 54e88b78b160becc9569fc3c6cb6b0a8c95dc357
      Author: Ivan Maltz <ivanmaltz@google.com>
      Date:   Tue Oct 8 09:08:40 2013 -0700
      
          common svc encoding code for sample app and ffmpeg
      
          added svc_encodeframe.c, svc_context.h, svc_test.cc
      
          vp9_spatial_scalable_encoder uses vpx_svc_encode
      
      commit 5616ec8e2e3d3e8d277333d8a9242f6c70151162
      Merge: 4528014 e29137df
      Author: Ivan Maltz <ivanmaltz@google.com>
      Date:   Tue Oct 8 08:47:58 2013 -0700
      
          Merge branch 'master' into stratacaster
      
      commit 45280148450b1f3d61e390df8aadedf85cd5bce1
      Merge: bb2b675 1ab60f7b
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Fri Oct 4 10:22:31 2013 -0700
      
          Merge branch 'master' into stratacaster
      
      commit bb2b675e595dc9bfc8551e963edf56800c3aea61
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Wed Oct 2 12:37:26 2013 -0700
      
          Track individual frame sizes and psnrs instead of averages.
      
      commit c6d303b714795c81e7ceb4173967115c9f8ff5b7
      Merge: fa87df9 35830879
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Fri Sep 27 10:05:35 2013 -0700
      
          Merge branch 'master' into stratacaster
      
      commit fa87df94fba923d9f7aeb8ae20c6e15f777e00b5
      Merge: bf22d71 3c465af2
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Thu Sep 26 16:10:31 2013 -0700
      
          Merge branch 'master' into stratacaster
      
      commit bf22d7144895a82e0c348ac177c8a261b9e2b88e
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Thu Sep 26 11:10:34 2013 -0700
      
          Parameterized quantizer, 16th scalefactors, more logging, enabled single layer encodes to generate baseline.
      
      commit ceffd7e6025b765f9886b5ea0f324248aa37e327
      Author: Sujeevan Rajayogam <sujee@google.com>
      Date:   Thu Sep 19 10:04:49 2013 -0700
      
          - Include new mode for 3 layer I frame with 5 total layers.
          - Refactor svc api.
      
      Change-Id: Ie4d775e21e006fa597d884c59488dc999478e9b5
      663916ce
    • Dmitry Kovalev's avatar
      Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON. · d1b65c6b
      Dmitry Kovalev authored
      This value is a global frame-level flag, not a macroblock-level.
      
      Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
      d1b65c6b
  20. 19 Oct, 2013 2 commits
    • 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
    • Paul Wilkins's avatar
      Reduced delta for kf/gf/arf when at maxq. · a2769bb7
      Paul Wilkins authored
      Delta reduced because of concern about popping on some
      very hard clips.
      
      Also allow some frame recode at speed 2 for kf/gf/arf.
      
      Change-Id: Ib47dff42da41aa6eec83b7285fcaaca24abb851e
      a2769bb7
  21. 18 Oct, 2013 1 commit
    • Jingning Han's avatar
      Make memory alloc in pick_mode_context bsize aware · 72033fcf
      Jingning Han authored
      This commit makes the buffer allocation of zcoeff_blk array in
      pick_mode_context block size aware. It calculates the number of
      4x4 blocks in the partition and assigns the memory space accordingly.
      This process (and the uninitialization) is done once for each encoding
      pass. It allows memory copy of smaller buffer when possible.
      
      For football at 600kbps, the runtimes improve by about 1%:
      speed 1, 45961ms -> 45472ms
      speed 2, 23863ms -> 23598ms
      
      Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877
      72033fcf
  22. 17 Oct, 2013 1 commit
  23. 16 Oct, 2013 3 commits