1. 03 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Move loop restoration coefficients to within the frame · 6c545216
      Rupert Swarbrick authored
      Rather than encoding the loop restoration coefficients at the start of
      the frame header, this patch moves them to occur just after certain
      top-level superblocks.
      You might hope that we could just encode coefficients on top-level
      superblocks where the top-left corner of the superblock was also the
      top-left corner of the loop restoration tile. Unfortunately, this
      can't work with the superres experiment, where the loop restoration
      tiles don't necessarily line up with the superblocks. Indeed, in
      general there can be multiple different loop restoration coefficients
      that apply in a given top-level superblock. This patch defines a
      function, av1_loop_restoration_corners_in_sb, which yields the
      rectangle [rrow0, rrow1) x [rcol0, rcol1) of loop restoration tiles
      whose top left corners lie in this top-level superblock.
      The total file size should be unchanged by this patch: the bits have
      just been moved from the frame header and spread out among the rest of
      the frame.
      Change-Id: Icf43b0560964a63dea0d2cd801313f04139188d7
  2. 02 Sep, 2017 3 commits
  3. 01 Sep, 2017 8 commits
    • Ryan's avatar
      this update fixes the bug described in bug report 723 · a97c897b
      Ryan authored
      link is https://bugs.chromium.org/p/aomedia/issues/detail?id=723
      Change-Id: Iece3abcd88de69ab410674615965687abb5e4579
    • Tom Finegan's avatar
      Fix CMake MSVC generation. · 00b4df73
      Tom Finegan authored
      Move the add_dependencies() call for aom_pc to within
      the if(MSVC) block, where it belongs.
      Change-Id: If25a6c83a981afc6d900e89e31db528af13b9e93
    • Tom Finegan's avatar
      Fix test/hiprec_convolve_test.cc when SSE2 is unavailable. · d72ea329
      Tom Finegan authored
      Change-Id: I934a03bb5da1e266291ff66a056ff7306bd9e01f
    • Jingning Han's avatar
      Fix zero block rate estimate in lv-map · e9814915
      Jingning Han authored
      Derive the rate cost from the probability model sets effectively
      in use.
      Change-Id: Ief1851a32ea7a3a52e82f52050cdc3dae6c72287
    • David Barker's avatar
      Miscellaneous fixes for var-tx · 16c64e33
      David Barker authored
      Lots of small bug fixes, mainly around the transform size coding:
      * The loop filter was accidentally using the non-subsampled
        block size for the V plane, due to comparing a plane index
        (0, 1, or 2) against PLANE_TYPE_UV (== 1)
      * We allowed an initial update of the transform partition probabilities
        even on frames where we know they will never be used
        (because tx_mode != TX_MODE_SELECT).
        Further, these probabilities would not be reverted at the end
        of the frame, leading to the probability delta persisting across frames.
        Change this to behave more like the non-var-tx transform size coding,
        where probability deltas are only coded for frames with
        tx_mode == TX_MODE_SELECT, and the deltas only apply for one frame.
      * Fix decoder for the case where the video as a whole isn't lossless,
        and we have tx_mode == TX_MODE_SELECT, but the current segment
        *is* lossless.
        Note that the encoder already does the right thing in this case.
      * Don't allow the transform splitting to recurse "below" 4x4.
        This is really just a refactor, but means we can increase the
        maximum depth when subdividing rectangular transforms if we
        want to, whereas the previous code would have needed special cases
        for 4x8 and 8x4 transforms.
      * Finally, when we hit the maximum splitting depth, don't update
        the counts as if we had coded a 'no split' symbol.
      Change-Id: Iaebdacc9de81d2e93d3c49241e719bbc02e32682
    • Rupert Swarbrick's avatar
      Encode loop restoration coefficients per tile · 09b5b168
      Rupert Swarbrick authored
      This is a baby-step towards encoding the coefficients at the start of
      superblocks at the top-left of loop restoration tiles. Note that this
      patch causes us to reset "wiener_info" and "sgrproj_info" at each tile
      boundary, which will cause a performance drop.
      This is necessary because, in order for tiles to be processed in
      parallel, we cannot delta-encode coefficients across tile boundaries
      if the coefficients are signalled within tiles. We could probably do
      better than the current patch by, say, delta-encoding against previous
      This patch also fixes up the costing in pickrst.c to match
      Change-Id: I5b8b91d63aaf49627cde40219c31c0ac776dfd38
    • James Zern's avatar
      cmake: drop HAVE_EDSP · 43fb4f57
      James Zern authored
      it was removed in:
      12a27c01 Remove armv6 references from the build system.
      Change-Id: I485548367c5cd8b1a94e4f875ebf9badcfddf344
    • James Zern's avatar
      cmake: set default CMAKE_BUILD_TYPE to Release · db0cc5b2
      James Zern authored
      this matches configure
      Change-Id: I95f6f073b9dba1ae2c2b48b6c89a762277777dfe
  4. 31 Aug, 2017 16 commits
  5. 30 Aug, 2017 9 commits
    • Yunqing Wang's avatar
      Refactor setup_ref_mv_list · d797ea9e
      Yunqing Wang authored
      This patch eliminates the is_inside() checking for each neighouring
      block in scan_row_mbmi() and scan_col_mbmi(). Instead, in
      setup_ref_mv_list(), find maximum above row_offset and left col_offset
      for current block, and use them to decide which above rows and left
      columns to search on. This patch doesn't change bitstream. No
      noticeable speedup is seen.
      Change-Id: Ic4ae74412605d86e9e675f86d23de3a69c04e8f3
    • Yushin Cho's avatar
      Delete daala-dist and cdef-dist experiments in configure · 6e439653
      Yushin Cho authored
      Since those two experiments have been merged into the dist-8x8 experiment and
      can be turned on by 'aomenc' ccommand line option,
      Change-Id: If21542a6868147538f5c3be6ad49368579db4b53
    • Yi Luo's avatar
      Highbd parallel_deblocking sse2 optimization · 6f5569f3
      Yi Luo authored
      - Decoder speed improves ~13.7% (baseline + parallel_deblocking).
      - Highbd loopfilter AVX2 version works when this experiment is
      Change-Id: I5d56b137a1d52236a4735656c370d57ef71ae043
    • Tom Finegan's avatar
      Avoid download of unnecessary test files in the CMake build. · 0af2732e
      Tom Finegan authored
      Follow the same rules as configure: obey CONFIG_DECODE_PERF_TESTS
      and CONFIG_ENCODE_PREF_TESTS when building the file lists.
      Change-Id: I915c528ce6e14e050da1f1810f6ed4c43d136231
    • Tom Finegan's avatar
      Move rtcd target setup function to aom_optimization.cmake. · 515aca9f
      Tom Finegan authored
      Addresses a TODO. Also clean up some minor formatting nits.
      Change-Id: Iced790a214cfdd703eef21f2a9976f8a07517897
    • Tom Finegan's avatar
      Keep version info up to date in the CMake build. · 872e5856
      Tom Finegan authored
      Add commands and targets for generating aom_version.h and
      aom.pc when necessary.
      Change-Id: Idc4d8203f950f73f151cbe32806d188bc96a0ee4
    • Luc Trudeau's avatar
      [CFL] Fixed negative rounding in scaled_luma · 9c0e9eac
      Luc Trudeau authored
      Since the scaled luma can be negative, ROUND_POWER_OF_TWO_SIGNED must be used.
      This changes the behavior from rounding toward -infinity to rounding towards 0.
      Results for Subset1 (compared with 35545dd5 with CfL enabled)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      0.0082 | -0.1061 | -0.0119 |  -0.0126 | -0.0011 | -0.0121 |     0.0094
      Change-Id: Ie7258a17a199368339d4794fba6b5916e607c95b
    • Sarah Parker's avatar
      Add cdfs and mask buffers for mrc-tx · 5c6744b5
      Sarah Parker authored
      These are not currently being used for anything so there is
      no impact on performance.
      Change-Id: Ida4e0afcc10bee665f8daa379314cd18b3a4ea28
    • Tom Finegan's avatar
      Fix CMake build with CONFIG_AV1_ENCODER=0. · cbf4fa13
      Tom Finegan authored
      Change-Id: I1ec236ae5010938f60d9f2b72e03f2db31eaf653
  6. 29 Aug, 2017 3 commits
    • James Zern's avatar
      cmake: sync experiment flags with configure · bd69b7a7
      James Zern authored
      Change-Id: Idb1b164c6de66d93571abe4374c464b45702dba9
    • Cheng Chen's avatar
      Remove duplicate code in #if branch · 28deb544
      Cheng Chen authored
      Since 3ab24050, contents in #if #else branch are identical.
      Change-Id: I763ea765f5b2a69625894a5c611db2c1987e4ccb
    • David Barker's avatar
      Fix encoder when loopfiltering-across-tiles is enabled · c1018adb
      David Barker authored
      Patch 5c06a646 pulled the "if (!cm->loopfilter_across_tiles_enabled)"
      check out of av1_setup_across_tile_boundary_info, intending for the
      condition to be checked in the caller instead. The check was added
      to the decoder but not to the encoder, leading to encode/decode
      mismatches when the flag was set.
      Fix this by correctly applying the change to the encoder as well.
      Change-Id: I61182bd717e2cb84228091fb439270dce153705e