Video decoding method, device and apparatus
By improving the intra-mode propagation method in the video decoder, determining the matching area and corresponding blocks to determine the intra-prediction mode, the problem of low intra-mode propagation efficiency in the prior art is solved, and the encoding efficiency and adequacy of the mode propagation are improved.
Patent Information
- Application Number
- CN202280007508.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-14
- Filing Date
- 2022-09-16
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2042-09-16
AI Technical Summary
In the existing video encoding technology, the intra-mode propagation efficiency is low, resulting in insufficient propagation of chroma template matching prediction and export mode, affecting the encoding efficiency.
By implementing an improved intra-mode propagation method in the video decoder, the matching area and corresponding block of the current block are determined, the intra-prediction mode of the current block is determined based on the corresponding block, and the corresponding position is predefined or signaled in the encoded information.
It improves the diversity of possible intra modes of non-intra-encoded CUs, improves the template matching prediction of chromaticity and the propagation of export modes, and improves coding efficiency.
Smart Images

Figure CN116636216B_ABST
Abstract
Description
[0001] Incorporation by Reference
[0002] This application claims the benefit of priority to U.S. Patent Application No. 17 / 945,032, filed on September 14, 2022, entitled "IMPROVEMENT ON INTRA MODE PROPAGATION," which claims the benefit of priority to U.S. Provisional Application No. 63 / 254,526, filed on October 11, 2021, entitled "Intra Mode Propagation." The disclosures of the prior applications are hereby incorporated by reference in their entirety. Technical Field
[0003] The present disclosure generally relates to video coding and decoding, and in particular to a video decoding method performed in a video decoder, a video decoding device, and a video decoding apparatus. Background Art
[0004] The purpose of the background description provided herein is to generally present the context of the present disclosure. To the extent that work is described in this background section, the work of the presently named inventors and aspects of the description that may not otherwise be described as prior art at the time of filing are neither explicitly nor implicitly admitted as prior art to the present disclosure.
[0005] Video encoding and decoding can be performed using inter-picture prediction with motion compensation. Uncompressed digital video can include a series of pictures, each picture having spatial dimensions of, for example, 1920×1080 luminance samples and associated chrominance samples. This series of pictures can have a fixed or variable picture rate (also informally called frame rate), for example, 60 pictures per second or 60Hz. Uncompressed video has specific bit rate requirements. For example, 1080p604:2:0 video with 8 bits per sample (1920×1080 luminance sample resolution at 60Hz frame rate) requires a bandwidth of nearly 1.5Gbit / s. One hour of such video requires more than 600 gigabytes of storage space.
[0006] One purpose of video encoding and decoding can be to reduce redundancy in the input video signal by compression. Compression can help reduce the bandwidth and / or storage space requirements mentioned above, in some cases by two orders of magnitude or more. Both lossless and lossy compression can be used, as well as combinations thereof. Lossless compression refers to a technique that can reconstruct an exact copy of the original signal based on the compressed original signal. When lossy compression is used, the reconstructed signal may be different from the original signal, but the distortion between the original signal and the reconstructed signal is small enough to enable the reconstructed signal to be used for the intended application. In the case of video, lossy compression is widely used. The amount of distortion tolerated depends on the application; for example, users of certain consumer streaming applications may tolerate higher distortion than users of television distribution applications. The achievable compression ratio can reflect that higher allowable / tolerable distortion can produce higher compression ratios.
[0007] Video encoders and decoders may utilize techniques from several broad categories including, for example, motion compensation, transforms, quantization, and entropy coding.
[0008] Video codec techniques may include techniques known as intra-frame coding. In intra-frame coding, sample values are represented without reference to samples or other data from previously reconstructed reference pictures. In some video codecs, pictures are spatially subdivided into blocks of samples. When all sample blocks are encoded in intra-frame mode, the picture may be an intra-frame picture. Intra-frame pictures and their derivatives (e.g., independent decoder refresh pictures) may be used to reset decoder states, and may therefore be used as the first picture in a coded video bitstream and video session, or as a still image. Samples of intra-frame blocks may be subjected to transformation, and transform coefficients may be quantized before entropy coding. Intra-frame prediction may be a technique for minimizing sample values in a pre-transform domain. In some cases, the smaller the DC value after transformation and the smaller the AC coefficient, the fewer bits are required to represent the block after entropy coding at a given quantization step size.
[0009] Conventional intra-frame coding, such as that known from, for example, MPEG-2 generation coding techniques, does not use intra-frame prediction. However, some newer video compression techniques include techniques that attempt to use intra-frame prediction based on surrounding sample data and / or metadata obtained, for example, during encoding and / or decoding of spatially adjacent and preceding data blocks in decoding order. Such techniques are hereinafter referred to as "intra-frame prediction" techniques. Note that, in at least some cases, intra-frame prediction uses reference data only from the current picture under reconstruction, and not reference data from reference pictures.
[0010] There can be many different forms of intra-frame prediction. When more than one such technique can be used in a given video coding technique, the techniques used can be encoded in intra-frame prediction mode. In some cases, a mode can have sub-modes and / or parameters, and these sub-modes and / or parameters can be encoded separately or included in the mode codeword. Which codeword is used for a given mode, sub-mode and / or parameter combination can affect the coding efficiency gain through intra-frame prediction, and therefore the entropy coding technique used to convert the codeword into a bitstream can also affect the coding efficiency gain through intra-frame prediction.
[0011] Some modes of intra prediction were introduced with H.264, refined in H.265, and further refined in newer coding techniques such as the joint exploration model (JEM), versatile video coding (VVC), and the benchmark set (BMS). Using neighboring sample values belonging to already available samples, a predictor block can be formed. Sample values of neighboring samples are copied into the predictor block according to the direction. A reference to the used direction can be encoded in the bitstream or can be predicted itself.
[0012] Reference Figure 1 , depicted at the bottom right is a subset of nine predictor directions known from the 33 possible predictor directions of H.265 (corresponding to the 33 angular modes of the 35 intra modes). The point where the arrows intersect (101) represents the sample being predicted. The arrows represent the direction in which the sample is predicted. For example, arrow (102) indicates that sample (101) is predicted based on one or more samples at a 45 degree angle to the horizontal line at the top right. Similarly, arrow (103) indicates that sample (101) is predicted based on one or more samples at a 22.5 degree angle to the horizontal line at the bottom left of sample (101).
[0013] Still refer to Figure 1, depicted at the top left is a square block (104) of 4×4 samples (indicated by bold dashed lines). The square block (104) includes 16 samples, each of which is labeled with "S", its position in the Y dimension (e.g., row index), and its position in the X dimension (e.g., column index). For example, sample S21 is the second sample in the Y dimension (from the top) and the first sample in the X dimension (from the left). Similarly, sample S44 is the fourth sample in the block (104) in both the Y dimension and the X dimension. Since the size of the block is 4×4 samples, S44 is at the bottom right. Also shown are reference samples that follow a similar numbering scheme. The reference samples are labeled with R, their Y position (e.g., row index) and X position (column index) relative to the block (104). In both H.264 and H.265, the prediction samples are adjacent to the block being reconstructed; therefore, there is no need to use negative values.
[0014] Intra-picture prediction can work by copying reference sample values from appropriate neighboring samples along a signaled prediction direction. For example, assume that the coded video bitstream includes signaling that indicates, for this block, a prediction direction consistent with arrow (102) - that is, the sample is predicted based on one or more prediction samples to the upper right at a 45 degree angle to the horizontal. In this 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, the values of multiple reference samples may be combined, for example, by interpolation, in order to compute a reference sample; in particular, when the directions are not evenly divisible at 45 degrees.
[0016] As video coding technology has evolved, the number of possible directions has also increased. In H.264 (2003), nine different directions could be represented. In H.265 (2013), this increased to 33, and JEM / VVC / BMS can support up to 65 directions when published. Experiments have been conducted to identify the most likely directions, and certain techniques in entropy coding are used to represent these possible directions with a small number of bits, at the expense of fewer possible directions. In addition, the direction itself can sometimes be predicted based on neighboring directions used in adjacent decoded blocks.
[0017] Figure 2 A schematic diagram (201) is shown depicting 65 intra prediction directions according to JEM to illustrate that the number of prediction directions increases over time.
[0018] The mapping of intra-prediction direction bits representing directions in the coded video bitstream can vary according to different video coding techniques; and the mapping can range, for example, from simple direct mapping of prediction directions to intra-prediction modes, codewords, complex adaptive schemes involving most probable modes, and similar techniques. However, in all cases, there may be certain directions that are statistically less likely to occur in the video content than certain other directions. Since the goal of video compression is to reduce redundancy, in a well-functioning video coding technique, those less probable directions will be represented by a larger number of bits than more probable directions.
[0019] In the related art, a method for improving intra-frame mode propagation needs to be proposed. Summary of the invention
[0020] Aspects of the present disclosure provide methods and apparatus for video encoding / decoding.In some examples, an apparatus for video decoding includes receiving circuitry and processing circuitry.
[0021] According to one aspect of the present disclosure, a video decoding method performed in a video decoder is provided. In the method, encoding information of (i) a current block of a picture and (ii) a reconstruction area of the picture can be received from a coded video bitstream. A matching area of the current block can be determined in the reconstruction area of the picture. A first corresponding position of the current block can be determined within the current block. The first corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block. The first axis may be perpendicular to the second axis. A corresponding block of the current block may be determined in the matching area. The corresponding block may include a second corresponding position, the second corresponding position having a first coordinate value on a first axis and a second coordinate value on a second axis relative to a second reference point on the matching area. An intra-frame prediction mode of the current block may be determined based on the corresponding block.
[0022] In order to determine the matching area, multiple candidate matching areas may be searched in the reconstructed area of the picture. The corresponding cost values between the template area of the current block and the corresponding template area of each candidate matching area in the multiple candidate matching areas may be determined. The candidate matching area with the minimum cost value among the multiple candidate matching areas may be determined as the matching area. The template area of the current block may include a first area adjacent to the left side of the current block and a second area adjacent to the top side of the current block. The corresponding template area of each candidate matching area in the multiple candidate matching areas may include a first area adjacent to the left side of one of the multiple candidate matching areas and a second area adjacent to the top side of the one of the multiple candidate matching areas.
[0023] In some embodiments, the first corresponding position of the current block may be predefined or signaled in the encoding information.
[0024] In some implementations, the first corresponding position may be the center of the current block.
[0025] In some implementations, the intra prediction mode of the corresponding block may be determined as the intra prediction mode of the current block.
[0026] In some embodiments, the intra prediction mode of the current block may be determined based on a universal intra mode mapping. The universal intra mode mapping may divide the matching area into a plurality of sub-areas. Each of the plurality of sub-areas may be associated with a corresponding intra prediction mode. The intra prediction mode of the current block may be associated with a sub-area including the second corresponding position in the plurality of sub-areas.
[0027] According to another aspect of the present disclosure, a method for video decoding performed in a video decoder may be provided. In the method, encoding information of (i) a chroma coding unit (CU) and (ii) a luminance region may be received from an encoded video bitstream. A corresponding position of a chroma CU may be determined within the chroma CU. The corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis. The first axis may be perpendicular to the second axis. A co-located luminance CU of the chroma CU may be determined in the luminance region. The co-located luminance CU may include a corresponding position. An intra-frame prediction mode of the chroma CU may be determined based on the co-located luminance CU.
[0028] In an embodiment, in response to intra-coding the co-located luma CU based on the intra prediction mode, the intra prediction mode of the co-located luma CU may be determined as the intra prediction mode of the chroma CU. In other embodiments, in response to not intra-coding the co-located luma CU, the propagated intra mode of the co-located luma CU may be determined as the intra prediction mode of the chroma CU. The propagated intra mode of the co-located luma CU may be obtained based on the intra prediction mode of the neighboring luma CU of the co-located luma CU.
[0029] In some embodiments, the corresponding positions of the chroma CUs may be predefined or signaled in the encoding information.
[0030] In some embodiments, the intra prediction mode of the chroma CU can be determined based on the general intra mode mapping. The general intra mode mapping can divide the luma region into multiple sub-regions. Each of the multiple sub-regions can be assigned a corresponding intra prediction mode. The intra prediction mode of the chroma CU can be associated with a sub-region including a corresponding position in the multiple sub-regions.
[0031] According to another aspect of the present disclosure, a video decoding device is provided. The device includes a processing circuit system. The processing circuit system can be configured to perform any of the methods for video decoding.
[0032] Aspects of the present disclosure also provide a non-transitory computer-readable medium storing instructions that, when executed by a computer for video decoding, cause the computer to perform any of the methods for video decoding.
[0033] Aspects of the present disclosure also provide a video decoding device. The device includes: a receiving module configured to receive (i) encoding information of a current block of a picture and (ii) encoding information of a reconstructed area of the picture from an encoded bitstream; a first determining module configured to determine a matching area of the current block in the reconstructed area of the picture; a second determining module configured to determine a first corresponding position of the current block within the current block, the first corresponding position including a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block, the first axis being perpendicular to the second axis; a third determining module configured to determine a corresponding block of the current block in the matching area, the corresponding block including a second corresponding position, the second corresponding position having a first coordinate value on the first axis and a second coordinate value on the second axis relative to a second reference point on the matching area; and a fourth determining module configured to determine an intra-frame prediction mode of the current block based on the corresponding block.
[0034] Aspects of the present disclosure also provide a video decoding device, which includes: a receiving module, which is configured to receive encoding information of (i) a chroma coding unit (CU) and (ii) a luminance area from an encoded video bitstream; a first determination module, which is configured to determine a corresponding position of the chroma CU within the CU, the corresponding position including a first coordinate value on a first axis and a second coordinate value on a second axis, the first axis being perpendicular to the second axis; a second determination module, which is configured to determine a co-located luminance CU of the chroma CU in the luminance area, the co-located luminance CU including a corresponding position; and a third determination module, which is configured to determine an intra-frame prediction mode of the chroma CU based on the co-located luminance CU.
[0035] According to the technical solution of the present disclosure, a non-intra-coded CU has a propagated intra mode, so that the possible intra modes of the non-intra-coded CU are diversified. In addition, the propagation of the template matching prediction and the derived mode of chrominance is improved by improving the intra mode propagation. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Further features, nature and various advantages of the disclosed subject matter will become more apparent from the following detailed description and the accompanying drawings, in which:
[0037] Figure 1 is a schematic illustration of an exemplary subset of intra prediction modes.
[0038] Figure 2 is a diagram of exemplary intra prediction directions.
[0039] Figure 3 is a schematic illustration of a simplified block diagram of a communication system (300) according to an embodiment.
[0040] Figure 4 is a schematic illustration of a simplified block diagram of a communication system (400) according to an embodiment.
[0041] Figure 5 is a schematic illustration of a simplified block diagram of a decoder according to an embodiment.
[0042] Figure 6 is a schematic illustration of a simplified block diagram of an encoder according to an embodiment.
[0043] Figure 7 A block diagram of an encoder according to another embodiment is shown.
[0044] Figure 8 A block diagram of a decoder according to another embodiment is shown.
[0045] Fig. 9 Neighboring coding units of a current coding unit in intra-mode encoding according to some embodiments of the present disclosure are shown.
[0046] Fig.10 is a schematic illustration of intra-frame template matching prediction (TMP) according to some embodiments of the present disclosure.
[0047] Fig.11 is a schematic diagram of a derived mode (DM) of chrominance according to some embodiments of the present disclosure.
[0048] Fig. 12A is a first exemplary general intra-mode mapping according to some embodiments of the present disclosure.
[0049] Fig. 12B is a second exemplary general intra-mode mapping according to some embodiments of the present disclosure.
[0050] Fig.13 is a schematic illustration of a first exemplary propagated intra-mode based on TMP according to some embodiments of the present disclosure.
[0051] Fig.14 is a schematic illustration of a second exemplary propagated intra-mode based on TMP according to some embodiments of the present disclosure.
[0052] Fig.15 A flowchart outlining a first exemplary decoding process according to some embodiments of the present disclosure is shown.
[0053] Fig.16 A flow chart outlining a second exemplary decoding process according to some embodiments of the present disclosure is shown.
[0054] Fig.17 A flowchart outlining a first exemplary encoding process according to some implementations of the present disclosure is shown.
[0055] Fig.18 A flowchart outlining a second exemplary encoding process according to some implementations of the present disclosure is shown.
[0056] Fig.19 is a schematic illustration of a computer system according to an embodiment. DETAILED DESCRIPTION
[0057] Figure 3 A simplified block diagram of a communication system (300) according to an embodiment of the present disclosure is shown. 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 pair of terminal devices (310) and (320) interconnected via the network (350). Figure 3 In the example of , a first pair of terminal devices (310) and (320) perform unidirectional transmission of data. For example, the terminal device (310) can encode video data (e.g., a video picture stream captured by the terminal device (310)) for transmission to another terminal device (320) via a network (350). The encoded video data can be transmitted in the form of one or more encoded video bitstreams. The terminal device (320) can receive the encoded video data from the network (350), decode the encoded video data to recover the video picture, and display the video picture based on the recovered video data. Unidirectional data transmission may be common in media service applications, etc.
[0058] In another example, the communication system (300) includes a second pair of terminal devices (330) and (340) that perform bidirectional transmission of encoded video data, which bidirectional transmission may occur, for example, during a video conference. For the bidirectional transmission of data, in the example, each of the terminal devices (330) and (340) can encode video data (e.g., a video picture stream captured by the terminal device) for transmission to the other of the terminal devices (330) and (340) via the network (350). Each of the terminal devices (330) and (340) can also receive the encoded video data transmitted by the other of the terminal devices (330) and (340), and can decode the encoded video data to restore the video picture, and can display the video picture at an accessible display device based on the restored video data.
[0059] exist Figure 3 In the example of , terminal devices (310), (320), (330) and (340) can be shown as servers, personal computers and smart phones, but the principles of the present disclosure may not be so limited. Implementations of the present disclosure are applicable to laptop computers, tablet computers, media players and / or dedicated video conferencing equipment. Network (350) represents any number of networks that transmit encoded video data between terminal devices (310), (320), (330) and (340), including, for example, wired (wired) and / or wireless communication networks. Communication network (350) can exchange data in circuit switching channels and / or packet switching channels. Representative networks include telecommunication networks, local area networks, wide area networks and / or the Internet. For the purposes of this discussion, unless otherwise described herein below, the architecture and topology of network (350) may be irrelevant to the operation of the present disclosure.
[0060] As examples of applications of the disclosed subject matter, Figure 4 The placement of a video encoder and a video decoder in a streaming environment is shown. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, video conferencing, digital TV, storing compressed video on digital media including CDs, DVDs, memory sticks, etc., and the like.
[0061] The streaming system may include a capture subsystem (413) that may include a video source (401), such as a digital camera, that creates, for example, an uncompressed video picture stream (402). In an example, the video picture stream (402) includes samples captured by the digital camera. The video picture stream (402) is depicted as a thick line to emphasize the high amount of data when compared to the encoded video data (404) (or encoded video bitstream), which may be processed by an electronic device (420) coupled to the video source (401) and including a video encoder (403). The video encoder (403) may include hardware, software, or a combination thereof to implement or implement aspects of the disclosed subject matter as described in more detail below. The encoded video data (404) (or the encoded video bitstream (404)) is depicted as a thin line to emphasize the lower amount of data when compared to the video picture stream (402), and the encoded video data (404) (or the encoded video bitstream (404)) can be stored on the streaming server (405) for future use. One or more streaming client subsystems, such as Figure 4The client subsystems (406) and (408) in the streaming server (405) can access the streaming server (405) to retrieve copies (407) and (409) of the encoded video data (404). The client subsystem (406) can 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 creates an outgoing video picture stream (411) that can be presented on a display (412) (e.g., a display screen) or another presentation device (not depicted). In some streaming systems, the encoded video data (404), (407) and (409) (e.g., a video bitstream) can be encoded according to certain video encoding / compression standards. Examples of these standards include ITU-T Recommendation H.265. In the example, the video coding standard under development is informally referred to as Versatile Video Coding (VVC). The disclosed subject matter can be used in the context of VVC.
[0062] Note that the electronic devices (420) and (430) may include other components (not shown). For example, the electronic device (420) may include a video decoder (not shown), and the electronic device (430) may also include a video encoder (not shown).
[0063] Figure 5 A block diagram of a video decoder (510) according to an embodiment of the present disclosure is shown. The video decoder (510) may be included in an electronic device (530). The electronic device (530) may include a receiver (531) (e.g., receiving circuitry). The video decoder (510) may replace Figure 4 The video decoder (410) in the example is used.
[0064] A receiver (531) may receive one or more encoded video sequences to be decoded by a video decoder (510); in the same or another embodiment, one encoded video sequence is received at a time, wherein the decoding of each encoded video sequence is independent of the other encoded video sequences. The encoded video sequence 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, which may be forwarded to their respective consuming entities (not depicted). The receiver (531) may separate the encoded video sequence from the other data. To prevent network jitter, a buffer memory (515) may be coupled between the receiver (531) and an entropy decoder / parser (520) (hereinafter referred to as "parser (520)"). In some applications, the buffer memory (515) is part of the video decoder (510). In other applications, the buffer memory (515) may be external to the video decoder (510) (not depicted). In still other applications, there may be a buffer memory (not depicted) external to the video decoder (510) to, for example, prevent network jitter, and in addition there may be another buffer memory (515) internal to the video decoder (510) to, for example, handle playout timing. When the receiver (531) receives data from a store / forward device with sufficient bandwidth and controllability or from an isochronous network, the buffer memory (515) may not be needed, or the buffer memory (515) may be small. For use over a best effort packet network such as the Internet, a buffer memory (515) may be needed, which may be relatively large and may advantageously have an adaptive size, and may be implemented at least in part in an operating system or similar element (not depicted) external to the video decoder (510).
[0065] The video decoder (510) may include a parser (520) to reconstruct symbols (521) from the encoded video sequence. The categories of these symbols include: information for managing the operation of the video decoder (510), and possibly information for controlling a rendering device such as a rendering device (512) (e.g., a display screen), which is not part of the electronic device (530) but can be coupled to the electronic device (530), such as Figure 5. The control information of the rendering device may be in the form of a Supplemental Enhancement Information (SEI message) or a Video Usability Information (VUI) parameter set fragment (not depicted). The parser (520) may parse / entropy decode the received coded video sequence. The coding of the coded video sequence may comply with a video coding technique or standard 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 for at least one subgroup of the pixel subgroups in the video decoder from the coded video sequence based on at least one parameter corresponding to the group. The subgroup may include: a group of pictures (Group of Pictures, GOP), a picture, a tile, a slice, a macroblock, a coding unit (Coding Unit, CU), a block, a transform unit (Transform Unit, TU), a prediction unit (Prediction Unit, PU), etc. The parser (520) may also extract information such as transform coefficients, quantizer parameter values, motion vectors, etc. from the coded video sequence.
[0066] The parser (520) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (515) to create symbols (521).
[0067] The reconstruction of the symbol (521) may involve a number of different units depending on the type of coded video picture or portion thereof (e.g., inter- and intra-pictures, inter- and intra-blocks) and other factors. Which units are involved and how they are involved may be controlled by subgroup control information parsed from the coded video sequence by the parser (520). For clarity, such subgroup control information flow between the parser (520) and the following multiple units is not depicted.
[0068] In addition to the functional blocks already mentioned, the video decoder (510) can be conceptually subdivided into a number of functional units as described below. In a practical implementation operating under commercial constraints, many of these units interact closely with each other and may be at least partially integrated with each other. However, for the purpose of describing the disclosed subject matter, it is appropriate to conceptually subdivide into the following functional units.
[0069] The first unit is a sealer / inverse transform unit (551). The sealer / inverse transform unit (551) receives quantized transform coefficients and control information (including which transform to use, block size, quantization factor, quantization scaling matrix, etc.) from the parser (520) as (one or more) symbols (521). The sealer / inverse transform unit (551) can output blocks including sample values, which can be input into the aggregator (555).
[0070] In some cases, the output samples of the scaler / inverse transform unit (551) may belong to an intra-coded block; that is, a block that does not use predictive information from a previously reconstructed picture but may use predictive information from a previously reconstructed portion of the current picture. Such predictive information may be provided by an intra-picture prediction unit (552). In some cases, the intra-picture prediction unit (552) generates a block of the same size and shape as the block being reconstructed using surrounding reconstructed information obtained from a current picture buffer (558). For example, the current picture buffer (558) buffers a partially reconstructed current picture and / or a fully reconstructed current picture. In some cases, the aggregator (555) adds the prediction information already generated by the intra-prediction unit (552) to the output sample information as provided by the scaler / inverse transform unit (551) on a per-sample basis.
[0071] In other cases, the output samples of the scaler / inverse transform unit (551) may belong to an inter-frame coded and possibly motion compensated block. In such a case, the motion compensated prediction unit (553) may access the reference picture memory (557) to obtain samples for prediction. After motion compensation of the obtained samples according to the symbols (521) belonging to the block, these samples may be added by the aggregator (555) to the output of the scaler / inverse transform unit (551) (in this case referred to as residual samples or residual signal), thereby generating output sample information. The address within the reference picture memory (557) from which the motion compensated prediction unit (553) obtains the predicted samples may be controlled by a motion vector, which may be obtained by the motion compensated prediction unit (553) in the form of a symbol (521), which may have, for example, an X component, a Y component and a reference picture component. Motion compensation may also include interpolation of sample values obtained from the reference picture memory (557) when using sub-sample accurate motion vectors, motion vector prediction mechanisms, etc.
[0072] The output samples of the aggregator (555) may be subjected to various loop filtering techniques in a loop filter unit (556). The video compression techniques may include in-loop filter techniques controlled by parameters included in the coded video sequence (also referred to as a coded video bitstream), which parameters may be obtained by the loop filter unit (556) as symbols (521) from the parser (520), but the in-loop filter techniques may also be responsive to meta-information obtained during decoding of a previous portion (in decoding order) of the coded picture or coded video sequence, and to previously reconstructed and loop filtered sample values.
[0073] The output of the loop filter unit (556) may be a sample stream that may be output to a rendering device (512) and stored in a reference picture memory (557) for use in future inter-picture prediction.
[0074] Once fully reconstructed, certain coded pictures can be used as reference pictures for use in future predictions. For example, once a coded picture corresponding to a current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by the parser (520)), the current picture buffer (558) can become part of the reference picture memory (557) and a new current picture buffer can be reallocated before starting to reconstruct a subsequent coded picture.
[0075] The video decoder (510) may perform decoding operations according to a predetermined video compression technology in a standard such as ITU-T H.265 Recommendation. The coded video sequence may conform to the syntax specified by the video compression technology or standard used in the sense that the coded video sequence follows both the syntax of the video compression technology or standard and the profile recorded in the video compression technology or standard. Specifically, the profile may select certain tools from all the tools available in the video compression technology or standard as tools available only under the profile. For compliance, it is also required that the complexity of the coded video sequence is within the limits defined by the level of the video compression technology or standard. In some cases, the level limits the maximum picture size, the maximum frame rate, the maximum reconstruction sample rate (measured in, for example, millions of samples per second), the maximum reference picture size, etc. In some cases, the limits set by the level may be further limited by the Hypothetical Reference Decoder (HRD) specification and the metadata of the HRD buffer management signaled in the coded video sequence.
[0076] In an embodiment, the receiver (531) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence (one or more). 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 be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.
[0077] Figure 6 A block diagram of a video encoder (603) according to an embodiment of the present disclosure is shown. The video encoder (603) is included in an electronic device (620). The electronic device (620) includes a transmitter (640) (e.g., a transmission circuit system). The video encoder (603) can replace Figure 4 The video encoder (403) in the example is used.
[0078] The video encoder (603) can be used to obtain the video source (601) (not Figure 6 In an example of an electronic device (620) receiving video samples, a video source (601) can capture (one or more) video images to be encoded by a video encoder (603). In another example, the video source (601) is a part of the electronic device (620).
[0079] The video source (601) may provide a source video sequence in the form of a digital video sample stream to be encoded by the video encoder (603), the digital video sample stream may have any suitable bit depth (e.g., 8 bits, 10 bits, 12 bits, ...), any color space (e.g., BT.601 Y CrCB, RGB, ...), and any suitable sampling structure (e.g., YCrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (601) may be a storage device storing previously prepared videos. In a video conferencing system, the video source (601) may be a camera device that captures local image information as a video sequence. The video data may be provided as a plurality of separate pictures that are given motion when viewed sequentially. The picture itself may be organized as a spatial pixel array, wherein each pixel may include one or more samples, depending on the sampling structure, color space, etc. used. The relationship between pixels and samples may be easily understood by those skilled in the art. The following description focuses on samples.
[0080] According to an embodiment, the video encoder (603) can encode and compress the pictures of the source video sequence into a coded video sequence (643) in real time or under any other time constraints required by the application. Implementing the appropriate encoding speed is a function of the controller (650). In some embodiments, the controller (650) controls other functional units as described below and is functionally coupled to the other functional units. The coupling is not depicted for simplicity. The parameters set by the controller (650) may include rate control related parameters (picture skipping, quantizer, lambda value of rate distortion optimization technology...), picture size, picture group (GOP) layout, maximum motion vector search range, etc. The controller (650) can be configured to have other suitable functions that belong to the video encoder (603) optimized for a specific system design.
[0081] In some embodiments, the video encoder (603) is configured to operate in an encoding loop. As an extremely simplified description, in an example, the encoding loop may include a source encoder (630) (e.g., responsible for creating symbols, such as a symbol stream, based on an input picture to be encoded and (one or more) reference pictures) and a (local) decoder (633) embedded in the video encoder (603). The decoder (633) reconstructs the symbols to create sample data in a manner similar to the way the (remote) decoder creates sample data (because in the video compression techniques considered in the disclosed subject matter, any compression between the symbols and the encoded video bitstream is lossless). The reconstructed sample stream (sample data) is input to a reference picture memory (634). Since the decoding of the symbol stream produces bit-accurate results that are independent of the decoder location (local or remote), the contents of the reference picture memory (634) are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction part of the encoder "sees" sample values that are exactly the same as the sample values that the decoder "sees" when using prediction during decoding as reference picture samples. This basic principle of reference picture synchronization (and the resulting offset if synchronization cannot be maintained, e.g. due to channel errors) is also used in some related techniques.
[0082] The operation of the "local" decoder (633) can be combined with the "remote" decoder such as has been described above. Figure 5 The operation of the video decoder (510) described in detail is the same. However, in addition, briefly refer to Figure 5 , since the symbols are available and the encoding of the symbols into a coded video sequence by the entropy encoder (645) and the decoding of the symbols by the parser (520) can be lossless, the entropy decoding portion of the video decoder (510) including the buffer memory (515) and the parser (520) may not be fully implemented in the local decoder (633).
[0083] The observation that can be made at this point is that any decoder technology other than the parsing / entropy decoding present in the decoder must also be present in the corresponding encoder in substantially the same functional form. For this reason, the disclosed subject matter focuses on the decoder operation. The description of encoder technology can be simplified because encoder technology is contrary to the decoder technology described comprehensively. A more detailed description is only required and provided in certain aspects below.
[0084] In some examples, during operation, the source encoder (630) may perform motion compensated predictive coding, which predictively encodes an input picture with reference to one or more previously encoded pictures from a video sequence designated as “reference pictures.” In this manner, the encoding engine (632) encodes the differences between pixel blocks of an input picture and pixel blocks of reference picture(s) that may be selected as prediction reference(s) for the input picture.
[0085] The local video decoder (633) can decode the encoded video data of the picture that can be designated as the reference picture based on the symbol created by the source encoder (630). The operation of the encoding engine (632) can advantageously be a lossy process. When the encoded video data can be decoded at the video decoder ( Figure 6 When the video encoder (603) is decoded at a remote location (not shown), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. The local video decoder (633) replicates the decoding process that may be performed by the video decoder on the reference picture and may cause the reconstructed reference picture to be stored in the reference picture cache (634). In this way, the video encoder (603) may locally store a copy of the reconstructed reference picture that has common content (absent transmission errors) with the reconstructed reference picture that will be obtained by the remote video decoder.
[0086] The predictor (635) may perform a prediction search for the encoding engine (632). That is, for a new picture to be encoded, the predictor (635) may search the reference picture memory (634) for sample data (as candidate reference pixel blocks) or specific metadata, such as reference picture motion vectors, block shapes, etc., that may be used as suitable prediction references for the new picture. The predictor (635) may operate on a sample-block-by-pixel-block basis to find a suitable prediction reference. In some cases, as determined by the search results obtained by the predictor (635), the input picture may have prediction references taken from multiple reference pictures stored in the reference picture memory (634).
[0087] The controller (650) may manage encoding operations of the source encoder (630), including, for example, setting parameters and sub-group parameters for encoding video data.
[0088] The outputs of all the above-mentioned functional units may be subjected to entropy coding in the entropy encoder (645). The entropy encoder (645) converts the symbols generated by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc.
[0089] The transmitter (640) can buffer the encoded video sequence(s) created by the entropy encoder (645) in preparation for transmission via a communication channel (660), which can be a hardware / software link to a storage device storing 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).
[0090] The controller (650) may manage the operation of the video encoder (603). During encoding, the controller (650) may assign a certain encoding picture type to each encoded picture, which may affect the encoding techniques that may be applied to the corresponding picture. For example, a picture may generally be assigned one of the following picture types:
[0091] An intra picture (I picture) may be a picture that can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow different types of intra pictures, including, for example, Independent Decoder Refresh ("IDR") pictures. Those skilled in the art are aware of those variations of I pictures and their corresponding applications and features.
[0092] A predictive picture (P picture) may be a picture that can be encoded and decoded using inter prediction or intra prediction to predict sample values of each block using at most one motion vector and a reference index.
[0093] Bidirectional predictive pictures (B pictures), which can be pictures that can be encoded and decoded using inter-prediction or intra-prediction that uses up to two motion vectors and reference indices to predict sample values for each block. Similarly, multiple predictive pictures can use more than two reference pictures and associated metadata for reconstruction of a single block.
[0094] The source picture may typically be spatially subdivided into a number of blocks of samples (e.g., blocks of 4×4, 8×8, 4×8, or 16×16 samples, respectively), and coded block by block. These blocks may be predictively coded with reference to other (coded) blocks, which are determined by the coding allocation applied to the corresponding picture of the block. For example, blocks of an I picture may be non-predictively coded, or may be predictively coded (spatial prediction or intra-prediction) with reference to coded blocks of the same picture. Pixel blocks of a P picture may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference picture. Blocks of a B picture may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.
[0095] The video encoder (603) may perform encoding operations according to a predetermined video encoding technique or standard, such as ITU-T H.265 Recommendation. In its operation, the video encoder (603) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may conform to the syntax specified by the video encoding technique or standard used.
[0096] In an embodiment, the transmitter (640) may transmit additional data along with the encoded video. The source encoder (630) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.
[0097] Video can be captured as multiple source pictures (video pictures) in a temporal sequence. Intra-picture prediction (often simplified as intra-prediction) exploits spatial correlation in a given picture, while inter-picture prediction exploits (temporal or other) correlations between pictures. In an example, a particular picture being encoded / decoded (which is referred to as the current picture) is divided into blocks. In the case where a block in the current picture is similar to a reference block in a reference picture that was previously encoded and buffered in the video, the block in the current picture can be encoded by a vector called a motion vector. The motion vector points to a reference block in a reference picture, and in the case of using multiple reference pictures, the motion vector may have a third dimension that identifies the reference picture.
[0098] In some embodiments, bidirectional prediction techniques may be used for inter-picture prediction. According to the bidirectional prediction technique, two reference pictures are used, for example, a first reference picture and a second reference picture that are both before the current picture in the video in decoding order (but may be in the past and future, respectively, in display order). A block in the current picture may be encoded by a first motion vector pointing to a first reference block in the first reference picture and a second motion vector pointing to a second reference block in the second reference picture. The block may be predicted by a combination of the first reference block and the second reference block.
[0099] In addition, merge mode techniques can be used in inter-picture prediction to improve coding efficiency.
[0100] According to some embodiments of the present disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed in units of blocks. For example, according to the HEVC standard, a picture in a video picture sequence is divided into coding tree units (CTUs) for compression, and the CTUs in the picture have the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. In general, a CTU includes three coding tree blocks (CTBs), namely a luminance CTB and two chrominance CTBs. Each CTU can be recursively divided into one or more coding units (CUs) in a quadtree. For example, a 64×64 pixel CTU can be divided into a 64×64 pixel CU, or 4 32×32 pixel CUs, or 16 16×16 pixel CUs. In the example, each CU is analyzed to determine a prediction type for the CU, such as an inter-prediction type or an intra-prediction type. 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 an embodiment, the prediction operation in the codec (encoding / decoding) is performed in units of prediction blocks. Using the luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values (e.g., luma values) such as 8×8 pixels, 16×16 pixels, 8×16 pixels, 16×8 pixels, etc.
[0101] Figure 7 A diagram of a video encoder (703) according to another embodiment of the present disclosure is shown. The video encoder (703) is configured to receive a processed block (e.g., a prediction block) of sample values within a current video picture in a sequence of video pictures, and encode the processed block into an encoded picture that is part of an encoded video sequence. In an example, the video encoder (703) replaces Figure 4 The video encoder (403) in the example is used.
[0102] In the HEVC example, the video encoder (703) receives a matrix of sample values of a processing block, such as a prediction block of 8×8 samples. The video encoder (703) uses, for example, rate-distortion optimization to determine whether to best encode the processing block using intra mode, inter mode, or bidirectional prediction mode. In the case where the processing block is to be encoded in intra mode, the video encoder (703) may encode the processing block into a coded picture using intra prediction techniques; and in the case where the processing block is to be encoded in inter mode or bidirectional prediction mode, the video encoder (703) may encode the processing block into a coded picture using inter prediction or bidirectional prediction techniques, respectively. In some video coding techniques, the merge mode may be an inter-picture prediction submode, where the motion vector is derived from the predictor without the aid of an encoded motion vector component external to one or more motion vector predictors. In some other video coding techniques, there may be a motion vector component applicable to the object block. In the example, the video encoder (703) includes other components, such as a mode decision module (not shown) that determines the mode of the processing block.
[0103] exist Figure 7 In the example of FIG. 7 , the video encoder ( 703 ) includes Figure 7 An inter-frame encoder (730), an intra-frame encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), an overall controller (721), and an entropy encoder (725) are shown coupled together.
[0104] The inter-frame encoder (730) is configured to receive samples of a current block (e.g., a processing block), compare the block with one or more reference blocks in a reference picture (e.g., blocks in a previous picture and a subsequent picture), generate inter-frame prediction information (e.g., description of redundant information, motion vectors, merge mode information according to an inter-frame coding technique), and calculate an inter-frame prediction result (e.g., a prediction block) based on the inter-frame prediction information using any suitable technique. In some examples, the reference picture is a decoded reference picture that is decoded based on the encoded video information.
[0105] The intra encoder (722) is configured to: receive samples of a current block (e.g., a processing block); compare the block with an already encoded block in the same picture in some cases; generate quantization coefficients after transformation; and in some cases also generate intra prediction information (e.g., generate intra prediction direction information according to one or more intra coding techniques). In an example, the intra encoder (722) also calculates an intra prediction result (e.g., a prediction block) based on the intra prediction information and a reference block in the same picture.
[0106] The overall controller (721) is configured to determine overall control data and control other components of the video encoder (703) based on the overall control data. In an example, the overall controller (721) determines a mode of a block and provides a control signal to a switch (726) based on the mode. For example, when the mode is an intra-frame mode, the overall controller (721) controls the switch (726) to select an intra-frame mode result for use by a residual calculator (723), and controls the entropy encoder (725) to select intra-frame prediction information and include the intra-frame prediction information in a bitstream; and when the mode is an inter-frame mode, the overall controller (721) controls the switch (726) to select an inter-frame prediction result for use by a residual calculator (723), and controls the entropy encoder (725) to select inter-frame prediction information and include the inter-frame prediction information in a bitstream.
[0107] The residual calculator (723) is configured 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). The residual encoder (724) is configured to operate based on the residual data to encode the residual data to generate a transform coefficient. In an example, the residual encoder (724) is configured to convert the residual data from the spatial domain to the frequency domain and generate a transform coefficient. Then, the transform coefficient is subjected to quantization to obtain a quantized transform coefficient. In various embodiments, the video encoder (703) also includes a residual decoder (728). The residual decoder (728) is configured to perform an 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 the inter prediction information, and the intra encoder (722) can generate a decoded block based on the decoded residual data and the intra prediction information. In some examples, the decoded blocks are processed appropriately to generate decoded pictures, and these decoded pictures can be buffered in memory circuits (not shown) and used as reference pictures.
[0108] The entropy encoder (725) is configured to format the bitstream to include the coded blocks. The entropy encoder (725) is configured to include various information according to a suitable standard, such as the HEVC standard. In an example, the entropy encoder (725) is configured to include overall 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. Note that according to the disclosed subject matter, when the block is encoded in the merge sub-mode of the inter-frame mode or the bidirectional prediction mode, there is no residual information.
[0109] Figure 8A diagram of a video decoder (810) according to another embodiment of the present disclosure is shown. The video decoder (810) is configured to receive an encoded picture as part of an encoded video sequence and decode the encoded picture to generate a reconstructed picture. In an example, the video decoder (810) replaces Figure 4 The video decoder (410) in the example uses.
[0110] exist Figure 8 In the example of FIG. 8 , the video decoder ( 810 ) includes Figure 8 An entropy decoder (871), an inter-frame decoder (880), a residual decoder (873), a reconstruction module (874), and an intra-frame decoder (872) are shown coupled together.
[0111] The entropy decoder (871) can be configured to reconstruct certain symbols from the coded picture, which represent the syntax elements constituting the coded picture. Such symbols may include, for example, a mode for encoding a block (e.g., an intra-frame mode, an inter-frame mode, a bidirectional prediction mode, a merged sub-mode of the latter two, or another sub-mode), prediction information (e.g., intra-frame prediction information or inter-frame prediction information) that can identify certain samples or metadata for prediction by an intra-frame decoder (872) or an inter-frame decoder (880), for example, residual information in the form of quantized transform coefficients, etc. In an example, when the prediction mode is an inter-frame mode or a bidirectional prediction mode, the inter-frame prediction information is provided to the inter-frame decoder (880); and when the prediction type is an intra-frame prediction type, the intra-frame prediction information is provided to the intra-frame decoder (872). The residual information can be subjected to inverse quantization and provided to the residual decoder (873).
[0112] The inter-frame decoder (880) is configured to receive the inter-frame prediction information and generate an inter-frame prediction result based on the inter-frame prediction information.
[0113] The intra decoder (872) is configured to receive intra prediction information and generate a prediction result based on the intra prediction information.
[0114] The residual decoder (873) is configured to perform inverse quantization to extract dequantized transform coefficients, and process the dequantized transform coefficients to convert the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require certain control information (to include quantizer parameters (Quantizer Parameter, QP)), and the information may be provided by the entropy decoder (871) (data path is not depicted because this may only be a small amount of control information).
[0115] The reconstruction module (874) is configured to combine the residual output by the residual decoder (873) with the prediction result (output by the inter-frame prediction module or the intra-frame prediction module as appropriate) in the spatial domain to form a reconstructed block, which can be part of a reconstructed picture, which can be part of a reconstructed video. Note that other suitable operations such as deblocking operations can be performed to improve visual quality.
[0116] Note that the video encoders (403), (603) and (703) and the video decoders (410), (510) and (810) may be implemented using any suitable technology. In an embodiment, the video encoders (403), (603) and (703) and the video decoders (410), (510) and (810) may be implemented using one or more integrated circuits. In another embodiment, the video encoders (403), (603) and (603) and the video decoders (410), (510) and (810) may be implemented using one or more processors that execute software instructions.
[0117] The present disclosure includes improvements to most probable mode (MPM) list construction.
[0118] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) published the H.265 / HEVC (High Efficiency Video Coding, HEVC) standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). In 2015, the two standards organizations jointly formed the JVET (Joint Video Exploration Team, JVET) to explore the potential of developing the next generation video coding standard beyond HEVC. In April 2018, JVET formally launched the standardization process for the next generation video coding beyond HEVC. The new standard was named Versatile 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.
[0119] To form an MPM list, in one example, a general MPM list with 22 entries may be first constructed. The first 6 entries in the general MPM list may be included in the main MPM list.
[0120] The first entry in the general MPM list may be a planar mode. The remaining entries in the general MPM list may include (i) intra modes for left (L), above (A), lower left (BL), upper right (AR), and upper left (AL) neighboring blocks, (ii) directional modes with increased offsets from the first two available directional modes for neighboring blocks, and (iii) a default mode. Fig. 9 The positions of L, A, BL, AR and AL neighboring blocks are shown in .
[0121] If a CU block (e.g. Fig. 9 If the height of (902) in MPM is not less than the width of the CU block, the order of adjacent blocks can be A, L, BL, AR, and AL; otherwise, the order of adjacent blocks can be L, A, BL, AR, and AL. The order of MPM entries is important because the index of the entry can be encoded with truncated binary. The latter truncated binary takes more bits to encode.
[0122] When neighboring blocks AL, A, and AR are in a coding tree unit (CTU) different from the current CU (e.g., (902)), the neighboring blocks AL, A, and AR may be considered unavailable due to line buffer limitations. Therefore, the intra mode of the unavailable neighboring CU may not be inserted into the MPM list.
[0123] The propagated intra mode can also be applied to MPM list construction. For example, in VVC, when a neighbor CU is an inter-coded CU, the intra mode of the neighbor CU can be considered as a plane mode and inserted into the MPM list.
[0124] The intra-frame mode of an intra-coded CU can be stored in a memory in units of 4×4 pixel samples. For an intra-coded CU applying decoder side intra mode derivation (DIMD), the intra-frame mode derived by the decoder side based on DIMD with the highest histogram of gradient (HoG) can be stored in a memory. For an intra-coded CU applying template-based intra mode derivation (TIMD), the intra-frame mode derived by the decoder side with the minimum sum of absolute transformed difference (SATD) cost can be stored. For an intra-coded CU applying block-based delta pulse code modulation (BDPCM), the BDPCM direction transmitted by the signal can be stored. For an intra-coded CU applying matrix-based intra prediction (MIP) or template matching prediction (TMP), a plane mode can be stored. For other intra-coded CUs, intra modes derived from the MPM list or non-MPM list may be stored.
[0125] To improve the accuracy of the MPM list, when the neighboring blocks are inter-coded, the propagated intra prediction mode can be derived using motion vectors and reference pictures. For inter-coded CUs, intra modes can be propagated from the reference region to the inter-coded CU.
[0126] Intra-frame template matching prediction (also called intra-frame TMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed part of the current frame, and the L-shaped template of the current frame is matched with the current template (e.g., the template of the current block). For a predefined search range, the encoder searches for the template most similar to the current template in the reconstructed part of the current frame and uses the corresponding block as the prediction block, where the most similar template is associated with the corresponding block and the current template is associated with the current block. The encoder then signals the use of the intra-frame TMP mode, and the same prediction operation can be performed on the decoder side. The matching block (or corresponding block) (1002) can be in Fig.10 , and is used as the matching area for the current CU ( 1004 ).
[0127] like Fig.10As shown, a prediction signal can be generated by matching an L-shaped causal neighbor (or L-shaped template) of the current block (1004) with another block in a predefined search area. Exemplary predefined search areas may include R1 (current CTU), R2 (top left CTU), R3 (top CTU), and R4 (left CTU). The sum of absolute differences (SAD) can be used as a cost function.
[0128] In each search area, the decoder can search for a template with a block having a minimum SAD relative to a current template (e.g., a template of the current block (1004)), and use the block with the minimum SAD as the corresponding block of the current block. The corresponding block can be further used as a prediction block of the current block (e.g., (1004)).
[0129] The sizes of all search regions (e.g., SearchRange_w, SearchRange_h) can be set proportional to the block size (e.g., BlkW, BlkH) of the current block. Therefore, a fixed number of SAD comparisons can be obtained in each pixel. For example, the size of the search region (or search range) can be defined as follows in Equations 1 and 2:
[0130] SearchRange_w = a * BlkW Equation (1)
[0131] SearchRange_h = a * BlkH Equation (2)
[0132] Wherein, "a" is a constant that controls the trade-off between gain and complexity of the search process. In one example, "a" is equal to 5.
[0133] Intra TMP may be enabled for CUs of certain sizes. For example, Intra TMP may be enabled for CUs with sizes of width and height less than or equal to 64. The maximum CU size for Intra TMP may be configurable. Intra TMP mode may be signaled. For example, Intra TMP mode may be signaled at the CU level via a dedicated flag.
[0134] In the derivation mode (DM) of chroma, a chroma CU can have a co-located luma CU. The intra mode of the co-located luma CU of the chroma CU can be used as the intra mode of the chroma CU.
[0135] When the position (x, y) specifies the top left sample of the chroma CU relative to the current picture and the chroma CU includes a width W and a height H, the position of the co-located luma CU of the chroma CU may be (x+W / 2, y+H / 2). When the co-located luma CU is not intra-coded, a default value (e.g., DC or plane) may be used as the intra mode of the co-located luma CU.
[0136] If the co-located luma CU is encoded via one of the modes such as intra block copy (IBC) or palette coding (PLT), the intra mode of the co-located luma CU can be considered as DC mode. Otherwise, the intra mode of the co-located luma CU can be the intra mode of the CU containing the position (x+W / 2, y+H / 2).
[0137] Fig.11 An exemplary derivation mode of chroma including a chroma CU (1104) and a luma region (1102) associated with the chroma CU (1104) is shown. Fig.11 As shown, the chroma CU (1104) may include a corresponding position (1106). The corresponding position (1106) may include a first coordinate value on a first axis (e.g., an X axis) and a second coordinate value on a second axis (e.g., a Y axis) relative to a reference point on the chroma CU (1104). For example, the reference point may be the lower left corner of the chroma CU (1104). The first axis may be perpendicular to the second axis. In some embodiments, the corresponding position (1106) may have a position (W / 2, H / 2) relative to the lower left corner of the chroma CU (1104), where W is the width of the chroma CU (1104) and H is the height of the chroma CU (1104). Therefore, the corresponding position (1106) may be the center of the chroma CU (1104). Fig.11 This is just an example, and the corresponding position (1106) may be located at any position of the chroma CU (1104), and the reference point may also be located at any position of the chroma CU (1104). The co-located luma CU of the chroma CU (1104) may be the luma CU (1108) including the corresponding position (1106) in the luma region (1102).
[0138] A generic intra mode mapping can be used to store intra modes in units of samples. Any intra mode can be stored, including signaled intra modes, decoder-derived intra modes, default intra modes, or propagated intra modes. Sample units can be implicitly predefined or explicitly signaled. For example, the encoder and decoder can implicitly predefine 4×4 pixels as units, or explicitly signal 2×2 or 8×8 sample units in the bitstream. Note that the generic intra mode mapping can span CUs or CTUs. In addition, not only intra or inter CUs can store intra modes, but all CUs can store intra modes.
[0139] exist Fig. 12A and Fig. 12B An example of a partial general intra mode mapping is shown in , where each square may represent a 4×4 sample unit.
[0140] In an embodiment, the generic intra-mode map may be empty at the beginning.In addition, the generic intra-mode map may store or otherwise include signaled intra-modes, decoder-derived intra-modes and / or propagated intra-modes obtained during the decoding process.
[0141] In another embodiment, the default intra-mode may be used to initialize the generic intra-mode mapping at the beginning. Furthermore, the default intra-mode may be replaced by a signaled intra-mode, a decoder-derived intra-mode, or a propagated intra-mode obtained during the decoding process. For example, Fig. 12A As shown, the default intra-mode 0 (or plane) can be stored in all cells of the general intra-mode map (1202). Later, the default intra-mode 0 can be replaced by another intra-mode. For example, the other intra-mode can be a signaled intra-mode, a decoder-derived intra-mode, or a propagated intra-mode.
[0142] In yet another embodiment, the generic intra mode map may be empty at the beginning. In addition, some empty (or blank) cells of the generic intra mode map may store signaled intra modes, decoder-derived intra modes, and / or propagated intra modes implemented during the decoding process. After decoding the CU, the remaining empty cells may be filled with a default intra mode, such as intra mode 0 (or plane).
[0143] like Fig. 12B As shown, the general intra mode map (1204) can be empty initially, and some empty cells can be filled with intra modes during the decoding process. After the CU is decoded, the blank cells (e.g., (1206) and (1208)) can be filled with a default intra mode, such as intra mode 0 (or plane).
[0144] The propagated intra mode may cause a non-intra coded CU to include the propagated intra mode, which may diversify the possible intra modes that the non-intra coded CU may have. In the present disclosure, improvements to intra mode propagation are provided, including improvements to the propagation of TMP modes and derived modes of chroma.
[0145] In an embodiment, the intra-frame mode of the matching area may be propagated to the current block of the TMP mode. The matching area of the current block (or current CU) may be a matching predictor found in the search area using an L-shaped template. Templates with other shapes may also be applied. The search area may be a reconstruction area. The search area and the current block may be included in the same frame or the same picture. In some embodiments, the L-shaped template of the matching area and the L-shaped template of the current block may have a minimum cost value (e.g., SAD) in the search area. The L-shaped template of the matching area may include adjacent pixels, such as pixels adjacent to the left and top sides of the matching area. The L-shaped template of the current CU may include adjacent pixels, such as pixels adjacent to the left and top sides of the current CU.
[0146] The corresponding position of the current CU (e.g., correspondPosition(a, b)) can be used to derive the propagated intra mode. The corresponding position can be any position within the current CU. For example, the corresponding position can be located at the center of the current CU. The corresponding position can include a first coordinate value (e.g., a) on a first axis (e.g., X axis) and a second coordinate value (e.g., b) on a second axis (e.g., Y axis) relative to a reference point such as the lower left corner of the current block, wherein the first axis can be perpendicular to the second axis.
[0147] The corresponding positions may be predefined and implicitly agreed upon at both the encoder and the decoder.Alternatively, the corresponding positions may be signaled explicitly or implicitly in the bitstream, either in-band or out-of-band.
[0148] In an example, a CU containing a corresponding position (e.g., correspondingPosition(a, b)) within a matching region may be a corresponding CU of the current block, regardless of how the corresponding CU is encoded. Thus, the corresponding position within the matching region may include a first coordinate value (e.g., a) on a first axis (e.g., X axis) and a second coordinate value (e.g., b) on a second axis (e.g., Y axis) relative to a reference point such as a lower left corner of the matching region.
[0149] In the present disclosure, any kind or combination of intra modes (e.g., normal intra mode, propagated intra mode, default intra mode, etc.) of the corresponding CU may be propagated to the current CU based on the TMP mode. The intra mode propagated to the current block may be further stored and propagated to the upcoming CU.
[0150] Fig.13 An exemplary corresponding CU (1308) of the current block (1304) is shown. Fig.13As shown, the corresponding CU (1308) may be included in the matching region (1306). The matching region (1306) may be a reconstructed region in the picture (1302). The current block (1304) may also be included in the picture (1302). The matching region (1306) may have a template, such as an L-shaped template (1316). Fig.13 As shown, the L-shaped template (1316) may include areas adjacent to the left and top sides of the matching area. The current CU (1304) may have a template, such as an L-shaped template (1318). The L-shaped template (1318) may include areas adjacent to the left and top sides of the current CU. The L-shaped template of the matching area and the L-shaped template of the current block may have a minimum cost value (e.g., SAD) in the search area in the picture (1302). Fig.13 This is just an example. The template (1316) and the template (1318) may include regions having other shapes that are adjacent to the matching region (1306) and the current CU (1304), respectively.
[0151] In an example, the current CU (1304) may have a corresponding position (1312) in any position of the current CU (1304) and have a position (a, b), where a is a first coordinate value on a first axis (e.g., X) and b is a second coordinate value on a second axis (e.g., Y) relative to a reference point on the current CU (1314). The reference point may be located at any position of the current CU (1304). For example, the reference point may be the lower left corner (1314) of the current CU (1304). The corresponding position may be located at any position of the current CU (1304). For example, the corresponding position (1312) of the current CU (1304) may be located at the center of the current CU (1304). Therefore, the corresponding position (1312) may have a position (W / 2, H / 2) relative to the lower left corner of the current CU (1304), where W and H are the width and height of the current CU (1304), respectively. The CU (e.g., (1308)) containing the corresponding position (1310) in the matching region (1306) can be represented as the corresponding CU (1308) of the current CU (1304). The corresponding position (1310) of the matching region (1306) can also have a position (a, b) on the first axis and the second axis relative to a reference point (e.g., the lower left corner (1320)) on the matching region (1306). Therefore, when the corresponding position (1312) has a position (W / 2, H / 2) relative to the lower left corner of the current CU (1304), the corresponding position (1310) can have a position (W / 2, H / 2) relative to the lower left corner of the matching region (1306).
[0152] In another example, when the corresponding position (1312) has a position (W / 2, H / 2) relative to a reference point on the current CU (1304), such as a lower left corner (1314) of the current CU (1304), the corresponding position (1310) may have a position (W' / 2, H' / 2) relative to a reference point on the matching area (1306), such as a lower left corner (1320) of the matching area (1306), where W' and H' are the width and height of the matching area (1306), respectively.
[0153] In yet another example, the corresponding position (1312) may have a position (W / a, H / b) relative to a reference point, such as the lower left corner (1314) of the current CU (1304), and the corresponding position (1310) may have a position (W' / a, H' / b) relative to a reference point on the matching area (1306), such as the lower left corner (1320) of the matching area (1306), where a and b are positive integers. In some embodiments, W is not equal to W', and H is not equal to H'. In some embodiments, W may be equal to W', and H may be equal to H'. Therefore, the size of the matching area (1306) is equal to the size of the current CU (1304).
[0154] Based on the TMP mode, the intra mode of the corresponding CU (1308) can be used as the intra mode of the current CU (1304). The intra mode can also be stored in units of 4×4 pixel samples and propagated to the upcoming CU.
[0155] In another embodiment, the intra mode of the current CU can be implemented by accessing the entry (or the assigned intra mode) at the corresponding position in the general intra mode map. The intra mode implemented by the general intra mode map can be further stored and propagated to the upcoming CU.
[0156] For example, Fig.14 As shown, the picture (1402) may include a current CU (1404) and a matching area (1406) of the current CU (1404). The current CU (1404) may include a corresponding position (1414) and the matching area (1406) may include a corresponding CU (1408). The corresponding CU (1408) may include a corresponding position (1412). The corresponding position (1414) may be located at any position of the current CU (1404). The corresponding position (1414) may have a position (a, b), where a is a first coordinate value on a first axis (e.g., X), and b is a second coordinate value on a second axis (e.g., Y) relative to a reference point on the current CU (1404). The reference point on the current CU (1404) may be located at any position of the current CU (1404), such as the lower left corner (1416) of the current CU (1404).
[0157] In an example, the corresponding position (1414) may be located at the center of the current CU (1404). Thus, the corresponding position (1414) may have a position (W / 2, H / 2), where W and H are the width and height of the current CU (1404), respectively. The corresponding position (1412) may also have a position (a, b) relative to a reference point on the matching area (1406). The reference point on the matching area (1406) may be located at any position of the matching area (1406), such as the lower left corner (1418) of the matching area (1406). Thus, when the corresponding position (1414) has a position (W / 2, H / 2) relative to the lower left corner (1416) of the current CU (1404), the corresponding position (1412) may have a position (W / 2, H / 2) relative to the lower left corner (1418) of the matching area (1406).
[0158] In another example, the corresponding position (1414) may have a position (W / a, H / b) relative to the lower left corner (1416) of the current CU (1404), and the corresponding position (1412) may have a position (W' / a, H' / b) relative to the lower left corner (1418) of the matching area (1406). W and H are the width and height of the current CU (1404), respectively. W' and H' are the width and height of the matching area (1406), respectively. In some embodiments, W is not equal to W', and H is not equal to H'. In some embodiments, W may be equal to W', and H may be equal to H'.
[0159] In addition, a general mapping (1410) can be assigned to the matching region (1406). The general mapping (1410) can divide the matching region (1406) into a plurality of sub-regions. A specific intra mode can be assigned to each of the plurality of sub-regions. Thus, an intra mode (e.g., intra mode (51)) assigned to the sub-region containing the corresponding position (1412) can be propagated to the current CU (1404).
[0160] In the present disclosure, the current chroma CU may have a co-located luma CU. The co-located luma CU may be associated with the current chroma CU. For example, both the co-located luma CU and the luma CU may have a corresponding position (e.g., correspondPositionDM(a, b)) and be included in a coding tree unit (CTU). In some embodiments, the current chroma CU may be aligned with the co-located luma CU. According to the chroma DM mode, the intra mode of the co-located luma CU of the current chroma CU may be propagated to the current chroma CU. When the chroma DM mode is used, the co-located luma CU may be encoded with an intra prediction mode and other prediction modes such as intra block copy (IBC), inter mode, PLT, etc. Therefore, the corresponding position (e.g., correspondPositionDM(a, b)) may be applied to derive the intra mode propagated from the co-located luma CU to the current chroma CU.
[0161] The corresponding position may be predefined and implicitly agreed upon at both the encoder and the decoder. Alternatively, the co-located position (or corresponding position) may be signaled explicitly or implicitly in the bitstream in-band or out-of-band. In addition, the corresponding position may be located at any position of the chroma CU and includes a position (a, b), where a is a first coordinate value on a first axis (e.g., X) relative to a reference point of the current chroma CU, such as the lower left corner of the current chroma CU, and b is a second coordinate value on a second axis (e.g., Y).
[0162] In an embodiment, according to the chroma DM mode, any type of intra mode (eg, normal intra mode, propagated intra mode, default intra mode, etc.) associated with the co-located luma CU may be propagated to the current chroma CU.
[0163] In addition, when the co-located luma CU is encoded in a specific mode such as IBC or inter-frame coding (rather than using the default intra-frame mode value of the co-located luma CU), the propagated intra-frame mode of the co-located luma CU can be propagated to the current chroma CU. The propagated intra-frame mode of the co-located luma CU can be obtained based on the intra-frame mode of the neighboring luma CU of the co-located luma CU. In this case, the current chroma CU can have a different value from the default intra-frame mode value of the IBC or inter-frame coded co-located luma CU.
[0164] In another embodiment, the intra mode of the current chroma CU can be implemented by accessing an entry (or intra mode) of a general intra mode map, which is assigned to the co-located luminance CU according to the position of the co-located luminance CU in the general intra mode map. The general intra mode map can divide the co-located luminance CU into multiple sub-regions. Each of the multiple sub-regions can be assigned to a corresponding intra mode according to the general intra mode map. The intra mode assigned to the sub-region containing the corresponding position can be propagated to the current chroma CU.
[0165] Fig.15 A flow chart outlining a first exemplary decoding process (1500) according to some implementations of the present disclosure is shown. Fig.16 A flow chart outlining a second exemplary decoding process (1600) according to some implementations of the present disclosure is shown. Fig.17 A flow chart outlining a first exemplary encoding process (1700) according to some implementations of the present disclosure is shown. Fig.18 A flowchart outlining a second exemplary encoding process (1800) according to some embodiments of the present disclosure is shown. The proposed process can be used alone or in combination in any order. In addition, each of the process (or embodiment), encoder, and decoder can be implemented by a processing circuit system (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-transitory computer-readable medium.
[0166] In an embodiment, any operation of the process (e.g., (1500), (1600), (1700), and (1800)) can be combined or arranged in any number or order as needed. In an embodiment, two or more operations of the process (e.g., (1500), (1600), (1700), and (1800)) can be performed in parallel.
[0167] The processes (e.g., (1500), (1600), (1700), and (1800)) can be used for reconstruction and / or encoding of a block to generate a prediction block for the block being reconstructed. In various embodiments, the processes (e.g., (1500), (1600), (1700), and (1800)) are performed by a processing circuit system such as a processing circuit system in a terminal device (210), (220), (230), and (240), a processing circuit system that performs the functions of a video encoder (303), a processing circuit system that performs the functions of a video decoder (310), a processing circuit system that performs the functions of a video decoder (410), a processing circuit system that performs the functions of a video encoder (503), and the like. In some embodiments, the processes (e.g., (1500), (1600), (1700), and (1800)) are implemented as software instructions, so that when the processing circuit system executes the software instructions, the processing circuit system performs the processes (e.g., (1500), (1600), (1700), and (1800)).
[0168] like Fig.15 As shown, the process (1500) may start from (S1501) and proceed to (S1510). At (S1510), encoding information of a current block of (I) a picture and a reconstructed region of (II) a picture may be received from an encoded video bitstream.
[0169] At (S1520), a matching area of the current block may be determined in a reconstructed area of the picture.
[0170] At (S1530), a first corresponding position of the current block may be determined within the current block. The first corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block. The first axis may be perpendicular to the second axis.
[0171] At (S1540), a corresponding block of the current block may be determined in the matching region. The corresponding block may include a second corresponding position having a first coordinate value on the first axis and a second coordinate value on the second axis relative to a second reference point on the matching region.
[0172] At (S1550), an intra prediction mode of the current block may be determined based on the corresponding block.
[0173] In order to determine the matching area, a plurality of candidate matching areas may be searched in the reconstructed area of the picture. A corresponding cost value between the template area of the current block and the corresponding template area of each of the plurality of candidate matching areas may be determined. The candidate matching area with the minimum cost value among the plurality of candidate matching areas may be determined as the matching area. The template area of the current block may include a first area adjacent to the left side of the current block and a second area adjacent to the top side of the current block. The corresponding template area of each of the plurality of candidate matching areas may include a first area adjacent to the left side of a corresponding one of the plurality of candidate matching areas and a second area adjacent to the top side of a corresponding one of the plurality of candidate matching areas.
[0174] In some embodiments, the first corresponding position of the current block may be predefined or signaled in the encoding information.
[0175] In some implementations, the first corresponding position may be the center of the current block.
[0176] In some implementations, the intra prediction mode of the corresponding block may be determined as the intra prediction mode of the current block.
[0177] In some embodiments, the intra prediction mode of the current block may be determined based on a general intra mode mapping. The general intra mode mapping may divide the matching area into a plurality of sub-areas. Each of the plurality of sub-areas may be associated with a corresponding intra prediction mode. The intra prediction mode of the current block may be an intra prediction mode associated with a sub-area including the second corresponding position in the plurality of sub-areas.
[0178] like Fig.16 As shown, the process (1600) may start from (S1601) and proceed to (S1610). At (S1610), encoding information of (I) chroma coding units (CUs) and (II) luma regions may be received from an encoded video bitstream.
[0179] At (S1620), a corresponding position of the chroma CU may be determined within the chroma CU. The corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis. The first axis may be perpendicular to the second axis.
[0180] At (S1630), a co-located luma CU of a chroma CU may be determined in a luma region. The co-located luma CU may include a corresponding position.
[0181] At (S1640), an intra prediction mode of the chroma CU may be determined based on the co-located luma CU.
[0182] In an embodiment, in response to intra-coding the co-located luma CU based on the intra prediction mode, the intra prediction mode of the co-located luma CU may be determined as the intra prediction mode of the chroma CU. In other embodiments, in response to not intra-coding the co-located luma CU, the propagated intra mode of the co-located luma CU may be determined as the intra prediction mode of the chroma CU. The propagated intra mode of the co-located luma CU may be obtained based on the intra prediction mode of the neighboring luma CU of the co-located luma CU.
[0183] In some embodiments, the corresponding positions of the chroma CUs may be predefined or signaled in the encoding information.
[0184] In some embodiments, the intra prediction mode of the chroma CU may be determined based on a general intra mode mapping. The general intra mode mapping may divide the luma region into a plurality of sub-regions. Each of the plurality of sub-regions may be assigned a corresponding intra prediction mode. The intra prediction mode of the chroma CU may be an intra prediction mode associated with a sub-region including a corresponding position in the plurality of sub-regions.
[0185] like Fig.17 As shown, the process (1700) may start from (S1701) and proceed to (S1710). At (S1710), a matching area of a current block of a picture may be determined from a reconstructed area of the picture.
[0186] At (S1720), a first corresponding position of the current block may be determined within the current block. The first corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block, wherein the first axis may be perpendicular to the second axis.
[0187] At (S1730), a corresponding block of the current block may be determined from the matching area, wherein the corresponding block may include a second corresponding position having a first coordinate value on the first axis and a second coordinate value on the second axis relative to a second reference point on the matching area.
[0188] At (S1740), an intra prediction mode of the current block may be determined based on the corresponding block.
[0189] At (S1750), intra prediction may be performed on the current block based on the determined intra prediction mode.
[0190] like Fig.18 As shown, process (1800) may start from (S1801) and proceed to (S1810). At (S1810), a corresponding position of a chroma CU may be determined within the chroma CU. The corresponding position may include a first coordinate value on a first axis and a second coordinate value on a second axis, wherein the first axis may be perpendicular to the second axis.
[0191] At (S1820), a co-located luma CU of the chroma CU may be determined in the luma region, wherein the co-located luma CU may include a corresponding position.
[0192] At (S1830), an intra prediction mode of the chroma CU may be determined based on the co-located luma CU.
[0193] At (S1840), intra prediction may be performed on the chroma CU based on the determined intra prediction mode.
[0194] At (S1850), an encoded video bitstream may be generated to include encoding information of (I) a chroma CU and (II) a luma region.
[0195] The above techniques may be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media. For example, Fig.19 A computer system (1900) suitable for implementing certain embodiments of the disclosed subject matter is shown.
[0196] Computer software may be encoded using any suitable machine code or computer language, which may be subjected to mechanisms such as assembly, compilation, linking, etc. to create code comprising instructions that may be executed directly by one or more computer central processing units (CPU), graphics processing units (GPU), etc., or through interpretation, microcode execution, etc.
[0197] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smart phones, gaming devices, Internet of Things devices, etc.
[0198] Fig.19 The components for the computer system (1900) shown in the example are exemplary in nature and are not intended to suggest any limitation on the scope of use or functionality of computer software implementing embodiments of the present disclosure. Nor should the configuration of components be interpreted as having any dependency or requirement relating to any one or combination of components shown in the exemplary embodiment of the computer system (1900).
[0199] The computer system (1900) may include certain human-machine interface input devices. Such human-machine interface input devices may respond to inputs implemented by one or more human users through, for example, tactile inputs (e.g., keystrokes, swipes, data glove movements), audio inputs (e.g., voice, tapping), visual inputs (e.g., gestures), olfactory inputs (not depicted). The human-machine interface devices may also be used to capture certain media that are not necessarily directly related to intentional human input, such as audio (e.g., voice, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a still image camera), and videos (e.g., two-dimensional video, three-dimensional video including stereoscopic video).
[0200] The input human-machine interface devices may include one or more of the following (only one of each is depicted): keyboard (1901), mouse (1902), trackpad (1903), touch screen (1910), data gloves (not shown), joystick (1905), microphone (1906), scanner (1907) and camera (1908).
[0201] The computer system (1900) may also include certain human-computer interface output devices. Such human-computer interface output devices may stimulate one or more senses of a human user through, for example, tactile output, sound, light, and smell / taste. Such human-computer interface output devices may include: tactile output devices (e.g., tactile feedback through a touch screen (1910), a data glove (not shown), or a joystick (1905), but there may also be tactile feedback devices that are not used as input devices); audio output devices (e.g., speakers (1909), headphones (not depicted)); visual output devices (e.g., screens (1910), including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capabilities, each with or without tactile feedback capabilities - some of which may be able to output two-dimensional visual output or more than three-dimensional output by means such as stereoscopic image output; virtual reality glasses (not depicted); holographic displays and cigarette cans (not depicted)); and printers (not depicted).
[0202] The computer system (1900) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM / RW (1920) with CD / DVD etc. media (1921), thumb drives (1922), removable hard drives or solid-state drives (1923), traditional magnetic media such as tapes and floppy disks (not depicted), dedicated ROM / ASIC / PLD based devices such as security dongles (not depicted), etc.
[0203] Those skilled in the art will also appreciate that the term "computer-readable media" used in connection with the presently disclosed subject matter does not include transmission media, carrier waves, or other transient signals.
[0204] The computer system (1900) may also include an interface (1954) to one or more communication networks (1955). The network may be, for example, wireless, wired, optical. The network may also be a local area network, a wide area network, a metropolitan area network, a vehicle and industrial network, a real-time network, a delay-tolerant network, etc. Examples of networks include local area networks such as Ethernet, wireless LAN, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., television wired or wireless wide area digital networks including cable television, satellite television and terrestrial broadcast television, vehicle and industrial networks including CANBus, etc. Some networks typically require an external network interface adapter attached to some common data port or peripheral bus (1949) (e.g., a USB port of the computer system (1900)); other networks are typically integrated into the core of the computer system (1900) by attaching to a system bus as described below (e.g., integrated into a PC computer system via an Ethernet interface, or integrated into a smart phone computer system via a cellular network interface). The computer system (1900) can communicate with other entities by using any of these networks. Such communications may be one-way receive-only (e.g., broadcast television), one-way send-only (e.g., CANbus to certain CANbus devices), or two-way, such as to other computer systems using local or wide area digital networks. Specific protocols and protocol stacks may be used on each of these networks and network interfaces as described above.
[0205] The above-mentioned human-machine interface device, human-accessible storage device, and network interface may be attached to the core ( 1940 ) of the computer system ( 1900 ).
[0206] The core (1940) may include one or more central processing units (CPUs) (1941), graphics processing units (GPUs) (1942), dedicated programmable processing units in the form of field programmable gate areas (FPGAs) (1943), hardware accelerators (1944) for certain tasks, graphics adapters (1950), etc. These devices as well as read-only memory (ROM) (1945), random access memory (1946), internal mass storage devices (1947) such as internal non-user accessible hard drives, SSDs, etc. may be connected via a system bus (1948). In some computer systems, the system bus (1948) may be accessed in the form of one or more physical plugs to enable expansion through additional CPUs, GPUs, etc. Peripheral devices may be attached to the core's system bus (1948) directly or via a peripheral bus (1949). In an example, a screen (1910) may be connected to a graphics adapter (1950). The architecture of the peripheral bus includes PCI, USB, etc.
[0207] The CPU (1941), GPU (1942), FPGA (1943) and accelerator (1944) can execute certain instructions, which can be combined to form the computer code mentioned above. The computer code can be stored in ROM (1945) or RAM (1946). Transition data can also be stored in RAM (1946), while permanent data can be stored in, for example, an internal mass storage device (1947). Fast storage and retrieval of any storage device in the storage device can be achieved by using a cache memory, which can be closely associated with one or more CPUs (1941), GPUs (1942), mass storage devices (1947), ROMs (1945), RAMs (1946), etc.
[0208] The computer readable medium may have computer code thereon for performing various computer-implemented operations. The medium and computer code may be those specially designed and constructed for the purposes of the present disclosure, or the medium and computer code may be of a type well known and available to those skilled in the art of computer software.
[0209] As an example and not limitation, a computer system (1900) having an architecture, in particular a core (1940), can provide functions provided as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such a computer-readable medium can be a medium associated with a user-accessible mass storage device as described above, as well as certain storage devices of the core (1940) having a non-transitory nature, such as a mass storage device (1947) or ROM (1945) inside the core. Software that implements various embodiments of the present disclosure can be stored in such a device and executed by the core (1940). Depending on specific needs, the computer-readable medium may include one or more memory devices or chips. The software can enable the core (1940) - in particular the processor therein (including a CPU, GPU, FPGA, etc.) - to perform specific processing or specific parts of specific processing described herein, including defining data structures stored in RAM (1946) and modifying such data structures according to processing defined by the software. Additionally or alternatively, a computer system may provide functionality due to logic hardwired or otherwise embodied in circuits (e.g., accelerators (1944)) that may operate in place of or in conjunction with software to perform a particular process or a particular portion of a particular process described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media may include circuits (e.g., integrated circuits (ICs)) storing software for execution, circuits implementing logic for execution, or both. The present disclosure includes any suitable combination of hardware and software.
[0210] Appendix A: Acronyms
[0211] JEM: Joint Development Model
[0212] VVC: Versatile Video Coding
[0213] BMS: Benchmark Set
[0214] MV: Motion Vector
[0215] HEVC: High Efficiency Video Codec
[0216] SEI: Supplemental Enhancement Information
[0217] VUI: Video Availability Information
[0218] GOPs: Group of Pictures
[0219] TUs: Transformation Units
[0220] PUs: Prediction Units
[0221] CTUs: Coding Tree Units
[0222] CTBs: Coding Tree Blocks
[0223] PBs: prediction blocks
[0224] HRD: Hypothetical Reference Decoder
[0225] SNR: Signal to Noise Ratio
[0226] CPUs: Central Processing Units
[0227] GPUs: Graphics Processing Units
[0228] CRT: cathode ray tube
[0229] LCD: Liquid Crystal Display
[0230] OLED: Organic Light Emitting Diode
[0231] CD: Compact Disc
[0232] DVD: Digital Video Disc
[0233] ROM: Read Only Memory
[0234] RAM: Random Access Memory
[0235] ASIC: Application-Specific Integrated Circuit
[0236] PLD: Programmable Logic Device
[0237] LAN: Local Area Network
[0238] GSM: Global System for Mobile Communications
[0239] LTE: Long Term Evolution
[0240] CANBus: Controller Area Network Bus
[0241] USB: Universal Serial Bus
[0242] PCI: Peripheral Component Interconnect
[0243] FPGA: Field Programmable Gate Array
[0244] SSD: Solid State Drive
[0245] IC: Integrated Circuit
[0246] CU: Coding Unit
[0247] Although the present disclosure has described several exemplary embodiments, there are changes, permutations, and various substitute equivalents that fall within the scope of the present disclosure. It will therefore be appreciated that, although not explicitly shown or described herein, those skilled in the art will be able to conceive of many systems and methods that implement the principles of the present disclosure and are therefore within its spirit and scope.
Claims
1. A video decoding method performed in a video decoder, characterized in that: The method comprises: receiving, from a coded video bitstream, coding information for (i) a current block of a picture and (ii) a reconstructed region of the picture; Determining a matching area of the current block in a reconstructed area of the picture; Determine a first corresponding position of the current block within the current block, the first corresponding position comprising a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block, the first axis being perpendicular to the second axis; Determine a corresponding block of the current block in the matching area, the corresponding block includes a second corresponding position, the second corresponding position has a first coordinate value on the first axis and a second coordinate value on the second axis relative to a second reference point on the matching area, wherein the first reference point is located at the lower left corner of the current block, the first coordinate value of the first corresponding position on the first axis is W / a, the second coordinate value of the first corresponding position on the second axis is H / b, the second reference point is located at the lower left corner of the matching area, the first coordinate value of the second corresponding position on the first axis is W' / a, the second coordinate value of the second corresponding position on the second axis is H' / b, the corresponding block can be used as the matching area of the current block, a and b are positive integers, W is the width of the current block, H is the height of the current block, W' is the width of the matching area, and H' is the height of the matching area; and determine the second position of the corresponding block according to the first corresponding position of the current block; determining an intra prediction mode of the current block based on the corresponding block; The general intra-frame mode mapping divides the matching area into a plurality of sub-regions, and each of the plurality of sub-regions is associated with a corresponding intra-frame prediction mode, and determining the intra-frame prediction mode of the current block further includes: The intra prediction mode of the current block is determined based on the intra prediction mode corresponding to the sub-region including the second corresponding position in the plurality of sub-regions in the general intra mode map.
2. The method according to claim 1, characterized in that Determining the matching area includes: Searching for a plurality of candidate matching regions in the reconstructed region of the image; Determining a corresponding cost value between the template region of the current block and a corresponding template region of each candidate matching region of the plurality of candidate matching regions; and The candidate matching region with the minimum cost value among the multiple candidate matching regions is determined as the matching region, wherein: The template area of the current block includes a first area adjacent to the left side of the current block and a second area adjacent to the top side of the current block, and The corresponding template area of each candidate matching area among the multiple candidate matching areas includes: a first area adjacent to the left side of one of the multiple candidate matching areas and a second area adjacent to the top side of the one of the multiple candidate matching areas.
3. The method according to claim 1, characterized in that The first corresponding position of the current block is predefined or signaled in the encoding information.
4. The method according to claim 1, characterized in that: The first corresponding position is the center of the current block.
5. A video decoding device, comprising: Processing circuitry configured to perform a method according to any one of claims 1 to 4.
6. A video decoding device, characterized in that: The device comprises: A receiving module configured to receive, from a coded bitstream, coding information of (i) a current block of a picture and (ii) a reconstructed region of the picture; A first determination module, configured to determine a matching area of the current block in a reconstructed area of the picture; a second determining module configured to determine a first corresponding position of the current block within the current block, the first corresponding position comprising a first coordinate value on a first axis and a second coordinate value on a second axis relative to a first reference point on the current block, the first axis being perpendicular to the second axis; a third determining module, configured to determine a corresponding block of the current block in the matching area, the corresponding block comprising a second corresponding position, the second corresponding position having a first coordinate value on the first axis and a second coordinate value on the second axis relative to a second reference point on the matching area, wherein the first reference point is located at the lower left corner of the current block, the first coordinate value of the first corresponding position on the first axis is W / a, the second coordinate value of the first corresponding position on the second axis is H / b, the second reference point is located at the lower left corner of the matching area, the first coordinate value of the second corresponding position on the first axis is W' / a, the second coordinate value of the second corresponding position on the second axis is H' / b, the corresponding block can be used as the matching area of the current block, a and b are positive integers, W is the width of the current block, H is the height of the current block, W' is the width of the matching area, and H' is the height of the matching area; and determining a second position of the corresponding block according to the first corresponding position of the current block; a fourth determination module, configured to determine an intra prediction mode of the current block based on the corresponding block; The general intra-frame mode mapping divides the matching area into a plurality of sub-regions, and each of the plurality of sub-regions is associated with a corresponding intra-frame prediction mode, and determining the intra-frame prediction mode of the current block further includes: The intra prediction mode of the current block is determined based on the intra prediction mode corresponding to the sub-region including the second corresponding position in the plurality of sub-regions in the general intra mode map.
7. A computer-readable storage medium, characterized in that: The method comprises instructions which, when executed on a computer, cause the computer to execute the method according to any one of claims 1 to 4.
8. A method for processing a video bitstream, characterized in that: The video bit stream is decoded according to the method according to any one of claims 1 to 4.
Citation Information
Patent Citations
Template matching-based intra-prediction coding and decoding and array scanning method and device
WO2015180658A1