Return to search

Recording Rendering API Commands for Instant Replay : A Runtime Overhead Comparison to Real-Time Video Encoding

Background. Instant replay allows an application to highlight events without exporting a video of the whole session. Hardware-accelerated video encoding allows replay footage to be encoded in real-time with less to no impact on the runtime performance of the actual simulation in the application. Hardware-accelerated video encoding, however, is not supported on all devices such as low-tier mobile devices, nor all platforms like web browsers. When hardware-acceleration is not supported, the replay has to be encoded using a software-implemented encoder instead. Objectives. To evaluate if recording rendering API commands is a suitable replacement of real-time encoding when hardware-accelerated video encoding is not supported. Method. An experimental research method is used to make quantitative measurements of the proposed approach, Reincore, and a real-time encoder. The measured metrics is frame time and memory consumption. The Godot game engine is modified with modules for real-time video encoding (H.264, H.265 and VP9 codecs) and rendering API command recording and replaying. The engine is also used to create test scenes to evaluate if object count, image motion, object loading/unloading, replay video resolution and replay video duration has any impact on the runtime overhead of frame time and memory consumption. Results. The implemented rendering API command replayer, Reincore, appears to have minimal to no impact on the frame time overhead in all scenarios, except for a spike in increased frame time when the replayer initializes synchronization. Reincore show to be overall inferior to real-time video encoding in terms of runtime memory overhead. Conclusions. Overall, real-time encoding using the H.264 or H.265 show a similar result in frame time as recording rendering commands. However, command recording implies a more significant overhead of memory usage than real-time encoding. The frame time of using the VP9 codec for real-time encoding is inferior to recording rendering API commands. / Bakgrund. Återspelning tillåter applikationer att visa upp händelser utan att exportera en video för hela sessionen. Hårdvaruaccelererad videokodning tillåter video av återspelning att kodas i realtid med minimal påverkan på applikationens prestanda för simulering. Hårdvaruaccelererad videokodning stöds dock inte alltid på alla enheter eller plattformar, så som lågt presterande mobila enheter eller webbläsare. När hårdvaruacceleration inte stöds, måste videokodning ske med en mjukvarubaserad implementering istället. Syfte. Att utvärdera om återspelning genom inspelade renderingskommandon som fördröjer arbetet för videokodning är ett lämpligt alternativ till videokodning i realtid, när hårdvaruacceleration inte stöds. Metod. En experimentel forskningsmetod används för att samla kvantitativ mätdata från den föreslagna tillvägagången, Reincore, and en realtidsvidekodare. Mätdatan består av bildtid och minnesanvändning. Genom att modifiera spelmotorn Godot skapas moduler för realtids-videokodning samt inspelning av renderingskommandon. Spelmotorn används också för att skapa testscener för att utvärdera om antal objekt, bildrörelse, skapande av objekt under körning, upplösning eller videolängd har någon inverkan på bildtid eller minnesanvändning. Resultat. Den implementerade renderingskommando-inspelaren, Reincore, visar minimal påverkan på bildtid, med undantag för en temporär ökning när återspelaren initierar synkronisering. Reincore visar sig vara underlägsen till realtids-videokodning när det gäller minnesanvändning. Slutsatser. Realtids-videokodning med H.264 eller H.265 som video-codec visar övergripande bättre resultat för återspelning än renderingskommandoinspelning, när det gäller både bildtid samt minnesanvändning. Bildtiden för VP9 video-codec för realtids-videokodning visar däremot sämre resultat än renderingskommandinspelning.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:bth-19622
Date January 2020
CreatorsHolmberg, Marcus
PublisherBlekinge Tekniska Högskola, Institutionen för datavetenskap
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0021 seconds