|
AIDGE IN SPACE
Banc d'essai de compression d'image apprise pour l'embarqué
|
Codec à base de réseau de neurones (transformées apprises + codage entropique). Plus de détails...
Fonctions membres publiques | |
| __init__ (self) | |
| Initialise le cache des modèles chargés. | |
| make_model (self, level) | |
| Architecture non entraînée du niveau (suffit au profilage, sans téléchargement). | |
| load_weights (self, model, level) | |
| Charge les poids du niveau dans le modèle. | |
| architecture (self, level) | |
| Texte court qui distingue deux architectures, par exemple « N=128, M=192 ». | |
| model (self, level) | |
| Modèle entraîné du niveau, chargé au premier appel puis gardé en cache (LRU). | |
| encoder (self, level) | |
| Transformée d'analyse g_a aux GDN gelées : ce qui part dans ONNX, Aidge et sur la carte. | |
| onboard_module (self, model) | |
| Tout ce qui s'exécute à bord pour produire le flux (hors codage arithmétique). | |
| run (self, img, level, mode, backend="torch", real_rate=True) | |
| Compresse puis décompresse une image. | |
| decode_latents (self, model, stream) | |
| Relit l'en-tête d'un flux de run() puis décode ses latents. | |
| Fonctions membres publiques hérités de aidge_in_space.codecs.base.Codec | |
| available (self) | |
| Indique si le codec peut s'exécuter sur cette machine. | |
| levels (self, mode) | |
| Niveaux proposés, du plus bas au plus haut débit. | |
| __repr__ (self) | |
| Représentation courte : classe et identifiant. | |
Attributs publics statiques | |
| int | in_ch = 3 |
| Canaux d'entrée du modèle (3 pour les modèles RGB, qui reçoivent une image grise répliquée). | |
| coding = FactorizedCoding() | |
| Codage entropique des latents (aidge_in_space.coding.LatentCoding). | |
| int | max_cached_models = 4 |
| Nombre de modèles chargés gardés en mémoire (cache LRU). | |
| Attributs publics statiques hérités de aidge_in_space.codecs.base.Codec | |
| str | key = "" |
| Identifiant unique, utilisé par la ligne de commande et dans les CSV. | |
| str | label = "" |
| Nom affiché. | |
| str | family = "" |
"Classique" ou "Appris" ; les codecs classiques sont listés en premier. | |
| str | description = "" |
| Description courte affichée dans l'onglet « Codecs et aide ». | |
| tuple | modes = ("gris", "rgb") |
Modes d'image acceptés : "gris" et/ou "rgb". | |
| tuple | backends = () |
| Moteurs d'exécution possibles pour l'encodeur (voir aidge_in_space.backends) ; vide = sans objet. | |
Attributs protégés | |
| _cache = OrderedDict() | |
| Modèles chargés, indexés par Level.value, du moins au plus récemment utilisé. | |
Codec à base de réseau de neurones (transformées apprises + codage entropique).
Une sous-classe fournit make_model() et load_weights() ; tout le reste est commun :
model.pad_multiple ;coding, puis décodés et vérifiés si le débit est réel ;Le modèle renvoyé par make_model() doit exposer in_ch, N, M, pad_multiple, downsampling, g_a, g_s, plus ce que demande coding (par exemple prior).
| aidge_in_space.codecs.base.LearnedCodec.architecture | ( | self, | |
| level ) |
Texte court qui distingue deux architectures, par exemple « N=128, M=192 ».
Deux niveaux de même architecture ont le même coût embarqué : l'onglet « Encodeur embarqué » ne profile qu'un niveau par architecture.
| level | Level du codec. |
Réimplémentée dans aidge_in_space.codecs.balle2017.Balle2017Codec, et aidge_in_space.codecs.bmshj2018.Pretrained2018.
| aidge_in_space.codecs.base.LearnedCodec.decode_latents | ( | self, | |
| model, | |||
| stream ) |
Relit l'en-tête d'un flux de run() puis décode ses latents.
| model | Modèle qui a produit le flux. |
| stream | Flux complet (en-tête HEADER + données). |
| ValueError | si la signature ou la version de l'en-tête ne correspond pas. |
| aidge_in_space.codecs.base.LearnedCodec.encoder | ( | self, | |
| level ) |
Transformée d'analyse g_a aux GDN gelées : ce qui part dans ONNX, Aidge et sur la carte.
| level | Level du codec. |
| aidge_in_space.codecs.base.LearnedCodec.load_weights | ( | self, | |
| model, | |||
| level ) |
Charge les poids du niveau dans le modèle.
| model | Modèle renvoyé par make_model(level). |
| level | Level du codec. |
| Exception | si les poids sont introuvables ou incompatibles. |
Réimplémentée dans aidge_in_space.codecs.balle2017.Balle2017Codec, et aidge_in_space.codecs.bmshj2018.Pretrained2018.
| aidge_in_space.codecs.base.LearnedCodec.make_model | ( | self, | |
| level ) |
Architecture non entraînée du niveau (suffit au profilage, sans téléchargement).
| level | Level du codec. |
Réimplémentée dans aidge_in_space.codecs.balle2017.Balle2017Codec, et aidge_in_space.codecs.bmshj2018.Pretrained2018.
| aidge_in_space.codecs.base.LearnedCodec.model | ( | self, | |
| level ) |
Modèle entraîné du niveau, chargé au premier appel puis gardé en cache (LRU).
| level | Level du codec. |
| aidge_in_space.codecs.base.LearnedCodec.onboard_module | ( | self, | |
| model ) |
Tout ce qui s'exécute à bord pour produire le flux (hors codage arithmétique).
| model | Modèle, entraîné ou non (le profilage n'a pas besoin des poids). |
| aidge_in_space.codecs.base.LearnedCodec.run | ( | self, | |
| img, | |||
| level, | |||
| mode, | |||
| backend = "torch", | |||
| real_rate = True ) |
Compresse puis décompresse une image.
| img | Image uint8, H x W (gris) ou H x W x 3 (rgb). |
| level | Level choisi parmi levels(mode). |
| mode | "gris" ou "rgb". |
| backend | Moteur de l'encodeur (codecs appris uniquement), clé de aidge_in_space.backends.BACKENDS. |
| real_rate | True : flux réellement produit ; False : débit estimé si le codec le permet. |
img. Avec real_rate, le flux (en-tête HEADER compris) est décodé et comparé aux latents de l'encodeur : le résultat est dans info["décodage exact"].
Réimplémentée à partir de aidge_in_space.codecs.base.Codec.