1. 29 Oct, 2015 1 commit
  2. 06 Aug, 2015 1 commit
    • Jingning Han's avatar
      Fix compiler error in vp8/9 decoder test · 463c9485
      Jingning Han authored
      The test file compiler fails if one uses --disable-vp8-decoder
      --enable-vp9-decoder. It effectively turns on CONFIG_VP8 and
      CONFIG_DECODERS, but turns off CONFIG_VP8_DECODER, which causes
      compiler error at test_vector_test.cc.
      
      This commit fixes this issue by adding vp8/9 decoder flags to
      the decoder behavior test, respectively.
      
      Change-Id: I097ff8fd5e12715a94a565a82e54503885eb7187
      463c9485
  3. 25 Mar, 2015 1 commit
    • Johann's avatar
      Parall -> Parallel · ba13ff85
      Johann authored
      Change-Id: I565fef382fa17a00d5ae54e980ef14d9f0ad4f55
      ba13ff85
  4. 14 Feb, 2015 1 commit
  5. 31 Jan, 2015 1 commit
    • hkuang's avatar
      Try again to merge branch 'frame-parallel' into master branch. · be6aeada
      hkuang authored
      In frame parallel decode, libvpx decoder decodes several frames on all
      cpus in parallel fashion. If not being flushed, it will only return frame
      when all the cpus are busy. If getting flushed, it will return all the
      frames in the decoder. Compare with current serial decode mode in which
      libvpx decoder is idle between decode calls, libvpx decoder is busy
      between decode calls.
      
      Current frame parallel decode will only speed up the decoding for frame
      parallel encoded videos. For non frame parallel encoded videos, frame
      parallel decode is slower than serial decode due to lack of loopfilter
      worker thread.
      
      There are still some known issues that need to be addressed. For example:
      decode frame parallel videos with segmentation enabled is not right sometimes.
      
      * frame-parallel:
        Add error handling for frame parallel decode and unit test for that.
        Fix a bug in frame parallel decode and add a unit test for that.
        Add two test vectors to test frame parallel decode.
        Add key frame seeking to webmdec and webm_video_source.
        Implement frame parallel decode for VP9.
        Increase the thread test range to cover 5, 6, 7, 8 threads.
        Fix a bug in adding frame parallel unit test.
        Add VP9 frame-parallel unit test.
        Manually pick "Make the api behavior conform to api spec." from master branch.
        Move vp9_dec_build_inter_predictors_* to decoder folder.
        Add segmentation map array for current and last frame segmentation.
        Include the right header for VP9 worker thread.
        Move vp9_thread.* to common.
        ctrl_get_reference does not need user_priv.
        Seperate the frame buffers from VP9 encoder/decoder structure.
        Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""
       Conflicts:
             test/codec_factory.h
             test/decode_test_driver.cc
             test/decode_test_driver.h
             test/invalid_file_test.cc
             test/test-data.sha1
             test/test.mk
             test/test_vectors.cc
             vp8/vp8_dx_iface.c
             vp9/common/vp9_alloccommon.c
             vp9/common/vp9_entropymode.c
             vp9/common/vp9_loopfilter_thread.c
             vp9/common/vp9_loopfilter_thread.h
             vp9/common/vp9_mvref_common.c
             vp9/common/vp9_onyxc_int.h
             vp9/common/vp9_reconinter.c
             vp9/decoder/vp9_decodeframe.c
             vp9/decoder/vp9_decodeframe.h
             vp9/decoder/vp9_decodemv.c
             vp9/decoder/vp9_decoder.c
             vp9/decoder/vp9_decoder.h
             vp9/encoder/vp9_encoder.c
             vp9/encoder/vp9_pickmode.c
             vp9/encoder/vp9_rdopt.c
             vp9/vp9_cx_iface.c
             vp9/vp9_dx_iface.c
      
      This reverts commit a18da976.
      
      Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
      be6aeada
  6. 23 Jan, 2015 1 commit
  7. 06 Sep, 2014 1 commit
  8. 14 Aug, 2014 1 commit
    • hkuang's avatar
      Add VP9 frame-parallel unit test. · a3ef7d5a
      hkuang authored
      Make sure VP9 frame-parallel decode passes all the standard
      test vectors. Only test running with 2,3,4 threads now.
      
      Also refactor the video decode test driver to support passing
      in decode flags which is used to enable frame-parallel decode.
      
      Change-Id: I6a712464232c2e13681634951c7e176312522e1e
      a3ef7d5a
  9. 24 Apr, 2014 1 commit
  10. 27 Mar, 2014 1 commit
  11. 29 Jan, 2014 1 commit
  12. 18 Jan, 2014 1 commit
  13. 12 Dec, 2013 2 commits
  14. 06 Dec, 2013 1 commit
    • James Zern's avatar
      add tile test vectors · 937c3b99
      James Zern authored
      3840x2160
      
      vp90-2-08-tile_1x8_frame_parallel.webm
      vp90-2-08-tile_1x8.webm
      
      vpxenc crowd_run_2160p50.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=${fpm} \
        --tile-columns=${tc} \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5 \
        --target-bitrate=2500
      
      Change-Id: I6dc19b4fca483d03ef9a897a843bf9037d095c8e
      937c3b99
  15. 04 Dec, 2013 2 commits
    • Jingning Han's avatar
      Add a test vector for loopfilter · ebb583d2
      Jingning Han authored
      The test vector exercises the loopfilter behavior at frame boundary.
      
      blue_sky_1080p25.y4m --good --cpu-used=2 --threads=0 --profile=0
      --lag-in-frames=25 --limit=300 --min-q=0 --max-q=63 --cq-level=20
      --end-usage=0 --auto-alt-ref=1 -p 2 --kf-max-dist=9999 --kf-min-dist=0
      --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0
      --maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5
      --arnr-type=3 --sharpness=0 --undershoot-pct=100 --target-bitrate=6000
      
      Change-Id: Ibd0807395d2fe87f24f81f990369678df3de7c23
      ebb583d2
    • Yaowu Xu's avatar
      Fix VP8 border replication for very small image · a0f77f6a
      Yaowu Xu authored
      Also added a test vector for this issue.
      
      Change-Id: I8a8654f9d33b27afd53c295f1ea44d198550d067
      a0f77f6a
  16. 26 Nov, 2013 1 commit
    • Yunqing Wang's avatar
      Add a noise test vector · f2341364
      Yunqing Wang authored
      Added the test vector provided by Attila, which caught the bug in
      Issue 661 "Decoder produces mismatched outputs with ssse3 enabled
      and disabled"
      
      vp90-hantro-stream-001.ivf
      size: 320x180; 20 frames
      
      Change-Id: Ic0d2b57ac7596ecb938dd55abc8c706fc2dd6d8f
      f2341364
  17. 12 Nov, 2013 1 commit
    • Jingning Han's avatar
      Add test vector for row/col tile decoding · 458951d8
      Jingning Han authored
      1920x1080
      
      vp90-2-08-tile-4x4.webm
      vp90-2-08-tile-4x4.webm.md5
      
      vpxenc blue_sky_1080p25 --frame-parallel=0 \
      --tile-columns=2 --tile-rows=2 \
      --lossless=0 --error-resilient=0 \
      --min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
      --cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5
      
      vp90-2-08-tile-4x1.webm
      vp90-2-08-tile-4x1.webm.md5
      
      vpxenc blue_sky_1080p25 --frame-parallel=0 \
      --tile-columns=0 --tile-rows=2 \
      --lossless=0 --error-resilient=0 \
      --min-q=0 --max-q=30 --kf-min-dist=0 --kf-max-dist=9999 \
      --cpu-used=0 --codec=vp9 -p 2 --good --fps=25/1 --limit=5
      
      Change-Id: I77d0ccf9b721ae5cfa72781fe0d3c534ea43b756
      458951d8
  18. 28 Oct, 2013 1 commit
    • James Zern's avatar
      add tile test vectors · ea9b2c03
      James Zern authored
      1920x1080
      
      vp90-2-08-tile_1x2_frame_parallel.webm
      vp90-2-08-tile_1x2.webm
      vp90-2-08-tile_1x4_frame_parallel.webm
      vp90-2-08-tile_1x4.webm
      
      vpxenc blue_sky_1080p25.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=${fpm} \
        --tile-columns=${tc} \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5 \
        --target-bitrate=2500
      
      Change-Id: Id9c94b722cc553a6865d443a94e8482c78b038bb
      ea9b2c03
  19. 14 Oct, 2013 1 commit
    • James Zern's avatar
      add a test vector with frame parallel mode enabled · 798cf80c
      James Zern authored
      vp90-2-07-frame_parallel.webm:
      vpxenc stefan_sif.y4m \
        --codec=vp9 -p 2 \
        --frame-parallel=1 \
        --limit=10 \
        --auto-alt-ref=1 \
        --lag-in-frames=5
      
      Change-Id: I7381a69aaaec238b309169a51b34cb6bf29a9c50
      798cf80c
  20. 03 Oct, 2013 1 commit
  21. 17 Sep, 2013 1 commit
    • Adrian Grange's avatar
      Modified resize unit test to output test vector · 88c8ff25
      Adrian Grange authored
      Modified the resize unit test so that it optionally
      writes the encoded bitstream to file. The macro
      WRITE_COMPRESSED_STREAM should be set to 1 to enable
      output of the test bitstream; it is set to 0 by default.
      
      Change-Id: I7d436b1942f935da97db6d84574a98d379f57fb1
      88c8ff25
  22. 04 Sep, 2013 1 commit
  23. 26 Aug, 2013 1 commit
  24. 13 Jul, 2013 1 commit
  25. 08 Jul, 2013 1 commit
    • John Koleszar's avatar
      Fix loopfilter bug · 527fc5ca
      John Koleszar authored
      In the rare case were 4x4 interior filtering was called for but no
      8x8 or larger filtering takes place, the previous code was skipping
      the filtering. This patch fixes the issue by including the interior
      mask in the overall mask for the filter application loops.
      
      Change-Id: I4a0b65056c64f97478827c2ff41e0914fc7779d0
      527fc5ca
  26. 26 Jun, 2013 1 commit
  27. 24 Jun, 2013 1 commit
    • John Koleszar's avatar
      Fix loopfilter of leftmost 4x4 edges in SB · 858475a0
      John Koleszar authored
      For cases where there's no transform set in bit 0 (the left edge of
      the SB) but bit 0 of mask_4x4_int is set (the edge 4 pixels from the
      left edge needs filtering), it was incorrectly being skipped before.
      This situation only happens on the leftmost edge of the image, as
      the edge at column 0 is intentionally skipped since there aren't
      pixels to the left to read.
      
      Change-Id: Ib2fbbcb40166e90af31b1a0e13b85b68c226cbd3
      858475a0
  28. 19 Jun, 2013 1 commit
    • John Koleszar's avatar
      Add some unaligned test vectors · 639db571
      John Koleszar authored
      Tests resolutions of 8, 10, 16, 18, 32, 34, 64, 66 to exercise the
      border conditions, as well as non-SB aligned sizes.
      
      Change-Id: Ie7c2b7860ac3727e23202042f2e86792652912f8
      639db571
  29. 13 Jun, 2013 1 commit
    • John Koleszar's avatar
      Add vp9 test vectors unit test · 119c9812
      John Koleszar authored
      These files can stand in until we get proper syntax vectors. They
      should provide some additional assurance against inadvertant
      bitstream changes.
      
      Change-Id: I12f6c9a5f054e30df40a7ff1f33145abf7e1d59d
      119c9812
  30. 05 Feb, 2013 1 commit
    • Ronald S. Bultje's avatar
      [WIP] Add column-based tiling. · 1407bdc2
      Ronald S. Bultje authored
      This patch adds column-based tiling. The idea is to make each tile
      independently decodable (after reading the common frame header) and
      also independendly encodable (minus within-frame cost adjustments in
      the RD loop) to speed-up hardware & software en/decoders if they used
      multi-threading. Column-based tiling has the added advantage (over
      other tiling methods) that it minimizes realtime use-case latency,
      since all threads can start encoding data as soon as the first SB-row
      worth of data is available to the encoder.
      
      There is some test code that does random tile ordering in the decoder,
      to confirm that each tile is indeed independently decodable from other
      tiles in the same frame. At tile edges, all contexts assume default
      values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode),
      and motion vector search and ordering do not cross tiles in the same
      frame.
      t log
      
      Tile independence is not maintained between frames ATM, i.e. tile 0 of
      frame 1 is free to use motion vectors that point into any tile of frame
      0. We support 1 (i.e. no tiling), 2 or 4 column-tiles.
      
      The loopfilter crosses tile boundaries. I discussed this briefly with Aki
      and he says that's OK. An in-loop loopfilter would need to do some sync
      between tile threads, but that shouldn't be a big issue.
      
      Resuls: with tiling disabled, we go up slightly because of improved edge
      use in the intra4x4 prediction. With 2 tiles, we lose about ~1% on derf,
      ~0.35% on HD and ~0.55% on STD/HD. With 4 tiles, we lose another ~1.5%
      on derf ~0.77% on HD and ~0.85% on STD/HD. Most of this loss is
      concentrated in the low-bitrate end of clips, and most of it is because
      of the loss of edges at tile boundaries and the resulting loss of intra
      predictors.
      
      TODO:
      - more tiles (perhaps allow row-based tiling also, and max. 8 tiles)?
      - maybe optionally (for EC purposes), motion vectors themselves
        should not cross tile edges, or we should emulate such borders as
        if they were off-frame, to limit error propagation to within one
        tile only. This doesn't have to be the default behaviour but could
        be an optional bitstream flag.
      
      Change-Id: I5951c3a0742a767b20bc9fb5af685d9892c2c96f
      1407bdc2
  31. 23 Jan, 2013 1 commit
    • John Koleszar's avatar
      Support multiple codecs in test infrastructure · 706cafe3
      John Koleszar authored
      This commit starts to convert the tests to a system where the codec
      to be used is provided by a factory object. Currently no tests are
      instantiated for VP9 since they all fail for various reasons, but it
      was verified that they're called and the correct codec is
      instantiated.
      
      Change-Id: Ia7506df2ca3a7651218ba3ca560634f08c9fbdeb
      706cafe3
  32. 22 Oct, 2012 1 commit