Oldalságok

2026/08/31

A felejtés, mint glitch


Biztos jártál már úgy, hogy egy régen látott helyszínre érve azt érezted, hogyha le kellett volna rajzolnod emlékezetből, teljesen másképp helyeztél volna el tárgyakat. Az a fa nem itt volt, annak a sziklának más volt a színe, balról jöttünk, nem jobbról, stb. Mi ez, ha nem egy-két, rég nem használt neuronkapcsolat megszakadása, és az emlékek újra rajzolása a hibás kapcsolat figyelmen kívül hagyásával? Vagyis egy glitch az emlékezetben. 



Ezzel a két képpel dolgozunk, PNG formátumban igyekszünk szanaszét glitchelni, az itt és itt ismertetett módon. Esetleg nézd meg ezt a videót is, a kolléga nagyjából hasonlókat művel és őt is a japán művész inspirálta, mint minket. A 15-20 éve eltűnt városképek, amiknek emlékét agyunkban is lassan kikezdi a felejtés, tökéletes alanyok erre a játékra. 
A bejegyzés végére nagyjából tudni fogjuk, hogy milyen típusú képeket, és milyen módon érdemes megtámadni ahhoz, hogy értelmezhető glitcheket kapjunk.



1. Photoshopban large, medium és smallest mentései az RGB8 PNG filter-swapjére (más filterrel kódoljuk ki, mint amivel bekódoltuk) nem mutatnak különbséget. Mellesleg ezen a fileon, a különböző tömörítéseknél, fileméretben csupán 1-2 % eltérés volt, ellenben mentési időben akár 100% is. Szóval nem érdemes a smallest but slowest tömörítést használni.

Minden filtertípus Averageként kikódolva pont így néz ki.

2. Az viszont meglepett, hogy a program kezeli az alfa csatornát is, a Nap-korongot vágtuk ki a képből. 

A legelső pixelt támadtuk meg, mert a program nem enged menteni támadás nélkül
A filtereket viszont meghagytuk, ahogy az eredeti fileban voltak.

RGBA - összes scanlineja Averagként kibontva, azért ez teljesen mást eredményezett,
mint kettővel fennebb. 

3. RGB16-os PNG-vel nem áll szóba a program, tehát csak a 8 bitesek működnek. De hibaüzenettel lekezeli. 

4. Az Interlaced képeket is megtagadja a program, ügyesen hibaüzenettel.

Innentől csak RGB8 és large mentésű (vegyes filterezésű és olykor normalizált filterezésű) fileokat  támadunk.

5. Pixel támadás mátrixban, vagyis 10*10 pixelenként a teljes kép felületén, filterezést nem bántjuk: 

Az eredmény érdekes, mert sejtetni engedi, hogy a photoshop milyen típusú felületeknek, soroknak milyen filtereket választ leginkább, az ég zömmel Sub filterezésű, a felhő töri ezt meg picit, aztán lefelé, ahogy sűrűsödnek a kábelek Paethre vált,  a házcserepeknél a fene tudja, Average-re tippelnék, mert nem látszik a 10*10-es mintázatban a fehér pixel (amennyiben None lenne ezt várnánk), aztán lefele a ház fala megint Paeth, az aszfalt Average és a csajok megint Paeth. 

Emlékeztetőül ilyen lenne a 10*10-es támadás None-ra normalizált filterű képen. 


A másik képünkön az a nagyon furcsa, hogy az eget nem bántotta, egyetlen pixelt se, erre jelenleg nincs magyarázatunk (még Ps-ben az eredetivel Differenc módban is összenéztük, semmi jele az égben a hibának). Aztán lefele a Paeth, az Average, kicsit megint a Paeth, majd a Sub dominál. 
Gondoltuk sorra megnézzük, hogy ugyanezzel a 10*10-es pixeltámadással elhazudjuk az összes filtert is, mondjuk Average-nek, csak egyetlen filtert hagyunk meg ahogy volt, sorra a None, Sub... és hoppá, ha a Sub filterű scanlineokat békén hagyjuk az összes többi Average, akkor az ég érintetlen marad? Vagy van benne némi átlós textúra?


Nézzük csak meg PS-ben Difference módban az eredetivel és egy durva Curve-t ráhúzva!


Ja, vagy így. Hát ott van a glitch, de mivel minden pixelt 255-re tettünk és az ég eleve nagyon világos, ezért alig látszik a hatás, de ott van. Tehát nemcsak az számít, hogy mennyire homogén zóna scanline-jairól van szó (ami alapján filtert választ a program a soroknak) hanem az is, hogy milyen világos vagy sötét tónust milyen byte-értékkel támadunk az egyes pixelpozíciókon. 

6. Most azt nézzük meg, hogy a három Custom filterünkkel normalizáltan elkódolt képeink hogyan néznének ki, ha a dekódolásukat az 5 valid filter egyikére hazudnánk. Itt már csak a kevésbé zajos képünket teszteljük, hiszen az már világosan látszik, hogy a filterek támadása egyfajta edge-detection szűrőként hatnak. A részletgazdag (nagyfrekvenciás) képek így a filtertámadás során belefulladnak a zajba, és csak a nagyobb egységes felületek maradnak meg.  Mint már várható volt, mindhárom saját elkódolás, None kikódolással egy erős edge detectiont eredményez



Talán a a Custom2 filterünk (ami az RGB színeket külön szomszédaitól veszi) Non-ként interpretálva lehet valamennyire érdekes a színeltolódás miatt, a másik két szűrőnk monokrómabb összhatásban (közelről azért durván színzajos), kb. ugyanez. A Sub és Up filterekkel kikódolás már érdekesebb, nagyon képfüggő lehet, hogy kacat, vagy mestermű lesz belőle.



Bár a Custom1 és Custom3 bemenet se rossz, de a legjobb eredményt itt is a Custom2 bemenetű Sub és Up-ként interpretált képek adták.
Nyilván az Averagetől várjuk a legtöbbet, és nem is csalódunk, mindhármat mutatjuk:

Custom1 filtered  - decoded as Average 

Custom2 filtered  - decoded as Average

Custom3 filtered  - decoded as Average

A Paeth filter meg hozza a szokásost, értelmezhetetlen de pszichedelikus pixel-kristályszerkezet, ami legalább rímel az aminosav kristályaink képeire.



7. Kipróbáltuk a Custom1 (körkörös prediktorunkat is a kikódolásra). Az egyszerű, vegyes filterű, képeink elég semmilyenek lettek, viszont a Custom 1, Custom 2 és Custom 3 elkódolású képek Custom 1 dekódolással már csöppet érdekesebbek:


Továbbra is leginkább a Custom3-nak elkódolt, majd Custom1-ként visszakódolt kép nyújt bármiféle esztétikai élményt, ennél ugyanis, mivel elkódolásnál a pixel RGB színeinek byte értékeit három szomszédjától szedi, a súlyos edge-detection-szerű hatás mellett megfigyelhető egy enyhe pszichedelikus color-shift is.

Körülbelül egyhetes utazásunk végére érve további rengeteg ötletünk is lett, amit egyszer talán érdemes lenne leprogramozni, vagy leprogramoztatni az AI-val. 
Mellesleg az AI szerint ez a teljes projekt, programokkal, szkriptekkel, elemzésekkel, szőröstől-bőröstől pár óra laptophasználat ökológiai lábnyomával ér fel. ennél jóval több számítógéphasználat történt az én kliensoldalamon, legalább 20 óra. Másképpen megközelítve, pár száz palacsintarecept megbeszélése az AI-val ekvivalens öko-lábnyomot eredményez, mint ez a projekt.
További ötletek, saját filterek esetére érdemes lenne kipróbálni azt, hogy az egyes pixel-byteok kiszámolásánál ne csak az aktuális kép már elkódolt bytejaira támaszkodjon, hanem egy másik kép hasonló pozíciójáról is vegyen információkat, például a Red és Green byte értékét vegye az Average szabályai szerint a baloldali és felső pixel átlagából, de a Blue byteot egy másik kép azonos pozíciójú bal és felső pixelátlagából számolja. Ez várhatóan valami olyasmit eredményezne, mintha a két képet valamilyen elcseszett módon egymásra mentettük volna. 

Custom2 to Average + byte attack 1-20

Ugyanakkor van bennünk egy bizonytalanság, hogy ez a módszer valóban glitchnek számít e, a szó szoros és véletlen-kontextusú értelmében, vagy inkább data bending, esetleg egyfajta peremvidéke a hibának és a képfeldolgozásnak? 




Nincsenek megjegyzések:

Megjegyzés küldése