Skaitmeninis Babelio bokštas: Kam žmonijai prireikė 80+ vaizdo formatų?
Jei kada nors bandėte atidaryti medicininį rentgeno DICOM failą paprastoje naršyklėje, nusiųsti spaustuvei 1993-ųjų TGA tekstūrą arba ištraukti kadrą iš reto Canon CR3 ar Fuji RAF fotoaparato, greičiausiai susidūrėte su liūdna tiesa: skaitmeninis pasaulis yra visiškai susiskaldęs. Užuot turėjusi vieną ar du universalius standartus, žmonija per pastaruosius keturis dešimtmečius prigamino dešimtis tarpusavyje nesuderinamų vaizdo konteinerių.
Kodėl taip nutiko? Atsakymas slypi inžineriniame užsispyrime, korporatyviniuose patentų karuose ir aparatinės įrangos evoliucijoje. 1985-aisiais kompiuteris su 640 kilobaitų RAM negalėjo apdoroti to, ką šiandien išmanusis laikrodis atlieka fone. Kiekvienas fotoaparatų gamintojas, medicinos įrangos konsorciumas ir programinės įrangos gigantas kūrė savo binarinius formatus, kad „pririštų“ vartotoją prie savo brangios ekosistemos. Štai kas iš tikrųjų slypi po šia formatų zoologijos sodo gausybe:
1. Fotoaparatų RAW klanas: Neapdorota fotonų tiesa ir patentų karai
RAW failas nėra įprastas paveikslėlis. Tai yra skaitmeninis negatyvas – gryni, neapdoroti elektros krūviai, užfiksuoti fotoaparato silicio matricos fotodioduose. Šviesos fotonai praeina pro Bayerio spalvų filtrų matricą (CFA) (2 žali, 1 raudonas, 1 mėlynas pikselis kiekviename 2×2 bloke) ir virsta 12, 14 arba 16 bitų skaitiniais masyvais. Tačiau kiekvienas gamintojas nusprendė šią fiziką užrakinti nuosavame seife:
📷 Canon (CRW, CR2, CR3): Slapti TIFF žymekliai ir MP4 konteineriai
Ankstyvieji „Canon“ fotoaparatai naudojo CRW (Camera RAW Format), paremtą CIFF struktūra. Vėliau „Canon“ sukūrė CR2 (Canon Raw 2), kuris iš esmės yra standartinis TIFF failas, tačiau prikimštas dešimčių patentuotų, neviešinamų EXIF žymių. Su naujausiais veidrodiniais ir beveidrodžiais fotoaparatais „Canon“ žengė dar toliau ir pristatė CR3 – šis formatas jau nebėra TIFF, o yra supakuotas į ISO Base Media File Format konteinerį (tą patį, kurį naudoja MP4 video failai!).
📷 Nikon (NEF, NRW): 2005-ųjų šifravimo drama
NEF (Nikon Electronic Format) garsėja aukštu dinaminiu diapazonu, tačiau jo istorija paženklinta skandalu. 2005 m., išleidus fotoaparatą „Nikon D2X“, kompanija nusprendė užšifruoti baltos spalvos balanso (White Balance) metaduomenis faile. Trečiųjų šalių programos (pvz., „Adobe Camera Raw“) nebegalėjo teisingai perskaityti spalvų temperatūros, nebent naudojo oficialią „Nikon“ SDK biblioteką. Tai sukėlė pasaulinį fotografų pasipiktinimą, kol inžinieriai galiausiai atvertė šį algoritmą. Kompaktiški „Nikon Coolpix“ modeliai naudojo supaprastintą NRW versiją.
📷 Sony (ARW, SR2, SRF): Minolta palikimas ir „Star Eater“ algoritmas
Kai „Sony“ 2006 m. perėmė „Konica Minolta“ fotoaparatų padalinį, jie paveldėjo senąjį MRW formatą ir jį pervadino į SRF, vėliau į SR2, o dabar visuose „Alpha“ modeliuose naudoja ARW (Alpha Raw). Istorinė ironija: ankstyvieji „Sony“ ARW failai naudojo nuostolingą 11+7 bitų suspaudimą su erzinančiu triukšmo slopinimu, kurį astrofotografai praminė „Star Eater“ – procesorius naktinio dangaus žvaigždes palaikydavo karštais pikseliais ir jas tiesiog ištrindavo!
📷 Adobe DNG (Digital Negative): Kilnus, bet atstumtas gelbėtojas
Pavargusi nuo to, kad kas savaitę turi atnaujinti „Photoshop“ palaikymą naujiems fotoaparatų modeliams, „Adobe“ 2004 m. pristatė atvirą DNG (Digital Negative) formatą. Idėja buvo puiki: vienas atviras RAW standartas visai industrijai. Deja, fotoaparatų gamintojai tai priėmė kaip bandymą primesti „Adobe“ monopoliją ir toliau kuria savo nuosavus formatus, todėl DNG dažniausiai naudojamas išmaniuosiuose telefonuose („iPhone ProRAW“, „Google Pixel“) ir dronuose („DJI“).
📷 Fujifilm (RAF) ir X-Trans maištas
„Fujifilm“ nusprendė, kad 50 metų senumo Bayerio matrica yra pernelyg nuobodi, ir savo RAF formatui sukūrė X-Trans sensorių su 6×6 nereguliariu pikselių tinkleliu. Tikslas buvo imituoti analoginės kino juostos sidabro halogenidų grūdėtumą ir panaikinti optinį „Moiré“ efektą be žemo dažnio filtro. Rezultatas – nuostabios spalvos, tačiau kiekvienas nepriklausomas programinės įrangos programuotojas iki šiol kovoja su vadinamuoju „akvarelės efektu“ bandydamas dekoduoti šiuos failus.
📷 Olympus (ORF), Panasonic (RW2), Pentax (PEF) ir Sigma (X3F)
Sigma X3F nusipelno atskiro paminklo: „Foveon X3“ sensorius nenaudojo jokios spalvų mozaikos, o fiksavo šviesą trimis silicio sluoksniais skirtingame gylyje (nes raudona, žalia ir mėlyna šviesa prasiskverbia į skirtingą gylį). Tai suteikė neįtikėtiną aštrumą, tačiau šių X3F failų be specialios „Sigma“ programos negalėjo atverti beveik niekas. ORF („Olympus“), RW2 („Panasonic Lumix“) ir PEF („Pentax“) tęsia tradiciją saugoti milžinišką duomenų kiekį mažame korpuse.
2. Retro grafikos archeologija ir žaidimų reliktai (1984–1995)
🎨 Adobe Photoshop (PSD / PSB): Frankenšteino monstras nuo 1988-ųjų
PSD (Photoshop Document) gimė 1988 m. ant „Macintosh Plus“ kompiuterio. Kadangi formatas evoliucionavo kartu su programa 35 metus, jo vidinė specifikacija yra tikras programinės inžinerijos košmaras: jame iki šiol galima rasti „Pascal“ stiliaus stringų, 1990-ųjų „Mac OS Resource Fork“ liekanų, paslėptų binarinių blokų ir dubliuotų sulietų kompozicijų. Didesniems nei 2 GB failams „Adobe“ sukūrė PSB (Photoshop Big), leidžiantį kurti iki 300 000 pikselių pločio gigantus. Mūsų konverteris atlieka saugų šių sluoksnių suliejimą į skaidrų PNG arba lengvą WebP.
🕹️ TGA (Truevision Targa - 1984): Pirmasis tikras žaidimų ir 3D variklis
Sukurtas dar 1984 m. „AT&T Truevision“ vaizdo plokštėms, TGA buvo revoliucija: jis palaikė 24 ir 32 bitų spalvas bei tikrą 8 bitų Alpha skaidrumo kanalą tais laikais, kai dauguma kompiuterių džiaugėsi 16 spalvų CGA režimu. Dėl savo binarinio paprastumo (jokio sudėtingo glaudinimo, tiesiog gryni baitai) Johnas Carmackas pasirinko TGA tekstūroms žaidimuose „Doom“, „Quake“ ir „Half-Life“. Šis formatas iki šiol gyvas 3D modeliavime.
💾 PCX (ZSoft Paintbrush - 1985): MS-DOS eros valdovas
PCX buvo numatytasis ankstyvosios „PC Paintbrush“ ir „Microsoft Windows 1.0/3.0“ formatas. Jis naudoja primityvų Run-Length Encoding (RLE) glaudinimą. Įdomus faktas: jei PCX formate bandysite išsaugoti visiškai triukšmingą paveikslėlį (pvz., televizoriaus „sniegą“), RLE algoritmas failą padarys didesnį už visiškai nesuspaustą masyvą! Šiandien PCX yra gryna skaitmeninė archeologija.
🔲 Netpbm šeima (PBM, PGM, PPM, PNM): Paveikslėliai, kuriuos galima rašyti Notepad'e
PPM (Portable Pixmap) ir jo broliai yra patys gryniausi formatai pasaulyje. Paveikslėlis gali būti saugomas paprastu ASCII tekstu! Galite atsidaryti „Notepad“, parašyti:
P3
2 2
255
255 0 0 0 255 0
0 0 255 255 255 0
ir turėsite 2×2 pikselių keturių spalvų paveikslėlį. Nors šie failai užima beprotiškai daug vietos, juos dievina programuotojai ir dėstytojai algoritmų testavimui.
🪟 ICO, CUR, BMP ir WBMP
ICO ir CUR: „Windows“ ikonų ir pelytės žymeklių konteineriai, kuriuose viename faile telpa kelios tos pačios piktogramos versijos (16×16, 32×32, 48×48, 256×256) su skirtingais spalvų gyliais.
BMP (Bitmap): 1990-ųjų „Microsoft“ monolitas be jokio glaudinimo, ryjantis megabaitus.
WBMP (Wireless Bitmap): 1 bitas vienam pikseliui (tik juoda ir balta!), sukurtas 1999 m. WAP internetui senuosiuose „Nokia“ telefonuose.
3. Mokslas, Medicina, Kosmosas ir Kinas
🏥 DICOM (.dcm): Formatų karalius, gelbėjantis gyvybes
DICOM (Digital Imaging and Communications in Medicine) nėra tik nuotrauka – tai visa paciento medicininė byla. Kai jums atliekamas magnetinis rezonansas (MRT), kompiuterinė tomografija (KT) ar rentgenas, aparatas sukuria DICOM failą. Jame saugomi 12–16 bitų pilkumo skalės sluoksniai, paciento ID, ligoninės koordinatės ir rentgeno spinduliuotės dozė. Kadangi jokia standartinė naršyklė nemoka atverti 16 bitų medicininio rastro, mūsų konverteris normalizuoja šiuos duomenis į švarų, peržiūrimą JPG ar PNG.
🌌 FITS: NASA ir Hablo kosminio teleskopo kalba
Sukurtas dar 1981 m., FITS (Flexible Image Transport System) yra oficialus pasaulinės astronomijos formatas. Visi Jameso Webbo, Hablo ir antžeminių observatorijų kadrai saugomi FITS pavidalu. Failo antraštėse galima rasti tokius įrašus kaip TELESCOP = 'HUBBLE' arba EXPTIME = 1200.0, o patys vaizdo duomenys saugomi 32 arba 64 bitų slankiojo kablelio (floating-point) skaičiais.
🎬 HDR, OpenEXR (ILM) ir DPX: Holivudo vizualinių efektų standartas
OpenEXR (.exr): George'o Lucaso kompanijos „Industrial Light & Magic“ sukurtas formatas filmams „Haris Poteris“ ir „Žvaigždžių karai“. Jis naudoja 16 bitų „half-float“ skaičius ir saugo ne šiaip spalvas, o realų fizinį šviesos intensyvumą (fotonų skaičių).
DPX (Digital Picture Exchange) ir Kodak Cineon: Standartas, skirtas 35mm kino juostos skaitmenizavimui su 10 bitų logaritmine spalvų kreive, leidžiančia išsaugoti visus šešėlius ir šviesas.
4. Vektoriai ir Spauda: Turingo pilnos programavimo kalbos
🖨️ EPS (Encapsulated PostScript): Paveikslėlis, kuris iš tikrųjų yra programa
EPS yra viena didžiausių skaitmeninio pasaulio keistenybių. Tai nėra fiksuotas pikselių tinklelis – tai yra failas, parašytas tikra PostScript programavimo kalba! Teoriškai EPS faile galima parašyti begalinį ciklą while(true) ir visiškai pakabinti spaustuvės lazerinį spausdintuvą. Mūsų serverio variklis saugiai interpretuoja PostScript komandas ir paverčia jas aštria rastrine grafika pagal jūsų pasirinktą DPI (72–600 DPI).
📐 AI, PDF ir SVG
AI (Adobe Illustrator): Dvigalvis hibridas, kurio viduje yra tiek suderinamas PDF srautas, tiek privati „Illustrator“ redagavimo binarinė schema.
SVG (Scalable Vector Graphics): Šiuolaikinis W3C XML standartas, kur geometrinės formos aprašomos matematinėmis formulėmis.
5. Išsigelbėjimas: Kodėl universalus konvertavimas į JPG, PNG, WebP išgelbės pasaulį
Šis įrankis sujungia galingą PHP 8.1+ su Imagick / ImageMagick variklį ir atlieka visus šiuos sudėtingus matematinius veiksmus per sekundės dalį:
- CMYK → sRGB konversija: Atkuria natūralias spalvas ekranams per „LittleCMS“ variklį.
- Sluoksnių suliejimas (Flattening): Saugiai apjungia Photoshop PSD/PSB kaukes ir permatomumus.
- Vektorių rasterizavimas (DPI pasirinkimas): Užtikrina krištolinį aštrumą (iki 600 DPI) spaudos paruošimui.
- Skaidrumo valdymas: Išlaiko Alpha kanalus PNG/WebP formatuose arba inteligentiškai užpildo foną balta/juoda spalva JPG išvestyje.