1. 27 Jul, 2017 1 commit
    • 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
  2. 26 Jul, 2017 4 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
    • David Barker's avatar
      Avoid reading uninitialized data in decodemv.c · 0d7c4b05
      David Barker authored
      The existing code has a case where we set a variable to equal
      xd->ref_mv_stack[mbmi->ref_frame[0]][1 + mbmi->ref_mv_idx]
      even for compound blocks. However, the range of allowable
      values for mbmi->ref_mv_idx is determined by the ref_mv_count
      for the *combined* ref frame, not for the first single ref frame.
      
      This means that, if we have more ref-mv candidates for the combined
      ref frame than for the first single ref frame, then we can sometimes
      fetch uninitialized data.
      In every case where this happens, we immediately overwrite
      the destination with the correct mv, but it is still preferable
      to avoid reading uninitialized data.
      
      This patch moves the code block to avoid this bug. In addition,
      the variable (nearmv[0]) is only used when the mode equals NEARMV,
      so the condition on its assignment is changed to reflect that.
      
      Change-Id: I3bd268dc80d8065d5189999232b8a0f826d40a95
      0d7c4b05
  3. 25 Jul, 2017 1 commit
    • Luc Trudeau's avatar
      [CFL] Fix warnings when chroma_sub8x8 is disabled · 96b31516
      Luc Trudeau authored
      This change does not alter the bitstream
      
      Resuls on Subset1 (compared to 70a80a81 with cfl)
        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: I7672eb4cde3c649ebba32610f7e56500e378c062
      96b31516
  4. 24 Jul, 2017 2 commits
  5. 21 Jul, 2017 2 commits
  6. 20 Jul, 2017 7 commits
    • Zoe Liu's avatar
      Add decoder support to ALTREF2 · 043c227b
      Zoe Liu authored
      Change-Id: I11abc5448622265183abd0a58268c190b5891576
      043c227b
    • Jingning Han's avatar
      Clear unused parameters in decode_partition · ea10ad45
      Jingning Han authored
      Change-Id: Idbe1f71c49d0240e10d82081feeec9029898eecd
      ea10ad45
    • Yi Luo's avatar
      Refactor av1_update_boundary_info function · f190a165
      Yi Luo authored
      - Split av1_update_boundary_info() into two functions to avoid
        unnecessarily checking which goes through each mi block.
      - av1_setup_frame_boundary_info() sets up frame level boundary,
        i.e. non-tile case, which is called in frame level only.
      - av1_setup_across_tile_boundary_info sets up tiles boundary,
        which is called per tile, in multiple tile case.
      - Decoder running time reduction: 8.72% (1080p, 25 frames, 4Mbps).
      
      Change-Id: I2fc42d4281c77bce4a7dab5d208347308cfbe579
      f190a165
    • 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
  7. 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
  8. 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
  9. 17 Jul, 2017 3 commits
    • Lester Lu's avatar
      Unify FWD_TXFM_PARAM and INV_TXFM_PARAM · 27319b6e
      Lester Lu authored
      Change two similar structs, FWD_TXFM_PARAM and INV_TXFM_PARAM,
      into a common struct: TxfmParam. Its definition is moved to
      aom_dsp/txfm_common.h to simplify dependency.
      
      This change is made so that, in later changes of the LGT
      experiment, functions requiring FWD_TXFM_PARAM and
      INV_TXFM_PARAM, such as get_fwd_lgt4 and get_inv_lgt4, can
      also be unified.
      
      Change-Id: I756b0176a02314005060adbf8e62386f10eeb344
      27319b6e
    • Angie Chiang's avatar
      lv_map clean-up: merge get_nz_map_ctx/2 · d27f5e27
      Angie Chiang authored
      Change-Id: Ied1a493723cac2ec4674bac642525a937826733f
      d27f5e27
    • hui su's avatar
      refactor get_tx_size() and get_uv_tx_size() · 0c6244b6
      hui su authored
      Change-Id: I802c9e41ebfed090b5ad8300917aad5e16ad026a
      0c6244b6
  10. 15 Jul, 2017 1 commit
    • Lester Lu's avatar
      lgt: delete unnecessary code · 5ee2808a
      Lester Lu authored
      Currently, lgt cannot work with pvq, so those lines are not
      necessary.
      
      Change-Id: Ida7b2de599b55d94cac57365c09ac2330abe3c66
      5ee2808a
  11. 14 Jul, 2017 5 commits
    • Wei-Ting Lin's avatar
      ncobmc_adapt_weight: read/write ncobmc mode · ca710d68
      Wei-Ting Lin authored
      An ncobmc mode is selected for each squared block
      (if motion_mode == ncobmc_adapt_weight) as opposed
      to four in training
      
      Change-Id: I81e5dfca3a6fec5a95c96b17f294530880cf8f88
      ca710d68
    • Sarah Parker's avatar
      Avoid sending gm params if source and ref are different sizes · 6c998d75
      Sarah Parker authored
      Change-Id: I4b4272c99ba6ff4d983dcb694b3ea4d5de1b4e14
      6c998d75
    • Yunqing Wang's avatar
      Sample selection in warped motion · 1bc82866
      Yunqing Wang authored
      Added a sample selection process in warped motion.
      1. Gather more samples including multiple rows on the top, multiple
      columns on the left, and the upper-right block.
      2. Sort samples by the MV difference between the neighbour's MV and
      the current block's MV. Trim the samples with considerably large MV
      difference.
      
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.241   -0.243  -0.376
      lowres:      -0.104   -0.110  -0.179
      
      The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
      
      Change-Id: I2730bb31a0a3ad28215ccd16fd6da0ea8b2ed404
      1bc82866
    • hui su's avatar
      refactor get_tx_type() · 45b6475e
      hui su authored
      Change-Id: I2888bd8905253e02e3ac74597275cf56e5142d29
      45b6475e
    • Yunqing Wang's avatar
      Make EXT_TILE compatible with TILE_GROUPS · eeb08a9b
      Yunqing Wang authored
      Added a 1-bit flag 'large_scale_tile'. If it is 0 that is the default value,
      use normal tile coding in TILE_GROUPS. If it is 1, use large-scale tile
      coding in EXT_TILE.
      
      At large_scale_tile=1 case, if single-tile-decoding is required, then the
      loopfilter is disabled.
      
      Related API and unit tests were modified.
      
      Change-Id: I3ba12dc3d80ccf1ab21543ab3b16c02282c34e3b
      eeb08a9b
  12. 13 Jul, 2017 6 commits
  13. 12 Jul, 2017 2 commits
    • 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
      93c39e91
    • 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
          coding;
      (2) Add a new uni-directional compound reference pair:
          (LAST_FRAME, LAST3_FRAME);
      (3) Redesign the contexts for encoding uni-directional reference frame
          pairs;
      (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
      fcf5fa27
  14. 11 Jul, 2017 4 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 
      experiment.
      
      Change-Id: I98ca5f69a916ea8556e45b820c2eb741c9656277
      9c52192b
    • 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
      0eea89f3
    • Nathan E. Egge's avatar
      Add assert(tx_type == DCT_DCT) when FIXED_TX_TYPE. · ebced376
      Nathan E. Egge authored
      Change-Id: I9bc925ab9b93f5318eb3f1aa3401ff3de2851fef
      ebced376
    • Nathan E. Egge's avatar
      Remove the EC_ADAPT experimental flags. · 6bdc40f1
      Nathan E. Egge authored
      Removing these flags make the EC_ADAPT experiment an integral part of
       the draft AV1 bitstream definition
      This commit has no effect on metrics.
      
      Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
      6bdc40f1