diff options
author | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-30 07:08:34 +0000 |
---|---|---|
committer | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-30 07:08:34 +0000 |
commit | b834726e39182f52eb703becb067e341dbc4adb7 (patch) | |
tree | ca675edde66d0691053f6282823adcb9666a20a7 /DEPS | |
parent | 3e99baf3de4049c43729d87081b4600753d977fe (diff) | |
download | chromium_src-b834726e39182f52eb703becb067e341dbc4adb7.zip chromium_src-b834726e39182f52eb703becb067e341dbc4adb7.tar.gz chromium_src-b834726e39182f52eb703becb067e341dbc4adb7.tar.bz2 |
libyuv r930 for RGB to YUV and unlimited width.
An Android developer noted a 'red tint' in RGB24ToI420 for Neon. THe C code was ok.
The Y channel was okay, but the UV channels used an averaging trick: Sum of 4 values, then adjust matrix coefficients down by 4x to compensate. Fast, but unfortunately this leads to a rounding error on some coefficients. In this version, a rounding shift of 1 is done, and the coefficients are only adjusted by 2x, optimizing for quality, but hurting performance roughly 10%.
RGB24ToUV_NEON was specifically needed, but all RGB formats (9 of them), and several YUV color spaces were affected.
There are 2 future variations of this that may be better performance. The original code, but with adjusted coefficients that round and sum to 1.0
Or using a half add, which is less accurate, but mimics pavgb on ssse3, and eliminates the explicte shift instructions.
As there is an open bug on RGB24 To I420 quality loss
Use malloc with variable sized row buffers to avoid stack overflow and relax width restrictions. Previously was limited to 4k on x86 and 1080p on arm. In practice the new limitation is 32767 pixels wide.
BUG=330839
TESTED=try bots
R=wjia@chromium.org
Review URL: https://codereview.chromium.org/100413011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242713 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'DEPS')
-rw-r--r-- | DEPS | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -247,7 +247,7 @@ deps = { "/trunk/jsoncpp/src/lib_json@" + Var("jsoncpp_revision"), "src/third_party/libyuv": - (Var("googlecode_url") % "libyuv") + "/trunk@919", + (Var("googlecode_url") % "libyuv") + "/trunk@930", "src/third_party/smhasher/src": (Var("googlecode_url") % "smhasher") + "/trunk@149", |