Method, device and storage medium for video encoding and decoding
By performing cross-component linear model partitioning and prediction on video blocks, the problem of low intra-frame prediction efficiency is solved, achieving higher coding efficiency and video compression ratio.
Patent Information
- Application Number
- CN202280008260.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-16
- Filing Date
- 2022-09-21
- Publication Date
- 2025-12-30
- Estimated Expiration
- 2042-09-21
AI Technical Summary
Existing video coding techniques suffer from inefficiency in intra-frame prediction, especially when dealing with predictions in different directions, resulting in low coding efficiency.
The video block is partitioned using a cross-component linear model (CCLM), and chrominance samples are predicted based on the reconstructed luminance samples. A signal is used to notify whether to apply CCLM prediction, thereby improving the efficiency of intra-frame prediction.
It improves the coding efficiency of intra-frame prediction, reduces the number of bits used, and increases the video compression ratio.
Smart Images

Figure CN116686291B_ABST
Abstract
Description
[0001] References merged
[0002] This application claims priority to U.S. Patent Application No. 17 / 946,299, filed September 16, 2022, entitled “Sub-block Cross Component Linear Model Prediction,” which claims priority to U.S. Provisional Application No. 63 / 252,395, filed October 5, 2021, entitled “Sub-block Cross Component Linear Model Prediction.” The disclosure of the earlier applications is incorporated herein by reference in its entirety. Technical Field
[0003] This disclosure describes embodiments generally involving video encoding and decoding. Background Technology
[0004] The background description provided herein is intended to present the overall context of this application. The extent of the work of the currently named inventors described in the background section and various aspects of this specification does not imply that it was prior art at the time of filing, nor is it expressly or implied that it was acknowledged as prior art to this application.
[0005] Video encoding and decoding can be performed using inter-frame picture prediction with motion compensation. Uncompressed digital video can comprise a series of pictures, each with a spatial dimension of, for example, 1920×1080 luminance samples and associated chrominance samples. The series of pictures has a fixed or variable picture rate (also informally referred to as the frame rate), such as 60 pictures per second or 60Hz. Uncompressed video has specific bitrate requirements. For example, a 1920×1080p60 4:2:0 video with 8 bits per sample (1920×1080 luminance sample resolution at 60Hz frame rate) requires approximately 1.5 Gbit / s of bandwidth. One hour of such video would require over 600 GB of storage space.
[0006] One objective of video encoding and decoding is to reduce redundant information in the input video signal through compression. Video compression can help reduce the bandwidth and / or storage requirements mentioned above, in some cases by two or more orders of magnitude. Lossless compression, lossy compression, and combinations of both can be used. Lossless compression refers to the technique of reconstructing an exact copy of the original signal from the compressed original signal. When using lossy compression, the reconstructed signal may differ from the original signal, but the distortion between the original and reconstructed signals is small enough to make the reconstructed signal usable for the intended application. Lossy compression is widely used in the case of video. The amount of distortion that can be tolerated depends on the application; for example, users of some consumer streaming applications may tolerate higher distortion than users of television distribution applications. Compression ratio can reflect this: higher allowable / tolerable distortion can result in a higher compression ratio.
[0007] Video encoders and decoders can utilize techniques from several broad categories, including, for example, motion compensation, transform, quantization, and entropy coding.
[0008] Video codec techniques may include known intra-frame coding techniques. In intra-frame coding, sample values are represented without reference to samples or other data from a previously reconstructed reference image. In some video codecs, an image is spatially subdivided into sample blocks. When all sample blocks are encoded in intra-frame mode, the image can be an intra-frame picture. Intra-frame pictures and their derivatives (e.g., independent decoder refresh pictures) can be used to reset the decoder state and thus can be used as the first picture in the encoded video bitstream and video session, or as a still image. The samples of the intra-frame block can then be transformed, and the transform coefficients can be quantized before entropy coding. Intra-frame prediction can be a technique that minimizes the sample values in the pre-transform domain. In some cases, the smaller the transformed DC value and the smaller the AC coefficients, the fewer bits are needed to represent the entropy-coded block at a given quantization step size.
[0009] As is known from technologies such as MPEG-2, traditional intra-frame coding does not use intra-frame prediction. However, some newer video compression techniques include those that attempt to use, for example, surrounding sample data and / or metadata, which are acquired during spatially adjacent encoding and / or decoding and are decoded prior to data blocks. Such techniques are hereinafter referred to as "intra-frame prediction" techniques. Note that in at least some cases, intra-frame prediction uses only reference data from the current image being reconstructed, and not reference data from a reference image.
[0010] There can be many different forms of intra-prediction. When more than one such technique is applicable to a given video coding technique, the technique used can be encoded and decoded in an intra-prediction mode. In some cases, a mode can have sub-modes and / or parameters, and these can be encoded separately or contained in the mode codeword. For a given combination of modes, sub-modes, and / or parameters, which codeword is used through intra-prediction affects the coding efficiency gain, and the same applies to the entropy coding technique used to convert the codeword into a bitstream.
[0011] A certain mode of intra-frame prediction was introduced with H.264, refined in H.265, and further refined in newer coding techniques such as Joint Probe Mode (JEM), Universal Video Coding (VVC), and Base Set Reference (BMS). Predictor blocks can be formed using neighboring sample values that are already available. For example, sample values from neighboring samples can be copied into a predictor block based on a direction. The reference to the direction used can be encoded in the bitstream or can be predicted itself.
[0012] refer toFigure 1 The lower right corner depicts a subset of nine known predictor directions out of the 33 possible predictor directions in H.265 (corresponding to 33 angular modes of 35 intra-frame modes). The point (101) where the arrows converge represents the sample being predicted. The arrows indicate the direction on which the predicted sample is based. For example, arrow (102) indicates that sample (101) is predicted based on one or more samples to the upper right at a 45-degree angle to the horizontal. Similarly, arrow (103) indicates that sample (101) is predicted based on one or more samples to the lower left of sample (101) at a 22.5-degree angle to the horizontal.
[0013] Still referencing Figure 1 A square block (104) comprising 4×4 samples is shown in the upper left (represented by a thick dashed line). The square block (104) consists of 16 samples, each labeled with "S" and its position in the Y dimension (e.g., row index) and X dimension (e.g., column index). For example, sample S21 is the second sample in the Y dimension (from top to bottom) and the first sample in the X dimension (from left to right). Similarly, sample S44 is the fourth sample in block (104) in both the Y and X dimensions. Since the block is a 4×4 size sample, S44 is located in the lower right corner. Reference samples following a similar numbering scheme are also shown. Reference samples are labeled with "R" and their Y position (e.g., row index) and X position (e.g., column index) relative to block (104). In H.264 and H.265, predicted samples are adjacent to the blocks being reconstructed; therefore, negative values are not required.
[0014] In-image prediction can be achieved by copying reference sample values from neighboring samples assigned in the prediction direction indicated by a signal. For example, suppose the encoded video stream includes signaling that, for this block, indicates a prediction direction consistent with arrow (102)—that is, predicting samples based on one or more prediction samples at a 45-degree angle to the upper right of the horizontal direction. In such a case, samples S41, S32, S23, and S14 are predicted based on the same reference sample R05. Sample S44 is then predicted based on reference sample R08.
[0015] In some cases, such as through interpolation, the values of multiple reference samples can be combined to compute a reference sample, especially when the direction is not divisible by 45 degrees.
[0016] With the development of video coding technology, the number of possible directions has increased. In H.264 (2003), nine different directions could be represented. This increased to 33 in H.265 (2013), and JEM / VVC / BMS at the time of this disclosure can support up to 65 directions. Experiments have been conducted to identify the most probable directions, and certain techniques from entropy coding can be used to represent those possible directions with a small number of bits, accepting some cost for directions with lower probabilities. Furthermore, the direction itself can sometimes be predicted based on neighboring directions used for the decoded block.
[0017] Figure 2 A schematic diagram (201) depicting 65 intra-frame prediction directions according to JEM is shown to illustrate the increase in the number of prediction directions over time.
[0018] The mapping of bits representing intra-prediction directions in an encoded video bitstream can vary with different video coding techniques; and can range, for example, from prediction directions to intra-prediction modes, to codewords, to complex adaptive schemes involving the most probable modes, and similar techniques, to simple, direct mappings. However, in all cases, there may be certain directions in the video content that are statistically less likely to occur than some other directions. Since the goal of video compression is to reduce redundancy, in well-functioning video coding techniques, those less likely directions can be represented by a larger number of bits than the more likely directions. Summary of the Invention
[0019] This disclosure provides methods, apparatus, and storage media for video encoding and decoding.
[0020] According to one aspect of this disclosure, a method for video decoding performed in a video decoder is provided. In this method, encoded information of a current block in a current frame can be received from an encoded video bitstream. The current block can be partitioned into multiple sub-blocks. A first flag included in the encoded information can be obtained, wherein the first flag indicates whether a Cross-Component Linear Model (CCLM) prediction is applied to the current block, wherein chroma samples of the current block are predicted based on reconstructed luminance samples of the current block. In response to the first flag indicating that CCLM is applied to the current block, a corresponding predicted sample value of the chroma sample in each of the multiple sub-blocks of the current block can be determined based on the CCLM. The current block can also be reconstructed based on the corresponding predicted sample value of the chroma sample in each of the multiple sub-blocks of the current block. A video encoding method is also provided, comprising: dividing a current block in a current image into multiple sub-blocks; determining, based on Cross Component Linear Model (CCLM) prediction, the corresponding predicted sample value of the chroma sample in each of the multiple sub-blocks of the current block, wherein the chroma sample of the current block is predicted based on the reconstructed luminance sample of the current block; performing intra-frame prediction on the current block based on the corresponding predicted sample value of the chroma sample in each of the multiple sub-blocks of the current block; and signaling a first flag in the encoded information of the current block in the encoded video bitstream, the first flag indicating that CCLM prediction is applied to the current block.
[0021] In one example, the current block is divided into multiple sub-blocks along the width direction, based on the fact that the width of the current block is equal to or greater than the height of the current block.
[0022] In another example, the current block is divided into the plurality of sub-blocks along the height direction, based on the fact that the width of the current block is less than the height of the current block.
[0023] In yet another example, the current block is partitioned into the plurality of sub-blocks with the smallest sub-block size in both the height and width directions.
[0024] In this method, syntax elements from the encoded information can be obtained. The minimum sub-block size can be determined based on these syntax elements. These syntax elements are selected from one of the sequence parameter set SPS, the image parameter set PPS, slices, and tiles.
[0025] In some embodiments, the predicted sample value of the chromaticity sample in a second sub-block of the plurality of sub-blocks is determined based on the reconstructed sample of a first sub-block of the plurality of sub-blocks, wherein the second sub-block is adjacent to the first sub-block.
[0026] In some embodiments, in response to the first flag indicating that the CCLM is applied to the current block, a second flag included in the encoded information is obtained. The second flag indicates whether the CCLM is applied to each of the plurality of sub-blocks. In response to the second flag indicating that the CCLM is applied to each of the plurality of sub-blocks, the corresponding predicted sample value of the chroma sample in each of the plurality of sub-blocks of the current block is determined based on the CCLM.
[0027] In some embodiments, in response to a reconstructed neighboring sample being adjacent to the left side of a first sub-block of the plurality of sub-blocks, the predicted sample value of the chroma sample in the first sub-block is determined based on a first mode of the CCLM, wherein the first mode indicates that the predicted sample value of the chroma sample in the first sub-block is determined based on the reconstructed neighboring sample adjacent to the left side of the first sub-block. In response to a reconstructed neighboring sample being adjacent to the left side and top side of a second sub-block of the plurality of sub-blocks, the predicted sample value of the chroma sample in the second sub-block is determined based on a second mode of the CCLM, wherein the second mode indicates that the predicted sample value of the chroma sample in the second sub-block is determined based on the reconstructed neighboring sample adjacent to the left side and top side of the second sub-block.
[0028] In some embodiments, in response to a first flag indicating that CCLM is applied to the current block, a second flag included in the encoded information is obtained, wherein the second flag indicates whether the CCLM is applied to each of the plurality of sub-blocks. An index included in the encoded information is obtained, wherein the index indicates the CCLM mode of the CCLM. The CCLM mode indicates which reconstructed neighboring samples the CCLM applies to generate the corresponding predicted sample values for the chroma samples in each of the plurality of sub-blocks. In response to the second flag indicating that CCLM is applied to each of the plurality of sub-blocks and the index indicating the CCLM mode, the corresponding predicted sample values for the chroma samples in each of the plurality of sub-blocks of the current block are determined using the CCLM mode indicated by the index.
[0029] In some embodiments, in response to the index indicating a first CCLM mode, the corresponding predicted sample value of the chroma sample of the corresponding sub-block is determined based on the reconstructed neighboring samples adjacent to the left and top sides of each of the plurality of sub-blocks. In response to the index indicating a second CCLM mode, the corresponding predicted sample value of the chroma sample of the corresponding sub-block is determined based on the reconstructed neighboring samples adjacent to the left side of each of the plurality of sub-blocks. In response to the index indicating a third CCLM mode, the corresponding predicted sample value of the chroma sample of the corresponding sub-block is determined based on the reconstructed neighboring samples adjacent to the top side of each of the plurality of sub-blocks.
[0030] According to another aspect of this disclosure, an apparatus is provided, including a memory storing instructions; and a processor for executing the instructions to implement any method of video encoding / decoding according to this application.
[0031] This disclosure also provides a non-transitory computer-readable medium for storing instructions that, when executed by a computer, cause the computer to perform any method for video encoding / decoding. Attached Figure Description
[0032] Other features, properties, and various advantages of the subject matter will become more apparent from the following detailed description and accompanying drawings.
[0033] Figure 1 This is a schematic diagram of an exemplary subset of intra-frame prediction modes.
[0034] Figure 2 This is an illustration of an exemplary intra-frame prediction direction.
[0035] Figure 3 This is a simplified block diagram of a communication system according to an embodiment.
[0036] Figure 4 This is a simplified block diagram of a communication system according to an embodiment.
[0037] Figure 5 This is a simplified block diagram of the decoder according to an embodiment.
[0038] Figure 6 This is a schematic diagram of a simplified block diagram of an encoder according to an embodiment.
[0039] Figure 7 A block diagram of an encoder according to another example embodiment is shown.
[0040] Figure 8 A block diagram of a decoder according to another example embodiment is shown.
[0041] Figure 9 This is an exemplary illustration of cross-component linear model (CCLM) predictions according to some embodiments of this disclosure.
[0042] Figure 10A This is a first exemplary block partition in CCLM prediction according to some embodiments of this disclosure.
[0043] Figure 10B This is a second exemplary block partition in CCLM prediction according to some embodiments of this disclosure.
[0044] Figure 10C This is a third exemplary block partition in CCLM prediction according to some embodiments of this disclosure.
[0045] Figure 10D This is the fourth exemplary block partition in CCLM prediction according to some embodiments of this disclosure.
[0046] Figure 11 A flowchart outlining exemplary decoding methods according to some embodiments of this disclosure is shown.
[0047] Figure 12 A flowchart outlining exemplary encoding methods according to some embodiments of this disclosure is shown.
[0048] Figure 13 This is a schematic diagram of a computer system according to one embodiment. Detailed Implementation
[0049] Figure 3 This is a simplified block diagram of a communication system (300) according to an embodiment disclosed in this application. The communication system (300) includes a plurality of terminal devices that can communicate with each other via, for example, a network (350). For example, the communication system (300) includes a first terminal device (310) and a second terminal device (320) interconnected via a network (350). Figure 3 In this embodiment, the first terminal device (310) and the second terminal device (320) perform unidirectional data transmission. For example, the first terminal device (310) may encode video data (e.g., a video image stream captured by the first terminal device (310)) for transmission over a network (350) to the second terminal device (320). The encoded video data is transmitted in the form of one or more encoded video streams. The second terminal device (320) may receive the encoded video data from the network (350), decode the encoded video data to recover the video data, and display video images based on the recovered video data. Unidirectional data transmission is common in applications such as media services.
[0050] In another embodiment, the communication system (300) includes a third terminal device (330) and a fourth terminal device (340) that perform bidirectional transmission of encoded video data, such as during a video conference. For bidirectional data transmission, each of the third terminal device (330) and the fourth terminal device (340) can encode video data (e.g., a stream of video images captured by the terminal device) for transmission over a network (350) to the other terminal device. Each of the third terminal device (330) and the fourth terminal device (340) can also receive encoded video data transmitted by the other terminal device and can decode the encoded video data to recover the video data, and can display the video images on an accessible display device based on the recovered video data.
[0051] exist Figure 3 In the embodiments disclosed herein, the first terminal device (310), the second terminal device (320), the third terminal device (330), and the fourth terminal device (340) may be interpreted as servers, personal computers, and smartphones, but the principles disclosed herein are not limited thereto. The embodiments disclosed herein use laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. Network (350) refers to any number of networks that transmit encoded video data between the first terminal device (310), the second terminal device (320), the third terminal device (330), and the fourth terminal device (340), including, for example, wired (connected) and / or wireless communication networks. The communication network (350) may exchange data in circuit-switched and / or packet-switched channels. The network may include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this application, unless otherwise explained below, the architecture and topology of the network (350) may be irrelevant to the operation of this application.
[0052] As an example, Figure 4 This illustration shows the placement of a video encoder and a video decoder in a video streaming environment. The subject matter disclosed in this application is equally applicable to other video-enabled applications, including, for example, video conferencing, digital TV, compressed video storage on digital media including CDs, DVDs, memory sticks, etc.
[0053] The streaming system may include an acquisition subsystem (413) that may include a video source (401), such as a digital camera, to create, for example, an uncompressed video image stream (402). In an embodiment, the video image stream (402) includes samples acquired by the digital camera. The uncompressed video image stream (402) is depicted as a thick line to emphasize the high data volume of the video image stream compared to encoded video data (404) (or encoded video bitstream (404)). The video image stream (402) may be processed by an electronic device (420) that includes a video encoder (403) coupled to the video source (401). The video encoder (403) may include hardware, software, or a combination of hardware and software to implement or carry out aspects of the disclosed subject matter as described in more detail below. Compared to the video image stream (402), the encoded video data (404) (or the encoded video bitstream (404)) is depicted as a thin line to emphasize the lower data volume of the encoded video data (404) (or the encoded video bitstream), which may be stored on a streaming server (405) for future use. One or more streaming client subsystems, such as Figure 4 Client subsystems (406) and (408) can access a streaming server (405) to retrieve copies (407) and (409) of encoded video data (404). Client subsystem (406) may include, for example, a video decoder (410) in an electronic device (430). The video decoder (410) decodes the incoming copy (407) of the encoded video data and produces an output video picture stream (411) that can be displayed on a display (412) (e.g., a screen) or another presentation device (not depicted). In some streaming systems, the encoded video data (404), video data (407), and video data (409) (e.g., video streams) may be encoded according to certain video coding / compression standards. Examples of such standards include ITU-T H.265. In embodiments, the video coding standard under development is informally referred to as Versatile Video Coding (VVC), and this application can be used in the context of the VVC standard.
[0054] It should be noted that electronic devices (420) and (430) may include other components (not shown). For example, electronic device (420) may include a video decoder (not shown), and electronic device (430) may also include a video encoder (not shown).
[0055] Figure 5This is a block diagram of a video decoder (510) according to an embodiment disclosed in this application. The video decoder (510) may be disposed in an electronic device (530). The electronic device (530) may include a receiver (531) (e.g., receiving circuitry). The video decoder (510) may be used in place of... Figure 4 The video decoder (410) in the embodiment.
[0056] The receiver (531) may receive one or more encoded video sequences to be decoded by the video decoder (510); one encoded video sequence at a time in the same embodiment or another embodiment, wherein the decoding of each encoded video sequence is independent of the other encoded video sequences. The encoded video sequences may be received from a channel (501), which may be a hardware / software link to a storage device storing the encoded video data. The receiver (531) may receive the encoded video data as well as other data, such as encoded audio data and / or auxiliary data streams that may be forwarded to their respective entities (not indicated). The receiver (531) may separate the encoded video sequences from other data. To prevent network jitter, a buffer memory (515) may be coupled between the receiver (531) and the entropy decoder / parser (520) (hereinafter referred to as "parser (520)"). In some applications, the buffer memory (515) may be part of the video decoder (510). In other applications, the buffer memory (515) may be located external to the video decoder (510) (not indicated). In other applications, an external buffer memory (not shown) may be provided for the video decoder (510) to prevent network jitter, for example. An additional buffer memory (515) may exist internally within the video decoder (510) to handle broadcast timing, for example. When the receiver (531) receives data from a store / forward device with sufficient bandwidth and controllability, or from an isochronous synchronization network, the buffer memory (515) may not be necessary, or it may be made smaller. Of course, for use on packet-switched networks such as the Internet, a buffer memory (515) may be required, and this buffer memory may be relatively large. Such a buffer memory may advantageously have an adaptive size and may be at least partially implemented in the operating system or a similar component (not shown) external to the video decoder (510).
[0057] The video decoder (510) may include a parser (520) to reconstruct symbols (521) from the encoded video sequence. These symbols may include information for managing the operation of the video decoder (510) and potential information for controlling a display device (512) (e.g., a display screen), which is not part of the electronic device (530) but may be coupled to it, such as... Figure 5As shown in the diagram. The control information for the display device may be a parameter set fragment (not shown) of Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI). The parser (520) can parse / entropy decode the received encoded video sequence. The encoding of the encoded video sequence may be based on video coding techniques or standards and may follow various principles, including variable-length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser (520) may extract a subgroup parameter set of at least one subgroup of pixels in the subgroup from the encoded video sequence for use in the video decoder based on at least one parameter corresponding to a group. The subgroup may include a Group of Pictures (GOP), a picture, a tile, a slice, a macroblock, a Coding Unit (CU), a block, a Transform Unit (TU), a Prediction Unit (PU), etc. The parser (520) can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.
[0058] The parser (520) can perform entropy decoding / parsing operations on the video sequence received from the buffer memory (515) to create symbols (521).
[0059] Depending on the type of encoded video frames or a subset of encoded video frames (e.g., inter-frame and intra-frame frames, inter-frame and intra-frame blocks) and other factors, the reconstruction of the symbol (521) may involve multiple different units. Which units are involved and how they are involved can be controlled by the subgroup control information parsed from the encoded video sequence by the parser (520). For clarity, the flow of such subgroup control information between the parser (520) and the various units described below is not described.
[0060] In addition to the functional blocks already mentioned, the video decoder (510) can be conceptually subdivided into several functional units as described below. In practical embodiments operating under commercial constraints, many of these units interact closely with each other and can be integrated with one another. However, for the purposes of describing the disclosed subject matter, the conceptual subdivision of the functional units below is appropriate.
[0061] The first unit can be a scaler / inverse transform unit (551). The scaler / inverse transform unit (551) receives quantization transform coefficients as symbols (521) and control information from the parser (520), including information such as the type of inverse transform used, block size, quantization factor, and quantization scaling matrix. The scaler / inverse transform unit (551) can output a block containing sample values, which can be input into the aggregator (555).
[0062] In some cases, the output samples of the scaler / inverse transform unit (551) may belong to intra-coded blocks; for example, blocks that do not use predictive information from previously reconstructed images but use predictive information from previously reconstructed portions of the current image. Such predictive information may be provided by the intra-picture prediction unit (552). In some cases, the intra-picture prediction unit (552) uses surrounding reconstructed information taken from the current picture buffer (558) to generate surrounding blocks of the same size and shape as the block being reconstructed. For example, the current picture buffer (558) buffers partially reconstructed and / or fully reconstructed current images. In some implementations, the aggregator (555) adds the predictive information generated by the intra-picture prediction unit (552) to the output sample information provided by the scaler / inverse transform unit (551) based on each sample.
[0063] In other cases, the output samples of the scaler / inverse transform unit (551) may belong to inter-frame coding and latent motion compensation blocks. In this case, the motion compensation prediction unit (553) may access the reference image memory (557) to extract samples for prediction. After motion compensation of the extracted samples according to symbols (521), these samples may be added by the aggregator (555) to the output of the scaler / inverse transform unit (551) (referred to in this case as residual samples or residual signals) to generate output sample information. The motion compensation prediction unit (553) may obtain the predicted samples from the address in the reference image memory (557) under motion vector control, and the motion vector is available to the motion compensation prediction unit (553) in the form of the symbols (521), which may include, for example, X, Y and reference image components. Motion compensation may also include interpolation of sample values extracted from the reference image memory (557) when using subsample precise motion vectors, and motion compensation may include motion vector prediction mechanisms, etc.
[0064] The output samples of the aggregator (555) can be employed by various loop filtering techniques in the loop filter unit (554). Video compression techniques may include in-loop filtering techniques controlled by parameters included in the encoded video sequence (also referred to as the encoded video stream), and these parameters can be used as symbols (521) from the parser (520) in the loop filter unit (556). However, in other embodiments, the video compression techniques may also respond to metadata obtained during decoding of a previous (in decoding order) portion of the encoded picture or encoded video sequence, and to previously reconstructed and loop-filtered sample values.
[0065] The output of the loop filter unit (556) can be a sample stream, which can be output to a display device (512) and stored in a reference image memory (557) for subsequent inter-frame image prediction.
[0066] Once fully reconstructed, some of the encoded images can be used as reference images for future predictions. For example, once the encoded images corresponding to the current image have been fully reconstructed and the encoded images (by, for example, the parser (520)) are identified as reference images, the current image buffer (558) can become part of the reference image memory (557), and a new current image buffer can be reallocated before the reconstruction of subsequent encoded images begins.
[0067] The video decoder (510) can perform decoding operations according to a predetermined video compression technique, such as that specified in the ITU-T H.265 standard. The encoded video sequence may conform to the syntax specified by the video compression technique or standard in the sense that the encoded video sequence follows the syntax of the video compression technique or standard and the configuration file recorded in the video compression technique or standard. Specifically, the configuration file may select certain tools from all available tools in the video compression technique or standard as the only tools available under said configuration file. For compliance, it is also necessary that the complexity of the encoded video sequence is within the limits defined by the hierarchy of the video compression technique or standard. In some cases, the hierarchy limits the maximum image size, maximum frame rate, maximum reconstruction sampling rate (measured in megasamples per second, for example), maximum reference image size, etc. In some cases, the limitations set by the hierarchy can be further limited by the Hypothetical Reference Decoder (HRD) specification and the metadata managed by the HRD buffer, which is represented by signals in the encoded video sequence.
[0068] In one embodiment, the receiver (531) may receive additional (redundant) data along with the encoded video. The additional data may be a portion of the encoded video sequence. The additional data may be used by the video decoder (510) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may take the form of, for example, temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, etc.
[0069] Figure 6 This is a block diagram of a video encoder (603) according to an embodiment disclosed in this application. The video encoder (603) is disposed in an electronic device (620). The electronic device (620) includes a transmitter (640) (e.g., a transmission circuit). The video encoder (603) can be used to replace... Figure 4 The video encoder (403) in the embodiment.
[0070] The video encoder (603) can obtain data from the video source (601) (not) Figure 6 In one embodiment, a portion of the electronic device (620) receives video samples, the video source being capable of capturing video images to be encoded by a video encoder (603). In another embodiment, the video source (601) may be a portion of the electronic device (620).
[0071] A video source (601) can provide a sequence of source video samples encoded by a video encoder (603) in the form of a digital video sample stream, which can have any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, etc.), any color space (e.g., BT.601YCrCb, RGB, etc.), and any suitable sampling structure (e.g., YCrCb4:2:0, YCrCb4:4:4). In a media service system, the video source (601) can be a storage device capable of storing previously prepared video. In a video conferencing system, the video source (601) can be a camera that captures local image information as a video sequence. Video data can be provided as multiple individual pictures, which are given motion when viewed in sequence. The pictures themselves can be constructed as spatial pixel arrays, where each pixel can include one or more samples depending on the sampling structure, color space, etc., being used. Those skilled in the art can easily understand the relationship between pixels and samples. The following focuses on describing samples.
[0072] According to an embodiment, the video encoder (603) can encode and compress images of a source video sequence into an encoded video sequence (643) in real time or under any other time constraints required by the application. Implementing an appropriate encoding rate is a function of the controller (650). In some embodiments, the controller (650) controls and is functionally coupled to other functional units described below. For clarity, coupling is not indicated in the figures. Parameters set by the controller (650) may include rate control related parameters (image skipping, quantizer, λ value of rate-distortion optimization techniques, etc.), image size, group of pictures (GOP) layout, maximum allowed motion vector search range, etc. The controller (650) may be used with other suitable functions related to the video encoder (503) optimized for a particular system design.
[0073] In some embodiments, the video encoder (603) operates within an encoding loop. As a simplified description, in an embodiment, the encoding loop may include a source encoder (630) (e.g., responsible for creating symbols, such as a symbol stream, based on the input image to be encoded and a reference image) and a (local) decoder (633) embedded within the video encoder (603). Additionally, the decoder (633) reconstructs the symbols to create sample data in a manner similar to how the (remote) decoder creates sample data (because in the video compression techniques considered in this application, any compression between the symbols and the encoded video stream is lossless). The reconstructed sample stream (sample data) is input to a reference image memory (634). Since decoding of the symbol stream produces bit-precise results independent of the decoder's location (local or remote), the contents of the reference image memory (634) also correspond bit-precisely between the local encoder and the remote encoder. In other words, the reference image samples "seen" by the encoder's prediction portion are exactly the same sample values that the decoder will "see" when using the prediction during decoding. This fundamental principle of reference image synchronization (and the drift that occurs when synchronization cannot be maintained, for example, due to channel errors) is also used in some related technologies.
[0074] The operation of the “local” decoder (633) can be combined with, for example, the above-mentioned Figure 5 The video decoder (510) is described in detail as the same as the "remote" decoder. However, a further brief reference is provided. Figure 5 When symbols are available and the entropy encoder (645) and parser (520) are able to encode / decode the symbols into an encoded video sequence without loss, the entropy decoding portion of the video decoder (510), including the buffer (515) and parser (520), may not be fully implemented in the encoder’s local decoder (633).
[0075] At this point, it can be observed that, in addition to the parsing / entropy decoding present in the decoder, any decoder technique must also exist in the corresponding encoder in essentially the same functional form. For this reason, the disclosed subject matter focuses on decoder operation. The description of encoder techniques can be abbreviated as their inverse to the fully described decoder techniques. Only in certain areas is a more detailed description required, which is provided below.
[0076] During operation, in some embodiments, the source encoder (630) may perform motion-compensated predictive coding. The motion-compensated predictive coding predictively encodes the input image, referencing one or more previously encoded images from the video sequence designated as "reference images." In this manner, the encoding engine (632) encodes the differences between pixel blocks of the input image and pixel blocks of the reference image, which may be selected as a predictive reference for the input image.
[0077] The local video decoder (633) can decode encoded video data of a picture that can be designated as a reference picture, based on symbols created by the source encoder (630). The operation of the encoding engine (632) can be a lossy process. When the encoded video data can be decoded by the video decoder (633), Figure 6 When the source video sequence (not shown) is decoded, the reconstructed video sequence can typically be a copy of the source video sequence with some errors. The local video decoder (633) replicates the decoding process, which can be performed by the video decoder on the reference image, and allows the reconstructed reference image to be stored in a high-speed reference image memory (634). In this way, the video encoder (603) can locally store a copy of the reconstructed reference image that shares the same content (no transmission errors) as the reconstructed reference image to be acquired by the remote video decoder.
[0078] The predictor (635) can perform a prediction search against the encoding engine (632). That is, for a new image to be encoded, the predictor (635) can search in the reference image memory (634) for sample data (as candidate reference pixel blocks) or certain metadata, such as reference image motion vectors, block shapes, etc., that can serve as appropriate prediction references for the new image. The predictor (635) can operate pixel-by-pixel based on the sample blocks to find suitable prediction references. In some cases, based on the search results obtained by the predictor (635), it can be determined that the input image may have prediction references obtained from multiple reference images stored in the reference image memory (634).
[0079] The controller (650) can manage the encoding operations of the source encoder (630), including, for example, setting parameters and subgroup parameters for encoding video data.
[0080] The outputs of all the above-mentioned functional units can be entropy encoded in the entropy encoder (645). The entropy encoder (645) performs lossless compression on the symbols generated by the various functional units according to techniques such as Huffman coding, variable length coding, and arithmetic coding, thereby converting the symbols into an encoded video sequence.
[0081] The transmitter (640) can buffer the encoded video sequence created by the entropy encoder (645) in preparation for transmission via a communication channel (660), which may be a hardware / software link to a storage device that will store the encoded video data. The transmitter (640) can combine the encoded video data from the video encoder (603) with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (source not shown).
[0082] The controller (650) manages the operation of the video encoder (603). During encoding, the controller (650) can assign a specific encoded image type to each encoded image, but this may affect the encoding techniques applicable to the corresponding images. For example, images can typically be assigned to any of the following image types:
[0083] An intra-frame picture (I-picture) is a picture that can be encoded and decoded without using any other pictures in the sequence as a prediction source. Some video codecs allow different types of intra-frame pictures, including, for example, Independent Decoder Refresh (IDR) pictures. Those skilled in the art will understand variations of I-pictures and their corresponding applications and characteristics.
[0084] A predictive image (P-image) can be an image that can be encoded and decoded using intra-frame prediction or inter-frame prediction, which uses at most one motion vector and a reference index to predict sample values for each block.
[0085] A bidirectional predictive image (B-image) can be an image that can be encoded and decoded using intra-frame prediction or inter-frame prediction, which uses at most two motion vectors and a reference index to predict sample values for each block. Similarly, multiple predictive images can use more than two reference images and associated metadata to reconstruct a single block.
[0086] Source images are typically spatially subdivided into multiple sample blocks (e.g., 4×4, 8×8, 4×8, or 16×16 sample blocks), and encoded block by block. These blocks can be predictively coded with reference to other (already coded) blocks, determined based on the coding assignments of the corresponding images applied to the blocks. For example, blocks of an I-image can be non-predictively coded, or the blocks can be predictively coded (spatial or intra-frame prediction) with reference to already coded blocks of the same image. Pixel blocks of a P-image can be predictively coded with reference to a previously coded reference image via spatial or temporal prediction. Blocks of a B-image can be predictively coded with reference to one or two previously coded reference images via spatial or temporal prediction.
[0087] The video encoder (603) can perform encoding operations according to a predetermined video coding technique or standard, such as ITU-T H.265 Recommendation. In operation, the video encoder (603) can perform various compression operations, including predictive coding operations that utilize temporal and spatial redundancy in the input video sequence. Therefore, the encoded video data can conform to the syntax specified by the video coding technique or standard used.
[0088] In this embodiment, the transmitter (640) may transmit additional data while transmitting encoded video. The source encoder (630) may include such data as part of the encoded video sequence. Additional data may include temporal / spatial / SNR enhancement layers, redundant images and slices, other forms of redundant data, SEI messages, VUI parameter set fragments, etc.
[0089] The acquired video can serve as multiple source images (video images) presented in a time series. Intra-frame image prediction (often simplified to intra-frame prediction) utilizes spatial correlations within a given image, while inter-frame image prediction utilizes (temporal or other) correlations between images. In an embodiment, a specific image being encoded / decoded is segmented into blocks, referred to as the current image. When a block in the current image resembles a reference block in a previously encoded and still buffered reference image in the video, the block in the current image can be encoded using a vector called a motion vector. This motion vector points to the reference block in the reference image, and when multiple reference images are used, the motion vector may have a third dimension that identifies the reference image.
[0090] In some embodiments, bidirectional prediction techniques can be used for inter-frame image prediction. According to bidirectional prediction, two reference images are used, such as a first reference image and a second reference image, both preceding the current image in the video in decoding order (but possibly past and future in display order). A block in the current image can be encoded using a first motion vector pointing to a first reference block in the first reference image and a second motion vector pointing to a second reference block in the second reference image. Specifically, the block can be predicted jointly using a combination of the first and second reference blocks.
[0091] In addition, merging mode techniques can be used in inter-frame image prediction to improve coding efficiency.
[0092] According to some embodiments disclosed in this application, predictions such as inter-frame image prediction and intra-frame image prediction are performed on a block-by-block basis. For example, according to the HEVC standard, images in a video image sequence are segmented into coding tree units (CTUs) for compression. The CTUs in the images have the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. Generally, a CTU includes three coding tree blocks (CTBs): one luma CTB and two chroma CTBs. Furthermore, each CTU can be split into one or more coding units (CUs) using a quadtree. For example, a 64×64 pixel CTU can be split into one 64×64 pixel CU, or four 32×32 pixel CUs, or sixteen 16×16 pixel CUs. In one embodiment, each CU can be analyzed to determine the prediction type used for the CU; various prediction types include inter-frame prediction and intra-frame prediction. Furthermore, depending on temporal and / or spatial predictability, the CU is divided into one or more prediction units (PUs). Typically, each PU includes a luma prediction block (PB) and two chroma PBs. In embodiments, prediction operations in encoding (encoding / decoding) are performed on a per-prediction-block basis. Using a luma prediction block as an example, a prediction block includes a matrix of pixel values (e.g., luma values) (e.g., 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.).
[0093] Figure 7 This is a diagram of a video encoder (703) according to another embodiment disclosed in this application. The video encoder (703) is used to receive processing blocks (e.g., prediction blocks) of sample values within a current video image in a video image sequence, and to encode the processing blocks into an encoded image that is part of an encoded video sequence. In this embodiment, the video encoder (703) is used instead of Figure 4The video encoder (303) in the embodiment.
[0094] In an HEVC instance, a video encoder (703) receives a matrix of sample values for a processing block, such as an 8×8 sample prediction block. The video encoder (703) uses, for example, rate-distortion optimization to determine whether to encode the processing block using intra-frame mode, inter-frame mode, or bidirectional prediction mode. When encoding the processing block in intra-frame mode, the video encoder (703) can use intra-frame prediction techniques to encode the processing block into an already encoded picture; and when it is determined that the processing block should be encoded in inter-frame mode or bidirectional prediction mode, the video encoder (703) can use inter-frame prediction or bidirectional prediction techniques respectively to encode the processing block into an already encoded picture. In some video codec techniques, the merging mode can be a sub-mode of inter-frame picture prediction, wherein motion vectors are derived from one or more motion vector prediction values without relying on encoded motion vector components outside the prediction values. In some other video codec techniques, motion vector components applicable to the subject block may exist. In one instance, the video encoder (703) includes other components, such as a mode decision module (not shown) for determining the mode of a processing block.
[0095] exist Figure 7 In one embodiment, the video encoder (703) includes, as shown below: Figure 7 The inter-frame encoder (730), intra-frame encoder (722), residual calculator (723), switch (726), residual encoder (724), general controller (721) and entropy encoder (725) are shown coupled together.
[0096] An inter-frame encoder (730) is configured to receive samples of the current block (e.g., the processing block), compare the block with one or more reference blocks in a reference image (e.g., blocks in previous and later images), generate inter-frame prediction information (e.g., redundancy information description, motion vectors, and merging mode information based on the inter-frame prediction information), and calculate inter-frame prediction results (e.g., predicted blocks) using any suitable technique based on the inter-frame prediction information. In some embodiments, the reference image is a decoded reference image based on encoded video information.
[0097] The intra encoder (722) is used to receive samples of the current block (e.g., the processing block), in some cases compare the block with previously encoded blocks in the same image, generate quantization coefficients after transformation, and in some cases also (e.g., based on intra prediction direction information from one or more intra coding techniques) generate intra prediction information. The intra encoder (722) calculates intra prediction results (e.g., prediction blocks) based on the intra prediction information and reference blocks in the same image.
[0098] A general controller (721) determines general control data and controls other components of the video encoder (703) based on the general control data. In an embodiment, the general controller (721) determines the mode of a block and provides control signals to a switch (726) based on the mode. For example, when the mode is an intra-frame mode, the general controller (721) controls the switch (726) to select an intra-frame mode result for use by the residual calculator (723) and controls the entropy encoder (725) to select intra-frame prediction information and add the intra-frame prediction information to the bitstream; and when the mode is an inter-frame mode, the general controller (721) controls the switch (726) to select an inter-frame prediction result for use by the residual calculator (723) and controls the entropy encoder (725) to select inter-frame prediction information and add the inter-frame prediction information to the bitstream.
[0099] A residual calculator (723) is used to calculate the difference (residual data) between the received block and the prediction result selected from the intra encoder (722) or the inter encoder (730). A residual encoder (724) is used to encode the residual data to generate transform coefficients. In an embodiment, the residual encoder (724) is configured to operate based on the residual data to transform the residual data from the time domain to the frequency domain to generate transform coefficients. The transform coefficients are then quantized to obtain quantized transform coefficients. In various illustrative embodiments, the video encoder (703) also includes a residual decoder (728). The residual decoder (728) is used to perform the inverse transform and generate decoded residual data. The decoded residual data can be used appropriately by the intra encoder (722) and the inter encoder (730). For example, the inter encoder (730) can generate a decoded block based on the decoded residual data and inter-frame prediction information, and the intra encoder (722) can generate a decoded block based on the decoded residual data and intra-frame prediction information. The decoded blocks are processed appropriately to generate a decoded image, which may be buffered in a memory circuit (not shown) and used as a reference image in some embodiments.
[0100] An entropy encoder (725) is used to format the bitstream to produce encoded blocks. The entropy encoder (725) is configured to include various information according to a suitable standard, such as the HEVC standard. In an embodiment, the entropy encoder (725) is used to acquire general control data, selected prediction information (e.g., intra-frame prediction information or inter-frame prediction information), residual information, and other suitable information in the bitstream. It should be noted that, according to the subject matter of this disclosure, residual information is not present when blocks are encoded in a merged sub-mode of inter-frame mode or bidirectional prediction mode.
[0101] Figure 8This is a diagram of a video decoder (810) according to another embodiment disclosed in this application. The video decoder (810) is used to receive an encoded image as part of an encoded video sequence and decode the encoded image to generate a reconstructed picture. In an embodiment, the video decoder (810) is used instead of Figure 4 The video decoder (410) in the embodiment.
[0102] exist Figure 8 In the embodiment, the video decoder (810) includes, as follows: Figure 8 The entropy decoder (871), inter-frame decoder (880), residual decoder (873), reconstruction module (874), and intra-frame decoder (872) are coupled together.
[0103] An entropy decoder (871) can be used to reconstruct certain symbols from an encoded image, these symbols representing the syntax elements constituting the encoded image. Such symbols may include, for example, a mode for encoding the block (e.g., intra-frame mode, inter-frame mode, bidirectional prediction mode, or the latter two in a merged sub-mode or another sub-mode), prediction information (e.g., intra-frame prediction information or inter-frame prediction information) that can identify certain samples or metadata used by the intra-frame decoder (872) or inter-frame decoder (880) for prediction, residual information in the form of, for example, quantized transform coefficients, and so on. In an embodiment, when the prediction mode is inter-frame or bidirectional prediction mode, inter-frame prediction information is provided to the inter-frame decoder (880); and when the prediction type is intra-frame prediction type, intra-frame prediction information is provided to the intra-frame decoder (872). Residual information may be provided to the residual decoder (873) via inverse quantization.
[0104] The inter-frame decoder (880) is used to receive inter-frame prediction information and generate inter-frame prediction results based on the inter-frame prediction information.
[0105] The intra-frame decoder (872) is used to receive intra-frame prediction information and generate prediction results based on the intra-frame prediction information.
[0106] The residual decoder (873) performs inverse quantization to extract the dequantized transform coefficients and processes the dequantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require some control information (to obtain the quantizer parameter QP), which can be provided by the entropy decoder (871) (the data path is not indicated because this is only low-data-volume control information).
[0107] The reconstruction module (874) combines the residual output by the residual decoder (873) with the prediction result (which may be output by the inter-frame prediction module or the intra-frame prediction module) in the spatial domain to form a reconstructed block, which forms part of a reconstructed image, which may be part of a reconstructed video. It should be noted that other suitable operations, such as deblocking, may be performed to improve visual quality.
[0108] It should be noted that any suitable technology can be used to implement the video encoder (403), video encoder (603), and video encoder (703), as well as the video decoder (410), video decoder (510), and video decoder (810). In one embodiment, one or more integrated circuits can be used to implement the video encoder (403), video encoder (603), and video encoder (703), as well as the video decoder (410), video decoder (510), and video decoder (810). In another embodiment, one or more processors executing software instructions can be used to implement the video encoder (403), video encoder (603), and video encoder (703), as well as the video decoder (410), video decoder (510), and video decoder (810).
[0109] This disclosure includes linear model predictions of sub-block cross-components.
[0110] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) published the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (Revision 1), 2014 (Revision 2), 2015 (Revision 3), and 2016 (Revision 4). In 2015, these two standards organizations jointly formed the JVET (Joint Video Exploration Group) to explore the possibility of developing a next-generation video coding standard beyond HEVC. In April 2018, JVET officially launched the standardization process for next-generation video coding beyond HEVC. The new standard was named Universal Video Coding (VVC), and JVET was renamed the Joint Video Experts Group. In July 2020, H.266 / VVC Version 1 was completed. In January 2021, an ad hoc group was established to study enhanced compression beyond the capabilities of VVC.
[0111] To reduce cross-component redundancy, a cross-component linear model (CCLM) prediction mode can be used, for example, in VVC. In the CCLM prediction mode, the chromaticity samples of the current CU can be predicted based on the reconstructed luminance samples of the current CU using the linear model in equation (1) below:
[0112] pred C (i,j)=α·rec LEquation (1) is (i,j)+β.
[0113] Among them, pred C (i,j) can represent the predicted chromaticity sample in the current CU, and rec L (i,j) can represent the luminance sample reconstructed by downsampling in the current CU. When the chroma subsample differs from the luminance subsample, such as in YCbCr422 or YCbCr420 formats, the chroma CU can have a smaller size than the luminance CU. Downsampling the reconstructed luminance sample in the current CU allows for a one-to-one match between the luminance and chroma samples.
[0114] CCLM parameters (e.g., α and β) can be derived from up to four adjacent chroma samples and their corresponding downsampled luminance samples. If the dimensions of the current chroma block are W×H, where W is the width of the current chroma block and H is the height of the current chroma block, then the width W' of the first reference region and the height H' of the second reference region can be defined as follows:
[0115] When applying the LM pattern, W' = W, H' = H;
[0116] When applying the LM-A pattern, W' = W + H; and
[0117] When the LM-L pattern is applied, H' = H + W.
[0118] The first reference region can be adjacent to the top of the current chroma block. The second reference region can be adjacent to the left of the current chroma block. In LM mode, adjacent chroma samples can be located in both the first and second reference regions. In LM-A mode, adjacent chroma samples can be located in the first reference region. In LM-L mode, adjacent chroma samples can be located in the second reference region.
[0119] Therefore, the upper adjacent position (or the position of the first reference region) can be represented as S[0,-1]……S[W'-1,-1], and the left adjacent position (or the position of the second reference region) can be represented as S[-1,0]……S[-1,H'-1].
[0120] Accordingly, the positions of the four adjacent chromaticity samples can be selected as follows:
[0121] When the LM mode is applied and both the upper neighbor and left neighbor samples are available, S[W' / 4,-1], S[3*W' / 4,-1], S[-1,H' / 4], S[-1,3*H' / 4];
[0122] When applying LM-A mode or when only adjacent samples are available, S[W' / 8,-1], S[3*W' / 8,-1], S[5*W' / 8,-1], S[7*W' / 8,-1]; and
[0123] When applying LM-L mode or when only left adjacent samples are available, S[-1,H' / 8], S[-1,3*H' / 8], S[-1,5*H' / 8], S[-1,7*H' / 8].
[0124] The four luminance samples corresponding to the four adjacent chrominance samples at the selected location can be downsampled and compared four times to find the two larger values: x 0 A and x 1 A and two smaller values: x 0 B and x 1 B The chromaticity sample values corresponding to the four adjacent chromaticity samples of the four luminance samples can be represented as y. 0 A y 1 A y 0 B and y 1 B The parameter X can be derived from equations (2) to (5). a X b Y a and Y b as follows:
[0125] X a =(x 0 A + x 1 A +1)>>1 Equation (2)
[0126] X b =(x 0 B + x 1 B +1)>>1; Equation (3)
[0127] Y a =(y 0 A + y 1 A +1)>>1; Equation (4)
[0128] Y b =(y 0 B + y 1B +1)>>1 Equation (5)
[0129] Finally, the linear model parameters α and β are obtained according to equations (6) and (7), respectively.
[0130]
[0131] β=Y b -α·X b Equation (7)
[0132] Figure 9 This shows exemplary locations of the left and top neighbor samples of the current block, as well as the samples of the current block involved in the CCLM prediction pattern. For example... Figure 9 As shown, the size of the current chromaticity CU (902) can be NxN (e.g., 8x8). The size of the corresponding luminance CU (904) of the current chromaticity CU (902) can be 2Nx2N (e.g., 16x16). The adjacent chromaticity samples of the current chromaticity CU (902) used to derive the linear model parameters α and β can be located in the first reference region (or the upper adjacent position) (906) and / or the second reference region (or the left adjacent position) (908). The luminance samples corresponding to the adjacent chromaticity samples (906) and (908) can be located in the first reference region (910) and the second reference region (912), respectively. Figure 9 As shown, luminance samples (910) and (912) were downsampled to match adjacent chrominance samples (906) and (908) one-to-one. The reconstructed values Rec' of luminance samples (910) and (912) are... L The reconstructed values of Rec from adjacent chromaticity samples (906) and (908) c It can be applied to derive the linear model parameters α and β based on equations (2) to (7). Once the linear model parameters α and β are obtained, the CCLM prediction mode can be used to predict the chromaticity sample in the current chromaticity CU (902) based on the downsampled reconstructed luminance sample in the corresponding luminance CU (904).
[0133] Table 1 illustrates an exemplary syntax for CCLM prediction. First, a CCLM mode flag (e.g., cclm_mode_flag) can be parsed (or encoded) to determine whether a CCLM prediction mode should be applied to the current CU. When the CCLM mode flag (e.g., cclm_mode_flag) is 1 (or true), it indicates that a CCLM prediction mode should be applied to the current CU. The CCLM mode index (e.g., cclm_mode_idx) can be further parsed to determine which CCLM mode is applied to the current CU. CCLM modes can include, but are not limited to, LM, LM-A, and LM-L. LM can derive linear model parameters α and β using a left reference sample and an upper reference sample. LM-A can derive linear model parameters α and β using an upper reference sample, and LM-L can derive linear model parameters α and β using a left reference sample.
[0134] Table 1. Pseudocode for CCLM
[0135]
[0136] The chroma CUs (or chroma CUs intra-coded by CCLM) in CCLM applications can have spatial correlation with their spatial neighborhoods. Therefore, having (or determining) larger CUs as CCLM blocks with internal sub-blocks can save signaling overhead and improve coding efficiency.
[0137] In this disclosure, a CU may include sub-blocks within the CU, wherein all sub-blocks may be CCLM encoded.
[0138] In one embodiment, partitioning can be based on the dimensions of the CU, such as the width and / or height of the CU. Therefore, only one type of partitioning (e.g., horizontal or vertical) can be used within the CU. For example, if the width of the CU is equal to or greater than the height of the CU, then partitioning can be done as follows: Figure 10A The diagram shows the vertical partitioning of the CU. (As shown...) Figure 10A As shown, CU(1002) can be partitioned into multiple sub-blocks with indices from 0 to 3 along its width. In another example, if the width of CU is less than the height of CU, it can be partitioned as follows: Figure 10B The diagram shows the horizontal division of the CU. (As shown...) Figure 10B As shown, CU(1004) can be partitioned into multiple sub-blocks with indices 0 to 1 along the height direction of CU(1004).
[0139] In another embodiment, partitioning can be based on a minimum subblock size, which can be defined as minSubblockCCLM for CCLM. The value of the minimum subblock size (e.g., minSubblockCCLM) can be predefined in the encoder and decoder without explicit signaling. Alternatively, the minimum subblock size (e.g., minSubblockCCLM) can be signaled. For example, the minimum subblock size can be signaled using high-level syntax, such as a sequence parameter set (SPS), picture parameter set (PPS), slice, or tile. Based on the value of the minimum subblock size (e.g., minSubblockCCLM), the CU can be partitioned horizontally and / or vertically. For example, if the CU (1006) has a width of 4 and a height of 8, and the value of the minimum subblock size (e.g., minSubblockCCLM) is 2 (or 2x2), the CU (1006) can be partitioned into 8 subblocks horizontally and vertically, which can... Figure 10C As shown in the image.
[0140] In this disclosure, sub-block prediction (or prediction for sub-blocks) can be based on the reconstructed values of previously decoded sub-blocks. This can be done according to... Figure 10D The raster scan sequence shown executes sub-block prediction. For each sub-block, reconstructed samples are obtained by adding the residual signal to the prediction signal. The residual signal can be generated through processes including entropy decoding, inverse quantization, inverse transform, etc. Therefore, the reconstructed sample values of previous sub-blocks can be used to generate predicted sample values for subsequent sub-blocks.
[0141] In the embodiment, the sub-blocks of the current CU (such as...) Figure 10A The sub-block with index 0 can perform CCLM using the reference sample (not shown) of the current CU. Therefore, the linear model parameters α and β can be derived from the reference sample of the current CU. Similarly, subsequent sub-blocks (such as...) Figure 10A The sub-block with index 1 can use reconstructed samples from previous sub-blocks (such as the sub-block with index 0) as reference samples to perform CCLM. The linear model parameters α and β can be derived based on the reconstructed samples from the sub-block with index 0. Furthermore, the sub-block with index 2 can use reconstructed samples from the sub-block with index 1 as reference samples to perform CCLM. The sub-block with index 3 can use reconstructed samples from the sub-block with index 2 as reference samples to perform CCLM.
[0142] In this disclosure, the CCLM mode (e.g., LM, LM-A, or LM-L) of sub-blocks within a CU can be the same. In other words, once the CCLM mode is signaled using a CCLM mode index (e.g., cclm_mode_idx) as shown in Table 2, all sub-blocks in the CU can apply that CCLM mode.
[0143] Table 2. CCLM pseudocode including CCLM mode
[0144]
[0145] As shown in Table 2, CCLM mode flags (e.g., cclm_mode_flag) can be parsed (or encoded) to determine whether CCLM is applied to the current CU. If the CCLM mode flag (e.g., cclm_mode_flag) is 1 (or true), the CCLM subblock flag (e.g., cclm_subblock_flag) and CCLM mode index (e.g., cclm_mode_idx) can be further parsed. The CCLM subblock flag indicates whether CCLM is applied to subblocks of the current CU. The CCLM mode index indicates the CCLM mode (e.g., LM, LM-A, and LM-L). When the CCLM subblock flag (e.g., cclm_subblock_flag) is equal to 1 (or true), CCLM is applied to subblocks of the current CU. Otherwise, when the CCLM subblock flag is not 1, CCLM is not applied to subblocks of the current CU. The CCLM mode index (e.g., cclm_mode_idx) can be parsed to indicate which CCLM mode is applied to the current CU (or subblock). Therefore, if the CCLM subblock flag is not 1, the CCLM mode index can indicate which CCLM mode applies to the current CU. When the CCLM subblock flag is 1, the CCLM mode index can indicate which CCLM mode applies to all subblocks of the current CU.
[0146] In this disclosure, the CCLM mode used for sub-blocks within a CU or for each sub-block may depend on the availability of a reference sample for the respective sub-block.
[0147] In an embodiment, such as Figure 10D As shown, the gray area (1010) adjacent to the left side of the current block (1008) can represent the available reference sample of the current block (1008), and the blank area (1012) adjacent to the top side of the current block (1008) can represent the unavailable reference sample of the current block (1008). Therefore, the sub-block with index 0 can only have available left reference samples. Accordingly, the CCLM mode LM-L can be used to derive the linear model parameters α and β of the sub-block with index 0. For the sub-block with index 4, both the left and top reference samples are available. Therefore, the sub-block with index 4 can use the CCLM mode LM.
[0148] In one embodiment, for a CCLM CU (or CU applying CCLM) with sub-blocks CCLM (or sub-blocks applying CCLM), the CCLM mode index (e.g., cclm_mode_idx) may not be signaled. The CCLM mode applied to each sub-block in the CCLM CU may depend on the available reference samples for the corresponding sub-block. Exemplary pseudocode for skipping the CCLM mode index of a CCLM CU with sub-blocks CCLM can be shown in Table 3.
[0149] Table 3. Pseudocode for skipping CCLM schema indexes
[0150]
[0151] As shown in Table 3, CCLM mode flags (e.g., cclm_mode_flag) can be parsed (or encoded) to determine whether CCLM is applied to the current CU. If the CCLM mode flag (e.g., cclm_mode_flag) is 1 (or true), the CCLM subblock flag (e.g., cclm_subblock_flag) can be further parsed. When the CCLM subblock flag (e.g., cclm_subblock_flag) is equal to 1, it indicates that CCLM is applied to the subblock. Furthermore, the CCLM mode applied to each of the subblocks can depend on the available reference samples for the corresponding subblock. Otherwise, when the CCLM subblock flag is not equal to 1, it indicates that CCLM is not applied to the subblock.
[0152] In another embodiment, the CCLM sub-block flag may not be signaled (e.g.,
[0153] Instead of cclm_subblock_flag, it is inferred that it is always true. Therefore, CCLM can also be applied to the subblocks of the current CU when the CCLM mode (e.g., cclm_mode_flag) is equal to 1. Furthermore, the CCLM mode applied to each of the subblocks can depend on the available reference samples of the corresponding subblock.
[0154] Figure 11 A flowchart outlining an exemplary decoding method (1100) according to some embodiments of the present disclosure is shown. Figure 12 A flowchart outlining an exemplary encoding method (1200) according to some embodiments of this disclosure is shown. The proposed methods can be used individually or in combination in any order. Further, each of the method (or embodiment), encoder, and decoder can be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-volatile computer-readable medium.
[0155] In embodiments, any operation of the methods (e.g., (1100) and (1200)) can be combined or arranged in any number or order as needed. In embodiments, two or more operations of the methods (e.g., (1100) and (1200)) can be performed in parallel.
[0156] Methods (e.g., (1100) and (1200)) can be used for block reconstruction and / or encoding to generate predictive blocks for the blocks in reconstruction. In various embodiments, methods (e.g., (1100) and (1200)) are executed by processing circuitry, such as processing circuitry in terminal devices (310), (320), (330), and (340), processing circuitry performing the functions of a video encoder (403), processing circuitry performing the functions of a video decoder (410), processing circuitry performing the functions of a video decoder (510), and processing circuitry performing the functions of a video encoder (603), etc. In some embodiments, methods (e.g., (1100) and (1200)) are implemented in software instructions, so that when the processing circuitry executes the software instructions, the processing circuitry executes the methods (e.g., (1100) and (1200)).
[0157] like Figure 11 As shown, method (1100) can start from (S1101) and proceed to (S1110). At (S1110), the encoded information of the current block in the current picture can be received from the encoded video stream.
[0158] At (S1120), the current block can be partitioned into multiple sub-blocks.
[0159] At (S1130), a first flag included in the encoded information can be obtained, wherein the first flag indicates whether the cross-component linear model (CCLM) prediction is applied to the current block, wherein the chroma sample of the current block is predicted based on the reconstructed luminance sample of the current block.
[0160] At (S1140), in response to the first flag indicating that the CCLM is applied to the current block, the corresponding predicted sample value of the chromaticity sample in each of the plurality of sub-blocks of the current block is determined based on the CCLM.
[0161] At (S1150), the current block can be further reconstructed based on the corresponding predicted sample values of the chromaticity samples in each of the plurality of sub-blocks of the current block.
[0162] In one example, the current block is divided into the multiple sub-blocks along the width direction, based on the fact that the width of the current block is equal to or greater than the height of the current block.
[0163] In another example, the current block is divided into the plurality of sub-blocks along the height direction, based on the fact that the width of the current block is less than the height of the current block.
[0164] In yet another example, the current block is partitioned into the plurality of sub-blocks with the smallest sub-block size in both the height and width directions.
[0165] In method (1100), syntax elements from the encoded information can be obtained. The minimum sub-block size can be determined based on the syntax elements. The syntax elements are in one of the sequence parameter set SPS, the picture parameter set PPS, slices, and tiles.
[0166] In some embodiments, the predicted sample value of the chromaticity sample in the second sub-block of the plurality of sub-blocks can be determined based on the reconstructed sample of the first sub-block of the plurality of sub-blocks, wherein the second sub-block is adjacent to the first sub-block.
[0167] In some embodiments, in response to a first flag indicating that CCLM is applied to the current block, a second flag included in the encoded information is obtained. The second flag indicates whether CCLM is applied to each of the plurality of sub-blocks. In response to the second flag indicating that CCLM is applied to each of the plurality of sub-blocks, a corresponding predicted sample value for the chroma sample in each of the plurality of sub-blocks of the current block is determined based on CCLM.
[0168] In some embodiments, in response to a reconstructed neighboring sample being adjacent to the left side of a first sub-block of the plurality of sub-blocks, the predicted sample value of the chroma sample in the first sub-block is determined based on a first mode of the CCLM, wherein the first mode indicates that the predicted sample value of the chroma sample in the first sub-block is determined based on the reconstructed neighboring sample adjacent to the left side of the first sub-block. In response to a reconstructed neighboring sample being adjacent to the left side and top side of a second sub-block of the plurality of sub-blocks, the predicted sample value of the chroma sample in the second sub-block is determined based on a second mode of the CCLM, wherein the second mode indicates that the predicted sample value of the chroma sample in the second sub-block is determined based on the reconstructed neighboring sample adjacent to the left side and top side of the second sub-block.
[0169] In some embodiments, in response to a first flag indicating that the CCLM is applied to the current block, a second flag included in the encoded information is obtained, wherein the second flag indicates whether the CCLM is applied to each of the plurality of sub-blocks. An index included in the encoded information is obtained, wherein the index indicates the CCLM mode of the CCLM, the CCLM mode indicating which reconstructed neighboring samples the CCLM applies to generate the corresponding predicted sample value for the chroma sample in each of the plurality of sub-blocks. In response to the second flag indicating that the CCLM is applied to each of the plurality of sub-blocks and the index indicating the CCLM mode, the corresponding predicted sample value for the chroma sample in each of the plurality of sub-blocks of the current block is determined using the CCLM mode indicated by the index.
[0170] In some embodiments, in response to an index indicating a first CCLM mode, a corresponding predicted sample value for the chroma sample of a given sub-block is determined based on reconstructed neighboring samples adjacent to the left and top sides of each of the plurality of sub-blocks. In response to an index indicating a second CCLM mode, a corresponding predicted sample value for the chroma sample of a given sub-block is determined based on reconstructed neighboring samples adjacent to the left side of each of the plurality of sub-blocks. In response to an index indicating a third CCLM mode, a corresponding predicted sample value for the chroma sample of a given sub-block is determined based on reconstructed neighboring samples adjacent to the top side of each of the plurality of sub-blocks.
[0171] like Figure 12 As shown, method (1200) can start from (S1201) and proceed to (S1210). At (S1210), the current block in the current image can be divided into multiple sub-blocks.
[0172] At (S1220), the corresponding predicted sample value of the chromaticity sample in each of the multiple sub-blocks of the current block can be determined based on the cross-component linear model (CCLM), wherein the chromaticity sample of the current block is predicted based on the reconstructed luminance sample of the current block.
[0173] At (S1230), intra-frame prediction can be performed on the current block based on the corresponding predicted sample values of the chroma samples in each of the multiple sub-blocks of the current block.
[0174] At (S1240), a first flag indicating that CCLM is applied to multiple sub-blocks of the current block can be generated.
[0175] The techniques described above can be implemented as computer software that uses computer-readable instructions and is physically stored on one or more computer-readable media. For example, Figure 13 A computer system (1300) suitable for implementing certain embodiments of the disclosed subject matter is shown.
[0176] Computer software can be coded using any suitable machine code or computer language. Machine code or computer language can be created through assembly, compilation, linking or similar mechanisms to produce code that includes instructions that can be executed directly or through interpretation, microcode execution or other means by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc.
[0177] The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, etc.
[0178] Figure 13 The components shown for the computer system (1300) are exemplary in nature and are not intended to impose any limitation on the scope or functionality of computer software implementing embodiments of this disclosure. The configuration of the components should also not be construed as having any dependency or requirement on any component or combination thereof illustrated in the exemplary embodiments of the computer system (1300).
[0179] The computer system (1300) may include certain human-machine interface input devices. Such human-machine interface input devices may respond to input from one or more human users via, for example, tactile input (such as keystrokes, swipes, or movement with a data glove), audio input (such as speech or tapping), visual input (such as gestures), or olfactory input (not shown). The human-machine interface device may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (such as speech, music, or ambient sound), images (such as scanned images or photographic images acquired from a still image camera), and video (such as two-dimensional video or three-dimensional video including stereoscopic video).
[0180] The input human-machine interface device may include one or more of the following (only one of each is depicted): keyboard (1301), mouse (1302), touchpad (1303), touch screen (1310), data glove (not shown), joystick (1305), microphone (1306), scanner (1307), camera (1308).
[0181] The computer system (1300) may also include certain human-machine interface output devices. Such human-machine interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell / taste. Such human-machine interface output devices may include tactile output devices (e.g., tactile feedback from touchscreens (1310), data gloves (not shown), or joysticks (1305), but may also include tactile feedback devices that are not used as input devices), audio output devices (such as speakers (1309), headphones (not depicted)), visual output devices (such as screens (1310), including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touchscreen input capability, each with or without tactile feedback capability—some of which are capable of outputting two-dimensional or more than three-dimensional visual output in a manner such as stereoscopic output; virtual reality glasses (not depicted), holographic displays, and smoke canisters (not depicted)), and printers (not depicted).
[0182] The computer system (1300) may also include human-accessible storage devices and their associated media, such as optical media including media (1321) such as CD / DVD ROM / RW (1320) with CD / DVD, thumb drives (1322), removable hard disk drives or solid-state drives (1323), conventional magnetic media such as magnetic tapes and floppy disks (not depicted), devices based on dedicated ROM / ASIC / PLD such as security dongles (not depicted), etc.
[0183] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the presently disclosed subject matter does not include transmission media, carrier waves, or other volatile signals.
[0184] The computer system (1300) may also include an interface (1354) to one or more communication networks (1355). The network may be, for example, wireless, wired, or optical. The network may also be local, wide area, metropolitan area, vehicular and industrial, real-time, latency-tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., TV wired or wireless wide area digital networks including cable TV, satellite TV, and terrestrial broadcast TV, vehicular and industrial networks including CAN buses, etc. Some networks typically require external network interface adapters (such as, for example, a USB port of the computer system (1300)) attached to certain general-purpose data ports or peripheral buses (1349); other networks are typically integrated into the core of the computer system (1300) by attaching to system buses as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1300) can communicate with other entities. Such communication can be unidirectional (receive-only, e.g., broadcasting TV), unidirectional (transmit-only, e.g., CANbus to certain CANbus devices), or bidirectional, e.g., to other computer systems using local area digital networks or wide area digital networks. Certain protocols and protocol stacks can be used on each of those networks and network interfaces described above.
[0185] The aforementioned human-machine interface devices, human-accessible storage devices, and network interfaces can be attached to the core (1340) of the computer system (1300).
[0186] The core (1340) may include one or more central processing units (CPU) (1341), graphics processing units (GPUs) (1342), dedicated programmable processing units in the form of field-programmable gate arrays (FPGAs) (1343), hardware accelerators (1344) for certain tasks, graphics adapters (1350), etc. These devices, along with read-only memory (ROM) (1345), random access memory (1346), and internal mass storage (1347) such as internal non-user-accessible hard disk drives, SSDs, etc., can be connected via a system bus (1348). In some computer systems, the system bus (1348) may be accessed as one or more physical plugs to allow for expansion by adding CPUs, GPUs, etc. Peripheral devices may be attached directly or via a peripheral bus (1349) to the core's system bus (1348). In one example, a screen (1310) may be connected to a graphics adapter (1350). Peripheral bus architectures include PCI, USB, etc.
[0187] The CPU (1341), GPU (1342), FPGA (1343), and accelerator (1344) can execute certain instructions, and combinations of these instructions can constitute the aforementioned computer code. This computer code can be stored in ROM (1345) or RAM (1346). Transient data can also be stored in RAM (1346), while permanent data can be stored, for example, in internal mass storage (1347). Fast storage and retrieval of any memory device can be enabled by using cache memory, which can be closely associated with one or more CPUs (1341), GPUs (1342), mass storage (1347), ROM (1345), RAM (1346), etc.
[0188] Computer-readable media may have computer code thereon for performing various computer-implemented operations. The media and computer code may be those specifically designed and constructed for the purposes of this disclosure, or they may be of types known and available to those skilled in the art of computer software.
[0189] By way of example and not limitation, a computer system (1300) having an architecture, and in particular a core (1340), can provide functionality as a result of one or more processors (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage as described above, and some memory of the core (1340) having non-volatile properties, such as internal mass storage (1347) or ROM (1345). Software implementing various embodiments of this disclosure can be stored in such devices and executed by the core (1340). Depending on specific needs, the computer-readable medium may include one or more memory devices or chips. The software can cause the core (1340), and in particular the processors therein (including CPUs, GPUs, FPGAs, etc.), to execute specific portions of specific methods or processes described herein, including defining data structures stored in RAM (1346) and modifying such data structures according to software-defined processes. Alternatively or as an alternative, a computer system may provide functionality, as a result of hard-wired logic or otherwise embodied in circuitry (e.g., an accelerator (1344)), which may replace or operate with software to perform specific portions of the particular methods or processes described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media may include circuitry storing software for execution (such as integrated circuits (ICs)), circuitry embodying logic for execution, or both. This disclosure includes any suitable combination of hardware and software.
[0190] Appendix A: Acronyms
[0191] JEM: Joint Exploration Model
[0192] VVC: Versatile Video Coding
[0193] BMS: Benchmark set
[0194] MV: Motion Vector
[0195] HEVC: High Efficiency Video Coding
[0196] SEI: Supplementary Enhancement Information
[0197] VUI: Video Usability Information
[0198] GOPs: Groups of Pictures
[0199] TUs: Transform Units
[0200] PUs: Prediction Units
[0201] CTUs: Coding Tree Units
[0202] CTBs: Coding Tree Blocks
[0203] PBs: Prediction Blocks
[0204] HRD: Hypothetical Reference Decoder
[0205] SNR: Signal-to-Noise Ratio
[0206] CPUs: Central Processing Units
[0207] GPUs: Graphics Processing Units
[0208] CRT: Cathode Ray Tube
[0209] LCD: Liquid Crystal Display
[0210] OLED: Organic Light-Emitting Diode
[0211] CD: Compact Disc
[0212] DVD: Digital Video Disc
[0213] ROM: Read-Only Memory
[0214] RAM: Random Access Memory
[0215] ASIC: Application-Specific Integrated Circuit
[0216] PLD: Programmable Logic Device
[0217] LAN: Local Area Network
[0218] GSM: Global System for Mobile Communications
[0219] LTE: Long-Term Evolution
[0220] CANBus: Controller Area Network Bus
[0221] USB: Universal Serial Bus
[0222] PCI: Peripheral Component Interconnect
[0223] FPGA: Field Programmable Gate Areas
[0224] SSD: Solid-state drive
[0225] IC: Integrated Circuit
[0226] CU: Coding Unit
[0227] While this disclosure describes several exemplary embodiments, variations, arrangements, and various alternative equivalents exist that fall within the scope of this disclosure. Therefore, it will be understood that those skilled in the art will be able to design numerous systems and methods that, while not explicitly shown or described herein, embody the principles of this disclosure and are thus within its spirit and scope.
Claims
1. A method of video decoding, the method comprising: The method comprises: receiving coded information of a current block in a current picture from a coded video bitstream; partitioning the current block into a plurality of sub-blocks, comprising: partitioning the current block into the plurality of sub-blocks having a predefined minimum sub-block size in a height direction and a width direction based on the predefined minimum sub-block size; obtaining a first flag included in the coded information, the first flag indicating whether a Cross Component Linear Model (CCLM) prediction is applied to the current block, wherein chroma samples of the current block are predicted based on reconstructed luma samples of the current block; in response to the first flag indicating that the CCLM is applied to the current block, obtaining a second flag included in the coded information, the second flag indicating whether the CCLM is applied to each of the plurality of sub-blocks; in response to the second flag indicating that the CCLM is applied to each of the plurality of sub-blocks, determining respective predicted sample values of the chroma samples in each of the plurality of sub-blocks of the current block based on the CCLM and in a raster scan order, comprising: in a case that an index indicating a CCLM mode is obtained from the coded information, determining the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks of the current block using the CCLM mode indicated by the index, wherein the CCLM mode indicates which reconstructed neighboring samples are used by the CCLM to generate the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks; and in a case that an index indicating a CCLM mode is not obtained from the coded information, determining respective available reference samples according to positions of each of the plurality of sub-blocks and determining a CCLM mode for a respective sub-block based on available reference samples of the respective sub-block, comprising: in response to a reconstructed neighboring sample being adjacent to a left side of a first sub-block of the plurality of sub-blocks, determining the predicted sample values of the chroma samples in the first sub-block based on a first mode of the CCLM, the first mode indicating that the predicted sample values of the chroma samples in the first sub-block are determined based on the reconstructed neighboring sample adjacent to the left side of the first sub-block; and in response to a reconstructed neighboring sample being adjacent to a left side and a top side of a second sub-block of the plurality of sub-blocks, determining the predicted sample values of the chroma samples in the second sub-block based on a second mode of the CCLM, the second mode indicating that the predicted sample values of the chroma samples in the second sub-block are determined based on the reconstructed neighboring sample adjacent to the left side and the top side of the second sub-block; and reconstructing the current block based on the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks of the current block.
2. The method of claim 1, wherein, The partitioning the current block further comprises: partitioning the current block into the plurality of sub-blocks along a width direction based on a width of the current block being equal to or greater than a height of the current block.
3. The method of claim 1, wherein, The partitioning the current block further comprises: based on the width of the current block being less than the height of the current block, partitioning the current block into the plurality of sub-blocks along the height direction.
4. The method of claim 1, wherein, further comprising: obtaining a syntax element in the coded information; and determining the minimum sub-block size based on the syntax element, wherein: the syntax element is in one of a sequence parameter set (SPS), a picture parameter set (PPS), a slice, and a tile.
5. The method of claim 1, wherein, the determining the respective prediction sample values of the chroma samples in each of the plurality of sub-blocks of the current block based on the CCLM further comprises: determining the prediction sample values of the chroma samples in a second sub-block of the plurality of sub-blocks based on reconstructed samples of a first sub-block of the plurality of sub-blocks, the second sub-block being adjacent to the first sub-block.
6. The method of claim 1, wherein, the determining the respective prediction sample values of the chroma samples in each of the plurality of sub-blocks of the current block using the CCLM mode indicated by the index further comprises: in response to the index indicating a first CCLM mode, determining the respective prediction sample values of the chroma samples of a respective sub-block based on reconstructed neighboring samples adjacent to a left side and a top side of each sub-block of the plurality of sub-blocks; in response to the index indicating a second CCLM mode, determining the respective prediction sample values of the chroma samples of a respective sub-block based on the reconstructed neighboring samples adjacent to the left side of each sub-block of the plurality of sub-blocks; and in response to the index indicating a third CCLM mode, determining the respective prediction sample values of the chroma samples of a respective sub-block based on the reconstructed neighboring samples adjacent to the top side of each sub-block of the plurality of sub-blocks.
7. A method of video coding, the method comprising: the method comprises: partitioning a current block in a current picture into a plurality of sub-blocks, including partitioning the current block into the plurality of sub-blocks having a predefined minimum sub-block size in a height direction and a width direction based on the predefined minimum sub-block size; determining a first flag for the current block; in response to the first flag indicating that a cross-component linear model (CCLM) is applied to the current block, determining a second flag indicating whether the CCLM is applied to each of the plurality of sub-blocks; in response to the second flag indicating that the CCLM is applied to each of the plurality of sub-blocks, determining, based on a cross-component linear model (CCLM), and in a raster scan order, respective predicted sample values of chroma samples in each of the plurality of sub-blocks of the current block, wherein the chroma samples in the current block are predicted based on reconstructed luma samples of the current block, including: in a case that an index indicating a CCLM mode is signaled, determining the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks of the current block using the CCLM mode indicated by the index, wherein the CCLM mode indicates which reconstructed neighboring samples are used by the CCLM to generate the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks; and in a case that an index indicating a CCLM mode is not signaled, determining respective available reference samples according to a position of each of the plurality of sub-blocks, and determining a CCLM mode for a respective sub-block based on the available reference samples of the respective sub-block, including: in response to a coded neighboring sample being adjacent to a left side of a first sub-block of the plurality of sub-blocks, determining the predicted sample values of the chroma samples in the first sub-block based on a first mode of the CCLM, the first mode indicating that the predicted sample values of the chroma samples in the first sub-block are determined based on the coded neighboring sample adjacent to the left side of the first sub-block; and in response to a coded neighboring sample being adjacent to a left side and a top side of a second sub-block of the plurality of sub-blocks, determining the predicted sample values of the chroma samples in the second sub-block based on a second mode of the CCLM, the second mode indicating that the predicted sample values of the chroma samples in the second sub-block are determined based on the coded neighboring sample adjacent to the left side and the top side of the second sub-block; performing intra prediction on the current block based on the respective predicted sample values of the chroma samples in each of the plurality of sub-blocks of the current block; signaling the first flag and the second flag in coded information of the current block in a coded video bitstream.
8. A computer device, comprising: comprising: a memory storing instructions; a processor configured to execute the instructions to implement the method of any of claims 1-7.
9. A non-volatile storage medium, comprising: a memory storing instructions; and wherein the instructions, when executed by the processor, cause the processor to implement the method of any of claims 1-7.
10. A method of storing a video bitstream, the method comprising: performing the video encoding method of claim 7 to generate a video bitstream, and storing the video bitstream.
11. A method of transmitting a video bitstream, the method comprising: performing the video encoding method of claim 7 to generate a video bitstream, and transmitting the video bitstream.
Citation Information
Patent Citations
Encoding and decoding method, device and system for intra-frame prediction mode of chrominance component
CN110971897A
Image processing device and image processing method
WO2020262370A1
Linear model prediction method and coder
WO2021032171A1