1. 05 Jul, 2017 1 commit
  2. 03 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Adjust Pixel Buffer for Chroma Sub8x8 · 780d249d
      Luc Trudeau authored
      Adjust row and col offset for sub8x8 blocks to allow the CfL prediction
      to use all available reconstructed luma pixels.
      
      Results on Subset 1 (Compared to b03c2f44 with CfL)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1355 | -0.8517 | -0.4481 |  -0.0579 | -0.0237 | -0.0203 |    -0.2765
      
      Change-Id: Ia91f0a078f0ff4f28bb2d272b096f579e0d04dac
      780d249d
  3. 28 Jun, 2017 1 commit
    • Jingning Han's avatar
      Support rectangular tx_type coding in var-tx · 243b66bc
      Jingning Han authored
      Support the transform block kernel coding for rectangular
      transform block size in var-tx. This integrates txk-sel with
      var-tx.
      
      Change-Id: I9a8edd84812168f56c79b78cc9af34f6304b1d54
      243b66bc
  4. 27 Jun, 2017 1 commit
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: Add bitstream syntax · 85a8f70c
      Wei-Ting Lin authored
      Define the syntax and entropy coding templates for
      NCOBMC_ADAPT_WEIGHT. The actual values of the default
      probabilities and the index tree structure need to
      be fine tuned.
      
      In this experiment all mv's in a superblock are sent
      first as in the ncobmc case.
      
      Change-Id: I68d50d3d27346c2847ea449a1168c6a99fbb4d3d
      85a8f70c
  5. 26 Jun, 2017 3 commits
    • Yushin Cho's avatar
      daala-dist: high bit depth support · 8ab875d6
      Yushin Cho authored
      Change-Id: Idafef140d3425a9a9f66cb8864a804c4d2a89a70
      8ab875d6
    • Yushin Cho's avatar
      Fix daala-dist for var-tx · 0474912c
      Yushin Cho authored
      The var-tx has its own suite of tx size/type RD search functions,
      which recursively split the partition into square tx blocks.
      
      The Daala-dist requires access to 8x8 pixels (both decoded and predicted)
      since it measures the distortion for multiple of a 8x8 pixels.
      Thus, if tx block is smaller than 8x8, it waits until all of sub8x8 blocks
      are RD searched (with MSE) then replaces the MSE of 8x8 pixels with
      daala-dist's calculated distortion for 8x8 pixels.
      
      It is also applied to luma pixels only.
      
      Change-Id: Ic4891e89b4ef05cf880aa26781d2d06ccf3142de
      0474912c
    • Yushin Cho's avatar
      Fix daala_dist to handle visible pixels only · 75b01004
      Yushin Cho authored
      - If invisible pixels, av1_daala_dist() simply use source pixles for dst.
      - Added av1_daala_dist_diff() which inputs diff signal instead of dst.
      
      - Refactored daala_dist code so that av1_daala_dist() and _diff()
      is called inside av1's distortion calculation functions, pixel_sse() and
      sum_squares_visible().
      
      Change-Id: Id857db52fe19856d92c46a9e84ac2962c01ae045
      75b01004
  6. 21 Jun, 2017 2 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      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_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
    • Fergus Simpson's avatar
      Use last_show_frame in use_prev_frame_mvs calc · 2b4ea11a
      Fergus Simpson authored
      Without tempmv-signaling configured, using the previous frame's MVs
      requires that the last frame was a show frame. With tempmv-signaling
      configured, cm->show_last_frame is not checked when calculating
      use_prev_frame_mvs. This patch adds that check and resolves mismatches
      seen with random resizing and random superres.
      
      Includes a couple fixes too - cm's last_width, last_height, and
      last_show_frame were updated under different conditions. Now they're all
      updated at the same time.
      
      Change-Id: Ibdfb196cb6e9d002fd57cb4df10a899b60faac00
      2b4ea11a
  7. 20 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] RDO Loop Rework · 14fc5045
      Luc Trudeau authored
      CfL performs an extra loop iteration during luma mode selection. Recent
      changes have broken the extra iteration. Remove previous approach.
      
      New approach adds the extra iteration right before uv parameter
      selection. Interesting fact, If the best luma intra mode already has
      worse RD performance than the best inter mode found so far (if any),
      then the entire chroma intra search is skipped, including the extra 
      iteration.
      
      Results on Subset1 (compared to 3e18e4ae with CfL)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3090 | -2.7271 | -2.3521 |  -0.3369 | -0.3463 | -0.3525 |    -1.1868
      
      Change-Id: If67b0badd2c8ea25c61685483d39d622c1729b18
      14fc5045
  8. 19 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
  9. 17 Jun, 2017 1 commit
  10. 16 Jun, 2017 1 commit
  11. 15 Jun, 2017 3 commits
    • Urvang Joshi's avatar
      Remove 'rddiv' member from various structs. · 70006e46
      Urvang Joshi authored
      This was initialized from a const and never modified. But was still
      passed around and stored in multiple structs.
      
      Removed these 'rddiv' member variables and now RDOPT() and RDOPT_DBL()
      always use the const RDDIV_BITS directly.
      
      Change-Id: I1a8dfd2c8fa857d466ad1207b4f0dd6ec07eafb8
      70006e46
    • Zoe Liu's avatar
      Add the new coding tool "speed_refs" · d1ac0321
      Zoe Liu authored
      This patch will not cause any performance change regardless of whether
      speed_refs is on or off.
      
      This coding tool is targeted to speed up the encoder side reference
      frame selection process. The essential idea is to have two scanning
      passes for each superblock of size 64x64 and this CL lays out the
      initial framework but no reference frame selection is done yet:
      
      First scanning pass - To simplify the partition and the mode
      candidates (e.g. considering nearestmv / nearmv / zeromv only) and
      identify the best reference frame prediction candidates;
      
      Second scanning pass - Use the best reference frame candidate(s)
      obtained from the first pass to encode the current superblock.
      
      Change-Id: I11266d468de3077271a5e866eebd341a8014d136
      d1ac0321
    • Arild Fuldseth (arilfuld)'s avatar
      Fix a bug in determination of reference_mode · 6c20c78f
      Arild Fuldseth (arilfuld) authored
      Fix a bug where the encoder sets reference_mode =
      COMPOUND_REFERENCE even if the frame contains some
      4x4 blocks (but no larger blocks) that are single
      reference. This occurs only in corner cases,
      typically for very small frame sizes (e.g. 16x8).
      
      BUG=aomedia:575
      
      Change-Id: I5caedaa753a56e9f9b48995c1d2e0a0886aa4366
      6c20c78f
  12. 13 Jun, 2017 2 commits
    • 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
  13. 12 Jun, 2017 3 commits
    • Fergus Simpson's avatar
      frame_superres: Post encode/decode upscaling · d2bcbb56
      Fergus Simpson authored
      This patch implements the post-encode and post-decode upscaling for the
      frame superresolution experiment to work.
      
      Upscaling happens after cdef and before loop restoration.
      
      For now, this patch forces on random-superres.
      
      The patch also cleans up some broken rate control hooks from VP9
      days, to be brought back later when the resize and superres tools
      are stable.
      
      Change-Id: If0a8f69224dfaa0f4ae7703bd429ea2af953c7a6
      d2bcbb56
    • 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
  14. 06 Jun, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Get subsampling from AV1 common · dac5e391
      Luc Trudeau authored
      This change does not impact the bitstream
        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: I6e131e91bad5efa345ed2542ae970eb6122eff51
      dac5e391
  15. 05 Jun, 2017 1 commit
    • Sarah Parker's avatar
      Early termination for warp error computation · 81f6ecd1
      Sarah Parker authored
      This terminates the computation for the warp error once
      the frame error exceeds the best frame error found
      so far to avoid unneccessary computation.
      
      Change-Id: I094a0b3e13f8b91610e051cb91d20a815879dd80
      81f6ecd1
  16. 02 Jun, 2017 2 commits
    • 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
    • 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
  17. 01 Jun, 2017 1 commit
    • 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
  18. 31 May, 2017 2 commits
    • Jingning Han's avatar
      Rework txfm_above and txfm_left context offset · 331662e9
      Jingning Han authored
      Make the txfm_above and txfm_left be processed in the unit of
      miniumum transform block size. Scale the transform block step
      size with respect to the mode_info step size.
      
      Change-Id: Iee4421e005db742cd4ff7899215560063e5f68e5
      331662e9
    • Jingning Han's avatar
      Fix filter intra backward prob update · b6200c9b
      Jingning Han authored
      Resolve the enc/dec mismatch issue when filter intra is turned on,
      in addition to chroma-sub8x8, ext-tx, and ext-inter experiments.
      
      BUG=aomedia:570
      
      Change-Id: Idf0875763ce24bd8d4022f7338fc86debf4dfd0c
      b6200c9b
  19. 30 May, 2017 1 commit
  20. 29 May, 2017 1 commit
  21. 27 May, 2017 1 commit
  22. 26 May, 2017 2 commits
    • Jingning Han's avatar
      Cover intra tx size count in rect-tx · 2d4fafac
      Jingning Han authored
      Account for intra tx size case when coding block is in skip mode.
      
      Change-Id: I030bc05d890c4a7c8d4628a7f9bdebaba6083a03
      2d4fafac
    • Yi Luo's avatar
      Improve the quantization table interface · c621023e
      Yi Luo authored
      - Add av1_build_quantize() function so that quantization
        related unit test would be able to access quant/dequant
        table without starting an encoder instance and directly
        accessing cpi.
      
      Change-Id: I8ba429e5deb7a4e7f967996aaec1d20bff0feb3c
      c621023e
  23. 25 May, 2017 3 commits
  24. 24 May, 2017 1 commit
  25. 22 May, 2017 1 commit
  26. 21 May, 2017 2 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Don't assume TX units are half MI_SIZE in skip context indexing. · 5e81643d
      Timothy B. Terriberry authored
      Currently the "transform units" used to measure transform sizes
      in some parts of the code are based on the smallest defined
      transform size.
      
      cb4x4 currently defines a 2x2 transform size, even when chroma_2x2
      is not enabled, which means that the scale of the transform units
      was always double that of MODEINFO units.
      
      Several areas of the code were hard-coding this assumption instead
      of converting from one to the other using appropriate constants.
      
      Change-Id: Ibc55671aa5bc3ad272cb8a036f9c4f9621df85ab
      5e81643d
    • Timothy B. Terriberry's avatar
      cb4x4: Fix reset_skip_context() without chroma_2x2 · a2d5cdef
      Timothy B. Terriberry authored
      reset_skip_context() was always clearing the entropy contexts for
      all three color planes, using a block size that corresponded with
      the luma plane.
      
      However, when chroma_2x2 is disabled, then for sub-8x8 luma block
      sizes, the corresponding chroma block size is always 4x4, and the
      skip flag only affects the chroma blocks corresponding to the
      upper-left luma block.
      
      This patch makes reset_skip_context() reset the contexts that
      actually correspond to the chroma blocks that are skipped (if any).
      It also moves reset_skip_context() to av1_reset_skip_context() in
      blockd.c, because blockd.h gets included before onyx_int.h, which
      declares the required is_chroma_reference() function.
      reset_skip_context() was too large and used in too many places to
      be a reasonable candidate for inlining, anyway.
      
      AWCY results on objective-1-fast:
      
      cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0301 |  0.1068 |  0.1463 |   0.0359 | 0.0260 |  0.0347 |     0.0479
      
      A regression (near the noise range), but without this fix, the line
      buffer size required by the entropy contexts will be doubled.
      
      Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
      a2d5cdef