Coding and sending method and storage medium
By using the intra-frame prediction method of cross-component linear model (CCLM), neighboring luminance reference samples are downsampled to generate chrominance block prediction samples, which solves the problem of high transmission and storage costs for high-resolution and high-quality images, and improves image coding efficiency and pipeline latency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TCL KING ELECTRICAL APPLIANCES HUIZHOU
- Filing Date
- 2019-06-24
- Publication Date
- 2026-06-16
Smart Images

Figure CN116708833B_ABST
Abstract
Description
[0001] This application is a divisional application of the original invention patent application No. 201980044569.9 (International Application No.: PCT / KR2019 / 007582, Application Date: June 24, 2019, Invention Title: Intra-frame Prediction Method and Apparatus Based on CCLM). Technical Field
[0002] This document relates to image coding technology, and more specifically, to an intra-frame prediction method and apparatus based on the cross-component linear model (CCLM) in an image coding system. Background Technology
[0003] The demand for high-resolution, high-quality images, such as HD (High Definition) and UHD (Ultra High Definition) images, is constantly increasing across various fields. As image data becomes more high-resolution and higher quality, the amount of information or bits to be transmitted increases compared to traditional image data. Therefore, transmission and storage costs increase when using media such as traditional wired / wireless broadband lines to transmit image data or when storing image data using existing storage media.
[0004] Therefore, an efficient image compression technology is needed to effectively send, store, and reproduce information from high-resolution and high-quality images. Summary of the Invention
[0005] Technical issues
[0006] This document provides a method and apparatus for enhancing image coding efficiency.
[0007] This document also provides a method and apparatus for enhancing image coding efficiency based on intra-frame prediction.
[0008] This document also provides a method and apparatus for enhancing the efficiency of CCLM-based intra-frame prediction.
[0009] This document also provides a method and apparatus for enhancing pipeline delay during intra-frame prediction based on CCLM in hardware.
[0010] This document also provides a method and apparatus for enhancing image coding efficiency by downsampling neighboring brightness reference samples of a 1-sample row (hereinafter, "1-sample row" means a sample of a row) when performing CCLM-based intra-frame prediction.
[0011] Technical solution
[0012] In one aspect, a method for decoding an image, performed by a decoding device, is provided. This method includes the following steps: when the intra-frame prediction mode of the chroma block is a cross-component linear model (CCLM) mode, deriving neighboring chroma reference samples of the chroma block; deriving neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples; deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples; and generating a color image based on the linear model parameters and the downsampled luminance samples of the luminance block. The chroma block prediction sample; and the chroma block reconstruction based on the chroma block prediction sample, wherein the neighboring luminance reference sample includes an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and wherein, when the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring luminance reference samples used for deriving the downsampled neighboring luminance reference sample in the neighboring luminance reference sample is less than the number of left neighboring luminance reference samples used for deriving the downsampled neighboring luminance reference sample.
[0013] On the other hand, a decoding device for performing image decoding is provided. When the intra-frame prediction mode of the chroma block is CCLM mode, the decoding device includes: an adder for deriving neighboring chroma reference samples of the chroma block and neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; and a prediction unit for deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples, deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples, and deriving... A prediction sample for a chroma block is generated, wherein the adder reconstructs the chroma block based on the prediction sample, and the neighboring luminance reference sample includes an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and when the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampling neighboring luminance reference samples is less than the number of left neighboring luminance reference samples used to derive the downsampling neighboring luminance reference samples.
[0014] On the other hand, a method for encoding a picture, performed by an encoding device, is provided. This method includes the following steps: when the intra-frame prediction mode of the chroma block is a cross-component linear model (CCLM) mode, deriving neighboring chroma reference samples of the chroma block; deriving neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples; deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples; generating prediction samples of the chroma block based on the linear model parameters and the downsampled luminance samples of the luminance block; and based on the chroma... The method involves using predicted samples of a block to derive residual samples of a chroma block; and encoding image information including information from the residual samples, wherein the neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and wherein, when the upper boundary of the luminance block overlaps with the boundary of a coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples is less than the number of left neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples.
[0015] On the other hand, an encoding device for performing picture encoding is provided. When the intra-frame prediction mode of the chroma block is CCLM mode, the encoding device includes: an adder for deriving neighboring chroma reference samples of the chroma block and neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; a prediction unit for deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples, deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples, and generating predicted samples of the chroma block based on the linear model parameters and the downsampled luminance samples of the luminance block; and a residual processor for... The chroma block prediction samples are used to derive the chroma block residual samples; and the entropy coding unit is used to encode picture information including information about the residual samples, wherein the neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and when the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples is less than the number of left neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples.
[0016] On the other hand, a storage medium readable by a decoder is provided for storing image information generated by an image encoding method, and the method for encoding the image includes the following steps: when the intra-frame prediction mode of the chroma block is a cross-component linear model (CCLM) mode, deriving neighboring chroma reference samples of the chroma block; deriving neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples; deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples; and deriving linear model parameters based on the linear model parameters and the luminance block. The method involves generating a prediction sample for a chroma block from downsampled luminance samples; deriving a residual sample for a chroma block based on the prediction sample; and encoding image information including information about the residual sample, wherein the neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and wherein, when the upper boundary of the luminance block overlaps with the boundary of a coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples is less than the number of left neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples.
[0017] Beneficial effects
[0018] According to this paper, the overall image / video compression efficiency can be improved.
[0019] According to this paper, the efficiency of image coding based on intra-frame prediction can be improved.
[0020] According to this paper, the efficiency of intra-frame prediction based on CCLM can be improved.
[0021] According to this paper, pipeline latency can be improved when CCLM-based intra-frame prediction is implemented in hardware.
[0022] According to this paper, when performing CCLM-based intra-frame prediction, image coding efficiency can be improved by downsampling the neighboring brightness reference samples of a 1-sample row. Attached Figure Description
[0023] Figure 1 This is a diagram schematically illustrating the configuration of an encoding device according to an embodiment.
[0024] Figure 2 This is a diagram schematically illustrating the configuration of a decoding device according to an embodiment.
[0025] Figure 3 This is a diagram illustrating intra-frame prediction based on CCLM according to an implementation method.
[0026] Figure 4 This is a diagram illustrating intra-frame prediction based on CCLM according to another embodiment.
[0027] Figure 5 This is a flowchart illustrating the intra-frame prediction processing based on CCLM according to an implementation method.
[0028] Figure 6 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to an implementation.
[0029] Figure 7 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to another embodiment.
[0030] Figure 8 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0031] Figure 9 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to another embodiment.
[0032] Figure 10 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0033] Figure 11 This is a diagram illustrating intra-frame prediction processing based on CCLM according to another embodiment.
[0034] Figure 12 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0035] Figure 13 This is a flowchart illustrating the operation of an encoding device according to an embodiment.
[0036] Figure 14 This is a block diagram illustrating the configuration of an encoding device according to an embodiment.
[0037] Figure 15 This is a flowchart illustrating the operation of a decoding device according to an embodiment.
[0038] Figure 16 This is a block diagram illustrating the configuration of a decoding device according to an embodiment. Detailed Implementation
[0039] According to the embodiments of this document, a method for decoding a picture performed by a decoding device is provided. The method includes: when the intra-frame prediction mode of the chroma block is a cross-component linear model (CCLM) mode, deriving neighboring chroma reference samples of the chroma block; deriving neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block; deriving downsampled neighboring luminance reference samples and downsampled luminance samples by downsampling the neighboring luminance reference samples and luminance samples; deriving linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples; and generating a chroma block based on the linear model parameters and the downsampled luminance samples of the luminance block. The predicted samples; and the chroma block reconstructed based on the predicted samples of the chroma block, wherein the neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block, and wherein, when the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring luminance reference samples used for deriving the neighboring luminance reference samples for downsampling is less than the number of left neighboring luminance reference samples used for deriving the neighboring luminance reference samples for downsampling.
[0040] Implementation
[0041] This document may be modified in various forms, and specific embodiments thereof will be described and illustrated in the accompanying drawings. However, these embodiments are not intended to limit this document. The terminology used in the following description is used only to describe particular embodiments and is not intended to limit this document. Singular expressions include plural expressions, provided that different understandings are clear. Terms such as “comprising” and “having” are intended to indicate the presence of the features, quantities, steps, operations, elements, components, or combinations thereof used in the following description, and therefore it should be understood that the possibility of having or adding one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.
[0042] For ease of description of different features and functions, the components in the figures described in this document are shown independently and are not intended to imply that the components are implemented in separate hardware or separate software. For example, two or more of the various configurations may be combined to form a single configuration, or a single configuration may be divided into multiple configurations. Implementations in which the various configurations are integrated and / or separated are also included within the scope of this document without departing from its spirit.
[0043] The following description relates to video / image coding. For example, the methods / implementations disclosed in this document can be applied to methods disclosed in Universal Video Coding (VVC), EVC (Essential Video Coding) standards, AOMedia Video 1 (AV1) standards, AVS2 (Audio Video 2) standards, or next-generation video / image coding standards (e.g., H.267 or H.268).
[0044] Hereinafter, exemplary embodiments of this document will be described in detail with reference to the accompanying drawings. Hereinafter, the same reference numerals will be used for the same components in the figures, and redundant descriptions of the same components will be omitted.
[0045] In this document, video can refer to a series of images over time. A frame typically refers to a unit representing an image in a specific time zone, while a slice is a unit that constitutes part of a frame during encoding. A frame can be configured with multiple slices, and frames and slices can be mixed together if needed.
[0046] A pixel or image unit can refer to the smallest unit that makes up a picture (or image). Additionally, the term "sample" can be used as the counterpart to a pixel. A sample can typically represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component.
[0047] A unit can represent the basic unit of image processing. A unit may include a specific region of the image and at least one of the information associated with that region. A unit may include one luminance block and two chrominance blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "region". In general, an M×N block may include a set of samples or transform coefficients with M columns and N rows.
[0048] Figure 1 This is a schematic diagram illustrating the configuration of a video encoding device to which this document can be applied. Hereinafter, the encoding / decoding device may include a video encoding / decoding device and / or an image encoding / decoding device, and a video encoding / decoding device may be used as a concept that includes an image encoding / decoding device, or an image encoding / decoding device may be used as a concept that includes a video encoding / decoding device.
[0049] Reference Figure 1 The (video) encoding device 100 may include a screen segmentation module 105, a prediction module 110, a residual processing module 120, an entropy encoding module 130, an adder 140, a filtering module 150, and a memory 160. The residual processing module 120 may include a subtractor 121, a transform module 122, a quantization module 123, a rearrangement module 124, a dequantization module 125, and an inverse transform module 126.
[0050] The screen segmentation module 105 can divide the input screen into at least one processing unit.
[0051] As an example, a processing unit may be referred to as a coding unit (CU). In this case, coding units can be recursively partitioned from the largest coding unit (LCU) according to a quadtree-binary tree (QTBT) structure. For example, a coding unit may be partitioned into multiple deeper coding units based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, a quadtree structure may be applied first, followed by a binary tree structure and a ternary tree structure. Alternatively, a binary tree structure / ternary tree structure may be applied first. The coding process according to this document may be performed based on the final coding unit that is no longer partitioned. In this case, the largest coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively partitioned into deeper coding units as needed, so that a coding unit with optimized size can be used as the final coding unit. Here, the coding process may include processes such as prediction, transformation, and reconstruction (described later).
[0052] As another example, the processing unit may include a coding unit (CU), a prediction unit (PU), or a transform unit (TU). A coding unit may be split from the maximum coding unit (LCU) into deeper coding units according to a quadtree structure. In this case, the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into lower-depth coding units as needed, thus optimizing the size of the coding unit as the final coding unit. When a minimum coding unit (SCU) is set, the coding unit cannot be split into coding units smaller than the SCU. Here, the final coding unit refers to the coding unit that forms the basis for segmentation or splitting into prediction units or transform units. A prediction unit is a unit segmented from the coding unit and may be a unit for sample prediction. In this case, the prediction unit may be divided into sub-blocks. A transform unit may be segmented from the coding unit according to a quadtree structure and may be a unit used to derive transform coefficients and / or a unit used to derive residual signals from transform coefficients. Hereinafter, a coding unit may be referred to as a coding block (CB), a prediction unit may be referred to as a prediction block (PB), and a transform unit may be referred to as a transform block (TB). A prediction block or prediction unit may refer to a specific region in the form of a block within a frame, and includes an array of prediction samples. Similarly, a transform block or transform unit may refer to a specific region in the form of a block within a frame, and includes an array of transform coefficients or residual samples.
[0053] The prediction module 110 can perform prediction on the block to be processed (hereinafter, it may refer to the current block or the residual block) and generate a prediction block that includes the prediction samples of the current block. The unit of prediction performed by the prediction module 110 can be a coded block, a transform block, or a prediction block.
[0054] The prediction module 110 can determine whether to apply intra-frame prediction or inter-frame prediction to the current block. As an example, the prediction module 110 can determine whether to apply intra-frame prediction or inter-frame prediction at the CU unit level.
[0055] In the case of intra-frame prediction, prediction module 110 may derive a prediction sample for the current block based on reference samples outside the current block in the frame to which the current block belongs (hereinafter, the current frame). In this case, prediction module 110 may (i) derive the prediction sample based on the average or interpolation of neighboring reference samples of the current block, and (ii) derive the prediction sample based on reference samples in a specific (prediction) direction of the prediction samples of neighboring reference samples of the current block. Case (i) may be referred to as non-directional mode or non-angular mode, and case (ii) may be referred to as directional mode or angular mode. In intra-frame prediction, the prediction modes may have, for example, 33 directional prediction modes and at least two non-directional modes. Non-directional modes may include DC prediction modes and planar modes. Prediction module 110 may use the prediction modes applied to neighboring blocks to determine the prediction mode applied to the current block.
[0056] In the case of inter-frame prediction, prediction module 110 can derive the prediction sample of the current block based on the sample specified by the motion vector on the reference frame. Prediction module 110 can apply any of the skip mode, merge mode, and motion vector prediction (MVP) mode to derive the prediction sample of the current block. In skip mode and merge mode, prediction module 110 can use the motion information of neighboring blocks as the motion information of the current block. In skip mode, unlike merge mode, the difference (residual) between the predicted sample and the original sample is not sent. In MVP mode, the motion vector of the current block can be derived by using the motion vectors of neighboring blocks as motion vector predictors and then using the motion vector predictor of the current block.
[0057] In the case of inter-frame prediction, neighboring blocks can include spatially neighboring blocks existing in the current frame and temporally neighboring blocks existing in a reference frame. The reference frame including the temporally neighboring block can be referred to as a colPic. Motion information can include motion vectors and reference frame indices. Information such as prediction mode information and motion information can be (entropy-encoded) and output as a bitstream.
[0058] When using motion information from time-proximity blocks in skip and merge modes, the highest-ranking frame in the reference frame list can be used as the reference frame. Reference frames included in the reference frame list can be arranged based on the frame order count (POC) difference between the current frame and its corresponding reference frame. The POC corresponds to the display order of the frames and is distinguishable from the encoding order.
[0059] Subtractor 121 generates residual samples as the difference between the original samples and the predicted samples. When the skip mode is applied, residual samples may not be generated as described above.
[0060] Transform module 122 transforms residual samples on a block-by-block basis to generate transform coefficients. Transform module 122 can perform the transform based on the size of the transform block and the prediction mode applied to the spatially overlapping coding or prediction blocks. For example, when intra-frame prediction is applied to overlapping coding or prediction blocks and the transform block is a 4×4 residual array, a Discrete Sine Transform (DST) core is used to transform the residual samples; in other cases, a Discrete Cosine Transform (DCT) core can be used.
[0061] The quantization module 123 can quantize the transform coefficients to generate quantized transform coefficients.
[0062] The rearrangement module 124 rearranges the quantized transform coefficients. The rearrangement module 124 can rearrange the block-form quantized transform coefficients into a one-dimensional vector form using a coefficient scan method. Here, the rearrangement module 124 is described in a separate configuration, but it can be part of the quantization module 123.
[0063] Entropy coding module 130 can perform entropy coding on the quantized transform coefficients. For example, entropy coding can include coding methods such as exponential Golomb, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. Entropy coding module 130 can encode, according to entropy coding or a predetermined method, information required for video reconstruction other than the quantized transform coefficients (e.g., values of syntax elements) together or separately. The encoded information can be transmitted or stored in the form of a bitstream in units of Network Abstraction Layer (NAL) units. The bitstream can be transmitted over a network or stored in a digital storage medium. Here, the network can include broadcast networks and / or communication networks, and the digital storage medium can include various storage media such as Universal Serial Bus (USB), Secure Digital (SD), CD, DVD, Blu-ray, Hard Disk Drive (HDD), Solid State Drive (SSD), etc.
[0064] The dequantization module 125 performs inverse quantization on the quantized values (quantization transformation coefficients) in the quantization module 123, and the inverse transformation module 126 performs inverse transformation on the inverse quantized values in the dequantization module 125 to generate residual samples.
[0065] Adder 140 reconstructs the image by combining residual samples and predicted samples. The residual samples and predicted samples can be added in blocks to generate reconstructed blocks. Adder 140 has been described here in a separate configuration, but it can be part of prediction module 110. Adder 140 may also be referred to as a reconstruction module or a reconstruction block generator.
[0066] The filtering module 150 can apply deblocking filtering and / or adaptive sample offset to the reconstructed image. Through deblocking filtering and / or adaptive sample offset, artifacts at block boundaries or distortions in quantization processing within the reconstructed image can be corrected. Adaptive sample offset can be applied on a sample-by-sample basis and can be applied after deblocking filtering is complete. The filtering module 150 can apply adaptive loop filtering (ALF) to the reconstructed image. ALF can be applied to the reconstructed image after applying deblocking filtering and / or adaptive sample offset.
[0067] The memory 160 can store reconstructed frames (decoded frames) or information required for encoding / decoding. Here, the reconstructed frame can be a frame that has undergone filtering processing by the filtering module 150. The stored reconstructed frame can be used as a reference frame for (inter-frame) prediction of another frame. For example, the memory 160 can store (reference) frames used for inter-frame prediction. In this case, the frames used for inter-frame prediction can be specified by a set of reference frames or a list of reference frames.
[0068] Figure 2 This diagram schematically illustrates the configuration of a video / image decoding device to which this document can be applied. Hereinafter, the video decoding device may include an image decoding device.
[0069] Reference Figure 2 The video decoding device 200 may include an entropy decoding module 210, a residual processing module 220, a prediction module 230, an adder 240, a filtering module 250, and a memory 260. Here, the residual processing module 220 may include a rearrangement module 221, a dequantization module 222, and an inverse transform module 223. Furthermore, although not shown, the video decoding device 200 may include a receiver for receiving a bitstream including video information. The receiver may be configured as a separate module or may be included in the entropy decoding module 210.
[0070] When the input includes a bitstream containing video / image information, the video decoding device 200 can reconstruct the video / image / picture to correspond to the processing of video / image information in the video encoding device.
[0071] For example, video decoding device 200 can use processing units applied in video encoding devices to perform video decoding. Therefore, the processing unit block for video decoding can be, for example, an encoding unit; in another example, the processing unit block for video decoding can be an encoding unit, a prediction unit, or a transform unit. The encoding unit can be split from the maximum encoding unit according to a quadtree structure, a binary tree structure, and / or a ternary tree structure.
[0072] In some cases, prediction units and transform units can also be used. In this case, the prediction block is a block derived or segmented from the coding unit and can be a unit for predicting samples. In this case, the prediction unit can be split into sub-blocks. The transform unit can be split from the coding unit according to the quadtree structure and can be a unit for deriving transform coefficients or a unit for deriving the residual signal from the transform coefficients.
[0073] The entropy decoding module 210 can parse the bitstream and output the information required for video reconstruction or image reconstruction. For example, the entropy decoding module 210 can decode the information in the bitstream based on encoding methods such as exponential Golomb coding, CAVLC, or CABAC and output the values of the syntax elements required for video reconstruction as well as the quantized values of the transform coefficients of the residuals.
[0074] More specifically, the CABAC entropy decoding method may include: receiving bins corresponding to each syntax element in the bitstream; determining a context model using information about the syntax elements to be decoded; decoding information about neighboring blocks and the block to be decoded, or information about symbols / bins decoded in the previous step; and predicting the probability of bin occurrence based on the determined context model, thus performing arithmetic decoding of the bins to generate symbols corresponding to the values of each syntax element. In this regard, after determining the context model, the CABAC entropy decoding method may further include the step of updating the context model using information about the decoded symbols / bins to determine the context model for the next symbol / bin.
[0075] Information related to prediction decoded by entropy decoding module 210 can be provided to prediction module 230, and the residual value (i.e., quantized transformation coefficient) of entropy decoding performed by entropy decoding module 210 can be input to rearrangement module 221.
[0076] Rearrangement module 221 can rearrange the quantized transform coefficients in a two-dimensional block format. Rearrangement module 221 can perform rearrangement to correspond to the coefficient scan performed by the encoding device. Here, rearrangement module 221 has been described in a separate configuration, but rearrangement module 221 can be part of dequantization module 222.
[0077] The dequantization module 222 can dequantize the quantized transform coefficients based on (inverse)quantization parameters to output transform coefficients. In this case, the encoding device can signal information used to derive the quantization parameters.
[0078] The inverse transformation unit 223 can perform inverse transformation on the transformation coefficients to derive the residual samples.
[0079] The prediction module 230 can perform prediction of the current block and generate a predicted block that includes the prediction samples of the current block. The unit for prediction performed by the prediction module 230 can be a coded block, a transform block, or a prediction block.
[0080] The prediction module 230 can determine whether to apply intra-frame prediction or inter-frame prediction based on information about the prediction. In this case, the unit that determines whether to apply intra-frame prediction or inter-frame prediction and the unit that generates prediction samples may be different. Furthermore, the unit that generates prediction samples may also be different in inter-frame prediction and intra-frame prediction. For example, whether to apply inter-frame prediction or intra-frame prediction can be determined in units of CU. Furthermore, for example, in inter-frame prediction, the prediction mode can be determined in units of PU and prediction samples can be generated, and in intra-frame prediction, the prediction mode can be determined in units of PU and prediction samples can be generated in units of TU.
[0081] In the case of intra-frame prediction, prediction module 230 can derive the prediction sample for the current block based on neighboring reference samples in the current frame. By applying a directional or non-directional mode based on the neighboring reference samples of the current block, prediction module 230 can derive the prediction sample for the current block. In this case, the intra-frame prediction mode of neighboring blocks can be used to determine the prediction mode to be applied to the current block.
[0082] In the case of inter-frame prediction, prediction module 230 can derive the prediction sample for the current block based on samples specified on the reference frame by motion vectors on the reference frame. Prediction module 230 can apply one of skip mode, merge mode, and MVP mode to derive the prediction sample for the current block. In this case, motion information (e.g., information about motion vectors, reference frame index, etc.) required for inter-frame prediction of the current block provided by the video coding device can be obtained or derived based on information about the prediction.
[0083] In skip and merge modes, motion information from neighboring blocks can be used as motion information for the current block. In this case, neighboring blocks can include spatially neighboring blocks and temporally neighboring blocks.
[0084] The prediction module 230 can construct a merge candidate list using motion information of available neighboring blocks and use the information indicated by the merge index on the merge candidate list as the motion vector of the current block. The merge index can be signaled from the encoding device. The motion information may include motion vectors and reference frames. When using motion information of temporally neighboring blocks in skip mode and merge mode, the highest frame in the reference frame list can be used as the reference frame.
[0085] In the skip mode, unlike the merge mode, the difference (residual) between the predicted sample and the original sample is not sent.
[0086] In MVP mode, the motion vectors of neighboring blocks can be used as motion vector predictors to derive the motion vector of the current block. In this case, neighboring blocks can include spatially neighboring blocks and temporally neighboring blocks.
[0087] For example, when applying the merge mode, a merge candidate list can be generated using the motion vectors of reconstructed spatially neighboring blocks and / or the motion vectors corresponding to Col blocks (temporally neighboring blocks). In merge mode, the motion vectors of candidate blocks selected from the merge candidate list are used as the motion vector of the current block. Information about the prediction may include a merge index, which indicates the candidate block with the optimal motion vector selected from the candidate blocks included in the merge candidate list. In this case, the prediction module 230 can use the merge index to derive the motion vector of the current block.
[0088] As another example, when applying the Motion Vector Prediction (MVP) mode, a list of motion vector predictor candidates can be generated using motion vectors corresponding to the motion vectors of the reconstructed spatial neighbor blocks and / or motion vectors corresponding to the Col blocks (temporally neighbor blocks). That is, the motion vectors of the reconstructed spatial neighbor blocks and / or motion vectors corresponding to the Col vectors (temporally neighbor blocks) can be used as motion vector candidates. Information about the prediction may include a predicted motion vector index, which indicates the optimal motion vector selected from the motion vector candidates included in the list. In this case, the prediction module 230 can use the motion vector index to select the predicted motion vector for the current block from the motion vector candidates included in the motion vector candidate list. The prediction unit of the encoding device can obtain the motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, and encode the MVD to output it as a bitstream. That is, the MVD can be obtained by subtracting the motion vector predictor from the motion vector of the current block. In this case, the prediction module 230 can obtain the motion vector difference included in the information about the prediction, and derive the motion vector of the current block by adding the motion vector difference to the motion vector predictor. The prediction unit can also obtain or derive reference screen indexes, etc., from information about the prediction.
[0089] Adder 240 can reconstruct the current block or current frame by adding the residual sample and the predicted sample. Adder 240 can reconstruct the current frame by adding the residual sample and the predicted sample on a block-by-block basis. When skip mode is applied, the residual is not sent, so the predicted sample can be the reconstructed sample. Adder 240 has been described here in a separate configuration, but adder 240 can be part of prediction module 230. Adder 240 can also be referred to as a reconstruction module or reconstruction block generator.
[0090] The filtering module 250 can apply deblocking filtering sample adaptive offset and / or ALF to the reconstructed image. In this case, the sample adaptive offset can be applied on a sample-by-sample basis and is applied after deblocking filtering. ALF can be applied after deblocking filtering and / or sample adaptive offset.
[0091] The memory 260 can store reconstructed frames (decoded frames) or information required for decoding. Here, the reconstructed frames can be frames reconstructed after the filtering process has been completed by the filtering module 250. For example, the memory 260 can store frames used for inter-frame prediction. In this case, the frames used for inter-frame prediction can be specified by a set of reference frames or a list of reference frames. The reconstructed frames can be used as reference frames for another frame. Furthermore, the memory 260 can output the reconstructed frames in the output order.
[0092] As described above, during video encoding, prediction is performed to increase compression efficiency. This generates a predicted block that includes predicted samples of the current block (the target encoding block). Here, the predicted block includes predicted samples in the spatial domain (or pixel domain). The predicted block is derived identically in both the encoding and decoding devices, and the encoding device can signal the decoding device information about the residual between the original block and the predicted block (residual information) rather than the original sample values of the original block themselves, thereby increasing image encoding efficiency. The decoding device can derive a residual block including residual samples based on the residual information, generate a reconstructed block including reconstructed samples by adding the residual block to the predicted block, and generate a reconstructed image including the reconstructed block.
[0093] Residual information can be generated through transformation and quantization processes. For example, an encoding device can derive a residual block between the original block and the predicted block, perform a transformation process on the residual samples (residual sample array) included in the residual block to derive transform coefficients, perform a quantization process on the transform coefficients to derive quantized transform coefficients, and signal the relevant residual information to the decoding device (via a bitstream). Here, residual information may include information such as the values of the quantized transform coefficients, their positions, the transform scheme, the transform core, and the quantization parameters. The decoding device can perform an inverse quantization / inverse transform process and derive residual samples (or residual blocks) based on the residual information. The decoding device can generate a reconstructed frame based on the predicted block and the residual block. The encoding device can perform inverse quantization / inverse transform on the quantized transform coefficients used for inter-frame prediction reference of subsequent frames to derive residual blocks and generate a reconstructed frame based on the residual blocks.
[0094] Figure 3 This is a diagram illustrating intra-frame prediction based on CCLM according to an implementation method.
[0095] According to the implementation, when intra-frame coding is performed on a chroma image, the Cross-Component Linear Model (CCLM) mode can be used as one of the prediction modes. CCLM is a method that predicts sample values (or pixel values) of a chroma image (or chroma block) based on sample values of a reconstructed luminance image (or luminance block), and it utilizes the high correlation between the luminance image and the chroma image.
[0096] In one implementation, intra-frame prediction of the CCLM mode based on Cb and Cr chromaticity images can be performed based on Equation 1.
[0097] [Formula 1]
[0098] Pred C (x, y) = a·Rec′ L ((x,y)+β
[0099] Pred C (x, y) refers to the sample values of the Cb or Cr chromaticity image to be predicted, Rec′ L (x, y) refers to the sample value of the reconstructed luminance block adjusted to the chroma block size, and (x, y) refers to the coordinates of the sample. In the 4:2:0 color format, since the luminance image is twice the size of the chroma image, a Rec′ of the chroma block size should be generated through downsampling. L And therefore, in addition to Rec L Beyond (2x, 2y), the sample values Pred in the chromaticity image must be... C The samples of the brightness image used in (x, y) can take into account neighboring samples. In one example, Rec′ can be derived based on the sample values of six neighboring samples. L(x, y), as shown in Equation 2.
[0100] [Equation 2]
[0101] Rec′ L (x, y) = (2 × Rec L (2x, 2y + 2×Rec) L (2x, 2y+1)+Rec L (2x-1, 2y)+Rec L ((2x+1,2y)+Rec L (2x-1, 2y+1)+Rec L (2x+1, 2y+1)+4)>>3
[0102] In one implementation, as shown in Equation 3, the linear model parameters α and β used when applying the CCLM mode can be derived based on the cross-correlation between the Cb or Cr neighboring chromaticity reference sample regions or templates and the difference between their average values. Figure 3 Like in the light shaded area.
[0103] [Formula 3]
[0104] β=M(t C )-αM(t L )
[0105] In Equation 3, t L This refers to the neighboring luminance reference sample of the luminance block corresponding to the current chroma block, t CL , where (x, y) refers to the neighboring reference chroma sample of the currently applied chroma block, and (x, y) refers to the sample position. Furthermore, M(A) refers to the average of sample A in the reference sample region. The reference sample of the luma block can also be derived based on downsampling as in Equation 3.
[0106] In another implementation, when the intra-prediction mode of the Cr chroma image is not CCLM mode, intra-prediction can be performed based on a basic intra-prediction mode (e.g., the basic intra-prediction mode may include DC mode, PLANAR mode, and other directional intra-prediction modes). CCLM can then be applied between the Cb chroma image and the Cr chroma image, and the result of applying CCLM can be reflected in the existing prediction block, as shown in Equation 3. In this case, either the Cb or Cr chroma image can be used to predict the other, and in the example, when using the Cb chroma image to predict the Cr chroma image, Equation 4 can be used.
[0107] [Formula 4]
[0108]
[0109] In Equation 4, pred Cr This can refer to the sample values of the final predicted Cr chromaticity block, pre_pred Cr This can refer to the sample values of the Cr chroma block predicted by an intra-frame prediction mode other than CCLM, residual. Cb This can refer to the residual sample values (or residual pixels) of the Cb chroma image that has already been encoded. In addition, α can be calculated as in Equation 1 by the cross-correlation between the neighboring reference sample regions of the Cb and Cr chroma blocks.
[0110] Figure 4 This is a diagram illustrating intra-frame prediction based on CCLM according to another embodiment.
[0111] In an implementation, when the upper reference sample line of the current (encoded) block is located at the boundary of another coding tree unit (CTU), reference sample downsampling can be performed using only the reference sample line directly above the current block, as in Equation 5, instead of downsampling according to Equation 2.
[0112] [Formula 5]
[0113] Rec′ L (x, y) = (2 × Rec L (2x, 2y+1)+Rec L (2x-1, 2y+1)+Rec L (2x+1, 2y+1)+2)>>2
[0114] That is, as shown in Equation 2, downsampling of the luminance block for CCLM uses 6 samples (or pixels), but in one embodiment according to Equation 5, when the upper reference sample row of the current block is located at the boundary of another CTU (or in the case of overlapping with the boundary of another CTU), downsampling can be performed using three samples from a reference sample row.
[0115] In hardware implementation, the more line buffers used, the higher the cost, as the line buffers should include both sample (or pixel) data and compressed information for the entire horizontal dimension of the image. According to the method proposed in the embodiment of Equation 5, CCLM prediction can be performed using only one line buffer at the upper CTU boundary, thus reducing the cost of hardware implementation by half the number of line buffers used at the upper CTU boundary.
[0116] Table 1 shows the usage based on Figure 4 Examples of experimental results for the proposed method and Equation 5 are provided in the implementation details. In one example, the anchor point of the experiment could be the addition of CCLM technology to the software of VTM1.0, and the result could be the image encoded with in-frame settings.
[0117] [Table 1]
[0118] Y U V Class A1 -0.01% 0.07% 0.00% Class A2 0.00% 0.06% 0.05% Class B 0.00% -0.02% 0.06% Class C 0.01% -0.11% 0.02% Class E 0.00% 0.05% -0.10% all 0.00% 0.00% 0.01% Class D -0.03% -0.03% 0.04%
[0119] Referring to Table 1, when used in Figure 4 When the method proposed in the embodiment according to Equation 5 is applied in CCLM mode, compared with the case where CCLM mode is applied without using the method proposed in the embodiment according to Equation 5, a BD rate of 0.00% for the luminance (Y) image, 0.00% for the chrominance image Cb, and 0.01% for the chrominance image Cr can be obtained. That is, even when using... Figure 4 When the method proposed in the implementation of Equation 5 is applied in CCLM mode, it can also be determined that no coding loss will occur.
[0120] In addition to the downsampling method proposed in Equation 5, in one implementation, the CCLM mode can be applied based on downsampling methods such as Equation 6 or Equation 7.
[0121] [Formula 6]
[0122] Rec′ L (x, y) = (3 × Rec L (2x, 2y+1)+Rec L (2x+12y+1)+2)>>2
[0123] [Formula 7]
[0124] Rec′ L (x, y) = Rec L (2x, 2y+1)
[0125] The downsampling methods according to Equations 2 and 5 to 7 can be applied to the CCLM mode as a chroma intra-frame prediction mode, and the chroma blocks predicted by the CCLM mode can be used in the encoding device (or encoder) to obtain a residual image (or residual image) by the difference with the original video, or in the decoding device (or decoder) to obtain a reconstructed image based on the sum with the residual signal.
[0126] Figure 5 This is a flowchart illustrating the intra-frame prediction processing based on CCLM according to an implementation method.
[0127] According to the embodiment, the decoding device 200 can generate a downsampled luminance template. In this case, the decoding device 200 can determine whether the upper boundary of the current block overlaps with the boundary of the CTU. If the upper boundary of the current block overlaps with the boundary of the CTU, an upper luminance template is generated based on 1 row of downsampling; and if the upper boundary of the current block does not overlap with the boundary of the CTU, an upper luminance template is generated based on 2 rows of downsampling. The decoding device 200 can generate a left luminance template based on 2 rows of downsampling.
[0128] According to the implementation method, the decoding device 200 can derive α and β as linear parameter model coefficients, generate downsampled luminance blocks, and perform CCLM prediction based on Equation 1.
[0129] Figure 6 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to an implementation.
[0130] In one implementation, to optimize the hardware pipeline for intra-frame prediction implemented with CCLM, a method for removing correlations between sample rows of blocks is proposed when downsampling the reconstructed luminance image.
[0131] As mentioned above, since CCLM is a method that uses the sample values of the reconstructed luma block to predict the sample values of the chroma block, CCLM prediction of the chroma block cannot be performed until the luma block at the same position has been encoded.
[0132] Furthermore, since the downsampling of the reconstructed image is applied using the method in Equation 2, correlations occur between sample rows of blocks. Therefore, when implementing CCLM hardware, clock delays may occur, such as... Figure 6 As shown.
[0133] Figure 6 This illustrates an example of a hardware pipeline that considers the presence of CCLM prediction within an 8×4 intra-frame prediction block. Figure 6 As shown, luminance sample prediction and reconstruction are performed in 4×1 units, and two clock cycles are required to decode a 4×1 block. Therefore, a total of 16 clock cycles may be needed to decode all luminance samples of an 8×4 block. When there is no correlation between the luminance and chrominance images, the luminance and chrominance images are decoded simultaneously. Therefore, when the clock corresponding to half of the luminance image (in...) Figure 6 In the example, decoding of the chroma image can be completed after 8 clock cycles have elapsed. However, when applying the CCLM algorithm, decoding is not possible after passing through the sample rows ( Figure 6 After the correlation between the fourth 4×1 row in the chroma block completes the encoding of the 2 sample rows of the luma block, CCLM can be applied to the 1 sample row of the chroma block. Therefore, even when the encoding of the luma block ends, the encoding of the chroma block may still have a four-clock delay.
[0134] Figure 7 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to another embodiment.
[0135] In one implementation, when downsampling the reconstructed luminance image for a CCLM, a method can be provided to reduce hardware pipeline clock latency by removing correlations between sample rows. Therefore, downsampling of the reconstructed luminance blocks can be performed based on Equations 8, 9, 10, or 11.
[0136] [Formula 8]
[0137] Rec′ L (x,y)=(2×Rec L (2x,2y)+2×Rec L (2x, 2y + 1) + Rec L (2x-1,2y)+2)>>2
[0138] [Formula 9]
[0139] Rec′ L (x,y)=(2×Rec L (2x,2y)+2×Rec L (2x+1,2y)+Rec L (2x-1,2y)+2)>>2
[0140] [Formula 10]
[0141] Rec′ L (x,y)=(3×Rec L (2x,2y)+2×Rec L (2x, 2y+1)) >> 2
[0142] [Equation 11]
[0143] Rec′ L (x,y)=(3×Rec L (2x,2y)+2×Rec L (2x+1,2y)>>2
[0144] The downsampling proposed in Equations 8 to 11 can be applied to areas outside the current neighboring reference sample area (or neighboring template area).
[0145] In implementation, when downsampling is performed by removing correlations between sample rows, it can be done as follows: Figure 7 The hardware pipeline optimization shown is executed. Figure 7 In the pipeline shown, the decoding of the chroma block can be performed immediately after the decoding of one sample line of the luma block is completed. Figure 7 The second 4×1 row), and after the decoding of the third sample row of the luma block is finally completed ( Figure 7The sixth 4×1 line can be used to decode the second sample line of the chroma block. Decoding the fourth sample line of the luma block requires 4 clocks, and decoding the second sample line of the chroma block also requires 4 clocks (2 clocks each for chroma Cb and Cr). Therefore, the decoding of the luma and chroma blocks can eventually be completed completely simultaneously without delay.
[0146] That is, the clock delay problem between the luminance block and the chrominance block can be solved by the method proposed in this embodiment, which can make up for the shortcomings of the hardware implementation of CCLM.
[0147] The method proposed in this patent can be used in CCLM mode as a chroma intra-frame prediction mode, and the chroma blocks predicted by CCLM mode can be used in the encoder to obtain a residual image by the difference with the original image, or in the decoder to obtain a reconstructed image by the sum with the residual signal.
[0148] Figure 8 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0149] According to the implementation method, the decoding device 200 can generate a downsampled luminance template and derive the linear parameter model coefficients α and β.
[0150] The decoding device 200 according to the embodiment can generate downsampled luminance blocks. In this case, the decoding device 200 can generate luminance samples based on one line of downsampling.
[0151] According to the implementation method, the decoding device 200 can perform CCLM prediction based on Equation 1.
[0152] Figure 9 This is a diagram illustrating an example of a hardware pipeline for intra-frame prediction based on CCLM according to another embodiment.
[0153] In one implementation, to optimize the hardware pipeline for implementing intra-frame prediction using CCLM, a method is proposed that does not apply CCLM when the horizontal length of the chroma block is 2 (or when the horizontal length of the chroma block is 4 in the case of a 4:4:4 image format).
[0154] Based on Figure 7 In the intra-frame prediction implementation of the above method, hardware pipeline optimization can be performed when CCLM mode is applied, but clock delay may occur when the horizontal length of the luma block is 4. Figure 9 This illustrates an example of a hardware pipeline that considers the presence of CCLM prediction within a 4×4 intra-frame prediction block based on luminance. Figure 9 In the middle, when applied according to Figure 7When the method of the implementation of the method is used to downsample the reconstructed luminance block, the correlation between sample rows is removed, but it can be determined that a delay of 2 clock cycles still occurs.
[0155] Therefore, in one implementation, to increase hardware implementation affinity of the CCLM mode, a method is proposed that does not apply CCLM when the horizontal length of the chroma block is 2 (or, in the case of a 4:4:4 image format, when the horizontal length of the chroma block is 4). That is, the hardware incompatibility problem of CCLM can be solved by eliminating the clock delay, which is a problem in hardware implementation.
[0156] Table 2 shows the usage based on Figure 7 Implementation methods and according to Figure 9 The implementation details the actual experimental results of the two methods proposed. In one example, the anchor point of the experiment could be the software that adds CCLM technology to VTM1.0, and represent the result of encoding the image with in-frame settings.
[0157] [Table 2]
[0158] Y U V Class A1 0.76% 4.49% 2.69% Class A2 0.13% 1.66% 1.08% Class B 0.08% 1.50% 2.23% Class C 0.39% 3.39% 4.02% Class E 0.02% 0.21% 0.26% all 0.26% 2.23% 2.19% Class D 0.18% 2.97% 2.45%
[0159] As shown in Table 2, when using according to Figure 7 Implementation methods and according to Figure 9 When implementing the two methods proposed, a BD rate of 0.26% for the luminance image and 2.23% Cb / 2.19% for the chrominance image can be obtained. Some performance loss occurs because CCLM is not applied in the 4×N block, but the benefits of CCLM are still achieved. (Compared to VTM1.0, Y-1.28%, Cb-8.03%, Cr-8.67%)
[0160] according to Figure 7 Implementation methods and according to Figure 9 The proposed method in the implementation can be applied to CCLM mode as a chroma intra-frame prediction mode, and the chroma blocks predicted by CCLM mode can be used in the encoding device (or encoder) to obtain a residual image by the difference with the original image, or in the decoding device (or decoder) to obtain an image reconstructed based on the sum with the residual signal.
[0161] Figure 10 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0162] When the horizontal length (or width) of the luma block is not 4, the decoding device 200 according to the embodiment can generate a downsampled luma template, derive the linear parameter model coefficients α and β, generate a downsampled luma block, and perform CCLM prediction based on Equation 1. Conversely, when the horizontal length (or width) of the luma block is 4, the above process (generating a downsampled luma template, deriving the linear parameter model coefficients α and β, generating a downsampled luma block, and performing CCLM prediction based on Equation 1) can be omitted.
[0163] Figure 11 This is a diagram illustrating intra-frame prediction processing based on CCLM according to another embodiment.
[0164] In one implementation, a method is proposed to restrict the reference sample line when the upper reference sample line of the current (encoded) block is located at the boundary of another luma / chroma block separation unit block.
[0165] In this implementation, in the case of I-slices, the luma and chroma blocks can be separated, thus enabling encoding and decoding. In one example, the size of the luma / chroma block separation unit can be 64×64, but this is not an isolated example. The luma / chroma block separation unit may be referred to as a Virtual Pipeline Data Unit (VPDU).
[0166] For hardware pipelines and parallel processing, it is necessary to minimize the correlation between luma / chroma block separation units. In one implementation, for optimized parallel processing, the luma reference sample used for CCLM reconstruction may not be used at the upper boundary of the luma / chroma block separation unit. That is, as... Figure 11 As shown, at the upper boundary of the luma / chroma block separation unit block, redundancy issues in the hardware pipeline implementation can be prevented by using the left reference sample row only for CCLM.
[0167] Figure 12 This is a flowchart illustrating an intra-frame prediction process based on CCLM according to another embodiment.
[0168] According to the embodiment, the decoding device 200 can generate a downsampled luminance template. In this case, the decoding device 200 can determine whether the upper boundary of the current block overlaps with the boundary of the luminance / chrominance block separation unit block. If the upper boundary of the current block overlaps with the boundary of the luminance / chrominance block separation unit block, the decoding device 200 may not generate an upper luminance template. If the upper boundary of the current block does not overlap with the boundary of the luminance / chrominance block separation unit block, the decoding device 200 can generate an upper luminance template based on two rows of downsampling. The decoding device 200 can also generate a left luminance template based on two rows of downsampling.
[0169] According to the implementation method, the decoding device 200 can derive α and β as linear parameter model coefficients, generate downsampled luminance blocks, and perform CCLM prediction based on Equation 1.
[0170] Figure 13 This is a flowchart illustrating the operation of the encoding device according to an embodiment. Figure 14 This is a block diagram illustrating the configuration of an encoding device according to an embodiment.
[0171] according to Figure 13 and Figure 14 The encoding device can perform and according to Figure 15 and Figure 16 The operation corresponding to the decoding device (described later). Therefore, refer to [link / reference] later. Figure 15 and Figure 16 The content described can be similarly applied to... Figure 13 and Figure 14 Encoding devices.
[0172] Figure 13 The steps disclosed in the document can be obtained by Figure 1 The encoding device 100 disclosed herein performs the operation. More specifically, S1300 and S1310 can be executed by... Figure 1 The adder 140 disclosed herein is executed, and steps S1320 to S1340 can be performed by... Figure 1 The prediction module 110 disclosed in the document is executed, and S1350 can be executed by... Figure 1 The residual processing module 120 disclosed in the document executes S1360, which can be performed by... Figure 1 The entropy encoding module 130 disclosed in the document is executed. Furthermore, the operations from S1300 to S1360 are based on the above reference. Figures 3 to 12 The description includes some content to be performed. Therefore, the omitted or brief description will be compared with the above reference. Figure 1 and Figures 3 to 12 The descriptions are repeated in detail.
[0173] like Figure 14 As shown, the encoding device according to the embodiment may include a prediction module 110, a residual processing module 120, an entropy encoding module 130, and an adder 140. However, in some cases, it may not be... Figure 14 All components shown are essential components of the encoding device, and the encoding device can be composed of components that are not identical to those shown. Figure 14 The components shown may be implemented with more or fewer components. For example, the encoding device may also include memory 160.
[0174] In the encoding device according to the embodiment, the prediction module 110, the residual processing module 120, the entropy encoding module 130 and the adder 140 may each be implemented as a separate chip, or at least two components may be implemented through a single chip.
[0175] When the intra-frame prediction mode of the chroma block is CCLM mode, the coding apparatus according to the embodiment can derive the neighboring chroma reference samples of the chroma block (S1300). More specifically, when the intra-frame prediction mode of the chroma block is CCLM mode, the adder 140 of the coding apparatus can derive the neighboring chroma reference samples of the chroma block.
[0176] The encoding device according to the embodiment can derive a neighboring luminance reference sample and a luminance sample in the luminance block corresponding to the chroma block (S1310). More specifically, the prediction module 110 of the encoding device can derive a neighboring luminance reference sample and a luminance sample in the luminance block corresponding to the chroma block.
[0177] The encoding device according to the embodiment can downsample the neighboring luminance reference sample and the luminance sample to derive the downsampled neighboring luminance reference sample and the downsampled luminance sample (S1320). More specifically, the prediction module 110 of the encoding device can downsample the neighboring luminance reference sample and the luminance sample to derive the downsampled neighboring luminance reference sample and the downsampled luminance sample.
[0178] In one implementation, when the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighbor luminance reference samples used to derive the downsampling in the neighbor luminance reference samples may be less than the number of left neighbor luminance reference samples used to derive the downsampling.
[0179] The encoding device according to the embodiment can derive linear model parameters based on downsampled neighboring luminance reference samples and neighboring chrominance reference samples (S1330). More specifically, the prediction module 110 of the encoding device can derive linear model parameters based on downsampled neighboring luminance reference samples and neighboring chrominance reference samples.
[0180] The encoding device according to the embodiment can generate a prediction sample of the chroma block based on linear model parameters and downsampled luminance samples of the luminance block (S1340). More specifically, the prediction module 110 of the encoding device can generate a prediction sample of the chroma block based on linear model parameters and downsampled luminance samples of the luminance block.
[0181] The encoding device according to the embodiment can derive the residual samples of the chroma blocks based on the predicted samples of the chroma blocks (S1350). More specifically, the residual processing module 120 of the encoding device can derive the residual samples of the chroma blocks based on the predicted samples of the chroma blocks.
[0182] The encoding device according to the embodiment can encode image information including information about residual samples (S1360). More specifically, the entropy encoding module 130 of the encoding device can encode image information including information about residual samples.
[0183] according to Figure 13 and Figure 14 The disclosed encoding device and its operation method, when the intra-frame prediction mode of the chroma block is CCLM mode, allow the encoding device to derive neighboring chroma reference samples of the chroma block (S1300), derive neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block (S1310), downsample the neighboring luminance reference samples and luminance samples to derive downsampled neighboring luminance reference samples and downsampled luminance samples (S1320), derive linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples (S1330), and generate prediction samples of the chroma block based on the linear model parameters and the downsampled luminance samples of the luminance block. (S1340) The residual samples of the chroma blocks are derived based on the predicted samples of the chroma blocks (S1350), and the picture information including information about the residual samples is encoded (S1360). The neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block. When the upper boundary of the luminance block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples can be less than the number of left neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples. That is, when performing CCLM-based intra-frame prediction, image coding efficiency can be improved by downsampling the neighboring luminance reference samples of one sample row, and pipeline latency can be improved when implementing CCLM-based intra-frame prediction in hardware.
[0184] Figure 15 This is a flowchart illustrating the operation of the decoding device according to an embodiment. Figure 16 This is a block diagram illustrating the configuration of a decoding device according to an embodiment.
[0185] Figure 15 The steps disclosed in the document can be obtained by Figure 2 The decoding device 200 disclosed herein performs the operation. More specifically, S1500, S1510, and S1550 can be executed by... Figure 2 The adder 240 disclosed herein executes S1510 to S1540, which can be performed by... Figure 2 The prediction module 230 disclosed in the document is executed. Furthermore, the operations from S1500 to S1550 are based on the above reference. Figures 3 to 12 The description includes some content to be executed. Therefore, the omission or brief description above will be used to describe the process. Figures 2 to 12 The description in the text is a repeated detailed description.
[0186] like Figure 16 As shown, the decoding device according to the embodiment may include a prediction module 230 and an adder 240. However, in some cases, it may not be... Figure 16 All components shown are essential components of the decoding device, and the decoding device can be made by... Figure 16 The components shown may be implemented with more or fewer components. In one example, the decoding device may also include memory 260.
[0187] In the decoding device according to the embodiment, the prediction module 230 and the adder 240 may each be implemented as separate chips, or at least the two components may be implemented by a single chip.
[0188] When the intra-frame prediction mode of the chroma block is CCLM mode, the decoding device according to the embodiment can derive the neighboring chroma reference sample of the chroma block (S1600). More specifically, when the intra-frame prediction mode of the chroma block is CCLM mode, the adder 140 of the decoding device can derive (or reconstruct) the neighboring chroma reference sample of the chroma block.
[0189] According to the embodiment, the decoding device can derive a neighboring luminance reference sample and a luminance sample in the luminance block corresponding to the chroma block (S1610). More specifically, the prediction module 230 and / or adder 240 of the decoding device can derive a neighboring luminance reference sample and a luminance sample in the luminance block corresponding to the chroma block.
[0190] The decoding device according to the embodiment can downsample the neighboring luminance reference sample and the luminance sample to derive the downsampled neighboring luminance reference sample and the downsampled luminance sample (S1620). More specifically, the prediction module 230 of the decoding device can downsample the neighboring luminance reference sample and the luminance sample to derive the downsampled neighboring luminance reference sample and the downsampled luminance sample.
[0191] In one implementation, the neighboring brightness reference samples include an upper neighboring brightness reference sample located above the upper boundary of the brightness block and a left neighboring brightness reference sample located to the left of the left boundary of the brightness block. When the upper boundary of the brightness block overlaps with the boundary of the coding tree unit (CTU), the number of upper neighboring brightness reference samples used for deriving downsampling in the neighboring brightness reference samples may be less than the number of left neighboring brightness reference samples used for deriving downsampling.
[0192] In this implementation, when the upper boundary of the luminance block overlaps with the boundary of the CTU, the upper neighboring luminance reference sample may be included in a horizontal row of 1 samples located above the luminance block. Furthermore, the left neighboring luminance reference sample may be included in multiple horizontal or vertical rows of samples to the left of the luminance block. For example, the left neighboring luminance reference sample may be included in two horizontal rows of samples to the left of the luminance block, or in three vertical rows of samples to the left of the luminance block, but this is not the only possible example.
[0193] In one implementation, the downsampled neighboring luminance reference sample includes a downsampled left neighboring luminance reference sample and a downsampled upper neighboring luminance reference sample. When the upper boundary of the luminance block overlaps with the boundary of the CTU, the number of upper neighboring luminance reference samples used to derive a downsampled upper neighboring luminance reference sample can be three, and the number of left neighboring luminance reference samples used to derive a downsampled left neighboring luminance reference sample can be six.
[0194] In one implementation, when the coordinates of the current sampled upper neighbor brightness reference sample are (x, -1), the three upper neighbor brightness reference samples can be located at coordinates (2*x-1, -1), (2*x, -1) and (2*x+1, -1), respectively.
[0195] In one implementation, when the current sampling upper neighbor brightness reference sample has coordinates (0,-1) and there is a sample value of a brightness reference sample corresponding to coordinates (-1,-1), the three upper neighbor brightness reference samples can be located at coordinates (-1,-1), (0,-1) and (1,-1), respectively.
[0196] In one implementation, when the downsampled upper neighbor luminance reference sample has coordinates (0,-1) and there is no sample value of a luminance reference sample corresponding to coordinates (-1,-1), in order to derive the downsampled upper neighbor luminance reference sample, an upper neighbor luminance reference sample can be used, and the sample value of the downsampled upper neighbor luminance reference sample can be determined as the sample value of the upper neighbor luminance reference sample located at coordinates (0,-1).
[0197] In one implementation, the linear model parameters may include a first linear model parameter representing a scaling factor and a second linear model parameter representing an offset.
[0198] The decoding device according to the embodiment can derive linear model parameters based on downsampled neighboring luminance reference samples and neighboring chrominance reference samples (S1630). More specifically, the prediction module 230 of the decoding device can derive linear model parameters based on downsampled neighboring luminance reference samples and neighboring chrominance reference samples.
[0199] According to the embodiment, the decoding device can generate a prediction sample of the chroma block based on linear model parameters and downsampled luminance samples of the luminance block (S1640). More specifically, the prediction module 230 of the decoding device can generate a prediction sample of the chroma block based on linear model parameters and downsampled luminance samples of the luminance block.
[0200] The decoding device according to the embodiment can reconstruct the chroma block based on the predicted samples of the chroma block (S1650). More specifically, the adder 240 of the decoding device can reconstruct the chroma block based on the predicted samples of the chroma block.
[0201] In one embodiment, the above-described CCLM-based intra-frame prediction may be implemented, for example, according to the following specifications.
[0202] summary
[0203] This implementation provides experimental results for CCLM line buffer limitations. Experimental results from the full-frame configuration show bit rate increases of 0.01%, 0.01%, and 0.04% on the Y, Cb, and Cr components, respectively, compared to VTM2.0.1.
[0204] 1) The proposed method
[0205] The current VVC specification's CCLM (Cross-Component Linear Model) method always uses two rows of reconstructed luminance reference samples to obtain the downsampled juxtaposed luminance. In this proposal, to avoid increasing the line buffer size in intra-frame prediction, when the upper reference line is at the CTU boundary, only one luminance line (the common line buffer in intra-frame prediction) is used to form the downsampled luminance sample.
[0206] 2) Experimental Results
[0207] The proposed method has been implemented using BMS-2.0.1 as the software foundation, and VTM testing has been experimentally evaluated based on the common test conditions defined in JVET-K1010 and the core experimental descriptions in JVET-K1023. For VTM-based testing, VTM configuration was enabled.
[0208] Tables 3 and 4 show the test results under AI and RA configurations.
[0209] Table 3: Experimental results of Test 1 under the full-frame (AI) test conditions; anchor point is VTM2.0.1
[0210]
[0211] Table 4: Experimental results of Test 1 under the Random Access (RA) test conditions; anchor point is VTM2.0.1
[0212]
[0213] 3) Specification of INTRA_CCLM intra-prediction mode using the proposed method
[0214] The input for this process is:
[0215] The chroma position (xCbC, yCbC) of the top-left sample of the current coded block relative to the top-left sample of the current frame.
[0216] The sample position (xTbC, yTbC) of the top-left sample of the current transform block relative to the top-left sample of the current frame.
[0217] The variable nTbW specifies the width of the transform block.
[0218] The variable nTbH specifies the height of the transform block.
[0219] Chromaticity neighbor samples p[x][y], where x = -1, y = 0..nTbH-1, and x = 0..nTbW-1, y = -1.
[0220] The output of this process is the predicted samples predSamples[x][y], where x = 0..nTbW-1 and y = 0..nTbH-1.
[0221] The current brightness position (xTbY, yTbY) is derived as follows:
[0222] (xTbY,yTbY)=(xTbC<<1,yTbC<<1)
[0223] The variables availL, availT, and availTL are derived as follows:
[0224] The availability of the left neighbor sample derivation process of the block specified in Clause 6.4.X [Ed.(BB): Neighbor Block Availability Check Processing tbd] is invoked, with the current luminance position (xCurr, yCurr) and the neighboring luminance position (xTbY-1, yTbY) set to (xTbY, yTbY) as input, and the output is assigned to availL.
[0225] The availability of the upper neighbor sample derivation process of the block specified in Clause 6.4.X [Ed.(BB): Neighbor Block Availability Check Processing tbd] is invoked, with the current luminance position (xCurr, yCurr) and the neighboring luminance position (xTbY, yTbY-1) set to (xTbY, yTbY) as input, and the output is assigned to availT.
[0226] The availability of the top-left neighbor sample derivation process for the block specified in Clause 6.4.X [Ed.(BB): Neighbor Block Availability Check Processing tbd] is invoked, with the current luminance position (xCurr, yCurr) and the neighboring luminance position (xTbY-1, yTbY-1) set to (xTbY, yTbY) as input, and the output is assigned to availTL.
[0227] The variable bCTUboudary is derived as follows:
[0228] bCTUboudary=yCbC&((1<<(CtbLog2SizeY-1)-1)==0
[0229] The predicted samples predSamples[x][y] (x=0..nTbW-1,y=0..nTbH-1) are derived as follows:
[0230] If both availL and availT are equal to FALSE, then the following applies:
[0231] predSamples[x][y]=1<<(BitDepthC-1)
[0232] Otherwise, apply the following sequential steps:
[0233] 1. The juxtaposed luminance sample pY[x][y] (x=0..nTbW*2-1,y=0..nTbH*2-1) is set to be equal to the reconstructed luminance sample at position (xTbY+x,yTbY+y) before the unblocking filtering process.
[0234] 2. The derivation of neighboring brightness sample pY[x][y] is as follows:
[0235] When availL equals TRUE, the neighboring left luminance sample pY[x][y] (x=-1..-3,y=0..2*nTbH-1) is set to be equal to the reconstructed luminance sample at position (xTbY+x,yTbY+y) before the unblocking filtering process.
[0236] When availT equals TRUE, the neighboring upper luminance sample pY[x][y] (x=0..2*nTbW-1,y=-1,-2) is set to be equal to the reconstructed luminance sample at position (xTbY+x,yTbY+y) before the unblocking filtering process.
[0237] When availTL equals TRUE, the adjacent top-left luminance sample pY[x][y] (x=-1,y=-1,-2) is set to be equal to the reconstructed luminance sample at position (xTbY+x,yTbY+y) before the unblocking filtering process.
[0238] 3. The downsampled juxtaposed brightness samples pDsY[x][y] (x=0..nTbW-1, y=0..nTbH-1) are derived as follows:
[0239] The derivation of -pDsY[x][y](x=1..nTbW-1,y=0..nTbH-1) is as follows:
[0240] pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3
[0241] If availL equals TRUE, then pDsY[0][y] (y = 0..nTbH-1) is derived as follows:
[0242] pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[0][2*y]+2*pY[0][2*y+1]+pY[1][2*y]+pY[1][2*y+1]+4)>>3
[0243] Otherwise, pDsY[0][y] (y=0..nTbH-1) is derived as follows:
[0244] pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1
[0245] 4. When availL equals TRUE, the downsampled neighboring left brightness sample pLeftDsY[y] (y=0..nTbH-1) is derived as follows:
[0246] pLeftDsY[y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[-2][2*y]+2*pY[-2][2*y+1]+pY[-3][2*y]+pY[-3][2*y+1]+4)>>3
[0247] 5. When availT equals TRUE and bCTUboudary equals FALSE, the downsampled neighboring uplight samples pTopDsY[x] (x = 0..nTbW-1) are specified as follows:
[0248] The derivation of -pTopDsY[x](x=1..nTbW-1) is as follows:
[0249] pTopDsY[x]=(pY[2*x-1][-2]+pY[2*x-1][-1]+2*pY[2*x][-2]+2*pY[2*x][-1]+pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3
[0250] If availTL equals TRUE, then pTopDsY[0] is derived as follows:
[0251] pTopDsY[0]=(pY[-1][-2]+pY[-1][-1]+2*pY[0][-2]+2*pY[0][-1]+pY[1][-2]+pY[1][-1]+4)>>3
[0252] Otherwise, pTopDsY[0] is derived as follows:
[0253] pTopDsY[0]=(pY[0][-2]+pY[0][-1]+1)>>1
[0254] 6. When availT equals TRUE and bCTUboudary equals TRUE, the downsampled neighboring uplight sample pTopDsY[x] (x = 0..nTbW-1) is specified as follows:
[0255] The derivation of -pTopDsY[x](x=1..nTbW-1) is as follows:
[0256] pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2
[0257] If availTL equals TRUE, then pTopDsY[0] is derived as follows:
[0258] pTopDsY[0]=(pY[-1][-1]+2*pY[0][-1]+pY[1][-1]+2)>>2
[0259] Otherwise, pTopDsY[0] is derived as follows:
[0260] pTopDsY[0]=pY[0][-1]
[0261] 7. The variables nS, xS, yS, k0, and k1 are derived as follows:
[0262] nS=((availL&&availT)?Min(nTbW,nTbH):(availL?nTbH:nTbW))
[0263] xS=1<<(((nTbW>nTbH)&&availL&&availT)?(Log2(nTbW)-Log2(nTbH)):0)
[0264] yS=1<<(((nTbH>nTbW)&&availL&&availT)?(Log2(nTbH)-Log2(nTbW)):0)
[0265] k1=((availL&&availT)?Log2(nS)+1:Log2(nS))
[0266] k0 = BitDepthC + k1 - 15
[0267] 8. The variables l, c, ll, lc, and k1 are derived as follows:
[0268]
[0269]
[0270]
[0271]
[0272]
[0273] 9. When k0 is greater than 0, the variables l, c, ll, lc, and k1 are modified as follows.
[0274] l=(l+(l<<(k0-1)))>>k0
[0275] c = (c + (c << (k0-1))) >> k0
[0276] ll=(ll+(ll<<(k0-1)))>>k0
[0277] lc=(lc+(lc<<(k0-1)))>>k0
[0278] k1 = k1 - k0
[0279] 10. The variables a, b, and k are derived as follows:
[0280] If k1 equals 0, then the following applies:
[0281] k = 0
[0282] a = 0
[0283] b = 1 << (BitDepthC-1)
[0284] Otherwise, the following applies:
[0285] avgY = l >> k1
[0286] errY = l & ((1 << k1) - 1)
[0287] avgC = c >> k1
[0288] errC = c & ((1 << k1) - 1
[0289] a1 = lc - ((avgY * avgC) << k1 + avgY * errC + avgC * errY)
[0290] a2 = ll - ((avgY2) << k1 + 2 * avgY * errY)
[0291] k2 = (a1 == 0)? 0 : Max(0, Floor(Log2(Abs(a1))) - BitDepthC + 2)
[0292] k3 = (a2 == 0)? 0 : Max(0, Floor(Log2(Abs(a2))) - 5)
[0293] k4 = k3 - k2 + BitDepthC - 2
[0294] a1s = a1 >> k2
[0295] a2s = a2 >> k3
[0296] a2t = (a2s < 32)? 0 : ((1 << (BitDepthY + 4)) + a2s / 2) / a2s
[0297] if (a2s < 32)
[0298] a3 = 0
[0299] else if (a2s >= 32 && k4 >= 0)
[0300] a3 = (a1s * a2t) >> k4
[0301] else
[0302] a3 = (a1s * a2t) << (-k4)
[0303] a4 = Clip3(-28, 28 - 1, a3)
[0304] a5 = a4 << 7
[0305] k5=(a5==0)? 0:Floor(Log2(Abs(a5)+(Sign2(a5)-1) / 2))–5
[0306] k = 13 - k5
[0307] a = a5 >> k5
[0308] b = avgC - ((a*avgY)>>k)
[0309] 11. The predicted samples predSamples[x][y] (x=0..nTbW-1, y=0..nTbH-1) are derived as follows:
[0310] predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b)
[0311] In this specification, formulas 12 to 14 are disclosed in particular.
[0312] [Equation 12]
[0313] bCTUboundary=yCbC&((1<<(CtbLog2SizeY-1)-1)==0
[0314] Regarding Equation 12, it can be determined whether the upper boundary of the luminance block overlaps with the boundary of the CTU based on whether Equation 12 is TRUE or FALSE. In Equation 12, yCbC can represent the y-axis position of the upper left sample of the current chroma block of the current chroma image, and CtbLog2SizeY can represent the logarithmic value of the luminance CTB size.
[0315] Next, Equation 13 is as follows.
[0316] [Equation 13]
[0317] pTopDsY[x]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2
[0318] In Equation 13, pTopDsY[x] represents the sample value of the luminance reference sample that has been downsampled and is located on the upper side of the upper boundary of the luminance block, x represents the x-axis position of the downsampled luminance reference sample, pY[2*x-1][-1], pY[2*x][-1] and pY[2*x+1][-1] represent the sample values of the luminance reference samples located on the upper side, and the y-axis position of the luminance reference samples located on the upper side is -1.
[0319] In the implementation, when the value of x is 0 and there is a sample value pY[-1][-1], Equation 13 can be expressed as Equation 14.
[0320] [Formula 14]
[0321] pTopDsY[0]=(pY[–1][-1]+2*pY[0][-1]+pY[1][-1]+2)>>2
[0322] In Equation 14, pTopDsY[0] represents the sample value of the brightness reference sample located on the upper side of the upper boundary when the x-axis position of the brightness reference sample located on the upper side of the upper boundary is 0 after the application of downsampling. pY[-1][-1], pY[0][-1] and pY[1][-1] represent the sample values of the brightness reference sample located on the upper side, and the y-axis position of the brightness reference sample located on the upper side is -1.
[0323] In the implementation, when the value of x is 0 and there are no sample values of pY[-1][-1], Equation 13 can be expressed as Equation 15.
[0324] [Formula 15]
[0325] pTopDsY[0]=pY[0][-1]
[0326] In Equation 15, pTopDsY[0] represents the sample value of the luminance reference sample that is downsampled and located on the upper side of the upper boundary when the x-axis position of the luminance reference sample located on the upper side of the upper boundary is 0, and pY[0][-1] represents the sample value of the luminance reference sample located on the upper side of the luminance block.
[0327] according to Figure 15 and Figure 16The decoding device and the method of operating the decoding device, when the intra-frame prediction mode of the chroma block is the cross-component linear model (CCLM) mode, the decoding device derives the neighboring chroma reference samples of the chroma block (S1600), derives the neighboring luminance reference samples and luminance samples in the luminance block corresponding to the chroma block (S1610), downsamples the neighboring luminance reference samples and luminance samples to derive downsampled neighboring luminance reference samples and downsampled luminance samples (S1620), derives the linear model parameters based on the downsampled neighboring luminance reference samples and neighboring chroma reference samples (S1630), and derives the linear model parameters based on the linear model parameters and luminance... The luminance samples of the block are downsampled to generate prediction samples for the chrominance block (S1640), and the chrominance block is reconstructed based on the prediction samples of the chrominance block (S1650). The neighboring luminance reference samples include an upper neighboring luminance reference sample located above the upper boundary of the luminance block and a left neighboring luminance reference sample located to the left of the left boundary of the luminance block. When the upper boundary of the luminance block overlaps with the boundary of a coding tree unit (CTU), the number of upper neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples can be less than the number of left neighboring luminance reference samples used to derive the downsampled neighboring luminance reference samples. That is, when performing CCLM-based intra-frame prediction, image coding efficiency can be improved by downsampling neighboring luminance reference samples of one sample row, and pipeline latency can be improved when CCLM-based intra-frame prediction is implemented in hardware.
[0328] The method described above according to this document can be implemented in software, and the encoding and / or decoding devices according to this document can be included in devices that perform image processing, such as TVs, computers, smartphones, set-top boxes, display devices, etc.
[0329] The aforementioned parts, modules, or units can be processors or hardware components that execute sequential processes stored in memory (or storage units). The steps described in the above embodiments can be executed by a processor or hardware component. The modules / blocks / units described in the above embodiments can operate as hardware / processors. Furthermore, the methods proposed in this document can be executed as code. The code can be written to a processor-readable storage medium and therefore can be read by a processor provided by the device.
[0330] In the above embodiments, a series of steps or blocks are used to describe the method based on a flowchart; however, this document is not limited to this order of steps. Some steps may occur simultaneously, or in a different order than those described above. Furthermore, those skilled in the art will understand that the steps shown in the sequence diagram are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted, without affecting the scope of this document.
[0331] When the embodiments described in this document are implemented in software, the above methods can be implemented by modules (processes, functions, etc.) that perform the above functions. These modules can be stored in memory and executed by a processor. The memory can be internal or external to the processor, and the memory can be connected to the processor using various well-known means. The processor may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices. The memory may include ROM (read-only memory), RAM (random access memory), flash memory, memory cards, storage media, and / or other storage devices.
Claims
1. An image decoding method performed by a decoding device, the image decoding method comprising the following steps: Obtain image information, including residual information, from the bitstream; The downsampled neighboring luminance samples are derived from the neighboring luminance samples of the luminance blocks associated with the chrominance blocks. The linear model parameters are derived based on the neighboring chromaticity samples of the chromaticity block and the downsampled neighboring luminance samples. The downsampled brightness sample is derived based on the brightness sample in the brightness block; The predicted sample of the chroma block is derived based on the linear model parameters and the downsampled luminance sample; The residual samples of the chroma block are derived based on the residual information; as well as Reconstructed samples are generated based on the predicted samples and the residual samples. The neighboring brightness samples include the upper neighboring brightness samples located above the upper boundary of the brightness block. The downsampled neighboring brightness samples include the downsampled upper neighboring brightness samples. Specifically, based on the fact that the current coding tree unit (CTU) where the luminance block is located is equal to the CTU where the upper neighbor luminance sample is located, six upper neighbor luminance samples from the two sample rows are used to derive the downsampled upper neighbor luminance sample, and Wherein, based on the fact that the current CTU where the luminance block is located is different from the CTU where the upper neighbor luminance sample is located, three upper neighbor luminance samples in the upper neighbor luminance samples of a sample row are used to derive the downsampled upper neighbor luminance sample.
2. An image encoding method performed by an encoding device, the image encoding method comprising the following steps: The downsampled neighboring luminance samples are derived from the neighboring luminance samples of the luminance blocks associated with the chrominance blocks. The linear model parameters are derived based on the neighboring chromaticity samples of the chromaticity block and the downsampled neighboring luminance samples. The downsampled brightness sample is derived based on the brightness sample in the brightness block; The predicted sample of the chroma block is derived based on the linear model parameters and the downsampled luminance sample; The residual samples are derived based on the predicted samples; Residual information is generated based on the residual samples; and The image information, including the residual information, is encoded. The neighboring brightness samples include the upper neighboring brightness samples located above the upper boundary of the brightness block. The downsampled neighboring brightness samples include the downsampled upper neighboring brightness samples. Specifically, based on the fact that the current coding tree unit (CTU) where the luminance block is located is equal to the CTU where the upper neighbor luminance sample is located, six upper neighbor luminance samples from the two sample rows are used to derive the downsampled upper neighbor luminance sample, and Wherein, based on the fact that the current CTU where the luminance block is located is different from the CTU where the upper neighbor luminance sample is located, three upper neighbor luminance samples in the upper neighbor luminance samples of a sample row are used to derive the downsampled upper neighbor luminance sample.
3. A computer-readable digital storage medium for storing a bitstream generated by a method, the method comprising the following steps: The downsampled neighboring luminance samples are derived from the neighboring luminance samples of the luminance blocks associated with the chrominance blocks. The linear model parameters are derived based on the neighboring chromaticity samples of the chromaticity block and the downsampled neighboring luminance samples. The downsampled brightness sample is derived based on the brightness sample in the brightness block; The predicted sample of the chroma block is derived based on the linear model parameters and the downsampled luminance sample; The residual samples are derived based on the predicted samples; Residual information is generated based on the residual samples; as well as, The image information is encoded to generate the bitstream, wherein the image information includes the residual information. The neighboring brightness samples include the upper neighboring brightness samples located above the upper boundary of the brightness block. The downsampled neighboring brightness samples include the downsampled upper neighboring brightness samples. Specifically, based on the fact that the current coding tree unit (CTU) where the luminance block is located is equal to the CTU where the upper neighbor luminance sample is located, six upper neighbor luminance samples from the two sample rows are used to derive the downsampled upper neighbor luminance sample, and Wherein, based on the fact that the current CTU where the luminance block is located is different from the CTU where the upper neighbor luminance sample is located, three upper neighbor luminance samples in the upper neighbor luminance samples of a sample row are used to derive the downsampled upper neighbor luminance sample.
4. A method for transmitting data for an image, the method comprising the following steps: A bitstream is obtained, wherein the bitstream is generated based on the following steps: deriving downsampled neighboring luminance samples based on neighboring luminance samples of luminance blocks associated with chrominance blocks; deriving linear model parameters based on neighboring chrominance samples of the chrominance blocks and the downsampled neighboring luminance samples; deriving downsampled luminance samples based on luminance samples in the luminance blocks; deriving predicted samples of the chrominance blocks based on the linear model parameters and the downsampled luminance samples; deriving residual samples based on the predicted samples; generating residual information based on the residual samples; and encoding image information to generate the bitstream, wherein the image information includes the residual information; and Send the data including the bit stream. The neighboring brightness samples include the upper neighboring brightness samples located above the upper boundary of the brightness block. The downsampled neighboring brightness samples include the downsampled upper neighboring brightness samples. Specifically, based on the fact that the current coding tree unit (CTU) where the luminance block is located is equal to the CTU where the upper neighbor luminance sample is located, six upper neighbor luminance samples from the two sample rows are used to derive the downsampled upper neighbor luminance sample, and Wherein, based on the fact that the current CTU where the luminance block is located is different from the CTU where the upper neighbor luminance sample is located, three upper neighbor luminance samples in the upper neighbor luminance samples of a sample row are used to derive the downsampled upper neighbor luminance sample.