1. 12 Feb, 2014 2 commits
    • Jingning Han's avatar
      Remove unused using_small_partition_info functions · 25479e94
      Jingning Han authored
      This function is deprecated after the re-design of partition search
      that runs big block size, then four-way split, followed by
      rectangular block sizes. This commit removes the related functions.
      
      Change-Id: I417549c8e0fa3cf35bd29816b805dd4e7c3660c6
      25479e94
    • Deb Mukherjee's avatar
      Removes active_worst_quality feedback · d23e3392
      Deb Mukherjee authored
      Removes certain cases of feedback of active_worst_quality,
      and removes it from the RATE_CONTROL structure. Now active
      worst quality is expected to be computed locally in the
      q picking function during the encode.
      Making temporal filter strength depend on avg_frame_qindex
      rather than on active_worst_quality actually improves
      performance esp. for yt.
      derf: +0.038%
      yt: +0.359%
      
      Change-Id: I1fe5a343034b55af9322289165321f00ac0827b1
      d23e3392
  2. 11 Feb, 2014 1 commit
    • Yunqing Wang's avatar
      Enable encode_breakout in real time encoding · 507fd522
      Yunqing Wang authored
      In real time encoding, we enable encode_breakout to make encoding
      fast. A speed feature "use_encode_breakout" is defined to set
      encode_breakout thresholds for different speeds.
      
      However, currently, static_thresh is an encoder option. The encode_
      breakout can be turned off if user sets static_thresh=0 specifically.
      
      The rtc set borg test result: (need to set --static_thresh=1)
      speed -5, psnr loss -3.543%;
      speed -4, psnr loss -2.358%;
      speed -3, psnr loss -0.771%.
      
      Encoding speed test:
      speed -5, 11% - 60% speedup;
      speed -4, 5.5% - 28% speedup;
      speed -3, 0.8% - 7% speedup.
      
      Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
      507fd522
  3. 10 Feb, 2014 5 commits
    • Jingning Han's avatar
      Use more meaningful names for speed features · 734938dc
      Jingning Han authored
      Use frame_parameter_update to precisely describe the functionality.
      
      Change-Id: Ia9a55ba8efef7b987e30d949dd00ac716189bdb9
      734938dc
    • Deb Mukherjee's avatar
      Further one-pass vbr rate control changes · 15fb5510
      Deb Mukherjee authored
      Some parameter changes and fixes on one-pass rate control.
      derfraw300 is now only 10% below 2-pass speed 0 rate control.
      
      Change-Id: I1940eef8a5a035dc18e71b880d5e00cabd1f01b9
      15fb5510
    • Frank Galligan's avatar
      Add get release decoder frame buffer functions. · e8e15279
      Frank Galligan authored
      This CL changes libvpx to call a function when a frame buffer
      is needed for decode. Libvpx will call a release callback when
      no other frames reference the frame buffer. This CL adds a
      default implementation of the frame buffer callbacks. Currently
      only VP9 is supported. A future CL will add support for
      applications to supply their own frame buffer callbacks.
      
      Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
      e8e15279
    • Yaowu Xu's avatar
      Merged two similar functions to reduce duplication · 855070e2
      Yaowu Xu authored
      Function encode_rtc_frame_internal() and encode_frame_internal() only
      differed by a couple of speed features, this commit relocation those
      difference into the setup of speed features and merged two functions
      into one to remove duplication.
      
      It also fixed a subtle bug super_fast_rtc was used before it was
      initialized.
      
      Change-Id: I234a5a1d11a4450930e5b4943dbab434208d5030
      855070e2
    • Marco Paniconi's avatar
      Some updates and fixes for layered CBR mode. · 812bacc9
      Marco Paniconi authored
      -Properly set the average frame size for each layer.
      
      -Allow each layer to update its average/last Q stats after encoding.
      
      -Initialize for some layer context variables.
      
      Change-Id: Iaa37d144fcf4f30ff4283a4e8db8b9ca8bf4c815
      812bacc9
  4. 08 Feb, 2014 1 commit
  5. 06 Feb, 2014 2 commits
    • Deb Mukherjee's avatar
      Parameter fixes for one-pass non-cbr mode · b2209c33
      Deb Mukherjee authored
      Fixes some of the parameters for 1-pass non-cbr mode.
      Also includes some cleanups, inlcuding refactoring of the
      recode_loop options.
      
      Results on derfraw300 improve by about 5-6%, so that the one-pass
      mode is now 13% below the 2-pass mode in speed 0.
      
      Change-Id: I844cc2638694c7574f3be00d41d60b23dc1016f0
      b2209c33
    • 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
  6. 05 Feb, 2014 4 commits
  7. 04 Feb, 2014 1 commit
    • Yaowu Xu's avatar
      Adjust speed feature for --rt · 084c49ac
      Yaowu Xu authored
      Moved a few features with low impact on compression form -5 to -4 and
      increased adaptive_rd_thresh for -5.
      
      Change-Id: Ib1b748168cc6ed7684ae4818499f3a536ae76253
      084c49ac
  8. 03 Feb, 2014 1 commit
  9. 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
  10. 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
  11. 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
  12. 29 Jan, 2014 6 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
      Removing SECTIONBITS_OUTPUT. · a8285de7
      Dmitry Kovalev authored
      This code seems to be unmaintaned for a long time (e.g. because of __int64
      type usage).
      
      Change-Id: I35fd60d985032fe824f6fd6266910378adcca519
      a8285de7
    • 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
  13. 28 Jan, 2014 1 commit
  14. 27 Jan, 2014 1 commit
  15. 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
  16. 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
  17. 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
  18. 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
  19. 18 Jan, 2014 1 commit