1. 10 May, 2016 1 commit
  2. 07 May, 2016 1 commit
  3. 03 May, 2016 2 commits
    • Geza Lore's avatar
      Test tile row independence. · 1982d677
      Geza Lore authored
      Tile rows should now be independent, so make pbi->inv_tile_order
      invert the decoding order of tile rows as well as tile columns.
      This should improve test coverage. Also added more tile configurations
      to the tile_independence_tests.
      
      Change-Id: I14b0f2fa9241c1acaf9e2a07071952cb33feca77
      1982d677
    • Geza Lore's avatar
      Configure tiles in tests when using ext-tile. · 67a2ff7f
      Geza Lore authored
      With ext-tile enabled, the encoder test driver needs to configure the
      tile sizes wit different values to encode using a single tile, and to
      decode all tiles. This should fix most unit test failures.
      
      Change-Id: I0a0d26737414669791f3bd8d80c537db09f06072
      67a2ff7f
  4. 23 Mar, 2016 1 commit
  5. 22 Aug, 2015 1 commit
  6. 22 Aug, 2014 1 commit
  7. 18 Jan, 2014 1 commit
  8. 12 Dec, 2013 1 commit
  9. 18 Jul, 2013 1 commit
  10. 06 May, 2013 1 commit
  11. 27 Mar, 2013 1 commit
  12. 01 Mar, 2013 1 commit
  13. 12 Feb, 2013 1 commit
  14. 05 Feb, 2013 1 commit
    • Ronald S. Bultje's avatar
      [WIP] Add column-based tiling. · 1407bdc2
      Ronald S. Bultje authored
      This patch adds column-based tiling. The idea is to make each tile
      independently decodable (after reading the common frame header) and
      also independendly encodable (minus within-frame cost adjustments in
      the RD loop) to speed-up hardware & software en/decoders if they used
      multi-threading. Column-based tiling has the added advantage (over
      other tiling methods) that it minimizes realtime use-case latency,
      since all threads can start encoding data as soon as the first SB-row
      worth of data is available to the encoder.
      
      There is some test code that does random tile ordering in the decoder,
      to confirm that each tile is indeed independently decodable from other
      tiles in the same frame. At tile edges, all contexts assume default
      values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode),
      and motion vector search and ordering do not cross tiles in the same
      frame.
      t log
      
      Tile independence is not maintained between frames ATM, i.e. tile 0 of
      frame 1 is free to use motion vectors that point into any tile of frame
      0. We support 1 (i.e. no tiling), 2 or 4 column-tiles.
      
      The loopfilter crosses tile boundaries. I discussed this briefly with Aki
      and he says that's OK. An in-loop loopfilter would need to do some sync
      between tile threads, but that shouldn't be a big issue.
      
      Resuls: with tiling disabled, we go up slightly because of improved edge
      use in the intra4x4 prediction. With 2 tiles, we lose about ~1% on derf,
      ~0.35% on HD and ~0.55% on STD/HD. With 4 tiles, we lose another ~1.5%
      on derf ~0.77% on HD and ~0.85% on STD/HD. Most of this loss is
      concentrated in the low-bitrate end of clips, and most of it is because
      of the loss of edges at tile boundaries and the resulting loss of intra
      predictors.
      
      TODO:
      - more tiles (perhaps allow row-based tiling also, and max. 8 tiles)?
      - maybe optionally (for EC purposes), motion vectors themselves
        should not cross tile edges, or we should emulate such borders as
        if they were off-frame, to limit error propagation to within one
        tile only. This doesn't have to be the default behaviour but could
        be an optional bitstream flag.
      
      Change-Id: I5951c3a0742a767b20bc9fb5af685d9892c2c96f
      1407bdc2