1. 17 Nov, 2017 3 commits
  2. 16 Nov, 2017 11 commits
    • Ola Hugosson's avatar
      lv_map_multi: revert accidental prob change · 52d6c895
      Ola Hugosson authored
      In e72a2091 one lps default probability was accidentally changed from 1 to 128 for
      non LV_MAP_MULTI mode. This commit reverts that change and make the change only for
      LV_MAP_MULTI mode. Also rather than changing to 128, the probability is changed to 10.
      Change-Id: Ia8950379c46c59d40ea388fcd0621bbd78c26ede
    • Sebastien Alaiwan's avatar
      Remove RAWBITS experiment · 3db08452
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      Change-Id: I26d10463bdb592fa1fda022a0da19dd6c37159ca
    • Yaowu Xu's avatar
      Fix warning of unused function definition · 9b803916
      Yaowu Xu authored
      Change-Id: Ib82549c4fae8bca285062084ed7c9c43b84e1660
    • Hui Su's avatar
      intrabc: replace left shift with multiply · 30483c9b
      Hui Su authored
      In read_intrabc_info() and assign_dv().
      Change-Id: Ic430147a9a15024d942bde361be0c4a603f812e4
    • Yue Chen's avatar
      Improve filter_intra throughput · 11bac017
      Yue Chen authored
      The prediction can be done in 2x2 or 4x4 processing unit, within
      which there is no dependency and the computation can be fully
      Also turn < 8x8 filter_intra on, and disable it in > 32x32 txbs.
      Change-Id: I4f8a3104019cbb35e88f342d97516f81b19152b0
    • David Barker's avatar
      loop-retoration: Fix overflow in self-guided filter · 9c1f92ba
      David Barker authored
      A while ago, I calculated some bounds on the intermediate values inside
      the self-guided filter. These bounds turned out to be not quite correct
      in one particular instance (when we have a large region of max-value
      This caused a variable to overflow a uint32_t when decoding 12-bit
      streams in the reference decoder, and would force 8/10-bit-only
      hardware to use wider buffers than intended in order to match the
      reference code.
      Fortunately, this can be fixed quite easily, with minimal changes
      to the filter output. See comments within the patch for the exact
      Also re-instate a Wikipedia link which seems to have gone missing
      but which provided useful context for the derivation of the bounds.
      Change-Id: I83d4a277a37eff048af9989cccf19202fafb17b5
    • David Barker's avatar
      loop-restoration: Fix + refactor stripe boundary setup · 16ff7ef3
      David Barker authored
      * Setup and restore the correct number of left/right boundary
        pixels at vertical tile edges, and save them in the correct
        Also fix the restore process in high-bitdepth mode.
      * When loop filtering across tiles is enabled, we were previously
        acting inconsistently at horizontal tile borders: The stripe
        just above the boundary would use CDEF pixels from the tile below
        for context, while the stripe just below would use deblocked
        pixels from the stripe above.
        The intended design appears to have been to use CDEF pixels on
        both sides (so we logically have a 64-pixel high stripe, it's just
        split into an 8-pixel and a 56-pixel high stripe in order to keep
        the coefficient sets aligned to tiles)
        Implement that behaviour by disabling the context setup process
        when at a horizontal tile border.
      * Pull some common calculations out of
        {setup,restore}_processing_stripe_boundary and into their
        common caller. This allows us to reduce the number of arguments
        going into each function and their internal complexity.
      * Add more design comments around stripe boundary setup,
        as there are quite a lot of constraints to be aware of
      Change-Id: Ic1586c149b7f764b9c1a711df3f11fb0f130b38a
    • Monty Montgomery's avatar
      Eliminate tx_size dependant shifts for Daala TX · a26262c3
      Monty Montgomery authored
      short-circuit av1_get_tx_scale to always return zero when
      CONFIG_DAALA_TX, and remove it from the actual Daala TX toplevel
      This has potential overflow consequences for any metrics computation
      based on pixels; as such, also force use of the high-bitdepth path in
      each of these case.
      monty-rest-of-stack-baseline-s1@2017-11-13T00:39:03.881Z ->
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0030 | -0.0523 |  0.2656 |  -0.0239 | -0.0033 | -0.0029 |     0.0067
      objective-1-fast --limit=4:
      monty-rest-of-stack-baseline-o1f4@2017-11-13T00:37:06.999Z ->
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0264 |  0.2303 |  0.0822 |  -0.0109 | -0.0395 | -0.0709 |     0.0538
      Change-Id: I57da71861f105dc7a404fa75a75bde573855ef79
    • Zoe Liu's avatar
      Fix the spacing format for frame_refs · 0b7756b7
      Zoe Liu authored
      Change-Id: Ifd8275b9368139c8f1ab1e60ea09e177edd03bd1
    • Yunqing Wang's avatar
      Modify lightfield encoding example · b041d8a7
      Yunqing Wang authored
      Modified the lightfield encoding example to accommodate HW implementation
      requirements. Fixed the encoding scheme, generated a bitstream of a list
      of references followed by the surrounding large scale tile coded frames.
      All large scale tile coded frames use the same uncompressed frame header
      and the same set of frame contexts. This example also wrote out the frame
      header and frame contexts while encoding a large scale tile frame and
      setting EXT_TILE_DEBUG to 1.
      Change-Id: I7cc19099195d0a20335d5c6bfb9f493f1bf3a7b2
    • Yunqing Wang's avatar
      Force to have a common frame header in large scale tile coding · b6e23bc4
      Yunqing Wang authored
      In large scale tile coding(namely, large_scale_tile = 1), forced
      all frames to generate a bit-exact uncompressed frame header.
      This patch modified parameters that could change from one frame to
      Change-Id: Ibe72519da0b8a4f5a4ef30a4303ad7d7e4992a65
  3. 15 Nov, 2017 15 commits
  4. 14 Nov, 2017 11 commits
    • Debargha Mukherjee's avatar
      Temporarily turn off sse4_1 code for sgr · 256e1d23
      Debargha Mukherjee authored
      Until a valgrind error coming from the sse4 code is fixed.
      This should resolve the valgrin below.
      Change-Id: Ic461edb1da017d703a098bf5f9491fa51d0debcc
    • Sebastien Alaiwan's avatar
      Move encoder-only code to av1/encoder · 95137bde
      Sebastien Alaiwan authored
      Change-Id: Ic4e16f30827e2e2e2dd140aee94d309b049dd063
    • Soo-Chul Han's avatar
      enable segment_globalmv (adopted) · b65e470a
      Soo-Chul Han authored
      Change-Id: I56a67e75d9f366dff8d92c9185b879365de437a7
    • Zoe Liu's avatar
      Change mv projection to signed rounding · 11273449
      Zoe Liu authored
      The numerator in the mv projection can be negative, e.g. cur_to_bwd
      or cur_to_alt2, since either bwdref or altref2 can be a forward
      predictive reference, whereas the denominator always stays positive.
      The rounding inside mv projection hence should use signed operation.
      Change-Id: I42a105835754a002dd31fcfa7c845e4c105ec54f
    • Rupert Swarbrick's avatar
      Don't send chroma data in monochrome mode · dcb3cff5
      Rupert Swarbrick authored
      This is still a rather inefficient black+white encoder, since it carefully
      computes some chroma data, but just doesn't write it. However, at least the
      bitstream is now monochrome.
      Change-Id: Ie8a89bf329e7b41441032fb0d9e9011385bc12ff
    • Hui Su's avatar
      intrabc: use its own mv cost table · dfcbfbd4
      Hui Su authored
      To faciliate using intrabc on interframes.
      Change-Id: Ibfe376190adf24d15198c5fb548e1050e191a3d6
    • Rupert Swarbrick's avatar
      Replace force*split with has_rows/has_cols in rd_pick_partition · 1c2dfae3
      Rupert Swarbrick authored
      I think the result is a little easier to reason about (you now talk
      about a property of the block, rather than the behaviour that should
      be enforced). It also matches the code in read_partition in
      Change-Id: I13ba06b1504fa153b8b6b60fa14b373483639718
    • Rupert Swarbrick's avatar
      Remove nested #if !CONFIG_NEW_MULTISYMBOL lines · 3b48a6d4
      Rupert Swarbrick authored
      No change to the code, but these #if !CONFIG_NEW_MULTISYMBOL lines are
      all in the #else part of an #if CONFIG_NEW_MULTISYMBOL...
      Change-Id: Ibf11b1f0711113d9ee52927dcaf243d74e3f9d28
    • Rupert Swarbrick's avatar
      Save right # of lines in save_deblock_boundary_lines · 7a7fffef
      Rupert Swarbrick authored
      The "src_height" computed in save_deblock_boundary_lines didn't match
      the one in save_tile_row_boundary_lines, which meant that the wrapper
      function assumed the deblock code was saving some lines and that code
      thought that save_cdef_boundary_lines would do it.
      This patch fixes up the logic to match, and also completely gets rid
      of the lines_to_save variable (after all, bad things would happen if
      lines_to_save was 1 because we'll still read both boundary lines
      The tile height gets rounded up to a multiple of 8 luma pixels in
      save_tile_row_boundary_lines to avoid nasty corner cases. This will
      only have any effect for rows at the bottom of the frame (where
      av1_get_tile_rect clips to the frame boundary).
      Change-Id: I55adb53fa8ba9c7f97fb2fd5b328a3f2f5065464
    • Ola Hugosson's avatar
      WIP: lv_map_multi: make br multi symbol · e72a2091
      Ola Hugosson authored
      The br_cdf and lps_cdf with a new 4-state symbol br_cdf.
      The br symbol indicates whether the level is k, k+1, k+2 or >k+2
      In the latter case, a new br symbol is read. Up to 4 br symbols are
      read which will reach level 14 at most. Levels greater than 14 are
      golomb coded.
      The adapted symbol count is reduced further by this commit.
      E.g. for the I-frame of ducks_take_off at cq=12, the number of adapted symbols
      is reduced from 4.27M to 3.85M. About 10% reduction.
      Gains seems about neutral on a limitied subset.
      Change-Id: I294234dbd63fb0fa26aef297a371cba80bd67383
    • Ola Hugosson's avatar
      WIP: lv_map_multi: New experiment · 13892108
      Ola Hugosson authored
      This experiment modifies lv_map to make use of multi symbol.
      Replace the nz_map and coeff_base binary CDF with a new multi-symbol
      CDF of size 4. The new base_cdf indicates for each coeff if the level
      is 0, 1, 2 or >2. Two new special contexts are added to be used for the
      last coefficient (the EOB coeff). For the EOB coefficient we already know
      that it is non-zero. We use one context for DC EOB and one for AC EOB
      (this can potentially be refined more).
      The new symbol is read/written by special bitreader/bitwriter functions.
      Those functions reduce the probability precision from 15bit to 9bit before
      the invocation of the arithmetic coding engine.
      The adapted symbol count is significantly reduced by this experiment.
      E.g. for the I-frame of ducks_take_off at cq=12, the number of adapted symbols
      is reduced from 6.7M to 4.3M.
      Change-Id: Ifc3927d81ad044fb9b0733f1e54d713cb71a1572