Device and method for applying a look-up table
By applying a pre-function to transform the input signal and using an adapted LUT, the method addresses interpolation errors in signal processing, enhancing accuracy and reducing errors in signal transformation.
Patent Information
- Application Number
- JP2023512453
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-08
- Filing Date
- 2021-09-06
- Publication Date
- 2025-06-13
- Estimated Expiration
- 2041-09-06
AI Technical Summary
Existing signal processing methods using lookup tables (LUTs) face challenges with interpolation errors, especially when applying non-linear functions, which can lead to inaccuracies in signal processing.
The method involves applying a pre-function to the input signal to transform it into a new domain where a LUT can be applied more accurately, thereby reducing interpolation errors. This includes using a monotonically increasing pre-function and considering its inverse within the LUT to achieve closer alignment with the original function.
This approach reduces the LUT application error by concentrating LUT accuracy on specific parts of the input signal range, improving signal processing accuracy while managing interpolation errors effectively.
Smart Images

Figure 0007692468000005 
Figure 0007692468000006 
Figure 0007692468000007
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to signal processing, and more particularly to signal processing using a lookup table (LUT).
Background Art
[0002] This section is intended to introduce the reader to various aspects of the art that may be related to the various aspects of the present disclosure described and / or claimed below. This discussion is believed to be useful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these descriptions are to be read from this perspective and should not be construed as an admission of prior art.
[0003] For example, to speed up processing, instead of applying the second main function itself, it is well known to apply a lookup table (LUT) calculated from the second main function f(x) to the input signal x. The LUT is typically generated by regular sampling of the second main function.
[0004] As an illustrative example, the second main function is the exponential function f(x)=(10 x -1) / 9 for a one-dimensional signal x within the range [0;1]. In this example, it is assumed that the LUT is a one-dimensional regular LUT of size 3 with a LUT input grid {0;0.5;1}. The LUT entries are {f(0);f(0.5);f(1)}={0;((10 0.5 -1)) / 9;1}={0;0.241}.
[0005] Those skilled in the art will understand that these principles apply to other signals such as audio and video signals, for example two-dimensional chrominance signals, three-dimensional color coordinates, or n-dimensional signals in an n-dimensional signal space. These principles also apply, for example, to an irregular LUT having a LUT entry grid {0;0.4;1} with irregular intervals of 0.4 and 0.6 respectively.
[0006] Since LUTs typically have a limited size, in that case, the application to a signal usually requires interpolation. Vandenberg and Andriani examined several interpolation methods in their paper titled "A Survey on 3D-LUT Performance in 10-bit and 12-bit HDR BT.2100 PQ" presented at SMPTE in 2018.
[0007] Generally speaking, to perform interpolation, in the first step, the input signal is interpolated from the LUT input grid. Often linear interpolation is applied, but the same principle also applies to non-linear interpolation. In the above example, when the input signal is x = 0.2, linear interpolation can use the first two grid values that lead to the following interpolation: x = 0.2 = c 1 0 + c 2 0.5, where 0 and 0.5 are the first two values of the LUT input grid respectively, and c 1 = 0.6; c 2 = 0.4 are the linear interpolation coefficients. In the second step, the output signal LUT(x) is interpolated from the LUT entries. Usually, the same interpolation method as in the first step is used. In this example, linear interpolation is used in the first step. Assuming that linear interpolation is also used for the second step and the same interpolation coefficient is used as usual, this gives the output signal LUT(x) = c 1 0 + c 2 0.24. However, other coefficients and other interpolation methods can be used to derive LUT(x) from the LUT entries.
[0008] When the second main function is non-linear and the interpolation of the LUT entries is linear, the effect of applying the LUT is similar to the piecewise interpolation of the second main function. When the second main function f(x) is sampled and stored in the LUT, the application of the LUT to the signal x using linear interpolation can be written as LUT(x) = PL x (f(x)), where PL x() is the piecewise linearization in the grid of the signal value x. For example, when the LUT is three-dimensional, well-known piecewise interpolation methods include trilinear interpolation, prism interpolation, and tetrahedral interpolation.
[0009] It is also well known to apply a pre-function to the signal before applying the LUT. The pre-function is usually a monotonically increasing function. The pre-function itself can be applied using a look-up table called a pre-LUT hereinafter. The pre-function is typically one-dimensional. When the LUT is multi-dimensional, a one-dimensional pre-function can be applied to each of the signal coordinates, i.e., to each dimension. However, the pre-LUT can also be multi-dimensional. For example, a two-dimensional pre-LUT for two channels and a one-dimensional pre-LUT for a third channel can be preceded before a three-dimensional LUT designed for a three-dimensional input signal. Also, not all channels need to be processed using a pre-LUT or a pre-function. For example, a one-dimensional pre-function for only the first channel can be preceded before a two-dimensional LUT designed for a two-dimensional input signal, while the second channel is input directly to the LUT. For simplicity of explanation, hereinafter, the case of a one-dimensional LUT and a one-dimensional pre-function will be considered, but it will be understood that the principle can be extended to higher-order dimensions. When applying the pre-function Q(x) to the signal, the signal range of Q(x) is often equal to the signal range of the signal x itself. For example, in the case of a one-dimensional pre-function, if the input value is in the range [0;1], the application of the pre-function also results in a value within the range [0;1]. However, the pre-function can also include a change in range. For example, a one-dimensional input signal within the range [0;220] can have the range [0;1] after the application of the pre-function. Hereinafter, for simplicity, it is assumed that the pre-function preserves the signal range. However, all principles are also applicable to pre-functions that do not preserve the signal range.
[0010] A common reason for applying a pre - function is to reduce LUT interpolation error. As soon as the sampling of the second main function in the resulting LUT input grid that gives rise to the LUT entry does not fully represent the second main function in the sense of sampling theory, any interpolation applied to the LUT entry will usually generate an LUT interpolation error. For example, if linear interpolation is used to apply the LUT to the input signal and the second main function is non - linear, the interpolation error causes the resulting LUT application function LUT(x) not to be equal to the second main function itself. To reduce the LUT interpolation error, multiple criteria can be used to design the pre - function.
[0011] The first criterion for designing the pre - function Q(x) is the non - linearity of the second main function itself. In this case, the pre - function Q(x) preferably has a slope Q’(x)>1 for the range of input values x where the second main function f(x) has a steep slope, i.e., |f’(x)|>1.
[0012] Another criterion for designing the pre - function is to increase the accuracy of the output signal for a particular range of input values x, or rather, to reduce the LUT interpolation error. This can be achieved by a pre - function Q(x) that has a slope Q’(x)>1 for this range of input values.
[0013] Well - known examples of pre - functions are the logarithmic function, the exponential function, and the sigmoid function, but other functions may also be used.
[0014] The application of the pre-function Q(x) to the signal x results in the signal w = Q(x). After the application of the pre-function, generally, a LUT is applied to the signal w, resulting in LUT(w). The process of applying the pre-function and the LUT to the signal x can be expressed as LUT(Q(x)). Usually, this solution replaces the direct application of a given second main function f(x) to the signal, which means that it is preferable for LUT(Q(x)) to be as close as possible to f(x). When a pre-function is applied before the LUT, in order to meet this selection, the pre-function must be considered within the LUT. The consideration of the pre-function within the LUT can be achieved using several well-known methods, and one of them will be described here.
[0015] One example of a method for considering the pre-function within the LUT and bringing LUT(Q(x)) closer to f(x) is to invert the pre-function Q(x) within the LUT, thereby resulting in a new adapted look-up table LUT Q (w) = PL w (f(Q -1 (w)) such that the new adapted look-up table LUT Q is given, where PL w is a piecewise linearization based on regular sampling of w. Since w = Q(x), LUT Q (Q(x)) = PL w (f(x)), and thus it is close to f(x) up to the piecewise linearization. The function f(Q -1 (w)) is called the "concatenated function" or "adapted function". The adapted look-up table LUT Q is sampled at w in the same way that a common look-up table LUT is derived from a common second main function f(x) by sampling at x, so that the adapted function f w (w) = f(Q -1It can be said that it can be derived from (w). The advantage of using the prefunction is that instead of x, w = Q(x) is regularly sampled. The interpolation error is regularly distributed over the range of w, but irregularly distributed over the range of x. Depending on the prefunction, the error can be decreased in certain parts of the range of x and increased in other parts. In other words, the prefunction transforms a regularly sampled lookup table LUT(x) into a combination with the prefunction and a conforming lookup table denoted as LUT Q (Q(x)), and this combination corresponds to the irregular sampling of x.
[0016] For example, when the prefunction is the logarithmic function Q(x) = log 2 (x + 1), the inverse prefunction is Q -1 (w) = 2 w ^w - 1. Then, the entries of the conforming lookup table LUT Q derived from the above example of the regular LUT are {f(Q -1 (0)); f(Q -1 (0.5)); f(Q -1 (1))} = {0; 0.41; 1}. When applying the LUT, the input signal values within the first interval between 0 and Q -1 (0.5) = 0.41 are converted using the first and second LUT entries, while the input signal values within the second interval between Q -1 (0.5) = 0.41 and 1 are converted using the second and third LUT entries. The advantage of the prefunction is that since the intervals are smaller and the sampling is denser, the signal values within the first interval generally have higher accuracy. The higher accuracy means a smaller LUT application error E = f(x) - LUT QIt means (Q(x)). This represents the second main function as a LUT or as a concatenation of a pre-LUT and a LUT. On the other hand, it is the error introduced when applying it to the input signal. More specifically, the LUT application error is the difference between the result of applying the pre-function and the LUT to the signal compared to the result of applying the second main function itself to the signal. Generally, the reason why the LUT application error is smaller for signal values within the first interval is that the first interval is smaller. As a result, the density of LUT entries per signal range becomes higher, and the signal values are converted with less LUT application error than the values within the second interval.
[0017] However, the use of the pre-function as described above may lead to additional errors due to local inconsistencies between the pre-function and the interpolation method used during LUT application.
[0018] Continuing with the above example, consider an input signal value between 0 and 0.41 that is converted using the first and second LUT entries. The pre-function ensures that x = 0 and x = 0.41 are mapped to w = 0 and w = 0.5 respectively. However, the pre-function Q(x)=log 2 (x + 1) is not linear in [0,0.41]. The application of the LUT Q to w is an interpolation of the first and second LUT entries using an interpolation method independent of the pre-function. So, after applying the pre-function to the signal x to yield w = Q(x), the non-linearity of the pre-function is not compensated anywhere. For example, if the interpolation method is linear, the non-linearity of the pre-function affects the resulting output signal.
[0019] In other words, the pre-function enables concentrating the LUT accuracy on a part of the input signal range, and thus, the accuracy can be significantly improved for a part of the input signal range. However, the non-linearity of the pre-function can microscopically affect the accuracy between two LUT entries, especially when linear interpolation is used for LUT application. In this way, a specific non-linear pre-function Q(Q(x)) can increase the non-linearity and can even increase the error LUT application error E. In particular, when linear interpolation is used for the application of the adaptive LUT, the interpolation error may increase. When a more advanced interpolation method such as non-linear interpolation is used, the interpolation error can be reduced compared to linear interpolation, but the non-linear pre-function still remains in the process LUT of the LUT application Q (Q(x)) can increase the non-linearity and thus can increase the LUT application.
[0020] Therefore, it will be understood that a solution is desired to address at least some of the drawbacks associated with the LUT. The present principle provides such a solution. SUMMARY OF THE INVENTION
[0021] In a first aspect, the present principle is a method comprising applying a pre-function w = P(x) to an input signal x to obtain a first result w, and applying a LUT to the first result w, wherein the LUT represents a main function wf defined for a second grid of values Gw such that the pre-function P(x) is defined per segment at a first grid Gx of signal values, where Gw = P(Gx). w (w), where Gw = P(Gx).
[0022] In a second aspect, the present principle is a device comprising a memory configured to store processor-executable program code instructions, and at least one hardware processor configured to execute the program code instructions to apply a pre-function w = P(x) to an input signal x to obtain a first result w, and apply a LUT to the first result w, wherein the LUT represents a main function f defined for a second grid of values Gw such that the pre-function P(x) is defined per segment at a first grid Gx of signal values, where Gw = P(Gx). w (w), where Gw = P(Gx).
[0023] In a third aspect, the present principle is directed to a computer program product stored on a non-transitory computer-readable medium and including program code instructions executable by a processor to perform the steps of the method according to any of the embodiments of the first aspect.
Brief Description of the Drawings
[0024] Here, the features of the present principle will be described by way of non-limiting examples with reference to the accompanying drawings.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Modes for Carrying Out the Invention
[0025] Figure 1 illustrates a device 100 according to an embodiment of the present principle. The device 100 includes at least one input interface 110 configured to receive signals, and in particular, at least one hardware processor 120 (the "processor") configured to control the device 100, process the received signals, and execute program code instructions for executing at least one method of the present principle. The device 100 also includes a memory 130 configured to store program code instructions, execution parameters, at least one look-up table (LUT), etc., and at least one output interface 140 configured to output the processed signals. A non-transitory computer-readable medium 150 stores program code instructions that, when executed by a processor (e.g., processor 120), implement the steps of a method according to at least one embodiment of the present principle.
[0026] In the embodiments described below, it is assumed that the input signal x is obtained, for example, from an external device (not shown), retrieved from memory, or obtained as a result of internal calculations. The result can be output or used, for example, in further calculations.
[0027] Figure 2 shows a first embodiment of a method 20 according to the present principle. In the first embodiment, in step S22, the processor 120 first applies the pre-function w = P(x) to the input signal x, and then, in step S24, applies the main function f w (w) to the result of the pre-function, where the main function f w (w) is represented within a LUT defined for a grid of values Gw such that the pre-function is defined for each segment in a grid of signal values Gx, where Gw = P(Gx).
[0028] The pre-function P(x) is monotonically increasing and thus invertible. Apart from the restriction of being monotonically increasing, the pre-function and the LUT can be of any type and characteristics. For example, the piecewise pre-function P(x) can be composed of one or more of logarithmic, sigmoid, exponential, polynomial type, and linear segments.
[0029] When the signal x is n-dimensional, various possibilities arise. The pre-function can also be n-dimensional. Alternatively, the pre-function can be one-dimensional and applied to each of the coordinates of x. As long as at least one coordinate of the signal x is processed by the pre-function, it is also possible to use multiple different pre-functions that can have different dimensions.
[0030] Figure 3 shows a second embodiment method 30 of this principle, where the pre-function P(x) is defined section by section in the grid Gx and used as the pre-function for the LUT, and the LUT is applied using interpolation of the LUT entries in the grid Gw = P(Gx).
[0031] For example, if the pre-function P(x) is selected to be linear section by section within Gx, the inverse function is linear section by section within Gw. Then, linear interpolation of the grid Gw = P(Gx) is 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.
[0032] In another example, the pre-function P(x) is selected to be log 2 (x + 1) within the range [0, 0.41] which is part of Gx. After the application of P(x), the signal w = P(x) is obtained. The inverse pre-function is 2 w -1 and is linear within the range [0; 0.5] which is part of Gw. The output signal is calculated as the linear interpolation of the LUT entries at the grid values 0 and 0.5 of the grid Gw.
[0033] In step S32, the processor 112 obtains a pre-function P(x) defined for each section in the 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 having 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 in the grid Gw, and a second processed signal is obtained.
[0034] In the first modification method 40 of the second embodiment shown in FIG. 4, the LUT obtains a concatenated function called "adaptive function" f w (w)=f(P -1 (w)) in step S42 by concatenating the inverse P -1 (w) of the pre-function P(x), and calculates the LUT by sampling this concatenated function over the second grid Gw in step S44.
[0035] As can be seen, the modification mode constructs an adaptive LUT from the pre-function P(x) and the second main function f(x), and ensures that the application of the pre-function and the LUT to the signal is equivalent to directly applying the second main function up to the LUT application error. For example, when using the pre-function P(), the adapted regular LUT is defined on the regular grid Gw of the signal w = P(x) by sampling the concatenated adaptive function f w (w)=f(P -1 (w)). The grid Gw of the signal w corresponds to the grid Gx of the signal x. If Gx is denoted as G x ={x i ,0≦i<I}, then Gw can be denoted as G w =P(G x )={P(x i ),0≦i<I}. If Gw is regular and P() is non-linear, then Gx is an irregular grid.
[0036] In the second variant, which is the variant method 50 of the first and second embodiments shown in FIG. 5, the piecewise pre-function P(x) can be obtained from the pre-function Q(x) as follows.
[0037] In step S52, the pre-function Q(x) is applied to the grid Gx of the signal value x, and the second grid Gw = Q(Gx) is obtained. In step S54, the pre-function P(x) defined for each segment in 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, and the second signal w = P(x) is obtained. In step S58, a LUT is applied to the second signal using linear interpolation.
[0038] Since Q(x) is intentionally selected and is typically not a function defined for each segment, the second variant can be useful. For example, Q(x) can be selected to affect the accuracy of the LUT. Then, the piecewise-defined function P(x) is an approximation of Q(x).
[0039] Using the second variant, this embodiment can be easily integrated into a conventional framework that uses a pre-function Q(x) not defined for each segment. The conventional framework applies the pre-function Q(x) to the signal x to result in w = Q(x), samples the fitting function f(Q -1 (w)) over the regular grid Gw = Q(Gx) to calculate the fitting look-up table LUT Q and applies the fitting LUT to the signal w using linear interpolation according to LUT Q (w)=PL w (f(Q -1 (w)), where PL w is a piecewise linearization based on the regular sampling of w. Assume it includes applying.
[0040] Using the second variant, the conventional process is modified as follows: applying the prefunction P(x) to the signal x results in w = P(x), sampling the adaptation function f(P -1 (w)) over the regular grid Gw = P(Gx) = Q(Gx) to compute the adaptation look-up table LUT P , applying the LUT P (w) = PL w (f(P -1 (w))) by linear interpolation to the signal w, where PL P is a piecewise linearization based on the regular sampling of w. w It should be noted that when the interpolation adopted is conservative, Gw = P(Gx) = Q(Gx) holds, so the grid Gw does not change when replacing the standard prefunction Q(x) with the prefunction P(x) according to this principle. The adaptation look-up table LUT
[0041] is equal to the adaptation look-up table LUT P . This advantage means that there is no need to recompute the look-up table when replacing Q(x) with P(x). Q
[0042] Below, an example of the second variant is given. The standard prefunction Q(x) used in the conventional solution for a one-dimensional signal x within the range [0;1] is the logarithmic function Q(x) = log 2 (x + 1). Using a regular one-dimensional adaptation LUT of size 3 defined over the regular grid G w ={0; 0.5; 1}, the grid for defining the piecewise linear prefunction P(x) is G x ={f(Q -1 (0); f(Q -1 (0.5)); f(Q -1 (1))} = {0; 0.41; 1}. For example, within the interval [0; 0.41], the piecewise linear prefunction is
[0043]
Equation
[0044] Figure 6 shows a third variant of method 60 according to an embodiment of the present principle. In step S62, by applying the pre-function Q(x) to the signal value x of the first grid Gx, a second grid Gw = Q(Gx) is obtained. In step S64, the pre-function w = P(x) is applied to the signal x to obtain a first processed signal w. In step S66, a LUT having the second grid Gw = P(Gx) is calculated. In step S68, the LUT is applied to the first processed signal w using P(x) as the interpolation function.
[0045] Figure 7 shows an example of results. The second main function 70 (solid line) is best approximated using a look-up table with a pre-function according to the shape of the second main function 72 (dash-dot-dot line) based on the present principle, compared to well-known look-up tables using a linearized pre-function 74 (dot, dash-dot line), using a pre-function 76 (two dots, dash-dot line), or not using a pre-function 78 (dashed line) according to the present principle.
[0046] In a third variant, which is a variant of the first and second embodiments, the piecewise pre-function is further selected according to the second main function.
[0047] For at least one segment of the pre-function, the curvature of the second main function is analyzed in at least one interval corresponding to that segment of the pre-function.
[0048] The shape of the pre-function for at least one segment is changed according to the shape of the second main function in at least one interval corresponding to that at least one segment.
[0049] For the interval of the value x corresponding to at least one section, the LUT application error is calculated. The LUT application error is the difference between the result of applying the second main function to the signal x and the application of the pre-function to the signal x according to this principle and the subsequent application of the LUT.
[0050] The analysis, shape modification, and calculation of the LUT application error are repeated until the LUT application error is sufficiently reduced, for example, until it falls below a given value or as a ratio of the initial error.
[0051] An example of the first method of modifying the shape of the pre-function is, as shown here, determining the concave curvature for this section of the pre-function when the second main function in at least one corresponding section is convex, and vice versa.
[0052] Continuing with the above example, using a linearized logarithmic pre-function and a LUT of size 3, the pre-function can be selected according to the second main function in the following way. FIG. 8 shows the second main function f(x) that is concave in the interval [0; 0.41] of the pre-function defined for each section. Therefore, a convex term g(x) is added and the modified pre-function R(x) is derived:
[0053]
Number
[0054]
Number
[0055]
Number
[0056] When the input signal is multi-dimensional, the concavity or convexity of the second principal function can be analyzed for each channel. For example, when the second principal function is analyzed for a specific channel, the corresponding channel of the pre-function, or in the case of a one-dimensional pre-function, the pre-function applied to this channel is changed according to this principle.
[0057] Figure 8 shows the second principal function f(x)80 (dots, dashed line) that is concave in the interval [0; 0.41], the additional convex term g(x)82 (dashed line) that is zero at 0 and 0.41, the piecewise linear pre-function P(x)84 (solid line) according to this principle, and the modified pre-function R(x)86 (two dots, one dashed line) according to this principle that is convex within the interval [0; 0.41].
[0058] The additional convex term g(x) is advantageously zero at the boundaries of the interval for two reasons. First, the effective irregular sampling of x introduced by the piecewise linear pre-function Q(x) is the same as in the case of the modified pre-function R(x), i.e., the grids Gw and Gx remain invariant when Q(X) is replaced by R(X). Second, when calculating the adaptive LUT, since f(Q -1 (w)) = f(R -1 (w)) holds for all w in the grid Gw, neither R(x) nor g(x) needs to be inverted.
[0059] The second way to modify the shape of the pre-function is to optimize the shape of at least one segment of the pre-function Q(x) with respect to the shape of the second main function in at least one corresponding interval so that the LUT application error is minimized. This approach is trivial for a one-dimensional LUT, but since R(x) can be non-linear in the same way as the second main function and the complexity gain of replacing the second main function with a LUT is lost by applying a complex pre-function, it is of little or no significance. However, in the case of a multi-dimensional LUT, optimizing the pre-function or additional concave terms defined for each segment so that the LUT application error is minimized in the average over multiple dimensions can make sense. For example, a piecewise linear pre-function is modified using the term g(x) described above to become a non-linear pre-function R(x). And the parameters a and b are optimized so that the LUT application error is minimized.
[0060] Therefore, it will be understood that the present principle can reduce the LUT application error, that is, represent the second main function as a LUT while reducing the error introduced when applying it to a signal, and that the piecewise linear pre-function itself can be implemented as a LUT.
[0061] It should be understood that the elements shown in the figures can be implemented in various forms of hardware, software, or combinations thereof. Preferably, these elements are implemented as a combination of hardware and software on one or more appropriately programmed general-purpose devices and may include a processor, memory, and an input / output interface.
[0062] This description illustrates the principles of the present disclosure. Therefore, it will be understood that those skilled in the art can devise various configurations that embody the principles of the present disclosure and are within its scope, although not explicitly described or shown herein.
[0063] All examples and conditional language recited in this specification are intended for the educational purpose of helping the reader understand the principles of the present disclosure and the concepts contributed by the inventors to advance the art, and are to be construed as not being limited to such specifically recited examples and conditions.
[0064] Furthermore, all descriptions in this specification listing the principles, aspects, and embodiments of the present disclosure, as well as specific examples thereof, are intended to include both their structural equivalents and functional equivalents. In addition, such equivalents are intended to include both currently known equivalents and equivalents developed in the future, i.e., any element developed that performs the same function regardless of its structure.
[0065] Accordingly, for example, those skilled in the art will understand that the block diagrams presented in this specification represent conceptual diagrams of exemplary circuits embodying the principles of the present disclosure. Similarly, any flowchart, flow diagram, etc. is substantially represented on a computer-readable medium and represents various processes that can be executed by a computer or processor, whether or not such computer or processor is explicitly shown.
[0066] The functions of the various elements shown in the figures can 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 can 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. Further, the explicit use of the terms "processor" or "controller" should not be construed as exclusively referring to hardware capable of executing software, but may implicitly include digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage devices, among others, but is not limited thereto.
[0067] Conventional and / or other custom hardware may also be included. Similarly, any switches shown in the figures are merely conceptual. Their functions can be performed through the operation of program logic, through the operation of dedicated logic, through the interaction of program control and dedicated logic, or even manually, and the particular technique can be selectable by the implementer as more specifically understood in the context.
[0068] In the claims of this specification, any element expressed as a means for performing a particular function is intended to encompass any method for performing that function, including, for example, a) a combination of circuit elements that perform that function, or b) any form of software including firmware, microcode, etc. combined with appropriate circuitry for executing that software to perform that function. The present disclosure as defined by such claims resides in the fact that the functionality provided by the various recited means is combined and coordinated in the manner required by the claims. Accordingly, any means capable of providing those functionalities is considered equivalent to those shown herein.
Claims
A method executed by a hardware processor, comprising: Using a pre-function application means to apply a pre-function w = P(x) to an input signal x to obtain a first result w; Applying the look-up table (LUT) to the first result w using LUT application means, wherein the LUT defines a main function f for a second grid Gw of values such that the pre-function P(x) is defined for each section at a first grid Gx of signal values, where Gw = P(Gx). w including applying, where f(w) represents this. The pre-function P(x) is obtained by applying a second pre-function Q(x) to a signal value x to calculate a second grid Gw = Q(Gx), and by linearly interpolating the values of the second grid Gw so that P(Gx) = Q(Gx) to define the pre-function P(x) for each section in the first grid Gx. The method is obtained from the second pre-function Q(x). **Claim 2** The method according to claim 1, wherein the signal x is n-dimensional and the pre-function P(x) is applied to less than all of the n dimensions of the signal x. **Claim 3** Obtaining, by an obtaining means, the pre-function P(x) defined for each section in the first grid Gx of the signal x; The method according to claim 1, further comprising calculating, by a calculating means, the LUT with respect to the second grid Gw = P(Gx). **Claim 4** The LUT is By means of a connection means, the inverse function P -1 (w) of the pre-function P(x) and the second main function f(x) are connected to obtain the main function f w (w) as a connection function f w (w) = f(P -1 (w)), and Sampling, by a sampling means, the concatenation function across the second grid Gw; The method according to claim 1, calculated thereby. **Claim 5** The pre-function P(x) is For at least one section of the pre-function P(x), analyzing, by an analyzing means, the curvature of a second main function f(x) in at least one interval corresponding to the section of the pre-function P(x); Changing, by a changing means, the shape of the pre-function P(x) for the at least one section according to the shape of the second main function f(x); Calculating, by a calculating means, a LUT application error for the interval of the value x corresponding to the at least one section; Repeating, by an iterative means, until the LUT application error is less than a given value. The method according to claim 4, obtained thereby. **Claim 6** A device comprising: A memory configured to store processor-executable program code instructions; At least one hardware processor that executes the program code instructions to Apply a pre-function w = P(x) to an input signal x to obtain a first result w; Applying a look-up table (LUT) to the first result w, the LUT being defined for a second grid Gw of values such that the pre-function P(x) is defined per section at a first grid Gx of signal values, with a main function f w (w), where Gw = P(Gx), and an at least one hardware processor configured to perform the applying, The pre-function P(x) is obtained from the second pre-function Q(x) by calculating a second grid Gw = Q(Gx) by applying the second pre-function Q(x) to the signal value x, and defining the pre-function P(x) for each section in the first grid Gx by linear interpolation of the values of the second grid Gw such that P(Gx) = Q(Gx).
7. The device according to claim 6, wherein the signal x is n-dimensional and the pre-function P(x) is applied to less than all of the n dimensions of the signal x.
8. The at least one hardware processor is further configured to execute the program code instructions to obtain the pre-function P(x) defined for each section in the first grid Gx of the signal x, and calculate the LUT with respect to the second grid Gw = P(Gx). The device according to claim 6.
9. The LUT is The inverse function \(P^{-1}(w)\) of the previous function \(P(x)\) and the second main function \(f(x)\) are concatenated to obtain the main function \(f\) -1 (w) such that the main function \(f\) w (w) is the concatenated function \(f\) w (w)=f(P -1 (w)) calculated by sampling the concatenation function over the second grid Gw. The device according to claim 6.
10. The pre-function P(x) is obtained by analyzing the curvature of the second main function f(x) in at least one interval corresponding to the section of the pre-function P(x) for at least one section of the pre-function P(x), changing the shape of the pre-function P(x) according to the shape of the second main function f(x) for at least one section, calculating a LUT application error for the interval of the value x corresponding to at least one section, and iterating until the LUT application error is less than a given value. The device according to claim 9.
11. A non-transitory computer-readable medium storing program code instructions that, when executed by a processor, perform the steps of the method according to at least one of claims 1 to 5.
Citation Information
Patent Citations
Color lookup table optimization mechanism
JP2019153294A
Method and apparatus for nonlinear interpolation color conversion using look up tables
US20200007718A1