1. 22 Aug, 2017 1 commit
  2. 19 Aug, 2017 3 commits
    • Cheng Chen's avatar
      Change experimental flag name · 13fc8194
      Cheng Chen authored
      CONFIG_UV_LVL --> CONFIG_LOOPFILTER_LEVEL
      Change name because the experiment combines filter level search
      in U, V plane, and horizontal, vertical search in Y plane.
      
      Change-Id: Ia05b8f80cd93b60a0305eb94e5783559ef904c13
      13fc8194
    • Cheng Chen's avatar
      Dual deblocking filter strength thresholds · 179479fe
      Cheng Chen authored
      A new experiment for deblocking filter that separates vertical
      and horizontal filter strengths. This experiment is based on the
      assumption that non-flatness characteristics of vertical and
      horizontal direction may differ. Therefore selecting different
      filter strengths for vertical and horizontal can improve deblocking
      performance.
      
      The process of finding proper filter strength:
      1. Search through the filter level under the constraint that
         (vertical == horizontal), and find the best solution.
      2. Fix vertical level as the best solution found in step 1 and vary
         horizontal level to find the best value.
      3. Fix the selected horizontal level, vary vertical level to find
         its best value.
      
      The experiment is working with UV_LVL, sharing the same config flag.
      The searching for horizontal and vertical filter strength only applies
      on Y plane for now.
      
      The experimental flag should be changed to filter_level later.
      
      Change-Id: I164eec8d3ccb3da7ff109c5c55f4b52c1536ddf1
      179479fe
    • Sarah Parker's avatar
      Prevent bitstream from signaling illegal compound types · 680b9b17
      Sarah Parker authored
      Currently nothing forbids wedge from being signalled when
      the block is > 32X32, even though there is no corresponding wedge
      mask for that block size.
      
      BUG=aomedia:640
      BUG=aomedia:636
      
      Change-Id: I538be0229a12b5ef01b2e5a950c9f16ef9a5c51e
      680b9b17
  3. 18 Aug, 2017 1 commit
  4. 15 Aug, 2017 1 commit
    • Debargha Mukherjee's avatar
      Miscellaneous fixes for resize/frame-superres · 17e7b081
      Debargha Mukherjee authored
      1. Fixes logic for disabling global motion w/ resize. Turns off
      conditional write/read of global parameters since it does not
      work currenlty. To be fixed later.
      2. Fixes call for av1_scale_if_required in encoder_frame_with_resize
      function
      3. Remove asserts for the scaled convolve functions
      
      Change-Id: I6a0f18b5ab5cc819bc27ef9fc2f28b0e391643a0
      17e7b081
  5. 14 Aug, 2017 1 commit
  6. 11 Aug, 2017 1 commit
    • Steinar Midtskogen's avatar
      Add experiment CONFIG_CDEF_SINGLEPASS: Make CDEF single pass · 5978212b
      Steinar Midtskogen authored
      Low latency, cpu-used=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.3162 | -0.6719 | -0.6535 |   0.0089 | -0.3890 | -0.1515 |    -0.6682
      
      High latency, cpu-used=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0293 | -0.3556 | -0.5505 |   0.0684 | -0.0862 |  0.0513 |    -0.2765
      
      Low latency, cpu-used=4:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2248 | -0.7764 | -0.6630 |  -0.2109 | -0.3240 | -0.2532 |    -0.6980
      
      High latency, cpu-used=4:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1118 | -0.5841 | -0.7406 |  -0.0463 | -0.2442 | -0.1064 |    -0.4187
      
      Change-Id: I9ca8399c8f45489541a66f535fb3d771eb1d59ab
      5978212b
  7. 10 Aug, 2017 1 commit
    • Urvang Joshi's avatar
      Remove PALETTE flag · c6300aa1
      Urvang Joshi authored
      This experiment is now adopted as it was cleared by Tapas.
      
      Note: Palette use can still be controlled by command-line option
      "--tune-content=..." in 'aomenc'.
      
      Change-Id: I832f49f20f60c34bdef5b424755849c496687e87
      c6300aa1
  8. 09 Aug, 2017 1 commit
    • Rupert Swarbrick's avatar
      ext-partition-types: Don't allow 4:1 blocks to use palettes · 6f9cd946
      Rupert Swarbrick authored
      Since there are no CDFs set up for palettes for 4:1/1:4 blocks, we
      should make sure we don't try to use them. Without this patch,
      write_palette_mode_info gets called with a bsize of BLOCK_32X8 and
      reads (and writes) off the end of the palette_y_size_cdf array.
      
      This patch avoids calling it in this context and adds an assertion to
      make sure we don't read off the end of the array in future.
      
      The patch also adds the corresponding logic to rdopt.c.
      
      Change-Id: I4d9aea982d057e305a6b578f35457eada819d38f
      6f9cd946
  9. 07 Aug, 2017 1 commit
  10. 04 Aug, 2017 3 commits
  11. 01 Aug, 2017 5 commits
    • Thomas Daede's avatar
      Frame context signaling: Remove reset symbols from the bitstream. · a6a854b1
      Thomas Daede authored
      Because frame contexts now follow reference frames, explicit resets
      are no longer necessary, but can simply happen at the same time
      as reference frame resets.
      
      Change-Id: Idbed3794e3ed52fa298346943a3014fa1ca23897
      a6a854b1
    • Zoe Liu's avatar
      Add encoder support to ALTREF2 · e9b15e2b
      Zoe Liu authored
      This CL adds the use of ALTREF2_FRAME to both single / comp reference
      prediction at the encoder side. In particular, the encoder keeps the
      distant altref as ALTREF, and uses the internal extra altrefs to
      refresh ALTREF2.
      
      Compared with the baseline (ext_tx and global_motion disabled simply
      for speed concern):
      (a) lowres: avg_psnr -0.395% ovr_psnr -0.393% ssim -0.329%
      (b) midres: avg_psnr -0.419% ovr_psnr -0.431% ssim -0.444%
      (c) AWCY High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.6661 | -0.5988 | -0.6669 |  -0.6993 | -0.6988 | -0.7303 | -0.6051
      (d) AWCY Low Latency:
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0720 | -0.0505 |  0.1501 |   0.0670 | 0.0842 |  0.0517 |     0.0158
      
      TODO list:
      (1) To have altref2 incorporated with ext-comp-refs;
      (2) To have altref2 fully work with new-multisymbol;
      (3) To re-collect the initial default probs/cdfs;
      (4) To tune the encoder gf group structure design for altref2.
      
      Change-Id: I6ad63fd65afa903d3bba20acdb68e3b67acf7fdf
      e9b15e2b
    • Thomas Daede's avatar
      Add new experiment: frame_context_signaling. · da4d8b9c
      Thomas Daede authored
      This stores frame contexts alongside a reference frame, and always
      uses the frame in reference slot 0 (LAST_FRAME) as the source of
      the frame context.
      
      The encoder could then reorder reference frames as to control
      which frame context is used, however currently it does not.
      
      Low Latency AWCY result:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1438 |  0.4161 |     N/A |   0.0386 | -0.0281 |  0.0453 |     0.2514
      
      https://arewecompressedyet.com/?job=before-frame-context-signaling%402017-06-07T23%3A20%3A49.473Z&job=after-frame-context-signaling%402017-06-07T23%3A21%3A36.117Z
      
      Change-Id: I4f6f9b12cb403573efbf9e5c3077d62f5dedc467
      da4d8b9c
    • Rupert Swarbrick's avatar
      tempv_signaling: Simplify test for whether prev_frame works for mvs · 1f990a64
      Rupert Swarbrick authored
      For some background, see this previous change in Gerrit[0]. What's
      going on here is that we only want to use a previous frame for motion
      vector prediction if the encoded sizes match. When scaling with
      superres, this means the size before upscaling.
      
      To check this correctly, we need to check prev_frame's width/height
      and compare it with the current frame. Without superres, prev_frame's
      width/height is stored in y_crop_width/y_crop_height so we can check
      that way. With superres, those numbers are after the scaling, so can't
      be compared with cm->width and cm->height.
      
      The previous code worked around this by comparing with cm->last_width
      and cm->last_height. That works because these are the width/height for
      the last encoded and shown frame and that frame *is* prev_frame if
      last_show_frame is true. Since this is the only case when we want to
      use prev_frame, they are the numbers we need.
      
      This patch simplifies the logic by storing the width/height in
      RefCntBuffer before any scaling and then checking that they match.
      
      The check for whether we can use motion vectors from a previous frame
      is factored out into a pair of inline functions in the
      header. frame_might_use_prev_frame_mvs() is true if it's possible that
      this frame could use motion vectors from a previous frame. This
      doesn't use knowledge of what prev_frame is: it just checks we're not
      in error resilient mode and aren't a keyframe. When this is true, a
      flag is signaled in the bitstream to say whether we actually want to
      use motion vectors from the previous frame.
      
      The second function, frame_can_use_prev_frame_mvs, is true if the
      current frame / previous frame pair is suitable for sharing motion
      vectors. This is a stricter test: the previous frame needs to be
      have been shown and not to have been intra_only, and it needs to have
      the same width/height as the current frame.
      
      If the re-assignment of prev_frame (just before the calls to
      frame_can_use_prev_frame_mvs()) were removed in some way, we could
      probably combine the two functions and often save a bit per frame
      header.
      
      The other slight tidy-up in the patch is to move re-allocation of the
      mvs buffer into onyxc_int.h: the code that did the allocation was
      duplicated between the encoder and decoder.
      
      [0] https://aomedia-review.googlesource.com/c/13806
      
      BUG=aomedia:78
      
      Change-Id: If25227fa24222fc05c56529c2ac9ddf1e1c36a84
      1f990a64
    • Rupert Swarbrick's avatar
      ext_partition_types: Pass the correct CDF length for partitions · b95cf12e
      Rupert Swarbrick authored
      Each CDF for partitioning square blocks is initialised from
      an entry of default_partition_cdf in entropymode.c. These CDFs are of
      different lengths, depending on which partition types are supported by
      the block size.
      
      For example, 8x8 blocks have a CDF with only 4 entries (PARTITION_NONE
      through PARTITION_SPLIT). Blocks of a size that supports 1:4 and 4:1
      partitions have 10 entries. Currently, that's only 32x32 blocks. All
      other blocks have 8 entries.
      
      Change-Id: Ie2126b6d41afc0efedcc5b5b37fc1d0427b9a9fa
      b95cf12e
  12. 31 Jul, 2017 1 commit
    • Rupert Swarbrick's avatar
      Fix compiler warning in bitstream.c · 223f0489
      Rupert Swarbrick authored
      The write_motion_mode function only uses its "cm" parameter if it
      needs to write out global motion information or distinguish between
      motion_var and warped_motion. When these are disabled, you get a
      compiler warning which this patch silences.
      
      Change-Id: I64d06a150751cd72cf4b50799432f3161ee87938
      223f0489
  13. 29 Jul, 2017 1 commit
    • David Michael Barr's avatar
      [CFL] Uniform Q3 alpha grid with extent [-2, 2] · f6eaa159
      David Michael Barr authored
      Expand the range of alpha to [-2, 2] in Q3.
      Jointly signal the signs, including zeros.
      Use the signs to give context for each quadrant
      and half-axis. The (0, 0) point is excluded.
      Symmetry in alpha_u == alpha_v yields 6 contexts.
      
      Results on Subset1 (Compared to 9136ab7d
      
       with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 | -0.7535 | -0.7574 |  -0.0639 | -0.0843 | -0.0665 |    -0.3324
      
      Change-Id: I250369692e92a91d9c8d174a203d441217d15063
      Signed-off-by: default avatarDavid Michael Barr <b@rr-dav.id.au>
      f6eaa159
  14. 28 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] New UV_PREDICTION_MODE for CFL · 6e1cd787
      Luc Trudeau authored
      CfL is now an independent mode.
      
      Results on Subset1 (Compared to 4266a7ed with CFL enabled)
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1645 | -0.4017 |  0.2475 |  -0.1851 | -0.2179 | -0.2338 |    -0.2897
      
      Change-Id: I2e86e7ea7bfc12bb1d763e70a136ca992d57a3c5
      6e1cd787
  15. 27 Jul, 2017 2 commits
    • Cheng Chen's avatar
      Make CDEF work with EXT_PARTITION · f5bdeac2
      Cheng Chen authored
      Make CDEF select filter strength every 64x64 block when block size
      could be larger than 64x64.
      
      With/without this patch, coding performances on AWCY and Google
      test of lowres and midres are neutral.
      
      BUG=aomedia:662
      
      Change-Id: Ief82cc51be91fc08a7c6d7e87f6d13bcc4336476
      f5bdeac2
    • Cheng Chen's avatar
      Select filter level for U, V planes · e94df5cf
      Cheng Chen authored
      Previously, U, V planes share the same filter level with Y.
      Here, we search and pick the best filter level for U, V planes.
      Selected filter levels are transmitted per frame.
      This works with parallel_deblocking.
      
      Coding gain on Google test set:
      		Avg_psnr	ovr_psnr	ssim
      lowres: 	-0.116		-0.120		-0.339
      midres:		-0.218		-0.228		-0.338
      hdres:		-0.260		-0.264		-0.365
      
      Change-Id: I03d2ac47539f3eea9f3c4b08007bd6d3f4b73572
      e94df5cf
  16. 26 Jul, 2017 3 commits
    • Yue Chen's avatar
      rect_tx_ext: work with var_tx · d6bdd46b
      Yue Chen authored
      Change-Id: Ie2c34490dc50cb242bcd701308e6b55243883b15
      d6bdd46b
    • Luc Trudeau's avatar
      [CFL] UV_PREDICTION_MODE · d6d9eeeb
      Luc Trudeau authored
      A separate prediction mode struct is added to allow
      for uv-only modes (like CfL). Note: CfL will be
      added as a separate mode in an upcoming commit.
      
      Results on Subset1 (Compared to 4266a7ed 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: Ie80711c641c97f745daac899eadce6201ed97fcc
      d6d9eeeb
    • hui su's avatar
      Palette: use CDF to encode palette size and color indices · 466ae062
      hui su authored
      Around 0.9% improvement on screen_content set (encoding 30 frames).
      
      Change-Id: Ic4c9333c9af5993bc41e513b9e766450b3a951eb
      466ae062
  17. 24 Jul, 2017 1 commit
  18. 21 Jul, 2017 2 commits
  19. 20 Jul, 2017 4 commits
    • hui su's avatar
      Palette: remove palette_first_color_idx[] in PALETTE_MODE_INFO · 40b9e7fe
      hui su authored
      Handle the first color index in the tokenization process, along with the
      other color indeices.
      
      This patch also includes some minor refactoring changes.
      
      Test results verify that there is no implact on compression efficiency.
      
      Change-Id: I7de51c18a52f337320331b5e8d63dfea3cf510f0
      40b9e7fe
    • Yunqing Wang's avatar
      Make ext_tile compatible with reference_buffer · c2502b55
      Yunqing Wang authored
      In ext_tile experiment, when cm->large_scale_tile is 1, prev_frame_id can be
      the same as current_frame_id, which is prohibited in reference_buffer
      experiment and causes "CORRUPT_FRAME" error to be reported.
      
      In this patch, enable/disable reference_buffer according to large_scale_tile
      value, and thus make these 2 experiments compatible.
      
      Change-Id: If64943acb91e7a7b859db4e2ac62581e9b53ef85
      c2502b55
    • Jingning Han's avatar
      Make intra coding processed in 64x64 unit · 5b70174f
      Jingning Han authored
      Process the intra block coding in maximum of 64x64 block unit.
      This allows to simpilify the hardware design for 128x128 level
      block coding.
      
      Change-Id: I6ef1dd8549bdb53b2d2394c6aa7d61cea93686bf
      5b70174f
    • 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
      c2b797fa
  20. 19 Jul, 2017 1 commit
    • 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
      19b5c8fa
  21. 18 Jul, 2017 1 commit
    • 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
      a5378e73
  22. 17 Jul, 2017 1 commit
  23. 14 Jul, 2017 3 commits