1. 10 Nov, 2017 5 commits
  2. 09 Nov, 2017 11 commits
    • Yunqing Wang's avatar
      Disable adapt_scan when large_scale_tile = 1 · ea35e65f
      Yunqing Wang authored
      In EXT_TILE experiment, disabled adapt_scan when large_scale_tile = 1.
      
      Change-Id: If3b20d5fe3a6674aefba3e37b2458137ca7918ff
      ea35e65f
    • Linfeng Zhang's avatar
      Add av1_get_br_level_counts() · 97fc474c
      Linfeng Zhang authored
      which calculates br level counts in block.
      
      Change-Id: Iec5c9a8a0ce7e57bf5fb29db552f6a9065c5de88
      97fc474c
    • Linfeng Zhang's avatar
      Add av1_get_base_level_counts() · f72e1382
      Linfeng Zhang authored
      which calculates base level counts in block.
      
      Change-Id: Ia975faad4afbfc0c587bdcd403de3d4dc3f5f411
      f72e1382
    • Linfeng Zhang's avatar
      Split get_level_count_mag() · 8c841f7d
      Linfeng Zhang authored
      to get_level_count() and get_level_mag() since they actually
      calculate in different levels and get_level_mag() is hard to be SIMDed.
      
      Change-Id: Iedb12a1d592cf09425e5a77e6bdc9990c271c872
      8c841f7d
    • Linfeng Zhang's avatar
      Pad extra columns in txb levels and signs · 1122d7da
      Linfeng Zhang authored
      This helps the removal of horizontal availability check.
      
      Change-Id: Ie3b97eea63b4cc79ec78df119c2730a4d7cf539d
      1122d7da
    • Linfeng Zhang's avatar
      Pad extra rows in txb levels and signs · 679d81e9
      Linfeng Zhang authored
      This helps the removal of vertical availability check.
      
      Change-Id: Ie9204e3f2aacd86c8e19f1db0e40949e437a500c
      679d81e9
    • Hui Su's avatar
      Add flag to indicate if intrabc is used · 8587878c
      Hui Su authored
      Change-Id: If8a4f3d256e619c9efdb66b1d8b8da5b8fc980ab
      8587878c
    • Rostislav Pehlivanov's avatar
      Add the q_segmentation experiment · f624dd5a
      Rostislav Pehlivanov authored
      This experiment implements low-cost delta q signalling on a per-block basis
      for all non-inter frame types, which would allow for more efficient AQ
      which bases its decisions on temporal information.
      
      Based on an Intel proposal from March.
      
      Change-Id: I18e73d8b12f4caa0b165df12c58ab506271bec03
      f624dd5a
    • Yaowu Xu's avatar
      Disable in-loop filtering for single_tile_decoding · 35ee2345
      Yaowu Xu authored
      BUG=aomedia:1014
      
      Change-Id: I8846432861e9859a00f702407a82d4223c093fe2
      35ee2345
    • Monty Montgomery's avatar
      Separate quantizers used for quantization from RDO · 125c0fca
      Monty Montgomery authored
      Generalize quantizer setup so that quantization and TX can use
      different coefficient shifts/scalings without inpacting RDO lambda
      generation.
      
      This patch is documentaiton + a minor refactor setting up later
      work; it causes no functional change.
      
      monty-daalaTX-fulltest-Daalabaseline-o1f@2017-11-07T00:01:20.779Z ->
       monty-daalaTX-fulltest-DaalaRDO-o1f@2017-11-07T00:02:31.347Z
      
      PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
       N/A |  0.0000 |  0.0000 |      N/A |  N/A |     N/A |        N/A
      (note-- the numbers above were collected using --cpu-used=3, which
       appears to be newly broken.)
      
      monty-daalaTX-fulltest-Daalabaseline-o1f4@2017-11-07T05:59:16.553Z ->
       monty-daalaTX-fulltest-DaalaRDO-o1f4@2017-11-07T05:59:50.180Z
      
        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
      
      monty-daalaTX-fulltest-Daalabaseline-s1@2017-11-07T00:01:46.582Z ->
       monty-daalaTX-fulltest-DaalaRDO-s1@2017-11-07T00:02:56.282Z
      
        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: Ia5a3c052eacd17184ca1b0fe6d032cfb9afdb77f
      125c0fca
    • Linfeng Zhang's avatar
      Initialize update_eob to -1 in txb code · 848f7bc7
      Linfeng Zhang authored
      To skip possible unnecessary looping.
      
      Change-Id: If611d344ab39eee53de6c5256ce5f8febedecc9b
      848f7bc7
  3. 08 Nov, 2017 5 commits
    • Arild Fuldseth (arilfuld)'s avatar
      FRAME_SIZE: Never exceed maximum frame dimensions. · b638074c
      Arild Fuldseth (arilfuld) authored
      Encoder:
      Use oxcf->width/heigth instead of cm->width/height in sequence header.
      aom_internal_error() if cm->width/height is larger than max values.
      
      Decoder:
      aom_internal_error() if cm->width/height is larger than max values.
      
      Change-Id: I8d8b415efe82d961dbe34377f4da79379cb111a8
      b638074c
    • Zoe Liu's avatar
      Remove ONE_SIDED_COMPOUND experimental flag · c01dddb7
      Zoe Liu authored
      Always assume ONE_SIDED_COMPOUND is true as it has been adopted
      officially. Further, this patch also fixes the cmake setup for
      the experiment of EXT_COMP_REFS, as when EXT_COMP_REFS is on, it
      shall always have ONE_SIDED_COMPOUND on (but that was not the case
      without this patch).
      
      We leave EXT_COMP_REFS for the time being, even though it is also
      adopted, since by keeping this flag, it may allow its turning off to
      tune the encoder speed. The experiment of EXT_COMP_REFS should be
      removed eventually at the closing of the bitstream.
      
      Change-Id: I0644318e522f5b48d5bba4e4391104a24d43cdc3
      c01dddb7
    • Yaowu Xu's avatar
      Revert "Turn on the max_tile experiment" · 81d458b2
      Yaowu Xu authored
      This reverts commit ab8bb8b8.
      
      The reverted breaks many nightly run tests, reverting this temporarily
      to allow nightly tests to detect other failures. Once the issues are
      fixed, we can reenable the change in the reverted commit.
      
      BUG=aomedia:1012
      BUG=aomedia:1013
      BUG=aomedia:1014
      
      Change-Id: I2503fe78e47c7a08bb6cfdfff2c295cec0b6497d
      81d458b2
    • Linfeng Zhang's avatar
      Remove temporary coeff_is_byte_flag in txb code · b6957c29
      Linfeng Zhang authored
      Change-Id: I8b3e028b3c17660b390ce9c65b3d31aabc83efd9
      b6957c29
    • Sebastien Alaiwan's avatar
      Cleanup unreachable statement · fcebd49e
      Sebastien Alaiwan authored
      Change-Id: I48f45d47123c3eeea0684a5652bffec499408095
      fcebd49e
  4. 07 Nov, 2017 8 commits
    • Hui Su's avatar
      intrabc: control reference areas · 64463e74
      Hui Su authored
      Change-Id: I853a0e4b5fc7e7b5c1745b401214ef71b65aad60
      64463e74
    • Rupert Swarbrick's avatar
      Move loop restoration reset into a helper function · 76405206
      Rupert Swarbrick authored
      This seems a little cleaner than having the loop open coded in four
      places.
      
      Change-Id: I2ce7be2745ba3575f618d9e261ab767d10f551f7
      76405206
    • Rupert Swarbrick's avatar
      Remove duplicated code for reading/writing sequence header · b394bfec
      Rupert Swarbrick authored
      Teach read_sequence_header_obu and write_sequence_header_obu to just
      call read_sequence_header and write_sequence_header, respectively.
      
      Change-Id: Iff27b5cfbccab0ebaf2e28d72df3d6606964936f
      b394bfec
    • Rupert Swarbrick's avatar
      Fix widths in OBU reading code · 4cbf05c5
      Rupert Swarbrick authored
      It was mixing uint32_t and size_t, which isn't correct on a 64-bit
      system and causes compilation warnings.
      
      Change-Id: I3677c02cb366d60175e762ec4249d2445ee729de
      4cbf05c5
    • Rupert Swarbrick's avatar
      Use correct RestorationInfo when encoding tilesize · 4596deb2
      Rupert Swarbrick authored
      Also, factor out some long constants to avoid line wrapping.
      
      BUG=aomedia:1009
      
      Change-Id: I7850c27d22ef8b927c3554f1083bc7bdf2c7c6b3
      4596deb2
    • Hui Su's avatar
      intrabc: add assertions for DV subpel · 1e6bf6ba
      Hui Su authored
      DV and ref DV should not have subpel values.
      
      Change-Id: I7c47c442936f1d6bda36314812c44498ba6195a6
      1e6bf6ba
    • Linfeng Zhang's avatar
      Add levels array in av1_optimize_txb() · 1015a347
      Linfeng Zhang authored
      av1_txb_init_levels() has prefix 'av1' because it will be optimized
      and not static later.
      
      Change-Id: I988da817335f122522a76c4412207c3a6fdd6b71
      1015a347
    • Rupert Swarbrick's avatar
      striped-loop-restoration: Respect tile experiments · 921b334f
      Rupert Swarbrick authored
      As of patch https://aomedia-review.googlesource.com/c/aom/+/28821 ,
      loop-restoration units cannot cross tile borders. But the context
      around each processing unit was still allowed to cross tile borders.
      This is fine in the usual case - but, when loop filtering across tiles
      is switched off, we're supposed to be able to decode each tile completely
      independently (each tile column, if dependent-horztiles is on).
      
      Roughly, the change we need to make is:
      When loop filtering across tiles is switched off, we treat each tile
      as if it were a full frame, and extend the CDEF output for that tile
      to form a 3-pixel border around the tile. We only use deblocked
      above/below pixels for processing unit boundaries which lie inside
      a tile.
      
      In terms of the code, this is implemented in two parts. This only
      applies when the loop_filter_across_tiles_flag is false; otherwise,
      we keep the old behaviour.
      
      * For processing units at the top edge of a tile, fill the above context
        with copies of the topmost line of CDEF output *from the same tile*,
        rather than using deblocked pixels from the tile above.
        The below context of processing units at the bottom edge of a tile
        is treated analogously.
      
      * When setting up the boundary for a processing stripe at the left edge
        of a tile, fill the stripe's left boundary with copies of the
        leftmost column of CDEF output from the same tile. Again, processing
        stripes at the right edge of a tile are treated analogously.
      
        Similarly to the above/below boundaries, we store the overwritten
        pixels into a pair of left/right context buffers, and restore them
        to their original values once we've dealt with that processing stripe.
      
      Change-Id: I53a0932793c1c56dc037683c6a4353a3f5dc4539
      921b334f
  5. 06 Nov, 2017 4 commits
    • Yushin Cho's avatar
      [segment] Remove coding of seg->abs_delta · d728c216
      Yushin Cho authored
      Remove the option of raw data or delta when coding the
      segment data, then only use delta coding.
      
      Raw data coding of segment data has been nowhere used but
      the option of "raw or delta codig of seg_data" has been coded to a bitstream.
      
      Change-Id: Iaf8f21692452d0c9a127b958812c6151d3c5db05
      d728c216
    • Sebastien Alaiwan's avatar
      Accept all global motion model settings · 8d88b297
      Sebastien Alaiwan authored
      When needed, fallback regular interp filter at reconstruction stage.
      
      Such bitstreams are valid.
      However, as we don't expect aomenc to generate them,
      print a helper warning.
      
      Change-Id: I7e818cf607d7d6f71df4ca7878d8976fb88c3282
      8d88b297
    • Rupert Swarbrick's avatar
      Fix mismatch with striped loop restoration+superres · 8ce049e6
      Rupert Swarbrick authored
      When upscaling a frame, we extend frame borders to stop the upscale to
      save boundary lines convolving with uninitialised data off the edges,
      which was causing encode/decode mismatches. With this patch, we only
      do the extension when there's going to be an upscale (otherwise
      there's no need), which should give a small coding gain when not
      upscaling.
      
      More importantly, it forces us to extend in the decode path whether or
      not we are using loop restoration, which matches what the encoder does
      and fixes a mismatch.
      
      Change-Id: Ie5a0791b0cbedbf254f9080f3cbf668318673f2f
      8ce049e6
    • Dominic Symes's avatar
      Turn on the max_tile experiment · ab8bb8b8
      Dominic Symes authored
      max_tile was provisionally adopted at the working group meeting 2017-Oct-10
      
      This patch also enables support for 64x64 and 128x128 superblock size for max tile
      (rather than assuming 128). There is also one fix for max_tile in combination of
      loop restoration where the width/height was in the wrong units for max-tile specific code.
      
      Change-Id: Icb862a2738fea5fc6215819396e1afa4eb86e461
      ab8bb8b8
  6. 05 Nov, 2017 1 commit
  7. 04 Nov, 2017 3 commits
    • Yue Chen's avatar
      Remove NCOBMC_ADAPT_WEIGHT from AV1 · 80daf0c4
      Yue Chen authored
      Development of this experiment will be deferred to AV2.
      
      Change-Id: I3c4615a21b59508500bed8aab0a5c54413b4f284
      80daf0c4
    • Jingning Han's avatar
      Separate ref frame mvs control from prev_frame_mvs · e17ebe92
      Jingning Han authored
      The control of using reference frame motion vector is a separate
      factor from the existence of previous frame motion vectors. This
      commit decouples these two, such that the encoder can control the
      use of reference motion vector. When it is used, one can further
      identify if the previous frame exists or not, then to decide if
      need to force use_prev_frame_mvs to be zero.
      
      This solves the issue where the previous frame mvs is set to be
      0 and it accidentally shuts off the access to all other existing
      referece frames mvs in the mfmv system. It brings back the coding
      performance gains to normal.
      
      Change-Id: I2531f73e55582a9bb5b3e0ff47e361a199ec8082
      e17ebe92
    • Debargha Mukherjee's avatar
      Simplify tx_mode frame level bit · 923b73d8
      Debargha Mukherjee authored
      Adds a new experiment to simplify the tx_mode symbol.
      
      The existing frame level tx_mode information is converted to a single bit
      to select between largest tx_size for a prediction unit or specified
      at the block level. The less useful modes: ALLOW_8X8, ALLOW_16X16,
      etc. are removed.
      
      Change-Id: Ib9358e17b0158a167eb4edef79f36ff113aa56e1
      923b73d8
  8. 03 Nov, 2017 3 commits
    • Yunqing Wang's avatar
      Allow to disable the probability update · 0e141b56
      Yunqing Wang authored
      Added the function of allowing to disable the probability update while
      needed. This would be needed while encoding in multiple tiles, and
      enabling/disabling probability update can be set separately for every
      individual tile.
      
      Change-Id: Ic3c64e6cebac89c483d48b874761bd2e902d81e6
      0e141b56
    • David Barker's avatar
      Fix bug introduced by commit 01563088 · b44deca9
      David Barker authored
      When fixing one bug in av1_decode_tg_tiles_and_wrapup, I seem to have
      introduced another bug. This was due to checking the wrong condition
      on whether to update the frame context at the end of the frame.
      
      BUG=aomedia:1001
      
      Change-Id: I929a710e2de31a89cc7899fb1605ca7edf968a87
      b44deca9
    • Yue Chen's avatar
      Disable filter_intra mode in <8x8 tx blocks · 95e13e23
      Yue Chen authored
      0.159% gain on lowres 60 frames, compared to 0.236% gain if we don't
      restrict it in small tx blocks.
      (--disable-ext-partition --disable-ext-partition-types
       --disable-convolve-round --disable-ext-comp-refs)
      
      Change-Id: I1d1c5474ca27de9dec992ea30a9883afd7a56474
      95e13e23