Brevet FR2925189A1 — publié le 20090619

L'invention concerne un dispositif et une méthode de gestion de mémoire et un dispositif de décodage. L'invention concerne plus particulièrement l'organisation du stockage 5 de données vidéo dans des mémoires. En effet, les différents standards de codage permettent bien souvent de coder les images de manière adaptative, se basant sur des analyses du contenu pour définir la manière dont seront codées les données de l'image. Ainsi, par exemple selon la quantité de mouvement observée, les macroblocs 10 des images sont codées de manière optimale en mode trame (� field � en anglais) lorsqu'il y a beaucoup de mouvement et en mode image (� frame � en anglais) lorsqu'il y a peu de mouvement. Ceci est notamment le cas pour la norme de codage H.264. Ainsi, au sein d'une image, il est possible d'avoir différents modes de 15 codage. Ceci peut poser des problèmes d'efficacité lors de la relecture des données pour le décodage. Il est en effet nécessaire au cours du décodage de trames paires ou impaires ou d'images d'accéder aux données précédemment décodées et enregistrées temporairement en mémoire pour permettre le décodage ultérieur d'autres images ou trames, de telles images 20 utiles pour le décodage d'autres images s'appelant images de référence. Pour être capable de relire les données en mémoire, il faut faire un choix lors de l'enregistrement, soit on enregistre les données en mode image, soit on les enregistre en mode trame, c'est-à-dire la trame paire et la trame impaire séparément. Quelque soit le choix qui est fait, lors de la relecture des 25 données, lorsque le mode de relecture nécessite un accès différent du mode dans lequel les données sont enregistrées, on n'accèdera pas de manière efficace aux données si les données sont enregistrées en mode trame et qu'on souhaite les relire en mode image et inversement. 30 D'autre part, il existe également des contraintes au niveau des mémoires de stockage utilisées en parallèle avec les décodeurs. Certaines spécificités de ces mémoires et notamment des mémoires de type DDR (acronyme anglais de � double data rate �), font que l'on ne peut accéder en parallèle à toutes les zones. Il est donc pénalisant de stocker les données de manière aléatoire dans la mémoire. Une mémoire de type DDR comprend un certain nombre de pages, chaque page comprenant une pluralités de banques. A un instant t, on ne peut avoir qu'une seule page ouverte à la fois par banque. Lors d'un accès à une banque, celle-ci est chargée dans une sorte de mémoire cache qui comprend un espace mémoire divisé en une pluralité d'espaces correspondant chacun à la taille d'une banque. Ceci est représenté sur la figure 5. Sur cette figure est représentée une mémoire de type DDR contenant n pages. Chaque page est découpée en 4 banques et lors de l'ouverture d'une page, on charge la banque accédée dans une sorte de cache dont l'accès est rapide et qui fait partie intégrante de la mémoire DDR. On constate donc que lorsque l'on accède à la banque 0 de la page x puis que l'on veut ensuite accéder à la banque 0 de la page y, on doit remplacer les données de la banque 0 de la page x par les données de la banque 0 de la page y. Ceci nécessite un temps d'accès long comparativement à l'accès simultané de données déjà présentes dans le cache. Ainsi l'invention propose une méthode d'agencement des données dans une mémoire qui permet d'optimiser les accès aux données enregistrées en vue par exemple, mais non limitativement, de leur accès lors du décodage de trames ayant besoin de ces données lors de leur décodage. A cet effet, l'invention propose un dispositif de gestion de mémoire comprenant une mémoire destinée à enregistrer des images, la mémoire comprenant au moins deux parties indépendantes pouvant être ouvertes simultanément. Selon l'invention, l'une au moins des parties de la mémoire est destinée à l'enregistrement des trames impaires et l'autre au moins une partie de la mémoire est destinée à l'enregistrement des trames paires. Ainsi, il est rendu possible d'accéder rapidement à des données des deux trames. Ceci est particulièrement avantageux lorsque lors d'un décodage des données on utilise des données de la mémoire contenues à la fois dans les trames paires et dans les trames impaires. L'invention ne se limite bien entendu pas à l'utilisation de cette mémoire à des fins de décodage. Elle peut également être utile par exemple pour de l'affichage. Selon un mode de réalisation préféré, la mémoire étant architecturée de manière à alterner les au moins deux parties indépendantes, le dispositif comprend des moyens d'enregistrer la première trame paire en début de première partie et d'enregistrer la trame correspondante impaire en début de seconde partie et de remplir ainsi alternativement les deux parties, les trames paires étant enregistrées l'une après l'autre dans la première partie et les trames impaires étant enregistrées l'une après l'autre dans la seconde partie. Préférentiellement, la mémoire étant organisée en une pluralité m de parties j appelées pages, chaque page étant organisée en une pluralité de n sous-parties i numérotées de 1 à n, appelées banques, les moyens d'enregistrer la trame paire l'enregistrent au début d'une banque i d'une page j et enregistrent la trame impaire au début d'une banque k d'une page I telle que k est différent de i et que I est supérieur à j. De manière avantageuse, les j pages sont organisées séquentiellement et l'espace mémoire entre la banque k de la partie I et la banque i de la partie j est suffisant pour contenir au moins une trame. De cette manière, on évite l'ouverture fréquente de pages mémoires et on permet des accès rapides aux données. Préférentiellement, l'espace mémoire entre la page I et la page j est dimensionné de manière à enregistrer une trame au format haute définition. Ceci permet une gestion efficace de la mémoire en évitant de faire des 30 sauts de pages pour enregistrer une même trame. De manière avantageuse, lorsque l'espace mémoire entre la partie I et la partie j est supérieur à la taille d'une trame, le dispositif comprend des25 moyens d'enregistrer des données de bruit relatives à ladite trame dans ledit espace mémoire après la première trame. Ainsi, même si l'espace est dimensionné pour accueillir une trame de tailles maximale, telle une trame au format haute définition, lorsque l'on enregistre une trame de définition inférieure, on occupe l'espace libre à la fin de cette trame dans la mémoire. De plus les données de bruit étant relatives à la trame, elles sont enregistrées dans un espace contigu, ce qui rend également plus rapide leur accès. Préférentiellement, la mémoire est de type DDR. Plusieurs générations de DDR existent. L'invention concerne bien entendu toutes les générations de DDR, les DDR-1 comme les DDR-2. 15 Selon un autre aspect, l'invention concerne également un dispositif de décodage comprenant un dispositif de gestion de mémoire selon l'invention et des moyens de décodage, la mémoire étant destinée à enregistrer des trames dites de référence décodées par les moyens de décodage et utilisées par 20 lesdits moyens de décodage lors du décodage de trames suivantes. Lors d'un décodage de données, les décodeurs utilisent des images précédemment décodées pour décoder l'image courante. Il est donc important que les décodeurs accèdent rapidement aux données en mémoire pour que le 25 décodage se fasse rapidement. Ceci est d'autant plus important lors de modes spéciaux (� trickmodes � en anglais). Selon un mode de réalisation préféré, les données sont codées selon la norme H.264 ou selon la norme MPEG-2. L'invention concerne également un procédé de gestion de mémoire d'une mémoire comprenant au moins deux parties indépendantes pouvant être ouvertes simultanément. Selon l'invention, le procédé comprend les étapes de : 30 - enregistrement des trames paires dans une première des deux parties de ladite mémoire, -enregistrement des trames impaires dans une seconde des deux parties de ladite mémoire. L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en référence aux figures annexées sur lesquelles : 10 - les figures 1 a et 1 b représentent respectivement les images en mode progressif et en mode entrelacé, - la figure 2 représente un dispositif selon un mode de réalisation préféré de l'invention, - la figure 3 représente l'organisation de la mémoire selon un mode 15 simplifié de réalisation de l'invention, - la figure 4 représente l'organisation de la mémoire selon un second mode de réalisation de l'invention, - la figure 5 illustre le fonctionnement classique d'une mémoire de type DDR. 20 La figure 1 a représente une image en mode progressif où une trame correspond à une image entière, une ligne paire succède à une ligne impaire dans la trame. La figure 1 b représente une trame en mode entrelacé, une moitié 25 d'image est transmise à chaque trame : lignes paires pour la première image et lignes impaires pour la deuxième image. Le signal est donc composé de trames paires et impaires se succédant. L'invention s'applique plus particulièrement aux dispositifs de décodage de données vidéo. Plus particulièrement, selon un mode de 30 réalisation préféré de l'invention, l'invention concerne un type de codage/décodage conforme au standard H.264. La figure 2 représente un dispositif 1 de type enregistreur personnel (PVR) destiné à s'interfacer avec un écran d'affichage 7 et recevant des données codées selon la norme H.264 provenant d'un diffuseur de contenu,5 soit par le câble, le satellite, le réseau terrestre ou selon le protocole IP. Le dispositif représenté en figure 1 comprend d'autres modules non représentés en figure 1 et non indispensables à l'explication de l'invention. Le dispositif 1 est un dispositif comprenant les éléments caractéristiques des enregistreurs personnels connu de l'homme du métier. La partie nouvelle et inventive de cet enregistreur personnel se situant au niveau de la gestion de la mémoire 3 comme décrit ci-après. Un tel dispositif 1 reçoit un flux transport (TS) comprenant des données encodées au format H.264. Il est destiné à décoder les données soit pour les enregistrer sur un moyen de stockage 2 (pouvant être de type disque dur, carte mémoire, stockage holographique ou blue-ray), soit pour les visualiser directement sur un écran de visualisation 7. Les données enregistrées peuvent ainsi être visualisées par la suite, à la demande de l'utilisateur. L'invention concerne plus particulièrement le décodage des données et l'accès à la mémoire DDR 3. Un démultiplexeur 8 reçoit un flux de données comprenant plusieurs programmes (MPTS) et fournit à partir de ce flux des flux comprenant un seul programme (SPTS), soit pour enregistrer ce programme, soit pour le visualiser en direct. Un tel démultiplexeur 8 extrait également des informations de service associées au programme afin de le visualiser en temps et en heure ainsi que d'autres informations utiles à l'exploitation de ce programme. Un processeur 6 est en charge de contrôler les flux de données dans le PVR. Ses interconnexions avec les autres modules ne sont pas représentées sur la figure 2. Le décodeur 4 est conforme à la norme de codage/décodage H.264. Les données encodées selon la norme H.264 sont codées de manière complexe nécessitant lors de leur décodage de nombreux accès à la mémoire DDR 3. En effet, lorsqu'une image comprend des régions en mouvement et des régions fixes (statiques), il est plus efficace de coder les régions fixes en mode image (� frame � en anglais) et les régions en mouvement en mode trame (� field � en anglais). Le mode image consiste à combiner deux trames ensemble et à les coder comme une seule image. Le mode trame consiste à ne pas combiner deux trames et à les coder indépendamment. Ceci est représenté sur les figures 1 a et 1 b. Le mode de prédiction MBAFF (acronyme anglais de � Macro Block Adaptive Frame/Field �) est l'évolution d'une prédiction image/trame au niveau image vers une prédiction image/trame au niveau macro-bloc. La norme H.264 permet de coder les données selon le mode MBAFF. Ainsi, pour une même image, certains macro-blocs sont codés en mode image et certains sont codés en mode trame. Selon la norme H.264, les images sont codées en intra ou en inter. Les images inter nécessitent un certain nombre d'images de références lors de leur décodage. Ceci signifie des accès fréquents à la mémoire 3 dans laquelle sont stockées les images de référence après décodage. Selon la structure de GOP (acronyme anglais de � Group Of Pictures �), le nombre d'images de références peut varier. Il est important de pouvoir accéder à ces images de référence rapidement pour garantir la rapidité et l'efficacité du décodage au niveau du décodeur 4. Ceci est d'ailleurs encore plus crucial lorsque les données sont rejouées en avance ou arrière rapide où les images doivent être décodées très rapidement. Ainsi, les données sont enregistrées dans la mémoire DDR 3 de manière particulièrement avantageuse. Une telle organisation est représentée sur les figures 3 et 4. La figure 3 donne une représentation très schématique de l'organisation de la mémoire DDR selon un premier mode simplifié de réalisation préféré de l'invention. Une mémoire de type DDR est organisée en pages mémoire, et chaque page mémoire est organisée en plusieurs banques de données. Une des caractéristiques de ces mémoires est que l'on ne peut pas passer de la banque j de la page i à la banque j de la page k avec k différent de i très rapidement. De plus, il est très coûteux en temps de changer de page mémoire au sein d'une même banque comme on peut le visualiser sur la figure 5. Selon la figure 3, la mémoire DDR comprend 4 banques de données, seule une page est représentée. On commence l'enregistrement de la trame paire en banque 0 et l'enregistrement de la trame impaire en banque 2. Ainsi, lorsque l'on souhaite accéder à cette trame de référence pour le décodage d'une image suivante dans le flux de données, on accède soit à des données de la trame paire, soit à des données de la trame impaire soit à des données des deux trames et dans ce dernier cas avec un temps d'accès rapide entre les deux trames car les deux trames sont enregistrées dans des banques différentes et peuvent donc être accédées rapidement car elles sont toutes les deux dans des pages ouvertes. Une page étant ouverte lorsqu'elle est en cours d'accès. Une page n'est pas ouverte lorsque l'accès courant ne se fait pas dans cette page là. Ainsi, par exemple, si la trame courante à décoder est codée en mode MBAFF, le décodage de certains macro-blocs nécessite l'accès à la trame impaire de référence ou paire de référence et le décodage de certains autres macro-blocs nécessite l'accès aux deux trames rapidement. En codage H.264, pour décoder un macro-bloc 8*8, une fenêtre de prédiction 1313 est nécessaire. Pour un macrobloc 8*8 codé en mode image, le décodeur 4 accède en banque 0 à un ensemble de données correspondant à 13 pixels sur 6 pixels et en banque 2 à un ensemble de données correspondant à 13 pixels sur 7 pixels. Le décodeur accède à la mémoire DDR en mode salve (burst en anglais) et ainsi optimise les accès à la mémoire. Pour un macrobloc 8*8 codé en mode trame, correspondant à une 25 trame paire, le décodeur 4 accède en banque 0 à un ensemble de données correspondant à 13 pixels sur 13 pixels. Pour un macrobloc 8*8 codé en mode trame, correspondant à une trame impaire, le décodeur 4 accède en banque 2 à un ensemble de données correspondant à 13 pixels sur 13 pixels. 30 Il est clair que l'homme du métier peut envisager une autre organisation que le stockage en banque 0 de la trame paire et le stockage en banque 2 de la trame impaire selon le nombre de banques contenues par page, notamment en fonction de la taille des trames ou des images il est possible de n'avoir qu'un offset d'une banque entre la trame paire et la trame impaire (ce qui revient à stocker la trame paire en banque 0 et la trame impaire en banque 1). Dans d'autres mémoires il est également possible d'avoir plus d'un offset de deux banques entre la trame paire et la trame impaire correspondante. Le nombre de pages séparant les trames est également dimensionné en fonction de la taille des images, donc de leur format. Aujourd'hui, le format exigeant la taille maximale est le format haute définition mais l'invention s'adresse également à des formats à venir qui pourraient nécessiter un espace mémoire plus important de stockage pour chaque trame. On constate donc que la mémoire comprend au moins deux banques indépendantes pouvant être ouvertes simultanément, et au moins une des banques de la mémoire est destinée à l'enregistrement des trames impaires et l'autre au moins une banque de la mémoire est destinée à l'enregistrement des trames paires. On constate également que la mémoire étant architecturée de manière à alterner les au moins deux parties indépendantes, le dispositif 1 comprend des moyens d'enregistrer la première trame paire en début de première banque et d'enregistrer la trame correspondante impaire en début d'une seconde banque et de remplir ainsi alternativement les deux banques, les trames paires étant enregistrées successivement dans la première banque et les trames impaires étant enregistrées successivement dans la seconde banques. Selon la taille des banques et des images, on peut également envisager qu'une banque ne puisse contenir qu'un seul macro-bloc si sa taille est petite et si la taille d'une banque est également petite. On peut donc par exemple enregistrer les macroblocs contenant des lignes paires dans la banque 0, les macroblocs contenant les lignes impaires dans la banques 2, en laissant toujours un offset de deux macroblocs entre les banques. On enregistre ainsi deux macroblocs de trame paire en banques 0 et 1 et deux macroblocs de lignes impaires en banques 2 et 3. On peut également ne laisser qu'un offset d'un macrobloc et dans ce cas, on enregistre un macrobloc de trame paire en banque 0, un macrobloc de trame impaire en banque 1, un macrobloc de trame paire en banque 2, un macrobloc de trame impaire en banque 3. La figure 4 représente une organisation de la mémoire DDR montrant plusieurs pages de cette mémoire. Chaque page comprend 4 banques. Selon ce mode de réalisation, on commence à écrire les données de la première trame paire de référence en banque 0 de la page O. On commence à écrire les données de la première trame impaire de 10 référence en début banque 2 de la page 21. L'espace mémoire laissé entre les deux trames paires et impaires correspondantes est suffisant pour contenir une trame au format haute définition Une trame de définition standard comprend 720 lignes par 576 pixels. 15 Ainsi, si l'on garde toujours un espace mémoire de 21 pages pour la trame paire, on aura plus de place libre entre les deux trames correspondantes, paire et impaire dans le cas du stockage d'une trame SD. On constate donc que la mémoire étant organisée en une pluralité m 20 de parties j appelées pages, chaque page étant organisée en une pluralité de n sous-parties i numérotées de 1 à n, appelées banques, les moyens d'enregistrer la trame paire l'enregistrent au début d'une banque i d'une page j et enregistrent la trame impaire au début d'une banque k d'une page I telle que k est différent de i et que I est supérieur à j. 25 Afin d'éviter tout problème lors du stockage des trames de références, l'espace prévu entre la trame paire et la trame impaire correspondante est donc surdimensionné pour enregistrer une trame quelle soit paire ou impaire. De manière avantageuse, on enregistre alors après avoir enregistré la trame 30 paire dans la mémoire, des données de bruit transmises dans le flux de données et générées lors de l'encodage. Ces données, appelées � film grain � permettent lors de la visualisation des données de reproduire le grain de l'image. Ces données sont encodées et transmises dans des messages de type � Supplemental Enhancement Information � (SEI) définis dans la norme H.264. Lors du décodage, ces données sont extraites du flux reçu et également enregistrées pour être transmises avec les données images décodées au dispositif de visualisation 7. Dans un mode de réalisation préféré de l'invention, on enregistre les données de bruit uniquement dans l'espace mémoire entre les deux trames représentatives de la composante chrominance. On enregistre alors les données de bruit relatives à la luminance dans l'espace laissé libre entre la trame paire et la trame impaire et on enregistre les données relatives à la chrominance après la trame impaire et avant la trame suivante. Ainsi un espace est laissé libre entre les deux trames représentatives de la luminance. Cet espace peut être utilisé pour d'autres données relatives à l'affichage par exemple. Pour chaque trame de l'image, on a des données de luminance et de chrominance par pixel. Ainsi, la description ci-dessus fait référence à l'enregistrement des données de luminance (Y) ou des données de chrominance (Cr, Cb) sans distinction. Il y a donc par trame, deux espaces mémoires distincts, l'un pour la luminance, un second pour la chrominance Cr/Cb, les deux composantes de chrominance étant enregistrées ensemble. Quelque soit la composante, le schéma de stockage décrit précédemment s'applique pout chacune des trames. L'invention s'applique également à un codage de type MPEG-2. Revendications 1. Dispositif de gestion de mémoire comprenant une mémoire (3) destinée à enregistrer des images, ladite mémoire comprenant au moins deux parties indépendantes pouvant être ouvertes simultanément, ledit dispositif (1) étant caractérisé en ce que l'une au moins des parties de ladite mémoire est destinée à l'enregistrement des trames impaires et l'autre au moins une partie de ladite mémoire est destinée à l'enregistrement des trames paires. 2. Dispositif de gestion de mémoire selon la revendication 1 caractérisé en ce que ladite mémoire (3) étant architecturée de manière à alterner les au moins deux parties indépendantes, ledit dispositif comprend des moyens d'enregistrer la première trame paire en début de première partie et d'enregistrer la trame correspondante impaire en début de seconde partie et de remplir ainsi alternativement les deux parties, les trames paires étant enregistrées l'une après l'autre dans la première partie et les trames impaires étant enregistrées l'une après l'autre dans la seconde partie. 3. Dispositif de gestion de mémoire selon l'une des revendications 1 ou 2 caractérisé en ce que ladite mémoire (3) étant organisée en une pluralité m de parties j appelées pages, chaque page étant organisée en une pluralité de n sous-parties i numérotées de 1 à n, appelées banques, les moyens d'enregistrer la trame paire l'enregistrent au début d'une banque i d'une page j et enregistrent la trame impaire au début d'une banque k d'une page I telle que k est différent de i et que I est supérieur à j. 4. Dispositif gestion de mémoire selon la revendication 3 caractérisé en ce que les j pages sont organisées séquentiellement et que l'espace mémoire entre la banque k de la partie I et la banque i de la partie j est suffisant pour contenir au moins une trame. 5. Dispositif gestion de mémoire selon la revendication 4 caractérisé en ce que l'espace mémoire entre la page I et la page j est dimensionné de manière à enregistrer une trame au format haute définition. 6. Dispositif gestion de mémoire selon la revendication 4 caractérisé en ce que lorsque l'espace mémoire entre la partie I et la partie j est supérieur à la taille d'une trame, ledit dispositif comprend des moyens d'enregistrer des données de bruit relatives à ladite trame dans ledit espace mémoire après la première trame. 7. Dispositif gestion de mémoire selon l'une des revendications précédentes caractérisé en ce que ladite mémoire est de type DDR. 8. Dispositif de décodage caractérisé en ce qu'il comprend un dispositif de gestion de mémoire selon l'une des revendications précédentes et des moyens de décodage (4), ladite mémoire (3) étant destinée à enregistrer des trames dites de référence décodées par les moyens de décodage (4) et utilisées par lesdits moyens de décodage (4) lors du décodage de trames suivantes. 9. Dispositif de décodage selon la revendication 8 caractérisé en ce que les données sont codées selon la norme H.264 ou selon la norme MPEG-2. 10. Procédé de gestion de mémoire d'une mémoire comprenant au moins deux parties indépendantes pouvant être ouvertes simultanément, ledit procédé étant caractérisé en ce qu'il comprend les étapes de : - enregistrement des trames paires dans une première des deux dites parties de ladite mémoire (3), - enregistrement des trames impaires dans une seconde des deux dites parties de ladite mémoire (3).