Adobe Photoshop: Architektura a technologie

Adobe Photoshop je průmyslový standard pro úpravu rastrové grafiky. Jeho vývoj začal v roce 1987 (bratři Thomas a John Knollovi) a od té doby definuje možnosti digitálního zpracování obrazu. Technologicky jde o jeden z nejsložitějších komerčních softwarů na světě.

1. Jádro a programovací jazyky

Photoshop je postaven na extrémně optimalizovaném kódu, který musí v reálném čase zpracovávat gigabajty obrazových dat.

C++: Drtivá většina jádra je napsána v C++. To umožňuje přímý přístup k paměti a hardwarové akceleraci přes GPU, což je nezbytné pro filtry a vykreslování.

Pascal: Původní verze 1.0 byla napsána v Pascalu pro Apple Macintosh.

Lua: Adobe využívá skriptovací jazyk Lua pro některé části uživatelského rozhraní a logiku pluginů (podobně jako v Lightroomu).

2. Zpracování obrazu a GPU akcelerace

Moderní Photoshop nespoléhá pouze na CPU, ale masivně využívá grafickou kartu prostřednictvím technologií jako:

OpenGL / DirectX: Pro plynulé přibližování (zoom), otáčení plátna a vykreslování štětců.

Metal (Apple) / Vulkan: Moderní rozhraní pro maximální výkon na nejnovějším hardwaru.

Adobe Mercury Graphics Engine: Vlastní engine, který zajišťuje, že úpravy (jako zkapalnění nebo rozostření) vidí uživatel okamžitě.

3. Photoshop ve webovém prohlížeči (Revoluce WebAssembly)

Jedním z největších technologických úspěchů Adobe je portování Photoshopu do webového prohlížeče (verze představená v roce 2021).

Jak je to možné?

Adobe nemohlo přepsat miliony řádků C++ kódu do JavaScriptu. Místo toho využili:

1. **[[WebAssembly]] (Wasm):** Zkompilovali existující C++ kód Photoshopu do binárního formátu, který běží v prohlížeči téměř nativní rychlostí.
2. **Emscripten:** Toolchain, který umožnil přenést dekády vývoje algoritmů pro práci s vrstvami a výběry na web.
3. **Web Workers:** Pro paralelizaci výpočtů, aby UI zůstalo plynulé i při náročných operacích.

4. Umělá inteligence: Adobe Sensei a Firefly

V posledních letech se těžiště inovací přesunulo k Generativní AI:

Generativní výplň (Generative Fill): Využívá modely hlubokého učení (Deep Learning) k doplňování obrazu.

Neural Filters: Filtry, které dokáží změnit výraz tváře, omladit osobu nebo kolorovat černobílou fotku během vteřin. Tyto funkce často běží na specializovaných AI jádrech (Tensor cores) v moderních GPU.

5. Souborový formát PSD/PSB

Formát PSD (Photoshop Document) je de facto standardem, ale technicky je velmi komplexní:

Podporuje tisíce vrstev, masky, cesty, barevné profily a metadata.

PSB (Photoshop Big): Varianta pro extrémně velké soubory (až 300 000 pixelů v jakémkoli rozměru).

—

Víte, že? Zdrojový kód verze Photoshopu 1.0.1 z roku 1990 byl věnován Muzeu počítačové historie. Obsahuje přibližně 128 000 řádků kódu, z čehož 75 % tvoří Pascal a zbytek Assembler pro procesory Motorola 68000.

Související: C++, WebAssembly, GPU, Frontend