• Jingning Han's avatar
    Skip duplicate block encoding in the rd loop · faff6ed0
    Jingning Han authored
    This speed feature allows the encoder to largely remove the spatial
    dependency between blocks inside a 64x64 superblock, thereby removing
    the need to repeatedly encode superblocks per partition type in the
    rate-distortion optimization loop.
    A major challenge lies in the intra modes tested in the rate-distortion
    optimization loop. The subsequent blocks do not have access to the
    reconstructed boundary pixels without the intermediate coding steps.
    This was resolved by using the original pixels for intra prediction
    in the rd loop, followed by an appropriately designed distortion
    modeling on the quantization parameters. Experiments also suggested
    that the performance impact is more discernible at lower bit-rate/psnr
    settings. Hence a quantizer dependent threshold is applied to deactivate
    skip of block coding.
    For bus_cif at 2000 kbps,
    speed 0: runtime 269854ms -> 237774ms (12% speed-up) at 0.05dB
             performance loss.
    speed 1: runtime 65312ms  -> 61536ms, (7% speed-up) at 0.04dB
             performance loss.
    This operation is currently turned on in settings of speed 1.
    Change-Id: Ib689741dfff8dd38365d8c1b92860a3e176f56ec