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
      bdd249be
    • 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
      2ae314fe
    • 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
      coditions.
      
      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
      Marco.
      
      Change-Id: Ieaf633ab77f4838cb3c45cf69065b29d55f8ae6c
      81fc5bf8
    • 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
      ed2dc59c
    • Jingning Han's avatar
      Fix a check condition in nonrd_pick_partition · 83559e73
      Jingning Han authored
      Change-Id: Ic92fb4b16948f745c218351b24fdafecf9abce3a
      83559e73
  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
      2fa9e9e2
  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
      0dd591be
  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
      4bc7f482
    • 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
      b1940bf5
    • Adrian Grange's avatar
      Improve readability: move return statements · e31516a0
      Adrian Grange authored
      Change-Id: I18428d0a93084f78ec136d9019f10466326c67e5
      e31516a0
    • 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
      cf54b880
  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
      5041aa0f
    • 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
      56435bb7
  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
      ee5d7999
    • 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
      bf3cb250
    • 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
      d167a1ae
    • 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:
        --resize-allowed=1
      
      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
      23ebacdb
    • 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
      ebb4c9e8
  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
      dd88f482
  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.
      additionally:
        - remove some shadowed variables in the former and marked them volatile
      
      Change-Id: Ie3f9636c405bd822112bb56bd22d28024ae98909
      0261fb4c
    • 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
      789ae447
  13. 04 Feb, 2015 5 commits