Enhance the transform skipping decision-making in non-rd mode
authorYunqing Wang <yunqingwang@google.com>
Wed, 25 Mar 2015 21:19:29 +0000 (14:19 -0700)
committerYunqing Wang <yunqingwang@google.com>
Wed, 1 Apr 2015 16:43:40 +0000 (09:43 -0700)
commita0043c6d3027339eec6db415a88af975e0274bab
tree81ed10ebc70dafcefbb5ebd77197fbbbc616522b
parentfc981147618756b5f02fc64d987681600bd3d5fe
Enhance the transform skipping decision-making in non-rd mode

For large partition blocks(block_size > 32x32), the variance
calculation is modified so that every 8x8 block's variance
is stored during the calculation, which is used in the
following transform skipping test. Also, the variance for
every tx block is calculated. The skipping test checks all tx
blocks in the partition, and sets the skip flag only if all tx
blocks are skippable. If the skip flag of Y plane is 1, a
quick evaluation is done on UV planes. If the current partition
block is skippable in YUV planes, the mode search checks fewer
inter modes and doesn't check intra modes.

The rtc set borg test(at speed 6) showed that:
Overall psnr: -0.527%; Avg psnr: -0.510%; ssim: -0.573%.
Average single-thread speedup on rtc set was 3.5%.
For 720p clips, more speedups were seen.
gipsrecmotion: 13%
gipsrestat: 12%
vidyo: 5 - 9%
dark: 15%
niklas: 6%

Change-Id: I8d8ebec0cb305f1de016516400bf007c3042666e
vp9/encoder/vp9_pickmode.c