METHOD AND APPARATUS FOR CHROMA RECONSTRUCTION

20170352062 · 2017-12-07

Assignee

Inventors

Cpc classification

International classification

Abstract

A method and apparatus for predicting chroma values including the steps of having a decoder provide an image frame to an up-sample filter, the image frame having luma and chroma components, and applying an analysing algorithm on a subset of said image frame to obtain the subset content type, and, depending on the content type, select a reconstruction algorithm to reconstruct the chroma components.

Claims

1-17. (canceled)

18. A method for predicting chroma values using a decoder, and an up-sample filter, comprising the steps of having the decoder provide an image frame to the up-sample filter, said image frame comprising luma and chroma components, having the up-sampling filter define a subset of said image frame, and applying at least one analysing algorithm on said subset to obtain a subset content type, and selecting at least one reconstruction algorithm to reconstruct the chroma components of the subset wherein the selecting of the at least one reconstruction algorithm depends on the subset content type, and wherein the smallest size of the subset is 2 by 2 pixels in full chroma resolution.

19. A method according to claim 18, wherein the decoder is a hardware accelerated decoder.

20. A method according to claim 18, wherein the chroma components are reconstructed with the values of the luma components.

21. A method according to claim 18, wherein an analysing algorithm comprises the step of investigating if at least two luma components in the subset have the same value.

22. A method according to claim 18, wherein an analysing algorithm comprises the step of investigating if the chroma subset has the same or substantially the same structure, or the same or substantially the inverse structure, of the luma subset.

23. A method according to claim 18, wherein the reconstruction algorithm comprises the steps of implementing formulas of an up-sampling algorithm wherein, and for neighboring luma components being equal, arranging the corresponding chroma components to be equal.

24. A method according to claim 18, wherein a reconstruction algorithm comprises the steps of, normalizing the full-resolution luma component with a minimum and maximum sub-sampled luma component, and linearly scaling it to the sub-sampled chroma component.

25. A method according to claim 18, wherein a position of the subset is repeatedly moved so that eventually the whole image frame is analysed and reconstructed.

26. An apparatus for predicting chroma values, comprising a decoder arranged to receive and provide an image frame, said image frame comprising luma and chroma components, and an up-sampling unit, comprising an up-sampling filter performing reconstruction, arranged to receive image frames from the decoder, wherein for each subset of the image frame the selected reconstruction algorithm depends on the content type of the subset, wherein the smallest size of the subset is 2 by 2 pixels in full chroma resolution.

27. The apparatus according to claim 26, wherein the decoder is a hardware accelerated decoder.

28. The apparatus according to claim 26, a wherein the upsampling unit is adapted to reconstruct the chroma components with the values of the luma components.

29. The apparatus according to claim 26, further comprising analysing algorithm means adapted to investigate if at least two luma components in the subset have the same value.

30. The apparatus according to claim 26, further comprising analysing algorithm means adapted to investigate if the chroma subset has the same or substantially the same structure, or the inverse structure or substantially the inverse structure, of the luma subset.

31. The apparatus according to claim 26, wherein the reconstruction algorithm is adapted to implement the formulas of an up-sampling algorithm wherein, for neighbouring luma components being equal, the corresponding chroma components are arranged to be equal.

32. The apparatus according to claim 26, wherein the up-sampling filter for performing reconstruction is adapted to normalize the full-resolution luma component with the minimum and maximum sub-sampled luma component, and linearly to scale it to the sub-sampled chroma component.

33. The apparatus according to claim 26, further adapted to move the position of the above mentioned subset repeatedly so that eventually the whole frame is being analysed and reconstructed.

34. A computer program product comprising a machine-readable medium carrying instructions which, when executed by a processor, cause the processor to perform the method of claim 18.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0024] FIG. 1 shows an example of reconstructed synthetic screen content where poor quality is visible.

[0025] FIG. 2 shows an example of how a guided filter smooth around an edge in the image.

[0026] FIG. 3 shows an overview of an embodiment of the present invention where.

[0027] FIG. 4 shows an embodiment of the present invention in a) graphical form and in b) matrix form.

[0028] FIG. 5 shows an embodiment of the present invention with numerical values in the L,R and C matrices.

[0029] FIG. 6 shows a detail of a chroma reconstructed image made by a) a conventional method and b) an embodiment of the present invention.

DETAILED DESCRIPTION

[0030] The present invention will be described with respect to particular embodiments and with reference to certain drawings but the invention is not limited thereto but only by the claims. The drawings described are only schematic and are non-limiting.

[0031] Furthermore, the terms first, second, third and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a sequential or chronological order. The terms are interchangeable under appropriate circumstances and the embodiments of the invention can operate in other sequences than described or illustrated herein.

[0032] Moreover, the terms top, bottom, over, under and the like in the description and the claims are used for descriptive purposes and not necessarily for describing relative positions. The terms so used are interchangeable under appropriate circumstances and the embodiments of the invention described herein can operate in other orientations than described or illustrated herein. The term “comprising”, used in the claims, should not be interpreted as being restricted to the means listed thereafter; it does not exclude other elements or steps. It needs to be interpreted as specifying the presence of the stated features, integers, steps or components as referred to, but does not preclude the presence or addition of one or more other features, integers, steps or components, or groups thereof. Thus, the scope of the expression “a device comprising means A and B” should not be limited to devices consisting only of components A and B. It means that with respect to the present invention, the only relevant components of the device are A and B. Similarly, it is to be noticed that the term “coupled”, also used in the description or claims, should not be interpreted as being restricted to direct connections only. Thus, the scope of the expression “a device A coupled to a device B” should not be limited to devices or systems wherein an output of device A is directly connected to an input of device B. It means that there exists a path between an output of A and an input of B which may be a path including other devices or means.

[0033] References to software can encompass any type of programs in any language executable directly or indirectly by a processor.

[0034] References to logic, hardware, processor or circuitry can encompass any kind of logic or analog circuitry, integrated to any degree, and not limited to general purpose processors, digital signal processors, ASICs, FPGAs, discrete components or transistor logic gates and so on.

[0035] Embodiments of the present invention seek to provide a method and apparatus for reconstruction of sub-sampled synthetic screen content, optionally using accelerated hardware. The examples given in the following text are provided for illustration and should not be seen as limiting.

[0036] FIG. 3 shows an embodiment of the present invention. The proposed method for reconstructing the chroma component can be designed to be used after the decoder without modifications to the encoder. The original stream a can be captured, for example, through screen capturing and converted to a YUV 4:4:4 video stream if necessary. In order to enable the use of conventional encoders, this stream can be sub-sampled as stream b by the sub-sample filter in the encoder device. The encoder can then encode streams with a YUV 4:2:0 sub-sample profile, like the HEVC/H.265 Main profile. It is not necessary to include any additional information in the encoded video stream c. After transmission over the network, the video stream c′ can be decoded by a standard compliant (e.g. optionally hardware accelerated) decoder. This can generate the video stream d that can be used as the input for the chroma reconstruction. In FIG. 3, a step with a solid line pertains to frame processing while the striped line refers to block processing.

[0037] FIG. 4a) illustrates a sliding input window 3 covering 6×3 luma pixels 1 (only 3 pixels are indicated) and 2×2 sub-sampled chroma pixels 2 (only 2 pixels are indicated). The output window 4 comprises 4 luma pixels 1 (only 1 pixel is indicated) on full resolution. FIG. 4b) illustrates the sliding input window as matrices. The input matrix L represents the luma components I.sub.i,j, the matrix R represents the sub-sampled chroma components r.sub.i,j, and the matrix C represents the (unknown) full resolution chroma component C.sub.i,j.

[0038] The chroma reconstruction algorithm of the present invention can be based on the sub-sample filter of the encoding device and the chroma pixel positions. The algorithm can also be adapted to other sub-sample filters and/or chroma pixel positions. For the chroma reconstruction, every frame can be analyzed with a sliding input window 3 that can move independently in any direction. A large window size has a lower probability for cross component correlation. The minimum sliding input window 3 should at least have 2×2 pixels in the sub-sampled chroma component. To define the matching sliding input window in the luma component, the filter and chroma pixel position should be taken into account. As the four-taps filter uses four positions, e.g. r.sub.0,0, r.sub.1,0, r.sub.2,0 and r.sub.3,0 for the output c.sub.0,0, the window size of the full resolution components can be 6 by 3 pixels. Every window has four output pixels r.sub.2,1, r.sub.2,2, r.sub.3,1 and r.sub.3,2.

[0039] To decide if the pixels represent synthetic screen content, each frame can be analyzed by sliding the window over the frame and evaluate the pixels in two steps. This can be repeated until all pixels in the frame have been analyzed. Preferably, the sliding input window is always the same size, it does not change. In this method an analyzing algorithm and the reconstruction algorithm detect if the luma component can be used as a guide for reconstructing the chroma component. For this detection a moving window is used and also at least two components (e.g. luma and chroma).

[0040] Step 1:

[0041] The first step investigates if the following is true: If two pixels have the same luma value, it's also highly probable that they also have the same chroma value.


l.sub.n,m=l.sub.i,jcustom-character+r.sub.n,m=r.sub.i,j (n, m)∈W,(i,j)∈W.  (1)

[0042] This step yields a positive outcome for screen content, since a lot of pixels with homogeneous colors can be situated in the sliding window.

TABLE-US-00001 TABLE I Sequence P(L) [%] P(C|L) [%] cad-waveform 90.32 99.83 pcb-layout 97.14 100 ppt-doc 84.66 99.12 twist-tunnel 83.83 99.46 video-conferencing 81.62 96.35 Average 87.51 98.95 BirdsInCage 8.86 1.69 crowdRun 0.06 0.00 Kimono 2.42 0.52 ParkScene 0.26 16.25 Traffic 6.01 2.52 Average 3.52 4.20

[0043] Table I shows the probability P(L) of pixels for which the part l.sub.m,n =l.sub.m,n in equation 1 is true, i.e., the pixels at (i,j) and (m,n) in the window have the same luma value. The P(C/L) is the probability of pixels for which equation 1 as a whole is true, i.e. the pixels at (i,j) and (m,n) has the same luma value and the same chroma value. The upper half of the table comprises synthetic screen content and the lower half of the table comprises natural screen content. It can be seen that the values of both P(L) and P(C/L) for the synthetic screen content are very high while they are very low for the natural content. Thus, synthetic screen content can be identified from natural screen content. To determine the reconstructed values, equation 1 can be combined with the formulas used in the encoder to subsample the chroma pixels so that equations (2) to (5) for the reconstructed chroma values c.sub.i,j are obtained:

[00001] c 0 , 0 = - r 0 , 0 + 9 .Math. r 1 , 0 + 9 .Math. r 2 , 0 - r 3 , 0 16 + δ 0 , 0 ( 2 ) c 0 , 1 = - r 0 , 2 + 9 .Math. r 1 , 2 + 9 .Math. r 2 , 2 - r 3 , 2 16 + δ 0 , 1 ( 3 ) c 1 , 0 = - r 2 , 0 + 9 .Math. r 3 , 0 + 9 .Math. r 4 , 0 - r 5 , 0 16 + δ 1 , 0 ( 4 ) c 1 , 1 = - r 2 , 2 + 9 .Math. r 3 , 2 + 9 .Math. r 4 , 2 - r 5 , 2 16 + δ 1 , 1 ( 5 )

[0044] The δ.sub.i,j compensate for the rounding errors when converting c.sub.i,j to unsigned integer 8-bit values, and can be in the range [−0:5; 0:5]. Note that for a system like that in FIG. 3, optimal chroma reconstruction (taking place after the decoder) can be obtained if the up-sampling filter is of the same type as the sub-sampling filter that is used before the decoder.

[0045] The step 1 can only provide a solution when there are enough pixels with equal luma values, such that the formulas can be simplified and solved. Note that the pixels r.sub.2,1 and r.sub.3,1 are not taken into account for calculating the sub-sampled chroma pixel values. These pixels should have equal luma pixel values to a pixel from column 0 or 2. When, for example, a gradient is used (e.g. more colors in the sliding window), this assumption fails to resolve to a valid solution and the output of this assumption cannot be used. A second step is introduced that can provide a solution for these cases.

[0046] Step 2:

[0047] The second step investigates if the following is true: The chroma component has the same, or the inverse, structure as the luma component. The chroma component should also have a value between the minimum and maximum value of the luma component. When there is a similar structure between the chroma and luma components, the chroma component increases, or decreases for the inverse case, when the luma component increases.

[0048] FIG. 5 illustrates an example with numerical values for the original chroma component, R, the (original) luma component, L and C, which is the sub-sampled version of the original chroma component R. The outcome of step 1 will be false since there are not enough pixels with equal luma values to solve equations (2) to (5). It can also be seen that the original chroma component R has the inverse texture as the luma component L. When there is no structure in D (i.e. max(D)=min(D)), the outcome of step 2 will be false and another conventional method would be used for the reconstruction.

[0049] First, a sub-sampled version D of the luma component L is calculated. This can be done in a similar fashion as the subsample filter used in the encoder according to the following:

[00002] d 0 , 0 = - l 0 , 0 + 9 .Math. l 1 , 0 + 9 .Math. l 2 , 0 - l 3 , 0 16 d 0 , 1 = - l 0 , 2 + 9 .Math. l 1 , 2 + 9 .Math. l 2 , 2 - l 3 , 2 16 d 1 , 0 = - l 2 , 0 + 9 .Math. l 3 , 0 + 9 .Math. l 4 , 0 - l 5 , 0 16 d 1 , 1 = - l 2 , 2 + 9 .Math. l 3 , 2 + 9 .Math. l 4 , 2 - l 5 , 2 16 ( 6 ) D = [ d 0 , 0 d 0 , 1 d 1 , 0 d 1 , 1 ] .Math. ( [ 80 72.5 80 68.8125 ] ) ( 7 )

[0050] Expression 7 shows the numeric result of calculating D for the values in FIG. 5. The sub-sampled luma component D can then be normalized to N.sub.D, between its minimum and maximum:

[00003] N D = D - min .Math. .Math. ( D ) max .Math. .Math. ( D ) - min .Math. .Math. ( D ) .Math. .Math. ( = [ 1 0.564 1 0 ] ) ( 8 )

[0051] Both D and ND can be calculated as floating points so there are no rounding errors. However, the chroma component C comprises integer values so the results can have rounding errors δ.sub.i,j. Therefore both extrema will be calculated for NC taking into account the possible rounding errors:

[00004] N C min = C - min .Math. .Math. ( C ) - 1 max .Math. .Math. ( C ) - min .Math. .Math. ( C ) - 1 .Math. .Math. ( = [ - 0.029 0.400 - 0.029 0.943 ] ) ( 9 ) N C max = C - min .Math. .Math. ( C ) + 1 max .Math. .Math. ( C ) - min .Math. .Math. ( C ) - 1 .Math. .Math. ( = [ 0.030 0.485 0.030 1.061 ] ) ( 10 )

[0052] Step 2 will have a positive outcome if all elements from the normalized luma component are in the range of the elements of the normalized chroma component:

[00005] N C m .Math. .Math. i .Math. .Math. n i , j N D i , j N C ma .Math. .Math. x i , j ( i , j ) D ( 11 )

[0053] Note that this not true for the given example since 0.564 does not lie between 0.400 and 0.485.

[0054] Step 2 will have a positive outcome when the texture in both components is similar.

[0055] In case of a positive outcome of (13), the chroma component R′ can be reconstructed as follows. The (full-resolution) luma component is normalized with the minimum and maximum of the sub-sampled luma component and linearly scaled to the sub-sampled chroma component:

[00006] N L = L - min .Math. .Math. ( D ) max .Math. .Math. ( D ) - min .Math. .Math. ( D ) ( 12 ) R = ( N L .Math. ( max .Math. .Math. ( C ) - min .Math. .Math. ( C ) ) ) + min .Math. .Math. ( C ) . ( 13 )

[0056] In case of a negative outcome of (13), the inverse normalization can also be tested:

[00007] N D - 1 = max .Math. .Math. ( D ) - D max .Math. .Math. ( D ) - min .Math. .Math. ( D ) .Math. .Math. ( = [ 0 0.436 0 1 ] ) ( 14 ) N C min i , j N D i , j - 1 N C max i , j ( i , j ) D ( 15 )

[0057] If this holds true (like in the numerical example) the luma structure can be inversely transferred to the up-sampled chroma component.

[00008] R = max .Math. .Math. ( C ) - ( N L .Math. ( max .Math. .Math. ( C ) - min .Math. .Math. ( C ) ) ) ( 16 ) ( N L = [ 1 1 1 1 0.709 0.709 1 0.418 0.418 1 0.127 0.127 1 - 0.164 - 0.164 1 - 0.164 - 0.745 ] .Math. .Math. R = [ 100 100 100 100 109.89 109.89 100 119.78 119.78 100 129.67 129.67 100 139.56 139.56 100 139.56 159.35 ] ) ( 17 )

[0058] If, in the example, R′ is rounded, all pixels except r′.sub.5,2 have the same reconstructed value as in the input R in FIG. 5. This deviation (159 instead of 160) is caused by the rounding errors in C. More important is the good texture reconstruction of the chroma component with the guidance of the luma component. The equations 13 and 17 will detect if the luma and chroma component do not share a similar texture. In this case a conventional up-sample filter without luma guidance will be used.

EXAMPLES

[0059] The proposed method is verified with different sequences used in the common test conditions of the HEVC range extensions. Two groups of test sequences are used, the first group are the screen content sequences: cad-waveform, pcblayout, ppt-doc, twist-tunnel and video-conference. The second group contains natural camera captured content: CrowdRun, Traffic, BirdsInCage, Kimono and ParkScene. The original sequences are YUV 4:4:4 sequences. For lossy compression the HM 16.2 reference codec (“HM 16.2” is a standard test model for the HEVC codec) with the Super High Tier (SHT) configuration with QP values 12, 17, 22 and 27 is used. “QP” is the Quantization Parameter which defines the coding quality (the lower the value, the higher the quality). There is no added value to use Main tier QP configurations as the quality degradation from the compression artifacts is not acceptable in the professional applications considered the scope in this paper.

[0060] The improvements in the chroma components are objectively measured using PSNR and Structural SIMilarity (SSIM) [7]. However, objective quality improvements are not always a clear indication for screen content. This is mainly because the PSNR is based on the Mean Square Error (MSE) of the full frame, while screen content artifacts are typically located around the sharp edges, which may be not homogeneously distributed over the entire frame. As a result, subjective quality gain can sometimes even be identified with small PSNR gains. SSIM tries to estimate the perceived error by assuming a strong dependency between pixels spatially close. It will, in this use case, provide a better objective quality metric. The improvements where subjectively verified and some visual examples will be provided.

Example: Lossless Compression

[0061] Table IIa provides the PSNR-chroma results for lossless compressed YUV 4:2:0 bit streams using standard HEVC/H.265 proposed chroma up-sampling as reference or “anchor”. The outcome of using the method of the present invention is referred to as “proposal”. For screen content, the improvements are in the range of 0.51 dB for the video-conferencing sequence up to 3.11 dB improvement for the cad-waveform sequence, with an average of 1.68 dB over all test sequences. The SSIM results for the same configuration can be found in Table IIb. These results show the same trend as the PSNR results. The cad-waveform sequence provides the best SSIM-chroma gain of 0.128, while an average SSIM-chroma gain of 0.051 is measured for the screen content sequences. While the sequences cad-waveform, pcb-layout, ppt-doc have very diverse SSIM results in the anchor version, in the proposed method they all provide a SSIM around 0.925.

TABLE-US-00002 TABLE II (a) (b) PSNR-chroma [dB] SSIM-chroma Sequence Anchor Proposal Gain Sequence Anchor Proposal Gain cad-waveform 23.04 26.14 3.10 cad-waveform 0.796 0.923 0.28 pcb-layout 26.27 28.57 2.30 pcb-layout 0.845 0.924 0.079 ppt-doc 31.25 31.89 0.64 ppt-doc 0.911 0.927 0.016 twist-tunnel 36.45 38.27 1.82 twist-tunnel 0.984 0.989 0.005 video-conferencing 29.85 30.36 0.51 video-conferencing 0.877 0.904 0.027 Average 1.67 Average 0.051 CrowdRun 37.18 37.17 −0.01 CrowdRun 0.913 0.913 −0.001 BirdsInCage 39.13 38.84 −0.29 BirdsInCage 0.932 0.925 −0.007 Kimono 40.38 40.26 −0.12 Kimono 0.939 0.937 −0.002 ParkScene 38.05 38.02 −0.03 ParkScene 0.917 0.916 −0.001 Traffic 41.85 41.59 −0.26 Traffic 0.973 0.969 −0.004 Average −0.14 Average −0.003

[0062] FIG. 6 demonstrates the reconstruction of a pct-layout sequence obtained by a) anchor and b) proposal. The proposal shows a perfect reconstruction, while the anchor provides a smoothed output with less detail. For natural content, the results range from 0.01 dB loss for the CrowdRun sequence to a loss of 0.29 dB for the BirdsInCage sequence. The average loss of SSIM-chroma for the natural content sequences is 0.003. For the tested sequences is this loss rather negligible, so there is no need for algorithms that classify content to decide whether to activate the proposed upscaling filter or not, which is a considerable advantage.

[0063] The present invention relates to an apparatus for predicting chroma values with processing capability. The apparatus may include one or more microprocessors, processors, controllers, or central processing unit (CPU) and/or a Graphics Processing Unit (GPU), and can be adapted to carry out its respective functions by being programmed with software, i.e. one or more computer programmes. The apparatus may have memory (such as non-transitory computer readable medium, RAM and/or ROM), an operating system, optionally a display such as a fixed format display, data entry devices such as a keyboard, a pointer device such as a “mouse”, serial or parallel ports to communicate other devices, network cards and connections to connect to any of the networks.

[0064] The software can be embodied in a computer program product adapted to carry out the following functions when the software is loaded onto the respective device or devices and executed on one or more processing engines such as microprocessors, ASIC's, FPGA's etc.:

[0065] predicting chroma values making use of a decoder, and an up-sample filter,

[0066] having the decoder providing an image frame to the up-sample filter, said image frame comprising luma and chroma components,

[0067] having the up-sampling filter defining a subset of said image frame,

[0068] and applying at least one analysing algorithm on said subset to obtain the subset content type, and

[0069] selecting at least one reconstruction algorithm to reconstruct the chroma components of the subset wherein the selection of the at least one reconstruction algorithm depends on the subset content type, the smallest size of the subset being 2 by 2 pixels in full chroma resolution.

[0070] The software can be embodied in a computer program product adapted to carry out the following functions when the software is loaded onto the respective device or devices and executed on one or more processing engines such as microprocessors, ASIC's, FPGA's etc.:

[0071] decoding with a hardware accelerated decoder, and/or

[0072] reconstructing the chroma components with the values of the luma components, and/or

[0073] an analysing algorithm comprising the step of investigating if at least two luma components in the above mentioned subset have the same value.

[0074] The software can be embodied in a computer program product adapted to carry out the following functions when the software is loaded onto the respective device or devices and executed on one or more processing engines such as microprocessors, ASIC's, FPGA's etc.:

[0075] an analysing algorithm comprising the step of investigating if the chroma subset have the same or substantially the same structure, or the same or substantially the inverse structure, of the luma subset, and/or

[0076] the reconstruction algorithm comprising the steps of implementing the formulas of an up-sampling algorithm wherein, for neighbouring luma components being equal, arranging the corresponding chroma components to be equal.

[0077] The software can be embodied in a computer program product adapted to carry out the following functions when the software is loaded onto the respective device or devices and executed on one or more processing engines such as microprocessors, ASIC's, FPGA's etc.: a reconstruction algorithm comprising the steps of, normalizing the full-resolution luma component with the minimum and maximum sub-sampled luma component, and linearly scale it to the sub-sampled chroma component, and/or

[0078] the position of the above mentioned subset is repeatedly moved so that eventually the whole frame is being analysed and reconstructed.

[0079] Any of the above software may be implemented as a computer program product which has been compiled for a processing engine in the decoder. The computer program product may be stored on a non-transitory signal storage medium such as an optical disk (CD-ROM or DVD-ROM), a digital magnetic tape, a magnetic disk, a solid state memory such as a USB flash memory, a ROM, etc.

REFERENCES

[0080] [1] Apple, “Apple—ipad air—technical specifications,” https://www.apple.com/ipad-air/specs/, 2014, [Online; accessed 19 Aug. 2014]. [0081] [2] Google, “Supported media formats, android developers,” http://developer.android.com/guide/appendix/media-formats.html, 2014, [Online; accessed 19 Aug. 2014]. [0082] [3] G. J. Sullivan, J.-R. Ohm, W.-J. Han, and T. Wiegand, “Overview of the high efficiency video coding (HEVC) standard,” Circuits and Systems for Video Technology, IEEE Transactions on, vol. 22, no. 12, pp. 1649-1668, 2012. [0083] [4] Y. Itoh and T. Ono, “Up-sampling of YCbCr 4:2:0 image exploiting inter-color correlation in rgb domain,” Consumer Electronics, IEEE Transactions on, vol. 55, no. 4, pp. 2204-2210, November 2009. [0084] [5] M. Zhao, P. M. Hofman, and G. de Haan, “Content-adaptive up-scaling of chrominance using classification of luminance and chrominance data,” in Electronic Imaging 2004. International Society for Optics and Photonics, 2004, pp. 721-730. [0085] [6] K. He, J. Sun, and X. Tang, “Guided image filtering,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 35, no. 6, pp. 1397-1409, 2013. [0086] [7] Zhou Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, “Image quality assessment: from error visibility to structural similarity,” Image Processing, IEEE Transactions on, vol. 13, no. 4, pp. 600-612, April 2004.