1. 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
  2. 31 Jan, 2014 4 commits
    • Yaowu Xu's avatar
      Only allow interp_filter change in SWITCHABLE mode · 538b1c6d
      Yaowu Xu authored
      This commit added a logic to prevent the inter_filter type from being
      changed if the default interp_filter mode is not switchable. Also, it
      sets the default interp_filter to BILINEAR at very and super fast rtc
      encoding modes
      
      Change-Id: Ic41e6d31de29795a4ce536ec79afb01cab6daad3
      538b1c6d
    • Yaowu Xu's avatar
      Properly merge two different real time modes · 6a4e2dda
      Yaowu Xu authored
      --rt --cpu-used=-5 uses the progressive rtc mode
      --rt --cpu-used=-6 uses the new super fast rtc mode
      
      Change-Id: Id6469ca996100cdf794a0e42d76430161f22f976
      6a4e2dda
    • Adrian Grange's avatar
      Disable update of last_show_frame for existing frame · 64e25974
      Adrian Grange authored
      When showing a previously decoded frame, i.e. when
      show_existing_frame=1, the update of the
      last_show_frame flag must be disabled.
      
      This is to ensure that the last_show_frame flag
      reflects the state of the flag for the immediately
      previously decoded frame rather then the value that
      was forced to ensure that a previously decoded frame
      would be displayed.
      
      This patch also adds a test vector to verify that the
      display_existing_frame flag works as expected. Code
      for generating the test vector can be found in this
      patch:
      https://gerrit.chromium.org/gerrit/#/c/68581/
      
      (Bug originally reported by Alexander Voronov
      <ru.xalba@gmail.com>).
      
      Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
      64e25974
    • Jim Bankoski's avatar
      remove confusing compressor_speed · da6b1862
      Jim Bankoski authored
      use mode instead
      
      Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
      da6b1862
  3. 30 Jan, 2014 1 commit
    • Yaowu Xu's avatar
      Fix some automerge artifacts · 4c0a6231
      Yaowu Xu authored
      Some changes in 1ca11865 were mistakenly reverted by a later merge,
      this commit re-instated the chanages from values to enums.
      
      Change-Id: Ia6b01c31da584a1f612996e6432612c1295b9eaf
      4c0a6231
  4. 29 Jan, 2014 5 commits
    • Yaowu Xu's avatar
      Add a strict mode for auto_min_max_partition_size feature · 1ca11865
      Yaowu Xu authored
      In this new mode, the size range is strictly determined by the min
      and max partition size in neighborhood blocks.
      
      Niklas720 encoding time at cpu-used -5 goes from 56250ms to 50676ms,
      a 10% reduction.
      
      Change-Id: I316b0e2ac967ff3fad57b28d69c0ec80b7d8b34e
      1ca11865
    • Dmitry Kovalev's avatar
      Combining fb_idx_ref_cnt[] and yv12_fb[] arrays. · 63320634
      Dmitry Kovalev authored
      Adding new RefCntBuffer struct which contains reference counter and image
      buffer.
      
      Change-Id: I71c1f532faa13442c32c43fc03ec45b6f88fb844
      63320634
    • Dmitry Kovalev's avatar
      Finally removing vp9_setup_interp_filters() function. · b00eb5c4
      Dmitry Kovalev authored
      Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
      b00eb5c4
    • Deb Mukherjee's avatar
      Enables alt-ref frames in one pass mode · 50bf8fd4
      Deb Mukherjee authored
      Includes a few fixes and clean-ups that adds the ability
      to use alt-ref frames in one-pass mode.
      Whether alt-refs are actually used or not is controlled by a
      macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c.
      
      This first cut seems to improve derf by 15+% in 1-pass mode.
      But further experiments with parameters are underway.
      
      Change-Id: I78254421435478003367c788c7930d2dc4ee2816
      50bf8fd4
    • 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
  5. 28 Jan, 2014 1 commit
  6. 27 Jan, 2014 1 commit
  7. 25 Jan, 2014 1 commit
    • Yaowu Xu's avatar
      Added a speed feature · a0b9b050
      Yaowu Xu authored
      That force the stop of subpel search possibly at full/half/quater pel
      stages
      
      Change-Id: Ie50c500417bd78e1a53e6620bd4c2b85f63d9c67
      a0b9b050
  8. 24 Jan, 2014 4 commits
    • Dmitry Kovalev's avatar
      Renaming INTERPOLATION_TYPE to INTERP_FILTER. · 4264c938
      Dmitry Kovalev authored
      Corresponding renames:
        subpel_kernel              => interp_kernel
        vp9_get_filter_kernel()    => vp9_get_interp_kernel()
        pred_filter_type           => pred_interp_filter
        adaptive_pred_filter_type  => adaptive_pred_interp_filter
        mcomp_filter_type          => interp_filter
        read_interp_filter_type()  => read_interp_filter()
        write_interp_filter_type() => write_interp_filter()
        fix_mcomp_filter_type()    => fix_interp_filter()
      
      Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
      4264c938
    • Alex Converse's avatar
      Add some consts to vp9_calc_ss_err(). · ea283a62
      Alex Converse authored
      Also change its wrongly named dest parameter to reference.
      
      Change-Id: Ide142dead31c9ccda1f09a48b221284369783fb7
      ea283a62
    • Alex Converse's avatar
      Add a method to estimate loop filter level from quantizer and frame type. · 4ce8929b
      Alex Converse authored
      Use this method with rt at speed -5.
      
      Change-Id: If3bd6fad4c05ddde72131442dad191e4145047e7
      4ce8929b
    • Frank Galligan's avatar
      Revert external frame buffer code. · b1c72b63
      Frank Galligan authored
      A future CL will add external frame buffers
      differently.
      
      Squash commit of four revert commits:
      Revert "Increase required number of external frame buffers"
      
      This reverts commit 9e41d569.
      
      Revert "Add external constants."
      
      This reverts commit bbf53047.
      
      Revert "Add frame buffer lru cache."
      
      This reverts commit fbada948.
      
      Conflicts:
      	vpxdec.c
      
      Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005
      
      Revert "Add support to pass in external frame buffers."
      
      This reverts commit 10f89169.
      
      Conflicts:
      	test/external_frame_buffer_test.cc
      	vp9/common/vp9_alloccommon.c
      	vp9/common/vp9_reconinter.c
      	vp9/decoder/vp9_decodeframe.c
      	vp9/encoder/vp9_onyx_if.c
      	vp9/vp9_dx_iface.c
      	vpx/vpx_decoder.h
      	vpx/vpx_external_frame_buffer.h
      	vpx_scale/generic/yv12config.c
      	vpxdec.c
      
      Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
      b1c72b63
  9. 22 Jan, 2014 2 commits
    • Adrian Grange's avatar
      Tidy up comments & remove commented out code. · 82f6af60
      Adrian Grange authored
      Change-Id: I46dd5ce06f36362c6274511cd1531d93926aa9bc
      82f6af60
    • Deb Mukherjee's avatar
      Adds a non-normative resize library to vp9 encoder · 3cd37dfe
      Deb Mukherjee authored
      Adds an arbitrary-size resize library for use in scaling of input
      frames in a non-normative manner in the vp9 encoder. The method
      used is as follows:
      Downsampling - Uses a 8 tap filter for factor of 2 decimation upto
      a size just higher than the desired size. Then interpolates pixels
      at a precision of 1/32 pel using a set of 8-tap filters.
      Upsampling - Interpolates pixels at a precision of 1/32 pel using
      a set of 8-tap filters.
      
      There is no assembly optimization yet.
      
      Change-Id: Ib5b81e174fc139da322bb97c8214d52289d60d8a
      3cd37dfe
  10. 21 Jan, 2014 1 commit
    • hkuang's avatar
      Seperate the border size for encoder and decoder. · 437004c7
      hkuang authored
      Encoder's boarder is still 160, while decoder's boarder will be 32.
      With on demand and separate boarder buffer for boarder extension.
      The decoder's boarder does not need to to 160 anymore.
      
      Change-Id: I93d5aaff15a33a2213e9761eaa37c5f2870747db
      437004c7
  11. 18 Jan, 2014 1 commit
  12. 17 Jan, 2014 1 commit
  13. 15 Jan, 2014 2 commits
  14. 14 Jan, 2014 3 commits
    • Deb Mukherjee's avatar
      Minor fix on an assert · 1699d6bd
      Deb Mukherjee authored
      Fixes assert that fails occasionally on small values of
      max-key frame intervals. Also, adds a small change on
      updating frames_to_key for frame drops.
      
      Change-Id: Icc2b33b25e3e4ced7e49f8db73e0a887ef9c99e0
      1699d6bd
    • Paul Wilkins's avatar
      Add max burst bitrate control. · 5c808ba1
      Paul Wilkins authored
      Applies an upper limit on burst bitrate for any
      frame. This is to insure that typical encodes for YT
      do not produce frames that are so large that they
      risk stalling HW implementations. Such frames
      could also cause playback problems in SW.
      
      For now the limit is set at 250 bits per MB for 1080P
      and larger (with the 1080P limit used for smaller frames).
      
      Setting maxQ, constant quality mode or targeting a
      very high bandwidth will have precedence over this limit.
      
      Change-Id: Ie6f776c38b06ac7cec043d034085f4b79ee46a38
      5c808ba1
    • Dmitry Kovalev's avatar
      Removing unused error_bins[] field from VP9_COMP. · a8a5774b
      Dmitry Kovalev authored
      Change-Id: I883eb9026b44cb354d5b01c0f1d34ecd71f942e4
      a8a5774b
  15. 13 Jan, 2014 2 commits
    • Dmitry Kovalev's avatar
      Removing intra_mode_stats. · b9592fa0
      Dmitry Kovalev authored
      Change-Id: I6e0895f7f826b484ac86945e6abe3a706a6b0399
      b9592fa0
    • Yaowu Xu's avatar
      Enable reference frame masking for rt mode · 5e5d4c0e
      Yaowu Xu authored
      Reference frame masking helped good quality mode to gain about 5% in
      encoding speed, this commit enable it for rt mode to gain the speed
      improvement.
      
      In addition, this commit move the speed feature setup to a separate
      function.
      
      Change-Id: I015e8f78bbb21dd43ae183b9b9355bea2ccda9c5
      5e5d4c0e
  16. 11 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Cleaning up and fixing psnr calculation code. · 4def0a81
      Dmitry Kovalev authored
      Introducing calc_psnr() which calculates psnr between two yv12 buffers.
      Previously we incorrectly used width/height instead of
      crop_width/crop_height to calculate number of samples -- fixed.
      
      Change-Id: Iecda01980555de55ad347e0276e6641c793fa56c
      4def0a81
  17. 10 Jan, 2014 5 commits
    • Jim Bankoski's avatar
      explain speed features · 6439aa5a
      Jim Bankoski authored
      Added comments to explain what the various speed features do, and removed
      1 that was clearly unused.
      
      Change-Id: Icd37a536072ddafedbfaefcecbe48979f6d10faf
      6439aa5a
    • Dmitry Kovalev's avatar
      Adding get_vp9_ref_frame_buffer() function. · 804a155d
      Dmitry Kovalev authored
      Change-Id: Iae195fcf952dd27ba424f8e95090b8ffc4d5a7c8
      804a155d
    • Marco Paniconi's avatar
      Don't use gf_update by default for 1-pass CBR. · c46538d4
      Marco Paniconi authored
      Change-Id: I5df6abceb0a2a69706feadeb820b593cae88f573
      c46538d4
    • Jingning Han's avatar
      Enable skipping reference frame check in rd loop · d66c7486
      Jingning Han authored
      This commit allows encoder to compare the SAD cost associated with
      the best motion vector predictor, per frame. If one reference frame
      has this cost more than 4 times of the best SAD cost given by other
      reference frames, skip NEARESTMV, NEARMV, ZEROMV mode check of this
      reference frame.
      
      This setting is turned on in speed 2 and above. Compression quality
      change in speed 2:
      derf  -0.014%
      yt    -0.097%
      hd    -0.023%
      stdhd  0.046%
      
      It reduces the speed 2 runtime of test sequences:
      pedestrian_area_1080p 4000 kbps 310763 ms -> 303595 ms
      bluesky_1080p 6000 kbps         259852 ms -> 251920 ms
      
      Change-Id: I7f59cf79503d51836d61d56d50dc5bdf0e502e22
      d66c7486
    • Deb Mukherjee's avatar
      Cleanups on refresh flags · 412e4954
      Deb Mukherjee authored
      Cleanups on frame refresh flags and external overrides.
      
      Change-Id: Ia6a56fe1bde906b1dc3fcbf4ef1c7b207cd2df2d
      412e4954
  18. 09 Jan, 2014 2 commits
    • Marco Paniconi's avatar
      Keep buffer clipped to maximum in change_config. · 193fa5c8
      Marco Paniconi authored
      Under a configuration change, where the bitrate suddenly decreases,
      the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config).
      This change keeps it clipped to its maximum level.
      
      Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5
      193fa5c8
    • Yaowu Xu's avatar
      Simplify set_rt_speed_feature() · 2d381d76
      Yaowu Xu authored
      1. Made speed choices to be progressive
      2. Adjusted rt speed settings to achieve better speed/quality
      
      Overall, rt-5 gained 2.5% in compression/quality, encoding time of 720p
      niklas clip goes from 137,052ms to 121,874ms
      
      Change-Id: Ia6e7e1e15225395a868a2f1059c3db8e266e1600
      2d381d76
  19. 08 Jan, 2014 2 commits