WO2014042838A1 - Utilisation sélective de filtres d'interpolation de chrominance dans un processus d'interpolation de luminance - Google Patents
Utilisation sélective de filtres d'interpolation de chrominance dans un processus d'interpolation de luminance Download PDFInfo
- Publication number
- WO2014042838A1 WO2014042838A1 PCT/US2013/056017 US2013056017W WO2014042838A1 WO 2014042838 A1 WO2014042838 A1 WO 2014042838A1 US 2013056017 W US2013056017 W US 2013056017W WO 2014042838 A1 WO2014042838 A1 WO 2014042838A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- chroma
- luma
- interpolation filters
- sub
- interpolation
- Prior art date
Links
- 241000023320 Luma <angiosperm> Species 0.000 title claims abstract description 208
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 title claims abstract description 208
- 238000000034 method Methods 0.000 title claims abstract description 106
- 230000008569 process Effects 0.000 title description 82
- 230000002123 temporal effect Effects 0.000 description 24
- 239000013598 vector Substances 0.000 description 18
- 230000006835 compression Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 16
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Definitions
- Video compression systems employ block processing for most of the compression operations.
- a block is a group of neighboring pixels and may be treated as one coding unit in terms of the compression operations. Theoretically, a larger coding unit is preferred to take advantage of correlation among immediate neighboring pixels.
- Various video compression standards e.g., Motion Picture Expert Group (MPEG)-l, MPEG-2, and MPEG-4, use block sizes of 4x4, 8x8, and 16x16 (referred to as a macroblock (MB)).
- High-efficiency video coding is a block-based hybrid spatial and temporal predictive coding scheme. Similar to other video coding standards, HEVC supports intra-picture, such as I picture, and inter-picture, such as B and P pictures. Intra- picture is coded without referring to any other pictures. Thus, only spatial prediction is allowed for a coding unit (CU)/prediction unit (PU) inside an intra-picture. Inter-picture, however, supports both intra- and inter-prediction. A CU/PU in an inter-picture may be either spatially or temporally predictive coded. Temporal predictive coding may reference pictures that were previously coded.
- Temporal motion prediction is an effective method to increase the coding efficiency and provides high compression.
- HEVC uses a translational model for motion prediction.
- a prediction signal for a given block in a current picture is generated from a corresponding block in a reference picture.
- the coordinates of the reference block are given by a motion vector that describes the translational motion along horizontal (x) and vertical (y) directions that would be added/subtr acted to/from the coordinates of the current block.
- a decoder needs the motion vector to decode the compressed video.
- the pixels in the reference frame are used as the prediction.
- the motion may be captured in integer pixels.
- pel not all objects move with the spacing of integer pixels (pixels are also referred to as pel).
- HEVC allows for motion vectors with sub-pel accuracy.
- the image signal on these sub-pel positions is generated by an interpolation process.
- sub-pel interpolation is performed using finite impulse response (FIR) filters.
- FIR finite impulse response
- the filter may have taps to determine the sub-pel values for sub-pel positions, such as half-pel, quarter-pel, and one-eighth pel positions.
- the taps of an interpolation filter weight the integer pixels with coefficient values to generate the sub-pel signals. Different coefficients may produce different compression performance in signal distortion and noise.
- Each pixel may include luma and chroma components. Chroma may be the intensity of the color for the pixel and luma may be the brightness of the pixel.
- different interpolation filters are used for the luma component and chroma component, respectively. For example, a longer interpolation filter (e.g., additional taps/coefficients) is used for a luma component interpolation process than an interpolation filter for a chroma component interpolation process. That is, the interpolation filter for the chroma component includes fewer taps/coefficients.
- a human visual system is less sensitive to the chroma component (e.g., color differences) than the luma component (e.g., brightness).
- the use of fewer taps/coefficients in interpolating sub-pixel values may result in less compression efficiency, which may result in an image with respect to the chroma component with less high frequency information.
- the resulting less high frequency information that may result with using shorter interpolation filters for the chroma component may not be noticeable.
- FIG. 1 depicts an example of a system for encoding and decoding video content according to one embodiment.
- FIG. 2 depicts an example of luma sub-pel pixel positions according to one embodiment.
- FIG. 3 depicts an example of chroma sub-pel pixel positions according to one embodiment.
- FIG. 4 depicts an example of a syntax according to one embodiment.
- FIG. 5 A depicts a more detailed example of an encoder or a decoder according to one embodiment.
- FIG. 5B depicts another example of the encoder or the decoder for the determination of which interpolation filters to use for the luma interpolation process according to one embodiment.
- FIG. 6 depicts a simplified flowchart of a method for determining an interpolation filter 106 during an encoding process according to one embodiment.
- FIG. 7 depicts a simplified flowchart for determining an interpolation filter during a decoding process according to one embodiment.
- FIG. 8A depicts an example of an encoder according to one embodiment.
- FIG. 8B depicts an example of a decoder according to one embodiment. DETAILED DESCRIPTION
- a method determines one or more luma interpolation filters for interpolating sub-pel pixel values for a luma component.
- the one or more luma interpolation filters have a first number of coefficients.
- the method determines one or more chroma interpolation filters for interpolating sub-pel pixel values for a chroma component.
- the one or more chroma interpolation filters have a second number of coefficients where the second number of coefficients is less than the first number of coefficients.
- the method uses a chroma interpolation filter to interpolate a sub-pixel value for the luma component by applying coefficients of the chroma interpolation filter to corresponding pixel values for the luma component.
- an encoder includes: one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for: determining one or more luma interpolation filters for interpolating sub-pel pixel values for a luma component, the one or more luma interpolation filters having a first number of coefficients; determining one or more chroma interpolation filters for interpolating sub- pel pixel values for a chroma component, the one or more chroma interpolation filters having a second number of coefficients, wherein the second number of coefficients is less than the first number of coefficients; determining when the one or more chroma interpolation filters should be used to interpolate a sub-pel pixel value for the luma component; and when the one or more chroma interpolation filters should be used to interpolate the sub-pixel value for the luma component, using a chroma interpol
- a decoder includes: one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for: receiving an encoded bitstream; determining one or more luma interpolation filters for interpolating sub-pel pixel values for a luma component, the one or more luma interpolation filters having a first number of coefficients; determining one or more chroma interpolation filters for interpolating sub-pel pixel values for a chroma component, the one or more chroma interpolation filters having a second number of coefficients, wherein the second number of coefficients is less than the first number of coefficients; determining when the one or more chroma interpolation filters should be used to interpolate a sub-pel pixel value for the luma component; when the one or more chroma interpolation filters should be used to interpolate the sub-pixel value for the luma component, using
- FIG. 1 depicts an example of a system 100 for encoding and decoding video content according to one embodiment.
- System 100 includes an encoder 102 and a decoder 104, both of which will be described in more detail below.
- Encoder 102 and decoder 104 perform temporal prediction through motion estimation and motion compensation.
- Motion estimation is a process of determining a motion vector (MV) for a current unit of video, which may be a block of pixels.
- Motion compensation is applying the motion vector to the current unit.
- the temporal prediction searches for a best match prediction for a current prediction unit (PU) over reference pictures. The best match prediction is described by the motion vector and associated reference picture ID.
- a PU in a B picture may have up to two motion vectors
- a PU in a P picture may have one motion vector.
- a PU is described, other units of video may be used.
- the temporal prediction allows for fractional (sub-pel) picture accuracy.
- Sub-pel prediction is used because motion during two instances of time (the current picture and reference picture capture times) can correspond to a sub-pel position in pixel coordinates and generation of different prediction data corresponding to each sub-pel position allows for the possibility of conditioning the prediction signal to better match the signal in the current PU.
- Interpolation filters such as FIR filters, include taps that weight full-pel pixel values with coefficient values that are used to determine the sub-pel pixel values for different sub-pel pixel positions in a picture.
- the interpolation filter may use different values for coefficients and/or a different number of taps.
- encoder 102 and decoder 104 use a weighted sum of integer pixels.
- encoder 102 and decoder 104 use integer values as weighting factors and apply a right shift to save computational complexity with an added shift offset.
- Encoder 102 and decoder 104 may also apply a clipping operation to keep the interpolated sub-pel pixel values within a normal dynamic range.
- Encoder 102 and decoder 104 include different interpolation filters for a luma component and a chroma component of video being encoded or decoded.
- encoder 102 and decoder 104 include a set of luma interpolation filters 106-1 and a set of chroma interpolation filters 106-2.
- Each set may include one or more luma interpolation filters and one or more chroma interpolation filters, respectively.
- Each interpolation filter may provide different compression performance and characteristics.
- interpolation filters in luma interpolation filters 106-1 may include a different number of taps and/or different coefficients from interpolation filters in chroma interpolation filters 106-2.
- 8-tap or 7-tap interpolation filters are used for luma interpolation filters 106-1.
- the luma sub-pel pixel values are interpolated using the values of spatial neighboring full-pel pixel values.
- FIG. 2 depicts an example of luma sub-pel pixel positions according to one embodiment.
- the positions of half-pel and quarter-pel pixels are between full-pel pixels along a pixel line within a picture.
- the full-pel pixels are represented as L3, L2, LI , L0, R0, Rl , R2, and R3.
- H is the half-pel pixel that is between full-pel pixels L0 and R0.
- FL is a quarter-pel pixel between full-pel pixel L0 and half-pel pixel H
- FR is another quarter-pel pixel between half-pel pixel H and full-pel pixel R0.
- Encoder 102 and decoder 104 interpolate the values of the luma sub-pel pixels FL, H, and FR using the values of the spatially neighboring full-pel pixels, L3, L2, LI , L0, R0, Rl , R2, and R3.
- luma interpolation filters 106-1 may include 8 coefficients/taps. In certain embodiments, 7 coefficients/taps may also be used to interpolate the same luma sub-pel pixel values FL, H, and FR.
- the luma sub-pel pixels FL, H, and FR are calculated as follows:
- Table 1 summarizes the coefficients used in a set of luma interpolation filters
- Chroma interpolation filters 106-2 may use less taps/coefficients than luma interpolation filters 106-1. As was discussed above, a human visual system is less sensitive to the chroma component than the luma component. Thus, in one embodiment, 4-tap interpolation filters are used for chroma interpolation filters 106-2.
- FIG. 3 depicts an example of chroma sub-pel pixel positions according to one embodiment. Half-pel pixel, quarter-pel pixel, and eighth-pel pixel positions are between full-pel pixel positions along a pixel line within a picture. Full-pel pixels include LI, L0, R0, and Rl . H is a half- pel pixel between full-pel pixels L0 and R0.
- FLO, FL1 , and FL2 are fractional-pel pixels between full-pel pixel L0 and half-pel pixel H. Also, FRO, FRl , and FR2 are fractional- pel pixels between half-pel pixel H and full-pel pixel R0.
- the chroma sub-pel pixels FLO, FL1, FL2, H, FR2, FRl , and FRO can be interpolated using values of spatial neighboring full-pel pixels LI, L0, R0, and Rl .
- 4 taps/coefficients are used to perform the interpolation as follows:
- shorter interpolation filters achieve a higher compression efficiency than shorter interpolation filters.
- the higher compression efficiency may result in a picture with more high frequency information when reconstructed from the encoded bitstream. High frequency information may result when more abrupt difference occur in an image.
- shorter interpolation filters may reduce the memory bandwidth for motion estimation and motion compensation.
- the computational complexity may be reduced using shorter interpolation filters. Due to the higher human visual sensitivity to the luma component and different characteristics of luma and chroma component (e.g., chroma usually has less high frequency information), longer interpolation filters for the luma component are generally used as compared to interpolation filters for the chroma component.
- particular embodiments provide the flexibility to switch between longer interpolation filters designed for the luma interpolation process and shorter interpolation filters designed for the chroma interpolation process. For example, if 8-tap interpolation filters and 4-tap interpolation filters are being used for the luma component and the chroma component, respectively, particular embodiments provide the flexibility to switch between the 8-tap interpolation filters and the 4-tap interpolation filters in the luma interpolation process.
- chroma interpolation filters 106-2 e.g., 4-tap interpolation filters
- chroma interpolation filters 106-2 are used.
- no additional interpolation filters are used other than that defined for luma interpolation or chroma interpolation, which introduces minimal additional complexity. That is, only a way to switch between luma interpolation filters 106-1 and chroma interpolation filters 106-2 is needed, and additional interpolation filters do not need to be defined.
- additional interpolation filters may be introduced and selectively used in the luma interpolation process.
- chroma interpolation filters 106-2 in the luma interpolation process is discussed, particular embodiments may also use luma interpolation filters 106-1 in the chroma interpolation process.
- shorter interpolation filters e.g., chroma interpolation filters 106-2
- longer interpolation filters e.g., luma interpolation filters 106-1
- shorter interpolation filters may achieve higher compression efficiency than longer interpolation filters.
- the performance loss from shorter interpolation filters may be negligible or not noticeable to human visual systems.
- shorter interpolation filters may achieve a reduction in memory bandwidth for motion estimation and motion compensation and computational complexity without a noticeable loss in performance.
- a syntax may be used to indicate the selective use of chroma interpolation filters 106-2 in a luma interpolation process.
- FIG. 4 depicts an example of a syntax 400 according to one embodiment.
- Syntax 400 may add syntax (e.g., a flag use chroma filter for luma interpolation) at 402 to indicate when a chroma interpolation filter 106-2 should be used in the luma interpolation process.
- syntax e.g., a flag use chroma filter for luma interpolation
- other information may be used to signal that chroma interpolation filters 106-2 should be used in a luma interpolation process.
- other data structures may be used.
- the flag use chroma filter for luma interpolation is shown at this position in syntax 400, the flag use chroma filter for luma interpolation may be inserted at other positions. Further, the inclusion of the flag use chroma filter for luma interpolation may be conditional based on evaluation of a conditional statement that may be based on other syntax or semantics. Thus, the flag use chroma filter for luma interpolation may not always be included in the encoded bitstream.
- the flag use chroma filter for luma interpolation may be added to different portions of an encoded bitstream.
- the flag use chroma filter for luma interpolation may be added to various headers in the encoded bitstream, such as a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or block header (coding tree unit, coding unit, prediction unit, or transform unit).
- VPS video parameter set
- SPS sequence parameter set
- PPS picture parameter set
- slice header coding tree unit, coding unit, prediction unit, or transform unit.
- the video parameter set may be the header for the entire video being encoded;
- the sequence parameter set may be a header for a sequence of pictures;
- the picture parameter set may be a header for a picture;
- the slice header may be a header for a slice, which may be one or more blocks in a picture; or the block header may be the header for a specific block.
- the flag use chroma filter for luma interpolation may be enabled or disabled. For example, when enabled, the flag use chroma filter for luma interpolation is set to a first value, such as 1, and when disabled, the flag use chroma filter for luma interpolation is set to a second value, such as 0. When the flag use chroma filter for luma interpolation is set to 1, this may indicate that chroma interpolation filters 106-2 may selectively be used in the luma interpolation process. In one embodiment, this may mean a chroma interpolation filter 106-2 is used for all luma interpolation processes for the active portion of video.
- chroma interpolation filters 106-2 are used in all of the pictures in the sequence.
- encoder 102 or decoder 104 may selectively use chroma interpolation filters 106-2 in the luma interpolation process.
- encoder 102 or decoder 104 may interpret characteristics of the video to determine when it is beneficial to use a chroma interpolation filter 106-2 in the luma interpolation process for a sub-pel pixel value.
- chroma interpolation filters 106-2 may not be used in the luma interpolation process. That is, luma interpolation filters 106-1 are used in the luma interpolation process.
- the flag use chroma filter for luma interpolation may be used.
- the flag use chroma filter for luma interpolation is set to a value of 1 , which enables the use of chroma interpolation filters for the luma interpolation process.
- 4-tap chroma interpolation filters 106-2 are used for the luma interpolation process.
- the half-pel pixel H and the quarter-pel pixels FL and FR between the full-pel pixels L0 and R0 may be determined as follows:
- the coefficients for chroma interpolation filter 106-2 that are used are not changed from the coefficients that are used when interpolating the chroma component.
- encoder 102 and decoder 104 use the coefficients for the FL1 , H, and FR1 sub-pel pixel positions in the chroma interpolation filter shown in Table 2 above.
- particular embodiments may use coefficients from different positions, such as FL2 and FR2.
- the chroma interpolation filters that are used may include the same number of taps as that used in the chroma interpolation process.
- the use of chroma interpolation filters 106-2 in the luma interpolation process requires a change of the coefficients in the chroma interpolation filter 106-2. That is, when the flag use chroma filter for luma interpolation is set to 1, the same number of taps for the 4-tap chroma interpolation filter 106-2 is used for luma interpolation, but the coefficients may be changed.
- the half-pel pixel H and quarter-pel pixels FL and FR between the full-pel pixels L0 and R0 may be determined as follows:
- the coefficients used in the luma interpolation process for chroma interpolation filter 106-2 may be changed from the coefficients used when the chroma interpolation filters 106-2 are used in the chroma interpolation process. For example, the coefficients for the half-pel pixel H have been changed.
- a third example illustrates another use of chroma interpolation filters 106-2 in the luma interpolation process that also changes the chroma interpolation filter coefficients.
- the half-pel pixel H and quarter-pel pixels FL and FR between the full-pel pixels L0 and R0 may be determined as follows:
- FIG. 5A depicts a more detailed example of encoder 102 or decoder 104 according to one embodiment.
- a filter determiner 502 determines which interpolation filter 106 to use in a luma interpolation process. For example, filter determiner 502 may determine when to use chroma interpolation filters 106-2 in the luma interpolation process. As discussed above, a flag use_chroma_filter_for_luma_interpolation may be used to indicate when chroma interpolation filters are used in the luma interpolation process. In this case, filter determiner 502 may determine the value of the flag use chroma filter for luma interpolation when a portion of video is being encoded or decoded.
- a sequence parameter set header may include the value for the flag use chroma filter for luma interpolation.
- the flag use chroma filter for luma interpolation applies.
- filter determiner 502 determines the value is 1 for the flag use chroma filter for luma interpolation, which means that chroma interpolation filters 106-2 should be used in the luma interpolation process.
- encoder 502 may have determined that chroma interpolation filters 106-2 should be used in the luma interpolation process and set the value for the flag as 1.
- Encoder 102 may make this determination based on characteristics of the video being encoded.
- decoder 104 may decode the encoded bitstream and determine the value of the flag use chroma filter for luma interpolation.
- chroma interpolation filters 106-2 may always be used in the luma interpolation process or may be selectively used when the flag is 1. In the case shown in FIG. 5 A, filter determiner 502 determines that chroma interpolation filter 106-2 should be used and selects which chroma interpolation filters 106-2 to use.
- encoder 102 does not signal to decoder 104 when chroma interpolation filters 106-2 were used in the luma interpolation process. Rather, encoder 102 and decoder 104 independently determine when chroma interpolation filters 106-2 should be used in the luma interpolation process.
- filter determiner 502 may implicitly determine whether or not to use chroma interpolation filters 106-2 in the luma interpolation process based on certain characteristics in the video. For example, filter determiner 502 may analyze the syntax or characteristics of the video to determine when to use chroma interpolation filters 106-2 in the luma interpolation process. In one example, filter determiner 502 analyzes the video resolution of a picture to determine whether to use chroma interpolation filters 106-2 in the luma interpolation process.
- FIG. 5B depicts another example of encoder 102 or decoder 104 for the determination of which interpolation filters to use for the luma interpolation process according to one embodiment.
- filter determiner 502 may determine that luma interpolation filters 106- 1 are not used in the luma interpolation process. This may occur when the flag use chroma filter for luma interpolation is set to 0 to indicate that chroma interpolation filters 106-2 are not used in the luma interpolation process. In this case, filter determiner 502 always determines that luma interpolation filters 106-1 are used in the luma interpolation process.
- a process that uses chroma interpolation filters 106-2 in the luma interpolation process may also use luma interpolation filters 106-1 in the chroma interpolation process.
- a third set of interpolation filters may also be used to substitute for luma interpolation filters 106-1. That is, the third type of interpolation filters may be used in the luma interpolation process when the flag use chroma filter for luma interpolation is enabled. This may require additional complexity, but the third type of interpolation filters may be better suited for the luma interpolation process.
- FIG. 6 depicts a simplified flowchart 600 of a method for determining an interpolation filter 106 during an encoding process according to one embodiment.
- filter determiner 502 determines a value for the flag use chroma filter for luma interpolation.
- the flag use chroma filter for luma interpolation may be associated with an active portion of video.
- the flag use chroma filter for luma interpolation may be included in an SPS header for a sequence of pictures that are actively being encoded.
- filter determiner 502 determines if the flag use chroma filter for luma interpolation is enabled (e.g., 1) or disabled (e.g., 0).
- filter determiner 502 determines if a chroma interpolation filter 106-2 should be used in the luma interpolation process. For example, as described above, when the flag use chroma filter for luma interpolation is enabled, filter determiner 502 may always use chroma interpolation filters 106-2 in the luma interpolation process. In other cases, chroma interpolation filters 106-2 may be selectively used in the luma interpolation process.
- filter determiner 502 selects a set of chroma interpolation filters 106-2 to use in the luma interpolation process. For example, different chroma interpolation filters 106-2 may be available. Filter determiner 502 may select a set of the chroma interpolation filters 106-2 with coefficients determined to provide the most efficient compression for sub-pel pixel values for the luma component.
- filter determiner 502 determines that a chroma interpolation filter 106-2 should not be used in the luma interpolation process, filter determiner 502 selects a set of luma interpolation filters 106-1 to use. Additionally, referring back to 604, if the flag use chroma filter for luma interpolation was not enabled, the process at 610 is also performed where filter determiner 502 selects a set of luma interpolation filters 106- 1 to use.
- encoder 102 performs the luma interpolation process using the selected set of interpolation filters.
- the chroma interpolation filters 106-2 or luma interpolation filters 106- 1 are is used to interpolate sub-pel pixel values for the luma component.
- FIG. 7 depicts a simplified flowchart 700 for determining an interpolation filter 106 during a decoding process according to one embodiment.
- decoder 104 receives an encoded bitstream.
- the encoded bitstream may include the flag use chroma filter for luma interpolation in one of the headers, such as the SPS header.
- the SPS header may be applicable for a sequence of pictures that are actively being decoded by decoder 104.
- encoder 102 may have set the flag use chroma filter for luma interpolation to a value of 1 or 0.
- decoder 104 decodes the value for the flag use chroma filter for luma interpolation from the encoded bitstream.
- decoder 104 determines if the flag use chroma filter for luma interpolation is enabled or disabled. If enabled, at 708, filter determiner 502 determines if chroma interpolation filters 106-2 should be used in the luma interpolation process. As discussed above with respect to the encoding process, filter determiner 502 in decoder 104 may always use chroma interpolation filters 106-2 in the luma interpolation process or may selectively use chroma interpolation filters 106-2 in the luma interpolation process when the flag use chroma filter for luma interpolation is enabled.
- filter determiner 502 determines that chroma interpolation filters 106-2 should be used in the luma interpolation process. If filter determiner 502 determines that chroma interpolation filters 106-2 should be used in the luma interpolation process, at 710, filter determiner 502 selects a set of luma interpolation filters 106-1 for use in the luma interpolation process.
- the process at 710 is also performed where filter determiner 502 selects a set of luma interpolation filters 106-1 for the luma interpolation process.
- decoder 104 performs the luma interpolation process using the selected set of interpolation filters.
- encoder 102 and decoder 104 examples will describe encoder 102 and decoder 104 examples that may be used with particular embodiments.
- encoder 102 described can be incorporated or otherwise associated with a transcoder or an encoding apparatus at a headend and decoder 104 can be incorporated or otherwise associated with a downstream device, such as a mobile device, a set top box or a transcoder.
- FIG. 8A depicts an example of encoder 102 according to one embodiment. A general operation of encoder 102 will now be described; however, it will be understood that variations on the encoding process described will be appreciated by a person skilled in the art based on the disclosure and teachings herein.
- a prediction PU, x' is obtained through either spatial prediction or temporal prediction.
- the prediction PU is then subtracted from the current PU, resulting in a residual PU, e.
- Spatial prediction relates to intra mode pictures. Intra mode coding can use data from the current input image, without referring to other images, to code an I picture.
- a spatial prediction block 804 may include different spatial prediction directions per PU, such as horizontal, vertical, 45-degree diagonal, 135-degree diagonal, DC (flat averaging), and planar, or any other direction.
- the spatial prediction direction for the PU can be coded as a syntax element.
- brightness information (Luma) and color information (Chroma) for the PU can be predicted separately.
- the number of Luma intra prediction modes for all block sizes is 35.
- An additional mode can be used for the Chroma intra prediction mode.
- the Chroma prediction mode can be called "IntraFromLuma.”
- Temporal prediction block 806 performs temporal prediction. Inter mode coding can use data from the current input image and one or more reference images to code "P" pictures and/or "B" pictures. In some situations and/or embodiments, inter mode coding can result in higher compression than intra mode coding.
- inter mode PUs can be temporally predictive coded, such that each PU of the CU can have one or more motion vectors and one or more associated reference images.
- Temporal prediction can be performed through a motion estimation operation that searches for a best match prediction for the PU over the associated reference images.
- the best match prediction can be described by the motion vectors and associated reference images.
- P pictures use data from the current input image and one or more reference images, and can have up to one motion vector.
- B pictures may use data from the current input image and one or more reference images, and can have up to two motion vectors.
- the motion vectors and reference pictures can be coded in the encoded bitstream.
- the motion vectors can be syntax elements "MV," and the reference pictures can be syntax elements "refldx.”
- inter mode can allow both spatial and temporal predictive coding. The best match prediction is described by the motion vector (MV) and associated reference picture index (refldx). The motion vector and associated reference picture index are included in the coded bitstream.
- Transform block 807 performs a transform operation with the residual PU, e.
- a set of block transforms of different sizes can be performed on a CU, such that some PUs can be divided into smaller TUs and other PUs can have TUs the same size as the PU. Division of CUs and PUs into TUs can be shown by a quadtree representation.
- Transform block 807 outputs the residual PU in a transform domain, E.
- a quantizer 808 then quantizes the transform coefficients of the residual PU, E.
- Quantizer 808 converts the transform coefficients into a finite number of possible values. In some embodiments, this is a lossy operation in which data lost by quantization may not be recoverable.
- entropy coding block 810 entropy encodes the quantized coefficients, which results in final compression bits to be transmitted. Different entropy coding methods may be used, such as context- adaptive variable length coding (CAVLC) or context-adaptive binary arithmetic coding (CAB AC).
- CAVLC context- adaptive variable length coding
- CAB AC context-adaptive binary arithmetic coding
- a de-quantizer 812 de-quantizes the quantized transform coefficients of the residual PU.
- De-quantizer 812 then outputs the de-quantized transform coefficients of the residual PU, E'.
- An inverse transform block 814 receives the de-quantized transform coefficients, which are then inverse transformed resulting in a reconstructed residual PU, e' .
- the reconstructed PU, e' is then added to the corresponding prediction, x', either spatial or temporal, to form the new reconstructed PU, x" .
- a loop filter 816 performs de-blocking on the reconstructed PU, x", to reduce blocking artifacts. Additionally, loop filter 816 may perform a sample adaptive offset process after the completion of the de -blocking filter process for the decoded picture, which compensates for a pixel value offset between reconstructed pixels and original pixels. Also, loop filter 816 may perform adaptive loop filtering over the reconstructed PU, which minimizes coding distortion between the input and output pictures. Additionally, if the reconstructed pictures are reference pictures, the reference pictures are stored in a reference buffer 818 for future temporal prediction. Intra mode coded images can be a possible point where decoding can begin without needing additional reconstructed images.
- Luma interpolation filters 106-1 and chroma interpolation filters 106-2 interpolate sub-pel pixel values for temporal prediction block 206. Also, filter determiner 502 may determine a set of luma interpolation filters 106-1 or chroma interpolation filters 106-2 to use. Temporal prediction block 206 then uses the sub-pel pixel values outputted by either luma interpolation filters 106-1 or chroma interpolation filters 106-2 to generate a prediction of a current PU.
- FIG. 8B depicts an example of decoder 104 according to one embodiment.
- Decoder 104 receives input bits from encoder 102 for encoded video content.
- An entropy decoding block 830 performs entropy decoding on the input bitstream to generate quantized transform coefficients of a residual PU.
- a de-quantizer 832 de- quantizes the quantized transform coefficients of the residual PU.
- De-quantizer 832 then outputs the de-quantized transform coefficients of the residual PU, E'.
- An inverse transform block 834 receives the de-quantized transform coefficients, which are then inverse transformed resulting in a reconstructed residual PU, e'.
- the reconstructed PU, e' is then added to the corresponding prediction, x', either spatial or temporal, to form the new reconstructed PU, x".
- a loop filter 836 performs deblocking on the reconstructed PU, x", to reduce blocking artifacts. Additionally, loop filter 836 may perform a sample adaptive offset process after the completion of the deblocking filter process for the decoded picture, which compensates for a pixel value offset between reconstructed pixels and original pixels. Also, loop filter 836 may perform adaptive loop filtering over the reconstructed PU, which minimizes coding distortion between the input and output pictures. Additionally, if the reconstructed pictures are reference pictures, the reference pictures are stored in a reference buffer 838 for future temporal prediction.
- the prediction PU, x' is obtained through either spatial prediction or temporal prediction.
- a spatial prediction block 840 may receive decoded spatial prediction directions per PU, such as horizontal, vertical, 45-degree diagonal, 135-degree diagonal, DC (flat averaging), and planar. The spatial prediction directions are used to determine the prediction PU, x' .
- a temporal prediction block 806 performs temporal prediction through a motion estimation operation. A decoded motion vector is used to determine the prediction PU, x'. Interpolation may be used in the motion estimation operation.
- Luma interpolation filters 106- 1 and chroma interpolation filters 106-2 interpolate sub-pel pixel values for input into a temporal prediction block 242. Also, filter determiner 502 may determine a set of luma interpolation filters 106-1 or chroma interpolation filters 106-2 to use.
- Temporal prediction block 806 performs temporal prediction using decoded motion vector information and interpolated sub-pel pixel values outputted by luma interpolation filters 106-1 or chroma interpolation filters 106-2 in a motion compensation operation. Temporal prediction block 806 outputs the prediction PU, x'.
- Particular embodiments may be implemented in a non-transitory computer- readable storage medium for use by or in connection with the instruction execution system, apparatus, system, or machine.
- the computer-readable storage medium contains instructions for controlling a computer system to perform a method described by particular embodiments.
- the instructions when executed by one or more computer processors, may be operable to perform that which is described in particular embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Selon un mode de réalisation, l'invention se rapporte à un procédé qui détermine (610) des filtres d'interpolation de luminance (106-1) servant à interpoler des valeurs de pixels de sous-éléments d'image pour une composante de luminance. Les filtres d'interpolation de luminance (106-1) ont un premier nombre de coefficients. Ensuite, le procédé détermine (608) des filtres d'interpolation de chrominance (106-2) destinés à l'interpolation de valeurs de pixels de sous-éléments d'image pour une composante de chrominance. Les filtres d'interpolation de chrominance (106-2) ont un second nombre de coefficients qui est inférieur au premier. Lorsque les filtres d'interpolation de chrominance (106-2) doivent être utilisés dans le but d'interpoler une valeur de pixel de sous-éléments d'image pour la composante de luminance, ledit procédé utilise (612) un filtre d'interpolation de chrominance (106-2) afin d'interpoler une valeur de sous-pixel pour la composante de luminance grâce à l'application de coefficients du filtre d'interpolation de chrominance (106-2) sur des valeurs de pixels correspondantes pour la composante de luminance.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261702190P | 2012-09-17 | 2012-09-17 | |
US61/702,190 | 2012-09-17 | ||
US13/830,855 | 2013-03-14 | ||
US13/830,855 US20140078394A1 (en) | 2012-09-17 | 2013-03-14 | Selective use of chroma interpolation filters in luma interpolation process |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014042838A1 true WO2014042838A1 (fr) | 2014-03-20 |
Family
ID=50278601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2013/056017 WO2014042838A1 (fr) | 2012-09-17 | 2013-08-21 | Utilisation sélective de filtres d'interpolation de chrominance dans un processus d'interpolation de luminance |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2014042838A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140269920A1 (en) * | 2013-03-15 | 2014-09-18 | Cisco Technology, Inc. | Motion Estimation Guidance in Transcoding Operation |
CN113170207A (zh) * | 2019-01-24 | 2021-07-23 | 谷歌有限责任公司 | 用于视频压缩的更准确的2抽头内插滤波器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1507415A2 (fr) * | 2003-07-16 | 2005-02-16 | Samsung Electronics Co., Ltd. | Dispositif et méthode de codage et de décodage video d'images en couleurs |
WO2007011189A1 (fr) * | 2005-07-21 | 2007-01-25 | Lg Electronics Inc. | Procede de codage et de decodage de signaux video |
EP1973350A1 (fr) * | 2006-01-11 | 2008-09-24 | Huawei Technologies Co., Ltd. | Procede et dispositif d'interpolation utilisant la compression de video extensible |
-
2013
- 2013-08-21 WO PCT/US2013/056017 patent/WO2014042838A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1507415A2 (fr) * | 2003-07-16 | 2005-02-16 | Samsung Electronics Co., Ltd. | Dispositif et méthode de codage et de décodage video d'images en couleurs |
WO2007011189A1 (fr) * | 2005-07-21 | 2007-01-25 | Lg Electronics Inc. | Procede de codage et de decodage de signaux video |
EP1973350A1 (fr) * | 2006-01-11 | 2008-09-24 | Huawei Technologies Co., Ltd. | Procede et dispositif d'interpolation utilisant la compression de video extensible |
Non-Patent Citations (1)
Title |
---|
XIONG L: "Spatial upsampling filter", 17. JVT MEETING; 74. MPEG MEETING; 14-10-2005 - 21-10-2005; NICE, FR;(JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-Q051, 11 October 2005 (2005-10-11), XP030006212, ISSN: 0000-0413 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140269920A1 (en) * | 2013-03-15 | 2014-09-18 | Cisco Technology, Inc. | Motion Estimation Guidance in Transcoding Operation |
CN113170207A (zh) * | 2019-01-24 | 2021-07-23 | 谷歌有限责任公司 | 用于视频压缩的更准确的2抽头内插滤波器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140078394A1 (en) | Selective use of chroma interpolation filters in luma interpolation process | |
US9313519B2 (en) | Interpolation filter selection using prediction unit (PU) size | |
US9549177B2 (en) | Evaluation of signaling of collocated reference picture for temporal prediction | |
US9210425B2 (en) | Signaling of temporal motion vector predictor (MVP) flag for temporal prediction | |
US9967563B2 (en) | Method and apparatus for loop filtering cross tile or slice boundaries | |
US9628823B2 (en) | Method and apparatus for providing reduced resolution update mode for multi-view video coding | |
US9319711B2 (en) | Joint sub-pixel interpolation filter for temporal prediction | |
US20140086311A1 (en) | Signaling of scaling list | |
KR101616010B1 (ko) | 비균일 움직임 벡터 그리드에 대한 움직임 벡터 스케일링 | |
KR102357142B1 (ko) | 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터 | |
US9036706B2 (en) | Fractional pixel interpolation filter for video compression | |
US20140023142A1 (en) | Signaling of temporal motion vector predictor (mvp) enable flag | |
EP2724534A2 (fr) | Sélection de décalages de phases pour filtres d'interpolation permettant une compensation de mouvement | |
Chiu et al. | Decoder-side motion estimation and wiener filter for HEVC | |
WO2014042838A1 (fr) | Utilisation sélective de filtres d'interpolation de chrominance dans un processus d'interpolation de luminance | |
WO2012125452A1 (fr) | Sélection de filtre d'interpolation à l'aide de la taille d'une unité de prédiction (pu) | |
WO2012100085A1 (fr) | Filtres d'interpolation à basse complexité et haute efficacité | |
Zhang et al. | Transform-domain in-loop filter with block similarity for HEVC | |
WO2012125450A1 (fr) | Sélection de filtre d'interpolation à l'aide d'indice de prédiction | |
EP2774373B1 (fr) | Mise à l'échelle d'un vecteur de mouvement pour une grille de vecteurs de mouvement non uniforme | |
GB2516225A (en) | Method, device, and computer program for block filtering in a video encoder and decoder | |
CN117981323A (zh) | 使用可选的基于神经网络的编码工具的视频编码 | |
WO2014028631A1 (fr) | Signalisation d'un indicateur de validation de prédicteur de vecteur de mouvement (mvp) temporel | |
WO2015051920A1 (fr) | Codage et décodage vidéo | |
WO2014051962A1 (fr) | Signalisation de liste de mise à l'échelle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13759061 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 23.07.2015) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13759061 Country of ref document: EP Kind code of ref document: A1 |