From bec4114bea2c566b55d6d04402a4182b47f5e185 Mon Sep 17 00:00:00 2001 From: Alexander Suvorov Date: Fri, 4 Aug 2017 16:16:44 +0200 Subject: [PATCH] Add compression support for ETC2A textures This change makes it possible to use Crunch algorithms for ETC textures with Alpha channel. Explanation: For simplicity, Crunch algorithms currently do not use ETC2 specific modes (T, H or P). For this reason, the currently used ETC2A compression format is technically equivalent to ETC1 + Alpha. Note that ETC2 encoding is a superset of ETC1, so any texture, which consists of ETC1 color blocks and ETC2 Alpha blocks, can be correctly decoded by an ETC2A (ETC2_RGBA8) decoder. Compression scheme for ETC2 Alpha blocks is equivalent to the compression scheme for DXT5 Alpha blocks. ETC2 Alpha endpoint clusterization is performed based on the very same output of the Alpha palettizer which is used for DXT5 Alpha. The only part which is actually different is the Alpha endpoint optimization step. In order to perform ETC2 Alpha encoding, we can first run the already existing algorithm for DXT5 Alpha endpoint optimization, in order to obtain the initial approximate solution. Then the approximate solution is refined based on the ETC2 Alpha modifier table. When performing raw ETC2A encoding, all the 16 ETC2 Alpha modifiers are used during optimization. However, when performing ETC2A quantization, for performance reasons, only 2 Alpha modifiers are currently used (modifier 13, which allows to perform precise approximation on short Alpha intervals, and modifier 11, which has more or less regularly distributed values, and is used for large Alpha intervals). For compatibility reasons, ETC2 color compression wrappers have also been added to the code, though, as has been mentioned before, at the current moment ETC2 specific modes are not used, so ETC2 color compression is currently equivalent to ETC1 compression. The ETC decoder functionality has been significantly extended, Crunch is now capable to decode ETC2 and ETC2A textures (input ETC2 textures can have T, H or P blocks). In order to use ETC2A compression, use the -ETC2A command line option (i.e. "crunch_x64.exe -ETC2A input.png"). By default, compressed ETC2A textures will be decompressed into KTX file format. DXT Testing: The modified algorithm has been tested on the Kodak test set using 64-bit build with default settings (running on Windows 10, i7-4790, 3.6GHz). All the decompressed test images are identical to the images being compressed and decompressed using original version of Crunch (revision ea9b8d8). [Compressing Kodak set without mipmaps using DXT1 encoding] Original: 1582222 bytes / 28.880 sec Modified: 1468204 bytes / 13.288 sec Improvement: 7.21% (compression ratio) / 53.99% (compression time) [Compressing Kodak set with mipmaps using DXT1 encoding] Original: 2065243 bytes / 36.936 sec Modified: 1914805 bytes / 18.044 sec Improvement: 7.28% (compression ratio) / 51.15% (compression time) ETC Testing: The modified algorithm has been tested on the Kodak test set using 64-bit build with default settings (running on Windows 10, i7-4790, 3.6GHz). The ETC1 quantization parameters have been selected in such a way, so that ETC1 compression gives approximately the same average Luma PSNR as the corresponding DXT1 compression (which is equal to 34.044 dB for the Kodak test set compressed without mipmaps using DXT1 encoding and default quality settings). [Compressing Kodak set without mipmaps using ETC1 encoding] Total size: 1607858 bytes Total time: 17.361 sec Average bitrate: 1.363 bpp Average Luma PSNR: 34.050 dB --- bin/crunch_x64.exe | Bin 1002496 -> 1011200 bytes crnlib/crn_comp.cpp | 44 +++++--- crnlib/crn_comp.h | 1 + crnlib/crn_dxt.cpp | 7 ++ crnlib/crn_dxt.h | 4 +- crnlib/crn_dxt_hc.cpp | 79 +++++++++---- crnlib/crn_dxt_hc.h | 3 + crnlib/crn_dxt_image.cpp | 61 ++++++++-- crnlib/crn_dxt_image.h | 5 +- crnlib/crn_ktx_texture.cpp | 4 + crnlib/crn_ktx_texture.h | 2 + crnlib/crn_mipmapped_texture.cpp | 44 +++++++- crnlib/crn_pixel_format.cpp | 26 ++++- crnlib/crn_pixel_format.h | 19 ++++ crnlib/crn_rg_etc1.cpp | 181 ++++++++++++++++++++++++++++-- crnlib/crn_rg_etc1.h | 17 +++ crnlib/crn_texture_conversion.cpp | 4 +- crunch/crunch.cpp | 3 +- inc/crn_decomp.h | 139 +++++++++++++++++++++-- inc/crnlib.h | 2 + inc/dds_defs.h | 2 + 21 files changed, 578 insertions(+), 69 deletions(-) diff --git a/bin/crunch_x64.exe b/bin/crunch_x64.exe index 8fbbac5eec6e7b1c3b496af8e2ab5bd51e713daf..dda44f09d48f770c34c3ce7fb57079a49177957f 100644 GIT binary patch delta 263547 zcmZ@>2V4}_^S@m{fddZ}q$}l66bpg{#KOs)912Q|y<#KA#Kh=f$3uaHb3NNrR}(cR z8l%P}8VlG#RIsDQ1UshuT!IB-RE&lHcXkiNB!53ScHYdqH}mGrn^$*}vASEv^=?b0 zpev)YhN^7;DpkQMHSeraXGOF(5F#b(}bBOFzpS33^xE;_BYqG)A%;L zN(ClWTRcPYtn)7xl(yr?n8pBCk_mBB8mLqeNDN|qd7lP~U=&5g=CJ8}Gp7usnj-ar zt>>FLZ$PR)Qa&11#5Z+Pp(+rfdVkk_z7faV?EUz%wXCiE+kSRE?Nm#R!g-@GLOaBm zc`ST%`9v_Dp?}QPp>yM^MkofM;-kX^mI`J1fuu4(l;bNrv(+4lOg_&cjv z3&(-{($#F9L z

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

YXvJc zg;a32x*Ed!$rBVg`q|IJO*`9?HFh>Ab~ccm zod+nyMD0vEsf_Q0B$hY>std7)Hvrz2VyrH}pbo3aqf*QeM@{Bs>as#S<%L z`Fw~iX{(8&UarZ5IJqVl;>cr?u&R=cu#1wfyUQwD(w22roSZd9&f2i2ob@oA4J*9) z$7VW-1yk#Lu%)9yqyI{v(WMXVF+SUiF$wd6a6K(ku&w8286Zy*c2Jl7OmfEI=6 zpW_LKL0a~3l#h9Ge-~9n7Gv84<;AArk3KfXr0pf0t-(u$1V#Iw>D54$*4f%8 zJo2Knp(jw7IM>P-zjX#fCf=z#=KLw6v68oDt6 z^xCBCYK&9or4AEVm$A(a+TAef;4*kE2qq7m9JO`w*pfhFOY0u;R-+RIEsTn%aNz>i zJjzhsm*0|7Nu|=WB=*(V4m=w#FF_vzj2ka6K?incL&t6At$i3bJ~XafA1Fdz*_{AV zc0TzaDLaG!QZ};2EC1~6g7q=Y?BM()4ss$A+56-D_}|8|h2z8dKfAJn<2%*gwiEgv zzrmi3Z_}|mdc-45Lz6b(k;ctGrm<6fDNDE z>p2g+#D@;&adDf%chN=7tP}jyg-FZt|LDzjPw2>Jj;XC@K=7ZTF8;2 zX$h?5I}v=t6fk0CJ6dMC9L=u0^O?G=hN+p6nJ0GPcZ~v5bM{ehAO53JGGk^G3ww8C z;QA3X(xv$yaDxr7&VpvswvYhVO_NaN2UppHcRiw$ff7o9>`cg0SDjUKsHLjVW>&e) zYi7%P8nd+)HH_jE*d63>zFPul-Szyo!m%$@W1WzmQ=!FLr;kx-R={DfJ7P@`(1ZTfm&X>fg z0;lc}(JJipLIoJwk}PMN=0|b7^YXo@@txmL=gL>IIz6cXYbn&}BaDoVxs~pxD6=1A zT5-Exc?S&dgF(1e5jy|5tVuwvCai`{F2_*H*1R7vb|{e2UF@>MZZMANJ-ubTHuRAm zo9ErJkpZ9~mPqiuj&C<nV-!m5o5m39=ekyT$avLQo%_5J>Ds%`6w6YXN=G#_1Q0yiANZNrJYIgoi7qhdjs8=Xv@$Bqmw>GzkwD1iQZFW>> zsSst^gaQr`*Z85#`2(&0yhzx(6KGgsJXf|=Gl@L?M~D`0f9UKUm;@Fab)?m!!G9F3 ze~)Zbs!BEL!K+!u2kwq*fs=xfSo=Y=SsYyBYDJKjB(uAIIRPB^E<;`-+BWk!m+qr9 zZX3|$#*HG5)5Our*0kE%rgf}g+DJ^B!E``&F7;U~O&s5Xk z@TA2GnZ>nyJhFEn8A*a67F$d;E@lE!;e|T8m8ZNnmzedVfL5Pj;Z+m7?5b&)Mi24CY6Puk zu0y-?iv9dim)PM06lIj@aZ8!OHI>Bfya=&xQLr*(-<#!&o3bdu5e!PO`g;s`tQXl^ zQ=7EA{do;`9OX^P3>Y{i;YJFeJ@4uB$>hWYbx~53lQ8# zNRQ2~p5>#6?E|uW6w#d+E)YYj`PH(^gw%R&^BShD#IzkuM`X{n(+Mx2L;X5BeE5>} zo7TnrYyY}B>|8Im#QhZHj#hLS8Jm5rMu+7f%Z-vv3|@*3N??4g!{i#KN@99cQsWHJ z;W~8aD~nKEa_#p->-Fq0{s{uCw&&fV?_(*tEv$(5E=K6^>C0(PC#1j(UvN zj^BUEK1^$3?o6p@uQa_OvRW?(Xaw}bm|eo*u3HwO`!^waR?1_eY|j=yNdU03pqo z`N}apNVgA@JSu7uSmbrpd}4Ax$4*W6X%kz6yhF%8&N{0Os{&}0)d^3LC!~(}Z=bP- zGop1tZ^$iKEjMBt$~_agAvfKaSzTA|w_uSSI)4P1-agBO89r??Ymm(;XG`QfQX?1F zWF02T#VSp7w@Q{f23vElJ5ggr?)y|^?ipF`NMq*nx^gQ;$ffbUdN`PtpJ9nJecGI; zK~A8Y6Or>kja-WP-+)}>8evt8&5YJ>NUAG$kj&uv4Hfz1G~^D~3nPs>l8kZ1X6g1| zQi56x@tr%(+-CVTw6DdkC+rueS+`leTIuRYZ1dC>!>%bU7E*`S@G1LtRghd2dr>JAXCqMq(R2A&2Bn=sp>!7y2*(m0)-u2+1A;O8-&(D|Mgf#SIqWo zb#cXOlYaNuR>6~s#JzQB%OA7WbE4m^-$$-s-3jstnakC6D3ls<5>X8PkmS>8@!HU1)*! z6KO{av~Gl<1)3iLw20b8B+_?10Ia5zt<3Y%*G5(}uT_0vHS|4EC~vQ?3t|n;zI;Xy zYisuO_k^q>gG6S*xpO5-IKIrLde`<)-JMN02lJQWYtd8xO`OdVXeDz`zt!<{xV0Sb8`Ek9F-HQd!Z&ELK1~mgSr~B}Yd({>Z7{ILaH#S(Y zgo;r7GUGlRP}g8&9aMWl1+woJwBau_l`FBkDf@fD#LivN_|oMyxl-QkhiN-WzMt||GV{;!;ydqTowHhVTiN)m-u$Q)Y)4j@`J*prgD|bVQf4GW z#&d@#BW+dFDOf#RtgkI-9Kv#Bez^t12KE_JvY(`NP%`>Z#yv;g%$W8%V=H8&+kdL^ zB;?f#cQEcHW0Rm&vQZdHGxJ7R3c{?#(p%UV#0X}>uDpZ89>5lZBfw90v#jh^{9!HI zk?m#oo3ArFo&6QRHkD2NIK16Ytze2Uc=ksT0D=G{6W|S?GXZV@wh<3D(nI_s*oBW< zHPOXmn+zAc44S<^>oj|R5|S24>jGKBPg>Ovgm+0@^I6YNT7=gBjK<}m4v*H*b5xPW zJzq1dG&Mmp?@FSO4_i+q=6grjvQIq257uQWAtv-{*TuxK54NE*WQTS+{!<7m z{lvfi5+W}+!d`sRw8dCwCshR>k+0dCj~hY_kU58_!hX07UDf)MQr(U)T~5b*CJ-k3FZw!#m{Kozif;FEklGX2zaJfV3ZDb8s`8rMZkiFe@ z6UsGNPQsMol7o@GyU3T9;$=Sdn|$}(Yh`YXXQvm<9c=Zfy$E;p3uhJPY|}lhgE$#Pv2}0IuMfNBh>ao(CH7s(;Fy1_pEm@*9mj}?M&bngkALuP3Q!opr>k!|( zQNr)onM5Sftjrz)HXF-|H&~9=vb_D8<=*_ddVXHZ(*HF}|FLfrGq;u}`87}c8!SU> zS>6H*be&?ZE2T>rD_H67tCtTs)4GA4^afom(^=6{Z?`RP5YF9Vl}o$0^?w7Ib&E|| z*3@edB+(tK@HdEkiP+q&$s0(oTWs^PwlPCm(8!lXBQ54{t+hIA@EvR7q!^FF9gYv= z);n@jwr!eg^@)VcWA>S^JeX#=QSH%_Hl@^N+3)Oyl!9oxFR zoqB~%;XKno=5*TLKEkoFw85+FKP#DX;VN>`E zJ(&LrU*7!-)@4Og-hBldwjzW-yMfJL;j1o152D+m;f))xuUGiDDMf#m9({{0=8L$o z5UYQj9vNXirAHJ?KZAzB6gObfd$5NqeC;;4$ae$-GF@c7*G0+9*Gvtm`fYnCl}iN^ z%;3~ZVM?-9uBDumD|fRyTe{N2uNld|xKr*X&u7#j&02PQIp9G+zS<}$M^?pim-RvGPiFaNx#t*KPcGz$MHXQP31a&fJA^)sw7ZTT(Cdg$eA5myV2<}mM&D{Fg9hKN4q;M zYaEOeLq=kdHY?O!?2!#gbOOurZlo(hd zr6>sq9#|&5jo#OFQ&ThlhOochrW^fq+vAK>6-52@97Oei^H)iZ$PNG+;$`&b=$c4) zArTWCVe%m*=iiBB?uC|94(wP;@uG0pJab1 zmV`j|>sM|0;eo92=C*uTAdB1lf%%#vn#hutkE1uV+aQ<;?RG*zmH>%18w7Kq&2}ot zG9b}jgPT`wgo&{!LbKs(7Yg z^W>MK&pl&hU(axINS6E5t9~qH3%&@@l%;P8YIU!k+-|5gLS~tgKy?u^FDVIB6G8Aq zJ!f`uOZQgUb=hauWq+?O`zWxt-}(u^sW02V)ldC#Ur5#%iY2Q*yS>$;)hY)PO16ej zi;_@;&Q%hM&<`D)S-`gFR*^E&7S@|935DHTNhs_tV9(t4uH6QEXZB!Q6TeUFsb%SX z0Q?z}fVn`a(#bynL*O?}^aH_wrIcPj3 zXuw3RB)OxYIo}L&zV`UdC~@eq93?(~EJum?k6D}TsV$%Ja-}QfkbPH9^uuWLlT@Y< zU=6hECEl4G+&-pZ?uYW1E~>)l;cz9yMNA2^^X_@&FfO)2HokPxJ4daOk_v5U`AZk- zqddN0(Gmn4!sAO9o`7%#Y5uWrEM8NJ|;5UN2yIcXGJ zJBP9(-=?_SXraMfm}0%f;Zh40_FWd==EGe(znjVNnGbh`?a*=d1MmVE4a2;)k}cf% z5g%w_FL#FXqhGRiKg@Ese}Fh4fA!-gef2{lJ-Y8Cp1Z*Xv70{xa)*}h%HTWfV+(fm zXqfpf{DQ7}P?bU@mwN2tuI~KY=d980G^fjPvb&y(V@r2?*&S=-#J<_R**@7Ox=D|_ z6phYH-!CHzxMsYA8OedAyE6BfdH#pp%swxH@9~uN%WLg+62~%ir1WP(-eA7V0`^;8 zH2>if)@)yg&?_{9vT%j+ZHm~p=>`SX@P+ccioOW(zIIN( z?dD}09u*7jIeXeU*j;DW_O;|!?`HM(w~qO9Hm)wnw;?oHKgh$vK`pfccFp3OQB1w2 z$w~)a_oPr`8isG0Y;7vH^g=HeHhI7IkcB&I8~Qnll3wkp+t3FgyV~O_2x#b#YL8+- z75+xS;rv}!m2M}8GnL4T3BqZrc0jd9d5J4*b-LQaIGf$v-`zZ9EUGJ9fz;*%Q47Gy zj(P$n-`Y>_^3Xd1A3;H>Xh*FkQKU)C8=5@ZMVfdjn!x280Lh|u&jNt{UG1@rAROw~ zxZ#;ypB-4wbxxlDOgA8*y~#NLnSRKC2ve;5j5I~b&km+=`Ps1|cz(HIK!nZ|Fu&aO zkw(QP9tvPf54AAsO=h`-2y>7rZT>UEfVlRi$+j{l$a&kFM#}hz3doXWB+1W6lRrA-iE=99Z3-T?Dd=KT@Vm_7>O%RVyyDg5+L_OsW?)aiBda4` zj2TxTELw2p6kO8o6nl0!!kh;aMik<2gsu>kOI<2}xC}oLzjgS1kKac8w&J%3zXSLc z;3xMQ+aEt+O%hW`N?x9-AvzRKI>fZWgZTPVUhqPpWId} zY^GQ={~2=6G->8POPo1#rY379uCP(_c@cA6?E#Z=;R8CFlgTmBb`j=KQ+Hbpylgda zv(*6YK{iVp#k%JE>thuaYF(<5xZqN!hzl-NhTP;*KiOKW1Zi@qVw;-zP>HR~Z_N)c zV}<#BgAO#WPiwfvZr*4k;gS^gvYwpwicr$NFIi;4C|>=5v4TYY(0z8h;Ct=`TXs~} z0^df#M^LaGgO?)03XFDYDeoSyve5f9>O>sU3zwzbOkO2sZ00|1Gn z7zMn`yY&W3E7ZDY{(}%JeRM;dZ{ixW{6Yuu@>IS<^WZmG8c2-@fz88k+B%G)?;(sT zJj0F@c5yGfUL)oviP1;(J_S=9As|9!=SilWV$c zy6A`)HaD$a>7bb>dkXY+K@Hup4t=eeEkCu5k1b-|PiuLfA~qh6 zzfQ1)c$_=IcHpt)1pDc9px)tvqiTOBoC%-VxhfT&J7nZP?GlFkDY&PTi>u*%;R_Fq_p}I1k3^=?{9Fu7u#Ny6gYB?(<0iP)n{=m%9 z6%*^hE;^wS&-ezqf?phU`%oK|UR?qN>v66r7tcnW^K0mtVQ%DPYKXtiCN=)5S@yYL za|7_|p5)tUvh4{H3Ur$9^P_PeS+n2~O38kr$*Ledt@@6t1j~C9@tcxhiJKXjue0pR z042eanMDsFE(O=#8yPe68)ZIo(R{K8$V98heQk9$3KbSDEXCnng59a=+j_kF5ug`N z(cm-?PJJC;9+PWXP6gGag4hG^#>vErN&lc^`_xd9|3L|3qt1IbzwK8;_xlI^oq!q& zA0dAKgI$y8rGZc`AHVMZ@tX=9{f6MT$oAWeCq)fbc78hF>ns~m65r(I8Aob4e7HiC z{mI&IqEvo{?I{Uqa#SG&f)q}!Mx^h~u*#A^vog~VbSW5(HG7j=X!gd2q7l_4CVy!( z?13$4N4)kZI{^8_H4MyubBqH=m_bp>TqP6(TJp}E;;H^|YL zd19i0-h7ZhKw)WOvp>6GV&eHDl}^E;eVomOfwsYbLj*$N^_+qb{*QZPg_} z7+b=-h|o%13#e7fqgtmU@YnUXGSQUc%7?vt2&5CbcD2 zU9q(EGSZ*q96Ch;kWy=mT-@bP5=Nz<{I}aFV&lTqB}vx9^jb@7);-P2f=j>9nz#-6 ztngef{AyXNErrU7xa^2`8l$j3LfxPpRD)*W>SBFNo7rXsChxgdX}?IcpS|3E z7z)Cv^sH)*RsQJT^$R~ zb?GEry7WhqP~RY&UH+4weNU^)WA@?Y5Z}^%9*BRoM1oLXXGwJM!wT-0-lAkp$UJTzd96I_CA|-gCSW^Do0u={ z$FL{}G)mFAsS{oqtdb7P$kWnZJh9o5h{gkL#FK*hrfygfeR2y^d0H;e>Yx;_9K#(i z-K0y}4x8|h7Y^i+Q>2zmSvBAV;;(r+)e;w6`t^D6Yee@UD#BTq}S@T`@HHQ>8Qx4SC!iDGUyeDqzEGS&Yo(^|L8;xBAX828UIt36cP*#|d*!i>VP z!MXvufx1Du!FUTlg}NY|WC%qgqh$yJ!bC5lWl8`d6H{LeGDpjOwr3YPu4wl5k5OMp zz&L>`W*8<+0ST5tm~9N2Vz7LiAvY}z6A6}HGm|Wbm5BoN5*R3o{$TTMuGUCUGBqx3 zuT7Nh9j*;8eR?QiEG|}EY;{ktyO?0MF5WV+(stP`pega`5`3hU_#B)bZXx;Km$DqahHce|rXvv-jn6&6{LlO+Qf67vz{ zN-}<_pYgZd3}>wM%qmr@qd@7c{Wy>c_({8!iqI} zk6tX(Ioe0)GM?K_Yk(w(r!Pu6M}0)KP*foCv6{W-Gj7|p0&78jnH^uO=TF+o)MebR zDX)Oa>-D-oeMCK7#xuKVYOtQX_=nDMK!ihek+J%CX0@AUK|{13LRLKt;4X%k?_`@S zc!E}?K$0v6lGGpm!;jyRk*B2uJmvm_cRlL_5}%*{9Y|7tlKs0g9<_laMLM`p2_z}f z-|KB&n0BJBXE&4sNyJuH^vgu+T5Sq14)bwrE?#$Va$+lQSoul2nD*vIK5Z*Ic{7o3 zv6Xq=ir^n@+12M(D#u^j!HR#?vY*SA^OrWW_iiWh*_+wE+s*j#o7vUdU7IxD?1(75 ziY9L4RR~|PQlrhgTL1DX$DjBXdH3>%H?oZ14E&6ZtmwC<{NRo3&TqXMYc{^lhc8}~ zO0T}$75n>9j$gQq+27g7uiU`4-bv)+H?XI7BKXD|c7;h3IR3@gYgWM;WX$ILtm?S?v#jOJ()zp%2T~3FVlTQ@GLUG4V>Ix3321 zqSxgk|Fn3WkWD~Lsj2JKNL|djV@OPIRh^$;wbBNJa=*_UQz~52X;$P*eKye)EX`SW zBD)x5t^&i6TvFu8$cvFr@cINcry#C1z1o!^7*a@DIEL?r`j~u8=BHQz8PVN}p&b|# z1vjF1NCY>oA!9+3LJZ@epb;O5rQsyS5L2WvFVDvaPOoEngRaXg<0#t@eC-O;LDv&m zS~`N^^f8a8I@%KG>xW2xjQX8~QVKftG<#bYRrE-(uB63Tf;DNP)b3O2&R9zoYhCjH z;L*7>d;iGzCEU3rHsg1fSm$z#kgY+`nD-vVOOFAm7W-T1g~zpaX-1TzG!@E`)?nH8ReCrnf5t(Ws9pn`);IE5j>Sw|IQTb^I;+iuPT(G}pR_fUb6F z4TXoPmc(1UUic-|G5}m=wI&yN@Y)jcBna6wK^M+Jj3WUqIkEZoc*`PfevQx}5DKc| z)=A{n$&wy8p$cFCW=9CYb@XpZBm`T#%9y9n|0!U!oh-$ed72Z>nIQuRGN>kZK&d^w z;jhU}EajnjDQ}}tt5dB??KOLq79k&?#RKVqaCZZjGj;m`qXi%Fx(gMNC+Qnix=e(p z)*9T4B>lmscL}xjwA01p&vn#UW9?&(rn7|=9%cj0Mp3jov1#@ux`&1pXWp(~P-a)* zfuL+d>)k^$Z#ONtZFfOZ7aOaOCR7*aB)Z3>6(kAS6#PlILKJ`q>a5p>@%cLEqlswT zSb_?1QqV&u6h1Ar+M9h(X5O~bTU~UhUk-4GWCIZ=oysW}ORsxpS>XB`T zuw7dUEfX-g#H^C~$1uE9^i;Dzg;^ePbkGa7SYU@w!Rc}TEm2pUU#B<4oX{-T`+_35 z(%mRiI9RZX$D4!-t~?nGJ2-L2Xf8lZ-helXD((jI0UKC@dm&Em9+3BxK>kReuXq1Y zuK|76S8$?G?=8(<$9CV3G%W?EbwlK5jqry|44$&=c{U zoQ_sD7@2TxrnkoPQYlNjzmNZJD+_<1=U0cY=?}Dg&#i3j10Qww5Zb85M}A%NSiu9M zuN|c=_>f3K07FBGuZqviau?PwGedEOu2@5b`+#(&CVXG*V|NRpjs`3ZQ==OanohKA|371Np^CCB5*eM||t9G+>`T zTEORTVom?@H-E87KBp2ULKDSOOKh0fT1>hP6HtqJ&xUcU#SFD!B$6##Jl=*OmsBtv zZ5RsV3MRO}4Mky5K{d2ta%wTv8)X&yOjH;uZOLRMdE1tZRgxDsGMC4`{GN@h&bpDUX|W@1Em86OTSN)_%5}v~Ylj#M+VpO0vBz=|)KhDQF`*_&A7v^(8BN z9BDrJrD8Q2LKOB~8)ic-<|`W}qZY#yOrI%AmMl4G?Gp<(U)_aQ?RNtwwhRB1X7{1( zLb#hEdpH=eK|>#Ar+<<8?5JNOw&IC_fAj^r_9VDr_ZYfLhKm96r_!Z<@l5mdEywF! za2Y6N+9+|&LN36C4uELw6D4iy!d5(O>+Sr7TxzmXDm>$vzwF9|OkL&8SDj+bt3Kkh zPq8&sBls4lc0H~7pI!G{FR%z#@Ud>WZ{bD=ec?U*ZS>coIP_Fl!|L!im{N=4P#dGg z?)AsJhwFCvzPxX0{AeTQdGbfql_Rv_XE^rasSoa1J6x(Iq2tPhH<5yGip{2SO?Yvm z*m)|~l`9ZUQ@Lo*b_(konlzEp#imm^&&ChGq^V>b*+Wi?_os62_}w||q!RkVPWAA; zc-jWHy5!(gjJ_>@UHoVo*VS$GVuV_3P6-VPe&MCtf#RWQTvEHETDiUZB`Ynr%a)WU zu=S)(wxrE-R%*p)6W2UwGSD^OAuKlvIJ+ONFlv-$P14e?d53x}&T`m06t7L=+O_*7 z_zgjqY)PA-W45GC(4Jt?JBUGp zc}2?MbidLcH?Xk+oP!nM94|y|H|eZcIh*tFZZUy;hPDIt8R1Jh>`M|gAXjWUhtu+Z zED-f`xY&Tay=cWgu{s0|PDQOK#L=E#4z(i=w72GNn!~wrnlSv|9CX!1nJ31>wZ0oF z=FjCq_)mt4cjj_h&jMd3da<%C1u&tHY|w_%c3&|log2a*-7U^d=icLg_Yup}Ip40u zKB$8wrq;(1y2I&PZ18?J>6?EN@l|Jv)$pNWX|azOJC9q=`G}Y1acTTtKZw1}+&I3O zxA?u8Yw0l_S3{}elIFI~`_W=e^8 zxB=qB46dEm8Bbh2wT#362w+?ps!~N-xk!6G#i;pQg!=+eVSf0AVtz@Q;wjFX&t>sJ z+eG^X+=tD|zlSyHyKr!UaJ-+4*?-OdNdd;ZCN5vVwGB-Cj#F9&v8rTRb#+awdZKJL zrXLY+FW}ty_|D?f1zZcy^#Iy$r)6>> zEwmt_xm@XmSKAaIFj!T4T5=sFg-f3w7LR0d=}mXwUMD`hP1c43I20_SZqFxLCgB2- z!`tGpEG~#I`B9vg#Rc%ME{YqnIG?V6+S7yr`^WM2a#<0FIQkxuYnSbuZK6?6sgpMm zWTPnE^;u&l@ktifl&`WEn`Cn#b~}OSp3P<0wFOX+&2`}4*)BfK=JL!hvDB|Q-%&J< zIiN_1+s4(#d7JG5h*Tp-ll2`OUwYBdNmafHPy)gRiFcLCfl9EL-SG1QRvsE$rArDn z9M~xNM$p&+DwP?jSe?Z@M3-Y8fnX-z8#?8W!9{o)JW-kW1tnZ4nnO#4mE6!8=aWmh^y(ceQ1OHba zd6dye?LnqHJmQX3T%>z+0(`_WJWmPTq(kS=#HXvcmi!B&xbthi3IErpVi%DMZ23hX z>=q(j#f}lad>@KhkEn_G$R^P3L3x_;shA~l5qxT@m?v^?dF@i!55nTEKl#B*2amW-Sh04(kk^}%@azSbzc+f#hJntPvT%f)eP zFeGe>$X&RGTf*^$DWdOZoG<@ml^FFIca-nxBEI;H3*!vAp=-G<96w@3?!|Q&S=3+P zMhjZW|D$UzqWVMLU#$N*w{5uk8D`*b48zZ=NU0fa#-eyHGz>Nt252#)q2oM=LBAU8 z6*JgxYDo1_#SD0fbyRIbP64|-{((7Yx#+TiYsR-9EwP4kdRPg!R>lRJNZ_cE-w~JNhiguFS&NzoRA-N!{B@Q#0p`)+eB#2cG9t?#u# zwIYw}YsNN9wbv1gz7w+QA%@|l7E)@O0=Hh&}<2%`UVKh!d zhdUaCLS=H`3EN6Ph;zQ?qQpmAxyJm*({dfRah-Vn;}3FUw{uH)-ugWE!gpLR-q|uq zi7i7<=LYWNzT{G$y(1&qT%IgHJD$Wdkq(j2`bHcqmC+NuZc5}e_;t6<#75ufSYrcR z-=9b;*1|u5^yrGhQW5cBm zqn^0OE$;$oq=RK*(0;BB|8iFDTl+bGj{o46IOPBr#c!IKyX^pXjORBG7pENNe&Zc0 zat9sZ9@sZ}d$6py$BaSp)Bl}8;^1Rk2j_x;a=IfoICteS?lT9zby;r2DQ>tOeCARzp(_Ukqxat>f zj^mszu#zV9skn3x=bqc?D#_)MBN{lU#;07PWXe<@q3TtZlSdE zPi>W^+Poz9$GhA?F2J#kf@s}Ze){|2iBF(%SJim+@ne{ogrK|4ON9`D`>FSGDN-o^L3dRpxlBnlS{ z!WF9vB7OljFX@;m9($Q?ye_lKVVWEEJGq|N0d?bX#X_$x)?NB_KYjZ7(l1Xh>Vhxm z)R*FN2H2Qgh`Hbo$DV|tknJe%DJYB2&0hlh0(V7Y`SEXnqR_qdrw@Z=B)_B&0P3-ZgKekEzsDmUCI0H=g$v zPq^@%1_W4@0uy4c+g7s;fWhX4B_0EKJQj=?68mWWYy31|I%-=#V!c#5es*szCcE-) z`-V8-gApdWYji@1sRMC0KT+!?RkjxoyYlY@fC1xbopt3KL+jAbL_-5U+evLR%!-w$BYs4%KAMBa7P#$pUT2;+x+ek`TC?3}E zBe`JF&yDZF7g)rRZoDtQ$s*2n<9(XuSZEjxem#sD@bP}z((-+a_=6iiq2=Y&+R@Wz z_WwV6E}kI9Hst$rf%53dN2H1e8}d(Z z_;9!XBkVokqCB4eah~1hq>7JV1!D(2FrMc{jb$_% zW9-IQqn=%`0QMFYdrfkRCK?k%~3K&emslc6N4lb|w=WfWP;l z=Y#1$S+;fEhqK5V1J+6PjgFWbUaRG>4yY!gr9?ljepMM(W-(+KA9JZ+H64pWR@tKT+p$Y%}Znz^WjH0W6Fy@uN!t>{B+yMKJq*)UEW!C(hN;@EnbgS_~3D>{;g7#No)%;C=x`AMSVizQ| zegXnwC9AdXh4oDp_CjJEpIM)WvI7!Wr)||(L!RyKO2yUKare=pAq7y&JQA&vx!Yl^ zEpOuHN_DEUa;%vzC0A!>cn4Qk3ar7R{ry}O0tg1Bw_s2d$%WQdNk=1UuQRr?Wd}c{x%F6Ob|T%nqn`Mhm3`>@1}une8)H4)fUS^N+e6k- z(d;v+T9d_YxEkqItIJ&>7R7<#1>9wT{#hA8aq0kwr)TJ0@@&MKv&VO+LnGFo&A3Cm z8?nBu${h-bWy7Ri^m#0+qC5N&M{y;hRgevCJIm=%EK6mbUsAcom_h+BsbgbSN$N?p z+X8*gzMyX!W4m*ODVtSRp(ovI%;H(A7Zei5jO^H-v>^`J%zx7TI97>uccGwh*klDZ zVITp2QbZGUd4i;7Hg%_rCM<=0_Xizqf=p?D(EBE=8tdlB)TAl%@~ilVXk&Ai6ewDm zy%kZOt%j3C1DXQwyV0Dc%)k~tS8MJ5oV?>vYuAr!)jn5h$FXP*&Byr+&!q)Jo3=($;lSn(yR8LZbr}87GTg)>TYlHPtWl8En zT{lR*yu09Z5tajR9)}Iu30nh%g>TfVv{lch__h7vJv7vMW2e^J3sXU*4HG+4LNiv= zn%j*1CI$EG3@lZyPh|9lc&7`DEkSHkO?hY*XS<2pFh0!|VjkKS2SQqfX5dPU>n}L^ z@TlwvD_3GpK%8OM*?tyRL%^!TnpCD>v20Jl_F)-*lx9>$d;@XV~=QZOIFVLWpB(Vhm%~|+7fs*`V7@KpvGmB z{#m1eHLBgettiW47JA~g&-#gD5Q|wTk=ur<0i2w9E!5y!pitG8E*lv5*|y}7#6rWb zw^7Ix%;wz|>oKmZ9S3A?GA2cexiH0yp6&z+kIlG5J(8He#tXWWr)Wqrt1Gpk?@>g} zShWc72p@{5{(lrP4~u3J^OMp@*NW9)zKdvPE9|dzDXg;B5=EBO8j7Ph3VHb3??kOw z6l<13r&_VvK4nvsW_}P);BuT(3YBind;@1LRWh~(-ie!EILS*DMf85y@^>dEnzqu} zheBJiO5P3BbRR0PKSS(9G$w~zueMC7x{#QTDTc&&j>+_6!Td~M;EtdVG zd8t80WW|V4B$9Al?G>oRVV++}UJ5;Vc zv%BriS4r>8YE-!c>sj3b4s(Kq-*Y1dE?Aq0nT5MB5L%%CSlrs7KqF_5Y36L!0ZzDZ?`S)HchOUhGZxJFBlUdg^3SVWm!Sr2Im z-RR0@mRTVTYJd(K1o1Q2s&}D`ZtOVwHHPB5vn2LI4>EUWzp$Z~tm!@2XvwYhKJ^;| zDp34HsRFt8VqZ6fJhZ?tq~H2vJ0 zjbt;=QHT$Ktc3+k(dH-JjqcTP3->pxUPeHVjcTw4XtO{#+m>TxO zDy%<4U-x6@-4DZVhghw@)OpZ^{;ZSFH&OrS{*+*wC5rC$2USFl*+uZ~Diq?}0+f8_XI=3+dHhc0-D%OGDTUNl!h7vg+EP4PqP;*FjjY z&h}j*Ef~tiN;%{*4EXvg+S*_k)3I`QEsjM~zeh--6k#8n=afHc?LUGolibgt5OhJ{ z3O7Z_c*v(&n9^32J}4L%8Ai88G2c2aga0?$<$`27_CpSNqJnl^^C&cpO=S;P(wa0D z!5*)r%V{jtZ!_9qKcbJlF=ic#S56qp*p64F#L=vOg^Pz=fZA=Mg+MTgBi4MyArQQJ zl8%kW2$ZWze~xCg=)&hxbm;cbj~XjF_FDn?cgF^eLB|G6`nY2^9i-7?SOeFbdRVik z9g*3hA*_;C6{9IzPmS$N2(1{)zGvswTHBPo(gpMR53l40p6N@j7*!q<0-J$^!iiwM%Cv(8L1I;zE2CU*`cFV2HVZQRE;+1}&7pmcPg3lo*qzPpHOhmM_($XS3Nt{=&_LOcoa8`=gs`B2K=u&HgnKxE{-}s-bjvg!O+ZMM_B4CYnQp;@>z=< zTJa@2$Ue=XKJ!5wW$T3b%$>2uMw+pZ-Iwmu&_&F`;bN*MP+^l_wOa4wfgcudxHEzkp)ChN$8Js{UHg zv%dZ%^h}&Wsq}2F?a@4I_BYtil#~7bNBkX|Wv=z^3ig-e@l%F^M4>yO>`N==NjiGF zl8tolqJni*FS`qc0&kkR3QO2AqjmIZriFT}o~Ey1d!%R7crAFiXX1XOIdN{uuzvB3 z($=y*6u*uoc%(uE^RTKSUJX{ot6SDFf2Ny7$Jb#`|K`d2|IZVtlP2$&*Fj%Ry@_0$#?B6&Z~ z5(ASis1;O@5i=>B_%^oIJ4%Tdj&oH<#Nn~De;ZrFnvbJ?+gU@OMFanyCznK3aXkvG zo3}HY#4g{b#XDG#Zs&caCqLF@Sb3jL?O^?>-DVdJt=Y+{>hjwD8=q|>C)1ssta=^e zf1*@W4~IbHe~=-cdMc{-*u?_<`rT9d7spy32~FDEqq)1-RaT`x4YRU99Lkxj>^@_u zy{semvINF{?Lj;CWB;91Y`wLg#mG$4ipu4&Hf&QD>ySJ)-c5?6dnZ|CPs2b=CG(W6 zK;|bAROS?`67COBf_X}zF!n9_!}DSfHz(6hCkT~AFfe2@#Fco_S$k0LQ>=fPCD(;l z6tQ8%8h^(&>$>&FQ!JAC)-2fw8xqtRu+>(tpSAp1aH#$@N+!VH3x2NcNFS^DJX@z> z-F&U}t}r)=EzhO+A{Ja>a;}QaTT8HcC?I0pSYJx48}(^h5o;H;w2l}Byn-H7x@Z%Osp^Sbor zmek(&pfWaT7@NP39+n*xxL=X_Tw{#_njwWysOSbd`awqzbocht+v}`;!1aid z@`cKp=r5Oll)w5v3DojWK?3nV${*k;zw&%16y=NbV-elpKxYn3# z@i?3mdmbJx!%v`xQcjnZEof91MuD zdC=h>U4Pbgg!bNK6U#?C;@kZ@K7!iZVk>oT4JG*97J_&o=(*a#s=3W7OFVJ6Gj-b_ z_3-)G>iiE;&t-%aQI9qE4)c~+nI3fME^8~=x9m80*GEtIuPx5Zb?^QBPQ7 zUMInYmcNno(mQ(kgw2;GQ1-7lzUaDvbiaXnU)qeC{|2e@r1kXtH&%=7*Hh)EY!Yv( zcOkEP&`?RF-A~!XYTcS*1>A#s2cR@imV}xEs7>gv?{Rxj@2Rk7xMOSEN?o6!ZN1_t z>lrIAeM(E8v2|gsn*5KvI;>6q$h%?=b$bSxdz+?e<_@&+ca~RbFiaxZezA^u&Ll34 zrt}x=IDZ&PaguSoII`YGbMG>!Vpd<-icLq#&5#mWa$ ze+|d3x+d+@@b0Y3m!eb%;7jqwr3OD#n^;O@L=#>47$_P3;>wqKJhTYvQjmt#)p6jq z#f@uNr%~2jZroFrDp`+~=2-R1)V5yI^3oEMYFU5s;$(|u0#n=p>8`VOvi^t{e>HUQ7=la4F4zJ&^!OiSFWb@n2xWNqzTsH zemql>URxjgizmY69pL~aOv3|tjAzqe;FQJF>jgTowRL+SpU*tMfo>OIX=2PaS~~;- zR@#n+0Cw&vVD9Cu&nrWn$FsM;0*n+xH_ZBFsK|Usr@-bG19s9{H;hkX5jSB;M_U~? zI>1E7ok9Rtu`O{IVO0{>XJ9ik*L>tTtY+rItZcq*c0Apy!Nb|^Z%G@@W*)@3krekjivKA6MvN%^FK7d)rQ7iK&(dFvpz$?%Jl`?Q znc8bgRd8E4448;T%QB4a*5m;!Z3Mlq$$PM&kEus3zJcv4Cg<9`1shdtZCjf+W9kl7 zQEP5POERd)~u2A{9i(A$DDl>w+Wm{L>q@ zsc-{05y6At(go};U_z5LSR}>OjC|Ryt9YFTx95%h4XCh~8&BGCi6#VTvyj%VyKs&6 zx98n_8!UNiPsbhS;%GxZ%>V>28!9iMnjLr@k3kTa2tV+~xWMPh0uhwxM!UKw^Oefw7Yf_I+JfLw;Q4A2eu_4b6caIfbp-j8(w<}7s4afn* zb9UWrC5-siF6bLIvdTp351n|h)bo<^UCq4==DE3|zfCwjnz>tfgBUzkw+Alq(tXWY zg#hJfCSmw8Tx=^80R#sM4Mm3=Vw$_82S5ee%REy_=GjRkbG2=t$S%AC@8IE1IbC=y zsR8}ag(pZ|t*^Rp56L?@U37Rl3?;+%3{3N#w7FURQuz_aTpQDkZoHkBHP#(X>UT8* z&C_(mxo+d`ypBXPvO90$)$rrUi)GzuzlijsU%T_3Y)B(Y>A|anBtU@$WxOCk^s<8jFlvkg=P4Ke?)Iiw+0lJ(fmtK5Wbv;rTvm1f(}0wy9y1+k=-6we>{}$`>w!0Ugxns?=C~$!7QvVLWNQ-kaByAn*5%C9l$96kAz`?Fupl5;=agsnSEE&Bm!Ei||vuaIe|?hY^I3YD+~c0UW@ zB(9jo=-qP#p-9DC*CK&QQwhIdy;>oGpjfH41r^1hdWH(C2ByGAVVJd^&%o7Mbhq#> zR;XaxgCLPcr+Wx7u0ngn?#k9BSe)D72G%7cB;KD_s<8DvQV3d@b4RFtm|vNHH(xcr zw&TLk8jA1FquA&|%IME$)QBm-l5^br%C0NGn<&*_*X_V7u)zziu04!z?CH+v#9Rs; zz!P<|5VhA&cFGlmLPf1n1(Z2}2bF114PS1)nglV>ikuqy` zd`8^{@k*KV;6lK5t`mB~q!|HIdSdE?D0bLSngY{BP`(z%069NCT4yJjq-Ls|a^tlP}4fYsh=0G2RVI zqQ3@leVL~rpaJO3zEcG~5RTo&VQMsl2Sj|LrgD7rRdmwM<1V1N1oJY2s0z0a^8rz4 z>ck_IJ%op{en)8I5FR0wrRziZ=DKcJr<}}J)3Fosv|n>^vfaZSe&lr#)8D*`U1^i5kQA0%nY^S71jfDenb$xl!{{Px<|R9^-l%XN8*dL**Jp| zv2~T$Q@QlrFy5r*Y$a8Zt!8UPnw;$yk>U<40NQn9)EI;dmGGyz4fiZu@@vek30&{Y1f| z_-SYq{W^*#ux(YX_0o6)iA@N#4j;`caSz(9Oi>@Z?$|C`lFlcxGP_Ba!H0Q#Z&hN% zs=AYAXYe)EmUj8~42*f~n1PXaQD@+|F7)d}UYll&DmMy&+fgT3KRLp zY8sf({U>Qz1xE}DY57X=$RJ3|o%U9ISSd;Jvi>=VKa|RrDhC3rY`@ND!2OG7{!@B7 zgkaygV=#BG|h;G zVAU2{YUHtO;1((}^6G5Z7UJ1_IP=^>qqD)9uUkuJv(c%C=utKgb*bedxWV4*$S;Ri zb!)l~LvPZ&a(1VdIeb@@&A55xlrB8`uECovt-msJODi|c4d&B!-51*_cm{9G?yR-; zn!zVXtbP$){hS+Wb0K{K65*3HEw7>*Ab-jA65|9t5Mc9tAw6=$hhL?(Gr4c&Lm$DM zKjiT-`PyR^(~#8#X~%M_IYbh;P+6x*u%V?#pl6#0?je=iXn$q zC^+qA*RAD4GzwCd{m2updc| z9bwZ>7dEkq(OF703A1@0?YPoT=?}EK+?#0+W=oOd=!e2S%wyxPum)W3wbDRgPao>>;ikC z4~K!kV&W`|1qYykH$^A&X_M!~Sc;#=BUsN^8a=JABGMiFByaEZM*d1i4bbKuxU)bdLn?)CduqPNl$ z4gG$@98GRS)4$}k*@MNj{Yzejy^NtNU-D??xrEBh=Q`HpD+-&B_QWlwuJd`6OU)Ru zf}L1G3+D5|WyV8|8-yrYI2iE;Lrdhj0Q6*CG*w%`hw7@qm($ph2I0c$x1_vx=$`sv z(X@5}Kh64{ri_Jr72AJ`$}hqmxK{&8Tg3Zye_h|hsg+s2qkoa$?2@I;hQ(WWajpc> z59B1BgaN&ox#(2j#aX0`>FU$U>~SZ_?4i{zIAYfs7b=*L4ZDw6w$oi<$3>f+hJany zXA#vVtc4@%Qy=07*}#Pqycpt#dG#o6F)zoeE~M1OU}NIy(Y(dH5<9Vgb}Z%_*@!6W zyM%|9yF3pVTJ-QS3d1>e^21`hpcN5O^vx1JgRQGeu1k4k7B!z*f5rE+V|CPU`!A{1 zQhtV+=Fz*QJiPAeNQ{cv13MR-T8r(s0U?)!@O-;21~p({+ohwGlN1QP`yyx; zQk%vv=M6l5{z6oh0jjWiHtk)`2i7?SUsF*pqOK>I-x@Prq>QSDe))S>Xwh@HX6liJ zFLnDB3!cTJ&|m`pkT{##f5SiNl7MU|-5hSnd6FJroa7?Gs)8W$*UeZJfU4Sq;A4zc zfQh*6XFrnxt6_nDieD@BKCQbkR?2{?;6{;NNpm*iK4p#8`1%_9f!)rmiv&`x7>#n=26vedF_hr5Fx~nu){Gt#J`JbSxb@dn`>2gYaR0~pCPfM zbLp>@yb+r{ml~`BdSuL{uHyOWT$;R!cV*5G>B=hJz3es2I<4igK+%5a7tQt>l(3pN z^qBw;QwFoo?_fXb9u+nN0|(WhIjeb%0e*f+Yc4eOgKZE^ZIR660bc8PdS`I=k?I)e zc0rjN0|rxLp6*IX9fsF?*>02ClE(YP*|YmV1CmPqV+pr)smsb`cJu4*Uco@B4iqokzBF3+T)SUOp^e z0Cx-R{DG$WdEjbb{N1iwZp6mYGCAZId{zyl?zMotzTI`ExLI57Nm5y)3r|fxXeX@~zOXW|&(l@p@VwYnWc0AR6aDVg^da{WJvqKe0yP5abCBiEB*q#RS8-w||W5Tqk zNHaI{!lv1CTtL2$3wBPi>Jn_%>8A>`(VW-`{4^dl98s7^jL#kgfSsy`5YY)W*oetA zXAAGf?oX!TExd~4Yt?S$C#5p3Fbm<7p|O31V=aR@aN{*9-o_jFN4SaLE0lfy8p;Mq z$VF_=YZSAcS4sW@+!ZLj0FO-;+`uKl`)~GDIQ!Ou;A7?*cu`iYQ-&4!Ttpe*eiJr| zi5U6{JQCVl4cnZ`6=?l--k@|vq_F+@of2KG*X)I|Hzw8A@nV_>mQm0)u51x`?Bt(FBdGsQc>nn13NqPGMxn<7TVA16J9$0! z(`R&bC-3alT8a;0SfDVJCF~}w)jSx?OL~qybfBj;&)5xLRzpPysHWrJICqp$t&M`fM;&<~(4X=DJhW4CY*9%{XF-B+l z!mz+oNJi~ChAajnM3W|7>})fvff4TOqVt+%(Bj>^npBH&ck`N=w$&JSb8Cl&^ffi4 zs84Hbr_>N^E(kj<2h~uT8rrIc#;c)~O30igzC=kpPX(+H0E>ol(3aRj6fyzuL!yg7 z2iJ%X9JYs-Hyqh0J_IKiA`$GxAkkbTNW+y?wJ!!DDf)9?t|$+_Ys1AhZZ!JR5F7V1 z6dKdv$W1fl2Rgln2e^hHo51)7^bCbpsfEJD$c8}vCbqt7l)m&+s#Iix%f?dey}Vq- z30v%T+l~izJNmH?2#2r_3YG%NO`1#J(SW@?IOvD(99`ZBV5F<4sJGir!ElpZcPoun z@8!{TD~PT)X-;29TBND24o2frV_}%n(+a2%C`Rh{K(M7qjU zx$Cg^8Rt0CDIP7x7G^Q*y7glO$6S;Yb=|J>N&EYKCg37<^oPjaX=L8V!#&EQprn@< zlTCsC>*(-4UcJ_7%=M@zI3d*=Poa~}*n(Gx&MHDXGs4iZA!6+wKML3uxAGeK@8^TU zj&(&ht0`*4Xu?szxXJ>No{dBcEZ^8b>=R-Gy|2-_{k&@}uaza`MTn6?mNg(b$O4J^ zFeS@!M;6Ofs&#;;O3i7;0Z`$U>uCJ}-j@}uCijD2$R3ZPst0*HsRMm>kT;er)*T1A zvm|Yz{fBsi%o!L6I4(Bs7AWB)1YnEBWGf!7PQW*J6omOkz{JD_W(9VH+Glz*U_pAo zQ@cA{X<9U1Yd%6ejm`44XuPI|qGbBHlGm)MpoB1Bn8?aNh#I^wRc|9PP|8L4Zy8S0 za(R_*J`1sb3DsQ&Z8W}lpAlN1DTQ~ee1ZWT;o_79vu;l59Ti+Rep?9myW&LSn|B#y z3p6(_eMngwDT{wJzImJBBiO{?0!{8EdY{W<*phE4CXd%(q3dZt9#8Pg94@d>oBgx+ zOt8l=R0}c2aLUc&eo)*h%Hw-#Mf?co&^fz-%wp4VNlDqJLevF_c+oJM|4+isaiEK};6#R0Y&b-8}!DUDIDCsnL90jN4_pKX9nQI1on0+C7CMot5=Cg$iM|p)t z-fIO%kn;ragUakaV_SGbOycIUNz?HH$X0U~lctUG;$hMxiI*!_^uMo4%a3BikhPI^ zAB6;ZGF?5&D|MJs+R0u}d<#R7zFO4kB5L&NDeH%dkq`YaIp)i z3MZc06(ZpcAr(7m`vPfkvp)G4Z{XY0RV->gdmvl0+g#Bj1)7$w9<=xvPi3=L)9=Ty zz5I0*&CTZnm~kV$%;z;){;){kggH#~)o;+N!Mi`+1)1|T#yDk^vCaD^MPD_AFxp|8 z@DY3j4KCnSGLux00nvxD#7KmnwbfT)?L?snR#k(MqJ;A5d#Z?nTlbYfRuIVY#yx!i z5mo=x4l!o4NML&c+%s4vr5=QgLnO};$zxhRO)u-vm~k_fLVGo~W8_uH%SjulMj;Q9 z%+#t7XO#O_(-(!<9_{^>atnFoh#Ey=0$I$tqA;`0iiu+Df^GvPP)V}u6$Cz@{|zd0 zoQHW{KWMk_11I7H`O7+LaU3TQD{1U;2Ljnv#(YY-CwY^o>3u<-o*FEzpH7Rp zc~jw_j?5F^-u7?6b^svaGpD#1qE6eQsm>|h6qf-;pW@r3MO5W9uPY6rE~j~WDEO~G z&0CgxU05Qh7i+uO(*}TDH?$YIoZ*RA8Yo7o?>qLypQV z_O{(pA$~TEzu}DRG79?wU3&00mB>mu)u|QknDIm(tF0?>3$R zZ|&NgHGm7WzkgKph%W3)uwbzT>0!oK@6)R!_sfOc>p^+Qz08HM+X-g*wI*d)ZfXk8 zJ}#sq#cs*w!$^`>p3a}+VTuIjMYHIv^qRI*Ye}`CO10y0hi%q*NCi`A&3XRFZQ3$H zOHbN1c+;;pxgTx40I@=&Wpw8PZz%mq{ug-xtFx5uUc^aymNn@|Jf!}#?Gmr#H+2an ztT7+P&kw#e^n*@F;%=PZcA+MBdAv(gMA~(xE>!0-_jmDALPNSx`^&t7bdg40<|OaK z8brPB@$yvV3XpAA5^cH%IaC~{oGZMhtQFC2_jx6{dW;ii6Dn2CIG(=#7%!V4#yI~UW1NbF|370~UrV|h{~Y5}*dsXV zUSbk;`_qUUypPnC&fLH}>`ISs@K>%6=BfkjK~HXCvVJ{R3~_mCdkaZYX~Zpz^MW~I zoclUAO~QV}cHg@EHiwa+yB0Cb1^*o8dac!AUWrJ%?r|%1m?tWsQ>~O?W({N-b(v3K z&mU9Mdsqf{Kc9zFm?o;L>vXNy6wRXq3_82-OoQ%2x}Cp` znigT7kbj@=mYPuJ1MUyJtaB9t?@@nRk38TmQl%uYFODAY&2o(MB#iSZW9adpA!9p2 zPk-XqOY2{`J53p2==U5;RG^Kn{>;OxJ^clToMw-w>dt#sf?(S`udBdkwq4_t&HBk- zDEt>*v--|0=tGm|F7;tmAG`4oI*Q1*MnLSLFA^y07e1(NEfIv?2ObY+V}^r{)KEcH z@F<>)a9K6%F2ciY9#qZ-o+|SbinZ}L{{`6fAio8VLxL>9`fwk+?&sz-*TyH6{UkKm2{vn%bfIz&AqPyu?0d+kRGzR2ZTe{IV+qvepb!u&6zFc(ecOy~KIEI&VJGYC zN9b%;Z5(ZR4B<;JJ=q@fy=;0@TK$9%@+#L9cOd?eJb|pf*CY2=LD$MN9?66i0u6PX&BjWdWB3JnRE}pn$sx z_>C!mdx^ITc*E^&O%0`vGNp|7-#>IkKj>fNGk7MzwEpL~M+RUT&j%0GDn)^7@3`;$*)lZR8c7knHWHraaN1%J!@ zI>RH7Q+nu&y!iBBTb*j)O8xRR@t@I8uX&%$Z_+Uo7R_XFRB!S$iI7S2r3xIS0+*@4 z92NKi1t3YL8uExzLetdH?`qs6HB?g#WvHR$Rh5*Z5CT#?glRdki>0G~aeb{(bur?K zTWE+FTSbE1WKp@;s<>j-G{o(xV&LFOasAe!TXvr6zTv}k0q5QSEoiK8-n#t_cm~Gi z(1UmUd$vD&mCC z-`n{@&L)LXb1v5`eX|ByAzD!1uDe^!I)%$P8cQyu>9U;7&h#V~jU4P>v%2VsI3b;y z8f!_DES;I5-x*sOir2_B*rPBSu8}RJ59Qb1X?vn69mnHQgSE@=uDSO$ziNlwMEWykJ3GkAxU*ZKjFQ+|1lcsEDvUX z9i<mSQg?q^;3C&z?niNqF85<2D^r-O zTs^#FWq2@X4yh|HhYR;_tr0GUQHV3J?EfUAX+EM1u-#?RbT~qjUF9aM>=D}UDhCIr zZ%6+*4zSb58u|%t{KjE-7#fq$88rtE(_2@0y=xlCFmRx+g*Lg#9kd4&s(ibWAZ?oU zUr=dxxdj_+p)T%njm&yqh_u-uGX-f-tQu?bM0T^LyofPr%(F!(J7lg%VA9M+WP#>W z09~PsQK0F8H$j__!Sxf7Awf8H(P$j+Y1r5Vi>>%6q*KqOf4>T$#&Mhy18%5e@eF7r z^b8IlWQ<#jR8ARgYQhspXxIISh`pjN12IN?;{UFU8*kKybw{l=kEilhlgB^ z-K|799`aLmJBU8>lxMQeK_r!yqe^EV#3({OE|f85AG9_rEidAwuI|Ck(8*Rz zKbMi)vE}V3x~v?S+0-oJUTJgG&6j7xdZL}@14K7I#m-xsJs%&A(n=#jXTNkWk_UtO6%unq)uW~fdTTU`OF^RNi)9cxFd;L+YA}l$l3LBudVfOsd zkpO2)OB@Nrrp~UU!77PpyDrn;`qEpj&b+e6p(&Njn#p*YJjacrNMCtKm4GZaCn(oI z?aHousZ(mnsAY_64zLrHQ6NZ)q5Zyc8+M{KdHBiE+{@R6TKdTw%J)ZVG)b3iPU!<{ z7qDWe7yIi0zAjcbe>qQXwXHKG3L0A}y`V)xt$hOJxyM(vT%5-GK$AkVxR$j^CApErmq$Yk>|fQ80i%Xc&=0=V_yJ$)Ggs=V?I?T?Tfva8GJ&j|S^)@=mch?GN``cx}9 zABay7su_0OytmMEHficM1CD=uK2S*ke0)BT`4=^C zEh=AM{#05`Q|ilI+54JQRA0_ynmB9M2C~28_Dd|-l*8eg`>`~sp?5{;a<61e6BULJk{vJ2m|7our# zBYAE>G+_E!XZ08FyzF^2AU71TSqbjBP%(=ptzHhJVX^3fy4BRyv~MU{<1SHTob2fq z)j(}hL<6-+1L}(=y<<@-MX8O60!(R)FJ3-0rec)ZnC!a$M`K3S6^-f7 z`c|@L=;fZW-`-kcd-0@?a9q&}TfPaN$(CB02L=kBq}N8AMx}5&v=NYGGvQhI-(XdR3s$7R5{QcZ;2Wiv2D0wl2_;RJoe}GQ_|rxFFvj z#m=}u@4Cw1Y8t!gw3Y3;4HrI?*z^Jgb(I@=zfmCR&Ps`4DDe05qB*s^fB1LA_Ve_8 zS2@PNHzNL9Q{VHVrUo9S^B-ymI!{fz$s^d-bF{ge+|cLtIT7=5>js>o*WKir{z1s| z-x4dGqqy#Jv`^drHjM zd7XAl14NoOt``w!Z9dkAedTSX*!BooHdwB}7Sy4=gXJyK4>WWLxR1JRVEI6fV08+t zmZ9=kiS0jTWy9s&5^H9#?jIpHmRP6i^w&rvsZyQ7M*%Tme>!^XwcPn7@*8(`BQ!&T4QFrorcgWVhDa4C;^} zhtxO(i}l)(x!UgHMvEq471&dMnAFP-J9pt9F*UYZS7gZ85hhA**0tj?pI!2B;R=k+ zTY74igK5%DMAV-m7xVJpe7XP23_ zUJQ40f8clqG!|#AqaTg(kA38I&Q1l*6T}dM0f@wg5o)Cpv^D@oN}T#*hy*W5r9Ms2-cmuYJ$J>76PE=?Xs3!a^#dudkN&-8nraLuDAsDP=$$ET>`tL z!h)4rqX90i39*F1uJgdVXsNw(y!F4O7nC|ea@EF$a!*&^?Hsx zPs+Tr`a}DEUZoV~C1l}(YT0!Oh(qxT1jm-4YEl=wZXc3Doe!4jVnD;(iqsQIY*a_qXM zUs2FJxrc9iq(?JRW&z&RGEXm2%MAI7zMF?K?Mwb!=6vX}A|J{eqUJ-Hqn6Nb^W<@! zy>Xcf+6oEymQJ{|_@!*oR6lkX=jHa$gLtTGio^N3xjlLb+g8ujh_UO|-nE7;mN!c- zzup$Xr?;)QmdJIbYCCR;;4b_cC-oO@DIl%D9t$jV$9QC3s6^8(Lh5qXc1z`asp94v zBFk3%BEh$Kz)qQIY`kewC(Mi+)_Pyd4JDVZ*F~c4*R5lh%Px{j(lrrmeT|IY$RRF) zO33dTZ9%BUv#TQRIevjkVKI~XXF%IXsr`x)b5)IrkIEG)M8Vd;6>>!nHZ6zZzL$@& zz1bvhlBxE#M;ejefd6*rzf^%9p0=ebG!@W3qE}UD&LcX$N&d3-vxiC^=m^2Nf&*ba zZP!((KcFRe=xY0E3Yj*`ErXX$c`r__RqQTh8-c_k=psti*m^yrr<>(sc6S=x+yZLc z=Fy_9*fhTVg*t4NJ2Txh+OSowf%AzUx5{BY?S9dKxK47xzgKe1q%d3qIzV3ACg`O zoX>%K8u(y3Qj9Cr4g$aN9uzg?8EpO}wb-Ox@&b0YDc#Q$5XGpvM=@6BgeDg@w9x8+>_;fM(_3@vd?ECasYchPEEXcoSL}tJ~^5h z#?iQa*br#O(Vl(s6Snp`jXop?CVYM!{f*OvOgzzPDeFY1m9nKdf}{rfieL&<&s>tA zMA8wVsN9FI70o=)zDvpVfIN>?PN!uDu=>sZicTDmTe0PFG2=$A}SP4f*`Y6q{chyoLNNqhvaXhmNYO|-o*wJRm_tQ zu)Cu~@3mq*7g6=Ya{D$loU!r55q%^MSAJgTtoqy&_s54q>SYUC@g9dY$_>sXL!6y# z%T_zW$_>tLt8h}O8;=Myp(4CW4xz%satK?z(E96PIZ?v?6lNG7CYTK_dV5~ho&heH zmgzV%!;W$>w1tu^%_M_%OJ35;r%4c6h}}s-Y@ycpmk_wY7h@l6gbk)0A*sr9e@Ht# zlTE8b3?dAhM9GMYS77@?urokfj}X`w&K9#D*JX10pgu*ryC7#Kssqh)f?q56$a0Bo zepoxBC8|lW%FSS+=gTb7Wg|d>l z96~|Im@T5!j_javniMFyY5MUug35Y?pl`8;#wVLZ z#hywpB*a2yuATlFB_5Ys(cI(mc4;UzKOq;f^9w2Pq?{aF>vyN*z1%r^mI$ZQ@N;s4G=;XEliQMU0Mr+~&qE9~4)RcJ z!3QIW?NL5;Ixkl#y;Fsa7qC6~lyhE=s5CQQP_B&z<(oIQ6Azpiiw98D7%dUc8OLb1cn&&7S1!nPy`zqy z8e;)O3-5)ud3RgoV^rayJgD@BQlg!6ls0WTO7kwtzL`1|rnKF3RGDFOltED@`DYG@ zKn8W54{$(=N+2B_kirs(-T~QN0*P=y)|Ws6RY;pTi%UT63dk~NFd&$m6?(k?`}Vo* z{cweX&q*ywe&dMRT0;rs#1TsWQ4aN4g&1hCq62P;4$#`ZJffk#8L%`yd!=(AJ^WE_ zSgvt*^o5v!s3|x2tzGrM#%<{ob4ecIkw5C4-Ly~4r-3j*d`YgtzUfR?F3Ds3?&F?}lUrsqy!LN*K(C$>)k(DHFHW^5CxT5r-qdj5E+Ug|Tuk zLHgotH|M>xCz@|2MlTByXs_2UJferqG=3c}?Ue?`Ue!(?52hR%$-=|)-yiZ+JG~vi zdh>#iFyvH=t2qB1JoEJk8Lu~A7oR4Oz)as>kpnS>hYPnDNQ!BXYguP)-*qho`_#g) zt}v^MPqBCu3X8PRru*jXd$kILbJXIf6uF28ufILa)ExHX|+KHQ%)iBMP0D83bqv- z#2msZSIuDZPd4=dw>93YAYSO(fOejNe;jdt!fX*4Y;PuOoRaLv;49ZF$$mED8$%nR zCHG;d#W)qBI_1-6E1zyFKS_ftJMSg!jCGQW6%;~zgH5BnIT+3CfUzub6`@+9`!;WvqOo{&Uhh`3D>Jn zV9>!}#uZF0eEnu?#40sYhM*ietjED^Zse#SPEUfh-=U53L{Yx;0)5JlXPd(_s4A|AF|mkGOeDDAAR z0A#wjT(W7zE1acX!)d0$ln9lel&7`?5?5i0V4%}A5wVPYo={*E)fG#b>$&-UDxl+zOxmkrpZ9s4oOWq2>fn%%^ zCu?T9e@|{vzaCQjo0vo%bch3Ur9*$}&bV8FK`2z+4oned=6XvV%JRgfr07V`$n> zGHj@(SvUVA4`)>_Z21@NP3S2 zy=muS4X%T2%ffeQXEXzgXTBw4rF_FsH^PrV!E_nGY_KG%Vm?K{BP05y;9Jn5@H}{Md>qlDwGeb{G zxK2F-8ZO?Fjc>@OSPm>-tp#ukuw<|5i=ocR_zS_^LbV;C^s6KCQ%9_A1R zJHg(B2to-JCIV8@Y|(M0g!kZ-#fherc)TPoNi-!=*T?dkmMMk=Q_Ai{Q)f88?z}(I z)Dylwdgkg)Jv*6t9@U#tQcWp^def91rYWcNri?zOjC07^Kf#pvqu$&(ULW2We1mq& zVOsS>j?665hMj+$K z$By`;j`*kIdDxWrhaQ9OV9yVVq2HCV1Ru3HGr^K9N&54z_dz?z$@o{P-9rCW+omW} zV`=wCak!Q}7Hghh2r)?tKuUz% zG#WvJDP?Ptr86WOomV88k0ym5!$?Q}&Cwxiq_L5cHgkr!29#i~qnt`7gYR@~3=QUH zuM*4^B!T0Cea0f_!OaPlBH&zO_ySsw60rGt5BLtHV^iQ{Ia<)9g2XJrZvbZoEd9Ge zJp_z(uP4@p;kG!ZGtN%JMZ0?u_c=f>-rI?SjGI^kMq4lqNg^myknT%%|p77?K zn2u*BJi+ECrs6pn&mMYHj#3C5-s4pi1ZaP}io!t4azX2C*Gy8TShg%%1rT3T%4S=w zEM%4yC6LPwh@gIInxhU#RtaRgfTRfd8O#FNRwHCEAAmz-+Rkx*F*+f}tl^uB@0N_hJAF45NH{u`9rQ*Vc#9d4=p{{;~slR8p!>49FU?bQoL;6KBd!t z;As1^r`DH$$O9!7VYK#sAs?19PcB!xLx^hiow(2e`Mb-E4oFr> zuF(R5J+P_4-@EPK(VBL)K`oUXcS^h=$5Zf@2BZYfVhW&5ujIjH{Dm-P+T*S0T|+@m zG;@NwDCCZJG@AODQeyFUh+534E{RcgpzMm>KyD{f;_8CL^ErTf&^*CNdRUckaoAR0;AB+ke zua!{efpaJik0SMPM}64v5OptniWeaGA9&c_?G(dju{_1bz&7{U8~a?0`(Ol|2I6Hn z9Q=ZWWkOmo8I%a-iZvOo|*d$ ztAh)Q3W7Q+iV7|yN+^RfIw%O18g6A-Xp5!-YNZVdB-7)l<#KH?t+d4!ZP78;8BoC; zwM@+lm+C<(HOp|F|NA`81EPJtzdx_n@Z9Cx{oHfUJ@?#m)19BKffuq4E76&sN%)90 z4)2y-Njv&y27m3Qp_O3o*5rXg78Nb~**k!qfK!a!4~K{RzP-iSE3)5TCzXO~Cy zSjA|>RMy4BBc=)-WS=JaEHJi$hFFu=*j)>Yry<-fw!-RnJmls{b;L*<*^^JCm7WE=&LV z$|0#U6#DctxO0iCdpH+E zqF}LUvmQKi=+{NP5%Nt8AmuL}*QnRCM0zFH7T8h(+M#<~v}LqA?G2ovIprzQ2z1$% zgI)itrp7(2&KC^nP@;1!PeGMAbtpvhLd(&Nc z)|mP+#kR{Hgh|WG??6hqCf!x!nua>r(CI^TZ@$kku%1U6bLygXU`CT;$ zk}A;1@ROJRRF4#u{WPTL?3eemwv?c!8m=&*IEPPn+K_FAa#9^SL2i#1gVazgEyPG> zMAP_Nq`7!D_BT8mt4Lv>pgB6ae(WzTQ^r08V_&6>eMYo=3ZZIFSgdR@)PRvGyuxP~ z7KBHT8;^uB|Hc`W%iFSW#}@K$CqG6hV@nN8_+(VrCD7;M2{iXC{?6jbG&x)@@~bf) z)x~U7W5}<@V1ZH71H(#!s)`H++VeE^a)^tP{XZlW&5w5%MD zPsH;cI@V5?%DXjXgZP^|Hq8-V^M3s%C=a(nhjpbLE;K7ENaclGP90deG~Zs!(LYSZ zg}Cc0DMUk|Y<2q^I%~?Zl=SwKPT&Q}5z*;j@UtyJ`zZb-HUX*5-~w{XOH_|F zJ{mD=>SE$8AhXJHXH9a^;+8Hsl;sQhkoYsr=eX>Wjp*RG+${t))~7Ek`G$eb2F;H`v*BVcgV=x?qa*3JqHA;QhYA@$kva+ihz5o zfCqozfL!bi70jc8(MN8hfPp>|^8w@+PW5BWd~nNT0H zj6%SDei}pEClNB3n+N;piU)|ips&J#x}xjhpVD%u0;F2X!&*okVNPy9nEw}DZV&kX zNtXkcFp)MPJGStfEm&8JLKNfAXyoItoSZ=9<7(ZSvO}e{4°v8M3J;q37gTGG%S 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�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%0A&lZ|JLTr}u-lYa3aT1AH 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Ðm&VlU($pP{HF+*lW^x%N4 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 ?a#(%nQL@pOCRTggqwQdo;` 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 z zf%q20uYx7kCDTut|5l1VS_)wjLz(mzd<0cF&8ugnXdp=AUG`;*fr>h%#A>iqQ7D47 zwP3U;p{n-XMMT;388W6NsAOf!PP|h=NBopKsfdwfkwAHf*=Dv)=&~1b4v{=oB#&+L zAfvofN5#_;iuUT2BO;+C>$wYDY07xMfu4AZp6HcLboDe3(aoY)r*U;T+(xa=;LtR5 zI%S;UVfEg*Al8&kE)eD8@QF#FbOt7|t~FBa^AiHEmqZC2I>RG$W}^n%`)>f-0e~=2PH{KKoKTt{p`SygI#m8VFRx3ci1U1lZV~--o;T19 zBF`Ur2i+3t{v&Tw$+o3TurGK3*=HgE4rA3ewEIWiF!>3dvx6%;(^7C{h8#lYl_z4t zS_(jhE@VnE1?bcb4U#4xV^nhQ&_9L$yl1Tgy)m4b>6pi^Td4U@+@@PbM}Oi~Nx8x6 z2YrTxCg!>1!Alu#D4p9@?hlibsbmCRF0c#SDCJ^YDChzt7IP+08h*oa0a7m8g<8fB zW^3YdF;I1sV*nJni17iI4_)B3+mEaM(qYJ5t&Z_AW!XW2GUL4Q;NaqlG9oR{Uu9HJ zPA`B6EfooI$6&IQfbD*vPZ?CuC57i45rURd&t!Q&lGLqEEiUp%RT%WNRnzQ@I!eHs z3a`(jNf-IpD)47xxo!|1RF9g|_p1lLfMN)h=6M!0CBL8fU5|S?f=nM%`jB)91OHVH zC12uAK=X4h@glawLMfMVMc>@MP5eMlIQS~BR`Ko>5CO|!SXSNp(wq+6lEfVjV~dv5 z=_-$RUyn!}WZ$JFS9zejMGc*Qm-bxcRWSX3zRF2Aibh`Jscd8teOd~^)*p->UgLFG z5u=b2$V>0$Quh*wSMLSUq!P^Pdh~S(zgT6RA2#u)*yf|mxIZ7RULTsK!;|Gx49K$U zyr%Ty9}b88=yk|+1GjE0!~PW6;fQaVx$w?Xkudru|1jtY_+C6sZt2J@Z;7j&>8IZ5 zp5M|^F+ZWDH+eE^KU@rLIQib`NJgR2)X`v|L{XjeIH>)dnK%YSx@S(DOv??IzcA75z&g;}lTnN-! zecsc4+Gsy!{D?}BuaST_BEG6i(GPgP275@1gwJ;T+?fGd0AjRD1AT{|(uoMK)WTng z@LDd0{iI`>iGu* zKILlD!aw*f)*zBPKIQ#7F&~$v;@h<^{8CQ?d`z^6IgXgprmx{c0UsSE;9CVe@-@7(fO`t~3<38QUsLgg zci;NTY8`&AmYc8ccmNNkr-zv#$AP{i(cgdZUs)wj`sF3RWIWyrEYd|>PA18PvA!7< zapJJ{rt^REaZ=kTJSX|!6_{K9zBK(6pUmoXB2Nb&&4T*ar#kpcR#Be@^khUlEsW0y zRqEHordjc@{y|Tg&!n`h_j_O{Z2E~pKfvk}D?(O%D-AeI114+0MjG%b3P6&2TF5&_ z4b|5|kF>ZbEmTJfMQEX=HPn4A;1i4D9P=HM~GLEDUVcF_$k4Kl9Z>Gf~n=7yd2UXm2e*qkvm&sEyM1_x3rH|fK` ziYO5TzQinc#%AVpF9@5{w?m&`io0ZN;Qk6{-vBhASc$WON&eEXt1_dr5W5+5FK8 z(Sk+}<7{7hU2h5ZahEq!10N}eO@5Dd_(-9Fm;D4LS_p~Q2cQVq7xmmKA!56Z3i25AOBl?Q1y zeM3DBQUp8Jf~FayNLJ35HXEew<$l|UG_}m>!U5@%ja1oJ>d&Tcq#R$V5sUMt?|qRc z+?#IrA`jb0-hNUQ>6RC)9+cR<0x7{ys>{CEK%@MmbXL`iF8E2cqBx?TwuY=1c8P@l zmcKkPny?pf(g8d2nJo_^$_$HKHvNtDRHwZ3E?c>t2A7vYLx+D03_9=4Ge()y#ff0> zdM{WHlTKUoDeGxNd1jqPY?%70c5!P4gw_WzZO4MeNd(d<%H*p1Xg_&K#TN`GCW;8paW8*{|#S)Iw8Z( zmLfv}Y&y#NZO-rExEA&h2mbCTM!OEbe-XlzBeO0THnh5o(gQZjooZH) z@|fP8wp5T}$_1>!FhVLXbU>=Cu|KLHE#T$mrHjs8-01?*oN}8MRF+a%`&d#cOTk&E zMv1uRhTQX_dp4ijRYW_dNCJ&Q>Bx{X7ad1wdl8{FE`sAjM2r^^LO)WMnEnDR;zw!m9n0c-sqvQq&QcS6s3iy}OVCzLu={lZG58QpkgR%>XfDV>80tF# zQUR%h!#MACIxq2I)dwIEoNvo|FYzJdWegvXaC4Cx+-a}mxN8{@;TAjmji+^@6d&=J z3_W%j3v^VWij-uYBmi-zG8#IJ14R;4TFY@-6HP!{ME2?JOn@7$BxeF~jMUO#pF}jo zgF5?~DpD=x8_*L?sV3{a@oV*Q?MWq7r2*B~_xE&xP7fG1hjEQ~jt3!0T}z9z0J}g3 z2J)>&G&n?R&&D^T-62v_UV!I$&qAbil>?9(O)@6SDQU2j0SkmCakw`+-0ZtTr9!Fg zr|&|Dp;ut+9@I!^6Z(9lL7v2`5WM&FNzouTG)NafEE?pr2Em!bXWYAVC_<{4<*vod z*J45u^QwhfgGGZx0`f$IjL;xB!}#3QAU!n*9&Y=TXpj^Q5)a6a8YE7G;31dKaSc*S zgY*aF=iVBqq6Qic&}j{#*C1m7Ijlh*w-g=J1dVY%J2l`{4X6@;IG+s~@Q4Of7k!-1 zvKIDJH6#-YJ@NEbtH4A!TR1+9RPbO{tXAG=X>EeXnH1qWzZEvdD4TkHy> z0-(U5H&?LVuO&6pu_u@8wWFlXI@ZgdF4vJF@Cu*RmBz9^KBb9uCA_<@VZT^c8s^G= z3!%0RrJtC8h`o9vDV9~tR@_`n`@~AM!9Jf{oG7M-{40%WBF*zXe;coTWcZIM7DCBq zzfi@dm|OF1Q>&&R%OBjL!A+$mY(OrpZYur4@ZNAntQ6kzprPzmB0fR8l`#E+xdy>Y zZOrkvZzayCfVXcY>fNN@W2GeavJy3GCcR=W1MSV?q?wEju0TgyNWFB+sqVW{SN4sO z^4^uQ*tQ6}M@uPC=SksURQ5;d=Y~^Myj0ANRHwrCq-XB=L$RmoPli!J8);Fw24S8q zpPQ=x#P`Rws2oO%TS@aPQZ?kfn!xqr@o{G+=n}lkO|3@e)>3|u5{d)J^i!s@CC_>s z3@V5~Y&N`b$ojLPv@c1Dq@V<#;D$kKjV@HQ#!E*fiIR`!&8k|Hu2t2VWUMNh^f#*< ztTkqGl{by)TSaTk%^+uE4&&o>V@?KXjcEwje>Ns0NHnH5^YgSvw3T{D6$e%j=Zt&s z9dF2K3yJ4ApJZFzZ58dGx0mj7woymc52WK>ZSYWamwLt?LTMjL%{>3aOf=a(sG!uM zRUb-qJ->e)engiL_L_*WmSGq9ca&PQ1-{g!qx2D5;%DE|QL=f~e!ADq#S!sb{rkZ_ z@!cJN!ETlPr>Ql4vX}bzl&Y5hYR~If4PIjpRp}*#XNlx6ya!ztF#qXgiONd(M||u5 zYdmB~nUc+Gw40y@21pS68w-^c_|42h_;Er=(A%nt{nkE3~LVL*I&R z{5@^#B~_>OpGtw=UDeE)fez#EyXe%XQZxVcT5)b_agop@Sh-8IrLKSazax6>qVByU zc;QCG|5oF-OH|X?J9d}WJ2ZGF{oYF&!qRrqC+Sj?fLS~L-EiYhT9+=>2|R_E|1I&% z4!V~vH4Sj=_;F_^98^QqxjaFBc{rH_?zS%RMKj+N@L z8XGBa92n1QuGDgzRE_<1*4}HJR7J;5{y^E|u`Lc=Z$CX=dZ7!8Vaz4J)Dv$nZ!0y$ zw>kHzkm{aPju_DPDF^Y&tXK-6pIdu+QotnXW41kyhEI|#hHBHnTUh&_7INph8zvK* zEQQxz;*C?;&;mm@@uEiG&Mgq18k0=nr#D;FgxjA&#Dkb@znS*%SjPPPL z{=gh+JzYxio%j#v&^fexx&)vqf=++$%z2ZTu;pZp+dP zzxsfht*rwETLBfyX8DveLpqnXb(Wh;QR@UT&R`9qahQajs}5QufFmXDqFdn$QIS}s zxTrxOZo=@4dVn+)5bQ{^wFGbSjxEdUI*WGLq?D{pWsr?CwbC5MFUnw_YcMRXtTI@x z1`AbdRS+nx1CfQ%J|Rp|-|Xh_eMfa~Pkz1;It?c?40ayTdpLU(hdvW%}3&@fkii#-K=%-#Q^4 z$N*lCWFW(;vJA~$X9z@es53ej!1uHQgI>pn3hX-L`<7*YDLdx=mU16`8K* zgU&^25HOy5&W(&;3YovGI00;Z~b9BGAF9hZHfq~D{WsT9oAL-a}C-B&@_Qm4ch2O8n<1V^UjL%Y95?+;ab5tU40Z;g9ZXxHVZuz z{bY)@OKn1TPkJSk5wyAOsstmk2&$JqdZpZXT5gw0*_I(>+W~_7>O5`Ufz#xMv&42v zo!Bpfsq0Ruwr(fo?35w{T+Zr2TPL{VpKo&Pgh)I~xQd$k9m)}d{SkV9)vs)U-x(%S4yQS&uRDT+_M>-uaC+O z9#lJte7BQO7Llg0^nO~gFZN3F*!%G`YadXE+knmm(zmSPH1aHztZZFxnqMgOWai#f z?toN*y!T7->_IxU-!JuGv(stgendv6i^x9gNG~mM|6W?+-wr^a6WEJt9K=cC{HHYF zpmdLQE~0A1QgA|(A|M>s5B2a1tfj0G z_~p>fL(**as3#>K#tzurLgNohZQ0nKboemN3CljAWkpgpvmI1xY&!IyR%2iMqD)7I zhwuZ}MTE?9A}SQlf*{U%Pm6cf+4LZdE|!+*im1X7X*&zdrjtjcJ#0%ifxWhPze*R6 zN*&ryzX!4bRe)&R&@7k?PV==t-+>T_DUr)x;l@XOK$`S{n~Sn|l{2h9@%$JM+Tl+a z5okhHhq1y3H1?Pj&dihTOOHv3x~v3wc045Dxc^CzySSTh4J6+&IS!Z&oA$#6%d^KZ zF#TAZWQ*4&r5{NG5TJy(VuQs)4@6lPhYLxj*}65n3x1Pr0qEr!GyK)1ilB8>xLHIO z-hi71?<5mUS=y34n6M~`9PuK_5TtFYrVR);TjvXPbTj14n5qfkzJ2peaxV0ZT#9n@ z5CMYd;wZ2@*BPcYK+jWbxlIu#l81`qfp~+PB3?Q0Hup zV}FvR0Q&BQ%u!&~a*6uYmc*SlOnnUZ6lPiL3`&Mv0iD4Upm=0)O|tA~Nsi*TJL|3X zHrW~wZph6e*B_*|^!^Xhceu>tXQc~Fw}7skm6Ahaj$&kS;VMsAhi@Q6+nG|(VO3+QD;TNU%so_xWPiHSe zU{wLP>o~0UM?uQh-%`NOQuT73G}u@H8}}_G{w&q2X8u;tvh`*l1wX0c2iMu+2TROf zsr4<*{~4Sj`<8b9EQPS^TjGCD1U%4bV(au?Fn}%$r4wt10S=(GynA-LvWWhy~tj9xM%(+lhlHcYpr%yJn6qw=;8m4VkAvQrsl5E??;s+1p8-+!>i{BRS;$lZwYtbj-BgTP=GFbR11>+0H zCb$s8tK3e$rX6k&wg6H{kFQD9`Z25*$y|7cW36PKOu+L|BocHkUO7G++;tJK19GL- z8TVr37jPzNwjA~?Yga;CiD7CcxbT>#CV4(uqLR>fC1md34&m%=tVzCRP_;0@t2#1*YN~fJELwBu>|Hfimu(0!VDpr zxp%Rqyv)}6mkG3Yo2~1%vXWpyu;8iwGCB{e2saJt*WNk8i?Z{c&4$wMe#y`2gRODkq?SD8L~}eQ2y?(cS+KQ zJ;`w@a|N`y-i4D@+a9q*F)YRS5#6?lZY!bv^mqgG3Y*7LQJC#RxHHAP`qgCFBO2v0 zdJ<4va7%h$7frsuNP+zinx`C=un8o_triJJeulE(3pL4c(vUj<6YF(G!?edDRm{`G zm|KRBcyy0rEM)^c#O6q17s-=6LBhH&z7|FkSdrghrE+4zh~q9s3A8~94-$hO*tr9Cp0FK<&6cR z*tl&PdZ9k&?7m?tUS}&(c=eU5RDud=^DALp@R%|i01!&}h|q}QlvR}SP^weuLp341 zmc6kflpLO>G+#w?9!ink`=bS|#Y6X#$|-WYBSq8Ghf=quVm!3PSr~x?Fk!e@*qJkn zrBt&AT$#c3Zsv2`YL2fYt_BjJ=ace4F)Qm;amO(3MdBJt>9lYbq93 z=jhKM%*OHwh0-jVv>XT#sH|^!d({XvKW){lTTXrM<2LfjCp7!M6vbS6*!SL-2D9on zzWCR$p8??QVK4kb8}_+s!v7ieiC?J0?!zL>hTYJK-0w*B#JKl)M;H9>(eBq#8|_JA zw0HTwHQJq^2JuK5s!OBbPhhq9<8)@sf>w62{37OQg8URzsA24uY#`q-tquNaBuY3_ zYP1!T2EQ%x-f@oj1m}m(Q0Is7Q|Cu;N9RXG8+;f-vVkMv>?$86;u7J$n-Kb}s^unh zZd2m2mgNDS8G&p5mYE@m@+?t(qI_7jQ6VV!cTk~&gY+Cb@+HZi2|@y%3lz`KQ3!=i z`S7!caX(>2YSCj6ooox|$<{uhCZSp?h%gJ$=ZMJ+wD}Aglg%Tj%{A1Z+Rl|s%HE}GABJ_8G)d>;Q3cS|Gv&*2K*s8sQ_(_^rSRYljNeLDA;vLjI?fBh(nI08IlWa z(gazTY)xzm(uWM$!pFMY>bW^RKqnss0M5NX6O5fMlsWZ3>LxVq)raOI%R!^E6h8D3zIkSDRW zu2f1iY{%T$UMv?yCD@8TkJ%r!-xPOXlpA0dgtEA!Fv)Q=^9WAnCiw*Rk7O@s937Uh zg@BhjmAMF0O&G6@PV&k+DRkb(;)DtrPL6LH+6HT^(QU2X1qs-j(Rq^tZ$Q*99HX;w ze1Q}$B|9OG!Hpc;w~FLVljKK+sgH2XM3TG&405!ZOUzm=eI8gjUlq5Bai6K^pDIqJ z$#PboQ0JV-+Q$YFkAL`I!M_LCF07gE=AuMj&}GNr#6aEQ#LA-Ip9Nyb@)9dy&SOcc zYa{W2Np#AZ@*L?fEQt#-e7-Pbs)%cj1_h;lnCPisAQfyo@k+%U5Y;@aqad-gO=4&b z_LNlTthXnAP&VtclEVj!89!Xi_6#x8$BJn_(S%cLHpat*V{DEX7ptbz5c9OOtC;3y z6NZ1V_(~RE!^Kys_{tDp9mN;;PpnDtHBo$Zhf=jxBm!w7Aj-`WQN2Yd46R=tu znnS0c-J*!ZIJ+Q?LSH`BFjaakRMHoR$GcK$tiBfQc!`^Y(=Vmp>IS-N6xz5fTqW6! zE)Dh2Ht7n2oy8%*$3x?5Tl^hPcm9^bSp7fA=an=hC=Ap`qkIO?J-jMaSP-CZ)Ii+~uRD+T5XLwTz{gsG zb<)BeK)s7KadA=Na$kHEC9Voof7a3#u8;6_v6&;4&jw&87Kgc(Ui3$RJ}PUHZ?bg~ zc<4zGj!cS#f3F{ae!ou9Xky;%Tv3(dKhmMTr+g%A&*)!LAl1 z-olc{k0L55O8iX>UZVU{f^|~qBJKP%-&MrDW@p3;0U1 z<%9yZ^f8oY#8(TG^CLJCnkvH6 z*%84^%!2-m%0B)HZI!pZha#rrbqtc( z9*BT^ElGBm_J|4drY&+pi-l&}jNELb5JIXn`B>o{248+>Z&>G>0R)Nbk_>U0&Ls=T z?-&kRsZEWTL+YA4{jW8rMOJ`NS{$XjBo4SVMy>pSIaUPT73mzG|D}dCyGe(WL^T_b=Aw#{xqrDB058#GgD_)g6 zNEQblIX%(VUk4pJL(XW-W)q~Ewv2>G6D)aoCFZFb)3Ow9wlyrqu0?IU^yS+xOt$6N z#3&?+L$m788t16czl70YzrMcMxnRs_ERN^bV4U0~vu>HaMEOHstlJ05s2hK4$FEaL z{=3vPL?2cQ_i$iKK$=rR1&Q-j=H}>e8WljSe6h2qsCR58ni8T9hOL!lA$ns#SsGA@ z#6XQQP*ZPxd#{4Wpc1gM?w3+bv%U3!S(^o5s{rgk8#b51T1ZNPS;h)g&+W3w-I{w^ z8{uN{qsEj7^otlpixFWhX7lTq9ryrqA%q?~qwz=iwwLgMQ=n3@nIIEr`E#?Cwub6M zT=9}{{$>|S@zDpq6AA>X*mxBnGAt2clcROGHZpOO-3?Q5_QE6p!oF`$RjTPfhJ*6^ zKKdD1p`~BK^>mWsu<6V_L+&cjV&_ya%j%L#mNWB`utEhVmzXEHn&i`l?a3X%reOJ- zypD*t3y5oF_1-ML74dyI;ejj8;U^(2ev?yVtM>04SIyaZVbw?4^3f}UpIG#fxy#jWvF0Ofo1O4z6PAEVmJ;G@f(U5~XCJ;?3{$6Li%yW| z3)%_{T>uPwyL%Rb=xG6hCdd8+s~V44m#^Ax0bvC##iYRkOpKeS668@)cOE)Cdw{@ zeCUJ>FN2r_1Y51gqZ8f+m+!<8YKwJxXQlPo;HhiVN z5K4tGKHD|aDaL|?2JO}>XVFN=7ULlRDRG+P2aB;Mi$1NXkMxPb&AwCqks3=2YU;z` zqU8IU`krkBYQ>Cedmkwv09goA)>zG_lr2qhA`VN&MyKLSulqyAp09>I@uMu*3hW7v zsz4GP)jKrXUtf=|{_N^zKjg2E(6Q;=>9+uV2me_M1TL)GN-z*6Tl+|*Mt4dz>W8v& z3#h=TkF8^Q=B93Xbq6{>f;*IZz3E|xYh=gJiLI_h*i$!qLq?7vmg*U|aU^L2I6ObFU+C7{^KsQwfcq#yH1ZFjJqxp^1~Jk__^Ahd8%w)fYV zY_U&h6T0JQZT3D8{Ej-sTR9=3Fbxvzgq(Il^h(vy+pFk1=mPxRz>OF>6pJ0_;3LB) zg^IO1^$FI`45$R1vE(N3*RXX< NOK{ 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 diff --git a/crnlib/crn_comp.cpp b/crnlib/crn_comp.cpp index db5ab3a..4c53023 100644 --- a/crnlib/crn_comp.cpp +++ b/crnlib/crn_comp.cpp @@ -278,6 +278,7 @@ bool crn_comp::pack_blocks( uint block_width = m_levels[group].block_width; for (uint by = 0, b = m_levels[group].first_block, bEnd = b + m_levels[group].num_blocks; b < bEnd; by++) { for (uint bx = 0; bx < block_width; bx++, b++) { + const bool secondary_etc_subblock = m_has_etc_color_blocks && bx & 1; if (!(by & 1) && !(bx & 1)) { uint8 reference_group = m_endpoint_indices[b].reference | m_endpoint_indices[b + block_width].reference << 2 | m_endpoint_indices[b + 1].reference << 4 | m_endpoint_indices[b + block_width + 1].reference << 6; @@ -286,10 +287,10 @@ bool crn_comp::pack_blocks( else m_reference_hist.inc_freq(reference_group); } - for (uint c = 0; c < cNumComps; c++) { + for (uint c = 0, cEnd = secondary_etc_subblock ? cAlpha0 : cNumComps; c < cEnd; c++) { if (endpoint_remap[c]) { uint index = (*endpoint_remap[c])[m_endpoint_indices[b].component[c]]; - if (m_pParams->m_format == cCRNFmtETC1 && (b & 1) ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) { + if (secondary_etc_subblock ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) { int sym = index - endpoint_index[c]; if (sym < 0) sym += endpoint_remap[c]->size(); @@ -301,8 +302,8 @@ bool crn_comp::pack_blocks( endpoint_index[c] = index; } } - for (uint c = 0; c < cNumComps; c++) { - if (selector_remap[c] && (m_pParams->m_format != cCRNFmtETC1 || !(bx & 1))) { + for (uint c = 0, cEnd = secondary_etc_subblock ? 0 : cNumComps; c < cEnd; c++) { + if (selector_remap[c]) { uint index = (*selector_remap[c])[m_selector_indices[b].component[c]]; if (!pCodec) m_selector_index_hist[c ? 1 : 0].inc_freq(index); @@ -341,7 +342,7 @@ bool crn_comp::alias_images() { m_total_blocks = 0; for (uint level = 0; level < m_pParams->m_levels; level++) { uint blockHeight = (math::maximum(1U, m_pParams->m_height >> level) + 7 & ~7) >> 2; - m_levels[level].block_width = (math::maximum(1U, m_pParams->m_width >> level) + 7 & ~7) >> (m_pParams->m_format == cCRNFmtETC1 ? 1 : 2); + m_levels[level].block_width = (math::maximum(1U, m_pParams->m_width >> level) + 7 & ~7) >> (m_has_etc_color_blocks ? 1 : 2); m_levels[level].first_block = m_total_blocks; m_levels[level].num_blocks = m_pParams->m_faces * m_levels[level].block_width * blockHeight; m_total_blocks += m_levels[level].num_blocks; @@ -358,6 +359,7 @@ void crn_comp::clear() { m_images[f][l].clear(); utils::zero_object(m_has_comp); + m_has_etc_color_blocks = false; m_levels.clear(); @@ -416,15 +418,18 @@ bool crn_comp::quantize_images() { float quality = math::clamp((float)m_pParams->m_quality_level / cCRNMaxQualityLevel, 0.0f, 1.0f); float color_quality_power_mul = 1.0f; float alpha_quality_power_mul = 1.0f; + if (m_has_etc_color_blocks) { + color_quality_power_mul = 1.31f; + params.m_adaptive_tile_color_psnr_derating = 5.0f; + } if (m_pParams->m_format == cCRNFmtDXT5_CCxY) { color_quality_power_mul = 3.5f; alpha_quality_power_mul = .35f; params.m_adaptive_tile_color_psnr_derating = 5.0f; } else if (m_pParams->m_format == cCRNFmtDXT5) { color_quality_power_mul = .75f; - } else if (m_pParams->m_format == cCRNFmtETC1) { - color_quality_power_mul = 1.31f; - params.m_adaptive_tile_color_psnr_derating = 5.0f; + } else if (m_pParams->m_format == cCRNFmtETC2A) { + alpha_quality_power_mul = .9f; } float color_endpoint_quality = powf(quality, 1.8f * color_quality_power_mul); @@ -519,6 +524,18 @@ bool crn_comp::quantize_images() { m_has_comp[cColor] = true; break; } + case cCRNFmtETC2: { + params.m_format = cETC2; + m_has_comp[cColor] = true; + break; + } + case cCRNFmtETC2A: { + params.m_format = cETC2A; + params.m_alpha_component_indices[0] = m_pParams->m_alpha_component; + m_has_comp[cColor] = true; + m_has_comp[cAlpha0] = true; + break; + } default: { return false; } @@ -668,14 +685,14 @@ void crn_comp::optimize_color_endpoints_task(uint64 data, void* pData_ptr) { optimize_color_selectors(); } - m_pParams->m_format == cCRNFmtETC1 ? pack_color_endpoints_etc(pParams->pResult->packed_endpoints, remapping) : pack_color_endpoints(pParams->pResult->packed_endpoints, remapping); + m_has_etc_color_blocks ? pack_color_endpoints_etc(pParams->pResult->packed_endpoints, remapping) : pack_color_endpoints(pParams->pResult->packed_endpoints, remapping); uint total_bits = pParams->pResult->packed_endpoints.size() << 3; crnlib::vector hist(n); for (uint level = 0; level < m_levels.size(); level++) { for (uint endpoint_index = 0, b = m_levels[level].first_block, bEnd = b + m_levels[level].num_blocks; b < bEnd; b++) { uint index = remapping[m_endpoint_indices[b].component[cColor]]; - if (m_pParams->m_format == cCRNFmtETC1 && (b & 1) ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) { + if (m_has_etc_color_blocks && b & 1 ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) { int sym = index - endpoint_index; hist[sym < 0 ? sym + n : sym]++; } @@ -753,7 +770,7 @@ void crn_comp::optimize_color() { crnlib::vector sum(n); for (uint i, i_prev = 0, b = 0; b < m_endpoint_indices.size(); b++, i_prev = i) { i = m_endpoint_indices[b].color; - if ((m_pParams->m_format == cCRNFmtETC1 && (b & 1) ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) && i != i_prev) { + if ((m_has_etc_color_blocks && b & 1 ? m_endpoint_indices[b].reference : !m_endpoint_indices[b].reference) && i != i_prev) { hist[i * n + i_prev]++; hist[i_prev * n + i]++; sum[i]++; @@ -770,8 +787,8 @@ void crn_comp::optimize_color() { } crnlib::vector unpacked_endpoints(n); for (uint16 i = 0; i < n; i++) { - unpacked_endpoints[i].low.m_u32 = m_pParams->m_format == cCRNFmtETC1 ? m_color_endpoints[i] & 0xFFFFFF : dxt1_block::unpack_color(m_color_endpoints[i] & 0xFFFF, true).m_u32; - unpacked_endpoints[i].high.m_u32 = m_pParams->m_format == cCRNFmtETC1 ? m_color_endpoints[i] >> 24 : dxt1_block::unpack_color(m_color_endpoints[i] >> 16, true).m_u32; + unpacked_endpoints[i].low.m_u32 = m_has_etc_color_blocks ? m_color_endpoints[i] & 0xFFFFFF : dxt1_block::unpack_color(m_color_endpoints[i] & 0xFFFF, true).m_u32; + unpacked_endpoints[i].high.m_u32 = m_has_etc_color_blocks ? m_color_endpoints[i] >> 24 : dxt1_block::unpack_color(m_color_endpoints[i] >> 16, true).m_u32; } optimize_color_params::result remapping_trial[4]; @@ -1264,6 +1281,7 @@ bool crn_comp::compress_pass(const crn_comp_params& params, float* pEffective_bi *pEffective_bitrate = 0.0f; m_pParams = ¶ms; + m_has_etc_color_blocks = params.m_format == cCRNFmtETC1 || params.m_format == cCRNFmtETC2 || params.m_format == cCRNFmtETC2A; if ((math::minimum(m_pParams->m_width, m_pParams->m_height) < 1) || (math::maximum(m_pParams->m_width, m_pParams->m_height) > cCRNMaxLevelResolution)) return false; diff --git a/crnlib/crn_comp.h b/crnlib/crn_comp.h index 38651a1..49ab4fe 100644 --- a/crnlib/crn_comp.h +++ b/crnlib/crn_comp.h @@ -45,6 +45,7 @@ class crn_comp : public itexture_comp { }; bool m_has_comp[cNumComps]; + bool m_has_etc_color_blocks; struct level_details { uint first_block; diff --git a/crnlib/crn_dxt.cpp b/crnlib/crn_dxt.cpp index 17e3bab..272e5d1 100644 --- a/crnlib/crn_dxt.cpp +++ b/crnlib/crn_dxt.cpp @@ -37,6 +37,10 @@ const char* get_dxt_format_string(dxt_format fmt) { return "DXN_YX"; case cETC1: return "ETC1"; + case cETC2: + return "ETC2"; + case cETC2A: + return "ETC2A"; default: break; } @@ -69,11 +73,13 @@ uint get_dxt_format_bits_per_pixel(dxt_format fmt) { case cDXT1A: case cDXT5A: case cETC1: + case cETC2: return 4; case cDXT3: case cDXT5: case cDXN_XY: case cDXN_YX: + case cETC2A: return 8; default: break; @@ -88,6 +94,7 @@ bool get_dxt_format_has_alpha(dxt_format fmt) { case cDXT3: case cDXT5: case cDXT5A: + case cETC2A: return true; default: break; diff --git a/crnlib/crn_dxt.h b/crnlib/crn_dxt.h index 92447ff..b5740f8 100644 --- a/crnlib/crn_dxt.h +++ b/crnlib/crn_dxt.h @@ -42,7 +42,9 @@ enum dxt_format { cDXN_XY, // inverted relative to standard ATI2, 360's DXN cDXN_YX, // standard ATI2, - cETC1 // Ericsson texture compression (color only, 4x4 blocks, 4bpp, 64-bits/block) + cETC1, + cETC2, + cETC2A, }; const float cDXT1MaxLinearValue = 3.0f; diff --git a/crnlib/crn_dxt_hc.cpp b/crnlib/crn_dxt_hc.cpp index 173ac3a..94b473f 100644 --- a/crnlib/crn_dxt_hc.cpp +++ b/crnlib/crn_dxt_hc.cpp @@ -26,6 +26,7 @@ static uint8 g_tile_map[8][2][2] = { dxt_hc::dxt_hc() : m_num_blocks(0), m_has_color_blocks(false), + m_has_etc_color_blocks(false), m_num_alpha_blocks(0), m_main_thread_id(crn_get_current_thread_id()), m_canceled(false), @@ -77,8 +78,9 @@ bool dxt_hc::compress( const params& p ) { clear(); - m_has_color_blocks = p.m_format == cDXT1 || p.m_format == cDXT5 || p.m_format == cETC1; - m_num_alpha_blocks = p.m_format == cDXT5 || p.m_format == cDXT5A ? 1 : p.m_format == cDXN_XY || p.m_format == cDXN_YX ? 2 : 0; + m_has_etc_color_blocks = p.m_format == cETC1 || p.m_format == cETC2 || p.m_format == cETC2A; + m_has_color_blocks = p.m_format == cDXT1 || p.m_format == cDXT5 || m_has_etc_color_blocks; + m_num_alpha_blocks = p.m_format == cDXT5 || p.m_format == cDXT5A || p.m_format == cETC2A ? 1 : p.m_format == cDXN_XY || p.m_format == cDXN_YX ? 2 : 0; if (!m_has_color_blocks && !m_num_alpha_blocks) return false; m_blocks = blocks; @@ -116,7 +118,7 @@ bool dxt_hc::compress( } for (uint i = 0; i <= m_pTask_pool->get_num_threads(); i++) - m_pTask_pool->queue_object_task(this, m_params.m_format == cETC1 ? &dxt_hc::determine_tiles_task_etc : &dxt_hc::determine_tiles_task, i); + m_pTask_pool->queue_object_task(this, m_has_etc_color_blocks ? &dxt_hc::determine_tiles_task_etc : &dxt_hc::determine_tiles_task, i); m_pTask_pool->join(); m_num_tiles = 0; @@ -142,7 +144,7 @@ bool dxt_hc::compress( hash_map color_endpoints_map; for (uint i = 0; i < m_color_clusters.size(); i++) { if (m_color_clusters[i].pixels.size()) { - uint32 endpoint = m_params.m_format == cETC1 ? m_color_clusters[i].first_endpoint : + uint32 endpoint = m_has_etc_color_blocks ? m_color_clusters[i].first_endpoint : dxt1_block::pack_endpoints(m_color_clusters[i].first_endpoint, m_color_clusters[i].second_endpoint); hash_map::insert_result insert_result = color_endpoints_map.insert(endpoint, color_endpoints.size()); if (insert_result.second) { @@ -210,7 +212,7 @@ bool dxt_hc::compress( for (uint bx = 0; bx < block_width; bx++, b++) { bool top_match = by != 0; bool left_match = top_match || bx; - bool diag_match = m_params.m_format == cETC1 && top_match && bx; + bool diag_match = m_has_etc_color_blocks && top_match && bx; for (uint c = m_has_color_blocks ? 0 : cAlpha0; c < cAlpha0 + m_num_alpha_blocks; c++) { uint16 endpoint_index = (c ? alpha_endpoints_remap : color_endpoints_remap)[m_endpoint_indices[b].component[c]]; left_match = left_match && endpoint_index == endpoint_indices[b - 1].component[c]; @@ -220,7 +222,7 @@ bool dxt_hc::compress( uint16 selector_index = (c ? alpha_selectors_remap : color_selectors_remap)[m_selector_indices[b].component[c]]; selector_indices[b].component[c] = selector_index; } - endpoint_indices[b].reference = m_params.m_format == cETC1 && (b & 1) ? m_endpoint_indices[b].reference : left_match ? 1 : top_match ? 2 : diag_match ? 3 : 0; + endpoint_indices[b].reference = m_has_etc_color_blocks && b & 1 ? m_endpoint_indices[b].reference : left_match ? 1 : top_match ? 2 : diag_match ? 3 : 0; } } } @@ -384,6 +386,7 @@ void dxt_hc::determine_tiles_task_etc(uint64 data, void* pData_ptr) { uint tile_error[5]; uint total_error[3]; tree_clusterizer color_palettizer; + tree_clusterizer alpha_palettizer; etc1_optimizer optimizer; etc1_optimizer::params params; @@ -435,6 +438,17 @@ void dxt_hc::determine_tiles_task_etc(uint64 data, void* pData_ptr) { } } + vec2F alpha_endpoints; + if (m_num_alpha_blocks) { + alpha_palettizer.clear(); + for (uint p = 0; p < 16; p++) + alpha_palettizer.add_training_vec(vec1F(m_uint8_to_float[tilePixels[p].a]), 1); + alpha_palettizer.generate_codebook(2); + float v[2] = {alpha_palettizer.get_codebook_entry(0)[0], alpha_palettizer.get_codebook_entry(alpha_palettizer.get_codebook_size() - 1)[0]}; + alpha_endpoints[0] = math::minimum(v[0], v[1]); + alpha_endpoints[1] = math::maximum(v[0], v[1]); + } + for (uint tile_index = 0, s = best_encoding + 1; s; s >>= 1, tile_index++) { tile_details& tile = m_tiles[b | tile_index]; uint t = tiles[best_encoding][tile_index]; @@ -454,6 +468,8 @@ void dxt_hc::determine_tiles_task_etc(uint64 data, void* pData_ptr) { for (uint c = 0; c < 3; c++, t++) tile.color_endpoint[t] = v[c]; } + if (m_num_alpha_blocks) + tile.alpha_endpoints[0] = alpha_endpoints; } for (uint bx = 0; bx < 2; bx++) { @@ -661,7 +677,7 @@ void dxt_hc::determine_color_endpoints() { uint cluster_index = m_tiles[m_tile_indices[b]].cluster_indices[cColor]; m_endpoint_indices[b].component[cColor] = cluster_index; m_color_clusters[cluster_index].blocks[cColor].push_back(b); - if (m_params.m_format == cETC1 && m_endpoint_indices[b].reference && cluster_index == m_endpoint_indices[b - 1].component[cColor]) { + if (m_has_etc_color_blocks && m_endpoint_indices[b].reference && cluster_index == m_endpoint_indices[b - 1].component[cColor]) { if (m_endpoint_indices[b].reference >> 1) { color_quad_u8 mirror[16]; for (uint p = 0; p < 16; p++) @@ -673,7 +689,7 @@ void dxt_hc::determine_color_endpoints() { } for (uint i = 0; i <= m_pTask_pool->get_num_threads(); i++) - m_pTask_pool->queue_object_task(this, m_params.m_format == cETC1 ? &dxt_hc::determine_color_endpoint_codebook_task_etc : &dxt_hc::determine_color_endpoint_codebook_task, i, NULL); + m_pTask_pool->queue_object_task(this, m_has_etc_color_blocks ? &dxt_hc::determine_color_endpoint_codebook_task_etc : &dxt_hc::determine_color_endpoint_codebook_task, i, NULL); m_pTask_pool->join(); } @@ -719,12 +735,26 @@ void dxt_hc::determine_alpha_endpoint_codebook_task(uint64 data, void* pData_ptr dxt5_block::get_block_values(block_values, cluster.first_endpoint, cluster.second_endpoint); for (uint i = 0; i < 8; i++) alpha_values[i] = cluster.alpha_values[i] = block_values[g_dxt5_from_linear[i]]; - - int delta = cluster.second_endpoint - cluster.first_endpoint; + int delta = cluster.first_endpoint - cluster.second_endpoint; uint encoding_weight[8]; for (uint endpoint_weight = math::clamp(delta * delta >> 3, 1, 2048), i = 0; i < 8; i++) encoding_weight[i] = (uint)(endpoint_weight * math::lerp(1.15f, 1.0f, i / 7.0f)); + if (m_has_etc_color_blocks) { + static const int stripped_modifier_table[2][8] = { + {-10, -7, -5, -2, 1, 4, 6, 9}, + {-10, -3, -2, -1, 0, 1, 2, 9} + }; + int base_codeword = (results.m_first_endpoint + results.m_second_endpoint + 1) >> 1; + int modifier_index = delta <= 6 ? 13 : 11; + int multiplier = delta <= 6 ? 1 : math::clamp((delta + 12) / 18, 1, 15); + const int* modifier = stripped_modifier_table[modifier_index == 11 ? 0 : 1]; + for (int i = 0; i < 8; i++) + alpha_values[i] = cluster.alpha_values[i] = math::clamp(base_codeword + modifier[i] * multiplier, 0, 255); + cluster.first_endpoint = base_codeword; + cluster.second_endpoint = multiplier << 4 | modifier_index; + } + for (uint a = 0; a < m_num_alpha_blocks; a++) { uint component_index = m_params.m_alpha_component_indices[a]; crnlib::vector& blocks = cluster.blocks[cAlpha0 + a]; @@ -736,8 +766,8 @@ void dxt_hc::determine_alpha_endpoint_codebook_task(uint64 data, void* pData_ptr uint error_best = cUINT32_MAX; uint8 s_best = 0; for (uint8 t = 0; t < 8; t++) { - uint8 s = results.m_reordered ? 7 - g_dxt5_to_linear[t] : g_dxt5_to_linear[t]; - int delta = m_blocks[b][p][component_index] - alpha_values[s]; + uint8 s = m_has_etc_color_blocks ? t : results.m_reordered ? 7 - g_dxt5_to_linear[t] : g_dxt5_to_linear[t]; + int delta = m_blocks[m_has_etc_color_blocks ? b >> 1 : b][p][component_index] - alpha_values[s]; uint error = delta >= 0 ? delta : -delta; if (error < error_best) { s_best = s; @@ -760,7 +790,7 @@ void dxt_hc::determine_alpha_endpoint_codebook_task(uint64 data, void* pData_ptr refinerParams.m_dxt1_selectors = false; refinerParams.m_error_to_beat = results.m_error; refinerParams.m_block_index = cluster_index; - cluster.refined_alpha = refiner.refine(refinerParams, refinerResults); + cluster.refined_alpha = !m_has_etc_color_blocks && refiner.refine(refinerParams, refinerResults); if (cluster.refined_alpha) { cluster.first_endpoint = refinerResults.m_low_color; cluster.second_endpoint = refinerResults.m_high_color; @@ -816,7 +846,8 @@ void dxt_hc::determine_alpha_endpoints() { for (uint a = 0; a < m_num_alpha_blocks; a++) { uint cluster_index = m_tiles[m_tile_indices[b]].cluster_indices[cAlpha0 + a]; m_endpoint_indices[b].component[cAlpha0 + a] = cluster_index; - m_alpha_clusters[cluster_index].blocks[cAlpha0 + a].push_back(b); + if (!(m_has_etc_color_blocks && b & 1)) + m_alpha_clusters[cluster_index].blocks[cAlpha0 + a].push_back(b); } } @@ -837,12 +868,12 @@ void dxt_hc::create_color_selector_codebook_task(uint64 data, void* pData_ptr) { uint E2[16][4]; uint E4[8][16]; uint E8[4][256]; - for (uint n = m_params.m_format == cETC1 ? m_num_blocks >> 1 : m_num_blocks, b = n * data / num_tasks, bEnd = n * (data + 1) / num_tasks; b < bEnd; b++) { + for (uint n = m_has_etc_color_blocks ? m_num_blocks >> 1 : m_num_blocks, b = n * data / num_tasks, bEnd = n * (data + 1) / num_tasks; b < bEnd; b++) { color_cluster& cluster = m_color_clusters[m_endpoint_indices[b].color]; color_quad_u8* endpoint_colors = cluster.color_values; for (uint p = 0; p < 16; p++) { for (uint s = 0; s < 4; s++) - E2[p][s] = m_params.m_format == cETC1 ? color::color_distance(m_params.m_perceptual, m_blocks[b][p], m_color_clusters[m_endpoint_indices[b << 1 | p >> 3].color].color_values[s], false) : + E2[p][s] = m_has_etc_color_blocks ? color::color_distance(m_params.m_perceptual, m_blocks[b][p], m_color_clusters[m_endpoint_indices[b << 1 | p >> 3].color].color_values[s], false) : color::color_distance(m_params.m_perceptual, m_blocks[b][p], endpoint_colors[s], false); } for (uint p = 0; p < 8; p++) { @@ -868,18 +899,18 @@ void dxt_hc::create_color_selector_codebook_task(uint64 data, void* pData_ptr) { total_errors[p][s] += E2[p][s]; } selector_details[best_index].used = true; - m_selector_indices[m_params.m_format == cETC1 ? b << 1 : b].color = best_index; + m_selector_indices[m_has_etc_color_blocks ? b << 1 : b].color = best_index; } } void dxt_hc::create_color_selector_codebook() { tree_clusterizer selector_vq; vec16F v; - for (uint n = m_params.m_format == cETC1 ? m_num_blocks >> 1 : m_num_blocks, b = 0; b < n; b++) { - uint64 selector = m_params.m_format == cETC1 ? m_block_selectors[cColor][b << 1] | m_block_selectors[cColor][b << 1 | 1] << 16 : m_block_selectors[cColor][b]; + for (uint n = m_has_etc_color_blocks ? m_num_blocks >> 1 : m_num_blocks, b = 0; b < n; b++) { + uint64 selector = m_has_etc_color_blocks ? m_block_selectors[cColor][b << 1] | m_block_selectors[cColor][b << 1 | 1] << 16 : m_block_selectors[cColor][b]; for (uint8 p = 0; p < 16; p++, selector >>= 2) v[p] = ((selector & 3) + 0.5f) * 0.25f; - selector_vq.add_training_vec(v, m_params.m_format == cETC1 ? (selector & 0xFFFF) + (selector >> 16) : selector); + selector_vq.add_training_vec(v, m_has_etc_color_blocks ? (selector & 0xFFFF) + (selector >> 16) : selector); } selector_vq.generate_codebook(m_params.m_color_selector_codebook_size); m_color_selectors.resize(selector_vq.get_codebook_size()); @@ -933,10 +964,10 @@ void dxt_hc::create_alpha_selector_codebook_task(uint64 data, void* pData_ptr) { uint num_tasks = m_pTask_pool->get_num_threads() + 1; uint E3[16][8]; uint E6[8][64]; - for (uint b = m_num_blocks * data / num_tasks, bEnd = m_num_blocks * (data + 1) / num_tasks; b < bEnd; b++) { + for (uint n = m_has_etc_color_blocks ? m_num_blocks >> 1 : m_num_blocks, b = n * data / num_tasks, bEnd = n * (data + 1) / num_tasks; b < bEnd; b++) { for (uint c = cAlpha0; c < cAlpha0 + m_num_alpha_blocks; c++) { const uint alpha_pixel_comp = m_params.m_alpha_component_indices[c - cAlpha0]; - alpha_cluster& cluster = m_alpha_clusters[m_endpoint_indices[b].component[c]]; + alpha_cluster& cluster = m_alpha_clusters[m_endpoint_indices[m_has_etc_color_blocks ? b << 1 : b].component[c]]; uint* block_values = cluster.alpha_values; for (uint p = 0; p < 16; p++) { for (uint s = 0; s < 8; s++) { @@ -979,7 +1010,7 @@ void dxt_hc::create_alpha_selector_codebook_task(uint64 data, void* pData_ptr) { total_errors[p][s] += E3[p][s]; } selector_details[best_index].used = true; - m_selector_indices[b].component[c] = best_index; + m_selector_indices[m_has_etc_color_blocks ? b << 1 : b].component[c] = best_index; } } } @@ -988,7 +1019,7 @@ void dxt_hc::create_alpha_selector_codebook() { tree_clusterizer selector_vq; vec16F v; for (uint c = cAlpha0; c < cAlpha0 + m_num_alpha_blocks; c++) { - for (uint b = 0; b < m_num_blocks; b++) { + for (uint b = 0; b < m_num_blocks; b += m_has_etc_color_blocks ? 2 : 1) { uint64 selector = m_block_selectors[c][b]; for (uint8 p = 0; p < 16; p++, selector >>= 3) v[p] = ((selector & 7) + 0.5f) * 0.125f; diff --git a/crnlib/crn_dxt_hc.h b/crnlib/crn_dxt_hc.h index 096d356..022bab4 100644 --- a/crnlib/crn_dxt_hc.h +++ b/crnlib/crn_dxt_hc.h @@ -32,6 +32,7 @@ class dxt_hc { uint16 component[3]; }; uint8 reference; + endpoint_indices_details() { utils::zero_object(*this); } }; struct selector_indices_details { @@ -43,6 +44,7 @@ class dxt_hc { }; uint16 component[3]; }; + selector_indices_details() { utils::zero_object(*this); } }; struct tile_details { @@ -146,6 +148,7 @@ class dxt_hc { uint m_num_alpha_blocks; bool m_has_color_blocks; + bool m_has_etc_color_blocks; enum { cColor = 0, diff --git a/crnlib/crn_dxt_image.cpp b/crnlib/crn_dxt_image.cpp index cf1ac0f..37e6833 100644 --- a/crnlib/crn_dxt_image.cpp +++ b/crnlib/crn_dxt_image.cpp @@ -100,7 +100,7 @@ bool dxt_image::init_internal(dxt_format fmt, uint width, uint height) { m_blocks_y = (m_height + 3) >> cDXTBlockShift; m_num_elements_per_block = 2; - if ((fmt == cDXT1) || (fmt == cDXT1A) || (fmt == cDXT5A) || (fmt == cETC1)) + if ((fmt == cDXT1) || (fmt == cDXT1A) || (fmt == cDXT5A) || (fmt == cETC1) || (fmt == cETC2)) m_num_elements_per_block = 1; m_total_blocks = m_blocks_x * m_blocks_y; @@ -156,6 +156,18 @@ bool dxt_image::init_internal(dxt_format fmt, uint width, uint height) { m_element_component_index[0] = -1; break; } + case cETC2: { + m_element_type[0] = cColorETC2; + m_element_component_index[0] = -1; + break; + } + case cETC2A: { + m_element_type[0] = cAlphaETC2; + m_element_type[1] = cColorETC2; + m_element_component_index[0] = 3; + m_element_component_index[1] = -1; + break; + } default: { CRNLIB_ASSERT(0); clear(); @@ -478,6 +490,7 @@ bool dxt_image::has_alpha() const { case cDXT3: case cDXT5: case cDXT5A: + case cETC2A: return true; default: break; @@ -896,6 +909,18 @@ bool dxt_image::get_block_pixels(uint block_x, uint block_y, color_quad_u8* pPix break; } + case cColorETC2: { + const etc1_block& block = *reinterpret_cast(&get_element(block_x, block_y, element_index)); + if (!rg_etc1::unpack_etc2_color(&block, (uint32*)pPixels, m_format != cETC2)) + success = false; + break; + } + case cAlphaETC2: { + const etc1_block& block = *reinterpret_cast(&get_element(block_x, block_y, element_index)); + if (!rg_etc1::unpack_etc2_alpha(&block, (uint32*)pPixels, m_element_component_index[element_index])) + success = false; + break; + } case cColorDXT1: { const dxt1_block* pDXT1_block = reinterpret_cast(pElement); @@ -990,6 +1015,28 @@ void dxt_image::set_block_pixels( pack_etc1_block(dst_block, pPixels, pack_params, context.m_etc1_optimizer); #endif + } else if (m_format == cETC2) { + etc1_block& dst_block = *reinterpret_cast(pElement); + rg_etc1::etc1_pack_params pack_params; + pack_params.m_dithering = p.m_dithering; + pack_params.m_quality = p.m_quality <= cCRNDXTQualityFast ? rg_etc1::cLowQuality : p.m_quality <= cCRNDXTQualityNormal ? rg_etc1::cMediumQuality : rg_etc1::cHighQuality; + rg_etc1::pack_etc1_block(&dst_block, (uint32*)pPixels, pack_params); + + } else if (m_format == cETC2A) { + rg_etc1::etc1_quality etc_quality = p.m_quality <= cCRNDXTQualityFast ? rg_etc1::cLowQuality : p.m_quality <= cCRNDXTQualityNormal ? rg_etc1::cMediumQuality : rg_etc1::cHighQuality; + for (uint element_index = 0; element_index < m_num_elements_per_block; element_index++, pElement++) { + if (m_element_type[element_index] == cAlphaETC2) { + rg_etc1::etc2a_pack_params pack_params; + pack_params.m_quality = etc_quality; + pack_params.comp_index = m_element_component_index[element_index]; + rg_etc1::pack_etc2_alpha(pElement, (uint32*)pPixels, pack_params); + } else { + rg_etc1::etc1_pack_params pack_params; + pack_params.m_dithering = p.m_dithering; + pack_params.m_quality = etc_quality; + rg_etc1::pack_etc1_block(pElement, (uint32*)pPixels, pack_params); + } + } } else #if CRNLIB_SUPPORT_SQUISH if ((p.m_compressor == cCRNDXTCompressorSquish) && ((m_format == cDXT1) || (m_format == cDXT1A) || (m_format == cDXT3) || (m_format == cDXT5) || (m_format == cDXT5A))) { @@ -1454,8 +1501,8 @@ void dxt_image::flip_row(uint y) { } bool dxt_image::can_flip(uint axis_index) { - if (m_format == cETC1) { - // Can't reliably flip ETC1 textures (because of asymmetry in the 555/333 differential coding of subblock colors). + if (m_format == cETC1 || m_format == cETC2 || m_format == cETC2A) { + // Can't reliably flip ETCn textures (because of asymmetry in the 555/333 differential coding of subblock colors). return false; } @@ -1474,8 +1521,8 @@ bool dxt_image::can_flip(uint axis_index) { } bool dxt_image::flip_x() { - if (m_format == cETC1) { - // Can't reliably flip ETC1 textures (because of asymmetry in the 555/333 differential coding of subblock colors). + if (m_format == cETC1 || m_format == cETC2 || m_format == cETC2A) { + // Can't reliably flip ETCn textures (because of asymmetry in the 555/333 differential coding of subblock colors). return false; } @@ -1518,8 +1565,8 @@ bool dxt_image::flip_x() { } bool dxt_image::flip_y() { - if (m_format == cETC1) { - // Can't reliably flip ETC1 textures (because of asymmetry in the 555/333 differential coding of subblock colors). + if (m_format == cETC1 || m_format == cETC2 || m_format == cETC2A) { + // Can't reliably flip ETCn textures (because of asymmetry in the 555/333 differential coding of subblock colors). return false; } diff --git a/crnlib/crn_dxt_image.h b/crnlib/crn_dxt_image.h index 65296c5..29c667b 100644 --- a/crnlib/crn_dxt_image.h +++ b/crnlib/crn_dxt_image.h @@ -36,7 +36,7 @@ class dxt_image { dxt_format get_format() const { return m_format; } - bool has_color() const { return (m_format == cDXT1) || (m_format == cDXT1A) || (m_format == cDXT3) || (m_format == cDXT5) || (m_format == cETC1); } + bool has_color() const { return (m_format == cDXT1) || (m_format == cDXT1A) || (m_format == cDXT3) || (m_format == cDXT5) || (m_format == cETC1) || (m_format == cETC2) || (m_format == cETC2A); } // Will be pretty slow if the image is DXT1, as this method scans for alpha blocks/selectors. bool has_alpha() const; @@ -50,6 +50,9 @@ class dxt_image { cAlphaDXT5, // DXT5 alpha block (only) cColorETC1, // ETC1 color block + cColorETC2, // ETC2 color block + + cAlphaETC2, // ETC2 alpha block (only) }; element_type get_element_type(uint element_index) const { diff --git a/crnlib/crn_ktx_texture.cpp b/crnlib/crn_ktx_texture.cpp index cf3cf48..e61c72d 100644 --- a/crnlib/crn_ktx_texture.cpp +++ b/crnlib/crn_ktx_texture.cpp @@ -69,11 +69,13 @@ uint get_ogl_type_size(uint32 ogl_type) { uint32 get_ogl_base_internal_fmt(uint32 ogl_fmt) { switch (ogl_fmt) { case KTX_ETC1_RGB8_OES: + case KTX_COMPRESSED_RGB8_ETC2: case KTX_RGB_S3TC: case KTX_RGB4_S3TC: case KTX_COMPRESSED_RGB_S3TC_DXT1_EXT: case KTX_COMPRESSED_SRGB_S3TC_DXT1_EXT: return KTX_RGB; + case KTX_COMPRESSED_RGBA8_ETC2_EAC: case KTX_COMPRESSED_RGBA_S3TC_DXT1_EXT: case KTX_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: case KTX_RGBA_S3TC: @@ -146,6 +148,7 @@ bool get_ogl_fmt_desc(uint32 ogl_fmt, uint32 ogl_type, uint& block_dim, uint& by case KTX_COMPRESSED_LUMINANCE_LATC1_EXT: case KTX_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT: case KTX_ETC1_RGB8_OES: + case KTX_COMPRESSED_RGB8_ETC2: case KTX_RGB_S3TC: case KTX_RGB4_S3TC: case KTX_COMPRESSED_RGB_S3TC_DXT1_EXT: @@ -156,6 +159,7 @@ bool get_ogl_fmt_desc(uint32 ogl_fmt, uint32 ogl_type, uint& block_dim, uint& by bytes_per_block = 8; break; } + case KTX_COMPRESSED_RGBA8_ETC2_EAC: case KTX_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT: case KTX_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT: case KTX_COMPRESSED_RED_GREEN_RGTC2_EXT: diff --git a/crnlib/crn_ktx_texture.h b/crnlib/crn_ktx_texture.h index ec914b2..6569879 100644 --- a/crnlib/crn_ktx_texture.h +++ b/crnlib/crn_ktx_texture.h @@ -44,6 +44,8 @@ typedef crnlib::vector ktx_image_data_vec; // Compressed pixel data formats: ETC1, DXT1, DXT3, DXT5 enum { KTX_ETC1_RGB8_OES = 0x8D64, + KTX_COMPRESSED_RGB8_ETC2 = 0x9274, + KTX_COMPRESSED_RGBA8_ETC2_EAC = 0x9278, KTX_RGB_S3TC = 0x83A0, KTX_RGB4_S3TC = 0x83A1, KTX_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, diff --git a/crnlib/crn_mipmapped_texture.cpp b/crnlib/crn_mipmapped_texture.cpp index ed220bd..2986441 100644 --- a/crnlib/crn_mipmapped_texture.cpp +++ b/crnlib/crn_mipmapped_texture.cpp @@ -596,6 +596,16 @@ bool mipmapped_texture::read_dds_internal(data_stream_serializer& serializer) { dxt_fmt = cETC1; break; } + case PIXEL_FMT_ETC2: { + m_format = PIXEL_FMT_ETC2; + dxt_fmt = cETC2; + break; + } + case PIXEL_FMT_ETC2A: { + m_format = PIXEL_FMT_ETC2A; + dxt_fmt = cETC2A; + break; + } default: { dynamic_string err_msg(cVarArg, "Unsupported DDS FOURCC format: 0x%08X", desc.ddpfPixelFormat.dwFourCC); set_last_error(err_msg.get_ptr()); @@ -927,6 +937,16 @@ bool mipmapped_texture::write_dds(data_stream_serializer& serializer) const { desc.ddpfPixelFormat.dwRGBBitCount = 0; break; } + case PIXEL_FMT_ETC2: { + desc.ddpfPixelFormat.dwFourCC = (uint32)PIXEL_FMT_ETC2; + desc.ddpfPixelFormat.dwRGBBitCount = 0; + break; + } + case PIXEL_FMT_ETC2A: { + desc.ddpfPixelFormat.dwFourCC = (uint32)PIXEL_FMT_ETC2A; + desc.ddpfPixelFormat.dwRGBBitCount = 0; + break; + } case PIXEL_FMT_DXN: { desc.ddpfPixelFormat.dwFourCC = (uint32)PIXEL_FMT_3DC; desc.ddpfPixelFormat.dwRGBBitCount = PIXEL_FMT_DXN; @@ -1198,6 +1218,12 @@ bool mipmapped_texture::read_ktx(data_stream_serializer& serializer) { case KTX_ETC1_RGB8_OES: dxt_fmt = cETC1; break; + case KTX_COMPRESSED_RGB8_ETC2: + dxt_fmt = cETC2; + break; + case KTX_COMPRESSED_RGBA8_ETC2_EAC: + dxt_fmt = cETC2A; + break; case KTX_RGB_S3TC: case KTX_RGB4_S3TC: case KTX_COMPRESSED_RGB_S3TC_DXT1_EXT: @@ -1556,6 +1582,14 @@ bool mipmapped_texture::write_ktx(data_stream_serializer& serializer) const { ogl_internal_fmt = KTX_ETC1_RGB8_OES; break; } + case PIXEL_FMT_ETC2: { + ogl_internal_fmt = KTX_COMPRESSED_RGB8_ETC2; + break; + } + case PIXEL_FMT_ETC2A: { + ogl_internal_fmt = KTX_COMPRESSED_RGBA8_ETC2_EAC; + break; + } default: { CRNLIB_ASSERT(0); return false; @@ -1839,8 +1873,8 @@ bool mipmapped_texture::convert(pixel_format fmt, const dxt_image::pack_params& } bool mipmapped_texture::convert(pixel_format fmt, bool cook, const dxt_image::pack_params& p, int qdxt_quality, bool hierarchical) { - if ((!pixel_format_helpers::is_dxt(fmt)) || (fmt == PIXEL_FMT_DXT3) || (fmt == PIXEL_FMT_ETC1)) { - // QDXT doesn't support DXT3 or ETC1 yet. + if ((!pixel_format_helpers::is_dxt(fmt)) || (fmt == PIXEL_FMT_DXT3) || (fmt == PIXEL_FMT_ETC1) || (fmt == PIXEL_FMT_ETC2) || (fmt == PIXEL_FMT_ETC2A)) { + // QDXT doesn't support DXT3 or ETCn yet. return convert(fmt, cook, p); } @@ -2290,8 +2324,10 @@ bool mipmapped_texture::qdxt_pack_init(qdxt_state& state, mipmapped_texture& dst state.m_qdxt5_params[0].m_comp_index = 3; break; } - case PIXEL_FMT_ETC1: { - console::warning("mipmapped_texture::qdxt_pack_init: This method does not support ETC1"); + case PIXEL_FMT_ETC1: + case PIXEL_FMT_ETC2: + case PIXEL_FMT_ETC2A: { + console::warning("mipmapped_texture::qdxt_pack_init: This method does not support ETCn"); return false; } default: { diff --git a/crnlib/crn_pixel_format.cpp b/crnlib/crn_pixel_format.cpp index 1a02ae3..ae414c0 100644 --- a/crnlib/crn_pixel_format.cpp +++ b/crnlib/crn_pixel_format.cpp @@ -22,6 +22,8 @@ const pixel_format g_all_pixel_formats[] = PIXEL_FMT_DXT5_AGBR, PIXEL_FMT_DXT1A, PIXEL_FMT_ETC1, + PIXEL_FMT_ETC2, + PIXEL_FMT_ETC2A, PIXEL_FMT_R8G8B8, PIXEL_FMT_L8, PIXEL_FMT_A8, @@ -69,6 +71,10 @@ const char* get_pixel_format_string(pixel_format fmt) { return "DXT5_AGBR"; case PIXEL_FMT_ETC1: return "ETC1"; + case PIXEL_FMT_ETC2: + return "ETC2"; + case PIXEL_FMT_ETC2A: + return "ETC2A"; case PIXEL_FMT_R8G8B8: return "R8G8B8"; case PIXEL_FMT_A8R8G8B8: @@ -110,6 +116,10 @@ const char* get_crn_format_string(crn_format fmt) { return "DXT5A"; case cCRNFmtETC1: return "ETC1"; + case cCRNFmtETC2: + return "ETC2"; + case cCRNFmtETC2A: + return "ETC2A"; default: break; } @@ -123,7 +133,8 @@ component_flags get_component_flags(pixel_format fmt) { uint flags = cCompFlagRValid | cCompFlagGValid | cCompFlagBValid | cCompFlagAValid | cCompFlagGrayscale; switch (fmt) { case PIXEL_FMT_DXT1: - case PIXEL_FMT_ETC1: { + case PIXEL_FMT_ETC1: + case PIXEL_FMT_ETC2: { flags = cCompFlagRValid | cCompFlagGValid | cCompFlagBValid; break; } @@ -137,7 +148,8 @@ component_flags get_component_flags(pixel_format fmt) { break; } case PIXEL_FMT_DXT4: - case PIXEL_FMT_DXT5: { + case PIXEL_FMT_DXT5: + case PIXEL_FMT_ETC2A: { flags = cCompFlagRValid | cCompFlagGValid | cCompFlagBValid | cCompFlagAValid; break; } @@ -243,6 +255,12 @@ crn_format convert_pixel_format_to_best_crn_format(pixel_format crn_fmt) { case PIXEL_FMT_ETC1: fmt = cCRNFmtETC1; break; + case PIXEL_FMT_ETC2: + fmt = cCRNFmtETC2; + break; + case PIXEL_FMT_ETC2A: + fmt = cCRNFmtETC2A; + break; default: { CRNLIB_ASSERT(false); break; @@ -275,6 +293,10 @@ pixel_format convert_crn_format_to_pixel_format(crn_format fmt) { return PIXEL_FMT_DXT5A; case cCRNFmtETC1: return PIXEL_FMT_ETC1; + case cCRNFmtETC2: + return PIXEL_FMT_ETC2; + case cCRNFmtETC2A: + return PIXEL_FMT_ETC2A; default: { CRNLIB_ASSERT(false); break; diff --git a/crnlib/crn_pixel_format.h b/crnlib/crn_pixel_format.h index dc79d99..536cbe6 100644 --- a/crnlib/crn_pixel_format.h +++ b/crnlib/crn_pixel_format.h @@ -43,6 +43,7 @@ inline bool has_alpha(pixel_format fmt) { case PIXEL_FMT_A8: case PIXEL_FMT_A8L8: case PIXEL_FMT_DXT5_AGBR: + case PIXEL_FMT_ETC2A: return true; default: break; @@ -91,6 +92,8 @@ inline int is_dxt(pixel_format fmt) { case PIXEL_FMT_DXT5_xGBR: case PIXEL_FMT_DXT5_AGBR: case PIXEL_FMT_ETC1: + case PIXEL_FMT_ETC2: + case PIXEL_FMT_ETC2A: return true; default: break; @@ -143,6 +146,10 @@ inline dxt_format get_dxt_format(pixel_format fmt) { return cDXT5; case PIXEL_FMT_ETC1: return cETC1; + case PIXEL_FMT_ETC2: + return cETC2; + case PIXEL_FMT_ETC2A: + return cETC2A; default: break; } @@ -167,6 +174,10 @@ inline pixel_format from_dxt_format(dxt_format dxt_fmt) { return PIXEL_FMT_DXT5A; case cETC1: return PIXEL_FMT_ETC1; + case cETC2: + return PIXEL_FMT_ETC2; + case cETC2A: + return PIXEL_FMT_ETC2A; default: break; } @@ -214,6 +225,10 @@ inline uint get_bpp(pixel_format fmt) { return 4; case PIXEL_FMT_ETC1: return 4; + case PIXEL_FMT_ETC2: + return 4; + case PIXEL_FMT_ETC2A: + return 8; case PIXEL_FMT_DXT2: return 8; case PIXEL_FMT_DXT3: @@ -263,6 +278,10 @@ inline uint get_dxt_bytes_per_block(pixel_format fmt) { return 8; case PIXEL_FMT_ETC1: return 8; + case PIXEL_FMT_ETC2: + return 8; + case PIXEL_FMT_ETC2A: + return 16; case PIXEL_FMT_DXT2: return 16; case PIXEL_FMT_DXT3: diff --git a/crnlib/crn_rg_etc1.cpp b/crnlib/crn_rg_etc1.cpp index 28787ed..77b9ef1 100644 --- a/crnlib/crn_rg_etc1.cpp +++ b/crnlib/crn_rg_etc1.cpp @@ -7,6 +7,7 @@ // v1.03 - 5/12/13 - Initial public release #include "crn_core.h" #include "crn_rg_etc1.h" +#include "crn_dxt5a.h" #include #include @@ -404,6 +405,27 @@ static const int g_etc1_inten_tables[cETC1IntenModifierValues][cETC1SelectorValu {-106, -33, 33, 106}, {-183, -47, 47, 183}}; +static const uint8 g_etc2_modifier_table[8] = { 3, 6, 11, 16, 23, 32, 41, 64 }; + +static const int g_etc2a_modifier_table[16][8] = { + { -3, -6, -9, -15, 2, 5, 8, 14}, + { -3, -7, -10, -13, 2, 6, 9, 12}, + { -2, -5, -8, -13, 1, 4, 7, 12}, + { -2, -4, -6, -13, 1, 3, 5, 12}, + { -3, -6, -8, -12, 2, 5, 7, 11}, + { -3, -7, -9, -11, 2, 6, 8, 10}, + { -4, -7, -8, -11, 3, 6, 7, 10}, + { -3, -5, -8, -11, 2, 4, 7, 10}, + { -2, -6, -8, -10, 1, 5, 7, 9}, + { -2, -5, -8, -10, 1, 4, 7, 9}, + { -2, -4, -8, -10, 1, 3, 7, 9}, + { -2, -5, -7, -10, 1, 4, 6, 9}, + { -3, -4, -7, -10, 2, 3, 6, 9}, + { -1, -2, -3, -10, 0, 1, 2, 9}, + { -4, -6, -8, -9, 3, 5, 7, 8}, + { -3, -5, -7, -9, 2, 4, 6, 8}, +}; + static const uint8 g_etc1_to_selector_index[cETC1SelectorValues] = {2, 3, 1, 0}; static const uint8 g_selector_index_to_etc1[cETC1SelectorValues] = {3, 2, 0, 1}; @@ -1428,6 +1450,104 @@ bool unpack_etc1_block(const void* pETC1_block, unsigned int* pDst_pixels_rgba, return success; } +bool unpack_etc2_color(const void* pBlock, unsigned int* pDst_pixels_rgba, bool preserve_alpha) { + if (unpack_etc1_block(pBlock, pDst_pixels_rgba, preserve_alpha)) + return true; + + color_quad_u8* pDst = reinterpret_cast(pDst_pixels_rgba); + const etc1_block& block = *static_cast(pBlock); + const uint8* B = block.m_bytes; + const bool rOverflow = (int8(B[0] << 5) >> 5) + (B[0] >> 3) & 0x20; + const bool gOverflow = (int8(B[1] << 5) >> 5) + (B[1] >> 3) & 0x20; + + if (rOverflow || gOverflow) { + color_quad_u8 block_colors[4]; + if (rOverflow) { + uint8 unpacked[3] = { + B[0] & 0x3 | B[0] >> 1 & 0xC | B[2] & 0xF0, + B[1] >> 4 | B[2] << 4, + B[1] & 0xF | B[3] & 0xF0, + }; + uint8 delta = g_etc2_modifier_table[B[3] & 1 | B[3] >> 1 & 6]; + for (uint c = 0; c < 3; c++) { + block_colors[2][c] = unpacked[c] << 4 | unpacked[c] & 0xF; + block_colors[1][c] = unpacked[c] >> 4 | unpacked[c] & 0xF0; + block_colors[0][c] = math::maximum(0, block_colors[1][c] - delta); + block_colors[3][c] = math::minimum(255, block_colors[1][c] + delta); + } + } else { + uint8 unpacked[3] = { + B[0] >> 3 & 0xF | B[2] << 1 & 0xF0, + B[1] >> 4 & 0x1 | B[0] << 1 & 0xE | B[3] >> 3 & 0x10 | B[2] << 5, + B[2] >> 7 | B[1] << 1 & 0x6 | B[1] & 0x8 | B[3] << 1 & 0xF0, + }; + uint8 modifier = B[3] & 4 | B[3] << 1 & 2 | 1; + for (int d = 0, c = 0; !d && c < 3; c++, modifier &= d < 0 ? 6 : 7) + d = (unpacked[c] & 0xF) - (unpacked[c] >> 4); + uint8 delta = g_etc2_modifier_table[modifier]; + for (uint c = 0; c < 3; c++) { + uint8 c0 = unpacked[c] << 4 | unpacked[c] & 0xF; + uint8 c1 = unpacked[c] >> 4 | unpacked[c] & 0xF0; + block_colors[0][c] = math::maximum(0, c1 - delta); + block_colors[1][c] = math::minimum(255, c1 + delta); + block_colors[2][c] = math::minimum(255, c0 + delta); + block_colors[3][c] = math::maximum(0, c0 - delta); + } + } + for (uint i = 0; i < 4; i++) { + for (uint j = 0; j < 4; j++, pDst++) { + pDst->set_rgb(block_colors[block.get_selector(j, i)]); + if (!preserve_alpha) + pDst->a = 255; + } + } + } else { + int16 base[3], dj[3], di[3], color[3]; + base[0] = B[0] << 1 & 0xFC | B[0] >> 5 & 3; + base[1] = B[0] << 7 & 0x80 | B[1] & 0x7E | B[0] & 1; + base[2] = B[1] << 7 & 0x80 | B[2] << 2 & 0x60 | B[2] << 3 & 0x18 | B[3] >> 5 & 4 | B[1] << 1 & 2 | B[2] >> 4 & 1; + di[0] = (B[5] << 5 & 0xE0 | B[6] >> 3 & 0x1C | B[5] >> 1 & 0x3) - base[0]; + di[1] = (B[6] << 3 & 0xF8 | B[7] >> 5 & 0x6 | B[6] >> 4 & 0x1) - base[1]; + di[2] = (B[7] << 2 & 0xFC | B[7] >> 4 & 0x3) - base[2]; + dj[0] = (B[3] << 1 & 0xF8 | B[3] << 2 & 0x4 | B[3] >> 5 & 0x3) - base[0]; + dj[1] = (B[4] & 0xFE | B[4] >> 7) - base[1]; + dj[2] = (B[4] << 7 & 0x80 | B[5] >> 1 & 0x7C | B[4] << 1 & 0x2 | B[5] >> 7) - base[2]; + for (uint c = 0; c < 3; c++) + base[c] = (base[c] << 2) + 2; + for (uint i = 0; i < 4; i++) { + for (uint c = 0; c < 3; base[c] += di[c], c++) + color[c] = base[c]; + for (uint j = 0; j < 4; j++, pDst++) { + for (uint c = 0; c < 3; color[c] += dj[c], c++) + pDst->c[c] = math::clamp(color[c], 0, 1020) >> 2; + if (!preserve_alpha) + pDst->a = 255; + } + } + } + return true; +} + +bool unpack_etc2_alpha(const void* pBlock, unsigned int* pDst_pixels_rgba, int comp_index) { + color_quad_u8* pDst = (color_quad_u8*)pDst_pixels_rgba; + const uint8* B = (const uint8*)pBlock; + const int* modifier = g_etc2a_modifier_table[B[1] & 0xF]; + uint8 values[8]; + for (int base_codeword = B[0], multiplier = B[1] >> 4, i = 0; i < 8; i++) + values[i] = math::clamp(base_codeword + modifier[i] * multiplier, 0, 255); + for (uint d0 = 3, i = 0; i < 4; i++, d0 += 3) { + for (uint d = d0, j = 0; j < 4; j++, pDst++, d += 12) { + int byte_offset = 2 + (d >> 3); + int bit_offset = d & 7; + int s = B[byte_offset] >> 8 - bit_offset & 7; + if (bit_offset < 3) + s |= B[byte_offset - 1] << bit_offset & 7; + pDst->c[comp_index] = values[s]; + } + } + return true; +} + struct etc1_solution_coordinates { inline etc1_solution_coordinates() : m_unscaled_color(0, 0, 0, 0), @@ -2275,13 +2395,6 @@ unsigned int pack_etc1_block(void* pETC1_block, const unsigned int* pSrc_pixels_ const color_quad_u8* pSrc_pixels = reinterpret_cast(pSrc_pixels_rgba); etc1_block& dst_block = *static_cast(pETC1_block); -#ifdef RG_ETC1_BUILD_DEBUG - // Ensure all alpha values are 0xFF. - for (uint i = 0; i < 16; i++) { - RG_ETC1_ASSERT(pSrc_pixels[i].a == 255); - } -#endif - color_quad_u8 src_pixel0(pSrc_pixels[0]); // Check for solid block. @@ -2520,6 +2633,60 @@ unsigned int pack_etc1_block(void* pETC1_block, const unsigned int* pSrc_pixels_ return static_cast(best_error); } +unsigned int pack_etc2_alpha(void* pBlock, const unsigned int* pSrc_pixels_rgba, etc2a_pack_params& pack_params) { + crnlib::color_quad_u8* pixels = (crnlib::color_quad_u8*)pSrc_pixels_rgba; + dxt5_endpoint_optimizer dxt5_optimizer; + + dxt5_endpoint_optimizer::results results; + uint8 selectors[16]; + results.m_pSelectors = selectors; + + dxt5_endpoint_optimizer::params params; + params.m_pPixels = pixels; + params.m_num_pixels = 16; + params.m_comp_index = pack_params.comp_index; + params.m_quality = pack_params.m_quality == cHighQuality ? cCRNDXTQualityUber : pack_params.m_quality == cMediumQuality ? cCRNDXTQualityNormal : cCRNDXTQualityFast; + params.m_use_both_block_types = false; + dxt5_optimizer.compute(params, results); + + uint base_codeword = (results.m_first_endpoint + results.m_second_endpoint + 1) >> 1; + uint best_error = cUINT32_MAX; + for (int modifier_index = 0; modifier_index < 16; modifier_index++) { + const int* modifier = g_etc2a_modifier_table[modifier_index]; + int multiplier = math::clamp((results.m_first_endpoint - results.m_second_endpoint + modifier[7] + (modifier[7] >> 1)) / (modifier[7] << 1), 1, 15); + uint8 data[8] = {base_codeword, multiplier << 4 | modifier_index}, values[8]; + for (int i = 0; i < 8; i++) + values[i] = math::clamp(base_codeword + modifier[i] * multiplier, 0, 255); + uint error = 0; + for (uint d0 = 3, t = 0, i = 0; i < 4; i++, d0 += 3) { + for (uint d = d0, j = 0; j < 4; j++, t++, d += 12) { + int a = pixels[t].a; + uint byte_offset = 2 + (d >> 3); + uint bit_offset = d & 7; + uint best_s = 0; + uint best_delta = cUINT32_MAX; + for (uint s = 0; s < 8; s++) { + uint delta = abs(a - values[s]); + if (delta < best_delta) { + best_s = s; + best_delta = delta; + } + } + error += best_delta * best_delta; + data[byte_offset] |= best_s << 8 - bit_offset; + if (bit_offset < 3) + data[byte_offset - 1] |= best_s >> bit_offset; + } + } + if (error < best_error) { + memcpy(pBlock, data, 8); + best_error = error; + } + } + + return best_error; +} + } // namespace rg_etc1 } // namespace crnlib diff --git a/crnlib/crn_rg_etc1.h b/crnlib/crn_rg_etc1.h index 52cfc88..9378ae2 100644 --- a/crnlib/crn_rg_etc1.h +++ b/crnlib/crn_rg_etc1.h @@ -10,6 +10,8 @@ namespace rg_etc1 { // This function is thread safe, and does not dynamically allocate any memory. // If preserve_alpha is true, the alpha channel of the destination pixels will not be overwritten. Otherwise, alpha will be set to 255. bool unpack_etc1_block(const void* pETC1_block, unsigned int* pDst_pixels_rgba, bool preserve_alpha = false); +bool unpack_etc2_color(const void* pBlock, unsigned int* pDst_pixels_rgba, bool preserve_alpha = false); +bool unpack_etc2_alpha(const void* pBlock, unsigned int* pDst_pixels_rgba, int comp_index = 3); // Quality setting = the higher the quality, the slower. // To pack large textures, it is highly recommended to call pack_etc1_block() in parallel, on different blocks, from multiple threads (particularly when using cHighQuality). @@ -33,6 +35,20 @@ struct etc1_pack_params { } }; +struct etc2a_pack_params { + etc1_quality m_quality; + int comp_index; + + inline etc2a_pack_params() { + clear(); + } + + void clear() { + m_quality = cHighQuality; + comp_index = 3; + } +}; + // Important: pack_etc1_block_init() must be called before calling pack_etc1_block(). void pack_etc1_block_init(); @@ -42,6 +58,7 @@ void pack_etc1_block_init(); // This function is thread safe, and does not dynamically allocate any memory. // pack_etc1_block() does not currently support "perceptual" colorspace metrics - it primarily optimizes for RGB RMSE. unsigned int pack_etc1_block(void* pETC1_block, const unsigned int* pSrc_pixels_rgba, etc1_pack_params& pack_params); +unsigned int pack_etc2_alpha(void* pBlock, const unsigned int* pSrc_pixels_rgba, etc2a_pack_params& pack_params); } // namespace rg_etc1 diff --git a/crnlib/crn_texture_conversion.cpp b/crnlib/crn_texture_conversion.cpp index 810ddf0..1ec13be 100644 --- a/crnlib/crn_texture_conversion.cpp +++ b/crnlib/crn_texture_conversion.cpp @@ -285,11 +285,11 @@ static pixel_format choose_pixel_format(convert_params& params, const crn_comp_p return pixel_format_helpers::has_alpha(src_fmt) ? PIXEL_FMT_A8R8G8B8 : PIXEL_FMT_R8G8B8; } else if (pixel_format_helpers::is_grayscale(src_fmt)) { if (pixel_format_helpers::has_alpha(src_fmt)) - return PIXEL_FMT_A8L8; + return PIXEL_FMT_ETC2A; else return PIXEL_FMT_ETC1; } else if (pixel_format_helpers::has_alpha(src_fmt)) - return PIXEL_FMT_A8R8G8B8; + return PIXEL_FMT_ETC2A; else return PIXEL_FMT_ETC1; } diff --git a/crunch/crunch.cpp b/crunch/crunch.cpp index b1e51d8..684d4c4 100644 --- a/crunch/crunch.cpp +++ b/crunch/crunch.cpp @@ -481,7 +481,8 @@ class crunch { out_file_type = texture_file_types::cFormatDDS; cfile_stream in_stream; crnd::crn_header in_header; - if (in_stream.open(in_filename.get_ptr()) && in_stream.read(&in_header, sizeof(in_header)) == sizeof(in_header) && in_header.m_format == cCRNFmtETC1) + if (in_stream.open(in_filename.get_ptr()) && in_stream.read(&in_header, sizeof(in_header)) == sizeof(in_header) && + (in_header.m_format == cCRNFmtETC1 || in_header.m_format == cCRNFmtETC2 || in_header.m_format == cCRNFmtETC2A)) out_file_type = texture_file_types::cFormatKTX; } else if (input_file_type == texture_file_types::cFormatKTX) { // Default to converting KTX files to PNG diff --git a/inc/crn_decomp.h b/inc/crn_decomp.h index 580ec27..9c3fdba 100644 --- a/inc/crn_decomp.h +++ b/inc/crn_decomp.h @@ -2127,6 +2127,10 @@ uint32 crnd_crn_format_to_fourcc(crn_format fmt) { return CRND_FOURCC('A', 'G', 'B', 'R'); case cCRNFmtETC1: return CRND_FOURCC('E', 'T', 'C', '1'); + case cCRNFmtETC2: + return CRND_FOURCC('E', 'T', 'C', '2'); + case cCRNFmtETC2A: + return CRND_FOURCC('E', 'T', '2', 'A'); default: break; } @@ -2152,6 +2156,7 @@ uint32 crnd_get_crn_format_bits_per_texel(crn_format fmt) { case cCRNFmtDXT1: case cCRNFmtDXT5A: case cCRNFmtETC1: + case cCRNFmtETC2: return 4; case cCRNFmtDXT3: case cCRNFmtDXT5: @@ -2161,6 +2166,7 @@ uint32 crnd_get_crn_format_bits_per_texel(crn_format fmt) { case cCRNFmtDXT5_xGxR: case cCRNFmtDXT5_xGBR: case cCRNFmtDXT5_AGBR: + case cCRNFmtETC2A: return 8; default: break; @@ -2272,7 +2278,7 @@ bool crnd_get_texture_info(const void* pData, uint32 data_size, crn_texture_info pInfo->m_levels = pHeader->m_levels; pInfo->m_faces = pHeader->m_faces; pInfo->m_format = static_cast((uint32)pHeader->m_format); - pInfo->m_bytes_per_block = (pHeader->m_format == cCRNFmtDXT1 || pHeader->m_format == cCRNFmtDXT5A || pHeader->m_format == cCRNFmtETC1) ? 8 : 16; + pInfo->m_bytes_per_block = pHeader->m_format == cCRNFmtDXT1 || pHeader->m_format == cCRNFmtDXT5A || pHeader->m_format == cCRNFmtETC1 || pHeader->m_format == cCRNFmtETC2 ? 8 : 16; pInfo->m_userdata0 = pHeader->m_userdata0; pInfo->m_userdata1 = pHeader->m_userdata1; @@ -3011,7 +3017,7 @@ class crn_unpacker { const uint32 height = math::maximum(m_pHeader->m_height >> level_index, 1U); const uint32 blocks_x = (width + 3U) >> 2U; const uint32 blocks_y = (height + 3U) >> 2U; - const uint32 block_size = (m_pHeader->m_format == cCRNFmtDXT1 || m_pHeader->m_format == cCRNFmtDXT5A || m_pHeader->m_format == cCRNFmtETC1) ? 8 : 16; + const uint32 block_size = m_pHeader->m_format == cCRNFmtDXT1 || m_pHeader->m_format == cCRNFmtDXT5A || m_pHeader->m_format == cCRNFmtETC1 || m_pHeader->m_format == cCRNFmtETC2 ? 8 : 16; uint32 minimal_row_pitch = block_size * blocks_x; if (!row_pitch_in_bytes) @@ -3046,6 +3052,12 @@ class crn_unpacker { case cCRNFmtETC1: status = unpack_etc1((uint8**)pDst, row_pitch_in_bytes, blocks_x, blocks_y); break; + case cCRNFmtETC2: + status = unpack_etc1((uint8**)pDst, row_pitch_in_bytes, blocks_x, blocks_y); + break; + case cCRNFmtETC2A: + status = unpack_etc2a((uint8**)pDst, row_pitch_in_bytes, blocks_x, blocks_y); + break; default: return false; } @@ -3128,7 +3140,7 @@ class crn_unpacker { if (m_pHeader->m_alpha_endpoints.m_num) { if (!decode_alpha_endpoints()) return false; - if (!decode_alpha_selectors()) + if (!(m_pHeader->m_format == cCRNFmtETC2A ? decode_alpha_selectors_etc() : decode_alpha_selectors())) return false; } @@ -3137,6 +3149,7 @@ class crn_unpacker { bool decode_color_endpoints() { const uint32 num_color_endpoints = m_pHeader->m_color_endpoints.m_num; + const bool has_etc_color_blocks = m_pHeader->m_format == cCRNFmtETC1 || m_pHeader->m_format == cCRNFmtETC2 || m_pHeader->m_format == cCRNFmtETC2A; if (!m_color_endpoints.resize(num_color_endpoints)) return false; @@ -3145,7 +3158,7 @@ class crn_unpacker { return false; static_huffman_data_model dm[2]; - for (uint32 i = 0; i < (m_pHeader->m_format == cCRNFmtETC1 ? 1 : 2); i++) + for (uint32 i = 0; i < (has_etc_color_blocks ? 1 : 2); i++) if (!m_codec.decode_receive_static_data_model(dm[i])) return false; @@ -3155,7 +3168,7 @@ class crn_unpacker { uint32* CRND_RESTRICT pDst = &m_color_endpoints[0]; for (uint32 i = 0; i < num_color_endpoints; i++) { - if (m_pHeader->m_format == cCRNFmtETC1) { + if (has_etc_color_blocks) { for (b = 0; b < 32; b += 8) a += m_codec.decode(dm[0]) << b; *pDst++ = a &= 0x1F1F1F1F; @@ -3176,14 +3189,15 @@ class crn_unpacker { } bool decode_color_selectors() { + const bool has_etc_color_blocks = m_pHeader->m_format == cCRNFmtETC1 || m_pHeader->m_format == cCRNFmtETC2 || m_pHeader->m_format == cCRNFmtETC2A; m_codec.start_decoding(m_pData + m_pHeader->m_color_selectors.m_ofs, m_pHeader->m_color_selectors.m_size); static_huffman_data_model dm; m_codec.decode_receive_static_data_model(dm); - m_color_selectors.resize(m_pHeader->m_color_selectors.m_num << (m_pHeader->m_format == cCRNFmtETC1 ? 1 : 0)); + m_color_selectors.resize(m_pHeader->m_color_selectors.m_num << (has_etc_color_blocks ? 1 : 0)); for (uint32 s = 0, i = 0; i < m_pHeader->m_color_selectors.m_num; i++) { for (uint32 j = 0; j < 32; j += 4) s ^= m_codec.decode(dm) << j; - if (m_pHeader->m_format == cCRNFmtETC1) { + if (has_etc_color_blocks) { for (uint32 selector = ~s & 0xAAAAAAAA | ~(s ^ s >> 1) & 0x55555555, t = 8, h = 0; h < 4; h++, t -= 15) { for (uint32 w = 0; w < 4; w++, t += 4) { uint32 s0 = selector >> (w << 3 | h << 1); @@ -3249,6 +3263,37 @@ class crn_unpacker { return true; } + bool decode_alpha_selectors_etc() { + m_codec.start_decoding(m_pData + m_pHeader->m_alpha_selectors.m_ofs, m_pHeader->m_alpha_selectors.m_size); + static_huffman_data_model dm; + m_codec.decode_receive_static_data_model(dm); + m_alpha_selectors.resize(m_pHeader->m_alpha_selectors.m_num * 6); + uint8 s_linear[8] = {}; + uint8* data = (uint8*)m_alpha_selectors.begin(); + for (uint i = 0; i < m_alpha_selectors.size(); i += 6, data += 12) { + for (uint s_group, p = 0; p < 16; p++) { + s_group = p & 1 ? s_group >> 3 : s_linear[p >> 1] ^= m_codec.decode(dm); + uint8 s = s_group & 7; + if (s <= 3) + s = 3 - s; + uint8 d = 3 * (p + 1); + uint8 byte_offset = d >> 3; + uint8 bit_offset = d & 7; + data[byte_offset] |= s << 8 - bit_offset; + if (bit_offset < 3) + data[byte_offset - 1] |= s >> bit_offset; + d += 9 * ((p & 3) - (p >> 2)); + byte_offset = d >> 3; + bit_offset = d & 7; + data[byte_offset + 6] |= s << 8 - bit_offset; + if (bit_offset < 3) + data[byte_offset + 5] |= s >> bit_offset; + } + } + m_codec.stop_decoding(); + return true; + } + static inline uint32 tiled_offset_2d_outer(uint32 y, uint32 AlignedWidth, uint32 LogBpp) { uint32 Macro = ((y >> 5) * (AlignedWidth >> 5)) << (LogBpp + 7); uint32 Micro = ((y & 6) << 2) << LogBpp; @@ -3570,6 +3615,86 @@ class crn_unpacker { return true; } + bool unpack_etc2a(uint8** pDst, uint32 output_pitch_in_bytes, uint32 output_width, uint32 output_height) { + const uint32 num_color_endpoints = m_color_endpoints.size(); + const uint32 num_alpha_endpoints = m_alpha_endpoints.size(); + const uint32 width = output_width + 1 & ~1; + const uint32 height = output_height + 1 & ~1; + const int32 delta_pitch_in_dwords = (output_pitch_in_bytes >> 2) - (width << 2); + + if (m_block_buffer.size() < width << 1) + m_block_buffer.resize(width << 1); + + uint32 color_endpoint_index = 0, diagonal_color_endpoint_index = 0, alpha0_endpoint_index = 0, diagonal_alpha0_endpoint_index = 0; + uint8 reference_group = 0; + + for (uint32 f = 0; f < m_pHeader->m_faces; f++) { + uint32* pData = (uint32*)pDst[f]; + for (uint32 y = 0; y < height; y++, pData += delta_pitch_in_dwords) { + bool visible = y < output_height; + for (uint32 x = 0; x < width; x++, pData += 4) { + visible = visible && x < output_width; + block_buffer_element &buffer = m_block_buffer[x << 1]; + uint8 endpoint_reference, block_endpoint[4], e0[4], e1[4]; + if (y & 1) { + endpoint_reference = buffer.endpoint_reference; + } else { + reference_group = m_codec.decode(m_reference_encoding_dm); + endpoint_reference = reference_group & 3 | reference_group >> 2 & 12; + buffer.endpoint_reference = reference_group >> 2 & 3 | reference_group >> 4 & 12; + } + if (!(endpoint_reference & 3)) { + color_endpoint_index += m_codec.decode(m_endpoint_delta_dm[0]); + if (color_endpoint_index >= num_color_endpoints) + color_endpoint_index -= num_color_endpoints; + alpha0_endpoint_index += m_codec.decode(m_endpoint_delta_dm[1]); + if (alpha0_endpoint_index >= num_alpha_endpoints) + alpha0_endpoint_index -= num_alpha_endpoints; + buffer.color_endpoint_index = color_endpoint_index; + buffer.alpha0_endpoint_index = alpha0_endpoint_index; + } else if ((endpoint_reference & 3) == 1) { + buffer.color_endpoint_index = color_endpoint_index; + buffer.alpha0_endpoint_index = alpha0_endpoint_index; + } else if ((endpoint_reference & 3) == 3) { + buffer.color_endpoint_index = color_endpoint_index = diagonal_color_endpoint_index; + buffer.alpha0_endpoint_index = alpha0_endpoint_index = diagonal_alpha0_endpoint_index; + } else { + color_endpoint_index = buffer.color_endpoint_index; + alpha0_endpoint_index = buffer.alpha0_endpoint_index; + } + endpoint_reference >>= 2; + *(uint32*)&e0 = m_color_endpoints[color_endpoint_index]; + uint32 color_selector_index = m_codec.decode(m_selector_delta_dm[0]); + uint32 alpha0_selector_index = m_codec.decode(m_selector_delta_dm[1]); + if (endpoint_reference) { + color_endpoint_index += m_codec.decode(m_endpoint_delta_dm[0]); + if (color_endpoint_index >= num_color_endpoints) + color_endpoint_index -= num_color_endpoints; + } + *(uint32*)&e1 = m_color_endpoints[color_endpoint_index]; + diagonal_color_endpoint_index = m_block_buffer[x << 1 | 1].color_endpoint_index; + diagonal_alpha0_endpoint_index = m_block_buffer[x << 1 | 1].alpha0_endpoint_index; + m_block_buffer[x << 1 | 1].color_endpoint_index = color_endpoint_index; + m_block_buffer[x << 1 | 1].alpha0_endpoint_index = alpha0_endpoint_index; + if (visible) { + uint32 flip = endpoint_reference >> 1 ^ 1, diff = 1; + for (uint c = 0; diff && c < 3; c++) + diff = e0[c] + 3 >= e1[c] && e1[c] + 4 >= e0[c] ? diff : 0; + for (uint c = 0; c < 3; c++) + block_endpoint[c] = diff ? e0[c] << 3 | e1[c] - e0[c] & 7 : e0[c] << 3 & 0xF0 | e1[c] >> 1; + block_endpoint[3] = e0[3] << 5 | e1[3] << 2 | diff << 1 | flip; + const uint16* pAlpha0_selectors = &m_alpha_selectors[alpha0_selector_index * 6 + (flip ? 3 : 0)]; + pData[0] = m_alpha_endpoints[alpha0_endpoint_index] | pAlpha0_selectors[0] << 16; + pData[1] = pAlpha0_selectors[1] | pAlpha0_selectors[2] << 16; + pData[2] = *(uint32*)&block_endpoint; + pData[3] = m_color_selectors[color_selector_index << 1 | flip]; + } + } + } + } + return true; + } + }; crnd_unpack_context crnd_unpack_begin(const void* pData, uint32 data_size) { diff --git a/inc/crnlib.h b/inc/crnlib.h index b810b65..fb93b63 100644 --- a/inc/crnlib.h +++ b/inc/crnlib.h @@ -71,6 +71,8 @@ enum crn_format { cCRNFmtDXT5A, cCRNFmtETC1, + cCRNFmtETC2, + cCRNFmtETC2A, cCRNFmtTotal, diff --git a/inc/dds_defs.h b/inc/dds_defs.h index 8e9b8e5..1216ff7 100644 --- a/inc/dds_defs.h +++ b/inc/dds_defs.h @@ -28,6 +28,8 @@ enum pixel_format { PIXEL_FMT_DXT1A = CRNLIB_PIXEL_FMT_FOURCC('D', 'X', '1', 'A'), PIXEL_FMT_ETC1 = CRNLIB_PIXEL_FMT_FOURCC('E', 'T', 'C', '1'), + PIXEL_FMT_ETC2 = CRNLIB_PIXEL_FMT_FOURCC('E', 'T', 'C', '2'), + PIXEL_FMT_ETC2A = CRNLIB_PIXEL_FMT_FOURCC('E', 'T', '2', 'A'), PIXEL_FMT_R8G8B8 = CRNLIB_PIXEL_FMT_FOURCC('R', 'G', 'B', 'x'), PIXEL_FMT_L8 = CRNLIB_PIXEL_FMT_FOURCC('L', 'x', 'x', 'x'),