Video decoding method, device and program

The method optimizes video decoding by applying unidirectional intra prediction for non-predefined delta angles and bidirectional intra prediction for predefined angles in directional modes between 0 and 180 degrees, enhancing compression and quality for video content with sharp edges.

JP2026501716AActive Publication Date: 2026-01-16TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025539748
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-29
Filing Date
2023-06-30
Publication Date
2026-01-16
Estimated Expiration
2043-06-30

AI Technical Summary

Technical Problem

Existing video coding technologies face inefficiencies in intra-prediction, particularly when dealing with directional modes that are not optimally handled by current bidirectional intra prediction methods, especially for video content with sharp edges.

Method used

Implementing a method where unidirectional intra prediction is applied when the delta angle associated with the current block is not a predefined angle, and bidirectional intra prediction is used when the delta angle is predefined, specifically for directional modes between 0 and 180 degrees, using a predefined delta angle such as 0, 2, or -2 degrees, and applying it based on a mapping table for correlation between the delta angle and intra-directionality mode.

Benefits of technology

This approach enhances video decoding efficiency by optimizing intra-prediction for various directional modes, improving compression and quality of video content, especially for content with sharp edges.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026501716000001_ABST
    Figure 2026501716000001_ABST
Patent Text Reader

Abstract

Coded information of a current block predicted in an intra-directional mode and neighboring blocks of the current block is received. It is determined that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees. In response to the intra-directional mode of the current block being associated with an angle, it is determined whether a delta angle associated with the current block is a predefined delta angle. In response to the delta angle associated with the current block not being a predefined delta angle, unidirectional intra prediction is applied to the current block instead of bidirectional intra prediction. Samples of the current block are reconstructed based on neighboring reference samples on a reference line determined according to the unidirectional intra prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Patent Application No. 18 / 216,373, entitled "Angular Intra Prediction," filed June 29, 2023, which claims the benefit of priority to U.S. Non-Provisional Application No. 18 / 215,333, entitled "Angular Intra Prediction," filed June 28, 2023, and U.S. Provisional Application No. 63 / 449,281, entitled "Angular Intra Prediction," filed March 1, 2023. The entire disclosures of the prior applications are incorporated herein by reference.

[0002] This disclosure includes embodiments related to video coding. [Background technology]

[0003] The background discussion provided herein is intended to generally present the context for the disclosure. The work of the inventors named herein is not admitted expressly or impliedly as prior art to the present disclosure, to the extent that that work is described in this Background section and in a descriptive manner that may not qualify as prior art at the time of filing.

[0004] Image / video compression can help transmit image / video files between various devices, storage, and networks with minimal loss of quality. In some examples, video codec technology can compress video based on spatial and temporal redundancy. In one example, video codecs can use a technique called intra-prediction, which can compress images based on spatial redundancy. For example, intra-prediction can use reference data from the current picture being reconstructed for sample prediction. As another example, video codecs can use a technique called inter-prediction, which can compress images based on temporal redundancy. For example, inter-prediction can predict samples of a current picture from a previously reconstructed picture using motion compensation. Motion compensation is commonly indicated by motion vectors (MVs). Summary of the Invention [Means for solving the problem]

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

[0006] According to one aspect of the present disclosure, a video decoding method is provided, which is executed by a video decoder. In the method, coded information of a current block predicted in an intra-directional mode and neighboring blocks of the current block is received from a coded video bitstream. It is determined that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees. In response to the intra-directional mode of the current block being associated with an angle that is one of less than 90 degrees and greater than 180 degrees, it is determined whether the delta angle associated with the current block is a predefined delta angle. In response to the delta angle associated with the current block not being a predefined delta angle, unidirectional intra prediction is applied to the current block instead of bidirectional intra prediction. Samples of the current block are reconstructed based on neighboring reference samples on a reference line determined according to the unidirectional intra prediction. The unidirectional intra prediction is applied when (i) the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees, and (ii) the delta angle associated with the current block is not a predefined delta angle.

[0007] In some embodiments, bidirectional intra prediction is determined to be applied to the current block based on (iii) a delta angle, which is a predefined delta angle, and (iv) a reference line including reference samples for intra prediction, the reference line including a reference sample row adjacent to and above the current block and a reference sample column adjacent to and to the left of the current block.

[0008] In one example, the predefined delta angle is one of 0 degrees, 2 degrees, and -2 degrees.

[0009] In one example, the predefined delta angle is included in one of a first range from -2 to 0 and a second range from 0 to 2.

[0010] In one embodiment, the samples of the current block are reconstructed based on two adjacent reference samples selected from a reference line based on the direction angle indicated by bidirectional intra prediction.

[0011] In some embodiments, the direction angle indicated by bidirectional intra prediction is equal to the sum of the delta angle and the direction angle indicated by the intra directionality mode of the current block.

[0012] In one example, the angle associated with the intra-directional mode of the current block is within a subset of the angle range less than 90 degrees and greater than 180 degrees.

[0013] As an example, the predefined delta angle is one of -9 degrees, -6 degrees, -3 degrees, 0 degrees, 3 degrees, 6 degrees, and 9 degrees.

[0014] In one example, each angle in the angle range has a respective index value, and each angle in a subset of the angle range has one of an even index value and an odd index value.

[0015] In some embodiments, the predefined delta angle is obtained based on a predefined mapping table that indicates a correlation between the predefined delta angle of the candidate and the intra-directivity mode of the candidate for the current block.

[0016] In one example, it is determined that bidirectional intra prediction is applied to the current block based on the prediction mode of at least one of the neighboring blocks being a non-directional mode.

[0017] In one example, the predefined delta angle is included in information coded at one of the sequence level, the frame level, or the slice level.

[0018] According to another aspect of the present disclosure, an apparatus is provided, the apparatus including a processing circuit, the processing circuit being configured to perform any of the described methods for video decoding / encoding.

[0019] Aspects of the present disclosure also provide a non-transitory computer-readable medium storing instructions that, when executed by a computer for video decoding, cause the computer to perform any of the described methods for video decoding / encoding.

[0020] Further features, features 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]

[0021] [Figure 1] FIG. 1 is a schematic diagram of an exemplary block diagram of a communication system (100).

[0022] [Figure 2] FIG. 2 is a schematic block diagram of an example decoder.

[0023] [Figure 3] FIG. 2 is a schematic block diagram of an example encoder;

[0024] [Figure 4] 1 is a schematic diagram of exemplary nominal angles in an AOMedia video (AV1) according to some embodiments of the present disclosure.

[0025] [Figure 5] FIG. 10 is a schematic diagram of an exemplary angle and offset lookup table according to some embodiments of the present disclosure.

[0026] [Figure 6] FIG. 1 is a schematic diagram of an example of multiple reference line selection (MRLS) for intra prediction according to some embodiments of the present disclosure.

[0027] [Figure 7] FIG. 2 is a schematic diagram of a first example of intra bi-prediction according to some embodiments of the present disclosure.

[0028] [Figure 8] FIG. 10 is a schematic diagram of a second example of intra bi-prediction according to some embodiments of the present disclosure.

[0029] [Figure 9] 1 shows a flowchart outlining a decoding process according to some embodiments of the present disclosure.

[0030] [Figure 10] 1 shows a flowchart outlining an encoding process according to some embodiments of the present disclosure.

[0031] [Figure 11] FIG. 1 is a schematic diagram of a computer system according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0032] 1 shows a block diagram of a video processing system (100) in some examples. The video processing system (100) is an example of the application of the disclosed subject matter, a video encoder and a video decoder, in a streaming environment. The disclosed subject matter may be similarly applicable to other image and video-enabled applications, including, for example, video conferencing, digital TV, streaming services, and storage of compressed video on digital media (including CDs, DVDs, memory sticks, etc.).

[0033] The video processing system (100) includes a capture subsystem (113) that may include a video source (101). The video source (101) may include one or more images captured by a camera and / or generated by a computer. For example, a digital camera generates a stream of uncompressed video pictures (102). In one example, the video picture stream (102) includes samples captured by the digital camera. The video picture stream (102), depicted in bold to emphasize its large amount of data compared to the encoded video data (104) (or coded video bitstream), may be processed by an electronic device (120) that includes a video encoder (103) coupled to the video source (101). The video encoder (103) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in further detail below. The encoded video data (104) (or encoded video bitstream), depicted with thin lines to emphasize its small amount of data compared to the stream of video pictures (102), may be stored on a streaming server (105) for future use. One or more streaming client subsystems, such as the client subsystems (106) and (108) of FIG. 1, can access the streaming server (105) to obtain copies (107) and (109) of the encoded video data (104). The client subsystem (106) may include a video decoder (110), for example, within an electronic device (130). The video decoder (110) decodes the input copy of the encoded video data (107) and produces an output stream of video pictures (111) that can be rendered on a display (112) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (104), (107), and (109) (e.g., video bitstreams) may be encoded according to a particular video coding / compression standard.Examples of these standards include ITU-T Recommendation H.265. In one example, the video coding standard under development is informally called Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

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

[0035] 2 shows an example block diagram of a video decoder (210). The video decoder (210) may be included within an electronic device (230). The electronic device (230) may include a receiver (231). The receiver (231) may include receiving circuitry, such as a network interface circuit. The video decoder (210) may be used in place of the video decoder (110) in the example of FIG. 1.

[0036] The receiver (231) may receive one or more coded video sequences to be decoded by the video decoder (210). In one embodiment, one coded video sequence is received at a time, and the decoding of each coded video sequence is independent of the decoding of other coded video sequences. The coded video sequences may be received from a channel (201), which may be a hardware / software link to a storage device that stores the encoded video data. The receiver (231) may receive the coded video data along with other data (e.g., streams of coded audio data and / or auxiliary data), which may be forwarded to respective using entities (not shown). The receiver (231) may separate the coded video sequences from the other data. To combat network jitter, a buffer memory (215) may be coupled between the receiver (231) and the entropy decoder / parser (220) (hereinafter, "parser (220)"). In certain applications, the buffer memory (215) is part of the video decoder (210). In other cases, it may be external to the video decoder (210) (not shown). In still other cases, there may be a buffer memory (not shown) external to the video decoder (210), for example, to deal with network jitter, and there may be another buffer memory (215) internal to the video decoder (210), for example, to handle playout timing. If the receiver (231) is receiving data from a store-and-forward device with sufficient bandwidth and controllability or from an isosynchronous network, the buffer memory (215) may not be necessary or may be small. For use with best-effort packet networks such as the Internet, the buffer memory (215) may be required, and may be relatively large, may be advantageously sized adaptively, and may be implemented at least in part in an operating system or similar element (not shown) external to the video decoder (210).

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

[0038] The parser (220) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (215) to generate symbols (221).

[0039] The reconstruction of the symbols (221) may involve several different units, depending on the type of video picture or portion thereof coded (e.g., inter-picture and intra-picture, inter-block and intra-block, etc.) and other factors. Which units are involved and how they are involved may be controlled by subgroup control information parsed from the coded video sequence by the parser (220). The flow of such subgroup control information between the parser (220) and the units below it is not shown for clarity.

[0040] In addition to the functional blocks already described, the video decoder (210) may be conceptually subdivided into several functional units, as described below. In an actual implementation operating under commercial constraints, many of these units may 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 (251), which receives quantized transform coefficients as symbol(s) (221) from the parser (220) along with control information including the transform to use, block size, quantization coefficients, quantization scaling matrix, etc. The scalar / inverse transform unit (251) can output blocks containing sample values ​​that can be input to an aggregator (255).

[0042] In some cases, the output samples of the scaler / inverse transform unit (251) may relate to intra-coded blocks. Intra-coded blocks are blocks that do not use prediction information from a previously reconstructed picture but can use prediction information from a previously reconstructed portion of the current picture. Such prediction information may be provided by the intra-picture prediction unit (252). In some cases, the intra-picture prediction unit (252) generates a block of the same size and shape as the block being reconstructed using surrounding, already reconstructed information fetched from the current picture buffer (258). The current picture buffer (258), for example, buffers a partially reconstructed and / or fully reconstructed current picture. The aggregator (255), in some cases, adds, on a sample-by-sample basis, the prediction information generated by the intra-prediction unit (252) to the output sample information provided by the scaler / inverse transform unit (251).

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

[0044] The output samples of the aggregator (255) can be subjected to various loop filtering techniques in a loop filter unit (256). Video compression techniques can include in-loop filtering techniques controlled by parameters contained in the coded video sequence (also called the coded video bitstream) and made available to the loop filter unit (256) as symbols (221) from the parser (220). Video compression can also be responsive to meta-information obtained during decoding of a previous portion (in decoding order) of the coded picture or coded video sequence, or even to previously reconstructed loop-filtered sample values.

[0045] The output of the loop filter unit (256) may be a sample stream that can be output to a rendering device (212) and further stored in a reference picture memory (257) for use in future inter-picture prediction.

[0046] Once a particular coded picture is fully reconstructed, it can be used as a reference picture for future prediction. For example, once a coded picture corresponding to a current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by the parser (220)), the current picture buffer (258) can become part of the reference picture memory (257), and an unused current picture buffer can be reallocated before beginning reconstruction of a subsequent coded picture.

[0047] The video decoder (210) may perform decoding operations according to a given video compression technology or standard, such as ITU-T Recommendation H.265. A coded video sequence may conform to the syntax prescribed by the video compression technology or standard in use, in the sense that the coded video sequence conforms to both the syntax of the video compression technology or standard and a profile documented in the video compression technology or standard. Specifically, a profile may select certain tools from all tools available in the video compression technology or standard as the only tools available for use under that profile. Compliance may also require that the complexity of the coded video sequence be within a range defined by the level of the video compression technology or standard. In some cases, the level limits the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limits set by the level may, in some cases, be further constrained through a Hypothetical Reference Decoder (HRD) specification and metadata for HRD buffer management signaled in the coded video sequence.

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

[0049] 3 shows an example block diagram of a video encoder (303). The video encoder (303) is included in an electronic device (320). The electronic device (320) includes a transmitter (340) (e.g., a transmitting circuit). The video encoder (303) may be used in place of the video encoder (103) in the example of FIG. 1.

[0050] The video encoder (303) may receive video samples from a video source (301) (not part of the electronic device (320) in the example of FIG. 3) that may capture video image(s) to be coded by the video encoder (303). In another example, the video source (301) is part of the electronic device (320).

[0051] The video source (301) may provide a source video sequence to be coded by the video encoder (303) in the form of a digital video sample stream of any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, etc.), any color space (e.g., BT.601 Y CrCB, RGB, etc.), and any suitable sampling structure (e.g., Y CrCb 4:2:0, Y CrCb 4:4:4). In a media distribution system, the video source (301) may be a storage device that stores pre-prepared video. In a video conferencing system, the video source (301) may be a camera that captures local image information as a video sequence. The video data may be provided as multiple individual pictures that convey motion when viewed sequentially. The pictures themselves are organized as a spatial array of pixels, each of which may contain one or more samples depending on the sampling structure, color space, etc. used. The following discussion focuses on samples.

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

[0053] In some embodiments, the video encoder (303) is configured to operate in a coding loop. As an overly simplified description, in one example, the coding loop can include a source coder (330) (e.g., responsible for generating symbols, such as a symbol stream, based on an input picture to be coded and reference picture(s)) and a (local) decoder (333) embedded in the video encoder (303). The decoder (333) reconstructs the symbols to generate sample data in a manner similar to that which a (remote) decoder would also generate. The reconstructed sample stream (sample data) is input to a reference picture memory (334). Because decoding of the symbol stream produces bit-perfect results independent of the location (local or remote) of the decoder, the contents in the reference picture memory (334) are also bit-perfect between the local and remote encoders. In other words, the predictive portion of the encoder "sees" exactly the same sample values ​​as the decoder would "see" when using prediction during decoding. This basic principle of reference picture synchronicity (and the resulting drift when synchronicity cannot be maintained, for example due to channel errors) is also used in several related techniques.

[0054] The operation of the "local" decoder (333) can be the same as the operation of a "remote" decoder, such as the video decoder (210), already described in detail above in connection with Figure 2. Referring also briefly to Figure 2, however, because symbols are available and the encoding / decoding of symbols into a coded video sequence by the entropy coder (345) and parser (220) can be lossless, the entropy decoding portion of the video decoder (210), including the buffer memory (215) and parser (220), may not be fully implemented in the local decoder (333).

[0055] In one aspect, decoder technology, excluding parsing / entropy decoding, present in the decoder exists in the same or nearly identical functional form in the corresponding encoder. Therefore, the disclosed subject matter focuses on the operation of the decoder. A description of the encoder technology may be omitted, since it is the reverse of the decoder technology, which is comprehensively described. More detailed descriptions of certain areas are provided below.

[0056] In operation, in some examples, the source coder (330) may perform motion-compensated predictive coding, predictively coding an input picture with reference to one or more previously coded pictures from the video sequence designated as “reference pictures.” In this manner, the coding engine (332) codes differences between pixel blocks of the input picture and pixel blocks of reference picture(s) that may be selected as prediction reference(s) for the input picture.

[0057] The local video decoder (333) may decode coded video data of pictures that may be designated as reference pictures based on symbols produced by the source coder (330). The operation of the coding engine (332) may advantageously be a lossy process. When the coded video data may be decoded by a video decoder (not shown in FIG. 3), the reconstructed video sequence may typically be a replica of the source video sequence, with some errors. The local video decoder (333) may replicate the decoding process that may be performed on reference pictures by the video decoder, causing the reconstructed reference pictures to be stored in the reference picture memory (334). In this way, the video encoder (303) may locally store copies of reconstructed reference pictures that have common content with reconstructed reference pictures that would be obtained by a far-end video decoder (without transmission errors).

[0058] The predictor (335) may perform a prediction search for the coding engine (332). That is, for a new picture to be coded, the predictor (335) may search the reference picture memory (334) for sample data (as candidate reference pixel blocks) or specific metadata (e.g., the reference picture's motion vectors, block shape, etc.) that may serve as suitable prediction references for the new picture. The predictor (335) may operate on a sample block-by-pixel block basis to find suitable prediction references. In some cases, as determined by the search results obtained by the predictor (335), the input picture may have prediction references drawn from multiple reference pictures stored in the reference picture memory (334).

[0059] The controller (350) may manage the coding operations of the source coder (330), 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 coder (345), which converts the symbols produced by the various functional units into a coded video sequence by applying lossless compression to the symbols according to techniques such as Huffman coding, variable length coding, or arithmetic coding.

[0061] The transmitter (340) may buffer the coded video sequence(s) generated by the entropy coder (345) to prepare them for transmission over a communication channel (360), which may be a hardware / software link to a storage device that stores the encoded video data. The transmitter (340) may combine the coded video data from the video encoder (303) with other data to be transmitted, such as coded audio data and / or an auxiliary data stream (source not shown).

[0062] The controller (350) may manage the operation of the video encoder (303). During coding, the controller (350) may assign a particular coded picture type to each coded picture, which may affect the coding technique that may be applied to the respective picture. For example, pictures may often be assigned as one of the following picture types:

[0063] An Intra Picture (I-picture) may be a picture that may be coded and decoded without using any other picture in a sequence as a source of prediction. Some video codecs allow various types of Intra pictures, including, for example, 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 predictive picture (P picture) may be a picture that may 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] A bi-directionally predictive picture (B-picture) may be a picture that may 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-predictive pictures may use more than two reference pictures and associated metadata to reconstruct a single block.

[0066] A source picture 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 the block's respective picture. For example, blocks of an I-picture may be non-predictively coded or predictively coded with reference to already coded blocks of the same picture (spatial or intra prediction). Pixel blocks of a P-picture may be predictively coded by spatial or temporal prediction with reference to one previously coded reference picture. Blocks of a B-picture may be predictively coded by spatial or temporal prediction with reference to one or two previously coded reference pictures.

[0067] The video encoder (303) may perform coding operations according to a predetermined video coding technique or standard, such as ITU-T Recommendation H.265. In doing so, the video encoder (303) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancies in the input video sequence. Thus, the coded video data may conform to a syntax specified by the video coding technique or standard being used.

[0068] In one embodiment, the transmitter (340) may transmit additional data along with the encoded video. The source coder (330) may include such data as part of the coded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.

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

[0070] In some embodiments, bi-prediction techniques can be used in inter-picture prediction. Bi-prediction techniques use two reference pictures, such as a first reference picture and a second reference picture, that both precede a current picture in decoding order (but may be past and future, respectively, in display order) in a video. A block in the current picture can be coded with a first motion vector that points to a first reference block in the first reference picture and a second motion vector that points to a second reference block in the second reference picture. The block can be predicted by a combination of the first and second reference blocks.

[0071] Furthermore, the use of merge mode techniques in inter-picture prediction can improve coding efficiency.

[0072] According to some embodiments of the present invention, predictions such as inter-picture prediction and intra-picture prediction are performed in units of blocks, such as polygonal blocks or triangular blocks. For example, according to the HEVC standard, pictures in a sequence of video pictures are partitioned into coding tree units (CTUs) for compression, and the CTUs within a picture have the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. Typically, a CTU includes three coding tree blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU may be recursively quadtree-decomposed into one or more coding units (CUs). For example, a 64x64 pixel CTU may be partitioned into one CU of 64x64 pixels, four CUs of 32x32 pixels, or sixteen CUs of 16x16 pixels. In one example, each CU is analyzed to determine a prediction type for the CU, such as an inter-prediction type or an intra-prediction type. A CU is divided into one or more prediction units (PUs) according to temporal and / or spatial predictability. Generally, each PU includes one luma prediction block (PB) and two chroma PBs. In one embodiment, prediction operations in coding (encoding / decoding) are performed in prediction block units. Using a luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values ​​(e.g., luma values) of 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.

[0073] It should be noted that the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using any suitable technology. In one embodiment, the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using one or more integrated circuits. In another embodiment, the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using one or more processors executing software instructions.

[0074] This disclosure includes embodiments related to advanced video coding techniques, such as improved angular intra-prediction methods.

[0075] AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. AV1 was developed as a successor to VP9 by the Alliance for Open Media (AOMedia), a consortium founded in 2015 that includes semiconductor companies, video-on-demand providers, video content creators, software developers, and web browser vendors. Many of the components of the AV1 project contributed from previous research efforts by Alliance members. Individual contributors initiated experimental technology platforms many years ago. For example, Xiph / Mozilla's Daala, whose code was already publicly available in 2010, Google's experimental VP9 evolution project VP10, announced on September 12, 2014, and Cisco's Thor, released on August 11, 2015. AV1 builds on the VP9 code base and incorporates additional technologies, some of which were developed in the experimental formats mentioned above. The first version, 0.1.0, of the AV1 reference codec was released on April 7, 2016. The Alliance announced the release of the AV1 Bitstream Specification along with reference, software-based encoders and decoders on March 28, 2018. Validated version 1.0.0 of the specification was released on June 25, 2018. Validated version 1.0.0, including Errata 1 of the specification, was released on January 8, 2019. The AV1 Bitstream Specification includes reference video codecs.

[0076] ITU-TVCEG (Q6 / 16) and ISO / IEC MPEG (JTC1 / SC29 / WG11) published the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (Version 1), 2014 (Version 2), 2015 (Version 3), and 2016 (Version 4). In 2015, the two standards organizations jointly formed the Joint Video Exploration Team (JVET) to explore the possibility of developing the next video coding standard beyond HEVC. In October 2017, the two standards organizations announced a joint call for proposals (CfP) for video compression with capabilities beyond HEVC. By February 15, 2018, a total of 22 CfP responses had been submitted for standard dynamic range (SDR), 12 for high dynamic range (HDR), and 12 for the 360-degree video category. In April 2018, all received CfP responses were evaluated at the 122MPEG / 10th JVET Meeting. As a result of this meeting, JVET officially launched the standardization process for next-generation video coding beyond HEVC. The new standard was named Versatile Video Coding (VVC), and JVET was renamed the Joint Video Expert Team.

[0077] In one example of AV1 directional intra prediction, VP9 can support eight directional modes corresponding to angles from 45 degrees to 207 degrees. To take advantage of the more diverse spatial redundancy in directional textures such as AV1, directional intra modes are expanded to a finer set of angles. The original eight directional angles are slightly modified to create nominal angles, which are named V_PRED, H_PRED, D45_PRED, D135_PRED, D113_PRED, D157_PRED, D203_PRED, and D67_PRED, as shown in Figure 4. For each nominal angle, it can have seven finer angles. Therefore, AV1 has a total of 56 directional angles. The predicted angle can be expressed as the nominal intra angle plus an angle delta (-3 to 3 multiplied by a step size of 3 degrees). To implement AV1 directional prediction modes in a generic way, all 56 AV1 intra-prediction modes (or 56 direction angles) can be implemented using a unified directional predictor that projects each pixel to a reference sub-pixel location and interpolates the reference pixel with a two-tap bilinear filter. AV1 directional intra-prediction is also called unidirectional intra-prediction.

[0078] A lookup table (or mapping table) can be used to map each intra-prediction angle to a horizontal offset and a vertical offset between each pixel in the current block and the reference sample of the respective pixel in the current block. A mapping table (500) for AV1 can be shown in FIG. 5. As shown in FIG. 5, the table (500) includes multiple intra-prediction angles (or approximate angles) (502) corresponding to multiple offsets (504). Each of the offsets in the table (500) can be determined based on the integer value of tangent() multiplied by 64 for each intra-prediction angle. For example, an offset of 64 corresponding to an intra-prediction angle of 45° can be determined as equal to tangent(45°) multiplied by 64, where tangent(45°) is equal to 1. In another example, if the intra-prediction angle is 87°, the complement of 87° is 3°. Therefore, the offset corresponding to 87° is equal to tangent(3°) multiplied by 64, which can be 3. In some embodiments, the associated offset may be 64 for an intra-prediction angle of 45°, and the horizontal offset between each pixel in the current block and the corresponding reference pixel may be increased by 1 pixel as the row number of the respective pixel increases by 1.

[0079] Chroma from Luma (CfL) is a chroma-only intra predictor that models chroma pixels as linear functions of simultaneously reconstructed luma pixels. The CfL prediction of a block's chroma components can be expressed as follows: CfL(α)=L AC +DC formula (1) where L ACwhere α represents the AC contribution of the luma component of the block, α represents a parameter of the linear model, and DC represents the DC contribution of the chroma component. In one example, the reconstructed luma pixels can be subsampled to the chroma resolution and then averaged to form the AC contribution. To approximate the chroma AC component from the AC contribution, instead of requiring the decoder to calculate a scaling parameter, as in some related examples, AV1 CfL can determine the parameter α based on the original chroma pixels and signal the original chroma pixels in the bitstream. This can reduce decoder complexity and enable more accurate prediction. Regarding the DC contribution of the chroma component, the DC contribution can be calculated using intra DC mode. Intra DC mode is suitable for most chroma content and may have a mature, fast implementation.

[0080] Multi-reference line selection for intra prediction (also called multi-reference line prediction (MRLP)) has been proposed to use more distant reference lines for intra prediction, and an encoder can determine and signal which reference line to use to generate an intra predictor. For example, a reference line index may be signaled to indicate which reference line is applied. At the decoder side, after parsing the reference line index, an intra prediction of the current block may be generated using the reconstructed samples in the reference line indicated by the reference index. The reference line index may be signaled at the coded block level, and one of multiple reference lines may be used for intra prediction of a coded block accordingly. In some embodiments, MRLS may be applied to the luma component of a block but not to the chroma components of the block. An exemplary MRLS may be shown in FIG. 6. As shown in FIG. 6, four reference lines (or candidate reference lines) 1 to 4 may be available for intra prediction for a coded block (602). One of the four candidate reference lines may be selected to intra predict the coded block (602). An intra prediction of the coded block (602) may be generated using the reconstructed samples in the selected reference line.

[0081] Related standards such as CWG-B056 may provide an intra bi-prediction (IBP) scheme. IBP (also known as bidirectional intra prediction) can determine two reference pixels along a prediction direction, and the two reference pixels can be combined to realize a directional predictor. IBP can be applied to a directional mode (or directional intra prediction mode) within a predefined range, such as a range smaller than 90 degrees or larger than 180 degrees. In the case of a directional mode, when IBP is applied, two reference pixels along the direction or directional mode are weighted and combined to realize a directional predictor. FIG. 7 shows a first example of IBP (700), and FIG. 8 shows a second example of IBP (800). In both the first and second examples, a prediction direction from A (or reference sample A) to B (or reference sample B) on a reference line (e.g., (702) or (802)) is provided. A prediction (denoted as pred(x,y)) of a pixel (x,y) in a block (e.g., (704) or (804)) may be generated by a weighted combination of two predictors A and B. The prediction pred(x,y) may be shown in equation (2) as follows: pred(x, y)=w×A+(1-w)×B Equation (2) where w is a weighting factor, and A and B can be derived based on a directional prediction process such as AV1 (or AV2), which includes fractional pixel reference interpolation.

[0082] In a related example, intra bi-prediction may be applied when the directionality mode is less than 90 degrees or greater than 180 degrees. However, applying IBP in angle ranges less than 90 degrees or greater than 180 degrees may not be optimal for video content with sharp edges, such as screen content.

[0083] Furthermore, in the relevant example, the same intra-prediction angle is provided for all candidate reference lines. However, providing different intra-prediction angles for different reference lines gives the encoder more options for determining the directional predictor.

[0084] In this disclosure, the proposed methods can be used separately or combined in any order. Furthermore, if a mode is not a smooth mode or if the mode generates prediction samples according to a given prediction direction, the mode may be called a directional mode.

[0085] In the present disclosure, intra bi-prediction may be applied to a directional mode with a specific delta angle. For example, whether to apply IBP may be determined based on the value of the delta angle. If the value of the delta angle is equal to a specific value, IBP may be applied. Otherwise, unidirectional intra prediction may be applied. According to unidirectional intra prediction, a predicted value of a sample in a current block may be determined based on a reference sample in a reference line of the current block.

[0086] In one embodiment, if the directionality mode of the current block is within an angle range, for example, less than 90 degrees or greater than 180 degrees, and an adjacent reference line is used for intra prediction (e.g., the adjacent reference line includes a reference sample for intra prediction), intra bi-prediction may be applied to a directionality mode in which the delta angle is equal to a constant, such as 0 and / or ±2. Thus, in one example, IBP may be applied if the delta angle value associated with the directionality mode of the current block is 0, 2, or −2. In another example, IBP may be applied if the delta angle value associated with the directionality mode of the current block is in the range from 0 to 2 or in the range from −2 to 2. Thus, the direction angle of IBP may be equal to the sum of the directionality mode and the delta angle of the current block. As shown in FIGS. 7-8 , the predicted value of a sample in the current block may be determined based on a weighted combination of two reference samples in the reference line of the current block, where the two reference samples are indicated by the direction angle of IBP.

[0087] Otherwise, if the directionality mode is less than 90 degrees or greater than 180 degrees and adjacent reference lines are used for intra prediction, unidirectional intra prediction (or unidirectional intra prediction) may be applied to directionality modes with delta angles not equal to ±2 and / or 0. In one example, the delta angle may be included in the coded bitstream that is signaled to the decoder.

[0088] In one embodiment, if the directionality mode of the current block is less than 90 degrees or greater than 180 degrees, intra bi-prediction may be applied to the directionality mode at a specific predefined delta angle. Thus, if the delta angle is equal to the predefined delta angle (or a predefined value), IBP may be applied. The predefined delta angle may be signaled at the sequence level, frame level, slice level, or other appropriate high-level syntax. In one example, the predefined delta angle may be one even degree from multiple even degrees. For example, the predefined delta angle may be one of 2 degrees, 6 degrees, −2 degrees, and −6 degrees.

[0089] In one embodiment, IBP may be applied to a subset of directional intra-prediction modes, where directional intra-prediction modes may be associated with prediction angles less than 90 degrees or greater than 180 degrees. In one example, IBP may be applied to intra-prediction modes with even (or odd) index values. For example, for intra-prediction angles less than 90 degrees and greater than 180 degrees, the intra-prediction mode index for each intra-prediction angle may be represented as mode_index. Thus, IBP may be applied when (mode_index&1) is 0, or IBP may be applied when (mode_index&1) is 1.

[0090] In one embodiment, if the directionality mode of the current block is less than 90 degrees or greater than 180 degrees and adjacent reference lines are used for intra prediction, IBP may be applied with a specific delta angle. For example, if the delta angle associated with the current block is equal to a specific (or predefined) delta angle, the current directionality mode is less than 90 degrees or greater than 180 degrees, and adjacent reference lines are used for intra prediction, IBP may be applied to the current block.

[0091] In one embodiment, the delta angle determination mode may be signaled as on or off. The delta angle determination mode indicates whether intra bi-prediction can be applied to a directional mode with a specific delta angle, or whether intra bi-prediction can be applied to all angles (or directional angles) less than 90 degrees or greater than 180 degrees. The delta angle determination mode may be signaled by a high-level syntax such as a sequence parameter set (SPS), a picture parameter set (PPS), a frame header, a slice header, or a tile header. If the delta angle determination mode is on, an IBP may be applied based on the specific delta angle.

[0092] In one embodiment, a predefined mapping table from delta angles to IBP tolerance values ​​may be applied. The mapping table may include the directionality mode (or candidate directionality modes) of the current block and the delta angles (or predefined delta angles) corresponding to the directionality modes. Each of the directionality modes of the current block may correspond to a respective predefined delta angle. If the delta angle received from the coded bitstream is equal to the predefined delta angle, IBP may be applied.

[0093] In one embodiment, if the directionality mode of the current block is less than 90 degrees or greater than 180 degrees and neighboring reference lines are used for intra prediction (e.g., the neighboring reference lines include intra prediction reference samples), intra bi-prediction may be applied based on the intra prediction modes of neighboring blocks of the current block. In one example, the neighboring blocks may include an upper neighboring block, a left neighboring block, a top neighboring block, a bottom-left neighboring block, etc.

[0094] In one example, intra bidirectional prediction may be applied when at least one (or two) neighboring blocks are coded as a non-directional intra prediction mode, adjacent reference lines are used for intra prediction, and the directional mode of the current block is less than 90 degrees or greater than 180 degrees.

[0095] In one example, if none of the neighboring blocks are coded as a non-directional intra-prediction mode (e.g., each of the neighboring blocks is coded as a directional intra-mode) and an adjacent reference line is used for intra-prediction, unidirectional intra-prediction is applied when the directional mode of the current block is less than 90 degrees or greater than 180 degrees.

[0096] In this disclosure, different angle-to-offset mapping tables may be used for different reference lines, and therefore different intra-prediction angles may be provided for different reference lines.

[0097] In one embodiment, one angle-to-offset mapping table (e.g., table (500) of FIG. 5) can be used for adjacent reference lines, and another angle-to-offset mapping table can be used for non-adjacent reference lines. In one example, as shown in FIG. 6, the adjacent reference line can be reference line 0, and the non-adjacent reference line can be one of reference lines 1-3. In one embodiment, the angle-to-offset mapping table can include offset values ​​corresponding to two or more entries of direction angles associated with different reference lines. An exemplary angle-to-offset mapping table including two entries of direction angles associated with two reference lines can be shown in Table 1. [Table 1] As shown in Table 1, the second column may include candidate direction angles 2, 6, and 10 of the current block associated with reference line 0. The third column may include candidate direction angles 1, 5, and 9 of the current block associated with reference line 1. The first column of Table 1 may include offset values ​​(or delta angles) corresponding to the candidate direction angles in the first and second columns. An intra-prediction angle may be determined as the sum of the candidate direction angles and the corresponding offset values. Thus, as shown in Table 1, different intra-prediction angles may be provided for different reference lines.

[0098] In one embodiment, the offset value of the nominal angle (also called the base angle, as in FIG. 5 ) may be the same in the angle-to-offset mapping table for different reference lines. The base angle may be the candidate direction angle of the current block associated with different reference lines. For example, as shown in Table 1, the current block may have nominal angles (or candidate direction angles) 2, 6, and 10 associated with reference line 0 and nominal angles 1, 5, and 9 associated with reference line 1. The nominal angle 2 of reference line 0 and the nominal angle 1 of reference line 1 may have the same offset value of 3.

[0099] In one embodiment, the difference between offset values ​​for direction angles of 45 degrees or greater in different lookup tables may be within a range such as [offset-D, offset+D]. The offset may be an offset value corresponding to the angle (or direction angle) of an adjacent reference line (e.g., reference line 0 in FIG. 6), and D may be a positive integer such as 1, 2, 3, or 4. For example, as shown in Table 1, the offset may be 3, which corresponds to candidate direction angle 2 of reference line 0 (e.g., an adjacent reference line), and D may be 4. Thus, the range may be [-1, 7]. As an example, the difference between any two values ​​in each row of the lookup table may be within a certain range. For example, as shown in the first row of Table 1, the difference between 3 and 2, the difference between 3 and 1, and the difference between 2 and 1 may be within a certain range.

[0100] In one embodiment, for a chroma block, a neighboring reference line may be used for intra prediction, but the reference line index associated with the co-located luma block may be used to determine the angle-to-offset table for the chroma block. For example, a chroma block may use reference line 0 (e.g., a neighboring reference line) for intra prediction. However, the offset value may be determined based on the angle-to-offset table for reference line 2, which is applied to intra predict the luma block.

[0101] 9 shows a flowchart outlining a process (900) according to one embodiment of the present invention. The process (900) may be used in a video decoder. In various embodiments, the process (900) is performed by a processing circuit, such as a processing circuit that performs the functions of the video decoder (110), a processing circuit that performs the functions of the video decoder (210), or the like. In some embodiments, the process (900) is implemented with software instructions, and thus, the processing circuit performs the process (900) when it executes the software instructions. The process begins at (S901) and proceeds to (S910).

[0102] In step (S910), coded information of a current block and neighboring blocks of the current block is received from a coded video bitstream, and the current block is predicted in an intra-directional mode.

[0103] In step (S920), it is determined that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees.

[0104] In step (S930), it is determined whether the delta angle associated with the current block is a predefined delta angle, depending on whether the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees.

[0105] In step (S940), in response to the delta angle associated with the current block not being the predefined delta angle, unidirectional intra prediction is applied to the current block instead of bidirectional intra prediction.

[0106] In step (S950), samples of the current block are reconstructed based on neighboring reference samples on the reference line determined according to unidirectional intra prediction. The unidirectional intra prediction is applied when (i) the intra directionality mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees, and (ii) the delta angle associated with the current block is not a predefined delta angle.

[0107] In some embodiments, bidirectional intra prediction is determined to be applied to the current block based on (iii) a delta angle, which is a predefined delta angle, and (iv) a reference line including reference samples for intra prediction, the reference line including a reference sample row adjacent to and above the current block and a reference sample column adjacent to and to the left of the current block.

[0108] In one example, the predefined delta angle is one of 0 degrees, 2 degrees, and -2 degrees.

[0109] In one example, the predefined delta angle is included in one of a first range from -2 to 0 and a second range from 0 to 2.

[0110] In one embodiment, the samples of the current block are reconstructed based on two adjacent reference samples selected from a reference line based on the direction angle indicated by bidirectional intra prediction.

[0111] In some embodiments, the direction angle indicated by bidirectional intra prediction is equal to the sum of the delta angle and the direction angle indicated by the intra directionality mode of the current block.

[0112] In one example, the angle associated with the intra-directional mode of the current block is within a subset of the angle range less than 90 degrees and greater than 180 degrees.

[0113] As an example, the predefined delta angle is one of -9 degrees, -6 degrees, -3 degrees, 0 degrees, 3 degrees, 6 degrees, and 9 degrees.

[0114] In one example, each angle in the angle range has a respective index value, and each angle in a subset of the angle range has one of an even index value and an odd index value.

[0115] In some embodiments, the predefined delta angle is obtained based on a predefined mapping table that indicates a correlation between the predefined delta angle of the candidate and the intra-directivity mode of the candidate for the current block.

[0116] In one example, it is determined that bidirectional intra prediction is applied to the current block based on the prediction mode of at least one of the neighboring blocks being a non-directional mode.

[0117] In one example, the predefined delta angle is included in information coded at one of the sequence level, the frame level, or the slice level.

[0118] The process then proceeds to (S999) and ends.

[0119] The process 900 may be adapted as appropriate. Step(s) within the process 900 may be modified and / or omitted. Additional step(s) may be added. Any suitable order of implementation may be used.

[0120] 10 shows a flowchart outlining a process (1000) according to one embodiment of the present disclosure. The process (1000) may be used in a video encoder. In various embodiments, the process (1000) is performed by a processing circuit, such as a processing circuit that performs the functions of the video encoder (103), a processing circuit that performs the functions of the video encoder (303), or the like. In some embodiments, the process (1000) is implemented with software instructions, and thus, the processing circuit performs the process (1000) when it executes the software instructions. The process begins at (S1001) and proceeds to (S1010).

[0121] In step S1010, a delta angle is determined to indicate whether the current block is in intra bi-prediction mode. The intra bi-prediction mode indicates that the samples of the current block are predicted based on two reference samples in a reference line. The reference line includes a reference sample row adjacent to and above the current block and a reference sample column adjacent to and to the left of the current block.

[0122] In (S1020), an intra bi-prediction mode to be applied to the current block is determined based on (i) the delta angle being equal to a threshold value and (ii) one of the prediction modes of at least one of the neighboring blocks of the current block.

[0123] In (S1030), a predicted value of a sample of the current block is encoded, where the predicted value is determined based on two reference samples in a reference line according to an intra bi-prediction mode.

[0124] The process then proceeds to (S1099) and ends.

[0125] The process 1000 may be adapted as appropriate. Step(s) within the process 1000 may be modified and / or omitted. Additional step(s) may be added. Any suitable order of implementation may be used.

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

[0127] Computer software can be coded using any suitable machine code or computer language that may be subjected to assembly, compilation, linking, or similar mechanisms to generate 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, microcode execution, etc.

[0128] 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.

[0129] 11 are exemplary in nature and are not intended to suggest any limitation regarding 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 any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of computer system 1100.

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

[0131] The input human interface devices may include one or more (only one of each shown) of a keyboard (1101), a mouse (1102), a trackpad (1103), a touchscreen (1110), a data glove (not shown), a joystick (1105), a microphone (1106), a scanner (1107), and a camera (1108).

[0132] The computer system (1100) 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, or smell / taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback via a touchscreen (1110), data gloves (not shown), or joystick (1105), although haptic feedback devices that do not function as input devices may also be present), audio output devices (such as speakers (1109), headphones (not shown)), visual output devices (such as screens (1110), including CRT screens, LCD screens, plasma screens, and OLED screens, each with or without touchscreen input capabilities and with or without haptic feedback capabilities, some of which may be capable of outputting two-dimensional visual output or output in more than three dimensions by means of stereoscopic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

[0133] The computer system (1100) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM / RW (1120), CD / DVD or similar media (1121), thumb drives (1122), removable hard drives or solid state drives (1123), conventional magnetic media such as tape and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).

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

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

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

[0137] The cores (1140) may include one or more central processing units (CPUs) (1141), graphics processing units (GPUs) (1142), specialized programmable processing units (1143) in the form of field programmable gate arrays (FPGAs), task-specific hardware accelerators (1144), graphics adapters (1150), etc. These devices may be connected via a system bus (1148), along with read-only memory (ROM) (1145), random access memory (1146), and internal mass storage (1147) such as an internal hard drive or SSD that is not user-accessible. In some computer systems, the system bus (1148) may be accessible in the form of one or more physical plugs to allow expansion with one or more additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (1148) or via a peripheral bus (1149). In one example, a screen (1110) may be connected to the graphics adapter (1150). Peripheral bus architectures include PCI, USB, etc.

[0138] The CPU (1141), GPU (1142), FPGA (1143), and accelerator (1144) are capable of executing specific instructions that, in combination, may constitute the aforementioned computer code. The computer code may be stored in ROM (1145) or RAM (1146). Temporary data may also be stored in RAM (1146), while persistent data may be stored, for example, in internal mass storage (1147). Rapid storage and retrieval from any of the memory devices may be enabled through the use of cache memory, which may be closely associated with one or more of the CPU (1141), GPU (1142), mass storage (1147), ROM (1145), RAM (1146), etc.

[0139] The computer-readable medium may include computer code for performing various computer-implemented operations, and the medium 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.

[0140] By way of example and not limitation, the architecture (1100), and specifically a computer system having the core (1140), can provide functionality as a result of processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage as introduced above, as well as specific storage of the core (1140) that is non-transitory in nature, such as the core's internal mass storage (1147) or ROM (1145). Software implementing various embodiments of the present disclosure can be stored in such devices and executed by the core (1140). The computer-readable media can include one or more memory devices or chips, depending on particular needs. The software can cause the core (1140) and specifically the processors therein (including CPUs, GPUs, FPGAs, etc.) to perform particular processes or portions of particular processes described herein, including defining data structures stored in RAM (1146) and modifying such data structures according to software-defined processes. Additionally or alternatively, a computer system may provide functionality as a result of logic (e.g., accelerator (1144)) hardwired or otherwise embodied in circuitry, which may operate in place of or in conjunction with software to perform particular processes or portions of particular processes described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media include circuitry (such as an integrated circuit (IC)) that stores software for execution, circuitry that embodies logic for execution, or both. The present disclosure encompasses any appropriate combination of hardware and software.

[0141] The use of "at least one of" or "one of" in the disclosure is intended to include any one or combination of the listed elements. For example, reference to at least one of A, B, or C; at least one of A, B, and C; at least one of A, B, and / or C; and at least one of A through C is intended to include A only, B only, C only, or any combination thereof. Reference to one of A or B, and one of A and B is intended to include A, or B, or (A and B). The use of "one of" does not exclude any combination of the listed elements, where applicable, such as when the elements are not mutually exclusive.

[0142] 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 can 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.

Claims

1. 1. A method of video decoding performed in a video decoder, comprising: receiving coded information of a current block and neighboring blocks of the current block predicted in an intra-directional mode from a coded video bitstream; determining that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees; In response to the intra-directional mode of the current block being associated with an angle that is one of less than 90 degrees and greater than 180 degrees, determining whether a delta angle associated with the current block is a predefined delta angle; applying unidirectional intra prediction instead of bidirectional intra prediction to the current block in response to the delta angle associated with the current block not being the predefined delta angle; (i) reconstructing samples of the current block based on neighboring reference samples on a reference line determined according to the unidirectional intra prediction applied when the intra directionality mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees, and (ii) the delta angle associated with the current block is not the predefined delta angle; A method comprising:

2. (iii) determining that the bidirectional intra prediction is applied to the current block based on the delta angle, which is the predefined delta angle, and (iv) the reference line including reference samples for intra prediction, the reference line including a reference sample row adjacent to and above the current block and a reference sample column adjacent to and to the left of the current block; The method of claim 1.

3. The method of claim 1 , wherein the predefined delta angle is one of 0 degrees, 2 degrees, and −2 degrees.

4. The method of claim 1 , wherein the predefined delta angle is included in one of a first range from −2 to 0 and a second range from 0 to 2.

5. The reconstructing step comprises: reconstructing the samples of the current block based on two adjacent reference samples selected from the reference line based on a direction angle indicated by the bidirectional intra prediction; The method of claim 2 further comprising:

6. The method of claim 5 , wherein the direction angle indicated by the bidirectional intra prediction is equal to the sum of the delta angle and the direction angle indicated by the intra directionality mode of the current block.

7. The method of claim 2 , wherein the angle associated with the intra-directional mode of the current block is within a subset of an angle range less than 90 degrees and greater than 180 degrees.

8. The method of claim 1 , wherein the predefined delta angle is one of −9 degrees, −6 degrees, −3 degrees, 0 degrees, 3 degrees, 6 degrees, and 9 degrees.

9. each angle within the angle range has a respective index value; The method of claim 7 , wherein each angle in the subset of the angle range has one of an even index value and an odd index value.

10. 2. The method of claim 1, wherein the predefined delta angle is obtained based on a predefined mapping table indicating a correlation between candidate predefined delta angles and candidate intra-directivity modes of the current block.

11. determining that the bidirectional intra prediction is applied to the current block based on a prediction mode of at least one of the neighboring blocks being a non-directional mode; The method of claim 1 further comprising:

12. The method of claim 1 , wherein the predefined delta angle is included in the coded information at one of a sequence level, a frame level, or a slice level.

13. A video decoding device, comprising: processing circuitry; The processing circuitry receiving coded information of a current block predicted in an intra-directional mode and neighboring blocks of the current block from a coded video bitstream; determining that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees; In response to the intra-directional mode of the current block being associated with an angle that is one of less than 90 degrees and greater than 180 degrees, determining whether a delta angle associated with the current block is a predefined delta angle; applying unidirectional intra prediction to the current block instead of bidirectional intra prediction in response to the delta angle associated with the current block not being the predefined delta angle; (i) reconstructing samples of the current block based on neighboring reference samples on a reference line determined according to the unidirectional intra prediction applied when the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees, and (ii) the delta angle associated with the current block is not the predefined delta angle. Device.

14. The processing circuitry 14. The apparatus of claim 13, further configured to determine that the bidirectional intra prediction is applied to the current block based on (iii) the delta angle, which is the predefined delta angle, and (iv) the reference line including reference samples for intra prediction, the reference line including a reference sample row adjacent above and above the current block and a reference sample column adjacent to a left side of the current block.

15. 14. The apparatus of claim 13, wherein the predefined delta angle is one of 0 degrees, 2 degrees, and −2 degrees.

16. 14. The apparatus of claim 13, wherein the predefined delta angle is included in one of a first range from -2 to 0 and a second range from 0 to 2.

17. The processing circuitry reconstructing the samples of the current block based on two adjacent reference samples selected from the reference line based on a direction angle indicated by the bidirectional intra prediction; The apparatus of claim 14 further configured to:

18. The apparatus of claim 17 , wherein the direction angle indicated by the bidirectional intra prediction is equal to the sum of the delta angle and the direction angle indicated by the intra directionality mode of the current block.

19. The apparatus of claim 14 , wherein the angle associated with the intra-directional mode of the current block is within a subset of an angle range less than 90 degrees and greater than 180 degrees.

20. When executed by at least one processor, the method causes the at least one processor to: receiving coded information of a current block and neighboring blocks of the current block predicted in an intra-directional mode from a coded video bitstream; determining that the intra-directional mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees; In response to the intra-directional mode of the current block being associated with an angle that is one of less than 90 degrees and greater than 180 degrees, determining whether a delta angle associated with the current block is a predefined delta angle; applying unidirectional intra prediction instead of bidirectional intra prediction to the current block in response to the delta angle associated with the current block not being the predefined delta angle; (i) reconstructing samples of the current block based on neighboring reference samples on a reference line determined according to the unidirectional intra prediction applied when the intra directionality mode of the current block is associated with an angle that is one of less than 90 degrees and greater than 180 degrees, and (ii) the delta angle associated with the current block is not the predefined delta angle; A non-transitory computer-readable storage medium storing instructions for causing a computer to execute the method.

Citation Information

Patent Citations

  • Intra prediction method and device in image coding system

    US20180295384A1

  • Video signal encoding / decoding method and device therefor

    US20210360240A1