Signaling Most Probable Modes Using Multiple Reference Line Intra-Prediction
By encoding the MPM flag with a different context and high-probability CABAC initialization, the method addresses inefficiencies in VVC's MRL intra prediction, ensuring consistent decoding and performance across encoder complexities.
Patent Information
- Application Number
- JP2022511268
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-09-24
- Filing Date
- 2020-09-21
- Publication Date
- 2025-10-22
- Estimated Expiration
- 2040-09-21
AI Technical Summary
Existing video encoding standards like VVC (Versatile Video Coding) face inefficiencies in signaling the Most Probable Mode (MPM) flag for Multiple Reference Line (MRL) intra prediction, leading to non-uniformity in decoding and potential penalties for low-complexity encoders.
Propose a method to encode the MPM flag with a different context when the Multiple Reference Line index is not zero, ensuring consistent decoding and utilizing high-probability CABAC initialization to maintain performance across encoder complexities.
Enhances decoder analysis and implementation uniformity, allowing all intra prediction modes to consider all available reference lines, with minimal impact on BD-rate performance and complexity.
Smart Images

Figure 0007758659000005 
Figure 0007758659000006 
Figure 0007758659000007
Abstract
Description
[Technical Field]
[0001] At least one of the present embodiments relates generally to a method or apparatus for video encoding or decoding, compression or decompression. [Background technology]
[0002] To achieve high compression efficiency, image and video coding schemes typically employ prediction, including motion vector prediction, and transformation to exploit spatial and temporal redundancy in the video content. Typically, intra- or inter-prediction is used to exploit correlation within or between frames, and then the difference between the original and predicted image, often called the prediction error or prediction residual, is transformed, quantized, and entropy coded. To reconstruct the video, the compressed data is decoded by the inverse processes corresponding to entropy coding, quantization, transformation, and prediction. Summary of the Invention
[0003] At least one of the present embodiments relates generally to a method or apparatus for video encoding or decoding, and more particularly to a method or apparatus for signaling a Most Probable Mode (MPM) flag with Multiple Reference Line (MRL) intra prediction. Both MPM and MRL are video encoding tools in the VVC (Versatile Video Coding or H.266) standard, although the described embodiments may also be applied to other video encoding standards.
[0004] According to a first aspect, a method is provided, the method including parsing a video bitstream to determine whether multiple reference line intra coding is used, decoding a most probable mode flag based on the determination using a CABAC context to determine an intra coding mode, and decoding the video bitstream based on the intra coding mode.
[0005] According to a second aspect, there is provided a method, the method including: encoding a flag indicating multiple reference line intra video coding using a CABAC context, encoding an intra coding mode index indicating an intra coding mode to be used, and encoding a video bitstream having the encoded flag and the intra coding mode index using the intra coding mode.
[0006] According to another aspect, there is provided an apparatus, comprising: a processor, the processor may be configured to encode a block of video or decode a bitstream by performing any of the methods described above.
[0007] According to another general aspect of at least one embodiment, there is provided an apparatus comprising: an apparatus according to any of the decoding embodiments; and at least one of: (i) an antenna configured to receive a signal, the signal including a video block; (ii) a band limiter configured to limit the received signal to a frequency band including the video block; or (iii) a display configured to display an output representing the video block.
[0008] According to another general aspect of at least one embodiment, a non-transitory computer-readable medium is provided that includes data content generated in accordance with any of the described encoding embodiments or variations.
[0009] According to another general aspect of at least one embodiment, there is provided a signal including video data generated according to any of the described encoding embodiments or variations.
[0010] According to another general aspect of at least one embodiment, a bitstream is formatted to include data content generated according to any of the described encoding embodiments or variations.
[0011] According to another general aspect of at least one embodiment, there is provided a computer program product including instructions that, when executed by a computer, cause the computer to perform any of the described decoding embodiments or variations.
[0012] These and other aspects, features, and advantages of the general aspects will become apparent from the following detailed description of exemplary embodiments, which proceeds with reference to the accompanying drawings. [Brief explanation of the drawings]
[0013] [Figure 1] 10 shows the location of the coding unit for deriving the MPM list in different ways for different target block shapes. [Figure 2] 1 shows a flowchart of intra-mode decoding in VVC. [Figure 3] 1 illustrates one embodiment of a flowchart for intra-mode decoding using the described aspects. [Figure 4] Shows standard common video compression methods (encoders). [Figure 5] A standard common video decompression method (decoder) is shown. [Figure 6] 1 illustrates a processor-based system for encoding / decoding under the described general aspects. [Figure 7] 1 illustrates a method for decoding using the described aspects. [Figure 8] 1 illustrates a method for encoding using the described aspects. [Figure 9] 1 shows an apparatus for encoding or decoding using the described aspects; DETAILED DESCRIPTION OF THE INVENTION
[0014] The general aspects described address intra-prediction mode encoding in Versatile Video Coding (VVC) VTM6.0. In particular, consider the encoding of mpmFlag in the presence of Multiple Reference Line (MRL) intra-prediction. In VTM6.0, when multiRefIdx of any CU is not 0, its prediction mode is constrained to be a member of a Most Probable Mode (MPM) list. As a result, mpmFlag, which signals whether a prediction mode belongs to the MPM list, is not encoded. Therefore, a decoder skips decoding mpmFlag when multiRefIdx is not 0. The aspects described herein propose to encode mpmFlag with the value 1, but in a different context, even when multiRefIdx is not 0.
[0015] The described embodiment addresses the coding of mpmFlag in the presence of MRL in VTM6.0. If multiRefIdx is 0, mpmFlag is coded as in VTM6.0 depending on the value of the intra prediction mode. If the prediction mode belongs to the MPM list, mpmFlag is set to 1 before the flag is context coded, otherwise it is set to 0. If multiRefIdx is not 0, mpmFlag is set to 1 before coding in another context. This change ensures that the mpmFflag of a CU is always coded. This leads to better analysis and implementation on the decoder side. Furthermore, all intra prediction modes can be considered using all reference lines available to the CU.
[0016] The Versatile Video Coding Test Model 6.0 (VTM) supports intra prediction using multiple reference lines (MRLs), in which three reference lines are considered for intra prediction of a CU. In addition to the immediate reference line (also called the 0th reference line) consisting of the reference samples immediately above and to the left, reference lines offset by one pixel and three pixels are also considered. However, among these reference lines, only intra prediction modes in the Most Probable Mode (MPM) list, excluding the planar mode, are considered. Therefore, when encoding a CU's prediction mode, if its MRL index flag (denoted as multiRefIdx) is not 0, mpmFlag is not encoded. Only the index of a candidate MPM in the MPM list is encoded in the VLC manner. Correspondingly, before decoding a candidate MPM index, a decoder skips decoding mpmFlag if the decoded value of the MRL index is not 0. The aim of the described embodiments is to eliminate this non-uniformity in mpmFlag signaling and to propose a better signaling method in view of decoder analysis and implementation. MPM list construction in VTM6.0
[0017] VTM6.0 constructs an MPM list of six prediction modes to encode the intra prediction mode of the target block. The MPM list consists of the prediction modes of the intra-coded CUs above and to the left of the current CU, as well as several default modes such as PLANAR mode, DC mode, vertical mode, and horizontal mode. As shown in Figure 1, the above CU and left CU are located at the right and bottom edges of the target block, respectively. The list of six MPMs is constructed as shown in Table 1.
[0018] [Table 1] Intramode coding in VTM6.0
[0019] In normal intra prediction or intra prediction with sub-partitions (ISP), if the prediction mode of the current block is equal to one of the six MPM modes, this is indicated by setting mpmFlag to the value 1 and encoding the candidate mode index from the MPM list using the variable-length coding scheme shown in Table 2. Otherwise, mpmFlag is set to 0, and the candidate indexes of the remaining set of 61 modes are truncated-binary encoded with 5 or 6 bits. A single bin of mpmFlag is context-coded by CABAC. Similarly, the first bin of the binarization of the MPM candidate index is context-coded as shown in Table 2, while the remaining bins are bypass-coded by CABAC.
[0020] [Table 2]
[0021] For intra prediction using MRL, the reference line used for prediction is coded by a flag called multiRefIdx. Valid values of multiRefIdx are 0, 1, and 3, which signal the first, second, or fourth reference line. These are binarized as 0, 10, and 11, respectively, and two bins are context-coded by CABAC using two separate contexts. When multiRefIdx is not 0 (meaning the second or fourth reference line is used), the prediction mode always belongs to the MPM list. Therefore, mpmFlag is not coded. Furthermore, PLANAR mode is excluded from the list because two reference lines are offset from the target block. Since PLANAR mode is always the first candidate in the MPM list, when multiRefIdx is not 0, this means that only five prediction modes are available as candidates. Therefore, when multiRefIdx is not 0, the prediction mode is coded as shown in Table 3. All four bins of the binarization are bypass-coded by CABAC.
[0022] [Table 3] Proposed intra-mode coding
[0023] For normal intra prediction and intra prediction with subpartitions (ISP), the intra mode coding in VTM6.0 remains unchanged. In both cases, multiRefIdx is equal to 0 because the first reference line is used for prediction. The coding of mpmFlag in VTM6.0 remains unchanged. For intra prediction with MRL, if multiRefIdx is not 0, mpmFlag is set to 1 and coded in a separate context by CABAC. In this case, the index of the candidate MPM is binary coded as shown in Table 3, and all bins are bypass coded by CABAC.
[0024] On the decoder side, mpmFlag is always decoded regardless of the value of the multiRefIdx flag. However, the context used to analyze the flag is determined based on the value of the multiRefIdx flag. If the multiRefIdx flag is decoded to 0, as in normal intra prediction or intra prediction using subpartitions, mpmFlag is analyzed using the CABAC context specified in VTM6.0. If multiRefIdx is decoded to a non-zero value, a second CABAC context is used to analyze mpmFlag. Then, the bins of the candidate MPM are bypass-decoded by CABAC. In either case, the prediction mode of the CU is decoded as the MPM candidate with the decoded index value.
[0025] The CABAC initial probability parameters when multiRefIdx is not 0 (second context) are advantageously set to produce high probabilities (close to 1) since mpmFlag is forced to 1 in this case.
[0026] Figure 2 shows the flowchart of intra-mode decoding in VTM6.0, and Figure 3 shows the flowchart of intra-mode decoding in this proposal. The highlighted blocks in Figure 3 indicate the changes made to the VTM6.0 implementation by this proposal. CABAC Context Selection
[0027] In the following, the rationale for the changes in the CABAC initialization process is explained. In another proposal, the initial probability values of the CABAC model are given by a linear model that depends on the QP (quantization parameter).
[0028] proba(QP)=(a / 2) * (QP-16)+b where "a" represents the slope and "b" represents the offset. Both "a" and "b" are hard-coded to the specifications of a given bin corresponding to the syntax element. Because CABAC updates the probability at each readout bin, two "window sizes" are also used to update the symbol probabilities. Depending on the window size, the probability updates faster or slower. For example, with the initial CABAC parameters in the original MPM flag, for a QP of 32, the probability is approximately 0.57 (corresponding to parameter 36 in VTM-6.0) for inter frames (independent of QP, i.e., the slope is null), and for intra frames the probability is 0.77 (corresponding to the initial parameter 45 in VTM-6.0).
[0029] To avoid penalizing low-complexity encoders that encode mpmFlag when multiRefIdx>0, we suggest initializing the CABAC probabilities with a high-probability model by increasing b, e.g., a=0 (slope is null, i.e., independent of QP), b=0.99 (corresponding to initial CABAC parameters of 39). Other values that give high initial probabilities can also be used, e.g., keeping the initial probability function for QP, a=0, b=0.99 (corresponding to initial CABAC parameters of 47).
[0030] By using these initial probability models, low-complexity encoders that also encode mpmFlag when multiRefIdx>0, as described in another proposal, are not penalized (performance remains roughly the same), and more complex encoders can take advantage of the newly available features if needed. Experimental results
[0031] The proposed mpmFlag signaling using the VTM6.0 codec was tested in the All Intra (AI) setting under common test conditions. Table 4 shows the BD-rate performance of the proposed changes to the VTM6.0 anchor. As can be seen, the BD-rate performance and complexity are almost the same as for VTM6.0.
[0032] [Table 4]
[0033] One advantage of the proposed method is that it is fairly uniform in syntax and parsing at the decoder. Furthermore, since MRL intra prediction can be used to signal mpmFlag, all intra prediction modes can be considered using all reference lines available to the CU.
[0034] This document describes various aspects, including tools, features, embodiments, models, methods, etc. Many of these aspects are specifically described and, at least to illustrate individual features, may often be read as limiting the invention. However, this is for clarity of description only and does not limit the applicability or scope of the aspects. Indeed, all different aspects can be combined or substituted to provide further aspects. Furthermore, these aspects can be combined or substituted with aspects described in previous applications.
[0035] The aspects described and contemplated in this document can be implemented in many different forms. Figures 4, 5, and 6 below provide some embodiments, but other embodiments are contemplated, and the descriptions of Figures 4, 5, and 6 do not limit the scope of implementations. At least one of the aspects generally relates to encoding and decoding video, and at least one other aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects can be implemented as a method, an apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the described methods, and / or a computer-readable storage medium having stored thereon a bitstream generated according to any of the described methods.
[0036] In this application, the terms "reconstructed" and "decoded" can be used interchangeably, the terms "pixel" and "sample" can be used interchangeably, and the terms "image," "picture," and "frame" can be used interchangeably. Typically, but not necessarily, the term "reconstructed" is used on the encoder side, and the term "decoded" is used on the decoder side.
[0037] Various methods are described herein, each method including one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for the method to function properly, the order and / or use of specific steps and / or actions may be varied or combined.
[0038] Various methods and other aspects described in this document can be used to modify modules, such as intra-prediction modules, entropy encoding modules, and / or decoding modules (160, 360, 145, 330), of video encoder 100 and video decoder 200, as shown in Figures 4 and 5. Furthermore, aspects of this disclosure are not limited to VVC or HEVC, but can be applied, for example, to other standards and recommendations, whether existing or developed in the future, and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically impossible, aspects described in this document can be used individually or in combination.
[0039] Various numerical values are used in this document, for example, {{1,0}, {3,1}, {1,1}}. The specific values are for illustrative purposes, and the described aspects are not limited to these specific values.
[0040] 4 shows an encoder 100. Variations of this encoder 100 are possible, but for the sake of clarity, the following will describe the encoder 100 without listing all possible variations.
[0041] Before being encoded, the video sequence may undergo pre-encoding processing (101), such as applying a color transformation to the input color picture (e.g., from RGB 4:4:4 to YCbCr 4:2:0) or performing a remapping of the input picture components to obtain a signal distribution that is more resistant to compression (e.g., using histogram equalization of one of the color components). Metadata can be associated with the pre-processing and added to the bitstream.
[0042] In encoder 100, a picture is encoded by the encoder elements described below. The picture to be encoded is divided (102) into units, e.g., CUs, and processed accordingly. Each unit is encoded, e.g., using either intra mode or inter mode. If the unit is encoded in intra mode, intra prediction (160) is performed. In inter mode, motion estimation (175) and motion compensation (170) are performed. The encoder decides (105) whether to use intra mode or inter mode to encode the unit, and indicates the intra / inter decision, e.g., by a prediction mode flag. A prediction residual is calculated, e.g., by subtracting (110) the prediction block from the original image block.
[0043] The prediction residual is then transformed (125) and quantized (130). The quantized transform coefficients, along with the motion vectors and other syntax elements, are entropy coded (145) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can also bypass both the transform and quantization, i.e., the residual is coded directly without applying a transform or quantization process.
[0044] The encoder decodes the coded block to provide reference data for further prediction. To decode the prediction residual, the quantized transform coefficients are dequantized (140) and inverse transformed (150). The decoded prediction residual and the predicted block are combined (155) to reconstruct an image block. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking / SAO (Sample Adaptive Offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (180).
[0045] Figure 5 shows a block diagram of a video decoder 200, where the bitstream is decoded by the decoder elements described below. The video decoder 200 generally performs a decoding pass that is the reverse of the encoding pass as described in Figure 4. The encoder 100 also generally performs video decoding as part of encoding the video data.
[0046] The decoder's input includes a video bitstream, which may be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other coded information. Picture partition information indicates how the picture is divided. The decoder can then partition the picture according to the decoded picture partition information (235). To decode the prediction residual, the transform coefficients are inverse quantized (240) and inverse transformed (250). The decoded prediction residual and the predicted block are combined (255) to reconstruct an image block. The predicted block may result from intra prediction (260) or motion-compensated prediction (i.e., inter prediction) (275) (270). An in-loop filter (265) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (280).
[0047] The decoded picture may be further subjected to post-decoding processing (285), such as an inverse color transformation (e.g., YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that reverses the remapping process performed in the pre-encoding process (101). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream.
[0048] FIG. 6 illustrates a block diagram of an example system in which various aspects and embodiments may be implemented. System 1000 may be embodied as an apparatus including various components described below and configured to perform one or more of the aspects described herein. Examples of such apparatus include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 1000, singly or in combination, may be embodied in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 1000 are distributed across multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to other similar systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to perform one or more of the aspects described herein.
[0049] The system 1000 includes at least one processor 1010 configured to execute instructions loaded thereon, for example, to implement various aspects described herein. The processor 1010 may include embedded memory, input / output interfaces, and various other circuits known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which may include non-volatile memory and / or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drives, and / or optical disk drives. The storage device 1040 may include, by way of non-limiting example, internal storage, external storage, and / or network-accessible storage.
[0050] System 1000 includes, for example, an encoder / decoder module 1030 configured to process data to provide encoded or decoded video, which may include its own processor and memory. Encoder / decoder module 1030 represents one or more modules that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of an encoding module and a decoding module. Furthermore, encoder / decoder module 1030 may be implemented as a separate element of system 1000 or may be incorporated within processor 1010 as a combination of hardware and software, as is known to those skilled in the art.
[0051] Program code loaded into the processor 1010 or the encoder / decoder 1030 to perform various aspects described herein may be stored in the storage device 1040 and then loaded into the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 may store one or more of various items during the execution of the processes described herein. Such stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and arithmetic logic.
[0052] In some embodiments, memory internal to the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (which may be, for example, either the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be the memory 1020 and / or the storage 1040, such as dynamic volatile memory and / or non-volatile flash memory. In some embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, high-speed external dynamic volatile memory, such as RAM, is used as working memory for video encoding and decoding operations, such as MPEG-2, HEVC, or VVC (Versatile Video Coding).
[0053] Input to the elements of system 1000 can be provided through various input devices, as shown in block 1130. Such input devices include, but are not limited to, (i) an RF section for receiving RF signals transmitted over the air, for example by a broadcast station, (ii) a composite input, (iii) a USB input, and / or (iv) an HDMI input.
[0054] In various embodiments, the input devices of block 1130 have associated respective input processing elements, as is known in the art. For example, the RF section may be associated with elements necessary to (i) select a desired frequency (also referred to as selecting a signal or bandlimiting a signal to a particular frequency band), (ii) downconvert the selected signal, (iii) bandlimit again to a narrower frequency band to select a signal frequency band, which may be referred to as a channel in certain embodiments (for example), (iv) demodulate the downconverted and bandlimited signal, (v) perform error correction, and (vi) demultiplex to select a desired stream of data packets. The RF section of various embodiments includes one or more elements that perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a downconverter, a demodulator, an error corrector, and a demultiplexer. The RF section may include, for example, a tuner that performs various of these functions, including downconverting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency near baseband) or to baseband. In one set-top box embodiment, the RF section and its associated input processing elements receive RF signals transmitted over a wired (e.g., cable) medium and perform frequency selection by filtering, downconverting, and re-filtering to a desired frequency band. Various embodiments rearrange the order of the above-mentioned (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements can include inserting elements between existing elements, such as inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.
[0055] Additionally, the USB and / or HDMI terminals may include respective interface processors for connecting system 1000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of the input processing, e.g., Reed-Solomon error correction, may be implemented within a separate input processing IC or within processor 1010, as desired. Similarly, aspects of the USB or HDMI interface processing may be implemented within a separate interface IC or within processor 1010, as desired. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, an encoder / decoder 1030 operating in combination with processor 1010 and memory and storage elements, to process the data stream as desired for presentation on an output device.
[0056] The various elements of the system 1000 may be provided within an integrated housing in which the various elements may be interconnected and transmit data between each other using suitable connection arrangements 1140, such as internal buses known in the art, including I2C buses, wiring, and printed circuit boards.
[0057] System 1000 includes a communication interface 1050 that enables communication with other devices over a communication channel 1060. Communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 1060. Communication interface 1050 may include, but is not limited to, a modem or a network card, and communication channel 1060 may be implemented in a wired and / or wireless medium, for example.
[0058] In various embodiments, data is streamed to system 1000 using a wireless network such as IEEE 802.11. The wireless signal in these embodiments is received, for example, via communication channel 1060 and communication interface 1050 adapted for Wi-Fi communication. Communication channel 1060 in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other over-the-top communications. In another embodiment, streaming data is provided to system 1000 using a set-top box that delivers data via an HDMI connection in input block 1130. In yet another embodiment, streaming data is provided to system 1000 using an RF connection in input block 1130.
[0059] System 1000 can provide output signals to various output devices, including display 1100, speakers 1110, and other peripherals 1120. Other peripherals 1120, in various example embodiments, include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 1000. In various embodiments, control signals are communicated between system 1000 and display 1100, speakers 1110, or other peripherals 1120 using signaling such as AV.Link, CEC, or other communication protocols that enable inter-device control with or without user intervention. Output devices can be communicatively coupled to system 1000 via dedicated connections through respective interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to system 1000 using communication channel 1060 via communication interface 1050. The display 1100 and speakers 1110 may be integrated into a single unit along with other components of the system 1000, for example in an electronic device such as a television. In various embodiments, the display interface 1070 includes a display driver, for example a timing controller (T Con) chip.
[0060] Alternatively, the display 1100 and speakers 1110 may be separate from one or more of the other components, for example, if the RF portion of the input 1130 is part of a separate set-top box. In various embodiments where the display 1100 and speakers 1110 are external components, the output signal may be provided via a dedicated output connection, including, for example, an HDMI port, a USB port, or a COMP output.
[0061] The embodiments may be implemented by computer software executed by the processor 1010, by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. The memory 1020 may be of any type suitable for the technology environment and may be implemented using any suitable data storage technology, such as, by way of non-limiting examples, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory. The processor 1010 may be of any type suitable for the technology environment and may include, by way of non-limiting examples, one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0062] Various implementations include decoding. As used herein, "decoding" can encompass all or part of the processing performed on a received encoded sequence to generate a final output suitable for display, for example. In various embodiments, such processing includes one or more of the processing typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processing also includes, or instead of, processing performed by decoders in various implementations described herein, such as extracting indices for weights used for various intra prediction reference arrays.
[0063] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, and in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or to refer generally to a broader decoding process will be clear based on the context of a particular description and is believed to be well understood by those skilled in the art.
[0064] Various implementations include encoding. As used herein, "encoding," similar to the above description of "decoding," can encompass, for example, all or part of the processing performed on an input video sequence to generate an encoded bitstream. In various embodiments, such processing includes one or more of the processing typically performed by an encoder, such as, for example, partitioning, differential encoding, transforming, quantizing, and entropy encoding. In various embodiments, such processing additionally or alternatively includes processing performed by the encoders of various implementations described herein, such as, for example, weighting intra-prediction reference arrays.
[0065] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in another embodiment, "encoding" refers to a combination of differential and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or to refer generally to a broader encoding process will be clear based on the context of a particular description and will be well understood by those skilled in the art.
[0066] It should be noted that the syntax elements used herein are descriptive terms and therefore do not exclude the use of other syntax element names.
[0067] Where a figure is presented as a flowchart, it should be understood that the figure also provides a block diagram of the corresponding apparatus. Similarly, where a figure is presented as a block diagram, it should be understood that the figure also provides a flowchart of the corresponding method / process.
[0068] Various embodiments refer to rate-distortion calculation or rate-distortion optimization. During the encoding process, a balance or trade-off between rate and distortion is typically considered, often subject to computational complexity constraints. Rate-distortion optimization is typically formulated to minimize a rate-distortion function, which is a weighted sum of rate and distortion. There are various approaches to solving the rate-distortion optimization problem. For example, these approaches may be based on extensive testing of all encoding options, including all considered modes or coding parameter values, and a full evaluation of their encoding costs and associated distortion of the reconstructed signal after encoding and decoding. To reduce encoding complexity, faster approaches may also be used, particularly calculation of approximate distortion based on a prediction or prediction residual signal rather than the reconstructed signal. These two approaches may also be used in combination, e.g., using approximate distortion for only some of the possible encoding options and full distortion for others. Another approach evaluates only a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization does not necessarily involve a full evaluation of both the encoding cost and the associated distortion.
[0069] Implementations and aspects described herein may be embodied in, for example, a method or process, an apparatus, a software program, a data stream, or a signal. Even if described in the context of only one type of implementation (e.g., described only as a method), the described implementation of the features may also be embodied in other forms (e.g., an apparatus or a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. A method may be implemented in, for example, a processor, where a processor refers to a general processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Furthermore, a processor may include, for example, a communication device, such as a computer, a mobile phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate communication of information between end users.
[0070] References to "one embodiment" or "embodiment" or "one implementation" or "implementation," as well as other variations thereof, mean that a particular feature, structure, characteristic, etc. described in connection with an embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" or "in one implementation" or "in an implementation," and other variations thereof, in various places throughout this document do not necessarily all refer to the same embodiment.
[0071] Additionally, this document may refer to various pieces of information as "determining." Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from memory.
[0072] Additionally, this document may refer to "accessing" various pieces of information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0073] Additionally, this document may refer to "receiving" various pieces of information. Receiving, like "accessing," is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" generally involves some form of operation, such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0074] Use of any of " / ", "and / or", "at least one of", e.g., "A / B", "A and / or B", "at least one of A and B" should be understood to be intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of both alternatives (A and B). As a further example, "A, B, and / or C" and "at least one of A, B, and C" are intended to encompass the selection of only the first listed alternative (A), or the selection of only the second listed alternative (B), or the selection of only the third listed alternative (C), or the selection of only the first and second listed alternatives (A and B), or the selection of only the first and third listed alternatives (A and C), or the selection of only the second and third listed alternatives (B and C), or the selection of all three alternatives (A, B, and C). This can be expanded as many times as the number of items listed, as would be apparent to one of ordinary skill in this and related arts.
[0075] Also, the term "signaling" as used herein specifically refers to indicating something to a corresponding decoder. For example, in a particular embodiment, an encoder signals a particular one of multiple weights to be used for an intra-prediction reference array. Thus, in some embodiments, the same parameters are used on both the encoder and decoder sides. Thus, for example, an encoder can transmit a particular parameter to a decoder (explicit signaling) so that the decoder can use the same particular parameter. Conversely, if the decoder already has the particular parameter and other parameters, signaling without transmission (implicit signaling) can be used to simply allow the decoder to recognize and select the particular parameter. By avoiding transmission of actual functions, bit savings are realized in various embodiments. It should be understood that signaling can be achieved in various ways. For example, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder in various embodiments. Although the above description refers to the verb form of the word "signal," the word "signal" may also be used as a noun in this specification.
[0076] As will be apparent to those of ordinary skill in the art, implementations can generate a variety of signals formatted to carry information that can be stored or transmitted, for example. Such information can include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal can be formatted to carry a bitstream of the described embodiments. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting can include, for example, encoding a data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is known. The signal can be stored on a processor-readable medium.
[0077] Embodiments may include one or more of the following features or entities, alone or in combination, across a variety of different claim categories and types. · Flag to indicate multiple reference lines and encode in separate CABAC contexts. · Determine the context to use for parsing flags based on the value of the multiple reference line index flag. · Bypass decoding the most probable mode candidate bins using CABAC. A bitstream or signal containing one or more of the described syntax elements or variations thereof. Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal that includes one or more of the described syntax elements or variations thereof. A television, set-top box, mobile phone, tablet, or other electronic device that performs in-loop filtering according to any of the described embodiments. A television, set-top box, mobile phone, tablet, or other electronic device that performs in-loop filtering according to any of the described embodiments and displays the resulting image (e.g., using a monitor, screen, or other type of display). A television, set-top box, mobile phone, tablet, or other electronic device that tunes to a channel (e.g., using a tuner) to receive a signal containing an encoded image and performs in-loop filtering according to any of the described embodiments. A television, set-top box, mobile phone, tablet, or other electronic device that receives a signal containing an encoded image wirelessly (e.g., using an antenna) and performs in-loop filtering according to any of the described embodiments.
[0078] One embodiment of a method 700 under the general aspects described herein is shown in Figure 7. The method begins at start block 701, and control passes to block 710, which analyzes the video bitstream to determine whether multiple reference line intra-coding is used. Control passes from block 710 to block 720, which uses the CABAC context to decode the most probable mode flag based on the determination to determine the intra-coding mode. Control passes from block 720 to block 730, which decodes the video bitstream based on the intra-coding mode.
[0079] One embodiment of a method 800 under the general aspects described herein is shown in Figure 8. The method begins at start block 801, and control passes to block 810, which encodes a flag indicating multiple reference line intra video coding using a CABAC context. Control passes from block 810 to block 820, which encodes an intra coding mode index indicating the intra coding mode to be used. Control passes from block 820 to block 830, which encodes the video bitstream having the encoded flag and intra coding mode index using the intra coding mode.
[0080] 9 illustrates an embodiment of an apparatus 900 for encoding, decoding, compressing, or decompressing video data using a simplification of the encoding mode based on a parametric model that depends on nearby samples. The apparatus includes a processor 910 and may be interconnected to a memory 920 through at least one port. Both the processor 910 and the memory 920 may also have one or more additional interconnections to external connections.
[0081] Additionally, processor 910 is configured to insert or receive information in a bitstream and compress, encode, or decode using any of the described aspects.
[0082] Various other generalized and specific inventions and claims are also supported and contemplated throughout this description.
Claims
1. analyzing the video bitstream to determine whether multiple reference line intra coding is used; decoding a most probable mode flag using a first CABAC context when a multiple reference line index is zero, and decoding the most probable mode flag using a second CABAC context different from the first CABAC context when the multiple reference line index is non-zero, the second CABAC context being selected based on the non-zero multiple reference line index; determining an intra coding mode when the multiple reference line index is determined to be non-zero by analyzing the most probable mode flag using a second CABAC context based on the multiple reference line index, wherein when the multiple reference line index is non-zero, an index of a candidate most probable mode is binary coded and all bins of the index are bypass decoded using CABAC, and when the multiple reference line index is non-zero, predetermined prediction modes are available as candidate modes; and decoding the video bitstream based on the intra coding mode, wherein a non-MPM mode is used with a reference line that is two lines away from a current coding unit.
2. analyzing the video bitstream to determine whether multiple reference line intra coding is used; decoding a most probable mode flag using a first CABAC context when a multiple reference line index is zero, and decoding the most probable mode flag using a second CABAC context different from the first CABAC context when the multiple reference line index is non-zero, the second CABAC context being selected based on the non-zero multiple reference line index; determining an intra coding mode when the multiple reference line index is determined to be non-zero by analyzing the most probable mode flag using a second CABAC context based on the multiple reference line index, wherein when the multiple reference line index is non-zero, an index of a candidate most probable mode is binary coded and all bins of the index are bypass decoded using CABAC, and when the multiple reference line index is non-zero, predetermined prediction modes are available as candidate modes; and decoding the video bitstream based on the intra coding mode, wherein a non-MPM mode is used with a reference line that is two lines away from a current coding unit.
3. encoding a flag indicating multiple reference line intra video coding using the first CABAC context; using a first CABAC context when a multiple reference line index is 0, and using a second CABAC context different from the first CABAC context when the multiple reference line index is not 0, wherein the second CABAC context is selected based on the multiple reference line index being not 0; and encoding a most probable mode flag using a second CABAC context if the multiple reference line index is not 0, wherein an index of a candidate most probable mode is binary decoded and all bins of the index are bypass decoded using CABAC, and five prediction modes are available as candidate modes if the multiple reference line index is not 0.
4. encoding a flag indicating multiple reference line intra video coding using the first CABAC context; using a first CABAC context when a multiple reference line index is 0, and using a second CABAC context different from the first CABAC context when the multiple reference line index is not 0, wherein the second CABAC context is selected based on the multiple reference line index being not 0; and encoding a most probable mode flag using a second CABAC context if the multiple reference line index is not 0, wherein an index of a candidate most probable mode is binary decoded and all bins of the index are bypass decoded using CABAC, and five prediction modes are available as candidate modes if the multiple reference line index is not 0.
5. The method of claim 3 , wherein the flag indicating multiple reference line intra video coding has a value of 1.
6. The apparatus of claim 4 , wherein the intra-coding mode index, which indicates the intra-coding mode used, is binary coded.
7. The apparatus of claim 6 , wherein bins of the intra-coding mode index are bypass coded using CABAC.
8. The method of claim 1, wherein the bins of the intra-coding mode index are bypass decoded using CABAC.
9. The apparatus of claim 2 , wherein the CABAC probability parameters are initialized with a high probability model.
10. The apparatus of claim 9 , wherein the most probable mode flag is set to a value of one.
11. The most probable mode flag is set regardless of the value of the multiple reference line intra coding index. The method of claim 1 wherein the image is decoded.
12. An apparatus according to claim 2; 1. A device comprising: (i) an antenna configured to receive a signal, the signal including a video block; (ii) a band limiter configured to limit the received signal to a frequency band including the video block; and (iii) a display configured to display an output representing the video block.
13. A computer program comprising instructions that, when said computer program is executed by a computer, cause said computer to carry out the method of claim 1, 3, 5, 8 or 11.
14. The apparatus of claim 4 , wherein the flag indicating multiple reference line intra video coding has a value of 1.
15. The method of claim 3 , wherein the intra-coding mode index, which indicates the intra-coding mode used, is binary coded.
16. The method of claim 15 , wherein the bins of the intra-coding mode index are bypass coded using CABAC.
17. The apparatus of claim 2, wherein bins of an intra-coding mode index are bypass decoded using CABAC.
18. The method of claim 1 , wherein the CABAC probability parameters are initialized with a high probability model.
19. 20. The method of claim 18, wherein the most probable mode flag is set to a value of one.
20. The apparatus of claim 2 , wherein the most probable mode flag is decoded regardless of the value of a multiple reference line intra-coding index.
Citation Information
Patent Citations
Video encoding method and apparatus with arithmetic coding, video decoding method and apparatus
JP2014525166A
Encoder, decoder and corresponding method for intra prediction
JP2022528050A