An artifact is a kind of image distortion and is an undesired part of an image that is not actually present. To transmit images, analog to digital conversion is performed and the reverse procedure is required at the receiving end. Images are divided into arrays to be converted into the digital form, where a single block of an array contains sixty-four sub-blocks which are termed as Pixels. Each pixel has its intensity and this combination of intensities make up an image. Image is subjected to compression to reduce the size to a suitable extent for transmission but this compression and conversion may result in the variations of pixel intensities and eventually a distorted image. There is a trade-off between the size and quality of an image. In some cases, an artifact may be acceptable but for critical applications, even a little amount of artifact is not tolerated, therefore, it is highly emphasized to mitigate the image artifacts.
A number of techniques is presented to filter the distorted image. The techniques can be categorized as pre-processing and post-processing techniques. In pre-processing technique, as its name implies, image is processed before compression to diminish artifacts, while for post-processing technique, filter is applied post compression.
One pre-processing method is to predict the pixel intensities based on the pre-processed image but the processing and propagation delay render the technique as non-feasible. Another approach is to determine the frequency response of the individual blocks to calculate block coefficients and then transfer them along with the image. It is clear that this technique will result in increased data size which is highly undesirable. Moreover, additional calculations are performed which increase processing time. Error between pre and post-processed image can also be calculated and the image quality is improved by incorporating feedback action. Pre-processing techniques are not widely employed because it may not be possible to get the uncompressed image as images stem from various sources.
To overcome this drawback, post-processing techniques are preferred. One such technique is to target the distorted section of an image and then repetitively apply low-pass filter on pixels until the artifact is reduced below a desired value. This technique requires repetitions as a result it is considered cumbersome. The neighboring pixels of the target section can also be quantized for the application of filter to adjust erroneous intensities but it requires to filter multiple pixels. Consequently, computation time and data would increase. We need a post-processing technique which does not demand the transmission of filter coefficients and is suitable for real-time applications.
The above drawbacks are successfully dealt by another approach which has three unique aspects as compared to other techniques. First, the approach targets the adjoining and neighboring pixels in a different manner as it does not aggressively adjust the remote pixels thus saving processing time. Furthermore, different coefficients are used for rows and columns of the picture array. If the intensities of the adjoining pixels are uniform only then the intensities of remote pixels are adjusted. This technique offers the optimal solution to reduce artifact.
Linear equations have a specific form and can be solved easily algebraically either by elimination or substitution. Linear equations are also represented in matrix form but for non-linear equations, there is no single approach as they are found in different forms. Non-linear equations can easily be understood through the basic definition of linearity, according to which, an increase in the input should result in an equal change in the output as well. However, the case is the opposite of non-linear equations. To better understand this, we consider a nonlinear equation:
The variables of non-linear equations have an exponential power greater than one. Additionally, a non-linear equation contains quantities in which the unknown variable is multiplied by itself or by another function containing the unknown variable. A non-linear equation of n_thorder has the highest exponential power of n.
As you can observe that an increase of the value three resulted in an output increase of twenty-seven, thus, the equation is non-linear.The number of roots for a non-linear equation is arbitrary which means that the equation can have zero, one or multiple solutions. The equation may have no solution in the case where the roots are imaginary. If we plot a non-linear equation then we will get a curve, not a straight line.The majority of real systems can be characterized using a non-linear equation. MATLAB provides the functionality to simulate real physical systems, therefore, a major part of background calculation is solving non-linear equations.
The nonlinear equation is usually not solved algebraically and it requires effort. Numerous approaches to solving a non-linear equation are present such as Bisection, Secant, Newton’s Methods, and Regular Falsi. Only Newton’s method will be discussed in detail. The methods require an iterative solution which means that we have to solve a few linear equations until the solution converges.
It is the most widely used algorithm to approximate and solve non-linear quantities. Newton’s formula is an approximation and is derived from Taylor’s Series.
Figure 1: Taylor’s Expansion
The above expansion is then approximated to obtain the following formula:
Figure 2: Newton’s Approximation
This approximation can be utilized to calculate the roots by setting f(x)=0 and then re-arranging it will give us:
Figure 3: Newton’s Formula
By applying iterations to the formula, we can easily obtain the values of the unknown variables.
A non-linear equation may also have multiple variables, in such case, different solving algorithms are employed. Few systems reduce non-linear equations into linear equations and then approximate the solution, in this way, iterations are avoided. Multiple techniques for linearizing a non-linear equation are also present but if accuracy is important then we need to employ the longer approach. MATLAB has built-in functions that solve nonlinear equations in the form of differential equations by utilizing the Jacobian Matrix. Partial derivatives of functions of the equations are stored in the Jacobian Matrix and it plays a major role in numerical computations. The fsolve function is specially designed to solve such equations.