1. 08 Jan, 2015 2 commits
    • Jingning Han's avatar
      Refactor denoiser frame buffer update · ea061a88
      Jingning Han authored
      Use frame buffer pointer swap instead of memcpy when possible.
      These two CLs make the denoiser when running on vidyo1 720p at
      speed -6 over 10% faster.
      
      Change-Id: I64fe8a2422cafca6787a50c7f4dfb961191c0a9d
      ea061a88
    • Jingning Han's avatar
      Use vp9_convolve_copy in denoiser output · 29a5deb4
      Jingning Han authored
      Replace copy_block with vp9_convolve_copy for speed performance
      improvement.
      
      Change-Id: I3a08c4d01dff2253b6ee573efd02f65ccdc1b5a5
      29a5deb4
  2. 07 Jan, 2015 2 commits
    • Jingning Han's avatar
      Fix denoiser chroma component initialization · 2fb9b635
      Jingning Han authored
      Use the correct frame size and stride value for chroma components
      when setting the initial values. These control parameters are
      assigned when the denoiser buffer was allocated and initialized.
      
      Change-Id: Ia6318194c7738aff540bcbd34f77f0dac46221a1
      2fb9b635
    • Jingning Han's avatar
      Skip duplicate denoiser frame buffer allocation · 27582e57
      Jingning Han authored
      Allocate the frame buffer allocation for denoiser once during the
      encoder initialization. This avoids allocating frame buffer
      multiple times and overwriting the buffer pointer without proper
      releasing.
      
      Change-Id: I9b3baa6283449d86fd164534d344c036bb035700
      27582e57
  3. 15 Dec, 2014 2 commits
  4. 12 Dec, 2014 1 commit
    • Frank Galligan's avatar
      Add support for setting byte alignment. · 399823b6
      Frank Galligan authored
      Add support for setting byte alignment on the Y, U, and V plane of the
      reference buffers. The byte alignment must be a power of 2, from 32 to
      1024. A value of 0 sets legacy alignment.
      
      Change-Id: I7c1399622f7aa68e123646369216b32047dda73d
      399823b6
  5. 06 Oct, 2014 1 commit
    • JackyChen's avatar
      Add SSE2 code and unit test for VP9 denoiser. · 80465dae
      JackyChen authored
      This SSE2 is based on VP8 denoiser's SSE2 code. In VP8, there are
      only 16x16 blocks in denoiser, while in VP9, there are 13 different
      block sizes.
      
      By adding this SSE2 code, the improvement of encoder speed is around
      20%(using C code vs using SSE2 code), vary for different clips.
      
      The unit test for VP9 denoiser is to confirm that the SSE2 code is
      bit-exact with the C code. The unit test covers all block size.
      
      Change-Id: Ic8d8ac26db4ea40a5f146b5678a065af07eaaa3d
      80465dae
  6. 29 Sep, 2014 1 commit
    • JackyChen's avatar
      Fix a bug in calculating delta in VP9 denoiser. · 7ba646f7
      JackyChen authored
      When calculating delta in VP8 denoiser, since the block size is fixed to 16x16,
      the divisor is 256, which is the number of the pixel.
      But in VP9, the block size varies, the divisor should correspond to the block
      size.
      
      Change-Id: Ibdc1e5d23ba8c788b0d0dc6d406bcdfc34c1b142
      7ba646f7
  7. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Remove mi_grid_* structures. · c70cea97
      hkuang authored
      mi_grid_* are arrays of pointer to pointer. They save the pointers that point
      to the MIs in cm->mi. But they are unnecessary and complicated. The original
      goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
      inside MODE_INFO_t, same goal could be achieved.
      
      This commit totally removes the mi_grid_* structures. But there are still
      many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
      will do on-demand MODE_INFO_t allocation in order to save these memories.
      
      Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
      c70cea97
  8. 10 Sep, 2014 1 commit
  9. 04 Sep, 2014 3 commits
    • JackyChen's avatar
      Map motion magnitude in VP9 denoiser. · b1153f34
      JackyChen authored
      This is to keep the same with VP8 denoiser.
      If motion magnitude is small,
      make denoiser more aggressive.
      
      Change-Id: I942a6e2f2ed9aec6f0c4c1f9e5fa47066cadcc0c
      b1153f34
    • JackyChen's avatar
      Update the condition when COPY_BLOCK is chosen. · d75266f1
      JackyChen authored
      The change is just to keep the condition the same with VP8.
      
      Change-Id: I9662b40996126605945dd853c0cbe8916c1ce578
      d75266f1
    • JackyChen's avatar
      Fix a bug in VP9 denoiser. · e30f7698
      JackyChen authored
      When the first try of denoising turns out to be too much,
      we will use a softer filter by adopting an adjustment to
      make the result closer to original pixel (as in VP8 denoiser).
      The old code made the adjustment in the wrong direction.
      
      Change-Id: I84e28fa9e01eef47c5a37d5a2e6d3d378a06786b
      e30f7698
  10. 02 Sep, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds config opt for highbitdepth + misc. vpx · 5acfafb1
      Deb Mukherjee authored
      Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
      Also includes most vpx level high bit-depth functions. However
      encode/decode in the highbitdepth profiles will not work until
      the rest of the code is in place.
      
      Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
      5acfafb1
  11. 22 Aug, 2014 1 commit
  12. 18 Jul, 2014 1 commit
  13. 15 Jul, 2014 1 commit
    • Tim Kopp's avatar
      VP9 Denoiser denoises after mode/bsize search · 03819ed9
      Tim Kopp authored
      In vp8, statistics are collected about the different modes as they are searched.
      This process is more complicated due to the variable block size. Fields were
      added to the PICM_MODE_CONTEXT struct to hold this information for each point in
      the search. The information is then taken from the appropriate part of the tree
      during denoising.
      
      Change-Id: I89261ab77ad637821287ae157dfdf694702b8e77
      03819ed9
  14. 08 Jul, 2014 1 commit
    • Tim Kopp's avatar
      Vp9 denoiser MC bugfix · 3c86228c
      Tim Kopp authored
      In the previous version, only certain buffers in the macroblockd were saved and
      the restored. In this version, all of the buffers are saved and restored. The
      code was then rolled into a loop for readability.
      
      Also contains a tiny fix for when the -DOUTPUT_YUV_DENOISED flag is used.
      
      Change-Id: Id925ef8b3fa122ae88acfa1d9a1e4df45df83518
      3c86228c
  15. 02 Jul, 2014 3 commits
    • Tim Kopp's avatar
      VP9 denoiser implemented FILTER_BLOCK case · 03a3ba4a
      Tim Kopp authored
      Renamed updating_running_avg() to filter(). Extended function with the rest of
      the filter procedure. Made all of the empirically-determined constants used in
      VP8 into functions so they can be tweaked more easily.
      
      Change-Id: I41730c8c92370c76885950a43742347477ca4e7e
      03a3ba4a
    • Tim Kopp's avatar
      VP9 denoising enabled by noise_sensitivity param · 9c9922df
      Tim Kopp authored
      As in VP8.
      
      Currently, this parameter is set with the VP8E_SET_NOISE_SENSITIVITY flag.
      The flag was not renamed so that we don't break the interface for webrtc. This
      should probably be changed at some point in the future.
      
      Change-Id: Ic73fcb0dde9d1d019e9d042050b617333ac65472
      9c9922df
    • Tim Kopp's avatar
      Replaced loops with vpx_memcpy() · 49741fee
      Tim Kopp authored
      Change-Id: Icbe05657f0e92c3838e6a5a975f4f82d21328a2e
      49741fee
  16. 01 Jul, 2014 2 commits
  17. 27 Jun, 2014 2 commits
  18. 20 Jun, 2014 2 commits
    • Tim Kopp's avatar
      Fixed VP9 denoiser COPY_BLOCK case · b79d5b62
      Tim Kopp authored
      Now copies the src to the correct location in the running average buffer.
      
      Change-Id: I9c83c96dc7a97f42c8df16ab4a9f18b733181f34
      b79d5b62
    • Tim Kopp's avatar
      VP9 denoiser bugfixes · 31c03b31
      Tim Kopp authored
      s/stdint.h/vpx\/vpx_int.h
      
      Added missing 'break;'s
      
      Also included other minor changes, mostly cosmetic.
      
      Change-Id: I852bba3e85e794f1d4af854c45c16a23a787e6a3
      31c03b31
  19. 19 Jun, 2014 3 commits
  20. 18 Jun, 2014 3 commits
  21. 12 Jun, 2014 1 commit