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. 04 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Cleaning up vp9_entropy.h file. · 8e89e2f2
      Dmitry Kovalev authored
      Renaming constants for consistency:
        DCT_VAL_CATEGORY1 => CATEGORY1_TOKEN
        DCT_VAL_CATEGORY2 => CATEGORY2_TOKEN
        DCT_VAL_CATEGORY3 => CATEGORY3_TOKEN
        DCT_VAL_CATEGORY4 => CATEGORY4_TOKEN
        DCT_VAL_CATEGORY5 => CATEGORY5_TOKEN
        DCT_VAL_CATEGORY6 => CATEGORY6_TOKEN
        DCT_EOB_TOKEN     => EOB_TOKEN
        DCT_EOB_MODEL_TOKEN => EOB_MODEL_TOKEN
        MAX_ENTROPY_TOKENS => ENTROPY_TOKENS
      
      Moving constants:
        INTER_MODE_CONTEXTS from vp9_entropy.h to vp9_blockd.h.
        EOSB_TOKEN from vp9_entropy.h to vp9_tokenize.h
      
      Change-Id: I5fcbf081318e1d365792b6d290a930c6cb0f3fc2
      8e89e2f2
  3. 03 Dec, 2013 3 commits
    • Jingning Han's avatar
      Fix initialization order for the encoder · 3c346191
      Jingning Han authored
      This commit makes the coefficient tree initialized prior to token
      initialization, where the coefficient costs are filled out according
      to the probabilities associated with coefficient value categories.
      
      Change-Id: If4e89c3923058376f8382c683fe4a225a4a38af3
      3c346191
    • Jingning Han's avatar
      Fix intra prediction ref selection in skip_encode · f01ad926
      Jingning Han authored
      This commit fixes the intra prediction reference source selection
      in the settings of skip_encode. Use original boundary pixels as
      prediction reference, when the inverse transform and reconstruction
      are skipped in the per block size rate-distortion optimization loop.
      
      Change-Id: I36081aa30aa46e203e0e6f4e8a420fd08269469a
      f01ad926
    • Jingning Han's avatar
      Fix use_uv_intra_estimate in rd loop · 9f81a50c
      Jingning Han authored
      This commit fixes the use of uv_intra_estimate by properly restoring
      the mode_info struct required by rd_pick_intra_sbuv_mode.
      
      Change-Id: I6a156d79533c4e2e60dfd3b8c5bb0a42a8eca280
      9f81a50c
  4. 27 Nov, 2013 2 commits
  5. 26 Nov, 2013 3 commits
  6. 25 Nov, 2013 2 commits
    • 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
    • Adrian Grange's avatar
      Change default behavior to assume sampled chroma · 3173c219
      Adrian Grange authored
      When calling check_initial_width through vp9_set_size_literal
      the function was defaulting to using non-subsampled chroma.
      
      This patch changes the default to assume sampled chroma as
      an interim solution until complete support for other
      color formats is added.
      
      Change-Id: Id8e7e919b350e3473dfdf7551af6fd0716478b04
      3173c219
  7. 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
  8. 21 Nov, 2013 1 commit
  9. 20 Nov, 2013 1 commit
  10. 15 Nov, 2013 1 commit
  11. 14 Nov, 2013 2 commits
  12. 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
  13. 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
  14. 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
  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. 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
  17. 31 Oct, 2013 1 commit
  18. 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
  19. 25 Oct, 2013 2 commits
  20. 24 Oct, 2013 1 commit
  21. 23 Oct, 2013 1 commit
  22. 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
  23. 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