• Rupert Swarbrick's avatar
    Stop backward adaptation if EXT_TILE + cm->large_scale_tile · 84b05ac1
    Rupert Swarbrick authored
    Backwards adaptation doesn't really make sense in this context,
    because ext-tile means the decoder might not decode every tile in the
    frame, in which case it can't work out how to adapt probabilities.
    It turns out that the tests in the tree were passing when
    SIMPLE_BWD_ADAPT was disabled because (presumably) all of them
    happened to decode every tile, so backward adaptation worked as you'd
    expect. With SIMPLE_BWD_ADAPT, there's some code in get_tile_buffers
    to figure out which is the largest tile. This wasn't mirrored in
    get_ls_tile_buffers, which caused the encoder and decoder to get out
    of sync because they ended up with different CDFs. You also can't
    easily fix things in get_ls_tile_buffers because that code is careful
    not to calculate the size of tiles it doesn't need.
    Change-Id: Ia926692f86ca1466252108e09da3de590d45f048
decodeframe.c 153 KB