Method, apparatus and medium relating to angular intra prediction

The method improves video coding efficiency by using angle-offset mapping and multiple reference lines with intra bi-prediction to enhance angular intra prediction, addressing challenges in complex video content compression.

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

Patent Information

Application Number
JP2025539654
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-28
Filing Date
2023-06-29
Publication Date
2026-01-16

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in effectively utilizing angular intra prediction to enhance compression efficiency, particularly in handling directional textures and complex video content with sharp edges.

Method used

The proposed method involves using angle-offset mapping tables to determine reference samples for video blocks, employing multiple reference lines for intra prediction, and applying intra bi-prediction based on direction modes to improve angular intra prediction accuracy and compression efficiency.

Benefits of technology

This approach enhances video coding efficiency by improving prediction accuracy and reducing data volume, particularly for complex video content with sharp edges, while adhering to standards like AV1 and VVC.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026501692000001_ABST
    Figure 2026501692000001_ABST
Patent Text Reader

Abstract

Encoded information of a current block and a plurality of reference lines of the current block is received. A first offset value is determined in a first mapping table and associated with a first reference line of the plurality of reference lines adjacent to the current block. A second offset value is determined in a second mapping table and associated with a second reference line of the plurality of reference lines adjacent to the first reference line. Based on the first offset value, first reference samples for samples of the current block are determined from the first reference line. Based on the second offset value, second reference samples for samples of the current block are determined from the second reference line. Based on one of the first reference sample and the second reference sample, samples of the current block are reconstructed.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Incorporation by Reference This application claims the benefit of priority to U.S. Patent Application No. 18 / 215,321, entitled "Angular Intra Prediction," filed June 28, 2023, which in turn claims the benefit of priority to U.S. Provisional Application No. 63 / 449,281, entitled "Angular Intra Prediction," filed March 1, 2023. The disclosures of the prior applications are incorporated herein by reference in their entireties.

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

[0003] The background discussion provided herein is intended to generally set forth the context of the present disclosure. The work of the inventors identified in this application, to the extent that their work is described in this background section, as well as aspects of this specification that may not qualify as prior art as of the filing date, are not admitted expressly or impliedly as prior art to the present disclosure.

[0004] Image / video compression can help transmit image / video files across different devices, storage, and networks with minimal quality degradation. In some examples, video codec technology can compress video based on spatial and temporal redundancy. In one example, a video codec 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. In another example, a video codec can use a technique called inter-prediction, which can compress images based on temporal redundancy. For example, inter-prediction can predict samples in the current picture from a previously reconstructed picture using motion compensation. Motion compensation is commonly indicated by a motion vector (MV). 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, the apparatus for video decoding includes a receiving circuit and a processing circuit.

[0006] According to an aspect of the present disclosure, a video decoding method is provided that is executed by a video decoder. In the method, coded information for a current block and a plurality of reference lines for the current block is received from a coded video bitstream. Each of the plurality of reference lines includes a respective row of reference samples above a top edge of the current block and a respective column of reference samples to the left of the current block. A first offset value is determined in a first angle-offset mapping table. The first offset value is associated with a first orientation mode of the current block and a first reference line among the plurality of reference lines adjacent to the current block. A second offset value is determined in a second angle-offset mapping table different from the first angle-offset mapping table. The second offset value is associated with a second orientation mode of the current block and a second reference line among the plurality of reference lines adjacent to the first reference line. Based on the first offset value, a first reference sample for a sample of the current block is determined from the first reference line. Based on the second offset value, a second reference sample for the sample of the current block is determined from the second reference line. Based on one of the first reference sample and the second reference sample, the sample of the current block is reconstructed.

[0007] In one example, the first angle-offset mapping table indicates a correlation between offset values ​​associated with the current block and the first reference line and candidate direction modes, and the second angle-offset mapping table indicates a correlation between offset values ​​associated with the current block and the second reference line and candidate direction modes.

[0008] In one example, the first reference sample is determined from the reference sample of the first reference line based on a first direction angle, where the first direction angle is equal to the sum of a first direction mode of the current block and a first offset value. The second reference sample is determined from the reference sample of the second reference line based on a second direction angle, where the second direction angle is equal to the sum of a second direction mode of the current block and a second offset value.

[0009] In one example, based on the first direction mode and the second direction mode of the current block being greater than 45 degrees, the difference between the first offset value and the second offset value is within a preset range.

[0010] In some embodiments, the first direction mode associated with the current block and the first reference line and the second direction mode associated with the current block and the second reference line correspond to the same offset value.

[0011] In an embodiment, the first difference between the first direction mode and the same offset value, the second difference between the second direction mode and the same offset value, and the third difference between the first direction mode and the second direction mode are within a preset range.

[0012] In some embodiments, the offset values ​​for the chroma components of the current block are determined based on a reference line of the plurality of reference lines associated with the luma component of the current block.

[0013] In one example, the predefined range is greater than or equal to a first offset value minus a constant value and less than or equal to the first offset value plus the constant value.

[0014] In one example, the constant value is one of 1, 2, 3, or 4.

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

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

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

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

[0019] [Figure 2] FIG. 2 is a schematic diagram of an exemplary block diagram of a decoder.

[0020] [Figure 3] FIG. 2 is a schematic diagram of an exemplary block diagram of an encoder.

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

[0022] [Figure 5] FIG. 1 is a schematic diagram of an example angle-offset lookup table according to some embodiments of the present disclosure.

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

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

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

[0026] [Figure 9]10 is a flowchart outlining a decoding process according to some embodiments of the present disclosure.

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

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

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

[0030] The video processing system (100) includes a capture subsystem (113), which 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 stream of video pictures (102) includes samples captured by the digital camera. The stream of video pictures (102), shown in bold to emphasize its larger data volume compared to the encoded video data (104) (or coded video bitstream), may be processed by an electronic device (120) including 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 more detail below. The encoded video data (104) (or encoded video bitstream), shown as a thin line to emphasize its small amount of data compared to the stream of video pictures (102), can 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 retrieve copies (107) and (109) of the encoded video data (104). The client subsystem (106) can include a video decoder (110), for example, within the electronic device (130). The video decoder (110) decodes the incoming copy (107) of the encoded video data and generates an outgoing 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 some video coding / compression standard. Examples of these standards include ITU-T Recommendation H.265. In one example, a video coding standard under development is informally known as Universal Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

[0031] 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 include a video encoder (not shown).

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

[0033] The receiver (231) can receive one or more coded video sequences to be decoded by the video decoder (210). In some embodiments, 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 can be received from a channel (201), which can be a hardware / software link to a storage device that stores the encoded video data. The receiver (231) can receive the encoded video data along with other data, such as coded audio data and / or auxiliary data streams, which can be forwarded to respective usage entities (not shown). The receiver (231) can separate the coded video sequences from other data. To address network jitter, a buffer memory (215) can be coupled between the receiver (231) and the entropy decoder / parser (220) (hereinafter, "parser (220)"). In some applications, the buffer memory (215) is part of the video decoder (210). In other applications, the buffer memory may be external to the video decoder (210) (not shown). In still other applications, there may be a buffer memory (not shown) external to the video decoder (210), for example, to deal with network jitter, and another buffer memory (215) internal to the video decoder (210), for example, to handle playback timing. If the receiver (231) receives data from a storage / forwarding device with sufficient bandwidth and controllability or from an isosynchronous network, the buffer memory (215) may be unnecessary or may be small. For use with best-effort packet networks such as the Internet, the buffer memory (215) may be necessary, may be relatively large, may be advantageously adaptively sized, and may be implemented, at least in part, in an operating system or similar element (not shown) external to the video decoder (210).

[0034] The video decoder (210) may include a parser (220) that reconstructs symbols (221) from the coded video sequence. These symbol categories, as shown in FIG. 2, include information used to manage the operation of the video decoder (210) and, potentially, 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). The control information for the rendering device may be in the form of a Supplemental Enhancement Information (SEI) message or a Video Usability Information (VUI) parameter set fragment (not shown). The parser (220) can parse and entropy decode the received coded video sequence. The coding of the coded video sequence may follow a variety of video coding techniques or standards, including variable-length coding, Huffman coding, arithmetic coding with or without context sensitivity, and the like. The parser (220) can extract from the coded video sequence a set of subgroup parameters for at least one subgroup of pixels in the video decoder based on at least one parameter corresponding to the group. The subgroup can include a group of pictures (GOP), a picture, a tile, a slice, a macroblock, a coding unit (CU), a block, a transform unit (TU), a prediction unit (PU), etc. The parser (220) can also extract information from the coded video sequence, such as transform coefficients, quantizer parameter values, and motion vectors.

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

[0036] The reconstruction of the symbols (221) can involve several different units, depending on the type of coded video picture or part thereof (e.g., inter / intra picture, inter / intra block, etc.) and other factors. Which units are involved and how can 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 following units is not shown for clarity.

[0037] In addition to the functional blocks already mentioned, the video decoder (210) can be conceptually subdivided into several functional units, as described below. In a practical 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.

[0038] The first unit is a scaler / inverse transform unit (251), which receives quantized transform coefficients and control information from the parser (220) as symbols (221), including which transform to use, block size, quantization factor, quantization scaling matrix, etc. The scaler / inverse transform unit (251) can output blocks containing sample values ​​that can be input to an aggregator (255).

[0039] In some cases, the output samples of the scaler / inverse transform unit (251) may belong 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 an 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 current picture and / or a fully reconstructed current picture. The aggregator (255) may add, 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).

[0040] In other cases, the output samples of the scaler / inverse transform unit (251) may relate to an inter-coded, 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) associated with the block, these samples may be added by an aggregator (255) to the output of the scaler / 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 the prediction samples may be controlled by motion vectors, which are available to the motion-compensated prediction unit (253) in the form of symbols (221), which may have, for example, X, Y, and reference picture components. Motion compensation may 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, and the like.

[0041] The output samples of the aggregator (255) can be subjected to various loop filtering techniques in a loop filtering 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 respond to meta-information obtained during decoding of previous portions (in decoding order) of the coded picture or coded video sequence, and can also respond to previously reconstructed, loop-filtered sample values.

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

[0043] Certain coded pictures, once fully reconstructed, can be used as reference pictures for future prediction. For example, once the coded picture corresponding to the 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 a new current picture buffer can be reallocated before starting reconstruction of the next coded picture.

[0044] The video decoder (210) can perform decoding operations according to a given video compression technology or standard, such as ITU-T Recommendation H.265. The coded video sequence can conform to the syntax specified by the video compression technology or standard being used. This means that the coded video sequence conforms to both the syntax of the video compression technology or standard and the profile described in the video compression technology or standard. Specifically, the profile can select certain tools from all tools available in the video compression technology or standard as the only tools available under that profile. Also required for compliance is that the complexity of the coded video sequence must be within a range defined by the level of the video compression technology or standard. In some cases, the level constrains 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 can, 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.

[0045] In some embodiments, the receiver (231) can 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 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) improvement layers, redundant slices, redundant pictures, forward error correction codes, etc.

[0046] 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 transmission circuit). The video encoder (303) can be used in place of the video encoder (103) in the example of FIG. 1.

[0047] The video encoder (303) can receive video samples from a video source (301) (which is not part of the electronic device (320) in the example of Figure 3) that can capture video images to be encoded by the video encoder (303). In another example, the video source (301) is part of the electronic device (320).

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

[0049] According to one embodiment, the video encoder (303) may encode 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. Enforcing 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. Coupling is not shown for clarity. Parameters set by the controller (350) may include rate control-related parameters (e.g., picture skip, quantizer, lambda value for rate-distortion optimization techniques), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (350) may be configured with other appropriate functions for optimizing the video encoder (303) for a particular system design.

[0050] In some embodiments, the video encoder (303) is configured to operate in an encoding loop. As a very simplified explanation, in one example, the encoding 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 encoded 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 generated by a (remote) decoder. The reconstructed sample stream (sample data) is input to a reference picture memory (334). Because decoding of the symbol stream produces bit-accurate results independent of the decoder location (local or remote), the contents of the reference picture memory (334) are also bit-accurate between the local and remote encoders. In other words, the predictive portion of the encoder "sees" the exact same sample values ​​as the decoder "sees" when using prediction during decoding. This basic principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained, eg, due to channel errors) is also used in several related techniques.

[0051] The operation of the "local" decoder (333) may be the same as the operation of a "remote" decoder, such as the video decoder (210) already described in detail in connection with Figure 2. However, with brief reference also to Figure 2, because symbols are available and the encoding / decoding of symbols into an encoded video sequence by the entropy coder (345) and parser (220) may 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).

[0052] In some embodiments, decoder technology, with the exception of parsing / entropy decoding, present in a decoder is present in the same or substantially identical functional form in the corresponding encoder. Thus, the disclosed subject matter focuses on the operation of the decoder. A description of the encoder technology can be omitted, as it is the inverse of the decoder technology, which is comprehensively described. In certain areas, more detailed descriptions are provided below.

[0053] In operation, in some examples, the source coder (330) may perform motion-compensated predictive coding, which predictively codes an input picture with reference to one or more previously coded pictures from a 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 pictures that may be selected as predictive references for the input picture.

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

[0055] The predictor (335) can perform the prediction search for the coding engine (332). That is, for a new picture to be coded, the predictor (335) can search the reference picture memory (334) for sample data (as candidate reference pixel blocks) or types of metadata, such as reference picture motion vectors, block shapes, etc., that may serve as suitable prediction references for the new picture. The predictor (335) can operate on a sample block or 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 can have prediction references drawn from multiple reference pictures stored in the reference picture memory (334).

[0056] The controller (350) can manage the coding operations of the source coder (330), including, for example, setting the parameters and subgroup parameters used to encode the video data.

[0057] The output of all the functional units described above 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.

[0058] The transmitter (340) can buffer the coded video sequence produced by the entropy coder (345) and prepare it for transmission over a communication channel (360), which can be a hardware or software link to a storage device that stores the encoded video data. The transmitter (340) can merge the coded video data from the video encoder (303) with other data to be transmitted, such as coded audio data and / or auxiliary data streams (sources not shown).

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

[0060] An intra picture (I picture) may be one that can be coded and decoded without using other pictures in the sequence as a source of prediction. Some video encoders allow various types of intra pictures, including, for example, Independent Decoder Refresh (IDR) pictures. Those skilled in the art will recognize such variations of I pictures and their respective uses and characteristics.

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

[0062] A bidirectionally predicted picture (B picture) may be one that can be coded and decoded using intra- or inter-prediction, using at most two motion vectors and reference indices to predict the sample values ​​of each block. Similarly, a multi-predictive picture may use more than two reference pictures and associated metadata for the reconstruction of a single block.

[0063] A source picture may generally be spatially subdivided into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and 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 previously coded blocks of the same picture (spatial prediction or intra-prediction). Pixel blocks of a P picture may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference picture. Blocks of a B picture may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.

[0064] The video encoder (303) may perform encoding operations in accordance with a predetermined video encoding technique or standard, such as ITU-T Recommendation H.265. In its operations, the video encoder (303) 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 the syntax specified by the video encoding technique or standard being used.

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

[0066] Video may be captured as multiple source pictures (video pictures) in a time sequence. 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 previously coded and still buffered reference picture in the video, the block in the current picture can 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.

[0067] In some embodiments, inter-picture prediction may use a bi-prediction technique. According to the bi-prediction technique, two reference pictures, such as a first reference picture and a second reference picture, are used, both of which precede a current picture in a video 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.

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

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

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

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

[0072] AOMedia Video 1 (AV1) is an open video coding format designed for video transmission over the Internet. AV1, the successor to VP9, ​​was developed by the Alliance for Open Media (AOMedia), a consortium founded in 2015 and including semiconductor companies, video-on-demand providers, video content creators, software developers, and web browser vendors. Many of the AV1 project's components were sourced from previous research efforts by members of the coalition. Individual contributors initiated experimental technology platforms many years ago. For example, Xiph / Mozilla's Daala was released in 2010, Google's experimental VP9 evolution project VP10 was announced on September 12, 2014, and Cisco's Thor was released on August 11, 2015. Built on the VP9 codebase, AV1 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 coalition announced the release of the AV1 Bitstream Specification on March 28, 2018, along with reference, software-based encoders and decoders. Validated version 1.0.0 of the specification was released on June 25, 2018. Validated version 1.0.0, including specification errata 1, was released on January 8, 2019. The AV1 Bitstream Specification includes reference video codecs.

[0073] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) published the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (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 jointly issued a Call for Proposals (JfP) for video compression with capabilities beyond HEVC. By February 15, 2018, 22 CfP responses had been submitted for standard dynamic range (SDR), 12 for high dynamic range (HDR), and 12 for the 360 ​​video category. In April 2018, all received CfP responses were evaluated at the 122 MPEG / 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.

[0074] For example, in AV1, VP9 can support eight directional modes corresponding to angles from 45 degrees to 207 degrees. To take advantage of the greater spatial redundancy in directional textures like AV1, directional intra modes are expanded to a finer set of angles. The original eight directional angles are slightly modified to form nominal angles, 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, seven finer angles are available. Thus, AV1 has a total of 56 directional angles. The predicted angle can be represented by the nominal intra angle plus an angle delta. The angle delta is a range from -3 to 3 multiplied by a step size of 3 degrees. To implement directional prediction modes in AV1 in a general way, all 56 directional intra-prediction modes (or 56 direction angles) in AV1 can be implemented using a unified directional predictor that projects each pixel to a reference sub-pixel position and interpolates the reference pixel with a two-tap bilinear filter. Directional intra-prediction in AV1 can also be called unidirectional intra-prediction.

[0075] A lookup table (or angle-offset mapping table) can be used to map each intra-prediction angle to a horizontal and vertical offset between each pixel in the current block and the reference sample for each pixel in the current block. An exemplary angle-offset mapping table (500) in 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 an integer value of the tangent () multiplied by 64 for each intra-prediction angle. For example, the offset 64 corresponding to an intra-prediction angle of 45° can be determined as equal to the tangent of 45° multiplied by 64, where the tangent of 45° is equal to 1. In another example, if the intra-prediction angle is 87°, the complement of 87° is 3°. Thus, the offset corresponding to 87° can be equal to the tangent of 3° multiplied by 64, which may be 3. In some embodiments, the associated offset may be 64 for a 45° intra-prediction angle, and the horizontal offset between each pixel in the current block and the corresponding reference pixel may be increased by one pixel as the row number of the respective pixel increases by one.

[0076] Chroma from Luma (CfL) is a chroma-only intra predictor that models chroma pixels as linear functions of the corresponding reconstructed luma pixels. The CfL prediction for the chroma components of a block can be expressed in equation (1) as follows: CfL(α)=α×L AC +DC formula (1) where L ACrepresents 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 components. In one example, the reconstructed luma pixels can be subsampled to the chroma resolution and then the mean value can be subtracted to form the AC contribution. Instead of requiring the decoder to calculate scaling parameters to approximate the chroma AC components from the AC contributions, 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 reduces decoder complexity and allows for more accurate predictions. For the DC contributions of the chroma components, the DC contributions can be calculated using intra DC mode. Intra DC mode is suitable for most chroma content and can have mature, fast implementations.

[0077] Multiple reference line selection for intra prediction (also referred to as multiple reference line prediction (MRLP)) is 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 can be signaled to indicate which reference line is applied. At the decoder side, after parsing the reference line index, the decoder can generate an intra prediction of the current block using the reconstructed samples in the reference line indicated by the reference index. The reference line index can be signaled at the coding block level, and accordingly, one of multiple reference lines can be used for intra prediction of one coding block. In some embodiments, the MRLS can be applied to the luma component of the block and may not be applied to the chroma component of the block. An exemplary MRLS can be shown in FIG. 6. As shown in FIG. 6, for intra prediction, four reference lines (or candidate reference lines) 1 to 4 may be available for a coding block (602). One of the four candidate reference lines can be selected to intra-predict the coding block (602). The intra-prediction of the coding block (602) can be generated using reconstructed samples within the selected reference line.

[0078] Related standards such as CWG-B056 provide an intra bi-prediction (IBP) method. IBP can determine two reference pixels along a prediction direction and combine the two reference pixels to achieve a directional predictor. IBP can be applied to directional modes (or directional intra-prediction modes) within a predefined range, such as a range smaller than 90 degrees or larger than 180 degrees. For directional modes, when IBP is applied, two reference pixels along the direction or directional mode can be weighted and combined to achieve 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) along a reference line (e.g., (702) or (802)) is provided. A prediction (denoted as pred(x,y)) for a pixel (x,y) in a block (e.g., (704) or (804)) can be generated using a weighted combination of two predictors A and B. The prediction pred(x,y) can 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 interpolation for fractional pixel references.

[0079] In a related example, intra bi-prediction can be applied when the orientation 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.

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

[0081] In this disclosure, the proposed methods can be used individually 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 can be called a directional mode.

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

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

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

[0085] In one embodiment, if the direction mode of the current block is less than 90 degrees or greater than 180 degrees, intra bi-prediction can be applied to a direction mode with a certain predefined delta angle. Thus, if the delta angle is equal to the predefined delta angle (or a predefined value), IBP can be applied. The predefined delta angle can be signaled at the sequence level, frame level, slice level, or any other appropriate high-level syntax.

[0086] In some embodiments, 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 for 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.

[0087] In an embodiment, if the direction mode of the current block is less than 90 degrees or greater than 180 degrees and the neighboring reference lines are used for intra prediction, IBP can be applied together with a certain delta angle. For example, if the delta angle associated with the current block is equal to a certain (or predefined) delta angle, the current direction mode is less than 90 degrees or greater than 180 degrees, and the neighboring reference lines are used for intra prediction, IBP can be applied for the current block.

[0088] In an embodiment, the delta angle decision mode can be signaled as on or off. The delta angle decision mode indicates whether intra bi-prediction is applicable to direction modes with a certain delta angle, or whether intra bi-prediction is applicable to all angles (or direction angles) less than 90 degrees or greater than 180 degrees. The delta angle decision mode can 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 decision mode is on, IBP can be applied based on a certain delta angle.

[0089] In one embodiment, a predefined mapping table from delta angles to IBP allowance can be applied. The mapping table can include the direction modes (or candidate direction modes) of the current block and the delta angles (or predefined delta angles) corresponding to those direction modes. Each direction mode of the current block can correspond to a respective predefined delta angle. If the delta angle received from the coded bitstream is equal to the predefined delta angle, IBP can be applied.

[0090] In an embodiment, if the direction 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 can be applied based on the intra prediction modes of neighboring blocks of the current block. In one example, the neighboring blocks can include an upper neighboring block, a left neighboring block, an upper neighboring block, a lower left neighboring block, etc.

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

[0092] 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 if the directional mode of the current block is less than 90 degrees or greater than 180 degrees.

[0093] In the present disclosure, different angle-offset mapping tables may be used for different reference lines. In each angle-offset mapping table, an offset value corresponding to the direction angle associated with each reference line may be provided. The prediction angle associated with each reference line may be determined as the sum of the direction angle and the offset value corresponding to the direction angle. Thus, different intra-prediction angles may be provided for different reference lines.

[0094] In some embodiments, one angle-offset mapping table (e.g., table (500) of FIG. 5) can be used for adjacent reference lines, and a different angle-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 some embodiments, the angle-offset mapping table can include offset values ​​corresponding to two or more entries of direction angles associated with different reference lines. An exemplary angle-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 for the current block associated with reference line 0. The third column may include candidate direction angles 1, 5, and 9 for 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.

[0095] Note that Table 1 may also represent a first sub-table and a second sub-table. The first sub-table may include a first column and a second column. The second sub-table may include a first column and a third column. The first sub-table provides a correlation between a direction angle (or direction mode) and an offset value associated with a current block and reference line 0. The second sub-table provides a correlation between a direction angle (or direction mode) and an offset value associated with a current block and reference line 1.

[0096] In one embodiment, the offset value for the nominal angle (also referred to as the base angle in, e.g., FIG. 5) may be the same in the angle-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 for reference line 0 and the nominal angle 1 for reference line 1 may have the same offset value of 3.

[0097] 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]. Offset may be an offset value corresponding to an angle (or direction angle) for 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, Offset may be 3, corresponding to candidate direction angle 2 for reference line 0 (e.g., an adjacent reference line), and D may be 4. Thus, the range may be [-1, 7]. In one 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.

[0098] In one embodiment, for a chroma block, a neighboring reference line can be used for intra prediction, but the reference line index associated with the co-located luma block can be used to determine the angle-offset table for the chroma block. For example, a chroma block can use reference line 0 (e.g., a neighboring reference line) for intra prediction. However, the offset value can be determined based on the angle-offset table for reference line 2, where reference line 2 is applied for intra prediction of the luma block. Thus, based on the orientation mode (or orientation angle) of the chroma block, the offset value in the angle-offset table for reference line 2 can be determined.

[0099] 9 shows a flowchart outlining a process (900) according to one embodiment of the present disclosure. The process (900) can 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 in software instructions, such that the processing circuit performs the process (900) when the processing circuit executes the software instructions. The process begins at (S901) and proceeds to (S910).

[0100] In step S910, coded information for a current block and a plurality of reference lines for the current block is received from a coded video bitstream, each of the plurality of reference lines including a respective row of reference samples above a top edge of the current block and a respective column of reference samples to the left of the current block.

[0101] In step (S920), a first offset value is determined in a first angle-offset mapping table. The first offset value is associated with a first orientation mode of the current block and a first reference line among the plurality of reference lines adjacent to the current block. A second offset value is determined in a second angle-offset mapping table different from the first angle-offset mapping table. The second offset value is associated with a second orientation mode of the current block and a second reference line among the plurality of reference lines adjacent to the first reference line.

[0102] In step (S930), a first reference sample for the sample of the current block is determined from the first reference line based on the first offset value, and a second reference sample for the sample of the current block is determined from the second reference line based on the second offset value.

[0103] In step (S940), the samples of the current block are reconstructed based on one of the first reference sample and the second reference sample.

[0104] In one example, the first angle-offset mapping table indicates a correlation between candidate orientation modes and offset values ​​associated with the current block and the first reference line, and the second angle-offset mapping table indicates a correlation between candidate orientation modes and offset values ​​associated with the current block and the second reference line.

[0105] In one example, the first reference sample is determined from the reference sample of the first reference line based on a first direction angle, where the first direction angle is equal to the sum of a first direction mode of the current block and a first offset value. The second reference sample is determined from the reference sample of the second reference line based on a second direction angle, where the second direction angle is equal to the sum of a second direction mode of the current block and a second offset value.

[0106] In one example, based on the first direction mode and the second direction mode of the current block being greater than 45 degrees, the difference between the first offset value and the second offset value is within a preset range.

[0107] In some embodiments, the first direction mode associated with the current block and the first reference line and the second direction mode associated with the current block and the second reference line correspond to the same offset value.

[0108] In an embodiment, the first difference from the same offset value as the first direction mode, the second difference from the same offset value as the second direction mode, and the third difference between the first direction mode and the second direction mode are within a predefined range.

[0109] In some embodiments, the offset values ​​for the chroma components of the current block are determined based on a reference line of the plurality of reference lines associated with the luma component of the current block.

[0110] In one example, the predefined range is greater than or equal to a first offset value minus a constant value and less than or equal to the first offset value plus the constant value.

[0111] In one embodiment, the constant value is one of 1, 2, 3, or 4.

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

[0113] The process 900 may be adapted as appropriate. Steps in the process 900 may be modified and / or omitted. Additional steps may be added. Any suitable order of implementation may be used.

[0114] FIG. 10 shows a flowchart outlining a process (1000) according to one embodiment of the present disclosure. The process (1000) can 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 in software instructions, such that the processing circuit performs the process (1000) when it executes the software instructions. The process begins at (S1001) and proceeds to (S1010).

[0115] In (S1010), a first offset value in a first mapping table is determined. The first offset value is associated with a first orientation mode of the current block and a first reference line of the current block. A second offset value in a second mapping table is determined. The second offset value is associated with a second orientation mode of the current block and a second reference line of the current block. The first reference line includes a row of adjacent reference samples above a top edge of the current block and a column of reference samples adjacent to a left edge of the current block. The second reference line includes a row of reference samples and a column of reference samples adjacent to the first reference line.

[0116] In (S1020), a first reference sample is determined for a sample of the current block from a first reference line based on a first offset value, and a second reference sample is determined for a sample of the current block from a second reference line based on a second offset value.

[0117] In (S1030), a predicted value of a sample of the current block is encoded, where the predicted value is determined based on at least one of the first reference sample or the second reference sample.

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

[0119] Process 1000 may be adapted as appropriate. Steps of process 1000 may be modified and / or omitted. Additional steps may be added. Any suitable order of performance may be used.

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

[0121] Computer software may be coded using any suitable machine code or computer language and may apply 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, microcode execution, etc.

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

[0123] 11 for computer system 1100 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. Neither the arrangement of components should be interpreted as having any dependency or requirement regarding any one or combination of components shown in the exemplary embodiment of computer system 1100.

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

[0125] The input human interface devices may include one or more (only one of each is 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).

[0126] The computer system (1100) may also include some type of human interface output device. 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 (1110), data gloves (not shown), or joystick (1105) (although haptic feedback devices may also function as input devices), audio output devices (e.g., speakers (1109), headphones (not shown)), visual output devices (e.g., screens (1110), including CRT screens, LCD screens, plasma screens, and OLED screens; each may or may not have touchscreen input capabilities, each may or may not have haptic feedback capabilities, some of which may output two-dimensional visual output or output in greater than three dimensions through means such as stereoscopic output; virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

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

[0128] 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 encompass transmission media, carrier waves, or other transitory signals.

[0129] The computer system (1100) may also include an interface (1154) to one or more communication networks (1155). Networks may be, for example, wireless, wired, or optical. Networks may further be local, wide-area, metropolitan, in-vehicle, and industrial, real-time, delay-tolerant, and the like. Examples of networks include Ethernet, WLAN, cellular networks including GSM, 3G, 4G, 5G, LTE, and the like; TV wired or wireless wide-area digital networks including cable, satellite, and terrestrial broadcast television; and in-vehicle and industrial networks including CANbus. Some networks typically require an external network interface adapter attached to some kind of general-purpose data port or peripheral bus (1149) (e.g., a USB port on the computer system (1100)). Others are typically integrated into the core of the computer system (1100) by attachment 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 (1100) can communicate with other entities. Such communication may be unidirectional, receive-only (e.g., broadcast television), unidirectional transmit-only (e.g., CANbus to certain CANbus devices), or bidirectional, for example, to other computer systems using local or wide-area digital networks. Each of these networks and network interfaces, as described above, may use certain protocols and protocol stacks.

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

[0131] The core (1140) may include one or more central processing units (CPUs) (1141), graphics processing units (GPUs) (1142), specialized programmable processing units in the form of field programmable gate arrays (FPGAs) (1143), hardware accelerators for certain tasks (1144), graphics adapters (1150), etc. These devices may be connected through a system bus (1148), along with read-only memory (ROM) (1145), random access memory (1146), and internal mass storage devices (1147), such as internal non-user-accessible hard drives or solid-state drives (SSDs). In some computer systems, the system bus (1148) may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be attached directly to the core's system bus (1148) or through a peripheral bus (1149). In one example, a screen 1110 can be connected to a graphics adapter 1150. Architectures for peripheral buses include PCI, USB, and the like.

[0132] The CPU (1141), GPU (1142), FPGA (1143), and accelerator (1144) may execute certain instructions that, in combination, may constitute the above-mentioned 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 device (1147). Rapid storage and retrieval to 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 device (1147), ROM (1145), RAM (1146), etc.

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

[0134] By way of example and not limitation, the architecture (1100), and in particular a computer system having a core (1140), 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 can be user-accessible mass storage, as discussed above, as well as media associated with some type of storage of the core (1140) that is non-transitory, such as the core's internal mass storage (1147) or ROM (1145). Software implementing various embodiments of the present disclosure can be stored on 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, in particular, the processor (including a CPU, GPU, FPGA, etc.) therein to perform certain processes or certain portions thereof 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 hardwired or otherwise embodied in circuitry (e.g., accelerator (1144)), which may operate in place of or in conjunction with software to perform particular processes or portions of particular processes described herein. Reference to software includes logic, and vice versa, as appropriate. Reference to a computer-readable medium may encompass circuitry (e.g., an integrated circuit (IC)) that stores software for execution, circuitry that embodies logic for execution, or both, as appropriate. The present disclosure encompasses any suitable combination of hardware and software.

[0135] The use of "at least one of" or "one of" in this 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.

[0136] While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents that fall within the scope of this disclosure. Thus, 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 thus within its spirit and scope.

Claims

1. 1. A method of video decoding performed by a video decoder, the method comprising: receiving, from a coded video bitstream, coded information for a current block and a plurality of reference lines for the current block, each of the plurality of reference lines including a respective row of reference samples above a top edge of the current block and a respective column of reference samples to the left of the current block; (i) determining, in a first angle-offset mapping table, a first offset value associated with a first orientation mode of the current block and a first reference line of the plurality of reference lines adjacent to the current block; and (ii) determining, in a second angle-offset mapping table different from the first angle-offset mapping table, a second offset value associated with a second orientation mode of the current block and a second reference line of the plurality of reference lines adjacent to the first reference line; (i) determining a first reference sample for a sample of a current block from the first reference line based on the first offset value; and (ii) determining a second reference sample for the sample of the current block from the second reference line based on the second offset value; and reconstructing the samples of the current block based on one of the first reference samples and the second reference samples. method.

2. the first angle-offset mapping table indicates a correlation between offset values ​​associated with the current block and the first reference line and candidate direction modes; the second angle-offset mapping table indicates a correlation between offset values ​​associated with the current block and the second reference line and candidate direction modes; The method of claim 1.

3. Determining the first reference sample and the second reference sample further includes: determining the first reference sample from among the reference samples of the first reference line based on a first direction angle, the first direction angle being equal to the sum of the first direction mode of a current block and the first offset value; determining the second reference sample from among the reference samples of the second reference line based on a second direction angle, the second direction angle being equal to the sum of the second direction angle of the current block and the second offset value; The method of claim 1 , comprising:

4. If the first direction mode and the second direction mode of the current block are greater than 45 degrees, a difference between the first offset value and the second offset value is within a preset range; The method of claim 1.

5. 3. The method of claim 2, wherein the first direction mode associated with the current block and the first reference line and the second direction mode associated with the current block and the second reference line correspond to the first offset value.

6. 6. The method of claim 5, wherein a first difference between the first direction mode and the first offset value, a second difference between the second direction mode and the first offset value, and a third difference between the first direction mode and the second direction mode are within a predefined range.

7. The method of claim 1 , wherein offset values ​​for chroma components of a current block are determined based on a reference line from the plurality of reference lines associated with a luma component of the current block.

8. 7. The method of claim 6, wherein the predefined range is greater than or equal to the first offset value minus a constant value and less than or equal to the first offset value plus the constant value.

9. The method of claim 8 , wherein the constant value is one of 1, 2, 3, or 4.

10. 2. The method of claim 1, wherein the first angle-to-offset mapping table and the second angle-to-offset mapping table are first and second sub-tables, respectively, of the same table.

11. A video decoding device having processing circuitry configured to perform a method according to any one of claims 1 to 10.

12. 11. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method of any one of claims 1 to 10.

13. 1. A method of video encoding performed by a video encoder, the method comprising: (i) determining, in a first mapping table, a first offset value associated with a first direction mode of a current block and a first reference line of the current block, and determining, in a second mapping table, a second offset value associated with a second direction mode of the current block and a second reference line of the current block, wherein the first reference line is adjacent to the current block and the second reference line is adjacent to the first reference line; (i) determining a first reference sample for a sample of a current block from the first reference line based on the first offset value; and (ii) determining a second reference sample for a sample of the current block from the second reference line based on the second offset value; encoding predicted values ​​of samples of the current block, the predicted values ​​being determined based on at least one of the first reference samples or second reference samples. method.

14. 14. A video encoding device having processing circuitry configured to perform the method of claim 13.

15. 14. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method of claim 13.

Citation Information

Patent Citations

  • METHOD AND APPARATUS FOR VIDEO CODING - Patent application

    JP2022526400A

  • Improved Delta Angle Signaling Method for Luma Blocks

    JP2023502538A

  • Method and device for processing video signal using MPM configuration method for multiple reference lines

    US20210227213A1

  • Delta angle signaling method for luma blocks

    US20230051558A1

  • Method and apparatus for video coding

    WO2021108027A1