Method and device for the total compression of a stack of images of a scene
By stacking images into a three-dimensional matrix and using pattern dictionary compression, the method addresses the inefficiency of individual image compression, achieving significant memory savings through global compression of image stacks.
Patent Information
- Application Number
- PCT/FR2024/050626
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-15
- Publication Date
- 2025-11-20
AI Technical Summary
Existing image compression techniques fail to efficiently compress a stack of images as a whole, leading to significant memory occupancy due to individual compression of each image independently.
A method that stacks images into a three-dimensional matrix, applying a pattern dictionary compression algorithm to replace repeated patterns across images with references, reducing the overall size of the compressed image stack.
The method efficiently compresses the image stack by drastically reducing its total size through global compression, utilizing pattern dictionary algorithms to replace repeated patterns, thus minimizing memory usage.
Smart Images

Figure FR2024050626_20112025_PF_FP_ABST
Abstract
Description
DESCRIPTION Title: Method and device for global compression of a scene image stack
[0001] The present invention relates to a method for the overall compression of a stack of images of a scene. It also relates to a computer program, a device, an apparatus, and a vehicle implementing such a method.
[0002] The field of the invention is the field of image compression, and in particular of a stack of images of a scene, at least partly captured by an imaging device, or at least partly constructed by calculation. State of the art
[0003] It is possible to image a scene in "burst mode," allowing for the capture of multiple images of the same scene very quickly, one after the other. There is also the focus bracketing technique, which allows for the capture of several images of a scene, each with a different focal length. Furthermore, there is the HDR imaging technique, which allows for the capture of multiple images of a scene with varying brightness levels to then construct a single image with enhanced brightness. Other techniques exist for capturing a stack of images of the same scene over a very short period, comparable to real-time, so that the imaged scene remains unchanged or changes very little.
[0004] Other techniques allow for the generation of a stack of images of a scene, in part or in whole, by calculation.
[0005] However, the acquisition, or generation, of a stack of images raises the question of the storage of this stack of images, a stack of images can occupy a non-negligible memory space depending on the definition at which the images that constitute it were acquired and on the number of images in the stack of images.
[0006] Using existing compression techniques to individually compress each image in the image stack, independently of the other images in the stack, is still possible. However, there is currently no specific technique for compressing an image stack considered as a whole.
[0007] One object of the present invention is to remedy at least one of the drawbacks of the prior art.
[0008] Another aim of the invention is to provide a more efficient and higher-performing solution for compressing an image stack.
[0009] Another objective of the invention is to offer a solution for compressing a stack of images in order to reduce the memory space occupied by said stack of images, compared to current techniques which perform individual compression of each image in the stack of images. Description of the invention
[0010] The invention proposes to achieve at least one of the aforementioned goals by a method of compressing a stack of images comprising N images, IMi-IMn, each image being represented by a two-dimensional data matrix (U,V), each cell (u,v) of said matrix comprising a set of values representing a pixel of said image, said method comprising the following steps: - stacking of said images in a three-dimensional matrix (U,V,W) comprising N Wi-W planes nin dimension W, each plane Wi in said dimension W corresponding to an image IMk, and each cell (u,v) in said plane Wk comprising a set of values representing a pixel of said image IMk; and - compression (110) of said image stack from said three-dimensional matrix, by a pattern dictionary compression algorithm.
[0011] Thus, the method according to the invention proposes to compress a stack of images by combining these images in a three-dimensional matrix, also called a value cube or 3D matrix in the following. Each plane Wk=(U,V)k of the 3D matrix corresponds to the values of the k ième image of the image stack. In other words, in the 3D matrix, each point (Ui, Vj, Wk) of the 3D matrix corresponds to an image pixel of the k ième image of the image stack and includes the values of that pixel. Thus, the images are somehow compiled into a single 3D matrix.
[0012] Next, the image stack is compressed using this 3D matrix, either directly or after encoding and / or quantization, as described later, using a pattern dictionary compression algorithm.
[0013] Thus, the compression of the image stack is performed from said image stack globally, that is to say in its entirety, and not each image individually and independently of the other images in the stack.
[0014] Furthermore, image stack compression is performed more efficiently and effectively by drastically reducing the total size of the compressed image stack. Indeed, since the image stack corresponds to the same scene, identical patterns will be present in several images within the stack. The same patterns are inevitably found in multiple images and are therefore repeated in the different planes W of the 3D matrix. From this perspective, pattern compression will significantly reduce the size of the compressed image stack. Each pattern will be replaced by a reference to that pattern, or to the first occurrence of said pattern, so that each pattern will only be explicitly written once, upon its first encounter / occurrence, in the 3D matrix or the encoded 3D matrix.
[0015] By image, we mean a digital image, and in particular a raster image, and more specifically a raster image in RGB or HSL or YUV format.
[0016] By "depth of field" we mean the extent of the area of sharpness that appears on an image, that is to say the area between the first sharp plane and the last sharp plane of the image.
[0017] By "extent of sharpness" we mean the distance over which the sharp part of the image extends, that is to say the distance from the first sharp plane to the last sharp plane of the image.
[0018] Focal length refers to the distance at which an optical lens is focused, relative to the lens's position. The focal length for capturing an image is typically adjusted by changing the distance between the image sensor and the optical lens. Thus, a first image of a scene acquired at a first focal length will clearly depict one part of the scene, and a second image of a scene acquired at a second focal length will clearly depict another part of the scene.
[0019] A "pattern" is defined as a sequence of characters comprising a series of several characters. These characters can be numeric, alphabetic, or alphanumeric. A pattern can be formed by the repetition of at least one other pattern. A pattern can also be formed by a combination of at least two other patterns.
[0020] By "function" we mean a mathematical function that can be represented in the form of a vector, or a set of discrete values.
[0021] For the purposes of the present invention, two functions are orthogonal if their dot product is zero.
[0022] The term "coded 3D matrix" refers to the product of a 3D matrix encoding, for example, by projection onto a function basis, possibly after quantization. The resulting encoding product is not necessarily a matrix and can be in the form of a vector or any other form depending on the encoding technique. Therefore, the expression "coded 3D matrix" does not predetermine the form of the 3D matrix encoding product.
[0023] The term "compressed image stack" refers to the product of compressing the image stack according to the present invention. The compressed image stack may be in the form of a record or a file, in particular as a single record or a single file.
[0024] The pattern dictionary can be represented and stored in different ways. Furthermore, the reference to a pattern inserted into a compressed matrix can also be presented in different ways.
[0025] The person in the trade can of course adapt the form of the pattern dictionary and the reference to the pattern.
[0026] In one embodiment, the pattern dictionary can be presented as an autonomous entity, independent of the 3D matrix or the encoded image stack. In other words, the pattern dictionary can be an individual file / record separate from the compressed image stack.
[0027] In other words, the pattern dictionary can be formed by, or stored in, an entity that is independent of the 3D matrix or the compressed image stack. In this case, only this independent entity will need to be accessed for compression or decompression operations.
[0028] In this first embodiment, the pattern dictionary stores each pattern detected / encountered in the 3D matrix during the compression step.
[0029] Optionally, the pattern dictionary can store an indexing table allowing for faster retrieval of specific patterns when the dictionary is read.
[0030] In this first embodiment, decompressing the image stack requires opening / reading the pattern dictionary. Therefore, the pattern dictionary must be kept in association with the compressed version of the image stack.
[0031] In this first embodiment, it is possible to perform a partial decompression of the image stack without having to open / read the other parts of the 3D matrix.
[0032] In this first embodiment, the reference to a pattern inserted into the compressed image stack may include an identifier of said pattern in said pattern dictionary. This identifier is used, during decompression, to retrieve said pattern from the pattern dictionary and insert it in place of the reference to said pattern to obtain the uncompressed image, or image stack.
[0033] Optionally, the pattern reference can also include indexing data to allow the pattern to be retrieved more quickly. in the pattern dictionary, for example by using an indexing table of said pattern dictionary.
[0034] Optionally, the reference to the pattern may also include a length data for said pattern.
[0035] Optionally, the pattern reference may also include position data indicating the position of the first occurrence of said pattern in the 3D matrix or in the coded 3D matrix.
[0036] Optionally, the pattern reference can also include data indicating the number of consecutive repetitions of said pattern. For example, when the same pattern is detected R times in a row, where R is an integer, the pattern reference can include the number R.
[0037] In a second embodiment, the pattern dictionary can be stored directly within the compressed image stack. In other words, a separate file or entity is not created to store the pattern dictionary; instead, the pattern dictionary is stored directly within the compressed image stack. The pattern dictionary can be formed from the first occurrence of each pattern encountered in the 3D matrix, or the encoded 3D matrix, during compression.
[0038] In this second embodiment, the decompression of the image stack does not require a dictionary in the form of a separate entity since it is directly stored in said compressed image stack.
[0039] In this second embodiment, the decompression of a given part of the image stack cannot be carried out individually and independently of the other parts, and in particular without having opened / read the parts of the image stack (of the 3D matrix or the coded 3D matrix) which were compressed before said given part.
[0040] In the second embodiment, the reference to a pattern inserted in the compressed image stack in place of said pattern may include position data for the first occurrence of said pattern in the 3D matrix or in the coded 3D matrix.
[0041] Following the example implementations, for at least one pattern, the position data of the first occurrence of said pattern may be, or include, the distance to the position of said first occurrence of said pattern. This distance may indicate: - the distance between the current position of the encountered pattern and that of its first occurrence; or - the distance between a reference position, for example a start position of recording or start of the 3D matrix or of the coded 3D matrix, and the position of the first occurrence of the pattern; - any other distance or offset.
[0042] In the second embodiment, for at least one pattern, the reference to said pattern inserted in the compressed image stack may optionally include length data indicating the length of said pattern.
[0043] Optionally, in the second embodiment, for at least one pattern, the reference to that pattern inserted into the compressed image stack may include data indicating the number of consecutive repetitions of that pattern. For example, when the same pattern is detected R consecutive times, with R an integer, in this case the reference to the pattern may include the number R.
[0044] Thus, in the second embodiment, following a non-limiting example, for at least one pattern "m", the reference to said pattern "m" inserted into the compressed image stack can take the form of a data set (d; I) with: - d: the distance: ■ between the current position and the position of the first occurrence of said pattern, or ■ from the start of the recording and the position of the first occurrence of said pattern; - 1: the length of said pattern, "I" being optional; and
[0045] Of course, it is possible to combine the first and second embodiments described for the pattern dictionary. Such a The combination can provide greater robustness in compression and greater flexibility during compression and decompression.
[0046] Following an example of an embodiment, the process according to the invention can use: - a first dictionary presented as an autonomous entity for all patterns, and - a second dictionary stored in the compressed image stack for all patterns, and In this case, the two dictionaries are fully redundant, which allows for greater robustness while offering greater flexibility during compression / decompression.
[0047] Following another embodiment, the process according to the invention can use: - a first dictionary of patterns presented as an autonomous entity, for long patterns, in particular those whose length is greater than or equal to a given threshold; and - a second pattern dictionary presented as an entity stored in the compressed image stack, for short patterns, in particular those whose length is less than the given threshold. In this case, the two dictionaries are not redundant and allow for improved compression efficiency, particularly in terms of the compactness of the compressed image stack, and the speed of compression and decompression.
[0048] Regardless of the embodiment for the pattern dictionary, i.e. autonomous entity or entity stored in the compressed image stack, the method of the invention can use an indexing of said dictionary for access to the dictionary.
[0049] This allows for faster access to the pattern dictionary during compression, which in turn speeds up the compression process.
[0050] This indexing can be done in all known ways.
[0051] Following an example implementation, this indexing can be, or can include, a table containing at least one particular property. and / or an offset, said offset containing the location of the access to the complete pattern sequence in the pattern dictionary.
[0052] At least one special property can be a hash code, that is to say a signature, for example a parity bit in a simplified version given by way of non-limiting example, so as not to have to read the whole tested sequence, but just to compare the signatures to know that the tested sequence does not match.
[0053] At least one property may be a short sub-motif encountered in the pattern whose occurrence is being sought.
[0054] At least one property can be a frequency component, specifically a spatial frequency component, of the basis vector(s) / function(s) used relative to the pattern "m" being searched in the dictionary. This is useful, for example, if the image has been transformed using a basis of vectors / functions with such properties, in order to guide the search for previously encountered occurrences with the same properties. Indeed, it is generally possible to find an occurrence that has already been encountered more frequently in the encoding of a portion of the image stack using one or more vectors / functions of the same spatial frequency(ies), thus accelerating the search for occurrences during compression.
[0055] This indexing table can be stored at the end of the compression, or discarded, preferably to reduce the memory size needed to store the result of the compression, because it is possible to make the decompression process directly access the pattern dictionary to find the patterns to be restored without needing this indexing table.
[0056] The indexing table may also be retained for other reasons, such as its relative compactness minimizing its memory cost, the retention of signatures to control the integrity of dictionary patterns, the storage of information on the interpretation of the shift field, etc.).
[0057] Depending on the method, the compression step can be applied to the 3D matrix, without encoding said matrix.
[0058] Depending on the mode, the process according to the invention may further include, before the compression step, a coding step of said three-dimensional matrix, in a three-dimensional target space, by projecting said matrix onto a function basis.
[0059] According to another formulation of this characteristic, the process according to the invention may further include, before the compression step, a coding step of said three-dimensional matrix by projection of said matrix onto a basis of functions with 3D support.
[0060] In other words, the function basis includes a multitude of functions, and each function has a three-dimensional support and / or makes a projection to a three-dimensional codomain.
[0061] Such a coding step is well known to those skilled in the art for a conventional image represented by a two-dimensional matrix. The invention proposes adapting this conventionally known coding step to a 3D pixel matrix, in order to obtain a coded version of said matrix, said coded version also being a 3D value matrix, in a three-dimensional codomain.
[0062] In this case, the compression step can be applied to a coded version of the 3D matrix, called a coded 3D matrix as mentioned above.
[0063] This coding step replaces the sequence of pixel values in the raw images that make up the 3D matrix with another sequence that subsequently improves the search for repeated "m" patterns in the three-dimensional codomain. Indeed, particularly in the context of a scene image stack, each image can contain a fairly similar description, especially for low-frequency functions within the image. Similarly, such components can repeat at different locations within the same image, leading to identical "m" patterns over a certain length.
[0064] Furthermore, a possible quantification usable in the process, mentioned later, may be less penalizing in terms of image quality restored through this projection, than on the raw images.
[0065] Depending on the embodiment, the function base can be a basis of orthogonal functions.
[0066] Indeed, the use of an orthogonal basis makes it easier to code, and in particular to calculate the coding coefficients.
[0067] Following an example implementation, the function basis can be a wavelet basis, and in particular an orthogonal wavelet basis.
[0068] Following an example implementation, the function basis can be a Haar wavelet basis.
[0069] Following another example of implementation, the function basis can be a Daubechies wavelet basis.
[0070] In general, the coding step can use any basis of vectors or functions representing all or part of the 3D matrix, on which said 3D matrix is decomposed, to replace it with this decomposition in a three-dimensional codomain.
[0071] Furthermore, particularly for the implementation of the invention, the coefficients obtained from the decomposition of the 3D matrix can be grouped on groups of functions or vectors in, for example, an increasing or decreasing order of frequencies or spectral content of these vectors or functions, in particular to avoid mixing coefficients for functions or vectors having spectral content at high frequencies and at lower frequencies.
[0072] Indeed, the image stack, by its very nature when it concerns images of the same scene taken at different parameters, may contain repetitions of identical sequences from one image to another, quite often at the lowest frequencies, and all the more often as the frequencies are lower, which will allow, from one image to another, to find strong similarities of sequences, and therefore in the compression stage, all the more sequences that can be replaced by their reference instead of their direct writing in the compressed image stack, which greatly improves the efficiency of the compression.
[0073] By "frequency component" of vectors or basis of decomposition functions, we mean, for example, their Fourier transform, The higher the frequency, the more amplitude lines it contains at higher frequencies compared to lower frequencies. Another way to classify frequency is by observing the length, or the number of non-zero coefficients in the case of certain basis sets, such as Haar wavelets; the more non-zero values there are, the lower the frequency. However, this latter classification does not necessarily apply to all types of basis sets.
[0074] According to embodiments, the process according to the invention may include, before the compression step, a step of reducing the numerical resolution, in particular by quantization.
[0075] The reduction of the digital resolution can be performed before encoding the 3D matrix. In this case, the reduction of the digital resolution is applied to the unencoded 3D matrix.
[0076] Alternatively, the reduction of the numerical resolution can be carried out after encoding the 3D matrix. In this case, the reduction of the numerical resolution is applied to the encoded 3D matrix, i.e. to the product provided by the 3D matrix encoding step.
[0077] This reduction in digital resolution aims to decrease the amount of data representing the image stack, particularly at high frequencies. Specifically, it directly reduces the number of symbols needed to encode the values contained in the 3D matrix, or the encoded 3D matrix, but also indirectly increases the probability of repeating value sequences, as they will be generated from a smaller set of values. This, in turn, increases the frequency of identifying similar patterns during the compression stage.
[0078] Quantification can be carried out in a conventional way familiar to the person in the profession, for example: - by setting to 0 the values that are below a predetermined threshold, or - by removing values that are below a predetermined threshold, or - by removing weakly significant digits, that is, bits in the binary symbols representing the values in the image stack.
[0079] According to embodiments, the method according to the invention may further include a spatial registration step of at least one image from the image stack.
[0080] This registration process eliminates potential discrepancies between images when those images of the same scene are spatially offset. For example, the registration step eliminates differences in viewpoint, viewpoint, slight movements, etc., that may exist between different images of the same scene.
[0081] Image registration can be performed relative to another image in the image stack. Specifically, one image in the image stack can be chosen as the reference image, and the other image, and indeed each of the other images in the image stack, can be registered relative to that reference image. Following a non-limiting example, the image chosen as the reference image could be the one representing the scene with the widest angle of view.
[0082] Alternatively, image registration can be performed against a reference format that is independent of the images in the image stack. In this case, the image, and in particular each image in the image stack, can be registered against that reference format.
[0083] Image registration can be performed using any known technique, for example, by using points of interest or objects within the image. Alternatively, or in addition, image registration can be performed using velocity or acceleration data associated with the pixels of the image. Alternatively, or in addition, image registration can be performed using triangulation techniques.
[0084] The registration step can be performed before, after or during the image stacking step in the 3D matrix.
[0085] All images in the image stack can have the same size.
[0086] Alternatively, at least two images in the image stack may have different sizes, and in particular represent the scene from a different viewpoint. In this case, the three-dimensional matrix can be chosen such that: - each plane Wk of the three-dimensional matrix can have a size greater than or equal to the size of the largest image; and - for a smaller image Wk, the corresponding plane Wk can be completed by predetermined values, in particular constants, for example zeros. Thus, there is no data loss when stacking images from the image stack into the three-dimensional matrix.
[0087] Of course, other embodiments are possible. For example, the three-dimensional matrix can be chosen such that each plane Wk of the 3D matrix can have a size equal to the average size of the images in the image stack. In this case: - for a smaller IMk image, the corresponding Wk plane can be supplemented by predetermined values, in particular constants, for example zeros; and - for a larger IMk image, the corresponding Wk plane can be constructed by eliminating the data located at the periphery of said image, this data being generally the least defined.
[0088] In yet another embodiment, the 3D matrix can be chosen such that each plane Wk of the 3D matrix can have a size equal to the size of the smallest image in the image stack. In this case, for a larger image IMk, the corresponding plane Wk can be constructed by eliminating the data located at the periphery of said image IMk, this data generally being the least defined.
[0089] All images in the image stack can have the same resolution.
[0090] Alternatively, at least two images in the image stack may have different definitions.
[0091] In this case, the least defined image can be supplemented with predetermined values, specifically identical values such as zero or undefined, to adjust the aspect ratio of that least defined image to match the aspect ratio of the most defined image. In particular, all images in the image stack can be adjusted to match the aspect ratio of the most defined image in the stack.
[0092] Alternatively, the highest-resolution image can be adjusted to the aspect ratio of the lowest-resolution image, for example, by removing some pixels or merging pixels within the highest-resolution image. Specifically, all images in the image stack can be adjusted to the aspect ratio of the lowest-resolution image in the stack.
[0093] Alternatively, all images in the image stack can be adjusted to another resolution, for example to an image format with a resolution equal to the average resolution of the images in the image stack.
[0094] The image stack can include images in RGB format.
[0095] In this case, compression can be applied individually to at least one, and in particular each, chromatic component of said image, namely to the red component, the green component, and the blue component of said image.
[0096] It should be noted that a chromatic component of an image is not considered to be an image within the meaning of the present invention. Thus, the three color components of the same image do not constitute a stack of images within the meaning of the present invention.
[0097] According to embodiments, the process according to the invention may include, before the compression step, a transformation step to a luminance format, such as for example the HSL format or the YUV formant, of the images of the image stack, from another format, such as for example from the RGB format.
[0098] In this case, compression can be applied, particularly individually, to the luminance component of said format, of each image, optionally after encoding and possibly after reduction of the digital resolution. Optionally, compression can also be applied, in particular individually, to at least one, and in particular each, of the complementary components, such as hue and saturation for the HSL format, or chrominance 1 and chrominance 2 for the YUV formant, optionally after encoding and / or after digital quantization of said complementary component.
[0099] Such a transformation can be performed before or after the image stacking step in the 3D matrix.
[0100] In general, compression can be applied individually to at least one, and in particular each, chromatic component of the image stack.
[0101] The image stack can be a stack of images representing the same scene, at the same time or at approximately the same time, each image representing said scene with: - a different focusing distance, - a different brightness, - a different direction, - a different framing, - a different point of view, - a different zoom, and / or - a different definition, - a different camera module, etc.
[0102] In general terms, the image stack can be a stack of images representing the same scene, each representing said scene differently from the other images in said image stack, in particular at the same time or substantially at the same time.
[0103] Depending on the embodiment, at least one image in the image stack may be a 2D image.
[0104] Depending on the embodiment, at least one image in the image stack can be a 3D image.
[0105] Depending on embodiments, at least one image in the image stack may be an image of a real scene acquired with a camera module, and possibly processed.
[0106] According to some embodiments, at least one image in the image stack may be an image generated, in part or in whole, digitally by a digital device.
[0107] According to another aspect of the invention, a computer program is proposed comprising executable instructions which, when executed by a computer device, implement all the steps of the process according to the invention.
[0108] The computer program can be in any computer language, such as for example machine language, C, C++, JAVA, Python, etc.
[0109] Such a computer program can take the form of a standalone application. Alternatively, such a computer program can be integrated into a photo or video application, or into an image or video playback application, or even into a storage and memory application.
[0110] According to another aspect of the invention, a device is proposed comprising means configured to implement all the steps of the process according to the invention. [YES] The device according to the invention can be, or be integrated into, any type of device such as a smartphone, a tablet, a computer, a calculator, a processor, a computer chip, programmed to implement the method according to the invention, for example by executing the computer program according to the invention.
[0112] According to another aspect of the invention, a device is proposed comprising at least one computing unit configured to implement all the steps of the process according to the invention.
[0113] Optionally, the device according to the invention may further include a means for displaying at least one image such as a display screen or a projector for projecting an image onto a display surface.
[0114] Optionally, the device according to the invention may further include at least one means for acquiring images, or a stack of images. Such an acquisition means may be, or include, a camera module comprising an optical lens associated with an image sensor, such as a CCD sensor or a CMOS sensor.
[0115] The device can be equipped with several camera modules, identical or different.
[0116] The device according to the invention can compress a stack of images acquired / generated by said device.
[0117] The device according to the invention can compress a stack of images acquired / generated by another device and transmitted to it.
[0118] In particular, the device can be a user device such as a smartphone, tablet, etc., comprising a display screen.
[0119] In this case, the user device may further include a touch surface, in particular integrated into, or associated with, the display screen of said device.
[0120] In particular, the device may be a computer-type user device, including a display screen.
[0121] In this case, the computer-type user device may include a touch surface, in particular integrated into, or associated with, the display screen of said computer, or a pointer moved for example by a mouse, or a directional pad of said computer.
[0122] In particular, the device may be a television comprising a display screen.
[0123] The television may include a camera integrated into said television.
[0124] Alternatively, or in addition, the television may include a pointer moved for example by a remote control of said television.
[0125] In particular, the device may be a virtual reality headset, or glasses, or an augmented reality headset, referred to hereafter as "headset".
[0126] The helmet according to the invention comprises a display screen or a projector associated with a projection surface onto which an image or a stream of images is projected.
[0127] The helmet according to the invention may include at least one or more camera modules.
[0128] In particular, the device may be a medical imaging device.
[0129] In particular, the device could be an endoscope, an ultrasound machine, etc.
[0130] Of course, the device according to the invention is not limited to the examples just given.
[0131] According to another aspect of the present invention, a vehicle is proposed comprising a computing unit configured to implement all the steps of the process according to the invention.
[0132] The vehicle according to the invention may further include a means for displaying at least one image, such as a display screen or a projector for projecting an image onto a display surface.
[0133] The vehicle according to the invention may further include at least one means for acquiring images, or a stack of images. Such an acquisition means may be, or include, a camera module comprising an optical lens associated with an image sensor, such as a CCD sensor or a CMOS sensor.
[0134] The vehicle can be equipped with several camera modules, identical or different.
[0135] Depending on the embodiment, the vehicle can be a land vehicle, such as a car, autonomous, semi-autonomous or non-autonomous.
[0136] Depending on the embodiment, the vehicle can be a flying vehicle, such as a drone, an airplane, a helicopter, autonomous, semi-autonomous or non-autonomous.
[0137] Depending on the embodiment, the vehicle can be a maritime vehicle, such as a boat or a submarine, autonomous, semi-autonomous or non-autonomous. Description of the figures and methods of implementation
[0138] Other advantages and features will become apparent upon examination of the detailed description of non-limiting embodiments and the accompanying drawings, in which: - FIGURE 1 is a schematic representation of a non-limiting example of an embodiment of a method according to the present invention; - FIGURE 2 is a schematic representation of a non-limiting example of an image stacking of an image stack in a 3D matrix that can be implemented in the present invention; - FIGURE 3 is a schematic representation of a non-limiting example of an embodiment of a device according to the present invention; - Figures 4a-4c are schematic representations of non-limiting examples of embodiments of a device according to the present invention; and - FIGURE 5 is a schematic representation of a non-limiting example embodiment of a vehicle according to the present invention.
[0139] It is understood that the embodiments described below are by no means exhaustive. In particular, variants of the invention may be conceived comprising only a selection of the features described below, isolated from the other features described, if this selection of features is sufficient to confer a technical advantage or to differentiate the invention from the prior art. prior. This selection includes at least one functional preference feature without structural details, or with only part of the structural details if that part is sufficient to confer a technical advantage or to differentiate the invention from the prior art.
[0140] In particular, all the variants and embodiments described can be combined with each other if there are no technical obstacles to this combination.
[0141] In the figures and in the rest of the description, elements common to several figures retain the same reference.
[0142] FIGURE 1 is a schematic representation of a non-limiting example of an embodiment of a method according to the present invention.
[0143] Method 100 of Figure 1 can be used to perform compression of a PIL image stack comprising N images, with N>1, and referenced IMi-IM n in the following, without loss of generality.
[0144] Process 100 may include an optional step 102 of spatial registration of at least one image from the PIL image stack.
[0145] This registration process eliminates discrepancies between images in the PIL (Picture Link Interface) that represent the same scene. For example, the registration step eliminates differences in viewpoint, viewpoint, slight movements, etc., that may exist between different images of the same scene.
[0146] In the example of realization of FIGURE 1, in no way limitingly, at least one, in particular each, image of the PIL image stack, is spatially recalibrated with respect to the image of said PIL image stack representing the scene with the largest viewing angle.
[0147] Registration is performed by detecting the same objects of interest in the images, using their position to register the images relative to each other.
[0148] The process 100 may further include an optional step 104 of adjusting the size of at least one image in the image stack PIL, especially when the images in the PIL image stack are of different sizes.
[0149] In the example implementation shown in Figure 1, the size of the images in the image stack PIL is adjusted, without limitation, to match the size of the largest image in the stack—for example, the image representing the scene with the widest viewing angle. In this case, each smaller image IMk is padded with predetermined values, specifically constants (e.g., zero or undefined), to achieve the same size as the largest image.
[0150] The process 100 may further include an optional step 106 of adjusting the definition of the images in the PIL image stack, particularly when the images in the PIL image stack have different definitions.
[0151] In the example shown in Figure 1, the resolution of the images in the image stack PIL is adjusted, without limitation, to match the resolution of the highest-resolution image, for example, the image representing the scene at the greatest zoom level. In this case, each lower-resolution image IMj is supplemented with predetermined values, specifically constants, such as zero or undefined values, so that it has the same resolution as the highest-resolution image.
[0152] The process 100 may further include an optional step 102 of converting an image format from another format, for example from RGB, to a luminance format, for example HSL, for at least one image in the PIL image stack. In particular, during this step 102 each IMk image in the PIL image stack is converted to a luminance format, such as HSL.
[0153] This step is of course optional and process 100 can be applied to a stack of PIL images that is not in luminance format, for example a stack of images in RGB format.
[0154] Process 100 includes a step 110 of stacking the images from the PIL image stack into a three-dimensional matrix, 3D matrix.
[0155] The 3D matrix comprises three planes (U, V, W). Each plane Wk corresponds to an image IMk, which is represented as a 2D data matrix (U, V)k. In other words, each plane (U, V) corresponds to the image sensor plane, or image plane, for one of the images IMk in the image stack. Thus, in dimension W, the 3D matrix comprises as many planes (U, V) as there are images in the image stack PIL. Each plane Wk=(U, V)k is constructed by copying the 2D data matrix representing the image IMk onto it, possibly after applying at least one of the optional steps 102-108 to said 2D matrix.
[0156] Thus, in the 3D matrix, each cell (Ui, Vj, Wk) contains the data (Ui, vj) of pixel (i, j) of image IMk. In other words, the 3D matrix is a 3D matrix of pixels, each pixel with coordinates (Ui, Vj, Wk) in said matrix corresponding to the pixel with coordinates (Ui, vj) of image IMk.
[0157] Each pixel can comprise one or more components, denoted c, with c ranging from 1 to C. In particular, each pixel comprises several components. For example, in the case of RGB images, each pixel in an RGB image comprises at least three components, and each pixel in the 3D matrix can also comprise three components.
[0158] Of course, this 3D matrix can be computer-represented in any form.
[0159] The process 100 includes an optional coding step 112, performed on the 3D matrix. During this step 112, the 3D matrix is coded in a three-dimensional target space by projection onto an orthogonal basis of discrete Haar wavelets with 3D support.
[0160] Depending on the embodiment, this step 112 is performed for at least one, in particular each, component c of each pixel of the 3D matrix individually. For each component c, step 114 comprises several iterations of a dot product calculation between the component c of the 3D matrix and said wavelets. Considering a 3D matrix comprising UxVxW pixels: - During the first iteration: a dot product is calculated between component c of the 3D matrix and a first basis of orthogonal wavelets, represented by a matrix of size UxVxW. This dot product provides the following for said component c: ■ 7 less resolved 3D matrices, called transition 3D matrices, each of size (UxVxW) / 8: these transition 3D matrices are stored; and ■ an 8 ème 3D matrix, called background 3D matrix, less resolved, of size (UxVxW) / 8 which will be used during the next iteration; - a dot product is calculated between the 8 ème The 3D background matrix obtained in the previous iteration, a second basis of orthogonal wavelets, represented by a matrix of size (UxVxW) / 8. This scalar product provides for said component c: ■ 7 less resolved 3D transition matrices, each of size (UxVxW) / 64: these 3D transition matrices are stored; and ■ an 8 ème a less resolved 3D background matrix of size (UxVxW) / 64 which will be used in the next iteration; - and so on, with each new n ième by iteration, the input background 3D matrix thus has dimension (UxVxWyCS 11 '1 More precisely, the new input image of the iteration contains (U / 2 n l ) components along the U axis, (V / 2 n-1 ) components along the V axis, and (W / 2 n-1 ) components along the W axis.
[0161] It is preferable to consider values of U, V, and W as powers of 2, so that each division of U, V, and W by 2 yields a number that remains an integer. Thus, the size of the matrix at each subsequent iteration eventually reaches exactly 1 for at least one of the axes U or V, W, or preferably for all three axes simultaneously, if U=V=W are all three powers of 2. Then the last 3D background matrix with a single coefficient along the three axes U, V, and W is stored as the last 3D matrix provided by the coding algorithm.
[0162] But generally, the value of W may be considerably smaller than U and V, or at least quite different. It is also possible that U, V, and W are not powers of 2 (such as 2, 4, 8, 16, etc.). In this case, it is possible to modify U and V by increasing them, by adding bands of pixels with zero components on two of the contours of each image in the stack, to adjust U and V to powers of 2 and also to numbers equal to each other.
[0163] Alternatively, or in addition, it is possible to supplement the stack with complementary images, with zero-component pixel values, to adjust W to a power of 2, possibly different from U and V, with a value significantly lower than W (or at least different). Then, the iteration will wait for W / 2. n-1 equal to 1 well before U / 2 n_1 and / or V / 2 n-1 be equal to or equal to 1. (If W is greater than U and V, it is U / 2) n_1 and / or V / 2 n-1which will be equal to 1 initially, which does not change the principle of what follows; it suffices to swap the roles of W with the relevant U or V). In this case, we obtain a final 3D matrix of dimension ((U / 2 n ' 1 )x(V / 2 n ' 1 )x(W / 2 n ' 1 )) with (W / 2 n-1 ) equal to 1. We can then continue the coding according to the following sequence, starting from the 3D matrix which becomes a 3D matrix of dimension (U / 2 n ' 1 )x(V / 2 n ' 1 )xl, or so-called “flat” 3D matrix: - during the n+l ième Iteration: a scalar product is calculated between the component c of the flat 3D matrix and a basis of orthogonal wavelets, represented by a matrix of size (U / 2 n ' 1 )x(V / 2 n ' ^xl. From this step onward, this wavelet basis can also be considered a 2D supported wavelet basis. This scalar product provides the following for said component c: ■ 3 flat 3D matrices, called flat transition 3D matrices, with lower resolution, each of size (U / 2 n )x(V / 2 n )xl: these flat 3D transition matrices are stored; and ■ a 4 ème 3D matrix, called flat background 3D matrix, less resolved, of size (U / 2 n )x(V / 2 n )xl which will be used in the next iteration; - we can continue the iterations up to a rank P until we obtain one of the values (U / 2 P ) equal to 1, or (V / 2 P ) equal to 1. We can stop the iterations if (U / 2 P ) and (V / 2 P ) are simultaneously equal to 1, and store the last flat 3D matrix of dimension (l x l x l). If (U / 2 P ) and (V / 2 P ) are not simultaneously equal to 1, for example (U / 2 P ) is strictly greater than 1, whereas (V / 2 P ) has reached 1, we can continue with a p+i ième iteration: - a scalar product is calculated between the component c of the flat 3D matrix along the V and W axes, and a basis of orthogonal wavelets, represented by a matrix of size (U / 2 p )xlxl. This wavelet basis is, from this step onward, also a 1D supported wavelet basis. This scalar product provides, for said component c: ■ 1 flat 3D matrix along V and W, called a transition 3D matrix, less resolved, of size (U / 2 p+1 )xlxl: this flat 3D transition matrix is stored; and ■ a 2 ème 3D matrix, called background 3D matrix, less resolved, of size (U / 2 p+1 )xlxl which will be used in the next iteration; - we can continue the iterations up to (U / 2 P+1 ) equal to 1, and store the last 3D matrix with (lxlxl) value. Thus, the iterations are performed until a 3D matrix of values, called the coded 3D matrix, is obtained, comprising (UxVxW) values. This coded 3D matrix is a three-dimensional matrix.
[0164] Such a coding step is classically known to those skilled in the art for an image represented by a two-dimensional matrix (U,V). The invention proposes to apply it to a 3D matrix comprising all the images of the stack of images stacked in the W direction.
[0165] Specifically, for each of the previous iterations mentioned in coding step 112, it is possible to perform three sub-iterations to calculate the 7 transition images and 1 background image. In what follows, a column is defined as a set of components of the 3D matrix along the U-axis, so there are VxW columns. A row is defined as a set of components of the 3D matrix along the V-axis, so there are UxW rows. Finally, a pillar is defined as a set of components of the 3D matrix along the W-axis, so there are UxV pillars. A row plane is a plane perpendicular to a row, so a pillar plane is identified by a constant index u. Similarly, a column plane is a plane perpendicular to a column, which is therefore identified by a constant index v. Finally, a pillar plane is a plane perpendicular to a pillar, which is therefore identified by a constant index w. Also, the indices u, v, and w all start at 1.
[0166] At each n ièmeiteration, in order to perform the scalar product between the component c of the 3D matrix and the basis of orthogonal wavelets, represented by a matrix of size ((U / 2 n ' 1 )x(V / 2 n ' 1 )x(W / 2 n ' 1 )), with which we therefore transform the 3D matrix, we proceed to: - a first sub-iteration, for which we obtain a 3D matrix called the output matrix, of which ■ Each of the components c of the planes with odd index u, and coordinates v and w, is obtained by the half-sum of the corresponding component, with the same u, v, w, of the input 3D matrix, and the component at index u+1, with the same v, w, of the input 3D matrix, and ■ for each of the row planes with even index u, the component c is obtained by half the difference of the corresponding component, with the same v, w, of index u-1 of the input 3D matrix, and the component corresponding to the index u, with the same v, w, of the input 3D matrix; - a second sub-iteration, taking as input the 3D output matrix of the previous sub-iteration, for which we obtain an output 3D image matrix whose each of the components of the column planes with odd index v is obtained by the half sum of the corresponding component, for the same u and w, of the input 3D matrix, and the component at index v+1, with the same u, w, of the input 3D matrix; - a third sub-iteration, taking as input the 3D output matrix of the previous sub-iteration, for which we obtain a 3D output image matrix whose ■ Each of the components of the pillar planes with odd index w, and coordinates u and v, is obtained by the half-sum of the corresponding component, for the same u, v and w, of the input 3D matrix, and the component at index w+1, for the same indices u and v of the input 3D matrix, ■ For each of the pillars with even index w, the component c is obtained by half the difference of the corresponding component with index w-1 of the input 3D matrix, for the same u and v, and the component corresponding to the index (u,v,w) of the input 3D matrix.
[0167] Finally, from this last output 3D matrix, we extract the set of coefficients with even indices (u,v,w), to store them in a new 3D matrix of size ((U / 2 n )x(V / 2 n )x(W / 2 n (therefore 1 / 8 times the size of the output matrix of the 3 sub-iterations), which provides the 8 ièmeThe background 3D image is available for the next iteration, or stored at the end of the iterations. Its components are also the sum of the 8 components of the output image from the 3 sub-iterations, taken at every 8 combinations at the index immediately above, or equal to, u, v, w respectively, which sum is divided by 8.
[0168] Similarly, by combining the extractions to create three (3) other new so-called transition images, of size ((U / 2 n )x(V / 2 n )x(W / 2 n)), for each index set (u,v,w) containing 1 odd value; then three (3) other new transition images, for each index set (u,v,w) containing 2 odd values, and finally one (1) last new transition image for each odd u, v, w value. This extracts seven (7) new transition images, which are stored at the end of the Nth iteration.
[0169] It should be noted that the 112 encoding step as described above is applied to at least one, and in particular each, image component individually. For example, in the case of RGB format images, step 112 can be performed for each R, G, and B component. For example, in the case of HSL format images, step 112 can be performed for each T, S, and L component; and so on.
[0170] Depending on the embodiment, the coding step 112 can be performed simultaneously for at least two, in particular all, image components. In this case, each component of the same pixel can be concatenated as a number with more possible values than any single component. In binary digital representation of each component, a new binary number can be generated by concatenating the bits of each component into a number represented by the union of all these bits.
[0171] One can also create a so-called composite number with C dimensions by combining the C components of the pixel as coordinates of the composite number, representing its components. The same encoding operations can be performed using vector bases for a matrix of (U x V x W) composite numbers with C components as for matrices of (U x V x W) one-dimensional numbers. Indeed, such composite numbers can be added and subtracted by adding and subtracting, respectively, the first component of the first number and the second number, the second component of the first and second numbers, and so on, up to the last component with index C. Similarly, dividing the composite number by 2 can be done by dividing each of its components by 2. A dot product is also obtained by summing the pairwise products of its first, second, and so on components.The cth components are then repeated for all pixels with equivalent indices, and the results are summed. These operations allow the composite image to be encoded with C dimensions using the same algorithm as previously mentioned for the 112 encoding step for a single c component, for encoding on a Haar wavelet basis. The resulting encoded stored image then contains a 3D matrix of (UxVxW) composite numbers with C components.
[0172] The process 100 further includes an optional step 114, which performs a reduction of the digital resolution of either the 3D matrix, or of the, or each, coded 3D matrix obtained in step 112.
[0173] This reduction in digital resolution is achieved conventionally through quantization. In short, the values of the 3D matrix, or the encoded 3D matrix, are compared to a predefined threshold. All values below this threshold are set to zero or removed. Alternatively, or in addition, the number of significant digits, or the number of bits in the binary representation of the values, can be reduced by a certain number of the least representative bits. This number is adjusted according to the desired final quality, or in such a way that the quality degradation remains imperceptible or barely perceptible.
[0174] Then process 100 includes a compression step 120 according to a pattern dictionary coding algorithm.
[0175] Following a non-limiting example of implementation, and without loss of generalities, the coding algorithm used is LZ78.
[0176] Step 120 can be applied to the 3D matrix or to the coded 3D matrix obtained in step 112, possibly after quantization in step 114. In the example in FIGURE 1, without loss of generality, it is considered that step 120 is applied to the coded 3D matrix, after quantization.
[0177] During step 120, the coded 3D matrix is read using a sliding window that is moved as it is read.
[0178] An "m" pattern is detected during step 122.
[0179] In step 124, a dictionary, denoted BC, is consulted to determine whether the pattern "m" detected in step 122 is already known or not.
[0180] If the pattern "m" is not known, at step 126 it is stored in the BC dictionary, and the pattern "m" may or may not be left in the coded 3D matrix, in particular depending on the form of the BC dictionary (autonomous entity or not).
[0181] If the pattern "m" is known, then in the vector being compressed, said pattern "m" is replaced by a reference to said pattern "m".
[0182] Process 100 provides, at the end of step 120, a record or file, denoted PIL*, representing the compressed PIL image stack.
[0183] In the example described with reference to FIGURE 1, the pattern dictionary BC is an individual and autonomous entity. In other words, the pattern dictionary BM is an individual file / record separate from the compressed image stack IC*.
[0184] For at least one, in particular each, pattern 'm', the BM pattern dictionary can memorize said pattern 'm' at the first occurrence of said pattern, i.e. at step 116.
[0185] Optionally, for at least one, in particular each, "m" pattern, the BM pattern dictionary can store: - an indexing data entry for said pattern "m" in said BC dictionary; and - an indexing table allowing to find said pattern “m” more quickly, when said dictionary BM is read (during compression and during decompression).
[0186] For at least one, in particular each, motif "m", the reference to said motif "m" added in the coded 3D matrix may include: - an identifier, noted "idm", of said pattern "m" in said pattern dictionary BM: this identifier is used, during decompression, to find said pattern "m" in said pattern dictionary and insert it in place of the reference to said pattern "m" to decompress the image stack, this identifier being a position to access the pattern; - optionally, in addition to the identifier, a position, denoted "d", indicating the position of the first occurrence of said pattern "m"; - optionally, a length, noted "I", of said pattern "m"; - optionally a repetition data indicating the number of times said pattern is repeated, consecutively, in the coded 3D matrix.
[0187] According to one embodiment, the pattern dictionary BC can be an entity stored directly in the compressed image stack IC*.
[0188] In this case, for at least one, in particular each, pattern "m", the reference to said pattern "m" inserted into the coded 3D matrix, or into the 3D matrix, during its compression can appear in the form described above.
[0189] Depending on one embodiment, it is possible to use: - a first pattern dictionary presented as an autonomous entity independent of the IC* compressed image stack, and - a second common dictionary taking the form of an entity stored directly in the compressed image stack IC*; as described above.
[0190] In the example described with reference to FIGURE 1, the image stack PIL can be a stack of images representing the same scene, at approximately the same instant, and each image representing said same scene with: - a different focal length, - a different brightness, - a different exposure time, - a different direction, - a different framing, - a different point of view, - a different zoom level, - a different resolution - a different camera module, etc.
[0191] FIGURE 2 is a schematic representation of a non-limiting example of an image stacking to obtain a 3D matrix that can be implemented in the present invention.
[0192] As shown in FIGURE 2, the PIL image stack comprises N IMi-IM images n .
[0193] Each IMi-IM image n is represented by a two-dimensional value matrix, Mi-M n Each cell (Ui,vj) of the matrix Mk includes the pixel values with coordinates (i,j) of the image IMk.
[0194] Mi-M matrices n are stacked one on top of the other in a direction W, perpendicular to the directions U and V, to obtain a 3D 202 matrix. Each plane Wk of the 3D 202 matrix includes the matrix of values Mk representing the image IMk. In the direction W, there are therefore as many planes (U,V) as there are images in the image stack PIL.
[0195] Each cell (Ui,Vj,Wk) of the 3D matrix 202 includes the values of the pixel located at position (i,j) in the IMk image.
[0196] FIGURE 3 is a schematic representation of a non-limiting example embodiment of a device according to the present invention.
[0197] The device 300 of FIGURE 3 can be used to implement a process according to the invention, and in particular the process 100 of FIGURE 1.
[0198] Device 300 includes a computing unit 302 configured to implement the steps of the process according to the invention.
[0199] The computing unit 302 includes an optional module 304 for performing spatial registration of at least one image from the image stack. This module 304 is specifically configured / programmed to perform step 102 of process 100.
[0200] The computing unit 302 includes an optional module 306 for resizing at least one image in the image stack. This module 306 is specifically configured / programmed to perform step 104 of process 100.
[0201] The computing unit 302 includes an optional module 308 for adjusting the resolution of at least one image in the image stack. This module 308 is specifically configured / programmed to perform step 106 of process 100.
[0202] The computing unit 302 includes an optional module 310 for transforming the format of at least one image in the image stack. For example, this module 310 takes an RGB image as input and outputs a luminance image. This module 310 is specifically configured / programmed to perform step 108 of process 100.
[0203] The computing unit 302 includes a module 312 for stacking the images from the image stack into a 3D matrix. For example, this module 312 takes as input several 2D matrices, each representing an image, and provides as output a 3D matrix, for example, as shown in FIGURE 2. This module 312 is specifically configured / programmed to perform step 110 of process 100.
[0204] The computing unit 302 further includes an optional module 314 for encoding the 3D matrix representing a stack of projected images onto a function basis, specifically orthogonal wavelets. This module 314 is specifically configured / programmed to perform step 112 of process 100.
[0205] The computing unit 302 includes an optional module 316 for reducing the numerical resolution, for example by quantization, of the 3D matrix or a coded version of the 3D matrix. This module 316 is specifically configured / programmed to perform step 114 of process 100.
[0206] The computing unit 302 includes a module 318 for compressing the 3D matrix or a coded version thereof, possibly after quantization, using a pattern dictionary compression algorithm, for example, the LZ78 algorithm. This module 318 takes as input the 3D matrix, or a coded version thereof, possibly after quantization, and outputs a compressed version corresponding to the compressed image stack. This module 318 is specifically configured / programmed to perform step 120 of process 100.
[0207] At least one of these 304-318 modules can be a module independent of the others.
[0208] At least two of the 304-318 modules can be integrated within the same module.
[0209] At least one of the 304-318 modules can be a hardware module such as a processor, an electronic chip, a computer, etc.
[0210] At least one of the 304-318 modules can be a software module, such as a computer program.
[0211] At least one of the 304-318 modules can be a combination of at least one software module and at least one hardware module.
[0212] In particular, at least one of the 304-318 modules can be integrated into an electronic chip, or into an application installed in a user device.
[0213] The device 300 may also optionally include at least one display means 320, such as a display screen, touch or not, or a means for projecting an image onto a support, to display an image of the scene.
[0214] Such a display method can be integrated into device 300.
[0215] Such a means of display is optional because the 300 device may not include such a means.
[0216] Optionally, the device 300 may further include one or more image acquisition means 330, such as a camera, or a camera module including an optical lens and an image sensor, to acquire an image or a stack of images of a scene.
[0217] Such a 330 image acquisition means can be integrated into the device, for example on a front or rear face, or both.
[0218] Such a 330 image acquisition means is optional because the 300 device may not include a 330 image acquisition means.
[0219] FIGURE 4a is a schematic representation of a non-limiting example embodiment of a device according to the present invention.
[0220] The apparatus 400 of FIGURE 4a includes means configured to implement the invention, and in particular the method 100.
[0221] The device 400 of FIGURE 4a may include a device according to the invention, and in particular the device 300 of FIGURE 3.
[0222] In the example shown in FIGURE 4a, device 400 is a smartphone, or a tablet, comprising device 300 from FIGURE 3.
[0223] In particular, the 400 device includes a 320 display screen, optionally equipped with a sensing surface, for example capacitive.
[0224] Optionally, the 400 device can include at least one 330 camera module to image a scene.
[0225] FIGURE 4b is a schematic representation of another non-limiting embodiment of a device according to the present invention.
[0226] The apparatus 410 of FIGURE 4b includes means configured to implement the invention, and in particular the method 100.
[0227] The apparatus 410 of FIGURE 4b may include a device according to the invention, and in particular the device 300 of FIGURE 3.
[0228] In the example shown in FIGURE 4b, device 410 is a virtual reality, VR headset or glasses, or an augmented reality headset or glasses, comprising device 300 of FIGURE 3.
[0229] In particular, the 410 headset includes a 320 display screen.
[0230] Optionally, the 410 headset may include a sensor (not visible in FIGURE 4b) to detect the position aimed by one eye, or eyes, of the user on said display screen 320.
[0231] In the example shown in FIGURE 4b, the 410 headset does not include an imaging device to capture images of the scene. In this case, the image stack to be compressed is provided by another device connected to the 410 headset.
[0232] Alternatively, the 410 helmet may include at least one camera module to capture images of the scene in which it is located.
[0233] FIGURE 4c is a schematic representation of a non-limiting example embodiment of a device according to the present invention.
[0234] The apparatus 420 of FIGURE 4c includes means configured to implement the invention, and in particular the method 100.
[0235] The apparatus 420 of FIGURE 4c may include a device according to the invention, and in particular the device 300 of FIGURE 3.
[0236] In the example shown in FIGURE 4c, device 420 is a medical imaging device, such as an endoscope, an ultrasound machine, etc.
[0237] Optionally, the 420 medical imaging device includes a 320 display screen, optionally equipped with a touch surface.
[0238] The medical imaging device 420 further includes an imaging means 330 formed by a distal objective connected to an imaging module (not shown).
[0239] FIGURE 5 is a schematic representation of a non-limiting example embodiment of a vehicle according to the present invention.
[0240] Vehicle 500 in FIGURE 5 includes means configured to implement the invention, and in particular method 100.
[0241] The vehicle 500 of FIGURE 5 may include a device according to the invention, and in particular the device 300 of FIGURE 3.
[0242] In the example shown in FIGURE 5, vehicle 500 is a land vehicle, in particular a car, comprising device 300 of FIGURE 3.
[0243] Optionally, the 300 vehicle includes a 320 display screen arranged in the passenger compartment of the 500 vehicle.
[0244] Optionally, the 500 vehicle also includes at least one 330 camera, for example positioned high up behind the windshield of the 500 vehicle.
[0245] Of course, the invention is not limited to the examples that have just been described.
Claims
DEMANDS 1. Method (100) for compressing an image stack (IS) comprising N images (IMi-IM n ), each image (IMi-IM n ) being represented by a two-dimensional data matrix (Mi-Mn) (U,V), each cell (u,v) of said matrix (Mi-M n ) comprising a set of values representing a pixel of said image (IMi-IM n ), said process (100) comprising the following steps: - stacking (110) of said images in a three-dimensional matrix (U,V,W) (202) comprising N Wi-W planes n in dimension W, each plane Wk in said dimension W corresponding to an image (IMk), and each cell (u,v) in said plane Wk comprising a set of values representing a pixel of said image (IMk); and - compression (120) of said image stack from said three-dimensional matrix (202) by a pattern dictionary compression algorithm.
2. A method (100) according to the preceding claim, characterized in that it further comprises, before the compression step (120), a step (112) of encoding said three-dimensional matrix (202), in a three-dimensional space, by projection of said three-dimensional matrix (202) onto a basis of functions; the compression step (120) being applied to a coded version of said three-dimensional matrix (202).
3. Method (100) according to the preceding claim, characterized in that the function basis is a basis of orthogonal functions.
4. Method (100) according to any one of claims 2 or 3, characterized in that the function basis is a wavelet basis, and in particular an orthogonal wavelet basis, and even more particularly a Haar wavelet basis.
5. Method (100) according to any one of the preceding claims, characterized in that it comprises, before the compression step, a digital resolution reduction step.
6. Method (100) according to any one of the preceding claims, characterized in that it comprises a step (102) of spatially registering at least one image from the image stack.
7. A method (100) according to any one of the preceding claims, characterized in that: - each plane Wi of the three-dimensional matrix (202) has a size greater than or equal to the size of the largest image, and - for a smaller size IMi image, the corresponding Wi plane is completed with predetermined values, in particular constants, for example zeros.
8. A method (100) according to any one of the preceding claims, characterized in that the image stack (PIL) comprises images in RGB format, said method (100) performing the compression of at least one, and in particular of each, chromatic component individually.
9. Method (100) according to any one of the preceding claims, characterized in that it comprises, before the compression step (120), a step (100) of transforming the images of the image stack (PIL) into luminance format.
10. Computer program comprising executable instructions which, when executed by a computing device, implement all the steps of the process (100) according to any one of the preceding claims.
11. Device (300) comprising means configured to carry out all the steps of the process (100) according to any one of the claims 12. Apparatus (400;410;420) comprising at least one computing unit (302) configured to carry out all the steps of the process (100) according to any one of claims 1 to 9.
13. Vehicle (500) comprising at least one computing unit (302) configured to carry out all the steps of the process (100) according to any one of claims 1 to 9.
Citation Information
Patent Citations
Multi-dimensional data compression
CA2277373A1
Method apparatus and system for compressing data that wavelet decomposes by color plane and then divides by magnitude range non-dc terms between a scalar quantizer and a vector quantizer
US6865291B1