Method, apparatus, and computer program for video coding

JP2025186391A5Pending Publication Date: 2026-06-29TENCENT AMERICA LLC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2025-09-17
Publication Date
2026-06-29

AI Technical Summary

Technical Problem

Existing video coding techniques inefficiently represent intra-prediction direction bits, particularly for non-square blocks, leading to increased bit usage for less likely directions, which hampers video compression efficiency.

Method used

A method and apparatus for video decoding that adapts intra-prediction modes based on the aspect ratio of non-square blocks, adjusting the number of modes and incorporating syntax elements to optimize bit representation of prediction directions.

Benefits of technology

Improves video compression efficiency by reducing bit usage for less likely intra-prediction directions, enhancing the overall coding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a method and an apparatus for video coding.SOLUTION: Decoding processing is used for reconstruction of a block coded in an intra mode to generate a prediction block in the block under reconstruction, is executed by a processing circuit, such as a terminal device, a video encoder, a video decoder, an intra prediction module, a predictor, an intra encoder, and an intra decoder, and includes decoding prediction information of the block and performing reconstruction according to a first intra prediction mode.SELECTED DRAWING: Figure 13
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims benefit of priority to U.S. Patent Application No. 16 / 147,246, filed September 28, 2018, now U.S. Patent No. 10,284,860, entitled "Method and Apparatus for Video Coding," which claims benefit of priority to U.S. Provisional Application No. 62 / 693,050, filed July 2, 2018, entitled "Method and Apparatus for Wide-Angle Intra Prediction in Video Compression," the entire contents of which are incorporated herein by reference.

[0002] This disclosure describes embodiments generally related to video decoding. [Background technology]

[0003] The background discussion provided herein is for the purpose of generally presenting the context of the present disclosure. Aspects of the description that are not considered prior art at the time of filing, to the extent that the work of the currently named inventors is described in this Background section, are not admitted expressly or impliedly as prior art to the present disclosure.

[0004] Video encoding and decoding may be performed using inter-picture prediction with motion compensation. Uncompressed digital video may include a series of images, each having spatial dimensions of, for example, 1920 x 1080 luminance samples and associated chrominance samples. The series may have a fixed or variable image rate (also informally called the frame rate), for example, 60 images per second or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video (1920 x 1080 luminance sample resolution at a 60 Hz frame rate) with 8 bits per sample requires a bandwidth approaching 1.5 Gbit / s. One hour of such video requires more than 600 GB of storage space.

[0005] One goal of video encoding and decoding is to reduce redundancy in the input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage requirements by two or more orders of magnitude, in some cases. Both lossless and lossy compression, as well as combinations of them, can be used. Lossless compression refers to techniques that allow an exact copy of the original signal to be reconstructed from a compressed version. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signal is small enough that the reconstructed signal is useful for the intended application. For video, lossy compression is widely adopted. The amount of acceptable distortion varies depending on the application. For example, users of certain consumer streaming applications may tolerate higher distortion than users of television posting applications. The achievable compression ratio may reflect that higher tolerance / tolerance distortion results in higher compression ratios.

[0006] Video encoders and decoders can utilize techniques in several broad categories, such as motion compensation, transforms, quantization, and entropy coding.

[0007] Video codec technology may include a technique called intra-coding. In intra-coding, sample values ​​are represented without reference to samples or other data from a previously reconstructed reference picture. In some video codecs, an image is spatially subdivided into blocks of samples. When all blocks of samples are coded in intra mode, the image may become an intra-image. An intra-image and its derivatives, such as an independent decoder refresh image, can be used to reset the decoder state and thus may be used as the first image in a coded video bitstream and video session or as a still image. Samples in an intra-block are subjected to a transform, and the transform coefficients are quantized before entropy coding. Intra-prediction may be a technique that minimizes sample values ​​in the pre-transform domain. In some cases, smaller DC values ​​and smaller AC coefficients after the transform require fewer bits at a particular quantization step size to represent the block after entropy coding.

[0008] Traditional intra-coding, for example, as known from MPEG-2 generation coding techniques, does not use intra-prediction. However, some newer video compression techniques include techniques that attempt to predict intra-prediction from, for example, surrounding sample data and / or metadata obtained during spatially adjacent and preceding encoding / decoding of the data block in decoding order. Such techniques are hereinafter referred to as "intra-prediction" techniques. Note that, at least in some cases, intra-prediction uses only reference data from the current picture being reconstructed, and not from reference pictures.

[0009] Intra-prediction can take various forms. If two or more such techniques are available for a given video coding technique, the technique in use can be coded as an intra-prediction mode. In some cases, modes can include sub-modes and parameters, which can be coded separately or included in the mode codeword. The codeword used for a particular mode / sub-mode / parameter combination can affect the coding efficiency achieved by intra-prediction and can also affect the entropy coding technique used to convert the codeword into a bitstream.

[0010] Certain modes of intra prediction were introduced in H.264, improved in H.265, and further refined in new coding techniques such as the Joint Search Model (JEM), Versatile Video Coding (VVC), and Benchmark Set (BMS). Predictor blocks can be formed using neighboring sample values ​​belonging to already available samples. The sample values ​​of neighboring samples are copied into the predictor block according to their direction. The reference to the direction in use can either be coded in the bitstream or predicted itself.

[0011] Referring to Figure 1, depicted at the bottom right is a subset of nine known prediction directions from the 35 possible prediction directions in H.265. The point where the arrows converge (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 from the sample to the upper right, at an angle of 45 degrees from the horizontal. Similarly, arrow (103) indicates that sample (101) is predicted to the lower left of sample (101), at an angle of 22.5 degrees from the horizontal.

[0012] Continuing with reference to FIG. 1 , a square block (104) of 4×4 samples is shown in the upper left (indicated by a dashed bold line). The square block (104) includes 16 samples, each labeled with an “S” and indicating 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 (from the top) in the Y dimension and the first sample (from the left) in the X dimension. Similarly, sample S44 is the fourth sample in both the Y and X dimensions of the block (104). Because the size of the block is 4×4 samples, S44 is located in the lower right. Also shown are reference samples that follow a similar numbering scheme. The reference samples are labeled with an R in their Y position (e.g., row index) and X position (column index) relative to the block (104). In both H.264 and H.265, predicted samples are adjacent to the block being reconstructed, and therefore, negative values ​​need not be used.

[0013] Intra-picture prediction works by copying reference sample values ​​from neighboring samples according to the signaled prediction direction. For example, assume that for this block, the coded video bitstream includes a signal indicating the prediction direction consistent with arrow (102), i.e., the sample is predicted from the predicted sample or the sample to the upper right at a 45-degree angle from horizontal. In this case, samples S41, S32, S23, and S14 are predicted from the same R05. And sample S44 is predicted from R08.

[0014] In certain cases, especially when the direction is not evenly divisible by 45 degrees, the values ​​of multiple reference samples may be combined, for example by interpolation, to calculate the reference sample.

[0015] As video coding technology evolves, the number of possible directions increases. In H.264 (2003), nine different directions could be represented. This increased to 33 in H.265 (2013), and JEM / VVC / BMS can support up to 65 directions at the time of release. Experiments have been conducted to identify the most likely directions, and specific techniques in entropy coding are used to represent possible directions with a small number of bits, while accepting certain penalties for less likely directions. Furthermore, the direction itself may be predicted from neighboring directions used in neighboring, already decoded blocks.

[0016] FIG. 2 is a schematic diagram 201 showing 65 intra prediction directions according to JEM to illustrate the increasing number of prediction directions over time. Summary of the Invention [Problem to be solved by the invention]

[0017] The mapping of intra-prediction direction bits in a coded video bitstream to represent directions may vary from one video coding technique to another and may range from a simple direct mapping of intra-prediction modes, prediction directions, to codewords, to complex adaptive schemes involving most-likely modes and similar techniques, with which those skilled in the art are readily familiar. However, in all cases, there may be certain directions that are statistically less likely to occur in the video content than certain other directions. Because the goal of video compression is to reduce redundancy, a well-performing video coding technique will represent these less-likely directions with more bits than more-likely directions. [Means for solving the problem]

[0018] Aspects of the present disclosure provide a method and apparatus for video encoding. In some examples, the apparatus includes a receiving circuit and a processing circuit.

[0019] According to an aspect of the present disclosure, a method for video decoding in a decoder is provided. In the disclosed method, prediction information of a first block from an encoded video bitstream is decoded. The first block is a non-square block, and the prediction information of the first block indicates a first intra-prediction mode in a first set of intra-prediction modes associated with the non-square block. The first set of intra-prediction modes includes a first number of different intra-prediction modes from a second set of intra-prediction modes associated with square blocks. The first number is a positive integer based on an aspect ratio of the first block. Then, at least one sample of the first block is reconstructed according to the first intra-prediction mode.

[0020] The disclosed method further includes decoding from the encoded video bitstream a syntax element indicative of the first number, the syntax element being in at least one of a sequence parameter set, a picture parameter set, a slice header, a common syntax element for a region of the image, and a common parameter for a region of the image.

[0021] In some embodiments, a second number of intra prediction modes in the second set of intra prediction modes is not within the first set of intra prediction modes, and the second number is a positive integer based on the aspect ratio of the first block.

[0022] In some embodiments, the first number is equal to the second number. The first intra-prediction mode is not in a second set of intra-prediction modes associated with the square block.

[0023] In some embodiments, the first number is a fixed value that is independent of the shape of the first block.

[0024] The disclosed method further includes calculating an aspect ratio of the first block and determining a first number based on the aspect ratio of the first block. A second number of intra prediction modes are removed from the second set of intra prediction modes and the first number of different intra prediction modes are added to the second set of intra prediction modes to form a first set of intra prediction modes.

[0025] According to another aspect of the present disclosure, there is provided an apparatus comprising a processing circuit configured to perform the disclosed method for video encoding.

[0026] 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 a method for video encoding.

[0027] Further features, nature and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings. [Brief explanation of the drawings]

[0028] [Figure 1] 1 is a schematic diagram of a subset of intra-prediction modes according to H.265. [Figure 2]FIG. 10 is a diagram showing the intra prediction direction using JEM. [Figure 3] FIG. 3 is a simplified block diagram schematic of a communication system (300) according to one embodiment. [Figure 4] FIG. 4 is a simplified block diagram schematic of a communication system (400) according to one embodiment. [Figure 5] FIG. 2 is a schematic diagram of a simplified block diagram of a decoder according to one embodiment. [Figure 6] FIG. 2 is a schematic diagram of a simplified block diagram of an encoder according to one embodiment. [Figure 7] 4 shows a block diagram of an encoder according to another embodiment; [Figure 8] 4 shows a block diagram of a decoder according to another embodiment; [Figure 9] 1 shows a schematic diagram illustrating an example of a wide-angle mode. [Figure 10] 10 shows an example of remapping some conventional intra-prediction modes to wide-angle modes. [Figure 11] Another example of remapping some conventional intra-prediction modes to wide-angle modes is shown. [Figure 12] 1 shows a schematic diagram illustrating conventional intra-prediction directions and wide-angle intra-prediction directions; [Figure 13] 1 shows a flowchart outlining a decoding process according to one embodiment of the present disclosure. [Figure 14] FIG. 1 is a schematic diagram of a computer system according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0029] FIG. 3 illustrates a simplified block diagram of a communication system (300) according to an embodiment of the present disclosure. The communication system (300) includes multiple terminal devices that can communicate with each other, for example, via a network (350). For example, the communication system (300) includes a first pair of terminal devices (310) and (320) interconnected via the network (350). In the example of FIG. 3, the first pair of terminal devices (310) and (320) perform unidirectional data transmission. For example, the terminal device (310) may encode video data (e.g., a stream of video images captured by the terminal device (310)) for transmission to another terminal device (320) via the network (350). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. The terminal device (320) may receive the encoded video data from the network (350), decode the encoded video data to recover the video images, and display the video images according to the recovered video data. One-way data transmission may be common, such as in media serving applications.

[0030] 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, such as may occur during a video conference. In one example, for bidirectional transmission of data, each of the terminal devices (330) and (340) may encode video data (e.g., a stream of video images captured by the terminal device) for transmission over the network (350) to the other of the terminal devices (330) and (340). Each of the terminal devices (330) and (340) may also receive encoded video data transmitted by the other of the terminal devices (330) and (340), decode the encoded video data to recover the video images, and display the video images on an accessible display device according to the recovered video data.

[0031] In the example of FIG. 3 , terminal devices 310, 320, 330, and 340 may be depicted as a server, a personal computer, and a smartphone, although the principles of the present disclosure are not so limited. Embodiments of the present disclosure find application in laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. Network 350 represents any number of networks that convey encoded video data between terminal devices 310, 320, 330, and 340, including, for example, wired (cable) and / or wireless communication networks. Communication network 350 may exchange data over circuit-switched and / or packet-switched channels. Exemplary networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For purposes of this discussion, the architecture and topology of network 350 may not be important to the operation of the present disclosure, unless otherwise described herein.

[0032] 4 shows the arrangement of a video encoder and decoder in a streaming environment as an example of an application for the disclosed subject matter. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, video conferencing, digital TV, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc.

[0033] The streaming system may include a capture subsystem (413), which may include a video source (401), such as a digital camera, that creates a stream of uncompressed video images (402). In one example, the stream of video images (402) includes samples captured by the digital camera. The stream of video images (402), depicted with bold lines to emphasize its large amount of data compared to the encoded video data (404) (or encoded video bitstream), may be processed by an electronic device (420) that includes a video encoder (403) coupled to the video source (401). The video encoder (403) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video data (404) (or encoded video bitstream (404)), depicted with thin lines to emphasize its small amount of data compared to the stream of video images (402), may be stored on a streaming server (405) for future use. One or more streaming client subsystems, such as client subsystems (406) and (408) of FIG. 4, may access the streaming server (405) to retrieve copies (407) and (409) of the encoded video data (404). The client subsystem (406) may include, for example, a video decoder (410) in an electronic device (430). The video decoder (410) decodes the incoming copy of the encoded video data (407) and creates an outgoing stream of video images (411) that can be rendered on a display (412) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (404), (407), and (409) (e.g., a video bitstream) may be encoded according to a particular video encoding / compression standard. Examples of these standards include ITU-T Recommendation H.265. By way of example, a developing video encoding standard is informally known as Versatile Video Coding, or VVC. The disclosed subject matter can be used in the context of VVC.

[0034] It should be noted that electronic devices 420 and 430 may include other components (not shown). For example, electronic device 420 may include a video decoder (not shown), and electronic device 430 may similarly include a video encoder (not shown).

[0035] 5 shows a block diagram of a video decoder (510) according to an embodiment of the present disclosure. 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 be used in place of the video decoder (410) in the example of FIG. 4.

[0036] The receiver (531) can receive one or more coded video sequences to be decoded by the video decoder (510), in the same or another embodiment, one coded video sequence at a time, with the decoding of each coded video sequence being independent of the other coded video sequences. The coded video sequences can be received from a channel (501), which can be a hardware / software link to a storage device that stores the coded video data. The receiver (531) can receive the coded video data along with other data, such as coded audio data and / or auxiliary data streams, that can be forwarded to a respective using entity (not shown). The receiver (531) can separate the coded video sequences from other data. To combat network jitter, a buffer memory (515) can be coupled between the receiver (531) and the entropy decoder / parser (520) (hereinafter, "parser (520)"). In certain applications, the buffer memory (515) is part of the video decoder (510). In other cases, the buffer memory (515) may be external to the video decoder (510) (not shown). In still other cases, there may be a buffer memory (not shown) external to the video decoder (510), e.g., to combat network jitter, and there may be another buffer memory (515) within the video decoder (510), e.g., to handle playback timing. If the receiver (531) is receiving data from a store-and-forward device with sufficient bandwidth and controllability or from an isosynchronous network, the buffer memory (515) may not be necessary or may be small. For use with best-effort packet networks such as the Internet, the buffer memory (515) may be necessary, but may be relatively large, with adaptive sizing advantageous, and may be implemented, at least in part, in an operating system or similar element (not shown) external to the video decoder (510).

[0037] The video decoder (510) may include a parser (520) for reconstructing symbols (521) from the encoded video sequence. These symbol categories include information used to manage the operation of the video decoder (510) and, potentially, information for controlling a rendering device (e.g., a display screen), such as the rendering device (512) that is not an integral part of the electronic device (530) but may be coupled to the electronic device (530), as shown in FIG. 5. The rendering device control information may be in the form of a Supplementary Enhancement Information (SEI) message or a Video Usability Information (VUI) parameter set fragment (not shown). The parser (520) may parse / entropy decode the received encoded video sequence. The encoding of the encoded video sequence may follow 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) can extract from the coded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. The subgroups may include groups of pictures (GOPs), images, tiles, slices, macroblocks, coding units (CUs), blocks, transform units (TUs), prediction units (PUs), etc. The parser (520) can also extract from the coded video sequence information such as transform coefficients, quantization parameter values, motion vectors, etc.

[0038] The parser (520) can perform entropy decoding / parsing operations on the video sequence received from the buffer memory (515) to create symbols (521).

[0039] The reconstruction of the symbols (521) involves several different units, depending on the type of coded video image or portion thereof (e.g., inter- and intra-images, inter- and intra-blocks, etc.), and other factors. The units involved and how they are involved may be controlled by subgroup control information parsed from the coded video sequence by the parser (520). The flow of such subgroup control information between the parser (520) and the following units is not shown for clarity.

[0040] In addition to the functional blocks already mentioned, the video decoder (510) may be conceptually subdivided into several functional units, as described below. In an actual implementation operating under commercial constraints, many of these units will interact closely with each other and may be at least partially integrated with each other. However, for purposes of describing the disclosed subject matter, the following conceptual subdivision into functional units is appropriate.

[0041] The first unit is a scalar / inverse transform unit (551), which receives quantized transform coefficients as symbols (521) from the parser (520), as well as control information including the transform used, block size, quantization coefficients, quantization scaling matrix, etc. The scalar / inverse transform unit (551) can output blocks containing sample values ​​that can be input to an aggregator (555).

[0042] In some cases, the output samples of the scaler / inverse transform (551) may relate to intra-coded blocks, i.e., blocks that do not use prediction information from a previously reconstructed image but can use prediction information from a previously reconstructed portion of the current image. Such prediction information may be provided by an intra-image prediction unit (552). In some cases, the intra-image prediction unit (552) generates blocks of the same size and shape as the block being reconstructed using surrounding already reconstructed information fetched from a current image buffer (558). The current image buffer (558), for example, buffers partially reconstructed and / or fully reconstructed current images. The aggregator (555) may add, on a sample-by-sample basis, the prediction information generated by the intra-prediction unit (552) to the output sample information provided by the scaler / inverse transform unit (551).

[0043] In other cases, the output samples of the scalar / inverse transform unit (551) may relate to an inter-coded, potentially motion-compensated block. In such cases, the motion-compensated prediction unit (553) may access a reference picture memory (557) to fetch samples used for prediction. After motion-compensating the fetched samples according to the symbols (521) associated with the block, these samples may be added by an aggregator (555) to the output of the scalar / inverse transform unit (551) to generate output sample information (in this case, referred to as residual samples or residual signals). The addresses in the reference picture memory (557) from which the motion-compensated prediction unit (553) fetches prediction samples may be controlled by motion vectors available to the motion-compensated prediction unit (553), for example, in the form of symbols (521) that may have X, Y, and reference picture components. Motion compensation may also include interpolation of sample values ​​fetched from the reference picture memory (557) when sub-sample accurate motion vectors are used, motion vector prediction mechanisms, etc.

[0044] The output samples of the aggregator (555) may be subjected to various loop filtering techniques in a loop filter unit (556). Video compression techniques may include in-loop filtering techniques controlled by parameters contained in the coded video sequence (also called the coded video bitstream) and available to the loop filter unit (556) as symbols (521) from the parser (520), but may also be responsive to meta-information obtained during decoding of a coded image or previous portion (in decoding order) of the coded video sequence, or to previously reconstructed and loop-filtered sample values.

[0045] The output of the loop filter unit (556) can be a sample stream that can be output to the rendering device (512) as well as stored in a reference picture memory (557) for use in future inter-picture prediction.

[0046] Once a particular coded image is fully reconstructed, it can be used as a reference image for future predictions. For example, once the coded image corresponding to the current image is fully reconstructed and the coded image is identified as a reference image (e.g., by the parser (520)), the current image buffer (558) can become part of the reference image memory (557), and a fresh current image buffer can be reallocated before starting the reconstruction of the next coded image.

[0047] The video decoder (510) can perform decoding operations according to a predetermined video compression technique in a standard, such as ITU-T Rec. H.265. An encoded video sequence may conform to the syntax specified by the video compression technique or standard in the sense that it conforms to both the syntax of the video compression technique or standard and the profile of the video compression technique or standard as a document. Specifically, a profile may select specific tools from all available tools in the video compression technique or standard as the only tools that can be used by that profile. Compliance also requires that the complexity of the encoded video sequence be within a range defined by the level of the video compression technique or standard. In some cases, the level imposes limitations on the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limitations set by the level may, in some cases, be further constrained by the specification of a hypothetical reference decoder (HRD) and HRD buffer management metadata signaled in the encoded video sequence.

[0048] In one embodiment, the receiver (531) can receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (510) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, etc.

[0049] 6 shows a block diagram of a video encoder (603) according to an embodiment of the present disclosure. The video encoder (603) is included in an electronic device (620). The electronic device (620) includes a transmitter (640) (e.g., a transmitting circuit). The video encoder (603) may be used in place of the video encoder (403) in the example of FIG. 4.

[0050] The video encoder (603) may receive video samples from a video source (601) (which is not part of the electronic device (620) in the example of FIG. 6) that may capture video images to be encoded by the video encoder (603). In another example, the video source (601) is part of the electronic device (620).

[0051] The video source (601) may provide a source video sequence to be encoded by the video encoder (603) in the form of a digital video sample stream, which may be of any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601 Y CrCB, RGB, ...), and any suitable sampling structure (e.g., Y CrCb 4:2:0, Y CrCb 4:4:4). In a media serving system, the video source (601) may be a storage device that stores previously prepared video. In a video conferencing system, the video source (601) may be a camera that captures local image information as a video sequence. The video data may be provided as multiple individual images that, when viewed sequentially, impart motion. The image itself may be organized as a spatial array of pixels, each of which may contain one or more samples, depending on the sampling structure, color space, etc., in use. Those skilled in the art will readily understand the relationship between pixels and samples. The following discussion will focus on samples.

[0052] According to one embodiment, the video encoder (603) may encode and compress images of a source video sequence into an encoded video sequence (643) in real time or under any other time constraints, as required by the application. Enforcing an appropriate encoding rate is one function of the controller (650). In some embodiments, the controller (650) controls and is operatively coupled to other functional units as described below. For clarity, coupling is not depicted. Parameters set by the controller (650) may include rate control-related parameters (e.g., picture skip, quantization, lambda value for rate-distortion optimization techniques), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (650) may be configured with other appropriate functions related to the video encoder (603) optimized for a particular system design.

[0053] In some embodiments, the video encoder (603) is configured to operate in an encoding loop. As an overly simplistic explanation, in one 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 image to be encoded and a reference image) 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 that created by the (remote) decoder (since the compression between the symbols and the encoded video bitstream is lossless in the video compression techniques contemplated by the disclosed subject matter). The reconstructed sample stream (sample data) is input to a reference image memory (634). Because decoding of the symbol stream yields bit-accurate results regardless of the decoder's location (local or remote), the contents of the reference image memory (634) are also bit-accurate between the local encoder and the remote encoder. In other words, the predictive part of the encoder "sees" as samples in the reference image the exact same sample values ​​that the decoder "sees" when using the prediction during decoding. This basic principle of reference image synchrony (and the drift that occurs when synchrony cannot be maintained, e.g., due to channel errors) is also used in several related technologies.

[0054] The operation of the "local" decoder (633) may be the same as that of a "remote" decoder, such as the video decoder (510), which has already been described in detail above in connection with Figure 5. However, with brief reference also to Figure 5, because symbols are available and the encoding / decoding of symbols into an encoded video sequence by the entropy encoder (645) and parser (520) may 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).

[0055] An observation that can be made at this point is that decoder techniques other than parsing / entropy decoding present in a decoder must necessarily be present in the corresponding encoder in substantially identical functional form. For this reason, the disclosed subject matter focuses on the operation of the decoder. A description of the encoder techniques can be omitted, as they are the reverse of the decoder techniques described generically. Only in certain areas is more detailed description necessary, and is provided below.

[0056] In operation, in some examples, the source encoder (630) may perform motion-compensated predictive encoding, which predictively encodes an input image with reference to one or more previously encoded images from a video sequence designated as “reference images.” In this manner, the encoding engine (632) encodes differences between pixel blocks of the input image and pixel blocks of reference images that may be selected as predictive references for the input image.

[0057] The local video decoder (633) may decode the encoded video data of an image that may be designated as a reference image based on the symbols created by the source encoder (630). The operation of the encoding engine (632) may advantageously be a lossy process. When the encoded video data is decoded by a video decoder (not shown in FIG. 6), the reconstructed video sequence may be a replica of the source video sequence, typically with some errors. The local video decoder (633) may replicate the decoding process that may be performed by the video decoder on the reference image and store the reconstructed reference image in a reference image cache (634). In this way, the video encoder (603) may locally store copies of reconstructed reference images that have common content as reconstructed reference images (without transmission errors) obtained by the far-end video decoder.

[0058] The predictor (635) may perform the prediction search for the coding engine (632). That is, for a new image to be encoded, the predictor (635) may search the reference image memory (634) for specific metadata that serve as an appropriate prediction reference for the new image, such as sample data (as candidate reference pixel blocks) or reference image motion vectors, block shapes, etc. The predictor (635) may operate on a sample block-pixel block basis to find an appropriate prediction reference. In some cases, as determined by the search results obtained by the predictor (635), the input image may have prediction references drawn from multiple reference images stored in the reference image memory (634).

[0059] The controller (650) may manage the encoding operations of the source encoder (630), including, for example, setting the parameters and subgroup parameters used to encode the video data.

[0060] The output of all the aforementioned functional units may undergo entropy coding in an entropy encoder (645), which converts the symbols produced by the various functional units into an encoded video sequence by losslessly compressing the symbols according to techniques known to those skilled in the art, such as Huffman coding, variable length coding, arithmetic coding, etc.

[0061] The transmitter (640) may buffer the encoded video sequence created by the entropy encoder (645) and prepare it for transmission over a communication channel (660), which may be a hardware / software link to a storage device that stores the encoded video data. The transmitter (640) may merge 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 (sources not shown).

[0062] The controller (650) may manage the operation of the video encoder (603). During encoding, the controller (650) may assign a particular encoded image type to each encoded image, which may affect the encoding technique that may be applied to the respective image. For example, images are often assigned as one of the following image types:

[0063] An intra-picture (I-picture) is one that can be coded and decoded without using other pictures in the sequence as a source of prediction. Some video codecs can use various types of intra-pictures, such as Independent Decoder Refresh ("IDR") pictures. Those skilled in the art are aware of these variations of I-pictures and their respective uses and characteristics.

[0064] A predicted image (P-image) may be one that can be coded and decoded using intra- or inter-prediction, which uses at most one motion vector and reference index to predict the sample values ​​of each block.

[0065] Bidirectionally predicted images (B-images) may be those that can be coded and decoded using intra- or inter-prediction, which uses up to two motion vectors and reference indices to predict the sample values ​​of each block. Similarly, multiple predicted images can use more than two reference images and associated metadata to reconstruct a single block.

[0066] A source image is typically spatially subdivided into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and may be coded block by block. Blocks may be predictively coded with reference to other (already coded) blocks, as determined by the coding assignment applied to each image of the block. For example, blocks of an I image may be non-predictively coded, or they may be predictively coded with reference to previously coded blocks of the same image (spatial prediction or intra-prediction). Pixel blocks of a P image may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference image. Blocks of a B image may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference images.

[0067] The video encoder (603) may perform encoding operations in accordance with a predetermined video encoding technique or standard, such as ITU-T Rec. H.265. In its operation, the video encoder (603) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancies in the input video sequence. Thus, the encoded video data may conform to a syntax specified by the video encoding technique or standard being used.

[0068] In one 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 or slices, Supplementary Enhancement Information (SEI) messages, Visual Usability Information (VUI) parameter set fragments, etc.

[0069] Video may be captured as multiple source images (video images) in a time sequence. Intra-image prediction (often abbreviated to intra-prediction) exploits spatial correlation within a particular image, while inter-image prediction exploits correlation (temporal or otherwise) between images. In one example, a particular image being encoded / decoded, called the current image, is divided into blocks. If a block of the current image is similar to a reference block in a reference image of previously encoded and still buffered video, the block of the current image may be coded by a vector called a motion vector. The motion vector points to a reference block in the reference image and may have a third dimension that identifies the reference image if multiple reference images are used.

[0070] In some embodiments, bi-prediction techniques can be used in inter-picture prediction. According to bi-prediction techniques, two reference pictures, such as a first and a second reference picture, may be used, both of which precede a current picture in decoding order (but may be past and future in display order, respectively). A block in the current picture may be coded 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. A block may be predicted by a combination of the first and second reference blocks.

[0071] Furthermore, merge mode techniques can be used in inter-picture prediction to improve coding efficiency.

[0072] According to some embodiments of the present disclosure, prediction, such as inter-image prediction and intra-image prediction, is performed in units of blocks. For example, according to the HEVC standard, images of a video image sequence are divided into coding tree units (CTUs) for compression, and the CTUs of an image are the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. Generally, a CTU includes three coding tree blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU may be a quadtree recursively divided into one or more coding units (CUs). For example, a 64×64 pixel CTU may be divided into one CU of 64×64 pixels, four CUs of 32×32 pixels, or 16 CUs of 16×16 pixels. In one example, each CU is analyzed to determine the prediction type of the CU, such as an inter-prediction type or an intra-prediction type. The CU is divided into one or more prediction units (PUs) according to temporal and / or spatial predictability. Generally, each PU includes a luma prediction block (PB) and two chroma PBs. In one embodiment, the prediction operation in coding (encoding / decoding) is performed in units of a prediction block. Using a luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values ​​(such as luma values) of 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.

[0073] 7 shows a diagram of a video encoder (703) according to another embodiment of the present disclosure. The video encoder (703) is configured to receive a processed block of sample values ​​(e.g., a predicted block) in a current video image in a sequence of video images and to encode the processed block into an encoded image that is part of the encoded video sequence. In one example, the video encoder (703) is used in place of the video encoder (403) in the example of FIG. 4.

[0074] In an HEVC example, the video encoder (703) receives a matrix of sample values ​​for a processing block, such as a predicted block of 8x8 samples. The video encoder (703) determines whether the processing block is best coded using intra-mode, inter-mode, or bi-predictive mode, for example, using rate-distortion optimization. If the processing block is coded in intra-mode, the video encoder (703) can code the processing block into a coded image using intra-prediction techniques. If the processing block is coded in inter-mode or bi-predictive mode, the video encoder (703) can code the processing block into a coded image using inter-prediction or bi-prediction techniques, respectively. In certain video coding techniques, merge mode may be an inter-picture prediction submode in which motion vectors are derived from one or more motion vector predictors but without the benefit of coded motion vector components outside the predictors. In certain other video coding techniques, there may be motion vector components applicable to the current block. In one example, the video encoder (703) includes other components, such as a mode decision module (not shown) for determining the mode of the processing blocks.

[0075] In the example of FIG. 7, the video encoder (703) includes an inter encoder (730), an intra encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a general controller (721), and an entropy encoder (725) coupled together as shown in FIG. 7.

[0076] The inter-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 of reference images (e.g., blocks of previous and subsequent images), generate inter-prediction information (e.g., a description of redundant information through inter-coding techniques, motion vectors, merge mode information), and calculate an inter-prediction result (e.g., a predicted block) based on the inter-prediction information using any suitable technique.

[0077] The intra-encoder (722) is configured to receive samples of a current block (e.g., a processing block), possibly compare the block with blocks already coded in the same image, and generate quantized coefficients after transformation and possibly intra-prediction information (e.g., intra-prediction direction information according to one or more intra-coding techniques).

[0078] The general-purpose controller (721) is configured to determine general-purpose control data and control other components of the video encoder (703) based on the general-purpose control data. In one example, the general-purpose controller (721) determines the mode of the block and provides a control signal to the switch (726) based on the mode. For example, if the mode is intra, the general-purpose controller (721) controls the switch (726) to select the intra-mode result to be used by the residual calculator (723) and controls the entropy encoder (725) to select intra-prediction information and include the intra-prediction information in the bitstream. If the mode is inter, the general-purpose controller (721) controls the switch (726) to select the inter-prediction result to be used by the residual calculator (723) and controls the entropy encoder (725) to select inter-prediction information and include the inter-prediction information in the bitstream.

[0079] The residual calculator (723) is configured to calculate the difference (residual data) between the received block and a prediction result selected from the intra-encoder (722) or the inter-encoder (730). The residual encoder (724) is configured to operate on the residual data to encode the residual data and generate transform coefficients. In one example, the residual encoder (724) is configured to transform the residual data in the frequency domain to generate transform coefficients. The transform coefficients then undergo a quantization process to obtain quantized transform coefficients.

[0080] The entropy encoder (725) is configured to format the bitstream to include the coded block. The entropy encoder (725) is configured to include various information in accordance with an appropriate standard, such as the HEVC standard. In one example, the entropy encoder (725) is configured to include general control data, selected prediction information (e.g., intra-prediction information or inter-prediction information), residual information, and other appropriate information in the bitstream. Note that, according to the disclosed subject matter, there is no residual information when coding a block in a merged sub-mode of either an inter mode or a bi-prediction mode.

[0081] 8 shows a diagram of a video decoder (810) according to another embodiment of the present disclosure. The video decoder (810) is configured to receive coded images that are part of a coded video sequence and to decode the coded images to generate reconstructed images. In one example, the video decoder (810) is used in place of the video decoder (410) in the example of FIG. 4.

[0082] In the example of FIG. 8, the video decoder (810) includes an entropy decoder (871), an inter decoder (880), a residual decoder (873), a reconstruction module (874), and an intra decoder (872) coupled together as shown in FIG. 8.

[0083] The entropy decoder (871) may be configured to reconstruct, from the coded image, specific symbols representing the syntax elements of which the coded image is composed. Such symbols may include prediction information (e.g., intra-prediction information or inter-prediction information, etc.), such as the mode in which the block is coded (e.g., intra-, inter-, b-prediction, merged submode, or the latter two in another submode), residual information in the form of quantized transform coefficients, which may identify specific samples or metadata used for prediction by the intra decoder (872) or inter decoder (880), respectively. In one example, if the prediction mode is an inter-prediction mode or a bi-prediction mode, the inter-prediction information is provided to the inter decoder (880). And, if the prediction type is an intra-prediction type, the intra-prediction information is provided to the intra decoder (872). The residual information, which may undergo inverse quantization, is provided to the residual decoder (873).

[0084] The inter decoder (880) is configured to receive the inter prediction information and to generate inter prediction results based on the inter prediction information.

[0085] The intra decoder (872) is configured to receive the intra prediction information and to generate a prediction result based on the intra prediction information.

[0086] The residual decoder (873) is configured to perform inverse quantization to extract inverse quantized transform coefficients and process the inverse quantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require certain control information (to include a quantization parameter QP), which may be provided by the entropy decoder (871) (data path not shown, as it is only low-volume control information).

[0087] The reconstruction module (874) combines the residual as output by the residual decoder (873) and the prediction result (possibly as output by an inter- or intra-prediction module) in the spatial domain to generate a reconstructed block, which may be part of a reconstructed image, which may be part of the reconstructed video. Note that other suitable operations, such as a deblocking operation, may be performed to improve visual quality.

[0088] It should be noted that the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented using any suitable technology. In one 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 executing software instructions.

[0089] According to some aspects of the present disclosure, for intra prediction, a wide angle mode can be used to compress video and reduce bandwidth or storage space requirements.

[0090] FIG. 9 shows a schematic diagram (900) illustrating an example of a wide-angle mode. Generally, intra-prediction is performed within a range from a 45-degree direction to the upper right (corresponding to the arrow pointing to 34 in FIG. 9 ) to a 45-degree direction to the lower left (corresponding to the arrow pointing to 02 in FIG. 9 ), which is referred to as a conventional intra-prediction mode. When the HEVC intra-prediction mode of 35 is applied, mode 2 is referred to as a lower-left diagonal mode, and mode 34 is referred to as a upper-right diagonal mode. A wide angle beyond the range of prediction directions covered by the conventional intra-prediction mode can correspond to a wide-angle intra-prediction mode. It is obvious to those skilled in the art that the wide-angle intra-prediction mode is the wide-angle mode described above.

[0091] In some examples, a wide-angle intra-prediction direction is associated with one conventional intra-prediction direction. For example, a wide-angle intra-prediction direction and its associated intra-prediction direction capture the same directionality but use opposite reference samples (left column or top row). In one example, a wide-angle intra-prediction mode is signaled by transmitting a one-bit flag for the associated direction with an available wide-angle "flip mode." In the example of FIG. 9, the first direction, with an arrow pointing to 35, is the wide-angle intra-prediction direction and is associated with the second direction, with an arrow pointing to 03. Thus, the first direction can be signaled by transmitting a one-bit flag for the second direction.

[0092] In one embodiment, for 33-way angular intra prediction, the availability of new modes is limited to the 10 directional modes closest to the 45-degree diagonal top-right mode (i.e., mode 34 when 35 conventional intra modes are applied) and bottom-left mode (i.e., mode 2 when 35 conventional intra modes are applied). The actual sample prediction process follows that of HEVC or VVC.

[0093] In the example of Figure 9, 33 intra-prediction directions associated with modes 2 to 34 are shown. In one example, if the width of a block is greater than the height of the block, the directions associated with modes 35 and 36 can be used as wide-angle intra-prediction directions. Modes 3 and 4 may then have an additional flag indicating whether to use the specified mode or to reverse the wide-angle direction in modes 35 and 36. In some examples (e.g., Versatile Video Coding Test Model 1 (VTM1)), both square and non-square blocks are supported in quadtree, binary, and ternary tree (QT+BT+TT) partitioning structures. If the intra-prediction design for square and non-square blocks uses the same intra-prediction mode (e.g., modes 2 to 34) for square blocks, the intra-prediction modes (e.g., modes 2 to 34 in the example of Figure 9) are not efficient for non-square blocks. Wide-angle prediction modes (e.g., modes 35 and 36 in the example of Figure 9) can be used to more efficiently encode non-square blocks.

[0094] In some examples, the signaling of wide-angle intra-prediction depends on the intra-prediction mode, so there is a parsing dependency issue when parsing the wide-angle control flag (the intra-prediction mode needs to be reconstructed during the parsing process).

[0095] In some embodiments, some intra-prediction modes of square blocks are remapped to wide-angle prediction modes of non-square blocks. In an example, during the remapping process, some intra-prediction modes of square blocks are removed from the set of intra-prediction modes originally used for the square blocks, and the same number of wide-angle prediction modes are added to the set of intra-prediction modes to form a new set of intra-prediction modes for the particular non-square block. Thus, a certain number of modes in the set of intra-prediction modes are changed, while other modes remain the same. In some examples, the certain number of changed modes depends on the block shape, such as the aspect ratio of the block.

[0096] For square blocks, a set of conventional intra-prediction modes can be used for intra prediction, and the mode numbers of the set of conventional intra-prediction modes can be 35, 67, etc. For non-square blocks, some modes can be removed from the set of conventional intra-prediction modes, and a number of wide-angle modes (same as the removed modes) can be added to the remaining conventional intra-prediction modes to form a new set of intra-prediction modes. As a result, in the example, the signal mode indices of the non-square blocks and square blocks are the same, and the non-square blocks and square blocks share the same mode encoding algorithm. For 35 conventional intra-prediction modes, the indices of the added top-right wide-angle modes are mode-35, mode-36, mode-37, mode-38, etc., and the indices of the added bottom-left wide-angle modes are mode-1, mode-2, mode-3, mode-4, etc.

[0097] 10 and 11 show two examples of remapping some conventional intra-prediction modes to wide-angle modes. In FIG. 10, modes 2 to 34 are associated with intra-prediction directions as shown in FIG. 10. Modes 2 to 34 are included in modes 0 and 1, forming a set of conventional intra-prediction modes for a square block. In the example of FIG. 10, modes 2 and 3 are removed from the set of conventional intra-prediction modes (as indicated by the dashed lines). Furthermore, wide-angle modes 35 and 36 are added (as indicated by the dotted lines), with the direction of mode 35 being opposite to that of mode 3 (as indicated by (1001)) and the direction of mode 36 being opposite to that of mode 4 (as indicated by (1002)). Thus, modes 4 to 36 are included in modes 0 and 1, forming a new set of intra-prediction modes for a particular non-square block.

[0098] 11, modes 33 and 34 are removed (as indicated by the dashed lines), and wide-angle modes -1 and -2 are added (as indicated by the dotted lines). The direction of mode -1 is opposite to the direction of mode 33 (as indicated by (1101)), and the direction of mode -2 is opposite to the direction of mode 32 (as indicated by (1102)). Thus, modes -2 and -1, and mode 2-32 are included with modes 0 and 1 to form a new set of intra-prediction modes for a particular non-square block.

[0099] In one embodiment, the angular distance between the removed conventional mode and the added wide-angle mode is greater than 90 degrees and less than or equal to 180 degrees. For example, if there are 35 conventional intra-prediction modes and the width is greater than the height, modes 2 through 5 are removed and wide-angle modes 35 through 38 are added; if the height is greater than the width, modes 31 through 34 are removed and modes-1 through -4 are added. In another example, there are 67 conventional intra-prediction modes and if the width is greater than the height, modes 2 through 9 are removed and modes 67 through 74 are added; if the height is greater than the width, modes 59 through 66 are removed and modes-1 through -8 are added.

[0100] In an alternative embodiment, the conventional modes removed and the wide-angle modes added are in the opposite direction. For example, if there are 35 conventional intra-prediction modes and the width is greater than the height, modes 3 through 6 are removed and wide-angle modes 35 through 38 are added; if the height is greater than the width, modes 30 through 33 are removed and wide-angle modes-1 through -4 are added. As another example, there are 67 conventional intra-prediction modes and if the width is greater than the height, modes 3 through 10 are removed and wide-angle modes 67 through 74 are added; if the height is greater than the width, modes 58 through 65 are removed and wide-angle modes-1 through -8 are added.

[0101] In an alternative embodiment, if the width is greater than the height, some conventional modes are removed from the bottom-left direction and an equal number of wide-angle modes are added from the top-right direction; otherwise, if the height is greater than the width, some modes are removed from the top-right direction and an equal number of wide-angle modes are added from the bottom-left direction.

[0102] For example, if there are 35 conventional intra prediction modes, and the width is greater than the height, modes 2 to 5 are removed and wide-angle modes 35 to 38 are added; if the height is greater than the width, modes 31 to 34 are removed and wide-angle modes-1 to -4 are added.

[0103] In an alternative embodiment, the number of conventional intra-prediction modes removed is fixed for all non-square block shapes. For all non-square blocks, N conventional intra-prediction modes are removed and N wide-angle modes are added accordingly. For example, N can range from 1 to 7 if 35 conventional modes are used, from 2 to 14 if 67 conventional modes are used, or from 4 to 28 if 129 conventional intra-prediction modes are used.

[0104] In one subembodiment, N may be signaled as a high-level syntax element such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or as a common syntax element or parameter for a region of an image.

[0105] In one example, if there are 35 conventional intra prediction modes, 4 conventional intra modes are removed, and if there are 67 conventional intra prediction modes, 8 conventional intra modes are removed.

[0106] In an alternative embodiment, the number of conventional intra prediction modes that are removed depends on the shape of the non-square block.

[0107] In some examples, M conventional intra prediction modes are removed when width / height <= 2 or height / width <= 2 (aspect ratio = width / height, 1 < aspect ratio <= 2, or 1 / 2 <= aspect ratio < 1). Furthermore, N conventional intra prediction modes are removed when width / height >= 4 or height / width >= 4 (aspect ratio >= 4 or aspect ratio <= 1 / 4). Furthermore, in one example, P conventional intra prediction modes are removed when 2 < aspect ratio < 4 or 1 / 4 < aspect ratio < 1 / 2. In one example, M is not equal to N. In one example, if there are 35 conventional intra prediction modes, M is equal to 3 and N is equal to 5, and if there are 67 conventional intra prediction modes, M is equal to 6 and N is equal to 10. P may be the same as or different from M or N.

[0108] In one subembodiment, M, N, and P may be signaled as high-level syntax elements such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or as common syntax elements or regional parameters of the image. In another example, the number of conventional intra prediction modes to be removed depends on coding information including, but not limited to, block width, block height, and the ratio of block width to height, block region size.

[0109] In an alternative embodiment, the removed conventional intra-prediction modes start from the bottom-left diagonal mode (i.e., mode 2 when 35 mode is applied) or the top-right diagonal mode (i.e., mode 34 when 35 mode is applied), and the added wide-angle modes start from the nearest angle beyond the bottom-left diagonal mode or the top-right diagonal mode (i.e., mode -1 or mode 35).

[0110] In some examples, the removed conventional modes and added wide-angle modes may be consecutive or non-consecutive. In one example, if there are 35 conventional intra-prediction modes and the width is greater than the height, modes 2 through 5 are removed and wide-angle modes 35 through 38 are added. In another example, if there are 35 conventional intra-prediction modes and the width is greater than the height, modes 2 through 5 are removed and wide-angle modes 35, 37, 38, and 39 are added.

[0111] In an alternative embodiment, unused / removed conventional intra-prediction modes are used to indicate the added wide-angle mode. As a result, unused conventional intra-prediction modes are still signaled, but the meaning of these unused conventional intra-prediction modes is converted to the added wide-angle mode. For example, if the width is greater than the height, mode 2 is removed, but mode 2 continues to be signaled. For one non-square block, the decoder decodes mode 2, and if the width is greater than the height, the decoder converts mode 2 to mode 35.

[0112] In an alternative embodiment, to derive the most probable mode (MPM) of the current block, if the intra-prediction of a neighboring block exceeds the intra-prediction direction range of the current block, the mode of the neighboring block is mapped to the closest direction covered by the intra-prediction direction range of the current block. For example, if the current block is a square block and its left block is a non-square block, and the mode number of the left block is 35, mode 35 is not covered by the mode range of the current block. Therefore, the mode of the left block is mapped to the closest mode 34 covered by the mode range of the current block.

[0113] In some embodiments, the intra prediction process is performed using wide-angle prediction of rectangular blocks. The intra prediction process receives inputs such as an intra prediction mode (denoted by predModeIntra), the width of the current block (denoted by nWidth), the height of the block (denoted by nHeight), neighboring samples (denoted as p[x][y], where (x=-1, y=-1 to nWidth+nHeight-1) (x=0 to nWidth+nHeight-1, y=-1)), and a variable cIdx that specifies the color components of the current block. The intra prediction process can generate prediction samples predSamples[x][y] for x=0 to nWidth-1, y=0 to nHeight-1.

[0114] In some embodiments, the intra-prediction process is performed based on a mapping between the intra-prediction mode predModeIntra and the angle parameter intraPredAngle.

[0115] 12 shows a schematic diagram illustrating 43 intra prediction directions, including 33 conventional intra prediction directions corresponding to conventional intra prediction modes mode 2 through mode 34, as well as five wide angular directions extending beyond mode 34 (denoted modes 35 through 39) and five wide angular directions extending beyond mode 2 (denoted modes −1 through −5).

[0116] 12 also shows a top ruler and a left ruler. In some examples, the angle parameter intraPredAngle is measured according to the top ruler or the left ruler. Table 1 shows a mapping table between the intra prediction mode predModeIntra and the angle parameter intraPredAngle. [Table 1]

[0117] In the example, the input intra prediction mode predModeIntra is one of the conventional intra prediction modes that has been removed, and the input intra prediction mode predModeIntra is converted to a wide-angle mode based on the aspect ratio (nWidth / nHeight) of the current block.

[0118] For example, if nWidth / nHeight=2 and 2<=predModeIntra<=4, predModeIntra←predModeIntra+33. ← means converting predModeIntra to predModeIntra+33, which is a wide-angle mode. Specifically, if the width nWidth of a block is twice the height nHeight of the block, three conventional intra-prediction modes (modes 2, 3, and 4) are removed from the set of conventional intra-prediction modes, and three wide-angle modes (modes 35, 36, and 37) are added to the remaining conventional intra-prediction modes to form a new set of intra-prediction modes for the block. If the input intra-prediction mode predModeIntra corresponds to one of the removed modes, the intra-prediction mode predModeIntra is converted to a wide-angle mode.

[0119] Furthermore, if nWidth / nHeight >= 4 and 2 <= predModeIntra <= 6, then predModeIntra ← predModeIntra + 33. Specifically, if the block width nWidth is greater than or equal to four times the block height nHeight, five conventional intra prediction modes (mode 2, mode 3, mode 4, mode 5, and mode 6) are removed from the set of conventional intra prediction modes, and five wide-angle modes (mode 35, mode 36, mode 37, mode 38, and mode 39) are added to the remaining conventional intra prediction modes to form a new set of intra prediction modes for the block. If the input intra prediction mode predModeIntra corresponds to one of the removed modes, the intra prediction mode predModeIntra is converted to a wide-angle mode.

[0120] Furthermore, if nHeight / nWidth=2 and 32<=predModeIntra<=34, then predModeIntra←predModeIntra-35. Specifically, if the block height nHeight is twice the block width nWidth, three conventional intra-prediction modes (mode 34, mode 33, and mode 32) are removed from the set of conventional intra-prediction modes, and three wide-angle modes (mode-1, mode-2, and mode-3) are added to the remaining conventional intra-prediction modes to form a new set of intra-prediction modes for the block. If the input intra-prediction mode predModeIntra corresponds to one of the removed modes, the intra-prediction mode predModeIntra is converted to a wide-angle mode.

[0121] Furthermore, if nHeight / nWidth >= 4 and 30 <= predModeIntra <= 34, then predModeIntra ← predModeIntra-35. Specifically, if the block height nHeight is greater than or equal to four times the block width nWidth, five conventional intra prediction modes (mode 34, mode 33, mode 32, mode 31, and mode 30) are removed from the set of conventional intra prediction modes, and five wide-angle modes (mode-1, mode-2, mode-3, mode-4, and mode-5) are added together with the remaining conventional intra prediction modes to form the set of intra prediction modes for the new block. If the input intra prediction mode predModeIntra corresponds to one of the removed modes, the intra prediction mode predModeIntra is converted to a wide-angle mode.

[0122] Then, based on the intra prediction mode predModeIntra, a corresponding angle parameter intraPredAngle can be determined, for example, based on Table 1. Then, the prediction samples predSamples[x][y] can be calculated based on the angle parameter intraPredAngle based on an appropriate video coding standard, such as the HEVC standard.

[0123] In another example, 65 conventional intra prediction directions are used for intra prediction of square blocks. The 65 conventional intra prediction directions correspond to modes 2 through 66, which are conventional intra prediction modes as shown in FIG. 2. Modes 2 through 66, mode 0 (planar mode), and mode 1 (DC mode) form a set of 67 intra prediction modes for square blocks. In some embodiments, some conventional intra prediction modes are removed and an equal number of wide-angle modes are added to a new set of intra prediction modes for rectangular blocks, with the number depending on the aspect ratio of the rectangular blocks.

[0124] In some embodiments, the intra prediction process is performed using wide-angle prediction of a rectangular block (the current block). The intra prediction process receives inputs such as an intra prediction mode predModeIntra, the width of the current block nWidth, the height of the block nHeight, and neighboring samples (denoted p[x][y]; where (x=-1, y=-1 to nWidth+nHeight-1)(x=0 to nWidth+nHeight-1, y=-1)). The intra prediction process can generate prediction samples predSamples[x][y] from x=0 to nWidth-1, y=0 to nHeight-1.

[0125] In the example, the variable whRatio is defined as equal to min(abs(Log2(nWidth / nHeight)) , 2). If nWidth is greater than nHeight and less than twice nHeight, whRatio is less than 1. If nWidth is equal to twice nHeight, whRatio is equal to 1. If nWidth is greater than twice nHeight and less than four times nHeight, whRatio is in the range (1,2). If nWidth is four times nHeight, whRatio is equal to 2. If nWidth is greater than four times nHeight, whRatio is equal to 2.

[0126] Similarly, if nHeight is greater than nWidth but less than twice nWidth, whRatio is less than 1. If nHeight is equal to twice nWidth, whRatio is equal to 1. If nHeight is greater than twice nWidth but less than four times nWidth, whRatio is in the range (1,2). If nHeight is four times nWidth, whRatio is 2. If nHeight is greater than four times nWidth, whRatio is 2. Thus, whRatio is a function of the block's shape and does not depend on the block's orientation.

[0127] In the example, the input intra-prediction mode predModeIntra is one of the conventional intra-prediction modes to be removed, and the input intra-prediction mode predModeIntra is converted to a wide-angle mode based on the whRatio of the current block.

[0128] For example, if nWidth is greater than nHeight but less than twice nHeight, whRatio is less than 1, and six conventional intra prediction modes (modes 2 to 7) are removed from the set of conventional intra prediction modes, and six wide-angle modes (modes 67 to 72) are added to the remaining conventional intra prediction modes to form a new set of intra prediction modes for the block. If the input intra prediction mode predModeIntra corresponds to one of the removed modes (greater than or equal to 2 but less than 8), the intra prediction mode predModeIntra is converted to a wide-angle mode by adding 65.

[0129] Furthermore, if nWidth is four or more times greater than nHeight, a new set of intra-prediction modes for the block is formed by removing 10 conventional intra-prediction modes (modes 2 to 11) from the set of conventional intra-prediction modes and adding 10 wide-angle modes (modes 67 to 76) to the remaining conventional intra-prediction modes; if the input intra-prediction mode predModeIntra corresponds to one of the removed modes (2 or greater but less than 12), the intra-prediction mode predModeIntra is converted to a wide-angle mode by adding 65.

[0130] Furthermore, if nHeight exceeds nWidth but is less than twice nWidth, and whRatio is less than 1, six conventional intra-prediction modes (modes 61 to 66) are removed from the set of conventional intra-prediction modes, and six wide-angle modes (modes -1 to -6) are added to the remaining conventional intra-prediction modes to form a new set of intra-prediction modes for the block. If the input intra-prediction mode predModeIntra corresponds to one of the removed modes (greater than or equal to 61 but less than 67), the intra-prediction mode predModeIntra is converted to a wide-angle mode by subtracting 67.

[0131] Furthermore, if nHeight is greater than or equal to four times nWidth, 10 conventional intra prediction modes (modes 57 to 66) are removed from the set of conventional intra prediction modes, and 10 wide-angle modes (modes -1 to -10) are added to the remaining conventional intra prediction modes to form a new set of intra prediction modes for the block. If the input intra prediction mode predModeIntra corresponds to one of the removed modes (greater than or equal to 57 and less than 67), the intra prediction mode predModeIntra is converted to a wide-angle mode by subtracting 67.

[0132] Then, based on the intra-prediction mode predModeIntra, a corresponding angle parameter intraPredAngle can be determined, for example, based on a look-up table. Then, the prediction samples predSamples[x][y] can be calculated based on the angle parameter intraPredAngle based on an appropriate video coding standard, such as the HEVC standard.

[0133] FIG. 13 shows a flowchart outlining a process (1300) according to an embodiment of the present disclosure. The process (1300) can be used to reconstruct a block coded in intra-mode to generate a prediction block for the block being reconstructed. In various embodiments, the process (1300) is performed by a processing circuit, such as a processing circuit of a terminal device (310), (320), (330), or (340), a processing circuit that performs the functions of a video encoder (403), a processing circuit that performs the functions of a video decoder (410), a processing circuit that performs the functions of a video decoder (510), a processing circuit that performs the functions of an intra prediction module (552), a processing circuit that performs the functions of a video encoder (603), a processing circuit that performs the functions of a predictor (635), a processing circuit that performs the functions of an intra encoder (722), or a processing circuit that performs the functions of an intra decoder (872). In some embodiments, the process (1300) is implemented with software instructions, and thus, the processing circuit performs the process (1300) when the processing circuit executes the software instructions. The process starts at (S1301) and proceeds to (S1310).

[0134] At (S1310), prediction information for the block is decoded. In one example, the processing circuit decodes the prediction information for the block from an encoded video bitstream. In some examples, the block is a non-square block, and the prediction information for the block indicates a first intra-prediction mode in a first set of intra-prediction modes for the non-square block. The first set of intra-prediction modes has a first number of different intra-prediction modes (e.g., one or more wide-angle modes) that are not in a second set of intra-prediction modes for the square block. The first set of intra-prediction modes does not include a second number of missing (deleted or unused) intra-prediction modes in the second set of intra-prediction modes. In some embodiments, the first number of different intra-prediction modes and the second number of missing intra-prediction modes are a function of the aspect ratio of the block (which indicates the shape of the block). Both the first number and the second number are positive integers. In some embodiments, the first number is equal to the second number.

[0135] At (S1320), samples of the block are reconstructed according to a first intra-prediction mode. In some examples, corresponding angular parameters may be determined based on the first intra-prediction mode, for example, based on a lookup table. Then, the samples of the block may be calculated based on angular parameters based on an appropriate video coding standard, such as the HEVC standard. Then, the process proceeds to S1399 and ends.

[0136] The techniques described above may be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, Figure 14 illustrates a computer system (1400) suitable for implementing certain embodiments of the disclosed subject matter.

[0137] Computer software can be encoded using any suitable machine code or computer language and can be subjected to assembly, compilation, linking, or similar mechanisms to create code containing instructions that can be executed by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., directly, or through interpretation, execution of microcode, etc.

[0138] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

[0139] 14 for computer system 1400 are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present disclosure, nor should the arrangement of components be interpreted as having a dependency or requirement related to any one or combination of components illustrated in the exemplary embodiment of computer system 1400.

[0140] The computer system (1400) may include certain human interface input devices that respond to input by one or more users, such as, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, clapping), visual input (e.g., gestures), and olfactory input (not shown). The human interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as sound (e.g., speech, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a still image camera), and video (e.g., two-dimensional video, three-dimensional video, including stereoscopic video).

[0141] The input human interface devices may include one or more of a keyboard (1401), a mouse (1402), a trackpad (1403), a touchscreen (1410), a data glove (not shown), a joystick (1405), a microphone (1406), a scanner (1407), and a camera (1408).

[0142] The computer system (1400) may also include certain human interface output devices. Such human interface output devices may stimulate one or more of the human user's senses, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback via a touchscreen (1410), data gloves (not shown), or joystick (1405), although some haptic feedback devices may not function as input devices), audio output devices (e.g., speakers (1409), headphones (not shown), etc.), visual output devices (e.g., screens (1410), including CRT screens, LCD screens, plasma screens, and OLED screens, each with or without touchscreen input capability, each with or without haptic feedback capability, some capable of outputting two-dimensional visual output or three-dimensional or higher-dimensional output by means of stereographic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown), and printers (not shown).

[0143] The computer system (1400) may also include human-accessible storage and associated media such as optical media (1421) such as CD / DVD ROM / RW (1420) including CDs / DVDs, thumb drives (1422), removable hard drives or solid state drives (1423), legacy magnetic media such as tape and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0144] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other transitory signals.

[0145] The computer system (1400) may also include interfaces to one or more communication networks. Networks may be, for example, wireless, wired, or optical. Furthermore, networks may be local, wide-area, metropolitan, vehicular, industrial, real-time, delay-tolerant, etc. Examples of networks include local area networks such as Ethernet, WLAN, and cellular networks including GSM, 3G, 4G, 5G, LTE, etc.; TV wired or wireless wide-area digital networks including cable, satellite, and terrestrial broadcast television; and vehicular, industrial, and other networks including CANbus, etc. Certain networks generally require an external network interface adapter connected to a particular general-purpose data port or peripheral bus (1449) (e.g., a USB port (1400) of the computer system), while others are generally integrated into the computer system core (1400) by connecting to a system bus, as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1400) can communicate with other entities. Such communication may be unidirectional, receive only (e.g., broadcast TV), unidirectional transmit only (e.g., from a CANbus to a particular CANbus device), or bidirectional, e.g., communication to other computer systems using local area digital networks or wide area digital networks. As noted above, specific protocols and protocol stacks may be used with each of these networks and network interfaces.

[0146] The aforementioned human interface devices, human-accessible storage devices, and network interfaces may be connected to the core (1440) of the computer system (1400).

[0147] A core (1440) may include specialized programmable processing devices in the form of one or more central processing units (CPUs) (1441), graphics processing units (GPUs) (1442), field programmable gate arrays (FPGAs) (1443), hardware accelerators for specific tasks (1444), etc. These devices may be connected via a system bus (1448), along with read-only memory (ROM) (1445), random access memory (1446), and internal mass storage devices (1447) such as internal hard drives or SSDs that are not user-accessible. In some computer systems, the system bus (1448) may be accessible in the form of one or more physical plugs, allowing expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (1448) or via a peripheral bus (1449). Peripheral bus architectures include PCI, USB, etc.

[0148] The CPU (1441), GPU (1442), FPGA (1443), and accelerator (1444) can execute specific instructions that, in combination, can constitute the aforementioned computer code. The computer code can be stored in ROM (1445) or RAM (1446). Transient data can also be stored in RAM (1446), while persistent data can be stored, for example, in internal mass storage (1447). The use of cache memory, which can be closely associated with one or more of the CPU (1441), GPU (1442), mass storage (1447), ROM (1445), RAM (1446), etc., allows for fast storage and retrieval of any memory device.

[0149] The computer-readable media may have computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present disclosure, or they may be of the kind well known and available to those skilled in the computer software arts.

[0150] By way of example and not limitation, the architecture (1400), and in particular a computer system having a core (1440), can provide functionality 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 computer-readable media include the user-accessible mass storage devices introduced above, as well as media associated with specific storage devices of the core (1440) that are non-transitory in nature, such as the core's internal mass storage device (1447) or ROM (1445). Software implementing various embodiments of the present disclosure can be stored on such devices and executed by the core (1440). The computer-readable media may include one or more memory devices or chips according to particular needs. The software can cause the core (1440), and in particular the processor (including a CPU, GPU, FPGA, etc.) therein, to perform particular processes or portions of particular processes described herein, including defining data structures stored in RAM (1446) and modifying such data structures according to software-defined processes. Additionally, or alternatively, a computer system may provide functionality as a result of logic embedded in or otherwise implemented in circuitry (e.g., accelerator (1444)), which may operate in place of or together with software to perform particular processes or portions of particular processes described herein. References to software may include logic, and vice versa, as appropriate. References to computer-readable media may encompass circuitry (such as an integrated circuit (IC)) storing software for execution, circuitry embodying logic for execution, or both, as appropriate. The present disclosure encompasses any suitable combination of hardware and software. Appendix A: Acronyms JEM: Joint Search Model VVC: Versatile video coding BMS: Benchmark Set HEVC: High Efficiency Video Coding SEI: Additional Extended Information VUI: Visual Usability Information GOP: Group of Pictures TU: Conversion unit, PU: Prediction Unit CTU: Coding Tree Unit CTB: coding tree block PB: Predicted Block HRD: Hypothetical Reference Decoder SNR: Signal to Noise Ratio CPU: Central Processing Unit GPU: Graphics Processing Unit CRT: cathode ray tube LCD: Liquid crystal display OLED: Organic Light Emitting Diode CD: Compact Disc DVD: Digital video disc ROM: Read-Only Memory RAM: Random Access Memory ASIC: Application Specific Integrated Circuit PLD: Programmable Logic Device LAN: Local Area Network GSM: Global System for Mobile Communications LTE: Long Term Evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect FPGA: Field Programmable Gate Array SSD: Solid State Drive IC: Integrated Circuit CU: Coding Unit

[0151] While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents that fall within the scope of this disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the present disclosure and are therefore within its spirit and scope. [Explanation of symbols]

[0152] 101 Samples 102 Arrow 103 Arrow 104 blocks 300 Communication Systems 310 Terminal Equipment 320 Terminal Equipment 330 Terminal Equipment 340 Terminal Equipment 350 Network 400 Communication Systems 401 Video Source 402 Video Images 403 Video Encoder 404 Encoded Video Data 405 Streaming Server 406 Client Subsystem 407 Copy 408 Client Subsystem 409 Copy 410 Video Decoder 411 Video Images 412 Display 413 Capture Subsystem 420 Electronic equipment 430 Electronic equipment 501 Channel 510 Video Decoder 512 Rendering Device 515 buffer memory 520 Parser 521 Symbol 530 Electronic equipment 531 Receiver 551 Scaler / Descaler Unit 552 Intra-Image Prediction Unit 553 Motion Compensation Prediction Unit 555 Aggregator 556 Loop Filter Unit 557 Reference Image Memory 558 Current Image Buffer 601 Video Source 603 Video Encoder 620 Electronic equipment 630 Source Encoder 632 encoding engine 633 Local Decoder 634 Reference Image Memory 635 Predictor 640 Transmitter 643 Video Sequences 645 Entropy Encoder 650 Controller 660 Communication Channels 703 Video Encoder 721 General-purpose controller 722 Intra Coder 723 Residual Calculator 724 Residual Encoder 725 Entropy Encoder 726 Switch 730 Intercoder 810 Video Decoder 871 Entropy Decoder 872 Intra Decoder 873 Residual Decoder 874 Reconstruction Module 880 Inter Decoder 1300 processes 1400 Computer Systems 1405 Joystick 1409 Speaker 1410 Touchscreen 1420 CD / DVD ROM / RW 1421 Optical Media 1422 thumb drive 1423 Solid State Drive 1440 cores 1441 Central Processing Unit (CPU) 1442 Graphics Processing Unit (GPU) 1443 Field Programmable Gate Area (FPGA) 1444 Hardware Accelerator 1445 Read-Only Memory (ROM) 1446 Random Access Memory (RAM) 1447 Internal mass storage 1448 System Bus 1449 Peripheral Bus S11 Sample S12 Sample S13 Sample S14 Sample S21 Sample S22 Sample S23 Sample S24 Sample S31 Sample S32 Samples S33 Sample S34 Sample S41 Sample S42 Sample S43 Sample S44 Sample

Claims

1. A method for decoding a rectangular block with a decoder, the method being: The first step involves receiving a first variable, predModeIntra, which indicates the intra-prediction mode of a square block; The current stage involves receiving variables nW and nH, which represent the width and height of the block, respectively; The first step is to determine the variable whRatio by at least abs(Log2(nW / nH)); If nW is greater than nH and whRatio is 1 or less, a second variable predModeIntra remapped to a non-square block is obtained by adding 65 to the first variable predModeIntra of the first number associated with the square block, or if nH is greater than nW and whRatio is 1 or less, a second variable predModeIntra remapped to a non-square block is obtained by subtracting 67 from the first variable predModeIntra of the first number associated with the square block, and so on; A step of determining the angle parameter intraPredAngle based on the second variable predModeIntra which has been remapped to the non-square block; The step of calculating the sample predSamples[x][y] based on the value of the angle parameter intraPredAngle. Methods that include...

2. The method according to Claim 1, wherein the determination of whether whRatio is 1 or less depends on whether nW is within the range of [nH, 2nH] if nW is greater than nH, and whether nH is within the range of [nW, 2nW] if nH is greater than nW.

3. When nW is greater than nH and whRatio is 1 or less, obtaining a second variable predModeIntra that has been remapped to a non-square block by adding 65 to a first variable predModeIntra of a first number associated with a square block includes changing the first variable predModeIntra from [2,7] to [67,72] by adding 65, If nH is greater than nW and whRatio is less than or equal to 1, obtaining a second variable predModeIntra remapped to a non-square block by subtracting 67 from the first variable predModeIntra of the first number associated with the square block includes changing the first variable predModeIntra from [61, 66] to [-1, -6] by adding 67. The method according to claim 1 or 2.

4. The method according to any one of claims 1 to 3, wherein the first number is equal to 6 when the aspect ratio of the block is currently greater than 1 and less than or equal to 2.

5. The method according to any one of claims 1 to 4, wherein the intra prediction mode of a square block includes intra prediction modes 2 to 66 from the lower left to the upper right of the predicted direction, and when nH < nW < 2 × nH, the first variable to be remapped, predModeIntra, is 2 to 7, and the remapped second variable, predModeIntra, is 67 to 72.

6. The method according to any one of claims 1 to 4, wherein the intra prediction mode of a square block includes intra prediction modes 2 to 66 from the lower left to the upper right of the predicted direction, and when nW ≥ 4 × nH, the first variable to be remapped, predModeIntra, is 2 to 11, and the remapped second variable, predModeIntra, is 67 to 76.

7. The method according to any one of claims 1 to 4, wherein the intra prediction mode of a square block includes intra prediction modes 2 to 66 from the lower left to the upper right of the predicted direction, and when nW < nH < 2 × nW, the first variable to be remapped, predModeIntra, is 61 to 66, and the remapped second variable, predModeIntra, is -1 to -6.

8. The method according to any one of claims 1 to 4, wherein the intra prediction mode of a square block includes intra prediction modes 2 to 66 from the lower left to the upper right of the predicted direction, and when nH ≥ 4 × nW, the first variable to be remapped, predModeIntra, is 57 to 66, and the remapped second variable, predModeIntra, is -1 to -10.

9. An apparatus comprising a processing circuit configured to perform the method described in any one of claims 1 to 8.

10. A computer program for causing a computer to perform the method described in any one of claims 1 to 8.