Patent ID: 12231122

DESCRIPTION OF EMBODIMENTS

FIG.1illustrates a device100according to an embodiment of the present principles. The device100includes at least one input interface110configured to receive a signal, at least one hardware processor120(“processor”) configured to, among other things, control the device100, process received signals, and execute program code instructions to perform at least one method of the present principles. The device100also includes memory130configured to store the program code instructions, execution parameters, at least one lookup table (LUT), and so on, and at least one output interface140configured to output processed signals. A non-transitory computer readable medium150stores program code instructions that, when executed by a processor (e.g. processor120), implement the steps of a method according to at least one embodiment of the present principles.

In the embodiments described hereinafter, it is assumed that the input signal x is obtained, for example from an external device (not shown), retrieved from memory or as a result of internal calculations. The result can be output or used, for example in further calculations.

FIG.2illustrates a first embodiment of a method20according to the present principles. In the first embodiment, in step S22, the processor120first applies a pre-function w=P(x) to an input signal x and then, in step S24, applies a main function ƒw(w) to the result of the pre-function, where the main function ƒw(w) is represented within a LUT defined for a grid of values Gw in a way that the pre-function is piecewise defined on a grid Gx of signal values where Gw=P(Gx).

The pre-function P(x) is monotonously increasing and thus invertible. Apart from the restriction to be monotonously increasing, it is possible for the pre-function and the LUT to be of any type and character. For example, the piecewise pre-function P(x) may be made up of one or more of logarithmic, sigmoid, exponential, polynomial-type and linear pieces.

If the signal x is n-dimensional, various possibilities arise. The pre-function may be n-dimensional, too. The pre-function may alternatively be one-dimensional and applied to each of the coordinates of x. It is also possible to use a plurality of different pre-functions that can have different dimensionality as long as at least one coordinate of the signal x is processed by a pre-function.

FIG.3illustrates a second embodiment a method30of the present principles, in which a pre-function P(x) is defined in a piecewise manner on a grid Gx and used as a pre-function to a LUT, the LUT is applied using interpolation of the LUT entries on the grid Gw=P(Gx).

For example, if the pre-function P(x) is chosen to be piecewise linear in Gx, the inverse function is piecewise linear in Gw. A linear interpolation of the grid Gw=P(Gx) is then used for the application of the LUT to the signal w=P(x). In other words, the LUT output signal is interpolated from the LUT entries using linear interpolation.

In another example, the pre-function P(x) is chosen to be log2(x+1) within the range [0,0.41] which is part of Gx. After application of P(x), the signal w=P(x) is obtained. The inverse pre-function is 2w−1 is linear on the range [0;0.5] which is part of Gw. The output signal is calculated as a linear interpolation of the LUT entries on the grid values 0 and 0.5 of the grid Gw.

In step S32, the processor112obtains a pre-function P(x) that is piecewise defined on a first grid Gx of the signal x. In step S34, the pre-function is applied to the signal x resulting in a first processed signal w=P(x). In step S36, a LUT with a second grid Gw=P(Gx) is calculated. In step S38, the LUT is applied to the first processed signal w, using linear interpolation of the LUT entries on the grid Gw to obtain a second processed signal.

In a first variant method40of the second embodiment, illustrated inFIG.4, the LUT is obtained by concatenating, in step S42, the inverse P−1(w) of the pre-function P(x) in order to obtain a concatenated function, called “adapted function” ƒw(w)=ƒ(P−1(w)) and by calculating, in step S44, the LUT by sampling said concatenated function over the second grid Gw.

As can be seen, the variant builds an adapted LUT from a pre-function P(x) and a second main function f(x), ensuring that application of the pre-function and the LUT to a signal is equal to applying said second main function directly up to the LUT application error. For example, when using a pre-function P( ), the adapted, regular LUT is defined on the regular grid Gw of the signal w=P(x) by sampling the concatened, adapted function ƒw(w)=ƒ(P−1(w)) on Gw. The grid Gw of the signal w corresponds to a grid Gx of the signal x. If Gx is denoted Gx={xi, 0≤i<I}, Gw can be denoted as Gw=P(Gx)={P(xi), 0≤i<I}. If Gw is regular and P( ) is non-linear, Gx is a non-regular grid.

In a second variant, which is a variant method50of the first and the second embodiment, illustrated inFIG.5, the piecewise pre-function P(x) can be obtained from a pre-function Q(x) as follows.

In step S52, the pre-function Q(x) is applied to a grid Gx of the signal values x to obtain a second grid Gw=Q(Gx). In step S54, the pre-function P(x), piecewise defined on the grid Gx, is obtained by linear interpolation of the values of the grid Gw. The effect is that Gw=P(Gx)=Q(Gx). In step S56, the pre-function P(x) is applied to the signal x to obtain a second signal w=P(x). In step, S58, the LUT is applied, using linear interpolation, to the second signal.

The second variant can be useful since Q(x) is typically not a piecewise defined function since Q(x) is chosen intentionally. For example, Q(x) may be chosen to influence the precision of the LUT. The piecewise defined function P(x) is then an approximation of Q(x).

Using the second variant, the embodiment can easily be integrated into conventional frameworks that use pre-functions Q(x) that are not piecewise defined. Assuming that the conventional framework includes applying a pre-function Q(x) to a signal x resulting in w=Q(x), calculating an adapted lookup table LUTQby sampling the adapted function f(Q−1(w)) over a regular grid Gw=Q(Gx), applying the adapted LUT to the signal w using linear interpolation according to LUTQ(w)=PLw(f(Q−1(w)) where PLwis piecewise linearization based on a regular sampling of w.

Using the second variant, the conventional processing is altered to be as follows: applying the pre-function P(x) to a signal x resulting in w=P(x), calculating an adapted look-up-table LUTPby sampling the adapted function f(P−1(w)) over a regular grid Gw=P(Gx)=Q(Gx), applying the adapted LUTPto the signal w using linear interpolation according to LUTP(w)=PLw(f(P−1(w))) where PLwis a piecewise linearization based on a regular sampling of w.

It is noted that if the employed interpolation is conservative, the grid Gw does not change when replacing a standard pre-function Q(x) by a pre-function P(x) according to the present principles since Gw=P(Gx)=Q(Gx) holds. It follows that the adapted lookup table LUTPequals the adapted lookup table LUTQ. An advantage of this is that when replacing Q(x) by P(x), the lookup table does not need to be recalculated.

In the following, an example for the second variant is given. A standard pre-function Q(x) used in conventional solutions for a one-dimensional signal x in the range [0;1] is the logarithmic function Q(x)=log2(x+1). Using a regular, one-dimensional, adapted LUT of size 3 defined on a regular grid Gw={0; 0.5; 1}, the grid for defining a piecewise linear pre-function P(x) will be Gx={ƒ(Q−1(0); ƒ(Q−1(0.5)); ƒ(Q−1(1))}={0; 0.41; 1}. For example, within the interval [0;0.41] the piecewise linear pre-function will be

P⁡(x)=Q⁡(0)+Q⁡(0,41)-Q⁡(0)0,41⁢x=0.50.41x.
In the corresponding interval 0≤w<0.5, linear interpolation will be used when applying the adapted LUT. This linear interpolation corresponds to the inverse of the piece of the pre-function defined on the interval [0;0.41].

FIG.6illustrates a third variant of a method60according to an embodiment of the present principles. In step S62, a second grid, Gw=Q(Gx), is obtained by applying pre-function Q(x) to signal values x of first grid Gx. In step S64, a pre-function w=P(x) is applied to signal x to obtain first processed signal w. In step S66, a LUT with a second grid Gw=P(Gx) is calculated. In step S68, the LUT is applied to first processed signal w, using P(x) as interpolation function.

FIG.7illustrates example results. It can be seen that the second main function70(continuous line) is best approximated using a lookup table with pre-function according to the shape of the second main function based on the present principles72(short dash, long dash) compared to LUT application with linearized pre-function according to the present principles74(one dot, one dash), known lookup tables with76(two dots, one dash) or without78pre-function (dashed line).

In a third variant, which is a variant of the first and the second embodiments, the piecewise pre-function is further chosen depending on the second main function.

For at least one piece of the pre-function, the curvature of the second main function is analysed in at least one interval that corresponds to the piece of the pre-function.

The shape of the pre-function for the at least one piece is modified according to the shape of the second main function in at least one interval that corresponds to the at least one piece.

For the interval of values x that correspond to the at least one piece, the LUT application error is calculated. The LUT application error is the difference between the result of application of the second main function to the signal x and the application of the pre-function to the signal x followed by the application of a LUT according to the present principles.

The analysis, the modification of the shape and the calculation of the LUT application error are repeated until the LUT application error has decreased sufficiently, e.g. below a given value or as a ratio of the initial error.

An example of a first way of modifying the shape of the pre-function is to determine a concave curvature for this piece of the pre-function if the second main function in the at least one corresponding interval is convex and vice versa, as will now be shown.

Continuing the above example, using a linearized, logarithmic pre-function and a LUT of size 3, the pre-function can be chosen according to the second main function in the following way.FIG.8shows the second main function f(x) that is concave in the interval [0;0.41] of the piecewise defined pre-function. Therefore, a convex term g(x) is added leading to a modified pre-function R(x):

R⁡(x)=P⁡(x)+g⁡(x)=0.50.41x+g⁡(x)⁢with⁢g⁡(x)=a-(2⁢ab⁢x-a)2

where the parameters a and b allow to further adapt the convex term for the second main function. For example, the convexity in the interval [0;0.41] can be controlled by parameter

a=14⁢(f⁡(0.5)-f⁡(0))
and parameter b=0.5−0=0.5 allows to place the convexity in the interval [0;0.41] such that g(0)=0 and g(0.41)=0.

If the input signal is multi-dimensional, concavity or convexity of the second main function can be analyzed channel-wise. For example, if the second main function is analyzed for a specific channel, the corresponding channel of the pre-function, or in case of a one-dimensional pre-function, the pre-function applied to this channel is then modified according to the present principles.

FIG.8shows the second main function f(x)80(dot, dash) that is concave in the interval [0;0.41], the added convex term g(x)82(dashed) that is zero at 0 and at 0.41, the piecewise linear pre-function P(x) according to present principles84(continuous line) and the modified pre-function R(x) according to present principles86(two dots, one dash) that is convex within the interval [0;0.41].

It is convenient that the added convex term g(x) is zero at the border of the intervals for two reasons. First, the effective irregular sampling of x introduced by the piecewise linear pre-function Q(x) is the same as for the modified pre-function R(x), i.e. the grids Gw and Gx remain unchanged when Q(X) is replaced by R(X). Second, when calculating the adapted LUT, neither R(x) nor g(x) need to be inverted, since for all w on the grid Gw holds f(Q−1(w))=f(R−1(w)).

A second way of modifying the shape of the pre-function is to optimize the shape of at least one piece of the pre-function Q(x) with respect to the shape of the second main function in at least one corresponding interval such that the LUT application error is minimized. This approach is trivial for a one-dimensional LUT but makes little or no sense since R(x) may become as non-linear as the second main function is and the complexity gain of replacing the second main function by a LUT is lost by applying a complex pre-function. However, in case of a multi-dimensional LUT, it may make sense to optimize the piecewise defined pre-function or the added concave term such that—in the mean over the multiple dimensions—the LUT application error is minimal. For example, the piecewise linear pre-function is modified using the term g(x) as described above, becoming a non-linear pre-function R(x). Then, the parameters a and b are optimized such that the LUT application error is minimized.

It will thus be appreciated that the present principles can reduce the LUT application error, i.e. the error introduced when representing a second main function as a LUT while applying it to a signal, and that a piecewise linear pre-function can itself be implemented as a LUT.

It should be understood that the elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces.

The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.

All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.

Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.

Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.

In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.