1. 14 Jun, 2017 2 commits
  2. 13 Jun, 2017 3 commits
    • Yushin Cho's avatar
      Fix a bug in daala-dist · 09b01a24
      Yushin Cho authored
      Fix the bug that height of a partition is used as a stride mistakenly.
      This fixes the regression caused by sub8x8 tx size rd search
      for a partition >= 8x8.
      
      Change-Id: I6114814dcec70fd5198f681c0a861bc9849286fd
      09b01a24
    • Zoe Liu's avatar
      Add encoder/decoder pipeline to support single ref comp modes · 85b66463
      Zoe Liu authored
      Now the single ref comp mode should work with WEDGE and
      COMPOUND_SEGMENT. For motion_var, the OBMC_CAUSAL mode uses the 2nd
      predictor if the neighboring block is single ref comp mode predicted.
      
      This patch removes the mode of SR_NEAREST_NEWMV and leaves four
      single ref comp modes in total:
      
      SR_NEAREST_NEARMV
      SR_NEAR_NEWMV
      SR_ZERO_NEWMV
      SR_NEW_NEWMV
      
      Change-Id: If6140455771f0f1a3b947766eccf82f23cc6b67a
      85b66463
    • Yushin Cho's avatar
      Another fix of daala-dist for cb4x4 · c0f6bf25
      Yushin Cho authored
      Daala-dist replaces the luma distortion of sub8x8 partitions with
      its own distortion thus requires to split the luma distortion only.
      Doing so, there has been a bug that INT_MAX64 value comes
      when the sub8x8 parition is skipped. This happened because the existing
      code does not initialize the rd_stats_y or tmp_rd_stats_y, i.e. rd_stat struct
      for luma only in several places.
      
      Change-Id: If229b53bb7a6cff0b8751138a32b1dcf02665624
      c0f6bf25
  3. 12 Jun, 2017 3 commits
    • Yushin Cho's avatar
      Fix a compile warning with global-motion off · c9751c59
      Yushin Cho authored
      Change-Id: I8379e4055e9c2737f1ad310095d7a318e6e74b2f
      c9751c59
    • Yue Chen's avatar
      supertx: code refactoring + resolve conflicts with baseline · 8e689e4b
      Yue Chen authored
      Refactoring: split prediction+extension for each plane, so we can
      handle luma/chroma supertx pred in different ways.
      Compatibility fix: fix conflicts with cb4x4 and chroma_sub8x8, now
      for chroma sub8x8 supertx, only the top-left(basic cb4x4) or the
      the bottom-right(cb4x4 + chroma_sub8x8) predictor will be used
      without any blending within a 8x8 unit.
      
      Change-Id: I6cf7b12768a82d3c7e01811ada02de84af9bd8ac
      8e689e4b
    • Zoe Liu's avatar
      Add encoder/decoder support for var-refs · 7b1ec7a9
      Zoe Liu authored
      Check the availability of the reference frames at the frame level at
      both encoder and decoder, and if a reference frame is not available
      for a specific video frame, remove the signaling of such reference
      frame info at the block level.
      
      This patch adds the consideration of the bit saving inside the RD
      optimization loop.
      
      Change-Id: I4c22f1b843b21c7d2b47e118c99c3ad615a3d4e4
      7b1ec7a9
  4. 10 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      var_tx: Fix distortion calc. in av1_tx_block_rd_b · ab141115
      Timothy B. Terriberry authored
      This was hard-coding the assumption that the block size for the
      smallest TX size was also the smallest block size. This is no
      longer true since fe67ed6a landed.
      
      As a result, for TX blocks that overlapped the frame edge, it was
      only measuring distortion on the upper-left 2x2 part of each 4x4
      sub-block, causing the encoder to prefer larger transforms which
      cause such overlap and avoid transforms which do not, causing a
      regression.
      
      This patch uses the appropriate conversion table, which fixes the
      regression.
      
      BUG=aomedia:593
      
      Change-Id: Id253cf0f3a5252378e3f340b8350120639ff5c88
      ab141115
  5. 09 Jun, 2017 1 commit
    • David Barker's avatar
      Add 'do_average' to ConvolveParams structure · e64d51a9
      David Barker authored
      The 'ref' member of ConvolveParams currently serves two purposes:
      * To indicate which component of a compound we're currently predicting,
        eg. for fetching interpolation filters with dual-filter enabled.
      * To determine whether we should average into the destination buffer.
      
      But there are two cases where we want to separate these out:
      * In joint_motion_search, we want to try combining a fixed second
        prediction with various first predictions.
      * When searching masked interinter compounds, we want to predict
        each component separately then try different combinations.
      
      In these cases, we set 'ref' to 0 and use temporary variables to
      make sure we use the correct interpolation filters. But this is
      quite fragile.
      
      This patch separates out the two uses into separate members.
      This allows us to remove some temporary variables, but more
      importantly gives easy fixes to two bugs in
      build_inter_predictors_single_buf (used by rdopt):
      
      * We previously set ref=0 but didn't fix up the interpolation filters
      * For ZERO_ZEROMV modes, the second component would accidentally
        average into the (uninitialized!) second prediction buffer
      
      BUG=aomedia:577
      BUG=aomedia:584
      BUG=aomedia:595
      
      Change-Id: Ibc31d1ac701a029ea5efaa1197dd402bc4b7af1e
      e64d51a9
  6. 08 Jun, 2017 1 commit
    • Yushin Cho's avatar
      Refactor sub8x8 tx size RD for daala-dist · 30a2c5f2
      Yushin Cho authored
      For a tx size RD search with partition size >= 8x8 and tx size < 8x8,
      daala-dist function is applied to the whole partition after all tx blocks are encoded
      instead of each 8x8 sub block of the partition.
      
      Change-Id: I27d9e2960aa641f550096e32ebcdf8dfb4de79a6
      30a2c5f2
  7. 07 Jun, 2017 1 commit
    • Yi Luo's avatar
      Add HBD data path for av1_block_error_avx2 · d61e608d
      Yi Luo authored
      - Add unit test for av1_block_error.
      - Fix av1_dist_block logic for calling av1_block_error.
      
      Change-Id: Id8a47ee113417360a29fc2334d9ca72b5793e2d7
      d61e608d
  8. 06 Jun, 2017 1 commit
    • Alex Converse's avatar
      intrabc: Fix mode and MV cost · d5d9b6ca
      Alex Converse authored
      objective-1-fast 1st KF: -0.07 BDRATE-PSNR
      twitch-1 1st KF: -0.04 BDRATE-PSNR
      
      Change-Id: I089900514c40f3b8b77708dac2c8bfbce2f540ff
      d5d9b6ca
  9. 05 Jun, 2017 2 commits
  10. 02 Jun, 2017 6 commits
    • Angie Chiang's avatar
      Mark SMOOTH2 filter under USE_EXTRA_FILTER flag · aadbb025
      Angie Chiang authored
      Change-Id: Ia9a5d818e8c2ff9b4cc41c6d7950cfe005c20bfc
      aadbb025
    • Angie Chiang's avatar
      Pass above/left ctx plane_bsize to av1_optimize_b · 3511c37d
      Angie Chiang authored
      This is to facilitate lv_map experiment
      
      Change-Id: Ife779b172c4b81a9b2b4640464163300996e3969
      3511c37d
    • Alex Converse's avatar
      intrabc: adapt use_intrabc prob · 7c412ea4
      Alex Converse authored
      First keyframe BD-RATE objective-1-fast:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3705 | -0.3232 | -0.3812 |  -0.3782 |     N/A | -0.3412 |        N/A
      
      First keyframe BD-RATE twitch-1:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2479 | -0.2477 | -0.2467 |  -0.2567 | -0.2486 | -0.2508 |    -0.2487
      
      
      
      Change-Id: Iea6c895c6fe9e9764887a8968f6e5330903969d3
      7c412ea4
    • Yunqing Wang's avatar
      Add MV refining search in warped motion experiment · 68f3ccd1
      Yunqing Wang authored
      Implemented a MV refining search after the warped motion parameters were
      found. Only 4 or 8 positions were checked so there was almost no impact
      on encoder speed.
      
      Borg test result:
                  avg_psnr     ovr_psnr    ssim
      cam_lowres: -0.543%      -0.574%     -0.670%
      lowres    : -0.222%      -0.230%     -0.285%
      
      Change-Id: Ic2f6c1fe548b089d50e9c33bb365e6b128aabc93
      68f3ccd1
    • Jingning Han's avatar
      Deprecate special rd loop for sub8x8 block size · b2a01db8
      Jingning Han authored
      Remove the special rate-distortion optimization loop for sub8x8
      block size from vp9.
      
      Change-Id: I62c6cf537a54769f26f2d4938ebed5fed2c84741
      b2a01db8
    • Jingning Han's avatar
      Resolve extremely large stack alloc in rdopt · d064cf03
      Jingning Han authored
      Move the large stack allocation from stack initialization to
      dedicated mem space. This resolves the extremely large stack issue
      when ext-partition, motion-var, and high bit-depth are all turned
      on.
      
      BUG=aomedia:415
      
      Change-Id: I85b77bbc6429093fcb0152176d9e237087d6bbd8
      d064cf03
  11. 01 Jun, 2017 4 commits
    • Yushin Cho's avatar
      Fix daala-dist for cb4x4 · 63927c43
      Yushin Cho authored
      The place where av1_daala_dist() is applied for sub8x8 partition is
      moved from sub8x8 mode decision functions to rd_pick_partition().
      
      BD-Rate change by daala-dist with '--disable-var-tx' is:
      (AWCY, objective-1-fast, high delay mode)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      15.1558 | 12.9585 | 14.4662 |  -3.8651 | -1.7102 | -9.2956 |    10.8686
      
      In MSE probe mode:
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0429 |  0.0435 |  0.1651 |  -0.0415 | 0.0850 |  0.0122 |     0.0546
      
      Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
      63927c43
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 TX sizes behind CONFIG_CHROMA_2X2. · fe67ed6a
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_2x2 (which is not) in separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
      fe67ed6a
    • hui su's avatar
      Initialize chroma mode info before RD search · eaddeee1
      hui su authored
      Make sure initialization is done regardless of whether RD search
      is skipped (skip_chroma_rd).
      
      BUG=aomedia:568
      
      Change-Id: Idb620b34be6930bb35ab6c912dfd4777f7614159
      eaddeee1
    • Yue Chen's avatar
      Make ext_inter/wedge/compound_segment/interintra on by default · f03907a2
      Yue Chen authored
      (1) Make unit tests for masked sad/variance encoder-only
      (2) Fix compile error with intrabc
      (3) Fix warnings reported by static analysis
      
      Change-Id: I0cd2176fcda0b81e1fc30283767678376ced4c42
      f03907a2
  12. 31 May, 2017 2 commits
  13. 29 May, 2017 2 commits
  14. 26 May, 2017 2 commits
    • Yue Chen's avatar
      ext_inter: remove unnecessary rate parameters · 5e606544
      Yue Chen authored
      Only use compmode_interinter_cost and compmode_interintra_cost in
      handle_inter_mode() since outside the function they can be reflected
      by the total rate.
      Plus adding config flags to separate wedge/compound_segment from
      ext_inter
      
      Change-Id: I56b402aab3cf2337bae8d7e682f93cd8557f69a4
      5e606544
    • Jingning Han's avatar
      Initialize min_tx_size in var-tx · 923377b8
      Jingning Han authored
      Avoid the risk of use uninitialized value when TX_2X2 is moved
      behind chroma-2x2 flag.
      
      Change-Id: Ibb3e3700ab82d7f98ebe58fae70afbf64f5773c7
      923377b8
  15. 25 May, 2017 4 commits
  16. 24 May, 2017 1 commit
    • David Barker's avatar
      ext-inter: Further cleanup · f19f35f7
      David Barker authored
      * Rename the 'masked_compound_*' functions to just 'masked_*'.
        The previous names were intended to be temporary, to distinguish
        the old and new masked motion search pipelines. But now that the
        old pipeline has been removed, we can reuse the old names.
      
      * Simplify the new ext-inter compound motion search pipeline
        a bit.
      
      * Harmonize names: Rename
        aom_highbd_masked_compound_sub_pixel_variance* to
        aom_highbd_8_masked_sub_pixel_variance*, to match the naming of
        the corresponding non-masked functions
      
      Change-Id: I988768ffe2f42a942405b7d8e93a2757a012dca3
      f19f35f7
  17. 22 May, 2017 1 commit
  18. 20 May, 2017 2 commits
    • hui su's avatar
      DPCM intra coding experiment · b8a6fd6b
      hui su authored
      Encode a block line by line, horizontally or vertically. In the vertical
      mode, each row is predicted by the reconsturcted row above;
      in the horizontal mode, each column is predicted by the reconstructed
      column to the left.
      
      The DPCM modes are enabled automatically for blocks with horizontal or
      vertical prediction mode, and 1D transform types (ext-tx).
      
      Change-Id: I133ab6b537fa24a6e314ee1ef1d2fe9bd9d56c13
      b8a6fd6b
    • Nathan E. Egge's avatar
      Replace EC_MULTISYMBOL with DAALA_EC || ANS. · cd539518
      Nathan E. Egge authored
      Change-Id: Ia0eb3a3694fdbe9d33548ff4014b704b2f3db86a
      cd539518
  19. 19 May, 2017 1 commit
    • Jingning Han's avatar
      Make var-tx support YUV444 format · 52d2b405
      Jingning Han authored
      Properly scale the chroma block size accroding to the YUV format.
      
      BUG=aomedia:522
      
      Change-Id: I2c42763394eea6383f81443bf1098fe05f448bd5
      52d2b405