1. 09 Dec, 2016 1 commit
  2. 07 Dec, 2016 1 commit
  3. 02 Dec, 2016 1 commit
    • Angie Chiang's avatar
      Turn on convolve_test.cc · b1372893
      Angie Chiang authored
      Fix compile error.
      Make it work when ext_interp/dual_filter experiments on.
      
      Change-Id: Icba532b46856245f962c8e0c67a3159ab7d997d9
      b1372893
  4. 25 Oct, 2016 1 commit
    • Angie Chiang's avatar
      adapt_scan experiment · ed8cd9a9
      Angie Chiang authored
      Performance improvement
              BDRate
      lowres  0.921%
      midres  0.730%
      hdres   1.019%
      
      Change-Id: I26208d6c0531937bff44de505b4ea355c7852802
      ed8cd9a9
  5. 20 Oct, 2016 2 commits
  6. 19 Oct, 2016 1 commit
    • Michael Bebenita's avatar
      Bit accounting. · 6048d052
      Michael Bebenita authored
      This patch adds bit account infrastructure to the bit reader API.
      When configured with --enable-accounting, every bit reader API
      function records the number of bits necessary to decoding a symbol.
      Accounting symbol entries are collected in global accounting data
      structure, that can be used to understand exactly where bits are
      spent (http://aomanalyzer.org). The data structure is cleared and
      reused each frame to reduce memory usage. When configured without
      --enable-accounting, bit accounting does not incur any runtime
      overhead.
      
      All aom_read_xxx functions now have an additional string parameter
      that specifies the symbol name. By default, the ACCT_STR macro is
      used (which expands to __func__). For more precise accounting,
      these should be replaced with more descriptive names.
      
      Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
      6048d052
  7. 13 Oct, 2016 3 commits
  8. 12 Oct, 2016 1 commit
    • Yi Luo's avatar
      Hybrid forward transform 32x32 AVX2 optimization · fed8e1c0
      Yi Luo authored
      - av1_fht32x32 AVX2 function level time reduction ~89% compared to C.
      
      - av1_fht32x32_avx2() on DCT_DCT improves 42.62% over aom_fdct32x32_avx2()
        But function replacement must go with the corresponding inverse txfm.
      
      - No obvious user level time reduction due to 32x32 TX_TYPE selection.
      
      - Zero high 128b YMM to avoid AVX-SSE transition penalties
        (fix 16x16 case).
      
      - Added 32x32 AVX2 unit tests to verify bitexact.
      
      - AVX2 optimization summary:
        On CPU i7-6700, based on 16x16/32x32 fwd txfm optimization results:
        C to AVX2: function level time reduction, ~86-89%.
        SSE2 to AVX2: function level time reduction, ~51%.
      
      Change-Id: Idd0cd8bf066a61c7117140ef15ab6c1f8eb4b036
      fed8e1c0
  9. 10 Oct, 2016 2 commits
  10. 06 Oct, 2016 1 commit
  11. 26 Sep, 2016 1 commit
  12. 21 Sep, 2016 1 commit
  13. 20 Sep, 2016 1 commit
    • Angie Chiang's avatar
      Add update_scan_order · 211f2ac5
      Angie Chiang authored
      augment_prob: embed r + c and coeff_idx info with nonzero probabilities.
      When sorting the nonzero probabilities, if there is a tie, the coefficient
      with smaller r + c will be scanned first
      
      sort_prob: quick sort
      
      dfs_scan: topological sort
      
      update_sort_order: apply quick sort on nonzero probabilities to obtain
      a sort order
      
      update_scan_order: apply topological sort on the nonzero
      probabilities sorting order to guarantee each to-be-scanned
      coefficient's upper and left coefficient will be scanned before the
      to-be-scanned coefficient.
      
      Change-Id: I719b24dc704e9652a7665af93816bacea7078fb0
      211f2ac5
  14. 13 Sep, 2016 1 commit
    • Tom Finegan's avatar
      third_party: Roll libwebm snapshot. · 54a3af61
      Tom Finegan authored
      32d5ac4 mkvmuxerutil: Fix MSVC build.
      6397597 vpxpes_parser: Fix MSVC build.
      784b6fe mkvmuxer: Revert changes to IMkvWriter types.
      030518e webm_info: Fix implicit conversion warnings.
      46d5dee sample_muxer: Fix implicit conversion warnings.
      22b0845 webmts: Fix implicit conversion warnings.
      ef464c2 mkvparser: Fix implicit conversion warnings.
      0e9767e Merge "rename mingw64_toolchain.cmake to mingw-w64_toolchain"
      f47cbd5 cmake: Move cxx flag testing/setup into its own file.
      87443a6 rename mingw64_toolchain.cmake to mingw-w64_toolchain
      2aee04f msvc_runtime.cmake: Check for MSVC, not WIN32.
      eb50da8 Option to write timecode using fixed # of bytes
      c1991fe mkvmuxer: Add missing Segment member initializer.
      10aed96 Android.mk: Make libwebm easier to build downstream.
      5c50e31 Add support for parsing VPx track codec private data.
      4cbdbf1 Fix Android build.
      bb48a3f mkvmuxerutil: remove stray 'int32'
      a1cba34 Support cross compile for windows via mingw64.
      596f5e0 Add webm_info.
      ccf75f6 msvc/muxer_tests: Silence integer conversion warnings.
      2ff2954 msvc/webm2pes: Silence integer and floating point conversion warnings.
      1f24323 msvc/hdr_util: Silence double to float conversion warnings.
      0744563 msvc/vpxpes_parser: Silence integer conversion warning.
      59614b8 msvc/libwebm_util: Fix floating point to int conversion warning.
      6481c24 webvtt: Fix include in vttreader.
      e6ed0f4 msvc/vpxpes2ts: Fix MSVC integer conversion warning.
      da64396 cmake/msvc: Disable C4996 project wide.
      6ef8264 Merge "mkvparser::BlockEntry: inline EOS()"
      3fa6aec mkvparser::BlockEntry: inline EOS()
      26306f9 mkvmuxer: Remove unused Cluster ctor overload.
      0d76597 mkvmuxer: Fix build with GCC 5.3.
      0ba80bc mkvparser/sample: Minor clean up.
      2e0e906 iosbuild.sh: Fix build.
      918440a Makefile.unix: allow CXXFLAGS to be easily overridden
      4ff5785 cmake: Add C++11 move ctor and member initializer tests.
      402ef4d cmake: remove argc and argv from C++11 test main fns.
      cbe5c40 Restore original namespaces for mkvmuxer and mkvparser.
      504e0f2 Mass file extension update.
      79cb980 Android.mk: Update source file locations.
      01db4c2 webmids: Move to common/ sub dir.
      235ce59 mkvparser: Explicitly reference internal sources in includes.
      f578419 mkvmuxer: Move sources to mkvmuxer/ sub dir.
      5f1065e webvtt: Organize and clean up webvtt support.
      7abe8ac cmake: Add missing dumpvtt target.
      f2f87e2 Makefile.unix: Tidy things up.
      12f6dc3 Use <stdint.h> types instead of custom typedefs.
      0407360 mkvmuxer: Write last block in each Cluster with Duration
      008aa63 mkvparser: move to mkvparser sub dir.
      e64bf75 Namespace reorg: Make everything a child of libwebm.
      5fdb386 cmake: move c++11 checks into build/cxx11_tests.cmake.
      3672488 Copy reference block values in Frame::CopyFrom()
      91ca780 reapply clang-format
      8d34215 Merge "Clean up AddAudioTrack in muxer_tests"
      90861d4 Clean up AddAudioTrack in muxer_tests
      a9dfb3d Un-ignore webm files in testdata
      c5b76d8 Extract PES parser from WebM2Pes tests.
      16524e8 cmake: Add include-what-you-use integration.
      7015af5 iwyu/vpxpes2ts: Update includes.
      c1d6a70 iwyu/webm2pes: Update includes.
      110e797 iwyu/libwebm_util: Update includes.
      44e31fb iwyu/webm2pes_tests: Update includes.
      d919f96 iwyu/mkvwriter: Update includes.
      75790e1 iwyu/mkvparser: Update includes.
      5f673ca iwyu/webm2pes_main: Update includes.
      747244a iwyu/vpxpes2ts_main: Update includes.
      94c985f iwyu/mkvmuxerutil: Update includes.
      c365630 iwyu/mkvmuxer: Update includes.
      b15b8ef iwyu/file_util: Update includes.
      3dfba95 iwyu/hdr_util: Update includes.
      baba8b1 iwyu/vttdemux: Update includes.
      3212ec1 iwyu/webvttparser: Update includes.
      b6d8d92 iwyu/sample_muxer_metadata: Update includes.
      a9a1a01 iwyu/sample_muxer: Update includes.
      e020ffd iwyu/sample: Update includes.
      18834bc iwyu/parser_tests: Update includes.
      9c00ae3 iwyu/muxer_tests: Update includes.
      41a17eb iwyu/test_util: Update includes
      b6174be muxer_tests: Fix windows brokenness.
      e092515 file_util: Remove tmpnam() usage in MSVC.
      b9dc4ac test_util: Don't pass NULL to std::string() in GetTestDataDir().
      1f74651 webmts: Move PES/TS sources to m2ts sub directory.
      1b895e9 Rename libwebm_utils to libwebm_util.
      2fabcd3 sample_muxer: Replace std::tmpnam() with libwebm::GetTempFileName().
      e6a0033 Add file_util.
      87f9bea Move hdr_util to common.
      1f64aaf cmake: Expand C++11 tests.
      6dc81c1 muxer_tests: Die immediately when unable to prep for file writing.
      521ce4d webm2pes: Fix type limit warning.
      64c4163 vpxpes2ts: Fix sign-compare and type-limits warnings.
      741ba68 muxer_tests: Replace std::tmpnam() with GetTempFileName().
      6159e83 Merge "test_util: add missing include for close()"
      ff81c74 parser_tests: Fix sign compare warnings.
      163f57d test_util: add missing include for close()
      7c89eb5 Merge "test_util: Remove tmpnam() usage on non-MSVC targets."
      c4b8686 Merge "webm2pes_tests: Fix sign compare warnings."
      9c9f546 Merge "muxer_tests: Fix sign compare warnings."
      0fbefef webm2pes: Silence sign compare warnings.
      599e4e8 cmake: Silence clang/gcc deprecation warnings.
      82f376f test_util: Remove tmpnam() usage on non-MSVC targets.
      4d31d6b webm2pes_tests: Fix sign compare warnings.
      07ed7e0 muxer_tests: Fix sign compare warnings.
      ae2fbfe parser_tests: Silence sign compare warning.
      f488528 libwebm_utils: Silence sign compare warning.
      777247b Add C++11 detection to cmake file.
      9b89187 Add missing include to libwebm_utils.h.
      421874a Merge "mkvmuxer: Fix GCC build."
      dd6ab35 Set the mastering metadata on the muxers colour
      8b61ef5 mkvmuxer: Fix GCC build.
      353b050 Add hdr_util.
      c92e080 mkvmuxer: Use kValueNotPresent in Colour/MasteringMetadata.
      2d09128 Colour element: TransferFunction renamed to TransferCharacteristics.
      f2fc28e Colour element: Matrix renamed to MatrixCoefficients.
      e0b1135 cmake: Minor CMakeLists.txt refactor.
      1e1872b Revert change from auto_ptr to unique_ptr in sample code.
      d7fc382 Track updates to the proposed Matroska Colour spec.
      99981ee sample(mkvparser): Output Colour element when present.
      375e416 mkvmuxer: Fix Colour element support.
      eaeca34 mkvmuxer: Fix bits per channel in the colour element.
      1dab7f3 mkvparser: Avoid crash when encountering a Colour element.
      a1517aa sample_muxer: copy the Colour element.
      ea9dd94 Merge "webm2pes: Fix tests."
      8635c5b Merge "mkvparser: Make omitted values detectable in the Colour element."
      ae4ae7e mkvparser: Make omitted values detectable in the Colour element.
      8c8cba6 webm2pes: Fix tests.
      a281a22 mkvmuxer: Add support for the Colour element and its children.
      41a9147 sample_muxer: clang-format include order fix.
      939a64d Signal E_BUFFER_NOT_FULL in EBMLHeader::Parse
      fb1406e mkvparser: Add support for the Colour element and its children.
      22bfdf7 Merge "parser_tests: Add validation of cues."
      b873000 parser_tests: Add validation of cues.
      799891e Update .gitignore to include some new binaries
      e051c60 Merge "Update muxer test gold files"
      b81d5f0 Update muxer test gold files
      48b1e9a mkvparser: clang format run
      93c4690 webm2pes: Add PES packet parsing tests.
      65ca38f Merge "test_util: Fix gcc build."
      520ca6c Merge "parser_tests: Fix gcc build."
      37a38ca test_util: Fix gcc build.
      ee0ebba parser_tests: Fix gcc build.
      c32f970 Replace auto_ptr usage with unique_ptr.
      e569ab0 webm2pes/ts: Fix gcc build.
      2e55d6c Merge "add bitcode embedding support for ios"
      0cfb2dc add bitcode embedding support for ios
      bb8cefd webm2ts: Converts WebM VPx video to a MPEG TS.
      453bf44 webm2pes: Begin addition of tests.
      9299bbb libwebm: Googletest integration.
      3bec1ba Merge changes I7bcb5b3e,I8ce733be,I98a928ff,I71910f24
      5c83bbe Fix ParseElementHeader to support 0 payload elements
      be35869 libwebm_utils: Add FileDeleter.
      d6db1e1 webm2pes: Add a WebM parser init method.
      aa3593e webm2pes: Rename Convert to ConvertToFile().
      e8fca12 webm2pes: Fix super frame splitting.
      3cb96b6 webm2pes: Move main() and helper functions into their own files.
      021432b webm2pes: Fix the linux build.
      82ac5fc Remove RELEASE.TXT.
      852e173 webm2pes: Split super frames and packetize large frames.
      faf85c2 webm2pes: Refactor header/optional header writing.
      7c19266 Add Webm2Pes.
      01fdee4 mkvmuxer: Disallow AddTrack() after Tracks element is output.
      1ad314e mkvparser: EBMLHeader::Parse: remove dead init
      
      Change-Id: I542bd5e34586f29d4d15771ec4bd728defe0769e
      54a3af61
  15. 09 Sep, 2016 1 commit
  16. 07 Sep, 2016 1 commit
    • Michael Bebenita's avatar
      Bit accounting. · e6b12944
      Michael Bebenita authored
      This patch adds bit account infrastructure to the bit reader API.
      When configured with --enable-accounting, every bit reader API
      function records the number of bits necessary to decoding a symbol.
      Accounting symbol entries are collected in global accounting data
      structure, that can be used to understand exactly where bits are
      spent (http://aomanalyzer.org). The data structure is cleared and
      reused each frame to reduce memory usage. When configured without
      --enable-accounting, bit accounting does not incur any runtime
      overhead.
      
      All aom_read_xxx functions now have an additional string parameter
      that specifies the symbol name. By default, the ACCT_STR macro is
      used (which expands to __func__). For more precise accounting,
      these should be replaced with more descriptive names.
      
      Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
      e6b12944
  17. 01 Sep, 2016 3 commits
  18. 16 Aug, 2016 1 commit
    • Yaowu Xu's avatar
      Port dering experiment from aom · 253c001f
      Yaowu Xu authored
      Mannually cherry-picked:
      15791332 Use OD_DIVU for small divisions in temporal_filter.
      03122298 Replace divides by small values with multiplies.
      9c48eec7 Removing divisions from od_dir_find8()
      0950ed82 Merge "Port active map / cyclic refresh fixes to vp10."
      efefdad7 Port active map / cyclic refresh fixes to vp10.
      1eaf748c Port switch to 9-bit rate cost to aom.
      0b1606e7 Only build deringing code when --enable-dering.
      e2511e15 Deringing cleanup: don't hardcode the number of levels
      8fe5c5d6 Rename dering_in to od_dering_in to sync with Daala
      4eb1380d Makes second filters for 45-degree directions horizontal
      7f4c3f58 Removes the superblock variance contribution to the threshold
      3dc56f93 Simplifying arithmetic by using multiply+shift
      cf2aaba9 Return 0 explicitly for OD_ILOG(0).
      49ca22aa Use the Daala implementation of OD_ILOG().
      85187243 Fix compiler warning in od_dering.c.
      485d6a69 Prevent multiple inclusion of odintrin.h.
      51b7a998 Adds the Daala deringing filter as experimental
      
      Note that a few of the changes were already in libvpx codebse.
      
      Change-Id: I1c32ee7694e5ad22c98b06ff97737cd792cd88ae
      253c001f
  19. 10 Aug, 2016 1 commit
    • James Zern's avatar
      remove SVC · cc73e1fc
      James Zern authored
      spatial/temporal scalability are not supported in VP10 currently.
      + remove the unused vp10/encoder/skin_detection.[hc]
      
      this also enables DatarateTestLarge for VP10 which passes with no
      experiments enabled. these were removed previously when only the SVC
      tests should have been:
      134710af Disable tests not applicable to VP10
      
      Change-Id: I9ee7a0dd5ad3d8cc1e8fd5f0a90260fa43da387c
      cc73e1fc
  20. 08 Aug, 2016 1 commit
    • Yi Luo's avatar
      Optimization EXT_INTRA's filtered intra predictor (SSE4.1) · 57c4711b
      Yi Luo authored
      - Add unit tests to verify the bit-exact result.
      - In speed test, function speed (for each mode/tx_size)
        improves about 23%~35%.
      - On E5-2680, park_joy_1080p, 10 frames, --kf-max-dist=1,
        encoding time improves about 1%~2%.
      
      Change-Id: Id89f313d44eea562c02e775a6253dc4df7e046a9
      57c4711b
  21. 03 Aug, 2016 1 commit
  22. 01 Aug, 2016 1 commit
    • Yue Chen's avatar
      Add weighted motion search for obmc predictor · 72d3ba8a
      Yue Chen authored
      Also port SIMD optimization of weighted sad/variance functions to
      av1.
      Coding gain improvement: 0.339/0.413/0.328 (lowres/midres/hdres)
      Current coding gain: 2.437/2.428/2.294
      Encoding time overhead: 17% (soccer_cif), 30% (ped_1080p25), was
      12% and 18% without motion search
      
      Change-Id: I101d6ce729f769853756edc8ced6f3a2b8d8f824
      72d3ba8a
  23. 29 Jul, 2016 2 commits
  24. 28 Jul, 2016 1 commit
  25. 26 Jul, 2016 1 commit
    • Yue Chen's avatar
      Port SIMD optimization for obmc blending functions to av1 · 2478bed5
      Yue Chen authored
      SIMD optimization for 1d blending functions in obmc mode, and some
      code refactoring and cleanup.
      
      (ped_1080p25.y4m, 150 frame, 2000 tb)
      Encoding time overhead: +18.8% -> +18.1%
      Decoding time overhead: +21.3% -> +8.7%
      Change-Id: I9d856c32136e7e0e6e24ab5520ef901d7b1ee9c8
      2478bed5
  26. 22 Jul, 2016 1 commit
  27. 20 Jul, 2016 1 commit
    • Yi Luo's avatar
      HBD fast path quantization speed improvement · b2663a8a
      Yi Luo authored
      - HBD encoder speed improvement (SSE4.1):
        Enable CONFIG_VP9_HIGHBITDEPTH, on Xeon E5-2680,
        50 frames, park_joy_1080p, 12-bit,
        Encoding time reduces from 4846481 to 4177471 (ms)
      - Add unit test to verify bit-exact and EOB calculation
      
      Change-Id: I08e8ef3549ddad5ab36d86e78557df3b288537ea
      b2663a8a
  28. 13 Jul, 2016 1 commit
  29. 11 Jul, 2016 1 commit
    • Geza Lore's avatar
      Improve vpx_blend_* functions. · bfa59b4a
      Geza Lore authored
      - Made source buffers pointers to const.
      - Renamed vpx_blend_mask6b to vpx_blend_a64_mask. This is more
        indicative that the function does alpha blending. The 6, or 6b
        suffix was misleading, as the max mask value (64) does not fit into
        6 bits.
      - Added VPX_BLEND_* macros to use when needing to blend scalars.
      - Use VPX_BLEND_A256 in combine_interintra to be more explicit about
        the operation being done.
      - Added versions of vpx_blend_a64_* which take 1D horizontal/vertical
        masks directly and apply them to all rows/columns
        (vpx_blend_a64_hmask and vpx_blend_a64_vmask). The SSE4.1 optimzied
        horizontal version now falls back on the 2D version. This can be
        improved upon if it show up high enough in a profile.
      - All vpx_blend_a64_* functions now support block sizes down to 1x1
        (ie: a single pixel). This is for usage convenience. The SSE4.1
        optimized versions fall back on the C implementation if
        w <= 2 or h <= 2. This can again be improved if it becomes hot code.
      
      Change-Id: I13ab3835146ffafe3e1d74d8e9cf64a5abe4144d
      bfa59b4a
  30. 08 Jul, 2016 1 commit
  31. 07 Jul, 2016 1 commit
    • Geza Lore's avatar
      Remove various testing utilities. · e6f8c17a
      Geza Lore authored
      test/assertion_helpers.h
      test/randomise.{cc,h}
      test/snapshot.h
      
      Modfiy blend_mask6_test.cc not to rely on these.
      
      Change-Id: I88b8933fe0a729a606797e5cd421795a544c612d
      e6f8c17a
  32. 06 Jul, 2016 2 commits