• Yunqing Wang's avatar
    Early termination in encoding partition search · 4d2c3769
    Yunqing Wang authored
    In the partition search, the encoder checks all possible
    partitionings in the superblock's partition search tree.
    This patch proposed a set of criteria for partition search
    early termination, which effectively decided whether or
    not to terminate the search in current branch based on the
    "skippable" result of the quantized transform coefficients.
    The "skippable" information was gathered during the
    partition mode search, and no overhead calculations were
    introduced.
    
    This patch gives significant encoding speed gains without
    sacrificing the quality.
    
    Borg test results:
    1. At speed 1,
       stdhd set: psnr: +0.074%, ssim: +0.093%;
       derf set:  psnr: -0.024%, ssim: +0.011%;
    2. At speed 2,
       stdhd set: psnr: +0.033%, ssim: +0.100%;
       derf set:  psnr: -0.062%, ssim: +0.003%;
    3. At speed 3,
       stdhd set: psnr: +0.060%, ssim: +0.190%;
       derf set:  psnr: -0.064%, ssim: -0.002%;
    4. At speed 4,
       stdhd set: psnr: +0.070%, ssim: +0.143%;
       derf set:  psnr: -0.104%, ssim: +0.039%;
    
    The speedup ranges from several percent to 60+%.
                     speed1    speed2    speed3    speed4
    (1080p, 100f):
    old_town_cross:  48.2%     23.9%     20.8%     16.5%
    park_joy:        11.4%     17.8%     29.4%     18.2%
    pedestrian_area: 10.7%      4.0%      4.2%      2.4%
    (720p, 200f):
    mobcal:          68.1%     36.3%     34.4%     17.7%
    parkrun:         15.8%     24.2%     37.1%     16.8%
    shields:         45.1%     32.8%     30.1%      9.6%
    (cif, 300f)
    bus:              3.7%     10.4%     14.0%      7.9%
    deadline:        13.6%     14.8%     12.6%     10.9%
    mobile:           5.3%     11.5%     14.7%     10.7%
    
    Change-Id: I246c38fb952ad762ce5e365711235b605f470a66
    4d2c3769
vp9_speed_features.h 13.8 KB