FR2876818A1 - Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline - Google Patents
Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline Download PDFInfo
- Publication number
- FR2876818A1 FR2876818A1 FR0411098A FR0411098A FR2876818A1 FR 2876818 A1 FR2876818 A1 FR 2876818A1 FR 0411098 A FR0411098 A FR 0411098A FR 0411098 A FR0411098 A FR 0411098A FR 2876818 A1 FR2876818 A1 FR 2876818A1
- Authority
- FR
- France
- Prior art keywords
- segment
- segments
- instructions
- polyline
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
Description
La présente invention concerne un procédé et un programme de transcodageThe present invention relates to a transcoding method and program
d'un fichier d'images au format vectoriel, un support d'enregistrement et un transcodeur adapté pour ce procédé. an image file in vector format, a recording medium and a transcoder adapted for this method.
Un format vectoriel est un format dans lequel l'image est codée sous la forme d'une multitude de segments de droite, chaque segment de droite correspondant à un trait élémentaire de l'image. Ces segments de droite sont définis, par exemple, soit par les coordonnées de leurs deux extrémités, soit par les coordonnées d'une seule de ces extrémités, un vecteur et une longueur. Des formats vectoriels connus sont, par exemple, DXF (AUTOCAD FILE) ou SVG (SCALABLE VECTOR GRAPHIC). A vector format is a format in which the image is encoded as a multitude of line segments, with each line segment corresponding to an elementary line of the image. These line segments are defined, for example, by the coordinates of their two ends, or by the coordinates of only one of these ends, a vector and a length. Known vector formats are, for example, DXF (AUTOCAD FILE) or SVG (SCALABLE VECTOR GRAPHIC).
Le format vectoriel est particulièrement bien adapté au dessin industriel. Les images dans ce format sont donc souvent générées à partir de logiciels de dessin industriel tel que AUTOCAD. The vector format is particularly well suited to industrial design. Images in this format are therefore often generated from industrial design software such as AUTOCAD.
Toutefois, les logiciels de dessin industriel n'optimisent pas le nombre d'instructions nécessaires pour 20 coder une image dans ce format vectoriel. However, industrial design software does not optimize the number of instructions needed to code an image in this vector format.
L'invention vise à remédier à cet inconvénient en proposant un procédé de codage d'une image permettant d'optimiser le nombre d'instructions nécessaires pour coder cette image dans un format vectoriel. The invention aims to overcome this drawback by proposing an image coding method for optimizing the number of instructions necessary to code this image in a vector format.
L'invention a donc pour objet un procédé de codage d'une image dans un format vectoriel, comportant: - une étape de modification desdites instructions pour connecter au moins une extrémité d'un premier segment de l'image à un deuxième segment de la même image lorsque la distance entre cette extrémité et le deuxième segment est inférieure à un premier seuil pré-établi de manière à créer une polyligne, - une étape de réduction du nombre d'instructions contenues dans le fichier, en remplaçant les instructions définissant les premier et deuxième segments par une seule instruction définissant la polyligne créée. The subject of the invention is therefore a method of encoding an image in a vector format, comprising: a step of modifying said instructions for connecting at least one end of a first segment of the image to a second segment of the image; same image when the distance between this end and the second segment is less than a first threshold pre-established so as to create a polyline, - a step of reducing the number of instructions contained in the file, by replacing the instructions defining the first and second segments by a single instruction defining the created polyline.
L'étape de modification permet de raccorder de nombreux segments non connectés les uns aux autres de manière à former des polylignes. Dans le domaine des logiciels de dessins industriels, le terme polyligne désigne une entité géométrique constituée d'une succession de segments de droite parfaitement connectés les uns aux autres par leurs extrémités. Le codage d'une polyligne est réalisé à l'aide d'un nombre d'instructions strictement inférieur à celui nécessaire pour coder le même nombre de segments non connectés. L'image modifiée est donc codée à l'aide d'un nombre d'instructions inférieur à celui nécessaire pour coder l'image non modifiée. La quantité de mémoire nécessaire pour enregistrer l'image codée est donc réduit. De plus, la qualité de l'image modifiée n'est que très peu altérée par l'étape de modification puisque les segments qui sont connectés les uns aux autres correspondent souvent à des segments qui n'ont pas été connectés par erreur lors de la réalisation de l'image. The modification step makes it possible to connect a large number of segments that are not connected to one another so as to form polylines. In the field of industrial design software, the term polyline designates a geometric entity consisting of a succession of straight segments perfectly connected to each other by their ends. The coding of a polyline is carried out using a number of instructions strictly less than that necessary to code the same number of unconnected segments. The modified image is thus coded using a number of instructions less than that necessary to code the unmodified image. The amount of memory needed to record the coded picture is therefore reduced. In addition, the quality of the modified image is only slightly altered by the modification step since the segments that are connected to each other often correspond to segments that were not connected by mistake during the modification. realization of the image.
Les modes de réalisation de ce procédé peuvent comporter une ou plusieurs des caractéristiques suivantes: - l'étape de modification consiste à déplacer l'extrémité d'au moins l'un des deux segments pour que cette extrémité déplacée soit confondue avec un point d'intersection des droites portant les deux segments; - une étape de fusion de segments consistant à remplacer les instructions définissant un troisième et un quatrième segments de l'image par une seule instruction définissant un cinquième segment de module et de direction équivalent à la réunion des troisième et quatrième segments, lorsque en outre: - l'angle entre les droites portant les troisième et quatrième segments est inférieur à un deuxième seuil pré-établi, - la distance entre une extrémité du troisième segment et son point de projection sur la droite portant le quatrième segment est inférieure à un troisième seuil pré-établi, et, - le point de projection appartient au quatrième segment ou se situe à une distance de l'une des extrémités du quatrième segment inférieure à un quatrième seuil pré-établi; - l'étape de réduction comporte une opération de recherche de la polyligne la plus grande avant de remplacer les instructions définissant les segments de cette polyligne la plus grande par une seule instruction définissant cette polyligne, la grandeur d'une polyligne étant mesurée par le nombre de segments qui la compose; - l'étape de réduction comporte une opération de construction d'une structure arborescente dans laquelle chaque noeud correspond à un segment et chaque lien entre deux noeuds indique que les segments correspondants à ces deux n uds sont connectés entre eux, et l'opération de recherche consiste en outre à rechercher le chemin le plus profond dans cette structure arborescente. Embodiments of this method may include one or more of the following features: - the modifying step consists of moving the end of at least one of the two segments so that this displaced end is merged with a point of intersection of the lines carrying the two segments; a step of merging segments consisting of replacing the instructions defining a third and fourth segment of the image by a single instruction defining a fifth segment of module and direction equivalent to the meeting of the third and fourth segments, when in addition: the angle between the lines carrying the third and fourth segments is less than a second predetermined threshold, the distance between one end of the third segment and its projection point on the line carrying the fourth segment is less than a third threshold pre-established, and, - the projection point belongs to the fourth segment or is located at a distance from one of the ends of the fourth segment lower than a fourth pre-established threshold; the reduction step comprises a search operation of the largest polyline before replacing the instructions defining the segments of this largest polyline by a single instruction defining this polyline, the magnitude of a polyline being measured by the number of segments that compose it; the reduction step comprises a construction operation of a tree structure in which each node corresponds to a segment and each link between two nodes indicates that the segments corresponding to these two nodes are connected to each other, and the operation of The search also involves finding the deepest path in this tree structure.
Les caractéristiques précédentes permettent chacune prise isolément de limiter encore plus le nombre d'instructions nécessaires pour coder une image dans un format vectoriel. The preceding features allow each in isolation to further limit the number of instructions necessary to encode an image in a vector format.
L'invention a également pour objet un programme d'ordinateur et un support d'enregistrement d'informations comportant des instructions pour l'exécution d'un procédé de codage tel que celui décrit ci-dessus lorsque lesdites instructions sont exécutées par un calculateur électronique. The subject of the invention is also a computer program and an information recording medium comprising instructions for the execution of a coding method such as that described above when said instructions are executed by an electronic computer. .
L'invention a également pour objet un transcodeur d'un fichier d'image dans un format vectoriel adapté pour mettre en uvre un procédé de transcodage tel que décrit ci-dessus. Le fichier comporte plusieurs instructions définissant chacune un segment de droite, chaque segment ayant deux extrémités. Le transcodeur comporte: - un module de modification desdites instructions pour connecter au moins une extrémité d'un premier segment à un second segment de l'image lorsque la distance entre cette extrémité et le second segment est inférieure à un premier seuil pré-établi de manière à créer une polyligne, et - un module de réduction du nombre d'instructions du fichier, propre à remplacer les instructions définissant les premier et deuxième segments par une seule instruction définissant la polyligne créée. The invention also relates to a transcoder of an image file in a vector format adapted to implement a transcoding method as described above. The file has several instructions each defining a line segment, each segment having two ends. The transcoder comprises: a module for modifying said instructions for connecting at least one end of a first segment to a second segment of the image when the distance between this end and the second segment is less than a first predetermined threshold of to create a polyline, and - a module for reducing the number of instructions in the file, to replace the instructions defining the first and second segments by a single instruction defining the polyline created.
L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins sur lesquels: - la figure 1 est une illustration schématique de l'architecture d'un transcodeur de fichiers d'images dans un format vectoriel, - les figures 2A et 2B sont une illustration d'un 25 organigramme d'un procédé de transcodage d'une image dans un format vectoriel, et - les figures 3, 4A, 4B, 5A, 5B, 6A et 6B sont des illustrations de segments d'une image avant et après l'exécution du procédé de transcodage. The invention will be better understood on reading the description which follows, given solely by way of example and with reference to the drawings in which: FIG. 1 is a schematic illustration of the architecture of a transcoder of image files in a vector format; FIGS. 2A and 2B are an illustration of a flowchart of a method of transcoding an image into a vector format, and FIGS. 3, 4A, 4B, 5A, 5B, 6A and 6B are illustrations of segments of an image before and after execution of the transcoding process.
La figure 1 représente un transcodeur 2 de fichiers d'images dans un format vectoriel, raccordé à un support d'enregistrement d'informations 4. FIG. 1 represents a transcoder 2 of image files in a vector format, connected to an information recording medium 4.
Le transcodeur 2 comporte un module 6 d'acquisition d'un fichier d'une image initiale dans un format vectoriel. The transcoder 2 comprises a module 6 for acquiring a file of an initial image in a vector format.
Ce module 6 est, par exemple, capable d'acquérir le fichier d'une image générée par un logiciel de dessin industriel ou d'extraire un tel fichier au format vectoriel à partir d'une source de données située sur le réseau Internet. Ici, le module 6 est apte à acquérir un fichier au format SVG. This module 6 is, for example, capable of acquiring the file of an image generated by an industrial drawing software or of extracting such a file in vector format from a data source located on the Internet network. Here, the module 6 is able to acquire a file in SVG format.
Un fichier au format SVG comporte des instructions <line> définissant des segments de droites visibles dans l'image et, éventuellement, des instructions <polyline> définissant des polylignes visibles dans l'image. An SVG file has <line> instructions defining visible line segments in the image and optionally <polyline> instructions defining visible polylines in the image.
Une sortie du module d'acquisition 6 est raccordée à une entrée d'un analyseur 12 de fichiers. An output of the acquisition module 6 is connected to an input of a file analyzer 12.
L'analyseur 12 est apte à remplacer chaque instruction <polyline> du fichier acquis par une succession d'instructions <line> définissant chacune un segment respectif de la polyligne. La succession d'instructions <line> est, par exemple, écrite dans le format SVG. The analyzer 12 is able to replace each <polyline> instruction of the acquired file with a succession of <line> instructions each defining a respective segment of the polyline. The sequence of instructions <line> is, for example, written in SVG format.
Une sortie de l'analyseur 12 est raccordée à une entrée d'un module 14 de fusion. Ce module 14 est apte à remplacer deux instructions <line> du fichier analysé par l'analyseur 12, par une seule instruction <line> définissant un segment de module et de direction équivalents à la réunion des deux segments remplacés. An output of the analyzer 12 is connected to an input of a fusion module 14. This module 14 is able to replace two instructions <line> of the file analyzed by the analyzer 12, by a single instruction <line> defining a segment of module and direction equivalent to the meeting of the two segments replaced.
Une sortie du module 14 est raccordée à une entrée d'un module 16 de connexion de segments. Le module 16 est apte à modifier l'image initiale en connectant l'extrémité d'un segment à un autre segment de l'image lorsque la distance entre cette extrémité et cet autre segment est inférieure à un seuil pré-établi. An output of the module 14 is connected to an input of a segment connection module 16. The module 16 is able to modify the initial image by connecting the end of one segment to another segment of the image when the distance between this end and this other segment is less than a pre-established threshold.
Une sortie du module 16 est raccordée à une entrée d'un module 18 de réduction du nombre d'instructions nécessaires pour coder l'image dans un format vectoriel. A cet effet, le module 18 comporte: - un sous-module 20 de construction d'une structure arborescente représentative des connexions entre segments, - un sous-module 21 de recherche de la polyligne la plus grande, et - un codeur 22 propre à coder à l'aide d'une instruction du langage SVG la polyligne trouvée par le sous 5 module 21. An output of the module 16 is connected to an input of a module 18 for reducing the number of instructions necessary to code the image in a vector format. For this purpose, the module 18 comprises: - a submodule 20 for the construction of a tree structure representative of the connections between segments, - a sub-module 21 for searching the largest polyline, and - an encoder 22 specific to to code with the help of an instruction of the SVG language the polyline found by the sub-module 21.
Le fichier modifié généré par le module de réduction 18 est au format SVG. The modified file generated by the reduction module 18 is in SVG format.
Une sortie du module 18 est raccordée à un module conventionnel 30 de compression de fichiers, soit directement, soit par l'intermédiaire d'un module de conversion de format. Ici, à titre d'illustration, le dispositif 2 comporte un seul module 32 de conversion de format propre à convertir un fichier au format SVG en un fichier au format DXF avant de le transmettre au module de compression 30. An output of the module 18 is connected to a conventional file compression module 30, either directly or via a format conversion module. Here, by way of illustration, the device 2 comprises a single format conversion module 32 capable of converting an SVG file into a DXF format file before transmitting it to the compression module 30.
Le module 30 est, par exemple, ici, un module propre à générer un fichier compressé au format ZIP (PKzip file name extension). The module 30 is, for example, here a module capable of generating a compressed file in ZIP (PKzip file name extension) format.
Le transducteur 2 est ici, réalisé à partir d'un calculateur électronique programmable conventionnel apte à exécuter des instructions enregistrées dans le support d'enregistrement d'informations 4. A cet effet, le support d'enregistrement d'informations 4 comporte des instructions pour l'exécution du procédé de la figure 2 lorsque lesdites instructions sont exécutées par le calculateur électronique. The transducer 2 is here made from a conventional programmable electronic computer capable of executing instructions recorded in the information recording medium 4. For this purpose, the information recording medium 4 comprises instructions for the execution of the method of FIG. 2 when said instructions are executed by the electronic computer.
Le fonctionnement du transducteur 2 va maintenant être décrit à l'aide de l'organigramme des figures 2A et 2B et en regard des figures 3, 4A, 4B, 5A, 5B, 6A et 6B. The operation of the transducer 2 will now be described using the flowchart of FIGS. 2A and 2B and with reference to FIGS. 3, 4A, 4B, 5A, 5B, 6A and 6B.
Lors d'une étape 50, le module 6 acquiert un fichier dans un format vectoriel d'une image. Ici, le fichier est au format SVG. Ce fichier est ensuite transmis à l'analyseur 12 qui remplace, lors d'une étape 52, chaque instruction <polyline> définissant une polyligne par plusieurs instructions <line> définissant chacune un seul segment de la polyligne. A l'issue de cette étape 52, l'image codée par le fichier analysé est identique à celle acquise lors de l'étape 50. In a step 50, the module 6 acquires a file in a vector format of an image. Here, the file is in SVG format. This file is then transmitted to the analyzer 12 which replaces, in a step 52, each <polyline> instruction defining a polyline by several <line> instructions each defining a single segment of the polyline. At the end of this step 52, the image encoded by the analyzed file is identical to that acquired during step 50.
Le fichier analysé est transmis au module 14 qui procède alors à une étape 54 de fusion de segments de l'image. The analyzed file is transmitted to the module 14 which then proceeds to a step 54 of merging segments of the image.
L'objectif de l'étape 54 est de remplacer par une seule instruction <line> deux instructions <line> quasiment redondantes. Plus précisément, lors de l'étape 54, deux instructions <line> définissant des segments S1 et S2 sont remplacées par une seule instruction <line> définissant un segment S3 de module et de direction équivalents à la réunion de deux segments S1 et S2 si: - l'angle entre les droites D1 et D2 portant les deux segments S1 et S2 est inférieur à un seuil pré-établi dc, et - la distance entre une extrémité du segment S1 ou S2 est son point de projection P'i sur la droite portant l'autre segment est inférieure à un seuil pré-établi dd, et - le point de projection P'i appartient à l'autre segment ou se situe à une distance des extrémités de l'autre segment inférieure à un seuil préétabli dt. The objective of step 54 is to replace by a single <line> instruction two almost redundant <line> instructions. More precisely, during step 54, two <line> instructions defining segments S1 and S2 are replaced by a single <line> instruction defining a segment S3 of module and direction equivalent to the union of two segments S1 and S2 if the angle between the straight lines D1 and D2 carrying the two segments S1 and S2 is less than a pre-established threshold dc, and the distance between one end of the segment S1 or S2 is its projection point P'i on the right bearing the other segment is less than a pre-established threshold dd, and - the projection point P'i belongs to the other segment or is at a distance from the ends of the other segment less than a preset threshold dt .
Les opérations de l'étape 54 seront décrites dans le cas particulier des deux segments S1 et S2 de la figure 3. The operations of step 54 will be described in the particular case of the two segments S1 and S2 of FIG.
Le segment S1 comporte deux extrémités P1 et P2 tandis que le segment S2 a deux extrémités P3 et P4. Le segment S1 est porté par la droite D1 et le segment S2 est porté par la droite D2. The segment S1 has two ends P1 and P2 while the segment S2 has two ends P3 and P4. The segment S1 is carried by the line D1 and the segment S2 is carried by the line D2.
L'étape 54 commence par une opération 56 de calcul d'un coefficient directeur Ci pour chacun des segments définis dans le fichier analysé. Un coefficient directeur est représentatif de l'inclinaison du segment par rapport à une direction de référence. Par exemple, le coefficient directeur Ci d'un segment Si défini par deux points d'extrémité P1 et P2 est calculé à l'aide de la relation suivante. Step 54 begins with an operation 56 for calculating a director coefficient Ci for each of the segments defined in the analyzed file. A steering coefficient is representative of the inclination of the segment relative to a reference direction. For example, the director coefficient Ci of a segment Si defined by two end points P1 and P2 is calculated using the following relation.
YP2 - YPl Ci = xP2 - xPl où : - Ci est le coefficient directeur du segment Si, - xp1 et ypl sont respectivement l'abscisse et l'ordonnée de l'extrémité P1 dans un repère orthonormé, et - xP2 et yP2 sont respectivement l'abscisse et l'ordonnée de l'extrémité P2 dans le même repère orthonormé. YP2 - YP1 Ci = xP2 - xP1 where: - Ci is the directional coefficient of the segment Si, - xp1 and ypl are respectively the abscissa and the ordinate of the end P1 in an orthonormal frame, and - xP2 and yP2 are respectively the abscissa and the ordinate of the end P2 in the same orthonormal coordinate system.
Ensuite, les coefficients directeurs des segments sont comparés deux par deux lors d'une opération 58 pour sélectionner uniquement des paires de segments ayant des directions proche l'une de l'autre. Les directions de deux segments sont proches si la différence entre les coefficients directeurs des deux segments est inférieure au seuil pré-établi dc. Par exemple, dans le cas particulier de la figure 3, le coefficient directeur C1 du segment S1 est soustrait au coefficient directeur C2 du segment S2. Si la différence en valeur absolue entre C1 et C2 est inférieure à de alors le module 16 procède à une opération 60. Then, the directional coefficients of the segments are compared two by two during an operation 58 to select only pairs of segments having directions close to each other. The directions of two segments are close if the difference between the coefficients of the two segments is less than the preset threshold dc. For example, in the particular case of FIG. 3, the directing coefficient C1 of the segment S1 is subtracted from the directing coefficient C2 of the segment S2. If the difference in absolute value between C1 and C2 is lower than that of then the module 16 carries out an operation 60.
Lors de l'opération 60, le module 14 calcule la projection des extrémités d'un premier segment de la paire sur la droite portant le second segment. La projection est réalisée selon une direction orthogonale à la droite portant le premier segment. During the operation 60, the module 14 calculates the projection of the ends of a first segment of the pair on the line carrying the second segment. The projection is made in a direction orthogonal to the line carrying the first segment.
Dans le cas de la figure 3, le module 14 calcule la projection des extrémités P1 et P2, notés respectivement P'1 et P'2, sur la droite D2. In the case of FIG. 3, the module 14 calculates the projection of the ends P1 and P2, denoted respectively P'1 and P'2, on the line D2.
Ensuite, lors d'une étape 62, la distance séparant l'extrémité du segment de son point de projection calculé est calculée. Cette distance est notée dl sur la figure 3 pour l'extrémité P1 et d2 pour l'extrémité P2. Then, during a step 62, the distance separating the end of the segment from its calculated projection point is calculated. This distance is noted dl in Figure 3 for the end P1 and d2 for the end P2.
Puis, lors d'une opération 64, les distances calculées lors de l'opération 62 sont comparées au seuil pré-déterminé dd de façon à ne sélectionner que des segments qui sont proches l'un de l'autre. Dans le cas de la figure 3, on suppose que la distance d2 est inférieure au seuil dd. Then, during an operation 64, the distances calculated during the operation 62 are compared with the predetermined threshold dd so as to select only segments that are close to one another. In the case of Figure 3, it is assumed that the distance d2 is below the threshold dd.
Dans l'affirmative, c'est-à-dire si l'une des distances calculées lors de l'opération 62 est inférieure au seuil dd, alors le module 14 vérifie, lors d'une opération 66, si au moins l'un des points de projection du premier segment appartient au second segment. Par exemple, dans le cas de la figure 3, le module 14 vérifie si au moins l'un des points P'1 et P'2 appartient au segment S2. Sur la figure 3, le point P'2 appartient au segment S2 ce qui n'est pas le cas pour le point P'1. If so, that is to say if one of the distances calculated during the operation 62 is below the threshold dd, then the module 14 checks, during an operation 66, if at least one projection points of the first segment belong to the second segment. For example, in the case of FIG. 3, the module 14 checks whether at least one of the points P'1 and P'2 belongs to the segment S2. In FIG. 3, the point P'2 belongs to the segment S2, which is not the case for the point P'1.
Dans l'affirmative, le module 16 remplace, lors d'une opération 68 les instructions <line> définissant les deux segments S1 et S2 par une seule instruction <line> définissant le segment S3. If so, the module 16 replaces, in an operation 68, the <line> instructions defining the two segments S1 and S2 by a single <line> instruction defining the segment S3.
Dans le cas contraire, si lors de l'opération 66, aucun des points de projection n'appartient au second segment, alors le module 14 détermine, lors d'une opération 70, si la distance entre l'un des points de protection et l'une des extrémités du second segment est inférieure au seuil pré-établi dt. Ce seuil pré-établi est ici choisi égal à dd. Dans l'affirmative, le module 16 procède ensuite à l'opération de remplacement 68. In the opposite case, if during operation 66, none of the projection points belong to the second segment, then the module 14 determines, during an operation 70, whether the distance between one of the protection points and one of the ends of the second segment is below the pre-established threshold dt. This pre-established threshold is here chosen equal to dd. If so, the module 16 proceeds to the replacement operation 68.
Lors de l'opération 68, le module 14 sélectionne, lors d'une sousopération 74, les deux extrémités les plus éloignées l'une de l'autre dans l'ensemble {P1; P2; P3; P4} des extrémités des deux segments S. et S2. Ensuite, lors d'une sous-opération 76, il remplace les instructions <line> définissant les deux segments S1 et S2 par une seule instruction <line> définissant le segment S3 ayant pour extrémités celles sélectionnées lors de la sous-opération 74. Le nouveau segment créé précédemment est réintroduit dans la liste des segments à traiter. During operation 68, the module 14 selects, during an operation 74, the two ends farthest from each other in the set {P1; P2; P3; P4} ends of the two segments S. and S2. Then, during a sub-operation 76, it replaces the <line> instructions defining the two segments S1 and S2 by a single <line> instruction defining the segment S3 having for its ends those selected during the sub-operation 74. new segment created previously is reintroduced in the list of segments to be processed.
Une fois l'opération 68 terminée, le procédé retourne à l'opération 58 et réitère à nouveau les opérations 58 à 68 pour une nouvelle paire de segments. Ces opérations sont réitérées tant qu'il existe dans le fichier analysé des paires de segments non traitées. Upon completion of operation 68, the process returns to operation 58 and reiterates operations 58 to 68 for a new pair of segments. These operations are repeated as long as there are untreated pairs of segments in the analyzed file.
Si lors de l'opération 58, les coefficients directeurs comparés sont supérieurs au seuil d, ou si lors de l'opération 64 les distances calculées sont supérieures au seuil dd ou encore si lors de l'opération 70 aucune des extrémités du second segment n'est proche d'un des points de projection alors le procédé retourne également à l'opération 58. If during operation 58, the compared key coefficients are greater than the threshold d, or if during the operation 64 the calculated distances are greater than the threshold dd or if during the operation 70 none of the ends of the second segment n is close to one of the projection points, so the process also returns to operation 58.
Ainsi, l'étape 54 réduit le nombre d'instructions nécessaires pour coder l'image tout en limitant les modifications apportées à l'image initiale grâce aux seuils de, dd et dt. Thus, step 54 reduces the number of instructions necessary to code the image while limiting the changes made to the initial image by the thresholds of, dd and dt.
Ensuite, le fichier traité par le module 14 est transmis au module 16. Le module 16 modifie, lors d'une étape 80, l'image codée en connectant les extrémités des segments sécants, c'est-à-dire des segments dont la différence des coefficients directeurs et supérieure au seuil dc. Then, the file processed by the module 14 is transmitted to the module 16. The module 16 modifies, during a step 80, the coded image by connecting the ends of the secant segments, that is to say the segments whose difference of the guiding coefficients and greater than the threshold dc.
Cette étape 80 vise à modifier les instructions <line> du fichier fusionné pour connecter les segments les uns aux autres et ainsi créer des polylignes en lieu et place d'une succession de segments non connectés. This step 80 aims to modify the <line> instructions of the merged file to connect the segments to each other and thus create polylines instead of a succession of unconnected segments.
Trois cas différents de segments sécants sont représentés dans les figures 4A, 5A et 6A. Les figures 4B, 5B et 6B illustrent respectivement les segments des figures 4A, 5A et 6A après que l'étape de modification ait été réalisée. Les notations utilisées pour les figures 4A, 4B, 5A, 5B, 6A et 6B sont identiques à celles définies en regard à la figure 3. On notera simplement ici, que le point d'intersection entre les droites portant chacune l'un des segments sécants est noté P'. Three different cases of secant segments are shown in Figures 4A, 5A and 6A. Figures 4B, 5B and 6B respectively illustrate the segments of Figures 4A, 5A and 6A after the modifying step has been performed. The notations used for FIGS. 4A, 4B, 5A, 5B, 6A and 6B are identical to those defined with reference to FIG. 3. It will be noted here simply that the point of intersection between the lines each bearing one of the segments secants is noted P '.
Initialement, lors d'une opération 82, le module 16 5 sélectionne deux instructions <line> définissant les segments S1 et S2 dans le fichier fusionné. Initially, during an operation 82, the module 165 selects two <line> instructions defining the segments S1 and S2 in the merged file.
Ensuite, lors d'une opération 84, il calcule les coordonnées du point d'intersection P' entre les droites D1 et D2 portant les segments S1 et S2. Then, during an operation 84, it calculates the coordinates of the point of intersection P 'between the straight lines D1 and D2 bearing the segments S1 and S2.
Après, il calcule, lors d'une opération 86, les distances L1, L2, L3 et L4 séparant le point d'intersection P' respectivement des extrémités P1, P2, P3 et P4. Afterwards, it calculates, during an operation 86, the distances L1, L2, L3 and L4 separating the point of intersection P 'respectively of the ends P1, P2, P3 and P4.
Puis, lors d'une opération 88, le module 16 détermine si le point d'intersection P' appartient au segment S1 et/ou au segment S2 (cas des figures 4A et 5A). Dans l'affirmative, le module 16 compare, lors d'une opération 90, les distances L1, L2, L3 et L4 à un seuil pré-établi Di. Then, during an operation 88, the module 16 determines whether the intersection point P 'belongs to the segment S1 and / or the segment S2 (case of FIGS. 4A and 5A). If so, the module 16 compares, during an operation 90, the distances L1, L2, L3 and L4 to a preset threshold Di.
Si l'une de ces distances est inférieure au seuil Ai alors le module 16 procède à une opération 92 de déplacement de la ou des extrémités les plus proches de P' jusqu'au point P'. Plus précisément, lors de l'opération 92, au moins l'une des instructions <line> définissant l'un des segments est modifiée pour définir un nouveau segment S'i dont l'une des extrémités a été déplacée pour connecter ce segment S'i à l'autre segment. If one of these distances is less than the threshold Ai, then the module 16 carries out an operation 92 of moving the end or ends closest to P 'to the point P'. More specifically, during the operation 92, at least one of the <line> instructions defining one of the segments is modified to define a new segment S'i whose end has been moved to connect this segment S 'i to the other segment.
Par exemple, dans le cas de la figure 4A, la distance L2 séparant P2 du point P' est supposée inférieure à Di et l'extrémité P2 est déplacée jusqu'au point P' de sorte que le segment modifié S'1 est connecté aux segments S2 comme illustré sur la figure 4B. For example, in the case of FIG. 4A, the distance L2 separating P2 from the point P 'is assumed to be smaller than Di and the end P2 is displaced to the point P' so that the modified segment S'1 is connected to S2 segments as shown in Figure 4B.
Dans le cas de la figue 5A, à la fois les distances d2 et d4 sont inférieures au seuil Ai de sorte que les extrémités P2 et P4 sont toutes les deux déplacées jusqu'au point P'. Le résultat de cette modification est représenté sur la figure 5B. In the case of Fig. 5A, both the distances d2 and d4 are below the threshold A1 so that the ends P2 and P4 are both displaced to the point P '. The result of this change is shown in Figure 5B.
Si lors de l'opération 88 il est déterminé que le point P' n'appartient pas aux segments S1 et S2, (cas de la figure 6A), alors le module 16 procède à une opération 94 de test de la proximité des extrémités des segments. If during the operation 88 it is determined that the point P 'does not belong to the segments S1 and S2, (case of FIG. 6A), then the module 16 carries out an operation 94 for testing the proximity of the ends of the segments.
Lors de l'opération 94, le module 16 détermine si l'une des deux distances L1 et L2 est inférieure à un seuil pré-établi Ae et si l'une des deux distances L3 et L4 est inférieure à ce même seuil pré-établi De. Dans l'affirmative l'extrémité la plus proche du segment S1 et l'extrémité la plus proche du segment S2 sont déplacées jusqu'au point P' lors d'une opération 96. Cette opération 96 est réalisée, comme lors de l'opération 92, en modifiant les instructions <line> définissant ces segments S1 et S2. C'est ce qui a été représenté sur la figure 6B. During the operation 94, the module 16 determines if one of the two distances L1 and L2 is less than a pre-established threshold Ae and if one of the two distances L3 and L4 is less than this same pre-established threshold If so, the nearest end of the segment S1 and the end closest to the segment S2 are moved to the point P 'during an operation 96. This operation 96 is performed, as in the case of operation 92, modifying the <line> instructions defining these segments S1 and S2. This is shown in Figure 6B.
Après l'opération 92 ou 96 ou si lors de l'opération 90 il est déterminé qu'aucune des distance Li est inférieure au seuil Di, ou encore si lors de l'opération 94 il est déterminé que les deux distances L1 et L2 ou L3 et L4 sont supérieures au seuil Ae, alors le module 16 retourne à l'étape 88 et exécute à nouveau les opérations 82 à 96 pour une nouvelle paire de segments. After the operation 92 or 96 or if during the operation 90 it is determined that none of the distance Li is less than the threshold Di, or if during the operation 94 it is determined that the two distances L1 and L2 or L3 and L4 are greater than threshold Ae, then module 16 returns to step 88 and executes operations 82 through 96 again for a new pair of segments.
Les opérations 88 à 96 sont réitérées tant que 25 l'ensemble des paires de segments n'a pas été traité. Operations 88 to 96 are repeated until all the pairs of segments have been processed.
A ce stade, le fichier modifié par l'étape 80 contient le même nombre d'instructions <line> que le fichier fusionné par le module 14. At this point, the file modified by step 80 contains the same number of <line> instructions as the file merged by the module 14.
Le fichier modifié est alors transmis au module 18 pour réduire, lors d'une étape 100, le nombre d'instructions <line> contenues dans le fichier modifié. The modified file is then transmitted to the module 18 to reduce, during a step 100, the number of <line> instructions contained in the modified file.
Lors de l'étape 100, le sous-module 20 construit, lors d'une opération 104, une structure arborescente représentant les connections des segments entre eux. Dans cette structure arborescente, chaque segment est représenté par un noeud et les deux noeuds sont reliés entre eux si les segments correspondants sont connectés entre eux. During step 100, the sub-module 20 constructs, during an operation 104, a tree structure representing the connections of the segments between them. In this tree structure, each segment is represented by a node and the two nodes are interconnected if the corresponding segments are connected to each other.
Ensuite, lors d'une opération 106, le sous-module 21 recherche le chemin le plus profond dans la structure arborescente construite lors de l'opération 104. Le chemin le plus profond est celui qui comporte le plus grand nombre de n uds et correspond à la polyligne la plus grande, c'està-dire à la polyligne comportant le plus grand nombre de segments. A cet effet, des algorithmes de recherche du chemin le plus profond conventionnel sont mis en uvre, tel par exemple l'algorithme de Dijkstra. Then, during an operation 106, the submodule 21 searches for the deepest path in the tree structure constructed during the operation 104. The deepest path is the one with the largest number of nodes and corresponds to the largest polyline, that is, the polyline with the largest number of segments. For this purpose, search algorithms for the deepest conventional path are implemented, such as the Dijkstra algorithm.
Une fois que la plus grande polyligne a été trouvée le codeur 22 code, lors d'une opération 108, la polyligne trouvée à l'aide d'une seule instruction de codage. Plus précisément, lors de cette opération 108, les instructions <line> définissant dans le fichier modifié les segments appartenant à la polyligne trouvée sont remplacées par une seule instruction définissant la polyligne trouvée. Once the largest polyline has been found the coder 22 encodes, in an operation 108, the polyline found using a single coding instruction. More precisely, during this operation 108, the <line> instructions defining in the modified file the segments belonging to the found polyline are replaced by a single instruction defining the polyline found.
Par exemple, dans le cas du format SVG, l'instruction utilisée sera une instruction <polyline>. For example, in the case of the SVG format, the instruction used will be a <polyline> instruction.
Une fois l'opération 108 terminée, le procédé retourne à l'opération 104. Les opérations 104 et 108 sont réitérées jusqu'à ce qu'il n'existe plus de polyligne à coder dans le fichier modifié. Once the operation 108 is complete, the process returns to the operation 104. The operations 104 and 108 are repeated until there is no more polyline to code in the modified file.
Cette façon de procéder pour réduire le nombre d'instructions <line> du fichier modifié en codant d'abord les polylignes les plus grandes permet d'optimiser le nombre d'instructions nécessaires pour coder l'image. This way of proceeding to reduce the number of <line> instructions of the modified file by first coding the largest polylines makes it possible to optimize the number of instructions necessary to code the image.
A l'issu de l'étape 100, lors d'une étape 120, si le le format de sortie du fichier réduit n'est pas le format SVG, alors le fichier réduit par le module 18 est transmis au module 32 de convertion de format. Le module 32 2876818 14 convertit, lors d'une étape 122, le fichier réduit au format SVG dans un autre format tel que le format DXF. At the end of step 100, during a step 120, if the output format of the reduced file is not the SVG format, then the file reduced by the module 18 is transmitted to the module 32 of conversion of format. The module 32 converts, during a step 122, the reduced file to the SVG format in another format such as the DXF format.
A l'issu de l'étape 122 ou dans le cas où le format de sortie est le format SVG, le fichier réduit est transmis au module de compression qui comprime, lors d'une étape 124, ce fichier en utilisant des algorithmes conventionnels. At the end of step 122 or in the case where the output format is the SVG format, the reduced file is transmitted to the compression module which compresses, in a step 124, this file using conventional algorithms.
Les différents seuils pré-établis utilisés dans le dispositif 2 limitent l'importance des modifications apportées à l'image codée. Ils sont choisis pour constituer un bon compromis entre d'une part l'importance des modifications apportées à l'image codée et d'autre part le nombre d'instructions nécessaires pour la coder. En effet, plus ces seuils préétablis ont une valeur élevée, moins le nombre d'instructions nécessaires pour coder l'image est important et plus l'apparence visuelle de l'image risque d'être modifiée. The different pre-established thresholds used in the device 2 limit the importance of the modifications made to the coded image. They are chosen to constitute a good compromise between the importance of the modifications made to the coded image and the number of instructions necessary to code it. Indeed, the higher these pre-established thresholds, the less the number of instructions needed to code the image is important and the visual appearance of the image may be changed.
Le dispositif et le procédé décrit ici sont particulièrement efficaces pour coder des images générées par un logiciel de dessin industriel. En particulier, le module 14 permet de réduire le nombre d'instructions tandis que le module 16 modifie l'image pour créer des polylignes en lieu et place de segments non connectés. Chaque polyligne est alors codée à l'aide d'une seule instruction ce qui réduit en fin de compte le nombre d'instructions nécessaires pour coder l'image initiale. The device and method described herein are particularly effective for encoding images generated by industrial design software. In particular, the module 14 reduces the number of instructions while the module 16 modifies the image to create polylines instead of unconnected segments. Each polyline is then encoded using a single instruction which ultimately reduces the number of instructions needed to encode the initial image.
Un tel procédé de codage présente un intérêt tout particulier pour la transmission sur un réseau, d'images au format vectoriel. Ce réseau est un réseau WiFi ou un réseau de telé-communication sans fil du type UMTS (Universal Mobile Telecommunication System). Such a coding method is of particular interest for the transmission over a network of images in vector format. This network is a WiFi network or a wireless communication network type UMTS (Universal Mobile Telecommunication System).
Le dispositif 2 et le procédé de la figure 2 permettent également de réduire l'empreinte mémoire de l'image codée ce qui permet d'afficher de telles images sur des terminaux équipés d'une mémoire restreinte tel que par exemple un téléphone mobile. The device 2 and the method of FIG. 2 also make it possible to reduce the memory footprint of the coded image, which makes it possible to display such images on terminals equipped with a restricted memory such as, for example, a mobile telephone.
Ici, l'image est modifiée lors de l'étape 80 en déplaçant l'extrémité d'au moins un segment pour que celle- ci soit confondue avec le point d'intersection des droites portant les deux segments. Ceci permet de limiter le nombre de point de la polyligne créée et donc la taille du fichier contenant les instructions codant l'image modifiée. Toutefois, en variante, la connexion de deux segments dont les extrémités sont proches et réalisées en ajoutant une instruction <line> définissant un nouveau segment raccordant les deux extrémités proches l'une de l'autre. Ainsi, dans cette variante, les extrémités des segments ne sont pas déplacées mais raccordées l'une à l'autre par l'intermédiaire d'un nouveau segment. Ceci permet également de créer des polylignes et donc de réduire le nombre d'instructions nécessaires pour coder l'image. Here, the image is modified during step 80 by moving the end of at least one segment so that it is coincident with the point of intersection of the lines carrying the two segments. This makes it possible to limit the number of points of the polyline created and thus the size of the file containing the instructions coding the modified image. However, alternatively, the connection of two segments whose ends are close and realized by adding a <line> instruction defining a new segment connecting the two ends close to each other. Thus, in this variant, the ends of the segments are not displaced but connected to each other via a new segment. This also makes it possible to create polylines and thus to reduce the number of instructions necessary to code the image.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0411098A FR2876818A1 (en) | 2004-10-19 | 2004-10-19 | Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0411098A FR2876818A1 (en) | 2004-10-19 | 2004-10-19 | Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2876818A1 true FR2876818A1 (en) | 2006-04-21 |
Family
ID=34949960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0411098A Pending FR2876818A1 (en) | 2004-10-19 | 2004-10-19 | Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2876818A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0279156A2 (en) * | 1987-02-19 | 1988-08-24 | GTX Corporation | Apparatus and method for vectorization of incoming scanned image data |
US5500927A (en) * | 1993-03-18 | 1996-03-19 | Macromedia, Inc. | System and method for simplifying a computer-generated path |
-
2004
- 2004-10-19 FR FR0411098A patent/FR2876818A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0279156A2 (en) * | 1987-02-19 | 1988-08-24 | GTX Corporation | Apparatus and method for vectorization of incoming scanned image data |
US5500927A (en) * | 1993-03-18 | 1996-03-19 | Macromedia, Inc. | System and method for simplifying a computer-generated path |
Non-Patent Citations (6)
Title |
---|
"Hp2Xchange Output File Formats", TAILORMADE.COM HOMEPAGE, 28 June 2004 (2004-06-28), INTERNET, XP002325564, Retrieved from the Internet <URL:http://web.archive.org/web/20040628214952/http://www.tailormade.com/documentation/Hp2xchange/HTML/pages/formats.html> [retrieved on 20050420] * |
"SurvCadd manuals: Chapter 3 - General Commands", 10 August 2003, CARLSON SOFTWARE, INTERNET, XP002325645 * |
"The AutoCAD 2000 Express Tools Part II (The Saga Continues)", CADENCE.ADVANSTAR.COM HOMEPAGE, 5 March 2004 (2004-03-05), INTERNET, pages 1 - 5, XP002325594, Retrieved from the Internet <URL:http://web.archive.org/web/20040305094600/http://cadence.advanstar.com/1999/0899/circles0899.html> [retrieved on 20050420] * |
AGILENT: "Advanced Design System 2002 - Importing and Exporting Designs", 12 April 2003, AGILENT TECHNOLOGIES, INTERNET, XP002325549 * |
DIEPSTRATEN JOACHIM ET AL: "Remote line rendering for mobile devices", PROC COMPUT GRAPH INT CONF CGI; PROCEEDINGS OF COMPUTER GRAPHICS INTERNATIONAL CONFERENCE, CGI; PROCEEDINGS - COMPUTER GRAPHICS INTERNATIONAL, CGI 2004 2004, 16 June 2004 (2004-06-16), CRETE, GREECE, pages 454 - 461, XP002325528, Retrieved from the Internet <URL:http://scholar.google.com/url?sa=U&q=http://ieeexplore.ieee.org/iel5/9151/29054/01309247.pdf> [retrieved on 20050420] * |
YIJIA LIN ET AL: "EDGE EXPRESSION BASED ON TREE STRUCTURE", PATTERN RECOGNITION, ELSEVIER, KIDLINGTON, GB, vol. 25, no. 5, 1 May 1992 (1992-05-01), pages 507 - 517, XP000291419, ISSN: 0031-3203 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8145656B2 (en) | Matching of modified visual and audio media | |
FR2728987A1 (en) | METHOD AND DEVICE FOR THE REDUCTION OF FORM INFORMATION AND ITS METHOD OF SEQUENTIAL POLYGONAL APPROXIMATION | |
WO1991000577A1 (en) | Method for segmenting the field of motion of an image and its application to the coding of video images | |
US20230334833A1 (en) | Training method and apparatus for image processing network, computer device, and storage medium | |
FR2747209A1 (en) | POLICE OF HOLLOW LETTERS WITH GRADUAL RETURN AND ITS CREATION, TRANSMISSION AND RETURN PROCEDURES | |
WO2009147224A1 (en) | Image coding method with texture synthesis | |
FR2815151A1 (en) | Method of locating images in a film, uses computation of characteristic value for each scene and compares quantized version of this value with database to quickly locate image | |
FR2959636A1 (en) | Method for accessing spatio-temporal part of video image sequence in e.g. mobile telephone of Internet, involves obtaining selection zone updating information, where information is decoding function of data corresponding to selection zone | |
FR2843212A1 (en) | Image or audiovisual sequence extraction method for extraction of an image or audiovisual sequence from an image flux, wherein images are analyzed to generate a reference index and this is compares with the current index | |
FR2768003A1 (en) | METHOD FOR CODING A BINARY SHAPE SIGNAL | |
FR2876818A1 (en) | Vectorial format image file e.g. DXF format file, transcoding method for e.g. Wi-Fi wireless local area network, involves replacing image encoding instructions defining segments by single instruction defining polyline | |
EP1116185A1 (en) | Method for compressing and encoding three-dimensional meshed network | |
CN110390336B (en) | Method for improving feature point matching precision | |
Miller et al. | Image restoration with the Viterbi algorithm | |
EP3646597B1 (en) | Method for decoding an image, coding method, devices, terminal equipment and computer programs associated therewith | |
EP3725080B1 (en) | Methods and devices for encoding and decoding a multi-view video sequence representative of an omnidirectional video | |
FR2821998A1 (en) | Method for coding digital images in macroblocks with exclusion based on reconstruction capacity estimated on the basis of concealment of errors | |
EP1596607B1 (en) | Method and device for generating candidate vectors for image interpolation systems using motion estimation and compensation | |
FR2929431A1 (en) | METHOD AND DEVICE FOR CLASSIFYING SAMPLES REPRESENTATIVE OF AN IMAGE DIGITAL SIGNAL | |
FR2825173A1 (en) | METHOD FOR DETECTING TEXT AREAS IN A VIDEO IMAGE | |
Siemonsma et al. | Neural Depth Encoding for Compression-Resilient 3D Compression | |
EP1141899B1 (en) | Method for simplifying a source mesh, taking into account the local curvature and the local geometry, and corresponding uses | |
EP1110409B1 (en) | Method for estimating motion between two images | |
WO2022069809A1 (en) | Method for encoding and decoding a multi-view video | |
EP4268024A1 (en) | Method and device for transmitting data representing a digital hologram, method and device for constructing a digital hologram and system for transmitting and constructing a digital hologram |