• Jingning Han's avatar
    Integral projection based motion estimation · ed2dc59c
    Jingning Han authored
    This commit introduces a new block match motion estimation
    using integral projection measurement. The 2-D block and the nearby
    region is projected onto the horizontal and vertical 1-D vectors,
    respectively. It then runs vector match, instead of block match,
    over the two separate 1-D vectors to locate the motion compensated
    reference block.
    
    This process is run per 64x64 block to align the reference before
    choosing partitioning in speed 6. The overall CPU cycle cost due
    to this additional 64x64 block match (SSE2 version) takes around 2%
    at low bit-rate rtc speed 6. When strong motion activities exist in
    the video sequence, it substantially improves the partition
    selection accuracy, thereby achieving better compression performance
    and lower CPU cycles.
    
    The experiments were tested in RTC speed -6 setting:
    cloud 1080p 500 kbps
    17006 b/f, 37.086 dB, 5386 ms ->
    16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster)
    
    pedestrian_area 1080p 500 kbps
    53537 b/f, 36.771 dB, 18706 ms ->
    51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings)
    
    blue_sky 1080p 500 kbps
    70214 b/f, 33.600 dB, 13979 ms ->
    53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster)
    
    jimred 400 kbps
    13380 b/f, 36.014 dB, 5723 ms ->
    13377 b/f, 36.087 dB, 5831 ms  (2% bit-rate savings, 2% slower)
    
    Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c
    ed2dc59c