Methods for coding, transmitting, decoding and processing elements in a vector space or semantic data
The method encodes semantic data with variable-length bit sequences to transmit subsets of a vector space, addressing the challenge of optimizing data transmission for diverse AI tasks, ensuring efficient, secure, and adaptable communication.
Patent Information
- Application Number
- PCT/EP2025/087487
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-12-16
- Filing Date
- 2025-12-16
- Publication Date
- 2026-06-25
AI Technical Summary
Existing methods for transmitting semantic data require the sender to know the receiving application's task, making it impractical for telecommunications operators to optimize data transmission for various AI tasks, and cannot be generalized to diverse uses.
A method for encoding semantic data using variable-length bit sequences that identify subsets of a vector space, allowing transmission of bit sequences representing these subsets, enabling variable precision and adaptability without prior knowledge of the receiving application's task.
Enables efficient, secure, and adaptable transmission of semantic data, reducing network, energy, and hardware resource usage while maintaining confidentiality and precision, suitable for diverse AI applications.
Smart Images

Figure EP2025087487_25062026_PF_FP_ABST
Abstract
Description
[0001] Description
[0002] Title: Processes for encoding, transmitting, decoding and processing elements of a vector space or semantic data
[0003] technical field
[0004] The technical field is that of telecommunications.
[0005] More specifically, the invention relates to methods for encoding, transmitting, decoding, and processing elements of a vector space or semantic data. In particular, the invention enables communication, that is, the transmission and / or reception of semantic data with variable precision.
[0006] Semantic data will be transmitted by the process according to the invention from one piece of equipment to another. Such data is a particular type of data used in the field of artificial intelligence. The capabilities of artificial intelligence, and in particular generative artificial intelligence (the branch of artificial intelligence that focuses on the automatic production of media, especially texts, images, or videos), came to the public's attention with the online release of Chat-GPT (a product of the company Open AI), the first version of which dates from November 2022. Other generative artificial intelligence programs are being developed by companies such as Google (Gemini), Anthropic (Claude), and Mistral AI (Le Chat).The products mentioned here are chatbots, but other generative artificial intelligence products can produce images (such as DALL-E from Open AI, or Midjourney from the research laboratory of the same name), videos, sounds, computer programs, or even specifications for chemical molecules. Other artificial intelligence tasks might include pattern recognition, decision-making, classification, planning, or any other type of activity that mimics human intelligence.
[0007] Generative artificial intelligence programs encode the data they manipulate for processing in a format we call semantic data or semantic vectors. Semantic content—the meaning expected or interpreted by users of a text, image, or video—is thus associated with semantic data. Such semantic data is a high-dimensional vector in the space of real numbers. The typical number of dimensions for semantic data ranges from several hundred to several thousand. The MTEB project (Massive Text Embedding Benchmark) compares the performance of models used by generative artificial intelligence programs, and as of March 2024, of the ten best-performing models, seven used vectors of dimension 4096 and three of dimension 1024.
[0008] The most common term used in English to refer to semantic data manipulated by generative artificial intelligence programs is "embedding." However, this term conflates the function that encodes data, such as text or an image, for subsequent processing—a mathematical function that is an embedding (a translation of the English "embedding")—with the data obtained as the result of applying this function. To avoid this confusion between a function and its output, we will subsequently use only the term "semantic data" or "semantic vector" in this document, even though the term "embedding" is more frequently found in the literature, in both English and French.
[0009] Semantic data is therefore characterized by the fact that it represents semantic content in the form of computer data. It is possible to see that semantic content is indeed associated with semantic data by examining the transformations that can be applied to it. A classic example in artificial intelligence considers semantic data corresponding to the concept of "France," which can be transformed into semantic data corresponding to the concept of "Paris." The same transformation, applied to semantic data associated with "Germany," will produce semantic data associated with "Berlin," and similarly for data such as "Spain" - "Madrid," "Italy" - "Rome," and so on. This indicates that semantic content corresponding to a country or a city is indeed associated with the corresponding semantic data, and that manipulations of the semantic data correspond to manipulations of the concepts associated with the semantic data.
[0010] Semantic data, initially appearing in the context of generative artificial intelligence, has found uses across all artificial intelligence programs.
[0011] As mentioned, the semantic data we are discussing consists of vectors of real numbers ranging in size from several hundred to several thousand. These hundreds or thousands of real numbers that make up a semantic data point are generally represented for computer processing by a data type called a floating-point number (which uses 32 bits to represent them, i.e., 4 bytes). A semantic data point that is a vector of dimension 4096 will therefore have an approximate memory size of 16 KB (16 kilobytes).
[0012] It can be noted that the number of dimensions of semantic data tends to increase over time, and that the best performing models tend to use higher dimension vectors.
[0013] Some artificial intelligence researchers propose using vectors of complex numbers as semantic data. Such a proposal, if adopted and assuming a constant number of dimensions, would involve doubling the size of the semantic data by replacing a 32-bit floating-point number with two real numbers to represent a complex number.
[0014] We've talked about bits to represent computer data, but more generally, we should talk about sequences of symbols. Bits are symbols that come in pairs (0 and 1), but the transmissions actually carried out at the physical level rarely involve such paired symbols. The symbols transmitted at the physical level are, for example, electromagnetic waves to which phase-shift keying (PSK) is applied in order to transmit one value from among 4, 8, or 16 values. These techniques are used, for example, in mobile telecommunications. Phase-shift keying is called phase-shift keying in English, and the acronyms 4-PSK, 8-PSK, and 16-PSK are used to describe these modulations, which allow the transmission of one value from among 4, 8, or 16 values in a single transmission.In fiber optic transmissions, the physically transmitted symbols can take one value from among many possible values, and not just symbols like bits, which take their values from a pair of possible values. Even though the transmitted symbols themselves are not bits and can take more than two values, there is still a direct link between a transmitted symbol and bits in all cases. For example, in the case of 4-PSK modulation, the transmitted symbols can take four values, and these four values correspond respectively to the bit pairs '00', '01', '10', and '11'.
[0015] Therefore, in this document, we will refer to bit sequences for the sake of simplicity, but in a broader context, these can be understood as symbol sequences. These points are well known to those skilled in the art and will not be elaborated upon further.
[0016] State of the art
[0017] The future development of artificial intelligence promises an explosion in the transmission of semantic data. Indeed, one can easily imagine interesting applications in which semantic data would be transmitted from a device that produces it to another device that will use it.
[0018] For example, during a telephone conversation, a speech recognition system coupled with an interpretation system could interpret each sentence spoken by a speaker into a semantic field. The meaning of the speaker's sentence would then be associated with this semantic field. This semantic field would be transmitted to another speaker who would have an inverse interpretation system coupled with a speech synthesis system. This system would allow for automatic translation of the telephone conversation, regardless of the languages used by the speakers. In a conference call with speakers each speaking their own language, the participants would hear each other's contributions translated in real time into their respective languages.
[0019] To give another example, an artificial intelligence system can detect events such as an attack or burglary in video footage from a security camera. A user might want such a video surveillance service without the video feed of their home being transmitted externally. Rather than transmitting the video itself, an AI-powered video surveillance system can generate semantic data and transmit it. A system trained to detect intrusions will then only need this semantic data to detect potential intrusions, thus preserving the privacy of the users of the video surveillance system.
[0020] In the field of telecommunications, research is beginning to explore the concept of semantic networks that automatically adapt to the needs of applications transmitting data over the network, using artificial intelligence techniques. Such semantic networks must rely on general-purpose information representations that lend themselves to automatic adaptation and optimization. These representations can carry semantic data of various kinds, such as images, text, or even configuration elements of the semantic network itself. A semantic network therefore relies on semantic data as its elementary data format.
[0021] These examples of possible applications show the general interest in transmitting semantic data (often called embeddings in English) in computer and / or telecommunications networks or, more generally, in interconnecting artificial intelligence systems in order to respond to complex tasks.
[0022] The scientific field of semantic communications focuses on the challenge of communicating only the minimum amount of data necessary to complete a task. In this approach, the transmission of semantic data involves varying the transmitted data according to the needs of subsequent processing. Currently, the transmission of semantic data requires the sender to know the receiving application in order to implement this variation.
[0023] A major drawback of this approach is that the processing performed before transmission depends on the expected task at the receiver. However, this receiver task cannot be known in all cases. Knowing this receiver task also implies that the telecommunications operator (which transmits the data and often prepares it for transmission) must be informed of the tasks performed by the applications using its network. However, telecommunications operators are generally agnostic regarding the applications using their networks. Furthermore, it would be highly impractical to develop network optimizations specific to each expected processing task.For these reasons, such an approach could only be applied in the very specific case of a dedicated application between a sender and a receiver connected by a private network, where specific optimizations would be implemented to optimize the intended artificial intelligence task. This approach cannot be generalized to the countless expected uses in artificial intelligence, nor more generally to all uses where the goal is to adapt the transmitted data according to the processing that will be performed by the receiving application.
[0024] The invention improves the situation. Description of the invention
[0025] According to a first functional aspect, the invention relates to a method of encoding an element, called the element to be coded, belonging to a vector space comprising a plurality of subsets identified respectively by sequences of bits, in which said element to be coded is encoded in the form of a sequence of bits identifying a subset in which the element is located.
[0026] The element of the vector space that is encoded by the coding method of the invention is a semantic datum. In the following, the term "semantic datum" may be used and will always refer to an element of the vector space under consideration.
[0027] The vector space to which the element to be encoded, which is semantic data, belongs is typically a real vector space of high dimensions (several thousand) and therefore corresponds to a vector space to which semantic data belong. This vector space comprises several subsets. In the following, the term "part" can be used to designate a subset of the vector space. The term "subpart" can also be used in this sense. The term "region" can also be used in this sense.
[0028] A subset is identified by a sequence of bits. An element is encoded by a sequence of bits that identifies the subset to which the element to be encoded belongs.
[0029] In one embodiment, the length of the bit sequence, that is, the number of bits in the bit sequence obtained by the encoding process, is variable. It is therefore possible, thanks to the invention, to encode an element of the vector space with variable precision. The longer the bit sequence, the smaller the subset of the vector space in which the element to be encoded can be located, and thus the greater the precision with which the element is encoded, and therefore the greater the semantic data.
[0030] In one embodiment, the longer a bit sequence is, the smaller the corresponding subset of the vector space. In this embodiment, the error due to encoding by a bit sequence instead of the element of the vector space or semantic data will decrease as the length of the bit sequence used for encoding increases.
[0031] According to one embodiment of the method of encoding an element, when a first sequence identifying a first subset of the vector space is the prefix of a second sequence identifying a second subset of the vector space, then the first subset identified by the first sequence includes the second subset identified by the second sequence.
[0032] Thanks to this embodiment, the method provides a practical way to ensure that the longer a bit sequence is, the smaller the subset of the vector space identified by the sequence, which corresponds to increased encoding accuracy. Let's say a short sequence corresponds to a given first part or subset of the vector space. This first part can be divided into several sub-parts, each sub-part corresponding to a distinct bit sequence. The complete bit sequences that correspond to one of the sub-parts in the complete vector space will then be formed by using the bit sequence corresponding to the first part as a prefix, followed by the bit sequences corresponding to the sub-parts in order to locate the sub-part within the first part.The sub-part corresponding to a complete sequence is indeed included in the first part, and the sequence corresponding to the first part is indeed a prefix of the complete sequence corresponding to the sub-part.
[0033] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, when a first sequence obtained by encoding an element is the prefix of a second sequence obtained by encoding the same element, then the subset corresponding to the first sequence includes the subset corresponding to the second sequence.
[0034] According to one embodiment, the sequence obtained comprises a first part, followed by a second part, and the second part identifies the subdivision of a subset in which the element is located.
[0035] According to one embodiment of the coding method, a subset identified by a bit sequence is defined by the bit values of the sequence, a bit value indicating whether a coordinate of an element of the identified subset is less than or greater than a predefined bound for a given dimension, the bound and the dimension being functions of the position in the sequence. The predefined bound constitutes a reference point.
[0036] This embodiment provides a practical way to define the correspondence between a bit sequence and a subset of a given vector space. Boundaries can be predefined on the different dimensions of the vector space. A bit, at a given location in the sequence, will then indicate whether the element of the vector space to be encoded lies, for that dimension, below or above the predefined bound. A complete bit sequence can thus divide a subset, or a part or subpart, of the given vector space by dichotomy with increasing precision.
[0037] Other implementations are possible, for example, in which the partitioning of the vector space is not orthogonal to predefined bounds on the different dimensions of the space. It is possible, for instance, to link together the values taken from the different dimensions of the vector space to account for a correlation between these different dimensions. Any type of partitioning of the given vector space is possible, and any type of correspondence with bit sequences.
[0038] It is not necessary for the subdivision of the vector space into subsets to cover the entire vector space. For example, the subsets of the vector space may only cover a portion around the origin where the absolute values of the vector space elements in different dimensions are less than given bounds, which may differ for each dimension. Elements of the vector space located in a portion of the vector space not covered by an identified subset cannot then be encoded by the encoding method according to the invention.
[0039] According to an embodiment which can be implemented alternatively or cumulatively to the preceding modes, the number of bits in the sequence is determined based on information relating to at least one of the following: coding precision, resolution level and quality of service.
[0040] As we have seen, the variable length of the bit sequence allows for variable encoding precision. Depending on the intended use of the encoded element, a quality of service (QoS) may be required. Information regarding the QoS can therefore be used to determine the number of bits in the sequence encoding the element. It is also possible to define resolution levels, which will translate into a specific number of bits in the sequence. The encoding precision, in terms of the size of the identified subset containing the element to be encoded, also helps determine the number of bits in the sequence, that is, the length of the bit sequence.
[0041] In one embodiment, which can be implemented alternatively or cumulatively to the preceding embodiments, the number of bits in the sequence is determined based on information associated with a receiving entity. The element encoded as a bit sequence is intended, in some embodiments, to be transmitted to a receiving entity. Depending on the needs of the receiving entity, and for example, the needs of the applications using the elements encoded according to the encoding method, information associated with the receiving entity can be derived that allows the number of bits, or length, of the bit sequence to be determined.
[0042] According to an embodiment which can be implemented alternatively or cumulatively to the preceding embodiments, the information associated with a receiving entity is received from said receiving entity.
[0043] The receiving entity can send a message that provides the encoding process with information that allows it to determine the number of bits or the length of the bit sequence. Such information could, for example, relate to the quality of service, a resolution level, or the encoding precision.
[0044] According to an embodiment which can be implemented alternatively or cumulatively to the preceding modes, the number of bits in the sequence is modified over time until an agreement message is received from a receiving entity.
[0045] With this embodiment, the coding process seeks to modify the number of bits in the sequence, and therefore the accuracy of the resulting encoding, on its own initiative. The receiving entity can then wait until the accuracy obtained, in terms of the number of bits in the sequence, meets its needs, for example, quality of service requirements. The receiving entity can then send an acknowledgment message indicating that the number of bits in the sequence is adequate.
[0046] According to an embodiment that can be implemented cumulatively with the previous one, the number of bits in the sequence increases. According to an embodiment that can be implemented alternatively with the previous one, the number of bits in the sequence decreases. Such an adaptation of the number of bits in the sequence can be carried out either by starting from a low point and increasing the number of bits in the sequence until a confirmation message is received, or conversely, by starting from a high point and decreasing the number of bits in the sequence, again until a confirmation message is received.
[0047] According to another functional aspect, the invention relates to a transmission method, from a transmitting entity, the method comprising: - transmitting to a receiving entity a sequence of bits obtained by encoding an element to be transmitted from a vector space according to the encoding method according to the invention.
[0048] Thanks to this invention, a semantic element or element of a vector space is transmitted from a sending entity to a receiving entity in a very economical way. Indeed, instead of transmitting the element or data to be communicated, a sequence of bits representing a subset or part of the vector space is transmitted. The receiving entity therefore does not receive the element or semantic data as such, but a sequence of bits that allows it to know the subset or part of the vector space in which the semantic data to be communicated is located. The receiving entity thus knows the semantic data to within a certain error, which is the maximum possible distance between two semantic elements present in that part.For many applications, it is not necessary to know the communicated data precisely but just an approximation of it; in this case, the gain in terms of data to be transmitted between a complete semantic data and a sequence of bits corresponding to a part of the vector space does not degrade the quality of the service provided.
[0049] As previously stated, the element to be transmitted from a vector space corresponds to semantic data and can be referred to as such hereafter. Similarly, a subset of the vector space corresponds to a part of the vector space and can be referred to as such hereafter. In the remainder of this document, we will use the term "communication" instead of "transmission" when dealing with semantic data, to indicate that it is a sequence of bits representing a subset of the vector space that is transmitted, and not the semantic data itself or element of the vector space. We can then speak of communicated semantic data instead of transmitted semantic data. We can also use the term "sending management entity" instead of "sending entity." We can also use the term "receiving management entity" instead of "receiving entity."
[0050] In one embodiment, the longer the bit sequence obtained by encoding the element to be transmitted, the smaller the corresponding part of the vector space. In this embodiment, the error due to transmitting a bit sequence instead of the data to be communicated decreases as the length of the bit sequence obtained by encoding and then transmitted increases.
[0051] The method according to the invention thus enables very significant savings in network, energy, and hardware resources for communicating semantic data. Furthermore, the method does not directly transmit the semantic elements or data to be communicated, but rather sequences of bits that correspond to regions of the vector space in which the semantic data is located. The method therefore preserves a certain degree of confidentiality for the communicated semantic data. A potential attacker who manages to intercept the transmissions would not have access to the exact semantic data communicated, but to an approximation thereof.
[0052] In one embodiment, the process is iterative and includes:
[0053] - during an nth iteration, transmit to the receiving management entity an nth sequence of bits obtained by encoding the element to be transmitted with an encoding process according to the invention.
[0054] Furthermore, the length of the transmitted bit sequence can vary between iterations because the length of the bit sequence obtained by the encoding process is variable. In this way, the communication method offers the advantage of variable precision. When the application using the communicated semantic data can operate with imprecise semantic data, short bit sequences will be used, corresponding to larger portions of the vector space containing the communicated semantic data. Conversely, when the application needs to communicate precise semantic data, the bit sequences will be longer in order to correspond to a smaller portion of the vector space, for which the associated error will be lower.At the extreme, the bit sequence corresponding to a precise semantic value—that is, to a precise point in the given vector space—and corresponding to the transmission of 32 bits for each real dimension of the semantic value, can be transmitted. In this case, the maximum precision that can be achieved by encoding real numbers using 32 bits is reached.
[0055] This advantage of variable precision is further achieved without having to adapt the semantic data to be communicated according to the task for which it is intended. The precision with which the semantic data is communicated is adjusted by choosing a greater or lesser length for the transmitted bit sequences, without prior knowledge of the tasks for which the semantic data is being communicated. This is particularly advantageous for a telecommunications operator, which can communicate semantic data in an agnostic manner. A telecommunications operator can use the method according to the invention to communicate semantic data without needing to know the specific characteristics of the applications that will use this semantic data. By using the method according to the invention, it is not necessary to develop network optimizations specific to each expected processing task.
[0056] The method according to the invention, in one embodiment, is iterative. It comprises, for example, a succession of steps: first, obtaining a sequence by encoding the element to be transmitted, and then transmitting the resulting sequence. Thanks to this iterative aspect, the invention enables complete communication between applications by communicating multiple semantic data points. The succession of steps for obtaining and transmitting a sequence allows for the communication of multiple semantic data points, for example, one with each sequence transmission. It is also possible to complete an initial transmission of a sequence by obtaining bits that complete the first sequence to form a second, longer sequence, and then transmitting only the bits that complete the first sequence, which corresponds to the transmission of the second sequence.
[0057] According to one embodiment, the sequence obtained is a sequence of symbols other than bits.
[0058] In this embodiment, the resulting and transmitted bit sequence is a series of symbols belonging to a set of symbols, rather than a sequence of bits. In some embodiments, these symbols correspond to quantities used in the physical transmission employed by the process. For example, as explained above, the calculated sequence can be a series of symbols corresponding to phase-change modulations among four possible phase changes, i.e., 4-PSK symbols. In this case, the sequences would be series of values chosen from among the four possible 4-PSK values. A sequence of 8 4-PSK symbols would then take one value from among 65,536 possibilities (since 4 to the power of 8 equals 65,536), and a vector space divided into 65,536 regions could be located by indexes of length 8 formed by 4-PSK symbols instead of 16-bit sequences.In this embodiment, the coding method according to the invention is therefore adapted so that the sequences encoding an element of the vector space, identifying subsets of the vector space, are sequences of symbols other than bits. Hereafter, we will most often choose examples in which the sequences are formed of bits, but it is clear that these examples are only a few among many.
[0059] The transmission of the sequence obtained by encoding the element to be transmitted can be achieved by directly transmitting the sequence of symbols forming the sequence. In other embodiments, the sequence of symbols forming the obtained sequence is translated into a format suitable for transmission and then transmitted, which corresponds to the transmission of the sequence.
[0060] According to one embodiment, which can be implemented alternatively or cumulatively with the previous embodiment, a semantic data to be communicated is cut into several sub-data belonging to vector subspaces of the given vector space and a sequence is obtained for a sub-data, corresponding to a part of a given vector subspace in which the sub-data is located, and the sequences obtained from the sub-data are transmitted to communicate the complete data.
[0061] Thanks to this embodiment, the method according to the invention is adapted to the dimensions of the semantic data to be communicated. A bit sequence of a given length, for example, a few bytes, can delimit a sufficiently precise portion within a vector space of a given dimension, say, a few units, for example, dimension 2. However, the semantic data to be transmitted consists of elements or points belonging to high-dimensional vector spaces (from a few hundred to a few thousand). One approach is therefore to divide the semantic data to be communicated into several sub-data of a suitable dimension, for example, dimension 2. The sequences obtained and then transmitted will then correspond to sub-data for a vector subspace of the given vector space.Upon reception, it will be possible to combine all the obtained sequences to reconstruct the corresponding part of the given vector space where the complete semantic data is located. In this embodiment, it is not necessary to use the same length of bit sequences for the different segmented parts. Some can benefit from a longer sequence, and therefore be communicated with greater precision.
[0062] According to one embodiment, which can be implemented alternatively or cumulatively with the previous embodiments, the sequence transmitted during an nth iteration is the continuation of the sequence transmitted during the previous iteration.
[0063] Thanks to this embodiment, the method according to the invention can operate by refining the desired accuracy during the transmission of a sequence. The transmission step then corresponds to the transmission of a first part of a sequence, and the following step corresponds to the transmission of the remainder of the same sequence. In this way, if the accuracy obtained by transmitting the first part of the sequence is sufficient, the remainder of the sequence will not be transmitted, thus saving network, hardware, and energy resources. The remainder of the sequence can be transmitted in a subsequent iteration or transmission step to achieve the desired level of accuracy.
[0064] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, when a first sequence obtained by encoding the element to be transmitted is the prefix of a second sequence obtained by encoding the element to be transmitted, then the subset corresponding to the first sequence includes the subset corresponding to the second sequence.
[0065] Thanks to this embodiment, the method provides a practical way to ensure that the longer a sequence obtained by encoding an element to be transmitted, the smaller the corresponding subset or part of the vector space. Let's say a short sequence corresponds to a given first part of the vector space. This first part can be divided into several sub-parts, each sub-part corresponding to a distinct bit sequence. The complete bit sequences that correspond to one of the sub-parts in the complete vector space will then be formed by using the bit sequence corresponding to the first part as a prefix, followed by the bit sequences corresponding to the sub-parts, in order to locate the sub-part within the first part.The sub-part corresponding to a complete sequence is indeed included in the first part, and the sequence corresponding to the first part is indeed a prefix of the complete sequence corresponding to the sub-part.
[0066] This embodiment can be advantageously combined with the previous one; a first sequence of bits can be transmitted in a first iteration, corresponding to a prefix of a more complete bit sequence. This sequence can then be completed by a suffix transmitted in a subsequent iteration, which specifies the sub-part included in the first part where the semantic element or data to be communicated is located.
[0067] It is possible to imagine other embodiments in which there is no equivalence between the inclusion relation of the subsets of the given vector space and the prefix relation between corresponding bit sequences. A partition of the vector space can be imagined, and then random sequences assigned to the different subsets, the longest corresponding to the smallest subsets included within larger subsets, without necessarily including the prefixes of the sequences. This version provides an alternative to the preferred embodiment.
[0068] It is also possible in this arbitrary segmentation method to have longer bit sequences corresponding to larger parts of the given vector space. According to one embodiment, which can be implemented alternatively or cumulatively with the preceding methods, a subset corresponding to a bit sequence obtained by encoding an element to be transmitted is defined by the bit values of the sequence that indicate, according to their position in the sequence, whether the element to be transmitted, for a given dimension, is less than or greater than a predefined bound.
[0069] This embodiment provides a practical way to define the correspondence between a bit sequence and a given portion of the vector space. Boundaries can be predefined on the different dimensions of the vector space. A bit, at a given location in the sequence, will then indicate whether the semantic data to be communicated lies, for that dimension, below or above the predefined bound. A complete bit sequence can thus divide a portion or sub-portion of the given vector space by dichotomy with increasing precision.
[0070] Other implementations are possible, for example, in which the partitioning of the vector space is not orthogonal to predefined bounds on the different dimensions of the space. It is possible, for instance, to link together the values taken from the different dimensions of the vector space to account for a correlation between these different dimensions. Any type of partitioning of the given vector space is possible, and any type of correspondence with bit sequences.
[0071] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, the receiving management entity sends to the sending management entity a message setting the length of the transmitted bit sequences.
[0072] With this embodiment, the receiving management entity can adjust the precision with which the sending management entity communicates semantic data. The receiving management entity can request that it receive longer or shorter bit sequences. Generally, a longer bit sequence corresponds to a smaller portion of the vector space containing the semantic data to be communicated, and in this case, increasing the length of the transmitted bit sequences increases the precision of the process.
[0073] The receiving management entity is best positioned to determine the most appropriate sequence length. Indeed, the receiving management entity will provide the semantic data to the application, such as an artificial intelligence application, which will use it. This application can then judge whether the accuracy is sufficient for its needs or needs improvement. Based on feedback from the user application, the receiving management entity can request longer or shorter bit sequences for communicating semantic data.
[0074] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, the receiving management entity sends the sending management entity a message requesting a variation in the length of the bit sequence.
[0075] Thanks to this embodiment, the method according to the invention is made more dynamic. Rather than fixing a fixed length for the transmitted bit sequence once and for all, this embodiment allows the length of the transmitted sequences, and therefore the precision of the method, to be modified during a communication session involving multiple semantic data points. The method is thus made adaptive because the precision required by the user application can vary during the communication of the semantic data. The message requesting a variation in the sequence length can also request no variation in this length, meaning that it remains unchanged because it corresponds to the required precision.
[0076] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, the issuing management entity will periodically decrease the length of the transmitted bit sequences even in the absence of a message requesting a decrease in this length.
[0077] Thanks to this implementation, the process becomes even more adaptive and dynamic while optimizing the use of network, energy, and hardware resources. When the receiving management entity can send messages requesting an increase or decrease in the length of the transmitted bit sequences, it is likely that, once sufficient precision is achieved, it will not request a decrease in the length of the transmitted bit sequences since this decrease would imply a decrease in the precision of the communicated semantic data.
[0078] However, it is possible that, as transmission conditions change over time, along with the needs of consuming applications, a level of precision necessary at one point may become superfluous later in the transmission. By periodically reducing the length of transmitted bit sequences on its own initiative, the sending management entity will decrease the precision of the communicated semantic data. But this reduced precision may still be sufficient for the receiving management entity and the generative artificial intelligence application using the communicated semantic data. In this case, reducing the length of transmitted bit sequences saves network, energy, and hardware resources. This reduction, initiated by the sending management entity, is suitable for the receiving management entity, which would not have requested it itself.
[0079] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, the sending management entity begins the transmission of bit sequences of a given length and increases this length until it receives a message from the receiving entity indicating that the length of the transmitted bit sequences should no longer vary.
[0080] This embodiment offers another adaptive and dynamic variant of the process. The process begins with the transmission of short sequences, corresponding to a low level of precision in the communicated semantic data. The transmitting management entity then progressively increases the length of the transmitted bit sequences, and thus the associated precision, until it reaches a level sufficient for the receiving management entity and the application(s) using the calculated semantic data. The receiving management entity then transmits a message indicating that the achieved level of precision is satisfactory.
[0081] This implementation makes it possible to achieve the desired level of accuracy using a minimum of coordination messages between the sending and receiving management entities. Furthermore, since the initial level of accuracy is low but resource-efficient, this implementation ensures that the final level of accuracy will be as economical as possible while still providing sufficient quality of service. In other words, this implementation guarantees no waste in achieving sufficiently efficient communication of semantic data.
[0082] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, the sending management entity begins the transmission of bit sequences of a given length and decreases this length until it receives a message from the receiving entity indicating that the length of the transmitted bit sequences should no longer vary.
[0083] This embodiment offers a reverse implementation of the previous one. The transmitting management entity begins by sending bit sequences with high precision, for example, the maximum precision specified by the method. By decreasing the precision until the receiving management entity indicates that the precision should not change further, this embodiment of the method also allows sufficient precision to be achieved for the user applications. Starting from a higher precision, this embodiment guarantees that no information is lost, even during the initial setting of the desired precision.This embodiment can be adapted to use cases such as video surveillance applications in security contexts that require guarantees of no information loss or that cannot tolerate a setup time before effective data transmission, i.e., that cannot tolerate initial latency.
[0084] According to one embodiment, which can be implemented alternatively or cumulatively with the preceding embodiments, for a given length of transmitted bit sequences, several sequences are transmitted at once by the sending management entity to the receiving management entity.
[0085] This implementation involves batch transmission of several bit sequences, each corresponding to a portion of the vector space containing semantic data to be communicated. Once a precision is fixed, or even while this length is being negotiated, it can be advantageous to transmit several sequences corresponding to multiple pieces of semantic data in a single transmission.
[0086] According to another functional aspect, the invention relates to a method of decoding a sequence of bits to obtain an element belonging to a vector space comprising a plurality of subsets identified respectively by sequences of bits, said element obtained being defined by its belonging to a subset of the vector space identified by the sequence of bits to be decoded.
[0087] The decoding process performs the inverse process of the encoding process according to the invention. From a sequence of bits, the decoding process recovers an element of the vector space. The element obtained by the decoding process is an element located in the subset of the vector space identified by the bit sequence to be decoded. It is therefore not, in general, the same element as the one initially encoded, but a nearby element since it lies in the same subset of the vector space as the one initially encoded. Because the accuracy of the encoding is variable, for example by changing the length of the resulting bit sequence, the subset identified by the sequence to be decoded can be made as small as necessary, and the accuracy obtained from the encoding and decoding processes can therefore vary according to requirements.One way to obtain the element or semantic data in question could be, for example, by randomly selecting a point from the portion of the vector space corresponding to the received bit sequence. In one embodiment, obtaining the element involves randomly selecting an element from the subset identified by the bit sequence.
[0088] According to another embodiment, obtaining the element includes determining the geometric center of said subset identified by said bit sequence.
[0089] This embodiment offers an alternative for obtaining a semantic element or data point present in the subset of the vector space corresponding to the bit sequence to be decoded. Rather than performing a random selection, the obtained semantic element or data point will be the geometric center of the subset or part of the vector space in question. This embodiment has the advantage, compared to a random selection, of being easier to implement since the geometric center can be determined in advance. In a variant, a predefined point or element can be chosen instead of the geometric center.
[0090] According to another functional aspect, the invention relates to a processing method implemented by a receiving entity, the method comprising:
[0091] - receive a sequence of bits;
[0092] - to obtain an element of a vector space, called the received element, by decoding the received bit sequence according to a decoding process according to the invention.
[0093] The bit sequence can be received from a sending entity.
[0094] The semantic data or element obtained by the processing method, called the received element, is then used in place of the semantic data or element to be transmitted. The processing method can also be considered a method for receiving semantic data.
[0095] The functional aspect corresponds to the reception of the semantic data that must be communicated to the receiving management entity. It is not the semantic data itself that is transmitted, but a sequence of bits obtained by encoding the semantic data using an coding method according to the invention. This sequence then corresponds to a portion of the vector space in which the communicated semantic data is located. The receiving management entity will therefore obtain semantic data that is not necessarily the semantic data to be communicated, but which is located in the same portion of the vector space and will be considered as the semantic data received through the method according to the invention. The received element is obtained by decoding the received bit sequence using a decoding method according to the invention.One way to obtain the semantic data in question could be, for example, by randomly selecting a point present in the part of the vector space corresponding to the received bit sequence.
[0096] Depending on the size of the vector space segment in question, the precision of the semantic data communication varies. It must be sufficient for the needs of the applications using the communicated semantic data, which are linked to the receiving management entity. Different implementations allow the precision of the communicated semantic data to be adapted to the needs of the user applications by varying the length of the received bit sequence.
[0097] According to one embodiment, the processing method further includes the transmission of associated information to the receiving entity.
[0098] Information associated with the receiving entity can be transmitted to a sending entity.
[0099] According to one embodiment, said information relates to at least one of the following: coding accuracy, resolution level and quality of service.
[0100] This embodiment allows the receiving entity to transmit information relating to the expected quality of service, a level of resolution requested, or a coding precision.
[0101] According to one embodiment, the processing method further includes the transmission of a message requesting a change in the number of bits in the bit sequence.
[0102] According to one embodiment, the number of bits in the received sequence being modified over time, the processing method involves the transmission of an agreement message to a sending entity.
[0103] The embodiment allows the receiving entity to inform the sending entity that an adequate number of bits in the received sequence has been reached.
[0104] According to one embodiment of this other functional aspect, the processing method is iterative and includes:
[0105] - during an nth iteration, receive, from the issuing management entity, an nth sequence of bits obtained by encoding an element to be transmitted with an encoding process according to the invention and obtain the received element by decoding the nth sequence of bits received with a decoding process according to the invention.
[0106] According to one embodiment of this other functional aspect, the receiving management entity sends a message to the sending management entity requesting a variation in the length of the bit sequence.
[0107] Thanks to this embodiment, the iterative process is adaptive in the sense that the receiving management entity can ask the sending management entity to increase or decrease the precision of the communication of the semantic data by varying the length of the bit sequence.
[0108] According to one embodiment of this other functional aspect, the semantic data obtained is the geometric center of the part of the vector space corresponding to the received bit sequence.
[0109] This embodiment offers an alternative for obtaining semantic data present in the portion of the vector space corresponding to the received bit sequence. Rather than performing a random selection, the semantic data obtained will be the geometric center of the relevant portion of the vector space. This embodiment has the advantage, compared to a random selection, of being easier to implement since the geometric center can be determined in advance. In a variant, a predefined point can be chosen instead of the geometric center.
[0110] According to a first material aspect, the invention relates to an encoder implementing a coding method according to the invention.
[0111] According to another material aspect, the invention relates to a transmitting entity, implementing a transmission method, the transmitting entity comprising the following module:
[0112] - A transmitter capable of transmitting a sequence of bits obtained by encoding an element of a vector space, called the element to be transmitted, according to a coding method according to the invention.
[0113] According to one embodiment of this material aspect, the emitting entity further comprises an encoder implementing an coding process according to the invention.
[0114] The transmitting entity can transmit the bit sequence to a receiving entity. According to one embodiment of this hardware aspect, the invention relates to telecommunications equipment comprising a transmitting entity according to the invention.
[0115] Such telecommunications equipment could be, for example, a router, a home or business gateway, a network card in computer equipment such as a computer or mobile device, or a communicating object such as a camera or other object producing vector space elements or semantic data for artificial intelligence applications or otherwise. In general, a transmitting management entity according to the invention can be embedded in any type of object or equipment that produces vector space elements or semantic data for a remote receiver or that transmits such data to another device in a computer or telecommunications network.
[0116] According to one embodiment, the invention relates to a communication terminal comprising hardware and / or software elements enabling the connection of said terminal to a mobile telephone network and further comprising a transmitting management entity according to the invention.
[0117] According to another material aspect, the invention relates to a decoder implementing a decoding method according to the invention.
[0118] According to another material aspect, the invention relates to a receiving entity, implementing a processing method, the receiving entity comprising the following module:
[0119] - A receiver capable of receiving a sequence of bits obtained by encoding an element of a vector space, called the element to be transmitted, according to a coding process according to the invention.
[0120] According to one embodiment of this material aspect, the receiving entity further comprises a decoder capable of obtaining an element of a vector space by decoding the received bit sequence according to a decoding process according to the invention.
[0121] According to another embodiment of this material aspect, the invention relates to telecommunications equipment comprising a receiving entity according to the invention.
[0122] Such telecommunications equipment could be, for example, a router, a gateway in a home or business environment, a network card in computer equipment such as a computer or mobile device, or equipment managing data reception in a cloud computing system. In general, a receiving management entity according to the invention can be embedded in any type of object or equipment that receives elements of a vector space or semantic data for storage or processing by artificial intelligence or other applications, or that is required to receive such data in a computer or telecommunications network.
[0123] According to one embodiment, the invention relates to a communication terminal comprising hardware and / or software elements enabling the connection of said terminal to a mobile telephone network and further comprising a receiving entity according to the invention.
[0124] In some embodiments, the management entities handling the transmission and reception of an element of a vector space or semantic data are integrated into a single device. In some of these embodiments, the devices in question may be routers that perform both communication to other devices and reception of semantic data from other devices. In other embodiments, the management entities handling communication and reception correspond to distinct components of the same device. The transmitting management entity may correspond to a component that produces semantic data, and the receiving management entity to a component that stores and reads the produced semantic data. The transmission channel between the devices in this case is a software bus that connects the two components of the same device.For example, in an autonomous vehicle or robot, the transmitting management entity can be integrated into an environmental sensor that transforms environmental data into semantic data, and the receiving management entity can be integrated into a computing center that processes the semantic data transmitted by the sensors to determine the vehicle's reaction to the autonomous robot. Any other communication architecture is possible.
[0125] According to a material aspect, the invention relates to telecommunications equipment comprising an encoder according to the invention and / or a transmitting entity according to the invention and / or a decoder according to the invention and / or a receiving entity according to the invention.
[0126] According to a material aspect, the invention relates to a communication terminal comprising hardware and / or software elements enabling the connection of said terminal to a mobile telephone network and further comprising an encoder according to the invention and / or a transmitting entity according to the invention and / or a decoder according to the invention and / or a receiving entity according to the invention.
[0127] According to another material aspect, the invention relates to a data carrier on which is recorded a computer program comprising a sequence of instructions for implementing the method of encoding an element belonging to a vector space according to the invention when it is loaded into and executed by a processor.
[0128] According to another material aspect, the invention relates to a data carrier on which is recorded a computer program comprising a sequence of instructions for implementing the method of transmitting an element of a vector space according to the invention when it is loaded into and executed by a processor.
[0129] According to another material aspect, the invention relates to a data carrier on which is recorded a computer program comprising a sequence of instructions for implementing the method of decoding a sequence of bits into an element belonging to a vector space according to the invention when it is loaded into and executed by a processor.
[0130] According to another material aspect, the invention relates to a data carrier on which is recorded a computer program comprising a sequence of instructions for implementing the process of processing an element of a vector space according to the invention when it is loaded into and executed by a processor.
[0131] According to another material aspect, the invention relates to a data carrier on which is recorded one or more computer programs comprising sequences of instructions for the implementation of the method of encoding an element belonging to a vector space according to the invention and / or the method of transmission according to the invention and / or the method of decoding according to the invention and / or the method of processing according to the invention when it is loaded into and executed by a processor.
[0132] Data storage media can be any entity or device capable of storing programs. For example, media can include a storage medium, such as a ROM (e.g., a CD-ROM or a microelectronic circuit ROM), or a magnetic recording medium such as a hard drive. Alternatively, media can be transmissible, such as an electrical or optical signal, which can be transmitted via an electrical or optical cable, by radio, or by other means. Programs according to the invention can, in particular, be downloaded from a network such as the Internet. Alternatively, the information storage medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the process in question.The program according to the invention can use any type of computer technology in terms of compiled programming languages, interpreted languages, or a combination of both, as well as in terms of operating systems.
[0133] Brief description of the figures
[0134] The invention will be better understood upon reading the following description, given by way of example, and made with reference to the accompanying drawings in which:
[0135] [Fig 1] represents a system composed of a transmitting entity and a receiving entity implementing the invention.
[0136] [Fig 2] illustrates an example of correspondence between bit sequences and subsets or parts of a vector space.
[0137] [Fig 3] illustrates an example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0138] [Fig 4] illustrates another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0139] [Fig 5] illustrates another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0140] [Fig 6] illustrates another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0141] [Fig 7] illustrates another example of correspondence between bit sequences and subsets or parts of a vector space.
[0142] Detailed description
[0143] Figure 1 represents a transmitting entity 100 that manages the communication of an element of a vector space or semantic data SD from a device EQ1 to a device EQ2, via a CNL communication channel. A receiving entity 200 manages the reception of a vector element or semantic data SD'. The semantic data SD and SD' are elements belonging to a given vector space.
[0144] In the following, the term "semantic data" may be used in place of "element of a vector space," and the term "part of the vector space" may be used in place of "subset of the vector space." The term "region" may also be used to mean either a subset or a part of the vector space. In the following, the term "issuing management entity" may be used in place of "issuing entity." Similarly, the term "receiving management entity" may be used in place of "receiving entity." Furthermore, the expression "length of the bit sequence" refers to the number of bits in the bit sequence.
[0145] In the implementation example shown in Figure 1, management entity 100 comprises the following modules:
[0146] - A coding encoder or module 101 according to the invention of an element to be transmitted SD into a sequence of bits S. The encoder 101 can also be described, equivalently, as a module for obtaining, for a semantic data to be communicated SD, a sequence of bits S, a sequence corresponding to a part of the given vector space and the data to be communicated SD being located in the part of the vector space corresponding to the sequence S obtained;
[0147] - A transmitter or module 102 transmits to a receiving entity 200 the sequence of bits obtained S in place of the data to be communicated SD.
[0148] In another embodiment example, the transmitting entity 100 comprises only a transmitter 102 and interacts with an encoder 101 which is not part of the transmitting entity 100 to encode a vector element to be transmitted or data to be communicated SD into a bit sequence S which is then transmitted by the transmitter 102 to a receiving entity.
[0149] In the examples presented here, the bit sequences are such that the longer a sequence is, the smaller the corresponding part of the vector space, but other embodiments are possible.
[0150] The resulting sequence S is transmitted via a CNL communication channel between the first device EQ1 and the second device EQ2. In the embodiment shown in Figure 1, the receiving entity 200 comprises the following modules:
[0151] - A receiver or module 201 receives from a transmitting entity 100 a sequence of bits S obtained from a semantic data to be communicated SD and corresponding to a part of the given vector space in which the semantic data SD to be communicated is located. In other words, the received bit sequence S was obtained by encoding the semantic data or element of the vector space SD according to the invention.
[0152] - A decoder or decoding module 202 according to the invention of the element SD' capable of decoding the received bit sequence S. The module 202 can also be described, equivalently, as a module for obtaining a vector element or semantic data SD' by decoding the received bit sequence S. The vector element or semantic data SD' is located in the portion of the vector space corresponding to the received bit sequence S.
[0153] In another embodiment example, the receiving entity 200 comprises only a receiver 201 capable of receiving a bit sequence obtained by encoding an element to be transmitted SD, and the receiving entity 200 obtains an element SD' from a vector space by interacting with a decoder 202 which is not part of the receiving entity 200.
[0154] Instead of directly transmitting the bits forming the element of the vector space or semantic data SD, which is a vector of several hundred or even thousands of real numbers, the transmitting entity 100 obtains a bit sequence S corresponding to a portion of the vector space containing the semantic data SD and transmits the sequence S instead of the semantic data SD, thus significantly reducing the amount of data to be transmitted. This process corresponds to the encoding of the element of the vector space or semantic data SD.
[0155] The sequence S obtained is, in the example of realization described here, a sequence of bits but a sequence of symbols in general can be used with a symbol alphabet larger than the two bits '0' and '1'.
[0156] The transmission of symbols forming the sequence S occurs via a CNL communication channel. Using the sequence S, the management entity 200 can locate the portion of the vector space containing the semantic data to be communicated, SD. The receiving entity 200 obtains a semantic data item, SD', which is located in the same portion of the vector space and therefore has a certain proximity to the semantic data SD to be communicated. This acquisition corresponds to the decoding of the received bit sequence S. This semantic data SD' will then be used in subsequent artificial intelligence or other applications in place of the semantic data SD to be communicated. Thus, the semantic data SD' was communicated from the equipment EQ1 to the equipment EQ2 instead of the semantic data SD, which was the semantic data to be communicated.
[0157] In some embodiments, the bit sequences used in the invention are such that the longer a sequence is, the smaller the corresponding part of the vector space. In these examples, by lengthening the obtained and transmitted sequence S, it is possible to decrease the size of the part of the vector space in which the data SD is located. The received data SD' can therefore be made very close to the data to be communicated SD by increasing the length of the obtained and transmitted bit sequence S, since the part of the vector space containing both the semantic data to be communicated SD and the obtained data SD' can be made very small by increasing the length of the bit sequence S.
[0158] In the example in Figure 1, the given vector space is represented by two arrows; it is a two-dimensional space. The region containing the data SD is delimited by the two axes and two dashed lines. The data to be communicated, SD, is located in a lower right corner of this region, while the received data, SD', is located in the center of the region corresponding to the transmitted and received sequence S. This example serves only to illustrate that the semantic data to be communicated, SD, and the received data, SD', are generally distinct but are linked by the region of the vector space in which they both reside. Figures 2 and 7 will discuss ways of partitioning the vector space to which the semantic data to be communicated belong.
[0159] The transmitting entity 100 included in the equipment EQ1 has the hardware architecture of a conventional computer. It includes in particular a processor, random access memory of the RAM type and read-only memory such as Flash memory, ROM, (not shown in the figure) as well as input-output devices such as, in some cases, keyboards and / or screens (not shown in the figure), and network ports allowing communication with other entities and servers via a communication network such as the internet not shown in the figure.
[0160] The receiving entity 200 included in the EQ2 equipment also presents the hardware architecture of a conventional computer. It includes in particular a processor, random access memory (RAM) and read-only memory such as Flash memory, ROM (not shown in the figure) as well as input / output devices such as, in some cases, keyboards and / or screens (not shown in the figure), and network ports allowing communication with other entities and servers via a communication network such as the internet (not shown in the figure).
[0161] Entities 100 and 200, the transmitting and receiving entities respectively, can be included, for example, in telecommunications equipment. Such EQ1, EQ2 equipment can be routers, home gateways, or gateways deployed in professional environments. Management entities 100 and 200 can be included in network cards present in EQI, EQ2 computing equipment such as computers, or in EQI, EQ2 equipment managing the reception or transmission of data in cloud computing systems. Transmitting and receiving entities 100 and 200 can also be included in EQI, EQ2 mobile terminals, where they will serve respectively for communicating or receiving semantic data across 3G, 4G, 5G, 6G, or other wireless telecommunications networks to which the EQI, EQ2 mobile terminals are connected.
[0162] In general, a transmitting or receiving entity 100 or 200 according to the invention can be embedded in any type of object or equipment EQI, EQ2 producing SD semantic data for saving or processing by artificial intelligence or other applications or having to perform the reception of such data in a computer or telecommunications network.
[0163] In another technical field, entities 100 and 200, respectively transmitter and receiver, can be included in image and sound sensors and in all types of EQI, EQ2 equipment, for example, means of transport or robotic EQI, EQ2 equipment. Image or sound sensors can encode semantic data from the captured images or sounds. Such sensors (cameras, microphones) can include an entity 100 that transmits semantic data. Receiver entities 200 can be deployed in processing servers that will receive the communicated semantic data and act upon it. These receiver entities 200 can, for example, be found in servers embedded in means of transport where they will be used to interpret data transmitted by the sensors via the entities 100 that transmit semantic data.This organization of transmitting and receiving entities 100 and 200 can be useful in the context of autonomous transportation systems or robots, where sensors process captured images and sounds, produce semantic data, and this semantic data is sent to control servers for interpretation and subsequent action. In this context, the transmitting and receiving entities 100 and 200 can be integrated into the same equipment. The CNL channel is then a software bus or equivalent that ensures data transmission within the equipment.
[0164] In another scenario, entities 100 and 200, the transmitter and receiver respectively, can belong to the same device and manage the storage of semantic data. In this context, the transmitter entity 100 obtains a sequence S from a semantic data item to be stored, SD, and it is this sequence of bits or symbols S that is stored. The receiver entity 200 retrieves the stored sequence S and obtains a semantic data item SD' located in the same part of the vector space as the initially stored semantic data item SD. The semantic data item SD' thus replaces the semantic data item SD that was originally intended to be stored, thereby saving memory space since it is the bit sequence S that is ultimately stored.
[0165] The CNL communication channel is a link between the transmitting entity 100 and the receiving entity 200. The CNL channel can be a segment of a telecommunications network or, conversely, a chain of several communication networks connecting the transmitting entity 100 to the receiving entity 200. The CNL channel can also be a link within a piece of equipment (autonomous transport, robot, computer equipment in general) between sensors (cameras, microphones) and processing servers, or between a component that produces and stores semantic data and a component that retrieves it. In these cases, the CNL channel can be a data bus within a computer device. The communication technologies deployed in the CNL channel can be wired, optical, satellite, or wireless, or a combination of these technologies.
[0166] The CNL channel can establish a direct link between the transmitting entity 100 and the receiving entity 200. For example, the transmitting entity 000 could be part of a personal computer's network card; the receiving entity 200 could be part of a home gateway deploying a local area network using Wi-Fi technology; and the CNL channel could then be the Wi-Fi link between the computer containing the transmitting entity 100 and the gateway containing the receiving entity 200. Alternatively, the transmitting entity 100 could be part of a mobile phone using 3G, 4G, 5G, 6G, or other wireless technology, and the receiving entity could be part of a base station deploying the corresponding technology; in this case, the CNL channel would be the wireless link between the mobile phone containing the transmitting entity 100 and the base station containing the receiving entity 200.Alternatively, the transmitting entity 100 is associated with a camera, microphone, or radar or lidar system and sends semantic data to the receiving entity 200, which is part of a processing server embedded in an autonomous vehicle or robot, via an internal coaxial or fiber optic cable connection, forming the CNL channel. Alternatively, the CNL channel is a software or data bus connecting components of a computer system.
[0167] In other examples, the CNL channel will establish an indirect link between the sending entity 100 and the receiving entity 200. For example, entities 100 and 200, the sending and receiving entities respectively, may be included in EQI and EQ2 routers present in packet-switched networks, which could be, for example, IP routers (acronym for Internet Protocol). In this example, the CNL channel could be a path, according to the IP protocol, between the two EQI and EQ2 routers that include the sending and receiving entities 100 and 200. In this implementation, the CNL channel could therefore traverse several IP network segments and several IP routers and would thus be an indirect link between the two sending and receiving entities 100 and 200.
[0168] The CNL channel can be viewed, in some embodiments, as transmitting bit sequences, that is, sequences of binary symbols 0 or 1, between the two devices EQI, EQ2, including the two entities 100 and 200, respectively transmitter and receiver. However, at the level of physical transmission, the CNL channel will transmit physical symbols that can take more than just two values. For example, in the field of wireless communications, the symbols transmitted by the CNL channel can be phase modulations carried by a radio wave, and these phase modulations can take up to sixteen or more distinct values. Similarly, in the field of fiber optic or copper links, the symbols transmitted by the CNL channel will be variations of electromagnetic waves carried by the physical media.
[0169] The resulting sequence S, transmitted by the transmitting entity 100 through the CNL channel, will therefore be, in some embodiments, a sequence of 0 or 1 bits, but in other embodiments, a sequence of symbols corresponding to the symbols that can be transmitted in the CNL channel. Figure 2 illustrates an example of the correspondence between bit sequences and parts of a vector space.
[0170] In the example in Figure 2, a given vector space is divided into regularly spaced parts, and bit sequences corresponding to the different parts are specified. Another example is given in Figure 7. The term "part" of the vector space is synonymous with the term "subset" of the vector space. The term "region" of the vector space may also be used.
[0171] The vector space in question is two-dimensional, represented by the two arrows labeled x and y, which indicate possible names for these two dimensions. The example presented here is easily understood from a geometric point of view: it is the well-known Cartesian plane.
[0172] The semantic data (SD) to be communicated, or elements of the vector space to be transmitted, are generally points in vector spaces with a much higher number of dimensions. As already seen, semantic data are generally vectors composed of several hundred or several thousand real numbers. However, the principles described here for a two-dimensional vector space can be applied identically to large vector spaces.
[0173] Furthermore, in some embodiments, the semantic data SD to be communicated can be divided into several sub-data according to the dimensions of the vector space. The two dimensions of the vector space represented in Figure 2 can therefore correspond to a semantic sub-data of the semantic data SD to be communicated.
[0174] In the example shown in Figure 2, the vector space is divided into several parts according to predefined bounds whose values are not specified in the figure. The first bound is simply the value 0 for both dimensions x and y. The two arrows in the figure divide the vector space into four parts: negative x and y; positive x and y; positive x and negative y; and negative x and positive y. These four parts correspond to four possible two-bit sequences, namely, using the same order of the parts: 00 for negative x and y; 11 for positive x and y; 01 for positive x and negative y; and 10 for negative x and positive y. In other words, the first bit of the sequence changes when dimension y crosses the bound 0, and the second bit of the sequence changes when dimension x crosses the bound 0. Another representation would, of course, have been possible.Since the semantic data are not vectors of real numbers in the mathematical sense of the term but of real numbers represented by computer types such as float 32, the vector space is bounded by the minimum and maximum values that can be given by the computer types used.
[0175] A two-bit sequence can therefore divide a two-dimensional vector space into four parts by considering two predefined bounds. These two bounds do not necessarily have to be in two distinct dimensions. In general, one bit is sufficient to divide a vector space into two parts.
[0176] In the example in Figure 2, the four-part partitioning is repeated recursively in each part. In total, the vector space is partitioned into 64 parts, each part corresponding to a six-bit sequence. The same pattern (00 = bottom left quadrant; 11 = top right quadrant; 01 = bottom right quadrant; 10 = top left quadrant) is used recursively. Only the complementary parts of the sequences are written; in the example in Figure 2, when a bit sequence is a prefix to a longer sequence, the part corresponding to the prefix sequence includes the part corresponding to the longer sequence.
[0177] To take an example, the four small parts surrounding the point (0,0) in Figure 2 correspond to the following sequences: 001111 for the sub-subpart immediately below left of the point (0,0); 110000 for the sub-subpart immediately above right of the point (0,0); 100101 for the sub-subpart immediately above left of the point (0,0); 011010 for the sub-subpart immediately below right of the point (0,0).
[0178] Figure 2 shows parts and sub-parts cut equally by the boundaries, but it is possible in some embodiments to have unequal cuts of the different parts. Such an example is given in Figure 7.
[0179] It is clear that by lengthening the bit sequence S, the corresponding region containing the semantic data SD to be communicated becomes increasingly smaller, and the error in replacing the semantic data SD with the resulting data SD' also becomes increasingly smaller. In the example given here, the method according to the invention therefore communicates semantic data with variable precision by lengthening or shortening the transmitted bit sequence S. The resulting semantic data SD' can be, in some solutions, the center of the region of the vector space corresponding to the transmitted bit sequence. However, in other embodiments, it can be obtained randomly. It can also be predefined and located anywhere within the corresponding region, but not necessarily at its geometric center.
[0180] To summarize, the encoding method according to the invention encodes an element of the vector space or semantic data SD by the bit sequence S, which identifies a subset or part of the vector space in which the element or semantic data SD is located. This subset or part, as shown in the example in Figure 2, can be made larger or smaller by lengthening or shortening the bit sequence S. The accuracy of the encoding method is thus variable. The decoding method, for its part, decodes a bit sequence S into an element or semantic data SD', which is defined by its membership in a subset or part of the vector space identified by the bit sequence S. In the example in Figure 2, bit sequences are used to correspond to the sliced regions, but other symbols can be used.In a 2-dimensional space, such as this one, it would be natural to use a 4-symbol alphabet 'O', '1', '2' and '3' instead of using bit pairs 00, 01, 10 and 11. Such symbols can be transmitted directly if the communication channel is suitable for this.
[0181] For example, in wireless communications, phase modulation is used, and the signal carrying the information can use up to 16 symbols, in the case of 16-PSK modulation. The 16 transmitted symbols then correspond to 4-bit sequences and could be used naturally to partition four-dimensional vector spaces in the same way as shown in Figure 2 for a two-dimensional space.
[0182] The communicated semantic data can itself be divided into sub-data, according to the dimensions of the vector space to which it belongs. A semantic data item of dimension 1024 could thus be divided into 256 sub-data items of dimension 4. These sub-data items can be communicated by transmitting sequences of 16-PSK symbols, which naturally divide the 4-dimensional spaces into sub-regions containing the sub-data items. The 16-PSK symbols themselves can be transmitted directly over the CNL channel, provided that it is a wireless communication channel using 16-PSK phase modulation. Figure 3 illustrates an example of exchanges between the transmitting and receiving entities during the implementation of the invention.
[0183] In this example implementation, the receiving entity 200 initiates the communication of semantic data from the sending entity 100. To do this, the receiving entity 200 sends the sending entity 100 a message whose content, REQ RES 2, indicates a request for a certain level of resolution or precision in the communication of semantic data. The requested resolution level is 2; this is an arbitrary value, corresponding to a given level of precision in the communication of semantic data.
[0184] Continuing with the example, the issuing entity 100 acknowledges the requested resolution level with an ACK acknowledgment message.
[0185] The arbitrary level 2 of resolution or precision corresponds, in the example presented here, to bit sequences S of length 4. This can be related to the example in Figure 2 where four-bit sequences were used to partition two-dimensional spaces. The sending management entity will therefore, in the subsequent implementation of the invention, address bit sequences of length 4 instead of semantic data. In the example, the sequences 1011, 1101, 1000, 0010 are sent successively in SND messages by the sending management entity 100 to the receiving entity 200.
[0186] These bit sequences correspond to regions of the vector space containing the semantic data to be communicated. Using the example in Figure 2, the 4-bit sequences correspond to 16 different regions of a two-dimensional vector space. By adding two bits to the communicated sequences, we can define 64 corresponding regions, which could correspond to a resolution level of 3 in the example presented here.
[0187] In general, semantic data consists of vectors with dimensions much greater than 2. However, they can be segmented before transmission into numerous sub-data according to dimensions chosen before applying the methods of the invention. The sequences transmitted here can therefore correspond to such sub-data and must be combined to obtain a complete region corresponding to the communicated semantic data.
[0188] In some embodiments, the number of bits in the sequence is determined based on information relating to at least one of the following: encoding precision, resolution level, and quality of service. In other embodiments, the number of bits in the sequence is determined based on information associated with a receiving entity.
[0189] After the transmission of four 4-bit length sequences, still in the example of Figure 3, the receiving entity 200 requests the sending entity 100 to use a resolution level 1, by addressing the message REQ RES 1.
[0190] After an ACK acknowledgment, the sending entity 100 will use this new lower resolution level and address 2-bit length sequences, namely here 11 then 00.
[0191] Semantic data communication can continue at this resolution or precision level 1, or a higher resolution level can be requested by the receiving entity 200. In this case, longer bit sequences will be transmitted.
[0192] In other embodiment examples, the issuing entity 100 can set on its own initiative the level of resolution used to communicate semantic data or parts of semantic data.
[0193] In other embodiment examples, the receiving entity transmits information associated with the receiving entity, said information being related to at least one of the following: coding precision, resolution level and quality of service.
[0194] Figure 4, meanwhile, represents another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0195] In this second implementation example, the receiving entity 200 requests that the sending entity 100 communicate semantic data to it with a dynamic resolution (or precision), varying over time according to the quality of service felt by the receiving entity 200. This request is expressed by the initial message REQ DYN RES.
[0196] After an acknowledgment (ACK) message, the transmitting entity 100 will communicate semantic data with dynamic resolution. Suppose that the transmitting entity 100 is to transmit the bit sequence 100111 corresponding to a region of the vector space containing the semantic data to be communicated. This is indicated, on the transmitting entity 100's side, by the notation SND 100111. A bit sequence to be transmitted is not necessarily bounded, nor does it necessarily have to be known in its entirety before its transmission begins. It could be a prefix of a longer sequence to be communicated.
[0197] The sending entity 100 will then transmit to the receiving entity 200 the first two bits of the sequence to be transmitted, namely 10. This prefix, formed from the first two bits of the sequence to be transmitted, corresponds to a region of the larger vector space and includes the region of the vector space which corresponds to the complete bit sequence 100111.
[0198] The receiving entity 200 receives the prefix 10 and determines that the precision communicated by a bit sequence of length 2 is too low for its needs. This is indicated on the receiving management entity side by the QoS LOW designation. An application using the communicated semantic data could, for example, have given this designation to the receiving entity 200.
[0199] The receiving entity 200 communicates to the sending entity 100 that the quality of service is too low, requesting it to increase the resolution by means of a RES++ message.
[0200] The transmitting entity 100 will then continue by transmitting the next two bits 01 of the complete sequence 100111. Indeed, the first two bits 10 have just been transmitted. It is not necessary to repeat them, but only to improve the accuracy of the communication of semantic data by continuing the transmission of the bit sequence corresponding to the region where said semantic data is located.
[0201] In this embodiment, when a first obtained sequence is the prefix of a second obtained sequence, then the portion corresponding to the first sequence includes the portion corresponding to the second sequence. To increase communication accuracy, the size of the region corresponding to the transmitted bit sequence must be reduced. In this example, a longer bit sequence must be transmitted, but it is not necessary to repeat the prefix already transmitted. This prefix corresponds to a region that includes the smaller region of the complete sequence. The example shown in Figure 2 illustrates this embodiment.
[0202] In the continuation of the example shown in Figure 4, the receiving entity 200 still considers the quality of service too low and again requests an increase in the RES++ resolution. The transmitting entity sends the last two bits 11 of the complete sequence 100111. The receiving entity 200 considers the quality of service satisfactory and sends a QoS OK message to the transmitting entity 100 to indicate this. In subsequent transmissions, the transmitting entity 100 will transmit bit sequences of length 6 corresponding to this resolution level deemed satisfactory by the receiving entity 200. The two sequences 100010 and then 110111 are transmitted by the transmitting entity 100 to the receiving entity 200.
[0203] The receiving entity 200 may then judge that the quality of service is too high for its needs, which is represented in the figure by the indication QoS HIGH, which corresponds to a waste of resources and possibly unnecessary expenses.
[0204] The receiving entity 200 can then indicate to the sending entity 100 that it can reduce the resolution by sending a RES- message. Subsequently, the sending entity 100 transmits a sequence of only 4 bits in length, namely 0011 in the example. In this way, cost savings are achieved while maintaining sufficient precision of the communicated semantic data and a satisfactory quality of service for the applications that use the semantic data communicated to the receiving entity 200.
[0205] Figure 5, meanwhile, represents another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0206] In this example, a similar effect to that obtained in the example in Figure 4 is implemented with a reduced exchange of messages.
[0207] The receiving entity 200 requests that the sending entity 100 provide it with semantic data of increasing resolution (or precision). This is indicated by the initial message REQ INC RES. The sending entity 200 acknowledges receipt of this request with an acknowledgment message ACK.
[0208] In this example, transmitting entity 100 must send a bit sequence beginning with the prefix 100111 to communicate semantic data. In realistic scenarios, the sequence to be transmitted could be longer and acquired incrementally during transmission. Since the requirement is to communicate with increasing precision, transmitting entity 100 will first transmit the first two bits of sequence 10.
[0209] The receiving entity 200 considers the accuracy unsatisfactory (RES NOK), and in this example, this results in no response. The transmitting entity 100 then continues the transmission of the sequence by transmitting the next two bits, 01, followed by the next two bits, 11. At this point, the receiving entity 200 considers the accuracy achieved to be sufficient and transmits an acknowledgment message, ACK, to the transmitting entity 100 to indicate this.
[0210] The sending entity 100 will then transmit a second sequence whose prefix is 110010, which corresponds to a second semantic data to be communicated.
[0211] Similarly, the sending entity transmits the first two bits 11. From this transmission, the receiving entity 200 considers that the precision is sufficient for this communication and indicates an acknowledgment message.
[0212] Many reasons can explain this change in the required precision between the two communications from the receiving entity 200. The timing of the communication may have changed, and at one time, high precision may be necessary to meet the semantic data analysis needs of the application(s) communicating with the receiving entity 200, while at a later time, the analysis may require much lower resolution or precision. Alternatively, the semantic data communicated the first time may correspond to a data type that requires high precision, while the subsequent data corresponds to a data type that requires lower precision. This implementation example allows the communication to adapt to these evolving needs without the receiving entity 200 having to explicitly specify a level of precision or resolution.
[0213] As seen in Figure 5, the third sequence of bits to be transmitted, with the prefix 011000, will be communicated with sufficient precision after the sending of only two times two bits.
[0214] Figure 6, meanwhile, represents another example of exchanges between the sending entity and the receiving entity during the implementation of the invention.
[0215] This example replicates the transmissions already seen in Figure 4, where the precision is dynamic. The difference from the example in Figure 4 is that the bit sequences corresponding to regions containing semantic data are transmitted in batches. In the first transmission, prefixes of the same length are transmitted for an entire batch of sequences to be transmitted. As long as the quality of service is too low, the receiving entity 200 will request the transmitting entity to increase the resolution (or precision) by sending a RES++ message. The transmitting entity will then continue transmitting the bit sequences by sending, in batches, the following bits in the respective sequences to be transmitted, until the quality of service is deemed satisfactory for the entire batch and a RES OK message is transmitted by the receiving entity 200 to the transmitting entity 100.
[0216] With the length of the bit sequences to be transmitted thus defined, the sending entity 100 will address bit sequences of equal length (here, length 6, corresponding to a resolution level of 3) in batches. The resolution can then be decreased by the sending entity 100 at the request of the receiving entity 200, but the transmission is always done in batches. In this way, a large semantic data item can be communicated by dividing it into several sub-data items, according to the dimensions of the vector space in which the semantic data is located. The different bit sequences corresponding to the sub-regions in which the sub-data items are located are sent in batches, one batch potentially corresponding to a complete semantic data item.
[0217] This batch sending principle was shown in Figure 6 using a precision adjustment mode identical to that shown in the example in Figure 4, but the same principle can also be used in combination with the adjustment mode shown in the example in Figure 5.
[0218] Figure 7, meanwhile, represents another example of correspondence between bit sequences and parts of a vector space than that presented in Figure 2.
[0219] Figure 2 shows a partition of a two-dimensional vector space in which the regions corresponding to the sequences are defined by bounds. Depending on whether the semantic data is less than or greater than a given bound along a given dimension, a bit of the bit sequence corresponding to the region of the vector space in which the semantic data is located will be 0 or 1. This approach leads to a partitioning of the vector space according to a grid to form the regions corresponding to the bit sequences in a 2-dimensional space and to an equivalent structure in a higher-dimensional space.
[0220] However, it is not mandatory to perform a regular partitioning of this type of vector space. The example in Figure 7 shows an irregular partitioning of the two-dimensional vector space. This partitioning may be appropriate for certain applications depending on the presence of the semantic data to be communicated in a particular region of the space, in order to improve the discrimination of the semantic data actually present in a given application domain.
[0221] In the example in Figure 7, the bit sequences corresponding to the irregular regions are such that, when a first sequence is the prefix of a second sequence, then the portion corresponding to the first sequence includes the portion corresponding to the second sequence. If we look at a bit sequence reduced to '0', the corresponding region is located approximately in the upper left of the figure. This area is divided into two sub-regions, corresponding to the bit sequences 00 (on the left) and 01 (on the right of the encompassing region).
[0222] The bit sequences 10 and 11 divide the remaining space into two regions, with 11 at the bottom of the space and 10 at the top right. These regions are themselves divided into sub-regions: for example, the sequences 110, 1110, and 1111 divide the region corresponding to the prefix sequence 11 into three sub-regions.
[0223] Figure 7 also shows how bit sequences can be arranged in a tree to highlight the prefix relationship between them. We see that the sequences used in the example in Figure 7 to partition the vector space into regions are not arranged in a binary tree, but in an arbitrary tree.
[0224] In embodiments not shown in the figures, the invention includes sending a message from the transmitting entity 100 to the receiving entity 200 indicating that the maximum resolution level has been reached. This can be done dynamically, by sending a message indicating that the maximum transmission length of a bit sequence has been reached. In this case, the subsequent bits will belong to a new transmitted bit sequence. It can also be done statically, in a message indicating at the beginning of the transmission the maximum length of the bit sequences that can be transmitted by the transmitting entity 100.
[0225] Finally, it should be noted that, in this text, the term "module" can refer to a software component, a hardware component, or a set of hardware and software components. A software component itself corresponds to one or more computer programs or subprograms, or more generally, to any element of a program capable of implementing a function or set of functions as described for the modules in question. Similarly, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or set of functions for the module in question (integrated circuit, smart card, memory card, etc.).
Claims
Demands 1. A method for encoding an element (SD) belonging to a vector space comprising a plurality of subsets identified respectively by bit sequences, in which the element (SD) is encoded as a bit sequence (S) identifying a subset in which the element (SD) is located.
2. Coding method according to claim 1, wherein the number of bits of the sequence (S) is determined as a function of information relating to at least one of the following: coding accuracy, resolution level and quality of service.
3. Coding method according to any one of claims 1 or 2 wherein the number of bits of the sequence (S) is determined as a function of information associated with a receiving entity.
4. Coding method according to any one of claims 2 to 3, wherein said information is received from said receiving entity.
5. Coding method according to claim 1 wherein the number of bits of the sequence (S) is modified over time until a read receipt message is received from a receiving entity.
6. Coding method according to claim 5 wherein the number of bits of the sequence (S) increases.
7. Coding method according to claim 5 wherein the number of bits of the sequence (S) decreases.
8. A transmission method, from a transmitting entity (100), the method comprising: - transmit to a receiving entity (200) a sequence of bits (S) obtained by encoding an element (SD) of a vector space according to the encoding method according to one of claims 1 to 7.
9. Method for decoding a bit sequence (S) to obtain an element (SD) 7) belonging to a vector space comprising a plurality of subsets identified respectively by bit sequences, said element being defined by its membership of a subset of the vector space identified by the bit sequence (S).
10. A decoding method according to claim 9, wherein obtaining the element (SD 7 ) includes the determination of the geometric center of said subset identified by said bit sequence (S).
11. A decoding method according to claim 9, wherein obtaining the element (SD 7 ) includes a random selection of an element belonging to the subset identified by the bit sequence (S).
12. Processing method, implemented by a receiving entity (200), the method comprising: - receive a sequence of bits (S); - obtain an element (SD) 7) of a vector space by decoding the received bit sequence (S) according to a decoding method according to any one of claims 9 to 11.
13. Processing method according to claim 12 characterized in that the method further comprises the transmission of information associated with the receiving entity.
14. Processing method according to claim 13 wherein said information relates to at least one of the following: coding accuracy, resolution level and quality of service.
15. Processing method according to any one of claims 12 to 14 further comprising the transmission of a message requesting a modification of the number of bits in the bit sequence (S).
16. Processing method according to any one of claims 12 to 14 wherein, the number of bits of the received sequence (S) being modified over time, the method comprises the transmission of an agreement message to a sending entity (100).
17. Encoder (101) implementing a coding method according to any one of claims 1 to 7.
18. Sending entity (100) implementing a transmission process, the sending entity (100) comprising the following module: - A transmitter (102) capable of transmitting a sequence of bits (S) obtained by encoding an element (SD) of a vector space according to the encoding method according to any one of claims 1 to 7.
19. Emitting entity (100) according to claim 18 further comprising an encoder (101) according to claim 17 capable of encoding the element (SD) into the bit sequence (S) according to an encoding method according to any one of claims 1 to 7.
20. Decoder (202) implementing a decoding method according to any one of claims 9 to 11.
21. Receiving entity (200) implementing a processing method, the receiving entity (200) comprising the following module: - A receiver (201) capable of receiving a sequence of bits (S) obtained by encoding an element (SD) of a vector space according to the encoding method according to any one of claims 1 to 7.
22. A receiving entity (200) according to claim 21 further comprising a decoder (202) capable of obtaining an element (SD 7 ) of a vector space by decoding the received bit sequence (S) according to a decoding method according to any one of claims 9 to 11.
23. Telecommunications equipment comprising an encoder (101) according to claim 17 and / or a transmitting entity (100) according to one of claims 18 or 19 and / or a decoder (202) according to claim 20 and / or a receiving entity (200) according to one of claims 21 or 22.
24. Communication terminal comprising hardware and / or software elements enabling the connection of said terminal to a mobile telephone network and further comprising an encoder (101) according to claim 17 and / or a transmitting entity (100) according to one of claims 18 or 19 and / or a decoder (202) according to claim 20 and / or a receiving entity (200) according to one of claims 21 or 22.
25. Data carrier on which one or more computer programs are stored, comprising sequences of instructions for implementing the method of encoding an element belonging to a vector space according to any one of claims 1 to 7 and / or the transmission method according to claim 8 and / or the decoding method according to any one of claims 9 to 11 and / or the processing method according to any one of claims 12 to 16 when loaded into and executed by a processor.