DPI, dither és raszterillesztés – útmutató
Technikai útmutató · Dióda lézer · LaserBase

DPI, dither és raszterillesztés –
amikor a pixelrács nem esik egybe a gép fizikai rácsával

Miért nem mindig a nagyobb DPI a jobb DPI?

Az alapkérdés

A lézerrendszerek raszterezési folyamatában két egymástól független döntés születik: mennyi legyen a felbontás, és hogyan nézzen ki a bináris pixelmintázat.

A felhasználó megad egy DPI értéket, a szoftver erre a rácsra futtatja a dithering algoritmust, majd az eredményt átadja a gépnek. A legtöbb rendszer viszont nem ellenőrzi, hogy a megadott felbontás valóban illeszkedik-e ahhoz, amit a motor léptetési karakterisztikája ténylegesen meg tud valósítani.

Egyszerű példa: 318 DPI esetén a sorintervallum kb. 0.0799 mm. Ha egy adott mechanika mellett ez nem egész számú motorlépésből áll össze, akkor a kért raszterpozíció nem esik pontosan a gép fizikai rácsára. Ilyenkor a mozgás a legközelebbi megvalósítható pozícióhoz igazodik.

A jó raszter nem csak képi kérdés. A dither pontszerkezetnek illeszkednie kell a gép fizikai léptetési rácsához is.

A fizikai rács

A gép nem folytonos pozíciókra mozog, hanem a motor, a szíjhajtás és a mikrolépés által meghatározott fizikai lépésközökre. Ez a GRBL-ben a $100 / $101 / $102 step/mm értékekben jelenik meg.

line interval = 25.4 / DPI
step size = 1 / step/mm
steps per line = line interval / step size
jó illeszkedés: steps per line = egész szám
Illeszkedő példa

80 step/mm esetén egy fizikai lépés 0.0125 mm.

254 DPI → 0.10 mm line interval

0.10 / 0.0125 = 8 step

Egész szám: a raszter sorpozíciói pontosan gépsorokra esnek.

Nem ideális példa

80 step/mm esetén egy fizikai lépés 0.0125 mm.

318 DPI → kb. 0.08 mm line interval

0.08 / 0.0125 = 6.4 step

Nem egész szám: a raszter sorpozíciói a gép lépéspozíciói közé esnek.

Fontos fogalom – pozíciókvantálás / snap-elés

Pozíciókvantálás, közérthetőbb nevén snap-elés, akkor történik, amikor a kívánt raszterpozíció nem esik pontosan a gép által megvalósítható fizikai pozícióra.

A gép nem tud tetszőleges, folytonos pozícióra mozogni. Csak a motorlépések, a mikrolépések és a mechanikai áttétel által meghatározott rácspontokra tud pozícionálni.

Ha egy rasztersor két ilyen fizikai pozíció közé esik, a rendszer a legközelebbi megvalósítható pozícióhoz igazítja a mozgást. Ez nem véletlenszerű hiba, hanem a léptetőrendszer természetes következménye.

A snap-elés hatása főleg finom tónusátmeneteknél látható: ismétlődő mintázathiba, szemcsésebb átmenet vagy enyhe tónustorzulás formájában.

Mi történik nem illesztett raszternél?

Ha a két rács nem esik egybe, a dither pontok egy része a gép által megvalósítható sorpozíciók közé kerül. A vezérlő és a mechanika ezeket a legközelebbi elérhető pozícióhoz kényszeríti. Ez a gyakorlatban pozíciókvantálást, vagy leegyszerűsítve snap-elési hatást okoz.

Ez rendszerszintű, ismétlődő hiba. Nem véletlenszerű zaj. A finom tónusátmenetekben látszik a legjobban, mert ott a dither pontok eloszlása különösen érzékeny a sorpozíciók pontosságára.

Nem illesztett raszter

A dither egy elvont pixelrácson fut. A gép viszont másik, fizikai lépésrácson tud mozogni.

Eredmény: snap-elés, tónustorzulás, ismétlődő mintázathiba.

Illesztett raszter

A dither azon a rácson fut, amelyre a gép valóban képes pozícionálni.

Eredmény: stabilabb tónusátmenet és jobb ismételhetőség.

Interaktív szemléltetés

Az alábbi demó ugyanazt a jelenséget mutatja, mint az útmutató: a dither sorok és a gép fizikai sorpozíciói vagy egybeesnek, vagy nem. A bemeneti értékek módosíthatók.

Step size
Line interval
Steps / line
Illesztett DPI
Eltérés
Nem illesztett kért DPI
kis eltérés
közepes eltérés
nagy eltérés
gépsor
Illesztett effektív DPI
dither pont = gép pozíció
gépsor
Fizikai méret illesztése
ideális sorszám = kért méret / real pitch
snapelt sorszám = round(ideális sorszám)
effektív méret = snapelt sorszám × real pitch
Kért fizikai magasság
Real pitch
Ideális sorszám
Snapelt sorszám
Effektív fizikai magasság
Mérethiba

Megjegyzés: a canvas-demó a sorpozíciók illeszkedését szemlélteti. A fizikai méret blokk a második LaserBase-lépést mutatja: az illesztett pitch alapján a teljes tárgyméret is egész sorszámra snap-elődik.

Gyakorlati táblázat

Az alábbi táblázat azt mutatja, hogy a gyakran használt line interval értékek hogyan illeszkednek különböző GT2 / motor konfigurációkhoz.

DPI Line interval 80 step/mm 100 step/mm 160 step/mm 200 step/mm

A tárgy fizikai mérete is része a raszternek

A raszter nem csak DPI-ből áll. LaserBase szempontból három adat együtt határozza meg a végleges kimenetet: a kért DPI, a gép step/mm értéke és a tárgy fizikai mérete milliméterben.

Miután a rendszer kiválasztotta a mechanikailag stabil pitch-et, azt is ellenőrizni kell, hogy az adott fizikai magasság hány ilyen sorból rakható ki. Ha a méret nem pontosan egész sorszámra esik, a teljes raszter végét is snap-elni kell.

stable pitch = stabil steps/line / step/mm
ideal line count = requested span / stable pitch
snapped line count = round(ideal line count)
effective span = snapped line count × stable pitch

Ezért az effektív DPI és az effektív fizikai méret együtt értelmezendő. A cél nem az, hogy automatikusan megtartsuk a kért DPI-t, hanem hogy a teljes raszter fizikailag végig stabil legyen: ugyanaz a pitch, egész lépések, egész sorszám, reprodukálható kimenet.

Konkrét példa – 1024×1024 px kép, 250×250 mm tárgy, 318 DPI

Adott:

Forráskép: 1024 × 1024 pixel
Kívánt fizikai méret: 250 × 250 mm
Kért minőség: 318 DPI

Először kiszámoljuk a 318 DPI valódi line interval értékét:

line interval = 25.4 / DPI
25.4 / 318 = 0.079874 mm

Ez azt jelenti, hogy a raszter sorok közötti távolság kb. 0.0799 mm.

Mechanika Step/mm Steps/line Stabil érték Effektív DPI Effektív méret
1.8° + GT2 20T 80 6.39 7 step 290.29 DPI 249.99 mm
1.8° + GT2 16T 100 7.99 8 step 317.5 DPI 250.00 mm
0.9° + GT2 20T 160 12.78 13 step 312.62 DPI 250.01 mm
0.9° + GT2 16T 200 15.97 16 step 317.5 DPI 250.00 mm

A 100 és 200 step/mm rendszereknél a 318 DPI gyakorlatilag tökéletesen illeszkedik. A 80 és 160 step/mm rendszereknél viszont snap szükséges, ezért az effektív DPI eltér a kért értéktől.

A forráskép natív mérete is fontos:

1024 px / 318 DPI = 3.22 inch
3.22 × 25.4 = 81.9 mm

Ez azt jelenti, hogy a kép natív 318 DPI mérete csak kb. 82 mm lenne. Ha a felhasználó 250 mm-es gravírozást kér, akkor a kép felnagyításra kerül.

A végső rasztert nem a forráskép eredeti DPI-je, hanem a mechanikai raster pitch határozza meg. A végső kimenetet a mechanikai rendszer fizikailag stabilan megvalósítható paraméterei határozzák meg.

LaserBase megközelítés

A LaserBase nem abból indul ki, hogy a felhasználó által megadott DPI biztosan fizikailag ideális. A rendszer először a gép léptetési adataiból kiszámítja, milyen sorpozíciók valósíthatók meg tisztán, és ehhez igazítja a rasztert.

Így az effektív DPI nem automatikusan megfelelő végső érték, hanem a gép mechanikai adottságaiból számolt eredmény. A dithering tehát nem egy elvont pixelrácson fut, hanem azon a fizikai rácson, amelyre a gép valóban képes pozícionálni.

Ugyanaz a fizikai rács + ugyanaz a dither + ugyanaz a bemenet = ismételhetőbb, kiszámíthatóbb kimenet.

A dithering minősége nem csak az algoritmustól függ.
Ugyanilyen fontos, hogy a bináris pixelmintázat illeszkedjen a gép fizikai léptetési rácsához.