1. 24 Jan, 2018 1 commit
  2. 23 Jan, 2018 1 commit
    • Imdad Sardharwalla's avatar
      Don't calculate chroma data in monochrome mode · af8e2648
      Imdad Sardharwalla authored
      Encoder: Prior to this patch, some chroma data was calculated and
      later discarded when in monochrome mode. This patch ensures that
      the chroma planes are left uninitialised and that chroma
      calculations are not performed.
      
      Decoder: Prior to this patch, some chroma calculations were still
      being performed in monochrome mode (e.g. loop filtering). This
      patch ensures that calculations are only performed on the y
      plane, with the chroma planes being set to a constant.
      
      Change-Id: I394c0c9fc50f884e76a65e6131bd6598b8b21b10
      af8e2648
  3. 16 Jan, 2018 1 commit
  4. 11 Jan, 2018 1 commit
  5. 10 Jan, 2018 1 commit
  6. 27 Dec, 2017 1 commit
  7. 15 Dec, 2017 1 commit
    • Johann's avatar
      add copyright to rtcd files · aecbba6d
      Johann authored
      Allows them to pass the license check in chromium.
      
      Based on libvpx e4b3f03
      
      BUG=chromium:795297
      
      Change-Id: I2bb49ecb62f20d7bc5093a1732b6a8228ef5c87f
      aecbba6d
  8. 02 Nov, 2017 1 commit
    • Pavel Frolov's avatar
      Increase border when CONFIG_EXT_PARTITION==1 · 902000d8
      Pavel Frolov authored
      Before an increased border of 288 pixels was used when both
      CONFIG_EXT_PARTITION and CONFIG_FRAME_SUPERRES were enabled.
      
      However increased border is also required when only
      CONFIG_EXT_PARTITION is enabled.
      
      For example when:
      1) current frame is 2x smaller than reference frames
      2) block size is 128x128
      
      BUG=aomedia:991
      
      Change-Id: I09dfddfdf6bd0b0efde2556acb924bb563b6da2f
      902000d8
  9. 30 Oct, 2017 1 commit
  10. 12 Oct, 2017 1 commit
  11. 28 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Make yv12_buffer_config more uniform · 82529d22
      Rupert Swarbrick authored
      This patch slightly reorders the fields in yv12_buffer_config and then
      uses anonymous unions in order to make it possible to write code that
      iterates uniformly over planes.
      
      The patch also ports some code (mostly in yv12extend.c and
      aom_scale.c) to show how this can make things more concise.
      
      This should make no difference to the coded results. I think it's
      unlikely to have any significant performance impact (the reordered
      fields in a yv12_buffer_config only come to 17*4 = 68 bytes in total,
      so almost fit in a normal sized cache line).
      
      Change-Id: Iebb46344500b9df82915f34cfd193e189d712062
      82529d22
  12. 27 Sep, 2017 1 commit
  13. 16 Sep, 2017 1 commit
    • Tom Finegan's avatar
      Fix CMake mips32 build with DSPR2 enabled. · db724cf0
      Tom Finegan authored
      - Add aom_scale dspr2 sources to the correct target (aom).
      - Fix an inverted high bit depth condition.
      - Remove claims that dspr2 variants of av1_iht16x16_256_add_dspr2,
        av1_iht8x8_64_add_dspr2, av1_iht4x4_16_add_dspr2 from
        av1_rtcd_defs.pl exist in low bit depth configs.
      
      Change-Id: Ibdd42e475b81c2491f02ba10ca0d461f7ff15bc5
      db724cf0
  14. 18 Aug, 2017 1 commit
    • Tom Finegan's avatar
      Make CONFIG_COLORSPACE_HEADERS public API changes unconditional. · 01d43e1f
      Tom Finegan authored
      Avoid changing the public API based on an experiment flag:
      
      - Remove aom_config.h include from aom_image.h.
      - Unconditionally include the existing API additions.
      - Add some missing doc comments (silences Doxygen warnings).
      - Return an error when using ctrl flags that require
        CONFIG_COLORSPACE_HEADERS when it's not enabled.
      - Move colorspace_headers to the correct section of configure.
      - Move CONFIG_COLORSPACE_HEADERS to the correct section of
        aom_config_defaults.cmake.
      - clang-format style check appeasement
      
      Change-Id: I7b5d72c6f9f1a5561409d7813ba59180d98d8805
      01d43e1f
  15. 03 Aug, 2017 1 commit
    • Yaowu Xu's avatar
      Prevent redundant down converting operation · 9b0f7038
      Yaowu Xu authored
      Adds a flag "buf_8bit_valid" to indicate if buf_8bit is synchronized
      with HBD buffer, the flag is then used to avoid possible redundant
      operation in down conversion the hbd buffer to buf_8bit.
      
      Also this commit also moves the operation to prepare source frame for
      coding outside of recode loop to avoid duplicate operations there.
      
      Change-Id: I67a1eb408b75bb734bd8a16fe6ffbd58c93a230f
      9b0f7038
  16. 31 Jul, 2017 1 commit
    • Yaowu Xu's avatar
      Move buffer allocation to aom_scale · 43778572
      Yaowu Xu authored
      This commit moves the allocation of the 8bit frame buffer used in
      global motion estimation to where other frame buffers are allocated.
      
      Change-Id: Id3c0a0cb33dab7225629ce6f2d7904767f647d4c
      43778572
  17. 20 Jun, 2017 2 commits
    • Tom Finegan's avatar
      Build static libaom without internal deps in CMake. · 78516fca
      Tom Finegan authored
      Change the internal lib targets so that external apps
      need link only libaom instead of all internal library
      targets and libaom.
      
      BUG=aomedia:76,aomedia:609
      
      Change-Id: I38862fcd90cb585300b6b23e8558f78a1934750f
      78516fca
    • Tom Finegan's avatar
      Add shared library support to the CMake build. · 84f2d796
      Tom Finegan authored
      This is enabled via:
      $ cmake path/to/aom -DBUILD_SHARED_LIBS=1
      
      Currently supports only Linux and MacOS targets. Symbol visibility
      is handled by exports.cmake and its helpers exports_sources.cmake
      and generate_exports.cmake.
      
      Some sweeping changes were required to properly support shared libs
      and control symbol visibility:
      
      - Object libraries are always linked privately into static
        libraries.
      - Static libraries are always linked privately into eachother
        in the many cases where the CMake build merges multiple library
        targets.
      - aom_dsp.cmake now links all its targets into the aom_dsp static
        library target, and privately links aom_dsp into the aom target.
      - av1.cmake now links all its targets into the aom_av1 static library
        target, and privately links in aom_dsp and aom_scale as well. It
        then privately links aom_av1 into the aom target.
      - The aom_mem, aom_ports, aom_scale, and aom_util targets are now
        static libs that are privately linked into the aom target.
      - In CMakeLists.txt libyuv and libwebm are now privately linked into
        app targets.
      - The ASM and intrinsic library functions in aom_optimization.cmake
        now both require a dependent target argument. This facilitates the
        changes noted above regarding new privately linked static library
        targets for ASM and intrinsics sources.
      
      BUG=aomedia:76,aomedia:556
      
      Change-Id: I4892059880c5de0f479da2e9c21d8ba2fa7390c3
      84f2d796
  18. 14 Jun, 2017 1 commit
  19. 02 Jun, 2017 1 commit
  20. 13 Apr, 2017 1 commit
  21. 12 Apr, 2017 1 commit
  22. 31 Mar, 2017 1 commit
    • Urvang Joshi's avatar
      RTCD defs: Remove empty specialize statements once and for all. · 5ddac0aa
      Urvang Joshi authored
      A similar cleanup happened before, but the empty statements have since
      reappeared. I added a check in 'specialize' subroutine to die whenever
      such an empty specialize call is found, so that config+make would fail.
      
      Change-Id: I300ca0f0b077c0aeca8096d6460d8fb1c364d9b9
      5ddac0aa
  23. 03 Mar, 2017 1 commit
  24. 06 Jan, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add UV wiener loop restoration · a43a2d98
      Debargha Mukherjee authored
      Enables Wiener based loop restoration only for the UV
      frames. The selfguided and domaintranform filters do not
      work very well for UV components, hence they are disabled.
      For each UV frame a single set of wiener parameters are
      sent. They are applied tile-wise, but all tiles use the
      same parameters.
      
      BDRATE (Global PSNR) results:
      -----------------------------
      lowres: -1.266% (up from -0.666%, good improvement)
      midres: -1.815% (up from -1.792%, tiny improvement)
      
      Tiling on UV components will be explored subsequently.
      
      Change-Id: Ib5be93121c4e88e05edf3c36c46488df3cfcd1e2
      a43a2d98
  25. 16 Dec, 2016 1 commit
  26. 16 Nov, 2016 1 commit
    • David Barker's avatar
      Enable global motion in high bit depth mode · 557ce7b5
      David Barker authored
      The global motion detection only works on 8-bit buffers,
      so any frames using 16-bit buffers are now down-converted
      to 8 bits when necessary.
      
      Change-Id: I4f88f4ccd449e73a2292cda70fe573dc49fcb8a0
      557ce7b5
  27. 25 Oct, 2016 2 commits
  28. 24 Oct, 2016 1 commit
  29. 20 Oct, 2016 1 commit
    • Urvang Joshi's avatar
      Rewrite some loops to avoid -Wunsafe-loop-optimizations warnings. · b42827f6
      Urvang Joshi authored
      For example, loops of the form:
      "for (i = 0; i < 1 + max_value; ++i) ..." or
      "for (i = 0; i <= max_value; ++i) ..." are possibly infinite loops,
      theoretically speaking (even if practically, they aren't).
      So, compiler cannot optimize those loops.
      
      When possible, I rewrote such loops to be finite even theoretically.
      
      Cherry-picked from aomedia/master: 4e69284b
      
      Change-Id: Ied47a24833b689c0ec011f8645cf1c01856f7c59
      b42827f6
  30. 30 Sep, 2016 1 commit
  31. 06 Sep, 2016 1 commit
    • Urvang Joshi's avatar
      Rewrite some loops to avoid -Wunsafe-loop-optimizations warnings. · 4e69284b
      Urvang Joshi authored
      For example, loops of the form:
      "for (i = 0; i < 1 + max_value; ++i) ..." or
      "for (i = 0; i <= max_value; ++i) ..." are possibly infinite loops,
      theoretically speaking (even if practically, they aren't).
      So, compiler cannot optimize those loops.
      
      When possible, I rewrote such loops to be finite even theoretically.
      
      Change-Id: Ied47a24833b689c0ec011f8645cf1c01856f7c59
      4e69284b
  32. 02 Sep, 2016 3 commits
  33. 01 Sep, 2016 2 commits
  34. 16 Aug, 2016 1 commit
  35. 21 Jun, 2016 1 commit
    • Yunqing Wang's avatar
      Do sub-pixel motion search in up-sampled reference frames · e02752b0
      Yunqing Wang authored
      Up-sampled the reference frames to 8 times in each dimension using the
      8-tap interpolation filter. In sub-pixel motion search, use the up-sampled
      reference frames to find the best matching blocks to increase the motion
      search precision. This is enabled as a speed feature for speed 0 and
      speed 1, and this is encoder-only improvement.
      
      Overall PSNR: -1.456%(lowres); -0.430(hdres)
      SSIM: -1.687(lowres); -0.551(hdres)
      
      Change-Id: I2085d87e41f6b91d0221dc11dc7ffd003075ba2e
      e02752b0