GB2492189A - Processing colour information in an image comprising colour component sample prediction based on colour sampling format - Google Patents

Processing colour information in an image comprising colour component sample prediction based on colour sampling format Download PDF

Info

Publication number
GB2492189A
GB2492189A GB201200920A GB201200920A GB2492189A GB 2492189 A GB2492189 A GB 2492189A GB 201200920 A GB201200920 A GB 201200920A GB 201200920 A GB201200920 A GB 201200920A GB 2492189 A GB2492189 A GB 2492189A
Authority
GB
United Kingdom
Prior art keywords
samples
colour
colour component
information
component
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.)
Granted
Application number
GB201200920A
Other versions
GB201200920D0 (en
GB2492189B (en
Inventor
Christophe Gisquet
Edouard Francois
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of GB201200920D0 publication Critical patent/GB201200920D0/en
Publication of GB2492189A publication Critical patent/GB2492189A/en
Application granted granted Critical
Publication of GB2492189B publication Critical patent/GB2492189B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

Image colour information is processed, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the first component and the second component are arranged according to a colour sampling format (e.g. 4:2:0, 4:2:2 or 4:4:4) and wherein samples of the second component are predictable from samples of the first component. Colour information representative of the colour sampling format is provided, a prediction process for predicting samples of the second component from samples of the first component is determined based on the provided colour information and the determined prediction process is performed on samples of the first colour component to predict samples of the second colour component. As the prediction process takes into account the information relating to the colour sampling format, the process is not restricted to any particular format and consequently different formats may be processed. The processing may form part of encoding an image.

Description

I
METHOD AND DEVICE FOR PROCESSING COLOUR INFORMATION IN AN
IMAGE
The present invention concerns a method and device for processing colour information in an image. The invention further relates to a method and a device for encoding an image, and to a method and device for decoding an image At least one embodiment of the invention is applicable in the field of intra coding of chroma samples of video data.
Video data is typically composed of a series of still images or frames which are shown rapidly in succession as a video sequence to give the visual impression of a moving image. Video applications are continuously moving towards improved image resolution (greater number of pixels per frame, higher frame rate, higher bit-depth...). A large quantity of video content is distributed in digital form via broadcast channels, digital networks and packaged media, with a continuous evolution towards improved quality and resolution (e.g. higher number of pixels per frame, higher frame rate, higher bit-depth or extended colour gamut). This evolution in technology puts increased pressure on distribution networks that already face difficulties in providing HDTV (high definition television) resolution and data rates economically to the end user.
Consequently, further increases in data rate will put additional pressure on such distribution networks. To address this challenge, ITU-T (International Telecommunications Union, telecommunications Standardization Sector) and ISO/MPEG decided to launch a new video coding standard project in January 2010, known as High Efficiency Video Coding (HEVC). It will be appreciated that in what follows the term "HEVC" is used to represent the current implementation of HEVC, which is in course of standardization and will be subject to evolution.
HEVC codec design is similar to that of most previous so-called block-based hybrid transform codecs such as H.263, H.264, MPEG-I, MPEG-2, MPEG-4, SVC. Video compression algorithms, such as those standardized by the standardization bodies ITU, ISO and SMPTE, use spatial and temporal redundancies of images in order to generate data bit streams of reduced size.
Spatial redundancy represents the mutual correlation between adjacent image pixels, while temporal redundancy represents the correlation between images of sequential images. Such compression processes make the transmission and/or storage of video sequences more effective.
An image of the video data to be transmitted may be provided as a set of two-dimensional arrays (also known as colour channels) of sample values, each entry of which represents the intensity of a colour component such as a measure of luma brightness and chroma colour deviations from neutral grayscale colour toward blue or red (YUV) or as a measure of red, green, or blue light component intensity (RGB). The data rate of the video signal to be transmitted can be reduced by performing downconversion of the colour information of the video signal.
The YUV model defines a colour space in terms of one Iuma (Y) and two chrominance (UV) components. Generally V stands for the luma component (the brightness) and U and V are the chrominance (colour) or chroma components. Typically chroma subsampling is the practice of encoding images by implementing less resolution for chroma information than for luma information, taking advantage of the human visual system's lower acuity for colour differences than for luminance.
Video sequence data encoded with HEVO may come from very different sources. Besides video properties such as resolution and colourspace (e.g. RGB and YUV), one fundamental property of the video signal is its sampling: each component of the video signal (for example, Y or U or V) can be seen as a grid of samples arranged at specific intervals with a specific initial offset (often referred to as the phase of the signal). The intervals and offset should be known in order to rebuild a pixel of an image or to change its colourspace. A subsampling scheme is often expressed as a three part ratio J:a:b defining a colour sampling format that describes the number of luminance and chrominance samples in a conceptual region that is J pixels wide, and 2 pixels high. In general, J refers to the horizontal sampling reference (width of the conceptual region usually, 4. a: number of chrominance samples (Cr, Cb) in the first row of J pixels. b: number of (additional) chrominance samples (Cr, Cb) in the second row of J pixels. Some typical YUV sampling schemes include 4:4:4, 4:2:2 and 4:2:0 as illustrated in Figure 1A (i), (ii) and (iii) respectively illustrating the position of luma samples and chroma samples with respect to one another.
In HEVC a luma-based chroma prediction mode may be applied to predict chroma samples from luma samples which have already been reconstructed. In the case of different resolutions of luma and chroma an interpolation process is applied to luma samples to generate interpolated luma samples at the same resolution as the chroma samples to be predicted.
Figure lB illustrates how either U or V channels (left block (i) ) are sampled compared to luma (right block (ii)) and how the borders of the chroma block to be encoded are used: Chroma samples are derived from luma samples based on the following expression which may be considered as a downsampling filter: PredC[x,y]=czRecL'[x,y]+fJ (1) where: RecL [x, y] = (RecL [2x, 2y] + RecL [2x, 2y +1]) >> 1 (2) The">>" symbol represents an arithmetic bitshift to the right -an operation often equivalent to an integer division, and more favourable computational-wise -, and follows the conventions adopted in most coding standards. RecL[.] corresponds to luma samples in the current block which have already been reconstructed and a and I are estimated using neighbouring reconstructed luma and chroma samples.
Prediction input RecL' values are computed from actually decoded R&CL luma values on the borders of the chroma block using the formula (2) considered to be a downsampling filter: The ci and /3 parameters are determined so that they minimize the sum of quadratic errors between the actual chroma values on the borders of the chroma block and chroma sample values Predc[x,y] predicted using formula (1): Once the a and /3 parameters are thus determined, the above formulae (1) and (2) are applied to the decoded luma block corresponding to the chroma block to be encoded in order to generate a prediction block. The residual determined by the difference between the prediction block and the block to be encoded are then encoded using known techniques. Formula (2) for computing the RecL' values uses the natural or "nominal" sampling of chroma as compared to luma with a particular luma downsampling filter.
In its current version, HEVC only addresses the 4:2:0 format, where the resolution of chroma samples is half the resolution of luma samples in both horizontal and vertical dimensions. Because of the different resolutions of luma and chroma, an interpolation process is applied to luma samples to generate interpolated luma samples at the same resolution as the chroma samples to be predicted. However, this process does not take into account the location of the chroma samples in reference to the luma samples position. in addition the process is constrained to the 4:2:0 format and does not consider other possible formats such as 4:2:2 or 4:4:4.
The present invention has been devised to address one or more of the foregoing concerns.
According to a first aspect of the invention there is provided a method of processing colour information in an image, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the at least one first colour component, the method comprising: providing colour information representative of the colour sampling format; determining, based on the provided colour information, a prediction process for predicting samples of the at least one second colour component from samples of the at least one first colour component and performing the determined prediction process on samples of the at least one first colour component to predict samples of the at least one second colour component.
Thus, since the prediction process is performed taking into account the information relating to the colour sampling format, the prediction process in not restricted to any colour sampling format and consequently different colour sampling formats may be processed. In addition, since the prediction of the samples of the second colour component is adapted to information on the colour sampling format for the second colour component, improved prediction of samples of the second colour component may be achieved leading to a potential gain in coding efficiency (improved quality for same bitrate).
The colour information may include positional information defining the position of samples of the second colour component with respect to the position of samples of the first colour component, and/or resolution information defining the sub-sampling ratio of samples of the second colour component with respect to the resolution of samples of the first colour component.
In an embodiment the prediction process comprises a step of interpolating samples of the first colour component.
In an embodiment the step of interpolating generates samples of the first colour component located at the same position as samples of the second colour component based on the information.
In an embodiment the plurality of prediction processes comprises a bilinear filtering process In an embodiment the information is transmitted in a signal carrying a dataset.
In one embodiment the method includes generating at least one filter for performing the prediction process based on the provided information The at least one first colour component may comprise a luma component and the at least one second colour component may comprise chroma components.
The colour information may be estimated based on samples of first and second colour components of a neighbouring block of the image being encoded.
The colour information may further comprise precision data indicating the precision of the positional information.
In a particular embodiment of the invention, for a colour sampling format corresponding to 4:2:0 the prediction process is based on the following expression: = (1 -C)(1 -C)..Rec1,[2x2yj -F -cr). Rec[2x ÷ i,Zyj ÷ (1 -.Rec[2x,2y ÷ I] + RecL[2x+1,2y+l} -where C represents the horizontal phase shift of samples of the at least one second colour component and C represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
In another embodiment of the invention, for a colour sampling format corresponding to 4:2:0, the prediction process depends on the type of samples to be predicted. In figure 1 B, three types of samples can be considered: the inner samples consisting of the 2Nx2N block of luma samples, the top samples, consisting of the outer line of 2N luma samples above the luma block, and the left samples consisting of the outer column of 2N luma samples on the left of the luma block.
In another embodiment of the invention, the prediction process for the top samples when Cx=0 uses the following linear filter: * filter [1] * where the values between [ and] represent the coefficients of the linear filter, leading to the following derivation process of samples ReaL': RecL{2x,2y] RecL[2x,2y] In another embodiment of the invention, the prediction process for the top samples when Cx0 uses the following linear filter: * horizontal filter [114,2/4,1/4] * leading to the following derivation process of samples ReaL': RecL[2x,2y] = ( Rec[2x-l,2y] + 2*RecL[2x,2y] + RecL[2x+l,2y] + 2) >> 2 Where (>> x) represents an integer division by 2X In another embodiment of the invention, the prediction process for the top samples when Cx=0.5 uses the following linear filter: * horizontal filter [1/2,1/2] * leading to the following derivation process of samples ReaL': RecL'[2x,2yJ = ( ReaL [2x,2y] + ReaL [2x+1,2yJ + 1)>> 1 In another embodiment of the invention, the prediction process for the top samples when Cx0.5 uses the following linear filter: * horizontal filter [1/4,1/4,1/4,1/4] * leading to the following derivation process of samples RecL': RecL'[2x,2y1 = (RecL[2x-1,2y1 + RecL[2x,2y] + RecL[2x+1,2yJ + RecL[2x+2,2y] + 2) >> 2 In another embodiment of the invention, the prediction process for the top samples when Cx0.5 uses the following linear filter: * horizontal filter [1/8,3/8,3/8,1/81 * leading to the following derivation process of samples RecL': RecL'[2x, 2y] = (RecL[2x-1, 2y1 + 3*ReCL[2x, 2y] + 3*pecL[2x+12y] + RecL[2x+2,2y] + 4) >> 3 In another embodiment of the invention, the prediction process for the left samples when Cx=0 uses the following linear filter: * filter [1] * leading to the following derivation process of samples RecL': RecL[2x,2y] RecL[2x,2y] In another embodiment of the invention, the prediction process for the left samples when Cx0 uses the following linear filter: * vertical filter [1/4,2/4,1/4] leading to the following derivation process of samples RecL'; ROCL'[2X,2y] = ( Recj2x,2y-l] + 2*ReGL[2x,2y1 + RecL[2x,2y+1] + 2) >> 2 In another embodiment of the invention, the prediction process for the left samples when Cx0.5 uses the following linear filter: * vertical filter [1/2,1/2] * leading to the following derivation process of samples RecL': RecL'[2x, 2yJ = (RecL[2x, 2y] + RecL[2x, 2y+1] + 1)>> 1 In another embodiment of the invention, the prediction process for the left samples when Cx0.5 uses the following linear filter: * vertical filter [1/4,1/4,1/4,1/4] * leading to the following derivation process of samples RecL': RecL'[2x, 2yJ = ( RecL[2x, 2y-lJ ÷ RecL[2x, 2y] + RecL[2x, 2y+1] + RecL[2x,2y+21+ 2) >> 2 in another embodiment of the invention, the prediction process for the left samples when Cx=O.5 uses the following linear filter: * vertical filter [1/8,3/8,3/8,1/8] * leading to the following derivation process of samples RecL': RecL [2x, 2yJ = ( RecL[2x, 2y-11 + 3*RecL[2x, 2y1 + 3*ReCL[2x 2y+lJ ÷ RecL[2x, 2y+2] + 4) >> 3 In another embodiment of the invention, the prediction process for the top samples uses the following different linear filters depending on the value of the couple (Cx,Cy): * when (Cx0, Cy=0) o horizontal filter [1/4,2/4,1/4] o leading to the following derivation process: RecL[2x,2y] = ( Rec[2x-l,2y] + 2*Rect[2x,2y] ÷ Rec[2x+l,2y] + 2) >> 2 * when (Cx0.5, Cy=0) o horizontal filter [1/2,1/2] o leading to the following derivation process: RCCL'[2X,2Y] = ( Recj2x,2y] + RecL[2x+l,2y] + 1)>> 1 * when (Cx=0, Cy=O.5) o horizontal filter [1/4,2/4,1/4] o leading to the following derivation process: ReCL{2x,2y] = (ROCL[2x-l,2y] + 2*ROcL[2x,2y1 + ReCL[2x+l,2y] + 2) >> 2 * when (Cx05, Cy0.5) o horizontal filter [1/4,114,1/4,114] o leading to the following derivation process: RecL [2x, 2yJ = ( RecL[2x-1, 2y] + RecL(2x, 2y] + RecL(2x+1,2y] + RecL[2x+Z2y] + 2) >> 2 In another embodiment of the invention, the prediction process for the left samples uses the following different linear filters depending on the value of the couple (Cx,Cy): * when (Cx0, Cy=0) o vertical filter [1/4,2/4,1/4] o leading to the following derivation process: RSGL{2X,2Y] = (ROCL[2X,2y-l} + 2*RecL[2x,2y] + RCCL[2X,2y+1] + 2) >> 2 * when (Gx=0.5, Cy=0) o verticalfilter[1/4,2/4,1/4] o leading to the following derivation process: RecL{2x,2y] = ( Recj2x,2y-1] + 2*RecL[2x,2y] + RecL[2x,2y+1] + 2) >> 2 * when (Cx=0, CyO.5) o vertical filter [1/2,1/2] o leading to the following derivation process: RecL [2x, 2yJ = ( RecL[2x, 2yJ + RecL[2x, 2y+1J + 1)>> 1 * when (Cx0.5, Cy=0.5) o vertical filter [1/4,1/4,1/4,1/4] o leading to the following derivation process: RecL f2x, 2y] = ( RecL[2x, 2y-1] + RecL[2x, 2y] + RecL[2x,2y+1J + RecL[2x,2y+2] + 2) >> 2 In another embodiment of the invention, the prediction, process for the inner samples uses the following different linear filters depending on the value of the couple (Cx,Cy): * when (Cx=0, Cy=0) o horizontal filter [1/4,2/4,1/4] o leading to the following derivation process: RecL{2x,2y] (RecL[2x-1,2y] + 2*RecL[2x,2y] + RecL[2x+1,2y] + 2) >> 2 * when (Cx=0.5, Cy=0) o horizontal filter [1/2,1/2] o leading to the following derivation process: RCCL{2x,2y] = ( Rec[2x,2y] + RecL[2x+l,2y] + 1)>> 1 * when (Cx0, Cy=O5) o vertical filter [1/2,1/2] o leading to the following derivation process: RecL'[2x,2y] (RecL[2x,2y] + RecL[2x,2y+1] + 1)>> 1 * when (Cx=0.5, Cy=0.5) [1/4,1/4 o 2 dimensional filter I [1/4,1 / 4 o leading to the following derivation process: RecL{2x,2y] = (RecL[2x,2y] + RecL[2x+1,2y] + RecL[2x,2y+1] + RecL[2x+1,2y+l] + 2) >> 2 In another embodiment of the invention, the prediction process for the inner samples when CyO.5 and Cy=0.5 uses the following linear filter: [1/2,0 o 2 dimensional filter I [0,1/2 o leading to the following derivation process: RecL{2x,2y] = (RecL[2x,2y] + RecL[2x+I,2y+I1 + 1)>> 1 In another embodiment of the invention, the prediction process for the inner samples when Cy=0.5 and Cy=0.5 uses the following linear filter: [0,1/2 o 2 dimensional filter I [1/2,0 o leading to the following derivation process: RecL{2x,2y] = (RecL[2x+l,2y] + RecL[2x,2y+l] + 1] + 1)>> 1 In a particular embodiment of the invention, for a colour sampling format corresponding to 4:2:2 the prediction process is based on the following expression: Rec[x,yJ = (1 --c) RecL[2xfry] + -cv). RecL[2x + 1,y] + Rec[2x,y+i] ± RecL[2x±l,y+l] ____________________________________ where C> represents the horizontal phase shift of samples of the at least one second colour component and C represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
In a particular embodiment of the invention, for a colour sampling format corresponding to 4:4:4 the prediction process is based on the following expression: RecL[zy} = (1 --cr). Rec[x,y] + C< .(i-C).RecL[x+1PyJ + (i-C).C.RecL[x,y+1] ± RecL[x±Ly+l] where C represents the horizontal phase shift of samples of the at least one second colour component and C, represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
For example, in the case of a Bayer matrix of pixels the at least one first colour component comprises gi samples and the at least one second colour component comprises g2 samples.
For example the prediction process may be based at least one of the following expressions: Rec2[x,y] = 025 *Rec91[x,y] + 025 * Rec91[x + 1,y] + I 0.25 * Rec91 [x, Y + IL] + 0.25 * Rec91 [x + i, y + i]J Rec[x,y] = 0.25 * Rec91[x,y] + 0.25 *Recq1[x+ 1,'] + -0.25*Rec[x,y-1]+0.25*Rec92[x,y] or ec[x1y] = 025 * Rec91[x,yJ + 025 * Rec91[x,y ± 1] + 0.25 * Recq2[x -i,y} + 0.25 * Rec2[x,y]____ In an embodiment decoded samples of blocks of a previous image in which samples of at least one second colour component are predicted from samples of at least one first colour component are used to determine the prediction process.
In an embodiment block sizes of the image are taken into account in the step of determining the prediction process.
According to a second aspect of the present invention there is provided a method of encoding an image comprising a step of processing colour information in the image in accordance with the first aspect of the invention.
The method may further comprising transmit the colour information in a dataset.
The dataset may be exp-Golomb encoded.
According to a third aspect of the present invention there is provided a method of decoding an image comprising a step of processing colour information in the image in accordance with the first aspect of the invention.
The method may include receiving the colour information in a dataset and exp-Golomb decoding the dataset.
According to a fourth aspect of the invention there is provided a processing device for processing colour information in an image, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the first colour component, the method comprising: retrieval means for receiving colour information representative of the colour sampling format; prediction process determining for determining, based on the provided colour information, a prediction process for predicting samples of the at least one second colour component from samples of the first colour component and prediction process means for performing the determined prediction process on samples of the at least one first colour component to predict samples of the at least one second colour component.
The colour information may include positional information defining the position of samples of the at least one second colour component with respect to the position of samples of the first colour component and/or resolutional information defining the sub-sampling ratio of samples of the at least one second colour component with respect to the resolution of samples of the at least one first colour component.
In an embodiment prediction process means is configured to interpolate samples of the first colour component.
In an embodiment the prediction process means is configured to interpolate samples of the first colour component to generate samples of the at least one first colour component located at the same position as samples of the at least one second colour component based on the colour information.
In an embodiment the prediction process is configured to perform a bilinear filtering process In an embodiment the prediction process determining means is configured to derive at least one filter for performing the prediction process based on the provided colour information In an embodiment the at least one first colour component comprises a luma component (Y) and the at least one second colour component comprises chroma components (UV).
In an embodiment colour information determining means are provided for estimating the colour information based on samples of first and second colour components of a block of the image being encoded.
In an embodiment the colour information further comprises precision data indicating the precision of the positional information.
For example, for a colour sampling format corresponding to 4:2:0 the prediction process determining means is configured to determine a prediction process is based on the following expression: Rec[x,y1 = (1 -CJ. (1 -cv). Rect2x, 2yJ + (i-C).Recj2x+112y} + (1 -ç)C J?ec[2x2y + 1] + Rec[2x+l12y+l] -------where C< represents the horizontal phase shift of samples of the at least one second colour component and C, represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
In another example for a colour sampling format corresponding to 4:2:2 the prediction process determining means is configured to determine a prediction process based on the following expression: Rec[xyj = (1 + C1.(1-Cy)J?ecL[2x+Ly} + (1-C1).C Rec[2x,y+l] + Rec[2x+Ly+l] --where C represents the horizontal phase shift of samples of the at least one second colour component and C, represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
In yet another example for a colour sampling format corresponding to 4:4:4 the prediction process determining means is configured to determine a prediction process based on the following expression: Recflzy] = (1 -C).(i -cr). Rec[x,y] + (1-CJRecL{x+ty} + (1 -CJ.Cy,Rec[xy+1j ÷ C3, RecL[x+Ly+l] ________________________________ where C> represents the horizontal phase shift of samples of the at least one second colour component and C, represents the vertical phase shift of samples of the at least one second colour component with respect to samples of the at least one first colour component.
A fifth aspect provides an encoder for encoding an image comprising a processing device in accordance with the fourth aspect of the invention.
The encoder may be associated with transmission means for transmitting the colour information in a dataset.
In a particular embodiment the encoder is configured to exp-Golomb encode the dataset.
A sixth aspect of the invention provides a decoder for decoding an image comprising a processing device in accordance with the device of the fourth aspect of the invention.
At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit", "module" or "system". Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which:-Figure 1A schematically illustrates examples of YUV sampling schemes which may be applied in the context of embodiments of the invention; Figure lB schematically illustrates examples of sampling of luma samples and chroma samples which may be applied in the context of embodiments of the invention; Figure 2 is a schematic diagram of a data communication network in which one or more embodiments of the invention may be implemented; Figure 3 schematically illustrates examples of predictions filters and corresponding sampling schemes in accordance with an embodiment of the invention; Figure 4 is an example of a dataset including chroma information for determining prediction filters in accordance with an embodiment of the invention; Figure 5 is another example of a dataset including chroma information for determining prediction filters in accordance with a further embodiment of the invention and a generic expression for determining a prediction filter; Figure 6 is a flow chart illustrating steps of a method for determining a prediction fitter for a colour sampling format in accordance with an embodiment of the invention; Figure 7 is a flow chart illustrating steps of a method for determining a prediction filter for a colour sampling format in accordance with an embodiment of the invention; and Figure 8 is a block diagram of an encoding device or a decoding device in which embodiments of the invention may be implemented.
Figure 2 illustrates a data communication system in which one or more embodiments of the invention may be implemented. Although a streaming scenario is considered here, the data communication can be performed using for example a media storage device such as an optical disc. The data communication system comprises a transmission device, in this case a server 101, which is operable to transmit data packets of a data stream to a receiving device, in this case a client terminal 102, via a data communication network 100. The data communication network 100 may be a Wide Area Network (WAN) or a Local Area Network (LAN). Such a network may be for example a wireless network (Wifi I 802.lla or b or g), an Ethernet network, an Internet network or a mixed network composed of several different networks. In a particular embodiment of the invention the data communication system may be a digital television broadcast system in which the server 101 sends the same data content to multiple clients.
The data stream 104 provided by the server 101 may be composed of multimedia data representing video and audio data. Audio and video data streams may, in some embodiments of the invention, be captured by the server 101 using a microphone and a camera respectively. In some embodiments data streams may be stored on the server 101 or received by the server 101 from another data provider, or generated at the server 101. The server 101 is provided with an encoder for encoding video and audio streams in particular f to provide a compressed bitstream for transmission that is a more compact representation of the data presented as input to the encoder.
In order to obtain a better ratio of the quality of transmitted data to quantity of transmitted data, the compression of the video data may be for example in accordance with the HEVC format or H.264/AVC format.
The client 102 receives the transmitted bitstream and decodes the reconstructed bitstream to reproduce video images on a display device and the audio data by a loud speaker.
In one or more embodiments of the invention a video image is transmitted with a brightness component (lumina) and two colour components (chroma). The digital representation of the video signal thus includes a luma signal (Y), representative of brightness, and colour difference (or chroma) signals Cb (blue-Y) and Cr (red-Y). When referring to digital video, the term "YUV" is equivalent to "YCbCr". Colour sampling formats for these three colour components can include several forms in terms of spatial down-sampling, also referred to as subsampling of the chroma. Such colour formats include 4:4:4, 4:2:2 and 4:2:0 as described above and illustrated in Figure 1A. It will be appreciated that while the detailed examples related to a YUV model the invention is not limited thereto, and may be applied to other models such as a RGB, or for encoding any image composed of several colour components, at least one colour component being considered as a reference colour component, the other colour components being dependently coded based on this reference colour component.
in a first embodiment of the invention a luma-based chroma prediction mode in accordance with HEVC techniques may be applied to predict chroma samples from luma samples which have already been reconstructed. In the case of different resolutions of luma and chroma an interpolation process is applied to luma samples to generate interpolated luma samples at the same resolution as the chroma samples to be predicted.
Chroma samples are derived from luma samples based on expression (1) which may be considered as a downsampling filter: PredC[x,yJ=aRecL [x,yJ+/J (1) In the first embodiment of the invention bilinear filtering, may be used as the prediction process for deriving the chroma samples from the luma samples.
Figure 3 illustrates how such filters are determined from chroma horizontal and vertical phase values Cx and Cy for YUV colourspaces where Cx is based on chroma_phase_x defining the horizontal phase shift of the chroma components in units of half luma sample positions of a frame (possible values of 0,1, or 2 for chroma_phase_x), and Cy is based on chroma_phase_y defining the vertical phase shift of the chroma components in units of half luma sample positions of a frame (possible values of 0,1, or 2 for chromaphasQy). The weights of each luma sample in the output RecL' value are based on their distance to the corresponding interpolated chroma sample. Note that positions in units of half luma sample positions are considered. Higher precision can be used, for instance 114th or 1i8 luma sample positions. If the desired precision is 1/N, N being an integer greater to or equal to 1, Cx and Cy usually vary from 0 to 1 in steps of 1/N.
In the case of chroma sample prediction process for a 4:2:0 colour sampling format, bi-linear interpolation is used in accordance with the following expression: ReCL[x,y] = (1 --cJ. Rec[2x,2y] + (i-C).Rec[2x+12y] + (1 -C).C Rec[2r,2y+1] ÷ Cx.C,,. RECL(2X + Jy} (4) In a nominal case for example C0 and C,0.5.
In the case of chroma sample prediction process for a 4:2:2 format bi-linear interpolation is used in accordance with the following expression: Rec[x!yj = (1 -C)(i -Cr). Recj2x,y] ± Cx.(iCy);RCCt[2X+1Y11 + (1 Cx).Cy.Rec[2x,y+l} + Rec[2x+i,y+iJ In the case of chroma prediction process for a 4:4:4 format bi-linear interpolation is used in accordance with the following expression: Rec[xy] = (1 --cr). Rec[x,y] + (i-C).Recjx±1y] + (1-C).C,Rec[zy+l] + Rec[x±1y+ij 6 where RecL[.] corresponds to luma samples in the current block which have already been reconstructed and the RecL' is used in the prediction process of expression (1).
Expressions (4) to (6) may be represented by the following generic formula: M. N = akl(cx,cy).Rect[rrx + k,r.y k M11 N1 (7) where c,cre present the horizontal and vertical chroma phases respectively and represent the horizontal and vertical sampling ratio luma/chroma respectively. The M1/M2 and N1/N2 correspond to the horizontal and vertical support of the filter. The filter is therefore of horizontal size (M2-M1) and vertical size (N2-N1). This entails that specific handling of corner cases occurs, such as unavailability of samples on the borders of the image by e.g. mirroring border samples.
In some embodiments for instance in the case of a Bayer matrix of pixels, gi and g2 which come from the same component may have a phase shift. As a consequence, it may be considered that gi and g2 form 2 different components.
in that case, one can imagine that g2 is predicted from gi. In addition, due to this phase shift, the components r and b can be predicted from gi and g2.
In Figure 3 the lower examples (iv) to (vi) represent specific cases for a Bayer-like ROB colour space. Such image-representative data is the typical output of some CCD devices. As seen above, four components are considered: r, gI, g2, b. The r,gl,g2,b " colour components planes" are naturally interleaved into a single 2D array as a single plane and each have specific sampling and phase.
In a particular embodiment of the invention, bilinear filtering is used, and thus the filter for g2 relies on the neighbouring gi values. For r and b colour components, the filter is rather specific, as it is diamond-shaped, but again the weights (filter coefficients) are directly derived from the distances of the input samples. In the latter case, r and b colour components are dependent on the two reference colour components gi and g2.
For exemplary oases (iv) to (vi) of a Bayer like RGB colour space the prediction process is based on the following expressions respectively: Rec2[x,y] = 0.25 * Rec91[x,yI + 0.25 *Recqi[x+ 0.25*Recqi[x,y+11+0*25*Recgi[x+LY+l] I; Rec[x,y} = 0.25 * Rec91[x,y] + 0.25 * Rec1[x ± i,y] + * Rec92{x,y T}1 + 0.25 *RCcg2[X;YI 5;and Rec[x,yj = 0.25 * Recq1[x,y] + 0.25 * Rec91[x,y + 11 + 0.25 * Rec92[x -1,y] + 0.25 * Rec92[zy] As will become clear in what follows the chroma information including chroma phase parameters for determining the prediction process for predicting chroma samples can be explicitly coded in the bitstream, possibly at different syntax levels (sequence, picture, slide). In another embodiment, these data are not explicitly coded but inferred from already coded Y, U and V data. One particular case consists of estimating at the encoder and decoder sides the chronia phase parameters based on the neighbouring Y, U and V samples of the current block to be processed. For instance, in the case of a bilinear modelling as depicted in figure 3, the chrorna phase parameters Cx and Cy can be evaluated so as to minimize the following criterion: Mm E(Recc [x, y]-ctRecL x, y}+ fl)2 (9) Gx Cy (x,y)eV knowing that ReCL [x, y] = (1-Cx).(l -Cy).RecL [rx.x, r2.y]-Cx.(1 -Cy).RecL [r.x +1, ç .y} (10) -(1-Cx).Cy.RecL [rx.x, ry.y + i]-Cx.Cy.RecL [rx.x + i, r. +1] with V being a pre-defined set of neighbouring samples positions around the block to be processed, RecC[x,y] and RecL[x,y] being the reconstructed chroma and luma samples respectively at position (x,y). This avoids an explicit signalling of the chroma information, and provides potential coding efficiency gains.
Chroma information providing chroma sampling and/or phase parameters which are used for determining the prediction filters may be signalled in the bitstream.
For example, the chroma information may be signalled in a sequence parameter set as illustrated in Figure 4. For example the sequence parameter set may include a chroma_phase_x parameter defining the horizontal phase shift of the chroma samples in units of half luma samples of a frame and a chromaphase_y parameter defining the vertical phase shift of the chroma samples in units of half luma samples of a frame.
Information included in the sequence parameter set includes: seq_parameter_setjlata() which corresponds to a specification of how to write/parse the specific "Sequence Parameter Set" (SPS) element, which conveys data relevant to the whole video sequence; elements such as profile_idc, constraint etfiag, etc., which are syntax elements typically included in said SPS data; For example profile_idc in particular is defined in Annex A of the H.264 norm but may be considered as a generic information about tools used when encoding in any format.
The "descriptor" information provided in the third column specifies how to encode/decode the information for the bitstream: * u(v) indicates an unsigned integer binary-coded syntax element * ue(v) indicates an unsigned integer Exp-Golomb-coded syntax element with the left bit first * has_chroma_sampling(prOfile_idc) is a simple function returning whether the bitstream has chroma data and/or uses information needed at this point In embodiments of the invention the H.264 syntax is modified to include in addition to the chromajormat_idc syntax element, further syntax elements providing information about the chroma sampling and phase.
In a particular embodiment of the invention the signalled chroma information incudes: -chroma_phase_bits indicating the precision of the chroma sample phases to be used in the prediction process. This value is Exp-Golomb coded.
-chroma_phase_x and chroma_phase_y values indicating respecflvely the horizontal and vertical phases of the chroma samples. These values are also Exp-Golomb encoded Typically, the chroma_phase_bits will be set to 1. A typical implementation will probably set it to less or equal to 4 for 12 bits samples and 8 for 8 bits samples.
This enables the downsampling filter to use optimized integer computations on 16 bits, which are a frequent commodity on real hardware architectures.
In addition, depending on the value of chroma_format_idc the chromQ..phaSe_bitS may be implicit and thus may not need to be transmitted.
The chroma phases then typically take the values 0, 1 or 2, and more generally, up to 2chroma_Phase_bitS Again depending on the chroma_format_idc, it may not be necessary to transmit chroma_phase_x or chroma_phase_y; For example if chroma_formatjdc indicates YUV 4:2:2, then chroma_phase_y is not necessary. This can be further seen from the following derived values: 2 = chroma_phase_x,i 2chroma_phase_bits C = chroma_phase_y / 2chroma_pha$e_bit$ As mentioned before, the actual signalling for the chroma information may use a different shape, or may even be present at lower signalling levels, for example at the frame level (inside a Picture Parameter Set) or at the slice level (inside a slice header or other constructions referring to this level).
Referring now to Figure 5, a generic expression for determining the filtering process used to predict chroma samples from luma samples may be provided: *12 N2 RecL[x, y] = a1 JRecL [r.x + i, ç .y + j] 1=-U1 j--N1 (11) where: -r and r1 respectively stand for the horizontal and vertical sampling ratio of the channel being predicted, and are potentially derived from information available through other syntax elements; -M1 and M2 denote the horizontal support for the filter, which thus may be of any type, not simply symmetrical or bilinear; -N1 and N2 denote the vertical support for the filter.
The M1 /M2 and N1 IN2 values may be transmitted with the previously described chroma_phasx and chroma_phase_y values, or may be implicit (for this specific example, they are, respectively 0 and 1).
The au values may either be immediately derived from the known phases of the predicted signals and the M1 I1J12 and N1 IN2 values, or determined through a process which will be described in what follows, and thus explicitly transmitted.
This can be useful if the currentltypical filter for the nominal chroma position is somewhat suboptimal.
in Figure 4, the real number of coefficients and their values were signalled, but it will be appreciated by the person skilled in the art that according to the actual filter shape and properties (e.g. symmetry, expected sum of the coefficients, ), the real values may be derived from what is transmitted. For instance, in the case of symmetric filters, only half on the filter coefficients need to be transmitted. The other half part of the filter can then be deduced as the symmetrical of the coded coefficients filter. Similarly, if a separable filter is used, only a one dimensional filter has to be transmitted, not a bi-dimensional one. in addition, the number of bits of each coefficient may not need to be transmitted.
The newly introduced syntax elements are: -chroma_num_coe ifs for the number of coefficients (or data allowing the number of coefficients to be deduced); -chroma_num_coeffs[iLx coefficients (or data allowing this value to be rederived) It may be noted that no information about the expected precision of the coefficient information is transmitted. However such information may be explicit or implicit (for example, depending on the number of coefficients, or as previously described based on implementation considerations).
A mathematical justification for determining a filter at the encoder will now be presented. For all pixels of position (x,y) in a given block b, The lunia-based chroma prediction (hereafter LM) mode computes the following prediction values: C[x,y]=abRecL[x,y]+/3,, (12) The objective is to determine how L'[x,yJ-RecL[x,yJ is computed from the actual luma sample values L[x,y]RecL[x,yj For this, it may be considered that, if there is a good match between that prediction and the actual chroma value (and thus the LM mode is/would be selected among different possible competing coding modes to predict the chroma samples), and for ctb!=O we should obtain for the given block b: (13) This is the basis for our determination of the values enabling ReCL' to be computed from the actual sample values. For all blocks where the LM mode was or "would be" used, the optimal ab, fib parameters may be found over the whole block b (and not just its borders as described above. Consider the following formula previously introduced: ak,L[rX.x+k,rY.y+l} (14) k-M, fr-N, The goal of finding optimal coefficients an,, is to minimize the quadratic error between the (C[x,y]-/3b)/ceb values and those L[x,yJ values over a particular set of bbcks using LM mode: 1(c[ ] ) M N L Xj' -b - akIL[r.x+krV.Y+lIJ (15) beblocks (x y)cb ab k M1 1 N1 The typical solution to this problem is to consider the solution where each partial derivate for an ak,! element equals 0, i.e: VIE f-M1,M2JVJE-N1,N2J C[x]-i) M Nz (16) H _2Lk.x+iry.y+j]x[ Y b__ akIL[r5.x+krrY+l]J=o bcblocks ( v)b a5 k Al1 1 N After moving the summations around, this is equivalent to: Vi[-Mi,M21Vj e[-N1,N2}.
akl[ EL{rs.x+krY.Y+1TL[rx.x+4rY.Y+f]] k=-M'1 1=-N1 beblocks (x,y)b beblocks (x,y)cb ab (17) It can be noted: Vb e blocks, Vi E [-M1, M7 1 Vj [-N1, N2 1 Vk E [-M1, M2 1 Vl [-N, N2] = with Bb,Jk/ = EL[r5.x+k,r.y+1IL[T5.x+i,r.y+j] beblocks (x,y)eb = with Db11 = L[rs.x+i,ry.y+j][X beblocks (x,y)eb ceb (18) In order to finally more clearly expose the statistics to accumulate: Vie[-M1,M21V1e[--N11N71 = (19) Ir--M1 1=-N1 beblocks This leads to a symmetrical equation system of size (M1+M2)x(N1+N2), which may be solved using a classical Gauss method.
Determining the prediction process may be performed as follows: -On every frame or periodically (for rate-distortion optimization and for example transmission in a picture parameter set); -On the first frame (if we assume a fixed filter and for example, transmission in a sequence parameter set); -After encoding of at least one previous image, using the decoded samples of the blocks where the LM mode was used, so as to perform the determination for the current image to be encoded; -A priori, e.g. by checking all NxN original blocks, having a criterion (e.g. performing a LM prediction on them and rejecting the blocks whose prediction is too far off from the original block) to only select some of them, this over a particular number of frames (potentially 1); this will be further described in what follows.
Any of the above can be applied taking into account some properties of the blocks, e.g. by considering the different block sizes, as a block can be effectively coded as 4x4, 8x8 and 16x16. In that case, different luma filter shapes (e.g. 3x3 for a 4x4 block, and 2x2 for others) can be used in function of these properties. This is particularly worthwhile if the different set of blocks have specific properties, but requires supplementary transmission and determination process.
In any case, this figure should be read with blocks being the blocks selected for analysis, e.g. in one of the above cases. Other cases can be accordingly derived.
Figure 6 is a flow chart illustrating determination of a prediction process for predicting chroma samples from Iuma samples of an image according to an embodiment of the invention. In the case where the blocks used for the determination process are already encoded, this process can happen on the fly, i.e. as soon as a block is actually coded or one or more images have been encoded.
The process starts at step 100 by initializing the statistics gathering on blocks with a first LM-encoded block. Then, in step 101 the ceb and fib parameters of the LM mode are computed on current block b, using the original luma and chroma signals rather than using the decoded signals. The cib and fib values are then validated in step 102, in particular by checking if the value ab falls below a threshold s indicating low impact of the luma values. The choice of c is somewhat arbitrary, typically the inverse of the maximal component sample value (e.g. 1/255), as it means the luma value only affects the final chroma prediction value by at most 1. If it is thus determined that block b is not part of the statistics to accumulate, the whole processing proceeds to step 113.
Once values ctb and f-lb have been validated, the process can continue to step 103. In this step the statistics gathering over the block b is initialized by using the first set of variables (J) for the partial derivatives (i.e. i=-M1 and j=-Ni).
Step 104 initializes the statistic gathering over block b for the current By and D11 accumulators over all the (k,I) sets (i.e. k=-M1 and 1=-N1). It may be noted that the implementation can account for the very high values that the By and D11 accumulators can reach, as in particular they may not fit on the traditional integer with 32 bits of dynamics. The B,y,kj term can now be computed in step 105 according the previous formula, and added to the By accumulator in step 106. In a similar fashion, the Db,y,k,I term is computed in step 107 and added to the Dy accumulator in step 108.
A first test is performed in step 109 to verify whether this was the last (k,1) set for this b block (i.e. k!=M2 and I!=N2). If no, the statistic gathering for current (ij) set can continue to step 110 by selecting the next (k,I) set (i.e. incrementing I, and if I>N2, increment k and have 10), then returning to step 105.
Otherwise, the statistics for set (4j) over block b have finished being accumulated, and step 111 checks whether this was the last (4j) set (i.e. I and j differ respectively from M2 and N2). If no, the statistic gathering over current block can continue to step 112 by selecting the next (4]) set (i.e. incrementing], and if j>N2, increment iand reset j=O), then going back to step 104.
If block b has finished being processed, step 113 occurs in which it is validated: whether or not block b is the last block. If it is not the last block, step 114 selects the next LM-coded block and returns to step 101. Otherwise, the statistics gathering over the current set (whether a frame or any group of frames) of blocks has been completed, and the a,j parameters can be evaluated in step 115.
As described previously, this evaluation involves a typical equation system solving, most typically the Gauss pivot method for matrix inversion or any other method that could account for numerical stability problems, fast solution (due to the symmetric nature of the matrix) or non-unique solution. In any case, step 116 checks whether a solution has been found: if not, the process ends at step 119. Otherwise, in step 117, the a1,1 values are updated according to their representation in Figure 5: in particular this may require some rounding in a process known as fixed point computation, for example by applying: Vi [-M1, M2 1 Vf [-N1, N2 1 A, = La1,1 x 2cluomtphaseblts j With Lxi computing the nearest integer value of x. As such the computation of L' is modified as: L' [x, ] = [2chromahasebits1 + .x +1, r.y + i]J >> chromaphase_bits i=-M1 j=-N1 The values are then transmitted during step 118, for instance according to Figure 3, and the process ends at step 119.
Figure 7 is a flow chart illustrating the determination of a prediction process for predicting chroma samples from luma samples of an image according to a further embodiment of the invention. In this embodiment, the determination can be performed offline, i.e. potentially prior to an encoding process rather than during an encoding process.
In step 200, the determination process is initialized with the first block of the first image (which may in some examples be the only block on which a determination process is performed). During step 201, parameters ao and fib are then computed for the whole current block b, as previously explained and as performed in the method of Figure 6. Similarly to step 102 of Figure 6, if in step 202 the values of parameters ceb and fib do not appear to be relevant, the process skips directly to step 207.
The next step involves determining whether current block is useful to the determination of the aj values, based on some criterion. As such, steps 203- 205 can be seen as a particular embodiment of applying such a criterion.
Therefore, in step 203 the whole luma-based chroma prediction for the current block b can be computed by virtue of the computed rib and fib parameters. Then on step 204, the distortion between this prediction and current block is determined, for example by taking the sum of squared differences between collocated pixels in the blocks. Finally, steps 205 compares said distortion to a threshold, which may be tuned. The threshold should be low enough to reject mostly blocks where the LM mode would not be used. if the block is rejected under such criterion, processing continues with step 207, otherwise step 206 is selected.
Step 206 is a "black-box" process corresponding to step 103-112 of Figure 6: the accumulators previously described are updated. Once this process is performed it is checked in step 207 whether or not block b is the last block of the set to be processed (i.e. the last block in the last of the frames to be analyzed). if it is not the last block, the next block is selected in step 208. If the last block has been encountered, the process finishes with step 209, corresponding to steps 115-118 of Figure 6.
Figure 8 illustrates a block diagram of a receiving device such as client terminal 102 of Figure 1 or transmitting device, such as server 101 of Figure 1 which may be adapted to implement embodiments of the invention.
The device 800 comprises a central processing unit (CPU) 801 capable of executing instructions from program ROM 803 on powering up of the device 800, and instructions relating to a software application from a main memory 802 after powering up of the device 800. The main memory 802 may be for example of a Random Access Memory (RAM) type which functions as a working area of the CPU 801, and the memory capacity thereof can be expanded by an optional RAM connected to an expansion port (not illustrated). Instructions relating to the software application may be loaded into the main memory 802 from a hard-disc (HD) 806 or the program ROM 803 for example. Such a software application, when executed by the CPU 801, causes the steps of the method of embodiments of the invention to be performed on the device.
The device 800 further includes a network interface 804 enabling connection of the device 800 to the communication network. The software application when executed by the CPU is adapted to receive data streams through the network interface 804 from other devices connected to the communication network in the case of a receiving device and to transmit data streams through the network interface 804 in the case of a transmitting device.
The device 800 further comprises a user interface 805 to display information to, and/or receive inputs from a user.
Accordingly as hereinbefore described various embodiments of invention involve providing colour information representative of the colour sampling format of an image, such as chroma information and determining the bilinear luma filters to predict chroma samples from luma samples based on the chroma information. The chroma information may include positional information defining the position of samples of the chroma colour component with respect to the position of samples of the Iuma component (chroma phase data), and resolutional information defining the sub-sampling ratio of samples of the chroma component with respect to the resolution of samples of the luma component. In some embodiments the chroma information is signalled, for example in a Sequence parameter dataset, or may be estimated at the encoder and/or decoder side. Further information on the way the chroma samples have been originally generated can also be considered (e.g. sub-sampling filters).
This information is either explicitly signalled in the bitstream or estimated both at the encoder and decoder sides.
In embodiments of the invention interpolation process of the luma samples is modified so that the chroma information is used. ln a preferred implementation, the interpolated process generates luma samples located at the same position as the chroma samples to be predicted.
Accordingly embodiments of the invention provide a generic luma-samples interpolation process that enables any chroma format to be dealt with. In addition the proposed solution offers potential gain in coding efficiency (improved quality for same bitrate).
Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.

Claims (53)

  1. CLAIMS1. A method of processing colour information of an image, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the at least one first colour component, the method comprising: providing colour information representative of the colour sampling format; determining, based on the provided colour information, a prediction process for predicting samples of the at least one second colour component from samples of the at least one first colour component; and performing the determined prediction process on samples of the at least one first colour component to predict samples of the at least one second colour component.
  2. 2. A method according to claim 1, wherein the colour information includes positional information defining the position of samples of the at least one second colour component with respect to the position of samples of the at least one first colour component.
  3. 3. A method according to claim 1 or 2, wherein the colour information includes resolution information defining the sub-sampling ratio of samples of the at least one second colour component with respect to the resolution of samples of the at least one first colour component.
  4. 4. A method according to any preceding claim wherein the prediction process comprises a step of interpolating samples of the at least one first colour component.
  5. 5. A method according to claim 4 wherein the step of interpolating generates samples of the at least one first colour component located at the same position as samples of the at least one second colour component based on the colour information.
  6. 6. A method according to any preceding claim wherein the prediction process comprises a bilinear filtering process.
  7. 7. A method according to any preceding claim comprising deriving at least one filter for performing the prediction process based on the provided colour information.
  8. 8. A method according to any preceding claim wherein the at least one first colour component comprises a luma component and the at least one second colour component comprises chroma components.
  9. 9. A method according to any preceding claim wherein the colour information is estimated based on samples of first and second colour components of a neighbouring block of the image being encoded.
  10. 10. A method according to any one of claims 2 to 9 wherein the colour information further comprises precision data indicating the precision of the positional information.
  11. 11. A method according to any one of claims 8 to 10 wherein for a colour sampling format corresponding to 4:2:0 the prediction process is based on the following expression: RecL[xyi (1 -C)(i -c).Rec[2x2yj + (1-CV).RecL[2x+1)2yJ + (1 -C).C.Rec[2z2y+1] + RecL[2x+12y+1] -where C< represents a horizontal phase shift of chroma samples with respect to luma samples and C,, represents a vertical phase shift of chroma samples with respect to luma samples.
  12. 12. A method according to any one of claims 8 to 11 wherein for a colour sampling format corresponding to 4:2:2 the prediction process is based on the following expression: Rec{zy} = (1 -C).(1 -cr). RCCL[2x,y} + -Cv). Rec[2x + 1,yj + Rec[2x,y+1] + Rec[2x+Ly+l] __________________________________ where C represents a horizontal phase shift of chroma samples with respect to luma samples and C, represents a vertical phase shift of chroma samples with respect to luma samples.
  13. 13. A method according to any one of claims 8 to 12 wherein for a colour sampling format corresponding to 4:4:4 the prediction process is based on the following expression: RecL [x, yJ = (1 -C).(1 -cr). RECL[X,Y} + C.(1-CjRec[x+1y} + (iCx).Cy *Rec[x,y+1j + Rec[x+Ly+l] where C represents a horizontal phase shift of chroma samples with respect to luma samples and C, represents a vertical phase shift of chroma samples with respect to luma samples.
  14. 14. A method according to any one of claims 1 to 7 wherein in the case of a Bayer matrix of pixels the at least one first colour component comprises gi samples and the at least one second colour component comprises g2 samples
  15. 15. A method according to claim 14 wherein the prediction process is based on at least one of the following expressions: R2[x,y} = 0.25 *Rec91[x,y]+ 0.25 * Rec9i[x+ 1,yJ + 0.25 *Rec91[x,y+ Ij + 0.25 * Recq1[x+ Ly+ 1] Rec.[x,yj 0.25 *Rec91[x,y] + 025 *Recqi[x+ i,y] + 0.25 * Rec92[xy-1] + 0.25 * Rec,q2[x,y] or Rec[x,y] = 0.25 * Recq1[x,y] + 0.25 * Rec91[x,y + 1] + 0.25 * Recq2[x -1,y] + 0.25 * Rec1g[x,y]
  16. 16. A method according to any preceding claim wherein decoded samples of blocks of a previous image in which samples of at least one second colour component are predicted from samples of at least one first colour component are used to determine the prediction process in a current image.
  17. 17. A method according to any preceding claim wherein block properties in particular block sizes of the image are taken into account in the step of determining the prediction process.
  18. 18. A method of encoding an image comprising a step of processing colour information in accordance with the method of any one of claims I to 17.
  19. 19. A method according to claim 18 further comprising transmitting the colour information in a dataset.
  20. 20. A method according to claim 19 wherein the dataset is exp-Golomb encoded.
  21. 21. A method of decoding an image comprising a step of processing colour information in accordance with the method of any one of claims I to 17.
  22. 22. A method of decoding an image according to claim 21 further comprising receiving the colour information in a dataset and exp-Golomb decoding the dataset.
  23. 23. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims I to 22 when loaded into and executed by the programmable apparatus.
  24. 24. A computer-readable storage medium storing instructions of a computer program for implementing a method, according to any one of claims I to 22.
  25. 25. A processing device for processing colour information in an image, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the at least one first colour component, the method comprising: retrieval means for receiving colour information representative of the colour sampling format; prediction process determining means for determining, based on the provided colour information, a prediction process for predicting samples of the at least one second colour component from samples of the at least one first colour component and prediction process means for performing the determined prediction process on samples of the at least one first colour component to predict samples of the at least one second colour component.
  26. 26. A device according to claim 25, wherein the colour information includes positional information defining the position of samples of the at least one second colour component with respect to the position of samples of the at least one first colour component.
  27. 27. A device according to claim 25 or 26, wherein the colour information includes resolutional information defining the sub-sampling ratio of samples of the at least one second colour component with respect to the resolution of samples of the at least one first colour component.
  28. 28. A device according to any one of claims 25 to 27 wherein the prediction process means is configured to interpolate samples of the at least one first colour component.
  29. 29. A device according to claim 28 wherein the prediction process means is configured to interpolate samples of the at least one first colour component to generate samples of the at least one first colour component located at the same position as samples of the at least one second colour component based on the colour information.
  30. 30. A device according to any one of claims 25 to 29, wherein the prediction process is configured to perform a bilinear filtering process
  31. 31. A device according to any one of claims 25 to 30 wherein the prediction process determining means is configured to derive at least one filter for performing the prediction process based on the provided colour information
  32. 32. A device according to any one of claims 25 to 31 wherein the at least one first colour component comprises a luma component and the at least one second colour component comprises chroma components.
  33. 33. A device according to any one of claims 25 to 32 further comprising colour information determining means for estimating the colour information based on samples of first and second colour components of a block of the image being encoded.
  34. 34. A device according to any one of claims 25 to 33 wherein the colour information further comprises precision data indicating the precision of the positional information.
  35. 35. A device according to any one of claims 32 to 34 wherein for a colour sampling format corresponding to 4:2:0 the prediction process determining means is configured to determine a prediction process is based on the following expression: Rec[x,y] = (1 --Cr). Rec[2x, 2yj + *(1-C3).Rec[2x-i-L2y1 + (1 -CX).Cy *RecL[2xft2y + Ii + RCcL[2x+1,2y+l] -where C represents a horizontal phase shift of chroma samples with respect to luma samples and C, represents a vertical phase shift of chroma samples with respect to luma samples.
  36. 36. A device according to any one of claims 32 to 35 wherein for a colour sampling format corresponding to 4:2:2 the prediction process determining means is configured to determine a prediction process based on the following expression: RecL [x, >1] = (1 --cr). Rec[2zyJ + c.(i -C) Rec[2x ÷ Lyj ÷ (1-.RecL[2xy+i] + Rec[2x+l,y+lJ where C represents a horizontal phase shift of chroma samples with respect to luma samples and C, represents a vertical phase shift of chroma samples with respect to luma samples.
  37. 37. A device according to any one of claims 32 to 36 wherein for a colour sampling format corresponding to 4:4:4 the prediction process determining means is configured to determine a prediction process based on the following expression: Rec[xy] = (1 --cr). Rec[x,yJ + -(:). Rec[x + Ly] + (1 -CX)CY *Rec[x,y ± 1] ÷ *Rec[x±l,y+l] ----where C represents a horizontal phase shift of chroma samples with respect to luma samples and C,, represents a vertical phase shift of chroma samples with respect to luma samples.
  38. 38. A device according to any one of claims 25 to 31 wherein in the case of a Bayer matrix of pixels the at least one first colour component comprises gi samples and the at least one second colour component comprises g2 samples.
  39. 39. A device according to claim 38 wherein the prediction process is based on at least one of the following expressions: Rec2[x,y] = 0.25 * Recq1[x,y] + 0.25 * Rec91[x + 1,y] + I -0.25*ReCq1[x,y+1]±025*ReCqi[x+Ly+h]J Rec[x,y] = 0.25 * Rec91[x,y] + 0.25 * Rec1[x + 1,y] + 0.25 * Rec92[x,y -1] + 0.25 * Recq2[x,y] or ec[x,y] = 015 * Recgi[x;yjE + 025 * Rec91[x,y + 1] + * Rec92[x -L1 + 025 RecgjyJ
  40. 40. A device according to any one of claims 25 to 39 wherein decoded samples of blocks of a previous image in which samples of at least one second colour component are predicted from samples of at least one first colour component are used to determine the prediction process for the current image.
  41. 41. A device according to any one of claims 25 to 40 wherein block sizes of the image are taken into account in the step of determining the prediction process.
  42. 42. An encoder for encoding an image comprising a processing device in accordance with any one of claims 25 to 41.
  43. 43. A device according to claim 42 further comprising transmission means for transmitting the colour information in a dataset.
  44. 44. A device according to claim 43 configured to exp-Golomb encode the dataset.
  45. 45. A decoder for decoding an image comprising a processing device in accordance with the device of any one of claims 25 to 41.
  46. 46. A decoder according to claim 45 configured to exp-Golomb decode a dataset including the colour information.
  47. 47. A signal carrying an information dataset for an image represented by a video bitstream, the image being composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the at least one first colour component, the information dataset comprising: colour information representative of the colour sampling format to be used for determining a prediction process for predicting samples of the at least one second colour component from samples of the at least one first colour component.
  48. 48. A signal according to claim 47, wherein the colour information includes positional information defining the position of samples of the at least one second colour component with respect to the position of samples of the at least one first colour component.
  49. 49. A signal according to claim 47 or 48, wherein the colour information includes resolution information defining the sub-sampling ratio of samples of the at least one second colour component with respect to the resolution of samples of the at least one first colour component.
  50. 50. A signal according to any one of claims 47 to 49 further including precision data indicating the precision of the colour information.
  51. 51. A video bitstream representative of an image composed of at least one first colour component and at least one second colour component, wherein samples of the at least one first colour component and of the at least one second colour component are arranged according to a colour sampling format, and wherein samples of the at least one second colour component are predictable from samples of the at least one first colour component; and a signal according to any one of claims 47 to 50.
  52. 52. A signal carrying an information dataset substantially as hereinbefore described with reference to and as shown in Figure 4 or 5.
  53. 53. A method of processing colour information substantially as hereinbefore described with reference to and as shown in Figure 6 or 7.
GB1200920.5A 2011-06-22 2012-01-19 Method and device for processing colour information in an image Active GB2492189B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201110591A GB2492130A (en) 2011-06-22 2011-06-22 Processing Colour Information in an Image Comprising Colour Component Sample Prediction Being Based on Colour Sampling Format

Publications (3)

Publication Number Publication Date
GB201200920D0 GB201200920D0 (en) 2012-02-29
GB2492189A true GB2492189A (en) 2012-12-26
GB2492189B GB2492189B (en) 2015-07-08

Family

ID=44454489

Family Applications (2)

Application Number Title Priority Date Filing Date
GB201110591A Withdrawn GB2492130A (en) 2011-06-22 2011-06-22 Processing Colour Information in an Image Comprising Colour Component Sample Prediction Being Based on Colour Sampling Format
GB1200920.5A Active GB2492189B (en) 2011-06-22 2012-01-19 Method and device for processing colour information in an image

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB201110591A Withdrawn GB2492130A (en) 2011-06-22 2011-06-22 Processing Colour Information in an Image Comprising Colour Component Sample Prediction Being Based on Colour Sampling Format

Country Status (2)

Country Link
GB (2) GB2492130A (en)
WO (1) WO2012175646A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN109274969B (en) * 2017-07-17 2020-12-22 华为技术有限公司 Method and apparatus for chroma prediction
US11070824B2 (en) 2017-09-15 2021-07-20 Sony Corporation Image processing device and method
US11095921B2 (en) * 2018-12-18 2021-08-17 Tencent America LLC Method and apparatus for video encoding or decoding
CN116437077A (en) * 2019-02-22 2023-07-14 华为技术有限公司 Method and device for intra-frame prediction by using linear model
WO2020236038A1 (en) * 2019-05-21 2020-11-26 Huawei Technologies Co., Ltd. Method and apparatus of cross-component prediction
CN114025168B (en) * 2021-09-30 2023-08-04 浙江大华技术股份有限公司 Video image processing method, processing device, electronic device and storage medium
WO2024002675A1 (en) * 2022-06-30 2024-01-04 Interdigital Ce Patent Holdings, Sas Simplification for cross-component intra prediction
WO2024077520A1 (en) * 2022-10-12 2024-04-18 Oppo广东移动通信有限公司 Encoding method, decoding method, code stream, encoder, decoder, and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1950971A2 (en) * 2007-01-12 2008-07-30 Mitsubishi Electric Corporation Moving image encoding device, moving image decoding device, moving image encoding method, and moving image decoding method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413720B2 (en) * 1998-06-26 2003-06-09 ソニー株式会社 Image encoding method and apparatus, and image decoding method and apparatus
JP2003009160A (en) * 2001-06-27 2003-01-10 Pioneer Electronic Corp Color format discriminating apparatus and color format discriminating method
CN101589625B (en) * 2006-10-25 2011-09-21 弗劳恩霍夫应用研究促进协会 Fraunhofer ges forschung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1950971A2 (en) * 2007-01-12 2008-07-30 Mitsubishi Electric Corporation Moving image encoding device, moving image decoding device, moving image encoding method, and moving image decoding method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Luis F.R. Lucas et al, "17th IEEE International Conference on Image Processing" Hong Kong, 26 - 29 September 2010, published 26/09/2010, IEEE, pp 1329-1332, "Intra-prediction for color image coding using YUV correlation". *
Sang Heon Lee & Nam Ik Cho, "16th IEEE International Conference on Image Processing", published 07/11/2009, IEEE, pp1037-1040, "Intra prediction method based on the linear relationship between the channels for YUV 4:2:0 intra coding" *

Also Published As

Publication number Publication date
GB2492130A (en) 2012-12-26
GB201110591D0 (en) 2011-08-03
GB201200920D0 (en) 2012-02-29
WO2012175646A1 (en) 2012-12-27
GB2492189B (en) 2015-07-08

Similar Documents

Publication Publication Date Title
US10743033B2 (en) Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
GB2492189A (en) Processing colour information in an image comprising colour component sample prediction based on colour sampling format
JP7009632B2 (en) Video coding method based on conversion and its equipment
US8903188B2 (en) Method and device for processing components of an image for encoding or decoding
JP6523324B2 (en) Image encoding / decoding method and apparatus
TW202101978A (en) Reference sampling for matrix intra prediction mode
US20140192860A1 (en) Method, device, computer program, and information storage means for encoding or decoding a scalable video sequence
US20180048890A1 (en) Method and device for encoding and decoding video signal by using improved prediction filter
TW202044833A (en) Video coding in triangular prediction unit mode using different chroma formats
JP2023544705A (en) Joint component neural network-based filtering during video coding.
GB2495942A (en) Prediction of Image Components Using a Prediction Model
TW202232955A (en) Upsampling reference pixels for intra-prediction in video coding
TW202228438A (en) Chroma from luma prediction for video coding
JP2023543762A (en) Activation function design in neural network-based filtering process for video coding
US20230353777A1 (en) Motion compensation methods for video coding
US10382792B2 (en) Method and apparatus for encoding and decoding video signal by means of transform-domain prediction
CN113489974B (en) Intra-frame prediction method, video/image encoding and decoding method and related devices
KR20210015963A (en) Device and method for intra-prediction
US11889121B2 (en) Filters for motion compensation interpolation with reference down-sampling
JP2024501465A (en) Adaptive loop filter with fixed filter