1. 06 Feb, 2014 1 commit
    • Marco Paniconi's avatar
      Layer based rate control for CBR mode. · 4864ab21
      Marco Paniconi authored
      This patch adds a buffer-based rate control for temporal layers,
      under CBR mode.
      
      Added vpx_temporal_scalable_patters.c encoder for testing temporal
      layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
      
      Updated datarate unittest with tests for temporal layer rate-targeting.
      
      Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
      4864ab21
  2. 05 Feb, 2014 1 commit
  3. 03 Feb, 2014 1 commit
  4. 02 Feb, 2014 1 commit
    • Marco Paniconi's avatar
      Layer based rate control for CBR mode. · 6be2b750
      Marco Paniconi authored
      This patch adds a buffer-based rate control for temporal layers,
      under CBR mode.
      
      Added vpx_temporal_scalable_patters.c encoder for testing temporal
      layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
      
      Updated datarate unittest with tests for temporal layer rate-targeting.
      
      Change-Id: I9cb6cce2494390ae6096ee17774af7fb9308bde7
      6be2b750
  5. 29 Jan, 2014 1 commit
    • Jim Bankoski's avatar
      create super fast rtc mode · ea8aaf15
      Jim Bankoski authored
      This patch only works if the video is a width and height that are both
      a multiple of 32..   It sets every partition to 16x16, and does INTRADC
      only on the first frame and ZEROMV on every other frame.   It always does
      does the largest possible transform, and loop filter level is set to 4.
      
      Was ~20% faster than speed -5 of vp8
      
      Now 20% slower but adds motion search ( every block ), nearest, near
      and zeromv
      
      The SVC test was changed because - while this realtime mode produces
      bad quality albeit quickly, it isn't obeying all the rules it should
      about which frames are available.
      
      Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
      ea8aaf15
  6. 22 Jan, 2014 1 commit
  7. 08 Jan, 2014 2 commits
  8. 27 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Removing vpx_codec_vp9x_cx and internal experimental flag. · 116e0a1a
      Dmitry Kovalev authored
      vpx_codec_vp9x_cx is not used internally. Experimental flag from
      vp9_extracfg is also not really used. YUV 4:4:4 just works after these
      changes (you have to specify --profile=1 for the encoder).
      
      Change-Id: Ib1c8461d0d19d159827e005efe868f891eea0140
      116e0a1a
  9. 18 Dec, 2013 1 commit
  10. 13 Dec, 2013 1 commit
  11. 11 Dec, 2013 1 commit
  12. 04 Dec, 2013 1 commit
  13. 21 Nov, 2013 1 commit
  14. 15 Nov, 2013 1 commit
  15. 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
  16. 29 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Fixing clang warning. · cd94eee4
      Dmitry Kovalev authored
      Warning was: "implicit conversion from enumeration type 'VPX_SCALING_MODE'
      (aka 'enum vpx_scaling_mode_1d') to different enumeration type
      'VPX_SCALING'".
      
      Change-Id: I45689e439a8775bc1e7534d0ea1ff7c729f2c7f5
      cd94eee4
  17. 24 Oct, 2013 1 commit
    • Yaowu Xu's avatar
      Disable two libvpx APIs for VP9 · 03b2ae16
      Yaowu Xu authored
      set_active_map()
      set_roi_map()
      
      The APIs need be implemented and tested later, to insure consistency
      with VP9 codec internals
      
      Change-Id: I198124ee318f0883b58d1d36cea3c7ccd742a57e
      03b2ae16
  18. 22 Oct, 2013 1 commit
    • 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 1 commit
    • 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
  20. 16 Oct, 2013 1 commit
  21. 10 Oct, 2013 1 commit
  22. 05 Oct, 2013 1 commit
  23. 26 Sep, 2013 1 commit
  24. 23 Sep, 2013 1 commit
    • Deb Mukherjee's avatar
      Improves constant qual, constrained qual turned on · d11221f4
      Deb Mukherjee authored
      Adds modeled functions to decide the qp for altref frames in constant q
      mode similar to other functions in use in bitrate mode.
      
      Also turns on the constrained quality mode (end-usage=2) option which
      was turned off before. Basic testing shows the mode works in principle,
      to cap bitrate to the target-bitrate specified, while allowing lower
      bitrate depending on the cq-level specified. The mode will need to be
      improved over time.
      
      Results for constant quality vs bitrate control mode:
      derfraw300/fullderfraw: +3.0% at constant quality over bitrate control.
      fullstdhdraw: +4.341%
      stdhdraw250: +5.361%
      
      Change-Id: If5027c9ec66c8e88d33e47062c6cb84a07b1cda9
      d11221f4
  25. 19 Sep, 2013 1 commit
  26. 17 Sep, 2013 1 commit
  27. 12 Sep, 2013 1 commit
  28. 09 Sep, 2013 1 commit
    • Ivan Maltz's avatar
      API extensions and sample app for spacial scalable encoder · 01b35c3c
      Ivan Maltz authored
      Sample app: vp9_spatial_scalable_encoder
      vpx_codec_control extensions:
        VP9E_SET_SVC
        VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER
        VP9E_SET_MIN_Q, VP9E_SET_MAX_Q
      expanded buffer size for vp9_convolve
      
      modified setting of initial width in vp9_onyx_if.c so that layer size
      can be set prior to initial encode
      
      Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS)
      Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers
      
      Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
      01b35c3c
  29. 06 Sep, 2013 1 commit
    • Deb Mukherjee's avatar
      Support a constant quality mode in VP9 · e378a89b
      Deb Mukherjee authored
      Adds a new end-usage option for constant quality encoding in vpx. This
      first version implemented for VP9, encodes all regular inter frames
      using the quality specified in the --cq-level= option, while encoding
      all key frames and golden/altref frames at a quality better than that.
      
      The current performance on derfraw300 is +0.910% up from bitrate control,
      but achieved without multiple recode loops per frame.
      
      The decision for qp for each altref/golden/key frame will be improved
      in subsequent patches based on better use of stats from the first pass.
      Further, the qp for regular inter frames may also be varied around the
      provided cq-level.
      
      Change-Id: I6c4a2a68563679d60e0616ebcb11698578615fb3
      e378a89b
  30. 04 Sep, 2013 1 commit
    • Jim Bankoski's avatar
      make vp9 postproc a config option · 79401542
      Jim Bankoski authored
      Vp9 postproc is disabled for now as its not been shown to help and
      may be merged with vp8.
      
      Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057
      79401542
  31. 21 Aug, 2013 1 commit
    • Deb Mukherjee's avatar
      Make "good" quality 2-pass vpxenc encoding default · 0d8723f8
      Deb Mukherjee authored
      Currently, the best quality mode in VP9 is not very well developed,
      and unnecessarily makes the encode too slow. Hence the command line
      default is changed to "good" quality. Also, the number of passes
      default is changed to 2 passes as well, since 1-pass encoding is
      not very efficient in VP9.
      
      Besides, a number of VP9 defaults are set to the currently
      recommended settings. With these changes, vpxenc
      run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should
      work about the same as our borg results.
      Note when the --cpu-used=0 option is dropped there will be a slight
      difference in the output, because of a difference in the cpu-used
      value for the first pass. Specifically, the default when unspecified
      is to use cpu_used=1 for the first pass and cpu_used=0 for the
      second pass. But when specified, both passes will use the cpu-used
      value specified.
      
      Note that this also changes the default for VP8 as being "good"
      but other options stay unchanged.
      
      Change-Id: Ib23c1a05ae2f36ee076c0e34403efbda518c5066
      0d8723f8
  32. 16 Jul, 2013 1 commit
  33. 03 Jul, 2013 1 commit
  34. 23 May, 2013 1 commit
  35. 15 May, 2013 1 commit
  36. 10 May, 2013 1 commit
    • John Koleszar's avatar
      Subsampling aware allocs and bitstream · da58436f
      John Koleszar authored
      Make framebuffer allocations according to the chroma subsamping
      factors in use. A bit is placed in the raw part of the frame header for
      each of the two subsampling factors. This will be moved in a future
      commit to make them part of the TBD feature set bits, probably only set
      on keyframes, etc.
      
      Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
      da58436f
  37. 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
  38. 27 Mar, 2013 1 commit
  39. 20 Mar, 2013 1 commit