1. 20 Jul, 2017 3 commits
    • Jingning Han's avatar
      Make maximum transform coding unit 64x64 for inter blocks · c2b797fa
      Jingning Han authored
      This commit makes the maximum transform coefficient coding unit
      64x64 for inter coded blocks. It allows the hardware design to
      reuse the existing 64x64 coding pipeline for 128x128 level blocks.
      Change-Id: Ibadd59cf7e652984456cac621ec2294d48cf4507
    • Yushin Cho's avatar
      New experiment DIST_8x8 · b7b60c57
      Yushin Cho authored
      A framework for computing a distortion at 8x8 luma block level
      during RDO-based mode decision search. New 8x8 distortion metric can
      be plugged in by way of this tool.
      Existing daala_dist now uses this experiment as well.
      Other possible applications that can make use of this experiment would be
      a distortion meric, which should apply at 8x8 pixels such as PSNR-HVS, SSIM, or etc.
      A rd_cost for final coding mode decision for a super block is
      computed for a partition size 8x8 or larger. For a block larger than 8x8,
      a distortion of each 8x8 block is independently computed then summed up.
      The rd_cost for 8x8 block with new 8x8 distortion metric is computed
      only when the mode decision of its sub8x8 blocks are completed.
      However, MSE distortion metric is used with sub8x8 mode decision. Thus,
      early termination is also determined with the MSE based rd_cost.
      Because the best rd_cost (i.e. the reference rd_cost) during sub8x8 prediction
      or sub8x8 tx is based on new 8x8 distortion while each sub8x8 uses MSE,
      the existing early termination cannot be used (And this can be the one of possible reason
      for the BD-Rate change with this revision).
      For a sub8x8 prediction, prediction mode for each sub8x8 block of a 8x8 block is
      decided with existing MSE and then av1_dist_8x8() is applied to the 8x8 pixels.
      (There is also av1_dist_8x8_diff, which can input diff signal directly)
      For a sub8x8 tx in a block larger than 8x8, instead of computing MSE distortion for
      each sub8x8 tx block, we wait until all sub8x8 tx blocks are encoded before av1_dist_8x8()
      is applied to 8x8 pixels.
      Sub8x8 prediction and transformas were most of tricky parts in this change.
      Two kind of distortions, for a) predicted pixels and b) decoded pixels
      (i.e. predicted + possible reconstructed residue), are always computed during RDO.
      In order to access those two signals a) and b) for a 8x8 block after
      its sub8x8 mode decision is finished, a) and b) need be properly stored for later retrieval.
      The CB4X4 makes the task of accessing a) and b) signals for sub8x8 block further difficult,
      since the intermediate data (i.e. a and/or b) for sub8x8 block
      are not easily accessible outside of current partition unless reconstruced
      with decided coding modes.
      Change-Id: If60301a890c0674a3de1d8206965bbd6a6495bb7
    • Zoe Liu's avatar
      Add a new experiment "altref2" · 68ad7a6e
      Zoe Liu authored
      This experiment is to add ALTREF2_FRAME to allow 2 altref backward
      predictions. Each video frame will then have up to 7 reference frames
      to choose from:
      (1) 4 forward predictive references, namely
      (2) 3 backward predictive references, namely
      The tool of "altref2" is built on top of the "ext_refs" experiment.
      Change-Id: Idbb0bb53b43c5c2c7baf4959331fc5a31c77a118
  2. 19 Jul, 2017 3 commits
    • Tom Finegan's avatar
      Silence obj file has no symbols warning. · 11934b08
      Tom Finegan authored
      convolve_avx2.c only has symbols when CONFIG_CONVOLVE_ROUND is
      enabled. Move it to the correct location in av1/av1.cmake.
      Change-Id: I521f88262f10500ce7d9f81371be31af0a588a95
    • Tom Finegan's avatar
      Sync CMake build with configure build. · c42a835a
      Tom Finegan authored
      Add CONFIG_INTER_STATS_ONLY, currently defaults to 0.
      Change-Id: I495ceaa698e34a5ab5b5456355013fca684d4834
    • Jingning Han's avatar
      Rework txk_type indexing system for chroma component · 19b5c8fa
      Jingning Han authored
      Use the row and column indexes to fetch txk_type, which allows the
      chroma components to derive the tx type from the corresponding luma
      components. It improves the coding performance of txk-sel by 0.18%.
      Change-Id: I3f4bca5839e13ae95e51053e76cd86fe58202ac9
  3. 18 Jul, 2017 7 commits
    • Cheng Chen's avatar
      Clean CLPF local function · a5378e73
      Cheng Chen authored
      Rename local functions and make them static.
      Remove unnecessary header file and corresponding includes.
      Change-Id: I4b09e3949e7207754753997ff359992bd348d488
    • Alex Converse's avatar
      Don't clobber |allow_screen_content_tools|. · 74ad0917
      Alex Converse authored
      Screen content tools can be forced on or inferred by color counting.
      This prevents the inferred status of the tools from getting clobbered
      when controls are evaluated.
      This also fixes the build with --disable-palette --enable-intrabc
      Change-Id: If815a1eff2f9419117477f14cda143dd669c87c6
    • Alex Converse's avatar
      Revert "aomenc: remove config control of "allow_screen_content_tools"" · 2f7d37bf
      Alex Converse authored
      This reverts commit 1b5328e0.
      This commit has some pretty negative consequences with block copy. I
      need to be able to force block copy on for arbitrary sequences while it
      is still in development, and I need to be able to keep the palette
      enable status between block copy and non-block copy runs.
      Change If815a1eff2f9419117477f14cda143dd669c87c6 will prevent
      allow_screen_content_tools from getting clobbered and still allow us to
      force it on.
      Change-Id: I7a2f4207b5d2da35aec7870250e8b330c58a0e13
    • Ryan Lei's avatar
      enable parallel_deblocking experiment by default · 2c6ca5fe
      Ryan Lei authored
      this change enables parallel_deblocking by default after it has been
      officially adopted. the parallel_deblocking_15taps experiment is merged
      into the parallel_deblocking experiment so it is removed to clean up
      the code. internal compile flags are added to disable 15 tap for both
      luma and chroma plane for future experiment purpose. the internal
      compile flags are disabled by default.
      Change-Id: I1668fd2cb7676d756c52263d6993241618d33ee6
    • Sebastien Alaiwan's avatar
      Avoid explicit memory management · 4fe940ad
      Sebastien Alaiwan authored
      Change-Id: I181b473a6ae4b40d47682afbe136aa4aa4716ad2
    • Sebastien Alaiwan's avatar
      Remove dead VP8 test file · 4f345189
      Sebastien Alaiwan authored
      Change-Id: I2a4041a440d0e9bbaf4bc85176501e171a5736f8
    • Angie Chiang's avatar
      Add flag inter_stats_only · 08a22a63
      Angie Chiang authored
      This flag will allow us to skip key frame's stats
      Therefore, we can test inter frame performance when frame number
      is small. The inter frame's stats won't get underwhelmed because
      of key frame's stats
      Change-Id: I9eaa8e5775fb2e740406cfa4b4f64f96f180d9db
  4. 17 Jul, 2017 6 commits
  5. 15 Jul, 2017 6 commits
    • Tom Finegan's avatar
      Sync CMake build with the configure build. · f7c4bf5c
      Tom Finegan authored
      All default to 0, off.
      Change-Id: Ic7f8a6f68038b6138b64a611e91315212605f0c3
    • Tom Finegan's avatar
      Set SOVERSION in CMake shared library builds. · 4a3a9c01
      Tom Finegan authored
      And correct SO_VERSION_MAJOR in libs.mk.
      Change-Id: Ia0a3bb5774fa44c182e4f8072ffe90970ee2aeb5
    • Tom Finegan's avatar
      Fix CMake shared library build. · 88ea6352
      Tom Finegan authored
      The post relocation destination of some non-simd sources
      that require specific simd flavors was incorrect. The
      relocated sources touch internal APIs, and the incorrect
      destination was an unguarded area where sources are added
      unconditionally to targets with the assumption that all
      APIs are accessible.
      Sources moved to section guarded by BUILD_SHARED_LIBS, which
      acts as the border between public APIs always available for
      testing and those that require a static lib that exposes
      private symbols.
      Change-Id: I5d9ad513a0fe1b9dc57cb11cca53e8d00eb9b1a8
    • Sebastien Alaiwan's avatar
      Avoid use of 'assert' in unit tests · 8b730a5a
      Sebastien Alaiwan authored and James Zern's avatar James Zern committed
      A failing 'assert' aborts the execution of the test suite,
      instead of simply failing the erroneous test, and continuing with other tests.
      Change-Id: I3fdaf20a22ea343ac75be7883addbe6ba1e55da1
    • Sebastien Alaiwan's avatar
      Remove dead file · df971aa8
      Sebastien Alaiwan authored and James Zern's avatar James Zern committed
      Change-Id: I5d53689083472e1ff312f60f056b93a233e8770e
    • Lester Lu's avatar
      lgt: delete unnecessary code · 5ee2808a
      Lester Lu authored
      Currently, lgt cannot work with pvq, so those lines are not
      Change-Id: Ida7b2de599b55d94cac57365c09ac2330abe3c66
  6. 14 Jul, 2017 13 commits
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: read/write ncobmc mode · ca710d68
      Wei-Ting Lin authored
      An ncobmc mode is selected for each squared block
      (if motion_mode == ncobmc_adapt_weight) as opposed
      to four in training
      Change-Id: I81e5dfca3a6fec5a95c96b17f294530880cf8f88
    • Sarah Parker's avatar
      Avoid sending gm params if source and ref are different sizes · 6c998d75
      Sarah Parker authored
      Change-Id: I4b4272c99ba6ff4d983dcb694b3ea4d5de1b4e14
    • Yunqing Wang's avatar
      Sample selection in warped motion · 1bc82866
      Yunqing Wang authored
      Added a sample selection process in warped motion.
      1. Gather more samples including multiple rows on the top, multiple
      columns on the left, and the upper-right block.
      2. Sort samples by the MV difference between the neighbour's MV and
      the current block's MV. Trim the samples with considerably large MV
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.241   -0.243  -0.376
      lowres:      -0.104   -0.110  -0.179
      The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
      Change-Id: I2730bb31a0a3ad28215ccd16fd6da0ea8b2ed404
    • Urvang Joshi's avatar
      selfguided_filter_test: Remove unnecessary memset. · d98661cc
      Urvang Joshi authored
      The memset to 0 wasn't required because the temporary variable is only
      written to, before being read in the next function call.
      ./test_libaom --gtest_filter=*SelfguidedFilterTest*
      Change-Id: Ie1628d43b050744ae97a8be55f551edb602b018b
    • hui su's avatar
      refactor get_tx_type() · 45b6475e
      hui su authored
      Change-Id: I2888bd8905253e02e3ac74597275cf56e5142d29
    • hui su's avatar
      aomenc: remove config control of "allow_screen_content_tools" · 1b5328e0
      hui su authored
      Always let the encoder decide if "allow_screen_content_tools" should be set.
      -The screen content detector(is_screen_content()) works fairly well.
      -Keeping the config control may lead to mismatches. For example, user
      may encode the 1st frame with the flag on, then turn the flag off for
      the 2nd frame via config control. On the decoder side, the flag is on
      for both frames, because the flag is only transmitted in the header of
      all-intra frame, i.e. the 1st frame in this example.
      Change-Id: I0652fe2b9f8df19bfbf7ed7d3513205c80ea9c61
    • Wei-Ting Lin's avatar
      Fix a bug of default_motion_mode_prob array size mismatch · 8e43f21f
      Wei-Ting Lin authored
      Change-Id: Ib245b059f1c1aa450b0755b437eab15c362d3aee
    • Tom Finegan's avatar
      Treat test sources that do not contain instrinsics normally. · 284653e3
      Tom Finegan authored
      Files that contain a simd flavor in their name are only instrinsics
      sources when the simd flavor is the suffix of the basename.
      Change-Id: I87d47c77750730171817f38fe3877226e7c09c10
    • Tom Finegan's avatar
      Report status when test_runner.cmake completes. · d5aff9dd
      Tom Finegan authored
      Avoid consuming error messages like "Illegal instruction".
      Change-Id: Ia7983389ad3519f795f85d0c94a2a3787614a28d
    • Sebastien Alaiwan's avatar
      Unify the many definitions of NELEMENTS · ed9e0d0b
      Sebastien Alaiwan authored
      Change-Id: Ie52ce24ca9eca272dfacfb17483ec7b7f2c126d4
    • Thomas Daede's avatar
      Fix mismatch between SSE2 and C versions of HBD upsampled_pred. · 49bb8f8c
      Thomas Daede authored
      This is a partial fix of the HBD upsampled pred quality loss
      introduced in commit 5d24b6f0.
      Change-Id: I114dab1c8aac285071c5910dff40d48beea8c2ed
    • David Michael Barr's avatar
      [CFL] Move alpha picking code to rdopt.c · 2510f64e
      David Michael Barr authored
      This simplifies the path from rd_pick_intra_sbuv_mode()
      Results on Subset1 (compared to  dff41923
       with CfL enabled)
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000
      Change-Id: I0bade9d347c626a78ba7077b960afdb318ecca69
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
    • Yunqing Wang's avatar
      Make EXT_TILE compatible with TILE_GROUPS · eeb08a9b
      Yunqing Wang authored
      Added a 1-bit flag 'large_scale_tile'. If it is 0 that is the default value,
      use normal tile coding in TILE_GROUPS. If it is 1, use large-scale tile
      coding in EXT_TILE.
      At large_scale_tile=1 case, if single-tile-decoding is required, then the
      loopfilter is disabled.
      Related API and unit tests were modified.
      Change-Id: I3ba12dc3d80ccf1ab21543ab3b16c02282c34e3b
  7. 13 Jul, 2017 2 commits