120fps — 120 képkocka másodpercenkénti gyakoriság, amely 120 Hz-es kijelzőkön érhető el, ahol minden képkocka 8,3 ms-ig tart. Az Apple WWDC 2023 Session szerint a ProMotion automatikusan 24 és 120 Hz között kapcsolja a frekvenciát a simaság és az energiafogyasztás egyensúlyához. 8,3 ms — ez kétszer kevesebb, mint a standard költségvetés, ami komoly renderelési optimalizálást igényel.
Főbb pontok
120fps — a szabványhoz képest megduplázott képkockasebesség, amelynél a kijelző másodpercenként 120-szor frissíti a képet. Minden képkocka időkerete 8,33 ms — fele a 60fps-nek. Ez azt jelenti, hogy a GPU-nak és a CPU-nak kétszer gyorsabban kell feldolgoznia a grafikát, és minden algoritmus, amely 16,7 ms alatt működik 60fps-nél, 120fps-nél csak kétszeres hatékonysággal fér bele.
Az első mobileszköz 120 Hz-es kijelzővel a Razer Phone (2017) volt Sharp IGZO panellel. Az Apple a 120 Hz-t az iPad Pro-ban (2017) vezette be ProMotion néven, iPhone-ban pedig csak 2021-ben az iPhone 13 Pro-ban. Androidon a 120 Hz 2020-tól vált tömegessé: Samsung Galaxy S20, OnePlus 8 Pro, Xiaomi Mi 10. Ma a 90–120 Hz a zászlóshajó eszközök szabványa, és az LTPO technológia lehetővé teszi a frekvencia dinamikus változtatását.
A 120fps felhasználói érzékelése nem annyira a rángások hiányában különbözik a 60fps-től, mint inkább az azonnali válasz érzésében — a kurzor, görgetés, animációk minimális késleltetéssel követik az ujjat. Ezt az érzést gyakran „folyékony" vagy „olajos" képernyőként írják le. A 120 Hz használata után a 60 Hz-re való visszatérés szubjektíven lassulásként érzékelhető, még akkor is, ha objektíven nincs képkocka-kihagyás.
A 120 Hz-es kijelző fizikailag másodpercenként 120-szor frissíti a pixeleket, dupla frekvencián küldve jelet az MIPI DSI/DPI buszon keresztül. Minden pixel 8,3 ms-onként kap új fényerőértéket. OLED panelek esetében ez azt jelenti, hogy az egyes szubpixelek kibocsátási ideje lerövidül, ami erősebb háttérvilágítást igényel a kép azonos fényerejének fenntartásához.
LTPO (Low-Temperature Polycrystalline Oxide) — OLED kijelzők gyártási technológiája, amely egyesíti az LTPS-t (gyors kapcsolás) és az IGZO-t (alacsony energiafogyasztás statikus állapotban). Az LTPO lehetővé teszi a kijelző számára, hogy további energiafelhasználás nélkül dinamikusan változtassa a frissítési frekvenciát 1 és 120 Hz között. Always-On Display módban a frekvencia 1 Hz-re csökken, görgetéskor 120 Hz-re nő. Ez akár 30% energiamegtakarítást jelent a folyamatosan 120 Hz-en működő kijelzőkhöz képest.
Frame pacing — a képkockák közötti intervallumok egyenletessége, a legfontosabb paraméter 120fps-nél. Ha 60fps-nél a 2–3 ms különbség a képkockák között észrevehetetlen, 120fps-nél ugyanez az abszolút különbség a képkocka időtartamának 25%-át teszi ki, és rángásként érzékelhető. A sima 120fps-hez minden képkockának 8,3 ms ±1 ms-on belül kell lennie. Az olyan eszközök, mint a FrameRate az Xcode Instruments-ben, nemcsak az átlagos FPS-t mutatják, hanem az intervallumok hisztogramját is a frame pacing értékeléséhez.
// iOS — 120 Hz kijelző észlelése CADisplayLink segítségével
func checkDisplayRefreshRate() {
let link = CADisplayLink(target: self,
selector: #selector(step))
if let preferredRate = link?.preferredFrameRateRange {
print("Max. frekvencia: \(preferredRate.maximum) Hz")
}
}
ProMotion — az Apple védjegye a 120 Hz-ig terjedő adaptív frissítési frekvenciájú kijelzőkhöz. Először az iPad Pro 10,5-ben (2017) mutatták be, majd az iPhone 13 Pro-ban (2021) és a MacBook Pro-ban (2021) jelent meg. A ProMotion nem csak 120 Hz — ez intelligens frekvenciakezelés: a rendszer elemzi a tartalom típusát, és a teljesítmény és energiafogyasztás optimális egyensúlyához kapcsolja a frekvenciát.
A ProMotion négy módot támogat: 24 Hz statikus tartalomhoz és 24fps videóhoz, 30 Hz 30fps videóhoz, 60 Hz UI navigációhoz és 120 Hz görgetéshez és játékokhoz. A módok közötti váltás egyetlen képkocka alatt (8,3 ms) történik, és észrevehetetlen a felhasználó számára. A fejlesztő a preferredFrameRateRange segítségével a CADisplayLink-ben befolyásolhatja a frekvenciaválasztást, de a végső döntést a rendszer hozza a tartalom elemzése alapján.
Az Apple iOS 15-től kezdve biztosít API-t a ProMotionmal való munkához. A CADisplayLink.preferredFrameRateRange lehetővé teszi a kívánt frekvenciatartomány beállítását. A UIScene.ActivationConditions befolyásolhatja a frekvenciát a jelenetek közötti átmeneteknél. A Metal rendereléshez a CAMetalLayer.displaySyncEnabled-nek true-nak kell lennie a ProMotionmal való szinkronizáláshoz. Ha az alkalmazás nincs optimalizálva 120fps-hez, az iOS automatikusan 60 Hz-re kapcsolja, ami az Xcode GPU Report szakaszában látható.
// iOS — 120fps kérése játékmódhoz
let displayLink = CADisplayLink(
target: self,
selector: #selector(gameLoop)
)
if #available(iOS 15.0, *) {
displayLink?.preferredFrameRateRange =
CAFrameRateRange(minimum: 80,
maximum: 120,
preferred: 120)
}
displayLink?.add(to: .current,
forMode: .default)
Optimalizálás 120fps-hez — nem csupán a kód kétszeres felgyorsítása, hanem a renderelési architektúra újragondolása. A műveletek, amelyek 60fps-nél 16,7 ms-ba fértek, most 8,3 ms alatt kell végrehajtani. Ez a csővezeték minden szakaszára hatással van: CPU-előkészítés, GPU-renderelés és rendszerhívások.
120fps-nél a képkockánkénti draw calls számának kétszer kisebbnek kell lennie, mint 60fps-nél, hogy a GPU terhelése változatlan maradjon. Ha 60fps-nél 400 draw calls megengedett, 120fps-nél — legfeljebb 200. Használjon textúra atlaszokat, mesh-egyesítést és GPU-instancingot a renderelési hívások csökkentéséhez. Metal esetén használjon Indirect Command Buffers-t, Vulkan esetén Secondary Command Buffers-t a parancsok párhuzamos írásához.
A shaderek — egy másik kritikus tényező. A többszörös textúramintavételezéssel és matematikai műveletekkel rendelkező összetett pixel shaderek könnyen meghaladhatják a 8,3 ms-os keretet. Használjon alacsony pontosságú shadereket (half float helyett), csökkentse az utasítások és textúraminták számát. Mobil GPU-kon (Apple A17, Snapdragon 8 Gen 3) minden textúramintavételezés 2–4 ciklusig tart, és 120fps-nél ez szűk keresztmetszetté válhat.
120fps-nél a main thread-nek 4–5 ms alatt kell előkészítenie a képkockát, hogy időt hagyjon a GPU-nak a renderelésre. Bármely szinkron művelet a main thread-en — adatbázis olvasása, JSON elemzése, képek betöltése — rángást okoz. Helyezze át az összes nehéz műveletet háttérszálakra, használjon aszinkron API-kat és szálkészleteket. iOS-ben a DispatchQueue .userInteractive qualityOfService-szel csak a kritikus renderelési kód számára legyen fenntartva.
| Komponens | 120fps keret | 60fps keret |
|---|---|---|
| CPU (main thread) | 4 ms | 8 ms |
| GPU renderelés | 4 ms | 8 ms |
| Kompozit | 0,3 ms | 0,7 ms |
| VSync várakozás | 0–2 ms | 0–5 ms |
A 120fps és 60fps összehasonlítása nem korlátozódik a simaság megduplázódására. A különbség a tartalom típusától függően eltérően érzékelhető. Görgetéshez és UI animációkhoz a 120fps szubjektíven „reagálóbb" felületet ad. Játékoknál a 120fps előnye a mozgás elmosódásának csökkenésében és a gyors objektumok pontosabb követésében nyilvánul meg.
Energiafogyasztás — a fő kompromisszum. A 120fps 30–50%-kal több energiát fogyaszt, mint a 60fps azonos kijelzőfényerő mellett. Ez azt jelenti, hogy egy 4000 mAh-s akkumulátoron egy óra játék 120fps-en körülbelül 25–30%-kal gyorsabban meríti az akkumulátort. Az LTPO-kijelzők részben megoldják a problémát a frekvencia statikus jelenetekben 1 Hz-re csökkentésével, de aktív használatnál (görgetés, játékok) a frekvencia maximumon marad.
A 60fps és 120fps közötti választás a fejlesztő prioritásaitól függ. Közösségi hálózatok, üzenetküldők és híralkalmazások esetében a 120fps nem nyújt jelentős előnyt — az alapvető interakció (olvasás, szövegbevitel) nem profitál a szuper-simaságból. Játékok, térképek, grafikus szerkesztők és intenzív animációjú alkalmazások esetében a 120fps versenyelőnnyé és minőségi jelzővé válik.
A 120fps tesztelése speciális megközelítést igényel: a standard 60fps metrikák nem mutatják a frame pacing problémáit 120 Hz-en. Használjon nagy sebességű kamerát (120+ fps) a képernyő tényleges viselkedésének rögzítéséhez vagy a platform beépített eszközeit — Xcode Metal Capture iOS-hez és AGI (Android GPU Inspector) Androidhoz. Ezek az eszközök mutatják az egyes képkockák pontos idejét, beleértve a VSync várakozást is, és segítenek a mikro-rángások azonosításában.
Gyakran ismételt kérdések
Nem mindig. A 120fps kétszer annyi energiát és számítási erőforrást igényel. Statikus tartalomhoz és egyszerű UI-hoz a 60fps elegendő. A 120fps előnye dinamikus jelenetekben észlelhető: görgetés, játékok, átmeneti animációk.
Használja a Xcode Instruments (Core Animation sablon) vagy Android Studio Profiler alkalmazást. iOS-ben ellenőrizze a CADisplayLink.timestamp-et — a hívások közötti intervallumnak körülbelül 8,3 ms-nak kell lennie. Androidban kapcsolja be a Show refresh rate lehetőséget a Developer Options-ben.
A kijelző kétszer olyan gyakran frissíti a pixeleket, a GPU kétszer annyi renderelési műveletet végez, a CPU kétszer annyi képkockát dolgoz fel. Minden művelet energiát fogyaszt. Az LTPO-kijelzők csökkentik a frekvenciát statikus állapotban, de aktív használatnál az energiafogyasztás a frekvenciával arányosan nő.
Igen. Az Android 11-től kezdve a rendszer támogatja a különböző frissítési frekvenciákat. A fejlesztő kérhet 120 Hz-et a WindowManager.setPreferredRefreshRate segítségével. Azonban nem minden eszköz tartja stabilan a 120fps-t — GPU renderelés optimalizálása szükséges.
Vaktesztben a legtöbb felhasználó észreveszi a különbséget görgetésnél és animációknál. A szokásos használatnál (közösségi média, videó, üzenetküldők) a különbség azonban szubjektíven kicsi. A 120 Hz-hez való hozzászokás után a 60 Hz-re való visszatérés lassulásként érzékelhető.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is