Je travaille sur une application qui affiche plusieurs vidéos à la fois. Les vidéos sont stockées sous forme de répertoires pleins de fichiers image. Pour chaque numéro d'image, il y a jusqu'à 9 images qui doivent être chargées à partir du disque. Je voudrais implémenter la mise en cache et la lecture anticipée pour les images. Ce serait assez simple, mais la complication est que le système de fichiers (parfois un réseau FS) est loin d'être assez rapide pour afficher chaque image. La readahead doit donc choisir les images qu'elle va essayer de charger et émettre uniquement des requêtes read() pour ces images. En outre, il serait préférable de prendre en compte quelles images sont déjà mises en cache, lors du choix des images à charger.Mise en cache et lecture d'images vidéo non fiables
Je suis venu avec un algorithme glouton qui ira bien, mais je me demandais si c'est un problème qui a été étudié, et il existe des algorithmes meilleurs/optimaux là-bas.
Je suppose que le temps est mesuré par rapport à la fréquence d'images, pas aux secondes, pour faciliter le pseudocode.
load_time_per_image = how long it takes to load an image
images_per_frame = the number of images to display simultaneously
worst_time = images_per_frame * load_time_per_image
def decide_next_frame_to_load:
for each frame from now to now + worst_time:
loadable = (frame - now)/load_time_per_image
if number_of_images_cached(frame) > images_per_frame - loadable:
# this frame is the first one it's possible to load in time.
return frame
Quelqu'un a des suggestions? Merci pour votre aide! -Thomas
C'est un petit monde après tout ... –