Hogyan működik a fel és leskálázás?
Lehet az digitális kép, vagy hang;
Például van egy 1920x1080 felbontású kép/videó. Ha ezt kitesszük teljes képernyőn egy 3840x2160 felbontású képernyőre, akkor könnyű dolga van a szoftvernek, csak minden pixelt meg kell dupláznia. Ugyanez igaz lenne egy 960x540 felbontású képernyőn, ahol minden második pixelt ki kell hagynia.
Igen ám, de mi van akkor, ha ugyanezt a 1920x1080 felbontású tartalmat egy 2560x1440 vagy 1280x720-as képernyőre tesszük ki? Itt nem tudja se megduplázni, se megfelezni a felbontást. Itt hogyan működik a matek, mi alapján osztja, szorozza a pixeleket?
Most ugyanez digitális hang esetén;
A mintavételi frekvencia legyen mondjuk 44100Hz. Ha ezt felskálázzuk 88200Hz-re, akkor csak meg kell duplázni a mintákat, ha pedig leskálázzuk 22050Hz-re, akkor pedig minden második mintát kell kihagyni.
Na de, ha mondjuk 48000 vagy 24000Hz-re kell skálázni, akkor itt hogyan osztja és szorozza a mintákat?
Ez már foglalkoztat egy ideje, remélem, hogy itt tudja valaki ennek a működési elvét! :D
"Igen ám, de mi van akkor, ha ugyanezt a 1920x1080 felbontású tartalmat egy 2560x1440 vagy 1280x720-as képernyőre tesszük ki? Itt nem tudja se megduplázni, se megfelezni a felbontást. Itt hogyan működik a matek, mi alapján osztja, szorozza a pixeleket?"
A kép víszintes felbontását arányosan felsorozza (2560/1920 -> 1,333), és ugyanígy a függőleges felbontást is (1080/1440 -> 0,75). Így nyilván torzul a kép, mivel a pixelek nem egészértékkel szorzódnak.
Ha nem egész értékkel szorzódnak, akkor hogyan tudja megjeleníteni a képernyő, amelyben továbbra is egészértékű pixelek vannak?
Valahogy "összemosódnak" a pixelek?
Itt nem fizikai pixelekről beszélünk kérdező, azt hittem, ez egyértelmű. Ha egy 10x10 pixeles képet skálázol fel 20x20-ra, akkor sem változik a fizikai pixelek mérete, hanem csak pixelduplázás történik (majd pedig a projekció következő szakaszában történik a fizikai pixelekre való leképezés).
Az, hogy a kiszámított pixeleket hogyan képezi le a szoftver/hardver fizikai pixelekké, az egy külön témakör. Ott már számolni kell a pixelsűrűséggel, az esetleges HiDPI-vel, és különféle algoritmusokat lehet használni (bilinear interpolation, nearest neighbor, Lanczos, stb.).
Itt van ezekről egy rövid cikk: [link]
Itt pedig egy kép, a különféle algoritmusok interpolációs metódusainak összehasonlításához: [link]
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!