1. 13 Jul, 2017 16 commits
    • Urvang Joshi's avatar
      Refactor av1_build_inter_predictors_sb(). · 686d4fd2
      Urvang Joshi authored
      Before this, this function was copied-and-edited from
      av1_build_inter_predictors_sby() and av1_build_inter_predictors_sbuv().
      Also, some places used sb() one directly (like rdopt.c), while others used
      sby() and sbuv() separately (like encodeframe.c --> encode_superblock()).
      This was prone to errors, if someone mistakenly modified only one/two of
      the 3 functions.
      Now, we just reuse sby() and sbuv() functions in sb().
      Verified that there's no change in output.
      Change-Id: If81d78e767cc3fa09f06094d4db36ff1eaea3e4f
    • Debargha Mukherjee's avatar
      Support frame scaling prediction for highbitdepth · 818005b4
      Debargha Mukherjee authored
      Change-Id: Iffc8e04bb5fa5c63542d5f85e838e6bc60405099
    • hui su's avatar
      Handle hbd in is_screen_content() · 105b72c1
      hui su authored
      Change-Id: Ic77a456246f87acb59ae95ddd4c421e741a99789
    • Thomas Davies's avatar
      NEW_MULTISYMBOL: add CDF for segment_id prediction. · 00021354
      Thomas Davies authored
      With aq-mode=1 (which forces segmentation), AWCY
      gives -0.12% (objective-1-fast, cpu-used=4,
      NEW_MULTISYMBOL on for reference and tested).
      No change to baseline metrics, with or without
      Change-Id: I841a9e8978598402dacfbca9265269163f7440c0
    • Jingning Han's avatar
      Refactor get_tx_type indexing · 7eab9ff1
      Jingning Han authored
      Use row and column indexes to fetch the txk_type value.
      Change-Id: I881d500c030e322d8aca9dccb6ff2870c9e1e392
    • Debargha Mukherjee's avatar
      Remove some commented out code · 1c318d52
      Debargha Mukherjee authored
      Change-Id: Id89b613a227867782f9feba16d87eca4b5a86369
    • Sebastien Alaiwan's avatar
      Add coding path sync test · 14cb860f
      Sebastien Alaiwan authored
      The goal is:
      1) to provide a tool allowing to diagnose
      and fix mismatches between LBD/HBD coding paths.
      2) once all mismatches are fixed, this test
      should be enabled so new ones can't be introduced.
      Change-Id: I71c1db4c2cb142e9e3a7a4b02dd0d61f35b77178
    • Yi Luo's avatar
      Speed up convolve_round post-rounding by avx2 · 04cef497
      Yi Luo authored
      - Decoder convolve rounding cycle percentage drops from
        2.75% to 0.91% by using avx2 function on i7-6700.
      Change-Id: I34ae48f45c0b4073f8962647d2181365ffe3325b
    • Peter de Rivaz's avatar
      Prevent negative variance in 10/12-bit. · e0794b51
      Peter de Rivaz authored
      Due to rounding the variance can become negative.
      Similar behaviour has been fixed in commit b7e7c044.
      I have made the corresponding changes to the masked_variance code.
      Change-Id: I21ed5a3f58080def08ac7ab9a77cbcad90318c99
    • Jingning Han's avatar
      Remove deprecated av1_build_inter_predictor_sub8x8 function · 2cf590fe
      Jingning Han authored
      Change-Id: Ia75a5160fc11df5d5dcbcb1bcf767de9925f811e
    • Jingning Han's avatar
      Resolve performance regression in compound rounding and segment · 077e320a
      Jingning Han authored
      This commit resolves the compression performance regression when
      both compound rounding and compound segment are enabled.
      Change-Id: I831b4e44d2b054aa74922eb0c541eaa2ac355e0e
    • Thomas Davies's avatar
      COMPOUND_SINGLEREF: replace deprecated tree coding. · b8b14a9b
      Thomas Davies authored
      Use multi-symbol CDF coding instead.
      Change-Id: I8a69364c8672474021d2ea5933e344d493186967
    • Zoe Liu's avatar
      Make last_bipred_frame a reference frame · aff92d58
      Zoe Liu authored
      The frame marked as last_bipred at the encoder side is the frame right
      before the source frame of BWDREF_FRAME, which was not used as a
      reference. This CL is to add this type of frames to the reference frame
      buffer and use them as reference for the coding of future frames. This
      is a non-normative change.
      A tiny gain is observed (lowres BDRate -0.016% in avg psnr). The main
      target of this CL is to make it possible to have more flexible gf group
      structure. For instance, LAST_BIPRED_UPDATE can be replaced by
      LAST_UPDATE followed by an extra alt ref frame.
      Change-Id: If3dbce0959bb468e95d01a1feca1dac6bfb91d36
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: add motion mode cdf · 9bcff194
      Wei-Ting Lin authored
      Add a new default motion_mode_cdf supporting this
      Also define the costs for the ncobmc mode tokens.
      Change-Id: Iebab044e4a34e3d2a94c18893107d82055cc9c77
    • Cheng Chen's avatar
      Make CDEF local functions static · 26897d10
      Cheng Chen authored
      Change-Id: I89035a64414f9511789022704ad9343bc2937666
    • Yue Chen's avatar
      warped_motion: disable warped_motion mode if ref frame is scaled · 52c5173e
      Yue Chen authored
      To make it compatible with frame_superres
      Change-Id: Id1560e1477a09cfd27a4b4f17468be9c76d09013
  2. 12 Jul, 2017 15 commits
    • hui su's avatar
      Automatically turn on/off screen content tools · d9a812bd
      hui su authored
      Turn "allow_screen_content_tools" on when the source video has many blocks
      with only few different colors. The automatic detection is enabled by
      defualt (or with command line flag "--tune-content=default"). With
      "--tune-content=screen", the screen content tools are always turned on.
      On the screen_content test set, the "default" setting is less than 0.3%
      worse than the "screen" setting on keyframe encoding.
      Change-Id: Iac7ab8952c96531d1fae84da1823291f5987519c
    • Rupert Swarbrick's avatar
      ext-partition-types: Add 4:1 partitions · 93c39e91
      Rupert Swarbrick authored
      This patch adds support for 4:1 rectangular blocks to various common
      data arrays, and adds new partition types to the EXT_PARTITION_TYPES
      experiment which will use them.
      This patch has the following restrictions, which can be lifted in
      future patches:
        * ext-partition-types is incompatible with fp_mb_stats and supertx
          for the moment
        * Currently only 32x32 superblocks can use the new partition types
      There's a slightly odd restriction about when we allow
      PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the
      EXT_PARTITION_TYPES CDF, read_partition() can only return them if both
      has_rows and has_cols is true. This means that at least half of the
      width and height of the block must be visible. It might be nice to
      relax that restriction but that would imply a change to how we encode
      partition types, which seems already to be in a state of flux, so
      maybe it's better to wait until that has settled down.
      Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
    • Jingning Han's avatar
      Fix chroma component boundary context update in RD loop · 328d57b8
      Jingning Han authored
      Fix the chroma component boundary context update in the inter
      residual rd search.
      Change-Id: Ice8028386a8b3bf921e2bf523ad0d2dcea707c7a
    • Monty Montgomery's avatar
      Add CONFIG_DAALA_DCT4 experiment. · 02078a38
      Monty Montgomery authored
      This experiment replaces the 4-point Type-II scaled-output vp9 DCT
       transform with the 4-point Type-II orthonormal Daala DCT transform.
      Right now the CONFIG_DAALA_DCT4 experiment depends on CONFIG_DCT_ONLY
       as it does not add an orthonormal 4-point DST.
      monty-baseline-dctonly-squaretx-subset1 ->
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0055 | -0.0132 | -0.0405 |   0.0261 | 0.0005 |  0.0246 |     0.0226
      monty-baseline-dctonly-squaretx-o1f ->
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0215 | -0.1573 |     N/A |  -0.0131 | -0.0347 | -0.0390 |    -0.1121
      Change-Id: Idef8f6e5525037d5bbb2d0927675c21d1922d69a
    • Sarah Parker's avatar
      Add calls to vertical/horizontal trapezoidal warping functions · 77b04c8e
      Sarah Parker authored
      Change-Id: I5d178fd101ac5c163249a82dfeacbf64091e8333
    • Tom Finegan's avatar
      Add information about test sharding to README.md. · 007b2eed
      Tom Finegan authored
      - Tidy up the BUILD_SHARED_LIBS section.
      - Tidy up testing basics section.
      - Make code block style consistent: always use fence style.
      Change-Id: Iaa3bfd1895c38210e228d02cef41212d1e157427
    • Tom Finegan's avatar
      Allow control of test data path via CMake. · 9a048790
      Tom Finegan authored
      Support override of the LIBAOM_TEST_DATA_PATH variable via
      the CMake command line:
      $ cmake path/to/aom -DAOM_TEST_DATA_PATH=path/to/test/data
      Change-Id: Idb0f3394584c0d0dfab221b42c539f0ffb15dc65
    • Yushin Cho's avatar
      Fix pvq for cb4x4 and maintain its configure · cd4f4a2a
      Yushin Cho authored
      Recently, sub8x8 inter mode decition functions have been
      removed from the av1 codebase, so codebase does not allow
      disabling cb4x4 anymore.
      This makes pvq not working simply crashing
      because we had disabled cb4x4 if pvq is enabled.
      Hence, pvq has been fixed for cb4x4.
      Also, if pvq is enabled, disable lgt and highbitdepth in the configure.
      Change-Id: I2cb675c0dbc12bce60ed6a66c34ea3e907cc35b3
    • Monty Montgomery's avatar
      Minor refactor to match the 4x4 forward transform. · 554d2c33
      Monty Montgomery authored
      Change-Id: Ib5337dfa78b73059ad169ca98a07119aa991864b
    • Ralph Giles's avatar
      Write av1 files as webm instead of mkv. · d032a447
      Ralph Giles authored
      WebM is the intended container here. The recent rollup
      of libwebm regressed the output doctype.
      Change-Id: I6e9e41bb59abf20f451e5576a4822fe06eb80478
    • Thomas Davies's avatar
      Sync CDF initialisations with probs. · 7865349d
      Thomas Davies authored
      Default probabilities were updated in
      d1b8c2a3. Update
      recently-added CDFs not covered in this commit
      to use these probabilities for initialisation.
      AWCY: -0.03%
      Change-Id: I5c34d1e890ddb0757df41848a0acc8509fcd4772
    • Rupert Swarbrick's avatar
      Fix build error with interintra mode enabled · 9803b94a
      Rupert Swarbrick authored
      Change-Id: Ib05eefeca1fd7819919d26f7ca52138c62306319
    • Tristan Matthews's avatar
      entropymode: fix sizeof mismatch · e886d223
      Tristan Matthews authored
      Fixes "aomenc: init_mode_probs: Assertion `sizeof(fc->motion_mode_prob)
      == sizeof(default_motion_mode_prob)' failed"
      Change-Id: I7b71304f50756ffd6e14b03fe338c0d624ce35c5
    • Luc Trudeau's avatar
      [CFL] Add CfL Alpha cost to RDO · dff41923
      Luc Trudeau authored
      The cost of signaling the alpha symbol and the signs are added to the
      DC_PRED rate in RDO.
      Results on Subset1(compared to f9e04152b with CfL enabled)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3699 |  1.5330 |  0.8664 |  -0.2881 | -0.3107 | -0.2587 |     0.1954
      Change-Id: Icd9827d11ee4ef29dfb527e636f0f380bcafa062
    • Zoe Liu's avatar
      Further work on ext-comp-refs for ref frame coding · fcf5fa27
      Zoe Liu authored
      (1) Work with var-refs to remove redundant bits in ref frame
      (2) Add a new uni-directional compound reference pair:
          (LAST_FRAME, LAST3_FRAME);
      (3) Redesign the contexts for encoding uni-directional reference frame
      (4) Use aom_entropy_optimizer to collect stats for all the default
          probability setups related to the coding of reference frames.
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) with one-sided-compound,
      the coding gain of ext-comp-refs + var-refs - one-sided-compound is:
      lowres: avg_psnr -0.385%; ovr_psnr -0.378% ssim -0.344%
      midres: avg_psnr -0.466%; ovr_psnr -0.447% ssim -0.513%
      AWCY - High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2758 | -0.1526 | -0.0965 |  -0.2581 | -0.2492 | -0.2534 |    -0.2118
      AWCY - Low Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -1.0467 | -1.4500 | -0.9732 |  -0.9928 | -1.0407 | -1.0180 |    -1.0049
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) without
      one-sided-compound, the coding gain of
      ext-comp-refs + var-refs - one-sided-compound is:
      lowres: avg_psnr -0.875%; ovr_psnr -0.877% ssim -0.895%
      midres: avg_psnr -0.824%; ovr_psnr -0.802% ssim -0.843%
      Change-Id: I8de774c9a74c20632ea93ccb0c17779fa94431cb
  3. 11 Jul, 2017 9 commits
    • Lester Lu's avatar
      Fix a bug when LGT and PVQ are both on. · 9c52192b
      Lester Lu authored
      Fixed a bug in my previous patch that causes a compile error (variable 
      block undefined) when pvq is on. 
      However, with or without LGT, --enable-pvq still has a run time error 
      during encoding. This run time error is independent of the LGT 
      Change-Id: I98ca5f69a916ea8556e45b820c2eb741c9656277
    • Monty Montgomery's avatar
      Add CONFIG_DCT_ONLY experiment. · cb55dad1
      Monty Montgomery authored
      Building with --enable-dct_only will force the encoder to use only
       tx_type == DCT_DCT.
      This experiment gives a loss and is only added for testing.
      master@2017-02-21T01:23:58.825Z ->
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      2.5467 |  1.0524 |  0.9171 |   1.8849 | 2.6626 |  2.4995 |     1.8402
      master@2017-02-21T01:47:43.790Z ->
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      1.6625 |  0.3948 |  0.3368 |   1.5268 | 1.7142 |  1.7097 |     1.0743
      Change-Id: I19b738f3d1a450bc50422149ac42bc184bfae08a
    • Sarah Parker's avatar
      Remove SEPARATE_GLOBAL_MOTION macro · 0eea89f3
      Sarah Parker authored
      Global_motion, obmc and warped_motion are now permanently
      mutually exclusive.
      Change-Id: Ib1a1207cc7caa6459a2027c6c4a50fcf4c451e76
    • Debargha Mukherjee's avatar
      Turn off global motion compute for scaled frames · 65e159b8
      Debargha Mukherjee authored
      Change-Id: I472775a6877721f5ebee6b14f760227546110b7a
    • Debargha Mukherjee's avatar
      Replace ref frame scaling with a better version · 405c857c
      Debargha Mukherjee authored
      Uses a better non-normative scaler to scale reference frames.
      Change-Id: I44b689c8328d6e6fd467c70c9b6b789874818153
    • Luc Trudeau's avatar
      [CFL] Compute alpha costs using av1_cost_symbol · 19bb3498
      Luc Trudeau authored
      Use the uniform way to compue the cost of symbols in AV1.
      Results on Subset1 (compared to 8a516a8f with CfL enabled)
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0357 | -0.0854 |  0.0305 |  -0.0422 | -0.0097 | -0.0171 |    -0.1042
      Change-Id: Ie908fc7d20c480634002c78027b070223b3ea96d
    • Luc Trudeau's avatar
      [CFL] Convert cfl_alpha to q3 · 4e81d929
      Luc Trudeau authored
      Alpha's biggest fraction is 1/8, so Q3 does not change the bitstream.
      Results on Subset1 (compared to 503aca74 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: I1fe5b2ace97179d5f950d7406a4f3d391924f89d
    • hui su's avatar
      Remove a redundant #endif in entropymode.c · 65f2435e
      hui su authored
      Change-Id: Id8789a2c352a7c7940e5cabff39acd0d7a584cac
    • Frederic Barbier's avatar
      Fix LOG_SWITCHABLE_FILTERS · 7b35d733
      Frederic Barbier authored
      Change-Id: I453fe201a66ec725061899337b17d517c57b9e7a