From 56985cea7759fa1e72085ec851fafa2d9a450dd7 Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Fri, 11 Jun 2010 14:42:03 -0700 Subject: [PATCH] update image processing. Change-Id: I5899f88f05b9fb2ac2d7cdcb725b97d3a48d536b --- .../java/ImageProcessing/res/raw/threshold.rs | 86 +++++++++++------- .../ImageProcessing/res/raw/threshold_bc.bc | Bin 8772 -> 8524 bytes .../android/rs/image/ScriptC_Threshold.java | 4 +- 3 files changed, 53 insertions(+), 37 deletions(-) diff --git a/libs/rs/java/ImageProcessing/res/raw/threshold.rs b/libs/rs/java/ImageProcessing/res/raw/threshold.rs index 6af40122bf5f5..93a1a365bacd6 100644 --- a/libs/rs/java/ImageProcessing/res/raw/threshold.rs +++ b/libs/rs/java/ImageProcessing/res/raw/threshold.rs @@ -26,17 +26,19 @@ float gamma; float saturation; -float inWMinInB; -float outWMinOutB; +static float inWMinInB; +static float outWMinOutB; +static float overInWMinInB; +//static float3 gammaV; #pragma rs export_var(height, width, radius, InPixel, OutPixel, ScratchPixel, inBlack, outBlack, inWhite, outWhite, gamma, saturation) -#pragma rs export_func(filter, processNoBlur, computeColorMatrix, computeGaussianWeights); +#pragma rs export_func(filter, filterBenchmark); // Store our coefficients here -float gaussian[MAX_RADIUS * 2 + 1]; -float colorMat[4][4]; +static float gaussian[MAX_RADIUS * 2 + 1]; +static float colorMat[4][4]; -void computeColorMatrix() { +static void computeColorMatrix() { // Saturation // Linear weights //float rWeight = 0.3086f; @@ -64,9 +66,10 @@ void computeColorMatrix() { inWMinInB = inWhite - inBlack; outWMinOutB = outWhite - outBlack; + overInWMinInB = 1.f / inWMinInB; } -void computeGaussianWeights() { +static void computeGaussianWeights() { // Compute gaussian weights for the blur // e is the euler's number float e = 2.718281828459045f; @@ -107,40 +110,53 @@ void computeGaussianWeights() { } // This needs to be inline -void levelsSaturation(float4 *currentPixel) { +static float4 levelsSaturation(float4 currentPixel) { +#if 0 // Color matrix multiply - float tempX = colorMat[0][0] * currentPixel->x + colorMat[1][0] * currentPixel->y + colorMat[2][0] * currentPixel->z; - float tempY = colorMat[0][1] * currentPixel->x + colorMat[1][1] * currentPixel->y + colorMat[2][1] * currentPixel->z; - float tempZ = colorMat[0][2] * currentPixel->x + colorMat[1][2] * currentPixel->y + colorMat[2][2] * currentPixel->z; + float tempX = colorMat[0][0] * currentPixel.x + colorMat[1][0] * currentPixel.y + colorMat[2][0] * currentPixel.z; + float tempY = colorMat[0][1] * currentPixel.x + colorMat[1][1] * currentPixel.y + colorMat[2][1] * currentPixel.z; + float tempZ = colorMat[0][2] * currentPixel.x + colorMat[1][2] * currentPixel.y + colorMat[2][2] * currentPixel.z; - currentPixel->x = tempX; - currentPixel->y = tempY; - currentPixel->z = tempZ; + currentPixel.x = tempX; + currentPixel.y = tempY; + currentPixel.z = tempZ; // Clamp to 0..255 // Inline the code here to avoid funciton calls - currentPixel->x = currentPixel->x > 255.0f ? 255.0f : currentPixel->x; - currentPixel->y = currentPixel->y > 255.0f ? 255.0f : currentPixel->y; - currentPixel->z = currentPixel->z > 255.0f ? 255.0f : currentPixel->z; + currentPixel.x = currentPixel.x > 255.0f ? 255.0f : currentPixel.x; + currentPixel.y = currentPixel.y > 255.0f ? 255.0f : currentPixel.y; + currentPixel.z = currentPixel.z > 255.0f ? 255.0f : currentPixel.z; - currentPixel->x = currentPixel->x <= 0.0f ? 0.1f : currentPixel->x; - currentPixel->y = currentPixel->y <= 0.0f ? 0.1f : currentPixel->y; - currentPixel->z = currentPixel->z <= 0.0f ? 0.1f : currentPixel->z; + currentPixel.x = currentPixel.x <= 0.0f ? 0.1f : currentPixel.x; + currentPixel.y = currentPixel.y <= 0.0f ? 0.1f : currentPixel.y; + currentPixel.z = currentPixel.z <= 0.0f ? 0.1f : currentPixel.z; - currentPixel->x = pow( (currentPixel->x - inBlack) / (inWMinInB), gamma) * (outWMinOutB) + outBlack; - currentPixel->y = pow( (currentPixel->y - inBlack) / (inWMinInB), gamma) * (outWMinOutB) + outBlack; - currentPixel->z = pow( (currentPixel->z - inBlack) / (inWMinInB), gamma) * (outWMinOutB) + outBlack; + currentPixel.x = pow( (currentPixel.x - inBlack) * overInWMinInB, gamma) * outWMinOutB + outBlack; + currentPixel.y = pow( (currentPixel.y - inBlack) * overInWMinInB, gamma) * outWMinOutB + outBlack; + currentPixel.z = pow( (currentPixel.z - inBlack) * overInWMinInB, gamma) * outWMinOutB + outBlack; - currentPixel->x = currentPixel->x > 255.0f ? 255.0f : currentPixel->x; - currentPixel->y = currentPixel->y > 255.0f ? 255.0f : currentPixel->y; - currentPixel->z = currentPixel->z > 255.0f ? 255.0f : currentPixel->z; + currentPixel.x = currentPixel.x > 255.0f ? 255.0f : currentPixel.x; + currentPixel.y = currentPixel.y > 255.0f ? 255.0f : currentPixel.y; + currentPixel.z = currentPixel.z > 255.0f ? 255.0f : currentPixel.z; - currentPixel->x = currentPixel->x <= 0.0f ? 0.1f : currentPixel->x; - currentPixel->y = currentPixel->y <= 0.0f ? 0.1f : currentPixel->y; - currentPixel->z = currentPixel->z <= 0.0f ? 0.1f : currentPixel->z; + currentPixel.x = currentPixel.x <= 0.0f ? 0.1f : currentPixel.x; + currentPixel.y = currentPixel.y <= 0.0f ? 0.1f : currentPixel.y; + currentPixel.z = currentPixel.z <= 0.0f ? 0.1f : currentPixel.z; +#else + float3 temp; + // Color matrix multiply + temp.x = colorMat[0][0] * currentPixel.x + colorMat[1][0] * currentPixel.y + colorMat[2][0] * currentPixel.z; + temp.y = colorMat[0][1] * currentPixel.x + colorMat[1][1] * currentPixel.y + colorMat[2][1] * currentPixel.z; + temp.z = colorMat[0][2] * currentPixel.x + colorMat[1][2] * currentPixel.y + colorMat[2][2] * currentPixel.z; + temp = (clamp(temp, 0.1f, 255.f) - inBlack) * overInWMinInB; + temp = pow(temp, (float3)gamma); + currentPixel.xyz = clamp(temp * outWMinOutB + outBlack, 0.1f, 255.f); +#endif + + return currentPixel; } -void processNoBlur() { +static void processNoBlur() { int w, h, r; int count = 0; @@ -156,7 +172,7 @@ void processNoBlur() { currentPixel.y = (float)(input->g); currentPixel.z = (float)(input->b); - levelsSaturation(¤tPixel); + currentPixel = levelsSaturation(currentPixel); c4u_t *output = OutPixel + h*width + w; output->r = (uint8_t)currentPixel.x; @@ -168,7 +184,7 @@ void processNoBlur() { rsSendToClient(&count, 1, 4, 0); } -void horizontalBlur() { +static void horizontalBlur() { float4 blurredPixel = 0; float4 currentPixel = 0; // Horizontal blur @@ -209,7 +225,7 @@ void horizontalBlur() { } } -void horizontalBlurLevels() { +static void horizontalBlurLevels() { float4 blurredPixel = 0; float4 currentPixel = 0; // Horizontal blur @@ -241,7 +257,7 @@ void horizontalBlurLevels() { blurredPixel += currentPixel*weight; } - levelsSaturation(&blurredPixel); + blurredPixel = levelsSaturation(blurredPixel); c4u_t *output = ScratchPixel + h*width + w; output->r = (uint8_t)blurredPixel.x; @@ -252,7 +268,7 @@ void horizontalBlurLevels() { } } -void verticalBlur() { +static void verticalBlur() { float4 blurredPixel = 0; float4 currentPixel = 0; // Vertical blur diff --git a/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc b/libs/rs/java/ImageProcessing/res/raw/threshold_bc.bc index 29eba2db4c8aabb743c81423c5c2c81f406ab4e8..4cf0629b7f1911ff805bc525d37a90bcabfacc05 100644 GIT binary patch literal 8524 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 aA%eb&J8x0-G9ub_^=*nt5XX-r?B4-|s0E+^ literal 8772 zcmai330PCtw%*A}asq^qK)@h_i6R#j>j6Pgs3s6FRE8jfC{hy;N^KM3#8ih2K(KX) zLw#6m8(Z7bceNL`fs1HI`vutt=zCpDiLt#h)H&n>FBpRY4q!WJ}?T$4A{b8ybJLrf3O@Ejw z=50_$JQXA0x2bx=FwY;R3g;m>Nfa4eFZAc9n0L5^F6m?>(3225kY-UbbnSdpkc1jn zjfi+7^;hb2w8J5jPc@lU3tK2uOS?5lJm13P?SI1 zdiiT1E3Dn^Fyrly1$I7?ZZdRK^B| zw}7E2xLqIotrXL~;h-T^^<35ul-EZJ?ga9>EAskr%;P?f`$Lm~R(nGs{L5?qIjcb# zl7D0Rb%P|>Pw*4Py@h*4I-^^XH*5QUZ1ym0s8@y*nkzm&CE}Ufl9ss|wL;Z?TTHL? z=|}BxM@2CdkBF=ng_JZ&CY#Dj$cjcRa7G1LRzX&l)POoy!j1vM+9vBC7&6(Ws(MqU z+@#f-^1@6TW5AM3mB995lSNNfR+!d>!6Ui6g3M5ws>~+0_!}$_&IUPIW-+ZdoA{T6 zUG}&~@e3S8+&N=huYFE^!qctxn4_YLBF`%p&ro)9@Em5tEQH*2EXCiDM}$z?K}QN&7n<&If@kEDvjGSQ8kz($ z_+`tpv?HwSl)6S_M$hHG z5_iE5sB@}epW{c1Oe{F^y;9H^ukt$b4BSsx1$8_{iOxM@Nay~(j&*{QU~w-Z8+j)f z?GmPrrGJV|`06J!PKgAwEb)hCF>?Mk=Dw^+>mHfIKP0n1h!Dkl}R zswQowc^3O~ZcO@wTP7}cds**}JnJ@u)e60%*rYe980qzh6pFc{2r;?C$nN=7lSi>) zSV>Z!Dg`%n!;&0$-$^=#{(9VnX9IF!LwDsZj}ZB48diuYuZsabhNuLl?5t+#`Hr}A z>J>(7+&mdIu(!dNF5~OO_M#={by=I#iHwBV=aT*DP2uylF`pThZFO*R(*k<&`T25A z4m59{Ara7ok*gkRp7ZGA`0^flu1h5qydHt7HY=q&^XvPY*xknQDorlY$6lhu!kE;) zKI5aOqf>YKL|6@LI!N|DpNGv~4uXW~7aMYnSgNfFtNK4|Sbmwu+Lc$Y$1O=YAlrla zT0z>VPml7M8f)Cb(pAexWSl0E|2g7y|Q(l^0 z>xg@=LLWw=Q!j&{?FlAWwwY`~=?fPZ+`Sy( zGIT(KC-(aU5lA%oe;`6R8hXs=07L%`I#95S5fGu`F(OnT2gZPAQg;XK5bvi?7R;zO z@TTY@s+YAI<7=|a3z^yITY{=pxK}8S_PQ_otHWKg6}kJRNN;&bK8~L$Ki?jX^z_D+ zCCnKso0t{_s_}SN6yk2#DE2+FUNuRVM9Z4fY!J+upm#^?Z=Yqc1rjks?LplU)%H0K zo3c8njzFCG=i-Ce{hpO$?jzI%5qDI_GV;q5Ttp3NJt{>h^G9v7>+OLF3l7JgB{fq7x&9s-N{7mcOS_AEiCy2>-fE-zc?Td$Ko|gFd5EwO0>iu}sEVq3Y zVj$U4ZKlnfo<+x_h^0q6@ViKt!YKMu2aH;EV>*nY_&$$E?c09PLI_d^VALm}8t15l zGzS9J+kD3=3m5sx}@hwwI;nXpX`ne!}kK1C51B!0zuyiHm^*d~V$ z-lmD_V9WVH`-&q>{MP!F_$+c8^^sptepO9=8#rrie&zTq)HFDY;=^zj#uc~pdEF7s z=kuHgZe=263=e$@dUr*r1Pj00Je?&3B&gEtqIGt}{j@c2jSeii?e=|FcWWw3=rcYL zTY3z4mwk|@(nW}}k6mT?E9F^=yQj0A-Er#wz}?ZMdBu2i&)4tztqb zU?#<2>&O1|@qu#nJ9u0f9j;;!sRp$u`6#S;Q94{wK_4id&}Sz7-amqc(N8o zT`SYn(^wQIdRv3HP2o|xgh-fu9~LwByCC{z7B#T!Ix8ood*6s3rsD@(?N_T^MO&IyLQ~#(+m|y0}_04PJec zbt->TX#nVKMEbG*mMCOb*5dw?nt%dl+sM04HNSnvlO^=_9jGjo**oGoU2SdeJGZ0t zvBOY_5IO~R^P9iG;SKf|`=w$t1!>e=&zFNZb3I=P5*Ya}L5xTVZDbX|yKcC4k%X9A zU&LlF7B(V@Nad$jt(TxPb!Xk#x@GLf(V`kIKfOzj7}fk0x`IRk*&7%d!Gc?mNPwFfD} zb^B^8H-$=--}g$&;8j9{kO}P@o6rSHIHE zuaJ{_OiA4c?53d|f;))Op&MpF`V&=O#A9u;Fgf#e?F%io@B~Sd{X6~f!XSOJP8xen z8f>BAkklEc-(Lf9z~_(nAvHb^Wpi(}-J|HfiL$xxbR~utV*}|gbD9aZGvn=fMZo+; zt3TGWQ^!Higv%o$yuNGzyGmETsdL2&IoGcg1KW4aZb4wl_cc?Tq3a5)U-=MMMWm6ty4wiWps`m-i9E5VGmsAFp!ik>wu z0Hi(g#A3^*-8vIA+e%Gb5_o z*_wb1)x#gR4%P$bt9P#yrgYoyw!RLF-fDdn(~~q`nE%{E0e$?=>4UiCJ~IUtHS}}Z z{weE_B7*OaWAM~GOx4bKd`kcz+NEQIIRwY}&lJAq7w_}AxTU8d0H6>Q7(OZyLJ#5U z!;m{;BAnf09Unk$)6iVhyc3>5p;?a=deQT+b;Grp5+-OySZ!8QhLzwch_!-W zCI2Z%6Mw=@gQ&R03oNz!7%gI#~`PRx|UuB(GYFr++yn-pzn3+)$<2S4* zbInSjriqzN!9#XaO$UMsAtc~)Y)SDW3%jJ2#rBv;xK zF%chg%~oNbIocl78>5?M0;B0T9QeI*m(*(`&6DMSQR;Qy(oG9Gq7(-yTlIcvHqN)s z_}{%C2usFuNhYO8Loij_%PrB4=~Dh-3zNTUh_hDMW4m#X(wh*61Bcjaw$HHb+@-wA zDB(J<`v?s2J1uGQ>f%J4v&Z3BV9_XnctmYLifT%)@_>|@P+8)~jMgCcl~yeg1|d&( zB;&$jaOC(rZaNLZZw;8jgR@&e7aT2mOiy7|b)0!9dty2t=J%i3i5t&h{dKgR$NC$q zegUHKP3khxyU*U3qJL~IgT+~*oz|~&vH{8OPNIC%Mm@kG{p!OfX&l*_#G0@Ax0FgC z{N7xeY=Yrm40c9Q0|hVsDT%m}#Psk@>@b6~n`r)sy_ZqH5*+8n25=_nn(I0~W9xWe zQnYBNa)T$u`E_n$)%QyUh0lQsHkdH0?hogS_`zQ^l9+q(K`e3 z@eFTDTyOnu9)8>vAP|Iuk4|`bRmY9~Et+!R|3y;)^rg}&py$-vaJE&0G8oD(?LjlZ z%$MU=mbm@q)+bIn-?UGZp-+@P+5AOcj3fzu=h>9ne*ou1xBW0I4YwZl?K^??tq}V* ziHJM>wKZ8*1E*>AYFkFkp7bc=JwAPWv~vS^$g4l9F>th!-VmfUImtn9E%NljR+q^5ql%hs=et)pIL30Yu?533mt ztXs)kt}B4wFe_I=MAd5~M6Q`RjTwg^4iE1&_@~V8Z4V!yM_c4H!4a*^PkBx(C6pzD+z}8>ET#cPY@Z-H(Ww*F3=%lgZ(_4i`yzbFnm zvQip^{pb}MstqWh`F2}Y*|^FBheg-GJj0kE<8ih%ByN#~$3#W$ zKY|>06<#F}oqLTV)Ilma!@+kPW3+?f+VVy+R=A_rv>BlrknS~km1`gAx_S240i1G8 zBrHZKLfJYj_!Sov7(@s_&SLh^VeCq)4RY*CwL2J2-?<0QHPnd&r=3X9>_mbV?7AGM z{_!tJ(CS12rzdlq!%oG~*5ks17oB*3?eDWU8o&>2{OEU7D08Ah=)Xq=sS^*Lap6I2 zG~j{yPk7Lh1JUbv8IDy4=ex=YiJtOlx%p0?wC4@*NkZ(B-^hb%Qu>E^Z-W0j-ybTJ zfad3AL+F{>u+LdfxW5G8E?^%p<@e)^;zR(BBJ=MaIEn0z#hIf3BXKEBU>ckm>-nEP z0ffrm0pS1!1Plc~tJeWtSh^l)Rp}xO3+e_ZEDU10^$9oxJd44h0n-l$F})bD8t9h| zK)p%_l~xh8`+2deo-%I@yL;b*GfbA^2>@($RydNP&5z;MHJNf|co+Jm`7s_`UH-Um^7I9Oy40&Ip#-KM#2L!52FP_%U+uq{ z^gFgVkybbWmAlzcq!aQZA&0u!qE7sM)zuHq;WEz9>2;W%-Gu2Qe^=Nt7VCruXDsml z;lrO}f%x|SI~Mq-D;DVb|6&0Pvwo(7#=b@SiF}V&1iu8%Q5~zC>aaq@OrBtL;6fe| z2T62%Fz0&-CyRZAY9um_@jR#wvqc)de^v*bGryNU*<#yBOzv%;4ViWO%zE2K`%Fjt zQv+eQ42s#hnKk*kd#s#W%qY=n^uPme~%0QCR%90=#Xv-;k_!2W1SN9C}?}G^R8}0%*!eK;&oZSS?(+8zq}$!)}8jX zQlsbI2QfzPdkUqF`Il5LfVEa?%Ks2HY;gq)pXs6uZY&-oiU&ZN!hXLZ=j{K0+JoaJ zKx5|BlRWcIWIpOxqp;9c%Gqap>c@zm;j@ z0dFcVyMNFCDMk7hc^Cw0Mmlrk zm*^?KfrXA%ZH+s9FA%mOdP@KR>h5ECuQ|aY^bf&`3oJeZu!sh*sP|h&^N6h8s>TsR zx#n4*4>YTR{yBPZ#SeL)V?K-oXRaWCd&m{U=7{|fQut@2gxW7nbX_BoUDu3M*HxAA z_&NLW^9t8hn(w+ER^cnm=gg^_b;n<}hJ1p&WO^Z$!>^b5kJ`d`^v;>|ePP7YBIaak zZlcn=xQTp6!h%9!N;?Ps0+6FZUwv}Dbjl&Rukz?r%5Cl#ktJg8$YzA9Sli6*4CkcX zNRXvEN~5;#;88Xrcc-$_2`*R>q*N*fv=K=slrfyUEfXuO60UpdhL#V@bY zrO@~fW}tjHoxGf@5XWTAJ=jY{TmloGn|RGlC?AG8c`DY&1-R-3^W%?7gpfa6fBPQ` zXKi@T;o{mWEcuI=RNHb1rFS7E)RVB0CbDzaCPpZYRjDM)bu1wl5<3=*an+Fy;HtZS zno|bulUxx0$BO5lTc-=`7!E|w!!sM6rxG3Yfv{tNWWDey;z1 za{ss27eN0y5kjls+NsFxqJsQ%?29*Kq13^672*)}EZ^i%DzPhjp;g3{%@z9;^Qz~h z?xBTwQyF|poK`q>U|1%<8RgUTqKEIRvc&McLE+qJTWFtUp!sulCjW9Z+xqv}S!@21 zt`GO&t7X#yIlLM3w4$CCWGJAMeO5A(-=Yj;6a?;DAPS4d^@0OBA)21d?yZ*%FU?#N zK>l#4m64dK;@8Yc%}|Rk{=VG7?cIu*++dFzkZGOUlGs%=rN?IhU7Y;h33#u70}je7nlF+hd()#Rz3@Va zf1OWq_+`#9`)u~*lww`XK=W*!rJii&`5u>tKi)KET|(-ZKBYQ3uwWl#TCn%{^WPO> BgXjPN diff --git a/libs/rs/java/ImageProcessing/src/com/android/rs/image/ScriptC_Threshold.java b/libs/rs/java/ImageProcessing/src/com/android/rs/image/ScriptC_Threshold.java index dfed9e55a038d..4d5c7f5919c54 100644 --- a/libs/rs/java/ImageProcessing/src/com/android/rs/image/ScriptC_Threshold.java +++ b/libs/rs/java/ImageProcessing/src/com/android/rs/image/ScriptC_Threshold.java @@ -102,12 +102,12 @@ public class ScriptC_Threshold setVar(mFieldIndex_hue, v); } - private final static int mInvokableIndex_Filter = 2; + private final static int mInvokableIndex_Filter = 4; public void invokable_Filter() { invokeData(mInvokableIndex_Filter); } - private final static int mInvokableIndex_FilterBenchmark = 3; + private final static int mInvokableIndex_FilterBenchmark = 5; public void invokable_FilterBenchmark() { invokeData(mInvokableIndex_FilterBenchmark); }