1. 29 Jul, 2014 1 commit
    • Jingning Han's avatar
      Use frame index directly in get_chessboard_index · c36f78b0
      Jingning Han authored
      The get_chessboard_index() used to call the entire VP9_COMMON
      struct pointer to retrieve the chessboard pattern index. This cl
      makes it call the frame index directly.
      Change-Id: I3cad9d209ea2e77a358085a04fe1ff0ddec5ba03
  2. 28 Jul, 2014 2 commits
  3. 25 Jul, 2014 1 commit
    • Jingning Han's avatar
      Fix rd_pick_partition search loop for 4x4 blocks · 84af0486
      Jingning Han authored
      The partition search for 4x4 blocks takes unnecessary steps to
      reconstruct pixels and an extra partition type update. This commit
      removes such operations. No visible compression/speed difference.
      Thanks to Yue (yuec@) for finding this issue.
      Change-Id: I3f83824aa3fd3717d63be0b280fa57258939a70a
  4. 24 Jul, 2014 3 commits
  5. 23 Jul, 2014 4 commits
    • Minghai Shang's avatar
      [spatial svc]Fix reference issues · 929001bf
      Minghai Shang authored
      1. Remove last reference flag for first frame upper layers in one pass mode.
      2. Disable refresh golden frame flag for key frames.
      Change-Id: I44ac1bd2c795169e4fbfdd078ea79a1d33a204d6
    • Jingning Han's avatar
      Remove redundant argument entry in handle_inter_mode · e945c56d
      Jingning Han authored
      The value of mode_excluded has been properly set in
      vp9_rd_pick_inter_mode_sb(). It is redundant to send it in
      handle_inter_mode() and re-set the value again.
      Change-Id: I408d4731f2f42e0bcf3ae62e85757717bb410471
    • Jingning Han's avatar
      Use the chessboard pattern pred search in newmv mode · 4f2f8672
      Jingning Han authored
      This commit extends the chessboard pattern prediction filter search.
      If the above and left blocks have the same prediction filter type,
      the encoder will skip the prediction filter type search and use the
      reference one.
      The overall chessboard pattern prediction filter type search reduces
      speed 3 runtime for hard clips. Experiments on park joy at 1080p
      and 15000 kbps show that the runtime goes from 723265 ms to 65832 ms,
      i.e., about 10% speed-up. Compression performance wise, it affects
      the coding quality by
      Change-Id: I880975497c7ad166532e9eea9bf46684d77ff327
      derf:    -0.326%
      yt:      -0.257%
      hd:      -0.241%
      stdhd:   -0.417%
    • Jingning Han's avatar
      Remove redundant num_refs definition · 35381910
      Jingning Han authored
      Use is_comp_pred to replace the use case of num_refs.
      Change-Id: I4d0c1e14d5f728428a2ae3d293cd2b4a8b2f31d8
  6. 22 Jul, 2014 6 commits
    • Jingning Han's avatar
      Enable chessboard inter prediction filter type search · 54ad0958
      Jingning Han authored
      This commit enables a chessboard pattern prediction filter type
      search scheme for rate-distortion optimization speed-up. For the
      inferred motion vector modes, the encoder can re-use its above/left
      neighbor blocks' prediction filter type and skip a full test on
      all possible filter types. Such operation is turned on/off
      alternatively in a chessboard manner.
      It is turned on in speed 3. For test clip pedestrian 1080p, the
      runtime is reduced from 231500 ms -> 221700 ms. The compression
      performance is changed:
      derf:  -0.147%
      yt:    -0.134%
      hd:    -0.079%
      stdhd: -0.220%
      Change-Id: I1912f278e7576c2dc632688e3ad7a257410c605a
    • Tim Kopp's avatar
      VP9 denoiser bugfix in debugging code. · 1fe18acb
      Tim Kopp authored
      When OUTPUT_YUV_DENOISED is enabled the encoder outputs the uncompressed,
      denoised video to a separate file. Moved the point at which the file is
      written to in order to avoid an extra blank frame at the beginning of the video.
      Change-Id: I805f6a912b18b3d9cae59b13c5b8108279439ce3
    • Adrian Grange's avatar
      Fix get_frame_type function · caad1686
      Adrian Grange authored
      Fixed the function get_frame_type to return the correct
      frame type for golden and last frames.
      Change-Id: I8edddd9aa26cbe7a1de8ff211389410b22b1bd14
    • James Zern's avatar
      vp9_bitstream.c: cosmetics · de4db2dc
      James Zern authored
      fix indent, spelling and drop some vertical whitespace
      Change-Id: I722671381a374a24763b07a02805ab1d149ab3f4
    • Jingning Han's avatar
      USE local best_filter variable in handle_inter_mode · 5de6114e
      Jingning Han authored
      This should be a local variable. Move the definition from
      vp9_rd_pick_inter_mode_sb to handle_inter_mode.
      Change-Id: I14f4168bb1c896ed04e8f6d4cd89fbf4c9839944
    • Minghai Shang's avatar
      [spatial svc]Use #if instead of #ifdef on macro CONFIG_SPATIAL_SVC · 24c9d6ad
      Minghai Shang authored
      Change-Id: Ifc94377a0d05d66e3d21b007893a985b66db6082
  7. 21 Jul, 2014 4 commits
    • Jingning Han's avatar
      Turn on adaptive pred filter scheme for sub8x8 below 720p · ffd948bb
      Jingning Han authored
      For sequences of resolution below 720p, the encoder will check
      intra prediction modes and inter prediction modes from LAST_FRAME.
      This commit turns on adaptive prediction filter scheme for sub8x8
      blocks, where inter prediction modes are enabled. For the test
      sequence bus at CIF, the speed 2 runtime goes down from 17879 ms
      to 16783 ms, i.e., 6% speed up. The compression performance of
      derf set is down by -0.128%.
      Change-Id: I01d5321a5ceab4e0666ac5be56c52d896c7a8d45
    • Alex Converse's avatar
      Remove unfinished VP9 alpha channel. · 5926e7c0
      Alex Converse authored
      Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
    • Yaowu Xu's avatar
      Moved call to vp9_clear_system_state() to a proper location · bcaf1d69
      Yaowu Xu authored
      The commit moved a call to vp9_clear_system_state() to a correct
      location, i.e. prior function calls using floating point numbers.
      This was to fix a mismatch mmx code and sse2 version, where a
      floating point number used in adjust_frame_rate(cpi) gets NAN due
      to mmx registers being in wrong state.
      Change-Id: I40e0a6de98812000ccee6a729badb630604fd7e6
    • Yunqing Wang's avatar
      Add -DNDEBUG when config option debug is disabled · 765485ca
      Yunqing Wang authored
      For gcc, when libvpx config option debug is disabled, added the
      flag -DNDEBUG to disable the assertions in libvpx for some speedup.
      Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
  8. 18 Jul, 2014 2 commits
  9. 17 Jul, 2014 2 commits
    • Pengchong Jin's avatar
      Fixed a bug of setting wrong first pass mb stats pointer · e358ab5f
      Pengchong Jin authored
      The bug sets the wrong pointer to the first pass mb stats
      if the encoder does the re-coding in the second pass.
      Change-Id: I8a11f45dd7dceb38de814adec24cecccae370d00
    • Adrian Grange's avatar
      Modified frame buffer handling · f68aaa38
      Adrian Grange authored
      This patch is the first step toward simplifying the
      frame buffer handling.
      The final goal is to have a common frame buffer handling
      framework for both encoder and decoder that incorporates
      the existing ability to use externally allocated memory.
      Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
  10. 16 Jul, 2014 3 commits
    • Yaowu Xu's avatar
      make default_interp_filter choice a speed feature · 51c60a89
      Yaowu Xu authored
      This commit changed the hard-coded DEFAULT_INTERP_FILTER to a speed
      feature with the same default value: SWITCHABLE.
      Change-Id: I7f54f40f1bd3f5277841d04b85db7a84e47313f1
    • Scott LaVarnway's avatar
      Added vp9_sad64x64_neon(), vp9_sad32x32_neon() · 696fa52e
      Scott LaVarnway authored
      and vp9_sad16x16_neon()
      On a Nexus 7, vpxenc (in realtime mode, speed -6)
      reported a performance improvement of ~17%.
      Change-Id: I91e070cde2973451083d3f3d63b49b7886de9a85
    • Paul Wilkins's avatar
      Changes to rd balance and multi-arf bug fix. · b691230d
      Paul Wilkins authored
      2 pass only change to calculation of rd mult based on Q.
      Make a small adjustment based on frame type and also
      replace adjustment based on iifactor with an one based
      on the ambient GF/ARF boost level.
      Also fix multi arf bug / issue.
      Overall these change give an slight improvement in ssim
      but hurt psnr a little.
      Change-Id: I5e1751e3ff5390a26f543d7855059e6fbcce105e
  11. 15 Jul, 2014 4 commits
  12. 14 Jul, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Implement alt reference frames · e899859c
      Minghai Shang authored
      All changes are for spatial svc only.
      1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer
      2. Use golden reference idx for spatial reference
      3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers
      4. Add "auto-alt-refs" in svc options
      Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
  13. 11 Jul, 2014 6 commits
    • Jingning Han's avatar
      Fix a potential invalid memory access in non-RD coding flow · b957439c
      Jingning Han authored
      This commit fixes a potential out-of-boundary memory access due to
      the use of reuse_inter_pred_sby in the non-RD coding flow. It
      resolves the corresponding asan error.
      Change-Id: Iff605f5921230966990013541cd855d698810922
    • Jingning Han's avatar
      Fix chrome valgrind warning due to the use of mismatched bsize · 3cddd81c
      Jingning Han authored
      This commit fixes a mismatched use case of block size in non-RD
      intra prediction check. The residual SSE and variance should be
      calculated per transform block size, instead of operating block
      size, which caused chrome valgrind warning on conditional jump
      based on uninitialized value (webm issue 823). This commit
      resolves this issue.
      Change-Id: I595c06599c7e0fd0e4a08736519ba68fc14bc79a
    • Deb Mukherjee's avatar
      Some extra bit probability cleanups · 6957e7a0
      Deb Mukherjee authored
      Refactoring to remove some duplication of probability
      tables between tokenization and detokenization.
      Change-Id: I2fc6a6497f9c0410021a9b41f828bc58a864e466
    • Yaowu Xu's avatar
      Remove an unused parameter in vp9_init_search_range() · 6673d2f3
      Yaowu Xu authored
      Change-Id: I3d9130e726a1299fd258f6dfe93315e2d12f76da
    • Yunqing Wang's avatar
      Code refactoring: use defined inline functions · 1b5e9871
      Yunqing Wang authored
      Changed to use defined inline functions consistently through
      the code.
      Change-Id: I7644d24fa7a837378564a6e0790416d3725dd200
    • Paul Wilkins's avatar
      Re-factor and simplify arnr filter. · e3e6e061
      Paul Wilkins authored
      Use a weaker filter for second level arf frames.
      Average gain across all sets and metrics ~0.3%
      Remove code for arnr_type which is no longer
      supported in VP9 which always uses a centered blur.
      Re-factor and some cleanup.
      Change-Id: Ieb4b8940e99e4e02b3fcc9fca6f2d4109e6ed639
  14. 10 Jul, 2014 1 commit
    • Yunqing Wang's avatar
      Refactor vp9_diamond_search_sad function · 75cd5750
      Yunqing Wang authored
      Currently, vp9_diamond_search_sadx4() is only called when sse3 is
      enabled, which is improper since sse2 optimization of sdx4df
      functions are available. Changed to always use
      Change-Id: I4b95d6b7a3c6c645783c373f0ba8d645ece24717