Add lightweight dithering to 10->8 bit conversion. Also optimize / 4 and % 4. I assumed the compiler would do this automatically but the performance bump implies it's not doing that.
Add lightweight dithering to 10->8 bit conversion.
Also optimize / 4 and % 4. I assumed the compiler would do this automatically but the performance bump implies it's not doing that.

           Before | Optimized
No dither: 4.8 ms | 3.5 ms
Dither   : 9.6 ms | 4.2 ms

Before: https://drive.google.com[]file/d/0B07DogHRdEHcaXVobi1wZ2wxeUE/view?usp=sharing
After: https://drive.google.com[]file/d/0B07DogHRdEHcVS1PN05kaU1odm8/view?usp=sharing

Known issue: The remainder from the last Y pixel will leak into the first U pixel. Also U and V remainders leak into each other but I don't think it causes any perceptual difference.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150255151

google/ExoPlayer,stari4ek/ExoPlayer,ebr11/ExoPlayer,superbderrick/ExoPlayer,MaTriXy/ExoPlayer,zhouweiguo2017/ExoPlayer,tntcrowd/ExoPlayer,androidx/media,saki4510t/ExoPlayer,zhouweiguo2017/ExoPlayer,jeoliva/ExoPlayer,amzn/exoplayer-amazon-port,jeoliva/ExoPlayer,saki4510t/ExoPlayer,michalliu/ExoPlayer,zhouweiguo2017/ExoPlayer,KiminRyu/ExoPlayer,JasonFengHot/ExoPlayerSource,ebr11/ExoPlayer,michalliu/ExoPlayer,stari4ek/ExoPlayer,barbarian/ExoPlayer,YouKim/ExoPlayer,yangwuan55/ExoPlayer,yangwuan55/ExoPlayer,stari4ek/ExoPlayer,YouKim/ExoPlayer,tntcrowd/ExoPlayer,barbarian/ExoPlayer,JasonFengHot/ExoPlayerSource,MaTriXy/ExoPlayer,superbderrick/ExoPlayer,KiminRyu/ExoPlayer,kiall/ExoPlayer,saki4510t/ExoPlayer,KiminRyu/ExoPlayer,tntcrowd/ExoPlayer,ened/ExoPlayer,amzn/exoplayer-amazon-port,YouKim/ExoPlayer,YouKim/ExoPlayer,androidx/media,jeoliva/ExoPlayer,kiall/ExoPlayer,amzn/exoplayer-amazon-port,superbderrick/ExoPlayer,michalliu/ExoPlayer,barbarian/ExoPlayer,ened/ExoPlayer,kiall/ExoPlayer,ened/ExoPlayer,JasonFengHot/ExoPlayerSource,ebr11/ExoPlayer,google/ExoPlayer,androidx/media,yangwuan55/ExoPlayer,google/ExoPlayer,MaTriXy/ExoPlayer