EP1963970A2 - Verfahren zur bereitstellung von daten an digitale verarbeitungsmittel - Google Patents
Verfahren zur bereitstellung von daten an digitale verarbeitungsmittelInfo
- Publication number
- EP1963970A2 EP1963970A2 EP06847178A EP06847178A EP1963970A2 EP 1963970 A2 EP1963970 A2 EP 1963970A2 EP 06847178 A EP06847178 A EP 06847178A EP 06847178 A EP06847178 A EP 06847178A EP 1963970 A2 EP1963970 A2 EP 1963970A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- generic
- data
- block
- formatted data
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Definitions
- the present invention relates to a method for providing generic formatted data to a digital data processing means.
- each platform has its own characteristics, both in terms of hardware (for example number and type of processors or size and type of memory), and in terms of language used (C for a scalar processor and assembler for a vector processor ).
- hardware for example number and type of processors or size and type of memory
- language used for a scalar processor and assembler for a vector processor
- a signal processing processor has a small local memory and must copy the data from and to the main memory from this local memory.
- a vector processor in particular of the SIMD (Single Instruction Multiple Data) type, processing data grouped by vectors of different sizes according to the platform and the vectors are not expressible independently of the platform when using a language such as the language C.
- the computing power is increasing very quickly and it is therefore possible to take advantage of this performance with more and more powerful algorithms, provided that they can be optimized quickly.
- the characteristics of the sensors evolve very quickly and it is therefore necessary to adapt the image processing algorithms to the characteristics of these sensors, including noise that increases with miniaturization, as long as we can optimize quickly.
- the invention starts from the observation that, in order to overcome these drawbacks, the algorithms should be developed in a language that is independent of the organization of the data and the order of processing, without explicitly coding these informations manually in order to remain independent of the platform and leave room for automatic tools.
- the purpose of the invention is to provide generic formatted data to overcome at least one of the aforementioned drawbacks and thus to accelerate the placing on the market of data processing hardware and software, particularly images, in particular automatically and quickly obtaining an optimized implementation for various platforms of any algorithm.
- the invention thus relates to a method for providing generic formatted data to at least one digital data processing means for translating the generic formatted data into specific formatted data.
- the generic formatted data comprises data relating to logical blocks, at least one of the logical blocks corresponding to an object to be processed based, directly or indirectly, specific formatted data by at least one processing platform with processor (s) and memory (s), located downstream of the processing means or integrated into the processing means.
- the object to be processed consists of elementary information of the same nature, each of which is represented by at least one numerical value.
- the method comprises the following steps:
- - Data is provided by digital processing first data, forming part of the generic formatted data, and describing at least one sequence of generic operations to be performed on at least one logic block and / or on at least one parameter.
- Second data is provided by means of digital processing, for generic operations involving multiple logical blocks.
- These second data are part of the generic formatted data and relate to the relative position, according to at least one dimension of the object, in particular spatial and / or temporal, of the blocks and / or parameters, some by relative to the others, and / or relating to the relative scale, according to at least one dimension of the object, in particular spatial and / or temporal, logic blocks and / or parameters with respect to each other.
- the generic formatted data is digital data describing a processing to be performed on an object in one or more dimensions, included in the group comprising: an image, a digitized sound signal, a sequence of images, a modulated signal, a simulation data item and a digital mesh.
- An object to be processed is a physical entity consisting of physical data in the form of elementary information included in the group comprising: the pixels of an image, the samples of a digitized sound signal, the intensity and the phase of a signal modulated, a data characterizing the state of a simulation datum, the temporal and / or spatial information characterizing the points of a digital mesh.
- the generic formatted data provided by the processing means excludes the data relating to the identification of the basic information and the order in which the basic information will be processed by the platform, so that the generic formatted data is independent of the platform. treatment used. These generic formatted data are also independent of data relating to the decomposition of the object into sub-objects, the shape, size and overlap of these sub-objects, and the storage of the elementary information constituting these sub-objects in a memory.
- the generic formatted data is digital data for describing a processing to be performed on an object by a data processing platform, regardless of the platform itself.
- These generic formatted data are, in the context of the invention, provided to a processing means that may contain the processing platform, or be upstream of it.
- the treated objects correspond to a set of basic information of the same nature; these objects are for example images, digitized sounds, video or simulation data.
- the generic sequence of operations does not include a loop.
- the second data are part of the generic formatted data and relate to the relative position, according to at least one dimension of the particular spatial and / or temporal object, of the blocks and / or parameters relative to one another. , and / or relate to the relative scale, according to at least one dimension of the particular spatial and / or temporal object, logic blocks and / or parameters with respect to each other.
- the objects and sub-objects as well as the logical blocks have several dimensions.
- the dimensions of the subobjects and logical blocks correspond to all or part of the dimensions of the object.
- the dimensions can be of various natures, in particular: -spatial, for example a distance, an angle or a course in a mesh, -temporal,
- -frequency for example a color, a frequency, a frequency band -a phase, a decomposition according to another vector space base, for example a wavelet decomposition
- a fixed image with 2 dimensions each corresponding to distances, in particular measured in pixels
- a raw fixed image with 2 dimensions each corresponding to distances, the pixels each being provided with a color, for example red, green or blue
- an animated image with 3 dimensions, corresponding, for 2 of them, to distances, in particular measured in pixels and for one of them to time, a relief image with 3 dimensions, corresponding to distances,
- an image with dimensions of distance and / or of angle and / or temporal, and / or frequency
- a sound with 2 dimensions corresponding to time and a channel
- a modulated signal with one or more dimensions corresponding to time and, optionally, a frequency and, optionally, a position in space or an angle
- the elementary information of an object may have a position and / or an absolute scale, in particular spatial and / or temporal and / or frequency, but also according to at least one dimension of the object as well as in any space, especially a space consisting of wavelets:
- an elementary information of an object "sound" can correspond to an intensity; in this case, the elementary information has an absolute position corresponding to a given instant and, in the case of a multichannel sound, to a given channel.
- an elementary information of an "image" object can correspond to a pixel; in this case, the elementary information has an absolute position corresponding to a position in the image and, in the case of a video image, at a given moment.
- An elementary information of a "simulation data" object can correspond to a state; in this case, the elementary information has an absolute position corresponding to a mesh node and at a given moment.
- an elementary information of a "modulated signal” object may correspond to an intensity and / or a phase; in this case, an elementary information has an absolute position corresponding to a given instant and, possibly, to a given frequency and / or to a given position, if several antennas or transmitters are used.
- Elementary information is a piece of information to be processed, represented by one or more numerical values. This information can be encoded according to various types of coding such as 8-bit signed coding, 10-bit coding, or signed 16-bit coding. In the case where the object is an image, for example, the basic information will be the pixels of this image.
- the objects can be raw images ("raw" type) before demosaicing operation, in which case an elementary information is a pixel represented by a corresponding numerical value, according to the absolute position of the pixel, for example to red, green or blue.
- the objects may also be visible images, in which case an elementary information is a pixel represented, for example, by three numerical values, each representing a color, for example red, green and blue.
- the objects can also be sequences of images, in particular raw or visible, in which case an elementary information is a pixel of an image of the image sequence.
- Objects for example, correspond to videos.
- the image may be derived from an image capture apparatus and / or intended for an image reproduction apparatus:
- An image capture device is, for example, a disposable camera, a digital camera, a DSLR (digital or not), a scanner, a fax, an endoscope, a camera, a camcorder, a camera of surveillance, a toy, a camera or a camera integrated or connected to a telephone, a personal assistant or a computer, a thermal camera, an ultrasound machine, an MRI (magnetic resonance) imaging apparatus, a device X-ray radiography.
- An image rendering apparatus is, for example, a screen, a projector, a television set, virtual reality glasses, or a printer.
- a device for capturing and restoring images is, for example, a scanner / fax / printer, a mini lab for printing photos, a video conference device.
- the processing platform can take various forms depending on the application.
- An image capture apparatus that produces processed images, for example a digital camera that integrates a processing platform.
- An image rendering apparatus which displays or prints processed images, for example a video projector or a printer including a processing platform.
- a mixed device that corrects the defects of its elements, for example a scanner / printer / fax including a processing platform.
- a professional image capture device that produces processed images, for example an endoscope including a processing platform.
- the processing platform can be deported in whole or in part to a server.
- the processing that will be applied to the object in the platform corresponds to an algorithm, described by one or more sequences of generic operations, which can intervene in various domains such as, for example, image processing, compression and decompression data processing, signal modulation and demodulation, measurement, data analysis, database indexing or search, computer vision, graphics processing, simulation or domain implementing a large amount of data.
- Generic operations are operations that apply to logical blocks, that is abstract entities, without any notion of size, shape, or time. Generic operations can produce logical blocks.
- at least one logic block corresponds to the object to be processed.
- the logical blocks are of several types according to the generic operation, for example, in the case where the object is an image,
- At least one logic block is of "raw" type, and / or at least one logical block is of red type, and / or
- At least one logical block is of green type, and / or
- At least one logic block is of blue type, and / or
- At least one logic block can be represented by 8-bit data, and / or at least one logic block can be represented by 16-bit data.
- At least one logic block contains multiscale data, for example scaled data 1, H and 1/8. This allows for generic operations at multiple scales, and then combine the results
- the logical blocks may, in one embodiment, correspond, according to the type of the logical block, to physical blocks consisting of elements of the same nature as the elementary information or else constituted by elements of a different nature than the information elements.
- elementary The notion of absolute or relative position is independent of the type of the logical block.
- elementary information applies to all elements regardless of the type of the logic block.
- An algorithm may, for example, without the list being limiting, correspond, in the case where the object, is an image to:
- a treatment in particular for improving the rendering of the contrast
- a treatment in particular for improving the rendering of the details, and / or
- the object to be processed is generally, during the processing, broken down into sub-objects, that is to say into groups of elementary information having a determined size and shape, both in space and in time, or other dimensions of the object.
- the value of a parameter can: be constant and intrinsic to the algorithm; in this case the parameter value may in particular be transmitted to the processing means or to the platform, and / or
- the value of the parameter may depend on the type of optics that affects the level of blur in the image; in this case, the parameter value may, in particular, be transmitted to the processing means or to the platform, and / or
- the value of the parameter may depend on the gain of the sensor actually used to capture said object which has an impact on the noise level in the image; in this case the parameter value can in particular be transmitted, chosen or calculated by the platform, and / or - depend on the absolute position of the elementary information in the object; in this case the parameter value may in particular be transmitted, chosen or calculated by the platform, and / or
- the parameter value can be determined simultaneously or a posteriori with respect to the definition of the algorithm.
- the value of some parameters may vary from one object to another, from one sub-object to another, or from one elementary information to another.
- the value of the parameter is calculated at each change.
- the possible values of the parameter are calculated a priori, and, at each change, the index or the address making it possible to access the value of the parameter, for example in a table, is determined.
- a limited number of sets of parameter values are determined, each set is stored and for each sub-object the set to be used is selected, for example by calculating a function of the position giving the address of the game to use.
- the object is an image
- the image is decomposed into juxtaposed rectangular sub-objects, the sub-objects being processed, for example, from left to right and then from top to bottom.
- the sub-objects are chosen and stored in one of the following ways, without the list being exhaustive:
- the size of the sub-objects is chosen to be able to process a sub-object without access to slow memory; we can, for example, take sub-objects corresponding to squares of 32x32 pixels: the result of the computation on the preceding sub-object is transferred in slow memory during the computation relating to the current sub-object, and during the transfer of the slow memory to the fast memory of the data necessary for the calculation relating to the following sub-object
- the size of the sub-objects is chosen to be able to process a sub-object using the cache memory as much as possible; we can, for example, take sub-objects corresponding to squares of 32x32 pixels or sub-objects of 1 pixel or sub-objects of 4 pixels, especially in the case of a raw image, t ⁇ pe "raw" ,
- the size of the sub-objects is chosen as equal to or multiple of, the size of a vector that the platform knows how to process and store, it will be possible for example to take sub-objects corresponding to 64 horizontal pixels.
- the decomposition into sub-object can be adapted in a manner similar to the platform.
- the invention thus makes it possible to automate and make more effective the adaptation to any platform.
- the first and second data and the values of the parameters are sufficient for the platform to process the object.
- the first data further comprises information on the number of bits on which are encoded the values representing the logical blocks.
- the specific formatted data is the data obtained at the output of the processing means. They are, in fact, a translation of the generic formatted data, and in that they represent, in the same way, a processing algorithm intended to be applied to an object to be processed.
- This specific formatted data contains particular operations, derived from generic operations, and describing the instructions that will be performed on the object itself during processing in the platform.
- the generic formatted data according to the invention contains enough information to allow the calculation of these specific formatted data, without however being dependent on this platform. Indeed, the operations defined by the generic formatted data are generic operations applying to logical blocks, as defined above.
- the first data exclude data describing generic operations involving one or more elementary information independently of the other elementary information belonging to the same logical block (s). Indeed, a logical block being an abstract entity, it is not possible to distinguish and identify the different elementary information that compose it.
- the generic formatted data can be provided to different processing platforms, regardless of the type of architecture of the platform and also regardless of the format of the object to be processed.
- the generic formatted data will be the same for a 3 million pixel image as for a 5 million pixel image. In this way, when a new algorithm is developed, it is enough to define once only generic formatted data to be able to operate, after a very short delay, this algorithm in an optimized way in terms of performance and memory size on different platforms. .
- the second data may have different characteristics.
- At least part of the second data provided to the processing means and / or the value of at least one parameter are, for a given generic operation, common to all the elementary information of the object to be treat.
- at least part of the second data provided to the processing means and / or the value of at least one parameter depend on the absolute position of the elementary information in the object to be processed. For example, using a parameter common to all the basic information for a filter makes it possible to increase the sharpness in a uniform manner.
- the use of a parameter dependent on the absolute position of the elementary information in the object to be processed, for a filter makes it possible to increase the sharpness more significantly at the edge in order to compensate for an optical defect.
- the use of a parameter dependent on the absolute position of the elementary information in the object to be processed for a vignetting correction makes it possible to obtain a stronger edge compensation in order to compensate for an optical defect.
- the use of a parameter depending on the absolute position of the elementary information in the object to be treated for a demosaicing process makes it possible to treat the "red” pixels, the "green” pixels and the pixels differently. "Blue” of a raw image from a sensor.
- second data in particular a displacement, which depends on the absolute position of the elementary information in the object to be processed for a numerical zooming calculation (“zoom”) or a distortion correction, makes it possible to obtain the pixels needed to calculate the interpolation at each point.
- second data in particular a displacement, depending on the absolute position of the elementary information in the object to be processed for a format change, makes it possible to obtain the pixels necessary for the new format.
- second data in particular a displacement, depending on the absolute position of the elementary information in the object to be processed for a format change
- the pixels necessary for the new format can, for example, obtain the pixel values for a YUV type color coding from the separate luminance (Y) and red and blue (U and V) chrominance information.
- the generic operations comprise at least one generic position operation that makes it possible to obtain a logical block consisting of the absolute position along one dimension of the object, as well as a generic indirect operation, which makes it possible to obtain, from a first block, a second block by displacement and / or scaling according to a third block or a parameter.
- the generic operations comprise at least one elementary generic operation included in the group comprising: the addition of logic blocks and / or parameters, the subtraction of logic blocks and / or parameters, the calculation of the absolute value the difference between logical blocks, the multiplication of logical blocks and / or parameters, the maximum among at least two logical blocks and / or parameters, the minimum of at least two logical blocks and / or parameters grouping and unbundling of blocks logic, the calculation of a logic block by applying a parameter, corresponding to a correspondence table, to a logic block, the conditional choice of a logical block among at least two logical blocks and / or parameters, this choice is doing the following: if a> b we choose c, otherwise we choose d, with a, b, c, and d which are logical blocks and / or parameters, the histogram of a logical block, the change d scale of a logic block according to a parameter and / or a logic block, the relative displacement of a logic block according to
- Generic operations implementing a logical block and a parameter, such as addition can be translated into processing in the platform, and correspond, for example when the generic operation is an addition, adding each element or elementary information of the processed physical block, corresponding to the logic block, with the value of the parameter corresponding to the absolute position of the element or of the elementary information processed.
- the generic operations include complex generic operations corresponding to groups of generic elementary operations used as such.
- Relative positions and relative scales may correspond to various concepts depending on the nature of the object. They apply between any 2 blocks, whatever their type (in the case of an image as described above, a logic block can in particular be raw, red, green, 8 bits ).
- the absolute or relative position and the absolute or relative scale may correspond, in one embodiment, each to 2 values (vertical and horizontal); the pixels in the top line of an object can have as absolute positions (0; 0)
- the pixels of the n th line can have as absolute positions (n; 0) (n; 1) (n; 2); in this case the relative positions can be coded in the following way: (- 1; 0) indicates at the top, (0; 1) indicates at the right and (2; -2) indicates 2 pixels below and 2 at the left; a relative scale of (0.5; 0.5) corresponds to a resolution of half in each direction. More generally, a combination of relative displacement and relative scale can be encoded using 2 functions f and g as follows: (f (x; y); g (x; y))) for each pixel of absolute position x, y. It should be noted that a rounding rule is necessary in order to take, for example, the nearest pixel. So :
- the absolute or relative position and the absolute or relative scale may each correspond to two values ( vertical and horizontal); the pixels in the top line of an object can have as absolute positions (0; 0)
- the pixels of the n th line can have as absolute positions (n; 0,5) (n; 1,5) (n; 2,5). if the line is odd, and (n; 0) (n; 1) (n; 2) ... if the line is even; the relative position can correspond to 2 values
- the absolute or relative position may correspond to 3 values (vertical, horizontal and temporal), for example, (- 1; 0; 0) indicates a pixel located in high in the same picture, (0; 0; -1) indicates the pixel having the same position in the previous image and (2; -2, -1) indicates the pixel located 2 pixels below and 2 left in the previous image.
- a combination of relative displacement and relative scale can be encoded using 3 functions f, g, h as follows: (f (x; ⁇ ; t); g (x; y; t )); h (x; y; t)) for each pixel of absolute position x, y at time t. It should be noted that a rounding rule is necessary in order to take, for example, the nearest pixel.
- the absolute or relative position may correspond to 1 value
- the absolute or relative position may correspond to 2 values
- a combination of relative displacement and relative scale can be encoded using 2 functions f, g as follows: (f (t; c); g (t; c)) for each sound sample position at time t for channel c. It should be noted that a rounding rule is necessary to take, for example, the instant and the nearest channel.
- the absolute or relative position may correspond to n values, each corresponding to a spatial or temporal dimension depending on the topology of the mesh.
- a combination of relative displacement and relative scale can be encoded using n functions. It should be noted that a rounding rule is necessary in order to take, for example, the node and the nearest instant.
- the absolute or relative position may correspond to n values, respectively corresponding to the time, if appropriate to the frequency channel (transmission or reception on several frequencies) and if necessary (several transmitters or spatially arranged receivers) to a spatial dimension.
- a combination of relative displacement and relative scale can be encoded using n functions, and a rounding rule should be chosen.
- the absolute or relative position may correspond to n values, each corresponding to a dimension of the object which, depending on the case, may be of a temporal, spatial, frequency, phase or other.
- a combination of relative displacement and relative scale can be encoded using n functions, and a rounding rule should be chosen.
- the absolute or relative position may correspond to n values each corresponding to a dimension of the object which, depending on the case, may be temporal, spatial, frequency, phase Or other.
- n values each corresponding to a dimension of the object which, depending on the case, may be temporal, spatial, frequency, phase Or other.
- a combination of relative displacement and relative scale can be encoded using n functions, and a rounding rule should be chosen.
- the relative positions and / or the relative scales of the logical blocks according to at least one dimension of the object, in particular spatial and / or temporal have integer values or fractional values as described in FIG. the examples above.
- the elementary information is represented by fixed-point numeric values.
- the generic operations comprise offset operations, a saturation operation and / or at least one elementary generic operation combined with this saturation operation.
- the parameters include information representing the type of coding of the elementary information.
- the elementary information is the pixels of an image
- they are represented, for example, on 24 bits representing 3 colors in a red-green-blue (RGB) coding, or on N bits representing a color per pixel varying according to the position of the pixel for the raw images from a sensor, or 8 bits corresponding to the luminance information and chrominance Y or U or V for an image coded with a YUV type coding.
- RGB red-green-blue
- N bits representing a color per pixel varying according to the position of the pixel for the raw images from a sensor
- 8 bits corresponding to the luminance information and chrominance Y or U or V for an image coded with a YUV type coding It is therefore useful to provide the processing means with data enabling it to know the type of coding in order to correctly translate the generic formatted data.
- the generic formatted data represents processing algorithms of objects constituting images, and which are composed of elementary information forming pixels.
- the processing platform is part of an image capture and / or rendering apparatus, and the values of the parameters are related to the characteristics of the optics and / or the sensor and / or the image.
- imager and / or electronics and / or software of the capture and / or image recovery apparatus The characteristics can be, in particular, fixed intrinsic characteristics for all objects or variables depending on the object, for example noise characteristics that vary according to the gain of a sensor.
- the characteristics can also be identical for all the elementary or variable information according to the absolute position of the elementary information, for example the fuzziness characteristics of the optics.
- the object to be processed is a digitized sound signal, and in this case, the elementary information is the sound samples of this signal.
- the relative positions present in the second data will generally be time positions. However, it may happen that these positions are spatial, especially in the case where the object to be treated is a sound present on several channels.
- the object to be processed is a digital mesh and the elementary information is the spatial and / or temporal information characterizing each point of the mesh.
- FIG. 1 represents a data processing device using a method according to the invention
- FIG. 2 represents a device similar to that of FIG. 1, in the case where several processing platforms are provided, and
- FIG. 3 represents an example of a sequence of generic operations applied to several logical blocks and to a parameter.
- the device shown in FIG. 1 is intended to process an image 22.
- This image comprises a set of pixels each of which is represented by at least one numerical value.
- generic data formatted data 12 is provided to digital data processing means 12.
- This processing means is a compiler in the example.
- Generic formatted data includes first and second data that describe generic operation sequences and that describe the relative positions of the logical blocks involved in these generic operations. These first and second data will be illustrated in Table 1.
- the processing means 10 provides a processing platform
- the specific formatted data contains different types of data, such as data concerning the organization of the pixels in the platform memory, the order in which the pixels are processed by the platform or the specific operations performed by the platform, and their grouping.
- the processing platform 20 then uses these specific formatted data 18 to process the image 22 it receives as input.
- FIG. 2 The system shown in FIG. 2 is similar to that shown in FIG. 1, in the case where two treatment platforms are provided.
- two sets of generic formatted data 32a and 32b are provided to a processing means 30.
- These generic formatted data 32a and 32b each contain first and second data, respectively 34a for the generic formatted data 32a, and 34b for the generic formatted data 32b.
- These first and second data have the same characteristics as the first and second data described in connection with FIG.
- This processing means 30 provides two platforms
- the platform 40a thus processes an object 42a according to the data 32a or according to the data 32b.
- the platform 40b processes an object 42b according to the data 32a or according to the data 32b.
- the same processing means 30 is used to provide formatted data specific to two different processing platforms, 40a and
- FIG. 2 thus illustrates several advantages of the invention: in the case where the platforms 40a and 40b are identical, one can rapidly replace the generic formatted data 32a by 32b and translate them into specific formatted data 38b optimized for the platform. This reduces the time to market the platform. in the case where the platforms 40a and 40b are different, and the formatted data 32a and 32b are identical, they can quickly be translated into specific formatted data 38a and 38b optimized for each platform. This also reduces the time to market of multiple platforms.
- Table 1 below and FIG. 3 show an example of a sequence of generic operations applied to a logic block B1.
- This sequence has three generic operations.
- the columns of the table represent in order: - the rank of the operation in the sequence, the name of the generic operation, the logical block (output) on which is written the result of the generic operation, it is the place where this result would be if we reconstituted the object at the end of each operation, the first input (input 1) of the generic operation, which may be a logic block or a parameter, the relative position of the logic block to be used with respect to the input logic block 1, if any, - the second input (input 2) of the generic operation, which may also be a logic block or a parameter, and the relative position of the logic block to be used with respect to the input logic block 2, if any.
- “Relative position” is the information present in the second data provided to a processing means by a method according to the invention.
- this information is in the form of "left” and “right” to be understandable, but in fact, in generic formatted data, it can also be encoded by numerical values such as (0; 1) as described. in the above exemplary embodiments and / or by functions such that f (x; y).
- the generic operations comprise at least one generic position operation which makes it possible to obtain a logical block consisting of the absolute position according to one dimension of the object, as well as a generic indirection operation which makes it possible to obtain , from a first block, a second block by displacement and / or scaling according to a third block or a parameter.
- the relative position and / or relative scale functions can then be calculated, for example, 0.5 * (x-100) using generic block operations, and then use the generic operation of indirection to effect relative displacement and / or relative relative scaling.
- Table 1 is only an example of coding, the first data and second data can be coded in various ways in tabular form, but also in symbolic form, in graphic form or in any other form. Of in addition, additional information relating to data types, offsets and saturations are not shown for the sake of simplification of the example.
- the first logic block used in this sequence of operations is a logic block B1 (51).
- the first generic operation is an addition (52) between the logic block B1 shifted to the left (51g), and the logic block B1 shifted to the right (5Id).
- the second operation (54) is a transformation of the block B2 (53) with respect to a table. This operation therefore has the block B2 (53) and a Param1 parameter (55) which represents the modification table.
- the logic block B4 (58) is thus the block obtained at the end of the sequence of generic operations.
- the generic formatted data in the example in Table 1 are platform-independent, from the object's decomposition to subobjects, from the way in which the object's basic information is traced, from the order in which the elementary information will be processed in the platform, as well as the organization in memory.
- the data Table 1 generic formats can be translated in various ways into specific formatted data or code for the platform, for example, without the list being limiting, according to the following translations.
- a first example of a translation although not optimal in terms of memory and computation time, makes it possible to illustrate a simple translation without going through a decomposition into sub-objects:
- a second example of translation shows that the size of the memory used can be decreased without changing the generic formatted data. Indeed, in the first example, 4 physical blocks of size close to the image are used. We can only use 2 physical blocks using the same memory for BP2, BP3 and BP4. We obtain the following translation:
- a third example of translation shows that one can reduce the computation time without changing the generic formatted data.
- two physical blocks of size close to the image are used, but the physical block BP2 is written 3 times entirely, the physical block BP1 is read out twice, and the physical block BP2 is read out 2 times entirely. .
- the result is written in the same memory area as the input. This makes it possible to further reduce the size of the memory and to make local memory accesses, which is very favorable in the case of a cache memory or a paged memory. We thus obtain the following translation:
- a fifth example of a translation is particularly suitable for a signal processing processor with a small fast memory and a large slow memory, each sub-object is a rectangle for example 32x32 or any other value maximizing the use of the fast memory, the rectangles being joined.
- the sub-objects are traversed from left to right then from top to bottom:
- DMA direct memory access
- a sixth example of a translation is particularly suitable for a vector processor capable of applying the same calculation to the various pixels of the vector, each sub-object is a rectangle for example 64 horizontal pixels or any other value equal to the size of a vector that the platform knows process and store. This translation does not require any memory because a vector is processed at a time. We thus obtain the following translation:
- each line create a vector VO containing on the right the 2 pixels of left of the line
- Extract from VO and Vl the vector V2 corresponding to the two right-hand pixels of VO and the left-hand pixels of Vl excluding the 2 right-hand pixels of VO; add V1 and V2 to obtain V2, apply the table to each pixel of V2 to obtain V2, Extract from VO and V1, the vector V3 corresponding to the right pixel of VO and the left pixels of V1 excluding the pixel from the right of VO; copy Vl into VO for the next iteration; multiply V2 by V3 to obtain V2, store the result V2 in the current output physical block.
- the examples produce a smaller image than the input image. It is easy, if necessary, to obtain an output image of the same size as the input image by adding code at the beginning and end of each line to duplicate the edge pixel.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0553947A FR2895104A1 (fr) | 2005-12-19 | 2005-12-19 | Procede pour fournir des donnees a un moyen de traitement numerique |
PCT/FR2006/051388 WO2007071882A2 (fr) | 2005-12-19 | 2006-12-19 | Procede pour fournir des donnees a un moyen de traitement numerique |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1963970A2 true EP1963970A2 (de) | 2008-09-03 |
Family
ID=36716757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP06847178A Ceased EP1963970A2 (de) | 2005-12-19 | 2006-12-19 | Verfahren zur bereitstellung von daten an digitale verarbeitungsmittel |
Country Status (7)
Country | Link |
---|---|
US (1) | US8473720B2 (de) |
EP (1) | EP1963970A2 (de) |
JP (1) | JP5254030B2 (de) |
KR (1) | KR101391569B1 (de) |
CN (1) | CN101379469A (de) |
FR (1) | FR2895104A1 (de) |
WO (1) | WO2007071882A2 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60227374D1 (de) * | 2001-07-12 | 2008-08-14 | Do Labs | Verfahren und System zur Bereitstellung formatierter Informationen für Bildverarbeitungsvorrichtungen |
CN101927543B (zh) * | 2009-06-26 | 2013-11-06 | 深圳市远望工业自动化设备有限公司 | 塑料箱体水冷定型机 |
KR101080974B1 (ko) * | 2009-11-24 | 2011-11-09 | 한국과학기술정보연구원 | 계산 시뮬레이션 모사 시스템 및 그 방법 |
US9021017B2 (en) * | 2011-09-03 | 2015-04-28 | Barracuda Networks, Inc. | Configuring a plurality of diverse devices/services from an adaptive configuration control hyper-server apparatus |
CN103002464B (zh) * | 2011-09-08 | 2015-08-19 | 中国移动通信集团设计院有限公司 | 一种无线网络仿真的参数信息转发方法、装置及仿真系统 |
KR101893796B1 (ko) | 2012-08-16 | 2018-10-04 | 삼성전자주식회사 | 동적 데이터 구성을 위한 방법 및 장치 |
US10573024B1 (en) * | 2016-08-22 | 2020-02-25 | Amazon Technologies, Inc. | Distance detection based on chromatic aberration |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666503A (en) * | 1994-11-14 | 1997-09-09 | Xerox Corporation | Structured image (SI) image editor and method for editing structured images |
US5675773A (en) * | 1995-12-21 | 1997-10-07 | Cirrus Logic, Inc. | Graphics display system with a low level hardware dependent graphics library |
US5937193A (en) * | 1996-11-27 | 1999-08-10 | Vlsi Technology, Inc. | Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof |
US6321323B1 (en) * | 1997-06-27 | 2001-11-20 | Sun Microsystems, Inc. | System and method for executing platform-independent code on a co-processor |
US5923892A (en) * | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
US5999179A (en) * | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US6305009B1 (en) * | 1997-12-05 | 2001-10-16 | Robert M. Goor | Compiler design using object technology with cross platform capability |
US6847980B1 (en) * | 1999-07-03 | 2005-01-25 | Ana B. Benitez | Fundamental entity-relationship models for the generic audio visual data signal description |
US20020057286A1 (en) * | 2000-08-25 | 2002-05-16 | Markel Steven O. | Device independent video enhancement scripting language |
US20020170039A1 (en) * | 2001-02-22 | 2002-11-14 | Kovacevic Branko D. | System for operating system and platform independent digital stream handling and method thereof |
DE60227374D1 (de) | 2001-07-12 | 2008-08-14 | Do Labs | Verfahren und System zur Bereitstellung formatierter Informationen für Bildverarbeitungsvorrichtungen |
EP1412918B1 (de) | 2001-07-12 | 2007-02-21 | DO Labs | Verfahren und system zur herstellung von auf geometrischen verzerrungen bezogenen formatierten informationen |
FR2827459B1 (fr) | 2001-07-12 | 2004-10-29 | Poseidon | Procede et systeme pour fournir a des logiciels de traitement d'image des informations formatees liees aux caracteristiques des appareils de capture d'image et/ou des moyens de restitution d'image |
US7901291B2 (en) * | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
JP2004030386A (ja) * | 2002-06-27 | 2004-01-29 | Canon Inc | 画像処理方法および画像処理装置 |
US9207958B1 (en) * | 2002-08-12 | 2015-12-08 | Arm Finance Overseas Limited | Virtual machine coprocessor for accelerating software execution |
US7987455B1 (en) * | 2003-07-23 | 2011-07-26 | International Business Machines Corporation | System and method of command processing |
JP2005157857A (ja) * | 2003-11-27 | 2005-06-16 | Canon Inc | データ処理装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム |
US7614075B2 (en) * | 2004-08-13 | 2009-11-03 | Microsoft Corporation | Dynamically generating video streams for user interfaces |
-
2005
- 2005-12-19 FR FR0553947A patent/FR2895104A1/fr not_active Withdrawn
-
2006
- 2006-12-19 EP EP06847178A patent/EP1963970A2/de not_active Ceased
- 2006-12-19 WO PCT/FR2006/051388 patent/WO2007071882A2/fr active Application Filing
- 2006-12-19 CN CNA2006800530529A patent/CN101379469A/zh active Pending
- 2006-12-19 US US12/097,886 patent/US8473720B2/en not_active Expired - Fee Related
- 2006-12-19 JP JP2008545066A patent/JP5254030B2/ja not_active Expired - Fee Related
-
2008
- 2008-07-18 KR KR1020087017727A patent/KR101391569B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
See references of WO2007071882A2 * |
Also Published As
Publication number | Publication date |
---|---|
WO2007071882A8 (fr) | 2008-05-29 |
KR20080087123A (ko) | 2008-09-30 |
US20090037877A1 (en) | 2009-02-05 |
JP2009520256A (ja) | 2009-05-21 |
US8473720B2 (en) | 2013-06-25 |
JP5254030B2 (ja) | 2013-08-07 |
CN101379469A (zh) | 2009-03-04 |
WO2007071882A2 (fr) | 2007-06-28 |
FR2895104A1 (fr) | 2007-06-22 |
KR101391569B1 (ko) | 2014-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zheng et al. | Ultra-high-definition image dehazing via multi-guided bilateral learning | |
EP1523730B1 (de) | Verfahren und system zur umsetzung eines bildes aus einem digitalen bild | |
WO2007071883A2 (fr) | Procede et systeme de traitement de donnes numeriques | |
EP1410327B1 (de) | Verfahren und vorrichtung zur erzeugung formatierter information, die mit den fehlern zumindest eines geräts einer kette verbunden ist, insbesondere der bildschärfeverzerrung | |
KR101991766B1 (ko) | 적응적인 다중-차원 데이터 분해 | |
JP5784723B2 (ja) | 超解像度画像を生成する方法及びこれを実施するための非線形デジタルフィルター | |
Liu et al. | A new polarization image demosaicking algorithm by exploiting inter-channel correlations with guided filtering | |
EP1964053A2 (de) | Verfahren zur verarbeitung eines objekts auf einer plattform mit einem oder mehreren prozessoren und speichern und plattform damit | |
EP1963970A2 (de) | Verfahren zur bereitstellung von daten an digitale verarbeitungsmittel | |
EP2174289A2 (de) | Verfahren zur verarbeitung eines digitalen objekts und entsprechendes system | |
JP2008310797A (ja) | カメラによって或るシーンから取得される画像内の動いている物体の解像度を高めるための方法 | |
KR20100112162A (ko) | 고속의 메모리 효율적인 변환 구현 방법 | |
Feng et al. | Digital micromirror device camera with per-pixel coded exposure for high dynamic range imaging | |
Cho et al. | Single‐shot High Dynamic Range Imaging Using Coded Electronic Shutter | |
Vijay et al. | Non-uniform deblurring in HDR image reconstruction | |
Song et al. | Real-scene reflection removal with raw-rgb image pairs | |
WO2013161111A1 (ja) | 画像評価装置、画像選択装置、画像評価方法、記録媒体、ならびに、プログラム | |
Karch et al. | Adaptive Wiener filter super-resolution of color filter array images | |
Rego et al. | Deep camera obscura: an image restoration pipeline for pinhole photography | |
Jia et al. | Learning rich information for quad bayer remosaicing and denoising | |
Li et al. | Penrose high-dynamic-range imaging | |
Hajisharif | Computational Photography: High Dynamic Range and Light Fields | |
Singh et al. | Detail Enhanced Multi-Exposer Image Fusion Based on Edge Perserving Filters | |
JP5248719B1 (ja) | 画像評価装置、画像選択装置、画像評価方法、記録媒体、ならびに、プログラム | |
da Silva et al. | Isp meets deep learning: A survey on deep learning methods for image signal processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20080606 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR MK RS |
|
R17D | Deferred search report published (corrected) |
Effective date: 20080529 |
|
111Z | Information provided on other rights and legal means of execution |
Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20100420 Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20090813 |
|
111Z | Information provided on other rights and legal means of execution |
Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20100420 Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20100906 Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20090813 |
|
111Z | Information provided on other rights and legal means of execution |
Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20090813 |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20121211 |
|
111Z | Information provided on other rights and legal means of execution |
Free format text: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR Effective date: 20090813 |
|
APBK | Appeal reference recorded |
Free format text: ORIGINAL CODE: EPIDOSNREFNE |
|
APBN | Date of receipt of notice of appeal recorded |
Free format text: ORIGINAL CODE: EPIDOSNNOA2E |
|
APBR | Date of receipt of statement of grounds of appeal recorded |
Free format text: ORIGINAL CODE: EPIDOSNNOA3E |
|
APAF | Appeal reference modified |
Free format text: ORIGINAL CODE: EPIDOSCREFNE |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GOPRO TECHNOLOGY FRANCE SAS |
|
APBT | Appeal procedure closed |
Free format text: ORIGINAL CODE: EPIDOSNNOA9E |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20170319 |