1. 20 Feb, 2015 3 commits
  2. 19 Feb, 2015 5 commits
    • Hangyu Kuang's avatar
      Optimize the dequantization process on decoder side. · bdd249be
      Hangyu Kuang authored
      Change-Id: I00621ff7165bbe86a18794b4a816976c9effaf78
    • Adrian Grange's avatar
      Fix control string in firstpass stats fprintf · 2ae314fe
      Adrian Grange authored
      20 items in the control string but only 19 arguments.
      Change-Id: I51dab9aa1c58c653b52395005a9cb41f09feb484
    • Yunqing Wang's avatar
      Improve skip_txfm thresholds in the non-rd mode selection · 81fc5bf8
      Yunqing Wang authored
      Modified the thresholds of deciding whether or not to skip
      the transforms in model_rd_for_sb_y(). Used zbin[] instead
      of dequant[] to be more precise. Also, modified the checking
      Rtc set borg test results (at speed 6) showed:
      average PSNR gain: 0.138%, overall PSNR gain: 0.158%,
      and SSIM gain: 0.177%.
      The data rate test was modified slightly as suggested by
      Change-Id: Ieaf633ab77f4838cb3c45cf69065b29d55f8ae6c
    • Jingning Han's avatar
      Integral projection based motion estimation · ed2dc59c
      Jingning Han authored
      This commit introduces a new block match motion estimation
      using integral projection measurement. The 2-D block and the nearby
      region is projected onto the horizontal and vertical 1-D vectors,
      respectively. It then runs vector match, instead of block match,
      over the two separate 1-D vectors to locate the motion compensated
      reference block.
      This process is run per 64x64 block to align the reference before
      choosing partitioning in speed 6. The overall CPU cycle cost due
      to this additional 64x64 block match (SSE2 version) takes around 2%
      at low bit-rate rtc speed 6. When strong motion activities exist in
      the video sequence, it substantially improves the partition
      selection accuracy, thereby achieving better compression performance
      and lower CPU cycles.
      The experiments were tested in RTC speed -6 setting:
      cloud 1080p 500 kbps
      17006 b/f, 37.086 dB, 5386 ms ->
      16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster)
      pedestrian_area 1080p 500 kbps
      53537 b/f, 36.771 dB, 18706 ms ->
      51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings)
      blue_sky 1080p 500 kbps
      70214 b/f, 33.600 dB, 13979 ms ->
      53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster)
      jimred 400 kbps
      13380 b/f, 36.014 dB, 5723 ms ->
      13377 b/f, 36.087 dB, 5831 ms  (2% bit-rate savings, 2% slower)
      Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c
    • Jingning Han's avatar
      Fix a check condition in nonrd_pick_partition · 83559e73
      Jingning Han authored
      Change-Id: Ic92fb4b16948f745c218351b24fdafecf9abce3a
  3. 17 Feb, 2015 1 commit
    • hkuang's avatar
      Fix the frame parallel invalid file test failure on ARM. · 2fa9e9e2
      hkuang authored
      There is a corner case that when a frame is corrupted, the following
      inter frame decode worker will miss the previous failure. To solve
      this problem, a need_resync flag needs to be added to master thread
      to keep control of that.
      Change-Id: Iea9309b2562e7b59a83dd6b720607410286c90a6
  4. 14 Feb, 2015 1 commit
    • James Zern's avatar
      loop_filter_rows_mt: remove dependency on 'last_height' · 0dd591be
      James Zern authored
      using this to control reallocation would miss a change if the function
      were not called for every frame.
      fixes potential memory corruption by the subsequent memset
      Change-Id: I4c6bb6ab68803104fc824c7e27cc2f9b2cf53e33
  5. 13 Feb, 2015 4 commits
    • Yaowu Xu's avatar
      Fix an encoder/decode mismatch bug · 4bc7f482
      Yaowu Xu authored
      This commit prevent the encoder to update last_frame_type when a frame
      is dropped in the encoder. Prior to this fix, if there is a dropped
      frame immediatedly after a key frame, decoder would have the value of
      last_frame_type as key frame, different from encoder as the dropped
      frame in encoder would have updated the value to an inter frame. This
      leads to different probability update in encoder and decoder, thereby
      encoder/decoder mismatch.
      This fixes issue #941
      Change-Id: I27115224b138bec43ae3916c016574f5740822b0
    • Marco's avatar
      Replace some operations with shift in encoder_breakout. · b1940bf5
      Marco authored
      Replaced a divide by 9 with 8, so some very small difference,
      but otherwise no change in behavior.
      Change-Id: I1079ae3c41e0789ff0bc6fa9940a238b6bca0f5b
    • Adrian Grange's avatar
      Improve readability: move return statements · e31516a0
      Adrian Grange authored
      Change-Id: I18428d0a93084f78ec136d9019f10466326c67e5
    • Adrian Grange's avatar
      Add VP9 decoder control to get frame size · cf54b880
      Adrian Grange authored
      Adds a control function that allows the caller to get
      the size of the current frame.
      Change-Id: Iddfdedc0f3aa9aa46119f87d294681c82f275c9f
  6. 12 Feb, 2015 2 commits
    • Jingning Han's avatar
      Fix ioc issue in block_rd_txfm · 5041aa0f
      Jingning Han authored
      Force 64-bit precision in the intermediate steps.
      Change-Id: I666113d9adcef8975da201d5aa1a13b783d09594
    • Marco's avatar
      Add skin detection. · 56435bb7
      Marco authored
      Simple skin detection, from vp8; works reasonable on most of the
      RTC clips, but could miss sometimes.
      Added debug flag to write out skin map over source input.
      Change-Id: I2caea7592f1c459047aac46627eeb24a94946464
  7. 11 Feb, 2015 7 commits
  8. 10 Feb, 2015 5 commits
    • Yaowu Xu's avatar
      Move computation up to frame level · ee5d7999
      Yaowu Xu authored
      This is to avoid redo the same calculation repeatly, and also allow
      easier adjustments for further experiments.
      This commit shall have no effect on quality/compression.
      Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857
    • hkuang's avatar
      Remove unnecessary border extension when frame size change. · bf3cb250
      hkuang authored
      This border extension is not needed with on-demond border extension.
      Change-Id: I8501b37f5f756dc7e874cef4c1cfdbfa9a16112a
    • James Zern's avatar
      vp9_thread: prefer pthread.h if available · d167a1ae
      James Zern authored
      this avoids conflicts with recent versions of mingw-w64 (tested g++
      4.8.2) and the unit tests
      Change-Id: Ic41ea31eebe0e3e712ed5e657f37d8cad6712088
    • Adrian Grange's avatar
      Auto-adaptive encoder frame resizing logic · 23ebacdb
      Adrian Grange authored
      Note: This feature is still in development.
      Add an option for the encoder to decide the resolution
      at which to encode each frame.
      Each KF/GF/ARF goup is tested to see if it would be
      better encoded at a lower resolution. At present, each
      KF/GF/ARF is coded first at full-size and if the coded
      size exceeds a threshold (twice target data rate) at
      the maximum active Q then the entire group is encoded
      at lower resolution.
      This feature is enabled in vpxenc by setting:
      In addition, if the vpxenc command line also specifies
      valid frame dimensions using:
        --resize-width=XXXX & --resize_height=YYYY
      then *all* frames will be encoded at this resolution.
      Change-Id: I13f341e0a82512f9e84e144e0f3b5aed8a65402b
    • Jingning Han's avatar
      Fix block partition size in fill_mode_info_sb · ebb4c9e8
      Jingning Han authored
      This commit fixes the sub block partition size used in
      fill_mode_info_sb. Previous implementation effectively disabled
      the rectangular block sizes. This commit resolved this issue.
      Change-Id: Ic1c383ab0a9a2e7d59e85b388093f1f1f94d1e7f
  9. 09 Feb, 2015 1 commit
    • hkuang's avatar
      Set the maximum decode threads to be 8. · dd88f482
      hkuang authored
      This will fix the frame parallel decode hang on windows
      due to not enough semaphores.
      This will also make the frame parallel decode safer as
      the number of frame buffers could only support maximum
      8 threads.
      Change-Id: Id9ef50692819dcbebbd74a0aabffbfb3f39a4309
  10. 07 Feb, 2015 1 commit
  11. 06 Feb, 2015 3 commits
  12. 05 Feb, 2015 2 commits
    • James Zern's avatar
      vp9: fix segfault w/corrupt data post frame-parallel merge · 0261fb4c
      James Zern authored
      cm->frame_bufs[].idx values were made consistent in:
      61c5e94e Use -1 consistently as invalid buffer idx
      update the initialization in swap_frame_buffers() to match.
        - remove some shadowed variables in the former and marked them volatile
      Change-Id: Ie3f9636c405bd822112bb56bd22d28024ae98909
    • Yunqing Wang's avatar
      Fix high bit depth assembly function bugs · 789ae447
      Yunqing Wang authored
      The high bit depth build failed while building for 32bit target.
      The bugs were in vp9_highbd_subpel_variance.asm and
      vp9_highbd_sad4d_sse2.asm functions. This patch fixed the bugs,
      and made 32bit build work.
      Change-Id: Idc8e5e1b7965bb70d4afba140c6583c5d9666b75
  13. 04 Feb, 2015 5 commits