1. 05 Oct, 2016 3 commits
  2. 04 Oct, 2016 5 commits
    • Thomas's avatar
      Add EC_ADAPT experiment for symbol-adaptive entropy coding. · b0112dfd
      Thomas authored
      This experiment performs symbol-by-symbol statistics
      adaptation for non-binary symbols. It requires DAALA_EC or
      RANS and ANS to be enabled. The adaptation is currently
      based on a simple recursive filter and is taken from
      Daala. It has an adaptation rate dependent on alphabet size,
      taken from Daala. It applies wherever non-binary symbols
      are encoded using Cumulative Probability Functions rather
      than trees.
      
      Where symbols are adapted, forward updates in the compressed
      header are removed.
      
      In the case of RANS coefficient token values are adapted,
      with the exception of the zero token which remains a
      binary symbol. In the case of DAALA_EC other values
      such as inter and intra modes are adapted as CDFs are
      provided in those cases.
      
      The experiment is configured with:
      
      ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt
      
      or
      
      ./configure --enable-experimental --enable-ans --enable-rans \
          --enable-ec-adapt
      
      EC_ADAPT is not currently compatible with tiles.
      
      BDR results on Objective-1-fast give a small loss:
      
      PSNR YCbCr:      0.51%      0.49%      0.48%
      PSNRHVS:      0.50%
      SSIM:      0.50%
      MSSSIM:      0.51%
      CIEDE2000:      0.50%
      
      Change-Id: I3888718e42616f3fd87144de7f125228446ac984
      b0112dfd
    • Steinar Midtskogen's avatar
      Move CLPF block signals from frame to SB level. · 85437b21
      Steinar Midtskogen authored
      These signals were in the uncompressed frame header (as a temporary
      hack), which caused two problems:
      
      * We don't want that header to be duplicated in the slice header
      * It was necessary to signal the number of bits to transmit up front
      
      However, the filter size can be 128x128 which is greater than the SB
      size, and a decoder wouldn't be able to know whether to read a bit or
      not until the final SB of that 128x128 block has been decoded
      (depending on whether the 128x128 is all skip or not).  Therefore the
      signalling was changed for 128x128 blocks so that every top left SB of
      a 128x128 filter block contains a signal regardless of whether the
      block is all skip or not.  Also, all the MB's of 128x128 block are
      filtered even if they are skip MB's.  This gives the signal a purpose
      even when the 128x128 block is all skip, and it also gives a slight
      coding gain as it leaves a way to filter skip blocks, which was
      previously forbidden.
      
      Low latency:
      PSNR YCbCr:     -0.19%     -0.14%     -0.06%
         PSNRHVS:     -0.15%
            SSIM:     -0.13%
          MSSSIM:     -0.15%
       CIEDE2000:     -0.19%
      
      High latency:
      PSNR YCbCr:     -0.03%     -0.01%     -0.09%
         PSNRHVS:      0.04%
            SSIM:      0.00%
          MSSSIM:      0.02%
       CIEDE2000:     -0.02%
      
      Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
      85437b21
    • Steinar Midtskogen's avatar
      On x86 use _mm_set_epi32 when _mm_cvtsi64_si128 isn't available · f041c0ff
      Steinar Midtskogen authored
      Change-Id: Ibdbd720d4f68892da6164a9849e212e759305005
      f041c0ff
    • James Zern's avatar
      configure: remove old visual studio support (<2010) · c834d019
      James Zern authored
      BUG=b/29583530
      
      Change-Id: If08ce6ca352f377ac4db6b9b1909b507bba6d872
      (cherry picked from commit 078dff72ca7bff079cb3c56d98c588c6ea6d2814)
      (cherry picked from commit 046226376533b610ddc700f14409f195aa6abd51)
      c834d019
    • Yaowu Xu's avatar
      remove visual studio < 2010 workarounds · 3c631f9c
      Yaowu Xu authored
      BUG=b/29583530
      
      Change-Id: Iafd05637eb65f4da54a9c857e79204a77646858a
      (cherry picked from commit c125f4a594815ad63b50e4b684ada4b44c545932)
      3c631f9c
  3. 03 Oct, 2016 3 commits
    • hui su's avatar
      cosmetic: add matching brackets · 7f060fb1
      hui su authored
      Change-Id: Iccb75d5204f0f52f2c7d6e18d1f8223ce10f68ba
      7f060fb1
    • James Zern's avatar
      tests: remove redundant round() definition · 52b806b9
      James Zern authored
      use aom_ports/msvc.h for compatibility
      
      BUG=b/29583530
      
      Change-Id: I9433d8586cd0b790e7f4d697304298feafe801f1
      (cherry picked from commit 0a64929f19cc1ce89f993aa5c9d61a29679eb961)
      52b806b9
    • Yaowu Xu's avatar
      apply clang-format · 2b3baa80
      Yaowu Xu authored
      av1/decoder/decodeframe.c
      av1/encoder/subexp.c
      
      Change-Id: I30039510a1b19075269e80893af36e880b1f5212
      2b3baa80
  4. 30 Sep, 2016 15 commits
  5. 29 Sep, 2016 8 commits
  6. 28 Sep, 2016 6 commits
    • Guillaume Martres's avatar
      Remove no longer necessary intra block reencode · a94997aa
      Guillaume Martres authored
      Now that `rd_variance_adjustment` has been removed, we can remove this
      reencode without affecting anything.
      
      Change-Id: Id2e055fe2f00bd5c1e59daa44fce4c264b730116
      a94997aa
    • Guillaume Martres's avatar
      Remove rd_variance_adjustment · b6425127
      Guillaume Martres authored
      This function is called after `super_block_yrd` and assumes that the dst
      buffer is correct but that is no longer always the case after
      daf841b4 since we don't call
      `txfm_rd_in_plane` after the RDO loop in `choose_tx_size_from_rd`.
      We could fix this by always saving and restoring the dst buffer but
      removing `rd_variance_adjustment` is a better solution:
      - Getting the dst buffer always right is tricky as demonstrated by the
        fact that it is wrong now, even if we fix it now we could break it later
        and not notice
      - Perceptual weighting is a good idea but `rd_variance_adjustment` is the
        wrong approach as it weights both the rate and the distortion:
        to get meaningful units you should only weight the distortion,
        weighting rate means that we pretend some bits cost less than other
        bits, this is not the case. The distortion weighting approach is
        implemented by Daala in `od_compute_dist` and we plan to experiment
        with this in AV1 too.
      - Removing `rd_variance_adjustment` improves coding efficiency on all
        metrics, here are the results for objective-1-fast using the Low
        Latency settings:
      
            PSNR Y:     -0.14%
           PSNRHVS:     -0.17%
              SSIM:     -0.12%
            MSSSIM:     -0.12%
         CIEDE2000:     -0.07%
      
      Change-Id: I74b26b568ee65f56521646b8f30dd53bcd29fce3
      b6425127
    • Steinar Midtskogen's avatar
      Improve v128 and v64 8 bit shifts for x86 · 6a9922c0
      Steinar Midtskogen authored
      Change-Id: I25dc61bab46895d425ce49f89fceb164bee36906
      6a9922c0
    • Yaowu Xu's avatar
      misc-fix: make render_size referencable · 013212c9
      Yaowu Xu authored
      This commit merges the fix of making render size referencable in
      coding.
      
      Related tracking issue:
      https://bugs.chromium.org/p/webm/issues/detail?id=1079
      Original libvpx commit:
      ce378025
      
      Change-Id: I24f1d2f019ad41985905608e2847b06221c19338
      013212c9
    • Yaowu Xu's avatar
      misc-fix: colorspace/profile bits for intra-only · a20943c5
      Yaowu Xu authored
      This commit merges the fix of adding colorspace and profile related
      bits in intra-only frames.
      
      Related tracking issue:
      https://bugs.chromium.org/p/webm/issues/detail?id=1087
      Original libvpx commit:
      2a388b53
      
      Change-Id: I9c4fc4efcb5ebdecd6bb15e804dbcc7cc1dfbe58
      a20943c5
    • Yaowu Xu's avatar
      misc-fixes: correct motion vector clamping · 27c67ac0
      Yaowu Xu authored
      This commit merges the fix of motion vector clamping correction.
      
      Related tracking issue:
      https://bugs.chromium.org/p/webm/issues/detail?id=1037
      Original libvpx commit:
      dea99899
      
      Change-Id: If3bc4ddccd5d25d8cc40d273cf0ab14aeefbcfe3
      27c67ac0