Simplified most probable mode list generation scheme

JP2025160331A5Pending Publication Date: 2025-12-22TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025124409
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-11-25
Filing Date
2025-07-25
Publication Date
2025-12-22

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a method for signaling an intra-prediction mode used to encode a current block.SOLUTION: A method according to the present invention includes the steps of: generating a first most probable mode (MPM) list corresponding to a zero reference line of a current block; generating a second MPM list corresponding to one or more non-zero reference lines of the current block; signaling a reference line index indicating a reference line to be used to encode the current block from among the zero reference line list and the one or more non-zero reference line lists; and signaling an intra mode index indicating an intra prediction mode in the first MPM list or the second MPM list.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] [Related Applications] This application claims priority under 35 U.S.C. § 119 to U.S. Provisional Patent Application No. 62 / 775,373, filed in the U.S. Patent and Trademark Office on December 4, 2018, U.S. Provisional Patent Application No. 62 / 786,031, filed in the U.S. Patent and Trademark Office on December 28, 2018, and U.S. Patent Application No. 16 / 694,26, filed in the U.S. Patent and Trademark Office on November 25, 2019, all of which applications are incorporated herein by reference in their entireties.

[0002] [Technical field] This disclosure is directed to advanced video coding techniques. More specifically, this disclosure is directed to a simplified most probable mode (MPM) list generation scheme for zero and non-zero lines. [Background technology]

[0003] ITU-T VCEG (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) [1]. In 2015, these two standardization organizations formed the Joint Video Exploration Team (JVET) to explore the possibility of developing a next-generation video coding standard beyond HEVC. In October 2017, they announced a Joint Call for Proposals on Video Compression with Capability beyond HEVC (CfP). By February 15, 2018, a total of 22 CfP responses for standard dynamic range (SDR), 12 for high dynamic range (HDR), and 12 for 360 video categories had been submitted. In April 2018, all received CfP responses were evaluated at the 122 MPEG / 10th JVET meeting. As a result of this meeting, JVET officially announced the standardization process for next-generation video coding beyond HEVC. The new standard was named VVC (Versatile Video Coding), and JVET was renamed the Joint Video Expert Team.

[0004] The intra prediction modes used in HEVC are shown in Figure 1. HEVC has a total of 35 intra prediction modes, among which mode 10 is the horizontal mode, mode 26 is the vertical mode, and modes 2, 18, and 34 are diagonal modes. The intra prediction modes are signaled by three most probable modes (MPMs) and 32 remaining modes.

[0005] To encode an intra mode, a most probable mode (MPM) list of size 3 is constructed based on the intra modes of neighboring blocks. This MPM list is called the MPM list or primary MPM list. If the intra mode is not from the MPM list, a flag is signaled to indicate whether the intra mode belongs to the selected mode.

[0006] An example of the MPM list generation process for HEVC is shown below.

number

[0007] Here, leftIntraDir is used to indicate the mode of the left block, and aboveIntraDir is used to indicate the mode of the above block. If the left or above block is not currently available, leftIntraDir or aboveIntraDir will be DC_IDX. Furthermore, the variables "offset" and "mod" are constants and are set to 29 and 32, respectively. Summary of the Invention

[0008] In one embodiment, a method for signaling an intra-prediction mode to be used for encoding a current block in an encoded video bitstream using at least one processor includes the steps of: generating a first MPM (most probable mode) list corresponding to a zero reference line of the current block, the first MPM list including a plurality of angular intra-prediction modes; generating a second MPM list corresponding to one or more non-zero reference lines of the current block, the second MPM list including the plurality of angular intra-prediction modes; and signaling a reference line index indicating a reference line to be used for encoding the current block from among the zero reference line and the one or more non-zero reference lines. signaling an intra-mode index indicating the intra-prediction mode in the first MPM list or the second MPM list.

[0009] In one embodiment, an apparatus for signaling an intra-prediction mode used to encode a current block in a coded video bitstream, the apparatus comprising: at least one memory configured to store program code; at least one processor configured to read the program code and to act as directed by the program code; the program code comprising: a first generation code configured to cause the processor to generate a first most probable mode (MPM) list corresponding to a zero reference line of the current block, the first MPM list including a plurality of angular intra prediction modes; and second generation code configured to cause the processor to generate a second MPM list corresponding to one or more non-zero reference lines of the current block, the second MPM list including the plurality of angular intra prediction modes; and a first signaling code configured to cause the processor to signal a reference line index indicating a reference line to be used for encoding the current block from among the zero reference line and the one or more non-zero reference lines; second signaling code configured to cause the processor to signal an intra-mode index indicating the intra-prediction mode in the first MPM list or the second MPM list; An apparatus is provided, comprising:

[0010] In one embodiment, a non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors of an apparatus for signaling an intra-prediction mode to be used to encode a current block in an encoded video bitstream, cause the one or more processors to: generating a first MPM (most probable mode) list corresponding to a zero reference line of the current block, the first MPM list including a plurality of angular intra prediction modes; generating a second MPM list corresponding to one or more non-zero reference lines of the current block, the second MPM list including the plurality of angular intra prediction modes; signaling a reference line index indicating a reference line to be used for encoding the current block from among the zero reference line and the one or more non-zero reference lines; signaling an intra-mode index indicating the intra-prediction mode in the first MPM list or the second MPM list; A non-transitory computer-readable medium containing one or more instructions is provided. [Brief explanation of the drawings]

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

[0012] [Figure 1] FIG. 1 is a diagram illustrating an example of an intra prediction mode in HEVC.

[0013] [Figure 2] FIG. 10 is a diagram illustrating an example of reference lines adjacent to each coding block unit.

[0014] [Figure 3] FIG. 10 is a diagram illustrating an example of an intra prediction mode in VVC.

[0015] [Figure 4]FIG. 10 is a diagram illustrating an example of the location of a neighboring CU.

[0016] [Figure 5] 1 is a simplified block diagram of a communication system according to one embodiment.

[0017] [Figure 6] FIG. 2 is a diagram of an arrangement of a video encoder and a video decoder in a streaming environment, according to one embodiment.

[0018] [Figure 7] FIG. 2 is a functional block diagram of a video decoder according to one embodiment.

[0019] [Figure 8] FIG. 2 is a functional block diagram of a video encoder according to one embodiment.

[0020] [Figure 9] 1 is a flowchart of an exemplary process for signaling an intra-prediction mode used to encode a current block in a coded video bitstream according to one embodiment.

[0021] [Figure 10] 1 is a diagram of a communication system according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0022] The multi-line intra prediction mode is proposed to use more reference lines for intra prediction, and the encoder determines and signals which reference lines are used to generate the intra predictor. The reference line index is signaled before the intra prediction mode, and only the most probable mode is allowed if a non-zero reference line index is signaled. Figure 2 shows an example of four reference lines. Here, each reference line consists of six segments, i.e., Segments A to F, together with the upper-left reference sample. Furthermore, Segments A and F are padded with the nearest samples from Segments B and E, respectively.

[0023] As shown in Figure 3, VVC has a total of 95 intra prediction modes. Among these, mode 18 is the horizontal mode, mode 50 is the vertical mode, and modes 2, 34, and 66 are diagonal modes. Modes -1 to -14 and modes 67 to 80 are called Wide-Angle Intra Prediction (WAIP) modes.

[0024] In VTM3.0, the size of the MPM list is set equal to 6 for both adjacent reference lines (also called zero reference lines) and non-adjacent reference lines (also called non-zero reference lines). As shown in FIG. 4, the positions of the neighboring modes used to derive the six MPM candidates are also the same for adjacent and non-adjacent reference lines. In FIG. 4, blocks A and B indicate neighboring coding units above and to the left of the current coding unit, and variables candIntraPredModeA and candIntraPredModeB indicate the associated intra-prediction modes of blocks A and B, respectively. candIntraPredModeA and candIntraPredModeB are initially set equal to INTRA_PLANAR. If block A (or B) is marked as available, candIntraPredModeA (or candIntraPredModeB) is set equal to the actual intra-prediction mode of block A (or B).

[0025] The MPM candidate derivation process is different for adjacent and non-adjacent reference lines. For the zero reference line, if both two neighboring modes are planar or DC modes, the prescribed modes are used to construct the MPM list, two of which are planar and DC modes, and the remaining four modes are angular modes, also called angle prescribed modes. For the non-zero reference line, if both two neighboring modes are planar or DC modes, six angular prescribed modes are used to construct the MPM list.

[0026] An example of the MPM list derivation process is shown below: where candModeList[x], x=0.5, indicates 6 MPM candidates, and IntraLumaRefLineIdx[xCb][yCb] indicates the reference line index of the block to be predicted, where IntraLumaRefLineIdx[xCb][yCb] can be 0, 1, or 3.

number

[0027] In VTM4.0, the size of the MPM list is extended to 6. When Intra_luma_mpm_flag is True, it indicates that the current mode belongs to the candidates in the MPM list. Consider Table 1 below. [Table 1]

[0028] 5 shows a simplified block diagram of a communication system (300) according to one embodiment of the present invention. The communication system 300 may include at least two terminals 510-220 interconnected via a network 550. In a unidirectional transmission of data, a first terminal 510 may locally encode video data for transmission to another terminal 520 via the network 550, and a second terminal 520 may receive the encoded video data of the other terminal from the network 550, decode the encoded data, and display the decompressed video data. Unidirectional data transmission may be common in media serving applications, etc.

[0029] 5 shows a second pair of terminals 530, 540 adapted to support bidirectional transmission of encoded video, such as may occur during a video conference. In the bidirectional transmission of data, each terminal 530, 540 may encode locally captured video data for transmission to the other terminal over network 550. Each terminal 530, 540 may also receive encoded video data transmitted by the other terminal, decode the encoded data, and display the recovered video data on a local display device.

[0030] In FIG. 5 , terminal devices 510-540 may be depicted as servers, personal computers, and smartphones, although the principles of the present disclosure are not limited thereto. Embodiments of the present disclosure may also be applied to laptop computers, tablet computers, media players, and / or dedicated videoconferencing equipment. Network 550 represents any number of networks carrying encoded video data between terminal devices 510-540, including, for example, wired and / or wireless communication networks. Communication network 550 may exchange data over circuit-switched and / or packet-switched channels. Exemplary networks include electronic communication networks, local area networks, wide area networks, and / or the Internet. For purposes of discussion of the present disclosure, the architecture and topology of network 550 may not be important to the operation of the present disclosure, unless otherwise noted below.

[0031] 6 illustrates the placement of a video encoder and a video decoder in a streaming environment as an example of an application of the disclosed subject matter, which is equally applicable to, for example, video conferencing, digital TV, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc., other video-enabled applications, etc.

[0032] The streaming system may include a video source 601, e.g., a capture subsystem 613 that may include a digital camera, generating an uncompressed video sample stream 602. The sample stream 602 can be processed by an encoder 603, shown in bold to emphasize its high data volume when compared to an encoded video bitstream, coupled to the camera 601. The encoder 603 may include hardware, software, or a combination thereof, and may enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream 604, shown in thin to emphasize its low data volume when compared to the sample stream, can be stored on a streaming server 605 for future use. One or more streaming clients 606, 608 can access the streaming server 605 to retrieve copies 607, 609 of the encoded video bitstream 604. The client 606 may include a video decoder 610. The video decoder 610 decodes an incoming copy of the encoded bitstream 607 and generates an output video sample stream 611 that can be rendered on a display 612 or other rendering device (not shown). In some streaming systems, the video bitstreams 604, 607, 609 may be encoded according to a particular video encoding / compression standard. Examples of these standards include ITU-T Recommendation H.265. The video encoding standard under development is known informally as Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

[0033] FIG. 7 shows a block diagram of a video decoder 610 according to one embodiment of the present disclosure.

[0034] Receiver 710 may receive one or more coded video sequences to be encoded by video decoder 610, one coded video sequence at a time in the same or another embodiment, where decoding of each coded video sequence is independent of other coded video sequences. The coded video sequences may be received from channel 712, which may be a hardware / software link to a storage device that stores the coded video data. Receiver 710 may receive the coded video data along with other data, such as coded audio data and / or ancillary data streams, which may be forwarded to a respective using entity (not shown). Receiver 710 may separate the coded video sequences from the other data. To eliminate network jitter, buffer memory 715 may be coupled between receiver 710 and entropy decoder / parser 720 (hereinafter, “parser 420”). When receiver 710 is receiving data controllably from a storage / forwarding device of sufficient bandwidth or from an isochronous network, buffer 715 may not be necessary or can be small. For use in a best effort packet network such as the Internet, buffer 715 may be necessary and may be relatively large, and advantageously may be adaptively sized.

[0035] The video decoder 610 may include a parser 720 to reconstruct symbols 721 from the coded video sequence. These symbol categories include information used to manage the operation of the video decoder 610 and information for controlling a rendering device, such as a display 612, which may in some cases not be an integral part of the decoder but may be coupled to the decoder, as shown in FIG. 7. The control information for the rendering device may be in the form of a Supplementary Enhancement Information (SEI) message or a Video Usability Information (VUI) parameter set fragment (not shown). The parser 720 may parse / entropy decode the received coded video sequence. The coding of the coded video sequence may follow a video coding technique or standard and may follow principles well known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context dependency, etc. The parser 720 may extract from the coded video sequence, for at least one of the subgroups of pixels in the video decoder, a set of subgroup parameters based on at least one parameter corresponding to the subgroup. Subgroups may include Groups of Pictures (GOPs), pictures, tiles, slices, macroblocks, coding units (CUs), blocks, transform units (TUs), prediction units (PUs), etc. The entropy decoder / parser may also extract information such as transform coefficients, quantizer parameter (QP) values, motion vectors, etc. from the coded video sequence.

[0036] Parser 720 may perform entropy decoding / parsing operations on the video sequence received from buffer 715 to generate symbols 721. Parser 720 may receive encoded data and selectively decode particular symbols 721. Additionally, parser 720 may determine whether a particular symbol 721 should be provided to motion compensated prediction unit 753, scaler / inverse transform unit 751, intra prediction unit 752, or loop filter 756.

[0037] The reconstruction of symbols 721 may include several different units, depending on the type of coded video picture or portion thereof (e.g., inter and intra pictures, inter and intra blocks) and other factors. Which units are included and how can be controlled by subgroup control information parsed from the coded video sequence by parser 720. The flow of such subgroup control information between parser 720 and the following units is not shown for clarity.

[0038] Beyond the functional blocks already mentioned, decoder 610 may be conceptually subdivided into a number of 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.

[0039] The first unit is a scalar / inverse transform unit 751. The scalar / inverse transform unit 751 receives quantized transform coefficients and control information, including which transform to use, block size, quantization coefficients, quantization scaling matrix, etc., as symbols 621 from the parser 720. It can output blocks containing sample values ​​that can be input to an aggregator 755.

[0040] In some examples, the output samples of the scaler / inverse transform unit 751 may belong to intra-coded blocks, i.e., 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 752. In some cases, the intra-picture prediction unit 752 generates a block of the same size and shape as the block being reconstructed using surrounding already reconstructed information fetched from the current (partially reconstructed) picture 756. The aggregator 755, in some cases, adds, on a sample-by-sample basis, the prediction information generated by the intra-prediction unit 752 to the output sample information provided by the scaler / inverse transform unit 751.

[0041] In other cases, the output samples of the scaler / inverse transform unit 751 may relate to an inter-coded, possibly motion-compensated, block. In such cases, the motion-compensated prediction unit 753 may access a reference picture memory 757 to fetch samples used for prediction. After motion-compensating the fetched samples according to the symbols 721 associated with the block, these samples may be added by an aggregator 755 to the output of the scaler / inverse transform unit to generate output sample information (in this case, referred to as residual samples or residual signals). The addresses in the reference picture memory from which the motion-compensated prediction unit fetches prediction samples may be controlled by the motion-compensated prediction unit's available motion vectors, e.g., in the form of symbols 721, which may have X, Y, and reference picture components. Motion compensation may also include interpolation of sample values ​​fetched from the reference picture memory when sub-sample accurate motion vectors are in use, motion vector prediction mechanisms, etc.

[0042] The output samples of aggregator 755 may be subjected to various loop filtering techniques in loop filter unit 756. The video compression techniques are controlled by parameters contained in the coded video bitstream and made available to loop filter unit 756 as symbols 721 from parser 720, but may also include in-loop filter techniques that are responsive to meta-information obtained during decoding of previous portions (in decoding order) of the coded picture or coded video sequence, and that may also be responsive to previously reconstructed, loop-filtered sample values.

[0043] The output of the loop filter unit 756 may be a sample stream that can be output to the render device 612 and stored in the reference picture memory 756 for use in future inter-picture prediction.

[0044] Once a particular coded picture is fully reconstructed, it can be used as a reference picture for future prediction. Once a coded picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by parser 720), the current reference picture 656 can become part of reference picture memory 757, and fresh current picture memory can be reallocated before starting reconstruction of a subsequent coded picture.

[0045] The video decoder 610 may perform decoding operations in accordance with a predetermined video compression technology defined in a standard such as ITU-T Rec. H.265. The coded video sequence may comply with the syntax specified by the video compression technology or standard in use, in the sense that the coded video sequence conforms to the syntax of the video compression technology or standard specified in the video compression technology or standard, specifically in a profile document therein. Compliance may also require that the complexity of the coded video sequence be within limits defined by a 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 HDR buffer management signaled within the coded video sequence.

[0046] In one embodiment, the receiver 710 may receive additional (redundant) data along with the coded video. The additional data may be included as part of the coded video sequence. The additional data may be used by the video decoder 610 to correctly 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.

[0047] FIG. 8 may be a functional block diagram of a video encoder 603 according to one embodiment of the present disclosure.

[0048] The encoder 603 may receive video samples from a video source 601 (not part of the encoder) that may capture video images to be encoded by the encoder 603 .

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

[0050] According to one embodiment, the encoder 603 may encode and compress pictures of a source video sequence into a coded video sequence 843 in real time or under any other time constraint required by the application. Enforcing an appropriate coding rate is one function of the controller 850. The controller controls and is functionally coupled to other functional units, as described below. The coupling is not shown for clarity. Parameters set by the controller may include rate control-related parameters (picture skip, quantizer, lambda value for rate-distortion optimization techniques, ...), picture size, GOP (group of pictures) layout, maximum motion vector search range, etc. Those skilled in the art will readily identify other functions of the controller 850 as they may be relevant to optimizing the video encoder 603 for a particular system design.

[0051] Some video encoders operate in what those skilled in the art immediately recognize as a "coding loop." As a very simplified explanation, the coding loop can include an encoder 830 (hereinafter, "source coder") (which generates symbols based on an input picture to be coded and reference pictures) and a coding portion of a (local) decoder 833 embedded within the encoder 603 that reconstructs the symbols to generate sample data that a (remote) decoder can generate (when any compression between the symbols and the coded video bitstream is lossless among the video compression techniques considered in the disclosed subject matter). The reconstructed sample stream is input to a reference picture memory 834. When decoding the symbol stream yields bit-exact results independent of the decoder location (local or remote), the contents of the reference picture buffer are also bit-exact between the local and remote encoders. In other words, the prediction portion of the encoder "sees" exactly the same sample values ​​as the decoder "sees" when using prediction during decoding. This basic principle of reference picture synchronization (and the resulting drift when synchronization cannot be maintained, eg, due to channel errors) is well known to those skilled in the art.

[0052] The operation of the "local" decoder 833 may be the same as that of the "remote" decoder 610, detailed above in connection with Figure 7. Referring also briefly to Figure 6, however, the entropy decoding portion of the decoder 610, including the channel 712, receiver 710, buffer 715, and parser 720, may not be fully implemented in the local decoder 833, because symbols are available and the encoding / decoding of the symbols into the coded video sequence by the entropy coder 845 and parser 720 may be lossless.

[0053] A consideration to be made at this point is that any decoder technology, other than parsing / entropy decoding, present in the decoder must also be present in substantially the same functional form as in the corresponding encoder. Descriptions of encoder technologies can be omitted, as they are the inverse of the decoder technology, which is described generically. Only in certain areas is more detailed description necessary, and is provided below.

[0054] In operation, in some examples, the source coder 830 may perform motion-compensated predictive coding, which predictively codes an input frame with reference to one or more previously coded frames from a video sequence designated as "reference frames." In this method, the coding engine 832 codes differences between pixel blocks of the input frame and pixel blocks of reference frames that may be selected as prediction references for the input frame.

[0055] The local video decoder 833 may decode the coded video data of frames, which may be designated as reference frames, based on the symbols generated by the source coder 830. The operation of the coding engine 832 may advantageously be lossy. When the coded video data can be decoded in a video decoder (not shown in FIG. 6), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. The local video decoder 833 may replicate the decoding process that may be performed by the video decoder on the reference frames, resulting in reconstructed reference frames to be stored in the reference picture cache 834. In this way, the encoder 603 may locally store copies of reconstructed reference frames that have content in common with reconstructed reference frames that would be obtained by the far-end video decoder (in the absence of transmission errors).

[0056] The predictor 835 may perform a predictive search for the coding engine 832. That is, for a new frame to be encoded, the predictor 835 may search the reference picture memory 834 for sample data (such as candidate reference pixel blocks) or specific metadata such as reference picture motion vectors, block shapes, etc. that can serve as suitable prediction references for the new picture. The predictor 835 may operate on a sample block-pixel block basis to find a suitable prediction reference. In some examples, the input picture may have prediction references drawn from multiple reference pictures stored in the reference picture memory 834, as determined by the search results obtained by the predictor 835.

[0057] Controller 850 may manage the encoding operations of video coder 830, including, for example, setting parameters and subgroup parameters used for encoding the video data.

[0058] The output of all the aforementioned functional units may undergo entropy coding in entropy coder 845. Entropy coder 545 converts the symbols produced by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques well known to those skilled in the art, such as Huffman coding, variable length coding, arithmetic coding, etc.

[0059] The transmitter 840 may buffer the coded video sequence generated by the entropy coder 845 to prepare it for transmission over a communication channel 860, which may be a hardware / software link to a storage device that may store the coded video data. The transmitter 840 may merge the coded video data from the video coder 830 with other data to be transmitted, such as coded audio data and / or auxiliary data streams (sources not shown).

[0060] A control unit 850 may manage the operation of the encoder 603. During encoding, the control unit 850 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:

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

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

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

[0064] A source picture is commonly 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 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 they may be predictively coded with reference to already 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 non-predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.

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

[0066] In one embodiment, transmitter 840 may transmit additional data along with the coded video. Video coder 830 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, Supplementary Enhancement Information (SEI) messages, Visual Usability Information (VUI) parameter set fragments, etc.

[0067] As mentioned above, in VTM 3.0, the MPM list candidate derivation process may be different for adjacent and non-adjacent reference lines. As a result, the MPM list candidate derivation process may become complicated in each case without any clear benefit in coding efficiency.

[0068] Furthermore, in VTM3.0, when the signaled reference line index is 0, and one of the left and top neighboring modes is less than or equal to the DC mode, and the other of the left and top neighboring modes is greater than the DC mode, the left neighboring mode is always inserted into the MPM list, and the top neighboring mode follows even if the top neighboring mode is planar or DC mode. This may not be the optimal solution, because planar and DC modes are the most frequently used intra prediction modes according to statistics.

[0069] The proposed methods may be used separately or combined in any order. In an embodiment, the line index of the closest reference line may be 0, and the closest reference line may be referred to as the zero reference line. Other lines may be referred to as non-zero reference lines. As described below, candModeList may indicate an MPM list, RefLineIdx may indicate the reference line index of the current block, and candIntraPredModeA and candIntraPredModeB may indicate the left and top neighboring modes. If a neighboring mode is not a planar or DC mode or generates prediction samples according to a given prediction direction, such as intra-prediction modes 2-66 defined in VVC draft 2, this mode may be referred to as an angular mode. If a mode is a planar or DC mode, this mode may be referred to as a non-angular mode. Each intra-prediction mode is associated with a mode number, which may be referred to as an intra-prediction mode index. For example, planar, DC, horizontal, and vertical intra-prediction modes may be associated with mode numbers 0, 1, 18, and 50, respectively.

[0070] In one embodiment, the variables minAB and maxAB may be derived as follows:

number

[0071] In one embodiment, the variables offset and mod may be set according to one of the following two scenarios: offset=61, mod=64; offset=62, mod=65.

[0072] In one embodiment, when a non-zero reference line index is signaled, the MPM list candidates may be derived using the same rule if the absolute mode number difference between the left and top neighboring modes is greater than a given threshold.

[0073] In one embodiment, the given threshold may be 0, which means that the MPM list candidates are derived using the same rule regardless of the mode number difference between the left and top neighboring modes.

[0074] In another embodiment, the left and top neighbor modes are both angular modes, and the given threshold may be 1, 2, or 3. In one example, the MPM list candidates may be derived as follows:

number

[0075] In another embodiment, the left and top neighboring modes are both angular modes, and the mode number difference between these two modes is equal to 1 or 2, and the MPM list candidates may be derived using the same rules. In one example, the MPM list candidates may be derived as follows:

number

[0076] In another embodiment, if the left and top neighboring modes are not equal, the MPM list candidates may be derived using the same rules regardless of the mode number difference between the left and top neighboring modes.

[0077] In one embodiment, if the left and top neighboring modes are both angular modes but they are not equal, the MPM list candidates are derived using the same rules regardless of the mode number difference between the left and top neighboring modes.

[0078] In one example, six MPM list candidates may be derived as follows:

number

[0079] In another example, six MPM list candidates may be derived as follows:

number

[0080] In another example, six MPM list candidates may be derived as follows:

number

[0081] In another example, six MPM list candidates may be derived as follows:

number

[0082] In another embodiment, if at least one of the left and top neighboring modes is an angular mode, the MPM list candidates may be derived using the same rule regardless of the mode number difference between the left and top neighboring modes.

[0083] In an embodiment, when two neighboring modes are both angular modes, there may be overlapping mode candidates in the MPM list of the non-zero reference line.

[0084] In one embodiment, when two neighboring modes are both angular modes and the absolute value of the mode number difference between these two neighboring modes is equal to 1 or 2, or is greater than Thres, which may be one of positive integers, for example, 61, 62, 63, or 64, there is a duplicate mode candidate in the MPM list of a non-zero reference line.

[0085] In another embodiment, there may be a restriction that there are no duplicate candidates in the MPM list of the zero reference line.

[0086] In another embodiment, when two neighboring modes are both angular modes and are not equal, there may be overlapping mode candidates in the MPM list of a non-zero reference line.

[0087] In one embodiment, the angle modes used to construct the zero reference line MPM list may be reused for the non-zero line MPM lists, and these angle MPM modes may have the same index for both the zero and non-zero reference line MPM lists.

[0088] In one example, the MPM list for the zero line may be {26, 18, 0, 1, 25, 27}, where 26, 18, 25, and 27 are angle modes. Therefore, for non-zero lines, these four angle modes may also be used with the same indexes, and an example of an MPM list for non-zero lines may be {26, 18, 17, 19, 25, 27}.

[0089] In one embodiment, the specified angle modes used to construct the zero reference line MPM list may be reused for the non-zero line MPM lists, and these angle MPM modes may have the same index for both the zero and non-zero reference line MPM lists. The variable K is a positive integer. In one example, K is equal to 4.

[0090] In one example, the prescribed modes for the zero and non-zero reference lines are {plane, DC, vertical, horizontal, vertical-K, vertical+K} and {2, 34, vertical, horizontal, vertical-K, vertical+K}, respectively. This can be formulated as follows:

number

[0091] In another example, the prescribed modes of the zero and non-zero reference lines may be formulated as follows: where candIntraPredModeA is equal to the planar or DC mode.

number

[0092] In one embodiment, if one neighboring mode is a planar or DC mode, or any non-angular mode, and the other neighboring mode is an angular mode, the planar or DC mode may always be inserted first into the MPM list with index 0, and the angular neighboring mode may always be inserted second into the MPM list with index 1.

[0093] In one embodiment, when a zero reference line index is signaled, the planar mode may always be inserted first into the MPM list with index 0, the angular neighboring mode may always be inserted second into the MPM list with index 1, and the DC mode may always be inserted third into the MPM list with index 2. An example is shown below.

number

[0094] In another embodiment, if a zero reference index is signaled, a non-angular neighboring mode may always be inserted first into the MPM list with index 0, an angular neighboring mode may always be inserted second into the MPM list with index 1, and the MPM candidate with index 2 may always be set equal to (1-candModeList[0]). An example is shown below:

number

[0095] In another embodiment, if a zero reference line index is signaled, an angular neighboring mode may always be inserted first in the MPM list with index 0, a non-angular neighboring mode may always be inserted second in the MPM list with index 1, and the MPM candidate with index 2 may always be set equal to (1-candModeList[1]). An example is shown below:

number

[0096] Another example is shown below.

number

[0097] In one embodiment, for the zero reference line, if one neighboring block is associated with a non-angular mode, e.g., planar mode, DC mode, inter mode, intra-inter mode, or CPR mode, and the other neighboring mode is an angular mode, whether the planar or DC mode is placed before the angular neighboring mode in the MPM list depends on the mode number of the angular neighboring mode.

[0098] In one embodiment, if the angular neighboring mode is a vertical mode or a horizontal mode, the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1. Another example is shown below.

number

[0099] In one embodiment, if the angular neighboring mode is a vertical mode or a horizontal mode or a diagonal mode, e.g., mode 2, 34, 66, then the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1.

[0100] In one embodiment, if the angular neighboring mode is a vertical mode or a horizontal mode, the angular neighboring mode is inserted first in the MPM list with index 0, and the planar or DC mode is inserted second in the MPM list with index 1. Otherwise, the left neighboring mode of the block adjacent to the left of the current block is inserted first in the MPM list with index 0, and the top neighboring mode of the block above the current block is inserted second in the MPM list with index 1. An example is shown below.

number

[0101] In one embodiment, if the angular neighboring mode is a vertical mode or a horizontal mode or a diagonal mode, e.g., modes 2, 34, 66, then the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the left neighboring mode is inserted first into the MPM list with index 0, and the top neighboring mode is inserted second into the MPM list with index 1.

[0102] In one embodiment, if the angular neighboring mode is a mode that does not use interpolation to generate predicted samples at fractional positions, e.g., modes 2, 34, 66, horizontal, vertical, 72, 76, 78, 80, −6, −10, −12, −14, then the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1.

[0103] In one embodiment, the decision of whether a planar or DC mode is placed before an angular neighboring mode in the MPM list also depends on the position of the neighboring angular mode, for example, whether it comes from a left neighboring block or an above neighboring block.

[0104] In one embodiment, if the left angular neighboring mode is a vertical mode or the top angular neighboring mode is a horizontal mode, the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1.

[0105] In one embodiment, if the left angular neighboring mode is a horizontal-like mode and does not use interpolation to generate predicted samples at fractional positions, e.g., mode 2, horizontal, -6, -10, -12, -14, then the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1.

[0106] In one embodiment, if the top angular neighboring mode is a vertical-like mode and does not use interpolation to generate predicted samples at fractional positions, e.g., modes 66, vertical, 72, 76, 78, 80, then the angular neighboring mode is inserted first into the MPM list with index 0, and the planar or DC mode is inserted second into the MPM list with index 1. Otherwise, the planar or DC mode is inserted first into the MPM list with index 0, and the angular neighboring mode is inserted second into the MPM list with index 1.

[0107] Figure 9 is a flowchart of an example process 900 for signaling an intra-prediction mode used to encode a current block in a coded video bitstream. In some implementations, one or more of the processing blocks in Figure 9 may be performed by the decoder 610. In some implementations, one or more of the processing blocks in Figure 9 may be performed by another device or group of devices that are separate from or include the decoder 610, such as the encoder 603.

[0108] 9, the process 900 may include generating a first most probable mode (MPM) list corresponding to the zero reference line of the current block (block 910). The first MPM list may include multiple angular intra-prediction modes.

[0109] 9, the process 900 may include generating a second MPM list corresponding to one or more non-zero reference lines of the current block (block 920). The second MPM list may include multiple angular intra-prediction modes.

[0110] As further shown in FIG. 9, the process 900 may include signaling a reference line index indicating a reference line to be used to encode the current block from among the zero reference line and one or more non-zero reference lines (block 930).

[0111] 9, the process 900 may include determining whether the reference line index indicates that the reference line is a zero reference line (block 940). Based on the reference line index indicating that the reference line is a zero reference line, the process 900 may then signal an intra-mode index indicating an intra-prediction mode from among a first MPM list (block 950). Based on the reference line index indicating that the reference line is one of one or more non-zero reference lines, the process 900 may then signal an intra-mode index indicating an intra-prediction mode from among a second MPM list (block 950).

[0112] In one embodiment, the first MPM list further includes one or more non-angular intra-prediction modes, and the second MPM list does not include one or more non-angular intra-prediction modes.

[0113] In one embodiment, the one or more non-angular intra-prediction modes include at least one of a planar mode and a DC mode.

[0114] In one embodiment, the first MPM list includes a first plurality of indices corresponding to a plurality of angular intra-prediction modes, and the second MPM list includes a second plurality of indices corresponding to a plurality of angular intra-prediction modes, and the first plurality of indices are the same as the second plurality of indices.

[0115] In one embodiment, the plurality of angular intra prediction modes include a first angular intra prediction mode and a second angular intra prediction mode, wherein the first angular intra prediction mode corresponds to a first index of the first plurality of indices, the second angular intra prediction mode corresponds to a second index of the first plurality of indices, the first angular intra prediction mode corresponds to a first index of the second plurality of indices, and the second angular intra prediction mode corresponds to a second index of the second plurality of indices, wherein the first index of the first plurality of indices is the same as the first index of the second plurality of indices, and the second index of the first plurality of indices is the same as the second index of the second plurality of indices.

[0116] In one embodiment, based on the first neighboring mode of the first neighboring block of the current block being a non-angular mode, and based on the second neighboring mode of the second neighboring block of the current block being an angular mode, the first intra prediction mode of the first MPM list may be a non-angular mode, and the second intra prediction mode of the first MPM list may be the angular mode.

[0117] In one embodiment, based on the first neighboring mode being DC mode and based on the reference line index indicating that the reference line is a zero reference line, the first intra prediction mode of the first MPM list is DC mode.

[0118] In one embodiment, based on the first neighboring mode being a planar mode and based on the reference line index indicating that the reference line is a zero reference line, the first intra prediction mode of the first MPM list may be a planar mode.

[0119] In one embodiment, based on the reference line index indicating that the reference line is a zero reference line, the first intra prediction mode of the first MPM list may be a planar mode, the second intra prediction mode of the first MPM list may be an angular mode, and the third intra prediction mode of the first MPM list may be a DC mode.

[0120] In one embodiment, based on the reference line index indicating that the reference line is the zero reference line, and based on the first neighboring mode of the first neighboring block of the current block being a non-angular mode, and based on the second neighboring mode of the second neighboring block of the current block being an angular mode, the first intra prediction mode of the first MPM list may be an angular mode and the second intra prediction mode of the first MPM list may be a non-angular mode. Although Figure 9 shows example blocks of process 900, process 900 may, in some implementations, include more blocks, fewer blocks, or blocks in a different arrangement than those shown in Figure 9. Additionally or alternatively, two or more of the blocks of process 900 may be performed in parallel.

[0121] Additionally, the proposed methods may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program stored on a non-transitory computer-readable medium to perform one or more of the proposed methods.

[0122] The techniques described above may be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, Figure 10 illustrates a computer system 1200 suitable for implementing certain embodiments of the subject matter of this disclosure.

[0123] Computer software can be encoded using any suitable machine code or computer language that can be processed by mechanisms such as assembling, compiling, linking, etc. to generate code containing instructions that can be executed by a computer central processing unit (CPU), graphics processing unit (GPU), etc., directly or through interpretation, microcode execution, etc.

[0124] The instructions may be executed by a variety of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

[0125] 10 of computer system 1200 are exemplary in nature and do not suggest any limitation on the scope of use or functionality of the computer software implementing embodiments of the present disclosure. Furthermore, the arrangement of components should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of computer system 1200.

[0126] The computer system 1200 may include certain human interface input devices. Such human interface input devices may be responsive to input by one or more human users, for example, through sensory input (e.g., keystrokes, swipes, data grabbing actions), audio input (e.g., voice, clapping), visual input (e.g., gestures), and olfactory input (not shown). Human interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., speech, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a digital camera), and video (including, for example, two-dimensional video, three-dimensional video, and stereoscopic video).

[0127] The input human interface devices may include one or more of a keyboard 1001, a mouse 1002, a trackpad 1003, a touchscreen 1010, a datagrab 1004, a joystick 1005, a microphone 1006, a scanner 1007, and a camera 1008 (only one of which is shown).

[0128] The computer system 1200 may also include certain human interface output devices. Such human interface output devices may stimulate one or more of the human user's senses through, for example, sensory output, sound, light, and smell / taste. Such human interface output devices may include sensory output devices (e.g., sensory feedback via the touchscreen 1010, data glove 1204, or joystick 1005, although there may also be sensory feedback devices that do not function as input devices), audio output devices (e.g., speakers 1009, headphones (not shown)), visual output devices (e.g., the screen 1010, including cathode ray tube (CRT) screens, liquid crystal display (LCD) screens, plasma screens, and organic light-emitting diode (OLED) screens, each with or without touchscreen input capability and each with or without sensory feedback capability, some of which may be capable of outputting two-dimensional visual output or more than three-dimensional output through means such as stereoscopic output, virtual reality glasses (not shown), holographic displays, and smoke generator tanks (not shown)), and printers (not shown).

[0129] The computer system 1200 may also include human-accessible storage devices and associated media such as optical media such as CD / DVD ROM / RW 1020 with media 1021 such as CD / DVD, thumb drive 1022, removable hard drive or solid state drive 1023, legacy magnetic media such as tape and floppy disks (not shown), dedicated ROM / ASIC / PLD based devices such as security dongles (not shown), etc.

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

[0131] The computer system 1200 may also include interfaces to one or more communications networks. Networks may be, for example, wireless, wired, or optical. Networks may further be local, wide-area, metropolitan, vehicular, and industrial, real-time, delay-tolerant, and the like. Examples of networks include local area networks such as Ethernet, wireless LANs, global systems for mobile communications (GSM), cellular networks including third-generation (3G), fourth-generation (4G), fifth-generation (5G), and long-term evolution (LTE), TV wired or wireless wide-area digital networks including cable TV, satellite TV, and terrestrial broadcast TV, vehicular, and industrial networks including CAN Bus, and the like. Particular networks generally require external network interfaces that are attached to particular general-purpose data ports or peripheral buses 1049 (e.g., USB ports on the computer system 1200). Others are generally integrated into the core of the computer system 1200 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 these networks, computer system 1200 can communicate with other entities. Such communication may be one-way receive only (e.g., broadcast TV), one-way transmit only (e.g., CANbus to a specific CANbus device), or two-way to other computer systems, for example, using local or wide-area digital networks. Specific protocols and protocol stacks may be used with each of the above networks and network interfaces.

[0132] The aforementioned human interface devices, human accessible storage devices, and network interfaces may be attached to the core 1040 of the computer system 1200 .

[0133] The core 1040 may include one or more central processing units (CPUs) 1041, graphics processing units (GPUs) 1042, dedicated programmable processing units 1043 in the form of FPGAs, hardware accelerators 1044 for specific tasks, etc. These devices may be connected through a system bus 1248, along with read-only memory (ROM) 1045, random access memory (RAM) 1046, and internal mass storage device 1047 such as an internal non-user-accessible hard drive, SSD, etc. In some computer systems, the system bus 1248 is accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripherals can be attached directly to the core's system bus 1248 or through a peripheral bus 1049. Peripheral bus architectures include PCI, USB, etc.

[0134] The CPU 1041, GPU 1042, FPGA 1043, and accelerator 1044 may combine to execute specific instructions that may generate the aforementioned computer code. The computer code may be stored in ROM 1045 or RAM 1046. Temporary data may also be stored in RAM 1046, while permanent data may be stored, for example, in internal mass storage device 1047. 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 1041, GPU 1042, mass storage device 1047, ROM 1045, RAM 1046, etc.

[0135] The computer-readable medium may bear computer code 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 skilled in the computer software arts.

[0136] As an example and not by way of limitation, computer system 1200 having the architecture, and core 1040 specifically, can provide functionality as a result of processors (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media may be specific storage of core 1040 of a non-transitory nature, such as core-internal mass storage 1047 or ROM 1045, as well as media associated with user-accessible mass storage devices such as those described above. Software implementing various embodiments of the present disclosure can be stored on such devices and executed by core 1040. Computer-readable media may include one or more memory devices or chips, depending on particular needs. The software can cause core 1040, and specifically the processors therein (including CPUs, GPUs, FPGAs, etc.), to perform particular processes or portions of particular processes described herein, including defining and modifying data structures stored in RAM 1046 according to software-defined operations. Additionally or alternatively, a computer system may provide functionality as a result of implementation in hardwired or other circuitry (e.g., accelerator 1044) that can operate in conjunction with or in place of software to perform particular processes or portions of particular processes described herein. References to software include logic, and vice versa, where appropriate. References to computer-readable media may include, where appropriate, circuitry (such as an integrated circuit (IC)) that stores software for execution, circuitry that implements logic for execution, or both. The present disclosure includes any appropriate combination of hardware and software.

[0137] While this disclosure has described several exemplary embodiments, alterations, permutations, and various substitute equivalents exist, and are encompassed within the scope of this disclosure. Those skilled in the art will appreciate that numerous systems and methods can be devised that, although not explicitly shown or described herein, embody the principles of the present disclosure and therefore are within the spirit and scope of the present disclosure. [Explanation of symbols]

[0138] 501 Source 503 Encoder 830 Source Coder 832 encoding engine 833 decoder 834 Reference Picture Memory 835 Predictor 840 Transmitter 845 Entropy Coder 860 channels

Claims

1. 1. A method of video encoding using at least one processor, the method comprising: generating a first most probable mode (MPM) combination corresponding to a zero reference line of a first block and a second MPM combination corresponding to one or more non-zero reference lines of a second block, each of the first MPM combination and the second MPM combination including a plurality of angular intra prediction modes; signaling a reference line index indicating a reference line among the zero reference line and the one or more non-zero reference lines; determining or deriving an intra mode index indicating at least an intra prediction mode within the first MPM combination or the second MPM combination; Including, the first MPM combination includes a first plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the second MPM combination includes a second plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the first plurality of indexes are the same as the second plurality of indexes; the first MPM combination further includes one or more non-angular intra prediction modes; The method of claim 1, wherein the second MPM combination does not include the one or more non-angular intra prediction modes.

2. The method of claim 1 , wherein the non-angular intra-prediction mode is a planar mode or a DC mode.

3. 1. A method for obtaining an intra-prediction mode to be used for decoding a current block in an encoded video bitstream using at least one processor, the method comprising: obtaining, from the coded video bitstream, a first Most Probable Mode (MPM) combination corresponding to a zero reference line of a first block and a second MPM combination corresponding to one or more non-zero reference lines of a second block, each of the first MPM combination and the second MPM combination including a plurality of angular intra prediction modes; receiving a reference line index indicating a reference line among the zero reference line and the one or more non-zero reference lines; determining or deriving an intra mode index indicating at least an intra prediction mode within the first MPM combination or the second MPM combination; Including, the first MPM combination includes a first plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the second MPM combination includes a second plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the first plurality of indexes are the same as the second plurality of indexes; the first MPM combination further includes one or more non-angular intra prediction modes; The method of claim 1, wherein the second MPM combination does not include the one or more non-angular intra prediction modes.

4. 1. A method of video coding by an encoder, the method comprising: generating a coded video bitstream; transmitting / storing the coded video bitstream; Including, The step of generating the coded video bitstream comprises: generating a first most probable mode (MPM) combination corresponding to a zero reference line of a first block and a second MPM combination corresponding to one or more non-zero reference lines of a second block, each of the first MPM combination and the second MPM combination including a plurality of angular intra prediction modes; Including, The step of transmitting / storing the coded video bitstream comprises: signaling a reference line index indicating a reference line among the zero reference line and the one or more non-zero reference lines; determining or deriving an intra mode index indicating at least an intra prediction mode within the first MPM combination or the second MPM combination; Including, the first MPM combination includes a first plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the second MPM combination includes a second plurality of indices corresponding to at least one of the plurality of angular intra-prediction modes; the first plurality of indexes are the same as the second plurality of indexes; the first MPM combination further includes one or more non-angular intra prediction modes; The method of claim 1, wherein the second MPM combination does not include the one or more non-angular intra prediction modes.